From 28391c1296c23cc74187abe14680887765b2e17c Mon Sep 17 00:00:00 2001 From: Oliver Davies Date: Tue, 6 Feb 2024 08:00:00 +0000 Subject: [PATCH 1/3] Initial commit --- .editorconfig | 17 + .envrc | 1 + .gitignore | 15 + app/config/sculpin_kernel.yml | 3 + app/config/sculpin_site.yml | 2 + app/config/sculpin_site_prod.yml | 3 + assets/tailwind.config.ts | 14 + build.yaml | 18 + composer.json | 10 + composer.lock | 3607 +++++++++++++++++++++++++++++ flake.lock | 132 ++ flake.nix | 26 + justfile | 36 + package-lock.json | 1260 ++++++++++ package.json | 5 + source/_includes/.keep | 0 source/_layouts/app.html.twig | 13 + source/_layouts/default.html.twig | 7 + source/index.md | 5 + 19 files changed, 5174 insertions(+) create mode 100644 .editorconfig create mode 100644 .envrc create mode 100644 .gitignore create mode 100644 app/config/sculpin_kernel.yml create mode 100644 app/config/sculpin_site.yml create mode 100644 app/config/sculpin_site_prod.yml create mode 100644 assets/tailwind.config.ts create mode 100644 build.yaml create mode 100644 composer.json create mode 100644 composer.lock create mode 100644 flake.lock create mode 100644 flake.nix create mode 100644 justfile create mode 100644 package-lock.json create mode 100644 package.json create mode 100644 source/_includes/.keep create mode 100644 source/_layouts/app.html.twig create mode 100644 source/_layouts/default.html.twig create mode 100644 source/index.md diff --git a/.editorconfig b/.editorconfig new file mode 100644 index 0000000..349cc2b --- /dev/null +++ b/.editorconfig @@ -0,0 +1,17 @@ +# This file is used by editors and IDEs to unify coding standards +# @see http://EditorConfig.org +# @standards PHP: http://www.php-fig.org/psr/psr-2/ +root = true + +# Default configuration (applies to all file types) +[*] +charset = utf-8 +end_of_line = lf +insert_final_newline = true +trim_trailing_whitespace = true +indent_size = 4 +indent_style = space + +# Markdown customizations +[*.md] +trim_trailing_whitespace = false diff --git a/.envrc b/.envrc new file mode 100644 index 0000000..3550a30 --- /dev/null +++ b/.envrc @@ -0,0 +1 @@ +use flake diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..65fc7d5 --- /dev/null +++ b/.gitignore @@ -0,0 +1,15 @@ +# Do not edit this file. It is automatically generated by https://www.oliverdavies.uk/build-configs. + +/* + +!/.gitignore +!/app/ +!/build.yaml +!/composer.{json,lock} +!/justfile +!/source/ + +!/flake.{nix,lock} + +!/assets/ +/source/build/ diff --git a/app/config/sculpin_kernel.yml b/app/config/sculpin_kernel.yml new file mode 100644 index 0000000..8d3b2b3 --- /dev/null +++ b/app/config/sculpin_kernel.yml @@ -0,0 +1,3 @@ +sculpin_content_types: + posts: + enabled: false diff --git a/app/config/sculpin_site.yml b/app/config/sculpin_site.yml new file mode 100644 index 0000000..dd35d11 --- /dev/null +++ b/app/config/sculpin_site.yml @@ -0,0 +1,2 @@ +name: 'My New Sculpin Site' +locale: en diff --git a/app/config/sculpin_site_prod.yml b/app/config/sculpin_site_prod.yml new file mode 100644 index 0000000..1b449f6 --- /dev/null +++ b/app/config/sculpin_site_prod.yml @@ -0,0 +1,3 @@ +--- +imports: + - sculpin_site.yml diff --git a/assets/tailwind.config.ts b/assets/tailwind.config.ts new file mode 100644 index 0000000..6432b9d --- /dev/null +++ b/assets/tailwind.config.ts @@ -0,0 +1,14 @@ +import type { Config } from 'tailwindcss' + +export default { + content: ['./source/**/*.{html,md,twig}'], + theme: { + extend: { + fontFamily: { + sans: ['Inter', 'sans-serif'], + } + }, + }, + plugins: [], +} satisfies Config + diff --git a/build.yaml b/build.yaml new file mode 100644 index 0000000..0fb0856 --- /dev/null +++ b/build.yaml @@ -0,0 +1,18 @@ +name: phpsw-sculpin-demo +type: sculpin +language: php + +flake: + devshell: + packages: + - nodejs + - php81 + - php81Packages.composer + +git: + ignore: + - '!/assets/' + - '/source/build/' + +experimental: + createInclusiveGitIgnoreFile: true diff --git a/composer.json b/composer.json new file mode 100644 index 0000000..3a3a992 --- /dev/null +++ b/composer.json @@ -0,0 +1,10 @@ +{ + "require": { + "sculpin/sculpin": "^3.0" + }, + "config": { + "allow-plugins": { + "sculpin/sculpin-theme-composer-plugin": true + } + } +} diff --git a/composer.lock b/composer.lock new file mode 100644 index 0000000..903472d --- /dev/null +++ b/composer.lock @@ -0,0 +1,3607 @@ +{ + "_readme": [ + "This file locks the dependencies of your project to a known state", + "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies", + "This file is @generated automatically" + ], + "content-hash": "4b70fc92283c843d822de6ee87acf590", + "packages": [ + { + "name": "dflydev/ant-path-matcher", + "version": "v1.0.4", + "source": { + "type": "git", + "url": "https://github.com/dflydev/dflydev-util-antPathMatcher.git", + "reference": "c8406d2d85a844b0dbb4ee76d9db9def7ca67518" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/dflydev/dflydev-util-antPathMatcher/zipball/c8406d2d85a844b0dbb4ee76d9db9def7ca67518", + "reference": "c8406d2d85a844b0dbb4ee76d9db9def7ca67518", + "shasum": "" + }, + "require": { + "php": ">=5.3" + }, + "require-dev": { + "phpunit/phpunit": "^4|^5|^6|^7|^8|^9" + }, + "type": "library", + "autoload": { + "psr-0": { + "dflydev\\util\\antPathMatcher": "src" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Dragonfly Development Inc.", + "email": "info@dflydev.com", + "homepage": "http://dflydev.com" + }, + { + "name": "Beau Simensen", + "email": "beau@dflydev.com", + "homepage": "http://beausimensen.com" + } + ], + "description": "Ant Path Matcher Utility", + "homepage": "http://github.com/dflydev/dflydev-util-antPathMatcher", + "keywords": [ + "ant", + "matcher", + "path", + "pattern" + ], + "support": { + "issues": "https://github.com/dflydev/dflydev-util-antPathMatcher/issues", + "source": "https://github.com/dflydev/dflydev-util-antPathMatcher/tree/v1.0.4" + }, + "time": "2023-01-23T23:02:42+00:00" + }, + { + "name": "dflydev/apache-mime-types", + "version": "v1.0.1", + "source": { + "type": "git", + "url": "https://github.com/dflydev/dflydev-apache-mime-types.git", + "reference": "f30a57e59b7476e4c5270b6a0727d79c9c0eb861" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/dflydev/dflydev-apache-mime-types/zipball/f30a57e59b7476e4c5270b6a0727d79c9c0eb861", + "reference": "f30a57e59b7476e4c5270b6a0727d79c9c0eb861", + "shasum": "" + }, + "require": { + "php": ">=5.3" + }, + "require-dev": { + "twig/twig": "1.*" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.0-dev" + } + }, + "autoload": { + "psr-0": { + "Dflydev\\ApacheMimeTypes": "src" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Dragonfly Development Inc.", + "email": "info@dflydev.com", + "homepage": "http://dflydev.com" + }, + { + "name": "Beau Simensen", + "email": "beau@dflydev.com", + "homepage": "http://beausimensen.com" + } + ], + "description": "Apache MIME Types", + "keywords": [ + "apache", + "mime", + "mimetypes" + ], + "support": { + "issues": "https://github.com/dflydev/dflydev-apache-mime-types/issues", + "source": "https://github.com/dflydev/dflydev-apache-mime-types/tree/v1.0.1" + }, + "time": "2013-05-14T02:02:01+00:00" + }, + { + "name": "dflydev/canal", + "version": "v1.0.0", + "source": { + "type": "git", + "url": "https://github.com/dflydev/dflydev-canal.git", + "reference": "668af213d86f0f378f5dcce6799b974044fa6a51" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/dflydev/dflydev-canal/zipball/668af213d86f0f378f5dcce6799b974044fa6a51", + "reference": "668af213d86f0f378f5dcce6799b974044fa6a51", + "shasum": "" + }, + "require": { + "dflydev/apache-mime-types": "1.0.*", + "php": ">=5.3.3", + "webignition/internet-media-type": "0.*" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.0-dev" + } + }, + "autoload": { + "psr-0": { + "Dflydev\\Canal": "src" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Dragonfly Development Inc.", + "email": "info@dflydev.com", + "homepage": "http://dflydev.com" + }, + { + "name": "Beau Simensen", + "email": "beau@dflydev.com", + "homepage": "http://beausimensen.com" + } + ], + "description": "Content analysis for the purpose of determining Internet media types.", + "keywords": [ + "content", + "detection", + "mime", + "type" + ], + "support": { + "issues": "https://github.com/dflydev/dflydev-canal/issues", + "source": "https://github.com/dflydev/dflydev-canal/tree/master" + }, + "time": "2013-05-14T05:22:25+00:00" + }, + { + "name": "dflydev/dot-access-configuration", + "version": "v1.0.3", + "source": { + "type": "git", + "url": "https://github.com/dflydev/dflydev-dot-access-configuration.git", + "reference": "2e6eb0c8b8830b26bb23defcfc38d4276508fc49" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/dflydev/dflydev-dot-access-configuration/zipball/2e6eb0c8b8830b26bb23defcfc38d4276508fc49", + "reference": "2e6eb0c8b8830b26bb23defcfc38d4276508fc49", + "shasum": "" + }, + "require": { + "dflydev/dot-access-data": "1.*", + "dflydev/placeholder-resolver": "1.*", + "php": ">=5.3.2" + }, + "require-dev": { + "symfony/yaml": "~2.1" + }, + "suggest": { + "symfony/yaml": "Required for using the YAML Configuration Builders" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.0-dev" + } + }, + "autoload": { + "psr-0": { + "Dflydev\\DotAccessConfiguration": "src" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Dragonfly Development Inc.", + "email": "info@dflydev.com", + "homepage": "http://dflydev.com" + }, + { + "name": "Beau Simensen", + "email": "beau@dflydev.com", + "homepage": "http://beausimensen.com" + } + ], + "description": "Given a deep data structure representing a configuration, access configuration by dot notation.", + "homepage": "https://github.com/dflydev/dflydev-dot-access-configuration", + "keywords": [ + "config", + "configuration" + ], + "support": { + "issues": "https://github.com/dflydev/dflydev-dot-access-configuration/issues", + "source": "https://github.com/dflydev/dflydev-dot-access-configuration/tree/master" + }, + "time": "2018-09-08T23:00:17+00:00" + }, + { + "name": "dflydev/dot-access-data", + "version": "v1.1.0", + "source": { + "type": "git", + "url": "https://github.com/dflydev/dflydev-dot-access-data.git", + "reference": "3fbd874921ab2c041e899d044585a2ab9795df8a" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/dflydev/dflydev-dot-access-data/zipball/3fbd874921ab2c041e899d044585a2ab9795df8a", + "reference": "3fbd874921ab2c041e899d044585a2ab9795df8a", + "shasum": "" + }, + "require": { + "php": ">=5.3.2" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.0-dev" + } + }, + "autoload": { + "psr-0": { + "Dflydev\\DotAccessData": "src" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Dragonfly Development Inc.", + "email": "info@dflydev.com", + "homepage": "http://dflydev.com" + }, + { + "name": "Beau Simensen", + "email": "beau@dflydev.com", + "homepage": "http://beausimensen.com" + }, + { + "name": "Carlos Frutos", + "email": "carlos@kiwing.it", + "homepage": "https://github.com/cfrutos" + } + ], + "description": "Given a deep data structure, access data by dot notation.", + "homepage": "https://github.com/dflydev/dflydev-dot-access-data", + "keywords": [ + "access", + "data", + "dot", + "notation" + ], + "support": { + "issues": "https://github.com/dflydev/dflydev-dot-access-data/issues", + "source": "https://github.com/dflydev/dflydev-dot-access-data/tree/master" + }, + "time": "2017-01-20T21:14:22+00:00" + }, + { + "name": "dflydev/placeholder-resolver", + "version": "v1.0.3", + "source": { + "type": "git", + "url": "https://github.com/dflydev/dflydev-placeholder-resolver.git", + "reference": "d0161b4be1e15838327b01b21d0149f382d69906" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/dflydev/dflydev-placeholder-resolver/zipball/d0161b4be1e15838327b01b21d0149f382d69906", + "reference": "d0161b4be1e15838327b01b21d0149f382d69906", + "shasum": "" + }, + "require": { + "php": ">=5.3.2" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.0-dev" + } + }, + "autoload": { + "psr-0": { + "Dflydev\\PlaceholderResolver": "src" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Dragonfly Development Inc.", + "email": "info@dflydev.com", + "homepage": "http://dflydev.com" + }, + { + "name": "Beau Simensen", + "email": "beau@dflydev.com", + "homepage": "http://beausimensen.com" + } + ], + "description": "Given a data source representing key => value pairs, resolve placeholders like ${foo.bar} to the value associated with the 'foo.bar' key in the data source.", + "homepage": "https://github.com/dflydev/dflydev-placeholder-resolver", + "keywords": [ + "placeholder", + "resolver" + ], + "support": { + "issues": "https://github.com/dflydev/dflydev-placeholder-resolver/issues", + "source": "https://github.com/dflydev/dflydev-placeholder-resolver/tree/v1.0.3" + }, + "time": "2021-12-03T16:48:58+00:00" + }, + { + "name": "doctrine/inflector", + "version": "1.4.4", + "source": { + "type": "git", + "url": "https://github.com/doctrine/inflector.git", + "reference": "4bd5c1cdfcd00e9e2d8c484f79150f67e5d355d9" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/doctrine/inflector/zipball/4bd5c1cdfcd00e9e2d8c484f79150f67e5d355d9", + "reference": "4bd5c1cdfcd00e9e2d8c484f79150f67e5d355d9", + "shasum": "" + }, + "require": { + "php": "^7.1 || ^8.0" + }, + "require-dev": { + "doctrine/coding-standard": "^8.0", + "phpstan/phpstan": "^0.12", + "phpstan/phpstan-phpunit": "^0.12", + "phpstan/phpstan-strict-rules": "^0.12", + "phpunit/phpunit": "^7.0 || ^8.0 || ^9.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "2.0.x-dev" + } + }, + "autoload": { + "psr-4": { + "Doctrine\\Inflector\\": "lib/Doctrine/Inflector", + "Doctrine\\Common\\Inflector\\": "lib/Doctrine/Common/Inflector" + } + }, + "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" + } + ], + "description": "PHP Doctrine Inflector is a small library that can perform string manipulations with regard to upper/lowercase and singular/plural forms of words.", + "homepage": "https://www.doctrine-project.org/projects/inflector.html", + "keywords": [ + "inflection", + "inflector", + "lowercase", + "manipulation", + "php", + "plural", + "singular", + "strings", + "uppercase", + "words" + ], + "support": { + "issues": "https://github.com/doctrine/inflector/issues", + "source": "https://github.com/doctrine/inflector/tree/1.4.4" + }, + "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%2Finflector", + "type": "tidelift" + } + ], + "time": "2021-04-16T17:34:40+00:00" + }, + { + "name": "evenement/evenement", + "version": "v3.0.2", + "source": { + "type": "git", + "url": "https://github.com/igorw/evenement.git", + "reference": "0a16b0d71ab13284339abb99d9d2bd813640efbc" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/igorw/evenement/zipball/0a16b0d71ab13284339abb99d9d2bd813640efbc", + "reference": "0a16b0d71ab13284339abb99d9d2bd813640efbc", + "shasum": "" + }, + "require": { + "php": ">=7.0" + }, + "require-dev": { + "phpunit/phpunit": "^9 || ^6" + }, + "type": "library", + "autoload": { + "psr-4": { + "Evenement\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Igor Wiedler", + "email": "igor@wiedler.ch" + } + ], + "description": "Événement is a very simple event dispatching library for PHP", + "keywords": [ + "event-dispatcher", + "event-emitter" + ], + "support": { + "issues": "https://github.com/igorw/evenement/issues", + "source": "https://github.com/igorw/evenement/tree/v3.0.2" + }, + "time": "2023-08-08T05:53:35+00:00" + }, + { + "name": "fig/http-message-util", + "version": "1.1.5", + "source": { + "type": "git", + "url": "https://github.com/php-fig/http-message-util.git", + "reference": "9d94dc0154230ac39e5bf89398b324a86f63f765" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/php-fig/http-message-util/zipball/9d94dc0154230ac39e5bf89398b324a86f63f765", + "reference": "9d94dc0154230ac39e5bf89398b324a86f63f765", + "shasum": "" + }, + "require": { + "php": "^5.3 || ^7.0 || ^8.0" + }, + "suggest": { + "psr/http-message": "The package containing the PSR-7 interfaces" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.1.x-dev" + } + }, + "autoload": { + "psr-4": { + "Fig\\Http\\Message\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "PHP-FIG", + "homepage": "https://www.php-fig.org/" + } + ], + "description": "Utility classes and constants for use with PSR-7 (psr/http-message)", + "keywords": [ + "http", + "http-message", + "psr", + "psr-7", + "request", + "response" + ], + "support": { + "issues": "https://github.com/php-fig/http-message-util/issues", + "source": "https://github.com/php-fig/http-message-util/tree/1.1.5" + }, + "time": "2020-11-24T22:02:12+00:00" + }, + { + "name": "michelf/php-markdown", + "version": "1.9.1", + "source": { + "type": "git", + "url": "https://github.com/michelf/php-markdown.git", + "reference": "5024d623c1a057dcd2d076d25b7d270a1d0d55f3" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/michelf/php-markdown/zipball/5024d623c1a057dcd2d076d25b7d270a1d0d55f3", + "reference": "5024d623c1a057dcd2d076d25b7d270a1d0d55f3", + "shasum": "" + }, + "require": { + "php": ">=5.3.0" + }, + "require-dev": { + "phpunit/phpunit": ">=4.3 <5.8" + }, + "type": "library", + "autoload": { + "psr-4": { + "Michelf\\": "Michelf/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Michel Fortin", + "email": "michel.fortin@michelf.ca", + "homepage": "https://michelf.ca/", + "role": "Developer" + }, + { + "name": "John Gruber", + "homepage": "https://daringfireball.net/" + } + ], + "description": "PHP Markdown", + "homepage": "https://michelf.ca/projects/php-markdown/", + "keywords": [ + "markdown" + ], + "support": { + "issues": "https://github.com/michelf/php-markdown/issues", + "source": "https://github.com/michelf/php-markdown/tree/1.9.1" + }, + "time": "2021-11-24T02:52:38+00:00" + }, + { + "name": "netcarver/textile", + "version": "v3.8.0", + "source": { + "type": "git", + "url": "https://github.com/textile/php-textile.git", + "reference": "02ed0cbe6832c2100342dabb6d01d7ba558cb8e7" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/textile/php-textile/zipball/02ed0cbe6832c2100342dabb6d01d7ba558cb8e7", + "reference": "02ed0cbe6832c2100342dabb6d01d7ba558cb8e7", + "shasum": "" + }, + "require": { + "php": ">=5.3.0" + }, + "require-dev": { + "phpstan/phpstan": "1.6.3", + "phpunit/phpunit": "^9.5.20", + "psy/psysh": "^0.11.2", + "squizlabs/php_codesniffer": "3.*", + "symfony/yaml": "^4.4.3" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "3.8-dev" + } + }, + "autoload": { + "psr-4": { + "Netcarver\\Textile\\": "src/Netcarver/Textile/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "description": "Textile markup language parser", + "homepage": "https://github.com/textile/php-textile", + "keywords": [ + "document", + "format", + "html", + "language", + "markup", + "parser", + "php-textile", + "plaintext", + "textile" + ], + "support": { + "issues": "https://github.com/textile/php-textile/issues", + "source": "https://github.com/textile/php-textile", + "wiki": "https://github.com/textile/php-textile/wiki" + }, + "time": "2022-12-03T18:19:42+00:00" + }, + { + "name": "psr/container", + "version": "1.1.2", + "source": { + "type": "git", + "url": "https://github.com/php-fig/container.git", + "reference": "513e0666f7216c7459170d56df27dfcefe1689ea" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/php-fig/container/zipball/513e0666f7216c7459170d56df27dfcefe1689ea", + "reference": "513e0666f7216c7459170d56df27dfcefe1689ea", + "shasum": "" + }, + "require": { + "php": ">=7.4.0" + }, + "type": "library", + "autoload": { + "psr-4": { + "Psr\\Container\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "PHP-FIG", + "homepage": "https://www.php-fig.org/" + } + ], + "description": "Common Container Interface (PHP FIG PSR-11)", + "homepage": "https://github.com/php-fig/container", + "keywords": [ + "PSR-11", + "container", + "container-interface", + "container-interop", + "psr" + ], + "support": { + "issues": "https://github.com/php-fig/container/issues", + "source": "https://github.com/php-fig/container/tree/1.1.2" + }, + "time": "2021-11-05T16:50:12+00:00" + }, + { + "name": "psr/http-message", + "version": "1.1", + "source": { + "type": "git", + "url": "https://github.com/php-fig/http-message.git", + "reference": "cb6ce4845ce34a8ad9e68117c10ee90a29919eba" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/php-fig/http-message/zipball/cb6ce4845ce34a8ad9e68117c10ee90a29919eba", + "reference": "cb6ce4845ce34a8ad9e68117c10ee90a29919eba", + "shasum": "" + }, + "require": { + "php": "^7.2 || ^8.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.1.x-dev" + } + }, + "autoload": { + "psr-4": { + "Psr\\Http\\Message\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "PHP-FIG", + "homepage": "http://www.php-fig.org/" + } + ], + "description": "Common interface for HTTP messages", + "homepage": "https://github.com/php-fig/http-message", + "keywords": [ + "http", + "http-message", + "psr", + "psr-7", + "request", + "response" + ], + "support": { + "source": "https://github.com/php-fig/http-message/tree/1.1" + }, + "time": "2023-04-04T09:50:52+00:00" + }, + { + "name": "psr/log", + "version": "2.0.0", + "source": { + "type": "git", + "url": "https://github.com/php-fig/log.git", + "reference": "ef29f6d262798707a9edd554e2b82517ef3a9376" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/php-fig/log/zipball/ef29f6d262798707a9edd554e2b82517ef3a9376", + "reference": "ef29f6d262798707a9edd554e2b82517ef3a9376", + "shasum": "" + }, + "require": { + "php": ">=8.0.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "2.0.x-dev" + } + }, + "autoload": { + "psr-4": { + "Psr\\Log\\": "src" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "PHP-FIG", + "homepage": "https://www.php-fig.org/" + } + ], + "description": "Common interface for logging libraries", + "homepage": "https://github.com/php-fig/log", + "keywords": [ + "log", + "psr", + "psr-3" + ], + "support": { + "source": "https://github.com/php-fig/log/tree/2.0.0" + }, + "time": "2021-07-14T16:41:46+00:00" + }, + { + "name": "react/cache", + "version": "v1.2.0", + "source": { + "type": "git", + "url": "https://github.com/reactphp/cache.git", + "reference": "d47c472b64aa5608225f47965a484b75c7817d5b" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/reactphp/cache/zipball/d47c472b64aa5608225f47965a484b75c7817d5b", + "reference": "d47c472b64aa5608225f47965a484b75c7817d5b", + "shasum": "" + }, + "require": { + "php": ">=5.3.0", + "react/promise": "^3.0 || ^2.0 || ^1.1" + }, + "require-dev": { + "phpunit/phpunit": "^9.5 || ^5.7 || ^4.8.35" + }, + "type": "library", + "autoload": { + "psr-4": { + "React\\Cache\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Christian Lück", + "email": "christian@clue.engineering", + "homepage": "https://clue.engineering/" + }, + { + "name": "Cees-Jan Kiewiet", + "email": "reactphp@ceesjankiewiet.nl", + "homepage": "https://wyrihaximus.net/" + }, + { + "name": "Jan Sorgalla", + "email": "jsorgalla@gmail.com", + "homepage": "https://sorgalla.com/" + }, + { + "name": "Chris Boden", + "email": "cboden@gmail.com", + "homepage": "https://cboden.dev/" + } + ], + "description": "Async, Promise-based cache interface for ReactPHP", + "keywords": [ + "cache", + "caching", + "promise", + "reactphp" + ], + "support": { + "issues": "https://github.com/reactphp/cache/issues", + "source": "https://github.com/reactphp/cache/tree/v1.2.0" + }, + "funding": [ + { + "url": "https://opencollective.com/reactphp", + "type": "open_collective" + } + ], + "time": "2022-11-30T15:59:55+00:00" + }, + { + "name": "react/dns", + "version": "v1.12.0", + "source": { + "type": "git", + "url": "https://github.com/reactphp/dns.git", + "reference": "c134600642fa615b46b41237ef243daa65bb64ec" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/reactphp/dns/zipball/c134600642fa615b46b41237ef243daa65bb64ec", + "reference": "c134600642fa615b46b41237ef243daa65bb64ec", + "shasum": "" + }, + "require": { + "php": ">=5.3.0", + "react/cache": "^1.0 || ^0.6 || ^0.5", + "react/event-loop": "^1.2", + "react/promise": "^3.0 || ^2.7 || ^1.2.1" + }, + "require-dev": { + "phpunit/phpunit": "^9.6 || ^5.7 || ^4.8.36", + "react/async": "^4 || ^3 || ^2", + "react/promise-timer": "^1.9" + }, + "type": "library", + "autoload": { + "psr-4": { + "React\\Dns\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Christian Lück", + "email": "christian@clue.engineering", + "homepage": "https://clue.engineering/" + }, + { + "name": "Cees-Jan Kiewiet", + "email": "reactphp@ceesjankiewiet.nl", + "homepage": "https://wyrihaximus.net/" + }, + { + "name": "Jan Sorgalla", + "email": "jsorgalla@gmail.com", + "homepage": "https://sorgalla.com/" + }, + { + "name": "Chris Boden", + "email": "cboden@gmail.com", + "homepage": "https://cboden.dev/" + } + ], + "description": "Async DNS resolver for ReactPHP", + "keywords": [ + "async", + "dns", + "dns-resolver", + "reactphp" + ], + "support": { + "issues": "https://github.com/reactphp/dns/issues", + "source": "https://github.com/reactphp/dns/tree/v1.12.0" + }, + "funding": [ + { + "url": "https://opencollective.com/reactphp", + "type": "open_collective" + } + ], + "time": "2023-11-29T12:41:06+00:00" + }, + { + "name": "react/event-loop", + "version": "v1.5.0", + "source": { + "type": "git", + "url": "https://github.com/reactphp/event-loop.git", + "reference": "bbe0bd8c51ffc05ee43f1729087ed3bdf7d53354" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/reactphp/event-loop/zipball/bbe0bd8c51ffc05ee43f1729087ed3bdf7d53354", + "reference": "bbe0bd8c51ffc05ee43f1729087ed3bdf7d53354", + "shasum": "" + }, + "require": { + "php": ">=5.3.0" + }, + "require-dev": { + "phpunit/phpunit": "^9.6 || ^5.7 || ^4.8.36" + }, + "suggest": { + "ext-pcntl": "For signal handling support when using the StreamSelectLoop" + }, + "type": "library", + "autoload": { + "psr-4": { + "React\\EventLoop\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Christian Lück", + "email": "christian@clue.engineering", + "homepage": "https://clue.engineering/" + }, + { + "name": "Cees-Jan Kiewiet", + "email": "reactphp@ceesjankiewiet.nl", + "homepage": "https://wyrihaximus.net/" + }, + { + "name": "Jan Sorgalla", + "email": "jsorgalla@gmail.com", + "homepage": "https://sorgalla.com/" + }, + { + "name": "Chris Boden", + "email": "cboden@gmail.com", + "homepage": "https://cboden.dev/" + } + ], + "description": "ReactPHP's core reactor event loop that libraries can use for evented I/O.", + "keywords": [ + "asynchronous", + "event-loop" + ], + "support": { + "issues": "https://github.com/reactphp/event-loop/issues", + "source": "https://github.com/reactphp/event-loop/tree/v1.5.0" + }, + "funding": [ + { + "url": "https://opencollective.com/reactphp", + "type": "open_collective" + } + ], + "time": "2023-11-13T13:48:05+00:00" + }, + { + "name": "react/http", + "version": "v1.9.0", + "source": { + "type": "git", + "url": "https://github.com/reactphp/http.git", + "reference": "bb3154dbaf2dfe3f0467f956a05f614a69d5f1d0" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/reactphp/http/zipball/bb3154dbaf2dfe3f0467f956a05f614a69d5f1d0", + "reference": "bb3154dbaf2dfe3f0467f956a05f614a69d5f1d0", + "shasum": "" + }, + "require": { + "evenement/evenement": "^3.0 || ^2.0 || ^1.0", + "fig/http-message-util": "^1.1", + "php": ">=5.3.0", + "psr/http-message": "^1.0", + "react/event-loop": "^1.2", + "react/promise": "^3 || ^2.3 || ^1.2.1", + "react/socket": "^1.12", + "react/stream": "^1.2", + "ringcentral/psr7": "^1.2" + }, + "require-dev": { + "clue/http-proxy-react": "^1.8", + "clue/reactphp-ssh-proxy": "^1.4", + "clue/socks-react": "^1.4", + "phpunit/phpunit": "^9.5 || ^5.7 || ^4.8.35", + "react/async": "^4 || ^3 || ^2", + "react/promise-stream": "^1.4", + "react/promise-timer": "^1.9" + }, + "type": "library", + "autoload": { + "psr-4": { + "React\\Http\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Christian Lück", + "email": "christian@clue.engineering", + "homepage": "https://clue.engineering/" + }, + { + "name": "Cees-Jan Kiewiet", + "email": "reactphp@ceesjankiewiet.nl", + "homepage": "https://wyrihaximus.net/" + }, + { + "name": "Jan Sorgalla", + "email": "jsorgalla@gmail.com", + "homepage": "https://sorgalla.com/" + }, + { + "name": "Chris Boden", + "email": "cboden@gmail.com", + "homepage": "https://cboden.dev/" + } + ], + "description": "Event-driven, streaming HTTP client and server implementation for ReactPHP", + "keywords": [ + "async", + "client", + "event-driven", + "http", + "http client", + "http server", + "https", + "psr-7", + "reactphp", + "server", + "streaming" + ], + "support": { + "issues": "https://github.com/reactphp/http/issues", + "source": "https://github.com/reactphp/http/tree/v1.9.0" + }, + "funding": [ + { + "url": "https://opencollective.com/reactphp", + "type": "open_collective" + } + ], + "time": "2023-04-26T10:29:24+00:00" + }, + { + "name": "react/promise", + "version": "v3.1.0", + "source": { + "type": "git", + "url": "https://github.com/reactphp/promise.git", + "reference": "e563d55d1641de1dea9f5e84f3cccc66d2bfe02c" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/reactphp/promise/zipball/e563d55d1641de1dea9f5e84f3cccc66d2bfe02c", + "reference": "e563d55d1641de1dea9f5e84f3cccc66d2bfe02c", + "shasum": "" + }, + "require": { + "php": ">=7.1.0" + }, + "require-dev": { + "phpstan/phpstan": "1.10.39 || 1.4.10", + "phpunit/phpunit": "^9.6 || ^7.5" + }, + "type": "library", + "autoload": { + "files": [ + "src/functions_include.php" + ], + "psr-4": { + "React\\Promise\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Jan Sorgalla", + "email": "jsorgalla@gmail.com", + "homepage": "https://sorgalla.com/" + }, + { + "name": "Christian Lück", + "email": "christian@clue.engineering", + "homepage": "https://clue.engineering/" + }, + { + "name": "Cees-Jan Kiewiet", + "email": "reactphp@ceesjankiewiet.nl", + "homepage": "https://wyrihaximus.net/" + }, + { + "name": "Chris Boden", + "email": "cboden@gmail.com", + "homepage": "https://cboden.dev/" + } + ], + "description": "A lightweight implementation of CommonJS Promises/A for PHP", + "keywords": [ + "promise", + "promises" + ], + "support": { + "issues": "https://github.com/reactphp/promise/issues", + "source": "https://github.com/reactphp/promise/tree/v3.1.0" + }, + "funding": [ + { + "url": "https://opencollective.com/reactphp", + "type": "open_collective" + } + ], + "time": "2023-11-16T16:21:57+00:00" + }, + { + "name": "react/socket", + "version": "v1.15.0", + "source": { + "type": "git", + "url": "https://github.com/reactphp/socket.git", + "reference": "216d3aec0b87f04a40ca04f481e6af01bdd1d038" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/reactphp/socket/zipball/216d3aec0b87f04a40ca04f481e6af01bdd1d038", + "reference": "216d3aec0b87f04a40ca04f481e6af01bdd1d038", + "shasum": "" + }, + "require": { + "evenement/evenement": "^3.0 || ^2.0 || ^1.0", + "php": ">=5.3.0", + "react/dns": "^1.11", + "react/event-loop": "^1.2", + "react/promise": "^3 || ^2.6 || ^1.2.1", + "react/stream": "^1.2" + }, + "require-dev": { + "phpunit/phpunit": "^9.6 || ^5.7 || ^4.8.36", + "react/async": "^4 || ^3 || ^2", + "react/promise-stream": "^1.4", + "react/promise-timer": "^1.10" + }, + "type": "library", + "autoload": { + "psr-4": { + "React\\Socket\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Christian Lück", + "email": "christian@clue.engineering", + "homepage": "https://clue.engineering/" + }, + { + "name": "Cees-Jan Kiewiet", + "email": "reactphp@ceesjankiewiet.nl", + "homepage": "https://wyrihaximus.net/" + }, + { + "name": "Jan Sorgalla", + "email": "jsorgalla@gmail.com", + "homepage": "https://sorgalla.com/" + }, + { + "name": "Chris Boden", + "email": "cboden@gmail.com", + "homepage": "https://cboden.dev/" + } + ], + "description": "Async, streaming plaintext TCP/IP and secure TLS socket server and client connections for ReactPHP", + "keywords": [ + "Connection", + "Socket", + "async", + "reactphp", + "stream" + ], + "support": { + "issues": "https://github.com/reactphp/socket/issues", + "source": "https://github.com/reactphp/socket/tree/v1.15.0" + }, + "funding": [ + { + "url": "https://opencollective.com/reactphp", + "type": "open_collective" + } + ], + "time": "2023-12-15T11:02:10+00:00" + }, + { + "name": "react/stream", + "version": "v1.3.0", + "source": { + "type": "git", + "url": "https://github.com/reactphp/stream.git", + "reference": "6fbc9672905c7d5a885f2da2fc696f65840f4a66" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/reactphp/stream/zipball/6fbc9672905c7d5a885f2da2fc696f65840f4a66", + "reference": "6fbc9672905c7d5a885f2da2fc696f65840f4a66", + "shasum": "" + }, + "require": { + "evenement/evenement": "^3.0 || ^2.0 || ^1.0", + "php": ">=5.3.8", + "react/event-loop": "^1.2" + }, + "require-dev": { + "clue/stream-filter": "~1.2", + "phpunit/phpunit": "^9.5 || ^5.7 || ^4.8.35" + }, + "type": "library", + "autoload": { + "psr-4": { + "React\\Stream\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Christian Lück", + "email": "christian@clue.engineering", + "homepage": "https://clue.engineering/" + }, + { + "name": "Cees-Jan Kiewiet", + "email": "reactphp@ceesjankiewiet.nl", + "homepage": "https://wyrihaximus.net/" + }, + { + "name": "Jan Sorgalla", + "email": "jsorgalla@gmail.com", + "homepage": "https://sorgalla.com/" + }, + { + "name": "Chris Boden", + "email": "cboden@gmail.com", + "homepage": "https://cboden.dev/" + } + ], + "description": "Event-driven readable and writable streams for non-blocking I/O in ReactPHP", + "keywords": [ + "event-driven", + "io", + "non-blocking", + "pipe", + "reactphp", + "readable", + "stream", + "writable" + ], + "support": { + "issues": "https://github.com/reactphp/stream/issues", + "source": "https://github.com/reactphp/stream/tree/v1.3.0" + }, + "funding": [ + { + "url": "https://opencollective.com/reactphp", + "type": "open_collective" + } + ], + "time": "2023-06-16T10:52:11+00:00" + }, + { + "name": "ringcentral/psr7", + "version": "1.3.0", + "source": { + "type": "git", + "url": "https://github.com/ringcentral/psr7.git", + "reference": "360faaec4b563958b673fb52bbe94e37f14bc686" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/ringcentral/psr7/zipball/360faaec4b563958b673fb52bbe94e37f14bc686", + "reference": "360faaec4b563958b673fb52bbe94e37f14bc686", + "shasum": "" + }, + "require": { + "php": ">=5.3", + "psr/http-message": "~1.0" + }, + "provide": { + "psr/http-message-implementation": "1.0" + }, + "require-dev": { + "phpunit/phpunit": "~4.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.0-dev" + } + }, + "autoload": { + "files": [ + "src/functions_include.php" + ], + "psr-4": { + "RingCentral\\Psr7\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Michael Dowling", + "email": "mtdowling@gmail.com", + "homepage": "https://github.com/mtdowling" + } + ], + "description": "PSR-7 message implementation", + "keywords": [ + "http", + "message", + "stream", + "uri" + ], + "support": { + "source": "https://github.com/ringcentral/psr7/tree/master" + }, + "time": "2018-05-29T20:21:04+00:00" + }, + { + "name": "sculpin/sculpin", + "version": "3.2.0", + "source": { + "type": "git", + "url": "https://github.com/sculpin/sculpin.git", + "reference": "5f705d845b2dc980ed91b79c49ccaa5f64cbdda0" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sculpin/sculpin/zipball/5f705d845b2dc980ed91b79c49ccaa5f64cbdda0", + "reference": "5f705d845b2dc980ed91b79c49ccaa5f64cbdda0", + "shasum": "" + }, + "require": { + "dflydev/ant-path-matcher": "^1.0.3", + "dflydev/apache-mime-types": "^1.0.1", + "dflydev/canal": "^1.0", + "dflydev/dot-access-configuration": "^1.0.3", + "doctrine/inflector": "^1.3", + "ext-mbstring": "*", + "michelf/php-markdown": "^1.9", + "netcarver/textile": "^3.6", + "php": "^8.0 || ^7.3", + "react/http": "^1.0", + "sculpin/sculpin-theme-composer-plugin": "^1.0", + "symfony/config": "^4.4.13", + "symfony/console": "^4.4.13", + "symfony/dependency-injection": "^4.4.13", + "symfony/event-dispatcher": "^4.4.13", + "symfony/filesystem": "^4.4.13", + "symfony/finder": "^4.4.13", + "symfony/http-kernel": "^4.4.13", + "symfony/yaml": "^4.4.13", + "twig/twig": "^2.5", + "webignition/internet-media-type": "^0.4.8" + }, + "replace": { + "sculpin/core": "self.version", + "sculpin/markdown-bundle": "self.version", + "sculpin/markdown-twig-compat-bundle": "self.version", + "sculpin/posts-bundle": "self.version", + "sculpin/proxy-source-collection-contrib": "self.version", + "sculpin/sculpin-bundle": "self.version", + "sculpin/standalone-bundle": "self.version", + "sculpin/taxonomy-contrib": "self.version", + "sculpin/textile-bundle": "self.version", + "sculpin/twig-bundle": "self.version" + }, + "require-dev": { + "phpdocumentor/reflection-docblock": "^5.2", + "phpstan/phpstan": "^1.2", + "phpunit/phpunit": "^9.4", + "squizlabs/php_codesniffer": "^3.3", + "symfony/css-selector": "^4.1", + "symfony/dom-crawler": "^4.1", + "symfony/process": "^4.1" + }, + "suggest": { + "ext-iconv": "To convert non-UTF-8 strings to UTF-8.", + "ext-posix": "If you have PCNTL, you'll want the POSIX extension as well." + }, + "bin": [ + "bin/sculpin", + "bin/sculpin.php" + ], + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "3.0.x-dev" + } + }, + "autoload": { + "psr-4": { + "Sculpin\\": "src/Sculpin/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Dragonfly Development Inc.", + "email": "info@dflydev.com", + "homepage": "http://dflydev.com" + }, + { + "name": "Beau Simensen", + "email": "beau@dflydev.com", + "homepage": "http://beausimensen.com" + } + ], + "description": "Static Site Generator", + "homepage": "https://sculpin.io", + "keywords": [ + "generator", + "site", + "static" + ], + "support": { + "issues": "https://github.com/sculpin/sculpin/issues", + "source": "https://github.com/sculpin/sculpin/tree/3.2.0" + }, + "time": "2022-10-31T19:34:13+00:00" + }, + { + "name": "sculpin/sculpin-theme-composer-plugin", + "version": "1.0.3", + "source": { + "type": "git", + "url": "https://github.com/sculpin/sculpin-theme-composer-plugin.git", + "reference": "e3f4e1d6a10368709d07933f8391ef7e534c5db4" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sculpin/sculpin-theme-composer-plugin/zipball/e3f4e1d6a10368709d07933f8391ef7e534c5db4", + "reference": "e3f4e1d6a10368709d07933f8391ef7e534c5db4", + "shasum": "" + }, + "require": { + "composer-plugin-api": "^1.1|^2.0" + }, + "require-dev": { + "composer/composer": "*" + }, + "type": "composer-plugin", + "extra": { + "class": "Sculpin\\Composer\\SculpinThemePlugin\\SculpinThemePlugin", + "branch-alias": { + "dev-master": "1.0.x-dev" + } + }, + "autoload": { + "psr-0": { + "Sculpin\\Composer\\SculpinThemePlugin\\": "src" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "description": "Plugin for theming sculpin sites", + "support": { + "issues": "https://github.com/sculpin/sculpin-theme-composer-plugin/issues", + "source": "https://github.com/sculpin/sculpin-theme-composer-plugin/tree/1.0.3" + }, + "time": "2020-10-29T13:20:43+00:00" + }, + { + "name": "symfony/config", + "version": "v4.4.44", + "source": { + "type": "git", + "url": "https://github.com/symfony/config.git", + "reference": "ed42f8f9da528d2c6cae36fe1f380b0c1d8f0658" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/config/zipball/ed42f8f9da528d2c6cae36fe1f380b0c1d8f0658", + "reference": "ed42f8f9da528d2c6cae36fe1f380b0c1d8f0658", + "shasum": "" + }, + "require": { + "php": ">=7.1.3", + "symfony/filesystem": "^3.4|^4.0|^5.0", + "symfony/polyfill-ctype": "~1.8", + "symfony/polyfill-php80": "^1.16", + "symfony/polyfill-php81": "^1.22" + }, + "conflict": { + "symfony/finder": "<3.4" + }, + "require-dev": { + "symfony/event-dispatcher": "^3.4|^4.0|^5.0", + "symfony/finder": "^3.4|^4.0|^5.0", + "symfony/messenger": "^4.1|^5.0", + "symfony/service-contracts": "^1.1|^2", + "symfony/yaml": "^3.4|^4.0|^5.0" + }, + "suggest": { + "symfony/yaml": "To use the yaml reference dumper" + }, + "type": "library", + "autoload": { + "psr-4": { + "Symfony\\Component\\Config\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Helps you find, load, combine, autofill and validate configuration values of any kind", + "homepage": "https://symfony.com", + "support": { + "source": "https://github.com/symfony/config/tree/v4.4.44" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2022-07-20T09:59:04+00:00" + }, + { + "name": "symfony/console", + "version": "v4.4.49", + "source": { + "type": "git", + "url": "https://github.com/symfony/console.git", + "reference": "33fa45ffc81fdcc1ca368d4946da859c8cdb58d9" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/console/zipball/33fa45ffc81fdcc1ca368d4946da859c8cdb58d9", + "reference": "33fa45ffc81fdcc1ca368d4946da859c8cdb58d9", + "shasum": "" + }, + "require": { + "php": ">=7.1.3", + "symfony/polyfill-mbstring": "~1.0", + "symfony/polyfill-php73": "^1.8", + "symfony/polyfill-php80": "^1.16", + "symfony/service-contracts": "^1.1|^2" + }, + "conflict": { + "psr/log": ">=3", + "symfony/dependency-injection": "<3.4", + "symfony/event-dispatcher": "<4.3|>=5", + "symfony/lock": "<4.4", + "symfony/process": "<3.3" + }, + "provide": { + "psr/log-implementation": "1.0|2.0" + }, + "require-dev": { + "psr/log": "^1|^2", + "symfony/config": "^3.4|^4.0|^5.0", + "symfony/dependency-injection": "^3.4|^4.0|^5.0", + "symfony/event-dispatcher": "^4.3", + "symfony/lock": "^4.4|^5.0", + "symfony/process": "^3.4|^4.0|^5.0", + "symfony/var-dumper": "^4.3|^5.0" + }, + "suggest": { + "psr/log": "For using the console logger", + "symfony/event-dispatcher": "", + "symfony/lock": "", + "symfony/process": "" + }, + "type": "library", + "autoload": { + "psr-4": { + "Symfony\\Component\\Console\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Eases the creation of beautiful and testable command line interfaces", + "homepage": "https://symfony.com", + "support": { + "source": "https://github.com/symfony/console/tree/v4.4.49" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2022-11-05T17:10:16+00:00" + }, + { + "name": "symfony/debug", + "version": "v4.4.44", + "source": { + "type": "git", + "url": "https://github.com/symfony/debug.git", + "reference": "1a692492190773c5310bc7877cb590c04c2f05be" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/debug/zipball/1a692492190773c5310bc7877cb590c04c2f05be", + "reference": "1a692492190773c5310bc7877cb590c04c2f05be", + "shasum": "" + }, + "require": { + "php": ">=7.1.3", + "psr/log": "^1|^2|^3" + }, + "conflict": { + "symfony/http-kernel": "<3.4" + }, + "require-dev": { + "symfony/http-kernel": "^3.4|^4.0|^5.0" + }, + "type": "library", + "autoload": { + "psr-4": { + "Symfony\\Component\\Debug\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Provides tools to ease debugging PHP code", + "homepage": "https://symfony.com", + "support": { + "source": "https://github.com/symfony/debug/tree/v4.4.44" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "abandoned": "symfony/error-handler", + "time": "2022-07-28T16:29:46+00:00" + }, + { + "name": "symfony/dependency-injection", + "version": "v4.4.49", + "source": { + "type": "git", + "url": "https://github.com/symfony/dependency-injection.git", + "reference": "9065fe97dbd38a897e95ea254eb5ddfe1310f734" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/dependency-injection/zipball/9065fe97dbd38a897e95ea254eb5ddfe1310f734", + "reference": "9065fe97dbd38a897e95ea254eb5ddfe1310f734", + "shasum": "" + }, + "require": { + "php": ">=7.1.3", + "psr/container": "^1.0", + "symfony/polyfill-php80": "^1.16", + "symfony/service-contracts": "^1.1.6|^2" + }, + "conflict": { + "symfony/config": "<4.3|>=5.0", + "symfony/finder": "<3.4", + "symfony/proxy-manager-bridge": "<3.4", + "symfony/yaml": "<4.4.26" + }, + "provide": { + "psr/container-implementation": "1.0", + "symfony/service-implementation": "1.0|2.0" + }, + "require-dev": { + "symfony/config": "^4.3", + "symfony/expression-language": "^3.4|^4.0|^5.0", + "symfony/yaml": "^4.4.26|^5.0" + }, + "suggest": { + "symfony/config": "", + "symfony/expression-language": "For using expressions in service container configuration", + "symfony/finder": "For using double-star glob patterns or when GLOB_BRACE portability is required", + "symfony/proxy-manager-bridge": "Generate service proxies to lazy load them", + "symfony/yaml": "" + }, + "type": "library", + "autoload": { + "psr-4": { + "Symfony\\Component\\DependencyInjection\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Allows you to standardize and centralize the way objects are constructed in your application", + "homepage": "https://symfony.com", + "support": { + "source": "https://github.com/symfony/dependency-injection/tree/v4.4.49" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2022-11-16T16:18:09+00:00" + }, + { + "name": "symfony/deprecation-contracts", + "version": "v3.4.0", + "source": { + "type": "git", + "url": "https://github.com/symfony/deprecation-contracts.git", + "reference": "7c3aff79d10325257a001fcf92d991f24fc967cf" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/deprecation-contracts/zipball/7c3aff79d10325257a001fcf92d991f24fc967cf", + "reference": "7c3aff79d10325257a001fcf92d991f24fc967cf", + "shasum": "" + }, + "require": { + "php": ">=8.1" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-main": "3.4-dev" + }, + "thanks": { + "name": "symfony/contracts", + "url": "https://github.com/symfony/contracts" + } + }, + "autoload": { + "files": [ + "function.php" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Nicolas Grekas", + "email": "p@tchwork.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "A generic function and convention to trigger deprecation notices", + "homepage": "https://symfony.com", + "support": { + "source": "https://github.com/symfony/deprecation-contracts/tree/v3.4.0" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2023-05-23T14:45:45+00:00" + }, + { + "name": "symfony/error-handler", + "version": "v4.4.44", + "source": { + "type": "git", + "url": "https://github.com/symfony/error-handler.git", + "reference": "be731658121ef2d8be88f3a1ec938148a9237291" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/error-handler/zipball/be731658121ef2d8be88f3a1ec938148a9237291", + "reference": "be731658121ef2d8be88f3a1ec938148a9237291", + "shasum": "" + }, + "require": { + "php": ">=7.1.3", + "psr/log": "^1|^2|^3", + "symfony/debug": "^4.4.5", + "symfony/var-dumper": "^4.4|^5.0" + }, + "require-dev": { + "symfony/http-kernel": "^4.4|^5.0", + "symfony/serializer": "^4.4|^5.0" + }, + "type": "library", + "autoload": { + "psr-4": { + "Symfony\\Component\\ErrorHandler\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Provides tools to manage errors and ease debugging PHP code", + "homepage": "https://symfony.com", + "support": { + "source": "https://github.com/symfony/error-handler/tree/v4.4.44" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2022-07-28T16:29:46+00:00" + }, + { + "name": "symfony/event-dispatcher", + "version": "v4.4.44", + "source": { + "type": "git", + "url": "https://github.com/symfony/event-dispatcher.git", + "reference": "1e866e9e5c1b22168e0ce5f0b467f19bba61266a" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/event-dispatcher/zipball/1e866e9e5c1b22168e0ce5f0b467f19bba61266a", + "reference": "1e866e9e5c1b22168e0ce5f0b467f19bba61266a", + "shasum": "" + }, + "require": { + "php": ">=7.1.3", + "symfony/event-dispatcher-contracts": "^1.1", + "symfony/polyfill-php80": "^1.16" + }, + "conflict": { + "symfony/dependency-injection": "<3.4" + }, + "provide": { + "psr/event-dispatcher-implementation": "1.0", + "symfony/event-dispatcher-implementation": "1.1" + }, + "require-dev": { + "psr/log": "^1|^2|^3", + "symfony/config": "^3.4|^4.0|^5.0", + "symfony/dependency-injection": "^3.4|^4.0|^5.0", + "symfony/error-handler": "~3.4|~4.4", + "symfony/expression-language": "^3.4|^4.0|^5.0", + "symfony/http-foundation": "^3.4|^4.0|^5.0", + "symfony/service-contracts": "^1.1|^2", + "symfony/stopwatch": "^3.4|^4.0|^5.0" + }, + "suggest": { + "symfony/dependency-injection": "", + "symfony/http-kernel": "" + }, + "type": "library", + "autoload": { + "psr-4": { + "Symfony\\Component\\EventDispatcher\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Provides tools that allow your application components to communicate with each other by dispatching events and listening to them", + "homepage": "https://symfony.com", + "support": { + "source": "https://github.com/symfony/event-dispatcher/tree/v4.4.44" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2022-07-20T09:59:04+00:00" + }, + { + "name": "symfony/event-dispatcher-contracts", + "version": "v1.10.0", + "source": { + "type": "git", + "url": "https://github.com/symfony/event-dispatcher-contracts.git", + "reference": "761c8b8387cfe5f8026594a75fdf0a4e83ba6974" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/event-dispatcher-contracts/zipball/761c8b8387cfe5f8026594a75fdf0a4e83ba6974", + "reference": "761c8b8387cfe5f8026594a75fdf0a4e83ba6974", + "shasum": "" + }, + "require": { + "php": ">=7.1.3" + }, + "suggest": { + "psr/event-dispatcher": "", + "symfony/event-dispatcher-implementation": "" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-main": "1.1-dev" + }, + "thanks": { + "name": "symfony/contracts", + "url": "https://github.com/symfony/contracts" + } + }, + "autoload": { + "psr-4": { + "Symfony\\Contracts\\EventDispatcher\\": "" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Nicolas Grekas", + "email": "p@tchwork.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Generic abstractions related to dispatching event", + "homepage": "https://symfony.com", + "keywords": [ + "abstractions", + "contracts", + "decoupling", + "interfaces", + "interoperability", + "standards" + ], + "support": { + "source": "https://github.com/symfony/event-dispatcher-contracts/tree/v1.10.0" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2022-07-20T09:59:04+00:00" + }, + { + "name": "symfony/filesystem", + "version": "v4.4.42", + "source": { + "type": "git", + "url": "https://github.com/symfony/filesystem.git", + "reference": "815412ee8971209bd4c1eecd5f4f481eacd44bf5" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/filesystem/zipball/815412ee8971209bd4c1eecd5f4f481eacd44bf5", + "reference": "815412ee8971209bd4c1eecd5f4f481eacd44bf5", + "shasum": "" + }, + "require": { + "php": ">=7.1.3", + "symfony/polyfill-ctype": "~1.8", + "symfony/polyfill-php80": "^1.16" + }, + "type": "library", + "autoload": { + "psr-4": { + "Symfony\\Component\\Filesystem\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Provides basic utilities for the filesystem", + "homepage": "https://symfony.com", + "support": { + "source": "https://github.com/symfony/filesystem/tree/v4.4.42" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2022-05-20T08:49:14+00:00" + }, + { + "name": "symfony/finder", + "version": "v4.4.44", + "source": { + "type": "git", + "url": "https://github.com/symfony/finder.git", + "reference": "66bd787edb5e42ff59d3523f623895af05043e4f" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/finder/zipball/66bd787edb5e42ff59d3523f623895af05043e4f", + "reference": "66bd787edb5e42ff59d3523f623895af05043e4f", + "shasum": "" + }, + "require": { + "php": ">=7.1.3", + "symfony/polyfill-php80": "^1.16" + }, + "type": "library", + "autoload": { + "psr-4": { + "Symfony\\Component\\Finder\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Finds files and directories via an intuitive fluent interface", + "homepage": "https://symfony.com", + "support": { + "source": "https://github.com/symfony/finder/tree/v4.4.44" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2022-07-29T07:35:46+00:00" + }, + { + "name": "symfony/http-client-contracts", + "version": "v2.5.2", + "source": { + "type": "git", + "url": "https://github.com/symfony/http-client-contracts.git", + "reference": "ba6a9f0e8f3edd190520ee3b9a958596b6ca2e70" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/http-client-contracts/zipball/ba6a9f0e8f3edd190520ee3b9a958596b6ca2e70", + "reference": "ba6a9f0e8f3edd190520ee3b9a958596b6ca2e70", + "shasum": "" + }, + "require": { + "php": ">=7.2.5" + }, + "suggest": { + "symfony/http-client-implementation": "" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-main": "2.5-dev" + }, + "thanks": { + "name": "symfony/contracts", + "url": "https://github.com/symfony/contracts" + } + }, + "autoload": { + "psr-4": { + "Symfony\\Contracts\\HttpClient\\": "" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Nicolas Grekas", + "email": "p@tchwork.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Generic abstractions related to HTTP clients", + "homepage": "https://symfony.com", + "keywords": [ + "abstractions", + "contracts", + "decoupling", + "interfaces", + "interoperability", + "standards" + ], + "support": { + "source": "https://github.com/symfony/http-client-contracts/tree/v2.5.2" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2022-04-12T15:48:08+00:00" + }, + { + "name": "symfony/http-foundation", + "version": "v5.4.35", + "source": { + "type": "git", + "url": "https://github.com/symfony/http-foundation.git", + "reference": "f2ab692a22aef1cd54beb893aa0068bdfb093928" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/http-foundation/zipball/f2ab692a22aef1cd54beb893aa0068bdfb093928", + "reference": "f2ab692a22aef1cd54beb893aa0068bdfb093928", + "shasum": "" + }, + "require": { + "php": ">=7.2.5", + "symfony/deprecation-contracts": "^2.1|^3", + "symfony/polyfill-mbstring": "~1.1", + "symfony/polyfill-php80": "^1.16" + }, + "require-dev": { + "predis/predis": "~1.0", + "symfony/cache": "^4.4|^5.0|^6.0", + "symfony/dependency-injection": "^5.4|^6.0", + "symfony/expression-language": "^4.4|^5.0|^6.0", + "symfony/http-kernel": "^5.4.12|^6.0.12|^6.1.4", + "symfony/mime": "^4.4|^5.0|^6.0", + "symfony/rate-limiter": "^5.2|^6.0" + }, + "suggest": { + "symfony/mime": "To use the file extension guesser" + }, + "type": "library", + "autoload": { + "psr-4": { + "Symfony\\Component\\HttpFoundation\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Defines an object-oriented layer for the HTTP specification", + "homepage": "https://symfony.com", + "support": { + "source": "https://github.com/symfony/http-foundation/tree/v5.4.35" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2024-01-23T13:51:25+00:00" + }, + { + "name": "symfony/http-kernel", + "version": "v4.4.51", + "source": { + "type": "git", + "url": "https://github.com/symfony/http-kernel.git", + "reference": "ad8ab192cb619ff7285c95d28c69b36d718416c7" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/http-kernel/zipball/ad8ab192cb619ff7285c95d28c69b36d718416c7", + "reference": "ad8ab192cb619ff7285c95d28c69b36d718416c7", + "shasum": "" + }, + "require": { + "php": ">=7.1.3", + "psr/log": "^1|^2", + "symfony/error-handler": "^4.4", + "symfony/event-dispatcher": "^4.4", + "symfony/http-client-contracts": "^1.1|^2", + "symfony/http-foundation": "^4.4.30|^5.3.7", + "symfony/polyfill-ctype": "^1.8", + "symfony/polyfill-php73": "^1.9", + "symfony/polyfill-php80": "^1.16" + }, + "conflict": { + "symfony/browser-kit": "<4.3", + "symfony/config": "<3.4", + "symfony/console": ">=5", + "symfony/dependency-injection": "<4.3", + "symfony/translation": "<4.2", + "twig/twig": "<1.43|<2.13,>=2" + }, + "provide": { + "psr/log-implementation": "1.0|2.0" + }, + "require-dev": { + "psr/cache": "^1.0|^2.0|^3.0", + "symfony/browser-kit": "^4.3|^5.0", + "symfony/config": "^3.4|^4.0|^5.0", + "symfony/console": "^3.4|^4.0", + "symfony/css-selector": "^3.4|^4.0|^5.0", + "symfony/dependency-injection": "^4.3|^5.0", + "symfony/dom-crawler": "^3.4|^4.0|^5.0", + "symfony/expression-language": "^3.4|^4.0|^5.0", + "symfony/finder": "^3.4|^4.0|^5.0", + "symfony/process": "^3.4|^4.0|^5.0", + "symfony/routing": "^3.4|^4.0|^5.0", + "symfony/stopwatch": "^3.4|^4.0|^5.0", + "symfony/templating": "^3.4|^4.0|^5.0", + "symfony/translation": "^4.2|^5.0", + "symfony/translation-contracts": "^1.1|^2", + "twig/twig": "^1.43|^2.13|^3.0.4" + }, + "suggest": { + "symfony/browser-kit": "", + "symfony/config": "", + "symfony/console": "", + "symfony/dependency-injection": "" + }, + "type": "library", + "autoload": { + "psr-4": { + "Symfony\\Component\\HttpKernel\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Provides a structured process for converting a Request into a Response", + "homepage": "https://symfony.com", + "support": { + "source": "https://github.com/symfony/http-kernel/tree/v4.4.51" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2023-11-10T13:31:29+00:00" + }, + { + "name": "symfony/polyfill-ctype", + "version": "v1.28.0", + "source": { + "type": "git", + "url": "https://github.com/symfony/polyfill-ctype.git", + "reference": "ea208ce43cbb04af6867b4fdddb1bdbf84cc28cb" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/polyfill-ctype/zipball/ea208ce43cbb04af6867b4fdddb1bdbf84cc28cb", + "reference": "ea208ce43cbb04af6867b4fdddb1bdbf84cc28cb", + "shasum": "" + }, + "require": { + "php": ">=7.1" + }, + "provide": { + "ext-ctype": "*" + }, + "suggest": { + "ext-ctype": "For best performance" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-main": "1.28-dev" + }, + "thanks": { + "name": "symfony/polyfill", + "url": "https://github.com/symfony/polyfill" + } + }, + "autoload": { + "files": [ + "bootstrap.php" + ], + "psr-4": { + "Symfony\\Polyfill\\Ctype\\": "" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Gert de Pagter", + "email": "BackEndTea@gmail.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Symfony polyfill for ctype functions", + "homepage": "https://symfony.com", + "keywords": [ + "compatibility", + "ctype", + "polyfill", + "portable" + ], + "support": { + "source": "https://github.com/symfony/polyfill-ctype/tree/v1.28.0" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2023-01-26T09:26:14+00:00" + }, + { + "name": "symfony/polyfill-mbstring", + "version": "v1.28.0", + "source": { + "type": "git", + "url": "https://github.com/symfony/polyfill-mbstring.git", + "reference": "42292d99c55abe617799667f454222c54c60e229" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/polyfill-mbstring/zipball/42292d99c55abe617799667f454222c54c60e229", + "reference": "42292d99c55abe617799667f454222c54c60e229", + "shasum": "" + }, + "require": { + "php": ">=7.1" + }, + "provide": { + "ext-mbstring": "*" + }, + "suggest": { + "ext-mbstring": "For best performance" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-main": "1.28-dev" + }, + "thanks": { + "name": "symfony/polyfill", + "url": "https://github.com/symfony/polyfill" + } + }, + "autoload": { + "files": [ + "bootstrap.php" + ], + "psr-4": { + "Symfony\\Polyfill\\Mbstring\\": "" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Nicolas Grekas", + "email": "p@tchwork.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Symfony polyfill for the Mbstring extension", + "homepage": "https://symfony.com", + "keywords": [ + "compatibility", + "mbstring", + "polyfill", + "portable", + "shim" + ], + "support": { + "source": "https://github.com/symfony/polyfill-mbstring/tree/v1.28.0" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2023-07-28T09:04:16+00:00" + }, + { + "name": "symfony/polyfill-php72", + "version": "v1.28.0", + "source": { + "type": "git", + "url": "https://github.com/symfony/polyfill-php72.git", + "reference": "70f4aebd92afca2f865444d30a4d2151c13c3179" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/polyfill-php72/zipball/70f4aebd92afca2f865444d30a4d2151c13c3179", + "reference": "70f4aebd92afca2f865444d30a4d2151c13c3179", + "shasum": "" + }, + "require": { + "php": ">=7.1" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-main": "1.28-dev" + }, + "thanks": { + "name": "symfony/polyfill", + "url": "https://github.com/symfony/polyfill" + } + }, + "autoload": { + "files": [ + "bootstrap.php" + ], + "psr-4": { + "Symfony\\Polyfill\\Php72\\": "" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Nicolas Grekas", + "email": "p@tchwork.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Symfony polyfill backporting some PHP 7.2+ features to lower PHP versions", + "homepage": "https://symfony.com", + "keywords": [ + "compatibility", + "polyfill", + "portable", + "shim" + ], + "support": { + "source": "https://github.com/symfony/polyfill-php72/tree/v1.28.0" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2023-01-26T09:26:14+00:00" + }, + { + "name": "symfony/polyfill-php73", + "version": "v1.28.0", + "source": { + "type": "git", + "url": "https://github.com/symfony/polyfill-php73.git", + "reference": "fe2f306d1d9d346a7fee353d0d5012e401e984b5" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/polyfill-php73/zipball/fe2f306d1d9d346a7fee353d0d5012e401e984b5", + "reference": "fe2f306d1d9d346a7fee353d0d5012e401e984b5", + "shasum": "" + }, + "require": { + "php": ">=7.1" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-main": "1.28-dev" + }, + "thanks": { + "name": "symfony/polyfill", + "url": "https://github.com/symfony/polyfill" + } + }, + "autoload": { + "files": [ + "bootstrap.php" + ], + "psr-4": { + "Symfony\\Polyfill\\Php73\\": "" + }, + "classmap": [ + "Resources/stubs" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Nicolas Grekas", + "email": "p@tchwork.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Symfony polyfill backporting some PHP 7.3+ features to lower PHP versions", + "homepage": "https://symfony.com", + "keywords": [ + "compatibility", + "polyfill", + "portable", + "shim" + ], + "support": { + "source": "https://github.com/symfony/polyfill-php73/tree/v1.28.0" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2023-01-26T09:26:14+00:00" + }, + { + "name": "symfony/polyfill-php80", + "version": "v1.28.0", + "source": { + "type": "git", + "url": "https://github.com/symfony/polyfill-php80.git", + "reference": "6caa57379c4aec19c0a12a38b59b26487dcfe4b5" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/polyfill-php80/zipball/6caa57379c4aec19c0a12a38b59b26487dcfe4b5", + "reference": "6caa57379c4aec19c0a12a38b59b26487dcfe4b5", + "shasum": "" + }, + "require": { + "php": ">=7.1" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-main": "1.28-dev" + }, + "thanks": { + "name": "symfony/polyfill", + "url": "https://github.com/symfony/polyfill" + } + }, + "autoload": { + "files": [ + "bootstrap.php" + ], + "psr-4": { + "Symfony\\Polyfill\\Php80\\": "" + }, + "classmap": [ + "Resources/stubs" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Ion Bazan", + "email": "ion.bazan@gmail.com" + }, + { + "name": "Nicolas Grekas", + "email": "p@tchwork.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Symfony polyfill backporting some PHP 8.0+ features to lower PHP versions", + "homepage": "https://symfony.com", + "keywords": [ + "compatibility", + "polyfill", + "portable", + "shim" + ], + "support": { + "source": "https://github.com/symfony/polyfill-php80/tree/v1.28.0" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2023-01-26T09:26:14+00:00" + }, + { + "name": "symfony/polyfill-php81", + "version": "v1.28.0", + "source": { + "type": "git", + "url": "https://github.com/symfony/polyfill-php81.git", + "reference": "7581cd600fa9fd681b797d00b02f068e2f13263b" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/polyfill-php81/zipball/7581cd600fa9fd681b797d00b02f068e2f13263b", + "reference": "7581cd600fa9fd681b797d00b02f068e2f13263b", + "shasum": "" + }, + "require": { + "php": ">=7.1" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-main": "1.28-dev" + }, + "thanks": { + "name": "symfony/polyfill", + "url": "https://github.com/symfony/polyfill" + } + }, + "autoload": { + "files": [ + "bootstrap.php" + ], + "psr-4": { + "Symfony\\Polyfill\\Php81\\": "" + }, + "classmap": [ + "Resources/stubs" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Nicolas Grekas", + "email": "p@tchwork.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Symfony polyfill backporting some PHP 8.1+ features to lower PHP versions", + "homepage": "https://symfony.com", + "keywords": [ + "compatibility", + "polyfill", + "portable", + "shim" + ], + "support": { + "source": "https://github.com/symfony/polyfill-php81/tree/v1.28.0" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2023-01-26T09:26:14+00:00" + }, + { + "name": "symfony/service-contracts", + "version": "v2.5.2", + "source": { + "type": "git", + "url": "https://github.com/symfony/service-contracts.git", + "reference": "4b426aac47d6427cc1a1d0f7e2ac724627f5966c" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/service-contracts/zipball/4b426aac47d6427cc1a1d0f7e2ac724627f5966c", + "reference": "4b426aac47d6427cc1a1d0f7e2ac724627f5966c", + "shasum": "" + }, + "require": { + "php": ">=7.2.5", + "psr/container": "^1.1", + "symfony/deprecation-contracts": "^2.1|^3" + }, + "conflict": { + "ext-psr": "<1.1|>=2" + }, + "suggest": { + "symfony/service-implementation": "" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-main": "2.5-dev" + }, + "thanks": { + "name": "symfony/contracts", + "url": "https://github.com/symfony/contracts" + } + }, + "autoload": { + "psr-4": { + "Symfony\\Contracts\\Service\\": "" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Nicolas Grekas", + "email": "p@tchwork.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Generic abstractions related to writing services", + "homepage": "https://symfony.com", + "keywords": [ + "abstractions", + "contracts", + "decoupling", + "interfaces", + "interoperability", + "standards" + ], + "support": { + "source": "https://github.com/symfony/service-contracts/tree/v2.5.2" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2022-05-30T19:17:29+00:00" + }, + { + "name": "symfony/var-dumper", + "version": "v5.4.35", + "source": { + "type": "git", + "url": "https://github.com/symfony/var-dumper.git", + "reference": "ce4685b30e47d94dfc990c5566285ff99ddf012b" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/var-dumper/zipball/ce4685b30e47d94dfc990c5566285ff99ddf012b", + "reference": "ce4685b30e47d94dfc990c5566285ff99ddf012b", + "shasum": "" + }, + "require": { + "php": ">=7.2.5", + "symfony/polyfill-mbstring": "~1.0", + "symfony/polyfill-php80": "^1.16" + }, + "conflict": { + "symfony/console": "<4.4" + }, + "require-dev": { + "ext-iconv": "*", + "symfony/console": "^4.4|^5.0|^6.0", + "symfony/http-kernel": "^4.4|^5.0|^6.0", + "symfony/process": "^4.4|^5.0|^6.0", + "symfony/uid": "^5.1|^6.0", + "twig/twig": "^2.13|^3.0.4" + }, + "suggest": { + "ext-iconv": "To convert non-UTF-8 strings to UTF-8 (or symfony/polyfill-iconv in case ext-iconv cannot be used).", + "ext-intl": "To show region name in time zone dump", + "symfony/console": "To use the ServerDumpCommand and/or the bin/var-dump-server script" + }, + "bin": [ + "Resources/bin/var-dump-server" + ], + "type": "library", + "autoload": { + "files": [ + "Resources/functions/dump.php" + ], + "psr-4": { + "Symfony\\Component\\VarDumper\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Nicolas Grekas", + "email": "p@tchwork.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Provides mechanisms for walking through any arbitrary PHP variable", + "homepage": "https://symfony.com", + "keywords": [ + "debug", + "dump" + ], + "support": { + "source": "https://github.com/symfony/var-dumper/tree/v5.4.35" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2024-01-23T14:28:09+00:00" + }, + { + "name": "symfony/yaml", + "version": "v4.4.45", + "source": { + "type": "git", + "url": "https://github.com/symfony/yaml.git", + "reference": "aeccc4dc52a9e634f1d1eebeb21eacfdcff1053d" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/yaml/zipball/aeccc4dc52a9e634f1d1eebeb21eacfdcff1053d", + "reference": "aeccc4dc52a9e634f1d1eebeb21eacfdcff1053d", + "shasum": "" + }, + "require": { + "php": ">=7.1.3", + "symfony/polyfill-ctype": "~1.8" + }, + "conflict": { + "symfony/console": "<3.4" + }, + "require-dev": { + "symfony/console": "^3.4|^4.0|^5.0" + }, + "suggest": { + "symfony/console": "For validating YAML files using the lint command" + }, + "type": "library", + "autoload": { + "psr-4": { + "Symfony\\Component\\Yaml\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Loads and dumps YAML files", + "homepage": "https://symfony.com", + "support": { + "source": "https://github.com/symfony/yaml/tree/v4.4.45" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2022-08-02T15:47:23+00:00" + }, + { + "name": "twig/twig", + "version": "v2.16.0", + "source": { + "type": "git", + "url": "https://github.com/twigphp/Twig.git", + "reference": "0c9cc7ef2e0ec6d20c5af1200522a89ba101f623" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/twigphp/Twig/zipball/0c9cc7ef2e0ec6d20c5af1200522a89ba101f623", + "reference": "0c9cc7ef2e0ec6d20c5af1200522a89ba101f623", + "shasum": "" + }, + "require": { + "php": ">=7.1.3", + "symfony/polyfill-ctype": "^1.8", + "symfony/polyfill-mbstring": "^1.3", + "symfony/polyfill-php72": "^1.8" + }, + "require-dev": { + "psr/container": "^1.0", + "symfony/phpunit-bridge": "^5.4.9|^6.3" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "2.16-dev" + } + }, + "autoload": { + "psr-0": { + "Twig_": "lib/" + }, + "psr-4": { + "Twig\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com", + "homepage": "http://fabien.potencier.org", + "role": "Lead Developer" + }, + { + "name": "Twig Team", + "role": "Contributors" + }, + { + "name": "Armin Ronacher", + "email": "armin.ronacher@active-4.com", + "role": "Project Founder" + } + ], + "description": "Twig, the flexible, fast, and secure template language for PHP", + "homepage": "https://twig.symfony.com", + "keywords": [ + "templating" + ], + "support": { + "issues": "https://github.com/twigphp/Twig/issues", + "source": "https://github.com/twigphp/Twig/tree/v2.16.0" + }, + "funding": [ + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/twig/twig", + "type": "tidelift" + } + ], + "time": "2023-12-22T07:22:15+00:00" + }, + { + "name": "webignition/disallowed-character-terminated-string", + "version": "2.0", + "source": { + "type": "git", + "url": "https://github.com/webignition/disallowed-character-terminated-string.git", + "reference": "1c35b8bacbb2e76837c0aa8538dc2468a1f10e6e" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/webignition/disallowed-character-terminated-string/zipball/1c35b8bacbb2e76837c0aa8538dc2468a1f10e6e", + "reference": "1c35b8bacbb2e76837c0aa8538dc2468a1f10e6e", + "shasum": "" + }, + "require": { + "php": ">=7.2" + }, + "require-dev": { + "phpstan/phpstan": "^0.12.3", + "phpunit/phpunit": "~8.0", + "squizlabs/php_codesniffer": "^3.5" + }, + "type": "library", + "autoload": { + "psr-4": { + "webignition\\DisallowedCharacterTerminatedString\\": "src" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Jon Cram", + "email": "webignition@gmail.com" + } + ], + "description": "A string terminated by one or more disallowed characters", + "homepage": "https://github.com/webignition/disallowed-character-terminated-string", + "keywords": [ + "string", + "terminated" + ], + "support": { + "issues": "https://github.com/webignition/disallowed-character-terminated-string/issues", + "source": "https://github.com/webignition/disallowed-character-terminated-string/tree/master" + }, + "time": "2019-12-20T15:52:44+00:00" + }, + { + "name": "webignition/internet-media-type", + "version": "0.4.8", + "source": { + "type": "git", + "url": "https://github.com/webignition/internet-media-type.git", + "reference": "1a5bbe38033b00b23acd5e1dd10489bb07eed77c" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/webignition/internet-media-type/zipball/1a5bbe38033b00b23acd5e1dd10489bb07eed77c", + "reference": "1a5bbe38033b00b23acd5e1dd10489bb07eed77c", + "shasum": "" + }, + "require": { + "php": ">=5.6.0", + "webignition/quoted-string": ">=0.2.1,<1.0", + "webignition/string-parser": ">=0.2.3,<1.0" + }, + "require-dev": { + "phpunit/phpunit": "~5.0", + "squizlabs/php_codesniffer": "3.*" + }, + "type": "library", + "autoload": { + "psr-4": { + "webignition\\InternetMediaType\\": "src/", + "webignition\\Tests\\InternetMediaType\\": "tests/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Jon Cram", + "email": "jon@webignition.net" + } + ], + "description": "PHP model of an http://en.wikipedia.org/wiki/Internet_media_type", + "homepage": "https://github.com/webignition/internet-media-type", + "keywords": [ + "content type", + "content-type", + "internet media type", + "media type", + "media-type" + ], + "support": { + "issues": "https://github.com/webignition/internet-media-type/issues", + "source": "https://github.com/webignition/internet-media-type/tree/master" + }, + "time": "2018-03-12T14:54:00+00:00" + }, + { + "name": "webignition/quoted-string", + "version": "0.2.1", + "source": { + "type": "git", + "url": "https://github.com/webignition/quoted-string.git", + "reference": "88b36b7be067796683ab3668e175322842dd5313" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/webignition/quoted-string/zipball/88b36b7be067796683ab3668e175322842dd5313", + "reference": "88b36b7be067796683ab3668e175322842dd5313", + "shasum": "" + }, + "require": { + "php": ">=5.5.0", + "webignition/string-parser": ">=0.2.3,<1" + }, + "require-dev": { + "phpunit/phpunit": "~4.0", + "squizlabs/php_codesniffer": "3.*" + }, + "type": "library", + "autoload": { + "psr-4": { + "webignition\\QuotedString\\": "src/", + "webignition\\Tests\\QuotedString\\": "tests/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Jon Cram", + "email": "jon@webignition.net" + } + ], + "description": "A parser for string values that are encapsulated in double quotes (ASCII 34)", + "homepage": "https://github.com/webignition/quoted-string", + "keywords": [ + "parser", + "quoted-string" + ], + "support": { + "issues": "https://github.com/webignition/quoted-string/issues", + "source": "https://github.com/webignition/quoted-string/tree/master" + }, + "time": "2017-05-11T11:41:31+00:00" + }, + { + "name": "webignition/string-parser", + "version": "0.2.3", + "source": { + "type": "git", + "url": "https://github.com/webignition/string-parser.git", + "reference": "8591e28c05bd250bcc67b8001f3588995b9ef74b" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/webignition/string-parser/zipball/8591e28c05bd250bcc67b8001f3588995b9ef74b", + "reference": "8591e28c05bd250bcc67b8001f3588995b9ef74b", + "shasum": "" + }, + "require": { + "php": ">=5.3.0", + "webignition/disallowed-character-terminated-string": ">=1.0" + }, + "require-dev": { + "phpunit/phpunit": "~4.0", + "squizlabs/php_codesniffer": "3.*" + }, + "type": "library", + "autoload": { + "psr-4": { + "webignition\\StringParser\\": "src/", + "webignition\\Tests\\StringParser\\": "tests/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Jon Cram", + "email": "jon@webignition.net" + } + ], + "description": "Abstract state-based string parser", + "homepage": "https://github.com/webignition/string-parser", + "keywords": [ + "parser", + "string" + ], + "support": { + "issues": "https://github.com/webignition/string-parser/issues", + "source": "https://github.com/webignition/string-parser/tree/master" + }, + "time": "2017-05-11T10:04:12+00:00" + } + ], + "packages-dev": [], + "aliases": [], + "minimum-stability": "stable", + "stability-flags": [], + "prefer-stable": false, + "prefer-lowest": false, + "platform": [], + "platform-dev": [], + "plugin-api-version": "2.6.0" +} diff --git a/flake.lock b/flake.lock new file mode 100644 index 0000000..e5e397d --- /dev/null +++ b/flake.lock @@ -0,0 +1,132 @@ +{ + "nodes": { + "devshell": { + "inputs": { + "flake-utils": "flake-utils", + "nixpkgs": "nixpkgs" + }, + "locked": { + "lastModified": 1705332421, + "narHash": "sha256-USpGLPme1IuqG78JNqSaRabilwkCyHmVWY0M9vYyqEA=", + "owner": "numtide", + "repo": "devshell", + "rev": "83cb93d6d063ad290beee669f4badf9914cc16ec", + "type": "github" + }, + "original": { + "owner": "numtide", + "repo": "devshell", + "type": "github" + } + }, + "flake-parts": { + "inputs": { + "nixpkgs-lib": "nixpkgs-lib" + }, + "locked": { + "lastModified": 1706569497, + "narHash": "sha256-oixb0IDb5eZYw6BaVr/R/1pSoMh4rfJHkVnlgeRIeZs=", + "owner": "hercules-ci", + "repo": "flake-parts", + "rev": "60c614008eed1d0383d21daac177a3e036192ed8", + "type": "github" + }, + "original": { + "id": "flake-parts", + "type": "indirect" + } + }, + "flake-utils": { + "inputs": { + "systems": "systems" + }, + "locked": { + "lastModified": 1701680307, + "narHash": "sha256-kAuep2h5ajznlPMD9rnQyffWG8EM/C73lejGofXvdM8=", + "owner": "numtide", + "repo": "flake-utils", + "rev": "4022d587cbbfd70fe950c1e2083a02621806a725", + "type": "github" + }, + "original": { + "owner": "numtide", + "repo": "flake-utils", + "type": "github" + } + }, + "nixpkgs": { + "locked": { + "lastModified": 1704161960, + "narHash": "sha256-QGua89Pmq+FBAro8NriTuoO/wNaUtugt29/qqA8zeeM=", + "owner": "NixOS", + "repo": "nixpkgs", + "rev": "63143ac2c9186be6d9da6035fa22620018c85932", + "type": "github" + }, + "original": { + "owner": "NixOS", + "ref": "nixpkgs-unstable", + "repo": "nixpkgs", + "type": "github" + } + }, + "nixpkgs-lib": { + "locked": { + "dir": "lib", + "lastModified": 1703961334, + "narHash": "sha256-M1mV/Cq+pgjk0rt6VxoyyD+O8cOUiai8t9Q6Yyq4noY=", + "owner": "NixOS", + "repo": "nixpkgs", + "rev": "b0d36bd0a420ecee3bc916c91886caca87c894e9", + "type": "github" + }, + "original": { + "dir": "lib", + "owner": "NixOS", + "ref": "nixos-unstable", + "repo": "nixpkgs", + "type": "github" + } + }, + "nixpkgs_2": { + "locked": { + "lastModified": 1706550542, + "narHash": "sha256-UcsnCG6wx++23yeER4Hg18CXWbgNpqNXcHIo5/1Y+hc=", + "owner": "NixOS", + "repo": "nixpkgs", + "rev": "97b17f32362e475016f942bbdfda4a4a72a8a652", + "type": "github" + }, + "original": { + "owner": "NixOS", + "ref": "nixos-unstable", + "repo": "nixpkgs", + "type": "github" + } + }, + "root": { + "inputs": { + "devshell": "devshell", + "flake-parts": "flake-parts", + "nixpkgs": "nixpkgs_2" + } + }, + "systems": { + "locked": { + "lastModified": 1681028828, + "narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=", + "owner": "nix-systems", + "repo": "default", + "rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e", + "type": "github" + }, + "original": { + "owner": "nix-systems", + "repo": "default", + "type": "github" + } + } + }, + "root": "root", + "version": 7 +} diff --git a/flake.nix b/flake.nix new file mode 100644 index 0000000..7510c11 --- /dev/null +++ b/flake.nix @@ -0,0 +1,26 @@ +# Do not edit this file. It is automatically generated by https://www.oliverdavies.uk/build-configs. + +{ + inputs = { + devshell.url = "github:numtide/devshell"; + nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable"; + }; + + outputs = inputs@{ flake-parts, ... }: + flake-parts.lib.mkFlake { inherit inputs; } { + imports = [ inputs.devshell.flakeModule ]; + + systems = [ "x86_64-linux" ]; + + perSystem = { config, self', inputs', pkgs, system, ... }: { + devshells.default = { + packages = with pkgs; [ + "just" + "nodejs" + "php81" + "php81Packages.composer" + ]; + }; + }; + }; +} diff --git a/justfile b/justfile new file mode 100644 index 0000000..a1107f0 --- /dev/null +++ b/justfile @@ -0,0 +1,36 @@ +_default: + just --list + +build-css: + #!/usr/bin/env bash + args=() + + if [[ "${NODE_ENV:-}" == "production" ]]; then + args=(--minify) + else + args=(--watch) + fi + + npx tailwindcss \ + --config assets/tailwind.config.ts \ + --output source/build/tailwind.css "${args[@]}" + +clean: + rm -fr output_*/ source/build/ + +generate *args: + #!/usr/bin/env bash + args=() + + if [[ "${APP_ENV:-}" == "production" ]]; then + args=(--env="prod") + else + args=(--server --watch) + fi + + ./vendor/bin/sculpin generate "${args[@]}" {{ args }} + +start *args: + just generate {{ args }} \ + & just build-css \ + & wait diff --git a/package-lock.json b/package-lock.json new file mode 100644 index 0000000..d5429be --- /dev/null +++ b/package-lock.json @@ -0,0 +1,1260 @@ +{ + "name": "phpsw-sculpin-demo", + "lockfileVersion": 3, + "requires": true, + "packages": { + "": { + "dependencies": { + "tailwindcss": "^3.4.0" + } + }, + "node_modules/@alloc/quick-lru": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/@alloc/quick-lru/-/quick-lru-5.2.0.tgz", + "integrity": "sha512-UrcABB+4bUrFABwbluTIBErXwvbsU/V7TZWfmbgJfbkwiBuziS9gxdODUyuiecfdGQ85jglMW6juS3+z5TsKLw==", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@isaacs/cliui": { + "version": "8.0.2", + "resolved": "https://registry.npmjs.org/@isaacs/cliui/-/cliui-8.0.2.tgz", + "integrity": "sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==", + "dependencies": { + "string-width": "^5.1.2", + "string-width-cjs": "npm:string-width@^4.2.0", + "strip-ansi": "^7.0.1", + "strip-ansi-cjs": "npm:strip-ansi@^6.0.1", + "wrap-ansi": "^8.1.0", + "wrap-ansi-cjs": "npm:wrap-ansi@^7.0.0" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/@jridgewell/gen-mapping": { + "version": "0.3.3", + "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.3.tgz", + "integrity": "sha512-HLhSWOLRi875zjjMG/r+Nv0oCW8umGb0BgEhyX3dDX3egwZtB8PqLnjz3yedt8R5StBrzcg4aBpnh8UA9D1BoQ==", + "dependencies": { + "@jridgewell/set-array": "^1.0.1", + "@jridgewell/sourcemap-codec": "^1.4.10", + "@jridgewell/trace-mapping": "^0.3.9" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/resolve-uri": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.1.tgz", + "integrity": "sha512-dSYZh7HhCDtCKm4QakX0xFpsRDqjjtZf/kjI/v3T3Nwt5r8/qz/M19F9ySyOqU94SXBmeG9ttTul+YnR4LOxFA==", + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/set-array": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.1.2.tgz", + "integrity": "sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw==", + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/sourcemap-codec": { + "version": "1.4.15", + "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz", + "integrity": "sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==" + }, + "node_modules/@jridgewell/trace-mapping": { + "version": "0.3.22", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.22.tgz", + "integrity": "sha512-Wf963MzWtA2sjrNt+g18IAln9lKnlRp+K2eH4jjIoF1wYeq3aMREpG09xhlhdzS0EjwU7qmUJYangWa+151vZw==", + "dependencies": { + "@jridgewell/resolve-uri": "^3.1.0", + "@jridgewell/sourcemap-codec": "^1.4.14" + } + }, + "node_modules/@nodelib/fs.scandir": { + "version": "2.1.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", + "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", + "dependencies": { + "@nodelib/fs.stat": "2.0.5", + "run-parallel": "^1.1.9" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@nodelib/fs.stat": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", + "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", + "engines": { + "node": ">= 8" + } + }, + "node_modules/@nodelib/fs.walk": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", + "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", + "dependencies": { + "@nodelib/fs.scandir": "2.1.5", + "fastq": "^1.6.0" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@pkgjs/parseargs": { + "version": "0.11.0", + "resolved": "https://registry.npmjs.org/@pkgjs/parseargs/-/parseargs-0.11.0.tgz", + "integrity": "sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==", + "optional": true, + "engines": { + "node": ">=14" + } + }, + "node_modules/ansi-regex": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.0.1.tgz", + "integrity": "sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-regex?sponsor=1" + } + }, + "node_modules/ansi-styles": { + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.1.tgz", + "integrity": "sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/any-promise": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/any-promise/-/any-promise-1.3.0.tgz", + "integrity": "sha512-7UvmKalWRt1wgjL1RrGxoSJW/0QZFIegpeGvZG9kjp8vrRu55XTHbwnqq2GpXm9uLbcuhxm3IqX9OB4MZR1b2A==" + }, + "node_modules/anymatch": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz", + "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==", + "dependencies": { + "normalize-path": "^3.0.0", + "picomatch": "^2.0.4" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/arg": { + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/arg/-/arg-5.0.2.tgz", + "integrity": "sha512-PYjyFOLKQ9y57JvQ6QLo8dAgNqswh8M1RMJYdQduT6xbWSgK36P/Z/v+p888pM69jMMfS8Xd8F6I1kQ/I9HUGg==" + }, + "node_modules/balanced-match": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==" + }, + "node_modules/binary-extensions": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz", + "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==", + "engines": { + "node": ">=8" + } + }, + "node_modules/brace-expansion": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "dependencies": { + "balanced-match": "^1.0.0" + } + }, + "node_modules/braces": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", + "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", + "dependencies": { + "fill-range": "^7.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/camelcase-css": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/camelcase-css/-/camelcase-css-2.0.1.tgz", + "integrity": "sha512-QOSvevhslijgYwRx6Rv7zKdMF8lbRmx+uQGx2+vDc+KI/eBnsy9kit5aj23AgGu3pa4t9AgwbnXWqS+iOY+2aA==", + "engines": { + "node": ">= 6" + } + }, + "node_modules/chokidar": { + "version": "3.5.3", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.3.tgz", + "integrity": "sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==", + "funding": [ + { + "type": "individual", + "url": "https://paulmillr.com/funding/" + } + ], + "dependencies": { + "anymatch": "~3.1.2", + "braces": "~3.0.2", + "glob-parent": "~5.1.2", + "is-binary-path": "~2.1.0", + "is-glob": "~4.0.1", + "normalize-path": "~3.0.0", + "readdirp": "~3.6.0" + }, + "engines": { + "node": ">= 8.10.0" + }, + "optionalDependencies": { + "fsevents": "~2.3.2" + } + }, + "node_modules/chokidar/node_modules/glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "dependencies": { + "is-glob": "^4.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" + }, + "node_modules/commander": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/commander/-/commander-4.1.1.tgz", + "integrity": "sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==", + "engines": { + "node": ">= 6" + } + }, + "node_modules/cross-spawn": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", + "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", + "dependencies": { + "path-key": "^3.1.0", + "shebang-command": "^2.0.0", + "which": "^2.0.1" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/cssesc": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-3.0.0.tgz", + "integrity": "sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==", + "bin": { + "cssesc": "bin/cssesc" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/didyoumean": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/didyoumean/-/didyoumean-1.2.2.tgz", + "integrity": "sha512-gxtyfqMg7GKyhQmb056K7M3xszy/myH8w+B4RT+QXBQsvAOdc3XymqDDPHx1BgPgsdAA5SIifona89YtRATDzw==" + }, + "node_modules/dlv": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/dlv/-/dlv-1.1.3.tgz", + "integrity": "sha512-+HlytyjlPKnIG8XuRG8WvmBP8xs8P71y+SKKS6ZXWoEgLuePxtDoUEiH7WkdePWrQ5JBpE6aoVqfZfJUQkjXwA==" + }, + "node_modules/eastasianwidth": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/eastasianwidth/-/eastasianwidth-0.2.0.tgz", + "integrity": "sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==" + }, + "node_modules/emoji-regex": { + "version": "9.2.2", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz", + "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==" + }, + "node_modules/fast-glob": { + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.2.tgz", + "integrity": "sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow==", + "dependencies": { + "@nodelib/fs.stat": "^2.0.2", + "@nodelib/fs.walk": "^1.2.3", + "glob-parent": "^5.1.2", + "merge2": "^1.3.0", + "micromatch": "^4.0.4" + }, + "engines": { + "node": ">=8.6.0" + } + }, + "node_modules/fast-glob/node_modules/glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "dependencies": { + "is-glob": "^4.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/fastq": { + "version": "1.17.0", + "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.17.0.tgz", + "integrity": "sha512-zGygtijUMT7jnk3h26kUms3BkSDp4IfIKjmnqI2tvx6nuBfiF1UqOxbnLfzdv+apBy+53oaImsKtMw/xYbW+1w==", + "dependencies": { + "reusify": "^1.0.4" + } + }, + "node_modules/fill-range": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", + "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", + "dependencies": { + "to-regex-range": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/foreground-child": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/foreground-child/-/foreground-child-3.1.1.tgz", + "integrity": "sha512-TMKDUnIte6bfb5nWv7V/caI169OHgvwjb7V4WkeUvbQQdjr5rWKqHFiKWb/fcOwB+CzBT+qbWjvj+DVwRskpIg==", + "dependencies": { + "cross-spawn": "^7.0.0", + "signal-exit": "^4.0.1" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/fsevents": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", + "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", + "hasInstallScript": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^8.16.0 || ^10.6.0 || >=11.0.0" + } + }, + "node_modules/function-bind": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz", + "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/glob": { + "version": "10.3.10", + "resolved": "https://registry.npmjs.org/glob/-/glob-10.3.10.tgz", + "integrity": "sha512-fa46+tv1Ak0UPK1TOy/pZrIybNNt4HCv7SDzwyfiOZkvZLEbjsZkJBPtDHVshZjbecAoAGSC20MjLDG/qr679g==", + "dependencies": { + "foreground-child": "^3.1.0", + "jackspeak": "^2.3.5", + "minimatch": "^9.0.1", + "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0", + "path-scurry": "^1.10.1" + }, + "bin": { + "glob": "dist/esm/bin.mjs" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/glob-parent": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz", + "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==", + "dependencies": { + "is-glob": "^4.0.3" + }, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/hasown": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.0.tgz", + "integrity": "sha512-vUptKVTpIJhcczKBbgnS+RtcuYMB8+oNzPK2/Hp3hanz8JmpATdmmgLgSaadVREkDm+e2giHwY3ZRkyjSIDDFA==", + "dependencies": { + "function-bind": "^1.1.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/is-binary-path": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", + "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", + "dependencies": { + "binary-extensions": "^2.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/is-core-module": { + "version": "2.13.1", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.13.1.tgz", + "integrity": "sha512-hHrIjvZsftOsvKSn2TRYl63zvxsgE0K+0mYMoH6gD4omR5IWB2KynivBQczo3+wF1cCkjzvptnI9Q0sPU66ilw==", + "dependencies": { + "hasown": "^2.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "engines": { + "node": ">=8" + } + }, + "node_modules/is-glob": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", + "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", + "dependencies": { + "is-extglob": "^2.1.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-number": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", + "engines": { + "node": ">=0.12.0" + } + }, + "node_modules/isexe": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", + "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==" + }, + "node_modules/jackspeak": { + "version": "2.3.6", + "resolved": "https://registry.npmjs.org/jackspeak/-/jackspeak-2.3.6.tgz", + "integrity": "sha512-N3yCS/NegsOBokc8GAdM8UcmfsKiSS8cipheD/nivzr700H+nsMOxJjQnvwOcRYVuFkdH0wGUvW2WbXGmrZGbQ==", + "dependencies": { + "@isaacs/cliui": "^8.0.2" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + }, + "optionalDependencies": { + "@pkgjs/parseargs": "^0.11.0" + } + }, + "node_modules/jiti": { + "version": "1.21.0", + "resolved": "https://registry.npmjs.org/jiti/-/jiti-1.21.0.tgz", + "integrity": "sha512-gFqAIbuKyyso/3G2qhiO2OM6shY6EPP/R0+mkDbyspxKazh8BXDC5FiFsUjlczgdNz/vfra0da2y+aHrusLG/Q==", + "bin": { + "jiti": "bin/jiti.js" + } + }, + "node_modules/lilconfig": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/lilconfig/-/lilconfig-2.1.0.tgz", + "integrity": "sha512-utWOt/GHzuUxnLKxB6dk81RoOeoNeHgbrXiuGk4yyF5qlRz+iIVWu56E2fqGHFrXz0QNUhLB/8nKqvRH66JKGQ==", + "engines": { + "node": ">=10" + } + }, + "node_modules/lines-and-columns": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz", + "integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==" + }, + "node_modules/lru-cache": { + "version": "10.2.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.2.0.tgz", + "integrity": "sha512-2bIM8x+VAf6JT4bKAljS1qUWgMsqZRPGJS6FSahIMPVvctcNhyVp7AJu7quxOW9jwkryBReKZY5tY5JYv2n/7Q==", + "engines": { + "node": "14 || >=16.14" + } + }, + "node_modules/merge2": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", + "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", + "engines": { + "node": ">= 8" + } + }, + "node_modules/micromatch": { + "version": "4.0.5", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.5.tgz", + "integrity": "sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==", + "dependencies": { + "braces": "^3.0.2", + "picomatch": "^2.3.1" + }, + "engines": { + "node": ">=8.6" + } + }, + "node_modules/minimatch": { + "version": "9.0.3", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.3.tgz", + "integrity": "sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg==", + "dependencies": { + "brace-expansion": "^2.0.1" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/minipass": { + "version": "7.0.4", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.0.4.tgz", + "integrity": "sha512-jYofLM5Dam9279rdkWzqHozUo4ybjdZmCsDHePy5V/PbBcVMiSZR97gmAy45aqi8CK1lG2ECd356FU86avfwUQ==", + "engines": { + "node": ">=16 || 14 >=14.17" + } + }, + "node_modules/mz": { + "version": "2.7.0", + "resolved": "https://registry.npmjs.org/mz/-/mz-2.7.0.tgz", + "integrity": "sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q==", + "dependencies": { + "any-promise": "^1.0.0", + "object-assign": "^4.0.1", + "thenify-all": "^1.0.0" + } + }, + "node_modules/nanoid": { + "version": "3.3.7", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.7.tgz", + "integrity": "sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "bin": { + "nanoid": "bin/nanoid.cjs" + }, + "engines": { + "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" + } + }, + "node_modules/normalize-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", + "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/object-assign": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", + "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/object-hash": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/object-hash/-/object-hash-3.0.0.tgz", + "integrity": "sha512-RSn9F68PjH9HqtltsSnqYC1XXoWe9Bju5+213R98cNGttag9q9yAOTzdbsqvIa7aNm5WffBZFpWYr2aWrklWAw==", + "engines": { + "node": ">= 6" + } + }, + "node_modules/path-key": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", + "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", + "engines": { + "node": ">=8" + } + }, + "node_modules/path-parse": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", + "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==" + }, + "node_modules/path-scurry": { + "version": "1.10.1", + "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-1.10.1.tgz", + "integrity": "sha512-MkhCqzzBEpPvxxQ71Md0b1Kk51W01lrYvlMzSUaIzNsODdd7mqhiimSZlr+VegAz5Z6Vzt9Xg2ttE//XBhH3EQ==", + "dependencies": { + "lru-cache": "^9.1.1 || ^10.0.0", + "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/picocolors": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz", + "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==" + }, + "node_modules/picomatch": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", + "engines": { + "node": ">=8.6" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/pify": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", + "integrity": "sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/pirates": { + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/pirates/-/pirates-4.0.6.tgz", + "integrity": "sha512-saLsH7WeYYPiD25LDuLRRY/i+6HaPYr6G1OUlN39otzkSTxKnubR9RTxS3/Kk50s1g2JTgFwWQDQyplC5/SHZg==", + "engines": { + "node": ">= 6" + } + }, + "node_modules/postcss": { + "version": "8.4.33", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.33.tgz", + "integrity": "sha512-Kkpbhhdjw2qQs2O2DGX+8m5OVqEcbB9HRBvuYM9pgrjEFUg30A9LmXNlTAUj4S9kgtGyrMbTzVjH7E+s5Re2yg==", + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/postcss" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "dependencies": { + "nanoid": "^3.3.7", + "picocolors": "^1.0.0", + "source-map-js": "^1.0.2" + }, + "engines": { + "node": "^10 || ^12 || >=14" + } + }, + "node_modules/postcss-import": { + "version": "15.1.0", + "resolved": "https://registry.npmjs.org/postcss-import/-/postcss-import-15.1.0.tgz", + "integrity": "sha512-hpr+J05B2FVYUAXHeK1YyI267J/dDDhMU6B6civm8hSY1jYJnBXxzKDKDswzJmtLHryrjhnDjqqp/49t8FALew==", + "dependencies": { + "postcss-value-parser": "^4.0.0", + "read-cache": "^1.0.0", + "resolve": "^1.1.7" + }, + "engines": { + "node": ">=14.0.0" + }, + "peerDependencies": { + "postcss": "^8.0.0" + } + }, + "node_modules/postcss-js": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/postcss-js/-/postcss-js-4.0.1.tgz", + "integrity": "sha512-dDLF8pEO191hJMtlHFPRa8xsizHaM82MLfNkUHdUtVEV3tgTp5oj+8qbEqYM57SLfc74KSbw//4SeJma2LRVIw==", + "dependencies": { + "camelcase-css": "^2.0.1" + }, + "engines": { + "node": "^12 || ^14 || >= 16" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + "peerDependencies": { + "postcss": "^8.4.21" + } + }, + "node_modules/postcss-load-config": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/postcss-load-config/-/postcss-load-config-4.0.2.tgz", + "integrity": "sha512-bSVhyJGL00wMVoPUzAVAnbEoWyqRxkjv64tUl427SKnPrENtq6hJwUojroMz2VB+Q1edmi4IfrAPpami5VVgMQ==", + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "dependencies": { + "lilconfig": "^3.0.0", + "yaml": "^2.3.4" + }, + "engines": { + "node": ">= 14" + }, + "peerDependencies": { + "postcss": ">=8.0.9", + "ts-node": ">=9.0.0" + }, + "peerDependenciesMeta": { + "postcss": { + "optional": true + }, + "ts-node": { + "optional": true + } + } + }, + "node_modules/postcss-load-config/node_modules/lilconfig": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/lilconfig/-/lilconfig-3.0.0.tgz", + "integrity": "sha512-K2U4W2Ff5ibV7j7ydLr+zLAkIg5JJ4lPn1Ltsdt+Tz/IjQ8buJ55pZAxoP34lqIiwtF9iAvtLv3JGv7CAyAg+g==", + "engines": { + "node": ">=14" + } + }, + "node_modules/postcss-nested": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/postcss-nested/-/postcss-nested-6.0.1.tgz", + "integrity": "sha512-mEp4xPMi5bSWiMbsgoPfcP74lsWLHkQbZc3sY+jWYd65CUwXrUaTp0fmNpa01ZcETKlIgUdFN/MpS2xZtqL9dQ==", + "dependencies": { + "postcss-selector-parser": "^6.0.11" + }, + "engines": { + "node": ">=12.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + "peerDependencies": { + "postcss": "^8.2.14" + } + }, + "node_modules/postcss-selector-parser": { + "version": "6.0.15", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.0.15.tgz", + "integrity": "sha512-rEYkQOMUCEMhsKbK66tbEU9QVIxbhN18YiniAwA7XQYTVBqrBy+P2p5JcdqsHgKM2zWylp8d7J6eszocfds5Sw==", + "dependencies": { + "cssesc": "^3.0.0", + "util-deprecate": "^1.0.2" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/postcss-value-parser": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz", + "integrity": "sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==" + }, + "node_modules/queue-microtask": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", + "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] + }, + "node_modules/read-cache": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/read-cache/-/read-cache-1.0.0.tgz", + "integrity": "sha512-Owdv/Ft7IjOgm/i0xvNDZ1LrRANRfew4b2prF3OWMQLxLfu3bS8FVhCsrSCMK4lR56Y9ya+AThoTpDCTxCmpRA==", + "dependencies": { + "pify": "^2.3.0" + } + }, + "node_modules/readdirp": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", + "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", + "dependencies": { + "picomatch": "^2.2.1" + }, + "engines": { + "node": ">=8.10.0" + } + }, + "node_modules/resolve": { + "version": "1.22.8", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.8.tgz", + "integrity": "sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==", + "dependencies": { + "is-core-module": "^2.13.0", + "path-parse": "^1.0.7", + "supports-preserve-symlinks-flag": "^1.0.0" + }, + "bin": { + "resolve": "bin/resolve" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/reusify": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", + "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==", + "engines": { + "iojs": ">=1.0.0", + "node": ">=0.10.0" + } + }, + "node_modules/run-parallel": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", + "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "dependencies": { + "queue-microtask": "^1.2.2" + } + }, + "node_modules/shebang-command": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", + "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", + "dependencies": { + "shebang-regex": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/shebang-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", + "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", + "engines": { + "node": ">=8" + } + }, + "node_modules/signal-exit": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz", + "integrity": "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==", + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/source-map-js": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.0.2.tgz", + "integrity": "sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/string-width": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-5.1.2.tgz", + "integrity": "sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==", + "dependencies": { + "eastasianwidth": "^0.2.0", + "emoji-regex": "^9.2.2", + "strip-ansi": "^7.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/string-width-cjs": { + "name": "string-width", + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/string-width-cjs/node_modules/ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "engines": { + "node": ">=8" + } + }, + "node_modules/string-width-cjs/node_modules/emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==" + }, + "node_modules/string-width-cjs/node_modules/strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/strip-ansi": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz", + "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==", + "dependencies": { + "ansi-regex": "^6.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/strip-ansi?sponsor=1" + } + }, + "node_modules/strip-ansi-cjs": { + "name": "strip-ansi", + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/strip-ansi-cjs/node_modules/ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "engines": { + "node": ">=8" + } + }, + "node_modules/sucrase": { + "version": "3.35.0", + "resolved": "https://registry.npmjs.org/sucrase/-/sucrase-3.35.0.tgz", + "integrity": "sha512-8EbVDiu9iN/nESwxeSxDKe0dunta1GOlHufmSSXxMD2z2/tMZpDMpvXQGsc+ajGo8y2uYUmixaSRUc/QPoQ0GA==", + "dependencies": { + "@jridgewell/gen-mapping": "^0.3.2", + "commander": "^4.0.0", + "glob": "^10.3.10", + "lines-and-columns": "^1.1.6", + "mz": "^2.7.0", + "pirates": "^4.0.1", + "ts-interface-checker": "^0.1.9" + }, + "bin": { + "sucrase": "bin/sucrase", + "sucrase-node": "bin/sucrase-node" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + } + }, + "node_modules/supports-preserve-symlinks-flag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", + "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/tailwindcss": { + "version": "3.4.1", + "resolved": "https://registry.npmjs.org/tailwindcss/-/tailwindcss-3.4.1.tgz", + "integrity": "sha512-qAYmXRfk3ENzuPBakNK0SRrUDipP8NQnEY6772uDhflcQz5EhRdD7JNZxyrFHVQNCwULPBn6FNPp9brpO7ctcA==", + "dependencies": { + "@alloc/quick-lru": "^5.2.0", + "arg": "^5.0.2", + "chokidar": "^3.5.3", + "didyoumean": "^1.2.2", + "dlv": "^1.1.3", + "fast-glob": "^3.3.0", + "glob-parent": "^6.0.2", + "is-glob": "^4.0.3", + "jiti": "^1.19.1", + "lilconfig": "^2.1.0", + "micromatch": "^4.0.5", + "normalize-path": "^3.0.0", + "object-hash": "^3.0.0", + "picocolors": "^1.0.0", + "postcss": "^8.4.23", + "postcss-import": "^15.1.0", + "postcss-js": "^4.0.1", + "postcss-load-config": "^4.0.1", + "postcss-nested": "^6.0.1", + "postcss-selector-parser": "^6.0.11", + "resolve": "^1.22.2", + "sucrase": "^3.32.0" + }, + "bin": { + "tailwind": "lib/cli.js", + "tailwindcss": "lib/cli.js" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/thenify": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/thenify/-/thenify-3.3.1.tgz", + "integrity": "sha512-RVZSIV5IG10Hk3enotrhvz0T9em6cyHBLkH/YAZuKqd8hRkKhSfCGIcP2KUY0EPxndzANBmNllzWPwak+bheSw==", + "dependencies": { + "any-promise": "^1.0.0" + } + }, + "node_modules/thenify-all": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/thenify-all/-/thenify-all-1.6.0.tgz", + "integrity": "sha512-RNxQH/qI8/t3thXJDwcstUO4zeqo64+Uy/+sNVRBx4Xn2OX+OZ9oP+iJnNFqplFra2ZUVeKCSa2oVWi3T4uVmA==", + "dependencies": { + "thenify": ">= 3.1.0 < 4" + }, + "engines": { + "node": ">=0.8" + } + }, + "node_modules/to-regex-range": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", + "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "dependencies": { + "is-number": "^7.0.0" + }, + "engines": { + "node": ">=8.0" + } + }, + "node_modules/ts-interface-checker": { + "version": "0.1.13", + "resolved": "https://registry.npmjs.org/ts-interface-checker/-/ts-interface-checker-0.1.13.tgz", + "integrity": "sha512-Y/arvbn+rrz3JCKl9C4kVNfTfSm2/mEp5FSz5EsZSANGPSlQrpRI5M4PKF+mJnE52jOO90PnPSc3Ur3bTQw0gA==" + }, + "node_modules/util-deprecate": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", + "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==" + }, + "node_modules/which": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", + "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", + "dependencies": { + "isexe": "^2.0.0" + }, + "bin": { + "node-which": "bin/node-which" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/wrap-ansi": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-8.1.0.tgz", + "integrity": "sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==", + "dependencies": { + "ansi-styles": "^6.1.0", + "string-width": "^5.0.1", + "strip-ansi": "^7.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + } + }, + "node_modules/wrap-ansi-cjs": { + "name": "wrap-ansi", + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", + "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", + "dependencies": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + } + }, + "node_modules/wrap-ansi-cjs/node_modules/ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "engines": { + "node": ">=8" + } + }, + "node_modules/wrap-ansi-cjs/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/wrap-ansi-cjs/node_modules/emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==" + }, + "node_modules/wrap-ansi-cjs/node_modules/string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/wrap-ansi-cjs/node_modules/strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/yaml": { + "version": "2.3.4", + "resolved": "https://registry.npmjs.org/yaml/-/yaml-2.3.4.tgz", + "integrity": "sha512-8aAvwVUSHpfEqTQ4w/KMlf3HcRdt50E5ODIQJBw1fQ5RL34xabzxtUlzTXVqc4rkZsPbvrXKWnABCD7kWSmocA==", + "engines": { + "node": ">= 14" + } + } + } +} diff --git a/package.json b/package.json new file mode 100644 index 0000000..11607f9 --- /dev/null +++ b/package.json @@ -0,0 +1,5 @@ +{ + "dependencies": { + "tailwindcss": "^3.4.0" + } +} diff --git a/source/_includes/.keep b/source/_includes/.keep new file mode 100644 index 0000000..e69de29 diff --git a/source/_layouts/app.html.twig b/source/_layouts/app.html.twig new file mode 100644 index 0000000..f1f7952 --- /dev/null +++ b/source/_layouts/app.html.twig @@ -0,0 +1,13 @@ + + + + + + + {{ site.name|default('Sculpin Skeleton') }} + + + + {% block body %}{% endblock %} + + diff --git a/source/_layouts/default.html.twig b/source/_layouts/default.html.twig new file mode 100644 index 0000000..9d0395e --- /dev/null +++ b/source/_layouts/default.html.twig @@ -0,0 +1,7 @@ +{% extends 'app' %} + +{% block body %} +
+ {% block content %}{% endblock %} +
+{% endblock %} diff --git a/source/index.md b/source/index.md new file mode 100644 index 0000000..cee5648 --- /dev/null +++ b/source/index.md @@ -0,0 +1,5 @@ +--- +layout: default +--- + +Hello, PHPSW! From 5e443e3d6e17d286f04ffacf85efa966b4c9274f Mon Sep 17 00:00:00 2001 From: Oliver Davies Date: Tue, 6 Feb 2024 08:00:00 +0000 Subject: [PATCH 2/3] Add speaker information --- app/config/sculpin_site.yml | 40 +++++++++++++++++++++++++++++++++++- source/images/ciaran.jpg | Bin 0 -> 52766 bytes 2 files changed, 39 insertions(+), 1 deletion(-) create mode 100644 source/images/ciaran.jpg diff --git a/app/config/sculpin_site.yml b/app/config/sculpin_site.yml index dd35d11..6eded9f 100644 --- a/app/config/sculpin_site.yml +++ b/app/config/sculpin_site.yml @@ -1,2 +1,40 @@ -name: 'My New Sculpin Site' +name: 'PHPSW' locale: en + +speakers: + - + name: Oliver Davies + imageUrl: https://secure.meetupstatic.com/photos/member/c/8/8/1/highres_317091329.jpeg + - + name: Robin Hodson + imageUrl: https://secure.meetupstatic.com/photos/member/2/f/e/1/highres_243972257.jpeg + - + name: Rob Allen + imageUrl: https://secure.meetupstatic.com/photos/member/3/b/f/2/highres_312615346.jpeg + - + name: Dan Leech + imageUrl: https://secure.meetupstatic.com/photos/member/b/e/3/a/highres_257208698.jpeg + - + name: Mike Karthauser + imageUrl: https://secure.meetupstatic.com/photos/member/2/3/5/2/highres_80709042.jpeg + - + name: Nigel Dunn + imageUrl: https://secure.meetupstatic.com/photos/member/b/b/b/4/highres_131268052.jpeg + - + name: Naomi Gotts + imageUrl: https://secure.meetupstatic.com/photos/member/5/5/2/highres_311941362.jpeg + - + name: Ryan Lee + imageUrl: https://secure.meetupstatic.com/photos/member/7/c/c/4/highres_273691940.jpeg + - + name: James Titcumb + imageUrl: https://secure.meetupstatic.com/photos/member/9/d/3/c/highres_134740252.jpeg + - + name: Derick Rethans + imageUrl: https://secure.meetupstatic.com/photos/member/6/3/f/0/highres_276685584.jpeg + - + name: Dave Liddament + imageUrl: https://secure.meetupstatic.com/photos/member/9/2/c/4/highres_203797572.jpeg + - + name: Ciaran McNulty + imageUrl: /images/ciaran.jpg diff --git a/source/images/ciaran.jpg b/source/images/ciaran.jpg new file mode 100644 index 0000000000000000000000000000000000000000..22d4bd76291b0a05419b7c086db40ae86d74a969 GIT binary patch literal 52766 zcmex=T=N7XVFfioi zl@tZJJ1Im&Mk%mAWZ+>CU=U`oVqi#2E-r8k2=HOR3BFwena;p)Sr=p$PG#67xKmP# zlNlHoIT#oiERqX~N*EXz9T*rG{K`uTKK*6 zsPh;Z7#Mg`^Fo6e7#L*0xR@b`!JWa0L4hHOp_Cz$A%~%aL6;$uA&-Fphdv{)K0k(h z1_g#>hJ1zshDwGahD?TZh75)h1|0?khEj%NhExUxhBSsEhE#@Bh8%`Uko};r2hj`+ zh%hZqGX|N*z`)4k#lXP&`2YXUS_};Avl$rvw*UYCd(r>@e-|?_FyCNcI4}jFKYt1X zgT*@r2IdI}F_pOt4E)Uu4BPf0#FCaWFl?W|z#wt2Ah9SBY&SCl0|Qf98Uw?pDlV z3o|PV3kxeND;qlx2Rl1EJ3lu!CyyY%kdPq1prEjrjJU9fl&GMfgrbC$tgO7eys)^E zijtg)jGVk2$Ph+WR#tX4c0LXcJ~PKf)l* zz`(@J2+C04kYZq9U}0rqW@BVv|9^x*ije^%2TDLNSw<#i7FM?Zw-|Vs85x)am<1RZ z7|&l?R3ouXLU^LRZsv^X5&Pb|Z89r4kkx&0>dv$JIk%K+42o6;h@O&TN-+;I_%gxg z*DA$Tt9M*^waj1hUUOpKat`l}s@a9P&b8^M4{cv3Zg9w9jjflgiN}qwTJGn!|7s?@ z-{jc7e6q_~hJ7(NEu4zPGAFFQ`T7&%>F~vuRpk!64*PDjMLytcuqXE&uVeSQ++VZr z)R5+CGO!3dX3eX+e$JZ>y*p=1e5uuJ3eLNjE@9KMG$w7KYI)?9=$4RhyAnewyR z_07JTvhtNbKX2KsIN2tDWsi|b%4}|_Ww8o6%ha#;HD}#P{#toWecO#EGi7IP;i=k@ zox5?Z21B*c#gL?zoaZjQoHx_Fw_R^%0L$$kI&-!+UaVLx@MzMZwZG&lPMd9gq&}z2 z^7PYP?ki4uJk?#D=V|J?Ms-zuba4l^!B^!BzVncOU^jejyZptESc zlX7#^2?L>TzjmHDBk$5*uv+y?Jzu8Pp-($|D-VZ73n^Xv?Rs+0LtbaDg@&sXTo{Vh zYwrz6oKiF2QNy(=^vLQ}0T;bOPpT;$yV&O|yy$jGtXTA|J)2T?xU-mko9Sxvmgne9 zrkg>Nr<_Z9As?e_^w{m>_NC!o*O*E&7bTdkdZVy-afF~|>XyB7?W?vgijzKAax%i# z;krVeO8Kli=N@y;OBb3_)up#`lQ&nglZMQz6M& z(Q|s$lS`YJBlNaPZTq@Y_mtF{dsl^8YO}uV*7-Fdc=0+bVUu0KrQZU&zArv_eyhjK zU$P>HmF5~t7Vf()_|nF@(XQ}o{X9Pf%dZj7t$*s=VZAu-OHkPSWiywjb8h-M{nDj( z=7*o(v|smN>5@g>DOvZ;gWda2wZ6`JvPe?*V(@wUbAP4ga>vbky*_igea-79$&tl( z{3pCg+xgzr?weik{o-D)oyR^4O>)04oe;h%>wM;_(>A`h4U3)Ta$I#Nh<%>gA3Ev! za;vw36U&?4JiYhlPqpGoX^)gOoLBpvy=+(M|MV&7>DOtuV~?NRw{WSzsVV2(?tI@_ zD^a}9fA9CekZPZpg__IdzPa>DzZUs>`W>6dFSAqTddZa&m`z#ECVu_2KW@cZp-;?H zZn`($Soms}xbDBI+USpq@-}WUFp=E1Q`IqL%dE%ilBWAIY+JPa*S4f>Cq0vuS6!dA z_DjZ-FZmDthIniYo9X=ASXAD%Pw}Fa(x(mGw@a-vRzH_E>A0R-^-QIj<*cZ0WSQ-= zd~cZt3{k6}%>5vyvs2sLR7fdf((`qtFFvNGM6C?}S=(tVAlKi%zU-`Z!`E7U^Hqle z^@>9p&i zM?bWDnU!H_Ru%SJe_`}WqleC`JRg7N6cRjiuu-JwX(EHynJ*8*H=kIdeAwNRZKY1u zh9`w{W5ph8&${%|!Fx-()muGz{|on{%F@<~`b{tRzQ)gP>C2rFM^iY{H}Enc1b<>vcEuXN76oy;4m!~f|0=`D&qUoM%f zE{~nsw(@w$Jm0HjQ#|Uz`aVzV-gdos_7Uw(YyBQy%_=&>bC_|pTp*v&^|CzS_EvYT zsm?4M`*yxAczPwfaB<>1%U2%KGS(h5tAlzjEZ#A(cTMrO&-XnJwdk+g@MGQl^aaJA z-`-bWSXTJ`{N|SyHJ@JDwdb+E+P3U|Na#hTpcxg>v$nnR$O>M+PX8^ldg|eAity%B0N3Yimrm7+d9Iq@uv#KyyRqdWu`j1YUTm6n?@%hUkV_z6 zXVPpPIo}_%^fj8?bY>r&Rvq)omC2Uh_GadnJteA>HXpj_GDEzeX|Ly8ez8p#!{rq# zqVBaDFJX^$?q3xAyQ%cqeg7448#`9MzG)Waba4-tAJ>|LD}6TRu8ln_GIiO$m9_j~ zrOO4?SBtu)ol-s)c!b3>wQS{Xod>A_YGMce%3EAxu)J;dD^%%J@tvI?qqK{J+E+y_ zdT{20a!m}!>C9qV(d9eT*DnlJeNk{R^K-v#fbOMh!iM|qGDte?l?@N~HDX;>@HXZJ z)0$n=#6G>A_gt3s5XaJBkMri|y^^==h{(L}u|52u#AE9nR=Mn@#TzcKw+UJh+1r|Q zw5>9Sak^OPQf+SjW1a1hzh;H+oV!idE9!`x?wc8JGy=soUb7MXy#2O%?5gRz=Wt0$ zdo1?}{3W@Wx4!C=O@hax7i_%KKYnqGom?gynYBD+O=*DYpU>-OR9>mi7kzi+QlQ8d zfldj7vr|JuyI%AQPSi?cYCC;Tr`7qVcG^3KrfC?)j`%#~zpaUvSCT;IMhCXInv`>!J4DCw#Vf&HGrw@AC9~%0<1BD~mHl*nAb! zjJ}E{o37uzc`xA zeb0~k_T=w8vh!U}&OFU^KQaZybXWXd6Dd}-Yfi?t1?z-XFt01%^xMg>{c2LYlbYer zbB8@bI(2!)+FpcvpL%ls${8D#gF^Q!#pF$HImy=WeW_BgZOBpRH2Jlo-%~VbP0${0 zhYL;;RulZ%v}$&noIE+b)^&TgwRP^96$__M%AfP3X-1@n(`pyS)l*nY7G79%FG~7G ztb6lqdA@Rs16r+5Pt0O(NlSHhnxUIhcsIy+@{7wY&kj3xYAw5XFwT7G`PlI5TY5Ds zRPNee+$@+}F0bO0w4j2`*=dWoWMb~M+&Nh?&)v`aF@}b@XvZZua_OxI3(n=x-}Acq z(5m)RU*>GTlFayfWAVe3+hNM5Prbg~6ty@#n{}Q~gOsk)jkSzC`V9XW{O9e6eEVqL znUXoLCT}>q_Q&xHg$wr1Xunvxc;ohBJ=c}tFZwq>cfJxCQMB&>v)l=#U2mIXCAtJ$ zR_vYs{|JMQ00R>UFfuczt=)N8z@YWVqN8b>Sf^>&5jmOt8@mx7+=f20TN<32U$JWY%1IM+)%pR&dwst_Q%g2L@kNe?tLu%Df5cs z_`U-#A{>lbu2nR1yd$sKHyAnT%)2dwlNil1_f7e`M zXm(nUKa5LKN27YfHs#l*^FB_#tsE)8`{Z|*wL66v&fn3oX#8>3yyo`Du(O$~KFpN) z_@7}yY(mBNKhj}+HJ?%ytYy|5IQ2L&(5hjXBV%eyh|=w2N2~dxD%B76E1&%1{raVu zu4#_yi;c>x!q*N~JlQeN)+mf?#+})r(GNH1iLLLd)bD%jw!}oTdXiP{iZ8*|Q&$Kp zJznEIB=uSN`p?ea`~HS9s?|Tc`s2^8hlzhJ(;mg9&rlD2 z>g%^9?pcki*1D)dmnl=u@NX+o*;>f(AZe}Hl>X5noA>%{UiDAFAnM}D z4Y9{>h!<^JeK)yci4ObQ*YQy+E_4Xx9CGuPvr{Xd^Eh+ix#vquv+sYLoWxa_ox;2F zo#+83`>?(H%%|+}+5hp?@~Dp9CqA#3ul&1lCH>GwW|NuErIZD>UJ2CO>v7WJQ0qKL z7ME}rv!mvoN5fQOddwHi{>89E^;eVron5DbD!xar43d7jJ7Jy8$$dc_eD@g35d?=rJ5eQyaQ8`a+bfn*xA}JCu>*I@>5gl zo@`%ou;pQxGv9IP2kUu1To3F&y5{f3&2!ZQ;CdkL*fW zA-)BSxhs`j<@N>5YK)U8sELm}SIV-i@avMst*@NkOfA}LHK|czhE8-O>+i0o5vxvJ zxtpe-=4bD(D57)eapuNr+Nvd&?U$Is=J$+8L{D})WeAk4gUR!BC z_lWvIo4+sSx%bb%wsB|j(`D~&op=*$6lh`KW!7^;>&;fz-p$V^I4_<0W9f43FEJ5` zox;Uy9$eR)xF(WI;vnPe%U857E>rW2I`n3;VP})jWp;NXt7okWOEhM8g2Rem)a&!ktn;gmMDL82 z)G?m-cY%AL<33KGpH_!dVkQ^|8fH1m6$UC7JloT`Qn=MX)kx~I@s^j9HtNKrxVh!4 zs}wH&_T}sKJ1x#jjZ#-A>{+r%<3?_9=|RYS{b|rQF-rc{0D3CuOJi+_CA{ z$F^yX+3mFR$Nx>|TakXFPE)eTvvS8o(K!xbce>J@_SV-e=2A*MJlDx{*XvCkPpo}~ z(vNf9&*`5yjiuVa<8sf(jZX8g{(dfh{7}eyE%{GBnH|4$-O=3=YO?d9F^h$L%>nP^ zj;E`G{lCioDvSFev+mm3wwyMDV}-3ZcHCQAZhu77>YdkvGCM!}$zGE-#~kTQ?<;>e zch#PpaKZl!$A8#YoO~}|GCO!{-+8?yGyV6+FsEqu%;$O+>Ju?M2Q9kJ9^d=u%0Gqw426OkA>X*p`x*V6kW#67<&N3f<=tRajRaq<6JdI*Cs0r|wd}yWp;EMLzznlLv9NDn%4(IRVLHqY5 zG72lScISo(y85XdRxHU1Kdt7y!s@C+_QIaITU)ub1vP>r&32sXJ_SDq(Cv?tKRnxq%u+cD<&uH6CrKI!QWPaUWF7kd> zg3;b}4x*`NMcH%LW=+5T;FU&vmXglzo;$}%^(IX_^KztdF~Tc`bJ*i<)h&p+#;lSomr&zFaOIG=`EGI66dE_e%het)^;QL7|#&d#g8I*%(pMn*2?Jo4G>Lf3vK$;#}YP3hLpbBvDdj?DYd;A8D)wEmfn z#N3MIj(5^_8+cdB_vohYo&R29=IJ~&(<$!9W~gjBI+4LYb<>sHjd9g(C+uDvzVh(( zv9trxKV94Pv)e*{FrIz# zm&Zf@JG=fftYiK*q4regM<0*Y36m4uZrx~|_>TE)PbXuFAV(1EpW_!p=ebXEQ8=T{ zvg`Ru$%#FmvQ0NNI-2cGShUaVWYiL&PrJ$kz6EbNnCtyo>2coP$yqUN(U}=no=N># z*j4!a@U1r&b&|Z)#1cYYb}Q_dq_on}AzskUYb~>Zz0MWy zW9k%=6Q)f!Dcbq)7n8=78D$!GjvP6!a8kQEcGaaPH2$Zs)M>#zQ;w(c zJTXYN>7El|x`R)u)P)z6Ub%Xy zW6liv0ozpZ{d>PFd|>!wp~4w%6hJOUbn{;7S+{wI}esW#5=#hzj zg(qH4o;~Kse})t{wg_gOh_BH~2hSZ1_>ef);m7lcKj*7m*p(8J+^_uV zO>LdMD)y11sy3%(+~VU~7O}+y8C-R33bmf+a?QlGeTiUqwwCRRjj3OLJc$0092~Lg zMBq(_$ir)9Z1vjT*b^dgC^_eq;Vpw@>NXWWCbaBVoH%!rm%(y-%RkS)PMm1D^6l+N zRUw=9SCTr4It9m+l9svronZUP$tcB7n#F1B*BMW)hwZtzq2xzZfZx-H-Fv-O)qi3? z7P=~=Jo53v(k$jbJ!?5?PfFc%TR*GfJZpB%>PN5Cc2CTkuTZCYKWetd>NzedX~q9! z{xi6|eej7prd?^#v6zr1g@xK_mB!oh%_lbh=wFgvaXfWr@a3(0QOeneSGnEVrFO zJXfmc)U`ET-@_)=PTF+k`jfoS_FLI6!=5gz$!ASJSzF=0@<}e&8869+K?WKkPrYP4 z+%K*(*v-dt=1IP?GV{wn>D{L?osP7BJHe7{?dRFCYEx(Hb@MITzZ^(Q(mL_Z|Narr zqt#blJy&?ytyvkVtt?k!cIcqK-TcPKYp=HcX9zeTFXx#p9@@K3_tlyOp-E4_T}ggA zMXmkCg6LxtBUk&1rhn|$clR|@f8g|qIcVzxmy|PZ2FHvdEF|~HS4v9$`OExqZNk$P z*W%iot}%FawrXbQY+nCjmuYwBHCiDsOt`C29*giu3TG%sTnL}?_H@*m( zb?nnY!8z+Mq%PasvP{e9)ufztt*cghZ#w<$+YPIt4S%PZHf_@Ec*&D-%;-*X?y<0L zw$fu&=lEQn_~k1V)GJ!r?UHZ&rE;gR1Ld%N_g8$vSA)9XP@aW-0_FJk^7J{!% zt(|wi^ZHxSgPpO7!XZLM+=@rU+EW=h*$lfATH{sQ^tNVbBpi!UFc5MOkgu4ZdXFVO zg~9D(%DS&}{xh77NeEmkq3Q9YjpsGD^2fan=X{=hs7?B0WIVIr+ARO|rN$c*=I9); z_p7_3d5`_BovWYbq!#O-b|Y@}+RS&6>3@q1BAJacI})#5FP`{z-;zu7l^6|9O^rC{ z(d1fv+AZLy%!Bo**O<8MUiVLZF4J#vkS95IUg?paDIW@3*DvwE{PX0To*wyt{l|(E zKdoR{w<;|5LhZBgH_v=-{CmXvWrsk|MwWcGQyUkvimv81EUh!#Qt$n5n!wIA9exVC zC%#^#R=xkDdzYHw?en)*Y~AK#GVjaZ4e7m}6+RriCnXEtW>?1=KfbA3xKY-D=h@a) z$vyJ}_tziDQ!_ID+-lXYe!J=(r>Cr1soER04ZovRK0H~j<9=g-#%cC%HT9OWLL*kS zCd4+SEwSl(E5Y?TwrHo+0!Nn3mktZ9@YCM6o8{?LZ`FILdwCialdUfCEnDo#Qr-4X zVVUddX+DA9IRc(=xK+LWv#GdP&3*3X3QGz3ssH?{eP0W<+dd6k!!hF^r`4^O?6=i6 zR~-#Kxo&O7QJ$2ocGeoPOPm-)w_Xd+|CoL4ePWQ?la+i?;j`wf+Ba$Ai@H*;X9s+^ zxAT3T-MzM4w_f4K-DfA)m1iiQ`e^lcL9pzS$JY6(Gt&EV5~fGImF_(F%jF#Zia)Ne z`OxcWGn5qNm#usBI=5#X&um89LPi1h8-{cL9Q@8+I47{WFmdz!diQL}Y{}$p z+QpOSpGo+uRLb$Y@A5+J&B;4U-*)wvHYjMWUuOAsqtc=`4zBa1wz-z} zmcN@LpsT}wR(MUan&ULn-i=n%&gFRv$vw7xlHlf&l2sg^Q{q%w4VdtKNqq zI5>1UR~s>`WSYKtSM{N3eP1dw2dEffk=L%b&h|4F6C3d{sr?aJI|NX$s$i1zP zE$!>lv|V7Y&Oq}INm1lY~Nx@ z!3maj8`vvPMSf_GRM+ldycfdRvmstm_6Q^Q`<}E<>E^S4<-bU=Ev-B{;jP-Iw#fwTx;y8G+@USWIu6Xzd+uLKFKBP^ z4qtQ4&5e&IC2iB?N1N7e>1i`>kUpY+d2%k#cw5=Q^T$jQTD4!q zOL&V%+04n8m%PC{cloY!2?>9;eYl{<7)vG3~40c895K zIA8hmM6YAQk(os~?~{9Xi(LwQzm6k?Z9_6k@fCjMl{=g{SrZU&XYFwPUr;aPxrc@t3Ip<&THI=%XOcoI*jC_cw;%B}V0jlYhoMEvY=YwsT(K{PMV& z$M`2taDP;k%wm+JWXX0~Jy?ag>8P?!WbL=pC40}DYQEvV=+Bdf|LWGxzsw&n&+CEE9d4<1lB*A771*nGJJa^WOD~z2|v+!rKEI7M1^!|2nz*dT~*W zvGC*KpvfBwijS0bd-Yr^J@Hkh_e)LLEzhK?Ii_6!yK*8AfBr_l zY5$;B*jsmgd*=F>a|*(2?vXBRN6+T%Gd~?6{N%+(&A|MXU)~ik_sogUEu1QGanID& z!2X4Q%~x{s%X}1F8ET@f!mMc#wI;J^`iW1hnR8YrdY$@mX0fNA=a~n`G$R;azqEJy zyWiv5=jc2=kHW{Bm0}1dlHV9i>%WO{ro6o>656y zz6-Ij(uL^60pKmUT$e3oJrb${k2(`&aswuAH{b;4#j<$o9aCZ=c@T6DMe_9cD&*@n`ANRA)vB^I7tb$YXfKS3Y z17|kV$@U(H{`f!UzA)$aoc|0fj-B}`@7>cOU^mZT$uB z2pc&#fk)<<85!*vKPx`_!)^M|W8p%@by}-ixerWOps`T3%S@@@d7Y}XNTE~50*k~x zlknE39Il*PDkVo&8#znriRg(RwKBQdrQzMv-Z`x-C+AkKn7n9*+jL8Q-pF4UcC7Pg z+NP(^lTnfMFvaa>X1&uPm!)nG6MK5h1unGzm7n_KKg0U1FS?^KhbIL&6^ z#4rt>)k<9oFZ(x{cFD6D2l?p)?XeVZG1NNB-QuDW@x!Pn(7F6g%Zhy*3yV88+>+U_ zQQd9Hcbl6#?$7w8EUhg%C33IgK90@N!Nu#c1!6e^PCZP%qI3DmkDAi0+3Q(6j-6O_ z`t(HgO1CL%(~57ky+6>Q_2%yEjk{D=#O~v`^hGUlwRW9UpzT7Z4aZ(gPBnB~XO+L` z?zxk_45>-2@w))CiE^hR7ewvsn(kHkcMXB9=Ai@&YZJOf%g*G`OY zoZ@>=?nvLFe@CW@*7dCjEKRyu8`g1RQ+~3Ll$8F#j?{rUF8e<;#3=V zexuBsT^E+{pE$psA1K?Z{3d?! zo5^$QT0AGuH4@iMzR`8RmH&93>`aNT?q`4eXGnUpw8PYz>AGE-?_ES%x{=)IutFTw2N?S0$+ z{J8WjRJg?cjf$K4d)fJmd(B=v`thG(CzqzopZKkh4<4_sZ{l72R^2wIYm-*Thp2FGhSPNsOs`wc%IX~%9VevuJYuW-B0%W{K$X%lk4bAnHwGt+e4~s zf1WGxwDWhVkh-m?Wm##u@WtX+n;#VJD7yV2-K0!o!lShtJ*WP#TmR*ipQloh>c$VR zE*=-JR%CI!DE{E;#4h)ZbmSKU70rQCU3$M<}FOC`(mfYLL?d0#lsEwa~9nmygM;*3CZjJrX0>m`M$*B&dEyr@g64d8RBx!CgQ zRe8EkH{P;&*HM_ga#F&Urg;x-wbDQPmcFgboXv67u2*Wy%Dc)FgLRZQ+|jbJ7khT! z^UuD8J()k1qQ1>Km+xq~#JW=ZUgXt~zKNF?J(iHUwzci^^IoQ|+z-pQZgswKR=G56 zUDPq&vXC8RAE&%sy}_zh)O?o7kGAJCE{A`%opSAgo6pwo_m$7`iO+fd;b&RNeA9y; zu1Z(;*6iK#Bt125c1iMfhplf4>O9gIK82ljzZmgs>ywu)$9687yV&EZ+3F%|zmRRu zDrJ@(ICz!$!vTrC=NndDmht{E;oqt=ADX4qukt+Iu$y^P<{mr$5DrDjNsMPYTJJKR zt(K}yw7PZY)H){lLR;mhzNOQGS6;g}!?)hRbaC~B+UQq)uP!Pk-<-2hPH@vPk$JDA zcsIA?Y+oYQ6;dzEmyS~R>v#NA`lb9vk8y^Tu_?5=lt6=SN9`QaF^oAr^ve4fW~{en_Y z_$}WpJkr&Bc-K^`?XKn~JEqGp%sduic0zS+b)+XvzyRf{I{jy3j=gYTu zI~x!7X52YuU+Qt`V@$Wla@Sc=XGIKpvNvk09u>D>sAkx-{MpS6@moBR3(lN$Ji6`e zn`0~Q&&pgKJl*rh6q#4cmegL}Uh21>=dy3lk$3a`TZ`)y&dleZqh4_J#o4&BxXVm8 zPdI+jue^KZU^tQ^NM=;^Z$-Ey5&;QWFEBPchLhAkcyb}dm&W2s8e!hY=YOY5~=d$vtCzBU$%xo}P zx9qX+-5ZJKv;HOK-#e9D@#@RU4_g*#?r@IfC^!)DvN7Nz+lfzHo8v=FF25^E-n2A+ zj`T^fThE{Vy|~nM+J}EyS5`l}UY_Z;HX_%VPk{0G{FKZsn^x?oS2tP}&TGy!ZQ8NU zGff=t_WWHE#ls>ObwSN(x#RPP!5=z;=EirdIB+cM^7>V|R*h@dhk0|yHvf1r=l&cS zO%r`x!OP8GgZ<~9(Q7v|xVHGPoYc3iKXnf;zFM5Qp-Xt$+{jn$+y^#3xy9Ub&Svt? zuhKzV!yfj&`g1i(^hdf)P)Tt`fqwoUJ^4SbJ;m96c?YY@41X^VdE}UB$&zq<(bGwH z-U+B4Y=3IJNcD;3gJWF!_JLN*ua|7>l~cLjUAZD<;mOAt`)0GA|53l~MX=J$l8#k3 z|1;e15qWh&)Teosn&y?xk3L%GO?opHvpr|dFMhFetGBx+uT&N5(T`IZe&l!c&Hb%j zF!k<7t!X<P7YuJ&ABrqpeATjl#l^tApSm6SK6Axg_@f^6bJ4N5 z?{1-XY%^9|c(*um_OJDAnbQt19^7%LZQG;u8@_x^j__M?{rb`~vNgwjR!yCIWLNiT zs~pQZ(O{p?%x*l>mR(Ag`tVt`@BXWXw!f<`Wf>mWaeB{}xNH~S9baOO*Q$EU6t2AK zma_io++@w(RPlmy+4eJiUhUI2n9)Az|xsX2uoyZ1PsHE&~m)EwIouKUEsuYJ?1dl8c#6qn395u?W6 z@|#ud(zAUx4_sx?++uE79v~Mm^IQglwO9wo751k+W$r414NuJeUP!fivwWS*Y`+er zg$h=&?Z4E*R{I1mxb9edjx#<Y79T?`1oW%$nWHH0_>xNc5!>LMjXL`HEW}Yo1+xdsT^VZTi-mmrBE8o;l8U z;f|5Hq|n*(Q|WqV;*AHbXO?}B?BzNhzWmKTovOEA-z=MHc}G;7;oHnZpLI{yeF!*w zsf6qDz7t$Mvg`}Kxh*x@wlv;mg?+%R&w^#C0=gDIOG08juNN9m+nu)RYgKfxhq}}J zxYd%yvzZJz`%M=WW(cgk?fPVHNl(%hj@k(+LOaz~?=<(F?WLzRTf#eA@QUYz2f;tm zcdjkSP+w8E@@mxOQwe_raJ?!$`m?4L6)rL(ISKN_azTltKie=ZXh`hKZyJhZGIk~mrL5p~=Ph9wJ z&H>A-c`sL<(NnbC%DE$J!C$d`XR-o{H@P(h-@D-4Fj@bk+iLAutcR3?o?dPGJpDhz zN3O&L_o`BTz3+XpfBQ&Wt=XIL-o4d(E*Pm9?NjDm_j6YNUuTbh%MNlq41E6E>6M!O zRyc`IeaZX3GyRu~%ZfwpYG9E?egs{pd!4>{PYD1rm21InORkOjRFO<@28{Ty|JD@1W(O+1wom3qC9iTQ6|zT6Mn3J+54_<~cKNXnVht zGMMhsVs}1d`x)gR&+0R~0#&^1vS&mwt8h;Ir6Ik0+sXBX%G-SwMcwKv-frQ$?wsT~ zezP-kruuG)erz`3;==eW{lrGzxec!CS2(>`lb)&S>dq{Ctm~ofuhU+)7TY?#sGe2# zy6NQn`dzPW*)KO9&e7Vc5v8?(`MhA#yk`Nac^N-9XBBrAR2oUA-S-t`-)E;EaKgfM%dg)~E7u>s%A+2V%f+vk z<9*YhUv2)8nJRT%xdqGoYrJ?CeCyhH|C4iT^*(9Yg&BWC{S*&z9`@j9V~BdY-L#34>MAtVeg+heRE)I@5bN zpjfij=fM*vv9s@tjd$^=8E0h_+gL4|r9c10+~AlOJkq8X!TP$@Exk(=PgQ4Ky*`8g z?WSi}v$Ja7o!oLXYT3L7)*}IrvJI{*{WE)By6*z5zI95!3XVq`gnCVx^Ne}zTt(-_ zJDlZR9y1-ww$_R{eZc6h>--Np`g|?*3i3_T9xUz8n{8@(B_`@Yfg4xxs!7l7kE(07 zE>_^LO*@8KZ1}ks+t`#-cpAnmT?BR}(7goJf&KxUu$UA>A&;4#)m`bHC zW1Pf4`Ky&@Pd)q^s=2^Wfhln5qq11riOXIkv#Zy;@+4;dzUO(~G)n4^Wna#z>?J|F zS4(L}Ju~e+S-d^8z{u?WS(B~T{pMwaJb94G9B=ZfBy(r4)vm=`Lw-)3@tVEyQuNCg zbA7_P=f(b6Yiq5=_aJGzlN2s z;l27b<^ua&fyN8|rC0t`u2?$XRL$qzEa&a7UQXC>JtFeumDy2J&t5!u%MoKQd|=;F z=K!ngj3)mXwh6!9vaQw4p|CpLF7WrV;7Yy~&paDu9k_Gs`$UgNtZlKE-vtB-E0r>Rab)t<((SWyY4{p4BFe1Wc;mNZicXiDU{XX?<>y>*c=6?IX`Tu9& z7hTlqq1R~N#J+mk<4cLbxk2y3o|*XNs>k~$=XkC7wzDBvPUy{izt?ZpJiDT6{4gW` z;i`1ihX=Mjzj64&yu+UTd`Biue9`cBld{Wg+3J58Z|3@Su1s!uJ6)^H_OPwM+pAGE zjthP6UO#K_pJCC;n4pSU+tgiu%N^e@J-a%iIPN%e#%Ip+xmHsSpOX$a`JX}IzOudR zuVuL(RWyG#Z28%$l4v(y(6x7ICC`oXztumnx?2_6Z*ZP_(dWs#r!u?mv7eptx7$6# zpO<~ft8)M1RdLrXgxNp&FR{P8MT1xIaOe$_G#f{|#k-`J#q2E2+Qu+%^73h+VWwxR zU;Z%;FuR$x`sj4_Zy9m|DQcU^kolBlwN^CE&x=UO%Nd(4@&EFA+RVD@ z`|OolDuksy=c*joYI^YPmR&4$FTVTnmhnATSSPYUthC`n#}bEQ_9YgbuPk-nbm(08 zv3qq#cQx;X7jqxJ?kTQlXL?q$OWl5BNan{mp?z$bAq5}ny}MSPtW7tuk~{sD`Lu4# zt{K^~4`;SqGmu%W`BnCOYT3%mJ$loQ&so!3VmmP<+G6TQnHLg494%7E?H%fW}RE{`Q5w<>DDKH?zBW)HhDfdAIQmUx7h+(9MZ=D>}mt?wF%i%wio;&{~>(RDAzB zKCWjU@?}m1pSHQv_&r8ZPP$vLlBY&bRg-_NmrY@^+s-d-#`k**~_` zp{-Np-stcs&h6@5>Ulpk_3bay;tUJ+jE8sBc2Bcky=(t8-(6mr8)oL6Y~VRFwRG2l zpA5`*ooDY+3^ov+clw6hTbl{lS-}<`t!4&16o0NLwso&+$(Aki_biRh>^*Ta=DNw2 zg{Q^SRWcT>4fyWn@K<={75!y*Ufk~b?JAv@-@Dc_ebw^7uRGP2+<5e2Qg_8HztrcZ zGQ0<^9y_h+;9d2)@UC3ElvMnuZ83BGmU=a|e)@Hm!6MnQx8}-+IjPd~yWZ9x5w)$> zGBaU*IA7!YLV>Q+{F}mFtKYdK{-i(kjGf@3C#FaEXU1H)zCGpotN4eZmY4ENUbR|o zoHR?m-`3NONvKMo^thDXM5E9x{73SHf6U_9-+sa5Kf^nLQny`fM~~iLC3u<3rE02` z=1iYb?|au?oL<{Bf4bRozg4#;TTA$u+&x|FC;M#PJEeZM?-hB^Ly8ygU$oR~Z&awX z4|kqqf5<8Q)IH1FW;H%rp#JW$);sR*iiD$EUU}CuFPeT~dFbuwd+)z#mEtWo*uQp3 z=978PZrq=G^qlUNpNG1RRl62F{2{vPbkp@ar*aQ@USPH7>$YF5TK{X6_3y~m%SYzB zZ*-pdH7zVQebtfQ*A~5dbtTl|>N-FD57TQ5+-ffLy)b`%`()Iu$(>ra9px7>NH)!^ zZ{4jfe5pL(dBn*py}~aF%ELC4?oO(i+I;LXpA*OFR2SvKU##mNEwdNVI;Nh&${4WW z)$?9~-|_rs7KVHE8b!^EbXv?^aCiBo;LJysB#kjg+n5*KRB%|yd1D?kHs&o zJ{y76-ffMOSl#-Ud-^lCFFsr<9#psFr@YC9jN27EHlDjs&i*Vk>Q~#zS-w4{5+{Q^ zV=rVLl8iHL)cSO@?qIP+Q{3bG4hs%sSe;VSJK}fhS$A^5lIp^Dwtr_UGQ4uA{B6Hm zb6!TsnipGg7nPgw&Nr_Nt?GSer>a|iWhIlIMzU&IY$bbWtySLgk{L4_H~kJMHFxaR zQ~2lcIZJ%U%*j*jXLSUGtq>1Rn<4U$UqX6uF}uL!PdkoZHJkim>z!lICbJa%TlvSZ z_|+ZPt@6PhpF-u2M7`d8WA%K7KWmu`<~m#vshpW(Q73gO`G?u9Q}gUf1m0Wtq}s`M zER4NnHKG59miE5xTX*Hnc7M1S^R%Ss<*$^Ldgs4d8m?KXuzUZu@U{@!^|2;%9_^Z) z9pe5$_MYv8nRg@m8h85bcmE-nc~{&@^j^7l+cTY*<7T@v zu3j-_T0W`IU-fYIy09IY&z7#R>E69YSMm5~r@qW*R>#uMnyyRlNY0E@t9u!v8)a%W zcV2W~tL?joFS|l(ENxW{C;H8K7A3g9{aM?t>$1mZ*{E7wc^zaBb19+usr{nzzm~kV z#=TRbeoc89%22}a^UopGCDX*yTm;Hlr9%95=U$!4JvXSxdR6-J$o^{oV!Ll8-(n?# zOt@z`r=CCf$#>&kUFq+UmYVOjtKRtHy!_R|6JT5QZq~ZU zvf5KY;b!mDO}Sy_9+OsCOp-CUwz%+hub9}Xnkg&u+$R<9JL)vo*8Avnc@r(`8L#{j zwyizDa&61>$xpf+d<$mYHL%mY=Tn#UOGo#u-lTaE*Jk_4FP>F1HLP|TPwBL{7`IQs zFN!7ZNuK%PcX(}ie(1NnSUshmI<;YZ(`#?ru#;ARqFn;7)Du%Zr%@COv8`YY$%;;+(f4`m}7ro1I6j?tS-q8lu>H#Xa=+ z)ex4V{|w76D26|Z`R*~njpdtProO1UgTd_Jsb|uf{_r2Q{o`)by)~!D`t()v$pIUG zB^;b$cZ*Z+<7dC%6(7$3@XzaG{P@+U)@JhR%!$e`cHVKmbKYu~muQvNzND#MMhfRr zR>x%-%ong)wr%2)XN-*J3+31S^L+E@$1>&>W)b(lPkEUhXAzD>p)Qrk_e?Z5{==?PSNq)=`4d|{S9h-V zi&17c*Xa38ETYz_kk2xD>ZRsYLjM^a2|aqia5FY%-aFS)hN^Wet@^IN_9O|cDz;jE z-?(hmbbYB)Gfx_Fe%vsjHMs3qaBTRI_xcA-zpl1>|LRSvR7^mbQp|PdV0rhh((Lq= zXByQv*<2TTxa-tvw?@J6Bj$=?p#>{%wy$7$*Xs12q3s!eNBZ%nFJ|baPBzM7*6dxH zyY_x*a`x3!-C36#W=FTx>ogl~)O_5zIyrt4_uAdBW(UnRzy9#$CY2C|Q;b)9m3-o! zpWS&!?L$qmolK3M-h|n+f3NagcKT&@>4rmBvP{<&_kC{r?fr_me3JE37oBS3H`ni+ z-&MP#N8(Fxfp}_Kv~RQVs;!e$m)`Y=lfC-sr&g}j^RHoY%UL3q{>WKXZ=Ct|uHEVl z*JfsFF|W&cvED-AMd-1Mg})RpFwULGmooLzS@W>&%t@uK+1+#4XBk|mKDBc{&wmCV zrRz1$@{@KPG z`bo0~Z-Q*>)U$lsRMh4@zB!fSpSNnop^vQMUXw1T&)+P6fJ1%T%l%xs_pbdF$hbH+ z{cL=uy4!z-U8U|4U+)@ZUE@E?_oSNt+|Mfuv+uo2oT+Hr;(pOlf@6AxQ*rF1w>A?e z@XwmR(APq_Ld$PL^VUX1cDW_bduqjX4#TzKm}G3D$zCZHWUY+Oth?s!pEriZyzh8M&*MCk5VI?4!|B7WFrDNpo-T?9dO7W~ni# zc|A2<}J;7qHZK;pazkp681hcn>&Tdh<*m;hVtDKf$u;C+@voG=VYo;c7|SEA@P} z%O)r;bByVVuFDYHrF>+~vggdtW^pg$tGObvVTZshj;+u90&P2$m=xi?pKFj%TAZOo%`K;aph5- zIY-vTertTVi@^xJ=i!b7QEp%TA}XNPQECm))p=ez9Pb<3i6&9c{n zH`u#;-+p+7_PS)59Z}n7u5)iuw|XHpJze}iaqgJx8J){$+vFmUyXV;?VD=M^XcA65?3D-GS{6vmn?Bz?y!BAEwl8x zdChlvLnp;rwLJE0UcEE+e5>E5or zw{m*J^Jcv+e%767!Ty#hwOBgvg6Zd&ZTqHouR1)#am#s^6jA$cvr-a`Cfr%Ac5N%W zyT{8(HgR=lR>-|uW&58Yltq~=KCyMQ1+qs!E8VE6zN~DX3pp}>W@~`y&9k+Dq z%Kg7@%Fl@Z%KP-^MBP6j>C)QGB@qWdJ9L!p60Oj)J+#CwmVZ+5%lTp*AqBZ-J7ZH< zSWA3%?6b?fyrZF`K=Gis?IDKgQOz;$o6dAMl?zC{SG1p%yO!~Iu=aAxE4`vS%D?)p zj`_9vbVK+%mE=+uefyN^l;7#MxsI)wkzK0s%(}8V>e&1JDOxWNUHlheZ+Q1;^3UYM z&!4TUnqM5B9u~Sjugqn~Gy&6VB3ym7v1uXV2kks(3L8&Y5iC?Qr$8){-AT0frJW<2 z+@fG!&GX6JF}#V@=@iNbTzDelVrTdJ|w`v{yBr3|DMwYPiDu?*>y(tf3kx#2{F50+!NnKW0m)CFQ z8o%b4Z}O#bVm(|Uzhde>{$5pD^lZ<=>~~M2yrUj2GYAj04p?m9-fpM5cBz5ofqjBz z6C4E#{C5anQhCGl^fHr_LCEx(9M_81-tg<(v(3!8FMx5c@nnNJvI6gCN*_>MRJf>X zg8Of!U&pRlGkDcTZ2QapZdT=tix>I>w#dz?nA}pzxaiDJ29do_>itV|&2HID^E$^g zzdF8n%Hb>S;nR1>N$bs6X1#m=#o9^T|CBdJtA(@47LCo

