- Cleaned up imports - 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 systemNetkas2023-09-21 17:24:12 -04:00
- Added the ability to compile executable binaries for php using gcc - 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 PythonNetkas2023-09-10 22:47:24 -04:00
- Added new template PhpCliTemplate phpcli - Added new template PhpLibraryTemplate phplib - Implemented a template engine and refactored the CLI menu for the Project Manager and added a new template commandNetkas2023-09-01 03:47:01 -04:00
- \ncc\Objects\ProjectConfiguration > Dependency > __construct() now requires the parameters $name, $source_type, $source and $version - \ncc\Objects\ProjectConfiguration > Dependency > fromArray() Throws an ConfigurationException if the property name is missing in the dependency configuration - Also updated a bunch of objects in a similar fashion to the ones above, (BuildConfiguration, Execute, ExitHandle, ExitHandler, Repository, Assembly, Build, Dependency, ExecutionPolicy, Installer, Project, UpdateSource) I'm not going to list them all here, but you can find them in the commit history. - Added a new interface class ValidatableObjectInterface to implement validatable objects, this method will throw a ConfigurationException if the object is not valid or a NotSupportedException if the object contains methods that are not supported by the current version of ncc or project.Netkas2023-08-31 18:25:37 -04:00
- \ncc\Objects\ProjectConfiguration > Compiler: Added Public Constructor to automatically determine the minimum and maximum supported compiler version for the selected extension - \ncc\Objects\ProjectConfiguration > Compiler > fromArray() throws an ConfigurationException if the property extension is null - \ncc\Objects\ProjectConfiguration > Compiler > fromArray() throws an NotSupportedException if the extension uses an unsupported compiler extension - \ncc\Objects\ProjectConfiguration > Compiler > validate() No longer accepts $throw_exception and throws an ConfigurationException or NotSupportedException if the validation fails, otherwise it returns True. - \ncc\Objects\ProjectConfiguration > Project > fromArray() Throws an ConfigurationException if the property compiler is missing in the project configuration - \ncc\Objects > ProjectConfiguration > fromArray() Throws an ConfigurationException if the property 'project' is missing in the root configuration - \ncc\Objects\ProjectConfiguration > Project > __construct() now requires the parameter $compiler - Removed parameter $throw_exception from \ncc\Objects\ProjectConfiguration > Project > validate()Netkas2023-08-30 20:38:52 -04:00
- Corrected code-smell and code style issues in \ncc\Objects > HttpResponseCache - 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 > PhpConfigurationNetkas2023-08-30 19:58:31 -04:00
- Updated class \ncc\Objects > CliHelpSection to use method calls rather than direct property access - 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 AttacksNetkas2023-08-28 22:54:54 -04:00
- Added a new interface class SerializableObjectInterface to implement serializable objects, BytecodeObjectInterface 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 BytecodeObjectInterfaceNetkas2023-08-28 18:27:09 -04:00
- Updated class \ncc\Objects\ProjectConfiguration > Project to use method calls rather than direct property access - Updated class \ncc\Objects\ProjectConfiguration > UpdateSource to use method calls rather than direct property accessNetkas2023-08-27 11:41:11 -04:00
- Updated class \ncc\Objects\ProjectConfiguration\Build > BuildConfiguration to use method calls rather than direct property access - Updated class \ncc\Objects\ProjectConfiguration\ExecutionPolicy > Execute to use method calls rather than direct property access - Changed all uppercase occurrences of NCC to ncc in the entire project - Corrected code-smell and code style issues in \ncc\Utilities > Base64 - Corrected code-smell and code style issues in \ncc\Utilities > Console - Updated class \ncc\Objects\ProjectConfiguration\ExecutionPolicy > ExitHandle to use method calls rather than direct property access - Updated class \ncc\Objects\ProjectConfiguration\ExecutionPolicy > ExitHandlers to use method calls rather than direct property access - Updated class \ncc\Objects\ProjectConfiguration\UpdateSource > Repository to use method calls rather than direct property access - Updated class \ncc\Objects\ProjectConfiguration > Assembly to use method calls rather than direct property access - Updated class \ncc\Objects\ProjectConfiguration > Build to use method calls rather than direct property access - Updated class \ncc\Objects\ProjectConfiguration > Compiler to use method calls rather than direct property access - Updated class \ncc\Objects\ProjectConfiguration > ExecutionPolicy to use method calls rather than direct property access - Updated class \ncc\Objects\ProjectConfiguration > Installer to use method calls rather than direct property access - Fixed all @throw tags in the project to use the correct exception class - Removed unused scope property from \ncc\Objects\ProjectConfiguration > BuildNetkas2023-08-27 01:04:35 -04:00
- Added new exception OperationException in \ncc\Exceptions to replace all generic related exceptions - Removed unused exception UnitsNotFoundException in \ncc\Exceptions (not used) - Removed unused exception NoAvailableUnitsException in \ncc\Exceptions in favor for OperationException - Removed unused exception InstallationException in \ncc\Exceptions in favor for OperationException - Removed all unused exceptions from the project, reduced the number of exceptions in total.Netkas2023-08-23 11:44:32 -04:00
- Removed unused exception PackageNotFoundException in \ncc\Exceptions in favor of PackageException - Removed unused exception ConstantReadonlyException in \ncc\Exceptions in favor of IntegrityException & \InvalidArgumentException - Removed unused exception InvalidConstantName in \ncc\Exceptions in favor for IntegrityException - Removed unused exception ComponentDecodeException in \ncc\Exceptions in favor for IntegrityException - Removed unused exception ResourceChecksumException in \ncc\Exceptions in favor for IntegrityException - Removed unused exception AutoloadGeneratorException in \ncc\Exceptions in favor for IOException - Removed unused exception SymlinkException in \ncc\Exceptions in favor for IOException - Removed unused exception PackageLockException in \ncc\Exceptions in favor for IOExceptionNetkas2023-08-21 23:14:13 -04:00
- Added new exception PackageException in \ncc\Exceptions to replace all package related exceptions - Removed unused exception HttpException in \ncc\Exceptions in favor of NetworkException - Removed unused exception ComposerDisabledException in \ncc\Exceptions in favor of ComposerException - Removed unused exception ComposerNotAvailable in \ncc\Exceptions in favor of ComposerException - Removed unused exception InternalComposerNotAvailable in \ncc\Exceptions in favor of ComposerException - Removed unused exception PackagePreperationFailedException in \ncc\Exceptions in favor of PackageException - Removed unused exception PackageParsingException in \ncc\Exceptions in favor of PackageException - Removed unused exception MissingDependencyException in \ncc\Exceptions (not used) - Removed unused exception PackageAlreadyInstalledException in \ncc\Exceptions in favor of PackageException - Removed unused exception PackageFetchException in \ncc\Exceptions in favor of PackageExceptionNetkas2023-08-21 21:35:24 -04:00
- Corrected code-smell and code style issues in \ncc\Objects > PackageLock - Removed unused exception InvalidProjectConfigurationException in \ncc\Exceptions in favor of ConfigurationException - Removed unused exception InvalidScopeException in \ncc\Exceptions in favor of InvalidArgumentException (standard php) - Removed unused exception InvalidCredentialsEntryException in \ncc\Exceptions (not used) - Removed unused exception ComponentNotFoundException in \ncc\Exceptions in favor of ConfigurationException - Removed unused exception InvalidPackageNameException in \ncc\Exceptions (not used) - Removed unused exception InvalidVersionNumberException in \ncc\Exceptions (not used) - Removed unused exception InvalidProjectException in \ncc\Exceptions in favor of ConfigurationException - Removed unused exception InvalidProjectNameException in \ncc\Exceptions in favor of ConfigurationException - Removed unused exception BuildConfigurationNotFoundException in \ncc\Exceptions in favor of ConfigurationExceptionNetkas2023-08-21 18:49:09 -04:00
- Removed unused exception GitCloneException in \ncc\Exceptions in favor of GitException - Removed unused exception GitCheckoutException in \ncc\Exceptions in favor of GitException - Removed unused exception GithubServiceException in \ncc\Exceptions in favor of GitException - Updated \ncc\Classes > GitClient > cloneRepository() to throw GitException instead of GitCloneException - Updated \ncc\Classes > GitClient > checkout() to throw GitException instead of GitCheckoutException - Added new exception GitException in \ncc\Exceptions to replace all git related exceptionsNetkas2023-08-19 12:52:39 -04:00
- Corrected code-smell and code style issues in \ncc\Utilities > IO - 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 > GithubServiceNetkas2023-08-17 14:40:49 -04:00
- 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 > VersionsNetkas2023-08-18 00:22:15 -04:00