Commit graph

589 commits

Author SHA1 Message Date
4682b613a4
Minor change 2023-09-04 22:45:09 -04:00
5ce1c8cfa1
Bumped version to 2.0.0 2023-09-04 21:56:36 -04:00
d41ae8114f
- Refactored the entire package structure to ncc package structure 2.0 for memory efficiency and performance 2023-09-04 21:56:07 -04:00
d4f69522fc
Cleanup 2023-09-01 04:31:24 -04:00
e7eecd354a
Cleanup 2023-09-01 04:23:01 -04:00
d4e710d9d9
Cleanup 2023-09-01 04:19:09 -04:00
00e9bf1dd9
Fixed multiple ExecutionPolicies from populating the configuration file 2023-09-01 04:17:19 -04:00
84e4158fb8
Fixed return type in \ncc\Objects\ProjectConfiguration\ExecutionPolicy > Execute > toArray() 2023-09-01 04:11:33 -04:00
45c53981ef
- Added the ability to clean arrays in \ncc\Utilities > Functions > cleanArray() 2023-09-01 04:06:52 -04:00
0e8397ec1f
- 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` command
2023-09-01 03:47:01 -04:00
8ea203a0f1
Fixed @Throw statements 2023-08-31 18:27:21 -04:00
01cda99139
- \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.
2023-08-31 18:26:18 -04:00
230675c586
- \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()`
2023-08-30 20:38:52 -04:00
99bdd933cd
Created autoload.php in test 2023-08-30 20:06:13 -04:00
dd3c659fe1
Created autoload.php in test 2023-08-30 20:06:08 -04:00
b751b39548
Moved old tests 2023-08-30 20:04:51 -04:00
e93fd81002
Added project.json 2023-08-30 20:03:29 -04:00
2ad6dfabab
Moved all old tests to another folder 2023-08-30 20:03:19 -04:00
960770d73f
Removed exceptions_plan.txt 2023-08-30 19:58:50 -04:00
05c890f0d1
- 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 > PhpConfiguration`
2023-08-30 19:58:31 -04:00
42c26c92a0
- 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 Attacks
2023-08-28 22:54:54 -04:00
eeffb15eb7
- Updated class \ncc\Objects\Vault\Password > AccessToken to use method calls rather than direct property access 2023-08-28 18:34:19 -04:00
424b503f42
- Updated class \ncc\Objects\SymlinkDictionary > SymlinkEntry to use method calls rather than direct property access 2023-08-28 18:31:59 -04:00
cda454a9c1
Update project file 2023-08-28 18:27:43 -04:00
729c9cb217
- 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 `BytecodeObjectInterface`
2023-08-28 18:27:09 -04:00
2ea1dfc27a
- 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 access
2023-08-27 11:41:11 -04:00
dc7fcfc757
- 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 > Build`
2023-08-27 01:04:35 -04:00
9c76d31de9
- Updated class \ncc\Objects\ProjectConfiguration > Dependency to use method calls rather than direct property access 2023-08-23 14:23:21 -04:00
628d126baf
Updated exception message in \ncc\Objects > RemotePackageInput > __construct() 2023-08-23 12:50:10 -04:00
eef360a8f7
- 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.
2023-08-23 11:44:32 -04:00
69d7b86534
- 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 `IOException`
2023-08-21 23:14:13 -04:00
cdbc87e4bc
- 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 `PackageException`
2023-08-21 21:35:24 -04:00
623da68d29
Updated exceptions_plan.txt 2023-08-21 20:47:45 -04:00
7ad8518114
- Removed unused exception AccessDeniedException in \ncc\Exceptions in favor of AuthenticationException 2023-08-21 20:46:00 -04:00
b685d66b77
- Removed unused exception InvalidBuildConfigurationException in \ncc\Exceptions (not used)
- Removed unused exception `InvalidPropertyValue` in `\ncc\Exceptions` in favor of `ConfigurationException`
 - Removed unused exception `InvalidVersionConfiguration` in `\ncc\Exceptions` (not used)
 - Removed unused exception `InvalidDependencyConfiguraiton` in `\ncc\Exceptions` (not used)
 - Removed unused exception `ProjectConfigurationNotFoundException` in `\ncc\Exceptions` in favor of `ConfigurationException`
 - Removed unused exception `UndefinedExecutionPolicyExpection` in `\ncc\Exceptions` in favor of `ConfigurationException`
 - Removed unused exception `InvalidExecutionPolicyName` in `\ncc\Exceptions` (not used)
