From 404941c47a837b91547f40eff40fb47d888be20a Mon Sep 17 00:00:00 2001 From: umsangdon Date: Tue, 7 Jul 2026 17:02:12 +0900 Subject: [PATCH] =?UTF-8?q?260706=5F0=5F=ED=9A=8C=EC=82=AC=EC=8B=B1?= =?UTF-8?q?=ED=81=AC=20=ED=9B=84=20=EC=BB=A4=EB=B0=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .agent/migration_plan.md | 12 +- .agent/structure.md | 47 +- .agent/test/00_Index.md | 35 + .agent/test/01_Architecture_and_Structure.md | 65 + .agent/test/01_Rules_and_Constraints.md | 20 + .agent/test/02_Architecture_and_Structure.md | 27 + .agent/test/02_Database_Schema.md | 60 + .agent/test/03_Backend_Logic_and_Storage.md | 44 + .agent/test/03_Backend_and_DB.md | 23 + .agent/test/04_Frontend_and_Design.md | 47 + .agent/test/04_Frontend_and_UI.md | 26 + .agent/test/05_Workflow_and_Storage.md | 31 + .agents/instructions.md | 1 - .ai-rules | 1 - .claude/settings.local.json | 3 +- .env | 21 + .env.example | 40 - .gitignore | 22 +- A00_Common/.vite/deps/_metadata.json | 8 +- A00_Common/index.html | 1 - A00_Common/main.ts | 1 + A01_Home/A01_Home_UI_Page.ts | 53 +- AGENTS.md | 148 + B04_wf1_Surface/B04_wf1_Surface_UI_Style.css | 109 + B05_wf2_Route/B05_wf2_Route_Api_Fetch.ts | 99 + B05_wf2_Route/B05_wf2_Route_UI_Page.ts | 335 +- B05_wf2_Route/B05_wf2_Route_UI_Style.css | 132 + .../B06_wf3_ProfileCross_Api_Fetch.ts | 111 + .../B06_wf3_ProfileCross_UI_Page.ts | 242 +- .../B06_wf3_ProfileCross_UI_Style.css | 101 + CLAUDE.md | 149 +- config/vite.config.ts | 2 +- node_modules/.bin/prettier | 16 - node_modules/.bin/prettier.cmd | 17 - node_modules/.bin/prettier.ps1 | 28 - node_modules/.package-lock.json | 584 - node_modules/prettier/LICENSE | 7 - node_modules/prettier/README.md | 104 - node_modules/prettier/THIRD-PARTY-NOTICES.md | 8013 ------- node_modules/prettier/bin/prettier.cjs | 84 - node_modules/prettier/doc.d.ts | 254 - node_modules/prettier/doc.js | 1575 -- node_modules/prettier/doc.mjs | 1544 -- node_modules/prettier/index.cjs | 790 - node_modules/prettier/index.d.ts | 959 - node_modules/prettier/index.mjs | 19073 ---------------- .../internal/experimental-cli-worker.mjs | 2756 --- .../prettier/internal/experimental-cli.mjs | 12572 ---------- node_modules/prettier/internal/legacy-cli.mjs | 7059 ------ node_modules/prettier/package.json | 207 - node_modules/prettier/plugins/acorn.d.ts | 6 - node_modules/prettier/plugins/acorn.js | 17 - node_modules/prettier/plugins/acorn.mjs | 17 - node_modules/prettier/plugins/angular.d.ts | 8 - node_modules/prettier/plugins/angular.js | 5 - node_modules/prettier/plugins/angular.mjs | 5 - node_modules/prettier/plugins/babel.d.ts | 18 - node_modules/prettier/plugins/babel.js | 16 - node_modules/prettier/plugins/babel.mjs | 16 - node_modules/prettier/plugins/estree.d.ts | 6 - node_modules/prettier/plugins/estree.js | 44 - node_modules/prettier/plugins/estree.mjs | 44 - node_modules/prettier/plugins/flow.d.ts | 5 - node_modules/prettier/plugins/flow.js | 7 - node_modules/prettier/plugins/flow.mjs | 7 - node_modules/prettier/plugins/glimmer.d.ts | 9 - node_modules/prettier/plugins/glimmer.js | 37 - node_modules/prettier/plugins/glimmer.mjs | 37 - node_modules/prettier/plugins/graphql.d.ts | 9 - node_modules/prettier/plugins/graphql.js | 17 - node_modules/prettier/plugins/graphql.mjs | 17 - node_modules/prettier/plugins/html.d.ts | 13 - node_modules/prettier/plugins/html.js | 25 - node_modules/prettier/plugins/html.mjs | 25 - node_modules/prettier/plugins/markdown.d.ts | 11 - node_modules/prettier/plugins/markdown.js | 70 - node_modules/prettier/plugins/markdown.mjs | 70 - node_modules/prettier/plugins/meriyah.d.ts | 5 - node_modules/prettier/plugins/meriyah.js | 6 - node_modules/prettier/plugins/meriyah.mjs | 6 - node_modules/prettier/plugins/postcss.d.ts | 11 - node_modules/prettier/plugins/postcss.js | 62 - node_modules/prettier/plugins/postcss.mjs | 62 - node_modules/prettier/plugins/typescript.d.ts | 5 - node_modules/prettier/plugins/typescript.js | 22 - node_modules/prettier/plugins/typescript.mjs | 22 - node_modules/prettier/plugins/yaml.d.ts | 9 - node_modules/prettier/plugins/yaml.js | 141 - node_modules/prettier/plugins/yaml.mjs | 154 - node_modules/prettier/standalone.d.ts | 33 - node_modules/prettier/standalone.js | 29 - node_modules/prettier/standalone.mjs | 29 - requirements.txt | 58 +- resources/prog_icon.jpg | Bin 0 -> 96708 bytes tests/test_b03_file_input_analyze.py | 110 - tests/test_b03_file_input_engine.py | 58 - tests/test_b03_file_input_repository.py | 100 - tests/test_b03_file_input_router.py | 122 - tests/test_b03_file_input_schema.py | 30 - tests/test_b04_surface_engine.py | 64 - tests/test_b04_surface_filter_csf.py | 48 - tests/test_b04_surface_filter_grid.py | 25 - tests/test_b04_surface_filter_pmf.py | 42 - tests/test_b04_surface_filter_ransac.py | 59 - tests/test_b04_surface_pipeline.py | 61 - tests/test_b04_surface_repository.py | 143 - tests/test_b04_surface_structurize.py | 40 - tests/test_b05_route_engine.py | 64 - tests/test_b05_route_repository.py | 148 - tests/test_b05_route_ridgevalley.py | 44 - tests/test_b05_route_skeleton.py | 51 - tests/test_b05_route_solver.py | 103 - tests/test_b06_profilecross_section.py | 71 - tests/test_common_util_json.py | 18 - tests/test_common_util_workflow.py | 63 - tests/test_config_system_storage.py | 59 - ui_template/ui_template_locale.ts | 87 + 117 files changed, 2060 insertions(+), 58423 deletions(-) create mode 100644 .agent/test/00_Index.md create mode 100644 .agent/test/01_Architecture_and_Structure.md create mode 100644 .agent/test/01_Rules_and_Constraints.md create mode 100644 .agent/test/02_Architecture_and_Structure.md create mode 100644 .agent/test/02_Database_Schema.md create mode 100644 .agent/test/03_Backend_Logic_and_Storage.md create mode 100644 .agent/test/03_Backend_and_DB.md create mode 100644 .agent/test/04_Frontend_and_Design.md create mode 100644 .agent/test/04_Frontend_and_UI.md create mode 100644 .agent/test/05_Workflow_and_Storage.md delete mode 120000 .agents/instructions.md delete mode 120000 .ai-rules create mode 100644 .env delete mode 100644 .env.example create mode 100644 AGENTS.md create mode 100644 B04_wf1_Surface/B04_wf1_Surface_UI_Style.css create mode 100644 B05_wf2_Route/B05_wf2_Route_Api_Fetch.ts create mode 100644 B05_wf2_Route/B05_wf2_Route_UI_Style.css create mode 100644 B06_wf3_ProfileCross/B06_wf3_ProfileCross_Api_Fetch.ts create mode 100644 B06_wf3_ProfileCross/B06_wf3_ProfileCross_UI_Style.css delete mode 100644 node_modules/.bin/prettier delete mode 100644 node_modules/.bin/prettier.cmd delete mode 100644 node_modules/.bin/prettier.ps1 delete mode 100644 node_modules/prettier/LICENSE delete mode 100644 node_modules/prettier/README.md delete mode 100644 node_modules/prettier/THIRD-PARTY-NOTICES.md delete mode 100644 node_modules/prettier/bin/prettier.cjs delete mode 100644 node_modules/prettier/doc.d.ts delete mode 100644 node_modules/prettier/doc.js delete mode 100644 node_modules/prettier/doc.mjs delete mode 100644 node_modules/prettier/index.cjs delete mode 100644 node_modules/prettier/index.d.ts delete mode 100644 node_modules/prettier/index.mjs delete mode 100644 node_modules/prettier/internal/experimental-cli-worker.mjs delete mode 100644 node_modules/prettier/internal/experimental-cli.mjs delete mode 100644 node_modules/prettier/internal/legacy-cli.mjs delete mode 100644 node_modules/prettier/package.json delete mode 100644 node_modules/prettier/plugins/acorn.d.ts delete mode 100644 node_modules/prettier/plugins/acorn.js delete mode 100644 node_modules/prettier/plugins/acorn.mjs delete mode 100644 node_modules/prettier/plugins/angular.d.ts delete mode 100644 node_modules/prettier/plugins/angular.js delete mode 100644 node_modules/prettier/plugins/angular.mjs delete mode 100644 node_modules/prettier/plugins/babel.d.ts delete mode 100644 node_modules/prettier/plugins/babel.js delete mode 100644 node_modules/prettier/plugins/babel.mjs delete mode 100644 node_modules/prettier/plugins/estree.d.ts delete mode 100644 node_modules/prettier/plugins/estree.js delete mode 100644 node_modules/prettier/plugins/estree.mjs delete mode 100644 node_modules/prettier/plugins/flow.d.ts delete mode 100644 node_modules/prettier/plugins/flow.js delete mode 100644 node_modules/prettier/plugins/flow.mjs delete mode 100644 node_modules/prettier/plugins/glimmer.d.ts delete mode 100644 node_modules/prettier/plugins/glimmer.js delete mode 100644 node_modules/prettier/plugins/glimmer.mjs delete mode 100644 node_modules/prettier/plugins/graphql.d.ts delete mode 100644 node_modules/prettier/plugins/graphql.js delete mode 100644 node_modules/prettier/plugins/graphql.mjs delete mode 100644 node_modules/prettier/plugins/html.d.ts delete mode 100644 node_modules/prettier/plugins/html.js delete mode 100644 node_modules/prettier/plugins/html.mjs delete mode 100644 node_modules/prettier/plugins/markdown.d.ts delete mode 100644 node_modules/prettier/plugins/markdown.js delete mode 100644 node_modules/prettier/plugins/markdown.mjs delete mode 100644 node_modules/prettier/plugins/meriyah.d.ts delete mode 100644 node_modules/prettier/plugins/meriyah.js delete mode 100644 node_modules/prettier/plugins/meriyah.mjs delete mode 100644 node_modules/prettier/plugins/postcss.d.ts delete mode 100644 node_modules/prettier/plugins/postcss.js delete mode 100644 node_modules/prettier/plugins/postcss.mjs delete mode 100644 node_modules/prettier/plugins/typescript.d.ts delete mode 100644 node_modules/prettier/plugins/typescript.js delete mode 100644 node_modules/prettier/plugins/typescript.mjs delete mode 100644 node_modules/prettier/plugins/yaml.d.ts delete mode 100644 node_modules/prettier/plugins/yaml.js delete mode 100644 node_modules/prettier/plugins/yaml.mjs delete mode 100644 node_modules/prettier/standalone.d.ts delete mode 100644 node_modules/prettier/standalone.js delete mode 100644 node_modules/prettier/standalone.mjs create mode 100644 resources/prog_icon.jpg delete mode 100644 tests/test_b03_file_input_analyze.py delete mode 100644 tests/test_b03_file_input_engine.py delete mode 100644 tests/test_b03_file_input_repository.py delete mode 100644 tests/test_b03_file_input_router.py delete mode 100644 tests/test_b03_file_input_schema.py delete mode 100644 tests/test_b04_surface_engine.py delete mode 100644 tests/test_b04_surface_filter_csf.py delete mode 100644 tests/test_b04_surface_filter_grid.py delete mode 100644 tests/test_b04_surface_filter_pmf.py delete mode 100644 tests/test_b04_surface_filter_ransac.py delete mode 100644 tests/test_b04_surface_pipeline.py delete mode 100644 tests/test_b04_surface_repository.py delete mode 100644 tests/test_b04_surface_structurize.py delete mode 100644 tests/test_b05_route_engine.py delete mode 100644 tests/test_b05_route_repository.py delete mode 100644 tests/test_b05_route_ridgevalley.py delete mode 100644 tests/test_b05_route_skeleton.py delete mode 100644 tests/test_b05_route_solver.py delete mode 100644 tests/test_b06_profilecross_section.py delete mode 100644 tests/test_common_util_json.py delete mode 100644 tests/test_common_util_workflow.py delete mode 100644 tests/test_config_system_storage.py diff --git a/.agent/migration_plan.md b/.agent/migration_plan.md index 286f451..f0899d4 100644 --- a/.agent/migration_plan.md +++ b/.agent/migration_plan.md @@ -12,7 +12,8 @@ - Stage 3 B05 (경로 설계): ✅ 백엔드 완료 (Dijkstra + ridge-valley + skeleton) - Stage 4 B06 (종횡단 생성): ✅ 백엔드 완료 (sampler + 종횡단 + Repository/Router) - 공통: 전 페이지 DB 접근을 aiomysql Raw SQL로 통일, 순수 계산부는 실데이터로 검증 -- 남은 작업: B04~B06 프론트엔드(Vanilla TS/WebCAD), 실제 aislo_db 연동·구형 수치 비교 +- Stage 2~4 프론트엔드 폼/결과 UI: ✅ 완료 (B04~B06 UI_Page + Api_Fetch + CSS + locale, tsc 타입체크 통과) +- 남은 작업: B04~B06 **WebCAD 3D/차트 뷰어**, 실제 aislo_db 연동·구형 수치 비교 --- @@ -178,7 +179,8 @@ B04로 넘길 기능: - [x] 등고선 생성 함수 이전 - [x] 미리보기·메타데이터·모델 확정 라우트 추가 (analyze/models 라우트 + 파이프라인 manifest) - [x] `processed_point_cloud`, `surface_models`, `terrain_layers` Raw SQL 저장 함수 추가 (aiomysql) -- [ ] B04 폼·WebCAD 뷰어를 Vanilla TypeScript로 재작성 +- [x] B04 폼·모델 목록 UI를 Vanilla TypeScript로 재작성 (UI_Page + Api_Fetch + CSS + locale) +- [ ] B04 WebCAD 3D 뷰어(포인트클라우드/메시 렌더) 추가 - [ ] 샘플 LAS 결과를 구형 출력과 비교 검증 ### Stage 3 — B05_wf2_Route @@ -193,7 +195,8 @@ B04로 넘길 기능: - [ ] 입력 서명·stale 판정 함수 이전 - [x] 경로 확정 함수 이전 (Repository confirm_route + confirm 라우트) - [x] `routes`, `route_points`, `route_statistics` Raw SQL 저장 함수 추가 (aiomysql) -- [ ] B05 경로 편집·제약조건·결과 뷰어를 Vanilla TypeScript로 재작성 +- [x] B05 경로점 입력·제약조건·결과 메트릭 UI를 Vanilla TypeScript로 재작성 (UI_Page + Api_Fetch + CSS + locale) +- [ ] B05 경로 WebCAD 뷰어(노선 폴리라인 렌더/편집) 추가 - [x] 기존 route solver 테스트를 신규 구조로 이관·통과 ### Stage 4 — B06_wf3_ProfileCross @@ -207,7 +210,8 @@ B04로 넘길 기능: - [ ] 입력 서명·중복 실행 방지 함수 이전 (delete_sections_for_route로 멱등 재실행만 구현) - [x] 결과 조회·확정 라우트 추가 (sections/generate·get·confirm 라우트) - [x] `longitudinal_sections`, `cross_sections` Raw SQL 저장 함수 추가 (aiomysql Repository) -- [ ] B06 종단도·횡단 카드 UI를 Vanilla TypeScript로 재작성 +- [x] B06 측점·횡단 옵션·결과 메트릭 UI를 Vanilla TypeScript로 재작성 (UI_Page + Api_Fetch + CSS + locale) +- [ ] B06 종단도·횡단 카드 WebCAD 뷰어(프로필 차트 렌더) 추가 - [ ] 구형 section 결과와 수치 비교 검증 **B06 백엔드 구현 파일:** diff --git a/.agent/structure.md b/.agent/structure.md index 09f005a..c612f7f 100644 --- a/.agent/structure.md +++ b/.agent/structure.md @@ -96,14 +96,47 @@ my-project/ │ ├── B03_FileInput_Engine_Analyze.py # 원본 파일 메타데이터 분석 │ ├── B03_FileInput_Repository.py # input_files asyncpg Raw SQL │ └── B03_FileInput_Router.py # 다중 파일 업로드 API -├── B04_wf1_Surface/ # 로그인 후 04: 1차 workflow (지표면 모델 분석) — 워크플로우 셸 -│ ├── B04_wf1_Surface_UI_Page.ts +├── B04_wf1_Surface/ # 로그인 후 04: 1차 workflow (지표면 모델 분석) +│ ├── B04_wf1_Surface_UI_Page.ts # 3단 레이아웃 (필터/표현 선택 폼 + 모델 목록) +│ ├── B04_wf1_Surface_UI_Style.css # B04 고유 폼 그룹/모델 카드 스타일 +│ ├── B04_wf1_Surface_Api_Fetch.ts # surface/analyze·models API 클라이언트 +│ ├── B04_wf1_Surface_Schema.py # 분석 요청/응답 Pydantic 검증 +│ ├── B04_wf1_Surface_Engine.py # 지표면 분석 오케스트레이터 │ ├── B04_wf1_Surface_Engine_Structurize.py # LAS/LAZ 구조화 -│ └── B04_wf1_Surface_Engine_Filter_Grid.py # grid minimum-Z 필터 -├── B05_wf2_Route/ # 로그인 후 05: 2차 workflow (경로설계) — 워크플로우 셸 -│ └── B05_wf2_Route_UI_Page.ts -├── B06_wf3_ProfileCross/ # 로그인 후 06: 3차 workflow (종횡단 생성) — 워크플로우 셸 -│ └── B06_wf3_ProfileCross_UI_Page.ts +│ ├── B04_wf1_Surface_Engine_Ground.py # 지면 분석 진입 +│ ├── B04_wf1_Surface_Engine_Filter_Grid.py # grid minimum-Z 필터 +│ ├── B04_wf1_Surface_Engine_Filter_CSF.py # CSF 필터 +│ ├── B04_wf1_Surface_Engine_Filter_PMF.py # PMF 필터 +│ ├── B04_wf1_Surface_Engine_Filter_RANSAC.py # RANSAC 필터 +│ ├── B04_wf1_Surface_Engine_ModelContext.py # 모델 공통 컨텍스트/메시 유틸 +│ ├── B04_wf1_Surface_Engine_ModelBuild.py # TIN/DTM/NURBS/implicit/meshfree 생성 +│ ├── B04_wf1_Surface_Engine_Smooth.py # DTM/TIN 스무딩 +│ ├── B04_wf1_Surface_Engine_Contour.py # 등고선 생성 +│ ├── B04_wf1_Surface_Engine_Pipeline.py # 파이프라인 manifest +│ ├── B04_wf1_Surface_Repository.py # processed_point_cloud/surface_models aiomysql Raw SQL +│ └── B04_wf1_Surface_Router.py # surface/analyze·models API +├── B05_wf2_Route/ # 로그인 후 05: 2차 workflow (경로설계) +│ ├── B05_wf2_Route_UI_Page.ts # 3단 레이아웃 (제어점/제약 폼 + 결과 메트릭) +│ ├── B05_wf2_Route_UI_Style.css # B05 고유 제어점 행/제약 그룹 스타일 +│ ├── B05_wf2_Route_Api_Fetch.ts # route/solve·confirm API 클라이언트 +│ ├── B05_wf2_Route_Schema.py # 경로 탐색 요청/응답 Pydantic 검증 +│ ├── B05_wf2_Route_Engine.py # 경로 설계 오케스트레이터 +│ ├── B05_wf2_Route_Engine_Geometry.py # Dijkstra 단일 구간 탐색 +│ ├── B05_wf2_Route_Engine_Solver.py # 비용면 생성 + 최적 경로 조립 +│ ├── B05_wf2_Route_Engine_Skeleton.py # 지형 skeleton (D8 흐름누적) +│ ├── B05_wf2_Route_Engine_RidgeValley.py # ridge-valley 탐색 +│ ├── B05_wf2_Route_Repository.py # routes/route_points/route_statistics aiomysql Raw SQL +│ └── B05_wf2_Route_Router.py # route/solve·confirm API +├── B06_wf3_ProfileCross/ # 로그인 후 06: 3차 workflow (종횡단 생성) +│ ├── B06_wf3_ProfileCross_UI_Page.ts # 3단 레이아웃 (측점/횡단 옵션 폼 + 결과 메트릭) +│ ├── B06_wf3_ProfileCross_UI_Style.css # B06 고유 옵션 그룹/결과 메트릭 스타일 +│ ├── B06_wf3_ProfileCross_Api_Fetch.ts # sections/generate·get·confirm API 클라이언트 +│ ├── B06_wf3_ProfileCross_Schema.py # 종횡단 생성 요청/응답 Pydantic 검증 +│ ├── B06_wf3_ProfileCross_Engine.py # 종횡단 생성 오케스트레이터 +│ ├── B06_wf3_ProfileCross_Engine_Sampler.py # 표고 sampler (Protocol + DTM/보간 5종) +│ ├── B06_wf3_ProfileCross_Engine_Section.py # 종횡단 생성 (측점/접선/횡단 샘플) +│ ├── B06_wf3_ProfileCross_Repository.py # longitudinal/cross_sections aiomysql Raw SQL +│ └── B06_wf3_ProfileCross_Router.py # sections/generate·get·confirm API ├── B07_wf4_DesignDetail/ # 로그인 후 07: 4차 workflow (상세설계) — 워크플로우 셸 │ └── B07_wf4_DesignDetail_UI_Page.ts ├── B08_wf5_Quantity/ # 로그인 후 08: 5차 workflow (수량 산출) — 워크플로우 셸 diff --git a/.agent/test/00_Index.md b/.agent/test/00_Index.md new file mode 100644 index 0000000..3a64718 --- /dev/null +++ b/.agent/test/00_Index.md @@ -0,0 +1,35 @@ +--- +document_type: entrypoint +priority: CRITICAL +version: 2.0 +--- +# Aislo (아이슬로) 프로젝트 지식 베이스 진입점 + +이 문서는 AI 코딩 에이전트(Codex, Claude, Antigravity 등)가 프로젝트의 방대한 정보 중 **현재 필요한 컨텍스트를 정확하게 로드**하기 위한 인덱스입니다. 임의로 구조를 추론하지 말고, 작업할 영역에 맞춰 아래 연결된 상세 명세서를 반드시 읽고 코딩을 진행하십시오. + +## 🧭 컨텍스트 라우팅 (필요한 문서를 로드하는 방법) + +작업 성격에 따라 다음 번호의 문서를 확인하십시오. +모든 문서는 이 폴더(`.agent/test/`) 하위에 존재합니다. + +1. **[구조/아키텍처 파악]** `01_Architecture_and_Structure.md` + - **언제 읽는가:** 새로운 페이지를 추가하거나, 파일(프론트/백엔드)을 생성/수정해야 할 때. + - **내용:** A00~B11까지의 전체 디렉토리 트리, 파일 명명 규칙(수직 통합). +2. **[DB 연동 및 쿼리 작성]** `02_Database_Schema.md` + - **언제 읽는가:** DB 테이블 조회, 쿼리문 작성, 관계(FK) 및 데이터 저장이 필요할 때. + - **내용:** 18개 전체 테이블 스키마, 핵심 쿼리 예제, 공간 데이터(JSON) 설계 원칙. +3. **[백엔드 로직/저장소 제어]** `03_Backend_Logic_and_Storage.md` + - **언제 읽는가:** FastAPI 라우터, 비즈니스 엔진 로직, 영구저장소(물리 파일) 입출력을 다룰 때. + - **내용:** Raw SQL 제약, 워크플로우 6단계 폴더 매핑, `workflow.json` 기반의 Stale 상태 동기화 기법. +4. **[프론트엔드 UI/디자인 구현]** `04_Frontend_and_Design.md` + - **언제 읽는가:** TypeScript 이벤트 핸들러, 화면 레이아웃, 다국어 처리, CSS 스타일링을 수행할 때. + - **내용:** 3단 레이아웃 제약, 다국어(`ui_locales`) 제약, Wiza 테마(Britti Sans, 색상 토큰) 및 프롬프트 가이드. + +--- + +## 🛑 범용 제약 사항 (절대 준수) +1. **700줄 제한:** 단일 파일 코드 작성/수정 시 700줄이 넘으면 기능별 분할 필수. +2. **코드 포맷팅:** 작성 후 반드시 포맷터 적용 (Python: `ruff`, TS/CSS: `prettier`). +3. **인코딩:** 모든 파일은 UTF-8. +4. **DB 원칙:** `aiomysql` 기반 비동기 통신. **ORM 사용은 절대 금지**하며 무조건 Raw SQL 사용. +5. **다국어 규칙:** 프론트엔드 내 UI 텍스트 하드코딩 금지. 반드시 다국어 인덱스 배열 방식 준수. diff --git a/.agent/test/01_Architecture_and_Structure.md b/.agent/test/01_Architecture_and_Structure.md new file mode 100644 index 0000000..5bd5840 --- /dev/null +++ b/.agent/test/01_Architecture_and_Structure.md @@ -0,0 +1,65 @@ +--- +document_type: architecture +priority: HIGH +--- +# 프로젝트 구조 및 아키텍처 명세 + +## 1. 아키텍처 기본 원칙 +* **수직 통합:** 백엔드 로직과 프론트엔드 코드는 페이지 폴더(`A01_`, `B01_` 등)별로 격리. 거대 단일 모듈을 금지하고 기능별로 파일을 분할한다. +* **루트 main.py:** FastAPI 진입점으로, 라우터 등록(`include_router`)만 수행. 비즈니스 로직 작성 금지. +* **명명 규칙:** + - 백엔드: `[폴더명]_Router.py`, `[폴더명]_Engine.py`, `[폴더명]_Schema.py`, `[폴더명]_Repository.py` + - 프론트엔드: `[폴더명]_UI_Page.ts`, `[폴더명]_UI_Style.css`, `[폴더명]_Api_Fetch.ts` + - 로그인 전은 `A01_`, 로그인 후는 `B01_`, 워크플로우는 `B04_wf1_` 형태 적용. + - 공통 유틸 코드는 `common_util_[기능].확장자` + +## 2. 전체 디렉토리 트리 상세 + +```text +my-project/ +├── A00_Common/ # 프론트엔드 공통 인프라 +│ ├── main.ts # 앱 진입점 +│ ├── router.ts # 해시 기반 SPA 라우터 +│ └── app_shell.ts # 공통 헤더/푸터 +├── common_util/ # 공통 유틸리티 +│ ├── common_util_validate.ts # 프론트 유효성 검사 +│ ├── common_util_storage.py # 저장 경로 로직 +│ └── common_util_workflow.py # 상태 동기화 로직 +├── config/ # 환경 설정 +│ ├── config_system.py # 시스템 파라미터 (제어 변수 중앙화) +│ └── config_db.py # DB 설정 +├── db_management/ # 스키마 및 마이그레이션 +├── resources/ # 정적 리소스 (에셋) +├── storage/ # 물리 파일 영구 저장소 (DB와 매핑) +├── templates/ # 보고서/도면 양식 +├── ui_template/ # 공통 UI 컴포넌트, 테마, 다국어 +│ ├── ui_template_theme.css +│ ├── ui_template_locale.ts +│ └── ui_template_elements.ts + +# --- 로그인 전 페이지 (A 그룹) --- +├── A01_Home/ # 홈 (소개, 소식) +├── A02_ProgDetail/ # 프로그램 상세 (6단계 워크플로우 설명) +├── A03_CompDetail/ # 회사 상세 (미션 등) +├── A04_NewsHistory/ # 최신소식 및 개선 이력 +├── A05_EduDetail/ # 교육 상세 +├── A06_Login/ # 로그인 (이메일/비밀번호) +├── A07_Register/ # 회원가입 +├── A08_Support/ # 기술지원 요청 + +# --- 로그인 후 페이지 (B 그룹) --- +├── B01_AccountDetail/ # 계정 관리 +├── B02_ProjRegister/ # 신규 프로젝트 등록 +├── B03_FileInput/ # [WF0] 원본 파일 입력 (다중 파일 업로드) +├── B04_wf1_Surface/ # [WF1] 지표면 모델 분석 (LAS 처리) +├── B05_wf2_Route/ # [WF2] 경로 설계 (최적 경로 계산) +├── B06_wf3_ProfileCross/ # [WF3] 종횡단 생성 (단면 추출) +├── B07_wf4_DesignDetail/ # [WF4] 상세 설계 (구조물 배치) +├── B08_wf5_Quantity/ # [WF5] 수량 산출 (물량 집계) +├── B09_wf6_Estimation/ # [WF6] 견적/최종 산출물 생성 +├── B10_Payment/ # 결제 관리 +└── B11_Status/ # 상태 출력 페이지 + +├── main.py # FastAPI 루트 +└── package.json, requirements.txt 등 +``` diff --git a/.agent/test/01_Rules_and_Constraints.md b/.agent/test/01_Rules_and_Constraints.md new file mode 100644 index 0000000..141ac8c --- /dev/null +++ b/.agent/test/01_Rules_and_Constraints.md @@ -0,0 +1,20 @@ +--- +document_type: rules +priority: CRITICAL +--- +# 프로젝트 기본 규칙 및 제약 (Rules & Constraints) + +## 🚨 필수 행동 지침 (Do's) +- **[MUST]** 코드 작성 전 반드시 `02_Architecture_and_Structure.md`의 구조를 확인하고 적절한 위치에 작성한다. +- **[MUST]** 700줄 제한: 단일 파일이 700줄을 초과할 경우 사전 공지하고 기능별로 파일을 분할한다. +- **[MUST]** 인코딩은 반드시 **UTF-8** 표준으로 통일한다. +- **[MUST]** 코드 작성이 완료되면 다음 포맷터를 실행한다. + - Python: `ruff format [파일명]`, `ruff check --fix [파일명]` + - TypeScript/CSS: `npx prettier --write [파일명]` +- **[MUST]** 외부 라이브러리 추가 시 프로젝트 호환성을 고려하고 무분별한 사용을 지양한다. + +## 🛑 금지 행동 지침 (Don'ts) +- **[DON'T]** 하드코딩 금지: 제어 변수/파라미터는 `config/config_system.py`에서, UI 문자열은 `ui_template/ui_template_locale.ts`에서 가져와야 한다. +- **[DON'T]** 임의 파일 경로 생성 금지: 모든 파일 입출력 및 저장은 `05_Workflow_and_Storage.md`에 정의된 6단계 워크플로우 폴더 경로를 준수해야 한다. +- **[DON'T]** 백엔드에서 중간 산출물이나 임시 파일을 MariaDB에 직접 바이너리로 저장하지 않는다. 물리 파일로 저장 후 DB에는 경로(프로젝트 상대 경로)만 기록한다. +- **[DON'T]** 삭제 및 덮어쓰기 금지: 다른 단계의 산출물을 직접 삭제하거나 덮어쓰지 않고 stale 상태를 통해 재계산 필요성을 전파한다. diff --git a/.agent/test/02_Architecture_and_Structure.md b/.agent/test/02_Architecture_and_Structure.md new file mode 100644 index 0000000..eb2e49e --- /dev/null +++ b/.agent/test/02_Architecture_and_Structure.md @@ -0,0 +1,27 @@ +--- +document_type: architecture +priority: HIGH +--- +# 파일 구조 및 명명 규칙 + +## 📂 아키텍처 원칙 +- **수직 통합:** 프론트엔드(TypeScript)와 백엔드(Python) 파일을 기능/페이지별로 같은 폴더(`A01_`, `B01_` 등)에 격리하여 관리한다. (단일 거대 모듈 금지) +- **루트 `main.py`:** FastAPI의 진입점. 라우터 등록(`include_router`)만 수행하고 비즈니스 로직은 절대 작성하지 않는다. + +## 📝 명명 규칙 +- **폴더명:** + - 로그인 전 페이지: `A01_`, `A02_` ... + - 로그인 후 페이지: `B01_`, `B02_` ... + - 워크플로우 페이지: `B04_wf1_`, `B05_wf2_` ... + - 공통/시스템 폴더: `A00_Common`, `common_util`, `config` 등 접두사 없이 영문명 사용. +- **파일명:** `[폴더명(페이지명)]_[기능]_[기타사양].[확장자]` 형태 필수. + - 예시: `B04_wf1_Surface_UI_Page.ts`, `B04_wf1_Surface_Router.py` +- **공통 모듈:** `common_util` 폴더 내에 `common_util_[기능].[확장자]` 형태로 보관. + +## 🏗️ 주요 폴더 구조 요약 +- `A00_Common/`: 프론트엔드 공통 인프라 (SPA 라우터, 앱 셸 등) +- `common_util/`: 공통 유틸리티 코드 (검증, 스토리지 제어 등) +- `config/`: 시스템 설정, DB 설정, TS/Vite 환경 설정 +- `ui_template/`: 공통 UI 테마, 컴포넌트, 다국어 파일 배열 +- `storage/`: 파일 영구 저장소 (DB 경로와 연동됨) +- `B03_FileInput/` ~ `B09_wf6_Estimation/`: 핵심 6단계 워크플로우 페이지 및 API diff --git a/.agent/test/02_Database_Schema.md b/.agent/test/02_Database_Schema.md new file mode 100644 index 0000000..c23eb07 --- /dev/null +++ b/.agent/test/02_Database_Schema.md @@ -0,0 +1,60 @@ +--- +document_type: database +priority: CRITICAL +--- +# 데이터베이스 스키마 명세 (MariaDB) + +MariaDB v10.6+를 사용하며, 총 18개의 테이블로 구성됩니다. ORM 없이 Raw SQL과 `aiomysql` 드라이버를 사용합니다. **공간 데이터(GEOMETRY)는 지원 한계로 인해 JSONB 또는 TEXT(GeoJSON)로 저장합니다.** + +## 테이블 목록 및 컬럼 구조 + +### 1. 사용자 & 프로젝트 (Core) +* **`users`**: `id`(PK), `email`, `password_hash`, `name`, `position`, `department`, `phone`, `company_id`(FK) +* **`companies`**: `id`(PK), `name`, `business_registration_number`, `business_address`, `business_owner`, `business_status` +* **`projects`**: `id`(UUID, PK), `user_id`(FK), `company_id`(FK), `name`, `region`, `road_type`, `status`, `crs_epsg`, `storage_path` +* **`project_versions`**: `id`, `project_id`, `version_num`, `data`(JSONB) + +### 2. 파일 & 지표면 데이터 (WF0, WF1) +* **`input_files`**: `id`(PK), `project_id`(FK), `file_type`(las, tif 등), `original_filename`, `raw_file_path`, `crs_epsg`, `metadata`(JSONB) +* **`processed_point_cloud`**: `id`, `input_file_id`, `project_id`, `processed_file_path`, `converted_file_path`, `min_z`, `max_z` 등 통계치 +* **`surface_models`**: `id`, `project_id`, `model_type`(dem_grid, tin 등), `model_file_path`, `generation_params`(JSONB) +* **`terrain_layers`**: `id`, `surface_model_id`, `layer_name`, `layer_file_path`(geojson 등) + +### 3. 경로 설계 (WF2) +* **`routes`**: `id`(PK), `project_id`, `surface_model_id`, `status`, `geometry`(LineString JSON), `route_data_path`, `constraints`(JSONB) +* **`route_points`**: `id`, `route_id`, `chainage_m`, `geometry`(Point JSON), `elevation_m` +* **`route_statistics`**: `id`, `route_id`, `mean_slope`, `cut_volume_m3`, `fill_volume_m3` + +### 4. 종횡단 및 구조물 설계 (WF3, WF4) +* **`longitudinal_sections`**: `id`, `project_id`, `route_id`, `longitudinal_file_path`, `data`(JSONB - chainages, elevations 등 배열) +* **`cross_sections`**: `id`, `route_id`, `chainage_m`, `cross_section_file_path`, `data`(JSONB - left_slope, cut_volume_m3 등) +* **`structures`**: `id`, `cross_section_id`, `structure_type`, `location`(LEFT/RIGHT/CENTER), `length_m`, `geometry`(Polygon JSON), `structure_data_path` + +### 5. 수량 산출 및 산출물 (WF5, WF6) +* **`quantity_items`**: `id`, `project_id`, `category`, `item_name`, `quantity_design`, `quantity_actual`, `unit_price`, `quantity_data_path` +* **`outputs`**: `id`, `project_id`, `output_type`, `outputs_directory_path` +* **`output_files`**: `id`, `output_id`, `file_type`, `output_file_path` + +### 6. 로그 (Audit) +* **`audit_logs`**, **`change_logs`** + +--- + +## 💡 주요 원칙 (DB vs File System) +- **DB에는 메타데이터와 파일 시스템의 "상대 경로"만 기록합니다.** (예: `input_files.raw_file_path = "B03_FileInput/input/las/cloud.las"`) +- 대용량 파일(LAS, TIF, GeoJSON)은 MariaDB에 Blob으로 저장하지 않습니다. + +## 📝 쿼리 작성 예제 (Raw SQL & aiomysql) +```python +# 쿼리에는 ORM이 아닌 %s 플레이스홀더를 사용해야 함 +async def get_project_route(pool, project_id: str): + async with pool.acquire() as conn: + async with conn.cursor() as cur: + await cur.execute(""" + SELECT r.id, r.total_length_m, r.route_data_path + FROM routes r + WHERE r.project_id = %s + ORDER BY r.computed_at DESC LIMIT 1 + """, (project_id,)) + return await cur.fetchone() +``` diff --git a/.agent/test/03_Backend_Logic_and_Storage.md b/.agent/test/03_Backend_Logic_and_Storage.md new file mode 100644 index 0000000..8ade290 --- /dev/null +++ b/.agent/test/03_Backend_Logic_and_Storage.md @@ -0,0 +1,44 @@ +--- +document_type: backend +priority: HIGH +--- +# 백엔드 제어 및 저장소/워크플로우 명세 + +## 1. 물리 파일 및 저장소 구조 (Workflow Mapping) +프로젝트 저장소 내부는 워크플로우 단계와 1:1로 매핑됩니다. 백엔드에서 파일을 다룰 때는 DB에 직접 Blob을 저장하지 않고 이 구조를 따라 저장 후 DB에 상대 경로만 기록합니다. + +```text +storage/{company_slug}/{user_slug}/{project_id}/ +├── B03_FileInput/ +│ └── input/ (원본 업로드 파일들: .las, .tif) +├── B04_wf1_Surface/ +│ ├── processed/ (변환된 데이터: cloud_filtered.las 등) +│ └── models/ (DEM, TIN 결과물: dem_2m.tif, layer.geojson) +├── B05_wf2_Route/ +│ └── route/ (최적 경로: route_main.geojson) +├── B06_wf3_ProfileCross/ +│ ├── longitudinal/ (종단면: longitudinal.json) +│ └── cross_sections/ (횡단면 배열: cross_0020m.json 등) +├── B07_wf4_DesignDetail/ +│ └── structures/ (구조물 객체: struct_0020m_001.json) +├── B08_wf5_Quantity/ +│ └── quantities/ (수량 집계: items.json) +└── B09_wf6_Estimation/ + └── v1/, v2/ (버전별 최종 엑셀, PDF, DXF) +``` +**규칙:** 페이지별 백엔드 모듈은 자기 단계의 폴더만 제어합니다. 하위 단계의 파일을 강제로 지우거나 덮어쓰지 않고 `stale_from` 상태를 통해 제어합니다. + +## 2. 워크플로우 상태 동기화 (workflow.json) +다중 브라우저 동시 작업을 지원하기 위해 서버 측 상태 파일(`workflow.json`)을 원자적(Atomic)으로 관리합니다. + +* **Stale (상태 무효화) 발생:** + 상위 단계(예: 지표면 분석 B04)가 재계산되면, 그에 의존하는 하위 단계(경로 B05, 횡단 B06 등) 결과는 신뢰할 수 없으므로 `workflow.json`에 `stale_from: "route"` 형태로 마킹됩니다. +* **상태 업데이트 함수 (예시):** + ```python + def _patch_workflow_stale(project_id: str, stale_from: str | None) -> None: + # workflow.json의 stale_from 필드만 원자적 업데이트 + ``` + +## 3. 클라이언트 폴링 (Polling) +- 프론트는 3초 주기로 `GET /api/projects/{project_id}/workflow` 를 폴링합니다. +- 서버가 반환하는 `stale_from` 값을 확인하여, 만약 현재 단계와 다르다면 UI에서 사용자에게 "결과가 변경되었습니다. 재계산하시겠습니까?"를 경고합니다. diff --git a/.agent/test/03_Backend_and_DB.md b/.agent/test/03_Backend_and_DB.md new file mode 100644 index 0000000..b7fdbcc --- /dev/null +++ b/.agent/test/03_Backend_and_DB.md @@ -0,0 +1,23 @@ +--- +document_type: backend +priority: HIGH +--- +# 백엔드 & 데이터베이스 제어 명세 + +## 🐍 백엔드 (FastAPI / Python) +- **파일 분할:** 라우터(`_Router.py`), 비즈니스 로직(`_Engine.py`), 스키마(`_Schema.py`), DB 접근(`_Repository.py`) 형태로 세분화. +- **데이터 검증:** 모든 JSON 요청은 Pydantic 모델을 통해 라우터 진입 전 타입/범위 필수 검증. +- **예외 처리:** 지형/메쉬 연산 등 복잡한 로직 수행 시 `try-except` 필수 처리. 에러 발생 시 `{"status": "error", "message": "원인"}` 반환 표준 포맷 유지. + +## 🗄️ 데이터베이스 (MariaDB) +- **[MUST]** 비동기 통신: `aiomysql` 드라이버 사용 강제. (`asyncmy` 사용 불가) +- **[DON'T]** ORM 사용 금지: 오직 **Raw SQL**만 작성한다. +- **[MUST]** 파라미터 바인딩: `%s` 플레이스홀더를 사용하여 SQL Injection 방지. +- **트랜잭션:** `pool.acquire()`로 커넥션 확보 후 다건 쓰기는 `connection.begin()` → `commit()` / 예외 시 `rollback()` 필수. +- **자동 증가 ID:** `INSERT` 후 `cursor.lastrowid`로 조회. +- **공간 데이터 처리:** MariaDB의 GEOMETRY 타입 한계로 인해, 공간 기하 데이터(좌표, 다각형, 경로 등)는 JSON (GeoJSON 형식)으로 저장 후 애플리케이션(Python Shapely/Geopandas)에서 파싱하여 기하 연산을 처리한다. + +## 🔄 워크플로우 상태 동기화 (Sync) +- **공유 상태:** 다중 브라우저 대응을 위해 각 프로젝트는 `workflow.json`으로 현재 진행 단계와 'stale(무효화)' 상태를 관리한다. +- **Stale 전파:** 상위 단계(예: 지표면 분석)가 재실행되면 하위 단계들은 자동으로 `stale_from`으로 표기되며, 클라이언트는 3초 주기의 폴링(Polling)을 통해 상태를 확인하고 경고/재계산을 유도한다. +- **원자적 쓰기:** `workflow.json` 상태 업데이트는 `common_util_workflow.py`를 통해 원자적 업데이트로 보호되어야 한다. diff --git a/.agent/test/04_Frontend_and_Design.md b/.agent/test/04_Frontend_and_Design.md new file mode 100644 index 0000000..3733817 --- /dev/null +++ b/.agent/test/04_Frontend_and_Design.md @@ -0,0 +1,47 @@ +--- +document_type: frontend +priority: HIGH +--- +# 프론트엔드 제어 및 Wiza 디자인 시스템 + +## 1. Wiza 디자인 시스템 (Theme Constraints) +프론트엔드 UI는 Wiza 브랜드 가이드라인에 따라 구현해야 합니다. 하드코딩된 색상이나 수치를 금지하며, 제공되는 `ui_template_theme.css` 토큰을 사용합니다. + +* **색상 토큰 (Monochromatic Violet):** + - `--color-deep-iris` (#26114a): 헤드라인, 메인 버튼 배경 (강조) + - `--color-plum-velvet` (#312749): 네비게이션, 2차 헤딩 + - `--color-royal-amethyst` (#3e0079): 링크, 포커스 링, 강조 아이콘 + - `--color-lavender-wash`: 영웅 영역 및 섹션의 부드러운 그라데이션 배경 + - `--color-canvas` (#ffffff): 카드, 입력 폼 등 캔버스 표면 +* **타이포그래피:** + - **Display/Heading:** `Britti Sans` (대체제: Plus Jakarta Sans), 500 Weight, **Line-height 1.0 (절대 준수)**. + - **Body/UI:** `Inter`, 400/500/700 Weight, 크기는 컴팩트하게(12~16px) 유지. +* **형태 및 간격 (Spacing & Radius):** + - 카드, 버튼, 인풋 폼 등 모든 사각형 컨테이너는 **8px Radius** 강제. + - 뱃지(Badge), 필(Pill), 네비게이션 아이템 등은 **1440px Radius** 강제. + - 요소 간 기본 간격 유닛은 **8px**. + +## 2. 레이아웃 제약 +워크플로우 페이지(B04~B09)는 반드시 **3단 기본 레이아웃**을 따릅니다. +1. 상단: 페이지 타이틀 및 현재 진행 단계 +2. 좌측: 데이터 입력 폼 및 설정 제어 패널 (너비 고정) +3. 우측: WebCAD 도면 뷰어 (Canvas/WebGL) 또는 결과 데이터 그리드 (나머지 화면 너비 전체) + +## 3. 다국어 제어 원칙 (i18n) +모든 텍스트는 컴포넌트 내에 직접 작성할 수 없습니다. + +```typescript +// 선언부: ui_template/ui_template_locale.ts +export const ui_locales = { + A01_Home_Title: ["반갑습니다", "Welcome"], + B04_wf1_Surface_Btn: ["지표면 분석 실행", "Run Surface Analysis"] +}; + +// 구현부 호출 예시 + +``` + +## 4. 로직 컨벤션 (TypeScript) +* **이벤트 핸들러:** `on[페이지명]_[기능명]_[액션]` 형태 강제. (예: `onB04_Surface_Calculate_Click`) +* **프론트 유효성 검사:** 백엔드 API 전송 전, 1차적으로 빈 값 및 타입 유효성 검사를 수행하여 피드백합니다. +* **로딩 스피너:** API 요청 시작 전 Overlay 활성화, 통신 성공/실패 시 즉시 해제 로직 필수. diff --git a/.agent/test/04_Frontend_and_UI.md b/.agent/test/04_Frontend_and_UI.md new file mode 100644 index 0000000..84ffd83 --- /dev/null +++ b/.agent/test/04_Frontend_and_UI.md @@ -0,0 +1,26 @@ +--- +document_type: frontend +priority: HIGH +--- +# 프론트엔드 및 UI 제어 명세 + +## 🎨 테마 및 디자인 규약 +- **[DON'T]** 하드코딩된 Hex 색상 코드나 임의의 스타일 직접 입력 금지. +- **[MUST]** 테마(라이트/다크) 전환 호환을 위해 `ui_template/ui_template_theme.css`에 선언된 CSS 변수(`var(--color-...)`)만 참조. +- **공통 레이아웃 (3단 분리 준수):** + 1. 상단 영역: 페이지 타이틀 및 진행 상태 (헤더) + 2. 좌측 패널: 데이터 입력 폼 및 제어 설정 창 (고정 너비) + 3. 우측 영역: WebCAD 도면 뷰어 (Canvas/WebGL) 또는 데이터 그리드 (가변 너비) + +## 🌐 다국어 지원 (i18n) +- **[DON'T]** UI 문자열(라벨, 버튼 명, 툴팁, 안내 메시지 등)의 코드 내 하드코딩 절대 금지. +- **[MUST]** 동시 수정 프로토콜: + 1. 신규 텍스트 발생 시 `ui_template/ui_template_locale.ts` 최하단에 키(Key)와 번역 배열(`[한국어, 영어]`) 선 등록. + 2. 컴포넌트 내에서는 `ui_locales.키값[현재언어인덱스]` 형태로만 호출한다. + 3. UI 수정 PR시 다국어 업데이트 내역 누락은 심각한 에러로 취급한다. + +## ⚙️ TypeScript 및 로직 제어 +- **이벤트 핸들러 명명법:** `on[페이지명]_[기능명]_[액션]` 규칙 준수. + - 예: `onB04_Surface_Calculate_Click` +- **상태 제어 피드백:** API 비동기 호출 시작 시 전체 로딩 스피너(Overlay) 활성화, 통신 완료(성공/에러) 시 반드시 해제 보장. +- **1차 검증:** 백엔드 전송 전 빈 값, 최대 길이, 숫자 범위 검증은 프론트엔드(`common_util_validate.ts`)에서 우선 처리하며, 에러 시 입력창 주변에 명시한다. diff --git a/.agent/test/05_Workflow_and_Storage.md b/.agent/test/05_Workflow_and_Storage.md new file mode 100644 index 0000000..0cd4d67 --- /dev/null +++ b/.agent/test/05_Workflow_and_Storage.md @@ -0,0 +1,31 @@ +--- +document_type: workflow +priority: HIGH +--- +# 워크플로우 및 데이터 저장소 명세 + +## 🔄 6단계 워크플로우 (6-Stage Workflow) +설계의 순차적 흐름을 정의하며, DB 및 폴더 구조와 1:1 맵핑됩니다. + +- **WF0 (B03): 파일 입력** - 사용자 원본 파일 (LAS, TIF, DXF 등) 업로드 +- **WF1 (B04): 지표면 분석** - 포인트클라우드 포맷 변환 및 지표면 모델(DEM/TIN) 생성 +- **WF2 (B05): 경로 설계** - 제약조건 반영 최적 선형 도출 (GeoJSON) +- **WF3 (B06): 종횡단 생성** - 종단면도, 횡단면도 지형/설계 데이터 생성 +- **WF4 (B07): 상세 설계** - 횡단면별 구조물(옹벽, 수로 등) 배치 +- **WF5 (B08): 수량 산출** - 구조물 수량 및 토공량 집계 +- **WF6 (B09): 견적·문서** - Excel, PDF, DXF 등 최종 산출물 패키지 생성 + +## 📁 영구 저장소 구조 (파일시스템) +중간 산출물(LAS, TIF, GeoJSON 등) 및 대용량 파일은 DB가 아닌 파일시스템에 저장되며, DB(MariaDB)에는 저장된 파일의 **상대 경로**만 기록합니다. 임의의 위치에 파일을 쓰거나 사용자 입력을 경로에 그대로 결합하지 않습니다. + +**저장 규칙 기반 디렉토리 구조:** +`storage/{company_slug}/{user_slug}/{project_id}/` 내부 +- `B03_FileInput/input/` : 원본 업로드 파일 +- `B04_wf1_Surface/processed/` : 변환 완료된 파일 (ply, 필터링 las 등) +- `B04_wf1_Surface/models/` : 생성된 DEM, TIN 모델 +- `B05_wf2_Route/route/` : 주요 경로선 (GeoJSON) 및 제약 정보 +- `B06_wf3_ProfileCross/longitudinal/` : 종단면 데이터셋 +- `B06_wf3_ProfileCross/cross_sections/` : 구간별 횡단면 데이터셋 +- `B07_wf4_DesignDetail/structures/` : 배치된 구조물 메타데이터 +- `B08_wf5_Quantity/quantities/` : 산출 물량표 내역 +- `B09_wf6_Estimation/v1/` : 완료 버전별 패키징 결과물 (엑셀, 도면) diff --git a/.agents/instructions.md b/.agents/instructions.md deleted file mode 120000 index c50fbcb..0000000 --- a/.agents/instructions.md +++ /dev/null @@ -1 +0,0 @@ -../.agent/design.md \ No newline at end of file diff --git a/.ai-rules b/.ai-rules deleted file mode 120000 index a7453fe..0000000 --- a/.ai-rules +++ /dev/null @@ -1 +0,0 @@ -.agent/agent.md \ No newline at end of file diff --git a/.claude/settings.local.json b/.claude/settings.local.json index 06a8bb1..647cd27 100644 --- a/.claude/settings.local.json +++ b/.claude/settings.local.json @@ -7,7 +7,8 @@ "Bash(ruff format *)", "Bash(ruff check *)", "Bash(./venv/Scripts/python.exe -m unittest discover -s tests -p \"test_b04_surface_filter_pmf.py\" -v)", - "Bash(./venv/Scripts/python.exe -m unittest discover -s tests -p \"test_b04_surface_filter_ransac.py\" -v)" + "Bash(./venv/Scripts/python.exe -m unittest discover -s tests -p \"test_b04_surface_filter_ransac.py\" -v)", + "Bash(curl -s http://localhost:5175/ui_template/ui_template_theme.css)" ] } } diff --git a/.env b/.env new file mode 100644 index 0000000..4f7f4a5 --- /dev/null +++ b/.env @@ -0,0 +1,21 @@ +SERVER_HOST=0.0.0.0 +SERVER_PORT=8000 +DEBUG=True +ENVIRONMENT=development + +DB_HOST=dsm.chemifactory.com +DB_PORT=53306 +DB_NAME=aislo_db +DB_USER=ctnt_root +DB_PASSWORD=Umsang6595!! +DB_POOL_MIN=5 +DB_POOL_MAX=20 + +LOG_LEVEL=INFO +UPLOAD_MAX_MB=500 +MESH_GRID_SIZE=1.0 +MESH_SMOOTHING_ITERATIONS=0 +SPATIAL_INDEX_ENABLED=True +JWT_SECRET_KEY=your-secret-key-change-in-production +JWT_EXPIRE_MINUTES=1440 +CORS_ORIGINS=http://localhost:5173,http://localhost:8000 diff --git a/.env.example b/.env.example deleted file mode 100644 index 152ede0..0000000 --- a/.env.example +++ /dev/null @@ -1,40 +0,0 @@ -# 서버 설정 -SERVER_HOST=0.0.0.0 -SERVER_PORT=8000 -DEBUG=False -ENVIRONMENT=development - -# 데이터베이스 (MariaDB) -DB_HOST=localhost -DB_PORT=3306 -DB_NAME=aislo_db -DB_USER=aislo -DB_PASSWORD=aislo -DB_POOL_MIN=5 -DB_POOL_MAX=20 - -# 로깅 -LOG_LEVEL=INFO - -# 파일 업로드 -UPLOAD_MAX_MB=500 -UPLOAD_MAX_FILES=20 -UPLOAD_CHUNK_SIZE_BYTES=1048576 - -# 지형 분석 파라미터 -MESH_GRID_SIZE=1.0 -MESH_SMOOTHING_ITERATIONS=0 -SURFACE_LAS_CHUNK_SIZE=500000 -SURFACE_DEFAULT_RGB_VALUE=128 -SURFACE_GRID_CELL_SIZE_M=2.0 -SURFACE_GRID_HEIGHT_THRESHOLD_M=1.5 - -# 인증 -JWT_SECRET_KEY=your-secret-key-change-in-production -JWT_EXPIRE_MINUTES=1440 - -# CORS (프론트엔드 도메인) -CORS_ORIGINS=http://localhost:5173,http://localhost:8000 - -# 프론트엔드 빌드 결과 폴더 -STATIC_DIR=node_modules/.build diff --git a/.gitignore b/.gitignore index 1eb568f..4dd8899 100644 --- a/.gitignore +++ b/.gitignore @@ -1,22 +1,26 @@ # Python venv/ -__pycache__/ -*.pyc +**/__pycache__/ +**/*.pyc .pytest_cache/ -.env -.env.* -!.env.example # Node / Frontend (루트 기반 구조) node_modules/ dist/ *.tsbuildinfo - -# 구형 코드 백업 (참고용, 빌드 제외) -0_old/node_modules/ -0_old/dist/ +config\node_modules # Storage (물리 산출물) storage/projects/*/processed/*.json storage/projects/*/processed/*.png storage/projects/*/exports/*.json + +#.claude +.dependencygraph/ +.ruff_cache/ + +# 구형 코드 백업 (참고용, 빌드 제외) +0_old/ + +# 신규 백업 +storage \ No newline at end of file diff --git a/A00_Common/.vite/deps/_metadata.json b/A00_Common/.vite/deps/_metadata.json index e102234..bb947df 100644 --- a/A00_Common/.vite/deps/_metadata.json +++ b/A00_Common/.vite/deps/_metadata.json @@ -1,8 +1,8 @@ { - "hash": "c4f37c34", - "configHash": "ac5d08a1", - "lockfileHash": "35998b1e", - "browserHash": "7f5b0cf9", + "hash": "43705b0a", + "configHash": "f5412da4", + "lockfileHash": "0cc0e656", + "browserHash": "ae6c1db5", "optimized": {}, "chunks": {} } \ No newline at end of file diff --git a/A00_Common/index.html b/A00_Common/index.html index 9aac481..1a5d34f 100644 --- a/A00_Common/index.html +++ b/A00_Common/index.html @@ -4,7 +4,6 @@ 임도 설계 및 견적 자동화 -
diff --git a/A00_Common/main.ts b/A00_Common/main.ts index e328717..33baaa2 100644 --- a/A00_Common/main.ts +++ b/A00_Common/main.ts @@ -8,6 +8,7 @@ * - hashchange 1회 구독: 셸 chrome 갱신 + 현재 라우트 렌더 * ========================================================================== */ +import "@ui/ui_template_theme.css"; import { injectBaseStyles } from "@ui/ui_template_elements"; import { initThemeAndLang, injectShellStyles, renderShell } from "./app_shell"; import { renderCurrentRoute, ensureInitialHash } from "./router"; diff --git a/A01_Home/A01_Home_UI_Page.ts b/A01_Home/A01_Home_UI_Page.ts index 110f0c4..d163526 100644 --- a/A01_Home/A01_Home_UI_Page.ts +++ b/A01_Home/A01_Home_UI_Page.ts @@ -12,7 +12,7 @@ import { ui_locales, currentLanguageIndex } from "@ui/ui_template_locale"; import { createButton, createCard, createTag } from "@ui/ui_template_elements"; import { navigateTo } from "../A00_Common/router"; -import { ROUTES } from "@config/config_frontend"; +import { ROUTES, AUTH_TOKEN_KEY } from "@config/config_frontend"; import "./A01_Home_UI_Style.css"; /** locale 헬퍼 */ @@ -46,6 +46,11 @@ function onA01_Home_Explore_Click(): void { navigateTo(ROUTES.A02_PROG_DETAIL); } +function navigateToDevPage(route: string): void { + localStorage.setItem(AUTH_TOKEN_KEY, "dev-temp-token"); + navigateTo(route as never); +} + /* ----------------------------------------------------------------------------- * 섹션 빌더 * -------------------------------------------------------------------------- */ @@ -145,12 +150,56 @@ function buildFeatures(): HTMLElement { return section; } +function buildDevMenu(): HTMLElement { + const section = document.createElement("section"); + section.className = "a01-section a01-dev-menu"; + section.style.opacity = "0.6"; + section.style.borderTop = "2px dashed var(--color-slate)"; + section.style.marginTop = "var(--spacing-48)"; + section.style.paddingTop = "var(--spacing-48)"; + + const heading = document.createElement("h2"); + heading.className = "a01-section__title"; + heading.textContent = "🔧 개발 모드 - B 그룹 테스트"; + + const grid = document.createElement("div"); + grid.className = "a01-feature-grid"; + grid.style.gridTemplateColumns = "repeat(auto-fit, minmax(200px, 1fr))"; + + const bPages: [string, string][] = [ + [ROUTES.B01_ACCOUNT, "B01 · 계정 상세"], + [ROUTES.B02_PROJ_REGISTER, "B02 · 프로젝트 등록"], + [ROUTES.B03_FILE_INPUT, "B03 · 파일 입력"], + [ROUTES.B04_WF1_SURFACE, "B04 · 지표면 분석"], + [ROUTES.B05_WF2_ROUTE, "B05 · 경로 설계"], + [ROUTES.B06_WF3_PROFILE_CROSS, "B06 · 종횡단 생성"], + [ROUTES.B07_WF4_DESIGN_DETAIL, "B07 · 상세 설계"], + [ROUTES.B08_WF5_QUANTITY, "B08 · 수량 산출"], + [ROUTES.B09_WF6_ESTIMATION, "B09 · 견적/문서"], + [ROUTES.B10_PAYMENT, "B10 · 결재"], + [ROUTES.B11_STATUS, "B11 · 상태 출력"], + ]; + + for (const [route, label] of bPages) { + const btn = createButton({ + label, + variant: "ghost", + onClick: () => navigateToDevPage(route), + }); + btn.style.width = "100%"; + grid.append(btn); + } + + section.append(heading, grid); + return section; +} + /* ----------------------------------------------------------------------------- * 페이지 진입점 * -------------------------------------------------------------------------- */ export function renderA01Home(root: HTMLElement): void { const page = document.createElement("div"); page.className = "a01-home"; - page.append(buildHero(), buildNews(), buildFeatures()); + page.append(buildHero(), buildNews(), buildFeatures(), buildDevMenu()); root.append(page); } diff --git a/AGENTS.md b/AGENTS.md new file mode 100644 index 0000000..19ad6d1 --- /dev/null +++ b/AGENTS.md @@ -0,0 +1,148 @@ +# 프로젝트 행동지침 및 기술 스택 명세 (agent.md) + +## 프로젝트 & DB 정보 + +### 📌 프로그램명 +**Aislo (아이슬로)** +- **의미**: AI (인공지능) + Slotti (핀란드어: 임도/산림 도로) +- **콘셉트**: 산림의 미래를 열어가는 인공지능 경로 설계 솔루션 + +--- + +## 1. 기술 환경 및 기본 스택 (Technical Stack Baseline) +프로젝트의 코드를 작성, 테스트 또는 검증할 환경 명확화 및 호환 기준 제시. + +### A. 백엔드 프레임워크 (Python) +* **Runtime:** Python v3.12 or v3.13.7 +* **Framework:** FastAPI / Pydantic +* **Geometry/GIS Engine:** Trimesh, Whitebox, Geopandas, Shapely, Rasterio, Laspy + +### B. 데이터베이스 (MariaDB) +* **DBMS:** MariaDB v10.6+ +* **Character Set:** utf8mb4 (한글 완벽 지원) +* **Collation:** utf8mb4_unicode_ci +* **DB Driver (비동기):** `aiomysql` (순수 Python, Windows 호환. asyncmy는 Cython 빌드 필요로 미채택) +* **쿼리 방식:** Raw SQL (ORM 사용 금지) +* **공간 데이터:** JSON 기반 저장 (MariaDB는 PostGIS 미지원) + +### C. 프론트엔드 & WebCAD (TypeScript & WebGL) +* **Language/Runtime:** TypeScript / Node.js +* **Rendering:** HTML5 Canvas 및 WebGL 기반 WebCAD 시스템 구현 + +### D. 인코딩 및 다국어 표준 +* **인코딩:** 텍스트 파일은 UTF-8 표준으로 통일 + +--- + +## 2. 문맥 라우팅 및 문서 구조 (Context Routing) +코드 작성 및 기술 검증 시 문서 우선순위에 따른 계층적 레퍼런스 필수 읽기. + +* **1단계 (필수):** `.agent/structure.md` 읽기 후 신규 폴더 생성 기준 분석. +* **2단계 (선택 읽기):** 프로젝트 구현에 필요한 세부 기술 명세 읽기. + * **그룹 A (UI, 스타일, 컴포넌트, WebCAD):** `.agent/frontend.md` 필수 추가 읽기. + * **그룹 B (알고리즘, 저장, DB, MariaDB 값 제어):** `.agent/backend.md` 필수 추가 읽기. + * **그룹 C (DB 구조 변경):** DB 구조 변경 시 `.agent/db_schema.md` 선택적 읽기. + +--- + +## 3. 코드 작성 기본 제약 (Constraints) +* **구조 준수:** `.agent/structure.md` 트리 구조 엄격 준수. +* **700줄 제한:** 단일 파일 코드 작성/수정 시 700줄 이상이 될 경우 사전 공지. 기능별 파일 분할 후 `structure.md` 갱신 필수. +* **안전 보관:** 백엔드 작업 시 보안 저장소 경로 명시 및 임의 삭제 방지 필수. +* **경로 활용:** 단계별 페이지 기반 폴더 구조(B03~B09)와 DB 경로 열의 기준은 `.agent/db_schema_simple.md`의 「파일시스템 경로와 DB 링크」를 따른다. +* **일관성 검증:** 설계 단계에서부터 DB 설계, 파일 경로, API 라우팅이 모두 동일한 워크플로우 기준으로 통일되어야 한다. (불일치 발생 시 설계 단계에서 재논의 필수) +* **코드 포맷팅 (자동화 도구):** 프로젝트의 코드 작성이 완료되는 시, 반드시 프로젝트 루트에서 각 언어별 포맷터를 재실행하여 스타일을 통일해야 한다. + * *Python 포맷팅 명령어:* `ruff format [파일명]` 및 `ruff check --fix [파일명]` 실행 + * *TypeScript/CSS 포맷팅 명령어:* `npx prettier --write [파일명]` 실행 +* **외부 라이브러리 활용:** 외부 라이브러리 활용 시 프로젝트에 맞춰 호환 라이브러리 선정하고, 불필요한 함수는 작성하지 않도록 최소화. + +--- + +## 4. 데이터베이스 상세 명세 (Database Specification) + +### 4.1 스키마 기본 정보 +- **DB 명:** `aislo_db` +- **DBMS:** MariaDB v10.6+ +- **인코딩:** utf8mb4_unicode_ci +- **테이블 수:** 18개 +- **드라이버:** aiomysql (비동기) + +### 4.2 파일 경로 추적 (Path Tracking) +**모든 중간 산출물의 파일 경로를 DB에 기록:** +- `input_files.raw_file_path` — 원본 입력 파일 +- `processed_point_cloud.converted_file_path` — 변환된 포인트클라우드 +- `surface_models.model_file_path` — 지표면 모델 +- `routes.route_data_path` — 경로 데이터 +- `longitudinal_sections.longitudinal_file_path` — 종단면 +- `cross_sections.cross_section_file_path` — 횡단면 +- `structures.structure_data_path` — 구조물 배치 +- `quantity_items.quantity_data_path` — 수량 항목 +- `outputs.outputs_directory_path` — 산출물 폴더 +- `output_files.output_file_path` — 개별 산출 파일 + +### 4.3 저장소 구조 (Workflow-based Folder Structure) +``` +storage/{company_slug}/{user_slug}/{project_id}/ +├── B03_FileInput/input/ (WF0: 원본 입력) +├── B04_wf1_Surface/processed/ (WF1: 변환된 포인트클라우드 & 모델) +├── B05_wf2_Route/route/ (WF2: 경로 설계) +├── B06_wf3_ProfileCross/ (WF3: 종단면 & 횡단면) +├── B07_wf4_DesignDetail/structures/ (WF4: 구조물 배치) +├── B08_wf5_Quantity/quantities/ (WF5: 수량 산출) +└── B09_wf6_Estimation/v1,v2,.../ (WF6: 최종 산출물) +``` + +### 4.4 공간 데이터 처리 (MariaDB 특성) +- **지하형 기하 데이터:** GEOMETRY 타입 미지원 → JSON으로 저장 +- **좌표 저장 예:** `{"type": "Point", "coordinates": [127.5, 37.5]}` +- **경로 저장 예:** `{"type": "LineString", "coordinates": [[127.5, 37.5], [127.6, 37.6]]}` +- **애플리케이션 처리:** Python의 Shapely, Geopandas에서 JSON 파싱 후 기하 연산 + +--- + +## 5. 워크플로우 6단계 (6-Stage Workflow) + +``` +WF0: B03_FileInput (파일 입력) + ↓ (LAS, TIF, TFW, PRJ, DXF 업로드) +WF1: B04_wf1_Surface (지표면 분석) + ↓ (DEM, TIN, 포인트클라우드 변환) +WF2: B05_wf2_Route (경로 설계) + ↓ (최적 경로 계산) +WF3: B06_wf3_ProfileCross (종횡단 생성) + ↓ (종단면, 횡단면 생성) +WF4: B07_wf4_DesignDetail (상세 설계) + ↓ (구조물 배치) +WF5: B08_wf5_Quantity (수량 산출) + ↓ (수량 항목 계산) +WF6: B09_wf6_Estimation (견적·문서) + ↓ (Excel, PDF, DXF 생성) +``` + +--- + +## 6. 주요 문서 참고 순서 + +1. **구조 설계:** `.agent/structure.md` 읽기 +2. **프론트 구현:** `.agent/frontend.md` 읽기 +3. **백엔드 구현:** `.agent/backend.md` 읽기 +4. **마이그레이션:** `.agent/migration_plan.md` 읽기 +5. **DB 스키마:** `.agent/db_schema_simple.md` 읽기 +6. **프로젝트 정보:** `.agent/project_info.md` 읽기 + +--- + +## 7. 요약 + +| 항목 | 값 | +|------|-----| +| **프로그램명** | Aislo (아이슬로) | +| **DB 명** | aislo_db | +| **DBMS** | MariaDB v10.6+ | +| **인코딩** | utf8mb4_unicode_ci | +| **Backend** | Python 3.12+ / FastAPI | +| **Frontend** | TypeScript / Node.js | +| **드라이버** | aiomysql | +| **워크플로우** | 6단계 (WF0~WF6) | +| **테이블 수** | 18개 | +| **폴더 구조** | 워크플로우 기반 (B03~B09) | diff --git a/B04_wf1_Surface/B04_wf1_Surface_UI_Style.css b/B04_wf1_Surface/B04_wf1_Surface_UI_Style.css new file mode 100644 index 0000000..6b30941 --- /dev/null +++ b/B04_wf1_Surface/B04_wf1_Surface_UI_Style.css @@ -0,0 +1,109 @@ +/* ============================================================================= + * B04_wf1_Surface_UI_Style.css + * 1차 워크플로우(지표면 모델 분석) 페이지 전용 스타일. + * + * 원칙(frontend.md §1): 하드코딩 색상 금지. theme.css 변수(var(--...))만 참조. + * 공통 컴포넌트(ui-wf, ui-btn 등) 스타일은 ui_template_elements.ts가 주입하므로 + * 여기서는 B04 고유 레이아웃(폼 그룹/모델 카드)만 정의한다. + * ========================================================================== */ + +/* --- 좌측 입력 폼 --- */ +.b04-surface__form { + display: flex; + flex-direction: column; + gap: var(--spacing-16); +} + +.b04-surface__group { + display: flex; + flex-direction: column; + gap: var(--spacing-8); + margin: 0; + padding: var(--spacing-16); + border: 1px solid var(--color-border); + border-radius: var(--radius-cards); + background-color: var(--color-surface-raised); +} + +.b04-surface__group-legend { + padding: 0 var(--spacing-8); + font-size: var(--text-caption); + font-weight: var(--font-weight-medium); + color: var(--color-text-secondary); +} + +.b04-surface__check { + display: flex; + align-items: center; + gap: var(--spacing-8); + font-size: var(--text-body-sm); + color: var(--color-text-body); + cursor: pointer; +} + +.b04-surface__check input { + accent-color: var(--color-primary); +} + +/* --- 우측 결과 영역 --- */ +.b04-surface__result { + display: flex; + flex-direction: column; + gap: var(--spacing-16); + padding: var(--spacing-24); +} + +.b04-surface__result-head { + display: flex; + align-items: center; + justify-content: space-between; +} + +.b04-surface__result-head h3 { + font-size: var(--text-subheading); + color: var(--color-text); +} + +.b04-surface__models { + display: grid; + grid-template-columns: repeat(auto-fill, minmax(240px, 1fr)); + gap: var(--spacing-16); +} + +.b04-surface__empty { + color: var(--color-text-muted); + font-size: var(--text-body-sm); +} + +.b04-surface__model-card { + display: flex; + flex-direction: column; + gap: var(--spacing-8); + padding: var(--spacing-16); + border: 1px solid var(--color-border); + border-radius: var(--radius-cards); + background-color: var(--color-surface-raised); + box-shadow: var(--shadow-sm); +} + +.b04-surface__model-head { + display: flex; + align-items: center; + justify-content: space-between; + gap: var(--spacing-8); +} + +.b04-surface__model-head strong { + font-family: var(--font-display); + color: var(--color-plum-velvet); + text-transform: uppercase; +} + +.b04-surface__model-meta { + display: flex; + flex-direction: column; + gap: var(--spacing-4); + font-size: var(--text-caption); + color: var(--color-text-secondary); + word-break: break-all; +} diff --git a/B05_wf2_Route/B05_wf2_Route_Api_Fetch.ts b/B05_wf2_Route/B05_wf2_Route_Api_Fetch.ts new file mode 100644 index 0000000..d563baa --- /dev/null +++ b/B05_wf2_Route/B05_wf2_Route_Api_Fetch.ts @@ -0,0 +1,99 @@ +/* ============================================================================= + * B05_wf2_Route_Api_Fetch.ts + * 2차 워크플로우(경로 설계) API 클라이언트 + * + * 백엔드 계약 (B05_wf2_Route_Router.py): + * POST /api/projects/{project_id}/route/solve → 경로 탐색 + DB 기록 + * POST /api/projects/{project_id}/route/confirm → 최신 경로 확정 + * + * 규칙: + * - 모든 제어 상수는 config_frontend에서 참조 (하드코딩 금지). + * - 오류 응답 형식 {status:"error", message:"..."}을 Error로 변환. + * ========================================================================== */ + +import { API_BASE_URL, API_TIMEOUT_MS, AUTH_TOKEN_KEY } from "@config/config_frontend"; + +/** 경로 제어점 (BP/EP/CP) */ +export interface RoutePoint { + x: number; + y: number; + order?: number; +} + +/** 경로 탐색 실행 요청 (RouteSolveRequest) */ +export interface RouteSolveRequest { + filter_key: string; + method?: string; + smooth?: boolean; + surface_model_id?: number | null; + algorithm?: string; + bp: RoutePoint; + ep: RoutePoint; + cp?: RoutePoint[]; + grade_class?: string; + min_curve_radius_m?: number | null; + max_uphill_grade?: number | null; + max_downhill_grade?: number | null; +} + +/** 경로 탐색 실행 결과 (RouteSolveResponse) */ +export interface RouteSolveResponse { + status: string; + project_id: string; + route_id: number; + total_length_m: number; + metrics: Record; + required_points_ok: boolean; + route_data_path: string; +} + +/** 경로 확정 결과 (RouteConfirmResponse) */ +export interface RouteConfirmResponse { + status: string; + project_id: string; + route_id: number; + confirmed: boolean; +} + +/** 공통 fetch 헬퍼: 타임아웃 + 인증 헤더 + 오류 응답 변환. */ +async function requestJson(path: string, init: RequestInit): Promise { + const controller = new AbortController(); + const timeoutId = window.setTimeout(() => controller.abort(), API_TIMEOUT_MS); + const token = localStorage.getItem(AUTH_TOKEN_KEY); + try { + const response = await fetch(`${API_BASE_URL}${path}`, { + ...init, + headers: { + "Content-Type": "application/json", + ...(token ? { Authorization: `Bearer ${token}` } : {}), + ...(init.headers ?? {}), + }, + signal: controller.signal, + }); + const payload = (await response.json()) as T & { message?: string }; + if (!response.ok) { + throw new Error(payload.message ?? `HTTP ${response.status}`); + } + return payload; + } finally { + window.clearTimeout(timeoutId); + } +} + +/** 경로 탐색을 실행한다 (비용면 생성 → Dijkstra/ridge-valley → GeoJSON 저장). */ +export async function solveRoute( + projectId: string, + request: RouteSolveRequest, +): Promise { + return requestJson(`/projects/${projectId}/route/solve`, { + method: "POST", + body: JSON.stringify(request), + }); +} + +/** 프로젝트의 최신 경로를 확정한다. */ +export async function confirmRoute(projectId: string): Promise { + return requestJson(`/projects/${projectId}/route/confirm`, { + method: "POST", + }); +} diff --git a/B05_wf2_Route/B05_wf2_Route_UI_Page.ts b/B05_wf2_Route/B05_wf2_Route_UI_Page.ts index 3117c90..7794fb1 100644 --- a/B05_wf2_Route/B05_wf2_Route_UI_Page.ts +++ b/B05_wf2_Route/B05_wf2_Route_UI_Page.ts @@ -2,27 +2,344 @@ * B05_wf2_Route_UI_Page.ts * 로그인 후 05: 2차 워크플로우 (경로 설계) * - * ⚠️ 좌측 입력 패널 / 우측 WebCAD 뷰어 본문은 준비 중 — 워크플로우 셸(헤더+ - * 스텝바 = 3단 레이아웃)만 구성. 실제 본문은 0_old 참고하여 추후 구체화. + * 3단 레이아웃 (frontend.md §2): + * 상단: 페이지 타이틀 + 진행 단계 스텝바 (createWorkflowShell) + * 좌측: 경로 제어점(BP/EP/CP) 좌표 + 기반 지표면 + 설계 제약 폼 + * 우측: 경로 탐색 결과(연장·경사·비용) 카드 * - * 제약 준수 (frontend.md §2 3단 레이아웃): createWorkflowShell 재사용. + * 이벤트 핸들러 명명 (frontend.md §4): onB05_Route_[기능]_[액션] + * 텍스트는 ui_template_locale에 선(先) 등록 후 참조 (frontend.md §3). * ========================================================================== */ -import { ui_locales, currentLanguageIndex } from "@ui/ui_template_locale"; -import { renderPendingWorkflow, workflowSteps } from "../A00_Common/b_page_scaffold"; +import { CURRENT_PROJECT_ID_KEY } from "@config/config_frontend"; +import { currentLanguageIndex, ui_locales } from "@ui/ui_template_locale"; +import { + createButton, + createInputField, + createWorkflowShell, + hideLoadingOverlay, + showLoadingOverlay, + showToast, + type InputFieldHandle, +} from "@ui/ui_template_elements"; +import { workflowSteps } from "../A00_Common/b_page_scaffold"; +import { + confirmRoute, + solveRoute, + type RoutePoint, + type RouteSolveResponse, +} from "./B05_wf2_Route_Api_Fetch"; +import "./B05_wf2_Route_UI_Style.css"; /** locale 헬퍼 */ function L(key: keyof typeof ui_locales): string { return ui_locales[key][currentLanguageIndex]; } -/* ----------------------------------------------------------------------------- - * 페이지 진입점 - * -------------------------------------------------------------------------- */ +/** 임도 등급 (config_system.ROUTE_GRADE_CLASSES) */ +const GRADE_CLASSES = ["trunk", "branch", "work"] as const; +/** 경로 알고리즘 (Schema.algorithm 허용값) */ +const ALGORITHMS = ["dijkstra", "ridge_valley"] as const; + +/** 라벨 + select 요소 하나 생성. */ +function buildSelect( + label: string, + values: readonly string[], +): { root: HTMLElement; select: HTMLSelectElement } { + const root = document.createElement("div"); + root.className = "ui-field"; + const labelEl = document.createElement("label"); + labelEl.className = "ui-field__label"; + labelEl.textContent = label; + const select = document.createElement("select"); + select.className = "ui-input b05-route__select"; + for (const value of values) { + const option = document.createElement("option"); + option.value = value; + option.textContent = value; + select.append(option); + } + root.append(labelEl, select); + return { root, select }; +} + +/** X/Y 좌표 한 쌍 입력 행 생성. */ +function buildPointRow(label: string): { + root: HTMLElement; + x: InputFieldHandle; + y: InputFieldHandle; +} { + const root = document.createElement("div"); + root.className = "b05-route__point"; + const caption = document.createElement("span"); + caption.className = "b05-route__point-label"; + caption.textContent = label; + const x = createInputField({ label: L("B05_Route_Field_X"), type: "number" }); + const y = createInputField({ label: L("B05_Route_Field_Y"), type: "number" }); + const row = document.createElement("div"); + row.className = "b05-route__point-row"; + row.append(x.root, y.root); + root.append(caption, row); + return { root, x, y }; +} + +/** 숫자 입력값을 파싱. 빈 값이면 null. */ +function parseNumber(value: string): number | null { + const trimmed = value.trim(); + if (!trimmed) return null; + const parsed = Number(trimmed); + return Number.isFinite(parsed) ? parsed : null; +} + export function renderB05Route(root: HTMLElement): void { - renderPendingWorkflow(root, { + const shell = createWorkflowShell({ title: L("B05_Route_Title"), steps: workflowSteps(), activeStep: 1, }); + + /* ---- 좌측: 경로 제어점 ---- */ + const pointsGroup = document.createElement("fieldset"); + pointsGroup.className = "b05-route__group"; + const pointsLegend = document.createElement("legend"); + pointsLegend.className = "b05-route__group-legend"; + pointsLegend.textContent = L("B05_Route_Group_Points"); + const bpRow = buildPointRow(L("B05_Route_Point_BP")); + const epRow = buildPointRow(L("B05_Route_Point_EP")); + const cpContainer = document.createElement("div"); + cpContainer.className = "b05-route__cp-list"; + const cpRows: { root: HTMLElement; x: InputFieldHandle; y: InputFieldHandle }[] = []; + + function onB05_Route_AddCp_Click(): void { + const row = buildPointRow(L("B05_Route_Point_CP")); + const removeBtn = createButton({ + label: L("B05_Route_Btn_RemoveCp"), + variant: "ghost", + onClick: () => { + const idx = cpRows.indexOf(row); + if (idx >= 0) cpRows.splice(idx, 1); + row.root.remove(); + }, + }); + row.root.append(removeBtn); + cpRows.push(row); + cpContainer.append(row.root); + } + + const addCpButton = createButton({ + label: L("B05_Route_Btn_AddCp"), + variant: "ghost", + onClick: () => onB05_Route_AddCp_Click(), + }); + pointsGroup.append(pointsLegend, bpRow.root, epRow.root, cpContainer, addCpButton); + + /* ---- 좌측: 기반 지표면 ---- */ + const surfaceGroup = document.createElement("fieldset"); + surfaceGroup.className = "b05-route__group"; + const surfaceLegend = document.createElement("legend"); + surfaceLegend.className = "b05-route__group-legend"; + surfaceLegend.textContent = L("B05_Route_Group_Surface"); + const filterField = createInputField({ label: L("B05_Route_Field_Filter"), type: "text" }); + const methodField = createInputField({ + label: L("B05_Route_Field_Method"), + type: "text", + value: "dtm", + }); + const surfaceIdField = createInputField({ + label: L("B05_Route_Field_SurfaceId"), + type: "number", + min: 1, + }); + surfaceGroup.append(surfaceLegend, filterField.root, methodField.root, surfaceIdField.root); + + /* ---- 좌측: 설계 제약 ---- */ + const constraintGroup = document.createElement("fieldset"); + constraintGroup.className = "b05-route__group"; + const constraintLegend = document.createElement("legend"); + constraintLegend.className = "b05-route__group-legend"; + constraintLegend.textContent = L("B05_Route_Group_Constraints"); + const gradeSelect = buildSelect(L("B05_Route_Field_GradeClass"), GRADE_CLASSES); + const algorithmSelect = buildSelect(L("B05_Route_Field_Algorithm"), ALGORITHMS); + const maxUphillField = createInputField({ + label: L("B05_Route_Field_MaxUphill"), + type: "number", + }); + const maxDownhillField = createInputField({ + label: L("B05_Route_Field_MaxDownhill"), + type: "number", + }); + const minRadiusField = createInputField({ + label: L("B05_Route_Field_MinRadius"), + type: "number", + }); + + const smoothLabel = document.createElement("label"); + smoothLabel.className = "b05-route__check"; + const smoothBox = document.createElement("input"); + smoothBox.type = "checkbox"; + const smoothText = document.createElement("span"); + smoothText.textContent = L("B05_Route_Field_Smooth"); + smoothLabel.append(smoothBox, smoothText); + + constraintGroup.append( + constraintLegend, + gradeSelect.root, + algorithmSelect.root, + maxUphillField.root, + maxDownhillField.root, + minRadiusField.root, + smoothLabel, + ); + + const solveButton = createButton({ + label: L("B05_Route_Btn_Solve"), + variant: "filled", + onClick: () => void onB05_Route_Solve_Click(), + }); + const confirmButton = createButton({ + label: L("B05_Route_Btn_Confirm"), + variant: "ghost", + onClick: () => void onB05_Route_Confirm_Click(), + }); + const actionRow = document.createElement("div"); + actionRow.className = "b05-route__actions"; + actionRow.append(solveButton, confirmButton); + + const leftForm = document.createElement("div"); + leftForm.className = "b05-route__form"; + leftForm.append(pointsGroup, surfaceGroup, constraintGroup, actionRow); + shell.leftPanel.append(leftForm); + + /* ---- 우측: 결과 ---- */ + const resultTitle = document.createElement("h3"); + resultTitle.className = "b05-route__result-title"; + resultTitle.textContent = L("B05_Route_Result_Title"); + const resultBody = document.createElement("div"); + resultBody.className = "b05-route__result-body"; + + function renderEmptyResult(): void { + resultBody.replaceChildren(); + const empty = document.createElement("p"); + empty.className = "b05-route__empty"; + empty.textContent = L("B05_Route_Result_Empty"); + resultBody.append(empty); + } + + function metricRow(label: string, value: string): HTMLElement { + const row = document.createElement("div"); + row.className = "b05-route__metric"; + const key = document.createElement("span"); + key.className = "b05-route__metric-key"; + key.textContent = label; + const val = document.createElement("span"); + val.className = "b05-route__metric-val"; + val.textContent = value; + row.append(key, val); + return row; + } + + function renderResult(result: RouteSolveResponse): void { + resultBody.replaceChildren(); + const metrics = result.metrics as Record; + const fmt = (v: number | undefined): string => (v === undefined ? "-" : v.toFixed(3)); + resultBody.append( + metricRow(L("B05_Route_Result_Length"), result.total_length_m.toFixed(2)), + metricRow(L("B05_Route_Result_MinSlope"), fmt(metrics.min_slope)), + metricRow(L("B05_Route_Result_MaxSlope"), fmt(metrics.max_slope)), + metricRow(L("B05_Route_Result_MeanSlope"), fmt(metrics.mean_slope)), + metricRow(L("B05_Route_Result_Cost"), fmt(metrics.cost_score)), + metricRow(L("B05_Route_Result_Path"), result.route_data_path), + ); + } + + const resultCard = document.createElement("div"); + resultCard.className = "b05-route__result"; + resultCard.append(resultTitle, resultBody); + shell.rightArea.append(resultCard); + + /* ---- 이벤트 핸들러 ---- */ + function getProjectId(): string | null { + const projectId = localStorage.getItem(CURRENT_PROJECT_ID_KEY); + if (!projectId) showToast(L("B05_Route_Error_Project"), "error"); + return projectId; + } + + /** 필수 좌표(BP/EP)와 필터 키를 검증하고, 유효하면 요청 페이로드를 반환. */ + function collectRequest(): { + filter_key: string; + bp: RoutePoint; + ep: RoutePoint; + cp: RoutePoint[]; + } | null { + const bpX = parseNumber(bpRow.x.input.value); + const bpY = parseNumber(bpRow.y.input.value); + const epX = parseNumber(epRow.x.input.value); + const epY = parseNumber(epRow.y.input.value); + if (bpX === null || bpY === null || epX === null || epY === null) { + showToast(L("B05_Route_Error_Points"), "error"); + return null; + } + const filterKey = filterField.input.value.trim(); + if (!filterKey) { + filterField.setError(L("B05_Route_Error_Filter")); + return null; + } + filterField.setError(); + + const cp: RoutePoint[] = []; + for (const row of cpRows) { + const x = parseNumber(row.x.input.value); + const y = parseNumber(row.y.input.value); + if (x !== null && y !== null) cp.push({ x, y }); + } + return { filter_key: filterKey, bp: { x: bpX, y: bpY }, ep: { x: epX, y: epY }, cp }; + } + + async function onB05_Route_Solve_Click(): Promise { + const projectId = getProjectId(); + if (!projectId) return; + const base = collectRequest(); + if (!base) return; + + const surfaceId = parseNumber(surfaceIdField.input.value); + showLoadingOverlay(); + try { + const result = await solveRoute(projectId, { + ...base, + method: methodField.input.value.trim() || "dtm", + smooth: smoothBox.checked, + surface_model_id: surfaceId, + algorithm: algorithmSelect.select.value, + grade_class: gradeSelect.select.value, + max_uphill_grade: parseNumber(maxUphillField.input.value), + max_downhill_grade: parseNumber(maxDownhillField.input.value), + min_curve_radius_m: parseNumber(minRadiusField.input.value), + }); + renderResult(result); + showToast(L("B05_Route_Solve_Success"), "success"); + } catch (error) { + const detail = error instanceof Error ? error.message : L("B05_Route_Solve_Failed"); + showToast(`${L("B05_Route_Solve_Failed")} ${detail}`, "error"); + } finally { + hideLoadingOverlay(); + } + } + + async function onB05_Route_Confirm_Click(): Promise { + const projectId = getProjectId(); + if (!projectId) return; + showLoadingOverlay(); + try { + await confirmRoute(projectId); + showToast(L("B05_Route_Confirm_Success"), "success"); + } catch (error) { + const detail = error instanceof Error ? error.message : L("B05_Route_Confirm_Failed"); + showToast(`${L("B05_Route_Confirm_Failed")} ${detail}`, "error"); + } finally { + hideLoadingOverlay(); + } + } + + renderEmptyResult(); + root.replaceChildren(shell.root); } diff --git a/B05_wf2_Route/B05_wf2_Route_UI_Style.css b/B05_wf2_Route/B05_wf2_Route_UI_Style.css new file mode 100644 index 0000000..47a7504 --- /dev/null +++ b/B05_wf2_Route/B05_wf2_Route_UI_Style.css @@ -0,0 +1,132 @@ +/* ============================================================================= + * B05_wf2_Route_UI_Style.css + * 2차 워크플로우(경로 설계) 페이지 전용 스타일. + * + * 원칙(frontend.md §1): 하드코딩 색상 금지. theme.css 변수(var(--...))만 참조. + * 공통 컴포넌트 스타일은 ui_template_elements.ts가 주입하므로 여기서는 + * B05 고유 레이아웃(제어점 행/제약 그룹/결과 메트릭)만 정의한다. + * ========================================================================== */ + +/* --- 좌측 입력 폼 --- */ +.b05-route__form { + display: flex; + flex-direction: column; + gap: var(--spacing-16); +} + +.b05-route__group { + display: flex; + flex-direction: column; + gap: var(--spacing-16); + margin: 0; + padding: var(--spacing-16); + border: 1px solid var(--color-border); + border-radius: var(--radius-cards); + background-color: var(--color-surface-raised); +} + +.b05-route__group-legend { + padding: 0 var(--spacing-8); + font-size: var(--text-caption); + font-weight: var(--font-weight-medium); + color: var(--color-text-secondary); +} + +/* --- 제어점 (X/Y 쌍) --- */ +.b05-route__point { + display: flex; + flex-direction: column; + gap: var(--spacing-8); +} + +.b05-route__point-label { + font-size: var(--text-body-sm); + font-weight: var(--font-weight-medium); + color: var(--color-text-body); +} + +.b05-route__point-row { + display: grid; + grid-template-columns: 1fr 1fr; + gap: var(--spacing-8); +} + +.b05-route__cp-list { + display: flex; + flex-direction: column; + gap: var(--spacing-16); +} + +/* --- select (지표면/제약) --- */ +.b05-route__select { + appearance: auto; + cursor: pointer; +} + +/* --- 체크박스 --- */ +.b05-route__check { + display: flex; + align-items: center; + gap: var(--spacing-8); + font-size: var(--text-body-sm); + color: var(--color-text-body); + cursor: pointer; +} + +.b05-route__check input { + accent-color: var(--color-primary); +} + +/* --- 액션 버튼 행 --- */ +.b05-route__actions { + display: flex; + gap: var(--spacing-8); +} + +/* --- 우측 결과 --- */ +.b05-route__result { + display: flex; + flex-direction: column; + gap: var(--spacing-16); + padding: var(--spacing-24); +} + +.b05-route__result-title { + font-size: var(--text-subheading); + color: var(--color-text); +} + +.b05-route__empty { + color: var(--color-text-muted); + font-size: var(--text-body-sm); +} + +.b05-route__result-body { + display: flex; + flex-direction: column; + gap: var(--spacing-8); + max-width: 480px; +} + +.b05-route__metric { + display: flex; + align-items: baseline; + justify-content: space-between; + gap: var(--spacing-16); + padding: var(--spacing-8) var(--spacing-16); + border-radius: var(--radius-inputs); + background-color: var(--color-surface); +} + +.b05-route__metric-key { + font-size: var(--text-caption); + color: var(--color-text-secondary); +} + +.b05-route__metric-val { + font-family: var(--font-mono); + font-size: var(--text-body-sm); + color: var(--color-text-body); + word-break: break-all; + text-align: right; +} diff --git a/B06_wf3_ProfileCross/B06_wf3_ProfileCross_Api_Fetch.ts b/B06_wf3_ProfileCross/B06_wf3_ProfileCross_Api_Fetch.ts new file mode 100644 index 0000000..27640aa --- /dev/null +++ b/B06_wf3_ProfileCross/B06_wf3_ProfileCross_Api_Fetch.ts @@ -0,0 +1,111 @@ +/* ============================================================================= + * B06_wf3_ProfileCross_Api_Fetch.ts + * 3차 워크플로우(종·횡단 생성) API 클라이언트 + * + * 백엔드 계약 (B06_wf3_ProfileCross_Router.py): + * POST /api/projects/{project_id}/sections/generate → 종횡단 생성 + DB 기록 + * GET /api/projects/{project_id}/sections/{route_id} → 종단 요약 조회 + * POST /api/projects/{project_id}/sections/{route_id}/confirm → 종횡단 확정 + * + * 규칙: + * - 모든 제어 상수는 config_frontend에서 참조 (하드코딩 금지). + * - 오류 응답 형식 {status:"error", message:"..."}을 Error로 변환. + * ========================================================================== */ + +import { API_BASE_URL, API_TIMEOUT_MS, AUTH_TOKEN_KEY } from "@config/config_frontend"; + +/** 종횡단 생성 실행 요청 (SectionGenerateRequest) */ +export interface SectionGenerateRequest { + route_id: number; + filter_key: string; + method?: string; + smooth?: boolean; + crs?: string | null; + station_interval_m?: number | null; + cross_half_width_m?: number | null; + cross_sample_interval_m?: number | null; + long_sample_interval_m?: number | null; +} + +/** 종횡단 생성 결과 (SectionGenerateResponse) */ +export interface SectionGenerateResponse { + status: string; + project_id: string; + route_id: number; + longitudinal_id: number; + cross_section_count: number; + length_m: number; + longitudinal_file_path: string; +} + +/** 종단 요약 조회 결과 (SectionSummaryResponse) */ +export interface SectionSummaryResponse { + status: string; + project_id: string; + route_id: number; + longitudinal: Record | null; +} + +/** 종횡단 확정 결과 (SectionConfirmResponse) */ +export interface SectionConfirmResponse { + status: string; + project_id: string; + route_id: number; + confirmed: boolean; +} + +/** 공통 fetch 헬퍼: 타임아웃 + 인증 헤더 + 오류 응답 변환. */ +async function requestJson(path: string, init: RequestInit): Promise { + const controller = new AbortController(); + const timeoutId = window.setTimeout(() => controller.abort(), API_TIMEOUT_MS); + const token = localStorage.getItem(AUTH_TOKEN_KEY); + try { + const response = await fetch(`${API_BASE_URL}${path}`, { + ...init, + headers: { + "Content-Type": "application/json", + ...(token ? { Authorization: `Bearer ${token}` } : {}), + ...(init.headers ?? {}), + }, + signal: controller.signal, + }); + const payload = (await response.json()) as T & { message?: string }; + if (!response.ok) { + throw new Error(payload.message ?? `HTTP ${response.status}`); + } + return payload; + } finally { + window.clearTimeout(timeoutId); + } +} + +/** 확정 경로에서 종·횡단을 생성한다 (측점 배열 → 종단 프로필 → 횡단 샘플). */ +export async function generateSections( + projectId: string, + request: SectionGenerateRequest, +): Promise { + return requestJson(`/projects/${projectId}/sections/generate`, { + method: "POST", + body: JSON.stringify(request), + }); +} + +/** 경로의 종단면 요약을 조회한다. */ +export async function getSections( + projectId: string, + routeId: number, +): Promise { + return requestJson(`/projects/${projectId}/sections/${routeId}`, { + method: "GET", + }); +} + +/** 경로의 종·횡단면을 확정한다. */ +export async function confirmSections( + projectId: string, + routeId: number, +): Promise { + return requestJson(`/projects/${projectId}/sections/${routeId}/confirm`, { + method: "POST", + }); +} diff --git a/B06_wf3_ProfileCross/B06_wf3_ProfileCross_UI_Page.ts b/B06_wf3_ProfileCross/B06_wf3_ProfileCross_UI_Page.ts index bad7fb9..6e50715 100644 --- a/B06_wf3_ProfileCross/B06_wf3_ProfileCross_UI_Page.ts +++ b/B06_wf3_ProfileCross/B06_wf3_ProfileCross_UI_Page.ts @@ -2,27 +2,251 @@ * B06_wf3_ProfileCross_UI_Page.ts * 로그인 후 06: 3차 워크플로우 (종·횡단 생성) * - * ⚠️ 좌측 입력 패널 / 우측 WebCAD 뷰어 본문은 준비 중 — 워크플로우 셸(헤더+ - * 스텝바 = 3단 레이아웃)만 구성. 실제 본문은 0_old 참고하여 추후 구체화. + * 3단 레이아웃 (frontend.md §2): + * 상단: 페이지 타이틀 + 진행 단계 스텝바 (createWorkflowShell) + * 좌측: 대상 경로 ID + 지표면 참조 + 측점/횡단 옵션 폼 + * 우측: 종·횡단 생성 결과(연장·횡단 개수·파일) 카드 * - * 제약 준수 (frontend.md §2 3단 레이아웃): createWorkflowShell 재사용. + * 이벤트 핸들러 명명 (frontend.md §4): onB06_Profile_[기능]_[액션] + * 텍스트는 ui_template_locale에 선(先) 등록 후 참조 (frontend.md §3). * ========================================================================== */ -import { ui_locales, currentLanguageIndex } from "@ui/ui_template_locale"; -import { renderPendingWorkflow, workflowSteps } from "../A00_Common/b_page_scaffold"; +import { CURRENT_PROJECT_ID_KEY } from "@config/config_frontend"; +import { currentLanguageIndex, ui_locales } from "@ui/ui_template_locale"; +import { + createButton, + createInputField, + createWorkflowShell, + hideLoadingOverlay, + showLoadingOverlay, + showToast, +} from "@ui/ui_template_elements"; +import { workflowSteps } from "../A00_Common/b_page_scaffold"; +import { + confirmSections, + generateSections, + type SectionGenerateResponse, +} from "./B06_wf3_ProfileCross_Api_Fetch"; +import "./B06_wf3_ProfileCross_UI_Style.css"; /** locale 헬퍼 */ function L(key: keyof typeof ui_locales): string { return ui_locales[key][currentLanguageIndex]; } -/* ----------------------------------------------------------------------------- - * 페이지 진입점 - * -------------------------------------------------------------------------- */ +/** 라벨 + fieldset 그룹 컨테이너 생성. */ +function buildGroup(legend: string): HTMLElement { + const group = document.createElement("fieldset"); + group.className = "b06-profile__group"; + const legendEl = document.createElement("legend"); + legendEl.className = "b06-profile__group-legend"; + legendEl.textContent = legend; + group.append(legendEl); + return group; +} + +/** 숫자 입력값을 파싱. 빈 값이면 null. */ +function parseNumber(value: string): number | null { + const trimmed = value.trim(); + if (!trimmed) return null; + const parsed = Number(trimmed); + return Number.isFinite(parsed) ? parsed : null; +} + export function renderB06ProfileCross(root: HTMLElement): void { - renderPendingWorkflow(root, { + const shell = createWorkflowShell({ title: L("B06_Profile_Title"), steps: workflowSteps(), activeStep: 2, }); + + let currentRouteId: number | null = null; + + /* ---- 좌측: 대상 경로 ---- */ + const routeGroup = buildGroup(L("B06_Profile_Group_Route")); + const routeIdField = createInputField({ + label: L("B06_Profile_Field_RouteId"), + type: "number", + min: 1, + }); + const filterField = createInputField({ label: L("B06_Profile_Field_Filter"), type: "text" }); + const methodField = createInputField({ + label: L("B06_Profile_Field_Method"), + type: "text", + value: "dtm", + }); + const crsField = createInputField({ + label: L("B06_Profile_Field_Crs"), + type: "text", + placeholder: "EPSG:5178", + }); + routeGroup.append(routeIdField.root, filterField.root, methodField.root, crsField.root); + + /* ---- 좌측: 측점/횡단 옵션 ---- */ + const optionGroup = buildGroup(L("B06_Profile_Group_Options")); + const stationField = createInputField({ + label: L("B06_Profile_Field_StationInterval"), + type: "number", + }); + const halfWidthField = createInputField({ + label: L("B06_Profile_Field_CrossHalfWidth"), + type: "number", + }); + const crossSampleField = createInputField({ + label: L("B06_Profile_Field_CrossSample"), + type: "number", + }); + const longSampleField = createInputField({ + label: L("B06_Profile_Field_LongSample"), + type: "number", + }); + + const smoothLabel = document.createElement("label"); + smoothLabel.className = "b06-profile__check"; + const smoothBox = document.createElement("input"); + smoothBox.type = "checkbox"; + const smoothText = document.createElement("span"); + smoothText.textContent = L("B06_Profile_Field_Smooth"); + smoothLabel.append(smoothBox, smoothText); + + optionGroup.append( + stationField.root, + halfWidthField.root, + crossSampleField.root, + longSampleField.root, + smoothLabel, + ); + + const generateButton = createButton({ + label: L("B06_Profile_Btn_Generate"), + variant: "filled", + onClick: () => void onB06_Profile_Generate_Click(), + }); + const confirmButton = createButton({ + label: L("B06_Profile_Btn_Confirm"), + variant: "ghost", + onClick: () => void onB06_Profile_Confirm_Click(), + }); + const actionRow = document.createElement("div"); + actionRow.className = "b06-profile__actions"; + actionRow.append(generateButton, confirmButton); + + const leftForm = document.createElement("div"); + leftForm.className = "b06-profile__form"; + leftForm.append(routeGroup, optionGroup, actionRow); + shell.leftPanel.append(leftForm); + + /* ---- 우측: 결과 ---- */ + const resultTitle = document.createElement("h3"); + resultTitle.className = "b06-profile__result-title"; + resultTitle.textContent = L("B06_Profile_Result_Title"); + const resultBody = document.createElement("div"); + resultBody.className = "b06-profile__result-body"; + + function renderEmptyResult(): void { + resultBody.replaceChildren(); + const empty = document.createElement("p"); + empty.className = "b06-profile__empty"; + empty.textContent = L("B06_Profile_Result_Empty"); + resultBody.append(empty); + } + + function metricRow(label: string, value: string): HTMLElement { + const row = document.createElement("div"); + row.className = "b06-profile__metric"; + const key = document.createElement("span"); + key.className = "b06-profile__metric-key"; + key.textContent = label; + const val = document.createElement("span"); + val.className = "b06-profile__metric-val"; + val.textContent = value; + row.append(key, val); + return row; + } + + function renderResult(result: SectionGenerateResponse): void { + resultBody.replaceChildren(); + resultBody.append( + metricRow(L("B06_Profile_Result_Length"), result.length_m.toFixed(2)), + metricRow(L("B06_Profile_Result_CrossCount"), String(result.cross_section_count)), + metricRow(L("B06_Profile_Result_Path"), result.longitudinal_file_path), + ); + } + + const resultCard = document.createElement("div"); + resultCard.className = "b06-profile__result"; + resultCard.append(resultTitle, resultBody); + shell.rightArea.append(resultCard); + + /* ---- 이벤트 핸들러 ---- */ + function getProjectId(): string | null { + const projectId = localStorage.getItem(CURRENT_PROJECT_ID_KEY); + if (!projectId) showToast(L("B06_Profile_Error_Project"), "error"); + return projectId; + } + + async function onB06_Profile_Generate_Click(): Promise { + const projectId = getProjectId(); + if (!projectId) return; + + const routeId = parseNumber(routeIdField.input.value); + if (routeId === null || !Number.isInteger(routeId) || routeId <= 0) { + routeIdField.setError(L("B06_Profile_Error_RouteId")); + return; + } + routeIdField.setError(); + + const filterKey = filterField.input.value.trim(); + if (!filterKey) { + filterField.setError(L("B06_Profile_Error_Filter")); + return; + } + filterField.setError(); + + showLoadingOverlay(); + try { + const result = await generateSections(projectId, { + route_id: routeId, + filter_key: filterKey, + method: methodField.input.value.trim() || "dtm", + smooth: smoothBox.checked, + crs: crsField.input.value.trim() || null, + station_interval_m: parseNumber(stationField.input.value), + cross_half_width_m: parseNumber(halfWidthField.input.value), + cross_sample_interval_m: parseNumber(crossSampleField.input.value), + long_sample_interval_m: parseNumber(longSampleField.input.value), + }); + currentRouteId = result.route_id; + renderResult(result); + showToast(L("B06_Profile_Generate_Success"), "success"); + } catch (error) { + const detail = error instanceof Error ? error.message : L("B06_Profile_Generate_Failed"); + showToast(`${L("B06_Profile_Generate_Failed")} ${detail}`, "error"); + } finally { + hideLoadingOverlay(); + } + } + + async function onB06_Profile_Confirm_Click(): Promise { + const projectId = getProjectId(); + if (!projectId) return; + const routeId = currentRouteId ?? parseNumber(routeIdField.input.value); + if (routeId === null || !Number.isInteger(routeId) || routeId <= 0) { + routeIdField.setError(L("B06_Profile_Error_RouteId")); + return; + } + showLoadingOverlay(); + try { + await confirmSections(projectId, routeId); + showToast(L("B06_Profile_Confirm_Success"), "success"); + } catch (error) { + const detail = error instanceof Error ? error.message : L("B06_Profile_Confirm_Failed"); + showToast(`${L("B06_Profile_Confirm_Failed")} ${detail}`, "error"); + } finally { + hideLoadingOverlay(); + } + } + + renderEmptyResult(); + root.replaceChildren(shell.root); } diff --git a/B06_wf3_ProfileCross/B06_wf3_ProfileCross_UI_Style.css b/B06_wf3_ProfileCross/B06_wf3_ProfileCross_UI_Style.css new file mode 100644 index 0000000..db059be --- /dev/null +++ b/B06_wf3_ProfileCross/B06_wf3_ProfileCross_UI_Style.css @@ -0,0 +1,101 @@ +/* ============================================================================= + * B06_wf3_ProfileCross_UI_Style.css + * 3차 워크플로우(종·횡단 생성) 페이지 전용 스타일. + * + * 원칙(frontend.md §1): 하드코딩 색상 금지. theme.css 변수(var(--...))만 참조. + * 공통 컴포넌트 스타일은 ui_template_elements.ts가 주입하므로 여기서는 + * B06 고유 레이아웃(옵션 그룹/결과 메트릭)만 정의한다. + * ========================================================================== */ + +/* --- 좌측 입력 폼 --- */ +.b06-profile__form { + display: flex; + flex-direction: column; + gap: var(--spacing-16); +} + +.b06-profile__group { + display: flex; + flex-direction: column; + gap: var(--spacing-16); + margin: 0; + padding: var(--spacing-16); + border: 1px solid var(--color-border); + border-radius: var(--radius-cards); + background-color: var(--color-surface-raised); +} + +.b06-profile__group-legend { + padding: 0 var(--spacing-8); + font-size: var(--text-caption); + font-weight: var(--font-weight-medium); + color: var(--color-text-secondary); +} + +/* --- 체크박스 --- */ +.b06-profile__check { + display: flex; + align-items: center; + gap: var(--spacing-8); + font-size: var(--text-body-sm); + color: var(--color-text-body); + cursor: pointer; +} + +.b06-profile__check input { + accent-color: var(--color-primary); +} + +/* --- 액션 버튼 행 --- */ +.b06-profile__actions { + display: flex; + gap: var(--spacing-8); +} + +/* --- 우측 결과 --- */ +.b06-profile__result { + display: flex; + flex-direction: column; + gap: var(--spacing-16); + padding: var(--spacing-24); +} + +.b06-profile__result-title { + font-size: var(--text-subheading); + color: var(--color-text); +} + +.b06-profile__empty { + color: var(--color-text-muted); + font-size: var(--text-body-sm); +} + +.b06-profile__result-body { + display: flex; + flex-direction: column; + gap: var(--spacing-8); + max-width: 480px; +} + +.b06-profile__metric { + display: flex; + align-items: baseline; + justify-content: space-between; + gap: var(--spacing-16); + padding: var(--spacing-8) var(--spacing-16); + border-radius: var(--radius-inputs); + background-color: var(--color-surface); +} + +.b06-profile__metric-key { + font-size: var(--text-caption); + color: var(--color-text-secondary); +} + +.b06-profile__metric-val { + font-family: var(--font-mono); + font-size: var(--text-body-sm); + color: var(--color-text-body); + word-break: break-all; + text-align: right; +} diff --git a/CLAUDE.md b/CLAUDE.md index a7453fe..19ad6d1 120000 --- a/CLAUDE.md +++ b/CLAUDE.md @@ -1 +1,148 @@ -.agent/agent.md \ No newline at end of file +# 프로젝트 행동지침 및 기술 스택 명세 (agent.md) + +## 프로젝트 & DB 정보 + +### 📌 프로그램명 +**Aislo (아이슬로)** +- **의미**: AI (인공지능) + Slotti (핀란드어: 임도/산림 도로) +- **콘셉트**: 산림의 미래를 열어가는 인공지능 경로 설계 솔루션 + +--- + +## 1. 기술 환경 및 기본 스택 (Technical Stack Baseline) +프로젝트의 코드를 작성, 테스트 또는 검증할 환경 명확화 및 호환 기준 제시. + +### A. 백엔드 프레임워크 (Python) +* **Runtime:** Python v3.12 or v3.13.7 +* **Framework:** FastAPI / Pydantic +* **Geometry/GIS Engine:** Trimesh, Whitebox, Geopandas, Shapely, Rasterio, Laspy + +### B. 데이터베이스 (MariaDB) +* **DBMS:** MariaDB v10.6+ +* **Character Set:** utf8mb4 (한글 완벽 지원) +* **Collation:** utf8mb4_unicode_ci +* **DB Driver (비동기):** `aiomysql` (순수 Python, Windows 호환. asyncmy는 Cython 빌드 필요로 미채택) +* **쿼리 방식:** Raw SQL (ORM 사용 금지) +* **공간 데이터:** JSON 기반 저장 (MariaDB는 PostGIS 미지원) + +### C. 프론트엔드 & WebCAD (TypeScript & WebGL) +* **Language/Runtime:** TypeScript / Node.js +* **Rendering:** HTML5 Canvas 및 WebGL 기반 WebCAD 시스템 구현 + +### D. 인코딩 및 다국어 표준 +* **인코딩:** 텍스트 파일은 UTF-8 표준으로 통일 + +--- + +## 2. 문맥 라우팅 및 문서 구조 (Context Routing) +코드 작성 및 기술 검증 시 문서 우선순위에 따른 계층적 레퍼런스 필수 읽기. + +* **1단계 (필수):** `.agent/structure.md` 읽기 후 신규 폴더 생성 기준 분석. +* **2단계 (선택 읽기):** 프로젝트 구현에 필요한 세부 기술 명세 읽기. + * **그룹 A (UI, 스타일, 컴포넌트, WebCAD):** `.agent/frontend.md` 필수 추가 읽기. + * **그룹 B (알고리즘, 저장, DB, MariaDB 값 제어):** `.agent/backend.md` 필수 추가 읽기. + * **그룹 C (DB 구조 변경):** DB 구조 변경 시 `.agent/db_schema.md` 선택적 읽기. + +--- + +## 3. 코드 작성 기본 제약 (Constraints) +* **구조 준수:** `.agent/structure.md` 트리 구조 엄격 준수. +* **700줄 제한:** 단일 파일 코드 작성/수정 시 700줄 이상이 될 경우 사전 공지. 기능별 파일 분할 후 `structure.md` 갱신 필수. +* **안전 보관:** 백엔드 작업 시 보안 저장소 경로 명시 및 임의 삭제 방지 필수. +* **경로 활용:** 단계별 페이지 기반 폴더 구조(B03~B09)와 DB 경로 열의 기준은 `.agent/db_schema_simple.md`의 「파일시스템 경로와 DB 링크」를 따른다. +* **일관성 검증:** 설계 단계에서부터 DB 설계, 파일 경로, API 라우팅이 모두 동일한 워크플로우 기준으로 통일되어야 한다. (불일치 발생 시 설계 단계에서 재논의 필수) +* **코드 포맷팅 (자동화 도구):** 프로젝트의 코드 작성이 완료되는 시, 반드시 프로젝트 루트에서 각 언어별 포맷터를 재실행하여 스타일을 통일해야 한다. + * *Python 포맷팅 명령어:* `ruff format [파일명]` 및 `ruff check --fix [파일명]` 실행 + * *TypeScript/CSS 포맷팅 명령어:* `npx prettier --write [파일명]` 실행 +* **외부 라이브러리 활용:** 외부 라이브러리 활용 시 프로젝트에 맞춰 호환 라이브러리 선정하고, 불필요한 함수는 작성하지 않도록 최소화. + +--- + +## 4. 데이터베이스 상세 명세 (Database Specification) + +### 4.1 스키마 기본 정보 +- **DB 명:** `aislo_db` +- **DBMS:** MariaDB v10.6+ +- **인코딩:** utf8mb4_unicode_ci +- **테이블 수:** 18개 +- **드라이버:** aiomysql (비동기) + +### 4.2 파일 경로 추적 (Path Tracking) +**모든 중간 산출물의 파일 경로를 DB에 기록:** +- `input_files.raw_file_path` — 원본 입력 파일 +- `processed_point_cloud.converted_file_path` — 변환된 포인트클라우드 +- `surface_models.model_file_path` — 지표면 모델 +- `routes.route_data_path` — 경로 데이터 +- `longitudinal_sections.longitudinal_file_path` — 종단면 +- `cross_sections.cross_section_file_path` — 횡단면 +- `structures.structure_data_path` — 구조물 배치 +- `quantity_items.quantity_data_path` — 수량 항목 +- `outputs.outputs_directory_path` — 산출물 폴더 +- `output_files.output_file_path` — 개별 산출 파일 + +### 4.3 저장소 구조 (Workflow-based Folder Structure) +``` +storage/{company_slug}/{user_slug}/{project_id}/ +├── B03_FileInput/input/ (WF0: 원본 입력) +├── B04_wf1_Surface/processed/ (WF1: 변환된 포인트클라우드 & 모델) +├── B05_wf2_Route/route/ (WF2: 경로 설계) +├── B06_wf3_ProfileCross/ (WF3: 종단면 & 횡단면) +├── B07_wf4_DesignDetail/structures/ (WF4: 구조물 배치) +├── B08_wf5_Quantity/quantities/ (WF5: 수량 산출) +└── B09_wf6_Estimation/v1,v2,.../ (WF6: 최종 산출물) +``` + +### 4.4 공간 데이터 처리 (MariaDB 특성) +- **지하형 기하 데이터:** GEOMETRY 타입 미지원 → JSON으로 저장 +- **좌표 저장 예:** `{"type": "Point", "coordinates": [127.5, 37.5]}` +- **경로 저장 예:** `{"type": "LineString", "coordinates": [[127.5, 37.5], [127.6, 37.6]]}` +- **애플리케이션 처리:** Python의 Shapely, Geopandas에서 JSON 파싱 후 기하 연산 + +--- + +## 5. 워크플로우 6단계 (6-Stage Workflow) + +``` +WF0: B03_FileInput (파일 입력) + ↓ (LAS, TIF, TFW, PRJ, DXF 업로드) +WF1: B04_wf1_Surface (지표면 분석) + ↓ (DEM, TIN, 포인트클라우드 변환) +WF2: B05_wf2_Route (경로 설계) + ↓ (최적 경로 계산) +WF3: B06_wf3_ProfileCross (종횡단 생성) + ↓ (종단면, 횡단면 생성) +WF4: B07_wf4_DesignDetail (상세 설계) + ↓ (구조물 배치) +WF5: B08_wf5_Quantity (수량 산출) + ↓ (수량 항목 계산) +WF6: B09_wf6_Estimation (견적·문서) + ↓ (Excel, PDF, DXF 생성) +``` + +--- + +## 6. 주요 문서 참고 순서 + +1. **구조 설계:** `.agent/structure.md` 읽기 +2. **프론트 구현:** `.agent/frontend.md` 읽기 +3. **백엔드 구현:** `.agent/backend.md` 읽기 +4. **마이그레이션:** `.agent/migration_plan.md` 읽기 +5. **DB 스키마:** `.agent/db_schema_simple.md` 읽기 +6. **프로젝트 정보:** `.agent/project_info.md` 읽기 + +--- + +## 7. 요약 + +| 항목 | 값 | +|------|-----| +| **프로그램명** | Aislo (아이슬로) | +| **DB 명** | aislo_db | +| **DBMS** | MariaDB v10.6+ | +| **인코딩** | utf8mb4_unicode_ci | +| **Backend** | Python 3.12+ / FastAPI | +| **Frontend** | TypeScript / Node.js | +| **드라이버** | aiomysql | +| **워크플로우** | 6단계 (WF0~WF6) | +| **테이블 수** | 18개 | +| **폴더 구조** | 워크플로우 기반 (B03~B09) | diff --git a/config/vite.config.ts b/config/vite.config.ts index fa59ea5..70f69f7 100644 --- a/config/vite.config.ts +++ b/config/vite.config.ts @@ -13,7 +13,7 @@ const __dirname = resolve(fileURLToPath(import.meta.url), ".."); */ export default defineConfig({ root: "../A00_Common", - publicDir: "../resources", + publicDir: "..", resolve: { alias: { "@ui": resolve(__dirname, "../ui_template"), diff --git a/node_modules/.bin/prettier b/node_modules/.bin/prettier deleted file mode 100644 index 5944261..0000000 --- a/node_modules/.bin/prettier +++ /dev/null @@ -1,16 +0,0 @@ -#!/bin/sh -basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')") - -case `uname` in - *CYGWIN*|*MINGW*|*MSYS*) - if command -v cygpath > /dev/null 2>&1; then - basedir=`cygpath -w "$basedir"` - fi - ;; -esac - -if [ -x "$basedir/node" ]; then - exec "$basedir/node" "$basedir/../prettier/bin/prettier.cjs" "$@" -else - exec node "$basedir/../prettier/bin/prettier.cjs" "$@" -fi diff --git a/node_modules/.bin/prettier.cmd b/node_modules/.bin/prettier.cmd deleted file mode 100644 index e0fa0f7..0000000 --- a/node_modules/.bin/prettier.cmd +++ /dev/null @@ -1,17 +0,0 @@ -@ECHO off -GOTO start -:find_dp0 -SET dp0=%~dp0 -EXIT /b -:start -SETLOCAL -CALL :find_dp0 - -IF EXIST "%dp0%\node.exe" ( - SET "_prog=%dp0%\node.exe" -) ELSE ( - SET "_prog=node" - SET PATHEXT=%PATHEXT:;.JS;=;% -) - -endLocal & goto #_undefined_# 2>NUL || title %COMSPEC% & "%_prog%" "%dp0%\..\prettier\bin\prettier.cjs" %* diff --git a/node_modules/.bin/prettier.ps1 b/node_modules/.bin/prettier.ps1 deleted file mode 100644 index 8359dd9..0000000 --- a/node_modules/.bin/prettier.ps1 +++ /dev/null @@ -1,28 +0,0 @@ -#!/usr/bin/env pwsh -$basedir=Split-Path $MyInvocation.MyCommand.Definition -Parent - -$exe="" -if ($PSVersionTable.PSVersion -lt "6.0" -or $IsWindows) { - # Fix case when both the Windows and Linux builds of Node - # are installed in the same directory - $exe=".exe" -} -$ret=0 -if (Test-Path "$basedir/node$exe") { - # Support pipeline input - if ($MyInvocation.ExpectingInput) { - $input | & "$basedir/node$exe" "$basedir/../prettier/bin/prettier.cjs" $args - } else { - & "$basedir/node$exe" "$basedir/../prettier/bin/prettier.cjs" $args - } - $ret=$LASTEXITCODE -} else { - # Support pipeline input - if ($MyInvocation.ExpectingInput) { - $input | & "node$exe" "$basedir/../prettier/bin/prettier.cjs" $args - } else { - & "node$exe" "$basedir/../prettier/bin/prettier.cjs" $args - } - $ret=$LASTEXITCODE -} -exit $ret diff --git a/node_modules/.package-lock.json b/node_modules/.package-lock.json index a518860..8729d81 100644 --- a/node_modules/.package-lock.json +++ b/node_modules/.package-lock.json @@ -29,43 +29,6 @@ "dev": true, "license": "Apache-2.0" }, - "node_modules/@emnapi/core": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@emnapi/core/-/core-1.11.1.tgz", - "integrity": "sha512-RSvbQmHzdKzNsLYa/wHrbc3KN4sYLKAdPZxqiM2HATqv/SBk2/ENSHpvXGaLOMcsAyz0poEGqkmmKYG3OWiJEQ==", - "dev": true, - "ideallyInert": true, - "license": "MIT", - "optional": true, - "dependencies": { - "@emnapi/wasi-threads": "1.2.2", - "tslib": "^2.4.0" - } - }, - "node_modules/@emnapi/runtime": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@emnapi/runtime/-/runtime-1.11.1.tgz", - "integrity": "sha512-vgj7R3y3Wgx24IQaGPA/R6YFXLHVMOZ0uVEyIQPaWs+rd1AzfEMXlAC22FYwO1XkKR6NPsq7mUandH8oIRdZFw==", - "dev": true, - "ideallyInert": true, - "license": "MIT", - "optional": true, - "dependencies": { - "tslib": "^2.4.0" - } - }, - "node_modules/@emnapi/wasi-threads": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/@emnapi/wasi-threads/-/wasi-threads-1.2.2.tgz", - "integrity": "sha512-c95qOXkHdydNKhscBTebqEC1CVAZpyqOfVfBzQ1qgzyl3gfeldUjIggDbIZgDKsHLgnsM+igH7TJ/eAasaVuMA==", - "dev": true, - "ideallyInert": true, - "license": "MIT", - "optional": true, - "dependencies": { - "tslib": "^2.4.0" - } - }, "node_modules/@mapbox/jsonlint-lines-primitives": { "version": "2.0.3", "resolved": "https://registry.npmjs.org/@mapbox/jsonlint-lines-primitives/-/jsonlint-lines-primitives-2.0.3.tgz", @@ -179,26 +142,6 @@ "pbf": "bin/pbf" } }, - "node_modules/@napi-rs/wasm-runtime": { - "version": "1.1.6", - "resolved": "https://registry.npmjs.org/@napi-rs/wasm-runtime/-/wasm-runtime-1.1.6.tgz", - "integrity": "sha512-ZLv/JdUfkvOy9eCnnBaGfiO+XimbjebAeO+MRQqD/B+FR1tnRN0tpKSJHRbE8sFfS6aqsXZ67TQjfwfsxULVbg==", - "dev": true, - "ideallyInert": true, - "license": "MIT", - "optional": true, - "dependencies": { - "@tybys/wasm-util": "^0.10.3" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/Brooooooklyn" - }, - "peerDependencies": { - "@emnapi/core": "^1.7.1", - "@emnapi/runtime": "^1.7.1" - } - }, "node_modules/@oxc-project/types": { "version": "0.137.0", "resolved": "https://registry.npmjs.org/@oxc-project/types/-/types-0.137.0.tgz", @@ -215,260 +158,6 @@ "integrity": "sha512-8awtpHXCx/bNpFt4mt2xdkgtgVvKqty8VbjHI/WWWQuEw+KLzFot3f4+LkQY9YmOtq7A5GdOnqoIC8Pdygjk2g==", "license": "MIT" }, - "node_modules/@rolldown/binding-android-arm64": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/@rolldown/binding-android-arm64/-/binding-android-arm64-1.1.3.tgz", - "integrity": "sha512-DT6Z3PhvioeHMvxo+xHc3KtqggrI7CCTXCmC2h/5zUlp5jVitv7XEy+9q5/7v8IolhlioawpMo8Kg0EEBy7J0g==", - "cpu": [ - "arm64" - ], - "dev": true, - "ideallyInert": true, - "license": "MIT", - "optional": true, - "os": [ - "android" - ], - "engines": { - "node": "^20.19.0 || >=22.12.0" - } - }, - "node_modules/@rolldown/binding-darwin-arm64": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/@rolldown/binding-darwin-arm64/-/binding-darwin-arm64-1.1.3.tgz", - "integrity": "sha512-0NwgwsjM7LrsuVnXMK3koTpagBNOhloc/BNjKqZjv4V5zI5r13qx69uVhRx+o5Z0yy4Hzq+lpy7TAgUG/ocvrw==", - "cpu": [ - "arm64" - ], - "dev": true, - "ideallyInert": true, - "license": "MIT", - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": "^20.19.0 || >=22.12.0" - } - }, - "node_modules/@rolldown/binding-darwin-x64": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/@rolldown/binding-darwin-x64/-/binding-darwin-x64-1.1.3.tgz", - "integrity": "sha512-YtiBp4disu6V560loT6PjMdiRaWmVvDNrUunAalbiFx2ggeJwxdAsgZMcoGP17uyAsTwAj5V1niksxlHnVQ1Sw==", - "cpu": [ - "x64" - ], - "dev": true, - "ideallyInert": true, - "license": "MIT", - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": "^20.19.0 || >=22.12.0" - } - }, - "node_modules/@rolldown/binding-freebsd-x64": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/@rolldown/binding-freebsd-x64/-/binding-freebsd-x64-1.1.3.tgz", - "integrity": "sha512-yD3EkEdXk2LypPxnf/kSZHirarsI8gcPzc62SukhR9VJTyvV+F9Q/GxWNuCojc7sXyuVC4DxRGhdDK4X8VSsbw==", - "cpu": [ - "x64" - ], - "dev": true, - "ideallyInert": true, - "license": "MIT", - "optional": true, - "os": [ - "freebsd" - ], - "engines": { - "node": "^20.19.0 || >=22.12.0" - } - }, - "node_modules/@rolldown/binding-linux-arm-gnueabihf": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-arm-gnueabihf/-/binding-linux-arm-gnueabihf-1.1.3.tgz", - "integrity": "sha512-c+8vieQbsD7HNAHKIA34w0GJ9FedFFuJGD+7E6vz7Q3uqAIugL5p45fhlsj4UaAsHpcmlqugBWMhA0/j7o0sIg==", - "cpu": [ - "arm" - ], - "dev": true, - "ideallyInert": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": "^20.19.0 || >=22.12.0" - } - }, - "node_modules/@rolldown/binding-linux-arm64-gnu": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-arm64-gnu/-/binding-linux-arm64-gnu-1.1.3.tgz", - "integrity": "sha512-50jD0uUwLvur7Zz9LHz17kaAdTPjn5wN93hEgjvmYFRZwiR7ZJYovTd5ipyWJDAnXKvZ+wgc+/Ika6dwSF5OcA==", - "cpu": [ - "arm64" - ], - "dev": true, - "ideallyInert": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": "^20.19.0 || >=22.12.0" - } - }, - "node_modules/@rolldown/binding-linux-arm64-musl": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-arm64-musl/-/binding-linux-arm64-musl-1.1.3.tgz", - "integrity": "sha512-BO9+oPL8K9poZJBfYPsXNtYjPE5uM3qeehT3aFcW4LITOl+iSqhp0abzjR2nWBUNjIZeKXjAEWBZ64WjNoHd6w==", - "cpu": [ - "arm64" - ], - "dev": true, - "ideallyInert": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": "^20.19.0 || >=22.12.0" - } - }, - "node_modules/@rolldown/binding-linux-ppc64-gnu": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-ppc64-gnu/-/binding-linux-ppc64-gnu-1.1.3.tgz", - "integrity": "sha512-f3VpLB1vQ0Eo6ecr/6cekLnvYMFF4YBFoVGkfkvPLq1bAkbAwHYQPZKoAmG6OJyTcxxoC+AvezGx/S1obNC0Mw==", - "cpu": [ - "ppc64" - ], - "dev": true, - "ideallyInert": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": "^20.19.0 || >=22.12.0" - } - }, - "node_modules/@rolldown/binding-linux-s390x-gnu": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-s390x-gnu/-/binding-linux-s390x-gnu-1.1.3.tgz", - "integrity": "sha512-AmurZ26Pqx/RI9N1gzEOCklkKXl927yjfXWUUS0O7Puh8ARM/Ob8qfrD3qnWksScdw6cSrW5PSHE9DyLu7+PtA==", - "cpu": [ - "s390x" - ], - "dev": true, - "ideallyInert": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": "^20.19.0 || >=22.12.0" - } - }, - "node_modules/@rolldown/binding-linux-x64-gnu": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-x64-gnu/-/binding-linux-x64-gnu-1.1.3.tgz", - "integrity": "sha512-JJpqs8bRGITDOdbkNKnlojzBabbOHrqjSvDr0IVsZObE1lBcPjxItUEY9eWIDbxaJ3cGrXPWGfGkIxFijg/URg==", - "cpu": [ - "x64" - ], - "dev": true, - "ideallyInert": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": "^20.19.0 || >=22.12.0" - } - }, - "node_modules/@rolldown/binding-linux-x64-musl": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-x64-musl/-/binding-linux-x64-musl-1.1.3.tgz", - "integrity": "sha512-rSJcdjPxzA/by/6/rYs+v+bXU7UjvnbUWz8MJb6kh6+knqB1dCrtHg0uu7C/4haqJvqdkYHQ5IGn+tCH9GLW/g==", - "cpu": [ - "x64" - ], - "dev": true, - "ideallyInert": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": "^20.19.0 || >=22.12.0" - } - }, - "node_modules/@rolldown/binding-openharmony-arm64": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/@rolldown/binding-openharmony-arm64/-/binding-openharmony-arm64-1.1.3.tgz", - "integrity": "sha512-hQ3/PYkDJICgevvyNcVrihVeqq7k1Pp3VZ9lY+dauAYUJKO+auqApvANhvR1An9BhmqYKvW2Mu1F9u4DXSMLxQ==", - "cpu": [ - "arm64" - ], - "dev": true, - "ideallyInert": true, - "license": "MIT", - "optional": true, - "os": [ - "openharmony" - ], - "engines": { - "node": "^20.19.0 || >=22.12.0" - } - }, - "node_modules/@rolldown/binding-wasm32-wasi": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/@rolldown/binding-wasm32-wasi/-/binding-wasm32-wasi-1.1.3.tgz", - "integrity": "sha512-Elcv/BtML9lXrV6JuKITc/grN2kYV9gjsQpW8Jfw4ioK0TOkjBjye0nnyqQNy9STNaI20lXNaQBRrD5gSgR0Yg==", - "cpu": [ - "wasm32" - ], - "dev": true, - "ideallyInert": true, - "license": "MIT", - "optional": true, - "dependencies": { - "@emnapi/core": "1.11.1", - "@emnapi/runtime": "1.11.1", - "@napi-rs/wasm-runtime": "^1.1.6" - }, - "engines": { - "node": "^20.19.0 || >=22.12.0" - } - }, - "node_modules/@rolldown/binding-win32-arm64-msvc": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/@rolldown/binding-win32-arm64-msvc/-/binding-win32-arm64-msvc-1.1.3.tgz", - "integrity": "sha512-2DrEfhluH9yhiaFApmsjsjwrSYbNcY1oFTzYSP1a535jDbV98zCFanA/96TBUd0iDFcxGmw9QRExwGCXz3U+/g==", - "cpu": [ - "arm64" - ], - "dev": true, - "ideallyInert": true, - "license": "MIT", - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": "^20.19.0 || >=22.12.0" - } - }, "node_modules/@rolldown/binding-win32-x64-msvc": { "version": "1.1.3", "resolved": "https://registry.npmjs.org/@rolldown/binding-win32-x64-msvc/-/binding-win32-x64-msvc-1.1.3.tgz", @@ -500,18 +189,6 @@ "dev": true, "license": "MIT" }, - "node_modules/@tybys/wasm-util": { - "version": "0.10.3", - "resolved": "https://registry.npmjs.org/@tybys/wasm-util/-/wasm-util-0.10.3.tgz", - "integrity": "sha512-F3fo1MYrRJYL3zER0OUOmkutjr1Vp23m7OsSgp7nq4SP6OqX6C/56XFIPAl5bt3zaBRjmW7SGz3u/6LwFpYcOg==", - "dev": true, - "ideallyInert": true, - "license": "MIT", - "optional": true, - "dependencies": { - "tslib": "^2.4.0" - } - }, "node_modules/@types/geojson": { "version": "7946.0.16", "resolved": "https://registry.npmjs.org/@types/geojson/-/geojson-7946.0.16.tgz", @@ -645,22 +322,6 @@ "resolved": "frontend", "link": true }, - "node_modules/fsevents": { - "version": "2.3.3", - "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", - "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", - "dev": true, - "hasInstallScript": true, - "ideallyInert": true, - "license": "MIT", - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": "^8.16.0 || ^10.6.0 || >=11.0.0" - } - }, "node_modules/geotiff": { "version": "3.0.5", "resolved": "https://registry.npmjs.org/geotiff/-/geotiff-3.0.5.tgz", @@ -734,226 +395,6 @@ "lightningcss-win32-x64-msvc": "1.32.0" } }, - "node_modules/lightningcss-android-arm64": { - "version": "1.32.0", - "resolved": "https://registry.npmjs.org/lightningcss-android-arm64/-/lightningcss-android-arm64-1.32.0.tgz", - "integrity": "sha512-YK7/ClTt4kAK0vo6w3X+Pnm0D2cf2vPHbhOXdoNti1Ga0al1P4TBZhwjATvjNwLEBCnKvjJc2jQgHXH0NEwlAg==", - "cpu": [ - "arm64" - ], - "dev": true, - "ideallyInert": true, - "license": "MPL-2.0", - "optional": true, - "os": [ - "android" - ], - "engines": { - "node": ">= 12.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/parcel" - } - }, - "node_modules/lightningcss-darwin-arm64": { - "version": "1.32.0", - "resolved": "https://registry.npmjs.org/lightningcss-darwin-arm64/-/lightningcss-darwin-arm64-1.32.0.tgz", - "integrity": "sha512-RzeG9Ju5bag2Bv1/lwlVJvBE3q6TtXskdZLLCyfg5pt+HLz9BqlICO7LZM7VHNTTn/5PRhHFBSjk5lc4cmscPQ==", - "cpu": [ - "arm64" - ], - "dev": true, - "ideallyInert": true, - "license": "MPL-2.0", - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": ">= 12.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/parcel" - } - }, - "node_modules/lightningcss-darwin-x64": { - "version": "1.32.0", - "resolved": "https://registry.npmjs.org/lightningcss-darwin-x64/-/lightningcss-darwin-x64-1.32.0.tgz", - "integrity": "sha512-U+QsBp2m/s2wqpUYT/6wnlagdZbtZdndSmut/NJqlCcMLTWp5muCrID+K5UJ6jqD2BFshejCYXniPDbNh73V8w==", - "cpu": [ - "x64" - ], - "dev": true, - "ideallyInert": true, - "license": "MPL-2.0", - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": ">= 12.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/parcel" - } - }, - "node_modules/lightningcss-freebsd-x64": { - "version": "1.32.0", - "resolved": "https://registry.npmjs.org/lightningcss-freebsd-x64/-/lightningcss-freebsd-x64-1.32.0.tgz", - "integrity": "sha512-JCTigedEksZk3tHTTthnMdVfGf61Fky8Ji2E4YjUTEQX14xiy/lTzXnu1vwiZe3bYe0q+SpsSH/CTeDXK6WHig==", - "cpu": [ - "x64" - ], - "dev": true, - "ideallyInert": true, - "license": "MPL-2.0", - "optional": true, - "os": [ - "freebsd" - ], - "engines": { - "node": ">= 12.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/parcel" - } - }, - "node_modules/lightningcss-linux-arm-gnueabihf": { - "version": "1.32.0", - "resolved": "https://registry.npmjs.org/lightningcss-linux-arm-gnueabihf/-/lightningcss-linux-arm-gnueabihf-1.32.0.tgz", - "integrity": "sha512-x6rnnpRa2GL0zQOkt6rts3YDPzduLpWvwAF6EMhXFVZXD4tPrBkEFqzGowzCsIWsPjqSK+tyNEODUBXeeVHSkw==", - "cpu": [ - "arm" - ], - "dev": true, - "ideallyInert": true, - "license": "MPL-2.0", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">= 12.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/parcel" - } - }, - "node_modules/lightningcss-linux-arm64-gnu": { - "version": "1.32.0", - "resolved": "https://registry.npmjs.org/lightningcss-linux-arm64-gnu/-/lightningcss-linux-arm64-gnu-1.32.0.tgz", - "integrity": "sha512-0nnMyoyOLRJXfbMOilaSRcLH3Jw5z9HDNGfT/gwCPgaDjnx0i8w7vBzFLFR1f6CMLKF8gVbebmkUN3fa/kQJpQ==", - "cpu": [ - "arm64" - ], - "dev": true, - "ideallyInert": true, - "license": "MPL-2.0", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">= 12.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/parcel" - } - }, - "node_modules/lightningcss-linux-arm64-musl": { - "version": "1.32.0", - "resolved": "https://registry.npmjs.org/lightningcss-linux-arm64-musl/-/lightningcss-linux-arm64-musl-1.32.0.tgz", - "integrity": "sha512-UpQkoenr4UJEzgVIYpI80lDFvRmPVg6oqboNHfoH4CQIfNA+HOrZ7Mo7KZP02dC6LjghPQJeBsvXhJod/wnIBg==", - "cpu": [ - "arm64" - ], - "dev": true, - "ideallyInert": true, - "license": "MPL-2.0", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">= 12.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/parcel" - } - }, - "node_modules/lightningcss-linux-x64-gnu": { - "version": "1.32.0", - "resolved": "https://registry.npmjs.org/lightningcss-linux-x64-gnu/-/lightningcss-linux-x64-gnu-1.32.0.tgz", - "integrity": "sha512-V7Qr52IhZmdKPVr+Vtw8o+WLsQJYCTd8loIfpDaMRWGUZfBOYEJeyJIkqGIDMZPwPx24pUMfwSxxI8phr/MbOA==", - "cpu": [ - "x64" - ], - "dev": true, - "ideallyInert": true, - "license": "MPL-2.0", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">= 12.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/parcel" - } - }, - "node_modules/lightningcss-linux-x64-musl": { - "version": "1.32.0", - "resolved": "https://registry.npmjs.org/lightningcss-linux-x64-musl/-/lightningcss-linux-x64-musl-1.32.0.tgz", - "integrity": "sha512-bYcLp+Vb0awsiXg/80uCRezCYHNg1/l3mt0gzHnWV9XP1W5sKa5/TCdGWaR/zBM2PeF/HbsQv/j2URNOiVuxWg==", - "cpu": [ - "x64" - ], - "dev": true, - "ideallyInert": true, - "license": "MPL-2.0", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">= 12.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/parcel" - } - }, - "node_modules/lightningcss-win32-arm64-msvc": { - "version": "1.32.0", - "resolved": "https://registry.npmjs.org/lightningcss-win32-arm64-msvc/-/lightningcss-win32-arm64-msvc-1.32.0.tgz", - "integrity": "sha512-8SbC8BR40pS6baCM8sbtYDSwEVQd4JlFTOlaD3gWGHfThTcABnNDBda6eTZeqbofalIJhFx0qKzgHJmcPTnGdw==", - "cpu": [ - "arm64" - ], - "dev": true, - "ideallyInert": true, - "license": "MPL-2.0", - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": ">= 12.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/parcel" - } - }, "node_modules/lightningcss-win32-x64-msvc": { "version": "1.32.0", "resolved": "https://registry.npmjs.org/lightningcss-win32-x64-msvc/-/lightningcss-win32-x64-msvc-1.32.0.tgz", @@ -1148,22 +589,6 @@ "integrity": "sha512-pcaShQc1Shq0y+E7GqJqvZj8DTthWV1KeHGdi0Z6IAin2Oi3JnLCOfwnCo84qc+HAp52wT9nK9H7FAJp5a44GQ==", "license": "ISC" }, - "node_modules/prettier": { - "version": "3.9.4", - "resolved": "https://registry.npmjs.org/prettier/-/prettier-3.9.4.tgz", - "integrity": "sha512-yWG/o/4oJfo036EKAfK6ACAoDOfHeRHx4tuxkfBZiauURiaSmYwlpOr5LQqKtIkRD2z1PLteme2WoxEnj4tHTg==", - "dev": true, - "license": "MIT", - "bin": { - "prettier": "bin/prettier.cjs" - }, - "engines": { - "node": ">=14" - }, - "funding": { - "url": "https://github.com/prettier/prettier?sponsor=1" - } - }, "node_modules/protocol-buffers-schema": { "version": "3.6.1", "resolved": "https://registry.npmjs.org/protocol-buffers-schema/-/protocol-buffers-schema-3.6.1.tgz", @@ -1297,15 +722,6 @@ "integrity": "sha512-gRa9gwYU3ECmQYv3lslts5hxuIa90veaEcxDYuu3QGOIAEM2mOZkVHp48ANJuu1CURtRdHKUBY5Lm1tHV+sD4g==", "license": "ISC" }, - "node_modules/tslib": { - "version": "2.8.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz", - "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==", - "dev": true, - "ideallyInert": true, - "license": "0BSD", - "optional": true - }, "node_modules/typescript": { "version": "6.0.3", "resolved": "https://registry.npmjs.org/typescript/-/typescript-6.0.3.tgz", diff --git a/node_modules/prettier/LICENSE b/node_modules/prettier/LICENSE deleted file mode 100644 index 5767e34..0000000 --- a/node_modules/prettier/LICENSE +++ /dev/null @@ -1,7 +0,0 @@ -Copyright © James Long and contributors - -Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. diff --git a/node_modules/prettier/README.md b/node_modules/prettier/README.md deleted file mode 100644 index 2297b58..0000000 --- a/node_modules/prettier/README.md +++ /dev/null @@ -1,104 +0,0 @@ -[![Prettier Banner](https://unpkg.com/prettier-logo@1.0.3/images/prettier-banner-light.svg)](https://prettier.io) - -

Opinionated Code Formatter

- -

- - JavaScript - · TypeScript - · Flow - · JSX - · JSON - -
- - CSS - · SCSS - · Less - -
- - HTML - · Vue - · Angular - -
- - GraphQL - · Markdown - · YAML - -
- - - Your favorite language? - - -

- -

- - CI Status - - Coverage Status - - Blazing Fast -
- - npm version - - weekly downloads from npm - - code style: prettier - - Follow Prettier on X -

- -## Intro - -Prettier is an opinionated code formatter. It enforces a consistent style by parsing your code and re-printing it with its own rules that take the maximum line length into account, wrapping code when necessary. - -### Input - - -```js -foo(reallyLongArg(), omgSoManyParameters(), IShouldRefactorThis(), isThereSeriouslyAnotherOne()); -``` - -### Output - -```js -foo( - reallyLongArg(), - omgSoManyParameters(), - IShouldRefactorThis(), - isThereSeriouslyAnotherOne(), -); -``` - -Prettier can be run [in your editor](https://prettier.io/docs/editors) on-save, in a [pre-commit hook](https://prettier.io/docs/precommit), or in [CI environments](https://prettier.io/docs/cli#list-different) to ensure your codebase has a consistent style without devs ever having to post a nit-picky comment on a code review ever again! - ---- - -**[Documentation](https://prettier.io/docs/)** - -[Install](https://prettier.io/docs/install) · -[Options](https://prettier.io/docs/options) · -[CLI](https://prettier.io/docs/cli) · -[API](https://prettier.io/docs/api) - -**[Playground](https://prettier.io/playground/)** - ---- - -## Badge - -Show the world you're using _Prettier_ → [![code style: prettier](https://img.shields.io/badge/code_style-prettier-ff69b4.svg?style=flat-square)](https://github.com/prettier/prettier) - -```md -[![code style: prettier](https://img.shields.io/badge/code_style-prettier-ff69b4.svg?style=flat-square)](https://github.com/prettier/prettier) -``` - -## Contributing - -See [CONTRIBUTING.md](CONTRIBUTING.md). diff --git a/node_modules/prettier/THIRD-PARTY-NOTICES.md b/node_modules/prettier/THIRD-PARTY-NOTICES.md deleted file mode 100644 index 97a7ca2..0000000 --- a/node_modules/prettier/THIRD-PARTY-NOTICES.md +++ /dev/null @@ -1,8013 +0,0 @@ -# Licenses of bundled dependencies - -The published Prettier artifact additionally contains code with the following licenses: -MIT, ISC, BSD-3-Clause, Apache-2.0, BSD-2-Clause, and BlueOak-1.0.0. - -## @angular/compiler@v22.0.4 - -> Angular - the compiler library - -License: MIT -Repository: -Author: angular - -> The MIT License -> -> Copyright (c) 2010-2026 Google LLC. https://angular.dev/license -> -> Permission is hereby granted, free of charge, to any person obtaining a copy -> of this software and associated documentation files (the "Software"), to deal -> in the Software without restriction, including without limitation the rights -> to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -> copies of the Software, and to permit persons to whom the Software is -> furnished to do so, subject to the following conditions: -> -> The above copyright notice and this permission notice shall be included in -> all copies or substantial portions of the Software. -> -> THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -> IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -> FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -> AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -> LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -> OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -> THE SOFTWARE. - ----------------------------------------- - -## @babel/code-frame@v8.0.0 - -> Generate errors that contain a code frame that point to source locations. - -License: MIT -Homepage: -Repository: -Author: The Babel Team (https://babel.dev/team) - -> MIT License -> -> Copyright (c) 2014-present Sebastian McKenzie and other contributors -> -> Permission is hereby granted, free of charge, to any person obtaining -> a copy of this software and associated documentation files (the -> "Software"), to deal in the Software without restriction, including -> without limitation the rights to use, copy, modify, merge, publish, -> distribute, sublicense, and/or sell copies of the Software, and to -> permit persons to whom the Software is furnished to do so, subject to -> the following conditions: -> -> The above copyright notice and this permission notice shall be -> included in all copies or substantial portions of the Software. -> -> THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, -> EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -> MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND -> NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE -> LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION -> OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION -> WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - ----------------------------------------- - -## @babel/helper-validator-identifier@v8.0.2 - -> Validate identifier/keywords name - -License: MIT -Repository: -Author: The Babel Team (https://babel.dev/team) - -> MIT License -> -> Copyright (c) 2014-present Sebastian McKenzie and other contributors -> -> Permission is hereby granted, free of charge, to any person obtaining -> a copy of this software and associated documentation files (the -> "Software"), to deal in the Software without restriction, including -> without limitation the rights to use, copy, modify, merge, publish, -> distribute, sublicense, and/or sell copies of the Software, and to -> permit persons to whom the Software is furnished to do so, subject to -> the following conditions: -> -> The above copyright notice and this permission notice shall be -> included in all copies or substantial portions of the Software. -> -> THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, -> EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -> MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND -> NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE -> LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION -> OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION -> WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - ----------------------------------------- - -## @babel/parser@v8.0.0 - -> A JavaScript parser - -License: MIT -Homepage: -Repository: -Author: The Babel Team (https://babel.dev/team) - -> Copyright (C) 2012-2014 by various contributors (see AUTHORS) -> -> Permission is hereby granted, free of charge, to any person obtaining a copy -> of this software and associated documentation files (the "Software"), to deal -> in the Software without restriction, including without limitation the rights -> to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -> copies of the Software, and to permit persons to whom the Software is -> furnished to do so, subject to the following conditions: -> -> The above copyright notice and this permission notice shall be included in -> all copies or substantial portions of the Software. -> -> THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -> IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -> FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -> AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -> LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -> OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -> THE SOFTWARE. - ----------------------------------------- - -## @cacheable/memory@v2.2.0 - -> High Performance In-Memory Cache for Node.js - -License: MIT -Repository: -Author: Jared Wray - -> MIT License & © Jared Wray -> -> Permission is hereby granted, free of charge, to any person obtaining a copy -> of this software and associated documentation files (the "Software"), to -> deal in the Software without restriction, including without limitation the -> rights to use, copy, modify, merge, publish, distribute, sublicense, and/or -> sell copies of the Software, and to permit persons to whom the Software is -> furnished to do so, subject to the following conditions: -> -> The above copyright notice and this permission notice shall be included in -> all copies or substantial portions of the Software. -> -> THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -> IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -> FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -> AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -> LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING -> FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER -> DEALINGS IN THE SOFTWARE. - ----------------------------------------- - -## @cacheable/utils@v2.5.0 - -> Cacheable Utilities for Caching Libraries - -License: MIT -Repository: -Author: Jared Wray - -> MIT License & © Jared Wray -> -> Permission is hereby granted, free of charge, to any person obtaining a copy -> of this software and associated documentation files (the "Software"), to -> deal in the Software without restriction, including without limitation the -> rights to use, copy, modify, merge, publish, distribute, sublicense, and/or -> sell copies of the Software, and to permit persons to whom the Software is -> furnished to do so, subject to the following conditions: -> -> The above copyright notice and this permission notice shall be included in -> all copies or substantial portions of the Software. -> -> THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -> IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -> FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -> AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -> LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING -> FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER -> DEALINGS IN THE SOFTWARE. - ----------------------------------------- - -## @glimmer/syntax@v0.95.0 - -License: MIT -Repository: - -> Copyright (c) 2015 Tilde, Inc. -> -> Permission is hereby granted, free of charge, to any person obtaining a copy of -> this software and associated documentation files (the "Software"), to deal in -> the Software without restriction, including without limitation the rights to -> use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies -> of the Software, and to permit persons to whom the Software is furnished to do -> so, subject to the following conditions: -> -> The above copyright notice and this permission notice shall be included in all -> copies or substantial portions of the Software. -> -> THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -> IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -> FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -> AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -> LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -> OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -> SOFTWARE. - ----------------------------------------- - -## @glimmer/util@v0.94.8 - -> Common utilities used in Glimmer - -License: MIT -Repository: - -> Copyright (c) 2015 Tilde, Inc. -> -> Permission is hereby granted, free of charge, to any person obtaining a copy of -> this software and associated documentation files (the "Software"), to deal in -> the Software without restriction, including without limitation the rights to -> use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies -> of the Software, and to permit persons to whom the Software is furnished to do -> so, subject to the following conditions: -> -> The above copyright notice and this permission notice shall be included in all -> copies or substantial portions of the Software. -> -> THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -> IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -> FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -> AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -> LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -> OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -> SOFTWARE. - ----------------------------------------- - -## @glimmer/wire-format@v0.94.8 - -License: MIT -Repository: - -> Copyright (c) 2015 Tilde, Inc. -> -> Permission is hereby granted, free of charge, to any person obtaining a copy of -> this software and associated documentation files (the "Software"), to deal in -> the Software without restriction, including without limitation the rights to -> use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies -> of the Software, and to permit persons to whom the Software is furnished to do -> so, subject to the following conditions: -> -> The above copyright notice and this permission notice shall be included in all -> copies or substantial portions of the Software. -> -> THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -> IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -> FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -> AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -> LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -> OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -> SOFTWARE. - ----------------------------------------- - -## @handlebars/parser@v2.2.2 - -> The parser for the Handlebars language - -License: ISC -Homepage: -Repository: - ----------------------------------------- - -## @keyv/serialize@v1.1.1 - -> Serialization for Keyv - -License: MIT -Homepage: -Repository: -Author: Jared Wray (https://jaredwray.com) - -> MIT License -> -> Copyright (c) 2017-2021 Luke Childs -> Copyright (c) 2021-2022 Jared Wray -> -> Permission is hereby granted, free of charge, to any person obtaining a copy -> of this software and associated documentation files (the "Software"), to deal -> in the Software without restriction, including without limitation the rights -> to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -> copies of the Software, and to permit persons to whom the Software is -> furnished to do so, subject to the following conditions: -> -> The above copyright notice and this permission notice shall be included in all -> copies or substantial portions of the Software. -> -> THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -> IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -> FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -> AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -> LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -> OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -> SOFTWARE. - ----------------------------------------- - -## @nodelib/fs.scandir@v2.1.5 - -> List files and directories inside the specified directory - -License: MIT - -> The MIT License (MIT) -> -> Copyright (c) Denis Malinochkin -> -> Permission is hereby granted, free of charge, to any person obtaining a copy -> of this software and associated documentation files (the "Software"), to deal -> in the Software without restriction, including without limitation the rights -> to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -> copies of the Software, and to permit persons to whom the Software is -> furnished to do so, subject to the following conditions: -> -> The above copyright notice and this permission notice shall be included in all -> copies or substantial portions of the Software. -> -> THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -> IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -> FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -> AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -> LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -> OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -> SOFTWARE. - ----------------------------------------- - -## @nodelib/fs.stat@v2.0.5 - -> Get the status of a file with some features - -License: MIT - -> The MIT License (MIT) -> -> Copyright (c) Denis Malinochkin -> -> Permission is hereby granted, free of charge, to any person obtaining a copy -> of this software and associated documentation files (the "Software"), to deal -> in the Software without restriction, including without limitation the rights -> to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -> copies of the Software, and to permit persons to whom the Software is -> furnished to do so, subject to the following conditions: -> -> The above copyright notice and this permission notice shall be included in all -> copies or substantial portions of the Software. -> -> THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -> IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -> FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -> AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -> LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -> OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -> SOFTWARE. - ----------------------------------------- - -## @nodelib/fs.walk@v1.2.8 - -> A library for efficiently walking a directory recursively - -License: MIT - -> The MIT License (MIT) -> -> Copyright (c) Denis Malinochkin -> -> Permission is hereby granted, free of charge, to any person obtaining a copy -> of this software and associated documentation files (the "Software"), to deal -> in the Software without restriction, including without limitation the rights -> to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -> copies of the Software, and to permit persons to whom the Software is -> furnished to do so, subject to the following conditions: -> -> The above copyright notice and this permission notice shall be included in all -> copies or substantial portions of the Software. -> -> THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -> IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -> FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -> AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -> LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -> OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -> SOFTWARE. - ----------------------------------------- - -## @prettier/cli@v0.12.0 - -> A faster CLI for Prettier. - -License: MIT - -> Copyright © James Long and contributors -> -> Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: -> -> The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. -> -> THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - ----------------------------------------- - -## @prettier/html-event-attributes@v0.0.2 - -> List of HTML event handler attributes. - -License: MIT -Author: fisker (https://fiskercheung.com) - -> MIT License -> -> Copyright (c) fisker Cheung (https://www.fiskercheung.com/) -> -> Permission is hereby granted, free of charge, to any person obtaining a copy -> of this software and associated documentation files (the "Software"), to deal -> in the Software without restriction, including without limitation the rights -> to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -> copies of the Software, and to permit persons to whom the Software is -> furnished to do so, subject to the following conditions: -> -> The above copyright notice and this permission notice shall be included in all -> copies or substantial portions of the Software. -> -> THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -> IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -> FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -> AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -> LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -> OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -> SOFTWARE. - ----------------------------------------- - -## @prettier/parse-srcset@v3.1.0 - -> A spec-conformant JavaScript parser for the HTML5 srcset attribute - -License: MIT -Homepage: -Author: Alex Bell - -> The MIT License (MIT) -> -> Copyright (c) 2014 Alex Bell -> Copyright (c) fisker Cheung -> -> Permission is hereby granted, free of charge, to any person obtaining a copy -> of this software and associated documentation files (the "Software"), to deal -> in the Software without restriction, including without limitation the rights -> to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -> copies of the Software, and to permit persons to whom the Software is -> furnished to do so, subject to the following conditions: -> -> The above copyright notice and this permission notice shall be included in all -> copies or substantial portions of the Software. -> -> THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -> IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -> FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -> AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -> LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -> OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -> SOFTWARE. - ----------------------------------------- - -## @typescript-eslint/types@v8.62.0 - -> Types for the TypeScript-ESTree AST spec - -License: MIT -Homepage: -Repository: - -> MIT License -> -> Copyright (c) 2019 typescript-eslint and other contributors -> -> Permission is hereby granted, free of charge, to any person obtaining a copy -> of this software and associated documentation files (the "Software"), to deal -> in the Software without restriction, including without limitation the rights -> to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -> copies of the Software, and to permit persons to whom the Software is -> furnished to do so, subject to the following conditions: -> -> The above copyright notice and this permission notice shall be included in all -> copies or substantial portions of the Software. -> -> THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -> IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -> FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -> AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -> LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -> OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -> SOFTWARE. - ----------------------------------------- - -## @typescript-eslint/typescript-estree@v8.62.0 - -> A parser that converts TypeScript source code into an ESTree compatible form - -License: MIT -Homepage: -Repository: - -> MIT License -> -> Copyright (c) 2019 typescript-eslint and other contributors -> -> Permission is hereby granted, free of charge, to any person obtaining a copy -> of this software and associated documentation files (the "Software"), to deal -> in the Software without restriction, including without limitation the rights -> to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -> copies of the Software, and to permit persons to whom the Software is -> furnished to do so, subject to the following conditions: -> -> The above copyright notice and this permission notice shall be included in all -> copies or substantial portions of the Software. -> -> THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -> IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -> FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -> AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -> LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -> OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -> SOFTWARE. - ----------------------------------------- - -## acorn@v8.17.0 - -> ECMAScript parser - -License: MIT -Homepage: -Repository: - -> MIT License -> -> Copyright (C) 2012-2022 by various contributors (see AUTHORS) -> -> Permission is hereby granted, free of charge, to any person obtaining a copy -> of this software and associated documentation files (the "Software"), to deal -> in the Software without restriction, including without limitation the rights -> to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -> copies of the Software, and to permit persons to whom the Software is -> furnished to do so, subject to the following conditions: -> -> The above copyright notice and this permission notice shall be included in -> all copies or substantial portions of the Software. -> -> THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -> IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -> FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -> AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -> LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -> OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -> THE SOFTWARE. - ----------------------------------------- - -## acorn-jsx@v5.3.2 - -> Modern, fast React.js JSX parser - -License: MIT -Homepage: -Repository: - -> Copyright (C) 2012-2017 by Ingvar Stepanyan -> -> Permission is hereby granted, free of charge, to any person obtaining a copy -> of this software and associated documentation files (the "Software"), to deal -> in the Software without restriction, including without limitation the rights -> to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -> copies of the Software, and to permit persons to whom the Software is -> furnished to do so, subject to the following conditions: -> -> The above copyright notice and this permission notice shall be included in -> all copies or substantial portions of the Software. -> -> THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -> IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -> FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -> AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -> LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -> OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -> THE SOFTWARE. - ----------------------------------------- - -## angular-estree-parser@v15.5.0 - -> A parser that converts Angular source code into an ESTree-compatible form - -License: MIT -Homepage: -Author: Ika (https://github.com/ikatyang) - -> MIT License -> -> Copyright (c) Ika (https://github.com/ikatyang) -> -> Permission is hereby granted, free of charge, to any person obtaining a copy -> of this software and associated documentation files (the "Software"), to deal -> in the Software without restriction, including without limitation the rights -> to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -> copies of the Software, and to permit persons to whom the Software is -> furnished to do so, subject to the following conditions: -> -> The above copyright notice and this permission notice shall be included in all -> copies or substantial portions of the Software. -> -> THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -> IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -> FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -> AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -> LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -> OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -> SOFTWARE. - ----------------------------------------- - -## angular-html-parser@v10.10.0 - -> A HTML parser extracted from Angular with some modifications - -License: MIT -Homepage: -Author: Ika (https://github.com/ikatyang) - -> MIT License -> -> Copyright (c) Ika (https://github.com/ikatyang) -> -> Permission is hereby granted, free of charge, to any person obtaining a copy -> of this software and associated documentation files (the "Software"), to deal -> in the Software without restriction, including without limitation the rights -> to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -> copies of the Software, and to permit persons to whom the Software is -> furnished to do so, subject to the following conditions: -> -> The above copyright notice and this permission notice shall be included in all -> copies or substantial portions of the Software. -> -> THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -> IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -> FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -> AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -> LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -> OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -> SOFTWARE. - ----------------------------------------- - -## ansi-purge@v1.1.0 - -> A tiny function for deleting ANSI escape sequences from a string. - -License: MIT - -> The MIT License (MIT) -> -> Copyright (c) 2023-present Fabio Spampinato -> -> Permission is hereby granted, free of charge, to any person obtaining a -> copy of this software and associated documentation files (the "Software"), -> to deal in the Software without restriction, including without limitation -> the rights to use, copy, modify, merge, publish, distribute, sublicense, -> and/or sell copies of the Software, and to permit persons to whom the -> Software is furnished to do so, subject to the following conditions: -> -> The above copyright notice and this permission notice shall be included in -> all copies or substantial portions of the Software. -> -> THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -> IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -> FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -> AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -> LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING -> FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER -> DEALINGS IN THE SOFTWARE. - ----------------------------------------- - -## ansi-regex@v6.2.2 - -> Regular expression for matching ANSI escape codes - -License: MIT -Author: Sindre Sorhus (https://sindresorhus.com) - -> MIT License -> -> Copyright (c) Sindre Sorhus (https://sindresorhus.com) -> -> Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: -> -> The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. -> -> THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - ----------------------------------------- - -## ansi-truncate@v1.4.0 - -> A tiny function for truncating a string that may contain ANSI escape sequences. - -License: MIT - -> The MIT License (MIT) -> -> Copyright (c) 2022-present Fabio Spampinato -> -> Permission is hereby granted, free of charge, to any person obtaining a -> copy of this software and associated documentation files (the "Software"), -> to deal in the Software without restriction, including without limitation -> the rights to use, copy, modify, merge, publish, distribute, sublicense, -> and/or sell copies of the Software, and to permit persons to whom the -> Software is furnished to do so, subject to the following conditions: -> -> The above copyright notice and this permission notice shall be included in -> all copies or substantial portions of the Software. -> -> THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -> IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -> FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -> AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -> LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING -> FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER -> DEALINGS IN THE SOFTWARE. - ----------------------------------------- - -## atomically@v2.1.1 - -> Read and write files atomically and reliably. - -License: MIT - -> The MIT License (MIT) -> -> Copyright (c) 2020-present Fabio Spampinato -> -> Permission is hereby granted, free of charge, to any person obtaining a -> copy of this software and associated documentation files (the "Software"), -> to deal in the Software without restriction, including without limitation -> the rights to use, copy, modify, merge, publish, distribute, sublicense, -> and/or sell copies of the Software, and to permit persons to whom the -> Software is furnished to do so, subject to the following conditions: -> -> The above copyright notice and this permission notice shall be included in -> all copies or substantial portions of the Software. -> -> THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -> IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -> FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -> AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -> LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING -> FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER -> DEALINGS IN THE SOFTWARE. - ----------------------------------------- - -## bail@v1.0.5 - -> Throw a given error - -License: MIT -Author: Titus Wormer (https://wooorm.com) -Contributors: - - Titus Wormer (https://wooorm.com) - -> (The MIT License) -> -> Copyright (c) 2015 Titus Wormer -> -> Permission is hereby granted, free of charge, to any person obtaining -> a copy of this software and associated documentation files (the -> 'Software'), to deal in the Software without restriction, including -> without limitation the rights to use, copy, modify, merge, publish, -> distribute, sublicense, and/or sell copies of the Software, and to -> permit persons to whom the Software is furnished to do so, subject to -> the following conditions: -> -> The above copyright notice and this permission notice shall be -> included in all copies or substantial portions of the Software. -> -> THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND, -> EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -> MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. -> IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY -> CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, -> TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE -> SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - ----------------------------------------- - -## balanced-match@v4.0.4 - -> Match balanced character pairs, like "{" and "}" - -License: MIT -Repository: - -> (MIT) -> -> Original code Copyright Julian Gruber -> -> Port to TypeScript Copyright Isaac Z. Schlueter -> -> Permission is hereby granted, free of charge, to any person obtaining a copy of -> this software and associated documentation files (the "Software"), to deal in -> the Software without restriction, including without limitation the rights to -> use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies -> of the Software, and to permit persons to whom the Software is furnished to do -> so, subject to the following conditions: -> -> The above copyright notice and this permission notice shall be included in all -> copies or substantial portions of the Software. -> -> THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -> IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -> FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -> AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -> LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -> OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -> SOFTWARE. - ----------------------------------------- - -## base64-js@v1.5.1 - -> Base64 encoding/decoding in pure JS - -License: MIT -Homepage: -Repository: -Author: T. Jameson Little - -> The MIT License (MIT) -> -> Copyright (c) 2014 Jameson Little -> -> Permission is hereby granted, free of charge, to any person obtaining a copy -> of this software and associated documentation files (the "Software"), to deal -> in the Software without restriction, including without limitation the rights -> to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -> copies of the Software, and to permit persons to whom the Software is -> furnished to do so, subject to the following conditions: -> -> The above copyright notice and this permission notice shall be included in -> all copies or substantial portions of the Software. -> -> THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -> IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -> FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -> AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -> LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -> OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -> THE SOFTWARE. - ----------------------------------------- - -## binary-extensions@v3.1.0 - -> List of binary file extensions - -License: MIT -Author: Sindre Sorhus (https://sindresorhus.com) - -> MIT License -> -> Copyright (c) Sindre Sorhus (https://sindresorhus.com) -> Copyright (c) Paul Miller (https://paulmillr.com) -> -> Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: -> -> The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. -> -> THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - ----------------------------------------- - -## brace-expansion@v5.0.6 - -> Brace expansion as known from sh/bash - -License: MIT -Repository: - -> MIT License -> -> Copyright Julian Gruber -> -> TypeScript port Copyright Isaac Z. Schlueter -> -> Permission is hereby granted, free of charge, to any person obtaining a copy -> of this software and associated documentation files (the "Software"), to deal -> in the Software without restriction, including without limitation the rights -> to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -> copies of the Software, and to permit persons to whom the Software is -> furnished to do so, subject to the following conditions: -> -> The above copyright notice and this permission notice shall be included in all -> copies or substantial portions of the Software. -> -> THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -> IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -> FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -> AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -> LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -> OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -> SOFTWARE. - ----------------------------------------- - -## braces@v3.0.3 - -> Bash-like brace expansion, implemented in JavaScript. Safer than other brace expansion libs, with complete support for the Bash 4.3 braces specification, without sacrificing speed. - -License: MIT -Homepage: -Author: Jon Schlinkert (https://github.com/jonschlinkert) -Contributors: - - Brian Woodward (https://twitter.com/doowb) - - Elan Shanker (https://github.com/es128) - - Eugene Sharygin (https://github.com/eush77) - - hemanth.hm (http://h3manth.com) - - Jon Schlinkert (http://twitter.com/jonschlinkert) - -> The MIT License (MIT) -> -> Copyright (c) 2014-present, Jon Schlinkert. -> -> Permission is hereby granted, free of charge, to any person obtaining a copy -> of this software and associated documentation files (the "Software"), to deal -> in the Software without restriction, including without limitation the rights -> to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -> copies of the Software, and to permit persons to whom the Software is -> furnished to do so, subject to the following conditions: -> -> The above copyright notice and this permission notice shall be included in -> all copies or substantial portions of the Software. -> -> THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -> IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -> FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -> AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -> LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -> OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -> THE SOFTWARE. - ----------------------------------------- - -## buffer@v6.0.3 - -> Node.js Buffer API, for the browser - -License: MIT -Homepage: -Repository: -Author: Feross Aboukhadijeh (https://feross.org) -Contributors: - - Romain Beauxis - - James Halliday - -> The MIT License (MIT) -> -> Copyright (c) Feross Aboukhadijeh, and other contributors. -> -> Permission is hereby granted, free of charge, to any person obtaining a copy -> of this software and associated documentation files (the "Software"), to deal -> in the Software without restriction, including without limitation the rights -> to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -> copies of the Software, and to permit persons to whom the Software is -> furnished to do so, subject to the following conditions: -> -> The above copyright notice and this permission notice shall be included in -> all copies or substantial portions of the Software. -> -> THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -> IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -> FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -> AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -> LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -> OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -> THE SOFTWARE. - ----------------------------------------- - -## cacheable@v2.5.0 - -> High Performance Layer 1 / Layer 2 Caching with Keyv Storage - -License: MIT -Repository: -Author: Jared Wray - -> MIT License & © Jared Wray -> -> Permission is hereby granted, free of charge, to any person obtaining a copy -> of this software and associated documentation files (the "Software"), to -> deal in the Software without restriction, including without limitation the -> rights to use, copy, modify, merge, publish, distribute, sublicense, and/or -> sell copies of the Software, and to permit persons to whom the Software is -> furnished to do so, subject to the following conditions: -> -> The above copyright notice and this permission notice shall be included in -> all copies or substantial portions of the Software. -> -> THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -> IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -> FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -> AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -> LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING -> FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER -> DEALINGS IN THE SOFTWARE. - ----------------------------------------- - -## camelcase@v9.0.0 - -> Convert a dash/dot/underscore/space separated string to camelCase or PascalCase: `foo-bar` → `fooBar` - -License: MIT -Author: Sindre Sorhus (https://sindresorhus.com) - -> MIT License -> -> Copyright (c) Sindre Sorhus (https://sindresorhus.com) -> -> Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: -> -> The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. -> -> THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - ----------------------------------------- - -## ccount@v2.0.1 - -> Count how often a character (or substring) is used in a string - -License: MIT -Author: Titus Wormer (https://wooorm.com) -Contributors: - - Titus Wormer (https://wooorm.com) - -> (The MIT License) -> -> Copyright (c) 2015 Titus Wormer -> -> Permission is hereby granted, free of charge, to any person obtaining -> a copy of this software and associated documentation files (the -> 'Software'), to deal in the Software without restriction, including -> without limitation the rights to use, copy, modify, merge, publish, -> distribute, sublicense, and/or sell copies of the Software, and to -> permit persons to whom the Software is furnished to do so, subject to -> the following conditions: -> -> The above copyright notice and this permission notice shall be -> included in all copies or substantial portions of the Software. -> -> THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND, -> EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -> MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. -> IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY -> CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, -> TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE -> SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - ----------------------------------------- - -## character-entities@v2.0.2 - -> Map of named character references - -License: MIT -Author: Titus Wormer (https://wooorm.com) -Contributors: - - Titus Wormer (https://wooorm.com) - -> (The MIT License) -> -> Copyright (c) 2015 Titus Wormer -> -> Permission is hereby granted, free of charge, to any person obtaining -> a copy of this software and associated documentation files (the -> 'Software'), to deal in the Software without restriction, including -> without limitation the rights to use, copy, modify, merge, publish, -> distribute, sublicense, and/or sell copies of the Software, and to -> permit persons to whom the Software is furnished to do so, subject to -> the following conditions: -> -> The above copyright notice and this permission notice shall be -> included in all copies or substantial portions of the Software. -> -> THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND, -> EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -> MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. -> IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY -> CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, -> TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE -> SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - ----------------------------------------- - -## character-entities-legacy@v1.1.4 - -> HTML legacy character entity information - -License: MIT -Author: Titus Wormer (https://wooorm.com) -Contributors: - - Titus Wormer (https://wooorm.com) - -> (The MIT License) -> -> Copyright (c) 2015 Titus Wormer -> -> Permission is hereby granted, free of charge, to any person obtaining -> a copy of this software and associated documentation files (the -> 'Software'), to deal in the Software without restriction, including -> without limitation the rights to use, copy, modify, merge, publish, -> distribute, sublicense, and/or sell copies of the Software, and to -> permit persons to whom the Software is furnished to do so, subject to -> the following conditions: -> -> The above copyright notice and this permission notice shall be -> included in all copies or substantial portions of the Software. -> -> THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND, -> EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -> MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. -> IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY -> CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, -> TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE -> SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - ----------------------------------------- - -## character-reference-invalid@v1.1.4 - -> HTML invalid numeric character reference information - -License: MIT -Author: Titus Wormer (https://wooorm.com) -Contributors: - - Titus Wormer (https://wooorm.com) - -> (The MIT License) -> -> Copyright (c) 2015 Titus Wormer -> -> Permission is hereby granted, free of charge, to any person obtaining -> a copy of this software and associated documentation files (the -> 'Software'), to deal in the Software without restriction, including -> without limitation the rights to use, copy, modify, merge, publish, -> distribute, sublicense, and/or sell copies of the Software, and to -> permit persons to whom the Software is furnished to do so, subject to -> the following conditions: -> -> The above copyright notice and this permission notice shall be -> included in all copies or substantial portions of the Software. -> -> THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND, -> EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -> MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. -> IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY -> CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, -> TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE -> SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - ----------------------------------------- - -## ci-info@v4.4.0 - -> Get details about the current Continuous Integration environment - -License: MIT -Homepage: -Author: Thomas Watson Steen (https://twitter.com/wa7son) -Contributors: - - Sibiraj (https://github.com/sibiraj-s) - -> The MIT License (MIT) -> -> Copyright (c) 2016 Thomas Watson Steen -> -> Permission is hereby granted, free of charge, to any person obtaining a copy -> of this software and associated documentation files (the "Software"), to deal -> in the Software without restriction, including without limitation the rights -> to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -> copies of the Software, and to permit persons to whom the Software is -> furnished to do so, subject to the following conditions: -> -> The above copyright notice and this permission notice shall be included in all -> copies or substantial portions of the Software. -> -> THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -> IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -> FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -> AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -> LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -> OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -> SOFTWARE. - ----------------------------------------- - -## collapse-white-space@v1.0.6 - -> Replace multiple white-space characters with a single space - -License: MIT -Author: Titus Wormer (https://wooorm.com) -Contributors: - - Titus Wormer (https://wooorm.com) - -> (The MIT License) -> -> Copyright (c) 2015 Titus Wormer -> -> Permission is hereby granted, free of charge, to any person obtaining -> a copy of this software and associated documentation files (the -> 'Software'), to deal in the Software without restriction, including -> without limitation the rights to use, copy, modify, merge, publish, -> distribute, sublicense, and/or sell copies of the Software, and to -> permit persons to whom the Software is furnished to do so, subject to -> the following conditions: -> -> The above copyright notice and this permission notice shall be -> included in all copies or substantial portions of the Software. -> -> THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND, -> EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -> MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. -> IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY -> CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, -> TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE -> SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - ----------------------------------------- - -## common-path-prefix@v3.0.0 - -> Computes the longest prefix string that is common to each path, excluding the base component - -License: ISC -Homepage: -Repository: -Author: Mark Wubben (https://novemberborn.net/) - -> ISC License (ISC) -> Copyright (c) 2016, Mark Wubben -> -> Permission to use, copy, modify, and/or distribute this software for any purpose -> with or without fee is hereby granted, provided that the above copyright notice -> and this permission notice appear in all copies. -> -> THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH -> REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND -> FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, -> INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS -> OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER -> TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF -> THIS SOFTWARE. - ----------------------------------------- - -## dashify@v2.0.0 - -> Convert a camelcase or space-separated string to a dash-separated string. ~12 sloc, fast, supports diacritics. - -License: MIT -Homepage: -Author: Jon Schlinkert (https://github.com/jonschlinkert) -Contributors: - - Jeffrey Priebe (https://github.com/jeffreypriebe) - - Jon Schlinkert (http://twitter.com/jonschlinkert) - - Ondrej Brinkel (https://www.anzui.de) - -> The MIT License (MIT) -> -> Copyright (c) 2015-present, Jon Schlinkert. -> -> Permission is hereby granted, free of charge, to any person obtaining a copy -> of this software and associated documentation files (the "Software"), to deal -> in the Software without restriction, including without limitation the rights -> to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -> copies of the Software, and to permit persons to whom the Software is -> furnished to do so, subject to the following conditions: -> -> The above copyright notice and this permission notice shall be included in -> all copies or substantial portions of the Software. -> -> THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -> IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -> FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -> AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -> LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -> OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -> THE SOFTWARE. - ----------------------------------------- - -## decode-named-character-reference@v1.3.0 - -> Decode named character references - -License: MIT -Author: Titus Wormer (https://wooorm.com) -Contributors: - - Titus Wormer (https://wooorm.com) - -> (The MIT License) -> -> Copyright (c) Titus Wormer -> -> Permission is hereby granted, free of charge, to any person obtaining -> a copy of this software and associated documentation files (the -> 'Software'), to deal in the Software without restriction, including -> without limitation the rights to use, copy, modify, merge, publish, -> distribute, sublicense, and/or sell copies of the Software, and to -> permit persons to whom the Software is furnished to do so, subject to -> the following conditions: -> -> The above copyright notice and this permission notice shall be -> included in all copies or substantial portions of the Software. -> -> THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND, -> EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -> MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. -> IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY -> CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, -> TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE -> SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - ----------------------------------------- - -## deno-path-from-file-url@v0.0.7 - -> Convert file URLs to paths. - -License: MIT -Homepage: -Author: fisker Cheung (https://www.fiskercheung.com/) - -> MIT License -> -> Copyright (c) fisker Cheung (https://www.fiskercheung.com/) -> -> Permission is hereby granted, free of charge, to any person obtaining a copy -> of this software and associated documentation files (the "Software"), to deal -> in the Software without restriction, including without limitation the rights -> to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -> copies of the Software, and to permit persons to whom the Software is -> furnished to do so, subject to the following conditions: -> -> The above copyright notice and this permission notice shall be included in all -> copies or substantial portions of the Software. -> -> THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -> IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -> FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -> AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -> LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -> OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -> SOFTWARE. - ----------------------------------------- - -## dettle@v1.0.5 - -> A tiny fully-featured debounce and throttle implementation. - -License: MIT - -> The MIT License (MIT) -> -> Copyright (c) 2023-present Fabio Spampinato -> -> Permission is hereby granted, free of charge, to any person obtaining a -> copy of this software and associated documentation files (the "Software"), -> to deal in the Software without restriction, including without limitation -> the rights to use, copy, modify, merge, publish, distribute, sublicense, -> and/or sell copies of the Software, and to permit persons to whom the -> Software is furnished to do so, subject to the following conditions: -> -> The above copyright notice and this permission notice shall be included in -> all copies or substantial portions of the Software. -> -> THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -> IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -> FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -> AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -> LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING -> FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER -> DEALINGS IN THE SOFTWARE. - ----------------------------------------- - -## devlop@v1.1.0 - -> Do things in development and nothing otherwise - -License: MIT -Author: Titus Wormer (https://wooorm.com) -Contributors: - - Titus Wormer (https://wooorm.com) - -> (The MIT License) -> -> Copyright (c) 2023 Titus Wormer -> -> Permission is hereby granted, free of charge, to any person obtaining -> a copy of this software and associated documentation files (the -> 'Software'), to deal in the Software without restriction, including -> without limitation the rights to use, copy, modify, merge, publish, -> distribute, sublicense, and/or sell copies of the Software, and to -> permit persons to whom the Software is furnished to do so, subject to -> the following conditions: -> -> The above copyright notice and this permission notice shall be -> included in all copies or substantial portions of the Software. -> -> THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND, -> EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -> MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. -> IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY -> CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, -> TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE -> SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - ----------------------------------------- - -## diff@v9.0.0 - -> A JavaScript text diff implementation. - -License: BSD-3-Clause -Repository: - -> BSD 3-Clause License -> -> Copyright (c) 2009-2015, Kevin Decker -> All rights reserved. -> -> Redistribution and use in source and binary forms, with or without -> modification, are permitted provided that the following conditions are met: -> -> 1. Redistributions of source code must retain the above copyright notice, this -> list of conditions and the following disclaimer. -> -> 2. Redistributions in binary form must reproduce the above copyright notice, -> this list of conditions and the following disclaimer in the documentation -> and/or other materials provided with the distribution. -> -> 3. Neither the name of the copyright holder nor the names of its -> contributors may be used to endorse or promote products derived from -> this software without specific prior written permission. -> -> THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" -> AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -> IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE -> DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE -> FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL -> DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR -> SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER -> CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, -> OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -> OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - ----------------------------------------- - -## editorconfig-without-wasm@v0.0.7 - -> EditorConfig File Locator and Interpreter for Node.js - -License: MIT -Repository: -Author: fisker Cheung (https://www.fiskercheung.com/) -Contributors: - - Hong Xu (topbug.net) - - Jed Mao (https://github.com/jedmao/) - - Trey Hunner (http://treyhunner.com) - - Joe Hildebrand (https://github.com/hildjj/) - - SunsetTechuila (https://github.com/SunsetTechuila/) - - Rex Lorenzo (https://github.com/rlorenzo/) - - Gareth Jones (https://github.com/G-Rath) - -> Copyright © 2012 EditorConfig Team -> -> Permission is hereby granted, free of charge, to any person obtaining a copy -> of this software and associated documentation files (the “Software”), to deal -> in the Software without restriction, including without limitation the rights -> to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -> copies of the Software, and to permit persons to whom the Software is -> furnished to do so, subject to the following conditions: -> -> The above copyright notice and this permission notice shall be included in -> all copies or substantial portions of the Software. -> -> THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -> IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -> FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -> AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -> LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -> OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -> THE SOFTWARE. - ----------------------------------------- - -## emoji-regex@v10.6.0 - -> A regular expression to match all Emoji-only symbols as per the Unicode Standard. - -License: MIT -Homepage: -Repository: -Author: Mathias Bynens (https://mathiasbynens.be/) - -> Copyright Mathias Bynens -> -> Permission is hereby granted, free of charge, to any person obtaining -> a copy of this software and associated documentation files (the -> "Software"), to deal in the Software without restriction, including -> without limitation the rights to use, copy, modify, merge, publish, -> distribute, sublicense, and/or sell copies of the Software, and to -> permit persons to whom the Software is furnished to do so, subject to -> the following conditions: -> -> The above copyright notice and this permission notice shall be -> included in all copies or substantial portions of the Software. -> -> THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, -> EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -> MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND -> NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE -> LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION -> OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION -> WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - ----------------------------------------- - -## escape-string-regexp@v5.0.0 - -> Escape RegExp special characters - -License: MIT -Author: Sindre Sorhus (https://sindresorhus.com) - -> MIT License -> -> Copyright (c) Sindre Sorhus (https://sindresorhus.com) -> -> Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: -> -> The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. -> -> THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - ----------------------------------------- - -## eslint-visitor-keys@v5.0.1 - -> Constants and utilities about visitor keys to traverse AST. - -License: Apache-2.0 -Homepage: -Repository: -Author: Toru Nagashima (https://github.com/mysticatea) - -> Apache License -> Version 2.0, January 2004 -> http://www.apache.org/licenses/ -> -> TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION -> -> 1. Definitions. -> -> "License" shall mean the terms and conditions for use, reproduction, -> and distribution as defined by Sections 1 through 9 of this document. -> -> "Licensor" shall mean the copyright owner or entity authorized by -> the copyright owner that is granting the License. -> -> "Legal Entity" shall mean the union of the acting entity and all -> other entities that control, are controlled by, or are under common -> control with that entity. For the purposes of this definition, -> "control" means (i) the power, direct or indirect, to cause the -> direction or management of such entity, whether by contract or -> otherwise, or (ii) ownership of fifty percent (50%) or more of the -> outstanding shares, or (iii) beneficial ownership of such entity. -> -> "You" (or "Your") shall mean an individual or Legal Entity -> exercising permissions granted by this License. -> -> "Source" form shall mean the preferred form for making modifications, -> including but not limited to software source code, documentation -> source, and configuration files. -> -> "Object" form shall mean any form resulting from mechanical -> transformation or translation of a Source form, including but -> not limited to compiled object code, generated documentation, -> and conversions to other media types. -> -> "Work" shall mean the work of authorship, whether in Source or -> Object form, made available under the License, as indicated by a -> copyright notice that is included in or attached to the work -> (an example is provided in the Appendix below). -> -> "Derivative Works" shall mean any work, whether in Source or Object -> form, that is based on (or derived from) the Work and for which the -> editorial revisions, annotations, elaborations, or other modifications -> represent, as a whole, an original work of authorship. For the purposes -> of this License, Derivative Works shall not include works that remain -> separable from, or merely link (or bind by name) to the interfaces of, -> the Work and Derivative Works thereof. -> -> "Contribution" shall mean any work of authorship, including -> the original version of the Work and any modifications or additions -> to that Work or Derivative Works thereof, that is intentionally -> submitted to Licensor for inclusion in the Work by the copyright owner -> or by an individual or Legal Entity authorized to submit on behalf of -> the copyright owner. For the purposes of this definition, "submitted" -> means any form of electronic, verbal, or written communication sent -> to the Licensor or its representatives, including but not limited to -> communication on electronic mailing lists, source code control systems, -> and issue tracking systems that are managed by, or on behalf of, the -> Licensor for the purpose of discussing and improving the Work, but -> excluding communication that is conspicuously marked or otherwise -> designated in writing by the copyright owner as "Not a Contribution." -> -> "Contributor" shall mean Licensor and any individual or Legal Entity -> on behalf of whom a Contribution has been received by Licensor and -> subsequently incorporated within the Work. -> -> 2. Grant of Copyright License. Subject to the terms and conditions of -> this License, each Contributor hereby grants to You a perpetual, -> worldwide, non-exclusive, no-charge, royalty-free, irrevocable -> copyright license to reproduce, prepare Derivative Works of, -> publicly display, publicly perform, sublicense, and distribute the -> Work and such Derivative Works in Source or Object form. -> -> 3. Grant of Patent License. Subject to the terms and conditions of -> this License, each Contributor hereby grants to You a perpetual, -> worldwide, non-exclusive, no-charge, royalty-free, irrevocable -> (except as stated in this section) patent license to make, have made, -> use, offer to sell, sell, import, and otherwise transfer the Work, -> where such license applies only to those patent claims licensable -> by such Contributor that are necessarily infringed by their -> Contribution(s) alone or by combination of their Contribution(s) -> with the Work to which such Contribution(s) was submitted. If You -> institute patent litigation against any entity (including a -> cross-claim or counterclaim in a lawsuit) alleging that the Work -> or a Contribution incorporated within the Work constitutes direct -> or contributory patent infringement, then any patent licenses -> granted to You under this License for that Work shall terminate -> as of the date such litigation is filed. -> -> 4. Redistribution. You may reproduce and distribute copies of the -> Work or Derivative Works thereof in any medium, with or without -> modifications, and in Source or Object form, provided that You -> meet the following conditions: -> -> (a) You must give any other recipients of the Work or -> Derivative Works a copy of this License; and -> -> (b) You must cause any modified files to carry prominent notices -> stating that You changed the files; and -> -> (c) You must retain, in the Source form of any Derivative Works -> that You distribute, all copyright, patent, trademark, and -> attribution notices from the Source form of the Work, -> excluding those notices that do not pertain to any part of -> the Derivative Works; and -> -> (d) If the Work includes a "NOTICE" text file as part of its -> distribution, then any Derivative Works that You distribute must -> include a readable copy of the attribution notices contained -> within such NOTICE file, excluding those notices that do not -> pertain to any part of the Derivative Works, in at least one -> of the following places: within a NOTICE text file distributed -> as part of the Derivative Works; within the Source form or -> documentation, if provided along with the Derivative Works; or, -> within a display generated by the Derivative Works, if and -> wherever such third-party notices normally appear. The contents -> of the NOTICE file are for informational purposes only and -> do not modify the License. You may add Your own attribution -> notices within Derivative Works that You distribute, alongside -> or as an addendum to the NOTICE text from the Work, provided -> that such additional attribution notices cannot be construed -> as modifying the License. -> -> You may add Your own copyright statement to Your modifications and -> may provide additional or different license terms and conditions -> for use, reproduction, or distribution of Your modifications, or -> for any such Derivative Works as a whole, provided Your use, -> reproduction, and distribution of the Work otherwise complies with -> the conditions stated in this License. -> -> 5. Submission of Contributions. Unless You explicitly state otherwise, -> any Contribution intentionally submitted for inclusion in the Work -> by You to the Licensor shall be under the terms and conditions of -> this License, without any additional terms or conditions. -> Notwithstanding the above, nothing herein shall supersede or modify -> the terms of any separate license agreement you may have executed -> with Licensor regarding such Contributions. -> -> 6. Trademarks. This License does not grant permission to use the trade -> names, trademarks, service marks, or product names of the Licensor, -> except as required for reasonable and customary use in describing the -> origin of the Work and reproducing the content of the NOTICE file. -> -> 7. Disclaimer of Warranty. Unless required by applicable law or -> agreed to in writing, Licensor provides the Work (and each -> Contributor provides its Contributions) on an "AS IS" BASIS, -> WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or -> implied, including, without limitation, any warranties or conditions -> of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A -> PARTICULAR PURPOSE. You are solely responsible for determining the -> appropriateness of using or redistributing the Work and assume any -> risks associated with Your exercise of permissions under this License. -> -> 8. Limitation of Liability. In no event and under no legal theory, -> whether in tort (including negligence), contract, or otherwise, -> unless required by applicable law (such as deliberate and grossly -> negligent acts) or agreed to in writing, shall any Contributor be -> liable to You for damages, including any direct, indirect, special, -> incidental, or consequential damages of any character arising as a -> result of this License or out of the use or inability to use the -> Work (including but not limited to damages for loss of goodwill, -> work stoppage, computer failure or malfunction, or any and all -> other commercial damages or losses), even if such Contributor -> has been advised of the possibility of such damages. -> -> 9. Accepting Warranty or Additional Liability. While redistributing -> the Work or Derivative Works thereof, You may choose to offer, -> and charge a fee for, acceptance of support, warranty, indemnity, -> or other liability obligations and/or rights consistent with this -> License. However, in accepting such obligations, You may act only -> on Your own behalf and on Your sole responsibility, not on behalf -> of any other Contributor, and only if You agree to indemnify, -> defend, and hold each Contributor harmless for any liability -> incurred by, or claims asserted against, such Contributor by reason -> of your accepting any such warranty or additional liability. -> -> END OF TERMS AND CONDITIONS -> -> APPENDIX: How to apply the Apache License to your work. -> -> To apply the Apache License to your work, attach the following -> boilerplate notice, with the fields enclosed by brackets "{}" -> replaced with your own identifying information. (Don't include -> the brackets!) The text should be enclosed in the appropriate -> comment syntax for the file format. We also recommend that a -> file or class name and description of purpose be included on the -> same "printed page" as the copyright notice for easier -> identification within third-party archives. -> -> Copyright contributors -> -> Licensed under the Apache License, Version 2.0 (the "License"); -> you may not use this file except in compliance with the License. -> You may obtain a copy of the License at -> -> http://www.apache.org/licenses/LICENSE-2.0 -> -> Unless required by applicable law or agreed to in writing, software -> distributed under the License is distributed on an "AS IS" BASIS, -> WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -> See the License for the specific language governing permissions and -> limitations under the License. - ----------------------------------------- - -## espree@v11.2.0 - -> An Esprima-compatible JavaScript parser built on Acorn - -License: BSD-2-Clause -Homepage: -Repository: -Author: Nicholas C. Zakas - -> BSD 2-Clause License -> -> Copyright (c) Open JS Foundation -> All rights reserved. -> -> Redistribution and use in source and binary forms, with or without -> modification, are permitted provided that the following conditions are met: -> -> 1. Redistributions of source code must retain the above copyright notice, this -> list of conditions and the following disclaimer. -> -> 2. Redistributions in binary form must reproduce the above copyright notice, -> this list of conditions and the following disclaimer in the documentation -> and/or other materials provided with the distribution. -> -> THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" -> AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -> IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE -> DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE -> FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL -> DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR -> SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER -> CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, -> OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -> OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - ----------------------------------------- - -## extend@v3.0.2 - -> Port of jQuery.extend for node.js and the browser - -License: MIT -Repository: -Author: Stefan Thomas (http://www.justmoon.net) -Contributors: - - Jordan Harband (https://github.com/ljharb) - -> The MIT License (MIT) -> -> Copyright (c) 2014 Stefan Thomas -> -> Permission is hereby granted, free of charge, to any person obtaining -> a copy of this software and associated documentation files (the -> "Software"), to deal in the Software without restriction, including -> without limitation the rights to use, copy, modify, merge, publish, -> distribute, sublicense, and/or sell copies of the Software, and to -> permit persons to whom the Software is furnished to do so, subject to -> the following conditions: -> -> The above copyright notice and this permission notice shall be -> included in all copies or substantial portions of the Software. -> -> THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, -> EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -> MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND -> NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE -> LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION -> OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION -> WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - ----------------------------------------- - -## fast-glob@v3.3.3 - -> It's a very fast and efficient glob library for Node.js - -License: MIT -Author: Denis Malinochkin (https://mrmlnc.com) - -> The MIT License (MIT) -> -> Copyright (c) Denis Malinochkin -> -> Permission is hereby granted, free of charge, to any person obtaining a copy -> of this software and associated documentation files (the "Software"), to deal -> in the Software without restriction, including without limitation the rights -> to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -> copies of the Software, and to permit persons to whom the Software is -> furnished to do so, subject to the following conditions: -> -> The above copyright notice and this permission notice shall be included in all -> copies or substantial portions of the Software. -> -> THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -> IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -> FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -> AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -> LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -> OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -> SOFTWARE. - ----------------------------------------- - -## fast-ignore@v2.0.0 - -> A fast parser and processor for .gitignore files. - -License: MIT - -> The MIT License (MIT) -> -> Copyright (c) 2023-present Fabio Spampinato -> -> Permission is hereby granted, free of charge, to any person obtaining a -> copy of this software and associated documentation files (the "Software"), -> to deal in the Software without restriction, including without limitation -> the rights to use, copy, modify, merge, publish, distribute, sublicense, -> and/or sell copies of the Software, and to permit persons to whom the -> Software is furnished to do so, subject to the following conditions: -> -> The above copyright notice and this permission notice shall be included in -> all copies or substantial portions of the Software. -> -> THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -> IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -> FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -> AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -> LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING -> FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER -> DEALINGS IN THE SOFTWARE. - ----------------------------------------- - -## fast-json-stable-stringify@v2.1.0 - -> deterministic `JSON.stringify()` - a faster version of substack's json-stable-strigify without jsonify - -License: MIT -Homepage: -Repository: -Author: James Halliday (http://substack.net) - -> This software is released under the MIT license: -> -> Copyright (c) 2017 Evgeny Poberezkin -> Copyright (c) 2013 James Halliday -> -> Permission is hereby granted, free of charge, to any person obtaining a copy of -> this software and associated documentation files (the "Software"), to deal in -> the Software without restriction, including without limitation the rights to -> use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of -> the Software, and to permit persons to whom the Software is furnished to do so, -> subject to the following conditions: -> -> The above copyright notice and this permission notice shall be included in all -> copies or substantial portions of the Software. -> -> THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -> IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS -> FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR -> COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER -> IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -> CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - ----------------------------------------- - -## fast-string-truncated-width@v3.0.3 - -> A fast function for calculating where a string should be truncated, given an optional width limit and an ellipsis string. - -License: MIT - -> The MIT License (MIT) -> -> Copyright (c) 2024-present Fabio Spampinato -> -> Permission is hereby granted, free of charge, to any person obtaining a -> copy of this software and associated documentation files (the "Software"), -> to deal in the Software without restriction, including without limitation -> the rights to use, copy, modify, merge, publish, distribute, sublicense, -> and/or sell copies of the Software, and to permit persons to whom the -> Software is furnished to do so, subject to the following conditions: -> -> The above copyright notice and this permission notice shall be included in -> all copies or substantial portions of the Software. -> -> THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -> IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -> FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -> AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -> LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING -> FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER -> DEALINGS IN THE SOFTWARE. - ----------------------------------------- - -## fast-string-width@v3.0.2 - -> A fast function for calculating the visual width of a string once printed to the terminal. - -License: MIT - -> The MIT License (MIT) -> -> Copyright (c) 2024-present Fabio Spampinato -> -> Permission is hereby granted, free of charge, to any person obtaining a -> copy of this software and associated documentation files (the "Software"), -> to deal in the Software without restriction, including without limitation -> the rights to use, copy, modify, merge, publish, distribute, sublicense, -> and/or sell copies of the Software, and to permit persons to whom the -> Software is furnished to do so, subject to the following conditions: -> -> The above copyright notice and this permission notice shall be included in -> all copies or substantial portions of the Software. -> -> THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -> IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -> FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -> AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -> LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING -> FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER -> DEALINGS IN THE SOFTWARE. - ----------------------------------------- - -## fastq@v1.20.1 - -> Fast, in memory work queue - -License: ISC -Homepage: -Repository: -Author: Matteo Collina - -> Copyright (c) 2015-2020, Matteo Collina -> -> Permission to use, copy, modify, and/or distribute this software for any -> purpose with or without fee is hereby granted, provided that the above -> copyright notice and this permission notice appear in all copies. -> -> THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES -> WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF -> MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR -> ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES -> WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN -> ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF -> OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - ----------------------------------------- - -## file-entry-cache@v11.1.5 - -> A lightweight cache for file metadata, ideal for processes that work on a specific set of files and only need to reprocess files that have changed since the last run - -License: MIT -Repository: -Author: Jared Wray - -> MIT License & © Jared Wray -> -> Permission is hereby granted, free of charge, to any person obtaining a copy -> of this software and associated documentation files (the "Software"), to -> deal in the Software without restriction, including without limitation the -> rights to use, copy, modify, merge, publish, distribute, sublicense, and/or -> sell copies of the Software, and to permit persons to whom the Software is -> furnished to do so, subject to the following conditions: -> -> The above copyright notice and this permission notice shall be included in -> all copies or substantial portions of the Software. -> -> THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -> IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -> FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -> AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -> LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING -> FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER -> DEALINGS IN THE SOFTWARE. - ----------------------------------------- - -## fill-range@v7.1.1 - -> Fill in a range of numbers or letters, optionally passing an increment or `step` to use, or create a regex-compatible range with `options.toRegex` - -License: MIT -Homepage: -Author: Jon Schlinkert (https://github.com/jonschlinkert) -Contributors: - - Edo Rivai (edo.rivai.nl) - - Jon Schlinkert (http://twitter.com/jonschlinkert) - - Paul Miller (paulmillr.com) - - Rouven Weßling (www.rouvenwessling.de) - - null (https://github.com/wtgtybhertgeghgtwtg) - -> The MIT License (MIT) -> -> Copyright (c) 2014-present, Jon Schlinkert. -> -> Permission is hereby granted, free of charge, to any person obtaining a copy -> of this software and associated documentation files (the "Software"), to deal -> in the Software without restriction, including without limitation the rights -> to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -> copies of the Software, and to permit persons to whom the Software is -> furnished to do so, subject to the following conditions: -> -> The above copyright notice and this permission notice shall be included in -> all copies or substantial portions of the Software. -> -> THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -> IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -> FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -> AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -> LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -> OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -> THE SOFTWARE. - ----------------------------------------- - -## find-cache-directory@v6.0.0 - -> Finds the common standard cache directory - -License: MIT -Author: Sindre Sorhus (https://sindresorhus.com) - -> MIT License -> -> Copyright (c) Sindre Sorhus (https://sindresorhus.com) -> Copyright (c) James Talmage (https://github.com/jamestalmage) -> -> Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: -> -> The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. -> -> THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - ----------------------------------------- - -## find-in-directory@v5.0.2 - -> Find file or directory by names in a directory. - -License: MIT -Homepage: -Author: fisker Cheung (https://www.fiskercheung.com/) - -> MIT License -> -> Copyright (c) fisker Cheung (https://www.fiskercheung.com/) -> -> Permission is hereby granted, free of charge, to any person obtaining a copy -> of this software and associated documentation files (the "Software"), to deal -> in the Software without restriction, including without limitation the rights -> to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -> copies of the Software, and to permit persons to whom the Software is -> furnished to do so, subject to the following conditions: -> -> The above copyright notice and this permission notice shall be included in all -> copies or substantial portions of the Software. -> -> THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -> IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -> FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -> AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -> LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -> OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -> SOFTWARE. - ----------------------------------------- - -## find-up-json@v2.0.5 - -> Find, read and parse the first matching file found walking the filesystem upwards. - -License: MIT - -> The MIT License (MIT) -> -> Copyright (c) 2021-present Fabio Spampinato -> -> Permission is hereby granted, free of charge, to any person obtaining a -> copy of this software and associated documentation files (the "Software"), -> to deal in the Software without restriction, including without limitation -> the rights to use, copy, modify, merge, publish, distribute, sublicense, -> and/or sell copies of the Software, and to permit persons to whom the -> Software is furnished to do so, subject to the following conditions: -> -> The above copyright notice and this permission notice shall be included in -> all copies or substantial portions of the Software. -> -> THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -> IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -> FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -> AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -> LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING -> FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER -> DEALINGS IN THE SOFTWARE. - ----------------------------------------- - -## find-up-path@v1.0.1 - -> Find the path of the first file matching a given name, walking the filesystem upwards. - -License: MIT - -> The MIT License (MIT) -> -> Copyright (c) 2024-present Fabio Spampinato -> -> Permission is hereby granted, free of charge, to any person obtaining a -> copy of this software and associated documentation files (the "Software"), -> to deal in the Software without restriction, including without limitation -> the rights to use, copy, modify, merge, publish, distribute, sublicense, -> and/or sell copies of the Software, and to permit persons to whom the -> Software is furnished to do so, subject to the following conditions: -> -> The above copyright notice and this permission notice shall be included in -> all copies or substantial portions of the Software. -> -> THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -> IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -> FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -> AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -> LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING -> FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER -> DEALINGS IN THE SOFTWARE. - ----------------------------------------- - -## find-up-simple@v1.0.1 - -> Find a file or directory by walking up parent directories — Zero dependencies - -License: MIT -Author: Sindre Sorhus (https://sindresorhus.com) - -> MIT License -> -> Copyright (c) Sindre Sorhus (https://sindresorhus.com) -> -> Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: -> -> The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. -> -> THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - ----------------------------------------- - -## flat-cache@v6.1.23 - -> A simple key/value storage using files to persist the data - -License: MIT -Repository: -Author: Jared Wray - -> MIT License & © Jared Wray -> -> Permission is hereby granted, free of charge, to any person obtaining a copy -> of this software and associated documentation files (the "Software"), to -> deal in the Software without restriction, including without limitation the -> rights to use, copy, modify, merge, publish, distribute, sublicense, and/or -> sell copies of the Software, and to permit persons to whom the Software is -> furnished to do so, subject to the following conditions: -> -> The above copyright notice and this permission notice shall be included in -> all copies or substantial portions of the Software. -> -> THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -> IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -> FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -> AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -> LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING -> FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER -> DEALINGS IN THE SOFTWARE. - ----------------------------------------- - -## flatted@v3.4.2 - -> A super light and fast circular JSON parser. - -License: ISC -Homepage: -Repository: -Author: Andrea Giammarchi - -> ISC License -> -> Copyright (c) 2018-2020, Andrea Giammarchi, @WebReflection -> -> Permission to use, copy, modify, and/or distribute this software for any -> purpose with or without fee is hereby granted, provided that the above -> copyright notice and this permission notice appear in all copies. -> -> THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH -> REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY -> AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, -> INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM -> LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE -> OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR -> PERFORMANCE OF THIS SOFTWARE. - ----------------------------------------- - -## flatten@v1.0.3 - -> Flatten arbitrarily nested arrays into a non-nested list of non-array items. Maintained for legacy compatibility. - -License: MIT -Homepage: -Repository: -Author: Joshua Holbrook (http://jesusabdullah.net) -Contributors: - - M.K. (https://github.com/mk-pmb) - -> The MIT License (MIT) -> -> Copyright (c) 2016 Joshua Holbrook -> -> Permission is hereby granted, free of charge, to any person obtaining a copy -> of this software and associated documentation files (the "Software"), to deal -> in the Software without restriction, including without limitation the rights -> to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -> copies of the Software, and to permit persons to whom the Software is -> furnished to do so, subject to the following conditions: -> -> The above copyright notice and this permission notice shall be included in -> all copies or substantial portions of the Software. -> -> THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -> IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -> FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -> AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -> LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -> OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -> THE SOFTWARE. - ----------------------------------------- - -## flow-estree@v0.321.0 - -> Flow types for the Flow-ESTree spec produced by the Flow Rust parser, forked from hermes-estree. - -License: MIT -Homepage: -Repository: -Author: Flow Team - ----------------------------------------- - -## flow-parser@v0.321.0 - -> JavaScript parser written in OCaml. Produces ESTree AST - -License: MIT -Homepage: -Repository: -Author: Flow Team - ----------------------------------------- - -## function-once@v3.0.1 - -> Wraps a function so that it's only ever executed once. - -License: MIT - -> The MIT License (MIT) -> -> Copyright (c) 2021-present Fabio Spampinato -> -> Permission is hereby granted, free of charge, to any person obtaining a -> copy of this software and associated documentation files (the "Software"), -> to deal in the Software without restriction, including without limitation -> the rights to use, copy, modify, merge, publish, distribute, sublicense, -> and/or sell copies of the Software, and to permit persons to whom the -> Software is furnished to do so, subject to the following conditions: -> -> The above copyright notice and this permission notice shall be included in -> all copies or substantial portions of the Software. -> -> THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -> IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -> FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -> AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -> LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING -> FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER -> DEALINGS IN THE SOFTWARE. - ----------------------------------------- - -## get-current-package@v1.0.1 - -> Get the package.json of the currently executing bin. - -License: MIT - -> The MIT License (MIT) -> -> Copyright (c) 2023-present Fabio Spampinato -> -> Permission is hereby granted, free of charge, to any person obtaining a -> copy of this software and associated documentation files (the "Software"), -> to deal in the Software without restriction, including without limitation -> the rights to use, copy, modify, merge, publish, distribute, sublicense, -> and/or sell copies of the Software, and to permit persons to whom the -> Software is furnished to do so, subject to the following conditions: -> -> The above copyright notice and this permission notice shall be included in -> all copies or substantial portions of the Software. -> -> THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -> IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -> FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -> AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -> LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING -> FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER -> DEALINGS IN THE SOFTWARE. - ----------------------------------------- - -## get-east-asian-width@v1.6.0 - -> Determine the East Asian Width of a Unicode character - -License: MIT -Author: Sindre Sorhus (https://sindresorhus.com) - -> MIT License -> -> Copyright (c) Sindre Sorhus (https://sindresorhus.com) -> -> Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: -> -> The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. -> -> THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - ----------------------------------------- - -## get-stdin@v9.0.0 - -> Get stdin as a string or buffer - -License: MIT -Author: Sindre Sorhus (https://sindresorhus.com) - -> MIT License -> -> Copyright (c) Sindre Sorhus (https://sindresorhus.com) -> -> Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: -> -> The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. -> -> THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - ----------------------------------------- - -## glob-parent@v5.1.2 - -> Extract the non-magic parent path from a glob string. - -License: ISC -Author: Gulp Team (https://gulpjs.com/) -Contributors: - - Elan Shanker (https://github.com/es128) - - Blaine Bublitz - -> The ISC License -> -> Copyright (c) 2015, 2019 Elan Shanker -> -> Permission to use, copy, modify, and/or distribute this software for any -> purpose with or without fee is hereby granted, provided that the above -> copyright notice and this permission notice appear in all copies. -> -> THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES -> WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF -> MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR -> ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES -> WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN -> ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR -> IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - ----------------------------------------- - -## grammex@v3.1.12 - -> A tiny, PEG-like system for building language grammars with regexes. - -License: MIT - -> The MIT License (MIT) -> -> Copyright (c) 2023-present Fabio Spampinato -> -> Permission is hereby granted, free of charge, to any person obtaining a -> copy of this software and associated documentation files (the "Software"), -> to deal in the Software without restriction, including without limitation -> the rights to use, copy, modify, merge, publish, distribute, sublicense, -> and/or sell copies of the Software, and to permit persons to whom the -> Software is furnished to do so, subject to the following conditions: -> -> The above copyright notice and this permission notice shall be included in -> all copies or substantial portions of the Software. -> -> THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -> IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -> FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -> AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -> LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING -> FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER -> DEALINGS IN THE SOFTWARE. - ----------------------------------------- - -## graphmatch@v1.1.1 - -> A low-level utility for matching a string against a directed acyclic graph of regexes. - -License: MIT - -> The MIT License (MIT) -> -> Copyright (c) 2025-present Fabio Spampinato -> -> Permission is hereby granted, free of charge, to any person obtaining a -> copy of this software and associated documentation files (the "Software"), -> to deal in the Software without restriction, including without limitation -> the rights to use, copy, modify, merge, publish, distribute, sublicense, -> and/or sell copies of the Software, and to permit persons to whom the -> Software is furnished to do so, subject to the following conditions: -> -> The above copyright notice and this permission notice shall be included in -> all copies or substantial portions of the Software. -> -> THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -> IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -> FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -> AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -> LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING -> FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER -> DEALINGS IN THE SOFTWARE. - ----------------------------------------- - -## graphql@v17.0.1 - -> A Query Language and Runtime which can target any service. - -License: MIT -Homepage: -Repository: - -> MIT License -> -> Copyright (c) GraphQL Contributors -> -> Permission is hereby granted, free of charge, to any person obtaining a copy -> of this software and associated documentation files (the "Software"), to deal -> in the Software without restriction, including without limitation the rights -> to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -> copies of the Software, and to permit persons to whom the Software is -> furnished to do so, subject to the following conditions: -> -> The above copyright notice and this permission notice shall be included in all -> copies or substantial portions of the Software. -> -> THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -> IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -> FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -> AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -> LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -> OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -> SOFTWARE. - ----------------------------------------- - -## hashery@v1.5.1 - -> Browser Compatible Object Hashing - -License: MIT -Author: Jared Wray - -> MIT License -> -> Copyright (c) 2025 Jared Wray -> -> Permission is hereby granted, free of charge, to any person obtaining a copy -> of this software and associated documentation files (the "Software"), to deal -> in the Software without restriction, including without limitation the rights -> to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -> copies of the Software, and to permit persons to whom the Software is -> furnished to do so, subject to the following conditions: -> -> The above copyright notice and this permission notice shall be included in all -> copies or substantial portions of the Software. -> -> THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -> IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -> FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -> AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -> LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -> OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -> SOFTWARE. - ----------------------------------------- - -## hookified@v1.15.1 - -> Event Emitting and Middleware Hooks - -License: MIT -Homepage: -Repository: -Author: Jared Wray - -> MIT License & © Jared Wray -> -> Permission is hereby granted, free of charge, to any person obtaining a copy -> of this software and associated documentation files (the "Software"), to deal -> in the Software without restriction, including without limitation the rights -> to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -> copies of the Software, and to permit persons to whom the Software is -> furnished to do so, subject to the following conditions: -> -> The above copyright notice and this permission notice shall be included in all -> copies or substantial portions of the Software. -> -> THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -> IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -> FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -> AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -> LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -> OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -> SOFTWARE. - ----------------------------------------- - -## ieee754@v1.2.1 - -> Read/write IEEE754 floating point numbers from/to a Buffer or array-like object - -License: BSD-3-Clause -Repository: -Author: Feross Aboukhadijeh (https://feross.org) -Contributors: - - Romain Beauxis - -> Copyright 2008 Fair Oaks Labs, Inc. -> -> Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: -> -> 1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. -> -> 2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. -> -> 3. Neither the name of the copyright holder nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission. -> -> THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - ----------------------------------------- - -## ignore@v7.0.5 - -> Ignore is a manager and filter for .gitignore rules, the one used by eslint, gitbook and many others. - -License: MIT -Repository: -Author: kael - -> Copyright (c) 2013 Kael Zhang , contributors -> http://kael.me/ -> -> Permission is hereby granted, free of charge, to any person obtaining -> a copy of this software and associated documentation files (the -> "Software"), to deal in the Software without restriction, including -> without limitation the rights to use, copy, modify, merge, publish, -> distribute, sublicense, and/or sell copies of the Software, and to -> permit persons to whom the Software is furnished to do so, subject to -> the following conditions: -> -> The above copyright notice and this permission notice shall be -> included in all copies or substantial portions of the Software. -> -> THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, -> EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -> MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND -> NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE -> LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION -> OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION -> WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - ----------------------------------------- - -## import-meta-resolve@v4.2.0 - -> Resolve things like Node.js — ponyfill for `import.meta.resolve` - -License: MIT -Author: Titus Wormer (https://wooorm.com) -Contributors: - - Titus Wormer (https://wooorm.com) - -> (The MIT License) -> -> Copyright (c) Titus Wormer -> -> Permission is hereby granted, free of charge, to any person obtaining -> a copy of this software and associated documentation files (the -> 'Software'), to deal in the Software without restriction, including -> without limitation the rights to use, copy, modify, merge, publish, -> distribute, sublicense, and/or sell copies of the Software, and to -> permit persons to whom the Software is furnished to do so, subject to -> the following conditions: -> -> The above copyright notice and this permission notice shall be -> included in all copies or substantial portions of the Software. -> -> THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND, -> EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -> MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. -> IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY -> CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, -> TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE -> SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. -> -> --- -> -> This is a derivative work based on: -> . -> Which is licensed: -> -> """ -> Copyright Node.js contributors. All rights reserved. -> -> Permission is hereby granted, free of charge, to any person obtaining a copy -> of this software and associated documentation files (the "Software"), to -> deal in the Software without restriction, including without limitation the -> rights to use, copy, modify, merge, publish, distribute, sublicense, and/or -> sell copies of the Software, and to permit persons to whom the Software is -> furnished to do so, subject to the following conditions: -> -> The above copyright notice and this permission notice shall be included in -> all copies or substantial portions of the Software. -> -> THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -> IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -> FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -> AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -> LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING -> FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS -> IN THE SOFTWARE. -> """ -> -> This license applies to parts of Node.js originating from the -> https://github.com/joyent/node repository: -> -> """ -> Copyright Joyent, Inc. and other Node contributors. All rights reserved. -> Permission is hereby granted, free of charge, to any person obtaining a copy -> of this software and associated documentation files (the "Software"), to -> deal in the Software without restriction, including without limitation the -> rights to use, copy, modify, merge, publish, distribute, sublicense, and/or -> sell copies of the Software, and to permit persons to whom the Software is -> furnished to do so, subject to the following conditions: -> -> The above copyright notice and this permission notice shall be included in -> all copies or substantial portions of the Software. -> -> THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -> IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -> FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -> AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -> LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING -> FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS -> IN THE SOFTWARE. -> """ - ----------------------------------------- - -## imurmurhash-esm@v0.0.2 - -> An incremental implementation of MurmurHash3 for JavaScript. - -License: MIT -Homepage: -Author: fisker Cheung (https://www.fiskercheung.com/) - -> MIT License -> -> Copyright (c) fisker Cheung (https://www.fiskercheung.com/) -> -> Permission is hereby granted, free of charge, to any person obtaining a copy -> of this software and associated documentation files (the "Software"), to deal -> in the Software without restriction, including without limitation the rights -> to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -> copies of the Software, and to permit persons to whom the Software is -> furnished to do so, subject to the following conditions: -> -> The above copyright notice and this permission notice shall be included in all -> copies or substantial portions of the Software. -> -> THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -> IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -> FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -> AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -> LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -> OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -> SOFTWARE. - ----------------------------------------- - -## index-to-position@v1.2.0 - -> Convert a string index to its line and column position - -License: MIT -Author: Sindre Sorhus (https://sindresorhus.com) - -> MIT License -> -> Copyright (c) Sindre Sorhus (https://sindresorhus.com) -> -> Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: -> -> The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. -> -> THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - ----------------------------------------- - -## indexes-of@v1.0.1 - -> line String/Array#indexOf but return all the indexes in an array - -License: MIT -Homepage: -Repository: -Author: Dominic Tarr (dominictarr.com) - -> Copyright (c) 2013 Dominic Tarr -> -> Permission is hereby granted, free of charge, -> to any person obtaining a copy of this software and -> associated documentation files (the "Software"), to -> deal in the Software without restriction, including -> without limitation the rights to use, copy, modify, -> merge, publish, distribute, sublicense, and/or sell -> copies of the Software, and to permit persons to whom -> the Software is furnished to do so, -> subject to the following conditions: -> -> The above copyright notice and this permission notice -> shall be included in all copies or substantial portions of the Software. -> -> THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, -> EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES -> OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. -> IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR -> ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, -> TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE -> SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - ----------------------------------------- - -## inherits@v2.0.4 - -> Browser-friendly inheritance fully compatible with standard node.js inherits() - -License: ISC - -> The ISC License -> -> Copyright (c) Isaac Z. Schlueter -> -> Permission to use, copy, modify, and/or distribute this software for any -> purpose with or without fee is hereby granted, provided that the above -> copyright notice and this permission notice appear in all copies. -> -> THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH -> REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND -> FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, -> INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM -> LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR -> OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR -> PERFORMANCE OF THIS SOFTWARE. - ----------------------------------------- - -## ini-simple-parser@v1.0.1 - -> A simple, fast and configurable INI parser. - -License: MIT - -> The MIT License (MIT) -> -> Copyright (c) 2023-present Fabio Spampinato -> -> Permission is hereby granted, free of charge, to any person obtaining a -> copy of this software and associated documentation files (the "Software"), -> to deal in the Software without restriction, including without limitation -> the rights to use, copy, modify, merge, publish, distribute, sublicense, -> and/or sell copies of the Software, and to permit persons to whom the -> Software is furnished to do so, subject to the following conditions: -> -> The above copyright notice and this permission notice shall be included in -> all copies or substantial portions of the Software. -> -> THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -> IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -> FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -> AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -> LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING -> FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER -> DEALINGS IN THE SOFTWARE. - ----------------------------------------- - -## ionstore@v1.0.1 - -> A very simple isomorphic key-value store with a Map-like API for persisting session data. - -License: MIT - -> The MIT License (MIT) -> -> Copyright (c) 2023-present Fabio Spampinato -> -> Permission is hereby granted, free of charge, to any person obtaining a -> copy of this software and associated documentation files (the "Software"), -> to deal in the Software without restriction, including without limitation -> the rights to use, copy, modify, merge, publish, distribute, sublicense, -> and/or sell copies of the Software, and to permit persons to whom the -> Software is furnished to do so, subject to the following conditions: -> -> The above copyright notice and this permission notice shall be included in -> all copies or substantial portions of the Software. -> -> THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -> IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -> FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -> AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -> LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING -> FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER -> DEALINGS IN THE SOFTWARE. - ----------------------------------------- - -## is-alphabetical@v1.0.4 - -> Check if a character is alphabetical - -License: MIT -Author: Titus Wormer (https://wooorm.com) -Contributors: - - Titus Wormer (https://wooorm.com) - -> (The MIT License) -> -> Copyright (c) 2016 Titus Wormer -> -> Permission is hereby granted, free of charge, to any person obtaining -> a copy of this software and associated documentation files (the -> 'Software'), to deal in the Software without restriction, including -> without limitation the rights to use, copy, modify, merge, publish, -> distribute, sublicense, and/or sell copies of the Software, and to -> permit persons to whom the Software is furnished to do so, subject to -> the following conditions: -> -> The above copyright notice and this permission notice shall be -> included in all copies or substantial portions of the Software. -> -> THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND, -> EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -> MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. -> IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY -> CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, -> TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE -> SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - ----------------------------------------- - -## is-alphanumerical@v1.0.4 - -> Check if a character is alphanumerical - -License: MIT -Author: Titus Wormer (https://wooorm.com) -Contributors: - - Titus Wormer (https://wooorm.com) - -> (The MIT License) -> -> Copyright (c) 2016 Titus Wormer -> -> Permission is hereby granted, free of charge, to any person obtaining -> a copy of this software and associated documentation files (the -> 'Software'), to deal in the Software without restriction, including -> without limitation the rights to use, copy, modify, merge, publish, -> distribute, sublicense, and/or sell copies of the Software, and to -> permit persons to whom the Software is furnished to do so, subject to -> the following conditions: -> -> The above copyright notice and this permission notice shall be -> included in all copies or substantial portions of the Software. -> -> THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND, -> EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -> MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. -> IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY -> CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, -> TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE -> SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - ----------------------------------------- - -## is-binary-path@v3.0.0 - -> Check if a file path is a binary file - -License: MIT -Author: Sindre Sorhus (https://sindresorhus.com) - -> MIT License -> -> Copyright (c) Sindre Sorhus (https://sindresorhus.com) -> Copyright (c) Paul Miller (https://paulmillr.com) -> -> Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: -> -> The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. -> -> THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - ----------------------------------------- - -## is-buffer@v2.0.5 - -> Determine if an object is a Buffer - -License: MIT -Repository: -Author: Feross Aboukhadijeh (https://feross.org) - -> The MIT License (MIT) -> -> Copyright (c) Feross Aboukhadijeh -> -> Permission is hereby granted, free of charge, to any person obtaining a copy -> of this software and associated documentation files (the "Software"), to deal -> in the Software without restriction, including without limitation the rights -> to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -> copies of the Software, and to permit persons to whom the Software is -> furnished to do so, subject to the following conditions: -> -> The above copyright notice and this permission notice shall be included in -> all copies or substantial portions of the Software. -> -> THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -> IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -> FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -> AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -> LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -> OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -> THE SOFTWARE. - ----------------------------------------- - -## is-decimal@v1.0.4 - -> Check if a character is decimal - -License: MIT -Author: Titus Wormer (https://wooorm.com) -Contributors: - - Titus Wormer (https://wooorm.com) - -> (The MIT License) -> -> Copyright (c) 2016 Titus Wormer -> -> Permission is hereby granted, free of charge, to any person obtaining -> a copy of this software and associated documentation files (the -> 'Software'), to deal in the Software without restriction, including -> without limitation the rights to use, copy, modify, merge, publish, -> distribute, sublicense, and/or sell copies of the Software, and to -> permit persons to whom the Software is furnished to do so, subject to -> the following conditions: -> -> The above copyright notice and this permission notice shall be -> included in all copies or substantial portions of the Software. -> -> THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND, -> EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -> MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. -> IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY -> CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, -> TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE -> SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - ----------------------------------------- - -## is-es5-identifier-name@v1.0.1 - -> Check if provided string is an `IdentifierName` as specified in ECMA262 edition 5.1 section 7.6. - -License: MIT -Author: fisker Cheung - -> MIT License -> -> Copyright (c) fisker Cheung (https://www.fiskercheung.com/) -> -> Permission is hereby granted, free of charge, to any person obtaining a copy -> of this software and associated documentation files (the "Software"), to deal -> in the Software without restriction, including without limitation the rights -> to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -> copies of the Software, and to permit persons to whom the Software is -> furnished to do so, subject to the following conditions: -> -> The above copyright notice and this permission notice shall be included in all -> copies or substantial portions of the Software. -> -> THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -> IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -> FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -> AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -> LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -> OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -> SOFTWARE. - ----------------------------------------- - -## is-extglob@v2.1.1 - -> Returns true if a string has an extglob. - -License: MIT -Homepage: -Author: Jon Schlinkert (https://github.com/jonschlinkert) - -> The MIT License (MIT) -> -> Copyright (c) 2014-2016, Jon Schlinkert -> -> Permission is hereby granted, free of charge, to any person obtaining a copy -> of this software and associated documentation files (the "Software"), to deal -> in the Software without restriction, including without limitation the rights -> to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -> copies of the Software, and to permit persons to whom the Software is -> furnished to do so, subject to the following conditions: -> -> The above copyright notice and this permission notice shall be included in -> all copies or substantial portions of the Software. -> -> THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -> IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -> FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -> AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -> LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -> OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -> THE SOFTWARE. - ----------------------------------------- - -## is-glob@v4.0.3 - -> Returns `true` if the given string looks like a glob pattern or an extglob pattern. This makes it easy to create code that only uses external modules like node-glob when necessary, resulting in much faster code execution and initialization time, and a better user experience. - -License: MIT -Homepage: -Author: Jon Schlinkert (https://github.com/jonschlinkert) -Contributors: - - Brian Woodward (https://twitter.com/doowb) - - Daniel Perez (https://tuvistavie.com) - - Jon Schlinkert (http://twitter.com/jonschlinkert) - -> The MIT License (MIT) -> -> Copyright (c) 2014-2017, Jon Schlinkert. -> -> Permission is hereby granted, free of charge, to any person obtaining a copy -> of this software and associated documentation files (the "Software"), to deal -> in the Software without restriction, including without limitation the rights -> to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -> copies of the Software, and to permit persons to whom the Software is -> furnished to do so, subject to the following conditions: -> -> The above copyright notice and this permission notice shall be included in -> all copies or substantial portions of the Software. -> -> THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -> IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -> FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -> AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -> LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -> OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -> THE SOFTWARE. - ----------------------------------------- - -## is-hexadecimal@v1.0.4 - -> Check if a character is hexadecimal - -License: MIT -Author: Titus Wormer (https://wooorm.com) -Contributors: - - Titus Wormer (https://wooorm.com) - -> (The MIT License) -> -> Copyright (c) 2016 Titus Wormer -> -> Permission is hereby granted, free of charge, to any person obtaining -> a copy of this software and associated documentation files (the -> 'Software'), to deal in the Software without restriction, including -> without limitation the rights to use, copy, modify, merge, publish, -> distribute, sublicense, and/or sell copies of the Software, and to -> permit persons to whom the Software is furnished to do so, subject to -> the following conditions: -> -> The above copyright notice and this permission notice shall be -> included in all copies or substantial portions of the Software. -> -> THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND, -> EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -> MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. -> IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY -> CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, -> TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE -> SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - ----------------------------------------- - -## is-number@v7.0.0 - -> Returns true if a number or string value is a finite number. Useful for regex matches, parsing, user input, etc. - -License: MIT -Homepage: -Author: Jon Schlinkert (https://github.com/jonschlinkert) -Contributors: - - Jon Schlinkert (http://twitter.com/jonschlinkert) - - Olsten Larck (https://i.am.charlike.online) - - Rouven Weßling (www.rouvenwessling.de) - -> The MIT License (MIT) -> -> Copyright (c) 2014-present, Jon Schlinkert. -> -> Permission is hereby granted, free of charge, to any person obtaining a copy -> of this software and associated documentation files (the "Software"), to deal -> in the Software without restriction, including without limitation the rights -> to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -> copies of the Software, and to permit persons to whom the Software is -> furnished to do so, subject to the following conditions: -> -> The above copyright notice and this permission notice shall be included in -> all copies or substantial portions of the Software. -> -> THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -> IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -> FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -> AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -> LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -> OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -> THE SOFTWARE. - ----------------------------------------- - -## is-plain-obj@v2.1.0 - -> Check if a value is a plain object - -License: MIT -Author: Sindre Sorhus (sindresorhus.com) - -> MIT License -> -> Copyright (c) Sindre Sorhus (sindresorhus.com) -> -> Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: -> -> The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. -> -> THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - ----------------------------------------- - -## is-whitespace-character@v1.0.4 - -> Check if a character is a whitespace character - -License: MIT -Author: Titus Wormer (https://wooorm.com) -Contributors: - - Titus Wormer (https://wooorm.com) - -> (The MIT License) -> -> Copyright (c) 2016 Titus Wormer -> -> Permission is hereby granted, free of charge, to any person obtaining -> a copy of this software and associated documentation files (the -> 'Software'), to deal in the Software without restriction, including -> without limitation the rights to use, copy, modify, merge, publish, -> distribute, sublicense, and/or sell copies of the Software, and to -> permit persons to whom the Software is furnished to do so, subject to -> the following conditions: -> -> The above copyright notice and this permission notice shall be -> included in all copies or substantial portions of the Software. -> -> THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND, -> EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -> MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. -> IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY -> CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, -> TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE -> SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - ----------------------------------------- - -## is-word-character@v1.0.4 - -> Check if a character is a word character - -License: MIT -Author: Titus Wormer (https://wooorm.com) -Contributors: - - Titus Wormer (https://wooorm.com) - -> (The MIT License) -> -> Copyright (c) 2016 Titus Wormer -> -> Permission is hereby granted, free of charge, to any person obtaining -> a copy of this software and associated documentation files (the -> 'Software'), to deal in the Software without restriction, including -> without limitation the rights to use, copy, modify, merge, publish, -> distribute, sublicense, and/or sell copies of the Software, and to -> permit persons to whom the Software is furnished to do so, subject to -> the following conditions: -> -> The above copyright notice and this permission notice shall be -> included in all copies or substantial portions of the Software. -> -> THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND, -> EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -> MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. -> IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY -> CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, -> TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE -> SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - ----------------------------------------- - -## isoconcurrency@v1.0.0 - -> An isomorphic way to get the number of logical cores available. - -License: MIT - -> The MIT License (MIT) -> -> Copyright (c) 2025-present Fabio Spampinato -> -> Permission is hereby granted, free of charge, to any person obtaining a -> copy of this software and associated documentation files (the "Software"), -> to deal in the Software without restriction, including without limitation -> the rights to use, copy, modify, merge, publish, distribute, sublicense, -> and/or sell copies of the Software, and to permit persons to whom the -> Software is furnished to do so, subject to the following conditions: -> -> The above copyright notice and this permission notice shall be included in -> all copies or substantial portions of the Software. -> -> THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -> IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -> FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -> AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -> LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING -> FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER -> DEALINGS IN THE SOFTWARE. - ----------------------------------------- - -## isotimer@v1.0.0 - -> An isomorphic setImmediate/setInterval/setTimeout implementation. - -License: MIT - -> The MIT License (MIT) -> -> Copyright (c) 2025-present Fabio Spampinato -> -> Permission is hereby granted, free of charge, to any person obtaining a -> copy of this software and associated documentation files (the "Software"), -> to deal in the Software without restriction, including without limitation -> the rights to use, copy, modify, merge, publish, distribute, sublicense, -> and/or sell copies of the Software, and to permit persons to whom the -> Software is furnished to do so, subject to the following conditions: -> -> The above copyright notice and this permission notice shall be included in -> all copies or substantial portions of the Software. -> -> THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -> IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -> FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -> AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -> LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING -> FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER -> DEALINGS IN THE SOFTWARE. - ----------------------------------------- - -## iterate-directory-up@v1.5.2 - -> Iterate directory up. - -License: MIT -Homepage: -Author: fisker Cheung (https://www.fiskercheung.com/) - -> MIT License -> -> Copyright (c) fisker Cheung (https://www.fiskercheung.com/) -> -> Permission is hereby granted, free of charge, to any person obtaining a copy -> of this software and associated documentation files (the "Software"), to deal -> in the Software without restriction, including without limitation the rights -> to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -> copies of the Software, and to permit persons to whom the Software is -> furnished to do so, subject to the following conditions: -> -> The above copyright notice and this permission notice shall be included in all -> copies or substantial portions of the Software. -> -> THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -> IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -> FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -> AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -> LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -> OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -> SOFTWARE. - ----------------------------------------- - -## jest-docblock@v30.4.0 - -License: MIT -Repository: - -> MIT License -> -> Copyright (c) Meta Platforms, Inc. and affiliates. -> Copyright Contributors to the Jest project. -> -> Permission is hereby granted, free of charge, to any person obtaining a copy -> of this software and associated documentation files (the "Software"), to deal -> in the Software without restriction, including without limitation the rights -> to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -> copies of the Software, and to permit persons to whom the Software is -> furnished to do so, subject to the following conditions: -> -> The above copyright notice and this permission notice shall be included in all -> copies or substantial portions of the Software. -> -> THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -> IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -> FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -> AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -> LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -> OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -> SOFTWARE. - ----------------------------------------- - -## js-tokens@v10.0.0 - -> Tiny JavaScript tokenizer. - -License: MIT -Author: Simon Lydell - -> The MIT License (MIT) -> -> Copyright (c) 2014, 2015, 2016, 2017, 2018, 2019, 2020, 2021, 2022, 2023, 2024, 2025 Simon Lydell -> -> Permission is hereby granted, free of charge, to any person obtaining a copy -> of this software and associated documentation files (the "Software"), to deal -> in the Software without restriction, including without limitation the rights -> to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -> copies of the Software, and to permit persons to whom the Software is -> furnished to do so, subject to the following conditions: -> -> The above copyright notice and this permission notice shall be included in -> all copies or substantial portions of the Software. -> -> THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -> IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -> FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -> AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -> LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -> OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -> THE SOFTWARE. - ----------------------------------------- - -## js-yaml@v5.1.0 - -> YAML 1.2 parser and serializer - -License: MIT -Author: Vladimir Zapparov -Contributors: - - Aleksey V Zapparov (http://www.ixti.net/) - - Vitaly Puzrin (https://github.com/puzrin) - - Martin Grenfell (http://got-ravings.blogspot.com) - -> (The MIT License) -> -> Copyright (C) 2011-2015 by Vitaly Puzrin -> -> Permission is hereby granted, free of charge, to any person obtaining a copy -> of this software and associated documentation files (the "Software"), to deal -> in the Software without restriction, including without limitation the rights -> to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -> copies of the Software, and to permit persons to whom the Software is -> furnished to do so, subject to the following conditions: -> -> The above copyright notice and this permission notice shall be included in -> all copies or substantial portions of the Software. -> -> THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -> IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -> FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -> AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -> LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -> OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -> THE SOFTWARE. - ----------------------------------------- - -## json-sorted-stringify@v1.0.2 - -> Alternative JSON.stringify function with sorted keys, so the output is stable. - -License: MIT - -> The MIT License (MIT) -> -> Copyright (c) 2023-present Fabio Spampinato -> -> Permission is hereby granted, free of charge, to any person obtaining a -> copy of this software and associated documentation files (the "Software"), -> to deal in the Software without restriction, including without limitation -> the rights to use, copy, modify, merge, publish, distribute, sublicense, -> and/or sell copies of the Software, and to permit persons to whom the -> Software is furnished to do so, subject to the following conditions: -> -> The above copyright notice and this permission notice shall be included in -> all copies or substantial portions of the Software. -> -> THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -> IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -> FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -> AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -> LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING -> FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER -> DEALINGS IN THE SOFTWARE. - ----------------------------------------- - -## json5@v2.2.3 - -> JSON for Humans - -License: MIT -Homepage: -Repository: -Author: Aseem Kishore -Contributors: - - Max Nanasy - - Andrew Eisenberg - - Jordan Tucker - -> MIT License -> -> Copyright (c) 2012-2018 Aseem Kishore, and [others]. -> -> Permission is hereby granted, free of charge, to any person obtaining a copy -> of this software and associated documentation files (the "Software"), to deal -> in the Software without restriction, including without limitation the rights -> to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -> copies of the Software, and to permit persons to whom the Software is -> furnished to do so, subject to the following conditions: -> -> The above copyright notice and this permission notice shall be included in all -> copies or substantial portions of the Software. -> -> THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -> IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -> FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -> AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -> LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -> OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -> SOFTWARE. -> -> [others]: https://github.com/json5/json5/contributors - ----------------------------------------- - -## kasi@v2.0.1 - -> A collection of functions for working with different casings. - -License: MIT - -> The MIT License (MIT) -> -> Copyright (c) 2023-present Fabio Spampinato -> -> Permission is hereby granted, free of charge, to any person obtaining a -> copy of this software and associated documentation files (the "Software"), -> to deal in the Software without restriction, including without limitation -> the rights to use, copy, modify, merge, publish, distribute, sublicense, -> and/or sell copies of the Software, and to permit persons to whom the -> Software is furnished to do so, subject to the following conditions: -> -> The above copyright notice and this permission notice shall be included in -> all copies or substantial portions of the Software. -> -> THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -> IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -> FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -> AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -> LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING -> FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER -> DEALINGS IN THE SOFTWARE. - ----------------------------------------- - -## katex@v0.16.47 - -> Fast math typesetting for the web. - -License: MIT -Homepage: -Repository: - -> The MIT License (MIT) -> -> Copyright (c) 2013-2020 Khan Academy and other contributors -> -> Permission is hereby granted, free of charge, to any person obtaining a copy -> of this software and associated documentation files (the "Software"), to deal -> in the Software without restriction, including without limitation the rights -> to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -> copies of the Software, and to permit persons to whom the Software is -> furnished to do so, subject to the following conditions: -> -> The above copyright notice and this permission notice shall be included in all -> copies or substantial portions of the Software. -> -> THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -> IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -> FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -> AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -> LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -> OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -> SOFTWARE. - ----------------------------------------- - -## keyv@v5.6.0 - -> Simple key-value storage with support for multiple backends - -License: MIT -Homepage: -Repository: -Author: Jared Wray (http://jaredwray.com) - -> MIT License -> -> Copyright (c) 2017-2021 Luke Childs -> Copyright (c) 2021-2022 Jared Wray -> -> Permission is hereby granted, free of charge, to any person obtaining a copy -> of this software and associated documentation files (the "Software"), to deal -> in the Software without restriction, including without limitation the rights -> to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -> copies of the Software, and to permit persons to whom the Software is -> furnished to do so, subject to the following conditions: -> -> The above copyright notice and this permission notice shall be included in all -> copies or substantial portions of the Software. -> -> THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -> IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -> FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -> AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -> LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -> OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -> SOFTWARE. - ----------------------------------------- - -## leven@v4.1.0 - -> Measure the difference between two strings using the Levenshtein distance algorithm - -License: MIT -Author: Sindre Sorhus (https://sindresorhus.com) - -> MIT License -> -> Copyright (c) Sindre Sorhus (https://sindresorhus.com) -> -> Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: -> -> The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. -> -> THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - ----------------------------------------- - -## lomemo@v1.0.1 - -> Lodash's memoize function, but in a much smaller package than lodash.memoize's. - -License: MIT - -> The MIT License -> -> Copyright JS Foundation and other contributors -> -> Based on Underscore.js, copyright Jeremy Ashkenas, -> DocumentCloud and Investigative Reporters & Editors -> -> This software consists of voluntary contributions made by many -> individuals. For exact contribution history, see the revision history -> available at https://github.com/lodash/lodash -> -> The following license applies to all parts of this software except as -> documented below: -> -> ==== -> -> Permission is hereby granted, free of charge, to any person obtaining -> a copy of this software and associated documentation files (the -> "Software"), to deal in the Software without restriction, including -> without limitation the rights to use, copy, modify, merge, publish, -> distribute, sublicense, and/or sell copies of the Software, and to -> permit persons to whom the Software is furnished to do so, subject to -> the following conditions: -> -> The above copyright notice and this permission notice shall be -> included in all copies or substantial portions of the Software. -> -> THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, -> EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -> MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND -> NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE -> LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION -> OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION -> WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. -> -> ==== -> -> Copyright and related rights for sample code are waived via CC0. Sample -> code is defined as all source code displayed within the prose of the -> documentation. -> -> CC0: http://creativecommons.org/publicdomain/zero/1.0/ -> -> ==== -> -> Files located in the node_modules and vendor directories are externally -> maintained libraries used by this software which have their own -> licenses; we recommend you read them, as their terms may differ from the -> terms above. - ----------------------------------------- - -## longest-streak@v3.1.0 - -> Count the longest repeating streak of a substring - -License: MIT -Author: Titus Wormer (https://wooorm.com) -Contributors: - - Titus Wormer (https://wooorm.com) - -> (The MIT License) -> -> Copyright (c) 2015 Titus Wormer -> -> Permission is hereby granted, free of charge, to any person obtaining -> a copy of this software and associated documentation files (the -> 'Software'), to deal in the Software without restriction, including -> without limitation the rights to use, copy, modify, merge, publish, -> distribute, sublicense, and/or sell copies of the Software, and to -> permit persons to whom the Software is furnished to do so, subject to -> the following conditions: -> -> The above copyright notice and this permission notice shall be -> included in all copies or substantial portions of the Software. -> -> THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND, -> EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -> MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. -> IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY -> CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, -> TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE -> SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - ----------------------------------------- - -## markdown-escapes@v1.0.4 - -> List of escapable characters in markdown - -License: MIT -Author: Titus Wormer (https://wooorm.com) -Contributors: - - Titus Wormer (https://wooorm.com) - -> (The MIT License) -> -> Copyright (c) 2016 Titus Wormer -> -> Permission is hereby granted, free of charge, to any person obtaining -> a copy of this software and associated documentation files (the -> 'Software'), to deal in the Software without restriction, including -> without limitation the rights to use, copy, modify, merge, publish, -> distribute, sublicense, and/or sell copies of the Software, and to -> permit persons to whom the Software is furnished to do so, subject to -> the following conditions: -> -> The above copyright notice and this permission notice shall be -> included in all copies or substantial portions of the Software. -> -> THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND, -> EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -> MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. -> IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY -> CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, -> TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE -> SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - ----------------------------------------- - -## markdown-table@v3.0.4 - -> Generate a markdown (GFM) table - -License: MIT -Author: Titus Wormer (https://wooorm.com) -Contributors: - - Titus Wormer (https://wooorm.com) - -> (The MIT License) -> -> Copyright (c) Titus Wormer -> -> Permission is hereby granted, free of charge, to any person obtaining -> a copy of this software and associated documentation files (the -> 'Software'), to deal in the Software without restriction, including -> without limitation the rights to use, copy, modify, merge, publish, -> distribute, sublicense, and/or sell copies of the Software, and to -> permit persons to whom the Software is furnished to do so, subject to -> the following conditions: -> -> The above copyright notice and this permission notice shall be -> included in all copies or substantial portions of the Software. -> -> THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND, -> EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -> MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. -> IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY -> CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, -> TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE -> SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - ----------------------------------------- - -## mdast-util-find-and-replace@v3.0.2 - -> mdast utility to find and replace text in a tree - -License: MIT -Author: Titus Wormer (https://wooorm.com) -Contributors: - - Titus Wormer (https://wooorm.com) - -> (The MIT License) -> -> Copyright (c) Titus Wormer -> -> Permission is hereby granted, free of charge, to any person obtaining -> a copy of this software and associated documentation files (the -> 'Software'), to deal in the Software without restriction, including -> without limitation the rights to use, copy, modify, merge, publish, -> distribute, sublicense, and/or sell copies of the Software, and to -> permit persons to whom the Software is furnished to do so, subject to -> the following conditions: -> -> The above copyright notice and this permission notice shall be -> included in all copies or substantial portions of the Software. -> -> THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND, -> EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -> MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. -> IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY -> CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, -> TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE -> SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - ----------------------------------------- - -## mdast-util-from-markdown@v2.0.3 - -> mdast utility to parse markdown - -License: MIT -Author: Titus Wormer (https://wooorm.com) -Contributors: - - Titus Wormer (https://wooorm.com) - -> (The MIT License) -> -> Copyright (c) Titus Wormer -> -> Permission is hereby granted, free of charge, to any person obtaining -> a copy of this software and associated documentation files (the -> 'Software'), to deal in the Software without restriction, including -> without limitation the rights to use, copy, modify, merge, publish, -> distribute, sublicense, and/or sell copies of the Software, and to -> permit persons to whom the Software is furnished to do so, subject to -> the following conditions: -> -> The above copyright notice and this permission notice shall be -> included in all copies or substantial portions of the Software. -> -> THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND, -> EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -> MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. -> IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY -> CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, -> TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE -> SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - ----------------------------------------- - -## mdast-util-gfm@v3.1.0 - -> mdast extension to parse and serialize GFM (GitHub Flavored Markdown) - -License: MIT -Author: Titus Wormer (https://wooorm.com) -Contributors: - - Titus Wormer (https://wooorm.com) - -> (The MIT License) -> -> Copyright (c) Titus Wormer -> -> Permission is hereby granted, free of charge, to any person obtaining -> a copy of this software and associated documentation files (the -> 'Software'), to deal in the Software without restriction, including -> without limitation the rights to use, copy, modify, merge, publish, -> distribute, sublicense, and/or sell copies of the Software, and to -> permit persons to whom the Software is furnished to do so, subject to -> the following conditions: -> -> The above copyright notice and this permission notice shall be -> included in all copies or substantial portions of the Software. -> -> THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND, -> EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -> MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. -> IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY -> CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, -> TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE -> SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - ----------------------------------------- - -## mdast-util-gfm-autolink-literal@v2.0.1 - -> mdast extension to parse and serialize GFM autolink literals - -License: MIT -Author: Titus Wormer (https://wooorm.com) -Contributors: - - Titus Wormer (https://wooorm.com) - -> (The MIT License) -> -> Copyright (c) 2020 Titus Wormer -> -> Permission is hereby granted, free of charge, to any person obtaining -> a copy of this software and associated documentation files (the -> 'Software'), to deal in the Software without restriction, including -> without limitation the rights to use, copy, modify, merge, publish, -> distribute, sublicense, and/or sell copies of the Software, and to -> permit persons to whom the Software is furnished to do so, subject to -> the following conditions: -> -> The above copyright notice and this permission notice shall be -> included in all copies or substantial portions of the Software. -> -> THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND, -> EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -> MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. -> IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY -> CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, -> TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE -> SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - ----------------------------------------- - -## mdast-util-gfm-footnote@v2.1.0 - -> mdast extension to parse and serialize GFM footnotes - -License: MIT -Author: Titus Wormer (https://wooorm.com) -Contributors: - - Titus Wormer (https://wooorm.com) - -> (The MIT License) -> -> Copyright (c) Titus Wormer -> -> Permission is hereby granted, free of charge, to any person obtaining -> a copy of this software and associated documentation files (the -> 'Software'), to deal in the Software without restriction, including -> without limitation the rights to use, copy, modify, merge, publish, -> distribute, sublicense, and/or sell copies of the Software, and to -> permit persons to whom the Software is furnished to do so, subject to -> the following conditions: -> -> The above copyright notice and this permission notice shall be -> included in all copies or substantial portions of the Software. -> -> THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND, -> EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -> MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. -> IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY -> CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, -> TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE -> SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - ----------------------------------------- - -## mdast-util-gfm-strikethrough@v2.0.0 - -> mdast extension to parse and serialize GFM strikethrough - -License: MIT -Author: Titus Wormer (https://wooorm.com) -Contributors: - - Titus Wormer (https://wooorm.com) - -> (The MIT License) -> -> Copyright (c) 2020 Titus Wormer -> -> Permission is hereby granted, free of charge, to any person obtaining -> a copy of this software and associated documentation files (the -> 'Software'), to deal in the Software without restriction, including -> without limitation the rights to use, copy, modify, merge, publish, -> distribute, sublicense, and/or sell copies of the Software, and to -> permit persons to whom the Software is furnished to do so, subject to -> the following conditions: -> -> The above copyright notice and this permission notice shall be -> included in all copies or substantial portions of the Software. -> -> THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND, -> EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -> MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. -> IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY -> CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, -> TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE -> SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - ----------------------------------------- - -## mdast-util-gfm-table@v2.0.0 - -> mdast extension to parse and serialize GFM tables - -License: MIT -Author: Titus Wormer (https://wooorm.com) -Contributors: - - Titus Wormer (https://wooorm.com) - -> (The MIT License) -> -> Copyright (c) 2020 Titus Wormer -> -> Permission is hereby granted, free of charge, to any person obtaining -> a copy of this software and associated documentation files (the -> 'Software'), to deal in the Software without restriction, including -> without limitation the rights to use, copy, modify, merge, publish, -> distribute, sublicense, and/or sell copies of the Software, and to -> permit persons to whom the Software is furnished to do so, subject to -> the following conditions: -> -> The above copyright notice and this permission notice shall be -> included in all copies or substantial portions of the Software. -> -> THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND, -> EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -> MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. -> IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY -> CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, -> TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE -> SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - ----------------------------------------- - -## mdast-util-gfm-task-list-item@v2.0.0 - -> mdast extension to parse and serialize GFM task list items - -License: MIT -Author: Titus Wormer (https://wooorm.com) -Contributors: - - Titus Wormer (https://wooorm.com) - -> (The MIT License) -> -> Copyright (c) 2020 Titus Wormer -> -> Permission is hereby granted, free of charge, to any person obtaining -> a copy of this software and associated documentation files (the -> 'Software'), to deal in the Software without restriction, including -> without limitation the rights to use, copy, modify, merge, publish, -> distribute, sublicense, and/or sell copies of the Software, and to -> permit persons to whom the Software is furnished to do so, subject to -> the following conditions: -> -> The above copyright notice and this permission notice shall be -> included in all copies or substantial portions of the Software. -> -> THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND, -> EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -> MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. -> IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY -> CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, -> TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE -> SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - ----------------------------------------- - -## mdast-util-math@v3.0.0 - -> mdast extension to parse and serialize math - -License: MIT -Author: Titus Wormer (https://wooorm.com) -Contributors: - - Titus Wormer (https://wooorm.com) - -> (The MIT License) -> -> Copyright (c) 2020 Titus Wormer -> -> Permission is hereby granted, free of charge, to any person obtaining -> a copy of this software and associated documentation files (the -> 'Software'), to deal in the Software without restriction, including -> without limitation the rights to use, copy, modify, merge, publish, -> distribute, sublicense, and/or sell copies of the Software, and to -> permit persons to whom the Software is furnished to do so, subject to -> the following conditions: -> -> The above copyright notice and this permission notice shall be -> included in all copies or substantial portions of the Software. -> -> THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND, -> EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -> MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. -> IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY -> CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, -> TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE -> SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - ----------------------------------------- - -## mdast-util-phrasing@v4.1.0 - -> mdast utility to check if a node is phrasing content - -License: MIT -Author: Victor Felder (https://draft.li) -Contributors: - - Victor Felder (https://draft.li) - - Titus Wormer (https://wooorm.com) - -> (The MIT License) -> -> Copyright (c) 2017 Titus Wormer -> Copyright (c) 2017 Victor Felder -> -> Permission is hereby granted, free of charge, to any person obtaining -> a copy of this software and associated documentation files (the -> 'Software'), to deal in the Software without restriction, including -> without limitation the rights to use, copy, modify, merge, publish, -> distribute, sublicense, and/or sell copies of the Software, and to -> permit persons to whom the Software is furnished to do so, subject to -> the following conditions: -> -> The above copyright notice and this permission notice shall be -> included in all copies or substantial portions of the Software. -> -> THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND, -> EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -> MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. -> IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY -> CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, -> TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE -> SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - ----------------------------------------- - -## mdast-util-to-markdown@v2.1.2 - -> mdast utility to serialize markdown - -License: MIT -Author: Titus Wormer (https://wooorm.com) -Contributors: - - Titus Wormer (https://wooorm.com) - -> (The MIT License) -> -> Copyright (c) Titus Wormer -> -> Permission is hereby granted, free of charge, to any person obtaining -> a copy of this software and associated documentation files (the -> 'Software'), to deal in the Software without restriction, including -> without limitation the rights to use, copy, modify, merge, publish, -> distribute, sublicense, and/or sell copies of the Software, and to -> permit persons to whom the Software is furnished to do so, subject to -> the following conditions: -> -> The above copyright notice and this permission notice shall be -> included in all copies or substantial portions of the Software. -> -> THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND, -> EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -> MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. -> IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY -> CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, -> TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE -> SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - ----------------------------------------- - -## mdast-util-to-string@v4.0.0 - -> mdast utility to get the plain text content of a node - -License: MIT -Author: Titus Wormer (https://wooorm.com) -Contributors: - - Titus Wormer (https://wooorm.com) - -> (The MIT License) -> -> Copyright (c) 2015 Titus Wormer -> -> Permission is hereby granted, free of charge, to any person obtaining -> a copy of this software and associated documentation files (the -> 'Software'), to deal in the Software without restriction, including -> without limitation the rights to use, copy, modify, merge, publish, -> distribute, sublicense, and/or sell copies of the Software, and to -> permit persons to whom the Software is furnished to do so, subject to -> the following conditions: -> -> The above copyright notice and this permission notice shall be -> included in all copies or substantial portions of the Software. -> -> THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND, -> EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -> MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. -> IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY -> CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, -> TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE -> SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - ----------------------------------------- - -## mdast-util-wiki-link@v0.1.2 - -> Parse and render wiki-style links - -License: MIT -Author: Mark Hudnall (https://markhudnall.com) - ----------------------------------------- - -## merge2@v1.4.1 - -> Merge multiple streams into one stream in sequence or parallel. - -License: MIT -Homepage: -Repository: - -> The MIT License (MIT) -> -> Copyright (c) 2014-2020 Teambition -> -> Permission is hereby granted, free of charge, to any person obtaining a copy -> of this software and associated documentation files (the "Software"), to deal -> in the Software without restriction, including without limitation the rights -> to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -> copies of the Software, and to permit persons to whom the Software is -> furnished to do so, subject to the following conditions: -> -> The above copyright notice and this permission notice shall be included in all -> copies or substantial portions of the Software. -> -> THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -> IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -> FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -> AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -> LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -> OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -> SOFTWARE. - ----------------------------------------- - -## meriyah@v7.1.0 - -> A 100% compliant, self-hosted javascript parser with high focus on both performance and stability - -License: ISC -Homepage: -Repository: -Author: Kenny F. (https://github.com/KFlash) -Contributors: - - Chunpeng Huo (https://github.com/3cp) - -> ISC License -> -> Copyright (c) 2019 and later, KFlash and others. -> -> Permission to use, copy, modify, and/or distribute this software for any purpose with or without fee is hereby granted, provided that the above copyright notice and this permission notice appear in all copies. -> -> THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - ----------------------------------------- - -## micromark@v4.0.2 - -> small commonmark compliant markdown parser with positional info and concrete tokens - -License: MIT -Author: Titus Wormer (https://wooorm.com) -Contributors: - - Titus Wormer (https://wooorm.com) - -> (The MIT License) -> -> Copyright (c) Titus Wormer -> -> Permission is hereby granted, free of charge, to any person obtaining -> a copy of this software and associated documentation files (the -> 'Software'), to deal in the Software without restriction, including -> without limitation the rights to use, copy, modify, merge, publish, -> distribute, sublicense, and/or sell copies of the Software, and to -> permit persons to whom the Software is furnished to do so, subject to -> the following conditions: -> -> The above copyright notice and this permission notice shall be -> included in all copies or substantial portions of the Software. -> -> THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND, -> EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -> MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. -> IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY -> CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, -> TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE -> SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - ----------------------------------------- - -## micromark-core-commonmark@v2.0.3 - -> The CommonMark markdown constructs - -License: MIT -Author: Titus Wormer (https://wooorm.com) -Contributors: - - Titus Wormer (https://wooorm.com) - -> (The MIT License) -> -> Copyright (c) Titus Wormer -> -> Permission is hereby granted, free of charge, to any person obtaining -> a copy of this software and associated documentation files (the -> 'Software'), to deal in the Software without restriction, including -> without limitation the rights to use, copy, modify, merge, publish, -> distribute, sublicense, and/or sell copies of the Software, and to -> permit persons to whom the Software is furnished to do so, subject to -> the following conditions: -> -> The above copyright notice and this permission notice shall be -> included in all copies or substantial portions of the Software. -> -> THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND, -> EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -> MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. -> IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY -> CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, -> TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE -> SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - ----------------------------------------- - -## micromark-extension-gfm@v3.0.0 - -> micromark extension to support GFM (GitHub Flavored Markdown) - -License: MIT -Author: Titus Wormer (https://wooorm.com) -Contributors: - - Titus Wormer (https://wooorm.com) - -> (The MIT License) -> -> Copyright (c) 2020 Titus Wormer -> -> Permission is hereby granted, free of charge, to any person obtaining -> a copy of this software and associated documentation files (the -> 'Software'), to deal in the Software without restriction, including -> without limitation the rights to use, copy, modify, merge, publish, -> distribute, sublicense, and/or sell copies of the Software, and to -> permit persons to whom the Software is furnished to do so, subject to -> the following conditions: -> -> The above copyright notice and this permission notice shall be -> included in all copies or substantial portions of the Software. -> -> THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND, -> EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -> MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. -> IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY -> CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, -> TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE -> SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - ----------------------------------------- - -## micromark-extension-gfm-autolink-literal@v2.1.0 - -> micromark extension to support GFM autolink literals - -License: MIT -Author: Titus Wormer (https://wooorm.com) -Contributors: - - Titus Wormer (https://wooorm.com) - -> (The MIT License) -> -> Copyright (c) 2020 Titus Wormer -> -> Permission is hereby granted, free of charge, to any person obtaining -> a copy of this software and associated documentation files (the -> 'Software'), to deal in the Software without restriction, including -> without limitation the rights to use, copy, modify, merge, publish, -> distribute, sublicense, and/or sell copies of the Software, and to -> permit persons to whom the Software is furnished to do so, subject to -> the following conditions: -> -> The above copyright notice and this permission notice shall be -> included in all copies or substantial portions of the Software. -> -> THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND, -> EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -> MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. -> IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY -> CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, -> TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE -> SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - ----------------------------------------- - -## micromark-extension-gfm-footnote@v2.1.0 - -> micromark extension to support GFM footnotes - -License: MIT -Author: Titus Wormer (https://wooorm.com) -Contributors: - - Titus Wormer (https://wooorm.com) - -> (The MIT License) -> -> Copyright (c) 2021 Titus Wormer -> -> Permission is hereby granted, free of charge, to any person obtaining -> a copy of this software and associated documentation files (the -> 'Software'), to deal in the Software without restriction, including -> without limitation the rights to use, copy, modify, merge, publish, -> distribute, sublicense, and/or sell copies of the Software, and to -> permit persons to whom the Software is furnished to do so, subject to -> the following conditions: -> -> The above copyright notice and this permission notice shall be -> included in all copies or substantial portions of the Software. -> -> THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND, -> EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -> MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. -> IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY -> CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, -> TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE -> SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - ----------------------------------------- - -## micromark-extension-gfm-strikethrough@v2.1.0 - -> micromark extension to support GFM strikethrough - -License: MIT -Author: Titus Wormer (https://wooorm.com) -Contributors: - - Titus Wormer (https://wooorm.com) - -> (The MIT License) -> -> Copyright (c) 2020 Titus Wormer -> -> Permission is hereby granted, free of charge, to any person obtaining -> a copy of this software and associated documentation files (the -> 'Software'), to deal in the Software without restriction, including -> without limitation the rights to use, copy, modify, merge, publish, -> distribute, sublicense, and/or sell copies of the Software, and to -> permit persons to whom the Software is furnished to do so, subject to -> the following conditions: -> -> The above copyright notice and this permission notice shall be -> included in all copies or substantial portions of the Software. -> -> THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND, -> EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -> MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. -> IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY -> CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, -> TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE -> SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - ----------------------------------------- - -## micromark-extension-gfm-table@v2.1.1 - -> micromark extension to support GFM tables - -License: MIT -Author: Titus Wormer (https://wooorm.com) -Contributors: - - Titus Wormer (https://wooorm.com) - -> (The MIT License) -> -> Copyright (c) Titus Wormer -> -> Permission is hereby granted, free of charge, to any person obtaining -> a copy of this software and associated documentation files (the -> 'Software'), to deal in the Software without restriction, including -> without limitation the rights to use, copy, modify, merge, publish, -> distribute, sublicense, and/or sell copies of the Software, and to -> permit persons to whom the Software is furnished to do so, subject to -> the following conditions: -> -> The above copyright notice and this permission notice shall be -> included in all copies or substantial portions of the Software. -> -> THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND, -> EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -> MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. -> IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY -> CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, -> TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE -> SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - ----------------------------------------- - -## micromark-extension-gfm-tagfilter@v2.0.0 - -> micromark extension to support GFM tagfilter - -License: MIT -Author: Titus Wormer (https://wooorm.com) -Contributors: - - Titus Wormer (https://wooorm.com) - -> (The MIT License) -> -> Copyright (c) 2020 Titus Wormer -> -> Permission is hereby granted, free of charge, to any person obtaining -> a copy of this software and associated documentation files (the -> 'Software'), to deal in the Software without restriction, including -> without limitation the rights to use, copy, modify, merge, publish, -> distribute, sublicense, and/or sell copies of the Software, and to -> permit persons to whom the Software is furnished to do so, subject to -> the following conditions: -> -> The above copyright notice and this permission notice shall be -> included in all copies or substantial portions of the Software. -> -> THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND, -> EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -> MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. -> IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY -> CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, -> TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE -> SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - ----------------------------------------- - -## micromark-extension-gfm-task-list-item@v2.1.0 - -> micromark extension to support GFM task list items - -License: MIT -Author: Titus Wormer (https://wooorm.com) -Contributors: - - Titus Wormer (https://wooorm.com) - -> (The MIT License) -> -> Copyright (c) 2020 Titus Wormer -> -> Permission is hereby granted, free of charge, to any person obtaining -> a copy of this software and associated documentation files (the -> 'Software'), to deal in the Software without restriction, including -> without limitation the rights to use, copy, modify, merge, publish, -> distribute, sublicense, and/or sell copies of the Software, and to -> permit persons to whom the Software is furnished to do so, subject to -> the following conditions: -> -> The above copyright notice and this permission notice shall be -> included in all copies or substantial portions of the Software. -> -> THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND, -> EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -> MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. -> IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY -> CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, -> TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE -> SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - ----------------------------------------- - -## micromark-extension-math@v3.1.0 - -> micromark extension to support math (`$C_L$`) - -License: MIT -Author: Titus Wormer (https://wooorm.com) -Contributors: - - Titus Wormer (https://wooorm.com) - -> (The MIT License) -> -> Copyright (c) 2020 Titus Wormer -> -> Permission is hereby granted, free of charge, to any person obtaining -> a copy of this software and associated documentation files (the -> 'Software'), to deal in the Software without restriction, including -> without limitation the rights to use, copy, modify, merge, publish, -> distribute, sublicense, and/or sell copies of the Software, and to -> permit persons to whom the Software is furnished to do so, subject to -> the following conditions: -> -> The above copyright notice and this permission notice shall be -> included in all copies or substantial portions of the Software. -> -> THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND, -> EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -> MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. -> IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY -> CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, -> TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE -> SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - ----------------------------------------- - -## micromark-extension-wiki-link@v0.0.4 - -> Parse and render wiki-style links - -License: MIT -Author: Mark Hudnall (https://markhudnall.com) - ----------------------------------------- - -## micromark-factory-destination@v2.0.1 - -> micromark factory to parse destinations (found in resources, definitions) - -License: MIT -Author: Titus Wormer (https://wooorm.com) -Contributors: - - Titus Wormer (https://wooorm.com) - -> (The MIT License) -> -> Copyright (c) Titus Wormer -> -> Permission is hereby granted, free of charge, to any person obtaining -> a copy of this software and associated documentation files (the -> 'Software'), to deal in the Software without restriction, including -> without limitation the rights to use, copy, modify, merge, publish, -> distribute, sublicense, and/or sell copies of the Software, and to -> permit persons to whom the Software is furnished to do so, subject to -> the following conditions: -> -> The above copyright notice and this permission notice shall be -> included in all copies or substantial portions of the Software. -> -> THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND, -> EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -> MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. -> IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY -> CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, -> TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE -> SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - ----------------------------------------- - -## micromark-factory-label@v2.0.1 - -> micromark factory to parse labels (found in media, definitions) - -License: MIT -Author: Titus Wormer (https://wooorm.com) -Contributors: - - Titus Wormer (https://wooorm.com) - -> (The MIT License) -> -> Copyright (c) Titus Wormer -> -> Permission is hereby granted, free of charge, to any person obtaining -> a copy of this software and associated documentation files (the -> 'Software'), to deal in the Software without restriction, including -> without limitation the rights to use, copy, modify, merge, publish, -> distribute, sublicense, and/or sell copies of the Software, and to -> permit persons to whom the Software is furnished to do so, subject to -> the following conditions: -> -> The above copyright notice and this permission notice shall be -> included in all copies or substantial portions of the Software. -> -> THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND, -> EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -> MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. -> IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY -> CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, -> TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE -> SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - ----------------------------------------- - -## micromark-factory-space@v2.0.1 - -> micromark factory to parse markdown space (found in lots of places) - -License: MIT -Author: Titus Wormer (https://wooorm.com) -Contributors: - - Titus Wormer (https://wooorm.com) - -> (The MIT License) -> -> Copyright (c) Titus Wormer -> -> Permission is hereby granted, free of charge, to any person obtaining -> a copy of this software and associated documentation files (the -> 'Software'), to deal in the Software without restriction, including -> without limitation the rights to use, copy, modify, merge, publish, -> distribute, sublicense, and/or sell copies of the Software, and to -> permit persons to whom the Software is furnished to do so, subject to -> the following conditions: -> -> The above copyright notice and this permission notice shall be -> included in all copies or substantial portions of the Software. -> -> THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND, -> EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -> MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. -> IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY -> CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, -> TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE -> SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - ----------------------------------------- - -## micromark-factory-title@v2.0.1 - -> micromark factory to parse markdown titles (found in resources, definitions) - -License: MIT -Author: Titus Wormer (https://wooorm.com) -Contributors: - - Titus Wormer (https://wooorm.com) - -> (The MIT License) -> -> Copyright (c) Titus Wormer -> -> Permission is hereby granted, free of charge, to any person obtaining -> a copy of this software and associated documentation files (the -> 'Software'), to deal in the Software without restriction, including -> without limitation the rights to use, copy, modify, merge, publish, -> distribute, sublicense, and/or sell copies of the Software, and to -> permit persons to whom the Software is furnished to do so, subject to -> the following conditions: -> -> The above copyright notice and this permission notice shall be -> included in all copies or substantial portions of the Software. -> -> THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND, -> EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -> MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. -> IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY -> CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, -> TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE -> SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - ----------------------------------------- - -## micromark-factory-whitespace@v2.0.1 - -> micromark factory to parse markdown whitespace (found in lots of places) - -License: MIT -Author: Titus Wormer (https://wooorm.com) -Contributors: - - Titus Wormer (https://wooorm.com) - -> (The MIT License) -> -> Copyright (c) Titus Wormer -> -> Permission is hereby granted, free of charge, to any person obtaining -> a copy of this software and associated documentation files (the -> 'Software'), to deal in the Software without restriction, including -> without limitation the rights to use, copy, modify, merge, publish, -> distribute, sublicense, and/or sell copies of the Software, and to -> permit persons to whom the Software is furnished to do so, subject to -> the following conditions: -> -> The above copyright notice and this permission notice shall be -> included in all copies or substantial portions of the Software. -> -> THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND, -> EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -> MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. -> IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY -> CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, -> TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE -> SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - ----------------------------------------- - -## micromark-util-character@v2.1.1 - -> micromark utility to handle character codes - -License: MIT -Author: Titus Wormer (https://wooorm.com) -Contributors: - - Titus Wormer (https://wooorm.com) - -> (The MIT License) -> -> Copyright (c) Titus Wormer -> -> Permission is hereby granted, free of charge, to any person obtaining -> a copy of this software and associated documentation files (the -> 'Software'), to deal in the Software without restriction, including -> without limitation the rights to use, copy, modify, merge, publish, -> distribute, sublicense, and/or sell copies of the Software, and to -> permit persons to whom the Software is furnished to do so, subject to -> the following conditions: -> -> The above copyright notice and this permission notice shall be -> included in all copies or substantial portions of the Software. -> -> THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND, -> EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -> MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. -> IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY -> CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, -> TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE -> SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - ----------------------------------------- - -## micromark-util-chunked@v2.0.1 - -> micromark utility to splice and push with giant arrays - -License: MIT -Author: Titus Wormer (https://wooorm.com) -Contributors: - - Titus Wormer (https://wooorm.com) - -> (The MIT License) -> -> Copyright (c) Titus Wormer -> -> Permission is hereby granted, free of charge, to any person obtaining -> a copy of this software and associated documentation files (the -> 'Software'), to deal in the Software without restriction, including -> without limitation the rights to use, copy, modify, merge, publish, -> distribute, sublicense, and/or sell copies of the Software, and to -> permit persons to whom the Software is furnished to do so, subject to -> the following conditions: -> -> The above copyright notice and this permission notice shall be -> included in all copies or substantial portions of the Software. -> -> THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND, -> EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -> MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. -> IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY -> CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, -> TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE -> SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - ----------------------------------------- - -## micromark-util-classify-character@v2.0.1 - -> micromark utility to classify whether a character is whitespace or punctuation - -License: MIT -Author: Titus Wormer (https://wooorm.com) -Contributors: - - Titus Wormer (https://wooorm.com) - -> (The MIT License) -> -> Copyright (c) Titus Wormer -> -> Permission is hereby granted, free of charge, to any person obtaining -> a copy of this software and associated documentation files (the -> 'Software'), to deal in the Software without restriction, including -> without limitation the rights to use, copy, modify, merge, publish, -> distribute, sublicense, and/or sell copies of the Software, and to -> permit persons to whom the Software is furnished to do so, subject to -> the following conditions: -> -> The above copyright notice and this permission notice shall be -> included in all copies or substantial portions of the Software. -> -> THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND, -> EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -> MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. -> IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY -> CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, -> TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE -> SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - ----------------------------------------- - -## micromark-util-combine-extensions@v2.0.1 - -> micromark utility to combine syntax or html extensions - -License: MIT -Author: Titus Wormer (https://wooorm.com) -Contributors: - - Titus Wormer (https://wooorm.com) - -> (The MIT License) -> -> Copyright (c) Titus Wormer -> -> Permission is hereby granted, free of charge, to any person obtaining -> a copy of this software and associated documentation files (the -> 'Software'), to deal in the Software without restriction, including -> without limitation the rights to use, copy, modify, merge, publish, -> distribute, sublicense, and/or sell copies of the Software, and to -> permit persons to whom the Software is furnished to do so, subject to -> the following conditions: -> -> The above copyright notice and this permission notice shall be -> included in all copies or substantial portions of the Software. -> -> THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND, -> EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -> MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. -> IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY -> CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, -> TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE -> SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - ----------------------------------------- - -## micromark-util-decode-numeric-character-reference@v2.0.2 - -> micromark utility to decode numeric character references - -License: MIT -Author: Titus Wormer (https://wooorm.com) -Contributors: - - Titus Wormer (https://wooorm.com) - -> (The MIT License) -> -> Copyright (c) Titus Wormer -> -> Permission is hereby granted, free of charge, to any person obtaining -> a copy of this software and associated documentation files (the -> 'Software'), to deal in the Software without restriction, including -> without limitation the rights to use, copy, modify, merge, publish, -> distribute, sublicense, and/or sell copies of the Software, and to -> permit persons to whom the Software is furnished to do so, subject to -> the following conditions: -> -> The above copyright notice and this permission notice shall be -> included in all copies or substantial portions of the Software. -> -> THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND, -> EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -> MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. -> IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY -> CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, -> TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE -> SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - ----------------------------------------- - -## micromark-util-decode-string@v2.0.1 - -> micromark utility to decode markdown strings - -License: MIT -Author: Titus Wormer (https://wooorm.com) -Contributors: - - Titus Wormer (https://wooorm.com) - -> (The MIT License) -> -> Copyright (c) Titus Wormer -> -> Permission is hereby granted, free of charge, to any person obtaining -> a copy of this software and associated documentation files (the -> 'Software'), to deal in the Software without restriction, including -> without limitation the rights to use, copy, modify, merge, publish, -> distribute, sublicense, and/or sell copies of the Software, and to -> permit persons to whom the Software is furnished to do so, subject to -> the following conditions: -> -> The above copyright notice and this permission notice shall be -> included in all copies or substantial portions of the Software. -> -> THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND, -> EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -> MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. -> IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY -> CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, -> TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE -> SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - ----------------------------------------- - -## micromark-util-encode@v2.0.1 - -> micromark utility to encode dangerous html characters - -License: MIT -Author: Titus Wormer (https://wooorm.com) -Contributors: - - Titus Wormer (https://wooorm.com) - -> (The MIT License) -> -> Copyright (c) Titus Wormer -> -> Permission is hereby granted, free of charge, to any person obtaining -> a copy of this software and associated documentation files (the -> 'Software'), to deal in the Software without restriction, including -> without limitation the rights to use, copy, modify, merge, publish, -> distribute, sublicense, and/or sell copies of the Software, and to -> permit persons to whom the Software is furnished to do so, subject to -> the following conditions: -> -> The above copyright notice and this permission notice shall be -> included in all copies or substantial portions of the Software. -> -> THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND, -> EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -> MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. -> IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY -> CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, -> TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE -> SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - ----------------------------------------- - -## micromark-util-html-tag-name@v2.0.1 - -> micromark utility with list of html tag names - -License: MIT -Author: Titus Wormer (https://wooorm.com) -Contributors: - - Titus Wormer (https://wooorm.com) - -> (The MIT License) -> -> Copyright (c) Titus Wormer -> -> Permission is hereby granted, free of charge, to any person obtaining -> a copy of this software and associated documentation files (the -> 'Software'), to deal in the Software without restriction, including -> without limitation the rights to use, copy, modify, merge, publish, -> distribute, sublicense, and/or sell copies of the Software, and to -> permit persons to whom the Software is furnished to do so, subject to -> the following conditions: -> -> The above copyright notice and this permission notice shall be -> included in all copies or substantial portions of the Software. -> -> THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND, -> EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -> MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. -> IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY -> CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, -> TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE -> SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - ----------------------------------------- - -## micromark-util-normalize-identifier@v2.0.1 - -> micromark utility normalize identifiers (as found in references, definitions) - -License: MIT -Author: Titus Wormer (https://wooorm.com) -Contributors: - - Titus Wormer (https://wooorm.com) - -> (The MIT License) -> -> Copyright (c) Titus Wormer -> -> Permission is hereby granted, free of charge, to any person obtaining -> a copy of this software and associated documentation files (the -> 'Software'), to deal in the Software without restriction, including -> without limitation the rights to use, copy, modify, merge, publish, -> distribute, sublicense, and/or sell copies of the Software, and to -> permit persons to whom the Software is furnished to do so, subject to -> the following conditions: -> -> The above copyright notice and this permission notice shall be -> included in all copies or substantial portions of the Software. -> -> THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND, -> EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -> MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. -> IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY -> CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, -> TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE -> SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - ----------------------------------------- - -## micromark-util-resolve-all@v2.0.1 - -> micromark utility to resolve subtokens - -License: MIT -Author: Titus Wormer (https://wooorm.com) -Contributors: - - Titus Wormer (https://wooorm.com) - -> (The MIT License) -> -> Copyright (c) Titus Wormer -> -> Permission is hereby granted, free of charge, to any person obtaining -> a copy of this software and associated documentation files (the -> 'Software'), to deal in the Software without restriction, including -> without limitation the rights to use, copy, modify, merge, publish, -> distribute, sublicense, and/or sell copies of the Software, and to -> permit persons to whom the Software is furnished to do so, subject to -> the following conditions: -> -> The above copyright notice and this permission notice shall be -> included in all copies or substantial portions of the Software. -> -> THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND, -> EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -> MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. -> IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY -> CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, -> TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE -> SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - ----------------------------------------- - -## micromark-util-sanitize-uri@v2.0.1 - -> micromark utility to sanitize urls - -License: MIT -Author: Titus Wormer (https://wooorm.com) -Contributors: - - Titus Wormer (https://wooorm.com) - -> (The MIT License) -> -> Copyright (c) Titus Wormer -> -> Permission is hereby granted, free of charge, to any person obtaining -> a copy of this software and associated documentation files (the -> 'Software'), to deal in the Software without restriction, including -> without limitation the rights to use, copy, modify, merge, publish, -> distribute, sublicense, and/or sell copies of the Software, and to -> permit persons to whom the Software is furnished to do so, subject to -> the following conditions: -> -> The above copyright notice and this permission notice shall be -> included in all copies or substantial portions of the Software. -> -> THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND, -> EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -> MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. -> IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY -> CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, -> TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE -> SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - ----------------------------------------- - -## micromark-util-subtokenize@v2.1.0 - -> micromark utility to tokenize subtokens - -License: MIT -Author: Titus Wormer (https://wooorm.com) -Contributors: - - Titus Wormer (https://wooorm.com) - -> (The MIT License) -> -> Copyright (c) Titus Wormer -> -> Permission is hereby granted, free of charge, to any person obtaining -> a copy of this software and associated documentation files (the -> 'Software'), to deal in the Software without restriction, including -> without limitation the rights to use, copy, modify, merge, publish, -> distribute, sublicense, and/or sell copies of the Software, and to -> permit persons to whom the Software is furnished to do so, subject to -> the following conditions: -> -> The above copyright notice and this permission notice shall be -> included in all copies or substantial portions of the Software. -> -> THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND, -> EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -> MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. -> IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY -> CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, -> TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE -> SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - ----------------------------------------- - -## micromark-util-symbol@v2.0.1 - -> micromark utility with symbols - -License: MIT -Author: Titus Wormer (https://wooorm.com) -Contributors: - - Titus Wormer (https://wooorm.com) - -> (The MIT License) -> -> Copyright (c) Titus Wormer -> -> Permission is hereby granted, free of charge, to any person obtaining -> a copy of this software and associated documentation files (the -> 'Software'), to deal in the Software without restriction, including -> without limitation the rights to use, copy, modify, merge, publish, -> distribute, sublicense, and/or sell copies of the Software, and to -> permit persons to whom the Software is furnished to do so, subject to -> the following conditions: -> -> The above copyright notice and this permission notice shall be -> included in all copies or substantial portions of the Software. -> -> THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND, -> EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -> MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. -> IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY -> CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, -> TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE -> SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - ----------------------------------------- - -## micromatch@v4.0.8 - -> Glob matching for javascript/node.js. A replacement and faster alternative to minimatch and multimatch. - -License: MIT -Homepage: -Author: Jon Schlinkert (https://github.com/jonschlinkert) -Contributors: - - null (https://github.com/DianeLooney) - - Amila Welihinda (amilajack.com) - - Bogdan Chadkin (https://github.com/TrySound) - - Brian Woodward (https://twitter.com/doowb) - - Devon Govett (http://badassjs.com) - - Elan Shanker (https://github.com/es128) - - Fabrício Matté (https://ultcombo.js.org) - - Jon Schlinkert (http://twitter.com/jonschlinkert) - - Martin Kolárik (https://kolarik.sk) - - Olsten Larck (https://i.am.charlike.online) - - Paul Miller (paulmillr.com) - - Tom Byrer (https://github.com/tomByrer) - - Tyler Akins (http://rumkin.com) - - Peter Bright (https://github.com/drpizza) - - Kuba Juszczyk (https://github.com/ku8ar) - -> The MIT License (MIT) -> -> Copyright (c) 2014-present, Jon Schlinkert. -> -> Permission is hereby granted, free of charge, to any person obtaining a copy -> of this software and associated documentation files (the "Software"), to deal -> in the Software without restriction, including without limitation the rights -> to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -> copies of the Software, and to permit persons to whom the Software is -> furnished to do so, subject to the following conditions: -> -> The above copyright notice and this permission notice shall be included in -> all copies or substantial portions of the Software. -> -> THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -> IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -> FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -> AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -> LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -> OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -> THE SOFTWARE. - ----------------------------------------- - -## minimatch@v10.2.5 - -> a glob matcher in javascript - -License: BlueOak-1.0.0 -Repository: -Author: Isaac Z. Schlueter (http://blog.izs.me) - -> # Blue Oak Model License -> -> Version 1.0.0 -> -> ## Purpose -> -> This license gives everyone as much permission to work with -> this software as possible, while protecting contributors -> from liability. -> -> ## Acceptance -> -> In order to receive this license, you must agree to its -> rules. The rules of this license are both obligations -> under that agreement and conditions to your license. -> You must not do anything with this software that triggers -> a rule that you cannot or will not follow. -> -> ## Copyright -> -> Each contributor licenses you to do everything with this -> software that would otherwise infringe that contributor's -> copyright in it. -> -> ## Notices -> -> You must ensure that everyone who gets a copy of -> any part of this software from you, with or without -> changes, also gets the text of this license or a link to -> . -> -> ## Excuse -> -> If anyone notifies you in writing that you have not -> complied with [Notices](#notices), you can keep your -> license by taking all practical steps to comply within 30 -> days after the notice. If you do not do so, your license -> ends immediately. -> -> ## Patent -> -> Each contributor licenses you to do everything with this -> software that would otherwise infringe any patent claims -> they can license or become able to license. -> -> ## Reliability -> -> No contributor can revoke this license. -> -> ## No Liability -> -> **_As far as the law allows, this software comes as is, -> without any warranty or condition, and no contributor -> will be liable to anyone for any damages related to this -> software or this license, under any kind of legal claim._** - ----------------------------------------- - -## minimist@v1.2.8 - -> parse argument options - -License: MIT -Homepage: -Repository: -Author: James Halliday (http://substack.net) - -> This software is released under the MIT license: -> -> Permission is hereby granted, free of charge, to any person obtaining a copy of -> this software and associated documentation files (the "Software"), to deal in -> the Software without restriction, including without limitation the rights to -> use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of -> the Software, and to permit persons to whom the Software is furnished to do so, -> subject to the following conditions: -> -> The above copyright notice and this permission notice shall be included in all -> copies or substantial portions of the Software. -> -> THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -> IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS -> FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR -> COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER -> IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -> CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - ----------------------------------------- - -## n-readlines@v3.4.1 - -> Read file line by line without buffering the whole file in memory. - -License: MIT -Repository: -Author: Yoan Arnaudov - -> The MIT License (MIT) -> -> Copyright (c) 2013 Liucw -> -> Permission is hereby granted, free of charge, to any person obtaining a copy of -> this software and associated documentation files (the "Software"), to deal in -> the Software without restriction, including without limitation the rights to -> use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of -> the Software, and to permit persons to whom the Software is furnished to do so, -> subject to the following conditions: -> -> The above copyright notice and this permission notice shall be included in all -> copies or substantial portions of the Software. -> -> THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -> IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS -> FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR -> COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER -> IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -> CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - ----------------------------------------- - -## nanoid@v3.3.15 - -> A tiny (116 bytes), secure URL-friendly unique string ID generator - -License: MIT -Author: Andrey Sitnik - -> The MIT License (MIT) -> -> Copyright 2017 Andrey Sitnik -> -> Permission is hereby granted, free of charge, to any person obtaining a copy of -> this software and associated documentation files (the "Software"), to deal in -> the Software without restriction, including without limitation the rights to -> use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of -> the Software, and to permit persons to whom the Software is furnished to do so, -> subject to the following conditions: -> -> The above copyright notice and this permission notice shall be included in all -> copies or substantial portions of the Software. -> -> THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -> IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS -> FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR -> COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER -> IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -> CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - ----------------------------------------- - -## narrow-emojis@v0.0.3 - -> Emojis with narrow width. - -License: MIT -Homepage: -Author: fisker Cheung (https://www.fiskercheung.com/) - -> MIT License -> -> Copyright (c) fisker Cheung (https://www.fiskercheung.com/) -> -> Permission is hereby granted, free of charge, to any person obtaining a copy -> of this software and associated documentation files (the "Software"), to deal -> in the Software without restriction, including without limitation the rights -> to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -> copies of the Software, and to permit persons to whom the Software is -> furnished to do so, subject to the following conditions: -> -> The above copyright notice and this permission notice shall be included in all -> copies or substantial portions of the Software. -> -> THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -> IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -> FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -> AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -> LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -> OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -> SOFTWARE. - ----------------------------------------- - -## parse-entities@v2.0.0 - -> Parse HTML character references: fast, spec-compliant, positional information - -License: MIT -Author: Titus Wormer (https://wooorm.com) -Contributors: - - Titus Wormer (https://wooorm.com) - -> (The MIT License) -> -> Copyright (c) 2015 Titus Wormer -> -> Permission is hereby granted, free of charge, to any person obtaining -> a copy of this software and associated documentation files (the -> 'Software'), to deal in the Software without restriction, including -> without limitation the rights to use, copy, modify, merge, publish, -> distribute, sublicense, and/or sell copies of the Software, and to -> permit persons to whom the Software is furnished to do so, subject to -> the following conditions: -> -> The above copyright notice and this permission notice shall be -> included in all copies or substantial portions of the Software. -> -> THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND, -> EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -> MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. -> IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY -> CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, -> TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE -> SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - ----------------------------------------- - -## parse-json@v8.3.0 - -> Parse JSON with more helpful errors - -License: MIT -Author: Sindre Sorhus (https://sindresorhus.com) - -> MIT License -> -> Copyright (c) Sindre Sorhus (https://sindresorhus.com) -> -> Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: -> -> The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. -> -> THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - ----------------------------------------- - -## picocolors@v1.1.1 - -> The tiniest and the fastest library for terminal output formatting with ANSI colors - -License: ISC -Author: Alexey Raspopov - -> ISC License -> -> Copyright (c) 2021-2024 Oleksii Raspopov, Kostiantyn Denysov, Anton Verinov -> -> Permission to use, copy, modify, and/or distribute this software for any -> purpose with or without fee is hereby granted, provided that the above -> copyright notice and this permission notice appear in all copies. -> -> THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES -> WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF -> MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR -> ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES -> WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN -> ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF -> OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - ----------------------------------------- - -## picomatch@v2.3.2 - -> Blazing fast and accurate glob matcher written in JavaScript, with no dependencies and full support for standard and extended Bash glob features, including braces, extglobs, POSIX brackets, and regular expressions. - -License: MIT -Homepage: -Author: Jon Schlinkert (https://github.com/jonschlinkert) - -> The MIT License (MIT) -> -> Copyright (c) 2017-present, Jon Schlinkert. -> -> Permission is hereby granted, free of charge, to any person obtaining a copy -> of this software and associated documentation files (the "Software"), to deal -> in the Software without restriction, including without limitation the rights -> to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -> copies of the Software, and to permit persons to whom the Software is -> furnished to do so, subject to the following conditions: -> -> The above copyright notice and this permission notice shall be included in -> all copies or substantial portions of the Software. -> -> THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -> IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -> FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -> AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -> LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -> OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -> THE SOFTWARE. - ----------------------------------------- - -## pioppo@v1.2.1 - -> A tiny isomorphic batched logger. ~3x faster than regular logging in Node. - -License: MIT - -> The MIT License (MIT) -> -> Copyright (c) 2023-present Fabio Spampinato -> -> Permission is hereby granted, free of charge, to any person obtaining a -> copy of this software and associated documentation files (the "Software"), -> to deal in the Software without restriction, including without limitation -> the rights to use, copy, modify, merge, publish, distribute, sublicense, -> and/or sell copies of the Software, and to permit persons to whom the -> Software is furnished to do so, subject to the following conditions: -> -> The above copyright notice and this permission notice shall be included in -> all copies or substantial portions of the Software. -> -> THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -> IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -> FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -> AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -> LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING -> FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER -> DEALINGS IN THE SOFTWARE. - ----------------------------------------- - -## pkg-dir@v8.0.0 - -> Find the root directory of a Node.js project or npm package - -License: MIT -Author: Sindre Sorhus (https://sindresorhus.com) - -> MIT License -> -> Copyright (c) Sindre Sorhus (https://sindresorhus.com) -> -> Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: -> -> The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. -> -> THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - ----------------------------------------- - -## please-upgrade-node@v3.2.0 - -> Displays a beginner-friendly message telling your user to upgrade their version of Node - -License: MIT -Homepage: -Repository: -Author: typicode - -> MIT License -> -> Copyright (c) 2017 -> -> Permission is hereby granted, free of charge, to any person obtaining a copy -> of this software and associated documentation files (the "Software"), to deal -> in the Software without restriction, including without limitation the rights -> to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -> copies of the Software, and to permit persons to whom the Software is -> furnished to do so, subject to the following conditions: -> -> The above copyright notice and this permission notice shall be included in all -> copies or substantial portions of the Software. -> -> THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -> IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -> FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -> AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -> LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -> OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -> SOFTWARE. - ----------------------------------------- - -## postcss@v8.5.15 - -> Tool for transforming styles with JS plugins - -License: MIT -Homepage: -Author: Andrey Sitnik - -> The MIT License (MIT) -> -> Copyright 2013 Andrey Sitnik -> -> Permission is hereby granted, free of charge, to any person obtaining a copy of -> this software and associated documentation files (the "Software"), to deal in -> the Software without restriction, including without limitation the rights to -> use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of -> the Software, and to permit persons to whom the Software is furnished to do so, -> subject to the following conditions: -> -> The above copyright notice and this permission notice shall be included in all -> copies or substantial portions of the Software. -> -> THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -> IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS -> FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR -> COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER -> IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -> CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - ----------------------------------------- - -## postcss-less@v6.0.0 - -> LESS parser for PostCSS - -License: MIT -Homepage: -Author: Denys Kniazevych - -> The MIT License (MIT) -> -> Copyright (c) 2013 Andrey Sitnik -> Copyright (c) 2016 Denys Kniazevych -> Copyright (c) 2016 Pat Sissons -> Copyright (c) 2017 Andrew Powell -> -> Permission is hereby granted, free of charge, to any person obtaining a copy -> of this software and associated documentation files (the "Software"), to deal -> in the Software without restriction, including without limitation the rights -> to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -> copies of the Software, and to permit persons to whom the Software is -> furnished to do so, subject to the following conditions: -> -> The above copyright notice and this permission notice shall be included in all -> copies or substantial portions of the Software. -> -> THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -> IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -> FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -> AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -> LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -> OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -> SOFTWARE. - ----------------------------------------- - -## postcss-media-query-parser@v0.2.3 - -> A tool for parsing media query lists. - -License: MIT -Homepage: -Repository: -Author: dryoma - ----------------------------------------- - -## postcss-scss@v4.0.9 - -> SCSS parser for PostCSS - -License: MIT -Author: Andrey Sitnik - -> The MIT License (MIT) -> -> Copyright 2013 Andrey Sitnik -> -> Permission is hereby granted, free of charge, to any person obtaining a copy of -> this software and associated documentation files (the "Software"), to deal in -> the Software without restriction, including without limitation the rights to -> use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of -> the Software, and to permit persons to whom the Software is furnished to do so, -> subject to the following conditions: -> -> The above copyright notice and this permission notice shall be included in all -> copies or substantial portions of the Software. -> -> THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -> IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS -> FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR -> COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER -> IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -> CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - ----------------------------------------- - -## postcss-selector-parser@v2.2.3 - -License: MIT -Homepage: -Author: Ben Briggs (http://beneb.info) - -> Copyright (c) Ben Briggs (http://beneb.info) -> -> Permission is hereby granted, free of charge, to any person -> obtaining a copy of this software and associated documentation -> files (the "Software"), to deal in the Software without -> restriction, including without limitation the rights to use, -> copy, modify, merge, publish, distribute, sublicense, and/or sell -> copies of the Software, and to permit persons to whom the -> Software is furnished to do so, subject to the following -> conditions: -> -> The above copyright notice and this permission notice shall be -> included in all copies or substantial portions of the Software. -> -> THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, -> EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES -> OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND -> NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT -> HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, -> WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING -> FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR -> OTHER DEALINGS IN THE SOFTWARE. - ----------------------------------------- - -## postcss-values-parser@v2.0.1 - -> A CSS property value parser for use with PostCSS - -License: MIT -Author: Andrew Powell (shellscape) (http://shellscape.org) - -> Copyright (c) Andrew Powell -> -> Permission is hereby granted, free of charge, to any person -> obtaining a copy of this software and associated documentation -> files (the "Software"), to deal in the Software without -> restriction, including without limitation the rights to use, -> copy, modify, merge, publish, distribute, sublicense, and/or sell -> copies of the Software, and to permit persons to whom the -> Software is furnished to do so, subject to the following -> conditions: -> -> The above copyright notice and this permission notice shall be -> included in all copies or substantial portions of the Software. -> -> THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, -> EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES -> OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND -> NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT -> HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, -> WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING -> FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR -> OTHER DEALINGS IN THE SOFTWARE. - ----------------------------------------- - -## promise-make-counter@v1.0.2 - -> A simple function that makes a counter-based promise, which can be incremented and decremented, and it resolves once its counter reaches zero. - -License: MIT - -> The MIT License (MIT) -> -> Copyright (c) 2024-present Fabio Spampinato -> -> Permission is hereby granted, free of charge, to any person obtaining a -> copy of this software and associated documentation files (the "Software"), -> to deal in the Software without restriction, including without limitation -> the rights to use, copy, modify, merge, publish, distribute, sublicense, -> and/or sell copies of the Software, and to permit persons to whom the -> Software is furnished to do so, subject to the following conditions: -> -> The above copyright notice and this permission notice shall be included in -> all copies or substantial portions of the Software. -> -> THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -> IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -> FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -> AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -> LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING -> FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER -> DEALINGS IN THE SOFTWARE. - ----------------------------------------- - -## promise-make-naked@v3.0.2 - -> A simple function that makes a promise that can be resolved, rejected or introspected from the outside. - -License: MIT - -> The MIT License (MIT) -> -> Copyright (c) 2021-present Fabio Spampinato -> -> Permission is hereby granted, free of charge, to any person obtaining a -> copy of this software and associated documentation files (the "Software"), -> to deal in the Software without restriction, including without limitation -> the rights to use, copy, modify, merge, publish, distribute, sublicense, -> and/or sell copies of the Software, and to permit persons to whom the -> Software is furnished to do so, subject to the following conditions: -> -> The above copyright notice and this permission notice shall be included in -> all copies or substantial portions of the Software. -> -> THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -> IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -> FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -> AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -> LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING -> FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER -> DEALINGS IN THE SOFTWARE. - ----------------------------------------- - -## promise-resolve-timeout@v2.0.1 - -> Create a Promise which will resolve with the provided value after a timeout. - -License: MIT - -> The MIT License (MIT) -> -> Copyright (c) 2019-present Fabio Spampinato -> -> Permission is hereby granted, free of charge, to any person obtaining a -> copy of this software and associated documentation files (the "Software"), -> to deal in the Software without restriction, including without limitation -> the rights to use, copy, modify, merge, publish, distribute, sublicense, -> and/or sell copies of the Software, and to permit persons to whom the -> Software is furnished to do so, subject to the following conditions: -> -> The above copyright notice and this permission notice shall be included in -> all copies or substantial portions of the Software. -> -> THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -> IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -> FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -> AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -> LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING -> FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER -> DEALINGS IN THE SOFTWARE. - ----------------------------------------- - -## qified@v0.10.1 - -> Task and Message Queues with Multiple Providers - -License: MIT -Homepage: -Repository: -Author: Jared Wray - -> MIT License & © Jared Wray -> -> Permission is hereby granted, free of charge, to any person obtaining a copy -> of this software and associated documentation files (the "Software"), to deal -> in the Software without restriction, including without limitation the rights -> to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -> copies of the Software, and to permit persons to whom the Software is -> furnished to do so, subject to the following conditions: -> -> The above copyright notice and this permission notice shall be included in all -> copies or substantial portions of the Software. -> -> THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -> IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -> FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -> AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -> LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -> OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -> SOFTWARE. - ----------------------------------------- - -## queue-microtask@v1.2.3 - -> fast, tiny `queueMicrotask` shim for modern engines - -License: MIT -Homepage: -Repository: -Author: Feross Aboukhadijeh (https://feross.org) - -> The MIT License (MIT) -> -> Copyright (c) Feross Aboukhadijeh -> -> Permission is hereby granted, free of charge, to any person obtaining a copy of -> this software and associated documentation files (the "Software"), to deal in -> the Software without restriction, including without limitation the rights to -> use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of -> the Software, and to permit persons to whom the Software is furnished to do so, -> subject to the following conditions: -> -> The above copyright notice and this permission notice shall be included in all -> copies or substantial portions of the Software. -> -> THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -> IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS -> FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR -> COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER -> IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -> CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - ----------------------------------------- - -## remark-footnotes@v2.0.0 - -> remark plugin to add support for pandoc footnotes - -License: MIT -Author: Titus Wormer (https://wooorm.com) -Contributors: - - Titus Wormer (https://wooorm.com) - -> (The MIT License) -> -> Copyright (c) 2020 Titus Wormer -> -> Permission is hereby granted, free of charge, to any person obtaining -> a copy of this software and associated documentation files (the -> 'Software'), to deal in the Software without restriction, including -> without limitation the rights to use, copy, modify, merge, publish, -> distribute, sublicense, and/or sell copies of the Software, and to -> permit persons to whom the Software is furnished to do so, subject to -> the following conditions: -> -> The above copyright notice and this permission notice shall be -> included in all copies or substantial portions of the Software. -> -> THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND, -> EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -> MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. -> IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY -> CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, -> TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE -> SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - ----------------------------------------- - -## remark-math@v3.0.1 - -> remark plugin to parse and stringify math - -License: MIT -Author: Junyoung Choi (https://rokt33r.github.io) -Contributors: - - Junyoung Choi (https://rokt33r.github.io) - - Titus Wormer (https://wooorm.com) - ----------------------------------------- - -## remark-parse@v8.0.3 - -> remark plugin to parse Markdown - -License: MIT -Homepage: -Author: Titus Wormer (https://wooorm.com) -Contributors: - - Titus Wormer (https://wooorm.com) - - Eugene Sharygin - - Junyoung Choi - - Elijah Hamovitz - - Ika - ----------------------------------------- - -## repeat-string@v1.6.1 - -> Repeat the given string n times. Fastest implementation for repeating a string. - -License: MIT -Homepage: -Author: Jon Schlinkert (http://github.com/jonschlinkert) -Contributors: - - Brian Woodward (https://github.com/doowb) - - Jon Schlinkert (http://twitter.com/jonschlinkert) - - Linus Unnebäck (http://linus.unnebäck.se) - - Thijs Busser (http://tbusser.net) - - Titus (wooorm.com) - -> The MIT License (MIT) -> -> Copyright (c) 2014-2016, Jon Schlinkert. -> -> Permission is hereby granted, free of charge, to any person obtaining a copy -> of this software and associated documentation files (the "Software"), to deal -> in the Software without restriction, including without limitation the rights -> to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -> copies of the Software, and to permit persons to whom the Software is -> furnished to do so, subject to the following conditions: -> -> The above copyright notice and this permission notice shall be included in -> all copies or substantial portions of the Software. -> -> THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -> IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -> FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -> AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -> LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -> OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -> THE SOFTWARE. - ----------------------------------------- - -## reusify@v1.1.0 - -> Reuse objects and functions with style - -License: MIT -Homepage: -Repository: -Author: Matteo Collina - -> The MIT License (MIT) -> -> Copyright (c) 2015-2024 Matteo Collina -> -> Permission is hereby granted, free of charge, to any person obtaining a copy -> of this software and associated documentation files (the "Software"), to deal -> in the Software without restriction, including without limitation the rights -> to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -> copies of the Software, and to permit persons to whom the Software is -> furnished to do so, subject to the following conditions: -> -> The above copyright notice and this permission notice shall be included in all -> copies or substantial portions of the Software. -> -> THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -> IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -> FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -> AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -> LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -> OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -> SOFTWARE. - ----------------------------------------- - -## run-parallel@v1.2.0 - -> Run an array of functions in parallel - -License: MIT -Homepage: -Repository: -Author: Feross Aboukhadijeh (https://feross.org) - -> The MIT License (MIT) -> -> Copyright (c) Feross Aboukhadijeh -> -> Permission is hereby granted, free of charge, to any person obtaining a copy of -> this software and associated documentation files (the "Software"), to deal in -> the Software without restriction, including without limitation the rights to -> use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of -> the Software, and to permit persons to whom the Software is furnished to do so, -> subject to the following conditions: -> -> The above copyright notice and this permission notice shall be included in all -> copies or substantial portions of the Software. -> -> THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -> IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS -> FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR -> COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER -> IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -> CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - ----------------------------------------- - -## search-closest@v3.1.0 - -> Find closest file or directory by names. - -License: MIT -Homepage: -Author: fisker Cheung (https://www.fiskercheung.com/) - -> MIT License -> -> Copyright (c) fisker Cheung (https://www.fiskercheung.com/) -> -> Permission is hereby granted, free of charge, to any person obtaining a copy -> of this software and associated documentation files (the "Software"), to deal -> in the Software without restriction, including without limitation the rights -> to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -> copies of the Software, and to permit persons to whom the Software is -> furnished to do so, subject to the following conditions: -> -> The above copyright notice and this permission notice shall be included in all -> copies or substantial portions of the Software. -> -> THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -> IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -> FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -> AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -> LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -> OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -> SOFTWARE. - ----------------------------------------- - -## semver-compare@v1.0.0 - -> compare two semver version strings, returning -1, 0, or 1 - -License: MIT -Homepage: -Repository: -Author: James Halliday (http://substack.net) - -> This software is released under the MIT license: -> -> Permission is hereby granted, free of charge, to any person obtaining a copy of -> this software and associated documentation files (the "Software"), to deal in -> the Software without restriction, including without limitation the rights to -> use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of -> the Software, and to permit persons to whom the Software is furnished to do so, -> subject to the following conditions: -> -> The above copyright notice and this permission notice shall be included in all -> copies or substantial portions of the Software. -> -> THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -> IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS -> FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR -> COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER -> IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -> CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - ----------------------------------------- - -## simple-html-tokenizer@v0.5.11 - -> Simple HTML Tokenizer is a lightweight JavaScript library that can be used to tokenize the kind of HTML normally found in templates. - -License: MIT -Repository: - -> Copyright (c) 2014 Yehuda Katz and contributors -> -> Permission is hereby granted, free of charge, to any person obtaining a copy of -> this software and associated documentation files (the "Software"), to deal in -> the Software without restriction, including without limitation the rights to -> use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies -> of the Software, and to permit persons to whom the Software is furnished to do -> so, subject to the following conditions: -> -> The above copyright notice and this permission notice shall be included in all -> copies or substantial portions of the Software. -> -> THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -> IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -> FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -> AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -> LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -> OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -> SOFTWARE. - ----------------------------------------- - -## smol-toml@v1.7.0 - -> A small, fast, and correct TOML parser/serializer - -License: BSD-3-Clause -Repository: -Author: Cynthia Rey - -> Copyright (c) Squirrel Chat et al., All rights reserved. -> -> Redistribution and use in source and binary forms, with or without -> modification, are permitted provided that the following conditions are met: -> -> 1. Redistributions of source code must retain the above copyright notice, this -> list of conditions and the following disclaimer. -> 2. Redistributions in binary form must reproduce the above copyright notice, -> this list of conditions and the following disclaimer in the -> documentation and/or other materials provided with the distribution. -> 3. Neither the name of the copyright holder nor the names of its contributors -> may be used to endorse or promote products derived from this software without -> specific prior written permission. -> -> THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND -> ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED -> WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE -> DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE -> FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL -> DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR -> SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER -> CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, -> OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -> OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - ----------------------------------------- - -## specialist@v2.0.0 - -> A library that helps you write tiny, fast and beautiful CLI apps that can automatically check for updates. - -License: MIT - -> The MIT License (MIT) -> -> Copyright (c) 2021-present Fabio Spampinato -> -> Permission is hereby granted, free of charge, to any person obtaining a -> copy of this software and associated documentation files (the "Software"), -> to deal in the Software without restriction, including without limitation -> the rights to use, copy, modify, merge, publish, distribute, sublicense, -> and/or sell copies of the Software, and to permit persons to whom the -> Software is furnished to do so, subject to the following conditions: -> -> The above copyright notice and this permission notice shall be included in -> all copies or substantial portions of the Software. -> -> THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -> IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -> FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -> AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -> LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING -> FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER -> DEALINGS IN THE SOFTWARE. - ----------------------------------------- - -## state-toggle@v1.0.3 - -> Enter/exit a state - -License: MIT -Author: Titus Wormer (https://wooorm.com) -Contributors: - - Titus Wormer (https://wooorm.com) - -> (The MIT License) -> -> Copyright (c) 2016 Titus Wormer -> -> Permission is hereby granted, free of charge, to any person obtaining -> a copy of this software and associated documentation files (the -> 'Software'), to deal in the Software without restriction, including -> without limitation the rights to use, copy, modify, merge, publish, -> distribute, sublicense, and/or sell copies of the Software, and to -> permit persons to whom the Software is furnished to do so, subject to -> the following conditions: -> -> The above copyright notice and this permission notice shall be -> included in all copies or substantial portions of the Software. -> -> THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND, -> EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -> MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. -> IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY -> CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, -> TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE -> SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - ----------------------------------------- - -## stdin-blocker@v2.0.1 - -> A tiny library for blocking stdin keypresses, except for Ctrl+C. Useful while displaying animations. - -License: MIT - -> The MIT License (MIT) -> -> Copyright (c) 2022-present Fabio Spampinato -> -> Permission is hereby granted, free of charge, to any person obtaining a -> copy of this software and associated documentation files (the "Software"), -> to deal in the Software without restriction, including without limitation -> the rights to use, copy, modify, merge, publish, distribute, sublicense, -> and/or sell copies of the Software, and to permit persons to whom the -> Software is furnished to do so, subject to the following conditions: -> -> The above copyright notice and this permission notice shall be included in -> all copies or substantial portions of the Software. -> -> THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -> IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -> FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -> AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -> LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING -> FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER -> DEALINGS IN THE SOFTWARE. - ----------------------------------------- - -## string-escape-regex@v1.0.1 - -> A tiny function for escaping a string to be used as the source in a regex. - -License: MIT - -> The MIT License (MIT) -> -> Copyright (c) 2022-present Fabio Spampinato -> -> Permission is hereby granted, free of charge, to any person obtaining a -> copy of this software and associated documentation files (the "Software"), -> to deal in the Software without restriction, including without limitation -> the rights to use, copy, modify, merge, publish, distribute, sublicense, -> and/or sell copies of the Software, and to permit persons to whom the -> Software is furnished to do so, subject to the following conditions: -> -> The above copyright notice and this permission notice shall be included in -> all copies or substantial portions of the Software. -> -> THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -> IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -> FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -> AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -> LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING -> FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER -> DEALINGS IN THE SOFTWARE. - ----------------------------------------- - -## strip-ansi@v7.2.0 - -> Strip ANSI escape codes from a string - -License: MIT -Author: Sindre Sorhus (https://sindresorhus.com) - -> MIT License -> -> Copyright (c) Sindre Sorhus (https://sindresorhus.com) -> -> Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: -> -> The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. -> -> THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - ----------------------------------------- - -## stubborn-fs@v2.0.0 - -> Stubborn versions of Node's fs functions that try really hard to do their job. - -License: MIT - -> The MIT License (MIT) -> -> Copyright (c) 2022-present Fabio Spampinato -> -> Permission is hereby granted, free of charge, to any person obtaining a -> copy of this software and associated documentation files (the "Software"), -> to deal in the Software without restriction, including without limitation -> the rights to use, copy, modify, merge, publish, distribute, sublicense, -> and/or sell copies of the Software, and to permit persons to whom the -> Software is furnished to do so, subject to the following conditions: -> -> The above copyright notice and this permission notice shall be included in -> all copies or substantial portions of the Software. -> -> THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -> IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -> FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -> AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -> LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING -> FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER -> DEALINGS IN THE SOFTWARE. - ----------------------------------------- - -## stubborn-utils@v1.0.2 - -> A small collection of utilities for making functions somewhat resilient against errors. - -License: MIT - -> The MIT License (MIT) -> -> Copyright (c) 2025-present Fabio Spampinato -> -> Permission is hereby granted, free of charge, to any person obtaining a -> copy of this software and associated documentation files (the "Software"), -> to deal in the Software without restriction, including without limitation -> the rights to use, copy, modify, merge, publish, distribute, sublicense, -> and/or sell copies of the Software, and to permit persons to whom the -> Software is furnished to do so, subject to the following conditions: -> -> The above copyright notice and this permission notice shall be included in -> all copies or substantial portions of the Software. -> -> THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -> IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -> FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -> AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -> LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING -> FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER -> DEALINGS IN THE SOFTWARE. - ----------------------------------------- - -## tiny-bin@v2.0.1 - -> A library for building tiny and beautiful command line apps. - -License: MIT - -> The MIT License (MIT) -> -> Copyright (c) 2023-present Fabio Spampinato -> -> Permission is hereby granted, free of charge, to any person obtaining a -> copy of this software and associated documentation files (the "Software"), -> to deal in the Software without restriction, including without limitation -> the rights to use, copy, modify, merge, publish, distribute, sublicense, -> and/or sell copies of the Software, and to permit persons to whom the -> Software is furnished to do so, subject to the following conditions: -> -> The above copyright notice and this permission notice shall be included in -> all copies or substantial portions of the Software. -> -> THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -> IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -> FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -> AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -> LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING -> FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER -> DEALINGS IN THE SOFTWARE. - ----------------------------------------- - -## tiny-colors@v2.2.2 - -> A tiny library providing the basic ANSI colors for the terminal. - -License: MIT - -> The MIT License (MIT) -> -> Copyright (c) 2022-present Fabio Spampinato -> -> Permission is hereby granted, free of charge, to any person obtaining a -> copy of this software and associated documentation files (the "Software"), -> to deal in the Software without restriction, including without limitation -> the rights to use, copy, modify, merge, publish, distribute, sublicense, -> and/or sell copies of the Software, and to permit persons to whom the -> Software is furnished to do so, subject to the following conditions: -> -> The above copyright notice and this permission notice shall be included in -> all copies or substantial portions of the Software. -> -> THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -> IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -> FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -> AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -> LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING -> FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER -> DEALINGS IN THE SOFTWARE. - ----------------------------------------- - -## tiny-cursor@v2.0.1 - -> A tiny library for hiding and showing the cursor in the terminal. - -License: MIT - -> The MIT License (MIT) -> -> Copyright (c) 2022-present Fabio Spampinato -> -> Permission is hereby granted, free of charge, to any person obtaining a -> copy of this software and associated documentation files (the "Software"), -> to deal in the Software without restriction, including without limitation -> the rights to use, copy, modify, merge, publish, distribute, sublicense, -> and/or sell copies of the Software, and to permit persons to whom the -> Software is furnished to do so, subject to the following conditions: -> -> The above copyright notice and this permission notice shall be included in -> all copies or substantial portions of the Software. -> -> THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -> IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -> FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -> AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -> LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING -> FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER -> DEALINGS IN THE SOFTWARE. - ----------------------------------------- - -## tiny-editorconfig@v1.0.2 - -> A tiny isomorphic parser and resolver for EditorConfig. - -License: MIT - -> The MIT License (MIT) -> -> Copyright (c) 2023-present Fabio Spampinato -> -> Permission is hereby granted, free of charge, to any person obtaining a -> copy of this software and associated documentation files (the "Software"), -> to deal in the Software without restriction, including without limitation -> the rights to use, copy, modify, merge, publish, distribute, sublicense, -> and/or sell copies of the Software, and to permit persons to whom the -> Software is furnished to do so, subject to the following conditions: -> -> The above copyright notice and this permission notice shall be included in -> all copies or substantial portions of the Software. -> -> THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -> IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -> FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -> AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -> LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING -> FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER -> DEALINGS IN THE SOFTWARE. - ----------------------------------------- - -## tiny-levenshtein@v1.1.0 - -> A tiny implementation of the Levenshtein edit distance algorithm. - -License: MIT - -> The MIT License (MIT) -> -> Copyright (c) 2022-present Fabio Spampinato -> -> Permission is hereby granted, free of charge, to any person obtaining a -> copy of this software and associated documentation files (the "Software"), -> to deal in the Software without restriction, including without limitation -> the rights to use, copy, modify, merge, publish, distribute, sublicense, -> and/or sell copies of the Software, and to permit persons to whom the -> Software is furnished to do so, subject to the following conditions: -> -> The above copyright notice and this permission notice shall be included in -> all copies or substantial portions of the Software. -> -> THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -> IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -> FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -> AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -> LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING -> FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER -> DEALINGS IN THE SOFTWARE. - ----------------------------------------- - -## tiny-parse-argv@v2.8.2 - -> A tiny function for parsing process.argv, a modern rewrite of minimist. - -License: MIT - -> The MIT License (MIT) -> -> Copyright (c) 2022-present Fabio Spampinato -> -> Permission is hereby granted, free of charge, to any person obtaining a -> copy of this software and associated documentation files (the "Software"), -> to deal in the Software without restriction, including without limitation -> the rights to use, copy, modify, merge, publish, distribute, sublicense, -> and/or sell copies of the Software, and to permit persons to whom the -> Software is furnished to do so, subject to the following conditions: -> -> The above copyright notice and this permission notice shall be included in -> all copies or substantial portions of the Software. -> -> THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -> IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -> FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -> AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -> LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING -> FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER -> DEALINGS IN THE SOFTWARE. - ----------------------------------------- - -## tiny-readdir@v2.7.4 - -> A simple promisified recursive readdir function. - -License: MIT - -> The MIT License (MIT) -> -> Copyright (c) 2020-present Fabio Spampinato -> -> Permission is hereby granted, free of charge, to any person obtaining a -> copy of this software and associated documentation files (the "Software"), -> to deal in the Software without restriction, including without limitation -> the rights to use, copy, modify, merge, publish, distribute, sublicense, -> and/or sell copies of the Software, and to permit persons to whom the -> Software is furnished to do so, subject to the following conditions: -> -> The above copyright notice and this permission notice shall be included in -> all copies or substantial portions of the Software. -> -> THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -> IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -> FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -> AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -> LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING -> FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER -> DEALINGS IN THE SOFTWARE. - ----------------------------------------- - -## tiny-readdir-glob@v1.23.2 - -> A simple promisified recursive readdir function, with support for globs. - - -> The MIT License (MIT) -> -> Copyright (c) 2023-present Fabio Spampinato -> -> Permission is hereby granted, free of charge, to any person obtaining a -> copy of this software and associated documentation files (the "Software"), -> to deal in the Software without restriction, including without limitation -> the rights to use, copy, modify, merge, publish, distribute, sublicense, -> and/or sell copies of the Software, and to permit persons to whom the -> Software is furnished to do so, subject to the following conditions: -> -> The above copyright notice and this permission notice shall be included in -> all copies or substantial portions of the Software. -> -> THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -> IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -> FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -> AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -> LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING -> FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER -> DEALINGS IN THE SOFTWARE. - ----------------------------------------- - -## tiny-spinner@v2.0.5 - -> A simple, yet beautiful, CLI spinner. - -License: MIT - -> The MIT License (MIT) -> -> Copyright (c) 2022-present Fabio Spampinato -> -> Permission is hereby granted, free of charge, to any person obtaining a -> copy of this software and associated documentation files (the "Software"), -> to deal in the Software without restriction, including without limitation -> the rights to use, copy, modify, merge, publish, distribute, sublicense, -> and/or sell copies of the Software, and to permit persons to whom the -> Software is furnished to do so, subject to the following conditions: -> -> The above copyright notice and this permission notice shall be included in -> all copies or substantial portions of the Software. -> -> THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -> IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -> FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -> AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -> LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING -> FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER -> DEALINGS IN THE SOFTWARE. - ----------------------------------------- - -## tiny-truncate@v1.0.5 - -> A tiny function for truncating a string which may containg ANSI escapes, with automatic terminal width detection. - -License: MIT - -> The MIT License (MIT) -> -> Copyright (c) 2022-present Fabio Spampinato -> -> Permission is hereby granted, free of charge, to any person obtaining a -> copy of this software and associated documentation files (the "Software"), -> to deal in the Software without restriction, including without limitation -> the rights to use, copy, modify, merge, publish, distribute, sublicense, -> and/or sell copies of the Software, and to permit persons to whom the -> Software is furnished to do so, subject to the following conditions: -> -> The above copyright notice and this permission notice shall be included in -> all copies or substantial portions of the Software. -> -> THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -> IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -> FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -> AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -> LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING -> FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER -> DEALINGS IN THE SOFTWARE. - ----------------------------------------- - -## tiny-updater@v3.7.0 - -> A small update notifier for NPM packages, useful for CLI apps. - -License: MIT - -> The MIT License (MIT) -> -> Copyright (c) 2021-present Fabio Spampinato -> -> Permission is hereby granted, free of charge, to any person obtaining a -> copy of this software and associated documentation files (the "Software"), -> to deal in the Software without restriction, including without limitation -> the rights to use, copy, modify, merge, publish, distribute, sublicense, -> and/or sell copies of the Software, and to permit persons to whom the -> Software is furnished to do so, subject to the following conditions: -> -> The above copyright notice and this permission notice shall be included in -> all copies or substantial portions of the Software. -> -> THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -> IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -> FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -> AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -> LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING -> FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER -> DEALINGS IN THE SOFTWARE. - ----------------------------------------- - -## to-fast-properties@v4.0.0 - -> Force V8 to use fast properties for an object - -License: MIT -Author: Sindre Sorhus (https:/sindresorhus.com) - -> MIT License -> -> Copyright (c) Petka Antonov -> Benjamin Gruenbaum -> John-David Dalton -> Sindre Sorhus -> -> Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: -> -> The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. -> -> THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - ----------------------------------------- - -## to-regex-range@v5.0.1 - -> Pass two numbers, get a regex-compatible source string for matching ranges. Validated against more than 2.78 million test assertions. - -License: MIT -Homepage: -Author: Jon Schlinkert (https://github.com/jonschlinkert) -Contributors: - - Jon Schlinkert (http://twitter.com/jonschlinkert) - - Rouven Weßling (www.rouvenwessling.de) - -> The MIT License (MIT) -> -> Copyright (c) 2015-present, Jon Schlinkert. -> -> Permission is hereby granted, free of charge, to any person obtaining a copy -> of this software and associated documentation files (the "Software"), to deal -> in the Software without restriction, including without limitation the rights -> to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -> copies of the Software, and to permit persons to whom the Software is -> furnished to do so, subject to the following conditions: -> -> The above copyright notice and this permission notice shall be included in -> all copies or substantial portions of the Software. -> -> THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -> IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -> FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -> AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -> LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -> OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -> THE SOFTWARE. - ----------------------------------------- - -## trim@v1.0.1 - -> Trim string whitespace - -License: MIT -Repository: -Author: TJ Holowaychuk - ----------------------------------------- - -## trim-newlines@v5.0.0 - -> Trim newlines from the start and/or end of a string - -License: MIT -Author: Sindre Sorhus (https://sindresorhus.com) - -> MIT License -> -> Copyright (c) Sindre Sorhus (https://sindresorhus.com) -> -> Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: -> -> The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. -> -> THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - ----------------------------------------- - -## trim-trailing-lines@v1.1.4 - -> Remove final line feeds from a string - -License: MIT -Author: Titus Wormer (https://wooorm.com) -Contributors: - - Titus Wormer (https://wooorm.com) - -> (The MIT License) -> -> Copyright (c) 2015 Titus Wormer -> -> Permission is hereby granted, free of charge, to any person obtaining -> a copy of this software and associated documentation files (the -> 'Software'), to deal in the Software without restriction, including -> without limitation the rights to use, copy, modify, merge, publish, -> distribute, sublicense, and/or sell copies of the Software, and to -> permit persons to whom the Software is furnished to do so, subject to -> the following conditions: -> -> The above copyright notice and this permission notice shall be -> included in all copies or substantial portions of the Software. -> -> THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND, -> EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -> MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. -> IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY -> CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, -> TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE -> SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - ----------------------------------------- - -## trough@v1.0.5 - -> Middleware: a channel used to convey a liquid - -License: MIT -Author: Titus Wormer (https://wooorm.com) -Contributors: - - Titus Wormer (https://wooorm.com) - -> (The MIT License) -> -> Copyright (c) 2016 Titus Wormer -> -> Permission is hereby granted, free of charge, to any person obtaining a copy -> of this software and associated documentation files (the "Software"), to deal -> in the Software without restriction, including without limitation the rights -> to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -> copies of the Software, and to permit persons to whom the Software is -> furnished to do so, subject to the following conditions: -> -> The above copyright notice and this permission notice shall be included in -> all copies or substantial portions of the Software. -> -> THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -> IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -> FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -> AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -> LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -> OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -> THE SOFTWARE. - ----------------------------------------- - -## ts-api-utils@v2.5.0 - -> Utility functions for working with TypeScript's API. Successor to the wonderful tsutils. 🛠️️ - -License: MIT -Repository: -Author: JoshuaKGoldberg - -> # MIT License -> -> Permission is hereby granted, free of charge, to any person obtaining -> a copy of this software and associated documentation files (the -> 'Software'), to deal in the Software without restriction, including -> without limitation the rights to use, copy, modify, merge, publish, -> distribute, sublicense, and/or sell copies of the Software, and to -> permit persons to whom the Software is furnished to do so, subject to -> the following conditions: -> -> The above copyright notice and this permission notice shall be -> included in all copies or substantial portions of the Software. -> -> THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND, -> EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -> MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. -> IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY -> CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, -> TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE -> SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - ----------------------------------------- - -## typescript@v6.0.3 - -> TypeScript is a language for application scale JavaScript development - -License: Apache-2.0 -Homepage: -Repository: -Author: Microsoft Corp. - -> Apache License -> -> Version 2.0, January 2004 -> -> http://www.apache.org/licenses/ -> -> TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION -> -> 1. Definitions. -> -> "License" shall mean the terms and conditions for use, reproduction, and distribution as defined by Sections 1 through 9 of this document. -> -> "Licensor" shall mean the copyright owner or entity authorized by the copyright owner that is granting the License. -> -> "Legal Entity" shall mean the union of the acting entity and all other entities that control, are controlled by, or are under common control with that entity. For the purposes of this definition, "control" means (i) the power, direct or indirect, to cause the direction or management of such entity, whether by contract or otherwise, or (ii) ownership of fifty percent (50%) or more of the outstanding shares, or (iii) beneficial ownership of such entity. -> -> "You" (or "Your") shall mean an individual or Legal Entity exercising permissions granted by this License. -> -> "Source" form shall mean the preferred form for making modifications, including but not limited to software source code, documentation source, and configuration files. -> -> "Object" form shall mean any form resulting from mechanical transformation or translation of a Source form, including but not limited to compiled object code, generated documentation, and conversions to other media types. -> -> "Work" shall mean the work of authorship, whether in Source or Object form, made available under the License, as indicated by a copyright notice that is included in or attached to the work (an example is provided in the Appendix below). -> -> "Derivative Works" shall mean any work, whether in Source or Object form, that is based on (or derived from) the Work and for which the editorial revisions, annotations, elaborations, or other modifications represent, as a whole, an original work of authorship. For the purposes of this License, Derivative Works shall not include works that remain separable from, or merely link (or bind by name) to the interfaces of, the Work and Derivative Works thereof. -> -> "Contribution" shall mean any work of authorship, including the original version of the Work and any modifications or additions to that Work or Derivative Works thereof, that is intentionally submitted to Licensor for inclusion in the Work by the copyright owner or by an individual or Legal Entity authorized to submit on behalf of the copyright owner. For the purposes of this definition, "submitted" means any form of electronic, verbal, or written communication sent to the Licensor or its representatives, including but not limited to communication on electronic mailing lists, source code control systems, and issue tracking systems that are managed by, or on behalf of, the Licensor for the purpose of discussing and improving the Work, but excluding communication that is conspicuously marked or otherwise designated in writing by the copyright owner as "Not a Contribution." -> -> "Contributor" shall mean Licensor and any individual or Legal Entity on behalf of whom a Contribution has been received by Licensor and subsequently incorporated within the Work. -> -> 2. Grant of Copyright License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable copyright license to reproduce, prepare Derivative Works of, publicly display, publicly perform, sublicense, and distribute the Work and such Derivative Works in Source or Object form. -> -> 3. Grant of Patent License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable (except as stated in this section) patent license to make, have made, use, offer to sell, sell, import, and otherwise transfer the Work, where such license applies only to those patent claims licensable by such Contributor that are necessarily infringed by their Contribution(s) alone or by combination of their Contribution(s) with the Work to which such Contribution(s) was submitted. If You institute patent litigation against any entity (including a cross-claim or counterclaim in a lawsuit) alleging that the Work or a Contribution incorporated within the Work constitutes direct or contributory patent infringement, then any patent licenses granted to You under this License for that Work shall terminate as of the date such litigation is filed. -> -> 4. Redistribution. You may reproduce and distribute copies of the Work or Derivative Works thereof in any medium, with or without modifications, and in Source or Object form, provided that You meet the following conditions: -> -> You must give any other recipients of the Work or Derivative Works a copy of this License; and -> -> You must cause any modified files to carry prominent notices stating that You changed the files; and -> -> You must retain, in the Source form of any Derivative Works that You distribute, all copyright, patent, trademark, and attribution notices from the Source form of the Work, excluding those notices that do not pertain to any part of the Derivative Works; and -> -> If the Work includes a "NOTICE" text file as part of its distribution, then any Derivative Works that You distribute must include a readable copy of the attribution notices contained within such NOTICE file, excluding those notices that do not pertain to any part of the Derivative Works, in at least one of the following places: within a NOTICE text file distributed as part of the Derivative Works; within the Source form or documentation, if provided along with the Derivative Works; or, within a display generated by the Derivative Works, if and wherever such third-party notices normally appear. The contents of the NOTICE file are for informational purposes only and do not modify the License. You may add Your own attribution notices within Derivative Works that You distribute, alongside or as an addendum to the NOTICE text from the Work, provided that such additional attribution notices cannot be construed as modifying the License. You may add Your own copyright statement to Your modifications and may provide additional or different license terms and conditions for use, reproduction, or distribution of Your modifications, or for any such Derivative Works as a whole, provided Your use, reproduction, and distribution of the Work otherwise complies with the conditions stated in this License. -> -> 5. Submission of Contributions. Unless You explicitly state otherwise, any Contribution intentionally submitted for inclusion in the Work by You to the Licensor shall be under the terms and conditions of this License, without any additional terms or conditions. Notwithstanding the above, nothing herein shall supersede or modify the terms of any separate license agreement you may have executed with Licensor regarding such Contributions. -> -> 6. Trademarks. This License does not grant permission to use the trade names, trademarks, service marks, or product names of the Licensor, except as required for reasonable and customary use in describing the origin of the Work and reproducing the content of the NOTICE file. -> -> 7. Disclaimer of Warranty. Unless required by applicable law or agreed to in writing, Licensor provides the Work (and each Contributor provides its Contributions) on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied, including, without limitation, any warranties or conditions of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A PARTICULAR PURPOSE. You are solely responsible for determining the appropriateness of using or redistributing the Work and assume any risks associated with Your exercise of permissions under this License. -> -> 8. Limitation of Liability. In no event and under no legal theory, whether in tort (including negligence), contract, or otherwise, unless required by applicable law (such as deliberate and grossly negligent acts) or agreed to in writing, shall any Contributor be liable to You for damages, including any direct, indirect, special, incidental, or consequential damages of any character arising as a result of this License or out of the use or inability to use the Work (including but not limited to damages for loss of goodwill, work stoppage, computer failure or malfunction, or any and all other commercial damages or losses), even if such Contributor has been advised of the possibility of such damages. -> -> 9. Accepting Warranty or Additional Liability. While redistributing the Work or Derivative Works thereof, You may choose to offer, and charge a fee for, acceptance of support, warranty, indemnity, or other liability obligations and/or rights consistent with this License. However, in accepting such obligations, You may act only on Your own behalf and on Your sole responsibility, not on behalf of any other Contributor, and only if You agree to indemnify, defend, and hold each Contributor harmless for any liability incurred by, or claims asserted against, such Contributor by reason of your accepting any such warranty or additional liability. -> -> END OF TERMS AND CONDITIONS - ----------------------------------------- - -## unherit@v1.1.3 - -> Clone a constructor without affecting the super-class - -License: MIT -Author: Titus Wormer (https://wooorm.com) -Contributors: - - Titus Wormer (https://wooorm.com) - -> (The MIT License) -> -> Copyright (c) 2015 Titus Wormer -> -> Permission is hereby granted, free of charge, to any person obtaining a copy -> of this software and associated documentation files (the "Software"), to deal -> in the Software without restriction, including without limitation the rights -> to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -> copies of the Software, and to permit persons to whom the Software is -> furnished to do so, subject to the following conditions: -> -> The above copyright notice and this permission notice shall be included in -> all copies or substantial portions of the Software. -> -> THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -> IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -> FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -> AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -> LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -> OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -> THE SOFTWARE. - ----------------------------------------- - -## unified@v9.2.2 - -> Interface for parsing, inspecting, transforming, and serializing content through syntax trees - -License: MIT -Homepage: -Author: Titus Wormer (https://wooorm.com) -Contributors: - - Titus Wormer (https://wooorm.com) - - Junyoung Choi - - Hernan Rajchert - - Christian Murphy - - Vse Mozhet Byt - - Richard Littauer - -> (The MIT License) -> -> Copyright (c) 2015 Titus Wormer -> -> Permission is hereby granted, free of charge, to any person obtaining a copy -> of this software and associated documentation files (the "Software"), to deal -> in the Software without restriction, including without limitation the rights -> to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -> copies of the Software, and to permit persons to whom the Software is -> furnished to do so, subject to the following conditions: -> -> The above copyright notice and this permission notice shall be included in -> all copies or substantial portions of the Software. -> -> THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -> IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -> FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -> AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -> LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -> OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -> THE SOFTWARE. - ----------------------------------------- - -## uniq@v1.0.1 - -> Removes duplicates from a sorted array in place - -License: MIT -Repository: -Author: Mikola Lysenko - -> The MIT License (MIT) -> -> Copyright (c) 2013 Mikola Lysenko -> -> Permission is hereby granted, free of charge, to any person obtaining a copy -> of this software and associated documentation files (the "Software"), to deal -> in the Software without restriction, including without limitation the rights -> to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -> copies of the Software, and to permit persons to whom the Software is -> furnished to do so, subject to the following conditions: -> -> The above copyright notice and this permission notice shall be included in -> all copies or substantial portions of the Software. -> -> THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -> IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -> FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -> AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -> LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -> OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -> THE SOFTWARE. - ----------------------------------------- - -## unist-util-is@v6.0.1 - -> unist utility to check if a node passes a test - -License: MIT -Author: Titus Wormer (https://wooorm.com) -Contributors: - - Titus Wormer (https://wooorm.com) - - Christian Murphy - - Lucas Brandstaetter (https://github.com/Roang-zero1) - -> (The MIT license) -> -> Copyright (c) 2015 Titus Wormer -> -> Permission is hereby granted, free of charge, to any person obtaining -> a copy of this software and associated documentation files (the -> 'Software'), to deal in the Software without restriction, including -> without limitation the rights to use, copy, modify, merge, publish, -> distribute, sublicense, and/or sell copies of the Software, and to -> permit persons to whom the Software is furnished to do so, subject to -> the following conditions: -> -> The above copyright notice and this permission notice shall be -> included in all copies or substantial portions of the Software. -> -> THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND, -> EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -> MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. -> IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY -> CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, -> TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE -> SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - ----------------------------------------- - -## unist-util-remove-position@v2.0.1 - -> unist utility to remove positions from a tree - -License: MIT -Author: Titus Wormer (https://wooorm.com) -Contributors: - - Titus Wormer (https://wooorm.com) - -> (The MIT License) -> -> Copyright (c) 2016 Titus Wormer -> -> Permission is hereby granted, free of charge, to any person obtaining -> a copy of this software and associated documentation files (the -> 'Software'), to deal in the Software without restriction, including -> without limitation the rights to use, copy, modify, merge, publish, -> distribute, sublicense, and/or sell copies of the Software, and to -> permit persons to whom the Software is furnished to do so, subject to -> the following conditions: -> -> The above copyright notice and this permission notice shall be -> included in all copies or substantial portions of the Software. -> -> THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND, -> EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -> MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. -> IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY -> CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, -> TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE -> SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - ----------------------------------------- - -## unist-util-stringify-position@v4.0.0 - -> unist utility to serialize a node, position, or point as a human readable location - -License: MIT -Author: Titus Wormer (https://wooorm.com) -Contributors: - - Titus Wormer (https://wooorm.com) - -> (The MIT License) -> -> Copyright (c) 2016 Titus Wormer -> -> Permission is hereby granted, free of charge, to any person obtaining -> a copy of this software and associated documentation files (the -> 'Software'), to deal in the Software without restriction, including -> without limitation the rights to use, copy, modify, merge, publish, -> distribute, sublicense, and/or sell copies of the Software, and to -> permit persons to whom the Software is furnished to do so, subject to -> the following conditions: -> -> The above copyright notice and this permission notice shall be -> included in all copies or substantial portions of the Software. -> -> THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND, -> EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -> MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. -> IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY -> CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, -> TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE -> SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - ----------------------------------------- - -## unist-util-visit@v5.1.0 - -> unist utility to visit nodes - -License: MIT -Author: Titus Wormer (https://wooorm.com) -Contributors: - - Titus Wormer (https://wooorm.com) - - Eugene Sharygin - - Richard Gibson - -> (The MIT License) -> -> Copyright (c) 2015 Titus Wormer -> -> Permission is hereby granted, free of charge, to any person obtaining -> a copy of this software and associated documentation files (the -> 'Software'), to deal in the Software without restriction, including -> without limitation the rights to use, copy, modify, merge, publish, -> distribute, sublicense, and/or sell copies of the Software, and to -> permit persons to whom the Software is furnished to do so, subject to -> the following conditions: -> -> The above copyright notice and this permission notice shall be -> included in all copies or substantial portions of the Software. -> -> THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND, -> EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -> MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. -> IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY -> CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, -> TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE -> SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - ----------------------------------------- - -## unist-util-visit-parents@v6.0.2 - -> unist utility to recursively walk over nodes, with ancestral information - -License: MIT -Author: Titus Wormer (https://wooorm.com) -Contributors: - - Titus Wormer (https://wooorm.com) - -> (The MIT License) -> -> Copyright (c) 2016 Titus Wormer -> -> Permission is hereby granted, free of charge, to any person obtaining -> a copy of this software and associated documentation files (the -> 'Software'), to deal in the Software without restriction, including -> without limitation the rights to use, copy, modify, merge, publish, -> distribute, sublicense, and/or sell copies of the Software, and to -> permit persons to whom the Software is furnished to do so, subject to -> the following conditions: -> -> The above copyright notice and this permission notice shall be -> included in all copies or substantial portions of the Software. -> -> THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND, -> EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -> MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. -> IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY -> CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, -> TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE -> SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - ----------------------------------------- - -## url-or-path@v2.7.1 - -> Convert between file URL and path. - -License: MIT -Homepage: -Author: fisker Cheung (https://www.fiskercheung.com/) - -> MIT License -> -> Copyright (c) fisker Cheung (https://www.fiskercheung.com/) -> -> Permission is hereby granted, free of charge, to any person obtaining a copy -> of this software and associated documentation files (the "Software"), to deal -> in the Software without restriction, including without limitation the rights -> to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -> copies of the Software, and to permit persons to whom the Software is -> furnished to do so, subject to the following conditions: -> -> The above copyright notice and this permission notice shall be included in all -> copies or substantial portions of the Software. -> -> THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -> IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -> FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -> AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -> LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -> OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -> SOFTWARE. - ----------------------------------------- - -## vfile@v4.2.1 - -> Virtual file format for text processing - -License: MIT -Author: Titus Wormer (https://wooorm.com) -Contributors: - - Titus Wormer (https://wooorm.com) - - Brendan Abbott - - Denys Dovhan - - Kyle Mathews - - Shinnosuke Watanabe - - Sindre Sorhus - -> (The MIT License) -> -> Copyright (c) 2015 Titus Wormer -> -> Permission is hereby granted, free of charge, to any person obtaining a copy -> of this software and associated documentation files (the "Software"), to deal -> in the Software without restriction, including without limitation the rights -> to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -> copies of the Software, and to permit persons to whom the Software is -> furnished to do so, subject to the following conditions: -> -> The above copyright notice and this permission notice shall be included in -> all copies or substantial portions of the Software. -> -> THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -> IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -> FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -> AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -> LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -> OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -> THE SOFTWARE. - ----------------------------------------- - -## vfile-location@v3.2.0 - -> vfile utility to convert between positional (line and column-based) and offset (range-based) locations - -License: MIT -Author: Titus Wormer (https://wooorm.com) -Contributors: - - Titus Wormer (https://wooorm.com) - - Christian Murphy - -> (The MIT License) -> -> Copyright (c) 2016 Titus Wormer -> -> Permission is hereby granted, free of charge, to any person obtaining -> a copy of this software and associated documentation files (the -> 'Software'), to deal in the Software without restriction, including -> without limitation the rights to use, copy, modify, merge, publish, -> distribute, sublicense, and/or sell copies of the Software, and to -> permit persons to whom the Software is furnished to do so, subject to -> the following conditions: -> -> The above copyright notice and this permission notice shall be -> included in all copies or substantial portions of the Software. -> -> THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND, -> EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -> MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. -> IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY -> CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, -> TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE -> SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - ----------------------------------------- - -## vfile-message@v2.0.4 - -> vfile utility to create a virtual message - -License: MIT -Author: Titus Wormer (https://wooorm.com) -Contributors: - - Titus Wormer (https://wooorm.com) - -> (The MIT License) -> -> Copyright (c) 2017 Titus Wormer -> -> Permission is hereby granted, free of charge, to any person obtaining -> a copy of this software and associated documentation files (the -> 'Software'), to deal in the Software without restriction, including -> without limitation the rights to use, copy, modify, merge, publish, -> distribute, sublicense, and/or sell copies of the Software, and to -> permit persons to whom the Software is furnished to do so, subject to -> the following conditions: -> -> The above copyright notice and this permission notice shall be -> included in all copies or substantial portions of the Software. -> -> THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND, -> EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -> MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. -> IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY -> CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, -> TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE -> SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - ----------------------------------------- - -## vnopts@v2.0.5 - -> validate and normalize options - -License: MIT -Homepage: -Author: Ika (https://github.com/ikatyang) - -> MIT License -> -> Copyright (c) Ika (https://github.com/ikatyang) -> -> Permission is hereby granted, free of charge, to any person obtaining a copy -> of this software and associated documentation files (the "Software"), to deal -> in the Software without restriction, including without limitation the rights -> to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -> copies of the Software, and to permit persons to whom the Software is -> furnished to do so, subject to the following conditions: -> -> The above copyright notice and this permission notice shall be included in all -> copies or substantial portions of the Software. -> -> THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -> IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -> FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -> AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -> LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -> OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -> SOFTWARE. - ----------------------------------------- - -## wcwidth.js@v2.0.0 - -> a javascript porting of C's wcwidth() - -License: MIT -Homepage: -Repository: -Author: Woong Jun (http://code.woong.org/) -Contributors: - - Tim Oxley (http://campjs.com/) - -> wcwidth.js: a javascript portng of C's wcwidth() -> ================================================ -> -> Copyright (C) 2012-2014 by Woong Jun and Tim Oxley. -> -> This package is a javascript porting of `wcwidth()` implementation -> [by Markus Kuhn](http://www.cl.cam.ac.uk/~mgk25/ucs/wcwidth.c). -> -> Permission is hereby granted, free of charge, to any person obtaining a copy of -> this software and associated documentation files (the "Software"), to deal in -> the Software without restriction, including without limitation the rights to -> use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies -> of the Software, and to permit persons to whom the Software is furnished to do -> so, subject to the following conditions: -> -> The above copyright notice and this permission notice shall be included in all -> copies or substantial portions of the Software. -> -> -> THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, -> INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND -> FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR -> OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -> EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT -> OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS -> INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN -> CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING -> IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY -> OF SUCH DAMAGE. - ----------------------------------------- - -## webworker-shim@v1.1.4 - -> A tiny shim for WebWorker (data URI only) that works in Node. - -License: MIT - -> The MIT License (MIT) -> -> Copyright (c) 2022-present Fabio Spampinato -> -> Permission is hereby granted, free of charge, to any person obtaining a -> copy of this software and associated documentation files (the "Software"), -> to deal in the Software without restriction, including without limitation -> the rights to use, copy, modify, merge, publish, distribute, sublicense, -> and/or sell copies of the Software, and to permit persons to whom the -> Software is furnished to do so, subject to the following conditions: -> -> The above copyright notice and this permission notice shall be included in -> all copies or substantial portions of the Software. -> -> THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -> IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -> FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -> AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -> LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING -> FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER -> DEALINGS IN THE SOFTWARE. - ----------------------------------------- - -## when-exit@v2.1.5 - -> Execute a function right before the process, or the browser's tab, is about to exit. - -License: MIT - -> The MIT License (MIT) -> -> Copyright (c) 2022-present Fabio Spampinato -> -> Permission is hereby granted, free of charge, to any person obtaining a -> copy of this software and associated documentation files (the "Software"), -> to deal in the Software without restriction, including without limitation -> the rights to use, copy, modify, merge, publish, distribute, sublicense, -> and/or sell copies of the Software, and to permit persons to whom the -> Software is furnished to do so, subject to the following conditions: -> -> The above copyright notice and this permission notice shall be included in -> all copies or substantial portions of the Software. -> -> THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -> IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -> FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -> AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -> LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING -> FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER -> DEALINGS IN THE SOFTWARE. - ----------------------------------------- - -## worktank@v3.0.2 - -> A simple isomorphic library for executing functions inside WebWorkers or Node Threads pools. - -License: MIT - -> The MIT License (MIT) -> -> Copyright (c) 2021-present Fabio Spampinato -> -> Permission is hereby granted, free of charge, to any person obtaining a -> copy of this software and associated documentation files (the "Software"), -> to deal in the Software without restriction, including without limitation -> the rights to use, copy, modify, merge, publish, distribute, sublicense, -> and/or sell copies of the Software, and to permit persons to whom the -> Software is furnished to do so, subject to the following conditions: -> -> The above copyright notice and this permission notice shall be included in -> all copies or substantial portions of the Software. -> -> THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -> IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -> FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -> AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -> LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING -> FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER -> DEALINGS IN THE SOFTWARE. - ----------------------------------------- - -## xtend@v4.0.2 - -> extend like a boss - -License: MIT -Homepage: -Author: Raynos -Contributors: - - Jake Verbaten - - Matt Esch - -> The MIT License (MIT) -> Copyright (c) 2012-2014 Raynos. -> -> Permission is hereby granted, free of charge, to any person obtaining a copy -> of this software and associated documentation files (the "Software"), to deal -> in the Software without restriction, including without limitation the rights -> to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -> copies of the Software, and to permit persons to whom the Software is -> furnished to do so, subject to the following conditions: -> -> The above copyright notice and this permission notice shall be included in -> all copies or substantial portions of the Software. -> -> THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -> IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -> FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -> AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -> LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -> OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -> THE SOFTWARE. - ----------------------------------------- - -## yaml@v2.9.0 - -> JavaScript parser and stringifier for YAML - -License: ISC -Homepage: -Author: Eemeli Aro - -> Copyright Eemeli Aro -> -> Permission to use, copy, modify, and/or distribute this software for any purpose -> with or without fee is hereby granted, provided that the above copyright notice -> and this permission notice appear in all copies. -> -> THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH -> REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND -> FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, -> INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS -> OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER -> TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF -> THIS SOFTWARE. - ----------------------------------------- - -## yaml-unist-parser@v3.2.0 - -> A YAML parser that produces output compatible with unist - -License: MIT -Homepage: -Author: Ika (https://github.com/ikatyang) - -> MIT License -> -> Copyright (c) Ika (https://github.com/ikatyang) -> -> Permission is hereby granted, free of charge, to any person obtaining a copy -> of this software and associated documentation files (the "Software"), to deal -> in the Software without restriction, including without limitation the rights -> to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -> copies of the Software, and to permit persons to whom the Software is -> furnished to do so, subject to the following conditions: -> -> The above copyright notice and this permission notice shall be included in all -> copies or substantial portions of the Software. -> -> THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -> IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -> FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -> AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -> LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -> OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -> SOFTWARE. - ----------------------------------------- - -## zeptomatch@v2.1.0 - -> An absurdly small glob matcher that packs a punch. - -License: MIT - -> The MIT License (MIT) -> -> Copyright (c) 2023-present Fabio Spampinato -> -> Permission is hereby granted, free of charge, to any person obtaining a -> copy of this software and associated documentation files (the "Software"), -> to deal in the Software without restriction, including without limitation -> the rights to use, copy, modify, merge, publish, distribute, sublicense, -> and/or sell copies of the Software, and to permit persons to whom the -> Software is furnished to do so, subject to the following conditions: -> -> The above copyright notice and this permission notice shall be included in -> all copies or substantial portions of the Software. -> -> THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -> IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -> FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -> AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -> LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING -> FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER -> DEALINGS IN THE SOFTWARE. - ----------------------------------------- - -## zeptomatch-escape@v1.0.1 - -> A little utility for escaping globs before passing them to zeptomatch. - -License: MIT - -> The MIT License (MIT) -> -> Copyright (c) 2024-present Fabio Spampinato -> -> Permission is hereby granted, free of charge, to any person obtaining a -> copy of this software and associated documentation files (the "Software"), -> to deal in the Software without restriction, including without limitation -> the rights to use, copy, modify, merge, publish, distribute, sublicense, -> and/or sell copies of the Software, and to permit persons to whom the -> Software is furnished to do so, subject to the following conditions: -> -> The above copyright notice and this permission notice shall be included in -> all copies or substantial portions of the Software. -> -> THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -> IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -> FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -> AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -> LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING -> FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER -> DEALINGS IN THE SOFTWARE. - ----------------------------------------- - -## zeptomatch-explode@v1.0.1 - -> A little utility for exploding a zeptomatch-flavored glob into its dynamic and static parts. - -License: MIT - -> The MIT License (MIT) -> -> Copyright (c) 2024-present Fabio Spampinato -> -> Permission is hereby granted, free of charge, to any person obtaining a -> copy of this software and associated documentation files (the "Software"), -> to deal in the Software without restriction, including without limitation -> the rights to use, copy, modify, merge, publish, distribute, sublicense, -> and/or sell copies of the Software, and to permit persons to whom the -> Software is furnished to do so, subject to the following conditions: -> -> The above copyright notice and this permission notice shall be included in -> all copies or substantial portions of the Software. -> -> THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -> IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -> FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -> AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -> LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING -> FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER -> DEALINGS IN THE SOFTWARE. - ----------------------------------------- - -## zeptomatch-is-static@v1.0.1 - -> A little utility for checking if a glob is fully static. - -License: MIT - -> The MIT License (MIT) -> -> Copyright (c) 2024-present Fabio Spampinato -> -> Permission is hereby granted, free of charge, to any person obtaining a -> copy of this software and associated documentation files (the "Software"), -> to deal in the Software without restriction, including without limitation -> the rights to use, copy, modify, merge, publish, distribute, sublicense, -> and/or sell copies of the Software, and to permit persons to whom the -> Software is furnished to do so, subject to the following conditions: -> -> The above copyright notice and this permission notice shall be included in -> all copies or substantial portions of the Software. -> -> THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -> IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -> FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -> AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -> LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING -> FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER -> DEALINGS IN THE SOFTWARE. - ----------------------------------------- - -## zeptomatch-unescape@v1.0.1 - -> A little utility for removing escape sequences from a glob. - -License: MIT - -> The MIT License (MIT) -> -> Copyright (c) 2024-present Fabio Spampinato -> -> Permission is hereby granted, free of charge, to any person obtaining a -> copy of this software and associated documentation files (the "Software"), -> to deal in the Software without restriction, including without limitation -> the rights to use, copy, modify, merge, publish, distribute, sublicense, -> and/or sell copies of the Software, and to permit persons to whom the -> Software is furnished to do so, subject to the following conditions: -> -> The above copyright notice and this permission notice shall be included in -> all copies or substantial portions of the Software. -> -> THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -> IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -> FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -> AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -> LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING -> FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER -> DEALINGS IN THE SOFTWARE. - ----------------------------------------- - -## zwitch@v2.0.4 - -> Handle values based on a property - -License: MIT -Author: Titus Wormer (https://wooorm.com) -Contributors: - - Titus Wormer (https://wooorm.com) - -> (The MIT License) -> -> Copyright (c) 2016 Titus Wormer -> -> Permission is hereby granted, free of charge, to any person obtaining -> a copy of this software and associated documentation files (the -> 'Software'), to deal in the Software without restriction, including -> without limitation the rights to use, copy, modify, merge, publish, -> distribute, sublicense, and/or sell copies of the Software, and to -> permit persons to whom the Software is furnished to do so, subject to -> the following conditions: -> -> The above copyright notice and this permission notice shall be -> included in all copies or substantial portions of the Software. -> -> THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND, -> EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -> MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. -> IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY -> CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, -> TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE -> SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. diff --git a/node_modules/prettier/bin/prettier.cjs b/node_modules/prettier/bin/prettier.cjs deleted file mode 100644 index dc14797..0000000 --- a/node_modules/prettier/bin/prettier.cjs +++ /dev/null @@ -1,84 +0,0 @@ -#!/usr/bin/env node -"use strict"; -var __getOwnPropNames = Object.getOwnPropertyNames; -var __commonJS = function(cb, mod) { - return function __require() { - try { - return mod || (0, cb[__getOwnPropNames(cb)[0]])((mod = { exports: {} }).exports, mod), mod.exports; - } catch (e) { - throw mod = 0, e; - } - }; -}; - -// node_modules/semver-compare/index.js -var require_semver_compare = __commonJS({ - "node_modules/semver-compare/index.js": function(exports2, module2) { - module2.exports = function cmp(a, b) { - var pa = a.split("."); - var pb = b.split("."); - for (var i = 0; i < 3; i++) { - var na = Number(pa[i]); - var nb = Number(pb[i]); - if (na > nb) return 1; - if (nb > na) return -1; - if (!isNaN(na) && isNaN(nb)) return 1; - if (isNaN(na) && !isNaN(nb)) return -1; - } - return 0; - }; - } -}); - -// node_modules/please-upgrade-node/index.js -var require_please_upgrade_node = __commonJS({ - "node_modules/please-upgrade-node/index.js": function(exports2, module2) { - var semverCompare = require_semver_compare(); - module2.exports = function pleaseUpgradeNode2(pkg, opts) { - var opts = opts || {}; - var requiredVersion = pkg.engines.node.replace(">=", ""); - var currentVersion = process.version.replace("v", ""); - if (semverCompare(currentVersion, requiredVersion) === -1) { - if (opts.message) { - console.error(opts.message(requiredVersion)); - } else { - console.error( - pkg.name + " requires at least version " + requiredVersion + " of Node, please upgrade" - ); - } - if (opts.hasOwnProperty("exitCode")) { - process.exit(opts.exitCode); - } else { - process.exit(1); - } - } - }; - } -}); - -// bin/prettier.cjs -var nodeModule = require("module"); -if (typeof nodeModule.enableCompileCache === "function") { - nodeModule.enableCompileCache(); -} -var pleaseUpgradeNode = require_please_upgrade_node(); -var packageJson = require("../package.json"); -pleaseUpgradeNode(packageJson); -var dynamicImport = new Function("module", "return import(module)"); -var promise; -var index = process.argv.indexOf("--experimental-cli"); -if (process.env.PRETTIER_EXPERIMENTAL_CLI || index !== -1) { - if (index !== -1) { - process.argv.splice(index, 1); - } - promise = dynamicImport("../internal/experimental-cli.mjs").then( - function(cli) { - return cli.__promise; - } - ); -} else { - promise = dynamicImport("../internal/legacy-cli.mjs").then(function runCli(cli) { - return cli.run(); - }); -} -module.exports.__promise = promise; diff --git a/node_modules/prettier/doc.d.ts b/node_modules/prettier/doc.d.ts deleted file mode 100644 index 5011775..0000000 --- a/node_modules/prettier/doc.d.ts +++ /dev/null @@ -1,254 +0,0 @@ -// https://github.com/prettier/prettier/blob/next/src/document/public.js -export namespace builders { - type DocCommand = - | Align - | BreakParent - | Cursor - | Fill - | Group - | IfBreak - | Indent - | IndentIfBreak - | Label - | Line - | LineSuffix - | LineSuffixBoundary - | Trim; - type Doc = string | Doc[] | DocCommand; - - interface Align { - type: "align"; - contents: Doc; - n: number | string | { type: "root" }; - } - - interface BreakParent { - type: "break-parent"; - } - - interface Cursor { - type: "cursor"; - placeholder: symbol; - } - - interface Fill { - type: "fill"; - parts: Doc[]; - } - - interface Group { - type: "group"; - id?: symbol; - contents: Doc; - break: boolean; - expandedStates: Doc[]; - } - - interface HardlineWithoutBreakParent extends Line { - hard: true; - } - - interface IfBreak { - type: "if-break"; - breakContents: Doc; - flatContents: Doc; - } - - interface Indent { - type: "indent"; - contents: Doc; - } - - interface IndentIfBreak { - type: "indent-if-break"; - } - - interface Label { - type: "label"; - label: any; - contents: Doc; - } - - interface Line { - type: "line"; - soft?: boolean | undefined; - hard?: boolean | undefined; - literal?: boolean | undefined; - } - - interface LineSuffix { - type: "line-suffix"; - contents: Doc; - } - - interface LineSuffixBoundary { - type: "line-suffix-boundary"; - } - - interface LiterallineWithoutBreakParent extends Line { - hard: true; - literal: true; - } - - type LiteralLine = [LiterallineWithoutBreakParent, BreakParent]; - - interface Softline extends Line { - soft: true; - } - - type Hardline = [HardlineWithoutBreakParent, BreakParent]; - - interface Trim { - type: "trim"; - } - - interface GroupOptions { - shouldBreak?: boolean | undefined; - id?: symbol | undefined; - } - - function addAlignmentToDoc(doc: Doc, size: number, tabWidth: number): Doc; - - /** @see [align](https://github.com/prettier/prettier/blob/main/commands.md#align) */ - function align(widthOrString: Align["n"], doc: Doc): Align; - - /** @see [breakParent](https://github.com/prettier/prettier/blob/main/commands.md#breakparent) */ - const breakParent: BreakParent; - - /** @see [conditionalGroup](https://github.com/prettier/prettier/blob/main/commands.md#conditionalgroup) */ - function conditionalGroup(alternatives: Doc[], options?: GroupOptions): Group; - - /** @see [dedent](https://github.com/prettier/prettier/blob/main/commands.md#dedent) */ - function dedent(doc: Doc): Align; - - /** @see [dedentToRoot](https://github.com/prettier/prettier/blob/main/commands.md#dedenttoroot) */ - function dedentToRoot(doc: Doc): Align; - - /** @see [fill](https://github.com/prettier/prettier/blob/main/commands.md#fill) */ - function fill(docs: Doc[]): Fill; - - /** @see [group](https://github.com/prettier/prettier/blob/main/commands.md#group) */ - function group(doc: Doc, opts?: GroupOptions): Group; - - /** @see [hardline](https://github.com/prettier/prettier/blob/main/commands.md#hardline) */ - const hardline: Hardline; - - /** @see [hardlineWithoutBreakParent](https://github.com/prettier/prettier/blob/main/commands.md#hardlinewithoutbreakparent-and-literallinewithoutbreakparent) */ - const hardlineWithoutBreakParent: HardlineWithoutBreakParent; - - /** @see [ifBreak](https://github.com/prettier/prettier/blob/main/commands.md#ifbreak) */ - function ifBreak( - ifBreak: Doc, - noBreak?: Doc, - options?: { groupId?: symbol | undefined }, - ): IfBreak; - - /** @see [indent](https://github.com/prettier/prettier/blob/main/commands.md#indent) */ - function indent(doc: Doc): Indent; - - /** @see [indentIfBreak](https://github.com/prettier/prettier/blob/main/commands.md#indentifbreak) */ - function indentIfBreak( - doc: Doc, - opts: { groupId: symbol; negate?: boolean | undefined }, - ): IndentIfBreak; - - /** @see [join](https://github.com/prettier/prettier/blob/main/commands.md#join) */ - function join(sep: Doc, docs: Doc[]): Doc[]; - - /** @see [label](https://github.com/prettier/prettier/blob/main/commands.md#label) */ - function label(label: any | undefined, contents: Doc): Doc; - - /** @see [line](https://github.com/prettier/prettier/blob/main/commands.md#line) */ - const line: Line; - - /** @see [lineSuffix](https://github.com/prettier/prettier/blob/main/commands.md#linesuffix) */ - function lineSuffix(suffix: Doc): LineSuffix; - - /** @see [lineSuffixBoundary](https://github.com/prettier/prettier/blob/main/commands.md#linesuffixboundary) */ - const lineSuffixBoundary: LineSuffixBoundary; - - /** @see [literalline](https://github.com/prettier/prettier/blob/main/commands.md#literalline) */ - const literalline: LiteralLine; - - /** @see [literallineWithoutBreakParent](https://github.com/prettier/prettier/blob/main/commands.md#hardlinewithoutbreakparent-and-literallinewithoutbreakparent) */ - const literallineWithoutBreakParent: LiterallineWithoutBreakParent; - - /** @see [markAsRoot](https://github.com/prettier/prettier/blob/main/commands.md#markasroot) */ - function markAsRoot(doc: Doc): Align; - - /** @see [softline](https://github.com/prettier/prettier/blob/main/commands.md#softline) */ - const softline: Softline; - - /** @see [trim](https://github.com/prettier/prettier/blob/main/commands.md#trim) */ - const trim: Trim; - - /** @see [cursor](https://github.com/prettier/prettier/blob/main/commands.md#cursor) */ - const cursor: Cursor; -} - -export namespace printer { - function printDocToString( - doc: builders.Doc, - options: Options, - ): { - formatted: string; - /** - * This property is a misnomer, and has been since the changes in - * https://github.com/prettier/prettier/pull/15709. - * The region of the document indicated by `cursorNodeStart` and `cursorNodeText` will - * sometimes actually be what lies BETWEEN a pair of leaf nodes in the AST, rather than a node. - */ - cursorNodeStart?: number | undefined; - - /** - * Note that, like cursorNodeStart, this is a misnomer and may actually be the text between two - * leaf nodes in the AST instead of the text of a node. - */ - cursorNodeText?: string | undefined; - }; - interface Options { - /** - * Specify the line length that the printer will wrap on. - * @default 80 - */ - printWidth: number; - /** - * Specify the number of spaces per indentation-level. - * @default 2 - */ - tabWidth: number; - /** - * Indent lines with tabs instead of spaces - * @default false - */ - useTabs?: boolean; - parentParser?: string | undefined; - __embeddedInHtml?: boolean | undefined; - } -} - -export namespace utils { - function willBreak(doc: builders.Doc): boolean; - function traverseDoc( - doc: builders.Doc, - onEnter?: (doc: builders.Doc) => void | boolean, - onExit?: (doc: builders.Doc) => void, - shouldTraverseConditionalGroups?: boolean, - ): void; - function findInDoc( - doc: builders.Doc, - callback: (doc: builders.Doc) => T, - defaultValue: T, - ): T; - function mapDoc( - doc: builders.Doc, - callback: (doc: builders.Doc) => T, - ): T; - function removeLines(doc: builders.Doc): builders.Doc; - function stripTrailingHardline(doc: builders.Doc): builders.Doc; - function replaceEndOfLine( - doc: builders.Doc, - replacement?: builders.Doc, - ): builders.Doc; - function canBreak(doc: builders.Doc): boolean; -} diff --git a/node_modules/prettier/doc.js b/node_modules/prettier/doc.js deleted file mode 100644 index 8ef673b..0000000 --- a/node_modules/prettier/doc.js +++ /dev/null @@ -1,1575 +0,0 @@ -(function (factory) { - function interopModuleDefault() { - var module = factory(); - return module.default || module; - } - - if (typeof exports === "object" && typeof module === "object") { - module.exports = interopModuleDefault(); - } else if (typeof define === "function" && define.amd) { - define(interopModuleDefault); - } else { - var root = - typeof globalThis !== "undefined" - ? globalThis - : typeof global !== "undefined" - ? global - : typeof self !== "undefined" - ? self - : this || {}; - root.doc = interopModuleDefault(); - } -})(function () { - "use strict"; - var __defProp = Object.defineProperty; - var __getOwnPropDesc = Object.getOwnPropertyDescriptor; - var __getOwnPropNames = Object.getOwnPropertyNames; - var __hasOwnProp = Object.prototype.hasOwnProperty; - var __export = (target, all) => { - for (var name in all) - __defProp(target, name, { get: all[name], enumerable: true }); - }; - var __copyProps = (to, from, except, desc) => { - if (from && typeof from === "object" || typeof from === "function") { - for (let key of __getOwnPropNames(from)) - if (!__hasOwnProp.call(to, key) && key !== except) - __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable }); - } - return to; - }; - var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod); - - // src/document/public.js - var public_exports = {}; - __export(public_exports, { - builders: () => builders, - printer: () => printer, - utils: () => utils - }); - - // scripts/build/shims/shared.js - var OPTIONAL_OBJECT = 1; - var createMethodShim = (methodName, getImplementation) => (flags, object, ...arguments_) => { - if (flags | OPTIONAL_OBJECT && (object === void 0 || object === null)) { - return; - } - const implementation = getImplementation.call(object) ?? object[methodName]; - return implementation.apply(object, arguments_); - }; - - // scripts/build/shims/method-at.js - function stringOrArrayAt(index) { - return this[index < 0 ? this.length + index : index]; - } - var at = /* @__PURE__ */ createMethodShim("at", function() { - if (Array.isArray(this) || typeof this === "string") { - return stringOrArrayAt; - } - }); - var method_at_default = at; - - // src/utilities/noop.js - var noop = () => { - }; - var noop_default = noop; - - // src/document/builders/types.js - var DOC_TYPE_STRING = ( - /** @type {const} */ - "string" - ); - var DOC_TYPE_ARRAY = ( - /** @type {const} */ - "array" - ); - var DOC_TYPE_CURSOR = ( - /** @type {const} */ - "cursor" - ); - var DOC_TYPE_INDENT = ( - /** @type {const} */ - "indent" - ); - var DOC_TYPE_ALIGN = ( - /** @type {const} */ - "align" - ); - var DOC_TYPE_TRIM = ( - /** @type {const} */ - "trim" - ); - var DOC_TYPE_GROUP = ( - /** @type {const} */ - "group" - ); - var DOC_TYPE_FILL = ( - /** @type {const} */ - "fill" - ); - var DOC_TYPE_IF_BREAK = ( - /** @type {const} */ - "if-break" - ); - var DOC_TYPE_INDENT_IF_BREAK = ( - /** @type {const} */ - "indent-if-break" - ); - var DOC_TYPE_LINE_SUFFIX = ( - /** @type {const} */ - "line-suffix" - ); - var DOC_TYPE_LINE_SUFFIX_BOUNDARY = ( - /** @type {const} */ - "line-suffix-boundary" - ); - var DOC_TYPE_LINE = ( - /** @type {const} */ - "line" - ); - var DOC_TYPE_LABEL = ( - /** @type {const} */ - "label" - ); - var DOC_TYPE_BREAK_PARENT = ( - /** @type {const} */ - "break-parent" - ); - var VALID_OBJECT_DOC_TYPES = /* @__PURE__ */ new Set([ - DOC_TYPE_CURSOR, - DOC_TYPE_INDENT, - DOC_TYPE_ALIGN, - DOC_TYPE_TRIM, - DOC_TYPE_GROUP, - DOC_TYPE_FILL, - DOC_TYPE_IF_BREAK, - DOC_TYPE_INDENT_IF_BREAK, - DOC_TYPE_LINE_SUFFIX, - DOC_TYPE_LINE_SUFFIX_BOUNDARY, - DOC_TYPE_LINE, - DOC_TYPE_LABEL, - DOC_TYPE_BREAK_PARENT - ]); - - // node_modules/trim-newlines/index.js - function trimNewlinesEnd(string) { - let end = string.length; - while (end > 0 && (string[end - 1] === "\r" || string[end - 1] === "\n")) { - end--; - } - return end < string.length ? string.slice(0, end) : string; - } - - // src/utilities/get-or-insert.js - function getOrInsertComputed(map, key, callback) { - if (!map.has(key)) { - const value = callback(key); - map.set(key, value); - } - return map.get(key); - } - - // src/document/utilities/get-doc-type.js - function getDocType(doc) { - if (typeof doc === "string") { - return DOC_TYPE_STRING; - } - if (Array.isArray(doc)) { - return DOC_TYPE_ARRAY; - } - if (!doc) { - return; - } - const { type } = doc; - if (VALID_OBJECT_DOC_TYPES.has(type)) { - return type; - } - } - var get_doc_type_default = getDocType; - - // src/document/utilities/invalid-doc-error.js - var disjunctionListFormat = (list) => new Intl.ListFormat("en-US", { type: "disjunction" }).format(list); - function getDocErrorMessage(doc) { - const type = doc === null ? "null" : typeof doc; - if (type !== "string" && type !== "object") { - return `Unexpected doc '${type}', -Expected it to be 'string' or 'object'.`; - } - if (get_doc_type_default(doc)) { - throw new Error("doc is valid."); - } - const objectType = Object.prototype.toString.call(doc); - if (objectType !== "[object Object]") { - return `Unexpected doc '${objectType}'.`; - } - const EXPECTED_TYPE_VALUES = disjunctionListFormat( - [...VALID_OBJECT_DOC_TYPES].map((type2) => `'${type2}'`) - ); - return `Unexpected doc.type '${doc.type}'. -Expected it to be ${EXPECTED_TYPE_VALUES}.`; - } - var InvalidDocError = class extends Error { - name = "InvalidDocError"; - constructor(doc) { - super(getDocErrorMessage(doc)); - this.doc = doc; - } - }; - var invalid_doc_error_default = InvalidDocError; - - // src/document/utilities/traverse-doc.js - var traverseDocOnExitStackMarker = {}; - function traverseDoc(doc, onEnter, onExit, shouldTraverseConditionalGroups) { - const docsStack = [doc]; - while (docsStack.length > 0) { - const doc2 = docsStack.pop(); - if (doc2 === traverseDocOnExitStackMarker) { - onExit(docsStack.pop()); - continue; - } - if (onExit) { - docsStack.push(doc2, traverseDocOnExitStackMarker); - } - const docType = get_doc_type_default(doc2); - if (!docType) { - throw new invalid_doc_error_default(doc2); - } - if (onEnter?.(doc2) === false) { - continue; - } - switch (docType) { - case DOC_TYPE_ARRAY: - case DOC_TYPE_FILL: { - const parts = docType === DOC_TYPE_ARRAY ? doc2 : doc2.parts; - for (let ic = parts.length, i = ic - 1; i >= 0; --i) { - docsStack.push(parts[i]); - } - break; - } - case DOC_TYPE_IF_BREAK: - docsStack.push(doc2.flatContents, doc2.breakContents); - break; - case DOC_TYPE_GROUP: - if (shouldTraverseConditionalGroups && doc2.expandedStates) { - for (let ic = doc2.expandedStates.length, i = ic - 1; i >= 0; --i) { - docsStack.push(doc2.expandedStates[i]); - } - } else { - docsStack.push(doc2.contents); - } - break; - case DOC_TYPE_ALIGN: - case DOC_TYPE_INDENT: - case DOC_TYPE_INDENT_IF_BREAK: - case DOC_TYPE_LABEL: - case DOC_TYPE_LINE_SUFFIX: - docsStack.push(doc2.contents); - break; - case DOC_TYPE_STRING: - case DOC_TYPE_CURSOR: - case DOC_TYPE_TRIM: - case DOC_TYPE_LINE_SUFFIX_BOUNDARY: - case DOC_TYPE_LINE: - case DOC_TYPE_BREAK_PARENT: - break; - default: - throw new invalid_doc_error_default(doc2); - } - } - } - var traverse_doc_default = traverseDoc; - - // src/document/utilities/index.js - function mapDoc(doc, cb) { - if (typeof doc === "string") { - return cb(doc); - } - const mapped = /* @__PURE__ */ new Map(); - return rec(doc); - function rec(doc2) { - return getOrInsertComputed(mapped, doc2, process2); - } - function process2(doc2) { - switch (get_doc_type_default(doc2)) { - case DOC_TYPE_ARRAY: - return cb(doc2.map(rec)); - case DOC_TYPE_FILL: - return cb({ - ...doc2, - parts: doc2.parts.map(rec) - }); - case DOC_TYPE_IF_BREAK: - return cb({ - ...doc2, - breakContents: rec(doc2.breakContents), - flatContents: rec(doc2.flatContents) - }); - case DOC_TYPE_GROUP: { - let { - expandedStates, - contents - } = doc2; - if (expandedStates) { - expandedStates = expandedStates.map(rec); - contents = expandedStates[0]; - } else { - contents = rec(contents); - } - return cb({ - ...doc2, - contents, - expandedStates - }); - } - case DOC_TYPE_ALIGN: - case DOC_TYPE_INDENT: - case DOC_TYPE_INDENT_IF_BREAK: - case DOC_TYPE_LABEL: - case DOC_TYPE_LINE_SUFFIX: - return cb({ - ...doc2, - contents: rec(doc2.contents) - }); - case DOC_TYPE_STRING: - case DOC_TYPE_CURSOR: - case DOC_TYPE_TRIM: - case DOC_TYPE_LINE_SUFFIX_BOUNDARY: - case DOC_TYPE_LINE: - case DOC_TYPE_BREAK_PARENT: - return cb(doc2); - default: - throw new invalid_doc_error_default(doc2); - } - } - } - function findInDoc(doc, fn, defaultValue) { - let result = defaultValue; - let shouldSkipFurtherProcessing = false; - function findInDocOnEnterFn(doc2) { - if (shouldSkipFurtherProcessing) { - return false; - } - const maybeResult = fn(doc2); - if (maybeResult !== void 0) { - shouldSkipFurtherProcessing = true; - result = maybeResult; - } - } - traverse_doc_default(doc, findInDocOnEnterFn); - return result; - } - function willBreakFn(doc) { - if (doc.type === DOC_TYPE_GROUP && doc.break) { - return true; - } - if (doc.type === DOC_TYPE_LINE && doc.hard) { - return true; - } - if (doc.type === DOC_TYPE_BREAK_PARENT) { - return true; - } - } - function willBreak(doc) { - return findInDoc(doc, willBreakFn, false); - } - function breakParentGroup(groupStack) { - if (groupStack.length > 0) { - const parentGroup = method_at_default( - /* OPTIONAL_OBJECT: false */ - 0, - groupStack, - -1 - ); - if (!parentGroup.expandedStates && !parentGroup.break) { - parentGroup.break = "propagated"; - } - } - return null; - } - function propagateBreaks(doc) { - const alreadyVisitedSet = /* @__PURE__ */ new Set(); - const groupStack = []; - function propagateBreaksOnEnterFn(doc2) { - if (doc2.type === DOC_TYPE_BREAK_PARENT) { - breakParentGroup(groupStack); - } - if (doc2.type === DOC_TYPE_GROUP) { - groupStack.push(doc2); - if (alreadyVisitedSet.has(doc2)) { - return false; - } - alreadyVisitedSet.add(doc2); - } - } - function propagateBreaksOnExitFn(doc2) { - if (doc2.type === DOC_TYPE_GROUP) { - const group2 = groupStack.pop(); - if (group2.break) { - breakParentGroup(groupStack); - } - } - } - traverse_doc_default( - doc, - propagateBreaksOnEnterFn, - propagateBreaksOnExitFn, - /* shouldTraverseConditionalGroups */ - true - ); - } - function removeLinesFn(doc) { - if (doc.type === DOC_TYPE_LINE && !doc.hard) { - return doc.soft ? "" : " "; - } - if (doc.type === DOC_TYPE_IF_BREAK) { - return doc.flatContents; - } - return doc; - } - function removeLines(doc) { - return mapDoc(doc, removeLinesFn); - } - function stripTrailingHardlineFromParts(parts) { - parts = [...parts]; - while (parts.length >= 2 && method_at_default( - /* OPTIONAL_OBJECT: false */ - 0, - parts, - -2 - ).type === DOC_TYPE_LINE && method_at_default( - /* OPTIONAL_OBJECT: false */ - 0, - parts, - -1 - ).type === DOC_TYPE_BREAK_PARENT) { - parts.length -= 2; - } - if (parts.length > 0) { - const lastPart = stripTrailingHardlineFromDoc(method_at_default( - /* OPTIONAL_OBJECT: false */ - 0, - parts, - -1 - )); - parts[parts.length - 1] = lastPart; - } - return parts; - } - function stripTrailingHardlineFromDoc(doc) { - switch (get_doc_type_default(doc)) { - case DOC_TYPE_INDENT: - case DOC_TYPE_INDENT_IF_BREAK: - case DOC_TYPE_GROUP: - case DOC_TYPE_LINE_SUFFIX: - case DOC_TYPE_LABEL: { - const contents = stripTrailingHardlineFromDoc(doc.contents); - return { - ...doc, - contents - }; - } - case DOC_TYPE_IF_BREAK: - return { - ...doc, - breakContents: stripTrailingHardlineFromDoc(doc.breakContents), - flatContents: stripTrailingHardlineFromDoc(doc.flatContents) - }; - case DOC_TYPE_FILL: - return { - ...doc, - parts: stripTrailingHardlineFromParts(doc.parts) - }; - case DOC_TYPE_ARRAY: - return stripTrailingHardlineFromParts(doc); - case DOC_TYPE_STRING: - return trimNewlinesEnd(doc); - case DOC_TYPE_ALIGN: - case DOC_TYPE_CURSOR: - case DOC_TYPE_TRIM: - case DOC_TYPE_LINE_SUFFIX_BOUNDARY: - case DOC_TYPE_LINE: - case DOC_TYPE_BREAK_PARENT: - break; - default: - throw new invalid_doc_error_default(doc); - } - return doc; - } - function stripTrailingHardline(doc) { - return stripTrailingHardlineFromDoc(cleanDoc(doc)); - } - function cleanDocFn(doc) { - switch (get_doc_type_default(doc)) { - case DOC_TYPE_FILL: { - const { - parts - } = doc; - if (parts.every((part) => part === "")) { - return ""; - } - if (parts.length === 1) { - return parts[0]; - } - break; - } - case DOC_TYPE_GROUP: - if (!doc.contents && !doc.id && !doc.break && !doc.expandedStates) { - return ""; - } - if (doc.contents.type === DOC_TYPE_GROUP && doc.contents.id === doc.id && doc.contents.break === doc.break && doc.contents.expandedStates === doc.expandedStates) { - return doc.contents; - } - break; - case DOC_TYPE_ALIGN: - case DOC_TYPE_INDENT: - case DOC_TYPE_INDENT_IF_BREAK: - case DOC_TYPE_LINE_SUFFIX: - if (!doc.contents) { - return ""; - } - break; - case DOC_TYPE_IF_BREAK: - if (!doc.flatContents && !doc.breakContents) { - return ""; - } - break; - case DOC_TYPE_ARRAY: { - const parts = []; - for (const part of doc) { - if (!part) { - continue; - } - const [currentPart, ...restParts] = Array.isArray(part) ? part : [part]; - if (typeof currentPart === "string" && typeof method_at_default( - /* OPTIONAL_OBJECT: false */ - 0, - parts, - -1 - ) === "string") { - parts[parts.length - 1] += currentPart; - } else { - parts.push(currentPart); - } - parts.push(...restParts); - } - if (parts.length === 0) { - return ""; - } - if (parts.length === 1) { - return parts[0]; - } - return parts; - } - case DOC_TYPE_STRING: - case DOC_TYPE_CURSOR: - case DOC_TYPE_TRIM: - case DOC_TYPE_LINE_SUFFIX_BOUNDARY: - case DOC_TYPE_LINE: - case DOC_TYPE_LABEL: - case DOC_TYPE_BREAK_PARENT: - break; - default: - throw new invalid_doc_error_default(doc); - } - return doc; - } - function cleanDoc(doc) { - return mapDoc(doc, (currentDoc) => cleanDocFn(currentDoc)); - } - function replaceEndOfLine(doc, replacement = literalline) { - return mapDoc(doc, (currentDoc) => typeof currentDoc === "string" ? join(replacement, currentDoc.split("\n")) : currentDoc); - } - function canBreakFn(doc) { - if (doc.type === DOC_TYPE_LINE) { - return true; - } - } - function canBreak(doc) { - return findInDoc(doc, canBreakFn, false); - } - - // src/document/utilities/assert-doc.js - var assertDoc = true ? noop_default : ( - /** - @param {Doc} doc - */ - function(doc) { - traverse_doc_default(doc, (doc2) => { - if (typeof doc2 === "string" || checked.has(doc2)) { - return false; - } - checked.add(doc2); - }); - } - ); - var assertDocArray = true ? noop_default : ( - /** - @param {readonly Doc[]} docs - @param {boolean} [optional = false] - */ - function(docs, optional = false) { - if (optional && !docs) { - return; - } - if (!Array.isArray(docs)) { - throw new TypeError("Unexpected doc array."); - } - for (const doc of docs) { - assertDoc(doc); - } - } - ); - var assertDocFillParts = true ? noop_default : ( - /** - @param {readonly Doc[]} parts - */ - function(parts) { - assertDocArray(parts); - if (parts.length > 1 && isEmptyDoc(method_at_default( - /* OPTIONAL_OBJECT: false */ - 0, - parts, - -1 - ))) { - parts = parts.slice(0, -1); - } - for (const [i, doc] of parts.entries()) { - if (i % 2 === 1 && !isValidSeparator(doc)) { - const type = get_doc_type_default(doc); - throw new Error(`Unexpected non-line-break doc at ${i}. Doc type is ${type}.`); - } - } - } - ); - var assertAlignType = true ? noop_default : function(alignType) { - if (!(typeof alignType === "number" || typeof alignType === "string" || alignType?.type === "root")) { - throw new TypeError(`Invalid alignType '${alignType}'.`); - } - }; - - // src/document/builders/indent.js - function indent(contents) { - assertDoc(contents); - return { type: DOC_TYPE_INDENT, contents }; - } - - // src/document/builders/align.js - function align(alignType, contents) { - assertAlignType(alignType); - assertDoc(contents); - return { type: DOC_TYPE_ALIGN, contents, n: alignType }; - } - function dedentToRoot(contents) { - return align(Number.NEGATIVE_INFINITY, contents); - } - function markAsRoot(contents) { - return align({ type: "root" }, contents); - } - function dedent(contents) { - return align(-1, contents); - } - function addAlignmentToDoc(doc, size, tabWidth) { - assertDoc(doc); - let aligned = doc; - if (size > 0) { - for (let level = 0; level < Math.floor(size / tabWidth); ++level) { - aligned = indent(aligned); - } - aligned = align(size % tabWidth, aligned); - aligned = align(Number.NEGATIVE_INFINITY, aligned); - } - return aligned; - } - - // src/document/builders/break-parent.js - var breakParent = { type: DOC_TYPE_BREAK_PARENT }; - - // src/document/builders/cursor.js - var cursor = { type: DOC_TYPE_CURSOR }; - - // src/document/builders/fill.js - function fill(parts) { - assertDocFillParts(parts); - return { type: DOC_TYPE_FILL, parts }; - } - - // src/document/builders/group.js - function group(contents, options = {}) { - assertDoc(contents); - assertDocArray( - options.expandedStates, - /* optional */ - true - ); - return { - type: DOC_TYPE_GROUP, - id: options.id, - contents, - break: Boolean(options.shouldBreak), - expandedStates: options.expandedStates - }; - } - function conditionalGroup(states, options) { - return group(states[0], { ...options, expandedStates: states }); - } - - // src/document/builders/if-break.js - function ifBreak(breakContents, flatContents = "", options = {}) { - assertDoc(breakContents); - if (flatContents !== "") { - assertDoc(flatContents); - } - return { - type: DOC_TYPE_IF_BREAK, - breakContents, - flatContents, - groupId: options.groupId - }; - } - - // src/document/builders/indent-if-break.js - function indentIfBreak(contents, options) { - assertDoc(contents); - return { - type: DOC_TYPE_INDENT_IF_BREAK, - contents, - groupId: options.groupId, - negate: options.negate - }; - } - - // src/document/builders/join.js - function join(separator, docs) { - assertDoc(separator); - assertDocArray(docs); - const parts = []; - for (let i = 0; i < docs.length; i++) { - if (i !== 0) { - parts.push(separator); - } - parts.push(docs[i]); - } - return parts; - } - - // src/document/builders/label.js - function label(label2, contents) { - assertDoc(contents); - return label2 ? { type: DOC_TYPE_LABEL, label: label2, contents } : contents; - } - - // src/document/builders/line.js - var line = { type: DOC_TYPE_LINE }; - var softline = { type: DOC_TYPE_LINE, soft: true }; - var hardlineWithoutBreakParent = { type: DOC_TYPE_LINE, hard: true }; - var hardline = [hardlineWithoutBreakParent, breakParent]; - var literallineWithoutBreakParent = { - type: DOC_TYPE_LINE, - hard: true, - literal: true - }; - var literalline = [literallineWithoutBreakParent, breakParent]; - - // src/document/builders/line-suffix.js - function lineSuffix(contents) { - assertDoc(contents); - return { type: DOC_TYPE_LINE_SUFFIX, contents }; - } - - // src/document/builders/line-suffix-boundary.js - var lineSuffixBoundary = { type: DOC_TYPE_LINE_SUFFIX_BOUNDARY }; - - // src/document/builders/trim.js - var trim = { type: DOC_TYPE_TRIM }; - - // scripts/build/shims/method-replace-all.js - var stringReplaceAll = String.prototype.replaceAll ?? function(pattern, replacement) { - if (pattern.global) { - return this.replace(pattern, replacement); - } - return this.split(pattern).join(replacement); - }; - var replaceAll = /* @__PURE__ */ createMethodShim("replaceAll", function() { - if (typeof this === "string") { - return stringReplaceAll; - } - }); - var method_replace_all_default = replaceAll; - - // src/common/end-of-line.js - var OPTION_CR = "cr"; - var OPTION_CRLF = "crlf"; - var CHARACTER_CR = "\r"; - var CHARACTER_CRLF = "\r\n"; - var CHARACTER_LF = "\n"; - var DEFAULT_EOL = CHARACTER_LF; - function convertEndOfLineOptionToCharacter(endOfLineOption) { - return endOfLineOption === OPTION_CR ? CHARACTER_CR : endOfLineOption === OPTION_CRLF ? CHARACTER_CRLF : DEFAULT_EOL; - } - - // node_modules/emoji-regex/index.mjs - var emoji_regex_default = () => { - return /[#*0-9]\uFE0F?\u20E3|[\xA9\xAE\u203C\u2049\u2122\u2139\u2194-\u2199\u21A9\u21AA\u231A\u231B\u2328\u23CF\u23ED-\u23EF\u23F1\u23F2\u23F8-\u23FA\u24C2\u25AA\u25AB\u25B6\u25C0\u25FB\u25FC\u25FE\u2600-\u2604\u260E\u2611\u2614\u2615\u2618\u2620\u2622\u2623\u2626\u262A\u262E\u262F\u2638-\u263A\u2640\u2642\u2648-\u2653\u265F\u2660\u2663\u2665\u2666\u2668\u267B\u267E\u267F\u2692\u2694-\u2697\u2699\u269B\u269C\u26A0\u26A7\u26AA\u26B0\u26B1\u26BD\u26BE\u26C4\u26C8\u26CF\u26D1\u26E9\u26F0-\u26F5\u26F7\u26F8\u26FA\u2702\u2708\u2709\u270F\u2712\u2714\u2716\u271D\u2721\u2733\u2734\u2744\u2747\u2757\u2763\u27A1\u2934\u2935\u2B05-\u2B07\u2B1B\u2B1C\u2B55\u3030\u303D\u3297\u3299]\uFE0F?|[\u261D\u270C\u270D](?:\uD83C[\uDFFB-\uDFFF]|\uFE0F)?|[\u270A\u270B](?:\uD83C[\uDFFB-\uDFFF])?|[\u23E9-\u23EC\u23F0\u23F3\u25FD\u2693\u26A1\u26AB\u26C5\u26CE\u26D4\u26EA\u26FD\u2705\u2728\u274C\u274E\u2753-\u2755\u2795-\u2797\u27B0\u27BF\u2B50]|\u26D3\uFE0F?(?:\u200D\uD83D\uDCA5)?|\u26F9(?:\uD83C[\uDFFB-\uDFFF]|\uFE0F)?(?:\u200D[\u2640\u2642]\uFE0F?)?|\u2764\uFE0F?(?:\u200D(?:\uD83D\uDD25|\uD83E\uDE79))?|\uD83C(?:[\uDC04\uDD70\uDD71\uDD7E\uDD7F\uDE02\uDE37\uDF21\uDF24-\uDF2C\uDF36\uDF7D\uDF96\uDF97\uDF99-\uDF9B\uDF9E\uDF9F\uDFCD\uDFCE\uDFD4-\uDFDF\uDFF5\uDFF7]\uFE0F?|[\uDF85\uDFC2\uDFC7](?:\uD83C[\uDFFB-\uDFFF])?|[\uDFC4\uDFCA](?:\uD83C[\uDFFB-\uDFFF])?(?:\u200D[\u2640\u2642]\uFE0F?)?|[\uDFCB\uDFCC](?:\uD83C[\uDFFB-\uDFFF]|\uFE0F)?(?:\u200D[\u2640\u2642]\uFE0F?)?|[\uDCCF\uDD8E\uDD91-\uDD9A\uDE01\uDE1A\uDE2F\uDE32-\uDE36\uDE38-\uDE3A\uDE50\uDE51\uDF00-\uDF20\uDF2D-\uDF35\uDF37-\uDF43\uDF45-\uDF4A\uDF4C-\uDF7C\uDF7E-\uDF84\uDF86-\uDF93\uDFA0-\uDFC1\uDFC5\uDFC6\uDFC8\uDFC9\uDFCF-\uDFD3\uDFE0-\uDFF0\uDFF8-\uDFFF]|\uDDE6\uD83C[\uDDE8-\uDDEC\uDDEE\uDDF1\uDDF2\uDDF4\uDDF6-\uDDFA\uDDFC\uDDFD\uDDFF]|\uDDE7\uD83C[\uDDE6\uDDE7\uDDE9-\uDDEF\uDDF1-\uDDF4\uDDF6-\uDDF9\uDDFB\uDDFC\uDDFE\uDDFF]|\uDDE8\uD83C[\uDDE6\uDDE8\uDDE9\uDDEB-\uDDEE\uDDF0-\uDDF7\uDDFA-\uDDFF]|\uDDE9\uD83C[\uDDEA\uDDEC\uDDEF\uDDF0\uDDF2\uDDF4\uDDFF]|\uDDEA\uD83C[\uDDE6\uDDE8\uDDEA\uDDEC\uDDED\uDDF7-\uDDFA]|\uDDEB\uD83C[\uDDEE-\uDDF0\uDDF2\uDDF4\uDDF7]|\uDDEC\uD83C[\uDDE6\uDDE7\uDDE9-\uDDEE\uDDF1-\uDDF3\uDDF5-\uDDFA\uDDFC\uDDFE]|\uDDED\uD83C[\uDDF0\uDDF2\uDDF3\uDDF7\uDDF9\uDDFA]|\uDDEE\uD83C[\uDDE8-\uDDEA\uDDF1-\uDDF4\uDDF6-\uDDF9]|\uDDEF\uD83C[\uDDEA\uDDF2\uDDF4\uDDF5]|\uDDF0\uD83C[\uDDEA\uDDEC-\uDDEE\uDDF2\uDDF3\uDDF5\uDDF7\uDDFC\uDDFE\uDDFF]|\uDDF1\uD83C[\uDDE6-\uDDE8\uDDEE\uDDF0\uDDF7-\uDDFB\uDDFE]|\uDDF2\uD83C[\uDDE6\uDDE8-\uDDED\uDDF0-\uDDFF]|\uDDF3\uD83C[\uDDE6\uDDE8\uDDEA-\uDDEC\uDDEE\uDDF1\uDDF4\uDDF5\uDDF7\uDDFA\uDDFF]|\uDDF4\uD83C\uDDF2|\uDDF5\uD83C[\uDDE6\uDDEA-\uDDED\uDDF0-\uDDF3\uDDF7-\uDDF9\uDDFC\uDDFE]|\uDDF6\uD83C\uDDE6|\uDDF7\uD83C[\uDDEA\uDDF4\uDDF8\uDDFA\uDDFC]|\uDDF8\uD83C[\uDDE6-\uDDEA\uDDEC-\uDDF4\uDDF7-\uDDF9\uDDFB\uDDFD-\uDDFF]|\uDDF9\uD83C[\uDDE6\uDDE8\uDDE9\uDDEB-\uDDED\uDDEF-\uDDF4\uDDF7\uDDF9\uDDFB\uDDFC\uDDFF]|\uDDFA\uD83C[\uDDE6\uDDEC\uDDF2\uDDF3\uDDF8\uDDFE\uDDFF]|\uDDFB\uD83C[\uDDE6\uDDE8\uDDEA\uDDEC\uDDEE\uDDF3\uDDFA]|\uDDFC\uD83C[\uDDEB\uDDF8]|\uDDFD\uD83C\uDDF0|\uDDFE\uD83C[\uDDEA\uDDF9]|\uDDFF\uD83C[\uDDE6\uDDF2\uDDFC]|\uDF44(?:\u200D\uD83D\uDFEB)?|\uDF4B(?:\u200D\uD83D\uDFE9)?|\uDFC3(?:\uD83C[\uDFFB-\uDFFF])?(?:\u200D(?:[\u2640\u2642]\uFE0F?(?:\u200D\u27A1\uFE0F?)?|\u27A1\uFE0F?))?|\uDFF3\uFE0F?(?:\u200D(?:\u26A7\uFE0F?|\uD83C\uDF08))?|\uDFF4(?:\u200D\u2620\uFE0F?|\uDB40\uDC67\uDB40\uDC62\uDB40(?:\uDC65\uDB40\uDC6E\uDB40\uDC67|\uDC73\uDB40\uDC63\uDB40\uDC74|\uDC77\uDB40\uDC6C\uDB40\uDC73)\uDB40\uDC7F)?)|\uD83D(?:[\uDC3F\uDCFD\uDD49\uDD4A\uDD6F\uDD70\uDD73\uDD76-\uDD79\uDD87\uDD8A-\uDD8D\uDDA5\uDDA8\uDDB1\uDDB2\uDDBC\uDDC2-\uDDC4\uDDD1-\uDDD3\uDDDC-\uDDDE\uDDE1\uDDE3\uDDE8\uDDEF\uDDF3\uDDFA\uDECB\uDECD-\uDECF\uDEE0-\uDEE5\uDEE9\uDEF0\uDEF3]\uFE0F?|[\uDC42\uDC43\uDC46-\uDC50\uDC66\uDC67\uDC6B-\uDC6D\uDC72\uDC74-\uDC76\uDC78\uDC7C\uDC83\uDC85\uDC8F\uDC91\uDCAA\uDD7A\uDD95\uDD96\uDE4C\uDE4F\uDEC0\uDECC](?:\uD83C[\uDFFB-\uDFFF])?|[\uDC6E-\uDC71\uDC73\uDC77\uDC81\uDC82\uDC86\uDC87\uDE45-\uDE47\uDE4B\uDE4D\uDE4E\uDEA3\uDEB4\uDEB5](?:\uD83C[\uDFFB-\uDFFF])?(?:\u200D[\u2640\u2642]\uFE0F?)?|[\uDD74\uDD90](?:\uD83C[\uDFFB-\uDFFF]|\uFE0F)?|[\uDC00-\uDC07\uDC09-\uDC14\uDC16-\uDC25\uDC27-\uDC3A\uDC3C-\uDC3E\uDC40\uDC44\uDC45\uDC51-\uDC65\uDC6A\uDC79-\uDC7B\uDC7D-\uDC80\uDC84\uDC88-\uDC8E\uDC90\uDC92-\uDCA9\uDCAB-\uDCFC\uDCFF-\uDD3D\uDD4B-\uDD4E\uDD50-\uDD67\uDDA4\uDDFB-\uDE2D\uDE2F-\uDE34\uDE37-\uDE41\uDE43\uDE44\uDE48-\uDE4A\uDE80-\uDEA2\uDEA4-\uDEB3\uDEB7-\uDEBF\uDEC1-\uDEC5\uDED0-\uDED2\uDED5-\uDED8\uDEDC-\uDEDF\uDEEB\uDEEC\uDEF4-\uDEFC\uDFE0-\uDFEB\uDFF0]|\uDC08(?:\u200D\u2B1B)?|\uDC15(?:\u200D\uD83E\uDDBA)?|\uDC26(?:\u200D(?:\u2B1B|\uD83D\uDD25))?|\uDC3B(?:\u200D\u2744\uFE0F?)?|\uDC41\uFE0F?(?:\u200D\uD83D\uDDE8\uFE0F?)?|\uDC68(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:\uDC8B\u200D\uD83D)?\uDC68|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D(?:[\uDC68\uDC69]\u200D\uD83D(?:\uDC66(?:\u200D\uD83D\uDC66)?|\uDC67(?:\u200D\uD83D[\uDC66\uDC67])?)|[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uDC66(?:\u200D\uD83D\uDC66)?|\uDC67(?:\u200D\uD83D[\uDC66\uDC67])?)|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]))|\uD83C(?:\uDFFB(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:\uDC8B\u200D\uD83D)?\uDC68\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D(?:[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uDC30\u200D\uD83D\uDC68\uD83C[\uDFFC-\uDFFF])|\uD83E(?:[\uDD1D\uDEEF]\u200D\uD83D\uDC68\uD83C[\uDFFC-\uDFFF]|[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3])))?|\uDFFC(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:\uDC8B\u200D\uD83D)?\uDC68\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D(?:[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uDC30\u200D\uD83D\uDC68\uD83C[\uDFFB\uDFFD-\uDFFF])|\uD83E(?:[\uDD1D\uDEEF]\u200D\uD83D\uDC68\uD83C[\uDFFB\uDFFD-\uDFFF]|[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3])))?|\uDFFD(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:\uDC8B\u200D\uD83D)?\uDC68\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D(?:[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uDC30\u200D\uD83D\uDC68\uD83C[\uDFFB\uDFFC\uDFFE\uDFFF])|\uD83E(?:[\uDD1D\uDEEF]\u200D\uD83D\uDC68\uD83C[\uDFFB\uDFFC\uDFFE\uDFFF]|[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3])))?|\uDFFE(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:\uDC8B\u200D\uD83D)?\uDC68\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D(?:[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uDC30\u200D\uD83D\uDC68\uD83C[\uDFFB-\uDFFD\uDFFF])|\uD83E(?:[\uDD1D\uDEEF]\u200D\uD83D\uDC68\uD83C[\uDFFB-\uDFFD\uDFFF]|[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3])))?|\uDFFF(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:\uDC8B\u200D\uD83D)?\uDC68\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D(?:[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uDC30\u200D\uD83D\uDC68\uD83C[\uDFFB-\uDFFE])|\uD83E(?:[\uDD1D\uDEEF]\u200D\uD83D\uDC68\uD83C[\uDFFB-\uDFFE]|[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3])))?))?|\uDC69(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:\uDC8B\u200D\uD83D)?[\uDC68\uDC69]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D(?:[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uDC66(?:\u200D\uD83D\uDC66)?|\uDC67(?:\u200D\uD83D[\uDC66\uDC67])?|\uDC69\u200D\uD83D(?:\uDC66(?:\u200D\uD83D\uDC66)?|\uDC67(?:\u200D\uD83D[\uDC66\uDC67])?))|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]))|\uD83C(?:\uDFFB(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:[\uDC68\uDC69]|\uDC8B\u200D\uD83D[\uDC68\uDC69])\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D(?:[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uDC30\u200D\uD83D\uDC69\uD83C[\uDFFC-\uDFFF])|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83D[\uDC68\uDC69]\uD83C[\uDFFC-\uDFFF]|\uDEEF\u200D\uD83D\uDC69\uD83C[\uDFFC-\uDFFF])))?|\uDFFC(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:[\uDC68\uDC69]|\uDC8B\u200D\uD83D[\uDC68\uDC69])\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D(?:[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uDC30\u200D\uD83D\uDC69\uD83C[\uDFFB\uDFFD-\uDFFF])|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83D[\uDC68\uDC69]\uD83C[\uDFFB\uDFFD-\uDFFF]|\uDEEF\u200D\uD83D\uDC69\uD83C[\uDFFB\uDFFD-\uDFFF])))?|\uDFFD(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:[\uDC68\uDC69]|\uDC8B\u200D\uD83D[\uDC68\uDC69])\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D(?:[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uDC30\u200D\uD83D\uDC69\uD83C[\uDFFB\uDFFC\uDFFE\uDFFF])|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83D[\uDC68\uDC69]\uD83C[\uDFFB\uDFFC\uDFFE\uDFFF]|\uDEEF\u200D\uD83D\uDC69\uD83C[\uDFFB\uDFFC\uDFFE\uDFFF])))?|\uDFFE(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:[\uDC68\uDC69]|\uDC8B\u200D\uD83D[\uDC68\uDC69])\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D(?:[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uDC30\u200D\uD83D\uDC69\uD83C[\uDFFB-\uDFFD\uDFFF])|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83D[\uDC68\uDC69]\uD83C[\uDFFB-\uDFFD\uDFFF]|\uDEEF\u200D\uD83D\uDC69\uD83C[\uDFFB-\uDFFD\uDFFF])))?|\uDFFF(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:[\uDC68\uDC69]|\uDC8B\u200D\uD83D[\uDC68\uDC69])\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D(?:[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uDC30\u200D\uD83D\uDC69\uD83C[\uDFFB-\uDFFE])|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83D[\uDC68\uDC69]\uD83C[\uDFFB-\uDFFE]|\uDEEF\u200D\uD83D\uDC69\uD83C[\uDFFB-\uDFFE])))?))?|\uDD75(?:\uD83C[\uDFFB-\uDFFF]|\uFE0F)?(?:\u200D[\u2640\u2642]\uFE0F?)?|\uDE2E(?:\u200D\uD83D\uDCA8)?|\uDE35(?:\u200D\uD83D\uDCAB)?|\uDE36(?:\u200D\uD83C\uDF2B\uFE0F?)?|\uDE42(?:\u200D[\u2194\u2195]\uFE0F?)?|\uDEB6(?:\uD83C[\uDFFB-\uDFFF])?(?:\u200D(?:[\u2640\u2642]\uFE0F?(?:\u200D\u27A1\uFE0F?)?|\u27A1\uFE0F?))?)|\uD83E(?:[\uDD0C\uDD0F\uDD18-\uDD1F\uDD30-\uDD34\uDD36\uDD77\uDDB5\uDDB6\uDDBB\uDDD2\uDDD3\uDDD5\uDEC3-\uDEC5\uDEF0\uDEF2-\uDEF8](?:\uD83C[\uDFFB-\uDFFF])?|[\uDD26\uDD35\uDD37-\uDD39\uDD3C-\uDD3E\uDDB8\uDDB9\uDDCD\uDDCF\uDDD4\uDDD6-\uDDDD](?:\uD83C[\uDFFB-\uDFFF])?(?:\u200D[\u2640\u2642]\uFE0F?)?|[\uDDDE\uDDDF](?:\u200D[\u2640\u2642]\uFE0F?)?|[\uDD0D\uDD0E\uDD10-\uDD17\uDD20-\uDD25\uDD27-\uDD2F\uDD3A\uDD3F-\uDD45\uDD47-\uDD76\uDD78-\uDDB4\uDDB7\uDDBA\uDDBC-\uDDCC\uDDD0\uDDE0-\uDDFF\uDE70-\uDE7C\uDE80-\uDE8A\uDE8E-\uDEC2\uDEC6\uDEC8\uDECD-\uDEDC\uDEDF-\uDEEA\uDEEF]|\uDDCE(?:\uD83C[\uDFFB-\uDFFF])?(?:\u200D(?:[\u2640\u2642]\uFE0F?(?:\u200D\u27A1\uFE0F?)?|\u27A1\uFE0F?))?|\uDDD1(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3\uDE70]|\uDD1D\u200D\uD83E\uDDD1|\uDDD1\u200D\uD83E\uDDD2(?:\u200D\uD83E\uDDD2)?|\uDDD2(?:\u200D\uD83E\uDDD2)?))|\uD83C(?:\uDFFB(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D(?:\uD83D\uDC8B\u200D)?\uD83E\uDDD1\uD83C[\uDFFC-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D(?:[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uDC30\u200D\uD83E\uDDD1\uD83C[\uDFFC-\uDFFF])|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3\uDE70]|\uDD1D\u200D\uD83E\uDDD1\uD83C[\uDFFB-\uDFFF]|\uDEEF\u200D\uD83E\uDDD1\uD83C[\uDFFC-\uDFFF])))?|\uDFFC(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D(?:\uD83D\uDC8B\u200D)?\uD83E\uDDD1\uD83C[\uDFFB\uDFFD-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D(?:[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uDC30\u200D\uD83E\uDDD1\uD83C[\uDFFB\uDFFD-\uDFFF])|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3\uDE70]|\uDD1D\u200D\uD83E\uDDD1\uD83C[\uDFFB-\uDFFF]|\uDEEF\u200D\uD83E\uDDD1\uD83C[\uDFFB\uDFFD-\uDFFF])))?|\uDFFD(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D(?:\uD83D\uDC8B\u200D)?\uD83E\uDDD1\uD83C[\uDFFB\uDFFC\uDFFE\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D(?:[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uDC30\u200D\uD83E\uDDD1\uD83C[\uDFFB\uDFFC\uDFFE\uDFFF])|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3\uDE70]|\uDD1D\u200D\uD83E\uDDD1\uD83C[\uDFFB-\uDFFF]|\uDEEF\u200D\uD83E\uDDD1\uD83C[\uDFFB\uDFFC\uDFFE\uDFFF])))?|\uDFFE(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D(?:\uD83D\uDC8B\u200D)?\uD83E\uDDD1\uD83C[\uDFFB-\uDFFD\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D(?:[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uDC30\u200D\uD83E\uDDD1\uD83C[\uDFFB-\uDFFD\uDFFF])|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3\uDE70]|\uDD1D\u200D\uD83E\uDDD1\uD83C[\uDFFB-\uDFFF]|\uDEEF\u200D\uD83E\uDDD1\uD83C[\uDFFB-\uDFFD\uDFFF])))?|\uDFFF(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D(?:\uD83D\uDC8B\u200D)?\uD83E\uDDD1\uD83C[\uDFFB-\uDFFE]|\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D(?:[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uDC30\u200D\uD83E\uDDD1\uD83C[\uDFFB-\uDFFE])|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3\uDE70]|\uDD1D\u200D\uD83E\uDDD1\uD83C[\uDFFB-\uDFFF]|\uDEEF\u200D\uD83E\uDDD1\uD83C[\uDFFB-\uDFFE])))?))?|\uDEF1(?:\uD83C(?:\uDFFB(?:\u200D\uD83E\uDEF2\uD83C[\uDFFC-\uDFFF])?|\uDFFC(?:\u200D\uD83E\uDEF2\uD83C[\uDFFB\uDFFD-\uDFFF])?|\uDFFD(?:\u200D\uD83E\uDEF2\uD83C[\uDFFB\uDFFC\uDFFE\uDFFF])?|\uDFFE(?:\u200D\uD83E\uDEF2\uD83C[\uDFFB-\uDFFD\uDFFF])?|\uDFFF(?:\u200D\uD83E\uDEF2\uD83C[\uDFFB-\uDFFE])?))?)/g; - }; - - // node_modules/get-east-asian-width/lookup-data.js - var fullwidthMinimalCodePoint = 12288; - var fullwidthMaximumCodePoint = 65510; - var fullwidthRanges = [12288, 12288, 65281, 65376, 65504, 65510]; - var wideMinimalCodePoint = 4352; - var wideMaximumCodePoint = 262141; - var wideRanges = [4352, 4447, 8986, 8987, 9001, 9002, 9193, 9196, 9200, 9200, 9203, 9203, 9725, 9726, 9748, 9749, 9776, 9783, 9800, 9811, 9855, 9855, 9866, 9871, 9875, 9875, 9889, 9889, 9898, 9899, 9917, 9918, 9924, 9925, 9934, 9934, 9940, 9940, 9962, 9962, 9970, 9971, 9973, 9973, 9978, 9978, 9981, 9981, 9989, 9989, 9994, 9995, 10024, 10024, 10060, 10060, 10062, 10062, 10067, 10069, 10071, 10071, 10133, 10135, 10160, 10160, 10175, 10175, 11035, 11036, 11088, 11088, 11093, 11093, 11904, 11929, 11931, 12019, 12032, 12245, 12272, 12287, 12289, 12350, 12353, 12438, 12441, 12543, 12549, 12591, 12593, 12686, 12688, 12773, 12783, 12830, 12832, 12871, 12880, 42124, 42128, 42182, 43360, 43388, 44032, 55203, 63744, 64255, 65040, 65049, 65072, 65106, 65108, 65126, 65128, 65131, 94176, 94180, 94192, 94198, 94208, 101589, 101631, 101662, 101760, 101874, 110576, 110579, 110581, 110587, 110589, 110590, 110592, 110882, 110898, 110898, 110928, 110930, 110933, 110933, 110948, 110951, 110960, 111355, 119552, 119638, 119648, 119670, 126980, 126980, 127183, 127183, 127374, 127374, 127377, 127386, 127488, 127490, 127504, 127547, 127552, 127560, 127568, 127569, 127584, 127589, 127744, 127776, 127789, 127797, 127799, 127868, 127870, 127891, 127904, 127946, 127951, 127955, 127968, 127984, 127988, 127988, 127992, 128062, 128064, 128064, 128066, 128252, 128255, 128317, 128331, 128334, 128336, 128359, 128378, 128378, 128405, 128406, 128420, 128420, 128507, 128591, 128640, 128709, 128716, 128716, 128720, 128722, 128725, 128728, 128732, 128735, 128747, 128748, 128756, 128764, 128992, 129003, 129008, 129008, 129292, 129338, 129340, 129349, 129351, 129535, 129648, 129660, 129664, 129674, 129678, 129734, 129736, 129736, 129741, 129756, 129759, 129770, 129775, 129784, 131072, 196605, 196608, 262141]; - - // node_modules/get-east-asian-width/utilities.js - var isInRange = (ranges, codePoint) => { - let low = 0; - let high = Math.floor(ranges.length / 2) - 1; - while (low <= high) { - const mid = Math.floor((low + high) / 2); - const i = mid * 2; - if (codePoint < ranges[i]) { - high = mid - 1; - } else if (codePoint > ranges[i + 1]) { - low = mid + 1; - } else { - return true; - } - } - return false; - }; - - // node_modules/get-east-asian-width/lookup.js - var commonCjkCodePoint = 19968; - var [wideFastPathStart, wideFastPathEnd] = /* @__PURE__ */ findWideFastPathRange(wideRanges); - function findWideFastPathRange(ranges) { - let fastPathStart = ranges[0]; - let fastPathEnd = ranges[1]; - for (let index = 0; index < ranges.length; index += 2) { - const start = ranges[index]; - const end = ranges[index + 1]; - if (commonCjkCodePoint >= start && commonCjkCodePoint <= end) { - return [start, end]; - } - if (end - start > fastPathEnd - fastPathStart) { - fastPathStart = start; - fastPathEnd = end; - } - } - return [fastPathStart, fastPathEnd]; - } - var isFullWidth = (codePoint) => { - if (codePoint < fullwidthMinimalCodePoint || codePoint > fullwidthMaximumCodePoint) { - return false; - } - return isInRange(fullwidthRanges, codePoint); - }; - var isWide = (codePoint) => { - if (codePoint >= wideFastPathStart && codePoint <= wideFastPathEnd) { - return true; - } - if (codePoint < wideMinimalCodePoint || codePoint > wideMaximumCodePoint) { - return false; - } - return isInRange(wideRanges, codePoint); - }; - - // node_modules/narrow-emojis/index.js - var narrowEmojiRegexp = /^(?:[\xA9\xAE\u203C\u2049\u2122\u2139\u2194-\u2199\u21A9\u21AA\u2328\u23CF\u23ED-\u23EF\u23F1\u23F2\u23F8-\u23FA\u24C2\u25AA\u25AB\u25B6\u25C0\u25FB\u25FC\u2600-\u2604\u260E\u2611\u2618\u2620\u2622\u2623\u2626\u262A\u262E\u262F\u2638-\u263A\u2640\u2642\u265F\u2660\u2663\u2665\u2666\u2668\u267B\u267E\u2692\u2694-\u2697\u2699\u269B\u269C\u26A0\u26A7\u26B0\u26B1\u26C8\u26CF\u26D1\u26D3\u26E9\u26F0\u26F1\u26F4\u26F7\u26F8\u2702\u2708\u2709\u270F\u2712\u2714\u2716\u271D\u2721\u2733\u2734\u2744\u2747\u2763\u2764\u27A1\u2934\u2935\u2B05-\u2B07]|\uD83C[\uDD70\uDD71\uDD7E\uDD7F\uDF21\uDF24-\uDF2C\uDF36\uDF7D\uDF96\uDF97\uDF99-\uDF9B\uDF9E\uDF9F\uDFCD\uDFCE\uDFD4-\uDFDF\uDFF3\uDFF5\uDFF7]|\uD83D[\uDC3F\uDC41\uDCFD\uDD49\uDD4A\uDD6F\uDD70\uDD73\uDD76-\uDD79\uDD87\uDD8A-\uDD8D\uDDA5\uDDA8\uDDB1\uDDB2\uDDBC\uDDC2-\uDDC4\uDDD1-\uDDD3\uDDDC-\uDDDE\uDDE1\uDDE3\uDDE8\uDDEF\uDDF3\uDDFA\uDECB\uDECD-\uDECF\uDEE0-\uDEE5\uDEE9\uDEF0\uDEF3])$/; - var isNarrowEmojiCharacter = (character) => narrowEmojiRegexp.test(character); - - // src/utilities/get-string-width.js - var notAsciiRegex = /[^\x20-\x7F]/; - function getStringWidth(text) { - if (!text) { - return 0; - } - if (!notAsciiRegex.test(text)) { - return text.length; - } - let width = 0; - text = text.replace(emoji_regex_default(), (character) => { - width += isNarrowEmojiCharacter(character) ? 1 : 2; - return ""; - }); - for (const character of text) { - const codePoint = character.codePointAt(0); - if (codePoint <= 31 || codePoint >= 127 && codePoint <= 159) { - continue; - } - if (codePoint >= 768 && codePoint <= 879) { - continue; - } - if (codePoint >= 65024 && codePoint <= 65039) { - continue; - } - width += isFullWidth(codePoint) || isWide(codePoint) ? 2 : 1; - } - return width; - } - var get_string_width_default = getStringWidth; - - // src/document/printer/indent.js - var INDENT_COMMAND_TYPE_INDENT = 0; - var INDENT_COMMAND_TYPE_DEDENT = 1; - var INDENT_COMMAND_TYPE_WIDTH = 2; - var INDENT_COMMAND_TYPE_STRING = 3; - var INDENT_COMMAND_INDENT = { type: INDENT_COMMAND_TYPE_INDENT }; - var INDENT_COMMAND_DEDENT = { type: INDENT_COMMAND_TYPE_DEDENT }; - var ROOT_INDENT = { - value: "", - length: 0, - queue: [], - get root() { - return ROOT_INDENT; - } - }; - function generateIndent(indent2, command, options) { - const queue = command.type === INDENT_COMMAND_TYPE_DEDENT ? indent2.queue.slice(0, -1) : [...indent2.queue, command]; - let value = ""; - let length = 0; - let lastTabs = 0; - let lastSpaces = 0; - for (const command2 of queue) { - switch (command2.type) { - case INDENT_COMMAND_TYPE_INDENT: - flush(); - if (options.useTabs) { - addTabs(1); - } else { - addSpaces(options.tabWidth); - } - break; - case INDENT_COMMAND_TYPE_STRING: { - const { string } = command2; - flush(); - value += string; - length += string.length; - break; - } - case INDENT_COMMAND_TYPE_WIDTH: { - const { width } = command2; - lastTabs += 1; - lastSpaces += width; - break; - } - default: - throw new Error(`Unexpected indent comment '${command2.type}'.`); - } - } - flushSpaces(); - return { ...indent2, value, length, queue }; - function addTabs(count) { - value += " ".repeat(count); - length += options.tabWidth * count; - } - function addSpaces(count) { - value += " ".repeat(count); - length += count; - } - function flush() { - if (options.useTabs) { - flushTabs(); - } else { - flushSpaces(); - } - } - function flushTabs() { - if (lastTabs > 0) { - addTabs(lastTabs); - } - resetLast(); - } - function flushSpaces() { - if (lastSpaces > 0) { - addSpaces(lastSpaces); - } - resetLast(); - } - function resetLast() { - lastTabs = 0; - lastSpaces = 0; - } - } - function makeAlign(indent2, indentOptions, options) { - if (!indentOptions) { - return indent2; - } - if (indentOptions.type === "root") { - return { ...indent2, root: indent2 }; - } - if (indentOptions === Number.NEGATIVE_INFINITY) { - return indent2.root; - } - let command; - if (typeof indentOptions === "number") { - if (indentOptions < 0) { - command = INDENT_COMMAND_DEDENT; - } else { - command = { type: INDENT_COMMAND_TYPE_WIDTH, width: indentOptions }; - } - } else { - command = { type: INDENT_COMMAND_TYPE_STRING, string: indentOptions }; - } - return generateIndent(indent2, command, options); - } - function makeIndent(indent2, options) { - return generateIndent(indent2, INDENT_COMMAND_INDENT, options); - } - - // src/document/printer/trim-indentation.js - function getTrailingIndentionLength(text) { - let length = 0; - for (let index = text.length - 1; index >= 0; index--) { - const character = text[index]; - if (character === " " || character === " ") { - length++; - } else { - break; - } - } - return length; - } - function trimIndentation(text) { - const length = getTrailingIndentionLength(text); - const trimmed = length === 0 ? text : text.slice(0, text.length - length); - return { text: trimmed, count: length }; - } - - // src/document/printer/print-result.js - var printResult = class { - /** @type {string[]} */ - #settledTexts = []; - #unsettledText = ""; - #settledTextLength = 0; - /** @type {number[]} */ - #settledPositions = []; - /** @type {number[]} */ - #unsettledPositions = []; - #settle() { - const text = this.#unsettledText; - if (text !== "") { - this.#settledTexts.push(text); - this.#settledTextLength += text.length; - this.#unsettledText = ""; - } - for (const position of this.#unsettledPositions) { - this.#settledPositions.push(Math.min(position, this.#settledTextLength)); - } - this.#unsettledPositions.length = 0; - } - markPosition() { - if (this.#settledPositions.length + this.#unsettledPositions.length >= 2) { - throw new Error("There are too many 'cursor' in doc."); - } - this.#unsettledPositions.push( - this.#settledTextLength + this.#unsettledText.length - ); - } - /** - @param {string} text - */ - write(text) { - this.#unsettledText += text; - } - trim() { - const { text: trimmed, count } = trimIndentation(this.#unsettledText); - this.#unsettledText = trimmed; - this.#settle(); - return count; - } - finish() { - this.#settle(); - return { - text: this.#settledTexts.join(""), - positions: this.#settledPositions - }; - } - }; - var print_result_default = printResult; - - // src/document/printer/printer.js - var MODE_BREAK = /* @__PURE__ */ Symbol("MODE_BREAK"); - var MODE_FLAT = /* @__PURE__ */ Symbol("MODE_FLAT"); - var DOC_FILL_PRINTED_LENGTH = /* @__PURE__ */ Symbol("DOC_FILL_PRINTED_LENGTH"); - function fits(next, restCommands, remainingWidth, hasLineSuffix, groupModeMap, mustBeFlat) { - if (remainingWidth === Number.POSITIVE_INFINITY) { - return true; - } - let restCommandsIndex = restCommands.length; - let hasPendingSpace = false; - const commands = [next]; - let output = ""; - while (remainingWidth >= 0) { - if (commands.length === 0) { - if (restCommandsIndex === 0) { - return true; - } - commands.push(restCommands[--restCommandsIndex]); - continue; - } - const { - mode, - doc - } = commands.pop(); - const docType = get_doc_type_default(doc); - switch (docType) { - case DOC_TYPE_STRING: - if (doc) { - if (hasPendingSpace) { - output += " "; - remainingWidth -= 1; - hasPendingSpace = false; - } - output += doc; - remainingWidth -= get_string_width_default(doc); - } - break; - case DOC_TYPE_ARRAY: - case DOC_TYPE_FILL: { - const parts = docType === DOC_TYPE_ARRAY ? doc : doc.parts; - const end = doc[DOC_FILL_PRINTED_LENGTH] ?? 0; - for (let index = parts.length - 1; index >= end; index--) { - commands.push({ - mode, - doc: parts[index] - }); - } - break; - } - case DOC_TYPE_INDENT: - case DOC_TYPE_ALIGN: - case DOC_TYPE_INDENT_IF_BREAK: - case DOC_TYPE_LABEL: - commands.push({ - mode, - doc: doc.contents - }); - break; - case DOC_TYPE_TRIM: { - const { - text, - count - } = trimIndentation(output); - output = text; - remainingWidth += count; - break; - } - case DOC_TYPE_GROUP: { - if (mustBeFlat && doc.break) { - return false; - } - const groupMode = doc.break ? MODE_BREAK : mode; - const contents = doc.expandedStates && groupMode === MODE_BREAK ? method_at_default( - /* OPTIONAL_OBJECT: false */ - 0, - doc.expandedStates, - -1 - ) : doc.contents; - commands.push({ - mode: groupMode, - doc: contents - }); - break; - } - case DOC_TYPE_IF_BREAK: { - const groupMode = doc.groupId ? groupModeMap[doc.groupId] || MODE_FLAT : mode; - const contents = groupMode === MODE_BREAK ? doc.breakContents : doc.flatContents; - if (contents) { - commands.push({ - mode, - doc: contents - }); - } - break; - } - case DOC_TYPE_LINE: - if (mode === MODE_BREAK || doc.hard) { - return true; - } - if (!doc.soft) { - hasPendingSpace = true; - } - break; - case DOC_TYPE_LINE_SUFFIX: - hasLineSuffix = true; - break; - case DOC_TYPE_LINE_SUFFIX_BOUNDARY: - if (hasLineSuffix) { - return false; - } - break; - } - } - return false; - } - function printDocToString(doc, options) { - const groupModeMap = /* @__PURE__ */ Object.create(null); - const width = options.printWidth; - const newLine = convertEndOfLineOptionToCharacter(options.endOfLine); - let position = 0; - const commands = [{ - indent: ROOT_INDENT, - mode: MODE_BREAK, - doc - }]; - let shouldRemeasure = false; - const lineSuffix2 = []; - const result = new print_result_default(); - propagateBreaks(doc); - while (commands.length > 0) { - const { - indent: indent2, - mode, - doc: doc2 - } = commands.pop(); - switch (get_doc_type_default(doc2)) { - case DOC_TYPE_STRING: { - const formatted2 = newLine !== "\n" ? method_replace_all_default( - /* OPTIONAL_OBJECT: false */ - 0, - doc2, - "\n", - newLine - ) : doc2; - if (formatted2) { - result.write(formatted2); - if (commands.length > 0) { - position += get_string_width_default(formatted2); - } - } - break; - } - case DOC_TYPE_ARRAY: - for (let index = doc2.length - 1; index >= 0; index--) { - commands.push({ - indent: indent2, - mode, - doc: doc2[index] - }); - } - break; - case DOC_TYPE_CURSOR: - result.markPosition(); - break; - case DOC_TYPE_INDENT: - commands.push({ - indent: makeIndent(indent2, options), - mode, - doc: doc2.contents - }); - break; - case DOC_TYPE_ALIGN: - commands.push({ - indent: makeAlign(indent2, doc2.n, options), - mode, - doc: doc2.contents - }); - break; - case DOC_TYPE_TRIM: - position -= result.trim(); - break; - case DOC_TYPE_GROUP: { - const command = (function printGroup() { - if (mode === MODE_FLAT && !shouldRemeasure) { - return { - indent: indent2, - mode: doc2.break ? MODE_BREAK : MODE_FLAT, - doc: doc2.contents - }; - } - shouldRemeasure = false; - const remainingWidth = width - position; - const hasLineSuffix = lineSuffix2.length > 0; - const flatCommand = { - indent: indent2, - mode: MODE_FLAT, - doc: doc2.contents - }; - if (!doc2.break && fits(flatCommand, commands, remainingWidth, hasLineSuffix, groupModeMap)) { - return flatCommand; - } - if (!doc2.expandedStates) { - return { - indent: indent2, - mode: MODE_BREAK, - doc: doc2.contents - }; - } - if (!doc2.break) { - for (let index = 1; index < doc2.expandedStates.length - 1; index++) { - const flatCommand2 = { - indent: indent2, - mode: MODE_FLAT, - doc: doc2.expandedStates[index] - }; - if (fits(flatCommand2, commands, remainingWidth, hasLineSuffix, groupModeMap)) { - return flatCommand2; - } - } - } - return { - indent: indent2, - mode: MODE_BREAK, - doc: method_at_default( - /* OPTIONAL_OBJECT: false */ - 0, - doc2.expandedStates, - -1 - ) - }; - })(); - commands.push(command); - if (doc2.id) { - groupModeMap[doc2.id] = command.mode; - } - break; - } - // Fills each line with as much code as possible before moving to a new - // line with the same indentation. - // - // Expects doc.parts to be an array of alternating content and - // whitespace. The whitespace contains the linebreaks. - // - // For example: - // ["I", line, "love", line, "monkeys"] - // or - // [{ type: group, ... }, softline, { type: group, ... }] - // - // It uses this parts structure to handle three main layout cases: - // * The first two content items fit on the same line without - // breaking - // -> output the first content item and the whitespace "flat". - // * Only the first content item fits on the line without breaking - // -> output the first content item "flat" and the whitespace with - // "break". - // * Neither content item fits on the line without breaking - // -> output the first content item and the whitespace with "break". - case DOC_TYPE_FILL: { - const remainingWidth = width - position; - const offset = doc2[DOC_FILL_PRINTED_LENGTH] ?? 0; - const { - parts - } = doc2; - const length = parts.length - offset; - if (length === 0) { - break; - } - const content = parts[offset + 0]; - const whitespace = parts[offset + 1]; - const contentFlatCommand = { - indent: indent2, - mode: MODE_FLAT, - doc: content - }; - const contentBreakCommand = { - indent: indent2, - mode: MODE_BREAK, - doc: content - }; - const contentFits = fits(contentFlatCommand, [], remainingWidth, lineSuffix2.length > 0, groupModeMap, true); - if (length === 1) { - if (contentFits) { - commands.push(contentFlatCommand); - } else { - commands.push(contentBreakCommand); - } - break; - } - const whitespaceFlatCommand = { - indent: indent2, - mode: MODE_FLAT, - doc: whitespace - }; - const whitespaceBreakCommand = { - indent: indent2, - mode: MODE_BREAK, - doc: whitespace - }; - if (length === 2) { - if (contentFits) { - commands.push(whitespaceFlatCommand, contentFlatCommand); - } else { - commands.push(whitespaceBreakCommand, contentBreakCommand); - } - break; - } - const secondContent = parts[offset + 2]; - const remainingCommand = { - indent: indent2, - mode, - doc: { - ...doc2, - [DOC_FILL_PRINTED_LENGTH]: offset + 2 - } - }; - const firstAndSecondContentFlatCommand = { - indent: indent2, - mode: MODE_FLAT, - doc: [content, whitespace, secondContent] - }; - const firstAndSecondContentFits = fits(firstAndSecondContentFlatCommand, [], remainingWidth, lineSuffix2.length > 0, groupModeMap, true); - commands.push(remainingCommand); - if (firstAndSecondContentFits) { - commands.push(whitespaceFlatCommand, contentFlatCommand); - } else if (contentFits) { - commands.push(whitespaceBreakCommand, contentFlatCommand); - } else { - commands.push(whitespaceBreakCommand, contentBreakCommand); - } - break; - } - case DOC_TYPE_IF_BREAK: - case DOC_TYPE_INDENT_IF_BREAK: { - const groupMode = doc2.groupId ? groupModeMap[doc2.groupId] : mode; - if (groupMode === MODE_BREAK) { - const breakContents = doc2.type === DOC_TYPE_IF_BREAK ? doc2.breakContents : doc2.negate ? doc2.contents : indent(doc2.contents); - if (breakContents) { - commands.push({ - indent: indent2, - mode, - doc: breakContents - }); - } - } - if (groupMode === MODE_FLAT) { - const flatContents = doc2.type === DOC_TYPE_IF_BREAK ? doc2.flatContents : doc2.negate ? indent(doc2.contents) : doc2.contents; - if (flatContents) { - commands.push({ - indent: indent2, - mode, - doc: flatContents - }); - } - } - break; - } - case DOC_TYPE_LINE_SUFFIX: - lineSuffix2.push({ - indent: indent2, - mode, - doc: doc2.contents - }); - break; - case DOC_TYPE_LINE_SUFFIX_BOUNDARY: - if (lineSuffix2.length > 0) { - commands.push({ - indent: indent2, - mode, - doc: hardlineWithoutBreakParent - }); - } - break; - case DOC_TYPE_LINE: - switch (mode) { - case MODE_FLAT: - if (!doc2.hard) { - if (!doc2.soft) { - result.write(" "); - position += 1; - } - break; - } - shouldRemeasure = true; - // fallthrough - case MODE_BREAK: - if (lineSuffix2.length > 0) { - commands.push({ - indent: indent2, - mode, - doc: doc2 - }, ...lineSuffix2.reverse()); - lineSuffix2.length = 0; - break; - } - if (doc2.literal) { - result.write(newLine); - position = 0; - if (indent2.root) { - if (indent2.root.value) { - result.write(indent2.root.value); - } - position = indent2.root.length; - } - } else { - result.trim(); - result.write(newLine + indent2.value); - position = indent2.length; - } - break; - } - break; - case DOC_TYPE_LABEL: - commands.push({ - indent: indent2, - mode, - doc: doc2.contents - }); - break; - case DOC_TYPE_BREAK_PARENT: - break; - default: - throw new invalid_doc_error_default(doc2); - } - if (commands.length === 0 && lineSuffix2.length > 0) { - commands.push(...lineSuffix2.reverse()); - lineSuffix2.length = 0; - } - } - const { - text: formatted, - positions: cursorPositions - } = result.finish(); - if (cursorPositions.length !== 2) { - return { - formatted - }; - } - const [cursorNodeStart, cursorNodeEnd] = cursorPositions; - return { - formatted, - cursorNodeStart, - cursorNodeText: formatted.slice(cursorNodeStart, cursorNodeEnd) - }; - } - - // src/document/public.js - var builders = { - join, - line, - softline, - hardline, - literalline, - group, - conditionalGroup, - fill, - lineSuffix, - lineSuffixBoundary, - cursor, - breakParent, - ifBreak, - trim, - indent, - indentIfBreak, - align, - addAlignmentToDoc, - markAsRoot, - dedentToRoot, - dedent, - hardlineWithoutBreakParent, - literallineWithoutBreakParent, - label, - // TODO: Remove this in v4 - concat: (parts) => parts - }; - var printer = { printDocToString }; - var utils = { - willBreak, - traverseDoc: traverse_doc_default, - findInDoc, - mapDoc, - removeLines, - stripTrailingHardline, - replaceEndOfLine, - canBreak - }; - return __toCommonJS(public_exports); -}); \ No newline at end of file diff --git a/node_modules/prettier/doc.mjs b/node_modules/prettier/doc.mjs deleted file mode 100644 index 8ba3468..0000000 --- a/node_modules/prettier/doc.mjs +++ /dev/null @@ -1,1544 +0,0 @@ -var __defProp = Object.defineProperty; -var __export = (target, all) => { - for (var name in all) - __defProp(target, name, { get: all[name], enumerable: true }); -}; - -// src/document/public.js -var public_exports = {}; -__export(public_exports, { - builders: () => builders, - printer: () => printer, - utils: () => utils -}); - -// scripts/build/shims/shared.js -var OPTIONAL_OBJECT = 1; -var createMethodShim = (methodName, getImplementation) => (flags, object, ...arguments_) => { - if (flags | OPTIONAL_OBJECT && (object === void 0 || object === null)) { - return; - } - const implementation = getImplementation.call(object) ?? object[methodName]; - return implementation.apply(object, arguments_); -}; - -// scripts/build/shims/method-at.js -function stringOrArrayAt(index) { - return this[index < 0 ? this.length + index : index]; -} -var at = /* @__PURE__ */ createMethodShim("at", function() { - if (Array.isArray(this) || typeof this === "string") { - return stringOrArrayAt; - } -}); -var method_at_default = at; - -// src/utilities/noop.js -var noop = () => { -}; -var noop_default = noop; - -// src/document/builders/types.js -var DOC_TYPE_STRING = ( - /** @type {const} */ - "string" -); -var DOC_TYPE_ARRAY = ( - /** @type {const} */ - "array" -); -var DOC_TYPE_CURSOR = ( - /** @type {const} */ - "cursor" -); -var DOC_TYPE_INDENT = ( - /** @type {const} */ - "indent" -); -var DOC_TYPE_ALIGN = ( - /** @type {const} */ - "align" -); -var DOC_TYPE_TRIM = ( - /** @type {const} */ - "trim" -); -var DOC_TYPE_GROUP = ( - /** @type {const} */ - "group" -); -var DOC_TYPE_FILL = ( - /** @type {const} */ - "fill" -); -var DOC_TYPE_IF_BREAK = ( - /** @type {const} */ - "if-break" -); -var DOC_TYPE_INDENT_IF_BREAK = ( - /** @type {const} */ - "indent-if-break" -); -var DOC_TYPE_LINE_SUFFIX = ( - /** @type {const} */ - "line-suffix" -); -var DOC_TYPE_LINE_SUFFIX_BOUNDARY = ( - /** @type {const} */ - "line-suffix-boundary" -); -var DOC_TYPE_LINE = ( - /** @type {const} */ - "line" -); -var DOC_TYPE_LABEL = ( - /** @type {const} */ - "label" -); -var DOC_TYPE_BREAK_PARENT = ( - /** @type {const} */ - "break-parent" -); -var VALID_OBJECT_DOC_TYPES = /* @__PURE__ */ new Set([ - DOC_TYPE_CURSOR, - DOC_TYPE_INDENT, - DOC_TYPE_ALIGN, - DOC_TYPE_TRIM, - DOC_TYPE_GROUP, - DOC_TYPE_FILL, - DOC_TYPE_IF_BREAK, - DOC_TYPE_INDENT_IF_BREAK, - DOC_TYPE_LINE_SUFFIX, - DOC_TYPE_LINE_SUFFIX_BOUNDARY, - DOC_TYPE_LINE, - DOC_TYPE_LABEL, - DOC_TYPE_BREAK_PARENT -]); - -// node_modules/trim-newlines/index.js -function trimNewlinesEnd(string) { - let end = string.length; - while (end > 0 && (string[end - 1] === "\r" || string[end - 1] === "\n")) { - end--; - } - return end < string.length ? string.slice(0, end) : string; -} - -// src/utilities/get-or-insert.js -function getOrInsertComputed(map, key, callback) { - if (!map.has(key)) { - const value = callback(key); - map.set(key, value); - } - return map.get(key); -} - -// src/document/utilities/get-doc-type.js -function getDocType(doc) { - if (typeof doc === "string") { - return DOC_TYPE_STRING; - } - if (Array.isArray(doc)) { - return DOC_TYPE_ARRAY; - } - if (!doc) { - return; - } - const { type } = doc; - if (VALID_OBJECT_DOC_TYPES.has(type)) { - return type; - } -} -var get_doc_type_default = getDocType; - -// src/document/utilities/invalid-doc-error.js -var disjunctionListFormat = (list) => new Intl.ListFormat("en-US", { type: "disjunction" }).format(list); -function getDocErrorMessage(doc) { - const type = doc === null ? "null" : typeof doc; - if (type !== "string" && type !== "object") { - return `Unexpected doc '${type}', -Expected it to be 'string' or 'object'.`; - } - if (get_doc_type_default(doc)) { - throw new Error("doc is valid."); - } - const objectType = Object.prototype.toString.call(doc); - if (objectType !== "[object Object]") { - return `Unexpected doc '${objectType}'.`; - } - const EXPECTED_TYPE_VALUES = disjunctionListFormat( - [...VALID_OBJECT_DOC_TYPES].map((type2) => `'${type2}'`) - ); - return `Unexpected doc.type '${doc.type}'. -Expected it to be ${EXPECTED_TYPE_VALUES}.`; -} -var InvalidDocError = class extends Error { - name = "InvalidDocError"; - constructor(doc) { - super(getDocErrorMessage(doc)); - this.doc = doc; - } -}; -var invalid_doc_error_default = InvalidDocError; - -// src/document/utilities/traverse-doc.js -var traverseDocOnExitStackMarker = {}; -function traverseDoc(doc, onEnter, onExit, shouldTraverseConditionalGroups) { - const docsStack = [doc]; - while (docsStack.length > 0) { - const doc2 = docsStack.pop(); - if (doc2 === traverseDocOnExitStackMarker) { - onExit(docsStack.pop()); - continue; - } - if (onExit) { - docsStack.push(doc2, traverseDocOnExitStackMarker); - } - const docType = get_doc_type_default(doc2); - if (!docType) { - throw new invalid_doc_error_default(doc2); - } - if (onEnter?.(doc2) === false) { - continue; - } - switch (docType) { - case DOC_TYPE_ARRAY: - case DOC_TYPE_FILL: { - const parts = docType === DOC_TYPE_ARRAY ? doc2 : doc2.parts; - for (let ic = parts.length, i = ic - 1; i >= 0; --i) { - docsStack.push(parts[i]); - } - break; - } - case DOC_TYPE_IF_BREAK: - docsStack.push(doc2.flatContents, doc2.breakContents); - break; - case DOC_TYPE_GROUP: - if (shouldTraverseConditionalGroups && doc2.expandedStates) { - for (let ic = doc2.expandedStates.length, i = ic - 1; i >= 0; --i) { - docsStack.push(doc2.expandedStates[i]); - } - } else { - docsStack.push(doc2.contents); - } - break; - case DOC_TYPE_ALIGN: - case DOC_TYPE_INDENT: - case DOC_TYPE_INDENT_IF_BREAK: - case DOC_TYPE_LABEL: - case DOC_TYPE_LINE_SUFFIX: - docsStack.push(doc2.contents); - break; - case DOC_TYPE_STRING: - case DOC_TYPE_CURSOR: - case DOC_TYPE_TRIM: - case DOC_TYPE_LINE_SUFFIX_BOUNDARY: - case DOC_TYPE_LINE: - case DOC_TYPE_BREAK_PARENT: - break; - default: - throw new invalid_doc_error_default(doc2); - } - } -} -var traverse_doc_default = traverseDoc; - -// src/document/utilities/index.js -function mapDoc(doc, cb) { - if (typeof doc === "string") { - return cb(doc); - } - const mapped = /* @__PURE__ */ new Map(); - return rec(doc); - function rec(doc2) { - return getOrInsertComputed(mapped, doc2, process2); - } - function process2(doc2) { - switch (get_doc_type_default(doc2)) { - case DOC_TYPE_ARRAY: - return cb(doc2.map(rec)); - case DOC_TYPE_FILL: - return cb({ - ...doc2, - parts: doc2.parts.map(rec) - }); - case DOC_TYPE_IF_BREAK: - return cb({ - ...doc2, - breakContents: rec(doc2.breakContents), - flatContents: rec(doc2.flatContents) - }); - case DOC_TYPE_GROUP: { - let { - expandedStates, - contents - } = doc2; - if (expandedStates) { - expandedStates = expandedStates.map(rec); - contents = expandedStates[0]; - } else { - contents = rec(contents); - } - return cb({ - ...doc2, - contents, - expandedStates - }); - } - case DOC_TYPE_ALIGN: - case DOC_TYPE_INDENT: - case DOC_TYPE_INDENT_IF_BREAK: - case DOC_TYPE_LABEL: - case DOC_TYPE_LINE_SUFFIX: - return cb({ - ...doc2, - contents: rec(doc2.contents) - }); - case DOC_TYPE_STRING: - case DOC_TYPE_CURSOR: - case DOC_TYPE_TRIM: - case DOC_TYPE_LINE_SUFFIX_BOUNDARY: - case DOC_TYPE_LINE: - case DOC_TYPE_BREAK_PARENT: - return cb(doc2); - default: - throw new invalid_doc_error_default(doc2); - } - } -} -function findInDoc(doc, fn, defaultValue) { - let result = defaultValue; - let shouldSkipFurtherProcessing = false; - function findInDocOnEnterFn(doc2) { - if (shouldSkipFurtherProcessing) { - return false; - } - const maybeResult = fn(doc2); - if (maybeResult !== void 0) { - shouldSkipFurtherProcessing = true; - result = maybeResult; - } - } - traverse_doc_default(doc, findInDocOnEnterFn); - return result; -} -function willBreakFn(doc) { - if (doc.type === DOC_TYPE_GROUP && doc.break) { - return true; - } - if (doc.type === DOC_TYPE_LINE && doc.hard) { - return true; - } - if (doc.type === DOC_TYPE_BREAK_PARENT) { - return true; - } -} -function willBreak(doc) { - return findInDoc(doc, willBreakFn, false); -} -function breakParentGroup(groupStack) { - if (groupStack.length > 0) { - const parentGroup = method_at_default( - /* OPTIONAL_OBJECT: false */ - 0, - groupStack, - -1 - ); - if (!parentGroup.expandedStates && !parentGroup.break) { - parentGroup.break = "propagated"; - } - } - return null; -} -function propagateBreaks(doc) { - const alreadyVisitedSet = /* @__PURE__ */ new Set(); - const groupStack = []; - function propagateBreaksOnEnterFn(doc2) { - if (doc2.type === DOC_TYPE_BREAK_PARENT) { - breakParentGroup(groupStack); - } - if (doc2.type === DOC_TYPE_GROUP) { - groupStack.push(doc2); - if (alreadyVisitedSet.has(doc2)) { - return false; - } - alreadyVisitedSet.add(doc2); - } - } - function propagateBreaksOnExitFn(doc2) { - if (doc2.type === DOC_TYPE_GROUP) { - const group2 = groupStack.pop(); - if (group2.break) { - breakParentGroup(groupStack); - } - } - } - traverse_doc_default( - doc, - propagateBreaksOnEnterFn, - propagateBreaksOnExitFn, - /* shouldTraverseConditionalGroups */ - true - ); -} -function removeLinesFn(doc) { - if (doc.type === DOC_TYPE_LINE && !doc.hard) { - return doc.soft ? "" : " "; - } - if (doc.type === DOC_TYPE_IF_BREAK) { - return doc.flatContents; - } - return doc; -} -function removeLines(doc) { - return mapDoc(doc, removeLinesFn); -} -function stripTrailingHardlineFromParts(parts) { - parts = [...parts]; - while (parts.length >= 2 && method_at_default( - /* OPTIONAL_OBJECT: false */ - 0, - parts, - -2 - ).type === DOC_TYPE_LINE && method_at_default( - /* OPTIONAL_OBJECT: false */ - 0, - parts, - -1 - ).type === DOC_TYPE_BREAK_PARENT) { - parts.length -= 2; - } - if (parts.length > 0) { - const lastPart = stripTrailingHardlineFromDoc(method_at_default( - /* OPTIONAL_OBJECT: false */ - 0, - parts, - -1 - )); - parts[parts.length - 1] = lastPart; - } - return parts; -} -function stripTrailingHardlineFromDoc(doc) { - switch (get_doc_type_default(doc)) { - case DOC_TYPE_INDENT: - case DOC_TYPE_INDENT_IF_BREAK: - case DOC_TYPE_GROUP: - case DOC_TYPE_LINE_SUFFIX: - case DOC_TYPE_LABEL: { - const contents = stripTrailingHardlineFromDoc(doc.contents); - return { - ...doc, - contents - }; - } - case DOC_TYPE_IF_BREAK: - return { - ...doc, - breakContents: stripTrailingHardlineFromDoc(doc.breakContents), - flatContents: stripTrailingHardlineFromDoc(doc.flatContents) - }; - case DOC_TYPE_FILL: - return { - ...doc, - parts: stripTrailingHardlineFromParts(doc.parts) - }; - case DOC_TYPE_ARRAY: - return stripTrailingHardlineFromParts(doc); - case DOC_TYPE_STRING: - return trimNewlinesEnd(doc); - case DOC_TYPE_ALIGN: - case DOC_TYPE_CURSOR: - case DOC_TYPE_TRIM: - case DOC_TYPE_LINE_SUFFIX_BOUNDARY: - case DOC_TYPE_LINE: - case DOC_TYPE_BREAK_PARENT: - break; - default: - throw new invalid_doc_error_default(doc); - } - return doc; -} -function stripTrailingHardline(doc) { - return stripTrailingHardlineFromDoc(cleanDoc(doc)); -} -function cleanDocFn(doc) { - switch (get_doc_type_default(doc)) { - case DOC_TYPE_FILL: { - const { - parts - } = doc; - if (parts.every((part) => part === "")) { - return ""; - } - if (parts.length === 1) { - return parts[0]; - } - break; - } - case DOC_TYPE_GROUP: - if (!doc.contents && !doc.id && !doc.break && !doc.expandedStates) { - return ""; - } - if (doc.contents.type === DOC_TYPE_GROUP && doc.contents.id === doc.id && doc.contents.break === doc.break && doc.contents.expandedStates === doc.expandedStates) { - return doc.contents; - } - break; - case DOC_TYPE_ALIGN: - case DOC_TYPE_INDENT: - case DOC_TYPE_INDENT_IF_BREAK: - case DOC_TYPE_LINE_SUFFIX: - if (!doc.contents) { - return ""; - } - break; - case DOC_TYPE_IF_BREAK: - if (!doc.flatContents && !doc.breakContents) { - return ""; - } - break; - case DOC_TYPE_ARRAY: { - const parts = []; - for (const part of doc) { - if (!part) { - continue; - } - const [currentPart, ...restParts] = Array.isArray(part) ? part : [part]; - if (typeof currentPart === "string" && typeof method_at_default( - /* OPTIONAL_OBJECT: false */ - 0, - parts, - -1 - ) === "string") { - parts[parts.length - 1] += currentPart; - } else { - parts.push(currentPart); - } - parts.push(...restParts); - } - if (parts.length === 0) { - return ""; - } - if (parts.length === 1) { - return parts[0]; - } - return parts; - } - case DOC_TYPE_STRING: - case DOC_TYPE_CURSOR: - case DOC_TYPE_TRIM: - case DOC_TYPE_LINE_SUFFIX_BOUNDARY: - case DOC_TYPE_LINE: - case DOC_TYPE_LABEL: - case DOC_TYPE_BREAK_PARENT: - break; - default: - throw new invalid_doc_error_default(doc); - } - return doc; -} -function cleanDoc(doc) { - return mapDoc(doc, (currentDoc) => cleanDocFn(currentDoc)); -} -function replaceEndOfLine(doc, replacement = literalline) { - return mapDoc(doc, (currentDoc) => typeof currentDoc === "string" ? join(replacement, currentDoc.split("\n")) : currentDoc); -} -function canBreakFn(doc) { - if (doc.type === DOC_TYPE_LINE) { - return true; - } -} -function canBreak(doc) { - return findInDoc(doc, canBreakFn, false); -} - -// src/document/utilities/assert-doc.js -var assertDoc = true ? noop_default : ( - /** - @param {Doc} doc - */ - function(doc) { - traverse_doc_default(doc, (doc2) => { - if (typeof doc2 === "string" || checked.has(doc2)) { - return false; - } - checked.add(doc2); - }); - } -); -var assertDocArray = true ? noop_default : ( - /** - @param {readonly Doc[]} docs - @param {boolean} [optional = false] - */ - function(docs, optional = false) { - if (optional && !docs) { - return; - } - if (!Array.isArray(docs)) { - throw new TypeError("Unexpected doc array."); - } - for (const doc of docs) { - assertDoc(doc); - } - } -); -var assertDocFillParts = true ? noop_default : ( - /** - @param {readonly Doc[]} parts - */ - function(parts) { - assertDocArray(parts); - if (parts.length > 1 && isEmptyDoc(method_at_default( - /* OPTIONAL_OBJECT: false */ - 0, - parts, - -1 - ))) { - parts = parts.slice(0, -1); - } - for (const [i, doc] of parts.entries()) { - if (i % 2 === 1 && !isValidSeparator(doc)) { - const type = get_doc_type_default(doc); - throw new Error(`Unexpected non-line-break doc at ${i}. Doc type is ${type}.`); - } - } - } -); -var assertAlignType = true ? noop_default : function(alignType) { - if (!(typeof alignType === "number" || typeof alignType === "string" || alignType?.type === "root")) { - throw new TypeError(`Invalid alignType '${alignType}'.`); - } -}; - -// src/document/builders/indent.js -function indent(contents) { - assertDoc(contents); - return { type: DOC_TYPE_INDENT, contents }; -} - -// src/document/builders/align.js -function align(alignType, contents) { - assertAlignType(alignType); - assertDoc(contents); - return { type: DOC_TYPE_ALIGN, contents, n: alignType }; -} -function dedentToRoot(contents) { - return align(Number.NEGATIVE_INFINITY, contents); -} -function markAsRoot(contents) { - return align({ type: "root" }, contents); -} -function dedent(contents) { - return align(-1, contents); -} -function addAlignmentToDoc(doc, size, tabWidth) { - assertDoc(doc); - let aligned = doc; - if (size > 0) { - for (let level = 0; level < Math.floor(size / tabWidth); ++level) { - aligned = indent(aligned); - } - aligned = align(size % tabWidth, aligned); - aligned = align(Number.NEGATIVE_INFINITY, aligned); - } - return aligned; -} - -// src/document/builders/break-parent.js -var breakParent = { type: DOC_TYPE_BREAK_PARENT }; - -// src/document/builders/cursor.js -var cursor = { type: DOC_TYPE_CURSOR }; - -// src/document/builders/fill.js -function fill(parts) { - assertDocFillParts(parts); - return { type: DOC_TYPE_FILL, parts }; -} - -// src/document/builders/group.js -function group(contents, options = {}) { - assertDoc(contents); - assertDocArray( - options.expandedStates, - /* optional */ - true - ); - return { - type: DOC_TYPE_GROUP, - id: options.id, - contents, - break: Boolean(options.shouldBreak), - expandedStates: options.expandedStates - }; -} -function conditionalGroup(states, options) { - return group(states[0], { ...options, expandedStates: states }); -} - -// src/document/builders/if-break.js -function ifBreak(breakContents, flatContents = "", options = {}) { - assertDoc(breakContents); - if (flatContents !== "") { - assertDoc(flatContents); - } - return { - type: DOC_TYPE_IF_BREAK, - breakContents, - flatContents, - groupId: options.groupId - }; -} - -// src/document/builders/indent-if-break.js -function indentIfBreak(contents, options) { - assertDoc(contents); - return { - type: DOC_TYPE_INDENT_IF_BREAK, - contents, - groupId: options.groupId, - negate: options.negate - }; -} - -// src/document/builders/join.js -function join(separator, docs) { - assertDoc(separator); - assertDocArray(docs); - const parts = []; - for (let i = 0; i < docs.length; i++) { - if (i !== 0) { - parts.push(separator); - } - parts.push(docs[i]); - } - return parts; -} - -// src/document/builders/label.js -function label(label2, contents) { - assertDoc(contents); - return label2 ? { type: DOC_TYPE_LABEL, label: label2, contents } : contents; -} - -// src/document/builders/line.js -var line = { type: DOC_TYPE_LINE }; -var softline = { type: DOC_TYPE_LINE, soft: true }; -var hardlineWithoutBreakParent = { type: DOC_TYPE_LINE, hard: true }; -var hardline = [hardlineWithoutBreakParent, breakParent]; -var literallineWithoutBreakParent = { - type: DOC_TYPE_LINE, - hard: true, - literal: true -}; -var literalline = [literallineWithoutBreakParent, breakParent]; - -// src/document/builders/line-suffix.js -function lineSuffix(contents) { - assertDoc(contents); - return { type: DOC_TYPE_LINE_SUFFIX, contents }; -} - -// src/document/builders/line-suffix-boundary.js -var lineSuffixBoundary = { type: DOC_TYPE_LINE_SUFFIX_BOUNDARY }; - -// src/document/builders/trim.js -var trim = { type: DOC_TYPE_TRIM }; - -// scripts/build/shims/method-replace-all.js -var stringReplaceAll = String.prototype.replaceAll ?? function(pattern, replacement) { - if (pattern.global) { - return this.replace(pattern, replacement); - } - return this.split(pattern).join(replacement); -}; -var replaceAll = /* @__PURE__ */ createMethodShim("replaceAll", function() { - if (typeof this === "string") { - return stringReplaceAll; - } -}); -var method_replace_all_default = replaceAll; - -// src/common/end-of-line.js -var OPTION_CR = "cr"; -var OPTION_CRLF = "crlf"; -var CHARACTER_CR = "\r"; -var CHARACTER_CRLF = "\r\n"; -var CHARACTER_LF = "\n"; -var DEFAULT_EOL = CHARACTER_LF; -function convertEndOfLineOptionToCharacter(endOfLineOption) { - return endOfLineOption === OPTION_CR ? CHARACTER_CR : endOfLineOption === OPTION_CRLF ? CHARACTER_CRLF : DEFAULT_EOL; -} - -// node_modules/emoji-regex/index.mjs -var emoji_regex_default = () => { - return /[#*0-9]\uFE0F?\u20E3|[\xA9\xAE\u203C\u2049\u2122\u2139\u2194-\u2199\u21A9\u21AA\u231A\u231B\u2328\u23CF\u23ED-\u23EF\u23F1\u23F2\u23F8-\u23FA\u24C2\u25AA\u25AB\u25B6\u25C0\u25FB\u25FC\u25FE\u2600-\u2604\u260E\u2611\u2614\u2615\u2618\u2620\u2622\u2623\u2626\u262A\u262E\u262F\u2638-\u263A\u2640\u2642\u2648-\u2653\u265F\u2660\u2663\u2665\u2666\u2668\u267B\u267E\u267F\u2692\u2694-\u2697\u2699\u269B\u269C\u26A0\u26A7\u26AA\u26B0\u26B1\u26BD\u26BE\u26C4\u26C8\u26CF\u26D1\u26E9\u26F0-\u26F5\u26F7\u26F8\u26FA\u2702\u2708\u2709\u270F\u2712\u2714\u2716\u271D\u2721\u2733\u2734\u2744\u2747\u2757\u2763\u27A1\u2934\u2935\u2B05-\u2B07\u2B1B\u2B1C\u2B55\u3030\u303D\u3297\u3299]\uFE0F?|[\u261D\u270C\u270D](?:\uD83C[\uDFFB-\uDFFF]|\uFE0F)?|[\u270A\u270B](?:\uD83C[\uDFFB-\uDFFF])?|[\u23E9-\u23EC\u23F0\u23F3\u25FD\u2693\u26A1\u26AB\u26C5\u26CE\u26D4\u26EA\u26FD\u2705\u2728\u274C\u274E\u2753-\u2755\u2795-\u2797\u27B0\u27BF\u2B50]|\u26D3\uFE0F?(?:\u200D\uD83D\uDCA5)?|\u26F9(?:\uD83C[\uDFFB-\uDFFF]|\uFE0F)?(?:\u200D[\u2640\u2642]\uFE0F?)?|\u2764\uFE0F?(?:\u200D(?:\uD83D\uDD25|\uD83E\uDE79))?|\uD83C(?:[\uDC04\uDD70\uDD71\uDD7E\uDD7F\uDE02\uDE37\uDF21\uDF24-\uDF2C\uDF36\uDF7D\uDF96\uDF97\uDF99-\uDF9B\uDF9E\uDF9F\uDFCD\uDFCE\uDFD4-\uDFDF\uDFF5\uDFF7]\uFE0F?|[\uDF85\uDFC2\uDFC7](?:\uD83C[\uDFFB-\uDFFF])?|[\uDFC4\uDFCA](?:\uD83C[\uDFFB-\uDFFF])?(?:\u200D[\u2640\u2642]\uFE0F?)?|[\uDFCB\uDFCC](?:\uD83C[\uDFFB-\uDFFF]|\uFE0F)?(?:\u200D[\u2640\u2642]\uFE0F?)?|[\uDCCF\uDD8E\uDD91-\uDD9A\uDE01\uDE1A\uDE2F\uDE32-\uDE36\uDE38-\uDE3A\uDE50\uDE51\uDF00-\uDF20\uDF2D-\uDF35\uDF37-\uDF43\uDF45-\uDF4A\uDF4C-\uDF7C\uDF7E-\uDF84\uDF86-\uDF93\uDFA0-\uDFC1\uDFC5\uDFC6\uDFC8\uDFC9\uDFCF-\uDFD3\uDFE0-\uDFF0\uDFF8-\uDFFF]|\uDDE6\uD83C[\uDDE8-\uDDEC\uDDEE\uDDF1\uDDF2\uDDF4\uDDF6-\uDDFA\uDDFC\uDDFD\uDDFF]|\uDDE7\uD83C[\uDDE6\uDDE7\uDDE9-\uDDEF\uDDF1-\uDDF4\uDDF6-\uDDF9\uDDFB\uDDFC\uDDFE\uDDFF]|\uDDE8\uD83C[\uDDE6\uDDE8\uDDE9\uDDEB-\uDDEE\uDDF0-\uDDF7\uDDFA-\uDDFF]|\uDDE9\uD83C[\uDDEA\uDDEC\uDDEF\uDDF0\uDDF2\uDDF4\uDDFF]|\uDDEA\uD83C[\uDDE6\uDDE8\uDDEA\uDDEC\uDDED\uDDF7-\uDDFA]|\uDDEB\uD83C[\uDDEE-\uDDF0\uDDF2\uDDF4\uDDF7]|\uDDEC\uD83C[\uDDE6\uDDE7\uDDE9-\uDDEE\uDDF1-\uDDF3\uDDF5-\uDDFA\uDDFC\uDDFE]|\uDDED\uD83C[\uDDF0\uDDF2\uDDF3\uDDF7\uDDF9\uDDFA]|\uDDEE\uD83C[\uDDE8-\uDDEA\uDDF1-\uDDF4\uDDF6-\uDDF9]|\uDDEF\uD83C[\uDDEA\uDDF2\uDDF4\uDDF5]|\uDDF0\uD83C[\uDDEA\uDDEC-\uDDEE\uDDF2\uDDF3\uDDF5\uDDF7\uDDFC\uDDFE\uDDFF]|\uDDF1\uD83C[\uDDE6-\uDDE8\uDDEE\uDDF0\uDDF7-\uDDFB\uDDFE]|\uDDF2\uD83C[\uDDE6\uDDE8-\uDDED\uDDF0-\uDDFF]|\uDDF3\uD83C[\uDDE6\uDDE8\uDDEA-\uDDEC\uDDEE\uDDF1\uDDF4\uDDF5\uDDF7\uDDFA\uDDFF]|\uDDF4\uD83C\uDDF2|\uDDF5\uD83C[\uDDE6\uDDEA-\uDDED\uDDF0-\uDDF3\uDDF7-\uDDF9\uDDFC\uDDFE]|\uDDF6\uD83C\uDDE6|\uDDF7\uD83C[\uDDEA\uDDF4\uDDF8\uDDFA\uDDFC]|\uDDF8\uD83C[\uDDE6-\uDDEA\uDDEC-\uDDF4\uDDF7-\uDDF9\uDDFB\uDDFD-\uDDFF]|\uDDF9\uD83C[\uDDE6\uDDE8\uDDE9\uDDEB-\uDDED\uDDEF-\uDDF4\uDDF7\uDDF9\uDDFB\uDDFC\uDDFF]|\uDDFA\uD83C[\uDDE6\uDDEC\uDDF2\uDDF3\uDDF8\uDDFE\uDDFF]|\uDDFB\uD83C[\uDDE6\uDDE8\uDDEA\uDDEC\uDDEE\uDDF3\uDDFA]|\uDDFC\uD83C[\uDDEB\uDDF8]|\uDDFD\uD83C\uDDF0|\uDDFE\uD83C[\uDDEA\uDDF9]|\uDDFF\uD83C[\uDDE6\uDDF2\uDDFC]|\uDF44(?:\u200D\uD83D\uDFEB)?|\uDF4B(?:\u200D\uD83D\uDFE9)?|\uDFC3(?:\uD83C[\uDFFB-\uDFFF])?(?:\u200D(?:[\u2640\u2642]\uFE0F?(?:\u200D\u27A1\uFE0F?)?|\u27A1\uFE0F?))?|\uDFF3\uFE0F?(?:\u200D(?:\u26A7\uFE0F?|\uD83C\uDF08))?|\uDFF4(?:\u200D\u2620\uFE0F?|\uDB40\uDC67\uDB40\uDC62\uDB40(?:\uDC65\uDB40\uDC6E\uDB40\uDC67|\uDC73\uDB40\uDC63\uDB40\uDC74|\uDC77\uDB40\uDC6C\uDB40\uDC73)\uDB40\uDC7F)?)|\uD83D(?:[\uDC3F\uDCFD\uDD49\uDD4A\uDD6F\uDD70\uDD73\uDD76-\uDD79\uDD87\uDD8A-\uDD8D\uDDA5\uDDA8\uDDB1\uDDB2\uDDBC\uDDC2-\uDDC4\uDDD1-\uDDD3\uDDDC-\uDDDE\uDDE1\uDDE3\uDDE8\uDDEF\uDDF3\uDDFA\uDECB\uDECD-\uDECF\uDEE0-\uDEE5\uDEE9\uDEF0\uDEF3]\uFE0F?|[\uDC42\uDC43\uDC46-\uDC50\uDC66\uDC67\uDC6B-\uDC6D\uDC72\uDC74-\uDC76\uDC78\uDC7C\uDC83\uDC85\uDC8F\uDC91\uDCAA\uDD7A\uDD95\uDD96\uDE4C\uDE4F\uDEC0\uDECC](?:\uD83C[\uDFFB-\uDFFF])?|[\uDC6E-\uDC71\uDC73\uDC77\uDC81\uDC82\uDC86\uDC87\uDE45-\uDE47\uDE4B\uDE4D\uDE4E\uDEA3\uDEB4\uDEB5](?:\uD83C[\uDFFB-\uDFFF])?(?:\u200D[\u2640\u2642]\uFE0F?)?|[\uDD74\uDD90](?:\uD83C[\uDFFB-\uDFFF]|\uFE0F)?|[\uDC00-\uDC07\uDC09-\uDC14\uDC16-\uDC25\uDC27-\uDC3A\uDC3C-\uDC3E\uDC40\uDC44\uDC45\uDC51-\uDC65\uDC6A\uDC79-\uDC7B\uDC7D-\uDC80\uDC84\uDC88-\uDC8E\uDC90\uDC92-\uDCA9\uDCAB-\uDCFC\uDCFF-\uDD3D\uDD4B-\uDD4E\uDD50-\uDD67\uDDA4\uDDFB-\uDE2D\uDE2F-\uDE34\uDE37-\uDE41\uDE43\uDE44\uDE48-\uDE4A\uDE80-\uDEA2\uDEA4-\uDEB3\uDEB7-\uDEBF\uDEC1-\uDEC5\uDED0-\uDED2\uDED5-\uDED8\uDEDC-\uDEDF\uDEEB\uDEEC\uDEF4-\uDEFC\uDFE0-\uDFEB\uDFF0]|\uDC08(?:\u200D\u2B1B)?|\uDC15(?:\u200D\uD83E\uDDBA)?|\uDC26(?:\u200D(?:\u2B1B|\uD83D\uDD25))?|\uDC3B(?:\u200D\u2744\uFE0F?)?|\uDC41\uFE0F?(?:\u200D\uD83D\uDDE8\uFE0F?)?|\uDC68(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:\uDC8B\u200D\uD83D)?\uDC68|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D(?:[\uDC68\uDC69]\u200D\uD83D(?:\uDC66(?:\u200D\uD83D\uDC66)?|\uDC67(?:\u200D\uD83D[\uDC66\uDC67])?)|[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uDC66(?:\u200D\uD83D\uDC66)?|\uDC67(?:\u200D\uD83D[\uDC66\uDC67])?)|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]))|\uD83C(?:\uDFFB(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:\uDC8B\u200D\uD83D)?\uDC68\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D(?:[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uDC30\u200D\uD83D\uDC68\uD83C[\uDFFC-\uDFFF])|\uD83E(?:[\uDD1D\uDEEF]\u200D\uD83D\uDC68\uD83C[\uDFFC-\uDFFF]|[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3])))?|\uDFFC(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:\uDC8B\u200D\uD83D)?\uDC68\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D(?:[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uDC30\u200D\uD83D\uDC68\uD83C[\uDFFB\uDFFD-\uDFFF])|\uD83E(?:[\uDD1D\uDEEF]\u200D\uD83D\uDC68\uD83C[\uDFFB\uDFFD-\uDFFF]|[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3])))?|\uDFFD(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:\uDC8B\u200D\uD83D)?\uDC68\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D(?:[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uDC30\u200D\uD83D\uDC68\uD83C[\uDFFB\uDFFC\uDFFE\uDFFF])|\uD83E(?:[\uDD1D\uDEEF]\u200D\uD83D\uDC68\uD83C[\uDFFB\uDFFC\uDFFE\uDFFF]|[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3])))?|\uDFFE(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:\uDC8B\u200D\uD83D)?\uDC68\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D(?:[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uDC30\u200D\uD83D\uDC68\uD83C[\uDFFB-\uDFFD\uDFFF])|\uD83E(?:[\uDD1D\uDEEF]\u200D\uD83D\uDC68\uD83C[\uDFFB-\uDFFD\uDFFF]|[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3])))?|\uDFFF(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:\uDC8B\u200D\uD83D)?\uDC68\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D(?:[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uDC30\u200D\uD83D\uDC68\uD83C[\uDFFB-\uDFFE])|\uD83E(?:[\uDD1D\uDEEF]\u200D\uD83D\uDC68\uD83C[\uDFFB-\uDFFE]|[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3])))?))?|\uDC69(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:\uDC8B\u200D\uD83D)?[\uDC68\uDC69]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D(?:[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uDC66(?:\u200D\uD83D\uDC66)?|\uDC67(?:\u200D\uD83D[\uDC66\uDC67])?|\uDC69\u200D\uD83D(?:\uDC66(?:\u200D\uD83D\uDC66)?|\uDC67(?:\u200D\uD83D[\uDC66\uDC67])?))|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]))|\uD83C(?:\uDFFB(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:[\uDC68\uDC69]|\uDC8B\u200D\uD83D[\uDC68\uDC69])\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D(?:[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uDC30\u200D\uD83D\uDC69\uD83C[\uDFFC-\uDFFF])|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83D[\uDC68\uDC69]\uD83C[\uDFFC-\uDFFF]|\uDEEF\u200D\uD83D\uDC69\uD83C[\uDFFC-\uDFFF])))?|\uDFFC(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:[\uDC68\uDC69]|\uDC8B\u200D\uD83D[\uDC68\uDC69])\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D(?:[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uDC30\u200D\uD83D\uDC69\uD83C[\uDFFB\uDFFD-\uDFFF])|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83D[\uDC68\uDC69]\uD83C[\uDFFB\uDFFD-\uDFFF]|\uDEEF\u200D\uD83D\uDC69\uD83C[\uDFFB\uDFFD-\uDFFF])))?|\uDFFD(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:[\uDC68\uDC69]|\uDC8B\u200D\uD83D[\uDC68\uDC69])\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D(?:[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uDC30\u200D\uD83D\uDC69\uD83C[\uDFFB\uDFFC\uDFFE\uDFFF])|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83D[\uDC68\uDC69]\uD83C[\uDFFB\uDFFC\uDFFE\uDFFF]|\uDEEF\u200D\uD83D\uDC69\uD83C[\uDFFB\uDFFC\uDFFE\uDFFF])))?|\uDFFE(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:[\uDC68\uDC69]|\uDC8B\u200D\uD83D[\uDC68\uDC69])\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D(?:[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uDC30\u200D\uD83D\uDC69\uD83C[\uDFFB-\uDFFD\uDFFF])|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83D[\uDC68\uDC69]\uD83C[\uDFFB-\uDFFD\uDFFF]|\uDEEF\u200D\uD83D\uDC69\uD83C[\uDFFB-\uDFFD\uDFFF])))?|\uDFFF(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:[\uDC68\uDC69]|\uDC8B\u200D\uD83D[\uDC68\uDC69])\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D(?:[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uDC30\u200D\uD83D\uDC69\uD83C[\uDFFB-\uDFFE])|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83D[\uDC68\uDC69]\uD83C[\uDFFB-\uDFFE]|\uDEEF\u200D\uD83D\uDC69\uD83C[\uDFFB-\uDFFE])))?))?|\uDD75(?:\uD83C[\uDFFB-\uDFFF]|\uFE0F)?(?:\u200D[\u2640\u2642]\uFE0F?)?|\uDE2E(?:\u200D\uD83D\uDCA8)?|\uDE35(?:\u200D\uD83D\uDCAB)?|\uDE36(?:\u200D\uD83C\uDF2B\uFE0F?)?|\uDE42(?:\u200D[\u2194\u2195]\uFE0F?)?|\uDEB6(?:\uD83C[\uDFFB-\uDFFF])?(?:\u200D(?:[\u2640\u2642]\uFE0F?(?:\u200D\u27A1\uFE0F?)?|\u27A1\uFE0F?))?)|\uD83E(?:[\uDD0C\uDD0F\uDD18-\uDD1F\uDD30-\uDD34\uDD36\uDD77\uDDB5\uDDB6\uDDBB\uDDD2\uDDD3\uDDD5\uDEC3-\uDEC5\uDEF0\uDEF2-\uDEF8](?:\uD83C[\uDFFB-\uDFFF])?|[\uDD26\uDD35\uDD37-\uDD39\uDD3C-\uDD3E\uDDB8\uDDB9\uDDCD\uDDCF\uDDD4\uDDD6-\uDDDD](?:\uD83C[\uDFFB-\uDFFF])?(?:\u200D[\u2640\u2642]\uFE0F?)?|[\uDDDE\uDDDF](?:\u200D[\u2640\u2642]\uFE0F?)?|[\uDD0D\uDD0E\uDD10-\uDD17\uDD20-\uDD25\uDD27-\uDD2F\uDD3A\uDD3F-\uDD45\uDD47-\uDD76\uDD78-\uDDB4\uDDB7\uDDBA\uDDBC-\uDDCC\uDDD0\uDDE0-\uDDFF\uDE70-\uDE7C\uDE80-\uDE8A\uDE8E-\uDEC2\uDEC6\uDEC8\uDECD-\uDEDC\uDEDF-\uDEEA\uDEEF]|\uDDCE(?:\uD83C[\uDFFB-\uDFFF])?(?:\u200D(?:[\u2640\u2642]\uFE0F?(?:\u200D\u27A1\uFE0F?)?|\u27A1\uFE0F?))?|\uDDD1(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3\uDE70]|\uDD1D\u200D\uD83E\uDDD1|\uDDD1\u200D\uD83E\uDDD2(?:\u200D\uD83E\uDDD2)?|\uDDD2(?:\u200D\uD83E\uDDD2)?))|\uD83C(?:\uDFFB(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D(?:\uD83D\uDC8B\u200D)?\uD83E\uDDD1\uD83C[\uDFFC-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D(?:[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uDC30\u200D\uD83E\uDDD1\uD83C[\uDFFC-\uDFFF])|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3\uDE70]|\uDD1D\u200D\uD83E\uDDD1\uD83C[\uDFFB-\uDFFF]|\uDEEF\u200D\uD83E\uDDD1\uD83C[\uDFFC-\uDFFF])))?|\uDFFC(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D(?:\uD83D\uDC8B\u200D)?\uD83E\uDDD1\uD83C[\uDFFB\uDFFD-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D(?:[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uDC30\u200D\uD83E\uDDD1\uD83C[\uDFFB\uDFFD-\uDFFF])|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3\uDE70]|\uDD1D\u200D\uD83E\uDDD1\uD83C[\uDFFB-\uDFFF]|\uDEEF\u200D\uD83E\uDDD1\uD83C[\uDFFB\uDFFD-\uDFFF])))?|\uDFFD(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D(?:\uD83D\uDC8B\u200D)?\uD83E\uDDD1\uD83C[\uDFFB\uDFFC\uDFFE\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D(?:[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uDC30\u200D\uD83E\uDDD1\uD83C[\uDFFB\uDFFC\uDFFE\uDFFF])|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3\uDE70]|\uDD1D\u200D\uD83E\uDDD1\uD83C[\uDFFB-\uDFFF]|\uDEEF\u200D\uD83E\uDDD1\uD83C[\uDFFB\uDFFC\uDFFE\uDFFF])))?|\uDFFE(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D(?:\uD83D\uDC8B\u200D)?\uD83E\uDDD1\uD83C[\uDFFB-\uDFFD\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D(?:[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uDC30\u200D\uD83E\uDDD1\uD83C[\uDFFB-\uDFFD\uDFFF])|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3\uDE70]|\uDD1D\u200D\uD83E\uDDD1\uD83C[\uDFFB-\uDFFF]|\uDEEF\u200D\uD83E\uDDD1\uD83C[\uDFFB-\uDFFD\uDFFF])))?|\uDFFF(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D(?:\uD83D\uDC8B\u200D)?\uD83E\uDDD1\uD83C[\uDFFB-\uDFFE]|\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D(?:[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uDC30\u200D\uD83E\uDDD1\uD83C[\uDFFB-\uDFFE])|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3\uDE70]|\uDD1D\u200D\uD83E\uDDD1\uD83C[\uDFFB-\uDFFF]|\uDEEF\u200D\uD83E\uDDD1\uD83C[\uDFFB-\uDFFE])))?))?|\uDEF1(?:\uD83C(?:\uDFFB(?:\u200D\uD83E\uDEF2\uD83C[\uDFFC-\uDFFF])?|\uDFFC(?:\u200D\uD83E\uDEF2\uD83C[\uDFFB\uDFFD-\uDFFF])?|\uDFFD(?:\u200D\uD83E\uDEF2\uD83C[\uDFFB\uDFFC\uDFFE\uDFFF])?|\uDFFE(?:\u200D\uD83E\uDEF2\uD83C[\uDFFB-\uDFFD\uDFFF])?|\uDFFF(?:\u200D\uD83E\uDEF2\uD83C[\uDFFB-\uDFFE])?))?)/g; -}; - -// node_modules/get-east-asian-width/lookup-data.js -var fullwidthMinimalCodePoint = 12288; -var fullwidthMaximumCodePoint = 65510; -var fullwidthRanges = [12288, 12288, 65281, 65376, 65504, 65510]; -var wideMinimalCodePoint = 4352; -var wideMaximumCodePoint = 262141; -var wideRanges = [4352, 4447, 8986, 8987, 9001, 9002, 9193, 9196, 9200, 9200, 9203, 9203, 9725, 9726, 9748, 9749, 9776, 9783, 9800, 9811, 9855, 9855, 9866, 9871, 9875, 9875, 9889, 9889, 9898, 9899, 9917, 9918, 9924, 9925, 9934, 9934, 9940, 9940, 9962, 9962, 9970, 9971, 9973, 9973, 9978, 9978, 9981, 9981, 9989, 9989, 9994, 9995, 10024, 10024, 10060, 10060, 10062, 10062, 10067, 10069, 10071, 10071, 10133, 10135, 10160, 10160, 10175, 10175, 11035, 11036, 11088, 11088, 11093, 11093, 11904, 11929, 11931, 12019, 12032, 12245, 12272, 12287, 12289, 12350, 12353, 12438, 12441, 12543, 12549, 12591, 12593, 12686, 12688, 12773, 12783, 12830, 12832, 12871, 12880, 42124, 42128, 42182, 43360, 43388, 44032, 55203, 63744, 64255, 65040, 65049, 65072, 65106, 65108, 65126, 65128, 65131, 94176, 94180, 94192, 94198, 94208, 101589, 101631, 101662, 101760, 101874, 110576, 110579, 110581, 110587, 110589, 110590, 110592, 110882, 110898, 110898, 110928, 110930, 110933, 110933, 110948, 110951, 110960, 111355, 119552, 119638, 119648, 119670, 126980, 126980, 127183, 127183, 127374, 127374, 127377, 127386, 127488, 127490, 127504, 127547, 127552, 127560, 127568, 127569, 127584, 127589, 127744, 127776, 127789, 127797, 127799, 127868, 127870, 127891, 127904, 127946, 127951, 127955, 127968, 127984, 127988, 127988, 127992, 128062, 128064, 128064, 128066, 128252, 128255, 128317, 128331, 128334, 128336, 128359, 128378, 128378, 128405, 128406, 128420, 128420, 128507, 128591, 128640, 128709, 128716, 128716, 128720, 128722, 128725, 128728, 128732, 128735, 128747, 128748, 128756, 128764, 128992, 129003, 129008, 129008, 129292, 129338, 129340, 129349, 129351, 129535, 129648, 129660, 129664, 129674, 129678, 129734, 129736, 129736, 129741, 129756, 129759, 129770, 129775, 129784, 131072, 196605, 196608, 262141]; - -// node_modules/get-east-asian-width/utilities.js -var isInRange = (ranges, codePoint) => { - let low = 0; - let high = Math.floor(ranges.length / 2) - 1; - while (low <= high) { - const mid = Math.floor((low + high) / 2); - const i = mid * 2; - if (codePoint < ranges[i]) { - high = mid - 1; - } else if (codePoint > ranges[i + 1]) { - low = mid + 1; - } else { - return true; - } - } - return false; -}; - -// node_modules/get-east-asian-width/lookup.js -var commonCjkCodePoint = 19968; -var [wideFastPathStart, wideFastPathEnd] = /* @__PURE__ */ findWideFastPathRange(wideRanges); -function findWideFastPathRange(ranges) { - let fastPathStart = ranges[0]; - let fastPathEnd = ranges[1]; - for (let index = 0; index < ranges.length; index += 2) { - const start = ranges[index]; - const end = ranges[index + 1]; - if (commonCjkCodePoint >= start && commonCjkCodePoint <= end) { - return [start, end]; - } - if (end - start > fastPathEnd - fastPathStart) { - fastPathStart = start; - fastPathEnd = end; - } - } - return [fastPathStart, fastPathEnd]; -} -var isFullWidth = (codePoint) => { - if (codePoint < fullwidthMinimalCodePoint || codePoint > fullwidthMaximumCodePoint) { - return false; - } - return isInRange(fullwidthRanges, codePoint); -}; -var isWide = (codePoint) => { - if (codePoint >= wideFastPathStart && codePoint <= wideFastPathEnd) { - return true; - } - if (codePoint < wideMinimalCodePoint || codePoint > wideMaximumCodePoint) { - return false; - } - return isInRange(wideRanges, codePoint); -}; - -// node_modules/narrow-emojis/index.js -var narrowEmojiRegexp = /^(?:[\xA9\xAE\u203C\u2049\u2122\u2139\u2194-\u2199\u21A9\u21AA\u2328\u23CF\u23ED-\u23EF\u23F1\u23F2\u23F8-\u23FA\u24C2\u25AA\u25AB\u25B6\u25C0\u25FB\u25FC\u2600-\u2604\u260E\u2611\u2618\u2620\u2622\u2623\u2626\u262A\u262E\u262F\u2638-\u263A\u2640\u2642\u265F\u2660\u2663\u2665\u2666\u2668\u267B\u267E\u2692\u2694-\u2697\u2699\u269B\u269C\u26A0\u26A7\u26B0\u26B1\u26C8\u26CF\u26D1\u26D3\u26E9\u26F0\u26F1\u26F4\u26F7\u26F8\u2702\u2708\u2709\u270F\u2712\u2714\u2716\u271D\u2721\u2733\u2734\u2744\u2747\u2763\u2764\u27A1\u2934\u2935\u2B05-\u2B07]|\uD83C[\uDD70\uDD71\uDD7E\uDD7F\uDF21\uDF24-\uDF2C\uDF36\uDF7D\uDF96\uDF97\uDF99-\uDF9B\uDF9E\uDF9F\uDFCD\uDFCE\uDFD4-\uDFDF\uDFF3\uDFF5\uDFF7]|\uD83D[\uDC3F\uDC41\uDCFD\uDD49\uDD4A\uDD6F\uDD70\uDD73\uDD76-\uDD79\uDD87\uDD8A-\uDD8D\uDDA5\uDDA8\uDDB1\uDDB2\uDDBC\uDDC2-\uDDC4\uDDD1-\uDDD3\uDDDC-\uDDDE\uDDE1\uDDE3\uDDE8\uDDEF\uDDF3\uDDFA\uDECB\uDECD-\uDECF\uDEE0-\uDEE5\uDEE9\uDEF0\uDEF3])$/; -var isNarrowEmojiCharacter = (character) => narrowEmojiRegexp.test(character); - -// src/utilities/get-string-width.js -var notAsciiRegex = /[^\x20-\x7F]/; -function getStringWidth(text) { - if (!text) { - return 0; - } - if (!notAsciiRegex.test(text)) { - return text.length; - } - let width = 0; - text = text.replace(emoji_regex_default(), (character) => { - width += isNarrowEmojiCharacter(character) ? 1 : 2; - return ""; - }); - for (const character of text) { - const codePoint = character.codePointAt(0); - if (codePoint <= 31 || codePoint >= 127 && codePoint <= 159) { - continue; - } - if (codePoint >= 768 && codePoint <= 879) { - continue; - } - if (codePoint >= 65024 && codePoint <= 65039) { - continue; - } - width += isFullWidth(codePoint) || isWide(codePoint) ? 2 : 1; - } - return width; -} -var get_string_width_default = getStringWidth; - -// src/document/printer/indent.js -var INDENT_COMMAND_TYPE_INDENT = 0; -var INDENT_COMMAND_TYPE_DEDENT = 1; -var INDENT_COMMAND_TYPE_WIDTH = 2; -var INDENT_COMMAND_TYPE_STRING = 3; -var INDENT_COMMAND_INDENT = { type: INDENT_COMMAND_TYPE_INDENT }; -var INDENT_COMMAND_DEDENT = { type: INDENT_COMMAND_TYPE_DEDENT }; -var ROOT_INDENT = { - value: "", - length: 0, - queue: [], - get root() { - return ROOT_INDENT; - } -}; -function generateIndent(indent2, command, options) { - const queue = command.type === INDENT_COMMAND_TYPE_DEDENT ? indent2.queue.slice(0, -1) : [...indent2.queue, command]; - let value = ""; - let length = 0; - let lastTabs = 0; - let lastSpaces = 0; - for (const command2 of queue) { - switch (command2.type) { - case INDENT_COMMAND_TYPE_INDENT: - flush(); - if (options.useTabs) { - addTabs(1); - } else { - addSpaces(options.tabWidth); - } - break; - case INDENT_COMMAND_TYPE_STRING: { - const { string } = command2; - flush(); - value += string; - length += string.length; - break; - } - case INDENT_COMMAND_TYPE_WIDTH: { - const { width } = command2; - lastTabs += 1; - lastSpaces += width; - break; - } - default: - throw new Error(`Unexpected indent comment '${command2.type}'.`); - } - } - flushSpaces(); - return { ...indent2, value, length, queue }; - function addTabs(count) { - value += " ".repeat(count); - length += options.tabWidth * count; - } - function addSpaces(count) { - value += " ".repeat(count); - length += count; - } - function flush() { - if (options.useTabs) { - flushTabs(); - } else { - flushSpaces(); - } - } - function flushTabs() { - if (lastTabs > 0) { - addTabs(lastTabs); - } - resetLast(); - } - function flushSpaces() { - if (lastSpaces > 0) { - addSpaces(lastSpaces); - } - resetLast(); - } - function resetLast() { - lastTabs = 0; - lastSpaces = 0; - } -} -function makeAlign(indent2, indentOptions, options) { - if (!indentOptions) { - return indent2; - } - if (indentOptions.type === "root") { - return { ...indent2, root: indent2 }; - } - if (indentOptions === Number.NEGATIVE_INFINITY) { - return indent2.root; - } - let command; - if (typeof indentOptions === "number") { - if (indentOptions < 0) { - command = INDENT_COMMAND_DEDENT; - } else { - command = { type: INDENT_COMMAND_TYPE_WIDTH, width: indentOptions }; - } - } else { - command = { type: INDENT_COMMAND_TYPE_STRING, string: indentOptions }; - } - return generateIndent(indent2, command, options); -} -function makeIndent(indent2, options) { - return generateIndent(indent2, INDENT_COMMAND_INDENT, options); -} - -// src/document/printer/trim-indentation.js -function getTrailingIndentionLength(text) { - let length = 0; - for (let index = text.length - 1; index >= 0; index--) { - const character = text[index]; - if (character === " " || character === " ") { - length++; - } else { - break; - } - } - return length; -} -function trimIndentation(text) { - const length = getTrailingIndentionLength(text); - const trimmed = length === 0 ? text : text.slice(0, text.length - length); - return { text: trimmed, count: length }; -} - -// src/document/printer/print-result.js -var printResult = class { - /** @type {string[]} */ - #settledTexts = []; - #unsettledText = ""; - #settledTextLength = 0; - /** @type {number[]} */ - #settledPositions = []; - /** @type {number[]} */ - #unsettledPositions = []; - #settle() { - const text = this.#unsettledText; - if (text !== "") { - this.#settledTexts.push(text); - this.#settledTextLength += text.length; - this.#unsettledText = ""; - } - for (const position of this.#unsettledPositions) { - this.#settledPositions.push(Math.min(position, this.#settledTextLength)); - } - this.#unsettledPositions.length = 0; - } - markPosition() { - if (this.#settledPositions.length + this.#unsettledPositions.length >= 2) { - throw new Error("There are too many 'cursor' in doc."); - } - this.#unsettledPositions.push( - this.#settledTextLength + this.#unsettledText.length - ); - } - /** - @param {string} text - */ - write(text) { - this.#unsettledText += text; - } - trim() { - const { text: trimmed, count } = trimIndentation(this.#unsettledText); - this.#unsettledText = trimmed; - this.#settle(); - return count; - } - finish() { - this.#settle(); - return { - text: this.#settledTexts.join(""), - positions: this.#settledPositions - }; - } -}; -var print_result_default = printResult; - -// src/document/printer/printer.js -var MODE_BREAK = /* @__PURE__ */ Symbol("MODE_BREAK"); -var MODE_FLAT = /* @__PURE__ */ Symbol("MODE_FLAT"); -var DOC_FILL_PRINTED_LENGTH = /* @__PURE__ */ Symbol("DOC_FILL_PRINTED_LENGTH"); -function fits(next, restCommands, remainingWidth, hasLineSuffix, groupModeMap, mustBeFlat) { - if (remainingWidth === Number.POSITIVE_INFINITY) { - return true; - } - let restCommandsIndex = restCommands.length; - let hasPendingSpace = false; - const commands = [next]; - let output = ""; - while (remainingWidth >= 0) { - if (commands.length === 0) { - if (restCommandsIndex === 0) { - return true; - } - commands.push(restCommands[--restCommandsIndex]); - continue; - } - const { - mode, - doc - } = commands.pop(); - const docType = get_doc_type_default(doc); - switch (docType) { - case DOC_TYPE_STRING: - if (doc) { - if (hasPendingSpace) { - output += " "; - remainingWidth -= 1; - hasPendingSpace = false; - } - output += doc; - remainingWidth -= get_string_width_default(doc); - } - break; - case DOC_TYPE_ARRAY: - case DOC_TYPE_FILL: { - const parts = docType === DOC_TYPE_ARRAY ? doc : doc.parts; - const end = doc[DOC_FILL_PRINTED_LENGTH] ?? 0; - for (let index = parts.length - 1; index >= end; index--) { - commands.push({ - mode, - doc: parts[index] - }); - } - break; - } - case DOC_TYPE_INDENT: - case DOC_TYPE_ALIGN: - case DOC_TYPE_INDENT_IF_BREAK: - case DOC_TYPE_LABEL: - commands.push({ - mode, - doc: doc.contents - }); - break; - case DOC_TYPE_TRIM: { - const { - text, - count - } = trimIndentation(output); - output = text; - remainingWidth += count; - break; - } - case DOC_TYPE_GROUP: { - if (mustBeFlat && doc.break) { - return false; - } - const groupMode = doc.break ? MODE_BREAK : mode; - const contents = doc.expandedStates && groupMode === MODE_BREAK ? method_at_default( - /* OPTIONAL_OBJECT: false */ - 0, - doc.expandedStates, - -1 - ) : doc.contents; - commands.push({ - mode: groupMode, - doc: contents - }); - break; - } - case DOC_TYPE_IF_BREAK: { - const groupMode = doc.groupId ? groupModeMap[doc.groupId] || MODE_FLAT : mode; - const contents = groupMode === MODE_BREAK ? doc.breakContents : doc.flatContents; - if (contents) { - commands.push({ - mode, - doc: contents - }); - } - break; - } - case DOC_TYPE_LINE: - if (mode === MODE_BREAK || doc.hard) { - return true; - } - if (!doc.soft) { - hasPendingSpace = true; - } - break; - case DOC_TYPE_LINE_SUFFIX: - hasLineSuffix = true; - break; - case DOC_TYPE_LINE_SUFFIX_BOUNDARY: - if (hasLineSuffix) { - return false; - } - break; - } - } - return false; -} -function printDocToString(doc, options) { - const groupModeMap = /* @__PURE__ */ Object.create(null); - const width = options.printWidth; - const newLine = convertEndOfLineOptionToCharacter(options.endOfLine); - let position = 0; - const commands = [{ - indent: ROOT_INDENT, - mode: MODE_BREAK, - doc - }]; - let shouldRemeasure = false; - const lineSuffix2 = []; - const result = new print_result_default(); - propagateBreaks(doc); - while (commands.length > 0) { - const { - indent: indent2, - mode, - doc: doc2 - } = commands.pop(); - switch (get_doc_type_default(doc2)) { - case DOC_TYPE_STRING: { - const formatted2 = newLine !== "\n" ? method_replace_all_default( - /* OPTIONAL_OBJECT: false */ - 0, - doc2, - "\n", - newLine - ) : doc2; - if (formatted2) { - result.write(formatted2); - if (commands.length > 0) { - position += get_string_width_default(formatted2); - } - } - break; - } - case DOC_TYPE_ARRAY: - for (let index = doc2.length - 1; index >= 0; index--) { - commands.push({ - indent: indent2, - mode, - doc: doc2[index] - }); - } - break; - case DOC_TYPE_CURSOR: - result.markPosition(); - break; - case DOC_TYPE_INDENT: - commands.push({ - indent: makeIndent(indent2, options), - mode, - doc: doc2.contents - }); - break; - case DOC_TYPE_ALIGN: - commands.push({ - indent: makeAlign(indent2, doc2.n, options), - mode, - doc: doc2.contents - }); - break; - case DOC_TYPE_TRIM: - position -= result.trim(); - break; - case DOC_TYPE_GROUP: { - const command = (function printGroup() { - if (mode === MODE_FLAT && !shouldRemeasure) { - return { - indent: indent2, - mode: doc2.break ? MODE_BREAK : MODE_FLAT, - doc: doc2.contents - }; - } - shouldRemeasure = false; - const remainingWidth = width - position; - const hasLineSuffix = lineSuffix2.length > 0; - const flatCommand = { - indent: indent2, - mode: MODE_FLAT, - doc: doc2.contents - }; - if (!doc2.break && fits(flatCommand, commands, remainingWidth, hasLineSuffix, groupModeMap)) { - return flatCommand; - } - if (!doc2.expandedStates) { - return { - indent: indent2, - mode: MODE_BREAK, - doc: doc2.contents - }; - } - if (!doc2.break) { - for (let index = 1; index < doc2.expandedStates.length - 1; index++) { - const flatCommand2 = { - indent: indent2, - mode: MODE_FLAT, - doc: doc2.expandedStates[index] - }; - if (fits(flatCommand2, commands, remainingWidth, hasLineSuffix, groupModeMap)) { - return flatCommand2; - } - } - } - return { - indent: indent2, - mode: MODE_BREAK, - doc: method_at_default( - /* OPTIONAL_OBJECT: false */ - 0, - doc2.expandedStates, - -1 - ) - }; - })(); - commands.push(command); - if (doc2.id) { - groupModeMap[doc2.id] = command.mode; - } - break; - } - // Fills each line with as much code as possible before moving to a new - // line with the same indentation. - // - // Expects doc.parts to be an array of alternating content and - // whitespace. The whitespace contains the linebreaks. - // - // For example: - // ["I", line, "love", line, "monkeys"] - // or - // [{ type: group, ... }, softline, { type: group, ... }] - // - // It uses this parts structure to handle three main layout cases: - // * The first two content items fit on the same line without - // breaking - // -> output the first content item and the whitespace "flat". - // * Only the first content item fits on the line without breaking - // -> output the first content item "flat" and the whitespace with - // "break". - // * Neither content item fits on the line without breaking - // -> output the first content item and the whitespace with "break". - case DOC_TYPE_FILL: { - const remainingWidth = width - position; - const offset = doc2[DOC_FILL_PRINTED_LENGTH] ?? 0; - const { - parts - } = doc2; - const length = parts.length - offset; - if (length === 0) { - break; - } - const content = parts[offset + 0]; - const whitespace = parts[offset + 1]; - const contentFlatCommand = { - indent: indent2, - mode: MODE_FLAT, - doc: content - }; - const contentBreakCommand = { - indent: indent2, - mode: MODE_BREAK, - doc: content - }; - const contentFits = fits(contentFlatCommand, [], remainingWidth, lineSuffix2.length > 0, groupModeMap, true); - if (length === 1) { - if (contentFits) { - commands.push(contentFlatCommand); - } else { - commands.push(contentBreakCommand); - } - break; - } - const whitespaceFlatCommand = { - indent: indent2, - mode: MODE_FLAT, - doc: whitespace - }; - const whitespaceBreakCommand = { - indent: indent2, - mode: MODE_BREAK, - doc: whitespace - }; - if (length === 2) { - if (contentFits) { - commands.push(whitespaceFlatCommand, contentFlatCommand); - } else { - commands.push(whitespaceBreakCommand, contentBreakCommand); - } - break; - } - const secondContent = parts[offset + 2]; - const remainingCommand = { - indent: indent2, - mode, - doc: { - ...doc2, - [DOC_FILL_PRINTED_LENGTH]: offset + 2 - } - }; - const firstAndSecondContentFlatCommand = { - indent: indent2, - mode: MODE_FLAT, - doc: [content, whitespace, secondContent] - }; - const firstAndSecondContentFits = fits(firstAndSecondContentFlatCommand, [], remainingWidth, lineSuffix2.length > 0, groupModeMap, true); - commands.push(remainingCommand); - if (firstAndSecondContentFits) { - commands.push(whitespaceFlatCommand, contentFlatCommand); - } else if (contentFits) { - commands.push(whitespaceBreakCommand, contentFlatCommand); - } else { - commands.push(whitespaceBreakCommand, contentBreakCommand); - } - break; - } - case DOC_TYPE_IF_BREAK: - case DOC_TYPE_INDENT_IF_BREAK: { - const groupMode = doc2.groupId ? groupModeMap[doc2.groupId] : mode; - if (groupMode === MODE_BREAK) { - const breakContents = doc2.type === DOC_TYPE_IF_BREAK ? doc2.breakContents : doc2.negate ? doc2.contents : indent(doc2.contents); - if (breakContents) { - commands.push({ - indent: indent2, - mode, - doc: breakContents - }); - } - } - if (groupMode === MODE_FLAT) { - const flatContents = doc2.type === DOC_TYPE_IF_BREAK ? doc2.flatContents : doc2.negate ? indent(doc2.contents) : doc2.contents; - if (flatContents) { - commands.push({ - indent: indent2, - mode, - doc: flatContents - }); - } - } - break; - } - case DOC_TYPE_LINE_SUFFIX: - lineSuffix2.push({ - indent: indent2, - mode, - doc: doc2.contents - }); - break; - case DOC_TYPE_LINE_SUFFIX_BOUNDARY: - if (lineSuffix2.length > 0) { - commands.push({ - indent: indent2, - mode, - doc: hardlineWithoutBreakParent - }); - } - break; - case DOC_TYPE_LINE: - switch (mode) { - case MODE_FLAT: - if (!doc2.hard) { - if (!doc2.soft) { - result.write(" "); - position += 1; - } - break; - } - shouldRemeasure = true; - // fallthrough - case MODE_BREAK: - if (lineSuffix2.length > 0) { - commands.push({ - indent: indent2, - mode, - doc: doc2 - }, ...lineSuffix2.reverse()); - lineSuffix2.length = 0; - break; - } - if (doc2.literal) { - result.write(newLine); - position = 0; - if (indent2.root) { - if (indent2.root.value) { - result.write(indent2.root.value); - } - position = indent2.root.length; - } - } else { - result.trim(); - result.write(newLine + indent2.value); - position = indent2.length; - } - break; - } - break; - case DOC_TYPE_LABEL: - commands.push({ - indent: indent2, - mode, - doc: doc2.contents - }); - break; - case DOC_TYPE_BREAK_PARENT: - break; - default: - throw new invalid_doc_error_default(doc2); - } - if (commands.length === 0 && lineSuffix2.length > 0) { - commands.push(...lineSuffix2.reverse()); - lineSuffix2.length = 0; - } - } - const { - text: formatted, - positions: cursorPositions - } = result.finish(); - if (cursorPositions.length !== 2) { - return { - formatted - }; - } - const [cursorNodeStart, cursorNodeEnd] = cursorPositions; - return { - formatted, - cursorNodeStart, - cursorNodeText: formatted.slice(cursorNodeStart, cursorNodeEnd) - }; -} - -// src/document/public.js -var builders = { - join, - line, - softline, - hardline, - literalline, - group, - conditionalGroup, - fill, - lineSuffix, - lineSuffixBoundary, - cursor, - breakParent, - ifBreak, - trim, - indent, - indentIfBreak, - align, - addAlignmentToDoc, - markAsRoot, - dedentToRoot, - dedent, - hardlineWithoutBreakParent, - literallineWithoutBreakParent, - label, - // TODO: Remove this in v4 - concat: (parts) => parts -}; -var printer = { printDocToString }; -var utils = { - willBreak, - traverseDoc: traverse_doc_default, - findInDoc, - mapDoc, - removeLines, - stripTrailingHardline, - replaceEndOfLine, - canBreak -}; -export { - builders, - public_exports as default, - printer, - utils -}; diff --git a/node_modules/prettier/index.cjs b/node_modules/prettier/index.cjs deleted file mode 100644 index 40aa4bb..0000000 --- a/node_modules/prettier/index.cjs +++ /dev/null @@ -1,790 +0,0 @@ -"use strict"; -var __create = Object.create; -var __defProp = Object.defineProperty; -var __getOwnPropDesc = Object.getOwnPropertyDescriptor; -var __getOwnPropNames = Object.getOwnPropertyNames; -var __getProtoOf = Object.getPrototypeOf; -var __hasOwnProp = Object.prototype.hasOwnProperty; -var __esm = (fn, res, err) => function __init() { - if (err) throw err[0]; - try { - return fn && (res = (0, fn[__getOwnPropNames(fn)[0]])(fn = 0)), res; - } catch (e) { - throw err = [e], e; - } -}; -var __export = (target, all) => { - for (var name in all) - __defProp(target, name, { get: all[name], enumerable: true }); -}; -var __copyProps = (to, from, except, desc) => { - if (from && typeof from === "object" || typeof from === "function") { - for (let key of __getOwnPropNames(from)) - if (!__hasOwnProp.call(to, key) && key !== except) - __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable }); - } - return to; -}; -var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps( - // If the importer is in node compatibility mode or this is not an ESM - // file that has been converted to a CommonJS file using a Babel- - // compatible transform (i.e. "__esModule" has not been set), then set - // "default" to the CommonJS "module.exports" for node compatibility. - isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target, - mod -)); -var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod); - -// scripts/build/shims/shared.js -var OPTIONAL_OBJECT, createMethodShim; -var init_shared = __esm({ - "scripts/build/shims/shared.js"() { - OPTIONAL_OBJECT = 1; - createMethodShim = (methodName, getImplementation) => (flags, object, ...arguments_) => { - if (flags | OPTIONAL_OBJECT && (object === void 0 || object === null)) { - return; - } - const implementation = getImplementation.call(object) ?? object[methodName]; - return implementation.apply(object, arguments_); - }; - } -}); - -// scripts/build/shims/method-replace-all.js -var stringReplaceAll, replaceAll, method_replace_all_default; -var init_method_replace_all = __esm({ - "scripts/build/shims/method-replace-all.js"() { - init_shared(); - stringReplaceAll = String.prototype.replaceAll ?? function(pattern, replacement) { - if (pattern.global) { - return this.replace(pattern, replacement); - } - return this.split(pattern).join(replacement); - }; - replaceAll = /* @__PURE__ */ createMethodShim("replaceAll", function() { - if (typeof this === "string") { - return stringReplaceAll; - } - }); - method_replace_all_default = replaceAll; - } -}); - -// src/utilities/skip.js -function skip(characters) { - return (text, startIndex, options) => { - if (startIndex === false) { - return false; - } - const backwards = Boolean(options?.backwards); - const { length } = text; - let cursor = startIndex; - while (cursor >= 0 && cursor < length) { - const character = text.charAt(cursor); - if (characters instanceof RegExp) { - if (!characters.test(character)) { - return cursor; - } - } else if (!characters.includes(character)) { - return cursor; - } - backwards ? cursor-- : cursor++; - } - if (cursor === -1 || cursor === length) { - return cursor; - } - return false; - }; -} -var skipWhitespace, skipSpaces, skipToLineEnd, skipEverythingButNewLine; -var init_skip = __esm({ - "src/utilities/skip.js"() { - skipWhitespace = skip(/\s/); - skipSpaces = skip(" "); - skipToLineEnd = skip(",; "); - skipEverythingButNewLine = skip(/[^\n\r]/); - } -}); - -// src/utilities/skip-inline-comment.js -function skipInlineComment(text, startIndex) { - if (startIndex === false) { - return false; - } - if (text.charAt(startIndex) === "/" && text.charAt(startIndex + 1) === "*") { - for (let i = startIndex + 2; i < text.length; ++i) { - if (text.charAt(i) === "*" && text.charAt(i + 1) === "/") { - return i + 2; - } - } - } - return startIndex; -} -var skip_inline_comment_default; -var init_skip_inline_comment = __esm({ - "src/utilities/skip-inline-comment.js"() { - skip_inline_comment_default = skipInlineComment; - } -}); - -// src/utilities/skip-newline.js -function skipNewline(text, startIndex, options) { - if (startIndex === false) { - return false; - } - const backwards = Boolean(options?.backwards); - const character = text.charAt(startIndex); - if (backwards) { - if (text.charAt(startIndex - 1) === "\r" && character === "\n") { - return startIndex - 2; - } - if (isNewlineCharacter(character)) { - return startIndex - 1; - } - } else { - if (character === "\r" && text.charAt(startIndex + 1) === "\n") { - return startIndex + 2; - } - if (isNewlineCharacter(character)) { - return startIndex + 1; - } - } - return startIndex; -} -var isNewlineCharacter, skip_newline_default; -var init_skip_newline = __esm({ - "src/utilities/skip-newline.js"() { - isNewlineCharacter = (character) => character === "\n" || character === "\r" || character === "\u2028" || character === "\u2029"; - skip_newline_default = skipNewline; - } -}); - -// src/utilities/skip-trailing-comment.js -function skipTrailingComment(text, startIndex) { - if (startIndex === false) { - return false; - } - if (text.charAt(startIndex) === "/" && text.charAt(startIndex + 1) === "/") { - return skipEverythingButNewLine(text, startIndex); - } - return startIndex; -} -var skip_trailing_comment_default; -var init_skip_trailing_comment = __esm({ - "src/utilities/skip-trailing-comment.js"() { - init_skip(); - skip_trailing_comment_default = skipTrailingComment; - } -}); - -// src/utilities/get-next-non-space-non-comment-character-index.js -function getNextNonSpaceNonCommentCharacterIndex(text, startIndex) { - let oldIdx = null; - let nextIdx = startIndex; - while (nextIdx !== oldIdx) { - oldIdx = nextIdx; - nextIdx = skipSpaces(text, nextIdx); - nextIdx = skip_inline_comment_default(text, nextIdx); - nextIdx = skip_trailing_comment_default(text, nextIdx); - nextIdx = skip_newline_default(text, nextIdx); - } - return nextIdx; -} -var get_next_non_space_non_comment_character_index_default; -var init_get_next_non_space_non_comment_character_index = __esm({ - "src/utilities/get-next-non-space-non-comment-character-index.js"() { - init_skip(); - init_skip_inline_comment(); - init_skip_newline(); - init_skip_trailing_comment(); - get_next_non_space_non_comment_character_index_default = getNextNonSpaceNonCommentCharacterIndex; - } -}); - -// src/utilities/has-newline.js -function hasNewline(text, startIndex, options = {}) { - const idx = skipSpaces( - text, - options.backwards ? startIndex - 1 : startIndex, - options - ); - const idx2 = skip_newline_default(text, idx, options); - return idx !== idx2; -} -var has_newline_default; -var init_has_newline = __esm({ - "src/utilities/has-newline.js"() { - init_skip(); - init_skip_newline(); - has_newline_default = hasNewline; - } -}); - -// src/utilities/is-next-line-empty.js -function isNextLineEmpty(text, startIndex) { - let oldIdx = null; - let idx = startIndex; - while (idx !== oldIdx) { - oldIdx = idx; - idx = skipToLineEnd(text, idx); - idx = skip_inline_comment_default(text, idx); - idx = skipSpaces(text, idx); - } - idx = skip_trailing_comment_default(text, idx); - idx = skip_newline_default(text, idx); - return idx !== false && has_newline_default(text, idx); -} -var is_next_line_empty_default; -var init_is_next_line_empty = __esm({ - "src/utilities/is-next-line-empty.js"() { - init_has_newline(); - init_skip(); - init_skip_inline_comment(); - init_skip_newline(); - init_skip_trailing_comment(); - is_next_line_empty_default = isNextLineEmpty; - } -}); - -// src/utilities/is-previous-line-empty.js -function isPreviousLineEmpty(text, startIndex) { - let idx = startIndex - 1; - idx = skipSpaces(text, idx, { backwards: true }); - idx = skip_newline_default(text, idx, { backwards: true }); - idx = skipSpaces(text, idx, { backwards: true }); - const idx2 = skip_newline_default(text, idx, { backwards: true }); - return idx !== idx2; -} -var is_previous_line_empty_default; -var init_is_previous_line_empty = __esm({ - "src/utilities/is-previous-line-empty.js"() { - init_skip(); - init_skip_newline(); - is_previous_line_empty_default = isPreviousLineEmpty; - } -}); - -// src/main/comments/utilities.js -function describeNodeForDebugging(node) { - const nodeType = node.type || node.kind || "(unknown type)"; - let nodeName = String( - node.name || node.id && (typeof node.id === "object" ? node.id.name : node.id) || node.key && (typeof node.key === "object" ? node.key.name : node.key) || node.value && (typeof node.value === "object" ? "" : String(node.value)) || node.operator || "" - ); - if (nodeName.length > 20) { - nodeName = nodeName.slice(0, 19) + "\u2026"; - } - return nodeType + (nodeName ? " " + nodeName : ""); -} -function addCommentHelper(node, comment) { - const comments = node.comments ?? (node.comments = []); - comments.push(comment); - comment.printed = false; - comment.nodeDescription = describeNodeForDebugging(node); -} -function addLeadingComment(node, comment) { - comment.leading = true; - comment.trailing = false; - addCommentHelper(node, comment); -} -function addDanglingComment(node, comment, marker) { - comment.leading = false; - comment.trailing = false; - if (marker) { - comment.marker = marker; - } - addCommentHelper(node, comment); -} -function addTrailingComment(node, comment) { - comment.leading = false; - comment.trailing = true; - addCommentHelper(node, comment); -} -var init_utilities = __esm({ - "src/main/comments/utilities.js"() { - } -}); - -// src/utilities/get-alignment-size.js -function getAlignmentSize(text, tabWidth, startIndex = 0) { - let size = 0; - for (let i = startIndex; i < text.length; ++i) { - if (text[i] === " ") { - size = size + tabWidth - size % tabWidth; - } else { - size++; - } - } - return size; -} -var get_alignment_size_default; -var init_get_alignment_size = __esm({ - "src/utilities/get-alignment-size.js"() { - get_alignment_size_default = getAlignmentSize; - } -}); - -// src/utilities/get-indent-size.js -function getIndentSize(value, tabWidth) { - const lastNewlineIndex = value.lastIndexOf("\n"); - if (lastNewlineIndex === -1) { - return 0; - } - return get_alignment_size_default( - // All the leading whitespaces - value.slice(lastNewlineIndex + 1).match(/^[\t ]*/)[0], - tabWidth - ); -} -var get_indent_size_default; -var init_get_indent_size = __esm({ - "src/utilities/get-indent-size.js"() { - init_get_alignment_size(); - get_indent_size_default = getIndentSize; - } -}); - -// node_modules/escape-string-regexp/index.js -function escapeStringRegexp(string) { - if (typeof string !== "string") { - throw new TypeError("Expected a string"); - } - return string.replace(/[|\\{}()[\]^$+*?.]/g, "\\$&").replace(/-/g, "\\x2d"); -} -var init_escape_string_regexp = __esm({ - "node_modules/escape-string-regexp/index.js"() { - } -}); - -// src/utilities/get-max-continuous-count.js -function getMaxContinuousCount(text, searchString) { - let results = text.matchAll( - new RegExp(`(?:${escapeStringRegexp(searchString)})+`, "g") - ); - if (!results.reduce) { - results = [...results]; - } - return results.reduce( - (maxCount, [result]) => Math.max(maxCount, result.length), - 0 - ) / searchString.length; -} -var get_max_continuous_count_default; -var init_get_max_continuous_count = __esm({ - "src/utilities/get-max-continuous-count.js"() { - init_escape_string_regexp(); - get_max_continuous_count_default = getMaxContinuousCount; - } -}); - -// src/utilities/get-next-non-space-non-comment-character.js -function getNextNonSpaceNonCommentCharacter(text, startIndex) { - const index = get_next_non_space_non_comment_character_index_default(text, startIndex); - return index === false ? "" : text.charAt(index); -} -var get_next_non_space_non_comment_character_default; -var init_get_next_non_space_non_comment_character = __esm({ - "src/utilities/get-next-non-space-non-comment-character.js"() { - init_get_next_non_space_non_comment_character_index(); - get_next_non_space_non_comment_character_default = getNextNonSpaceNonCommentCharacter; - } -}); - -// src/utilities/get-preferred-quote.js -function getPreferredQuote(text, preferredQuoteOrPreferSingleQuote) { - const { preferred, alternate } = preferredQuoteOrPreferSingleQuote === true || preferredQuoteOrPreferSingleQuote === SINGLE_QUOTE ? SINGLE_QUOTE_SETTINGS : DOUBLE_QUOTE_SETTINGS; - const { length } = text; - let preferredQuoteCount = 0; - let alternateQuoteCount = 0; - for (let index = 0; index < length; index++) { - const codePoint = text.charCodeAt(index); - if (codePoint === preferred.codePoint) { - preferredQuoteCount++; - } else if (codePoint === alternate.codePoint) { - alternateQuoteCount++; - } - } - return (preferredQuoteCount > alternateQuoteCount ? alternate : preferred).character; -} -var SINGLE_QUOTE, DOUBLE_QUOTE, SINGLE_QUOTE_DATA, DOUBLE_QUOTE_DATA, SINGLE_QUOTE_SETTINGS, DOUBLE_QUOTE_SETTINGS; -var init_get_preferred_quote = __esm({ - "src/utilities/get-preferred-quote.js"() { - SINGLE_QUOTE = "'"; - DOUBLE_QUOTE = '"'; - SINGLE_QUOTE_DATA = Object.freeze({ - character: SINGLE_QUOTE, - codePoint: 39 - }); - DOUBLE_QUOTE_DATA = Object.freeze({ - character: DOUBLE_QUOTE, - codePoint: 34 - }); - SINGLE_QUOTE_SETTINGS = Object.freeze({ - preferred: SINGLE_QUOTE_DATA, - alternate: DOUBLE_QUOTE_DATA - }); - DOUBLE_QUOTE_SETTINGS = Object.freeze({ - preferred: DOUBLE_QUOTE_DATA, - alternate: SINGLE_QUOTE_DATA - }); - } -}); - -// node_modules/emoji-regex/index.mjs -var emoji_regex_default; -var init_emoji_regex = __esm({ - "node_modules/emoji-regex/index.mjs"() { - emoji_regex_default = () => { - return /[#*0-9]\uFE0F?\u20E3|[\xA9\xAE\u203C\u2049\u2122\u2139\u2194-\u2199\u21A9\u21AA\u231A\u231B\u2328\u23CF\u23ED-\u23EF\u23F1\u23F2\u23F8-\u23FA\u24C2\u25AA\u25AB\u25B6\u25C0\u25FB\u25FC\u25FE\u2600-\u2604\u260E\u2611\u2614\u2615\u2618\u2620\u2622\u2623\u2626\u262A\u262E\u262F\u2638-\u263A\u2640\u2642\u2648-\u2653\u265F\u2660\u2663\u2665\u2666\u2668\u267B\u267E\u267F\u2692\u2694-\u2697\u2699\u269B\u269C\u26A0\u26A7\u26AA\u26B0\u26B1\u26BD\u26BE\u26C4\u26C8\u26CF\u26D1\u26E9\u26F0-\u26F5\u26F7\u26F8\u26FA\u2702\u2708\u2709\u270F\u2712\u2714\u2716\u271D\u2721\u2733\u2734\u2744\u2747\u2757\u2763\u27A1\u2934\u2935\u2B05-\u2B07\u2B1B\u2B1C\u2B55\u3030\u303D\u3297\u3299]\uFE0F?|[\u261D\u270C\u270D](?:\uD83C[\uDFFB-\uDFFF]|\uFE0F)?|[\u270A\u270B](?:\uD83C[\uDFFB-\uDFFF])?|[\u23E9-\u23EC\u23F0\u23F3\u25FD\u2693\u26A1\u26AB\u26C5\u26CE\u26D4\u26EA\u26FD\u2705\u2728\u274C\u274E\u2753-\u2755\u2795-\u2797\u27B0\u27BF\u2B50]|\u26D3\uFE0F?(?:\u200D\uD83D\uDCA5)?|\u26F9(?:\uD83C[\uDFFB-\uDFFF]|\uFE0F)?(?:\u200D[\u2640\u2642]\uFE0F?)?|\u2764\uFE0F?(?:\u200D(?:\uD83D\uDD25|\uD83E\uDE79))?|\uD83C(?:[\uDC04\uDD70\uDD71\uDD7E\uDD7F\uDE02\uDE37\uDF21\uDF24-\uDF2C\uDF36\uDF7D\uDF96\uDF97\uDF99-\uDF9B\uDF9E\uDF9F\uDFCD\uDFCE\uDFD4-\uDFDF\uDFF5\uDFF7]\uFE0F?|[\uDF85\uDFC2\uDFC7](?:\uD83C[\uDFFB-\uDFFF])?|[\uDFC4\uDFCA](?:\uD83C[\uDFFB-\uDFFF])?(?:\u200D[\u2640\u2642]\uFE0F?)?|[\uDFCB\uDFCC](?:\uD83C[\uDFFB-\uDFFF]|\uFE0F)?(?:\u200D[\u2640\u2642]\uFE0F?)?|[\uDCCF\uDD8E\uDD91-\uDD9A\uDE01\uDE1A\uDE2F\uDE32-\uDE36\uDE38-\uDE3A\uDE50\uDE51\uDF00-\uDF20\uDF2D-\uDF35\uDF37-\uDF43\uDF45-\uDF4A\uDF4C-\uDF7C\uDF7E-\uDF84\uDF86-\uDF93\uDFA0-\uDFC1\uDFC5\uDFC6\uDFC8\uDFC9\uDFCF-\uDFD3\uDFE0-\uDFF0\uDFF8-\uDFFF]|\uDDE6\uD83C[\uDDE8-\uDDEC\uDDEE\uDDF1\uDDF2\uDDF4\uDDF6-\uDDFA\uDDFC\uDDFD\uDDFF]|\uDDE7\uD83C[\uDDE6\uDDE7\uDDE9-\uDDEF\uDDF1-\uDDF4\uDDF6-\uDDF9\uDDFB\uDDFC\uDDFE\uDDFF]|\uDDE8\uD83C[\uDDE6\uDDE8\uDDE9\uDDEB-\uDDEE\uDDF0-\uDDF7\uDDFA-\uDDFF]|\uDDE9\uD83C[\uDDEA\uDDEC\uDDEF\uDDF0\uDDF2\uDDF4\uDDFF]|\uDDEA\uD83C[\uDDE6\uDDE8\uDDEA\uDDEC\uDDED\uDDF7-\uDDFA]|\uDDEB\uD83C[\uDDEE-\uDDF0\uDDF2\uDDF4\uDDF7]|\uDDEC\uD83C[\uDDE6\uDDE7\uDDE9-\uDDEE\uDDF1-\uDDF3\uDDF5-\uDDFA\uDDFC\uDDFE]|\uDDED\uD83C[\uDDF0\uDDF2\uDDF3\uDDF7\uDDF9\uDDFA]|\uDDEE\uD83C[\uDDE8-\uDDEA\uDDF1-\uDDF4\uDDF6-\uDDF9]|\uDDEF\uD83C[\uDDEA\uDDF2\uDDF4\uDDF5]|\uDDF0\uD83C[\uDDEA\uDDEC-\uDDEE\uDDF2\uDDF3\uDDF5\uDDF7\uDDFC\uDDFE\uDDFF]|\uDDF1\uD83C[\uDDE6-\uDDE8\uDDEE\uDDF0\uDDF7-\uDDFB\uDDFE]|\uDDF2\uD83C[\uDDE6\uDDE8-\uDDED\uDDF0-\uDDFF]|\uDDF3\uD83C[\uDDE6\uDDE8\uDDEA-\uDDEC\uDDEE\uDDF1\uDDF4\uDDF5\uDDF7\uDDFA\uDDFF]|\uDDF4\uD83C\uDDF2|\uDDF5\uD83C[\uDDE6\uDDEA-\uDDED\uDDF0-\uDDF3\uDDF7-\uDDF9\uDDFC\uDDFE]|\uDDF6\uD83C\uDDE6|\uDDF7\uD83C[\uDDEA\uDDF4\uDDF8\uDDFA\uDDFC]|\uDDF8\uD83C[\uDDE6-\uDDEA\uDDEC-\uDDF4\uDDF7-\uDDF9\uDDFB\uDDFD-\uDDFF]|\uDDF9\uD83C[\uDDE6\uDDE8\uDDE9\uDDEB-\uDDED\uDDEF-\uDDF4\uDDF7\uDDF9\uDDFB\uDDFC\uDDFF]|\uDDFA\uD83C[\uDDE6\uDDEC\uDDF2\uDDF3\uDDF8\uDDFE\uDDFF]|\uDDFB\uD83C[\uDDE6\uDDE8\uDDEA\uDDEC\uDDEE\uDDF3\uDDFA]|\uDDFC\uD83C[\uDDEB\uDDF8]|\uDDFD\uD83C\uDDF0|\uDDFE\uD83C[\uDDEA\uDDF9]|\uDDFF\uD83C[\uDDE6\uDDF2\uDDFC]|\uDF44(?:\u200D\uD83D\uDFEB)?|\uDF4B(?:\u200D\uD83D\uDFE9)?|\uDFC3(?:\uD83C[\uDFFB-\uDFFF])?(?:\u200D(?:[\u2640\u2642]\uFE0F?(?:\u200D\u27A1\uFE0F?)?|\u27A1\uFE0F?))?|\uDFF3\uFE0F?(?:\u200D(?:\u26A7\uFE0F?|\uD83C\uDF08))?|\uDFF4(?:\u200D\u2620\uFE0F?|\uDB40\uDC67\uDB40\uDC62\uDB40(?:\uDC65\uDB40\uDC6E\uDB40\uDC67|\uDC73\uDB40\uDC63\uDB40\uDC74|\uDC77\uDB40\uDC6C\uDB40\uDC73)\uDB40\uDC7F)?)|\uD83D(?:[\uDC3F\uDCFD\uDD49\uDD4A\uDD6F\uDD70\uDD73\uDD76-\uDD79\uDD87\uDD8A-\uDD8D\uDDA5\uDDA8\uDDB1\uDDB2\uDDBC\uDDC2-\uDDC4\uDDD1-\uDDD3\uDDDC-\uDDDE\uDDE1\uDDE3\uDDE8\uDDEF\uDDF3\uDDFA\uDECB\uDECD-\uDECF\uDEE0-\uDEE5\uDEE9\uDEF0\uDEF3]\uFE0F?|[\uDC42\uDC43\uDC46-\uDC50\uDC66\uDC67\uDC6B-\uDC6D\uDC72\uDC74-\uDC76\uDC78\uDC7C\uDC83\uDC85\uDC8F\uDC91\uDCAA\uDD7A\uDD95\uDD96\uDE4C\uDE4F\uDEC0\uDECC](?:\uD83C[\uDFFB-\uDFFF])?|[\uDC6E-\uDC71\uDC73\uDC77\uDC81\uDC82\uDC86\uDC87\uDE45-\uDE47\uDE4B\uDE4D\uDE4E\uDEA3\uDEB4\uDEB5](?:\uD83C[\uDFFB-\uDFFF])?(?:\u200D[\u2640\u2642]\uFE0F?)?|[\uDD74\uDD90](?:\uD83C[\uDFFB-\uDFFF]|\uFE0F)?|[\uDC00-\uDC07\uDC09-\uDC14\uDC16-\uDC25\uDC27-\uDC3A\uDC3C-\uDC3E\uDC40\uDC44\uDC45\uDC51-\uDC65\uDC6A\uDC79-\uDC7B\uDC7D-\uDC80\uDC84\uDC88-\uDC8E\uDC90\uDC92-\uDCA9\uDCAB-\uDCFC\uDCFF-\uDD3D\uDD4B-\uDD4E\uDD50-\uDD67\uDDA4\uDDFB-\uDE2D\uDE2F-\uDE34\uDE37-\uDE41\uDE43\uDE44\uDE48-\uDE4A\uDE80-\uDEA2\uDEA4-\uDEB3\uDEB7-\uDEBF\uDEC1-\uDEC5\uDED0-\uDED2\uDED5-\uDED8\uDEDC-\uDEDF\uDEEB\uDEEC\uDEF4-\uDEFC\uDFE0-\uDFEB\uDFF0]|\uDC08(?:\u200D\u2B1B)?|\uDC15(?:\u200D\uD83E\uDDBA)?|\uDC26(?:\u200D(?:\u2B1B|\uD83D\uDD25))?|\uDC3B(?:\u200D\u2744\uFE0F?)?|\uDC41\uFE0F?(?:\u200D\uD83D\uDDE8\uFE0F?)?|\uDC68(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:\uDC8B\u200D\uD83D)?\uDC68|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D(?:[\uDC68\uDC69]\u200D\uD83D(?:\uDC66(?:\u200D\uD83D\uDC66)?|\uDC67(?:\u200D\uD83D[\uDC66\uDC67])?)|[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uDC66(?:\u200D\uD83D\uDC66)?|\uDC67(?:\u200D\uD83D[\uDC66\uDC67])?)|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]))|\uD83C(?:\uDFFB(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:\uDC8B\u200D\uD83D)?\uDC68\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D(?:[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uDC30\u200D\uD83D\uDC68\uD83C[\uDFFC-\uDFFF])|\uD83E(?:[\uDD1D\uDEEF]\u200D\uD83D\uDC68\uD83C[\uDFFC-\uDFFF]|[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3])))?|\uDFFC(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:\uDC8B\u200D\uD83D)?\uDC68\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D(?:[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uDC30\u200D\uD83D\uDC68\uD83C[\uDFFB\uDFFD-\uDFFF])|\uD83E(?:[\uDD1D\uDEEF]\u200D\uD83D\uDC68\uD83C[\uDFFB\uDFFD-\uDFFF]|[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3])))?|\uDFFD(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:\uDC8B\u200D\uD83D)?\uDC68\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D(?:[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uDC30\u200D\uD83D\uDC68\uD83C[\uDFFB\uDFFC\uDFFE\uDFFF])|\uD83E(?:[\uDD1D\uDEEF]\u200D\uD83D\uDC68\uD83C[\uDFFB\uDFFC\uDFFE\uDFFF]|[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3])))?|\uDFFE(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:\uDC8B\u200D\uD83D)?\uDC68\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D(?:[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uDC30\u200D\uD83D\uDC68\uD83C[\uDFFB-\uDFFD\uDFFF])|\uD83E(?:[\uDD1D\uDEEF]\u200D\uD83D\uDC68\uD83C[\uDFFB-\uDFFD\uDFFF]|[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3])))?|\uDFFF(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:\uDC8B\u200D\uD83D)?\uDC68\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D(?:[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uDC30\u200D\uD83D\uDC68\uD83C[\uDFFB-\uDFFE])|\uD83E(?:[\uDD1D\uDEEF]\u200D\uD83D\uDC68\uD83C[\uDFFB-\uDFFE]|[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3])))?))?|\uDC69(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:\uDC8B\u200D\uD83D)?[\uDC68\uDC69]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D(?:[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uDC66(?:\u200D\uD83D\uDC66)?|\uDC67(?:\u200D\uD83D[\uDC66\uDC67])?|\uDC69\u200D\uD83D(?:\uDC66(?:\u200D\uD83D\uDC66)?|\uDC67(?:\u200D\uD83D[\uDC66\uDC67])?))|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]))|\uD83C(?:\uDFFB(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:[\uDC68\uDC69]|\uDC8B\u200D\uD83D[\uDC68\uDC69])\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D(?:[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uDC30\u200D\uD83D\uDC69\uD83C[\uDFFC-\uDFFF])|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83D[\uDC68\uDC69]\uD83C[\uDFFC-\uDFFF]|\uDEEF\u200D\uD83D\uDC69\uD83C[\uDFFC-\uDFFF])))?|\uDFFC(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:[\uDC68\uDC69]|\uDC8B\u200D\uD83D[\uDC68\uDC69])\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D(?:[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uDC30\u200D\uD83D\uDC69\uD83C[\uDFFB\uDFFD-\uDFFF])|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83D[\uDC68\uDC69]\uD83C[\uDFFB\uDFFD-\uDFFF]|\uDEEF\u200D\uD83D\uDC69\uD83C[\uDFFB\uDFFD-\uDFFF])))?|\uDFFD(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:[\uDC68\uDC69]|\uDC8B\u200D\uD83D[\uDC68\uDC69])\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D(?:[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uDC30\u200D\uD83D\uDC69\uD83C[\uDFFB\uDFFC\uDFFE\uDFFF])|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83D[\uDC68\uDC69]\uD83C[\uDFFB\uDFFC\uDFFE\uDFFF]|\uDEEF\u200D\uD83D\uDC69\uD83C[\uDFFB\uDFFC\uDFFE\uDFFF])))?|\uDFFE(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:[\uDC68\uDC69]|\uDC8B\u200D\uD83D[\uDC68\uDC69])\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D(?:[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uDC30\u200D\uD83D\uDC69\uD83C[\uDFFB-\uDFFD\uDFFF])|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83D[\uDC68\uDC69]\uD83C[\uDFFB-\uDFFD\uDFFF]|\uDEEF\u200D\uD83D\uDC69\uD83C[\uDFFB-\uDFFD\uDFFF])))?|\uDFFF(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:[\uDC68\uDC69]|\uDC8B\u200D\uD83D[\uDC68\uDC69])\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D(?:[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uDC30\u200D\uD83D\uDC69\uD83C[\uDFFB-\uDFFE])|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83D[\uDC68\uDC69]\uD83C[\uDFFB-\uDFFE]|\uDEEF\u200D\uD83D\uDC69\uD83C[\uDFFB-\uDFFE])))?))?|\uDD75(?:\uD83C[\uDFFB-\uDFFF]|\uFE0F)?(?:\u200D[\u2640\u2642]\uFE0F?)?|\uDE2E(?:\u200D\uD83D\uDCA8)?|\uDE35(?:\u200D\uD83D\uDCAB)?|\uDE36(?:\u200D\uD83C\uDF2B\uFE0F?)?|\uDE42(?:\u200D[\u2194\u2195]\uFE0F?)?|\uDEB6(?:\uD83C[\uDFFB-\uDFFF])?(?:\u200D(?:[\u2640\u2642]\uFE0F?(?:\u200D\u27A1\uFE0F?)?|\u27A1\uFE0F?))?)|\uD83E(?:[\uDD0C\uDD0F\uDD18-\uDD1F\uDD30-\uDD34\uDD36\uDD77\uDDB5\uDDB6\uDDBB\uDDD2\uDDD3\uDDD5\uDEC3-\uDEC5\uDEF0\uDEF2-\uDEF8](?:\uD83C[\uDFFB-\uDFFF])?|[\uDD26\uDD35\uDD37-\uDD39\uDD3C-\uDD3E\uDDB8\uDDB9\uDDCD\uDDCF\uDDD4\uDDD6-\uDDDD](?:\uD83C[\uDFFB-\uDFFF])?(?:\u200D[\u2640\u2642]\uFE0F?)?|[\uDDDE\uDDDF](?:\u200D[\u2640\u2642]\uFE0F?)?|[\uDD0D\uDD0E\uDD10-\uDD17\uDD20-\uDD25\uDD27-\uDD2F\uDD3A\uDD3F-\uDD45\uDD47-\uDD76\uDD78-\uDDB4\uDDB7\uDDBA\uDDBC-\uDDCC\uDDD0\uDDE0-\uDDFF\uDE70-\uDE7C\uDE80-\uDE8A\uDE8E-\uDEC2\uDEC6\uDEC8\uDECD-\uDEDC\uDEDF-\uDEEA\uDEEF]|\uDDCE(?:\uD83C[\uDFFB-\uDFFF])?(?:\u200D(?:[\u2640\u2642]\uFE0F?(?:\u200D\u27A1\uFE0F?)?|\u27A1\uFE0F?))?|\uDDD1(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3\uDE70]|\uDD1D\u200D\uD83E\uDDD1|\uDDD1\u200D\uD83E\uDDD2(?:\u200D\uD83E\uDDD2)?|\uDDD2(?:\u200D\uD83E\uDDD2)?))|\uD83C(?:\uDFFB(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D(?:\uD83D\uDC8B\u200D)?\uD83E\uDDD1\uD83C[\uDFFC-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D(?:[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uDC30\u200D\uD83E\uDDD1\uD83C[\uDFFC-\uDFFF])|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3\uDE70]|\uDD1D\u200D\uD83E\uDDD1\uD83C[\uDFFB-\uDFFF]|\uDEEF\u200D\uD83E\uDDD1\uD83C[\uDFFC-\uDFFF])))?|\uDFFC(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D(?:\uD83D\uDC8B\u200D)?\uD83E\uDDD1\uD83C[\uDFFB\uDFFD-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D(?:[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uDC30\u200D\uD83E\uDDD1\uD83C[\uDFFB\uDFFD-\uDFFF])|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3\uDE70]|\uDD1D\u200D\uD83E\uDDD1\uD83C[\uDFFB-\uDFFF]|\uDEEF\u200D\uD83E\uDDD1\uD83C[\uDFFB\uDFFD-\uDFFF])))?|\uDFFD(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D(?:\uD83D\uDC8B\u200D)?\uD83E\uDDD1\uD83C[\uDFFB\uDFFC\uDFFE\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D(?:[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uDC30\u200D\uD83E\uDDD1\uD83C[\uDFFB\uDFFC\uDFFE\uDFFF])|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3\uDE70]|\uDD1D\u200D\uD83E\uDDD1\uD83C[\uDFFB-\uDFFF]|\uDEEF\u200D\uD83E\uDDD1\uD83C[\uDFFB\uDFFC\uDFFE\uDFFF])))?|\uDFFE(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D(?:\uD83D\uDC8B\u200D)?\uD83E\uDDD1\uD83C[\uDFFB-\uDFFD\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D(?:[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uDC30\u200D\uD83E\uDDD1\uD83C[\uDFFB-\uDFFD\uDFFF])|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3\uDE70]|\uDD1D\u200D\uD83E\uDDD1\uD83C[\uDFFB-\uDFFF]|\uDEEF\u200D\uD83E\uDDD1\uD83C[\uDFFB-\uDFFD\uDFFF])))?|\uDFFF(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D(?:\uD83D\uDC8B\u200D)?\uD83E\uDDD1\uD83C[\uDFFB-\uDFFE]|\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D(?:[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uDC30\u200D\uD83E\uDDD1\uD83C[\uDFFB-\uDFFE])|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3\uDE70]|\uDD1D\u200D\uD83E\uDDD1\uD83C[\uDFFB-\uDFFF]|\uDEEF\u200D\uD83E\uDDD1\uD83C[\uDFFB-\uDFFE])))?))?|\uDEF1(?:\uD83C(?:\uDFFB(?:\u200D\uD83E\uDEF2\uD83C[\uDFFC-\uDFFF])?|\uDFFC(?:\u200D\uD83E\uDEF2\uD83C[\uDFFB\uDFFD-\uDFFF])?|\uDFFD(?:\u200D\uD83E\uDEF2\uD83C[\uDFFB\uDFFC\uDFFE\uDFFF])?|\uDFFE(?:\u200D\uD83E\uDEF2\uD83C[\uDFFB-\uDFFD\uDFFF])?|\uDFFF(?:\u200D\uD83E\uDEF2\uD83C[\uDFFB-\uDFFE])?))?)/g; - }; - } -}); - -// node_modules/get-east-asian-width/lookup-data.js -var fullwidthMinimalCodePoint, fullwidthMaximumCodePoint, fullwidthRanges, wideMinimalCodePoint, wideMaximumCodePoint, wideRanges; -var init_lookup_data = __esm({ - "node_modules/get-east-asian-width/lookup-data.js"() { - fullwidthMinimalCodePoint = 12288; - fullwidthMaximumCodePoint = 65510; - fullwidthRanges = [12288, 12288, 65281, 65376, 65504, 65510]; - wideMinimalCodePoint = 4352; - wideMaximumCodePoint = 262141; - wideRanges = [4352, 4447, 8986, 8987, 9001, 9002, 9193, 9196, 9200, 9200, 9203, 9203, 9725, 9726, 9748, 9749, 9776, 9783, 9800, 9811, 9855, 9855, 9866, 9871, 9875, 9875, 9889, 9889, 9898, 9899, 9917, 9918, 9924, 9925, 9934, 9934, 9940, 9940, 9962, 9962, 9970, 9971, 9973, 9973, 9978, 9978, 9981, 9981, 9989, 9989, 9994, 9995, 10024, 10024, 10060, 10060, 10062, 10062, 10067, 10069, 10071, 10071, 10133, 10135, 10160, 10160, 10175, 10175, 11035, 11036, 11088, 11088, 11093, 11093, 11904, 11929, 11931, 12019, 12032, 12245, 12272, 12287, 12289, 12350, 12353, 12438, 12441, 12543, 12549, 12591, 12593, 12686, 12688, 12773, 12783, 12830, 12832, 12871, 12880, 42124, 42128, 42182, 43360, 43388, 44032, 55203, 63744, 64255, 65040, 65049, 65072, 65106, 65108, 65126, 65128, 65131, 94176, 94180, 94192, 94198, 94208, 101589, 101631, 101662, 101760, 101874, 110576, 110579, 110581, 110587, 110589, 110590, 110592, 110882, 110898, 110898, 110928, 110930, 110933, 110933, 110948, 110951, 110960, 111355, 119552, 119638, 119648, 119670, 126980, 126980, 127183, 127183, 127374, 127374, 127377, 127386, 127488, 127490, 127504, 127547, 127552, 127560, 127568, 127569, 127584, 127589, 127744, 127776, 127789, 127797, 127799, 127868, 127870, 127891, 127904, 127946, 127951, 127955, 127968, 127984, 127988, 127988, 127992, 128062, 128064, 128064, 128066, 128252, 128255, 128317, 128331, 128334, 128336, 128359, 128378, 128378, 128405, 128406, 128420, 128420, 128507, 128591, 128640, 128709, 128716, 128716, 128720, 128722, 128725, 128728, 128732, 128735, 128747, 128748, 128756, 128764, 128992, 129003, 129008, 129008, 129292, 129338, 129340, 129349, 129351, 129535, 129648, 129660, 129664, 129674, 129678, 129734, 129736, 129736, 129741, 129756, 129759, 129770, 129775, 129784, 131072, 196605, 196608, 262141]; - } -}); - -// node_modules/get-east-asian-width/utilities.js -var isInRange; -var init_utilities2 = __esm({ - "node_modules/get-east-asian-width/utilities.js"() { - isInRange = (ranges, codePoint) => { - let low = 0; - let high = Math.floor(ranges.length / 2) - 1; - while (low <= high) { - const mid = Math.floor((low + high) / 2); - const i = mid * 2; - if (codePoint < ranges[i]) { - high = mid - 1; - } else if (codePoint > ranges[i + 1]) { - low = mid + 1; - } else { - return true; - } - } - return false; - }; - } -}); - -// node_modules/get-east-asian-width/lookup.js -function findWideFastPathRange(ranges) { - let fastPathStart = ranges[0]; - let fastPathEnd = ranges[1]; - for (let index = 0; index < ranges.length; index += 2) { - const start = ranges[index]; - const end = ranges[index + 1]; - if (commonCjkCodePoint >= start && commonCjkCodePoint <= end) { - return [start, end]; - } - if (end - start > fastPathEnd - fastPathStart) { - fastPathStart = start; - fastPathEnd = end; - } - } - return [fastPathStart, fastPathEnd]; -} -var commonCjkCodePoint, wideFastPathStart, wideFastPathEnd, isFullWidth, isWide; -var init_lookup = __esm({ - "node_modules/get-east-asian-width/lookup.js"() { - init_lookup_data(); - init_utilities2(); - commonCjkCodePoint = 19968; - [wideFastPathStart, wideFastPathEnd] = /* @__PURE__ */ findWideFastPathRange(wideRanges); - isFullWidth = (codePoint) => { - if (codePoint < fullwidthMinimalCodePoint || codePoint > fullwidthMaximumCodePoint) { - return false; - } - return isInRange(fullwidthRanges, codePoint); - }; - isWide = (codePoint) => { - if (codePoint >= wideFastPathStart && codePoint <= wideFastPathEnd) { - return true; - } - if (codePoint < wideMinimalCodePoint || codePoint > wideMaximumCodePoint) { - return false; - } - return isInRange(wideRanges, codePoint); - }; - } -}); - -// node_modules/get-east-asian-width/index.js -var init_get_east_asian_width = __esm({ - "node_modules/get-east-asian-width/index.js"() { - init_lookup(); - } -}); - -// node_modules/narrow-emojis/index.js -var narrowEmojiRegexp, isNarrowEmojiCharacter; -var init_narrow_emojis = __esm({ - "node_modules/narrow-emojis/index.js"() { - narrowEmojiRegexp = /^(?:[\xA9\xAE\u203C\u2049\u2122\u2139\u2194-\u2199\u21A9\u21AA\u2328\u23CF\u23ED-\u23EF\u23F1\u23F2\u23F8-\u23FA\u24C2\u25AA\u25AB\u25B6\u25C0\u25FB\u25FC\u2600-\u2604\u260E\u2611\u2618\u2620\u2622\u2623\u2626\u262A\u262E\u262F\u2638-\u263A\u2640\u2642\u265F\u2660\u2663\u2665\u2666\u2668\u267B\u267E\u2692\u2694-\u2697\u2699\u269B\u269C\u26A0\u26A7\u26B0\u26B1\u26C8\u26CF\u26D1\u26D3\u26E9\u26F0\u26F1\u26F4\u26F7\u26F8\u2702\u2708\u2709\u270F\u2712\u2714\u2716\u271D\u2721\u2733\u2734\u2744\u2747\u2763\u2764\u27A1\u2934\u2935\u2B05-\u2B07]|\uD83C[\uDD70\uDD71\uDD7E\uDD7F\uDF21\uDF24-\uDF2C\uDF36\uDF7D\uDF96\uDF97\uDF99-\uDF9B\uDF9E\uDF9F\uDFCD\uDFCE\uDFD4-\uDFDF\uDFF3\uDFF5\uDFF7]|\uD83D[\uDC3F\uDC41\uDCFD\uDD49\uDD4A\uDD6F\uDD70\uDD73\uDD76-\uDD79\uDD87\uDD8A-\uDD8D\uDDA5\uDDA8\uDDB1\uDDB2\uDDBC\uDDC2-\uDDC4\uDDD1-\uDDD3\uDDDC-\uDDDE\uDDE1\uDDE3\uDDE8\uDDEF\uDDF3\uDDFA\uDECB\uDECD-\uDECF\uDEE0-\uDEE5\uDEE9\uDEF0\uDEF3])$/; - isNarrowEmojiCharacter = (character) => narrowEmojiRegexp.test(character); - } -}); - -// src/utilities/get-string-width.js -function getStringWidth(text) { - if (!text) { - return 0; - } - if (!notAsciiRegex.test(text)) { - return text.length; - } - let width = 0; - text = text.replace(emoji_regex_default(), (character) => { - width += isNarrowEmojiCharacter(character) ? 1 : 2; - return ""; - }); - for (const character of text) { - const codePoint = character.codePointAt(0); - if (codePoint <= 31 || codePoint >= 127 && codePoint <= 159) { - continue; - } - if (codePoint >= 768 && codePoint <= 879) { - continue; - } - if (codePoint >= 65024 && codePoint <= 65039) { - continue; - } - width += isFullWidth(codePoint) || isWide(codePoint) ? 2 : 1; - } - return width; -} -var notAsciiRegex, get_string_width_default; -var init_get_string_width = __esm({ - "src/utilities/get-string-width.js"() { - init_emoji_regex(); - init_get_east_asian_width(); - init_narrow_emojis(); - notAsciiRegex = /[^\x20-\x7F]/; - get_string_width_default = getStringWidth; - } -}); - -// src/utilities/has-newline-in-range.js -function hasNewlineInRange(text, startIndex, endIndex) { - for (let i = startIndex; i < endIndex; ++i) { - if (text.charAt(i) === "\n") { - return true; - } - } - return false; -} -var has_newline_in_range_default; -var init_has_newline_in_range = __esm({ - "src/utilities/has-newline-in-range.js"() { - has_newline_in_range_default = hasNewlineInRange; - } -}); - -// src/utilities/has-spaces.js -function hasSpaces(text, startIndex, options = {}) { - const idx = skipSpaces( - text, - options.backwards ? startIndex - 1 : startIndex, - options - ); - return idx !== startIndex; -} -var has_spaces_default; -var init_has_spaces = __esm({ - "src/utilities/has-spaces.js"() { - init_skip(); - has_spaces_default = hasSpaces; - } -}); - -// src/utilities/public.js -var public_exports = {}; -__export(public_exports, { - addDanglingComment: () => addDanglingComment, - addLeadingComment: () => addLeadingComment, - addTrailingComment: () => addTrailingComment, - getAlignmentSize: () => get_alignment_size_default, - getIndentSize: () => get_indent_size_default, - getMaxContinuousCount: () => get_max_continuous_count_default, - getNextNonSpaceNonCommentCharacter: () => get_next_non_space_non_comment_character_default, - getNextNonSpaceNonCommentCharacterIndex: () => getNextNonSpaceNonCommentCharacterIndex2, - getPreferredQuote: () => getPreferredQuote, - getStringWidth: () => get_string_width_default, - hasNewline: () => has_newline_default, - hasNewlineInRange: () => has_newline_in_range_default, - hasSpaces: () => has_spaces_default, - isNextLineEmpty: () => isNextLineEmpty2, - isNextLineEmptyAfterIndex: () => is_next_line_empty_default, - isPreviousLineEmpty: () => isPreviousLineEmpty2, - makeString: () => makeString, - skip: () => skip, - skipEverythingButNewLine: () => skipEverythingButNewLine, - skipInlineComment: () => skip_inline_comment_default, - skipNewline: () => skip_newline_default, - skipSpaces: () => skipSpaces, - skipToLineEnd: () => skipToLineEnd, - skipTrailingComment: () => skip_trailing_comment_default, - skipWhitespace: () => skipWhitespace -}); -function legacyGetNextNonSpaceNonCommentCharacterIndex(text, node, locEnd) { - return get_next_non_space_non_comment_character_index_default(text, locEnd(node)); -} -function getNextNonSpaceNonCommentCharacterIndex2(text, startIndex) { - return arguments.length === 2 || typeof startIndex === "number" ? get_next_non_space_non_comment_character_index_default(text, startIndex) : ( - // @ts-expect-error -- expected - // eslint-disable-next-line prefer-rest-params - legacyGetNextNonSpaceNonCommentCharacterIndex(...arguments) - ); -} -function legacyIsPreviousLineEmpty(text, node, locStart) { - return is_previous_line_empty_default(text, locStart(node)); -} -function isPreviousLineEmpty2(text, startIndex) { - return arguments.length === 2 || typeof startIndex === "number" ? is_previous_line_empty_default(text, startIndex) : ( - // @ts-expect-error -- expected - // eslint-disable-next-line prefer-rest-params - legacyIsPreviousLineEmpty(...arguments) - ); -} -function legacyIsNextLineEmpty(text, node, locEnd) { - return is_next_line_empty_default(text, locEnd(node)); -} -function makeString(rawText, enclosingQuote, unescapeUnnecessaryEscapes) { - const otherQuote = enclosingQuote === '"' ? "'" : '"'; - const regex = /\\(.)|(["'])/gs; - const raw = method_replace_all_default( - /* OPTIONAL_OBJECT: false */ - 0, - rawText, - regex, - (match, escaped, quote) => { - if (escaped === otherQuote) { - return escaped; - } - if (quote === enclosingQuote) { - return "\\" + quote; - } - if (quote) { - return quote; - } - return unescapeUnnecessaryEscapes && /^[^\n\r"'0-7\\bfnrt-vx\u2028\u2029]$/.test(escaped) ? escaped : "\\" + escaped; - } - ); - return enclosingQuote + raw + enclosingQuote; -} -function isNextLineEmpty2(text, startIndex) { - return arguments.length === 2 || typeof startIndex === "number" ? is_next_line_empty_default(text, startIndex) : ( - // @ts-expect-error -- expected - // eslint-disable-next-line prefer-rest-params - legacyIsNextLineEmpty(...arguments) - ); -} -var init_public = __esm({ - "src/utilities/public.js"() { - init_method_replace_all(); - init_get_next_non_space_non_comment_character_index(); - init_is_next_line_empty(); - init_is_previous_line_empty(); - init_utilities(); - init_get_alignment_size(); - init_get_indent_size(); - init_get_max_continuous_count(); - init_get_next_non_space_non_comment_character(); - init_get_preferred_quote(); - init_get_string_width(); - init_has_newline(); - init_has_newline_in_range(); - init_has_spaces(); - init_skip(); - init_skip_inline_comment(); - init_skip_newline(); - init_skip_trailing_comment(); - } -}); - -// src/main/version.evaluate.js -var version_evaluate_exports = {}; -__export(version_evaluate_exports, { - default: () => version_evaluate_default -}); -var version_evaluate_default; -var init_version_evaluate = __esm({ - "src/main/version.evaluate.js"() { - version_evaluate_default = "3.9.4"; - } -}); - -// src/index.cjs -var prettierPromise = import("./index.mjs"); -var functionNames = [ - "formatWithCursor", - "format", - "check", - "resolveConfig", - "resolveConfigFile", - "clearConfigCache", - "getFileInfo", - "getSupportInfo" -]; -var prettier = /* @__PURE__ */ Object.create(null); -for (const name of functionNames) { - prettier[name] = async (...args) => { - const prettier2 = await prettierPromise; - return prettier2[name](...args); - }; -} -var debugApiFunctionNames = [ - "parse", - "formatAST", - "formatDoc", - "printToDoc", - "printDocToString" -]; -var debugApis = /* @__PURE__ */ Object.create(null); -for (const name of debugApiFunctionNames) { - debugApis[name] = async (...args) => { - const prettier2 = await prettierPromise; - return prettier2.__debug[name](...args); - }; -} -prettier.__debug = debugApis; -if (true) { - prettier.util = (init_public(), __toCommonJS(public_exports)); - prettier.doc = require("./doc.js"); - prettier.version = (init_version_evaluate(), __toCommonJS(version_evaluate_exports)).default; -} else { - Object.defineProperties(prettier, { - util: { - get() { - try { - return null; - } catch { - } - throw new Error( - "prettier.util is not available in development CommonJS version" - ); - } - }, - doc: { - get() { - try { - return null; - } catch { - } - throw new Error( - "prettier.doc is not available in development CommonJS version" - ); - } - } - }); - prettier.version = null.version; -} -module.exports = prettier; diff --git a/node_modules/prettier/index.d.ts b/node_modules/prettier/index.d.ts deleted file mode 100644 index 8532774..0000000 --- a/node_modules/prettier/index.d.ts +++ /dev/null @@ -1,959 +0,0 @@ -// Copied from `@types/prettier` -// https://github.com/DefinitelyTyped/DefinitelyTyped/blob/5bb07fc4b087cb7ee91084afa6fe750551a7bbb1/types/prettier/index.d.ts - -// Minimum TypeScript Version: 4.2 - -// Add `export {}` here to shut off automatic exporting from index.d.ts. There -// are quite a few utility types here that don't need to be shipped with the -// exported module. -export {}; - -import { builders, printer, utils } from "./doc.js"; - -export namespace doc { - export { builders, printer, utils }; -} - -// This utility is here to handle the case where you have an explicit union -// between string literals and the generic string type. It would normally -// resolve out to just the string type, but this generic LiteralUnion maintains -// the intellisense of the original union. -// -// It comes from this issue: microsoft/TypeScript#29729: -// https://github.com/microsoft/TypeScript/issues/29729#issuecomment-700527227 -export type LiteralUnion = - T | (Pick & { _?: never | undefined }); - -export type AST = any; -export type Doc = doc.builders.Doc; - -// The type of elements that make up the given array T. -type ArrayElement = T extends Array ? E : never; - -// A union of the properties of the given object that are arrays. -type ArrayProperties = { - [K in keyof T]: NonNullable extends readonly any[] ? K : never; -}[keyof T]; - -// A union of the properties of the given array T that can be used to index it. -// If the array is a tuple, then that's going to be the explicit indices of the -// array, otherwise it's going to just be number. -type IndexProperties = - IsTuple extends true ? Exclude["length"], T["length"]> : number; - -// Effectively performing T[P], except that it's telling TypeScript that it's -// safe to do this for tuples, arrays, or objects. -type IndexValue = T extends any[] - ? P extends number - ? T[P] - : never - : P extends keyof T - ? T[P] - : never; - -// Determines if an object T is an array like string[] (in which case this -// evaluates to false) or a tuple like [string] (in which case this evaluates to -// true). -// eslint-disable-next-line @typescript-eslint/no-unused-vars -type IsTuple = T extends [] - ? true - : T extends [infer First, ...infer Remain] - ? IsTuple - : false; - -type CallProperties = T extends any[] ? IndexProperties : keyof T; -type IterProperties = T extends any[] - ? IndexProperties - : ArrayProperties; - -type CallCallback = (path: AstPath, index: number, value: any) => U; -type EachCallback = ( - path: AstPath>, - index: number, - value: any, -) => void; -type MapCallback = ( - path: AstPath>, - index: number, - value: any, -) => U; - -// https://github.com/prettier/prettier/blob/next/src/common/ast-path.js -export class AstPath { - constructor(value: T); - - get key(): string | null; - get index(): number | null; - get node(): T; - get parent(): T | null; - get grandparent(): T | null; - get isInArray(): boolean; - get siblings(): T[] | null; - get next(): T | null; - get previous(): T | null; - get isFirst(): boolean; - get isLast(): boolean; - get isRoot(): boolean; - get root(): T; - get ancestors(): T[]; - - stack: T[]; - - callParent(callback: (path: this) => U, count?: number): U; - - /** - * @deprecated Please use `AstPath#key` or `AstPath#index` - */ - getName(): PropertyKey | null; - - /** - * @deprecated Please use `AstPath#node` or `AstPath#siblings` - */ - getValue(): T; - - getNode(count?: number): T | null; - - getParentNode(count?: number): T | null; - - match( - ...predicates: Array< - (node: any, name: string | null, number: number | null) => boolean - > - ): boolean; - - // For each of the tree walk functions (call, each, and map) this provides 5 - // strict type signatures, along with a fallback at the end if you end up - // calling more than 5 properties deep. This helps a lot with typing because - // for the majority of cases you're calling fewer than 5 properties, so the - // tree walk functions have a clearer understanding of what you're doing. - // - // Note that resolving these types is somewhat complicated, and it wasn't - // even supported until TypeScript 4.2 (before it would just say that the - // type instantiation was excessively deep and possibly infinite). - - call(callback: CallCallback): U; - call>( - callback: CallCallback, U>, - prop1: P1, - ): U; - call>( - callback: CallCallback, P2>, U>, - prop1: P1, - prop2: P2, - ): U; - call< - U, - P1 extends keyof T, - P2 extends CallProperties, - P3 extends CallProperties>, - >( - callback: CallCallback< - IndexValue, P2>, P3>, - U - >, - prop1: P1, - prop2: P2, - prop3: P3, - ): U; - call< - U, - P1 extends keyof T, - P2 extends CallProperties, - P3 extends CallProperties>, - P4 extends CallProperties, P3>>, - >( - callback: CallCallback< - IndexValue, P2>, P3>, P4>, - U - >, - prop1: P1, - prop2: P2, - prop3: P3, - prop4: P4, - ): U; - call( - callback: CallCallback, - prop1: P, - prop2: P, - prop3: P, - prop4: P, - ...props: P[] - ): U; - - each(callback: EachCallback): void; - each>( - callback: EachCallback>, - prop1: P1, - ): void; - each>( - callback: EachCallback, P2>>, - prop1: P1, - prop2: P2, - ): void; - each< - P1 extends keyof T, - P2 extends IterProperties, - P3 extends IterProperties>, - >( - callback: EachCallback, P2>, P3>>, - prop1: P1, - prop2: P2, - prop3: P3, - ): void; - each< - P1 extends keyof T, - P2 extends IterProperties, - P3 extends IterProperties>, - P4 extends IterProperties, P3>>, - >( - callback: EachCallback< - IndexValue, P2>, P3>, P4> - >, - prop1: P1, - prop2: P2, - prop3: P3, - prop4: P4, - ): void; - each( - callback: EachCallback, - prop1: PropertyKey, - prop2: PropertyKey, - prop3: PropertyKey, - prop4: PropertyKey, - ...props: PropertyKey[] - ): void; - - map(callback: MapCallback): U[]; - map>( - callback: MapCallback, U>, - prop1: P1, - ): U[]; - map>( - callback: MapCallback, P2>, U>, - prop1: P1, - prop2: P2, - ): U[]; - map< - U, - P1 extends keyof T, - P2 extends IterProperties, - P3 extends IterProperties>, - >( - callback: MapCallback, P2>, P3>, U>, - prop1: P1, - prop2: P2, - prop3: P3, - ): U[]; - map< - U, - P1 extends keyof T, - P2 extends IterProperties, - P3 extends IterProperties>, - P4 extends IterProperties, P3>>, - >( - callback: MapCallback< - IndexValue, P2>, P3>, P4>, - U - >, - prop1: P1, - prop2: P2, - prop3: P3, - prop4: P4, - ): U[]; - map( - callback: MapCallback, - prop1: PropertyKey, - prop2: PropertyKey, - prop3: PropertyKey, - prop4: PropertyKey, - ...props: PropertyKey[] - ): U[]; -} - -/** @deprecated `FastPath` was renamed to `AstPath` */ -export type FastPath = AstPath; - -export type BuiltInParser = (text: string, options?: any) => AST; -export type BuiltInParserName = - | "acorn" - | "angular" - | "babel-flow" - | "babel-ts" - | "babel" - | "css" - | "espree" - | "flow" - | "glimmer" - | "graphql" - | "html" - | "json-stringify" - | "json" - | "json5" - | "jsonc" - | "less" - | "lwc" - | "markdown" - | "mdx" - | "meriyah" - | "mjml" - | "scss" - | "typescript" - | "vue" - | "yaml"; -export type BuiltInParsers = Record; - -/** - * For use in `.prettierrc.js`, `.prettierrc.ts`, `.prettierrc.cjs`, `.prettierrc.cts`, `prettierrc.mjs`, `prettierrc.mts`, `prettier.config.js`, `prettier.config.ts`, `prettier.config.cjs`, `prettier.config.cts`, `prettier.config.mjs`, `prettier.config.mts` - */ -export interface Config extends Options { - overrides?: Array<{ - files: string | string[]; - excludeFiles?: string | string[]; - options?: Options; - }>; -} - -export interface Options extends Partial {} - -export interface RequiredOptions extends doc.printer.Options { - /** - * Print semicolons at the ends of statements. - * @default true - */ - semi: boolean; - /** - * Use single quotes instead of double quotes. - * @default false - */ - singleQuote: boolean; - /** - * Use single quotes in JSX. - * @default false - */ - jsxSingleQuote: boolean; - /** - * Print trailing commas wherever possible. - * @default "all" - */ - trailingComma: "none" | "es5" | "all"; - /** - * Print spaces between brackets in object literals. - * @default true - */ - bracketSpacing: boolean; - /** - * How to wrap object literals. - * @default "preserve" - */ - objectWrap: "preserve" | "collapse"; - /** - * Put the `>` of a multi-line HTML (HTML, JSX, Vue, Angular) element at the end of the last line instead of being - * alone on the next line (does not apply to self closing elements). - * @default false - */ - bracketSameLine: boolean; - /** - * Format only a segment of a file. - * @default 0 - */ - rangeStart: number; - /** - * Format only a segment of a file. - * @default Number.POSITIVE_INFINITY - */ - rangeEnd: number; - /** - * Specify which parser to use. - */ - parser: LiteralUnion; - /** - * Specify the input filepath. This will be used to do parser inference. - */ - filepath: string; - /** - * Prettier can restrict itself to only format files that contain a special comment, called a pragma, at the top of the file. - * This is very useful when gradually transitioning large, unformatted codebases to prettier. - * @default false - */ - requirePragma: boolean; - /** - * Prettier can insert a special @format marker at the top of files specifying that - * the file has been formatted with prettier. This works well when used in tandem with - * the --require-pragma option. If there is already a docblock at the top of - * the file then this option will add a newline to it with the @format marker. - * @default false - */ - insertPragma: boolean; - /** - * Prettier can allow individual files to opt out of formatting if they contain a special comment, called a pragma, at the top of the file. - * @default false - */ - checkIgnorePragma: boolean; - /** - * By default, Prettier will wrap markdown text as-is since some services use a linebreak-sensitive renderer. - * In some cases you may want to rely on editor/viewer soft wrapping instead, so this option allows you to opt out. - * @default "preserve" - */ - proseWrap: "always" | "never" | "preserve"; - /** - * Include parentheses around a sole arrow function parameter. - * @default "always" - */ - arrowParens: "avoid" | "always"; - /** - * Provide ability to support new languages to prettier. - */ - plugins: Array; - /** - * How to handle whitespaces in HTML. - * @default "css" - */ - htmlWhitespaceSensitivity: "css" | "strict" | "ignore"; - /** - * Which end of line characters to apply. - * @default "lf" - */ - endOfLine: "auto" | "lf" | "crlf" | "cr"; - /** - * Change when properties in objects are quoted. - * @default "as-needed" - */ - quoteProps: "as-needed" | "consistent" | "preserve"; - /** - * Whether or not to indent the code inside