Skip to content

Commit e62ea36

Browse files
committed
Merge branch '6.x' into localizable-asset-meta-data
2 parents 3f03e19 + a2cb018 commit e62ea36

515 files changed

Lines changed: 13672 additions & 2869 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

.claude/skills/changelog/SKILL.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ Run `git --no-pager log $(git describe --tags --abbrev=0)..HEAD --oneline --no-d
1515
For each commit:
1616
- Extract the PR number from the commit message (e.g., `(#13331)`)
1717
- Remove the commit SHA and `[6.x]` prefix from the message
18-
- Fetch the PR author from GitHub using `gh pr view <number> --json author --jq '.author.login'` for all PRs in a single command.
18+
- Fetch the PR author from GitHub using a sequential loop — do NOT use parallel background jobs (`&`) as they interleave stdout unpredictably. Use: `for pr in <numbers>; do echo -n "PR $pr: "; gh pr view $pr --json author --jq '.author.login'; done`
1919

2020
## 3. Skip certain commits
2121

.github/workflows/tests.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@ jobs:
1717
strategy:
1818
matrix:
1919
php: [8.3, 8.4, 8.5]
20-
laravel: [12.*]
20+
laravel: [12.*, 13.*]
2121
stability: [prefer-lowest, prefer-stable]
2222
os: [ubuntu-latest]
2323
include:

.storybook/preview.ts

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,12 +8,14 @@ import './theme.css';
88
import {translate} from '@/translations/translator';
99
import registerUiComponents from '@/bootstrap/ui';
1010
import DateFormatter from '@/components/DateFormatter';
11+
import NumberFormatter from '@/components/NumberFormatter';
1112
import cleanCodeSnippet from './clean-code-snippet';
1213
import PortalVue from 'portal-vue';
1314
import FullscreenHeader from '@/components/publish/FullscreenHeader.vue';
1415
import Portal from '@/components/portals/Portal.vue';
1516
import PortalTargets from '@/components/portals/PortalTargets.vue';
1617
import {keys, portals, slug, stacks} from '@api';
18+
import useGlobalEventBus from '@/composables/global-event-bus';
1719

1820
// Intercept Inertia navigation and log to Actions tab.
1921
router.on('before', (event) => {
@@ -36,6 +38,9 @@ setup(async (app) => {
3638
lang: 'en',
3739
}],
3840
selectedSite: 'default',
41+
lang: 'en',
42+
asciiReplaceExtraSymbols: false,
43+
charmap: { currency: {}, currency_short: {} },
3944
};
4045

4146
return config[key] ?? null;
@@ -46,15 +51,20 @@ setup(async (app) => {
4651
//
4752
}
4853
},
54+
$events: useGlobalEventBus(),
4955
$progress: {
5056
loading(name, loading) {
5157
//
52-
}
58+
},
59+
complete(name) {
60+
//
61+
},
5362
}
5463
};
5564

5665
app.config.globalProperties.__ = translate;
5766
app.config.globalProperties.$date = new DateFormatter;
67+
app.config.globalProperties.$number = new NumberFormatter;
5868
app.config.globalProperties.cp_url = (url) => url;
5969
app.config.globalProperties.$portals = portals;
6070
app.config.globalProperties.$stacks = stacks;

CHANGELOG.md

Lines changed: 318 additions & 0 deletions
Large diffs are not rendered by default.

SECURITY.md

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,16 @@
1-
If you discover a security vulnerability in Statamic, please review the following guidelines before submitting a report. We take security very seriously, and we do our best to resolve security issues as quickly as possible.
1+
If you discover a security vulnerability in Statamic, please review the following guidelines before submitting a report. We take security seriously and do our best to resolve security issues as quickly as possible.
22

33
## Guidelines
44
While working to identify potential security vulnerabilities in Statamic, we ask that you:
55

66
- **Privately** share any issues that you discover with us via support@statamic.com as soon as possible.
7-
- Give us a reasonable amount of time to address any reported issues before publicizing them.
8-
- Only report issues that are in scope.
9-
- Provide a quality report with precise explanations and concrete attack scenarios.
7+
- Give us a **reasonable amount of time** to address any reported issues before publicizing them.
8+
- **Only** report issues that are in scope.
9+
- Provide a **quality report** with precise explanations and concrete attack scenarios.
10+
- Do not submit reports generated by automated tools, AI/LLM assistants, or vulnerability scanners without **independent verification**. Reports showing signs of automated generation may be closed without review.
11+
- **Submit one report at a time.** Multiple simultaneous reports from the same person may be treated as spam and closed.
12+
- **We do not operate a paid bug bounty program.** We do not offer monetary compensation for cold vulnerability reports without a prior engagement agreement.
13+
- Abuse of the security advisory system, including bulk or automated submissions, may be reported to GitHub and result in account suspension.
1014

