diff --git a/.lagoon.yml b/.lagoon.yml index 8261b6b63..22179218c 100644 --- a/.lagoon.yml +++ b/.lagoon.yml @@ -36,6 +36,8 @@ environments: - example.cms.amazeelabs.dev - build: - example.build.amazeelabs.dev + - preview: + - example.preview.amazeelabs.dev cronjobs: - name: drush cron schedule: '*/15 * * * *' @@ -47,6 +49,8 @@ environments: - stage-example.cms.amazeelabs.dev - build: - stage-example.build.amazeelabs.dev + - preview: + - stage-example.preview.amazeelabs.dev cronjobs: - name: drush cron schedule: '*/15 * * * *' @@ -58,6 +62,8 @@ environments: - dev-example.cms.amazeelabs.dev - build: - dev-example.build.amazeelabs.dev + - preview: + - dev-example.preview.amazeelabs.dev cronjobs: - name: drush cron schedule: '*/15 * * * *' diff --git a/.lagoon/Dockerfile b/.lagoon/Dockerfile index f81105156..214c1fdbb 100644 --- a/.lagoon/Dockerfile +++ b/.lagoon/Dockerfile @@ -15,7 +15,7 @@ RUN npm install -g pnpm@8.6.12 && pnpm config set store-dir /tmp/cache/pnpm # Copy pnpm lockfile and install dependencies. COPY pnpm-lock.yaml .npmrc /app/ -#COPY patches /app/patches +# COPY patches /app/patches RUN --mount=type=cache,target=/tmp/cache pnpm fetch && \ # There is a bug in pnpm: `pnpm fetch` creates _some_ node_modules folders # with _some_ packages. This can lead to an incomplete package installation. @@ -47,6 +47,7 @@ RUN --mount=type=cache,target=/tmp/cache pnpm i && \ # Deploy apps. RUN --mount=type=cache,target=/tmp/cache pnpm deploy --filter "@custom/cms" /tmp/.deploy/cms --prod RUN --mount=type=cache,target=/tmp/cache pnpm deploy --filter "@custom/website" /tmp/.deploy/website --prod +RUN --mount=type=cache,target=/tmp/cache pnpm deploy --filter "@custom/preview" /tmp/.deploy/preview --prod # ==================================================================================================== # CLI IMAGE @@ -82,11 +83,22 @@ FROM uselagoon/nginx-drupal as nginx COPY --from=cli /app /app RUN cd /app/web && cp ../node_modules/@custom/ui/build/gutenberg.css . +RUN cd /app/web && cp ../node_modules/@custom/ui/build/iframe.css . COPY .lagoon/nginx-conf/redirects-map.conf /etc/nginx/redirects-map.conf WORKDIR /app ENV WEBROOT=web +# ==================================================================================================== +# PREVIEW IMAGE +# ==================================================================================================== + +FROM uselagoon/node-18:23.12.0 as preview + +RUN npm install -g pnpm@8.6.0 +COPY --from=builder /tmp/.deploy/preview /app +CMD pnpm start + # ==================================================================================================== # PUBLISHER IMAGE # ==================================================================================================== diff --git a/.vscode/settings.json b/.vscode/settings.json index 4929af1d2..df21dac26 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -31,5 +31,7 @@ "*.profile": "php" }, "graphql-config.load.filePath": ".graphqlrc.json", - "graphql-config.load.rootDir": "packages/schema" + "graphql-config.load.rootDir": "packages/schema", + "phpsab.executablePathCBF": "./apps/cms/vendor/bin/phpcbf", + "phpsab.executablePathCS": "./apps/cms/vendor/bin/phpcs" } diff --git a/apps/cms/.idea/.gitignore b/apps/cms/.idea/.gitignore new file mode 100644 index 000000000..13566b81b --- /dev/null +++ b/apps/cms/.idea/.gitignore @@ -0,0 +1,8 @@ +# Default ignored files +/shelf/ +/workspace.xml +# Editor-based HTTP Client requests +/httpRequests/ +# Datasource local storage ignored files +/dataSources/ +/dataSources.local.xml diff --git a/apps/cms/.idea/cms.iml b/apps/cms/.idea/cms.iml new file mode 100644 index 000000000..41df93773 --- /dev/null +++ b/apps/cms/.idea/cms.iml @@ -0,0 +1,273 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/apps/cms/.idea/codeStyles/Project.xml b/apps/cms/.idea/codeStyles/Project.xml new file mode 100644 index 000000000..a1863d2ed --- /dev/null +++ b/apps/cms/.idea/codeStyles/Project.xml @@ -0,0 +1,140 @@ + + + + + \ No newline at end of file diff --git a/apps/cms/.idea/codeStyles/codeStyleConfig.xml b/apps/cms/.idea/codeStyles/codeStyleConfig.xml new file mode 100644 index 000000000..79ee123c2 --- /dev/null +++ b/apps/cms/.idea/codeStyles/codeStyleConfig.xml @@ -0,0 +1,5 @@ + + + + \ No newline at end of file diff --git a/apps/cms/.idea/commandlinetools/Drush_4_12_24__2_49_PM.xml b/apps/cms/.idea/commandlinetools/Drush_4_12_24__2_49_PM.xml new file mode 100644 index 000000000..0f81233af --- /dev/null +++ b/apps/cms/.idea/commandlinetools/Drush_4_12_24__2_49_PM.xml @@ -0,0 +1,784 @@ + + + + _complete + Internal command to provide shell completion suggestions

No arguments
The shell type ("bash", "fish", "zsh")An array of input tokens (e.g. COMP_WORDS or argv)The index of the "input" array that the cursor is in (e.g. COMP_CWORD)The API version of the completion scriptdeprecatedDisplay help for the given command. When no command is given display help for the list commandDo not output any messageIncrease the verbosity of messages: 1 for normal output, 2 for more verbose output and 3 for debugDisplay this application versionForce (or disable --no-ansi) ANSI outputNegate the "--ansi" optionDo not ask any interactive questionAuto-accept the default for all user prompts. Equivalent to --no-interaction.Cancels at any confirmation prompt.The Drupal root for this site.A base URL for building links and selecting a multi-site. Defaults to https://default.Run in simulated mode (show what would have happened).Define a configuration item value.
Options:
shell
input
current
api-version
symfony
help
quiet
verbose
version
ansi
no-ansi
no-interaction
yes
no
root
uri
simulate
define

]]>
+
+ + browse + Display a link to a given path or open link in a browser.
Path to open. If omitted, the site front page will be opened.
Arguments:
path

Open the URL in the default browser. Use --no-browser to avoid opening a browser.The port that the web server is redirected to (e.g. when running within a Vagrant environment).Negate --browser option.Display help for the given command. When no command is given display help for the list commandDo not output any messageIncrease the verbosity of messages: 1 for normal output, 2 for more verbose output and 3 for debugDisplay this application versionForce (or disable --no-ansi) ANSI outputNegate the "--ansi" optionDo not ask any interactive questionAuto-accept the default for all user prompts. Equivalent to --no-interaction.Cancels at any confirmation prompt.The Drupal root for this site.A base URL for building links and selecting a multi-site. Defaults to https://default.Run in simulated mode (show what would have happened).Define a configuration item value.
Options:
browser
redirect-port
no-browser
help
quiet
verbose
version
ansi
no-ansi
no-interaction
yes
no
root
uri
simulate
define

]]>
+ path[=null] +
+ + completion + Dump the shell completion script
The shell type (e.g. "bash"), the value of the "$SHELL" env var will be used if this is not given
Arguments:
shell

Tail the completion debug logDisplay help for the given command. When no command is given display help for the list commandDo not output any messageIncrease the verbosity of messages: 1 for normal output, 2 for more verbose output and 3 for debugDisplay this application versionForce (or disable --no-ansi) ANSI outputNegate the "--ansi" optionDo not ask any interactive questionAuto-accept the default for all user prompts. Equivalent to --no-interaction.Cancels at any confirmation prompt.The Drupal root for this site.A base URL for building links and selecting a multi-site. Defaults to https://default.Run in simulated mode (show what would have happened).Define a configuration item value.
Options:
debug
help
quiet
verbose
version
ansi
no-ansi
no-interaction
yes
no
root
uri
simulate
define

]]>
+ shell[=null] +
+ + deploy + Run several commands after performing a code deployment.

No arguments
Display help for the given command. When no command is given display help for the list commandDo not output any messageIncrease the verbosity of messages: 1 for normal output, 2 for more verbose output and 3 for debugDisplay this application versionForce (or disable --no-ansi) ANSI outputNegate the "--ansi" optionDo not ask any interactive questionAuto-accept the default for all user prompts. Equivalent to --no-interaction.Cancels at any confirmation prompt.The Drupal root for this site.A base URL for building links and selecting a multi-site. Defaults to https://default.Run in simulated mode (show what would have happened).Define a configuration item value.
Options:
help
quiet
verbose
version
ansi
no-ansi
no-interaction
yes
no
root
uri
simulate
define

]]>
+
+ + help + Display usage details for a command.
A command name
Arguments:
command_name

Format the result data. Available formats: csv,json,list,null,php,print-r,string,tsv,var_dump,var_export,xml,yamlDisplay help for the given command. When no command is given display help for the list commandDo not output any messageIncrease the verbosity of messages: 1 for normal output, 2 for more verbose output and 3 for debugDisplay this application versionForce (or disable --no-ansi) ANSI outputNegate the "--ansi" optionDo not ask any interactive questionAuto-accept the default for all user prompts. Equivalent to --no-interaction.Cancels at any confirmation prompt.The Drupal root for this site.A base URL for building links and selecting a multi-site. Defaults to https://default.Run in simulated mode (show what would have happened).Define a configuration item value.
Options:
format
include-field-labels
table-style
help
quiet
verbose
version
ansi
no-ansi
no-interaction
yes
no
root
uri
simulate
define

]]>
+ command_name[=null] +
+ + list + List available commands.

No arguments
Show a simple table of command names and descriptions.Restrict command list to those commands defined in the specified file. Omit value to choose from a list of names.Notify upon command completion. If set to a number, commands that finish in fewer seconds won't notify.Shows the druplicon as glorious ASCII art.URL to your XHProf report site.Display help for the given command. When no command is given display help for the list commandDo not output any messageIncrease the verbosity of messages: 1 for normal output, 2 for more verbose output and 3 for debugDisplay this application versionForce (or disable --no-ansi) ANSI outputNegate the "--ansi" optionDo not ask any interactive questionAuto-accept the default for all user prompts. Equivalent to --no-interaction.Cancels at any confirmation prompt.The Drupal root for this site.A base URL for building links and selecting a multi-site. Defaults to https://default.Run in simulated mode (show what would have happened).Define a configuration item value.
Options:
format
raw
filter
notify
druplicon
xh-link
help
quiet
verbose
version
ansi
no-ansi
no-interaction
yes
no
root
uri
simulate
define

]]>
+
+ + runserver + Runs PHP's built-in http server for development.
IP address and port number to bind to and path to open in web browser. Format is addr:port/path. Only opens a browser if a path is specified.
Arguments:
uri

A default addr:port/path to use for any values not specified as an argument.Open the URL in the default browser. Use --no-browser to avoid opening a browser.Resolve hostnames/IPs using DNS/rDNS (if possible) to determine binding IPs and/or human friendly hostnames for URLs and browser.Negate --browser option.Display help for the given command. When no command is given display help for the list commandDo not output any messageIncrease the verbosity of messages: 1 for normal output, 2 for more verbose output and 3 for debugDisplay this application versionForce (or disable --no-ansi) ANSI outputNegate the "--ansi" optionDo not ask any interactive questionAuto-accept the default for all user prompts. Equivalent to --no-interaction.Cancels at any confirmation prompt.The Drupal root for this site.A base URL for building links and selecting a multi-site. Defaults to https://default.Run in simulated mode (show what would have happened).Define a configuration item value.
Options:
default-server
browser
dns
no-browser
help
quiet
verbose
version
ansi
no-ansi
no-interaction
yes
no
root
uri
simulate
define

]]>
+ uri[=null] +
+ + rs + Runs PHP's built-in http server for development.
IP address and port number to bind to and path to open in web browser. Format is addr:port/path. Only opens a browser if a path is specified.
Arguments:
uri

A default addr:port/path to use for any values not specified as an argument.Open the URL in the default browser. Use --no-browser to avoid opening a browser.Resolve hostnames/IPs using DNS/rDNS (if possible) to determine binding IPs and/or human friendly hostnames for URLs and browser.Negate --browser option.Display help for the given command. When no command is given display help for the list commandDo not output any messageIncrease the verbosity of messages: 1 for normal output, 2 for more verbose output and 3 for debugDisplay this application versionForce (or disable --no-ansi) ANSI outputNegate the "--ansi" optionDo not ask any interactive questionAuto-accept the default for all user prompts. Equivalent to --no-interaction.Cancels at any confirmation prompt.The Drupal root for this site.A base URL for building links and selecting a multi-site. Defaults to https://default.Run in simulated mode (show what would have happened).Define a configuration item value.
Options:
default-server
browser
dns
no-browser
help
quiet
verbose
version
ansi
no-ansi
no-interaction
yes
no
root
uri
simulate
define

]]>
+ uri[=null] +
+ + serve + Runs PHP's built-in http server for development.
IP address and port number to bind to and path to open in web browser. Format is addr:port/path. Only opens a browser if a path is specified.
Arguments:
uri

A default addr:port/path to use for any values not specified as an argument.Open the URL in the default browser. Use --no-browser to avoid opening a browser.Resolve hostnames/IPs using DNS/rDNS (if possible) to determine binding IPs and/or human friendly hostnames for URLs and browser.Negate --browser option.Display help for the given command. When no command is given display help for the list commandDo not output any messageIncrease the verbosity of messages: 1 for normal output, 2 for more verbose output and 3 for debugDisplay this application versionForce (or disable --no-ansi) ANSI outputNegate the "--ansi" optionDo not ask any interactive questionAuto-accept the default for all user prompts. Equivalent to --no-interaction.Cancels at any confirmation prompt.The Drupal root for this site.A base URL for building links and selecting a multi-site. Defaults to https://default.Run in simulated mode (show what would have happened).Define a configuration item value.
Options:
default-server
browser
dns
no-browser
help
quiet
verbose
version
ansi
no-ansi
no-interaction
yes
no
root
uri
simulate
define

]]>
+ uri[=null] +
+ + updatedb + Apply any database updates required (as with running update.php).

No arguments
Clear caches upon completion.Negate --cache-clear option.Display help for the given command. When no command is given display help for the list commandDo not output any messageIncrease the verbosity of messages: 1 for normal output, 2 for more verbose output and 3 for debugDisplay this application versionForce (or disable --no-ansi) ANSI outputNegate the "--ansi" optionDo not ask any interactive questionAuto-accept the default for all user prompts. Equivalent to --no-interaction.Cancels at any confirmation prompt.The Drupal root for this site.A base URL for building links and selecting a multi-site. Defaults to https://default.Run in simulated mode (show what would have happened).Define a configuration item value.
Options:
cache-clear
no-cache-clear
help
quiet
verbose
version
ansi
no-ansi
no-interaction
yes
no
root
uri
simulate
define

]]>
+
+ + updb + Apply any database updates required (as with running update.php).

No arguments
Clear caches upon completion.Negate --cache-clear option.Display help for the given command. When no command is given display help for the list commandDo not output any messageIncrease the verbosity of messages: 1 for normal output, 2 for more verbose output and 3 for debugDisplay this application versionForce (or disable --no-ansi) ANSI outputNegate the "--ansi" optionDo not ask any interactive questionAuto-accept the default for all user prompts. Equivalent to --no-interaction.Cancels at any confirmation prompt.The Drupal root for this site.A base URL for building links and selecting a multi-site. Defaults to https://default.Run in simulated mode (show what would have happened).Define a configuration item value.
Options:
cache-clear
no-cache-clear
help
quiet
verbose
version
ansi
no-ansi
no-interaction
yes
no
root
uri
simulate
define

]]>
+
+ + version + Show Drush version.

No arguments
Format the result data. Available formats: csv,json,list,null,php,print-r,string,table,tsv,var_dump,var_export,xml,yamlAvailable fields: Drush version (drush-version)Select just one field, and force format to *string*.Display help for the given command. When no command is given display help for the list commandDo not output any messageIncrease the verbosity of messages: 1 for normal output, 2 for more verbose output and 3 for debugDisplay this application versionForce (or disable --no-ansi) ANSI outputNegate the "--ansi" optionDo not ask any interactive questionAuto-accept the default for all user prompts. Equivalent to --no-interaction.Cancels at any confirmation prompt.The Drupal root for this site.A base URL for building links and selecting a multi-site. Defaults to https://default.Run in simulated mode (show what would have happened).Define a configuration item value.
Options:
format
fields
field
help
quiet
verbose
version
ansi
no-ansi
no-interaction
yes
no
root
uri
simulate
define

]]>
+
+ + archive:dump + Backup your code, files, and database into a single file.

No arguments
Archive codebase.Archive Drupal files.Archive database SQL dump.The full path and filename in which the archive should be stored. Any relative path will be calculated from Drupal root (usually web for drupal/recommended-project projects). If omitted, it will be saved to the configured temp directory.Overwrite destination file if exists.Describe the archive contents.Add tags to the archive manifest. Delimit several by commas.The generator name to store in the MANIFEST.yml file. The default is "Drush archive-dump".The generator version number to store in the MANIFEST file. The default is Drush version.Comma-separated list of paths (or regular expressions matching paths) to exclude from the code archive.Add custom arguments/options to the dumping of the database (e.g. mysqldump command).A key in the $skip_tables array. @see [Site aliases](../site-aliases.md)A key in the $structure_tables array. @see [Site aliases](../site-aliases.md)A key in the $tables array.A comma-separated list of tables to exclude completely.A comma-separated list of tables to include for structure, but not data.A comma-separated list of tables to transfer.The DB connection key if using multiple connections in settings.php.A Drupal 6 style database URL. For example mysql://root:pass@localhost:port/dbnameThe name of a target within the specified database connection.Show password on the CLI. Useful for debugging.Display help for the given command. When no command is given display help for the list commandDo not output any messageIncrease the verbosity of messages: 1 for normal output, 2 for more verbose output and 3 for debugDisplay this application versionForce (or disable --no-ansi) ANSI outputNegate the "--ansi" optionDo not ask any interactive questionAuto-accept the default for all user prompts. Equivalent to --no-interaction.Cancels at any confirmation prompt.The Drupal root for this site.A base URL for building links and selecting a multi-site. Defaults to https://default.Run in simulated mode (show what would have happened).Define a configuration item value.
Options:
code
files
db
destination
overwrite
description
tags
generator
generatorversion
exclude-code-paths
extra-dump
skip-tables-key
structure-tables-key
tables-key
skip-tables-list
structure-tables-list
tables-list
database
db-url
target
show-passwords
help
quiet
verbose
version
ansi
no-ansi
no-interaction
yes
no
root
uri
simulate
define

]]>
+
+ + ard + Backup your code, files, and database into a single file.

No arguments
Archive codebase.Archive Drupal files.Archive database SQL dump.The full path and filename in which the archive should be stored. Any relative path will be calculated from Drupal root (usually web for drupal/recommended-project projects). If omitted, it will be saved to the configured temp directory.Overwrite destination file if exists.Describe the archive contents.Add tags to the archive manifest. Delimit several by commas.The generator name to store in the MANIFEST.yml file. The default is "Drush archive-dump".The generator version number to store in the MANIFEST file. The default is Drush version.Comma-separated list of paths (or regular expressions matching paths) to exclude from the code archive.Add custom arguments/options to the dumping of the database (e.g. mysqldump command).A key in the $skip_tables array. @see [Site aliases](../site-aliases.md)A key in the $structure_tables array. @see [Site aliases](../site-aliases.md)A key in the $tables array.A comma-separated list of tables to exclude completely.A comma-separated list of tables to include for structure, but not data.A comma-separated list of tables to transfer.The DB connection key if using multiple connections in settings.php.A Drupal 6 style database URL. For example mysql://root:pass@localhost:port/dbnameThe name of a target within the specified database connection.Show password on the CLI. Useful for debugging.Display help for the given command. When no command is given display help for the list commandDo not output any messageIncrease the verbosity of messages: 1 for normal output, 2 for more verbose output and 3 for debugDisplay this application versionForce (or disable --no-ansi) ANSI outputNegate the "--ansi" optionDo not ask any interactive questionAuto-accept the default for all user prompts. Equivalent to --no-interaction.Cancels at any confirmation prompt.The Drupal root for this site.A base URL for building links and selecting a multi-site. Defaults to https://default.Run in simulated mode (show what would have happened).Define a configuration item value.
Options:
code
files
db
destination
overwrite
description
tags
generator
generatorversion
exclude-code-paths
extra-dump
skip-tables-key
structure-tables-key
tables-key
skip-tables-list
structure-tables-list
tables-list
database
db-url
target
show-passwords
help
quiet
verbose
version
ansi
no-ansi
no-interaction
yes
no
root
uri
simulate
define

]]>
+
+ + archive:restore + Restore (import) your code, files, and database.
The full path to a single archive file (*.tar.gz) or a directory with components to import. * May contain the following components generated by `archive:dump` command: * 1) code ("code" directory); * 2) database dump file ("database/database.sql" file); * 3) Drupal files ("files" directory).Destination site alias. Defaults to @self.
Arguments:
path
site

The base path to restore the code/files into.Overwrite files if exists when un-compressing an archive.Site subdirectory to put settings.local.php into.Sets up the database connection in settings.local.php file if either --db-url option or set of specific --db-* options are provided.Import code.Import code from specified directory. Has higher priority over "path" argument.Import Drupal files.Import Drupal files from specified directory. Has higher priority over "path" argument.Import Drupal files into specified directory relative to Composer root.Import database.Import database from specified dump file. Has higher priority over "path" argument.Destination database driver.Destination database port.Destination database host.Destination database name.Destination database user.Destination database user password.Destination database prefix.A key in the $skip_tables array. @see [Site aliases](../site-aliases.md)A key in the $structure_tables array. @see [Site aliases](../site-aliases.md)A key in the $tables array.A comma-separated list of tables to exclude completely.A comma-separated list of tables to include for structure, but not data.A comma-separated list of tables to transfer.The DB connection key if using multiple connections in settings.php.A Drupal 6 style database URL. For example mysql://root:pass@localhost:port/dbnameThe name of a target within the specified database connection.Show password on the CLI. Useful for debugging.Negate --setup-database-connection option.Display help for the given command. When no command is given display help for the list commandDo not output any messageIncrease the verbosity of messages: 1 for normal output, 2 for more verbose output and 3 for debugDisplay this application versionForce (or disable --no-ansi) ANSI outputNegate the "--ansi" optionDo not ask any interactive questionAuto-accept the default for all user prompts. Equivalent to --no-interaction.Cancels at any confirmation prompt.The Drupal root for this site.A base URL for building links and selecting a multi-site. Defaults to https://default.Run in simulated mode (show what would have happened).Define a configuration item value.
Options:
destination-path
overwrite
site-subdir
setup-database-connection
code
code-source-path
files
files-source-path
files-destination-relative-path
db
db-source-path
db-driver
db-port
db-host
db-name
db-user
db-password
db-prefix
skip-tables-key
structure-tables-key
tables-key
skip-tables-list
structure-tables-list
tables-list
database
db-url
target
show-passwords
no-setup-database-connection
help
quiet
verbose
version
ansi
no-ansi
no-interaction
yes
no
root
uri
simulate
define

]]>
+ path[=null] site[=null] +
+ + arr + Restore (import) your code, files, and database.
The full path to a single archive file (*.tar.gz) or a directory with components to import. * May contain the following components generated by `archive:dump` command: * 1) code ("code" directory); * 2) database dump file ("database/database.sql" file); * 3) Drupal files ("files" directory).Destination site alias. Defaults to @self.
Arguments:
path
site

The base path to restore the code/files into.Overwrite files if exists when un-compressing an archive.Site subdirectory to put settings.local.php into.Sets up the database connection in settings.local.php file if either --db-url option or set of specific --db-* options are provided.Import code.Import code from specified directory. Has higher priority over "path" argument.Import Drupal files.Import Drupal files from specified directory. Has higher priority over "path" argument.Import Drupal files into specified directory relative to Composer root.Import database.Import database from specified dump file. Has higher priority over "path" argument.Destination database driver.Destination database port.Destination database host.Destination database name.Destination database user.Destination database user password.Destination database prefix.A key in the $skip_tables array. @see [Site aliases](../site-aliases.md)A key in the $structure_tables array. @see [Site aliases](../site-aliases.md)A key in the $tables array.A comma-separated list of tables to exclude completely.A comma-separated list of tables to include for structure, but not data.A comma-separated list of tables to transfer.The DB connection key if using multiple connections in settings.php.A Drupal 6 style database URL. For example mysql://root:pass@localhost:port/dbnameThe name of a target within the specified database connection.Show password on the CLI. Useful for debugging.Negate --setup-database-connection option.Display help for the given command. When no command is given display help for the list commandDo not output any messageIncrease the verbosity of messages: 1 for normal output, 2 for more verbose output and 3 for debugDisplay this application versionForce (or disable --no-ansi) ANSI outputNegate the "--ansi" optionDo not ask any interactive questionAuto-accept the default for all user prompts. Equivalent to --no-interaction.Cancels at any confirmation prompt.The Drupal root for this site.A base URL for building links and selecting a multi-site. Defaults to https://default.Run in simulated mode (show what would have happened).Define a configuration item value.
Options:
destination-path
overwrite
site-subdir
setup-database-connection
code
code-source-path
files
files-source-path
files-destination-relative-path
db
db-source-path
db-driver
db-port
db-host
db-name
db-user
db-password
db-prefix
skip-tables-key
structure-tables-key
tables-key
skip-tables-list
structure-tables-list
tables-list
database
db-url
target
show-passwords
no-setup-database-connection
help
quiet
verbose
version
ansi
no-ansi
no-interaction
yes
no
root
uri
simulate
define

]]>
+ path[=null] site[=null] +
+ + batch:process + Process operations in the specified batch set.
The batch id that will be processed.
Arguments:
batch_id

Format the result data. Available formats: csv,json,list,null,php,print-r,tsv,var_dump,var_export,xml,yamlLimit output to only the listed elements. Name top-level elements by key, e.g. "--fields=name,date", or use dot notation to select a nested element, e.g. "--fields=a.b.c as example".Select just one field, and force format to *string*.Display help for the given command. When no command is given display help for the list commandDo not output any messageIncrease the verbosity of messages: 1 for normal output, 2 for more verbose output and 3 for debugDisplay this application versionForce (or disable --no-ansi) ANSI outputNegate the "--ansi" optionDo not ask any interactive questionAuto-accept the default for all user prompts. Equivalent to --no-interaction.Cancels at any confirmation prompt.The Drupal root for this site.A base URL for building links and selecting a multi-site. Defaults to https://default.Run in simulated mode (show what would have happened).Define a configuration item value.
Options:
format
fields
field
help
quiet
verbose
version
ansi
no-ansi
no-interaction
yes
no
root
uri
simulate
define

]]>
+ batch_id +
+ + batch-process + Process operations in the specified batch set.
The batch id that will be processed.
Arguments:
batch_id

Format the result data. Available formats: csv,json,list,null,php,print-r,tsv,var_dump,var_export,xml,yamlLimit output to only the listed elements. Name top-level elements by key, e.g. "--fields=name,date", or use dot notation to select a nested element, e.g. "--fields=a.b.c as example".Select just one field, and force format to *string*.Display help for the given command. When no command is given display help for the list commandDo not output any messageIncrease the verbosity of messages: 1 for normal output, 2 for more verbose output and 3 for debugDisplay this application versionForce (or disable --no-ansi) ANSI outputNegate the "--ansi" optionDo not ask any interactive questionAuto-accept the default for all user prompts. Equivalent to --no-interaction.Cancels at any confirmation prompt.The Drupal root for this site.A base URL for building links and selecting a multi-site. Defaults to https://default.Run in simulated mode (show what would have happened).Define a configuration item value.
Options:
format
fields
field
help
quiet
verbose
version
ansi
no-ansi
no-interaction
yes
no
root
uri
simulate
define

]]>
+ batch_id +
+ + cache:rebuild + Rebuild all caches.

No arguments
Set to 0 to suppress normal cache clearing; the caller should then clear if needed.Negate --cache-clear option.Display help for the given command. When no command is given display help for the list commandDo not output any messageIncrease the verbosity of messages: 1 for normal output, 2 for more verbose output and 3 for debugDisplay this application versionForce (or disable --no-ansi) ANSI outputNegate the "--ansi" optionDo not ask any interactive questionAuto-accept the default for all user prompts. Equivalent to --no-interaction.Cancels at any confirmation prompt.The Drupal root for this site.A base URL for building links and selecting a multi-site. Defaults to https://default.Run in simulated mode (show what would have happened).Define a configuration item value.
Options:
cache-clear
no-cache-clear
help
quiet
verbose
version
ansi
no-ansi
no-interaction
yes
no
root
uri
simulate
define

]]>
+
+ + cr + Rebuild all caches.

No arguments
Set to 0 to suppress normal cache clearing; the caller should then clear if needed.Negate --cache-clear option.Display help for the given command. When no command is given display help for the list commandDo not output any messageIncrease the verbosity of messages: 1 for normal output, 2 for more verbose output and 3 for debugDisplay this application versionForce (or disable --no-ansi) ANSI outputNegate the "--ansi" optionDo not ask any interactive questionAuto-accept the default for all user prompts. Equivalent to --no-interaction.Cancels at any confirmation prompt.The Drupal root for this site.A base URL for building links and selecting a multi-site. Defaults to https://default.Run in simulated mode (show what would have happened).Define a configuration item value.
Options:
cache-clear
no-cache-clear
help
quiet
verbose
version
ansi
no-ansi
no-interaction
yes
no
root
uri
simulate
define

]]>
+
+ + rebuild + Rebuild all caches.

No arguments
Set to 0 to suppress normal cache clearing; the caller should then clear if needed.Negate --cache-clear option.Display help for the given command. When no command is given display help for the list commandDo not output any messageIncrease the verbosity of messages: 1 for normal output, 2 for more verbose output and 3 for debugDisplay this application versionForce (or disable --no-ansi) ANSI outputNegate the "--ansi" optionDo not ask any interactive questionAuto-accept the default for all user prompts. Equivalent to --no-interaction.Cancels at any confirmation prompt.The Drupal root for this site.A base URL for building links and selecting a multi-site. Defaults to https://default.Run in simulated mode (show what would have happened).Define a configuration item value.
Options:
cache-clear
no-cache-clear
help
quiet
verbose
version
ansi
no-ansi
no-interaction
yes
no
root
uri
simulate
define

]]>
+
+ + cache-rebuild + Rebuild all caches.

No arguments
Set to 0 to suppress normal cache clearing; the caller should then clear if needed.Negate --cache-clear option.Display help for the given command. When no command is given display help for the list commandDo not output any messageIncrease the verbosity of messages: 1 for normal output, 2 for more verbose output and 3 for debugDisplay this application versionForce (or disable --no-ansi) ANSI outputNegate the "--ansi" optionDo not ask any interactive questionAuto-accept the default for all user prompts. Equivalent to --no-interaction.Cancels at any confirmation prompt.The Drupal root for this site.A base URL for building links and selecting a multi-site. Defaults to https://default.Run in simulated mode (show what would have happened).Define a configuration item value.
Options:
cache-clear
no-cache-clear
help
quiet
verbose
version
ansi
no-ansi
no-interaction
yes
no
root
uri
simulate
define

]]>
+
+ + config:pull + Export and transfer config from one environment to another.
A site-alias or the name of a subdirectory within /sites whose config you want to copy from.A site-alias or the name of a subdirectory within /sites whose config you want to replace.
Arguments:
source
destination

Validate that there are no git uncommitted changes before proceedingWhere to run the rsync command; defaults to the local site. Can also be source or destination.Format the result data. Available formats: csv,json,list,null,php,print-r,string,table,tsv,var_dump,var_export,xml,yamlAvailable fields: Path (path)Select just one field, and force format to *string*.Display help for the given command. When no command is given display help for the list commandDo not output any messageIncrease the verbosity of messages: 1 for normal output, 2 for more verbose output and 3 for debugDisplay this application versionForce (or disable --no-ansi) ANSI outputNegate the "--ansi" optionDo not ask any interactive questionAuto-accept the default for all user prompts. Equivalent to --no-interaction.Cancels at any confirmation prompt.The Drupal root for this site.A base URL for building links and selecting a multi-site. Defaults to https://default.Run in simulated mode (show what would have happened).Define a configuration item value.
Options:
safe
runner
format
fields
field
help
quiet
verbose
version
ansi
no-ansi
no-interaction
yes
no
root
uri
simulate
define

]]>
+ source destination +
+ + cpull + Export and transfer config from one environment to another.
A site-alias or the name of a subdirectory within /sites whose config you want to copy from.A site-alias or the name of a subdirectory within /sites whose config you want to replace.
Arguments:
source
destination

Validate that there are no git uncommitted changes before proceedingWhere to run the rsync command; defaults to the local site. Can also be source or destination.Format the result data. Available formats: csv,json,list,null,php,print-r,string,table,tsv,var_dump,var_export,xml,yamlAvailable fields: Path (path)Select just one field, and force format to *string*.Display help for the given command. When no command is given display help for the list commandDo not output any messageIncrease the verbosity of messages: 1 for normal output, 2 for more verbose output and 3 for debugDisplay this application versionForce (or disable --no-ansi) ANSI outputNegate the "--ansi" optionDo not ask any interactive questionAuto-accept the default for all user prompts. Equivalent to --no-interaction.Cancels at any confirmation prompt.The Drupal root for this site.A base URL for building links and selecting a multi-site. Defaults to https://default.Run in simulated mode (show what would have happened).Define a configuration item value.
Options:
safe
runner
format
fields
field
help
quiet
verbose
version
ansi
no-ansi
no-interaction
yes
no
root
uri
simulate
define

]]>
+ source destination +
+ + config-pull + Export and transfer config from one environment to another.
A site-alias or the name of a subdirectory within /sites whose config you want to copy from.A site-alias or the name of a subdirectory within /sites whose config you want to replace.
Arguments:
source
destination

Validate that there are no git uncommitted changes before proceedingWhere to run the rsync command; defaults to the local site. Can also be source or destination.Format the result data. Available formats: csv,json,list,null,php,print-r,string,table,tsv,var_dump,var_export,xml,yamlAvailable fields: Path (path)Select just one field, and force format to *string*.Display help for the given command. When no command is given display help for the list commandDo not output any messageIncrease the verbosity of messages: 1 for normal output, 2 for more verbose output and 3 for debugDisplay this application versionForce (or disable --no-ansi) ANSI outputNegate the "--ansi" optionDo not ask any interactive questionAuto-accept the default for all user prompts. Equivalent to --no-interaction.Cancels at any confirmation prompt.The Drupal root for this site.A base URL for building links and selecting a multi-site. Defaults to https://default.Run in simulated mode (show what would have happened).Define a configuration item value.
Options:
safe
runner
format
fields
field
help
quiet
verbose
version
ansi
no-ansi
no-interaction
yes
no
root
uri
simulate
define

]]>
+ source destination +
+ + core:edit + Edit drush.yml, site alias, and Drupal settings.php files.
A substring for filtering the list of files. Omit this argument to choose from loaded files.
Arguments:
filter

A string of bash which launches user's preferred text editor. Defaults to ${VISUAL-${EDITOR-vi}}.Launch editor in background process.Display help for the given command. When no command is given display help for the list commandDo not output any messageIncrease the verbosity of messages: 1 for normal output, 2 for more verbose output and 3 for debugDisplay this application versionForce (or disable --no-ansi) ANSI outputNegate the "--ansi" optionDo not ask any interactive questionAuto-accept the default for all user prompts. Equivalent to --no-interaction.Cancels at any confirmation prompt.The Drupal root for this site.A base URL for building links and selecting a multi-site. Defaults to https://default.Run in simulated mode (show what would have happened).Define a configuration item value.
Options:
editor
bg
help
quiet
verbose
version
ansi
no-ansi
no-interaction
yes
no
root
uri
simulate
define

]]>
+ filter[=null] +
+ + conf + Edit drush.yml, site alias, and Drupal settings.php files.
A substring for filtering the list of files. Omit this argument to choose from loaded files.
Arguments:
filter

A string of bash which launches user's preferred text editor. Defaults to ${VISUAL-${EDITOR-vi}}.Launch editor in background process.Display help for the given command. When no command is given display help for the list commandDo not output any messageIncrease the verbosity of messages: 1 for normal output, 2 for more verbose output and 3 for debugDisplay this application versionForce (or disable --no-ansi) ANSI outputNegate the "--ansi" optionDo not ask any interactive questionAuto-accept the default for all user prompts. Equivalent to --no-interaction.Cancels at any confirmation prompt.The Drupal root for this site.A base URL for building links and selecting a multi-site. Defaults to https://default.Run in simulated mode (show what would have happened).Define a configuration item value.
Options:
editor
bg
help
quiet
verbose
version
ansi
no-ansi
no-interaction
yes
no
root
uri
simulate
define

]]>
+ filter[=null] +
+ + config + Edit drush.yml, site alias, and Drupal settings.php files.
A substring for filtering the list of files. Omit this argument to choose from loaded files.
Arguments:
filter

A string of bash which launches user's preferred text editor. Defaults to ${VISUAL-${EDITOR-vi}}.Launch editor in background process.Display help for the given command. When no command is given display help for the list commandDo not output any messageIncrease the verbosity of messages: 1 for normal output, 2 for more verbose output and 3 for debugDisplay this application versionForce (or disable --no-ansi) ANSI outputNegate the "--ansi" optionDo not ask any interactive questionAuto-accept the default for all user prompts. Equivalent to --no-interaction.Cancels at any confirmation prompt.The Drupal root for this site.A base URL for building links and selecting a multi-site. Defaults to https://default.Run in simulated mode (show what would have happened).Define a configuration item value.
Options:
editor
bg
help
quiet
verbose
version
ansi
no-ansi
no-interaction
yes
no
root
uri
simulate
define

]]>
+ filter[=null] +
+ + core-edit + Edit drush.yml, site alias, and Drupal settings.php files.
A substring for filtering the list of files. Omit this argument to choose from loaded files.
Arguments:
filter

A string of bash which launches user's preferred text editor. Defaults to ${VISUAL-${EDITOR-vi}}.Launch editor in background process.Display help for the given command. When no command is given display help for the list commandDo not output any messageIncrease the verbosity of messages: 1 for normal output, 2 for more verbose output and 3 for debugDisplay this application versionForce (or disable --no-ansi) ANSI outputNegate the "--ansi" optionDo not ask any interactive questionAuto-accept the default for all user prompts. Equivalent to --no-interaction.Cancels at any confirmation prompt.The Drupal root for this site.A base URL for building links and selecting a multi-site. Defaults to https://default.Run in simulated mode (show what would have happened).Define a configuration item value.
Options:
editor
bg
help
quiet
verbose
version
ansi
no-ansi
no-interaction
yes
no
root
uri
simulate
define

]]>
+ filter[=null] +
+ + core:global-options + All global options.

No arguments
Format the result data. Available formats: csv,json,list,null,php,print-r,sections,string,table,tsv,var_dump,var_export,xml,yamlAvailable fields: Name (name), Description (description)Select just one field, and force format to *string*.Display help for the given command. When no command is given display help for the list commandDo not output any messageIncrease the verbosity of messages: 1 for normal output, 2 for more verbose output and 3 for debugDisplay this application versionForce (or disable --no-ansi) ANSI outputNegate the "--ansi" optionDo not ask any interactive questionAuto-accept the default for all user prompts. Equivalent to --no-interaction.Cancels at any confirmation prompt.The Drupal root for this site.A base URL for building links and selecting a multi-site. Defaults to https://default.Run in simulated mode (show what would have happened).Define a configuration item value.
Options:
format
fields
field
help
quiet
verbose
version
ansi
no-ansi
no-interaction
yes
no
root
uri
simulate
define

]]>
+
+ + core-global-options + All global options.

No arguments
Format the result data. Available formats: csv,json,list,null,php,print-r,sections,string,table,tsv,var_dump,var_export,xml,yamlAvailable fields: Name (name), Description (description)Select just one field, and force format to *string*.Display help for the given command. When no command is given display help for the list commandDo not output any messageIncrease the verbosity of messages: 1 for normal output, 2 for more verbose output and 3 for debugDisplay this application versionForce (or disable --no-ansi) ANSI outputNegate the "--ansi" optionDo not ask any interactive questionAuto-accept the default for all user prompts. Equivalent to --no-interaction.Cancels at any confirmation prompt.The Drupal root for this site.A base URL for building links and selecting a multi-site. Defaults to https://default.Run in simulated mode (show what would have happened).Define a configuration item value.
Options:
format
fields
field
help
quiet
verbose
version
ansi
no-ansi
no-interaction
yes
no
root
uri
simulate
define

]]>
+
+ + core:rsync + Rsync Drupal code or files to/from another server using ssh.
A site alias and optional path. See rsync documentation and [Site aliases](../site-aliases.md).A site alias and optional path. See rsync documentation and [Site aliases](../site-aliases.md).Additional parameters after the ssh statement.
Arguments:
source
target
extra

List of paths to exclude, seperated by : (Unix-based systems) or ; (Windows).List of paths to include, seperated by : (Unix-based systems) or ; (Windows).The unary flags to pass to rsync; --mode=rultz implies rsync -rultz. Default is -akz.A string appended to ssh command during rsync, sql-sync, etc.Display help for the given command. When no command is given display help for the list commandDo not output any messageIncrease the verbosity of messages: 1 for normal output, 2 for more verbose output and 3 for debugDisplay this application versionForce (or disable --no-ansi) ANSI outputNegate the "--ansi" optionDo not ask any interactive questionAuto-accept the default for all user prompts. Equivalent to --no-interaction.Cancels at any confirmation prompt.The Drupal root for this site.A base URL for building links and selecting a multi-site. Defaults to https://default.Run in simulated mode (show what would have happened).Define a configuration item value.
Options:
exclude-paths
include-paths
mode
ssh-options
help
quiet
verbose
version
ansi
no-ansi
no-interaction
yes
no
root
uri
simulate
define

]]>
+ source target extra[=null] +
+ + rsync + Rsync Drupal code or files to/from another server using ssh.
A site alias and optional path. See rsync documentation and [Site aliases](../site-aliases.md).A site alias and optional path. See rsync documentation and [Site aliases](../site-aliases.md).Additional parameters after the ssh statement.
Arguments:
source
target
extra

List of paths to exclude, seperated by : (Unix-based systems) or ; (Windows).List of paths to include, seperated by : (Unix-based systems) or ; (Windows).The unary flags to pass to rsync; --mode=rultz implies rsync -rultz. Default is -akz.A string appended to ssh command during rsync, sql-sync, etc.Display help for the given command. When no command is given display help for the list commandDo not output any messageIncrease the verbosity of messages: 1 for normal output, 2 for more verbose output and 3 for debugDisplay this application versionForce (or disable --no-ansi) ANSI outputNegate the "--ansi" optionDo not ask any interactive questionAuto-accept the default for all user prompts. Equivalent to --no-interaction.Cancels at any confirmation prompt.The Drupal root for this site.A base URL for building links and selecting a multi-site. Defaults to https://default.Run in simulated mode (show what would have happened).Define a configuration item value.
Options:
exclude-paths
include-paths
mode
ssh-options
help
quiet
verbose
version
ansi
no-ansi
no-interaction
yes
no
root
uri
simulate
define

]]>
+ source target extra[=null] +
+ + core-rsync + Rsync Drupal code or files to/from another server using ssh.
A site alias and optional path. See rsync documentation and [Site aliases](../site-aliases.md).A site alias and optional path. See rsync documentation and [Site aliases](../site-aliases.md).Additional parameters after the ssh statement.
Arguments:
source
target
extra

List of paths to exclude, seperated by : (Unix-based systems) or ; (Windows).List of paths to include, seperated by : (Unix-based systems) or ; (Windows).The unary flags to pass to rsync; --mode=rultz implies rsync -rultz. Default is -akz.A string appended to ssh command during rsync, sql-sync, etc.Display help for the given command. When no command is given display help for the list commandDo not output any messageIncrease the verbosity of messages: 1 for normal output, 2 for more verbose output and 3 for debugDisplay this application versionForce (or disable --no-ansi) ANSI outputNegate the "--ansi" optionDo not ask any interactive questionAuto-accept the default for all user prompts. Equivalent to --no-interaction.Cancels at any confirmation prompt.The Drupal root for this site.A base URL for building links and selecting a multi-site. Defaults to https://default.Run in simulated mode (show what would have happened).Define a configuration item value.
Options:
exclude-paths
include-paths
mode
ssh-options
help
quiet
verbose
version
ansi
no-ansi
no-interaction
yes
no
root
uri
simulate
define

]]>
+ source target extra[=null] +
+ + core:status + An overview of the environment - Drush and Drupal.

No arguments
A comma delimited list of projects. Their paths will be added to path-aliases section.Format the result data. Available formats: csv,json,list,null,php,print-r,string,table,tsv,var_dump,var_export,xml,yamlAvailable fields: Drupal version (drupal-version), Site URI (uri), DB driver (db-driver), DB hostname (db-hostname), DB port (db-port), DB username (db-username), DB password (db-password), DB name (db-name), Database (db-status), Drupal bootstrap (bootstrap), Default theme (theme), Admin theme (admin-theme), PHP binary (php-bin), PHP config (php-conf), PHP OS (php-os), PHP version (php-version), Drush script (drush-script), Drush version (drush-version), Drush temp (drush-temp), Drush configs (drush-conf), Drush aliases (drush-alias-files), Alias search paths (alias-searchpaths), Install profile (install-profile), Drupal root (root), Drupal Settings (drupal-settings-file), Site path (site-path), Site path (site), Themes path (themes), Modules path (modules), Files, Public (files), Files, Private (private), Files, Temp (temp), Drupal config (config-sync), Files, Public (files-path), Files, Temp (temp-path), Other paths (%paths)Select just one field, and force format to *string*.Display help for the given command. When no command is given display help for the list commandDo not output any messageIncrease the verbosity of messages: 1 for normal output, 2 for more verbose output and 3 for debugDisplay this application versionForce (or disable --no-ansi) ANSI outputNegate the "--ansi" optionDo not ask any interactive questionAuto-accept the default for all user prompts. Equivalent to --no-interaction.Cancels at any confirmation prompt.The Drupal root for this site.A base URL for building links and selecting a multi-site. Defaults to https://default.Run in simulated mode (show what would have happened).Define a configuration item value.
Options:
project
format
fields
field
help
quiet
verbose
version
ansi
no-ansi
no-interaction
yes
no
root
uri
simulate
define

]]>
+
+ + status + An overview of the environment - Drush and Drupal.

No arguments
A comma delimited list of projects. Their paths will be added to path-aliases section.Format the result data. Available formats: csv,json,list,null,php,print-r,string,table,tsv,var_dump,var_export,xml,yamlAvailable fields: Drupal version (drupal-version), Site URI (uri), DB driver (db-driver), DB hostname (db-hostname), DB port (db-port), DB username (db-username), DB password (db-password), DB name (db-name), Database (db-status), Drupal bootstrap (bootstrap), Default theme (theme), Admin theme (admin-theme), PHP binary (php-bin), PHP config (php-conf), PHP OS (php-os), PHP version (php-version), Drush script (drush-script), Drush version (drush-version), Drush temp (drush-temp), Drush configs (drush-conf), Drush aliases (drush-alias-files), Alias search paths (alias-searchpaths), Install profile (install-profile), Drupal root (root), Drupal Settings (drupal-settings-file), Site path (site-path), Site path (site), Themes path (themes), Modules path (modules), Files, Public (files), Files, Private (private), Files, Temp (temp), Drupal config (config-sync), Files, Public (files-path), Files, Temp (temp-path), Other paths (%paths)Select just one field, and force format to *string*.Display help for the given command. When no command is given display help for the list commandDo not output any messageIncrease the verbosity of messages: 1 for normal output, 2 for more verbose output and 3 for debugDisplay this application versionForce (or disable --no-ansi) ANSI outputNegate the "--ansi" optionDo not ask any interactive questionAuto-accept the default for all user prompts. Equivalent to --no-interaction.Cancels at any confirmation prompt.The Drupal root for this site.A base URL for building links and selecting a multi-site. Defaults to https://default.Run in simulated mode (show what would have happened).Define a configuration item value.
Options:
project
format
fields
field
help
quiet
verbose
version
ansi
no-ansi
no-interaction
yes
no
root
uri
simulate
define

]]>
+
+ + st + An overview of the environment - Drush and Drupal.

No arguments
A comma delimited list of projects. Their paths will be added to path-aliases section.Format the result data. Available formats: csv,json,list,null,php,print-r,string,table,tsv,var_dump,var_export,xml,yamlAvailable fields: Drupal version (drupal-version), Site URI (uri), DB driver (db-driver), DB hostname (db-hostname), DB port (db-port), DB username (db-username), DB password (db-password), DB name (db-name), Database (db-status), Drupal bootstrap (bootstrap), Default theme (theme), Admin theme (admin-theme), PHP binary (php-bin), PHP config (php-conf), PHP OS (php-os), PHP version (php-version), Drush script (drush-script), Drush version (drush-version), Drush temp (drush-temp), Drush configs (drush-conf), Drush aliases (drush-alias-files), Alias search paths (alias-searchpaths), Install profile (install-profile), Drupal root (root), Drupal Settings (drupal-settings-file), Site path (site-path), Site path (site), Themes path (themes), Modules path (modules), Files, Public (files), Files, Private (private), Files, Temp (temp), Drupal config (config-sync), Files, Public (files-path), Files, Temp (temp-path), Other paths (%paths)Select just one field, and force format to *string*.Display help for the given command. When no command is given display help for the list commandDo not output any messageIncrease the verbosity of messages: 1 for normal output, 2 for more verbose output and 3 for debugDisplay this application versionForce (or disable --no-ansi) ANSI outputNegate the "--ansi" optionDo not ask any interactive questionAuto-accept the default for all user prompts. Equivalent to --no-interaction.Cancels at any confirmation prompt.The Drupal root for this site.A base URL for building links and selecting a multi-site. Defaults to https://default.Run in simulated mode (show what would have happened).Define a configuration item value.
Options:
project
format
fields
field
help
quiet
verbose
version
ansi
no-ansi
no-interaction
yes
no
root
uri
simulate
define

]]>
+
+ + core-status + An overview of the environment - Drush and Drupal.

No arguments
A comma delimited list of projects. Their paths will be added to path-aliases section.Format the result data. Available formats: csv,json,list,null,php,print-r,string,table,tsv,var_dump,var_export,xml,yamlAvailable fields: Drupal version (drupal-version), Site URI (uri), DB driver (db-driver), DB hostname (db-hostname), DB port (db-port), DB username (db-username), DB password (db-password), DB name (db-name), Database (db-status), Drupal bootstrap (bootstrap), Default theme (theme), Admin theme (admin-theme), PHP binary (php-bin), PHP config (php-conf), PHP OS (php-os), PHP version (php-version), Drush script (drush-script), Drush version (drush-version), Drush temp (drush-temp), Drush configs (drush-conf), Drush aliases (drush-alias-files), Alias search paths (alias-searchpaths), Install profile (install-profile), Drupal root (root), Drupal Settings (drupal-settings-file), Site path (site-path), Site path (site), Themes path (themes), Modules path (modules), Files, Public (files), Files, Private (private), Files, Temp (temp), Drupal config (config-sync), Files, Public (files-path), Files, Temp (temp-path), Other paths (%paths)Select just one field, and force format to *string*.Display help for the given command. When no command is given display help for the list commandDo not output any messageIncrease the verbosity of messages: 1 for normal output, 2 for more verbose output and 3 for debugDisplay this application versionForce (or disable --no-ansi) ANSI outputNegate the "--ansi" optionDo not ask any interactive questionAuto-accept the default for all user prompts. Equivalent to --no-interaction.Cancels at any confirmation prompt.The Drupal root for this site.A base URL for building links and selecting a multi-site. Defaults to https://default.Run in simulated mode (show what would have happened).Define a configuration item value.
Options:
project
format
fields
field
help
quiet
verbose
version
ansi
no-ansi
no-interaction
yes
no
root
uri
simulate
define

]]>
+
+ + core:topic + Read detailed documentation on a given topic.
The name of the topic you wish to view. If omitted, list all topic descriptions (and names in parenthesis).
Arguments:
topic_name

Display help for the given command. When no command is given display help for the list commandDo not output any messageIncrease the verbosity of messages: 1 for normal output, 2 for more verbose output and 3 for debugDisplay this application versionForce (or disable --no-ansi) ANSI outputNegate the "--ansi" optionDo not ask any interactive questionAuto-accept the default for all user prompts. Equivalent to --no-interaction.Cancels at any confirmation prompt.The Drupal root for this site.A base URL for building links and selecting a multi-site. Defaults to https://default.Run in simulated mode (show what would have happened).Define a configuration item value.
Options:
help
quiet
verbose
version
ansi
no-ansi
no-interaction
yes
no
root
uri
simulate
define

]]>
+ topic_name +
+ + topic + Read detailed documentation on a given topic.
The name of the topic you wish to view. If omitted, list all topic descriptions (and names in parenthesis).
Arguments:
topic_name

Display help for the given command. When no command is given display help for the list commandDo not output any messageIncrease the verbosity of messages: 1 for normal output, 2 for more verbose output and 3 for debugDisplay this application versionForce (or disable --no-ansi) ANSI outputNegate the "--ansi" optionDo not ask any interactive questionAuto-accept the default for all user prompts. Equivalent to --no-interaction.Cancels at any confirmation prompt.The Drupal root for this site.A base URL for building links and selecting a multi-site. Defaults to https://default.Run in simulated mode (show what would have happened).Define a configuration item value.
Options:
help
quiet
verbose
version
ansi
no-ansi
no-interaction
yes
no
root
uri
simulate
define

]]>
+ topic_name +
+ + core-topic + Read detailed documentation on a given topic.
The name of the topic you wish to view. If omitted, list all topic descriptions (and names in parenthesis).
Arguments:
topic_name

Display help for the given command. When no command is given display help for the list commandDo not output any messageIncrease the verbosity of messages: 1 for normal output, 2 for more verbose output and 3 for debugDisplay this application versionForce (or disable --no-ansi) ANSI outputNegate the "--ansi" optionDo not ask any interactive questionAuto-accept the default for all user prompts. Equivalent to --no-interaction.Cancels at any confirmation prompt.The Drupal root for this site.A base URL for building links and selecting a multi-site. Defaults to https://default.Run in simulated mode (show what would have happened).Define a configuration item value.
Options:
help
quiet
verbose
version
ansi
no-ansi
no-interaction
yes
no
root
uri
simulate
define

]]>
+ topic_name +
+ + deploy:batch-process + Process operations in the specified batch set.
The batch id that will be processed.
Arguments:
batch_id

Format the result data. Available formats: csv,json,list,null,php,print-r,tsv,var_dump,var_export,xml,yamlLimit output to only the listed elements. Name top-level elements by key, e.g. "--fields=name,date", or use dot notation to select a nested element, e.g. "--fields=a.b.c as example".Select just one field, and force format to *string*.Display help for the given command. When no command is given display help for the list commandDo not output any messageIncrease the verbosity of messages: 1 for normal output, 2 for more verbose output and 3 for debugDisplay this application versionForce (or disable --no-ansi) ANSI outputNegate the "--ansi" optionDo not ask any interactive questionAuto-accept the default for all user prompts. Equivalent to --no-interaction.Cancels at any confirmation prompt.The Drupal root for this site.A base URL for building links and selecting a multi-site. Defaults to https://default.Run in simulated mode (show what would have happened).Define a configuration item value.
Options:
format
fields
field
help
quiet
verbose
version
ansi
no-ansi
no-interaction
yes
no
root
uri
simulate
define

]]>
+ batch_id +
+ + deploy:hook + Run pending deploy update hooks.

No arguments
Display help for the given command. When no command is given display help for the list commandDo not output any messageIncrease the verbosity of messages: 1 for normal output, 2 for more verbose output and 3 for debugDisplay this application versionForce (or disable --no-ansi) ANSI outputNegate the "--ansi" optionDo not ask any interactive questionAuto-accept the default for all user prompts. Equivalent to --no-interaction.Cancels at any confirmation prompt.The Drupal root for this site.A base URL for building links and selecting a multi-site. Defaults to https://default.Run in simulated mode (show what would have happened).Define a configuration item value.
Options:
help
quiet
verbose
version
ansi
no-ansi
no-interaction
yes
no
root
uri
simulate
define

]]>
+
+ + deploy:hook-status + Prints information about pending deploy update hooks.

No arguments
Format the result data. Available formats: csv,json,list,null,php,print-r,sections,string,table,tsv,var_dump,var_export,xml,yamlAvailable fields: Module (module), Hook (hook), Description (description)Select just one field, and force format to *string*.Display help for the given command. When no command is given display help for the list commandDo not output any messageIncrease the verbosity of messages: 1 for normal output, 2 for more verbose output and 3 for debugDisplay this application versionForce (or disable --no-ansi) ANSI outputNegate the "--ansi" optionDo not ask any interactive questionAuto-accept the default for all user prompts. Equivalent to --no-interaction.Cancels at any confirmation prompt.The Drupal root for this site.A base URL for building links and selecting a multi-site. Defaults to https://default.Run in simulated mode (show what would have happened).Define a configuration item value.
Options:
format
fields
field
help
quiet
verbose
version
ansi
no-ansi
no-interaction
yes
no
root
uri
simulate
define

]]>
+
+ + deploy:mark-complete + Mark all deploy hooks as having run.

No arguments
Display help for the given command. When no command is given display help for the list commandDo not output any messageIncrease the verbosity of messages: 1 for normal output, 2 for more verbose output and 3 for debugDisplay this application versionForce (or disable --no-ansi) ANSI outputNegate the "--ansi" optionDo not ask any interactive questionAuto-accept the default for all user prompts. Equivalent to --no-interaction.Cancels at any confirmation prompt.The Drupal root for this site.A base URL for building links and selecting a multi-site. Defaults to https://default.Run in simulated mode (show what would have happened).Define a configuration item value.
Options:
help
quiet
verbose
version
ansi
no-ansi
no-interaction
yes
no
root
uri
simulate
define

]]>
+
+ + docs:aliases + Creating site aliases for running Drush on remote sites.

No arguments
Display help for the given command. When no command is given display help for the list commandDo not output any messageIncrease the verbosity of messages: 1 for normal output, 2 for more verbose output and 3 for debugDisplay this application versionForce (or disable --no-ansi) ANSI outputNegate the "--ansi" optionDo not ask any interactive questionAuto-accept the default for all user prompts. Equivalent to --no-interaction.Cancels at any confirmation prompt.The Drupal root for this site.A base URL for building links and selecting a multi-site. Defaults to https://default.Run in simulated mode (show what would have happened).Define a configuration item value.
Options:
help
quiet
verbose
version
ansi
no-ansi
no-interaction
yes
no
root
uri
simulate
define

]]>
+
+ + docs-aliases + Creating site aliases for running Drush on remote sites.

No arguments
Display help for the given command. When no command is given display help for the list commandDo not output any messageIncrease the verbosity of messages: 1 for normal output, 2 for more verbose output and 3 for debugDisplay this application versionForce (or disable --no-ansi) ANSI outputNegate the "--ansi" optionDo not ask any interactive questionAuto-accept the default for all user prompts. Equivalent to --no-interaction.Cancels at any confirmation prompt.The Drupal root for this site.A base URL for building links and selecting a multi-site. Defaults to https://default.Run in simulated mode (show what would have happened).Define a configuration item value.
Options:
help
quiet
verbose
version
ansi
no-ansi
no-interaction
yes
no
root
uri
simulate
define

]]>
+
+ + docs:bisect + Drush docs for Git Bisect.

No arguments
Display help for the given command. When no command is given display help for the list commandDo not output any messageIncrease the verbosity of messages: 1 for normal output, 2 for more verbose output and 3 for debugDisplay this application versionForce (or disable --no-ansi) ANSI outputNegate the "--ansi" optionDo not ask any interactive questionAuto-accept the default for all user prompts. Equivalent to --no-interaction.Cancels at any confirmation prompt.The Drupal root for this site.A base URL for building links and selecting a multi-site. Defaults to https://default.Run in simulated mode (show what would have happened).Define a configuration item value.
Options:
help
quiet
verbose
version
ansi
no-ansi
no-interaction
yes
no
root
uri
simulate
define

]]>
+
+ + docs-bisect + Drush docs for Git Bisect.

No arguments
Display help for the given command. When no command is given display help for the list commandDo not output any messageIncrease the verbosity of messages: 1 for normal output, 2 for more verbose output and 3 for debugDisplay this application versionForce (or disable --no-ansi) ANSI outputNegate the "--ansi" optionDo not ask any interactive questionAuto-accept the default for all user prompts. Equivalent to --no-interaction.Cancels at any confirmation prompt.The Drupal root for this site.A base URL for building links and selecting a multi-site. Defaults to https://default.Run in simulated mode (show what would have happened).Define a configuration item value.
Options:
help
quiet
verbose
version
ansi
no-ansi
no-interaction
yes
no
root
uri
simulate
define

]]>
+
+ + docs:bootstrap + Bootstrap explanation: how Drush starts up and prepares the Drupal environment.

No arguments
Display help for the given command. When no command is given display help for the list commandDo not output any messageIncrease the verbosity of messages: 1 for normal output, 2 for more verbose output and 3 for debugDisplay this application versionForce (or disable --no-ansi) ANSI outputNegate the "--ansi" optionDo not ask any interactive questionAuto-accept the default for all user prompts. Equivalent to --no-interaction.Cancels at any confirmation prompt.The Drupal root for this site.A base URL for building links and selecting a multi-site. Defaults to https://default.Run in simulated mode (show what would have happened).Define a configuration item value.
Options:
help
quiet
verbose
version
ansi
no-ansi
no-interaction
yes
no
root
uri
simulate
define

]]>
+
+ + docs-bootstrap + Bootstrap explanation: how Drush starts up and prepares the Drupal environment.

No arguments
Display help for the given command. When no command is given display help for the list commandDo not output any messageIncrease the verbosity of messages: 1 for normal output, 2 for more verbose output and 3 for debugDisplay this application versionForce (or disable --no-ansi) ANSI outputNegate the "--ansi" optionDo not ask any interactive questionAuto-accept the default for all user prompts. Equivalent to --no-interaction.Cancels at any confirmation prompt.The Drupal root for this site.A base URL for building links and selecting a multi-site. Defaults to https://default.Run in simulated mode (show what would have happened).Define a configuration item value.
Options:
help
quiet
verbose
version
ansi
no-ansi
no-interaction
yes
no
root
uri
simulate
define

]]>
+
+ + docs:commands + Instructions on creating your own Drush commands.

No arguments
Display help for the given command. When no command is given display help for the list commandDo not output any messageIncrease the verbosity of messages: 1 for normal output, 2 for more verbose output and 3 for debugDisplay this application versionForce (or disable --no-ansi) ANSI outputNegate the "--ansi" optionDo not ask any interactive questionAuto-accept the default for all user prompts. Equivalent to --no-interaction.Cancels at any confirmation prompt.The Drupal root for this site.A base URL for building links and selecting a multi-site. Defaults to https://default.Run in simulated mode (show what would have happened).Define a configuration item value.
Options:
help
quiet
verbose
version
ansi
no-ansi
no-interaction
yes
no
root
uri
simulate
define

]]>
+
+ + docs-commands + Instructions on creating your own Drush commands.

No arguments
Display help for the given command. When no command is given display help for the list commandDo not output any messageIncrease the verbosity of messages: 1 for normal output, 2 for more verbose output and 3 for debugDisplay this application versionForce (or disable --no-ansi) ANSI outputNegate the "--ansi" optionDo not ask any interactive questionAuto-accept the default for all user prompts. Equivalent to --no-interaction.Cancels at any confirmation prompt.The Drupal root for this site.A base URL for building links and selecting a multi-site. Defaults to https://default.Run in simulated mode (show what would have happened).Define a configuration item value.
Options:
help
quiet
verbose
version
ansi
no-ansi
no-interaction
yes
no
root
uri
simulate
define

]]>
+
+ + docs:config:exporting + Drupal config export instructions, including customizing config by environment.

No arguments
Display help for the given command. When no command is given display help for the list commandDo not output any messageIncrease the verbosity of messages: 1 for normal output, 2 for more verbose output and 3 for debugDisplay this application versionForce (or disable --no-ansi) ANSI outputNegate the "--ansi" optionDo not ask any interactive questionAuto-accept the default for all user prompts. Equivalent to --no-interaction.Cancels at any confirmation prompt.The Drupal root for this site.A base URL for building links and selecting a multi-site. Defaults to https://default.Run in simulated mode (show what would have happened).Define a configuration item value.
Options:
help
quiet
verbose
version
ansi
no-ansi
no-interaction
yes
no
root
uri
simulate
define

]]>
+
+ + docs-config-exporting + Drupal config export instructions, including customizing config by environment.

No arguments
Display help for the given command. When no command is given display help for the list commandDo not output any messageIncrease the verbosity of messages: 1 for normal output, 2 for more verbose output and 3 for debugDisplay this application versionForce (or disable --no-ansi) ANSI outputNegate the "--ansi" optionDo not ask any interactive questionAuto-accept the default for all user prompts. Equivalent to --no-interaction.Cancels at any confirmation prompt.The Drupal root for this site.A base URL for building links and selecting a multi-site. Defaults to https://default.Run in simulated mode (show what would have happened).Define a configuration item value.
Options:
help
quiet
verbose
version
ansi
no-ansi
no-interaction
yes
no
root
uri
simulate
define

]]>
+
+ + docs:configuration + Drush configuration.

No arguments
Display help for the given command. When no command is given display help for the list commandDo not output any messageIncrease the verbosity of messages: 1 for normal output, 2 for more verbose output and 3 for debugDisplay this application versionForce (or disable --no-ansi) ANSI outputNegate the "--ansi" optionDo not ask any interactive questionAuto-accept the default for all user prompts. Equivalent to --no-interaction.Cancels at any confirmation prompt.The Drupal root for this site.A base URL for building links and selecting a multi-site. Defaults to https://default.Run in simulated mode (show what would have happened).Define a configuration item value.
Options:
help
quiet
verbose
version
ansi
no-ansi
no-interaction
yes
no
root
uri
simulate
define

]]>
+
+ + docs-configuration + Drush configuration.

No arguments
Display help for the given command. When no command is given display help for the list commandDo not output any messageIncrease the verbosity of messages: 1 for normal output, 2 for more verbose output and 3 for debugDisplay this application versionForce (or disable --no-ansi) ANSI outputNegate the "--ansi" optionDo not ask any interactive questionAuto-accept the default for all user prompts. Equivalent to --no-interaction.Cancels at any confirmation prompt.The Drupal root for this site.A base URL for building links and selecting a multi-site. Defaults to https://default.Run in simulated mode (show what would have happened).Define a configuration item value.
Options:
help
quiet
verbose
version
ansi
no-ansi
no-interaction
yes
no
root
uri
simulate
define

]]>
+
+ + docs:cron + Crontab instructions for running your Drupal cron tasks via `drush cron`.

No arguments
Display help for the given command. When no command is given display help for the list commandDo not output any messageIncrease the verbosity of messages: 1 for normal output, 2 for more verbose output and 3 for debugDisplay this application versionForce (or disable --no-ansi) ANSI outputNegate the "--ansi" optionDo not ask any interactive questionAuto-accept the default for all user prompts. Equivalent to --no-interaction.Cancels at any confirmation prompt.The Drupal root for this site.A base URL for building links and selecting a multi-site. Defaults to https://default.Run in simulated mode (show what would have happened).Define a configuration item value.
Options:
help
quiet
verbose
version
ansi
no-ansi
no-interaction
yes
no
root
uri
simulate
define

]]>
+
+ + docs-cron + Crontab instructions for running your Drupal cron tasks via `drush cron`.

No arguments
Display help for the given command. When no command is given display help for the list commandDo not output any messageIncrease the verbosity of messages: 1 for normal output, 2 for more verbose output and 3 for debugDisplay this application versionForce (or disable --no-ansi) ANSI outputNegate the "--ansi" optionDo not ask any interactive questionAuto-accept the default for all user prompts. Equivalent to --no-interaction.Cancels at any confirmation prompt.The Drupal root for this site.A base URL for building links and selecting a multi-site. Defaults to https://default.Run in simulated mode (show what would have happened).Define a configuration item value.
Options:
help
quiet
verbose
version
ansi
no-ansi
no-interaction
yes
no
root
uri
simulate
define

]]>
+
+ + docs:deploy + Deploy command for Drupal.

No arguments
Display help for the given command. When no command is given display help for the list commandDo not output any messageIncrease the verbosity of messages: 1 for normal output, 2 for more verbose output and 3 for debugDisplay this application versionForce (or disable --no-ansi) ANSI outputNegate the "--ansi" optionDo not ask any interactive questionAuto-accept the default for all user prompts. Equivalent to --no-interaction.Cancels at any confirmation prompt.The Drupal root for this site.A base URL for building links and selecting a multi-site. Defaults to https://default.Run in simulated mode (show what would have happened).Define a configuration item value.
Options:
help
quiet
verbose
version
ansi
no-ansi
no-interaction
yes
no
root
uri
simulate
define

]]>
+
+ + docs-deploy + Deploy command for Drupal.

No arguments
Display help for the given command. When no command is given display help for the list commandDo not output any messageIncrease the verbosity of messages: 1 for normal output, 2 for more verbose output and 3 for debugDisplay this application versionForce (or disable --no-ansi) ANSI outputNegate the "--ansi" optionDo not ask any interactive questionAuto-accept the default for all user prompts. Equivalent to --no-interaction.Cancels at any confirmation prompt.The Drupal root for this site.A base URL for building links and selecting a multi-site. Defaults to https://default.Run in simulated mode (show what would have happened).Define a configuration item value.
Options:
help
quiet
verbose
version
ansi
no-ansi
no-interaction
yes
no
root
uri
simulate
define

]]>
+
+ + docs:example-sync-via-http + Extend sql-sync to allow transfer of the sql dump file via http.

No arguments
Display help for the given command. When no command is given display help for the list commandDo not output any messageIncrease the verbosity of messages: 1 for normal output, 2 for more verbose output and 3 for debugDisplay this application versionForce (or disable --no-ansi) ANSI outputNegate the "--ansi" optionDo not ask any interactive questionAuto-accept the default for all user prompts. Equivalent to --no-interaction.Cancels at any confirmation prompt.The Drupal root for this site.A base URL for building links and selecting a multi-site. Defaults to https://default.Run in simulated mode (show what would have happened).Define a configuration item value.
Options:
help
quiet
verbose
version
ansi
no-ansi
no-interaction
yes
no
root
uri
simulate
define

]]>
+
+ + docs-example-sync-via-http + Extend sql-sync to allow transfer of the sql dump file via http.

No arguments
Display help for the given command. When no command is given display help for the list commandDo not output any messageIncrease the verbosity of messages: 1 for normal output, 2 for more verbose output and 3 for debugDisplay this application versionForce (or disable --no-ansi) ANSI outputNegate the "--ansi" optionDo not ask any interactive questionAuto-accept the default for all user prompts. Equivalent to --no-interaction.Cancels at any confirmation prompt.The Drupal root for this site.A base URL for building links and selecting a multi-site. Defaults to https://default.Run in simulated mode (show what would have happened).Define a configuration item value.
Options:
help
quiet
verbose
version
ansi
no-ansi
no-interaction
yes
no
root
uri
simulate
define

]]>
+
+ + docs:examplecommand + Example Drush command file.

No arguments
Display help for the given command. When no command is given display help for the list commandDo not output any messageIncrease the verbosity of messages: 1 for normal output, 2 for more verbose output and 3 for debugDisplay this application versionForce (or disable --no-ansi) ANSI outputNegate the "--ansi" optionDo not ask any interactive questionAuto-accept the default for all user prompts. Equivalent to --no-interaction.Cancels at any confirmation prompt.The Drupal root for this site.A base URL for building links and selecting a multi-site. Defaults to https://default.Run in simulated mode (show what would have happened).Define a configuration item value.
Options:
help
quiet
verbose
version
ansi
no-ansi
no-interaction
yes
no
root
uri
simulate
define

]]>
+
+ + docs-examplecommand + Example Drush command file.

No arguments
Display help for the given command. When no command is given display help for the list commandDo not output any messageIncrease the verbosity of messages: 1 for normal output, 2 for more verbose output and 3 for debugDisplay this application versionForce (or disable --no-ansi) ANSI outputNegate the "--ansi" optionDo not ask any interactive questionAuto-accept the default for all user prompts. Equivalent to --no-interaction.Cancels at any confirmation prompt.The Drupal root for this site.A base URL for building links and selecting a multi-site. Defaults to https://default.Run in simulated mode (show what would have happened).Define a configuration item value.
Options:
help
quiet
verbose
version
ansi
no-ansi
no-interaction
yes
no
root
uri
simulate
define

]]>
+
+ + docs:generators + Instructions on creating your own Drush Generators.

No arguments
Display help for the given command. When no command is given display help for the list commandDo not output any messageIncrease the verbosity of messages: 1 for normal output, 2 for more verbose output and 3 for debugDisplay this application versionForce (or disable --no-ansi) ANSI outputNegate the "--ansi" optionDo not ask any interactive questionAuto-accept the default for all user prompts. Equivalent to --no-interaction.Cancels at any confirmation prompt.The Drupal root for this site.A base URL for building links and selecting a multi-site. Defaults to https://default.Run in simulated mode (show what would have happened).Define a configuration item value.
Options:
help
quiet
verbose
version
ansi
no-ansi
no-interaction
yes
no
root
uri
simulate
define

]]>
+
+ + docs-generators + Instructions on creating your own Drush Generators.

No arguments
Display help for the given command. When no command is given display help for the list commandDo not output any messageIncrease the verbosity of messages: 1 for normal output, 2 for more verbose output and 3 for debugDisplay this application versionForce (or disable --no-ansi) ANSI outputNegate the "--ansi" optionDo not ask any interactive questionAuto-accept the default for all user prompts. Equivalent to --no-interaction.Cancels at any confirmation prompt.The Drupal root for this site.A base URL for building links and selecting a multi-site. Defaults to https://default.Run in simulated mode (show what would have happened).Define a configuration item value.
Options:
help
quiet
verbose
version
ansi
no-ansi
no-interaction
yes
no
root
uri
simulate
define

]]>
+
+ + docs:hooks + Drush hooks.

No arguments
Display help for the given command. When no command is given display help for the list commandDo not output any messageIncrease the verbosity of messages: 1 for normal output, 2 for more verbose output and 3 for debugDisplay this application versionForce (or disable --no-ansi) ANSI outputNegate the "--ansi" optionDo not ask any interactive questionAuto-accept the default for all user prompts. Equivalent to --no-interaction.Cancels at any confirmation prompt.The Drupal root for this site.A base URL for building links and selecting a multi-site. Defaults to https://default.Run in simulated mode (show what would have happened).Define a configuration item value.
Options:
help
quiet
verbose
version
ansi
no-ansi
no-interaction
yes
no
root
uri
simulate
define

]]>
+
+ + docs-hooks + Drush hooks.

No arguments
Display help for the given command. When no command is given display help for the list commandDo not output any messageIncrease the verbosity of messages: 1 for normal output, 2 for more verbose output and 3 for debugDisplay this application versionForce (or disable --no-ansi) ANSI outputNegate the "--ansi" optionDo not ask any interactive questionAuto-accept the default for all user prompts. Equivalent to --no-interaction.Cancels at any confirmation prompt.The Drupal root for this site.A base URL for building links and selecting a multi-site. Defaults to https://default.Run in simulated mode (show what would have happened).Define a configuration item value.
Options:
help
quiet
verbose
version
ansi
no-ansi
no-interaction
yes
no
root
uri
simulate
define

]]>
+
+ + docs:migrate + Defining and running migrations.

No arguments
Display help for the given command. When no command is given display help for the list commandDo not output any messageIncrease the verbosity of messages: 1 for normal output, 2 for more verbose output and 3 for debugDisplay this application versionForce (or disable --no-ansi) ANSI outputNegate the "--ansi" optionDo not ask any interactive questionAuto-accept the default for all user prompts. Equivalent to --no-interaction.Cancels at any confirmation prompt.The Drupal root for this site.A base URL for building links and selecting a multi-site. Defaults to https://default.Run in simulated mode (show what would have happened).Define a configuration item value.
Options:
help
quiet
verbose
version
ansi
no-ansi
no-interaction
yes
no
root
uri
simulate
define

]]>
+
+ + docs:output-formats-filters + Output formatters and filters: control the command output

No arguments
Display help for the given command. When no command is given display help for the list commandDo not output any messageIncrease the verbosity of messages: 1 for normal output, 2 for more verbose output and 3 for debugDisplay this application versionForce (or disable --no-ansi) ANSI outputNegate the "--ansi" optionDo not ask any interactive questionAuto-accept the default for all user prompts. Equivalent to --no-interaction.Cancels at any confirmation prompt.The Drupal root for this site.A base URL for building links and selecting a multi-site. Defaults to https://default.Run in simulated mode (show what would have happened).Define a configuration item value.
Options:
help
quiet
verbose
version
ansi
no-ansi
no-interaction
yes
no
root
uri
simulate
define

]]>
+
+ + docs:output + Output formatters and filters: control the command output

No arguments
Display help for the given command. When no command is given display help for the list commandDo not output any messageIncrease the verbosity of messages: 1 for normal output, 2 for more verbose output and 3 for debugDisplay this application versionForce (or disable --no-ansi) ANSI outputNegate the "--ansi" optionDo not ask any interactive questionAuto-accept the default for all user prompts. Equivalent to --no-interaction.Cancels at any confirmation prompt.The Drupal root for this site.A base URL for building links and selecting a multi-site. Defaults to https://default.Run in simulated mode (show what would have happened).Define a configuration item value.
Options:
help
quiet
verbose
version
ansi
no-ansi
no-interaction
yes
no
root
uri
simulate
define

]]>
+
+ + docs:policy + Example policy file.

No arguments
Display help for the given command. When no command is given display help for the list commandDo not output any messageIncrease the verbosity of messages: 1 for normal output, 2 for more verbose output and 3 for debugDisplay this application versionForce (or disable --no-ansi) ANSI outputNegate the "--ansi" optionDo not ask any interactive questionAuto-accept the default for all user prompts. Equivalent to --no-interaction.Cancels at any confirmation prompt.The Drupal root for this site.A base URL for building links and selecting a multi-site. Defaults to https://default.Run in simulated mode (show what would have happened).Define a configuration item value.
Options:
help
quiet
verbose
version
ansi
no-ansi
no-interaction
yes
no
root
uri
simulate
define

]]>
+
+ + docs-policy + Example policy file.

No arguments
Display help for the given command. When no command is given display help for the list commandDo not output any messageIncrease the verbosity of messages: 1 for normal output, 2 for more verbose output and 3 for debugDisplay this application versionForce (or disable --no-ansi) ANSI outputNegate the "--ansi" optionDo not ask any interactive questionAuto-accept the default for all user prompts. Equivalent to --no-interaction.Cancels at any confirmation prompt.The Drupal root for this site.A base URL for building links and selecting a multi-site. Defaults to https://default.Run in simulated mode (show what would have happened).Define a configuration item value.
Options:
help
quiet
verbose
version
ansi
no-ansi
no-interaction
yes
no
root
uri
simulate
define

]]>
+
+ + docs:readme + README.md

No arguments
Display help for the given command. When no command is given display help for the list commandDo not output any messageIncrease the verbosity of messages: 1 for normal output, 2 for more verbose output and 3 for debugDisplay this application versionForce (or disable --no-ansi) ANSI outputNegate the "--ansi" optionDo not ask any interactive questionAuto-accept the default for all user prompts. Equivalent to --no-interaction.Cancels at any confirmation prompt.The Drupal root for this site.A base URL for building links and selecting a multi-site. Defaults to https://default.Run in simulated mode (show what would have happened).Define a configuration item value.
Options:
help
quiet
verbose
version
ansi
no-ansi
no-interaction
yes
no
root
uri
simulate
define

]]>
+
+ + docs-readme + README.md

No arguments
Display help for the given command. When no command is given display help for the list commandDo not output any messageIncrease the verbosity of messages: 1 for normal output, 2 for more verbose output and 3 for debugDisplay this application versionForce (or disable --no-ansi) ANSI outputNegate the "--ansi" optionDo not ask any interactive questionAuto-accept the default for all user prompts. Equivalent to --no-interaction.Cancels at any confirmation prompt.The Drupal root for this site.A base URL for building links and selecting a multi-site. Defaults to https://default.Run in simulated mode (show what would have happened).Define a configuration item value.
Options:
help
quiet
verbose
version
ansi
no-ansi
no-interaction
yes
no
root
uri
simulate
define

]]>
+
+ + docs:script + An example Drush script.

No arguments
Display help for the given command. When no command is given display help for the list commandDo not output any messageIncrease the verbosity of messages: 1 for normal output, 2 for more verbose output and 3 for debugDisplay this application versionForce (or disable --no-ansi) ANSI outputNegate the "--ansi" optionDo not ask any interactive questionAuto-accept the default for all user prompts. Equivalent to --no-interaction.Cancels at any confirmation prompt.The Drupal root for this site.A base URL for building links and selecting a multi-site. Defaults to https://default.Run in simulated mode (show what would have happened).Define a configuration item value.
Options:
help
quiet
verbose
version
ansi
no-ansi
no-interaction
yes
no
root
uri
simulate
define

]]>
+
+ + docs-script + An example Drush script.

No arguments
Display help for the given command. When no command is given display help for the list commandDo not output any messageIncrease the verbosity of messages: 1 for normal output, 2 for more verbose output and 3 for debugDisplay this application versionForce (or disable --no-ansi) ANSI outputNegate the "--ansi" optionDo not ask any interactive questionAuto-accept the default for all user prompts. Equivalent to --no-interaction.Cancels at any confirmation prompt.The Drupal root for this site.A base URL for building links and selecting a multi-site. Defaults to https://default.Run in simulated mode (show what would have happened).Define a configuration item value.
Options:
help
quiet
verbose
version
ansi
no-ansi
no-interaction
yes
no
root
uri
simulate
define

]]>
+
+ + drupal:directory + Return the filesystem path for modules/themes and other key folders.
A module/theme name, or special names like root, files, private, or an alias:path string such as @alias:%files.
Arguments:
target

Reject any target that specifies a remote site.Display help for the given command. When no command is given display help for the list commandDo not output any messageIncrease the verbosity of messages: 1 for normal output, 2 for more verbose output and 3 for debugDisplay this application versionForce (or disable --no-ansi) ANSI outputNegate the "--ansi" optionDo not ask any interactive questionAuto-accept the default for all user prompts. Equivalent to --no-interaction.Cancels at any confirmation prompt.The Drupal root for this site.A base URL for building links and selecting a multi-site. Defaults to https://default.Run in simulated mode (show what would have happened).Define a configuration item value.
Options:
local-only
help
quiet
verbose
version
ansi
no-ansi
no-interaction
yes
no
root
uri
simulate
define

]]>
+ target[=null] +
+ + dd + Return the filesystem path for modules/themes and other key folders.
A module/theme name, or special names like root, files, private, or an alias:path string such as @alias:%files.
Arguments:
target

Reject any target that specifies a remote site.Display help for the given command. When no command is given display help for the list commandDo not output any messageIncrease the verbosity of messages: 1 for normal output, 2 for more verbose output and 3 for debugDisplay this application versionForce (or disable --no-ansi) ANSI outputNegate the "--ansi" optionDo not ask any interactive questionAuto-accept the default for all user prompts. Equivalent to --no-interaction.Cancels at any confirmation prompt.The Drupal root for this site.A base URL for building links and selecting a multi-site. Defaults to https://default.Run in simulated mode (show what would have happened).Define a configuration item value.
Options:
local-only
help
quiet
verbose
version
ansi
no-ansi
no-interaction
yes
no
root
uri
simulate
define

]]>
+ target[=null] +
+ + drupal-directory + Return the filesystem path for modules/themes and other key folders.
A module/theme name, or special names like root, files, private, or an alias:path string such as @alias:%files.
Arguments:
target

Reject any target that specifies a remote site.Display help for the given command. When no command is given display help for the list commandDo not output any messageIncrease the verbosity of messages: 1 for normal output, 2 for more verbose output and 3 for debugDisplay this application versionForce (or disable --no-ansi) ANSI outputNegate the "--ansi" optionDo not ask any interactive questionAuto-accept the default for all user prompts. Equivalent to --no-interaction.Cancels at any confirmation prompt.The Drupal root for this site.A base URL for building links and selecting a multi-site. Defaults to https://default.Run in simulated mode (show what would have happened).Define a configuration item value.
Options:
local-only
help
quiet
verbose
version
ansi
no-ansi
no-interaction
yes
no
root
uri
simulate
define

]]>
+ target[=null] +
+ + example:table + Demonstrate output formatters. Default format is 'table'.

No arguments
Format the result data. Available formats: csv,json,list,null,php,print-r,sections,string,table,tsv,var_dump,var_export,xml,yamlAvailable fields: I (first), II (second), III (third)Select just one field, and force format to *string*.Display help for the given command. When no command is given display help for the list commandDo not output any messageIncrease the verbosity of messages: 1 for normal output, 2 for more verbose output and 3 for debugDisplay this application versionForce (or disable --no-ansi) ANSI outputNegate the "--ansi" optionDo not ask any interactive questionAuto-accept the default for all user prompts. Equivalent to --no-interaction.Cancels at any confirmation prompt.The Drupal root for this site.A base URL for building links and selecting a multi-site. Defaults to https://default.Run in simulated mode (show what would have happened).Define a configuration item value.
Options:
format
fields
field
help
quiet
verbose
version
ansi
no-ansi
no-interaction
yes
no
root
uri
simulate
define

]]>
+
+ + tf + Demonstrate output formatters. Default format is 'table'.

No arguments
Format the result data. Available formats: csv,json,list,null,php,print-r,sections,string,table,tsv,var_dump,var_export,xml,yamlAvailable fields: I (first), II (second), III (third)Select just one field, and force format to *string*.Display help for the given command. When no command is given display help for the list commandDo not output any messageIncrease the verbosity of messages: 1 for normal output, 2 for more verbose output and 3 for debugDisplay this application versionForce (or disable --no-ansi) ANSI outputNegate the "--ansi" optionDo not ask any interactive questionAuto-accept the default for all user prompts. Equivalent to --no-interaction.Cancels at any confirmation prompt.The Drupal root for this site.A base URL for building links and selecting a multi-site. Defaults to https://default.Run in simulated mode (show what would have happened).Define a configuration item value.
Options:
format
fields
field
help
quiet
verbose
version
ansi
no-ansi
no-interaction
yes
no
root
uri
simulate
define

]]>
+
+ + image:derive + Create an image derivative.
An image style machine name.Path to a source image. Optionally prepend stream wrapper scheme. Relative paths calculated from Drupal root.
Arguments:
style_name
source

Display help for the given command. When no command is given display help for the list commandDo not output any messageIncrease the verbosity of messages: 1 for normal output, 2 for more verbose output and 3 for debugDisplay this application versionForce (or disable --no-ansi) ANSI outputNegate the "--ansi" optionDo not ask any interactive questionAuto-accept the default for all user prompts. Equivalent to --no-interaction.Cancels at any confirmation prompt.The Drupal root for this site.A base URL for building links and selecting a multi-site. Defaults to https://default.Run in simulated mode (show what would have happened).Define a configuration item value.
Options:
help
quiet
verbose
version
ansi
no-ansi
no-interaction
yes
no
root
uri
simulate
define

]]>
+ style_name source +
+ + id + Create an image derivative.
An image style machine name.Path to a source image. Optionally prepend stream wrapper scheme. Relative paths calculated from Drupal root.
Arguments:
style_name
source

Display help for the given command. When no command is given display help for the list commandDo not output any messageIncrease the verbosity of messages: 1 for normal output, 2 for more verbose output and 3 for debugDisplay this application versionForce (or disable --no-ansi) ANSI outputNegate the "--ansi" optionDo not ask any interactive questionAuto-accept the default for all user prompts. Equivalent to --no-interaction.Cancels at any confirmation prompt.The Drupal root for this site.A base URL for building links and selecting a multi-site. Defaults to https://default.Run in simulated mode (show what would have happened).Define a configuration item value.
Options:
help
quiet
verbose
version
ansi
no-ansi
no-interaction
yes
no
root
uri
simulate
define

]]>
+ style_name source +
+ + image-derive + Create an image derivative.
An image style machine name.Path to a source image. Optionally prepend stream wrapper scheme. Relative paths calculated from Drupal root.
Arguments:
style_name
source

Display help for the given command. When no command is given display help for the list commandDo not output any messageIncrease the verbosity of messages: 1 for normal output, 2 for more verbose output and 3 for debugDisplay this application versionForce (or disable --no-ansi) ANSI outputNegate the "--ansi" optionDo not ask any interactive questionAuto-accept the default for all user prompts. Equivalent to --no-interaction.Cancels at any confirmation prompt.The Drupal root for this site.A base URL for building links and selecting a multi-site. Defaults to https://default.Run in simulated mode (show what would have happened).Define a configuration item value.
Options:
help
quiet
verbose
version
ansi
no-ansi
no-interaction
yes
no
root
uri
simulate
define

]]>
+ style_name source +
+ + image:flush + Flush all derived images for a given style.
A comma delimited list of image style machine names. If not provided, user may choose from a list of names.
Arguments:
style_names

Flush all derived imagesDisplay help for the given command. When no command is given display help for the list commandDo not output any messageIncrease the verbosity of messages: 1 for normal output, 2 for more verbose output and 3 for debugDisplay this application versionForce (or disable --no-ansi) ANSI outputNegate the "--ansi" optionDo not ask any interactive questionAuto-accept the default for all user prompts. Equivalent to --no-interaction.Cancels at any confirmation prompt.The Drupal root for this site.A base URL for building links and selecting a multi-site. Defaults to https://default.Run in simulated mode (show what would have happened).Define a configuration item value.
Options:
all
help
quiet
verbose
version
ansi
no-ansi
no-interaction
yes
no
root
uri
simulate
define

]]>
+ style_names +
+ + if + Flush all derived images for a given style.
A comma delimited list of image style machine names. If not provided, user may choose from a list of names.
Arguments:
style_names

Flush all derived imagesDisplay help for the given command. When no command is given display help for the list commandDo not output any messageIncrease the verbosity of messages: 1 for normal output, 2 for more verbose output and 3 for debugDisplay this application versionForce (or disable --no-ansi) ANSI outputNegate the "--ansi" optionDo not ask any interactive questionAuto-accept the default for all user prompts. Equivalent to --no-interaction.Cancels at any confirmation prompt.The Drupal root for this site.A base URL for building links and selecting a multi-site. Defaults to https://default.Run in simulated mode (show what would have happened).Define a configuration item value.
Options:
all
help
quiet
verbose
version
ansi
no-ansi
no-interaction
yes
no
root
uri
simulate
define

]]>
+ style_names +
+ + image-flush + Flush all derived images for a given style.
A comma delimited list of image style machine names. If not provided, user may choose from a list of names.
Arguments:
style_names

Flush all derived imagesDisplay help for the given command. When no command is given display help for the list commandDo not output any messageIncrease the verbosity of messages: 1 for normal output, 2 for more verbose output and 3 for debugDisplay this application versionForce (or disable --no-ansi) ANSI outputNegate the "--ansi" optionDo not ask any interactive questionAuto-accept the default for all user prompts. Equivalent to --no-interaction.Cancels at any confirmation prompt.The Drupal root for this site.A base URL for building links and selecting a multi-site. Defaults to https://default.Run in simulated mode (show what would have happened).Define a configuration item value.
Options:
all
help
quiet
verbose
version
ansi
no-ansi
no-interaction
yes
no
root
uri
simulate
define

]]>
+ style_names +
+ + jn:get + Execute a JSONAPI request.
The JSONAPI URL to request.
Arguments:
url

Format the result data. Available formats: csv,json,list,null,php,print-r,tsv,var_dump,var_export,xml,yamlLimit output to only the listed elements. Name top-level elements by key, e.g. "--fields=name,date", or use dot notation to select a nested element, e.g. "--fields=a.b.c as example".Select just one field, and force format to *string*.Display help for the given command. When no command is given display help for the list commandDo not output any messageIncrease the verbosity of messages: 1 for normal output, 2 for more verbose output and 3 for debugDisplay this application versionForce (or disable --no-ansi) ANSI outputNegate the "--ansi" optionDo not ask any interactive questionAuto-accept the default for all user prompts. Equivalent to --no-interaction.Cancels at any confirmation prompt.The Drupal root for this site.A base URL for building links and selecting a multi-site. Defaults to https://default.Run in simulated mode (show what would have happened).Define a configuration item value.
Options:
format
fields
field
help
quiet
verbose
version
ansi
no-ansi
no-interaction
yes
no
root
uri
simulate
define

]]>
+ url +
+ + lagoon:aliases + Get all remote aliases from lagoon API.

No arguments
Display help for the given command. When no command is given display help for the list commandDo not output any messageIncrease the verbosity of messages: 1 for normal output, 2 for more verbose output and 3 for debugDisplay this application versionForce (or disable --no-ansi) ANSI outputNegate the "--ansi" optionDo not ask any interactive questionAuto-accept the default for all user prompts. Equivalent to --no-interaction.Cancels at any confirmation prompt.The Drupal root for this site.A base URL for building links and selecting a multi-site. Defaults to https://default.Run in simulated mode (show what would have happened).Define a configuration item value.
Options:
help
quiet
verbose
version
ansi
no-ansi
no-interaction
yes
no
root
uri
simulate
define

]]>
+
+ + la + Get all remote aliases from lagoon API.

No arguments
Display help for the given command. When no command is given display help for the list commandDo not output any messageIncrease the verbosity of messages: 1 for normal output, 2 for more verbose output and 3 for debugDisplay this application versionForce (or disable --no-ansi) ANSI outputNegate the "--ansi" optionDo not ask any interactive questionAuto-accept the default for all user prompts. Equivalent to --no-interaction.Cancels at any confirmation prompt.The Drupal root for this site.A base URL for building links and selecting a multi-site. Defaults to https://default.Run in simulated mode (show what would have happened).Define a configuration item value.
Options:
help
quiet
verbose
version
ansi
no-ansi
no-interaction
yes
no
root
uri
simulate
define

]]>
+
+ + lagoon:jwt + Generate a JWT token for the lagoon API.

No arguments
Display help for the given command. When no command is given display help for the list commandDo not output any messageIncrease the verbosity of messages: 1 for normal output, 2 for more verbose output and 3 for debugDisplay this application versionForce (or disable --no-ansi) ANSI outputNegate the "--ansi" optionDo not ask any interactive questionAuto-accept the default for all user prompts. Equivalent to --no-interaction.Cancels at any confirmation prompt.The Drupal root for this site.A base URL for building links and selecting a multi-site. Defaults to https://default.Run in simulated mode (show what would have happened).Define a configuration item value.
Options:
help
quiet
verbose
version
ansi
no-ansi
no-interaction
yes
no
root
uri
simulate
define

]]>
+
+ + jwt + Generate a JWT token for the lagoon API.

No arguments
Display help for the given command. When no command is given display help for the list commandDo not output any messageIncrease the verbosity of messages: 1 for normal output, 2 for more verbose output and 3 for debugDisplay this application versionForce (or disable --no-ansi) ANSI outputNegate the "--ansi" optionDo not ask any interactive questionAuto-accept the default for all user prompts. Equivalent to --no-interaction.Cancels at any confirmation prompt.The Drupal root for this site.A base URL for building links and selecting a multi-site. Defaults to https://default.Run in simulated mode (show what would have happened).Define a configuration item value.
Options:
help
quiet
verbose
version
ansi
no-ansi
no-interaction
yes
no
root
uri
simulate
define

]]>
+
+ + lagoon:post-rollout-tasks + Run post-rollout tasks.

No arguments
Display help for the given command. When no command is given display help for the list commandDo not output any messageIncrease the verbosity of messages: 1 for normal output, 2 for more verbose output and 3 for debugDisplay this application versionForce (or disable --no-ansi) ANSI outputNegate the "--ansi" optionDo not ask any interactive questionAuto-accept the default for all user prompts. Equivalent to --no-interaction.Cancels at any confirmation prompt.The Drupal root for this site.A base URL for building links and selecting a multi-site. Defaults to https://default.Run in simulated mode (show what would have happened).Define a configuration item value.
Options:
help
quiet
verbose
version
ansi
no-ansi
no-interaction
yes
no
root
uri
simulate
define

]]>
+
+ + lagoon:pre-rollout-tasks + Run pre-rollout tasks.

No arguments
Display help for the given command. When no command is given display help for the list commandDo not output any messageIncrease the verbosity of messages: 1 for normal output, 2 for more verbose output and 3 for debugDisplay this application versionForce (or disable --no-ansi) ANSI outputNegate the "--ansi" optionDo not ask any interactive questionAuto-accept the default for all user prompts. Equivalent to --no-interaction.Cancels at any confirmation prompt.The Drupal root for this site.A base URL for building links and selecting a multi-site. Defaults to https://default.Run in simulated mode (show what would have happened).Define a configuration item value.
Options:
help
quiet
verbose
version
ansi
no-ansi
no-interaction
yes
no
root
uri
simulate
define

]]>
+
+ + php:eval + Evaluate arbitrary php code after bootstrapping Drupal (if available).
PHP code. If shell escaping gets too tedious, consider using the php:script command.
Arguments:
code

Display help for the given command. When no command is given display help for the list commandDo not output any messageIncrease the verbosity of messages: 1 for normal output, 2 for more verbose output and 3 for debugDisplay this application versionForce (or disable --no-ansi) ANSI outputNegate the "--ansi" optionDo not ask any interactive questionAuto-accept the default for all user prompts. Equivalent to --no-interaction.Cancels at any confirmation prompt.The Drupal root for this site.A base URL for building links and selecting a multi-site. Defaults to https://default.Run in simulated mode (show what would have happened).Define a configuration item value.
Options:
format
help
quiet
verbose
version
ansi
no-ansi
no-interaction
yes
no
root
uri
simulate
define

]]>
+ code +
+ + eval + Evaluate arbitrary php code after bootstrapping Drupal (if available).
PHP code. If shell escaping gets too tedious, consider using the php:script command.
Arguments:
code

Display help for the given command. When no command is given display help for the list commandDo not output any messageIncrease the verbosity of messages: 1 for normal output, 2 for more verbose output and 3 for debugDisplay this application versionForce (or disable --no-ansi) ANSI outputNegate the "--ansi" optionDo not ask any interactive questionAuto-accept the default for all user prompts. Equivalent to --no-interaction.Cancels at any confirmation prompt.The Drupal root for this site.A base URL for building links and selecting a multi-site. Defaults to https://default.Run in simulated mode (show what would have happened).Define a configuration item value.
Options:
format
help
quiet
verbose
version
ansi
no-ansi
no-interaction
yes
no
root
uri
simulate
define

]]>
+ code +
+ + ev + Evaluate arbitrary php code after bootstrapping Drupal (if available).
PHP code. If shell escaping gets too tedious, consider using the php:script command.
Arguments:
code

Display help for the given command. When no command is given display help for the list commandDo not output any messageIncrease the verbosity of messages: 1 for normal output, 2 for more verbose output and 3 for debugDisplay this application versionForce (or disable --no-ansi) ANSI outputNegate the "--ansi" optionDo not ask any interactive questionAuto-accept the default for all user prompts. Equivalent to --no-interaction.Cancels at any confirmation prompt.The Drupal root for this site.A base URL for building links and selecting a multi-site. Defaults to https://default.Run in simulated mode (show what would have happened).Define a configuration item value.
Options:
format
help
quiet
verbose
version
ansi
no-ansi
no-interaction
yes
no
root
uri
simulate
define

]]>
+ code +
+ + php-eval + Evaluate arbitrary php code after bootstrapping Drupal (if available).
PHP code. If shell escaping gets too tedious, consider using the php:script command.
Arguments:
code

Display help for the given command. When no command is given display help for the list commandDo not output any messageIncrease the verbosity of messages: 1 for normal output, 2 for more verbose output and 3 for debugDisplay this application versionForce (or disable --no-ansi) ANSI outputNegate the "--ansi" optionDo not ask any interactive questionAuto-accept the default for all user prompts. Equivalent to --no-interaction.Cancels at any confirmation prompt.The Drupal root for this site.A base URL for building links and selecting a multi-site. Defaults to https://default.Run in simulated mode (show what would have happened).Define a configuration item value.
Options:
format
help
quiet
verbose
version
ansi
no-ansi
no-interaction
yes
no
root
uri
simulate
define

]]>
+ code +
+ + php:script + Run php a script after a full Drupal bootstrap.
Arguments:
extra

Additional paths to search for scripts, separated by : (Unix-based systems) or ; (Windows).Display help for the given command. When no command is given display help for the list commandDo not output any messageIncrease the verbosity of messages: 1 for normal output, 2 for more verbose output and 3 for debugDisplay this application versionForce (or disable --no-ansi) ANSI outputNegate the "--ansi" optionDo not ask any interactive questionAuto-accept the default for all user prompts. Equivalent to --no-interaction.Cancels at any confirmation prompt.The Drupal root for this site.A base URL for building links and selecting a multi-site. Defaults to https://default.Run in simulated mode (show what would have happened).Define a configuration item value.
Options:
format
script-path
help
quiet
verbose
version
ansi
no-ansi
no-interaction
yes
no
root
uri
simulate
define

]]>
+ extra[=null] +
+ + scr + Run php a script after a full Drupal bootstrap.
Arguments:
extra

Additional paths to search for scripts, separated by : (Unix-based systems) or ; (Windows).Display help for the given command. When no command is given display help for the list commandDo not output any messageIncrease the verbosity of messages: 1 for normal output, 2 for more verbose output and 3 for debugDisplay this application versionForce (or disable --no-ansi) ANSI outputNegate the "--ansi" optionDo not ask any interactive questionAuto-accept the default for all user prompts. Equivalent to --no-interaction.Cancels at any confirmation prompt.The Drupal root for this site.A base URL for building links and selecting a multi-site. Defaults to https://default.Run in simulated mode (show what would have happened).Define a configuration item value.
Options:
format
script-path
help
quiet
verbose
version
ansi
no-ansi
no-interaction
yes
no
root
uri
simulate
define

]]>
+ extra[=null] +
+ + php-script + Run php a script after a full Drupal bootstrap.
Arguments:
extra

Additional paths to search for scripts, separated by : (Unix-based systems) or ; (Windows).Display help for the given command. When no command is given display help for the list commandDo not output any messageIncrease the verbosity of messages: 1 for normal output, 2 for more verbose output and 3 for debugDisplay this application versionForce (or disable --no-ansi) ANSI outputNegate the "--ansi" optionDo not ask any interactive questionAuto-accept the default for all user prompts. Equivalent to --no-interaction.Cancels at any confirmation prompt.The Drupal root for this site.A base URL for building links and selecting a multi-site. Defaults to https://default.Run in simulated mode (show what would have happened).Define a configuration item value.
Options:
format
script-path
help
quiet
verbose
version
ansi
no-ansi
no-interaction
yes
no
root
uri
simulate
define

]]>
+ extra[=null] +
+ + pm:security + pm:security has been removed. Please use `composer audit` command. See https://www.drupal.org/project/project_composer/issues/3301876.

No arguments
Display help for the given command. When no command is given display help for the list commandDo not output any messageIncrease the verbosity of messages: 1 for normal output, 2 for more verbose output and 3 for debugDisplay this application versionForce (or disable --no-ansi) ANSI outputNegate the "--ansi" optionDo not ask any interactive questionAuto-accept the default for all user prompts. Equivalent to --no-interaction.Cancels at any confirmation prompt.The Drupal root for this site.A base URL for building links and selecting a multi-site. Defaults to https://default.Run in simulated mode (show what would have happened).Define a configuration item value.
Options:
help
quiet
verbose
version
ansi
no-ansi
no-interaction
yes
no
root
uri
simulate
define

]]>
+
+ + sec + pm:security has been removed. Please use `composer audit` command. See https://www.drupal.org/project/project_composer/issues/3301876.

No arguments
Display help for the given command. When no command is given display help for the list commandDo not output any messageIncrease the verbosity of messages: 1 for normal output, 2 for more verbose output and 3 for debugDisplay this application versionForce (or disable --no-ansi) ANSI outputNegate the "--ansi" optionDo not ask any interactive questionAuto-accept the default for all user prompts. Equivalent to --no-interaction.Cancels at any confirmation prompt.The Drupal root for this site.A base URL for building links and selecting a multi-site. Defaults to https://default.Run in simulated mode (show what would have happened).Define a configuration item value.
Options:
help
quiet
verbose
version
ansi
no-ansi
no-interaction
yes
no
root
uri
simulate
define

]]>
+
+ + pm-security + pm:security has been removed. Please use `composer audit` command. See https://www.drupal.org/project/project_composer/issues/3301876.

No arguments
Display help for the given command. When no command is given display help for the list commandDo not output any messageIncrease the verbosity of messages: 1 for normal output, 2 for more verbose output and 3 for debugDisplay this application versionForce (or disable --no-ansi) ANSI outputNegate the "--ansi" optionDo not ask any interactive questionAuto-accept the default for all user prompts. Equivalent to --no-interaction.Cancels at any confirmation prompt.The Drupal root for this site.A base URL for building links and selecting a multi-site. Defaults to https://default.Run in simulated mode (show what would have happened).Define a configuration item value.
Options:
help
quiet
verbose
version
ansi
no-ansi
no-interaction
yes
no
root
uri
simulate
define

]]>
+
+ + pm:security-php + pm:security-php has been removed. Please use `composer audit` command.

No arguments
Display help for the given command. When no command is given display help for the list commandDo not output any messageIncrease the verbosity of messages: 1 for normal output, 2 for more verbose output and 3 for debugDisplay this application versionForce (or disable --no-ansi) ANSI outputNegate the "--ansi" optionDo not ask any interactive questionAuto-accept the default for all user prompts. Equivalent to --no-interaction.Cancels at any confirmation prompt.The Drupal root for this site.A base URL for building links and selecting a multi-site. Defaults to https://default.Run in simulated mode (show what would have happened).Define a configuration item value.
Options:
help
quiet
verbose
version
ansi
no-ansi
no-interaction
yes
no
root
uri
simulate
define

]]>
+
+ + sec-php + pm:security-php has been removed. Please use `composer audit` command.

No arguments
Display help for the given command. When no command is given display help for the list commandDo not output any messageIncrease the verbosity of messages: 1 for normal output, 2 for more verbose output and 3 for debugDisplay this application versionForce (or disable --no-ansi) ANSI outputNegate the "--ansi" optionDo not ask any interactive questionAuto-accept the default for all user prompts. Equivalent to --no-interaction.Cancels at any confirmation prompt.The Drupal root for this site.A base URL for building links and selecting a multi-site. Defaults to https://default.Run in simulated mode (show what would have happened).Define a configuration item value.
Options:
help
quiet
verbose
version
ansi
no-ansi
no-interaction
yes
no
root
uri
simulate
define

]]>
+
+ + pm-security-php + pm:security-php has been removed. Please use `composer audit` command.

No arguments
Display help for the given command. When no command is given display help for the list commandDo not output any messageIncrease the verbosity of messages: 1 for normal output, 2 for more verbose output and 3 for debugDisplay this application versionForce (or disable --no-ansi) ANSI outputNegate the "--ansi" optionDo not ask any interactive questionAuto-accept the default for all user prompts. Equivalent to --no-interaction.Cancels at any confirmation prompt.The Drupal root for this site.A base URL for building links and selecting a multi-site. Defaults to https://default.Run in simulated mode (show what would have happened).Define a configuration item value.
Options:
help
quiet
verbose
version
ansi
no-ansi
no-interaction
yes
no
root
uri
simulate
define

]]>
+
+ + role:create + Create a new role.
The symbolic machine name for the role.A descriptive name for the role.
Arguments:
machine_name
human_readable_name

Display help for the given command. When no command is given display help for the list commandDo not output any messageIncrease the verbosity of messages: 1 for normal output, 2 for more verbose output and 3 for debugDisplay this application versionForce (or disable --no-ansi) ANSI outputNegate the "--ansi" optionDo not ask any interactive questionAuto-accept the default for all user prompts. Equivalent to --no-interaction.Cancels at any confirmation prompt.The Drupal root for this site.A base URL for building links and selecting a multi-site. Defaults to https://default.Run in simulated mode (show what would have happened).Define a configuration item value.
Options:
help
quiet
verbose
version
ansi
no-ansi
no-interaction
yes
no
root
uri
simulate
define

]]>
+ machine_name human_readable_name[=null] +
+ + rcrt + Create a new role.
The symbolic machine name for the role.A descriptive name for the role.
Arguments:
machine_name
human_readable_name

Display help for the given command. When no command is given display help for the list commandDo not output any messageIncrease the verbosity of messages: 1 for normal output, 2 for more verbose output and 3 for debugDisplay this application versionForce (or disable --no-ansi) ANSI outputNegate the "--ansi" optionDo not ask any interactive questionAuto-accept the default for all user prompts. Equivalent to --no-interaction.Cancels at any confirmation prompt.The Drupal root for this site.A base URL for building links and selecting a multi-site. Defaults to https://default.Run in simulated mode (show what would have happened).Define a configuration item value.
Options:
help
quiet
verbose
version
ansi
no-ansi
no-interaction
yes
no
root
uri
simulate
define

]]>
+ machine_name human_readable_name[=null] +
+ + role-create + Create a new role.
The symbolic machine name for the role.A descriptive name for the role.
Arguments:
machine_name
human_readable_name

Display help for the given command. When no command is given display help for the list commandDo not output any messageIncrease the verbosity of messages: 1 for normal output, 2 for more verbose output and 3 for debugDisplay this application versionForce (or disable --no-ansi) ANSI outputNegate the "--ansi" optionDo not ask any interactive questionAuto-accept the default for all user prompts. Equivalent to --no-interaction.Cancels at any confirmation prompt.The Drupal root for this site.A base URL for building links and selecting a multi-site. Defaults to https://default.Run in simulated mode (show what would have happened).Define a configuration item value.
Options:
help
quiet
verbose
version
ansi
no-ansi
no-interaction
yes
no
root
uri
simulate
define

]]>
+ machine_name human_readable_name[=null] +
+ + role:delete + Delete a role.
The symbolic machine name for the role.
Arguments:
machine_name

Display help for the given command. When no command is given display help for the list commandDo not output any messageIncrease the verbosity of messages: 1 for normal output, 2 for more verbose output and 3 for debugDisplay this application versionForce (or disable --no-ansi) ANSI outputNegate the "--ansi" optionDo not ask any interactive questionAuto-accept the default for all user prompts. Equivalent to --no-interaction.Cancels at any confirmation prompt.The Drupal root for this site.A base URL for building links and selecting a multi-site. Defaults to https://default.Run in simulated mode (show what would have happened).Define a configuration item value.
Options:
help
quiet
verbose
version
ansi
no-ansi
no-interaction
yes
no
root
uri
simulate
define

]]>
+ machine_name +
+ + rdel + Delete a role.
The symbolic machine name for the role.
Arguments:
machine_name

Display help for the given command. When no command is given display help for the list commandDo not output any messageIncrease the verbosity of messages: 1 for normal output, 2 for more verbose output and 3 for debugDisplay this application versionForce (or disable --no-ansi) ANSI outputNegate the "--ansi" optionDo not ask any interactive questionAuto-accept the default for all user prompts. Equivalent to --no-interaction.Cancels at any confirmation prompt.The Drupal root for this site.A base URL for building links and selecting a multi-site. Defaults to https://default.Run in simulated mode (show what would have happened).Define a configuration item value.
Options:
help
quiet
verbose
version
ansi
no-ansi
no-interaction
yes
no
root
uri
simulate
define

]]>
+ machine_name +
+ + role-delete + Delete a role.
The symbolic machine name for the role.
Arguments:
machine_name

Display help for the given command. When no command is given display help for the list commandDo not output any messageIncrease the verbosity of messages: 1 for normal output, 2 for more verbose output and 3 for debugDisplay this application versionForce (or disable --no-ansi) ANSI outputNegate the "--ansi" optionDo not ask any interactive questionAuto-accept the default for all user prompts. Equivalent to --no-interaction.Cancels at any confirmation prompt.The Drupal root for this site.A base URL for building links and selecting a multi-site. Defaults to https://default.Run in simulated mode (show what would have happened).Define a configuration item value.
Options:
help
quiet
verbose
version
ansi
no-ansi
no-interaction
yes
no
root
uri
simulate
define

]]>
+ machine_name +
+ + role:list + Display roles and their permissions.

No arguments
Format the result data. Available formats: csv,json,list,null,php,print-r,sections,string,table,tsv,var_dump,var_export,xml,yamlAvailable fields: ID (rid), Role Label (label), Permissions (perms)Select just one field, and force format to *string*.Display help for the given command. When no command is given display help for the list commandDo not output any messageIncrease the verbosity of messages: 1 for normal output, 2 for more verbose output and 3 for debugDisplay this application versionForce (or disable --no-ansi) ANSI outputNegate the "--ansi" optionDo not ask any interactive questionAuto-accept the default for all user prompts. Equivalent to --no-interaction.Cancels at any confirmation prompt.The Drupal root for this site.A base URL for building links and selecting a multi-site. Defaults to https://default.Run in simulated mode (show what would have happened).Define a configuration item value.
Options:
format
fields
field
help
quiet
verbose
version
ansi
no-ansi
no-interaction
yes
no
root
uri
simulate
define

]]>
+
+ + rls + Display roles and their permissions.

No arguments
Format the result data. Available formats: csv,json,list,null,php,print-r,sections,string,table,tsv,var_dump,var_export,xml,yamlAvailable fields: ID (rid), Role Label (label), Permissions (perms)Select just one field, and force format to *string*.Display help for the given command. When no command is given display help for the list commandDo not output any messageIncrease the verbosity of messages: 1 for normal output, 2 for more verbose output and 3 for debugDisplay this application versionForce (or disable --no-ansi) ANSI outputNegate the "--ansi" optionDo not ask any interactive questionAuto-accept the default for all user prompts. Equivalent to --no-interaction.Cancels at any confirmation prompt.The Drupal root for this site.A base URL for building links and selecting a multi-site. Defaults to https://default.Run in simulated mode (show what would have happened).Define a configuration item value.
Options:
format
fields
field
help
quiet
verbose
version
ansi
no-ansi
no-interaction
yes
no
root
uri
simulate
define

]]>
+
+ + role-list + Display roles and their permissions.

No arguments
Format the result data. Available formats: csv,json,list,null,php,print-r,sections,string,table,tsv,var_dump,var_export,xml,yamlAvailable fields: ID (rid), Role Label (label), Permissions (perms)Select just one field, and force format to *string*.Display help for the given command. When no command is given display help for the list commandDo not output any messageIncrease the verbosity of messages: 1 for normal output, 2 for more verbose output and 3 for debugDisplay this application versionForce (or disable --no-ansi) ANSI outputNegate the "--ansi" optionDo not ask any interactive questionAuto-accept the default for all user prompts. Equivalent to --no-interaction.Cancels at any confirmation prompt.The Drupal root for this site.A base URL for building links and selecting a multi-site. Defaults to https://default.Run in simulated mode (show what would have happened).Define a configuration item value.
Options:
format
fields
field
help
quiet
verbose
version
ansi
no-ansi
no-interaction
yes
no
root
uri
simulate
define

]]>
+
+ + role:perm:add + Grant specified permission(s) to a role.
The role to modify.The list of permission to grant, delimited by commas.
Arguments:
machine_name
permissions

Display help for the given command. When no command is given display help for the list commandDo not output any messageIncrease the verbosity of messages: 1 for normal output, 2 for more verbose output and 3 for debugDisplay this application versionForce (or disable --no-ansi) ANSI outputNegate the "--ansi" optionDo not ask any interactive questionAuto-accept the default for all user prompts. Equivalent to --no-interaction.Cancels at any confirmation prompt.The Drupal root for this site.A base URL for building links and selecting a multi-site. Defaults to https://default.Run in simulated mode (show what would have happened).Define a configuration item value.
Options:
help
quiet
verbose
version
ansi
no-ansi
no-interaction
yes
no
root
uri
simulate
define

]]>
+ machine_name permissions +
+ + rap + Grant specified permission(s) to a role.
The role to modify.The list of permission to grant, delimited by commas.
Arguments:
machine_name
permissions

Display help for the given command. When no command is given display help for the list commandDo not output any messageIncrease the verbosity of messages: 1 for normal output, 2 for more verbose output and 3 for debugDisplay this application versionForce (or disable --no-ansi) ANSI outputNegate the "--ansi" optionDo not ask any interactive questionAuto-accept the default for all user prompts. Equivalent to --no-interaction.Cancels at any confirmation prompt.The Drupal root for this site.A base URL for building links and selecting a multi-site. Defaults to https://default.Run in simulated mode (show what would have happened).Define a configuration item value.
Options:
help
quiet
verbose
version
ansi
no-ansi
no-interaction
yes
no
root
uri
simulate
define

]]>
+ machine_name permissions +
+ + role-add-perm + Grant specified permission(s) to a role.
The role to modify.The list of permission to grant, delimited by commas.
Arguments:
machine_name
permissions

Display help for the given command. When no command is given display help for the list commandDo not output any messageIncrease the verbosity of messages: 1 for normal output, 2 for more verbose output and 3 for debugDisplay this application versionForce (or disable --no-ansi) ANSI outputNegate the "--ansi" optionDo not ask any interactive questionAuto-accept the default for all user prompts. Equivalent to --no-interaction.Cancels at any confirmation prompt.The Drupal root for this site.A base URL for building links and selecting a multi-site. Defaults to https://default.Run in simulated mode (show what would have happened).Define a configuration item value.
Options:
help
quiet
verbose
version
ansi
no-ansi
no-interaction
yes
no
root
uri
simulate
define

]]>
+ machine_name permissions +
+ + role:perm:remove + Remove specified permission(s) from a role.
The role to modify.The list of permission to grant, delimited by commas.
Arguments:
machine_name
permissions

Display help for the given command. When no command is given display help for the list commandDo not output any messageIncrease the verbosity of messages: 1 for normal output, 2 for more verbose output and 3 for debugDisplay this application versionForce (or disable --no-ansi) ANSI outputNegate the "--ansi" optionDo not ask any interactive questionAuto-accept the default for all user prompts. Equivalent to --no-interaction.Cancels at any confirmation prompt.The Drupal root for this site.A base URL for building links and selecting a multi-site. Defaults to https://default.Run in simulated mode (show what would have happened).Define a configuration item value.
Options:
help
quiet
verbose
version
ansi
no-ansi
no-interaction
yes
no
root
uri
simulate
define

]]>
+ machine_name permissions +
+ + rmp + Remove specified permission(s) from a role.
The role to modify.The list of permission to grant, delimited by commas.
Arguments:
machine_name
permissions

Display help for the given command. When no command is given display help for the list commandDo not output any messageIncrease the verbosity of messages: 1 for normal output, 2 for more verbose output and 3 for debugDisplay this application versionForce (or disable --no-ansi) ANSI outputNegate the "--ansi" optionDo not ask any interactive questionAuto-accept the default for all user prompts. Equivalent to --no-interaction.Cancels at any confirmation prompt.The Drupal root for this site.A base URL for building links and selecting a multi-site. Defaults to https://default.Run in simulated mode (show what would have happened).Define a configuration item value.
Options:
help
quiet
verbose
version
ansi
no-ansi
no-interaction
yes
no
root
uri
simulate
define

]]>
+ machine_name permissions +
+ + role-remove-perm + Remove specified permission(s) from a role.
The role to modify.The list of permission to grant, delimited by commas.
Arguments:
machine_name
permissions

Display help for the given command. When no command is given display help for the list commandDo not output any messageIncrease the verbosity of messages: 1 for normal output, 2 for more verbose output and 3 for debugDisplay this application versionForce (or disable --no-ansi) ANSI outputNegate the "--ansi" optionDo not ask any interactive questionAuto-accept the default for all user prompts. Equivalent to --no-interaction.Cancels at any confirmation prompt.The Drupal root for this site.A base URL for building links and selecting a multi-site. Defaults to https://default.Run in simulated mode (show what would have happened).Define a configuration item value.
Options:
help
quiet
verbose
version
ansi
no-ansi
no-interaction
yes
no
root
uri
simulate
define

]]>
+ machine_name permissions +
+ + site:alias + Show site alias details, or a list of available site aliases.
Site alias or site specification.
Arguments:
site

Format the result data. Available formats: csv,json,list,null,php,print-r,tsv,var_dump,var_export,xml,yamlLimit output to only the listed elements. Name top-level elements by key, e.g. "--fields=name,date", or use dot notation to select a nested element, e.g. "--fields=a.b.c as example".Select just one field, and force format to *string*.Display help for the given command. When no command is given display help for the list commandDo not output any messageIncrease the verbosity of messages: 1 for normal output, 2 for more verbose output and 3 for debugDisplay this application versionForce (or disable --no-ansi) ANSI outputNegate the "--ansi" optionDo not ask any interactive questionAuto-accept the default for all user prompts. Equivalent to --no-interaction.Cancels at any confirmation prompt.The Drupal root for this site.A base URL for building links and selecting a multi-site. Defaults to https://default.Run in simulated mode (show what would have happened).Define a configuration item value.
Options:
format
fields
field
help
quiet
verbose
version
ansi
no-ansi
no-interaction
yes
no
root
uri
simulate
define

]]>
+ site[=null] +
+ + sa + Show site alias details, or a list of available site aliases.
Site alias or site specification.
Arguments:
site

Format the result data. Available formats: csv,json,list,null,php,print-r,tsv,var_dump,var_export,xml,yamlLimit output to only the listed elements. Name top-level elements by key, e.g. "--fields=name,date", or use dot notation to select a nested element, e.g. "--fields=a.b.c as example".Select just one field, and force format to *string*.Display help for the given command. When no command is given display help for the list commandDo not output any messageIncrease the verbosity of messages: 1 for normal output, 2 for more verbose output and 3 for debugDisplay this application versionForce (or disable --no-ansi) ANSI outputNegate the "--ansi" optionDo not ask any interactive questionAuto-accept the default for all user prompts. Equivalent to --no-interaction.Cancels at any confirmation prompt.The Drupal root for this site.A base URL for building links and selecting a multi-site. Defaults to https://default.Run in simulated mode (show what would have happened).Define a configuration item value.
Options:
format
fields
field
help
quiet
verbose
version
ansi
no-ansi
no-interaction
yes
no
root
uri
simulate
define

]]>
+ site[=null] +
+ + site:alias-convert + site:alias-convert has been removed. Please use Drush 11 or convert by hand.

No arguments
Display help for the given command. When no command is given display help for the list commandDo not output any messageIncrease the verbosity of messages: 1 for normal output, 2 for more verbose output and 3 for debugDisplay this application versionForce (or disable --no-ansi) ANSI outputNegate the "--ansi" optionDo not ask any interactive questionAuto-accept the default for all user prompts. Equivalent to --no-interaction.Cancels at any confirmation prompt.The Drupal root for this site.A base URL for building links and selecting a multi-site. Defaults to https://default.Run in simulated mode (show what would have happened).Define a configuration item value.
Options:
help
quiet
verbose
version
ansi
no-ansi
no-interaction
yes
no
root
uri
simulate
define

]]>
+
+ + sa-convert + site:alias-convert has been removed. Please use Drush 11 or convert by hand.

No arguments
Display help for the given command. When no command is given display help for the list commandDo not output any messageIncrease the verbosity of messages: 1 for normal output, 2 for more verbose output and 3 for debugDisplay this application versionForce (or disable --no-ansi) ANSI outputNegate the "--ansi" optionDo not ask any interactive questionAuto-accept the default for all user prompts. Equivalent to --no-interaction.Cancels at any confirmation prompt.The Drupal root for this site.A base URL for building links and selecting a multi-site. Defaults to https://default.Run in simulated mode (show what would have happened).Define a configuration item value.
Options:
help
quiet
verbose
version
ansi
no-ansi
no-interaction
yes
no
root
uri
simulate
define

]]>
+
+ + sac + site:alias-convert has been removed. Please use Drush 11 or convert by hand.

No arguments
Display help for the given command. When no command is given display help for the list commandDo not output any messageIncrease the verbosity of messages: 1 for normal output, 2 for more verbose output and 3 for debugDisplay this application versionForce (or disable --no-ansi) ANSI outputNegate the "--ansi" optionDo not ask any interactive questionAuto-accept the default for all user prompts. Equivalent to --no-interaction.Cancels at any confirmation prompt.The Drupal root for this site.A base URL for building links and selecting a multi-site. Defaults to https://default.Run in simulated mode (show what would have happened).Define a configuration item value.
Options:
help
quiet
verbose
version
ansi
no-ansi
no-interaction
yes
no
root
uri
simulate
define

]]>
+
+ + site:install + Install Drupal along with modules/themes/configuration/profile.
An install profile name. Defaults to standard unless an install profile is marked as a distribution. Use minimal for a bare minimum installation. Additional info for the install profile may also be provided with additional arguments. The key is in the form [form name].[parameter name]
Arguments:
profile

A Drupal 6 style database URL. Required for initial install, not re-install. If omitted and required, Drush prompts for this item.An optional table prefix to use for initial install.Account to use when creating a new database. Must have Grant permission (mysql only). Optional.Password for the db-su account. Optional.uid1 name.uid1 email.From: for system mailings.uid1 pass. Defaults to a randomly generated password. If desired, set a fixed password in drush.yml.A short language code. Sets the default site language. Language files must already be present.Site nameName of directory under sites which should be created.Configuration from sync directory should be imported during installation.Display help for the given command. When no command is given display help for the list commandDo not output any messageIncrease the verbosity of messages: 1 for normal output, 2 for more verbose output and 3 for debugDisplay this application versionForce (or disable --no-ansi) ANSI outputNegate the "--ansi" optionDo not ask any interactive questionAuto-accept the default for all user prompts. Equivalent to --no-interaction.Cancels at any confirmation prompt.The Drupal root for this site.A base URL for building links and selecting a multi-site. Defaults to https://default.Run in simulated mode (show what would have happened).Define a configuration item value.
Options:
db-url
db-prefix
db-su
db-su-pw
account-name
account-mail
site-mail
account-pass
locale
site-name
site-pass
sites-subdir
config-dir
existing-config
help
quiet
verbose
version
ansi
no-ansi
no-interaction
yes
no
root
uri
simulate
define

]]>
+ profile[=null] +
+ + si + Install Drupal along with modules/themes/configuration/profile.
An install profile name. Defaults to standard unless an install profile is marked as a distribution. Use minimal for a bare minimum installation. Additional info for the install profile may also be provided with additional arguments. The key is in the form [form name].[parameter name]
Arguments:
profile

A Drupal 6 style database URL. Required for initial install, not re-install. If omitted and required, Drush prompts for this item.An optional table prefix to use for initial install.Account to use when creating a new database. Must have Grant permission (mysql only). Optional.Password for the db-su account. Optional.uid1 name.uid1 email.From: for system mailings.uid1 pass. Defaults to a randomly generated password. If desired, set a fixed password in drush.yml.A short language code. Sets the default site language. Language files must already be present.Site nameName of directory under sites which should be created.Configuration from sync directory should be imported during installation.Display help for the given command. When no command is given display help for the list commandDo not output any messageIncrease the verbosity of messages: 1 for normal output, 2 for more verbose output and 3 for debugDisplay this application versionForce (or disable --no-ansi) ANSI outputNegate the "--ansi" optionDo not ask any interactive questionAuto-accept the default for all user prompts. Equivalent to --no-interaction.Cancels at any confirmation prompt.The Drupal root for this site.A base URL for building links and selecting a multi-site. Defaults to https://default.Run in simulated mode (show what would have happened).Define a configuration item value.
Options:
db-url
db-prefix
db-su
db-su-pw
account-name
account-mail
site-mail
account-pass
locale
site-name
site-pass
sites-subdir
config-dir
existing-config
help
quiet
verbose
version
ansi
no-ansi
no-interaction
yes
no
root
uri
simulate
define

]]>
+ profile[=null] +
+ + sin + Install Drupal along with modules/themes/configuration/profile.
An install profile name. Defaults to standard unless an install profile is marked as a distribution. Use minimal for a bare minimum installation. Additional info for the install profile may also be provided with additional arguments. The key is in the form [form name].[parameter name]
Arguments:
profile

A Drupal 6 style database URL. Required for initial install, not re-install. If omitted and required, Drush prompts for this item.An optional table prefix to use for initial install.Account to use when creating a new database. Must have Grant permission (mysql only). Optional.Password for the db-su account. Optional.uid1 name.uid1 email.From: for system mailings.uid1 pass. Defaults to a randomly generated password. If desired, set a fixed password in drush.yml.A short language code. Sets the default site language. Language files must already be present.Site nameName of directory under sites which should be created.Configuration from sync directory should be imported during installation.Display help for the given command. When no command is given display help for the list commandDo not output any messageIncrease the verbosity of messages: 1 for normal output, 2 for more verbose output and 3 for debugDisplay this application versionForce (or disable --no-ansi) ANSI outputNegate the "--ansi" optionDo not ask any interactive questionAuto-accept the default for all user prompts. Equivalent to --no-interaction.Cancels at any confirmation prompt.The Drupal root for this site.A base URL for building links and selecting a multi-site. Defaults to https://default.Run in simulated mode (show what would have happened).Define a configuration item value.
Options:
db-url
db-prefix
db-su
db-su-pw
account-name
account-mail
site-mail
account-pass
locale
site-name
site-pass
sites-subdir
config-dir
existing-config
help
quiet
verbose
version
ansi
no-ansi
no-interaction
yes
no
root
uri
simulate
define

]]>
+ profile[=null] +
+ + site-install + Install Drupal along with modules/themes/configuration/profile.
An install profile name. Defaults to standard unless an install profile is marked as a distribution. Use minimal for a bare minimum installation. Additional info for the install profile may also be provided with additional arguments. The key is in the form [form name].[parameter name]
Arguments:
profile

A Drupal 6 style database URL. Required for initial install, not re-install. If omitted and required, Drush prompts for this item.An optional table prefix to use for initial install.Account to use when creating a new database. Must have Grant permission (mysql only). Optional.Password for the db-su account. Optional.uid1 name.uid1 email.From: for system mailings.uid1 pass. Defaults to a randomly generated password. If desired, set a fixed password in drush.yml.A short language code. Sets the default site language. Language files must already be present.Site nameName of directory under sites which should be created.Configuration from sync directory should be imported during installation.Display help for the given command. When no command is given display help for the list commandDo not output any messageIncrease the verbosity of messages: 1 for normal output, 2 for more verbose output and 3 for debugDisplay this application versionForce (or disable --no-ansi) ANSI outputNegate the "--ansi" optionDo not ask any interactive questionAuto-accept the default for all user prompts. Equivalent to --no-interaction.Cancels at any confirmation prompt.The Drupal root for this site.A base URL for building links and selecting a multi-site. Defaults to https://default.Run in simulated mode (show what would have happened).Define a configuration item value.
Options:
db-url
db-prefix
db-su
db-su-pw
account-name
account-mail
site-mail
account-pass
locale
site-name
site-pass
sites-subdir
config-dir
existing-config
help
quiet
verbose
version
ansi
no-ansi
no-interaction
yes
no
root
uri
simulate
define

]]>
+ profile[=null] +
+ + site:set + Set a site alias that will persist for the current session.
Site specification to use, or - for previous site. Omit this argument to unset.
Arguments:
site

Display help for the given command. When no command is given display help for the list commandDo not output any messageIncrease the verbosity of messages: 1 for normal output, 2 for more verbose output and 3 for debugDisplay this application versionForce (or disable --no-ansi) ANSI outputNegate the "--ansi" optionDo not ask any interactive questionAuto-accept the default for all user prompts. Equivalent to --no-interaction.Cancels at any confirmation prompt.The Drupal root for this site.A base URL for building links and selecting a multi-site. Defaults to https://default.Run in simulated mode (show what would have happened).Define a configuration item value.
Options:
help
quiet
verbose
version
ansi
no-ansi
no-interaction
yes
no
root
uri
simulate
define

]]>
+ site[=null] +
+ + use + Set a site alias that will persist for the current session.
Site specification to use, or - for previous site. Omit this argument to unset.
Arguments:
site

Display help for the given command. When no command is given display help for the list commandDo not output any messageIncrease the verbosity of messages: 1 for normal output, 2 for more verbose output and 3 for debugDisplay this application versionForce (or disable --no-ansi) ANSI outputNegate the "--ansi" optionDo not ask any interactive questionAuto-accept the default for all user prompts. Equivalent to --no-interaction.Cancels at any confirmation prompt.The Drupal root for this site.A base URL for building links and selecting a multi-site. Defaults to https://default.Run in simulated mode (show what would have happened).Define a configuration item value.
Options:
help
quiet
verbose
version
ansi
no-ansi
no-interaction
yes
no
root
uri
simulate
define

]]>
+ site[=null] +
+ + site-set + Set a site alias that will persist for the current session.
Site specification to use, or - for previous site. Omit this argument to unset.
Arguments:
site

Display help for the given command. When no command is given display help for the list commandDo not output any messageIncrease the verbosity of messages: 1 for normal output, 2 for more verbose output and 3 for debugDisplay this application versionForce (or disable --no-ansi) ANSI outputNegate the "--ansi" optionDo not ask any interactive questionAuto-accept the default for all user prompts. Equivalent to --no-interaction.Cancels at any confirmation prompt.The Drupal root for this site.A base URL for building links and selecting a multi-site. Defaults to https://default.Run in simulated mode (show what would have happened).Define a configuration item value.
Options:
help
quiet
verbose
version
ansi
no-ansi
no-interaction
yes
no
root
uri
simulate
define

]]>
+ site[=null] +
+ + site:ssh + Connect to a webserver via SSH, and optionally run a shell command.
Code which should run at remote host.
Arguments:
code

Directory to change to. Defaults to Drupal root.A string of extra options that will be passed to the ssh command (e.g. -p 100)Create a tty (e.g. to run an interactive program).Display help for the given command. When no command is given display help for the list commandDo not output any messageIncrease the verbosity of messages: 1 for normal output, 2 for more verbose output and 3 for debugDisplay this application versionForce (or disable --no-ansi) ANSI outputNegate the "--ansi" optionDo not ask any interactive questionAuto-accept the default for all user prompts. Equivalent to --no-interaction.Cancels at any confirmation prompt.The Drupal root for this site.A base URL for building links and selecting a multi-site. Defaults to https://default.Run in simulated mode (show what would have happened).Define a configuration item value.
Options:
cd
ssh-options
tty
help
quiet
verbose
version
ansi
no-ansi
no-interaction
yes
no
root
uri
simulate
define

]]>
+ code[=null] +
+ + ssh + Connect to a webserver via SSH, and optionally run a shell command.
Code which should run at remote host.
Arguments:
code

Directory to change to. Defaults to Drupal root.A string of extra options that will be passed to the ssh command (e.g. -p 100)Create a tty (e.g. to run an interactive program).Display help for the given command. When no command is given display help for the list commandDo not output any messageIncrease the verbosity of messages: 1 for normal output, 2 for more verbose output and 3 for debugDisplay this application versionForce (or disable --no-ansi) ANSI outputNegate the "--ansi" optionDo not ask any interactive questionAuto-accept the default for all user prompts. Equivalent to --no-interaction.Cancels at any confirmation prompt.The Drupal root for this site.A base URL for building links and selecting a multi-site. Defaults to https://default.Run in simulated mode (show what would have happened).Define a configuration item value.
Options:
cd
ssh-options
tty
help
quiet
verbose
version
ansi
no-ansi
no-interaction
yes
no
root
uri
simulate
define

]]>
+ code[=null] +
+ + site-ssh + Connect to a webserver via SSH, and optionally run a shell command.
Code which should run at remote host.
Arguments:
code

Directory to change to. Defaults to Drupal root.A string of extra options that will be passed to the ssh command (e.g. -p 100)Create a tty (e.g. to run an interactive program).Display help for the given command. When no command is given display help for the list commandDo not output any messageIncrease the verbosity of messages: 1 for normal output, 2 for more verbose output and 3 for debugDisplay this application versionForce (or disable --no-ansi) ANSI outputNegate the "--ansi" optionDo not ask any interactive questionAuto-accept the default for all user prompts. Equivalent to --no-interaction.Cancels at any confirmation prompt.The Drupal root for this site.A base URL for building links and selecting a multi-site. Defaults to https://default.Run in simulated mode (show what would have happened).Define a configuration item value.
Options:
cd
ssh-options
tty
help
quiet
verbose
version
ansi
no-ansi
no-interaction
yes
no
root
uri
simulate
define

]]>
+ code[=null] +
+ + sql:cli + Open a SQL command-line interface using Drupal's credentials.

No arguments
Add custom options to the connect string (e.g. --extra=--skip-column-names)The DB connection key if using multiple connections in settings.php.A Drupal 6 style database URL. For example mysql://root:pass@localhost:port/dbnameThe name of a target within the specified database connection.Show password on the CLI. Useful for debugging.Display help for the given command. When no command is given display help for the list commandDo not output any messageIncrease the verbosity of messages: 1 for normal output, 2 for more verbose output and 3 for debugDisplay this application versionForce (or disable --no-ansi) ANSI outputNegate the "--ansi" optionDo not ask any interactive questionAuto-accept the default for all user prompts. Equivalent to --no-interaction.Cancels at any confirmation prompt.The Drupal root for this site.A base URL for building links and selecting a multi-site. Defaults to https://default.Run in simulated mode (show what would have happened).Define a configuration item value.
Options:
extra
database
db-url
target
show-passwords
help
quiet
verbose
version
ansi
no-ansi
no-interaction
yes
no
root
uri
simulate
define

]]>
+
+ + sqlc + Open a SQL command-line interface using Drupal's credentials.

No arguments
Add custom options to the connect string (e.g. --extra=--skip-column-names)The DB connection key if using multiple connections in settings.php.A Drupal 6 style database URL. For example mysql://root:pass@localhost:port/dbnameThe name of a target within the specified database connection.Show password on the CLI. Useful for debugging.Display help for the given command. When no command is given display help for the list commandDo not output any messageIncrease the verbosity of messages: 1 for normal output, 2 for more verbose output and 3 for debugDisplay this application versionForce (or disable --no-ansi) ANSI outputNegate the "--ansi" optionDo not ask any interactive questionAuto-accept the default for all user prompts. Equivalent to --no-interaction.Cancels at any confirmation prompt.The Drupal root for this site.A base URL for building links and selecting a multi-site. Defaults to https://default.Run in simulated mode (show what would have happened).Define a configuration item value.
Options:
extra
database
db-url
target
show-passwords
help
quiet
verbose
version
ansi
no-ansi
no-interaction
yes
no
root
uri
simulate
define

]]>
+
+ + sql-cli + Open a SQL command-line interface using Drupal's credentials.

No arguments
Add custom options to the connect string (e.g. --extra=--skip-column-names)The DB connection key if using multiple connections in settings.php.A Drupal 6 style database URL. For example mysql://root:pass@localhost:port/dbnameThe name of a target within the specified database connection.Show password on the CLI. Useful for debugging.Display help for the given command. When no command is given display help for the list commandDo not output any messageIncrease the verbosity of messages: 1 for normal output, 2 for more verbose output and 3 for debugDisplay this application versionForce (or disable --no-ansi) ANSI outputNegate the "--ansi" optionDo not ask any interactive questionAuto-accept the default for all user prompts. Equivalent to --no-interaction.Cancels at any confirmation prompt.The Drupal root for this site.A base URL for building links and selecting a multi-site. Defaults to https://default.Run in simulated mode (show what would have happened).Define a configuration item value.
Options:
extra
database
db-url
target
show-passwords
help
quiet
verbose
version
ansi
no-ansi
no-interaction
yes
no
root
uri
simulate
define

]]>
+
+ + sql:conf +
No arguments
Show all database connections, instead of just one.Show password on the CLI. Useful for debugging.The DB connection key if using multiple connections in settings.php.A Drupal 6 style database URL. For example mysql://root:pass@localhost:port/dbnameThe name of a target within the specified database connection.Display help for the given command. When no command is given display help for the list commandDo not output any messageIncrease the verbosity of messages: 1 for normal output, 2 for more verbose output and 3 for debugDisplay this application versionForce (or disable --no-ansi) ANSI outputNegate the "--ansi" optionDo not ask any interactive questionAuto-accept the default for all user prompts. Equivalent to --no-interaction.Cancels at any confirmation prompt.The Drupal root for this site.A base URL for building links and selecting a multi-site. Defaults to https://default.Run in simulated mode (show what would have happened).Define a configuration item value.
Options:
format
all
show-passwords
database
db-url
target
help
quiet
verbose
version
ansi
no-ansi
no-interaction
yes
no
root
uri
simulate
define

]]>
+
+ + sql-conf +
No arguments
Show all database connections, instead of just one.Show password on the CLI. Useful for debugging.The DB connection key if using multiple connections in settings.php.A Drupal 6 style database URL. For example mysql://root:pass@localhost:port/dbnameThe name of a target within the specified database connection.Display help for the given command. When no command is given display help for the list commandDo not output any messageIncrease the verbosity of messages: 1 for normal output, 2 for more verbose output and 3 for debugDisplay this application versionForce (or disable --no-ansi) ANSI outputNegate the "--ansi" optionDo not ask any interactive questionAuto-accept the default for all user prompts. Equivalent to --no-interaction.Cancels at any confirmation prompt.The Drupal root for this site.A base URL for building links and selecting a multi-site. Defaults to https://default.Run in simulated mode (show what would have happened).Define a configuration item value.
Options:
format
all
show-passwords
database
db-url
target
help
quiet
verbose
version
ansi
no-ansi
no-interaction
yes
no
root
uri
simulate
define

]]>
+
+ + sql:connect + A string for connecting to the DB.

No arguments
Add custom options to the connect string (e.g. --extra=--skip-column-names)The DB connection key if using multiple connections in settings.php.A Drupal 6 style database URL. For example mysql://root:pass@localhost:port/dbnameThe name of a target within the specified database connection.Show password on the CLI. Useful for debugging.Display help for the given command. When no command is given display help for the list commandDo not output any messageIncrease the verbosity of messages: 1 for normal output, 2 for more verbose output and 3 for debugDisplay this application versionForce (or disable --no-ansi) ANSI outputNegate the "--ansi" optionDo not ask any interactive questionAuto-accept the default for all user prompts. Equivalent to --no-interaction.Cancels at any confirmation prompt.The Drupal root for this site.A base URL for building links and selecting a multi-site. Defaults to https://default.Run in simulated mode (show what would have happened).Define a configuration item value.
Options:
extra
database
db-url
target
show-passwords
help
quiet
verbose
version
ansi
no-ansi
no-interaction
yes
no
root
uri
simulate
define

]]>
+
+ + sql-connect + A string for connecting to the DB.

No arguments
Add custom options to the connect string (e.g. --extra=--skip-column-names)The DB connection key if using multiple connections in settings.php.A Drupal 6 style database URL. For example mysql://root:pass@localhost:port/dbnameThe name of a target within the specified database connection.Show password on the CLI. Useful for debugging.Display help for the given command. When no command is given display help for the list commandDo not output any messageIncrease the verbosity of messages: 1 for normal output, 2 for more verbose output and 3 for debugDisplay this application versionForce (or disable --no-ansi) ANSI outputNegate the "--ansi" optionDo not ask any interactive questionAuto-accept the default for all user prompts. Equivalent to --no-interaction.Cancels at any confirmation prompt.The Drupal root for this site.A base URL for building links and selecting a multi-site. Defaults to https://default.Run in simulated mode (show what would have happened).Define a configuration item value.
Options:
extra
database
db-url
target
show-passwords
help
quiet
verbose
version
ansi
no-ansi
no-interaction
yes
no
root
uri
simulate
define

]]>
+
+ + sql:create + Create a database.

No arguments
Account to use when creating a new database.Password for the db-su account.The DB connection key if using multiple connections in settings.php.A Drupal 6 style database URL. For example mysql://root:pass@localhost:port/dbnameThe name of a target within the specified database connection.Show password on the CLI. Useful for debugging.Display help for the given command. When no command is given display help for the list commandDo not output any messageIncrease the verbosity of messages: 1 for normal output, 2 for more verbose output and 3 for debugDisplay this application versionForce (or disable --no-ansi) ANSI outputNegate the "--ansi" optionDo not ask any interactive questionAuto-accept the default for all user prompts. Equivalent to --no-interaction.Cancels at any confirmation prompt.The Drupal root for this site.A base URL for building links and selecting a multi-site. Defaults to https://default.Run in simulated mode (show what would have happened).Define a configuration item value.
Options:
db-su
db-su-pw
database
db-url
target
show-passwords
help
quiet
verbose
version
ansi
no-ansi
no-interaction
yes
no
root
uri
simulate
define

]]>
+
+ + sql-create + Create a database.

No arguments
Account to use when creating a new database.Password for the db-su account.The DB connection key if using multiple connections in settings.php.A Drupal 6 style database URL. For example mysql://root:pass@localhost:port/dbnameThe name of a target within the specified database connection.Show password on the CLI. Useful for debugging.Display help for the given command. When no command is given display help for the list commandDo not output any messageIncrease the verbosity of messages: 1 for normal output, 2 for more verbose output and 3 for debugDisplay this application versionForce (or disable --no-ansi) ANSI outputNegate the "--ansi" optionDo not ask any interactive questionAuto-accept the default for all user prompts. Equivalent to --no-interaction.Cancels at any confirmation prompt.The Drupal root for this site.A base URL for building links and selecting a multi-site. Defaults to https://default.Run in simulated mode (show what would have happened).Define a configuration item value.
Options:
db-su
db-su-pw
database
db-url
target
show-passwords
help
quiet
verbose
version
ansi
no-ansi
no-interaction
yes
no
root
uri
simulate
define

]]>
+
+ + sql:drop + Drop all tables in a given database.

No arguments
The DB connection key if using multiple connections in settings.php.A Drupal 6 style database URL. For example mysql://root:pass@localhost:port/dbnameThe name of a target within the specified database connection.Show password on the CLI. Useful for debugging.Display help for the given command. When no command is given display help for the list commandDo not output any messageIncrease the verbosity of messages: 1 for normal output, 2 for more verbose output and 3 for debugDisplay this application versionForce (or disable --no-ansi) ANSI outputNegate the "--ansi" optionDo not ask any interactive questionAuto-accept the default for all user prompts. Equivalent to --no-interaction.Cancels at any confirmation prompt.The Drupal root for this site.A base URL for building links and selecting a multi-site. Defaults to https://default.Run in simulated mode (show what would have happened).Define a configuration item value.
Options:
database
db-url
target
show-passwords
help
quiet
verbose
version
ansi
no-ansi
no-interaction
yes
no
root
uri
simulate
define

]]>
+
+ + sql-drop + Drop all tables in a given database.

No arguments
The DB connection key if using multiple connections in settings.php.A Drupal 6 style database URL. For example mysql://root:pass@localhost:port/dbnameThe name of a target within the specified database connection.Show password on the CLI. Useful for debugging.Display help for the given command. When no command is given display help for the list commandDo not output any messageIncrease the verbosity of messages: 1 for normal output, 2 for more verbose output and 3 for debugDisplay this application versionForce (or disable --no-ansi) ANSI outputNegate the "--ansi" optionDo not ask any interactive questionAuto-accept the default for all user prompts. Equivalent to --no-interaction.Cancels at any confirmation prompt.The Drupal root for this site.A base URL for building links and selecting a multi-site. Defaults to https://default.Run in simulated mode (show what would have happened).Define a configuration item value.
Options:
database
db-url
target
show-passwords
help
quiet
verbose
version
ansi
no-ansi
no-interaction
yes
no
root
uri
simulate
define

]]>
+
+ + sql:dump + Exports the Drupal DB as SQL using mysqldump or equivalent.

No arguments
Save to a file. The file should be relative to Drupal root. If --result-file is provided with the value 'auto', a date-based filename will be created under ~/drush-backups directory.Omit DROP TABLE statements. Used by Postgres and Oracle only.Dump data without statements to create any of the schema.Order by primary key and add line breaks for efficient diffs. Slows down the dump. Mysql only.Compress the dump using the gzip program which must be in your $PATH.Add custom arguments/options when connecting to database (used internally to list tables).Add custom arguments/options to the dumping of the database (e.g. mysqldump command).Format the result data. Available formats: csv,json,list,null,php,print-r,string,table,tsv,var_dump,var_export,xml,yamlThe DB connection key if using multiple connections in settings.php.A Drupal 6 style database URL. For example mysql://root:pass@localhost:port/dbnameThe name of a target within the specified database connection.Show password on the CLI. Useful for debugging.A key in the $skip_tables array. @see [Site aliases](../site-aliases.md)A key in the $structure_tables array. @see [Site aliases](../site-aliases.md)A key in the $tables array.A comma-separated list of tables to exclude completely.A comma-separated list of tables to include for structure, but not data.A comma-separated list of tables to transfer.Available fields: Path (path)Select just one field, and force format to *string*.Display help for the given command. When no command is given display help for the list commandDo not output any messageIncrease the verbosity of messages: 1 for normal output, 2 for more verbose output and 3 for debugDisplay this application versionForce (or disable --no-ansi) ANSI outputNegate the "--ansi" optionDo not ask any interactive questionAuto-accept the default for all user prompts. Equivalent to --no-interaction.Cancels at any confirmation prompt.The Drupal root for this site.A base URL for building links and selecting a multi-site. Defaults to https://default.Run in simulated mode (show what would have happened).Define a configuration item value.
Options:
result-file
create-db
data-only
ordered-dump
gzip
extra
extra-dump
format
database
db-url
target
show-passwords
skip-tables-key
structure-tables-key
tables-key
skip-tables-list
structure-tables-list
tables-list
fields
field
help
quiet
verbose
version
ansi
no-ansi
no-interaction
yes
no
root
uri
simulate
define

]]>
+
+ + sql-dump + Exports the Drupal DB as SQL using mysqldump or equivalent.

No arguments
Save to a file. The file should be relative to Drupal root. If --result-file is provided with the value 'auto', a date-based filename will be created under ~/drush-backups directory.Omit DROP TABLE statements. Used by Postgres and Oracle only.Dump data without statements to create any of the schema.Order by primary key and add line breaks for efficient diffs. Slows down the dump. Mysql only.Compress the dump using the gzip program which must be in your $PATH.Add custom arguments/options when connecting to database (used internally to list tables).Add custom arguments/options to the dumping of the database (e.g. mysqldump command).Format the result data. Available formats: csv,json,list,null,php,print-r,string,table,tsv,var_dump,var_export,xml,yamlThe DB connection key if using multiple connections in settings.php.A Drupal 6 style database URL. For example mysql://root:pass@localhost:port/dbnameThe name of a target within the specified database connection.Show password on the CLI. Useful for debugging.A key in the $skip_tables array. @see [Site aliases](../site-aliases.md)A key in the $structure_tables array. @see [Site aliases](../site-aliases.md)A key in the $tables array.A comma-separated list of tables to exclude completely.A comma-separated list of tables to include for structure, but not data.A comma-separated list of tables to transfer.Available fields: Path (path)Select just one field, and force format to *string*.Display help for the given command. When no command is given display help for the list commandDo not output any messageIncrease the verbosity of messages: 1 for normal output, 2 for more verbose output and 3 for debugDisplay this application versionForce (or disable --no-ansi) ANSI outputNegate the "--ansi" optionDo not ask any interactive questionAuto-accept the default for all user prompts. Equivalent to --no-interaction.Cancels at any confirmation prompt.The Drupal root for this site.A base URL for building links and selecting a multi-site. Defaults to https://default.Run in simulated mode (show what would have happened).Define a configuration item value.
Options:
result-file
create-db
data-only
ordered-dump
gzip
extra
extra-dump
format
database
db-url
target
show-passwords
skip-tables-key
structure-tables-key
tables-key
skip-tables-list
structure-tables-list
tables-list
fields
field
help
quiet
verbose
version
ansi
no-ansi
no-interaction
yes
no
root
uri
simulate
define

]]>
+
+ + sql:query + Execute a query against a database.
An SQL query. Ignored if --file is provided.
Arguments:
query

Save to a file. The file should be relative to Drupal root.Path to a file containing the SQL to be run. Gzip files are accepted.Delete the --file after running it.Add custom options to the connect string (e.g. --extra=--skip-column-names)Enable replacement of braces in your query.The DB connection key if using multiple connections in settings.php.A Drupal 6 style database URL. For example mysql://root:pass@localhost:port/dbnameThe name of a target within the specified database connection.Show password on the CLI. Useful for debugging.Display help for the given command. When no command is given display help for the list commandDo not output any messageIncrease the verbosity of messages: 1 for normal output, 2 for more verbose output and 3 for debugDisplay this application versionForce (or disable --no-ansi) ANSI outputNegate the "--ansi" optionDo not ask any interactive questionAuto-accept the default for all user prompts. Equivalent to --no-interaction.Cancels at any confirmation prompt.The Drupal root for this site.A base URL for building links and selecting a multi-site. Defaults to https://default.Run in simulated mode (show what would have happened).Define a configuration item value.
Options:
result-file
file
file-delete
extra
db-prefix
database
db-url
target
show-passwords
help
quiet
verbose
version
ansi
no-ansi
no-interaction
yes
no
root
uri
simulate
define

]]>
+ query[=null] +
+ + sqlq + Execute a query against a database.
An SQL query. Ignored if --file is provided.
Arguments:
query

Save to a file. The file should be relative to Drupal root.Path to a file containing the SQL to be run. Gzip files are accepted.Delete the --file after running it.Add custom options to the connect string (e.g. --extra=--skip-column-names)Enable replacement of braces in your query.The DB connection key if using multiple connections in settings.php.A Drupal 6 style database URL. For example mysql://root:pass@localhost:port/dbnameThe name of a target within the specified database connection.Show password on the CLI. Useful for debugging.Display help for the given command. When no command is given display help for the list commandDo not output any messageIncrease the verbosity of messages: 1 for normal output, 2 for more verbose output and 3 for debugDisplay this application versionForce (or disable --no-ansi) ANSI outputNegate the "--ansi" optionDo not ask any interactive questionAuto-accept the default for all user prompts. Equivalent to --no-interaction.Cancels at any confirmation prompt.The Drupal root for this site.A base URL for building links and selecting a multi-site. Defaults to https://default.Run in simulated mode (show what would have happened).Define a configuration item value.
Options:
result-file
file
file-delete
extra
db-prefix
database
db-url
target
show-passwords
help
quiet
verbose
version
ansi
no-ansi
no-interaction
yes
no
root
uri
simulate
define

]]>
+ query[=null] +
+ + sql-query + Execute a query against a database.
An SQL query. Ignored if --file is provided.
Arguments:
query

Save to a file. The file should be relative to Drupal root.Path to a file containing the SQL to be run. Gzip files are accepted.Delete the --file after running it.Add custom options to the connect string (e.g. --extra=--skip-column-names)Enable replacement of braces in your query.The DB connection key if using multiple connections in settings.php.A Drupal 6 style database URL. For example mysql://root:pass@localhost:port/dbnameThe name of a target within the specified database connection.Show password on the CLI. Useful for debugging.Display help for the given command. When no command is given display help for the list commandDo not output any messageIncrease the verbosity of messages: 1 for normal output, 2 for more verbose output and 3 for debugDisplay this application versionForce (or disable --no-ansi) ANSI outputNegate the "--ansi" optionDo not ask any interactive questionAuto-accept the default for all user prompts. Equivalent to --no-interaction.Cancels at any confirmation prompt.The Drupal root for this site.A base URL for building links and selecting a multi-site. Defaults to https://default.Run in simulated mode (show what would have happened).Define a configuration item value.
Options:
result-file
file
file-delete
extra
db-prefix
database
db-url
target
show-passwords
help
quiet
verbose
version
ansi
no-ansi
no-interaction
yes
no
root
uri
simulate
define

]]>
+ query[=null] +
+ + sql:sync + Copy DB data from a source site to a target site. Transfers data via rsync.
A site-alias or site specification whose database you want to copy from.A site-alias or site specification whose database you want to replace.
Arguments:
source
target

Do not dump the sql database; always use an existing dump file.Do not rsync the database dump file from source to target.Where to run the rsync command; defaults to the local site. Can also be source or target.Create a new database before importing the database dump on the target machine.Account to use when creating a new database (e.g. root).Password for the db-su account.The path for storing the sql-dump on target machine.The path for retrieving the sql-dump on source machine.Add custom arguments/options to the dumping of the database (e.g. mysqldump command).A key in the $skip_tables array. @see [Site aliases](../site-aliases.md)A key in the $structure_tables array. @see [Site aliases](../site-aliases.md)A key in the $tables array.A comma-separated list of tables to exclude completely.A comma-separated list of tables to include for structure, but not data.A comma-separated list of tables to transfer.Display help for the given command. When no command is given display help for the list commandDo not output any messageIncrease the verbosity of messages: 1 for normal output, 2 for more verbose output and 3 for debugDisplay this application versionForce (or disable --no-ansi) ANSI outputNegate the "--ansi" optionDo not ask any interactive questionAuto-accept the default for all user prompts. Equivalent to --no-interaction.Cancels at any confirmation prompt.The Drupal root for this site.A base URL for building links and selecting a multi-site. Defaults to https://default.Run in simulated mode (show what would have happened).Define a configuration item value.
Options:
no-dump
no-sync
runner
create-db
db-su
db-su-pw
target-dump
source-dump
extra-dump
skip-tables-key
structure-tables-key
tables-key
skip-tables-list
structure-tables-list
tables-list
help
quiet
verbose
version
ansi
no-ansi
no-interaction
yes
no
root
uri
simulate
define

]]>
+ source target +
+ + sql-sync + Copy DB data from a source site to a target site. Transfers data via rsync.
A site-alias or site specification whose database you want to copy from.A site-alias or site specification whose database you want to replace.
Arguments:
source
target

Do not dump the sql database; always use an existing dump file.Do not rsync the database dump file from source to target.Where to run the rsync command; defaults to the local site. Can also be source or target.Create a new database before importing the database dump on the target machine.Account to use when creating a new database (e.g. root).Password for the db-su account.The path for storing the sql-dump on target machine.The path for retrieving the sql-dump on source machine.Add custom arguments/options to the dumping of the database (e.g. mysqldump command).A key in the $skip_tables array. @see [Site aliases](../site-aliases.md)A key in the $structure_tables array. @see [Site aliases](../site-aliases.md)A key in the $tables array.A comma-separated list of tables to exclude completely.A comma-separated list of tables to include for structure, but not data.A comma-separated list of tables to transfer.Display help for the given command. When no command is given display help for the list commandDo not output any messageIncrease the verbosity of messages: 1 for normal output, 2 for more verbose output and 3 for debugDisplay this application versionForce (or disable --no-ansi) ANSI outputNegate the "--ansi" optionDo not ask any interactive questionAuto-accept the default for all user prompts. Equivalent to --no-interaction.Cancels at any confirmation prompt.The Drupal root for this site.A base URL for building links and selecting a multi-site. Defaults to https://default.Run in simulated mode (show what would have happened).Define a configuration item value.
Options:
no-dump
no-sync
runner
create-db
db-su
db-su-pw
target-dump
source-dump
extra-dump
skip-tables-key
structure-tables-key
tables-key
skip-tables-list
structure-tables-list
tables-list
help
quiet
verbose
version
ansi
no-ansi
no-interaction
yes
no
root
uri
simulate
define

]]>
+ source target +
+ + updatedb:batch-process + Process operations in the specified batch set.
The batch id that will be processed.
Arguments:
batch_id

Format the result data. Available formats: csv,json,list,null,php,print-r,tsv,var_dump,var_export,xml,yamlLimit output to only the listed elements. Name top-level elements by key, e.g. "--fields=name,date", or use dot notation to select a nested element, e.g. "--fields=a.b.c as example".Select just one field, and force format to *string*.Display help for the given command. When no command is given display help for the list commandDo not output any messageIncrease the verbosity of messages: 1 for normal output, 2 for more verbose output and 3 for debugDisplay this application versionForce (or disable --no-ansi) ANSI outputNegate the "--ansi" optionDo not ask any interactive questionAuto-accept the default for all user prompts. Equivalent to --no-interaction.Cancels at any confirmation prompt.The Drupal root for this site.A base URL for building links and selecting a multi-site. Defaults to https://default.Run in simulated mode (show what would have happened).Define a configuration item value.
Options:
format
fields
field
help
quiet
verbose
version
ansi
no-ansi
no-interaction
yes
no
root
uri
simulate
define

]]>
+ batch_id +
+ + updatedb:status + List any pending database updates.

No arguments
Format the result data. Available formats: csv,json,list,null,php,print-r,sections,string,table,tsv,var_dump,var_export,xml,yamlAvailable fields: Module (module), Update ID (update_id), Description (description), Type (type)Select just one field, and force format to *string*.Display help for the given command. When no command is given display help for the list commandDo not output any messageIncrease the verbosity of messages: 1 for normal output, 2 for more verbose output and 3 for debugDisplay this application versionForce (or disable --no-ansi) ANSI outputNegate the "--ansi" optionDo not ask any interactive questionAuto-accept the default for all user prompts. Equivalent to --no-interaction.Cancels at any confirmation prompt.The Drupal root for this site.A base URL for building links and selecting a multi-site. Defaults to https://default.Run in simulated mode (show what would have happened).Define a configuration item value.
Options:
format
fields
field
help
quiet
verbose
version
ansi
no-ansi
no-interaction
yes
no
root
uri
simulate
define

]]>
+
+ + updbst + List any pending database updates.

No arguments
Format the result data. Available formats: csv,json,list,null,php,print-r,sections,string,table,tsv,var_dump,var_export,xml,yamlAvailable fields: Module (module), Update ID (update_id), Description (description), Type (type)Select just one field, and force format to *string*.Display help for the given command. When no command is given display help for the list commandDo not output any messageIncrease the verbosity of messages: 1 for normal output, 2 for more verbose output and 3 for debugDisplay this application versionForce (or disable --no-ansi) ANSI outputNegate the "--ansi" optionDo not ask any interactive questionAuto-accept the default for all user prompts. Equivalent to --no-interaction.Cancels at any confirmation prompt.The Drupal root for this site.A base URL for building links and selecting a multi-site. Defaults to https://default.Run in simulated mode (show what would have happened).Define a configuration item value.
Options:
format
fields
field
help
quiet
verbose
version
ansi
no-ansi
no-interaction
yes
no
root
uri
simulate
define

]]>
+
+ + updatedb-status + List any pending database updates.

No arguments
Format the result data. Available formats: csv,json,list,null,php,print-r,sections,string,table,tsv,var_dump,var_export,xml,yamlAvailable fields: Module (module), Update ID (update_id), Description (description), Type (type)Select just one field, and force format to *string*.Display help for the given command. When no command is given display help for the list commandDo not output any messageIncrease the verbosity of messages: 1 for normal output, 2 for more verbose output and 3 for debugDisplay this application versionForce (or disable --no-ansi) ANSI outputNegate the "--ansi" optionDo not ask any interactive questionAuto-accept the default for all user prompts. Equivalent to --no-interaction.Cancels at any confirmation prompt.The Drupal root for this site.A base URL for building links and selecting a multi-site. Defaults to https://default.Run in simulated mode (show what would have happened).Define a configuration item value.
Options:
format
fields
field
help
quiet
verbose
version
ansi
no-ansi
no-interaction
yes
no
root
uri
simulate
define

]]>
+
+ + user:login + Display a one time login link for user ID 1, or another user.
Optional path to redirect to after logging in.
Arguments:
path

A user name to log in as.A user ID to log in as.A user email to log in as.Open the URL in the default browser. Use --no-browser to avoid opening a browser.A custom port for redirecting to (e.g., when running within a Vagrant environment)Negate --browser option.Display help for the given command. When no command is given display help for the list commandDo not output any messageIncrease the verbosity of messages: 1 for normal output, 2 for more verbose output and 3 for debugDisplay this application versionForce (or disable --no-ansi) ANSI outputNegate the "--ansi" optionDo not ask any interactive questionAuto-accept the default for all user prompts. Equivalent to --no-interaction.Cancels at any confirmation prompt.The Drupal root for this site.A base URL for building links and selecting a multi-site. Defaults to https://default.Run in simulated mode (show what would have happened).Define a configuration item value.
Options:
name
uid
mail
browser
redirect-port
no-browser
help
quiet
verbose
version
ansi
no-ansi
no-interaction
yes
no
root
uri
simulate
define

]]>
+ path[=null] +
+ + uli + Display a one time login link for user ID 1, or another user.
Optional path to redirect to after logging in.
Arguments:
path

A user name to log in as.A user ID to log in as.A user email to log in as.Open the URL in the default browser. Use --no-browser to avoid opening a browser.A custom port for redirecting to (e.g., when running within a Vagrant environment)Negate --browser option.Display help for the given command. When no command is given display help for the list commandDo not output any messageIncrease the verbosity of messages: 1 for normal output, 2 for more verbose output and 3 for debugDisplay this application versionForce (or disable --no-ansi) ANSI outputNegate the "--ansi" optionDo not ask any interactive questionAuto-accept the default for all user prompts. Equivalent to --no-interaction.Cancels at any confirmation prompt.The Drupal root for this site.A base URL for building links and selecting a multi-site. Defaults to https://default.Run in simulated mode (show what would have happened).Define a configuration item value.
Options:
name
uid
mail
browser
redirect-port
no-browser
help
quiet
verbose
version
ansi
no-ansi
no-interaction
yes
no
root
uri
simulate
define

]]>
+ path[=null] +
+ + user-login + Display a one time login link for user ID 1, or another user.
Optional path to redirect to after logging in.
Arguments:
path

A user name to log in as.A user ID to log in as.A user email to log in as.Open the URL in the default browser. Use --no-browser to avoid opening a browser.A custom port for redirecting to (e.g., when running within a Vagrant environment)Negate --browser option.Display help for the given command. When no command is given display help for the list commandDo not output any messageIncrease the verbosity of messages: 1 for normal output, 2 for more verbose output and 3 for debugDisplay this application versionForce (or disable --no-ansi) ANSI outputNegate the "--ansi" optionDo not ask any interactive questionAuto-accept the default for all user prompts. Equivalent to --no-interaction.Cancels at any confirmation prompt.The Drupal root for this site.A base URL for building links and selecting a multi-site. Defaults to https://default.Run in simulated mode (show what would have happened).Define a configuration item value.
Options:
name
uid
mail
browser
redirect-port
no-browser
help
quiet
verbose
version
ansi
no-ansi
no-interaction
yes
no
root
uri
simulate
define

]]>
+ path[=null] +
+ + yaml:get:value + Get a value for a specific key in a YAML file.
The filename of the YAML fileThe key for the value to get, in dot notation.
Arguments:
filename
key

Display help for the given command. When no command is given display help for the list commandDo not output any messageIncrease the verbosity of messages: 1 for normal output, 2 for more verbose output and 3 for debugDisplay this application versionForce (or disable --no-ansi) ANSI outputNegate the "--ansi" optionDo not ask any interactive questionAuto-accept the default for all user prompts. Equivalent to --no-interaction.Cancels at any confirmation prompt.The Drupal root for this site.A base URL for building links and selecting a multi-site. Defaults to https://default.Run in simulated mode (show what would have happened).Define a configuration item value.
Options:
help
quiet
verbose
version
ansi
no-ansi
no-interaction
yes
no
root
uri
simulate
define

]]>
+ filename key +
+ + y:get:value + Get a value for a specific key in a YAML file.
The filename of the YAML fileThe key for the value to get, in dot notation.
Arguments:
filename
key

Display help for the given command. When no command is given display help for the list commandDo not output any messageIncrease the verbosity of messages: 1 for normal output, 2 for more verbose output and 3 for debugDisplay this application versionForce (or disable --no-ansi) ANSI outputNegate the "--ansi" optionDo not ask any interactive questionAuto-accept the default for all user prompts. Equivalent to --no-interaction.Cancels at any confirmation prompt.The Drupal root for this site.A base URL for building links and selecting a multi-site. Defaults to https://default.Run in simulated mode (show what would have happened).Define a configuration item value.
Options:
help
quiet
verbose
version
ansi
no-ansi
no-interaction
yes
no
root
uri
simulate
define

]]>
+ filename key +
+ + yaml:lint + Validates that a given YAML file has valid syntax.
The filename of the YAML file
Arguments:
filename

Display help for the given command. When no command is given display help for the list commandDo not output any messageIncrease the verbosity of messages: 1 for normal output, 2 for more verbose output and 3 for debugDisplay this application versionForce (or disable --no-ansi) ANSI outputNegate the "--ansi" optionDo not ask any interactive questionAuto-accept the default for all user prompts. Equivalent to --no-interaction.Cancels at any confirmation prompt.The Drupal root for this site.A base URL for building links and selecting a multi-site. Defaults to https://default.Run in simulated mode (show what would have happened).Define a configuration item value.
Options:
help
quiet
verbose
version
ansi
no-ansi
no-interaction
yes
no
root
uri
simulate
define

]]>
+ filename +
+ + y:lint + Validates that a given YAML file has valid syntax.
The filename of the YAML file
Arguments:
filename

Display help for the given command. When no command is given display help for the list commandDo not output any messageIncrease the verbosity of messages: 1 for normal output, 2 for more verbose output and 3 for debugDisplay this application versionForce (or disable --no-ansi) ANSI outputNegate the "--ansi" optionDo not ask any interactive questionAuto-accept the default for all user prompts. Equivalent to --no-interaction.Cancels at any confirmation prompt.The Drupal root for this site.A base URL for building links and selecting a multi-site. Defaults to https://default.Run in simulated mode (show what would have happened).Define a configuration item value.
Options:
help
quiet
verbose
version
ansi
no-ansi
no-interaction
yes
no
root
uri
simulate
define

]]>
+ filename +
+ + yaml:unset:key + Unset a specific key in a YAML file.
The filename of the YAML fileThe key to unset, in dot notation
Arguments:
filename
key

Display help for the given command. When no command is given display help for the list commandDo not output any messageIncrease the verbosity of messages: 1 for normal output, 2 for more verbose output and 3 for debugDisplay this application versionForce (or disable --no-ansi) ANSI outputNegate the "--ansi" optionDo not ask any interactive questionAuto-accept the default for all user prompts. Equivalent to --no-interaction.Cancels at any confirmation prompt.The Drupal root for this site.A base URL for building links and selecting a multi-site. Defaults to https://default.Run in simulated mode (show what would have happened).Define a configuration item value.
Options:
help
quiet
verbose
version
ansi
no-ansi
no-interaction
yes
no
root
uri
simulate
define

]]>
+ filename key +
+ + y:unset:key + Unset a specific key in a YAML file.
The filename of the YAML fileThe key to unset, in dot notation
Arguments:
filename
key

Display help for the given command. When no command is given display help for the list commandDo not output any messageIncrease the verbosity of messages: 1 for normal output, 2 for more verbose output and 3 for debugDisplay this application versionForce (or disable --no-ansi) ANSI outputNegate the "--ansi" optionDo not ask any interactive questionAuto-accept the default for all user prompts. Equivalent to --no-interaction.Cancels at any confirmation prompt.The Drupal root for this site.A base URL for building links and selecting a multi-site. Defaults to https://default.Run in simulated mode (show what would have happened).Define a configuration item value.
Options:
help
quiet
verbose
version
ansi
no-ansi
no-interaction
yes
no
root
uri
simulate
define

]]>
+ filename key +
+ + yaml:update:key + Update a specific key in a YAML file.
The filename of the YAML fileThe original key, in dot notationThe new key, in dot notation
Arguments:
filename
key
new-key

Display help for the given command. When no command is given display help for the list commandDo not output any messageIncrease the verbosity of messages: 1 for normal output, 2 for more verbose output and 3 for debugDisplay this application versionForce (or disable --no-ansi) ANSI outputNegate the "--ansi" optionDo not ask any interactive questionAuto-accept the default for all user prompts. Equivalent to --no-interaction.Cancels at any confirmation prompt.The Drupal root for this site.A base URL for building links and selecting a multi-site. Defaults to https://default.Run in simulated mode (show what would have happened).Define a configuration item value.
Options:
help
quiet
verbose
version
ansi
no-ansi
no-interaction
yes
no
root
uri
simulate
define

]]>
+ filename key new-key +
+ + y:update:key + Update a specific key in a YAML file.
The filename of the YAML fileThe original key, in dot notationThe new key, in dot notation
Arguments:
filename
key
new-key

Display help for the given command. When no command is given display help for the list commandDo not output any messageIncrease the verbosity of messages: 1 for normal output, 2 for more verbose output and 3 for debugDisplay this application versionForce (or disable --no-ansi) ANSI outputNegate the "--ansi" optionDo not ask any interactive questionAuto-accept the default for all user prompts. Equivalent to --no-interaction.Cancels at any confirmation prompt.The Drupal root for this site.A base URL for building links and selecting a multi-site. Defaults to https://default.Run in simulated mode (show what would have happened).Define a configuration item value.
Options:
help
quiet
verbose
version
ansi
no-ansi
no-interaction
yes
no
root
uri
simulate
define

]]>
+ filename key new-key +
+ + yaml:update:value + Update the value for a specific key in a YAML file.
The filename of the YAML fileThe key for the value to set, in dot notationThe new value
Arguments:
filename
key
value

Set the variable type for the value. Accepted types are int, integer, bool, boolean, str, and string.Display help for the given command. When no command is given display help for the list commandDo not output any messageIncrease the verbosity of messages: 1 for normal output, 2 for more verbose output and 3 for debugDisplay this application versionForce (or disable --no-ansi) ANSI outputNegate the "--ansi" optionDo not ask any interactive questionAuto-accept the default for all user prompts. Equivalent to --no-interaction.Cancels at any confirmation prompt.The Drupal root for this site.A base URL for building links and selecting a multi-site. Defaults to https://default.Run in simulated mode (show what would have happened).Define a configuration item value.
Options:
type
help
quiet
verbose
version
ansi
no-ansi
no-interaction
yes
no
root
uri
simulate
define

]]>
+ filename key value +
+ + y:update:value + Update the value for a specific key in a YAML file.
The filename of the YAML fileThe key for the value to set, in dot notationThe new value
Arguments:
filename
key
value

Set the variable type for the value. Accepted types are int, integer, bool, boolean, str, and string.Display help for the given command. When no command is given display help for the list commandDo not output any messageIncrease the verbosity of messages: 1 for normal output, 2 for more verbose output and 3 for debugDisplay this application versionForce (or disable --no-ansi) ANSI outputNegate the "--ansi" optionDo not ask any interactive questionAuto-accept the default for all user prompts. Equivalent to --no-interaction.Cancels at any confirmation prompt.The Drupal root for this site.A base URL for building links and selecting a multi-site. Defaults to https://default.Run in simulated mode (show what would have happened).Define a configuration item value.
Options:
type
help
quiet
verbose
version
ansi
no-ansi
no-interaction
yes
no
root
uri
simulate
define

]]>
+ filename key value +
+
+ diff --git a/apps/cms/.idea/commandlinetools/schemas/frameworkDescriptionVersion1.1.4.xsd b/apps/cms/.idea/commandlinetools/schemas/frameworkDescriptionVersion1.1.4.xsd new file mode 100644 index 000000000..f2efc6de1 --- /dev/null +++ b/apps/cms/.idea/commandlinetools/schemas/frameworkDescriptionVersion1.1.4.xsd @@ -0,0 +1,47 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/apps/cms/.idea/inspectionProfiles/Project_Default.xml b/apps/cms/.idea/inspectionProfiles/Project_Default.xml new file mode 100644 index 000000000..03d9549ea --- /dev/null +++ b/apps/cms/.idea/inspectionProfiles/Project_Default.xml @@ -0,0 +1,6 @@ + + + + \ No newline at end of file diff --git a/apps/cms/.idea/modules.xml b/apps/cms/.idea/modules.xml new file mode 100644 index 000000000..dc2033c9a --- /dev/null +++ b/apps/cms/.idea/modules.xml @@ -0,0 +1,8 @@ + + + + + + + + \ No newline at end of file diff --git a/apps/cms/.idea/php.xml b/apps/cms/.idea/php.xml new file mode 100644 index 000000000..67da51258 --- /dev/null +++ b/apps/cms/.idea/php.xml @@ -0,0 +1,264 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/apps/cms/.idea/vcs.xml b/apps/cms/.idea/vcs.xml new file mode 100644 index 000000000..b2bdec2d7 --- /dev/null +++ b/apps/cms/.idea/vcs.xml @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/apps/cms/.lagoon.env b/apps/cms/.lagoon.env index a2fa48dbc..3c8c78842 100644 --- a/apps/cms/.lagoon.env +++ b/apps/cms/.lagoon.env @@ -1,6 +1,6 @@ -PROJECT_NAME=example -PUBLISHER_URL="https://${LAGOON_GIT_BRANCH}-${PROJECT_NAME}.build.amazeelabs.dev" -NETLIFY_URL="https://${LAGOON_GIT_BRANCH}-${PROJECT_NAME}.amazeelabs.dev" +PUBLISHER_URL="https://build.${LAGOON_ENVIRONMENT}.${LAGOON_PROJECT}.ch4.amazee.io" +NETLIFY_URL="https://build.${LAGOON_ENVIRONMENT}.${LAGOON_PROJECT}.ch4.amazee.io" +PREVIEW_URL="https://preview.${LAGOON_ENVIRONMENT}.${LAGOON_PROJECT}.ch4.amazee.io" # Used to set the original client secret. PUBLISHER_OAUTH2_CLIENT_SECRET=REPLACE_ME diff --git a/apps/cms/.lagoon.env.prod b/apps/cms/.lagoon.env.prod new file mode 100644 index 000000000..3e820b07e --- /dev/null +++ b/apps/cms/.lagoon.env.prod @@ -0,0 +1,7 @@ +PROJECT_NAME=example +PUBLISHER_URL="https://example.build.amazeelabs.dev" +NETLIFY_URL="https://example.amazeelabs.dev" +PREVIEW_URL="https://example.preview.amazeelabs.dev" + +# Used to set the original client secret. +PUBLISHER_OAUTH2_CLIENT_SECRET=REPLACE_ME diff --git a/apps/cms/.lagoon.env.stage b/apps/cms/.lagoon.env.stage new file mode 100644 index 000000000..0309eb662 --- /dev/null +++ b/apps/cms/.lagoon.env.stage @@ -0,0 +1,7 @@ +PROJECT_NAME=example +PUBLISHER_URL="https://${LAGOON_GIT_BRANCH}-${PROJECT_NAME}.build.amazeelabs.dev" +NETLIFY_URL="https://${LAGOON_GIT_BRANCH}-${PROJECT_NAME}.amazeelabs.dev" +PREVIEW_URL="https://${LAGOON_GIT_BRANCH}-${PROJECT_NAME}.preview.amazeelabs.dev" + +# Used to set the original client secret. +PUBLISHER_OAUTH2_CLIENT_SECRET=REPLACE_ME diff --git a/apps/cms/composer.json b/apps/cms/composer.json index d7ca377fd..bb6feeb43 100644 --- a/apps/cms/composer.json +++ b/apps/cms/composer.json @@ -35,6 +35,7 @@ "amazeelabs/proxy-graphql": "^1.1.7", "amazeelabs/proxy-gutenberg": "^1.3", "amazeelabs/silverback-cli": "^2.9.4", + "amazeelabs/silverback_autosave": "^1.1", "amazeelabs/silverback_campaign_urls": "^1.0.5", "amazeelabs/silverback_cloudinary": "^1.3.0", "amazeelabs/silverback_external_preview": "^2.0.3", @@ -73,7 +74,7 @@ "drupal/stage_file_proxy": "^2.0.2", "drupal/userprotect": "^1.2", "drupal/webform": "^6.1.5", - "drush/drush": "^12", + "drush/drush": "^12.5", "enyo/dropzone": "^5.7.1" }, "conflict": { @@ -96,6 +97,9 @@ "patches": { "drupal/userprotect": { "Fix site install": "https://www.drupal.org/files/issues/2023-07-28/3349663-8.patch" + }, + "amazeelabs/silverback_gatsby": { + "Autosave preview": "./patches/fetch-entity.patch" } }, "patchLevel": { @@ -152,6 +156,7 @@ }, "require-dev": { "drupal/core-dev": "^10", + "drupal/devel": "^5.2", "phpspec/prophecy-phpunit": "^2.0.2" } } diff --git a/apps/cms/composer.lock b/apps/cms/composer.lock index 07ca8aaa5..6aa58607b 100644 --- a/apps/cms/composer.lock +++ b/apps/cms/composer.lock @@ -4,7 +4,7 @@ "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies", "This file is @generated automatically" ], - "content-hash": "bee5aff7b7d7fdebb87c36db5dfc343a", + "content-hash": "f2375207790855cc777235f699c7c2b9", "packages": [ { "name": "amazeeio/drupal_integrations", @@ -343,6 +343,32 @@ }, "time": "2024-01-03T06:30:01+00:00" }, + { + "name": "amazeelabs/silverback_autosave", + "version": "1.2.0", + "source": { + "type": "git", + "url": "https://github.com/AmazeeLabs/silverback_autosave.git", + "reference": "8208ddba6d5da916bf5649b7e0e53efdf491bb7a" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/AmazeeLabs/silverback_autosave/zipball/8208ddba6d5da916bf5649b7e0e53efdf491bb7a", + "reference": "8208ddba6d5da916bf5649b7e0e53efdf491bb7a", + "shasum": "" + }, + "type": "drupal-module", + "notification-url": "https://packagist.org/downloads/", + "license": [ + "GPL-2.0-or-later" + ], + "description": "Adds autosave feature on forms.", + "support": { + "issues": "https://github.com/AmazeeLabs/silverback_autosave/issues", + "source": "https://github.com/AmazeeLabs/silverback_autosave/tree/1.2.0" + }, + "time": "2024-04-25T13:14:00+00:00" + }, { "name": "amazeelabs/silverback_campaign_urls", "version": "1.0.5", @@ -495,16 +521,16 @@ }, { "name": "amazeelabs/silverback_gutenberg", - "version": "2.5.12", + "version": "2.5.15", "source": { "type": "git", "url": "https://github.com/AmazeeLabs/silverback_gutenberg.git", - "reference": "ccd955f455a6cd55ee8ce3063876e0d707b816a0" + "reference": "413248bb07ca02405bf84f01dfd55b86f121c97c" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/AmazeeLabs/silverback_gutenberg/zipball/ccd955f455a6cd55ee8ce3063876e0d707b816a0", - "reference": "ccd955f455a6cd55ee8ce3063876e0d707b816a0", + "url": "https://api.github.com/repos/AmazeeLabs/silverback_gutenberg/zipball/413248bb07ca02405bf84f01dfd55b86f121c97c", + "reference": "413248bb07ca02405bf84f01dfd55b86f121c97c", "shasum": "" }, "require": { @@ -519,9 +545,9 @@ "homepage": "https://github.com/AmazeeLabs/silverback-mono/tree/development/packages/composer/amazeelabs/silverback_gutenberg#readme", "support": { "issues": "https://github.com/AmazeeLabs/silverback_gutenberg/issues", - "source": "https://github.com/AmazeeLabs/silverback_gutenberg/tree/2.5.12" + "source": "https://github.com/AmazeeLabs/silverback_gutenberg/tree/2.5.15" }, - "time": "2024-02-20T11:44:25+00:00" + "time": "2024-04-18T06:58:24+00:00" }, { "name": "amazeelabs/silverback_iframe", @@ -2371,16 +2397,16 @@ }, { "name": "drupal/core", - "version": "10.2.3", + "version": "10.2.5", "source": { "type": "git", "url": "https://github.com/drupal/core.git", - "reference": "cc8c7952f7013795b735f5c15290e76937163bb7" + "reference": "dddd242b74f40df892a7f16a48245c3b76d9b003" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/drupal/core/zipball/cc8c7952f7013795b735f5c15290e76937163bb7", - "reference": "cc8c7952f7013795b735f5c15290e76937163bb7", + "url": "https://api.github.com/repos/drupal/core/zipball/dddd242b74f40df892a7f16a48245c3b76d9b003", + "reference": "dddd242b74f40df892a7f16a48245c3b76d9b003", "shasum": "" }, "require": { @@ -2528,13 +2554,13 @@ ], "description": "Drupal is an open source content management platform powering millions of websites and applications.", "support": { - "source": "https://github.com/drupal/core/tree/10.2.3" + "source": "https://github.com/drupal/core/tree/10.2.5" }, - "time": "2024-02-07T22:44:48+00:00" + "time": "2024-04-03T07:19:20+00:00" }, { "name": "drupal/core-composer-scaffold", - "version": "10.2.3", + "version": "10.2.5", "source": { "type": "git", "url": "https://github.com/drupal/core-composer-scaffold.git", @@ -2578,22 +2604,22 @@ "drupal" ], "support": { - "source": "https://github.com/drupal/core-composer-scaffold/tree/10.2.3" + "source": "https://github.com/drupal/core-composer-scaffold/tree/10.2.5" }, "time": "2024-01-26T14:59:30+00:00" }, { "name": "drupal/core-recommended", - "version": "10.2.3", + "version": "10.2.5", "source": { "type": "git", "url": "https://github.com/drupal/core-recommended.git", - "reference": "ee5d148455ca5792108a1fd007ae162ea2ffe859" + "reference": "bd7fe9e734a82762814d9c31255cd362d9c044f1" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/drupal/core-recommended/zipball/ee5d148455ca5792108a1fd007ae162ea2ffe859", - "reference": "ee5d148455ca5792108a1fd007ae162ea2ffe859", + "url": "https://api.github.com/repos/drupal/core-recommended/zipball/bd7fe9e734a82762814d9c31255cd362d9c044f1", + "reference": "bd7fe9e734a82762814d9c31255cd362d9c044f1", "shasum": "" }, "require": { @@ -2602,7 +2628,7 @@ "doctrine/annotations": "~1.14.3", "doctrine/deprecations": "~1.1.2", "doctrine/lexer": "~2.1.0", - "drupal/core": "10.2.3", + "drupal/core": "10.2.5", "egulias/email-validator": "~4.0.2", "guzzlehttp/guzzle": "~7.8.1", "guzzlehttp/promises": "~2.0.2", @@ -2663,9 +2689,9 @@ ], "description": "Core and its dependencies with known-compatible minor versions. Require this project INSTEAD OF drupal/core.", "support": { - "source": "https://github.com/drupal/core-recommended/tree/10.2.3" + "source": "https://github.com/drupal/core-recommended/tree/10.2.5" }, - "time": "2024-02-07T22:44:48+00:00" + "time": "2024-04-03T07:19:20+00:00" }, { "name": "drupal/ctools", @@ -4481,23 +4507,23 @@ }, { "name": "drush/drush", - "version": "12.4.3", + "version": "12.5.1", "source": { "type": "git", "url": "https://github.com/drush-ops/drush.git", - "reference": "8245acede57ecc62a90aa0f19ff3b29e5f11f971" + "reference": "71fcea30a22e7336e17be18bb5945400b2c63fad" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/drush-ops/drush/zipball/8245acede57ecc62a90aa0f19ff3b29e5f11f971", - "reference": "8245acede57ecc62a90aa0f19ff3b29e5f11f971", + "url": "https://api.github.com/repos/drush-ops/drush/zipball/71fcea30a22e7336e17be18bb5945400b2c63fad", + "reference": "71fcea30a22e7336e17be18bb5945400b2c63fad", "shasum": "" }, "require": { "chi-teck/drupal-code-generator": "^3.0", "composer-runtime-api": "^2.2", "composer/semver": "^1.4 || ^3", - "consolidation/annotated-command": "^4.9.1", + "consolidation/annotated-command": "^4.9.2", "consolidation/config": "^2.1.2", "consolidation/filter-via-dot-access-data": "^2.0.2", "consolidation/output-formatters": "^4.3.2", @@ -4613,7 +4639,7 @@ "issues": "https://github.com/drush-ops/drush/issues", "security": "https://github.com/drush-ops/drush/security/advisories", "slack": "https://drupal.slack.com/messages/C62H9CWQM", - "source": "https://github.com/drush-ops/drush/tree/12.4.3" + "source": "https://github.com/drush-ops/drush/tree/12.5.1" }, "funding": [ { @@ -4621,7 +4647,7 @@ "type": "github" } ], - "time": "2023-11-16T22:57:24+00:00" + "time": "2024-03-20T15:03:27+00:00" }, { "name": "egulias/email-validator", @@ -11131,6 +11157,188 @@ }, "time": "2023-01-05T11:28:13+00:00" }, + { + "name": "doctrine/common", + "version": "3.4.3", + "source": { + "type": "git", + "url": "https://github.com/doctrine/common.git", + "reference": "8b5e5650391f851ed58910b3e3d48a71062eeced" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/doctrine/common/zipball/8b5e5650391f851ed58910b3e3d48a71062eeced", + "reference": "8b5e5650391f851ed58910b3e3d48a71062eeced", + "shasum": "" + }, + "require": { + "doctrine/persistence": "^2.0 || ^3.0", + "php": "^7.1 || ^8.0" + }, + "require-dev": { + "doctrine/coding-standard": "^9.0 || ^10.0", + "doctrine/collections": "^1", + "phpstan/phpstan": "^1.4.1", + "phpstan/phpstan-phpunit": "^1", + "phpunit/phpunit": "^7.5.20 || ^8.5 || ^9.0", + "squizlabs/php_codesniffer": "^3.0", + "symfony/phpunit-bridge": "^6.1", + "vimeo/psalm": "^4.4" + }, + "type": "library", + "autoload": { + "psr-4": { + "Doctrine\\Common\\": "src" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Guilherme Blanco", + "email": "guilhermeblanco@gmail.com" + }, + { + "name": "Roman Borschel", + "email": "roman@code-factory.org" + }, + { + "name": "Benjamin Eberlei", + "email": "kontakt@beberlei.de" + }, + { + "name": "Jonathan Wage", + "email": "jonwage@gmail.com" + }, + { + "name": "Johannes Schmitt", + "email": "schmittjoh@gmail.com" + }, + { + "name": "Marco Pivetta", + "email": "ocramius@gmail.com" + } + ], + "description": "PHP Doctrine Common project is a library that provides additional functionality that other Doctrine projects depend on such as better reflection support, proxies and much more.", + "homepage": "https://www.doctrine-project.org/projects/common.html", + "keywords": [ + "common", + "doctrine", + "php" + ], + "support": { + "issues": "https://github.com/doctrine/common/issues", + "source": "https://github.com/doctrine/common/tree/3.4.3" + }, + "funding": [ + { + "url": "https://www.doctrine-project.org/sponsorship.html", + "type": "custom" + }, + { + "url": "https://www.patreon.com/phpdoctrine", + "type": "patreon" + }, + { + "url": "https://tidelift.com/funding/github/packagist/doctrine%2Fcommon", + "type": "tidelift" + } + ], + "time": "2022-10-09T11:47:59+00:00" + }, + { + "name": "doctrine/event-manager", + "version": "2.0.0", + "source": { + "type": "git", + "url": "https://github.com/doctrine/event-manager.git", + "reference": "750671534e0241a7c50ea5b43f67e23eb5c96f32" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/doctrine/event-manager/zipball/750671534e0241a7c50ea5b43f67e23eb5c96f32", + "reference": "750671534e0241a7c50ea5b43f67e23eb5c96f32", + "shasum": "" + }, + "require": { + "php": "^8.1" + }, + "conflict": { + "doctrine/common": "<2.9" + }, + "require-dev": { + "doctrine/coding-standard": "^10", + "phpstan/phpstan": "^1.8.8", + "phpunit/phpunit": "^9.5", + "vimeo/psalm": "^4.28" + }, + "type": "library", + "autoload": { + "psr-4": { + "Doctrine\\Common\\": "src" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Guilherme Blanco", + "email": "guilhermeblanco@gmail.com" + }, + { + "name": "Roman Borschel", + "email": "roman@code-factory.org" + }, + { + "name": "Benjamin Eberlei", + "email": "kontakt@beberlei.de" + }, + { + "name": "Jonathan Wage", + "email": "jonwage@gmail.com" + }, + { + "name": "Johannes Schmitt", + "email": "schmittjoh@gmail.com" + }, + { + "name": "Marco Pivetta", + "email": "ocramius@gmail.com" + } + ], + "description": "The Doctrine Event Manager is a simple PHP event system that was built to be used with the various Doctrine projects.", + "homepage": "https://www.doctrine-project.org/projects/event-manager.html", + "keywords": [ + "event", + "event dispatcher", + "event manager", + "event system", + "events" + ], + "support": { + "issues": "https://github.com/doctrine/event-manager/issues", + "source": "https://github.com/doctrine/event-manager/tree/2.0.0" + }, + "funding": [ + { + "url": "https://www.doctrine-project.org/sponsorship.html", + "type": "custom" + }, + { + "url": "https://www.patreon.com/phpdoctrine", + "type": "patreon" + }, + { + "url": "https://tidelift.com/funding/github/packagist/doctrine%2Fevent-manager", + "type": "tidelift" + } + ], + "time": "2022-10-12T20:59:15+00:00" + }, { "name": "doctrine/instantiator", "version": "2.0.0", @@ -11201,6 +11409,104 @@ ], "time": "2022-12-30T00:23:10+00:00" }, + { + "name": "doctrine/persistence", + "version": "3.3.2", + "source": { + "type": "git", + "url": "https://github.com/doctrine/persistence.git", + "reference": "477da35bd0255e032826f440b94b3e37f2d56f42" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/doctrine/persistence/zipball/477da35bd0255e032826f440b94b3e37f2d56f42", + "reference": "477da35bd0255e032826f440b94b3e37f2d56f42", + "shasum": "" + }, + "require": { + "doctrine/event-manager": "^1 || ^2", + "php": "^7.2 || ^8.0", + "psr/cache": "^1.0 || ^2.0 || ^3.0" + }, + "conflict": { + "doctrine/common": "<2.10" + }, + "require-dev": { + "composer/package-versions-deprecated": "^1.11", + "doctrine/coding-standard": "^11", + "doctrine/common": "^3.0", + "phpstan/phpstan": "1.9.4", + "phpstan/phpstan-phpunit": "^1", + "phpstan/phpstan-strict-rules": "^1.1", + "phpunit/phpunit": "^8.5 || ^9.5", + "symfony/cache": "^4.4 || ^5.4 || ^6.0", + "vimeo/psalm": "4.30.0 || 5.3.0" + }, + "type": "library", + "autoload": { + "psr-4": { + "Doctrine\\Persistence\\": "src/Persistence" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Guilherme Blanco", + "email": "guilhermeblanco@gmail.com" + }, + { + "name": "Roman Borschel", + "email": "roman@code-factory.org" + }, + { + "name": "Benjamin Eberlei", + "email": "kontakt@beberlei.de" + }, + { + "name": "Jonathan Wage", + "email": "jonwage@gmail.com" + }, + { + "name": "Johannes Schmitt", + "email": "schmittjoh@gmail.com" + }, + { + "name": "Marco Pivetta", + "email": "ocramius@gmail.com" + } + ], + "description": "The Doctrine Persistence project is a set of shared interfaces and functionality that the different Doctrine object mappers share.", + "homepage": "https://www.doctrine-project.org/projects/persistence.html", + "keywords": [ + "mapper", + "object", + "odm", + "orm", + "persistence" + ], + "support": { + "issues": "https://github.com/doctrine/persistence/issues", + "source": "https://github.com/doctrine/persistence/tree/3.3.2" + }, + "funding": [ + { + "url": "https://www.doctrine-project.org/sponsorship.html", + "type": "custom" + }, + { + "url": "https://www.patreon.com/phpdoctrine", + "type": "patreon" + }, + { + "url": "https://tidelift.com/funding/github/packagist/doctrine%2Fpersistence", + "type": "tidelift" + } + ], + "time": "2024-03-12T14:54:36+00:00" + }, { "name": "drupal/coder", "version": "8.3.23", @@ -11254,16 +11560,16 @@ }, { "name": "drupal/core-dev", - "version": "10.2.3", + "version": "10.2.5", "source": { "type": "git", "url": "https://github.com/drupal/core-dev.git", - "reference": "8c1bf854f2cf47d4f06918099ea866ce2471b2c6" + "reference": "71d714deff8c277b8ef2f331f3bddbba03274dc1" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/drupal/core-dev/zipball/8c1bf854f2cf47d4f06918099ea866ce2471b2c6", - "reference": "8c1bf854f2cf47d4f06918099ea866ce2471b2c6", + "url": "https://api.github.com/repos/drupal/core-dev/zipball/71d714deff8c277b8ef2f331f3bddbba03274dc1", + "reference": "71d714deff8c277b8ef2f331f3bddbba03274dc1", "shasum": "" }, "require": { @@ -11271,7 +11577,7 @@ "behat/mink-browserkit-driver": "^2.1", "behat/mink-selenium2-driver": "^1.4", "colinodell/psr-testlogger": "^1.2", - "composer/composer": "^2.6.4", + "composer/composer": "^2.7", "drupal/coder": "^8.3.10", "instaclick/php-webdriver": "^1.4.1", "justinrainbow/json-schema": "^5.2", @@ -11304,9 +11610,67 @@ ], "description": "require-dev dependencies from drupal/drupal; use in addition to drupal/core-recommended to run tests from drupal/core.", "support": { - "source": "https://github.com/drupal/core-dev/tree/10.2.3" + "source": "https://github.com/drupal/core-dev/tree/10.2.5" + }, + "time": "2024-02-14T18:07:20+00:00" + }, + { + "name": "drupal/devel", + "version": "5.2.0", + "source": { + "type": "git", + "url": "https://git.drupalcode.org/project/devel.git", + "reference": "5.2.0" + }, + "dist": { + "type": "zip", + "url": "https://ftp.drupal.org/files/projects/devel-5.2.0.zip", + "reference": "5.2.0", + "shasum": "9b7baa45a3caea3908643ef22882205ec2ed0da1" + }, + "require": { + "doctrine/common": "^2.7 || ^3.4", + "drupal/core": ">=10.0 <12.0.0-stable", + "php": ">=8.1", + "symfony/var-dumper": "^4 || ^5 || ^6" + }, + "conflict": { + "kint-php/kint": "<3" + }, + "require-dev": { + "drush/drush": "^12.5.1" }, - "time": "2023-12-12T22:01:45+00:00" + "suggest": { + "kint-php/kint": "Kint provides an informative display of arrays/objects. Useful for debugging and developing." + }, + "type": "drupal-module", + "extra": { + "drupal": { + "version": "5.2.0", + "datestamp": "1711280160", + "security-coverage": { + "status": "covered", + "message": "Covered by Drupal's security advisory policy" + } + } + }, + "notification-url": "https://packages.drupal.org/8/downloads", + "license": [ + "GPL-2.0-or-later" + ], + "authors": [ + { + "name": "moshe weitzman", + "homepage": "https://www.drupal.org/user/23" + } + ], + "description": "Various blocks, pages, and functions for developers.", + "homepage": "https://www.drupal.org/project/devel", + "support": { + "source": "https://gitlab.com/drupalspoons/devel", + "issues": "https://gitlab.com/drupalspoons/devel/-/issues", + "slack": "https://drupal.slack.com/archives/C012WAW1MH6" + } }, { "name": "google/protobuf", @@ -15451,5 +15815,8 @@ "php": "^8.2 <8.3" }, "platform-dev": [], + "platform-overrides": { + "php": "8.2" + }, "plugin-api-version": "2.6.0" } diff --git a/apps/cms/config/sync/core.entity_view_display.media.image.quote.yml b/apps/cms/config/sync/core.entity_view_display.media.image.quote.yml new file mode 100644 index 000000000..b88657103 --- /dev/null +++ b/apps/cms/config/sync/core.entity_view_display.media.image.quote.yml @@ -0,0 +1,33 @@ +uuid: 195a40ca-6da4-4e2e-bc2f-c9c1fc0385bb +langcode: en +status: true +dependencies: + config: + - core.entity_view_mode.media.quote + - field.field.media.image.field_media_image + - image.style.quote + - media.type.image + module: + - image +id: media.image.quote +targetEntityType: media +bundle: image +mode: quote +content: + field_media_image: + type: image + label: visually_hidden + settings: + image_link: '' + image_style: quote + image_loading: + attribute: lazy + third_party_settings: { } + weight: 0 + region: content +hidden: + created: true + langcode: true + name: true + thumbnail: true + uid: true diff --git a/apps/cms/config/sync/core.entity_view_mode.media.quote.yml b/apps/cms/config/sync/core.entity_view_mode.media.quote.yml new file mode 100644 index 000000000..51148e9b4 --- /dev/null +++ b/apps/cms/config/sync/core.entity_view_mode.media.quote.yml @@ -0,0 +1,11 @@ +uuid: f54c9109-a0ff-4a09-9772-748af96b8eb0 +langcode: en +status: true +dependencies: + module: + - media +id: media.quote +label: Quote +description: '' +targetEntityType: media +cache: true diff --git a/apps/cms/config/sync/core.extension.yml b/apps/cms/config/sync/core.extension.yml index 42ce257f4..c32cf22ef 100644 --- a/apps/cms/config/sync/core.extension.yml +++ b/apps/cms/config/sync/core.extension.yml @@ -59,6 +59,7 @@ module: role_delegation: 0 serialization: 0 shortcut: 0 + silverback_autosave: 0 silverback_campaign_urls: 0 silverback_cloudinary: 0 silverback_external_preview: 0 diff --git a/apps/cms/config/sync/gutenberg.settings.yml b/apps/cms/config/sync/gutenberg.settings.yml index e58422162..ed9ef9d7d 100644 --- a/apps/cms/config/sync/gutenberg.settings.yml +++ b/apps/cms/config/sync/gutenberg.settings.yml @@ -4,12 +4,12 @@ page_template_lock: all page_allowed_blocks: core/paragraph: core/paragraph core/list: core/list - core/quote: core/quote core/table: core/table core/all: 0 core/image: 0 core/heading: 0 core/gallery: 0 + core/quote: 0 core/audio: 0 core/button: 0 core/buttons: 0 @@ -75,6 +75,7 @@ page_allowed_drupal_blocks: drupalblock/all_core: 0 page_title_block: 0 drupalblock/all_forms: 0 + masquerade: 0 user_login_block: 0 drupalblock/all_lists_views_: 0 'views_block:content_recent-block_1': 0 @@ -91,3 +92,6 @@ page_allowed_drupal_blocks: system_branding_block: 0 node_syndicate_block: 0 drupalblock/all_user: 0 + drupalblock/all_webform: 0 + webform_block: 0 + webform_submission_limit_block: 0 diff --git a/apps/cms/config/sync/image.style.quote.yml b/apps/cms/config/sync/image.style.quote.yml new file mode 100644 index 000000000..b7a85ee89 --- /dev/null +++ b/apps/cms/config/sync/image.style.quote.yml @@ -0,0 +1,15 @@ +uuid: 983e88dc-78f8-463d-b088-026d7d96bcc0 +langcode: en +status: true +dependencies: { } +name: quote +label: 'Quote (24x24)' +effects: + 3ac18111-aeda-4cd7-aafc-5cd66d0cbf7e: + uuid: 3ac18111-aeda-4cd7-aafc-5cd66d0cbf7e + id: image_scale_and_crop + weight: 1 + data: + width: 24 + height: 24 + anchor: center-center diff --git a/apps/cms/config/sync/silverback_autosave.messages.yml b/apps/cms/config/sync/silverback_autosave.messages.yml new file mode 100644 index 000000000..4b81262fb --- /dev/null +++ b/apps/cms/config/sync/silverback_autosave.messages.yml @@ -0,0 +1,3 @@ +_core: + default_config_hash: In3MY-CuVp64RxCeU5X6rsEhR6jR4Si8OG6BX18DALg +entity_saved_in_background_alert_message: 'The content has been modified elsewhere. As a result, autosaving has been disabled and autosaved states for the current page have been deleted. Autosave will be reactivated after reloading the page.' diff --git a/apps/cms/config/sync/silverback_autosave.settings.yml b/apps/cms/config/sync/silverback_autosave.settings.yml new file mode 100644 index 000000000..c67f05571 --- /dev/null +++ b/apps/cms/config/sync/silverback_autosave.settings.yml @@ -0,0 +1,15 @@ +_core: + default_config_hash: HaTNbtQe6_A0WF-ZElHNWcv0VK_aqOj5lBEFhAgY85s +interval: 2000 +only_on_form_change: false +active_on: + content_entity_forms: true + config_entity_forms: false +notification: + active: true + message: 'Updating preview...' + delay: 1000 +allowed_content_entity_types: + node: + bundles: + page: page diff --git a/apps/cms/config/sync/system.performance.yml b/apps/cms/config/sync/system.performance.yml index d8dbe9a10..d33d50d5d 100644 --- a/apps/cms/config/sync/system.performance.yml +++ b/apps/cms/config/sync/system.performance.yml @@ -4,7 +4,7 @@ cache: page: max_age: 0 css: - preprocess: true + preprocess: false gzip: true fast_404: enabled: true diff --git a/apps/cms/gatsby-node.mjs b/apps/cms/gatsby-node.mjs index c5957f4c6..02e0027ff 100644 --- a/apps/cms/gatsby-node.mjs +++ b/apps/cms/gatsby-node.mjs @@ -48,7 +48,7 @@ export const createPages = async ({ actions }) => { // Additionally proxy themes and modules as they can have additional // non-aggregated assets. - ['themes', 'modules'].forEach((path) => { + ['themes', 'modules', 'core/assets'].forEach((path) => { actions.createRedirect({ fromPath: `/${path}/*`, toPath: `${process.env.GATSBY_DRUPAL_URL}/${path}/:splat`, diff --git a/apps/cms/lagoon.env.dev b/apps/cms/lagoon.env.dev new file mode 100644 index 000000000..0309eb662 --- /dev/null +++ b/apps/cms/lagoon.env.dev @@ -0,0 +1,7 @@ +PROJECT_NAME=example +PUBLISHER_URL="https://${LAGOON_GIT_BRANCH}-${PROJECT_NAME}.build.amazeelabs.dev" +NETLIFY_URL="https://${LAGOON_GIT_BRANCH}-${PROJECT_NAME}.amazeelabs.dev" +PREVIEW_URL="https://${LAGOON_GIT_BRANCH}-${PROJECT_NAME}.preview.amazeelabs.dev" + +# Used to set the original client secret. +PUBLISHER_OAUTH2_CLIENT_SECRET=REPLACE_ME diff --git a/apps/cms/package.json b/apps/cms/package.json index 40bcfda7c..97c65dafc 100644 --- a/apps/cms/package.json +++ b/apps/cms/package.json @@ -37,6 +37,7 @@ "@custom/gutenberg_blocks": "workspace:*", "@custom/schema": "workspace:*", "@custom/test_content": "workspace:*", - "@custom/ui": "workspace:*" + "@custom/ui": "workspace:*", + "@custom/preview": "workspace:*" } } diff --git a/apps/cms/patches/fetch-entity.patch b/apps/cms/patches/fetch-entity.patch new file mode 100644 index 000000000..b3a5aeaba --- /dev/null +++ b/apps/cms/patches/fetch-entity.patch @@ -0,0 +1,40 @@ +diff --git a/src/Plugin/GraphQL/DataProducer/FetchEntity.php b/src/Plugin/GraphQL/DataProducer/FetchEntity.php +index ffef6a8..7c84154 100644 +--- a/src/Plugin/GraphQL/DataProducer/FetchEntity.php ++++ b/src/Plugin/GraphQL/DataProducer/FetchEntity.php +@@ -250,6 +250,35 @@ class FetchEntity extends DataProducerPluginBase implements ContainerFactoryPlug + } + } + ++ // Autosave: get autosaved values. ++ if (\Drupal::service('module_handler')->moduleExists('silverback_autosave')) { ++ $context->mergeCacheMaxAge(0); ++ // @todo Add DI to both. ++ $service = \Drupal::service('silverback_autosave.entity_form_storage'); ++ /** ++ * Quick and dirty because this causes leaked metadata error. ++ * $entityForm = \Drupal::service('entity.form_builder')->getForm($entity, 'edit'); ++ * $form_id = $entityForm['form_id']['#value']; ++ */ ++ $form_id = "{$entity->getEntityTypeId()}_{$entity->bundle()}_edit_form"; ++ $autosaved_state = $service->getEntityAndFormState($form_id, $entity->getEntityTypeId(), $entity->id(), $entity->language()->getId(), \Drupal::currentUser()->id()); ++ /** @var \Drupal\Core\Entity\EntityInterface $autosaved_entity */ ++ $autosaved_entity = $autosaved_state['entity'] ?? NULL; ++ /** @var \Drupal\Core\Form\FormStateInterface $autosaved_form_state */ ++ $autosaved_form_state = $autosaved_state['form_state'] ?? []; ++ if ($autosaved_entity && !empty($autosaved_form_state)) { ++ $current_user_input = $autosaved_form_state->getUserInput(); ++ foreach ($autosaved_entity->getFields() as $name => $field) { ++ if (in_array($name, ['title', 'body']) || str_starts_with($name, 'field_')) { ++ if (isset($current_user_input[$name])) { ++ $field->setValue($current_user_input[$name]); ++ } ++ } ++ } ++ return $autosaved_entity; ++ } ++ } ++ + return $entity; + }); + } diff --git a/apps/cms/scaffold/settings.php.append.txt b/apps/cms/scaffold/settings.php.append.txt index 7627baaa7..00575f853 100644 --- a/apps/cms/scaffold/settings.php.append.txt +++ b/apps/cms/scaffold/settings.php.append.txt @@ -5,9 +5,10 @@ $settings['file_private_path'] = $app_root . '/sites/default/files/private'; $publisherUrl = getenv('PUBLISHER_URL') ?: 'http://127.0.0.1:8000'; $netlifyUrl = getenv('NETLIFY_URL') ?: 'http://127.0.0.1:8000'; +$previewUrl = getenv('PREVIEW_URL') ?: 'http://127.0.0.1:8001'; $config['silverback_external_preview.settings'] = [ - 'preview_host' => $netlifyUrl, + 'preview_host' => $previewUrl, 'live_host' => $netlifyUrl, ]; diff --git a/apps/preview/.eslintrc.json b/apps/preview/.eslintrc.json new file mode 100644 index 000000000..4039eeeb2 --- /dev/null +++ b/apps/preview/.eslintrc.json @@ -0,0 +1,25 @@ +{ + "$schema": "https://json.schemastore.org/eslintrc.json", + "extends": ["plugin:storybook/recommended", "plugin:tailwindcss/recommended"], + "plugins": ["tailwindcss", "formatjs"], + "rules": { + "react/jsx-no-literals": [ + "warn", + { + "noStrings": true, + "ignoreProps": true, + "noAttributeStrings": false + } + ], + "formatjs/enforce-default-message": "error", + "formatjs/enforce-id": [ + "error", + { + "idInterpolationPattern": "[sha512:contenthash:base64:6]" + } + ], + "formatjs/enforce-placeholders": "error", + "formatjs/no-camel-case": "error", + "tailwindcss/classnames-order": [0] + } +} diff --git a/apps/preview/.gitignore b/apps/preview/.gitignore new file mode 100644 index 000000000..bd98e77ad --- /dev/null +++ b/apps/preview/.gitignore @@ -0,0 +1,25 @@ +# Logs +logs +*.log +npm-debug.log* +yarn-debug.log* +yarn-error.log* +pnpm-debug.log* +lerna-debug.log* + +node_modules +dist +build +dist-ssr +*.local + +# Editor directories and files +.vscode/* +!.vscode/extensions.json +.idea +.DS_Store +*.suo +*.ntvs* +*.njsproj +*.sln +*.sw? diff --git a/apps/preview/.lagoon.env b/apps/preview/.lagoon.env new file mode 100644 index 000000000..752e3109d --- /dev/null +++ b/apps/preview/.lagoon.env @@ -0,0 +1 @@ +DRUPAL_URL="https://nginx.${LAGOON_ENVIRONMENT}.${LAGOON_PROJECT}.ch4.amazee.io" diff --git a/apps/preview/.lagoon.env.dev b/apps/preview/.lagoon.env.dev new file mode 100644 index 000000000..2c80dc9c1 --- /dev/null +++ b/apps/preview/.lagoon.env.dev @@ -0,0 +1 @@ +DRUPAL_URL="https://${LAGOON_GIT_BRANCH}-${PROJECT_NAME}.cms.amazeelabs.dev" diff --git a/apps/preview/.lagoon.env.prod b/apps/preview/.lagoon.env.prod new file mode 100644 index 000000000..364cf1a4d --- /dev/null +++ b/apps/preview/.lagoon.env.prod @@ -0,0 +1 @@ +DRUPAL_URL="https://example.cms.amazeelabs.dev" diff --git a/apps/preview/.lagoon.env.stage b/apps/preview/.lagoon.env.stage new file mode 100644 index 000000000..2c80dc9c1 --- /dev/null +++ b/apps/preview/.lagoon.env.stage @@ -0,0 +1 @@ +DRUPAL_URL="https://${LAGOON_GIT_BRANCH}-${PROJECT_NAME}.cms.amazeelabs.dev" diff --git a/apps/preview/.swcrc b/apps/preview/.swcrc new file mode 100644 index 000000000..fb32da49a --- /dev/null +++ b/apps/preview/.swcrc @@ -0,0 +1,11 @@ +{ + "$schema": "https://json.schemastore.org/swcrc", + "jsc": { + "parser": { + "syntax": "typescript" + } + }, + "module": { + "type": "es6" + } +} diff --git a/apps/preview/index.html b/apps/preview/index.html new file mode 100644 index 000000000..86c766277 --- /dev/null +++ b/apps/preview/index.html @@ -0,0 +1,14 @@ + + + + + + Preview + + + + +
+ + + diff --git a/apps/preview/package.json b/apps/preview/package.json new file mode 100644 index 000000000..e5ec902c5 --- /dev/null +++ b/apps/preview/package.json @@ -0,0 +1,41 @@ +{ + "name": "@custom/preview", + "private": true, + "version": "0.0.0", + "type": "module", + "scripts": { + "test:static": "tsc --noEmit && eslint \"**/*.{ts,tsx,js,jsx}\" --ignore-path=\"./.gitignore\"", + "dev:app": "vite", + "dev:server": "tsx watch server/index.ts", + "prep:app": "vite build", + "prep:server": "swc ./server -d ./build", + "start": "node build/index.js" + }, + "dependencies": { + "@custom/schema": "workspace:*", + "@custom/ui": "workspace:*", + "express": "^4.19.2", + "express-ws": "^5.0.2", + "react": "^18.2.0", + "react-dom": "^18.2.0", + "rxjs": "^7.8.1" + }, + "devDependencies": { + "@swc/cli": "^0.1.63", + "@swc/core": "^1.3.102", + "@types/express": "^4.17.21", + "@types/express-ws": "^3.0.4", + "@types/node": "^20.11.17", + "@types/react": "^18.2.46", + "@types/react-dom": "^18.2.18", + "@typescript-eslint/eslint-plugin": "^7.2.0", + "@typescript-eslint/parser": "^7.2.0", + "@vitejs/plugin-react-swc": "^3.5.0", + "eslint": "^8.57.0", + "eslint-plugin-react-hooks": "^4.6.0", + "eslint-plugin-react-refresh": "^0.4.6", + "tsx": "^4.7.1", + "typescript": "^5.2.2", + "vite": "^5.2.0" + } +} diff --git a/apps/preview/server/index.ts b/apps/preview/server/index.ts new file mode 100644 index 000000000..333df04a0 --- /dev/null +++ b/apps/preview/server/index.ts @@ -0,0 +1,45 @@ +import express from 'express'; +import expressWs from 'express-ws'; +import { Subject } from 'rxjs'; + +const expressServer = express(); +const expressWsInstance = expressWs(expressServer); +const { app } = expressWsInstance; + +const updates$ = new Subject(); +app.use(express.json()); + +app.get('/endpoint.js', (_, res) => { + res.send( + `window.GRAPHQL_ENDPOINT = "${ + process.env.DRUPAL_URL || 'http://127.0.0.1:8888' + }/graphql";`, + ); +}); + +// TODO: Protect endpoints and preview with Drupal authentication. +app.post('/__preview', (req, res) => { + updates$.next(req.body || {}); + res.json(true); +}); + +app.ws('/__preview', (ws) => { + // TODO: Separate updates per user session. + const sub = updates$.subscribe((payload) => { + ws.send(JSON.stringify(payload)); + }); + ws.on('close', sub.unsubscribe); +}); + +app.get('/__preview/*', (req, _, next) => { + req.url = '/'; + next(); +}); + +app.use(express.static('./dist')); + +const isLagoon = !!process.env.LAGOON; +const port = isLagoon ? 3000 : 8001; +console.log(`Server is running on port ${port}`); + +app.listen({ port, host: '0.0.0.0' }); diff --git a/apps/preview/src/App.tsx b/apps/preview/src/App.tsx new file mode 100644 index 000000000..981244d51 --- /dev/null +++ b/apps/preview/src/App.tsx @@ -0,0 +1,41 @@ +import { OperationExecutor } from '@custom/schema'; +import { Frame } from '@custom/ui/routes/Frame'; +import { Preview, usePreviewRefresh } from '@custom/ui/routes/Preview'; +import { useEffect } from 'react'; +import { retry } from 'rxjs'; +import { webSocket } from 'rxjs/webSocket'; + +import { drupalExecutor } from './drupal-executor'; + +declare global { + interface Window { + GRAPHQL_ENDPOINT: string; + } +} + +const updates$ = webSocket({ + url: `${window.location.origin.replace('http', 'ws')}/__preview`, +}).pipe( + retry({ + delay: 3000, + }), +); + +function App() { + const refresh = usePreviewRefresh(); + useEffect(() => { + const sub = updates$.subscribe(refresh); + return sub.unsubscribe; + }, [refresh]); + return ( + + + + + + ); +} + +export default App; diff --git a/apps/preview/src/drupal-executor.ts b/apps/preview/src/drupal-executor.ts new file mode 100644 index 000000000..cfe9a009c --- /dev/null +++ b/apps/preview/src/drupal-executor.ts @@ -0,0 +1,59 @@ +import { AnyOperationId, OperationVariables } from '@custom/schema'; + +/** + * Create an executor that operates against a Drupal endpoint. + */ +export function drupalExecutor(endpoint: string, forward: boolean = true) { + return async function ( + id: OperationId, + variables?: OperationVariables, + ) { + const url = new URL(endpoint, window.location.origin); + const isMutation = id.includes('Mutation:'); + if (isMutation) { + const { data, errors } = await ( + await fetch(url, { + method: 'POST', + credentials: 'include', + body: JSON.stringify({ + queryId: id, + variables: variables || {}, + }), + headers: forward + ? { + 'SLB-Forwarded-Proto': window.location.protocol.slice(0, -1), + 'SLB-Forwarded-Host': window.location.hostname, + 'SLB-Forwarded-Port': window.location.port, + 'Content-Type': 'application/json', + } + : { + 'Content-Type': 'application/json', + }, + }) + ).json(); + if (errors) { + throw errors; + } + return data; + } else { + url.searchParams.set('queryId', id); + url.searchParams.set('variables', JSON.stringify(variables || {})); + const { data, errors } = await ( + await fetch(url, { + credentials: 'include', + headers: forward + ? { + 'SLB-Forwarded-Proto': window.location.protocol.slice(0, -1), + 'SLB-Forwarded-Host': window.location.hostname, + 'SLB-Forwarded-Port': window.location.port, + } + : {}, + }) + ).json(); + if (errors) { + throw errors; + } + return data; + } + }; +} diff --git a/apps/preview/src/main.tsx b/apps/preview/src/main.tsx new file mode 100644 index 000000000..407d3ea7e --- /dev/null +++ b/apps/preview/src/main.tsx @@ -0,0 +1,12 @@ +import '@custom/ui/styles.css'; + +import React from 'react'; +import ReactDOM from 'react-dom/client'; + +import App from './App.tsx'; + +ReactDOM.createRoot(document.getElementById('root')!).render( + + + , +); diff --git a/apps/preview/src/vite-env.d.ts b/apps/preview/src/vite-env.d.ts new file mode 100644 index 000000000..11f02fe2a --- /dev/null +++ b/apps/preview/src/vite-env.d.ts @@ -0,0 +1 @@ +/// diff --git a/apps/preview/tsconfig.json b/apps/preview/tsconfig.json new file mode 100644 index 000000000..a7fc6fbf2 --- /dev/null +++ b/apps/preview/tsconfig.json @@ -0,0 +1,25 @@ +{ + "compilerOptions": { + "target": "ES2020", + "useDefineForClassFields": true, + "lib": ["ES2020", "DOM", "DOM.Iterable"], + "module": "ESNext", + "skipLibCheck": true, + + /* Bundler mode */ + "moduleResolution": "bundler", + "allowImportingTsExtensions": true, + "resolveJsonModule": true, + "isolatedModules": true, + "noEmit": true, + "jsx": "react-jsx", + + /* Linting */ + "strict": true, + "noUnusedLocals": true, + "noUnusedParameters": true, + "noFallthroughCasesInSwitch": true + }, + "include": ["src"], + "references": [{ "path": "./tsconfig.node.json" }] +} diff --git a/apps/preview/tsconfig.node.json b/apps/preview/tsconfig.node.json new file mode 100644 index 000000000..1a555ac37 --- /dev/null +++ b/apps/preview/tsconfig.node.json @@ -0,0 +1,12 @@ +{ + "compilerOptions": { + "composite": true, + "skipLibCheck": true, + "module": "ESNext", + "moduleResolution": "bundler", + "allowSyntheticDefaultImports": true, + "strict": true, + "types": ["node"] + }, + "include": ["vite.config.ts"] +} diff --git a/apps/preview/turbo.json b/apps/preview/turbo.json new file mode 100644 index 000000000..1b2fdd568 --- /dev/null +++ b/apps/preview/turbo.json @@ -0,0 +1,20 @@ +{ + "extends": ["//"], + "pipeline": { + "prep": { + "dependsOn": ["prep:app", "prep:server"] + }, + "prep:app": { + "dependsOn": ["^prep"], + "inputs": ["src/**", "index.html", "vite.config.ts"], + "outputs": ["dist/**"] + }, + "prep:server": { + "inputs": ["server/**"], + "outputs": ["build/**"] + }, + "test:static": { + "inputs": ["src/**", "!src/gatsby-fragments.js"] + } + } +} diff --git a/apps/preview/vite.config.ts b/apps/preview/vite.config.ts new file mode 100644 index 000000000..e1b1b7638 --- /dev/null +++ b/apps/preview/vite.config.ts @@ -0,0 +1,7 @@ +import react from '@vitejs/plugin-react-swc'; +import { defineConfig } from 'vite'; + +// https://vitejs.dev/config/ +export default defineConfig({ + plugins: [react()], +}); diff --git a/apps/website/.lagoon.env b/apps/website/.lagoon.env index 89379ad89..1f5bcd4b8 100644 --- a/apps/website/.lagoon.env +++ b/apps/website/.lagoon.env @@ -1,7 +1,6 @@ -PROJECT_NAME=example DRUPAL_INTERNAL_URL="http://nginx:8080" -DRUPAL_EXTERNAL_URL="https://${LAGOON_GIT_BRANCH}-${PROJECT_NAME}.cms.amazeelabs.dev" -NETLIFY_URL="https://${LAGOON_GIT_BRANCH}-${PROJECT_NAME}.amazeelabs.dev" +DRUPAL_EXTERNAL_URL="https://nginx.${LAGOON_ENVIRONMENT}.${LAGOON_PROJECT}.ch4.amazee.io" +NETLIFY_URL="https://build.${LAGOON_ENVIRONMENT}.${LAGOON_PROJECT}.ch4.amazee.io" # ----------------------------------------------- # Publisher authentication with Drupal (OAuth2). diff --git a/apps/website/.lagoon.env.dev b/apps/website/.lagoon.env.dev new file mode 100644 index 000000000..89379ad89 --- /dev/null +++ b/apps/website/.lagoon.env.dev @@ -0,0 +1,28 @@ +PROJECT_NAME=example +DRUPAL_INTERNAL_URL="http://nginx:8080" +DRUPAL_EXTERNAL_URL="https://${LAGOON_GIT_BRANCH}-${PROJECT_NAME}.cms.amazeelabs.dev" +NETLIFY_URL="https://${LAGOON_GIT_BRANCH}-${PROJECT_NAME}.amazeelabs.dev" + +# ----------------------------------------------- +# Publisher authentication with Drupal (OAuth2). +# See main ./README.md for more information. +# ----------------------------------------------- +# Set to true to fully skip authentication. +PUBLISHER_SKIP_AUTHENTICATION=false + +# Secret from the Drupal Publisher Consumer. +PUBLISHER_OAUTH2_CLIENT_SECRET=REPLACE_ME + +# Client id from the Drupal Publisher Consumer. +PUBLISHER_OAUTH2_CLIENT_ID=publisher + +# A random string, used to encrypt the session. +PUBLISHER_OAUTH2_SESSION_SECRET=REPLACE_ME + +# "development" or "production", production will trust first proxy +# and serve secure cookies. +PUBLISHER_OAUTH2_ENVIRONMENT_TYPE=production + +# DRUPAL_EXTERNAL_URL is used by default, but can be overridden +# to match the Drupal production url, without the nginx prefix. +PUBLISHER_OAUTH2_TOKEN_HOST="${DRUPAL_EXTERNAL_URL}" diff --git a/apps/website/.lagoon.env.prod b/apps/website/.lagoon.env.prod new file mode 100644 index 000000000..0cd30cc45 --- /dev/null +++ b/apps/website/.lagoon.env.prod @@ -0,0 +1,28 @@ +PROJECT_NAME=example +DRUPAL_INTERNAL_URL="http://nginx:8080" +DRUPAL_EXTERNAL_URL="https://example.cms.amazeelabs.dev" +NETLIFY_URL="https://example.amazeelabs.dev" + +# ----------------------------------------------- +# Publisher authentication with Drupal (OAuth2). +# See main ./README.md for more information. +# ----------------------------------------------- +# Set to true to fully skip authentication. +PUBLISHER_SKIP_AUTHENTICATION=false + +# Secret from the Drupal Publisher Consumer. +PUBLISHER_OAUTH2_CLIENT_SECRET=REPLACE_ME + +# Client id from the Drupal Publisher Consumer. +PUBLISHER_OAUTH2_CLIENT_ID=publisher + +# A random string, used to encrypt the session. +PUBLISHER_OAUTH2_SESSION_SECRET=REPLACE_ME + +# "development" or "production", production will trust first proxy +# and serve secure cookies. +PUBLISHER_OAUTH2_ENVIRONMENT_TYPE=production + +# DRUPAL_EXTERNAL_URL is used by default, but can be overridden +# to match the Drupal production url, without the nginx prefix. +PUBLISHER_OAUTH2_TOKEN_HOST="${DRUPAL_EXTERNAL_URL}" diff --git a/apps/website/.lagoon.env.stage b/apps/website/.lagoon.env.stage new file mode 100644 index 000000000..89379ad89 --- /dev/null +++ b/apps/website/.lagoon.env.stage @@ -0,0 +1,28 @@ +PROJECT_NAME=example +DRUPAL_INTERNAL_URL="http://nginx:8080" +DRUPAL_EXTERNAL_URL="https://${LAGOON_GIT_BRANCH}-${PROJECT_NAME}.cms.amazeelabs.dev" +NETLIFY_URL="https://${LAGOON_GIT_BRANCH}-${PROJECT_NAME}.amazeelabs.dev" + +# ----------------------------------------------- +# Publisher authentication with Drupal (OAuth2). +# See main ./README.md for more information. +# ----------------------------------------------- +# Set to true to fully skip authentication. +PUBLISHER_SKIP_AUTHENTICATION=false + +# Secret from the Drupal Publisher Consumer. +PUBLISHER_OAUTH2_CLIENT_SECRET=REPLACE_ME + +# Client id from the Drupal Publisher Consumer. +PUBLISHER_OAUTH2_CLIENT_ID=publisher + +# A random string, used to encrypt the session. +PUBLISHER_OAUTH2_SESSION_SECRET=REPLACE_ME + +# "development" or "production", production will trust first proxy +# and serve secure cookies. +PUBLISHER_OAUTH2_ENVIRONMENT_TYPE=production + +# DRUPAL_EXTERNAL_URL is used by default, but can be overridden +# to match the Drupal production url, without the nginx prefix. +PUBLISHER_OAUTH2_TOKEN_HOST="${DRUPAL_EXTERNAL_URL}" diff --git a/apps/website/gatsby-config.mjs b/apps/website/gatsby-config.mjs index 74bc5a9fc..842076dff 100644 --- a/apps/website/gatsby-config.mjs +++ b/apps/website/gatsby-config.mjs @@ -42,17 +42,12 @@ const plugins = [ { resolve: 'gatsby-plugin-netlify', options: { - // To avoid "X-Frame-Options: DENY" and let it work in the preview - // iframe. + // To avoid "X-Frame-Options: DENY" in Drupal iframes. mergeSecurityHeaders: false, }, }, { - // TODO: Move preview to Drupal and remove this. resolve: 'gatsby-plugin-sitemap', - options: { - excludes: ['/__preview/**'], - }, }, { resolve: 'gatsby-plugin-robots-txt', diff --git a/apps/website/publisher.config.ts b/apps/website/publisher.config.ts index 6c5d95797..abaf98f01 100644 --- a/apps/website/publisher.config.ts +++ b/apps/website/publisher.config.ts @@ -16,7 +16,7 @@ export default defineConfig({ // cannot report it. // Workaround: Do a double build on the first build. 'if test -d public; then echo "Single build" && pnpm build:gatsby; else echo "Double build" && pnpm build:gatsby && pnpm build:gatsby; fi' - : 'DRUPAL_EXTERNAL_URL=http://127.0.0.1:8888 pnpm build:gatsby', + : 'pnpm build:gatsby', outputTimeout: 1000 * 60 * 10, }, clean: 'pnpm clean', diff --git a/apps/website/src/pages/__preview/page.tsx b/apps/website/src/pages/__preview/page.tsx deleted file mode 100644 index 9ca14376a..000000000 --- a/apps/website/src/pages/__preview/page.tsx +++ /dev/null @@ -1,11 +0,0 @@ -import React from 'react'; - -import PagePreview from '../../preview/page'; - -export function Head() { - return Page preview; -} - -export default function PagePreviewTemplate() { - return ; -} diff --git a/apps/website/src/preview/page.tsx b/apps/website/src/preview/page.tsx deleted file mode 100644 index dc2a1dac5..000000000 --- a/apps/website/src/preview/page.tsx +++ /dev/null @@ -1,37 +0,0 @@ -import { - OperationExecutor, - PreviewDrupalPageQuery, - ViewPageQuery, -} from '@custom/schema'; -import { Page } from '@custom/ui/routes/Page'; -import React from 'react'; - -import { drupalExecutor } from '../utils/drupal-executor'; -import { usePreviewParameters } from '../utils/preview'; - -const previewExecutor = drupalExecutor( - `${process.env.GATSBY_DRUPAL_URL}/graphql`, - false, -); - -export default function PagePreview() { - const { nid, rid, lang } = usePreviewParameters(); - if (nid && rid && lang) { - return ( - { - const data = await previewExecutor(PreviewDrupalPageQuery, { - id: nid, - locale: lang, - rid, - }); - return { page: data.preview }; - }} - > - - - ); - } - return null; -} diff --git a/apps/website/src/utils/preview.ts b/apps/website/src/utils/preview.ts deleted file mode 100644 index a6ee02d5d..000000000 --- a/apps/website/src/utils/preview.ts +++ /dev/null @@ -1,14 +0,0 @@ -import { useEffect, useState } from 'react'; - -export function usePreviewParameters() { - const [search, setState] = useState(''); - useEffect(() => { - setState(window.location.search); - }, [setState]); - - const args = new URLSearchParams(search); - const nid = args.get('nid'); - const rid = args.get('rid'); - const lang = args.get('lang'); - return { nid, rid, lang }; -} diff --git a/docker-compose.yml b/docker-compose.yml index 59d904129..c5ad2e374 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -109,6 +109,21 @@ services: lagoon.persistent: /app/persisted-store lagoon.name: build + preview: + build: + context: . + target: preview + dockerfile: .lagoon/Dockerfile + environment: + <<: *default-environment + LAGOON_LOCALDEV_URL: preview-${COMPOSE_PROJECT_NAME:-slbtemplate}.docker.amazee.io + networks: + - amazeeio-network + - default + labels: + lagoon.type: node + lagoon.name: preview + networks: amazeeio-network: external: true diff --git a/packages/drupal/custom/custom.services.yml b/packages/drupal/custom/custom.services.yml index fd6d0a918..5adbb9068 100644 --- a/packages/drupal/custom/custom.services.yml +++ b/packages/drupal/custom/custom.services.yml @@ -7,3 +7,6 @@ services: custom.webform: class: Drupal\custom\Webform arguments: ['@renderer', '@entity_type.manager', '@serializer'] + + custom.menus: + class: Drupal\custom\Menus diff --git a/packages/drupal/custom/src/Menus.php b/packages/drupal/custom/src/Menus.php new file mode 100644 index 000000000..fbaaf4aa0 --- /dev/null +++ b/packages/drupal/custom/src/Menus.php @@ -0,0 +1,33 @@ +getStorage('menu')->load($args->args['menu_id']); + $languages = \Drupal::languageManager()->getLanguages(); + $translations = []; + foreach ($languages as $language) { + $translation = clone $menu; + $translation->set('langcode', $language->getId()); + $translations[] = $translation; + } + return $translations; + } + +} diff --git a/packages/drupal/gutenberg_blocks/css/edit.css b/packages/drupal/gutenberg_blocks/css/edit.css index f4a49c277..39ab66473 100644 --- a/packages/drupal/gutenberg_blocks/css/edit.css +++ b/packages/drupal/gutenberg_blocks/css/edit.css @@ -7,6 +7,12 @@ margin:0; } +.gutenberg__editor blockquote .quote-image img { + object-fit: cover; + max-width: 100%; + border-radius: 9999px; +} + .gutenberg__editor blockquote::before, .gutenberg__editor blockquote::after { content: ''; diff --git a/packages/drupal/gutenberg_blocks/package.json b/packages/drupal/gutenberg_blocks/package.json index 093ca1970..b31ec99c1 100644 --- a/packages/drupal/gutenberg_blocks/package.json +++ b/packages/drupal/gutenberg_blocks/package.json @@ -27,6 +27,7 @@ "@types/wordpress__core-data": "2.4.5", "@types/wordpress__data": "6.0.2", "@types/wordpress__editor": "13.0.0", + "@types/wordpress__hooks": "2.4.0", "@vitejs/plugin-react": "4.2.1", "typescript": "^5.3.3", "vite": "^5.0.10" diff --git a/packages/drupal/gutenberg_blocks/src/Plugin/Validation/GutenbergValidator/QuoteValidator.php b/packages/drupal/gutenberg_blocks/src/Plugin/Validation/GutenbergValidator/QuoteValidator.php new file mode 100644 index 000000000..53df53041 --- /dev/null +++ b/packages/drupal/gutenberg_blocks/src/Plugin/Validation/GutenbergValidator/QuoteValidator.php @@ -0,0 +1,40 @@ + [ + 'field_label' => $this->t('Quote text'), + 'rules' => ['required'], + ], + 'author' => [ + 'field_label' => $this->t('Quote author'), + 'rules' => ['required'], + ], + ]; + } + +} diff --git a/packages/drupal/gutenberg_blocks/src/blocks/image-with-text.tsx b/packages/drupal/gutenberg_blocks/src/blocks/image-with-text.tsx new file mode 100644 index 000000000..d4717d4aa --- /dev/null +++ b/packages/drupal/gutenberg_blocks/src/blocks/image-with-text.tsx @@ -0,0 +1,79 @@ +import { InnerBlocks, InspectorControls } from 'wordpress__block-editor'; +import { registerBlockType } from 'wordpress__blocks'; +import { PanelBody, SelectControl } from 'wordpress__components'; +import { dispatch } from 'wordpress__data'; + +import { DrupalMediaEntity } from '../utils/drupal-media'; + +// @ts-ignore +const { t: __ } = Drupal; + +registerBlockType('custom/image-with-text', { + title: __('Image with Text'), + icon: 'cover-image', + category: 'layout', + attributes: { + mediaEntityIds: { + type: 'array', + }, + imagePosition: { + type: 'string', + default: 'left', + }, + }, + edit: (props) => { + const { setAttributes } = props; + return ( + <> + + + { + setAttributes({ + imagePosition, + }); + }} + /> + + +
+
{__('Image with Text')}
+ { + // @ts-ignore + error = typeof error === 'string' ? error : error[2]; + dispatch('core/notices').createWarningNotice(error); + }} + /> + +
+ + ); + }, + save: () => , +}); diff --git a/packages/drupal/gutenberg_blocks/src/blocks/quote.tsx b/packages/drupal/gutenberg_blocks/src/blocks/quote.tsx new file mode 100644 index 000000000..d5873d2d7 --- /dev/null +++ b/packages/drupal/gutenberg_blocks/src/blocks/quote.tsx @@ -0,0 +1,120 @@ +import { RichText } from 'wordpress__block-editor'; +import { registerBlockType } from 'wordpress__blocks'; +import { compose, withState } from 'wordpress__compose'; +import { dispatch } from 'wordpress__data'; + +import { cleanUpText } from '../utils/clean-up-text'; +import { DrupalMediaEntity } from '../utils/drupal-media'; + +declare const Drupal: { t: (s: string) => string }; + +const { t: __ } = Drupal; + +// @ts-ignore +const { setPlainTextAttribute } = silverbackGutenbergUtils; + +// @ts-ignore +registerBlockType(`custom/quote`, { + title: __('Quote'), + icon: 'format-quote', + category: 'text', + attributes: { + quote: { + type: 'string', + }, + author: { + tpye: 'string', + }, + role: { + type: 'string', + }, + mediaEntityIds: { + type: 'array', + }, + }, + // @ts-ignore + edit: compose(withState())((props) => { + return ( +
+
+ + + + { + props.setAttributes({ + quote: cleanUpText(quote, ['strong']), + }); + }} + /> +
+
+ { + // @ts-ignore + error = typeof error === 'string' ? error : error[2]; + dispatch('core/notices').createWarningNotice(error); + }} + /> +
+ { + setPlainTextAttribute(props, 'author', author); + }} + /> + / + { + setPlainTextAttribute(props, 'role', role); + }} + /> +
+
+
+ ); + }), + save() { + return null; + }, +}); diff --git a/packages/drupal/gutenberg_blocks/src/customisations.ts b/packages/drupal/gutenberg_blocks/src/customisations.ts index 70d97ccac..fb0355c8e 100644 --- a/packages/drupal/gutenberg_blocks/src/customisations.ts +++ b/packages/drupal/gutenberg_blocks/src/customisations.ts @@ -16,6 +16,10 @@ drupalSettings.gutenberg._listeners.init.push( const paragraphBlock = wp.blocks.getBlockType('core/paragraph'); paragraphBlock.supports.typography.fontSize = false; paragraphBlock.supports.typography.dropCap = false; + // @ts-ignore + const listBlock = wp.blocks.getBlockType('core/list'); + listBlock.supports.color = false; + listBlock.supports.typography = false; }, // Allow common blocks to be placed only in the Content block. diff --git a/packages/drupal/gutenberg_blocks/src/filters/list.tsx b/packages/drupal/gutenberg_blocks/src/filters/list.tsx new file mode 100644 index 000000000..707e7aa61 --- /dev/null +++ b/packages/drupal/gutenberg_blocks/src/filters/list.tsx @@ -0,0 +1,105 @@ +import clsx from 'clsx'; +import { InspectorControls } from 'wordpress__block-editor'; +import { PanelBody, SelectControl } from 'wordpress__components'; +import { createHigherOrderComponent } from 'wordpress__compose'; +import { addFilter } from 'wordpress__hooks'; + +// @ts-ignore +const __ = Drupal.t; + +addFilter( + 'blocks.registerBlockType', + 'custom/list', + (settings: { name: string; attributes: any }) => { + if (settings.name === 'core/list') { + settings.attributes = Object.assign(settings.attributes, { + customListStyle: { + type: 'string', + default: '', + }, + }); + } + return settings; + }, +); + +addFilter( + 'editor.BlockEdit', + 'custom/list', + createHigherOrderComponent( + // eslint-disable-next-line react/display-name + (BlockEdit) => (props) => { + const { name, attributes, setAttributes, isSelected } = props; + const { customListStyle, ordered } = attributes; + if (!customListStyle === undefined) { + setAttributes({ customListStyle: '' }); + } + return ( + <> + + {isSelected && name === 'core/list' && !ordered ? ( + + + { + setAttributes({ + customListStyle, + }); + }} + /> + + + ) : null} + + ); + }, + 'withCustomListStyleControls', + ), +); + +addFilter( + 'editor.BlockListBlock', + 'custom/list', + createHigherOrderComponent( + // eslint-disable-next-line react/display-name + (BlockListBlock) => (props) => { + const { name, attributes } = props; + if (name === 'core/list') { + const { customListStyle, ordered } = attributes; + if (!ordered && customListStyle) { + props.className = getCustomListClass( + props.className, + customListStyle, + ); + } + } + return ; + }, + 'withCustomListStyleBlockClass', + ), +); + +addFilter( + 'blocks.getSaveContent.extraProps', + 'custom/list', + (props: any, blockType: { name: string }, attributes: any) => { + if (blockType.name === 'core/list') { + const { customListStyle, ordered } = attributes; + if (!ordered && customListStyle) { + props.className = getCustomListClass(props.className, customListStyle); + } + } + return props; + }, +); + +function getCustomListClass(existingClassName: string, style: string) { + return clsx(existingClassName, 'list-style--' + style); +} diff --git a/packages/drupal/gutenberg_blocks/src/index.ts b/packages/drupal/gutenberg_blocks/src/index.ts index a0aff90af..2763bdad8 100644 --- a/packages/drupal/gutenberg_blocks/src/index.ts +++ b/packages/drupal/gutenberg_blocks/src/index.ts @@ -5,4 +5,7 @@ import './blocks/heading'; import './blocks/form'; import './blocks/image-teaser'; import './blocks/image-teasers'; +import './blocks/image-with-text'; +import './filters/list'; import './blocks/cta'; +import './blocks/quote'; diff --git a/packages/drupal/test_content/content/file/2f1be18f-dc18-4b56-8ff0-ce24d8ff7df7.yml b/packages/drupal/test_content/content/file/2f1be18f-dc18-4b56-8ff0-ce24d8ff7df7.yml new file mode 100644 index 000000000..8947e3bbc --- /dev/null +++ b/packages/drupal/test_content/content/file/2f1be18f-dc18-4b56-8ff0-ce24d8ff7df7.yml @@ -0,0 +1,27 @@ +_meta: + version: '1.0' + entity_type: file + uuid: 2f1be18f-dc18-4b56-8ff0-ce24d8ff7df7 + default_langcode: en +default: + uid: + - + target_id: 1 + filename: + - + value: the_silverback.jpeg + uri: + - + value: 'public://2024-04/the_silverback.jpeg' + filemime: + - + value: image/jpeg + filesize: + - + value: 146269 + status: + - + value: true + created: + - + value: 1713785099 diff --git a/packages/drupal/test_content/content/file/the_silverback.jpeg b/packages/drupal/test_content/content/file/the_silverback.jpeg new file mode 100644 index 000000000..25cc96bce Binary files /dev/null and b/packages/drupal/test_content/content/file/the_silverback.jpeg differ diff --git a/packages/drupal/test_content/content/media/5dfc1856-e9e4-4f02-9cd6-9d888870ce1a.yml b/packages/drupal/test_content/content/media/5dfc1856-e9e4-4f02-9cd6-9d888870ce1a.yml new file mode 100644 index 000000000..5dbede2d2 --- /dev/null +++ b/packages/drupal/test_content/content/media/5dfc1856-e9e4-4f02-9cd6-9d888870ce1a.yml @@ -0,0 +1,74 @@ +_meta: + version: '1.0' + entity_type: media + uuid: 5dfc1856-e9e4-4f02-9cd6-9d888870ce1a + bundle: image + default_langcode: en + depends: + 2f1be18f-dc18-4b56-8ff0-ce24d8ff7df7: file +default: + revision_user: + - + target_id: 1 + status: + - + value: true + uid: + - + target_id: 1 + name: + - + value: the_silverback.jpeg + created: + - + value: 1713785099 + path: + - + alias: '' + langcode: en + pathauto: 0 + content_translation_source: + - + value: und + content_translation_outdated: + - + value: false + field_media_image: + - + entity: 2f1be18f-dc18-4b56-8ff0-ce24d8ff7df7 + alt: 'The silverback' + title: '' + width: 1280 + height: 720 +translations: + de: + status: + - + value: true + uid: + - + target_id: 1 + name: + - + value: the_silverback.jpeg + created: + - + value: 1713785205 + path: + - + alias: '' + langcode: de + pathauto: 0 + content_translation_source: + - + value: en + content_translation_outdated: + - + value: false + field_media_image: + - + entity: 2f1be18f-dc18-4b56-8ff0-ce24d8ff7df7 + alt: 'The silverback DE' + title: '' + width: 1280 + height: 720 diff --git a/packages/drupal/test_content/content/node/a397ca48-8fad-411e-8901-0eba2feb989c.yml b/packages/drupal/test_content/content/node/a397ca48-8fad-411e-8901-0eba2feb989c.yml index ad87ab613..dd286b895 100644 --- a/packages/drupal/test_content/content/node/a397ca48-8fad-411e-8901-0eba2feb989c.yml +++ b/packages/drupal/test_content/content/node/a397ca48-8fad-411e-8901-0eba2feb989c.yml @@ -8,6 +8,7 @@ _meta: 3a0fe860-a6d6-428a-9474-365bd57509aa: media 478c4289-961d-4ce8-85d6-578ae05f3019: media 72187a1f-3e48-4b45-a9b7-189c6fd7ee26: media + 5dfc1856-e9e4-4f02-9cd6-9d888870ce1a: media default: revision_uid: - @@ -60,6 +61,32 @@ default: + + +

All kinds of allowed blocks

+ + + +
  • bla
+ + + +

Heading

+ + + +
12
34
Caption
+ + + +

Quote

Citation
+ + + +

+ + +

Starting from this paragraph, all the following blocks should be aggregated, as they are just HTML

@@ -76,10 +103,6 @@ default:

Heading 3

- -

Quote

Citation
- - @@ -92,6 +115,9 @@ default: + + +

@@ -164,15 +190,13 @@ translations:

Heading 3 DE

- -

Quote DE

Citation DE
- - + + format: gutenberg summary: '' diff --git a/packages/drupal/test_content/content/node/ceb9b2a7-4c4c-4084-ada9-d5f6505d466b.yml b/packages/drupal/test_content/content/node/ceb9b2a7-4c4c-4084-ada9-d5f6505d466b.yml index 6c19a491d..a367f61b2 100644 --- a/packages/drupal/test_content/content/node/ceb9b2a7-4c4c-4084-ada9-d5f6505d466b.yml +++ b/packages/drupal/test_content/content/node/ceb9b2a7-4c4c-4084-ada9-d5f6505d466b.yml @@ -58,15 +58,18 @@ default:
- -

- -

+ + + +

+ + + format: gutenberg summary: '' diff --git a/packages/schema/src/fragments/Page.gql b/packages/schema/src/fragments/Page.gql index 38c057340..cbf2227eb 100644 --- a/packages/schema/src/fragments/Page.gql +++ b/packages/schema/src/fragments/Page.gql @@ -33,6 +33,8 @@ fragment Page on Page { ...BlockForm ...BlockImageTeasers ...BlockCta + ...BlockImageWithText + ...BlockQuote } metaTags { tag diff --git a/packages/schema/src/fragments/PageContent/BlockImageWithText.gql b/packages/schema/src/fragments/PageContent/BlockImageWithText.gql new file mode 100644 index 000000000..b026e8676 --- /dev/null +++ b/packages/schema/src/fragments/PageContent/BlockImageWithText.gql @@ -0,0 +1,9 @@ +fragment BlockImageWithText on BlockImageWithText { + image { + source(width: 1536, sizes: [[768, 768], [1536, 1536]]) + alt + } + textContent { + markup + } +} diff --git a/packages/schema/src/fragments/PageContent/BlockQuote.gql b/packages/schema/src/fragments/PageContent/BlockQuote.gql new file mode 100644 index 000000000..785efb620 --- /dev/null +++ b/packages/schema/src/fragments/PageContent/BlockQuote.gql @@ -0,0 +1,9 @@ +fragment BlockQuote on BlockQuote { + quote + author + role + image { + source(width: 1536, sizes: [[768, 768], [1536, 1536]]) + alt + } +} diff --git a/packages/schema/src/schema.graphql b/packages/schema/src/schema.graphql index f364f7d51..d3da5ed9d 100644 --- a/packages/schema/src/schema.graphql +++ b/packages/schema/src/schema.graphql @@ -3,6 +3,11 @@ scalar Markup @default @value(string: "") scalar ImageSource @default @value(string: "") scalar JSONString @default @value(string: "{}") +""" +implementation(drupal): custom.menus::getMenuTranslations +""" +directive @menuTranslations(menu_id: String!) on FIELD_DEFINITION + """ implementation(drupal): custom.webform::url """ @@ -199,6 +204,8 @@ union PageContent @resolveEditorBlockType = | BlockForm | BlockImageTeasers | BlockCta + | BlockImageWithText + | BlockQuote type BlockForm @type(id: "custom/form") { url: Url @resolveEditorBlockAttribute(key: "formId") @webformIdToUrl(id: "$") @@ -257,6 +264,25 @@ enum CTAIconPosition { BEFORE } +type BlockImageWithText @type(id: "custom/image-with-text") { + image: MediaImage @resolveEditorBlockMedia + imagePosition: ImagePosition! + @resolveEditorBlockAttribute(key: "imagePosition") + textContent: BlockMarkup @resolveEditorBlockChildren @seek(pos: 0) +} + +enum ImagePosition @default @value(string: "left") { + left + right +} + +type BlockQuote @type(id: "custom/quote") { + quote: Markup @resolveEditorBlockAttribute(key: "quote") + author: String @resolveEditorBlockAttribute(key: "author") + role: String @resolveEditorBlockAttribute(key: "role") + image: MediaImage @resolveEditorBlockMedia +} + input PaginationInput { limit: Int! offset: Int! @@ -266,8 +292,14 @@ type Query { previewDecapPage: DecapPage previewDrupalPage(id: ID!, rid: ID, locale: String!): DrupalPage @fetchEntity(type: "node", id: "$id", rid: "$rid", language: "$locale") - mainNavigations: [MainNavigation] @gatsbyNodes(type: "MainNavigation") - footerNavigations: [FooterNavigation] @gatsbyNodes(type: "FooterNavigation") + + mainNavigations: [MainNavigation] + @gatsbyNodes(type: "MainNavigation") + @menuTranslations(menu_id: "main") + + footerNavigations: [FooterNavigation] + @gatsbyNodes(type: "FooterNavigation") + @menuTranslations(menu_id: "footer") allPages: [Page] @gatsbyNodes(type: "Page") websiteSettings: WebsiteSettings diff --git a/packages/ui/src/components/Organisms/PageContent/BlockMarkup.tsx b/packages/ui/src/components/Organisms/PageContent/BlockMarkup.tsx index 54f29a9fb..a83f81b79 100644 --- a/packages/ui/src/components/Organisms/PageContent/BlockMarkup.tsx +++ b/packages/ui/src/components/Organisms/PageContent/BlockMarkup.tsx @@ -18,7 +18,6 @@ export function BlockMarkup(props: BlockMarkupFragment) { className={clsx([ 'mx-auto max-w-3xl prose lg:prose-xl mt-10', 'prose-a:text-indigo-600', - 'prose-blockquote:border-indigo-200', 'prose-em:text-indigo-600', 'prose-strong:text-indigo-600', 'marker:text-indigo-600 marker:font-bold', @@ -49,6 +48,25 @@ export function BlockMarkup(props: BlockMarkupFragment) { ); }, + blockquote: ({ children }: PropsWithChildren<{}>) => { + return ( +
+ + + + {children} +
+ ); + }, }} markup={props.markup} /> diff --git a/packages/ui/src/components/Organisms/PageContent/BlockQuote.stories.ts b/packages/ui/src/components/Organisms/PageContent/BlockQuote.stories.ts new file mode 100644 index 000000000..6b40c8afd --- /dev/null +++ b/packages/ui/src/components/Organisms/PageContent/BlockQuote.stories.ts @@ -0,0 +1,32 @@ +import { Markup } from '@custom/schema'; +import Avatar from '@stories/avatar.jpg?as=metadata'; +import { Meta, StoryObj } from '@storybook/react'; + +import { image } from '../../../helpers/image'; +import { BlockQuote } from './BlockQuote'; + +export default { + component: BlockQuote, +} satisfies Meta; + +export const Quote = { + args: { + role: 'test role', + author: 'Author name', + image: { + source: image(Avatar), + alt: 'Portrait', + }, + quote: + '

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.

' as Markup, + }, +} satisfies StoryObj; + +export const NoAvatarQuote = { + args: { + role: 'test role', + author: 'Author name', + quote: + '

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.

' as Markup, + }, +} satisfies StoryObj; diff --git a/packages/ui/src/components/Organisms/PageContent/BlockQuote.tsx b/packages/ui/src/components/Organisms/PageContent/BlockQuote.tsx new file mode 100644 index 000000000..c99955e06 --- /dev/null +++ b/packages/ui/src/components/Organisms/PageContent/BlockQuote.tsx @@ -0,0 +1,47 @@ +import { BlockQuoteFragment, Html, Image } from '@custom/schema'; +import React from 'react'; + +export function BlockQuote(props: BlockQuoteFragment) { + return ( +
+
+ + Quote Symbol + + +

{props.quote && }

+
+ {props.image && ( + {props.image.alt + )} +
+ {props.author &&

{props.author}

} +
+ {props.role && ( +

+ / + + {props.role} + +

+ )} +
+
+
+ ); +} diff --git a/packages/ui/src/components/Organisms/PageDisplay.tsx b/packages/ui/src/components/Organisms/PageDisplay.tsx index bcefcb2ec..86813de03 100644 --- a/packages/ui/src/components/Organisms/PageDisplay.tsx +++ b/packages/ui/src/components/Organisms/PageDisplay.tsx @@ -8,6 +8,7 @@ import { BlockCta } from './PageContent/BlockCta'; import { BlockForm } from './PageContent/BlockForm'; import { BlockMarkup } from './PageContent/BlockMarkup'; import { BlockMedia } from './PageContent/BlockMedia'; +import { BlockQuote } from './PageContent/BlockQuote'; import { PageHero } from './PageHero'; export function PageDisplay(page: PageFragment) { @@ -15,39 +16,54 @@ export function PageDisplay(page: PageFragment) {
{page.hero ? : null} -
+
-
- {page?.content?.filter(isTruthy).map((block, index) => { - switch (block.__typename) { - case 'BlockMedia': - return ; - case 'BlockMarkup': - return ; - case 'BlockForm': - return ; - case 'BlockImageTeasers': - return ( - // TODO: Implement BlockImageTeasers -
- BlockImageTeasers goes here -
- ); - case 'BlockCta': - return ; - default: - throw new UnreachableCaseError(block); - } - })} -
+ {page?.content?.filter(isTruthy).map((block, index) => { + switch (block.__typename) { + case 'BlockMedia': + return ; + case 'BlockMarkup': + return ; + case 'BlockForm': + return ; + case 'BlockImageTeasers': + return ( + // TODO: Implement BlockImageTeasers +
+ BlockImageTeasers goes here +
+ ); + case 'BlockCta': + return ; + case 'BlockImageWithText': + return ( + // TODO: Implement BlockImageWithText +
+ BlockImageWithText goes here +
+ ); + case 'BlockQuote': + return
; + default: + throw new UnreachableCaseError(block); + } + })}
diff --git a/packages/ui/src/components/Organisms/PageHero.tsx b/packages/ui/src/components/Organisms/PageHero.tsx index 7eea65402..55a1088ca 100644 --- a/packages/ui/src/components/Organisms/PageHero.tsx +++ b/packages/ui/src/components/Organisms/PageHero.tsx @@ -15,7 +15,7 @@ export function PageHero(props: NonNullable) { function DefaultHero(props: NonNullable) { return ( -
+
{props.image ? ( {props.image.alt}) { function FormHero(props: NonNullable) { return (
-
+
{props.image ? ( - {props.image.alt} + <> + {props.image.alt} +
+ ) : null} -
+

{props.headline}

@@ -115,36 +118,34 @@ function FormHero(props: NonNullable) { function NoImageHero(props: NonNullable) { return ( -
+
-
-

- {props.headline} -

- {props.lead ? ( -

{props.lead}

- ) : null} - {props.ctaText && props.ctaUrl ? ( - + {props.headline} + + {props.lead ? ( +

{props.lead}

+ ) : null} + {props.ctaText && props.ctaUrl ? ( + + - - - - {props.ctaText} - - ) : null} -
+ + + {props.ctaText} + + ) : null}
); diff --git a/packages/ui/src/components/Routes/Preview.tsx b/packages/ui/src/components/Routes/Preview.tsx new file mode 100644 index 000000000..61c6dcbb7 --- /dev/null +++ b/packages/ui/src/components/Routes/Preview.tsx @@ -0,0 +1,42 @@ +import type { OperationVariables } from '@custom/schema'; +import { PreviewDrupalPageQuery, useLocation } from '@custom/schema'; +import React from 'react'; + +import { clear, useOperation } from '../../utils/operation'; +import { PageDisplay } from '../Organisms/PageDisplay'; + +function usePreviewParameters(): OperationVariables< + typeof PreviewDrupalPageQuery +> { + const [location] = useLocation(); + + const nid = location.searchParams.get('nid'); + const rid = location.searchParams.get('rid'); + const lang = location.searchParams.get('lang'); + return { id: nid || '', rid: rid || '', locale: lang || 'en' }; +} + +export function usePreviewRefresh() { + const params = usePreviewParameters(); + return (input: { + entity_type_id?: string; + entity_id?: string; + langcode?: string; + }) => { + if ( + // TODO: Extend for non-node entities? + input.entity_type_id === 'node' && + input.entity_id === params.id && + input.langcode === params.locale + ) { + clear(PreviewDrupalPageQuery, params); + } + }; +} + +export function Preview() { + const { data } = useOperation(PreviewDrupalPageQuery, usePreviewParameters()); + if (data?.preview) { + return ; + } +} diff --git a/packages/ui/src/tailwind.css b/packages/ui/src/tailwind.css index f9b68485a..944e19871 100644 --- a/packages/ui/src/tailwind.css +++ b/packages/ui/src/tailwind.css @@ -4,3 +4,33 @@ @tailwind base; @tailwind components; @tailwind utilities; + +/* Prose overrides */ +.prose + :where(blockquote):not(:where([class~='not-prose'], [class~='not-prose'] *)) { + font-weight: 400; +} + +.lg\:prose-xl + :where(blockquote):not(:where([class~='not-prose'], [class~='not-prose'] *)) { + padding-left: 0 !important; +} + +.prose :where(blockquote p):not(:where([class~='not-prose'])) { + margin-top: 12px !important; + margin-bottom: 12px !important; +} + +.prose + :where(blockquote p:first-of-type):not( + :where([class~='not-prose'], [class~='not-prose'] *) + )::before { + content: '' !important; +} + +.prose + :where(blockquote p:first-of-type):not( + :where([class~='not-prose'], [class~='not-prose'] *) + )::after { + content: '' !important; +} diff --git a/packages/ui/src/utils/operation.ts b/packages/ui/src/utils/operation.ts index 136595b1d..f05499b3f 100644 --- a/packages/ui/src/utils/operation.ts +++ b/packages/ui/src/utils/operation.ts @@ -4,9 +4,16 @@ import { OperationVariables, useExecutor, } from '@custom/schema'; -import useSwr, { SWRResponse } from 'swr'; +import useSwr, { mutate, SWRResponse } from 'swr'; import useSWRMutation, { SWRMutationResponse } from 'swr/mutation'; +export function clear( + operation: TOperation, + variables?: OperationVariables, +) { + mutate([operation, variables]); +} + export function useOperation( operation: TOperation, variables?: OperationVariables, @@ -18,9 +25,12 @@ export function useOperation( // If the executor is not a function, pass null to SWR, // so it does not try to fetch. executor instanceof Function ? (arg) => executor(arg[1]) : null, - { - suspense: false, - }, + variables?.pathname?.indexOf('__preview') > 0 + ? { + suspense: false, + keepPreviousData: true, + } + : { suspense: false }, ); return executor instanceof Function ? result diff --git a/packages/ui/static/stories/avatar.jpg b/packages/ui/static/stories/avatar.jpg new file mode 100644 index 000000000..e796b545e Binary files /dev/null and b/packages/ui/static/stories/avatar.jpg differ diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 8aca358f2..05006d49f 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -80,6 +80,9 @@ importers: '@custom/gutenberg_blocks': specifier: workspace:* version: link:../../packages/drupal/gutenberg_blocks + '@custom/preview': + specifier: workspace:* + version: link:../preview '@custom/schema': specifier: workspace:* version: link:../../packages/schema @@ -184,6 +187,79 @@ importers: specifier: ^5.0.10 version: 5.0.10(@types/node@18.0.0) + apps/preview: + dependencies: + '@custom/schema': + specifier: workspace:* + version: link:../../packages/schema + '@custom/ui': + specifier: workspace:* + version: link:../../packages/ui + express: + specifier: ^4.19.2 + version: 4.19.2 + express-ws: + specifier: ^5.0.2 + version: 5.0.2(express@4.19.2) + react: + specifier: ^18.2.0 + version: 18.2.0 + react-dom: + specifier: ^18.2.0 + version: 18.2.0(react@18.2.0) + rxjs: + specifier: ^7.8.1 + version: 7.8.1 + devDependencies: + '@swc/cli': + specifier: ^0.1.63 + version: 0.1.63(@swc/core@1.3.102) + '@swc/core': + specifier: ^1.3.102 + version: 1.3.102 + '@types/express': + specifier: ^4.17.21 + version: 4.17.21 + '@types/express-ws': + specifier: ^3.0.4 + version: 3.0.4 + '@types/node': + specifier: ^20.11.17 + version: 20.11.17 + '@types/react': + specifier: ^18.2.46 + version: 18.2.46 + '@types/react-dom': + specifier: ^18.2.18 + version: 18.2.18 + '@typescript-eslint/eslint-plugin': + specifier: ^7.2.0 + version: 7.2.0(@typescript-eslint/parser@7.2.0)(eslint@7.0.0)(typescript@5.3.3) + '@typescript-eslint/parser': + specifier: ^7.2.0 + version: 7.2.0(eslint@7.0.0)(typescript@5.3.3) + '@vitejs/plugin-react-swc': + specifier: ^3.5.0 + version: 3.5.0(vite@5.2.8) + eslint: + specifier: '7' + version: 7.0.0 + eslint-plugin-react-hooks: + specifier: ^4.6.0 + version: 4.6.0(eslint@7.0.0) + eslint-plugin-react-refresh: + specifier: ^0.4.6 + version: 0.4.6(eslint@7.0.0) + tsx: + specifier: ^4.7.1 + version: 4.7.1 + typescript: + specifier: ^5.2.2 + version: 5.3.3 + vite: + specifier: ^5.2.0 + version: 5.2.8(@types/node@20.11.17) + apps/website: dependencies: '@amazeelabs/bridge-gatsby': @@ -354,6 +430,9 @@ importers: '@types/wordpress__editor': specifier: 13.0.0 version: 13.0.0(react-dom@18.2.0)(react@18.2.0) + '@types/wordpress__hooks': + specifier: 2.4.0 + version: 2.4.0 '@vitejs/plugin-react': specifier: 4.2.1 version: 4.2.1(vite@5.0.10) @@ -2993,6 +3072,7 @@ packages: cpu: [ppc64] os: [aix] requiresBuild: true + dev: true optional: true /@esbuild/aix-ppc64@0.20.0: @@ -3036,6 +3116,7 @@ packages: cpu: [arm64] os: [android] requiresBuild: true + dev: true optional: true /@esbuild/android-arm64@0.20.0: @@ -3079,6 +3160,7 @@ packages: cpu: [arm] os: [android] requiresBuild: true + dev: true optional: true /@esbuild/android-arm@0.20.0: @@ -3122,6 +3204,7 @@ packages: cpu: [x64] os: [android] requiresBuild: true + dev: true optional: true /@esbuild/android-x64@0.20.0: @@ -3165,6 +3248,7 @@ packages: cpu: [arm64] os: [darwin] requiresBuild: true + dev: true optional: true /@esbuild/darwin-arm64@0.20.0: @@ -3208,6 +3292,7 @@ packages: cpu: [x64] os: [darwin] requiresBuild: true + dev: true optional: true /@esbuild/darwin-x64@0.20.0: @@ -3251,6 +3336,7 @@ packages: cpu: [arm64] os: [freebsd] requiresBuild: true + dev: true optional: true /@esbuild/freebsd-arm64@0.20.0: @@ -3294,6 +3380,7 @@ packages: cpu: [x64] os: [freebsd] requiresBuild: true + dev: true optional: true /@esbuild/freebsd-x64@0.20.0: @@ -3337,6 +3424,7 @@ packages: cpu: [arm64] os: [linux] requiresBuild: true + dev: true optional: true /@esbuild/linux-arm64@0.20.0: @@ -3380,6 +3468,7 @@ packages: cpu: [arm] os: [linux] requiresBuild: true + dev: true optional: true /@esbuild/linux-arm@0.20.0: @@ -3423,6 +3512,7 @@ packages: cpu: [ia32] os: [linux] requiresBuild: true + dev: true optional: true /@esbuild/linux-ia32@0.20.0: @@ -3466,6 +3556,7 @@ packages: cpu: [loong64] os: [linux] requiresBuild: true + dev: true optional: true /@esbuild/linux-loong64@0.20.0: @@ -3509,6 +3600,7 @@ packages: cpu: [mips64el] os: [linux] requiresBuild: true + dev: true optional: true /@esbuild/linux-mips64el@0.20.0: @@ -3552,6 +3644,7 @@ packages: cpu: [ppc64] os: [linux] requiresBuild: true + dev: true optional: true /@esbuild/linux-ppc64@0.20.0: @@ -3595,6 +3688,7 @@ packages: cpu: [riscv64] os: [linux] requiresBuild: true + dev: true optional: true /@esbuild/linux-riscv64@0.20.0: @@ -3638,6 +3732,7 @@ packages: cpu: [s390x] os: [linux] requiresBuild: true + dev: true optional: true /@esbuild/linux-s390x@0.20.0: @@ -3681,6 +3776,7 @@ packages: cpu: [x64] os: [linux] requiresBuild: true + dev: true optional: true /@esbuild/linux-x64@0.20.0: @@ -3724,6 +3820,7 @@ packages: cpu: [x64] os: [netbsd] requiresBuild: true + dev: true optional: true /@esbuild/netbsd-x64@0.20.0: @@ -3767,6 +3864,7 @@ packages: cpu: [x64] os: [openbsd] requiresBuild: true + dev: true optional: true /@esbuild/openbsd-x64@0.20.0: @@ -3810,6 +3908,7 @@ packages: cpu: [x64] os: [sunos] requiresBuild: true + dev: true optional: true /@esbuild/sunos-x64@0.20.0: @@ -3853,6 +3952,7 @@ packages: cpu: [arm64] os: [win32] requiresBuild: true + dev: true optional: true /@esbuild/win32-arm64@0.20.0: @@ -3896,6 +3996,7 @@ packages: cpu: [ia32] os: [win32] requiresBuild: true + dev: true optional: true /@esbuild/win32-ia32@0.20.0: @@ -3939,6 +4040,7 @@ packages: cpu: [x64] os: [win32] requiresBuild: true + dev: true optional: true /@esbuild/win32-x64@0.20.0: @@ -5956,7 +6058,7 @@ packages: '@opentelemetry/api': 1.8.0 '@sindresorhus/slugify': 2.2.1 ansi-escapes: 6.2.1 - chalk: 5.2.0 + chalk: 5.3.0 clean-stack: 4.2.0 execa: 6.1.0 fdir: 6.1.1 @@ -6027,7 +6129,7 @@ packages: hasBin: true dependencies: '@iarna/toml': 2.2.5 - chalk: 5.2.0 + chalk: 5.3.0 cron-parser: 4.8.1 deepmerge: 4.3.1 dot-prop: 7.2.0 @@ -7147,7 +7249,7 @@ packages: react-refresh: 0.14.0 schema-utils: 3.3.0 source-map: 0.7.4 - webpack: 5.91.0(esbuild@0.19.12) + webpack: 5.91.0 /@pnpm/config.env-replace@1.1.0: resolution: {integrity: sha512-htyl8TWnKL7K/ESFa1oW2UB5lVDxuF5DpM7tBi6Hu2LNL3mWkIzNLG6N4zoCUP1lCKNxWy/3iu8mS8MvToGd6w==} @@ -8847,8 +8949,8 @@ packages: '@storybook/csf': 0.1.3 '@storybook/csf-tools': 7.6.17 '@storybook/preview-api': 7.6.17 - '@swc/core': 1.3.102 - '@swc/jest': 0.2.36(@swc/core@1.3.102) + '@swc/core': 1.4.13 + '@swc/jest': 0.2.36(@swc/core@1.4.13) can-bind-to-host: 1.1.2 commander: 9.5.0 expect-playwright: 0.8.0 @@ -9191,14 +9293,14 @@ packages: legacy-swc-helpers: /@swc/helpers@0.4.14 tslib: 2.6.2 - /@swc/jest@0.2.36(@swc/core@1.3.102): + /@swc/jest@0.2.36(@swc/core@1.4.13): resolution: {integrity: sha512-8X80dp81ugxs4a11z1ka43FPhP+/e+mJNXJSxiNYk8gIX/jPBtY4gQTrKu/KIoco8bzKuPI5lUxjfLiGsfvnlw==} engines: {npm: '>= 7.0.0'} peerDependencies: '@swc/core': '*' dependencies: '@jest/create-cache-key-function': 29.7.0 - '@swc/core': 1.3.102 + '@swc/core': 1.4.13 '@swc/counter': 0.1.3 jsonc-parser: 3.2.1 dev: true @@ -9418,7 +9520,7 @@ packages: resolution: {integrity: sha512-fB3Zu92ucau0iQ0JMCFQE7b/dv8Ot07NI3KaZIkIUNXq82k4eBAqUaneXfleGY9JWskeS9y+u0nXMyspcuQrCg==} dependencies: '@types/connect': 3.4.38 - '@types/node': 18.19.31 + '@types/node': 20.11.17 dev: true /@types/cacheable-request@6.0.3: @@ -9450,7 +9552,7 @@ packages: /@types/connect@3.4.38: resolution: {integrity: sha512-K6uROf1LD88uDQqJCktA4yzL1YYAK6NgfsI0v/mTgyPKWsX1CnJ0XPSDhViejru1GcRkLWb8RlzFYJRqGUbaug==} dependencies: - '@types/node': 18.19.31 + '@types/node': 20.11.17 dev: true /@types/cookie@0.4.1: @@ -9459,7 +9561,7 @@ packages: /@types/cors@2.8.17: resolution: {integrity: sha512-8CGDvrBj1zgo2qE+oS3pOCyYNqCPryMWY2bGfwA0dcfopWGgxs+78df0Rs3rc9THP4JkOhLsAa+15VdpAqkcUA==} dependencies: - '@types/node': 18.0.0 + '@types/node': 18.19.31 /@types/cross-spawn@6.0.6: resolution: {integrity: sha512-fXRhhUkG4H3TQk5dBhQ7m/JDdSNHKwR2BBia62lhwEIq9xGiQKLxd6LymNhn47SjXhsUEPmxi+PKw2OkW4LLjA==} @@ -9532,12 +9634,20 @@ packages: /@types/express-serve-static-core@4.19.0: resolution: {integrity: sha512-bGyep3JqPCRry1wq+O5n7oiBgGWmeIJXPjXXCo8EK0u8duZGSYar7cGqd3ML2JUsLGeB7fmc06KYo9fLGWqPvQ==} dependencies: - '@types/node': 18.19.31 + '@types/node': 20.11.17 '@types/qs': 6.9.14 '@types/range-parser': 1.2.7 '@types/send': 0.17.4 dev: true + /@types/express-ws@3.0.4: + resolution: {integrity: sha512-Yjj18CaivG5KndgcvzttWe8mPFinPCHJC2wvyQqVzA7hqeufM8EtWMj6mpp5omg3s8XALUexhOu8aXAyi/DyJQ==} + dependencies: + '@types/express': 4.17.21 + '@types/express-serve-static-core': 4.19.0 + '@types/ws': 8.5.10 + dev: true + /@types/express@4.17.21: resolution: {integrity: sha512-ejlPM315qwLpaQlQDTjPdsUFSc6ZsP4AN6AlWnogPjQ7CVi7PYF3YVz+CY3jE2pwYf7E/7HlDAN0rV2GxTG0HQ==} dependencies: @@ -9558,7 +9668,7 @@ packages: resolution: {integrity: sha512-rTtf75rwyP9G2qO5yRpYtdJ6aU1QqEhWbtW55qEgquEDa6bXW0s2TWZfDm02GuppjEozOWG/F2UnPq5hAQb+gw==} dependencies: '@types/minimatch': 5.1.2 - '@types/node': 18.0.0 + '@types/node': 18.19.31 /@types/glob@7.2.0: resolution: {integrity: sha512-ZUxbzKl0IfJILTS6t7ip5fQQM/J3TJYubDm3nMbgubNNYS62eXeUpoLUC8/7fJNiFYHTrGPQn7hspDUzIHX3UA==} @@ -9601,7 +9711,7 @@ packages: /@types/http-proxy@1.17.14: resolution: {integrity: sha512-SSrD0c1OQzlFX7pGu1eXxSEjemej64aaNPRhhVYUGqXh0BtldAAx37MG8btcumvpgKyZp1F5Gn3JkktdxiFv6w==} dependencies: - '@types/node': 18.0.0 + '@types/node': 18.19.31 /@types/image-size@0.8.0: resolution: {integrity: sha512-hMlhu25ji75dXQk2uZkN3pTJ+lWrgKr8M1fTpyyFvuu+SJZBdGa5gDm4BVNobWXHZbOU11mBj0vciYp7qOfAFg==} @@ -9644,7 +9754,7 @@ packages: /@types/keyv@3.1.4: resolution: {integrity: sha512-BQ5aZNSCpj7D6K2ksrRCTmKRLEpnPvWDiLPfoGyhZ++8YtiK9d/3DBKPJgry359X/P1PfruyYwvnvwFjuEiEIg==} dependencies: - '@types/node': 18.0.0 + '@types/node': 20.11.17 /@types/lodash@4.17.0: resolution: {integrity: sha512-t7dhREVv6dbNj0q17X12j7yDG4bD/DHYX7o5/DbDxobP0HnGPgpRz2Ej77aL7TZT3DSw13fqUTj8J4mMnqa7WA==} @@ -9683,7 +9793,7 @@ packages: /@types/mkdirp@0.5.2: resolution: {integrity: sha512-U5icWpv7YnZYGsN4/cmh3WD2onMY0aJIiTE6+51TwJCttdHvtCYmkBNOobHlXwrJRL0nkH9jH4kD+1FAdMN4Tg==} dependencies: - '@types/node': 18.0.0 + '@types/node': 18.19.31 /@types/mousetrap@1.6.15: resolution: {integrity: sha512-qL0hyIMNPow317QWW/63RvL1x5MVMV+Ru3NaY9f/CuEpCqrmb7WeuK2071ZY5hczOnm38qExWM2i2WtkXLSqFw==} @@ -9710,6 +9820,11 @@ packages: dependencies: undici-types: 5.26.5 + /@types/node@20.11.17: + resolution: {integrity: sha512-QmgQZGWu1Yw9TDyAP9ZzpFJKynYNeOvwMJmaxABfieQoVoiVOS6MN1WSpqpRcbeA5+RW82kraAVxCCJg+780Qw==} + dependencies: + undici-types: 5.26.5 + /@types/node@8.10.66: resolution: {integrity: sha512-tktOkFUA4kXx2hhhrB8bIFb5TbwzS4uOhKEmwiD+NoiL0qtP2OQ9mFldbgD4dV1djrlBYP6eBuQZiWjuHUpqFw==} @@ -9796,7 +9911,7 @@ packages: /@types/responselike@1.0.3: resolution: {integrity: sha512-H/+L+UkTV33uf49PH5pCAUBVPNj2nDBXTN+qS1dOwyyg24l3CcicicCA7ca+HMvJBZcFgl5r8e+RR6elsb4Lyw==} dependencies: - '@types/node': 18.0.0 + '@types/node': 20.11.17 /@types/retry@0.12.1: resolution: {integrity: sha512-xoDlM2S4ortawSWORYqsdU+2rxdh4LRW9ytc3zmT37RIKQh6IHyKwwtKhKis9ah8ol07DCkZxPt8BBvPjC6v4g==} @@ -9806,7 +9921,7 @@ packages: resolution: {integrity: sha512-YyP+VfeaqAyFmXoTh3HChxOQMyjByRMsHU7kc5KOJkSlXudhMhQIALbYV7rHh/l8d2lX3VUQzprrcAgWdRuU8g==} dependencies: '@types/glob': 5.0.38 - '@types/node': 18.0.0 + '@types/node': 18.19.31 /@types/sax@1.2.7: resolution: {integrity: sha512-rO73L89PJxeYM3s3pPPjiPgVVcymqU490g0YO5n5By0k2Erzj6tay/4lr1CHAAU4JyOWd1rpQ8bCf6cZfHU96A==} @@ -9828,7 +9943,7 @@ packages: resolution: {integrity: sha512-x2EM6TJOybec7c52BX0ZspPodMsQUd5L6PRwOunVyVUhXiBSKf3AezDL8Dgvgt5o0UfKNfuA0eMLr2wLT4AiBA==} dependencies: '@types/mime': 1.3.5 - '@types/node': 18.19.31 + '@types/node': 20.11.17 dev: true /@types/serve-static@1.15.5: @@ -9843,7 +9958,7 @@ packages: resolution: {integrity: sha512-W8Ym+h8nhuRwaKPaDw34QUkwsGi6Rc4yYqvKFo5rm2FUEhCFbzVWrxXUxuKK8TASjWsysJY0nsmNCGhCOIsrOw==} dependencies: '@types/http-errors': 2.0.4 - '@types/node': 18.19.31 + '@types/node': 20.11.17 '@types/send': 0.17.4 dev: true @@ -9956,6 +10071,10 @@ packages: - react-dom dev: true + /@types/wordpress__hooks@2.4.0: + resolution: {integrity: sha512-SixjDsBvPynmMQxBFX3i4nuWtLifqtml7PhSosoCk5RJy9S7xs/G6vvtcnAuslV3BJTyvxEbAsz4WpKaF0bqMw==} + dev: true + /@types/wordpress__keycodes@2.18.0: resolution: {integrity: sha512-09ku81E6tjB//bI5PatKM/rhTJ0aEmNLvhIn380orea+SX6/09t7luO27zxI0uHSs/1Pxue1ifrMKY+gE5lfzw==} deprecated: This is a stub types definition. @wordpress/keycodes provides its own type definitions, so you do not need this installed. @@ -9999,7 +10118,7 @@ packages: /@types/ws@8.5.10: resolution: {integrity: sha512-vmQSUcfalpIq0R9q7uTo2lXs6eGIpt9wtnLdMv9LVpIjCA/+ufZRozlVoVelIYixx1ugCBKDhn89vnsEGOCx9A==} dependencies: - '@types/node': 18.19.31 + '@types/node': 20.11.17 /@types/yargs-parser@21.0.3: resolution: {integrity: sha512-I4q9QU9MQv4oEOz4tAHJtNz1cwuLxn2F3xcc2iV5WdqLPpUnj30aUuxt1mAxYTG+oe8CZMV/+6rU4S4gRDzqtQ==} @@ -10082,6 +10201,7 @@ packages: typescript: 5.3.3 transitivePeerDependencies: - supports-color + dev: true /@typescript-eslint/eslint-plugin@5.62.0(@typescript-eslint/parser@5.62.0)(eslint@7.32.0)(typescript@5.4.4): resolution: {integrity: sha512-TiZzBSJja/LbhNPvk6yc0JrX9XqhQ0hdh6M2svYfsHGejaKFIAGd9MQ+ERIMzLGlN/kZoYIgdxFV0PuljTKXag==} @@ -10110,7 +10230,6 @@ packages: transitivePeerDependencies: - supports-color dev: false - optional: true /@typescript-eslint/eslint-plugin@6.17.0(@typescript-eslint/parser@6.17.0)(eslint@7.0.0)(typescript@5.3.3): resolution: {integrity: sha512-Vih/4xLXmY7V490dGwBQJTpIZxH4ZFH6eCVmQ4RFkB+wmaCTDAx4dtgoWwMNGKLkqRY1L6rPqzEbjorRnDo4rQ==} @@ -10170,6 +10289,35 @@ packages: - supports-color dev: true + /@typescript-eslint/eslint-plugin@7.2.0(@typescript-eslint/parser@7.2.0)(eslint@7.0.0)(typescript@5.3.3): + resolution: {integrity: sha512-mdekAHOqS9UjlmyF/LSs6AIEvfceV749GFxoBAjwAv0nkevfKHWQFDMcBZWUiIC5ft6ePWivXoS36aKQ0Cy3sw==} + engines: {node: ^16.0.0 || >=18.0.0} + peerDependencies: + '@typescript-eslint/parser': ^7.0.0 + eslint: ^8.56.0 + typescript: '*' + peerDependenciesMeta: + typescript: + optional: true + dependencies: + '@eslint-community/regexpp': 4.10.0 + '@typescript-eslint/parser': 7.2.0(eslint@7.0.0)(typescript@5.3.3) + '@typescript-eslint/scope-manager': 7.2.0 + '@typescript-eslint/type-utils': 7.2.0(eslint@7.0.0)(typescript@5.3.3) + '@typescript-eslint/utils': 7.2.0(eslint@7.0.0)(typescript@5.3.3) + '@typescript-eslint/visitor-keys': 7.2.0 + debug: 4.3.4 + eslint: 7.0.0 + graphemer: 1.4.0 + ignore: 5.3.1 + natural-compare: 1.4.0 + semver: 7.6.0 + ts-api-utils: 1.3.0(typescript@5.3.3) + typescript: 5.3.3 + transitivePeerDependencies: + - supports-color + dev: true + /@typescript-eslint/parser@5.62.0(eslint@7.32.0)(typescript@4.9.5): resolution: {integrity: sha512-VlJEV0fOQ7BExOsHYAGrgbEiZoi8D+Bl2+f6V2RrXerRSylnp+ZBHmPvaIa8cz0Ajx7WO7Z5RqfgYg7ED1nRhA==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} @@ -10226,8 +10374,6 @@ packages: typescript: 5.4.4 transitivePeerDependencies: - supports-color - dev: false - optional: true /@typescript-eslint/parser@6.17.0(eslint@7.0.0)(typescript@5.3.3): resolution: {integrity: sha512-C4bBaX2orvhK+LlwrY8oWGmSl4WolCfYm513gEccdWZj0CwGadbIADb0FtVEcI+WzUyjyoBj2JRP8g25E6IB8A==} @@ -10269,6 +10415,28 @@ packages: typescript: 5.3.3 transitivePeerDependencies: - supports-color + dev: true + + /@typescript-eslint/parser@7.2.0(eslint@7.0.0)(typescript@5.3.3): + resolution: {integrity: sha512-5FKsVcHTk6TafQKQbuIVkXq58Fnbkd2wDL4LB7AURN7RUOu1utVP+G8+6u3ZhEroW3DF6hyo3ZEXxgKgp4KeCg==} + engines: {node: ^16.0.0 || >=18.0.0} + peerDependencies: + eslint: ^8.56.0 + typescript: '*' + peerDependenciesMeta: + typescript: + optional: true + dependencies: + '@typescript-eslint/scope-manager': 7.2.0 + '@typescript-eslint/types': 7.2.0 + '@typescript-eslint/typescript-estree': 7.2.0(typescript@5.3.3) + '@typescript-eslint/visitor-keys': 7.2.0 + debug: 4.3.4 + eslint: 7.0.0 + typescript: 5.3.3 + transitivePeerDependencies: + - supports-color + dev: true /@typescript-eslint/scope-manager@5.62.0: resolution: {integrity: sha512-VXuvVvZeQCQb5Zgf4HAxc04q5j+WrNAtNh9OwCsCgpKqESMTu3tF/jhZ3xG6T4NZwWl65Bg8KuS2uEvhSfLl0w==} @@ -10283,6 +10451,7 @@ packages: dependencies: '@typescript-eslint/types': 6.17.0 '@typescript-eslint/visitor-keys': 6.17.0 + dev: true /@typescript-eslint/scope-manager@6.21.0: resolution: {integrity: sha512-OwLUIWZJry80O99zvqXVEioyniJMa+d2GrqpUTqi5/v5D5rOrppJVBPa0yKCblcigC0/aYAzxxqQ1B+DS2RYsg==} @@ -10292,6 +10461,14 @@ packages: '@typescript-eslint/visitor-keys': 6.21.0 dev: true + /@typescript-eslint/scope-manager@7.2.0: + resolution: {integrity: sha512-Qh976RbQM/fYtjx9hs4XkayYujB/aPwglw2choHmf3zBjB4qOywWSdt9+KLRdHubGcoSwBnXUH2sR3hkyaERRg==} + engines: {node: ^16.0.0 || >=18.0.0} + dependencies: + '@typescript-eslint/types': 7.2.0 + '@typescript-eslint/visitor-keys': 7.2.0 + dev: true + /@typescript-eslint/type-utils@5.62.0(eslint@7.32.0)(typescript@4.9.5): resolution: {integrity: sha512-xsSQreu+VnfbqQpW5vnCJdq1Z3Q0U31qiWmRhr98ONQmcp/yhiPJFPq8MXiJVLiksmOKSjIldZzkebzHuCGzew==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} @@ -10329,6 +10506,7 @@ packages: typescript: 5.3.3 transitivePeerDependencies: - supports-color + dev: true /@typescript-eslint/type-utils@5.62.0(eslint@7.32.0)(typescript@5.4.4): resolution: {integrity: sha512-xsSQreu+VnfbqQpW5vnCJdq1Z3Q0U31qiWmRhr98ONQmcp/yhiPJFPq8MXiJVLiksmOKSjIldZzkebzHuCGzew==} @@ -10349,7 +10527,6 @@ packages: transitivePeerDependencies: - supports-color dev: false - optional: true /@typescript-eslint/type-utils@6.17.0(eslint@7.0.0)(typescript@5.3.3): resolution: {integrity: sha512-hDXcWmnbtn4P2B37ka3nil3yi3VCQO2QEB9gBiHJmQp5wmyQWqnjA85+ZcE8c4FqnaB6lBwMrPkgd4aBYz3iNg==} @@ -10391,6 +10568,26 @@ packages: - supports-color dev: true + /@typescript-eslint/type-utils@7.2.0(eslint@7.0.0)(typescript@5.3.3): + resolution: {integrity: sha512-xHi51adBHo9O9330J8GQYQwrKBqbIPJGZZVQTHHmy200hvkLZFWJIFtAG/7IYTWUyun6DE6w5InDReePJYJlJA==} + engines: {node: ^16.0.0 || >=18.0.0} + peerDependencies: + eslint: ^8.56.0 + typescript: '*' + peerDependenciesMeta: + typescript: + optional: true + dependencies: + '@typescript-eslint/typescript-estree': 7.2.0(typescript@5.3.3) + '@typescript-eslint/utils': 7.2.0(eslint@7.0.0)(typescript@5.3.3) + debug: 4.3.4 + eslint: 7.0.0 + ts-api-utils: 1.3.0(typescript@5.3.3) + typescript: 5.3.3 + transitivePeerDependencies: + - supports-color + dev: true + /@typescript-eslint/types@5.62.0: resolution: {integrity: sha512-87NVngcbVXUahrRTqIK27gD2t5Cu1yuCXxbLcFtCzZGlfyVWWh8mLHkoxzjsB6DDNnvdL+fW8MiwPEJyGJQDgQ==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} @@ -10398,12 +10595,18 @@ packages: /@typescript-eslint/types@6.17.0: resolution: {integrity: sha512-qRKs9tvc3a4RBcL/9PXtKSehI/q8wuU9xYJxe97WFxnzH8NWWtcW3ffNS+EWg8uPvIerhjsEZ+rHtDqOCiH57A==} engines: {node: ^16.0.0 || >=18.0.0} + dev: true /@typescript-eslint/types@6.21.0: resolution: {integrity: sha512-1kFmZ1rOm5epu9NZEZm1kckCDGj5UJEf7P1kliH4LKu/RkwpsfqqGmY2OOcUs18lSlQBKLDYBOGxRVtrMN5lpg==} engines: {node: ^16.0.0 || >=18.0.0} dev: true + /@typescript-eslint/types@7.2.0: + resolution: {integrity: sha512-XFtUHPI/abFhm4cbCDc5Ykc8npOKBSJePY3a3s+lwumt7XWJuzP5cZcfZ610MIPHjQjNsOLlYK8ASPaNG8UiyA==} + engines: {node: ^16.0.0 || >=18.0.0} + dev: true + /@typescript-eslint/typescript-estree@5.62.0(supports-color@9.4.0)(typescript@5.4.4): resolution: {integrity: sha512-CmcQ6uY7b9y694lKdRB8FEel7JbU/40iSAPomu++SjLMntB+2Leay2LO6i8VnJk58MtE9/nQSFIH6jpyRWyYzA==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} @@ -10484,7 +10687,6 @@ packages: typescript: 5.4.4 transitivePeerDependencies: - supports-color - dev: false /@typescript-eslint/typescript-estree@6.17.0(typescript@5.3.3): resolution: {integrity: sha512-gVQe+SLdNPfjlJn5VNGhlOhrXz4cajwFd5kAgWtZ9dCZf4XJf8xmgCTLIqec7aha3JwgLI2CK6GY1043FRxZwg==} @@ -10506,8 +10708,9 @@ packages: typescript: 5.3.3 transitivePeerDependencies: - supports-color + dev: true - /@typescript-eslint/typescript-estree@6.21.0(typescript@5.3.3): + /@typescript-eslint/typescript-estree@6.21.0(typescript@5.4.4): resolution: {integrity: sha512-6npJTkZcO+y2/kr+z0hc4HwNfrrP4kNYh57ek7yCNlrBjWQ1Y0OS7jiZTkgumrvkX5HkEKXFZkkdFNkaW2wmUQ==} engines: {node: ^16.0.0 || >=18.0.0} peerDependencies: @@ -10523,6 +10726,28 @@ packages: is-glob: 4.0.3 minimatch: 9.0.3 semver: 7.6.0 + ts-api-utils: 1.3.0(typescript@5.4.4) + typescript: 5.4.4 + transitivePeerDependencies: + - supports-color + dev: true + + /@typescript-eslint/typescript-estree@7.2.0(typescript@5.3.3): + resolution: {integrity: sha512-cyxS5WQQCoBwSakpMrvMXuMDEbhOo9bNHHrNcEWis6XHx6KF518tkF1wBvKIn/tpq5ZpUYK7Bdklu8qY0MsFIA==} + engines: {node: ^16.0.0 || >=18.0.0} + peerDependencies: + typescript: '*' + peerDependenciesMeta: + typescript: + optional: true + dependencies: + '@typescript-eslint/types': 7.2.0 + '@typescript-eslint/visitor-keys': 7.2.0 + debug: 4.3.4 + globby: 11.1.0 + is-glob: 4.0.3 + minimatch: 9.0.3 + semver: 7.6.0 ts-api-utils: 1.3.0(typescript@5.3.3) typescript: 5.3.3 transitivePeerDependencies: @@ -10566,6 +10791,7 @@ packages: transitivePeerDependencies: - supports-color - typescript + dev: true /@typescript-eslint/utils@5.62.0(eslint@7.32.0)(typescript@5.4.4): resolution: {integrity: sha512-n8oxjeb5aIbPFEtmQxQYOLI0i9n5ySBEY/ZEHHZqKQSFnxio1rv6dthascc9dLuwrL0RC5mPCxB7vnAVGAYWAQ==} @@ -10586,7 +10812,6 @@ packages: - supports-color - typescript dev: false - optional: true /@typescript-eslint/utils@6.17.0(eslint@7.0.0)(typescript@5.3.3): resolution: {integrity: sha512-LofsSPjN/ITNkzV47hxas2JCsNCEnGhVvocfyOcLzT9c/tSZE7SfhS/iWtzP1lKNOEfLhRTZz6xqI8N2RzweSQ==} @@ -10626,7 +10851,7 @@ packages: - typescript dev: true - /@typescript-eslint/utils@6.21.0(eslint@7.32.0)(typescript@5.3.3): + /@typescript-eslint/utils@6.21.0(eslint@7.32.0)(typescript@5.4.4): resolution: {integrity: sha512-NfWVaC8HP9T8cbKQxHcsJBY5YE1O33+jpMwN45qzWWaPDZgLIbo12toGMWnmhvCpd3sIxkpDw3Wv1B3dYrbDQQ==} engines: {node: ^16.0.0 || >=18.0.0} peerDependencies: @@ -10637,7 +10862,7 @@ packages: '@types/semver': 7.5.8 '@typescript-eslint/scope-manager': 6.21.0 '@typescript-eslint/types': 6.21.0 - '@typescript-eslint/typescript-estree': 6.21.0(typescript@5.3.3) + '@typescript-eslint/typescript-estree': 6.21.0(typescript@5.4.4) eslint: 7.32.0 semver: 7.6.0 transitivePeerDependencies: @@ -10645,6 +10870,25 @@ packages: - typescript dev: true + /@typescript-eslint/utils@7.2.0(eslint@7.0.0)(typescript@5.3.3): + resolution: {integrity: sha512-YfHpnMAGb1Eekpm3XRK8hcMwGLGsnT6L+7b2XyRv6ouDuJU1tZir1GS2i0+VXRatMwSI1/UfcyPe53ADkU+IuA==} + engines: {node: ^16.0.0 || >=18.0.0} + peerDependencies: + eslint: ^8.56.0 + dependencies: + '@eslint-community/eslint-utils': 4.4.0(eslint@7.0.0) + '@types/json-schema': 7.0.15 + '@types/semver': 7.5.8 + '@typescript-eslint/scope-manager': 7.2.0 + '@typescript-eslint/types': 7.2.0 + '@typescript-eslint/typescript-estree': 7.2.0(typescript@5.3.3) + eslint: 7.0.0 + semver: 7.6.0 + transitivePeerDependencies: + - supports-color + - typescript + dev: true + /@typescript-eslint/visitor-keys@5.62.0: resolution: {integrity: sha512-07ny+LHRzQXepkGg6w0mFY41fVUNBrL2Roj/++7V1txKugfjm/Ci/qSND03r2RhlJhJYMcTn9AhhSSqQp0Ysyw==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} @@ -10658,6 +10902,7 @@ packages: dependencies: '@typescript-eslint/types': 6.17.0 eslint-visitor-keys: 3.4.3 + dev: true /@typescript-eslint/visitor-keys@6.21.0: resolution: {integrity: sha512-JJtkDduxLi9bivAB+cYOVMtbkqdPOhZ+ZI5LC47MIRrDV4Yn2o+ZnW10Nkmr28xRpSpdJ6Sm42Hjf2+REYXm0A==} @@ -10667,6 +10912,14 @@ packages: eslint-visitor-keys: 3.4.3 dev: true + /@typescript-eslint/visitor-keys@7.2.0: + resolution: {integrity: sha512-c6EIQRHhcpl6+tO8EMR+kjkkV+ugUNXOmeASA1rlzkd8EPIriavpWoiEz1HR/VLhbVIdhqnV6E7JZm00cBDx2A==} + engines: {node: ^16.0.0 || >=18.0.0} + dependencies: + '@typescript-eslint/types': 7.2.0 + eslint-visitor-keys: 3.4.3 + dev: true + /@vercel/nft@0.23.1: resolution: {integrity: sha512-NE0xSmGWVhgHF1OIoir71XAd0W0C1UE3nzFyhpFiMr3rVhetww7NvM1kc41trBsPG37Bh+dE5FYCTMzM/gBu0w==} engines: {node: '>=14'} @@ -10769,6 +11022,17 @@ packages: - '@swc/helpers' dev: true + /@vitejs/plugin-react-swc@3.5.0(vite@5.2.8): + resolution: {integrity: sha512-1PrOvAaDpqlCV+Up8RkAh9qaiUjoDUcjtttyhXDKw53XA6Ve16SOp6cCOpRs8Dj8DqUQs6eTW5YkLcLJjrXAig==} + peerDependencies: + vite: ^4 || ^5 + dependencies: + '@swc/core': 1.4.13 + vite: 5.2.8(@types/node@20.11.17) + transitivePeerDependencies: + - '@swc/helpers' + dev: true + /@vitejs/plugin-react@3.1.0(vite@5.0.10): resolution: {integrity: sha512-AfgcRL8ZBhAlc3BFdigClmTUMISmmzHn7sB2h9U1odvc5U/MjWXsAaz18b/WoppUTDBzxOJwo2VdClfUcItu9g==} engines: {node: ^14.18.0 || >=16.0.0} @@ -11477,7 +11741,7 @@ packages: /@wry/context@0.4.4: resolution: {integrity: sha512-LrKVLove/zw6h2Md/KZyWxIkFM6AoyKp71OqpH9Hiip1csjPVoD3tPxlbQUNxEnHENks3UGgNpSBCAfq9KWuag==} dependencies: - '@types/node': 18.0.0 + '@types/node': 18.19.31 tslib: 1.14.1 /@wry/equality@0.1.11: @@ -12524,7 +12788,7 @@ packages: loader-utils: 2.0.4 make-dir: 3.1.0 schema-utils: 2.7.1 - webpack: 5.91.0(esbuild@0.19.12) + webpack: 5.91.0 /babel-plugin-add-module-exports@1.0.4: resolution: {integrity: sha512-g+8yxHUZ60RcyaUpfNzy56OtWW+x9cyEe9j+CranqLiqbju2yf/Cy6ZtYK40EZxtrdHllzlVZgLmcOUCTlJ7Jg==} @@ -12630,7 +12894,7 @@ packages: '@babel/core': 7.24.4 '@babel/runtime': 7.24.4 '@babel/types': 7.24.0 - gatsby: 5.13.3(babel-eslint@10.1.0)(esbuild@0.19.12)(react-dom@18.2.0)(react@18.2.0)(typescript@5.3.3) + gatsby: 5.13.3(babel-eslint@10.1.0)(react-dom@18.2.0)(react@18.2.0)(typescript@5.4.4) gatsby-core-utils: 4.13.1 dev: false @@ -12947,7 +13211,7 @@ packages: dependencies: ansi-align: 3.0.1 camelcase: 7.0.1 - chalk: 5.0.1 + chalk: 5.3.0 cli-boxes: 3.0.0 string-width: 5.1.2 type-fest: 2.19.0 @@ -12961,7 +13225,7 @@ packages: dependencies: ansi-align: 3.0.1 camelcase: 7.0.1 - chalk: 5.2.0 + chalk: 5.3.0 cli-boxes: 3.0.0 string-width: 5.1.2 type-fest: 2.19.0 @@ -13338,7 +13602,6 @@ packages: /chalk@5.3.0: resolution: {integrity: sha512-dLitG79d+GV1Nb/VYcCDFivJeK1hiukt9QjRNVOsUtTy1rR1YJsmpGGTZ3qJos+uw7WmWF4wUwBd9jxjocFC2w==} engines: {node: ^12.17.0 || ^14.13 || >=16.0.0} - dev: true /change-case-all@1.0.14: resolution: {integrity: sha512-CWVm2uT7dmSHdO/z1CXT/n47mWonyypzBbuCy5tN7uMg22BsfkhwT6oHmFCAk+gL1LOOxhdbB9SZz3J1KTY3gA==} @@ -13784,7 +14047,7 @@ packages: resolution: {integrity: sha512-DP3FpjsiDDvnQC1OJBsdOJZPuy7r0o6sepY2T5M3L/d2nrE23O/ErFkEqyY3ngVL1ZhTj/H0pCMNObZGkEOaaQ==} engines: {node: '>=12.20.0'} dependencies: - chalk: 5.2.0 + chalk: 5.3.0 filter-obj: 3.0.0 is-plain-obj: 4.1.0 jest-validate: 27.5.1 @@ -13794,7 +14057,7 @@ packages: resolution: {integrity: sha512-Soe5lerRg3erMRgYC0EC696/8dMCGpBzcQchFfi55Yrkja8F+P7cUt0LVTIg7u5ob5BexLZ/F1kO+ejmv+nq8w==} engines: {node: '>=14.18.0'} dependencies: - chalk: 5.2.0 + chalk: 5.3.0 is-plain-obj: 4.1.0 dev: false @@ -14417,7 +14680,7 @@ packages: postcss-value-parser: 4.2.0 schema-utils: 3.3.0 semver: 7.6.0 - webpack: 5.91.0(esbuild@0.19.12) + webpack: 5.91.0 /css-minimizer-webpack-plugin@2.0.0(webpack@5.91.0): resolution: {integrity: sha512-cG/uc94727tx5pBNtb1Sd7gvUPzwmcQi1lkpfqTpdkuNq75hJCw7bIVsCNijLm4dhDcr1atvuysl2rZqOG8Txw==} @@ -14439,7 +14702,7 @@ packages: schema-utils: 3.3.0 serialize-javascript: 5.0.1 source-map: 0.6.1 - webpack: 5.91.0(esbuild@0.19.12) + webpack: 5.91.0 /css-select@4.3.0: resolution: {integrity: sha512-wPpOYtnsVontu2mODhA19JrqWxNsfdatRKd64kmpRbQgh1KtItko5sTnEpPdpSaJszTOhEMlF/RPz28qj4HqhQ==} @@ -16206,7 +16469,7 @@ packages: dependencies: '@types/cookie': 0.4.1 '@types/cors': 2.8.17 - '@types/node': 18.0.0 + '@types/node': 18.19.31 accepts: 1.3.8 base64id: 2.0.0 cookie: 0.4.2 @@ -16570,6 +16833,7 @@ packages: '@esbuild/win32-arm64': 0.19.12 '@esbuild/win32-ia32': 0.19.12 '@esbuild/win32-x64': 0.19.12 + dev: true /esbuild@0.20.0: resolution: {integrity: sha512-6iwE3Y2RVYCME1jLpBqq7LQWK3MW6vjV2bZy6gt/WrqkY+WE74Spyc0ThAOYpMtITvnjX09CrC6ym7A/m9mebA==} @@ -16751,17 +17015,55 @@ packages: typescript: optional: true dependencies: - '@typescript-eslint/eslint-plugin': 5.62.0(@typescript-eslint/parser@5.62.0)(eslint@7.32.0)(typescript@5.3.3) - '@typescript-eslint/parser': 5.62.0(eslint@7.32.0)(typescript@5.3.3) + '@typescript-eslint/eslint-plugin': 5.62.0(@typescript-eslint/parser@5.62.0)(eslint@7.32.0)(typescript@5.3.3) + '@typescript-eslint/parser': 5.62.0(eslint@7.32.0)(typescript@5.3.3) + babel-eslint: 10.1.0(eslint@7.32.0) + confusing-browser-globals: 1.0.11 + eslint: 7.32.0 + eslint-plugin-flowtype: 5.10.0(eslint@7.32.0) + eslint-plugin-import: 2.29.1(@typescript-eslint/parser@6.17.0)(eslint@7.32.0) + eslint-plugin-jsx-a11y: 6.8.0(eslint@7.32.0) + eslint-plugin-react: 7.34.1(eslint@7.32.0) + eslint-plugin-react-hooks: 4.6.0(eslint@7.32.0) + typescript: 5.3.3 + dev: true + + /eslint-config-react-app@6.0.0(@typescript-eslint/eslint-plugin@5.62.0)(@typescript-eslint/parser@5.62.0)(babel-eslint@10.1.0)(eslint-plugin-flowtype@5.10.0)(eslint-plugin-import@2.29.1)(eslint-plugin-jsx-a11y@6.8.0)(eslint-plugin-react-hooks@4.6.0)(eslint-plugin-react@7.34.1)(eslint@7.32.0)(typescript@5.4.4): + resolution: {integrity: sha512-bpoAAC+YRfzq0dsTk+6v9aHm/uqnDwayNAXleMypGl6CpxI9oXXscVHo4fk3eJPIn+rsbtNetB4r/ZIidFIE8A==} + engines: {node: ^10.12.0 || >=12.0.0} + peerDependencies: + '@typescript-eslint/eslint-plugin': ^4.0.0 + '@typescript-eslint/parser': ^4.0.0 + babel-eslint: ^10.0.0 + eslint: ^7.5.0 + eslint-plugin-flowtype: ^5.2.0 + eslint-plugin-import: ^2.22.0 + eslint-plugin-jest: ^24.0.0 + eslint-plugin-jsx-a11y: ^6.3.1 + eslint-plugin-react: ^7.20.3 + eslint-plugin-react-hooks: ^4.0.8 + eslint-plugin-testing-library: ^3.9.0 + typescript: '*' + peerDependenciesMeta: + eslint-plugin-jest: + optional: true + eslint-plugin-testing-library: + optional: true + typescript: + optional: true + dependencies: + '@typescript-eslint/eslint-plugin': 5.62.0(@typescript-eslint/parser@5.62.0)(eslint@7.32.0)(typescript@5.4.4) + '@typescript-eslint/parser': 5.62.0(eslint@7.32.0)(typescript@5.4.4) babel-eslint: 10.1.0(eslint@7.32.0) confusing-browser-globals: 1.0.11 eslint: 7.32.0 eslint-plugin-flowtype: 5.10.0(eslint@7.32.0) - eslint-plugin-import: 2.29.1(@typescript-eslint/parser@6.17.0)(eslint@7.32.0) + eslint-plugin-import: 2.29.1(@typescript-eslint/parser@5.62.0)(eslint@7.32.0) eslint-plugin-jsx-a11y: 6.8.0(eslint@7.32.0) eslint-plugin-react: 7.34.1(eslint@7.32.0) eslint-plugin-react-hooks: 4.6.0(eslint@7.32.0) - typescript: 5.3.3 + typescript: 5.4.4 + dev: false /eslint-import-resolver-node@0.3.9: resolution: {integrity: sha512-WFj2isz22JahUv+B788TlO3N6zL3nNJGU8CcZbPZvVEkBPaJdCV4vy5wyghty5ROFbCRnm132v8BScu5/1BQ8g==} @@ -16772,6 +17074,34 @@ packages: transitivePeerDependencies: - supports-color + /eslint-module-utils@2.8.1(@typescript-eslint/parser@5.62.0)(eslint-import-resolver-node@0.3.9)(eslint@7.32.0): + resolution: {integrity: sha512-rXDXR3h7cs7dy9RNpUlQf80nX31XWJEyGq1tRMo+6GsO5VmTe4UTwtmonAD4ZkAsrfMVDA2wlGJ3790Ys+D49Q==} + engines: {node: '>=4'} + peerDependencies: + '@typescript-eslint/parser': '*' + eslint: '*' + eslint-import-resolver-node: '*' + eslint-import-resolver-typescript: '*' + eslint-import-resolver-webpack: '*' + peerDependenciesMeta: + '@typescript-eslint/parser': + optional: true + eslint: + optional: true + eslint-import-resolver-node: + optional: true + eslint-import-resolver-typescript: + optional: true + eslint-import-resolver-webpack: + optional: true + dependencies: + '@typescript-eslint/parser': 5.62.0(eslint@7.32.0)(typescript@5.4.4) + debug: 3.2.7 + eslint: 7.32.0 + eslint-import-resolver-node: 0.3.9 + transitivePeerDependencies: + - supports-color + /eslint-module-utils@2.8.1(@typescript-eslint/parser@6.17.0)(eslint-import-resolver-node@0.3.9)(eslint@7.0.0): resolution: {integrity: sha512-rXDXR3h7cs7dy9RNpUlQf80nX31XWJEyGq1tRMo+6GsO5VmTe4UTwtmonAD4ZkAsrfMVDA2wlGJ3790Ys+D49Q==} engines: {node: '>=4'} @@ -16828,6 +17158,7 @@ packages: eslint-import-resolver-node: 0.3.9 transitivePeerDependencies: - supports-color + dev: true /eslint-plugin-flowtype@5.10.0(eslint@7.32.0): resolution: {integrity: sha512-vcz32f+7TP+kvTUyMXZmCnNujBQZDNmcqPImw8b9PZ+16w1Qdm6ryRuYZYVaG9xRqqmAPr2Cs9FAX5gN+x/bjw==} @@ -16848,13 +17179,13 @@ packages: '@formatjs/ts-transformer': 3.13.9 '@types/eslint': 8.56.7 '@types/picomatch': 2.3.3 - '@typescript-eslint/utils': 6.21.0(eslint@7.32.0)(typescript@5.3.3) + '@typescript-eslint/utils': 6.21.0(eslint@7.32.0)(typescript@5.4.4) emoji-regex: 10.3.0 eslint: 7.32.0 magic-string: 0.30.9 picomatch: 2.3.1 tslib: 2.6.2 - typescript: 5.3.3 + typescript: 5.4.4 unicode-emoji-utils: 1.2.0 transitivePeerDependencies: - supports-color @@ -16871,7 +17202,7 @@ packages: '@typescript-eslint/parser': optional: true dependencies: - '@typescript-eslint/parser': 5.62.0(eslint@7.32.0)(typescript@5.3.3) + '@typescript-eslint/parser': 5.62.0(eslint@7.32.0)(typescript@5.4.4) array-includes: 3.1.8 array.prototype.findlastindex: 1.2.5 array.prototype.flat: 1.3.2 @@ -16880,7 +17211,7 @@ packages: doctrine: 2.1.0 eslint: 7.32.0 eslint-import-resolver-node: 0.3.9 - eslint-module-utils: 2.8.1(@typescript-eslint/parser@6.17.0)(eslint-import-resolver-node@0.3.9)(eslint@7.32.0) + eslint-module-utils: 2.8.1(@typescript-eslint/parser@5.62.0)(eslint-import-resolver-node@0.3.9)(eslint@7.32.0) hasown: 2.0.2 is-core-module: 2.13.1 is-glob: 4.0.3 @@ -16963,6 +17294,7 @@ packages: - eslint-import-resolver-typescript - eslint-import-resolver-webpack - supports-color + dev: true /eslint-plugin-jsx-a11y@6.8.0(eslint@7.32.0): resolution: {integrity: sha512-Hdh937BS3KdwwbBaKd5+PLCOmYY6U4f2h9Z2ktwtNKvIdIEu137rjYbcb9ApSbVJfWxANNuiKTD/9tOKjK9qOA==} @@ -17028,6 +17360,14 @@ packages: dependencies: eslint: 7.32.0 + /eslint-plugin-react-refresh@0.4.6(eslint@7.0.0): + resolution: {integrity: sha512-NjGXdm7zgcKRkKMua34qVO9doI7VOxZ6ancSvBELJSSoX97jyndXcSoa8XBh69JoB31dNz3EEzlMcizZl7LaMA==} + peerDependencies: + eslint: '>=7' + dependencies: + eslint: 7.0.0 + dev: true + /eslint-plugin-react@7.33.2(eslint@7.0.0): resolution: {integrity: sha512-73QQMKALArI8/7xGLNI/3LylrEYrlKZSb5C9+q3OtOewTnMQi5cT+aE9E41sLCmli3I9PGGmD1yiZydyo4FEPw==} engines: {node: '>=4'} @@ -17175,7 +17515,7 @@ packages: micromatch: 4.0.5 normalize-path: 3.0.0 schema-utils: 3.3.0 - webpack: 5.91.0(esbuild@0.19.12) + webpack: 5.91.0 /eslint@7.0.0: resolution: {integrity: sha512-qY1cwdOxMONHJfGqw52UOpZDeqXy8xmD0u8CT6jIstil72jkhURC704W8CFyTPDPllz4z4lu0Ql1+07PG/XdIg==} @@ -17538,6 +17878,19 @@ packages: - utf-8-validate dev: false + /express-ws@5.0.2(express@4.19.2): + resolution: {integrity: sha512-0uvmuk61O9HXgLhGl3QhNSEtRsQevtmbL94/eILaliEADZBHZOQUAiHFrGPrgsjikohyrmSG5g+sCfASTt0lkQ==} + engines: {node: '>=4.5.0'} + peerDependencies: + express: ^4.0.0 || ^5.0.0-alpha.1 + dependencies: + express: 4.19.2 + ws: 7.5.9 + transitivePeerDependencies: + - bufferutil + - utf-8-validate + dev: false + /express@4.18.2: resolution: {integrity: sha512-5/PsL6iGPdfQ/lKM1UuielYgv3BUoJfz1aUwU9vHZ+J7gyvwdQXFEBIEIaxeGf0GIcreATNyBExtalisDbuMqQ==} engines: {node: '>= 0.10.0'} @@ -17979,7 +18332,7 @@ packages: dependencies: loader-utils: 2.0.4 schema-utils: 3.3.0 - webpack: 5.91.0(esbuild@0.19.12) + webpack: 5.91.0 /file-system-cache@2.3.0: resolution: {integrity: sha512-l4DMNdsIPsVnKrgEXbJwDJsA5mB8rGwHYERMgqQx/xAUtChPJMre1bXBzDEqqVbWv9AIbFezXMxeEkZDSrXUOQ==} @@ -18349,6 +18702,39 @@ packages: tapable: 1.1.3 typescript: 5.3.3 webpack: 5.91.0(esbuild@0.19.12) + dev: true + + /fork-ts-checker-webpack-plugin@6.5.3(eslint@7.32.0)(typescript@5.4.4)(webpack@5.91.0): + resolution: {integrity: sha512-SbH/l9ikmMWycd5puHJKTkZJKddF4iRLyW3DeZ08HTI7NGyLS38MXd/KGgeWumQO7YNQbW2u/NtPT2YowbPaGQ==} + engines: {node: '>=10', yarn: '>=1.0.0'} + peerDependencies: + eslint: '>= 6' + typescript: '>= 2.7' + vue-template-compiler: '*' + webpack: '>= 4' + peerDependenciesMeta: + eslint: + optional: true + vue-template-compiler: + optional: true + dependencies: + '@babel/code-frame': 7.24.2 + '@types/json-schema': 7.0.15 + chalk: 4.1.2 + chokidar: 3.6.0 + cosmiconfig: 6.0.0 + deepmerge: 4.3.1 + eslint: 7.32.0 + fs-extra: 9.1.0 + glob: 7.2.3 + memfs: 3.5.3 + minimatch: 3.1.2 + schema-utils: 2.7.0 + semver: 7.6.0 + tapable: 1.1.3 + typescript: 5.4.4 + webpack: 5.91.0 + dev: false /form-data-encoder@2.1.4: resolution: {integrity: sha512-yDYSgNMraqvnxiEXO4hi88+YZxaHC6QKzb5N84iRCTDeRO7ZALpir/lVmf/uXUhnwUr2O4HU8s/n6x+yNjQkHw==} @@ -18623,7 +19009,7 @@ packages: dependencies: '@types/node-fetch': 2.6.11 fs-extra: 9.1.0 - gatsby: 5.13.3(babel-eslint@10.1.0)(esbuild@0.19.12)(react-dom@18.2.0)(react@18.2.0)(typescript@5.3.3) + gatsby: 5.13.3(babel-eslint@10.1.0)(react-dom@18.2.0)(react@18.2.0)(typescript@5.4.4) lodash: 4.17.21 node-fetch: 2.7.0 p-queue: 6.6.2 @@ -18785,7 +19171,7 @@ packages: chokidar: 3.6.0 fs-exists-cached: 1.0.0 fs-extra: 11.2.0 - gatsby: 5.13.3(babel-eslint@10.1.0)(esbuild@0.19.12)(react-dom@18.2.0)(react@18.2.0)(typescript@5.3.3) + gatsby: 5.13.3(babel-eslint@10.1.0)(react-dom@18.2.0)(react@18.2.0)(typescript@5.4.4) gatsby-core-utils: 4.13.1 gatsby-page-utils: 3.13.1 gatsby-plugin-utils: 4.13.1(gatsby@5.13.3)(graphql@16.8.1) @@ -18854,7 +19240,7 @@ packages: debug: 4.3.4 filenamify: 4.3.0 fs-extra: 11.2.0 - gatsby: 5.13.3(babel-eslint@10.1.0)(esbuild@0.19.12)(react-dom@18.2.0)(react@18.2.0)(typescript@5.3.3) + gatsby: 5.13.3(babel-eslint@10.1.0)(react-dom@18.2.0)(react@18.2.0)(typescript@5.4.4) gatsby-core-utils: 4.13.1 gatsby-plugin-utils: 4.13.1(gatsby@5.13.3)(graphql@16.8.1) lodash: 4.17.21 @@ -18913,7 +19299,7 @@ packages: '@babel/preset-typescript': 7.24.1(@babel/core@7.24.4) '@babel/runtime': 7.24.4 babel-plugin-remove-graphql-queries: 5.13.1(@babel/core@7.24.4)(gatsby@5.13.3) - gatsby: 5.13.3(babel-eslint@10.1.0)(esbuild@0.19.12)(react-dom@18.2.0)(react@18.2.0)(typescript@5.3.3) + gatsby: 5.13.3(babel-eslint@10.1.0)(react-dom@18.2.0)(react@18.2.0)(typescript@5.4.4) transitivePeerDependencies: - supports-color dev: false @@ -18951,7 +19337,7 @@ packages: '@babel/runtime': 7.24.4 fastq: 1.17.1 fs-extra: 11.2.0 - gatsby: 5.13.3(babel-eslint@10.1.0)(esbuild@0.19.12)(react-dom@18.2.0)(react@18.2.0)(typescript@5.3.3) + gatsby: 5.13.3(babel-eslint@10.1.0)(react-dom@18.2.0)(react@18.2.0)(typescript@5.4.4) gatsby-core-utils: 4.13.1 gatsby-sharp: 1.13.0 graphql: 16.8.1 @@ -19453,7 +19839,7 @@ packages: - webpack-hot-middleware - webpack-plugin-serve - /gatsby@5.13.3(babel-eslint@10.1.0)(esbuild@0.19.12)(react-dom@18.2.0)(react@18.2.0)(typescript@5.3.3): + /gatsby@5.13.3(babel-eslint@10.1.0)(react-dom@18.2.0)(react@18.2.0)(typescript@5.4.4): resolution: {integrity: sha512-SSnGpjswK20BQORcvTbtK8eI+W4QUG+u8rdVswB4suva6BfvTakW2wiktj7E2MdO4NjRvlgJjF5dUUncU5nldA==} engines: {node: '>=18.0.0'} hasBin: true @@ -19487,8 +19873,8 @@ packages: '@pmmmwh/react-refresh-webpack-plugin': 0.5.11(react-refresh@0.14.0)(webpack@5.91.0) '@sigmacomputing/babel-plugin-lodash': 3.3.5 '@types/http-proxy': 1.17.14 - '@typescript-eslint/eslint-plugin': 5.62.0(@typescript-eslint/parser@5.62.0)(eslint@7.32.0)(typescript@5.3.3) - '@typescript-eslint/parser': 5.62.0(eslint@7.32.0)(typescript@5.3.3) + '@typescript-eslint/eslint-plugin': 5.62.0(@typescript-eslint/parser@5.62.0)(eslint@7.32.0)(typescript@5.4.4) + '@typescript-eslint/parser': 5.62.0(eslint@7.32.0)(typescript@5.4.4) '@vercel/webpack-asset-relocator-loader': 1.7.3 acorn-loose: 8.4.0 acorn-walk: 8.3.2 @@ -19526,9 +19912,9 @@ packages: enhanced-resolve: 5.16.0 error-stack-parser: 2.1.4 eslint: 7.32.0 - eslint-config-react-app: 6.0.0(@typescript-eslint/eslint-plugin@5.62.0)(@typescript-eslint/parser@5.62.0)(babel-eslint@10.1.0)(eslint-plugin-flowtype@5.10.0)(eslint-plugin-import@2.29.1)(eslint-plugin-jsx-a11y@6.8.0)(eslint-plugin-react-hooks@4.6.0)(eslint-plugin-react@7.34.1)(eslint@7.32.0)(typescript@5.3.3) + eslint-config-react-app: 6.0.0(@typescript-eslint/eslint-plugin@5.62.0)(@typescript-eslint/parser@5.62.0)(babel-eslint@10.1.0)(eslint-plugin-flowtype@5.10.0)(eslint-plugin-import@2.29.1)(eslint-plugin-jsx-a11y@6.8.0)(eslint-plugin-react-hooks@4.6.0)(eslint-plugin-react@7.34.1)(eslint@7.32.0)(typescript@5.4.4) eslint-plugin-flowtype: 5.10.0(eslint@7.32.0) - eslint-plugin-import: 2.29.1(@typescript-eslint/parser@6.17.0)(eslint@7.32.0) + eslint-plugin-import: 2.29.1(@typescript-eslint/parser@5.62.0)(eslint@7.32.0) eslint-plugin-jsx-a11y: 6.8.0(eslint@7.32.0) eslint-plugin-react: 7.34.1(eslint@7.32.0) eslint-plugin-react-hooks: 4.6.0(eslint@7.32.0) @@ -19600,7 +19986,7 @@ packages: query-string: 6.14.1 raw-loader: 4.0.2(webpack@5.91.0) react: 18.2.0 - react-dev-utils: 12.0.1(eslint@7.32.0)(typescript@5.3.3)(webpack@5.91.0) + react-dev-utils: 12.0.1(eslint@7.32.0)(typescript@5.4.4)(webpack@5.91.0) react-dom: 18.2.0(react@18.2.0) react-refresh: 0.14.0 react-server-dom-webpack: 0.0.0-experimental-c8b778b7f-20220825(react@18.2.0)(webpack@5.91.0) @@ -19618,13 +20004,13 @@ packages: strip-ansi: 6.0.1 style-loader: 2.0.0(webpack@5.91.0) style-to-object: 0.4.4 - terser-webpack-plugin: 5.3.10(esbuild@0.19.12)(webpack@5.91.0) + terser-webpack-plugin: 5.3.10(webpack@5.91.0) tmp: 0.2.3 true-case-path: 2.2.1 type-of: 2.0.1 url-loader: 4.1.1(file-loader@6.2.0)(webpack@5.91.0) uuid: 8.3.2 - webpack: 5.91.0(esbuild@0.19.12) + webpack: 5.91.0 webpack-dev-middleware: 4.3.0(webpack@5.91.0) webpack-merge: 5.10.0 webpack-stats-plugin: 1.1.3 @@ -19813,6 +20199,12 @@ packages: es-errors: 1.3.0 get-intrinsic: 1.2.4 + /get-tsconfig@4.7.3: + resolution: {integrity: sha512-ZvkrzoUA0PQZM6fy6+/Hce561s+faD1rsNwhnO5FelNjyy7EMGJ3Rz1AQ8GYDWjhRs/7dBLOEJvhK8MiEJOAFg==} + dependencies: + resolve-pkg-maps: 1.0.0 + dev: true + /get-value@2.0.6: resolution: {integrity: sha512-Ln0UQDlxH1BapMu3GPtf7CuYNwRZf2gwCuPqbyG6pB8WfmFpzqcy4xtAaAMUhnNqjMKTiCPZG2oMT3YSx8U2NA==} engines: {node: '>=0.10.0'} @@ -22531,7 +22923,7 @@ packages: resolution: {integrity: sha512-KWYVV1c4i+jbMpaBC+U++4Va0cp8OisU185o73T1vo99hqi7w8tSJfUXYswwqqrjzwxa6KpRK54WhPvwf5w6PQ==} engines: {node: '>= 10.13.0'} dependencies: - '@types/node': 18.0.0 + '@types/node': 18.19.31 merge-stream: 2.0.0 supports-color: 7.2.0 @@ -22539,7 +22931,7 @@ packages: resolution: {integrity: sha512-7vuh85V5cdDofPyxn58nrPjBktZo0u9x1g8WtjQol+jZDaE+fhN+cIvTj11GndBnMnyfrUOG1sZQxCdjKh+DKg==} engines: {node: '>= 10.13.0'} dependencies: - '@types/node': 18.0.0 + '@types/node': 18.19.31 merge-stream: 2.0.0 supports-color: 8.1.1 @@ -23260,7 +23652,7 @@ packages: resolution: {integrity: sha512-l0x2DvrW294C9uDCoQe1VSU4gf529FkSZ6leBl4TiqZH/e+0R7hSfHQBNut2mNygDgHwvYHfFLn6Oxb3VWj2rA==} engines: {node: '>=12'} dependencies: - chalk: 5.2.0 + chalk: 5.3.0 is-unicode-supported: 1.3.0 dev: false @@ -24269,7 +24661,7 @@ packages: dependencies: loader-utils: 2.0.4 schema-utils: 3.3.0 - webpack: 5.91.0(esbuild@0.19.12) + webpack: 5.91.0 webpack-sources: 1.4.3 /mini-svg-data-uri@1.4.4: @@ -24299,6 +24691,7 @@ packages: engines: {node: '>=16 || 14 >=14.17'} dependencies: brace-expansion: 2.0.1 + dev: true /minimatch@9.0.4: resolution: {integrity: sha512-KqWh+VchfxcMNRAJjj2tnsSJdNbHsVgnkBhTNrW7AjVo6OvLtxw8zfT9oLw1JSohlFzJ8jCoTgaoXvJ+kHt6fw==} @@ -25121,7 +25514,7 @@ packages: dependencies: loader-utils: 2.0.4 schema-utils: 3.3.0 - webpack: 5.91.0(esbuild@0.19.12) + webpack: 5.91.0 /nullthrows@1.1.1: resolution: {integrity: sha512-2vPPEi+Z7WqML2jZYddDIfy5Dqb0r2fze2zTxNNknZaFpVHU3mFB3R+DWeJWGVx0ecvttSGlJTI+WG+8Z4cDWw==} @@ -25410,7 +25803,7 @@ packages: resolution: {integrity: sha512-ERAyNnZOfqM+Ao3RAvIXkYh5joP220yf59gVe2X/cI6SiCxIdi4c9HZKZD8R6q/RDXEje1THBju6iExiSsgJaQ==} engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} dependencies: - chalk: 5.2.0 + chalk: 5.3.0 cli-cursor: 4.0.0 cli-spinners: 2.9.2 is-interactive: 2.0.0 @@ -26376,7 +26769,7 @@ packages: klona: 2.0.6 postcss: 8.4.38 semver: 7.6.0 - webpack: 5.91.0(esbuild@0.19.12) + webpack: 5.91.0 /postcss-merge-longhand@5.1.7(postcss@8.4.38): resolution: {integrity: sha512-YCI9gZB+PLNskrK0BB3/2OzPnGhPkBEwmwhfYk1ilBHYVAZB7/tkTHFBAnCrvBBOmeYyMYw3DMjT55SyxMBzjQ==} @@ -27371,7 +27764,7 @@ packages: dependencies: loader-utils: 2.0.4 schema-utils: 3.3.0 - webpack: 5.91.0(esbuild@0.19.12) + webpack: 5.91.0 /rbush@3.0.1: resolution: {integrity: sha512-XRaVO0YecOpEuIvbhbpTrZgoiI6xBlz6hnlr6EHhd+0x9ase6EmeN+hdwwUaJvLcsFFQ8iWVF1GAK1yB0BWi0w==} @@ -27537,6 +27930,49 @@ packages: - eslint - supports-color - vue-template-compiler + dev: true + + /react-dev-utils@12.0.1(eslint@7.32.0)(typescript@5.4.4)(webpack@5.91.0): + resolution: {integrity: sha512-84Ivxmr17KjUupyqzFode6xKhjwuEJDROWKJy/BthkL7Wn6NJ8h4WE6k/exAv6ImS+0oZLRRW5j/aINMHyeGeQ==} + engines: {node: '>=14'} + peerDependencies: + typescript: '>=2.7' + webpack: '>=4' + peerDependenciesMeta: + typescript: + optional: true + dependencies: + '@babel/code-frame': 7.24.2 + address: 1.2.2 + browserslist: 4.23.0 + chalk: 4.1.2 + cross-spawn: 7.0.3 + detect-port-alt: 1.1.6 + escape-string-regexp: 4.0.0 + filesize: 8.0.7 + find-up: 5.0.0 + fork-ts-checker-webpack-plugin: 6.5.3(eslint@7.32.0)(typescript@5.4.4)(webpack@5.91.0) + global-modules: 2.0.0 + globby: 11.1.0 + gzip-size: 6.0.0 + immer: 9.0.21 + is-root: 2.1.0 + loader-utils: 3.2.1 + open: 8.4.2 + pkg-up: 3.1.0 + prompts: 2.4.2 + react-error-overlay: 6.0.11 + recursive-readdir: 2.2.3 + shell-quote: 1.8.1 + strip-ansi: 6.0.1 + text-table: 0.2.0 + typescript: 5.4.4 + webpack: 5.91.0 + transitivePeerDependencies: + - eslint + - supports-color + - vue-template-compiler + dev: false /react-dnd-html5-backend@14.1.0: resolution: {integrity: sha512-6ONeqEC3XKVf4eVmMTe0oPds+c5B9Foyj8p/ZKLb7kL2qh9COYxiBHv3szd6gztqi/efkmriywLUVlPotqoJyw==} @@ -27936,7 +28372,7 @@ packages: loose-envify: 1.4.0 neo-async: 2.6.2 react: 18.2.0 - webpack: 5.91.0(esbuild@0.19.12) + webpack: 5.91.0 /react-split-pane@0.1.92(react-dom@18.2.0)(react@18.2.0): resolution: {integrity: sha512-GfXP1xSzLMcLJI5BM36Vh7GgZBpy+U/X0no+VM3fxayv+p1Jly5HpMofZJraeaMl73b3hvlr+N9zJKvLB/uz9w==} @@ -28722,6 +29158,10 @@ packages: resolution: {integrity: sha512-C7rARubxI8bXFNB/hqcp/4iUeIXJhJZvFPFPiSPRnhU5UPxzMFIl+2E6yY6c4k9giDJAhtV+enfA+G89N6Csng==} dev: false + /resolve-pkg-maps@1.0.0: + resolution: {integrity: sha512-seS2Tj26TBVOC2NIc2rOe2y2ZO7efxITtLZcGSOnHHNOQ7CkiUBfw0Iw2ck6xkIhPwLhKNLS8BO+hEpngQlqzw==} + dev: true + /resolve-protobuf-schema@2.1.0: resolution: {integrity: sha512-kI5ffTiZWmJaS/huM8wZfEMer1eRd7oJQhDuxeCLe3t7N7mX3z94CN0xPxBQxFYQTSNz9T0i+v6inKqSdK8xrQ==} dependencies: @@ -30290,7 +30730,7 @@ packages: dependencies: loader-utils: 2.0.4 schema-utils: 3.3.0 - webpack: 5.91.0(esbuild@0.19.12) + webpack: 5.91.0 /style-to-object@0.3.0: resolution: {integrity: sha512-CzFnRRXhzWIdItT3OmF8SQfWyahHhjq3HwcMNCNLn+N7klOOqPjMeG/4JSu77D7ypZdGvSzvkrbyeTMizz2VrA==} @@ -30682,6 +31122,7 @@ packages: serialize-javascript: 6.0.2 terser: 5.30.3 webpack: 5.91.0(esbuild@0.19.12) + dev: true /terser-webpack-plugin@5.3.10(webpack@5.91.0): resolution: {integrity: sha512-BKFPWlPDndPs+NGGCr1U59t0XScL5317Y0UReNrHaw9/FwhPENlq6bfgs+4yPfyP51vqC1bQ4rp1EfXW5ZSH9w==} @@ -31026,6 +31467,16 @@ packages: typescript: '>=4.2.0' dependencies: typescript: 5.3.3 + dev: true + + /ts-api-utils@1.3.0(typescript@5.4.4): + resolution: {integrity: sha512-UQMIo7pb8WRomKR1/+MFVLTroIvDVtMX3K6OUir8ynLyzB8Jeriont2bTAtmNPa1ekAgN7YPDyf6V+ygrdU+eQ==} + engines: {node: '>=16'} + peerDependencies: + typescript: '>=4.2.0' + dependencies: + typescript: 5.4.4 + dev: true /ts-dedent@2.2.0: resolution: {integrity: sha512-q5W7tVM71e2xjHZTlgfTDoPF/SmqKG5hddq9SzR49CH2hayqRKJtQ4mtRlSxKaJlR/+9rEM+mnBHf7I2/BQcpQ==} @@ -31174,7 +31625,17 @@ packages: dependencies: tslib: 1.14.1 typescript: 5.4.4 - dev: false + + /tsx@4.7.1: + resolution: {integrity: sha512-8d6VuibXHtlN5E3zFkgY8u4DX7Y3Z27zvvPKVmLon/D4AjuKzarkUBTLDBgj9iTQ0hg5xM7c/mYiRVM+HETf0g==} + engines: {node: '>=18.0.0'} + hasBin: true + dependencies: + esbuild: 0.19.12 + get-tsconfig: 4.7.3 + optionalDependencies: + fsevents: 2.3.3 + dev: true /tunnel-agent@0.6.0: resolution: {integrity: sha512-McnNiV1l8RYeY8tBgEpuodCC1mLUdbSN+CYBL7kJsJNInOP8UjDDEwdk6Mw60vdLLrr5NHKZhMAOSrR2NZuQ+w==} @@ -31789,7 +32250,7 @@ packages: engines: {node: '>=14.16'} dependencies: boxen: 7.1.1 - chalk: 5.2.0 + chalk: 5.3.0 configstore: 6.0.0 has-yarn: 3.0.0 import-lazy: 4.0.0 @@ -31846,7 +32307,7 @@ packages: loader-utils: 2.0.4 mime-types: 2.1.35 schema-utils: 3.3.0 - webpack: 5.91.0(esbuild@0.19.12) + webpack: 5.91.0 /url@0.11.3: resolution: {integrity: sha512-6hxOLGfZASQK/cijlZnZJTq8OXAkt/3YGfQX45vvMYXpZoo8NdWZcY73K108Jf759lS1Bv/8wXnHDTSz17dSRw==} @@ -32114,30 +32575,6 @@ packages: - rollup dev: true - /vite-node@0.34.6(@types/node@18.0.0): - resolution: {integrity: sha512-nlBMJ9x6n7/Amaz6F3zJ97EBwR2FkzhBRxF5e+jE6LA3yi6Wtc2lyTij1OnDMIr34v5g/tVQtsVAzhT0jc5ygA==} - engines: {node: '>=v14.18.0'} - hasBin: true - requiresBuild: true - dependencies: - cac: 6.7.14 - debug: 4.3.4 - mlly: 1.6.1 - pathe: 1.1.2 - picocolors: 1.0.0 - vite: 5.2.8(@types/node@18.0.0) - transitivePeerDependencies: - - '@types/node' - - less - - lightningcss - - sass - - stylus - - sugarss - - supports-color - - terser - dev: false - optional: true - /vite-node@0.34.6(@types/node@18.19.31): resolution: {integrity: sha512-nlBMJ9x6n7/Amaz6F3zJ97EBwR2FkzhBRxF5e+jE6LA3yi6Wtc2lyTij1OnDMIr34v5g/tVQtsVAzhT0jc5ygA==} engines: {node: '>=v14.18.0'} @@ -32324,6 +32761,7 @@ packages: rollup: 4.14.1 optionalDependencies: fsevents: 2.3.3 + dev: true /vite@5.2.8(@types/node@18.19.31): resolution: {integrity: sha512-OyZR+c1CE8yeHw5V5t59aXsUPPVTHMDjEZz8MgguLL/Q7NblxhZUlTu9xSPqlsUO/y+X7dlU05jdhvyycD55DA==} @@ -32360,6 +32798,42 @@ packages: optionalDependencies: fsevents: 2.3.3 + /vite@5.2.8(@types/node@20.11.17): + resolution: {integrity: sha512-OyZR+c1CE8yeHw5V5t59aXsUPPVTHMDjEZz8MgguLL/Q7NblxhZUlTu9xSPqlsUO/y+X7dlU05jdhvyycD55DA==} + engines: {node: ^18.0.0 || >=20.0.0} + hasBin: true + peerDependencies: + '@types/node': ^18.0.0 || >=20.0.0 + less: '*' + lightningcss: ^1.21.0 + sass: '*' + stylus: '*' + sugarss: '*' + terser: ^5.4.0 + peerDependenciesMeta: + '@types/node': + optional: true + less: + optional: true + lightningcss: + optional: true + sass: + optional: true + stylus: + optional: true + sugarss: + optional: true + terser: + optional: true + dependencies: + '@types/node': 20.11.17 + esbuild: 0.20.2 + postcss: 8.4.38 + rollup: 4.14.1 + optionalDependencies: + fsevents: 2.3.3 + dev: true + /vitest@0.34.6: resolution: {integrity: sha512-+5CALsOvbNKnS+ZHMXtuUC7nL8/7F1F2DnHGjSsszX8zCjWSSviphCb/NuS9Nzf4Q03KyyDRBAXhF/8lffME4Q==} engines: {node: '>=v14.18.0'} @@ -32394,7 +32868,7 @@ packages: dependencies: '@types/chai': 4.3.14 '@types/chai-subset': 1.3.5 - '@types/node': 18.0.0 + '@types/node': 18.19.31 '@vitest/expect': 0.34.6 '@vitest/runner': 0.34.6 '@vitest/snapshot': 0.34.6 @@ -32413,8 +32887,8 @@ packages: strip-literal: 1.3.0 tinybench: 2.6.0 tinypool: 0.7.0 - vite: 5.2.8(@types/node@18.0.0) - vite-node: 0.34.6(@types/node@18.0.0) + vite: 5.2.8(@types/node@18.19.31) + vite-node: 0.34.6(@types/node@18.19.31) why-is-node-running: 2.2.2 transitivePeerDependencies: - less @@ -32817,7 +33291,7 @@ packages: mime-types: 2.1.35 range-parser: 1.2.1 schema-utils: 3.3.0 - webpack: 5.91.0(esbuild@0.19.12) + webpack: 5.91.0 /webpack-merge@5.10.0: resolution: {integrity: sha512-+4zXKdx7UnO+1jaN4l2lHVD+mFvnlZQP/6ljaJVb4SZiwIKeUnrT5l0gkT8z+n4hKpC+jpOv6O9R+gLtag7pSA==} @@ -32964,6 +33438,7 @@ packages: - '@swc/core' - esbuild - uglify-js + dev: true /website-scraper@5.3.1: resolution: {integrity: sha512-gogqPXD2gVsxoyd2yRiympw3rA5GuEpD1CaDEJ/J8zzanx7hkbTtneoO1SGs436PpLbWVcUge+6APGLhzsuZPA==} diff --git a/tests/e2e/playwright.config.drupal.ts b/tests/e2e/playwright.config.drupal.ts index 11295776f..5679e7450 100644 --- a/tests/e2e/playwright.config.drupal.ts +++ b/tests/e2e/playwright.config.drupal.ts @@ -22,6 +22,11 @@ export default defineConfig({ port: 8000, reuseExistingServer: !process.env.CI, }, + { + command: 'pnpm run --filter "@custom/preview" start', + port: 8001, + reuseExistingServer: !process.env.CI, + }, ], /* Run tests in files in parallel */ fullyParallel: true, diff --git a/tests/e2e/specs/drupal/blocks.spec.ts b/tests/e2e/specs/drupal/blocks.spec.ts index f11e09bda..5124a81b2 100644 --- a/tests/e2e/specs/drupal/blocks.spec.ts +++ b/tests/e2e/specs/drupal/blocks.spec.ts @@ -50,10 +50,20 @@ test('All blocks are rendered', async ({ page }) => { await expect(page.locator('h3:text("Heading 3")')).toHaveCount(1); // Quote - await expect(page.locator('blockquote > p:text("Quote")')).toHaveCount(1); - await expect(page.locator('blockquote > cite:text("Citation")')).toHaveCount( - 1, - ); + await expect( + page.locator( + 'blockquote p:text("Lorem ipsum dolor sit amet, consectetur adipiscing elit. Vivamus sagittis nisi nec neque porta, a ornare ligula efficitur.")', + ), + ).toHaveCount(1); + await expect( + page.locator('blockquote p.not-prose:text("John Doe")'), + ).toHaveCount(1); + await expect( + page.locator('blockquote p.not-prose span:text("Project manager")'), + ).toHaveCount(1); + await expect( + page.locator('blockquote img[alt="The silverback"]'), + ).toHaveCount(1); // CTA blocks await expect(page.locator('a:text("Internal CTA")')).toHaveCount(1); diff --git a/tests/e2e/specs/drupal/preview.spec.ts b/tests/e2e/specs/drupal/preview.spec.ts index 89ae402e8..78865a978 100644 --- a/tests/e2e/specs/drupal/preview.spec.ts +++ b/tests/e2e/specs/drupal/preview.spec.ts @@ -2,7 +2,7 @@ import { expect, test } from '@playwright/test'; import { cmsUrl } from '../../helpers/url'; -test.describe.fixme('instant preview', () => { +test.describe('instant preview', () => { test.use({ storageState: '.auth/admin.json' }); test('display an unpublished page in an iframe', async ({ page }) => { await page.goto(cmsUrl('/admin/content')); diff --git a/tests/schema/specs/blocks.spec.ts b/tests/schema/specs/blocks.spec.ts index 5808a38d3..ce85d8164 100644 --- a/tests/schema/specs/blocks.spec.ts +++ b/tests/schema/specs/blocks.spec.ts @@ -55,6 +55,24 @@ test('Blocks', async () => { icon iconPosition } + ... on BlockImageWithText { + image { + __typename + } + imagePosition + textContent { + __typename + markup + } + } + ... on BlockQuote { + quote + author + role + image { + __typename + } + } } } { @@ -108,6 +126,29 @@ test('Blocks', async () => { "__typename": "BlockForm", "url": "http://127.0.0.1:8000/en/form/contact", }, + { + "__typename": "BlockImageWithText", + "image": { + "__typename": "MediaImage", + }, + "imagePosition": "right", + "textContent": { + "__typename": "BlockMarkup", + "markup": " +

All kinds of allowed blocks

+ +
  • bla
+ +

Heading

+ +
12
34
Caption
+ +

Quote

Citation
+ +

+ ", + }, + }, { "__typename": "BlockMarkup", "markup": " @@ -118,8 +159,6 @@ test('Blocks', async () => {
  • list 1
  • list 2
    1. list 2.2

Heading 3

- -

Quote

Citation
", }, { @@ -169,6 +208,15 @@ test('Blocks', async () => { "text": "CTA with link to media", "url": "/media/[numeric]", }, + { + "__typename": "BlockQuote", + "author": "John Doe", + "image": { + "__typename": "MediaImage", + }, + "quote": "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Vivamus sagittis nisi nec neque porta, a ornare ligula efficitur.", + "role": "Project manager", + }, { "__typename": "BlockMarkup", "markup": " @@ -206,8 +254,6 @@ test('Blocks', async () => {
-

-

", }, @@ -219,6 +265,24 @@ test('Blocks', async () => { "text": null, "url": null, }, + { + "__typename": "BlockImageWithText", + "image": null, + "imagePosition": "left", + "textContent": { + "__typename": "BlockMarkup", + "markup": " +

+ ", + }, + }, + { + "__typename": "BlockQuote", + "author": "Jane Doe", + "image": null, + "quote": "In vitae diam quis odio tincidunt faucibus eget ut libero", + "role": null, + }, ], "hero": { "__typename": "Hero",