Commit graph

508 commits

Author SHA1 Message Date
5d9168f664
Implemented static dependencies & corrected output argument 2023-09-30 21:27:12 -04:00
770dde9ed2
Corrected shadow copy logic to not use stream_copy_to_stream() as it causes unexpected results. 2023-09-30 02:20:01 -04:00
9ded98c3e1
Added the ability to reinstall & skip dependencies for installation procedures 2023-09-30 00:07:56 -04:00
976518439f
Added checksum 2023-09-29 23:42:56 -04:00
e1f813ab60
Oops 2023-09-29 17:01:59 -04:00
38ab509630
Added shadow copy command to the Package Inspector Command 2023-09-29 16:43:48 -04:00
2cb5659de9
Update project files 2023-09-29 06:37:07 -04:00
29cf2ac00b
Update project files 2023-09-29 06:36:50 -04:00
67a1a29f8a
- Removed .gitlab-ci.yml.old
- Added logic for dependency importing
 - Enforced security
 - Added "." handler for GitlabRepository.php
 - Minor bug fixes
2023-09-29 01:57:41 -04:00
9cfca3281a
Touch-up & Implemented authentication system 2023-09-28 21:56:15 -04:00
09c89c16a0
Merge remote-tracking branch 'n64/dev' into dev 2023-09-28 21:30:29 -04:00
ba2e968676
Touchup 2023-09-28 21:30:00 -04:00
d5c0ebf9c7
Moved Component.php to InternalComponent.php 2023-09-26 17:35:52 -04:00
9aba1cbf38
Removed ExecutionPointer.php & Implemented ValidatableObjectInterface into BuildConfiguration.php 2023-09-26 17:33:14 -04:00
f62856b530
- 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 system
2023-09-26 17:06:43 -04:00
badPointer
23e2673eed feat: update readme 2023-09-22 16:37:06 +00:00
5da97e4b3d
Updated PhpRunner.php 2023-09-10 22:47:37 -04:00
de88a4fb9e
- 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 `Python`
2023-09-10 22:47:24 -04:00
ab32a3bba3
Minor change 2023-09-04 22:45:31 -04:00
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