2023-08-21 20:30:48 -04:00
59dc4bb9cb
Updated ExceptionCodes.php 2023-08-21 18:53:48 -04:00
0f08bd54d4
- 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 `ConfigurationException`
2023-08-21 18:49:09 -04:00
c151d29b46
- Removed unused exception UnsupportedComponentTypeException in \ncc\Exceptions in favor of NotSupportedException
- Removed unused exception `UnsupportedPackageException` in `\ncc\Exceptions` (not used)
 - Removed unused exception `UnsupportedRemoteTypeSource` in `\ncc\Exceptions` (not used)
 - Removed unused exception `UnsupportedProjectTypeException` in `\ncc\Exceptions` (not used)
2023-08-20 21:20:13 -04:00
14541123c0
self::UNSUPPORTED_EXTENSION_VERSION, 2023-08-20 17:38:36 -04:00
57305c8b52
Removed GithubServiceException.php 2023-08-19 12:57:15 -04:00
85d4a63248
- Removed unused exception GitTagsException in \ncc\Exceptions in favor of GitException 2023-08-19 12:56:31 -04:00
00dcc7e004
- 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 exceptions
2023-08-19 12:52:55 -04:00
c3406ca13f
Updated CHANGELOG.md 2023-08-19 12:37:14 -04:00
79c02e5132
Refactored Runtime to an extent, added plan (exceptions_plans.txt) 2023-08-19 12:34:22 -04:00
348ca2d4a1
- Implemented interface BytecodeObjectInterface into \ncc\Objects\ProjectConfiguration > Assembly
- Implemented interface `BytecodeObjectInterface` into `\ncc\Objects\ProjectConfiguration\UpdateSource > Repository`
 - Implemented interface `BytecodeObjectInterface` into `\ncc\Objects\ProjectConfiguration\ExecutionPolicy > Execute`
 - Implemented interface `BytecodeObjectInterface` into `\ncc\Objects\ProjectConfiguration\ExecutionPolicy > ExitHandle`
 - Implemented interface `BytecodeObjectInterface` into `\ncc\Objects\ProjectConfiguration\ExecutionPolicy > ExitHandlers`
 - Implemented interface `BytecodeObjectInterface` into `\ncc\Objects\ProjectConfiguration\Build > BuildConfiguration`
2023-08-19 12:24:42 -04:00
15fd06d2d0
- Implemented Bytecode compiling properly into \ncc\Objects > ProjectConfiguration
- Implemented interface `BytecodeObjectInterface` into `\ncc\Objects\ProjectConfiguration > Installer`
 - Implemented interface `BytecodeObjectInterface` into `\ncc\Objects\ProjectConfiguration > ExecutionPolicy`
 - Implemented interface `BytecodeObjectInterface` into `\ncc\Objects\ProjectConfiguration > Dependecy`
 - Implemented interface `BytecodeObjectInterface` into `\ncc\Objects\ProjectConfiguration > Compiler`
 - Implemented interface `BytecodeObjectInterface` into `\ncc\Objects\ProjectConfiguration > Build`
 - Implemented interface `BytecodeObjectInterface` into `\ncc\Objects\ProjectConfiguration > UpdateSource`
 - Implemented interface `BytecodeObjectInterface` into `\ncc\Objects\ProjectConfiguration > Project`
2023-08-19 11:33:51 -04:00
352faa0b23
Updated CHANGELOG.md 2023-08-19 08:44:24 -04:00
7138913ef3
- Implemented interface BytecodeObjectInterface into \ncc\Objects > ExecutionPointers
- Implemented interface `BytecodeObjectInterface` into `\ncc\Objects > DefinedRemoteSource`
 - Implemented interface `BytecodeObjectInterface` into `\ncc\Objects\Vault > Entry`
 - Corrected code-smell and code style issues in `\ncc\Objects\Vault\Password > AccessToken`
 - Corrected code-smell and code style issues in `\ncc\Objects\Vault\Password > UsernamePassword`
 - Extended `PasswordInterface` with `BytecodeObjectInterface`
 - Implemented interface `BytecodeObjectInterface` into `\ncc\Objects\SymlinkDictionary > SymlinkEntry`
2023-08-19 08:38:13 -04:00
8df38191c6
Fixes 2023-08-19 05:15:06 -04:00
2e11e32611
Updated Makefile 2023-08-19 05:02:22 -04:00