[BUGFIX] Fix corrupted JavaScript assets loaded by website users

[BUGFIX] Fix corrupted JavaScript assets loaded by website users

Website users loaded corrupted JavaScript assets for files generated by
EXT:vhs when EXT:vhs was in the middle of re-writing the contents of the
requested asset file. This happens because EXT:core
`GeneralUtility::writeFile()` isn't implemented in an atomic style
causing observers (such as visiting website users) to read incomplete
asset file contents. Incomplete JavaScript files likely cause syntax
errors when interpreted by the user's user-agent rendering front end
sites unable to reach JavaScript-based interactivity.

Fix the issue by (non-atomically) writing into a temporary file and
replacing the destination asset file with a single atomic `rename()`
operation instead. This ensures that observers of the destination asset
file either see the complete old contents or the complete new contents
but never any intermediate state of the asset content.

See: https://man7.org/linux/man-pages/man2/rename.2.html
See: https://github.com/TYPO3/typo3/blob/v10.4.37/typo3/sysext/core/Classes/Utility/GeneralUtility.php#L1835-L1861
adamkoppede 2024-12-04

[TASK] Set beta stability

[TASK] Set beta stability
NamelessCoder 2024-11-11

Merge branch 'master' into development

Merge branch 'master' into development
NamelessCoder 2024-11-11

[TASK] Create change log for 7.0.7

[TASK] Create change log for 7.0.7
NamelessCoder 2024-11-11

[TER] 7.0.7

[TER] 7.0.7
NamelessCoder 2024-11-11

Merge branch 'development'

Merge branch 'development'
NamelessCoder 2024-11-11

[BUGFIX] Guard against undefined doktype

[BUGFIX] Guard against undefined doktype
NamelessCoder 2024-11-11

[BUGFIX] Skip invalid pages when building menus

[BUGFIX] Skip invalid pages when building menus
NamelessCoder 2024-11-11

[TASK] Demand specific version of phpstan

[TASK] Demand specific version of phpstan

Done with breaking changes in bugfix releases!
NamelessCoder 2024-11-11

[TASK] Schedule a nightly build

[TASK] Schedule a nightly build
NamelessCoder 2024-09-23

[TASK] Regenerate ViewHelper documentation

[TASK] Regenerate ViewHelper documentation
NamelessCoder 2024-09-05

[TASK] Update XSD schema

[TASK] Update XSD schema
NamelessCoder 2024-09-05

[DOC] Update VH docs for v:content.get and v:resource.record (#1912)

[DOC] Update VH docs for v:content.get and v:resource.record (#1912)
cweiske 2024-09-05

[TASK] Fix reported phpstan issues

[TASK] Fix reported phpstan issues
NamelessCoder 2024-09-05

[TASK] Switch TYPO3 dev constraint from "master" to "main" branch

[TASK] Switch TYPO3 dev constraint from "master" to "main" branch

The master branch was renamed to main
christophlehmann 2024-09-02

[TASK] Declare PHP 8.3 compatibility for extension manager metadata

[TASK] Declare PHP 8.3 compatibility for extension manager metadata
NamelessCoder 2024-08-20

Merge branch 'master' into development

Merge branch 'master' into development
NamelessCoder 2024-08-08

[TASK] Set beta stability

[TASK] Set beta stability
NamelessCoder 2024-08-08

[TASK] Create change log for 7.0.6

[TASK] Create change log for 7.0.6
NamelessCoder 2024-08-08

[TER] 7.0.6

[TER] 7.0.6
NamelessCoder 2024-08-08