Skip to content
Snippets Groups Projects

Compare revisions

Changes are shown as if the source revision was being merged into the target revision. Learn more about comparing revisions.

Source

Select target project
No results found

Target

Select target project
  • adaures/castopod
  • mkljczk/castopod-host
  • spaetz/castopod-host
  • PatrykMis/castopod
  • jonas/castopod
  • ajeremias/castopod
  • misuzu/castopod
  • KrzysztofDomanczyk/castopod
  • Behel/castopod
  • nebulon/castopod
  • ewen/castopod
  • NeoluxConsulting/castopod
  • nateritter/castopod-og
  • prcutler/castopod
14 results
Show changes
Commits on Source (378)
Showing with 328 additions and 205 deletions
......@@ -3,19 +3,15 @@
"projectOwner": "adaures",
"repoType": "gitlab",
"repoHost": "https://code.castopod.org",
"files": [
"README.md",
"docs/src/index.md"
],
"files": ["README.md"],
"imageSize": 100,
"commit": false,
"contributorsPerLine": 7,
"contributors": [
{
"login": "yassinedoghri",
"name": "Yassine Doghri",
"avatar_url": "https://code.castopod.org/uploads/-/system/user/avatar/3/avatar.png",
"profile": "https://github.com/yassinedoghri",
"avatar_url": "https://avatars.githubusercontent.com/u/11021441?v=4",
"profile": "https://yassinedoghri.com",
"contributions": [
"code",
"bug",
......@@ -100,24 +96,14 @@
"name": "Lyonel Bernard",
"avatar_url": "https://castopod.org/assets/images/castopod-avatar.jpg",
"profile": "https://twitter.com/lyonelbernard",
"contributions": [
"bug",
"question",
"audio",
"ideas"
]
"contributions": ["bug", "question", "audio", "ideas"]
},
{
"login": "ctlw83",
"name": "Christopher Lagonick-Weitzel",
"avatar_url": "https://secure.gravatar.com/avatar/7c2a721b52d0763673a600e8f01bd745?s=80&d=identicon",
"profile": "https://www.crypticchameleon.com/",
"contributions": [
"bug",
"question",
"audio",
"ideas"
]
"contributions": ["bug", "question", "audio", "ideas"]
},
{
"login": "ernestoacostame",
......@@ -135,24 +121,33 @@
"ideas"
]
},
{
"login": "3wen",
"name": "Ewen",
"avatar_url": "https://mastodon.fedi.bzh/system/accounts/avatars/000/000/002/original/6f387690a504ae46.jpg",
"profile": "https://mastodon.fedi.bzh/@ewen",
"contributions": [
{
"type": "translation",
"url": "https://translate.castopod.org"
},
"ideas",
"code"
]
},
{
"login": "Behel",
"name": "Bastien Luneteau",
"avatar_url": "https://secure.gravatar.com/avatar/ad63ee8ef8e3db8253d21e5012d2724f?s=80&d=identicon",
"profile": "https://code.castopod.org/Behel",
"contributions": [
"code",
"bug"
]
"contributions": ["code", "bug"]
},
{
"login": "cecillie",
"name": "Cécile Ricordeau",
"avatar_url": "https://castopod.org/assets/images/castopod-avatar.jpg",
"profile": "https://www.cecillie.fr/",
"contributions": [
"design"
]
"contributions": ["design"]
},
{
"login": "PatrykMis",
......@@ -171,48 +166,35 @@
"name": "Marcin Lewandowski",
"avatar_url": "https://secure.gravatar.com/avatar/eed8337939641eac5ad0b570bd6acf96?s=80&d=identicon",
"profile": "https://code.castopod.org/mspanc",
"contributions": [
"bug",
"ideas"
]
"contributions": ["bug", "ideas"]
},
{
"login": "SJanik",
"name": "Sebastian Janik",
"avatar_url": "https://castopod.org/assets/images/castopod-avatar.jpg",
"profile": "https://code.castopod.org/SJanik",
"contributions": [
"code"
]
"contributions": ["code"]
},
{
"login": "patryk",
"name": "Patryk Karczmarczyk",
"avatar_url": "https://castopod.org/assets/images/castopod-avatar.jpg",
"profile": "https://code.castopod.org/patryk",
"contributions": [
"code"
]
"contributions": ["code"]
},
{
"login": "ddenis",
"name": "denis d",
"avatar_url": "https://castopod.org/assets/images/castopod-avatar.jpg",
"profile": "https://code.castopod.org/ddenis",
"contributions": [
"bug",
"ideas"
]
"contributions": ["bug", "ideas"]
},
{
"login": "douglaskastle",
"name": "Douglas Kastle",
"avatar_url": "https://secure.gravatar.com/avatar/b7e652ba4b6bcd440afa069e7f7bc9e6?s=80&d=identicon",
"profile": "https://code.castopod.org/douglaskastle",
"contributions": [
"bug",
"ideas"
]
"contributions": ["bug", "ideas"]
},
{
"login": "cExplorer",
......@@ -232,66 +214,49 @@
"name": "ImaCrea",
"avatar_url": "https://castopod.org/assets/images/castopod-avatar.jpg",
"profile": "https://code.castopod.org/imacrea",
"contributions": [
"bug",
"ideas"
]
"contributions": ["bug", "ideas"]
},
{
"login": "jonas",
"name": "Jonas S",
"avatar_url": "https://castopod.org/assets/images/castopod-avatar.jpg",
"profile": "https://code.castopod.org/jonas",
"contributions": [
"code"
]
"contributions": ["code"]
},
{
"login": "yannL",
"name": "LEFEBVRE Yann",
"avatar_url": "https://secure.gravatar.com/avatar/9c46600ce566ec6d526370d8e104b1c8?s=80&d=identicon",
"profile": "https://code.castopod.org/yannL",
"contributions": [
"bug"
]
"contributions": ["bug"]
},
{
"login": "spaetz",
"name": "Sebastian Späth",
"avatar_url": "https://secure.gravatar.com/avatar/278e1af65e82993efd0ba7bbbacf6435?s=80&d=identicon",
"profile": "https://code.castopod.org/spaetz",
"contributions": [
"bug",
"ideas"
]
"contributions": ["bug", "ideas"]
},
{
"login": "rocky",
"name": "rocky III",
"avatar_url": "https://castopod.org/assets/images/castopod-avatar.jpg",
"profile": "https://code.castopod.org/rocky",
"contributions": [
"bug"
]
"contributions": ["bug"]
},
{
"login": "Regenpfeifer",
"name": "Hermann Josef Eckl",
"avatar_url": "https://code.castopod.org/uploads/-/system/user/avatar/103/avatar.png",
"profile": "https://code.castopod.org/Regenpfeifer",
"contributions": [
"bug"
]
"contributions": ["bug"]
},
{
"login": "cyrilledel",
"name": "Delhaye Cyrille",
"avatar_url": "https://castopod.org/assets/images/castopod-avatar.jpg",
"profile": "https://code.castopod.org/cyrilledel",
"contributions": [
"bug",
"ideas"
]
"contributions": ["bug", "ideas"]
},
{
"login": "otetranome",
......@@ -330,19 +295,6 @@
}
]
},
{
"login": "3wen",
"name": "Ewen",
"avatar_url": "https://mastodon.fedi.bzh/system/accounts/avatars/000/000/002/original/6f387690a504ae46.jpg",
"profile": "https://mastodon.fedi.bzh/@ewen",
"contributions": [
{
"type": "translation",
"url": "https://translate.castopod.org"
},
"ideas"
]
},
{
"login": "forght",
"name": "forght",
......@@ -492,9 +444,7 @@
"name": "Dimitri Regnier",
"avatar_url": "https://castopod.org/assets/images/castopod-avatar.jpg",
"profile": "https://dimitriregnier.net/",
"contributions": [
"ideas"
]
"contributions": ["ideas"]
},
{
"login": "irithys",
......@@ -520,18 +470,6 @@
}
]
},
{
"login": "ghose",
"name": "ghose (XoseM)",
"avatar_url": "https://crowdin-static.downloads.crowdin.com/avatar/12617257/large/a201650da44fed28890b0e0d8477a663.jpg",
"profile": "https://crowdin.com/profile/xosem",
"contributions": [
{
"type": "translation",
"url": "https://translate.castopod.org"
}
]
},
{
"login": "basen1982",
"name": "Andreas Olsson",
......@@ -593,7 +531,7 @@
]
},
{
"login": "ahmed.sabouni11",
"login": "ahmedsabouni",
"name": "Ahmed Sabouni",
"avatar_url": "https://avatars.githubusercontent.com/u/74497842?v=4",
"profile": "https://github.com/ahmedsabouni",
......@@ -603,6 +541,34 @@
"url": "https://translate.castopod.org"
}
]
},
{
"login": "KrzysztofDomanczyk",
"name": "KrzysztofDomanczyk",
"avatar_url": "https://avatars.githubusercontent.com/u/75178474?v=4",
"profile": "https://github.com/KrzysztofDomanczyk",
"contributions": ["code"]
},
{
"login": "Dwev",
"name": "Guy Martin",
"avatar_url": "https://avatars.githubusercontent.com/u/46626050?v=4",
"profile": "https://github.com/Dwev",
"contributions": ["bug", "code"]
},
{
"login": "prcutler",
"name": "Paul Cutler",
"avatar_url": "https://avatars.githubusercontent.com/u/67276?v=4",
"profile": "https://github.com/prcutler",
"contributions": ["doc", "question", "ideas"]
},
{
"login": "nateritter",
"name": "Nate Ritter",
"avatar_url": "https://avatars.githubusercontent.com/u/198798?v=4",
"profile": "https://github.com/nateritter",
"contributions": ["code"]
}
],
"commitConvention": "none"
......
......@@ -4,18 +4,15 @@
# ⚠️ NOT optimized for production
# should be used only for development purposes
#---------------------------------------------------
FROM php:8.1-fpm
FROM php:8.4-fpm
LABEL maintainer="Yassine Doghri <yassine@doghri.fr>"
COPY . /castopod
WORKDIR /castopod
# Install composer
COPY --from=composer:2 /usr/bin/composer /usr/bin/composer
# Install server requirements
RUN curl -fsSL https://deb.nodesource.com/setup_16.x | bash - \
RUN curl -fsSL https://deb.nodesource.com/setup_20.x | bash - \
&& apt-get update \
&& apt-get install --yes --no-install-recommends nodejs \
# gnupg to sign commits with gpg
......@@ -50,11 +47,4 @@ RUN curl -fsSL https://deb.nodesource.com/setup_16.x | bash - \
&& docker-php-ext-enable redis \
# mysqli for database access
&& docker-php-ext-install mysqli \
&& docker-php-ext-enable mysqli \
# configure php
&& echo "file_uploads = On\n" \
"memory_limit = 512M\n" \
"upload_max_filesize = 500M\n" \
"post_max_size = 512M\n" \
"max_execution_time = 300\n" \
> /usr/local/etc/php/conf.d/uploads.ini
&& docker-php-ext-enable mysqli
* * * * * /usr/local/bin/php /workspaces/castopod/spark tasks:run >> /dev/null 2>&1
// For format details, see https://aka.ms/vscode-remote/devcontainer.json or this file's README at:
// https://github.com/microsoft/vscode-dev-containers/tree/v0.117.1/containers/docker-existing-dockerfile
{
"name": "Castopod dev",
"dockerComposeFile": ["../docker-compose.yml", "./docker-compose.yml"],
"name": "castopod.local",
"dockerComposeFile": ["./docker-compose.yml"],
"service": "app",
"workspaceFolder": "/castopod",
"postCreateCommand": "composer install && pnpm install && pnpm run build:static",
"postStartCommand": "crontab ./crontab && cron && php spark serve --host 0.0.0.0",
"postAttachCommand": "crontab ./crontab && service cron reload",
"workspaceFolder": "/workspaces/${localWorkspaceFolderBasename}",
"postCreateCommand": "composer install && pnpm install && pnpm run build:static && php spark migrate --all && php spark db:seed DevSeeder",
"postStartCommand": "git config --global --add safe.directory ${containerWorkspaceFolder} && crontab .devcontainer/crontab && cron && php spark serve --host 0.0.0.0",
"postAttachCommand": "crontab .devcontainer/crontab && service cron reload",
"shutdownAction": "stopCompose",
"settings": {
"editor.formatOnSave": true,
"editor.defaultFormatter": "esbenp.prettier-vscode",
"[php]": {
"editor.defaultFormatter": "bmewburn.vscode-intelephense-client",
"editor.formatOnSave": false
},
"css.validate": false,
"color-highlight.markerType": "dot-before",
"files.associations": {
"*.xml.dist": "xml",
"spark": "php",
"env": "dotenv",
".rsync-filter": "diff"
}
},
"extensions": [
"bmewburn.vscode-intelephense-client",
"bradlc.vscode-tailwindcss",
"breezelin.phpstan",
"DavidAnson.vscode-markdownlint",
"dbaeumer.vscode-eslint",
"eamodio.gitlens",
"esbenp.prettier-vscode",
"heybourn.headwind",
"jamesbirtles.svelte-vscode",
"kasik96.latte",
"mikestead.dotenv",
"naumovs.color-highlight",
"pflannery.vscode-versionlens",
"runem.lit-plugin",
"streetsidesoftware.code-spell-checker",
"stylelint.vscode-stylelint",
"wayou.vscode-todo-highlight",
"yzhang.markdown-all-in-one"
],
"features": {
"ghcr.io/devcontainers/features/git:1": {},
"ghcr.io/guiyomh/features/vim:0": {},
"ghcr.io/NicoVIII/devcontainer-features/pnpm:2": {}
},
"customizations": {
"vscode": {
"settings": {
"editor.formatOnSave": true,
"editor.defaultFormatter": "esbenp.prettier-vscode",
"[php]": {
"editor.defaultFormatter": "bmewburn.vscode-intelephense-client",
"editor.formatOnSave": false
},
"css.validate": false,
"color-highlight.markerType": "dot-before",
"files.associations": {
"*.xml.dist": "xml",
"spark": "php",
"env": "dotenv",
".rsync-filter": "diff"
},
"json.schemas": [
{
"fileMatch": [
"plugins/**/manifest.json",
"tests/modules/Plugins/mocks/manifests/*.json",
"tests/modules/Plugins/mocks/plugins/**/manifest.json"
],
"url": "/workspaces/castopod/modules/Plugins/Manifest/manifest.schema.json"
}
]
},
"extensions": [
"astro-build.astro-vscode",
"bmewburn.vscode-intelephense-client",
"bradlc.vscode-tailwindcss",
"breezelin.phpstan",
"DavidAnson.vscode-markdownlint",
"dbaeumer.vscode-eslint",
"eamodio.gitlens",
"esbenp.prettier-vscode",
"heybourn.headwind",
"jamesbirtles.svelte-vscode",
"kasik96.latte",
"mikestead.dotenv",
"naumovs.color-highlight",
"pflannery.vscode-versionlens",
"runem.lit-plugin",
"streetsidesoftware.code-spell-checker",
"stylelint.vscode-stylelint",
"unifiedjs.vscode-mdx",
"wayou.vscode-todo-highlight",
"yzhang.markdown-all-in-one",
"42Crunch.vscode-openapi"
]
}
}
}
version: "3"
services:
app:
build:
context: .
dockerfile: Dockerfile
ports:
- 8080:8080
volumes:
- ../..:/workspaces:cached
- ./uploads.ini:/usr/local/etc/php/conf.d/uploads.ini
environment:
CI_ENVIRONMENT: development
vite_environment: development
app_forceGlobalSecureRequests: 0 #false
app_baseURL: http://localhost:8080/
media_baseURL: http://localhost:8080/
admin_gateway: cp-admin
auth_gateway: cp-auth
analytics_salt: dev_analytics_salt
database_default_hostname: mariadb
database_default_database: castopod
database_default_username: castopod
database_default_password: castopod
database_default_DBPrefix: cp_
restapi_enabled: 1 #true
email_fromEmail: hello@castopod.local
email_SMTPCrypto: ""
email_SMTPHost: mailpit
email_SMTPUser: castopod
email_SMTPPass: castopod
email_SMTPPort: 1025
depends_on:
- redis
- mariadb
redis:
image: redis:alpine
volumes:
- redis:/data
mariadb:
image: mariadb:10.2
volumes:
- ./initdb:/docker-entrypoint-initdb.d
- mariadb:/var/lib/mysql
environment:
MYSQL_ROOT_PASSWORD: root
MYSQL_DATABASE: castopod
MYSQL_USER: castopod
MYSQL_PASSWORD: castopod
phpmyadmin:
image: phpmyadmin/phpmyadmin:latest
environment:
PMA_HOST: mariadb
PMA_PORT: 3306
UPLOAD_LIMIT: 300M
ports:
- 8888:80
volumes:
- phpmyadmin:/sessions
depends_on:
- mariadb
mailpit:
image: axllent/mailpit
restart: always
volumes:
# Mounts the project folder to '/workspace'. While this file is in .devcontainer,
# mounts are relative to the first file in the list, which is a level up.
- .:/castopod:cached
- mailpit:/data
ports:
- 8025:8025
- 1025:1025
environment:
MP_MAX_MESSAGES: 5000
MP_DATA_FILE: /data/mailpit.db
MP_SMTP_AUTH_ACCEPT_ANY: 1
MP_SMTP_AUTH_ALLOW_INSECURE: 1
# Overrides default command so things don't shut down after the process ends.
command: /bin/sh -c "while sleep 1000; do :; done"
volumes:
redis:
mariadb:
phpmyadmin:
mailpit:
File moved
......@@ -3,4 +3,3 @@ memory_limit = 512M
upload_max_filesize = 500M
post_max_size = 512M
max_execution_time = 300
max_input_time = 300
......@@ -14,9 +14,10 @@
# Instance configuration
#--------------------------------------------------------------------
app.baseURL="https://YOUR_DOMAIN_NAME/"
app.mediaBaseURL="https://YOUR_MEDIA_DOMAIN_NAME/"
media.baseURL="https://YOUR_MEDIA_DOMAIN_NAME/"
admin.gateway="cp-admin"
auth.gateway="cp-auth"
analytics.salt="RANDOM_STRING_OF_64_CHARACTERS"
#--------------------------------------------------------------------
# Database configuration
......@@ -50,9 +51,20 @@ cache.handler="file"
# cache.redis.port=6379
# cache.redis.database=0
#--------------------------------------------------------------------
# S3 configuration
#--------------------------------------------------------------------
# media.fileManager="s3"
# media.s3.endpoint="your_s3_host"
# media.s3.key="your_s3_key"
# media.s3.secret="your_s3_secret"
# media.s3.region="your_s3_region"
#--------------------------------------------------------------------
# REST API configuration
#--------------------------------------------------------------------
# restapi.enabled=true
# restapi.basicAuthUsername=castopod
# restapi.basicAuthPassword=password
# restapi.basicAuth=true
{
"env": {
"browser": true,
"es2020": true
},
"parser": "@typescript-eslint/parser",
"plugins": ["@typescript-eslint"],
"extends": [
"eslint:recommended",
"plugin:@typescript-eslint/recommended",
"plugin:prettier/recommended"
],
"parserOptions": {
"ecmaVersion": 11,
"sourceType": "module"
},
"rules": {}
}
......@@ -67,6 +67,7 @@ writable/uploads/*
!writable/uploads/index.html
writable/debugbar/*
!writable/debugbar/.gitkeep
php_errors.log
......@@ -127,11 +128,11 @@ nb-configuration.xml
# Visual Studio Code
.vscode/
.history/
tmp/
/results/
/phpunit*.xml
/.phpunit.*.cache
# js package manager
yarn.lock
......@@ -143,16 +144,20 @@ node_modules
# public folder
public/*
public/media/site
!public/media
!public/.htaccess
!public/favicon.ico
!public/icon*
!public/castopod-banner*
!public/castopod-avatar*
!public/index.php
!public/robots.txt
!public/.well-known
!public/.well-known/GDPR.yml
public/assets/*
!public/assets/index.html
# public media folder
!public/media/podcasts
!public/media/persons
......@@ -177,8 +182,13 @@ modules/Admin/Language/*/PersonsTaxonomy.php
mariadb
phpmyadmin
sessions
data
# Castopod bundle & packages
castopod/
castopod-*.zip
castopod-*.tar.gz
# Plugins
plugins/*
!plugins/.gitkeep
image: code.castopod.org:5050/adaures/castopod:ci
image: code.castopod.org:5050/adaures/castopod:ci-php8.4
stages:
- prepare
- quality
- bundle
- release
- build
- deploy
- build
php-dependencies:
stage: prepare
......@@ -53,6 +53,7 @@ lint-commit-msg:
- main
- beta
- alpha
- next
lint-php:
stage: quality
......@@ -69,7 +70,7 @@ lint-php:
lint-js:
stage: quality
script:
- pnpm run prettier
- pnpm run format
- pnpm run typecheck
- pnpm run lint
- pnpm run lint:css
......@@ -79,14 +80,14 @@ lint-js:
tests:
stage: quality
services:
- mariadb
- mariadb:10.11
variables:
MYSQL_ROOT_PASSWORD: "R00Tp4ssW0RD"
MYSQL_DATABASE: "test"
MYSQL_USER: "castopod"
MYSQL_PASSWORD: "castopod"
script:
- echo "SHOW DATABASES;" | mysql --user=root --password="$MYSQL_ROOT_PASSWORD" --host=mariadb "$MYSQL_DATABASE"
- echo "SHOW DATABASES;" | mariadb --user=root --password="$MYSQL_ROOT_PASSWORD" --host=mariadb "$MYSQL_DATABASE" --skip_ssl
# run phpunit without code coverage
# TODO: add code coverage
......@@ -120,6 +121,7 @@ bundle:
- main
- beta
- alpha
- next
release:
stage: release
......@@ -148,6 +150,7 @@ release:
- main
- beta
- alpha
- next
website:
stage: deploy
......@@ -162,9 +165,6 @@ documentation:
trigger:
include: docs/.gitlab-ci.yml
strategy: depend
only:
changes:
- docs/**/*
docker:
stage: build
......@@ -179,5 +179,6 @@ docker:
- main
- beta
- alpha
- next
variables:
- $CI_PROJECT_NAMESPACE == "adaures"
#!/bin/sh
. "$(dirname "$0")/_/husky.sh"
pnpm exec commitlint --verbose --edit "$1"
#!/bin/sh
. "$(dirname "$0")/_/husky.sh"
# CaptainHook 5.10.0
INTERACTIVE="--no-interaction"
......
#!/bin/sh
. "$(dirname "$0")/_/husky.sh"
# CaptainHook 5.10.0
INTERACTIVE="--no-interaction"
......
......@@ -2,7 +2,7 @@
"trailingComma": "es5",
"overrides": [
{
"files": "*.md",
"files": ["*.md", "*.mdx"],
"options": {
"proseWrap": "always"
}
......
......@@ -8,11 +8,74 @@
{
"name": "beta",
"prerelease": true
},
{
"name": "next",
"prerelease": true
}
],
"plugins": [
"@semantic-release/commit-analyzer",
"@semantic-release/release-notes-generator",
[
"@semantic-release/commit-analyzer",
{
"preset": "conventionalcommits",
"releaseRules": [
{
"type": "docs",
"scope": "README",
"release": "patch"
},
{
"type": "refactor",
"scope": "core-*",
"release": "minor"
},
{
"type": "refactor",
"release": "patch"
}
],
"parserOpts": {
"noteKeywords": ["BREAKING CHANGE", "BREAKING CHANGES", "BREAKING"]
}
}
],
[
"@semantic-release/release-notes-generator",
{
"preset": "conventionalcommits",
"parserOpts": {
"noteKeywords": ["BREAKING CHANGE", "BREAKING CHANGES", "BREAKING"]
},
"presetConfig": {
"types": [
{
"type": "feat",
"section": "Features"
},
{
"type": "fix",
"section": "Bug Fixes"
},
{
"type": "chore",
"section": "Internal",
"hidden": false
},
{
"type": "refactor",
"section": "Internal",
"hidden": false
},
{
"type": "perf",
"section": "Internal",
"hidden": false
}
]
}
}
],
"@semantic-release/changelog",
[
"@semantic-release/exec",
......
# rsync filter rules to copy required files for Castopod's bundle
- app/Resources/
+ resources/icons/***
- resources/**
+ app/***
+ modules/***
+ plugins/***
+ public/***
+ themes/***
+ vendor/***
......@@ -11,4 +13,5 @@
+ LICENSE.md
+ README.md
+ spark
+ php-icons.php
- **
{
"extends": "stylelint-config-recommended",
"extends": "stylelint-config-standard",
"rules": {
"at-rule-no-unknown": [
true,
......@@ -10,10 +10,24 @@
"responsive",
"variants",
"screen",
"layer"
"layer",
"config"
]
}
],
"no-descending-specificity": null
"at-rule-no-deprecated": [
true,
{
"ignoreAtRules": ["apply"]
}
],
"function-no-unknown": [
true,
{
"ignoreFunctions": ["theme"]
}
],
"no-descending-specificity": null,
"selector-class-pattern": null
}
}
File moved
File moved