1115
## Scope
1216
We are only interested in vulnerabilities that affect Statamic itself, tested against **your own local installation** of the software, running the latest version. You can install a local copy of Statamic by following these [installation instructions](https://statamic.dev/installing). Do not test against any Statamic installation that you don’t own, including [statamic.com](https:/statamic.com), [statamic.dev](https://statamic.dev), and [demo.statamic.com](https://demo.statamic.com).

composer.json

Lines changed: 15 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@
1616
"guzzlehttp/guzzle": "^6.3 || ^7.0",
1717
"inertiajs/inertia-laravel": "^2.0",
1818
"james-heinrich/getid3": "^1.9.21",
19-
"laravel/framework": "^12.40.0",
19+
"laravel/framework": "^12.40.0 || ^13.0",
2020
"laravel/prompts": "^0.3.0",
2121
"league/commonmark": "^2.2",
2222
"league/csv": "^9.0",
@@ -25,17 +25,17 @@
2525
"michelf/php-smartypants": "^1.8.1",
2626
"nesbot/carbon": "^3.0",
2727
"pixelfear/composer-dist-plugin": "^0.1.4",
28-
"pragmarx/google2fa": "^8.0",
29-
"rebing/graphql-laravel": "^9.8",
28+
"pragmarx/google2fa": "^8.0 || ^9.0",
29+
"rebing/graphql-laravel": "^9.15",
3030
"rhukster/dom-sanitizer": "^1.0.7",
3131
"spatie/blink": "^1.3",
3232
"spatie/error-solutions": "^1.0 || ^2.0",
3333
"statamic/stringy": "^3.1.2",
34-
"stillat/blade-parser": "^2.0",
35-
"symfony/http-foundation": "^7.3.7",
36-
"symfony/lock": "^7.0.3",
37-
"symfony/var-exporter": "^7.0.3",
38-
"symfony/yaml": "^7.0.3",
34+
"stillat/blade-parser": "^2.1",
35+
"symfony/http-foundation": "^7.3.7 || ^8.0",
36+
"symfony/lock": "^7.0.3 || ^8.0",
37+
"symfony/var-exporter": "^7.0.3 || ^8.0",
38+
"symfony/yaml": "^7.0.3 || ^8.0",
3939
"ueberdosis/tiptap-php": "^2.0",
4040
"voku/portable-ascii": "^2.0.2",
4141
"web-auth/webauthn-lib": "~5.2.0",
@@ -48,9 +48,9 @@
4848
"google/cloud-translate": "^1.6",
4949
"laravel/pint": "1.16.0",
5050
"mockery/mockery": "^1.6.10",
51-
"orchestra/testbench": "^10.8",
51+
"orchestra/testbench": "^10.8 || ^11.0",
5252
"phpunit/phpunit": "^11.5.3",
53-
"spatie/laravel-ray": "^1.42"
53+
"spatie/laravel-ray": "^1.43.6"
5454
},
5555
"conflict": {
5656
"algolia/algoliasearch-client-php": "<4.32"
@@ -115,7 +115,10 @@
115115
"autoload-dev": {
116116
"psr-4": {
117117
"Tests\\": "tests",
118-
"Foo\\Bar\\": "tests/Fixtures/Addon"
118+
"Foo\\Bar\\": "tests/Fixtures/Addon",
119+
"App\\": "tests/Fixtures/App/"
119120
}
120-
}
121+
},
122+
"minimum-stability": "dev",
123+
"prefer-stable": true
121124
}

config/graphql.php

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,18 @@
2727
'users' => false,
2828
],
2929

30+
/*
31+
|--------------------------------------------------------------------------
32+
| Authentication
33+
|--------------------------------------------------------------------------
34+
|
35+
| By default, the GraphQL API will be publicly accessible. However, you
36+
| may define an API token here which will be used to authenticate requests.
37+
|
38+
*/
39+
40+
'auth_token' => env('STATAMIC_GRAPHQL_AUTH_TOKEN'),
41+
3042
/*
3143
|--------------------------------------------------------------------------
3244
| Queries

config/users.php

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -181,6 +181,18 @@
181181

182182
'elevated_session_duration' => 15,
183183

184+
/*
185+
|--------------------------------------------------------------------------
186+
| Two-Factor Authentication
187+
|--------------------------------------------------------------------------
188+
|
189+
| Here you may disable two-factor authentication entirely. This can be
190+
| useful on local or staging environments, or when using OAuth.
191+
|
192+
*/
193+
194+
'two_factor_enabled' => env('STATAMIC_TWO_FACTOR_ENABLED', true),
195+
184196
/*
185197
|--------------------------------------------------------------------------
186198
| Enforce Two-Factor Authentication

0 commit comments

Comments
 (0)