- Various bug fixes and improved performance on package reading/writing
- Corrected CHANGELOG.md
- Updated dependency `Symfony/polyfill-mbstring` to 1.28.0
- Updated dependency `Symfony/polyfill-uuid` to 1.28.0
- Updated dependency `Symfony/Process` to 6.3.4
- Updated dependency `Symfony/Uid` to 6.3.0
- Updated dependency `Symfony/Yaml` to 6.3.3
- Added support for Gitea repositories
- Added support for Packagist repositories
- Added a new default Gitea repository nocturn9x at git.nocturn9x.space
- Added a new default Gitea repository martinvlba at git.martinvlba.eu
- Added a new default Gitea repository kuny at git.it-kuny.ch
- Added dependency composer/semver version 3.4.0 for composer version comparison compatibility
- Added a new class \ncc\Classes\ArchiveExtractor to extract multiple archive types
- Refactored \ncc\Objects\RemoteRepository
- Refactored the repository system
- Refactored Github's repository interface
- Refactored Gitlab's repository interface
- Refactored SourcesMenu in the CLI to use the new repository system
- Updated dependency nikic/php-parser to version 4.17.1
- Added a simple security measure in \ncc\Objects\Value\Entry to delay returns randomly when the password is incorrect
- Refactored the CLI menu system to use a return exit code system
- Updated the installer to remove unused components and installation steps
- Updated dependency Symfony/Filesystem to 6.3.1
- Updated dependency Symfony/polyfill-ctype to 1.28.0
- Enforced credential storage security by applying 600 permissions to the storage file so that only the owner can read/write to the file; this will require root access to perform any operations on the credential file. A password will still be needed to decrypt entries in the file if any entries are encrypted.
- Removed \ncc\Classes\NccExtension\Runner in favor of the new Execution Unit system
- Removed \ncc\Managers\ExecutionPointerManager in favor of the new Execution Unit system
- Refactored execution unit system to use a new execution pointer system
- Refactored `PhpRunner` to use the new execution pointer system
- Refactored `BashRunner` to use the new execution pointer system
- Refactored `LuaRunner` to use the new execution pointer system
- Refactored `PerlRunner` to use the new execution pointer system
- Refactored `PythonRunner` to use the new execution pointer system
- Removed dependency `theseer\Autoload` in favor of ncc's own autoloader (screw you Arne Blankerts)
- Refactored ZiProto
- Removed runners `Python2` & `Python3` in favor of `Python`
- Corrected code-smell and code style issues in `\ncc\Objects > InstallationPaths`
- Updated class `\ncc\Objects > NccVersionInformation` to use method calls rather than direct property access and implemented
`SerializableObjectInterface`
- Updated class `\ncc\Objects > Package` to use method calls rather than direct property access and implemented
`SerializableObjectInterface`
- Updated class `\ncc\Objects > PackageLock` to use method calls rather than direct property access and implemented
`BytecodeObjectInterface`
- Updated class `\ncc\Objects > ProjectConfiguration` to use method calls rather than direct property access
- Updated class `\ncc\Objects > ProjectDetectionResults` to use method calls rather than direct property access
- Updated class `\ncc\Objects > RemotePackageInput` to use method calls rather than direct property access
- Updated class `\ncc\Objects > RepositoryQueryResults` to use method calls rather than direct property access
- Updated class `\ncc\Objects > Vault` to use method calls rather than direct property access
- Removed unused `\ncc\Objects > NccUpdateInformation`
- Removed unused `\ncc\Objects > PhpConfiguration`
- Updated class `\ncc\Objects > ComposerJson` to use method calls rather than direct property access
- Updated class `\ncc\Objects > ComposerLock` to use method calls rather than direct property access
- Updated class `\ncc\Objects > DefinedRemoteSource` to use method calls rather than direct property access
- Updated class `\ncc\Objects > HttpRequest` to use method calls rather than direct property access and implemented
`SerializableObjectInterface`
- Updated class `\ncc\Objects > HttpResponse` to use method calls rather than direct property access and implemented
`SerializableObjectInterface`
- Fixed hash comparisons to use `hash_equals` implementations to combat against Timing Attacks
extends this interface to allow for serialization of compiled assets
- Updated class `\ncc\Objects\ComposerJson > Author` to use method calls rather than direct property access and
implemented `SerializableObjectInterface`
- Updated class `\ncc\Objects\ComposerJson > Autoloader` to use method calls rather than direct property access and
implemented `SerializableObjectInterface`
- Updated class `\ncc\Objects\ComposerJson > Funding` to use method calls rather than direct property access and
implemented `SerializableObjectInterface`
- Updated class `\ncc\Objects\ComposerJson > NamespacePointer` to use method calls rather than direct property access
and implemented `SerializableObjectInterface`
- Updated class `\ncc\Objects\ComposerJson > PackageLink` to use method calls rather than direct property access and
implemented `SerializableObjectInterface`
- Updated class `\ncc\Objects\ComposerJson > Suggestion` to use method calls rather than direct property access and
implemented `SerializableObjectInterface`
- Updated class `\ncc\Objects\ComposerJson > Support` to use method calls rather than direct property access and
implemented `SerializableObjectInterface`
- Updated class `\ncc\Objects\ExecutionPointers > ExecutionPointer` to use method calls rather than direct property
access and implemented `BytecodeObjectInterface`
- Updated class `\ncc\Objects\NccVersionInformation > Component` to use method calls rather than direct property access
and implemented `SerializableObjectInterface`
- Updated class `\ncc\Objects\Package > Component` to use method calls rather than direct property access and
implemented `BytecodeObjectInterface`
- Updated class `\ncc\Objects\Package > ExecutionUnit` to use method calls rather than direct property access and
implemented `BytecodeObjectInterface`
- Updated class `\ncc\Objects\Package > Header` to use method calls rather than direct property access and implemented
`BytecodeObjectInterface`
- Updated class `\ncc\Objects\Package > Installer` to use method calls rather than direct property access and implemented
`BytecodeObjectInterface`
- Updated class `\ncc\Objects\Package > MagicBytes` to use method calls rather than direct property access and implemented
`SerializableObjectInterface`
- Updated class `\ncc\Objects\Package > Resource` to use method calls rather than direct property access and implemented
`BytecodeObjectInterface`
- Updated class `\ncc\Objects\PackageLock > DependencyEntry` to use method calls rather than direct property access
and implemented `BytecodeObjectInterface`
- Updated class `\ncc\Objects\PackageLock > PackageEntry` to use method calls rather than direct property access
and implemented `BytecodeObjectInterface`
- Updated class `\ncc\Objects\PackageLock > VersionEntry` to use method calls rather than direct property access
and implemented `BytecodeObjectInterface`
- Corrected code-smell and code style issues in `\ncc > ncc`
- Corrected code-smell and code style issues in `\ncc\CLI > Main`
- Removed unused exception `FileNotFoundException` in `\ncc\CLI > HelpMenu`
- Corrected code-smell and code style issues in `\ncc\Managers > ProjectManager`
- Corrected code-smell and code style issues in `\ncc\Objects\NccVersionInformation > Component`
- Corrected code-smell and code style issues in `\ncc\Objects\Package > Component`
- Corrected code-smell and code style issues in `\ncc\Managers > ConfigurationManager`
- Corrected code-smell and code style issues in `\ncc\Managers > CredentialManager`
- Refactored `\ncc\Utilities > PathFinder` to remove all Win32 references
- Corrected code-smell and code style issues in `\ncc\Objects > ExecutionPointers`
- Corrected code-smell and code style issues in `\ncc\Managers > ExecutionPointerManager`
- Corrected code-smell and code style issues in `\ncc\Utilities > Functions`
- Corrected code-smell and code style issues in `\ncc\Managers > PackageManager`
- Removed `FileNotFoundException` and `DirectoryNotFoundException` from `\ncc\Exceptions`
- Removed the use of `InvalidScopeException` across the project
- Removed references of Win32 from the project as Windows is not going supported
- Added new exception `PathNotFoundException` and implemented it in replacement for `DirectoryNotFoundException` and
`FileNotFoundException` in `\ncc\Exceptions`
- Corrected code-smell and code style issues in `src/installer/hash_check.php`
- Renamed `Abstracts` namespace to `Enums`
- Updated class type to "final class" in `\ncc\Enums\Options > BuildConfigurationValues`
- Updated class type to "final class" in `\ncc\Enums\Options > InitializeProjectOptions`
- Updated class type to "final class" in `\ncc\Enums\Options > InstallPackageOptions`
- Updated class type to "final class" in `\ncc\Enums\SpecialConstants > AssemblyConstants`
- Updated class type to "final class" in `\ncc\Enums\SpecialConstants > BuildConstants`
- Updated class type to "final class" in `\ncc\Enums\SpecialConstants > DateTimeConstants`
- Updated class type to "final class" in `\ncc\Enums\SpecialConstants > InstallConstants`
- Updated class type to "final class" in `\ncc\Enums\SpecialConstants > RuntimeConstants`
- Updated class type to "final class" in `\ncc\Enums > AuthenticationType`
- Updated class type to "final class" in `\ncc\Enums > CompilerExtensionDefaultVersions`
- Updated class type to "final class" in `\ncc\Enums > CompilerExtensions`
- Updated class type to "final class" in `\ncc\Enums > CompilerExtensionSupportedVersions`
- Updated class type to "final class" in `\ncc\Enums > ComponentDataType`
- Updated class type to "final class" in `\ncc\Enums > ComponentFileExtensions`
- Updated class type to "final class" in `\ncc\Enums > ComposerPackageTypes`
- Updated class type to "final class" in `\ncc\Enums > ComposerStabilityTypes`
- Updated class type to "final class" in `\ncc\Enums > EncoderType`
- Updated class type to "final class" in `\ncc\Enums > ExceptionCodes`
- Updated class type to "final class" in `\ncc\Enums > HttpRequestType`
- Updated class type to "final class" in `\ncc\Enums > HttpStatusCodes`
- Updated class type to "final class" in `\ncc\Enums > LogLevel`
- Updated class type to "final class" in `\ncc\Enums > NccBuildFlags`
- Updated class type to "final class" in `\ncc\Enums > PackageStandardVersions`
- Updated class type to "final class" in `\ncc\Enums > PackageStructureVersions`
- Updated class type to "final class" in `\ncc\Enums > ProjectType`
- Updated class type to "final class" in `\ncc\Enums > RegexPattern`
- Updated class type to "final class" in `\ncc\Enums > RemoteSourceType`
- Updated class type to "final class" in `\ncc\Enums > Runners`
- Updated class type to "final class" in `\ncc\Enums > Scopes`
- Updated class type to "final class" in `\ncc\Enums > Versions`
- Corrected code-smell and code style issues in `\ncc\Classes > NccExtension > ConstantCompiler`
- Corrected code-smell and code style issues in `\ncc\Classes > GitlabExtension > GitlabService`
- Corrected code-smell and code style issues in `\ncc\Classes > GithubExtension > GithubService`
- Updated class type to "final class" in `\ncc\Enums\Options > BuildConfigurationValues`
- Updated class type to "final class" in `\ncc\Enums\Options > InitializeProjectOptions`
- Updated class type to "final class" in `\ncc\Enums\Options > InstallPackageOptions`
- Updated class type to "final class" in `\ncc\Enums\SpecialConstants > AssemblyConstants`
- Updated class type to "final class" in `\ncc\Enums\SpecialConstants > BuildConstants`
- Updated class type to "final class" in `\ncc\Enums\SpecialConstants > DateTimeConstants`
- Updated class type to "final class" in `\ncc\Enums\SpecialConstants > InstallConstants`
- Updated class type to "final class" in `\ncc\Enums\SpecialConstants > RuntimeConstants`
- Updated class type to "final class" in `\ncc\Enums > AuthenticationType`
- Updated class type to "final class" in `\ncc\Enums > CompilerExtensionDefaultVersions`
- Updated class type to "final class" in `\ncc\Enums > CompilerExtensions`
- Updated class type to "final class" in `\ncc\Enums > CompilerExtensionSupportedVersions`
- Updated class type to "final class" in `\ncc\Enums > ComponentDataType`
- Updated class type to "final class" in `\ncc\Enums > ComponentFileExtensions`
- Updated class type to "final class" in `\ncc\Enums > ComposerPackageTypes`
- Updated class type to "final class" in `\ncc\Enums > ComposerStabilityTypes`
- Updated class type to "final class" in `\ncc\Enums > EncoderType`
- Updated class type to "final class" in `\ncc\Enums > ExceptionCodes`
- Updated class type to "final class" in `\ncc\Enums > HttpRequestType`
- Updated class type to "final class" in `\ncc\Enums > HttpStatusCodes`
- Updated class type to "final class" in `\ncc\Enums > LogLevel`
- Updated class type to "final class" in `\ncc\Enums > NccBuildFlags`
- Updated class type to "final class" in `\ncc\Enums > PackageStandardVersions`
- Updated class type to "final class" in `\ncc\Enums > PackageStructureVersions`
- Updated class type to "final class" in `\ncc\Enums > ProjectType`
- Updated class type to "final class" in `\ncc\Enums > RegexPattern`
- Updated class type to "final class" in `\ncc\Enums > RemoteSourceType`
- Updated class type to "final class" in `\ncc\Enums > Runners`
- Updated class type to "final class" in `\ncc\Enums > Scopes`
- Updated class type to "final class" in `\ncc\Enums > Versions`