@synapse-research/synapse 0.1.11 → 0.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/bin/synapse.mjs +5 -33
- package/dist/.next/BUILD_ID +1 -1
- package/dist/.next/app-build-manifest.json +171 -171
- package/dist/.next/app-path-routes-manifest.json +37 -37
- package/dist/.next/build-manifest.json +2 -2
- package/dist/.next/server/app/(dashboard)/agents/page_client-reference-manifest.js +1 -1
- package/dist/.next/server/app/(dashboard)/compute/page_client-reference-manifest.js +1 -1
- package/dist/.next/server/app/(dashboard)/project-groups/[uuid]/page_client-reference-manifest.js +1 -1
- package/dist/.next/server/app/(dashboard)/research-projects/[uuid]/activity/page_client-reference-manifest.js +1 -1
- package/dist/.next/server/app/(dashboard)/research-projects/[uuid]/dashboard/page_client-reference-manifest.js +1 -1
- package/dist/.next/server/app/(dashboard)/research-projects/[uuid]/documents/[documentUuid]/page_client-reference-manifest.js +1 -1
- package/dist/.next/server/app/(dashboard)/research-projects/[uuid]/documents/page_client-reference-manifest.js +1 -1
- package/dist/.next/server/app/(dashboard)/research-projects/[uuid]/experiment-designs/[designUuid]/page_client-reference-manifest.js +1 -1
- package/dist/.next/server/app/(dashboard)/research-projects/[uuid]/experiment-designs/new/page_client-reference-manifest.js +1 -1
- package/dist/.next/server/app/(dashboard)/research-projects/[uuid]/experiment-designs/page_client-reference-manifest.js +1 -1
- package/dist/.next/server/app/(dashboard)/research-projects/[uuid]/experiment-runs/[runUuid]/page_client-reference-manifest.js +1 -1
- package/dist/.next/server/app/(dashboard)/research-projects/[uuid]/experiment-runs/page_client-reference-manifest.js +1 -1
- package/dist/.next/server/app/(dashboard)/research-projects/[uuid]/experiments/new/page_client-reference-manifest.js +1 -1
- package/dist/.next/server/app/(dashboard)/research-projects/[uuid]/experiments/page_client-reference-manifest.js +1 -1
- package/dist/.next/server/app/(dashboard)/research-projects/[uuid]/insights/page_client-reference-manifest.js +1 -1
- package/dist/.next/server/app/(dashboard)/research-projects/[uuid]/related-works/page_client-reference-manifest.js +1 -1
- package/dist/.next/server/app/(dashboard)/research-projects/[uuid]/research-questions/[questionUuid]/page_client-reference-manifest.js +1 -1
- package/dist/.next/server/app/(dashboard)/research-projects/[uuid]/research-questions/page_client-reference-manifest.js +1 -1
- package/dist/.next/server/app/(dashboard)/research-projects/[uuid]/settings/page_client-reference-manifest.js +1 -1
- package/dist/.next/server/app/(dashboard)/research-projects/new/page_client-reference-manifest.js +1 -1
- package/dist/.next/server/app/(dashboard)/research-projects/page_client-reference-manifest.js +1 -1
- package/dist/.next/server/app/(dashboard)/settings/page_client-reference-manifest.js +1 -1
- package/dist/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
- package/dist/.next/server/app/_not-found.html +1 -1
- package/dist/.next/server/app/_not-found.rsc +1 -1
- package/dist/.next/server/app/admin/companies/[uuid]/page_client-reference-manifest.js +1 -1
- package/dist/.next/server/app/admin/companies/new/page_client-reference-manifest.js +1 -1
- package/dist/.next/server/app/admin/companies/new.html +1 -1
- package/dist/.next/server/app/admin/companies/new.rsc +1 -1
- package/dist/.next/server/app/admin/companies/page_client-reference-manifest.js +1 -1
- package/dist/.next/server/app/admin/companies.html +1 -1
- package/dist/.next/server/app/admin/companies.rsc +1 -1
- package/dist/.next/server/app/admin/page_client-reference-manifest.js +1 -1
- package/dist/.next/server/app/admin.html +1 -1
- package/dist/.next/server/app/admin.rsc +1 -1
- package/dist/.next/server/app/api/admin/companies/[uuid]/route_client-reference-manifest.js +1 -1
- package/dist/.next/server/app/api/admin/companies/route_client-reference-manifest.js +1 -1
- package/dist/.next/server/app/api/admin/login/route_client-reference-manifest.js +1 -1
- package/dist/.next/server/app/api/admin/session/route_client-reference-manifest.js +1 -1
- package/dist/.next/server/app/api/admin/stats/route_client-reference-manifest.js +1 -1
- package/dist/.next/server/app/api/agents/[uuid]/route_client-reference-manifest.js +1 -1
- package/dist/.next/server/app/api/agents/[uuid]/sessions/route_client-reference-manifest.js +1 -1
- package/dist/.next/server/app/api/agents/route_client-reference-manifest.js +1 -1
- package/dist/.next/server/app/api/api-keys/[uuid]/route_client-reference-manifest.js +1 -1
- package/dist/.next/server/app/api/api-keys/route_client-reference-manifest.js +1 -1
- package/dist/.next/server/app/api/auth/callback/route_client-reference-manifest.js +1 -1
- package/dist/.next/server/app/api/auth/check-default/route_client-reference-manifest.js +1 -1
- package/dist/.next/server/app/api/auth/default-login/route_client-reference-manifest.js +1 -1
- package/dist/.next/server/app/api/auth/identify/route_client-reference-manifest.js +1 -1
- package/dist/.next/server/app/api/auth/logout/route_client-reference-manifest.js +1 -1
- package/dist/.next/server/app/api/auth/me/route_client-reference-manifest.js +1 -1
- package/dist/.next/server/app/api/auth/refresh/route_client-reference-manifest.js +1 -1
- package/dist/.next/server/app/api/auth/session/route_client-reference-manifest.js +1 -1
- package/dist/.next/server/app/api/auth/sync-token/route_client-reference-manifest.js +1 -1
- package/dist/.next/server/app/api/comments/route_client-reference-manifest.js +1 -1
- package/dist/.next/server/app/api/compute-nodes/[uuid]/route_client-reference-manifest.js +1 -1
- package/dist/.next/server/app/api/compute-nodes/route_client-reference-manifest.js +1 -1
- package/dist/.next/server/app/api/compute-pools/[uuid]/route_client-reference-manifest.js +1 -1
- package/dist/.next/server/app/api/compute-pools/route_client-reference-manifest.js +1 -1
- package/dist/.next/server/app/api/documents/[uuid]/route_client-reference-manifest.js +1 -1
- package/dist/.next/server/app/api/events/notifications/route_client-reference-manifest.js +1 -1
- package/dist/.next/server/app/api/events/route_client-reference-manifest.js +1 -1
- package/dist/.next/server/app/api/experiment-designs/[uuid]/approve/route_client-reference-manifest.js +1 -1
- package/dist/.next/server/app/api/experiment-designs/[uuid]/close/route_client-reference-manifest.js +1 -1
- package/dist/.next/server/app/api/experiment-designs/[uuid]/reject/route_client-reference-manifest.js +1 -1
- package/dist/.next/server/app/api/experiment-designs/[uuid]/route_client-reference-manifest.js +1 -1
- package/dist/.next/server/app/api/experiment-runs/[uuid]/claim/route_client-reference-manifest.js +1 -1
- package/dist/.next/server/app/api/experiment-runs/[uuid]/dependencies/[dependsOnRunUuid]/route_client-reference-manifest.js +1 -1
- package/dist/.next/server/app/api/experiment-runs/[uuid]/dependencies/route_client-reference-manifest.js +1 -1
- package/dist/.next/server/app/api/experiment-runs/[uuid]/evaluate-criteria/route_client-reference-manifest.js +1 -1
- package/dist/.next/server/app/api/experiment-runs/[uuid]/registry/route_client-reference-manifest.js +1 -1
- package/dist/.next/server/app/api/experiment-runs/[uuid]/release/route_client-reference-manifest.js +1 -1
- package/dist/.next/server/app/api/experiment-runs/[uuid]/route_client-reference-manifest.js +1 -1
- package/dist/.next/server/app/api/experiment-runs/[uuid]/sessions/route_client-reference-manifest.js +1 -1
- package/dist/.next/server/app/api/experiments/[uuid]/complete/route_client-reference-manifest.js +1 -1
- package/dist/.next/server/app/api/experiments/[uuid]/progress/route_client-reference-manifest.js +1 -1
- package/dist/.next/server/app/api/experiments/[uuid]/request-plan/route_client-reference-manifest.js +1 -1
- package/dist/.next/server/app/api/experiments/[uuid]/reset/route_client-reference-manifest.js +1 -1
- package/dist/.next/server/app/api/experiments/[uuid]/review/route_client-reference-manifest.js +1 -1
- package/dist/.next/server/app/api/experiments/[uuid]/route_client-reference-manifest.js +1 -1
- package/dist/.next/server/app/api/experiments/[uuid]/start/route_client-reference-manifest.js +1 -1
- package/dist/.next/server/app/api/health/route_client-reference-manifest.js +1 -1
- package/dist/.next/server/app/api/mcp/route_client-reference-manifest.js +1 -1
- package/dist/.next/server/app/api/me/assignments/route_client-reference-manifest.js +1 -1
- package/dist/.next/server/app/api/mentionables/route_client-reference-manifest.js +1 -1
- package/dist/.next/server/app/api/notifications/[uuid]/archive/route_client-reference-manifest.js +1 -1
- package/dist/.next/server/app/api/notifications/[uuid]/read/route_client-reference-manifest.js +1 -1
- package/dist/.next/server/app/api/notifications/preferences/route_client-reference-manifest.js +1 -1
- package/dist/.next/server/app/api/notifications/read-all/route_client-reference-manifest.js +1 -1
- package/dist/.next/server/app/api/notifications/route_client-reference-manifest.js +1 -1
- package/dist/.next/server/app/api/notifications/unread-count/route_client-reference-manifest.js +1 -1
- package/dist/.next/server/app/api/onboarding/status/route_client-reference-manifest.js +1 -1
- package/dist/.next/server/app/api/project-groups/[uuid]/dashboard/route_client-reference-manifest.js +1 -1
- package/dist/.next/server/app/api/project-groups/[uuid]/route_client-reference-manifest.js +1 -1
- package/dist/.next/server/app/api/project-groups/route_client-reference-manifest.js +1 -1
- package/dist/.next/server/app/api/research-projects/[uuid]/activity/route_client-reference-manifest.js +1 -1
- package/dist/.next/server/app/api/research-projects/[uuid]/agent-activity/route_client-reference-manifest.js +1 -1
- package/dist/.next/server/app/api/research-projects/[uuid]/available/route_client-reference-manifest.js +1 -1
- package/dist/.next/server/app/api/research-projects/[uuid]/baselines/route_client-reference-manifest.js +1 -1
- package/dist/.next/server/app/api/research-projects/[uuid]/documents/route_client-reference-manifest.js +1 -1
- package/dist/.next/server/app/api/research-projects/[uuid]/experiment-designs/[designUuid]/validate/route_client-reference-manifest.js +1 -1
- package/dist/.next/server/app/api/research-projects/[uuid]/experiment-designs/route_client-reference-manifest.js +1 -1
- package/dist/.next/server/app/api/research-projects/[uuid]/experiment-designs/summary/route_client-reference-manifest.js +1 -1
- package/dist/.next/server/app/api/research-projects/[uuid]/experiment-runs/dependencies/route_client-reference-manifest.js +1 -1
- package/dist/.next/server/app/api/research-projects/[uuid]/experiment-runs/route_client-reference-manifest.js +1 -1
- package/dist/.next/server/app/api/research-projects/[uuid]/experiments/route_client-reference-manifest.js +1 -1
- package/dist/.next/server/app/api/research-projects/[uuid]/github/branches/route_client-reference-manifest.js +1 -1
- package/dist/.next/server/app/api/research-projects/[uuid]/group/route_client-reference-manifest.js +1 -1
- package/dist/.next/server/app/api/research-projects/[uuid]/related-works/[workUuid]/route_client-reference-manifest.js +1 -1
- package/dist/.next/server/app/api/research-projects/[uuid]/related-works/auto-search/complete/route_client-reference-manifest.js +1 -1
- package/dist/.next/server/app/api/research-projects/[uuid]/related-works/auto-search/route_client-reference-manifest.js +1 -1
- package/dist/.next/server/app/api/research-projects/[uuid]/related-works/deep-research/complete/route_client-reference-manifest.js +1 -1
- package/dist/.next/server/app/api/research-projects/[uuid]/related-works/deep-research/route_client-reference-manifest.js +1 -1
- package/dist/.next/server/app/api/research-projects/[uuid]/related-works/route_client-reference-manifest.js +1 -1
- package/dist/.next/server/app/api/research-projects/[uuid]/research-questions/route_client-reference-manifest.js +1 -1
- package/dist/.next/server/app/api/research-projects/[uuid]/route_client-reference-manifest.js +1 -1
- package/dist/.next/server/app/api/research-projects/route_client-reference-manifest.js +1 -1
- package/dist/.next/server/app/api/research-questions/[uuid]/claim/route_client-reference-manifest.js +1 -1
- package/dist/.next/server/app/api/research-questions/[uuid]/move/route_client-reference-manifest.js +1 -1
- package/dist/.next/server/app/api/research-questions/[uuid]/release/route_client-reference-manifest.js +1 -1
- package/dist/.next/server/app/api/research-questions/[uuid]/route_client-reference-manifest.js +1 -1
- package/dist/.next/server/app/api/sessions/[uuid]/route_client-reference-manifest.js +1 -1
- package/dist/.next/server/app/api/settings/integrations/route_client-reference-manifest.js +1 -1
- package/dist/.next/server/app/api/ssh-config/route_client-reference-manifest.js +1 -1
- package/dist/.next/server/app/index.html +1 -1
- package/dist/.next/server/app/index.rsc +1 -1
- package/dist/.next/server/app/login/admin/page_client-reference-manifest.js +1 -1
- package/dist/.next/server/app/login/admin.html +1 -1
- package/dist/.next/server/app/login/admin.rsc +1 -1
- package/dist/.next/server/app/login/callback/page_client-reference-manifest.js +1 -1
- package/dist/.next/server/app/login/callback.html +1 -1
- package/dist/.next/server/app/login/callback.rsc +1 -1
- package/dist/.next/server/app/login/page_client-reference-manifest.js +1 -1
- package/dist/.next/server/app/login/silent-refresh/page_client-reference-manifest.js +1 -1
- package/dist/.next/server/app/login/silent-refresh.html +1 -1
- package/dist/.next/server/app/login/silent-refresh.rsc +1 -1
- package/dist/.next/server/app/login.html +1 -1
- package/dist/.next/server/app/login.rsc +1 -1
- package/dist/.next/server/app/onboarding/page_client-reference-manifest.js +1 -1
- package/dist/.next/server/app/page_client-reference-manifest.js +1 -1
- package/dist/.next/server/app/research-projects/new.html +1 -1
- package/dist/.next/server/app/research-projects/new.rsc +1 -1
- package/dist/.next/server/app/research-projects.html +1 -1
- package/dist/.next/server/app/research-projects.rsc +1 -1
- package/dist/.next/server/app/settings.html +1 -1
- package/dist/.next/server/app/settings.rsc +1 -1
- package/dist/.next/server/app-paths-manifest.json +37 -37
- package/dist/.next/server/middleware-manifest.json +1 -1
- package/dist/.next/server/pages/404.html +1 -1
- package/dist/.next/server/pages/500.html +1 -1
- package/dist/.next/server/server-reference-manifest.js +1 -1
- package/dist/.next/server/server-reference-manifest.json +1 -1
- package/dist/node_modules/@img/colour/color.cjs +1594 -0
- package/dist/node_modules/@img/colour/index.cjs +1 -0
- package/dist/node_modules/@img/colour/package.json +45 -0
- package/dist/node_modules/@img/sharp-libvips-linux-x64/lib/index.js +1 -0
- package/dist/node_modules/@img/sharp-libvips-linux-x64/lib/libvips-cpp.so.8.17.3 +0 -0
- package/dist/node_modules/@img/sharp-libvips-linux-x64/package.json +42 -0
- package/dist/node_modules/@img/sharp-libvips-linux-x64/versions.json +30 -0
- package/dist/node_modules/@img/sharp-libvips-linuxmusl-x64/lib/index.js +1 -0
- package/dist/node_modules/@img/sharp-libvips-linuxmusl-x64/lib/libvips-cpp.so.8.17.3 +0 -0
- package/dist/node_modules/@img/sharp-libvips-linuxmusl-x64/package.json +42 -0
- package/dist/node_modules/@img/sharp-libvips-linuxmusl-x64/versions.json +30 -0
- package/dist/node_modules/@img/sharp-linux-x64/LICENSE +191 -0
- package/dist/node_modules/@img/sharp-linux-x64/lib/sharp-linux-x64.node +0 -0
- package/dist/node_modules/@img/sharp-linux-x64/package.json +46 -0
- package/dist/node_modules/@img/sharp-linuxmusl-x64/LICENSE +191 -0
- package/dist/node_modules/@img/sharp-linuxmusl-x64/lib/sharp-linuxmusl-x64.node +0 -0
- package/dist/node_modules/@img/sharp-linuxmusl-x64/package.json +46 -0
- package/dist/node_modules/@next/env/dist/index.js +1 -0
- package/dist/node_modules/@next/env/package.json +36 -0
- package/dist/node_modules/@prisma/client-runtime-utils/dist/index.js +2552 -0
- package/dist/node_modules/@prisma/client-runtime-utils/package.json +39 -0
- package/dist/node_modules/@shikijs/core/dist/index.mjs +2446 -0
- package/dist/node_modules/@shikijs/core/package.json +56 -0
- package/dist/node_modules/@shikijs/engine-javascript/dist/engine-compile.mjs +52 -0
- package/dist/node_modules/@shikijs/engine-javascript/dist/engine-raw.mjs +22 -0
- package/dist/node_modules/@shikijs/engine-javascript/dist/index.mjs +4 -0
- package/dist/node_modules/@shikijs/engine-javascript/dist/shared/engine-javascript.hzpS1_41.mjs +93 -0
- package/dist/node_modules/@shikijs/engine-javascript/package.json +39 -0
- package/dist/node_modules/@shikijs/engine-oniguruma/dist/index.mjs +448 -0
- package/dist/node_modules/@shikijs/engine-oniguruma/dist/wasm-inlined.mjs +8 -0
- package/dist/node_modules/@shikijs/engine-oniguruma/package.json +42 -0
- package/dist/node_modules/@shikijs/langs/dist/abap.mjs +5 -0
- package/dist/node_modules/@shikijs/langs/dist/actionscript-3.mjs +5 -0
- package/dist/node_modules/@shikijs/langs/dist/ada.mjs +5 -0
- package/dist/node_modules/@shikijs/langs/dist/angular-expression.mjs +5 -0
- package/dist/node_modules/@shikijs/langs/dist/angular-html.mjs +16 -0
- package/dist/node_modules/@shikijs/langs/dist/angular-inline-style.mjs +8 -0
- package/dist/node_modules/@shikijs/langs/dist/angular-inline-template.mjs +10 -0
- package/dist/node_modules/@shikijs/langs/dist/angular-let-declaration.mjs +8 -0
- package/dist/node_modules/@shikijs/langs/dist/angular-template-blocks.mjs +10 -0
- package/dist/node_modules/@shikijs/langs/dist/angular-template.mjs +8 -0
- package/dist/node_modules/@shikijs/langs/dist/angular-ts.mjs +18 -0
- package/dist/node_modules/@shikijs/langs/dist/apache.mjs +5 -0
- package/dist/node_modules/@shikijs/langs/dist/apex.mjs +5 -0
- package/dist/node_modules/@shikijs/langs/dist/apl.mjs +16 -0
- package/dist/node_modules/@shikijs/langs/dist/applescript.mjs +5 -0
- package/dist/node_modules/@shikijs/langs/dist/ara.mjs +5 -0
- package/dist/node_modules/@shikijs/langs/dist/asciidoc.mjs +5 -0
- package/dist/node_modules/@shikijs/langs/dist/asm.mjs +5 -0
- package/dist/node_modules/@shikijs/langs/dist/astro.mjs +18 -0
- package/dist/node_modules/@shikijs/langs/dist/awk.mjs +5 -0
- package/dist/node_modules/@shikijs/langs/dist/ballerina.mjs +5 -0
- package/dist/node_modules/@shikijs/langs/dist/bat.mjs +5 -0
- package/dist/node_modules/@shikijs/langs/dist/beancount.mjs +5 -0
- package/dist/node_modules/@shikijs/langs/dist/berry.mjs +5 -0
- package/dist/node_modules/@shikijs/langs/dist/bibtex.mjs +5 -0
- package/dist/node_modules/@shikijs/langs/dist/bicep.mjs +5 -0
- package/dist/node_modules/@shikijs/langs/dist/bird2.mjs +5 -0
- package/dist/node_modules/@shikijs/langs/dist/blade.mjs +20 -0
- package/dist/node_modules/@shikijs/langs/dist/bsl.mjs +8 -0
- package/dist/node_modules/@shikijs/langs/dist/c.mjs +5 -0
- package/dist/node_modules/@shikijs/langs/dist/c3.mjs +5 -0
- package/dist/node_modules/@shikijs/langs/dist/cadence.mjs +5 -0
- package/dist/node_modules/@shikijs/langs/dist/cairo.mjs +8 -0
- package/dist/node_modules/@shikijs/langs/dist/clarity.mjs +5 -0
- package/dist/node_modules/@shikijs/langs/dist/clojure.mjs +5 -0
- package/dist/node_modules/@shikijs/langs/dist/cmake.mjs +5 -0
- package/dist/node_modules/@shikijs/langs/dist/cobol.mjs +10 -0
- package/dist/node_modules/@shikijs/langs/dist/codeowners.mjs +5 -0
- package/dist/node_modules/@shikijs/langs/dist/codeql.mjs +5 -0
- package/dist/node_modules/@shikijs/langs/dist/coffee.mjs +8 -0
- package/dist/node_modules/@shikijs/langs/dist/common-lisp.mjs +5 -0
- package/dist/node_modules/@shikijs/langs/dist/coq.mjs +5 -0
- package/dist/node_modules/@shikijs/langs/dist/cpp-macro.mjs +12 -0
- package/dist/node_modules/@shikijs/langs/dist/cpp.mjs +14 -0
- package/dist/node_modules/@shikijs/langs/dist/crystal.mjs +18 -0
- package/dist/node_modules/@shikijs/langs/dist/csharp.mjs +5 -0
- package/dist/node_modules/@shikijs/langs/dist/css.mjs +5 -0
- package/dist/node_modules/@shikijs/langs/dist/csv.mjs +5 -0
- package/dist/node_modules/@shikijs/langs/dist/cue.mjs +5 -0
- package/dist/node_modules/@shikijs/langs/dist/cypher.mjs +5 -0
- package/dist/node_modules/@shikijs/langs/dist/d.mjs +5 -0
- package/dist/node_modules/@shikijs/langs/dist/dart.mjs +5 -0
- package/dist/node_modules/@shikijs/langs/dist/dax.mjs +5 -0
- package/dist/node_modules/@shikijs/langs/dist/desktop.mjs +5 -0
- package/dist/node_modules/@shikijs/langs/dist/diff.mjs +5 -0
- package/dist/node_modules/@shikijs/langs/dist/docker.mjs +5 -0
- package/dist/node_modules/@shikijs/langs/dist/dotenv.mjs +5 -0
- package/dist/node_modules/@shikijs/langs/dist/dream-maker.mjs +5 -0
- package/dist/node_modules/@shikijs/langs/dist/edge.mjs +12 -0
- package/dist/node_modules/@shikijs/langs/dist/elixir.mjs +8 -0
- package/dist/node_modules/@shikijs/langs/dist/elm.mjs +8 -0
- package/dist/node_modules/@shikijs/langs/dist/emacs-lisp.mjs +5 -0
- package/dist/node_modules/@shikijs/langs/dist/erb.mjs +10 -0
- package/dist/node_modules/@shikijs/langs/dist/erlang.mjs +8 -0
- package/dist/node_modules/@shikijs/langs/dist/es-tag-css.mjs +12 -0
- package/dist/node_modules/@shikijs/langs/dist/es-tag-glsl.mjs +12 -0
- package/dist/node_modules/@shikijs/langs/dist/es-tag-html.mjs +12 -0
- package/dist/node_modules/@shikijs/langs/dist/es-tag-sql.mjs +10 -0
- package/dist/node_modules/@shikijs/langs/dist/es-tag-xml.mjs +8 -0
- package/dist/node_modules/@shikijs/langs/dist/fennel.mjs +5 -0
- package/dist/node_modules/@shikijs/langs/dist/fish.mjs +5 -0
- package/dist/node_modules/@shikijs/langs/dist/fluent.mjs +5 -0
- package/dist/node_modules/@shikijs/langs/dist/fortran-fixed-form.mjs +8 -0
- package/dist/node_modules/@shikijs/langs/dist/fortran-free-form.mjs +5 -0
- package/dist/node_modules/@shikijs/langs/dist/fsharp.mjs +8 -0
- package/dist/node_modules/@shikijs/langs/dist/gdresource.mjs +10 -0
- package/dist/node_modules/@shikijs/langs/dist/gdscript.mjs +5 -0
- package/dist/node_modules/@shikijs/langs/dist/gdshader.mjs +5 -0
- package/dist/node_modules/@shikijs/langs/dist/genie.mjs +5 -0
- package/dist/node_modules/@shikijs/langs/dist/gherkin.mjs +5 -0
- package/dist/node_modules/@shikijs/langs/dist/git-commit.mjs +8 -0
- package/dist/node_modules/@shikijs/langs/dist/git-rebase.mjs +8 -0
- package/dist/node_modules/@shikijs/langs/dist/gleam.mjs +5 -0
- package/dist/node_modules/@shikijs/langs/dist/glimmer-js.mjs +14 -0
- package/dist/node_modules/@shikijs/langs/dist/glimmer-ts.mjs +14 -0
- package/dist/node_modules/@shikijs/langs/dist/glsl.mjs +8 -0
- package/dist/node_modules/@shikijs/langs/dist/gn.mjs +5 -0
- package/dist/node_modules/@shikijs/langs/dist/gnuplot.mjs +5 -0
- package/dist/node_modules/@shikijs/langs/dist/go.mjs +5 -0
- package/dist/node_modules/@shikijs/langs/dist/graphql.mjs +14 -0
- package/dist/node_modules/@shikijs/langs/dist/groovy.mjs +5 -0
- package/dist/node_modules/@shikijs/langs/dist/hack.mjs +10 -0
- package/dist/node_modules/@shikijs/langs/dist/haml.mjs +10 -0
- package/dist/node_modules/@shikijs/langs/dist/handlebars.mjs +14 -0
- package/dist/node_modules/@shikijs/langs/dist/haskell.mjs +5 -0
- package/dist/node_modules/@shikijs/langs/dist/haxe.mjs +5 -0
- package/dist/node_modules/@shikijs/langs/dist/hcl.mjs +5 -0
- package/dist/node_modules/@shikijs/langs/dist/hjson.mjs +5 -0
- package/dist/node_modules/@shikijs/langs/dist/hlsl.mjs +5 -0
- package/dist/node_modules/@shikijs/langs/dist/html-derivative.mjs +8 -0
- package/dist/node_modules/@shikijs/langs/dist/html.mjs +10 -0
- package/dist/node_modules/@shikijs/langs/dist/http.mjs +14 -0
- package/dist/node_modules/@shikijs/langs/dist/hurl.mjs +12 -0
- package/dist/node_modules/@shikijs/langs/dist/hxml.mjs +8 -0
- package/dist/node_modules/@shikijs/langs/dist/hy.mjs +5 -0
- package/dist/node_modules/@shikijs/langs/dist/imba.mjs +5 -0
- package/dist/node_modules/@shikijs/langs/dist/ini.mjs +5 -0
- package/dist/node_modules/@shikijs/langs/dist/java.mjs +5 -0
- package/dist/node_modules/@shikijs/langs/dist/javascript.mjs +5 -0
- package/dist/node_modules/@shikijs/langs/dist/jinja-html.mjs +8 -0
- package/dist/node_modules/@shikijs/langs/dist/jinja.mjs +8 -0
- package/dist/node_modules/@shikijs/langs/dist/jison.mjs +8 -0
- package/dist/node_modules/@shikijs/langs/dist/json.mjs +5 -0
- package/dist/node_modules/@shikijs/langs/dist/json5.mjs +5 -0
- package/dist/node_modules/@shikijs/langs/dist/jsonc.mjs +5 -0
- package/dist/node_modules/@shikijs/langs/dist/jsonl.mjs +5 -0
- package/dist/node_modules/@shikijs/langs/dist/jsonnet.mjs +5 -0
- package/dist/node_modules/@shikijs/langs/dist/jssm.mjs +5 -0
- package/dist/node_modules/@shikijs/langs/dist/jsx.mjs +5 -0
- package/dist/node_modules/@shikijs/langs/dist/julia.mjs +16 -0
- package/dist/node_modules/@shikijs/langs/dist/just.mjs +18 -0
- package/dist/node_modules/@shikijs/langs/dist/kdl.mjs +5 -0
- package/dist/node_modules/@shikijs/langs/dist/kotlin.mjs +5 -0
- package/dist/node_modules/@shikijs/langs/dist/kusto.mjs +5 -0
- package/dist/node_modules/@shikijs/langs/dist/latex.mjs +8 -0
- package/dist/node_modules/@shikijs/langs/dist/lean.mjs +5 -0
- package/dist/node_modules/@shikijs/langs/dist/less.mjs +5 -0
- package/dist/node_modules/@shikijs/langs/dist/liquid.mjs +14 -0
- package/dist/node_modules/@shikijs/langs/dist/llvm.mjs +5 -0
- package/dist/node_modules/@shikijs/langs/dist/log.mjs +5 -0
- package/dist/node_modules/@shikijs/langs/dist/logo.mjs +5 -0
- package/dist/node_modules/@shikijs/langs/dist/lua.mjs +8 -0
- package/dist/node_modules/@shikijs/langs/dist/luau.mjs +5 -0
- package/dist/node_modules/@shikijs/langs/dist/make.mjs +5 -0
- package/dist/node_modules/@shikijs/langs/dist/markdown-nix.mjs +5 -0
- package/dist/node_modules/@shikijs/langs/dist/markdown-vue.mjs +5 -0
- package/dist/node_modules/@shikijs/langs/dist/markdown.mjs +5 -0
- package/dist/node_modules/@shikijs/langs/dist/marko.mjs +14 -0
- package/dist/node_modules/@shikijs/langs/dist/matlab.mjs +5 -0
- package/dist/node_modules/@shikijs/langs/dist/mdc.mjs +12 -0
- package/dist/node_modules/@shikijs/langs/dist/mdx.mjs +5 -0
- package/dist/node_modules/@shikijs/langs/dist/mermaid.mjs +5 -0
- package/dist/node_modules/@shikijs/langs/dist/mipsasm.mjs +5 -0
- package/dist/node_modules/@shikijs/langs/dist/mojo.mjs +5 -0
- package/dist/node_modules/@shikijs/langs/dist/moonbit.mjs +5 -0
- package/dist/node_modules/@shikijs/langs/dist/move.mjs +5 -0
- package/dist/node_modules/@shikijs/langs/dist/narrat.mjs +5 -0
- package/dist/node_modules/@shikijs/langs/dist/nextflow-groovy.mjs +5 -0
- package/dist/node_modules/@shikijs/langs/dist/nextflow.mjs +8 -0
- package/dist/node_modules/@shikijs/langs/dist/nginx.mjs +8 -0
- package/dist/node_modules/@shikijs/langs/dist/nim.mjs +20 -0
- package/dist/node_modules/@shikijs/langs/dist/nix.mjs +8 -0
- package/dist/node_modules/@shikijs/langs/dist/nushell.mjs +5 -0
- package/dist/node_modules/@shikijs/langs/dist/objective-c.mjs +5 -0
- package/dist/node_modules/@shikijs/langs/dist/objective-cpp.mjs +5 -0
- package/dist/node_modules/@shikijs/langs/dist/ocaml.mjs +5 -0
- package/dist/node_modules/@shikijs/langs/dist/odin.mjs +5 -0
- package/dist/node_modules/@shikijs/langs/dist/openscad.mjs +5 -0
- package/dist/node_modules/@shikijs/langs/dist/pascal.mjs +5 -0
- package/dist/node_modules/@shikijs/langs/dist/perl.mjs +16 -0
- package/dist/node_modules/@shikijs/langs/dist/php.mjs +18 -0
- package/dist/node_modules/@shikijs/langs/dist/pkl.mjs +5 -0
- package/dist/node_modules/@shikijs/langs/dist/plsql.mjs +5 -0
- package/dist/node_modules/@shikijs/langs/dist/po.mjs +5 -0
- package/dist/node_modules/@shikijs/langs/dist/polar.mjs +5 -0
- package/dist/node_modules/@shikijs/langs/dist/postcss.mjs +5 -0
- package/dist/node_modules/@shikijs/langs/dist/powerquery.mjs +5 -0
- package/dist/node_modules/@shikijs/langs/dist/powershell.mjs +5 -0
- package/dist/node_modules/@shikijs/langs/dist/prisma.mjs +5 -0
- package/dist/node_modules/@shikijs/langs/dist/prolog.mjs +5 -0
- package/dist/node_modules/@shikijs/langs/dist/proto.mjs +5 -0
- package/dist/node_modules/@shikijs/langs/dist/pug.mjs +12 -0
- package/dist/node_modules/@shikijs/langs/dist/puppet.mjs +5 -0
- package/dist/node_modules/@shikijs/langs/dist/purescript.mjs +5 -0
- package/dist/node_modules/@shikijs/langs/dist/python.mjs +5 -0
- package/dist/node_modules/@shikijs/langs/dist/qml.mjs +8 -0
- package/dist/node_modules/@shikijs/langs/dist/qmldir.mjs +5 -0
- package/dist/node_modules/@shikijs/langs/dist/qss.mjs +5 -0
- package/dist/node_modules/@shikijs/langs/dist/r.mjs +5 -0
- package/dist/node_modules/@shikijs/langs/dist/racket.mjs +5 -0
- package/dist/node_modules/@shikijs/langs/dist/raku.mjs +5 -0
- package/dist/node_modules/@shikijs/langs/dist/razor.mjs +10 -0
- package/dist/node_modules/@shikijs/langs/dist/reg.mjs +5 -0
- package/dist/node_modules/@shikijs/langs/dist/regexp.mjs +5 -0
- package/dist/node_modules/@shikijs/langs/dist/rel.mjs +5 -0
- package/dist/node_modules/@shikijs/langs/dist/riscv.mjs +5 -0
- package/dist/node_modules/@shikijs/langs/dist/ron.mjs +5 -0
- package/dist/node_modules/@shikijs/langs/dist/rosmsg.mjs +5 -0
- package/dist/node_modules/@shikijs/langs/dist/rst.mjs +22 -0
- package/dist/node_modules/@shikijs/langs/dist/ruby.mjs +30 -0
- package/dist/node_modules/@shikijs/langs/dist/rust.mjs +5 -0
- package/dist/node_modules/@shikijs/langs/dist/sas.mjs +8 -0
- package/dist/node_modules/@shikijs/langs/dist/sass.mjs +5 -0
- package/dist/node_modules/@shikijs/langs/dist/scala.mjs +5 -0
- package/dist/node_modules/@shikijs/langs/dist/scheme.mjs +5 -0
- package/dist/node_modules/@shikijs/langs/dist/scss.mjs +8 -0
- package/dist/node_modules/@shikijs/langs/dist/sdbl.mjs +5 -0
- package/dist/node_modules/@shikijs/langs/dist/shaderlab.mjs +8 -0
- package/dist/node_modules/@shikijs/langs/dist/shellscript.mjs +5 -0
- package/dist/node_modules/@shikijs/langs/dist/shellsession.mjs +8 -0
- package/dist/node_modules/@shikijs/langs/dist/smalltalk.mjs +5 -0
- package/dist/node_modules/@shikijs/langs/dist/solidity.mjs +5 -0
- package/dist/node_modules/@shikijs/langs/dist/soy.mjs +8 -0
- package/dist/node_modules/@shikijs/langs/dist/sparql.mjs +8 -0
- package/dist/node_modules/@shikijs/langs/dist/splunk.mjs +5 -0
- package/dist/node_modules/@shikijs/langs/dist/sql.mjs +5 -0
- package/dist/node_modules/@shikijs/langs/dist/ssh-config.mjs +5 -0
- package/dist/node_modules/@shikijs/langs/dist/stata.mjs +8 -0
- package/dist/node_modules/@shikijs/langs/dist/stylus.mjs +5 -0
- package/dist/node_modules/@shikijs/langs/dist/surrealql.mjs +8 -0
- package/dist/node_modules/@shikijs/langs/dist/svelte.mjs +14 -0
- package/dist/node_modules/@shikijs/langs/dist/swift.mjs +5 -0
- package/dist/node_modules/@shikijs/langs/dist/system-verilog.mjs +5 -0
- package/dist/node_modules/@shikijs/langs/dist/systemd.mjs +5 -0
- package/dist/node_modules/@shikijs/langs/dist/talonscript.mjs +5 -0
- package/dist/node_modules/@shikijs/langs/dist/tasl.mjs +5 -0
- package/dist/node_modules/@shikijs/langs/dist/tcl.mjs +5 -0
- package/dist/node_modules/@shikijs/langs/dist/templ.mjs +12 -0
- package/dist/node_modules/@shikijs/langs/dist/terraform.mjs +5 -0
- package/dist/node_modules/@shikijs/langs/dist/tex.mjs +8 -0
- package/dist/node_modules/@shikijs/langs/dist/toml.mjs +5 -0
- package/dist/node_modules/@shikijs/langs/dist/ts-tags.mjs +18 -0
- package/dist/node_modules/@shikijs/langs/dist/tsv.mjs +5 -0
- package/dist/node_modules/@shikijs/langs/dist/tsx.mjs +5 -0
- package/dist/node_modules/@shikijs/langs/dist/turtle.mjs +5 -0
- package/dist/node_modules/@shikijs/langs/dist/twig.mjs +18 -0
- package/dist/node_modules/@shikijs/langs/dist/typescript.mjs +5 -0
- package/dist/node_modules/@shikijs/langs/dist/typespec.mjs +5 -0
- package/dist/node_modules/@shikijs/langs/dist/typst.mjs +5 -0
- package/dist/node_modules/@shikijs/langs/dist/v.mjs +5 -0
- package/dist/node_modules/@shikijs/langs/dist/vala.mjs +5 -0
- package/dist/node_modules/@shikijs/langs/dist/vb.mjs +5 -0
- package/dist/node_modules/@shikijs/langs/dist/verilog.mjs +5 -0
- package/dist/node_modules/@shikijs/langs/dist/vhdl.mjs +5 -0
- package/dist/node_modules/@shikijs/langs/dist/viml.mjs +5 -0
- package/dist/node_modules/@shikijs/langs/dist/vue-directives.mjs +5 -0
- package/dist/node_modules/@shikijs/langs/dist/vue-html.mjs +8 -0
- package/dist/node_modules/@shikijs/langs/dist/vue-interpolations.mjs +5 -0
- package/dist/node_modules/@shikijs/langs/dist/vue-sfc-style-variable-injection.mjs +8 -0
- package/dist/node_modules/@shikijs/langs/dist/vue-vine.mjs +18 -0
- package/dist/node_modules/@shikijs/langs/dist/vue.mjs +26 -0
- package/dist/node_modules/@shikijs/langs/dist/vyper.mjs +5 -0
- package/dist/node_modules/@shikijs/langs/dist/wasm.mjs +5 -0
- package/dist/node_modules/@shikijs/langs/dist/wenyan.mjs +5 -0
- package/dist/node_modules/@shikijs/langs/dist/wgsl.mjs +5 -0
- package/dist/node_modules/@shikijs/langs/dist/wikitext.mjs +5 -0
- package/dist/node_modules/@shikijs/langs/dist/wit.mjs +5 -0
- package/dist/node_modules/@shikijs/langs/dist/wolfram.mjs +5 -0
- package/dist/node_modules/@shikijs/langs/dist/xml.mjs +8 -0
- package/dist/node_modules/@shikijs/langs/dist/xsl.mjs +8 -0
- package/dist/node_modules/@shikijs/langs/dist/yaml.mjs +5 -0
- package/dist/node_modules/@shikijs/langs/dist/zenscript.mjs +5 -0
- package/dist/node_modules/@shikijs/langs/dist/zig.mjs +5 -0
- package/dist/node_modules/@shikijs/langs/package.json +384 -0
- package/dist/node_modules/@shikijs/themes/dist/andromeeda.mjs +2 -0
- package/dist/node_modules/@shikijs/themes/dist/aurora-x.mjs +2 -0
- package/dist/node_modules/@shikijs/themes/dist/ayu-dark.mjs +2 -0
- package/dist/node_modules/@shikijs/themes/dist/ayu-light.mjs +2 -0
- package/dist/node_modules/@shikijs/themes/dist/ayu-mirage.mjs +2 -0
- package/dist/node_modules/@shikijs/themes/dist/catppuccin-frappe.mjs +2 -0
- package/dist/node_modules/@shikijs/themes/dist/catppuccin-latte.mjs +2 -0
- package/dist/node_modules/@shikijs/themes/dist/catppuccin-macchiato.mjs +2 -0
- package/dist/node_modules/@shikijs/themes/dist/catppuccin-mocha.mjs +2 -0
- package/dist/node_modules/@shikijs/themes/dist/dark-plus.mjs +2 -0
- package/dist/node_modules/@shikijs/themes/dist/dracula-soft.mjs +2 -0
- package/dist/node_modules/@shikijs/themes/dist/dracula.mjs +2 -0
- package/dist/node_modules/@shikijs/themes/dist/everforest-dark.mjs +2 -0
- package/dist/node_modules/@shikijs/themes/dist/everforest-light.mjs +2 -0
- package/dist/node_modules/@shikijs/themes/dist/github-dark-default.mjs +2 -0
- package/dist/node_modules/@shikijs/themes/dist/github-dark-dimmed.mjs +2 -0
- package/dist/node_modules/@shikijs/themes/dist/github-dark-high-contrast.mjs +2 -0
- package/dist/node_modules/@shikijs/themes/dist/github-dark.mjs +2 -0
- package/dist/node_modules/@shikijs/themes/dist/github-light-default.mjs +2 -0
- package/dist/node_modules/@shikijs/themes/dist/github-light-high-contrast.mjs +2 -0
- package/dist/node_modules/@shikijs/themes/dist/github-light.mjs +2 -0
- package/dist/node_modules/@shikijs/themes/dist/gruvbox-dark-hard.mjs +2 -0
- package/dist/node_modules/@shikijs/themes/dist/gruvbox-dark-medium.mjs +2 -0
- package/dist/node_modules/@shikijs/themes/dist/gruvbox-dark-soft.mjs +2 -0
- package/dist/node_modules/@shikijs/themes/dist/gruvbox-light-hard.mjs +2 -0
- package/dist/node_modules/@shikijs/themes/dist/gruvbox-light-medium.mjs +2 -0
- package/dist/node_modules/@shikijs/themes/dist/gruvbox-light-soft.mjs +2 -0
- package/dist/node_modules/@shikijs/themes/dist/horizon-bright.mjs +2 -0
- package/dist/node_modules/@shikijs/themes/dist/horizon.mjs +2 -0
- package/dist/node_modules/@shikijs/themes/dist/houston.mjs +2 -0
- package/dist/node_modules/@shikijs/themes/dist/kanagawa-dragon.mjs +2 -0
- package/dist/node_modules/@shikijs/themes/dist/kanagawa-lotus.mjs +2 -0
- package/dist/node_modules/@shikijs/themes/dist/kanagawa-wave.mjs +2 -0
- package/dist/node_modules/@shikijs/themes/dist/laserwave.mjs +2 -0
- package/dist/node_modules/@shikijs/themes/dist/light-plus.mjs +2 -0
- package/dist/node_modules/@shikijs/themes/dist/material-theme-darker.mjs +2 -0
- package/dist/node_modules/@shikijs/themes/dist/material-theme-lighter.mjs +2 -0
- package/dist/node_modules/@shikijs/themes/dist/material-theme-ocean.mjs +2 -0
- package/dist/node_modules/@shikijs/themes/dist/material-theme-palenight.mjs +2 -0
- package/dist/node_modules/@shikijs/themes/dist/material-theme.mjs +2 -0
- package/dist/node_modules/@shikijs/themes/dist/min-dark.mjs +2 -0
- package/dist/node_modules/@shikijs/themes/dist/min-light.mjs +2 -0
- package/dist/node_modules/@shikijs/themes/dist/monokai.mjs +2 -0
- package/dist/node_modules/@shikijs/themes/dist/night-owl-light.mjs +2 -0
- package/dist/node_modules/@shikijs/themes/dist/night-owl.mjs +2 -0
- package/dist/node_modules/@shikijs/themes/dist/nord.mjs +2 -0
- package/dist/node_modules/@shikijs/themes/dist/one-dark-pro.mjs +2 -0
- package/dist/node_modules/@shikijs/themes/dist/one-light.mjs +2 -0
- package/dist/node_modules/@shikijs/themes/dist/plastic.mjs +2 -0
- package/dist/node_modules/@shikijs/themes/dist/poimandres.mjs +2 -0
- package/dist/node_modules/@shikijs/themes/dist/red.mjs +2 -0
- package/dist/node_modules/@shikijs/themes/dist/rose-pine-dawn.mjs +2 -0
- package/dist/node_modules/@shikijs/themes/dist/rose-pine-moon.mjs +2 -0
- package/dist/node_modules/@shikijs/themes/dist/rose-pine.mjs +2 -0
- package/dist/node_modules/@shikijs/themes/dist/slack-dark.mjs +2 -0
- package/dist/node_modules/@shikijs/themes/dist/slack-ochin.mjs +2 -0
- package/dist/node_modules/@shikijs/themes/dist/snazzy-light.mjs +2 -0
- package/dist/node_modules/@shikijs/themes/dist/solarized-dark.mjs +2 -0
- package/dist/node_modules/@shikijs/themes/dist/solarized-light.mjs +2 -0
- package/dist/node_modules/@shikijs/themes/dist/synthwave-84.mjs +2 -0
- package/dist/node_modules/@shikijs/themes/dist/tokyo-night.mjs +2 -0
- package/dist/node_modules/@shikijs/themes/dist/vesper.mjs +2 -0
- package/dist/node_modules/@shikijs/themes/dist/vitesse-black.mjs +2 -0
- package/dist/node_modules/@shikijs/themes/dist/vitesse-dark.mjs +2 -0
- package/dist/node_modules/@shikijs/themes/dist/vitesse-light.mjs +2 -0
- package/dist/node_modules/@shikijs/themes/package.json +103 -0
- package/dist/node_modules/@shikijs/types/dist/index.mjs +8 -0
- package/dist/node_modules/@shikijs/types/package.json +36 -0
- package/dist/node_modules/@shikijs/vscode-textmate/dist/index.js +3216 -0
- package/dist/node_modules/@shikijs/vscode-textmate/package.json +46 -0
- package/dist/node_modules/@swc/helpers/_/_class_private_field_loose_base/package.json +4 -0
- package/dist/node_modules/@swc/helpers/_/_class_private_field_loose_key/package.json +4 -0
- package/dist/node_modules/@swc/helpers/_/_interop_require_default/package.json +4 -0
- package/dist/node_modules/@swc/helpers/_/_interop_require_wildcard/package.json +4 -0
- package/dist/node_modules/@swc/helpers/cjs/_class_private_field_loose_base.cjs +10 -0
- package/dist/node_modules/@swc/helpers/cjs/_class_private_field_loose_key.cjs +8 -0
- package/dist/node_modules/@swc/helpers/cjs/_interop_require_default.cjs +6 -0
- package/dist/node_modules/@swc/helpers/cjs/_interop_require_wildcard.cjs +38 -0
- package/dist/node_modules/@swc/helpers/package.json +471 -0
- package/dist/node_modules/caniuse-lite/data/agents.js +1 -0
- package/dist/node_modules/caniuse-lite/data/browserVersions.js +1 -0
- package/dist/node_modules/caniuse-lite/data/browsers.js +1 -0
- package/dist/node_modules/caniuse-lite/data/features/aac.js +1 -0
- package/dist/node_modules/caniuse-lite/data/features/abortcontroller.js +1 -0
- package/dist/node_modules/caniuse-lite/data/features/ac3-ec3.js +1 -0
- package/dist/node_modules/caniuse-lite/data/features/accelerometer.js +1 -0
- package/dist/node_modules/caniuse-lite/data/features/addeventlistener.js +1 -0
- package/dist/node_modules/caniuse-lite/data/features/alternate-stylesheet.js +1 -0
- package/dist/node_modules/caniuse-lite/data/features/ambient-light.js +1 -0
- package/dist/node_modules/caniuse-lite/data/features/apng.js +1 -0
- package/dist/node_modules/caniuse-lite/data/features/array-find-index.js +1 -0
- package/dist/node_modules/caniuse-lite/data/features/array-find.js +1 -0
- package/dist/node_modules/caniuse-lite/data/features/array-flat.js +1 -0
- package/dist/node_modules/caniuse-lite/data/features/array-includes.js +1 -0
- package/dist/node_modules/caniuse-lite/data/features/arrow-functions.js +1 -0
- package/dist/node_modules/caniuse-lite/data/features/asmjs.js +1 -0
- package/dist/node_modules/caniuse-lite/data/features/async-clipboard.js +1 -0
- package/dist/node_modules/caniuse-lite/data/features/async-functions.js +1 -0
- package/dist/node_modules/caniuse-lite/data/features/atob-btoa.js +1 -0
- package/dist/node_modules/caniuse-lite/data/features/audio-api.js +1 -0
- package/dist/node_modules/caniuse-lite/data/features/audio.js +1 -0
- package/dist/node_modules/caniuse-lite/data/features/audiotracks.js +1 -0
- package/dist/node_modules/caniuse-lite/data/features/autofocus.js +1 -0
- package/dist/node_modules/caniuse-lite/data/features/auxclick.js +1 -0
- package/dist/node_modules/caniuse-lite/data/features/av1.js +1 -0
- package/dist/node_modules/caniuse-lite/data/features/avif.js +1 -0
- package/dist/node_modules/caniuse-lite/data/features/background-attachment.js +1 -0
- package/dist/node_modules/caniuse-lite/data/features/background-clip-text.js +1 -0
- package/dist/node_modules/caniuse-lite/data/features/background-img-opts.js +1 -0
- package/dist/node_modules/caniuse-lite/data/features/background-position-x-y.js +1 -0
- package/dist/node_modules/caniuse-lite/data/features/background-repeat-round-space.js +1 -0
- package/dist/node_modules/caniuse-lite/data/features/background-sync.js +1 -0
- package/dist/node_modules/caniuse-lite/data/features/battery-status.js +1 -0
- package/dist/node_modules/caniuse-lite/data/features/beacon.js +1 -0
- package/dist/node_modules/caniuse-lite/data/features/beforeafterprint.js +1 -0
- package/dist/node_modules/caniuse-lite/data/features/bigint.js +1 -0
- package/dist/node_modules/caniuse-lite/data/features/blobbuilder.js +1 -0
- package/dist/node_modules/caniuse-lite/data/features/bloburls.js +1 -0
- package/dist/node_modules/caniuse-lite/data/features/border-image.js +1 -0
- package/dist/node_modules/caniuse-lite/data/features/border-radius.js +1 -0
- package/dist/node_modules/caniuse-lite/data/features/broadcastchannel.js +1 -0
- package/dist/node_modules/caniuse-lite/data/features/brotli.js +1 -0
- package/dist/node_modules/caniuse-lite/data/features/calc.js +1 -0
- package/dist/node_modules/caniuse-lite/data/features/canvas-blending.js +1 -0
- package/dist/node_modules/caniuse-lite/data/features/canvas-text.js +1 -0
- package/dist/node_modules/caniuse-lite/data/features/canvas.js +1 -0
- package/dist/node_modules/caniuse-lite/data/features/ch-unit.js +1 -0
- package/dist/node_modules/caniuse-lite/data/features/chacha20-poly1305.js +1 -0
- package/dist/node_modules/caniuse-lite/data/features/channel-messaging.js +1 -0
- package/dist/node_modules/caniuse-lite/data/features/childnode-remove.js +1 -0
- package/dist/node_modules/caniuse-lite/data/features/classlist.js +1 -0
- package/dist/node_modules/caniuse-lite/data/features/client-hints-dpr-width-viewport.js +1 -0
- package/dist/node_modules/caniuse-lite/data/features/clipboard.js +1 -0
- package/dist/node_modules/caniuse-lite/data/features/colr-v1.js +1 -0
- package/dist/node_modules/caniuse-lite/data/features/colr.js +1 -0
- package/dist/node_modules/caniuse-lite/data/features/comparedocumentposition.js +1 -0
- package/dist/node_modules/caniuse-lite/data/features/console-basic.js +1 -0
- package/dist/node_modules/caniuse-lite/data/features/console-time.js +1 -0
- package/dist/node_modules/caniuse-lite/data/features/const.js +1 -0
- package/dist/node_modules/caniuse-lite/data/features/constraint-validation.js +1 -0
- package/dist/node_modules/caniuse-lite/data/features/contenteditable.js +1 -0
- package/dist/node_modules/caniuse-lite/data/features/contentsecuritypolicy.js +1 -0
- package/dist/node_modules/caniuse-lite/data/features/contentsecuritypolicy2.js +1 -0
- package/dist/node_modules/caniuse-lite/data/features/cookie-store-api.js +1 -0
- package/dist/node_modules/caniuse-lite/data/features/cors.js +1 -0
- package/dist/node_modules/caniuse-lite/data/features/createimagebitmap.js +1 -0
- package/dist/node_modules/caniuse-lite/data/features/credential-management.js +1 -0
- package/dist/node_modules/caniuse-lite/data/features/cross-document-view-transitions.js +1 -0
- package/dist/node_modules/caniuse-lite/data/features/cryptography.js +1 -0
- package/dist/node_modules/caniuse-lite/data/features/css-all.js +1 -0
- package/dist/node_modules/caniuse-lite/data/features/css-anchor-positioning.js +1 -0
- package/dist/node_modules/caniuse-lite/data/features/css-animation.js +1 -0
- package/dist/node_modules/caniuse-lite/data/features/css-any-link.js +1 -0
- package/dist/node_modules/caniuse-lite/data/features/css-appearance.js +1 -0
- package/dist/node_modules/caniuse-lite/data/features/css-at-counter-style.js +1 -0
- package/dist/node_modules/caniuse-lite/data/features/css-autofill.js +1 -0
- package/dist/node_modules/caniuse-lite/data/features/css-backdrop-filter.js +1 -0
- package/dist/node_modules/caniuse-lite/data/features/css-background-offsets.js +1 -0
- package/dist/node_modules/caniuse-lite/data/features/css-backgroundblendmode.js +1 -0
- package/dist/node_modules/caniuse-lite/data/features/css-boxdecorationbreak.js +1 -0
- package/dist/node_modules/caniuse-lite/data/features/css-boxshadow.js +1 -0
- package/dist/node_modules/caniuse-lite/data/features/css-canvas.js +1 -0
- package/dist/node_modules/caniuse-lite/data/features/css-caret-color.js +1 -0
- package/dist/node_modules/caniuse-lite/data/features/css-cascade-layers.js +1 -0
- package/dist/node_modules/caniuse-lite/data/features/css-cascade-scope.js +1 -0
- package/dist/node_modules/caniuse-lite/data/features/css-case-insensitive.js +1 -0
- package/dist/node_modules/caniuse-lite/data/features/css-clip-path.js +1 -0
- package/dist/node_modules/caniuse-lite/data/features/css-color-adjust.js +1 -0
- package/dist/node_modules/caniuse-lite/data/features/css-color-function.js +1 -0
- package/dist/node_modules/caniuse-lite/data/features/css-conic-gradients.js +1 -0
- package/dist/node_modules/caniuse-lite/data/features/css-container-queries-style.js +1 -0
- package/dist/node_modules/caniuse-lite/data/features/css-container-queries.js +1 -0
- package/dist/node_modules/caniuse-lite/data/features/css-container-query-units.js +1 -0
- package/dist/node_modules/caniuse-lite/data/features/css-containment.js +1 -0
- package/dist/node_modules/caniuse-lite/data/features/css-content-visibility.js +1 -0
- package/dist/node_modules/caniuse-lite/data/features/css-counters.js +1 -0
- package/dist/node_modules/caniuse-lite/data/features/css-crisp-edges.js +1 -0
- package/dist/node_modules/caniuse-lite/data/features/css-cross-fade.js +1 -0
- package/dist/node_modules/caniuse-lite/data/features/css-default-pseudo.js +1 -0
- package/dist/node_modules/caniuse-lite/data/features/css-descendant-gtgt.js +1 -0
- package/dist/node_modules/caniuse-lite/data/features/css-deviceadaptation.js +1 -0
- package/dist/node_modules/caniuse-lite/data/features/css-dir-pseudo.js +1 -0
- package/dist/node_modules/caniuse-lite/data/features/css-display-contents.js +1 -0
- package/dist/node_modules/caniuse-lite/data/features/css-element-function.js +1 -0
- package/dist/node_modules/caniuse-lite/data/features/css-env-function.js +1 -0
- package/dist/node_modules/caniuse-lite/data/features/css-exclusions.js +1 -0
- package/dist/node_modules/caniuse-lite/data/features/css-featurequeries.js +1 -0
- package/dist/node_modules/caniuse-lite/data/features/css-file-selector-button.js +1 -0
- package/dist/node_modules/caniuse-lite/data/features/css-filter-function.js +1 -0
- package/dist/node_modules/caniuse-lite/data/features/css-filters.js +1 -0
- package/dist/node_modules/caniuse-lite/data/features/css-first-letter.js +1 -0
- package/dist/node_modules/caniuse-lite/data/features/css-first-line.js +1 -0
- package/dist/node_modules/caniuse-lite/data/features/css-fixed.js +1 -0
- package/dist/node_modules/caniuse-lite/data/features/css-focus-visible.js +1 -0
- package/dist/node_modules/caniuse-lite/data/features/css-focus-within.js +1 -0
- package/dist/node_modules/caniuse-lite/data/features/css-font-palette.js +1 -0
- package/dist/node_modules/caniuse-lite/data/features/css-font-rendering-controls.js +1 -0
- package/dist/node_modules/caniuse-lite/data/features/css-font-stretch.js +1 -0
- package/dist/node_modules/caniuse-lite/data/features/css-gencontent.js +1 -0
- package/dist/node_modules/caniuse-lite/data/features/css-gradients.js +1 -0
- package/dist/node_modules/caniuse-lite/data/features/css-grid-animation.js +1 -0
- package/dist/node_modules/caniuse-lite/data/features/css-grid-lanes.js +1 -0
- package/dist/node_modules/caniuse-lite/data/features/css-grid.js +1 -0
- package/dist/node_modules/caniuse-lite/data/features/css-hanging-punctuation.js +1 -0
- package/dist/node_modules/caniuse-lite/data/features/css-has.js +1 -0
- package/dist/node_modules/caniuse-lite/data/features/css-hyphens.js +1 -0
- package/dist/node_modules/caniuse-lite/data/features/css-if.js +1 -0
- package/dist/node_modules/caniuse-lite/data/features/css-image-orientation.js +1 -0
- package/dist/node_modules/caniuse-lite/data/features/css-image-set.js +1 -0
- package/dist/node_modules/caniuse-lite/data/features/css-in-out-of-range.js +1 -0
- package/dist/node_modules/caniuse-lite/data/features/css-indeterminate-pseudo.js +1 -0
- package/dist/node_modules/caniuse-lite/data/features/css-initial-letter.js +1 -0
- package/dist/node_modules/caniuse-lite/data/features/css-initial-value.js +1 -0
- package/dist/node_modules/caniuse-lite/data/features/css-lch-lab.js +1 -0
- package/dist/node_modules/caniuse-lite/data/features/css-letter-spacing.js +1 -0
- package/dist/node_modules/caniuse-lite/data/features/css-line-clamp.js +1 -0
- package/dist/node_modules/caniuse-lite/data/features/css-logical-props.js +1 -0
- package/dist/node_modules/caniuse-lite/data/features/css-marker-pseudo.js +1 -0
- package/dist/node_modules/caniuse-lite/data/features/css-masks.js +1 -0
- package/dist/node_modules/caniuse-lite/data/features/css-matches-pseudo.js +1 -0
- package/dist/node_modules/caniuse-lite/data/features/css-math-functions.js +1 -0
- package/dist/node_modules/caniuse-lite/data/features/css-media-interaction.js +1 -0
- package/dist/node_modules/caniuse-lite/data/features/css-media-range-syntax.js +1 -0
- package/dist/node_modules/caniuse-lite/data/features/css-media-resolution.js +1 -0
- package/dist/node_modules/caniuse-lite/data/features/css-media-scripting.js +1 -0
- package/dist/node_modules/caniuse-lite/data/features/css-mediaqueries.js +1 -0
- package/dist/node_modules/caniuse-lite/data/features/css-mixblendmode.js +1 -0
- package/dist/node_modules/caniuse-lite/data/features/css-module-scripts.js +1 -0
- package/dist/node_modules/caniuse-lite/data/features/css-motion-paths.js +1 -0
- package/dist/node_modules/caniuse-lite/data/features/css-namespaces.js +1 -0
- package/dist/node_modules/caniuse-lite/data/features/css-nesting.js +1 -0
- package/dist/node_modules/caniuse-lite/data/features/css-not-sel-list.js +1 -0
- package/dist/node_modules/caniuse-lite/data/features/css-nth-child-of.js +1 -0
- package/dist/node_modules/caniuse-lite/data/features/css-opacity.js +1 -0
- package/dist/node_modules/caniuse-lite/data/features/css-optional-pseudo.js +1 -0
- package/dist/node_modules/caniuse-lite/data/features/css-overflow-anchor.js +1 -0
- package/dist/node_modules/caniuse-lite/data/features/css-overflow-overlay.js +1 -0
- package/dist/node_modules/caniuse-lite/data/features/css-overflow.js +1 -0
- package/dist/node_modules/caniuse-lite/data/features/css-overscroll-behavior.js +1 -0
- package/dist/node_modules/caniuse-lite/data/features/css-page-break.js +1 -0
- package/dist/node_modules/caniuse-lite/data/features/css-paged-media.js +1 -0
- package/dist/node_modules/caniuse-lite/data/features/css-paint-api.js +1 -0
- package/dist/node_modules/caniuse-lite/data/features/css-placeholder-shown.js +1 -0
- package/dist/node_modules/caniuse-lite/data/features/css-placeholder.js +1 -0
- package/dist/node_modules/caniuse-lite/data/features/css-print-color-adjust.js +1 -0
- package/dist/node_modules/caniuse-lite/data/features/css-read-only-write.js +1 -0
- package/dist/node_modules/caniuse-lite/data/features/css-rebeccapurple.js +1 -0
- package/dist/node_modules/caniuse-lite/data/features/css-reflections.js +1 -0
- package/dist/node_modules/caniuse-lite/data/features/css-regions.js +1 -0
- package/dist/node_modules/caniuse-lite/data/features/css-relative-colors.js +1 -0
- package/dist/node_modules/caniuse-lite/data/features/css-repeating-gradients.js +1 -0
- package/dist/node_modules/caniuse-lite/data/features/css-resize.js +1 -0
- package/dist/node_modules/caniuse-lite/data/features/css-revert-value.js +1 -0
- package/dist/node_modules/caniuse-lite/data/features/css-rrggbbaa.js +1 -0
- package/dist/node_modules/caniuse-lite/data/features/css-scroll-behavior.js +1 -0
- package/dist/node_modules/caniuse-lite/data/features/css-scrollbar.js +1 -0
- package/dist/node_modules/caniuse-lite/data/features/css-sel2.js +1 -0
- package/dist/node_modules/caniuse-lite/data/features/css-sel3.js +1 -0
- package/dist/node_modules/caniuse-lite/data/features/css-selection.js +1 -0
- package/dist/node_modules/caniuse-lite/data/features/css-shapes.js +1 -0
- package/dist/node_modules/caniuse-lite/data/features/css-snappoints.js +1 -0
- package/dist/node_modules/caniuse-lite/data/features/css-sticky.js +1 -0
- package/dist/node_modules/caniuse-lite/data/features/css-subgrid.js +1 -0
- package/dist/node_modules/caniuse-lite/data/features/css-supports-api.js +1 -0
- package/dist/node_modules/caniuse-lite/data/features/css-table.js +1 -0
- package/dist/node_modules/caniuse-lite/data/features/css-text-align-last.js +1 -0
- package/dist/node_modules/caniuse-lite/data/features/css-text-box-trim.js +1 -0
- package/dist/node_modules/caniuse-lite/data/features/css-text-indent.js +1 -0
- package/dist/node_modules/caniuse-lite/data/features/css-text-justify.js +1 -0
- package/dist/node_modules/caniuse-lite/data/features/css-text-orientation.js +1 -0
- package/dist/node_modules/caniuse-lite/data/features/css-text-spacing.js +1 -0
- package/dist/node_modules/caniuse-lite/data/features/css-text-wrap-balance.js +1 -0
- package/dist/node_modules/caniuse-lite/data/features/css-textshadow.js +1 -0
- package/dist/node_modules/caniuse-lite/data/features/css-touch-action.js +1 -0
- package/dist/node_modules/caniuse-lite/data/features/css-transitions.js +1 -0
- package/dist/node_modules/caniuse-lite/data/features/css-unicode-bidi.js +1 -0
- package/dist/node_modules/caniuse-lite/data/features/css-unset-value.js +1 -0
- package/dist/node_modules/caniuse-lite/data/features/css-variables.js +1 -0
- package/dist/node_modules/caniuse-lite/data/features/css-when-else.js +1 -0
- package/dist/node_modules/caniuse-lite/data/features/css-widows-orphans.js +1 -0
- package/dist/node_modules/caniuse-lite/data/features/css-width-stretch.js +1 -0
- package/dist/node_modules/caniuse-lite/data/features/css-writing-mode.js +1 -0
- package/dist/node_modules/caniuse-lite/data/features/css-zoom.js +1 -0
- package/dist/node_modules/caniuse-lite/data/features/css3-attr.js +1 -0
- package/dist/node_modules/caniuse-lite/data/features/css3-boxsizing.js +1 -0
- package/dist/node_modules/caniuse-lite/data/features/css3-colors.js +1 -0
- package/dist/node_modules/caniuse-lite/data/features/css3-cursors-grab.js +1 -0
- package/dist/node_modules/caniuse-lite/data/features/css3-cursors-newer.js +1 -0
- package/dist/node_modules/caniuse-lite/data/features/css3-cursors.js +1 -0
- package/dist/node_modules/caniuse-lite/data/features/css3-tabsize.js +1 -0
- package/dist/node_modules/caniuse-lite/data/features/currentcolor.js +1 -0
- package/dist/node_modules/caniuse-lite/data/features/custom-elements.js +1 -0
- package/dist/node_modules/caniuse-lite/data/features/custom-elementsv1.js +1 -0
- package/dist/node_modules/caniuse-lite/data/features/customevent.js +1 -0
- package/dist/node_modules/caniuse-lite/data/features/datalist.js +1 -0
- package/dist/node_modules/caniuse-lite/data/features/dataset.js +1 -0
- package/dist/node_modules/caniuse-lite/data/features/datauri.js +1 -0
- package/dist/node_modules/caniuse-lite/data/features/date-tolocaledatestring.js +1 -0
- package/dist/node_modules/caniuse-lite/data/features/declarative-shadow-dom.js +1 -0
- package/dist/node_modules/caniuse-lite/data/features/decorators.js +1 -0
- package/dist/node_modules/caniuse-lite/data/features/details.js +1 -0
- package/dist/node_modules/caniuse-lite/data/features/deviceorientation.js +1 -0
- package/dist/node_modules/caniuse-lite/data/features/devicepixelratio.js +1 -0
- package/dist/node_modules/caniuse-lite/data/features/dialog.js +1 -0
- package/dist/node_modules/caniuse-lite/data/features/dispatchevent.js +1 -0
- package/dist/node_modules/caniuse-lite/data/features/dnssec.js +1 -0
- package/dist/node_modules/caniuse-lite/data/features/do-not-track.js +1 -0
- package/dist/node_modules/caniuse-lite/data/features/document-currentscript.js +1 -0
- package/dist/node_modules/caniuse-lite/data/features/document-evaluate-xpath.js +1 -0
- package/dist/node_modules/caniuse-lite/data/features/document-execcommand.js +1 -0
- package/dist/node_modules/caniuse-lite/data/features/document-policy.js +1 -0
- package/dist/node_modules/caniuse-lite/data/features/document-scrollingelement.js +1 -0
- package/dist/node_modules/caniuse-lite/data/features/documenthead.js +1 -0
- package/dist/node_modules/caniuse-lite/data/features/dom-manip-convenience.js +1 -0
- package/dist/node_modules/caniuse-lite/data/features/dom-range.js +1 -0
- package/dist/node_modules/caniuse-lite/data/features/domcontentloaded.js +1 -0
- package/dist/node_modules/caniuse-lite/data/features/dommatrix.js +1 -0
- package/dist/node_modules/caniuse-lite/data/features/download.js +1 -0
- package/dist/node_modules/caniuse-lite/data/features/dragndrop.js +1 -0
- package/dist/node_modules/caniuse-lite/data/features/element-closest.js +1 -0
- package/dist/node_modules/caniuse-lite/data/features/element-from-point.js +1 -0
- package/dist/node_modules/caniuse-lite/data/features/element-scroll-methods.js +1 -0
- package/dist/node_modules/caniuse-lite/data/features/eme.js +1 -0
- package/dist/node_modules/caniuse-lite/data/features/eot.js +1 -0
- package/dist/node_modules/caniuse-lite/data/features/es5.js +1 -0
- package/dist/node_modules/caniuse-lite/data/features/es6-class.js +1 -0
- package/dist/node_modules/caniuse-lite/data/features/es6-generators.js +1 -0
- package/dist/node_modules/caniuse-lite/data/features/es6-module-dynamic-import.js +1 -0
- package/dist/node_modules/caniuse-lite/data/features/es6-module.js +1 -0
- package/dist/node_modules/caniuse-lite/data/features/es6-number.js +1 -0
- package/dist/node_modules/caniuse-lite/data/features/es6-string-includes.js +1 -0
- package/dist/node_modules/caniuse-lite/data/features/es6.js +1 -0
- package/dist/node_modules/caniuse-lite/data/features/eventsource.js +1 -0
- package/dist/node_modules/caniuse-lite/data/features/extended-system-fonts.js +1 -0
- package/dist/node_modules/caniuse-lite/data/features/feature-policy.js +1 -0
- package/dist/node_modules/caniuse-lite/data/features/fetch.js +1 -0
- package/dist/node_modules/caniuse-lite/data/features/fieldset-disabled.js +1 -0
- package/dist/node_modules/caniuse-lite/data/features/fileapi.js +1 -0
- package/dist/node_modules/caniuse-lite/data/features/filereader.js +1 -0
- package/dist/node_modules/caniuse-lite/data/features/filereadersync.js +1 -0
- package/dist/node_modules/caniuse-lite/data/features/filesystem.js +1 -0
- package/dist/node_modules/caniuse-lite/data/features/flac.js +1 -0
- package/dist/node_modules/caniuse-lite/data/features/flexbox-gap.js +1 -0
- package/dist/node_modules/caniuse-lite/data/features/flexbox.js +1 -0
- package/dist/node_modules/caniuse-lite/data/features/flow-root.js +1 -0
- package/dist/node_modules/caniuse-lite/data/features/focusin-focusout-events.js +1 -0
- package/dist/node_modules/caniuse-lite/data/features/font-family-system-ui.js +1 -0
- package/dist/node_modules/caniuse-lite/data/features/font-feature.js +1 -0
- package/dist/node_modules/caniuse-lite/data/features/font-kerning.js +1 -0
- package/dist/node_modules/caniuse-lite/data/features/font-loading.js +1 -0
- package/dist/node_modules/caniuse-lite/data/features/font-size-adjust.js +1 -0
- package/dist/node_modules/caniuse-lite/data/features/font-smooth.js +1 -0
- package/dist/node_modules/caniuse-lite/data/features/font-unicode-range.js +1 -0
- package/dist/node_modules/caniuse-lite/data/features/font-variant-alternates.js +1 -0
- package/dist/node_modules/caniuse-lite/data/features/font-variant-numeric.js +1 -0
- package/dist/node_modules/caniuse-lite/data/features/fontface.js +1 -0
- package/dist/node_modules/caniuse-lite/data/features/form-attribute.js +1 -0
- package/dist/node_modules/caniuse-lite/data/features/form-submit-attributes.js +1 -0
- package/dist/node_modules/caniuse-lite/data/features/form-validation.js +1 -0
- package/dist/node_modules/caniuse-lite/data/features/forms.js +1 -0
- package/dist/node_modules/caniuse-lite/data/features/fullscreen.js +1 -0
- package/dist/node_modules/caniuse-lite/data/features/gamepad.js +1 -0
- package/dist/node_modules/caniuse-lite/data/features/geolocation.js +1 -0
- package/dist/node_modules/caniuse-lite/data/features/getboundingclientrect.js +1 -0
- package/dist/node_modules/caniuse-lite/data/features/getcomputedstyle.js +1 -0
- package/dist/node_modules/caniuse-lite/data/features/getelementsbyclassname.js +1 -0
- package/dist/node_modules/caniuse-lite/data/features/getrandomvalues.js +1 -0
- package/dist/node_modules/caniuse-lite/data/features/gyroscope.js +1 -0
- package/dist/node_modules/caniuse-lite/data/features/hardwareconcurrency.js +1 -0
- package/dist/node_modules/caniuse-lite/data/features/hashchange.js +1 -0
- package/dist/node_modules/caniuse-lite/data/features/heif.js +1 -0
- package/dist/node_modules/caniuse-lite/data/features/hevc.js +1 -0
- package/dist/node_modules/caniuse-lite/data/features/hidden.js +1 -0
- package/dist/node_modules/caniuse-lite/data/features/high-resolution-time.js +1 -0
- package/dist/node_modules/caniuse-lite/data/features/history.js +1 -0
- package/dist/node_modules/caniuse-lite/data/features/html-media-capture.js +1 -0
- package/dist/node_modules/caniuse-lite/data/features/html5semantic.js +1 -0
- package/dist/node_modules/caniuse-lite/data/features/http-live-streaming.js +1 -0
- package/dist/node_modules/caniuse-lite/data/features/http2.js +1 -0
- package/dist/node_modules/caniuse-lite/data/features/http3.js +1 -0
- package/dist/node_modules/caniuse-lite/data/features/iframe-sandbox.js +1 -0
- package/dist/node_modules/caniuse-lite/data/features/iframe-seamless.js +1 -0
- package/dist/node_modules/caniuse-lite/data/features/iframe-srcdoc.js +1 -0
- package/dist/node_modules/caniuse-lite/data/features/imagecapture.js +1 -0
- package/dist/node_modules/caniuse-lite/data/features/ime.js +1 -0
- package/dist/node_modules/caniuse-lite/data/features/img-naturalwidth-naturalheight.js +1 -0
- package/dist/node_modules/caniuse-lite/data/features/import-maps.js +1 -0
- package/dist/node_modules/caniuse-lite/data/features/imports.js +1 -0
- package/dist/node_modules/caniuse-lite/data/features/indeterminate-checkbox.js +1 -0
- package/dist/node_modules/caniuse-lite/data/features/indexeddb.js +1 -0
- package/dist/node_modules/caniuse-lite/data/features/indexeddb2.js +1 -0
- package/dist/node_modules/caniuse-lite/data/features/inline-block.js +1 -0
- package/dist/node_modules/caniuse-lite/data/features/innertext.js +1 -0
- package/dist/node_modules/caniuse-lite/data/features/input-autocomplete-onoff.js +1 -0
- package/dist/node_modules/caniuse-lite/data/features/input-color.js +1 -0
- package/dist/node_modules/caniuse-lite/data/features/input-datetime.js +1 -0
- package/dist/node_modules/caniuse-lite/data/features/input-email-tel-url.js +1 -0
- package/dist/node_modules/caniuse-lite/data/features/input-event.js +1 -0
- package/dist/node_modules/caniuse-lite/data/features/input-file-accept.js +1 -0
- package/dist/node_modules/caniuse-lite/data/features/input-file-directory.js +1 -0
- package/dist/node_modules/caniuse-lite/data/features/input-file-multiple.js +1 -0
- package/dist/node_modules/caniuse-lite/data/features/input-inputmode.js +1 -0
- package/dist/node_modules/caniuse-lite/data/features/input-minlength.js +1 -0
- package/dist/node_modules/caniuse-lite/data/features/input-number.js +1 -0
- package/dist/node_modules/caniuse-lite/data/features/input-pattern.js +1 -0
- package/dist/node_modules/caniuse-lite/data/features/input-placeholder.js +1 -0
- package/dist/node_modules/caniuse-lite/data/features/input-range.js +1 -0
- package/dist/node_modules/caniuse-lite/data/features/input-search.js +1 -0
- package/dist/node_modules/caniuse-lite/data/features/input-selection.js +1 -0
- package/dist/node_modules/caniuse-lite/data/features/insert-adjacent.js +1 -0
- package/dist/node_modules/caniuse-lite/data/features/insertadjacenthtml.js +1 -0
- package/dist/node_modules/caniuse-lite/data/features/internationalization.js +1 -0
- package/dist/node_modules/caniuse-lite/data/features/intersectionobserver-v2.js +1 -0
- package/dist/node_modules/caniuse-lite/data/features/intersectionobserver.js +1 -0
- package/dist/node_modules/caniuse-lite/data/features/intl-pluralrules.js +1 -0
- package/dist/node_modules/caniuse-lite/data/features/intrinsic-width.js +1 -0
- package/dist/node_modules/caniuse-lite/data/features/jpeg2000.js +1 -0
- package/dist/node_modules/caniuse-lite/data/features/jpegxl.js +1 -0
- package/dist/node_modules/caniuse-lite/data/features/jpegxr.js +1 -0
- package/dist/node_modules/caniuse-lite/data/features/js-regexp-lookbehind.js +1 -0
- package/dist/node_modules/caniuse-lite/data/features/json.js +1 -0
- package/dist/node_modules/caniuse-lite/data/features/justify-content-space-evenly.js +1 -0
- package/dist/node_modules/caniuse-lite/data/features/kerning-pairs-ligatures.js +1 -0
- package/dist/node_modules/caniuse-lite/data/features/keyboardevent-charcode.js +1 -0
- package/dist/node_modules/caniuse-lite/data/features/keyboardevent-code.js +1 -0
- package/dist/node_modules/caniuse-lite/data/features/keyboardevent-getmodifierstate.js +1 -0
- package/dist/node_modules/caniuse-lite/data/features/keyboardevent-key.js +1 -0
- package/dist/node_modules/caniuse-lite/data/features/keyboardevent-location.js +1 -0
- package/dist/node_modules/caniuse-lite/data/features/keyboardevent-which.js +1 -0
- package/dist/node_modules/caniuse-lite/data/features/lazyload.js +1 -0
- package/dist/node_modules/caniuse-lite/data/features/let.js +1 -0
- package/dist/node_modules/caniuse-lite/data/features/link-icon-png.js +1 -0
- package/dist/node_modules/caniuse-lite/data/features/link-icon-svg.js +1 -0
- package/dist/node_modules/caniuse-lite/data/features/link-rel-dns-prefetch.js +1 -0
- package/dist/node_modules/caniuse-lite/data/features/link-rel-modulepreload.js +1 -0
- package/dist/node_modules/caniuse-lite/data/features/link-rel-preconnect.js +1 -0
- package/dist/node_modules/caniuse-lite/data/features/link-rel-prefetch.js +1 -0
- package/dist/node_modules/caniuse-lite/data/features/link-rel-preload.js +1 -0
- package/dist/node_modules/caniuse-lite/data/features/link-rel-prerender.js +1 -0
- package/dist/node_modules/caniuse-lite/data/features/loading-lazy-attr.js +1 -0
- package/dist/node_modules/caniuse-lite/data/features/localecompare.js +1 -0
- package/dist/node_modules/caniuse-lite/data/features/magnetometer.js +1 -0
- package/dist/node_modules/caniuse-lite/data/features/matchesselector.js +1 -0
- package/dist/node_modules/caniuse-lite/data/features/matchmedia.js +1 -0
- package/dist/node_modules/caniuse-lite/data/features/mathml.js +1 -0
- package/dist/node_modules/caniuse-lite/data/features/maxlength.js +1 -0
- package/dist/node_modules/caniuse-lite/data/features/mdn-css-backdrop-pseudo-element.js +1 -0
- package/dist/node_modules/caniuse-lite/data/features/mdn-css-unicode-bidi-isolate-override.js +1 -0
- package/dist/node_modules/caniuse-lite/data/features/mdn-css-unicode-bidi-isolate.js +1 -0
- package/dist/node_modules/caniuse-lite/data/features/mdn-css-unicode-bidi-plaintext.js +1 -0
- package/dist/node_modules/caniuse-lite/data/features/mdn-text-decoration-color.js +1 -0
- package/dist/node_modules/caniuse-lite/data/features/mdn-text-decoration-line.js +1 -0
- package/dist/node_modules/caniuse-lite/data/features/mdn-text-decoration-shorthand.js +1 -0
- package/dist/node_modules/caniuse-lite/data/features/mdn-text-decoration-style.js +1 -0
- package/dist/node_modules/caniuse-lite/data/features/media-fragments.js +1 -0
- package/dist/node_modules/caniuse-lite/data/features/mediacapture-fromelement.js +1 -0
- package/dist/node_modules/caniuse-lite/data/features/mediarecorder.js +1 -0
- package/dist/node_modules/caniuse-lite/data/features/mediasource.js +1 -0
- package/dist/node_modules/caniuse-lite/data/features/menu.js +1 -0
- package/dist/node_modules/caniuse-lite/data/features/meta-theme-color.js +1 -0
- package/dist/node_modules/caniuse-lite/data/features/meter.js +1 -0
- package/dist/node_modules/caniuse-lite/data/features/midi.js +1 -0
- package/dist/node_modules/caniuse-lite/data/features/minmaxwh.js +1 -0
- package/dist/node_modules/caniuse-lite/data/features/mp3.js +1 -0
- package/dist/node_modules/caniuse-lite/data/features/mpeg-dash.js +1 -0
- package/dist/node_modules/caniuse-lite/data/features/mpeg4.js +1 -0
- package/dist/node_modules/caniuse-lite/data/features/multibackgrounds.js +1 -0
- package/dist/node_modules/caniuse-lite/data/features/multicolumn.js +1 -0
- package/dist/node_modules/caniuse-lite/data/features/mutation-events.js +1 -0
- package/dist/node_modules/caniuse-lite/data/features/mutationobserver.js +1 -0
- package/dist/node_modules/caniuse-lite/data/features/namevalue-storage.js +1 -0
- package/dist/node_modules/caniuse-lite/data/features/native-filesystem-api.js +1 -0
- package/dist/node_modules/caniuse-lite/data/features/nav-timing.js +1 -0
- package/dist/node_modules/caniuse-lite/data/features/netinfo.js +1 -0
- package/dist/node_modules/caniuse-lite/data/features/notifications.js +1 -0
- package/dist/node_modules/caniuse-lite/data/features/object-entries.js +1 -0
- package/dist/node_modules/caniuse-lite/data/features/object-fit.js +1 -0
- package/dist/node_modules/caniuse-lite/data/features/object-observe.js +1 -0
- package/dist/node_modules/caniuse-lite/data/features/object-values.js +1 -0
- package/dist/node_modules/caniuse-lite/data/features/objectrtc.js +1 -0
- package/dist/node_modules/caniuse-lite/data/features/offline-apps.js +1 -0
- package/dist/node_modules/caniuse-lite/data/features/offscreencanvas.js +1 -0
- package/dist/node_modules/caniuse-lite/data/features/ogg-vorbis.js +1 -0
- package/dist/node_modules/caniuse-lite/data/features/ogv.js +1 -0
- package/dist/node_modules/caniuse-lite/data/features/ol-reversed.js +1 -0
- package/dist/node_modules/caniuse-lite/data/features/once-event-listener.js +1 -0
- package/dist/node_modules/caniuse-lite/data/features/online-status.js +1 -0
- package/dist/node_modules/caniuse-lite/data/features/opus.js +1 -0
- package/dist/node_modules/caniuse-lite/data/features/orientation-sensor.js +1 -0
- package/dist/node_modules/caniuse-lite/data/features/outline.js +1 -0
- package/dist/node_modules/caniuse-lite/data/features/pad-start-end.js +1 -0
- package/dist/node_modules/caniuse-lite/data/features/page-transition-events.js +1 -0
- package/dist/node_modules/caniuse-lite/data/features/pagevisibility.js +1 -0
- package/dist/node_modules/caniuse-lite/data/features/passive-event-listener.js +1 -0
- package/dist/node_modules/caniuse-lite/data/features/passkeys.js +1 -0
- package/dist/node_modules/caniuse-lite/data/features/passwordrules.js +1 -0
- package/dist/node_modules/caniuse-lite/data/features/path2d.js +1 -0
- package/dist/node_modules/caniuse-lite/data/features/payment-request.js +1 -0
- package/dist/node_modules/caniuse-lite/data/features/pdf-viewer.js +1 -0
- package/dist/node_modules/caniuse-lite/data/features/permissions-api.js +1 -0
- package/dist/node_modules/caniuse-lite/data/features/permissions-policy.js +1 -0
- package/dist/node_modules/caniuse-lite/data/features/picture-in-picture.js +1 -0
- package/dist/node_modules/caniuse-lite/data/features/picture.js +1 -0
- package/dist/node_modules/caniuse-lite/data/features/ping.js +1 -0
- package/dist/node_modules/caniuse-lite/data/features/png-alpha.js +1 -0
- package/dist/node_modules/caniuse-lite/data/features/pointer-events.js +1 -0
- package/dist/node_modules/caniuse-lite/data/features/pointer.js +1 -0
- package/dist/node_modules/caniuse-lite/data/features/pointerlock.js +1 -0
- package/dist/node_modules/caniuse-lite/data/features/portals.js +1 -0
- package/dist/node_modules/caniuse-lite/data/features/prefers-color-scheme.js +1 -0
- package/dist/node_modules/caniuse-lite/data/features/prefers-reduced-motion.js +1 -0
- package/dist/node_modules/caniuse-lite/data/features/progress.js +1 -0
- package/dist/node_modules/caniuse-lite/data/features/promise-finally.js +1 -0
- package/dist/node_modules/caniuse-lite/data/features/promises.js +1 -0
- package/dist/node_modules/caniuse-lite/data/features/proximity.js +1 -0
- package/dist/node_modules/caniuse-lite/data/features/proxy.js +1 -0
- package/dist/node_modules/caniuse-lite/data/features/publickeypinning.js +1 -0
- package/dist/node_modules/caniuse-lite/data/features/push-api.js +1 -0
- package/dist/node_modules/caniuse-lite/data/features/queryselector.js +1 -0
- package/dist/node_modules/caniuse-lite/data/features/readonly-attr.js +1 -0
- package/dist/node_modules/caniuse-lite/data/features/referrer-policy.js +1 -0
- package/dist/node_modules/caniuse-lite/data/features/registerprotocolhandler.js +1 -0
- package/dist/node_modules/caniuse-lite/data/features/rel-noopener.js +1 -0
- package/dist/node_modules/caniuse-lite/data/features/rel-noreferrer.js +1 -0
- package/dist/node_modules/caniuse-lite/data/features/rellist.js +1 -0
- package/dist/node_modules/caniuse-lite/data/features/rem.js +1 -0
- package/dist/node_modules/caniuse-lite/data/features/requestanimationframe.js +1 -0
- package/dist/node_modules/caniuse-lite/data/features/requestidlecallback.js +1 -0
- package/dist/node_modules/caniuse-lite/data/features/resizeobserver.js +1 -0
- package/dist/node_modules/caniuse-lite/data/features/resource-timing.js +1 -0
- package/dist/node_modules/caniuse-lite/data/features/rest-parameters.js +1 -0
- package/dist/node_modules/caniuse-lite/data/features/rtcpeerconnection.js +1 -0
- package/dist/node_modules/caniuse-lite/data/features/ruby.js +1 -0
- package/dist/node_modules/caniuse-lite/data/features/run-in.js +1 -0
- package/dist/node_modules/caniuse-lite/data/features/same-site-cookie-attribute.js +1 -0
- package/dist/node_modules/caniuse-lite/data/features/screen-orientation.js +1 -0
- package/dist/node_modules/caniuse-lite/data/features/script-async.js +1 -0
- package/dist/node_modules/caniuse-lite/data/features/script-defer.js +1 -0
- package/dist/node_modules/caniuse-lite/data/features/scrollintoview.js +1 -0
- package/dist/node_modules/caniuse-lite/data/features/scrollintoviewifneeded.js +1 -0
- package/dist/node_modules/caniuse-lite/data/features/sdch.js +1 -0
- package/dist/node_modules/caniuse-lite/data/features/selection-api.js +1 -0
- package/dist/node_modules/caniuse-lite/data/features/selectlist.js +1 -0
- package/dist/node_modules/caniuse-lite/data/features/server-timing.js +1 -0
- package/dist/node_modules/caniuse-lite/data/features/serviceworkers.js +1 -0
- package/dist/node_modules/caniuse-lite/data/features/setimmediate.js +1 -0
- package/dist/node_modules/caniuse-lite/data/features/shadowdom.js +1 -0
- package/dist/node_modules/caniuse-lite/data/features/shadowdomv1.js +1 -0
- package/dist/node_modules/caniuse-lite/data/features/sharedarraybuffer.js +1 -0
- package/dist/node_modules/caniuse-lite/data/features/sharedworkers.js +1 -0
- package/dist/node_modules/caniuse-lite/data/features/sni.js +1 -0
- package/dist/node_modules/caniuse-lite/data/features/spdy.js +1 -0
- package/dist/node_modules/caniuse-lite/data/features/speech-recognition.js +1 -0
- package/dist/node_modules/caniuse-lite/data/features/speech-synthesis.js +1 -0
- package/dist/node_modules/caniuse-lite/data/features/spellcheck-attribute.js +1 -0
- package/dist/node_modules/caniuse-lite/data/features/sql-storage.js +1 -0
- package/dist/node_modules/caniuse-lite/data/features/srcset.js +1 -0
- package/dist/node_modules/caniuse-lite/data/features/stream.js +1 -0
- package/dist/node_modules/caniuse-lite/data/features/streams.js +1 -0
- package/dist/node_modules/caniuse-lite/data/features/stricttransportsecurity.js +1 -0
- package/dist/node_modules/caniuse-lite/data/features/style-scoped.js +1 -0
- package/dist/node_modules/caniuse-lite/data/features/subresource-bundling.js +1 -0
- package/dist/node_modules/caniuse-lite/data/features/subresource-integrity.js +1 -0
- package/dist/node_modules/caniuse-lite/data/features/svg-css.js +1 -0
- package/dist/node_modules/caniuse-lite/data/features/svg-filters.js +1 -0
- package/dist/node_modules/caniuse-lite/data/features/svg-fonts.js +1 -0
- package/dist/node_modules/caniuse-lite/data/features/svg-fragment.js +1 -0
- package/dist/node_modules/caniuse-lite/data/features/svg-html.js +1 -0
- package/dist/node_modules/caniuse-lite/data/features/svg-html5.js +1 -0
- package/dist/node_modules/caniuse-lite/data/features/svg-img.js +1 -0
- package/dist/node_modules/caniuse-lite/data/features/svg-smil.js +1 -0
- package/dist/node_modules/caniuse-lite/data/features/svg.js +1 -0
- package/dist/node_modules/caniuse-lite/data/features/sxg.js +1 -0
- package/dist/node_modules/caniuse-lite/data/features/tabindex-attr.js +1 -0
- package/dist/node_modules/caniuse-lite/data/features/template-literals.js +1 -0
- package/dist/node_modules/caniuse-lite/data/features/template.js +1 -0
- package/dist/node_modules/caniuse-lite/data/features/temporal.js +1 -0
- package/dist/node_modules/caniuse-lite/data/features/testfeat.js +1 -0
- package/dist/node_modules/caniuse-lite/data/features/text-decoration.js +1 -0
- package/dist/node_modules/caniuse-lite/data/features/text-emphasis.js +1 -0
- package/dist/node_modules/caniuse-lite/data/features/text-overflow.js +1 -0
- package/dist/node_modules/caniuse-lite/data/features/text-size-adjust.js +1 -0
- package/dist/node_modules/caniuse-lite/data/features/text-stroke.js +1 -0
- package/dist/node_modules/caniuse-lite/data/features/textcontent.js +1 -0
- package/dist/node_modules/caniuse-lite/data/features/textencoder.js +1 -0
- package/dist/node_modules/caniuse-lite/data/features/tls1-1.js +1 -0
- package/dist/node_modules/caniuse-lite/data/features/tls1-2.js +1 -0
- package/dist/node_modules/caniuse-lite/data/features/tls1-3.js +1 -0
- package/dist/node_modules/caniuse-lite/data/features/touch.js +1 -0
- package/dist/node_modules/caniuse-lite/data/features/transforms2d.js +1 -0
- package/dist/node_modules/caniuse-lite/data/features/transforms3d.js +1 -0
- package/dist/node_modules/caniuse-lite/data/features/trusted-types.js +1 -0
- package/dist/node_modules/caniuse-lite/data/features/ttf.js +1 -0
- package/dist/node_modules/caniuse-lite/data/features/typedarrays.js +1 -0
- package/dist/node_modules/caniuse-lite/data/features/u2f.js +1 -0
- package/dist/node_modules/caniuse-lite/data/features/unhandledrejection.js +1 -0
- package/dist/node_modules/caniuse-lite/data/features/upgradeinsecurerequests.js +1 -0
- package/dist/node_modules/caniuse-lite/data/features/url-scroll-to-text-fragment.js +1 -0
- package/dist/node_modules/caniuse-lite/data/features/url.js +1 -0
- package/dist/node_modules/caniuse-lite/data/features/urlsearchparams.js +1 -0
- package/dist/node_modules/caniuse-lite/data/features/use-strict.js +1 -0
- package/dist/node_modules/caniuse-lite/data/features/user-select-none.js +1 -0
- package/dist/node_modules/caniuse-lite/data/features/user-timing.js +1 -0
- package/dist/node_modules/caniuse-lite/data/features/variable-fonts.js +1 -0
- package/dist/node_modules/caniuse-lite/data/features/vector-effect.js +1 -0
- package/dist/node_modules/caniuse-lite/data/features/vibration.js +1 -0
- package/dist/node_modules/caniuse-lite/data/features/video.js +1 -0
- package/dist/node_modules/caniuse-lite/data/features/videotracks.js +1 -0
- package/dist/node_modules/caniuse-lite/data/features/view-transitions.js +1 -0
- package/dist/node_modules/caniuse-lite/data/features/viewport-unit-variants.js +1 -0
- package/dist/node_modules/caniuse-lite/data/features/viewport-units.js +1 -0
- package/dist/node_modules/caniuse-lite/data/features/wai-aria.js +1 -0
- package/dist/node_modules/caniuse-lite/data/features/wake-lock.js +1 -0
- package/dist/node_modules/caniuse-lite/data/features/wasm-bigint.js +1 -0
- package/dist/node_modules/caniuse-lite/data/features/wasm-bulk-memory.js +1 -0
- package/dist/node_modules/caniuse-lite/data/features/wasm-extended-const.js +1 -0
- package/dist/node_modules/caniuse-lite/data/features/wasm-gc.js +1 -0
- package/dist/node_modules/caniuse-lite/data/features/wasm-multi-memory.js +1 -0
- package/dist/node_modules/caniuse-lite/data/features/wasm-multi-value.js +1 -0
- package/dist/node_modules/caniuse-lite/data/features/wasm-mutable-globals.js +1 -0
- package/dist/node_modules/caniuse-lite/data/features/wasm-nontrapping-fptoint.js +1 -0
- package/dist/node_modules/caniuse-lite/data/features/wasm-reference-types.js +1 -0
- package/dist/node_modules/caniuse-lite/data/features/wasm-relaxed-simd.js +1 -0
- package/dist/node_modules/caniuse-lite/data/features/wasm-signext.js +1 -0
- package/dist/node_modules/caniuse-lite/data/features/wasm-simd.js +1 -0
- package/dist/node_modules/caniuse-lite/data/features/wasm-tail-calls.js +1 -0
- package/dist/node_modules/caniuse-lite/data/features/wasm-threads.js +1 -0
- package/dist/node_modules/caniuse-lite/data/features/wasm.js +1 -0
- package/dist/node_modules/caniuse-lite/data/features/wav.js +1 -0
- package/dist/node_modules/caniuse-lite/data/features/wbr-element.js +1 -0
- package/dist/node_modules/caniuse-lite/data/features/web-animation.js +1 -0
- package/dist/node_modules/caniuse-lite/data/features/web-app-manifest.js +1 -0
- package/dist/node_modules/caniuse-lite/data/features/web-bluetooth.js +1 -0
- package/dist/node_modules/caniuse-lite/data/features/web-serial.js +1 -0
- package/dist/node_modules/caniuse-lite/data/features/web-share.js +1 -0
- package/dist/node_modules/caniuse-lite/data/features/webauthn.js +1 -0
- package/dist/node_modules/caniuse-lite/data/features/webcodecs.js +1 -0
- package/dist/node_modules/caniuse-lite/data/features/webgl.js +1 -0
- package/dist/node_modules/caniuse-lite/data/features/webgl2.js +1 -0
- package/dist/node_modules/caniuse-lite/data/features/webgpu.js +1 -0
- package/dist/node_modules/caniuse-lite/data/features/webhid.js +1 -0
- package/dist/node_modules/caniuse-lite/data/features/webkit-user-drag.js +1 -0
- package/dist/node_modules/caniuse-lite/data/features/webm.js +1 -0
- package/dist/node_modules/caniuse-lite/data/features/webnfc.js +1 -0
- package/dist/node_modules/caniuse-lite/data/features/webp.js +1 -0
- package/dist/node_modules/caniuse-lite/data/features/websockets.js +1 -0
- package/dist/node_modules/caniuse-lite/data/features/webtransport.js +1 -0
- package/dist/node_modules/caniuse-lite/data/features/webusb.js +1 -0
- package/dist/node_modules/caniuse-lite/data/features/webvr.js +1 -0
- package/dist/node_modules/caniuse-lite/data/features/webvtt.js +1 -0
- package/dist/node_modules/caniuse-lite/data/features/webworkers.js +1 -0
- package/dist/node_modules/caniuse-lite/data/features/webxr.js +1 -0
- package/dist/node_modules/caniuse-lite/data/features/will-change.js +1 -0
- package/dist/node_modules/caniuse-lite/data/features/woff.js +1 -0
- package/dist/node_modules/caniuse-lite/data/features/woff2.js +1 -0
- package/dist/node_modules/caniuse-lite/data/features/word-break.js +1 -0
- package/dist/node_modules/caniuse-lite/data/features/wordwrap.js +1 -0
- package/dist/node_modules/caniuse-lite/data/features/x-doc-messaging.js +1 -0
- package/dist/node_modules/caniuse-lite/data/features/x-frame-options.js +1 -0
- package/dist/node_modules/caniuse-lite/data/features/xhr2.js +1 -0
- package/dist/node_modules/caniuse-lite/data/features/xhtml.js +1 -0
- package/dist/node_modules/caniuse-lite/data/features/xhtmlsmil.js +1 -0
- package/dist/node_modules/caniuse-lite/data/features/xml-serializer.js +1 -0
- package/dist/node_modules/caniuse-lite/data/features/zstd.js +1 -0
- package/dist/node_modules/caniuse-lite/data/features.js +1 -0
- package/dist/node_modules/caniuse-lite/dist/lib/statuses.js +9 -0
- package/dist/node_modules/caniuse-lite/dist/lib/supported.js +9 -0
- package/dist/node_modules/caniuse-lite/dist/unpacker/agents.js +47 -0
- package/dist/node_modules/caniuse-lite/dist/unpacker/browserVersions.js +1 -0
- package/dist/node_modules/caniuse-lite/dist/unpacker/browsers.js +1 -0
- package/dist/node_modules/caniuse-lite/dist/unpacker/feature.js +52 -0
- package/dist/node_modules/caniuse-lite/dist/unpacker/features.js +6 -0
- package/dist/node_modules/caniuse-lite/dist/unpacker/index.js +4 -0
- package/dist/node_modules/caniuse-lite/dist/unpacker/region.js +22 -0
- package/dist/node_modules/caniuse-lite/package.json +34 -0
- package/dist/node_modules/ccount/index.js +27 -0
- package/dist/node_modules/ccount/package.json +71 -0
- package/dist/node_modules/character-entities-html4/index.js +259 -0
- package/dist/node_modules/character-entities-html4/package.json +79 -0
- package/dist/node_modules/character-entities-legacy/index.js +113 -0
- package/dist/node_modules/character-entities-legacy/package.json +77 -0
- package/dist/node_modules/client-only/index.js +0 -0
- package/dist/node_modules/client-only/package.json +19 -0
- package/dist/node_modules/comma-separated-tokens/index.js +74 -0
- package/dist/node_modules/comma-separated-tokens/package.json +72 -0
- package/dist/node_modules/detect-libc/lib/detect-libc.js +313 -0
- package/dist/node_modules/detect-libc/lib/elf.js +39 -0
- package/dist/node_modules/detect-libc/lib/filesystem.js +51 -0
- package/dist/node_modules/detect-libc/lib/process.js +24 -0
- package/dist/node_modules/detect-libc/package.json +44 -0
- package/dist/node_modules/hast-util-to-html/index.js +8 -0
- package/dist/node_modules/hast-util-to-html/lib/handle/comment.js +52 -0
- package/dist/node_modules/hast-util-to-html/lib/handle/doctype.js +27 -0
- package/dist/node_modules/hast-util-to-html/lib/handle/element.js +265 -0
- package/dist/node_modules/hast-util-to-html/lib/handle/index.js +47 -0
- package/dist/node_modules/hast-util-to-html/lib/handle/raw.js +27 -0
- package/dist/node_modules/hast-util-to-html/lib/handle/root.js +22 -0
- package/dist/node_modules/hast-util-to-html/lib/handle/text.js +38 -0
- package/dist/node_modules/hast-util-to-html/lib/index.js +257 -0
- package/dist/node_modules/hast-util-to-html/lib/omission/closing.js +358 -0
- package/dist/node_modules/hast-util-to-html/lib/omission/omission.js +44 -0
- package/dist/node_modules/hast-util-to-html/lib/omission/opening.js +148 -0
- package/dist/node_modules/hast-util-to-html/lib/omission/util/siblings.js +50 -0
- package/dist/node_modules/hast-util-to-html/package.json +106 -0
- package/dist/node_modules/hast-util-whitespace/index.js +1 -0
- package/dist/node_modules/hast-util-whitespace/lib/index.js +34 -0
- package/dist/node_modules/hast-util-whitespace/package.json +83 -0
- package/dist/node_modules/html-void-elements/index.js +27 -0
- package/dist/node_modules/html-void-elements/package.json +79 -0
- package/dist/node_modules/nanoid/non-secure/index.cjs +34 -0
- package/dist/node_modules/nanoid/non-secure/package.json +6 -0
- package/dist/node_modules/nanoid/package.json +89 -0
- package/dist/node_modules/node-gyp-build/index.js +6 -0
- package/dist/node_modules/node-gyp-build/node-gyp-build.js +207 -0
- package/dist/node_modules/node-gyp-build/package.json +43 -0
- package/dist/node_modules/oniguruma-parser/dist/parser/node-utils.js +2 -0
- package/dist/node_modules/oniguruma-parser/dist/parser/parse.js +2 -0
- package/dist/node_modules/oniguruma-parser/dist/tokenizer/tokenize.js +34 -0
- package/dist/node_modules/oniguruma-parser/dist/traverser/traverse.js +2 -0
- package/dist/node_modules/oniguruma-parser/dist/utils.js +2 -0
- package/dist/node_modules/oniguruma-parser/package.json +64 -0
- package/dist/node_modules/oniguruma-to-es/dist/cjs/index.js +3146 -0
- package/dist/node_modules/oniguruma-to-es/dist/cjs/package.json +1 -0
- package/dist/node_modules/oniguruma-to-es/dist/esm/index.js +1876 -0
- package/dist/node_modules/oniguruma-to-es/dist/esm/package.json +1 -0
- package/dist/node_modules/oniguruma-to-es/package.json +61 -0
- package/dist/node_modules/pg-cloudflare/dist/empty.js +6 -0
- package/dist/node_modules/pg-cloudflare/dist/index.js +152 -0
- package/dist/node_modules/pg-cloudflare/package.json +39 -0
- package/dist/node_modules/pg-connection-string/index.js +231 -0
- package/dist/node_modules/pg-connection-string/package.json +52 -0
- package/dist/node_modules/pg-int8/index.js +100 -0
- package/dist/node_modules/pg-int8/package.json +24 -0
- package/dist/node_modules/pg-pool/index.js +481 -0
- package/dist/node_modules/pg-pool/package.json +51 -0
- package/dist/node_modules/pg-protocol/dist/buffer-reader.js +56 -0
- package/dist/node_modules/pg-protocol/dist/buffer-writer.js +81 -0
- package/dist/node_modules/pg-protocol/dist/index.js +15 -0
- package/dist/node_modules/pg-protocol/dist/messages.js +160 -0
- package/dist/node_modules/pg-protocol/dist/parser.js +324 -0
- package/dist/node_modules/pg-protocol/dist/serializer.js +189 -0
- package/dist/node_modules/pg-protocol/package.json +45 -0
- package/dist/node_modules/pg-types/index.js +47 -0
- package/dist/node_modules/pg-types/lib/arrayParser.js +11 -0
- package/dist/node_modules/pg-types/lib/binaryParsers.js +257 -0
- package/dist/node_modules/pg-types/lib/builtins.js +73 -0
- package/dist/node_modules/pg-types/lib/textParsers.js +215 -0
- package/dist/node_modules/pg-types/package.json +42 -0
- package/dist/node_modules/pgpass/lib/helper.js +233 -0
- package/dist/node_modules/pgpass/lib/index.js +23 -0
- package/dist/node_modules/pgpass/package.json +41 -0
- package/dist/node_modules/picocolors/package.json +25 -0
- package/dist/node_modules/picocolors/picocolors.js +75 -0
- package/dist/node_modules/postcss/lib/at-rule.js +25 -0
- package/dist/node_modules/postcss/lib/comment.js +13 -0
- package/dist/node_modules/postcss/lib/container.js +439 -0
- package/dist/node_modules/postcss/lib/css-syntax-error.js +100 -0
- package/dist/node_modules/postcss/lib/declaration.js +24 -0
- package/dist/node_modules/postcss/lib/document.js +33 -0
- package/dist/node_modules/postcss/lib/fromJSON.js +54 -0
- package/dist/node_modules/postcss/lib/input.js +248 -0
- package/dist/node_modules/postcss/lib/lazy-result.js +550 -0
- package/dist/node_modules/postcss/lib/list.js +58 -0
- package/dist/node_modules/postcss/lib/map-generator.js +359 -0
- package/dist/node_modules/postcss/lib/no-work-result.js +135 -0
- package/dist/node_modules/postcss/lib/node.js +381 -0
- package/dist/node_modules/postcss/lib/parse.js +42 -0
- package/dist/node_modules/postcss/lib/parser.js +610 -0
- package/dist/node_modules/postcss/lib/postcss.js +101 -0
- package/dist/node_modules/postcss/lib/previous-map.js +142 -0
- package/dist/node_modules/postcss/lib/processor.js +67 -0
- package/dist/node_modules/postcss/lib/result.js +42 -0
- package/dist/node_modules/postcss/lib/root.js +61 -0
- package/dist/node_modules/postcss/lib/rule.js +27 -0
- package/dist/node_modules/postcss/lib/stringifier.js +353 -0
- package/dist/node_modules/postcss/lib/stringify.js +11 -0
- package/dist/node_modules/postcss/lib/symbols.js +5 -0
- package/dist/node_modules/postcss/lib/terminal-highlight.js +70 -0
- package/dist/node_modules/postcss/lib/tokenize.js +266 -0
- package/dist/node_modules/postcss/lib/warn-once.js +13 -0
- package/dist/node_modules/postcss/lib/warning.js +37 -0
- package/dist/node_modules/postcss/package.json +88 -0
- package/dist/node_modules/postgres-array/index.js +97 -0
- package/dist/node_modules/postgres-array/package.json +35 -0
- package/dist/node_modules/postgres-bytea/index.js +33 -0
- package/dist/node_modules/postgres-bytea/package.json +34 -0
- package/dist/node_modules/postgres-date/index.js +116 -0
- package/dist/node_modules/postgres-date/package.json +33 -0
- package/dist/node_modules/postgres-interval/index.js +125 -0
- package/dist/node_modules/postgres-interval/package.json +36 -0
- package/dist/node_modules/property-information/index.js +17 -0
- package/dist/node_modules/property-information/lib/aria.js +61 -0
- package/dist/node_modules/property-information/lib/find.js +97 -0
- package/dist/node_modules/property-information/lib/hast-to-react.js +30 -0
- package/dist/node_modules/property-information/lib/html.js +322 -0
- package/dist/node_modules/property-information/lib/normalize.js +12 -0
- package/dist/node_modules/property-information/lib/svg.js +567 -0
- package/dist/node_modules/property-information/lib/util/case-insensitive-transform.js +13 -0
- package/dist/node_modules/property-information/lib/util/case-sensitive-transform.js +11 -0
- package/dist/node_modules/property-information/lib/util/create.js +69 -0
- package/dist/node_modules/property-information/lib/util/defined-info.js +60 -0
- package/dist/node_modules/property-information/lib/util/info.js +32 -0
- package/dist/node_modules/property-information/lib/util/merge.js +27 -0
- package/dist/node_modules/property-information/lib/util/schema.js +29 -0
- package/dist/node_modules/property-information/lib/util/types.js +13 -0
- package/dist/node_modules/property-information/lib/xlink.js +17 -0
- package/dist/node_modules/property-information/lib/xml.js +9 -0
- package/dist/node_modules/property-information/lib/xmlns.js +9 -0
- package/dist/node_modules/property-information/package.json +121 -0
- package/dist/node_modules/react-dom/cjs/react-dom-server-legacy.browser.development.js +9877 -0
- package/dist/node_modules/react-dom/cjs/react-dom-server-legacy.browser.production.js +6603 -0
- package/dist/node_modules/react-dom/cjs/react-dom-server-legacy.node.production.js +6692 -0
- package/dist/node_modules/react-dom/cjs/react-dom-server.browser.development.js +10601 -0
- package/dist/node_modules/react-dom/cjs/react-dom-server.browser.production.js +7410 -0
- package/dist/node_modules/react-dom/cjs/react-dom-server.edge.development.js +10620 -0
- package/dist/node_modules/react-dom/cjs/react-dom-server.edge.production.js +7512 -0
- package/dist/node_modules/react-dom/cjs/react-dom-server.node.production.js +7707 -0
- package/dist/node_modules/react-dom/cjs/react-dom.development.js +424 -0
- package/dist/node_modules/react-dom/cjs/react-dom.production.js +210 -0
- package/dist/node_modules/react-dom/index.js +38 -0
- package/dist/node_modules/react-dom/package.json +117 -0
- package/dist/node_modules/react-dom/server.browser.js +16 -0
- package/dist/node_modules/react-dom/server.edge.js +17 -0
- package/dist/node_modules/react-dom/server.js +3 -0
- package/dist/node_modules/react-dom/server.node.js +18 -0
- package/dist/node_modules/react-dom/static.js +3 -0
- package/dist/node_modules/react-dom/static.node.js +14 -0
- package/dist/node_modules/regex/package.json +60 -0
- package/dist/node_modules/regex/src/atomic.js +224 -0
- package/dist/node_modules/regex/src/internals.js +2 -0
- package/dist/node_modules/regex/src/subclass.js +98 -0
- package/dist/node_modules/regex/src/utils-internals.js +33 -0
- package/dist/node_modules/regex-recursion/package.json +47 -0
- package/dist/node_modules/regex-recursion/src/index.js +365 -0
- package/dist/node_modules/regex-utilities/package.json +35 -0
- package/dist/node_modules/regex-utilities/src/index.js +170 -0
- package/dist/node_modules/semver/classes/comparator.js +143 -0
- package/dist/node_modules/semver/classes/range.js +557 -0
- package/dist/node_modules/semver/classes/semver.js +333 -0
- package/dist/node_modules/semver/functions/cmp.js +54 -0
- package/dist/node_modules/semver/functions/coerce.js +62 -0
- package/dist/node_modules/semver/functions/compare.js +7 -0
- package/dist/node_modules/semver/functions/eq.js +5 -0
- package/dist/node_modules/semver/functions/gt.js +5 -0
- package/dist/node_modules/semver/functions/gte.js +5 -0
- package/dist/node_modules/semver/functions/lt.js +5 -0
- package/dist/node_modules/semver/functions/lte.js +5 -0
- package/dist/node_modules/semver/functions/neq.js +5 -0
- package/dist/node_modules/semver/functions/parse.js +18 -0
- package/dist/node_modules/semver/functions/satisfies.js +12 -0
- package/dist/node_modules/semver/internal/constants.js +37 -0
- package/dist/node_modules/semver/internal/debug.js +11 -0
- package/dist/node_modules/semver/internal/identifiers.js +29 -0
- package/dist/node_modules/semver/internal/lrucache.js +42 -0
- package/dist/node_modules/semver/internal/parse-options.js +17 -0
- package/dist/node_modules/semver/internal/re.js +223 -0
- package/dist/node_modules/semver/package.json +78 -0
- package/dist/node_modules/sharp/lib/channel.js +177 -0
- package/dist/node_modules/sharp/lib/colour.js +195 -0
- package/dist/node_modules/sharp/lib/composite.js +212 -0
- package/dist/node_modules/sharp/lib/constructor.js +499 -0
- package/dist/node_modules/sharp/lib/index.js +16 -0
- package/dist/node_modules/sharp/lib/input.js +809 -0
- package/dist/node_modules/sharp/lib/is.js +143 -0
- package/dist/node_modules/sharp/lib/libvips.js +207 -0
- package/dist/node_modules/sharp/lib/operation.js +1016 -0
- package/dist/node_modules/sharp/lib/output.js +1666 -0
- package/dist/node_modules/sharp/lib/resize.js +595 -0
- package/dist/node_modules/sharp/lib/sharp.js +121 -0
- package/dist/node_modules/sharp/lib/utility.js +291 -0
- package/dist/node_modules/sharp/package.json +202 -0
- package/dist/node_modules/source-map-js/lib/array-set.js +121 -0
- package/dist/node_modules/source-map-js/lib/base64-vlq.js +140 -0
- package/dist/node_modules/source-map-js/lib/base64.js +67 -0
- package/dist/node_modules/source-map-js/lib/binary-search.js +111 -0
- package/dist/node_modules/source-map-js/lib/mapping-list.js +79 -0
- package/dist/node_modules/source-map-js/lib/quick-sort.js +132 -0
- package/dist/node_modules/source-map-js/lib/source-map-consumer.js +1188 -0
- package/dist/node_modules/source-map-js/lib/source-map-generator.js +444 -0
- package/dist/node_modules/source-map-js/lib/source-node.js +413 -0
- package/dist/node_modules/source-map-js/lib/util.js +594 -0
- package/dist/node_modules/source-map-js/package.json +71 -0
- package/dist/node_modules/source-map-js/source-map.js +8 -0
- package/dist/node_modules/space-separated-tokens/index.js +24 -0
- package/dist/node_modules/space-separated-tokens/package.json +67 -0
- package/dist/node_modules/split2/index.js +141 -0
- package/dist/node_modules/split2/package.json +39 -0
- package/dist/node_modules/stringify-entities/index.js +6 -0
- package/dist/node_modules/stringify-entities/lib/constant/dangerous.js +16 -0
- package/dist/node_modules/stringify-entities/lib/core.js +117 -0
- package/dist/node_modules/stringify-entities/lib/index.js +36 -0
- package/dist/node_modules/stringify-entities/lib/util/format-basic.js +9 -0
- package/dist/node_modules/stringify-entities/lib/util/format-smart.js +69 -0
- package/dist/node_modules/stringify-entities/lib/util/to-decimal.js +16 -0
- package/dist/node_modules/stringify-entities/lib/util/to-hexadecimal.js +16 -0
- package/dist/node_modules/stringify-entities/lib/util/to-named.js +57 -0
- package/dist/node_modules/stringify-entities/package.json +86 -0
- package/dist/node_modules/styled-jsx/dist/index/index.js +499 -0
- package/dist/node_modules/styled-jsx/index.js +1 -0
- package/dist/node_modules/styled-jsx/package.json +132 -0
- package/dist/node_modules/styled-jsx/style.js +1 -0
- package/dist/node_modules/xtend/mutable.js +17 -0
- package/dist/node_modules/xtend/package.json +55 -0
- package/dist/node_modules/zwitch/index.js +118 -0
- package/dist/node_modules/zwitch/package.json +72 -0
- package/package.json +1 -1
- /package/dist/.next/static/{SoceN9ZjJB6Xr18CQCupk → ERYuqKh2yJ2lApkenIQge}/_buildManifest.js +0 -0
- /package/dist/.next/static/{SoceN9ZjJB6Xr18CQCupk → ERYuqKh2yJ2lApkenIQge}/_ssgManifest.js +0 -0
|
@@ -0,0 +1,3146 @@
|
|
|
1
|
+
var __defProp = Object.defineProperty;
|
|
2
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
3
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
4
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
5
|
+
var __export = (target, all) => {
|
|
6
|
+
for (var name in all)
|
|
7
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
|
8
|
+
};
|
|
9
|
+
var __copyProps = (to, from, except, desc) => {
|
|
10
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
11
|
+
for (let key of __getOwnPropNames(from))
|
|
12
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
13
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
14
|
+
}
|
|
15
|
+
return to;
|
|
16
|
+
};
|
|
17
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
18
|
+
|
|
19
|
+
// src/index.js
|
|
20
|
+
var index_exports = {};
|
|
21
|
+
__export(index_exports, {
|
|
22
|
+
EmulatedRegExp: () => EmulatedRegExp,
|
|
23
|
+
toRegExp: () => toRegExp,
|
|
24
|
+
toRegExpDetails: () => toRegExpDetails
|
|
25
|
+
});
|
|
26
|
+
module.exports = __toCommonJS(index_exports);
|
|
27
|
+
|
|
28
|
+
// src/utils.js
|
|
29
|
+
var cp = String.fromCodePoint;
|
|
30
|
+
var r = String.raw;
|
|
31
|
+
var envFlags = {
|
|
32
|
+
flagGroups: (() => {
|
|
33
|
+
try {
|
|
34
|
+
new RegExp("(?i:)");
|
|
35
|
+
} catch {
|
|
36
|
+
return false;
|
|
37
|
+
}
|
|
38
|
+
return true;
|
|
39
|
+
})(),
|
|
40
|
+
unicodeSets: (() => {
|
|
41
|
+
try {
|
|
42
|
+
new RegExp("[[]]", "v");
|
|
43
|
+
} catch {
|
|
44
|
+
return false;
|
|
45
|
+
}
|
|
46
|
+
return true;
|
|
47
|
+
})()
|
|
48
|
+
};
|
|
49
|
+
envFlags.bugFlagVLiteralHyphenIsRange = envFlags.unicodeSets ? (() => {
|
|
50
|
+
try {
|
|
51
|
+
new RegExp(r`[\d\-a]`, "v");
|
|
52
|
+
} catch {
|
|
53
|
+
return true;
|
|
54
|
+
}
|
|
55
|
+
return false;
|
|
56
|
+
})() : false;
|
|
57
|
+
envFlags.bugNestedClassIgnoresNegation = envFlags.unicodeSets && new RegExp("[[^a]]", "v").test("a");
|
|
58
|
+
function getNewCurrentFlags(current, { enable, disable }) {
|
|
59
|
+
return {
|
|
60
|
+
dotAll: !disable?.dotAll && !!(enable?.dotAll || current.dotAll),
|
|
61
|
+
ignoreCase: !disable?.ignoreCase && !!(enable?.ignoreCase || current.ignoreCase)
|
|
62
|
+
};
|
|
63
|
+
}
|
|
64
|
+
function getOrInsert(map, key, defaultValue) {
|
|
65
|
+
if (!map.has(key)) {
|
|
66
|
+
map.set(key, defaultValue);
|
|
67
|
+
}
|
|
68
|
+
return map.get(key);
|
|
69
|
+
}
|
|
70
|
+
function isMinTarget(target, min) {
|
|
71
|
+
return EsVersion[target] >= EsVersion[min];
|
|
72
|
+
}
|
|
73
|
+
function throwIfNullish(value, msg) {
|
|
74
|
+
if (value == null) {
|
|
75
|
+
throw new Error(msg ?? "Value expected");
|
|
76
|
+
}
|
|
77
|
+
return value;
|
|
78
|
+
}
|
|
79
|
+
|
|
80
|
+
// src/options.js
|
|
81
|
+
var EsVersion = {
|
|
82
|
+
ES2025: 2025,
|
|
83
|
+
ES2024: 2024,
|
|
84
|
+
ES2018: 2018
|
|
85
|
+
};
|
|
86
|
+
var Target = (
|
|
87
|
+
/** @type {const} */
|
|
88
|
+
{
|
|
89
|
+
auto: "auto",
|
|
90
|
+
ES2025: "ES2025",
|
|
91
|
+
ES2024: "ES2024",
|
|
92
|
+
ES2018: "ES2018"
|
|
93
|
+
}
|
|
94
|
+
);
|
|
95
|
+
function getOptions(options = {}) {
|
|
96
|
+
if ({}.toString.call(options) !== "[object Object]") {
|
|
97
|
+
throw new Error("Unexpected options");
|
|
98
|
+
}
|
|
99
|
+
if (options.target !== void 0 && !Target[options.target]) {
|
|
100
|
+
throw new Error(`Unexpected target "${options.target}"`);
|
|
101
|
+
}
|
|
102
|
+
const opts = {
|
|
103
|
+
// Sets the level of emulation rigor/strictness.
|
|
104
|
+
accuracy: "default",
|
|
105
|
+
// Disables advanced emulation that relies on returning a `RegExp` subclass, resulting in
|
|
106
|
+
// certain patterns not being emulatable.
|
|
107
|
+
avoidSubclass: false,
|
|
108
|
+
// Oniguruma flags; a string with `i`, `m`, `x`, `D`, `S`, `W`, `y{g}` in any order (all
|
|
109
|
+
// optional). Oniguruma's `m` is equivalent to JavaScript's `s` (`dotAll`).
|
|
110
|
+
flags: "",
|
|
111
|
+
// Include JavaScript flag `g` (`global`) in the result.
|
|
112
|
+
global: false,
|
|
113
|
+
// Include JavaScript flag `d` (`hasIndices`) in the result.
|
|
114
|
+
hasIndices: false,
|
|
115
|
+
// Delay regex construction until first use if the transpiled pattern is at least this length.
|
|
116
|
+
lazyCompileLength: Infinity,
|
|
117
|
+
// JavaScript version used for generated regexes. Using `auto` detects the best value based on
|
|
118
|
+
// your environment. Later targets allow faster processing, simpler generated source, and
|
|
119
|
+
// support for additional features.
|
|
120
|
+
target: "auto",
|
|
121
|
+
// Disables minifications that simplify the pattern without changing the meaning.
|
|
122
|
+
verbose: false,
|
|
123
|
+
...options,
|
|
124
|
+
// Advanced options that override standard behavior, error checking, and flags when enabled.
|
|
125
|
+
rules: {
|
|
126
|
+
// Useful with TextMate grammars that merge backreferences across patterns.
|
|
127
|
+
allowOrphanBackrefs: false,
|
|
128
|
+
// Use ASCII `\b` and `\B`, which increases search performance of generated regexes.
|
|
129
|
+
asciiWordBoundaries: false,
|
|
130
|
+
// Allow unnamed captures and numbered calls (backreferences and subroutines) when using
|
|
131
|
+
// named capture. This is Oniguruma option `ONIG_OPTION_CAPTURE_GROUP`; on by default in
|
|
132
|
+
// `vscode-oniguruma`.
|
|
133
|
+
captureGroup: false,
|
|
134
|
+
// Change the recursion depth limit from Oniguruma's `20` to an integer `2`–`20`.
|
|
135
|
+
recursionLimit: 20,
|
|
136
|
+
// `^` as `\A`; `$` as`\Z`. Improves search performance of generated regexes without changing
|
|
137
|
+
// the meaning if searching line by line. This is Oniguruma option `ONIG_OPTION_SINGLELINE`.
|
|
138
|
+
singleline: false,
|
|
139
|
+
...options.rules
|
|
140
|
+
}
|
|
141
|
+
};
|
|
142
|
+
if (opts.target === "auto") {
|
|
143
|
+
opts.target = envFlags.flagGroups ? "ES2025" : envFlags.unicodeSets ? "ES2024" : "ES2018";
|
|
144
|
+
}
|
|
145
|
+
return opts;
|
|
146
|
+
}
|
|
147
|
+
|
|
148
|
+
// node_modules/.pnpm/oniguruma-parser@0.12.1/node_modules/oniguruma-parser/dist/utils.js
|
|
149
|
+
function r2(e) {
|
|
150
|
+
if ([...e].length !== 1) throw new Error(`Expected "${e}" to be a single code point`);
|
|
151
|
+
return e.codePointAt(0);
|
|
152
|
+
}
|
|
153
|
+
function l(e, t, n) {
|
|
154
|
+
return e.has(t) || e.set(t, n), e.get(t);
|
|
155
|
+
}
|
|
156
|
+
var i = /* @__PURE__ */ new Set(["alnum", "alpha", "ascii", "blank", "cntrl", "digit", "graph", "lower", "print", "punct", "space", "upper", "word", "xdigit"]);
|
|
157
|
+
var o = String.raw;
|
|
158
|
+
function u(e, t) {
|
|
159
|
+
if (e == null) throw new Error(t ?? "Value expected");
|
|
160
|
+
return e;
|
|
161
|
+
}
|
|
162
|
+
|
|
163
|
+
// node_modules/.pnpm/oniguruma-parser@0.12.1/node_modules/oniguruma-parser/dist/tokenizer/tokenize.js
|
|
164
|
+
var m = o`\[\^?`;
|
|
165
|
+
var b = `c.? | C(?:-.?)?|${o`[pP]\{(?:\^?[-\x20_]*[A-Za-z][-\x20\w]*\})?`}|${o`x[89A-Fa-f]\p{AHex}(?:\\x[89A-Fa-f]\p{AHex})*`}|${o`u(?:\p{AHex}{4})? | x\{[^\}]*\}? | x\p{AHex}{0,2}`}|${o`o\{[^\}]*\}?`}|${o`\d{1,3}`}`;
|
|
166
|
+
var y = /[?*+][?+]?|\{(?:\d+(?:,\d*)?|,\d+)\}\??/;
|
|
167
|
+
var C = new RegExp(o`
|
|
168
|
+
\\ (?:
|
|
169
|
+
${b}
|
|
170
|
+
| [gk]<[^>]*>?
|
|
171
|
+
| [gk]'[^']*'?
|
|
172
|
+
| .
|
|
173
|
+
)
|
|
174
|
+
| \( (?:
|
|
175
|
+
\? (?:
|
|
176
|
+
[:=!>({]
|
|
177
|
+
| <[=!]
|
|
178
|
+
| <[^>]*>
|
|
179
|
+
| '[^']*'
|
|
180
|
+
| ~\|?
|
|
181
|
+
| #(?:[^)\\]|\\.?)*
|
|
182
|
+
| [^:)]*[:)]
|
|
183
|
+
)?
|
|
184
|
+
| \*[^\)]*\)?
|
|
185
|
+
)?
|
|
186
|
+
| (?:${y.source})+
|
|
187
|
+
| ${m}
|
|
188
|
+
| .
|
|
189
|
+
`.replace(/\s+/g, ""), "gsu");
|
|
190
|
+
var T = new RegExp(o`
|
|
191
|
+
\\ (?:
|
|
192
|
+
${b}
|
|
193
|
+
| .
|
|
194
|
+
)
|
|
195
|
+
| \[:(?:\^?\p{Alpha}+|\^):\]
|
|
196
|
+
| ${m}
|
|
197
|
+
| &&
|
|
198
|
+
| .
|
|
199
|
+
`.replace(/\s+/g, ""), "gsu");
|
|
200
|
+
function M(e, n = {}) {
|
|
201
|
+
const t = { flags: "", ...n, rules: { captureGroup: false, singleline: false, ...n.rules } };
|
|
202
|
+
if (typeof e != "string") throw new Error("String expected as pattern");
|
|
203
|
+
const o3 = Y(t.flags), s2 = [o3.extended], a2 = { captureGroup: t.rules.captureGroup, getCurrentModX() {
|
|
204
|
+
return s2.at(-1);
|
|
205
|
+
}, numOpenGroups: 0, popModX() {
|
|
206
|
+
s2.pop();
|
|
207
|
+
}, pushModX(u2) {
|
|
208
|
+
s2.push(u2);
|
|
209
|
+
}, replaceCurrentModX(u2) {
|
|
210
|
+
s2[s2.length - 1] = u2;
|
|
211
|
+
}, singleline: t.rules.singleline };
|
|
212
|
+
let r4 = [], i2;
|
|
213
|
+
for (C.lastIndex = 0; i2 = C.exec(e); ) {
|
|
214
|
+
const u2 = F(a2, e, i2[0], C.lastIndex);
|
|
215
|
+
u2.tokens ? r4.push(...u2.tokens) : u2.token && r4.push(u2.token), u2.lastIndex !== void 0 && (C.lastIndex = u2.lastIndex);
|
|
216
|
+
}
|
|
217
|
+
const l3 = [];
|
|
218
|
+
let c = 0;
|
|
219
|
+
r4.filter((u2) => u2.type === "GroupOpen").forEach((u2) => {
|
|
220
|
+
u2.kind === "capturing" ? u2.number = ++c : u2.raw === "(" && l3.push(u2);
|
|
221
|
+
}), c || l3.forEach((u2, S2) => {
|
|
222
|
+
u2.kind = "capturing", u2.number = S2 + 1;
|
|
223
|
+
});
|
|
224
|
+
const g = c || l3.length;
|
|
225
|
+
return { tokens: r4.map((u2) => u2.type === "EscapedNumber" ? ee(u2, g) : u2).flat(), flags: o3 };
|
|
226
|
+
}
|
|
227
|
+
function F(e, n, t, o3) {
|
|
228
|
+
const [s2, a2] = t;
|
|
229
|
+
if (t === "[" || t === "[^") {
|
|
230
|
+
const r4 = K(n, t, o3);
|
|
231
|
+
return { tokens: r4.tokens, lastIndex: r4.lastIndex };
|
|
232
|
+
}
|
|
233
|
+
if (s2 === "\\") {
|
|
234
|
+
if ("AbBGyYzZ".includes(a2)) return { token: w(t, t) };
|
|
235
|
+
if (/^\\g[<']/.test(t)) {
|
|
236
|
+
if (!/^\\g(?:<[^>]+>|'[^']+')$/.test(t)) throw new Error(`Invalid group name "${t}"`);
|
|
237
|
+
return { token: R(t) };
|
|
238
|
+
}
|
|
239
|
+
if (/^\\k[<']/.test(t)) {
|
|
240
|
+
if (!/^\\k(?:<[^>]+>|'[^']+')$/.test(t)) throw new Error(`Invalid group name "${t}"`);
|
|
241
|
+
return { token: A(t) };
|
|
242
|
+
}
|
|
243
|
+
if (a2 === "K") return { token: I("keep", t) };
|
|
244
|
+
if (a2 === "N" || a2 === "R") return { token: k("newline", t, { negate: a2 === "N" }) };
|
|
245
|
+
if (a2 === "O") return { token: k("any", t) };
|
|
246
|
+
if (a2 === "X") return { token: k("text_segment", t) };
|
|
247
|
+
const r4 = x(t, { inCharClass: false });
|
|
248
|
+
return Array.isArray(r4) ? { tokens: r4 } : { token: r4 };
|
|
249
|
+
}
|
|
250
|
+
if (s2 === "(") {
|
|
251
|
+
if (a2 === "*") return { token: j(t) };
|
|
252
|
+
if (t === "(?{") throw new Error(`Unsupported callout "${t}"`);
|
|
253
|
+
if (t.startsWith("(?#")) {
|
|
254
|
+
if (n[o3] !== ")") throw new Error('Unclosed comment group "(?#"');
|
|
255
|
+
return { lastIndex: o3 + 1 };
|
|
256
|
+
}
|
|
257
|
+
if (/^\(\?[-imx]+[:)]$/.test(t)) return { token: L(t, e) };
|
|
258
|
+
if (e.pushModX(e.getCurrentModX()), e.numOpenGroups++, t === "(" && !e.captureGroup || t === "(?:") return { token: f("group", t) };
|
|
259
|
+
if (t === "(?>") return { token: f("atomic", t) };
|
|
260
|
+
if (t === "(?=" || t === "(?!" || t === "(?<=" || t === "(?<!") return { token: f(t[2] === "<" ? "lookbehind" : "lookahead", t, { negate: t.endsWith("!") }) };
|
|
261
|
+
if (t === "(" && e.captureGroup || t.startsWith("(?<") && t.endsWith(">") || t.startsWith("(?'") && t.endsWith("'")) return { token: f("capturing", t, { ...t !== "(" && { name: t.slice(3, -1) } }) };
|
|
262
|
+
if (t.startsWith("(?~")) {
|
|
263
|
+
if (t === "(?~|") throw new Error(`Unsupported absence function kind "${t}"`);
|
|
264
|
+
return { token: f("absence_repeater", t) };
|
|
265
|
+
}
|
|
266
|
+
throw t === "(?(" ? new Error(`Unsupported conditional "${t}"`) : new Error(`Invalid or unsupported group option "${t}"`);
|
|
267
|
+
}
|
|
268
|
+
if (t === ")") {
|
|
269
|
+
if (e.popModX(), e.numOpenGroups--, e.numOpenGroups < 0) throw new Error('Unmatched ")"');
|
|
270
|
+
return { token: Q(t) };
|
|
271
|
+
}
|
|
272
|
+
if (e.getCurrentModX()) {
|
|
273
|
+
if (t === "#") {
|
|
274
|
+
const r4 = n.indexOf(`
|
|
275
|
+
`, o3);
|
|
276
|
+
return { lastIndex: r4 === -1 ? n.length : r4 };
|
|
277
|
+
}
|
|
278
|
+
if (/^\s$/.test(t)) {
|
|
279
|
+
const r4 = /\s+/y;
|
|
280
|
+
return r4.lastIndex = o3, { lastIndex: r4.exec(n) ? r4.lastIndex : o3 };
|
|
281
|
+
}
|
|
282
|
+
}
|
|
283
|
+
if (t === ".") return { token: k("dot", t) };
|
|
284
|
+
if (t === "^" || t === "$") {
|
|
285
|
+
const r4 = e.singleline ? { "^": o`\A`, $: o`\Z` }[t] : t;
|
|
286
|
+
return { token: w(r4, t) };
|
|
287
|
+
}
|
|
288
|
+
return t === "|" ? { token: P(t) } : y.test(t) ? { tokens: te(t) } : { token: d(r2(t), t) };
|
|
289
|
+
}
|
|
290
|
+
function K(e, n, t) {
|
|
291
|
+
const o3 = [E(n[1] === "^", n)];
|
|
292
|
+
let s2 = 1, a2;
|
|
293
|
+
for (T.lastIndex = t; a2 = T.exec(e); ) {
|
|
294
|
+
const r4 = a2[0];
|
|
295
|
+
if (r4[0] === "[" && r4[1] !== ":") s2++, o3.push(E(r4[1] === "^", r4));
|
|
296
|
+
else if (r4 === "]") {
|
|
297
|
+
if (o3.at(-1).type === "CharacterClassOpen") o3.push(d(93, r4));
|
|
298
|
+
else if (s2--, o3.push(z(r4)), !s2) break;
|
|
299
|
+
} else {
|
|
300
|
+
const i2 = X(r4);
|
|
301
|
+
Array.isArray(i2) ? o3.push(...i2) : o3.push(i2);
|
|
302
|
+
}
|
|
303
|
+
}
|
|
304
|
+
return { tokens: o3, lastIndex: T.lastIndex || e.length };
|
|
305
|
+
}
|
|
306
|
+
function X(e) {
|
|
307
|
+
if (e[0] === "\\") return x(e, { inCharClass: true });
|
|
308
|
+
if (e[0] === "[") {
|
|
309
|
+
const n = /\[:(?<negate>\^?)(?<name>[a-z]+):\]/.exec(e);
|
|
310
|
+
if (!n || !i.has(n.groups.name)) throw new Error(`Invalid POSIX class "${e}"`);
|
|
311
|
+
return k("posix", e, { value: n.groups.name, negate: !!n.groups.negate });
|
|
312
|
+
}
|
|
313
|
+
return e === "-" ? U(e) : e === "&&" ? H(e) : d(r2(e), e);
|
|
314
|
+
}
|
|
315
|
+
function x(e, { inCharClass: n }) {
|
|
316
|
+
const t = e[1];
|
|
317
|
+
if (t === "c" || t === "C") return Z(e);
|
|
318
|
+
if ("dDhHsSwW".includes(t)) return q(e);
|
|
319
|
+
if (e.startsWith(o`\o{`)) throw new Error(`Incomplete, invalid, or unsupported octal code point "${e}"`);
|
|
320
|
+
if (/^\\[pP]\{/.test(e)) {
|
|
321
|
+
if (e.length === 3) throw new Error(`Incomplete or invalid Unicode property "${e}"`);
|
|
322
|
+
return V(e);
|
|
323
|
+
}
|
|
324
|
+
if (/^\\x[89A-Fa-f]\p{AHex}/u.test(e)) try {
|
|
325
|
+
const o3 = e.split(/\\x/).slice(1).map((i2) => parseInt(i2, 16)), s2 = new TextDecoder("utf-8", { ignoreBOM: true, fatal: true }).decode(new Uint8Array(o3)), a2 = new TextEncoder();
|
|
326
|
+
return [...s2].map((i2) => {
|
|
327
|
+
const l3 = [...a2.encode(i2)].map((c) => `\\x${c.toString(16)}`).join("");
|
|
328
|
+
return d(r2(i2), l3);
|
|
329
|
+
});
|
|
330
|
+
} catch {
|
|
331
|
+
throw new Error(`Multibyte code "${e}" incomplete or invalid in Oniguruma`);
|
|
332
|
+
}
|
|
333
|
+
if (t === "u" || t === "x") return d(J(e), e);
|
|
334
|
+
if ($.has(t)) return d($.get(t), e);
|
|
335
|
+
if (/\d/.test(t)) return W(n, e);
|
|
336
|
+
if (e === "\\") throw new Error(o`Incomplete escape "\"`);
|
|
337
|
+
if (t === "M") throw new Error(`Unsupported meta "${e}"`);
|
|
338
|
+
if ([...e].length === 2) return d(e.codePointAt(1), e);
|
|
339
|
+
throw new Error(`Unexpected escape "${e}"`);
|
|
340
|
+
}
|
|
341
|
+
function P(e) {
|
|
342
|
+
return { type: "Alternator", raw: e };
|
|
343
|
+
}
|
|
344
|
+
function w(e, n) {
|
|
345
|
+
return { type: "Assertion", kind: e, raw: n };
|
|
346
|
+
}
|
|
347
|
+
function A(e) {
|
|
348
|
+
return { type: "Backreference", raw: e };
|
|
349
|
+
}
|
|
350
|
+
function d(e, n) {
|
|
351
|
+
return { type: "Character", value: e, raw: n };
|
|
352
|
+
}
|
|
353
|
+
function z(e) {
|
|
354
|
+
return { type: "CharacterClassClose", raw: e };
|
|
355
|
+
}
|
|
356
|
+
function U(e) {
|
|
357
|
+
return { type: "CharacterClassHyphen", raw: e };
|
|
358
|
+
}
|
|
359
|
+
function H(e) {
|
|
360
|
+
return { type: "CharacterClassIntersector", raw: e };
|
|
361
|
+
}
|
|
362
|
+
function E(e, n) {
|
|
363
|
+
return { type: "CharacterClassOpen", negate: e, raw: n };
|
|
364
|
+
}
|
|
365
|
+
function k(e, n, t = {}) {
|
|
366
|
+
return { type: "CharacterSet", kind: e, ...t, raw: n };
|
|
367
|
+
}
|
|
368
|
+
function I(e, n, t = {}) {
|
|
369
|
+
return e === "keep" ? { type: "Directive", kind: e, raw: n } : { type: "Directive", kind: e, flags: u(t.flags), raw: n };
|
|
370
|
+
}
|
|
371
|
+
function W(e, n) {
|
|
372
|
+
return { type: "EscapedNumber", inCharClass: e, raw: n };
|
|
373
|
+
}
|
|
374
|
+
function Q(e) {
|
|
375
|
+
return { type: "GroupClose", raw: e };
|
|
376
|
+
}
|
|
377
|
+
function f(e, n, t = {}) {
|
|
378
|
+
return { type: "GroupOpen", kind: e, ...t, raw: n };
|
|
379
|
+
}
|
|
380
|
+
function D(e, n, t, o3) {
|
|
381
|
+
return { type: "NamedCallout", kind: e, tag: n, arguments: t, raw: o3 };
|
|
382
|
+
}
|
|
383
|
+
function _(e, n, t, o3) {
|
|
384
|
+
return { type: "Quantifier", kind: e, min: n, max: t, raw: o3 };
|
|
385
|
+
}
|
|
386
|
+
function R(e) {
|
|
387
|
+
return { type: "Subroutine", raw: e };
|
|
388
|
+
}
|
|
389
|
+
var B = /* @__PURE__ */ new Set(["COUNT", "CMP", "ERROR", "FAIL", "MAX", "MISMATCH", "SKIP", "TOTAL_COUNT"]);
|
|
390
|
+
var $ = /* @__PURE__ */ new Map([["a", 7], ["b", 8], ["e", 27], ["f", 12], ["n", 10], ["r", 13], ["t", 9], ["v", 11]]);
|
|
391
|
+
function Z(e) {
|
|
392
|
+
const n = e[1] === "c" ? e[2] : e[3];
|
|
393
|
+
if (!n || !/[A-Za-z]/.test(n)) throw new Error(`Unsupported control character "${e}"`);
|
|
394
|
+
return d(r2(n.toUpperCase()) - 64, e);
|
|
395
|
+
}
|
|
396
|
+
function L(e, n) {
|
|
397
|
+
let { on: t, off: o3 } = /^\(\?(?<on>[imx]*)(?:-(?<off>[-imx]*))?/.exec(e).groups;
|
|
398
|
+
o3 ??= "";
|
|
399
|
+
const s2 = (n.getCurrentModX() || t.includes("x")) && !o3.includes("x"), a2 = v(t), r4 = v(o3), i2 = {};
|
|
400
|
+
if (a2 && (i2.enable = a2), r4 && (i2.disable = r4), e.endsWith(")")) return n.replaceCurrentModX(s2), I("flags", e, { flags: i2 });
|
|
401
|
+
if (e.endsWith(":")) return n.pushModX(s2), n.numOpenGroups++, f("group", e, { ...(a2 || r4) && { flags: i2 } });
|
|
402
|
+
throw new Error(`Unexpected flag modifier "${e}"`);
|
|
403
|
+
}
|
|
404
|
+
function j(e) {
|
|
405
|
+
const n = /\(\*(?<name>[A-Za-z_]\w*)?(?:\[(?<tag>(?:[A-Za-z_]\w*)?)\])?(?:\{(?<args>[^}]*)\})?\)/.exec(e);
|
|
406
|
+
if (!n) throw new Error(`Incomplete or invalid named callout "${e}"`);
|
|
407
|
+
const { name: t, tag: o3, args: s2 } = n.groups;
|
|
408
|
+
if (!t) throw new Error(`Invalid named callout "${e}"`);
|
|
409
|
+
if (o3 === "") throw new Error(`Named callout tag with empty value not allowed "${e}"`);
|
|
410
|
+
const a2 = s2 ? s2.split(",").filter((g) => g !== "").map((g) => /^[+-]?\d+$/.test(g) ? +g : g) : [], [r4, i2, l3] = a2, c = B.has(t) ? t.toLowerCase() : "custom";
|
|
411
|
+
switch (c) {
|
|
412
|
+
case "fail":
|
|
413
|
+
case "mismatch":
|
|
414
|
+
case "skip":
|
|
415
|
+
if (a2.length > 0) throw new Error(`Named callout arguments not allowed "${a2}"`);
|
|
416
|
+
break;
|
|
417
|
+
case "error":
|
|
418
|
+
if (a2.length > 1) throw new Error(`Named callout allows only one argument "${a2}"`);
|
|
419
|
+
if (typeof r4 == "string") throw new Error(`Named callout argument must be a number "${r4}"`);
|
|
420
|
+
break;
|
|
421
|
+
case "max":
|
|
422
|
+
if (!a2.length || a2.length > 2) throw new Error(`Named callout must have one or two arguments "${a2}"`);
|
|
423
|
+
if (typeof r4 == "string" && !/^[A-Za-z_]\w*$/.test(r4)) throw new Error(`Named callout argument one must be a tag or number "${r4}"`);
|
|
424
|
+
if (a2.length === 2 && (typeof i2 == "number" || !/^[<>X]$/.test(i2))) throw new Error(`Named callout optional argument two must be '<', '>', or 'X' "${i2}"`);
|
|
425
|
+
break;
|
|
426
|
+
case "count":
|
|
427
|
+
case "total_count":
|
|
428
|
+
if (a2.length > 1) throw new Error(`Named callout allows only one argument "${a2}"`);
|
|
429
|
+
if (a2.length === 1 && (typeof r4 == "number" || !/^[<>X]$/.test(r4))) throw new Error(`Named callout optional argument must be '<', '>', or 'X' "${r4}"`);
|
|
430
|
+
break;
|
|
431
|
+
case "cmp":
|
|
432
|
+
if (a2.length !== 3) throw new Error(`Named callout must have three arguments "${a2}"`);
|
|
433
|
+
if (typeof r4 == "string" && !/^[A-Za-z_]\w*$/.test(r4)) throw new Error(`Named callout argument one must be a tag or number "${r4}"`);
|
|
434
|
+
if (typeof i2 == "number" || !/^(?:[<>!=]=|[<>])$/.test(i2)) throw new Error(`Named callout argument two must be '==', '!=', '>', '<', '>=', or '<=' "${i2}"`);
|
|
435
|
+
if (typeof l3 == "string" && !/^[A-Za-z_]\w*$/.test(l3)) throw new Error(`Named callout argument three must be a tag or number "${l3}"`);
|
|
436
|
+
break;
|
|
437
|
+
case "custom":
|
|
438
|
+
throw new Error(`Undefined callout name "${t}"`);
|
|
439
|
+
default:
|
|
440
|
+
throw new Error(`Unexpected named callout kind "${c}"`);
|
|
441
|
+
}
|
|
442
|
+
return D(c, o3 ?? null, s2?.split(",") ?? null, e);
|
|
443
|
+
}
|
|
444
|
+
function O(e) {
|
|
445
|
+
let n = null, t, o3;
|
|
446
|
+
if (e[0] === "{") {
|
|
447
|
+
const { minStr: s2, maxStr: a2 } = /^\{(?<minStr>\d*)(?:,(?<maxStr>\d*))?/.exec(e).groups, r4 = 1e5;
|
|
448
|
+
if (+s2 > r4 || a2 && +a2 > r4) throw new Error("Quantifier value unsupported in Oniguruma");
|
|
449
|
+
if (t = +s2, o3 = a2 === void 0 ? +s2 : a2 === "" ? 1 / 0 : +a2, t > o3 && (n = "possessive", [t, o3] = [o3, t]), e.endsWith("?")) {
|
|
450
|
+
if (n === "possessive") throw new Error('Unsupported possessive interval quantifier chain with "?"');
|
|
451
|
+
n = "lazy";
|
|
452
|
+
} else n || (n = "greedy");
|
|
453
|
+
} else t = e[0] === "+" ? 1 : 0, o3 = e[0] === "?" ? 1 : 1 / 0, n = e[1] === "+" ? "possessive" : e[1] === "?" ? "lazy" : "greedy";
|
|
454
|
+
return _(n, t, o3, e);
|
|
455
|
+
}
|
|
456
|
+
function q(e) {
|
|
457
|
+
const n = e[1].toLowerCase();
|
|
458
|
+
return k({ d: "digit", h: "hex", s: "space", w: "word" }[n], e, { negate: e[1] !== n });
|
|
459
|
+
}
|
|
460
|
+
function V(e) {
|
|
461
|
+
const { p: n, neg: t, value: o3 } = /^\\(?<p>[pP])\{(?<neg>\^?)(?<value>[^}]+)/.exec(e).groups;
|
|
462
|
+
return k("property", e, { value: o3, negate: n === "P" && !t || n === "p" && !!t });
|
|
463
|
+
}
|
|
464
|
+
function v(e) {
|
|
465
|
+
const n = {};
|
|
466
|
+
return e.includes("i") && (n.ignoreCase = true), e.includes("m") && (n.dotAll = true), e.includes("x") && (n.extended = true), Object.keys(n).length ? n : null;
|
|
467
|
+
}
|
|
468
|
+
function Y(e) {
|
|
469
|
+
const n = { ignoreCase: false, dotAll: false, extended: false, digitIsAscii: false, posixIsAscii: false, spaceIsAscii: false, wordIsAscii: false, textSegmentMode: null };
|
|
470
|
+
for (let t = 0; t < e.length; t++) {
|
|
471
|
+
const o3 = e[t];
|
|
472
|
+
if (!"imxDPSWy".includes(o3)) throw new Error(`Invalid flag "${o3}"`);
|
|
473
|
+
if (o3 === "y") {
|
|
474
|
+
if (!/^y{[gw]}/.test(e.slice(t))) throw new Error('Invalid or unspecified flag "y" mode');
|
|
475
|
+
n.textSegmentMode = e[t + 2] === "g" ? "grapheme" : "word", t += 3;
|
|
476
|
+
continue;
|
|
477
|
+
}
|
|
478
|
+
n[{ i: "ignoreCase", m: "dotAll", x: "extended", D: "digitIsAscii", P: "posixIsAscii", S: "spaceIsAscii", W: "wordIsAscii" }[o3]] = true;
|
|
479
|
+
}
|
|
480
|
+
return n;
|
|
481
|
+
}
|
|
482
|
+
function J(e) {
|
|
483
|
+
if (/^(?:\\u(?!\p{AHex}{4})|\\x(?!\p{AHex}{1,2}|\{\p{AHex}{1,8}\}))/u.test(e)) throw new Error(`Incomplete or invalid escape "${e}"`);
|
|
484
|
+
const n = e[2] === "{" ? /^\\x\{\s*(?<hex>\p{AHex}+)/u.exec(e).groups.hex : e.slice(2);
|
|
485
|
+
return parseInt(n, 16);
|
|
486
|
+
}
|
|
487
|
+
function ee(e, n) {
|
|
488
|
+
const { raw: t, inCharClass: o3 } = e, s2 = t.slice(1);
|
|
489
|
+
if (!o3 && (s2 !== "0" && s2.length === 1 || s2[0] !== "0" && +s2 <= n)) return [A(t)];
|
|
490
|
+
const a2 = [], r4 = s2.match(/^[0-7]+|\d/g);
|
|
491
|
+
for (let i2 = 0; i2 < r4.length; i2++) {
|
|
492
|
+
const l3 = r4[i2];
|
|
493
|
+
let c;
|
|
494
|
+
if (i2 === 0 && l3 !== "8" && l3 !== "9") {
|
|
495
|
+
if (c = parseInt(l3, 8), c > 127) throw new Error(o`Octal encoded byte above 177 unsupported "${t}"`);
|
|
496
|
+
} else c = r2(l3);
|
|
497
|
+
a2.push(d(c, (i2 === 0 ? "\\" : "") + l3));
|
|
498
|
+
}
|
|
499
|
+
return a2;
|
|
500
|
+
}
|
|
501
|
+
function te(e) {
|
|
502
|
+
const n = [], t = new RegExp(y, "gy");
|
|
503
|
+
let o3;
|
|
504
|
+
for (; o3 = t.exec(e); ) {
|
|
505
|
+
const s2 = o3[0];
|
|
506
|
+
if (s2[0] === "{") {
|
|
507
|
+
const a2 = /^\{(?<min>\d+),(?<max>\d+)\}\??$/.exec(s2);
|
|
508
|
+
if (a2) {
|
|
509
|
+
const { min: r4, max: i2 } = a2.groups;
|
|
510
|
+
if (+r4 > +i2 && s2.endsWith("?")) {
|
|
511
|
+
t.lastIndex--, n.push(O(s2.slice(0, -1)));
|
|
512
|
+
continue;
|
|
513
|
+
}
|
|
514
|
+
}
|
|
515
|
+
}
|
|
516
|
+
n.push(O(s2));
|
|
517
|
+
}
|
|
518
|
+
return n;
|
|
519
|
+
}
|
|
520
|
+
|
|
521
|
+
// node_modules/.pnpm/oniguruma-parser@0.12.1/node_modules/oniguruma-parser/dist/parser/node-utils.js
|
|
522
|
+
function o2(e, t) {
|
|
523
|
+
if (!Array.isArray(e.body)) throw new Error("Expected node with body array");
|
|
524
|
+
if (e.body.length !== 1) return false;
|
|
525
|
+
const r4 = e.body[0];
|
|
526
|
+
return !t || Object.keys(t).every((n) => t[n] === r4[n]);
|
|
527
|
+
}
|
|
528
|
+
function s(e) {
|
|
529
|
+
return y2.has(e.type);
|
|
530
|
+
}
|
|
531
|
+
var y2 = /* @__PURE__ */ new Set(["AbsenceFunction", "Backreference", "CapturingGroup", "Character", "CharacterClass", "CharacterSet", "Group", "Quantifier", "Subroutine"]);
|
|
532
|
+
|
|
533
|
+
// node_modules/.pnpm/oniguruma-parser@0.12.1/node_modules/oniguruma-parser/dist/parser/parse.js
|
|
534
|
+
function J2(e, r4 = {}) {
|
|
535
|
+
const n = { flags: "", normalizeUnknownPropertyNames: false, skipBackrefValidation: false, skipLookbehindValidation: false, skipPropertyNameValidation: false, unicodePropertyMap: null, ...r4, rules: { captureGroup: false, singleline: false, ...r4.rules } }, t = M(e, { flags: n.flags, rules: { captureGroup: n.rules.captureGroup, singleline: n.rules.singleline } }), s2 = (p, N) => {
|
|
536
|
+
const u2 = t.tokens[o3.nextIndex];
|
|
537
|
+
switch (o3.parent = p, o3.nextIndex++, u2.type) {
|
|
538
|
+
case "Alternator":
|
|
539
|
+
return b2();
|
|
540
|
+
case "Assertion":
|
|
541
|
+
return W2(u2);
|
|
542
|
+
case "Backreference":
|
|
543
|
+
return X2(u2, o3);
|
|
544
|
+
case "Character":
|
|
545
|
+
return m2(u2.value, { useLastValid: !!N.isCheckingRangeEnd });
|
|
546
|
+
case "CharacterClassHyphen":
|
|
547
|
+
return ee2(u2, o3, N);
|
|
548
|
+
case "CharacterClassOpen":
|
|
549
|
+
return re(u2, o3, N);
|
|
550
|
+
case "CharacterSet":
|
|
551
|
+
return ne(u2, o3);
|
|
552
|
+
case "Directive":
|
|
553
|
+
return I2(u2.kind, { flags: u2.flags });
|
|
554
|
+
case "GroupOpen":
|
|
555
|
+
return te2(u2, o3, N);
|
|
556
|
+
case "NamedCallout":
|
|
557
|
+
return U2(u2.kind, u2.tag, u2.arguments);
|
|
558
|
+
case "Quantifier":
|
|
559
|
+
return oe(u2, o3);
|
|
560
|
+
case "Subroutine":
|
|
561
|
+
return ae(u2, o3);
|
|
562
|
+
default:
|
|
563
|
+
throw new Error(`Unexpected token type "${u2.type}"`);
|
|
564
|
+
}
|
|
565
|
+
}, o3 = { capturingGroups: [], hasNumberedRef: false, namedGroupsByName: /* @__PURE__ */ new Map(), nextIndex: 0, normalizeUnknownPropertyNames: n.normalizeUnknownPropertyNames, parent: null, skipBackrefValidation: n.skipBackrefValidation, skipLookbehindValidation: n.skipLookbehindValidation, skipPropertyNameValidation: n.skipPropertyNameValidation, subroutines: [], tokens: t.tokens, unicodePropertyMap: n.unicodePropertyMap, walk: s2 }, i2 = B2(T2(t.flags));
|
|
566
|
+
let d2 = i2.body[0];
|
|
567
|
+
for (; o3.nextIndex < t.tokens.length; ) {
|
|
568
|
+
const p = s2(d2, {});
|
|
569
|
+
p.type === "Alternative" ? (i2.body.push(p), d2 = p) : d2.body.push(p);
|
|
570
|
+
}
|
|
571
|
+
const { capturingGroups: a2, hasNumberedRef: l3, namedGroupsByName: c, subroutines: f3 } = o3;
|
|
572
|
+
if (l3 && c.size && !n.rules.captureGroup) throw new Error("Numbered backref/subroutine not allowed when using named capture");
|
|
573
|
+
for (const { ref: p } of f3) if (typeof p == "number") {
|
|
574
|
+
if (p > a2.length) throw new Error("Subroutine uses a group number that's not defined");
|
|
575
|
+
p && (a2[p - 1].isSubroutined = true);
|
|
576
|
+
} else if (c.has(p)) {
|
|
577
|
+
if (c.get(p).length > 1) throw new Error(o`Subroutine uses a duplicate group name "\g<${p}>"`);
|
|
578
|
+
c.get(p)[0].isSubroutined = true;
|
|
579
|
+
} else throw new Error(o`Subroutine uses a group name that's not defined "\g<${p}>"`);
|
|
580
|
+
return i2;
|
|
581
|
+
}
|
|
582
|
+
function W2({ kind: e }) {
|
|
583
|
+
return F2(u({ "^": "line_start", $: "line_end", "\\A": "string_start", "\\b": "word_boundary", "\\B": "word_boundary", "\\G": "search_start", "\\y": "text_segment_boundary", "\\Y": "text_segment_boundary", "\\z": "string_end", "\\Z": "string_end_newline" }[e], `Unexpected assertion kind "${e}"`), { negate: e === o`\B` || e === o`\Y` });
|
|
584
|
+
}
|
|
585
|
+
function X2({ raw: e }, r4) {
|
|
586
|
+
const n = /^\\k[<']/.test(e), t = n ? e.slice(3, -1) : e.slice(1), s2 = (o3, i2 = false) => {
|
|
587
|
+
const d2 = r4.capturingGroups.length;
|
|
588
|
+
let a2 = false;
|
|
589
|
+
if (o3 > d2) if (r4.skipBackrefValidation) a2 = true;
|
|
590
|
+
else throw new Error(`Not enough capturing groups defined to the left "${e}"`);
|
|
591
|
+
return r4.hasNumberedRef = true, k2(i2 ? d2 + 1 - o3 : o3, { orphan: a2 });
|
|
592
|
+
};
|
|
593
|
+
if (n) {
|
|
594
|
+
const o3 = /^(?<sign>-?)0*(?<num>[1-9]\d*)$/.exec(t);
|
|
595
|
+
if (o3) return s2(+o3.groups.num, !!o3.groups.sign);
|
|
596
|
+
if (/[-+]/.test(t)) throw new Error(`Invalid backref name "${e}"`);
|
|
597
|
+
if (!r4.namedGroupsByName.has(t)) throw new Error(`Group name not defined to the left "${e}"`);
|
|
598
|
+
return k2(t);
|
|
599
|
+
}
|
|
600
|
+
return s2(+t);
|
|
601
|
+
}
|
|
602
|
+
function ee2(e, r4, n) {
|
|
603
|
+
const { tokens: t, walk: s2 } = r4, o3 = r4.parent, i2 = o3.body.at(-1), d2 = t[r4.nextIndex];
|
|
604
|
+
if (!n.isCheckingRangeEnd && i2 && i2.type !== "CharacterClass" && i2.type !== "CharacterClassRange" && d2 && d2.type !== "CharacterClassOpen" && d2.type !== "CharacterClassClose" && d2.type !== "CharacterClassIntersector") {
|
|
605
|
+
const a2 = s2(o3, { ...n, isCheckingRangeEnd: true });
|
|
606
|
+
if (i2.type === "Character" && a2.type === "Character") return o3.body.pop(), L2(i2, a2);
|
|
607
|
+
throw new Error("Invalid character class range");
|
|
608
|
+
}
|
|
609
|
+
return m2(r2("-"));
|
|
610
|
+
}
|
|
611
|
+
function re({ negate: e }, r4, n) {
|
|
612
|
+
const { tokens: t, walk: s2 } = r4, o3 = t[r4.nextIndex], i2 = [C2()];
|
|
613
|
+
let d2 = z2(o3);
|
|
614
|
+
for (; d2.type !== "CharacterClassClose"; ) {
|
|
615
|
+
if (d2.type === "CharacterClassIntersector") i2.push(C2()), r4.nextIndex++;
|
|
616
|
+
else {
|
|
617
|
+
const l3 = i2.at(-1);
|
|
618
|
+
l3.body.push(s2(l3, n));
|
|
619
|
+
}
|
|
620
|
+
d2 = z2(t[r4.nextIndex], o3);
|
|
621
|
+
}
|
|
622
|
+
const a2 = C2({ negate: e });
|
|
623
|
+
return i2.length === 1 ? a2.body = i2[0].body : (a2.kind = "intersection", a2.body = i2.map((l3) => l3.body.length === 1 ? l3.body[0] : l3)), r4.nextIndex++, a2;
|
|
624
|
+
}
|
|
625
|
+
function ne({ kind: e, negate: r4, value: n }, t) {
|
|
626
|
+
const { normalizeUnknownPropertyNames: s2, skipPropertyNameValidation: o3, unicodePropertyMap: i2 } = t;
|
|
627
|
+
if (e === "property") {
|
|
628
|
+
const d2 = w2(n);
|
|
629
|
+
if (i.has(d2) && !i2?.has(d2)) e = "posix", n = d2;
|
|
630
|
+
else return Q2(n, { negate: r4, normalizeUnknownPropertyNames: s2, skipPropertyNameValidation: o3, unicodePropertyMap: i2 });
|
|
631
|
+
}
|
|
632
|
+
return e === "posix" ? R2(n, { negate: r4 }) : E2(e, { negate: r4 });
|
|
633
|
+
}
|
|
634
|
+
function te2(e, r4, n) {
|
|
635
|
+
const { tokens: t, capturingGroups: s2, namedGroupsByName: o3, skipLookbehindValidation: i2, walk: d2 } = r4, a2 = ie(e), l3 = a2.type === "AbsenceFunction", c = $2(a2), f3 = c && a2.negate;
|
|
636
|
+
if (a2.type === "CapturingGroup" && (s2.push(a2), a2.name && l(o3, a2.name, []).push(a2)), l3 && n.isInAbsenceFunction) throw new Error("Nested absence function not supported by Oniguruma");
|
|
637
|
+
let p = D2(t[r4.nextIndex]);
|
|
638
|
+
for (; p.type !== "GroupClose"; ) {
|
|
639
|
+
if (p.type === "Alternator") a2.body.push(b2()), r4.nextIndex++;
|
|
640
|
+
else {
|
|
641
|
+
const N = a2.body.at(-1), u2 = d2(N, { ...n, isInAbsenceFunction: n.isInAbsenceFunction || l3, isInLookbehind: n.isInLookbehind || c, isInNegLookbehind: n.isInNegLookbehind || f3 });
|
|
642
|
+
if (N.body.push(u2), (c || n.isInLookbehind) && !i2) {
|
|
643
|
+
const v2 = "Lookbehind includes a pattern not allowed by Oniguruma";
|
|
644
|
+
if (f3 || n.isInNegLookbehind) {
|
|
645
|
+
if (M2(u2) || u2.type === "CapturingGroup") throw new Error(v2);
|
|
646
|
+
} else if (M2(u2) || $2(u2) && u2.negate) throw new Error(v2);
|
|
647
|
+
}
|
|
648
|
+
}
|
|
649
|
+
p = D2(t[r4.nextIndex]);
|
|
650
|
+
}
|
|
651
|
+
return r4.nextIndex++, a2;
|
|
652
|
+
}
|
|
653
|
+
function oe({ kind: e, min: r4, max: n }, t) {
|
|
654
|
+
const s2 = t.parent, o3 = s2.body.at(-1);
|
|
655
|
+
if (!o3 || !s(o3)) throw new Error("Quantifier requires a repeatable token");
|
|
656
|
+
const i2 = _2(e, r4, n, o3);
|
|
657
|
+
return s2.body.pop(), i2;
|
|
658
|
+
}
|
|
659
|
+
function ae({ raw: e }, r4) {
|
|
660
|
+
const { capturingGroups: n, subroutines: t } = r4;
|
|
661
|
+
let s2 = e.slice(3, -1);
|
|
662
|
+
const o3 = /^(?<sign>[-+]?)0*(?<num>[1-9]\d*)$/.exec(s2);
|
|
663
|
+
if (o3) {
|
|
664
|
+
const d2 = +o3.groups.num, a2 = n.length;
|
|
665
|
+
if (r4.hasNumberedRef = true, s2 = { "": d2, "+": a2 + d2, "-": a2 + 1 - d2 }[o3.groups.sign], s2 < 1) throw new Error("Invalid subroutine number");
|
|
666
|
+
} else s2 === "0" && (s2 = 0);
|
|
667
|
+
const i2 = O2(s2);
|
|
668
|
+
return t.push(i2), i2;
|
|
669
|
+
}
|
|
670
|
+
function G(e, r4) {
|
|
671
|
+
if (e !== "repeater") throw new Error(`Unexpected absence function kind "${e}"`);
|
|
672
|
+
return { type: "AbsenceFunction", kind: e, body: h(r4?.body) };
|
|
673
|
+
}
|
|
674
|
+
function b2(e) {
|
|
675
|
+
return { type: "Alternative", body: V2(e?.body) };
|
|
676
|
+
}
|
|
677
|
+
function F2(e, r4) {
|
|
678
|
+
const n = { type: "Assertion", kind: e };
|
|
679
|
+
return (e === "word_boundary" || e === "text_segment_boundary") && (n.negate = !!r4?.negate), n;
|
|
680
|
+
}
|
|
681
|
+
function k2(e, r4) {
|
|
682
|
+
const n = !!r4?.orphan;
|
|
683
|
+
return { type: "Backreference", ref: e, ...n && { orphan: n } };
|
|
684
|
+
}
|
|
685
|
+
function P2(e, r4) {
|
|
686
|
+
const n = { name: void 0, isSubroutined: false, ...r4 };
|
|
687
|
+
if (n.name !== void 0 && !se(n.name)) throw new Error(`Group name "${n.name}" invalid in Oniguruma`);
|
|
688
|
+
return { type: "CapturingGroup", number: e, ...n.name && { name: n.name }, ...n.isSubroutined && { isSubroutined: n.isSubroutined }, body: h(r4?.body) };
|
|
689
|
+
}
|
|
690
|
+
function m2(e, r4) {
|
|
691
|
+
const n = { useLastValid: false, ...r4 };
|
|
692
|
+
if (e > 1114111) {
|
|
693
|
+
const t = e.toString(16);
|
|
694
|
+
if (n.useLastValid) e = 1114111;
|
|
695
|
+
else throw e > 1310719 ? new Error(`Invalid code point out of range "\\x{${t}}"`) : new Error(`Invalid code point out of range in JS "\\x{${t}}"`);
|
|
696
|
+
}
|
|
697
|
+
return { type: "Character", value: e };
|
|
698
|
+
}
|
|
699
|
+
function C2(e) {
|
|
700
|
+
const r4 = { kind: "union", negate: false, ...e };
|
|
701
|
+
return { type: "CharacterClass", kind: r4.kind, negate: r4.negate, body: V2(e?.body) };
|
|
702
|
+
}
|
|
703
|
+
function L2(e, r4) {
|
|
704
|
+
if (r4.value < e.value) throw new Error("Character class range out of order");
|
|
705
|
+
return { type: "CharacterClassRange", min: e, max: r4 };
|
|
706
|
+
}
|
|
707
|
+
function E2(e, r4) {
|
|
708
|
+
const n = !!r4?.negate, t = { type: "CharacterSet", kind: e };
|
|
709
|
+
return (e === "digit" || e === "hex" || e === "newline" || e === "space" || e === "word") && (t.negate = n), (e === "text_segment" || e === "newline" && !n) && (t.variableLength = true), t;
|
|
710
|
+
}
|
|
711
|
+
function I2(e, r4 = {}) {
|
|
712
|
+
if (e === "keep") return { type: "Directive", kind: e };
|
|
713
|
+
if (e === "flags") return { type: "Directive", kind: e, flags: u(r4.flags) };
|
|
714
|
+
throw new Error(`Unexpected directive kind "${e}"`);
|
|
715
|
+
}
|
|
716
|
+
function T2(e) {
|
|
717
|
+
return { type: "Flags", ...e };
|
|
718
|
+
}
|
|
719
|
+
function A2(e) {
|
|
720
|
+
const r4 = e?.atomic, n = e?.flags;
|
|
721
|
+
if (r4 && n) throw new Error("Atomic group cannot have flags");
|
|
722
|
+
return { type: "Group", ...r4 && { atomic: r4 }, ...n && { flags: n }, body: h(e?.body) };
|
|
723
|
+
}
|
|
724
|
+
function K2(e) {
|
|
725
|
+
const r4 = { behind: false, negate: false, ...e };
|
|
726
|
+
return { type: "LookaroundAssertion", kind: r4.behind ? "lookbehind" : "lookahead", negate: r4.negate, body: h(e?.body) };
|
|
727
|
+
}
|
|
728
|
+
function U2(e, r4, n) {
|
|
729
|
+
return { type: "NamedCallout", kind: e, tag: r4, arguments: n };
|
|
730
|
+
}
|
|
731
|
+
function R2(e, r4) {
|
|
732
|
+
const n = !!r4?.negate;
|
|
733
|
+
if (!i.has(e)) throw new Error(`Invalid POSIX class "${e}"`);
|
|
734
|
+
return { type: "CharacterSet", kind: "posix", value: e, negate: n };
|
|
735
|
+
}
|
|
736
|
+
function _2(e, r4, n, t) {
|
|
737
|
+
if (r4 > n) throw new Error("Invalid reversed quantifier range");
|
|
738
|
+
return { type: "Quantifier", kind: e, min: r4, max: n, body: t };
|
|
739
|
+
}
|
|
740
|
+
function B2(e, r4) {
|
|
741
|
+
return { type: "Regex", body: h(r4?.body), flags: e };
|
|
742
|
+
}
|
|
743
|
+
function O2(e) {
|
|
744
|
+
return { type: "Subroutine", ref: e };
|
|
745
|
+
}
|
|
746
|
+
function Q2(e, r4) {
|
|
747
|
+
const n = { negate: false, normalizeUnknownPropertyNames: false, skipPropertyNameValidation: false, unicodePropertyMap: null, ...r4 };
|
|
748
|
+
let t = n.unicodePropertyMap?.get(w2(e));
|
|
749
|
+
if (!t) {
|
|
750
|
+
if (n.normalizeUnknownPropertyNames) t = de(e);
|
|
751
|
+
else if (n.unicodePropertyMap && !n.skipPropertyNameValidation) throw new Error(o`Invalid Unicode property "\p{${e}}"`);
|
|
752
|
+
}
|
|
753
|
+
return { type: "CharacterSet", kind: "property", value: t ?? e, negate: n.negate };
|
|
754
|
+
}
|
|
755
|
+
function ie({ flags: e, kind: r4, name: n, negate: t, number: s2 }) {
|
|
756
|
+
switch (r4) {
|
|
757
|
+
case "absence_repeater":
|
|
758
|
+
return G("repeater");
|
|
759
|
+
case "atomic":
|
|
760
|
+
return A2({ atomic: true });
|
|
761
|
+
case "capturing":
|
|
762
|
+
return P2(s2, { name: n });
|
|
763
|
+
case "group":
|
|
764
|
+
return A2({ flags: e });
|
|
765
|
+
case "lookahead":
|
|
766
|
+
case "lookbehind":
|
|
767
|
+
return K2({ behind: r4 === "lookbehind", negate: t });
|
|
768
|
+
default:
|
|
769
|
+
throw new Error(`Unexpected group kind "${r4}"`);
|
|
770
|
+
}
|
|
771
|
+
}
|
|
772
|
+
function h(e) {
|
|
773
|
+
if (e === void 0) e = [b2()];
|
|
774
|
+
else if (!Array.isArray(e) || !e.length || !e.every((r4) => r4.type === "Alternative")) throw new Error("Invalid body; expected array of one or more Alternative nodes");
|
|
775
|
+
return e;
|
|
776
|
+
}
|
|
777
|
+
function V2(e) {
|
|
778
|
+
if (e === void 0) e = [];
|
|
779
|
+
else if (!Array.isArray(e) || !e.every((r4) => !!r4.type)) throw new Error("Invalid body; expected array of nodes");
|
|
780
|
+
return e;
|
|
781
|
+
}
|
|
782
|
+
function M2(e) {
|
|
783
|
+
return e.type === "LookaroundAssertion" && e.kind === "lookahead";
|
|
784
|
+
}
|
|
785
|
+
function $2(e) {
|
|
786
|
+
return e.type === "LookaroundAssertion" && e.kind === "lookbehind";
|
|
787
|
+
}
|
|
788
|
+
function se(e) {
|
|
789
|
+
return /^[\p{Alpha}\p{Pc}][^)]*$/u.test(e);
|
|
790
|
+
}
|
|
791
|
+
function de(e) {
|
|
792
|
+
return e.trim().replace(/[- _]+/g, "_").replace(/[A-Z][a-z]+(?=[A-Z])/g, "$&_").replace(/[A-Za-z]+/g, (r4) => r4[0].toUpperCase() + r4.slice(1).toLowerCase());
|
|
793
|
+
}
|
|
794
|
+
function w2(e) {
|
|
795
|
+
return e.replace(/[- _]+/g, "").toLowerCase();
|
|
796
|
+
}
|
|
797
|
+
function z2(e, r4) {
|
|
798
|
+
return u(e, `${r4?.type === "Character" && r4.value === 93 ? "Empty" : "Unclosed"} character class`);
|
|
799
|
+
}
|
|
800
|
+
function D2(e) {
|
|
801
|
+
return u(e, "Unclosed group");
|
|
802
|
+
}
|
|
803
|
+
|
|
804
|
+
// src/unicode.js
|
|
805
|
+
var asciiSpaceChar = "[ -\r ]";
|
|
806
|
+
var CharsWithoutIgnoreCaseExpansion = /* @__PURE__ */ new Set([
|
|
807
|
+
cp(304),
|
|
808
|
+
// İ
|
|
809
|
+
cp(305)
|
|
810
|
+
// ı
|
|
811
|
+
]);
|
|
812
|
+
var defaultWordChar = r`[\p{L}\p{M}\p{N}\p{Pc}]`;
|
|
813
|
+
function getIgnoreCaseMatchChars(char) {
|
|
814
|
+
if (CharsWithoutIgnoreCaseExpansion.has(char)) {
|
|
815
|
+
return [char];
|
|
816
|
+
}
|
|
817
|
+
const set = /* @__PURE__ */ new Set();
|
|
818
|
+
const lower = char.toLowerCase();
|
|
819
|
+
const upper = lower.toUpperCase();
|
|
820
|
+
const title = LowerToTitleCaseMap.get(lower);
|
|
821
|
+
const altLower = LowerToAlternativeLowerCaseMap.get(lower);
|
|
822
|
+
const altUpper = LowerToAlternativeUpperCaseMap.get(lower);
|
|
823
|
+
if ([...upper].length === 1) {
|
|
824
|
+
set.add(upper);
|
|
825
|
+
}
|
|
826
|
+
altUpper && set.add(altUpper);
|
|
827
|
+
title && set.add(title);
|
|
828
|
+
set.add(lower);
|
|
829
|
+
altLower && set.add(altLower);
|
|
830
|
+
return [...set];
|
|
831
|
+
}
|
|
832
|
+
var JsUnicodePropertyMap = /* @__PURE__ */ new Map(
|
|
833
|
+
`C Other
|
|
834
|
+
Cc Control cntrl
|
|
835
|
+
Cf Format
|
|
836
|
+
Cn Unassigned
|
|
837
|
+
Co Private_Use
|
|
838
|
+
Cs Surrogate
|
|
839
|
+
L Letter
|
|
840
|
+
LC Cased_Letter
|
|
841
|
+
Ll Lowercase_Letter
|
|
842
|
+
Lm Modifier_Letter
|
|
843
|
+
Lo Other_Letter
|
|
844
|
+
Lt Titlecase_Letter
|
|
845
|
+
Lu Uppercase_Letter
|
|
846
|
+
M Mark Combining_Mark
|
|
847
|
+
Mc Spacing_Mark
|
|
848
|
+
Me Enclosing_Mark
|
|
849
|
+
Mn Nonspacing_Mark
|
|
850
|
+
N Number
|
|
851
|
+
Nd Decimal_Number digit
|
|
852
|
+
Nl Letter_Number
|
|
853
|
+
No Other_Number
|
|
854
|
+
P Punctuation punct
|
|
855
|
+
Pc Connector_Punctuation
|
|
856
|
+
Pd Dash_Punctuation
|
|
857
|
+
Pe Close_Punctuation
|
|
858
|
+
Pf Final_Punctuation
|
|
859
|
+
Pi Initial_Punctuation
|
|
860
|
+
Po Other_Punctuation
|
|
861
|
+
Ps Open_Punctuation
|
|
862
|
+
S Symbol
|
|
863
|
+
Sc Currency_Symbol
|
|
864
|
+
Sk Modifier_Symbol
|
|
865
|
+
Sm Math_Symbol
|
|
866
|
+
So Other_Symbol
|
|
867
|
+
Z Separator
|
|
868
|
+
Zl Line_Separator
|
|
869
|
+
Zp Paragraph_Separator
|
|
870
|
+
Zs Space_Separator
|
|
871
|
+
ASCII
|
|
872
|
+
ASCII_Hex_Digit AHex
|
|
873
|
+
Alphabetic Alpha
|
|
874
|
+
Any
|
|
875
|
+
Assigned
|
|
876
|
+
Bidi_Control Bidi_C
|
|
877
|
+
Bidi_Mirrored Bidi_M
|
|
878
|
+
Case_Ignorable CI
|
|
879
|
+
Cased
|
|
880
|
+
Changes_When_Casefolded CWCF
|
|
881
|
+
Changes_When_Casemapped CWCM
|
|
882
|
+
Changes_When_Lowercased CWL
|
|
883
|
+
Changes_When_NFKC_Casefolded CWKCF
|
|
884
|
+
Changes_When_Titlecased CWT
|
|
885
|
+
Changes_When_Uppercased CWU
|
|
886
|
+
Dash
|
|
887
|
+
Default_Ignorable_Code_Point DI
|
|
888
|
+
Deprecated Dep
|
|
889
|
+
Diacritic Dia
|
|
890
|
+
Emoji
|
|
891
|
+
Emoji_Component EComp
|
|
892
|
+
Emoji_Modifier EMod
|
|
893
|
+
Emoji_Modifier_Base EBase
|
|
894
|
+
Emoji_Presentation EPres
|
|
895
|
+
Extended_Pictographic ExtPict
|
|
896
|
+
Extender Ext
|
|
897
|
+
Grapheme_Base Gr_Base
|
|
898
|
+
Grapheme_Extend Gr_Ext
|
|
899
|
+
Hex_Digit Hex
|
|
900
|
+
IDS_Binary_Operator IDSB
|
|
901
|
+
IDS_Trinary_Operator IDST
|
|
902
|
+
ID_Continue IDC
|
|
903
|
+
ID_Start IDS
|
|
904
|
+
Ideographic Ideo
|
|
905
|
+
Join_Control Join_C
|
|
906
|
+
Logical_Order_Exception LOE
|
|
907
|
+
Lowercase Lower
|
|
908
|
+
Math
|
|
909
|
+
Noncharacter_Code_Point NChar
|
|
910
|
+
Pattern_Syntax Pat_Syn
|
|
911
|
+
Pattern_White_Space Pat_WS
|
|
912
|
+
Quotation_Mark QMark
|
|
913
|
+
Radical
|
|
914
|
+
Regional_Indicator RI
|
|
915
|
+
Sentence_Terminal STerm
|
|
916
|
+
Soft_Dotted SD
|
|
917
|
+
Terminal_Punctuation Term
|
|
918
|
+
Unified_Ideograph UIdeo
|
|
919
|
+
Uppercase Upper
|
|
920
|
+
Variation_Selector VS
|
|
921
|
+
White_Space space
|
|
922
|
+
XID_Continue XIDC
|
|
923
|
+
XID_Start XIDS`.split(/\s/).map((p) => [w2(p), p])
|
|
924
|
+
);
|
|
925
|
+
var LowerToAlternativeLowerCaseMap = /* @__PURE__ */ new Map([
|
|
926
|
+
["s", cp(383)],
|
|
927
|
+
// s, ſ
|
|
928
|
+
[cp(383), "s"]
|
|
929
|
+
// ſ, s
|
|
930
|
+
]);
|
|
931
|
+
var LowerToAlternativeUpperCaseMap = /* @__PURE__ */ new Map([
|
|
932
|
+
[cp(223), cp(7838)],
|
|
933
|
+
// ß, ẞ
|
|
934
|
+
[cp(107), cp(8490)],
|
|
935
|
+
// k, K (Kelvin)
|
|
936
|
+
[cp(229), cp(8491)],
|
|
937
|
+
// å, Å (Angstrom)
|
|
938
|
+
[cp(969), cp(8486)]
|
|
939
|
+
// ω, Ω (Ohm)
|
|
940
|
+
]);
|
|
941
|
+
var LowerToTitleCaseMap = new Map([
|
|
942
|
+
titleEntry(453),
|
|
943
|
+
titleEntry(456),
|
|
944
|
+
titleEntry(459),
|
|
945
|
+
titleEntry(498),
|
|
946
|
+
...titleRange(8072, 8079),
|
|
947
|
+
...titleRange(8088, 8095),
|
|
948
|
+
...titleRange(8104, 8111),
|
|
949
|
+
titleEntry(8124),
|
|
950
|
+
titleEntry(8140),
|
|
951
|
+
titleEntry(8188)
|
|
952
|
+
]);
|
|
953
|
+
var PosixClassMap = /* @__PURE__ */ new Map([
|
|
954
|
+
["alnum", r`[\p{Alpha}\p{Nd}]`],
|
|
955
|
+
["alpha", r`\p{Alpha}`],
|
|
956
|
+
["ascii", r`\p{ASCII}`],
|
|
957
|
+
["blank", r`[\p{Zs}\t]`],
|
|
958
|
+
["cntrl", r`\p{Cc}`],
|
|
959
|
+
["digit", r`\p{Nd}`],
|
|
960
|
+
["graph", r`[\P{space}&&\P{Cc}&&\P{Cn}&&\P{Cs}]`],
|
|
961
|
+
["lower", r`\p{Lower}`],
|
|
962
|
+
["print", r`[[\P{space}&&\P{Cc}&&\P{Cn}&&\P{Cs}]\p{Zs}]`],
|
|
963
|
+
["punct", r`[\p{P}\p{S}]`],
|
|
964
|
+
// Updated value from Onig 6.9.9; changed from Unicode `\p{punct}`
|
|
965
|
+
["space", r`\p{space}`],
|
|
966
|
+
["upper", r`\p{Upper}`],
|
|
967
|
+
["word", r`[\p{Alpha}\p{M}\p{Nd}\p{Pc}]`],
|
|
968
|
+
["xdigit", r`\p{AHex}`]
|
|
969
|
+
]);
|
|
970
|
+
function range(start, end) {
|
|
971
|
+
const range2 = [];
|
|
972
|
+
for (let i2 = start; i2 <= end; i2++) {
|
|
973
|
+
range2.push(i2);
|
|
974
|
+
}
|
|
975
|
+
return range2;
|
|
976
|
+
}
|
|
977
|
+
function titleEntry(codePoint) {
|
|
978
|
+
const char = cp(codePoint);
|
|
979
|
+
return [char.toLowerCase(), char];
|
|
980
|
+
}
|
|
981
|
+
function titleRange(start, end) {
|
|
982
|
+
return range(start, end).map((codePoint) => titleEntry(codePoint));
|
|
983
|
+
}
|
|
984
|
+
var UnicodePropertiesWithSpecificCase = /* @__PURE__ */ new Set([
|
|
985
|
+
"Lower",
|
|
986
|
+
"Lowercase",
|
|
987
|
+
"Upper",
|
|
988
|
+
"Uppercase",
|
|
989
|
+
"Ll",
|
|
990
|
+
"Lowercase_Letter",
|
|
991
|
+
"Lt",
|
|
992
|
+
"Titlecase_Letter",
|
|
993
|
+
"Lu",
|
|
994
|
+
"Uppercase_Letter"
|
|
995
|
+
// The `Changes_When_*` properties (and their aliases) could be included, but they're very rare.
|
|
996
|
+
// Some other properties include a handful of chars with specific cases only, but these chars are
|
|
997
|
+
// generally extreme edge cases and using such properties case insensitively generally produces
|
|
998
|
+
// undesired behavior anyway
|
|
999
|
+
]);
|
|
1000
|
+
|
|
1001
|
+
// node_modules/.pnpm/oniguruma-parser@0.12.1/node_modules/oniguruma-parser/dist/traverser/traverse.js
|
|
1002
|
+
function S(a2, v2, N = null) {
|
|
1003
|
+
function u2(e, s2) {
|
|
1004
|
+
for (let t = 0; t < e.length; t++) {
|
|
1005
|
+
const r4 = n(e[t], s2, t, e);
|
|
1006
|
+
t = Math.max(-1, t + r4);
|
|
1007
|
+
}
|
|
1008
|
+
}
|
|
1009
|
+
function n(e, s2 = null, t = null, r4 = null) {
|
|
1010
|
+
let i2 = 0, c = false;
|
|
1011
|
+
const d2 = { node: e, parent: s2, key: t, container: r4, root: a2, remove() {
|
|
1012
|
+
f2(r4).splice(Math.max(0, l2(t) + i2), 1), i2--, c = true;
|
|
1013
|
+
}, removeAllNextSiblings() {
|
|
1014
|
+
return f2(r4).splice(l2(t) + 1);
|
|
1015
|
+
}, removeAllPrevSiblings() {
|
|
1016
|
+
const o3 = l2(t) + i2;
|
|
1017
|
+
return i2 -= o3, f2(r4).splice(0, Math.max(0, o3));
|
|
1018
|
+
}, replaceWith(o3, y3 = {}) {
|
|
1019
|
+
const b3 = !!y3.traverse;
|
|
1020
|
+
r4 ? r4[Math.max(0, l2(t) + i2)] = o3 : u(s2, "Can't replace root node")[t] = o3, b3 && n(o3, s2, t, r4), c = true;
|
|
1021
|
+
}, replaceWithMultiple(o3, y3 = {}) {
|
|
1022
|
+
const b3 = !!y3.traverse;
|
|
1023
|
+
if (f2(r4).splice(Math.max(0, l2(t) + i2), 1, ...o3), i2 += o3.length - 1, b3) {
|
|
1024
|
+
let g = 0;
|
|
1025
|
+
for (let x2 = 0; x2 < o3.length; x2++) g += n(o3[x2], s2, l2(t) + x2 + g, r4);
|
|
1026
|
+
}
|
|
1027
|
+
c = true;
|
|
1028
|
+
}, skip() {
|
|
1029
|
+
c = true;
|
|
1030
|
+
} }, { type: m3 } = e, h2 = v2["*"], p = v2[m3], R3 = typeof h2 == "function" ? h2 : h2?.enter, P3 = typeof p == "function" ? p : p?.enter;
|
|
1031
|
+
if (R3?.(d2, N), P3?.(d2, N), !c) switch (m3) {
|
|
1032
|
+
case "AbsenceFunction":
|
|
1033
|
+
case "CapturingGroup":
|
|
1034
|
+
case "Group":
|
|
1035
|
+
u2(e.body, e);
|
|
1036
|
+
break;
|
|
1037
|
+
case "Alternative":
|
|
1038
|
+
case "CharacterClass":
|
|
1039
|
+
u2(e.body, e);
|
|
1040
|
+
break;
|
|
1041
|
+
case "Assertion":
|
|
1042
|
+
case "Backreference":
|
|
1043
|
+
case "Character":
|
|
1044
|
+
case "CharacterSet":
|
|
1045
|
+
case "Directive":
|
|
1046
|
+
case "Flags":
|
|
1047
|
+
case "NamedCallout":
|
|
1048
|
+
case "Subroutine":
|
|
1049
|
+
break;
|
|
1050
|
+
case "CharacterClassRange":
|
|
1051
|
+
n(e.min, e, "min"), n(e.max, e, "max");
|
|
1052
|
+
break;
|
|
1053
|
+
case "LookaroundAssertion":
|
|
1054
|
+
u2(e.body, e);
|
|
1055
|
+
break;
|
|
1056
|
+
case "Quantifier":
|
|
1057
|
+
n(e.body, e, "body");
|
|
1058
|
+
break;
|
|
1059
|
+
case "Regex":
|
|
1060
|
+
u2(e.body, e), n(e.flags, e, "flags");
|
|
1061
|
+
break;
|
|
1062
|
+
default:
|
|
1063
|
+
throw new Error(`Unexpected node type "${m3}"`);
|
|
1064
|
+
}
|
|
1065
|
+
return p?.exit?.(d2, N), h2?.exit?.(d2, N), i2;
|
|
1066
|
+
}
|
|
1067
|
+
return n(a2), a2;
|
|
1068
|
+
}
|
|
1069
|
+
function f2(a2) {
|
|
1070
|
+
if (!Array.isArray(a2)) throw new Error("Container expected");
|
|
1071
|
+
return a2;
|
|
1072
|
+
}
|
|
1073
|
+
function l2(a2) {
|
|
1074
|
+
if (typeof a2 != "number") throw new Error("Numeric key expected");
|
|
1075
|
+
return a2;
|
|
1076
|
+
}
|
|
1077
|
+
|
|
1078
|
+
// src/transform.js
|
|
1079
|
+
function transform(ast, options) {
|
|
1080
|
+
const opts = {
|
|
1081
|
+
// A couple edge cases exist where options `accuracy` and `bestEffortTarget` are used:
|
|
1082
|
+
// - `CharacterSet` kind `text_segment` (`\X`): An exact representation would require heavy
|
|
1083
|
+
// Unicode data; a best-effort approximation requires knowing the target.
|
|
1084
|
+
// - `CharacterSet` kind `posix` with values `graph` and `print`: Their complex Unicode
|
|
1085
|
+
// representations would be hard to change to ASCII versions after the fact in the generator
|
|
1086
|
+
// based on `target`/`accuracy`, so produce the appropriate structure here.
|
|
1087
|
+
accuracy: "default",
|
|
1088
|
+
asciiWordBoundaries: false,
|
|
1089
|
+
avoidSubclass: false,
|
|
1090
|
+
bestEffortTarget: "ES2025",
|
|
1091
|
+
...options
|
|
1092
|
+
};
|
|
1093
|
+
addParentProperties(ast);
|
|
1094
|
+
const firstPassState = {
|
|
1095
|
+
accuracy: opts.accuracy,
|
|
1096
|
+
asciiWordBoundaries: opts.asciiWordBoundaries,
|
|
1097
|
+
avoidSubclass: opts.avoidSubclass,
|
|
1098
|
+
flagDirectivesByAlt: /* @__PURE__ */ new Map(),
|
|
1099
|
+
jsGroupNameMap: /* @__PURE__ */ new Map(),
|
|
1100
|
+
minTargetEs2024: isMinTarget(opts.bestEffortTarget, "ES2024"),
|
|
1101
|
+
passedLookbehind: false,
|
|
1102
|
+
strategy: null,
|
|
1103
|
+
// Subroutines can appear before the groups they ref, so collect reffed nodes for a second pass
|
|
1104
|
+
subroutineRefMap: /* @__PURE__ */ new Map(),
|
|
1105
|
+
supportedGNodes: /* @__PURE__ */ new Set(),
|
|
1106
|
+
digitIsAscii: ast.flags.digitIsAscii,
|
|
1107
|
+
spaceIsAscii: ast.flags.spaceIsAscii,
|
|
1108
|
+
wordIsAscii: ast.flags.wordIsAscii
|
|
1109
|
+
};
|
|
1110
|
+
S(ast, FirstPassVisitor, firstPassState);
|
|
1111
|
+
const globalFlags = {
|
|
1112
|
+
dotAll: ast.flags.dotAll,
|
|
1113
|
+
ignoreCase: ast.flags.ignoreCase
|
|
1114
|
+
};
|
|
1115
|
+
const secondPassState = {
|
|
1116
|
+
currentFlags: globalFlags,
|
|
1117
|
+
prevFlags: null,
|
|
1118
|
+
globalFlags,
|
|
1119
|
+
groupOriginByCopy: /* @__PURE__ */ new Map(),
|
|
1120
|
+
groupsByName: /* @__PURE__ */ new Map(),
|
|
1121
|
+
multiplexCapturesToLeftByRef: /* @__PURE__ */ new Map(),
|
|
1122
|
+
openRefs: /* @__PURE__ */ new Map(),
|
|
1123
|
+
reffedNodesByReferencer: /* @__PURE__ */ new Map(),
|
|
1124
|
+
subroutineRefMap: firstPassState.subroutineRefMap
|
|
1125
|
+
};
|
|
1126
|
+
S(ast, SecondPassVisitor, secondPassState);
|
|
1127
|
+
const thirdPassState = {
|
|
1128
|
+
groupsByName: secondPassState.groupsByName,
|
|
1129
|
+
highestOrphanBackref: 0,
|
|
1130
|
+
numCapturesToLeft: 0,
|
|
1131
|
+
reffedNodesByReferencer: secondPassState.reffedNodesByReferencer
|
|
1132
|
+
};
|
|
1133
|
+
S(ast, ThirdPassVisitor, thirdPassState);
|
|
1134
|
+
ast._originMap = secondPassState.groupOriginByCopy;
|
|
1135
|
+
ast._strategy = firstPassState.strategy;
|
|
1136
|
+
return ast;
|
|
1137
|
+
}
|
|
1138
|
+
var FirstPassVisitor = {
|
|
1139
|
+
AbsenceFunction({ node, parent, replaceWith }) {
|
|
1140
|
+
const { body, kind } = node;
|
|
1141
|
+
if (kind === "repeater") {
|
|
1142
|
+
const innerGroup = A2();
|
|
1143
|
+
innerGroup.body[0].body.push(
|
|
1144
|
+
// Insert own alts as `body`
|
|
1145
|
+
K2({ negate: true, body }),
|
|
1146
|
+
Q2("Any")
|
|
1147
|
+
);
|
|
1148
|
+
const outerGroup = A2();
|
|
1149
|
+
outerGroup.body[0].body.push(
|
|
1150
|
+
_2("greedy", 0, Infinity, innerGroup)
|
|
1151
|
+
);
|
|
1152
|
+
replaceWith(setParentDeep(outerGroup, parent), { traverse: true });
|
|
1153
|
+
} else {
|
|
1154
|
+
throw new Error(`Unsupported absence function "(?~|"`);
|
|
1155
|
+
}
|
|
1156
|
+
},
|
|
1157
|
+
Alternative: {
|
|
1158
|
+
enter({ node, parent, key }, { flagDirectivesByAlt }) {
|
|
1159
|
+
const flagDirectives = node.body.filter((el) => el.kind === "flags");
|
|
1160
|
+
for (let i2 = key + 1; i2 < parent.body.length; i2++) {
|
|
1161
|
+
const forwardSiblingAlt = parent.body[i2];
|
|
1162
|
+
getOrInsert(flagDirectivesByAlt, forwardSiblingAlt, []).push(...flagDirectives);
|
|
1163
|
+
}
|
|
1164
|
+
},
|
|
1165
|
+
exit({ node }, { flagDirectivesByAlt }) {
|
|
1166
|
+
if (flagDirectivesByAlt.get(node)?.length) {
|
|
1167
|
+
const flags = getCombinedFlagModsFromFlagNodes(flagDirectivesByAlt.get(node));
|
|
1168
|
+
if (flags) {
|
|
1169
|
+
const flagGroup = A2({ flags });
|
|
1170
|
+
flagGroup.body[0].body = node.body;
|
|
1171
|
+
node.body = [setParentDeep(flagGroup, node)];
|
|
1172
|
+
}
|
|
1173
|
+
}
|
|
1174
|
+
}
|
|
1175
|
+
},
|
|
1176
|
+
Assertion({ node, parent, key, container, root, remove, replaceWith }, state) {
|
|
1177
|
+
const { kind, negate } = node;
|
|
1178
|
+
const { asciiWordBoundaries, avoidSubclass, supportedGNodes, wordIsAscii } = state;
|
|
1179
|
+
if (kind === "text_segment_boundary") {
|
|
1180
|
+
throw new Error(`Unsupported text segment boundary "\\${negate ? "Y" : "y"}"`);
|
|
1181
|
+
} else if (kind === "line_end") {
|
|
1182
|
+
replaceWith(setParentDeep(K2({ body: [
|
|
1183
|
+
b2({ body: [F2("string_end")] }),
|
|
1184
|
+
b2({ body: [m2(10)] })
|
|
1185
|
+
// `\n`
|
|
1186
|
+
] }), parent));
|
|
1187
|
+
} else if (kind === "line_start") {
|
|
1188
|
+
replaceWith(setParentDeep(parseFragment(r`(?<=\A|\n(?!\z))`, { skipLookbehindValidation: true }), parent));
|
|
1189
|
+
} else if (kind === "search_start") {
|
|
1190
|
+
if (supportedGNodes.has(node)) {
|
|
1191
|
+
root.flags.sticky = true;
|
|
1192
|
+
remove();
|
|
1193
|
+
} else {
|
|
1194
|
+
const prev = container[key - 1];
|
|
1195
|
+
if (prev && isAlwaysNonZeroLength(prev)) {
|
|
1196
|
+
replaceWith(setParentDeep(K2({ negate: true }), parent));
|
|
1197
|
+
} else if (avoidSubclass) {
|
|
1198
|
+
throw new Error(r`Uses "\G" in a way that requires a subclass`);
|
|
1199
|
+
} else {
|
|
1200
|
+
replaceWith(setParent(F2("string_start"), parent));
|
|
1201
|
+
state.strategy = "clip_search";
|
|
1202
|
+
}
|
|
1203
|
+
}
|
|
1204
|
+
} else if (kind === "string_end" || kind === "string_start") {
|
|
1205
|
+
} else if (kind === "string_end_newline") {
|
|
1206
|
+
replaceWith(setParentDeep(parseFragment(r`(?=\n?\z)`), parent));
|
|
1207
|
+
} else if (kind === "word_boundary") {
|
|
1208
|
+
if (!wordIsAscii && !asciiWordBoundaries) {
|
|
1209
|
+
const b3 = `(?:(?<=${defaultWordChar})(?!${defaultWordChar})|(?<!${defaultWordChar})(?=${defaultWordChar}))`;
|
|
1210
|
+
const B3 = `(?:(?<=${defaultWordChar})(?=${defaultWordChar})|(?<!${defaultWordChar})(?!${defaultWordChar}))`;
|
|
1211
|
+
replaceWith(setParentDeep(parseFragment(negate ? B3 : b3), parent));
|
|
1212
|
+
}
|
|
1213
|
+
} else {
|
|
1214
|
+
throw new Error(`Unexpected assertion kind "${kind}"`);
|
|
1215
|
+
}
|
|
1216
|
+
},
|
|
1217
|
+
Backreference({ node }, { jsGroupNameMap }) {
|
|
1218
|
+
let { ref } = node;
|
|
1219
|
+
if (typeof ref === "string" && !isValidJsGroupName(ref)) {
|
|
1220
|
+
ref = getAndStoreJsGroupName(ref, jsGroupNameMap);
|
|
1221
|
+
node.ref = ref;
|
|
1222
|
+
}
|
|
1223
|
+
},
|
|
1224
|
+
CapturingGroup({ node }, { jsGroupNameMap, subroutineRefMap }) {
|
|
1225
|
+
let { name } = node;
|
|
1226
|
+
if (name && !isValidJsGroupName(name)) {
|
|
1227
|
+
name = getAndStoreJsGroupName(name, jsGroupNameMap);
|
|
1228
|
+
node.name = name;
|
|
1229
|
+
}
|
|
1230
|
+
subroutineRefMap.set(node.number, node);
|
|
1231
|
+
if (name) {
|
|
1232
|
+
subroutineRefMap.set(name, node);
|
|
1233
|
+
}
|
|
1234
|
+
},
|
|
1235
|
+
CharacterClassRange({ node, parent, replaceWith }) {
|
|
1236
|
+
if (parent.kind === "intersection") {
|
|
1237
|
+
const cc = C2({ body: [node] });
|
|
1238
|
+
replaceWith(setParentDeep(cc, parent), { traverse: true });
|
|
1239
|
+
}
|
|
1240
|
+
},
|
|
1241
|
+
CharacterSet({ node, parent, replaceWith }, { accuracy, minTargetEs2024, digitIsAscii, spaceIsAscii, wordIsAscii }) {
|
|
1242
|
+
const { kind, negate, value } = node;
|
|
1243
|
+
if (digitIsAscii && (kind === "digit" || value === "digit")) {
|
|
1244
|
+
replaceWith(setParent(E2("digit", { negate }), parent));
|
|
1245
|
+
return;
|
|
1246
|
+
}
|
|
1247
|
+
if (spaceIsAscii && (kind === "space" || value === "space")) {
|
|
1248
|
+
replaceWith(setParentDeep(setNegate(parseFragment(asciiSpaceChar), negate), parent));
|
|
1249
|
+
return;
|
|
1250
|
+
}
|
|
1251
|
+
if (wordIsAscii && (kind === "word" || value === "word")) {
|
|
1252
|
+
replaceWith(setParent(E2("word", { negate }), parent));
|
|
1253
|
+
return;
|
|
1254
|
+
}
|
|
1255
|
+
if (kind === "any") {
|
|
1256
|
+
replaceWith(setParent(Q2("Any"), parent));
|
|
1257
|
+
} else if (kind === "digit") {
|
|
1258
|
+
replaceWith(setParent(Q2("Nd", { negate }), parent));
|
|
1259
|
+
} else if (kind === "dot") {
|
|
1260
|
+
} else if (kind === "text_segment") {
|
|
1261
|
+
if (accuracy === "strict") {
|
|
1262
|
+
throw new Error(r`Use of "\X" requires non-strict accuracy`);
|
|
1263
|
+
}
|
|
1264
|
+
const eBase = "\\p{Emoji}(?:\\p{EMod}|\\uFE0F\\u20E3?|[\\x{E0020}-\\x{E007E}]+\\x{E007F})?";
|
|
1265
|
+
const emoji = r`\p{RI}{2}|${eBase}(?:\u200D${eBase})*`;
|
|
1266
|
+
replaceWith(setParentDeep(parseFragment(
|
|
1267
|
+
// Close approximation of an extended grapheme cluster; see <unicode.org/reports/tr29/>
|
|
1268
|
+
r`(?>\r\n|${minTargetEs2024 ? r`\p{RGI_Emoji}` : emoji}|\P{M}\p{M}*)`,
|
|
1269
|
+
// Allow JS property `RGI_Emoji` through
|
|
1270
|
+
{ skipPropertyNameValidation: true }
|
|
1271
|
+
), parent));
|
|
1272
|
+
} else if (kind === "hex") {
|
|
1273
|
+
replaceWith(setParent(Q2("AHex", { negate }), parent));
|
|
1274
|
+
} else if (kind === "newline") {
|
|
1275
|
+
replaceWith(setParentDeep(parseFragment(negate ? "[^\n]" : "(?>\r\n?|[\n\v\f\x85\u2028\u2029])"), parent));
|
|
1276
|
+
} else if (kind === "posix") {
|
|
1277
|
+
if (!minTargetEs2024 && (value === "graph" || value === "print")) {
|
|
1278
|
+
if (accuracy === "strict") {
|
|
1279
|
+
throw new Error(`POSIX class "${value}" requires min target ES2024 or non-strict accuracy`);
|
|
1280
|
+
}
|
|
1281
|
+
let ascii = {
|
|
1282
|
+
graph: "!-~",
|
|
1283
|
+
print: " -~"
|
|
1284
|
+
}[value];
|
|
1285
|
+
if (negate) {
|
|
1286
|
+
ascii = `\0-${cp(ascii.codePointAt(0) - 1)}${cp(ascii.codePointAt(2) + 1)}-\u{10FFFF}`;
|
|
1287
|
+
}
|
|
1288
|
+
replaceWith(setParentDeep(parseFragment(`[${ascii}]`), parent));
|
|
1289
|
+
} else {
|
|
1290
|
+
replaceWith(setParentDeep(setNegate(parseFragment(PosixClassMap.get(value)), negate), parent));
|
|
1291
|
+
}
|
|
1292
|
+
} else if (kind === "property") {
|
|
1293
|
+
if (!JsUnicodePropertyMap.has(w2(value))) {
|
|
1294
|
+
node.key = "sc";
|
|
1295
|
+
}
|
|
1296
|
+
} else if (kind === "space") {
|
|
1297
|
+
replaceWith(setParent(Q2("space", { negate }), parent));
|
|
1298
|
+
} else if (kind === "word") {
|
|
1299
|
+
replaceWith(setParentDeep(setNegate(parseFragment(defaultWordChar), negate), parent));
|
|
1300
|
+
} else {
|
|
1301
|
+
throw new Error(`Unexpected character set kind "${kind}"`);
|
|
1302
|
+
}
|
|
1303
|
+
},
|
|
1304
|
+
Directive({ node, parent, root, remove, replaceWith, removeAllPrevSiblings, removeAllNextSiblings }) {
|
|
1305
|
+
const { kind, flags } = node;
|
|
1306
|
+
if (kind === "flags") {
|
|
1307
|
+
if (!flags.enable && !flags.disable) {
|
|
1308
|
+
remove();
|
|
1309
|
+
} else {
|
|
1310
|
+
const flagGroup = A2({ flags });
|
|
1311
|
+
flagGroup.body[0].body = removeAllNextSiblings();
|
|
1312
|
+
replaceWith(setParentDeep(flagGroup, parent), { traverse: true });
|
|
1313
|
+
}
|
|
1314
|
+
} else if (kind === "keep") {
|
|
1315
|
+
const firstAlt = root.body[0];
|
|
1316
|
+
const hasWrapperGroup = root.body.length === 1 && // Not emulatable if within a `CapturingGroup`
|
|
1317
|
+
o2(firstAlt, { type: "Group" }) && firstAlt.body[0].body.length === 1;
|
|
1318
|
+
const topLevel = hasWrapperGroup ? firstAlt.body[0] : root;
|
|
1319
|
+
if (parent.parent !== topLevel || topLevel.body.length > 1) {
|
|
1320
|
+
throw new Error(r`Uses "\K" in a way that's unsupported`);
|
|
1321
|
+
}
|
|
1322
|
+
const lookbehind = K2({ behind: true });
|
|
1323
|
+
lookbehind.body[0].body = removeAllPrevSiblings();
|
|
1324
|
+
replaceWith(setParentDeep(lookbehind, parent));
|
|
1325
|
+
} else {
|
|
1326
|
+
throw new Error(`Unexpected directive kind "${kind}"`);
|
|
1327
|
+
}
|
|
1328
|
+
},
|
|
1329
|
+
Flags({ node, parent }) {
|
|
1330
|
+
if (node.posixIsAscii) {
|
|
1331
|
+
throw new Error('Unsupported flag "P"');
|
|
1332
|
+
}
|
|
1333
|
+
if (node.textSegmentMode === "word") {
|
|
1334
|
+
throw new Error('Unsupported flag "y{w}"');
|
|
1335
|
+
}
|
|
1336
|
+
[
|
|
1337
|
+
"digitIsAscii",
|
|
1338
|
+
// Flag D
|
|
1339
|
+
"extended",
|
|
1340
|
+
// Flag x
|
|
1341
|
+
"posixIsAscii",
|
|
1342
|
+
// Flag P
|
|
1343
|
+
"spaceIsAscii",
|
|
1344
|
+
// Flag S
|
|
1345
|
+
"wordIsAscii",
|
|
1346
|
+
// Flag W
|
|
1347
|
+
"textSegmentMode"
|
|
1348
|
+
// Flag y{g} or y{w}
|
|
1349
|
+
].forEach((f3) => delete node[f3]);
|
|
1350
|
+
Object.assign(node, {
|
|
1351
|
+
// JS flag g; no Onig equiv
|
|
1352
|
+
global: false,
|
|
1353
|
+
// JS flag d; no Onig equiv
|
|
1354
|
+
hasIndices: false,
|
|
1355
|
+
// JS flag m; no Onig equiv but its behavior is always on in Onig. Onig's only line break
|
|
1356
|
+
// char is line feed, unlike JS, so this flag isn't used since it would produce inaccurate
|
|
1357
|
+
// results (also allows `^` and `$` to be used in the generator for string start and end)
|
|
1358
|
+
multiline: false,
|
|
1359
|
+
// JS flag y; no Onig equiv, but used for `\G` emulation
|
|
1360
|
+
sticky: node.sticky ?? false
|
|
1361
|
+
// Note: Regex+ doesn't allow explicitly adding flags it handles implicitly, so leave out
|
|
1362
|
+
// properties `unicode` (JS flag u) and `unicodeSets` (JS flag v). Keep the existing values
|
|
1363
|
+
// for `ignoreCase` (flag i) and `dotAll` (JS flag s, but Onig flag m)
|
|
1364
|
+
});
|
|
1365
|
+
parent.options = {
|
|
1366
|
+
disable: {
|
|
1367
|
+
// Onig uses different rules for flag x than Regex+, so disable the implicit flag
|
|
1368
|
+
x: true,
|
|
1369
|
+
// Onig has no flag to control "named capture only" mode but contextually applies its
|
|
1370
|
+
// behavior when named capturing is used, so disable Regex+'s implicit flag for it
|
|
1371
|
+
n: true
|
|
1372
|
+
},
|
|
1373
|
+
force: {
|
|
1374
|
+
// Always add flag v because we're generating an AST that relies on it (it enables JS
|
|
1375
|
+
// support for Onig features nested classes, intersection, Unicode properties, etc.).
|
|
1376
|
+
// However, the generator might disable flag v based on its `target` option
|
|
1377
|
+
v: true
|
|
1378
|
+
}
|
|
1379
|
+
};
|
|
1380
|
+
},
|
|
1381
|
+
Group({ node }) {
|
|
1382
|
+
if (!node.flags) {
|
|
1383
|
+
return;
|
|
1384
|
+
}
|
|
1385
|
+
const { enable, disable } = node.flags;
|
|
1386
|
+
enable?.extended && delete enable.extended;
|
|
1387
|
+
disable?.extended && delete disable.extended;
|
|
1388
|
+
enable?.dotAll && disable?.dotAll && delete enable.dotAll;
|
|
1389
|
+
enable?.ignoreCase && disable?.ignoreCase && delete enable.ignoreCase;
|
|
1390
|
+
enable && !Object.keys(enable).length && delete node.flags.enable;
|
|
1391
|
+
disable && !Object.keys(disable).length && delete node.flags.disable;
|
|
1392
|
+
!node.flags.enable && !node.flags.disable && delete node.flags;
|
|
1393
|
+
},
|
|
1394
|
+
LookaroundAssertion({ node }, state) {
|
|
1395
|
+
const { kind } = node;
|
|
1396
|
+
if (kind === "lookbehind") {
|
|
1397
|
+
state.passedLookbehind = true;
|
|
1398
|
+
}
|
|
1399
|
+
},
|
|
1400
|
+
NamedCallout({ node, parent, replaceWith }) {
|
|
1401
|
+
const { kind } = node;
|
|
1402
|
+
if (kind === "fail") {
|
|
1403
|
+
replaceWith(setParentDeep(K2({ negate: true }), parent));
|
|
1404
|
+
} else {
|
|
1405
|
+
throw new Error(`Unsupported named callout "(*${kind.toUpperCase()}"`);
|
|
1406
|
+
}
|
|
1407
|
+
},
|
|
1408
|
+
Quantifier({ node }) {
|
|
1409
|
+
if (node.body.type === "Quantifier") {
|
|
1410
|
+
const group = A2();
|
|
1411
|
+
group.body[0].body.push(node.body);
|
|
1412
|
+
node.body = setParentDeep(group, node);
|
|
1413
|
+
}
|
|
1414
|
+
},
|
|
1415
|
+
Regex: {
|
|
1416
|
+
enter({ node }, { supportedGNodes }) {
|
|
1417
|
+
const leadingGs = [];
|
|
1418
|
+
let hasAltWithLeadG = false;
|
|
1419
|
+
let hasAltWithoutLeadG = false;
|
|
1420
|
+
for (const alt of node.body) {
|
|
1421
|
+
if (alt.body.length === 1 && alt.body[0].kind === "search_start") {
|
|
1422
|
+
alt.body.pop();
|
|
1423
|
+
} else {
|
|
1424
|
+
const leadingG = getLeadingG(alt.body);
|
|
1425
|
+
if (leadingG) {
|
|
1426
|
+
hasAltWithLeadG = true;
|
|
1427
|
+
Array.isArray(leadingG) ? leadingGs.push(...leadingG) : leadingGs.push(leadingG);
|
|
1428
|
+
} else {
|
|
1429
|
+
hasAltWithoutLeadG = true;
|
|
1430
|
+
}
|
|
1431
|
+
}
|
|
1432
|
+
}
|
|
1433
|
+
if (hasAltWithLeadG && !hasAltWithoutLeadG) {
|
|
1434
|
+
leadingGs.forEach((g) => supportedGNodes.add(g));
|
|
1435
|
+
}
|
|
1436
|
+
},
|
|
1437
|
+
exit(_3, { accuracy, passedLookbehind, strategy }) {
|
|
1438
|
+
if (accuracy === "strict" && passedLookbehind && strategy) {
|
|
1439
|
+
throw new Error(r`Uses "\G" in a way that requires non-strict accuracy`);
|
|
1440
|
+
}
|
|
1441
|
+
}
|
|
1442
|
+
},
|
|
1443
|
+
Subroutine({ node }, { jsGroupNameMap }) {
|
|
1444
|
+
let { ref } = node;
|
|
1445
|
+
if (typeof ref === "string" && !isValidJsGroupName(ref)) {
|
|
1446
|
+
ref = getAndStoreJsGroupName(ref, jsGroupNameMap);
|
|
1447
|
+
node.ref = ref;
|
|
1448
|
+
}
|
|
1449
|
+
}
|
|
1450
|
+
};
|
|
1451
|
+
var SecondPassVisitor = {
|
|
1452
|
+
Backreference({ node }, { multiplexCapturesToLeftByRef, reffedNodesByReferencer }) {
|
|
1453
|
+
const { orphan, ref } = node;
|
|
1454
|
+
if (!orphan) {
|
|
1455
|
+
reffedNodesByReferencer.set(node, [...multiplexCapturesToLeftByRef.get(ref).map(({ node: node2 }) => node2)]);
|
|
1456
|
+
}
|
|
1457
|
+
},
|
|
1458
|
+
CapturingGroup: {
|
|
1459
|
+
enter({
|
|
1460
|
+
node,
|
|
1461
|
+
parent,
|
|
1462
|
+
replaceWith,
|
|
1463
|
+
skip
|
|
1464
|
+
}, {
|
|
1465
|
+
groupOriginByCopy,
|
|
1466
|
+
groupsByName,
|
|
1467
|
+
multiplexCapturesToLeftByRef,
|
|
1468
|
+
openRefs,
|
|
1469
|
+
reffedNodesByReferencer
|
|
1470
|
+
}) {
|
|
1471
|
+
const origin = groupOriginByCopy.get(node);
|
|
1472
|
+
if (origin && openRefs.has(node.number)) {
|
|
1473
|
+
const recursion2 = setParent(createRecursion(node.number), parent);
|
|
1474
|
+
reffedNodesByReferencer.set(recursion2, openRefs.get(node.number));
|
|
1475
|
+
replaceWith(recursion2);
|
|
1476
|
+
return;
|
|
1477
|
+
}
|
|
1478
|
+
openRefs.set(node.number, node);
|
|
1479
|
+
multiplexCapturesToLeftByRef.set(node.number, []);
|
|
1480
|
+
if (node.name) {
|
|
1481
|
+
getOrInsert(multiplexCapturesToLeftByRef, node.name, []);
|
|
1482
|
+
}
|
|
1483
|
+
const multiplexNodes = multiplexCapturesToLeftByRef.get(node.name ?? node.number);
|
|
1484
|
+
for (let i2 = 0; i2 < multiplexNodes.length; i2++) {
|
|
1485
|
+
const multiplex = multiplexNodes[i2];
|
|
1486
|
+
if (
|
|
1487
|
+
// This group is from subroutine expansion, and there's a multiplex value from either the
|
|
1488
|
+
// origin node or a prior subroutine expansion group with the same origin
|
|
1489
|
+
origin === multiplex.node || origin && origin === multiplex.origin || // This group is not from subroutine expansion, and it comes after a subroutine expansion
|
|
1490
|
+
// group that refers to this group
|
|
1491
|
+
node === multiplex.origin
|
|
1492
|
+
) {
|
|
1493
|
+
multiplexNodes.splice(i2, 1);
|
|
1494
|
+
break;
|
|
1495
|
+
}
|
|
1496
|
+
}
|
|
1497
|
+
multiplexCapturesToLeftByRef.get(node.number).push({ node, origin });
|
|
1498
|
+
if (node.name) {
|
|
1499
|
+
multiplexCapturesToLeftByRef.get(node.name).push({ node, origin });
|
|
1500
|
+
}
|
|
1501
|
+
if (node.name) {
|
|
1502
|
+
const groupsWithSameName = getOrInsert(groupsByName, node.name, /* @__PURE__ */ new Map());
|
|
1503
|
+
let hasDuplicateNameToRemove = false;
|
|
1504
|
+
if (origin) {
|
|
1505
|
+
hasDuplicateNameToRemove = true;
|
|
1506
|
+
} else {
|
|
1507
|
+
for (const groupInfo of groupsWithSameName.values()) {
|
|
1508
|
+
if (!groupInfo.hasDuplicateNameToRemove) {
|
|
1509
|
+
hasDuplicateNameToRemove = true;
|
|
1510
|
+
break;
|
|
1511
|
+
}
|
|
1512
|
+
}
|
|
1513
|
+
}
|
|
1514
|
+
groupsByName.get(node.name).set(node, { node, hasDuplicateNameToRemove });
|
|
1515
|
+
}
|
|
1516
|
+
},
|
|
1517
|
+
exit({ node }, { openRefs }) {
|
|
1518
|
+
openRefs.delete(node.number);
|
|
1519
|
+
}
|
|
1520
|
+
},
|
|
1521
|
+
Group: {
|
|
1522
|
+
enter({ node }, state) {
|
|
1523
|
+
state.prevFlags = state.currentFlags;
|
|
1524
|
+
if (node.flags) {
|
|
1525
|
+
state.currentFlags = getNewCurrentFlags(state.currentFlags, node.flags);
|
|
1526
|
+
}
|
|
1527
|
+
},
|
|
1528
|
+
exit(_3, state) {
|
|
1529
|
+
state.currentFlags = state.prevFlags;
|
|
1530
|
+
}
|
|
1531
|
+
},
|
|
1532
|
+
Subroutine({ node, parent, replaceWith }, state) {
|
|
1533
|
+
const { isRecursive, ref } = node;
|
|
1534
|
+
if (isRecursive) {
|
|
1535
|
+
let reffed = parent;
|
|
1536
|
+
while (reffed = reffed.parent) {
|
|
1537
|
+
if (reffed.type === "CapturingGroup" && (reffed.name === ref || reffed.number === ref)) {
|
|
1538
|
+
break;
|
|
1539
|
+
}
|
|
1540
|
+
}
|
|
1541
|
+
state.reffedNodesByReferencer.set(node, reffed);
|
|
1542
|
+
return;
|
|
1543
|
+
}
|
|
1544
|
+
const reffedGroupNode = state.subroutineRefMap.get(ref);
|
|
1545
|
+
const isGlobalRecursion = ref === 0;
|
|
1546
|
+
const expandedSubroutine = isGlobalRecursion ? createRecursion(0) : (
|
|
1547
|
+
// The reffed group might itself contain subroutines, which are expanded during sub-traversal
|
|
1548
|
+
cloneCapturingGroup(reffedGroupNode, state.groupOriginByCopy, null)
|
|
1549
|
+
);
|
|
1550
|
+
let replacement = expandedSubroutine;
|
|
1551
|
+
if (!isGlobalRecursion) {
|
|
1552
|
+
const reffedGroupFlagMods = getCombinedFlagModsFromFlagNodes(getAllParents(
|
|
1553
|
+
reffedGroupNode,
|
|
1554
|
+
(p) => p.type === "Group" && !!p.flags
|
|
1555
|
+
));
|
|
1556
|
+
const reffedGroupFlags = reffedGroupFlagMods ? getNewCurrentFlags(state.globalFlags, reffedGroupFlagMods) : state.globalFlags;
|
|
1557
|
+
if (!areFlagsEqual(reffedGroupFlags, state.currentFlags)) {
|
|
1558
|
+
replacement = A2({
|
|
1559
|
+
flags: getFlagModsFromFlags(reffedGroupFlags)
|
|
1560
|
+
});
|
|
1561
|
+
replacement.body[0].body.push(expandedSubroutine);
|
|
1562
|
+
}
|
|
1563
|
+
}
|
|
1564
|
+
replaceWith(setParentDeep(replacement, parent), { traverse: !isGlobalRecursion });
|
|
1565
|
+
}
|
|
1566
|
+
};
|
|
1567
|
+
var ThirdPassVisitor = {
|
|
1568
|
+
Backreference({ node, parent, replaceWith }, state) {
|
|
1569
|
+
if (node.orphan) {
|
|
1570
|
+
state.highestOrphanBackref = Math.max(state.highestOrphanBackref, node.ref);
|
|
1571
|
+
return;
|
|
1572
|
+
}
|
|
1573
|
+
const reffedNodes = state.reffedNodesByReferencer.get(node);
|
|
1574
|
+
const participants = reffedNodes.filter((reffed) => canParticipateWithNode(reffed, node));
|
|
1575
|
+
if (!participants.length) {
|
|
1576
|
+
replaceWith(setParentDeep(K2({ negate: true }), parent));
|
|
1577
|
+
} else if (participants.length > 1) {
|
|
1578
|
+
const group = A2({
|
|
1579
|
+
atomic: true,
|
|
1580
|
+
body: participants.reverse().map((reffed) => b2({
|
|
1581
|
+
body: [k2(reffed.number)]
|
|
1582
|
+
}))
|
|
1583
|
+
});
|
|
1584
|
+
replaceWith(setParentDeep(group, parent));
|
|
1585
|
+
} else {
|
|
1586
|
+
node.ref = participants[0].number;
|
|
1587
|
+
}
|
|
1588
|
+
},
|
|
1589
|
+
CapturingGroup({ node }, state) {
|
|
1590
|
+
node.number = ++state.numCapturesToLeft;
|
|
1591
|
+
if (node.name) {
|
|
1592
|
+
if (state.groupsByName.get(node.name).get(node).hasDuplicateNameToRemove) {
|
|
1593
|
+
delete node.name;
|
|
1594
|
+
}
|
|
1595
|
+
}
|
|
1596
|
+
},
|
|
1597
|
+
Regex: {
|
|
1598
|
+
exit({ node }, state) {
|
|
1599
|
+
const numCapsNeeded = Math.max(state.highestOrphanBackref - state.numCapturesToLeft, 0);
|
|
1600
|
+
for (let i2 = 0; i2 < numCapsNeeded; i2++) {
|
|
1601
|
+
const emptyCapture = P2();
|
|
1602
|
+
node.body.at(-1).body.push(emptyCapture);
|
|
1603
|
+
}
|
|
1604
|
+
}
|
|
1605
|
+
},
|
|
1606
|
+
Subroutine({ node }, state) {
|
|
1607
|
+
if (!node.isRecursive || node.ref === 0) {
|
|
1608
|
+
return;
|
|
1609
|
+
}
|
|
1610
|
+
node.ref = state.reffedNodesByReferencer.get(node).number;
|
|
1611
|
+
}
|
|
1612
|
+
};
|
|
1613
|
+
function addParentProperties(root) {
|
|
1614
|
+
S(root, {
|
|
1615
|
+
"*"({ node, parent }) {
|
|
1616
|
+
node.parent = parent;
|
|
1617
|
+
}
|
|
1618
|
+
});
|
|
1619
|
+
}
|
|
1620
|
+
function areFlagsEqual(a2, b3) {
|
|
1621
|
+
return a2.dotAll === b3.dotAll && a2.ignoreCase === b3.ignoreCase;
|
|
1622
|
+
}
|
|
1623
|
+
function canParticipateWithNode(capture, node) {
|
|
1624
|
+
let rightmostPoint = node;
|
|
1625
|
+
do {
|
|
1626
|
+
if (rightmostPoint.type === "Regex") {
|
|
1627
|
+
return false;
|
|
1628
|
+
}
|
|
1629
|
+
if (rightmostPoint.type === "Alternative") {
|
|
1630
|
+
continue;
|
|
1631
|
+
}
|
|
1632
|
+
if (rightmostPoint === capture) {
|
|
1633
|
+
return false;
|
|
1634
|
+
}
|
|
1635
|
+
const kidsOfParent = getKids(rightmostPoint.parent);
|
|
1636
|
+
for (const kid of kidsOfParent) {
|
|
1637
|
+
if (kid === rightmostPoint) {
|
|
1638
|
+
break;
|
|
1639
|
+
}
|
|
1640
|
+
if (kid === capture || isAncestorOf(kid, capture)) {
|
|
1641
|
+
return true;
|
|
1642
|
+
}
|
|
1643
|
+
}
|
|
1644
|
+
} while (rightmostPoint = rightmostPoint.parent);
|
|
1645
|
+
throw new Error("Unexpected path");
|
|
1646
|
+
}
|
|
1647
|
+
function cloneCapturingGroup(obj, originMap, up, up2) {
|
|
1648
|
+
const store = Array.isArray(obj) ? [] : {};
|
|
1649
|
+
for (const [key, value] of Object.entries(obj)) {
|
|
1650
|
+
if (key === "parent") {
|
|
1651
|
+
store.parent = Array.isArray(up) ? up2 : up;
|
|
1652
|
+
} else if (value && typeof value === "object") {
|
|
1653
|
+
store[key] = cloneCapturingGroup(value, originMap, store, up);
|
|
1654
|
+
} else {
|
|
1655
|
+
if (key === "type" && value === "CapturingGroup") {
|
|
1656
|
+
originMap.set(store, originMap.get(obj) ?? obj);
|
|
1657
|
+
}
|
|
1658
|
+
store[key] = value;
|
|
1659
|
+
}
|
|
1660
|
+
}
|
|
1661
|
+
return store;
|
|
1662
|
+
}
|
|
1663
|
+
function createRecursion(ref) {
|
|
1664
|
+
const node = O2(ref);
|
|
1665
|
+
node.isRecursive = true;
|
|
1666
|
+
return node;
|
|
1667
|
+
}
|
|
1668
|
+
function getAllParents(node, filterFn) {
|
|
1669
|
+
const results = [];
|
|
1670
|
+
while (node = node.parent) {
|
|
1671
|
+
if (!filterFn || filterFn(node)) {
|
|
1672
|
+
results.push(node);
|
|
1673
|
+
}
|
|
1674
|
+
}
|
|
1675
|
+
return results;
|
|
1676
|
+
}
|
|
1677
|
+
function getAndStoreJsGroupName(name, map) {
|
|
1678
|
+
if (map.has(name)) {
|
|
1679
|
+
return map.get(name);
|
|
1680
|
+
}
|
|
1681
|
+
const jsName = `$${map.size}_${name.replace(/^[^$_\p{IDS}]|[^$\u200C\u200D\p{IDC}]/ug, "_")}`;
|
|
1682
|
+
map.set(name, jsName);
|
|
1683
|
+
return jsName;
|
|
1684
|
+
}
|
|
1685
|
+
function getCombinedFlagModsFromFlagNodes(flagNodes) {
|
|
1686
|
+
const flagProps = ["dotAll", "ignoreCase"];
|
|
1687
|
+
const combinedFlags = { enable: {}, disable: {} };
|
|
1688
|
+
flagNodes.forEach(({ flags }) => {
|
|
1689
|
+
flagProps.forEach((prop) => {
|
|
1690
|
+
if (flags.enable?.[prop]) {
|
|
1691
|
+
delete combinedFlags.disable[prop];
|
|
1692
|
+
combinedFlags.enable[prop] = true;
|
|
1693
|
+
}
|
|
1694
|
+
if (flags.disable?.[prop]) {
|
|
1695
|
+
combinedFlags.disable[prop] = true;
|
|
1696
|
+
}
|
|
1697
|
+
});
|
|
1698
|
+
});
|
|
1699
|
+
if (!Object.keys(combinedFlags.enable).length) {
|
|
1700
|
+
delete combinedFlags.enable;
|
|
1701
|
+
}
|
|
1702
|
+
if (!Object.keys(combinedFlags.disable).length) {
|
|
1703
|
+
delete combinedFlags.disable;
|
|
1704
|
+
}
|
|
1705
|
+
if (combinedFlags.enable || combinedFlags.disable) {
|
|
1706
|
+
return combinedFlags;
|
|
1707
|
+
}
|
|
1708
|
+
return null;
|
|
1709
|
+
}
|
|
1710
|
+
function getFlagModsFromFlags({ dotAll, ignoreCase }) {
|
|
1711
|
+
const mods = {};
|
|
1712
|
+
if (dotAll || ignoreCase) {
|
|
1713
|
+
mods.enable = {};
|
|
1714
|
+
dotAll && (mods.enable.dotAll = true);
|
|
1715
|
+
ignoreCase && (mods.enable.ignoreCase = true);
|
|
1716
|
+
}
|
|
1717
|
+
if (!dotAll || !ignoreCase) {
|
|
1718
|
+
mods.disable = {};
|
|
1719
|
+
!dotAll && (mods.disable.dotAll = true);
|
|
1720
|
+
!ignoreCase && (mods.disable.ignoreCase = true);
|
|
1721
|
+
}
|
|
1722
|
+
return mods;
|
|
1723
|
+
}
|
|
1724
|
+
function getKids(node) {
|
|
1725
|
+
if (!node) {
|
|
1726
|
+
throw new Error("Node expected");
|
|
1727
|
+
}
|
|
1728
|
+
const { body } = node;
|
|
1729
|
+
return Array.isArray(body) ? body : body ? [body] : null;
|
|
1730
|
+
}
|
|
1731
|
+
function getLeadingG(els) {
|
|
1732
|
+
const firstToConsider = els.find((el) => el.kind === "search_start" || isLoneGLookaround(el, { negate: false }) || !isAlwaysZeroLength(el));
|
|
1733
|
+
if (!firstToConsider) {
|
|
1734
|
+
return null;
|
|
1735
|
+
}
|
|
1736
|
+
if (firstToConsider.kind === "search_start") {
|
|
1737
|
+
return firstToConsider;
|
|
1738
|
+
}
|
|
1739
|
+
if (firstToConsider.type === "LookaroundAssertion") {
|
|
1740
|
+
return firstToConsider.body[0].body[0];
|
|
1741
|
+
}
|
|
1742
|
+
if (firstToConsider.type === "CapturingGroup" || firstToConsider.type === "Group") {
|
|
1743
|
+
const gNodesForGroup = [];
|
|
1744
|
+
for (const alt of firstToConsider.body) {
|
|
1745
|
+
const leadingG = getLeadingG(alt.body);
|
|
1746
|
+
if (!leadingG) {
|
|
1747
|
+
return null;
|
|
1748
|
+
}
|
|
1749
|
+
Array.isArray(leadingG) ? gNodesForGroup.push(...leadingG) : gNodesForGroup.push(leadingG);
|
|
1750
|
+
}
|
|
1751
|
+
return gNodesForGroup;
|
|
1752
|
+
}
|
|
1753
|
+
return null;
|
|
1754
|
+
}
|
|
1755
|
+
function isAncestorOf(node, descendant) {
|
|
1756
|
+
const kids = getKids(node) ?? [];
|
|
1757
|
+
for (const kid of kids) {
|
|
1758
|
+
if (kid === descendant || isAncestorOf(kid, descendant)) {
|
|
1759
|
+
return true;
|
|
1760
|
+
}
|
|
1761
|
+
}
|
|
1762
|
+
return false;
|
|
1763
|
+
}
|
|
1764
|
+
function isAlwaysZeroLength({ type }) {
|
|
1765
|
+
return type === "Assertion" || type === "Directive" || type === "LookaroundAssertion";
|
|
1766
|
+
}
|
|
1767
|
+
function isAlwaysNonZeroLength(node) {
|
|
1768
|
+
const types = [
|
|
1769
|
+
"Character",
|
|
1770
|
+
"CharacterClass",
|
|
1771
|
+
"CharacterSet"
|
|
1772
|
+
];
|
|
1773
|
+
return types.includes(node.type) || node.type === "Quantifier" && node.min && types.includes(node.body.type);
|
|
1774
|
+
}
|
|
1775
|
+
function isLoneGLookaround(node, options) {
|
|
1776
|
+
const opts = {
|
|
1777
|
+
negate: null,
|
|
1778
|
+
...options
|
|
1779
|
+
};
|
|
1780
|
+
return node.type === "LookaroundAssertion" && (opts.negate === null || node.negate === opts.negate) && node.body.length === 1 && o2(node.body[0], {
|
|
1781
|
+
type: "Assertion",
|
|
1782
|
+
kind: "search_start"
|
|
1783
|
+
});
|
|
1784
|
+
}
|
|
1785
|
+
function isValidJsGroupName(name) {
|
|
1786
|
+
return /^[$_\p{IDS}][$\u200C\u200D\p{IDC}]*$/u.test(name);
|
|
1787
|
+
}
|
|
1788
|
+
function parseFragment(pattern, options) {
|
|
1789
|
+
const ast = J2(pattern, {
|
|
1790
|
+
...options,
|
|
1791
|
+
// Providing a custom set of Unicode property names avoids converting some JS Unicode
|
|
1792
|
+
// properties (ex: `\p{Alpha}`) to Onig POSIX classes
|
|
1793
|
+
unicodePropertyMap: JsUnicodePropertyMap
|
|
1794
|
+
});
|
|
1795
|
+
const alts = ast.body;
|
|
1796
|
+
if (alts.length > 1 || alts[0].body.length > 1) {
|
|
1797
|
+
return A2({ body: alts });
|
|
1798
|
+
}
|
|
1799
|
+
return alts[0].body[0];
|
|
1800
|
+
}
|
|
1801
|
+
function setNegate(node, negate) {
|
|
1802
|
+
node.negate = negate;
|
|
1803
|
+
return node;
|
|
1804
|
+
}
|
|
1805
|
+
function setParent(node, parent) {
|
|
1806
|
+
node.parent = parent;
|
|
1807
|
+
return node;
|
|
1808
|
+
}
|
|
1809
|
+
function setParentDeep(node, parent) {
|
|
1810
|
+
addParentProperties(node);
|
|
1811
|
+
node.parent = parent;
|
|
1812
|
+
return node;
|
|
1813
|
+
}
|
|
1814
|
+
|
|
1815
|
+
// src/generate.js
|
|
1816
|
+
function generate(ast, options) {
|
|
1817
|
+
const opts = getOptions(options);
|
|
1818
|
+
const minTargetEs2024 = isMinTarget(opts.target, "ES2024");
|
|
1819
|
+
const minTargetEs2025 = isMinTarget(opts.target, "ES2025");
|
|
1820
|
+
const recursionLimit = opts.rules.recursionLimit;
|
|
1821
|
+
if (!Number.isInteger(recursionLimit) || recursionLimit < 2 || recursionLimit > 20) {
|
|
1822
|
+
throw new Error("Invalid recursionLimit; use 2-20");
|
|
1823
|
+
}
|
|
1824
|
+
let hasCaseInsensitiveNode = null;
|
|
1825
|
+
let hasCaseSensitiveNode = null;
|
|
1826
|
+
if (!minTargetEs2025) {
|
|
1827
|
+
const iStack = [ast.flags.ignoreCase];
|
|
1828
|
+
S(ast, FlagModifierVisitor, {
|
|
1829
|
+
getCurrentModI: () => iStack.at(-1),
|
|
1830
|
+
popModI() {
|
|
1831
|
+
iStack.pop();
|
|
1832
|
+
},
|
|
1833
|
+
pushModI(isIOn) {
|
|
1834
|
+
iStack.push(isIOn);
|
|
1835
|
+
},
|
|
1836
|
+
setHasCasedChar() {
|
|
1837
|
+
if (iStack.at(-1)) {
|
|
1838
|
+
hasCaseInsensitiveNode = true;
|
|
1839
|
+
} else {
|
|
1840
|
+
hasCaseSensitiveNode = true;
|
|
1841
|
+
}
|
|
1842
|
+
}
|
|
1843
|
+
});
|
|
1844
|
+
}
|
|
1845
|
+
const appliedGlobalFlags = {
|
|
1846
|
+
dotAll: ast.flags.dotAll,
|
|
1847
|
+
// - Turn global flag i on if a case insensitive node was used and no case sensitive nodes were
|
|
1848
|
+
// used (to avoid unnecessary node expansion).
|
|
1849
|
+
// - Turn global flag i off if a case sensitive node was used (since case sensitivity can't be
|
|
1850
|
+
// forced without the use of ES2025 flag groups)
|
|
1851
|
+
ignoreCase: !!((ast.flags.ignoreCase || hasCaseInsensitiveNode) && !hasCaseSensitiveNode)
|
|
1852
|
+
};
|
|
1853
|
+
let lastNode = ast;
|
|
1854
|
+
const state = {
|
|
1855
|
+
accuracy: opts.accuracy,
|
|
1856
|
+
appliedGlobalFlags,
|
|
1857
|
+
captureMap: /* @__PURE__ */ new Map(),
|
|
1858
|
+
currentFlags: {
|
|
1859
|
+
dotAll: ast.flags.dotAll,
|
|
1860
|
+
ignoreCase: ast.flags.ignoreCase
|
|
1861
|
+
},
|
|
1862
|
+
inCharClass: false,
|
|
1863
|
+
lastNode,
|
|
1864
|
+
originMap: ast._originMap,
|
|
1865
|
+
recursionLimit,
|
|
1866
|
+
useAppliedIgnoreCase: !!(!minTargetEs2025 && hasCaseInsensitiveNode && hasCaseSensitiveNode),
|
|
1867
|
+
useFlagMods: minTargetEs2025,
|
|
1868
|
+
useFlagV: minTargetEs2024,
|
|
1869
|
+
verbose: opts.verbose
|
|
1870
|
+
};
|
|
1871
|
+
function gen(node) {
|
|
1872
|
+
state.lastNode = lastNode;
|
|
1873
|
+
lastNode = node;
|
|
1874
|
+
const fn = throwIfNullish(generator[node.type], `Unexpected node type "${node.type}"`);
|
|
1875
|
+
return fn(node, state, gen);
|
|
1876
|
+
}
|
|
1877
|
+
const result = {
|
|
1878
|
+
pattern: ast.body.map(gen).join("|"),
|
|
1879
|
+
// Could reset `lastNode` at this point via `lastNode = ast`, but it isn't needed by flags
|
|
1880
|
+
flags: gen(ast.flags),
|
|
1881
|
+
options: { ...ast.options }
|
|
1882
|
+
};
|
|
1883
|
+
if (!minTargetEs2024) {
|
|
1884
|
+
delete result.options.force.v;
|
|
1885
|
+
result.options.disable.v = true;
|
|
1886
|
+
result.options.unicodeSetsPlugin = null;
|
|
1887
|
+
}
|
|
1888
|
+
result._captureTransfers = /* @__PURE__ */ new Map();
|
|
1889
|
+
result._hiddenCaptures = [];
|
|
1890
|
+
state.captureMap.forEach((value, key) => {
|
|
1891
|
+
if (value.hidden) {
|
|
1892
|
+
result._hiddenCaptures.push(key);
|
|
1893
|
+
}
|
|
1894
|
+
if (value.transferTo) {
|
|
1895
|
+
getOrInsert(result._captureTransfers, value.transferTo, []).push(key);
|
|
1896
|
+
}
|
|
1897
|
+
});
|
|
1898
|
+
return result;
|
|
1899
|
+
}
|
|
1900
|
+
var FlagModifierVisitor = {
|
|
1901
|
+
"*": {
|
|
1902
|
+
enter({ node }, state) {
|
|
1903
|
+
if (isAnyGroup(node)) {
|
|
1904
|
+
const currentModI = state.getCurrentModI();
|
|
1905
|
+
state.pushModI(
|
|
1906
|
+
node.flags ? getNewCurrentFlags({ ignoreCase: currentModI }, node.flags).ignoreCase : currentModI
|
|
1907
|
+
);
|
|
1908
|
+
}
|
|
1909
|
+
},
|
|
1910
|
+
exit({ node }, state) {
|
|
1911
|
+
if (isAnyGroup(node)) {
|
|
1912
|
+
state.popModI();
|
|
1913
|
+
}
|
|
1914
|
+
}
|
|
1915
|
+
},
|
|
1916
|
+
Backreference(_3, state) {
|
|
1917
|
+
state.setHasCasedChar();
|
|
1918
|
+
},
|
|
1919
|
+
Character({ node }, state) {
|
|
1920
|
+
if (charHasCase(cp(node.value))) {
|
|
1921
|
+
state.setHasCasedChar();
|
|
1922
|
+
}
|
|
1923
|
+
},
|
|
1924
|
+
CharacterClassRange({ node, skip }, state) {
|
|
1925
|
+
skip();
|
|
1926
|
+
if (getCasesOutsideCharClassRange(node, { firstOnly: true }).length) {
|
|
1927
|
+
state.setHasCasedChar();
|
|
1928
|
+
}
|
|
1929
|
+
},
|
|
1930
|
+
CharacterSet({ node }, state) {
|
|
1931
|
+
if (node.kind === "property" && UnicodePropertiesWithSpecificCase.has(node.value)) {
|
|
1932
|
+
state.setHasCasedChar();
|
|
1933
|
+
}
|
|
1934
|
+
}
|
|
1935
|
+
};
|
|
1936
|
+
var generator = {
|
|
1937
|
+
/**
|
|
1938
|
+
@param {AlternativeNode} node
|
|
1939
|
+
*/
|
|
1940
|
+
Alternative({ body }, _3, gen) {
|
|
1941
|
+
return body.map(gen).join("");
|
|
1942
|
+
},
|
|
1943
|
+
/**
|
|
1944
|
+
@param {AssertionNode} node
|
|
1945
|
+
*/
|
|
1946
|
+
Assertion({ kind, negate }) {
|
|
1947
|
+
if (kind === "string_end") {
|
|
1948
|
+
return "$";
|
|
1949
|
+
}
|
|
1950
|
+
if (kind === "string_start") {
|
|
1951
|
+
return "^";
|
|
1952
|
+
}
|
|
1953
|
+
if (kind === "word_boundary") {
|
|
1954
|
+
return negate ? r`\B` : r`\b`;
|
|
1955
|
+
}
|
|
1956
|
+
throw new Error(`Unexpected assertion kind "${kind}"`);
|
|
1957
|
+
},
|
|
1958
|
+
/**
|
|
1959
|
+
@param {BackreferenceNode} node
|
|
1960
|
+
*/
|
|
1961
|
+
Backreference({ ref }, state) {
|
|
1962
|
+
if (typeof ref !== "number") {
|
|
1963
|
+
throw new Error("Unexpected named backref in transformed AST");
|
|
1964
|
+
}
|
|
1965
|
+
if (!state.useFlagMods && state.accuracy === "strict" && state.currentFlags.ignoreCase && !state.captureMap.get(ref).ignoreCase) {
|
|
1966
|
+
throw new Error("Use of case-insensitive backref to case-sensitive group requires target ES2025 or non-strict accuracy");
|
|
1967
|
+
}
|
|
1968
|
+
return "\\" + ref;
|
|
1969
|
+
},
|
|
1970
|
+
/**
|
|
1971
|
+
@param {CapturingGroupNode} node
|
|
1972
|
+
*/
|
|
1973
|
+
CapturingGroup(node, state, gen) {
|
|
1974
|
+
const { body, name, number } = node;
|
|
1975
|
+
const data = { ignoreCase: state.currentFlags.ignoreCase };
|
|
1976
|
+
const origin = state.originMap.get(node);
|
|
1977
|
+
if (origin) {
|
|
1978
|
+
data.hidden = true;
|
|
1979
|
+
if (number > origin.number) {
|
|
1980
|
+
data.transferTo = origin.number;
|
|
1981
|
+
}
|
|
1982
|
+
}
|
|
1983
|
+
state.captureMap.set(number, data);
|
|
1984
|
+
return `(${name ? `?<${name}>` : ""}${body.map(gen).join("|")})`;
|
|
1985
|
+
},
|
|
1986
|
+
/**
|
|
1987
|
+
@param {CharacterNode} node
|
|
1988
|
+
*/
|
|
1989
|
+
Character({ value }, state) {
|
|
1990
|
+
const char = cp(value);
|
|
1991
|
+
const escaped = getCharEscape(value, {
|
|
1992
|
+
escDigit: state.lastNode.type === "Backreference",
|
|
1993
|
+
inCharClass: state.inCharClass,
|
|
1994
|
+
useFlagV: state.useFlagV
|
|
1995
|
+
});
|
|
1996
|
+
if (escaped !== char) {
|
|
1997
|
+
return escaped;
|
|
1998
|
+
}
|
|
1999
|
+
if (state.useAppliedIgnoreCase && state.currentFlags.ignoreCase && charHasCase(char)) {
|
|
2000
|
+
const cases = getIgnoreCaseMatchChars(char);
|
|
2001
|
+
return state.inCharClass ? cases.join("") : cases.length > 1 ? `[${cases.join("")}]` : cases[0];
|
|
2002
|
+
}
|
|
2003
|
+
return char;
|
|
2004
|
+
},
|
|
2005
|
+
/**
|
|
2006
|
+
@param {CharacterClassNode} node
|
|
2007
|
+
*/
|
|
2008
|
+
CharacterClass(node, state, gen) {
|
|
2009
|
+
const { kind, negate, parent } = node;
|
|
2010
|
+
let { body } = node;
|
|
2011
|
+
if (kind === "intersection" && !state.useFlagV) {
|
|
2012
|
+
throw new Error("Use of character class intersection requires min target ES2024");
|
|
2013
|
+
}
|
|
2014
|
+
if (envFlags.bugFlagVLiteralHyphenIsRange && state.useFlagV && body.some(isLiteralHyphen)) {
|
|
2015
|
+
body = [m2(45), ...body.filter((kid) => !isLiteralHyphen(kid))];
|
|
2016
|
+
}
|
|
2017
|
+
const genClass = () => `[${negate ? "^" : ""}${body.map(gen).join(kind === "intersection" ? "&&" : "")}]`;
|
|
2018
|
+
if (!state.inCharClass) {
|
|
2019
|
+
if (
|
|
2020
|
+
// Already established `kind !== 'intersection'` if `!state.useFlagV`; don't check again
|
|
2021
|
+
(!state.useFlagV || envFlags.bugNestedClassIgnoresNegation) && !negate
|
|
2022
|
+
) {
|
|
2023
|
+
const negatedChildClasses = body.filter(
|
|
2024
|
+
(kid) => kid.type === "CharacterClass" && kid.kind === "union" && kid.negate
|
|
2025
|
+
);
|
|
2026
|
+
if (negatedChildClasses.length) {
|
|
2027
|
+
const group = A2();
|
|
2028
|
+
const groupFirstAlt = group.body[0];
|
|
2029
|
+
group.parent = parent;
|
|
2030
|
+
groupFirstAlt.parent = group;
|
|
2031
|
+
body = body.filter((kid) => !negatedChildClasses.includes(kid));
|
|
2032
|
+
node.body = body;
|
|
2033
|
+
if (body.length) {
|
|
2034
|
+
node.parent = groupFirstAlt;
|
|
2035
|
+
groupFirstAlt.body.push(node);
|
|
2036
|
+
} else {
|
|
2037
|
+
group.body.pop();
|
|
2038
|
+
}
|
|
2039
|
+
negatedChildClasses.forEach((cc) => {
|
|
2040
|
+
const newAlt = b2({ body: [cc] });
|
|
2041
|
+
cc.parent = newAlt;
|
|
2042
|
+
newAlt.parent = group;
|
|
2043
|
+
group.body.push(newAlt);
|
|
2044
|
+
});
|
|
2045
|
+
return gen(group);
|
|
2046
|
+
}
|
|
2047
|
+
}
|
|
2048
|
+
state.inCharClass = true;
|
|
2049
|
+
const result = genClass();
|
|
2050
|
+
state.inCharClass = false;
|
|
2051
|
+
return result;
|
|
2052
|
+
}
|
|
2053
|
+
const firstEl = body[0];
|
|
2054
|
+
if (
|
|
2055
|
+
// Already established that the parent is a char class via `inCharClass`; don't check again
|
|
2056
|
+
kind === "union" && !negate && firstEl && // Allows many nested classes to work with `target` ES2018 which doesn't support nesting
|
|
2057
|
+
((!state.useFlagV || !state.verbose) && parent.kind === "union" && !(envFlags.bugFlagVLiteralHyphenIsRange && state.useFlagV) || !state.verbose && parent.kind === "intersection" && // JS doesn't allow intersection with union or ranges
|
|
2058
|
+
body.length === 1 && firstEl.type !== "CharacterClassRange")
|
|
2059
|
+
) {
|
|
2060
|
+
return body.map(gen).join("");
|
|
2061
|
+
}
|
|
2062
|
+
if (!state.useFlagV && parent.type === "CharacterClass") {
|
|
2063
|
+
throw new Error("Uses nested character class in a way that requires min target ES2024");
|
|
2064
|
+
}
|
|
2065
|
+
return genClass();
|
|
2066
|
+
},
|
|
2067
|
+
/**
|
|
2068
|
+
@param {CharacterClassRangeNode} node
|
|
2069
|
+
*/
|
|
2070
|
+
CharacterClassRange(node, state) {
|
|
2071
|
+
const min = node.min.value;
|
|
2072
|
+
const max = node.max.value;
|
|
2073
|
+
const escOpts = {
|
|
2074
|
+
escDigit: false,
|
|
2075
|
+
inCharClass: true,
|
|
2076
|
+
useFlagV: state.useFlagV
|
|
2077
|
+
};
|
|
2078
|
+
const minStr = getCharEscape(min, escOpts);
|
|
2079
|
+
const maxStr = getCharEscape(max, escOpts);
|
|
2080
|
+
const extraChars = /* @__PURE__ */ new Set();
|
|
2081
|
+
if (state.useAppliedIgnoreCase && state.currentFlags.ignoreCase) {
|
|
2082
|
+
const charsOutsideRange = getCasesOutsideCharClassRange(node);
|
|
2083
|
+
const ranges = getCodePointRangesFromChars(charsOutsideRange);
|
|
2084
|
+
ranges.forEach((value) => {
|
|
2085
|
+
extraChars.add(
|
|
2086
|
+
Array.isArray(value) ? `${getCharEscape(value[0], escOpts)}-${getCharEscape(value[1], escOpts)}` : getCharEscape(value, escOpts)
|
|
2087
|
+
);
|
|
2088
|
+
});
|
|
2089
|
+
}
|
|
2090
|
+
return `${minStr}-${maxStr}${[...extraChars].join("")}`;
|
|
2091
|
+
},
|
|
2092
|
+
/**
|
|
2093
|
+
@param {CharacterSetNode} node
|
|
2094
|
+
*/
|
|
2095
|
+
CharacterSet({ kind, negate, value, key }, state) {
|
|
2096
|
+
if (kind === "dot") {
|
|
2097
|
+
return state.currentFlags.dotAll ? state.appliedGlobalFlags.dotAll || state.useFlagMods ? "." : "[^]" : (
|
|
2098
|
+
// Onig's only line break char is line feed, unlike JS
|
|
2099
|
+
r`[^\n]`
|
|
2100
|
+
);
|
|
2101
|
+
}
|
|
2102
|
+
if (kind === "digit") {
|
|
2103
|
+
return negate ? r`\D` : r`\d`;
|
|
2104
|
+
}
|
|
2105
|
+
if (kind === "property") {
|
|
2106
|
+
if (state.useAppliedIgnoreCase && state.currentFlags.ignoreCase && UnicodePropertiesWithSpecificCase.has(value)) {
|
|
2107
|
+
throw new Error(`Unicode property "${value}" can't be case-insensitive when other chars have specific case`);
|
|
2108
|
+
}
|
|
2109
|
+
return `${negate ? r`\P` : r`\p`}{${key ? `${key}=` : ""}${value}}`;
|
|
2110
|
+
}
|
|
2111
|
+
if (kind === "word") {
|
|
2112
|
+
return negate ? r`\W` : r`\w`;
|
|
2113
|
+
}
|
|
2114
|
+
throw new Error(`Unexpected character set kind "${kind}"`);
|
|
2115
|
+
},
|
|
2116
|
+
/**
|
|
2117
|
+
@param {FlagsNode} node
|
|
2118
|
+
*/
|
|
2119
|
+
Flags(node, state) {
|
|
2120
|
+
return (
|
|
2121
|
+
// The transformer should never turn on the properties for flags d, g, m since Onig doesn't
|
|
2122
|
+
// have equivs. Flag m is never used since Onig uses different line break chars than JS
|
|
2123
|
+
// (node.hasIndices ? 'd' : '') +
|
|
2124
|
+
// (node.global ? 'g' : '') +
|
|
2125
|
+
// (node.multiline ? 'm' : '') +
|
|
2126
|
+
(state.appliedGlobalFlags.ignoreCase ? "i" : "") + (node.dotAll ? "s" : "") + (node.sticky ? "y" : "")
|
|
2127
|
+
);
|
|
2128
|
+
},
|
|
2129
|
+
/**
|
|
2130
|
+
@param {GroupNode} node
|
|
2131
|
+
*/
|
|
2132
|
+
Group({ atomic: atomic2, body, flags, parent }, state, gen) {
|
|
2133
|
+
const currentFlags = state.currentFlags;
|
|
2134
|
+
if (flags) {
|
|
2135
|
+
state.currentFlags = getNewCurrentFlags(currentFlags, flags);
|
|
2136
|
+
}
|
|
2137
|
+
const contents = body.map(gen).join("|");
|
|
2138
|
+
const result = !state.verbose && body.length === 1 && // Single alt
|
|
2139
|
+
parent.type !== "Quantifier" && !atomic2 && (!state.useFlagMods || !flags) ? contents : `(?${getGroupPrefix(atomic2, flags, state.useFlagMods)}${contents})`;
|
|
2140
|
+
state.currentFlags = currentFlags;
|
|
2141
|
+
return result;
|
|
2142
|
+
},
|
|
2143
|
+
/**
|
|
2144
|
+
@param {LookaroundAssertionNode} node
|
|
2145
|
+
*/
|
|
2146
|
+
LookaroundAssertion({ body, kind, negate }, _3, gen) {
|
|
2147
|
+
const prefix = `${kind === "lookahead" ? "" : "<"}${negate ? "!" : "="}`;
|
|
2148
|
+
return `(?${prefix}${body.map(gen).join("|")})`;
|
|
2149
|
+
},
|
|
2150
|
+
/**
|
|
2151
|
+
@param {QuantifierNode} node
|
|
2152
|
+
*/
|
|
2153
|
+
Quantifier(node, _3, gen) {
|
|
2154
|
+
return gen(node.body) + getQuantifierStr(node);
|
|
2155
|
+
},
|
|
2156
|
+
/**
|
|
2157
|
+
@param {SubroutineNode & {isRecursive: true}} node
|
|
2158
|
+
*/
|
|
2159
|
+
Subroutine({ isRecursive, ref }, state) {
|
|
2160
|
+
if (!isRecursive) {
|
|
2161
|
+
throw new Error("Unexpected non-recursive subroutine in transformed AST");
|
|
2162
|
+
}
|
|
2163
|
+
const limit = state.recursionLimit;
|
|
2164
|
+
return ref === 0 ? `(?R=${limit})` : r`\g<${ref}&R=${limit}>`;
|
|
2165
|
+
}
|
|
2166
|
+
};
|
|
2167
|
+
var BaseEscapeChars = /* @__PURE__ */ new Set([
|
|
2168
|
+
"$",
|
|
2169
|
+
"(",
|
|
2170
|
+
")",
|
|
2171
|
+
"*",
|
|
2172
|
+
"+",
|
|
2173
|
+
".",
|
|
2174
|
+
"?",
|
|
2175
|
+
"[",
|
|
2176
|
+
"\\",
|
|
2177
|
+
"]",
|
|
2178
|
+
"^",
|
|
2179
|
+
"{",
|
|
2180
|
+
"|",
|
|
2181
|
+
"}"
|
|
2182
|
+
]);
|
|
2183
|
+
var CharClassEscapeChars = /* @__PURE__ */ new Set([
|
|
2184
|
+
"-",
|
|
2185
|
+
"\\",
|
|
2186
|
+
"]",
|
|
2187
|
+
"^",
|
|
2188
|
+
// Literal `[` doesn't require escaping with flag u, but this can help work around regex source
|
|
2189
|
+
// linters and regex syntax processors that expect unescaped `[` to create a nested class
|
|
2190
|
+
"["
|
|
2191
|
+
]);
|
|
2192
|
+
var CharClassEscapeCharsFlagV = /* @__PURE__ */ new Set([
|
|
2193
|
+
"(",
|
|
2194
|
+
")",
|
|
2195
|
+
"-",
|
|
2196
|
+
"/",
|
|
2197
|
+
"[",
|
|
2198
|
+
"\\",
|
|
2199
|
+
"]",
|
|
2200
|
+
"^",
|
|
2201
|
+
"{",
|
|
2202
|
+
"|",
|
|
2203
|
+
"}",
|
|
2204
|
+
// Double punctuators; also includes already-listed `-` and `^`
|
|
2205
|
+
"!",
|
|
2206
|
+
"#",
|
|
2207
|
+
"$",
|
|
2208
|
+
"%",
|
|
2209
|
+
"&",
|
|
2210
|
+
"*",
|
|
2211
|
+
"+",
|
|
2212
|
+
",",
|
|
2213
|
+
".",
|
|
2214
|
+
":",
|
|
2215
|
+
";",
|
|
2216
|
+
"<",
|
|
2217
|
+
"=",
|
|
2218
|
+
">",
|
|
2219
|
+
"?",
|
|
2220
|
+
"@",
|
|
2221
|
+
"`",
|
|
2222
|
+
"~"
|
|
2223
|
+
]);
|
|
2224
|
+
var CharCodeEscapeMap = /* @__PURE__ */ new Map([
|
|
2225
|
+
[9, r`\t`],
|
|
2226
|
+
// horizontal tab
|
|
2227
|
+
[10, r`\n`],
|
|
2228
|
+
// line feed
|
|
2229
|
+
[11, r`\v`],
|
|
2230
|
+
// vertical tab
|
|
2231
|
+
[12, r`\f`],
|
|
2232
|
+
// form feed
|
|
2233
|
+
[13, r`\r`],
|
|
2234
|
+
// carriage return
|
|
2235
|
+
[8232, r`\u2028`],
|
|
2236
|
+
// line separator
|
|
2237
|
+
[8233, r`\u2029`],
|
|
2238
|
+
// paragraph separator
|
|
2239
|
+
[65279, r`\uFEFF`]
|
|
2240
|
+
// ZWNBSP/BOM
|
|
2241
|
+
]);
|
|
2242
|
+
var casedRe = /^\p{Cased}$/u;
|
|
2243
|
+
function charHasCase(char) {
|
|
2244
|
+
return casedRe.test(char);
|
|
2245
|
+
}
|
|
2246
|
+
function getCasesOutsideCharClassRange(node, options) {
|
|
2247
|
+
const firstOnly = !!options?.firstOnly;
|
|
2248
|
+
const min = node.min.value;
|
|
2249
|
+
const max = node.max.value;
|
|
2250
|
+
const found = [];
|
|
2251
|
+
if (min < 65 && (max === 65535 || max >= 131071) || min === 65536 && max >= 131071) {
|
|
2252
|
+
return found;
|
|
2253
|
+
}
|
|
2254
|
+
for (let i2 = min; i2 <= max; i2++) {
|
|
2255
|
+
const char = cp(i2);
|
|
2256
|
+
if (!charHasCase(char)) {
|
|
2257
|
+
continue;
|
|
2258
|
+
}
|
|
2259
|
+
const charsOutsideRange = getIgnoreCaseMatchChars(char).filter((caseOfChar) => {
|
|
2260
|
+
const num = caseOfChar.codePointAt(0);
|
|
2261
|
+
return num < min || num > max;
|
|
2262
|
+
});
|
|
2263
|
+
if (charsOutsideRange.length) {
|
|
2264
|
+
found.push(...charsOutsideRange);
|
|
2265
|
+
if (firstOnly) {
|
|
2266
|
+
break;
|
|
2267
|
+
}
|
|
2268
|
+
}
|
|
2269
|
+
}
|
|
2270
|
+
return found;
|
|
2271
|
+
}
|
|
2272
|
+
function getCharEscape(codePoint, { escDigit, inCharClass, useFlagV }) {
|
|
2273
|
+
if (CharCodeEscapeMap.has(codePoint)) {
|
|
2274
|
+
return CharCodeEscapeMap.get(codePoint);
|
|
2275
|
+
}
|
|
2276
|
+
if (
|
|
2277
|
+
// Control chars, etc.; condition modeled on the Chrome developer console's display for strings
|
|
2278
|
+
codePoint < 32 || codePoint > 126 && codePoint < 160 || // Unicode planes 4-16; unassigned, special purpose, and private use area
|
|
2279
|
+
codePoint > 262143 || // Avoid corrupting a preceding backref by immediately following it with a literal digit
|
|
2280
|
+
escDigit && isDigitCharCode(codePoint)
|
|
2281
|
+
) {
|
|
2282
|
+
return codePoint > 255 ? `\\u{${codePoint.toString(16).toUpperCase()}}` : `\\x${codePoint.toString(16).toUpperCase().padStart(2, "0")}`;
|
|
2283
|
+
}
|
|
2284
|
+
const escapeChars = inCharClass ? useFlagV ? CharClassEscapeCharsFlagV : CharClassEscapeChars : BaseEscapeChars;
|
|
2285
|
+
const char = cp(codePoint);
|
|
2286
|
+
return (escapeChars.has(char) ? "\\" : "") + char;
|
|
2287
|
+
}
|
|
2288
|
+
function getCodePointRangesFromChars(chars) {
|
|
2289
|
+
const codePoints = chars.map((char) => char.codePointAt(0)).sort((a2, b3) => a2 - b3);
|
|
2290
|
+
const values = [];
|
|
2291
|
+
let start = null;
|
|
2292
|
+
for (let i2 = 0; i2 < codePoints.length; i2++) {
|
|
2293
|
+
if (codePoints[i2 + 1] === codePoints[i2] + 1) {
|
|
2294
|
+
start ??= codePoints[i2];
|
|
2295
|
+
} else if (start === null) {
|
|
2296
|
+
values.push(codePoints[i2]);
|
|
2297
|
+
} else {
|
|
2298
|
+
values.push([start, codePoints[i2]]);
|
|
2299
|
+
start = null;
|
|
2300
|
+
}
|
|
2301
|
+
}
|
|
2302
|
+
return values;
|
|
2303
|
+
}
|
|
2304
|
+
function getGroupPrefix(atomic2, flagMods, useFlagMods) {
|
|
2305
|
+
if (atomic2) {
|
|
2306
|
+
return ">";
|
|
2307
|
+
}
|
|
2308
|
+
let mods = "";
|
|
2309
|
+
if (flagMods && useFlagMods) {
|
|
2310
|
+
const { enable, disable } = flagMods;
|
|
2311
|
+
mods = (enable?.ignoreCase ? "i" : "") + (enable?.dotAll ? "s" : "") + (disable ? "-" : "") + (disable?.ignoreCase ? "i" : "") + (disable?.dotAll ? "s" : "");
|
|
2312
|
+
}
|
|
2313
|
+
return `${mods}:`;
|
|
2314
|
+
}
|
|
2315
|
+
function getQuantifierStr({ kind, max, min }) {
|
|
2316
|
+
let base;
|
|
2317
|
+
if (!min && max === 1) {
|
|
2318
|
+
base = "?";
|
|
2319
|
+
} else if (!min && max === Infinity) {
|
|
2320
|
+
base = "*";
|
|
2321
|
+
} else if (min === 1 && max === Infinity) {
|
|
2322
|
+
base = "+";
|
|
2323
|
+
} else if (min === max) {
|
|
2324
|
+
base = `{${min}}`;
|
|
2325
|
+
} else {
|
|
2326
|
+
base = `{${min},${max === Infinity ? "" : max}}`;
|
|
2327
|
+
}
|
|
2328
|
+
return base + {
|
|
2329
|
+
greedy: "",
|
|
2330
|
+
lazy: "?",
|
|
2331
|
+
possessive: "+"
|
|
2332
|
+
}[kind];
|
|
2333
|
+
}
|
|
2334
|
+
function isAnyGroup({ type }) {
|
|
2335
|
+
return type === "CapturingGroup" || type === "Group" || type === "LookaroundAssertion";
|
|
2336
|
+
}
|
|
2337
|
+
function isDigitCharCode(value) {
|
|
2338
|
+
return value > 47 && value < 58;
|
|
2339
|
+
}
|
|
2340
|
+
function isLiteralHyphen({ type, value }) {
|
|
2341
|
+
return type === "Character" && value === 45;
|
|
2342
|
+
}
|
|
2343
|
+
|
|
2344
|
+
// src/subclass.js
|
|
2345
|
+
var EmulatedRegExp = class _EmulatedRegExp extends RegExp {
|
|
2346
|
+
/**
|
|
2347
|
+
@type {Map<number, {
|
|
2348
|
+
hidden?: true;
|
|
2349
|
+
transferTo?: number;
|
|
2350
|
+
}>}
|
|
2351
|
+
*/
|
|
2352
|
+
#captureMap = /* @__PURE__ */ new Map();
|
|
2353
|
+
/**
|
|
2354
|
+
@type {RegExp | EmulatedRegExp | null}
|
|
2355
|
+
*/
|
|
2356
|
+
#compiled = null;
|
|
2357
|
+
/**
|
|
2358
|
+
@type {string}
|
|
2359
|
+
*/
|
|
2360
|
+
#pattern;
|
|
2361
|
+
/**
|
|
2362
|
+
@type {Map<number, string>?}
|
|
2363
|
+
*/
|
|
2364
|
+
#nameMap = null;
|
|
2365
|
+
/**
|
|
2366
|
+
@type {string?}
|
|
2367
|
+
*/
|
|
2368
|
+
#strategy = null;
|
|
2369
|
+
/**
|
|
2370
|
+
Can be used to serialize the instance.
|
|
2371
|
+
@type {EmulatedRegExpOptions}
|
|
2372
|
+
*/
|
|
2373
|
+
rawOptions = {};
|
|
2374
|
+
// Override the getter with one that works with lazy-compiled regexes
|
|
2375
|
+
get source() {
|
|
2376
|
+
return this.#pattern || "(?:)";
|
|
2377
|
+
}
|
|
2378
|
+
/**
|
|
2379
|
+
@overload
|
|
2380
|
+
@param {string} pattern
|
|
2381
|
+
@param {string} [flags]
|
|
2382
|
+
@param {EmulatedRegExpOptions} [options]
|
|
2383
|
+
*/
|
|
2384
|
+
/**
|
|
2385
|
+
@overload
|
|
2386
|
+
@param {EmulatedRegExp} pattern
|
|
2387
|
+
@param {string} [flags]
|
|
2388
|
+
*/
|
|
2389
|
+
constructor(pattern, flags, options) {
|
|
2390
|
+
const lazyCompile = !!options?.lazyCompile;
|
|
2391
|
+
if (pattern instanceof RegExp) {
|
|
2392
|
+
if (options) {
|
|
2393
|
+
throw new Error("Cannot provide options when copying a regexp");
|
|
2394
|
+
}
|
|
2395
|
+
const re2 = pattern;
|
|
2396
|
+
super(re2, flags);
|
|
2397
|
+
this.#pattern = re2.source;
|
|
2398
|
+
if (re2 instanceof _EmulatedRegExp) {
|
|
2399
|
+
this.#captureMap = re2.#captureMap;
|
|
2400
|
+
this.#nameMap = re2.#nameMap;
|
|
2401
|
+
this.#strategy = re2.#strategy;
|
|
2402
|
+
this.rawOptions = re2.rawOptions;
|
|
2403
|
+
}
|
|
2404
|
+
} else {
|
|
2405
|
+
const opts = {
|
|
2406
|
+
hiddenCaptures: [],
|
|
2407
|
+
strategy: null,
|
|
2408
|
+
transfers: [],
|
|
2409
|
+
...options
|
|
2410
|
+
};
|
|
2411
|
+
super(lazyCompile ? "" : pattern, flags);
|
|
2412
|
+
this.#pattern = pattern;
|
|
2413
|
+
this.#captureMap = createCaptureMap(opts.hiddenCaptures, opts.transfers);
|
|
2414
|
+
this.#strategy = opts.strategy;
|
|
2415
|
+
this.rawOptions = options ?? {};
|
|
2416
|
+
}
|
|
2417
|
+
if (!lazyCompile) {
|
|
2418
|
+
this.#compiled = this;
|
|
2419
|
+
}
|
|
2420
|
+
}
|
|
2421
|
+
/**
|
|
2422
|
+
Called internally by all String/RegExp methods that use regexes.
|
|
2423
|
+
@override
|
|
2424
|
+
@param {string} str
|
|
2425
|
+
@returns {RegExpExecArray?}
|
|
2426
|
+
*/
|
|
2427
|
+
exec(str) {
|
|
2428
|
+
if (!this.#compiled) {
|
|
2429
|
+
const { lazyCompile, ...rest } = this.rawOptions;
|
|
2430
|
+
this.#compiled = new _EmulatedRegExp(this.#pattern, this.flags, rest);
|
|
2431
|
+
}
|
|
2432
|
+
const useLastIndex = this.global || this.sticky;
|
|
2433
|
+
const pos = this.lastIndex;
|
|
2434
|
+
if (this.#strategy === "clip_search" && useLastIndex && pos) {
|
|
2435
|
+
this.lastIndex = 0;
|
|
2436
|
+
const match = this.#execCore(str.slice(pos));
|
|
2437
|
+
if (match) {
|
|
2438
|
+
adjustMatchDetailsForOffset(match, pos, str, this.hasIndices);
|
|
2439
|
+
this.lastIndex += pos;
|
|
2440
|
+
}
|
|
2441
|
+
return match;
|
|
2442
|
+
}
|
|
2443
|
+
return this.#execCore(str);
|
|
2444
|
+
}
|
|
2445
|
+
/**
|
|
2446
|
+
Adds support for hidden and transfer captures.
|
|
2447
|
+
@param {string} str
|
|
2448
|
+
@returns
|
|
2449
|
+
*/
|
|
2450
|
+
#execCore(str) {
|
|
2451
|
+
this.#compiled.lastIndex = this.lastIndex;
|
|
2452
|
+
const match = super.exec.call(this.#compiled, str);
|
|
2453
|
+
this.lastIndex = this.#compiled.lastIndex;
|
|
2454
|
+
if (!match || !this.#captureMap.size) {
|
|
2455
|
+
return match;
|
|
2456
|
+
}
|
|
2457
|
+
const matchCopy = [...match];
|
|
2458
|
+
match.length = 1;
|
|
2459
|
+
let indicesCopy;
|
|
2460
|
+
if (this.hasIndices) {
|
|
2461
|
+
indicesCopy = [...match.indices];
|
|
2462
|
+
match.indices.length = 1;
|
|
2463
|
+
}
|
|
2464
|
+
const mappedNums = [0];
|
|
2465
|
+
for (let i2 = 1; i2 < matchCopy.length; i2++) {
|
|
2466
|
+
const { hidden, transferTo } = this.#captureMap.get(i2) ?? {};
|
|
2467
|
+
if (hidden) {
|
|
2468
|
+
mappedNums.push(null);
|
|
2469
|
+
} else {
|
|
2470
|
+
mappedNums.push(match.length);
|
|
2471
|
+
match.push(matchCopy[i2]);
|
|
2472
|
+
if (this.hasIndices) {
|
|
2473
|
+
match.indices.push(indicesCopy[i2]);
|
|
2474
|
+
}
|
|
2475
|
+
}
|
|
2476
|
+
if (transferTo && matchCopy[i2] !== void 0) {
|
|
2477
|
+
const to = mappedNums[transferTo];
|
|
2478
|
+
if (!to) {
|
|
2479
|
+
throw new Error(`Invalid capture transfer to "${to}"`);
|
|
2480
|
+
}
|
|
2481
|
+
match[to] = matchCopy[i2];
|
|
2482
|
+
if (this.hasIndices) {
|
|
2483
|
+
match.indices[to] = indicesCopy[i2];
|
|
2484
|
+
}
|
|
2485
|
+
if (match.groups) {
|
|
2486
|
+
if (!this.#nameMap) {
|
|
2487
|
+
this.#nameMap = createNameMap(this.source);
|
|
2488
|
+
}
|
|
2489
|
+
const name = this.#nameMap.get(transferTo);
|
|
2490
|
+
if (name) {
|
|
2491
|
+
match.groups[name] = matchCopy[i2];
|
|
2492
|
+
if (this.hasIndices) {
|
|
2493
|
+
match.indices.groups[name] = indicesCopy[i2];
|
|
2494
|
+
}
|
|
2495
|
+
}
|
|
2496
|
+
}
|
|
2497
|
+
}
|
|
2498
|
+
}
|
|
2499
|
+
return match;
|
|
2500
|
+
}
|
|
2501
|
+
};
|
|
2502
|
+
function adjustMatchDetailsForOffset(match, offset, input, hasIndices) {
|
|
2503
|
+
match.index += offset;
|
|
2504
|
+
match.input = input;
|
|
2505
|
+
if (hasIndices) {
|
|
2506
|
+
const indices = match.indices;
|
|
2507
|
+
for (let i2 = 0; i2 < indices.length; i2++) {
|
|
2508
|
+
const arr = indices[i2];
|
|
2509
|
+
if (arr) {
|
|
2510
|
+
indices[i2] = [arr[0] + offset, arr[1] + offset];
|
|
2511
|
+
}
|
|
2512
|
+
}
|
|
2513
|
+
const groupIndices = indices.groups;
|
|
2514
|
+
if (groupIndices) {
|
|
2515
|
+
Object.keys(groupIndices).forEach((key) => {
|
|
2516
|
+
const arr = groupIndices[key];
|
|
2517
|
+
if (arr) {
|
|
2518
|
+
groupIndices[key] = [arr[0] + offset, arr[1] + offset];
|
|
2519
|
+
}
|
|
2520
|
+
});
|
|
2521
|
+
}
|
|
2522
|
+
}
|
|
2523
|
+
}
|
|
2524
|
+
function createCaptureMap(hiddenCaptures, transfers) {
|
|
2525
|
+
const captureMap = /* @__PURE__ */ new Map();
|
|
2526
|
+
for (const num of hiddenCaptures) {
|
|
2527
|
+
captureMap.set(num, {
|
|
2528
|
+
hidden: true
|
|
2529
|
+
});
|
|
2530
|
+
}
|
|
2531
|
+
for (const [to, from] of transfers) {
|
|
2532
|
+
for (const num of from) {
|
|
2533
|
+
getOrInsert(captureMap, num, {}).transferTo = to;
|
|
2534
|
+
}
|
|
2535
|
+
}
|
|
2536
|
+
return captureMap;
|
|
2537
|
+
}
|
|
2538
|
+
function createNameMap(pattern) {
|
|
2539
|
+
const re2 = /(?<capture>\((?:\?<(?![=!])(?<name>[^>]+)>|(?!\?)))|\\?./gsu;
|
|
2540
|
+
const map = /* @__PURE__ */ new Map();
|
|
2541
|
+
let numCharClassesOpen = 0;
|
|
2542
|
+
let numCaptures = 0;
|
|
2543
|
+
let match;
|
|
2544
|
+
while (match = re2.exec(pattern)) {
|
|
2545
|
+
const { 0: m3, groups: { capture, name } } = match;
|
|
2546
|
+
if (m3 === "[") {
|
|
2547
|
+
numCharClassesOpen++;
|
|
2548
|
+
} else if (!numCharClassesOpen) {
|
|
2549
|
+
if (capture) {
|
|
2550
|
+
numCaptures++;
|
|
2551
|
+
if (name) {
|
|
2552
|
+
map.set(numCaptures, name);
|
|
2553
|
+
}
|
|
2554
|
+
}
|
|
2555
|
+
} else if (m3 === "]") {
|
|
2556
|
+
numCharClassesOpen--;
|
|
2557
|
+
}
|
|
2558
|
+
}
|
|
2559
|
+
return map;
|
|
2560
|
+
}
|
|
2561
|
+
|
|
2562
|
+
// node_modules/.pnpm/regex@6.0.1/node_modules/regex/src/utils-internals.js
|
|
2563
|
+
var noncapturingDelim = String.raw`\(\?(?:[:=!>A-Za-z\-]|<[=!]|\(DEFINE\))`;
|
|
2564
|
+
function incrementIfAtLeast(arr, threshold) {
|
|
2565
|
+
for (let i2 = 0; i2 < arr.length; i2++) {
|
|
2566
|
+
if (arr[i2] >= threshold) {
|
|
2567
|
+
arr[i2]++;
|
|
2568
|
+
}
|
|
2569
|
+
}
|
|
2570
|
+
}
|
|
2571
|
+
function spliceStr(str, pos, oldValue, newValue) {
|
|
2572
|
+
return str.slice(0, pos) + newValue + str.slice(pos + oldValue.length);
|
|
2573
|
+
}
|
|
2574
|
+
|
|
2575
|
+
// node_modules/.pnpm/regex-utilities@2.3.0/node_modules/regex-utilities/src/index.js
|
|
2576
|
+
var Context = Object.freeze({
|
|
2577
|
+
DEFAULT: "DEFAULT",
|
|
2578
|
+
CHAR_CLASS: "CHAR_CLASS"
|
|
2579
|
+
});
|
|
2580
|
+
function replaceUnescaped(expression, needle, replacement, context) {
|
|
2581
|
+
const re2 = new RegExp(String.raw`${needle}|(?<$skip>\[\^?|\\?.)`, "gsu");
|
|
2582
|
+
const negated = [false];
|
|
2583
|
+
let numCharClassesOpen = 0;
|
|
2584
|
+
let result = "";
|
|
2585
|
+
for (const match of expression.matchAll(re2)) {
|
|
2586
|
+
const { 0: m3, groups: { $skip } } = match;
|
|
2587
|
+
if (!$skip && (!context || context === Context.DEFAULT === !numCharClassesOpen)) {
|
|
2588
|
+
if (replacement instanceof Function) {
|
|
2589
|
+
result += replacement(match, {
|
|
2590
|
+
context: numCharClassesOpen ? Context.CHAR_CLASS : Context.DEFAULT,
|
|
2591
|
+
negated: negated[negated.length - 1]
|
|
2592
|
+
});
|
|
2593
|
+
} else {
|
|
2594
|
+
result += replacement;
|
|
2595
|
+
}
|
|
2596
|
+
continue;
|
|
2597
|
+
}
|
|
2598
|
+
if (m3[0] === "[") {
|
|
2599
|
+
numCharClassesOpen++;
|
|
2600
|
+
negated.push(m3[1] === "^");
|
|
2601
|
+
} else if (m3 === "]" && numCharClassesOpen) {
|
|
2602
|
+
numCharClassesOpen--;
|
|
2603
|
+
negated.pop();
|
|
2604
|
+
}
|
|
2605
|
+
result += m3;
|
|
2606
|
+
}
|
|
2607
|
+
return result;
|
|
2608
|
+
}
|
|
2609
|
+
function forEachUnescaped(expression, needle, callback, context) {
|
|
2610
|
+
replaceUnescaped(expression, needle, callback, context);
|
|
2611
|
+
}
|
|
2612
|
+
function execUnescaped(expression, needle, pos = 0, context) {
|
|
2613
|
+
if (!new RegExp(needle, "su").test(expression)) {
|
|
2614
|
+
return null;
|
|
2615
|
+
}
|
|
2616
|
+
const re2 = new RegExp(`${needle}|(?<$skip>\\\\?.)`, "gsu");
|
|
2617
|
+
re2.lastIndex = pos;
|
|
2618
|
+
let numCharClassesOpen = 0;
|
|
2619
|
+
let match;
|
|
2620
|
+
while (match = re2.exec(expression)) {
|
|
2621
|
+
const { 0: m3, groups: { $skip } } = match;
|
|
2622
|
+
if (!$skip && (!context || context === Context.DEFAULT === !numCharClassesOpen)) {
|
|
2623
|
+
return match;
|
|
2624
|
+
}
|
|
2625
|
+
if (m3 === "[") {
|
|
2626
|
+
numCharClassesOpen++;
|
|
2627
|
+
} else if (m3 === "]" && numCharClassesOpen) {
|
|
2628
|
+
numCharClassesOpen--;
|
|
2629
|
+
}
|
|
2630
|
+
if (re2.lastIndex == match.index) {
|
|
2631
|
+
re2.lastIndex++;
|
|
2632
|
+
}
|
|
2633
|
+
}
|
|
2634
|
+
return null;
|
|
2635
|
+
}
|
|
2636
|
+
function hasUnescaped(expression, needle, context) {
|
|
2637
|
+
return !!execUnescaped(expression, needle, 0, context);
|
|
2638
|
+
}
|
|
2639
|
+
function getGroupContents(expression, contentsStartPos) {
|
|
2640
|
+
const token2 = /\\?./gsu;
|
|
2641
|
+
token2.lastIndex = contentsStartPos;
|
|
2642
|
+
let contentsEndPos = expression.length;
|
|
2643
|
+
let numCharClassesOpen = 0;
|
|
2644
|
+
let numGroupsOpen = 1;
|
|
2645
|
+
let match;
|
|
2646
|
+
while (match = token2.exec(expression)) {
|
|
2647
|
+
const [m3] = match;
|
|
2648
|
+
if (m3 === "[") {
|
|
2649
|
+
numCharClassesOpen++;
|
|
2650
|
+
} else if (!numCharClassesOpen) {
|
|
2651
|
+
if (m3 === "(") {
|
|
2652
|
+
numGroupsOpen++;
|
|
2653
|
+
} else if (m3 === ")") {
|
|
2654
|
+
numGroupsOpen--;
|
|
2655
|
+
if (!numGroupsOpen) {
|
|
2656
|
+
contentsEndPos = match.index;
|
|
2657
|
+
break;
|
|
2658
|
+
}
|
|
2659
|
+
}
|
|
2660
|
+
} else if (m3 === "]") {
|
|
2661
|
+
numCharClassesOpen--;
|
|
2662
|
+
}
|
|
2663
|
+
}
|
|
2664
|
+
return expression.slice(contentsStartPos, contentsEndPos);
|
|
2665
|
+
}
|
|
2666
|
+
|
|
2667
|
+
// node_modules/.pnpm/regex@6.0.1/node_modules/regex/src/atomic.js
|
|
2668
|
+
var atomicPluginToken = new RegExp(String.raw`(?<noncapturingStart>${noncapturingDelim})|(?<capturingStart>\((?:\?<[^>]+>)?)|\\?.`, "gsu");
|
|
2669
|
+
function atomic(expression, data) {
|
|
2670
|
+
const hiddenCaptures = data?.hiddenCaptures ?? [];
|
|
2671
|
+
let captureTransfers = data?.captureTransfers ?? /* @__PURE__ */ new Map();
|
|
2672
|
+
if (!/\(\?>/.test(expression)) {
|
|
2673
|
+
return {
|
|
2674
|
+
pattern: expression,
|
|
2675
|
+
captureTransfers,
|
|
2676
|
+
hiddenCaptures
|
|
2677
|
+
};
|
|
2678
|
+
}
|
|
2679
|
+
const aGDelim = "(?>";
|
|
2680
|
+
const emulatedAGDelim = "(?:(?=(";
|
|
2681
|
+
const captureNumMap = [0];
|
|
2682
|
+
const addedHiddenCaptures = [];
|
|
2683
|
+
let numCapturesBeforeAG = 0;
|
|
2684
|
+
let numAGs = 0;
|
|
2685
|
+
let aGPos = NaN;
|
|
2686
|
+
let hasProcessedAG;
|
|
2687
|
+
do {
|
|
2688
|
+
hasProcessedAG = false;
|
|
2689
|
+
let numCharClassesOpen = 0;
|
|
2690
|
+
let numGroupsOpenInAG = 0;
|
|
2691
|
+
let inAG = false;
|
|
2692
|
+
let match;
|
|
2693
|
+
atomicPluginToken.lastIndex = Number.isNaN(aGPos) ? 0 : aGPos + emulatedAGDelim.length;
|
|
2694
|
+
while (match = atomicPluginToken.exec(expression)) {
|
|
2695
|
+
const { 0: m3, index, groups: { capturingStart, noncapturingStart } } = match;
|
|
2696
|
+
if (m3 === "[") {
|
|
2697
|
+
numCharClassesOpen++;
|
|
2698
|
+
} else if (!numCharClassesOpen) {
|
|
2699
|
+
if (m3 === aGDelim && !inAG) {
|
|
2700
|
+
aGPos = index;
|
|
2701
|
+
inAG = true;
|
|
2702
|
+
} else if (inAG && noncapturingStart) {
|
|
2703
|
+
numGroupsOpenInAG++;
|
|
2704
|
+
} else if (capturingStart) {
|
|
2705
|
+
if (inAG) {
|
|
2706
|
+
numGroupsOpenInAG++;
|
|
2707
|
+
} else {
|
|
2708
|
+
numCapturesBeforeAG++;
|
|
2709
|
+
captureNumMap.push(numCapturesBeforeAG + numAGs);
|
|
2710
|
+
}
|
|
2711
|
+
} else if (m3 === ")" && inAG) {
|
|
2712
|
+
if (!numGroupsOpenInAG) {
|
|
2713
|
+
numAGs++;
|
|
2714
|
+
const addedCaptureNum = numCapturesBeforeAG + numAGs;
|
|
2715
|
+
expression = `${expression.slice(0, aGPos)}${emulatedAGDelim}${expression.slice(aGPos + aGDelim.length, index)}))<$$${addedCaptureNum}>)${expression.slice(index + 1)}`;
|
|
2716
|
+
hasProcessedAG = true;
|
|
2717
|
+
addedHiddenCaptures.push(addedCaptureNum);
|
|
2718
|
+
incrementIfAtLeast(hiddenCaptures, addedCaptureNum);
|
|
2719
|
+
if (captureTransfers.size) {
|
|
2720
|
+
const newCaptureTransfers = /* @__PURE__ */ new Map();
|
|
2721
|
+
captureTransfers.forEach((from, to) => {
|
|
2722
|
+
newCaptureTransfers.set(
|
|
2723
|
+
to >= addedCaptureNum ? to + 1 : to,
|
|
2724
|
+
from.map((f3) => f3 >= addedCaptureNum ? f3 + 1 : f3)
|
|
2725
|
+
);
|
|
2726
|
+
});
|
|
2727
|
+
captureTransfers = newCaptureTransfers;
|
|
2728
|
+
}
|
|
2729
|
+
break;
|
|
2730
|
+
}
|
|
2731
|
+
numGroupsOpenInAG--;
|
|
2732
|
+
}
|
|
2733
|
+
} else if (m3 === "]") {
|
|
2734
|
+
numCharClassesOpen--;
|
|
2735
|
+
}
|
|
2736
|
+
}
|
|
2737
|
+
} while (hasProcessedAG);
|
|
2738
|
+
hiddenCaptures.push(...addedHiddenCaptures);
|
|
2739
|
+
expression = replaceUnescaped(
|
|
2740
|
+
expression,
|
|
2741
|
+
String.raw`\\(?<backrefNum>[1-9]\d*)|<\$\$(?<wrappedBackrefNum>\d+)>`,
|
|
2742
|
+
({ 0: m3, groups: { backrefNum, wrappedBackrefNum } }) => {
|
|
2743
|
+
if (backrefNum) {
|
|
2744
|
+
const bNum = +backrefNum;
|
|
2745
|
+
if (bNum > captureNumMap.length - 1) {
|
|
2746
|
+
throw new Error(`Backref "${m3}" greater than number of captures`);
|
|
2747
|
+
}
|
|
2748
|
+
return `\\${captureNumMap[bNum]}`;
|
|
2749
|
+
}
|
|
2750
|
+
return `\\${wrappedBackrefNum}`;
|
|
2751
|
+
},
|
|
2752
|
+
Context.DEFAULT
|
|
2753
|
+
);
|
|
2754
|
+
return {
|
|
2755
|
+
pattern: expression,
|
|
2756
|
+
captureTransfers,
|
|
2757
|
+
hiddenCaptures
|
|
2758
|
+
};
|
|
2759
|
+
}
|
|
2760
|
+
var baseQuantifier = String.raw`(?:[?*+]|\{\d+(?:,\d*)?\})`;
|
|
2761
|
+
var possessivePluginToken = new RegExp(String.raw`
|
|
2762
|
+
\\(?: \d+
|
|
2763
|
+
| c[A-Za-z]
|
|
2764
|
+
| [gk]<[^>]+>
|
|
2765
|
+
| [pPu]\{[^\}]+\}
|
|
2766
|
+
| u[A-Fa-f\d]{4}
|
|
2767
|
+
| x[A-Fa-f\d]{2}
|
|
2768
|
+
)
|
|
2769
|
+
| \((?: \? (?: [:=!>]
|
|
2770
|
+
| <(?:[=!]|[^>]+>)
|
|
2771
|
+
| [A-Za-z\-]+:
|
|
2772
|
+
| \(DEFINE\)
|
|
2773
|
+
))?
|
|
2774
|
+
| (?<qBase>${baseQuantifier})(?<qMod>[?+]?)(?<invalidQ>[?*+\{]?)
|
|
2775
|
+
| \\?.
|
|
2776
|
+
`.replace(/\s+/g, ""), "gsu");
|
|
2777
|
+
function possessive(expression) {
|
|
2778
|
+
if (!new RegExp(`${baseQuantifier}\\+`).test(expression)) {
|
|
2779
|
+
return {
|
|
2780
|
+
pattern: expression
|
|
2781
|
+
};
|
|
2782
|
+
}
|
|
2783
|
+
const openGroupIndices = [];
|
|
2784
|
+
let lastGroupIndex = null;
|
|
2785
|
+
let lastCharClassIndex = null;
|
|
2786
|
+
let lastToken = "";
|
|
2787
|
+
let numCharClassesOpen = 0;
|
|
2788
|
+
let match;
|
|
2789
|
+
possessivePluginToken.lastIndex = 0;
|
|
2790
|
+
while (match = possessivePluginToken.exec(expression)) {
|
|
2791
|
+
const { 0: m3, index, groups: { qBase, qMod, invalidQ } } = match;
|
|
2792
|
+
if (m3 === "[") {
|
|
2793
|
+
if (!numCharClassesOpen) {
|
|
2794
|
+
lastCharClassIndex = index;
|
|
2795
|
+
}
|
|
2796
|
+
numCharClassesOpen++;
|
|
2797
|
+
} else if (m3 === "]") {
|
|
2798
|
+
if (numCharClassesOpen) {
|
|
2799
|
+
numCharClassesOpen--;
|
|
2800
|
+
} else {
|
|
2801
|
+
lastCharClassIndex = null;
|
|
2802
|
+
}
|
|
2803
|
+
} else if (!numCharClassesOpen) {
|
|
2804
|
+
if (qMod === "+" && lastToken && !lastToken.startsWith("(")) {
|
|
2805
|
+
if (invalidQ) {
|
|
2806
|
+
throw new Error(`Invalid quantifier "${m3}"`);
|
|
2807
|
+
}
|
|
2808
|
+
let charsAdded = -1;
|
|
2809
|
+
if (/^\{\d+\}$/.test(qBase)) {
|
|
2810
|
+
expression = spliceStr(expression, index + qBase.length, qMod, "");
|
|
2811
|
+
} else {
|
|
2812
|
+
if (lastToken === ")" || lastToken === "]") {
|
|
2813
|
+
const nodeIndex = lastToken === ")" ? lastGroupIndex : lastCharClassIndex;
|
|
2814
|
+
if (nodeIndex === null) {
|
|
2815
|
+
throw new Error(`Invalid unmatched "${lastToken}"`);
|
|
2816
|
+
}
|
|
2817
|
+
expression = `${expression.slice(0, nodeIndex)}(?>${expression.slice(nodeIndex, index)}${qBase})${expression.slice(index + m3.length)}`;
|
|
2818
|
+
} else {
|
|
2819
|
+
expression = `${expression.slice(0, index - lastToken.length)}(?>${lastToken}${qBase})${expression.slice(index + m3.length)}`;
|
|
2820
|
+
}
|
|
2821
|
+
charsAdded += 4;
|
|
2822
|
+
}
|
|
2823
|
+
possessivePluginToken.lastIndex += charsAdded;
|
|
2824
|
+
} else if (m3[0] === "(") {
|
|
2825
|
+
openGroupIndices.push(index);
|
|
2826
|
+
} else if (m3 === ")") {
|
|
2827
|
+
lastGroupIndex = openGroupIndices.length ? openGroupIndices.pop() : null;
|
|
2828
|
+
}
|
|
2829
|
+
}
|
|
2830
|
+
lastToken = m3;
|
|
2831
|
+
}
|
|
2832
|
+
return {
|
|
2833
|
+
pattern: expression
|
|
2834
|
+
};
|
|
2835
|
+
}
|
|
2836
|
+
|
|
2837
|
+
// node_modules/.pnpm/regex-recursion@6.0.2/node_modules/regex-recursion/src/index.js
|
|
2838
|
+
var r3 = String.raw;
|
|
2839
|
+
var gRToken = r3`\\g<(?<gRNameOrNum>[^>&]+)&R=(?<gRDepth>[^>]+)>`;
|
|
2840
|
+
var recursiveToken = r3`\(\?R=(?<rDepth>[^\)]+)\)|${gRToken}`;
|
|
2841
|
+
var namedCaptureDelim = r3`\(\?<(?![=!])(?<captureName>[^>]+)>`;
|
|
2842
|
+
var captureDelim = r3`${namedCaptureDelim}|(?<unnamed>\()(?!\?)`;
|
|
2843
|
+
var token = new RegExp(r3`${namedCaptureDelim}|${recursiveToken}|\(\?|\\?.`, "gsu");
|
|
2844
|
+
var overlappingRecursionMsg = "Cannot use multiple overlapping recursions";
|
|
2845
|
+
function recursion(pattern, data) {
|
|
2846
|
+
const { hiddenCaptures, mode } = {
|
|
2847
|
+
hiddenCaptures: [],
|
|
2848
|
+
mode: "plugin",
|
|
2849
|
+
...data
|
|
2850
|
+
};
|
|
2851
|
+
let captureTransfers = data?.captureTransfers ?? /* @__PURE__ */ new Map();
|
|
2852
|
+
if (!new RegExp(recursiveToken, "su").test(pattern)) {
|
|
2853
|
+
return {
|
|
2854
|
+
pattern,
|
|
2855
|
+
captureTransfers,
|
|
2856
|
+
hiddenCaptures
|
|
2857
|
+
};
|
|
2858
|
+
}
|
|
2859
|
+
if (mode === "plugin" && hasUnescaped(pattern, r3`\(\?\(DEFINE\)`, Context.DEFAULT)) {
|
|
2860
|
+
throw new Error("DEFINE groups cannot be used with recursion");
|
|
2861
|
+
}
|
|
2862
|
+
const addedHiddenCaptures = [];
|
|
2863
|
+
const hasNumberedBackref = hasUnescaped(pattern, r3`\\[1-9]`, Context.DEFAULT);
|
|
2864
|
+
const groupContentsStartPos = /* @__PURE__ */ new Map();
|
|
2865
|
+
const openGroups = [];
|
|
2866
|
+
let hasRecursed = false;
|
|
2867
|
+
let numCharClassesOpen = 0;
|
|
2868
|
+
let numCapturesPassed = 0;
|
|
2869
|
+
let match;
|
|
2870
|
+
token.lastIndex = 0;
|
|
2871
|
+
while (match = token.exec(pattern)) {
|
|
2872
|
+
const { 0: m3, groups: { captureName, rDepth, gRNameOrNum, gRDepth } } = match;
|
|
2873
|
+
if (m3 === "[") {
|
|
2874
|
+
numCharClassesOpen++;
|
|
2875
|
+
} else if (!numCharClassesOpen) {
|
|
2876
|
+
if (rDepth) {
|
|
2877
|
+
assertMaxInBounds(rDepth);
|
|
2878
|
+
if (hasRecursed) {
|
|
2879
|
+
throw new Error(overlappingRecursionMsg);
|
|
2880
|
+
}
|
|
2881
|
+
if (hasNumberedBackref) {
|
|
2882
|
+
throw new Error(
|
|
2883
|
+
// When used in `external` mode by transpilers other than Regex+, backrefs might have
|
|
2884
|
+
// gone through conversion from named to numbered, so avoid a misleading error
|
|
2885
|
+
`${mode === "external" ? "Backrefs" : "Numbered backrefs"} cannot be used with global recursion`
|
|
2886
|
+
);
|
|
2887
|
+
}
|
|
2888
|
+
const left = pattern.slice(0, match.index);
|
|
2889
|
+
const right = pattern.slice(token.lastIndex);
|
|
2890
|
+
if (hasUnescaped(right, recursiveToken, Context.DEFAULT)) {
|
|
2891
|
+
throw new Error(overlappingRecursionMsg);
|
|
2892
|
+
}
|
|
2893
|
+
const reps = +rDepth - 1;
|
|
2894
|
+
pattern = makeRecursive(
|
|
2895
|
+
left,
|
|
2896
|
+
right,
|
|
2897
|
+
reps,
|
|
2898
|
+
false,
|
|
2899
|
+
hiddenCaptures,
|
|
2900
|
+
addedHiddenCaptures,
|
|
2901
|
+
numCapturesPassed
|
|
2902
|
+
);
|
|
2903
|
+
captureTransfers = mapCaptureTransfers(
|
|
2904
|
+
captureTransfers,
|
|
2905
|
+
left,
|
|
2906
|
+
reps,
|
|
2907
|
+
addedHiddenCaptures.length,
|
|
2908
|
+
0,
|
|
2909
|
+
numCapturesPassed
|
|
2910
|
+
);
|
|
2911
|
+
break;
|
|
2912
|
+
} else if (gRNameOrNum) {
|
|
2913
|
+
assertMaxInBounds(gRDepth);
|
|
2914
|
+
let isWithinReffedGroup = false;
|
|
2915
|
+
for (const g of openGroups) {
|
|
2916
|
+
if (g.name === gRNameOrNum || g.num === +gRNameOrNum) {
|
|
2917
|
+
isWithinReffedGroup = true;
|
|
2918
|
+
if (g.hasRecursedWithin) {
|
|
2919
|
+
throw new Error(overlappingRecursionMsg);
|
|
2920
|
+
}
|
|
2921
|
+
break;
|
|
2922
|
+
}
|
|
2923
|
+
}
|
|
2924
|
+
if (!isWithinReffedGroup) {
|
|
2925
|
+
throw new Error(r3`Recursive \g cannot be used outside the referenced group "${mode === "external" ? gRNameOrNum : r3`\g<${gRNameOrNum}&R=${gRDepth}>`}"`);
|
|
2926
|
+
}
|
|
2927
|
+
const startPos = groupContentsStartPos.get(gRNameOrNum);
|
|
2928
|
+
const groupContents = getGroupContents(pattern, startPos);
|
|
2929
|
+
if (hasNumberedBackref && hasUnescaped(groupContents, r3`${namedCaptureDelim}|\((?!\?)`, Context.DEFAULT)) {
|
|
2930
|
+
throw new Error(
|
|
2931
|
+
// When used in `external` mode by transpilers other than Regex+, backrefs might have
|
|
2932
|
+
// gone through conversion from named to numbered, so avoid a misleading error
|
|
2933
|
+
`${mode === "external" ? "Backrefs" : "Numbered backrefs"} cannot be used with recursion of capturing groups`
|
|
2934
|
+
);
|
|
2935
|
+
}
|
|
2936
|
+
const groupContentsLeft = pattern.slice(startPos, match.index);
|
|
2937
|
+
const groupContentsRight = groupContents.slice(groupContentsLeft.length + m3.length);
|
|
2938
|
+
const numAddedHiddenCapturesPreExpansion = addedHiddenCaptures.length;
|
|
2939
|
+
const reps = +gRDepth - 1;
|
|
2940
|
+
const expansion = makeRecursive(
|
|
2941
|
+
groupContentsLeft,
|
|
2942
|
+
groupContentsRight,
|
|
2943
|
+
reps,
|
|
2944
|
+
true,
|
|
2945
|
+
hiddenCaptures,
|
|
2946
|
+
addedHiddenCaptures,
|
|
2947
|
+
numCapturesPassed
|
|
2948
|
+
);
|
|
2949
|
+
captureTransfers = mapCaptureTransfers(
|
|
2950
|
+
captureTransfers,
|
|
2951
|
+
groupContentsLeft,
|
|
2952
|
+
reps,
|
|
2953
|
+
addedHiddenCaptures.length - numAddedHiddenCapturesPreExpansion,
|
|
2954
|
+
numAddedHiddenCapturesPreExpansion,
|
|
2955
|
+
numCapturesPassed
|
|
2956
|
+
);
|
|
2957
|
+
const pre = pattern.slice(0, startPos);
|
|
2958
|
+
const post = pattern.slice(startPos + groupContents.length);
|
|
2959
|
+
pattern = `${pre}${expansion}${post}`;
|
|
2960
|
+
token.lastIndex += expansion.length - m3.length - groupContentsLeft.length - groupContentsRight.length;
|
|
2961
|
+
openGroups.forEach((g) => g.hasRecursedWithin = true);
|
|
2962
|
+
hasRecursed = true;
|
|
2963
|
+
} else if (captureName) {
|
|
2964
|
+
numCapturesPassed++;
|
|
2965
|
+
groupContentsStartPos.set(String(numCapturesPassed), token.lastIndex);
|
|
2966
|
+
groupContentsStartPos.set(captureName, token.lastIndex);
|
|
2967
|
+
openGroups.push({
|
|
2968
|
+
num: numCapturesPassed,
|
|
2969
|
+
name: captureName
|
|
2970
|
+
});
|
|
2971
|
+
} else if (m3[0] === "(") {
|
|
2972
|
+
const isUnnamedCapture = m3 === "(";
|
|
2973
|
+
if (isUnnamedCapture) {
|
|
2974
|
+
numCapturesPassed++;
|
|
2975
|
+
groupContentsStartPos.set(String(numCapturesPassed), token.lastIndex);
|
|
2976
|
+
}
|
|
2977
|
+
openGroups.push(isUnnamedCapture ? { num: numCapturesPassed } : {});
|
|
2978
|
+
} else if (m3 === ")") {
|
|
2979
|
+
openGroups.pop();
|
|
2980
|
+
}
|
|
2981
|
+
} else if (m3 === "]") {
|
|
2982
|
+
numCharClassesOpen--;
|
|
2983
|
+
}
|
|
2984
|
+
}
|
|
2985
|
+
hiddenCaptures.push(...addedHiddenCaptures);
|
|
2986
|
+
return {
|
|
2987
|
+
pattern,
|
|
2988
|
+
captureTransfers,
|
|
2989
|
+
hiddenCaptures
|
|
2990
|
+
};
|
|
2991
|
+
}
|
|
2992
|
+
function assertMaxInBounds(max) {
|
|
2993
|
+
const errMsg = `Max depth must be integer between 2 and 100; used ${max}`;
|
|
2994
|
+
if (!/^[1-9]\d*$/.test(max)) {
|
|
2995
|
+
throw new Error(errMsg);
|
|
2996
|
+
}
|
|
2997
|
+
max = +max;
|
|
2998
|
+
if (max < 2 || max > 100) {
|
|
2999
|
+
throw new Error(errMsg);
|
|
3000
|
+
}
|
|
3001
|
+
}
|
|
3002
|
+
function makeRecursive(left, right, reps, isSubpattern, hiddenCaptures, addedHiddenCaptures, numCapturesPassed) {
|
|
3003
|
+
const namesInRecursed = /* @__PURE__ */ new Set();
|
|
3004
|
+
if (isSubpattern) {
|
|
3005
|
+
forEachUnescaped(left + right, namedCaptureDelim, ({ groups: { captureName } }) => {
|
|
3006
|
+
namesInRecursed.add(captureName);
|
|
3007
|
+
}, Context.DEFAULT);
|
|
3008
|
+
}
|
|
3009
|
+
const rest = [
|
|
3010
|
+
reps,
|
|
3011
|
+
isSubpattern ? namesInRecursed : null,
|
|
3012
|
+
hiddenCaptures,
|
|
3013
|
+
addedHiddenCaptures,
|
|
3014
|
+
numCapturesPassed
|
|
3015
|
+
];
|
|
3016
|
+
return `${left}${repeatWithDepth(`(?:${left}`, "forward", ...rest)}(?:)${repeatWithDepth(`${right})`, "backward", ...rest)}${right}`;
|
|
3017
|
+
}
|
|
3018
|
+
function repeatWithDepth(pattern, direction, reps, namesInRecursed, hiddenCaptures, addedHiddenCaptures, numCapturesPassed) {
|
|
3019
|
+
const startNum = 2;
|
|
3020
|
+
const getDepthNum = (i2) => direction === "forward" ? i2 + startNum : reps - i2 + startNum - 1;
|
|
3021
|
+
let result = "";
|
|
3022
|
+
for (let i2 = 0; i2 < reps; i2++) {
|
|
3023
|
+
const depthNum = getDepthNum(i2);
|
|
3024
|
+
result += replaceUnescaped(
|
|
3025
|
+
pattern,
|
|
3026
|
+
r3`${captureDelim}|\\k<(?<backref>[^>]+)>`,
|
|
3027
|
+
({ 0: m3, groups: { captureName, unnamed, backref } }) => {
|
|
3028
|
+
if (backref && namesInRecursed && !namesInRecursed.has(backref)) {
|
|
3029
|
+
return m3;
|
|
3030
|
+
}
|
|
3031
|
+
const suffix = `_$${depthNum}`;
|
|
3032
|
+
if (unnamed || captureName) {
|
|
3033
|
+
const addedCaptureNum = numCapturesPassed + addedHiddenCaptures.length + 1;
|
|
3034
|
+
addedHiddenCaptures.push(addedCaptureNum);
|
|
3035
|
+
incrementIfAtLeast2(hiddenCaptures, addedCaptureNum);
|
|
3036
|
+
return unnamed ? m3 : `(?<${captureName}${suffix}>`;
|
|
3037
|
+
}
|
|
3038
|
+
return r3`\k<${backref}${suffix}>`;
|
|
3039
|
+
},
|
|
3040
|
+
Context.DEFAULT
|
|
3041
|
+
);
|
|
3042
|
+
}
|
|
3043
|
+
return result;
|
|
3044
|
+
}
|
|
3045
|
+
function incrementIfAtLeast2(arr, threshold) {
|
|
3046
|
+
for (let i2 = 0; i2 < arr.length; i2++) {
|
|
3047
|
+
if (arr[i2] >= threshold) {
|
|
3048
|
+
arr[i2]++;
|
|
3049
|
+
}
|
|
3050
|
+
}
|
|
3051
|
+
}
|
|
3052
|
+
function mapCaptureTransfers(captureTransfers, left, reps, numCapturesAddedInExpansion, numAddedHiddenCapturesPreExpansion, numCapturesPassed) {
|
|
3053
|
+
if (captureTransfers.size && numCapturesAddedInExpansion) {
|
|
3054
|
+
let numCapturesInLeft = 0;
|
|
3055
|
+
forEachUnescaped(left, captureDelim, () => numCapturesInLeft++, Context.DEFAULT);
|
|
3056
|
+
const recursionDelimCaptureNum = numCapturesPassed - numCapturesInLeft + numAddedHiddenCapturesPreExpansion;
|
|
3057
|
+
const newCaptureTransfers = /* @__PURE__ */ new Map();
|
|
3058
|
+
captureTransfers.forEach((from, to) => {
|
|
3059
|
+
const numCapturesInRight = (numCapturesAddedInExpansion - numCapturesInLeft * reps) / reps;
|
|
3060
|
+
const numCapturesAddedInLeft = numCapturesInLeft * reps;
|
|
3061
|
+
const newTo = to > recursionDelimCaptureNum + numCapturesInLeft ? to + numCapturesAddedInExpansion : to;
|
|
3062
|
+
const newFrom = [];
|
|
3063
|
+
for (const f3 of from) {
|
|
3064
|
+
if (f3 <= recursionDelimCaptureNum) {
|
|
3065
|
+
newFrom.push(f3);
|
|
3066
|
+
} else if (f3 > recursionDelimCaptureNum + numCapturesInLeft + numCapturesInRight) {
|
|
3067
|
+
newFrom.push(f3 + numCapturesAddedInExpansion);
|
|
3068
|
+
} else if (f3 <= recursionDelimCaptureNum + numCapturesInLeft) {
|
|
3069
|
+
for (let i2 = 0; i2 <= reps; i2++) {
|
|
3070
|
+
newFrom.push(f3 + numCapturesInLeft * i2);
|
|
3071
|
+
}
|
|
3072
|
+
} else {
|
|
3073
|
+
for (let i2 = 0; i2 <= reps; i2++) {
|
|
3074
|
+
newFrom.push(f3 + numCapturesAddedInLeft + numCapturesInRight * i2);
|
|
3075
|
+
}
|
|
3076
|
+
}
|
|
3077
|
+
}
|
|
3078
|
+
newCaptureTransfers.set(newTo, newFrom);
|
|
3079
|
+
});
|
|
3080
|
+
return newCaptureTransfers;
|
|
3081
|
+
}
|
|
3082
|
+
return captureTransfers;
|
|
3083
|
+
}
|
|
3084
|
+
|
|
3085
|
+
// src/index.js
|
|
3086
|
+
function toRegExp(pattern, options) {
|
|
3087
|
+
const d2 = toRegExpDetails(pattern, options);
|
|
3088
|
+
if (d2.options) {
|
|
3089
|
+
return new EmulatedRegExp(d2.pattern, d2.flags, d2.options);
|
|
3090
|
+
}
|
|
3091
|
+
return new RegExp(d2.pattern, d2.flags);
|
|
3092
|
+
}
|
|
3093
|
+
function toRegExpDetails(pattern, options) {
|
|
3094
|
+
const opts = getOptions(options);
|
|
3095
|
+
const onigurumaAst = J2(pattern, {
|
|
3096
|
+
flags: opts.flags,
|
|
3097
|
+
normalizeUnknownPropertyNames: true,
|
|
3098
|
+
rules: {
|
|
3099
|
+
captureGroup: opts.rules.captureGroup,
|
|
3100
|
+
singleline: opts.rules.singleline
|
|
3101
|
+
},
|
|
3102
|
+
skipBackrefValidation: opts.rules.allowOrphanBackrefs,
|
|
3103
|
+
unicodePropertyMap: JsUnicodePropertyMap
|
|
3104
|
+
});
|
|
3105
|
+
const regexPlusAst = transform(onigurumaAst, {
|
|
3106
|
+
accuracy: opts.accuracy,
|
|
3107
|
+
asciiWordBoundaries: opts.rules.asciiWordBoundaries,
|
|
3108
|
+
avoidSubclass: opts.avoidSubclass,
|
|
3109
|
+
bestEffortTarget: opts.target
|
|
3110
|
+
});
|
|
3111
|
+
const generated = generate(regexPlusAst, opts);
|
|
3112
|
+
const recursionResult = recursion(generated.pattern, {
|
|
3113
|
+
captureTransfers: generated._captureTransfers,
|
|
3114
|
+
hiddenCaptures: generated._hiddenCaptures,
|
|
3115
|
+
mode: "external"
|
|
3116
|
+
});
|
|
3117
|
+
const possessiveResult = possessive(recursionResult.pattern);
|
|
3118
|
+
const atomicResult = atomic(possessiveResult.pattern, {
|
|
3119
|
+
captureTransfers: recursionResult.captureTransfers,
|
|
3120
|
+
hiddenCaptures: recursionResult.hiddenCaptures
|
|
3121
|
+
});
|
|
3122
|
+
const details = {
|
|
3123
|
+
pattern: atomicResult.pattern,
|
|
3124
|
+
flags: `${opts.hasIndices ? "d" : ""}${opts.global ? "g" : ""}${generated.flags}${generated.options.disable.v ? "u" : "v"}`
|
|
3125
|
+
};
|
|
3126
|
+
if (opts.avoidSubclass) {
|
|
3127
|
+
if (opts.lazyCompileLength !== Infinity) {
|
|
3128
|
+
throw new Error("Lazy compilation requires subclass");
|
|
3129
|
+
}
|
|
3130
|
+
} else {
|
|
3131
|
+
const hiddenCaptures = atomicResult.hiddenCaptures.sort((a2, b3) => a2 - b3);
|
|
3132
|
+
const transfers = Array.from(atomicResult.captureTransfers);
|
|
3133
|
+
const strategy = regexPlusAst._strategy;
|
|
3134
|
+
const lazyCompile = details.pattern.length >= opts.lazyCompileLength;
|
|
3135
|
+
if (hiddenCaptures.length || transfers.length || strategy || lazyCompile) {
|
|
3136
|
+
details.options = {
|
|
3137
|
+
...hiddenCaptures.length && { hiddenCaptures },
|
|
3138
|
+
...transfers.length && { transfers },
|
|
3139
|
+
...strategy && { strategy },
|
|
3140
|
+
...lazyCompile && { lazyCompile }
|
|
3141
|
+
};
|
|
3142
|
+
}
|
|
3143
|
+
}
|
|
3144
|
+
return details;
|
|
3145
|
+
}
|
|
3146
|
+
//# sourceMappingURL=index.js.map
|