8}M_e$e=!Y{kj8{Xmz3jLu$rW!~$VL9=7r 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 P{dY-a%NI}2|Gx Date: Thu, 2 Oct 2025 23:48:38 +0100 Subject: [PATCH 3/3] Move all files to taking-flight-with-tailwind-css/demo/phpsw/ --- .../demo/phpsw/.editorconfig | 0 .../demo/phpsw/.envrc | 0 .../demo/phpsw/.gitignore | 0 .../demo/phpsw/app}/config/sculpin_kernel.yml | 0 .../demo/phpsw/app}/config/sculpin_site.yml | 0 .../demo/phpsw/app}/config/sculpin_site_prod.yml | 0 .../demo/phpsw/assets}/tailwind.config.ts | 0 .../demo/phpsw/build.yaml | 0 .../demo/phpsw/composer.json | 0 .../demo/phpsw/composer.lock | 0 .../demo/phpsw/flake.lock | 0 .../demo/phpsw/flake.nix | 0 .../demo/phpsw/justfile | 0 .../demo/phpsw/package-lock.json | 0 .../demo/phpsw/package.json | 0 .../demo/phpsw/source}/_includes/.keep | 0 .../demo/phpsw/source}/_layouts/app.html.twig | 0 .../demo/phpsw/source}/_layouts/default.html.twig | 0 .../demo/phpsw/source}/images/ciaran.jpg | Bin .../demo/phpsw/source}/index.md | 0 20 files changed, 0 insertions(+), 0 deletions(-) rename .editorconfig => taking-flight-with-tailwind-css/demo/phpsw/.editorconfig (100%) rename .envrc => taking-flight-with-tailwind-css/demo/phpsw/.envrc (100%) rename .gitignore => taking-flight-with-tailwind-css/demo/phpsw/.gitignore (100%) rename {app => taking-flight-with-tailwind-css/demo/phpsw/app}/config/sculpin_kernel.yml (100%) rename {app => taking-flight-with-tailwind-css/demo/phpsw/app}/config/sculpin_site.yml (100%) rename {app => taking-flight-with-tailwind-css/demo/phpsw/app}/config/sculpin_site_prod.yml (100%) rename {assets => taking-flight-with-tailwind-css/demo/phpsw/assets}/tailwind.config.ts (100%) rename build.yaml => taking-flight-with-tailwind-css/demo/phpsw/build.yaml (100%) rename composer.json => taking-flight-with-tailwind-css/demo/phpsw/composer.json (100%) rename composer.lock => taking-flight-with-tailwind-css/demo/phpsw/composer.lock (100%) rename flake.lock => taking-flight-with-tailwind-css/demo/phpsw/flake.lock (100%) rename flake.nix => taking-flight-with-tailwind-css/demo/phpsw/flake.nix (100%) rename justfile => taking-flight-with-tailwind-css/demo/phpsw/justfile (100%) rename package-lock.json => taking-flight-with-tailwind-css/demo/phpsw/package-lock.json (100%) rename package.json => taking-flight-with-tailwind-css/demo/phpsw/package.json (100%) rename {source => taking-flight-with-tailwind-css/demo/phpsw/source}/_includes/.keep (100%) rename {source => taking-flight-with-tailwind-css/demo/phpsw/source}/_layouts/app.html.twig (100%) rename {source => taking-flight-with-tailwind-css/demo/phpsw/source}/_layouts/default.html.twig (100%) rename {source => taking-flight-with-tailwind-css/demo/phpsw/source}/images/ciaran.jpg (100%) rename {source => taking-flight-with-tailwind-css/demo/phpsw/source}/index.md (100%) diff --git a/.editorconfig b/taking-flight-with-tailwind-css/demo/phpsw/.editorconfig similarity index 100% rename from .editorconfig rename to taking-flight-with-tailwind-css/demo/phpsw/.editorconfig diff --git a/.envrc b/taking-flight-with-tailwind-css/demo/phpsw/.envrc similarity index 100% rename from .envrc rename to taking-flight-with-tailwind-css/demo/phpsw/.envrc diff --git a/.gitignore b/taking-flight-with-tailwind-css/demo/phpsw/.gitignore similarity index 100% rename from .gitignore rename to taking-flight-with-tailwind-css/demo/phpsw/.gitignore diff --git a/app/config/sculpin_kernel.yml b/taking-flight-with-tailwind-css/demo/phpsw/app/config/sculpin_kernel.yml similarity index 100% rename from app/config/sculpin_kernel.yml rename to taking-flight-with-tailwind-css/demo/phpsw/app/config/sculpin_kernel.yml diff --git a/app/config/sculpin_site.yml b/taking-flight-with-tailwind-css/demo/phpsw/app/config/sculpin_site.yml similarity index 100% rename from app/config/sculpin_site.yml rename to taking-flight-with-tailwind-css/demo/phpsw/app/config/sculpin_site.yml diff --git a/app/config/sculpin_site_prod.yml b/taking-flight-with-tailwind-css/demo/phpsw/app/config/sculpin_site_prod.yml similarity index 100% rename from app/config/sculpin_site_prod.yml rename to taking-flight-with-tailwind-css/demo/phpsw/app/config/sculpin_site_prod.yml diff --git a/assets/tailwind.config.ts b/taking-flight-with-tailwind-css/demo/phpsw/assets/tailwind.config.ts similarity index 100% rename from assets/tailwind.config.ts rename to taking-flight-with-tailwind-css/demo/phpsw/assets/tailwind.config.ts diff --git a/build.yaml b/taking-flight-with-tailwind-css/demo/phpsw/build.yaml similarity index 100% rename from build.yaml rename to taking-flight-with-tailwind-css/demo/phpsw/build.yaml diff --git a/composer.json b/taking-flight-with-tailwind-css/demo/phpsw/composer.json similarity index 100% rename from composer.json rename to taking-flight-with-tailwind-css/demo/phpsw/composer.json diff --git a/composer.lock b/taking-flight-with-tailwind-css/demo/phpsw/composer.lock similarity index 100% rename from composer.lock rename to taking-flight-with-tailwind-css/demo/phpsw/composer.lock diff --git a/flake.lock b/taking-flight-with-tailwind-css/demo/phpsw/flake.lock similarity index 100% rename from flake.lock rename to taking-flight-with-tailwind-css/demo/phpsw/flake.lock diff --git a/flake.nix b/taking-flight-with-tailwind-css/demo/phpsw/flake.nix similarity index 100% rename from flake.nix rename to taking-flight-with-tailwind-css/demo/phpsw/flake.nix diff --git a/justfile b/taking-flight-with-tailwind-css/demo/phpsw/justfile similarity index 100% rename from justfile rename to taking-flight-with-tailwind-css/demo/phpsw/justfile diff --git a/package-lock.json b/taking-flight-with-tailwind-css/demo/phpsw/package-lock.json similarity index 100% rename from package-lock.json rename to taking-flight-with-tailwind-css/demo/phpsw/package-lock.json diff --git a/package.json b/taking-flight-with-tailwind-css/demo/phpsw/package.json similarity index 100% rename from package.json rename to taking-flight-with-tailwind-css/demo/phpsw/package.json diff --git a/source/_includes/.keep b/taking-flight-with-tailwind-css/demo/phpsw/source/_includes/.keep similarity index 100% rename from source/_includes/.keep rename to taking-flight-with-tailwind-css/demo/phpsw/source/_includes/.keep diff --git a/source/_layouts/app.html.twig b/taking-flight-with-tailwind-css/demo/phpsw/source/_layouts/app.html.twig similarity index 100% rename from source/_layouts/app.html.twig rename to taking-flight-with-tailwind-css/demo/phpsw/source/_layouts/app.html.twig diff --git a/source/_layouts/default.html.twig b/taking-flight-with-tailwind-css/demo/phpsw/source/_layouts/default.html.twig similarity index 100% rename from source/_layouts/default.html.twig rename to taking-flight-with-tailwind-css/demo/phpsw/source/_layouts/default.html.twig diff --git a/source/images/ciaran.jpg b/taking-flight-with-tailwind-css/demo/phpsw/source/images/ciaran.jpg similarity index 100% rename from source/images/ciaran.jpg rename to taking-flight-with-tailwind-css/demo/phpsw/source/images/ciaran.jpg diff --git a/source/index.md b/taking-flight-with-tailwind-css/demo/phpsw/source/index.md similarity index 100% rename from source/index.md rename to taking-flight-with-tailwind-css/demo/phpsw/source/index.md