├── lib
├── forum_web
│ ├── controllers
│ │ ├── page_html
│ │ │ └── home.html.heex
│ │ ├── page_html.ex
│ │ ├── page_controller.ex
│ │ ├── error_json.ex
│ │ └── error_html.ex
│ ├── components
│ │ ├── layouts
│ │ │ ├── app.html.heex
│ │ │ └── root.html.heex
│ │ └── layouts.ex
│ ├── gettext.ex
│ ├── router.ex
│ ├── endpoint.ex
│ └── telemetry.ex
├── forum
│ ├── mailer.ex
│ ├── repo.ex
│ └── application.ex
├── forum.ex
└── forum_web.ex
├── assets
├── index.js
├── .babelrc
├── static
│ ├── favicon.ico
│ └── robots.txt
├── styles
│ └── app.scss
├── package.json
├── webpack.config.js
└── pnpm-lock.yaml
├── .tool-versions
├── test
├── test_helper.exs
├── forum_web
│ └── controllers
│ │ ├── page_controller_test.exs
│ │ ├── error_json_test.exs
│ │ └── error_html_test.exs
└── support
│ ├── conn_case.ex
│ └── data_case.ex
├── priv
├── repo
│ ├── migrations
│ │ └── .formatter.exs
│ └── seeds.exs
└── gettext
│ ├── en
│ └── LC_MESSAGES
│ │ └── errors.po
│ └── errors.pot
├── README.md
├── dev.docker-compose.yml
├── .formatter.exs
├── justfile
├── config
├── prod.exs
├── test.exs
├── config.exs
├── dev.exs
└── runtime.exs
├── .gitignore
├── mix.exs
├── .credo.exs
└── mix.lock
/lib/forum_web/controllers/page_html/home.html.heex:
--------------------------------------------------------------------------------
1 | Hello Phoenix!
2 |
--------------------------------------------------------------------------------
/assets/index.js:
--------------------------------------------------------------------------------
1 | import "./styles/app.scss"
2 |
3 | console.log("Hello Phoenix!")
--------------------------------------------------------------------------------
/assets/.babelrc:
--------------------------------------------------------------------------------
1 | {
2 | "presets": [
3 | "@babel/preset-env"
4 | ]
5 | }
--------------------------------------------------------------------------------
/.tool-versions:
--------------------------------------------------------------------------------
1 | erlang 26.0.2
2 | elixir 1.15.2-otp-26
3 | nodejs lts-hydrogen
4 | pnpm 8.6.3
--------------------------------------------------------------------------------
/lib/forum_web/components/layouts/app.html.heex:
--------------------------------------------------------------------------------
1 |
2 | <%= @inner_content %>
3 |
4 |
--------------------------------------------------------------------------------
/test/test_helper.exs:
--------------------------------------------------------------------------------
1 | ExUnit.start()
2 | Ecto.Adapters.SQL.Sandbox.mode(Forum.Repo, :manual)
3 |
--------------------------------------------------------------------------------
/priv/repo/migrations/.formatter.exs:
--------------------------------------------------------------------------------
1 | [
2 | import_deps: [:ecto_sql],
3 | inputs: ["*.exs"]
4 | ]
5 |
--------------------------------------------------------------------------------
/assets/static/favicon.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/elixircn-dev/forum/HEAD/assets/static/favicon.ico
--------------------------------------------------------------------------------
/lib/forum/mailer.ex:
--------------------------------------------------------------------------------
1 | defmodule Forum.Mailer do
2 | @moduledoc false
3 |
4 | use Swoosh.Mailer, otp_app: :forum
5 | end
6 |
--------------------------------------------------------------------------------
/assets/styles/app.scss:
--------------------------------------------------------------------------------
1 | html {
2 | font-family: sans-serif;
3 |
4 | body {
5 | margin: 0;
6 | padding: 0;
7 | }
8 | }
9 |
--------------------------------------------------------------------------------
/lib/forum/repo.ex:
--------------------------------------------------------------------------------
1 | defmodule Forum.Repo do
2 | use Ecto.Repo,
3 | otp_app: :forum,
4 | adapter: Ecto.Adapters.Postgres
5 | end
6 |
--------------------------------------------------------------------------------
/lib/forum_web/controllers/page_html.ex:
--------------------------------------------------------------------------------
1 | defmodule ForumWeb.PageHTML do
2 | use ForumWeb, :html
3 |
4 | embed_templates "page_html/*"
5 | end
6 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | # forum
2 |
3 | 开发中的 Elixir 中文论坛,详见[开发计划](https://github.com/elixircn-dev/forum/issues/22)和[开发进度](https://github.com/elixircn-dev/forum/issues/23)。
4 |
--------------------------------------------------------------------------------
/lib/forum_web/components/layouts.ex:
--------------------------------------------------------------------------------
1 | defmodule ForumWeb.Layouts do
2 | @moduledoc false
3 |
4 | use ForumWeb, :html
5 |
6 | embed_templates "layouts/*"
7 | end
8 |
--------------------------------------------------------------------------------
/dev.docker-compose.yml:
--------------------------------------------------------------------------------
1 | version: "3"
2 |
3 | services:
4 | db:
5 | image: postgres:15
6 | ports:
7 | - 5432:5432
8 | environment:
9 | POSTGRES_PASSWORD: postgres
10 |
--------------------------------------------------------------------------------
/assets/static/robots.txt:
--------------------------------------------------------------------------------
1 | # See https://www.robotstxt.org/robotstxt.html for documentation on how to use the robots.txt file
2 | #
3 | # To ban all spiders from the entire site uncomment the next two lines:
4 | # User-agent: *
5 | # Disallow: /
6 |
--------------------------------------------------------------------------------
/.formatter.exs:
--------------------------------------------------------------------------------
1 | [
2 | import_deps: [:ecto, :ecto_sql, :phoenix],
3 | subdirectories: ["priv/*/migrations"],
4 | plugins: [Phoenix.LiveView.HTMLFormatter],
5 | inputs: ["*.{heex,ex,exs}", "{config,lib,test}/**/*.{heex,ex,exs}", "priv/*/seeds.exs"]
6 | ]
7 |
--------------------------------------------------------------------------------
/test/forum_web/controllers/page_controller_test.exs:
--------------------------------------------------------------------------------
1 | defmodule ForumWeb.PageControllerTest do
2 | use ForumWeb.ConnCase
3 |
4 | test "GET /", %{conn: conn} do
5 | conn = get(conn, ~p"/")
6 | assert html_response(conn, 200) =~ "Forum"
7 | end
8 | end
9 |
--------------------------------------------------------------------------------
/justfile:
--------------------------------------------------------------------------------
1 | format:
2 | mix format
3 |
4 | setup:
5 | mix deps.get
6 | just dev-env up -d
7 | mix ecto.setup
8 |
9 | dev-env +args:
10 | docker compose -f dev.docker-compose.yml {{args}}
11 |
12 | run +args='':
13 | iex -S mix {{args}}
14 |
15 | test:
16 | mix test
17 |
--------------------------------------------------------------------------------
/lib/forum.ex:
--------------------------------------------------------------------------------
1 | defmodule Forum do
2 | @moduledoc """
3 | Forum keeps the contexts that define your domain
4 | and business logic.
5 |
6 | Contexts are also responsible for managing your data, regardless
7 | if it comes from the database, an external API or others.
8 | """
9 | end
10 |
--------------------------------------------------------------------------------
/lib/forum_web/controllers/page_controller.ex:
--------------------------------------------------------------------------------
1 | defmodule ForumWeb.PageController do
2 | use ForumWeb, :controller
3 |
4 | def home(conn, _params) do
5 | # The home page is often custom made,
6 | # so skip the default app layout.
7 | render(conn, :home, layout: false)
8 | end
9 | end
10 |
--------------------------------------------------------------------------------
/priv/repo/seeds.exs:
--------------------------------------------------------------------------------
1 | # Script for populating the database. You can run it as:
2 | #
3 | # mix run priv/repo/seeds.exs
4 | #
5 | # Inside the script, you can read and write to any of your
6 | # repositories directly:
7 | #
8 | # Forum.Repo.insert!(%Forum.SomeSchema{})
9 | #
10 | # We recommend using the bang functions (`insert!`, `update!`
11 | # and so on) as they will fail if something goes wrong.
12 |
--------------------------------------------------------------------------------
/test/forum_web/controllers/error_json_test.exs:
--------------------------------------------------------------------------------
1 | defmodule ForumWeb.ErrorJSONTest do
2 | use ForumWeb.ConnCase, async: true
3 |
4 | test "renders 404" do
5 | assert ForumWeb.ErrorJSON.render("404.json", %{}) == %{errors: %{detail: "Not Found"}}
6 | end
7 |
8 | test "renders 500" do
9 | assert ForumWeb.ErrorJSON.render("500.json", %{}) ==
10 | %{errors: %{detail: "Internal Server Error"}}
11 | end
12 | end
13 |
--------------------------------------------------------------------------------
/test/forum_web/controllers/error_html_test.exs:
--------------------------------------------------------------------------------
1 | defmodule ForumWeb.ErrorHTMLTest do
2 | use ForumWeb.ConnCase, async: true
3 |
4 | # Bring render_to_string/4 for testing custom views
5 | import Phoenix.Template
6 |
7 | test "renders 404.html" do
8 | assert render_to_string(ForumWeb.ErrorHTML, "404", "html", []) == "Not Found"
9 | end
10 |
11 | test "renders 500.html" do
12 | assert render_to_string(ForumWeb.ErrorHTML, "500", "html", []) == "Internal Server Error"
13 | end
14 | end
15 |
--------------------------------------------------------------------------------
/lib/forum_web/controllers/error_json.ex:
--------------------------------------------------------------------------------
1 | defmodule ForumWeb.ErrorJSON do
2 | # If you want to customize a particular status code,
3 | # you may add your own clauses, such as:
4 | #
5 | # def render("500.json", _assigns) do
6 | # %{errors: %{detail: "Internal Server Error"}}
7 | # end
8 |
9 | # By default, Phoenix returns the status message from
10 | # the template name. For example, "404.json" becomes
11 | # "Not Found".
12 | def render(template, _assigns) do
13 | %{errors: %{detail: Phoenix.Controller.status_message_from_template(template)}}
14 | end
15 | end
16 |
--------------------------------------------------------------------------------
/lib/forum_web/controllers/error_html.ex:
--------------------------------------------------------------------------------
1 | defmodule ForumWeb.ErrorHTML do
2 | use ForumWeb, :html
3 |
4 | # If you want to customize your error pages,
5 | # uncomment the embed_templates/1 call below
6 | # and add pages to the error directory:
7 | #
8 | # * lib/forum_web/controllers/error_html/404.html.heex
9 | # * lib/forum_web/controllers/error_html/500.html.heex
10 | #
11 | # embed_templates "error_html/*"
12 |
13 | # The default is to render a plain text page based on
14 | # the template name. For example, "404.html" becomes
15 | # "Not Found".
16 | def render(template, _assigns) do
17 | Phoenix.Controller.status_message_from_template(template)
18 | end
19 | end
20 |
--------------------------------------------------------------------------------
/lib/forum_web/components/layouts/root.html.heex:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 | <.live_title suffix=" · Phoenix Framework">
8 | <%= assigns[:page_title] || "Forum" %>
9 |
10 |
11 |
13 |
14 |
15 | <%= @inner_content %>
16 |
17 |
18 |
--------------------------------------------------------------------------------
/config/prod.exs:
--------------------------------------------------------------------------------
1 | import Config
2 |
3 | # Note we also include the path to a cache manifest
4 | # containing the digested version of static files. This
5 | # manifest is generated by the `mix assets.deploy` task,
6 | # which you should run after static files are built and
7 | # before starting your production server.
8 | config :forum, ForumWeb.Endpoint,
9 | cache_static_manifest: "priv/static/cache_manifest.json",
10 | server: true
11 |
12 | # Configures Swoosh API Client
13 | config :swoosh, api_client: Swoosh.ApiClient.Finch, finch_name: Forum.Finch
14 |
15 | # Do not print debug messages in production
16 | config :logger, level: :info
17 |
18 | # Runtime production configuration, including reading
19 | # of environment variables, is done on config/runtime.exs.
20 |
--------------------------------------------------------------------------------
/lib/forum_web/gettext.ex:
--------------------------------------------------------------------------------
1 | defmodule ForumWeb.Gettext do
2 | @moduledoc """
3 | A module providing Internationalization with a gettext-based API.
4 |
5 | By using [Gettext](https://hexdocs.pm/gettext),
6 | your module gains a set of macros for translations, for example:
7 |
8 | import ForumWeb.Gettext
9 |
10 | # Simple translation
11 | gettext("Here is the string to translate")
12 |
13 | # Plural translation
14 | ngettext("Here is the string to translate",
15 | "Here are the strings to translate",
16 | 3)
17 |
18 | # Domain-based translation
19 | dgettext("errors", "Here is the error message to translate")
20 |
21 | See the [Gettext Docs](https://hexdocs.pm/gettext) for detailed usage.
22 | """
23 | use Gettext, otp_app: :forum
24 | end
25 |
--------------------------------------------------------------------------------
/.gitignore:
--------------------------------------------------------------------------------
1 | # The directory Mix will write compiled artifacts to.
2 | /_build/
3 |
4 | # If you run "mix test --cover", coverage assets end up here.
5 | /cover/
6 |
7 | # The directory Mix downloads your dependencies sources to.
8 | /deps/
9 |
10 | # Where 3rd-party dependencies like ExDoc output generated docs.
11 | /doc/
12 |
13 | # Ignore .fetch files in case you like to edit your project deps locally.
14 | /.fetch
15 |
16 | # If the VM crashes, it generates a dump, let's ignore it too.
17 | erl_crash.dump
18 |
19 | # Also ignore archive artifacts (built via "mix archive.build").
20 | *.ez
21 |
22 | # Temporary files, for example, from tests.
23 | /tmp/
24 |
25 | # Ignore package tarball (built via "mix hex.build").
26 | forum-*.tar
27 |
28 | # Ignore state assets.
29 | /priv/static/
30 |
31 | # In case you use Node.js/npm, you want to ignore these.
32 | npm-debug.log
33 | /assets/node_modules/
34 |
35 |
--------------------------------------------------------------------------------
/assets/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "forum",
3 | "version": "1.0.0",
4 | "description": "Frontend for forum",
5 | "main": "index.js",
6 | "scripts": {
7 | "test": "echo \"Error: no test specified\" && exit 1",
8 | "deploy": "cross-env NODE_ENV=production webpack --mode production",
9 | "watch": "cross-env NODE_ENV=development webpack --mode development --watch --watch-options-stdin"
10 | },
11 | "author": "Hentioe",
12 | "license": "UNLICENSE",
13 | "devDependencies": {
14 | "@babel/preset-env": "^7.22.5",
15 | "babel-loader": "^9.1.2",
16 | "copy-webpack-plugin": "^11.0.0",
17 | "cross-env": "^7.0.3",
18 | "css-loader": "^6.8.1",
19 | "css-minimizer-webpack-plugin": "^5.0.1",
20 | "glob": "^10.3.0",
21 | "mini-css-extract-plugin": "^2.7.6",
22 | "sass": "^1.63.6",
23 | "sass-loader": "^13.3.2",
24 | "webpack": "^5.88.0",
25 | "webpack-cli": "^5.1.4"
26 | }
27 | }
28 |
--------------------------------------------------------------------------------
/config/test.exs:
--------------------------------------------------------------------------------
1 | import Config
2 |
3 | # Configure your database
4 | #
5 | # The MIX_TEST_PARTITION environment variable can be used
6 | # to provide built-in test partitioning in CI environment.
7 | # Run `mix help test` for more information.
8 | config :forum, Forum.Repo,
9 | username: "postgres",
10 | password: "postgres",
11 | hostname: "localhost",
12 | database: "forum_test#{System.get_env("MIX_TEST_PARTITION")}",
13 | pool: Ecto.Adapters.SQL.Sandbox,
14 | pool_size: 10
15 |
16 | # We don't run a server during test. If one is required,
17 | # you can enable the server option below.
18 | config :forum, ForumWeb.Endpoint,
19 | http: [ip: {127, 0, 0, 1}, port: 4002],
20 | secret_key_base: "csm8iZnmOVJAsCTSYvA9bkLQvke9fqwo2xyMjHdBoZnaDXy5g1J1+6ocZ2KUgJmS",
21 | server: false
22 |
23 | # In test we don't send emails.
24 | config :forum, Forum.Mailer, adapter: Swoosh.Adapters.Test
25 |
26 | # Disable swoosh api client as it is only required for production adapters.
27 | config :swoosh, :api_client, false
28 |
29 | # Print only warnings and errors during test
30 | config :logger, level: :warning
31 |
32 | # Initialize plugs at runtime for faster test compilation
33 | config :phoenix, :plug_init_mode, :runtime
34 |
--------------------------------------------------------------------------------
/lib/forum/application.ex:
--------------------------------------------------------------------------------
1 | defmodule Forum.Application do
2 | # See https://hexdocs.pm/elixir/Application.html
3 | # for more information on OTP Applications
4 | @moduledoc false
5 |
6 | use Application
7 |
8 | @impl true
9 | def start(_type, _args) do
10 | children = [
11 | # Start the Telemetry supervisor
12 | ForumWeb.Telemetry,
13 | # Start the Ecto repository
14 | Forum.Repo,
15 | # Start the PubSub system
16 | {Phoenix.PubSub, name: Forum.PubSub},
17 | # Start Finch
18 | {Finch, name: Forum.Finch},
19 | # Start the Endpoint (http/https)
20 | ForumWeb.Endpoint
21 | # Start a worker by calling: Forum.Worker.start_link(arg)
22 | # {Forum.Worker, arg}
23 | ]
24 |
25 | # See https://hexdocs.pm/elixir/Supervisor.html
26 | # for other strategies and supported options
27 | opts = [strategy: :one_for_one, name: Forum.Supervisor]
28 | Supervisor.start_link(children, opts)
29 | end
30 |
31 | # Tell Phoenix to update the endpoint configuration
32 | # whenever the application is updated.
33 | @impl true
34 | def config_change(changed, _new, removed) do
35 | ForumWeb.Endpoint.config_change(changed, removed)
36 | :ok
37 | end
38 | end
39 |
--------------------------------------------------------------------------------
/test/support/conn_case.ex:
--------------------------------------------------------------------------------
1 | defmodule ForumWeb.ConnCase do
2 | @moduledoc """
3 | This module defines the test case to be used by
4 | tests that require setting up a connection.
5 |
6 | Such tests rely on `Phoenix.ConnTest` and also
7 | import other functionality to make it easier
8 | to build common data structures and query the data layer.
9 |
10 | Finally, if the test case interacts with the database,
11 | we enable the SQL sandbox, so changes done to the database
12 | are reverted at the end of every test. If you are using
13 | PostgreSQL, you can even run database tests asynchronously
14 | by setting `use ForumWeb.ConnCase, async: true`, although
15 | this option is not recommended for other databases.
16 | """
17 |
18 | use ExUnit.CaseTemplate
19 |
20 | using do
21 | quote do
22 | # The default endpoint for testing
23 | @endpoint ForumWeb.Endpoint
24 |
25 | use ForumWeb, :verified_routes
26 |
27 | # Import conveniences for testing with connections
28 | import Plug.Conn
29 | import Phoenix.ConnTest
30 | import ForumWeb.ConnCase
31 | end
32 | end
33 |
34 | setup tags do
35 | Forum.DataCase.setup_sandbox(tags)
36 | {:ok, conn: Phoenix.ConnTest.build_conn()}
37 | end
38 | end
39 |
--------------------------------------------------------------------------------
/lib/forum_web/router.ex:
--------------------------------------------------------------------------------
1 | defmodule ForumWeb.Router do
2 | use ForumWeb, :router
3 |
4 | pipeline :browser do
5 | plug :accepts, ["html"]
6 | plug :fetch_session
7 | plug :fetch_live_flash
8 | plug :put_root_layout, html: {ForumWeb.Layouts, :root}
9 | plug :protect_from_forgery
10 | plug :put_secure_browser_headers
11 | end
12 |
13 | pipeline :api do
14 | plug :accepts, ["json"]
15 | end
16 |
17 | scope "/", ForumWeb do
18 | pipe_through :browser
19 |
20 | get "/", PageController, :home
21 | end
22 |
23 | # Other scopes may use custom stacks.
24 | # scope "/api", ForumWeb do
25 | # pipe_through :api
26 | # end
27 |
28 | # Enable LiveDashboard and Swoosh mailbox preview in development
29 | if Application.compile_env(:forum, :dev_routes) do
30 | # If you want to use the LiveDashboard in production, you should put
31 | # it behind authentication and allow only admins to access it.
32 | # If your application does not have an admins-only section yet,
33 | # you can use Plug.BasicAuth to set up some basic authentication
34 | # as long as you are also using SSL (which you should anyway).
35 | import Phoenix.LiveDashboard.Router
36 |
37 | scope "/dev" do
38 | pipe_through :browser
39 |
40 | live_dashboard "/dashboard", metrics: ForumWeb.Telemetry
41 | forward "/mailbox", Plug.Swoosh.MailboxPreview
42 | end
43 | end
44 | end
45 |
--------------------------------------------------------------------------------
/config/config.exs:
--------------------------------------------------------------------------------
1 | # This file is responsible for configuring your application
2 | # and its dependencies with the aid of the Config module.
3 | #
4 | # This configuration file is loaded before any dependency and
5 | # is restricted to this project.
6 |
7 | # General application configuration
8 | import Config
9 |
10 | config :forum,
11 | ecto_repos: [Forum.Repo]
12 |
13 | # Configures the endpoint
14 | config :forum, ForumWeb.Endpoint,
15 | url: [host: "localhost"],
16 | render_errors: [
17 | formats: [html: ForumWeb.ErrorHTML, json: ForumWeb.ErrorJSON],
18 | layout: false
19 | ],
20 | pubsub_server: Forum.PubSub,
21 | live_view: [signing_salt: "qCv_z@AO"]
22 |
23 | # Configures the mailer
24 | #
25 | # By default it uses the "Local" adapter which stores the emails
26 | # locally. You can see the emails in your browser, at "/dev/mailbox".
27 | #
28 | # For production it's recommended to configure a different adapter
29 | # at the `config/runtime.exs`.
30 | config :forum, Forum.Mailer, adapter: Swoosh.Adapters.Local
31 |
32 | # Configures Elixir's Logger
33 | config :logger, :console,
34 | format: "$time $metadata[$level] $message\n",
35 | metadata: [:request_id]
36 |
37 | # Use Jason for JSON parsing in Phoenix
38 | config :phoenix, :json_library, Jason
39 |
40 | # Import environment specific config. This must remain at the bottom
41 | # of this file so it overrides the configuration defined above.
42 | import_config "#{config_env()}.exs"
43 |
--------------------------------------------------------------------------------
/lib/forum_web/endpoint.ex:
--------------------------------------------------------------------------------
1 | defmodule ForumWeb.Endpoint do
2 | use Phoenix.Endpoint, otp_app: :forum
3 |
4 | # The session will be stored in the cookie and signed,
5 | # this means its contents can be read but not tampered with.
6 | # Set :encryption_salt if you would also like to encrypt it.
7 | @session_options [
8 | store: :cookie,
9 | key: "_forum_key",
10 | signing_salt: "rx2ZQj7m",
11 | same_site: "Lax"
12 | ]
13 |
14 | socket "/live", Phoenix.LiveView.Socket, websocket: [connect_info: [session: @session_options]]
15 |
16 | # Serve at "/" the static files from "priv/static" directory.
17 | #
18 | # You should set gzip to true if you are running phx.digest
19 | # when deploying your static files in production.
20 | plug Plug.Static,
21 | at: "/",
22 | from: :forum,
23 | gzip: false,
24 | only: ForumWeb.static_paths()
25 |
26 | # Code reloading can be explicitly enabled under the
27 | # :code_reloader configuration of your endpoint.
28 | if code_reloading? do
29 | socket "/phoenix/live_reload/socket", Phoenix.LiveReloader.Socket
30 | plug Phoenix.LiveReloader
31 | plug Phoenix.CodeReloader
32 | plug Phoenix.Ecto.CheckRepoStatus, otp_app: :forum
33 | end
34 |
35 | plug Phoenix.LiveDashboard.RequestLogger,
36 | param_key: "request_logger",
37 | cookie_key: "request_logger"
38 |
39 | plug Plug.RequestId
40 | plug Plug.Telemetry, event_prefix: [:phoenix, :endpoint]
41 |
42 | plug Plug.Parsers,
43 | parsers: [:urlencoded, :multipart, :json],
44 | pass: ["*/*"],
45 | json_decoder: Phoenix.json_library()
46 |
47 | plug Plug.MethodOverride
48 | plug Plug.Head
49 | plug Plug.Session, @session_options
50 | plug ForumWeb.Router
51 | end
52 |
--------------------------------------------------------------------------------
/test/support/data_case.ex:
--------------------------------------------------------------------------------
1 | defmodule Forum.DataCase do
2 | @moduledoc """
3 | This module defines the setup for tests requiring
4 | access to the application's data layer.
5 |
6 | You may define functions here to be used as helpers in
7 | your tests.
8 |
9 | Finally, if the test case interacts with the database,
10 | we enable the SQL sandbox, so changes done to the database
11 | are reverted at the end of every test. If you are using
12 | PostgreSQL, you can even run database tests asynchronously
13 | by setting `use Forum.DataCase, async: true`, although
14 | this option is not recommended for other databases.
15 | """
16 |
17 | use ExUnit.CaseTemplate
18 |
19 | using do
20 | quote do
21 | alias Forum.Repo
22 |
23 | import Ecto
24 | import Ecto.Changeset
25 | import Ecto.Query
26 | import Forum.DataCase
27 | end
28 | end
29 |
30 | setup tags do
31 | Forum.DataCase.setup_sandbox(tags)
32 | :ok
33 | end
34 |
35 | @doc """
36 | Sets up the sandbox based on the test tags.
37 | """
38 | def setup_sandbox(tags) do
39 | pid = Ecto.Adapters.SQL.Sandbox.start_owner!(Forum.Repo, shared: not tags[:async])
40 | on_exit(fn -> Ecto.Adapters.SQL.Sandbox.stop_owner(pid) end)
41 | end
42 |
43 | @doc """
44 | A helper that transforms changeset errors into a map of messages.
45 |
46 | assert {:error, changeset} = Accounts.create_user(%{password: "short"})
47 | assert "password is too short" in errors_on(changeset).password
48 | assert %{password: ["password is too short"]} = errors_on(changeset)
49 |
50 | """
51 | def errors_on(changeset) do
52 | Ecto.Changeset.traverse_errors(changeset, fn {message, opts} ->
53 | Regex.replace(~r"%{(\w+)}", message, fn _, key ->
54 | opts |> Keyword.get(String.to_existing_atom(key), key) |> to_string()
55 | end)
56 | end)
57 | end
58 | end
59 |
--------------------------------------------------------------------------------
/assets/webpack.config.js:
--------------------------------------------------------------------------------
1 | const path = require("path");
2 | const glob = require("glob");
3 | const MiniCssExtractPlugin = require("mini-css-extract-plugin");
4 | const CssMinimizerPlugin = require("css-minimizer-webpack-plugin");
5 | const CopyWebpackPlugin = require("copy-webpack-plugin");
6 |
7 | module.exports = (_env, options) => {
8 | const devMode = options.mode !== "production";
9 |
10 | const terserPlugin = (compiler) => {
11 | const TerserPlugin = require("terser-webpack-plugin");
12 | new TerserPlugin({
13 | terserOptions: {
14 | compress: {},
15 | },
16 | }).apply(compiler);
17 | };
18 |
19 | const minimizer = [
20 | // If in development mode, do not compress the code
21 | !devMode && terserPlugin,
22 | new CssMinimizerPlugin({}),
23 | ].filter(Boolean);
24 |
25 | return {
26 | optimization: {
27 | minimize: true,
28 | minimizer,
29 | },
30 | entry: {
31 | app: glob.sync("./vendor/**/*.js").concat(["./index.js"]),
32 | },
33 | output: {
34 | filename: "[name].js",
35 | path: path.resolve(__dirname, "../priv/static/assets"),
36 | },
37 | devtool: devMode ? "source-map" : undefined,
38 | module: {
39 | rules: [
40 | {
41 | test: /\.m?js/,
42 | resolve: {
43 | fullySpecified: false,
44 | },
45 | },
46 | {
47 | test: /\.js$/,
48 | exclude: /node_modules/,
49 | use: {
50 | loader: "babel-loader",
51 | },
52 | },
53 | {
54 | test: /\.[s]?css$/,
55 | use: [
56 | MiniCssExtractPlugin.loader,
57 | "css-loader",
58 | {
59 | loader: "sass-loader",
60 | options: {
61 | // `dart-sass` is preferred
62 | implementation: require("sass"),
63 | },
64 | },
65 | ],
66 | },
67 | ],
68 | },
69 | plugins: [
70 | new MiniCssExtractPlugin({ filename: "../assets/[name].css" }),
71 | new CopyWebpackPlugin({ patterns: [{ from: "static/", to: "../" }] }),
72 | ],
73 | };
74 | };
75 |
--------------------------------------------------------------------------------
/mix.exs:
--------------------------------------------------------------------------------
1 | defmodule Forum.MixProject do
2 | use Mix.Project
3 |
4 | def project do
5 | [
6 | app: :forum,
7 | version: "0.1.0",
8 | elixir: "~> 1.15",
9 | elixirc_paths: elixirc_paths(Mix.env()),
10 | start_permanent: Mix.env() == :prod,
11 | aliases: aliases(),
12 | deps: deps(),
13 | dialyzer: dialyzer()
14 | ]
15 | end
16 |
17 | # Configuration for the OTP application.
18 | #
19 | # Type `mix help compile.app` for more information.
20 | def application do
21 | [
22 | mod: {Forum.Application, []},
23 | extra_applications: [:logger, :runtime_tools]
24 | ]
25 | end
26 |
27 | # Specifies which paths to compile per environment.
28 | defp elixirc_paths(:test), do: ["lib", "test/support"]
29 | defp elixirc_paths(_), do: ["lib"]
30 |
31 | # Configuration for dialyzer.
32 | defp dialyzer do
33 | [
34 | plt_add_apps: [:iex, :mix]
35 | ]
36 | end
37 |
38 | # Specifies your project dependencies.
39 | #
40 | # Type `mix help deps` for examples and options.
41 | defp deps do
42 | [
43 | {:dialyxir, "~> 1.3", only: [:dev], runtime: false},
44 | {:credo, "~> 1.7", only: [:dev, :test], runtime: false},
45 | {:phoenix, "~> 1.7.6"},
46 | {:phoenix_ecto, "~> 4.4"},
47 | {:ecto_sql, "~> 3.10"},
48 | {:postgrex, ">= 0.0.0"},
49 | {:phoenix_html, "~> 3.3"},
50 | {:phoenix_live_reload, "~> 1.2", only: :dev},
51 | {:phoenix_live_view, "~> 0.19.0"},
52 | {:floki, ">= 0.30.0", only: :test},
53 | {:phoenix_live_dashboard, "~> 0.8.0"},
54 | {:swoosh, "~> 1.3"},
55 | {:finch, "~> 0.13"},
56 | {:telemetry_metrics, "~> 0.6"},
57 | {:telemetry_poller, "~> 1.0"},
58 | {:gettext, "~> 0.20"},
59 | {:jason, "~> 1.2"},
60 | {:plug_cowboy, "~> 2.5"}
61 | ]
62 | end
63 |
64 | # Aliases are shortcuts or tasks specific to the current project.
65 | # For example, to install project dependencies and perform other setup tasks, run:
66 | #
67 | # $ mix setup
68 | #
69 | # See the documentation for `Mix` for more info on aliases.
70 | defp aliases do
71 | [
72 | setup: ["deps.get", "ecto.setup", "assets.setup", "assets.build"],
73 | "ecto.setup": ["ecto.create", "ecto.migrate", "run priv/repo/seeds.exs"],
74 | "ecto.reset": ["ecto.drop", "ecto.setup"],
75 | test: ["ecto.create --quiet", "ecto.migrate --quiet", "test"]
76 | ]
77 | end
78 | end
79 |
--------------------------------------------------------------------------------
/config/dev.exs:
--------------------------------------------------------------------------------
1 | import Config
2 |
3 | # Configure your database
4 | config :forum, Forum.Repo,
5 | username: "postgres",
6 | password: "postgres",
7 | hostname: "localhost",
8 | database: "forum_dev",
9 | stacktrace: true,
10 | show_sensitive_data_on_connection_error: true,
11 | pool_size: 10
12 |
13 | # For development, we disable any cache and enable
14 | # debugging and code reloading.
15 | #
16 | # The watchers configuration can be used to run external
17 | # watchers to your application. For example, we can use it
18 | # to bundle .js and .css sources.
19 | config :forum, ForumWeb.Endpoint,
20 | # Binding to loopback ipv4 address prevents access from other machines.
21 | # Change to `ip: {0, 0, 0, 0}` to allow access from other machines.
22 | http: [ip: {127, 0, 0, 1}, port: 4000],
23 | check_origin: false,
24 | code_reloader: true,
25 | debug_errors: true,
26 | secret_key_base: "oGcDmKT94uigcULIvOFV1CcAMGeEzCncvosQcIRUzZQ1XGoL+duxg5HfTL4ieb3x",
27 | watchers: [
28 | pnpm: ["run", "watch", cd: Path.expand("../assets", __DIR__)]
29 | ]
30 |
31 | # ## SSL Support
32 | #
33 | # In order to use HTTPS in development, a self-signed
34 | # certificate can be generated by running the following
35 | # Mix task:
36 | #
37 | # mix phx.gen.cert
38 | #
39 | # Run `mix help phx.gen.cert` for more information.
40 | #
41 | # The `http:` config above can be replaced with:
42 | #
43 | # https: [
44 | # port: 4001,
45 | # cipher_suite: :strong,
46 | # keyfile: "priv/cert/selfsigned_key.pem",
47 | # certfile: "priv/cert/selfsigned.pem"
48 | # ],
49 | #
50 | # If desired, both `http:` and `https:` keys can be
51 | # configured to run both http and https servers on
52 | # different ports.
53 |
54 | # Watch static and templates for browser reloading.
55 | config :forum, ForumWeb.Endpoint,
56 | live_reload: [
57 | patterns: [
58 | ~r"priv/static/.*(js|css|png|jpeg|jpg|gif|svg)$",
59 | ~r"priv/gettext/.*(po)$",
60 | ~r"lib/forum_web/(controllers|live|components)/.*(ex|heex)$"
61 | ]
62 | ]
63 |
64 | # Enable dev routes for dashboard and mailbox
65 | config :forum, dev_routes: true
66 |
67 | # Do not include metadata nor timestamps in development logs
68 | config :logger, :console, format: "[$level] $message\n"
69 |
70 | # Set a higher stacktrace during development. Avoid configuring such
71 | # in production as building large stacktraces may be expensive.
72 | config :phoenix, :stacktrace_depth, 20
73 |
74 | # Initialize plugs at runtime for faster development compilation
75 | config :phoenix, :plug_init_mode, :runtime
76 |
77 | # Disable swoosh api client as it is only required for production adapters.
78 | config :swoosh, :api_client, false
79 |
--------------------------------------------------------------------------------
/lib/forum_web.ex:
--------------------------------------------------------------------------------
1 | defmodule ForumWeb do
2 | @moduledoc """
3 | The entrypoint for defining your web interface, such
4 | as controllers, components, channels, and so on.
5 |
6 | This can be used in your application as:
7 |
8 | use ForumWeb, :controller
9 | use ForumWeb, :html
10 |
11 | The definitions below will be executed for every controller,
12 | component, etc, so keep them short and clean, focused
13 | on imports, uses and aliases.
14 |
15 | Do NOT define functions inside the quoted expressions
16 | below. Instead, define additional modules and import
17 | those modules here.
18 | """
19 |
20 | def static_paths, do: ~w(assets fonts images favicon.ico robots.txt)
21 |
22 | def router do
23 | quote do
24 | use Phoenix.Router, helpers: false
25 |
26 | # Import common connection and controller functions to use in pipelines
27 | import Plug.Conn
28 | import Phoenix.Controller
29 | import Phoenix.LiveView.Router
30 | end
31 | end
32 |
33 | def channel do
34 | quote do
35 | use Phoenix.Channel
36 | end
37 | end
38 |
39 | def controller do
40 | quote do
41 | use Phoenix.Controller,
42 | formats: [:html, :json],
43 | layouts: [html: ForumWeb.Layouts]
44 |
45 | import Plug.Conn
46 | import ForumWeb.Gettext
47 |
48 | unquote(verified_routes())
49 | end
50 | end
51 |
52 | def live_view do
53 | quote do
54 | use Phoenix.LiveView,
55 | layout: {ForumWeb.Layouts, :app}
56 |
57 | unquote(html_helpers())
58 | end
59 | end
60 |
61 | def live_component do
62 | quote do
63 | use Phoenix.LiveComponent
64 |
65 | unquote(html_helpers())
66 | end
67 | end
68 |
69 | def html do
70 | quote do
71 | use Phoenix.Component
72 |
73 | # Import convenience functions from controllers
74 | import Phoenix.Controller,
75 | only: [get_csrf_token: 0, view_module: 1, view_template: 1]
76 |
77 | # Include general helpers for rendering HTML
78 | unquote(html_helpers())
79 | end
80 | end
81 |
82 | defp html_helpers do
83 | quote do
84 | # HTML escaping functionality
85 | import Phoenix.HTML
86 | # Core UI components and translation
87 | import ForumWeb.Gettext
88 |
89 | # Shortcut for generating JS commands
90 | alias Phoenix.LiveView.JS
91 |
92 | # Routes generation with the ~p sigil
93 | unquote(verified_routes())
94 | end
95 | end
96 |
97 | def verified_routes do
98 | quote do
99 | use Phoenix.VerifiedRoutes,
100 | endpoint: ForumWeb.Endpoint,
101 | router: ForumWeb.Router,
102 | statics: ForumWeb.static_paths()
103 | end
104 | end
105 |
106 | @doc """
107 | When used, dispatch to the appropriate controller/view/etc.
108 | """
109 | defmacro __using__(which) when is_atom(which) do
110 | apply(__MODULE__, which, [])
111 | end
112 | end
113 |
--------------------------------------------------------------------------------
/priv/gettext/en/LC_MESSAGES/errors.po:
--------------------------------------------------------------------------------
1 | ## `msgid`s in this file come from POT (.pot) files.
2 | ##
3 | ## Do not add, change, or remove `msgid`s manually here as
4 | ## they're tied to the ones in the corresponding POT file
5 | ## (with the same domain).
6 | ##
7 | ## Use `mix gettext.extract --merge` or `mix gettext.merge`
8 | ## to merge POT files into PO files.
9 | msgid ""
10 | msgstr ""
11 | "Language: en\n"
12 |
13 | ## From Ecto.Changeset.cast/4
14 | msgid "can't be blank"
15 | msgstr ""
16 |
17 | ## From Ecto.Changeset.unique_constraint/3
18 | msgid "has already been taken"
19 | msgstr ""
20 |
21 | ## From Ecto.Changeset.put_change/3
22 | msgid "is invalid"
23 | msgstr ""
24 |
25 | ## From Ecto.Changeset.validate_acceptance/3
26 | msgid "must be accepted"
27 | msgstr ""
28 |
29 | ## From Ecto.Changeset.validate_format/3
30 | msgid "has invalid format"
31 | msgstr ""
32 |
33 | ## From Ecto.Changeset.validate_subset/3
34 | msgid "has an invalid entry"
35 | msgstr ""
36 |
37 | ## From Ecto.Changeset.validate_exclusion/3
38 | msgid "is reserved"
39 | msgstr ""
40 |
41 | ## From Ecto.Changeset.validate_confirmation/3
42 | msgid "does not match confirmation"
43 | msgstr ""
44 |
45 | ## From Ecto.Changeset.no_assoc_constraint/3
46 | msgid "is still associated with this entry"
47 | msgstr ""
48 |
49 | msgid "are still associated with this entry"
50 | msgstr ""
51 |
52 | ## From Ecto.Changeset.validate_length/3
53 | msgid "should have %{count} item(s)"
54 | msgid_plural "should have %{count} item(s)"
55 | msgstr[0] ""
56 | msgstr[1] ""
57 |
58 | msgid "should be %{count} character(s)"
59 | msgid_plural "should be %{count} character(s)"
60 | msgstr[0] ""
61 | msgstr[1] ""
62 |
63 | msgid "should be %{count} byte(s)"
64 | msgid_plural "should be %{count} byte(s)"
65 | msgstr[0] ""
66 | msgstr[1] ""
67 |
68 | msgid "should have at least %{count} item(s)"
69 | msgid_plural "should have at least %{count} item(s)"
70 | msgstr[0] ""
71 | msgstr[1] ""
72 |
73 | msgid "should be at least %{count} character(s)"
74 | msgid_plural "should be at least %{count} character(s)"
75 | msgstr[0] ""
76 | msgstr[1] ""
77 |
78 | msgid "should be at least %{count} byte(s)"
79 | msgid_plural "should be at least %{count} byte(s)"
80 | msgstr[0] ""
81 | msgstr[1] ""
82 |
83 | msgid "should have at most %{count} item(s)"
84 | msgid_plural "should have at most %{count} item(s)"
85 | msgstr[0] ""
86 | msgstr[1] ""
87 |
88 | msgid "should be at most %{count} character(s)"
89 | msgid_plural "should be at most %{count} character(s)"
90 | msgstr[0] ""
91 | msgstr[1] ""
92 |
93 | msgid "should be at most %{count} byte(s)"
94 | msgid_plural "should be at most %{count} byte(s)"
95 | msgstr[0] ""
96 | msgstr[1] ""
97 |
98 | ## From Ecto.Changeset.validate_number/3
99 | msgid "must be less than %{number}"
100 | msgstr ""
101 |
102 | msgid "must be greater than %{number}"
103 | msgstr ""
104 |
105 | msgid "must be less than or equal to %{number}"
106 | msgstr ""
107 |
108 | msgid "must be greater than or equal to %{number}"
109 | msgstr ""
110 |
111 | msgid "must be equal to %{number}"
112 | msgstr ""
113 |
--------------------------------------------------------------------------------
/priv/gettext/errors.pot:
--------------------------------------------------------------------------------
1 | ## This is a PO Template file.
2 | ##
3 | ## `msgid`s here are often extracted from source code.
4 | ## Add new translations manually only if they're dynamic
5 | ## translations that can't be statically extracted.
6 | ##
7 | ## Run `mix gettext.extract` to bring this file up to
8 | ## date. Leave `msgstr`s empty as changing them here has no
9 | ## effect: edit them in PO (`.po`) files instead.
10 |
11 | ## From Ecto.Changeset.cast/4
12 | msgid "can't be blank"
13 | msgstr ""
14 |
15 | ## From Ecto.Changeset.unique_constraint/3
16 | msgid "has already been taken"
17 | msgstr ""
18 |
19 | ## From Ecto.Changeset.put_change/3
20 | msgid "is invalid"
21 | msgstr ""
22 |
23 | ## From Ecto.Changeset.validate_acceptance/3
24 | msgid "must be accepted"
25 | msgstr ""
26 |
27 | ## From Ecto.Changeset.validate_format/3
28 | msgid "has invalid format"
29 | msgstr ""
30 |
31 | ## From Ecto.Changeset.validate_subset/3
32 | msgid "has an invalid entry"
33 | msgstr ""
34 |
35 | ## From Ecto.Changeset.validate_exclusion/3
36 | msgid "is reserved"
37 | msgstr ""
38 |
39 | ## From Ecto.Changeset.validate_confirmation/3
40 | msgid "does not match confirmation"
41 | msgstr ""
42 |
43 | ## From Ecto.Changeset.no_assoc_constraint/3
44 | msgid "is still associated with this entry"
45 | msgstr ""
46 |
47 | msgid "are still associated with this entry"
48 | msgstr ""
49 |
50 | ## From Ecto.Changeset.validate_length/3
51 | msgid "should have %{count} item(s)"
52 | msgid_plural "should have %{count} item(s)"
53 | msgstr[0] ""
54 | msgstr[1] ""
55 |
56 | msgid "should be %{count} character(s)"
57 | msgid_plural "should be %{count} character(s)"
58 | msgstr[0] ""
59 | msgstr[1] ""
60 |
61 | msgid "should be %{count} byte(s)"
62 | msgid_plural "should be %{count} byte(s)"
63 | msgstr[0] ""
64 | msgstr[1] ""
65 |
66 | msgid "should have at least %{count} item(s)"
67 | msgid_plural "should have at least %{count} item(s)"
68 | msgstr[0] ""
69 | msgstr[1] ""
70 |
71 | msgid "should be at least %{count} character(s)"
72 | msgid_plural "should be at least %{count} character(s)"
73 | msgstr[0] ""
74 | msgstr[1] ""
75 |
76 | msgid "should be at least %{count} byte(s)"
77 | msgid_plural "should be at least %{count} byte(s)"
78 | msgstr[0] ""
79 | msgstr[1] ""
80 |
81 | msgid "should have at most %{count} item(s)"
82 | msgid_plural "should have at most %{count} item(s)"
83 | msgstr[0] ""
84 | msgstr[1] ""
85 |
86 | msgid "should be at most %{count} character(s)"
87 | msgid_plural "should be at most %{count} character(s)"
88 | msgstr[0] ""
89 | msgstr[1] ""
90 |
91 | msgid "should be at most %{count} byte(s)"
92 | msgid_plural "should be at most %{count} byte(s)"
93 | msgstr[0] ""
94 | msgstr[1] ""
95 |
96 | ## From Ecto.Changeset.validate_number/3
97 | msgid "must be less than %{number}"
98 | msgstr ""
99 |
100 | msgid "must be greater than %{number}"
101 | msgstr ""
102 |
103 | msgid "must be less than or equal to %{number}"
104 | msgstr ""
105 |
106 | msgid "must be greater than or equal to %{number}"
107 | msgstr ""
108 |
109 | msgid "must be equal to %{number}"
110 | msgstr ""
111 |
--------------------------------------------------------------------------------
/lib/forum_web/telemetry.ex:
--------------------------------------------------------------------------------
1 | defmodule ForumWeb.Telemetry do
2 | @moduledoc false
3 |
4 | use Supervisor
5 | import Telemetry.Metrics
6 |
7 | def start_link(arg) do
8 | Supervisor.start_link(__MODULE__, arg, name: __MODULE__)
9 | end
10 |
11 | @impl true
12 | def init(_arg) do
13 | children = [
14 | # Telemetry poller will execute the given period measurements
15 | # every 10_000ms. Learn more here: https://hexdocs.pm/telemetry_metrics
16 | {:telemetry_poller, measurements: periodic_measurements(), period: 10_000}
17 | # Add reporters as children of your supervision tree.
18 | # {Telemetry.Metrics.ConsoleReporter, metrics: metrics()}
19 | ]
20 |
21 | Supervisor.init(children, strategy: :one_for_one)
22 | end
23 |
24 | def metrics do
25 | [
26 | # Phoenix Metrics
27 | summary("phoenix.endpoint.start.system_time",
28 | unit: {:native, :millisecond}
29 | ),
30 | summary("phoenix.endpoint.stop.duration",
31 | unit: {:native, :millisecond}
32 | ),
33 | summary("phoenix.router_dispatch.start.system_time",
34 | tags: [:route],
35 | unit: {:native, :millisecond}
36 | ),
37 | summary("phoenix.router_dispatch.exception.duration",
38 | tags: [:route],
39 | unit: {:native, :millisecond}
40 | ),
41 | summary("phoenix.router_dispatch.stop.duration",
42 | tags: [:route],
43 | unit: {:native, :millisecond}
44 | ),
45 | summary("phoenix.socket_connected.duration",
46 | unit: {:native, :millisecond}
47 | ),
48 | summary("phoenix.channel_join.duration",
49 | unit: {:native, :millisecond}
50 | ),
51 | summary("phoenix.channel_handled_in.duration",
52 | tags: [:event],
53 | unit: {:native, :millisecond}
54 | ),
55 |
56 | # Database Metrics
57 | summary("forum.repo.query.total_time",
58 | unit: {:native, :millisecond},
59 | description: "The sum of the other measurements"
60 | ),
61 | summary("forum.repo.query.decode_time",
62 | unit: {:native, :millisecond},
63 | description: "The time spent decoding the data received from the database"
64 | ),
65 | summary("forum.repo.query.query_time",
66 | unit: {:native, :millisecond},
67 | description: "The time spent executing the query"
68 | ),
69 | summary("forum.repo.query.queue_time",
70 | unit: {:native, :millisecond},
71 | description: "The time spent waiting for a database connection"
72 | ),
73 | summary("forum.repo.query.idle_time",
74 | unit: {:native, :millisecond},
75 | description:
76 | "The time the connection spent waiting before being checked out for the query"
77 | ),
78 |
79 | # VM Metrics
80 | summary("vm.memory.total", unit: {:byte, :kilobyte}),
81 | summary("vm.total_run_queue_lengths.total"),
82 | summary("vm.total_run_queue_lengths.cpu"),
83 | summary("vm.total_run_queue_lengths.io")
84 | ]
85 | end
86 |
87 | defp periodic_measurements do
88 | [
89 | # A module, function and arguments to be invoked periodically.
90 | # This function must call :telemetry.execute/3 and a metric must be added above.
91 | # {ForumWeb, :count_users, []}
92 | ]
93 | end
94 | end
95 |
--------------------------------------------------------------------------------
/config/runtime.exs:
--------------------------------------------------------------------------------
1 | import Config
2 |
3 | # config/runtime.exs is executed for all environments, including
4 | # during releases. It is executed after compilation and before the
5 | # system starts, so it is typically used to load production configuration
6 | # and secrets from environment variables or elsewhere. Do not define
7 | # any compile-time configuration in here, as it won't be applied.
8 | # The block below contains prod specific runtime configuration.
9 |
10 | # ## Using releases
11 | #
12 | # If you use `mix release`, you need to explicitly enable the server
13 | # by passing the PHX_SERVER=true when you start it:
14 | #
15 | # PHX_SERVER=true bin/forum start
16 | #
17 | # Alternatively, you can use `mix phx.gen.release` to generate a `bin/server`
18 | # script that automatically sets the env var above.
19 | if System.get_env("PHX_SERVER") do
20 | config :forum, ForumWeb.Endpoint, server: true
21 | end
22 |
23 | if config_env() == :prod do
24 | database_url =
25 | System.get_env("DATABASE_URL") ||
26 | raise """
27 | environment variable DATABASE_URL is missing.
28 | For example: ecto://USER:PASS@HOST/DATABASE
29 | """
30 |
31 | maybe_ipv6 = if System.get_env("ECTO_IPV6") in ~w(true 1), do: [:inet6], else: []
32 |
33 | config :forum, Forum.Repo,
34 | # ssl: true,
35 | url: database_url,
36 | pool_size: String.to_integer(System.get_env("POOL_SIZE") || "10"),
37 | socket_options: maybe_ipv6
38 |
39 | # The secret key base is used to sign/encrypt cookies and other secrets.
40 | # A default value is used in config/dev.exs and config/test.exs but you
41 | # want to use a different value for prod and you most likely don't want
42 | # to check this value into version control, so we use an environment
43 | # variable instead.
44 | secret_key_base =
45 | System.get_env("SECRET_KEY_BASE") ||
46 | raise """
47 | environment variable SECRET_KEY_BASE is missing.
48 | You can generate one by calling: mix phx.gen.secret
49 | """
50 |
51 | host = System.get_env("PHX_HOST") || "example.com"
52 | port = String.to_integer(System.get_env("PORT") || "4000")
53 |
54 | config :forum, ForumWeb.Endpoint,
55 | url: [host: host, port: 443, scheme: "https"],
56 | http: [
57 | # Enable IPv6 and bind on all interfaces.
58 | # Set it to {0, 0, 0, 0, 0, 0, 0, 1} for local network only access.
59 | # See the documentation on https://hexdocs.pm/plug_cowboy/Plug.Cowboy.html
60 | # for details about using IPv6 vs IPv4 and loopback vs public addresses.
61 | ip: {0, 0, 0, 0, 0, 0, 0, 0},
62 | port: port
63 | ],
64 | secret_key_base: secret_key_base
65 |
66 | # ## SSL Support
67 | #
68 | # To get SSL working, you will need to add the `https` key
69 | # to your endpoint configuration:
70 | #
71 | # config :forum, ForumWeb.Endpoint,
72 | # https: [
73 | # ...,
74 | # port: 443,
75 | # cipher_suite: :strong,
76 | # keyfile: System.get_env("SOME_APP_SSL_KEY_PATH"),
77 | # certfile: System.get_env("SOME_APP_SSL_CERT_PATH")
78 | # ]
79 | #
80 | # The `cipher_suite` is set to `:strong` to support only the
81 | # latest and more secure SSL ciphers. This means old browsers
82 | # and clients may not be supported. You can set it to
83 | # `:compatible` for wider support.
84 | #
85 | # `:keyfile` and `:certfile` expect an absolute path to the key
86 | # and cert in disk or a relative path inside priv, for example
87 | # "priv/ssl/server.key". For all supported SSL configuration
88 | # options, see https://hexdocs.pm/plug/Plug.SSL.html#configure/1
89 | #
90 | # We also recommend setting `force_ssl` in your endpoint, ensuring
91 | # no data is ever sent via http, always redirecting to https:
92 | #
93 | # config :forum, ForumWeb.Endpoint,
94 | # force_ssl: [hsts: true]
95 | #
96 | # Check `Plug.SSL` for all available options in `force_ssl`.
97 |
98 | # ## Configuring the mailer
99 | #
100 | # In production you need to configure the mailer to use a different adapter.
101 | # Also, you may need to configure the Swoosh API client of your choice if you
102 | # are not using SMTP. Here is an example of the configuration:
103 | #
104 | # config :forum, Forum.Mailer,
105 | # adapter: Swoosh.Adapters.Mailgun,
106 | # api_key: System.get_env("MAILGUN_API_KEY"),
107 | # domain: System.get_env("MAILGUN_DOMAIN")
108 | #
109 | # For this example you need include a HTTP client required by Swoosh API client.
110 | # Swoosh supports Hackney and Finch out of the box:
111 | #
112 | # config :swoosh, :api_client, Swoosh.ApiClient.Hackney
113 | #
114 | # See https://hexdocs.pm/swoosh/Swoosh.html#module-installation for details.
115 | end
116 |
--------------------------------------------------------------------------------
/.credo.exs:
--------------------------------------------------------------------------------
1 | # This file contains the configuration for Credo and you are probably reading
2 | # this after creating it with `mix credo.gen.config`.
3 | #
4 | # If you find anything wrong or unclear in this file, please report an
5 | # issue on GitHub: https://github.com/rrrene/credo/issues
6 | #
7 | %{
8 | #
9 | # You can have as many configs as you like in the `configs:` field.
10 | configs: [
11 | %{
12 | #
13 | # Run any config using `mix credo -C `. If no config name is given
14 | # "default" is used.
15 | #
16 | name: "default",
17 | #
18 | # These are the files included in the analysis:
19 | files: %{
20 | #
21 | # You can give explicit globs or simply directories.
22 | # In the latter case `**/*.{ex,exs}` will be used.
23 | #
24 | included: [
25 | "lib/",
26 | "src/",
27 | "test/",
28 | "web/",
29 | "apps/*/lib/",
30 | "apps/*/src/",
31 | "apps/*/test/",
32 | "apps/*/web/"
33 | ],
34 | excluded: [~r"/_build/", ~r"/deps/", ~r"/node_modules/"]
35 | },
36 | #
37 | # Load and configure plugins here:
38 | #
39 | plugins: [],
40 | #
41 | # If you create your own checks, you must specify the source files for
42 | # them here, so they can be loaded by Credo before running the analysis.
43 | #
44 | requires: [],
45 | #
46 | # If you want to enforce a style guide and need a more traditional linting
47 | # experience, you can change `strict` to `true` below:
48 | #
49 | strict: false,
50 | #
51 | # To modify the timeout for parsing files, change this value:
52 | #
53 | parse_timeout: 5000,
54 | #
55 | # If you want to use uncolored output by default, you can change `color`
56 | # to `false` below:
57 | #
58 | color: true,
59 | #
60 | # You can customize the parameters of any check by adding a second element
61 | # to the tuple.
62 | #
63 | # To disable a check put `false` as second element:
64 | #
65 | # {Credo.Check.Design.DuplicatedCode, false}
66 | #
67 | checks: %{
68 | enabled: [
69 | #
70 | ## Consistency Checks
71 | #
72 | {Credo.Check.Consistency.ExceptionNames, []},
73 | {Credo.Check.Consistency.LineEndings, []},
74 | {Credo.Check.Consistency.ParameterPatternMatching, []},
75 | {Credo.Check.Consistency.SpaceAroundOperators, []},
76 | {Credo.Check.Consistency.SpaceInParentheses, []},
77 | {Credo.Check.Consistency.TabsOrSpaces, []},
78 |
79 | #
80 | ## Design Checks
81 | #
82 | # You can customize the priority of any check
83 | # Priority values are: `low, normal, high, higher`
84 | #
85 | {Credo.Check.Design.AliasUsage,
86 | [priority: :low, if_nested_deeper_than: 2, if_called_more_often_than: 0]},
87 | # You can also customize the exit_status of each check.
88 | # If you don't want TODO comments to cause `mix credo` to fail, just
89 | # set this value to 0 (zero).
90 | #
91 | {Credo.Check.Design.TagTODO, [exit_status: 2]},
92 | {Credo.Check.Design.TagFIXME, []},
93 |
94 | #
95 | ## Readability Checks
96 | #
97 | {Credo.Check.Readability.AliasOrder, []},
98 | {Credo.Check.Readability.FunctionNames, []},
99 | {Credo.Check.Readability.LargeNumbers, []},
100 | {Credo.Check.Readability.MaxLineLength, [priority: :low, max_length: 120]},
101 | {Credo.Check.Readability.ModuleAttributeNames, []},
102 | {Credo.Check.Readability.ModuleDoc, []},
103 | {Credo.Check.Readability.ModuleNames, []},
104 | {Credo.Check.Readability.ParenthesesInCondition, []},
105 | {Credo.Check.Readability.ParenthesesOnZeroArityDefs, []},
106 | {Credo.Check.Readability.PipeIntoAnonymousFunctions, []},
107 | {Credo.Check.Readability.PredicateFunctionNames, []},
108 | {Credo.Check.Readability.PreferImplicitTry, []},
109 | {Credo.Check.Readability.RedundantBlankLines, []},
110 | {Credo.Check.Readability.Semicolons, []},
111 | {Credo.Check.Readability.SpaceAfterCommas, []},
112 | {Credo.Check.Readability.StringSigils, []},
113 | {Credo.Check.Readability.TrailingBlankLine, []},
114 | {Credo.Check.Readability.TrailingWhiteSpace, []},
115 | {Credo.Check.Readability.UnnecessaryAliasExpansion, []},
116 | {Credo.Check.Readability.VariableNames, []},
117 | {Credo.Check.Readability.WithSingleClause, []},
118 |
119 | #
120 | ## Refactoring Opportunities
121 | #
122 | {Credo.Check.Refactor.Apply, []},
123 | {Credo.Check.Refactor.CondStatements, []},
124 | {Credo.Check.Refactor.CyclomaticComplexity, []},
125 | {Credo.Check.Refactor.FunctionArity, []},
126 | {Credo.Check.Refactor.LongQuoteBlocks, []},
127 | {Credo.Check.Refactor.MatchInCondition, []},
128 | {Credo.Check.Refactor.MapJoin, []},
129 | {Credo.Check.Refactor.NegatedConditionsInUnless, []},
130 | {Credo.Check.Refactor.NegatedConditionsWithElse, []},
131 | {Credo.Check.Refactor.Nesting, []},
132 | {Credo.Check.Refactor.UnlessWithElse, []},
133 | {Credo.Check.Refactor.WithClauses, []},
134 | {Credo.Check.Refactor.FilterCount, []},
135 | {Credo.Check.Refactor.FilterFilter, []},
136 | {Credo.Check.Refactor.RejectReject, []},
137 | {Credo.Check.Refactor.RedundantWithClauseResult, []},
138 |
139 | #
140 | ## Warnings
141 | #
142 | {Credo.Check.Warning.ApplicationConfigInModuleAttribute, []},
143 | {Credo.Check.Warning.BoolOperationOnSameValues, []},
144 | {Credo.Check.Warning.Dbg, []},
145 | {Credo.Check.Warning.ExpensiveEmptyEnumCheck, []},
146 | {Credo.Check.Warning.IExPry, []},
147 | {Credo.Check.Warning.IoInspect, []},
148 | {Credo.Check.Warning.MissedMetadataKeyInLoggerConfig, []},
149 | {Credo.Check.Warning.OperationOnSameValues, []},
150 | {Credo.Check.Warning.OperationWithConstantResult, []},
151 | {Credo.Check.Warning.RaiseInsideRescue, []},
152 | {Credo.Check.Warning.SpecWithStruct, []},
153 | {Credo.Check.Warning.WrongTestFileExtension, []},
154 | {Credo.Check.Warning.UnusedEnumOperation, []},
155 | {Credo.Check.Warning.UnusedFileOperation, []},
156 | {Credo.Check.Warning.UnusedKeywordOperation, []},
157 | {Credo.Check.Warning.UnusedListOperation, []},
158 | {Credo.Check.Warning.UnusedPathOperation, []},
159 | {Credo.Check.Warning.UnusedRegexOperation, []},
160 | {Credo.Check.Warning.UnusedStringOperation, []},
161 | {Credo.Check.Warning.UnusedTupleOperation, []},
162 | {Credo.Check.Warning.UnsafeExec, []}
163 | ],
164 | disabled: [
165 | #
166 | # Checks scheduled for next check update (opt-in for now, just replace `false` with `[]`)
167 |
168 | #
169 | # Controversial and experimental checks (opt-in, just move the check to `:enabled`
170 | # and be sure to use `mix credo --strict` to see low priority checks)
171 | #
172 | {Credo.Check.Consistency.MultiAliasImportRequireUse, []},
173 | {Credo.Check.Consistency.UnusedVariableNames, []},
174 | {Credo.Check.Design.DuplicatedCode, []},
175 | {Credo.Check.Design.SkipTestWithoutComment, []},
176 | {Credo.Check.Readability.AliasAs, []},
177 | {Credo.Check.Readability.BlockPipe, []},
178 | {Credo.Check.Readability.ImplTrue, []},
179 | {Credo.Check.Readability.MultiAlias, []},
180 | {Credo.Check.Readability.NestedFunctionCalls, []},
181 | {Credo.Check.Readability.OneArityFunctionInPipe, []},
182 | {Credo.Check.Readability.SeparateAliasRequire, []},
183 | {Credo.Check.Readability.SingleFunctionToBlockPipe, []},
184 | {Credo.Check.Readability.SinglePipe, []},
185 | {Credo.Check.Readability.Specs, []},
186 | {Credo.Check.Readability.StrictModuleLayout, []},
187 | {Credo.Check.Readability.WithCustomTaggedTuple, []},
188 | {Credo.Check.Readability.OnePipePerLine, []},
189 | {Credo.Check.Refactor.ABCSize, []},
190 | {Credo.Check.Refactor.AppendSingleItem, []},
191 | {Credo.Check.Refactor.DoubleBooleanNegation, []},
192 | {Credo.Check.Refactor.FilterReject, []},
193 | {Credo.Check.Refactor.IoPuts, []},
194 | {Credo.Check.Refactor.MapMap, []},
195 | {Credo.Check.Refactor.ModuleDependencies, []},
196 | {Credo.Check.Refactor.NegatedIsNil, []},
197 | {Credo.Check.Refactor.PassAsyncInTestCases, []},
198 | {Credo.Check.Refactor.PipeChainStart, []},
199 | {Credo.Check.Refactor.RejectFilter, []},
200 | {Credo.Check.Refactor.VariableRebinding, []},
201 | {Credo.Check.Warning.LazyLogging, []},
202 | {Credo.Check.Warning.LeakyEnvironment, []},
203 | {Credo.Check.Warning.MapGetUnsafePass, []},
204 | {Credo.Check.Warning.MixEnv, []},
205 | {Credo.Check.Warning.UnsafeToAtom, []}
206 |
207 | # {Credo.Check.Refactor.MapInto, []},
208 |
209 | #
210 | # Custom checks can be created using `mix credo.gen.check`.
211 | #
212 | ]
213 | }
214 | }
215 | ]
216 | }
217 |
--------------------------------------------------------------------------------
/mix.lock:
--------------------------------------------------------------------------------
1 | %{
2 | "bunt": {:hex, :bunt, "0.2.1", "e2d4792f7bc0ced7583ab54922808919518d0e57ee162901a16a1b6664ef3b14", [:mix], [], "hexpm", "a330bfb4245239787b15005e66ae6845c9cd524a288f0d141c148b02603777a5"},
3 | "castore": {:hex, :castore, "1.0.3", "7130ba6d24c8424014194676d608cb989f62ef8039efd50ff4b3f33286d06db8", [:mix], [], "hexpm", "680ab01ef5d15b161ed6a95449fac5c6b8f60055677a8e79acf01b27baa4390b"},
4 | "cowboy": {:hex, :cowboy, "2.10.0", "ff9ffeff91dae4ae270dd975642997afe2a1179d94b1887863e43f681a203e26", [:make, :rebar3], [{:cowlib, "2.12.1", [hex: :cowlib, repo: "hexpm", optional: false]}, {:ranch, "1.8.0", [hex: :ranch, repo: "hexpm", optional: false]}], "hexpm", "3afdccb7183cc6f143cb14d3cf51fa00e53db9ec80cdcd525482f5e99bc41d6b"},
5 | "cowboy_telemetry": {:hex, :cowboy_telemetry, "0.4.0", "f239f68b588efa7707abce16a84d0d2acf3a0f50571f8bb7f56a15865aae820c", [:rebar3], [{:cowboy, "~> 2.7", [hex: :cowboy, repo: "hexpm", optional: false]}, {:telemetry, "~> 1.0", [hex: :telemetry, repo: "hexpm", optional: false]}], "hexpm", "7d98bac1ee4565d31b62d59f8823dfd8356a169e7fcbb83831b8a5397404c9de"},
6 | "cowlib": {:hex, :cowlib, "2.12.1", "a9fa9a625f1d2025fe6b462cb865881329b5caff8f1854d1cbc9f9533f00e1e1", [:make, :rebar3], [], "hexpm", "163b73f6367a7341b33c794c4e88e7dbfe6498ac42dcd69ef44c5bc5507c8db0"},
7 | "credo": {:hex, :credo, "1.7.0", "6119bee47272e85995598ee04f2ebbed3e947678dee048d10b5feca139435f75", [:mix], [{:bunt, "~> 0.2.1", [hex: :bunt, repo: "hexpm", optional: false]}, {:file_system, "~> 0.2.8", [hex: :file_system, repo: "hexpm", optional: false]}, {:jason, "~> 1.0", [hex: :jason, repo: "hexpm", optional: false]}], "hexpm", "6839fcf63d1f0d1c0f450abc8564a57c43d644077ab96f2934563e68b8a769d7"},
8 | "db_connection": {:hex, :db_connection, "2.5.0", "bb6d4f30d35ded97b29fe80d8bd6f928a1912ca1ff110831edcd238a1973652c", [:mix], [{:telemetry, "~> 0.4 or ~> 1.0", [hex: :telemetry, repo: "hexpm", optional: false]}], "hexpm", "c92d5ba26cd69ead1ff7582dbb860adeedfff39774105a4f1c92cbb654b55aa2"},
9 | "decimal": {:hex, :decimal, "2.1.1", "5611dca5d4b2c3dd497dec8f68751f1f1a54755e8ed2a966c2633cf885973ad6", [:mix], [], "hexpm", "53cfe5f497ed0e7771ae1a475575603d77425099ba5faef9394932b35020ffcc"},
10 | "dialyxir": {:hex, :dialyxir, "1.3.0", "fd1672f0922b7648ff9ce7b1b26fcf0ef56dda964a459892ad15f6b4410b5284", [:mix], [{:erlex, ">= 0.2.6", [hex: :erlex, repo: "hexpm", optional: false]}], "hexpm", "00b2a4bcd6aa8db9dcb0b38c1225b7277dca9bc370b6438715667071a304696f"},
11 | "ecto": {:hex, :ecto, "3.10.2", "6b887160281a61aa16843e47735b8a266caa437f80588c3ab80a8a960e6abe37", [:mix], [{:decimal, "~> 1.6 or ~> 2.0", [hex: :decimal, repo: "hexpm", optional: false]}, {:jason, "~> 1.0", [hex: :jason, repo: "hexpm", optional: true]}, {:telemetry, "~> 0.4 or ~> 1.0", [hex: :telemetry, repo: "hexpm", optional: false]}], "hexpm", "6a895778f0d7648a4b34b486af59a1c8009041fbdf2b17f1ac215eb829c60235"},
12 | "ecto_sql": {:hex, :ecto_sql, "3.10.1", "6ea6b3036a0b0ca94c2a02613fd9f742614b5cfe494c41af2e6571bb034dd94c", [:mix], [{:db_connection, "~> 2.4.1 or ~> 2.5", [hex: :db_connection, repo: "hexpm", optional: false]}, {:ecto, "~> 3.10.0", [hex: :ecto, repo: "hexpm", optional: false]}, {:myxql, "~> 0.6.0", [hex: :myxql, repo: "hexpm", optional: true]}, {:postgrex, "~> 0.16.0 or ~> 0.17.0 or ~> 1.0", [hex: :postgrex, repo: "hexpm", optional: true]}, {:tds, "~> 2.1.1 or ~> 2.2", [hex: :tds, repo: "hexpm", optional: true]}, {:telemetry, "~> 0.4.0 or ~> 1.0", [hex: :telemetry, repo: "hexpm", optional: false]}], "hexpm", "f6a25bdbbd695f12c8171eaff0851fa4c8e72eec1e98c7364402dda9ce11c56b"},
13 | "erlex": {:hex, :erlex, "0.2.6", "c7987d15e899c7a2f34f5420d2a2ea0d659682c06ac607572df55a43753aa12e", [:mix], [], "hexpm", "2ed2e25711feb44d52b17d2780eabf998452f6efda104877a3881c2f8c0c0c75"},
14 | "expo": {:hex, :expo, "0.4.1", "1c61d18a5df197dfda38861673d392e642649a9cef7694d2f97a587b2cfb319b", [:mix], [], "hexpm", "2ff7ba7a798c8c543c12550fa0e2cbc81b95d4974c65855d8d15ba7b37a1ce47"},
15 | "file_system": {:hex, :file_system, "0.2.10", "fb082005a9cd1711c05b5248710f8826b02d7d1784e7c3451f9c1231d4fc162d", [:mix], [], "hexpm", "41195edbfb562a593726eda3b3e8b103a309b733ad25f3d642ba49696bf715dc"},
16 | "finch": {:hex, :finch, "0.16.0", "40733f02c89f94a112518071c0a91fe86069560f5dbdb39f9150042f44dcfb1a", [:mix], [{:castore, "~> 0.1 or ~> 1.0", [hex: :castore, repo: "hexpm", optional: false]}, {:mime, "~> 1.0 or ~> 2.0", [hex: :mime, repo: "hexpm", optional: false]}, {:mint, "~> 1.3", [hex: :mint, repo: "hexpm", optional: false]}, {:nimble_options, "~> 0.4 or ~> 1.0", [hex: :nimble_options, repo: "hexpm", optional: false]}, {:nimble_pool, "~> 0.2.6 or ~> 1.0", [hex: :nimble_pool, repo: "hexpm", optional: false]}, {:telemetry, "~> 0.4 or ~> 1.0", [hex: :telemetry, repo: "hexpm", optional: false]}], "hexpm", "f660174c4d519e5fec629016054d60edd822cdfe2b7270836739ac2f97735ec5"},
17 | "floki": {:hex, :floki, "0.34.3", "5e2dcaec5d7c228ce5b1d3501502e308b2d79eb655e4191751a1fe491c37feac", [:mix], [], "hexpm", "9577440eea5b97924b4bf3c7ea55f7b8b6dce589f9b28b096cc294a8dc342341"},
18 | "gettext": {:hex, :gettext, "0.22.2", "6bfca374de34ecc913a28ba391ca184d88d77810a3e427afa8454a71a51341ac", [:mix], [{:expo, "~> 0.4.0", [hex: :expo, repo: "hexpm", optional: false]}], "hexpm", "8a2d389673aea82d7eae387e6a2ccc12660610080ae7beb19452cfdc1ec30f60"},
19 | "hpax": {:hex, :hpax, "0.1.2", "09a75600d9d8bbd064cdd741f21fc06fc1f4cf3d0fcc335e5aa19be1a7235c84", [:mix], [], "hexpm", "2c87843d5a23f5f16748ebe77969880e29809580efdaccd615cd3bed628a8c13"},
20 | "jason": {:hex, :jason, "1.4.0", "e855647bc964a44e2f67df589ccf49105ae039d4179db7f6271dfd3843dc27e6", [:mix], [{:decimal, "~> 1.0 or ~> 2.0", [hex: :decimal, repo: "hexpm", optional: true]}], "hexpm", "79a3791085b2a0f743ca04cec0f7be26443738779d09302e01318f97bdb82121"},
21 | "mime": {:hex, :mime, "2.0.5", "dc34c8efd439abe6ae0343edbb8556f4d63f178594894720607772a041b04b02", [:mix], [], "hexpm", "da0d64a365c45bc9935cc5c8a7fc5e49a0e0f9932a761c55d6c52b142780a05c"},
22 | "mint": {:hex, :mint, "1.5.1", "8db5239e56738552d85af398798c80648db0e90f343c8469f6c6d8898944fb6f", [:mix], [{:castore, "~> 0.1.0 or ~> 1.0", [hex: :castore, repo: "hexpm", optional: true]}, {:hpax, "~> 0.1.1", [hex: :hpax, repo: "hexpm", optional: false]}], "hexpm", "4a63e1e76a7c3956abd2c72f370a0d0aecddc3976dea5c27eccbecfa5e7d5b1e"},
23 | "nimble_options": {:hex, :nimble_options, "1.0.2", "92098a74df0072ff37d0c12ace58574d26880e522c22801437151a159392270e", [:mix], [], "hexpm", "fd12a8db2021036ce12a309f26f564ec367373265b53e25403f0ee697380f1b8"},
24 | "nimble_pool": {:hex, :nimble_pool, "1.0.0", "5eb82705d138f4dd4423f69ceb19ac667b3b492ae570c9f5c900bb3d2f50a847", [:mix], [], "hexpm", "80be3b882d2d351882256087078e1b1952a28bf98d0a287be87e4a24a710b67a"},
25 | "phoenix": {:hex, :phoenix, "1.7.6", "61f0625af7c1d1923d582470446de29b008c0e07ae33d7a3859ede247ddaf59a", [:mix], [{:castore, ">= 0.0.0", [hex: :castore, repo: "hexpm", optional: false]}, {:jason, "~> 1.0", [hex: :jason, repo: "hexpm", optional: true]}, {:phoenix_pubsub, "~> 2.1", [hex: :phoenix_pubsub, repo: "hexpm", optional: false]}, {:phoenix_template, "~> 1.0", [hex: :phoenix_template, repo: "hexpm", optional: false]}, {:phoenix_view, "~> 2.0", [hex: :phoenix_view, repo: "hexpm", optional: true]}, {:plug, "~> 1.14", [hex: :plug, repo: "hexpm", optional: false]}, {:plug_cowboy, "~> 2.6", [hex: :plug_cowboy, repo: "hexpm", optional: true]}, {:plug_crypto, "~> 1.2", [hex: :plug_crypto, repo: "hexpm", optional: false]}, {:telemetry, "~> 0.4 or ~> 1.0", [hex: :telemetry, repo: "hexpm", optional: false]}, {:websock_adapter, "~> 0.5.3", [hex: :websock_adapter, repo: "hexpm", optional: false]}], "hexpm", "f6b4be7780402bb060cbc6e83f1b6d3f5673b674ba73cc4a7dd47db0322dfb88"},
26 | "phoenix_ecto": {:hex, :phoenix_ecto, "4.4.2", "b21bd01fdeffcfe2fab49e4942aa938b6d3e89e93a480d4aee58085560a0bc0d", [:mix], [{:ecto, "~> 3.5", [hex: :ecto, repo: "hexpm", optional: false]}, {:phoenix_html, "~> 2.14.2 or ~> 3.0", [hex: :phoenix_html, repo: "hexpm", optional: true]}, {:plug, "~> 1.9", [hex: :plug, repo: "hexpm", optional: false]}], "hexpm", "70242edd4601d50b69273b057ecf7b684644c19ee750989fd555625ae4ce8f5d"},
27 | "phoenix_html": {:hex, :phoenix_html, "3.3.1", "4788757e804a30baac6b3fc9695bf5562465dd3f1da8eb8460ad5b404d9a2178", [:mix], [{:plug, "~> 1.5", [hex: :plug, repo: "hexpm", optional: true]}], "hexpm", "bed1906edd4906a15fd7b412b85b05e521e1f67c9a85418c55999277e553d0d3"},
28 | "phoenix_live_dashboard": {:hex, :phoenix_live_dashboard, "0.8.0", "0b3158b5b198aa444473c91d23d79f52fb077e807ffad80dacf88ce078fa8df2", [:mix], [{:ecto, "~> 3.6.2 or ~> 3.7", [hex: :ecto, repo: "hexpm", optional: true]}, {:ecto_mysql_extras, "~> 0.5", [hex: :ecto_mysql_extras, repo: "hexpm", optional: true]}, {:ecto_psql_extras, "~> 0.7", [hex: :ecto_psql_extras, repo: "hexpm", optional: true]}, {:ecto_sqlite3_extras, "~> 1.1.7", [hex: :ecto_sqlite3_extras, repo: "hexpm", optional: true]}, {:mime, "~> 1.6 or ~> 2.0", [hex: :mime, repo: "hexpm", optional: false]}, {:phoenix_live_view, "~> 0.19.0", [hex: :phoenix_live_view, repo: "hexpm", optional: false]}, {:telemetry_metrics, "~> 0.6 or ~> 1.0", [hex: :telemetry_metrics, repo: "hexpm", optional: false]}], "hexpm", "87785a54474fed91a67a1227a741097eb1a42c2e49d3c0d098b588af65cd410d"},
29 | "phoenix_live_reload": {:hex, :phoenix_live_reload, "1.4.1", "2aff698f5e47369decde4357ba91fc9c37c6487a512b41732818f2204a8ef1d3", [:mix], [{:file_system, "~> 0.2.1 or ~> 0.3", [hex: :file_system, repo: "hexpm", optional: false]}, {:phoenix, "~> 1.4", [hex: :phoenix, repo: "hexpm", optional: false]}], "hexpm", "9bffb834e7ddf08467fe54ae58b5785507aaba6255568ae22b4d46e2bb3615ab"},
30 | "phoenix_live_view": {:hex, :phoenix_live_view, "0.19.3", "3918c1b34df8ac71a9a636806ba5b7f053349a0392b312e16f35b0bf4d070aab", [:mix], [{:jason, "~> 1.0", [hex: :jason, repo: "hexpm", optional: true]}, {:phoenix, "~> 1.6.15 or ~> 1.7.0", [hex: :phoenix, repo: "hexpm", optional: false]}, {:phoenix_html, "~> 3.3", [hex: :phoenix_html, repo: "hexpm", optional: false]}, {:phoenix_template, "~> 1.0", [hex: :phoenix_template, repo: "hexpm", optional: false]}, {:phoenix_view, "~> 2.0", [hex: :phoenix_view, repo: "hexpm", optional: true]}, {:telemetry, "~> 0.4.2 or ~> 1.0", [hex: :telemetry, repo: "hexpm", optional: false]}], "hexpm", "545626887948495fd8ea23d83b75bd7aaf9dc4221563e158d2c4b52ea1dd7e00"},
31 | "phoenix_pubsub": {:hex, :phoenix_pubsub, "2.1.3", "3168d78ba41835aecad272d5e8cd51aa87a7ac9eb836eabc42f6e57538e3731d", [:mix], [], "hexpm", "bba06bc1dcfd8cb086759f0edc94a8ba2bc8896d5331a1e2c2902bf8e36ee502"},
32 | "phoenix_template": {:hex, :phoenix_template, "1.0.1", "85f79e3ad1b0180abb43f9725973e3b8c2c3354a87245f91431eec60553ed3ef", [:mix], [{:phoenix_html, "~> 2.14.2 or ~> 3.0", [hex: :phoenix_html, repo: "hexpm", optional: true]}], "hexpm", "157dc078f6226334c91cb32c1865bf3911686f8bcd6bcff86736f6253e6993ee"},
33 | "plug": {:hex, :plug, "1.14.2", "cff7d4ec45b4ae176a227acd94a7ab536d9b37b942c8e8fa6dfc0fff98ff4d80", [:mix], [{:mime, "~> 1.0 or ~> 2.0", [hex: :mime, repo: "hexpm", optional: false]}, {:plug_crypto, "~> 1.1.1 or ~> 1.2", [hex: :plug_crypto, repo: "hexpm", optional: false]}, {:telemetry, "~> 0.4.3 or ~> 1.0", [hex: :telemetry, repo: "hexpm", optional: false]}], "hexpm", "842fc50187e13cf4ac3b253d47d9474ed6c296a8732752835ce4a86acdf68d13"},
34 | "plug_cowboy": {:hex, :plug_cowboy, "2.6.1", "9a3bbfceeb65eff5f39dab529e5cd79137ac36e913c02067dba3963a26efe9b2", [:mix], [{:cowboy, "~> 2.7", [hex: :cowboy, repo: "hexpm", optional: false]}, {:cowboy_telemetry, "~> 0.3", [hex: :cowboy_telemetry, repo: "hexpm", optional: false]}, {:plug, "~> 1.14", [hex: :plug, repo: "hexpm", optional: false]}], "hexpm", "de36e1a21f451a18b790f37765db198075c25875c64834bcc82d90b309eb6613"},
35 | "plug_crypto": {:hex, :plug_crypto, "1.2.5", "918772575e48e81e455818229bf719d4ab4181fcbf7f85b68a35620f78d89ced", [:mix], [], "hexpm", "26549a1d6345e2172eb1c233866756ae44a9609bd33ee6f99147ab3fd87fd842"},
36 | "postgrex": {:hex, :postgrex, "0.17.1", "01c29fd1205940ee55f7addb8f1dc25618ca63a8817e56fac4f6846fc2cddcbe", [:mix], [{:db_connection, "~> 2.1", [hex: :db_connection, repo: "hexpm", optional: false]}, {:decimal, "~> 1.5 or ~> 2.0", [hex: :decimal, repo: "hexpm", optional: false]}, {:jason, "~> 1.0", [hex: :jason, repo: "hexpm", optional: true]}, {:table, "~> 0.1.0", [hex: :table, repo: "hexpm", optional: true]}], "hexpm", "14b057b488e73be2beee508fb1955d8db90d6485c6466428fe9ccf1d6692a555"},
37 | "ranch": {:hex, :ranch, "1.8.0", "8c7a100a139fd57f17327b6413e4167ac559fbc04ca7448e9be9057311597a1d", [:make, :rebar3], [], "hexpm", "49fbcfd3682fab1f5d109351b61257676da1a2fdbe295904176d5e521a2ddfe5"},
38 | "swoosh": {:hex, :swoosh, "1.11.2", "39dd1e44f75bc03a34366d5f830599d248de2b9caaf05704dc76c0507a58c6a1", [:mix], [{:cowboy, "~> 1.1 or ~> 2.4", [hex: :cowboy, repo: "hexpm", optional: true]}, {:ex_aws, "~> 2.1", [hex: :ex_aws, repo: "hexpm", optional: true]}, {:finch, "~> 0.6", [hex: :finch, repo: "hexpm", optional: true]}, {:gen_smtp, "~> 0.13 or ~> 1.0", [hex: :gen_smtp, repo: "hexpm", optional: true]}, {:hackney, "~> 1.9", [hex: :hackney, repo: "hexpm", optional: true]}, {:jason, "~> 1.0", [hex: :jason, repo: "hexpm", optional: false]}, {:mail, "~> 0.2", [hex: :mail, repo: "hexpm", optional: true]}, {:mime, "~> 1.1 or ~> 2.0", [hex: :mime, repo: "hexpm", optional: false]}, {:plug_cowboy, ">= 1.0.0", [hex: :plug_cowboy, repo: "hexpm", optional: true]}, {:telemetry, "~> 0.4.2 or ~> 1.0", [hex: :telemetry, repo: "hexpm", optional: false]}], "hexpm", "4c43f4591503e7d5bf028314af8ac7c06d1c4d340aa23faeefabfa2543fa726e"},
39 | "telemetry": {:hex, :telemetry, "1.2.1", "68fdfe8d8f05a8428483a97d7aab2f268aaff24b49e0f599faa091f1d4e7f61c", [:rebar3], [], "hexpm", "dad9ce9d8effc621708f99eac538ef1cbe05d6a874dd741de2e689c47feafed5"},
40 | "telemetry_metrics": {:hex, :telemetry_metrics, "0.6.1", "315d9163a1d4660aedc3fee73f33f1d355dcc76c5c3ab3d59e76e3edf80eef1f", [:mix], [{:telemetry, "~> 0.4 or ~> 1.0", [hex: :telemetry, repo: "hexpm", optional: false]}], "hexpm", "7be9e0871c41732c233be71e4be11b96e56177bf15dde64a8ac9ce72ac9834c6"},
41 | "telemetry_poller": {:hex, :telemetry_poller, "1.0.0", "db91bb424e07f2bb6e73926fcafbfcbcb295f0193e0a00e825e589a0a47e8453", [:rebar3], [{:telemetry, "~> 1.0", [hex: :telemetry, repo: "hexpm", optional: false]}], "hexpm", "b3a24eafd66c3f42da30fc3ca7dda1e9d546c12250a2d60d7b81d264fbec4f6e"},
42 | "websock": {:hex, :websock, "0.5.2", "b3c08511d8d79ed2c2f589ff430bd1fe799bb389686dafce86d28801783d8351", [:mix], [], "hexpm", "925f5de22fca6813dfa980fb62fd542ec43a2d1a1f83d2caec907483fe66ff05"},
43 | "websock_adapter": {:hex, :websock_adapter, "0.5.3", "4908718e42e4a548fc20e00e70848620a92f11f7a6add8cf0886c4232267498d", [:mix], [{:bandit, ">= 0.6.0", [hex: :bandit, repo: "hexpm", optional: true]}, {:plug, "~> 1.14", [hex: :plug, repo: "hexpm", optional: false]}, {:plug_cowboy, "~> 2.6", [hex: :plug_cowboy, repo: "hexpm", optional: true]}, {:websock, "~> 0.5", [hex: :websock, repo: "hexpm", optional: false]}], "hexpm", "cbe5b814c1f86b6ea002b52dd99f345aeecf1a1a6964e209d208fb404d930d3d"},
44 | }
45 |
--------------------------------------------------------------------------------
/assets/pnpm-lock.yaml:
--------------------------------------------------------------------------------
1 | lockfileVersion: '6.0'
2 |
3 | devDependencies:
4 | '@babel/preset-env':
5 | specifier: ^7.22.5
6 | version: 7.22.5(@babel/core@7.22.5)
7 | babel-loader:
8 | specifier: ^9.1.2
9 | version: 9.1.2(@babel/core@7.22.5)(webpack@5.88.0)
10 | copy-webpack-plugin:
11 | specifier: ^11.0.0
12 | version: 11.0.0(webpack@5.88.0)
13 | cross-env:
14 | specifier: ^7.0.3
15 | version: 7.0.3
16 | css-loader:
17 | specifier: ^6.8.1
18 | version: 6.8.1(webpack@5.88.0)
19 | css-minimizer-webpack-plugin:
20 | specifier: ^5.0.1
21 | version: 5.0.1(webpack@5.88.0)
22 | glob:
23 | specifier: ^10.3.0
24 | version: 10.3.0
25 | mini-css-extract-plugin:
26 | specifier: ^2.7.6
27 | version: 2.7.6(webpack@5.88.0)
28 | sass:
29 | specifier: ^1.63.6
30 | version: 1.63.6
31 | sass-loader:
32 | specifier: ^13.3.2
33 | version: 13.3.2(sass@1.63.6)(webpack@5.88.0)
34 | webpack:
35 | specifier: ^5.88.0
36 | version: 5.88.0(webpack-cli@5.1.4)
37 | webpack-cli:
38 | specifier: ^5.1.4
39 | version: 5.1.4(webpack@5.88.0)
40 |
41 | packages:
42 |
43 | /@ampproject/remapping@2.2.1:
44 | resolution: {integrity: sha512-lFMjJTrFL3j7L9yBxwYfCq2k6qqwHyzuUl/XBnif78PWTJYyL/dfowQHWE3sp6U6ZzqWiiIZnpTMO96zhkjwtg==}
45 | engines: {node: '>=6.0.0'}
46 | dependencies:
47 | '@jridgewell/gen-mapping': 0.3.3
48 | '@jridgewell/trace-mapping': 0.3.18
49 | dev: true
50 |
51 | /@babel/code-frame@7.22.5:
52 | resolution: {integrity: sha512-Xmwn266vad+6DAqEB2A6V/CcZVp62BbwVmcOJc2RPuwih1kw02TjQvWVWlcKGbBPd+8/0V5DEkOcizRGYsspYQ==}
53 | engines: {node: '>=6.9.0'}
54 | dependencies:
55 | '@babel/highlight': 7.22.5
56 | dev: true
57 |
58 | /@babel/compat-data@7.22.5:
59 | resolution: {integrity: sha512-4Jc/YuIaYqKnDDz892kPIledykKg12Aw1PYX5i/TY28anJtacvM1Rrr8wbieB9GfEJwlzqT0hUEao0CxEebiDA==}
60 | engines: {node: '>=6.9.0'}
61 | dev: true
62 |
63 | /@babel/core@7.22.5:
64 | resolution: {integrity: sha512-SBuTAjg91A3eKOvD+bPEz3LlhHZRNu1nFOVts9lzDJTXshHTjII0BAtDS3Y2DAkdZdDKWVZGVwkDfc4Clxn1dg==}
65 | engines: {node: '>=6.9.0'}
66 | dependencies:
67 | '@ampproject/remapping': 2.2.1
68 | '@babel/code-frame': 7.22.5
69 | '@babel/generator': 7.22.5
70 | '@babel/helper-compilation-targets': 7.22.5(@babel/core@7.22.5)
71 | '@babel/helper-module-transforms': 7.22.5
72 | '@babel/helpers': 7.22.5
73 | '@babel/parser': 7.22.5
74 | '@babel/template': 7.22.5
75 | '@babel/traverse': 7.22.5
76 | '@babel/types': 7.22.5
77 | convert-source-map: 1.9.0
78 | debug: 4.3.4
79 | gensync: 1.0.0-beta.2
80 | json5: 2.2.3
81 | semver: 6.3.0
82 | transitivePeerDependencies:
83 | - supports-color
84 | dev: true
85 |
86 | /@babel/generator@7.22.5:
87 | resolution: {integrity: sha512-+lcUbnTRhd0jOewtFSedLyiPsD5tswKkbgcezOqqWFUVNEwoUTlpPOBmvhG7OXWLR4jMdv0czPGH5XbflnD1EA==}
88 | engines: {node: '>=6.9.0'}
89 | dependencies:
90 | '@babel/types': 7.22.5
91 | '@jridgewell/gen-mapping': 0.3.3
92 | '@jridgewell/trace-mapping': 0.3.18
93 | jsesc: 2.5.2
94 | dev: true
95 |
96 | /@babel/helper-annotate-as-pure@7.22.5:
97 | resolution: {integrity: sha512-LvBTxu8bQSQkcyKOU+a1btnNFQ1dMAd0R6PyW3arXes06F6QLWLIrd681bxRPIXlrMGR3XYnW9JyML7dP3qgxg==}
98 | engines: {node: '>=6.9.0'}
99 | dependencies:
100 | '@babel/types': 7.22.5
101 | dev: true
102 |
103 | /@babel/helper-builder-binary-assignment-operator-visitor@7.22.5:
104 | resolution: {integrity: sha512-m1EP3lVOPptR+2DwD125gziZNcmoNSHGmJROKoy87loWUQyJaVXDgpmruWqDARZSmtYQ+Dl25okU8+qhVzuykw==}
105 | engines: {node: '>=6.9.0'}
106 | dependencies:
107 | '@babel/types': 7.22.5
108 | dev: true
109 |
110 | /@babel/helper-compilation-targets@7.22.5(@babel/core@7.22.5):
111 | resolution: {integrity: sha512-Ji+ywpHeuqxB8WDxraCiqR0xfhYjiDE/e6k7FuIaANnoOFxAHskHChz4vA1mJC9Lbm01s1PVAGhQY4FUKSkGZw==}
112 | engines: {node: '>=6.9.0'}
113 | peerDependencies:
114 | '@babel/core': ^7.0.0
115 | dependencies:
116 | '@babel/compat-data': 7.22.5
117 | '@babel/core': 7.22.5
118 | '@babel/helper-validator-option': 7.22.5
119 | browserslist: 4.21.9
120 | lru-cache: 5.1.1
121 | semver: 6.3.0
122 | dev: true
123 |
124 | /@babel/helper-create-class-features-plugin@7.22.5(@babel/core@7.22.5):
125 | resolution: {integrity: sha512-xkb58MyOYIslxu3gKmVXmjTtUPvBU4odYzbiIQbWwLKIHCsx6UGZGX6F1IznMFVnDdirseUZopzN+ZRt8Xb33Q==}
126 | engines: {node: '>=6.9.0'}
127 | peerDependencies:
128 | '@babel/core': ^7.0.0
129 | dependencies:
130 | '@babel/core': 7.22.5
131 | '@babel/helper-annotate-as-pure': 7.22.5
132 | '@babel/helper-environment-visitor': 7.22.5
133 | '@babel/helper-function-name': 7.22.5
134 | '@babel/helper-member-expression-to-functions': 7.22.5
135 | '@babel/helper-optimise-call-expression': 7.22.5
136 | '@babel/helper-replace-supers': 7.22.5
137 | '@babel/helper-skip-transparent-expression-wrappers': 7.22.5
138 | '@babel/helper-split-export-declaration': 7.22.5
139 | semver: 6.3.0
140 | transitivePeerDependencies:
141 | - supports-color
142 | dev: true
143 |
144 | /@babel/helper-create-regexp-features-plugin@7.22.5(@babel/core@7.22.5):
145 | resolution: {integrity: sha512-1VpEFOIbMRaXyDeUwUfmTIxExLwQ+zkW+Bh5zXpApA3oQedBx9v/updixWxnx/bZpKw7u8VxWjb/qWpIcmPq8A==}
146 | engines: {node: '>=6.9.0'}
147 | peerDependencies:
148 | '@babel/core': ^7.0.0
149 | dependencies:
150 | '@babel/core': 7.22.5
151 | '@babel/helper-annotate-as-pure': 7.22.5
152 | regexpu-core: 5.3.2
153 | semver: 6.3.0
154 | dev: true
155 |
156 | /@babel/helper-define-polyfill-provider@0.4.0(@babel/core@7.22.5):
157 | resolution: {integrity: sha512-RnanLx5ETe6aybRi1cO/edaRH+bNYWaryCEmjDDYyNr4wnSzyOp8T0dWipmqVHKEY3AbVKUom50AKSlj1zmKbg==}
158 | peerDependencies:
159 | '@babel/core': ^7.4.0-0
160 | dependencies:
161 | '@babel/core': 7.22.5
162 | '@babel/helper-compilation-targets': 7.22.5(@babel/core@7.22.5)
163 | '@babel/helper-plugin-utils': 7.22.5
164 | debug: 4.3.4
165 | lodash.debounce: 4.0.8
166 | resolve: 1.22.2
167 | semver: 6.3.0
168 | transitivePeerDependencies:
169 | - supports-color
170 | dev: true
171 |
172 | /@babel/helper-environment-visitor@7.22.5:
173 | resolution: {integrity: sha512-XGmhECfVA/5sAt+H+xpSg0mfrHq6FzNr9Oxh7PSEBBRUb/mL7Kz3NICXb194rCqAEdxkhPT1a88teizAFyvk8Q==}
174 | engines: {node: '>=6.9.0'}
175 | dev: true
176 |
177 | /@babel/helper-function-name@7.22.5:
178 | resolution: {integrity: sha512-wtHSq6jMRE3uF2otvfuD3DIvVhOsSNshQl0Qrd7qC9oQJzHvOL4qQXlQn2916+CXGywIjpGuIkoyZRRxHPiNQQ==}
179 | engines: {node: '>=6.9.0'}
180 | dependencies:
181 | '@babel/template': 7.22.5
182 | '@babel/types': 7.22.5
183 | dev: true
184 |
185 | /@babel/helper-hoist-variables@7.22.5:
186 | resolution: {integrity: sha512-wGjk9QZVzvknA6yKIUURb8zY3grXCcOZt+/7Wcy8O2uctxhplmUPkOdlgoNhmdVee2c92JXbf1xpMtVNbfoxRw==}
187 | engines: {node: '>=6.9.0'}
188 | dependencies:
189 | '@babel/types': 7.22.5
190 | dev: true
191 |
192 | /@babel/helper-member-expression-to-functions@7.22.5:
193 | resolution: {integrity: sha512-aBiH1NKMG0H2cGZqspNvsaBe6wNGjbJjuLy29aU+eDZjSbbN53BaxlpB02xm9v34pLTZ1nIQPFYn2qMZoa5BQQ==}
194 | engines: {node: '>=6.9.0'}
195 | dependencies:
196 | '@babel/types': 7.22.5
197 | dev: true
198 |
199 | /@babel/helper-module-imports@7.22.5:
200 | resolution: {integrity: sha512-8Dl6+HD/cKifutF5qGd/8ZJi84QeAKh+CEe1sBzz8UayBBGg1dAIJrdHOcOM5b2MpzWL2yuotJTtGjETq0qjXg==}
201 | engines: {node: '>=6.9.0'}
202 | dependencies:
203 | '@babel/types': 7.22.5
204 | dev: true
205 |
206 | /@babel/helper-module-transforms@7.22.5:
207 | resolution: {integrity: sha512-+hGKDt/Ze8GFExiVHno/2dvG5IdstpzCq0y4Qc9OJ25D4q3pKfiIP/4Vp3/JvhDkLKsDK2api3q3fpIgiIF5bw==}
208 | engines: {node: '>=6.9.0'}
209 | dependencies:
210 | '@babel/helper-environment-visitor': 7.22.5
211 | '@babel/helper-module-imports': 7.22.5
212 | '@babel/helper-simple-access': 7.22.5
213 | '@babel/helper-split-export-declaration': 7.22.5
214 | '@babel/helper-validator-identifier': 7.22.5
215 | '@babel/template': 7.22.5
216 | '@babel/traverse': 7.22.5
217 | '@babel/types': 7.22.5
218 | transitivePeerDependencies:
219 | - supports-color
220 | dev: true
221 |
222 | /@babel/helper-optimise-call-expression@7.22.5:
223 | resolution: {integrity: sha512-HBwaojN0xFRx4yIvpwGqxiV2tUfl7401jlok564NgB9EHS1y6QT17FmKWm4ztqjeVdXLuC4fSvHc5ePpQjoTbw==}
224 | engines: {node: '>=6.9.0'}
225 | dependencies:
226 | '@babel/types': 7.22.5
227 | dev: true
228 |
229 | /@babel/helper-plugin-utils@7.22.5:
230 | resolution: {integrity: sha512-uLls06UVKgFG9QD4OeFYLEGteMIAa5kpTPcFL28yuCIIzsf6ZyKZMllKVOCZFhiZ5ptnwX4mtKdWCBE/uT4amg==}
231 | engines: {node: '>=6.9.0'}
232 | dev: true
233 |
234 | /@babel/helper-remap-async-to-generator@7.22.5(@babel/core@7.22.5):
235 | resolution: {integrity: sha512-cU0Sq1Rf4Z55fgz7haOakIyM7+x/uCFwXpLPaeRzfoUtAEAuUZjZvFPjL/rk5rW693dIgn2hng1W7xbT7lWT4g==}
236 | engines: {node: '>=6.9.0'}
237 | peerDependencies:
238 | '@babel/core': ^7.0.0
239 | dependencies:
240 | '@babel/core': 7.22.5
241 | '@babel/helper-annotate-as-pure': 7.22.5
242 | '@babel/helper-environment-visitor': 7.22.5
243 | '@babel/helper-wrap-function': 7.22.5
244 | '@babel/types': 7.22.5
245 | transitivePeerDependencies:
246 | - supports-color
247 | dev: true
248 |
249 | /@babel/helper-replace-supers@7.22.5:
250 | resolution: {integrity: sha512-aLdNM5I3kdI/V9xGNyKSF3X/gTyMUBohTZ+/3QdQKAA9vxIiy12E+8E2HoOP1/DjeqU+g6as35QHJNMDDYpuCg==}
251 | engines: {node: '>=6.9.0'}
252 | dependencies:
253 | '@babel/helper-environment-visitor': 7.22.5
254 | '@babel/helper-member-expression-to-functions': 7.22.5
255 | '@babel/helper-optimise-call-expression': 7.22.5
256 | '@babel/template': 7.22.5
257 | '@babel/traverse': 7.22.5
258 | '@babel/types': 7.22.5
259 | transitivePeerDependencies:
260 | - supports-color
261 | dev: true
262 |
263 | /@babel/helper-simple-access@7.22.5:
264 | resolution: {integrity: sha512-n0H99E/K+Bika3++WNL17POvo4rKWZ7lZEp1Q+fStVbUi8nxPQEBOlTmCOxW/0JsS56SKKQ+ojAe2pHKJHN35w==}
265 | engines: {node: '>=6.9.0'}
266 | dependencies:
267 | '@babel/types': 7.22.5
268 | dev: true
269 |
270 | /@babel/helper-skip-transparent-expression-wrappers@7.22.5:
271 | resolution: {integrity: sha512-tK14r66JZKiC43p8Ki33yLBVJKlQDFoA8GYN67lWCDCqoL6EMMSuM9b+Iff2jHaM/RRFYl7K+iiru7hbRqNx8Q==}
272 | engines: {node: '>=6.9.0'}
273 | dependencies:
274 | '@babel/types': 7.22.5
275 | dev: true
276 |
277 | /@babel/helper-split-export-declaration@7.22.5:
278 | resolution: {integrity: sha512-thqK5QFghPKWLhAV321lxF95yCg2K3Ob5yw+M3VHWfdia0IkPXUtoLH8x/6Fh486QUvzhb8YOWHChTVen2/PoQ==}
279 | engines: {node: '>=6.9.0'}
280 | dependencies:
281 | '@babel/types': 7.22.5
282 | dev: true
283 |
284 | /@babel/helper-string-parser@7.22.5:
285 | resolution: {integrity: sha512-mM4COjgZox8U+JcXQwPijIZLElkgEpO5rsERVDJTc2qfCDfERyob6k5WegS14SX18IIjv+XD+GrqNumY5JRCDw==}
286 | engines: {node: '>=6.9.0'}
287 | dev: true
288 |
289 | /@babel/helper-validator-identifier@7.22.5:
290 | resolution: {integrity: sha512-aJXu+6lErq8ltp+JhkJUfk1MTGyuA4v7f3pA+BJ5HLfNC6nAQ0Cpi9uOquUj8Hehg0aUiHzWQbOVJGao6ztBAQ==}
291 | engines: {node: '>=6.9.0'}
292 | dev: true
293 |
294 | /@babel/helper-validator-option@7.22.5:
295 | resolution: {integrity: sha512-R3oB6xlIVKUnxNUxbmgq7pKjxpru24zlimpE8WK47fACIlM0II/Hm1RS8IaOI7NgCr6LNS+jl5l75m20npAziw==}
296 | engines: {node: '>=6.9.0'}
297 | dev: true
298 |
299 | /@babel/helper-wrap-function@7.22.5:
300 | resolution: {integrity: sha512-bYqLIBSEshYcYQyfks8ewYA8S30yaGSeRslcvKMvoUk6HHPySbxHq9YRi6ghhzEU+yhQv9bP/jXnygkStOcqZw==}
301 | engines: {node: '>=6.9.0'}
302 | dependencies:
303 | '@babel/helper-function-name': 7.22.5
304 | '@babel/template': 7.22.5
305 | '@babel/traverse': 7.22.5
306 | '@babel/types': 7.22.5
307 | transitivePeerDependencies:
308 | - supports-color
309 | dev: true
310 |
311 | /@babel/helpers@7.22.5:
312 | resolution: {integrity: sha512-pSXRmfE1vzcUIDFQcSGA5Mr+GxBV9oiRKDuDxXvWQQBCh8HoIjs/2DlDB7H8smac1IVrB9/xdXj2N3Wol9Cr+Q==}
313 | engines: {node: '>=6.9.0'}
314 | dependencies:
315 | '@babel/template': 7.22.5
316 | '@babel/traverse': 7.22.5
317 | '@babel/types': 7.22.5
318 | transitivePeerDependencies:
319 | - supports-color
320 | dev: true
321 |
322 | /@babel/highlight@7.22.5:
323 | resolution: {integrity: sha512-BSKlD1hgnedS5XRnGOljZawtag7H1yPfQp0tdNJCHoH6AZ+Pcm9VvkrK59/Yy593Ypg0zMxH2BxD1VPYUQ7UIw==}
324 | engines: {node: '>=6.9.0'}
325 | dependencies:
326 | '@babel/helper-validator-identifier': 7.22.5
327 | chalk: 2.4.2
328 | js-tokens: 4.0.0
329 | dev: true
330 |
331 | /@babel/parser@7.22.5:
332 | resolution: {integrity: sha512-DFZMC9LJUG9PLOclRC32G63UXwzqS2koQC8dkx+PLdmt1xSePYpbT/NbsrJy8Q/muXz7o/h/d4A7Fuyixm559Q==}
333 | engines: {node: '>=6.0.0'}
334 | hasBin: true
335 | dependencies:
336 | '@babel/types': 7.22.5
337 | dev: true
338 |
339 | /@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@7.22.5(@babel/core@7.22.5):
340 | resolution: {integrity: sha512-NP1M5Rf+u2Gw9qfSO4ihjcTGW5zXTi36ITLd4/EoAcEhIZ0yjMqmftDNl3QC19CX7olhrjpyU454g/2W7X0jvQ==}
341 | engines: {node: '>=6.9.0'}
342 | peerDependencies:
343 | '@babel/core': ^7.0.0
344 | dependencies:
345 | '@babel/core': 7.22.5
346 | '@babel/helper-plugin-utils': 7.22.5
347 | dev: true
348 |
349 | /@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@7.22.5(@babel/core@7.22.5):
350 | resolution: {integrity: sha512-31Bb65aZaUwqCbWMnZPduIZxCBngHFlzyN6Dq6KAJjtx+lx6ohKHubc61OomYi7XwVD4Ol0XCVz4h+pYFR048g==}
351 | engines: {node: '>=6.9.0'}
352 | peerDependencies:
353 | '@babel/core': ^7.13.0
354 | dependencies:
355 | '@babel/core': 7.22.5
356 | '@babel/helper-plugin-utils': 7.22.5
357 | '@babel/helper-skip-transparent-expression-wrappers': 7.22.5
358 | '@babel/plugin-transform-optional-chaining': 7.22.5(@babel/core@7.22.5)
359 | dev: true
360 |
361 | /@babel/plugin-proposal-private-property-in-object@7.21.0-placeholder-for-preset-env.2(@babel/core@7.22.5):
362 | resolution: {integrity: sha512-SOSkfJDddaM7mak6cPEpswyTRnuRltl429hMraQEglW+OkovnCzsiszTmsrlY//qLFjCpQDFRvjdm2wA5pPm9w==}
363 | engines: {node: '>=6.9.0'}
364 | peerDependencies:
365 | '@babel/core': ^7.0.0-0
366 | dependencies:
367 | '@babel/core': 7.22.5
368 | dev: true
369 |
370 | /@babel/plugin-proposal-unicode-property-regex@7.18.6(@babel/core@7.22.5):
371 | resolution: {integrity: sha512-2BShG/d5yoZyXZfVePH91urL5wTG6ASZU9M4o03lKK8u8UW1y08OMttBSOADTcJrnPMpvDXRG3G8fyLh4ovs8w==}
372 | engines: {node: '>=4'}
373 | peerDependencies:
374 | '@babel/core': ^7.0.0-0
375 | dependencies:
376 | '@babel/core': 7.22.5
377 | '@babel/helper-create-regexp-features-plugin': 7.22.5(@babel/core@7.22.5)
378 | '@babel/helper-plugin-utils': 7.22.5
379 | dev: true
380 |
381 | /@babel/plugin-syntax-async-generators@7.8.4(@babel/core@7.22.5):
382 | resolution: {integrity: sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==}
383 | peerDependencies:
384 | '@babel/core': ^7.0.0-0
385 | dependencies:
386 | '@babel/core': 7.22.5
387 | '@babel/helper-plugin-utils': 7.22.5
388 | dev: true
389 |
390 | /@babel/plugin-syntax-class-properties@7.12.13(@babel/core@7.22.5):
391 | resolution: {integrity: sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA==}
392 | peerDependencies:
393 | '@babel/core': ^7.0.0-0
394 | dependencies:
395 | '@babel/core': 7.22.5
396 | '@babel/helper-plugin-utils': 7.22.5
397 | dev: true
398 |
399 | /@babel/plugin-syntax-class-static-block@7.14.5(@babel/core@7.22.5):
400 | resolution: {integrity: sha512-b+YyPmr6ldyNnM6sqYeMWE+bgJcJpO6yS4QD7ymxgH34GBPNDM/THBh8iunyvKIZztiwLH4CJZ0RxTk9emgpjw==}
401 | engines: {node: '>=6.9.0'}
402 | peerDependencies:
403 | '@babel/core': ^7.0.0-0
404 | dependencies:
405 | '@babel/core': 7.22.5
406 | '@babel/helper-plugin-utils': 7.22.5
407 | dev: true
408 |
409 | /@babel/plugin-syntax-dynamic-import@7.8.3(@babel/core@7.22.5):
410 | resolution: {integrity: sha512-5gdGbFon+PszYzqs83S3E5mpi7/y/8M9eC90MRTZfduQOYW76ig6SOSPNe41IG5LoP3FGBn2N0RjVDSQiS94kQ==}
411 | peerDependencies:
412 | '@babel/core': ^7.0.0-0
413 | dependencies:
414 | '@babel/core': 7.22.5
415 | '@babel/helper-plugin-utils': 7.22.5
416 | dev: true
417 |
418 | /@babel/plugin-syntax-export-namespace-from@7.8.3(@babel/core@7.22.5):
419 | resolution: {integrity: sha512-MXf5laXo6c1IbEbegDmzGPwGNTsHZmEy6QGznu5Sh2UCWvueywb2ee+CCE4zQiZstxU9BMoQO9i6zUFSY0Kj0Q==}
420 | peerDependencies:
421 | '@babel/core': ^7.0.0-0
422 | dependencies:
423 | '@babel/core': 7.22.5
424 | '@babel/helper-plugin-utils': 7.22.5
425 | dev: true
426 |
427 | /@babel/plugin-syntax-import-assertions@7.22.5(@babel/core@7.22.5):
428 | resolution: {integrity: sha512-rdV97N7KqsRzeNGoWUOK6yUsWarLjE5Su/Snk9IYPU9CwkWHs4t+rTGOvffTR8XGkJMTAdLfO0xVnXm8wugIJg==}
429 | engines: {node: '>=6.9.0'}
430 | peerDependencies:
431 | '@babel/core': ^7.0.0-0
432 | dependencies:
433 | '@babel/core': 7.22.5
434 | '@babel/helper-plugin-utils': 7.22.5
435 | dev: true
436 |
437 | /@babel/plugin-syntax-import-attributes@7.22.5(@babel/core@7.22.5):
438 | resolution: {integrity: sha512-KwvoWDeNKPETmozyFE0P2rOLqh39EoQHNjqizrI5B8Vt0ZNS7M56s7dAiAqbYfiAYOuIzIh96z3iR2ktgu3tEg==}
439 | engines: {node: '>=6.9.0'}
440 | peerDependencies:
441 | '@babel/core': ^7.0.0-0
442 | dependencies:
443 | '@babel/core': 7.22.5
444 | '@babel/helper-plugin-utils': 7.22.5
445 | dev: true
446 |
447 | /@babel/plugin-syntax-import-meta@7.10.4(@babel/core@7.22.5):
448 | resolution: {integrity: sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g==}
449 | peerDependencies:
450 | '@babel/core': ^7.0.0-0
451 | dependencies:
452 | '@babel/core': 7.22.5
453 | '@babel/helper-plugin-utils': 7.22.5
454 | dev: true
455 |
456 | /@babel/plugin-syntax-json-strings@7.8.3(@babel/core@7.22.5):
457 | resolution: {integrity: sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==}
458 | peerDependencies:
459 | '@babel/core': ^7.0.0-0
460 | dependencies:
461 | '@babel/core': 7.22.5
462 | '@babel/helper-plugin-utils': 7.22.5
463 | dev: true
464 |
465 | /@babel/plugin-syntax-logical-assignment-operators@7.10.4(@babel/core@7.22.5):
466 | resolution: {integrity: sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig==}
467 | peerDependencies:
468 | '@babel/core': ^7.0.0-0
469 | dependencies:
470 | '@babel/core': 7.22.5
471 | '@babel/helper-plugin-utils': 7.22.5
472 | dev: true
473 |
474 | /@babel/plugin-syntax-nullish-coalescing-operator@7.8.3(@babel/core@7.22.5):
475 | resolution: {integrity: sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ==}
476 | peerDependencies:
477 | '@babel/core': ^7.0.0-0
478 | dependencies:
479 | '@babel/core': 7.22.5
480 | '@babel/helper-plugin-utils': 7.22.5
481 | dev: true
482 |
483 | /@babel/plugin-syntax-numeric-separator@7.10.4(@babel/core@7.22.5):
484 | resolution: {integrity: sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug==}
485 | peerDependencies:
486 | '@babel/core': ^7.0.0-0
487 | dependencies:
488 | '@babel/core': 7.22.5
489 | '@babel/helper-plugin-utils': 7.22.5
490 | dev: true
491 |
492 | /@babel/plugin-syntax-object-rest-spread@7.8.3(@babel/core@7.22.5):
493 | resolution: {integrity: sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==}
494 | peerDependencies:
495 | '@babel/core': ^7.0.0-0
496 | dependencies:
497 | '@babel/core': 7.22.5
498 | '@babel/helper-plugin-utils': 7.22.5
499 | dev: true
500 |
501 | /@babel/plugin-syntax-optional-catch-binding@7.8.3(@babel/core@7.22.5):
502 | resolution: {integrity: sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==}
503 | peerDependencies:
504 | '@babel/core': ^7.0.0-0
505 | dependencies:
506 | '@babel/core': 7.22.5
507 | '@babel/helper-plugin-utils': 7.22.5
508 | dev: true
509 |
510 | /@babel/plugin-syntax-optional-chaining@7.8.3(@babel/core@7.22.5):
511 | resolution: {integrity: sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==}
512 | peerDependencies:
513 | '@babel/core': ^7.0.0-0
514 | dependencies:
515 | '@babel/core': 7.22.5
516 | '@babel/helper-plugin-utils': 7.22.5
517 | dev: true
518 |
519 | /@babel/plugin-syntax-private-property-in-object@7.14.5(@babel/core@7.22.5):
520 | resolution: {integrity: sha512-0wVnp9dxJ72ZUJDV27ZfbSj6iHLoytYZmh3rFcxNnvsJF3ktkzLDZPy/mA17HGsaQT3/DQsWYX1f1QGWkCoVUg==}
521 | engines: {node: '>=6.9.0'}
522 | peerDependencies:
523 | '@babel/core': ^7.0.0-0
524 | dependencies:
525 | '@babel/core': 7.22.5
526 | '@babel/helper-plugin-utils': 7.22.5
527 | dev: true
528 |
529 | /@babel/plugin-syntax-top-level-await@7.14.5(@babel/core@7.22.5):
530 | resolution: {integrity: sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw==}
531 | engines: {node: '>=6.9.0'}
532 | peerDependencies:
533 | '@babel/core': ^7.0.0-0
534 | dependencies:
535 | '@babel/core': 7.22.5
536 | '@babel/helper-plugin-utils': 7.22.5
537 | dev: true
538 |
539 | /@babel/plugin-syntax-unicode-sets-regex@7.18.6(@babel/core@7.22.5):
540 | resolution: {integrity: sha512-727YkEAPwSIQTv5im8QHz3upqp92JTWhidIC81Tdx4VJYIte/VndKf1qKrfnnhPLiPghStWfvC/iFaMCQu7Nqg==}
541 | engines: {node: '>=6.9.0'}
542 | peerDependencies:
543 | '@babel/core': ^7.0.0
544 | dependencies:
545 | '@babel/core': 7.22.5
546 | '@babel/helper-create-regexp-features-plugin': 7.22.5(@babel/core@7.22.5)
547 | '@babel/helper-plugin-utils': 7.22.5
548 | dev: true
549 |
550 | /@babel/plugin-transform-arrow-functions@7.22.5(@babel/core@7.22.5):
551 | resolution: {integrity: sha512-26lTNXoVRdAnsaDXPpvCNUq+OVWEVC6bx7Vvz9rC53F2bagUWW4u4ii2+h8Fejfh7RYqPxn+libeFBBck9muEw==}
552 | engines: {node: '>=6.9.0'}
553 | peerDependencies:
554 | '@babel/core': ^7.0.0-0
555 | dependencies:
556 | '@babel/core': 7.22.5
557 | '@babel/helper-plugin-utils': 7.22.5
558 | dev: true
559 |
560 | /@babel/plugin-transform-async-generator-functions@7.22.5(@babel/core@7.22.5):
561 | resolution: {integrity: sha512-gGOEvFzm3fWoyD5uZq7vVTD57pPJ3PczPUD/xCFGjzBpUosnklmXyKnGQbbbGs1NPNPskFex0j93yKbHt0cHyg==}
562 | engines: {node: '>=6.9.0'}
563 | peerDependencies:
564 | '@babel/core': ^7.0.0-0
565 | dependencies:
566 | '@babel/core': 7.22.5
567 | '@babel/helper-environment-visitor': 7.22.5
568 | '@babel/helper-plugin-utils': 7.22.5
569 | '@babel/helper-remap-async-to-generator': 7.22.5(@babel/core@7.22.5)
570 | '@babel/plugin-syntax-async-generators': 7.8.4(@babel/core@7.22.5)
571 | transitivePeerDependencies:
572 | - supports-color
573 | dev: true
574 |
575 | /@babel/plugin-transform-async-to-generator@7.22.5(@babel/core@7.22.5):
576 | resolution: {integrity: sha512-b1A8D8ZzE/VhNDoV1MSJTnpKkCG5bJo+19R4o4oy03zM7ws8yEMK755j61Dc3EyvdysbqH5BOOTquJ7ZX9C6vQ==}
577 | engines: {node: '>=6.9.0'}
578 | peerDependencies:
579 | '@babel/core': ^7.0.0-0
580 | dependencies:
581 | '@babel/core': 7.22.5
582 | '@babel/helper-module-imports': 7.22.5
583 | '@babel/helper-plugin-utils': 7.22.5
584 | '@babel/helper-remap-async-to-generator': 7.22.5(@babel/core@7.22.5)
585 | transitivePeerDependencies:
586 | - supports-color
587 | dev: true
588 |
589 | /@babel/plugin-transform-block-scoped-functions@7.22.5(@babel/core@7.22.5):
590 | resolution: {integrity: sha512-tdXZ2UdknEKQWKJP1KMNmuF5Lx3MymtMN/pvA+p/VEkhK8jVcQ1fzSy8KM9qRYhAf2/lV33hoMPKI/xaI9sADA==}
591 | engines: {node: '>=6.9.0'}
592 | peerDependencies:
593 | '@babel/core': ^7.0.0-0
594 | dependencies:
595 | '@babel/core': 7.22.5
596 | '@babel/helper-plugin-utils': 7.22.5
597 | dev: true
598 |
599 | /@babel/plugin-transform-block-scoping@7.22.5(@babel/core@7.22.5):
600 | resolution: {integrity: sha512-EcACl1i5fSQ6bt+YGuU/XGCeZKStLmyVGytWkpyhCLeQVA0eu6Wtiw92V+I1T/hnezUv7j74dA/Ro69gWcU+hg==}
601 | engines: {node: '>=6.9.0'}
602 | peerDependencies:
603 | '@babel/core': ^7.0.0-0
604 | dependencies:
605 | '@babel/core': 7.22.5
606 | '@babel/helper-plugin-utils': 7.22.5
607 | dev: true
608 |
609 | /@babel/plugin-transform-class-properties@7.22.5(@babel/core@7.22.5):
610 | resolution: {integrity: sha512-nDkQ0NfkOhPTq8YCLiWNxp1+f9fCobEjCb0n8WdbNUBc4IB5V7P1QnX9IjpSoquKrXF5SKojHleVNs2vGeHCHQ==}
611 | engines: {node: '>=6.9.0'}
612 | peerDependencies:
613 | '@babel/core': ^7.0.0-0
614 | dependencies:
615 | '@babel/core': 7.22.5
616 | '@babel/helper-create-class-features-plugin': 7.22.5(@babel/core@7.22.5)
617 | '@babel/helper-plugin-utils': 7.22.5
618 | transitivePeerDependencies:
619 | - supports-color
620 | dev: true
621 |
622 | /@babel/plugin-transform-class-static-block@7.22.5(@babel/core@7.22.5):
623 | resolution: {integrity: sha512-SPToJ5eYZLxlnp1UzdARpOGeC2GbHvr9d/UV0EukuVx8atktg194oe+C5BqQ8jRTkgLRVOPYeXRSBg1IlMoVRA==}
624 | engines: {node: '>=6.9.0'}
625 | peerDependencies:
626 | '@babel/core': ^7.12.0
627 | dependencies:
628 | '@babel/core': 7.22.5
629 | '@babel/helper-create-class-features-plugin': 7.22.5(@babel/core@7.22.5)
630 | '@babel/helper-plugin-utils': 7.22.5
631 | '@babel/plugin-syntax-class-static-block': 7.14.5(@babel/core@7.22.5)
632 | transitivePeerDependencies:
633 | - supports-color
634 | dev: true
635 |
636 | /@babel/plugin-transform-classes@7.22.5(@babel/core@7.22.5):
637 | resolution: {integrity: sha512-2edQhLfibpWpsVBx2n/GKOz6JdGQvLruZQfGr9l1qes2KQaWswjBzhQF7UDUZMNaMMQeYnQzxwOMPsbYF7wqPQ==}
638 | engines: {node: '>=6.9.0'}
639 | peerDependencies:
640 | '@babel/core': ^7.0.0-0
641 | dependencies:
642 | '@babel/core': 7.22.5
643 | '@babel/helper-annotate-as-pure': 7.22.5
644 | '@babel/helper-compilation-targets': 7.22.5(@babel/core@7.22.5)
645 | '@babel/helper-environment-visitor': 7.22.5
646 | '@babel/helper-function-name': 7.22.5
647 | '@babel/helper-optimise-call-expression': 7.22.5
648 | '@babel/helper-plugin-utils': 7.22.5
649 | '@babel/helper-replace-supers': 7.22.5
650 | '@babel/helper-split-export-declaration': 7.22.5
651 | globals: 11.12.0
652 | transitivePeerDependencies:
653 | - supports-color
654 | dev: true
655 |
656 | /@babel/plugin-transform-computed-properties@7.22.5(@babel/core@7.22.5):
657 | resolution: {integrity: sha512-4GHWBgRf0krxPX+AaPtgBAlTgTeZmqDynokHOX7aqqAB4tHs3U2Y02zH6ETFdLZGcg9UQSD1WCmkVrE9ErHeOg==}
658 | engines: {node: '>=6.9.0'}
659 | peerDependencies:
660 | '@babel/core': ^7.0.0-0
661 | dependencies:
662 | '@babel/core': 7.22.5
663 | '@babel/helper-plugin-utils': 7.22.5
664 | '@babel/template': 7.22.5
665 | dev: true
666 |
667 | /@babel/plugin-transform-destructuring@7.22.5(@babel/core@7.22.5):
668 | resolution: {integrity: sha512-GfqcFuGW8vnEqTUBM7UtPd5A4q797LTvvwKxXTgRsFjoqaJiEg9deBG6kWeQYkVEL569NpnmpC0Pkr/8BLKGnQ==}
669 | engines: {node: '>=6.9.0'}
670 | peerDependencies:
671 | '@babel/core': ^7.0.0-0
672 | dependencies:
673 | '@babel/core': 7.22.5
674 | '@babel/helper-plugin-utils': 7.22.5
675 | dev: true
676 |
677 | /@babel/plugin-transform-dotall-regex@7.22.5(@babel/core@7.22.5):
678 | resolution: {integrity: sha512-5/Yk9QxCQCl+sOIB1WelKnVRxTJDSAIxtJLL2/pqL14ZVlbH0fUQUZa/T5/UnQtBNgghR7mfB8ERBKyKPCi7Vw==}
679 | engines: {node: '>=6.9.0'}
680 | peerDependencies:
681 | '@babel/core': ^7.0.0-0
682 | dependencies:
683 | '@babel/core': 7.22.5
684 | '@babel/helper-create-regexp-features-plugin': 7.22.5(@babel/core@7.22.5)
685 | '@babel/helper-plugin-utils': 7.22.5
686 | dev: true
687 |
688 | /@babel/plugin-transform-duplicate-keys@7.22.5(@babel/core@7.22.5):
689 | resolution: {integrity: sha512-dEnYD+9BBgld5VBXHnF/DbYGp3fqGMsyxKbtD1mDyIA7AkTSpKXFhCVuj/oQVOoALfBs77DudA0BE4d5mcpmqw==}
690 | engines: {node: '>=6.9.0'}
691 | peerDependencies:
692 | '@babel/core': ^7.0.0-0
693 | dependencies:
694 | '@babel/core': 7.22.5
695 | '@babel/helper-plugin-utils': 7.22.5
696 | dev: true
697 |
698 | /@babel/plugin-transform-dynamic-import@7.22.5(@babel/core@7.22.5):
699 | resolution: {integrity: sha512-0MC3ppTB1AMxd8fXjSrbPa7LT9hrImt+/fcj+Pg5YMD7UQyWp/02+JWpdnCymmsXwIx5Z+sYn1bwCn4ZJNvhqQ==}
700 | engines: {node: '>=6.9.0'}
701 | peerDependencies:
702 | '@babel/core': ^7.0.0-0
703 | dependencies:
704 | '@babel/core': 7.22.5
705 | '@babel/helper-plugin-utils': 7.22.5
706 | '@babel/plugin-syntax-dynamic-import': 7.8.3(@babel/core@7.22.5)
707 | dev: true
708 |
709 | /@babel/plugin-transform-exponentiation-operator@7.22.5(@babel/core@7.22.5):
710 | resolution: {integrity: sha512-vIpJFNM/FjZ4rh1myqIya9jXwrwwgFRHPjT3DkUA9ZLHuzox8jiXkOLvwm1H+PQIP3CqfC++WPKeuDi0Sjdj1g==}
711 | engines: {node: '>=6.9.0'}
712 | peerDependencies:
713 | '@babel/core': ^7.0.0-0
714 | dependencies:
715 | '@babel/core': 7.22.5
716 | '@babel/helper-builder-binary-assignment-operator-visitor': 7.22.5
717 | '@babel/helper-plugin-utils': 7.22.5
718 | dev: true
719 |
720 | /@babel/plugin-transform-export-namespace-from@7.22.5(@babel/core@7.22.5):
721 | resolution: {integrity: sha512-X4hhm7FRnPgd4nDA4b/5V280xCx6oL7Oob5+9qVS5C13Zq4bh1qq7LU0GgRU6b5dBWBvhGaXYVB4AcN6+ol6vg==}
722 | engines: {node: '>=6.9.0'}
723 | peerDependencies:
724 | '@babel/core': ^7.0.0-0
725 | dependencies:
726 | '@babel/core': 7.22.5
727 | '@babel/helper-plugin-utils': 7.22.5
728 | '@babel/plugin-syntax-export-namespace-from': 7.8.3(@babel/core@7.22.5)
729 | dev: true
730 |
731 | /@babel/plugin-transform-for-of@7.22.5(@babel/core@7.22.5):
732 | resolution: {integrity: sha512-3kxQjX1dU9uudwSshyLeEipvrLjBCVthCgeTp6CzE/9JYrlAIaeekVxRpCWsDDfYTfRZRoCeZatCQvwo+wvK8A==}
733 | engines: {node: '>=6.9.0'}
734 | peerDependencies:
735 | '@babel/core': ^7.0.0-0
736 | dependencies:
737 | '@babel/core': 7.22.5
738 | '@babel/helper-plugin-utils': 7.22.5
739 | dev: true
740 |
741 | /@babel/plugin-transform-function-name@7.22.5(@babel/core@7.22.5):
742 | resolution: {integrity: sha512-UIzQNMS0p0HHiQm3oelztj+ECwFnj+ZRV4KnguvlsD2of1whUeM6o7wGNj6oLwcDoAXQ8gEqfgC24D+VdIcevg==}
743 | engines: {node: '>=6.9.0'}
744 | peerDependencies:
745 | '@babel/core': ^7.0.0-0
746 | dependencies:
747 | '@babel/core': 7.22.5
748 | '@babel/helper-compilation-targets': 7.22.5(@babel/core@7.22.5)
749 | '@babel/helper-function-name': 7.22.5
750 | '@babel/helper-plugin-utils': 7.22.5
751 | dev: true
752 |
753 | /@babel/plugin-transform-json-strings@7.22.5(@babel/core@7.22.5):
754 | resolution: {integrity: sha512-DuCRB7fu8MyTLbEQd1ew3R85nx/88yMoqo2uPSjevMj3yoN7CDM8jkgrY0wmVxfJZyJ/B9fE1iq7EQppWQmR5A==}
755 | engines: {node: '>=6.9.0'}
756 | peerDependencies:
757 | '@babel/core': ^7.0.0-0
758 | dependencies:
759 | '@babel/core': 7.22.5
760 | '@babel/helper-plugin-utils': 7.22.5
761 | '@babel/plugin-syntax-json-strings': 7.8.3(@babel/core@7.22.5)
762 | dev: true
763 |
764 | /@babel/plugin-transform-literals@7.22.5(@babel/core@7.22.5):
765 | resolution: {integrity: sha512-fTLj4D79M+mepcw3dgFBTIDYpbcB9Sm0bpm4ppXPaO+U+PKFFyV9MGRvS0gvGw62sd10kT5lRMKXAADb9pWy8g==}
766 | engines: {node: '>=6.9.0'}
767 | peerDependencies:
768 | '@babel/core': ^7.0.0-0
769 | dependencies:
770 | '@babel/core': 7.22.5
771 | '@babel/helper-plugin-utils': 7.22.5
772 | dev: true
773 |
774 | /@babel/plugin-transform-logical-assignment-operators@7.22.5(@babel/core@7.22.5):
775 | resolution: {integrity: sha512-MQQOUW1KL8X0cDWfbwYP+TbVbZm16QmQXJQ+vndPtH/BoO0lOKpVoEDMI7+PskYxH+IiE0tS8xZye0qr1lGzSA==}
776 | engines: {node: '>=6.9.0'}
777 | peerDependencies:
778 | '@babel/core': ^7.0.0-0
779 | dependencies:
780 | '@babel/core': 7.22.5
781 | '@babel/helper-plugin-utils': 7.22.5
782 | '@babel/plugin-syntax-logical-assignment-operators': 7.10.4(@babel/core@7.22.5)
783 | dev: true
784 |
785 | /@babel/plugin-transform-member-expression-literals@7.22.5(@babel/core@7.22.5):
786 | resolution: {integrity: sha512-RZEdkNtzzYCFl9SE9ATaUMTj2hqMb4StarOJLrZRbqqU4HSBE7UlBw9WBWQiDzrJZJdUWiMTVDI6Gv/8DPvfew==}
787 | engines: {node: '>=6.9.0'}
788 | peerDependencies:
789 | '@babel/core': ^7.0.0-0
790 | dependencies:
791 | '@babel/core': 7.22.5
792 | '@babel/helper-plugin-utils': 7.22.5
793 | dev: true
794 |
795 | /@babel/plugin-transform-modules-amd@7.22.5(@babel/core@7.22.5):
796 | resolution: {integrity: sha512-R+PTfLTcYEmb1+kK7FNkhQ1gP4KgjpSO6HfH9+f8/yfp2Nt3ggBjiVpRwmwTlfqZLafYKJACy36yDXlEmI9HjQ==}
797 | engines: {node: '>=6.9.0'}
798 | peerDependencies:
799 | '@babel/core': ^7.0.0-0
800 | dependencies:
801 | '@babel/core': 7.22.5
802 | '@babel/helper-module-transforms': 7.22.5
803 | '@babel/helper-plugin-utils': 7.22.5
804 | transitivePeerDependencies:
805 | - supports-color
806 | dev: true
807 |
808 | /@babel/plugin-transform-modules-commonjs@7.22.5(@babel/core@7.22.5):
809 | resolution: {integrity: sha512-B4pzOXj+ONRmuaQTg05b3y/4DuFz3WcCNAXPLb2Q0GT0TrGKGxNKV4jwsXts+StaM0LQczZbOpj8o1DLPDJIiA==}
810 | engines: {node: '>=6.9.0'}
811 | peerDependencies:
812 | '@babel/core': ^7.0.0-0
813 | dependencies:
814 | '@babel/core': 7.22.5
815 | '@babel/helper-module-transforms': 7.22.5
816 | '@babel/helper-plugin-utils': 7.22.5
817 | '@babel/helper-simple-access': 7.22.5
818 | transitivePeerDependencies:
819 | - supports-color
820 | dev: true
821 |
822 | /@babel/plugin-transform-modules-systemjs@7.22.5(@babel/core@7.22.5):
823 | resolution: {integrity: sha512-emtEpoaTMsOs6Tzz+nbmcePl6AKVtS1yC4YNAeMun9U8YCsgadPNxnOPQ8GhHFB2qdx+LZu9LgoC0Lthuu05DQ==}
824 | engines: {node: '>=6.9.0'}
825 | peerDependencies:
826 | '@babel/core': ^7.0.0-0
827 | dependencies:
828 | '@babel/core': 7.22.5
829 | '@babel/helper-hoist-variables': 7.22.5
830 | '@babel/helper-module-transforms': 7.22.5
831 | '@babel/helper-plugin-utils': 7.22.5
832 | '@babel/helper-validator-identifier': 7.22.5
833 | transitivePeerDependencies:
834 | - supports-color
835 | dev: true
836 |
837 | /@babel/plugin-transform-modules-umd@7.22.5(@babel/core@7.22.5):
838 | resolution: {integrity: sha512-+S6kzefN/E1vkSsKx8kmQuqeQsvCKCd1fraCM7zXm4SFoggI099Tr4G8U81+5gtMdUeMQ4ipdQffbKLX0/7dBQ==}
839 | engines: {node: '>=6.9.0'}
840 | peerDependencies:
841 | '@babel/core': ^7.0.0-0
842 | dependencies:
843 | '@babel/core': 7.22.5
844 | '@babel/helper-module-transforms': 7.22.5
845 | '@babel/helper-plugin-utils': 7.22.5
846 | transitivePeerDependencies:
847 | - supports-color
848 | dev: true
849 |
850 | /@babel/plugin-transform-named-capturing-groups-regex@7.22.5(@babel/core@7.22.5):
851 | resolution: {integrity: sha512-YgLLKmS3aUBhHaxp5hi1WJTgOUb/NCuDHzGT9z9WTt3YG+CPRhJs6nprbStx6DnWM4dh6gt7SU3sZodbZ08adQ==}
852 | engines: {node: '>=6.9.0'}
853 | peerDependencies:
854 | '@babel/core': ^7.0.0
855 | dependencies:
856 | '@babel/core': 7.22.5
857 | '@babel/helper-create-regexp-features-plugin': 7.22.5(@babel/core@7.22.5)
858 | '@babel/helper-plugin-utils': 7.22.5
859 | dev: true
860 |
861 | /@babel/plugin-transform-new-target@7.22.5(@babel/core@7.22.5):
862 | resolution: {integrity: sha512-AsF7K0Fx/cNKVyk3a+DW0JLo+Ua598/NxMRvxDnkpCIGFh43+h/v2xyhRUYf6oD8gE4QtL83C7zZVghMjHd+iw==}
863 | engines: {node: '>=6.9.0'}
864 | peerDependencies:
865 | '@babel/core': ^7.0.0-0
866 | dependencies:
867 | '@babel/core': 7.22.5
868 | '@babel/helper-plugin-utils': 7.22.5
869 | dev: true
870 |
871 | /@babel/plugin-transform-nullish-coalescing-operator@7.22.5(@babel/core@7.22.5):
872 | resolution: {integrity: sha512-6CF8g6z1dNYZ/VXok5uYkkBBICHZPiGEl7oDnAx2Mt1hlHVHOSIKWJaXHjQJA5VB43KZnXZDIexMchY4y2PGdA==}
873 | engines: {node: '>=6.9.0'}
874 | peerDependencies:
875 | '@babel/core': ^7.0.0-0
876 | dependencies:
877 | '@babel/core': 7.22.5
878 | '@babel/helper-plugin-utils': 7.22.5
879 | '@babel/plugin-syntax-nullish-coalescing-operator': 7.8.3(@babel/core@7.22.5)
880 | dev: true
881 |
882 | /@babel/plugin-transform-numeric-separator@7.22.5(@babel/core@7.22.5):
883 | resolution: {integrity: sha512-NbslED1/6M+sXiwwtcAB/nieypGw02Ejf4KtDeMkCEpP6gWFMX1wI9WKYua+4oBneCCEmulOkRpwywypVZzs/g==}
884 | engines: {node: '>=6.9.0'}
885 | peerDependencies:
886 | '@babel/core': ^7.0.0-0
887 | dependencies:
888 | '@babel/core': 7.22.5
889 | '@babel/helper-plugin-utils': 7.22.5
890 | '@babel/plugin-syntax-numeric-separator': 7.10.4(@babel/core@7.22.5)
891 | dev: true
892 |
893 | /@babel/plugin-transform-object-rest-spread@7.22.5(@babel/core@7.22.5):
894 | resolution: {integrity: sha512-Kk3lyDmEslH9DnvCDA1s1kkd3YWQITiBOHngOtDL9Pt6BZjzqb6hiOlb8VfjiiQJ2unmegBqZu0rx5RxJb5vmQ==}
895 | engines: {node: '>=6.9.0'}
896 | peerDependencies:
897 | '@babel/core': ^7.0.0-0
898 | dependencies:
899 | '@babel/compat-data': 7.22.5
900 | '@babel/core': 7.22.5
901 | '@babel/helper-compilation-targets': 7.22.5(@babel/core@7.22.5)
902 | '@babel/helper-plugin-utils': 7.22.5
903 | '@babel/plugin-syntax-object-rest-spread': 7.8.3(@babel/core@7.22.5)
904 | '@babel/plugin-transform-parameters': 7.22.5(@babel/core@7.22.5)
905 | dev: true
906 |
907 | /@babel/plugin-transform-object-super@7.22.5(@babel/core@7.22.5):
908 | resolution: {integrity: sha512-klXqyaT9trSjIUrcsYIfETAzmOEZL3cBYqOYLJxBHfMFFggmXOv+NYSX/Jbs9mzMVESw/WycLFPRx8ba/b2Ipw==}
909 | engines: {node: '>=6.9.0'}
910 | peerDependencies:
911 | '@babel/core': ^7.0.0-0
912 | dependencies:
913 | '@babel/core': 7.22.5
914 | '@babel/helper-plugin-utils': 7.22.5
915 | '@babel/helper-replace-supers': 7.22.5
916 | transitivePeerDependencies:
917 | - supports-color
918 | dev: true
919 |
920 | /@babel/plugin-transform-optional-catch-binding@7.22.5(@babel/core@7.22.5):
921 | resolution: {integrity: sha512-pH8orJahy+hzZje5b8e2QIlBWQvGpelS76C63Z+jhZKsmzfNaPQ+LaW6dcJ9bxTpo1mtXbgHwy765Ro3jftmUg==}
922 | engines: {node: '>=6.9.0'}
923 | peerDependencies:
924 | '@babel/core': ^7.0.0-0
925 | dependencies:
926 | '@babel/core': 7.22.5
927 | '@babel/helper-plugin-utils': 7.22.5
928 | '@babel/plugin-syntax-optional-catch-binding': 7.8.3(@babel/core@7.22.5)
929 | dev: true
930 |
931 | /@babel/plugin-transform-optional-chaining@7.22.5(@babel/core@7.22.5):
932 | resolution: {integrity: sha512-AconbMKOMkyG+xCng2JogMCDcqW8wedQAqpVIL4cOSescZ7+iW8utC6YDZLMCSUIReEA733gzRSaOSXMAt/4WQ==}
933 | engines: {node: '>=6.9.0'}
934 | peerDependencies:
935 | '@babel/core': ^7.0.0-0
936 | dependencies:
937 | '@babel/core': 7.22.5
938 | '@babel/helper-plugin-utils': 7.22.5
939 | '@babel/helper-skip-transparent-expression-wrappers': 7.22.5
940 | '@babel/plugin-syntax-optional-chaining': 7.8.3(@babel/core@7.22.5)
941 | dev: true
942 |
943 | /@babel/plugin-transform-parameters@7.22.5(@babel/core@7.22.5):
944 | resolution: {integrity: sha512-AVkFUBurORBREOmHRKo06FjHYgjrabpdqRSwq6+C7R5iTCZOsM4QbcB27St0a4U6fffyAOqh3s/qEfybAhfivg==}
945 | engines: {node: '>=6.9.0'}
946 | peerDependencies:
947 | '@babel/core': ^7.0.0-0
948 | dependencies:
949 | '@babel/core': 7.22.5
950 | '@babel/helper-plugin-utils': 7.22.5
951 | dev: true
952 |
953 | /@babel/plugin-transform-private-methods@7.22.5(@babel/core@7.22.5):
954 | resolution: {integrity: sha512-PPjh4gyrQnGe97JTalgRGMuU4icsZFnWkzicB/fUtzlKUqvsWBKEpPPfr5a2JiyirZkHxnAqkQMO5Z5B2kK3fA==}
955 | engines: {node: '>=6.9.0'}
956 | peerDependencies:
957 | '@babel/core': ^7.0.0-0
958 | dependencies:
959 | '@babel/core': 7.22.5
960 | '@babel/helper-create-class-features-plugin': 7.22.5(@babel/core@7.22.5)
961 | '@babel/helper-plugin-utils': 7.22.5
962 | transitivePeerDependencies:
963 | - supports-color
964 | dev: true
965 |
966 | /@babel/plugin-transform-private-property-in-object@7.22.5(@babel/core@7.22.5):
967 | resolution: {integrity: sha512-/9xnaTTJcVoBtSSmrVyhtSvO3kbqS2ODoh2juEU72c3aYonNF0OMGiaz2gjukyKM2wBBYJP38S4JiE0Wfb5VMQ==}
968 | engines: {node: '>=6.9.0'}
969 | peerDependencies:
970 | '@babel/core': ^7.0.0-0
971 | dependencies:
972 | '@babel/core': 7.22.5
973 | '@babel/helper-annotate-as-pure': 7.22.5
974 | '@babel/helper-create-class-features-plugin': 7.22.5(@babel/core@7.22.5)
975 | '@babel/helper-plugin-utils': 7.22.5
976 | '@babel/plugin-syntax-private-property-in-object': 7.14.5(@babel/core@7.22.5)
977 | transitivePeerDependencies:
978 | - supports-color
979 | dev: true
980 |
981 | /@babel/plugin-transform-property-literals@7.22.5(@babel/core@7.22.5):
982 | resolution: {integrity: sha512-TiOArgddK3mK/x1Qwf5hay2pxI6wCZnvQqrFSqbtg1GLl2JcNMitVH/YnqjP+M31pLUeTfzY1HAXFDnUBV30rQ==}
983 | engines: {node: '>=6.9.0'}
984 | peerDependencies:
985 | '@babel/core': ^7.0.0-0
986 | dependencies:
987 | '@babel/core': 7.22.5
988 | '@babel/helper-plugin-utils': 7.22.5
989 | dev: true
990 |
991 | /@babel/plugin-transform-regenerator@7.22.5(@babel/core@7.22.5):
992 | resolution: {integrity: sha512-rR7KePOE7gfEtNTh9Qw+iO3Q/e4DEsoQ+hdvM6QUDH7JRJ5qxq5AA52ZzBWbI5i9lfNuvySgOGP8ZN7LAmaiPw==}
993 | engines: {node: '>=6.9.0'}
994 | peerDependencies:
995 | '@babel/core': ^7.0.0-0
996 | dependencies:
997 | '@babel/core': 7.22.5
998 | '@babel/helper-plugin-utils': 7.22.5
999 | regenerator-transform: 0.15.1
1000 | dev: true
1001 |
1002 | /@babel/plugin-transform-reserved-words@7.22.5(@babel/core@7.22.5):
1003 | resolution: {integrity: sha512-DTtGKFRQUDm8svigJzZHzb/2xatPc6TzNvAIJ5GqOKDsGFYgAskjRulbR/vGsPKq3OPqtexnz327qYpP57RFyA==}
1004 | engines: {node: '>=6.9.0'}
1005 | peerDependencies:
1006 | '@babel/core': ^7.0.0-0
1007 | dependencies:
1008 | '@babel/core': 7.22.5
1009 | '@babel/helper-plugin-utils': 7.22.5
1010 | dev: true
1011 |
1012 | /@babel/plugin-transform-shorthand-properties@7.22.5(@babel/core@7.22.5):
1013 | resolution: {integrity: sha512-vM4fq9IXHscXVKzDv5itkO1X52SmdFBFcMIBZ2FRn2nqVYqw6dBexUgMvAjHW+KXpPPViD/Yo3GrDEBaRC0QYA==}
1014 | engines: {node: '>=6.9.0'}
1015 | peerDependencies:
1016 | '@babel/core': ^7.0.0-0
1017 | dependencies:
1018 | '@babel/core': 7.22.5
1019 | '@babel/helper-plugin-utils': 7.22.5
1020 | dev: true
1021 |
1022 | /@babel/plugin-transform-spread@7.22.5(@babel/core@7.22.5):
1023 | resolution: {integrity: sha512-5ZzDQIGyvN4w8+dMmpohL6MBo+l2G7tfC/O2Dg7/hjpgeWvUx8FzfeOKxGog9IimPa4YekaQ9PlDqTLOljkcxg==}
1024 | engines: {node: '>=6.9.0'}
1025 | peerDependencies:
1026 | '@babel/core': ^7.0.0-0
1027 | dependencies:
1028 | '@babel/core': 7.22.5
1029 | '@babel/helper-plugin-utils': 7.22.5
1030 | '@babel/helper-skip-transparent-expression-wrappers': 7.22.5
1031 | dev: true
1032 |
1033 | /@babel/plugin-transform-sticky-regex@7.22.5(@babel/core@7.22.5):
1034 | resolution: {integrity: sha512-zf7LuNpHG0iEeiyCNwX4j3gDg1jgt1k3ZdXBKbZSoA3BbGQGvMiSvfbZRR3Dr3aeJe3ooWFZxOOG3IRStYp2Bw==}
1035 | engines: {node: '>=6.9.0'}
1036 | peerDependencies:
1037 | '@babel/core': ^7.0.0-0
1038 | dependencies:
1039 | '@babel/core': 7.22.5
1040 | '@babel/helper-plugin-utils': 7.22.5
1041 | dev: true
1042 |
1043 | /@babel/plugin-transform-template-literals@7.22.5(@babel/core@7.22.5):
1044 | resolution: {integrity: sha512-5ciOehRNf+EyUeewo8NkbQiUs4d6ZxiHo6BcBcnFlgiJfu16q0bQUw9Jvo0b0gBKFG1SMhDSjeKXSYuJLeFSMA==}
1045 | engines: {node: '>=6.9.0'}
1046 | peerDependencies:
1047 | '@babel/core': ^7.0.0-0
1048 | dependencies:
1049 | '@babel/core': 7.22.5
1050 | '@babel/helper-plugin-utils': 7.22.5
1051 | dev: true
1052 |
1053 | /@babel/plugin-transform-typeof-symbol@7.22.5(@babel/core@7.22.5):
1054 | resolution: {integrity: sha512-bYkI5lMzL4kPii4HHEEChkD0rkc+nvnlR6+o/qdqR6zrm0Sv/nodmyLhlq2DO0YKLUNd2VePmPRjJXSBh9OIdA==}
1055 | engines: {node: '>=6.9.0'}
1056 | peerDependencies:
1057 | '@babel/core': ^7.0.0-0
1058 | dependencies:
1059 | '@babel/core': 7.22.5
1060 | '@babel/helper-plugin-utils': 7.22.5
1061 | dev: true
1062 |
1063 | /@babel/plugin-transform-unicode-escapes@7.22.5(@babel/core@7.22.5):
1064 | resolution: {integrity: sha512-biEmVg1IYB/raUO5wT1tgfacCef15Fbzhkx493D3urBI++6hpJ+RFG4SrWMn0NEZLfvilqKf3QDrRVZHo08FYg==}
1065 | engines: {node: '>=6.9.0'}
1066 | peerDependencies:
1067 | '@babel/core': ^7.0.0-0
1068 | dependencies:
1069 | '@babel/core': 7.22.5
1070 | '@babel/helper-plugin-utils': 7.22.5
1071 | dev: true
1072 |
1073 | /@babel/plugin-transform-unicode-property-regex@7.22.5(@babel/core@7.22.5):
1074 | resolution: {integrity: sha512-HCCIb+CbJIAE6sXn5CjFQXMwkCClcOfPCzTlilJ8cUatfzwHlWQkbtV0zD338u9dZskwvuOYTuuaMaA8J5EI5A==}
1075 | engines: {node: '>=6.9.0'}
1076 | peerDependencies:
1077 | '@babel/core': ^7.0.0-0
1078 | dependencies:
1079 | '@babel/core': 7.22.5
1080 | '@babel/helper-create-regexp-features-plugin': 7.22.5(@babel/core@7.22.5)
1081 | '@babel/helper-plugin-utils': 7.22.5
1082 | dev: true
1083 |
1084 | /@babel/plugin-transform-unicode-regex@7.22.5(@babel/core@7.22.5):
1085 | resolution: {integrity: sha512-028laaOKptN5vHJf9/Arr/HiJekMd41hOEZYvNsrsXqJ7YPYuX2bQxh31fkZzGmq3YqHRJzYFFAVYvKfMPKqyg==}
1086 | engines: {node: '>=6.9.0'}
1087 | peerDependencies:
1088 | '@babel/core': ^7.0.0-0
1089 | dependencies:
1090 | '@babel/core': 7.22.5
1091 | '@babel/helper-create-regexp-features-plugin': 7.22.5(@babel/core@7.22.5)
1092 | '@babel/helper-plugin-utils': 7.22.5
1093 | dev: true
1094 |
1095 | /@babel/plugin-transform-unicode-sets-regex@7.22.5(@babel/core@7.22.5):
1096 | resolution: {integrity: sha512-lhMfi4FC15j13eKrh3DnYHjpGj6UKQHtNKTbtc1igvAhRy4+kLhV07OpLcsN0VgDEw/MjAvJO4BdMJsHwMhzCg==}
1097 | engines: {node: '>=6.9.0'}
1098 | peerDependencies:
1099 | '@babel/core': ^7.0.0
1100 | dependencies:
1101 | '@babel/core': 7.22.5
1102 | '@babel/helper-create-regexp-features-plugin': 7.22.5(@babel/core@7.22.5)
1103 | '@babel/helper-plugin-utils': 7.22.5
1104 | dev: true
1105 |
1106 | /@babel/preset-env@7.22.5(@babel/core@7.22.5):
1107 | resolution: {integrity: sha512-fj06hw89dpiZzGZtxn+QybifF07nNiZjZ7sazs2aVDcysAZVGjW7+7iFYxg6GLNM47R/thYfLdrXc+2f11Vi9A==}
1108 | engines: {node: '>=6.9.0'}
1109 | peerDependencies:
1110 | '@babel/core': ^7.0.0-0
1111 | dependencies:
1112 | '@babel/compat-data': 7.22.5
1113 | '@babel/core': 7.22.5
1114 | '@babel/helper-compilation-targets': 7.22.5(@babel/core@7.22.5)
1115 | '@babel/helper-plugin-utils': 7.22.5
1116 | '@babel/helper-validator-option': 7.22.5
1117 | '@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression': 7.22.5(@babel/core@7.22.5)
1118 | '@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining': 7.22.5(@babel/core@7.22.5)
1119 | '@babel/plugin-proposal-private-property-in-object': 7.21.0-placeholder-for-preset-env.2(@babel/core@7.22.5)
1120 | '@babel/plugin-syntax-async-generators': 7.8.4(@babel/core@7.22.5)
1121 | '@babel/plugin-syntax-class-properties': 7.12.13(@babel/core@7.22.5)
1122 | '@babel/plugin-syntax-class-static-block': 7.14.5(@babel/core@7.22.5)
1123 | '@babel/plugin-syntax-dynamic-import': 7.8.3(@babel/core@7.22.5)
1124 | '@babel/plugin-syntax-export-namespace-from': 7.8.3(@babel/core@7.22.5)
1125 | '@babel/plugin-syntax-import-assertions': 7.22.5(@babel/core@7.22.5)
1126 | '@babel/plugin-syntax-import-attributes': 7.22.5(@babel/core@7.22.5)
1127 | '@babel/plugin-syntax-import-meta': 7.10.4(@babel/core@7.22.5)
1128 | '@babel/plugin-syntax-json-strings': 7.8.3(@babel/core@7.22.5)
1129 | '@babel/plugin-syntax-logical-assignment-operators': 7.10.4(@babel/core@7.22.5)
1130 | '@babel/plugin-syntax-nullish-coalescing-operator': 7.8.3(@babel/core@7.22.5)
1131 | '@babel/plugin-syntax-numeric-separator': 7.10.4(@babel/core@7.22.5)
1132 | '@babel/plugin-syntax-object-rest-spread': 7.8.3(@babel/core@7.22.5)
1133 | '@babel/plugin-syntax-optional-catch-binding': 7.8.3(@babel/core@7.22.5)
1134 | '@babel/plugin-syntax-optional-chaining': 7.8.3(@babel/core@7.22.5)
1135 | '@babel/plugin-syntax-private-property-in-object': 7.14.5(@babel/core@7.22.5)
1136 | '@babel/plugin-syntax-top-level-await': 7.14.5(@babel/core@7.22.5)
1137 | '@babel/plugin-syntax-unicode-sets-regex': 7.18.6(@babel/core@7.22.5)
1138 | '@babel/plugin-transform-arrow-functions': 7.22.5(@babel/core@7.22.5)
1139 | '@babel/plugin-transform-async-generator-functions': 7.22.5(@babel/core@7.22.5)
1140 | '@babel/plugin-transform-async-to-generator': 7.22.5(@babel/core@7.22.5)
1141 | '@babel/plugin-transform-block-scoped-functions': 7.22.5(@babel/core@7.22.5)
1142 | '@babel/plugin-transform-block-scoping': 7.22.5(@babel/core@7.22.5)
1143 | '@babel/plugin-transform-class-properties': 7.22.5(@babel/core@7.22.5)
1144 | '@babel/plugin-transform-class-static-block': 7.22.5(@babel/core@7.22.5)
1145 | '@babel/plugin-transform-classes': 7.22.5(@babel/core@7.22.5)
1146 | '@babel/plugin-transform-computed-properties': 7.22.5(@babel/core@7.22.5)
1147 | '@babel/plugin-transform-destructuring': 7.22.5(@babel/core@7.22.5)
1148 | '@babel/plugin-transform-dotall-regex': 7.22.5(@babel/core@7.22.5)
1149 | '@babel/plugin-transform-duplicate-keys': 7.22.5(@babel/core@7.22.5)
1150 | '@babel/plugin-transform-dynamic-import': 7.22.5(@babel/core@7.22.5)
1151 | '@babel/plugin-transform-exponentiation-operator': 7.22.5(@babel/core@7.22.5)
1152 | '@babel/plugin-transform-export-namespace-from': 7.22.5(@babel/core@7.22.5)
1153 | '@babel/plugin-transform-for-of': 7.22.5(@babel/core@7.22.5)
1154 | '@babel/plugin-transform-function-name': 7.22.5(@babel/core@7.22.5)
1155 | '@babel/plugin-transform-json-strings': 7.22.5(@babel/core@7.22.5)
1156 | '@babel/plugin-transform-literals': 7.22.5(@babel/core@7.22.5)
1157 | '@babel/plugin-transform-logical-assignment-operators': 7.22.5(@babel/core@7.22.5)
1158 | '@babel/plugin-transform-member-expression-literals': 7.22.5(@babel/core@7.22.5)
1159 | '@babel/plugin-transform-modules-amd': 7.22.5(@babel/core@7.22.5)
1160 | '@babel/plugin-transform-modules-commonjs': 7.22.5(@babel/core@7.22.5)
1161 | '@babel/plugin-transform-modules-systemjs': 7.22.5(@babel/core@7.22.5)
1162 | '@babel/plugin-transform-modules-umd': 7.22.5(@babel/core@7.22.5)
1163 | '@babel/plugin-transform-named-capturing-groups-regex': 7.22.5(@babel/core@7.22.5)
1164 | '@babel/plugin-transform-new-target': 7.22.5(@babel/core@7.22.5)
1165 | '@babel/plugin-transform-nullish-coalescing-operator': 7.22.5(@babel/core@7.22.5)
1166 | '@babel/plugin-transform-numeric-separator': 7.22.5(@babel/core@7.22.5)
1167 | '@babel/plugin-transform-object-rest-spread': 7.22.5(@babel/core@7.22.5)
1168 | '@babel/plugin-transform-object-super': 7.22.5(@babel/core@7.22.5)
1169 | '@babel/plugin-transform-optional-catch-binding': 7.22.5(@babel/core@7.22.5)
1170 | '@babel/plugin-transform-optional-chaining': 7.22.5(@babel/core@7.22.5)
1171 | '@babel/plugin-transform-parameters': 7.22.5(@babel/core@7.22.5)
1172 | '@babel/plugin-transform-private-methods': 7.22.5(@babel/core@7.22.5)
1173 | '@babel/plugin-transform-private-property-in-object': 7.22.5(@babel/core@7.22.5)
1174 | '@babel/plugin-transform-property-literals': 7.22.5(@babel/core@7.22.5)
1175 | '@babel/plugin-transform-regenerator': 7.22.5(@babel/core@7.22.5)
1176 | '@babel/plugin-transform-reserved-words': 7.22.5(@babel/core@7.22.5)
1177 | '@babel/plugin-transform-shorthand-properties': 7.22.5(@babel/core@7.22.5)
1178 | '@babel/plugin-transform-spread': 7.22.5(@babel/core@7.22.5)
1179 | '@babel/plugin-transform-sticky-regex': 7.22.5(@babel/core@7.22.5)
1180 | '@babel/plugin-transform-template-literals': 7.22.5(@babel/core@7.22.5)
1181 | '@babel/plugin-transform-typeof-symbol': 7.22.5(@babel/core@7.22.5)
1182 | '@babel/plugin-transform-unicode-escapes': 7.22.5(@babel/core@7.22.5)
1183 | '@babel/plugin-transform-unicode-property-regex': 7.22.5(@babel/core@7.22.5)
1184 | '@babel/plugin-transform-unicode-regex': 7.22.5(@babel/core@7.22.5)
1185 | '@babel/plugin-transform-unicode-sets-regex': 7.22.5(@babel/core@7.22.5)
1186 | '@babel/preset-modules': 0.1.5(@babel/core@7.22.5)
1187 | '@babel/types': 7.22.5
1188 | babel-plugin-polyfill-corejs2: 0.4.3(@babel/core@7.22.5)
1189 | babel-plugin-polyfill-corejs3: 0.8.1(@babel/core@7.22.5)
1190 | babel-plugin-polyfill-regenerator: 0.5.0(@babel/core@7.22.5)
1191 | core-js-compat: 3.31.0
1192 | semver: 6.3.0
1193 | transitivePeerDependencies:
1194 | - supports-color
1195 | dev: true
1196 |
1197 | /@babel/preset-modules@0.1.5(@babel/core@7.22.5):
1198 | resolution: {integrity: sha512-A57th6YRG7oR3cq/yt/Y84MvGgE0eJG2F1JLhKuyG+jFxEgrd/HAMJatiFtmOiZurz+0DkrvbheCLaV5f2JfjA==}
1199 | peerDependencies:
1200 | '@babel/core': ^7.0.0-0
1201 | dependencies:
1202 | '@babel/core': 7.22.5
1203 | '@babel/helper-plugin-utils': 7.22.5
1204 | '@babel/plugin-proposal-unicode-property-regex': 7.18.6(@babel/core@7.22.5)
1205 | '@babel/plugin-transform-dotall-regex': 7.22.5(@babel/core@7.22.5)
1206 | '@babel/types': 7.22.5
1207 | esutils: 2.0.3
1208 | dev: true
1209 |
1210 | /@babel/regjsgen@0.8.0:
1211 | resolution: {integrity: sha512-x/rqGMdzj+fWZvCOYForTghzbtqPDZ5gPwaoNGHdgDfF2QA/XZbCBp4Moo5scrkAMPhB7z26XM/AaHuIJdgauA==}
1212 | dev: true
1213 |
1214 | /@babel/runtime@7.22.5:
1215 | resolution: {integrity: sha512-ecjvYlnAaZ/KVneE/OdKYBYfgXV3Ptu6zQWmgEF7vwKhQnvVS6bjMD2XYgj+SNvQ1GfK/pjgokfPkC/2CO8CuA==}
1216 | engines: {node: '>=6.9.0'}
1217 | dependencies:
1218 | regenerator-runtime: 0.13.11
1219 | dev: true
1220 |
1221 | /@babel/template@7.22.5:
1222 | resolution: {integrity: sha512-X7yV7eiwAxdj9k94NEylvbVHLiVG1nvzCV2EAowhxLTwODV1jl9UzZ48leOC0sH7OnuHrIkllaBgneUykIcZaw==}
1223 | engines: {node: '>=6.9.0'}
1224 | dependencies:
1225 | '@babel/code-frame': 7.22.5
1226 | '@babel/parser': 7.22.5
1227 | '@babel/types': 7.22.5
1228 | dev: true
1229 |
1230 | /@babel/traverse@7.22.5:
1231 | resolution: {integrity: sha512-7DuIjPgERaNo6r+PZwItpjCZEa5vyw4eJGufeLxrPdBXBoLcCJCIasvK6pK/9DVNrLZTLFhUGqaC6X/PA007TQ==}
1232 | engines: {node: '>=6.9.0'}
1233 | dependencies:
1234 | '@babel/code-frame': 7.22.5
1235 | '@babel/generator': 7.22.5
1236 | '@babel/helper-environment-visitor': 7.22.5
1237 | '@babel/helper-function-name': 7.22.5
1238 | '@babel/helper-hoist-variables': 7.22.5
1239 | '@babel/helper-split-export-declaration': 7.22.5
1240 | '@babel/parser': 7.22.5
1241 | '@babel/types': 7.22.5
1242 | debug: 4.3.4
1243 | globals: 11.12.0
1244 | transitivePeerDependencies:
1245 | - supports-color
1246 | dev: true
1247 |
1248 | /@babel/types@7.22.5:
1249 | resolution: {integrity: sha512-zo3MIHGOkPOfoRXitsgHLjEXmlDaD/5KU1Uzuc9GNiZPhSqVxVRtxuPaSBZDsYZ9qV88AjtMtWW7ww98loJ9KA==}
1250 | engines: {node: '>=6.9.0'}
1251 | dependencies:
1252 | '@babel/helper-string-parser': 7.22.5
1253 | '@babel/helper-validator-identifier': 7.22.5
1254 | to-fast-properties: 2.0.0
1255 | dev: true
1256 |
1257 | /@discoveryjs/json-ext@0.5.7:
1258 | resolution: {integrity: sha512-dBVuXR082gk3jsFp7Rd/JI4kytwGHecnCoTtXFb7DB6CNHp4rg5k1bhg0nWdLGLnOV71lmDzGQaLMy8iPLY0pw==}
1259 | engines: {node: '>=10.0.0'}
1260 | dev: true
1261 |
1262 | /@isaacs/cliui@8.0.2:
1263 | resolution: {integrity: sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==}
1264 | engines: {node: '>=12'}
1265 | dependencies:
1266 | string-width: 5.1.2
1267 | string-width-cjs: /string-width@4.2.3
1268 | strip-ansi: 7.1.0
1269 | strip-ansi-cjs: /strip-ansi@6.0.1
1270 | wrap-ansi: 8.1.0
1271 | wrap-ansi-cjs: /wrap-ansi@7.0.0
1272 | dev: true
1273 |
1274 | /@jest/schemas@29.4.3:
1275 | resolution: {integrity: sha512-VLYKXQmtmuEz6IxJsrZwzG9NvtkQsWNnWMsKxqWNu3+CnfzJQhp0WDDKWLVV9hLKr0l3SLLFRqcYHjhtyuDVxg==}
1276 | engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
1277 | dependencies:
1278 | '@sinclair/typebox': 0.25.24
1279 | dev: true
1280 |
1281 | /@jest/types@29.5.0:
1282 | resolution: {integrity: sha512-qbu7kN6czmVRc3xWFQcAN03RAUamgppVUdXrvl1Wr3jlNF93o9mJbGcDWrwGB6ht44u7efB1qCFgVQmca24Uog==}
1283 | engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
1284 | dependencies:
1285 | '@jest/schemas': 29.4.3
1286 | '@types/istanbul-lib-coverage': 2.0.4
1287 | '@types/istanbul-reports': 3.0.1
1288 | '@types/node': 20.3.1
1289 | '@types/yargs': 17.0.24
1290 | chalk: 4.1.2
1291 | dev: true
1292 |
1293 | /@jridgewell/gen-mapping@0.3.3:
1294 | resolution: {integrity: sha512-HLhSWOLRi875zjjMG/r+Nv0oCW8umGb0BgEhyX3dDX3egwZtB8PqLnjz3yedt8R5StBrzcg4aBpnh8UA9D1BoQ==}
1295 | engines: {node: '>=6.0.0'}
1296 | dependencies:
1297 | '@jridgewell/set-array': 1.1.2
1298 | '@jridgewell/sourcemap-codec': 1.4.15
1299 | '@jridgewell/trace-mapping': 0.3.18
1300 | dev: true
1301 |
1302 | /@jridgewell/resolve-uri@3.1.0:
1303 | resolution: {integrity: sha512-F2msla3tad+Mfht5cJq7LSXcdudKTWCVYUgw6pLFOOHSTtZlj6SWNYAp+AhuqLmWdBO2X5hPrLcu8cVP8fy28w==}
1304 | engines: {node: '>=6.0.0'}
1305 | dev: true
1306 |
1307 | /@jridgewell/set-array@1.1.2:
1308 | resolution: {integrity: sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw==}
1309 | engines: {node: '>=6.0.0'}
1310 | dev: true
1311 |
1312 | /@jridgewell/source-map@0.3.3:
1313 | resolution: {integrity: sha512-b+fsZXeLYi9fEULmfBrhxn4IrPlINf8fiNarzTof004v3lFdntdwa9PF7vFJqm3mg7s+ScJMxXaE3Acp1irZcg==}
1314 | dependencies:
1315 | '@jridgewell/gen-mapping': 0.3.3
1316 | '@jridgewell/trace-mapping': 0.3.18
1317 | dev: true
1318 |
1319 | /@jridgewell/sourcemap-codec@1.4.14:
1320 | resolution: {integrity: sha512-XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw==}
1321 | dev: true
1322 |
1323 | /@jridgewell/sourcemap-codec@1.4.15:
1324 | resolution: {integrity: sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==}
1325 | dev: true
1326 |
1327 | /@jridgewell/trace-mapping@0.3.18:
1328 | resolution: {integrity: sha512-w+niJYzMHdd7USdiH2U6869nqhD2nbfZXND5Yp93qIbEmnDNk7PD48o+YchRVpzMU7M6jVCbenTR7PA1FLQ9pA==}
1329 | dependencies:
1330 | '@jridgewell/resolve-uri': 3.1.0
1331 | '@jridgewell/sourcemap-codec': 1.4.14
1332 | dev: true
1333 |
1334 | /@nodelib/fs.scandir@2.1.5:
1335 | resolution: {integrity: sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==}
1336 | engines: {node: '>= 8'}
1337 | dependencies:
1338 | '@nodelib/fs.stat': 2.0.5
1339 | run-parallel: 1.2.0
1340 | dev: true
1341 |
1342 | /@nodelib/fs.stat@2.0.5:
1343 | resolution: {integrity: sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==}
1344 | engines: {node: '>= 8'}
1345 | dev: true
1346 |
1347 | /@nodelib/fs.walk@1.2.8:
1348 | resolution: {integrity: sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==}
1349 | engines: {node: '>= 8'}
1350 | dependencies:
1351 | '@nodelib/fs.scandir': 2.1.5
1352 | fastq: 1.15.0
1353 | dev: true
1354 |
1355 | /@pkgjs/parseargs@0.11.0:
1356 | resolution: {integrity: sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==}
1357 | engines: {node: '>=14'}
1358 | requiresBuild: true
1359 | dev: true
1360 | optional: true
1361 |
1362 | /@sinclair/typebox@0.25.24:
1363 | resolution: {integrity: sha512-XJfwUVUKDHF5ugKwIcxEgc9k8b7HbznCp6eUfWgu710hMPNIO4aw4/zB5RogDQz8nd6gyCDpU9O/m6qYEWY6yQ==}
1364 | dev: true
1365 |
1366 | /@trysound/sax@0.2.0:
1367 | resolution: {integrity: sha512-L7z9BgrNEcYyUYtF+HaEfiS5ebkh9jXqbszz7pC0hRBPaatV0XjSD3+eHrpqFemQfgwiFF0QPIarnIihIDn7OA==}
1368 | engines: {node: '>=10.13.0'}
1369 | dev: true
1370 |
1371 | /@types/eslint-scope@3.7.4:
1372 | resolution: {integrity: sha512-9K4zoImiZc3HlIp6AVUDE4CWYx22a+lhSZMYNpbjW04+YF0KWj4pJXnEMjdnFTiQibFFmElcsasJXDbdI/EPhA==}
1373 | dependencies:
1374 | '@types/eslint': 8.40.2
1375 | '@types/estree': 1.0.1
1376 | dev: true
1377 |
1378 | /@types/eslint@8.40.2:
1379 | resolution: {integrity: sha512-PRVjQ4Eh9z9pmmtaq8nTjZjQwKFk7YIHIud3lRoKRBgUQjgjRmoGxxGEPXQkF+lH7QkHJRNr5F4aBgYCW0lqpQ==}
1380 | dependencies:
1381 | '@types/estree': 1.0.1
1382 | '@types/json-schema': 7.0.12
1383 | dev: true
1384 |
1385 | /@types/estree@1.0.1:
1386 | resolution: {integrity: sha512-LG4opVs2ANWZ1TJoKc937iMmNstM/d0ae1vNbnBvBhqCSezgVUOzcLCqbI5elV8Vy6WKwKjaqR+zO9VKirBBCA==}
1387 | dev: true
1388 |
1389 | /@types/istanbul-lib-coverage@2.0.4:
1390 | resolution: {integrity: sha512-z/QT1XN4K4KYuslS23k62yDIDLwLFkzxOuMplDtObz0+y7VqJCaO2o+SPwHCvLFZh7xazvvoor2tA/hPz9ee7g==}
1391 | dev: true
1392 |
1393 | /@types/istanbul-lib-report@3.0.0:
1394 | resolution: {integrity: sha512-plGgXAPfVKFoYfa9NpYDAkseG+g6Jr294RqeqcqDixSbU34MZVJRi/P+7Y8GDpzkEwLaGZZOpKIEmeVZNtKsrg==}
1395 | dependencies:
1396 | '@types/istanbul-lib-coverage': 2.0.4
1397 | dev: true
1398 |
1399 | /@types/istanbul-reports@3.0.1:
1400 | resolution: {integrity: sha512-c3mAZEuK0lvBp8tmuL74XRKn1+y2dcwOUpH7x4WrF6gk1GIgiluDRgMYQtw2OFcBvAJWlt6ASU3tSqxp0Uu0Aw==}
1401 | dependencies:
1402 | '@types/istanbul-lib-report': 3.0.0
1403 | dev: true
1404 |
1405 | /@types/json-schema@7.0.12:
1406 | resolution: {integrity: sha512-Hr5Jfhc9eYOQNPYO5WLDq/n4jqijdHNlDXjuAQkkt+mWdQR+XJToOHrsD4cPaMXpn6KO7y2+wM8AZEs8VpBLVA==}
1407 | dev: true
1408 |
1409 | /@types/node@20.3.1:
1410 | resolution: {integrity: sha512-EhcH/wvidPy1WeML3TtYFGR83UzjxeWRen9V402T8aUGYsCHOmfoisV3ZSg03gAFIbLq8TnWOJ0f4cALtnSEUg==}
1411 | dev: true
1412 |
1413 | /@types/yargs-parser@21.0.0:
1414 | resolution: {integrity: sha512-iO9ZQHkZxHn4mSakYV0vFHAVDyEOIJQrV2uZ06HxEPcx+mt8swXoZHIbaaJ2crJYFfErySgktuTZ3BeLz+XmFA==}
1415 | dev: true
1416 |
1417 | /@types/yargs@17.0.24:
1418 | resolution: {integrity: sha512-6i0aC7jV6QzQB8ne1joVZ0eSFIstHsCrobmOtghM11yGlH0j43FKL2UhWdELkyps0zuf7qVTUVCCR+tgSlyLLw==}
1419 | dependencies:
1420 | '@types/yargs-parser': 21.0.0
1421 | dev: true
1422 |
1423 | /@webassemblyjs/ast@1.11.6:
1424 | resolution: {integrity: sha512-IN1xI7PwOvLPgjcf180gC1bqn3q/QaOCwYUahIOhbYUu8KA/3tw2RT/T0Gidi1l7Hhj5D/INhJxiICObqpMu4Q==}
1425 | dependencies:
1426 | '@webassemblyjs/helper-numbers': 1.11.6
1427 | '@webassemblyjs/helper-wasm-bytecode': 1.11.6
1428 | dev: true
1429 |
1430 | /@webassemblyjs/floating-point-hex-parser@1.11.6:
1431 | resolution: {integrity: sha512-ejAj9hfRJ2XMsNHk/v6Fu2dGS+i4UaXBXGemOfQ/JfQ6mdQg/WXtwleQRLLS4OvfDhv8rYnVwH27YJLMyYsxhw==}
1432 | dev: true
1433 |
1434 | /@webassemblyjs/helper-api-error@1.11.6:
1435 | resolution: {integrity: sha512-o0YkoP4pVu4rN8aTJgAyj9hC2Sv5UlkzCHhxqWj8butaLvnpdc2jOwh4ewE6CX0txSfLn/UYaV/pheS2Txg//Q==}
1436 | dev: true
1437 |
1438 | /@webassemblyjs/helper-buffer@1.11.6:
1439 | resolution: {integrity: sha512-z3nFzdcp1mb8nEOFFk8DrYLpHvhKC3grJD2ardfKOzmbmJvEf/tPIqCY+sNcwZIY8ZD7IkB2l7/pqhUhqm7hLA==}
1440 | dev: true
1441 |
1442 | /@webassemblyjs/helper-numbers@1.11.6:
1443 | resolution: {integrity: sha512-vUIhZ8LZoIWHBohiEObxVm6hwP034jwmc9kuq5GdHZH0wiLVLIPcMCdpJzG4C11cHoQ25TFIQj9kaVADVX7N3g==}
1444 | dependencies:
1445 | '@webassemblyjs/floating-point-hex-parser': 1.11.6
1446 | '@webassemblyjs/helper-api-error': 1.11.6
1447 | '@xtuc/long': 4.2.2
1448 | dev: true
1449 |
1450 | /@webassemblyjs/helper-wasm-bytecode@1.11.6:
1451 | resolution: {integrity: sha512-sFFHKwcmBprO9e7Icf0+gddyWYDViL8bpPjJJl0WHxCdETktXdmtWLGVzoHbqUcY4Be1LkNfwTmXOJUFZYSJdA==}
1452 | dev: true
1453 |
1454 | /@webassemblyjs/helper-wasm-section@1.11.6:
1455 | resolution: {integrity: sha512-LPpZbSOwTpEC2cgn4hTydySy1Ke+XEu+ETXuoyvuyezHO3Kjdu90KK95Sh9xTbmjrCsUwvWwCOQQNta37VrS9g==}
1456 | dependencies:
1457 | '@webassemblyjs/ast': 1.11.6
1458 | '@webassemblyjs/helper-buffer': 1.11.6
1459 | '@webassemblyjs/helper-wasm-bytecode': 1.11.6
1460 | '@webassemblyjs/wasm-gen': 1.11.6
1461 | dev: true
1462 |
1463 | /@webassemblyjs/ieee754@1.11.6:
1464 | resolution: {integrity: sha512-LM4p2csPNvbij6U1f19v6WR56QZ8JcHg3QIJTlSwzFcmx6WSORicYj6I63f9yU1kEUtrpG+kjkiIAkevHpDXrg==}
1465 | dependencies:
1466 | '@xtuc/ieee754': 1.2.0
1467 | dev: true
1468 |
1469 | /@webassemblyjs/leb128@1.11.6:
1470 | resolution: {integrity: sha512-m7a0FhE67DQXgouf1tbN5XQcdWoNgaAuoULHIfGFIEVKA6tu/edls6XnIlkmS6FrXAquJRPni3ZZKjw6FSPjPQ==}
1471 | dependencies:
1472 | '@xtuc/long': 4.2.2
1473 | dev: true
1474 |
1475 | /@webassemblyjs/utf8@1.11.6:
1476 | resolution: {integrity: sha512-vtXf2wTQ3+up9Zsg8sa2yWiQpzSsMyXj0qViVP6xKGCUT8p8YJ6HqI7l5eCnWx1T/FYdsv07HQs2wTFbbof/RA==}
1477 | dev: true
1478 |
1479 | /@webassemblyjs/wasm-edit@1.11.6:
1480 | resolution: {integrity: sha512-Ybn2I6fnfIGuCR+Faaz7YcvtBKxvoLV3Lebn1tM4o/IAJzmi9AWYIPWpyBfU8cC+JxAO57bk4+zdsTjJR+VTOw==}
1481 | dependencies:
1482 | '@webassemblyjs/ast': 1.11.6
1483 | '@webassemblyjs/helper-buffer': 1.11.6
1484 | '@webassemblyjs/helper-wasm-bytecode': 1.11.6
1485 | '@webassemblyjs/helper-wasm-section': 1.11.6
1486 | '@webassemblyjs/wasm-gen': 1.11.6
1487 | '@webassemblyjs/wasm-opt': 1.11.6
1488 | '@webassemblyjs/wasm-parser': 1.11.6
1489 | '@webassemblyjs/wast-printer': 1.11.6
1490 | dev: true
1491 |
1492 | /@webassemblyjs/wasm-gen@1.11.6:
1493 | resolution: {integrity: sha512-3XOqkZP/y6B4F0PBAXvI1/bky7GryoogUtfwExeP/v7Nzwo1QLcq5oQmpKlftZLbT+ERUOAZVQjuNVak6UXjPA==}
1494 | dependencies:
1495 | '@webassemblyjs/ast': 1.11.6
1496 | '@webassemblyjs/helper-wasm-bytecode': 1.11.6
1497 | '@webassemblyjs/ieee754': 1.11.6
1498 | '@webassemblyjs/leb128': 1.11.6
1499 | '@webassemblyjs/utf8': 1.11.6
1500 | dev: true
1501 |
1502 | /@webassemblyjs/wasm-opt@1.11.6:
1503 | resolution: {integrity: sha512-cOrKuLRE7PCe6AsOVl7WasYf3wbSo4CeOk6PkrjS7g57MFfVUF9u6ysQBBODX0LdgSvQqRiGz3CXvIDKcPNy4g==}
1504 | dependencies:
1505 | '@webassemblyjs/ast': 1.11.6
1506 | '@webassemblyjs/helper-buffer': 1.11.6
1507 | '@webassemblyjs/wasm-gen': 1.11.6
1508 | '@webassemblyjs/wasm-parser': 1.11.6
1509 | dev: true
1510 |
1511 | /@webassemblyjs/wasm-parser@1.11.6:
1512 | resolution: {integrity: sha512-6ZwPeGzMJM3Dqp3hCsLgESxBGtT/OeCvCZ4TA1JUPYgmhAx38tTPR9JaKy0S5H3evQpO/h2uWs2j6Yc/fjkpTQ==}
1513 | dependencies:
1514 | '@webassemblyjs/ast': 1.11.6
1515 | '@webassemblyjs/helper-api-error': 1.11.6
1516 | '@webassemblyjs/helper-wasm-bytecode': 1.11.6
1517 | '@webassemblyjs/ieee754': 1.11.6
1518 | '@webassemblyjs/leb128': 1.11.6
1519 | '@webassemblyjs/utf8': 1.11.6
1520 | dev: true
1521 |
1522 | /@webassemblyjs/wast-printer@1.11.6:
1523 | resolution: {integrity: sha512-JM7AhRcE+yW2GWYaKeHL5vt4xqee5N2WcezptmgyhNS+ScggqcT1OtXykhAb13Sn5Yas0j2uv9tHgrjwvzAP4A==}
1524 | dependencies:
1525 | '@webassemblyjs/ast': 1.11.6
1526 | '@xtuc/long': 4.2.2
1527 | dev: true
1528 |
1529 | /@webpack-cli/configtest@2.1.1(webpack-cli@5.1.4)(webpack@5.88.0):
1530 | resolution: {integrity: sha512-wy0mglZpDSiSS0XHrVR+BAdId2+yxPSoJW8fsna3ZpYSlufjvxnP4YbKTCBZnNIcGN4r6ZPXV55X4mYExOfLmw==}
1531 | engines: {node: '>=14.15.0'}
1532 | peerDependencies:
1533 | webpack: 5.x.x
1534 | webpack-cli: 5.x.x
1535 | dependencies:
1536 | webpack: 5.88.0(webpack-cli@5.1.4)
1537 | webpack-cli: 5.1.4(webpack@5.88.0)
1538 | dev: true
1539 |
1540 | /@webpack-cli/info@2.0.2(webpack-cli@5.1.4)(webpack@5.88.0):
1541 | resolution: {integrity: sha512-zLHQdI/Qs1UyT5UBdWNqsARasIA+AaF8t+4u2aS2nEpBQh2mWIVb8qAklq0eUENnC5mOItrIB4LiS9xMtph18A==}
1542 | engines: {node: '>=14.15.0'}
1543 | peerDependencies:
1544 | webpack: 5.x.x
1545 | webpack-cli: 5.x.x
1546 | dependencies:
1547 | webpack: 5.88.0(webpack-cli@5.1.4)
1548 | webpack-cli: 5.1.4(webpack@5.88.0)
1549 | dev: true
1550 |
1551 | /@webpack-cli/serve@2.0.5(webpack-cli@5.1.4)(webpack@5.88.0):
1552 | resolution: {integrity: sha512-lqaoKnRYBdo1UgDX8uF24AfGMifWK19TxPmM5FHc2vAGxrJ/qtyUyFBWoY1tISZdelsQ5fBcOusifo5o5wSJxQ==}
1553 | engines: {node: '>=14.15.0'}
1554 | peerDependencies:
1555 | webpack: 5.x.x
1556 | webpack-cli: 5.x.x
1557 | webpack-dev-server: '*'
1558 | peerDependenciesMeta:
1559 | webpack-dev-server:
1560 | optional: true
1561 | dependencies:
1562 | webpack: 5.88.0(webpack-cli@5.1.4)
1563 | webpack-cli: 5.1.4(webpack@5.88.0)
1564 | dev: true
1565 |
1566 | /@xtuc/ieee754@1.2.0:
1567 | resolution: {integrity: sha512-DX8nKgqcGwsc0eJSqYt5lwP4DH5FlHnmuWWBRy7X0NcaGR0ZtuyeESgMwTYVEtxmsNGY+qit4QYT/MIYTOTPeA==}
1568 | dev: true
1569 |
1570 | /@xtuc/long@4.2.2:
1571 | resolution: {integrity: sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ==}
1572 | dev: true
1573 |
1574 | /acorn-import-assertions@1.9.0(acorn@8.9.0):
1575 | resolution: {integrity: sha512-cmMwop9x+8KFhxvKrKfPYmN6/pKTYYHBqLa0DfvVZcKMJWNyWLnaqND7dx/qn66R7ewM1UX5XMaDVP5wlVTaVA==}
1576 | peerDependencies:
1577 | acorn: ^8
1578 | dependencies:
1579 | acorn: 8.9.0
1580 | dev: true
1581 |
1582 | /acorn@8.9.0:
1583 | resolution: {integrity: sha512-jaVNAFBHNLXspO543WnNNPZFRtavh3skAkITqD0/2aeMkKZTN+254PyhwxFYrk3vQ1xfY+2wbesJMs/JC8/PwQ==}
1584 | engines: {node: '>=0.4.0'}
1585 | hasBin: true
1586 | dev: true
1587 |
1588 | /ajv-formats@2.1.1(ajv@8.12.0):
1589 | resolution: {integrity: sha512-Wx0Kx52hxE7C18hkMEggYlEifqWZtYaRgouJor+WMdPnQyEK13vgEWyVNup7SoeeoLMsr4kf5h6dOW11I15MUA==}
1590 | peerDependencies:
1591 | ajv: ^8.0.0
1592 | peerDependenciesMeta:
1593 | ajv:
1594 | optional: true
1595 | dependencies:
1596 | ajv: 8.12.0
1597 | dev: true
1598 |
1599 | /ajv-keywords@3.5.2(ajv@6.12.6):
1600 | resolution: {integrity: sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==}
1601 | peerDependencies:
1602 | ajv: ^6.9.1
1603 | dependencies:
1604 | ajv: 6.12.6
1605 | dev: true
1606 |
1607 | /ajv-keywords@5.1.0(ajv@8.12.0):
1608 | resolution: {integrity: sha512-YCS/JNFAUyr5vAuhk1DWm1CBxRHW9LbJ2ozWeemrIqpbsqKjHVxYPyi5GC0rjZIT5JxJ3virVTS8wk4i/Z+krw==}
1609 | peerDependencies:
1610 | ajv: ^8.8.2
1611 | dependencies:
1612 | ajv: 8.12.0
1613 | fast-deep-equal: 3.1.3
1614 | dev: true
1615 |
1616 | /ajv@6.12.6:
1617 | resolution: {integrity: sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==}
1618 | dependencies:
1619 | fast-deep-equal: 3.1.3
1620 | fast-json-stable-stringify: 2.1.0
1621 | json-schema-traverse: 0.4.1
1622 | uri-js: 4.4.1
1623 | dev: true
1624 |
1625 | /ajv@8.12.0:
1626 | resolution: {integrity: sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA==}
1627 | dependencies:
1628 | fast-deep-equal: 3.1.3
1629 | json-schema-traverse: 1.0.0
1630 | require-from-string: 2.0.2
1631 | uri-js: 4.4.1
1632 | dev: true
1633 |
1634 | /ansi-regex@5.0.1:
1635 | resolution: {integrity: sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==}
1636 | engines: {node: '>=8'}
1637 | dev: true
1638 |
1639 | /ansi-regex@6.0.1:
1640 | resolution: {integrity: sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==}
1641 | engines: {node: '>=12'}
1642 | dev: true
1643 |
1644 | /ansi-styles@3.2.1:
1645 | resolution: {integrity: sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==}
1646 | engines: {node: '>=4'}
1647 | dependencies:
1648 | color-convert: 1.9.3
1649 | dev: true
1650 |
1651 | /ansi-styles@4.3.0:
1652 | resolution: {integrity: sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==}
1653 | engines: {node: '>=8'}
1654 | dependencies:
1655 | color-convert: 2.0.1
1656 | dev: true
1657 |
1658 | /ansi-styles@6.2.1:
1659 | resolution: {integrity: sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==}
1660 | engines: {node: '>=12'}
1661 | dev: true
1662 |
1663 | /anymatch@3.1.3:
1664 | resolution: {integrity: sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==}
1665 | engines: {node: '>= 8'}
1666 | dependencies:
1667 | normalize-path: 3.0.0
1668 | picomatch: 2.3.1
1669 | dev: true
1670 |
1671 | /babel-loader@9.1.2(@babel/core@7.22.5)(webpack@5.88.0):
1672 | resolution: {integrity: sha512-mN14niXW43tddohGl8HPu5yfQq70iUThvFL/4QzESA7GcZoC0eVOhvWdQ8+3UlSjaDE9MVtsW9mxDY07W7VpVA==}
1673 | engines: {node: '>= 14.15.0'}
1674 | peerDependencies:
1675 | '@babel/core': ^7.12.0
1676 | webpack: '>=5'
1677 | dependencies:
1678 | '@babel/core': 7.22.5
1679 | find-cache-dir: 3.3.2
1680 | schema-utils: 4.2.0
1681 | webpack: 5.88.0(webpack-cli@5.1.4)
1682 | dev: true
1683 |
1684 | /babel-plugin-polyfill-corejs2@0.4.3(@babel/core@7.22.5):
1685 | resolution: {integrity: sha512-bM3gHc337Dta490gg+/AseNB9L4YLHxq1nGKZZSHbhXv4aTYU2MD2cjza1Ru4S6975YLTaL1K8uJf6ukJhhmtw==}
1686 | peerDependencies:
1687 | '@babel/core': ^7.0.0-0
1688 | dependencies:
1689 | '@babel/compat-data': 7.22.5
1690 | '@babel/core': 7.22.5
1691 | '@babel/helper-define-polyfill-provider': 0.4.0(@babel/core@7.22.5)
1692 | semver: 6.3.0
1693 | transitivePeerDependencies:
1694 | - supports-color
1695 | dev: true
1696 |
1697 | /babel-plugin-polyfill-corejs3@0.8.1(@babel/core@7.22.5):
1698 | resolution: {integrity: sha512-ikFrZITKg1xH6pLND8zT14UPgjKHiGLqex7rGEZCH2EvhsneJaJPemmpQaIZV5AL03II+lXylw3UmddDK8RU5Q==}
1699 | peerDependencies:
1700 | '@babel/core': ^7.0.0-0
1701 | dependencies:
1702 | '@babel/core': 7.22.5
1703 | '@babel/helper-define-polyfill-provider': 0.4.0(@babel/core@7.22.5)
1704 | core-js-compat: 3.31.0
1705 | transitivePeerDependencies:
1706 | - supports-color
1707 | dev: true
1708 |
1709 | /babel-plugin-polyfill-regenerator@0.5.0(@babel/core@7.22.5):
1710 | resolution: {integrity: sha512-hDJtKjMLVa7Z+LwnTCxoDLQj6wdc+B8dun7ayF2fYieI6OzfuvcLMB32ihJZ4UhCBwNYGl5bg/x/P9cMdnkc2g==}
1711 | peerDependencies:
1712 | '@babel/core': ^7.0.0-0
1713 | dependencies:
1714 | '@babel/core': 7.22.5
1715 | '@babel/helper-define-polyfill-provider': 0.4.0(@babel/core@7.22.5)
1716 | transitivePeerDependencies:
1717 | - supports-color
1718 | dev: true
1719 |
1720 | /balanced-match@1.0.2:
1721 | resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==}
1722 | dev: true
1723 |
1724 | /binary-extensions@2.2.0:
1725 | resolution: {integrity: sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==}
1726 | engines: {node: '>=8'}
1727 | dev: true
1728 |
1729 | /boolbase@1.0.0:
1730 | resolution: {integrity: sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww==}
1731 | dev: true
1732 |
1733 | /brace-expansion@2.0.1:
1734 | resolution: {integrity: sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==}
1735 | dependencies:
1736 | balanced-match: 1.0.2
1737 | dev: true
1738 |
1739 | /braces@3.0.2:
1740 | resolution: {integrity: sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==}
1741 | engines: {node: '>=8'}
1742 | dependencies:
1743 | fill-range: 7.0.1
1744 | dev: true
1745 |
1746 | /browserslist@4.21.9:
1747 | resolution: {integrity: sha512-M0MFoZzbUrRU4KNfCrDLnvyE7gub+peetoTid3TBIqtunaDJyXlwhakT+/VkvSXcfIzFfK/nkCs4nmyTmxdNSg==}
1748 | engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7}
1749 | hasBin: true
1750 | dependencies:
1751 | caniuse-lite: 1.0.30001507
1752 | electron-to-chromium: 1.4.440
1753 | node-releases: 2.0.12
1754 | update-browserslist-db: 1.0.11(browserslist@4.21.9)
1755 | dev: true
1756 |
1757 | /buffer-from@1.1.2:
1758 | resolution: {integrity: sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==}
1759 | dev: true
1760 |
1761 | /caniuse-api@3.0.0:
1762 | resolution: {integrity: sha512-bsTwuIg/BZZK/vreVTYYbSWoe2F+71P7K5QGEX+pT250DZbfU1MQ5prOKpPR+LL6uWKK3KMwMCAS74QB3Um1uw==}
1763 | dependencies:
1764 | browserslist: 4.21.9
1765 | caniuse-lite: 1.0.30001507
1766 | lodash.memoize: 4.1.2
1767 | lodash.uniq: 4.5.0
1768 | dev: true
1769 |
1770 | /caniuse-lite@1.0.30001507:
1771 | resolution: {integrity: sha512-SFpUDoSLCaE5XYL2jfqe9ova/pbQHEmbheDf5r4diNwbAgR3qxM9NQtfsiSscjqoya5K7kFcHPUQ+VsUkIJR4A==}
1772 | dev: true
1773 |
1774 | /chalk@2.4.2:
1775 | resolution: {integrity: sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==}
1776 | engines: {node: '>=4'}
1777 | dependencies:
1778 | ansi-styles: 3.2.1
1779 | escape-string-regexp: 1.0.5
1780 | supports-color: 5.5.0
1781 | dev: true
1782 |
1783 | /chalk@4.1.2:
1784 | resolution: {integrity: sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==}
1785 | engines: {node: '>=10'}
1786 | dependencies:
1787 | ansi-styles: 4.3.0
1788 | supports-color: 7.2.0
1789 | dev: true
1790 |
1791 | /chokidar@3.5.3:
1792 | resolution: {integrity: sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==}
1793 | engines: {node: '>= 8.10.0'}
1794 | dependencies:
1795 | anymatch: 3.1.3
1796 | braces: 3.0.2
1797 | glob-parent: 5.1.2
1798 | is-binary-path: 2.1.0
1799 | is-glob: 4.0.3
1800 | normalize-path: 3.0.0
1801 | readdirp: 3.6.0
1802 | optionalDependencies:
1803 | fsevents: 2.3.2
1804 | dev: true
1805 |
1806 | /chrome-trace-event@1.0.3:
1807 | resolution: {integrity: sha512-p3KULyQg4S7NIHixdwbGX+nFHkoBiA4YQmyWtjb8XngSKV124nJmRysgAeujbUVb15vh+RvFUfCPqU7rXk+hZg==}
1808 | engines: {node: '>=6.0'}
1809 | dev: true
1810 |
1811 | /ci-info@3.8.0:
1812 | resolution: {integrity: sha512-eXTggHWSooYhq49F2opQhuHWgzucfF2YgODK4e1566GQs5BIfP30B0oenwBJHfWxAs2fyPB1s7Mg949zLf61Yw==}
1813 | engines: {node: '>=8'}
1814 | dev: true
1815 |
1816 | /clone-deep@4.0.1:
1817 | resolution: {integrity: sha512-neHB9xuzh/wk0dIHweyAXv2aPGZIVk3pLMe+/RNzINf17fe0OG96QroktYAUm7SM1PBnzTabaLboqqxDyMU+SQ==}
1818 | engines: {node: '>=6'}
1819 | dependencies:
1820 | is-plain-object: 2.0.4
1821 | kind-of: 6.0.3
1822 | shallow-clone: 3.0.1
1823 | dev: true
1824 |
1825 | /color-convert@1.9.3:
1826 | resolution: {integrity: sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==}
1827 | dependencies:
1828 | color-name: 1.1.3
1829 | dev: true
1830 |
1831 | /color-convert@2.0.1:
1832 | resolution: {integrity: sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==}
1833 | engines: {node: '>=7.0.0'}
1834 | dependencies:
1835 | color-name: 1.1.4
1836 | dev: true
1837 |
1838 | /color-name@1.1.3:
1839 | resolution: {integrity: sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==}
1840 | dev: true
1841 |
1842 | /color-name@1.1.4:
1843 | resolution: {integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==}
1844 | dev: true
1845 |
1846 | /colord@2.9.3:
1847 | resolution: {integrity: sha512-jeC1axXpnb0/2nn/Y1LPuLdgXBLH7aDcHu4KEKfqw3CUhX7ZpfBSlPKyqXE6btIgEzfWtrX3/tyBCaCvXvMkOw==}
1848 | dev: true
1849 |
1850 | /colorette@2.0.20:
1851 | resolution: {integrity: sha512-IfEDxwoWIjkeXL1eXcDiow4UbKjhLdq6/EuSVR9GMN7KVH3r9gQ83e73hsz1Nd1T3ijd5xv1wcWRYO+D6kCI2w==}
1852 | dev: true
1853 |
1854 | /commander@10.0.1:
1855 | resolution: {integrity: sha512-y4Mg2tXshplEbSGzx7amzPwKKOCGuoSRP/CjEdwwk0FOGlUbq6lKuoyDZTNZkmxHdJtp54hdfY/JUrdL7Xfdug==}
1856 | engines: {node: '>=14'}
1857 | dev: true
1858 |
1859 | /commander@2.20.3:
1860 | resolution: {integrity: sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==}
1861 | dev: true
1862 |
1863 | /commander@7.2.0:
1864 | resolution: {integrity: sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw==}
1865 | engines: {node: '>= 10'}
1866 | dev: true
1867 |
1868 | /commondir@1.0.1:
1869 | resolution: {integrity: sha512-W9pAhw0ja1Edb5GVdIF1mjZw/ASI0AlShXM83UUGe2DVr5TdAPEA1OA8m/g8zWp9x6On7gqufY+FatDbC3MDQg==}
1870 | dev: true
1871 |
1872 | /convert-source-map@1.9.0:
1873 | resolution: {integrity: sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A==}
1874 | dev: true
1875 |
1876 | /copy-webpack-plugin@11.0.0(webpack@5.88.0):
1877 | resolution: {integrity: sha512-fX2MWpamkW0hZxMEg0+mYnA40LTosOSa5TqZ9GYIBzyJa9C3QUaMPSE2xAi/buNr8u89SfD9wHSQVBzrRa/SOQ==}
1878 | engines: {node: '>= 14.15.0'}
1879 | peerDependencies:
1880 | webpack: ^5.1.0
1881 | dependencies:
1882 | fast-glob: 3.2.12
1883 | glob-parent: 6.0.2
1884 | globby: 13.2.0
1885 | normalize-path: 3.0.0
1886 | schema-utils: 4.2.0
1887 | serialize-javascript: 6.0.1
1888 | webpack: 5.88.0(webpack-cli@5.1.4)
1889 | dev: true
1890 |
1891 | /core-js-compat@3.31.0:
1892 | resolution: {integrity: sha512-hM7YCu1cU6Opx7MXNu0NuumM0ezNeAeRKadixyiQELWY3vT3De9S4J5ZBMraWV2vZnrE1Cirl0GtFtDtMUXzPw==}
1893 | dependencies:
1894 | browserslist: 4.21.9
1895 | dev: true
1896 |
1897 | /cross-env@7.0.3:
1898 | resolution: {integrity: sha512-+/HKd6EgcQCJGh2PSjZuUitQBQynKor4wrFbRg4DtAgS1aWO+gU52xpH7M9ScGgXSYmAVS9bIJ8EzuaGw0oNAw==}
1899 | engines: {node: '>=10.14', npm: '>=6', yarn: '>=1'}
1900 | hasBin: true
1901 | dependencies:
1902 | cross-spawn: 7.0.3
1903 | dev: true
1904 |
1905 | /cross-spawn@7.0.3:
1906 | resolution: {integrity: sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==}
1907 | engines: {node: '>= 8'}
1908 | dependencies:
1909 | path-key: 3.1.1
1910 | shebang-command: 2.0.0
1911 | which: 2.0.2
1912 | dev: true
1913 |
1914 | /css-declaration-sorter@6.4.0(postcss@8.4.24):
1915 | resolution: {integrity: sha512-jDfsatwWMWN0MODAFuHszfjphEXfNw9JUAhmY4pLu3TyTU+ohUpsbVtbU+1MZn4a47D9kqh03i4eyOm+74+zew==}
1916 | engines: {node: ^10 || ^12 || >=14}
1917 | peerDependencies:
1918 | postcss: ^8.0.9
1919 | dependencies:
1920 | postcss: 8.4.24
1921 | dev: true
1922 |
1923 | /css-loader@6.8.1(webpack@5.88.0):
1924 | resolution: {integrity: sha512-xDAXtEVGlD0gJ07iclwWVkLoZOpEvAWaSyf6W18S2pOC//K8+qUDIx8IIT3D+HjnmkJPQeesOPv5aiUaJsCM2g==}
1925 | engines: {node: '>= 12.13.0'}
1926 | peerDependencies:
1927 | webpack: ^5.0.0
1928 | dependencies:
1929 | icss-utils: 5.1.0(postcss@8.4.24)
1930 | postcss: 8.4.24
1931 | postcss-modules-extract-imports: 3.0.0(postcss@8.4.24)
1932 | postcss-modules-local-by-default: 4.0.3(postcss@8.4.24)
1933 | postcss-modules-scope: 3.0.0(postcss@8.4.24)
1934 | postcss-modules-values: 4.0.0(postcss@8.4.24)
1935 | postcss-value-parser: 4.2.0
1936 | semver: 7.5.3
1937 | webpack: 5.88.0(webpack-cli@5.1.4)
1938 | dev: true
1939 |
1940 | /css-minimizer-webpack-plugin@5.0.1(webpack@5.88.0):
1941 | resolution: {integrity: sha512-3caImjKFQkS+ws1TGcFn0V1HyDJFq1Euy589JlD6/3rV2kj+w7r5G9WDMgSHvpvXHNZ2calVypZWuEDQd9wfLg==}
1942 | engines: {node: '>= 14.15.0'}
1943 | peerDependencies:
1944 | '@parcel/css': '*'
1945 | '@swc/css': '*'
1946 | clean-css: '*'
1947 | csso: '*'
1948 | esbuild: '*'
1949 | lightningcss: '*'
1950 | webpack: ^5.0.0
1951 | peerDependenciesMeta:
1952 | '@parcel/css':
1953 | optional: true
1954 | '@swc/css':
1955 | optional: true
1956 | clean-css:
1957 | optional: true
1958 | csso:
1959 | optional: true
1960 | esbuild:
1961 | optional: true
1962 | lightningcss:
1963 | optional: true
1964 | dependencies:
1965 | '@jridgewell/trace-mapping': 0.3.18
1966 | cssnano: 6.0.1(postcss@8.4.24)
1967 | jest-worker: 29.5.0
1968 | postcss: 8.4.24
1969 | schema-utils: 4.2.0
1970 | serialize-javascript: 6.0.1
1971 | webpack: 5.88.0(webpack-cli@5.1.4)
1972 | dev: true
1973 |
1974 | /css-select@5.1.0:
1975 | resolution: {integrity: sha512-nwoRF1rvRRnnCqqY7updORDsuqKzqYJ28+oSMaJMMgOauh3fvwHqMS7EZpIPqK8GL+g9mKxF1vP/ZjSeNjEVHg==}
1976 | dependencies:
1977 | boolbase: 1.0.0
1978 | css-what: 6.1.0
1979 | domhandler: 5.0.3
1980 | domutils: 3.1.0
1981 | nth-check: 2.1.1
1982 | dev: true
1983 |
1984 | /css-tree@2.2.1:
1985 | resolution: {integrity: sha512-OA0mILzGc1kCOCSJerOeqDxDQ4HOh+G8NbOJFOTgOCzpw7fCBubk0fEyxp8AgOL/jvLgYA/uV0cMbe43ElF1JA==}
1986 | engines: {node: ^10 || ^12.20.0 || ^14.13.0 || >=15.0.0, npm: '>=7.0.0'}
1987 | dependencies:
1988 | mdn-data: 2.0.28
1989 | source-map-js: 1.0.2
1990 | dev: true
1991 |
1992 | /css-tree@2.3.1:
1993 | resolution: {integrity: sha512-6Fv1DV/TYw//QF5IzQdqsNDjx/wc8TrMBZsqjL9eW01tWb7R7k/mq+/VXfJCl7SoD5emsJop9cOByJZfs8hYIw==}
1994 | engines: {node: ^10 || ^12.20.0 || ^14.13.0 || >=15.0.0}
1995 | dependencies:
1996 | mdn-data: 2.0.30
1997 | source-map-js: 1.0.2
1998 | dev: true
1999 |
2000 | /css-what@6.1.0:
2001 | resolution: {integrity: sha512-HTUrgRJ7r4dsZKU6GjmpfRK1O76h97Z8MfS1G0FozR+oF2kG6Vfe8JE6zwrkbxigziPHinCJ+gCPjA9EaBDtRw==}
2002 | engines: {node: '>= 6'}
2003 | dev: true
2004 |
2005 | /cssesc@3.0.0:
2006 | resolution: {integrity: sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==}
2007 | engines: {node: '>=4'}
2008 | hasBin: true
2009 | dev: true
2010 |
2011 | /cssnano-preset-default@6.0.1(postcss@8.4.24):
2012 | resolution: {integrity: sha512-7VzyFZ5zEB1+l1nToKyrRkuaJIx0zi/1npjvZfbBwbtNTzhLtlvYraK/7/uqmX2Wb2aQtd983uuGw79jAjLSuQ==}
2013 | engines: {node: ^14 || ^16 || >=18.0}
2014 | peerDependencies:
2015 | postcss: ^8.2.15
2016 | dependencies:
2017 | css-declaration-sorter: 6.4.0(postcss@8.4.24)
2018 | cssnano-utils: 4.0.0(postcss@8.4.24)
2019 | postcss: 8.4.24
2020 | postcss-calc: 9.0.1(postcss@8.4.24)
2021 | postcss-colormin: 6.0.0(postcss@8.4.24)
2022 | postcss-convert-values: 6.0.0(postcss@8.4.24)
2023 | postcss-discard-comments: 6.0.0(postcss@8.4.24)
2024 | postcss-discard-duplicates: 6.0.0(postcss@8.4.24)
2025 | postcss-discard-empty: 6.0.0(postcss@8.4.24)
2026 | postcss-discard-overridden: 6.0.0(postcss@8.4.24)
2027 | postcss-merge-longhand: 6.0.0(postcss@8.4.24)
2028 | postcss-merge-rules: 6.0.1(postcss@8.4.24)
2029 | postcss-minify-font-values: 6.0.0(postcss@8.4.24)
2030 | postcss-minify-gradients: 6.0.0(postcss@8.4.24)
2031 | postcss-minify-params: 6.0.0(postcss@8.4.24)
2032 | postcss-minify-selectors: 6.0.0(postcss@8.4.24)
2033 | postcss-normalize-charset: 6.0.0(postcss@8.4.24)
2034 | postcss-normalize-display-values: 6.0.0(postcss@8.4.24)
2035 | postcss-normalize-positions: 6.0.0(postcss@8.4.24)
2036 | postcss-normalize-repeat-style: 6.0.0(postcss@8.4.24)
2037 | postcss-normalize-string: 6.0.0(postcss@8.4.24)
2038 | postcss-normalize-timing-functions: 6.0.0(postcss@8.4.24)
2039 | postcss-normalize-unicode: 6.0.0(postcss@8.4.24)
2040 | postcss-normalize-url: 6.0.0(postcss@8.4.24)
2041 | postcss-normalize-whitespace: 6.0.0(postcss@8.4.24)
2042 | postcss-ordered-values: 6.0.0(postcss@8.4.24)
2043 | postcss-reduce-initial: 6.0.0(postcss@8.4.24)
2044 | postcss-reduce-transforms: 6.0.0(postcss@8.4.24)
2045 | postcss-svgo: 6.0.0(postcss@8.4.24)
2046 | postcss-unique-selectors: 6.0.0(postcss@8.4.24)
2047 | dev: true
2048 |
2049 | /cssnano-utils@4.0.0(postcss@8.4.24):
2050 | resolution: {integrity: sha512-Z39TLP+1E0KUcd7LGyF4qMfu8ZufI0rDzhdyAMsa/8UyNUU8wpS0fhdBxbQbv32r64ea00h4878gommRVg2BHw==}
2051 | engines: {node: ^14 || ^16 || >=18.0}
2052 | peerDependencies:
2053 | postcss: ^8.2.15
2054 | dependencies:
2055 | postcss: 8.4.24
2056 | dev: true
2057 |
2058 | /cssnano@6.0.1(postcss@8.4.24):
2059 | resolution: {integrity: sha512-fVO1JdJ0LSdIGJq68eIxOqFpIJrZqXUsBt8fkrBcztCQqAjQD51OhZp7tc0ImcbwXD4k7ny84QTV90nZhmqbkg==}
2060 | engines: {node: ^14 || ^16 || >=18.0}
2061 | peerDependencies:
2062 | postcss: ^8.2.15
2063 | dependencies:
2064 | cssnano-preset-default: 6.0.1(postcss@8.4.24)
2065 | lilconfig: 2.1.0
2066 | postcss: 8.4.24
2067 | dev: true
2068 |
2069 | /csso@5.0.5:
2070 | resolution: {integrity: sha512-0LrrStPOdJj+SPCCrGhzryycLjwcgUSHBtxNA8aIDxf0GLsRh1cKYhB00Gd1lDOS4yGH69+SNn13+TWbVHETFQ==}
2071 | engines: {node: ^10 || ^12.20.0 || ^14.13.0 || >=15.0.0, npm: '>=7.0.0'}
2072 | dependencies:
2073 | css-tree: 2.2.1
2074 | dev: true
2075 |
2076 | /debug@4.3.4:
2077 | resolution: {integrity: sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==}
2078 | engines: {node: '>=6.0'}
2079 | peerDependencies:
2080 | supports-color: '*'
2081 | peerDependenciesMeta:
2082 | supports-color:
2083 | optional: true
2084 | dependencies:
2085 | ms: 2.1.2
2086 | dev: true
2087 |
2088 | /dir-glob@3.0.1:
2089 | resolution: {integrity: sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==}
2090 | engines: {node: '>=8'}
2091 | dependencies:
2092 | path-type: 4.0.0
2093 | dev: true
2094 |
2095 | /dom-serializer@2.0.0:
2096 | resolution: {integrity: sha512-wIkAryiqt/nV5EQKqQpo3SToSOV9J0DnbJqwK7Wv/Trc92zIAYZ4FlMu+JPFW1DfGFt81ZTCGgDEabffXeLyJg==}
2097 | dependencies:
2098 | domelementtype: 2.3.0
2099 | domhandler: 5.0.3
2100 | entities: 4.5.0
2101 | dev: true
2102 |
2103 | /domelementtype@2.3.0:
2104 | resolution: {integrity: sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw==}
2105 | dev: true
2106 |
2107 | /domhandler@5.0.3:
2108 | resolution: {integrity: sha512-cgwlv/1iFQiFnU96XXgROh8xTeetsnJiDsTc7TYCLFd9+/WNkIqPTxiM/8pSd8VIrhXGTf1Ny1q1hquVqDJB5w==}
2109 | engines: {node: '>= 4'}
2110 | dependencies:
2111 | domelementtype: 2.3.0
2112 | dev: true
2113 |
2114 | /domutils@3.1.0:
2115 | resolution: {integrity: sha512-H78uMmQtI2AhgDJjWeQmHwJJ2bLPD3GMmO7Zja/ZZh84wkm+4ut+IUnUdRa8uCGX88DiVx1j6FRe1XfxEgjEZA==}
2116 | dependencies:
2117 | dom-serializer: 2.0.0
2118 | domelementtype: 2.3.0
2119 | domhandler: 5.0.3
2120 | dev: true
2121 |
2122 | /eastasianwidth@0.2.0:
2123 | resolution: {integrity: sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==}
2124 | dev: true
2125 |
2126 | /electron-to-chromium@1.4.440:
2127 | resolution: {integrity: sha512-r6dCgNpRhPwiWlxbHzZQ/d9swfPaEJGi8ekqRBwQYaR3WmA5VkqQfBWSDDjuJU1ntO+W9tHx8OHV/96Q8e0dVw==}
2128 | dev: true
2129 |
2130 | /emoji-regex@8.0.0:
2131 | resolution: {integrity: sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==}
2132 | dev: true
2133 |
2134 | /emoji-regex@9.2.2:
2135 | resolution: {integrity: sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==}
2136 | dev: true
2137 |
2138 | /enhanced-resolve@5.15.0:
2139 | resolution: {integrity: sha512-LXYT42KJ7lpIKECr2mAXIaMldcNCh/7E0KBKOu4KSfkHmP+mZmSs+8V5gBAqisWBy0OO4W5Oyys0GO1Y8KtdKg==}
2140 | engines: {node: '>=10.13.0'}
2141 | dependencies:
2142 | graceful-fs: 4.2.11
2143 | tapable: 2.2.1
2144 | dev: true
2145 |
2146 | /entities@4.5.0:
2147 | resolution: {integrity: sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==}
2148 | engines: {node: '>=0.12'}
2149 | dev: true
2150 |
2151 | /envinfo@7.9.0:
2152 | resolution: {integrity: sha512-RODB4txU+xImYDemN5DqaKC0CHk05XSVkOX4pq0hK26Qx+1LChkuOyUDlGEjYb3ACr0n9qBhFjg37hQuJvpkRQ==}
2153 | engines: {node: '>=4'}
2154 | hasBin: true
2155 | dev: true
2156 |
2157 | /es-module-lexer@1.3.0:
2158 | resolution: {integrity: sha512-vZK7T0N2CBmBOixhmjdqx2gWVbFZ4DXZ/NyRMZVlJXPa7CyFS+/a4QQsDGDQy9ZfEzxFuNEsMLeQJnKP2p5/JA==}
2159 | dev: true
2160 |
2161 | /escalade@3.1.1:
2162 | resolution: {integrity: sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==}
2163 | engines: {node: '>=6'}
2164 | dev: true
2165 |
2166 | /escape-string-regexp@1.0.5:
2167 | resolution: {integrity: sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==}
2168 | engines: {node: '>=0.8.0'}
2169 | dev: true
2170 |
2171 | /eslint-scope@5.1.1:
2172 | resolution: {integrity: sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==}
2173 | engines: {node: '>=8.0.0'}
2174 | dependencies:
2175 | esrecurse: 4.3.0
2176 | estraverse: 4.3.0
2177 | dev: true
2178 |
2179 | /esrecurse@4.3.0:
2180 | resolution: {integrity: sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==}
2181 | engines: {node: '>=4.0'}
2182 | dependencies:
2183 | estraverse: 5.3.0
2184 | dev: true
2185 |
2186 | /estraverse@4.3.0:
2187 | resolution: {integrity: sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==}
2188 | engines: {node: '>=4.0'}
2189 | dev: true
2190 |
2191 | /estraverse@5.3.0:
2192 | resolution: {integrity: sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==}
2193 | engines: {node: '>=4.0'}
2194 | dev: true
2195 |
2196 | /esutils@2.0.3:
2197 | resolution: {integrity: sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==}
2198 | engines: {node: '>=0.10.0'}
2199 | dev: true
2200 |
2201 | /events@3.3.0:
2202 | resolution: {integrity: sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==}
2203 | engines: {node: '>=0.8.x'}
2204 | dev: true
2205 |
2206 | /fast-deep-equal@3.1.3:
2207 | resolution: {integrity: sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==}
2208 | dev: true
2209 |
2210 | /fast-glob@3.2.12:
2211 | resolution: {integrity: sha512-DVj4CQIYYow0BlaelwK1pHl5n5cRSJfM60UA0zK891sVInoPri2Ekj7+e1CT3/3qxXenpI+nBBmQAcJPJgaj4w==}
2212 | engines: {node: '>=8.6.0'}
2213 | dependencies:
2214 | '@nodelib/fs.stat': 2.0.5
2215 | '@nodelib/fs.walk': 1.2.8
2216 | glob-parent: 5.1.2
2217 | merge2: 1.4.1
2218 | micromatch: 4.0.5
2219 | dev: true
2220 |
2221 | /fast-json-stable-stringify@2.1.0:
2222 | resolution: {integrity: sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==}
2223 | dev: true
2224 |
2225 | /fastest-levenshtein@1.0.16:
2226 | resolution: {integrity: sha512-eRnCtTTtGZFpQCwhJiUOuxPQWRXVKYDn0b2PeHfXL6/Zi53SLAzAHfVhVWK2AryC/WH05kGfxhFIPvTF0SXQzg==}
2227 | engines: {node: '>= 4.9.1'}
2228 | dev: true
2229 |
2230 | /fastq@1.15.0:
2231 | resolution: {integrity: sha512-wBrocU2LCXXa+lWBt8RoIRD89Fi8OdABODa/kEnyeyjS5aZO5/GNvI5sEINADqP/h8M29UHTHUb53sUu5Ihqdw==}
2232 | dependencies:
2233 | reusify: 1.0.4
2234 | dev: true
2235 |
2236 | /fill-range@7.0.1:
2237 | resolution: {integrity: sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==}
2238 | engines: {node: '>=8'}
2239 | dependencies:
2240 | to-regex-range: 5.0.1
2241 | dev: true
2242 |
2243 | /find-cache-dir@3.3.2:
2244 | resolution: {integrity: sha512-wXZV5emFEjrridIgED11OoUKLxiYjAcqot/NJdAkOhlJ+vGzwhOAfcG5OX1jP+S0PcjEn8bdMJv+g2jwQ3Onig==}
2245 | engines: {node: '>=8'}
2246 | dependencies:
2247 | commondir: 1.0.1
2248 | make-dir: 3.1.0
2249 | pkg-dir: 4.2.0
2250 | dev: true
2251 |
2252 | /find-up@4.1.0:
2253 | resolution: {integrity: sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==}
2254 | engines: {node: '>=8'}
2255 | dependencies:
2256 | locate-path: 5.0.0
2257 | path-exists: 4.0.0
2258 | dev: true
2259 |
2260 | /foreground-child@3.1.1:
2261 | resolution: {integrity: sha512-TMKDUnIte6bfb5nWv7V/caI169OHgvwjb7V4WkeUvbQQdjr5rWKqHFiKWb/fcOwB+CzBT+qbWjvj+DVwRskpIg==}
2262 | engines: {node: '>=14'}
2263 | dependencies:
2264 | cross-spawn: 7.0.3
2265 | signal-exit: 4.0.2
2266 | dev: true
2267 |
2268 | /fsevents@2.3.2:
2269 | resolution: {integrity: sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==}
2270 | engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0}
2271 | os: [darwin]
2272 | requiresBuild: true
2273 | dev: true
2274 | optional: true
2275 |
2276 | /function-bind@1.1.1:
2277 | resolution: {integrity: sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==}
2278 | dev: true
2279 |
2280 | /gensync@1.0.0-beta.2:
2281 | resolution: {integrity: sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==}
2282 | engines: {node: '>=6.9.0'}
2283 | dev: true
2284 |
2285 | /glob-parent@5.1.2:
2286 | resolution: {integrity: sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==}
2287 | engines: {node: '>= 6'}
2288 | dependencies:
2289 | is-glob: 4.0.3
2290 | dev: true
2291 |
2292 | /glob-parent@6.0.2:
2293 | resolution: {integrity: sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==}
2294 | engines: {node: '>=10.13.0'}
2295 | dependencies:
2296 | is-glob: 4.0.3
2297 | dev: true
2298 |
2299 | /glob-to-regexp@0.4.1:
2300 | resolution: {integrity: sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw==}
2301 | dev: true
2302 |
2303 | /glob@10.3.0:
2304 | resolution: {integrity: sha512-AQ1/SB9HH0yCx1jXAT4vmCbTOPe5RQ+kCurjbel5xSCGhebumUv+GJZfa1rEqor3XIViqwSEmlkZCQD43RWrBg==}
2305 | engines: {node: '>=16 || 14 >=14.17'}
2306 | hasBin: true
2307 | dependencies:
2308 | foreground-child: 3.1.1
2309 | jackspeak: 2.2.1
2310 | minimatch: 9.0.2
2311 | minipass: 6.0.2
2312 | path-scurry: 1.9.2
2313 | dev: true
2314 |
2315 | /globals@11.12.0:
2316 | resolution: {integrity: sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==}
2317 | engines: {node: '>=4'}
2318 | dev: true
2319 |
2320 | /globby@13.2.0:
2321 | resolution: {integrity: sha512-jWsQfayf13NvqKUIL3Ta+CIqMnvlaIDFveWE/dpOZ9+3AMEJozsxDvKA02zync9UuvOM8rOXzsD5GqKP4OnWPQ==}
2322 | engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0}
2323 | dependencies:
2324 | dir-glob: 3.0.1
2325 | fast-glob: 3.2.12
2326 | ignore: 5.2.4
2327 | merge2: 1.4.1
2328 | slash: 4.0.0
2329 | dev: true
2330 |
2331 | /graceful-fs@4.2.11:
2332 | resolution: {integrity: sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==}
2333 | dev: true
2334 |
2335 | /has-flag@3.0.0:
2336 | resolution: {integrity: sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==}
2337 | engines: {node: '>=4'}
2338 | dev: true
2339 |
2340 | /has-flag@4.0.0:
2341 | resolution: {integrity: sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==}
2342 | engines: {node: '>=8'}
2343 | dev: true
2344 |
2345 | /has@1.0.3:
2346 | resolution: {integrity: sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==}
2347 | engines: {node: '>= 0.4.0'}
2348 | dependencies:
2349 | function-bind: 1.1.1
2350 | dev: true
2351 |
2352 | /icss-utils@5.1.0(postcss@8.4.24):
2353 | resolution: {integrity: sha512-soFhflCVWLfRNOPU3iv5Z9VUdT44xFRbzjLsEzSr5AQmgqPMTHdU3PMT1Cf1ssx8fLNJDA1juftYl+PUcv3MqA==}
2354 | engines: {node: ^10 || ^12 || >= 14}
2355 | peerDependencies:
2356 | postcss: ^8.1.0
2357 | dependencies:
2358 | postcss: 8.4.24
2359 | dev: true
2360 |
2361 | /ignore@5.2.4:
2362 | resolution: {integrity: sha512-MAb38BcSbH0eHNBxn7ql2NH/kX33OkB3lZ1BNdh7ENeRChHTYsTvWrMubiIAMNS2llXEEgZ1MUOBtXChP3kaFQ==}
2363 | engines: {node: '>= 4'}
2364 | dev: true
2365 |
2366 | /immutable@4.3.0:
2367 | resolution: {integrity: sha512-0AOCmOip+xgJwEVTQj1EfiDDOkPmuyllDuTuEX+DDXUgapLAsBIfkg3sxCYyCEA8mQqZrrxPUGjcOQ2JS3WLkg==}
2368 | dev: true
2369 |
2370 | /import-local@3.1.0:
2371 | resolution: {integrity: sha512-ASB07uLtnDs1o6EHjKpX34BKYDSqnFerfTOJL2HvMqF70LnxpjkzDB8J44oT9pu4AMPkQwf8jl6szgvNd2tRIg==}
2372 | engines: {node: '>=8'}
2373 | hasBin: true
2374 | dependencies:
2375 | pkg-dir: 4.2.0
2376 | resolve-cwd: 3.0.0
2377 | dev: true
2378 |
2379 | /interpret@3.1.1:
2380 | resolution: {integrity: sha512-6xwYfHbajpoF0xLW+iwLkhwgvLoZDfjYfoFNu8ftMoXINzwuymNLd9u/KmwtdT2GbR+/Cz66otEGEVVUHX9QLQ==}
2381 | engines: {node: '>=10.13.0'}
2382 | dev: true
2383 |
2384 | /is-binary-path@2.1.0:
2385 | resolution: {integrity: sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==}
2386 | engines: {node: '>=8'}
2387 | dependencies:
2388 | binary-extensions: 2.2.0
2389 | dev: true
2390 |
2391 | /is-core-module@2.12.1:
2392 | resolution: {integrity: sha512-Q4ZuBAe2FUsKtyQJoQHlvP8OvBERxO3jEmy1I7hcRXcJBGGHFh/aJBswbXuS9sgrDH2QUO8ilkwNPHvHMd8clg==}
2393 | dependencies:
2394 | has: 1.0.3
2395 | dev: true
2396 |
2397 | /is-extglob@2.1.1:
2398 | resolution: {integrity: sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==}
2399 | engines: {node: '>=0.10.0'}
2400 | dev: true
2401 |
2402 | /is-fullwidth-code-point@3.0.0:
2403 | resolution: {integrity: sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==}
2404 | engines: {node: '>=8'}
2405 | dev: true
2406 |
2407 | /is-glob@4.0.3:
2408 | resolution: {integrity: sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==}
2409 | engines: {node: '>=0.10.0'}
2410 | dependencies:
2411 | is-extglob: 2.1.1
2412 | dev: true
2413 |
2414 | /is-number@7.0.0:
2415 | resolution: {integrity: sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==}
2416 | engines: {node: '>=0.12.0'}
2417 | dev: true
2418 |
2419 | /is-plain-object@2.0.4:
2420 | resolution: {integrity: sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==}
2421 | engines: {node: '>=0.10.0'}
2422 | dependencies:
2423 | isobject: 3.0.1
2424 | dev: true
2425 |
2426 | /isexe@2.0.0:
2427 | resolution: {integrity: sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==}
2428 | dev: true
2429 |
2430 | /isobject@3.0.1:
2431 | resolution: {integrity: sha512-WhB9zCku7EGTj/HQQRz5aUQEUeoQZH2bWcltRErOpymJ4boYE6wL9Tbr23krRPSZ+C5zqNSrSw+Cc7sZZ4b7vg==}
2432 | engines: {node: '>=0.10.0'}
2433 | dev: true
2434 |
2435 | /jackspeak@2.2.1:
2436 | resolution: {integrity: sha512-MXbxovZ/Pm42f6cDIDkl3xpwv1AGwObKwfmjs2nQePiy85tP3fatofl3FC1aBsOtP/6fq5SbtgHwWcMsLP+bDw==}
2437 | engines: {node: '>=14'}
2438 | dependencies:
2439 | '@isaacs/cliui': 8.0.2
2440 | optionalDependencies:
2441 | '@pkgjs/parseargs': 0.11.0
2442 | dev: true
2443 |
2444 | /jest-util@29.5.0:
2445 | resolution: {integrity: sha512-RYMgG/MTadOr5t8KdhejfvUU82MxsCu5MF6KuDUHl+NuwzUt+Sm6jJWxTJVrDR1j5M/gJVCPKQEpWXY+yIQ6lQ==}
2446 | engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
2447 | dependencies:
2448 | '@jest/types': 29.5.0
2449 | '@types/node': 20.3.1
2450 | chalk: 4.1.2
2451 | ci-info: 3.8.0
2452 | graceful-fs: 4.2.11
2453 | picomatch: 2.3.1
2454 | dev: true
2455 |
2456 | /jest-worker@27.5.1:
2457 | resolution: {integrity: sha512-7vuh85V5cdDofPyxn58nrPjBktZo0u9x1g8WtjQol+jZDaE+fhN+cIvTj11GndBnMnyfrUOG1sZQxCdjKh+DKg==}
2458 | engines: {node: '>= 10.13.0'}
2459 | dependencies:
2460 | '@types/node': 20.3.1
2461 | merge-stream: 2.0.0
2462 | supports-color: 8.1.1
2463 | dev: true
2464 |
2465 | /jest-worker@29.5.0:
2466 | resolution: {integrity: sha512-NcrQnevGoSp4b5kg+akIpthoAFHxPBcb5P6mYPY0fUNT+sSvmtu6jlkEle3anczUKIKEbMxFimk9oTP/tpIPgA==}
2467 | engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
2468 | dependencies:
2469 | '@types/node': 20.3.1
2470 | jest-util: 29.5.0
2471 | merge-stream: 2.0.0
2472 | supports-color: 8.1.1
2473 | dev: true
2474 |
2475 | /js-tokens@4.0.0:
2476 | resolution: {integrity: sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==}
2477 | dev: true
2478 |
2479 | /jsesc@0.5.0:
2480 | resolution: {integrity: sha512-uZz5UnB7u4T9LvwmFqXii7pZSouaRPorGs5who1Ip7VO0wxanFvBL7GkM6dTHlgX+jhBApRetaWpnDabOeTcnA==}
2481 | hasBin: true
2482 | dev: true
2483 |
2484 | /jsesc@2.5.2:
2485 | resolution: {integrity: sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==}
2486 | engines: {node: '>=4'}
2487 | hasBin: true
2488 | dev: true
2489 |
2490 | /json-parse-even-better-errors@2.3.1:
2491 | resolution: {integrity: sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==}
2492 | dev: true
2493 |
2494 | /json-schema-traverse@0.4.1:
2495 | resolution: {integrity: sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==}
2496 | dev: true
2497 |
2498 | /json-schema-traverse@1.0.0:
2499 | resolution: {integrity: sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==}
2500 | dev: true
2501 |
2502 | /json5@2.2.3:
2503 | resolution: {integrity: sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==}
2504 | engines: {node: '>=6'}
2505 | hasBin: true
2506 | dev: true
2507 |
2508 | /kind-of@6.0.3:
2509 | resolution: {integrity: sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==}
2510 | engines: {node: '>=0.10.0'}
2511 | dev: true
2512 |
2513 | /lilconfig@2.1.0:
2514 | resolution: {integrity: sha512-utWOt/GHzuUxnLKxB6dk81RoOeoNeHgbrXiuGk4yyF5qlRz+iIVWu56E2fqGHFrXz0QNUhLB/8nKqvRH66JKGQ==}
2515 | engines: {node: '>=10'}
2516 | dev: true
2517 |
2518 | /loader-runner@4.3.0:
2519 | resolution: {integrity: sha512-3R/1M+yS3j5ou80Me59j7F9IMs4PXs3VqRrm0TU3AbKPxlmpoY1TNscJV/oGJXo8qCatFGTfDbY6W6ipGOYXfg==}
2520 | engines: {node: '>=6.11.5'}
2521 | dev: true
2522 |
2523 | /locate-path@5.0.0:
2524 | resolution: {integrity: sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==}
2525 | engines: {node: '>=8'}
2526 | dependencies:
2527 | p-locate: 4.1.0
2528 | dev: true
2529 |
2530 | /lodash.debounce@4.0.8:
2531 | resolution: {integrity: sha512-FT1yDzDYEoYWhnSGnpE/4Kj1fLZkDFyqRb7fNt6FdYOSxlUWAtp42Eh6Wb0rGIv/m9Bgo7x4GhQbm5Ys4SG5ow==}
2532 | dev: true
2533 |
2534 | /lodash.memoize@4.1.2:
2535 | resolution: {integrity: sha512-t7j+NzmgnQzTAYXcsHYLgimltOV1MXHtlOWf6GjL9Kj8GK5FInw5JotxvbOs+IvV1/Dzo04/fCGfLVs7aXb4Ag==}
2536 | dev: true
2537 |
2538 | /lodash.uniq@4.5.0:
2539 | resolution: {integrity: sha512-xfBaXQd9ryd9dlSDvnvI0lvxfLJlYAZzXomUYzLKtUeOQvOP5piqAWuGtrhWeqaXK9hhoM/iyJc5AV+XfsX3HQ==}
2540 | dev: true
2541 |
2542 | /lru-cache@5.1.1:
2543 | resolution: {integrity: sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==}
2544 | dependencies:
2545 | yallist: 3.1.1
2546 | dev: true
2547 |
2548 | /lru-cache@6.0.0:
2549 | resolution: {integrity: sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==}
2550 | engines: {node: '>=10'}
2551 | dependencies:
2552 | yallist: 4.0.0
2553 | dev: true
2554 |
2555 | /lru-cache@9.1.2:
2556 | resolution: {integrity: sha512-ERJq3FOzJTxBbFjZ7iDs+NiK4VI9Wz+RdrrAB8dio1oV+YvdPzUEE4QNiT2VD51DkIbCYRUUzCRkssXCHqSnKQ==}
2557 | engines: {node: 14 || >=16.14}
2558 | dev: true
2559 |
2560 | /make-dir@3.1.0:
2561 | resolution: {integrity: sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==}
2562 | engines: {node: '>=8'}
2563 | dependencies:
2564 | semver: 6.3.0
2565 | dev: true
2566 |
2567 | /mdn-data@2.0.28:
2568 | resolution: {integrity: sha512-aylIc7Z9y4yzHYAJNuESG3hfhC+0Ibp/MAMiaOZgNv4pmEdFyfZhhhny4MNiAfWdBQ1RQ2mfDWmM1x8SvGyp8g==}
2569 | dev: true
2570 |
2571 | /mdn-data@2.0.30:
2572 | resolution: {integrity: sha512-GaqWWShW4kv/G9IEucWScBx9G1/vsFZZJUO+tD26M8J8z3Kw5RDQjaoZe03YAClgeS/SWPOcb4nkFBTEi5DUEA==}
2573 | dev: true
2574 |
2575 | /merge-stream@2.0.0:
2576 | resolution: {integrity: sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==}
2577 | dev: true
2578 |
2579 | /merge2@1.4.1:
2580 | resolution: {integrity: sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==}
2581 | engines: {node: '>= 8'}
2582 | dev: true
2583 |
2584 | /micromatch@4.0.5:
2585 | resolution: {integrity: sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==}
2586 | engines: {node: '>=8.6'}
2587 | dependencies:
2588 | braces: 3.0.2
2589 | picomatch: 2.3.1
2590 | dev: true
2591 |
2592 | /mime-db@1.52.0:
2593 | resolution: {integrity: sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==}
2594 | engines: {node: '>= 0.6'}
2595 | dev: true
2596 |
2597 | /mime-types@2.1.35:
2598 | resolution: {integrity: sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==}
2599 | engines: {node: '>= 0.6'}
2600 | dependencies:
2601 | mime-db: 1.52.0
2602 | dev: true
2603 |
2604 | /mini-css-extract-plugin@2.7.6(webpack@5.88.0):
2605 | resolution: {integrity: sha512-Qk7HcgaPkGG6eD77mLvZS1nmxlao3j+9PkrT9Uc7HAE1id3F41+DdBRYRYkbyfNRGzm8/YWtzhw7nVPmwhqTQw==}
2606 | engines: {node: '>= 12.13.0'}
2607 | peerDependencies:
2608 | webpack: ^5.0.0
2609 | dependencies:
2610 | schema-utils: 4.2.0
2611 | webpack: 5.88.0(webpack-cli@5.1.4)
2612 | dev: true
2613 |
2614 | /minimatch@9.0.2:
2615 | resolution: {integrity: sha512-PZOT9g5v2ojiTL7r1xF6plNHLtOeTpSlDI007As2NlA2aYBMfVom17yqa6QzhmDP8QOhn7LjHTg7DFCVSSa6yg==}
2616 | engines: {node: '>=16 || 14 >=14.17'}
2617 | dependencies:
2618 | brace-expansion: 2.0.1
2619 | dev: true
2620 |
2621 | /minipass@6.0.2:
2622 | resolution: {integrity: sha512-MzWSV5nYVT7mVyWCwn2o7JH13w2TBRmmSqSRCKzTw+lmft9X4z+3wjvs06Tzijo5z4W/kahUCDpRXTF+ZrmF/w==}
2623 | engines: {node: '>=16 || 14 >=14.17'}
2624 | dev: true
2625 |
2626 | /ms@2.1.2:
2627 | resolution: {integrity: sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==}
2628 | dev: true
2629 |
2630 | /nanoid@3.3.6:
2631 | resolution: {integrity: sha512-BGcqMMJuToF7i1rt+2PWSNVnWIkGCU78jBG3RxO/bZlnZPK2Cmi2QaffxGO/2RvWi9sL+FAiRiXMgsyxQ1DIDA==}
2632 | engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1}
2633 | hasBin: true
2634 | dev: true
2635 |
2636 | /neo-async@2.6.2:
2637 | resolution: {integrity: sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==}
2638 | dev: true
2639 |
2640 | /node-releases@2.0.12:
2641 | resolution: {integrity: sha512-QzsYKWhXTWx8h1kIvqfnC++o0pEmpRQA/aenALsL2F4pqNVr7YzcdMlDij5WBnwftRbJCNJL/O7zdKaxKPHqgQ==}
2642 | dev: true
2643 |
2644 | /normalize-path@3.0.0:
2645 | resolution: {integrity: sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==}
2646 | engines: {node: '>=0.10.0'}
2647 | dev: true
2648 |
2649 | /nth-check@2.1.1:
2650 | resolution: {integrity: sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w==}
2651 | dependencies:
2652 | boolbase: 1.0.0
2653 | dev: true
2654 |
2655 | /p-limit@2.3.0:
2656 | resolution: {integrity: sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==}
2657 | engines: {node: '>=6'}
2658 | dependencies:
2659 | p-try: 2.2.0
2660 | dev: true
2661 |
2662 | /p-locate@4.1.0:
2663 | resolution: {integrity: sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==}
2664 | engines: {node: '>=8'}
2665 | dependencies:
2666 | p-limit: 2.3.0
2667 | dev: true
2668 |
2669 | /p-try@2.2.0:
2670 | resolution: {integrity: sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==}
2671 | engines: {node: '>=6'}
2672 | dev: true
2673 |
2674 | /path-exists@4.0.0:
2675 | resolution: {integrity: sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==}
2676 | engines: {node: '>=8'}
2677 | dev: true
2678 |
2679 | /path-key@3.1.1:
2680 | resolution: {integrity: sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==}
2681 | engines: {node: '>=8'}
2682 | dev: true
2683 |
2684 | /path-parse@1.0.7:
2685 | resolution: {integrity: sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==}
2686 | dev: true
2687 |
2688 | /path-scurry@1.9.2:
2689 | resolution: {integrity: sha512-qSDLy2aGFPm8i4rsbHd4MNyTcrzHFsLQykrtbuGRknZZCBBVXSv2tSCDN2Cg6Rt/GFRw8GoW9y9Ecw5rIPG1sg==}
2690 | engines: {node: '>=16 || 14 >=14.17'}
2691 | dependencies:
2692 | lru-cache: 9.1.2
2693 | minipass: 6.0.2
2694 | dev: true
2695 |
2696 | /path-type@4.0.0:
2697 | resolution: {integrity: sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==}
2698 | engines: {node: '>=8'}
2699 | dev: true
2700 |
2701 | /picocolors@1.0.0:
2702 | resolution: {integrity: sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==}
2703 | dev: true
2704 |
2705 | /picomatch@2.3.1:
2706 | resolution: {integrity: sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==}
2707 | engines: {node: '>=8.6'}
2708 | dev: true
2709 |
2710 | /pkg-dir@4.2.0:
2711 | resolution: {integrity: sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==}
2712 | engines: {node: '>=8'}
2713 | dependencies:
2714 | find-up: 4.1.0
2715 | dev: true
2716 |
2717 | /postcss-calc@9.0.1(postcss@8.4.24):
2718 | resolution: {integrity: sha512-TipgjGyzP5QzEhsOZUaIkeO5mKeMFpebWzRogWG/ysonUlnHcq5aJe0jOjpfzUU8PeSaBQnrE8ehR0QA5vs8PQ==}
2719 | engines: {node: ^14 || ^16 || >=18.0}
2720 | peerDependencies:
2721 | postcss: ^8.2.2
2722 | dependencies:
2723 | postcss: 8.4.24
2724 | postcss-selector-parser: 6.0.13
2725 | postcss-value-parser: 4.2.0
2726 | dev: true
2727 |
2728 | /postcss-colormin@6.0.0(postcss@8.4.24):
2729 | resolution: {integrity: sha512-EuO+bAUmutWoZYgHn2T1dG1pPqHU6L4TjzPlu4t1wZGXQ/fxV16xg2EJmYi0z+6r+MGV1yvpx1BHkUaRrPa2bw==}
2730 | engines: {node: ^14 || ^16 || >=18.0}
2731 | peerDependencies:
2732 | postcss: ^8.2.15
2733 | dependencies:
2734 | browserslist: 4.21.9
2735 | caniuse-api: 3.0.0
2736 | colord: 2.9.3
2737 | postcss: 8.4.24
2738 | postcss-value-parser: 4.2.0
2739 | dev: true
2740 |
2741 | /postcss-convert-values@6.0.0(postcss@8.4.24):
2742 | resolution: {integrity: sha512-U5D8QhVwqT++ecmy8rnTb+RL9n/B806UVaS3m60lqle4YDFcpbS3ae5bTQIh3wOGUSDHSEtMYLs/38dNG7EYFw==}
2743 | engines: {node: ^14 || ^16 || >=18.0}
2744 | peerDependencies:
2745 | postcss: ^8.2.15
2746 | dependencies:
2747 | browserslist: 4.21.9
2748 | postcss: 8.4.24
2749 | postcss-value-parser: 4.2.0
2750 | dev: true
2751 |
2752 | /postcss-discard-comments@6.0.0(postcss@8.4.24):
2753 | resolution: {integrity: sha512-p2skSGqzPMZkEQvJsgnkBhCn8gI7NzRH2683EEjrIkoMiwRELx68yoUJ3q3DGSGuQ8Ug9Gsn+OuDr46yfO+eFw==}
2754 | engines: {node: ^14 || ^16 || >=18.0}
2755 | peerDependencies:
2756 | postcss: ^8.2.15
2757 | dependencies:
2758 | postcss: 8.4.24
2759 | dev: true
2760 |
2761 | /postcss-discard-duplicates@6.0.0(postcss@8.4.24):
2762 | resolution: {integrity: sha512-bU1SXIizMLtDW4oSsi5C/xHKbhLlhek/0/yCnoMQany9k3nPBq+Ctsv/9oMmyqbR96HYHxZcHyK2HR5P/mqoGA==}
2763 | engines: {node: ^14 || ^16 || >=18.0}
2764 | peerDependencies:
2765 | postcss: ^8.2.15
2766 | dependencies:
2767 | postcss: 8.4.24
2768 | dev: true
2769 |
2770 | /postcss-discard-empty@6.0.0(postcss@8.4.24):
2771 | resolution: {integrity: sha512-b+h1S1VT6dNhpcg+LpyiUrdnEZfICF0my7HAKgJixJLW7BnNmpRH34+uw/etf5AhOlIhIAuXApSzzDzMI9K/gQ==}
2772 | engines: {node: ^14 || ^16 || >=18.0}
2773 | peerDependencies:
2774 | postcss: ^8.2.15
2775 | dependencies:
2776 | postcss: 8.4.24
2777 | dev: true
2778 |
2779 | /postcss-discard-overridden@6.0.0(postcss@8.4.24):
2780 | resolution: {integrity: sha512-4VELwssYXDFigPYAZ8vL4yX4mUepF/oCBeeIT4OXsJPYOtvJumyz9WflmJWTfDwCUcpDR+z0zvCWBXgTx35SVw==}
2781 | engines: {node: ^14 || ^16 || >=18.0}
2782 | peerDependencies:
2783 | postcss: ^8.2.15
2784 | dependencies:
2785 | postcss: 8.4.24
2786 | dev: true
2787 |
2788 | /postcss-merge-longhand@6.0.0(postcss@8.4.24):
2789 | resolution: {integrity: sha512-4VSfd1lvGkLTLYcxFuISDtWUfFS4zXe0FpF149AyziftPFQIWxjvFSKhA4MIxMe4XM3yTDgQMbSNgzIVxChbIg==}
2790 | engines: {node: ^14 || ^16 || >=18.0}
2791 | peerDependencies:
2792 | postcss: ^8.2.15
2793 | dependencies:
2794 | postcss: 8.4.24
2795 | postcss-value-parser: 4.2.0
2796 | stylehacks: 6.0.0(postcss@8.4.24)
2797 | dev: true
2798 |
2799 | /postcss-merge-rules@6.0.1(postcss@8.4.24):
2800 | resolution: {integrity: sha512-a4tlmJIQo9SCjcfiCcCMg/ZCEe0XTkl/xK0XHBs955GWg9xDX3NwP9pwZ78QUOWB8/0XCjZeJn98Dae0zg6AAw==}
2801 | engines: {node: ^14 || ^16 || >=18.0}
2802 | peerDependencies:
2803 | postcss: ^8.2.15
2804 | dependencies:
2805 | browserslist: 4.21.9
2806 | caniuse-api: 3.0.0
2807 | cssnano-utils: 4.0.0(postcss@8.4.24)
2808 | postcss: 8.4.24
2809 | postcss-selector-parser: 6.0.13
2810 | dev: true
2811 |
2812 | /postcss-minify-font-values@6.0.0(postcss@8.4.24):
2813 | resolution: {integrity: sha512-zNRAVtyh5E8ndZEYXA4WS8ZYsAp798HiIQ1V2UF/C/munLp2r1UGHwf1+6JFu7hdEhJFN+W1WJQKBrtjhFgEnA==}
2814 | engines: {node: ^14 || ^16 || >=18.0}
2815 | peerDependencies:
2816 | postcss: ^8.2.15
2817 | dependencies:
2818 | postcss: 8.4.24
2819 | postcss-value-parser: 4.2.0
2820 | dev: true
2821 |
2822 | /postcss-minify-gradients@6.0.0(postcss@8.4.24):
2823 | resolution: {integrity: sha512-wO0F6YfVAR+K1xVxF53ueZJza3L+R3E6cp0VwuXJQejnNUH0DjcAFe3JEBeTY1dLwGa0NlDWueCA1VlEfiKgAA==}
2824 | engines: {node: ^14 || ^16 || >=18.0}
2825 | peerDependencies:
2826 | postcss: ^8.2.15
2827 | dependencies:
2828 | colord: 2.9.3
2829 | cssnano-utils: 4.0.0(postcss@8.4.24)
2830 | postcss: 8.4.24
2831 | postcss-value-parser: 4.2.0
2832 | dev: true
2833 |
2834 | /postcss-minify-params@6.0.0(postcss@8.4.24):
2835 | resolution: {integrity: sha512-Fz/wMQDveiS0n5JPcvsMeyNXOIMrwF88n7196puSuQSWSa+/Ofc1gDOSY2xi8+A4PqB5dlYCKk/WfqKqsI+ReQ==}
2836 | engines: {node: ^14 || ^16 || >=18.0}
2837 | peerDependencies:
2838 | postcss: ^8.2.15
2839 | dependencies:
2840 | browserslist: 4.21.9
2841 | cssnano-utils: 4.0.0(postcss@8.4.24)
2842 | postcss: 8.4.24
2843 | postcss-value-parser: 4.2.0
2844 | dev: true
2845 |
2846 | /postcss-minify-selectors@6.0.0(postcss@8.4.24):
2847 | resolution: {integrity: sha512-ec/q9JNCOC2CRDNnypipGfOhbYPuUkewGwLnbv6omue/PSASbHSU7s6uSQ0tcFRVv731oMIx8k0SP4ZX6be/0g==}
2848 | engines: {node: ^14 || ^16 || >=18.0}
2849 | peerDependencies:
2850 | postcss: ^8.2.15
2851 | dependencies:
2852 | postcss: 8.4.24
2853 | postcss-selector-parser: 6.0.13
2854 | dev: true
2855 |
2856 | /postcss-modules-extract-imports@3.0.0(postcss@8.4.24):
2857 | resolution: {integrity: sha512-bdHleFnP3kZ4NYDhuGlVK+CMrQ/pqUm8bx/oGL93K6gVwiclvX5x0n76fYMKuIGKzlABOy13zsvqjb0f92TEXw==}
2858 | engines: {node: ^10 || ^12 || >= 14}
2859 | peerDependencies:
2860 | postcss: ^8.1.0
2861 | dependencies:
2862 | postcss: 8.4.24
2863 | dev: true
2864 |
2865 | /postcss-modules-local-by-default@4.0.3(postcss@8.4.24):
2866 | resolution: {integrity: sha512-2/u2zraspoACtrbFRnTijMiQtb4GW4BvatjaG/bCjYQo8kLTdevCUlwuBHx2sCnSyrI3x3qj4ZK1j5LQBgzmwA==}
2867 | engines: {node: ^10 || ^12 || >= 14}
2868 | peerDependencies:
2869 | postcss: ^8.1.0
2870 | dependencies:
2871 | icss-utils: 5.1.0(postcss@8.4.24)
2872 | postcss: 8.4.24
2873 | postcss-selector-parser: 6.0.13
2874 | postcss-value-parser: 4.2.0
2875 | dev: true
2876 |
2877 | /postcss-modules-scope@3.0.0(postcss@8.4.24):
2878 | resolution: {integrity: sha512-hncihwFA2yPath8oZ15PZqvWGkWf+XUfQgUGamS4LqoP1anQLOsOJw0vr7J7IwLpoY9fatA2qiGUGmuZL0Iqlg==}
2879 | engines: {node: ^10 || ^12 || >= 14}
2880 | peerDependencies:
2881 | postcss: ^8.1.0
2882 | dependencies:
2883 | postcss: 8.4.24
2884 | postcss-selector-parser: 6.0.13
2885 | dev: true
2886 |
2887 | /postcss-modules-values@4.0.0(postcss@8.4.24):
2888 | resolution: {integrity: sha512-RDxHkAiEGI78gS2ofyvCsu7iycRv7oqw5xMWn9iMoR0N/7mf9D50ecQqUo5BZ9Zh2vH4bCUR/ktCqbB9m8vJjQ==}
2889 | engines: {node: ^10 || ^12 || >= 14}
2890 | peerDependencies:
2891 | postcss: ^8.1.0
2892 | dependencies:
2893 | icss-utils: 5.1.0(postcss@8.4.24)
2894 | postcss: 8.4.24
2895 | dev: true
2896 |
2897 | /postcss-normalize-charset@6.0.0(postcss@8.4.24):
2898 | resolution: {integrity: sha512-cqundwChbu8yO/gSWkuFDmKrCZ2vJzDAocheT2JTd0sFNA4HMGoKMfbk2B+J0OmO0t5GUkiAkSM5yF2rSLUjgQ==}
2899 | engines: {node: ^14 || ^16 || >=18.0}
2900 | peerDependencies:
2901 | postcss: ^8.2.15
2902 | dependencies:
2903 | postcss: 8.4.24
2904 | dev: true
2905 |
2906 | /postcss-normalize-display-values@6.0.0(postcss@8.4.24):
2907 | resolution: {integrity: sha512-Qyt5kMrvy7dJRO3OjF7zkotGfuYALETZE+4lk66sziWSPzlBEt7FrUshV6VLECkI4EN8Z863O6Nci4NXQGNzYw==}
2908 | engines: {node: ^14 || ^16 || >=18.0}
2909 | peerDependencies:
2910 | postcss: ^8.2.15
2911 | dependencies:
2912 | postcss: 8.4.24
2913 | postcss-value-parser: 4.2.0
2914 | dev: true
2915 |
2916 | /postcss-normalize-positions@6.0.0(postcss@8.4.24):
2917 | resolution: {integrity: sha512-mPCzhSV8+30FZyWhxi6UoVRYd3ZBJgTRly4hOkaSifo0H+pjDYcii/aVT4YE6QpOil15a5uiv6ftnY3rm0igPg==}
2918 | engines: {node: ^14 || ^16 || >=18.0}
2919 | peerDependencies:
2920 | postcss: ^8.2.15
2921 | dependencies:
2922 | postcss: 8.4.24
2923 | postcss-value-parser: 4.2.0
2924 | dev: true
2925 |
2926 | /postcss-normalize-repeat-style@6.0.0(postcss@8.4.24):
2927 | resolution: {integrity: sha512-50W5JWEBiOOAez2AKBh4kRFm2uhrT3O1Uwdxz7k24aKtbD83vqmcVG7zoIwo6xI2FZ/HDlbrCopXhLeTpQib1A==}
2928 | engines: {node: ^14 || ^16 || >=18.0}
2929 | peerDependencies:
2930 | postcss: ^8.2.15
2931 | dependencies:
2932 | postcss: 8.4.24
2933 | postcss-value-parser: 4.2.0
2934 | dev: true
2935 |
2936 | /postcss-normalize-string@6.0.0(postcss@8.4.24):
2937 | resolution: {integrity: sha512-KWkIB7TrPOiqb8ZZz6homet2KWKJwIlysF5ICPZrXAylGe2hzX/HSf4NTX2rRPJMAtlRsj/yfkrWGavFuB+c0w==}
2938 | engines: {node: ^14 || ^16 || >=18.0}
2939 | peerDependencies:
2940 | postcss: ^8.2.15
2941 | dependencies:
2942 | postcss: 8.4.24
2943 | postcss-value-parser: 4.2.0
2944 | dev: true
2945 |
2946 | /postcss-normalize-timing-functions@6.0.0(postcss@8.4.24):
2947 | resolution: {integrity: sha512-tpIXWciXBp5CiFs8sem90IWlw76FV4oi6QEWfQwyeREVwUy39VSeSqjAT7X0Qw650yAimYW5gkl2Gd871N5SQg==}
2948 | engines: {node: ^14 || ^16 || >=18.0}
2949 | peerDependencies:
2950 | postcss: ^8.2.15
2951 | dependencies:
2952 | postcss: 8.4.24
2953 | postcss-value-parser: 4.2.0
2954 | dev: true
2955 |
2956 | /postcss-normalize-unicode@6.0.0(postcss@8.4.24):
2957 | resolution: {integrity: sha512-ui5crYkb5ubEUDugDc786L/Me+DXp2dLg3fVJbqyAl0VPkAeALyAijF2zOsnZyaS1HyfPuMH0DwyY18VMFVNkg==}
2958 | engines: {node: ^14 || ^16 || >=18.0}
2959 | peerDependencies:
2960 | postcss: ^8.2.15
2961 | dependencies:
2962 | browserslist: 4.21.9
2963 | postcss: 8.4.24
2964 | postcss-value-parser: 4.2.0
2965 | dev: true
2966 |
2967 | /postcss-normalize-url@6.0.0(postcss@8.4.24):
2968 | resolution: {integrity: sha512-98mvh2QzIPbb02YDIrYvAg4OUzGH7s1ZgHlD3fIdTHLgPLRpv1ZTKJDnSAKr4Rt21ZQFzwhGMXxpXlfrUBKFHw==}
2969 | engines: {node: ^14 || ^16 || >=18.0}
2970 | peerDependencies:
2971 | postcss: ^8.2.15
2972 | dependencies:
2973 | postcss: 8.4.24
2974 | postcss-value-parser: 4.2.0
2975 | dev: true
2976 |
2977 | /postcss-normalize-whitespace@6.0.0(postcss@8.4.24):
2978 | resolution: {integrity: sha512-7cfE1AyLiK0+ZBG6FmLziJzqQCpTQY+8XjMhMAz8WSBSCsCNNUKujgIgjCAmDT3cJ+3zjTXFkoD15ZPsckArVw==}
2979 | engines: {node: ^14 || ^16 || >=18.0}
2980 | peerDependencies:
2981 | postcss: ^8.2.15
2982 | dependencies:
2983 | postcss: 8.4.24
2984 | postcss-value-parser: 4.2.0
2985 | dev: true
2986 |
2987 | /postcss-ordered-values@6.0.0(postcss@8.4.24):
2988 | resolution: {integrity: sha512-K36XzUDpvfG/nWkjs6d1hRBydeIxGpKS2+n+ywlKPzx1nMYDYpoGbcjhj5AwVYJK1qV2/SDoDEnHzlPD6s3nMg==}
2989 | engines: {node: ^14 || ^16 || >=18.0}
2990 | peerDependencies:
2991 | postcss: ^8.2.15
2992 | dependencies:
2993 | cssnano-utils: 4.0.0(postcss@8.4.24)
2994 | postcss: 8.4.24
2995 | postcss-value-parser: 4.2.0
2996 | dev: true
2997 |
2998 | /postcss-reduce-initial@6.0.0(postcss@8.4.24):
2999 | resolution: {integrity: sha512-s2UOnidpVuXu6JiiI5U+fV2jamAw5YNA9Fdi/GRK0zLDLCfXmSGqQtzpUPtfN66RtCbb9fFHoyZdQaxOB3WxVA==}
3000 | engines: {node: ^14 || ^16 || >=18.0}
3001 | peerDependencies:
3002 | postcss: ^8.2.15
3003 | dependencies:
3004 | browserslist: 4.21.9
3005 | caniuse-api: 3.0.0
3006 | postcss: 8.4.24
3007 | dev: true
3008 |
3009 | /postcss-reduce-transforms@6.0.0(postcss@8.4.24):
3010 | resolution: {integrity: sha512-FQ9f6xM1homnuy1wLe9lP1wujzxnwt1EwiigtWwuyf8FsqqXUDUp2Ulxf9A5yjlUOTdCJO6lonYjg1mgqIIi2w==}
3011 | engines: {node: ^14 || ^16 || >=18.0}
3012 | peerDependencies:
3013 | postcss: ^8.2.15
3014 | dependencies:
3015 | postcss: 8.4.24
3016 | postcss-value-parser: 4.2.0
3017 | dev: true
3018 |
3019 | /postcss-selector-parser@6.0.13:
3020 | resolution: {integrity: sha512-EaV1Gl4mUEV4ddhDnv/xtj7sxwrwxdetHdWUGnT4VJQf+4d05v6lHYZr8N573k5Z0BViss7BDhfWtKS3+sfAqQ==}
3021 | engines: {node: '>=4'}
3022 | dependencies:
3023 | cssesc: 3.0.0
3024 | util-deprecate: 1.0.2
3025 | dev: true
3026 |
3027 | /postcss-svgo@6.0.0(postcss@8.4.24):
3028 | resolution: {integrity: sha512-r9zvj/wGAoAIodn84dR/kFqwhINp5YsJkLoujybWG59grR/IHx+uQ2Zo+IcOwM0jskfYX3R0mo+1Kip1VSNcvw==}
3029 | engines: {node: ^14 || ^16 || >= 18}
3030 | peerDependencies:
3031 | postcss: ^8.2.15
3032 | dependencies:
3033 | postcss: 8.4.24
3034 | postcss-value-parser: 4.2.0
3035 | svgo: 3.0.2
3036 | dev: true
3037 |
3038 | /postcss-unique-selectors@6.0.0(postcss@8.4.24):
3039 | resolution: {integrity: sha512-EPQzpZNxOxP7777t73RQpZE5e9TrnCrkvp7AH7a0l89JmZiPnS82y216JowHXwpBCQitfyxrof9TK3rYbi7/Yw==}
3040 | engines: {node: ^14 || ^16 || >=18.0}
3041 | peerDependencies:
3042 | postcss: ^8.2.15
3043 | dependencies:
3044 | postcss: 8.4.24
3045 | postcss-selector-parser: 6.0.13
3046 | dev: true
3047 |
3048 | /postcss-value-parser@4.2.0:
3049 | resolution: {integrity: sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==}
3050 | dev: true
3051 |
3052 | /postcss@8.4.24:
3053 | resolution: {integrity: sha512-M0RzbcI0sO/XJNucsGjvWU9ERWxb/ytp1w6dKtxTKgixdtQDq4rmx/g8W1hnaheq9jgwL/oyEdH5Bc4WwJKMqg==}
3054 | engines: {node: ^10 || ^12 || >=14}
3055 | dependencies:
3056 | nanoid: 3.3.6
3057 | picocolors: 1.0.0
3058 | source-map-js: 1.0.2
3059 | dev: true
3060 |
3061 | /punycode@2.3.0:
3062 | resolution: {integrity: sha512-rRV+zQD8tVFys26lAGR9WUuS4iUAngJScM+ZRSKtvl5tKeZ2t5bvdNFdNHBW9FWR4guGHlgmsZ1G7BSm2wTbuA==}
3063 | engines: {node: '>=6'}
3064 | dev: true
3065 |
3066 | /queue-microtask@1.2.3:
3067 | resolution: {integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==}
3068 | dev: true
3069 |
3070 | /randombytes@2.1.0:
3071 | resolution: {integrity: sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==}
3072 | dependencies:
3073 | safe-buffer: 5.2.1
3074 | dev: true
3075 |
3076 | /readdirp@3.6.0:
3077 | resolution: {integrity: sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==}
3078 | engines: {node: '>=8.10.0'}
3079 | dependencies:
3080 | picomatch: 2.3.1
3081 | dev: true
3082 |
3083 | /rechoir@0.8.0:
3084 | resolution: {integrity: sha512-/vxpCXddiX8NGfGO/mTafwjq4aFa/71pvamip0++IQk3zG8cbCj0fifNPrjjF1XMXUne91jL9OoxmdykoEtifQ==}
3085 | engines: {node: '>= 10.13.0'}
3086 | dependencies:
3087 | resolve: 1.22.2
3088 | dev: true
3089 |
3090 | /regenerate-unicode-properties@10.1.0:
3091 | resolution: {integrity: sha512-d1VudCLoIGitcU/hEg2QqvyGZQmdC0Lf8BqdOMXGFSvJP4bNV1+XqbPQeHHLD51Jh4QJJ225dlIFvY4Ly6MXmQ==}
3092 | engines: {node: '>=4'}
3093 | dependencies:
3094 | regenerate: 1.4.2
3095 | dev: true
3096 |
3097 | /regenerate@1.4.2:
3098 | resolution: {integrity: sha512-zrceR/XhGYU/d/opr2EKO7aRHUeiBI8qjtfHqADTwZd6Szfy16la6kqD0MIUs5z5hx6AaKa+PixpPrR289+I0A==}
3099 | dev: true
3100 |
3101 | /regenerator-runtime@0.13.11:
3102 | resolution: {integrity: sha512-kY1AZVr2Ra+t+piVaJ4gxaFaReZVH40AKNo7UCX6W+dEwBo/2oZJzqfuN1qLq1oL45o56cPaTXELwrTh8Fpggg==}
3103 | dev: true
3104 |
3105 | /regenerator-transform@0.15.1:
3106 | resolution: {integrity: sha512-knzmNAcuyxV+gQCufkYcvOqX/qIIfHLv0u5x79kRxuGojfYVky1f15TzZEu2Avte8QGepvUNTnLskf8E6X6Vyg==}
3107 | dependencies:
3108 | '@babel/runtime': 7.22.5
3109 | dev: true
3110 |
3111 | /regexpu-core@5.3.2:
3112 | resolution: {integrity: sha512-RAM5FlZz+Lhmo7db9L298p2vHP5ZywrVXmVXpmAD9GuL5MPH6t9ROw1iA/wfHkQ76Qe7AaPF0nGuim96/IrQMQ==}
3113 | engines: {node: '>=4'}
3114 | dependencies:
3115 | '@babel/regjsgen': 0.8.0
3116 | regenerate: 1.4.2
3117 | regenerate-unicode-properties: 10.1.0
3118 | regjsparser: 0.9.1
3119 | unicode-match-property-ecmascript: 2.0.0
3120 | unicode-match-property-value-ecmascript: 2.1.0
3121 | dev: true
3122 |
3123 | /regjsparser@0.9.1:
3124 | resolution: {integrity: sha512-dQUtn90WanSNl+7mQKcXAgZxvUe7Z0SqXlgzv0za4LwiUhyzBC58yQO3liFoUgu8GiJVInAhJjkj1N0EtQ5nkQ==}
3125 | hasBin: true
3126 | dependencies:
3127 | jsesc: 0.5.0
3128 | dev: true
3129 |
3130 | /require-from-string@2.0.2:
3131 | resolution: {integrity: sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==}
3132 | engines: {node: '>=0.10.0'}
3133 | dev: true
3134 |
3135 | /resolve-cwd@3.0.0:
3136 | resolution: {integrity: sha512-OrZaX2Mb+rJCpH/6CpSqt9xFVpN++x01XnN2ie9g6P5/3xelLAkXWVADpdz1IHD/KFfEXyE6V0U01OQ3UO2rEg==}
3137 | engines: {node: '>=8'}
3138 | dependencies:
3139 | resolve-from: 5.0.0
3140 | dev: true
3141 |
3142 | /resolve-from@5.0.0:
3143 | resolution: {integrity: sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==}
3144 | engines: {node: '>=8'}
3145 | dev: true
3146 |
3147 | /resolve@1.22.2:
3148 | resolution: {integrity: sha512-Sb+mjNHOULsBv818T40qSPeRiuWLyaGMa5ewydRLFimneixmVy2zdivRl+AF6jaYPC8ERxGDmFSiqui6SfPd+g==}
3149 | hasBin: true
3150 | dependencies:
3151 | is-core-module: 2.12.1
3152 | path-parse: 1.0.7
3153 | supports-preserve-symlinks-flag: 1.0.0
3154 | dev: true
3155 |
3156 | /reusify@1.0.4:
3157 | resolution: {integrity: sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==}
3158 | engines: {iojs: '>=1.0.0', node: '>=0.10.0'}
3159 | dev: true
3160 |
3161 | /run-parallel@1.2.0:
3162 | resolution: {integrity: sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==}
3163 | dependencies:
3164 | queue-microtask: 1.2.3
3165 | dev: true
3166 |
3167 | /safe-buffer@5.2.1:
3168 | resolution: {integrity: sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==}
3169 | dev: true
3170 |
3171 | /sass-loader@13.3.2(sass@1.63.6)(webpack@5.88.0):
3172 | resolution: {integrity: sha512-CQbKl57kdEv+KDLquhC+gE3pXt74LEAzm+tzywcA0/aHZuub8wTErbjAoNI57rPUWRYRNC5WUnNl8eGJNbDdwg==}
3173 | engines: {node: '>= 14.15.0'}
3174 | peerDependencies:
3175 | fibers: '>= 3.1.0'
3176 | node-sass: ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0 || ^9.0.0
3177 | sass: ^1.3.0
3178 | sass-embedded: '*'
3179 | webpack: ^5.0.0
3180 | peerDependenciesMeta:
3181 | fibers:
3182 | optional: true
3183 | node-sass:
3184 | optional: true
3185 | sass:
3186 | optional: true
3187 | sass-embedded:
3188 | optional: true
3189 | dependencies:
3190 | neo-async: 2.6.2
3191 | sass: 1.63.6
3192 | webpack: 5.88.0(webpack-cli@5.1.4)
3193 | dev: true
3194 |
3195 | /sass@1.63.6:
3196 | resolution: {integrity: sha512-MJuxGMHzaOW7ipp+1KdELtqKbfAWbH7OLIdoSMnVe3EXPMTmxTmlaZDCTsgIpPCs3w99lLo9/zDKkOrJuT5byw==}
3197 | engines: {node: '>=14.0.0'}
3198 | hasBin: true
3199 | dependencies:
3200 | chokidar: 3.5.3
3201 | immutable: 4.3.0
3202 | source-map-js: 1.0.2
3203 | dev: true
3204 |
3205 | /schema-utils@3.3.0:
3206 | resolution: {integrity: sha512-pN/yOAvcC+5rQ5nERGuwrjLlYvLTbCibnZ1I7B1LaiAz9BRBlE9GMgE/eqV30P7aJQUf7Ddimy/RsbYO/GrVGg==}
3207 | engines: {node: '>= 10.13.0'}
3208 | dependencies:
3209 | '@types/json-schema': 7.0.12
3210 | ajv: 6.12.6
3211 | ajv-keywords: 3.5.2(ajv@6.12.6)
3212 | dev: true
3213 |
3214 | /schema-utils@4.2.0:
3215 | resolution: {integrity: sha512-L0jRsrPpjdckP3oPug3/VxNKt2trR8TcabrM6FOAAlvC/9Phcmm+cuAgTlxBqdBR1WJx7Naj9WHw+aOmheSVbw==}
3216 | engines: {node: '>= 12.13.0'}
3217 | dependencies:
3218 | '@types/json-schema': 7.0.12
3219 | ajv: 8.12.0
3220 | ajv-formats: 2.1.1(ajv@8.12.0)
3221 | ajv-keywords: 5.1.0(ajv@8.12.0)
3222 | dev: true
3223 |
3224 | /semver@6.3.0:
3225 | resolution: {integrity: sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==}
3226 | hasBin: true
3227 | dev: true
3228 |
3229 | /semver@7.5.3:
3230 | resolution: {integrity: sha512-QBlUtyVk/5EeHbi7X0fw6liDZc7BBmEaSYn01fMU1OUYbf6GPsbTtd8WmnqbI20SeycoHSeiybkE/q1Q+qlThQ==}
3231 | engines: {node: '>=10'}
3232 | hasBin: true
3233 | dependencies:
3234 | lru-cache: 6.0.0
3235 | dev: true
3236 |
3237 | /serialize-javascript@6.0.1:
3238 | resolution: {integrity: sha512-owoXEFjWRllis8/M1Q+Cw5k8ZH40e3zhp/ovX+Xr/vi1qj6QesbyXXViFbpNvWvPNAD62SutwEXavefrLJWj7w==}
3239 | dependencies:
3240 | randombytes: 2.1.0
3241 | dev: true
3242 |
3243 | /shallow-clone@3.0.1:
3244 | resolution: {integrity: sha512-/6KqX+GVUdqPuPPd2LxDDxzX6CAbjJehAAOKlNpqqUpAqPM6HeL8f+o3a+JsyGjn2lv0WY8UsTgUJjU9Ok55NA==}
3245 | engines: {node: '>=8'}
3246 | dependencies:
3247 | kind-of: 6.0.3
3248 | dev: true
3249 |
3250 | /shebang-command@2.0.0:
3251 | resolution: {integrity: sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==}
3252 | engines: {node: '>=8'}
3253 | dependencies:
3254 | shebang-regex: 3.0.0
3255 | dev: true
3256 |
3257 | /shebang-regex@3.0.0:
3258 | resolution: {integrity: sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==}
3259 | engines: {node: '>=8'}
3260 | dev: true
3261 |
3262 | /signal-exit@4.0.2:
3263 | resolution: {integrity: sha512-MY2/qGx4enyjprQnFaZsHib3Yadh3IXyV2C321GY0pjGfVBu4un0uDJkwgdxqO+Rdx8JMT8IfJIRwbYVz3Ob3Q==}
3264 | engines: {node: '>=14'}
3265 | dev: true
3266 |
3267 | /slash@4.0.0:
3268 | resolution: {integrity: sha512-3dOsAHXXUkQTpOYcoAxLIorMTp4gIQr5IW3iVb7A7lFIp0VHhnynm9izx6TssdrIcVIESAlVjtnO2K8bg+Coew==}
3269 | engines: {node: '>=12'}
3270 | dev: true
3271 |
3272 | /source-map-js@1.0.2:
3273 | resolution: {integrity: sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==}
3274 | engines: {node: '>=0.10.0'}
3275 | dev: true
3276 |
3277 | /source-map-support@0.5.21:
3278 | resolution: {integrity: sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==}
3279 | dependencies:
3280 | buffer-from: 1.1.2
3281 | source-map: 0.6.1
3282 | dev: true
3283 |
3284 | /source-map@0.6.1:
3285 | resolution: {integrity: sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==}
3286 | engines: {node: '>=0.10.0'}
3287 | dev: true
3288 |
3289 | /string-width@4.2.3:
3290 | resolution: {integrity: sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==}
3291 | engines: {node: '>=8'}
3292 | dependencies:
3293 | emoji-regex: 8.0.0
3294 | is-fullwidth-code-point: 3.0.0
3295 | strip-ansi: 6.0.1
3296 | dev: true
3297 |
3298 | /string-width@5.1.2:
3299 | resolution: {integrity: sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==}
3300 | engines: {node: '>=12'}
3301 | dependencies:
3302 | eastasianwidth: 0.2.0
3303 | emoji-regex: 9.2.2
3304 | strip-ansi: 7.1.0
3305 | dev: true
3306 |
3307 | /strip-ansi@6.0.1:
3308 | resolution: {integrity: sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==}
3309 | engines: {node: '>=8'}
3310 | dependencies:
3311 | ansi-regex: 5.0.1
3312 | dev: true
3313 |
3314 | /strip-ansi@7.1.0:
3315 | resolution: {integrity: sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==}
3316 | engines: {node: '>=12'}
3317 | dependencies:
3318 | ansi-regex: 6.0.1
3319 | dev: true
3320 |
3321 | /stylehacks@6.0.0(postcss@8.4.24):
3322 | resolution: {integrity: sha512-+UT589qhHPwz6mTlCLSt/vMNTJx8dopeJlZAlBMJPWA3ORqu6wmQY7FBXf+qD+FsqoBJODyqNxOUP3jdntFRdw==}
3323 | engines: {node: ^14 || ^16 || >=18.0}
3324 | peerDependencies:
3325 | postcss: ^8.2.15
3326 | dependencies:
3327 | browserslist: 4.21.9
3328 | postcss: 8.4.24
3329 | postcss-selector-parser: 6.0.13
3330 | dev: true
3331 |
3332 | /supports-color@5.5.0:
3333 | resolution: {integrity: sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==}
3334 | engines: {node: '>=4'}
3335 | dependencies:
3336 | has-flag: 3.0.0
3337 | dev: true
3338 |
3339 | /supports-color@7.2.0:
3340 | resolution: {integrity: sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==}
3341 | engines: {node: '>=8'}
3342 | dependencies:
3343 | has-flag: 4.0.0
3344 | dev: true
3345 |
3346 | /supports-color@8.1.1:
3347 | resolution: {integrity: sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==}
3348 | engines: {node: '>=10'}
3349 | dependencies:
3350 | has-flag: 4.0.0
3351 | dev: true
3352 |
3353 | /supports-preserve-symlinks-flag@1.0.0:
3354 | resolution: {integrity: sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==}
3355 | engines: {node: '>= 0.4'}
3356 | dev: true
3357 |
3358 | /svgo@3.0.2:
3359 | resolution: {integrity: sha512-Z706C1U2pb1+JGP48fbazf3KxHrWOsLme6Rv7imFBn5EnuanDW1GPaA/P1/dvObE670JDePC3mnj0k0B7P0jjQ==}
3360 | engines: {node: '>=14.0.0'}
3361 | hasBin: true
3362 | dependencies:
3363 | '@trysound/sax': 0.2.0
3364 | commander: 7.2.0
3365 | css-select: 5.1.0
3366 | css-tree: 2.3.1
3367 | csso: 5.0.5
3368 | picocolors: 1.0.0
3369 | dev: true
3370 |
3371 | /tapable@2.2.1:
3372 | resolution: {integrity: sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ==}
3373 | engines: {node: '>=6'}
3374 | dev: true
3375 |
3376 | /terser-webpack-plugin@5.3.9(webpack@5.88.0):
3377 | resolution: {integrity: sha512-ZuXsqE07EcggTWQjXUj+Aot/OMcD0bMKGgF63f7UxYcu5/AJF53aIpK1YoP5xR9l6s/Hy2b+t1AM0bLNPRuhwA==}
3378 | engines: {node: '>= 10.13.0'}
3379 | peerDependencies:
3380 | '@swc/core': '*'
3381 | esbuild: '*'
3382 | uglify-js: '*'
3383 | webpack: ^5.1.0
3384 | peerDependenciesMeta:
3385 | '@swc/core':
3386 | optional: true
3387 | esbuild:
3388 | optional: true
3389 | uglify-js:
3390 | optional: true
3391 | dependencies:
3392 | '@jridgewell/trace-mapping': 0.3.18
3393 | jest-worker: 27.5.1
3394 | schema-utils: 3.3.0
3395 | serialize-javascript: 6.0.1
3396 | terser: 5.18.1
3397 | webpack: 5.88.0(webpack-cli@5.1.4)
3398 | dev: true
3399 |
3400 | /terser@5.18.1:
3401 | resolution: {integrity: sha512-j1n0Ao919h/Ai5r43VAnfV/7azUYW43GPxK7qSATzrsERfW7+y2QW9Cp9ufnRF5CQUWbnLSo7UJokSWCqg4tsQ==}
3402 | engines: {node: '>=10'}
3403 | hasBin: true
3404 | dependencies:
3405 | '@jridgewell/source-map': 0.3.3
3406 | acorn: 8.9.0
3407 | commander: 2.20.3
3408 | source-map-support: 0.5.21
3409 | dev: true
3410 |
3411 | /to-fast-properties@2.0.0:
3412 | resolution: {integrity: sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==}
3413 | engines: {node: '>=4'}
3414 | dev: true
3415 |
3416 | /to-regex-range@5.0.1:
3417 | resolution: {integrity: sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==}
3418 | engines: {node: '>=8.0'}
3419 | dependencies:
3420 | is-number: 7.0.0
3421 | dev: true
3422 |
3423 | /unicode-canonical-property-names-ecmascript@2.0.0:
3424 | resolution: {integrity: sha512-yY5PpDlfVIU5+y/BSCxAJRBIS1Zc2dDG3Ujq+sR0U+JjUevW2JhocOF+soROYDSaAezOzOKuyyixhD6mBknSmQ==}
3425 | engines: {node: '>=4'}
3426 | dev: true
3427 |
3428 | /unicode-match-property-ecmascript@2.0.0:
3429 | resolution: {integrity: sha512-5kaZCrbp5mmbz5ulBkDkbY0SsPOjKqVS35VpL9ulMPfSl0J0Xsm+9Evphv9CoIZFwre7aJoa94AY6seMKGVN5Q==}
3430 | engines: {node: '>=4'}
3431 | dependencies:
3432 | unicode-canonical-property-names-ecmascript: 2.0.0
3433 | unicode-property-aliases-ecmascript: 2.1.0
3434 | dev: true
3435 |
3436 | /unicode-match-property-value-ecmascript@2.1.0:
3437 | resolution: {integrity: sha512-qxkjQt6qjg/mYscYMC0XKRn3Rh0wFPlfxB0xkt9CfyTvpX1Ra0+rAmdX2QyAobptSEvuy4RtpPRui6XkV+8wjA==}
3438 | engines: {node: '>=4'}
3439 | dev: true
3440 |
3441 | /unicode-property-aliases-ecmascript@2.1.0:
3442 | resolution: {integrity: sha512-6t3foTQI9qne+OZoVQB/8x8rk2k1eVy1gRXhV3oFQ5T6R1dqQ1xtin3XqSlx3+ATBkliTaR/hHyJBm+LVPNM8w==}
3443 | engines: {node: '>=4'}
3444 | dev: true
3445 |
3446 | /update-browserslist-db@1.0.11(browserslist@4.21.9):
3447 | resolution: {integrity: sha512-dCwEFf0/oT85M1fHBg4F0jtLwJrutGoHSQXCh7u4o2t1drG+c0a9Flnqww6XUKSfQMPpJBRjU8d4RXB09qtvaA==}
3448 | hasBin: true
3449 | peerDependencies:
3450 | browserslist: '>= 4.21.0'
3451 | dependencies:
3452 | browserslist: 4.21.9
3453 | escalade: 3.1.1
3454 | picocolors: 1.0.0
3455 | dev: true
3456 |
3457 | /uri-js@4.4.1:
3458 | resolution: {integrity: sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==}
3459 | dependencies:
3460 | punycode: 2.3.0
3461 | dev: true
3462 |
3463 | /util-deprecate@1.0.2:
3464 | resolution: {integrity: sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==}
3465 | dev: true
3466 |
3467 | /watchpack@2.4.0:
3468 | resolution: {integrity: sha512-Lcvm7MGST/4fup+ifyKi2hjyIAwcdI4HRgtvTpIUxBRhB+RFtUh8XtDOxUfctVCnhVi+QQj49i91OyvzkJl6cg==}
3469 | engines: {node: '>=10.13.0'}
3470 | dependencies:
3471 | glob-to-regexp: 0.4.1
3472 | graceful-fs: 4.2.11
3473 | dev: true
3474 |
3475 | /webpack-cli@5.1.4(webpack@5.88.0):
3476 | resolution: {integrity: sha512-pIDJHIEI9LR0yxHXQ+Qh95k2EvXpWzZ5l+d+jIo+RdSm9MiHfzazIxwwni/p7+x4eJZuvG1AJwgC4TNQ7NRgsg==}
3477 | engines: {node: '>=14.15.0'}
3478 | hasBin: true
3479 | peerDependencies:
3480 | '@webpack-cli/generators': '*'
3481 | webpack: 5.x.x
3482 | webpack-bundle-analyzer: '*'
3483 | webpack-dev-server: '*'
3484 | peerDependenciesMeta:
3485 | '@webpack-cli/generators':
3486 | optional: true
3487 | webpack-bundle-analyzer:
3488 | optional: true
3489 | webpack-dev-server:
3490 | optional: true
3491 | dependencies:
3492 | '@discoveryjs/json-ext': 0.5.7
3493 | '@webpack-cli/configtest': 2.1.1(webpack-cli@5.1.4)(webpack@5.88.0)
3494 | '@webpack-cli/info': 2.0.2(webpack-cli@5.1.4)(webpack@5.88.0)
3495 | '@webpack-cli/serve': 2.0.5(webpack-cli@5.1.4)(webpack@5.88.0)
3496 | colorette: 2.0.20
3497 | commander: 10.0.1
3498 | cross-spawn: 7.0.3
3499 | envinfo: 7.9.0
3500 | fastest-levenshtein: 1.0.16
3501 | import-local: 3.1.0
3502 | interpret: 3.1.1
3503 | rechoir: 0.8.0
3504 | webpack: 5.88.0(webpack-cli@5.1.4)
3505 | webpack-merge: 5.9.0
3506 | dev: true
3507 |
3508 | /webpack-merge@5.9.0:
3509 | resolution: {integrity: sha512-6NbRQw4+Sy50vYNTw7EyOn41OZItPiXB8GNv3INSoe3PSFaHJEz3SHTrYVaRm2LilNGnFUzh0FAwqPEmU/CwDg==}
3510 | engines: {node: '>=10.0.0'}
3511 | dependencies:
3512 | clone-deep: 4.0.1
3513 | wildcard: 2.0.1
3514 | dev: true
3515 |
3516 | /webpack-sources@3.2.3:
3517 | resolution: {integrity: sha512-/DyMEOrDgLKKIG0fmvtz+4dUX/3Ghozwgm6iPp8KRhvn+eQf9+Q7GWxVNMk3+uCPWfdXYC4ExGBckIXdFEfH1w==}
3518 | engines: {node: '>=10.13.0'}
3519 | dev: true
3520 |
3521 | /webpack@5.88.0(webpack-cli@5.1.4):
3522 | resolution: {integrity: sha512-O3jDhG5e44qIBSi/P6KpcCcH7HD+nYIHVBhdWFxcLOcIGN8zGo5nqF3BjyNCxIh4p1vFdNnreZv2h2KkoAw3lw==}
3523 | engines: {node: '>=10.13.0'}
3524 | hasBin: true
3525 | peerDependencies:
3526 | webpack-cli: '*'
3527 | peerDependenciesMeta:
3528 | webpack-cli:
3529 | optional: true
3530 | dependencies:
3531 | '@types/eslint-scope': 3.7.4
3532 | '@types/estree': 1.0.1
3533 | '@webassemblyjs/ast': 1.11.6
3534 | '@webassemblyjs/wasm-edit': 1.11.6
3535 | '@webassemblyjs/wasm-parser': 1.11.6
3536 | acorn: 8.9.0
3537 | acorn-import-assertions: 1.9.0(acorn@8.9.0)
3538 | browserslist: 4.21.9
3539 | chrome-trace-event: 1.0.3
3540 | enhanced-resolve: 5.15.0
3541 | es-module-lexer: 1.3.0
3542 | eslint-scope: 5.1.1
3543 | events: 3.3.0
3544 | glob-to-regexp: 0.4.1
3545 | graceful-fs: 4.2.11
3546 | json-parse-even-better-errors: 2.3.1
3547 | loader-runner: 4.3.0
3548 | mime-types: 2.1.35
3549 | neo-async: 2.6.2
3550 | schema-utils: 3.3.0
3551 | tapable: 2.2.1
3552 | terser-webpack-plugin: 5.3.9(webpack@5.88.0)
3553 | watchpack: 2.4.0
3554 | webpack-cli: 5.1.4(webpack@5.88.0)
3555 | webpack-sources: 3.2.3
3556 | transitivePeerDependencies:
3557 | - '@swc/core'
3558 | - esbuild
3559 | - uglify-js
3560 | dev: true
3561 |
3562 | /which@2.0.2:
3563 | resolution: {integrity: sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==}
3564 | engines: {node: '>= 8'}
3565 | hasBin: true
3566 | dependencies:
3567 | isexe: 2.0.0
3568 | dev: true
3569 |
3570 | /wildcard@2.0.1:
3571 | resolution: {integrity: sha512-CC1bOL87PIWSBhDcTrdeLo6eGT7mCFtrg0uIJtqJUFyK+eJnzl8A1niH56uu7KMa5XFrtiV+AQuHO3n7DsHnLQ==}
3572 | dev: true
3573 |
3574 | /wrap-ansi@7.0.0:
3575 | resolution: {integrity: sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==}
3576 | engines: {node: '>=10'}
3577 | dependencies:
3578 | ansi-styles: 4.3.0
3579 | string-width: 4.2.3
3580 | strip-ansi: 6.0.1
3581 | dev: true
3582 |
3583 | /wrap-ansi@8.1.0:
3584 | resolution: {integrity: sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==}
3585 | engines: {node: '>=12'}
3586 | dependencies:
3587 | ansi-styles: 6.2.1
3588 | string-width: 5.1.2
3589 | strip-ansi: 7.1.0
3590 | dev: true
3591 |
3592 | /yallist@3.1.1:
3593 | resolution: {integrity: sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==}
3594 | dev: true
3595 |
3596 | /yallist@4.0.0:
3597 | resolution: {integrity: sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==}
3598 | dev: true
3599 |
--------------------------------------------------------------------------------