From fc5923f1a4503cecfa676439fda2232aa2b67980 Mon Sep 17 00:00:00 2001 From: Ty Eggen Date: Wed, 5 Feb 2025 19:44:17 +0000 Subject: [PATCH 001/497] chores: improved php-cs-fixer config for phpdoc --- .php-cs-fixer.php | 50 +++++++++++++++++++++++++++-------------------- 1 file changed, 29 insertions(+), 21 deletions(-) diff --git a/.php-cs-fixer.php b/.php-cs-fixer.php index be20281c..fd300737 100644 --- a/.php-cs-fixer.php +++ b/.php-cs-fixer.php @@ -25,7 +25,7 @@ ] ], // 'blank_line_after_opening_tag' => true, - // 'blank_line_before_statement' => true, + 'blank_line_before_statement' => true, 'braces' => [ 'allow_single_line_closure' => true ], @@ -46,7 +46,8 @@ 'new_with_braces' => false, 'no_blank_lines_after_class_opening' => true, 'no_blank_lines_after_phpdoc' => true, - // "no_blank_lines_before_namespace" => true, + 'blank_lines_before_namespace' => true, + 'no_blank_lines_before_namespace' => false, 'no_empty_comment' => true, 'no_empty_phpdoc' => true, // 'no_empty_statement' => true, @@ -76,23 +77,6 @@ // 'normalize_index_brace' => true, 'object_operator_without_whitespace' => true, 'php_unit_fqcn_annotation' => true, - 'phpdoc_align' => true, - 'phpdoc_annotation_without_dot' => true, - 'phpdoc_indent' => true, - // 'phpdoc_no_access' => true, - // 'phpdoc_no_alias_tag' => true, - // 'phpdoc_no_empty_return' => true, - // 'phpdoc_no_package' => true, - // 'phpdoc_no_useless_inheritdoc' => true, - // 'phpdoc_return_self_reference' => true, - // 'phpdoc_scalar' => true, - 'phpdoc_separation' => true, - 'phpdoc_single_line_var_spacing' => true, - 'phpdoc_summary' => true, - // 'phpdoc_to_comment' => true, - 'phpdoc_trim' => true, - 'phpdoc_types' => true, - // 'phpdoc_var_without_name' => true, // 'increment_style' => true, // 'return_type_declaration' => true, // 'self_accessor' => true, @@ -106,7 +90,6 @@ 'trim_array_spaces' => true, 'unary_operator_spaces' => true, 'whitespace_after_comma_in_array' => true, - 'space_after_semicolon' => true, 'single_blank_line_at_eof' => true, 'ordered_class_elements' => [ 'order' => [ @@ -165,7 +148,32 @@ ], 'sort_algorithm' => 'alpha' ], - 'ordered_imports' => true + 'ordered_imports' => true, + 'phpdoc_order_by_value' => true, + 'phpdoc_types_order' => ['sort_algorithm' => 'alpha', 'null_adjustment' => 'always_last'], + 'phpdoc_add_missing_param_annotation' => true, + 'phpdoc_var_annotation_correct_order' => true, + 'phpdoc_align' => true, + 'phpdoc_annotation_without_dot' => true, + 'phpdoc_indent' => true, + // 'phpdoc_no_access' => true, + // 'phpdoc_no_alias_tag' => true, + 'phpdoc_no_empty_return' => false, + // 'phpdoc_no_package' => true, + // 'phpdoc_no_useless_inheritdoc' => true, + // 'phpdoc_return_self_reference' => true, + 'phpdoc_scalar' => true, + 'phpdoc_separation' => true, + 'phpdoc_single_line_var_spacing' => true, + 'phpdoc_summary' => true, + 'phpdoc_trim' => true, + 'phpdoc_types' => true, + 'phpdoc_line_span' => ['property' => 'single'], + 'phpdoc_order' => true, + 'phpdoc_param_order' => true, + 'phpdoc_to_comment' => false, + 'phpdoc_trim_consecutive_blank_line_separation' => true + // 'phpdoc_var_without_name' => true, ]) ->setIndent(' ') ->setLineEnding("\n") From 8eb455297a8d6efbd07bf597ba365cb921472d86 Mon Sep 17 00:00:00 2001 From: Ty Eggen Date: Wed, 5 Feb 2025 20:04:47 +0000 Subject: [PATCH 002/497] feat: improved formatting, phpdoc comments and typescript typing doc directives --- app/constants/DateTime.php | 1 + app/constants/StringLiterals.php | 1 + app/contracts/IApiKeyService1.php | 1 + app/contracts/IAuthService1.php | 4 +-- app/contracts/IEmailService1.php | 1 + app/contracts/IEventService1.php | 1 + app/contracts/IIpnService1.php | 1 + app/contracts/IKeyService1.php | 1 + app/contracts/IMemberCardService1.php | 18 +++++++----- app/contracts/IMembershipService1.php | 29 +++++++++++++++++-- app/contracts/IMetricService1.php | 1 + app/contracts/IPaymentService1.php | 1 + app/contracts/IPinService1.php | 2 ++ app/contracts/IPreferenceService1.php | 7 ++++- app/contracts/IPrivilegeService1.php | 1 + app/contracts/IStripeEventService1.php | 3 +- app/contracts/IUserService1.php | 1 + app/contracts/IWebHookService1.php | 9 +++--- app/domain/AccessLog.php | 2 ++ app/domain/AccessToken.php | 1 + app/domain/AppClient.php | 1 + app/domain/EmailTemplate.php | 3 +- app/domain/Event.php | 1 + app/domain/GenuineCard.php | 2 ++ app/domain/Ipn.php | 2 ++ app/domain/Key.php | 2 ++ app/domain/Membership.php | 5 ++-- app/domain/PasswordResetRequest.php | 2 ++ app/domain/Payment.php | 2 ++ app/domain/Privilege.php | 3 +- app/domain/RefreshToken.php | 1 + app/domain/StripeEvent.php | 2 ++ app/domain/SystemPreference.php | 1 + app/domain/User.php | 12 ++++---- app/domain/WebHook.php | 1 + app/endpoints/web/ApiKeyService1.svc.php | 1 + app/endpoints/web/AuthService1.svc.php | 1 + app/endpoints/web/EmailService1.svc.php | 1 + app/endpoints/web/EventService1.svc.php | 1 + app/endpoints/web/IpnService1.svc.php | 1 + app/endpoints/web/KeyService1.svc.php | 1 + app/endpoints/web/MemberCardService1.svc.php | 1 + app/endpoints/web/MembershipService1.svc.php | 1 + app/endpoints/web/MetricService1.svc.php | 1 + app/endpoints/web/PaymentService1.svc.php | 1 + app/endpoints/web/PinService1.svc.php | 1 + app/endpoints/web/PreferenceService1.svc.php | 1 + app/endpoints/web/PrivilegeService1.svc.php | 1 + app/endpoints/web/StripeEventService1.svc.php | 1 + app/endpoints/web/UserService1.svc.php | 1 + app/endpoints/web/WebHookService1.svc.php | 1 + app/exceptions/InvalidInputException.php | 1 + .../InvalidPasswordHashException.php | 1 + app/exceptions/MemberCardException.php | 1 + app/exceptions/UserAlreadyExistsException.php | 1 + app/gateways/IPaymentGateway.php | 1 + app/gateways/PaymentGatewayException.php | 1 + app/gateways/PaypalGateway.php | 3 ++ app/modules/HttpPaymentGatewayHandler.php | 1 + .../HttpPaymentGatewayHandlerModule.php | 1 + app/monitors/DomainEventMonitor.php | 10 +++++++ app/monitors/PaymentMonitor.php | 1 + app/monitors/PaypalIpnMonitor.php | 1 + app/monitors/StripeEventMonitor.php | 3 ++ app/processors/PaymentProcessor.php | 1 + app/resources/Resource.php | 1 + app/schema/AccessLogSchema.php | 1 + app/schema/AccessTokenSchema.php | 1 + app/schema/AppClientSchema.php | 1 + app/schema/EmailSchema.php | 1 + app/schema/EventPrivilegeSchema.php | 1 + app/schema/EventSchema.php | 1 + app/schema/GenuineCardSchema.php | 1 + app/schema/IpnSchema.php | 1 + app/schema/KeyPrivilegeSchema.php | 1 + app/schema/KeySchema.php | 1 + app/schema/MembershipPrivilegeSchema.php | 1 + app/schema/MembershipSchema.php | 1 + app/schema/PasswordResetRequestSchema.php | 1 + app/schema/PaymentSchema.php | 1 + app/schema/PrivilegeSchema.php | 1 + app/schema/RefreshTokenSchema.php | 1 + app/schema/SettingsSchema.php | 1 + app/schema/StripeEventSchema.php | 1 + .../SystemPreferencePrivilegeSchema.php | 1 + app/schema/SystemPreferenceSchema.php | 1 + app/schema/UserPrivilegeSchema.php | 1 + app/schema/UserSchema.php | 1 + app/schema/WebHookPrivilegeSchema.php | 1 + app/schema/WebHookSchema.php | 1 + app/security/ColumnPrivilegedAccess.php | 1 + app/security/HttpApiAuthModule.php | 1 + app/security/PasswordUtil.php | 3 +- app/security/PrivilegedAccess.php | 1 + app/security/TablePrivilegedAccess.php | 1 + app/security/TokenPrincipal.php | 1 + app/security/UserPrincipal.php | 1 + app/security/credentials/ApiCredentials.php | 1 + app/security/credentials/PinCredentials.php | 1 + app/security/credentials/RfidCredentials.php | 1 + app/security/credentials/TokenCredentials.php | 1 + app/security/oauth/OAuthHelper.php | 1 + .../oauth/modules/GithubOAuthHandler.php | 3 +- .../oauth/modules/GoogleOAuthHandler.php | 3 +- app/security/oauth/modules/OAuthHandler.php | 1 + .../oauth/modules/OAuthHandlerModule.php | 1 + .../oauth/modules/SlackOAuthHandler.php | 3 +- app/security/oauth/providers/slack/Slack.php | 1 + .../slack/SlackProviderException.php | 1 + .../oauth/providers/slack/SlackUser.php | 1 + app/services/AuthService.php | 15 ++++------ app/services/EventService.php | 1 + app/services/KeyService.php | 4 +++ app/services/MemberCardService.php | 17 ++++++----- app/services/MembershipService.php | 29 +++++++++++++++++-- app/services/MetricService.php | 9 ++++++ app/services/PinService.php | 2 ++ app/services/PreferenceService.php | 7 ++++- app/services/StripeEventService.php | 3 +- app/services/UserService.php | 5 ++++ app/services/WebHookService.php | 9 +++--- tests/ConstantsTest.php | 1 + tests/DomainTest.php | 3 ++ tests/LimitTest.php | 1 + tests/ServiceTest.php | 2 ++ tests/WhereTest.php | 2 ++ tests/domain/Enchantment.php | 1 + tests/domain/Knight.php | 1 + tests/domain/Ring.php | 1 + tests/domain/Sword.php | 1 + tests/endpoints/native/TestService1.svc.php | 1 + tests/endpoints/web/TestService1.svc.php | 1 + tests/schema/EnchantmentSchema.php | 1 + tests/schema/KnightSchema.php | 1 + tests/schema/RingSchema.php | 1 + tests/schema/SwordEnchantmentsSchema.php | 1 + tests/schema/SwordSchema.php | 1 + tests/services/TestService.php | 1 + vhs/Logger.php | 1 + vhs/Singleton.php | 1 + vhs/SplClassLoader.php | 2 ++ vhs/database/Column.php | 2 ++ vhs/database/Columns.php | 1 + vhs/database/ConnectionInfo.php | 1 + vhs/database/Database.php | 9 ++++++ vhs/database/Element.php | 1 + vhs/database/Engine.php | 1 + vhs/database/IColumnGenerator.php | 1 + vhs/database/IConverter.php | 1 + vhs/database/IConvertible.php | 1 + vhs/database/IDataInterface.php | 1 + vhs/database/IGeneratable.php | 1 + vhs/database/IGenerator.php | 1 + vhs/database/IOnGenerator.php | 1 + vhs/database/ITableGenerator.php | 1 + vhs/database/On.php | 1 + vhs/database/Table.php | 4 ++- vhs/database/access/IAccess.php | 1 + vhs/database/access/IAccessGenerator.php | 1 + vhs/database/constraints/Constraint.php | 2 ++ vhs/database/constraints/ForeignKey.php | 1 + .../constraints/IConstraintGenerator.php | 1 + vhs/database/constraints/PrimaryKey.php | 1 + .../engines/memory/InMemoryEngine.php | 3 ++ .../engines/memory/InMemoryGenerator.php | 1 + .../engines/mysql/MySqlConnectionInfo.php | 1 + vhs/database/engines/mysql/MySqlConverter.php | 1 + vhs/database/engines/mysql/MySqlEngine.php | 5 ++-- vhs/database/engines/mysql/MySqlGenerator.php | 8 +++-- .../DatabaseConnectionException.php | 1 + vhs/database/exceptions/DatabaseException.php | 1 + .../exceptions/InvalidSchemaException.php | 1 + vhs/database/joins/IJoinGenerator.php | 1 + vhs/database/joins/Join.php | 1 + vhs/database/joins/JoinCross.php | 1 + vhs/database/joins/JoinInner.php | 1 + vhs/database/joins/JoinLeft.php | 1 + vhs/database/joins/JoinOuter.php | 1 + vhs/database/joins/JoinRight.php | 1 + vhs/database/limits/ILimitGenerator.php | 1 + vhs/database/limits/Limit.php | 1 + vhs/database/offsets/IOffsetGenerator.php | 1 + vhs/database/offsets/Offset.php | 1 + vhs/database/orders/IOrderByGenerator.php | 1 + vhs/database/orders/OrderBy.php | 1 + vhs/database/orders/OrderByAscending.php | 1 + vhs/database/orders/OrderByDescending.php | 1 + vhs/database/queries/IQueryGenerator.php | 1 + vhs/database/queries/Query.php | 1 + vhs/database/queries/QueryCount.php | 1 + vhs/database/queries/QueryDelete.php | 1 + vhs/database/queries/QueryInsert.php | 1 + vhs/database/queries/QuerySelect.php | 1 + vhs/database/queries/QueryUpdate.php | 1 + vhs/database/types/ITypeConverter.php | 1 + vhs/database/types/ITypeGenerator.php | 1 + vhs/database/types/Type.php | 1 + vhs/database/types/TypeBool.php | 1 + vhs/database/types/TypeDate.php | 1 + vhs/database/types/TypeDateTime.php | 1 + vhs/database/types/TypeEnum.php | 5 ++-- vhs/database/types/TypeFloat.php | 1 + vhs/database/types/TypeInt.php | 1 + vhs/database/types/TypeString.php | 1 + vhs/database/types/TypeText.php | 1 + vhs/database/wheres/IWhereGenerator.php | 1 + vhs/database/wheres/Where.php | 1 + vhs/database/wheres/WhereAnd.php | 1 + vhs/database/wheres/WhereComparator.php | 1 + vhs/database/wheres/WhereOr.php | 1 + vhs/domain/Domain.php | 20 ++++++++----- vhs/domain/DomainValueCache.php | 1 + vhs/domain/Filter.php | 1 + vhs/domain/Notifier.php | 1 + vhs/domain/Schema.php | 2 ++ .../collections/ChildDomainCollection.php | 3 ++ vhs/domain/collections/DomainCollection.php | 1 + .../collections/ParentDomainCollection.php | 1 + .../collections/SatelliteDomainCollection.php | 3 ++ vhs/domain/exceptions/DomainException.php | 1 + .../InvalidColumnDefinitionException.php | 1 + .../validations/ValidationException.php | 1 + vhs/domain/validations/ValidationFailure.php | 1 + vhs/domain/validations/ValidationResults.php | 1 + vhs/loggers/ConsoleLogger.php | 1 + vhs/loggers/FileLogger.php | 1 + vhs/loggers/SilentLogger.php | 1 + vhs/loggers/StringLogger.php | 1 + vhs/messaging/ConnectionInfo.php | 1 + vhs/messaging/Engine.php | 1 + vhs/messaging/IMessagingInterface.php | 1 + .../RabbitMQ/RabbitMQConnectionInfo.php | 1 + .../engines/RabbitMQ/RabbitMQEngine.php | 1 + .../exceptions/MessageQueueException.php | 1 + vhs/migration/Backup.php | 3 ++ vhs/migration/Migrator.php | 7 +++++ vhs/monitors/Monitor.php | 1 + vhs/security/AnonPrincipal.php | 1 + vhs/security/BearerTokenCredentials.php | 1 + vhs/security/CurrentUser.php | 5 ++-- vhs/security/IAuthenticate.php | 1 + vhs/security/ICredentials.php | 1 + vhs/security/IPrincipal.php | 1 + vhs/security/SystemPrincipal.php | 1 + vhs/security/UserPassCredentials.php | 1 + .../exceptions/InvalidCredentials.php | 1 + .../exceptions/UnauthorizedException.php | 1 + vhs/services/IContract.php | 1 + vhs/services/ServiceClient.php | 1 + vhs/services/ServiceContext.php | 1 + vhs/services/ServiceHandler.php | 5 ++-- vhs/services/ServiceRegistry.php | 1 + vhs/services/endpoints/Endpoint.php | 5 ++-- vhs/services/endpoints/IEndpoint.php | 1 + vhs/services/endpoints/JsonEndpoint.php | 1 + vhs/services/endpoints/NativeEndpoint.php | 1 + .../exceptions/InvalidContractException.php | 1 + .../exceptions/InvalidRequestException.php | 1 + vhs/web/HttpContext.php | 5 ++-- vhs/web/HttpRequest.php | 1 + vhs/web/HttpRequestHandler.php | 1 + vhs/web/HttpServer.php | 4 +++ vhs/web/HttpUtil.php | 2 ++ vhs/web/IHttpModule.php | 1 + vhs/web/modules/HttpBasicAuthModule.php | 1 + vhs/web/modules/HttpBearerTokenAuthModule.php | 1 + .../modules/HttpExceptionHandlerModule.php | 1 + .../modules/HttpJsonServiceHandlerModule.php | 5 ++++ vhs/web/modules/HttpRequestHandlerModule.php | 1 + vhs/web/modules/HttpServerInfoModule.php | 1 + 270 files changed, 478 insertions(+), 85 deletions(-) diff --git a/app/constants/DateTime.php b/app/constants/DateTime.php index 3700b788..b3368733 100644 --- a/app/constants/DateTime.php +++ b/app/constants/DateTime.php @@ -2,6 +2,7 @@ namespace app\constants; +/** @typescript */ class DateTime { public const DATE_TIME_MIDNIGHT = 'Y-m-d 00:00:00'; public const DATE_TIME_SIMPLE = 'Y-m-d H:i:s'; diff --git a/app/constants/StringLiterals.php b/app/constants/StringLiterals.php index c7431632..cc8634e9 100644 --- a/app/constants/StringLiterals.php +++ b/app/constants/StringLiterals.php @@ -2,6 +2,7 @@ namespace app\constants; +/** @typescript */ class StringLiterals { final public const AUTH_ACCESS_DENIED = 'Access Denied'; final public const AUTH_ACCESS_GRANTED = 'Access Granted'; diff --git a/app/contracts/IApiKeyService1.php b/app/contracts/IApiKeyService1.php index 4a6e1c01..721eedfa 100644 --- a/app/contracts/IApiKeyService1.php +++ b/app/contracts/IApiKeyService1.php @@ -11,6 +11,7 @@ use vhs\services\IContract; +/** @typescript */ interface IApiKeyService1 extends IContract { /** * @permission administrator|user diff --git a/app/contracts/IAuthService1.php b/app/contracts/IAuthService1.php index 8545cc50..afabeb01 100644 --- a/app/contracts/IAuthService1.php +++ b/app/contracts/IAuthService1.php @@ -11,6 +11,7 @@ use vhs\services\IContract; +/** @typescript */ interface IAuthService1 extends IContract { /** * @permission administrator|pin-auth @@ -45,7 +46,7 @@ public function CheckService($service, $id); * * @param $username * - * @return boolean + * @return bool */ public function CheckUsername($username); @@ -136,7 +137,6 @@ public function GetClient($clientId, $clientSecret); * @permission oauth-provider * * @param $clientId - * @param $clientSecret * * @return mixed */ diff --git a/app/contracts/IEmailService1.php b/app/contracts/IEmailService1.php index 7e9537e0..5db6b220 100644 --- a/app/contracts/IEmailService1.php +++ b/app/contracts/IEmailService1.php @@ -11,6 +11,7 @@ use vhs\services\IContract; +/** @typescript */ interface IEmailService1 extends IContract { /** * @permission administrator diff --git a/app/contracts/IEventService1.php b/app/contracts/IEventService1.php index 8ee82015..bd1b7a18 100644 --- a/app/contracts/IEventService1.php +++ b/app/contracts/IEventService1.php @@ -11,6 +11,7 @@ use vhs\services\IContract; +/** @typescript */ interface IEventService1 extends IContract { /** * @permission administrator diff --git a/app/contracts/IIpnService1.php b/app/contracts/IIpnService1.php index c6b43dce..1bafb11c 100644 --- a/app/contracts/IIpnService1.php +++ b/app/contracts/IIpnService1.php @@ -8,6 +8,7 @@ use vhs\services\IContract; +/** @typescript */ interface IIpnService1 extends IContract { /** * @permission administrator diff --git a/app/contracts/IKeyService1.php b/app/contracts/IKeyService1.php index ac1eeeff..391b1c2e 100644 --- a/app/contracts/IKeyService1.php +++ b/app/contracts/IKeyService1.php @@ -11,6 +11,7 @@ use vhs\services\IContract; +/** @typescript */ interface IKeyService1 extends IContract { /** * @permission administrator|user diff --git a/app/contracts/IMemberCardService1.php b/app/contracts/IMemberCardService1.php index 75bc53de..e64f0216 100644 --- a/app/contracts/IMemberCardService1.php +++ b/app/contracts/IMemberCardService1.php @@ -11,6 +11,7 @@ use vhs\services\IContract; +/** @typescript */ interface IMemberCardService1 extends IContract { /** * @permission administrator @@ -27,9 +28,10 @@ public function CountGenuineCards($filters); * @param $userid * @param $filters * - * @return mixed - * * @throws \Exception + * + * @return mixed + * @return mixed */ public function CountGenuineUserCards($userid, $filters); @@ -48,9 +50,9 @@ public function GetGenuineCardDetails($key); * @param $email * @param $key * - * @return mixed - * * @throws \Exception + * + * @return mixed */ public function IssueCard($email, $key); @@ -77,9 +79,9 @@ public function ListGenuineCards($page, $size, $columns, $order, $filters); * @param $order * @param $filters * - * @return mixed - * * @throws \Exception + * + * @return mixed */ public function ListUserGenuineCards($userid, $page, $size, $columns, $order, $filters); @@ -89,9 +91,9 @@ public function ListUserGenuineCards($userid, $page, $size, $columns, $order, $f * @param $key * @param $notes * - * @return GenuineCard - * * @throws \Exception + * + * @return GenuineCard */ public function RegisterGenuineCard($key, $notes); diff --git a/app/contracts/IMembershipService1.php b/app/contracts/IMembershipService1.php index 55d88566..3beea1c9 100644 --- a/app/contracts/IMembershipService1.php +++ b/app/contracts/IMembershipService1.php @@ -8,6 +8,7 @@ use vhs\services\IContract; +/** @typescript */ interface IMembershipService1 extends IContract { /** * @permission administrator @@ -24,10 +25,9 @@ public function CountMemberships($filters); * @param $title * @param $description * @param $price - * @param $days - * @param $private - * @param $active * @param $code + * @param $days + * @param $period * * @return mixed */ @@ -64,12 +64,23 @@ public function ListMemberships($page, $size, $columns, $order, $filters); /** * @permission administrator + * + * @param $membershipId + * @param $privileges */ public function PutPrivileges($membershipId, $privileges); /** * @permission administrator * + * @param $membershipId + * @param $title + * @param $description + * @param $price + * @param $code + * @param $days + * @param $period + * * @return mixed */ public function Update($membershipId, $title, $description, $price, $code, $days, $period); @@ -77,6 +88,9 @@ public function Update($membershipId, $title, $description, $price, $code, $days /** * @permission administrator * + * @param $membershipId + * @param $active + * * @return mixed */ public function UpdateActive($membershipId, $active); @@ -84,6 +98,9 @@ public function UpdateActive($membershipId, $active); /** * @permission administrator * + * @param $membershipId + * @param $private + * * @return mixed */ public function UpdatePrivate($membershipId, $private); @@ -91,6 +108,9 @@ public function UpdatePrivate($membershipId, $private); /** * @permission administrator * + * @param $membershipId + * @param $recurring + * * @return mixed */ public function UpdateRecurring($membershipId, $recurring); @@ -98,6 +118,9 @@ public function UpdateRecurring($membershipId, $recurring); /** * @permission administrator * + * @param $membershipId + * @param $trial + * * @return mixed */ public function UpdateTrial($membershipId, $trial); diff --git a/app/contracts/IMetricService1.php b/app/contracts/IMetricService1.php index 2a68bfb6..9b514dcb 100644 --- a/app/contracts/IMetricService1.php +++ b/app/contracts/IMetricService1.php @@ -8,6 +8,7 @@ use vhs\services\IContract; +/** @typescript */ interface IMetricService1 extends IContract { /** * @permission user diff --git a/app/contracts/IPaymentService1.php b/app/contracts/IPaymentService1.php index 7f55da07..71bc20a6 100644 --- a/app/contracts/IPaymentService1.php +++ b/app/contracts/IPaymentService1.php @@ -11,6 +11,7 @@ use vhs\services\IContract; +/** @typescript */ interface IPaymentService1 extends IContract { /** * @permission administrator|user diff --git a/app/contracts/IPinService1.php b/app/contracts/IPinService1.php index 7dcfde5a..2bddc4e5 100644 --- a/app/contracts/IPinService1.php +++ b/app/contracts/IPinService1.php @@ -11,6 +11,7 @@ use vhs\services\IContract; +/** @typescript */ interface IPinService1 extends IContract { /** * @permission door @@ -65,6 +66,7 @@ public function UpdatePin($keyid, $pin); * * @permission administrator|user * + * @param $userid * @param $pin * * @return mixed diff --git a/app/contracts/IPreferenceService1.php b/app/contracts/IPreferenceService1.php index c8c0fd24..5510c8cb 100644 --- a/app/contracts/IPreferenceService1.php +++ b/app/contracts/IPreferenceService1.php @@ -11,6 +11,7 @@ use vhs\services\IContract; +/** @typescript */ interface IPreferenceService1 extends IContract { /** * @permission administrator @@ -40,7 +41,7 @@ public function GetAllSystemPreferences(); /** * @permission administrator * - * @param $key + * @param $id * * @return mixed */ @@ -64,6 +65,8 @@ public function ListSystemPreferences($page, $size, $columns, $order, $filters); * * @param $key * @param $value + * @param $enabled + * @param $notes * * @return mixed */ @@ -94,6 +97,8 @@ public function SystemPreference($key); * @param $id * @param $key * @param $value + * @param $enabled + * @param $notes * * @return mixed */ diff --git a/app/contracts/IPrivilegeService1.php b/app/contracts/IPrivilegeService1.php index 58e13af2..c97b5d44 100644 --- a/app/contracts/IPrivilegeService1.php +++ b/app/contracts/IPrivilegeService1.php @@ -11,6 +11,7 @@ use vhs\services\IContract; +/** @typescript */ interface IPrivilegeService1 extends IContract { /** * @permission administrator|user|grants diff --git a/app/contracts/IStripeEventService1.php b/app/contracts/IStripeEventService1.php index 9c1b92b4..d8eba21a 100644 --- a/app/contracts/IStripeEventService1.php +++ b/app/contracts/IStripeEventService1.php @@ -9,6 +9,7 @@ use vhs\services\IContract; +/** @typescript */ interface IStripeEventService1 extends IContract { /** * @permission administrator @@ -22,7 +23,7 @@ public function CountRecords($filters); /** * @permission administrator * - * @param $ipnId + * @param $eventId * * @return mixed */ diff --git a/app/contracts/IUserService1.php b/app/contracts/IUserService1.php index f5dcc12e..b463baa8 100644 --- a/app/contracts/IUserService1.php +++ b/app/contracts/IUserService1.php @@ -11,6 +11,7 @@ use vhs\services\IContract; +/** @typescript */ interface IUserService1 extends IContract { /** * @permission administrator|grants diff --git a/app/contracts/IWebHookService1.php b/app/contracts/IWebHookService1.php index 402f4760..ec384517 100644 --- a/app/contracts/IWebHookService1.php +++ b/app/contracts/IWebHookService1.php @@ -11,6 +11,7 @@ use vhs\services\IContract; +/** @typescript */ interface IWebHookService1 extends IContract { /** * @permission administrator|webhook @@ -43,9 +44,9 @@ public function CountUserHooks($userid, $filters); * @param $method * @param $eventid * - * @return mixed - * * @throws UnauthorizedException + * + * @return mixed */ public function CreateHook($name, $description, $enabled, $url, $translation, $headers, $method, $eventid); @@ -117,9 +118,9 @@ public function ListHooks($page, $size, $columns, $order, $filters); * @param $order * @param $filters * - * @return mixed - * * @throws \Exception + * + * @return mixed */ public function ListUserHooks($userid, $page, $size, $columns, $order, $filters); diff --git a/app/domain/AccessLog.php b/app/domain/AccessLog.php index b58a5893..c38d2a24 100644 --- a/app/domain/AccessLog.php +++ b/app/domain/AccessLog.php @@ -16,6 +16,7 @@ use vhs\domain\Domain; use vhs\domain\validations\ValidationResults; +/** @typescript */ class AccessLog extends Domain { public static function Define() { AccessLog::Schema(AccessLogSchema::Type()); @@ -31,6 +32,7 @@ public static function findLatest($limit = 5) { public static function log($key, $type, $authorized, $from_ip, $userid = null) { $entry = new AccessLog(); + $entry->key = $key; $entry->type = $type; $entry->authorized = $authorized; diff --git a/app/domain/AccessToken.php b/app/domain/AccessToken.php index d15dfb0b..c3eb04a6 100644 --- a/app/domain/AccessToken.php +++ b/app/domain/AccessToken.php @@ -15,6 +15,7 @@ use vhs\domain\Domain; use vhs\domain\validations\ValidationResults; +/** @typescript */ class AccessToken extends Domain { public static function Define() { AccessToken::Schema(AccessTokenSchema::Type()); diff --git a/app/domain/AppClient.php b/app/domain/AppClient.php index 9447aaf9..cc839497 100644 --- a/app/domain/AppClient.php +++ b/app/domain/AppClient.php @@ -13,6 +13,7 @@ use vhs\domain\Domain; use vhs\domain\validations\ValidationResults; +/** @typescript */ class AppClient extends Domain { public static function Define() { AppClient::Schema(AppClientSchema::Type()); diff --git a/app/domain/EmailTemplate.php b/app/domain/EmailTemplate.php index 341920d8..5981eda5 100644 --- a/app/domain/EmailTemplate.php +++ b/app/domain/EmailTemplate.php @@ -14,6 +14,7 @@ use vhs\domain\Domain; use vhs\domain\validations\ValidationResults; +/** @typescript */ class EmailTemplate extends Domain { public static function Define() { EmailTemplate::Schema(EmailSchema::Type()); @@ -48,6 +49,6 @@ public static function generate($code, $context) { } public function validate(ValidationResults &$results) { - // not required at this time + // TODO: Implement validate() method. } } diff --git a/app/domain/Event.php b/app/domain/Event.php index c901befa..7aa2dac8 100644 --- a/app/domain/Event.php +++ b/app/domain/Event.php @@ -15,6 +15,7 @@ use vhs\domain\Domain; use vhs\domain\validations\ValidationResults; +/** @typescript */ class Event extends Domain { public static function Define() { Event::Schema(EventSchema::Type()); diff --git a/app/domain/GenuineCard.php b/app/domain/GenuineCard.php index 663dfd7a..4a91c0c0 100644 --- a/app/domain/GenuineCard.php +++ b/app/domain/GenuineCard.php @@ -14,6 +14,7 @@ use vhs\domain\Domain; use vhs\domain\validations\ValidationResults; +/** @typescript */ class GenuineCard extends Domain { public static function Define() { GenuineCard::Schema(GenuineCardSchema::Type()); @@ -29,5 +30,6 @@ public static function findByKey($key) { } public function validate(ValidationResults &$results) { + // TODO: Implement validate() method. } } diff --git a/app/domain/Ipn.php b/app/domain/Ipn.php index 1353e3de..6f8187a1 100644 --- a/app/domain/Ipn.php +++ b/app/domain/Ipn.php @@ -13,11 +13,13 @@ use vhs\domain\Domain; use vhs\domain\validations\ValidationResults; +/** @typescript */ class Ipn extends Domain { public static function Define() { Ipn::Schema(IpnSchema::Type()); } public function validate(ValidationResults &$results) { + // TODO: Implement validate() method. } } diff --git a/app/domain/Key.php b/app/domain/Key.php index ffc4a5c8..ba4f687e 100644 --- a/app/domain/Key.php +++ b/app/domain/Key.php @@ -15,6 +15,7 @@ use vhs\domain\Domain; use vhs\domain\validations\ValidationResults; +/** @typescript */ class Key extends Domain { public static function Define() { Key::Schema(KeySchema::Type()); @@ -88,5 +89,6 @@ public function getAbsolutePrivileges() { } public function validate(ValidationResults &$results) { + // TODO: Implement validate() method. } } diff --git a/app/domain/Membership.php b/app/domain/Membership.php index de74fcac..73ebb6bc 100644 --- a/app/domain/Membership.php +++ b/app/domain/Membership.php @@ -19,6 +19,7 @@ use vhs\domain\Domain; use vhs\domain\validations\ValidationResults; +/** @typescript */ class Membership extends Domain { public const FRIEND = 'vhs_membership_friend'; /* TODO HACK we should instead add privileges to the membership types and check those instead when checking types @@ -73,7 +74,7 @@ public static function findByCode($code) { /** * @param $price * - * @return Membership + * @return Membership|null */ public static function findForPriceLevel($price) { $memberships = Membership::where( @@ -90,6 +91,6 @@ public static function findForPriceLevel($price) { } public function validate(ValidationResults &$results) { - // not required at this time + // TODO: Implement validate() method. } } diff --git a/app/domain/PasswordResetRequest.php b/app/domain/PasswordResetRequest.php index fb5c2807..7211f02a 100644 --- a/app/domain/PasswordResetRequest.php +++ b/app/domain/PasswordResetRequest.php @@ -14,6 +14,7 @@ use vhs\domain\Domain; use vhs\domain\validations\ValidationResults; +/** @typescript */ class PasswordResetRequest extends Domain { public static function Define() { PasswordResetRequest::Schema(PasswordResetRequestSchema::Type()); @@ -24,5 +25,6 @@ public static function findByToken($token) { } public function validate(ValidationResults &$results) { + // TODO: Implement validate() method. } } diff --git a/app/domain/Payment.php b/app/domain/Payment.php index cbcd5813..5cd9cda6 100644 --- a/app/domain/Payment.php +++ b/app/domain/Payment.php @@ -16,6 +16,7 @@ use vhs\domain\Domain; use vhs\domain\validations\ValidationResults; +/** @typescript */ class Payment extends Domain { public static function Define() { Payment::Schema(PaymentSchema::Type()); @@ -28,5 +29,6 @@ public static function exists($txn_id) { } public function validate(ValidationResults &$results) { + // TODO: Implement validate() method. } } diff --git a/app/domain/Privilege.php b/app/domain/Privilege.php index 21110347..394ada02 100644 --- a/app/domain/Privilege.php +++ b/app/domain/Privilege.php @@ -16,6 +16,7 @@ use vhs\security\CurrentUser; use vhs\security\exceptions\UnauthorizedException; +/** @typescript */ class Privilege extends Domain { public static function Define() { Privilege::Schema(PrivilegeSchema::Type()); @@ -59,6 +60,6 @@ private static function checkCodeAccess(...$codes) { } public function validate(ValidationResults &$results) { - // Do nothing + // TODO: Implement validate() method. } } diff --git a/app/domain/RefreshToken.php b/app/domain/RefreshToken.php index 74c326c0..47b16cda 100644 --- a/app/domain/RefreshToken.php +++ b/app/domain/RefreshToken.php @@ -15,6 +15,7 @@ use vhs\domain\Domain; use vhs\domain\validations\ValidationResults; +/** @typescript */ class RefreshToken extends Domain { public static function Define() { RefreshToken::Schema(RefreshTokenSchema::Type()); diff --git a/app/domain/StripeEvent.php b/app/domain/StripeEvent.php index 2da03197..a790546e 100644 --- a/app/domain/StripeEvent.php +++ b/app/domain/StripeEvent.php @@ -11,11 +11,13 @@ use vhs\domain\Domain; use vhs\domain\validations\ValidationResults; +/** @typescript */ class StripeEvent extends Domain { public static function Define() { StripeEvent::Schema(StripeEventSchema::Type()); } public function validate(ValidationResults &$results) { + // TODO: Implement validate() method. } } diff --git a/app/domain/SystemPreference.php b/app/domain/SystemPreference.php index 0924f74b..bfc1af75 100644 --- a/app/domain/SystemPreference.php +++ b/app/domain/SystemPreference.php @@ -15,6 +15,7 @@ use vhs\domain\Domain; use vhs\domain\validations\ValidationResults; +/** @typescript */ class SystemPreference extends Domain { public static function Define() { SystemPreference::Schema(SystemPreferenceSchema::Type()); diff --git a/app/domain/User.php b/app/domain/User.php index a957bc47..f6f4cfdb 100644 --- a/app/domain/User.php +++ b/app/domain/User.php @@ -19,6 +19,7 @@ use vhs\domain\validations\ValidationFailure; use vhs\domain\validations\ValidationResults; +/** @typescript */ class User extends Domain { public static function Define() { User::Schema(UserSchema::Type()); @@ -31,7 +32,7 @@ public static function Define() { * @param string|null $username * @param string|null $email * - * @return boolean + * @return bool */ public static function exists($username = null, $email = null) { $usernameWhere = Where::Equal(UserSchema::Columns()->username, $username); @@ -83,7 +84,7 @@ public static function findByUsername($username) { /** * Magic field interface method for 'valid'. * - * @return boolean + * @return bool */ public function get_valid() { // Check if account is active @@ -105,6 +106,7 @@ public function get_valid() { public function getGrantCodes() { $grants = []; + foreach ($this->privileges->all() as $priv) { if (strpos($priv->code, 'grant:') === 0) { array_push($grants, substr($priv->code, 6)); @@ -117,7 +119,7 @@ public function getGrantCodes() { /** * Get a friendly error message for user validity. * - * @return mixed + * @return 'Account expired'|'Account is not active'|'Unknown error'|false */ public function getInvalidReason() { if ($this->valid) { @@ -148,13 +150,13 @@ public function getPrivilegeCodes() { } public function validate(ValidationResults &$results) { - $this->validateEmail($results); + // TODO: Implement validate() method. } /** * Check if user account has expired. * - * @return boolean + * @return bool */ private function hasExpired() { return new DateTime($this->mem_expire) < new DateTime(); diff --git a/app/domain/WebHook.php b/app/domain/WebHook.php index 4230fa69..30b761b1 100644 --- a/app/domain/WebHook.php +++ b/app/domain/WebHook.php @@ -15,6 +15,7 @@ use vhs\domain\Domain; use vhs\domain\validations\ValidationResults; +/** @typescript */ class WebHook extends Domain { public static function Define() { WebHook::Schema(WebHookSchema::Type()); diff --git a/app/endpoints/web/ApiKeyService1.svc.php b/app/endpoints/web/ApiKeyService1.svc.php index 2f22de85..44c2551f 100644 --- a/app/endpoints/web/ApiKeyService1.svc.php +++ b/app/endpoints/web/ApiKeyService1.svc.php @@ -13,6 +13,7 @@ use vhs\services\endpoints\JsonEndpoint; use vhs\services\ServiceContext; +/** @typescript */ class ApiKeyService1 extends JsonEndpoint { public function __construct() { parent::__construct(new ApiKeyService(new ServiceContext($this))); diff --git a/app/endpoints/web/AuthService1.svc.php b/app/endpoints/web/AuthService1.svc.php index da8b0193..f6335296 100644 --- a/app/endpoints/web/AuthService1.svc.php +++ b/app/endpoints/web/AuthService1.svc.php @@ -13,6 +13,7 @@ use vhs\services\endpoints\JsonEndpoint; use vhs\services\ServiceContext; +/** @typescript */ class AuthService1 extends JsonEndpoint { public function __construct() { parent::__construct(new AuthService(new ServiceContext($this))); diff --git a/app/endpoints/web/EmailService1.svc.php b/app/endpoints/web/EmailService1.svc.php index b89b40ac..80c2e4ad 100644 --- a/app/endpoints/web/EmailService1.svc.php +++ b/app/endpoints/web/EmailService1.svc.php @@ -13,6 +13,7 @@ use vhs\services\endpoints\JsonEndpoint; use vhs\services\ServiceContext; +/** @typescript */ class EmailService1 extends JsonEndpoint { public function __construct() { parent::__construct(new EmailService(new ServiceContext($this))); diff --git a/app/endpoints/web/EventService1.svc.php b/app/endpoints/web/EventService1.svc.php index 96d20dca..51fc7bc1 100644 --- a/app/endpoints/web/EventService1.svc.php +++ b/app/endpoints/web/EventService1.svc.php @@ -13,6 +13,7 @@ use vhs\services\endpoints\JsonEndpoint; use vhs\services\ServiceContext; +/** @typescript */ class EventService1 extends JsonEndpoint { public function __construct() { parent::__construct(new EventService(new ServiceContext($this))); diff --git a/app/endpoints/web/IpnService1.svc.php b/app/endpoints/web/IpnService1.svc.php index 1027e712..46b79eff 100644 --- a/app/endpoints/web/IpnService1.svc.php +++ b/app/endpoints/web/IpnService1.svc.php @@ -6,6 +6,7 @@ use vhs\services\endpoints\JsonEndpoint; use vhs\services\ServiceContext; +/** @typescript */ class IpnService1 extends JsonEndpoint { public function __construct() { parent::__construct(new IpnService(new ServiceContext($this))); diff --git a/app/endpoints/web/KeyService1.svc.php b/app/endpoints/web/KeyService1.svc.php index 4afd6da0..8fc25fce 100644 --- a/app/endpoints/web/KeyService1.svc.php +++ b/app/endpoints/web/KeyService1.svc.php @@ -13,6 +13,7 @@ use vhs\services\endpoints\JsonEndpoint; use vhs\services\ServiceContext; +/** @typescript */ class KeyService1 extends JsonEndpoint { public function __construct() { parent::__construct(new KeyService(new ServiceContext($this))); diff --git a/app/endpoints/web/MemberCardService1.svc.php b/app/endpoints/web/MemberCardService1.svc.php index db0a279e..7e634b71 100644 --- a/app/endpoints/web/MemberCardService1.svc.php +++ b/app/endpoints/web/MemberCardService1.svc.php @@ -13,6 +13,7 @@ use vhs\services\endpoints\JsonEndpoint; use vhs\services\ServiceContext; +/** @typescript */ class MemberCardService1 extends JsonEndpoint { public function __construct() { parent::__construct(new MemberCardService(new ServiceContext($this))); diff --git a/app/endpoints/web/MembershipService1.svc.php b/app/endpoints/web/MembershipService1.svc.php index 34ce54bc..745f515a 100644 --- a/app/endpoints/web/MembershipService1.svc.php +++ b/app/endpoints/web/MembershipService1.svc.php @@ -6,6 +6,7 @@ use vhs\services\endpoints\JsonEndpoint; use vhs\services\ServiceContext; +/** @typescript */ class MembershipService1 extends JsonEndpoint { public function __construct() { parent::__construct(new MembershipService(new ServiceContext($this))); diff --git a/app/endpoints/web/MetricService1.svc.php b/app/endpoints/web/MetricService1.svc.php index bb4a7ed5..126b6c19 100644 --- a/app/endpoints/web/MetricService1.svc.php +++ b/app/endpoints/web/MetricService1.svc.php @@ -6,6 +6,7 @@ use vhs\services\endpoints\JsonEndpoint; use vhs\services\ServiceContext; +/** @typescript */ class MetricService1 extends JsonEndpoint { public function __construct() { parent::__construct(new MetricService(new ServiceContext($this))); diff --git a/app/endpoints/web/PaymentService1.svc.php b/app/endpoints/web/PaymentService1.svc.php index d23202bd..52ef70be 100644 --- a/app/endpoints/web/PaymentService1.svc.php +++ b/app/endpoints/web/PaymentService1.svc.php @@ -6,6 +6,7 @@ use vhs\services\endpoints\JsonEndpoint; use vhs\services\ServiceContext; +/** @typescript */ class PaymentService1 extends JsonEndpoint { public function __construct() { parent::__construct(new PaymentService(new ServiceContext($this))); diff --git a/app/endpoints/web/PinService1.svc.php b/app/endpoints/web/PinService1.svc.php index 1e937e3e..11920c30 100644 --- a/app/endpoints/web/PinService1.svc.php +++ b/app/endpoints/web/PinService1.svc.php @@ -13,6 +13,7 @@ use vhs\services\endpoints\JsonEndpoint; use vhs\services\ServiceContext; +/** @typescript */ class PinService1 extends JsonEndpoint { public function __construct() { parent::__construct(new PinService(new ServiceContext($this))); diff --git a/app/endpoints/web/PreferenceService1.svc.php b/app/endpoints/web/PreferenceService1.svc.php index d297f56a..821d1548 100644 --- a/app/endpoints/web/PreferenceService1.svc.php +++ b/app/endpoints/web/PreferenceService1.svc.php @@ -13,6 +13,7 @@ use vhs\services\endpoints\JsonEndpoint; use vhs\services\ServiceContext; +/** @typescript */ class PreferenceService1 extends JsonEndpoint { public function __construct() { parent::__construct(new PreferenceService(new ServiceContext($this))); diff --git a/app/endpoints/web/PrivilegeService1.svc.php b/app/endpoints/web/PrivilegeService1.svc.php index 751a8dc6..a26c89ec 100644 --- a/app/endpoints/web/PrivilegeService1.svc.php +++ b/app/endpoints/web/PrivilegeService1.svc.php @@ -13,6 +13,7 @@ use vhs\services\endpoints\JsonEndpoint; use vhs\services\ServiceContext; +/** @typescript */ class PrivilegeService1 extends JsonEndpoint { public function __construct() { parent::__construct(new PrivilegeService(new ServiceContext($this))); diff --git a/app/endpoints/web/StripeEventService1.svc.php b/app/endpoints/web/StripeEventService1.svc.php index d16fa7b3..d3d6aecf 100644 --- a/app/endpoints/web/StripeEventService1.svc.php +++ b/app/endpoints/web/StripeEventService1.svc.php @@ -6,6 +6,7 @@ use vhs\services\endpoints\JsonEndpoint; use vhs\services\ServiceContext; +/** @typescript */ class StripeEventService1 extends JsonEndpoint { public function __construct() { parent::__construct(new StripeEventService(new ServiceContext($this))); diff --git a/app/endpoints/web/UserService1.svc.php b/app/endpoints/web/UserService1.svc.php index 87a1b0e3..e984a737 100644 --- a/app/endpoints/web/UserService1.svc.php +++ b/app/endpoints/web/UserService1.svc.php @@ -13,6 +13,7 @@ use vhs\services\endpoints\JsonEndpoint; use vhs\services\ServiceContext; +/** @typescript */ class UserService1 extends JsonEndpoint { protected function __construct() { parent::__construct(new UserService(new ServiceContext($this))); diff --git a/app/endpoints/web/WebHookService1.svc.php b/app/endpoints/web/WebHookService1.svc.php index c4a39b2a..71bc0487 100644 --- a/app/endpoints/web/WebHookService1.svc.php +++ b/app/endpoints/web/WebHookService1.svc.php @@ -13,6 +13,7 @@ use vhs\services\endpoints\JsonEndpoint; use vhs\services\ServiceContext; +/** @typescript */ class WebHookService1 extends JsonEndpoint { public function __construct() { parent::__construct(new WebHookService(new ServiceContext($this))); diff --git a/app/exceptions/InvalidInputException.php b/app/exceptions/InvalidInputException.php index 8c95d606..5d4a528c 100644 --- a/app/exceptions/InvalidInputException.php +++ b/app/exceptions/InvalidInputException.php @@ -2,6 +2,7 @@ namespace app\exceptions; +/** @typescript */ class InvalidInputException extends \Exception { public function __construct($message = 'Invalid input') { parent::__construct($message); diff --git a/app/exceptions/InvalidPasswordHashException.php b/app/exceptions/InvalidPasswordHashException.php index 178659dd..7100ff6d 100644 --- a/app/exceptions/InvalidPasswordHashException.php +++ b/app/exceptions/InvalidPasswordHashException.php @@ -2,6 +2,7 @@ namespace app\exceptions; +/** @typescript */ class InvalidPasswordHashException extends \Exception { public function __construct($message = 'Invalid password hash') { parent::__construct($message); diff --git a/app/exceptions/MemberCardException.php b/app/exceptions/MemberCardException.php index 2d4d98e7..894959fc 100644 --- a/app/exceptions/MemberCardException.php +++ b/app/exceptions/MemberCardException.php @@ -2,6 +2,7 @@ namespace app\exceptions; +/** @typescript */ class MemberCardException extends \Exception { public function __construct($message = 'Unexpected membercard issue') { parent::__construct($message); diff --git a/app/exceptions/UserAlreadyExistsException.php b/app/exceptions/UserAlreadyExistsException.php index fe51c6de..0030f6cc 100644 --- a/app/exceptions/UserAlreadyExistsException.php +++ b/app/exceptions/UserAlreadyExistsException.php @@ -2,6 +2,7 @@ namespace app\exceptions; +/** @typescript */ class UserAlreadyExistsException extends \Exception { public function __construct($message = 'User already exists') { parent::__construct($message); diff --git a/app/gateways/IPaymentGateway.php b/app/gateways/IPaymentGateway.php index aded1d36..a4b54458 100644 --- a/app/gateways/IPaymentGateway.php +++ b/app/gateways/IPaymentGateway.php @@ -9,6 +9,7 @@ namespace app\gateways; +/** @typescript */ interface IPaymentGateway { public function Name(); diff --git a/app/gateways/PaymentGatewayException.php b/app/gateways/PaymentGatewayException.php index 405fd307..ed4d9e66 100644 --- a/app/gateways/PaymentGatewayException.php +++ b/app/gateways/PaymentGatewayException.php @@ -9,5 +9,6 @@ namespace app\gateways; +/** @typescript */ class PaymentGatewayException extends \Exception { } diff --git a/app/gateways/PaypalGateway.php b/app/gateways/PaypalGateway.php index 19b05113..8b799cd5 100644 --- a/app/gateways/PaypalGateway.php +++ b/app/gateways/PaypalGateway.php @@ -11,6 +11,7 @@ use app\domain\Ipn; +/** @typescript */ class PaypalGateway implements IPaymentGateway { public function CreateInvalidIPNRecord($raw) { // Create the IPN record in the database @@ -103,10 +104,12 @@ public function Process($data) { } elseif (strcmp($response, 'INVALID') == 0) { // IPN invalid, log for manual investigation $result = $this->CreateInvalidIPNRecord($req); + throw new PaymentGatewayException('Error: Could not validate paypal IPN ' . $req); } $this->CreateInvalidIPNRecord($req); + throw new PaymentGatewayException('Error: Unknown Paypal IPN Error ' . $req); } } diff --git a/app/modules/HttpPaymentGatewayHandler.php b/app/modules/HttpPaymentGatewayHandler.php index a947d648..561a75a6 100644 --- a/app/modules/HttpPaymentGatewayHandler.php +++ b/app/modules/HttpPaymentGatewayHandler.php @@ -13,6 +13,7 @@ use vhs\web\HttpRequestHandler; use vhs\web\HttpServer; +/** @typescript */ class HttpPaymentGatewayHandler extends HttpRequestHandler { /** @var IPaymentGateway */ private $gateway; diff --git a/app/modules/HttpPaymentGatewayHandlerModule.php b/app/modules/HttpPaymentGatewayHandlerModule.php index c90f4679..35858abd 100644 --- a/app/modules/HttpPaymentGatewayHandlerModule.php +++ b/app/modules/HttpPaymentGatewayHandlerModule.php @@ -12,6 +12,7 @@ use app\gateways\IPaymentGateway; use vhs\web\modules\HttpRequestHandlerModule; +/** @typescript */ class HttpPaymentGatewayHandlerModule extends HttpRequestHandlerModule { /** * @return HttpPaymentGatewayHandlerModule diff --git a/app/monitors/DomainEventMonitor.php b/app/monitors/DomainEventMonitor.php index 5bc5a8ba..4b57ea90 100644 --- a/app/monitors/DomainEventMonitor.php +++ b/app/monitors/DomainEventMonitor.php @@ -15,6 +15,7 @@ use vhs\messaging\MessageQueue; use vhs\monitors\Monitor; +/** @typescript */ class DomainEventMonitor extends Monitor { public function fireEvent($event, $data) { MessageQueue::publish($event->domain, $event->event, json_encode($data)); @@ -50,6 +51,7 @@ public function Init(Logger &$logger = null) { $domainClass::onAnyBeforeCreate(function (...$args) use ($event) { $this->fireEvent($event, $args); }); + break; case 'before:deleted': @@ -57,6 +59,7 @@ public function Init(Logger &$logger = null) { $domainClass::onAnyBeforeDelete(function (...$args) use ($event) { $this->fireEvent($event, $args); }); + break; case 'before:updated': @@ -64,6 +67,7 @@ public function Init(Logger &$logger = null) { $domainClass::onAnyBeforeUpdate(function (...$args) use ($event) { $this->fireEvent($event, $args); }); + break; case 'before:saved': @@ -71,6 +75,7 @@ public function Init(Logger &$logger = null) { $domainClass::onAnyBeforeSave(function (...$args) use ($event) { $this->fireEvent($event, $args); }); + break; case 'changed': @@ -88,6 +93,7 @@ public function Init(Logger &$logger = null) { $domainClass::onAnyCreated(function (...$args) use ($event) { $this->fireEvent($event, $args); }); + break; case 'deleted': @@ -95,6 +101,7 @@ public function Init(Logger &$logger = null) { $domainClass::onAnyDeleted(function (...$args) use ($event) { $this->fireEvent($event, $args); }); + break; case 'updated': @@ -102,6 +109,7 @@ public function Init(Logger &$logger = null) { $domainClass::onAnyUpdated(function (...$args) use ($event) { $this->fireEvent($event, $args); }); + break; case 'saved': @@ -109,10 +117,12 @@ public function Init(Logger &$logger = null) { $domainClass::onAnySaved(function (...$args) use ($event) { $this->fireEvent($event, $args); }); + break; default: $logger->log(sprintf('Invalid domain event [%s] for domain [%s]', $event->event, $event->domain)); + break; } } diff --git a/app/monitors/PaymentMonitor.php b/app/monitors/PaymentMonitor.php index 840ecb50..b1b2a16d 100644 --- a/app/monitors/PaymentMonitor.php +++ b/app/monitors/PaymentMonitor.php @@ -16,6 +16,7 @@ use vhs\Logger; use vhs\monitors\Monitor; +/** @typescript */ class PaymentMonitor extends Monitor { /** @var Logger */ private $logger; diff --git a/app/monitors/PaypalIpnMonitor.php b/app/monitors/PaypalIpnMonitor.php index 45047987..f9cd9192 100644 --- a/app/monitors/PaypalIpnMonitor.php +++ b/app/monitors/PaypalIpnMonitor.php @@ -15,6 +15,7 @@ use vhs\Logger; use vhs\monitors\Monitor; +/** @typescript */ class PaypalIpnMonitor extends Monitor { /** @var Logger */ private $logger; diff --git a/app/monitors/StripeEventMonitor.php b/app/monitors/StripeEventMonitor.php index 27219db6..00d46384 100644 --- a/app/monitors/StripeEventMonitor.php +++ b/app/monitors/StripeEventMonitor.php @@ -13,6 +13,7 @@ use vhs\Logger; use vhs\monitors\Monitor; +/** @typescript */ class StripeEventMonitor extends Monitor { /** @var Logger */ private $logger; @@ -112,6 +113,8 @@ public function Init(Logger &$logger = null) { /** * Sourced from: https://stackoverflow.com/a/31330346. + * + * @param mixed $name */ private function split_name($name) { $name = trim($name); diff --git a/app/processors/PaymentProcessor.php b/app/processors/PaymentProcessor.php index 41b705f8..0eeb2741 100644 --- a/app/processors/PaymentProcessor.php +++ b/app/processors/PaymentProcessor.php @@ -21,6 +21,7 @@ use vhs\security\CurrentUser; use vhs\security\SystemPrincipal; +/** @typescript */ class PaymentProcessor { private $emailService; private $host; diff --git a/app/resources/Resource.php b/app/resources/Resource.php index e1369781..484cd5b0 100644 --- a/app/resources/Resource.php +++ b/app/resources/Resource.php @@ -11,6 +11,7 @@ use vhs\Singleton; +/** @typescript */ class Resource extends Singleton { private $data; diff --git a/app/schema/AccessLogSchema.php b/app/schema/AccessLogSchema.php index 9a11625d..de512819 100644 --- a/app/schema/AccessLogSchema.php +++ b/app/schema/AccessLogSchema.php @@ -15,6 +15,7 @@ use vhs\database\types\Type; use vhs\domain\Schema; +/** @typescript */ class AccessLogSchema extends Schema { public static function init() { $table = new Table('accesslog'); diff --git a/app/schema/AccessTokenSchema.php b/app/schema/AccessTokenSchema.php index 2a9d0b89..44d06f75 100644 --- a/app/schema/AccessTokenSchema.php +++ b/app/schema/AccessTokenSchema.php @@ -15,6 +15,7 @@ use vhs\database\types\Type; use vhs\domain\Schema; +/** @typescript */ class AccessTokenSchema extends Schema { public static function init() { $table = new Table('accesstoken'); diff --git a/app/schema/AppClientSchema.php b/app/schema/AppClientSchema.php index 25830e49..623d43ec 100644 --- a/app/schema/AppClientSchema.php +++ b/app/schema/AppClientSchema.php @@ -15,6 +15,7 @@ use vhs\database\types\Type; use vhs\domain\Schema; +/** @typescript */ class AppClientSchema extends Schema { public static function init() { $table = new Table('appclient'); diff --git a/app/schema/EmailSchema.php b/app/schema/EmailSchema.php index f29e3957..d5f758ed 100644 --- a/app/schema/EmailSchema.php +++ b/app/schema/EmailSchema.php @@ -15,6 +15,7 @@ use vhs\database\types\Type; use vhs\domain\Schema; +/** @typescript */ class EmailSchema extends Schema { public static function init() { $table = new Table('email_templates'); diff --git a/app/schema/EventPrivilegeSchema.php b/app/schema/EventPrivilegeSchema.php index 36421564..1413876c 100644 --- a/app/schema/EventPrivilegeSchema.php +++ b/app/schema/EventPrivilegeSchema.php @@ -14,6 +14,7 @@ use vhs\database\types\Type; use vhs\domain\Schema; +/** @typescript */ class EventPrivilegeSchema extends Schema { public static function init() { $table = new Table('eventprivileges'); diff --git a/app/schema/EventSchema.php b/app/schema/EventSchema.php index ecf066d2..df676bff 100644 --- a/app/schema/EventSchema.php +++ b/app/schema/EventSchema.php @@ -15,6 +15,7 @@ use vhs\database\types\Type; use vhs\domain\Schema; +/** @typescript */ class EventSchema extends Schema { /** * @return Table diff --git a/app/schema/GenuineCardSchema.php b/app/schema/GenuineCardSchema.php index 1bcc7f1d..d901841d 100644 --- a/app/schema/GenuineCardSchema.php +++ b/app/schema/GenuineCardSchema.php @@ -15,6 +15,7 @@ use vhs\database\types\Type; use vhs\domain\Schema; +/** @typescript */ class GenuineCardSchema extends Schema { public static function init() { $table = new Table('genuinecard'); diff --git a/app/schema/IpnSchema.php b/app/schema/IpnSchema.php index d5e646d2..5ddcecc3 100644 --- a/app/schema/IpnSchema.php +++ b/app/schema/IpnSchema.php @@ -15,6 +15,7 @@ use vhs\database\types\Type; use vhs\domain\Schema; +/** @typescript */ class IpnSchema extends Schema { public static function init() { $table = new Table('ipnrequest'); diff --git a/app/schema/KeyPrivilegeSchema.php b/app/schema/KeyPrivilegeSchema.php index 7484034e..cef465a9 100644 --- a/app/schema/KeyPrivilegeSchema.php +++ b/app/schema/KeyPrivilegeSchema.php @@ -14,6 +14,7 @@ use vhs\database\types\Type; use vhs\domain\Schema; +/** @typescript */ class KeyPrivilegeSchema extends Schema { public static function init() { $table = new Table('keyprivileges'); diff --git a/app/schema/KeySchema.php b/app/schema/KeySchema.php index d9189d30..ee4095b4 100644 --- a/app/schema/KeySchema.php +++ b/app/schema/KeySchema.php @@ -15,6 +15,7 @@ use vhs\database\types\Type; use vhs\domain\Schema; +/** @typescript */ class KeySchema extends Schema { public static function init() { $table = new Table('keys'); diff --git a/app/schema/MembershipPrivilegeSchema.php b/app/schema/MembershipPrivilegeSchema.php index ac8795c3..accc5adc 100644 --- a/app/schema/MembershipPrivilegeSchema.php +++ b/app/schema/MembershipPrivilegeSchema.php @@ -14,6 +14,7 @@ use vhs\database\types\Type; use vhs\domain\Schema; +/** @typescript */ class MembershipPrivilegeSchema extends Schema { public static function init() { $table = new Table('membershipprivileges'); diff --git a/app/schema/MembershipSchema.php b/app/schema/MembershipSchema.php index 96335691..c676bfb3 100644 --- a/app/schema/MembershipSchema.php +++ b/app/schema/MembershipSchema.php @@ -15,6 +15,7 @@ use vhs\database\types\Type; use vhs\domain\Schema; +/** @typescript */ class MembershipSchema extends Schema { public static function init() { $table = new Table('memberships'); diff --git a/app/schema/PasswordResetRequestSchema.php b/app/schema/PasswordResetRequestSchema.php index 1950633d..074d2347 100644 --- a/app/schema/PasswordResetRequestSchema.php +++ b/app/schema/PasswordResetRequestSchema.php @@ -15,6 +15,7 @@ use vhs\database\types\Type; use vhs\domain\Schema; +/** @typescript */ class PasswordResetRequestSchema extends Schema { public static function init() { $table = new Table('passwordresetrequests'); diff --git a/app/schema/PaymentSchema.php b/app/schema/PaymentSchema.php index eefa4d83..0f8fc684 100644 --- a/app/schema/PaymentSchema.php +++ b/app/schema/PaymentSchema.php @@ -17,6 +17,7 @@ use vhs\database\types\Type; use vhs\domain\Schema; +/** @typescript */ class PaymentSchema extends Schema { public static function init() { $table = new Table('payments'); diff --git a/app/schema/PrivilegeSchema.php b/app/schema/PrivilegeSchema.php index 9424614a..0df8847f 100644 --- a/app/schema/PrivilegeSchema.php +++ b/app/schema/PrivilegeSchema.php @@ -15,6 +15,7 @@ use vhs\database\types\Type; use vhs\domain\Schema; +/** @typescript */ class PrivilegeSchema extends Schema { public static function init() { $table = new Table('privileges'); diff --git a/app/schema/RefreshTokenSchema.php b/app/schema/RefreshTokenSchema.php index 71d79994..428c82cb 100644 --- a/app/schema/RefreshTokenSchema.php +++ b/app/schema/RefreshTokenSchema.php @@ -15,6 +15,7 @@ use vhs\database\types\Type; use vhs\domain\Schema; +/** @typescript */ class RefreshTokenSchema extends Schema { public static function init() { $table = new Table('refreshtoken'); diff --git a/app/schema/SettingsSchema.php b/app/schema/SettingsSchema.php index 094b453e..2adb545c 100644 --- a/app/schema/SettingsSchema.php +++ b/app/schema/SettingsSchema.php @@ -14,6 +14,7 @@ use vhs\database\types\Type; use vhs\domain\Schema; +/** @typescript */ class SettingsSchema extends Schema { /** * @return Table diff --git a/app/schema/StripeEventSchema.php b/app/schema/StripeEventSchema.php index 5f49d421..9e0da980 100644 --- a/app/schema/StripeEventSchema.php +++ b/app/schema/StripeEventSchema.php @@ -13,6 +13,7 @@ use vhs\database\types\Type; use vhs\domain\Schema; +/** @typescript */ class StripeEventSchema extends Schema { public static function init() { $table = new Table('stripe_events'); diff --git a/app/schema/SystemPreferencePrivilegeSchema.php b/app/schema/SystemPreferencePrivilegeSchema.php index 616b8832..ca3e3daa 100644 --- a/app/schema/SystemPreferencePrivilegeSchema.php +++ b/app/schema/SystemPreferencePrivilegeSchema.php @@ -14,6 +14,7 @@ use vhs\database\types\Type; use vhs\domain\Schema; +/** @typescript */ class SystemPreferencePrivilegeSchema extends Schema { public static function init() { $table = new Table('systempreferenceprivileges'); diff --git a/app/schema/SystemPreferenceSchema.php b/app/schema/SystemPreferenceSchema.php index cf3cc66d..e8497e59 100644 --- a/app/schema/SystemPreferenceSchema.php +++ b/app/schema/SystemPreferenceSchema.php @@ -15,6 +15,7 @@ use vhs\database\types\Type; use vhs\domain\Schema; +/** @typescript */ class SystemPreferenceSchema extends Schema { public static function init() { $table = new Table('systempreferences'); diff --git a/app/schema/UserPrivilegeSchema.php b/app/schema/UserPrivilegeSchema.php index 446cdd08..da5d8ca8 100644 --- a/app/schema/UserPrivilegeSchema.php +++ b/app/schema/UserPrivilegeSchema.php @@ -14,6 +14,7 @@ use vhs\database\types\Type; use vhs\domain\Schema; +/** @typescript */ class UserPrivilegeSchema extends Schema { public static function init() { $table = new Table('userprivileges'); diff --git a/app/schema/UserSchema.php b/app/schema/UserSchema.php index aa919d21..4c443f4e 100644 --- a/app/schema/UserSchema.php +++ b/app/schema/UserSchema.php @@ -15,6 +15,7 @@ use vhs\database\types\Type; use vhs\domain\Schema; +/** @typescript */ class UserSchema extends Schema { public static function init() { $table = new Table('users'); diff --git a/app/schema/WebHookPrivilegeSchema.php b/app/schema/WebHookPrivilegeSchema.php index d83c5903..1c8e394d 100644 --- a/app/schema/WebHookPrivilegeSchema.php +++ b/app/schema/WebHookPrivilegeSchema.php @@ -14,6 +14,7 @@ use vhs\database\types\Type; use vhs\domain\Schema; +/** @typescript */ class WebHookPrivilegeSchema extends Schema { public static function init() { $table = new Table('webhookprivileges'); diff --git a/app/schema/WebHookSchema.php b/app/schema/WebHookSchema.php index 2d46bdb8..c572cb55 100644 --- a/app/schema/WebHookSchema.php +++ b/app/schema/WebHookSchema.php @@ -15,6 +15,7 @@ use vhs\database\types\Type; use vhs\domain\Schema; +/** @typescript */ class WebHookSchema extends Schema { /** * @return Table diff --git a/app/security/ColumnPrivilegedAccess.php b/app/security/ColumnPrivilegedAccess.php index c0401f78..a838fd10 100644 --- a/app/security/ColumnPrivilegedAccess.php +++ b/app/security/ColumnPrivilegedAccess.php @@ -12,6 +12,7 @@ use vhs\database\Column; use vhs\database\Table; +/** @typescript */ class ColumnPrivilegedAccess extends PrivilegedAccess { /** @var Column */ private $column; diff --git a/app/security/HttpApiAuthModule.php b/app/security/HttpApiAuthModule.php index 9acdc5b5..4be3d99c 100644 --- a/app/security/HttpApiAuthModule.php +++ b/app/security/HttpApiAuthModule.php @@ -15,6 +15,7 @@ use vhs\web\HttpServer; use vhs\web\IHttpModule; +/** @typescript */ class HttpApiAuthModule implements IHttpModule { private $authorizer; diff --git a/app/security/PasswordUtil.php b/app/security/PasswordUtil.php index 1f6e6a19..399fcfa6 100644 --- a/app/security/PasswordUtil.php +++ b/app/security/PasswordUtil.php @@ -17,6 +17,7 @@ define('PASSWORD_DEFAULT', PASSWORD_BCRYPT); } +/** @typescript */ class PasswordUtil { public static function check($password, $hash) { return password_verify(sha1($password), $hash); @@ -28,7 +29,7 @@ public static function check($password, $hash) { * * @param any $testVal * - * @return boolean + * @return bool */ public static function checkValidString($testVal) { gettype($testVal) === 'string' && $testVal !== ''; diff --git a/app/security/PrivilegedAccess.php b/app/security/PrivilegedAccess.php index 7f8080b2..158b4a99 100644 --- a/app/security/PrivilegedAccess.php +++ b/app/security/PrivilegedAccess.php @@ -14,6 +14,7 @@ use vhs\database\Table; use vhs\security\CurrentUser; +/** @typescript */ class PrivilegedAccess implements IAccess { /** @var IAccess[] */ protected $checks; diff --git a/app/security/TablePrivilegedAccess.php b/app/security/TablePrivilegedAccess.php index dd5ef136..ea82303b 100644 --- a/app/security/TablePrivilegedAccess.php +++ b/app/security/TablePrivilegedAccess.php @@ -12,6 +12,7 @@ use vhs\database\Column; use vhs\database\Table; +/** @typescript */ class TablePrivilegedAccess extends PrivilegedAccess { /** @var string[] */ private $privileges; diff --git a/app/security/TokenPrincipal.php b/app/security/TokenPrincipal.php index dcde6cd1..b6c2ba42 100644 --- a/app/security/TokenPrincipal.php +++ b/app/security/TokenPrincipal.php @@ -11,6 +11,7 @@ use vhs\security\IPrincipal; +/** @typescript */ class TokenPrincipal implements IPrincipal { private $grants; private $id; diff --git a/app/security/UserPrincipal.php b/app/security/UserPrincipal.php index c2983593..01f55675 100644 --- a/app/security/UserPrincipal.php +++ b/app/security/UserPrincipal.php @@ -11,6 +11,7 @@ use vhs\security\IPrincipal; +/** @typescript */ class UserPrincipal implements IPrincipal, \JsonSerializable { private $grants; private $id; diff --git a/app/security/credentials/ApiCredentials.php b/app/security/credentials/ApiCredentials.php index 9a857a16..35de9b5b 100644 --- a/app/security/credentials/ApiCredentials.php +++ b/app/security/credentials/ApiCredentials.php @@ -9,6 +9,7 @@ namespace app\security\credentials; +/** @typescript */ class ApiCredentials extends TokenCredentials { public function getType() { return 'api'; diff --git a/app/security/credentials/PinCredentials.php b/app/security/credentials/PinCredentials.php index ff5ea829..793cc7da 100644 --- a/app/security/credentials/PinCredentials.php +++ b/app/security/credentials/PinCredentials.php @@ -9,6 +9,7 @@ namespace app\security\credentials; +/** @typescript */ class PinCredentials extends TokenCredentials { public function getType() { return 'pin'; diff --git a/app/security/credentials/RfidCredentials.php b/app/security/credentials/RfidCredentials.php index 66797fbb..138885ed 100644 --- a/app/security/credentials/RfidCredentials.php +++ b/app/security/credentials/RfidCredentials.php @@ -9,6 +9,7 @@ namespace app\security\credentials; +/** @typescript */ class RfidCredentials extends TokenCredentials { public function getType() { return 'rfid'; diff --git a/app/security/credentials/TokenCredentials.php b/app/security/credentials/TokenCredentials.php index f3dcc2fe..ff1b61bb 100644 --- a/app/security/credentials/TokenCredentials.php +++ b/app/security/credentials/TokenCredentials.php @@ -11,6 +11,7 @@ use vhs\security\ICredentials; +/** @typescript */ abstract class TokenCredentials implements ICredentials { private $token; diff --git a/app/security/oauth/OAuthHelper.php b/app/security/oauth/OAuthHelper.php index cd4b7993..27b763d3 100644 --- a/app/security/oauth/OAuthHelper.php +++ b/app/security/oauth/OAuthHelper.php @@ -17,6 +17,7 @@ use vhs\security\CurrentUser; use vhs\web\HttpServer; +/** @typescript */ class OAuthHelper { /** @var AbstractProvider */ private $provider; diff --git a/app/security/oauth/modules/GithubOAuthHandler.php b/app/security/oauth/modules/GithubOAuthHandler.php index 1d0e2cf1..8a33b6a4 100644 --- a/app/security/oauth/modules/GithubOAuthHandler.php +++ b/app/security/oauth/modules/GithubOAuthHandler.php @@ -13,6 +13,7 @@ use League\OAuth2\Client\Provider\Github; use vhs\web\HttpServer; +/** @typescript */ class GithubOAuthHandler extends OAuthHandler { public function getUrl() { return '/oauth/github.php'; @@ -37,7 +38,7 @@ public function handle(HttpServer $server) { if (!isset($_GET['code'])) { $oauthHelper->requestAuth(); } else { - /** @var GithubResourceOwner | null */ + /** @var GithubResourceOwner|null */ $userDetails = $oauthHelper->processToken(); } diff --git a/app/security/oauth/modules/GoogleOAuthHandler.php b/app/security/oauth/modules/GoogleOAuthHandler.php index 3bd6ab0d..c04a2c15 100644 --- a/app/security/oauth/modules/GoogleOAuthHandler.php +++ b/app/security/oauth/modules/GoogleOAuthHandler.php @@ -13,6 +13,7 @@ use League\OAuth2\Client\Provider\Google; use vhs\web\HttpServer; +/** @typescript */ class GoogleOAuthHandler extends OAuthHandler { public function getUrl() { return '/oauth/google.php'; @@ -37,7 +38,7 @@ public function handle(HttpServer $server) { if (!isset($_GET['code'])) { $oauthHelper->requestAuth(); } else { - /** @var GoogleUser | null */ + /** @var GoogleUser|null */ $userDetails = $oauthHelper->processToken(); } diff --git a/app/security/oauth/modules/OAuthHandler.php b/app/security/oauth/modules/OAuthHandler.php index 3521f165..484f1312 100644 --- a/app/security/oauth/modules/OAuthHandler.php +++ b/app/security/oauth/modules/OAuthHandler.php @@ -11,6 +11,7 @@ use vhs\web\HttpRequestHandler; +/** @typescript */ abstract class OAuthHandler extends HttpRequestHandler { abstract public function getUrl(); } diff --git a/app/security/oauth/modules/OAuthHandlerModule.php b/app/security/oauth/modules/OAuthHandlerModule.php index a86c3204..0282a87a 100644 --- a/app/security/oauth/modules/OAuthHandlerModule.php +++ b/app/security/oauth/modules/OAuthHandlerModule.php @@ -11,6 +11,7 @@ use vhs\web\modules\HttpRequestHandlerModule; +/** @typescript */ class OAuthHandlerModule extends HttpRequestHandlerModule { /** * @return OAuthHandlerModule diff --git a/app/security/oauth/modules/SlackOAuthHandler.php b/app/security/oauth/modules/SlackOAuthHandler.php index 39223820..d1e7ff41 100644 --- a/app/security/oauth/modules/SlackOAuthHandler.php +++ b/app/security/oauth/modules/SlackOAuthHandler.php @@ -13,6 +13,7 @@ use app\security\oauth\providers\slack\Slack; use vhs\web\HttpServer; +/** @typescript */ class SlackOAuthHandler extends OAuthHandler { public function getUrl() { return '/oauth/slack.php'; @@ -42,7 +43,7 @@ public function handle(HttpServer $server) { if (!isset($_GET['code'])) { $oauthHelper->requestAuth(['team' => OAUTH_SLACK_TEAM, 'user_scope' => 'identify']); } else { - /** @var SlackResourceOwner | null */ + /** @var SlackResourceOwner|null */ $userDetails = $oauthHelper->processToken(); } diff --git a/app/security/oauth/providers/slack/Slack.php b/app/security/oauth/providers/slack/Slack.php index b652b337..c03f694a 100644 --- a/app/security/oauth/providers/slack/Slack.php +++ b/app/security/oauth/providers/slack/Slack.php @@ -16,6 +16,7 @@ use League\OAuth2\Client\Token\AccessToken; use Psr\Http\Message\ResponseInterface; +/** @typescript */ class Slack extends AbstractProvider { public const ACCESS_TOKEN_RESOURCE_OWNER_ID = 'authed_user'; diff --git a/app/security/oauth/providers/slack/SlackProviderException.php b/app/security/oauth/providers/slack/SlackProviderException.php index 4c121621..8da7b297 100644 --- a/app/security/oauth/providers/slack/SlackProviderException.php +++ b/app/security/oauth/providers/slack/SlackProviderException.php @@ -5,6 +5,7 @@ use League\OAuth2\Client\Provider\Exception\IdentityProviderException; use Psr\Http\Message\ResponseInterface; +/** @typescript */ class SlackProviderException extends IdentityProviderException { public static function fromResponse(ResponseInterface $response, $message = null) { throw new static($message, $response->getStatusCode(), (string) $response->getBody()); diff --git a/app/security/oauth/providers/slack/SlackUser.php b/app/security/oauth/providers/slack/SlackUser.php index f4efa860..c3e4c0be 100644 --- a/app/security/oauth/providers/slack/SlackUser.php +++ b/app/security/oauth/providers/slack/SlackUser.php @@ -4,6 +4,7 @@ use League\OAuth2\Client\Provider\ResourceOwnerInterface; +/** @typescript */ class SlackUser implements ResourceOwnerInterface { protected $response; diff --git a/app/services/AuthService.php b/app/services/AuthService.php index e220a08c..d0754637 100644 --- a/app/services/AuthService.php +++ b/app/services/AuthService.php @@ -30,6 +30,7 @@ use vhs\security\UserPassCredentials; use vhs\services\Service; +/** @typescript */ class AuthService extends Service implements IAuthService1 { /** * Check to see if the user pin and account is valid. @@ -257,7 +258,7 @@ public function CheckService($service, $id) { * * @param $username * - * @return boolean + * @return bool */ public function CheckUsername($username) { return Database::exists( @@ -268,10 +269,6 @@ public function CheckUsername($username) { /** * @permission administrator * - * @param $page - * @param $size - * @param $columns - * @param $order * @param $filters * * @return mixed @@ -487,9 +484,9 @@ public function ListClients($page, $size, $columns, $order, $filters) { * @param $order * @param $filters * - * @return mixed - * * @throws \Exception + * + * @return mixed */ public function ListUserAccessLog($userid, $page, $size, $columns, $order, $filters) { $filters = $this->AddUserIDToFilters($userid, $filters); @@ -507,9 +504,9 @@ public function ListUserAccessLog($userid, $page, $size, $columns, $order, $filt * @param $order * @param $filters * - * @return array - * * @throws \Exception + * + * @return array */ public function ListUserClients($userid, $page, $size, $columns, $order, $filters) { $userService = new UserService(); diff --git a/app/services/EventService.php b/app/services/EventService.php index 65b77329..da59641c 100644 --- a/app/services/EventService.php +++ b/app/services/EventService.php @@ -18,6 +18,7 @@ use vhs\security\CurrentUser; use vhs\services\Service; +/** @typescript */ class EventService extends Service implements IEventService1 { /** * @permission administrator diff --git a/app/services/KeyService.php b/app/services/KeyService.php index 04bcb969..ee38732e 100644 --- a/app/services/KeyService.php +++ b/app/services/KeyService.php @@ -22,6 +22,7 @@ use vhs\security\exceptions\UnauthorizedException; use vhs\services\Service; +/** @typescript */ class KeyService extends Service implements IKeyService1 { /** * @permission administrator|user @@ -56,14 +57,17 @@ public function GenerateUserKey($userid, $type, $value, $notes) { switch ($type) { case 'rfid': $key->key = $value; + break; case 'pin': $nextpinid = Database::scalar(Query::Select(SettingsSchema::Table(), SettingsSchema::Columns()->nextpinid)); $key->key = sprintf('%04s', $nextpinid) . '|' . sprintf('%04s', rand(0, 9999)); $key->privileges->add(Privilege::findByCode('inherit')); + break; case 'api': $key->key = bin2hex(openssl_random_pseudo_bytes(32)); + break; default: throw new InvalidInputException('Unsupported key type'); diff --git a/app/services/MemberCardService.php b/app/services/MemberCardService.php index f2c6de7b..79dfbdff 100644 --- a/app/services/MemberCardService.php +++ b/app/services/MemberCardService.php @@ -21,6 +21,7 @@ use vhs\domain\Filter; use vhs\security\exceptions\UnauthorizedException; +/** @typescript */ class MemberCardService implements IMemberCardService1 { /** * @permission administrator @@ -64,9 +65,9 @@ public function GetGenuineCardDetails($key) { * @param $email * @param $key * - * @return mixed - * * @throws \Exception + * + * @return mixed */ public function IssueCard($email, $key) { $users = User::findByPaymentEmail($email); @@ -142,9 +143,9 @@ public function ListGenuineCards($page, $size, $columns, $order, $filters) { * @param $order * @param $filters * - * @return mixed - * * @throws \Exception + * + * @return mixed */ public function ListUserGenuineCards($userid, $page, $size, $columns, $order, $filters) { $userService = new UserService(); @@ -176,9 +177,9 @@ public function ListUserGenuineCards($userid, $page, $size, $columns, $order, $f * @param $key * @param $notes * - * @return GenuineCard - * * @throws \Exception + * + * @return GenuineCard */ public function RegisterGenuineCard($key, $notes) { $keys = GenuineCard::findByKey($key); @@ -203,9 +204,9 @@ public function RegisterGenuineCard($key, $notes) { * @param $key * @param $active * - * @return mixed - * * @throws \Exception + * + * @return mixed */ public function UpdateGenuineCardActive($key, $active) { if (!$this->ValidateGenuineCard($key)) { diff --git a/app/services/MembershipService.php b/app/services/MembershipService.php index fd422d7e..1adaae9e 100644 --- a/app/services/MembershipService.php +++ b/app/services/MembershipService.php @@ -7,6 +7,7 @@ use app\domain\Privilege; use vhs\services\Service; +/** @typescript */ class MembershipService extends Service implements IMembershipService1 { /** * @permission administrator @@ -25,10 +26,9 @@ public function CountMemberships($filters) { * @param $title * @param $description * @param $price - * @param $days - * @param $private - * @param $active * @param $code + * @param $days + * @param $period * * @return mixed */ @@ -73,6 +73,9 @@ public function ListMemberships($page, $size, $columns, $order, $filters) { /** * @permission administrator + * + * @param $membershipId + * @param $privileges */ public function PutPrivileges($membershipId, $privileges) { $membership = $this->Get($membershipId); @@ -99,6 +102,14 @@ public function PutPrivileges($membershipId, $privileges) { /** * @permission administrator * + * @param $membershipId + * @param $title + * @param $description + * @param $price + * @param $code + * @param $days + * @param $period + * * @return mixed */ public function Update($membershipId, $title, $description, $price, $code, $days, $period) { @@ -119,6 +130,9 @@ public function Update($membershipId, $title, $description, $price, $code, $days /** * @permission administrator * + * @param $membershipId + * @param $active + * * @return mixed */ public function UpdateActive($membershipId, $active) { @@ -132,6 +146,9 @@ public function UpdateActive($membershipId, $active) { /** * @permission administrator * + * @param $membershipId + * @param $private + * * @return mixed */ public function UpdatePrivate($membershipId, $private) { @@ -145,6 +162,9 @@ public function UpdatePrivate($membershipId, $private) { /** * @permission administrator * + * @param $membershipId + * @param $recurring + * * @return mixed */ public function UpdateRecurring($membershipId, $recurring) { @@ -158,6 +178,9 @@ public function UpdateRecurring($membershipId, $recurring) { /** * @permission administrator * + * @param $membershipId + * @param $trial + * * @return mixed */ public function UpdateTrial($membershipId, $trial) { diff --git a/app/services/MetricService.php b/app/services/MetricService.php index 32ac07d3..e146c312 100644 --- a/app/services/MetricService.php +++ b/app/services/MetricService.php @@ -13,6 +13,7 @@ use vhs\database\wheres\Where; use vhs\services\Service; +/** @typescript */ class MetricService extends Service implements IMetricService1 { /** * Get the total new members recorded in the date range. @@ -301,15 +302,19 @@ public function GetRevenue($start_range, $end_range, $group) { switch ($group) { case 'day': $grouping = $grouping->format('Y-m-d'); + break; case 'month': $grouping = $grouping->format('Y-m'); + break; case 'year': $grouping = $grouping->format('Y'); + break; default: $grouping = 'all'; + break; } @@ -375,15 +380,19 @@ private function countByDate($arr, $date, $group) { switch ($group) { case 'day': $grouping = $grouping->format('Y-m-d'); + break; case 'month': $grouping = $grouping->format('Y-m'); + break; case 'year': $grouping = $grouping->format('Y'); + break; default: $grouping = 'all'; + break; } diff --git a/app/services/PinService.php b/app/services/PinService.php index 80c02989..c806034c 100644 --- a/app/services/PinService.php +++ b/app/services/PinService.php @@ -21,6 +21,7 @@ use vhs\security\exceptions\UnauthorizedException; use vhs\services\Service; +/** @typescript */ class PinService extends Service implements IPinService1 { /** * @permission door @@ -164,6 +165,7 @@ public function UpdatePin($keyid, $pin) { * * @permission administrator|user * + * @param $userid * @param $pin * * @return mixed diff --git a/app/services/PreferenceService.php b/app/services/PreferenceService.php index c85ba5fe..0113c0bc 100644 --- a/app/services/PreferenceService.php +++ b/app/services/PreferenceService.php @@ -15,6 +15,7 @@ use vhs\security\CurrentUser; use vhs\services\Service; +/** @typescript */ class PreferenceService extends Service implements IPreferenceService1 { /** * @permission administrator @@ -58,7 +59,7 @@ public function GetAllSystemPreferences() { /** * @permission administrator * - * @param $key + * @param $id * * @return mixed */ @@ -86,6 +87,8 @@ public function ListSystemPreferences($page, $size, $columns, $order, $filters) * * @param $key * @param $value + * @param $enabled + * @param $notes * * @return mixed */ @@ -174,6 +177,8 @@ public function SystemPreference($key) { * @param $id * @param $key * @param $value + * @param $enabled + * @param $notes * * @return mixed */ diff --git a/app/services/StripeEventService.php b/app/services/StripeEventService.php index d3a57ae8..65884be7 100644 --- a/app/services/StripeEventService.php +++ b/app/services/StripeEventService.php @@ -11,6 +11,7 @@ use app\domain\StripeEvent; use vhs\services\Service; +/** @typescript */ class StripeEventService extends Service implements IStripeEventService1 { /** * @permission administrator @@ -26,7 +27,7 @@ public function CountRecords($filters) { /** * @permission administrator * - * @param $ipnId + * @param $eventId * * @return mixed */ diff --git a/app/services/UserService.php b/app/services/UserService.php index 5842bcca..c410c272 100644 --- a/app/services/UserService.php +++ b/app/services/UserService.php @@ -23,6 +23,7 @@ use vhs\security\CurrentUser; use vhs\services\Service; +/** @typescript */ class UserService extends Service implements IUserService1 { /** * @permission administrator|grants @@ -657,17 +658,21 @@ public function UpdateStatus($userid, $status) { case 'y': case 'true': $status = 'y'; + break; case 'pending': case 't': $status = 't'; + break; case 'banned': case 'b': $status = 'b'; + break; default: $status = 'n'; + break; } diff --git a/app/services/WebHookService.php b/app/services/WebHookService.php index 7ddef791..7d49c50a 100644 --- a/app/services/WebHookService.php +++ b/app/services/WebHookService.php @@ -18,6 +18,7 @@ use vhs\security\exceptions\UnauthorizedException; use vhs\services\Service; +/** @typescript */ class WebHookService extends Service implements IWebHookService1 { /** * @permission administrator|webhook @@ -56,9 +57,9 @@ public function CountUserHooks($userid, $filters) { * @param $method * @param $eventid * - * @return mixed - * * @throws UnauthorizedException + * + * @return mixed */ public function CreateHook($name, $description, $enabled, $url, $translation, $headers, $method, $eventid) { $event = (new EventService($this->context))->GetEvent($eventid); @@ -191,9 +192,9 @@ public function ListHooks($page, $size, $columns, $order, $filters) { * @param $order * @param $filters * - * @return mixed - * * @throws \Exception + * + * @return mixed */ public function ListUserHooks($userid, $page, $size, $columns, $order, $filters) { $filters = $this->AddUserIDToFilters($userid, $filters); diff --git a/tests/ConstantsTest.php b/tests/ConstantsTest.php index 48753530..80efd9b9 100644 --- a/tests/ConstantsTest.php +++ b/tests/ConstantsTest.php @@ -12,6 +12,7 @@ use app\constants\StringLiterals; use PHPUnit\Framework\TestCase; +/** @typescript */ class ConstantsTest extends TestCase { public function test_DateTime_DATE_TIME_MIDNIGHT() { $this->assertEquals('Y-m-d 00:00:00', DateTime::DATE_TIME_MIDNIGHT); diff --git a/tests/DomainTest.php b/tests/DomainTest.php index b2dd3da2..75dc2d54 100644 --- a/tests/DomainTest.php +++ b/tests/DomainTest.php @@ -17,6 +17,7 @@ use vhs\domain\validations\ValidationFailure; use vhs\domain\validations\ValidationResults; +/** @typescript */ class ExampleSchema extends Schema { /** * @return Table @@ -35,6 +36,7 @@ public static function init() { } } +/** @typescript */ class ExampleDomain extends Domain { public static function Define() { ExampleDomain::Schema(ExampleSchema::Type()); @@ -63,6 +65,7 @@ public function validate(ValidationResults &$results) { } } +/** @typescript */ class DomainTest extends TestCase { private static $inMemoryEngine; private static $logger; diff --git a/tests/LimitTest.php b/tests/LimitTest.php index 718e5c43..619e85b5 100644 --- a/tests/LimitTest.php +++ b/tests/LimitTest.php @@ -17,6 +17,7 @@ use vhs\Logger; use vhs\loggers\ConsoleLogger; +/** @typescript */ class LimitTest extends TestCase { /** @var Logger */ private static $logger; diff --git a/tests/ServiceTest.php b/tests/ServiceTest.php index 3e5251a0..97b25d9e 100644 --- a/tests/ServiceTest.php +++ b/tests/ServiceTest.php @@ -12,6 +12,7 @@ use vhs\services\ServiceHandler; use vhs\services\ServiceRegistry; +/** @typescript */ class PermPrincipal implements \vhs\security\IPrincipal { private $perms; @@ -52,6 +53,7 @@ public function __toString() { } } +/** @typescript */ class ServiceTest extends TestCase { public function test_AllPermMethod() { \vhs\security\CurrentUser::setPrincipal(new PermPrincipal('perm1', 'perm2', 'perm3')); diff --git a/tests/WhereTest.php b/tests/WhereTest.php index 10c6d243..a3a67735 100644 --- a/tests/WhereTest.php +++ b/tests/WhereTest.php @@ -16,6 +16,7 @@ use vhs\Logger; use vhs\loggers\ConsoleLogger; +/** @typescript */ class TestSchema extends Schema { /** * @return Table @@ -30,6 +31,7 @@ public static function init() { } } +/** @typescript */ class WhereTest extends TestCase { /** @var Logger */ private static $logger; diff --git a/tests/domain/Enchantment.php b/tests/domain/Enchantment.php index b10982ee..d78b4180 100644 --- a/tests/domain/Enchantment.php +++ b/tests/domain/Enchantment.php @@ -13,6 +13,7 @@ use vhs\domain\Domain; use vhs\domain\validations\ValidationResults; +/** @typescript */ class Enchantment extends Domain { public static function Define() { Enchantment::Schema(EnchantmentSchema::Type()); diff --git a/tests/domain/Knight.php b/tests/domain/Knight.php index 689a0361..962e77cf 100644 --- a/tests/domain/Knight.php +++ b/tests/domain/Knight.php @@ -13,6 +13,7 @@ use vhs\domain\Domain; use vhs\domain\validations\ValidationResults; +/** @typescript */ class Knight extends Domain { public static function Define() { Knight::Schema(KnightSchema::Type()); diff --git a/tests/domain/Ring.php b/tests/domain/Ring.php index 71240f65..65f28d94 100644 --- a/tests/domain/Ring.php +++ b/tests/domain/Ring.php @@ -13,6 +13,7 @@ use vhs\domain\Domain; use vhs\domain\validations\ValidationResults; +/** @typescript */ class Ring extends Domain { public static function Define() { Ring::Schema(RingSchema::Type()); diff --git a/tests/domain/Sword.php b/tests/domain/Sword.php index f5c61eb8..364d2506 100644 --- a/tests/domain/Sword.php +++ b/tests/domain/Sword.php @@ -14,6 +14,7 @@ use vhs\domain\Domain; use vhs\domain\validations\ValidationResults; +/** @typescript */ class Sword extends Domain { public static function Define() { Sword::Schema(SwordSchema::Type()); diff --git a/tests/endpoints/native/TestService1.svc.php b/tests/endpoints/native/TestService1.svc.php index f1e89ea3..9c294dff 100644 --- a/tests/endpoints/native/TestService1.svc.php +++ b/tests/endpoints/native/TestService1.svc.php @@ -13,6 +13,7 @@ use vhs\services\endpoints\NativeEndpoint; use vhs\services\ServiceContext; +/** @typescript */ class TestService1 extends NativeEndpoint { public function __construct() { parent::__construct(new TestService(new ServiceContext($this))); diff --git a/tests/endpoints/web/TestService1.svc.php b/tests/endpoints/web/TestService1.svc.php index 9331a8ba..95bbda7e 100644 --- a/tests/endpoints/web/TestService1.svc.php +++ b/tests/endpoints/web/TestService1.svc.php @@ -13,6 +13,7 @@ use vhs\services\endpoints\JsonEndpoint; use vhs\services\ServiceContext; +/** @typescript */ class TestService1 extends JsonEndpoint { public function __construct() { parent::__construct(new TestService(new ServiceContext($this))); diff --git a/tests/schema/EnchantmentSchema.php b/tests/schema/EnchantmentSchema.php index 132eabe3..88fc6a88 100644 --- a/tests/schema/EnchantmentSchema.php +++ b/tests/schema/EnchantmentSchema.php @@ -14,6 +14,7 @@ use vhs\database\types\Type; use vhs\domain\Schema; +/** @typescript */ class EnchantmentSchema extends Schema { /** * @return Table diff --git a/tests/schema/KnightSchema.php b/tests/schema/KnightSchema.php index 9e63eab8..e150d1da 100644 --- a/tests/schema/KnightSchema.php +++ b/tests/schema/KnightSchema.php @@ -14,6 +14,7 @@ use vhs\database\types\Type; use vhs\domain\Schema; +/** @typescript */ class KnightSchema extends Schema { /** * @return Table diff --git a/tests/schema/RingSchema.php b/tests/schema/RingSchema.php index aa1857d1..a76a7c58 100644 --- a/tests/schema/RingSchema.php +++ b/tests/schema/RingSchema.php @@ -14,6 +14,7 @@ use vhs\database\types\Type; use vhs\domain\Schema; +/** @typescript */ class RingSchema extends Schema { /** * @return Table diff --git a/tests/schema/SwordEnchantmentsSchema.php b/tests/schema/SwordEnchantmentsSchema.php index 3bb233dc..8c37b232 100644 --- a/tests/schema/SwordEnchantmentsSchema.php +++ b/tests/schema/SwordEnchantmentsSchema.php @@ -14,6 +14,7 @@ use vhs\database\types\Type; use vhs\domain\Schema; +/** @typescript */ class SwordEnchantmentsSchema extends Schema { /** * @return Table diff --git a/tests/schema/SwordSchema.php b/tests/schema/SwordSchema.php index 8a0575bd..81bbc1ab 100644 --- a/tests/schema/SwordSchema.php +++ b/tests/schema/SwordSchema.php @@ -14,6 +14,7 @@ use vhs\database\types\Type; use vhs\domain\Schema; +/** @typescript */ class SwordSchema extends Schema { /** * @return Table diff --git a/tests/services/TestService.php b/tests/services/TestService.php index 6c70af94..197b0e9a 100644 --- a/tests/services/TestService.php +++ b/tests/services/TestService.php @@ -12,6 +12,7 @@ use tests\contracts\ITestService1; use vhs\services\Service; +/** @typescript */ class TestService extends Service implements ITestService1 { /** * @permission perm1 diff --git a/vhs/Logger.php b/vhs/Logger.php index 35f0eef7..fe35fbcc 100644 --- a/vhs/Logger.php +++ b/vhs/Logger.php @@ -9,6 +9,7 @@ namespace vhs; +/** @typescript */ abstract class Logger { abstract public function log($message); diff --git a/vhs/Singleton.php b/vhs/Singleton.php index e6fec9be..0d3c22a1 100644 --- a/vhs/Singleton.php +++ b/vhs/Singleton.php @@ -9,6 +9,7 @@ namespace vhs; +/** @typescript */ abstract class Singleton { protected function __construct() { } diff --git a/vhs/SplClassLoader.php b/vhs/SplClassLoader.php index 6172a36a..e47a2c3a 100644 --- a/vhs/SplClassLoader.php +++ b/vhs/SplClassLoader.php @@ -2,6 +2,7 @@ namespace vhs; +/** @typescript */ class SplClassLoaderItem { public $fileExtension; public $includePath; @@ -14,6 +15,7 @@ public function __construct($namespace = null, $includePath = null, $fileExtensi } } +/** @typescript */ class SplClassLoader { private $_items = []; private $_namespaceSeparator = '\\'; diff --git a/vhs/database/Column.php b/vhs/database/Column.php index 2d35aaa1..7d406a43 100644 --- a/vhs/database/Column.php +++ b/vhs/database/Column.php @@ -11,6 +11,7 @@ use vhs\database\types\Type; +/** @typescript */ class Column extends Element implements \Serializable, \JsonSerializable { public $name; public $serializable; @@ -26,6 +27,7 @@ public function __construct(Table &$table, $name, Type $type, $serializable = tr /** * @param IGenerator $generator + * @param mixed|null $value * * @return mixed */ diff --git a/vhs/database/Columns.php b/vhs/database/Columns.php index 2b9280dd..70eef585 100644 --- a/vhs/database/Columns.php +++ b/vhs/database/Columns.php @@ -11,6 +11,7 @@ use vhs\Cloneable; +/** @typescript */ class Columns { use Cloneable; /** @var Column[] */ diff --git a/vhs/database/ConnectionInfo.php b/vhs/database/ConnectionInfo.php index 2546dacb..b4d3260e 100644 --- a/vhs/database/ConnectionInfo.php +++ b/vhs/database/ConnectionInfo.php @@ -9,6 +9,7 @@ namespace vhs\database; +/** @typescript */ abstract class ConnectionInfo { abstract public function getDetails(); diff --git a/vhs/database/Database.php b/vhs/database/Database.php index 9db0e0ce..8a078c4c 100644 --- a/vhs/database/Database.php +++ b/vhs/database/Database.php @@ -22,6 +22,7 @@ use vhs\loggers\SilentLogger; use vhs\Singleton; +/** @typescript */ class Database extends Singleton { /** @var Engine */ private $engine; @@ -43,6 +44,7 @@ public function __destruct() { public static function arbitrary($command) { /** @var Database $db */ $db = self::getInstance(); + return $db->invokeEngine(function () use ($db, $command) { //TODO warn that this is not ideal return $db->engine->arbitrary($command); @@ -52,6 +54,7 @@ public static function arbitrary($command) { public static function count(QueryCount $query) { /** @var Database $db */ $db = self::getInstance(); + return $db->invokeEngine(function () use ($db, $query) { return $db->engine->count($query); }); @@ -64,6 +67,7 @@ public static function DateFormat() { public static function delete(QueryDelete $query) { /** @var Database $db */ $db = self::getInstance(); + return $db->invokeEngine(function () use ($db, $query) { return $db->engine->delete($query); }); @@ -72,6 +76,7 @@ public static function delete(QueryDelete $query) { public static function exists(QuerySelect $query) { /** @var Database $db */ $db = self::getInstance(); + return $db->invokeEngine(function () use ($db, $query) { return $db->engine->exists($query); }); @@ -80,6 +85,7 @@ public static function exists(QuerySelect $query) { public static function insert(QueryInsert $query) { /** @var Database $db */ $db = self::getInstance(); + return $db->invokeEngine(function () use ($db, $query) { return $db->engine->insert($query); }); @@ -88,6 +94,7 @@ public static function insert(QueryInsert $query) { public static function scalar(QuerySelect $query) { /** @var Database $db */ $db = self::getInstance(); + return $db->invokeEngine(function () use ($db, $query) { return $db->engine->scalar($query); }); @@ -96,6 +103,7 @@ public static function scalar(QuerySelect $query) { public static function select(QuerySelect $query) { /** @var Database $db */ $db = self::getInstance(); + return $db->invokeEngine(function () use ($db, $query) { return $db->engine->select($query); }); @@ -124,6 +132,7 @@ public static function setRethrow($rethrow) { public static function update(QueryUpdate $query) { /** @var Database $db */ $db = self::getInstance(); + return $db->invokeEngine(function () use ($db, $query) { return $db->engine->update($query); }); diff --git a/vhs/database/Element.php b/vhs/database/Element.php index 92b4e35d..e2d32d60 100644 --- a/vhs/database/Element.php +++ b/vhs/database/Element.php @@ -11,6 +11,7 @@ use vhs\Cloneable; +/** @typescript */ abstract class Element implements IGeneratable { use Cloneable; diff --git a/vhs/database/Engine.php b/vhs/database/Engine.php index 6d34819e..bbcc704b 100644 --- a/vhs/database/Engine.php +++ b/vhs/database/Engine.php @@ -11,6 +11,7 @@ use vhs\Logger; +/** @typescript */ abstract class Engine implements IDataInterface { abstract public function connect(); diff --git a/vhs/database/IColumnGenerator.php b/vhs/database/IColumnGenerator.php index 1b21d0fa..11db769e 100644 --- a/vhs/database/IColumnGenerator.php +++ b/vhs/database/IColumnGenerator.php @@ -9,6 +9,7 @@ namespace vhs\database; +/** @typescript */ interface IColumnGenerator extends IGenerator { public function generateColumn(Column $column); } diff --git a/vhs/database/IConverter.php b/vhs/database/IConverter.php index 895a7711..36db7a66 100644 --- a/vhs/database/IConverter.php +++ b/vhs/database/IConverter.php @@ -9,5 +9,6 @@ namespace vhs\database; +/** @typescript */ interface IConverter { } diff --git a/vhs/database/IConvertible.php b/vhs/database/IConvertible.php index cd51b4f5..5874e208 100644 --- a/vhs/database/IConvertible.php +++ b/vhs/database/IConvertible.php @@ -9,6 +9,7 @@ namespace vhs\database; +/** @typescript */ interface IConvertible { /** * @param IConverter $converter diff --git a/vhs/database/IDataInterface.php b/vhs/database/IDataInterface.php index 3b8e715d..fb7788cd 100644 --- a/vhs/database/IDataInterface.php +++ b/vhs/database/IDataInterface.php @@ -16,6 +16,7 @@ use vhs\database\queries\QuerySelect; use vhs\database\queries\QueryUpdate; +/** @typescript */ interface IDataInterface { public static function DateFormat(); diff --git a/vhs/database/IGeneratable.php b/vhs/database/IGeneratable.php index 164e6413..0d047db3 100644 --- a/vhs/database/IGeneratable.php +++ b/vhs/database/IGeneratable.php @@ -9,6 +9,7 @@ namespace vhs\database; +/** @typescript */ interface IGeneratable { /** * @param IGenerator $generator diff --git a/vhs/database/IGenerator.php b/vhs/database/IGenerator.php index c118bc56..9902bfd8 100644 --- a/vhs/database/IGenerator.php +++ b/vhs/database/IGenerator.php @@ -9,5 +9,6 @@ namespace vhs\database; +/** @typescript */ interface IGenerator { } diff --git a/vhs/database/IOnGenerator.php b/vhs/database/IOnGenerator.php index 71e7b045..a5ba04c1 100644 --- a/vhs/database/IOnGenerator.php +++ b/vhs/database/IOnGenerator.php @@ -9,6 +9,7 @@ namespace vhs\database; +/** @typescript */ interface IOnGenerator extends IGenerator { public function generateOn(On $on); } diff --git a/vhs/database/ITableGenerator.php b/vhs/database/ITableGenerator.php index 0723eae9..2f760614 100644 --- a/vhs/database/ITableGenerator.php +++ b/vhs/database/ITableGenerator.php @@ -9,6 +9,7 @@ namespace vhs\database; +/** @typescript */ interface ITableGenerator extends IGenerator { public function generateTable(Table $ascending); } diff --git a/vhs/database/On.php b/vhs/database/On.php index 89fa74fe..36c28d24 100644 --- a/vhs/database/On.php +++ b/vhs/database/On.php @@ -11,6 +11,7 @@ use vhs\database\wheres\Where; +/** @typescript */ class On extends Element { /** @var Where */ public $where; diff --git a/vhs/database/Table.php b/vhs/database/Table.php index 18862bbf..b2e59ea7 100644 --- a/vhs/database/Table.php +++ b/vhs/database/Table.php @@ -15,10 +15,11 @@ use vhs\database\joins\Join; use vhs\database\types\Type; +/** @typescript */ class Table extends Element { /** @var int */ private static $cloneIndex = 0; - /** @var null|string */ + /** @var string|null */ public $alias; /** @var string */ @@ -68,6 +69,7 @@ public function addColumn($name, Type $type, $serializable = true) { /** * @param IGenerator $generator + * @param mixed|null $value * * @return mixed */ diff --git a/vhs/database/access/IAccess.php b/vhs/database/access/IAccess.php index 183c67cd..782a7eaf 100644 --- a/vhs/database/access/IAccess.php +++ b/vhs/database/access/IAccess.php @@ -12,6 +12,7 @@ use vhs\database\Column; use vhs\database\Table; +/** @typescript */ interface IAccess extends \Serializable, \JsonSerializable { public function CanRead($record, Table $table, Column $column); diff --git a/vhs/database/access/IAccessGenerator.php b/vhs/database/access/IAccessGenerator.php index fcb25960..76751364 100644 --- a/vhs/database/access/IAccessGenerator.php +++ b/vhs/database/access/IAccessGenerator.php @@ -9,5 +9,6 @@ namespace vhs\database\access; +/** @typescript */ interface IAccessGenerator { } diff --git a/vhs/database/constraints/Constraint.php b/vhs/database/constraints/Constraint.php index 59eef4f0..ffee3640 100644 --- a/vhs/database/constraints/Constraint.php +++ b/vhs/database/constraints/Constraint.php @@ -14,6 +14,7 @@ use vhs\database\IGenerator; use vhs\database\Table; +/** @typescript */ abstract class Constraint extends Element { public $column; @@ -33,6 +34,7 @@ abstract public function generateConstraint(IConstraintGenerator $generator); /** * @param IGenerator $generator + * @param mixed|null $value * * @return mixed */ diff --git a/vhs/database/constraints/ForeignKey.php b/vhs/database/constraints/ForeignKey.php index 90f97c0a..2c3d1abf 100644 --- a/vhs/database/constraints/ForeignKey.php +++ b/vhs/database/constraints/ForeignKey.php @@ -12,6 +12,7 @@ use vhs\database\Column; use vhs\database\Table; +/** @typescript */ class ForeignKey extends Constraint { /** @var Column */ public $on; diff --git a/vhs/database/constraints/IConstraintGenerator.php b/vhs/database/constraints/IConstraintGenerator.php index 6234fca4..ae05b2b7 100644 --- a/vhs/database/constraints/IConstraintGenerator.php +++ b/vhs/database/constraints/IConstraintGenerator.php @@ -11,6 +11,7 @@ use vhs\database\IGenerator; +/** @typescript */ interface IConstraintGenerator extends IGenerator { public function generateForeignKey(ForeignKey $constraint); diff --git a/vhs/database/constraints/PrimaryKey.php b/vhs/database/constraints/PrimaryKey.php index 94fa0f39..e179289d 100644 --- a/vhs/database/constraints/PrimaryKey.php +++ b/vhs/database/constraints/PrimaryKey.php @@ -9,6 +9,7 @@ namespace vhs\database\constraints; +/** @typescript */ class PrimaryKey extends Constraint { public function generateConstraint(IConstraintGenerator $generator) { return $generator->generatePrimaryKey($this); diff --git a/vhs/database/engines/memory/InMemoryEngine.php b/vhs/database/engines/memory/InMemoryEngine.php index dc092c64..5e5a114d 100644 --- a/vhs/database/engines/memory/InMemoryEngine.php +++ b/vhs/database/engines/memory/InMemoryEngine.php @@ -24,6 +24,7 @@ use vhs\Logger; use vhs\loggers\SilentLogger; +/** @typescript */ class InMemoryEngine extends Engine { private $datastore = []; private $generator; @@ -44,6 +45,7 @@ public function disconnect() { $this->keyIncrementors = []; $this->datastore = []; $this->logger->log('disconnected'); + return true; // ha } @@ -105,6 +107,7 @@ public function delete(QueryDelete $query) { public function exists(QuerySelect $query) { $this->logger->log('exists: '); + return $this->count(new QueryCount($query->table, $query->where, $query->orderBy, $query->limit, $query->offset)) > 0; } diff --git a/vhs/database/engines/memory/InMemoryGenerator.php b/vhs/database/engines/memory/InMemoryGenerator.php index 7193bd1a..e3bdef46 100644 --- a/vhs/database/engines/memory/InMemoryGenerator.php +++ b/vhs/database/engines/memory/InMemoryGenerator.php @@ -52,6 +52,7 @@ use vhs\database\wheres\WhereComparator; use vhs\database\wheres\WhereOr; +/** @typescript */ class InMemoryGenerator implements IWhereGenerator, IOrderByGenerator, diff --git a/vhs/database/engines/mysql/MySqlConnectionInfo.php b/vhs/database/engines/mysql/MySqlConnectionInfo.php index 2e5c7016..186e71bb 100644 --- a/vhs/database/engines/mysql/MySqlConnectionInfo.php +++ b/vhs/database/engines/mysql/MySqlConnectionInfo.php @@ -11,6 +11,7 @@ use vhs\database\ConnectionInfo; +/** @typescript */ class MySqlConnectionInfo extends ConnectionInfo { private $database; private $password; diff --git a/vhs/database/engines/mysql/MySqlConverter.php b/vhs/database/engines/mysql/MySqlConverter.php index 65076708..ac483f9a 100644 --- a/vhs/database/engines/mysql/MySqlConverter.php +++ b/vhs/database/engines/mysql/MySqlConverter.php @@ -19,6 +19,7 @@ use vhs\database\types\TypeString; use vhs\database\types\TypeText; +/** @typescript */ class MySqlConverter implements ITypeConverter { public function convertBool(TypeBool $type, $value = null) { if (is_null($value)) { diff --git a/vhs/database/engines/mysql/MySqlEngine.php b/vhs/database/engines/mysql/MySqlEngine.php index e90945cf..3d07d5b8 100644 --- a/vhs/database/engines/mysql/MySqlEngine.php +++ b/vhs/database/engines/mysql/MySqlEngine.php @@ -29,12 +29,11 @@ use vhs\Logger; use vhs\loggers\SilentLogger; +/** @typescript */ class MySqlEngine extends Engine { private $autoCreateDatabase; - /** - * @var \mysqli - */ + /** @var \mysqli */ private $conn; private $converter; private $generator; diff --git a/vhs/database/engines/mysql/MySqlGenerator.php b/vhs/database/engines/mysql/MySqlGenerator.php index 938c6f33..862378f6 100644 --- a/vhs/database/engines/mysql/MySqlGenerator.php +++ b/vhs/database/engines/mysql/MySqlGenerator.php @@ -52,6 +52,7 @@ use vhs\database\wheres\WhereComparator; use vhs\database\wheres\WhereOr; +/** @typescript */ class MySqlGenerator implements IWhereGenerator, IOrderByGenerator, @@ -62,9 +63,7 @@ class MySqlGenerator implements IJoinGenerator, IOnGenerator, IColumnGenerator { - /** - * @var \mysqli - */ + /** @var \mysqli */ private $conn = null; public function generateAnd(WhereAnd $where) { @@ -276,6 +275,7 @@ public function generateLimit(Limit $limit) { if (isset($limit->limit) && is_numeric($limit->limit)) { $clause = sprintf(' LIMIT %s ', intval($limit->limit)); } + return $clause; } @@ -284,6 +284,7 @@ public function generateOffset(Offset $offset) { if (isset($offset->offset) && is_numeric($offset->offset)) { $clause = sprintf(' OFFSET %s ', intval($offset->offset)); } + return $clause; } @@ -420,6 +421,7 @@ public function generateUpdate(QueryUpdate $query) { array_map( function ($columnName, $value) use ($query) { $column = $query->columns->getByName($columnName); + return $column->generate($this) . ' = ' . $column->type->generate($this, $value); }, array_keys($query->values), diff --git a/vhs/database/exceptions/DatabaseConnectionException.php b/vhs/database/exceptions/DatabaseConnectionException.php index 3bd15cdb..f11e71fe 100644 --- a/vhs/database/exceptions/DatabaseConnectionException.php +++ b/vhs/database/exceptions/DatabaseConnectionException.php @@ -9,5 +9,6 @@ namespace vhs\database\exceptions; +/** @typescript */ class DatabaseConnectionException extends DatabaseException { } diff --git a/vhs/database/exceptions/DatabaseException.php b/vhs/database/exceptions/DatabaseException.php index 7600dcbc..99be7489 100644 --- a/vhs/database/exceptions/DatabaseException.php +++ b/vhs/database/exceptions/DatabaseException.php @@ -9,5 +9,6 @@ namespace vhs\database\exceptions; +/** @typescript */ class DatabaseException extends \Exception { } diff --git a/vhs/database/exceptions/InvalidSchemaException.php b/vhs/database/exceptions/InvalidSchemaException.php index aaabbc1c..168130bf 100644 --- a/vhs/database/exceptions/InvalidSchemaException.php +++ b/vhs/database/exceptions/InvalidSchemaException.php @@ -9,5 +9,6 @@ namespace vhs\database\exceptions; +/** @typescript */ class InvalidSchemaException extends \Exception { } diff --git a/vhs/database/joins/IJoinGenerator.php b/vhs/database/joins/IJoinGenerator.php index dd4eb478..f24e88fa 100644 --- a/vhs/database/joins/IJoinGenerator.php +++ b/vhs/database/joins/IJoinGenerator.php @@ -11,6 +11,7 @@ use vhs\database\IGenerator; +/** @typescript */ interface IJoinGenerator extends IGenerator { public function generateCross(JoinCross $join); diff --git a/vhs/database/joins/Join.php b/vhs/database/joins/Join.php index f85c043d..fdc15113 100644 --- a/vhs/database/joins/Join.php +++ b/vhs/database/joins/Join.php @@ -14,6 +14,7 @@ use vhs\database\On; use vhs\database\Table; +/** @typescript */ abstract class Join extends Element { /** @var On */ public $on; diff --git a/vhs/database/joins/JoinCross.php b/vhs/database/joins/JoinCross.php index 40995e3e..e66e0517 100644 --- a/vhs/database/joins/JoinCross.php +++ b/vhs/database/joins/JoinCross.php @@ -9,6 +9,7 @@ namespace vhs\database\joins; +/** @typescript */ class JoinCross extends Join { public function generateJoin(IJoinGenerator $generator) { return $generator->generateCross($this); diff --git a/vhs/database/joins/JoinInner.php b/vhs/database/joins/JoinInner.php index ce1902af..b5e9724c 100644 --- a/vhs/database/joins/JoinInner.php +++ b/vhs/database/joins/JoinInner.php @@ -9,6 +9,7 @@ namespace vhs\database\joins; +/** @typescript */ class JoinInner extends Join { public function generateJoin(IJoinGenerator $generator) { return $generator->generateInner($this); diff --git a/vhs/database/joins/JoinLeft.php b/vhs/database/joins/JoinLeft.php index 6099de52..81eb22d5 100644 --- a/vhs/database/joins/JoinLeft.php +++ b/vhs/database/joins/JoinLeft.php @@ -9,6 +9,7 @@ namespace vhs\database\joins; +/** @typescript */ class JoinLeft extends Join { public function generateJoin(IJoinGenerator $generator) { return $generator->generateLeft($this); diff --git a/vhs/database/joins/JoinOuter.php b/vhs/database/joins/JoinOuter.php index 50806db4..884242fe 100644 --- a/vhs/database/joins/JoinOuter.php +++ b/vhs/database/joins/JoinOuter.php @@ -9,6 +9,7 @@ namespace vhs\database\joins; +/** @typescript */ class JoinOuter extends Join { public function generateJoin(IJoinGenerator $generator) { return $generator->generateOuter($this); diff --git a/vhs/database/joins/JoinRight.php b/vhs/database/joins/JoinRight.php index 5e2b3c7d..d9c9774c 100644 --- a/vhs/database/joins/JoinRight.php +++ b/vhs/database/joins/JoinRight.php @@ -9,6 +9,7 @@ namespace vhs\database\joins; +/** @typescript */ class JoinRight extends Join { public function generateJoin(IJoinGenerator $generator) { return $generator->generateRight($this); diff --git a/vhs/database/limits/ILimitGenerator.php b/vhs/database/limits/ILimitGenerator.php index a8bb8349..aa8cc887 100644 --- a/vhs/database/limits/ILimitGenerator.php +++ b/vhs/database/limits/ILimitGenerator.php @@ -4,6 +4,7 @@ use vhs\database\IGenerator; +/** @typescript */ interface ILimitGenerator extends IGenerator { public function generateLimit(Limit $limit); } diff --git a/vhs/database/limits/Limit.php b/vhs/database/limits/Limit.php index f2ea81ed..1fad3bea 100644 --- a/vhs/database/limits/Limit.php +++ b/vhs/database/limits/Limit.php @@ -6,6 +6,7 @@ use vhs\database\IGeneratable; use vhs\database\IGenerator; +/** @typescript */ class Limit extends Element implements IGeneratable { public $limit; diff --git a/vhs/database/offsets/IOffsetGenerator.php b/vhs/database/offsets/IOffsetGenerator.php index d800c778..c633c0fe 100644 --- a/vhs/database/offsets/IOffsetGenerator.php +++ b/vhs/database/offsets/IOffsetGenerator.php @@ -4,6 +4,7 @@ use vhs\database\IGenerator; +/** @typescript */ interface IOffsetGenerator extends IGenerator { public function generateOffset(Offset $offset); } diff --git a/vhs/database/offsets/Offset.php b/vhs/database/offsets/Offset.php index 29709e88..82dd50f5 100644 --- a/vhs/database/offsets/Offset.php +++ b/vhs/database/offsets/Offset.php @@ -5,6 +5,7 @@ use vhs\database\Element; use vhs\database\IGenerator; +/** @typescript */ class Offset extends Element { public $offset; diff --git a/vhs/database/orders/IOrderByGenerator.php b/vhs/database/orders/IOrderByGenerator.php index 2a2cb53b..1a681f5e 100644 --- a/vhs/database/orders/IOrderByGenerator.php +++ b/vhs/database/orders/IOrderByGenerator.php @@ -11,6 +11,7 @@ use vhs\database\IGenerator; +/** @typescript */ interface IOrderByGenerator extends IGenerator { public function generateAscending(OrderByAscending $ascending); diff --git a/vhs/database/orders/OrderBy.php b/vhs/database/orders/OrderBy.php index 46fdb7df..124125bd 100644 --- a/vhs/database/orders/OrderBy.php +++ b/vhs/database/orders/OrderBy.php @@ -14,6 +14,7 @@ use vhs\database\IGenerator; use vhs\database\Table; +/** @typescript */ abstract class OrderBy extends Element { /** @var Column */ public $column; diff --git a/vhs/database/orders/OrderByAscending.php b/vhs/database/orders/OrderByAscending.php index 6ee5d417..92a35e18 100644 --- a/vhs/database/orders/OrderByAscending.php +++ b/vhs/database/orders/OrderByAscending.php @@ -9,6 +9,7 @@ namespace vhs\database\orders; +/** @typescript */ class OrderByAscending extends OrderBy { public function generateOrderBy(IOrderByGenerator $generator) { return $generator->generateAscending($this); diff --git a/vhs/database/orders/OrderByDescending.php b/vhs/database/orders/OrderByDescending.php index 2db41736..5e170524 100644 --- a/vhs/database/orders/OrderByDescending.php +++ b/vhs/database/orders/OrderByDescending.php @@ -9,6 +9,7 @@ namespace vhs\database\orders; +/** @typescript */ class OrderByDescending extends OrderBy { public function generateOrderBy(IOrderByGenerator $generator) { return $generator->generateDescending($this); diff --git a/vhs/database/queries/IQueryGenerator.php b/vhs/database/queries/IQueryGenerator.php index 7ad22147..2aba6b08 100644 --- a/vhs/database/queries/IQueryGenerator.php +++ b/vhs/database/queries/IQueryGenerator.php @@ -11,6 +11,7 @@ use vhs\database\IGenerator; +/** @typescript */ interface IQueryGenerator extends IGenerator { public function generateDelete(QueryDelete $query); diff --git a/vhs/database/queries/Query.php b/vhs/database/queries/Query.php index b113c0cf..6203c598 100644 --- a/vhs/database/queries/Query.php +++ b/vhs/database/queries/Query.php @@ -21,6 +21,7 @@ use vhs\database\Table; use vhs\database\wheres\Where; +/** @typescript */ abstract class Query implements IGeneratable { /** @var array */ public $joins; diff --git a/vhs/database/queries/QueryCount.php b/vhs/database/queries/QueryCount.php index 0a724ba5..864eeae3 100644 --- a/vhs/database/queries/QueryCount.php +++ b/vhs/database/queries/QueryCount.php @@ -16,6 +16,7 @@ use vhs\database\Table; use vhs\database\wheres\Where; +/** @typescript */ class QueryCount extends Query { /** @var Columns */ public $columns; diff --git a/vhs/database/queries/QueryDelete.php b/vhs/database/queries/QueryDelete.php index af5a5f44..5aa62262 100644 --- a/vhs/database/queries/QueryDelete.php +++ b/vhs/database/queries/QueryDelete.php @@ -12,6 +12,7 @@ use vhs\database\Table; use vhs\database\wheres\Where; +/** @typescript */ class QueryDelete extends Query { public function generateQuery(IQueryGenerator $generator) { return $generator->generateDelete($this); diff --git a/vhs/database/queries/QueryInsert.php b/vhs/database/queries/QueryInsert.php index 21aacd6f..2134d0e6 100644 --- a/vhs/database/queries/QueryInsert.php +++ b/vhs/database/queries/QueryInsert.php @@ -13,6 +13,7 @@ use vhs\database\Table; use vhs\database\wheres\Where; +/** @typescript */ class QueryInsert extends Query { public $columns; public $values; diff --git a/vhs/database/queries/QuerySelect.php b/vhs/database/queries/QuerySelect.php index c3b1c005..731fac7a 100644 --- a/vhs/database/queries/QuerySelect.php +++ b/vhs/database/queries/QuerySelect.php @@ -16,6 +16,7 @@ use vhs\database\Table; use vhs\database\wheres\Where; +/** @typescript */ class QuerySelect extends Query { /** @var Columns */ public $columns; diff --git a/vhs/database/queries/QueryUpdate.php b/vhs/database/queries/QueryUpdate.php index 810dafeb..aece1f19 100644 --- a/vhs/database/queries/QueryUpdate.php +++ b/vhs/database/queries/QueryUpdate.php @@ -13,6 +13,7 @@ use vhs\database\Table; use vhs\database\wheres\Where; +/** @typescript */ class QueryUpdate extends Query { public $columns; public $values; diff --git a/vhs/database/types/ITypeConverter.php b/vhs/database/types/ITypeConverter.php index 5f7832b8..e1f19f9f 100644 --- a/vhs/database/types/ITypeConverter.php +++ b/vhs/database/types/ITypeConverter.php @@ -11,6 +11,7 @@ use vhs\database\IConverter; +/** @typescript */ interface ITypeConverter extends IConverter { public function convertBool(TypeBool $type, $value = null); diff --git a/vhs/database/types/ITypeGenerator.php b/vhs/database/types/ITypeGenerator.php index ba47a644..649c85e3 100644 --- a/vhs/database/types/ITypeGenerator.php +++ b/vhs/database/types/ITypeGenerator.php @@ -11,6 +11,7 @@ use vhs\database\IGenerator; +/** @typescript */ interface ITypeGenerator extends IGenerator { public function generateBool(TypeBool $type, $value = null); diff --git a/vhs/database/types/Type.php b/vhs/database/types/Type.php index a343ded0..5df99ee2 100644 --- a/vhs/database/types/Type.php +++ b/vhs/database/types/Type.php @@ -15,6 +15,7 @@ use vhs\database\IConvertible; use vhs\database\IGenerator; +/** @typescript */ abstract class Type extends Element implements IConvertible { public $default; public $nullable; diff --git a/vhs/database/types/TypeBool.php b/vhs/database/types/TypeBool.php index dd0075a2..7e228185 100644 --- a/vhs/database/types/TypeBool.php +++ b/vhs/database/types/TypeBool.php @@ -9,6 +9,7 @@ namespace vhs\database\types; +/** @typescript */ class TypeBool extends Type { public function covertType(ITypeConverter $converter, $value = null) { return $converter->convertBool($this, $value); diff --git a/vhs/database/types/TypeDate.php b/vhs/database/types/TypeDate.php index 59ad4c72..9629d17b 100644 --- a/vhs/database/types/TypeDate.php +++ b/vhs/database/types/TypeDate.php @@ -9,6 +9,7 @@ namespace vhs\database\types; +/** @typescript */ class TypeDate extends Type { public function covertType(ITypeConverter $converter, $value = null) { return $converter->convertDate($this, $value); diff --git a/vhs/database/types/TypeDateTime.php b/vhs/database/types/TypeDateTime.php index fd273fe5..e075a5e8 100644 --- a/vhs/database/types/TypeDateTime.php +++ b/vhs/database/types/TypeDateTime.php @@ -9,6 +9,7 @@ namespace vhs\database\types; +/** @typescript */ class TypeDateTime extends Type { public function covertType(ITypeConverter $converter, $value = null) { return $converter->convertDateTime($this, $value); diff --git a/vhs/database/types/TypeEnum.php b/vhs/database/types/TypeEnum.php index 96495fd9..83684142 100644 --- a/vhs/database/types/TypeEnum.php +++ b/vhs/database/types/TypeEnum.php @@ -11,10 +11,9 @@ use vhs\database\exceptions\InvalidSchemaException; +/** @typescript */ class TypeEnum extends Type { - /** - * @var \string[] - */ + /** @var \string[] */ public $values; /** diff --git a/vhs/database/types/TypeFloat.php b/vhs/database/types/TypeFloat.php index 9fad7aa3..fbab21c0 100644 --- a/vhs/database/types/TypeFloat.php +++ b/vhs/database/types/TypeFloat.php @@ -9,6 +9,7 @@ namespace vhs\database\types; +/** @typescript */ class TypeFloat extends Type { public function covertType(ITypeConverter $converter, $value = null) { return $converter->convertFloat($this, $value); diff --git a/vhs/database/types/TypeInt.php b/vhs/database/types/TypeInt.php index 112fda35..1e4b5baa 100644 --- a/vhs/database/types/TypeInt.php +++ b/vhs/database/types/TypeInt.php @@ -9,6 +9,7 @@ namespace vhs\database\types; +/** @typescript */ class TypeInt extends Type { public function covertType(ITypeConverter $converter, $value = null) { return $converter->convertInt($this, $value); diff --git a/vhs/database/types/TypeString.php b/vhs/database/types/TypeString.php index ba621372..c567f2a6 100644 --- a/vhs/database/types/TypeString.php +++ b/vhs/database/types/TypeString.php @@ -9,6 +9,7 @@ namespace vhs\database\types; +/** @typescript */ class TypeString extends Type { public $length; diff --git a/vhs/database/types/TypeText.php b/vhs/database/types/TypeText.php index 28f41718..3192c6a3 100644 --- a/vhs/database/types/TypeText.php +++ b/vhs/database/types/TypeText.php @@ -9,6 +9,7 @@ namespace vhs\database\types; +/** @typescript */ class TypeText extends Type { public function covertType(ITypeConverter $converter, $value = null) { return $converter->convertText($this, $value); diff --git a/vhs/database/wheres/IWhereGenerator.php b/vhs/database/wheres/IWhereGenerator.php index f9a24652..f993bb2f 100644 --- a/vhs/database/wheres/IWhereGenerator.php +++ b/vhs/database/wheres/IWhereGenerator.php @@ -11,6 +11,7 @@ use vhs\database\IGenerator; +/** @typescript */ interface IWhereGenerator extends IGenerator { public function generateAnd(WhereAnd $where); diff --git a/vhs/database/wheres/Where.php b/vhs/database/wheres/Where.php index 8b6d6163..953cce6e 100644 --- a/vhs/database/wheres/Where.php +++ b/vhs/database/wheres/Where.php @@ -14,6 +14,7 @@ use vhs\database\IGenerator; use vhs\database\queries\Query; +/** @typescript */ abstract class Where extends Element { public static function _And(Where ...$where) { return new WhereAnd(...$where); diff --git a/vhs/database/wheres/WhereAnd.php b/vhs/database/wheres/WhereAnd.php index 06b9461a..3d15b2b3 100644 --- a/vhs/database/wheres/WhereAnd.php +++ b/vhs/database/wheres/WhereAnd.php @@ -11,6 +11,7 @@ use vhs\database\Table; +/** @typescript */ class WhereAnd extends Where { /** @var Where[] */ public $wheres = []; diff --git a/vhs/database/wheres/WhereComparator.php b/vhs/database/wheres/WhereComparator.php index 40df2340..a5c9bf79 100644 --- a/vhs/database/wheres/WhereComparator.php +++ b/vhs/database/wheres/WhereComparator.php @@ -12,6 +12,7 @@ use vhs\database\Column; use vhs\database\Table; +/** @typescript */ class WhereComparator extends Where { /** @var Column */ public $column; diff --git a/vhs/database/wheres/WhereOr.php b/vhs/database/wheres/WhereOr.php index 8c949f09..3bea4964 100644 --- a/vhs/database/wheres/WhereOr.php +++ b/vhs/database/wheres/WhereOr.php @@ -11,6 +11,7 @@ use vhs\database\Table; +/** @typescript */ class WhereOr extends Where { /** @var Where[] */ public $wheres = []; diff --git a/vhs/domain/Domain.php b/vhs/domain/Domain.php index b10654e9..c186b196 100644 --- a/vhs/domain/Domain.php +++ b/vhs/domain/Domain.php @@ -26,10 +26,12 @@ use vhs\domain\validations\ValidationException; use vhs\domain\validations\ValidationResults; +/** @typescript */ interface IDomain { public static function Define(); } +/** @typescript */ abstract class Domain extends Notifier implements IDomain, \Serializable, \JsonSerializable { private static $__definition = []; private $__cache; @@ -88,6 +90,7 @@ public function __construct() { foreach ($myFks as $fk) { if ($fk->table === $domain::Schema()->Table()) { $parentFk = $fk; + break; } } @@ -124,8 +127,6 @@ public static function count($filters, array $allowed_columns = null) { } public static function doCount(Where $where = null) { - $class = get_called_class(); - $records = Database::count(Query::Count(self::Schema()->Table(), $where)); return (int) $records; @@ -328,6 +329,7 @@ protected static function hydrateMany(Where $where = null, OrderBy $orderBy = nu ); $items = []; + foreach ($records as $row) { /** @var Domain $obj */ $obj = new $class(); @@ -340,9 +342,9 @@ protected static function hydrateMany(Where $where = null, OrderBy $orderBy = nu } /** + * @param string $as * @param string $domain * @param Schema $joinTable - * @param string $as */ protected static function Relationship($as, $domain, Schema $joinTable = null) { self::ensureDefined(); @@ -392,7 +394,7 @@ private static function arbitraryHydrate($sql) { * @param Columns $columns the filters that are allowed to be used in the filter * @param $filter * - * @return null|Where + * @return Where|null */ private static function constructFilter(Columns $columns, $filter) { if (is_object($filter)) { @@ -437,7 +439,7 @@ private static function constructFilter(Columns $columns, $filter) { * @param $filters * @param array $allowed_columns either an array of strings containing the list of columns allowed in a filter expression or null which means al columns are allowed * - * @return null|Where + * @return Where|null */ private static function constructFilterWhere($filters, array $allowed_columns = null) { $actualColumns = new Columns(); @@ -561,13 +563,13 @@ public function onUpdated(callable $listener) { } /** - * @param null $validationResults - * - * @return bool + * @param ValidationResults|null $validationResults * * @throws DomainException * @throws ValidationException * @throws \Exception + * + * @return bool */ public function save(&$validationResults = null) { if (is_null($validationResults)) { @@ -581,6 +583,7 @@ public function save(&$validationResults = null) { if (!$vr->isSuccess()) { if (isset($validationResults)) { $validationResults = $vr; + return false; } else { throw new ValidationException($vr); @@ -862,6 +865,7 @@ public function __get($name) { return $this->$method(); } elseif (self::Schema()->Columns()->contains($name)) { $col = self::Schema()->Columns()->getByName($name); + return $this->__cache->getValue($col->getAbsoluteName()); } elseif (array_key_exists($name, $this->__collections)) { return $this->__collections[$name]; diff --git a/vhs/domain/DomainValueCache.php b/vhs/domain/DomainValueCache.php index 5ead2a4f..d666844f 100644 --- a/vhs/domain/DomainValueCache.php +++ b/vhs/domain/DomainValueCache.php @@ -9,6 +9,7 @@ namespace vhs\domain; +/** @typescript */ class DomainValueCache { private $cache; private $changed = false; diff --git a/vhs/domain/Filter.php b/vhs/domain/Filter.php index 9a312041..63e0c0da 100644 --- a/vhs/domain/Filter.php +++ b/vhs/domain/Filter.php @@ -9,6 +9,7 @@ namespace vhs\domain; +/** @typescript */ class Filter { public $column; public $left; diff --git a/vhs/domain/Notifier.php b/vhs/domain/Notifier.php index 34cc4856..a6f11650 100644 --- a/vhs/domain/Notifier.php +++ b/vhs/domain/Notifier.php @@ -9,6 +9,7 @@ namespace vhs\domain; +/** @typescript */ class Notifier { private static $__staticListeners; private $__listeners; diff --git a/vhs/domain/Schema.php b/vhs/domain/Schema.php index b3b9deb2..f7f0c375 100644 --- a/vhs/domain/Schema.php +++ b/vhs/domain/Schema.php @@ -14,6 +14,7 @@ use vhs\database\constraints\PrimaryKey; use vhs\database\Table; +/** @typescript */ interface ISchema { /** * @return Table @@ -21,6 +22,7 @@ interface ISchema { public static function init(); } +/** @typescript */ abstract class Schema implements ISchema { private $internal_table; diff --git a/vhs/domain/collections/ChildDomainCollection.php b/vhs/domain/collections/ChildDomainCollection.php index a528c846..55069545 100644 --- a/vhs/domain/collections/ChildDomainCollection.php +++ b/vhs/domain/collections/ChildDomainCollection.php @@ -16,6 +16,7 @@ use vhs\domain\Domain; use vhs\domain\exceptions\DomainException; +/** @typescript */ class ChildDomainCollection extends DomainCollection { /** @var Column $childColumn */ private $childColumn; @@ -100,11 +101,13 @@ public function clear() { public function compare(Domain $a, Domain $b) { $childPkName = $this->childKey->column->name; + return $a->$childPkName === $b->$childPkName; } public function contains(Domain $item) { $childPkName = $this->childKey->column->name; + return $this->containsKey($item->$childPkName); } diff --git a/vhs/domain/collections/DomainCollection.php b/vhs/domain/collections/DomainCollection.php index 6bd030e8..795bac6f 100644 --- a/vhs/domain/collections/DomainCollection.php +++ b/vhs/domain/collections/DomainCollection.php @@ -14,6 +14,7 @@ use vhs\domain\Domain; use vhs\domain\Notifier; +/** @typescript */ abstract class DomainCollection extends Notifier { protected $__existing; protected $__new; diff --git a/vhs/domain/collections/ParentDomainCollection.php b/vhs/domain/collections/ParentDomainCollection.php index b12f350d..8b7f4b8d 100644 --- a/vhs/domain/collections/ParentDomainCollection.php +++ b/vhs/domain/collections/ParentDomainCollection.php @@ -11,6 +11,7 @@ use vhs\domain\Domain; +/** @typescript */ class ParentDomainCollection extends DomainCollection { public function add(Domain $item) { // TODO: Implement add() method. diff --git a/vhs/domain/collections/SatelliteDomainCollection.php b/vhs/domain/collections/SatelliteDomainCollection.php index fb083386..0bd3f2e1 100644 --- a/vhs/domain/collections/SatelliteDomainCollection.php +++ b/vhs/domain/collections/SatelliteDomainCollection.php @@ -18,6 +18,7 @@ use vhs\domain\exceptions\DomainException; use vhs\domain\Schema; +/** @typescript */ class SatelliteDomainCollection extends DomainCollection { /** @var ForeignKey */ private $childKey; @@ -90,11 +91,13 @@ public function all() { public function compare(Domain $a, Domain $b) { $childOnCol = $this->childKey->on->name; + return $a->$childOnCol === $b->$childOnCol; } public function contains(Domain $item) { $childOnCol = $this->childKey->on->name; + return $this->containsKey($item->$childOnCol); } diff --git a/vhs/domain/exceptions/DomainException.php b/vhs/domain/exceptions/DomainException.php index ca00380d..32516a67 100644 --- a/vhs/domain/exceptions/DomainException.php +++ b/vhs/domain/exceptions/DomainException.php @@ -9,5 +9,6 @@ namespace vhs\domain\exceptions; +/** @typescript */ class DomainException extends \Exception { } diff --git a/vhs/domain/exceptions/InvalidColumnDefinitionException.php b/vhs/domain/exceptions/InvalidColumnDefinitionException.php index a3b55e26..5118b71a 100644 --- a/vhs/domain/exceptions/InvalidColumnDefinitionException.php +++ b/vhs/domain/exceptions/InvalidColumnDefinitionException.php @@ -9,5 +9,6 @@ namespace vhs\domain\exceptions; +/** @typescript */ class InvalidColumnDefinitionException extends DomainException { } diff --git a/vhs/domain/validations/ValidationException.php b/vhs/domain/validations/ValidationException.php index db4e9bec..2de9aca0 100644 --- a/vhs/domain/validations/ValidationException.php +++ b/vhs/domain/validations/ValidationException.php @@ -9,6 +9,7 @@ namespace vhs\domain\validations; +/** @typescript */ class ValidationException extends \Exception { private $results; diff --git a/vhs/domain/validations/ValidationFailure.php b/vhs/domain/validations/ValidationFailure.php index 9befb302..8cb4ba44 100644 --- a/vhs/domain/validations/ValidationFailure.php +++ b/vhs/domain/validations/ValidationFailure.php @@ -9,6 +9,7 @@ namespace vhs\domain\validations; +/** @typescript */ class ValidationFailure { private $message; diff --git a/vhs/domain/validations/ValidationResults.php b/vhs/domain/validations/ValidationResults.php index 40a51938..7d7a195b 100644 --- a/vhs/domain/validations/ValidationResults.php +++ b/vhs/domain/validations/ValidationResults.php @@ -9,6 +9,7 @@ namespace vhs\domain\validations; +/** @typescript */ class ValidationResults { private $failures = []; diff --git a/vhs/loggers/ConsoleLogger.php b/vhs/loggers/ConsoleLogger.php index a87fdb27..8cd893c7 100644 --- a/vhs/loggers/ConsoleLogger.php +++ b/vhs/loggers/ConsoleLogger.php @@ -11,6 +11,7 @@ use vhs\Logger; +/** @typescript */ class ConsoleLogger extends Logger { public function log($message) { print '[' . date('Y-m-d H:i:s') . '] ' . $message . PHP_EOL; diff --git a/vhs/loggers/FileLogger.php b/vhs/loggers/FileLogger.php index be57fbff..e36b2d0d 100644 --- a/vhs/loggers/FileLogger.php +++ b/vhs/loggers/FileLogger.php @@ -12,6 +12,7 @@ use vhs\Logger; use vhs\security\CurrentUser; +/** @typescript */ class FileLogger extends Logger { private $file; private $filename; diff --git a/vhs/loggers/SilentLogger.php b/vhs/loggers/SilentLogger.php index 725a90c5..38f4c4ce 100644 --- a/vhs/loggers/SilentLogger.php +++ b/vhs/loggers/SilentLogger.php @@ -11,6 +11,7 @@ use vhs\Logger; +/** @typescript */ class SilentLogger extends Logger { public function log($message) { //stfu diff --git a/vhs/loggers/StringLogger.php b/vhs/loggers/StringLogger.php index 8716da2e..d677041d 100644 --- a/vhs/loggers/StringLogger.php +++ b/vhs/loggers/StringLogger.php @@ -11,6 +11,7 @@ use vhs\Logger; +/** @typescript */ class StringLogger extends Logger { public $history; diff --git a/vhs/messaging/ConnectionInfo.php b/vhs/messaging/ConnectionInfo.php index 2771de73..b006c92c 100644 --- a/vhs/messaging/ConnectionInfo.php +++ b/vhs/messaging/ConnectionInfo.php @@ -9,6 +9,7 @@ namespace vhs\messaging; +/** @typescript */ abstract class ConnectionInfo { abstract public function getDetails(); diff --git a/vhs/messaging/Engine.php b/vhs/messaging/Engine.php index bce3d19a..58f6f492 100644 --- a/vhs/messaging/Engine.php +++ b/vhs/messaging/Engine.php @@ -11,6 +11,7 @@ use vhs\Logger; +/** @typescript */ abstract class Engine implements IMessagingInterface { abstract public function connect(); diff --git a/vhs/messaging/IMessagingInterface.php b/vhs/messaging/IMessagingInterface.php index 61f52d42..9ef8d4cb 100644 --- a/vhs/messaging/IMessagingInterface.php +++ b/vhs/messaging/IMessagingInterface.php @@ -9,6 +9,7 @@ namespace vhs\messaging; +/** @typescript */ interface IMessagingInterface { public function consume($channel, $queue, callable $callback); diff --git a/vhs/messaging/engines/RabbitMQ/RabbitMQConnectionInfo.php b/vhs/messaging/engines/RabbitMQ/RabbitMQConnectionInfo.php index 151dd239..1dd21c05 100644 --- a/vhs/messaging/engines/RabbitMQ/RabbitMQConnectionInfo.php +++ b/vhs/messaging/engines/RabbitMQ/RabbitMQConnectionInfo.php @@ -11,6 +11,7 @@ use vhs\messaging\ConnectionInfo; +/** @typescript */ class RabbitMQConnectionInfo extends ConnectionInfo { private $host; private $password; diff --git a/vhs/messaging/engines/RabbitMQ/RabbitMQEngine.php b/vhs/messaging/engines/RabbitMQ/RabbitMQEngine.php index 81b64e0e..f50f6a42 100644 --- a/vhs/messaging/engines/RabbitMQ/RabbitMQEngine.php +++ b/vhs/messaging/engines/RabbitMQ/RabbitMQEngine.php @@ -17,6 +17,7 @@ use vhs\messaging\Engine; use vhs\messaging\engines\RabbitMQ\RabbitMQConnectionInfo; +/** @typescript */ class RabbitMQEngine extends Engine { /** @var AMQPChannel[] */ private $channels; diff --git a/vhs/messaging/exceptions/MessageQueueException.php b/vhs/messaging/exceptions/MessageQueueException.php index d2280a38..f6a79aa0 100644 --- a/vhs/messaging/exceptions/MessageQueueException.php +++ b/vhs/messaging/exceptions/MessageQueueException.php @@ -9,5 +9,6 @@ namespace vhs\messaging\exceptions; +/** @typescript */ class MessageQueueException extends \Exception { } diff --git a/vhs/migration/Backup.php b/vhs/migration/Backup.php index 9ce738a5..0221aeca 100644 --- a/vhs/migration/Backup.php +++ b/vhs/migration/Backup.php @@ -12,6 +12,7 @@ use vhs\Logger; use vhs\loggers\SilentLogger; +/** @typescript */ class Backup { private $database; private $logger; @@ -64,6 +65,7 @@ public function internal_backup($fileName = null, $backupPath = 'backup/') { if ($conn->connect_error) { $this->logger->log('Connection failed: ' . $conn->connect_error); + return false; } @@ -164,6 +166,7 @@ private function is_mysql_num($type) { case 16: //BIT case 246: //DECIMAL / NUMERIC / FIXED return true; + break; default: return false; diff --git a/vhs/migration/Migrator.php b/vhs/migration/Migrator.php index a2e6efc5..e7dc90c9 100644 --- a/vhs/migration/Migrator.php +++ b/vhs/migration/Migrator.php @@ -12,6 +12,7 @@ use vhs\Logger; use vhs\loggers\SilentLogger; +/** @typescript */ class Migrator { private $database; private $logger; @@ -39,6 +40,7 @@ public function migrate($toVersion = null, $migrationsPath = '.') { if ($conn->connect_error) { $this->logger->log('Connection failed: ' . $conn->connect_error); + return false; } @@ -47,6 +49,7 @@ public function migrate($toVersion = null, $migrationsPath = '.') { $this->logger->log('Database created successfully'); } else { $this->logger->log('Error creating database: ' . $conn->error); + return false; } @@ -73,17 +76,20 @@ public function migrate($toVersion = null, $migrationsPath = '.') { if ($toVersion > $versions[sizeof($versions) - 1]) { $this->logger->log('Cannot target a version higher than latest.'); + return false; } if ($toVersion <= $currentversion) { $this->logger->log('Target must be higher than current.'); + return false; } } if ($currentversion == $versions[sizeof($versions) - 1]) { $this->logger->log('Already up to date.'); + return true; } @@ -114,6 +120,7 @@ public function migrate($toVersion = null, $migrationsPath = '.') { $output = shell_exec($command . $script); } catch (\Exception $e) { $this->logger->log('Caught exception: ' . $e->getMessage() . "\n"); + return false; } diff --git a/vhs/monitors/Monitor.php b/vhs/monitors/Monitor.php index 14d4d88b..125577cb 100644 --- a/vhs/monitors/Monitor.php +++ b/vhs/monitors/Monitor.php @@ -12,6 +12,7 @@ use vhs\Logger; use vhs\Singleton; +/** @typescript */ abstract class Monitor extends Singleton { abstract public function Init(Logger &$logger = null); } diff --git a/vhs/security/AnonPrincipal.php b/vhs/security/AnonPrincipal.php index 928e81b9..85bb2b39 100644 --- a/vhs/security/AnonPrincipal.php +++ b/vhs/security/AnonPrincipal.php @@ -9,6 +9,7 @@ namespace vhs\security; +/** @typescript */ class AnonPrincipal implements IPrincipal { public function canGrantAllPermissions(...$permission) { return false; diff --git a/vhs/security/BearerTokenCredentials.php b/vhs/security/BearerTokenCredentials.php index 2e4c0401..6fc72817 100644 --- a/vhs/security/BearerTokenCredentials.php +++ b/vhs/security/BearerTokenCredentials.php @@ -9,6 +9,7 @@ namespace vhs\security; +/** @typescript */ class BearerTokenCredentials implements ICredentials { private $token; diff --git a/vhs/security/CurrentUser.php b/vhs/security/CurrentUser.php index 5031908e..4ae6de25 100644 --- a/vhs/security/CurrentUser.php +++ b/vhs/security/CurrentUser.php @@ -11,10 +11,9 @@ use vhs\Singleton; +/** @typescript */ class CurrentUser { - /** - * @var IPrincipal $currentPrincipal - */ + /** @var IPrincipal $currentPrincipal */ private $currentPrincipal; protected function __construct() { diff --git a/vhs/security/IAuthenticate.php b/vhs/security/IAuthenticate.php index b7ba2de6..1372c7b6 100644 --- a/vhs/security/IAuthenticate.php +++ b/vhs/security/IAuthenticate.php @@ -9,6 +9,7 @@ namespace vhs\security; +/** @typescript */ interface IAuthenticate { /** * @return IPrincipal diff --git a/vhs/security/ICredentials.php b/vhs/security/ICredentials.php index b7a93514..e0c34e57 100644 --- a/vhs/security/ICredentials.php +++ b/vhs/security/ICredentials.php @@ -9,5 +9,6 @@ namespace vhs\security; +/** @typescript */ interface ICredentials { } diff --git a/vhs/security/IPrincipal.php b/vhs/security/IPrincipal.php index b495e67e..0df9241c 100644 --- a/vhs/security/IPrincipal.php +++ b/vhs/security/IPrincipal.php @@ -9,6 +9,7 @@ namespace vhs\security; +/** @typescript */ interface IPrincipal { public function canGrantAllPermissions(...$permission); diff --git a/vhs/security/SystemPrincipal.php b/vhs/security/SystemPrincipal.php index 84cd970a..c6a52659 100644 --- a/vhs/security/SystemPrincipal.php +++ b/vhs/security/SystemPrincipal.php @@ -4,6 +4,7 @@ use vhs\security\IPrincipal; +/** @typescript */ class SystemPrincipal implements IPrincipal, \JsonSerializable { public function __construct() { } diff --git a/vhs/security/UserPassCredentials.php b/vhs/security/UserPassCredentials.php index 08912282..3d9263ae 100644 --- a/vhs/security/UserPassCredentials.php +++ b/vhs/security/UserPassCredentials.php @@ -9,6 +9,7 @@ namespace vhs\security; +/** @typescript */ class UserPassCredentials implements ICredentials { private $password; private $username; diff --git a/vhs/security/exceptions/InvalidCredentials.php b/vhs/security/exceptions/InvalidCredentials.php index fb33658f..11c7ed60 100644 --- a/vhs/security/exceptions/InvalidCredentials.php +++ b/vhs/security/exceptions/InvalidCredentials.php @@ -9,5 +9,6 @@ namespace vhs\security\exceptions; +/** @typescript */ class InvalidCredentials extends \Exception { } diff --git a/vhs/security/exceptions/UnauthorizedException.php b/vhs/security/exceptions/UnauthorizedException.php index dafe2d04..9b110c4b 100644 --- a/vhs/security/exceptions/UnauthorizedException.php +++ b/vhs/security/exceptions/UnauthorizedException.php @@ -9,6 +9,7 @@ namespace vhs\security\exceptions; +/** @typescript */ class UnauthorizedException extends \Exception { public function __construct($message = 'Access denied') { parent::__construct($message); diff --git a/vhs/services/IContract.php b/vhs/services/IContract.php index dd29cf91..0adbcb52 100644 --- a/vhs/services/IContract.php +++ b/vhs/services/IContract.php @@ -9,5 +9,6 @@ namespace vhs\services; +/** @typescript */ interface IContract { } diff --git a/vhs/services/ServiceClient.php b/vhs/services/ServiceClient.php index 5eb0cf7b..9de45578 100644 --- a/vhs/services/ServiceClient.php +++ b/vhs/services/ServiceClient.php @@ -9,6 +9,7 @@ namespace vhs\services; +/** @typescript */ class ServiceClient { public static function __callStatic($name, $arguments) { $uri = explode('_', $name); diff --git a/vhs/services/ServiceContext.php b/vhs/services/ServiceContext.php index e9046d44..4fa18dfd 100644 --- a/vhs/services/ServiceContext.php +++ b/vhs/services/ServiceContext.php @@ -11,6 +11,7 @@ use vhs\services\endpoints\Endpoint; +/** @typescript */ class ServiceContext { /** @var Endpoint $endpoint */ public $endpoint; diff --git a/vhs/services/ServiceHandler.php b/vhs/services/ServiceHandler.php index 85f063fd..48b4e418 100644 --- a/vhs/services/ServiceHandler.php +++ b/vhs/services/ServiceHandler.php @@ -15,6 +15,7 @@ use vhs\SplClassLoader; use vhs\SplClassLoaderItem; +/** @typescript */ class ServiceHandler { private $endpointNamespace; /** @var Logger */ @@ -128,9 +129,9 @@ public function handle($uri, $data = null, $isNative = false) { /** * @param $uri * - * @return Endpoint - * * @throws InvalidRequestException + * + * @return Endpoint */ private function getEndpoint($uri) { if (!preg_match('%.*/' . $this->uriPrefixPath . '(?P.*)\.svc%im', $uri, $regs)) { diff --git a/vhs/services/ServiceRegistry.php b/vhs/services/ServiceRegistry.php index 813dfa94..a49b6c78 100644 --- a/vhs/services/ServiceRegistry.php +++ b/vhs/services/ServiceRegistry.php @@ -12,6 +12,7 @@ use vhs\Logger; use vhs\Singleton; +/** @typescript */ class ServiceRegistry extends Singleton { private $services = []; diff --git a/vhs/services/endpoints/Endpoint.php b/vhs/services/endpoints/Endpoint.php index c7121956..911542c4 100644 --- a/vhs/services/endpoints/Endpoint.php +++ b/vhs/services/endpoints/Endpoint.php @@ -16,6 +16,7 @@ use vhs\services\exceptions\InvalidRequestException; use vhs\services\IContract; +/** @typescript */ abstract class Endpoint implements IEndpoint { /** @var Logger $logger */ public $logger; @@ -141,9 +142,9 @@ final public function handleRequest($method, $data) { } /** - * @return \ReflectionClass - * * @throws \Exception + * + * @return \ReflectionClass */ private function getContract() { //TODO this would be a good place to implement a memcache registry of permissions & service endpoints diff --git a/vhs/services/endpoints/IEndpoint.php b/vhs/services/endpoints/IEndpoint.php index 1df2c909..d725f832 100644 --- a/vhs/services/endpoints/IEndpoint.php +++ b/vhs/services/endpoints/IEndpoint.php @@ -9,6 +9,7 @@ namespace vhs\services\endpoints; +/** @typescript */ interface IEndpoint { public function deserializeInput($data); diff --git a/vhs/services/endpoints/JsonEndpoint.php b/vhs/services/endpoints/JsonEndpoint.php index 4a99147c..7d0c6299 100644 --- a/vhs/services/endpoints/JsonEndpoint.php +++ b/vhs/services/endpoints/JsonEndpoint.php @@ -9,6 +9,7 @@ namespace vhs\services\endpoints; +/** @typescript */ class JsonEndpoint extends Endpoint { public function deserializeInput($data) { return json_decode($data); diff --git a/vhs/services/endpoints/NativeEndpoint.php b/vhs/services/endpoints/NativeEndpoint.php index 27baa6b0..dfec9ac4 100644 --- a/vhs/services/endpoints/NativeEndpoint.php +++ b/vhs/services/endpoints/NativeEndpoint.php @@ -9,6 +9,7 @@ namespace vhs\services\endpoints; +/** @typescript */ class NativeEndpoint extends Endpoint { public function deserializeInput($data) { return $data; diff --git a/vhs/services/exceptions/InvalidContractException.php b/vhs/services/exceptions/InvalidContractException.php index 7394f59e..51825cda 100644 --- a/vhs/services/exceptions/InvalidContractException.php +++ b/vhs/services/exceptions/InvalidContractException.php @@ -9,5 +9,6 @@ namespace vhs\services\exceptions; +/** @typescript */ class InvalidContractException extends \Exception { } diff --git a/vhs/services/exceptions/InvalidRequestException.php b/vhs/services/exceptions/InvalidRequestException.php index f91bac66..1e2fb5b6 100644 --- a/vhs/services/exceptions/InvalidRequestException.php +++ b/vhs/services/exceptions/InvalidRequestException.php @@ -9,5 +9,6 @@ namespace vhs\services\exceptions; +/** @typescript */ class InvalidRequestException extends \Exception { } diff --git a/vhs/web/HttpContext.php b/vhs/web/HttpContext.php index 6a5906f0..3a309e49 100644 --- a/vhs/web/HttpContext.php +++ b/vhs/web/HttpContext.php @@ -11,6 +11,7 @@ use vhs\Singleton; +/** @typescript */ class HttpContext extends Singleton { private static $server; @@ -19,9 +20,9 @@ public static function Init(HttpServer $server) { } /** - * @return HttpServer - * * @throws \Exception + * + * @return HttpServer */ public static function Server() { if (!isset(HttpContext::$server)) { diff --git a/vhs/web/HttpRequest.php b/vhs/web/HttpRequest.php index 2effb4f2..6718ac53 100644 --- a/vhs/web/HttpRequest.php +++ b/vhs/web/HttpRequest.php @@ -9,6 +9,7 @@ namespace vhs\web; +/** @typescript */ class HttpRequest { /** @var array */ public $headers; diff --git a/vhs/web/HttpRequestHandler.php b/vhs/web/HttpRequestHandler.php index de1dbdc8..8adce49a 100644 --- a/vhs/web/HttpRequestHandler.php +++ b/vhs/web/HttpRequestHandler.php @@ -9,6 +9,7 @@ namespace vhs\web; +/** @typescript */ abstract class HttpRequestHandler { abstract public function handle(HttpServer $server); } diff --git a/vhs/web/HttpServer.php b/vhs/web/HttpServer.php index e324039f..ff2b4b4a 100644 --- a/vhs/web/HttpServer.php +++ b/vhs/web/HttpServer.php @@ -13,6 +13,7 @@ use vhs\loggers\SilentLogger; use vhs\web\modules\HttpServerInfoModule; +/** @typescript */ class HttpServer { /** @var HttpRequest */ public $request; @@ -91,6 +92,7 @@ public function handle() { $module->handle($this); } catch (\Exception $ex) { $exception = $ex; + break; } $index += 1; @@ -159,6 +161,7 @@ public function redirect($url, $permanent = false) { public function register(IHttpModule $module) { if ($this->handling) { $this->log('Failed to register module ' . get_class($module)); + throw new \Exception('Registrations must occur prior to handling a request'); } @@ -185,6 +188,7 @@ private function endResponse() { $module->endResponse($this); } catch (\Exception $ex) { $exception = $ex; + break; } $index += 1; diff --git a/vhs/web/HttpUtil.php b/vhs/web/HttpUtil.php index 3f781115..6674b23d 100644 --- a/vhs/web/HttpUtil.php +++ b/vhs/web/HttpUtil.php @@ -9,6 +9,7 @@ namespace vhs\web; +/** @typescript */ class HttpUtil { /** * @returns HttpRequest @@ -40,6 +41,7 @@ public static function parseRequestHeaders() { $header = str_replace(' ', '-', ucwords(str_replace('_', ' ', strtolower(substr($key, 5))))); $headers[$header] = $value; } + return $headers; } } diff --git a/vhs/web/IHttpModule.php b/vhs/web/IHttpModule.php index 50c0921e..8d595d59 100644 --- a/vhs/web/IHttpModule.php +++ b/vhs/web/IHttpModule.php @@ -9,6 +9,7 @@ namespace vhs\web; +/** @typescript */ interface IHttpModule { public function endResponse(HttpServer $server); diff --git a/vhs/web/modules/HttpBasicAuthModule.php b/vhs/web/modules/HttpBasicAuthModule.php index bd6e562c..49769884 100644 --- a/vhs/web/modules/HttpBasicAuthModule.php +++ b/vhs/web/modules/HttpBasicAuthModule.php @@ -15,6 +15,7 @@ use vhs\web\HttpServer; use vhs\web\IHttpModule; +/** @typescript */ class HttpBasicAuthModule implements IHttpModule { private $authorizer; private $realm; diff --git a/vhs/web/modules/HttpBearerTokenAuthModule.php b/vhs/web/modules/HttpBearerTokenAuthModule.php index 3bfe5625..118d0ca3 100644 --- a/vhs/web/modules/HttpBearerTokenAuthModule.php +++ b/vhs/web/modules/HttpBearerTokenAuthModule.php @@ -16,6 +16,7 @@ use vhs\web\HttpServer; use vhs\web\IHttpModule; +/** @typescript */ class HttpBearerTokenAuthModule implements IHttpModule { private $authorizer; private $headerKey = 'HTTP_AUTHORIZATION'; diff --git a/vhs/web/modules/HttpExceptionHandlerModule.php b/vhs/web/modules/HttpExceptionHandlerModule.php index 1ef7ab72..e628cab2 100644 --- a/vhs/web/modules/HttpExceptionHandlerModule.php +++ b/vhs/web/modules/HttpExceptionHandlerModule.php @@ -13,6 +13,7 @@ use vhs\web\HttpServer; use vhs\web\IHttpModule; +/** @typescript */ class HttpExceptionHandlerModule implements IHttpModule { //todo do something about the levels here private $level; diff --git a/vhs/web/modules/HttpJsonServiceHandlerModule.php b/vhs/web/modules/HttpJsonServiceHandlerModule.php index 61690dd7..1e30efb6 100644 --- a/vhs/web/modules/HttpJsonServiceHandlerModule.php +++ b/vhs/web/modules/HttpJsonServiceHandlerModule.php @@ -14,6 +14,7 @@ use vhs\web\HttpServer; use vhs\web\IHttpModule; +/** @typescript */ class HttpJsonServiceHandlerModule implements IHttpModule { private $registryKey; @@ -34,6 +35,7 @@ public function handle(HttpServer $server) { switch ($server->request->method) { case 'HEAD': $server->output(ServiceRegistry::get($this->registryKey)->discover($uri)); + break; case 'GET': if (isset($_GET['json'])) { @@ -43,14 +45,17 @@ public function handle(HttpServer $server) { } $server->output(ServiceRegistry::get($this->registryKey)->handle($uri, $input)); + break; case 'POST': $server->output(ServiceRegistry::get($this->registryKey)->handle($uri, file_get_contents('php://input'))); + break; //case 'PUT': //case 'DELETE': default: throw new InvalidRequestException(); + break; } } diff --git a/vhs/web/modules/HttpRequestHandlerModule.php b/vhs/web/modules/HttpRequestHandlerModule.php index fcbe921f..80ef7317 100644 --- a/vhs/web/modules/HttpRequestHandlerModule.php +++ b/vhs/web/modules/HttpRequestHandlerModule.php @@ -13,6 +13,7 @@ use vhs\web\HttpServer; use vhs\web\IHttpModule; +/** @typescript */ abstract class HttpRequestHandlerModule implements IHttpModule { private $registry = []; diff --git a/vhs/web/modules/HttpServerInfoModule.php b/vhs/web/modules/HttpServerInfoModule.php index d4c64135..36311fd2 100644 --- a/vhs/web/modules/HttpServerInfoModule.php +++ b/vhs/web/modules/HttpServerInfoModule.php @@ -12,6 +12,7 @@ use vhs\web\HttpServer; use vhs\web\IHttpModule; +/** @typescript */ class HttpServerInfoModule implements IHttpModule { private $name; From 82d5e3198a9b8a3c7f0c2a13ca249bc7116bdb9c Mon Sep 17 00:00:00 2001 From: Ty Eggen Date: Wed, 5 Feb 2025 20:12:31 +0000 Subject: [PATCH 003/497] feat: improved authentication exception handling and phpdoc --- ...InvalidAccessTokenCredentialsException.php | 11 +++++ .../InvalidKeyCredentialsException.php | 11 +++++ app/security/Authenticate.php | 41 ++++++++++++------- 3 files changed, 48 insertions(+), 15 deletions(-) create mode 100644 app/exceptions/InvalidAccessTokenCredentialsException.php create mode 100644 app/exceptions/InvalidKeyCredentialsException.php diff --git a/app/exceptions/InvalidAccessTokenCredentialsException.php b/app/exceptions/InvalidAccessTokenCredentialsException.php new file mode 100644 index 00000000..810d5229 --- /dev/null +++ b/app/exceptions/InvalidAccessTokenCredentialsException.php @@ -0,0 +1,11 @@ +getUsername(), $credentials->getPassword()); + break; case 'app\\security\\credentials\\ApiCredentials': /** @var ApiCredentials $credentials */ self::keyLogin(Key::findByApiKey($credentials->getToken()), $credentials); + break; case 'app\\security\\credentials\\RfidCredentials': /** @var RfidCredentials $credentials */ self::keyLogin(Key::findByRfid($credentials->getToken()), $credentials); + break; case 'app\\security\\credentials\\PinCredentials': /** @var PinCredentials $credentials */ self::keyLogin(Key::findByPin($credentials->getToken()), $credentials); + break; case 'vhs\\security\\BearerTokenCredentials': /** @var BearerTokenCredentials $credentials */ self::bearerLogin($credentials); + break; default: throw new InvalidCredentials('"Unsupported authentication type."'); @@ -92,7 +100,8 @@ private static function bearerLogin(BearerTokenCredentials $credentials) { if (is_null($token) || is_null($token->user)) { AccessLog::log($credentials->getToken(), 'bearer', false, $ipaddr); - throw new InvalidCredentials(message: '"Invalid access token"'); + + throw new InvalidAccessTokenCredentialsException(); } if ( @@ -107,7 +116,8 @@ private static function bearerLogin(BearerTokenCredentials $credentials) { AccessLog::log($credentials->getToken(), 'bearer', true, $ipaddr, $token->user->id); } else { AccessLog::log($credentials->getToken(), 'bearer', false, $ipaddr, $token->user->id); - throw new InvalidCredentials('"Invalid access token"'); + + throw new InvalidAccessTokenCredentialsException(); } } @@ -154,9 +164,9 @@ private static function buildPrincipal($user) { /** * @param $username * - * @return User - * * @throws InvalidCredentials + * + * @return User */ private static function findUser($username) { $users = User::findByUsername($username); @@ -182,23 +192,19 @@ private static function getRemoteIP() { return $ipaddr; } - private static function isUserValid($user) { + private static function isUserValid(User $user) { switch ($user->active) { case 'n': //not active throw new InvalidCredentials('"Your account is not activated"'); - break; case 'y': //yes they are active return true; - break; case 't': //pending email verification throw new InvalidCredentials('"You need to verify your email address"'); - break; case 'b': //banned throw new InvalidCredentials('"Your account has been banned"'); - break; + default: + return false; } - - return false; } private static function keyLogin($keys, TokenCredentials $credentials) { @@ -206,7 +212,8 @@ private static function keyLogin($keys, TokenCredentials $credentials) { if (count($keys) != 1) { AccessLog::log($credentials->getToken(), $credentials->getType(), false, $ipaddr); - throw new InvalidCredentials('"Invalid key"'); + + throw new InvalidKeyCredentialsException(); } $key = $keys[0]; @@ -222,7 +229,8 @@ private static function keyLogin($keys, TokenCredentials $credentials) { $user = User::find($key->userid); } catch (\Exception $ex) { AccessLog::log($credentials->getToken(), $credentials->getType(), false, $ipaddr, $key->userid); - throw new InvalidCredentials('"Invalid key"'); + + throw new InvalidKeyCredentialsException(); } if (!is_null($user) && self::isUserValid($user)) { @@ -243,7 +251,8 @@ private static function keyLogin($keys, TokenCredentials $credentials) { } } else { AccessLog::log($credentials->getToken(), $credentials->getType(), false, $ipaddr); - throw new InvalidCredentials('"Invalid key"'); + + throw new InvalidKeyCredentialsException(); } } @@ -258,7 +267,7 @@ private static function keyLogin($keys, TokenCredentials $credentials) { array_push($privileges, 'grants'); } - CurrentUser::setPrincipal(new TokenPrincipal($identity, $privileges, $grants, $name)); + CurrentUser::setPrincipal(new TokenPrincipal(id: $identity, permissions: $privileges, grants: $grants, name: $name)); AccessLog::log($credentials->getToken(), $credentials->getType(), true, $ipaddr, $key->userid); } @@ -289,6 +298,7 @@ private static function userLogin($username, $password, $authonly = false) { $user = self::findUser($username); } catch (\Exception $ex) { AccessLog::log($username, 'userpass', false, $ipaddr); + throw $ex; } @@ -304,6 +314,7 @@ private static function userLogin($username, $password, $authonly = false) { return $user; } else { AccessLog::log($username, 'userpass', false, $ipaddr, $user->id); + throw new InvalidCredentials('"Incorrect username or password"'); } } From 9d5dc3a315f0e111b21eaf9e0ee51f52561bf745 Mon Sep 17 00:00:00 2001 From: Ty Eggen Date: Wed, 5 Feb 2025 20:24:44 +0000 Subject: [PATCH 004/497] feat: protected throwNotFound handler on Service --- vhs/services/Service.php | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/vhs/services/Service.php b/vhs/services/Service.php index 4dbf7daa..1ecd01a4 100644 --- a/vhs/services/Service.php +++ b/vhs/services/Service.php @@ -9,6 +9,7 @@ namespace vhs\services; +/** @typescript */ abstract class Service { /** @var ServiceContext $context */ protected $context; @@ -16,4 +17,8 @@ abstract class Service { public function __construct(ServiceContext $context = null) { $this->context = $context; } + + protected function throwNotFound(string $className) { + throw new \vhs\domain\exceptions\DomainException($className + ' not found', 404); + } } From 54d4b99554f7d7bdae678585590186fdc8ae4e85 Mon Sep 17 00:00:00 2001 From: Ty Eggen Date: Wed, 5 Feb 2025 23:08:15 +0000 Subject: [PATCH 005/497] feat: TS DTO classes (and tools) --- app/dto/AccessLog.php | 33 +++++ app/dto/AccessToken.php | 27 ++++ app/dto/AppClient.php | 39 ++++++ app/dto/AppClientInfo.php | 18 +++ app/dto/EmailTemplate.php | 33 +++++ app/dto/Event.php | 30 ++++ app/dto/GenuineCard.php | 39 ++++++ app/dto/Ipn.php | 42 ++++++ app/dto/IpnValidationEnum.php | 13 ++ app/dto/Key.php | 33 +++++ app/dto/KeyTypeEnum.php | 18 +++ app/dto/Membership.php | 45 ++++++ app/dto/PasswordResetRequest.php | 24 ++++ app/dto/Payment.php | 57 ++++++++ app/dto/PaymentPpEnum.php | 14 ++ app/dto/Privilege.php | 30 ++++ app/dto/RefreshToken.php | 27 ++++ app/dto/SavedRefreshToken.php | 17 +++ app/dto/ServiceResponse.php | 14 ++ app/dto/ServiceResponseError.php | 8 ++ app/dto/ServiceResponseErrorInvalidToken.php | 10 ++ ...esponseErrorUserNotFoundByEmailAddress.php | 10 ++ app/dto/ServiceResponseSuccess.php | 10 ++ app/dto/StripeEvent.php | 42 ++++++ app/dto/StripeEventStatusEnum.php | 13 ++ app/dto/SystemPreference.php | 27 ++++ app/dto/TrimmedAppClient.php | 22 +++ app/dto/TrimmedAppClientOwner.php | 29 ++++ app/dto/TrimmedUser.php | 32 +++++ app/dto/User.php | 84 +++++++++++ app/dto/UserActiveEnum.php | 15 ++ app/dto/UserPrincipal.php | 16 +++ app/dto/WebHook.php | 42 ++++++ php-ts-transformer.php | 34 +++++ tools/generate-dto-domain-classes.php | 131 ++++++++++++++++++ tools/generate-ts-contract-interface.php | 131 ++++++++++++++++++ 36 files changed, 1209 insertions(+) create mode 100644 app/dto/AccessLog.php create mode 100644 app/dto/AccessToken.php create mode 100644 app/dto/AppClient.php create mode 100644 app/dto/AppClientInfo.php create mode 100644 app/dto/EmailTemplate.php create mode 100644 app/dto/Event.php create mode 100644 app/dto/GenuineCard.php create mode 100644 app/dto/Ipn.php create mode 100644 app/dto/IpnValidationEnum.php create mode 100644 app/dto/Key.php create mode 100644 app/dto/KeyTypeEnum.php create mode 100644 app/dto/Membership.php create mode 100644 app/dto/PasswordResetRequest.php create mode 100644 app/dto/Payment.php create mode 100644 app/dto/PaymentPpEnum.php create mode 100644 app/dto/Privilege.php create mode 100644 app/dto/RefreshToken.php create mode 100644 app/dto/SavedRefreshToken.php create mode 100644 app/dto/ServiceResponse.php create mode 100644 app/dto/ServiceResponseError.php create mode 100644 app/dto/ServiceResponseErrorInvalidToken.php create mode 100644 app/dto/ServiceResponseErrorUserNotFoundByEmailAddress.php create mode 100644 app/dto/ServiceResponseSuccess.php create mode 100644 app/dto/StripeEvent.php create mode 100644 app/dto/StripeEventStatusEnum.php create mode 100644 app/dto/SystemPreference.php create mode 100644 app/dto/TrimmedAppClient.php create mode 100644 app/dto/TrimmedAppClientOwner.php create mode 100644 app/dto/TrimmedUser.php create mode 100644 app/dto/User.php create mode 100644 app/dto/UserActiveEnum.php create mode 100644 app/dto/UserPrincipal.php create mode 100644 app/dto/WebHook.php create mode 100644 php-ts-transformer.php create mode 100755 tools/generate-dto-domain-classes.php create mode 100755 tools/generate-ts-contract-interface.php diff --git a/app/dto/AccessLog.php b/app/dto/AccessLog.php new file mode 100644 index 00000000..ca979c82 --- /dev/null +++ b/app/dto/AccessLog.php @@ -0,0 +1,33 @@ +id = $accessLog->id; + $this->key = $accessLog->key; + $this->type = $accessLog->type; + $this->authorized = $accessLog->authorized; + $this->from_ip = $accessLog->from_ip; + $this->time = $accessLog->time; + $this->userid = $accessLog->userid; + } +} diff --git a/app/dto/AccessToken.php b/app/dto/AccessToken.php new file mode 100644 index 00000000..64399b2c --- /dev/null +++ b/app/dto/AccessToken.php @@ -0,0 +1,27 @@ +id = $accessToken->id; + $this->token = $accessToken->token; + $this->expires = $accessToken->expires; + $this->userid = $accessToken->userid; + $this->appclientid = $accessToken->appclientid; + } +} diff --git a/app/dto/AppClient.php b/app/dto/AppClient.php new file mode 100644 index 00000000..5908977f --- /dev/null +++ b/app/dto/AppClient.php @@ -0,0 +1,39 @@ +id = $appClient->id; + $this->secret = $appClient->secret; + $this->expires = $appClient->expires; + $this->userid = $appClient->userid; + $this->name = $appClient->name; + $this->description = $appClient->description; + $this->url = $appClient->url; + $this->redirecturi = $appClient->redirecturi; + $this->enabled = $appClient->enabled; + } +} diff --git a/app/dto/AppClientInfo.php b/app/dto/AppClientInfo.php new file mode 100644 index 00000000..d1c820ea --- /dev/null +++ b/app/dto/AppClientInfo.php @@ -0,0 +1,18 @@ +name = $name; + $this->description = $description; + $this->redirecturi = $redirecturi; + $this->url = $url; + } +} diff --git a/app/dto/EmailTemplate.php b/app/dto/EmailTemplate.php new file mode 100644 index 00000000..21614fba --- /dev/null +++ b/app/dto/EmailTemplate.php @@ -0,0 +1,33 @@ +id = $emailTemplate->id; + $this->name = $emailTemplate->name; + $this->code = $emailTemplate->code; + $this->subject = $emailTemplate->subject; + $this->help = $emailTemplate->help; + $this->body = $emailTemplate->body; + $this->html = $emailTemplate->html; + } +} diff --git a/app/dto/Event.php b/app/dto/Event.php new file mode 100644 index 00000000..feed23a2 --- /dev/null +++ b/app/dto/Event.php @@ -0,0 +1,30 @@ +id = $event->id; + $this->name = $event->name; + $this->domain = $event->domain; + $this->event = $event->event; + $this->description = $event->description; + $this->enabled = $event->enabled; + } +} diff --git a/app/dto/GenuineCard.php b/app/dto/GenuineCard.php new file mode 100644 index 00000000..9667ead3 --- /dev/null +++ b/app/dto/GenuineCard.php @@ -0,0 +1,39 @@ +id = $genuineCard->id; + $this->key = $genuineCard->key; + $this->created = $genuineCard->created; + $this->issued = $genuineCard->issued; + $this->active = $genuineCard->active; + $this->paymentid = $genuineCard->paymentid; + $this->userid = $genuineCard->userid; + $this->owneremail = $genuineCard->owneremail; + $this->notes = $genuineCard->notes; + } +} diff --git a/app/dto/Ipn.php b/app/dto/Ipn.php new file mode 100644 index 00000000..21aaec6c --- /dev/null +++ b/app/dto/Ipn.php @@ -0,0 +1,42 @@ +id = $ipn->id; + $this->created = $ipn->created; + $this->validation = IpnValidationEnum::tryFrom($ipn->validation); + $this->payment_status = $ipn->payment_status; + $this->payment_amount = $ipn->payment_amount; + $this->payment_currency = $ipn->payment_currency; + $this->payer_email = $ipn->payer_email; + $this->item_name = $ipn->item_name; + $this->item_number = $ipn->item_number; + $this->raw = $ipn->raw; + } +} diff --git a/app/dto/IpnValidationEnum.php b/app/dto/IpnValidationEnum.php new file mode 100644 index 00000000..16d3b4ad --- /dev/null +++ b/app/dto/IpnValidationEnum.php @@ -0,0 +1,13 @@ +id = $key->id; + $this->userid = $key->userid; + $this->type = KeyTypeEnum::tryFrom($key->type); + $this->key = $key->key; + $this->created = $key->created; + $this->notes = $key->notes; + $this->expires = $key->expires; + } +} diff --git a/app/dto/KeyTypeEnum.php b/app/dto/KeyTypeEnum.php new file mode 100644 index 00000000..768bee08 --- /dev/null +++ b/app/dto/KeyTypeEnum.php @@ -0,0 +1,18 @@ +id = $membership->id; + $this->title = $membership->title; + $this->code = $membership->code; + $this->description = $membership->description; + $this->price = $membership->price; + $this->days = $membership->days; + $this->period = $membership->period; + $this->trial = $membership->trial; + $this->recurring = $membership->recurring; + $this->private = $membership->private; + $this->active = $membership->active; + } +} diff --git a/app/dto/PasswordResetRequest.php b/app/dto/PasswordResetRequest.php new file mode 100644 index 00000000..abaeb9e6 --- /dev/null +++ b/app/dto/PasswordResetRequest.php @@ -0,0 +1,24 @@ +id = $passwordResetRequest->id; + $this->userid = $passwordResetRequest->userid; + $this->token = $passwordResetRequest->token; + $this->created = $passwordResetRequest->created; + } +} diff --git a/app/dto/Payment.php b/app/dto/Payment.php new file mode 100644 index 00000000..d7106924 --- /dev/null +++ b/app/dto/Payment.php @@ -0,0 +1,57 @@ +id = $payment->id; + $this->txn_id = $payment->txn_id; + $this->membership_id = $payment->membership_id; + $this->user_id = $payment->user_id; + $this->payer_email = $payment->payer_email; + $this->payer_fname = $payment->payer_fname; + $this->payer_lname = $payment->payer_lname; + $this->rate_amount = $payment->rate_amount; + $this->currency = $payment->currency; + $this->date = $payment->date; + $this->pp = PaymentPpEnum::tryFrom($payment->pp); + $this->ip = $payment->ip; + $this->status = $payment->status; + $this->item_name = $payment->item_name; + $this->item_number = $payment->item_number; + } +} diff --git a/app/dto/PaymentPpEnum.php b/app/dto/PaymentPpEnum.php new file mode 100644 index 00000000..e27ebea7 --- /dev/null +++ b/app/dto/PaymentPpEnum.php @@ -0,0 +1,14 @@ +id = $privilege->id; + $this->name = $privilege->name; + $this->code = $privilege->code; + $this->description = $privilege->description; + $this->icon = $privilege->icon; + $this->enabled = $privilege->enabled; + } +} diff --git a/app/dto/RefreshToken.php b/app/dto/RefreshToken.php new file mode 100644 index 00000000..3a4ebbb8 --- /dev/null +++ b/app/dto/RefreshToken.php @@ -0,0 +1,27 @@ +id = $refreshToken->id; + $this->token = $refreshToken->token; + $this->expires = $refreshToken->expires; + $this->userid = $refreshToken->userid; + $this->appclientid = $refreshToken->appclientid; + } +} diff --git a/app/dto/SavedRefreshToken.php b/app/dto/SavedRefreshToken.php new file mode 100644 index 00000000..b96cfc41 --- /dev/null +++ b/app/dto/SavedRefreshToken.php @@ -0,0 +1,17 @@ +success = $success; + $this->msg = $msg; + } +} diff --git a/app/dto/ServiceResponseError.php b/app/dto/ServiceResponseError.php new file mode 100644 index 00000000..7f7b95df --- /dev/null +++ b/app/dto/ServiceResponseError.php @@ -0,0 +1,8 @@ +id = $stripeEvent->id; + $this->ts = $stripeEvent->ts; + $this->status = StripeEventStatusEnum::tryFrom($stripeEvent->status); + $this->created = $stripeEvent->created; + $this->event_id = $stripeEvent->event_id; + $this->type = $stripeEvent->type; + $this->object = $stripeEvent->object; + $this->request = $stripeEvent->request; + $this->api_version = $stripeEvent->api_version; + $this->raw = $stripeEvent->raw; + } +} diff --git a/app/dto/StripeEventStatusEnum.php b/app/dto/StripeEventStatusEnum.php new file mode 100644 index 00000000..96f34b5d --- /dev/null +++ b/app/dto/StripeEventStatusEnum.php @@ -0,0 +1,13 @@ +id = $systemPreference->id; + $this->key = $systemPreference->key; + $this->value = $systemPreference->value; + $this->enabled = $systemPreference->enabled; + $this->notes = $systemPreference->notes; + } +} diff --git a/app/dto/TrimmedAppClient.php b/app/dto/TrimmedAppClient.php new file mode 100644 index 00000000..ebf736f0 --- /dev/null +++ b/app/dto/TrimmedAppClient.php @@ -0,0 +1,22 @@ +id = $trimmedClientInfo['id']; + $this->name = $trimmedClientInfo['name']; + $this->description = $trimmedClientInfo['description']; + $this->enabled = $trimmedClientInfo['enabled']; + $this->expires = $trimmedClientInfo['expires']; + $this->owner = $trimmedClientInfo['owner']; + } +} diff --git a/app/dto/TrimmedAppClientOwner.php b/app/dto/TrimmedAppClientOwner.php new file mode 100644 index 00000000..784dbdc4 --- /dev/null +++ b/app/dto/TrimmedAppClientOwner.php @@ -0,0 +1,29 @@ +id = $userInfo['id']; + $this->username = $userInfo['username']; + $this->email = $userInfo['email']; + $this->fname = $userInfo['fname']; + $this->lname = $userInfo['lname']; + $this->membership = $userInfo['membership']; + $this->created = $userInfo['created']; + $this->active = $userInfo['active']; + $this->privileges = $userInfo['privileges']; + } +} diff --git a/app/dto/TrimmedUser.php b/app/dto/TrimmedUser.php new file mode 100644 index 00000000..8c7f614c --- /dev/null +++ b/app/dto/TrimmedUser.php @@ -0,0 +1,32 @@ +id = $userInfo['id']; + $this->username = $userInfo['username']; + $this->email = $userInfo['email']; + $this->fname = $userInfo['fname']; + $this->lname = $userInfo['lname']; + $this->membership = $userInfo['membership']; + $this->created = $userInfo['created']; + $this->active = $userInfo['active']; + $this->privileges = $userInfo['privileges']; + } +} diff --git a/app/dto/User.php b/app/dto/User.php new file mode 100644 index 00000000..ff57d46c --- /dev/null +++ b/app/dto/User.php @@ -0,0 +1,84 @@ +id = $user->id; + $this->username = $user->username; + $this->password = $user->password; + $this->membership_id = $user->membership_id; + $this->mem_expire = $user->mem_expire; + $this->trial_used = $user->trial_used; + $this->email = $user->email; + $this->fname = $user->fname; + $this->lname = $user->lname; + $this->token = $user->token; + $this->cookie_id = $user->cookie_id; + $this->newsletter = $user->newsletter; + $this->cash = $user->cash; + $this->userlevel = $user->userlevel; + $this->notes = $user->notes; + $this->created = $user->created; + $this->lastlogin = $user->lastlogin; + $this->lastip = $user->lastip; + $this->avatar = $user->avatar; + $this->active = UserActiveEnum::tryFrom($user->active); + $this->paypal_id = $user->paypal_id; + $this->payment_email = $user->payment_email; + $this->stripe_id = $user->stripe_id; + $this->stripe_email = $user->stripe_email; + } +} diff --git a/app/dto/UserActiveEnum.php b/app/dto/UserActiveEnum.php new file mode 100644 index 00000000..35d10957 --- /dev/null +++ b/app/dto/UserActiveEnum.php @@ -0,0 +1,15 @@ +id = $userPrincipal['id']; + $this->permissions = $userPrincipal['permissions']; + } +} diff --git a/app/dto/WebHook.php b/app/dto/WebHook.php new file mode 100644 index 00000000..80e11635 --- /dev/null +++ b/app/dto/WebHook.php @@ -0,0 +1,42 @@ +id = $webHook->id; + $this->name = $webHook->name; + $this->description = $webHook->description; + $this->enabled = $webHook->enabled; + $this->userid = $webHook->userid; + $this->url = $webHook->url; + $this->translation = $webHook->translation; + $this->headers = $webHook->headers; + $this->method = $webHook->method; + $this->eventid = $webHook->eventid; + } +} diff --git a/php-ts-transformer.php b/php-ts-transformer.php new file mode 100644 index 00000000..02a4c495 --- /dev/null +++ b/php-ts-transformer.php @@ -0,0 +1,34 @@ +autoDiscoverTypes(__DIR__ . '/app') + // ->autoDiscoverTypes(__DIR__ . '/vhs/Cloneable.php') + // ->autoDiscoverTypes(__DIR__ . '/vhs/Logger.php') + // ->autoDiscoverTypes(__DIR__ . '/vhs/Singleton.php') + // ->autoDiscoverTypes(__DIR__ . '/vhs/SplClassLoader.php') + ->autoDiscoverTypes(__DIR__ . '/vhs/database') + ->autoDiscoverTypes(__DIR__ . '/vhs/domain') + ->autoDiscoverTypes(__DIR__ . '/vhs/loggers') + // ->autoDiscoverTypes(__DIR__ . '/vhs/messaging') + ->autoDiscoverTypes(__DIR__ . '/vhs/migration') + ->autoDiscoverTypes(__DIR__ . '/vhs/monitors') + ->autoDiscoverTypes(__DIR__ . '/vhs/security') + ->autoDiscoverTypes(__DIR__ . '/vhs/services') + // ->autoDiscoverTypes(__DIR__ . '/vhs/vhs.php') + ->autoDiscoverTypes(__DIR__ . '/vhs/web') + // list of transformers + ->transformers([InterfaceTransformer::class, EnumTransformer::class, DtoTransformer::class]) + // file where TypeScript type definitions will be written + ->outputFile(__DIR__ . '/ts/generated.d.ts'); + +TypeScriptTransformer::create($config)->transform(); diff --git a/tools/generate-dto-domain-classes.php b/tools/generate-dto-domain-classes.php new file mode 100755 index 00000000..25b32162 --- /dev/null +++ b/tools/generate-dto-domain-classes.php @@ -0,0 +1,131 @@ +#!/usr/bin/env php +type))); + + $field = [ + 'name' => $column->name, + 'type' => $baseType + ]; + + switch ($field['type']) { + case 'datetime': + case 'text': + $field['type'] = 'string'; + + break; + case 'enum': + $enumName = sprintf('%s%sEnum', $className, ucfirst($column->name)); + + $field['enum'] = [ + 'name' => $enumName, + 'values' => $column->type->values + ]; + + break; + default: + break; + } + + return $field; +} + +function generateDTOFile(string $dtoFile, array $content): void { + printf("Writing %s...\n", $dtoFile); + $output = []; + + $output[] = 'Table()->columns->all() as $column) { + $domains[$className][] = generateFieldDefinition($className, $column); + } + } +} + +foreach ($domains as $className => $fields) { + printf("Generating %s...\n", $className); + + $dtoFile = sprintf('app/dto/%s.php', $className); + + $classContent = []; + + $classContent[] = sprintf('class %s {', $className); + + foreach ($fields as $field) { + if ($field['type'] === 'enum') { + $enumFile = sprintf('app/dto/%s.php', $field['enum']['name']); + + $enumContent = []; + + $enumContent[] = sprintf('enum %s {', $field['enum']['name']); + + foreach ($field['enum']['values'] as $value) { + $enumContent[] = sprintf(' case %s;', $value); + } + + $enumContent[] = '}'; + + generateDTOFile($enumFile, $enumContent); + + $classContent[] = sprintf(' public %s $%s;', $field['enum']['name'], $field['name']); + } + + if ($field['type'] !== 'enum') { + $classContent[] = sprintf(' public %s $%s;', $field['type'], $field['name']); + } + + $classContent[] = ''; + } + + $classContent[] = sprintf(" public function __construct(\app\domain\%s $%s) {", $className, lcfirst($className)); + + foreach ($fields as $field) { + if ($field['type'] === 'enum') { + $classContent[] = sprintf( + ' $this->%s = %s::tryFrom($%s->%s);', + $field['name'], + $field['enum']['name'], + lcfirst($className), + $field['name'] + ); + } else { + $classContent[] = sprintf(' $this->%s = $%s->%s;', $field['name'], lcfirst($className), $field['name']); + } + } + $classContent[] = sprintf(' }'); + + $classContent[] = '}'; + $classContent[] = ''; + + generateDTOFile($dtoFile, $classContent); +} + diff --git a/tools/generate-ts-contract-interface.php b/tools/generate-ts-contract-interface.php new file mode 100755 index 00000000..8d729ab0 --- /dev/null +++ b/tools/generate-ts-contract-interface.php @@ -0,0 +1,131 @@ +#!/usr/bin/env php +getDocComment(); + + $lines = explode("\n", $docComment); + + foreach ($lines as $line) { + $matchStr = sprintf('/@param (.+) \\$%s/', $param); + if (preg_match($matchStr, $line, $match)) { + return $match[1]; + } + } + + throw new Error( + sprintf( + 'Missing @param doc comment for param %s of %s->%s', + $param, + $contractMethod->getDeclaringClass()->getName(), + $contractMethod->getName() + ) + ); +} + +function convertDocComment(string $docComment): string { + global $wrappedTags; + + $lines = explode("\n", $docComment); + + foreach ($lines as $lineNo => $line) { + $chunks = explode(' ', preg_replace('/\r?\n?$/', '', $line)); + + foreach ($chunks as $id => $chunk) { + if ($chunk === '@return') { + $chunks[$id] = '@returns'; + } + + if (in_array($chunk, $wrappedTags)) { + $chunks[$id + 1] = sprintf('{%s}', $chunks[$id + 1]); + } + } + + $lines[$lineNo] = implode(' ', $chunks); + } + + return implode("\n", $lines); +} + +function generateContractMethodArgs($contractMethod): string { + $params = $contractMethod->getParameters(); + + return join( + ', ', + array_map(fn($param): string => sprintf('%s: %s', $param->getName(), getDocCommentParam($contractMethod, $param->getName())), $params) + ); +} + +function generateContractMethodReturnType($contractMethod): string { + $comments = $contractMethod->getDocComment(); + + // Check if there is an @return statement + if (preg_match('%^\s*\*\s*@return\s+(.+)\s*$%im', $comments, $matches) && count($matches) > 1) { + // Split the found @return statement + $returnStatements = explode('|', str_replace('\\app\\dto\\', '', $matches[1])); + + foreach ($returnStatements as $i => $v) { + // Convert array statements to Typescript style array statements + if (preg_match('/^array\{.+\}$/', $v)) { + $returnStatements[$i] = preg_replace('/^array(\{.+\})$/', 'Array<$1>', $v); + } + } + + return implode('|', $returnStatements); + } else { + throw new Error(sprintf('Missing return statement for: %s->%s', $contractMethod->getDeclaringClass()->getName(), $contractMethod->getName())); + } +} + +if ($argc < 2) { + die("Missing file argument\n"); +} + +array_shift($argv); + +foreach ($argv as $service_file) { + $serviceName = basename($service_file, '.php'); + $fqcn = sprintf('%s\\%s', $namespace, $serviceName); + + require_once $service_file; + + $serviceClass = new \ReflectionClass($fqcn); + + $contract = null; + foreach ($serviceClass->getInterfaces() as $interface) { + if (array_key_exists('vhs\\services\\IContract', $interface->getInterfaces())) { + $contract = $interface; + } + } + + printf("export interface %s {\n", $contract->getName()); + + $contractMethods = $contract->getMethods(); + + foreach ($contractMethods as $k => $contractMethod) { + if ($k > 0) { + echo "\n"; + } + + echo str_replace( + 'array', + 'Record', + sprintf( + " %s\n %s: (%s) => BackendResult<%s>\n", + convertDocComment($contractMethod->getDocComment()), + $contractMethod->getName(), + generateContractMethodArgs($contractMethod), + generateContractMethodReturnType($contractMethod) + ) + ); + } + + printf("}\n"); +} + From 2bca98d8daa2b9044759ec6bfeec04732fa7b97c Mon Sep 17 00:00:00 2001 From: Ty Eggen Date: Wed, 5 Feb 2025 23:08:50 +0000 Subject: [PATCH 006/497] chore: formatting for app/services/EventService.php From 87d437267a7fc06204fc731776a893bb7f0dd915 Mon Sep 17 00:00:00 2001 From: Ty Eggen Date: Wed, 5 Feb 2025 23:11:22 +0000 Subject: [PATCH 007/497] feat: v2 contracts, endpoints, handlers and reqs/deps --- app/app.php | 1 + app/constants/Errors.php | 4 + app/contracts/v2/IApiKeyService2.php | 106 +++ app/contracts/v2/IAuthService2.php | 354 +++++++ app/contracts/v2/IEmailService2.php | 184 ++++ app/contracts/v2/IEventService2.php | 166 ++++ app/contracts/v2/IIpnService2.php | 59 ++ app/contracts/v2/IKeyService2.php | 107 +++ app/contracts/v2/IMemberCardService2.php | 133 +++ app/contracts/v2/IMembershipService2.php | 152 +++ app/contracts/v2/IMetricService2.php | 110 +++ app/contracts/v2/IPaymentService2.php | 92 ++ app/contracts/v2/IPinService2.php | 88 ++ app/contracts/v2/IPreferenceService2.php | 137 +++ app/contracts/v2/IPrivilegeService2.php | 156 ++++ app/contracts/v2/IStripeEventService2.php | 60 ++ .../v2/ISystemPreferenceService2.php | 137 +++ app/contracts/v2/IUserService2.php | 329 +++++++ app/contracts/v2/IWebHookService2.php | 177 ++++ app/endpoints/v2/ApiKeyService2.php | 21 + app/endpoints/v2/AuthService2.php | 21 + app/endpoints/v2/EmailService2.php | 21 + app/endpoints/v2/EventService2.php | 21 + app/endpoints/v2/IpnService2.php | 14 + app/endpoints/v2/KeyService2.php | 21 + app/endpoints/v2/MemberCardService2.php | 21 + app/endpoints/v2/MembershipService2.php | 14 + app/endpoints/v2/MetricService2.php | 14 + app/endpoints/v2/PaymentService2.php | 14 + app/endpoints/v2/PinService2.php | 21 + app/endpoints/v2/PreferenceService2.php | 21 + app/endpoints/v2/PrivilegeService2.php | 21 + app/endpoints/v2/StripeEventService2.php | 14 + app/endpoints/v2/UserService2.php | 21 + app/endpoints/v2/WebHookService2.php | 21 + app/handlers/v2/ApiKeyServiceHandler2.php | 215 +++++ app/handlers/v2/AuthServiceHandler2.php | 881 ++++++++++++++++++ app/handlers/v2/EmailServiceHandler2.php | 284 ++++++ app/handlers/v2/EventServiceHandler2.php | 299 ++++++ app/handlers/v2/IpnServiceHandler2.php | 64 ++ app/handlers/v2/KeyServiceHandler2.php | 241 +++++ app/handlers/v2/MemberCardServiceHandler2.php | 274 ++++++ app/handlers/v2/MembershipServiceHandler2.php | 217 +++++ app/handlers/v2/MetricServiceHandler2.php | 431 +++++++++ app/handlers/v2/PaymentServiceHandler2.php | 157 ++++ app/handlers/v2/PinServiceHandler2.php | 212 +++++ app/handlers/v2/PreferenceServiceHandler2.php | 240 +++++ app/handlers/v2/PrivilegeServiceHandler2.php | 254 +++++ .../v2/StripeEventServiceHandler2.php | 69 ++ .../v2/SystemPreferenceServiceHandler2.php | 260 ++++++ app/handlers/v2/UserServiceHandler2.php | 791 ++++++++++++++++ app/handlers/v2/WebHookServiceHandler2.php | 320 +++++++ app/utils/AuthCheckResult.php | 35 + 53 files changed, 8097 insertions(+) create mode 100644 app/contracts/v2/IApiKeyService2.php create mode 100644 app/contracts/v2/IAuthService2.php create mode 100644 app/contracts/v2/IEmailService2.php create mode 100644 app/contracts/v2/IEventService2.php create mode 100644 app/contracts/v2/IIpnService2.php create mode 100644 app/contracts/v2/IKeyService2.php create mode 100644 app/contracts/v2/IMemberCardService2.php create mode 100644 app/contracts/v2/IMembershipService2.php create mode 100644 app/contracts/v2/IMetricService2.php create mode 100644 app/contracts/v2/IPaymentService2.php create mode 100644 app/contracts/v2/IPinService2.php create mode 100644 app/contracts/v2/IPreferenceService2.php create mode 100644 app/contracts/v2/IPrivilegeService2.php create mode 100644 app/contracts/v2/IStripeEventService2.php create mode 100644 app/contracts/v2/ISystemPreferenceService2.php create mode 100644 app/contracts/v2/IUserService2.php create mode 100644 app/contracts/v2/IWebHookService2.php create mode 100644 app/endpoints/v2/ApiKeyService2.php create mode 100644 app/endpoints/v2/AuthService2.php create mode 100644 app/endpoints/v2/EmailService2.php create mode 100644 app/endpoints/v2/EventService2.php create mode 100644 app/endpoints/v2/IpnService2.php create mode 100644 app/endpoints/v2/KeyService2.php create mode 100644 app/endpoints/v2/MemberCardService2.php create mode 100644 app/endpoints/v2/MembershipService2.php create mode 100644 app/endpoints/v2/MetricService2.php create mode 100644 app/endpoints/v2/PaymentService2.php create mode 100644 app/endpoints/v2/PinService2.php create mode 100644 app/endpoints/v2/PreferenceService2.php create mode 100644 app/endpoints/v2/PrivilegeService2.php create mode 100644 app/endpoints/v2/StripeEventService2.php create mode 100644 app/endpoints/v2/UserService2.php create mode 100644 app/endpoints/v2/WebHookService2.php create mode 100644 app/handlers/v2/ApiKeyServiceHandler2.php create mode 100644 app/handlers/v2/AuthServiceHandler2.php create mode 100644 app/handlers/v2/EmailServiceHandler2.php create mode 100644 app/handlers/v2/EventServiceHandler2.php create mode 100644 app/handlers/v2/IpnServiceHandler2.php create mode 100644 app/handlers/v2/KeyServiceHandler2.php create mode 100644 app/handlers/v2/MemberCardServiceHandler2.php create mode 100644 app/handlers/v2/MembershipServiceHandler2.php create mode 100644 app/handlers/v2/MetricServiceHandler2.php create mode 100644 app/handlers/v2/PaymentServiceHandler2.php create mode 100644 app/handlers/v2/PinServiceHandler2.php create mode 100644 app/handlers/v2/PreferenceServiceHandler2.php create mode 100644 app/handlers/v2/PrivilegeServiceHandler2.php create mode 100644 app/handlers/v2/StripeEventServiceHandler2.php create mode 100644 app/handlers/v2/SystemPreferenceServiceHandler2.php create mode 100644 app/handlers/v2/UserServiceHandler2.php create mode 100644 app/handlers/v2/WebHookServiceHandler2.php create mode 100644 app/utils/AuthCheckResult.php diff --git a/app/app.php b/app/app.php index e639f1f1..b000622f 100644 --- a/app/app.php +++ b/app/app.php @@ -27,6 +27,7 @@ \vhs\web\HttpContext::Server()->register(new \vhs\web\modules\HttpExceptionHandlerModule('verbose', $serverLog)); \vhs\web\HttpContext::Server()->register(\app\modules\HttpPaymentGatewayHandlerModule::getInstance()); \vhs\web\HttpContext::Server()->register(\app\security\oauth\modules\OAuthHandlerModule::getInstance()); +\vhs\web\HttpContext::Server()->register(new \vhs\web\modules\HttpJsonServiceHandlerModule('v2')); \vhs\web\HttpContext::Server()->register(new \vhs\web\modules\HttpJsonServiceHandlerModule('web')); \app\modules\HttpPaymentGatewayHandlerModule::register(new \app\gateways\PaypalGateway()); diff --git a/app/constants/Errors.php b/app/constants/Errors.php index 6fbd5d0c..131c0c54 100644 --- a/app/constants/Errors.php +++ b/app/constants/Errors.php @@ -2,6 +2,10 @@ namespace app\constants; +/** @typescript */ class Errors { + final public const E_INVALID_EVENT = 'Event does not exist'; + + final public const E_INVALID_KEY_INPUT = 'Invalid keyid'; final public const E_INVALID_PASSWORD_HASH = 'Invalid password hash'; } diff --git a/app/contracts/v2/IApiKeyService2.php b/app/contracts/v2/IApiKeyService2.php new file mode 100644 index 00000000..4bdda56e --- /dev/null +++ b/app/contracts/v2/IApiKeyService2.php @@ -0,0 +1,106 @@ + $context + * @param string|null $subject + * + * @throws string + * + * @return void + */ + public function Email($email, $tmpl, $context, $subject = null): void; + + /** + * Summary of EmailUser. + * + * @permission administrator + * + * @param \app\domain\User $user email address + * @param string $tmpl + * @param array $context + * @param string|null $subject + * + * @throws string + * + * @return void + */ + public function EmailUser($user, $tmpl, $context, $subject = null): void; + + /** + * @permission administrator + * + * @param int $id + * + * @throws string + * + * @return \app\domain\EmailTemplate + */ + public function GetTemplate($id): EmailTemplate; + + /** + * @permission administrator + * + * @param int $page + * @param int $size + * @param string $columns + * @param string $order + * @param string $filters + * + * @throws string + * + * @return \app\domain\EmailTemplate[] + */ + public function ListTemplates($page, $size, $columns, $order, $filters): array; + + /** + * @permission administrator + * + * @param string $name + * @param string $code + * @param string $subject + * @param string $help + * @param string $body + * @param string $html + * + * @throws string + * + * @return bool + */ + public function PutTemplate($name, $code, $subject, $help, $body, $html): bool; + + /** + * @permission administrator + * + * @param int $id + * @param string $body + * + * @throws string + * + * @return bool + */ + public function UpdateTemplateBody($id, $body): bool; + + /** + * @permission administrator + * + * @param int $id + * @param string $code + * + * @throws string + * + * @return bool + */ + public function UpdateTemplateCode($id, $code): bool; + + /** + * @permission administrator + * + * @param int $id + * @param string $help + * + * @throws string + * + * @return bool + */ + public function UpdateTemplateHelp($id, $help): bool; + + /** + * @permission administrator + * + * @param int $id + * @param string $html + * + * @throws string + * + * @return bool + */ + public function UpdateTemplateHtml($id, $html): bool; + + /** + * @permission administrator + * + * @param int $id + * @param string $name + * + * @throws string + * + * @return bool + */ + public function UpdateTemplateName($id, $name): bool; + + /** + * @permission administrator + * + * @param int $id + * @param string $subject + * + * @throws string + * + * @return bool + */ + public function UpdateTemplateSubject($id, $subject): bool; +} diff --git a/app/contracts/v2/IEventService2.php b/app/contracts/v2/IEventService2.php new file mode 100644 index 00000000..39b894dd --- /dev/null +++ b/app/contracts/v2/IEventService2.php @@ -0,0 +1,166 @@ +userid != CurrentUser::getIdentity()) { + throw new UnauthorizedException(); + } + + $key->delete(); + } + + /** + * @permission administrator + * + * @param string $notes + * + * @throws string + * + * @return \app\domain\Key + */ + public function GenerateSystemApiKey($notes): Key { + $apiKey = new Key(); + $apiKey->key = bin2hex(openssl_random_pseudo_bytes(32)); + $apiKey->type = 'api'; + $apiKey->notes = $notes; + $apiKey->save(); + + return $apiKey; + } + + /** + * @permission administrator|user + * + * @param int $userid + * @param string $notes + * + * @throws string + * + * @return \app\domain\Key + */ + public function GenerateUserApiKey($userid, $notes): Key { + if (!CurrentUser::hasAnyPermissions('administrator') && $userid != CurrentUser::getIdentity()) { + throw new UnauthorizedException(); + } + + $user = User::find($userid); + + if (is_null($user)) { + throw new InvalidInputException('Invalid userid'); + } + + $apiKey = new Key(); + + $apiKey->key = bin2hex(openssl_random_pseudo_bytes(32)); + $apiKey->type = 'api'; + $apiKey->notes = $notes; + + $user->keys->add($apiKey); + + $user->save(); + + return $apiKey; + } + + /** + * @permission administrator|user + * + * @param int $keyid + * + * @throws string + * + * @return \app\domain\Key + */ + public function GetApiKey($keyid): Key { + $key = Key::find($keyid); + + if (is_null($key)) { + throw new InvalidInputException(\app\constants\Errors::E_INVALID_KEY_INPUT); + } + + if (!CurrentUser::hasAnyPermissions('administrator')) { + if (is_null($key->userid) || $key->userid != CurrentUser::getIdentity()) { + throw new UnauthorizedException(); + } + } + + return $key; + } + + /** + * @permission administrator + * + * @throws string + * + * @return \app\domain\Key[] + */ + public function GetSystemApiKeys(): array { + return Key::getSystemApiKeys(); + } + + /** + * @permission administrator|user + * + * @param int $userid + * + * @throws string + * + * @return \app\domain\Key[] + */ + public function GetUserApiKeys($userid): array { + if (!CurrentUser::hasAnyPermissions('administrator') && $userid != CurrentUser::getIdentity()) { + throw new UnauthorizedException(); + } + + return Key::getUserApiKeys($userid); + } + + /** + * @permission administrator|user + * + * @param int $keyid + * @param string $privileges + * + * @throws string + * + * @return bool + */ + public function PutApiKeyPrivileges($keyid, $privileges): bool { + $key = Key::find($keyid); + + if (is_null($key)) { + throw new InvalidInputException(\app\constants\Errors::E_INVALID_KEY_INPUT); + } + + if (!CurrentUser::hasAnyPermissions('administrator')) { + if (is_null($key->userid) || $key->userid != CurrentUser::getIdentity()) { + throw new UnauthorizedException(); + } + } + + $privArray = $privileges; + + if (!is_array($privArray)) { + $privArray = explode(',', $privileges); + } + + $privs = Privilege::findByCodes(...$privArray); + + foreach ($key->privileges->all() as $priv) { + $key->privileges->remove($priv); + } + + foreach ($privs as $priv) { + $key->privileges->add($priv); + } + + return $key->save(); + } + + /** + * @permission administrator|user + * + * @param int $keyid + * @param string $notes + * @param string $expires + * + * @throws string + * + * @return bool + */ + public function UpdateApiKey(int $keyid, string $notes, string $expires): bool { + $key = Key::find($keyid); + + if (is_null($key)) { + throw new InvalidInputException(\app\constants\Errors::E_INVALID_KEY_INPUT); + } + + if (!CurrentUser::hasAnyPermissions('administrator') && (is_null($key->userid) || $key->userid != CurrentUser::getIdentity())) { + throw new UnauthorizedException(); + } + + $key->notes = $notes; + $key->expires = $expires; + + return $key->save(); + } +} diff --git a/app/handlers/v2/AuthServiceHandler2.php b/app/handlers/v2/AuthServiceHandler2.php new file mode 100644 index 00000000..9cf78d3e --- /dev/null +++ b/app/handlers/v2/AuthServiceHandler2.php @@ -0,0 +1,881 @@ +userid == null) { + $logAccess(false); + + return $retval; + } + + // Fetch user + $user = User::find($key->userid); + + // Check if account is active and in good standing, and return result set + if ($user->valid) { + $retval->valid = true; + $retval->userId = $user->id; + $retval->username = $user->username; + $retval->type = $user->membership->code; + $retval->privileges = $key->getAbsolutePrivileges(); + + $logAccess(true, $user->id); + + return $retval; + } else { + $retval->username = $user->username; + $retval->message = $user->getInvalidReason(); + } + + // Log and return + $logAccess(false, $user->id); + + return $retval; + } + + /** + * @permission administrator|rfid-auth + * + * @param string $rfid + * + * @throws string + * + * @return \app\utils\AuthCheckResult + */ + public function CheckRfid($rfid): AuthCheckResult { + // Set defaults + $retval = new AuthCheckResult(); + + // Find key by RFID card id + $keys = Key::findByRfid($rfid); + + $logAccess = function ($granted, $userid = null) use ($rfid) { + try { + AccessLog::log('rfid', $rfid, $granted, $_SERVER['REMOTE_ADDR'], $userid); + } catch (\Exception $ex) { + /*mmm*/ + } + }; + + // If we get an invalid result, log and fail (we should always only get one result) + if (count($keys) != 1) { + $logAccess(false); + + return $retval; + } + + // Fetch key + $key = $keys[0]; + + // Check if there's a userid attached to the key, else fail + if ($key->userid == null) { + $logAccess(false); + + return $retval; + } + + // Fetch user info + $user = User::find($key->userid); + + // Check if account is active and in good standing, and return result set + if ($user->valid) { + $retval->valid = true; + $retval->userId = $user->id; + $retval->username = $user->username; + $retval->type = $user->membership->code; + $retval->privileges = $key->getAbsolutePrivileges(); + + $logAccess(true, $user->id); + + return $retval; + } else { + $retval->username = $user->username; + $retval->message = $user->getInvalidReason(); + } + + $logAccess(false, $user->id); + + return $retval; + } + + /** + * Check to see if the user service/id is valid. A service could be github/slack/google. + * + * @permission administrator|service-auth + * + * @param string $service + * @param string $id + * + * @throws string + * + * @return \app\utils\AuthCheckResult + */ + public function CheckService($service, $id): AuthCheckResult { + // Set defaults + $retval = new AuthCheckResult(); + + // Always parse service names as lowercase + $service = strtolower($service); + + // Find service key + $keys = Key::findByService($service, $id); + + $logAccess = function ($granted, $userid = null) use ($service, $id) { + try { + AccessLog::log($id, $service, $granted, $_SERVER['REMOTE_ADDR'], $userid); + } catch (\Exception $ex) { + /*mmm*/ + } + }; + + // If we get an invalid result, log and fail (we should always only get one result) + if (count($keys) != 1) { + $logAccess(false); + + return $retval; + } + + // Fetch key + $key = $keys[0]; + + // Check if there's a userid attached to the key, else fail + if ($key->userid == null) { + $logAccess(false); + + return $retval; + } + + // Fetch userinfo + $user = User::find($key->userid); + + // Check if account is active and in good standing, and return result set + if ($user->valid) { + $retval->valid = true; + $retval->userId = $user->id; + $retval->username = $user->username; + $retval->type = $user->membership->code; + $retval->privileges = $key->getAbsolutePrivileges(); + + $logAccess(true, $user->id); + + return $retval; + } else { + $retval->username = $user->username; + $retval->message = $user->getInvalidReason(); + } + + // Log and return + $logAccess(false, $user->id); + + return $retval; + } + + /** + * @permission anonymous + * + * @param string $username + * + * @throws string + * + * @return bool + */ + public function CheckUsername($username): bool { + return Database::exists( + new QuerySelect(UserSchema::Table(), UserSchema::Column('username'), Where::Equal(UserSchema::Column('username'), $username)) + ); + } + + /** + * @permission administrator + * + * @param string $filters + * + * @throws string + * + * @return int + */ + public function CountAccessLog($filters): int { + if (is_string($filters)) { + //todo total hack.. this is to support GET params for downloading payments + $filters = json_decode($filters); + } + + return AccessLog::count($filters); + } + + /** + * @permission administrator + * + * @param string $filters + * + * @throws string + * + * @return int + */ + public function CountClients($filters): int { + return AppClient::count($filters); + } + + /** + * @permission administrator|user + * + * @param int $userid + * @param string $filters + * + * @throws string + * + * @return int + */ + public function CountUserAccessLog($userid, $filters): int { + $filters = $this->addUserIDToFilters($userid, $filters); + + return AccessLog::count($filters); + } + + /** + * @permission administrator|user + * + * @param int $userid + * @param string $filters + * + * @throws string + * + * @return int + */ + public function CountUserClients($userid, $filters): int { + $filters = $this->addUserIDToFilters($userid, $filters); + + return AppClient::count($filters); + } + + /** + * @permission anonymous + * + * @throws string + * + * @return \app\security\UserPrincipal + */ + public function CurrentUser(): UserPrincipal { + return CurrentUser::getPrincipal(); + } + + /** + * @permission administrator|user + * + * @param int $id + * + * @throws string + */ + public function DeleteClient($id): void { + $client = $this->getMyClient($id); + + $client->delete(); + } + + /** + * @permission administrator|user + * + * @param int $id + * @param bool $enabled + * + * @throws string + * + * @return bool + */ + public function EnableClient($id, $enabled): bool { + $client = $this->getMyClient($id); + + $client->enabled = $enabled; + + return $client->save(); + } + + /** + * @permission oauth-provider + * + * @param string $bearerToken + * + * @throws string + * + * @return \app\domain\AccessToken + */ + public function GetAccessToken($bearerToken): AccessToken { + return AccessToken::findByToken($bearerToken); + } + + /** + * @permission anonymous + * + * @param string $clientId + * @param string $clientSecret + * + * @throws string + * + * @return \app\domain\AppClient|null + */ + public function GetClient($clientId, $clientSecret): AppClient|null { + $client = AppClient::find($clientId); + + if (!is_null($client) && $client->secret == $clientSecret) { + return $this->trimClient($client); + } + + return null; + } + + /** + * @permission oauth-provider + * @permission authenticated + * + * @param string $clientId + * + * @throws string + * + * @return \app\dto\TrimmedAppClient|null + */ + public function GetClientInfo($clientId): TrimmedAppClient|null { + $client = AppClient::find($clientId); + + if (!is_null($client)) { + return $this->trimClientInfo($client); + } + + return null; + } + + /** + * @permission oauth-provider + * + * @param string $refreshToken + * + * @throws string + * + * @return \app\domain\RefreshToken + */ + public function GetRefreshToken($refreshToken): RefreshToken { + return RefreshToken::findByToken($refreshToken); + } + + /** + * @permission oauth-provider + * + * @param string $username + * @param string $password + * + * @throws string + * + * @return \app\dto\TrimmedUser|null + */ + public function GetUser($username, $password): TrimmedUser|null { + return $this->trimUser(Authenticate::authenticateOnly($username, $password)); + } + + /** + * @permission administrator + * + * @param int $page + * @param int $size + * @param string $columns + * @param string $order + * @param string $filters + * + * @throws string + * + * @return \app\domain\AccessLog[] + */ + public function ListAccessLog($page, $size, $columns, $order, $filters): array { + if (is_string($filters)) { + //todo total hack.. this is to support GET params for downloading payments + $filters = json_decode($filters); + } + + return AccessLog::page($page, $size, $columns, $order, $filters); + } + + /** + * @permission administrator + * + * @param int $page + * @param int $size + * @param string $columns + * @param string $order + * @param string $filters + * + * @throws string + * + * @return \app\domain\AppClient[] + */ + public function ListClients($page, $size, $columns, $order, $filters): array { + return AppClient::page($page, $size, $columns, $order, $filters); + } + + /** + * @permission administrator|user + * + * @param int $userid + * @param int $page + * @param int $size + * @param string $columns + * @param string $order + * @param \vhs\domain\Filter $filters + * + * @throws string + * @throws \Exception + * + * @return \app\domain\AccessLog[] + */ + public function ListUserAccessLog($userid, $page, $size, $columns, $order, $filters): array { + $filters = $this->addUserIDToFilters($userid, $filters); + + return AccessLog::page($page, $size, $columns, $order, $filters); + } + + /** + * @permission administrator|user + * + * @param int $userid + * @param int $page + * @param int $size + * @param string $columns + * @param string $order + * @param string $filters + * + * @throws string + * @throws \Exception + * + * @return \app\domain\AppClient[] + */ + public function ListUserClients($userid, $page, $size, $columns, $order, $filters): array { + $userService2 = new UserServiceHandler2(); + $user = $userService2->GetUser($userid); + + if (is_string($filters)) { + //todo total hack.. this is to support GET params for downloading payments + $filters = json_decode($filters); + } + + if (is_null($user)) { + throw new UnauthorizedException('User not found or you do not have access'); + } + + $userFilter = Filter::Equal('userid', $user->id); + + if (is_null($filters) || $filters == '') { + $filters = $userFilter; + } else { + $filters = Filter::_And($userFilter, $filters); + } + + $cols = explode(',', $columns); + + array_push($cols, 'userid'); + + $columns = implode(',', array_unique($cols)); + + return AppClient::page($page, $size, $columns, $order, $filters); + } + + /** + * @permission anonymous + * + * @param string $username + * @param string $password + * + * @throws string + * + * @return string + */ + public function Login($username, $password): string { + try { + Authenticate::getInstance()->login(new UserPassCredentials($username, $password)); + } catch (\Exception $ex) { + return $ex->getMessage(); + } + + return StringLiterals::AUTH_ACCESS_GRANTED; + } + + /** + * @permission user + * + * @throws string + */ + public function Logout(): void { + Authenticate::getInstance()->logout(); + } + + /** + * @permission anonymous + * + * @param string $pin + * + * @throws string + * + * @return string + */ + public function PinLogin($pin): string { + try { + Authenticate::getInstance()->login(new PinCredentials($pin)); + } catch (\Exception $ex) { + return StringLiterals::AUTH_ACCESS_DENIED; + } + + return StringLiterals::AUTH_ACCESS_GRANTED; + } + + /** + * @permission administrator|user + * + * @param string $name + * @param string $description + * @param string $url + * @param string $redirecturi + * + * @throws string + * + * @return \app\domain\AppClient + */ + public function RegisterClient($name, $description, $url, $redirecturi): AppClient { + $client = new AppClient(); + + $client->name = $name; + $client->description = $description; + $client->url = $url; + $client->redirecturi = $redirecturi; + $client->secret = bin2hex(openssl_random_pseudo_bytes(32)); + $client->owner = User::find(CurrentUser::getIdentity()); + $client->expires = '2020-01-01'; + + $client->save(); + + return $client; + } + + /** + * @permission oauth-provider + * + * @param string $refreshToken + * + * @throws string + * + * @return bool + */ + public function RevokeRefreshToken($refreshToken): bool { + $token = RefreshToken::findByToken($refreshToken); + + if (is_null($token)) { + throw new \DomainException('RefreshToken token not found', 404); + } + + return $token->delete(); + } + + /** + * @permission anonymous + * + * @param string $key + * + * @throws string + * + * @return string + */ + public function RfidLogin($key): string { + try { + Authenticate::getInstance()->login(new PinCredentials($key)); + } catch (\Exception $ex) { + return StringLiterals::AUTH_ACCESS_DENIED; + } + + return StringLiterals::AUTH_ACCESS_GRANTED; + } + + /** + * @permission oauth-provider + * + * @param int $userId + * @param string $accessToken + * @param int $clientId + * @param string $expires + * + * @throws string + * + * @return \app\domain\User|false + */ + public function SaveAccessToken($userId, $accessToken, $clientId, $expires): User|false { + $user = User::find($userId); + $client = AppClient::find($clientId); + + if (is_null($user)) { + return false; + } + + $token = new AccessToken(); + + $token->token = $accessToken; + $token->user = $user; + + if (!is_null($client)) { + $token->client = $client; + } + + $expiry = new DateTime($expires); + + $token->expires = $expiry->format('Y-m-d H:i:s'); + + $token->save(); + + return $user; + } + + /** + * @permission oauth-provider + * + * @param int $userId + * @param string $refreshToken + * @param int $clientId + * @param string $expires + * + * @throws string + * + * @return \app\dto\RefreshToken|false|null + */ + public function SaveRefreshToken($userId, $refreshToken, $clientId, $expires): array|bool|null { + $user = User::find($userId); + $client = AppClient::find($clientId); + + if (is_null($user)) { + return false; + } + + $token = new RefreshToken(); + + $token->token = $refreshToken; + $token->user = $user; + + if (!is_null($client)) { + $token->client = $client; + } + + $expiry = new DateTime($expires); + + $token->expires = $expiry->format('Y-m-d H:i:s'); + + $token->save(); + + return $this->trimUser($user); + } + + /** + * Summary of AddUserIDToFilters. + * + * @param mixed $userid + * @param mixed $filters + * + * @throws \vhs\security\exceptions\UnauthorizedException + * @throws string + * + * @return \vhs\domain\Filter + */ + private function addUserIDToFilters($userid, $filters): Filter { + $userService2 = new UserServiceHandler2(); + $user = $userService2->GetUser($userid); + + if (is_string($filters)) { + //todo total hack.. this is to support GET params for downloading payments + $filters = json_decode($filters); + } + + if (is_null($user)) { + throw new UnauthorizedException('User not found or you do not have access'); + } + + $userFilter = Filter::Equal('userid', $user->id); + + if (is_null($filters) || $filters == '') { + $filters = $userFilter; + } else { + $filters = Filter::_And($userFilter, $filters); + } + + return $filters; + } + + /** + * Summary of getMyClient. + * + * @param int $id + * + * @throws string + * + * @return \app\domain\AppClient|null + */ + private function getMyClient($id): AppClient|null { + $client = AppClient::find($id); + + if (is_null($client)) { + return null; + } + + if (CurrentUser::getIdentity() == $client->userid || CurrentUser::hasAnyPermissions('administrator')) { + return $client; + } + + return null; + } + + /** + * Summary of trimClient. + * + * @param mixed $client + * + * @throws string + * + * @return \app\dto\TrimmedAppClient|null + */ + private function trimClient($client): TrimmedAppClient|null { + if (is_null($client)) { + return null; + } + + return new TrimmedAppClient([ + 'id' => $client->id, + 'expires' => $client->expires, + 'owner' => $this->trimUser($client->owner), + 'name' => $client->name, + 'description' => $client->description, + 'url' => $client->url, + 'redirecturi' => $client->redirecturi, + 'enabled' => $client->enabled + ]); + } + + /** + * Summary of trimClientInfo. + * + * @param AppClient|null $client + * + * @throws string + * + * @return \app\dto\TrimmedAppClient|null + */ + private function trimClientInfo($client): TrimmedAppClient|null { + if (is_null($client)) { + return null; + } + + return new TrimmedAppClient($client->name, $client->description, $client->url, $client->redirecturi); + } + + /** + * Summary of trimUser. + * + * @param User $user + * + * @throws string + * + * @return \app\dto\TrimmedUser|null + */ + private function trimUser($user): TrimmedUser|null { + if (is_null($user)) { + return null; + } + + return new TrimmedUser([ + 'id' => $user->id, + 'username' => $user->username, + 'email' => $user->email, + 'fname' => $user->fname, + 'lname' => $user->lname, + 'membership' => $user->membership, + 'expires' => $user->mem_expire, + 'created' => $user->created, + 'active' => $user->active, + 'privileges' => $user->privileges + ]); + } +} diff --git a/app/handlers/v2/EmailServiceHandler2.php b/app/handlers/v2/EmailServiceHandler2.php new file mode 100644 index 00000000..4827022a --- /dev/null +++ b/app/handlers/v2/EmailServiceHandler2.php @@ -0,0 +1,284 @@ +delete(); + } + + /** + * Summary of Email. + * + * @permission administrator + * + * @param string $email + * @param string $tmpl + * @param array $context + * @param string|null $subject + * + * @throws string + */ + public function Email($email, $tmpl, $context, $subject = null): void { + $generated = EmailTemplate::generate($tmpl, $context); + + if (is_null($generated)) { + throw new InvalidInputException('Unable to load e-mail template'); + } + + if (is_null($subject)) { + $subject = $generated['subject']; + } + + $client = new SesClient([ + 'region' => AWS_SES_REGION, + 'credentials' => [ + 'key' => AWS_SES_CLIENT_ID, + 'secret' => AWS_SES_SECRET + ] + ]); + + $client->sendEmail([ + 'Source' => NOMOS_FROM_EMAIL, + 'Destination' => [ + 'ToAddresses' => [$email] + ], + 'Message' => [ + 'Subject' => [ + // Data is required + 'Data' => $subject + ], + // Body is required + 'Body' => [ + 'Text' => [ + // Data is required + 'Data' => $generated['txt'] + ], + 'Html' => [ + // Data is required + 'Data' => $generated['html'] + ] + ] + ] + ]); + } + + /** + * Summary of EmailUser. + * + * @permission administrator + * + * @param \app\domain\User $user email address + * @param string $tmpl + * @param array $context + * @param string|null $subject + * + * @throws string + */ + public function EmailUser($user, $tmpl, $context, $subject = null): void { + $this->Email($user->email, $tmpl, $context, $subject); + } + + /** + * @permission administrator + * + * @param int $id + * + * @throws string + * + * @return \app\domain\EmailTemplate + */ + public function GetTemplate($id): EmailTemplate { + return EmailTemplate::find($id); + } + + /** + * @permission administrator + * + * @param int $page + * @param int $size + * @param string $columns + * @param string $order + * @param string $filters + * + * @throws string + * + * @return \app\domain\EmailTemplate[] + */ + public function ListTemplates($page, $size, $columns, $order, $filters): array { + return EmailTemplate::page($page, $size, $columns, $order, $filters); + } + + /** + * @permission administrator + * + * @param string $name + * @param string $code + * @param string $subject + * @param string $help + * @param string $body + * @param string $html + * + * @throws string + * + * @return bool + */ + public function PutTemplate($name, $code, $subject, $help, $body, $html): bool { + $template = EmailTemplate::findByCode($code); + + if (is_null($template)) { + $template = new EmailTemplate(); + } + + $template->name = $name; + $template->code = $code; + $template->subject = $subject; + $template->help = $help; + $template->body = $body; + $template->html = $html; + + return $template->save(); + } + + /** + * @permission administrator + * + * @param int $id + * @param string $body + * + * @throws string + * + * @return bool + */ + public function UpdateTemplateBody($id, $body): bool { + $template = EmailTemplate::find($id); + + $template->body = $body; + + return $template->save(); + } + + /** + * @permission administrator + * + * @param int $id + * @param string $code + * + * @throws string + * + * @return bool + */ + public function UpdateTemplateCode($id, $code): bool { + $template = EmailTemplate::find($id); + + $template->code = $code; + + return $template->save(); + } + + /** + * @permission administrator + * + * @param int $id + * @param string $help + * + * @throws string + * + * @return bool + */ + public function UpdateTemplateHelp($id, $help): bool { + $template = EmailTemplate::find($id); + + $template->help = $help; + + return $template->save(); + } + + /** + * @permission administrator + * + * @param int $id + * @param string $html + * + * @throws string + * + * @return bool + */ + public function UpdateTemplateHtml($id, $html): bool { + $template = EmailTemplate::find($id); + + $template->html = $html; + + return $template->save(); + } + + /** + * @permission administrator + * + * @param int $id + * @param string $name + * + * @throws string + * + * @return bool + */ + public function UpdateTemplateName($id, $name): bool { + $template = EmailTemplate::find($id); + + $template->name = $name; + + return $template->save(); + } + + /** + * @permission administrator + * + * @param int $id + * @param string $subject + * + * @throws string + * + * @return bool + */ + public function UpdateTemplateSubject($id, $subject): bool { + $template = EmailTemplate::find($id); + + $template->subject = $subject; + + return $template->save(); + } +} diff --git a/app/handlers/v2/EventServiceHandler2.php b/app/handlers/v2/EventServiceHandler2.php new file mode 100644 index 00000000..f9113bd2 --- /dev/null +++ b/app/handlers/v2/EventServiceHandler2.php @@ -0,0 +1,299 @@ +name = $name; + $evt->domain = $domain; + $evt->event = $event; + $evt->description = $description; + $evt->enabled = $enabled; + + return $evt->save(); + } + + /** + * @permission administrator + * + * @param int $id + * + * @throws string + */ + public function DeleteEvent($id): void { + $event = $this->getEventById($id); + + $event->delete(); + } + + /** + * @permission administrator + * + * @param int $id + * @param bool $enabled + * + * @throws string + * + * @return bool + */ + public function EnableEvent($id, $enabled): bool { + $evt = $this->getEventById($id); + + $evt->enabled = $enabled; + + return $evt->save(); + } + + /** + * @permission user + * + * @throws string + * + * @return \app\domain\Event[] + */ + public function GetAccessibleEvents(): array { + $events = Event::findAll(); + + if (CurrentUser::hasAllPermissions('administrator')) { + return $events; + } + + $retval = []; + + foreach ($events as $event) { + $privs = []; + foreach ($event->privileges->all() as $priv) { + array_push($privs, $priv->code); + } + + if (CurrentUser::hasAllPermissions(...$privs)) { + array_push($retval, $event); + } + } + + return $retval; + } + + /** + * @permission webhook|administrator + * + * @param string $domain + * + * @throws string + */ + public function GetDomainDefinition($domain): void { + // TODO: Implement GetDomainDefinition() method. + } + + /** + * @permission webhook|administrator + * + * @throws string + * + * @return mixed[] + */ + public function GetDomainDefinitions(): array { + foreach (glob('domain/*.php') as $filename) { + include_once $filename; + } + + $domains = []; + + foreach (get_declared_classes() as $class) { + if (is_subclass_of($class, '\\vhs\\domain\\Domain')) { + $name = str_replace('app\\domain\\', '', $class); + $domains[$name] = [ + 'checks' => $class::Schema()->Table()->checks + ]; + } + } + + return $domains; + } + + /** + * @permission administrator + * + * @param int $id + * + * @throws string + * + * @return \app\domain\Event + */ + public function GetEvent($id): Event { + return $this->getEventById($id); + } + + /** + * @permission webhook|administrator + * + * @throws string + * + * @return \app\domain\Event[] + */ + public function GetEvents(): array { + return Event::findAll(); + } + + /** + * @permission administrator + * + * @throws string + * + * @return string[] + */ + public function GetEventTypes(): array { + $updateKeys = array_filter(get_class_methods('vhs\domain\Domain'), function ($k) { + return preg_match('/^onAny/', $k); + }); + + sort($updateKeys); + + return array_map(fn($method): string => str_replace('before', 'before:', strtolower(str_replace('onAny', '', $method))), $updateKeys); + } + + /** + * @permission webhook|administrator + * + * @param int $page + * @param int $size + * @param string $columns + * @param string $order + * @param string $filters + * + * @throws string + * + * @return \app\domain\Event[] + */ + public function ListEvents($page, $size, $columns, $order, $filters): array { + return Event::page($page, $size, $columns, $order, $filters); + } + + /** + * @permission administrator + * + * @param int $id + * @param string $privileges + * + * @throws string + * + * @return bool + */ + public function PutEventPrivileges($id, $privileges): bool { + $evt = $this->getEventById($id); + + $privArray = $privileges; + + if (!is_array($privArray)) { + $privArray = explode(',', $privileges); + } + + $privs = Privilege::findByCodes(...$privArray); + + foreach ($evt->privileges->all() as $priv) { + $evt->privileges->remove($priv); + } + + foreach ($privs as $priv) { + $evt->privileges->add($priv); + } + + return $evt->save(); + } + + /** + * @permission administrator + * + * @param int $id + * @param string $name + * @param string $domain + * @param string $event + * @param string $description + * @param bool $enabled + * + * @throws string + * + * @return bool + */ + public function UpdateEvent($id, $name, $domain, $event, $description, $enabled): bool { + $evt = $this->getEventById($id); + + $evt->name = $name; + $evt->domain = $domain; + $evt->event = $event; + $evt->description = $description; + $evt->enabled = $enabled; + + return $evt->save(); + } + + /** + * Summary of getEventById. + * + * @param int $id + * + * @throws \app\exceptions\InvalidInputException + * @throws string + * + * @return \app\domain\Event + */ + private function getEventById($id): Event { + $evt = Event::find($id); + + if (is_null($evt)) { + throw new InvalidInputException(Errors::E_INVALID_EVENT); + } + + return $evt; + } +} diff --git a/app/handlers/v2/IpnServiceHandler2.php b/app/handlers/v2/IpnServiceHandler2.php new file mode 100644 index 00000000..7636f3c6 --- /dev/null +++ b/app/handlers/v2/IpnServiceHandler2.php @@ -0,0 +1,64 @@ +getKeyById($keyid); + + $key->delete(); + } + + /** + * @permission administrator|user + * + * @param int $userid + * @param string $type + * @param string $value + * @param string $notes + * + * @throws string + * + * @return \app\domain\Key|null + */ + public function GenerateUserKey($userid, $type, $value, $notes): Key|null { + if (CurrentUser::getIdentity() == $userid || CurrentUser::hasAnyPermissions('administrator')) { + $user = User::find($userid); + + if ($user != null) { + $key = new Key(); + + switch ($type) { + case 'rfid': + $key->key = $value; + + break; + case 'pin': + $nextpinid = Database::scalar(Query::Select(SettingsSchema::Table(), SettingsSchema::Columns()->nextpinid)); + $key->key = sprintf('%04s', $nextpinid) . '|' . sprintf('%04s', rand(0, 9999)); + $key->privileges->add(Privilege::findByCode('inherit')); + + break; + case 'api': + $key->key = bin2hex(openssl_random_pseudo_bytes(32)); + + break; + default: + throw new InvalidInputException('Unsupported key type'); + } + + $key->notes = $notes; + $key->type = $type; + $key->userid = $userid; + + $key->save(); + + return $key; + } + } + + return null; + } + + /** + * @permission administrator + * + * @throws string + * + * @return \app\domain\Key[] + */ + public function GetAllKeys(): array { + if (!CurrentUser::hasAnyPermissions('administrator')) { + throw new UnauthorizedException(); + } + + return Key::findAll(); + } + + /** + * @permission administrator|user + * + * @param int $keyid + * + * @throws string + * + * @return \app\domain\Key + */ + public function GetKey($keyid): Key { + return $this->getKeyById($keyid); + } + + /** + * @permission administrator + * + * @throws string + * + * @return \app\domain\Key[] + */ + public function GetSystemKeys(): array { + if (!CurrentUser::hasAnyPermissions('administrator')) { + throw new UnauthorizedException(); + } + + return Key::where(Where::Null(Key::Schema()->Columns()->userid)); + } + + /** + * @permission administrator|user + * + * @param int $userid + * @param string[] $types + * + * @throws string + * + * @return \app\domain\Key[] + */ + public function GetUserKeys($userid, $types): array { + if (CurrentUser::getIdentity() == $userid || CurrentUser::hasAnyPermissions('administrator')) { + $user = User::find($userid); + if ($user != null) { + $keys = []; + foreach ($user->keys->all() as $key) { + if (in_array($key->type, $types)) { + array_push($keys, $key); + } + } + + return $keys; + } + } + + return []; + } + + /** + * @permission administrator|user + * + * @param int $keyid + * @param string $privileges + * + * @throws string + * + * @return bool + */ + public function PutKeyPrivileges($keyid, $privileges): bool { + $key = $this->getKeyById($keyid); + + $privArray = $privileges; + + if (!is_array($privArray)) { + $privArray = []; + array_push($privArray, $privileges); + } + + $privs = Privilege::findByCodes(...$privArray); + + foreach ($key->privileges->all() as $priv) { + $key->privileges->remove($priv); + } + + foreach ($privs as $priv) { + $key->privileges->add($priv); + } + + return $key->save(); + } + + /** + * @permission administrator|user + * + * @param int $keyid + * @param string $notes + * @param string $expires + * + * @throws string + * + * @return bool + */ + public function UpdateKey($keyid, $notes, $expires): bool { + $key = $this->getKeyById($keyid); + + $key->notes = $notes; + $key->expires = $expires; + + return $key->save(); + } + + /** + * Summary of getKeyById. + * + * @param mixed $keyid + * + * @throws \app\exceptions\InvalidInputException + * @throws \vhs\security\exceptions\UnauthorizedException + * @throws string + * + * @return \app\domain\Key + */ + private function getKeyById($keyid): Key { + $key = Key::find($keyid); + + if (is_null($key)) { + throw new InvalidInputException('Invalid keyid'); + } + + if (!CurrentUser::hasAnyPermissions('administrator')) { + if (is_null($key->userid) || $key->userid != CurrentUser::getIdentity()) { + throw new UnauthorizedException(); + } + } + + return $key; + } +} diff --git a/app/handlers/v2/MemberCardServiceHandler2.php b/app/handlers/v2/MemberCardServiceHandler2.php new file mode 100644 index 00000000..f9485f8d --- /dev/null +++ b/app/handlers/v2/MemberCardServiceHandler2.php @@ -0,0 +1,274 @@ +addUserIDToFilters($userid, $filters); + + return GenuineCard::count($filters); + } + + /** + * @permission administrator + * + * @param string $key + * + * @throws string + * + * @return \app\domain\GenuineCard + */ + public function GetGenuineCardDetails($key): GenuineCard { + return GenuineCard::findByKey($key)[0]; + } + + /** + * @permission administrator + * + * @param string $email + * @param string $key + * + * @throws \Exception + * @throws string + * + * @return \app\domain\GenuineCard + */ + public function IssueCard($email, $key): GenuineCard { + $users = User::findByPaymentEmail($email); + + if (is_null($users) || count($users) != 1) { + throw new InvalidInputException('Invalid email address'); + } + + if (!$this->ValidateGenuineCard($key)) { + throw new InvalidInputException('Invalid card'); + } + + $user = $users[0]; + $card = GenuineCard::findByKey($key)[0]; + + $payments = Payment::where( + Where::_And( + Where::Equal(Payment::Schema()->Columns()->status, 1), + Where::Equal(Payment::Schema()->Columns()->item_number, 'vhs_card_2015'), //TODO eventually put these into card campaigns or something + Where::Equal(Payment::Schema()->Columns()->payer_email, $email), + Where::Equal(Payment::Schema()->Columns()->user_id, $user->id), + Where::NotIn( + Payment::Schema()->Columns()->id, + Query::Select(GenuineCard::Schema()->Table(), new Columns(GenuineCard::Schema()->Columns()->paymentid)) + ) + ) + ); + + if (is_null($payments) || count($payments) < 1) { + throw new MemberCardException('User has not paid for a member card.'); + } + + $payment = $payments[0]; + + $card->paymentid = $payment->id; + $card->active = true; + $card->userid = $user->id; + $card->owneremail = $email; + $card->issued = date('Y-m-d H:i:s'); + $card->notes = 'Issued by admin to ' . $user->fname . ' ' . $user->lname; + + $card->save(); + + $keyService2 = new KeyServiceHandler2(); + + $keyService2->GenerateUserKey($user->id, 'rfid', $key, 'Genuine VHS Membership Card'); + + return $card; + } + + /** + * @permission administrator + * + * @param int $page + * @param int $size + * @param string $columns + * @param string $order + * @param string $filters + * + * @throws string + * + * @return \app\domain\GenuineCard[] + */ + public function ListGenuineCards($page, $size, $columns, $order, $filters): array { + return GenuineCard::page($page, $size, $columns, $order, $filters); + } + + /** + * @permission administrator|user + * + * @param int $userid + * @param int $page + * @param int $size + * @param string $columns + * @param string $order + * @param string $filters + * + * @throws \Exception + * @throws string + * + * @return \app\domain\GenuineCard[] + */ + public function ListUserGenuineCards($userid, $page, $size, $columns, $order, $filters): array { + $userService2 = new UserServiceHandler2(); + $user = $userService2->GetUser($userid); + + if (is_string($filters)) { + //todo total hack.. this is to support GET params for downloading payments + $filters = json_decode($filters); + } + + if (is_null($user)) { + throw new UnauthorizedException('User not found or you do not have access'); + } + + $userFilter = Filter::_Or(Filter::Equal('userid', $user->id), Filter::Equal('owneremail', $user->email)); + + if (is_null($filters) || $filters == '') { + $filters = $userFilter; + } else { + $filters = Filter::_And($userFilter, $filters); + } + + return GenuineCard::page($page, $size, $columns, $order, $filters); + } + + /** + * @permission administrator + * + * @param string $key + * @param string $notes + * + * @throws \Exception + * @throws string + * + * @return \app\domain\GenuineCard + */ + public function RegisterGenuineCard($key, $notes): GenuineCard { + $keys = GenuineCard::findByKey($key); + + if (!is_null($keys) && count($keys) != 0) { + //card already registered + throw new MemberCardException('Failed to register card'); + } + + $card = new GenuineCard(); + + $card->key = $key; + + $card->save(); + + return $card; + } + + /** + * @permission administrator + * + * @param string $key + * @param string $active + * + * @throws \Exception + * @throws string + * + * @return bool + */ + public function UpdateGenuineCardActive($key, $active): bool { + if (!$this->ValidateGenuineCard($key)) { + throw new InvalidInputException('Invalid card'); + } + + $card = GenuineCard::findByKey($key)[0]; + + $card->active = $active; + + return $card->save(); + } + + /** + * @permission authenticated + * + * @param string $key + * + * @throws string + * + * @return bool + */ + public function ValidateGenuineCard($key): bool { + $keys = GenuineCard::findByKey($key); + + return !is_null($keys) && count($keys) == 1; + } + + private function addUserIDToFilters($userid, $filters) { + $userService2 = new UserServiceHandler2(); + $user = $userService2->GetUser($userid); + + if (is_string($filters)) { + //todo total hack.. this is to support GET params for downloading payments + $filters = json_decode($filters); + } + + if (is_null($user)) { + throw new UnauthorizedException('User not found or you do not have access'); + } + + $userFilter = Filter::Equal('userid', $user->id); + + if (is_null($filters) || $filters == '') { + $filters = $userFilter; + } else { + $filters = Filter::_And($userFilter, $filters); + } + + return $filters; + } +} diff --git a/app/handlers/v2/MembershipServiceHandler2.php b/app/handlers/v2/MembershipServiceHandler2.php new file mode 100644 index 00000000..a5b3fbf2 --- /dev/null +++ b/app/handlers/v2/MembershipServiceHandler2.php @@ -0,0 +1,217 @@ +getMembershipById($membershipId); + + $privArray = $privileges; + + if (!is_array($privArray)) { + $privArray = explode(',', $privileges); + } + + $privs = Privilege::findByCodes(...$privArray); + + foreach ($membership->privileges->all() as $priv) { + $membership->privileges->remove($priv); + } + + foreach ($privs as $priv) { + $membership->privileges->add($priv); + } + + return $membership->save(); + } + + /** + * @permission administrator + * + * @param int $membershipId + * @param string $title + * @param string $description + * @param int $price + * @param string $code + * @param string $days + * @param string $period + * + * @throws string + * + * @return bool + */ + public function Update($membershipId, $title, $description, $price, $code, $days, $period): bool { + $membership = $this->getMembershipById($membershipId); + + $membership->title = $title; + $membership->description = $description; + $membership->price = $price; + $membership->code = $code; + $membership->days = $days; + $membership->period = $period; + + return $membership->save(); + } + + /** + * @permission administrator + * + * @param int $membershipId + * @param bool $active + * + * @throws string + * + * @return bool + */ + public function UpdateActive($membershipId, $active): bool { + $membership = $this->getMembershipById($membershipId); + + $membership->active = $active; + + return $membership->save(); + } + + /** + * @permission administrator + * + * @param int $membershipId + * @param bool $private + * + * @throws string + * + * @return bool + */ + public function UpdatePrivate($membershipId, $private): bool { + $membership = $this->getMembershipById($membershipId); + + $membership->private = $private; + + return $membership->save(); + } + + /** + * @permission administrator + * + * @param int $membershipId + * @param bool $recurring + * + * @throws string + * + * @return bool + */ + public function UpdateRecurring($membershipId, $recurring): bool { + $membership = $this->getMembershipById($membershipId); + + $membership->recurring = $recurring; + + return $membership->save(); + } + + /** + * @permission administrator + * + * @param int $membershipId + * @param bool $trial + * + * @throws string + * + * @return bool + */ + public function UpdateTrial($membershipId, $trial): bool { + $membership = $this->getMembershipById($membershipId); + + $membership->trial = $trial; + + return $membership->save(); + } + + private function getMembershipById($membershipId): Membership { + return Membership::find($membershipId); + } +} diff --git a/app/handlers/v2/MetricServiceHandler2.php b/app/handlers/v2/MetricServiceHandler2.php new file mode 100644 index 00000000..4ebed5a0 --- /dev/null +++ b/app/handlers/v2/MetricServiceHandler2.php @@ -0,0 +1,431 @@ +active, 'y'), + Where::GreaterEqual(UserSchema::Columns()->mem_expire, date('Y-m-d H:i:s')), + Where::LesserEqual(UserSchema::Columns()->created, date('Y-m-d 00:00:00', $end)), + Where::GreaterEqual(UserSchema::Columns()->created, date('Y-m-d 00:00:00', $start)) + ) + ); + + return Database::count($query); + } + + /** + * Get the total new memberships of a type recorded in the date range. + * + * @param int $membership_id int + * @param string $start int unixtime + * @param string $end int unixtime + * + * @throws string + * + * @return int + */ + protected static function NewMembershipByIdCount($membership_id, $start, $end): int { + $query = Query::count( + UserSchema::Table(), + Where::_And( + Where::Equal(UserSchema::Columns()->active, 'y'), + Where::GreaterEqual(UserSchema::Columns()->mem_expire, date('Y-m-d H:i:s')), + Where::Equal(UserSchema::Columns()->membership_id, $membership_id), + Where::LesserEqual(UserSchema::Columns()->created, date('Y-m-d 00:00:00', $end)), + Where::GreaterEqual(UserSchema::Columns()->created, date('Y-m-d 00:00:00', $start)) + ) + ); + + return Database::count($query); + } + + /** + * Get the total members. + * + * @param string $start int unixtime + * @param string $end int unixtime + * + * @throws string + * + * @return int + */ + protected static function TotalMemberCount(): int { + return Database::count( + Query::count( + UserSchema::Table(), + Where::_And( + Where::Equal(UserSchema::Columns()->active, 'y'), + Where::GreaterEqual(UserSchema::Columns()->mem_expire, date('Y-m-d H:i:s')) + ) + ) + ); + } + + protected static function TotalMembershipByIdCount($membership_id): int { + return Database::count( + Query::count( + UserSchema::Table(), + Where::_And( + Where::Equal(UserSchema::Columns()->active, 'y'), + Where::GreaterEqual(UserSchema::Columns()->mem_expire, date('Y-m-d H:i:s')), + Where::Equal(UserSchema::Columns()->membership_id, $membership_id) + ) + ) + ); + } + + /** + * @permission user + * + * @param string $start_range + * @param string $end_range + * + * @throws string + * + * @return mixed + */ + public function GetCreatedDates($start_range, $end_range): array { + $users = User::where( + Where::_And( + Where::GreaterEqual(User::Schema()->Columns()->created, $start_range), + Where::LesserEqual(User::Schema()->Columns()->created, $end_range) + ) + ); + + $byDowHour = []; + + $byMonthDow = []; + + foreach ($users as $user) { + $date = new DateTime($user->created); + + $dow = $date->format('w'); + $hour = $date->format('G'); + $month = $date->format('n'); + + if (!array_key_exists($dow, $byDowHour)) { + $byDowHour[$dow] = []; + $byDowHour[$dow]['total'] = 0; + } + + $byDowHour[$dow]['total'] += 1; + + if (!array_key_exists($hour, $byDowHour[$dow])) { + $byDowHour[$dow][$hour] = 0; + } + + $byDowHour[$dow][$hour] += 1; + + if (!array_key_exists($month, $byMonthDow)) { + $byMonthDow[$month] = []; + $byMonthDow[$month]['total'] = 0; + } + + $byMonthDow[$month]['total'] += 1; + + if (!array_key_exists($dow, $byMonthDow[$month])) { + $byMonthDow[$month][$dow] = 0; + } + + $byMonthDow[$month][$dow] += 1; + } + + return [ + 'start_range' => $start_range, + 'end_range' => $end_range, + 'byDowHour' => $byDowHour, + 'byMonthDow' => $byMonthDow + ]; + } + + /** + * @permission administrator + * + * @throws string + * + * @return mixed + */ + public function GetExceptionPayments(): array { + return Payment::where(Where::NotEqual(Payment::Schema()->Columns()->status, 1)); + } + + /** + * @permission user + * + * @param string $start_range + * @param string $end_range + * @param string $group + * + * @throws string + * + * @return mixed + */ + public function GetMembers($start_range, $end_range, $group): mixed { + $users = User::where( + Where::_And( + Where::GreaterEqual(User::Schema()->Columns()->created, $start_range), + Where::LesserEqual(User::Schema()->Columns()->created, $end_range) + ) + ); + + $payments = Payment::where( + Where::_And( + Where::Equal(Payment::Schema()->Columns()->status, 1), + Where::GreaterEqual(Payment::Schema()->Columns()->date, $start_range), + Where::LesserEqual(Payment::Schema()->Columns()->date, $end_range), + Where::Like(Payment::Schema()->Columns()->item_number, 'vhs_membership_%') + ) + ); + + $created = []; + $expired = []; + + foreach ($users as $user) { + $created = $this->countByDate($created, $user->created, $group); + $expired = $this->countByDate($expired, $user->mem_expire, $group); + } + + $total = []; + + foreach ($payments as $payment) { + $total = $this->countByDate($total, $payment->date, $group); + } + + ksort($created); + ksort($expired); + ksort($total); + + return [ + 'start_range' => $start_range, + 'end_range' => $end_range, + 'created' => $created, + 'expired' => $expired, + 'total' => $total + ]; + } + + /** + * @permission user + * + * @param string $start_range string iso date in UTC, if empty is start of today + * @param string $end_range string iso date in UTC, if empty is end of today + * + * @throws string + * + * @return mixed + */ + public function GetNewKeyHolders($start_range, $end_range): mixed { + $start = strtotime($start_range); + $end = strtotime($end_range); + $membership = Membership::findByCode(Membership::KEYHOLDER); + $count = self::NewMembershipByIdCount($membership[0]->id, $start, $end); + + return [ + 'start_range' => $start_range, + 'end_range' => $end_range, + 'value' => $count + ]; + } + + /** + * @permission user + * + * @param string $start_range string iso date in UTC, if empty is start of today + * @param string $end_range string iso date in UTC, if empty is end of today + * + * @throws string + * + * @return mixed + */ + public function GetNewMembers($start_range, $end_range): mixed { + $start = strtotime($start_range); + $end = strtotime($end_range); + $count = self::NewMemberCount($start, $end); + + return [ + 'start_range' => $start_range, + 'start' => $start, + 'end_range' => $end_range, + 'end' => $end, + 'value' => $count + ]; + } + + /** + * @permission administrator + * + * @throws string + * + * @return \app\domain\User[] + */ + public function GetPendingAccounts(): mixed { + return User::where(Where::Equal(User::Schema()->Columns()->active, 't')); + } + + /** + * @permission user + * + * @param string $start_range string iso date in UTC, if empty is end of today + * @param string $end_range string iso date in UTC, if empty is end of today + * @param string $group group by month, day, year + * + * @throws string + * + * @return mixed + */ + public function GetRevenue($start_range, $end_range, $group): mixed { + $payments = Payment::where( + Where::_And( + Where::Equal(Payment::Schema()->Columns()->status, 1), + Where::GreaterEqual(Payment::Schema()->Columns()->date, $start_range), + Where::LesserEqual(Payment::Schema()->Columns()->date, $end_range) + ) + ); + + $byMembership = []; + $byDate = []; + + foreach ($payments as $payment) { + $membershipKey = $payment->item_number == '' || is_null($payment->item_number) ? 'Donation' : $payment->item_number; + if (!array_key_exists($membershipKey, $byMembership)) { + $byMembership[$membershipKey] = []; + } + + $grouping = new DateTime($payment->date); + + switch ($group) { + case 'day': + $grouping = $grouping->format('Y-m-d'); + + break; + case 'month': + $grouping = $grouping->format('Y-m'); + + break; + case 'year': + $grouping = $grouping->format('Y'); + + break; + default: + $grouping = 'all'; + + break; + } + + if (!array_key_exists($grouping, $byMembership[$membershipKey])) { + $byMembership[$membershipKey][$grouping] = 0; + } + + $byMembership[$membershipKey][$grouping] += $payment->rate_amount; + + if (!array_key_exists($grouping, $byDate)) { + $byDate[$grouping] = 0; + } + + $byDate[$grouping] += $payment->rate_amount; + } + + return [ + 'start_range' => $start_range, + 'end_range' => $end_range, + 'grouping' => $byDate, + 'by_membership' => $byMembership + ]; + } + + /** + * @permission user + * + * @throws string + * + * @return mixed + */ + public function GetTotalKeyHolders(): mixed { + $membership = Membership::findByCode(Membership::KEYHOLDER); + $count = self::TotalMembershipByIdCount($membership[0]->id); + + return [ + 'value' => $count + ]; + } + + /** + * @permission user + * + * @throws string + * + * @return mixed + */ + public function GetTotalMembers(): mixed { + $count = self::TotalMemberCount(); + + return [ + 'value' => $count + ]; + } + + private function countByDate($arr, $date, $group): mixed { + if (is_null($date)) { + return $arr; + } + + $grouping = new DateTime($date); + + if ($grouping > new DateTime()) { + return $arr; + } + + switch ($group) { + case 'day': + $grouping = $grouping->format('Y-m-d'); + + break; + case 'month': + $grouping = $grouping->format('Y-m'); + + break; + case 'year': + $grouping = $grouping->format('Y'); + + break; + default: + $grouping = 'all'; + + break; + } + + if (!array_key_exists($grouping, $arr)) { + $arr[$grouping] = 0; + } + + $arr[$grouping] += 1; + + return $arr; + } +} diff --git a/app/handlers/v2/PaymentServiceHandler2.php b/app/handlers/v2/PaymentServiceHandler2.php new file mode 100644 index 00000000..3214922b --- /dev/null +++ b/app/handlers/v2/PaymentServiceHandler2.php @@ -0,0 +1,157 @@ +addUserIDOrEMailToFilters($userid, $filters); + + return Payment::count($filters); + } + + /** + * @permission administrator|user + * + * @param int $id + * + * @throws string + * + * @return \app\domain\Payment|null + */ + public function GetPayment($id): Payment|null { + $payment = Payment::find($id); + + if (is_null($payment)) { + return null; + } + + if (CurrentUser::getIdentity() == $payment->user_id || CurrentUser::hasAnyPermissions('administrator')) { + return $payment; + } + + return null; + } + + /** + * @permission administrator + * + * @param int $page + * @param int $size + * @param string $columns + * @param string $order + * @param string $filters + * + * @throws string + * + * @return \app\domain\Payment[] + */ + public function ListPayments($page, $size, $columns, $order, $filters): array { + return Payment::page($page, $size, $columns, $order, $filters); + } + + /** + * @permission administrator|user + * + * @param int $userid + * @param int $page + * @param int $size + * @param string $columns + * @param string $order + * @param string $filters + * + * @throws string + * + * @return \app\domain\Payment[] + */ + public function ListUserPayments($userid, $page, $size, $columns, $order, $filters): array { + $filters = $this->addUserIDOrEMailToFilters($userid, $filters); + + return Payment::page($page, $size, $columns, $order, $filters); + } + + /** + * @permission administrator + * + * @param int $paymentid + * + * @throws string + * + * @return string + */ + public function ReplayPaymentProcessing($paymentid): string { + $log = new StringLogger(); + + $log->log('Attempting a reply of payment id: ' . $paymentid); + + $processor = new PaymentProcessor($log); + + try { + $processor->paymentCreated($paymentid); + } catch (\Exception $ex) { + $log->log('Exception: ' . $ex->getMessage()); + $log->log($ex->getTraceAsString()); + } + + $log->log('Replay complete.'); + + return $log->fullText(); + } + + private function addUserIDOrEMailToFilters($userid, $filters): Filter { + $userService2 = new UserServiceHandler2(); + $user = $userService2->GetUser($userid); + + if (is_string($filters)) { + //todo total hack.. this is to support GET params for downloading payments + $filters = json_decode($filters); + } + + if (is_null($user)) { + throw new UnauthorizedException('User not found or you do not have access'); + } + + $userFilter = Filter::_Or(Filter::Equal('user_id', $user->id), Filter::Equal('payer_email', $user->email)); + + if (is_null($filters) || $filters == '') { + $filters = $userFilter; + } else { + $filters = Filter::_And($userFilter, $filters); + } + + return $filters; + } +} diff --git a/app/handlers/v2/PinServiceHandler2.php b/app/handlers/v2/PinServiceHandler2.php new file mode 100644 index 00000000..70f16d29 --- /dev/null +++ b/app/handlers/v2/PinServiceHandler2.php @@ -0,0 +1,212 @@ +getUserPinByUserId($userid); + + if (is_null($pin)) { + $nextpinid = Database::scalar(Query::Select(SettingsSchema::Table(), new Columns(SettingsSchema::Columns()->nextpinid))); + + $key = new Key(); + $key->userid = $userid; + $key->type = 'pin'; + $key->key = sprintf('%04s', $nextpinid) . '|' . sprintf('%04s', rand(0, 9999)); + $key->notes = 'User generated PIN'; + + $pin = $key; + + $priv = Privilege::findByCode('inherit'); + if (!is_null($priv)) { + $pin->privileges->add($priv); + } + } + + $pinid = explode('|', $pin->key)[0]; + + $pin->key = sprintf('%04s', $pinid) . '|' . sprintf('%04s', rand(0, 9999)); + $pin->notes = 'User generated PIN'; + + $pin->save(); + + return $pin; + } + + /** + * @permission gen-temp-pin|administrator + * + * @param string $expires + * @param string $privileges + * @param string $notes + * + * @throws string + * + * @return \app\domain\Key + */ + public function GenerateTemporaryPin($expires, $privileges, $notes): Key { + $userid = CurrentUser::getIdentity(); + + $nextpinid = Database::scalar(Query::Select(SettingsSchema::Table(), new Columns(SettingsSchema::Columns()->nextpinid))); + + $pin = new Key(); + $pin->userid = $userid; + $pin->expires = $expires; + $pin->type = 'pin'; + $pin->key = sprintf('%04s', $nextpinid) . '|' . sprintf('%04s', rand(0, 9999)); + $pin->notes = $notes; + + $privArray = $privileges; + + if (!is_array($privArray)) { + $privArray = explode(',', $privileges); + } + + $privs = Privilege::findByCodes(...$privArray); + + if (!is_null($privs) && is_array($privs)) { + foreach ($privs as $priv) { + if (CurrentUser::hasAllPermissions($priv->code)) { + $pin->privileges->add($priv); + } + } + } + + $pin->save(); + + return $pin; + } + + /** + * @permission administrator|user + * + * @param int $userid + * + * @throws string + * + * @return \app\domain\Key|null + */ + public function GetUserPin($userid): Key|null { + return $this->getUserPinByUserId($userid); + } + + /** + * @permission administrator|user + * + * @param int $keyid + * @param string $pin + * + * @throws string + * + * @return bool + */ + public function UpdatePin($keyid, $pin): bool { + $key = Key::find($keyid); + + if (!CurrentUser::hasAnyPermissions('administrator') && $key->userid != CurrentUser::getIdentity()) { + throw new UnauthorizedException(); + } + + $pinid = explode('|', $key->key)[0]; + + $key->key = $pinid . '|' . sprintf('%04s', intval($pin)); + + return $key->save(); + } + + /** + * Change a pin. + * + * @permission administrator|user + * + * @param int $userid + * @param string $pin + * + * @throws string + * + * @return bool + */ + public function UpdateUserPin($userid, $pin): bool { + if (!CurrentUser::hasAnyPermissions('administrator') && $userid != CurrentUser::getIdentity()) { + throw new UnauthorizedException(); + } + + $pinObj = $this->getUserPinByUserId($userid); + + if (is_null($pin)) { + $pinObj = $this->GeneratePin($userid); + } + + $pinid = explode('|', $pinObj->key)[0]; + + $pinObj->key = $pinid . '|' . $pin; + + return $pinObj->save(); + } + + /** + * Summary of getUserPinByUserId. + * + * @param mixed $userid + * + * @throws \vhs\security\exceptions\UnauthorizedException + * @throws string + * + * @return \app\domain\Key|null + */ + private function getUserPinByUserId($userid): ?\app\domain\Key { + if (!CurrentUser::hasAnyPermissions('administrator') && $userid != CurrentUser::getIdentity()) { + throw new UnauthorizedException(); + } + + $keys = Key::where(Where::_And(Where::Equal(Key::Schema()->Columns()->type, 'pin'), Where::Equal(Key::Schema()->Columns()->userid, $userid))); + + return !empty($keys) ? $keys[0] : null; + } +} diff --git a/app/handlers/v2/PreferenceServiceHandler2.php b/app/handlers/v2/PreferenceServiceHandler2.php new file mode 100644 index 00000000..37c7125d --- /dev/null +++ b/app/handlers/v2/PreferenceServiceHandler2.php @@ -0,0 +1,240 @@ +delete(); + } + } + + /** + * @permission administrator + * + * @throws string + * + * @return \app\domain\SystemPreference[] + */ + public function GetAllSystemPreferences(): array { + return SystemPreference::findAll(); + } + + /** + * @permission administrator + * + * @param string $id + * + * @throws string + * + * @return \app\domain\SystemPreference + */ + public function GetSystemPreference($id): SystemPreference { + return SystemPreference::find($id); + } + + /** + * @permission administrator + * + * @param int $page + * @param int $size + * @param string $columns + * @param string $order + * @param string $filters + * + * @throws string + * + * @return \app\domain\SystemPreference[] + */ + public function ListSystemPreferences($page, $size, $columns, $order, $filters): array { + return SystemPreference::page($page, $size, $columns, $order, $filters); + } + + /** + * @permission administrator + * + * @param string $key + * @param string $value + * @param bool $enabled + * @param string $notes + * + * @throws string + * + * @return bool + */ + public function PutSystemPreference($key, $value, $enabled, $notes): bool { + $prefs = SystemPreference::findByKey($key); + + $pref = null; + + if (count($prefs) != 1) { + $pref = new SystemPreference(); + } else { + $pref = $prefs[0]; + } + + $pref->key = $key; + $pref->value = $value; + $pref->enabled = $enabled; + $pref->notes = $notes; + + return $pref->save(); + } + + /** + * @permission administrator + * + * @param int $id + * @param string $privileges + * + * @throws string + * + * @return bool + */ + public function PutSystemPreferencePrivileges($id, $privileges): bool { + $pref = SystemPreference::find($id); + + if (is_null($pref)) { + return false; + } + + $privArray = $privileges; + + if (!is_array($privArray)) { + $privArray = explode(',', $privileges); + } + + $privs = Privilege::findByCodes(...$privArray); + + foreach ($pref->privileges->all() as $priv) { + $pref->privileges->remove($priv); + } + + foreach ($privs as $priv) { + $pref->privileges->add($priv); + } + + return $pref->save(); + } + + /** + * @permission anonymous + * + * @param string $key + * + * @throws string + * + * @return \app\domain\SystemPreference|null + */ + public function SystemPreference($key): SystemPreference|null { + $prefs = SystemPreference::findByKey($key, function ($privileges) { + $codes = []; + foreach ($privileges->all() as $priv) { + array_push($codes, $priv->code); + } + + return CurrentUser::hasAllPermissions(...$codes); + }); + + if (count($prefs) != 1) { + return null; + } + + return $prefs[0]; + } + + /** + * @permission administrator + * + * @param int $id + * @param string $key + * @param string $value + * @param bool $enabled + * @param string $notes + * + * @throws string + * + * @return bool + */ + public function UpdateSystemPreference($id, $key, $value, $enabled, $notes): bool { + $pref = SystemPreference::find($id); + + if (is_null($pref)) { + throw new \vhs\domain\exceptions\DomainException('SystemPreference not found', 404); + } + + $pref->key = $key; + $pref->value = $value; + $pref->enabled = $enabled; + $pref->notes = $notes; + + return $pref->save(); + } + + /** + * @permission administrator + * + * @param string $key + * @param bool $enabled + * + * @throws string + * + * @return bool + */ + public function UpdateSystemPreferenceEnabled($key, $enabled): bool { + $prefs = SystemPreference::findByKey($key); + + $pref = null; + + if (count($prefs) != 1) { + throw new \vhs\domain\exceptions\DomainException('SystemPreference not found', 404); + } + + $pref = $prefs[0]; + + $pref->key = $key; + $pref->enabled = $enabled; + + return $pref->save(); + } +} diff --git a/app/handlers/v2/PrivilegeServiceHandler2.php b/app/handlers/v2/PrivilegeServiceHandler2.php new file mode 100644 index 00000000..516710b8 --- /dev/null +++ b/app/handlers/v2/PrivilegeServiceHandler2.php @@ -0,0 +1,254 @@ +name = $name; + $priv->code = $code; + $priv->description = $description; + $priv->icon = $icon; + $priv->enabled = $enabled; + + $priv->save(); + + return $priv; + } + + /** + * @permission administrator + * + * @param int $id + * + * @throws string + */ + public function DeletePrivilege($id): void { + $priv = Privilege::find($id); + + $priv->delete(); + } + + /** + * @permission administrator|user|grants + * + * @throws string + * + * @return \app\domain\Privilege[] + */ + public function GetAllPrivileges(): array { + return Privilege::findAll(); + } + + /** + * @permission administrator + * + * @throws string + * + * @return string[] + */ + public function GetAllSystemPermissions(): array { + $endpoints = ServiceRegistry::get('web')->getAllEndpoints(); + + $flatPerms = []; + + /** @var Endpoint $endpoint */ + foreach ($endpoints as $endpoint) { + foreach ($endpoint->getAllPermissions() as $permissions) { + foreach ($permissions as $set) { + array_push($flatPerms, ...$set); + } + } + } + + $flatPerms = array_unique($flatPerms); + + $retval = []; + + foreach ($flatPerms as $perm) { + array_push($retval, $perm); + } + + return $retval; + } + + /** + * @permission user + * + * @param int $id + * + * @throws string + * + * @return \app\domain\Privilege + */ + public function GetPrivilege($id): Privilege { + return Privilege::find($id); + } + + /** + * @permission administrator|user + * + * @param int $userid + * + * @throws string + * + * @return \app\domain\Privilege[] + */ + public function GetUserPrivileges($userid): array { + $privileges = []; + $userService2 = new UserServiceHandler2($this->context); + + $user = $userService2->GetUser($userid); + + if (!is_null($user)) { + foreach ($user->privileges->all() as $privilege) { + array_push($privileges, $privilege); + } + + foreach ($user->membership->privileges->all() as $privilege) { + array_push($privileges, $privilege); + } + } + + return $privileges; + } + + /** + * @permission administrator|user|grants + * + * @param int $page + * @param int $size + * @param string $columns + * @param string $order + * @param string $filters + * + * @throws string + * + * @return \app\domain\Privilege[] + */ + public function ListPrivileges($page, $size, $columns, $order, $filters): array { + return Privilege::page($page, $size, $columns, $order, $filters); + } + + /** + * @permission administrator + * + * @param int $id + * @param string $description + * + * @throws string + * + * @return bool + */ + public function UpdatePrivilegeDescription($id, $description): bool { + $priv = Privilege::find($id); + + $priv->description = $description; + + return $priv->save(); + } + + /** + * @permission administrator + * + * @param int $id + * @param bool $enabled + * + * @throws string + * + * @return bool + */ + public function UpdatePrivilegeEnabled($id, $enabled): bool { + $priv = Privilege::find($id); + + $priv->enabled = $enabled; + + return $priv->save(); + } + + /** + * @permission administrator + * + * @param int $id + * @param string $icon + * + * @throws string + * + * @return bool + */ + public function UpdatePrivilegeIcon($id, $icon): bool { + $priv = Privilege::find($id); + + $priv->icon = $icon; + + return $priv->save(); + } + + /** + * @permission administrator + * + * @param int $id + * @param string $name + * + * @throws string + * + * @return bool + */ + public function UpdatePrivilegeName($id, $name): bool { + $priv = Privilege::find($id); + + $priv->name = $name; + + return $priv->save(); + } +} diff --git a/app/handlers/v2/StripeEventServiceHandler2.php b/app/handlers/v2/StripeEventServiceHandler2.php new file mode 100644 index 00000000..b2a5c350 --- /dev/null +++ b/app/handlers/v2/StripeEventServiceHandler2.php @@ -0,0 +1,69 @@ +getSystemPreferencesByKey($keys); + + if (is_null($prefs) || empty($prefs)) { + return; + } + + foreach ($prefs as $pref) { + $pref->delete(); + } + } + + /** + * @permission administrator + * + * @throws string + * + * @return \app\domain\SystemPreference[] + */ + public function GetAllSystemPreferences(): array { + return SystemPreference::findAll(); + } + + /** + * @permission administrator + * + * @param mixed $id + * @param SystemPreference['key'] $key + * + * @throws string + * + * @return \app\domain\SystemPreference + */ + public function GetSystemPreference($id): SystemPreference { + return $this->getSystemPreferenceById($id); + } + + /** + * @permission administrator + * + * @param int $page + * @param int $size + * @param string $columns + * @param string $order + * @param string $filters + * + * @throws string + * + * @return \app\domain\SystemPreference[] + */ + public function ListSystemPreferences($page, $size, $columns, $order, $filters): array { + return SystemPreference::page($page, $size, $columns, $order, $filters); + } + + /** + * @permission administrator + * + * @param string $key + * @param string $value + * @param bool $enabled + * @param string $notes + * + * @throws string + * + * @return bool + */ + public function PutSystemPreference($key, $value, $enabled, $notes): bool { + $pref = $this->getSystemPreferencesByKey($key, true); + + if (is_null($pref)) { + $pref = new SystemPreference(); + } + + $pref->key = $key; + $pref->value = $value; + $pref->enabled = $enabled; + $pref->notes = $notes; + + return $pref->save(); + } + + /** + * @permission administrator + * + * @param int $id + * @param string $privileges + * + * @throws string + * + * @return bool + */ + public function PutSystemPreferencePrivileges($id, $privileges): bool { + $pref = $this->getSystemPreferenceById($id); + + $privArray = $privileges; + + if (!is_array($privArray)) { + $privArray = explode(',', $privileges); + } + + $privs = Privilege::findByCodes(...$privArray); + + foreach ($pref->privileges->all() as $priv) { + $pref->privileges->remove($priv); + } + + foreach ($privs as $priv) { + $pref->privileges->add($priv); + } + + return $pref->save(); + } + + /** + * @permission anonymous + * + * @param string $key + * + * @throws string + * + * @return \app\domain\SystemPreference + */ + public function SystemPreference($key): SystemPreference { + $prefs = SystemPreference::findByKey($key, function ($privileges) { + $codes = []; + foreach ($privileges->all() as $priv) { + array_push($codes, $priv->code); + } + + return CurrentUser::hasAllPermissions(...$codes); + }); + + if (count($prefs) != 1) { + throw new \vhs\domain\exceptions\DomainException('Invalid SystemPreference result', 401); + } + + return $prefs[0]; + } + + /** + * @permission administrator + * + * @param int $id + * @param string $key + * @param string $value + * @param bool $enabled + * @param string $notes + * + * @throws string + * + * @return bool + */ + public function UpdateSystemPreference($id, $key, $value, $enabled, $notes): bool { + $pref = $this->getSystemPreferenceById($id); + + $pref->key = $key; + $pref->value = $value; + $pref->enabled = $enabled; + $pref->notes = $notes; + + return $pref->save(); + } + + /** + * @permission administrator + * + * @param string $key + * @param bool $enabled + * + * @throws string + * + * @return bool + */ + public function UpdateSystemPreferenceEnabled($key, $enabled): bool { + $pref = $this->getSystemPreferencesByKey($key); + + $pref->key = $key; + $pref->enabled = $enabled; + + return $pref->save(); + } + + /** + * getSystemPreferenceById. + * + * @param mixed $id + * + * @throws string + * + * @return SystemPreference + */ + private function getSystemPreferenceById($id): SystemPreference { + $pref = SystemPreference::find($id); + + if (is_null($pref)) { + $this->throwNotFound('SystemPreference'); + } + + return $pref; + } + + /** + * getSystemPreferencesByKey. + * + * @param string|string[] $keys + * @param bool $single + * + * @throws string + * + * @return \app\domain\SystemPreference|SystemPreference[] + */ + private function getSystemPreferencesByKey($keys, $single = true): array|SystemPreference|null { + $prefs = SystemPreference::findByKey($keys); + + if ($single && count($prefs) != 1) { + $this->throwNotFound('SystemPreference'); + } + + return $single ? $prefs[0] : $prefs; + } +} diff --git a/app/handlers/v2/UserServiceHandler2.php b/app/handlers/v2/UserServiceHandler2.php new file mode 100644 index 00000000..40460d0b --- /dev/null +++ b/app/handlers/v2/UserServiceHandler2.php @@ -0,0 +1,791 @@ +AllowedColumns()); + } + + /** + * @permission administrator + * + * @param string $username + * @param string $password + * @param string $email + * @param string $fname + * @param string $lname + * @param int $membershipid + * + * @throws string + * + * @return \app\domain\User + */ + public function Create($username, $password, $email, $fname, $lname, $membershipid): User { + if (User::exists($username, $email)) { + throw new UserAlreadyExistsException(); + } + + $hashedPassword = PasswordUtil::hash($password); + + if ($hashedPassword === null) { + throw new InvalidPasswordHashException(); + } + + $user = new User(); + + $user->username = $username; + $user->password = $hashedPassword; + $user->email = $email; + $user->payment_email = $email; + $user->stripe_email = $email; + $user->fname = $fname; + $user->lname = $lname; + $user->active = 't'; + $user->token = bin2hex(openssl_random_pseudo_bytes(8)); + + $user->save(); + + try { + $this->UpdateMembership($user->id, $membershipid); + } catch (\Exception $ex) { + // Ignore result + } + + $protocol = + (!empty($_SERVER['HTTPS']) && $_SERVER['HTTPS'] !== 'off') || $_SERVER['SERVER_PORT'] == 443 + ? StringLiterals::HTTPS_PREFIX + : StringLiterals::HTTP_PREFIX; + $domainName = $_SERVER['HTTP_HOST'] . '/'; + + $emailService2 = new EmailServiceHandler2(); + + $emailService2->EmailUser($user, 'welcome', [ + 'token' => $user->token, + 'host' => $protocol . $domainName + ]); + + return $user; + } + + /** + * @permission grants + * + * @param int $userid + * + * @throws string + * + * @return string[] + */ + public function GetGrantUserPrivileges($userid): array { + /** @var User $user */ + $user = $this->getUserById($userid); + + if (CurrentUser::canGrantAllPermissions('*')) { + return $user->getPrivilegeCodes(); + } + + $me = $this->getUserById(CurrentUser::getIdentity()); + + return array_intersect($user->getPrivilegeCodes(), $me->getGrantCodes()); + } + + /** + * @permission user|administrator + * + * @param int $userid + * + * @throws string + * + * @return bool + */ + public function GetStanding($userid): bool { + $user = $this->getUserById($userid); + + return new DateTime($user->mem_expire) > new DateTime(); + } + + /** + * @permission administrator + * + * @throws string + * + * @return mixed[] + */ + public function GetStatuses(): array { + return [ + ['title' => 'Active', 'code' => 'y'], + ['title' => 'Pending', 'code' => 't'], + ['title' => 'Inactive', 'code' => 'n'], + ['title' => 'Banned', 'code' => 'b'] + ]; + } + + /** + * @permission administrator|user + * + * @param int $userid + * + * @throws string + * + * @return \app\domain\User|null + */ + public function GetUser($userid): User|null { + if (CurrentUser::getIdentity() == $userid || CurrentUser::hasAnyPermissions('administrator')) { + return $this->getUserById($userid); + } + + return null; + } + + /** + * @permission administrator + * + * @throws string + * + * @return \app\domain\User[] + */ + public function GetUsers(): array { + return User::findAll(); + } + + /** + * @permission grants + * + * @param int $userid + * @param string $privilege + * + * @throws string + * + * @return bool + */ + public function GrantPrivilege($userid, $privilege): bool { + if (!CurrentUser::canGrantAllPermissions($privilege)) { + return false; + } + + $user = $this->getUserById($userid); + + /** @var Privilege $priv */ + $priv = Privilege::findByCode($privilege); + + if ($priv == null) { + return false; + } + + foreach ($user->privileges->all() as $p) { + if ($p->code == $priv->code) { + return false; + } + } + + $user->privileges->add($priv); + + return $user->save(); + } + + /** + * @permission administrator|grants + * + * @param int $page + * @param int $size + * @param string $columns + * @param string $order + * @param string $filters + * + * @throws string + * + * @return \app\domain\User[] + */ + public function ListUsers($page, $size, $columns, $order, $filters): array { + return User::page($page, $size, $columns, $order, $filters, $this->AllowedColumns()); + } + + /** + * @permission administrator + * + * @param int $userid + * @param string $privileges + * + * @throws string + * + * @return bool + */ + public function PutUserPrivileges($userid, $privileges): bool { + $user = $this->getUserById($userid); + + $privArray = $privileges; + + if (!is_array($privArray)) { + $privArray = explode(',', $privileges); + } + + $privs = Privilege::findByCodes(...$privArray); + + foreach ($user->privileges->all() as $priv) { + $user->privileges->remove($priv); + } + + foreach ($privs as $priv) { + $user->privileges->add($priv); + } + + return $user->save(); + } + + /** + * @permission anonymous + * + * @param string $username + * @param string $password + * @param string $email + * @param string $fname + * @param string $lname + * + * @throws string + * + * @return \app\domain\User + */ + public function Register($username, $password, $email, $fname, $lname): User { + if (User::exists($username, $email)) { + throw new UserAlreadyExistsException(); + } + + $hashedPassword = PasswordUtil::hash($password); + + if ($hashedPassword === null) { + throw new InvalidPasswordHashException(); + } + + $user = new User(); + + $user->username = $username; + $user->password = $hashedPassword; + $user->email = $email; + $user->fname = $fname; + $user->lname = $lname; + $user->active = 't'; + $user->token = bin2hex(openssl_random_pseudo_bytes(8)); + + $user->save(); + + $protocol = + (!empty($_SERVER['HTTPS']) && $_SERVER['HTTPS'] !== 'off') || $_SERVER['SERVER_PORT'] == 443 + ? StringLiterals::HTTPS_PREFIX + : StringLiterals::HTTP_PREFIX; + $domainName = $_SERVER['HTTP_HOST'] . '/'; + + $emailService2 = new EmailServiceHandler2(); + + $emailService2->EmailUser($user, 'welcome', [ + 'token' => $user->token, + 'host' => $protocol . $domainName + ]); + + return $user; + } + + /** + * @permission anonymous + * + * @param string $email + * + * @throws string + * + * @return \app\dto\ServiceResponseError|\app\dto\ServiceResponseSuccess + */ + public function RequestPasswordReset($email): ServiceResponseSuccess|ServiceResponseError { + $user = User::findByEmail($email)[0]; + + if (is_null($user)) { + return new ServiceResponseErrorUserNotFoundByEmailAddress(); + } + + $request = new PasswordResetRequest(); + + $request->token = bin2hex(openssl_random_pseudo_bytes(8)); + $request->userid = $user->id; + + $request->save(); + + $protocol = + (!empty($_SERVER['HTTPS']) && $_SERVER['HTTPS'] !== 'off') || $_SERVER['SERVER_PORT'] == 443 + ? StringLiterals::HTTPS_PREFIX + : StringLiterals::HTTP_PREFIX; + $domainName = $_SERVER['HTTP_HOST'] . '/'; + + $emailService2 = new EmailServiceHandler2(); + $emailService2->EmailUser($user, 'recover', [ + 'token' => $request->token, + 'host' => $protocol . $domainName + ]); + + return new ServiceResponseSuccess(); + } + + /** + * @permission user + * + * @param string $email + * + * @throws string + * + * @return bool|string|null + */ + public function RequestSlackInvite($email): bool|string|null { + $ch = curl_init('http://slack-invite:3000/invite'); + curl_setopt($ch, CURLOPT_HTTP_VERSION, CURL_HTTP_VERSION_1_1); + curl_setopt($ch, CURLOPT_POST, 1); + curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); + curl_setopt($ch, CURLOPT_POSTFIELDS, 'email=' . $email); + curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 1); + curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 2); + curl_setopt($ch, CURLOPT_FORBID_REUSE, 1); + curl_setopt($ch, CURLOPT_HTTPHEADER, ['Connection: Close']); + + $error = null; + + if (!($response = curl_exec($ch))) { + $error = 'Error: Got ' . curl_error($ch) . " when request slack invite for email: '" . $email . "'"; + } + + curl_close($ch); + + if (!is_null($error)) { + // $this->context->log($error); NOSONAR + return $error; + } + + return $response; + } + + /** + * @permission anonymous + * + * @param string $token + * @param string $password + * + * @throws string + * + * @return \app\dto\ServiceResponseError|\app\dto\ServiceResponseSuccess + */ + public function ResetPassword($token, $password): ServiceResponseSuccess|ServiceResponseError { + $requests = PasswordResetRequest::findByToken($token); + + if (!is_null($requests) && count($requests) == 1) { + /** @var PasswordResetRequest $request */ + $request = $requests[0]; + $created = new DateTime($request->created); + $userid = $request->userid; + + $request->delete(); + $created->modify('+2 hours'); + if ($created > new DateTime()) { + $user = $this->getUserById($userid); + + if (!is_null($user)) { + $hashedPassword = PasswordUtil::hash($password); + + if ($hashedPassword === null) { + throw new InvalidPasswordHashException(); + } + + $user->password = $hashedPassword; + + $user->save(); + + return new ServiceResponseSuccess(); + } + } + } else { + $users = User::findByToken($token); + + if (!is_null($users) && count($users) == 1) { + $user = $users[0]; + + $hashedPassword = PasswordUtil::hash($password); + + if ($hashedPassword === null) { + throw new InvalidPasswordHashException(); + } + + $user->token = null; + + $user->password = $hashedPassword; + $user->save(); + + return new ServiceResponseSuccess(); + } + } + + return new ServiceResponseErrorInvalidToken(); + } + + /** + * @permission grants + * + * @param int $userid + * @param string $privilege + * + * @throws string + * + * @return bool + */ + public function RevokePrivilege($userid, $privilege): bool { + if (!CurrentUser::canGrantAllPermissions($privilege)) { + return false; + } + + $user = $this->getUserById($userid); + + if ($user == null) { + return false; + } + + $priv = Privilege::findByCode($privilege); + + if ($priv == null) { + return false; + } + + $remove = null; + + foreach ($user->privileges->all() as $p) { + if ($p->code == $priv->code) { + $remove = $p; + } + } + + if (is_null($remove)) { + return false; + } + + $user->privileges->remove($remove); + + return $user->save(); + } + + /** + * @permission administrator + * + * @param int $userid + * @param string $cash + * + * @throws string + * + * @return bool + */ + public function UpdateCash($userid, $cash): bool { + $user = $this->getUserById($userid); + + $user->cash = boolval($cash); + + return $user->save(); + } + + /** + * @permission administrator|full-profile + * + * @param int $userid + * @param string $email + * + * @throws string + * + * @return bool + */ + public function UpdateEmail($userid, $email): bool { + $user = $this->getUserById($userid); + + if (CurrentUser::hasAnyPermissions('full-profile', 'administrator') !== true) { + $this->throwNotFound('User'); + } + + $user->email = $email; + + return $user->save(); + } + + /** + * @permission administrator + * + * @param int $userid + * @param string $date + * + * @throws string + * + * @return bool + */ + public function UpdateExpiry($userid, $date): bool { + $user = $this->getUserById($userid); + + $user->mem_expire = (new DateTime($date))->format('Y-m-d H:i:s'); + + return $user->save(); + } + + /** + * @permission administrator + * + * @param int $userid + * @param int $membershipid + * + * @throws string + * + * @return bool + */ + public function UpdateMembership($userid, $membershipid): bool { + $user = $this->getUserById($userid); + + $membership = Membership::find($membershipid); + + if (is_null($membership)) { + throw new InvalidInputException('Invalid user or membership type'); + } + + $user->membership = $membership; + + return $user->save(); + } + + /** + * @permission administrator|full-profile + * + * @param int $userid + * @param string $fname + * @param string $lname + * + * @throws string + * + * @return bool + */ + public function UpdateName($userid, $fname, $lname): bool { + $user = $this->getUserById($userid); + + if (CurrentUser::hasAnyPermissions('full-profile', 'administrator') !== true) { + $this->throwNotFound('User'); + } + + $user->fname = $fname; + $user->lname = $lname; + + return $user->save(); + } + + /** + * @permission administrator|user + * + * @param int $userid + * @param string $subscribe + * + * @throws string + * + * @return bool + */ + public function UpdateNewsletter($userid, $subscribe): bool { + $user = $this->getUserById($userid); + + $user->newsletter = $subscribe ? true : false; + + return $user->save(); + } + + /** + * @permission administrator|user + * + * @param int $userid + * @param string $password + * + * @throws string + * + * @return bool + */ + public function UpdatePassword($userid, $password): bool { + $user = $this->getUserById($userid); + + $hashedPassword = PasswordUtil::hash($password); + + if ($hashedPassword === null) { + throw new InvalidPasswordHashException(); + } + + $user->password = $hashedPassword; + + return $user->save(); + } + + /** + * @permission administrator|full-profile + * + * @param int $userid + * @param string $email + * + * @throws string + * + * @return bool + */ + public function UpdatePaymentEmail($userid, $email): bool { + $user = $this->getUserById($userid); + + if (CurrentUser::hasAnyPermissions('full-profile', 'administrator') !== true) { + $this->throwNotFound('User'); + } + + $user->payment_email = $email; + + return $user->save(); + } + + /** + * @permission administrator + * + * @param int $userid + * @param string $status + * + * @throws string + * + * @return bool + */ + public function UpdateStatus($userid, $status): bool { + $user = $this->getUserById($userid); + + if (CurrentUser::hasAnyPermissions('administrator') !== true) { + $this->throwNotFound('User'); + } + + switch ($status) { + case 'active': + case 'y': + case 'true': + $status = 'y'; + + break; + case 'pending': + case 't': + $status = 't'; + + break; + case 'banned': + case 'b': + $status = 'b'; + + break; + default: + $status = 'n'; + + break; + } + + $user->active = $status; + + return $user->save(); + } + + /** + * @permission administrator|full-profile + * + * @param int $userid + * @param string $email + * + * @throws string + * + * @return bool + */ + public function UpdateStripeEmail($userid, $email): bool { + $user = $this->getUserById($userid); + + if (CurrentUser::hasAnyPermissions('full-profile', 'administrator') !== true) { + $this->throwNotFound('User'); + } + + $user->stripe_email = $email; + + return $user->save(); + } + + /** + * @permission administrator|user + * + * @param int $userid + * @param string $username + * + * @throws string + * + * @return bool + */ + public function UpdateUsername($userid, $username): bool { + $user = $this->getUserById($userid); + + $user->username = $username; + + return $user->save(); + } + + /** + * Summary of AllowedColumns. + * + * @throws string + * + * @return string[]|null + */ + protected function AllowedColumns(): array|null { + if (CurrentUser::hasAnyPermissions('grants') && !CurrentUser::hasAnyPermissions('administrator')) { + return ['id', 'username', 'fname', 'lname', 'email']; + } else { + return null; + } + } + + /** + * getUserById. + * + * @param mixed $id + * + * @throws string + * + * @return \app\domain\User + */ + private function getUserById($id): User { + $result = User::find($id); + + if (is_null($result)) { + $this->throwNotFound('User'); + } + + return $result; + } +} diff --git a/app/handlers/v2/WebHookServiceHandler2.php b/app/handlers/v2/WebHookServiceHandler2.php new file mode 100644 index 00000000..008fb66a --- /dev/null +++ b/app/handlers/v2/WebHookServiceHandler2.php @@ -0,0 +1,320 @@ +addUserIDToFilters($userid, $filters); + + return WebHook::count($filters); + } + + /** + * @permission user + * + * @param string $name + * @param string $description + * @param bool $enabled + * @param string $url + * @param string $translation + * @param string $headers + * @param string $method + * @param int $eventid + * + * @throws string + * @throws UnauthorizedException + * + * @return bool + */ + public function CreateHook($name, $description, $enabled, $url, $translation, $headers, $method, $eventid): bool { + $event = (new EventServiceHandler2($this->context))->GetEvent($eventid); + + $codes = []; + foreach ($event->privileges->all() as $priv) { + array_push($codes, $priv->code); + } + + if (!CurrentUser::hasAllPermissions('administrator') && (count($codes) == 0 || !CurrentUser::hasAllPermissions($codes))) { + throw new UnauthorizedException('Insufficient privileges to subscribe to event'); + } + + $hook = new WebHook(); + + $hook->name = $name; + $hook->description = $description; + $hook->enabled = $enabled; + $hook->url = $url; + $hook->translation = $translation; + $hook->headers = $headers; + $hook->method = $method; + $hook->event = $event; + $hook->userid = CurrentUser::getIdentity(); + + return $hook->save(); + } + + /** + * @permission administrator|user + * + * @param int $id + * + * @throws string + */ + public function DeleteHook($id): void { + $hook = $this->getWebHookById($id); + + $hook->delete(); + } + + /** + * @permission administrator|user + * + * @param int $id + * @param bool $enabled + * + * @throws string + * + * @return bool + */ + public function EnableHook($id, $enabled): bool { + $hook = $this->getWebHookById($id); + + $hook->enabled = $enabled; + + return $hook->save(); + } + + /** + * @permission webhook|administrator + * + * @throws string + * + * @return \app\domain\WebHook[] + */ + public function GetAllHooks(): array { + return WebHook::findAll(); + } + + /** + * @permission user|administrator + * + * @param int $id + * + * @throws string + * + * @return \app\domain\WebHook|null + */ + public function GetHook($id): WebHook|null { + return $this->getWebHookById($id); + } + + /** + * @permission webhook|administrator + * + * @param string $domain + * @param string $event + * + * @throws string + * + * @return \app\domain\WebHook[] + */ + public function GetHooks($domain, $event): array { + return WebHook::findByDomainEvent($domain, $event); + } + + /** + * @permission administrator|webhook + * + * @param int $page + * @param int $size + * @param string $columns + * @param string $order + * @param string $filters + * + * @throws string + * + * @return \app\domain\WebHook[] + */ + public function ListHooks($page, $size, $columns, $order, $filters): array { + return WebHook::page($page, $size, $columns, $order, $filters); + } + + /** + * @permission administrator|user + * + * @param int $userid + * @param int $page + * @param int $size + * @param string $columns + * @param string $order + * @param string $filters + * + * @throws string + * @throws \Exception + * + * @return \app\domain\WebHook[] + */ + public function ListUserHooks($userid, $page, $size, $columns, $order, $filters): array { + $filters = $this->addUserIDToFilters($userid, $filters); + + $cols = explode(',', $columns); + + array_push($cols, 'userid'); + + $columns = implode(',', array_unique($cols)); + + return WebHook::page($page, $size, $columns, $order, $filters); + } + + /** + * @permission administrator|user + * + * @param int $id + * @param string $privileges + * + * @throws string + * + * @return bool + */ + public function PutHookPrivileges($id, $privileges): bool { + $hook = $this->getWebHookById($id); + + $privArray = $privileges; + + if (!is_array($privArray)) { + $privArray = explode(',', $privileges); + } + + $privs = Privilege::findByCodes(...$privArray); + + foreach ($hook->privileges->all() as $priv) { + $hook->privileges->remove($priv); + } + + foreach ($privs as $priv) { + if (CurrentUser::hasAnyPermissions('administrator') || CurrentUser::hasAnyPermissions($priv->code)) { + $hook->privileges->add($priv); + } + } + + return $hook->save(); + } + + /** + * @permission administrator|user + * + * @param int $id + * @param string $name + * @param string $description + * @param bool $enabled + * @param string $url + * @param string $translation + * @param string $headers + * @param string $method + * @param int $eventid + * + * @throws string + * + * @return bool + */ + public function UpdateHook($id, $name, $description, $enabled, $url, $translation, $headers, $method, $eventid): bool { + $hook = $this->getWebHookById($id); + + $event = (new EventServiceHandler2($this->context))->GetEvent($eventid); + + $hook->name = $name; + $hook->description = $description; + $hook->enabled = $enabled; + $hook->url = $url; + $hook->translation = $translation; + $hook->headers = $headers; + $hook->method = $method; + $hook->event = $event; + + return $hook->save(); + } + + private function addUserIDToFilters($userid, $filters): Filter { + $userService2 = new UserServiceHandler2(); + + $user = $userService2->GetUser($userid); + + if (is_string($filters)) { + //todo total hack.. this is to support GET params for downloading payments + $filters = json_decode($filters); + } + + if (is_null($user)) { + throw new UnauthorizedException('User not found or you do not have access'); + } + + $userFilter = Filter::Equal('userid', $user->id); + + if (is_null($filters) || $filters == '') { + $filters = $userFilter; + } else { + $filters = Filter::_And($userFilter, $filters); + } + + return $filters; + } + + /** + * getWebHookById. + * + * @param mixed $id + * + * @throws string + * + * @return \app\domain\WebHook + */ + private function getWebHookById($id): WebHook { + $pref = WebHook::find($id); + + if (is_null($pref)) { + $this->throwNotFound('WebHook'); + } + + return $pref; + } +} diff --git a/app/utils/AuthCheckResult.php b/app/utils/AuthCheckResult.php new file mode 100644 index 00000000..036c5022 --- /dev/null +++ b/app/utils/AuthCheckResult.php @@ -0,0 +1,35 @@ +store[$name]; + } + + public function __isset(string $name): bool { + return isset($this->store[$name]); + } + + public function __serialize(): array { + return ['valid' => $this->valid, 'type' => $this->type, 'privileges' => $this->privileges, ...$this->store]; + } + + public function __set(string $name, mixed $value): void { + $this->store[$name] = $value; + } + + public function __unset(string $name): void { + unset($this->store[$name]); + } +} From b8eae50cb237656412b8567f3d0a720dfcabccd1 Mon Sep 17 00:00:00 2001 From: Ty Eggen Date: Wed, 5 Feb 2025 23:12:13 +0000 Subject: [PATCH 008/497] clean: formatting/retire unused code --- vhs/SplClassLoader.php | 1 - 1 file changed, 1 deletion(-) diff --git a/vhs/SplClassLoader.php b/vhs/SplClassLoader.php index e47a2c3a..2762077e 100644 --- a/vhs/SplClassLoader.php +++ b/vhs/SplClassLoader.php @@ -90,7 +90,6 @@ public function loadClass($className) { $fileName .= str_replace('_', DIRECTORY_SEPARATOR, $className) . $item->fileExtension; - //print ($item->includePath !== null ? $item->includePath . DIRECTORY_SEPARATOR : '') . $fileName; require ($item->includePath !== null ? $item->includePath . DIRECTORY_SEPARATOR : '') . $fileName; } } From 43d9cb8a057dcaa271970a2a1b89961f5aa45547 Mon Sep 17 00:00:00 2001 From: Ty Eggen Date: Wed, 5 Feb 2025 23:12:47 +0000 Subject: [PATCH 009/497] dev: add typescript-transformer composer dep --- composer.json | 3 +- composer.lock | 277 +++++++++++++++++++++++++++++++++++++++++++++++++- 2 files changed, 278 insertions(+), 2 deletions(-) diff --git a/composer.json b/composer.json index 6c3ec08e..1854cea8 100644 --- a/composer.json +++ b/composer.json @@ -10,6 +10,7 @@ }, "require-dev": { "phpunit/phpunit": "11.5.3", - "friendsofphp/php-cs-fixer": "v3.68.0" + "friendsofphp/php-cs-fixer": "v3.68.0", + "spatie/typescript-transformer": "^2.4" } } diff --git a/composer.lock b/composer.lock index 140b2b87..3718b69b 100644 --- a/composer.lock +++ b/composer.lock @@ -4,7 +4,7 @@ "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies", "This file is @generated automatically" ], - "content-hash": "bdb5c348f93facc5eb35d2cb20f96335", + "content-hash": "1da57a507b75c43bd4a7808420600272", "packages": [ { "name": "aws/aws-crt-php", @@ -1540,6 +1540,51 @@ ], "time": "2024-05-06T16:37:16+00:00" }, + { + "name": "doctrine/deprecations", + "version": "1.1.4", + "source": { + "type": "git", + "url": "https://github.com/doctrine/deprecations.git", + "reference": "31610dbb31faa98e6b5447b62340826f54fbc4e9" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/doctrine/deprecations/zipball/31610dbb31faa98e6b5447b62340826f54fbc4e9", + "reference": "31610dbb31faa98e6b5447b62340826f54fbc4e9", + "shasum": "" + }, + "require": { + "php": "^7.1 || ^8.0" + }, + "require-dev": { + "doctrine/coding-standard": "^9 || ^12", + "phpstan/phpstan": "1.4.10 || 2.0.3", + "phpstan/phpstan-phpunit": "^1.0 || ^2", + "phpunit/phpunit": "^7.5 || ^8.5 || ^9.5", + "psr/log": "^1 || ^2 || ^3" + }, + "suggest": { + "psr/log": "Allows logging deprecations via PSR-3 logger implementation" + }, + "type": "library", + "autoload": { + "psr-4": { + "Doctrine\\Deprecations\\": "src" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "description": "A small layer on top of trigger_error(E_USER_DEPRECATED) or PSR-3 logging with options to disable all deprecations or selectively for packages.", + "homepage": "https://www.doctrine-project.org/", + "support": { + "issues": "https://github.com/doctrine/deprecations/issues", + "source": "https://github.com/doctrine/deprecations/tree/1.1.4" + }, + "time": "2024-12-07T21:18:45+00:00" + }, { "name": "evenement/evenement", "version": "v3.0.2", @@ -1987,6 +2032,164 @@ }, "time": "2022-02-21T01:04:05+00:00" }, + { + "name": "phpdocumentor/reflection-common", + "version": "2.2.0", + "source": { + "type": "git", + "url": "https://github.com/phpDocumentor/ReflectionCommon.git", + "reference": "1d01c49d4ed62f25aa84a747ad35d5a16924662b" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/phpDocumentor/ReflectionCommon/zipball/1d01c49d4ed62f25aa84a747ad35d5a16924662b", + "reference": "1d01c49d4ed62f25aa84a747ad35d5a16924662b", + "shasum": "" + }, + "require": { + "php": "^7.2 || ^8.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-2.x": "2.x-dev" + } + }, + "autoload": { + "psr-4": { + "phpDocumentor\\Reflection\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Jaap van Otterdijk", + "email": "opensource@ijaap.nl" + } + ], + "description": "Common reflection classes used by phpdocumentor to reflect the code structure", + "homepage": "http://www.phpdoc.org", + "keywords": [ + "FQSEN", + "phpDocumentor", + "phpdoc", + "reflection", + "static analysis" + ], + "support": { + "issues": "https://github.com/phpDocumentor/ReflectionCommon/issues", + "source": "https://github.com/phpDocumentor/ReflectionCommon/tree/2.x" + }, + "time": "2020-06-27T09:03:43+00:00" + }, + { + "name": "phpdocumentor/type-resolver", + "version": "1.10.0", + "source": { + "type": "git", + "url": "https://github.com/phpDocumentor/TypeResolver.git", + "reference": "679e3ce485b99e84c775d28e2e96fade9a7fb50a" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/phpDocumentor/TypeResolver/zipball/679e3ce485b99e84c775d28e2e96fade9a7fb50a", + "reference": "679e3ce485b99e84c775d28e2e96fade9a7fb50a", + "shasum": "" + }, + "require": { + "doctrine/deprecations": "^1.0", + "php": "^7.3 || ^8.0", + "phpdocumentor/reflection-common": "^2.0", + "phpstan/phpdoc-parser": "^1.18|^2.0" + }, + "require-dev": { + "ext-tokenizer": "*", + "phpbench/phpbench": "^1.2", + "phpstan/extension-installer": "^1.1", + "phpstan/phpstan": "^1.8", + "phpstan/phpstan-phpunit": "^1.1", + "phpunit/phpunit": "^9.5", + "rector/rector": "^0.13.9", + "vimeo/psalm": "^4.25" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-1.x": "1.x-dev" + } + }, + "autoload": { + "psr-4": { + "phpDocumentor\\Reflection\\": "src" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Mike van Riel", + "email": "me@mikevanriel.com" + } + ], + "description": "A PSR-5 based resolver of Class names, Types and Structural Element Names", + "support": { + "issues": "https://github.com/phpDocumentor/TypeResolver/issues", + "source": "https://github.com/phpDocumentor/TypeResolver/tree/1.10.0" + }, + "time": "2024-11-09T15:12:26+00:00" + }, + { + "name": "phpstan/phpdoc-parser", + "version": "2.0.0", + "source": { + "type": "git", + "url": "https://github.com/phpstan/phpdoc-parser.git", + "reference": "c00d78fb6b29658347f9d37ebe104bffadf36299" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/phpstan/phpdoc-parser/zipball/c00d78fb6b29658347f9d37ebe104bffadf36299", + "reference": "c00d78fb6b29658347f9d37ebe104bffadf36299", + "shasum": "" + }, + "require": { + "php": "^7.4 || ^8.0" + }, + "require-dev": { + "doctrine/annotations": "^2.0", + "nikic/php-parser": "^5.3.0", + "php-parallel-lint/php-parallel-lint": "^1.2", + "phpstan/extension-installer": "^1.0", + "phpstan/phpstan": "^2.0", + "phpstan/phpstan-phpunit": "^2.0", + "phpstan/phpstan-strict-rules": "^2.0", + "phpunit/phpunit": "^9.6", + "symfony/process": "^5.2" + }, + "type": "library", + "autoload": { + "psr-4": { + "PHPStan\\PhpDocParser\\": [ + "src/" + ] + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "description": "PHPDoc parser with support for nullable, intersection and generic types", + "support": { + "issues": "https://github.com/phpstan/phpdoc-parser/issues", + "source": "https://github.com/phpstan/phpdoc-parser/tree/2.0.0" + }, + "time": "2024-10-13T11:29:49+00:00" + }, { "name": "phpunit/php-code-coverage", "version": "11.0.8", @@ -4016,6 +4219,78 @@ ], "time": "2024-10-09T05:16:32+00:00" }, + { + "name": "spatie/typescript-transformer", + "version": "2.4.0", + "source": { + "type": "git", + "url": "https://github.com/spatie/typescript-transformer.git", + "reference": "130c2447e0aa83f8d8d0ff590bc5bc402b17d641" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/spatie/typescript-transformer/zipball/130c2447e0aa83f8d8d0ff590bc5bc402b17d641", + "reference": "130c2447e0aa83f8d8d0ff590bc5bc402b17d641", + "shasum": "" + }, + "require": { + "nikic/php-parser": "^4.18|^5.0", + "php": "^8.0", + "phpdocumentor/type-resolver": "^1.6.2", + "symfony/process": "^5.2|^6.0|^7.0" + }, + "require-dev": { + "friendsofphp/php-cs-fixer": "^3.40", + "larapack/dd": "^1.1", + "myclabs/php-enum": "^1.7", + "pestphp/pest": "^1.22", + "phpstan/extension-installer": "^1.1", + "phpunit/phpunit": "^9.0", + "spatie/data-transfer-object": "^2.0", + "spatie/enum": "^3.0", + "spatie/pest-plugin-snapshots": "^1.1", + "spatie/temporary-directory": "^1.2|^2.0" + }, + "type": "library", + "autoload": { + "psr-4": { + "Spatie\\TypeScriptTransformer\\": "src" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Ruben Van Assche", + "email": "ruben@spatie.be", + "homepage": "https://spatie.be", + "role": "Developer" + } + ], + "description": "Transform your PHP structures to TypeScript types", + "homepage": "https://github.com/spatie/typescript-transformer", + "keywords": [ + "spatie", + "typescript-transformer" + ], + "support": { + "issues": "https://github.com/spatie/typescript-transformer/issues", + "source": "https://github.com/spatie/typescript-transformer/tree/2.4.0" + }, + "funding": [ + { + "url": "https://spatie.be/open-source/support-us", + "type": "custom" + }, + { + "url": "https://github.com/spatie", + "type": "github" + } + ], + "time": "2024-10-04T13:13:08+00:00" + }, { "name": "staabm/side-effects-detector", "version": "1.0.5", From a8671617686c9e9774f26e870d7f4850f804977f Mon Sep 17 00:00:00 2001 From: Ty Eggen Date: Thu, 6 Feb 2025 03:56:27 +0000 Subject: [PATCH 010/497] feat: pnpm monorepo --- .dockerignore | 13 +- .gitignore | 1 + .husky/pre-commit | 2 +- .npmrc | 1 + .prettierignore | 2 + docker-compose/Dockerfile | 66 +- justfile | 17 +- package-lock.json | 5277 ----------------- package.json | 14 +- {webhooker => packages/webhooker}/.gitignore | 0 {webhooker => packages/webhooker}/README.md | 0 .../webhooker}/config.docker.js | 0 .../webhooker}/config.js.template.js | 0 {webhooker => packages/webhooker}/domains.js | 0 {webhooker => packages/webhooker}/events.js | 0 {webhooker => packages/webhooker}/nomos.js | 0 .../webhooker}/package.json | 33 +- .../webhooker}/test/domains.js | 0 .../webhooker}/test/webhooks.js | 0 .../webhooker}/webhooker.console | 0 .../webhooker}/webhooker.js | 0 packages/webhooker/webhooker.sbin | 7 + .../webhooker}/webhooker.service | 0 {webhooker => packages/webhooker}/webhooks.js | 0 pnpm-lock.yaml | 3994 +++++++++++++ pnpm-workspace.yaml | 2 + prettier.config.mjs | 2 +- webhooker/package-lock.json | 2060 ------- webhooker/webhooker.sbin | 7 - 29 files changed, 4089 insertions(+), 7409 deletions(-) create mode 100644 .npmrc delete mode 100644 package-lock.json rename {webhooker => packages/webhooker}/.gitignore (100%) rename {webhooker => packages/webhooker}/README.md (100%) rename {webhooker => packages/webhooker}/config.docker.js (100%) rename {webhooker => packages/webhooker}/config.js.template.js (100%) rename {webhooker => packages/webhooker}/domains.js (100%) rename {webhooker => packages/webhooker}/events.js (100%) rename {webhooker => packages/webhooker}/nomos.js (100%) rename {webhooker => packages/webhooker}/package.json (79%) rename {webhooker => packages/webhooker}/test/domains.js (100%) rename {webhooker => packages/webhooker}/test/webhooks.js (100%) rename {webhooker => packages/webhooker}/webhooker.console (100%) rename {webhooker => packages/webhooker}/webhooker.js (100%) create mode 100755 packages/webhooker/webhooker.sbin rename {webhooker => packages/webhooker}/webhooker.service (100%) rename {webhooker => packages/webhooker}/webhooks.js (100%) create mode 100644 pnpm-lock.yaml create mode 100644 pnpm-workspace.yaml delete mode 100644 webhooker/package-lock.json delete mode 100755 webhooker/webhooker.sbin diff --git a/.dockerignore b/.dockerignore index 6caca927..68661918 100644 --- a/.dockerignore +++ b/.dockerignore @@ -1,10 +1,11 @@ -.phpunit.cache/ -data/ -logs/ -node_modules/ +.phpunit.cache +data +logs +node_modules tools/composer.phar -vendor/ -web/components/ +vendor +web/components .php*.cache .env* *.log +.git diff --git a/.gitignore b/.gitignore index 50ae5cee..285b5669 100644 --- a/.gitignore +++ b/.gitignore @@ -249,3 +249,4 @@ tools/composer.phar docker-compose.override.yml web/components/ +deploy/ diff --git a/.husky/pre-commit b/.husky/pre-commit index 8b142457..b6307a2e 100755 --- a/.husky/pre-commit +++ b/.husky/pre-commit @@ -4,7 +4,7 @@ FILES=$(git diff --cached --name-only --diff-filter=ACMR | sed 's| |\\ |g') if [ "${FILES}" != "" ]; then PHP_FILES=$(echo "${FILES}" | grep '\.php' | xargs) - WEBHOOKER_FILES=$(echo "${FILES}" | grep 'webhooker/' | xargs) + WEBHOOKER_FILES=$(echo "${FILES}" | grep 'packages/webhooker/' | xargs) if [ "${PHP_FILES}" != "" ]; then FILES=$(echo "${PHP_FILES}" | xargs) npm exec just format php diff --git a/.npmrc b/.npmrc new file mode 100644 index 00000000..eccf7d8c --- /dev/null +++ b/.npmrc @@ -0,0 +1 @@ +inject-workspace-packages=true diff --git a/.prettierignore b/.prettierignore index c0f20908..31bef2e1 100644 --- a/.prettierignore +++ b/.prettierignore @@ -41,3 +41,5 @@ migrations/26/ web/components/bower/datatables/media/images/Sorting icons.psd web/components/bower/datatables/media/images/Sorting icons.psd +pnpm-lock.yaml +packages/webhooker/webhooker.service diff --git a/docker-compose/Dockerfile b/docker-compose/Dockerfile index 9c7d17dd..6bb9daf6 100644 --- a/docker-compose/Dockerfile +++ b/docker-compose/Dockerfile @@ -1,35 +1,55 @@ ARG PHP_VERSION=8.3 -FROM cimg/php:${PHP_VERSION}-node AS build - -USER 1001:1002 +FROM scratch AS source WORKDIR /build/ -ENV DEBIAN_FRONTEND=noninteractive +COPY ./ ./ + +FROM node:lts-alpine AS base + +ENV PNPM_HOME="/pnpm" +ENV PATH="$PNPM_HOME:$PATH" + +RUN npm install -g npm@latest && npm install -g corepack@latest + +FROM base AS build-base + +RUN apk --no-cache add alpine-sdk bash git just php83 php83-bcmath php83-common php83-curl php83-dom php83-mbstring php83-mysqli php83-mysqlnd php83-openssl php83-phar php83-simplexml php83-tokenizer php83-xml php83-xmlwriter php83-zip python3 wget + +FROM build-base AS build + +ENV COMPOSER_INSTALL_OPT=--no-dev +ENV CI=true + +RUN mkdir /app/ /build/ && chown node:node /build/ /app/ + +USER node:node -COPY --chown=circleci:circleci ./ ./ +COPY --from=source --chown=node:node /build/ /build/ -RUN npm ci && cd webhooker && npm ci +WORKDIR /build/ + +RUN --mount=type=cache,id=pnpm,target=/pnpm/store,uid=1000,gid=1000 pnpm install --frozen-lockfile +RUN pnpm deploy --filter="@vhs/webhooker" --prod /app/webhooker/ + +FROM alpine:3 AS backend-base -FROM php:${PHP_VERSION}-fpm AS backend +RUN apk --no-cache add just php83 php83-bcmath php83-common php83-fpm php83-mysqli php83-mysqlnd php83-openssl php83-zip python3 wget VOLUME ["/sessions"] -RUN mkdir /sessions && chown www-data:www-data /sessions +RUN mkdir -p /sessions && chown nobody:nobody /sessions -ENV DEBIAN_FRONTEND=noninteractive +RUN echo "session.save_path = \"/sessions\"" > /etc/php83/conf.d/99_sessions.ini + +FROM backend-base AS backend WORKDIR /var/www/html ENTRYPOINT [ "docker_compose_run.sh" ] CMD ["php-fpm"] -RUN apt-get update \ - && apt-get install -y git libzip-dev mariadb-client zip \ - && docker-php-ext-install -j$(nproc) bcmath mysqli zip \ - && rm -rf /var/lib/apt/lists/* /var/cache/apt/archives/* - COPY --from=build /build/app/ app/ COPY --from=build /build/migrations/ migrations/ COPY --from=build /build/tools/ tools/ @@ -39,28 +59,24 @@ COPY --from=build /build/vendor/ vendor/ COPY --from=build /build/docker/*.sh /usr/local/bin/ COPY --from=build /build/conf/config.docker.ini.php /var/www/html/conf/config.ini.php -RUN cp "$PHP_INI_DIR/php.ini-production" "$PHP_INI_DIR/php.ini" \ - && echo "session.save_path = \"/sessions\"" >> "$PHP_INI_DIR/php.ini" - FROM nginx:stable-alpine AS frontend COPY conf/nginx-vhost-docker-compose.conf /etc/nginx/conf.d/default.conf COPY --from=build /build/web/ /var/www/html/ -FROM build AS webhooker-build +FROM base AS webhooker-base -WORKDIR /build/webhooker +RUN apk --no-cache add bash -RUN chmod 755 webhooker.sbin webhooker.console \ - && cp config.docker.js config.js +FROM webhooker-base AS webhooker -FROM node:lts AS webhooker +USER node:node -RUN mkdir -p /app/logs /app/webhooker +WORKDIR /app/webhooker -COPY --from=webhooker-build /build/webhooker/ /app/webhooker/ +COPY --from=build /app/webhooker/ /app/webhooker/ -WORKDIR /app/webhooker +RUN mkdir -p /app/logs /app/webhooker CMD ["/app/webhooker/webhooker.sbin"] diff --git a/justfile b/justfile index 8c2cc088..25cd37e3 100644 --- a/justfile +++ b/justfile @@ -1,5 +1,4 @@ -set export - +set export := true help: just -l @@ -20,6 +19,10 @@ format_php: vendor/bin/php-cs-fixer fix --config=.php-cs-fixer.php ${FILES:-app/ tests/ tools/ vhs/} +install target: + @echo 'Installing {{target}}…' + just "install_{{target}}" + install_composer: #!/usr/bin/env bash set -euo pipefail @@ -43,7 +46,7 @@ install_composer: echo "composer has already been set up!" fi - ./tools/composer.sh install + ./tools/composer.sh install "${COMPOSER_INSTALL_OPT}" install_angular_ui_bootstrap: #!/usr/bin/env bash @@ -86,12 +89,6 @@ setup_husky: setup_vendor: install_composer run_composer -setup_webhooker: - #!/usr/bin/env bash - set -euo pipefail - - cd webhooker/ && npm install - test target: @echo 'Testing {{target}}…' just "test_{{target}}" @@ -107,5 +104,5 @@ test_webhooker: set -eo pipefail if [ "${FILES}" != "" ] ; then - cd webhooker && npm run test + pnpm --filter="@vhs/webhooker" run test fi diff --git a/package-lock.json b/package-lock.json deleted file mode 100644 index 6389fe42..00000000 --- a/package-lock.json +++ /dev/null @@ -1,5277 +0,0 @@ -{ - "name": "@vhs/nomos", - "version": "1.0.0", - "lockfileVersion": 3, - "requires": true, - "packages": { - "": { - "name": "@vhs/nomos", - "version": "1.0.0", - "license": "ISC", - "dependencies": { - "@types/lodash": "^4.17.13", - "just-install": "^2.0.2", - "wireit": "^0.14.9" - }, - "devDependencies": { - "@prettier/plugin-php": "^0.22.2", - "@prettier/plugin-xml": "^3.4.1", - "@tyisi/config-eslint": "^4.0.0", - "@tyisi/config-prettier": "^1.0.1", - "@types/angular": "^1.8.9", - "@types/bootstrap": "^5.2.10", - "@types/jquery": "^3.5.32", - "bower": "^1.8.14", - "eslint": "^9.15.0", - "husky": "^9.1.7", - "prettier": "^3.0.3", - "prettier-plugin-sh": "^0.14.0", - "prettier-plugin-sql": "^0.18.1", - "typescript": "^5.7.2" - } - }, - "node_modules/@eslint-community/eslint-utils": { - "version": "4.4.1", - "resolved": "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.4.1.tgz", - "integrity": "sha512-s3O3waFUrMV8P/XaF/+ZTp1X9XBZW1a4B97ZnjQF2KYWaFD2A8KyFBsrsfSjEmjn3RGWAIuvlneuZm3CUK3jbA==", - "dev": true, - "license": "MIT", - "dependencies": { - "eslint-visitor-keys": "^3.4.3" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "url": "https://opencollective.com/eslint" - }, - "peerDependencies": { - "eslint": "^6.0.0 || ^7.0.0 || >=8.0.0" - } - }, - "node_modules/@eslint-community/eslint-utils/node_modules/eslint-visitor-keys": { - "version": "3.4.3", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz", - "integrity": "sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==", - "dev": true, - "license": "Apache-2.0", - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "url": "https://opencollective.com/eslint" - } - }, - "node_modules/@eslint-community/regexpp": { - "version": "4.12.1", - "resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.12.1.tgz", - "integrity": "sha512-CCZCDJuduB9OUkFkY2IgppNZMi2lBQgD2qzwXkEia16cge2pijY/aXi96CJMquDMn3nJdlPV1A5KrJEXwfLNzQ==", - "dev": true, - "license": "MIT", - "engines": { - "node": "^12.0.0 || ^14.0.0 || >=16.0.0" - } - }, - "node_modules/@eslint/config-array": { - "version": "0.19.0", - "resolved": "https://registry.npmjs.org/@eslint/config-array/-/config-array-0.19.0.tgz", - "integrity": "sha512-zdHg2FPIFNKPdcHWtiNT+jEFCHYVplAXRDlQDyqy0zGx/q2parwh7brGJSiTxRk/TSMkbM//zt/f5CHgyTyaSQ==", - "dev": true, - "license": "Apache-2.0", - "dependencies": { - "@eslint/object-schema": "^2.1.4", - "debug": "^4.3.1", - "minimatch": "^3.1.2" - }, - "engines": { - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" - } - }, - "node_modules/@eslint/core": { - "version": "0.9.0", - "resolved": "https://registry.npmjs.org/@eslint/core/-/core-0.9.0.tgz", - "integrity": "sha512-7ATR9F0e4W85D/0w7cU0SNj7qkAexMG+bAHEZOjo9akvGuhHE2m7umzWzfnpa0XAg5Kxc1BWmtPMV67jJ+9VUg==", - "dev": true, - "license": "Apache-2.0", - "engines": { - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" - } - }, - "node_modules/@eslint/eslintrc": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-3.2.0.tgz", - "integrity": "sha512-grOjVNN8P3hjJn/eIETF1wwd12DdnwFDoyceUJLYYdkpbwq3nLi+4fqrTAONx7XDALqlL220wC/RHSC/QTI/0w==", - "dev": true, - "license": "MIT", - "dependencies": { - "ajv": "^6.12.4", - "debug": "^4.3.2", - "espree": "^10.0.1", - "globals": "^14.0.0", - "ignore": "^5.2.0", - "import-fresh": "^3.2.1", - "js-yaml": "^4.1.0", - "minimatch": "^3.1.2", - "strip-json-comments": "^3.1.1" - }, - "engines": { - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" - }, - "funding": { - "url": "https://opencollective.com/eslint" - } - }, - "node_modules/@eslint/eslintrc/node_modules/globals": { - "version": "14.0.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-14.0.0.tgz", - "integrity": "sha512-oahGvuMGQlPw/ivIYBjVSrWAfWLBeku5tpPE2fOPLi+WHffIWbuh2tCjhyQhTBPMf5E9jDEH4FOmTYgYwbKwtQ==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=18" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/@eslint/js": { - "version": "9.15.0", - "resolved": "https://registry.npmjs.org/@eslint/js/-/js-9.15.0.tgz", - "integrity": "sha512-tMTqrY+EzbXmKJR5ToI8lxu7jaN5EdmrBFJpQk5JmSlyLsx6o4t27r883K5xsLuCYCpfKBCGswMSWXsM+jB7lg==", - "dev": true, - "license": "MIT", - "engines": { - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" - } - }, - "node_modules/@eslint/object-schema": { - "version": "2.1.4", - "resolved": "https://registry.npmjs.org/@eslint/object-schema/-/object-schema-2.1.4.tgz", - "integrity": "sha512-BsWiH1yFGjXXS2yvrf5LyuoSIIbPrGUWob917o+BTKuZ7qJdxX8aJLRxs1fS9n6r7vESrq1OUqb68dANcFXuQQ==", - "dev": true, - "license": "Apache-2.0", - "engines": { - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" - } - }, - "node_modules/@eslint/plugin-kit": { - "version": "0.2.3", - "resolved": "https://registry.npmjs.org/@eslint/plugin-kit/-/plugin-kit-0.2.3.tgz", - "integrity": "sha512-2b/g5hRmpbb1o4GnTZax9N9m0FXzz9OV42ZzI4rDDMDuHUqigAiQCEWChBWCY4ztAGVRjoWT19v0yMmc5/L5kA==", - "dev": true, - "license": "Apache-2.0", - "dependencies": { - "levn": "^0.4.1" - }, - "engines": { - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" - } - }, - "node_modules/@humanfs/core": { - "version": "0.19.1", - "resolved": "https://registry.npmjs.org/@humanfs/core/-/core-0.19.1.tgz", - "integrity": "sha512-5DyQ4+1JEUzejeK1JGICcideyfUbGixgS9jNgex5nqkW+cY7WZhxBigmieN5Qnw9ZosSNVC9KQKyb+GUaGyKUA==", - "dev": true, - "license": "Apache-2.0", - "engines": { - "node": ">=18.18.0" - } - }, - "node_modules/@humanfs/node": { - "version": "0.16.6", - "resolved": "https://registry.npmjs.org/@humanfs/node/-/node-0.16.6.tgz", - "integrity": "sha512-YuI2ZHQL78Q5HbhDiBA1X4LmYdXCKCMQIfw0pw7piHJwyREFebJUvrQN4cMssyES6x+vfUbx1CIpaQUKYdQZOw==", - "dev": true, - "license": "Apache-2.0", - "dependencies": { - "@humanfs/core": "^0.19.1", - "@humanwhocodes/retry": "^0.3.0" - }, - "engines": { - "node": ">=18.18.0" - } - }, - "node_modules/@humanfs/node/node_modules/@humanwhocodes/retry": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/@humanwhocodes/retry/-/retry-0.3.1.tgz", - "integrity": "sha512-JBxkERygn7Bv/GbN5Rv8Ul6LVknS+5Bp6RgDC/O8gEBU/yeH5Ui5C/OlWrTb6qct7LjjfT6Re2NxB0ln0yYybA==", - "dev": true, - "license": "Apache-2.0", - "engines": { - "node": ">=18.18" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/nzakas" - } - }, - "node_modules/@humanwhocodes/module-importer": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz", - "integrity": "sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==", - "dev": true, - "license": "Apache-2.0", - "engines": { - "node": ">=12.22" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/nzakas" - } - }, - "node_modules/@humanwhocodes/retry": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/@humanwhocodes/retry/-/retry-0.4.1.tgz", - "integrity": "sha512-c7hNEllBlenFTHBky65mhq8WD2kbN9Q6gk0bTk8lSBvc554jpXSkST1iePudpt7+A/AQvuHs9EMqjHDXMY1lrA==", - "dev": true, - "license": "Apache-2.0", - "engines": { - "node": ">=18.18" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/nzakas" - } - }, - "node_modules/@nodelib/fs.scandir": { - "version": "2.1.5", - "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", - "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", - "license": "MIT", - "dependencies": { - "@nodelib/fs.stat": "2.0.5", - "run-parallel": "^1.1.9" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/@nodelib/fs.stat": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", - "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", - "license": "MIT", - "engines": { - "node": ">= 8" - } - }, - "node_modules/@nodelib/fs.walk": { - "version": "1.2.8", - "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", - "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", - "license": "MIT", - "dependencies": { - "@nodelib/fs.scandir": "2.1.5", - "fastq": "^1.6.0" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/@nolyfill/is-core-module": { - "version": "1.0.39", - "resolved": "https://registry.npmjs.org/@nolyfill/is-core-module/-/is-core-module-1.0.39.tgz", - "integrity": "sha512-nn5ozdjYQpUCZlWGuxcJY/KpxkWQs4DcbMCmKojjyrYDEAGy4Ce19NN4v5MduafTwJlbKc99UA8YhSVqq9yPZA==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=12.4.0" - } - }, - "node_modules/@popperjs/core": { - "version": "2.11.8", - "resolved": "https://registry.npmjs.org/@popperjs/core/-/core-2.11.8.tgz", - "integrity": "sha512-P1st0aksCrn9sGZhp8GMYwBnQsbvAWsZAX44oXNNvLHGqAOcoVxmjZiohstwQ7SqKnbR47akdNi+uleWD8+g6A==", - "dev": true, - "license": "MIT", - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/popperjs" - } - }, - "node_modules/@prettier/plugin-php": { - "version": "0.22.2", - "resolved": "https://registry.npmjs.org/@prettier/plugin-php/-/plugin-php-0.22.2.tgz", - "integrity": "sha512-md0+7tNbsP0oy+wIP3KZZc6fzx1k1jtWaMjOy/gM8yU9f2BDYEi+iHOc/UNPihYvPI28zFTbjvlhH4QXQjQwNg==", - "dev": true, - "license": "MIT", - "dependencies": { - "linguist-languages": "^7.27.0", - "php-parser": "^3.1.5" - }, - "peerDependencies": { - "prettier": "^3.0.0" - } - }, - "node_modules/@prettier/plugin-xml": { - "version": "3.4.1", - "resolved": "https://registry.npmjs.org/@prettier/plugin-xml/-/plugin-xml-3.4.1.tgz", - "integrity": "sha512-Uf/6/+9ez6z/IvZErgobZ2G9n1ybxF5BhCd7eMcKqfoWuOzzNUxBipNo3QAP8kRC1VD18TIo84no7LhqtyDcTg==", - "dev": true, - "license": "MIT", - "dependencies": { - "@xml-tools/parser": "^1.0.11" - }, - "peerDependencies": { - "prettier": "^3.0.0" - } - }, - "node_modules/@rtsao/scc": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@rtsao/scc/-/scc-1.1.0.tgz", - "integrity": "sha512-zt6OdqaDoOnJ1ZYsCYGt9YmWzDXl4vQdKTyJev62gFhRGKdx7mcT54V9KIjg+d2wi9EXsPvAPKe7i7WjfVWB8g==", - "dev": true, - "license": "MIT" - }, - "node_modules/@sec-ant/readable-stream": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/@sec-ant/readable-stream/-/readable-stream-0.4.1.tgz", - "integrity": "sha512-831qok9r2t8AlxLko40y2ebgSDhenenCatLVeW/uBtnHPyhHOvG0C7TvfgecV+wHzIm5KUICgzmVpWS+IMEAeg==", - "dev": true, - "license": "MIT" - }, - "node_modules/@sindresorhus/merge-streams": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/@sindresorhus/merge-streams/-/merge-streams-4.0.0.tgz", - "integrity": "sha512-tlqY9xq5ukxTUZBmoOp+m61cqwQD5pHJtFY3Mn8CA8ps6yghLH/Hw8UPdqg4OLmFW3IFlcXnQNmo/dh8HzXYIQ==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=18" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/@tyisi/config-eslint": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/@tyisi/config-eslint/-/config-eslint-4.0.0.tgz", - "integrity": "sha512-d3mQl5w+D8EQ5gKjEOKMozAnfqqlcQkHEDP/ihrQQvR7t2rIsJu9xIxhJxRv8viWrk4kVVamYpOe410o6rCblQ==", - "dev": true, - "license": "ISC", - "dependencies": { - "@eslint/js": "^9.12.0", - "deepmerge": "^4.3.1", - "eslint-config-love": "^87.0.0", - "eslint-config-prettier": "^9.1.0", - "eslint-import-resolver-typescript": "^3.6.3", - "eslint-plugin-import": "^2.31.0", - "eslint-plugin-jsx-a11y": "^6.10.0", - "eslint-plugin-react": "^7.37.1", - "globals": "^15.11.0", - "rust-just": "^1.36.0" - }, - "engines": { - "node": ">=20" - }, - "peerDependencies": { - "eslint": "^9.12.0", - "prettier": "^3.3.3" - } - }, - "node_modules/@tyisi/config-prettier": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@tyisi/config-prettier/-/config-prettier-1.0.1.tgz", - "integrity": "sha512-tRmvt+2S4XpB7ibEMOXM+Unru6jrxk/V2FDXYO/2wgYnj5EVxkinT1U0XU2Gj4AuuHpbCdvksX1vbJvfMdmR+w==", - "dev": true, - "license": "ISC", - "dependencies": { - "prettier-plugin-sh": "^0.14.0", - "prettier-plugin-tailwindcss": "^0.6.8" - }, - "peerDependencies": { - "prettier": "^3.3.3" - } - }, - "node_modules/@types/angular": { - "version": "1.8.9", - "resolved": "https://registry.npmjs.org/@types/angular/-/angular-1.8.9.tgz", - "integrity": "sha512-Z0HukqZkx0fotsV3QO00yqU9NzcQI+tMcrum+8MvfB4ePqCawZctF/gz6QiuII+T1ax+LitNoPx/eICTgnF4sg==", - "dev": true, - "license": "MIT" - }, - "node_modules/@types/bootstrap": { - "version": "5.2.10", - "resolved": "https://registry.npmjs.org/@types/bootstrap/-/bootstrap-5.2.10.tgz", - "integrity": "sha512-F2X+cd6551tep0MvVZ6nM8v7XgGN/twpdNDjqS1TUM7YFNEtQYWk+dKAnH+T1gr6QgCoGMPl487xw/9hXooa2g==", - "dev": true, - "license": "MIT", - "dependencies": { - "@popperjs/core": "^2.9.2" - } - }, - "node_modules/@types/estree": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.6.tgz", - "integrity": "sha512-AYnb1nQyY49te+VRAVgmzfcgjYS91mY5P0TKUDCLEM+gNnA+3T6rWITXRLYCpahpqSQbN5cE+gHpnPyXjHWxcw==", - "dev": true, - "license": "MIT" - }, - "node_modules/@types/jquery": { - "version": "3.5.32", - "resolved": "https://registry.npmjs.org/@types/jquery/-/jquery-3.5.32.tgz", - "integrity": "sha512-b9Xbf4CkMqS02YH8zACqN1xzdxc3cO735Qe5AbSUFmyOiaWAbcpqh9Wna+Uk0vgACvoQHpWDg2rGdHkYPLmCiQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "@types/sizzle": "*" - } - }, - "node_modules/@types/json-schema": { - "version": "7.0.15", - "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.15.tgz", - "integrity": "sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==", - "dev": true, - "license": "MIT" - }, - "node_modules/@types/json5": { - "version": "0.0.29", - "resolved": "https://registry.npmjs.org/@types/json5/-/json5-0.0.29.tgz", - "integrity": "sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ==", - "dev": true, - "license": "MIT" - }, - "node_modules/@types/lodash": { - "version": "4.17.13", - "resolved": "https://registry.npmjs.org/@types/lodash/-/lodash-4.17.13.tgz", - "integrity": "sha512-lfx+dftrEZcdBPczf9d0Qv0x+j/rfNCMuC6OcfXmO8gkfeNAY88PgKUbvG56whcN23gc27yenwF6oJZXGFpYxg==", - "license": "MIT" - }, - "node_modules/@types/node": { - "version": "22.10.1", - "resolved": "https://registry.npmjs.org/@types/node/-/node-22.10.1.tgz", - "integrity": "sha512-qKgsUwfHZV2WCWLAnVP1JqnpE6Im6h3Y0+fYgMTasNQ7V++CBX5OT1as0g0f+OyubbFqhf6XVNIsmN4IIhEgGQ==", - "license": "MIT", - "optional": true, - "dependencies": { - "undici-types": "~6.20.0" - } - }, - "node_modules/@types/sizzle": { - "version": "2.3.9", - "resolved": "https://registry.npmjs.org/@types/sizzle/-/sizzle-2.3.9.tgz", - "integrity": "sha512-xzLEyKB50yqCUPUJkIsrVvoWNfFUbIZI+RspLWt8u+tIW/BetMBZtgV2LY/2o+tYH8dRvQ+eoPf3NdhQCcLE2w==", - "dev": true, - "license": "MIT" - }, - "node_modules/@types/yauzl": { - "version": "2.10.3", - "resolved": "https://registry.npmjs.org/@types/yauzl/-/yauzl-2.10.3.tgz", - "integrity": "sha512-oJoftv0LSuaDZE3Le4DbKX+KS9G36NzOeSap90UIK0yMA/NhKJhqlSGtNDORNRaIbQfzjXDrQa0ytJ6mNRGz/Q==", - "license": "MIT", - "optional": true, - "dependencies": { - "@types/node": "*" - } - }, - "node_modules/@typescript-eslint/eslint-plugin": { - "version": "8.16.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-8.16.0.tgz", - "integrity": "sha512-5YTHKV8MYlyMI6BaEG7crQ9BhSc8RxzshOReKwZwRWN0+XvvTOm+L/UYLCYxFpfwYuAAqhxiq4yae0CMFwbL7Q==", - "dev": true, - "license": "MIT", - "dependencies": { - "@eslint-community/regexpp": "^4.10.0", - "@typescript-eslint/scope-manager": "8.16.0", - "@typescript-eslint/type-utils": "8.16.0", - "@typescript-eslint/utils": "8.16.0", - "@typescript-eslint/visitor-keys": "8.16.0", - "graphemer": "^1.4.0", - "ignore": "^5.3.1", - "natural-compare": "^1.4.0", - "ts-api-utils": "^1.3.0" - }, - "engines": { - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - }, - "peerDependencies": { - "@typescript-eslint/parser": "^8.0.0 || ^8.0.0-alpha.0", - "eslint": "^8.57.0 || ^9.0.0" - }, - "peerDependenciesMeta": { - "typescript": { - "optional": true - } - } - }, - "node_modules/@typescript-eslint/parser": { - "version": "8.16.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-8.16.0.tgz", - "integrity": "sha512-D7DbgGFtsqIPIFMPJwCad9Gfi/hC0PWErRRHFnaCWoEDYi5tQUDiJCTmGUbBiLzjqAck4KcXt9Ayj0CNlIrF+w==", - "dev": true, - "license": "BSD-2-Clause", - "dependencies": { - "@typescript-eslint/scope-manager": "8.16.0", - "@typescript-eslint/types": "8.16.0", - "@typescript-eslint/typescript-estree": "8.16.0", - "@typescript-eslint/visitor-keys": "8.16.0", - "debug": "^4.3.4" - }, - "engines": { - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - }, - "peerDependencies": { - "eslint": "^8.57.0 || ^9.0.0" - }, - "peerDependenciesMeta": { - "typescript": { - "optional": true - } - } - }, - "node_modules/@typescript-eslint/scope-manager": { - "version": "8.16.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-8.16.0.tgz", - "integrity": "sha512-mwsZWubQvBki2t5565uxF0EYvG+FwdFb8bMtDuGQLdCCnGPrDEDvm1gtfynuKlnpzeBRqdFCkMf9jg1fnAK8sg==", - "dev": true, - "license": "MIT", - "dependencies": { - "@typescript-eslint/types": "8.16.0", - "@typescript-eslint/visitor-keys": "8.16.0" - }, - "engines": { - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - } - }, - "node_modules/@typescript-eslint/type-utils": { - "version": "8.16.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-8.16.0.tgz", - "integrity": "sha512-IqZHGG+g1XCWX9NyqnI/0CX5LL8/18awQqmkZSl2ynn8F76j579dByc0jhfVSnSnhf7zv76mKBQv9HQFKvDCgg==", - "dev": true, - "license": "MIT", - "dependencies": { - "@typescript-eslint/typescript-estree": "8.16.0", - "@typescript-eslint/utils": "8.16.0", - "debug": "^4.3.4", - "ts-api-utils": "^1.3.0" - }, - "engines": { - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - }, - "peerDependencies": { - "eslint": "^8.57.0 || ^9.0.0" - }, - "peerDependenciesMeta": { - "typescript": { - "optional": true - } - } - }, - "node_modules/@typescript-eslint/types": { - "version": "8.16.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-8.16.0.tgz", - "integrity": "sha512-NzrHj6thBAOSE4d9bsuRNMvk+BvaQvmY4dDglgkgGC0EW/tB3Kelnp3tAKH87GEwzoxgeQn9fNGRyFJM/xd+GQ==", - "dev": true, - "license": "MIT", - "engines": { - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - } - }, - "node_modules/@typescript-eslint/typescript-estree": { - "version": "8.16.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-8.16.0.tgz", - "integrity": "sha512-E2+9IzzXMc1iaBy9zmo+UYvluE3TW7bCGWSF41hVWUE01o8nzr1rvOQYSxelxr6StUvRcTMe633eY8mXASMaNw==", - "dev": true, - "license": "BSD-2-Clause", - "dependencies": { - "@typescript-eslint/types": "8.16.0", - "@typescript-eslint/visitor-keys": "8.16.0", - "debug": "^4.3.4", - "fast-glob": "^3.3.2", - "is-glob": "^4.0.3", - "minimatch": "^9.0.4", - "semver": "^7.6.0", - "ts-api-utils": "^1.3.0" - }, - "engines": { - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - }, - "peerDependenciesMeta": { - "typescript": { - "optional": true - } - } - }, - "node_modules/@typescript-eslint/typescript-estree/node_modules/brace-expansion": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", - "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", - "dev": true, - "license": "MIT", - "dependencies": { - "balanced-match": "^1.0.0" - } - }, - "node_modules/@typescript-eslint/typescript-estree/node_modules/minimatch": { - "version": "9.0.5", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz", - "integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==", - "dev": true, - "license": "ISC", - "dependencies": { - "brace-expansion": "^2.0.1" - }, - "engines": { - "node": ">=16 || 14 >=14.17" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/@typescript-eslint/utils": { - "version": "8.16.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-8.16.0.tgz", - "integrity": "sha512-C1zRy/mOL8Pj157GiX4kaw7iyRLKfJXBR3L82hk5kS/GyHcOFmy4YUq/zfZti72I9wnuQtA/+xzft4wCC8PJdA==", - "dev": true, - "license": "MIT", - "dependencies": { - "@eslint-community/eslint-utils": "^4.4.0", - "@typescript-eslint/scope-manager": "8.16.0", - "@typescript-eslint/types": "8.16.0", - "@typescript-eslint/typescript-estree": "8.16.0" - }, - "engines": { - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - }, - "peerDependencies": { - "eslint": "^8.57.0 || ^9.0.0" - }, - "peerDependenciesMeta": { - "typescript": { - "optional": true - } - } - }, - "node_modules/@typescript-eslint/visitor-keys": { - "version": "8.16.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-8.16.0.tgz", - "integrity": "sha512-pq19gbaMOmFE3CbL0ZB8J8BFCo2ckfHBfaIsaOZgBIF4EoISJIdLX5xRhd0FGB0LlHReNRuzoJoMGpTjq8F2CQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "@typescript-eslint/types": "8.16.0", - "eslint-visitor-keys": "^4.2.0" - }, - "engines": { - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - } - }, - "node_modules/@xml-tools/parser": { - "version": "1.0.11", - "resolved": "https://registry.npmjs.org/@xml-tools/parser/-/parser-1.0.11.tgz", - "integrity": "sha512-aKqQ077XnR+oQtHJlrAflaZaL7qZsulWc/i/ZEooar5JiWj1eLt0+Wg28cpa+XLney107wXqneC+oG1IZvxkTA==", - "dev": true, - "license": "Apache-2.0", - "dependencies": { - "chevrotain": "7.1.1" - } - }, - "node_modules/acorn": { - "version": "8.14.0", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.14.0.tgz", - "integrity": "sha512-cl669nCJTZBsL97OF4kUQm5g5hC2uihk0NxY3WENAC0TYdILVkAyHymAntgxGkl7K+t0cXIrH5siy5S4XkFycA==", - "dev": true, - "license": "MIT", - "bin": { - "acorn": "bin/acorn" - }, - "engines": { - "node": ">=0.4.0" - } - }, - "node_modules/acorn-jsx": { - "version": "5.3.2", - "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz", - "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==", - "dev": true, - "license": "MIT", - "peerDependencies": { - "acorn": "^6.0.0 || ^7.0.0 || ^8.0.0" - } - }, - "node_modules/ajv": { - "version": "6.12.6", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", - "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", - "dev": true, - "license": "MIT", - "dependencies": { - "fast-deep-equal": "^3.1.1", - "fast-json-stable-stringify": "^2.0.0", - "json-schema-traverse": "^0.4.1", - "uri-js": "^4.2.2" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/epoberezkin" - } - }, - "node_modules/ansi-regex": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", - "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "license": "MIT", - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/anymatch": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz", - "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==", - "license": "ISC", - "dependencies": { - "normalize-path": "^3.0.0", - "picomatch": "^2.0.4" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/argparse": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", - "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", - "dev": true - }, - "node_modules/aria-query": { - "version": "5.3.2", - "resolved": "https://registry.npmjs.org/aria-query/-/aria-query-5.3.2.tgz", - "integrity": "sha512-COROpnaoap1E2F000S62r6A60uHZnmlvomhfyT2DlTcrY1OrBKn2UhH7qn5wTC9zMvD0AY7csdPSNwKP+7WiQw==", - "dev": true, - "license": "Apache-2.0", - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/array-buffer-byte-length": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/array-buffer-byte-length/-/array-buffer-byte-length-1.0.1.tgz", - "integrity": "sha512-ahC5W1xgou+KTXix4sAO8Ki12Q+jf4i0+tmk3sC+zgcynshkHxzpXdImBehiUYKKKDwvfFiJl1tZt6ewscS1Mg==", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.5", - "is-array-buffer": "^3.0.4" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/array-includes": { - "version": "3.1.8", - "resolved": "https://registry.npmjs.org/array-includes/-/array-includes-3.1.8.tgz", - "integrity": "sha512-itaWrbYbqpGXkGhZPGUulwnhVf5Hpy1xiCFsGqyIGglbBxmG5vSjxQen3/WGOjPpNEv1RtBLKxbmVXm8HpJStQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.7", - "define-properties": "^1.2.1", - "es-abstract": "^1.23.2", - "es-object-atoms": "^1.0.0", - "get-intrinsic": "^1.2.4", - "is-string": "^1.0.7" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/array.prototype.findlast": { - "version": "1.2.5", - "resolved": "https://registry.npmjs.org/array.prototype.findlast/-/array.prototype.findlast-1.2.5.tgz", - "integrity": "sha512-CVvd6FHg1Z3POpBLxO6E6zr+rSKEQ9L6rZHAaY7lLfhKsWYUBBOuMs0e9o24oopj6H+geRCX0YJ+TJLBK2eHyQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.7", - "define-properties": "^1.2.1", - "es-abstract": "^1.23.2", - "es-errors": "^1.3.0", - "es-object-atoms": "^1.0.0", - "es-shim-unscopables": "^1.0.2" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/array.prototype.findlastindex": { - "version": "1.2.5", - "resolved": "https://registry.npmjs.org/array.prototype.findlastindex/-/array.prototype.findlastindex-1.2.5.tgz", - "integrity": "sha512-zfETvRFA8o7EiNn++N5f/kaCw221hrpGsDmcpndVupkPzEc1Wuf3VgC0qby1BbHs7f5DVYjgtEU2LLh5bqeGfQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.7", - "define-properties": "^1.2.1", - "es-abstract": "^1.23.2", - "es-errors": "^1.3.0", - "es-object-atoms": "^1.0.0", - "es-shim-unscopables": "^1.0.2" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/array.prototype.flat": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/array.prototype.flat/-/array.prototype.flat-1.3.2.tgz", - "integrity": "sha512-djYB+Zx2vLewY8RWlNCUdHjDXs2XOgm602S9E7P/UpHgfeHL00cRiIF+IN/G/aUJ7kGPb6yO/ErDI5V2s8iycA==", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.2.0", - "es-abstract": "^1.22.1", - "es-shim-unscopables": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/array.prototype.flatmap": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/array.prototype.flatmap/-/array.prototype.flatmap-1.3.2.tgz", - "integrity": "sha512-Ewyx0c9PmpcsByhSW4r+9zDU7sGjFc86qf/kKtuSCRdhfbk0SNLLkaT5qvcHnRGgc5NP/ly/y+qkXkqONX54CQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.2.0", - "es-abstract": "^1.22.1", - "es-shim-unscopables": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/array.prototype.tosorted": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/array.prototype.tosorted/-/array.prototype.tosorted-1.1.4.tgz", - "integrity": "sha512-p6Fx8B7b7ZhL/gmUsAy0D15WhvDccw3mnGNbZpi3pmeJdxtWsj2jEaI4Y6oo3XiHfzuSgPwKc04MYt6KgvC/wA==", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.7", - "define-properties": "^1.2.1", - "es-abstract": "^1.23.3", - "es-errors": "^1.3.0", - "es-shim-unscopables": "^1.0.2" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/arraybuffer.prototype.slice": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/arraybuffer.prototype.slice/-/arraybuffer.prototype.slice-1.0.3.tgz", - "integrity": "sha512-bMxMKAjg13EBSVscxTaYA4mRc5t1UAXa2kXiGTNfZ079HIWXEkKmkgFrh/nJqamaLSrXO5H4WFFkPEaLJWbs3A==", - "dev": true, - "license": "MIT", - "dependencies": { - "array-buffer-byte-length": "^1.0.1", - "call-bind": "^1.0.5", - "define-properties": "^1.2.1", - "es-abstract": "^1.22.3", - "es-errors": "^1.2.1", - "get-intrinsic": "^1.2.3", - "is-array-buffer": "^3.0.4", - "is-shared-array-buffer": "^1.0.2" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/ast-types-flow": { - "version": "0.0.8", - "resolved": "https://registry.npmjs.org/ast-types-flow/-/ast-types-flow-0.0.8.tgz", - "integrity": "sha512-OH/2E5Fg20h2aPrbe+QL8JZQFko0YZaF+j4mnQ7BGhfavO7OpSLa8a0y9sBwomHdSbkhTS8TQNayBfnW5DwbvQ==", - "dev": true, - "license": "MIT" - }, - "node_modules/available-typed-arrays": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/available-typed-arrays/-/available-typed-arrays-1.0.7.tgz", - "integrity": "sha512-wvUjBtSGN7+7SjNpq/9M2Tg350UZD3q62IFZLbRAR1bSMlCo1ZaeW+BJ+D090e4hIIZLBcTDWe4Mh4jvUDajzQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "possible-typed-array-names": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/axe-core": { - "version": "4.10.2", - "resolved": "https://registry.npmjs.org/axe-core/-/axe-core-4.10.2.tgz", - "integrity": "sha512-RE3mdQ7P3FRSe7eqCWoeQ/Z9QXrtniSjp1wUjt5nRC3WIpz5rSCve6o3fsZ2aCpJtrZjSZgjwXAoTO5k4tEI0w==", - "dev": true, - "license": "MPL-2.0", - "engines": { - "node": ">=4" - } - }, - "node_modules/axobject-query": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/axobject-query/-/axobject-query-4.1.0.tgz", - "integrity": "sha512-qIj0G9wZbMGNLjLmg1PT6v2mE9AH2zlnADJD/2tC6E00hgmhUOfEB6greHPAfLRSufHqROIUTkw6E+M3lH0PTQ==", - "dev": true, - "license": "Apache-2.0", - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/balanced-match": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", - "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", - "dev": true, - "license": "MIT" - }, - "node_modules/big-integer": { - "version": "1.6.52", - "resolved": "https://registry.npmjs.org/big-integer/-/big-integer-1.6.52.tgz", - "integrity": "sha512-QxD8cf2eVqJOOz63z6JIN9BzvVs/dlySa5HGSBH5xtR8dPteIRQnBxxKqkNTiT6jbDTF6jAfrd4oMcND9RGbQg==", - "dev": true, - "engines": { - "node": ">=0.6" - } - }, - "node_modules/binary-extensions": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.3.0.tgz", - "integrity": "sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw==", - "license": "MIT", - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/bower": { - "version": "1.8.14", - "resolved": "https://registry.npmjs.org/bower/-/bower-1.8.14.tgz", - "integrity": "sha512-8Rq058FD91q9Nwthyhw0la9fzpBz0iwZTrt51LWl+w+PnJgZk9J+5wp3nibsJcIUPglMYXr4NRBaR+TUj0OkBQ==", - "dev": true, - "license": "MIT", - "bin": { - "bower": "bin/bower" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/brace-expansion": { - "version": "1.1.11", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", - "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", - "dev": true, - "license": "MIT", - "dependencies": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" - } - }, - "node_modules/braces": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.3.tgz", - "integrity": "sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==", - "license": "MIT", - "dependencies": { - "fill-range": "^7.1.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/buffer-crc32": { - "version": "0.2.13", - "resolved": "https://registry.npmjs.org/buffer-crc32/-/buffer-crc32-0.2.13.tgz", - "integrity": "sha512-VO9Ht/+p3SN7SKWqcrgEzjGbRSJYTx+Q1pTQC0wrWqHx0vpJraQ6GtHx8tvcg1rlK1byhU5gccxgOgj7B0TDkQ==", - "license": "MIT", - "engines": { - "node": "*" - } - }, - "node_modules/call-bind": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.7.tgz", - "integrity": "sha512-GHTSNSYICQ7scH7sZ+M2rFopRoLh8t2bLSW6BbgrtLsahOIB5iyAVJf9GjWK3cYTDaMj4XdBpM1cA6pIS0Kv2w==", - "dev": true, - "license": "MIT", - "dependencies": { - "es-define-property": "^1.0.0", - "es-errors": "^1.3.0", - "function-bind": "^1.1.2", - "get-intrinsic": "^1.2.4", - "set-function-length": "^1.2.1" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/callsites": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", - "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=6" - } - }, - "node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "license": "MIT", - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, - "node_modules/chevrotain": { - "version": "7.1.1", - "resolved": "https://registry.npmjs.org/chevrotain/-/chevrotain-7.1.1.tgz", - "integrity": "sha512-wy3mC1x4ye+O+QkEinVJkPf5u2vsrDIYW9G7ZuwFl6v/Yu0LwUuT2POsb+NUWApebyxfkQq6+yDfRExbnI5rcw==", - "dev": true, - "license": "Apache-2.0", - "dependencies": { - "regexp-to-ast": "0.5.0" - } - }, - "node_modules/chokidar": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.6.0.tgz", - "integrity": "sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==", - "license": "MIT", - "dependencies": { - "anymatch": "~3.1.2", - "braces": "~3.0.2", - "glob-parent": "~5.1.2", - "is-binary-path": "~2.1.0", - "is-glob": "~4.0.1", - "normalize-path": "~3.0.0", - "readdirp": "~3.6.0" - }, - "engines": { - "node": ">= 8.10.0" - }, - "funding": { - "url": "https://paulmillr.com/funding/" - }, - "optionalDependencies": { - "fsevents": "~2.3.2" - } - }, - "node_modules/chokidar/node_modules/glob-parent": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", - "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", - "license": "ISC", - "dependencies": { - "is-glob": "^4.0.1" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/cliui": { - "version": "8.0.1", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-8.0.1.tgz", - "integrity": "sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==", - "dev": true, - "license": "ISC", - "dependencies": { - "string-width": "^4.2.0", - "strip-ansi": "^6.0.1", - "wrap-ansi": "^7.0.0" - }, - "engines": { - "node": ">=12" - } - }, - "node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true, - "license": "MIT" - }, - "node_modules/commander": { - "version": "2.20.3", - "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", - "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", - "dev": true - }, - "node_modules/concat-map": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", - "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==", - "dev": true, - "license": "MIT" - }, - "node_modules/cross-spawn": { - "version": "7.0.6", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.6.tgz", - "integrity": "sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==", - "dev": true, - "license": "MIT", - "dependencies": { - "path-key": "^3.1.0", - "shebang-command": "^2.0.0", - "which": "^2.0.1" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/damerau-levenshtein": { - "version": "1.0.8", - "resolved": "https://registry.npmjs.org/damerau-levenshtein/-/damerau-levenshtein-1.0.8.tgz", - "integrity": "sha512-sdQSFB7+llfUcQHUQO3+B8ERRj0Oa4w9POWMI/puGtuf7gFywGmkaLCElnudfTiKZV+NvHqL0ifzdrI8Ro7ESA==", - "dev": true, - "license": "BSD-2-Clause" - }, - "node_modules/data-uri-to-buffer": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/data-uri-to-buffer/-/data-uri-to-buffer-4.0.1.tgz", - "integrity": "sha512-0R9ikRb668HB7QDxT1vkpuUBtqc53YyAwMwGeUFKRojY/NWKvdZ+9UYtRfGmhqNbRkTSVpMbmyhXipFFv2cb/A==", - "license": "MIT", - "engines": { - "node": ">= 12" - } - }, - "node_modules/data-view-buffer": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/data-view-buffer/-/data-view-buffer-1.0.1.tgz", - "integrity": "sha512-0lht7OugA5x3iJLOWFhWK/5ehONdprk0ISXqVFn/NFrDu+cuc8iADFrGQz5BnRK7LLU3JmkbXSxaqX+/mXYtUA==", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.6", - "es-errors": "^1.3.0", - "is-data-view": "^1.0.1" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/data-view-byte-length": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/data-view-byte-length/-/data-view-byte-length-1.0.1.tgz", - "integrity": "sha512-4J7wRJD3ABAzr8wP+OcIcqq2dlUKp4DVflx++hs5h5ZKydWMI6/D/fAot+yh6g2tHh8fLFTvNOaVN357NvSrOQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.7", - "es-errors": "^1.3.0", - "is-data-view": "^1.0.1" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/data-view-byte-offset": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/data-view-byte-offset/-/data-view-byte-offset-1.0.0.tgz", - "integrity": "sha512-t/Ygsytq+R995EJ5PZlD4Cu56sWa8InXySaViRzw9apusqsOO2bQP+SbYzAhR0pFKoB+43lYy8rWban9JSuXnA==", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.6", - "es-errors": "^1.3.0", - "is-data-view": "^1.0.1" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/debug": { - "version": "4.3.7", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.7.tgz", - "integrity": "sha512-Er2nc/H7RrMXZBFCEim6TCmMk02Z8vLC2Rbi1KEBggpo0fS6l0S1nnapwmIi3yW/+GOJap1Krg4w0Hg80oCqgQ==", - "license": "MIT", - "dependencies": { - "ms": "^2.1.3" - }, - "engines": { - "node": ">=6.0" - }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } - } - }, - "node_modules/deep-is": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz", - "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==", - "dev": true, - "license": "MIT" - }, - "node_modules/deepmerge": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-4.3.1.tgz", - "integrity": "sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/define-data-property": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/define-data-property/-/define-data-property-1.1.4.tgz", - "integrity": "sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==", - "dev": true, - "license": "MIT", - "dependencies": { - "es-define-property": "^1.0.0", - "es-errors": "^1.3.0", - "gopd": "^1.0.1" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/define-properties": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.2.1.tgz", - "integrity": "sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg==", - "dev": true, - "license": "MIT", - "dependencies": { - "define-data-property": "^1.0.1", - "has-property-descriptors": "^1.0.0", - "object-keys": "^1.1.1" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/discontinuous-range": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/discontinuous-range/-/discontinuous-range-1.0.0.tgz", - "integrity": "sha512-c68LpLbO+7kP/b1Hr1qs8/BJ09F5khZGTxqxZuhzxpmwJKOgRFHJWIb9/KmqnqHhLdO55aOxFH/EGBvUQbL/RQ==", - "dev": true - }, - "node_modules/doctrine": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz", - "integrity": "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==", - "dev": true, - "license": "Apache-2.0", - "dependencies": { - "esutils": "^2.0.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/emoji-regex": { - "version": "9.2.2", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz", - "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==", - "dev": true, - "license": "MIT" - }, - "node_modules/end-of-stream": { - "version": "1.4.4", - "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz", - "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==", - "license": "MIT", - "dependencies": { - "once": "^1.4.0" - } - }, - "node_modules/enhanced-resolve": { - "version": "5.17.1", - "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.17.1.tgz", - "integrity": "sha512-LMHl3dXhTcfv8gM4kEzIUeTQ+7fpdA0l2tUf34BddXPkz2A5xJ5L/Pchd5BL6rdccM9QGvu0sWZzK1Z1t4wwyg==", - "dev": true, - "license": "MIT", - "dependencies": { - "graceful-fs": "^4.2.4", - "tapable": "^2.2.0" - }, - "engines": { - "node": ">=10.13.0" - } - }, - "node_modules/es-abstract": { - "version": "1.23.5", - "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.23.5.tgz", - "integrity": "sha512-vlmniQ0WNPwXqA0BnmwV3Ng7HxiGlh6r5U6JcTMNx8OilcAGqVJBHJcPjqOMaczU9fRuRK5Px2BdVyPRnKMMVQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "array-buffer-byte-length": "^1.0.1", - "arraybuffer.prototype.slice": "^1.0.3", - "available-typed-arrays": "^1.0.7", - "call-bind": "^1.0.7", - "data-view-buffer": "^1.0.1", - "data-view-byte-length": "^1.0.1", - "data-view-byte-offset": "^1.0.0", - "es-define-property": "^1.0.0", - "es-errors": "^1.3.0", - "es-object-atoms": "^1.0.0", - "es-set-tostringtag": "^2.0.3", - "es-to-primitive": "^1.2.1", - "function.prototype.name": "^1.1.6", - "get-intrinsic": "^1.2.4", - "get-symbol-description": "^1.0.2", - "globalthis": "^1.0.4", - "gopd": "^1.0.1", - "has-property-descriptors": "^1.0.2", - "has-proto": "^1.0.3", - "has-symbols": "^1.0.3", - "hasown": "^2.0.2", - "internal-slot": "^1.0.7", - "is-array-buffer": "^3.0.4", - "is-callable": "^1.2.7", - "is-data-view": "^1.0.1", - "is-negative-zero": "^2.0.3", - "is-regex": "^1.1.4", - "is-shared-array-buffer": "^1.0.3", - "is-string": "^1.0.7", - "is-typed-array": "^1.1.13", - "is-weakref": "^1.0.2", - "object-inspect": "^1.13.3", - "object-keys": "^1.1.1", - "object.assign": "^4.1.5", - "regexp.prototype.flags": "^1.5.3", - "safe-array-concat": "^1.1.2", - "safe-regex-test": "^1.0.3", - "string.prototype.trim": "^1.2.9", - "string.prototype.trimend": "^1.0.8", - "string.prototype.trimstart": "^1.0.8", - "typed-array-buffer": "^1.0.2", - "typed-array-byte-length": "^1.0.1", - "typed-array-byte-offset": "^1.0.2", - "typed-array-length": "^1.0.6", - "unbox-primitive": "^1.0.2", - "which-typed-array": "^1.1.15" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/es-define-property": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/es-define-property/-/es-define-property-1.0.0.tgz", - "integrity": "sha512-jxayLKShrEqqzJ0eumQbVhTYQM27CfT1T35+gCgDFoL82JLsXqTJ76zv6A0YLOgEnLUMvLzsDsGIrl8NFpT2gQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "get-intrinsic": "^1.2.4" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/es-errors": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/es-errors/-/es-errors-1.3.0.tgz", - "integrity": "sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/es-iterator-helpers": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/es-iterator-helpers/-/es-iterator-helpers-1.2.0.tgz", - "integrity": "sha512-tpxqxncxnpw3c93u8n3VOzACmRFoVmWJqbWXvX/JfKbkhBw1oslgPrUfeSt2psuqyEJFD6N/9lg5i7bsKpoq+Q==", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.7", - "define-properties": "^1.2.1", - "es-abstract": "^1.23.3", - "es-errors": "^1.3.0", - "es-set-tostringtag": "^2.0.3", - "function-bind": "^1.1.2", - "get-intrinsic": "^1.2.4", - "globalthis": "^1.0.4", - "gopd": "^1.0.1", - "has-property-descriptors": "^1.0.2", - "has-proto": "^1.0.3", - "has-symbols": "^1.0.3", - "internal-slot": "^1.0.7", - "iterator.prototype": "^1.1.3", - "safe-array-concat": "^1.1.2" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/es-object-atoms": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/es-object-atoms/-/es-object-atoms-1.0.0.tgz", - "integrity": "sha512-MZ4iQ6JwHOBQjahnjwaC1ZtIBH+2ohjamzAO3oaHcXYup7qxjF2fixyH+Q71voWHeOkI2q/TnJao/KfXYIZWbw==", - "dev": true, - "license": "MIT", - "dependencies": { - "es-errors": "^1.3.0" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/es-set-tostringtag": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/es-set-tostringtag/-/es-set-tostringtag-2.0.3.tgz", - "integrity": "sha512-3T8uNMC3OQTHkFUsFq8r/BwAXLHvU/9O9mE0fBc/MY5iq/8H7ncvO947LmYA6ldWw9Uh8Yhf25zu6n7nML5QWQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "get-intrinsic": "^1.2.4", - "has-tostringtag": "^1.0.2", - "hasown": "^2.0.1" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/es-shim-unscopables": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/es-shim-unscopables/-/es-shim-unscopables-1.0.2.tgz", - "integrity": "sha512-J3yBRXCzDu4ULnQwxyToo/OjdMx6akgVC7K6few0a7F/0wLtmKKN7I73AH5T2836UuXRqN7Qg+IIUw/+YJksRw==", - "dev": true, - "license": "MIT", - "dependencies": { - "hasown": "^2.0.0" - } - }, - "node_modules/es-to-primitive": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.3.0.tgz", - "integrity": "sha512-w+5mJ3GuFL+NjVtJlvydShqE1eN3h3PbI7/5LAsYJP/2qtuMXjfL2LpHSRqo4b4eSF5K/DH1JXKUAHSB2UW50g==", - "dev": true, - "license": "MIT", - "dependencies": { - "is-callable": "^1.2.7", - "is-date-object": "^1.0.5", - "is-symbol": "^1.0.4" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/escalade": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.2.0.tgz", - "integrity": "sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=6" - } - }, - "node_modules/escape-string-regexp": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", - "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/eslint": { - "version": "9.15.0", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-9.15.0.tgz", - "integrity": "sha512-7CrWySmIibCgT1Os28lUU6upBshZ+GxybLOrmRzi08kS8MBuO8QA7pXEgYgY5W8vK3e74xv0lpjo9DbaGU9Rkw==", - "dev": true, - "license": "MIT", - "dependencies": { - "@eslint-community/eslint-utils": "^4.2.0", - "@eslint-community/regexpp": "^4.12.1", - "@eslint/config-array": "^0.19.0", - "@eslint/core": "^0.9.0", - "@eslint/eslintrc": "^3.2.0", - "@eslint/js": "9.15.0", - "@eslint/plugin-kit": "^0.2.3", - "@humanfs/node": "^0.16.6", - "@humanwhocodes/module-importer": "^1.0.1", - "@humanwhocodes/retry": "^0.4.1", - "@types/estree": "^1.0.6", - "@types/json-schema": "^7.0.15", - "ajv": "^6.12.4", - "chalk": "^4.0.0", - "cross-spawn": "^7.0.5", - "debug": "^4.3.2", - "escape-string-regexp": "^4.0.0", - "eslint-scope": "^8.2.0", - "eslint-visitor-keys": "^4.2.0", - "espree": "^10.3.0", - "esquery": "^1.5.0", - "esutils": "^2.0.2", - "fast-deep-equal": "^3.1.3", - "file-entry-cache": "^8.0.0", - "find-up": "^5.0.0", - "glob-parent": "^6.0.2", - "ignore": "^5.2.0", - "imurmurhash": "^0.1.4", - "is-glob": "^4.0.0", - "json-stable-stringify-without-jsonify": "^1.0.1", - "lodash.merge": "^4.6.2", - "minimatch": "^3.1.2", - "natural-compare": "^1.4.0", - "optionator": "^0.9.3" - }, - "bin": { - "eslint": "bin/eslint.js" - }, - "engines": { - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" - }, - "funding": { - "url": "https://eslint.org/donate" - }, - "peerDependencies": { - "jiti": "*" - }, - "peerDependenciesMeta": { - "jiti": { - "optional": true - } - } - }, - "node_modules/eslint-compat-utils": { - "version": "0.5.1", - "resolved": "https://registry.npmjs.org/eslint-compat-utils/-/eslint-compat-utils-0.5.1.tgz", - "integrity": "sha512-3z3vFexKIEnjHE3zCMRo6fn/e44U7T1khUjg+Hp0ZQMCigh28rALD0nPFBcGZuiLC5rLZa2ubQHDRln09JfU2Q==", - "dev": true, - "license": "MIT", - "dependencies": { - "semver": "^7.5.4" - }, - "engines": { - "node": ">=12" - }, - "peerDependencies": { - "eslint": ">=6.0.0" - } - }, - "node_modules/eslint-config-love": { - "version": "87.0.0", - "resolved": "https://registry.npmjs.org/eslint-config-love/-/eslint-config-love-87.0.0.tgz", - "integrity": "sha512-WqVVU+z+OGzoo1Zl92+ZbD0ShQzYvdLDH8L5F6c432MOAWlDp7mtqg5HuAdjPAMWiKtfzB0+0hVLzcrikd5whQ==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/mightyiam" - }, - "https://wise.com/pay/me/shaharo" - ], - "license": "MIT", - "dependencies": { - "@typescript-eslint/utils": "^8.3.0", - "eslint-plugin-import": "^2.31.0", - "eslint-plugin-n": "^17.0.0", - "eslint-plugin-promise": "^7.0.0", - "typescript-eslint": "^8.3.0" - }, - "peerDependencies": { - "eslint": "^9.0.0", - "typescript": "*" - } - }, - "node_modules/eslint-config-prettier": { - "version": "9.1.0", - "resolved": "https://registry.npmjs.org/eslint-config-prettier/-/eslint-config-prettier-9.1.0.tgz", - "integrity": "sha512-NSWl5BFQWEPi1j4TjVNItzYV7dZXZ+wP6I6ZhrBGpChQhZRUaElihE9uRRkcbRnNb76UMKDF3r+WTmNcGPKsqw==", - "dev": true, - "license": "MIT", - "bin": { - "eslint-config-prettier": "bin/cli.js" - }, - "peerDependencies": { - "eslint": ">=7.0.0" - } - }, - "node_modules/eslint-import-resolver-node": { - "version": "0.3.9", - "resolved": "https://registry.npmjs.org/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.9.tgz", - "integrity": "sha512-WFj2isz22JahUv+B788TlO3N6zL3nNJGU8CcZbPZvVEkBPaJdCV4vy5wyghty5ROFbCRnm132v8BScu5/1BQ8g==", - "dev": true, - "license": "MIT", - "dependencies": { - "debug": "^3.2.7", - "is-core-module": "^2.13.0", - "resolve": "^1.22.4" - } - }, - "node_modules/eslint-import-resolver-node/node_modules/debug": { - "version": "3.2.7", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", - "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "ms": "^2.1.1" - } - }, - "node_modules/eslint-import-resolver-typescript": { - "version": "3.6.3", - "resolved": "https://registry.npmjs.org/eslint-import-resolver-typescript/-/eslint-import-resolver-typescript-3.6.3.tgz", - "integrity": "sha512-ud9aw4szY9cCT1EWWdGv1L1XR6hh2PaRWif0j2QjQ0pgTY/69iw+W0Z4qZv5wHahOl8isEr+k/JnyAqNQkLkIA==", - "dev": true, - "license": "ISC", - "dependencies": { - "@nolyfill/is-core-module": "1.0.39", - "debug": "^4.3.5", - "enhanced-resolve": "^5.15.0", - "eslint-module-utils": "^2.8.1", - "fast-glob": "^3.3.2", - "get-tsconfig": "^4.7.5", - "is-bun-module": "^1.0.2", - "is-glob": "^4.0.3" - }, - "engines": { - "node": "^14.18.0 || >=16.0.0" - }, - "funding": { - "url": "https://opencollective.com/unts/projects/eslint-import-resolver-ts" - }, - "peerDependencies": { - "eslint": "*", - "eslint-plugin-import": "*", - "eslint-plugin-import-x": "*" - }, - "peerDependenciesMeta": { - "eslint-plugin-import": { - "optional": true - }, - "eslint-plugin-import-x": { - "optional": true - } - } - }, - "node_modules/eslint-module-utils": { - "version": "2.12.0", - "resolved": "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.12.0.tgz", - "integrity": "sha512-wALZ0HFoytlyh/1+4wuZ9FJCD/leWHQzzrxJ8+rebyReSLk7LApMyd3WJaLVoN+D5+WIdJyDK1c6JnE65V4Zyg==", - "dev": true, - "license": "MIT", - "dependencies": { - "debug": "^3.2.7" - }, - "engines": { - "node": ">=4" - }, - "peerDependenciesMeta": { - "eslint": { - "optional": true - } - } - }, - "node_modules/eslint-module-utils/node_modules/debug": { - "version": "3.2.7", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", - "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "ms": "^2.1.1" - } - }, - "node_modules/eslint-plugin-es-x": { - "version": "7.8.0", - "resolved": "https://registry.npmjs.org/eslint-plugin-es-x/-/eslint-plugin-es-x-7.8.0.tgz", - "integrity": "sha512-7Ds8+wAAoV3T+LAKeu39Y5BzXCrGKrcISfgKEqTS4BDN8SFEDQd0S43jiQ8vIa3wUKD07qitZdfzlenSi8/0qQ==", - "dev": true, - "funding": [ - "https://github.com/sponsors/ota-meshi", - "https://opencollective.com/eslint" - ], - "license": "MIT", - "dependencies": { - "@eslint-community/eslint-utils": "^4.1.2", - "@eslint-community/regexpp": "^4.11.0", - "eslint-compat-utils": "^0.5.1" - }, - "engines": { - "node": "^14.18.0 || >=16.0.0" - }, - "peerDependencies": { - "eslint": ">=8" - } - }, - "node_modules/eslint-plugin-import": { - "version": "2.31.0", - "resolved": "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.31.0.tgz", - "integrity": "sha512-ixmkI62Rbc2/w8Vfxyh1jQRTdRTF52VxwRVHl/ykPAmqG+Nb7/kNn+byLP0LxPgI7zWA16Jt82SybJInmMia3A==", - "dev": true, - "license": "MIT", - "dependencies": { - "@rtsao/scc": "^1.1.0", - "array-includes": "^3.1.8", - "array.prototype.findlastindex": "^1.2.5", - "array.prototype.flat": "^1.3.2", - "array.prototype.flatmap": "^1.3.2", - "debug": "^3.2.7", - "doctrine": "^2.1.0", - "eslint-import-resolver-node": "^0.3.9", - "eslint-module-utils": "^2.12.0", - "hasown": "^2.0.2", - "is-core-module": "^2.15.1", - "is-glob": "^4.0.3", - "minimatch": "^3.1.2", - "object.fromentries": "^2.0.8", - "object.groupby": "^1.0.3", - "object.values": "^1.2.0", - "semver": "^6.3.1", - "string.prototype.trimend": "^1.0.8", - "tsconfig-paths": "^3.15.0" - }, - "engines": { - "node": ">=4" - }, - "peerDependencies": { - "eslint": "^2 || ^3 || ^4 || ^5 || ^6 || ^7.2.0 || ^8 || ^9" - } - }, - "node_modules/eslint-plugin-import/node_modules/debug": { - "version": "3.2.7", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", - "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "ms": "^2.1.1" - } - }, - "node_modules/eslint-plugin-import/node_modules/semver": { - "version": "6.3.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", - "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", - "dev": true, - "license": "ISC", - "bin": { - "semver": "bin/semver.js" - } - }, - "node_modules/eslint-plugin-jsx-a11y": { - "version": "6.10.2", - "resolved": "https://registry.npmjs.org/eslint-plugin-jsx-a11y/-/eslint-plugin-jsx-a11y-6.10.2.tgz", - "integrity": "sha512-scB3nz4WmG75pV8+3eRUQOHZlNSUhFNq37xnpgRkCCELU3XMvXAxLk1eqWWyE22Ki4Q01Fnsw9BA3cJHDPgn2Q==", - "dev": true, - "license": "MIT", - "dependencies": { - "aria-query": "^5.3.2", - "array-includes": "^3.1.8", - "array.prototype.flatmap": "^1.3.2", - "ast-types-flow": "^0.0.8", - "axe-core": "^4.10.0", - "axobject-query": "^4.1.0", - "damerau-levenshtein": "^1.0.8", - "emoji-regex": "^9.2.2", - "hasown": "^2.0.2", - "jsx-ast-utils": "^3.3.5", - "language-tags": "^1.0.9", - "minimatch": "^3.1.2", - "object.fromentries": "^2.0.8", - "safe-regex-test": "^1.0.3", - "string.prototype.includes": "^2.0.1" - }, - "engines": { - "node": ">=4.0" - }, - "peerDependencies": { - "eslint": "^3 || ^4 || ^5 || ^6 || ^7 || ^8 || ^9" - } - }, - "node_modules/eslint-plugin-n": { - "version": "17.14.0", - "resolved": "https://registry.npmjs.org/eslint-plugin-n/-/eslint-plugin-n-17.14.0.tgz", - "integrity": "sha512-maxPLMEA0rPmRpoOlxEclKng4UpDe+N5BJS4t24I3UKnN109Qcivnfs37KMy84G0af3bxjog5lKctP5ObsvcTA==", - "dev": true, - "license": "MIT", - "dependencies": { - "@eslint-community/eslint-utils": "^4.4.1", - "enhanced-resolve": "^5.17.1", - "eslint-plugin-es-x": "^7.8.0", - "get-tsconfig": "^4.8.1", - "globals": "^15.11.0", - "ignore": "^5.3.2", - "minimatch": "^9.0.5", - "semver": "^7.6.3" - }, - "engines": { - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" - }, - "funding": { - "url": "https://opencollective.com/eslint" - }, - "peerDependencies": { - "eslint": ">=8.23.0" - } - }, - "node_modules/eslint-plugin-n/node_modules/brace-expansion": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", - "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", - "dev": true, - "license": "MIT", - "dependencies": { - "balanced-match": "^1.0.0" - } - }, - "node_modules/eslint-plugin-n/node_modules/minimatch": { - "version": "9.0.5", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz", - "integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==", - "dev": true, - "license": "ISC", - "dependencies": { - "brace-expansion": "^2.0.1" - }, - "engines": { - "node": ">=16 || 14 >=14.17" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/eslint-plugin-promise": { - "version": "7.2.1", - "resolved": "https://registry.npmjs.org/eslint-plugin-promise/-/eslint-plugin-promise-7.2.1.tgz", - "integrity": "sha512-SWKjd+EuvWkYaS+uN2csvj0KoP43YTu7+phKQ5v+xw6+A0gutVX2yqCeCkC3uLCJFiPfR2dD8Es5L7yUsmvEaA==", - "dev": true, - "license": "ISC", - "dependencies": { - "@eslint-community/eslint-utils": "^4.4.0" - }, - "engines": { - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" - }, - "funding": { - "url": "https://opencollective.com/eslint" - }, - "peerDependencies": { - "eslint": "^7.0.0 || ^8.0.0 || ^9.0.0" - } - }, - "node_modules/eslint-plugin-react": { - "version": "7.37.2", - "resolved": "https://registry.npmjs.org/eslint-plugin-react/-/eslint-plugin-react-7.37.2.tgz", - "integrity": "sha512-EsTAnj9fLVr/GZleBLFbj/sSuXeWmp1eXIN60ceYnZveqEaUCyW4X+Vh4WTdUhCkW4xutXYqTXCUSyqD4rB75w==", - "dev": true, - "license": "MIT", - "dependencies": { - "array-includes": "^3.1.8", - "array.prototype.findlast": "^1.2.5", - "array.prototype.flatmap": "^1.3.2", - "array.prototype.tosorted": "^1.1.4", - "doctrine": "^2.1.0", - "es-iterator-helpers": "^1.1.0", - "estraverse": "^5.3.0", - "hasown": "^2.0.2", - "jsx-ast-utils": "^2.4.1 || ^3.0.0", - "minimatch": "^3.1.2", - "object.entries": "^1.1.8", - "object.fromentries": "^2.0.8", - "object.values": "^1.2.0", - "prop-types": "^15.8.1", - "resolve": "^2.0.0-next.5", - "semver": "^6.3.1", - "string.prototype.matchall": "^4.0.11", - "string.prototype.repeat": "^1.0.0" - }, - "engines": { - "node": ">=4" - }, - "peerDependencies": { - "eslint": "^3 || ^4 || ^5 || ^6 || ^7 || ^8 || ^9.7" - } - }, - "node_modules/eslint-plugin-react/node_modules/resolve": { - "version": "2.0.0-next.5", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-2.0.0-next.5.tgz", - "integrity": "sha512-U7WjGVG9sH8tvjW5SmGbQuui75FiyjAX72HX15DwBBwF9dNiQZRQAg9nnPhYy+TUnE0+VcrttuvNI8oSxZcocA==", - "dev": true, - "license": "MIT", - "dependencies": { - "is-core-module": "^2.13.0", - "path-parse": "^1.0.7", - "supports-preserve-symlinks-flag": "^1.0.0" - }, - "bin": { - "resolve": "bin/resolve" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/eslint-plugin-react/node_modules/semver": { - "version": "6.3.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", - "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", - "dev": true, - "license": "ISC", - "bin": { - "semver": "bin/semver.js" - } - }, - "node_modules/eslint-scope": { - "version": "8.2.0", - "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-8.2.0.tgz", - "integrity": "sha512-PHlWUfG6lvPc3yvP5A4PNyBL1W8fkDUccmI21JUu/+GKZBoH/W5u6usENXUrWFRsyoW5ACUjFGgAFQp5gUlb/A==", - "dev": true, - "license": "BSD-2-Clause", - "dependencies": { - "esrecurse": "^4.3.0", - "estraverse": "^5.2.0" - }, - "engines": { - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" - }, - "funding": { - "url": "https://opencollective.com/eslint" - } - }, - "node_modules/eslint-visitor-keys": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-4.2.0.tgz", - "integrity": "sha512-UyLnSehNt62FFhSwjZlHmeokpRK59rcz29j+F1/aDgbkbRTk7wIc9XzdoasMUbRNKDM0qQt/+BJ4BrpFeABemw==", - "dev": true, - "license": "Apache-2.0", - "engines": { - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" - }, - "funding": { - "url": "https://opencollective.com/eslint" - } - }, - "node_modules/espree": { - "version": "10.3.0", - "resolved": "https://registry.npmjs.org/espree/-/espree-10.3.0.tgz", - "integrity": "sha512-0QYC8b24HWY8zjRnDTL6RiHfDbAWn63qb4LMj1Z4b076A4une81+z03Kg7l7mn/48PUTqoLptSXez8oknU8Clg==", - "dev": true, - "license": "BSD-2-Clause", - "dependencies": { - "acorn": "^8.14.0", - "acorn-jsx": "^5.3.2", - "eslint-visitor-keys": "^4.2.0" - }, - "engines": { - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" - }, - "funding": { - "url": "https://opencollective.com/eslint" - } - }, - "node_modules/esquery": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.6.0.tgz", - "integrity": "sha512-ca9pw9fomFcKPvFLXhBKUK90ZvGibiGOvRJNbjljY7s7uq/5YO4BOzcYtJqExdx99rF6aAcnRxHmcUHcz6sQsg==", - "dev": true, - "license": "BSD-3-Clause", - "dependencies": { - "estraverse": "^5.1.0" - }, - "engines": { - "node": ">=0.10" - } - }, - "node_modules/esrecurse": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz", - "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", - "dev": true, - "license": "BSD-2-Clause", - "dependencies": { - "estraverse": "^5.2.0" - }, - "engines": { - "node": ">=4.0" - } - }, - "node_modules/estraverse": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", - "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", - "dev": true, - "license": "BSD-2-Clause", - "engines": { - "node": ">=4.0" - } - }, - "node_modules/esutils": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", - "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", - "dev": true, - "license": "BSD-2-Clause", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/execa": { - "version": "9.5.1", - "resolved": "https://registry.npmjs.org/execa/-/execa-9.5.1.tgz", - "integrity": "sha512-QY5PPtSonnGwhhHDNI7+3RvY285c7iuJFFB+lU+oEzMY/gEGJ808owqJsrr8Otd1E/x07po1LkUBmdAc5duPAg==", - "dev": true, - "license": "MIT", - "dependencies": { - "@sindresorhus/merge-streams": "^4.0.0", - "cross-spawn": "^7.0.3", - "figures": "^6.1.0", - "get-stream": "^9.0.0", - "human-signals": "^8.0.0", - "is-plain-obj": "^4.1.0", - "is-stream": "^4.0.1", - "npm-run-path": "^6.0.0", - "pretty-ms": "^9.0.0", - "signal-exit": "^4.1.0", - "strip-final-newline": "^4.0.0", - "yoctocolors": "^2.0.0" - }, - "engines": { - "node": "^18.19.0 || >=20.5.0" - }, - "funding": { - "url": "https://github.com/sindresorhus/execa?sponsor=1" - } - }, - "node_modules/extract-zip": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extract-zip/-/extract-zip-2.0.1.tgz", - "integrity": "sha512-GDhU9ntwuKyGXdZBUgTIe+vXnWj0fppUEtMDL0+idd5Sta8TGpHssn/eusA9mrPr9qNDym6SxAYZjNvCn/9RBg==", - "license": "BSD-2-Clause", - "dependencies": { - "debug": "^4.1.1", - "get-stream": "^5.1.0", - "yauzl": "^2.10.0" - }, - "bin": { - "extract-zip": "cli.js" - }, - "engines": { - "node": ">= 10.17.0" - }, - "optionalDependencies": { - "@types/yauzl": "^2.9.1" - } - }, - "node_modules/extract-zip/node_modules/get-stream": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz", - "integrity": "sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==", - "license": "MIT", - "dependencies": { - "pump": "^3.0.0" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/fast-deep-equal": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", - "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", - "dev": true, - "license": "MIT" - }, - "node_modules/fast-glob": { - "version": "3.3.2", - "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.2.tgz", - "integrity": "sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow==", - "license": "MIT", - "dependencies": { - "@nodelib/fs.stat": "^2.0.2", - "@nodelib/fs.walk": "^1.2.3", - "glob-parent": "^5.1.2", - "merge2": "^1.3.0", - "micromatch": "^4.0.4" - }, - "engines": { - "node": ">=8.6.0" - } - }, - "node_modules/fast-glob/node_modules/glob-parent": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", - "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", - "license": "ISC", - "dependencies": { - "is-glob": "^4.0.1" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/fast-json-stable-stringify": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", - "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==", - "dev": true, - "license": "MIT" - }, - "node_modules/fast-levenshtein": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", - "integrity": "sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==", - "dev": true, - "license": "MIT" - }, - "node_modules/fastq": { - "version": "1.17.1", - "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.17.1.tgz", - "integrity": "sha512-sRVD3lWVIXWg6By68ZN7vho9a1pQcN/WBFaAAsDDFzlJjvoGx0P8z7V1t72grFJfJhu3YPZBuu25f7Kaw2jN1w==", - "license": "ISC", - "dependencies": { - "reusify": "^1.0.4" - } - }, - "node_modules/fd-slicer": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/fd-slicer/-/fd-slicer-1.1.0.tgz", - "integrity": "sha512-cE1qsB/VwyQozZ+q1dGxR8LBYNZeofhEdUNGSMbQD3Gw2lAzX9Zb3uIU6Ebc/Fmyjo9AWWfnn0AUCHqtevs/8g==", - "license": "MIT", - "dependencies": { - "pend": "~1.2.0" - } - }, - "node_modules/fetch-blob": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/fetch-blob/-/fetch-blob-3.2.0.tgz", - "integrity": "sha512-7yAQpD2UMJzLi1Dqv7qFYnPbaPx7ZfFK6PiIxQ4PfkGPyNyl2Ugx+a/umUonmKqjhM4DnfbMvdX6otXq83soQQ==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/jimmywarting" - }, - { - "type": "paypal", - "url": "https://paypal.me/jimmywarting" - } - ], - "license": "MIT", - "dependencies": { - "node-domexception": "^1.0.0", - "web-streams-polyfill": "^3.0.3" - }, - "engines": { - "node": "^12.20 || >= 14.13" - } - }, - "node_modules/figures": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/figures/-/figures-6.1.0.tgz", - "integrity": "sha512-d+l3qxjSesT4V7v2fh+QnmFnUWv9lSpjarhShNTgBOfA0ttejbQUAlHLitbjkoRiDulW0OPoQPYIGhIC8ohejg==", - "dev": true, - "license": "MIT", - "dependencies": { - "is-unicode-supported": "^2.0.0" - }, - "engines": { - "node": ">=18" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/file-entry-cache": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-8.0.0.tgz", - "integrity": "sha512-XXTUwCvisa5oacNGRP9SfNtYBNAMi+RPwBFmblZEF7N7swHYQS6/Zfk7SRwx4D5j3CH211YNRco1DEMNVfZCnQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "flat-cache": "^4.0.0" - }, - "engines": { - "node": ">=16.0.0" - } - }, - "node_modules/fill-range": { - "version": "7.1.1", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.1.1.tgz", - "integrity": "sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==", - "license": "MIT", - "dependencies": { - "to-regex-range": "^5.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/find-up": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", - "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", - "dev": true, - "license": "MIT", - "dependencies": { - "locate-path": "^6.0.0", - "path-exists": "^4.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/flat-cache": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-4.0.1.tgz", - "integrity": "sha512-f7ccFPK3SXFHpx15UIGyRJ/FJQctuKZ0zVuN3frBo4HnK3cay9VEW0R6yPYFHC0AgqhukPzKjq22t5DmAyqGyw==", - "dev": true, - "license": "MIT", - "dependencies": { - "flatted": "^3.2.9", - "keyv": "^4.5.4" - }, - "engines": { - "node": ">=16" - } - }, - "node_modules/flatted": { - "version": "3.3.2", - "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.3.2.tgz", - "integrity": "sha512-AiwGJM8YcNOaobumgtng+6NHuOqC3A7MixFeDafM3X9cIUM+xUXoS5Vfgf+OihAYe20fxqNM9yPBXJzRtZ/4eA==", - "dev": true, - "license": "ISC" - }, - "node_modules/for-each": { - "version": "0.3.3", - "resolved": "https://registry.npmjs.org/for-each/-/for-each-0.3.3.tgz", - "integrity": "sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw==", - "dev": true, - "license": "MIT", - "dependencies": { - "is-callable": "^1.1.3" - } - }, - "node_modules/formdata-polyfill": { - "version": "4.0.10", - "resolved": "https://registry.npmjs.org/formdata-polyfill/-/formdata-polyfill-4.0.10.tgz", - "integrity": "sha512-buewHzMvYL29jdeQTVILecSaZKnt/RJWjoZCF5OW60Z67/GmSLBkOFM7qh1PI3zFNtJbaZL5eQu1vLfazOwj4g==", - "license": "MIT", - "dependencies": { - "fetch-blob": "^3.1.2" - }, - "engines": { - "node": ">=12.20.0" - } - }, - "node_modules/fsevents": { - "version": "2.3.3", - "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", - "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", - "hasInstallScript": true, - "license": "MIT", - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": "^8.16.0 || ^10.6.0 || >=11.0.0" - } - }, - "node_modules/function-bind": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz", - "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==", - "dev": true, - "license": "MIT", - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/function.prototype.name": { - "version": "1.1.6", - "resolved": "https://registry.npmjs.org/function.prototype.name/-/function.prototype.name-1.1.6.tgz", - "integrity": "sha512-Z5kx79swU5P27WEayXM1tBi5Ze/lbIyiNgU3qyXUOf9b2rgXYyF9Dy9Cx+IQv/Lc8WCG6L82zwUPpSS9hGehIg==", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.2.0", - "es-abstract": "^1.22.1", - "functions-have-names": "^1.2.3" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/functions-have-names": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/functions-have-names/-/functions-have-names-1.2.3.tgz", - "integrity": "sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==", - "dev": true, - "license": "MIT", - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/get-caller-file": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", - "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", - "dev": true, - "license": "ISC", - "engines": { - "node": "6.* || 8.* || >= 10.*" - } - }, - "node_modules/get-intrinsic": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.4.tgz", - "integrity": "sha512-5uYhsJH8VJBTv7oslg4BznJYhDoRI6waYCxMmCdnTrcCrHA/fCFKoTFz2JKKE0HdDFUF7/oQuhzumXJK7paBRQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "es-errors": "^1.3.0", - "function-bind": "^1.1.2", - "has-proto": "^1.0.1", - "has-symbols": "^1.0.3", - "hasown": "^2.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/get-stdin": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/get-stdin/-/get-stdin-8.0.0.tgz", - "integrity": "sha512-sY22aA6xchAzprjyqmSEQv4UbAAzRN0L2dQB0NlN5acTTK9Don6nhoc3eAbUnpZiCANAMfd/+40kVdKfFygohg==", - "dev": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/get-stream": { - "version": "9.0.1", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-9.0.1.tgz", - "integrity": "sha512-kVCxPF3vQM/N0B1PmoqVUqgHP+EeVjmZSQn+1oCRPxd2P21P2F19lIgbR3HBosbB1PUhOAoctJnfEn2GbN2eZA==", - "dev": true, - "license": "MIT", - "dependencies": { - "@sec-ant/readable-stream": "^0.4.1", - "is-stream": "^4.0.1" - }, - "engines": { - "node": ">=18" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/get-symbol-description": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/get-symbol-description/-/get-symbol-description-1.0.2.tgz", - "integrity": "sha512-g0QYk1dZBxGwk+Ngc+ltRH2IBp2f7zBkBMBJZCDerh6EhlhSR6+9irMCuT/09zD6qkarHUSn529sK/yL4S27mg==", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.5", - "es-errors": "^1.3.0", - "get-intrinsic": "^1.2.4" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/get-tsconfig": { - "version": "4.8.1", - "resolved": "https://registry.npmjs.org/get-tsconfig/-/get-tsconfig-4.8.1.tgz", - "integrity": "sha512-k9PN+cFBmaLWtVz29SkUoqU5O0slLuHJXt/2P+tMVFT+phsSGXGkp9t3rQIqdz0e+06EHNGs3oM6ZX1s2zHxRg==", - "dev": true, - "license": "MIT", - "dependencies": { - "resolve-pkg-maps": "^1.0.0" - }, - "funding": { - "url": "https://github.com/privatenumber/get-tsconfig?sponsor=1" - } - }, - "node_modules/glob-parent": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz", - "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==", - "dev": true, - "license": "ISC", - "dependencies": { - "is-glob": "^4.0.3" - }, - "engines": { - "node": ">=10.13.0" - } - }, - "node_modules/globals": { - "version": "15.12.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-15.12.0.tgz", - "integrity": "sha512-1+gLErljJFhbOVyaetcwJiJ4+eLe45S2E7P5UiZ9xGfeq3ATQf5DOv9G7MH3gGbKQLkzmNh2DxfZwLdw+j6oTQ==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=18" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/globalthis": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/globalthis/-/globalthis-1.0.4.tgz", - "integrity": "sha512-DpLKbNU4WylpxJykQujfCcwYWiV/Jhm50Goo0wrVILAv5jOr9d+H+UR3PhSCD2rCCEIg0uc+G+muBTwD54JhDQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "define-properties": "^1.2.1", - "gopd": "^1.0.1" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/gopd": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.0.1.tgz", - "integrity": "sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==", - "dev": true, - "license": "MIT", - "dependencies": { - "get-intrinsic": "^1.1.3" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/graceful-fs": { - "version": "4.2.11", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz", - "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==", - "license": "ISC" - }, - "node_modules/graphemer": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/graphemer/-/graphemer-1.4.0.tgz", - "integrity": "sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==", - "dev": true, - "license": "MIT" - }, - "node_modules/has-bigints": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/has-bigints/-/has-bigints-1.0.2.tgz", - "integrity": "sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ==", - "dev": true, - "license": "MIT", - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/has-property-descriptors": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.2.tgz", - "integrity": "sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg==", - "dev": true, - "license": "MIT", - "dependencies": { - "es-define-property": "^1.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/has-proto": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/has-proto/-/has-proto-1.0.3.tgz", - "integrity": "sha512-SJ1amZAJUiZS+PhsVLf5tGydlaVB8EdFpaSO4gmiUKUOxk8qzn5AIy4ZeJUmh22znIdk/uMAUT2pl3FxzVUH+Q==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/has-symbols": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz", - "integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/has-tostringtag": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.2.tgz", - "integrity": "sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw==", - "dev": true, - "license": "MIT", - "dependencies": { - "has-symbols": "^1.0.3" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/hasown": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.2.tgz", - "integrity": "sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "function-bind": "^1.1.2" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/human-signals": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-8.0.0.tgz", - "integrity": "sha512-/1/GPCpDUCCYwlERiYjxoczfP0zfvZMU/OWgQPMya9AbAE24vseigFdhAMObpc8Q4lc/kjutPfUddDYyAmejnA==", - "dev": true, - "license": "Apache-2.0", - "engines": { - "node": ">=18.18.0" - } - }, - "node_modules/husky": { - "version": "9.1.7", - "resolved": "https://registry.npmjs.org/husky/-/husky-9.1.7.tgz", - "integrity": "sha512-5gs5ytaNjBrh5Ow3zrvdUUY+0VxIuWVL4i9irt6friV+BqdCfmV11CQTWMiBYWHbXhco+J1kHfTOUkePhCDvMA==", - "dev": true, - "license": "MIT", - "bin": { - "husky": "bin.js" - }, - "engines": { - "node": ">=18" - }, - "funding": { - "url": "https://github.com/sponsors/typicode" - } - }, - "node_modules/ignore": { - "version": "5.3.2", - "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.3.2.tgz", - "integrity": "sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 4" - } - }, - "node_modules/import-fresh": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz", - "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==", - "dev": true, - "license": "MIT", - "dependencies": { - "parent-module": "^1.0.0", - "resolve-from": "^4.0.0" - }, - "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/imurmurhash": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", - "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.8.19" - } - }, - "node_modules/internal-slot": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.0.7.tgz", - "integrity": "sha512-NGnrKwXzSms2qUUih/ILZ5JBqNTSa1+ZmP6flaIp6KmSElgE9qdndzS3cqjrDovwFdmwsGsLdeFgB6suw+1e9g==", - "dev": true, - "license": "MIT", - "dependencies": { - "es-errors": "^1.3.0", - "hasown": "^2.0.0", - "side-channel": "^1.0.4" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/is-array-buffer": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/is-array-buffer/-/is-array-buffer-3.0.4.tgz", - "integrity": "sha512-wcjaerHw0ydZwfhiKbXJWLDY8A7yV7KhjQOpb83hGgGfId/aQa4TOvwyzn2PuswW2gPCYEL/nEAiSVpdOj1lXw==", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.2", - "get-intrinsic": "^1.2.1" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-async-function": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-async-function/-/is-async-function-2.0.0.tgz", - "integrity": "sha512-Y1JXKrfykRJGdlDwdKlLpLyMIiWqWvuSd17TvZk68PLAOGOoF4Xyav1z0Xhoi+gCYjZVeC5SI+hYFOfvXmGRCA==", - "dev": true, - "license": "MIT", - "dependencies": { - "has-tostringtag": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-bigint": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/is-bigint/-/is-bigint-1.0.4.tgz", - "integrity": "sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg==", - "dev": true, - "license": "MIT", - "dependencies": { - "has-bigints": "^1.0.1" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-binary-path": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", - "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", - "license": "MIT", - "dependencies": { - "binary-extensions": "^2.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/is-boolean-object": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/is-boolean-object/-/is-boolean-object-1.1.2.tgz", - "integrity": "sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA==", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.2", - "has-tostringtag": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-bun-module": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/is-bun-module/-/is-bun-module-1.3.0.tgz", - "integrity": "sha512-DgXeu5UWI0IsMQundYb5UAOzm6G2eVnarJ0byP6Tm55iZNKceD59LNPA2L4VvsScTtHcw0yEkVwSf7PC+QoLSA==", - "dev": true, - "license": "MIT", - "dependencies": { - "semver": "^7.6.3" - } - }, - "node_modules/is-callable": { - "version": "1.2.7", - "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.7.tgz", - "integrity": "sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-core-module": { - "version": "2.15.1", - "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.15.1.tgz", - "integrity": "sha512-z0vtXSwucUJtANQWldhbtbt7BnL0vxiFjIdDLAatwhDYty2bad6s+rijD6Ri4YuYJubLzIJLUidCh09e1djEVQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "hasown": "^2.0.2" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-data-view": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-data-view/-/is-data-view-1.0.1.tgz", - "integrity": "sha512-AHkaJrsUVW6wq6JS8y3JnM/GJF/9cf+k20+iDzlSaJrinEo5+7vRiteOSwBhHRiAyQATN1AmY4hwzxJKPmYf+w==", - "dev": true, - "license": "MIT", - "dependencies": { - "is-typed-array": "^1.1.13" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-date-object": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.5.tgz", - "integrity": "sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "has-tostringtag": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-extglob": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", - "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-finalizationregistry": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/is-finalizationregistry/-/is-finalizationregistry-1.1.0.tgz", - "integrity": "sha512-qfMdqbAQEwBw78ZyReKnlA8ezmPdb9BemzIIip/JkjaZUhitfXDkkr+3QTboW0JrSXT1QWyYShpvnNHGZ4c4yA==", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.7" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-fullwidth-code-point": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", - "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/is-generator-function": { - "version": "1.0.10", - "resolved": "https://registry.npmjs.org/is-generator-function/-/is-generator-function-1.0.10.tgz", - "integrity": "sha512-jsEjy9l3yiXEQ+PsXdmBwEPcOxaXWLspKdplFUVI9vq1iZgIekeC0L167qeu86czQaxed3q/Uzuw0swL0irL8A==", - "dev": true, - "license": "MIT", - "dependencies": { - "has-tostringtag": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-glob": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", - "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", - "license": "MIT", - "dependencies": { - "is-extglob": "^2.1.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-map": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/is-map/-/is-map-2.0.3.tgz", - "integrity": "sha512-1Qed0/Hr2m+YqxnM09CjA2d/i6YZNfF6R2oRAOj36eUdS6qIV/huPJNSEpKbupewFs+ZsJlxsjjPbc0/afW6Lw==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-negative-zero": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.3.tgz", - "integrity": "sha512-5KoIu2Ngpyek75jXodFvnafB6DJgr3u8uuK0LEZJjrU19DrMD3EVERaR8sjz8CCGgpZvxPl9SuE1GMVPFHx1mw==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-number": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", - "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", - "license": "MIT", - "engines": { - "node": ">=0.12.0" - } - }, - "node_modules/is-number-object": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/is-number-object/-/is-number-object-1.0.7.tgz", - "integrity": "sha512-k1U0IRzLMo7ZlYIfzRu23Oh6MiIFasgpb9X76eqfFZAqwH44UI4KTBvBYIZ1dSL9ZzChTB9ShHfLkR4pdW5krQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "has-tostringtag": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-plain-obj": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-4.1.0.tgz", - "integrity": "sha512-+Pgi+vMuUNkJyExiMBt5IlFoMyKnr5zhJ4Uspz58WOhBF5QoIZkFyNHIbBAtHwzVAgk5RtndVNsDRN61/mmDqg==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/is-regex": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.4.tgz", - "integrity": "sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.2", - "has-tostringtag": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-set": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/is-set/-/is-set-2.0.3.tgz", - "integrity": "sha512-iPAjerrse27/ygGLxw+EBR9agv9Y6uLeYVJMu+QNCoouJ1/1ri0mGrcWpfCqFZuzzx3WjtwxG098X+n4OuRkPg==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-shared-array-buffer": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/is-shared-array-buffer/-/is-shared-array-buffer-1.0.3.tgz", - "integrity": "sha512-nA2hv5XIhLR3uVzDDfCIknerhx8XUKnstuOERPNNIinXG7v9u+ohXF67vxm4TPTEPU6lm61ZkwP3c9PCB97rhg==", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.7" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-stream": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-4.0.1.tgz", - "integrity": "sha512-Dnz92NInDqYckGEUJv689RbRiTSEHCQ7wOVeALbkOz999YpqT46yMRIGtSNl2iCL1waAZSx40+h59NV/EwzV/A==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=18" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/is-string": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.0.7.tgz", - "integrity": "sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg==", - "dev": true, - "license": "MIT", - "dependencies": { - "has-tostringtag": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-symbol": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.4.tgz", - "integrity": "sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg==", - "dev": true, - "license": "MIT", - "dependencies": { - "has-symbols": "^1.0.2" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-typed-array": { - "version": "1.1.13", - "resolved": "https://registry.npmjs.org/is-typed-array/-/is-typed-array-1.1.13.tgz", - "integrity": "sha512-uZ25/bUAlUY5fR4OKT4rZQEBrzQWYV9ZJYGGsUmEJ6thodVJ1HX64ePQ6Z0qPWP+m+Uq6e9UugrE38jeYsDSMw==", - "dev": true, - "license": "MIT", - "dependencies": { - "which-typed-array": "^1.1.14" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-unicode-supported": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-unicode-supported/-/is-unicode-supported-2.1.0.tgz", - "integrity": "sha512-mE00Gnza5EEB3Ds0HfMyllZzbBrmLOX3vfWoj9A9PEnTfratQ/BcaJOuMhnkhjXvb2+FkY3VuHqtAGpTPmglFQ==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=18" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/is-weakmap": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/is-weakmap/-/is-weakmap-2.0.2.tgz", - "integrity": "sha512-K5pXYOm9wqY1RgjpL3YTkF39tni1XajUIkawTLUo9EZEVUFga5gSQJF8nNS7ZwJQ02y+1YCNYcMh+HIf1ZqE+w==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-weakref": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-weakref/-/is-weakref-1.0.2.tgz", - "integrity": "sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.2" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-weakset": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/is-weakset/-/is-weakset-2.0.3.tgz", - "integrity": "sha512-LvIm3/KWzS9oRFHugab7d+M/GcBXuXX5xZkzPmN+NxihdQlZUQ4dWuSV1xR/sq6upL1TJEDrfBgRepHFdBtSNQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.7", - "get-intrinsic": "^1.2.4" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/isarray": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.5.tgz", - "integrity": "sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==", - "dev": true, - "license": "MIT" - }, - "node_modules/isexe": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", - "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", - "dev": true, - "license": "ISC" - }, - "node_modules/iterator.prototype": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/iterator.prototype/-/iterator.prototype-1.1.3.tgz", - "integrity": "sha512-FW5iMbeQ6rBGm/oKgzq2aW4KvAGpxPzYES8N4g4xNXUKpL1mclMvOe+76AcLDTvD+Ze+sOpVhgdAQEKF4L9iGQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "define-properties": "^1.2.1", - "get-intrinsic": "^1.2.1", - "has-symbols": "^1.0.3", - "reflect.getprototypeof": "^1.0.4", - "set-function-name": "^2.0.1" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/js-tokens": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", - "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", - "dev": true, - "license": "MIT" - }, - "node_modules/js-yaml": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", - "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", - "dev": true, - "license": "MIT", - "dependencies": { - "argparse": "^2.0.1" - }, - "bin": { - "js-yaml": "bin/js-yaml.js" - } - }, - "node_modules/json-buffer": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.1.tgz", - "integrity": "sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==", - "dev": true, - "license": "MIT" - }, - "node_modules/json-schema-traverse": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", - "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", - "dev": true, - "license": "MIT" - }, - "node_modules/json-stable-stringify-without-jsonify": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz", - "integrity": "sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==", - "dev": true, - "license": "MIT" - }, - "node_modules/json5": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.2.tgz", - "integrity": "sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA==", - "dev": true, - "license": "MIT", - "dependencies": { - "minimist": "^1.2.0" - }, - "bin": { - "json5": "lib/cli.js" - } - }, - "node_modules/jsonc-parser": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/jsonc-parser/-/jsonc-parser-3.3.1.tgz", - "integrity": "sha512-HUgH65KyejrUFPvHFPbqOY0rsFip3Bo5wb4ngvdi1EpCYWUQDC5V+Y7mZws+DLkr4M//zQJoanu1SP+87Dv1oQ==", - "license": "MIT" - }, - "node_modules/jsox": { - "version": "1.2.119", - "resolved": "https://registry.npmjs.org/jsox/-/jsox-1.2.119.tgz", - "integrity": "sha512-f37obwxWKKuylcaOzNlUlzfDvURSCpqTXs8yEivhvsp86D/DTIySxP4v5Qdlg24qCuzDSZ0mJr3krc/f7TZ/5A==", - "dev": true, - "bin": { - "jsox": "lib/cli.js" - } - }, - "node_modules/jsx-ast-utils": { - "version": "3.3.5", - "resolved": "https://registry.npmjs.org/jsx-ast-utils/-/jsx-ast-utils-3.3.5.tgz", - "integrity": "sha512-ZZow9HBI5O6EPgSJLUb8n2NKgmVWTwCvHGwFuJlMjvLFqlGG6pjirPhtdsseaLZjSibD8eegzmYpUZwoIlj2cQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "array-includes": "^3.1.6", - "array.prototype.flat": "^1.3.1", - "object.assign": "^4.1.4", - "object.values": "^1.1.6" - }, - "engines": { - "node": ">=4.0" - } - }, - "node_modules/just-install": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/just-install/-/just-install-2.0.2.tgz", - "integrity": "sha512-zH6aon3V2P8ZbD+njaMB/orHsOyFMgONSpxKtbovNu7Bhb1rD9qhnMkT2Nj91++b9GgqHNbozhUdIMxecmWJaw==", - "hasInstallScript": true, - "license": "MIT", - "dependencies": { - "extract-zip": "^2.0.1", - "node-fetch": "^3.3.2" - }, - "bin": { - "just": "bin/just.js", - "just-install": "install.js" - }, - "engines": { - "node": ">=18.0" - } - }, - "node_modules/keyv": { - "version": "4.5.4", - "resolved": "https://registry.npmjs.org/keyv/-/keyv-4.5.4.tgz", - "integrity": "sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==", - "dev": true, - "license": "MIT", - "dependencies": { - "json-buffer": "3.0.1" - } - }, - "node_modules/language-subtag-registry": { - "version": "0.3.23", - "resolved": "https://registry.npmjs.org/language-subtag-registry/-/language-subtag-registry-0.3.23.tgz", - "integrity": "sha512-0K65Lea881pHotoGEa5gDlMxt3pctLi2RplBb7Ezh4rRdLEOtgi7n4EwK9lamnUCkKBqaeKRVebTq6BAxSkpXQ==", - "dev": true, - "license": "CC0-1.0" - }, - "node_modules/language-tags": { - "version": "1.0.9", - "resolved": "https://registry.npmjs.org/language-tags/-/language-tags-1.0.9.tgz", - "integrity": "sha512-MbjN408fEndfiQXbFQ1vnd+1NoLDsnQW41410oQBXiyXDMYH5z505juWa4KUE1LqxRC7DgOgZDbKLxHIwm27hA==", - "dev": true, - "license": "MIT", - "dependencies": { - "language-subtag-registry": "^0.3.20" - }, - "engines": { - "node": ">=0.10" - } - }, - "node_modules/levn": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz", - "integrity": "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "prelude-ls": "^1.2.1", - "type-check": "~0.4.0" - }, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/linguist-languages": { - "version": "7.27.0", - "resolved": "https://registry.npmjs.org/linguist-languages/-/linguist-languages-7.27.0.tgz", - "integrity": "sha512-Wzx/22c5Jsv2ag+uKy+ITanGA5hzvBZngrNGDXLTC7ZjGM6FLCYGgomauTkxNJeP9of353OM0pWqngYA180xgw==", - "dev": true, - "license": "MIT" - }, - "node_modules/locate-path": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", - "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", - "dev": true, - "license": "MIT", - "dependencies": { - "p-locate": "^5.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/lodash.merge": { - "version": "4.6.2", - "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz", - "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==", - "dev": true, - "license": "MIT" - }, - "node_modules/loose-envify": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz", - "integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==", - "dev": true, - "license": "MIT", - "dependencies": { - "js-tokens": "^3.0.0 || ^4.0.0" - }, - "bin": { - "loose-envify": "cli.js" - } - }, - "node_modules/merge2": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", - "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", - "license": "MIT", - "engines": { - "node": ">= 8" - } - }, - "node_modules/micromatch": { - "version": "4.0.8", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.8.tgz", - "integrity": "sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==", - "license": "MIT", - "dependencies": { - "braces": "^3.0.3", - "picomatch": "^2.3.1" - }, - "engines": { - "node": ">=8.6" - } - }, - "node_modules/minimatch": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", - "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", - "dev": true, - "license": "ISC", - "dependencies": { - "brace-expansion": "^1.1.7" - }, - "engines": { - "node": "*" - } - }, - "node_modules/minimist": { - "version": "1.2.8", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz", - "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==", - "dev": true, - "license": "MIT", - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/moo": { - "version": "0.5.2", - "resolved": "https://registry.npmjs.org/moo/-/moo-0.5.2.tgz", - "integrity": "sha512-iSAJLHYKnX41mKcJKjqvnAN9sf0LMDTXDEvFv+ffuRR9a1MIuXLjMNL6EsnDHSkKLTWNqQQ5uo61P4EbU4NU+Q==", - "dev": true - }, - "node_modules/ms": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", - "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", - "license": "MIT" - }, - "node_modules/mvdan-sh": { - "version": "0.10.1", - "resolved": "https://registry.npmjs.org/mvdan-sh/-/mvdan-sh-0.10.1.tgz", - "integrity": "sha512-kMbrH0EObaKmK3nVRKUIIya1dpASHIEusM13S4V1ViHFuxuNxCo+arxoa6j/dbV22YBGjl7UKJm9QQKJ2Crzhg==", - "dev": true, - "license": "BSD-3-Clause" - }, - "node_modules/natural-compare": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", - "integrity": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==", - "dev": true, - "license": "MIT" - }, - "node_modules/nearley": { - "version": "2.20.1", - "resolved": "https://registry.npmjs.org/nearley/-/nearley-2.20.1.tgz", - "integrity": "sha512-+Mc8UaAebFzgV+KpI5n7DasuuQCHA89dmwm7JXw3TV43ukfNQ9DnBH3Mdb2g/I4Fdxc26pwimBWvjIw0UAILSQ==", - "dev": true, - "dependencies": { - "commander": "^2.19.0", - "moo": "^0.5.0", - "railroad-diagrams": "^1.0.0", - "randexp": "0.4.6" - }, - "bin": { - "nearley-railroad": "bin/nearley-railroad.js", - "nearley-test": "bin/nearley-test.js", - "nearley-unparse": "bin/nearley-unparse.js", - "nearleyc": "bin/nearleyc.js" - }, - "funding": { - "type": "individual", - "url": "https://nearley.js.org/#give-to-nearley" - } - }, - "node_modules/node-domexception": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/node-domexception/-/node-domexception-1.0.0.tgz", - "integrity": "sha512-/jKZoMpw0F8GRwl4/eLROPA3cfcXtLApP0QzLmUT/HuPCZWyB7IY9ZrMeKw2O/nFIqPQB3PVM9aYm0F312AXDQ==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/jimmywarting" - }, - { - "type": "github", - "url": "https://paypal.me/jimmywarting" - } - ], - "license": "MIT", - "engines": { - "node": ">=10.5.0" - } - }, - "node_modules/node-fetch": { - "version": "3.3.2", - "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-3.3.2.tgz", - "integrity": "sha512-dRB78srN/l6gqWulah9SrxeYnxeddIG30+GOqK/9OlLVyLg3HPnr6SqOWTWOXKRwC2eGYCkZ59NNuSgvSrpgOA==", - "license": "MIT", - "dependencies": { - "data-uri-to-buffer": "^4.0.0", - "fetch-blob": "^3.1.4", - "formdata-polyfill": "^4.0.10" - }, - "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/node-fetch" - } - }, - "node_modules/node-sql-parser": { - "version": "4.18.0", - "resolved": "https://registry.npmjs.org/node-sql-parser/-/node-sql-parser-4.18.0.tgz", - "integrity": "sha512-2YEOR5qlI1zUFbGMLKNfsrR5JUvFg9LxIRVE+xJe962pfVLH0rnItqLzv96XVs1Y1UIR8FxsXAuvX/lYAWZ2BQ==", - "dev": true, - "dependencies": { - "big-integer": "^1.6.48" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/normalize-path": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", - "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/npm-run-path": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-6.0.0.tgz", - "integrity": "sha512-9qny7Z9DsQU8Ou39ERsPU4OZQlSTP47ShQzuKZ6PRXpYLtIFgl/DEBYEXKlvcEa+9tHVcK8CF81Y2V72qaZhWA==", - "dev": true, - "license": "MIT", - "dependencies": { - "path-key": "^4.0.0", - "unicorn-magic": "^0.3.0" - }, - "engines": { - "node": ">=18" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/npm-run-path/node_modules/path-key": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/path-key/-/path-key-4.0.0.tgz", - "integrity": "sha512-haREypq7xkM7ErfgIyA0z+Bj4AGKlMSdlQE2jvJo6huWD1EdkKYV+G/T4nq0YEF2vgTT8kqMFKo1uHn950r4SQ==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/object-assign": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", - "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/object-inspect": { - "version": "1.13.3", - "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.13.3.tgz", - "integrity": "sha512-kDCGIbxkDSXE3euJZZXzc6to7fCrKHNI/hSRQnRuQ+BWjFNzZwiFF8fj/6o2t2G9/jTj8PSIYTfCLelLZEeRpA==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/object-keys": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", - "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/object.assign": { - "version": "4.1.5", - "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.5.tgz", - "integrity": "sha512-byy+U7gp+FVwmyzKPYhW2h5l3crpmGsxl7X2s8y43IgxvG4g3QZ6CffDtsNQy1WsmZpQbO+ybo0AlW7TY6DcBQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.5", - "define-properties": "^1.2.1", - "has-symbols": "^1.0.3", - "object-keys": "^1.1.1" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/object.entries": { - "version": "1.1.8", - "resolved": "https://registry.npmjs.org/object.entries/-/object.entries-1.1.8.tgz", - "integrity": "sha512-cmopxi8VwRIAw/fkijJohSfpef5PdN0pMQJN6VC/ZKvn0LIknWD8KtgY6KlQdEc4tIjcQ3HxSMmnvtzIscdaYQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.7", - "define-properties": "^1.2.1", - "es-object-atoms": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/object.fromentries": { - "version": "2.0.8", - "resolved": "https://registry.npmjs.org/object.fromentries/-/object.fromentries-2.0.8.tgz", - "integrity": "sha512-k6E21FzySsSK5a21KRADBd/NGneRegFO5pLHfdQLpRDETUNJueLXs3WCzyQ3tFRDYgbq3KHGXfTbi2bs8WQ6rQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.7", - "define-properties": "^1.2.1", - "es-abstract": "^1.23.2", - "es-object-atoms": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/object.groupby": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/object.groupby/-/object.groupby-1.0.3.tgz", - "integrity": "sha512-+Lhy3TQTuzXI5hevh8sBGqbmurHbbIjAi0Z4S63nthVLmLxfbj4T54a4CfZrXIrt9iP4mVAPYMo/v99taj3wjQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.7", - "define-properties": "^1.2.1", - "es-abstract": "^1.23.2" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/object.values": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/object.values/-/object.values-1.2.0.tgz", - "integrity": "sha512-yBYjY9QX2hnRmZHAjG/f13MzmBzxzYgQhFrke06TTyKY5zSTEqkOeukBzIdVA3j3ulu8Qa3MbVFShV7T2RmGtQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.7", - "define-properties": "^1.2.1", - "es-object-atoms": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/once": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", - "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", - "license": "ISC", - "dependencies": { - "wrappy": "1" - } - }, - "node_modules/optionator": { - "version": "0.9.4", - "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.4.tgz", - "integrity": "sha512-6IpQ7mKUxRcZNLIObR0hz7lxsapSSIYNZJwXPGeF0mTVqGKFIXj1DQcMoT22S3ROcLyY/rz0PWaWZ9ayWmad9g==", - "dev": true, - "license": "MIT", - "dependencies": { - "deep-is": "^0.1.3", - "fast-levenshtein": "^2.0.6", - "levn": "^0.4.1", - "prelude-ls": "^1.2.1", - "type-check": "^0.4.0", - "word-wrap": "^1.2.5" - }, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/p-limit": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", - "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "yocto-queue": "^0.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/p-locate": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz", - "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==", - "dev": true, - "license": "MIT", - "dependencies": { - "p-limit": "^3.0.2" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/parent-module": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", - "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==", - "dev": true, - "license": "MIT", - "dependencies": { - "callsites": "^3.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/parse-ms": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/parse-ms/-/parse-ms-4.0.0.tgz", - "integrity": "sha512-TXfryirbmq34y8QBwgqCVLi+8oA3oWx2eAnSn62ITyEhEYaWRlVZ2DvMM9eZbMs/RfxPu/PK/aBLyGj4IrqMHw==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=18" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/path-exists": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", - "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/path-key": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", - "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/path-parse": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", - "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", - "dev": true, - "license": "MIT" - }, - "node_modules/pend": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/pend/-/pend-1.2.0.tgz", - "integrity": "sha512-F3asv42UuXchdzt+xXqfW1OGlVBe+mxa2mqI0pg5yAHZPvFmY3Y6drSf/GQ1A86WgWEN9Kzh/WrgKa6iGcHXLg==", - "license": "MIT" - }, - "node_modules/php-parser": { - "version": "3.1.5", - "resolved": "https://registry.npmjs.org/php-parser/-/php-parser-3.1.5.tgz", - "integrity": "sha512-jEY2DcbgCm5aclzBdfW86GM6VEIWcSlhTBSHN1qhJguVePlYe28GhwS0yoeLYXpM2K8y6wzLwrbq814n2PHSoQ==", - "dev": true - }, - "node_modules/picomatch": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", - "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", - "license": "MIT", - "engines": { - "node": ">=8.6" - }, - "funding": { - "url": "https://github.com/sponsors/jonschlinkert" - } - }, - "node_modules/possible-typed-array-names": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/possible-typed-array-names/-/possible-typed-array-names-1.0.0.tgz", - "integrity": "sha512-d7Uw+eZoloe0EHDIYoe+bQ5WXnGMOpmiZFTuMWCwpjzzkL2nTjcKiAk4hh8TjnGye2TwWOk3UXucZ+3rbmBa8Q==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/prelude-ls": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz", - "integrity": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/prettier": { - "version": "3.4.1", - "resolved": "https://registry.npmjs.org/prettier/-/prettier-3.4.1.tgz", - "integrity": "sha512-G+YdqtITVZmOJje6QkXQWzl3fSfMxFwm1tjTyo9exhkmWSqC4Yhd1+lug++IlR2mvRVAxEDDWYkQdeSztajqgg==", - "dev": true, - "license": "MIT", - "bin": { - "prettier": "bin/prettier.cjs" - }, - "engines": { - "node": ">=14" - }, - "funding": { - "url": "https://github.com/prettier/prettier?sponsor=1" - } - }, - "node_modules/prettier-plugin-sh": { - "version": "0.14.0", - "resolved": "https://registry.npmjs.org/prettier-plugin-sh/-/prettier-plugin-sh-0.14.0.tgz", - "integrity": "sha512-hfXulj5+zEl/ulrO5kMuuTPKmXvOg0bnLHY1hKFNN/N+/903iZbNp8NyZBTsgI8dtkSgFfAEIQq0IQTyP1ZVFQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "mvdan-sh": "^0.10.1", - "sh-syntax": "^0.4.1" - }, - "engines": { - "node": ">=16.0.0" - }, - "funding": { - "url": "https://opencollective.com/unts" - }, - "peerDependencies": { - "prettier": "^3.0.3" - } - }, - "node_modules/prettier-plugin-sql": { - "version": "0.18.1", - "resolved": "https://registry.npmjs.org/prettier-plugin-sql/-/prettier-plugin-sql-0.18.1.tgz", - "integrity": "sha512-2+Nob2sg7hzLAKJoE6sfgtkhBZCqOzrWHZPvE4Kee/e80oOyI4qwy9vypeltqNBJwTtq3uiKPrCxlT03bBpOaw==", - "dev": true, - "dependencies": { - "jsox": "^1.2.119", - "node-sql-parser": "^4.12.0", - "sql-formatter": "^15.0.2", - "tslib": "^2.6.2" - }, - "engines": { - "node": "^14.18.0 || >=16.0.0" - }, - "funding": { - "url": "https://opencollective.com/unts" - }, - "peerDependencies": { - "prettier": "^3.0.3" - } - }, - "node_modules/prettier-plugin-tailwindcss": { - "version": "0.6.9", - "resolved": "https://registry.npmjs.org/prettier-plugin-tailwindcss/-/prettier-plugin-tailwindcss-0.6.9.tgz", - "integrity": "sha512-r0i3uhaZAXYP0At5xGfJH876W3HHGHDp+LCRUJrs57PBeQ6mYHMwr25KH8NPX44F2yGTvdnH7OqCshlQx183Eg==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=14.21.3" - }, - "peerDependencies": { - "@ianvs/prettier-plugin-sort-imports": "*", - "@prettier/plugin-pug": "*", - "@shopify/prettier-plugin-liquid": "*", - "@trivago/prettier-plugin-sort-imports": "*", - "@zackad/prettier-plugin-twig-melody": "*", - "prettier": "^3.0", - "prettier-plugin-astro": "*", - "prettier-plugin-css-order": "*", - "prettier-plugin-import-sort": "*", - "prettier-plugin-jsdoc": "*", - "prettier-plugin-marko": "*", - "prettier-plugin-multiline-arrays": "*", - "prettier-plugin-organize-attributes": "*", - "prettier-plugin-organize-imports": "*", - "prettier-plugin-sort-imports": "*", - "prettier-plugin-style-order": "*", - "prettier-plugin-svelte": "*" - }, - "peerDependenciesMeta": { - "@ianvs/prettier-plugin-sort-imports": { - "optional": true - }, - "@prettier/plugin-pug": { - "optional": true - }, - "@shopify/prettier-plugin-liquid": { - "optional": true - }, - "@trivago/prettier-plugin-sort-imports": { - "optional": true - }, - "@zackad/prettier-plugin-twig-melody": { - "optional": true - }, - "prettier-plugin-astro": { - "optional": true - }, - "prettier-plugin-css-order": { - "optional": true - }, - "prettier-plugin-import-sort": { - "optional": true - }, - "prettier-plugin-jsdoc": { - "optional": true - }, - "prettier-plugin-marko": { - "optional": true - }, - "prettier-plugin-multiline-arrays": { - "optional": true - }, - "prettier-plugin-organize-attributes": { - "optional": true - }, - "prettier-plugin-organize-imports": { - "optional": true - }, - "prettier-plugin-sort-imports": { - "optional": true - }, - "prettier-plugin-style-order": { - "optional": true - }, - "prettier-plugin-svelte": { - "optional": true - } - } - }, - "node_modules/pretty-ms": { - "version": "9.2.0", - "resolved": "https://registry.npmjs.org/pretty-ms/-/pretty-ms-9.2.0.tgz", - "integrity": "sha512-4yf0QO/sllf/1zbZWYnvWw3NxCQwLXKzIj0G849LSufP15BXKM0rbD2Z3wVnkMfjdn/CB0Dpp444gYAACdsplg==", - "dev": true, - "license": "MIT", - "dependencies": { - "parse-ms": "^4.0.0" - }, - "engines": { - "node": ">=18" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/prop-types": { - "version": "15.8.1", - "resolved": "https://registry.npmjs.org/prop-types/-/prop-types-15.8.1.tgz", - "integrity": "sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg==", - "dev": true, - "license": "MIT", - "dependencies": { - "loose-envify": "^1.4.0", - "object-assign": "^4.1.1", - "react-is": "^16.13.1" - } - }, - "node_modules/proper-lockfile": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/proper-lockfile/-/proper-lockfile-4.1.2.tgz", - "integrity": "sha512-TjNPblN4BwAWMXU8s9AEz4JmQxnD1NNL7bNOY/AKUzyamc379FWASUhc/K1pL2noVb+XmZKLL68cjzLsiOAMaA==", - "license": "MIT", - "dependencies": { - "graceful-fs": "^4.2.4", - "retry": "^0.12.0", - "signal-exit": "^3.0.2" - } - }, - "node_modules/proper-lockfile/node_modules/signal-exit": { - "version": "3.0.7", - "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", - "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==", - "license": "ISC" - }, - "node_modules/pump": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.2.tgz", - "integrity": "sha512-tUPXtzlGM8FE3P0ZL6DVs/3P58k9nk8/jZeQCurTJylQA8qFYzHFfhBJkuqyE0FifOsQ0uKWekiZ5g8wtr28cw==", - "license": "MIT", - "dependencies": { - "end-of-stream": "^1.1.0", - "once": "^1.3.1" - } - }, - "node_modules/punycode": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.1.tgz", - "integrity": "sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=6" - } - }, - "node_modules/queue-microtask": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", - "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], - "license": "MIT" - }, - "node_modules/railroad-diagrams": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/railroad-diagrams/-/railroad-diagrams-1.0.0.tgz", - "integrity": "sha512-cz93DjNeLY0idrCNOH6PviZGRN9GJhsdm9hpn1YCS879fj4W+x5IFJhhkRZcwVgMmFF7R82UA/7Oh+R8lLZg6A==", - "dev": true - }, - "node_modules/randexp": { - "version": "0.4.6", - "resolved": "https://registry.npmjs.org/randexp/-/randexp-0.4.6.tgz", - "integrity": "sha512-80WNmd9DA0tmZrw9qQa62GPPWfuXJknrmVmLcxvq4uZBdYqb1wYoKTmnlGUchvVWe0XiLupYkBoXVOxz3C8DYQ==", - "dev": true, - "dependencies": { - "discontinuous-range": "1.0.0", - "ret": "~0.1.10" - }, - "engines": { - "node": ">=0.12" - } - }, - "node_modules/react-is": { - "version": "16.13.1", - "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz", - "integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==", - "dev": true, - "license": "MIT" - }, - "node_modules/readdirp": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", - "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", - "license": "MIT", - "dependencies": { - "picomatch": "^2.2.1" - }, - "engines": { - "node": ">=8.10.0" - } - }, - "node_modules/reflect.getprototypeof": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/reflect.getprototypeof/-/reflect.getprototypeof-1.0.7.tgz", - "integrity": "sha512-bMvFGIUKlc/eSfXNX+aZ+EL95/EgZzuwA0OBPTbZZDEJw/0AkentjMuM1oiRfwHrshqk4RzdgiTg5CcDalXN5g==", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.7", - "define-properties": "^1.2.1", - "es-abstract": "^1.23.5", - "es-errors": "^1.3.0", - "get-intrinsic": "^1.2.4", - "gopd": "^1.0.1", - "which-builtin-type": "^1.1.4" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/regexp-to-ast": { - "version": "0.5.0", - "resolved": "https://registry.npmjs.org/regexp-to-ast/-/regexp-to-ast-0.5.0.tgz", - "integrity": "sha512-tlbJqcMHnPKI9zSrystikWKwHkBqu2a/Sgw01h3zFjvYrMxEDYHzzoMZnUrbIfpTFEsoRnnviOXNCzFiSc54Qw==", - "dev": true, - "license": "MIT" - }, - "node_modules/regexp.prototype.flags": { - "version": "1.5.3", - "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.5.3.tgz", - "integrity": "sha512-vqlC04+RQoFalODCbCumG2xIOvapzVMHwsyIGM/SIE8fRhFFsXeH8/QQ+s0T0kDAhKc4k30s73/0ydkHQz6HlQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.7", - "define-properties": "^1.2.1", - "es-errors": "^1.3.0", - "set-function-name": "^2.0.2" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/require-directory": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", - "integrity": "sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/resolve": { - "version": "1.22.8", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.8.tgz", - "integrity": "sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==", - "dev": true, - "license": "MIT", - "dependencies": { - "is-core-module": "^2.13.0", - "path-parse": "^1.0.7", - "supports-preserve-symlinks-flag": "^1.0.0" - }, - "bin": { - "resolve": "bin/resolve" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/resolve-from": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", - "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=4" - } - }, - "node_modules/resolve-pkg-maps": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/resolve-pkg-maps/-/resolve-pkg-maps-1.0.0.tgz", - "integrity": "sha512-seS2Tj26TBVOC2NIc2rOe2y2ZO7efxITtLZcGSOnHHNOQ7CkiUBfw0Iw2ck6xkIhPwLhKNLS8BO+hEpngQlqzw==", - "dev": true, - "license": "MIT", - "funding": { - "url": "https://github.com/privatenumber/resolve-pkg-maps?sponsor=1" - } - }, - "node_modules/ret": { - "version": "0.1.15", - "resolved": "https://registry.npmjs.org/ret/-/ret-0.1.15.tgz", - "integrity": "sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg==", - "dev": true, - "engines": { - "node": ">=0.12" - } - }, - "node_modules/retry": { - "version": "0.12.0", - "resolved": "https://registry.npmjs.org/retry/-/retry-0.12.0.tgz", - "integrity": "sha512-9LkiTwjUh6rT555DtE9rTX+BKByPfrMzEAtnlEtdEwr3Nkffwiihqe2bWADg+OQRjt9gl6ICdmB/ZFDCGAtSow==", - "license": "MIT", - "engines": { - "node": ">= 4" - } - }, - "node_modules/reusify": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", - "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==", - "license": "MIT", - "engines": { - "iojs": ">=1.0.0", - "node": ">=0.10.0" - } - }, - "node_modules/run-parallel": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", - "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], - "license": "MIT", - "dependencies": { - "queue-microtask": "^1.2.2" - } - }, - "node_modules/rust-just": { - "version": "1.37.0", - "resolved": "https://registry.npmjs.org/rust-just/-/rust-just-1.37.0.tgz", - "integrity": "sha512-KQ9kRqxgncSM3ALWJxhEx86DiHBu7/mn07KP/A7itJ5ALmO+SfjuBi2icOzpz7tsZKT1A5UZ8Z0Iw8iB+Om9vA==", - "dev": true, - "license": "CC0-1.0", - "dependencies": { - "execa": "^9.4.1", - "yargs": "^17.7.2" - }, - "bin": { - "rust-just": "lib/index.mjs" - }, - "engines": { - "node": ">=18.19 || >=20.6 || >=21" - }, - "optionalDependencies": { - "rust-just-darwin-arm64": "1.37.0", - "rust-just-darwin-x64": "1.37.0", - "rust-just-linux-arm": "1.37.0", - "rust-just-linux-arm64": "1.37.0", - "rust-just-linux-x64": "1.37.0", - "rust-just-windows-arm64": "1.37.0", - "rust-just-windows-x64": "1.37.0" - } - }, - "node_modules/rust-just-darwin-arm64": { - "version": "1.37.0", - "resolved": "https://registry.npmjs.org/rust-just-darwin-arm64/-/rust-just-darwin-arm64-1.37.0.tgz", - "integrity": "sha512-Q/0cU7olKzoySSgQfVyMRRaiUYr2q3qoCslUhpBIIE6Tn/rDBz/rfTNIBqrFaRjPzPgRZb4LFeBz2cdTMLQ4zw==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "CC0-1.0", - "optional": true, - "os": [ - "darwin" - ] - }, - "node_modules/rust-just-darwin-x64": { - "version": "1.37.0", - "resolved": "https://registry.npmjs.org/rust-just-darwin-x64/-/rust-just-darwin-x64-1.37.0.tgz", - "integrity": "sha512-pCmWdyzwxbPZEHJ38ymgEUQ28vzEE0YPY9N7+hAGnpycsBII6aV58+knCXllfxHDRgWo26MB0XPLtKtrpsIQFg==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "CC0-1.0", - "optional": true, - "os": [ - "darwin" - ] - }, - "node_modules/rust-just-linux-arm": { - "version": "1.37.0", - "resolved": "https://registry.npmjs.org/rust-just-linux-arm/-/rust-just-linux-arm-1.37.0.tgz", - "integrity": "sha512-Y2lYZ5ysW9cytS8MsRj9VU1oTH30UvlwwaQcePgcZ3gAOTyK4O1/jzwTD/3BmYwmonPQilzgoi/Qp6XMkHMZhQ==", - "cpu": [ - "arm" - ], - "dev": true, - "license": "CC0-1.0", - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/rust-just-linux-arm64": { - "version": "1.37.0", - "resolved": "https://registry.npmjs.org/rust-just-linux-arm64/-/rust-just-linux-arm64-1.37.0.tgz", - "integrity": "sha512-JsnC/ZiVospo2/rUr1HdsSRDFBbaIzAdT8+90sAxtXfhX/Whm34ePGMUyQ77EV22bNEquioqkALI2wgo+Wfkgw==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "CC0-1.0", - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/rust-just-linux-x64": { - "version": "1.37.0", - "resolved": "https://registry.npmjs.org/rust-just-linux-x64/-/rust-just-linux-x64-1.37.0.tgz", - "integrity": "sha512-lDmG4RSSTkIQlWYLq+k4bpwSsMwIhEg1ffG6oa2vLSdZvAD6PEXhZ26x/kpRKc0r6vm1xqkOBzm988j5uWWtmA==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "CC0-1.0", - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/rust-just-windows-arm64": { - "version": "1.37.0", - "resolved": "https://registry.npmjs.org/rust-just-windows-arm64/-/rust-just-windows-arm64-1.37.0.tgz", - "integrity": "sha512-Lr8zdhBSMsuivsdAkCoo4mdK1OuHf4zyqV1QONPFKuMeRRl1EI2Svi0M6GKTkioJY0FgdAdbvWpQBI9Zt9RtvA==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "CC0-1.0", - "optional": true, - "os": [ - "win32" - ] - }, - "node_modules/rust-just-windows-x64": { - "version": "1.37.0", - "resolved": "https://registry.npmjs.org/rust-just-windows-x64/-/rust-just-windows-x64-1.37.0.tgz", - "integrity": "sha512-kT0Cr7c1UAL1MLI1L65caVwF3h9bKc3OKcveRIqC9917+Ft29ZH+hc8IsTqnKD6zmeVB8M9kAt3ijqReX5g/WA==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "CC0-1.0", - "optional": true, - "os": [ - "win32" - ] - }, - "node_modules/safe-array-concat": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/safe-array-concat/-/safe-array-concat-1.1.2.tgz", - "integrity": "sha512-vj6RsCsWBCf19jIeHEfkRMw8DPiBb+DMXklQ/1SGDHOMlHdPUkZXFQ2YdplS23zESTijAcurb1aSgJA3AgMu1Q==", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.7", - "get-intrinsic": "^1.2.4", - "has-symbols": "^1.0.3", - "isarray": "^2.0.5" - }, - "engines": { - "node": ">=0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/safe-regex-test": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/safe-regex-test/-/safe-regex-test-1.0.3.tgz", - "integrity": "sha512-CdASjNJPvRa7roO6Ra/gLYBTzYzzPyyBXxIMdGW3USQLyjWEls2RgW5UBTXaQVp+OrpeCK3bLem8smtmheoRuw==", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.6", - "es-errors": "^1.3.0", - "is-regex": "^1.1.4" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/semver": { - "version": "7.6.3", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.3.tgz", - "integrity": "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==", - "dev": true, - "license": "ISC", - "bin": { - "semver": "bin/semver.js" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/set-function-length": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/set-function-length/-/set-function-length-1.2.2.tgz", - "integrity": "sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg==", - "dev": true, - "license": "MIT", - "dependencies": { - "define-data-property": "^1.1.4", - "es-errors": "^1.3.0", - "function-bind": "^1.1.2", - "get-intrinsic": "^1.2.4", - "gopd": "^1.0.1", - "has-property-descriptors": "^1.0.2" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/set-function-name": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/set-function-name/-/set-function-name-2.0.2.tgz", - "integrity": "sha512-7PGFlmtwsEADb0WYyvCMa1t+yke6daIG4Wirafur5kcf+MhUnPms1UeR0CKQdTZD81yESwMHbtn+TR+dMviakQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "define-data-property": "^1.1.4", - "es-errors": "^1.3.0", - "functions-have-names": "^1.2.3", - "has-property-descriptors": "^1.0.2" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/sh-syntax": { - "version": "0.4.2", - "resolved": "https://registry.npmjs.org/sh-syntax/-/sh-syntax-0.4.2.tgz", - "integrity": "sha512-/l2UZ5fhGZLVZa16XQM9/Vq/hezGGbdHeVEA01uWjOL1+7Ek/gt6FquW0iKKws4a9AYPYvlz6RyVvjh3JxOteg==", - "dev": true, - "license": "MIT", - "dependencies": { - "tslib": "^2.6.2" - }, - "engines": { - "node": ">=16.0.0" - }, - "funding": { - "url": "https://opencollective.com/unts" - } - }, - "node_modules/shebang-command": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", - "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", - "dev": true, - "license": "MIT", - "dependencies": { - "shebang-regex": "^3.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/shebang-regex": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", - "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/side-channel": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.6.tgz", - "integrity": "sha512-fDW/EZ6Q9RiO8eFG8Hj+7u/oW+XrPTIChwCOM2+th2A6OblDtYYIpve9m+KvI9Z4C9qSEXlaGR6bTEYHReuglA==", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.7", - "es-errors": "^1.3.0", - "get-intrinsic": "^1.2.4", - "object-inspect": "^1.13.1" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/signal-exit": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz", - "integrity": "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==", - "dev": true, - "license": "ISC", - "engines": { - "node": ">=14" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/sql-formatter": { - "version": "15.3.2", - "resolved": "https://registry.npmjs.org/sql-formatter/-/sql-formatter-15.3.2.tgz", - "integrity": "sha512-pNxSMf5DtwhpZ8gUcOGCGZIWtCcyAUx9oLgAtlO4ag7DvlfnETL0BGqXaISc84pNrXvTWmt8Wal1FWKxdTsL3Q==", - "dev": true, - "dependencies": { - "argparse": "^2.0.1", - "get-stdin": "=8.0.0", - "nearley": "^2.20.1" - }, - "bin": { - "sql-formatter": "bin/sql-formatter-cli.cjs" - } - }, - "node_modules/string-width": { - "version": "4.2.3", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", - "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", - "dev": true, - "license": "MIT", - "dependencies": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/string-width/node_modules/emoji-regex": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", - "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", - "dev": true, - "license": "MIT" - }, - "node_modules/string.prototype.includes": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/string.prototype.includes/-/string.prototype.includes-2.0.1.tgz", - "integrity": "sha512-o7+c9bW6zpAdJHTtujeePODAhkuicdAryFsfVKwA+wGw89wJ4GTY484WTucM9hLtDEOpOvI+aHnzqnC5lHp4Rg==", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.7", - "define-properties": "^1.2.1", - "es-abstract": "^1.23.3" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/string.prototype.matchall": { - "version": "4.0.11", - "resolved": "https://registry.npmjs.org/string.prototype.matchall/-/string.prototype.matchall-4.0.11.tgz", - "integrity": "sha512-NUdh0aDavY2og7IbBPenWqR9exH+E26Sv8e0/eTe1tltDGZL+GtBkDAnnyBtmekfK6/Dq3MkcGtzXFEd1LQrtg==", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.7", - "define-properties": "^1.2.1", - "es-abstract": "^1.23.2", - "es-errors": "^1.3.0", - "es-object-atoms": "^1.0.0", - "get-intrinsic": "^1.2.4", - "gopd": "^1.0.1", - "has-symbols": "^1.0.3", - "internal-slot": "^1.0.7", - "regexp.prototype.flags": "^1.5.2", - "set-function-name": "^2.0.2", - "side-channel": "^1.0.6" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/string.prototype.repeat": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/string.prototype.repeat/-/string.prototype.repeat-1.0.0.tgz", - "integrity": "sha512-0u/TldDbKD8bFCQ/4f5+mNRrXwZ8hg2w7ZR8wa16e8z9XpePWl3eGEcUD0OXpEH/VJH/2G3gjUtR3ZOiBe2S/w==", - "dev": true, - "license": "MIT", - "dependencies": { - "define-properties": "^1.1.3", - "es-abstract": "^1.17.5" - } - }, - "node_modules/string.prototype.trim": { - "version": "1.2.9", - "resolved": "https://registry.npmjs.org/string.prototype.trim/-/string.prototype.trim-1.2.9.tgz", - "integrity": "sha512-klHuCNxiMZ8MlsOihJhJEBJAiMVqU3Z2nEXWfWnIqjN0gEFS9J9+IxKozWWtQGcgoa1WUZzLjKPTr4ZHNFTFxw==", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.7", - "define-properties": "^1.2.1", - "es-abstract": "^1.23.0", - "es-object-atoms": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/string.prototype.trimend": { - "version": "1.0.8", - "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.8.tgz", - "integrity": "sha512-p73uL5VCHCO2BZZ6krwwQE3kCzM7NKmis8S//xEC6fQonchbum4eP6kR4DLEjQFO3Wnj3Fuo8NM0kOSjVdHjZQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.7", - "define-properties": "^1.2.1", - "es-object-atoms": "^1.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/string.prototype.trimstart": { - "version": "1.0.8", - "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.8.tgz", - "integrity": "sha512-UXSH262CSZY1tfu3G3Secr6uGLCFVPMhIqHjlgCUtCCcgihYc/xKs9djMTMUOb2j1mVSeU8EU6NWc/iQKU6Gfg==", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.7", - "define-properties": "^1.2.1", - "es-object-atoms": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/strip-ansi": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", - "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", - "dev": true, - "license": "MIT", - "dependencies": { - "ansi-regex": "^5.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/strip-bom": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", - "integrity": "sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=4" - } - }, - "node_modules/strip-final-newline": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-4.0.0.tgz", - "integrity": "sha512-aulFJcD6YK8V1G7iRB5tigAP4TsHBZZrOV8pjV++zdUwmeV8uzbY7yn6h9MswN62adStNZFuCIx4haBnRuMDaw==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=18" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/strip-json-comments": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", - "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, - "license": "MIT", - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/supports-preserve-symlinks-flag": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", - "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/tapable": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/tapable/-/tapable-2.2.1.tgz", - "integrity": "sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=6" - } - }, - "node_modules/to-regex-range": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", - "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", - "license": "MIT", - "dependencies": { - "is-number": "^7.0.0" - }, - "engines": { - "node": ">=8.0" - } - }, - "node_modules/ts-api-utils": { - "version": "1.4.2", - "resolved": "https://registry.npmjs.org/ts-api-utils/-/ts-api-utils-1.4.2.tgz", - "integrity": "sha512-ZF5gQIQa/UmzfvxbHZI3JXN0/Jt+vnAfAviNRAMc491laiK6YCLpCW9ft8oaCRFOTxCZtUTE6XB0ZQAe3olntw==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=16" - }, - "peerDependencies": { - "typescript": ">=4.2.0" - } - }, - "node_modules/tsconfig-paths": { - "version": "3.15.0", - "resolved": "https://registry.npmjs.org/tsconfig-paths/-/tsconfig-paths-3.15.0.tgz", - "integrity": "sha512-2Ac2RgzDe/cn48GvOe3M+o82pEFewD3UPbyoUHHdKasHwJKjds4fLXWf/Ux5kATBKN20oaFGu+jbElp1pos0mg==", - "dev": true, - "license": "MIT", - "dependencies": { - "@types/json5": "^0.0.29", - "json5": "^1.0.2", - "minimist": "^1.2.6", - "strip-bom": "^3.0.0" - } - }, - "node_modules/tslib": { - "version": "2.6.3", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.3.tgz", - "integrity": "sha512-xNvxJEOUiWPGhUuUdQgAJPKOOJfGnIyKySOc09XkKsgdUV/3E2zvwZYdejjmRgPCgcym1juLH3226yA7sEFJKQ==", - "dev": true - }, - "node_modules/type-check": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz", - "integrity": "sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==", - "dev": true, - "license": "MIT", - "dependencies": { - "prelude-ls": "^1.2.1" - }, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/typed-array-buffer": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/typed-array-buffer/-/typed-array-buffer-1.0.2.tgz", - "integrity": "sha512-gEymJYKZtKXzzBzM4jqa9w6Q1Jjm7x2d+sh19AdsD4wqnMPDYyvwpsIc2Q/835kHuo3BEQ7CjelGhfTsoBb2MQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.7", - "es-errors": "^1.3.0", - "is-typed-array": "^1.1.13" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/typed-array-byte-length": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/typed-array-byte-length/-/typed-array-byte-length-1.0.1.tgz", - "integrity": "sha512-3iMJ9q0ao7WE9tWcaYKIptkNBuOIcZCCT0d4MRvuuH88fEoEH62IuQe0OtraD3ebQEoTRk8XCBoknUNc1Y67pw==", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.7", - "for-each": "^0.3.3", - "gopd": "^1.0.1", - "has-proto": "^1.0.3", - "is-typed-array": "^1.1.13" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/typed-array-byte-offset": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/typed-array-byte-offset/-/typed-array-byte-offset-1.0.3.tgz", - "integrity": "sha512-GsvTyUHTriq6o/bHcTd0vM7OQ9JEdlvluu9YISaA7+KzDzPaIzEeDFNkTfhdE3MYcNhNi0vq/LlegYgIs5yPAw==", - "dev": true, - "license": "MIT", - "dependencies": { - "available-typed-arrays": "^1.0.7", - "call-bind": "^1.0.7", - "for-each": "^0.3.3", - "gopd": "^1.0.1", - "has-proto": "^1.0.3", - "is-typed-array": "^1.1.13", - "reflect.getprototypeof": "^1.0.6" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/typed-array-length": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/typed-array-length/-/typed-array-length-1.0.7.tgz", - "integrity": "sha512-3KS2b+kL7fsuk/eJZ7EQdnEmQoaho/r6KUef7hxvltNA5DR8NAUM+8wJMbJyZ4G9/7i3v5zPBIMN5aybAh2/Jg==", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.7", - "for-each": "^0.3.3", - "gopd": "^1.0.1", - "is-typed-array": "^1.1.13", - "possible-typed-array-names": "^1.0.0", - "reflect.getprototypeof": "^1.0.6" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/typescript": { - "version": "5.7.2", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.7.2.tgz", - "integrity": "sha512-i5t66RHxDvVN40HfDd1PsEThGNnlMCMT3jMUuoh9/0TaqWevNontacunWyN02LA9/fIbEWlcHZcgTKb9QoaLfg==", - "dev": true, - "license": "Apache-2.0", - "bin": { - "tsc": "bin/tsc", - "tsserver": "bin/tsserver" - }, - "engines": { - "node": ">=14.17" - } - }, - "node_modules/typescript-eslint": { - "version": "8.16.0", - "resolved": "https://registry.npmjs.org/typescript-eslint/-/typescript-eslint-8.16.0.tgz", - "integrity": "sha512-wDkVmlY6O2do4V+lZd0GtRfbtXbeD0q9WygwXXSJnC1xorE8eqyC2L1tJimqpSeFrOzRlYtWnUp/uzgHQOgfBQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "@typescript-eslint/eslint-plugin": "8.16.0", - "@typescript-eslint/parser": "8.16.0", - "@typescript-eslint/utils": "8.16.0" - }, - "engines": { - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - }, - "peerDependencies": { - "eslint": "^8.57.0 || ^9.0.0" - }, - "peerDependenciesMeta": { - "typescript": { - "optional": true - } - } - }, - "node_modules/unbox-primitive": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.0.2.tgz", - "integrity": "sha512-61pPlCD9h51VoreyJ0BReideM3MDKMKnh6+V9L08331ipq6Q8OFXZYiqP6n/tbHx4s5I9uRhcye6BrbkizkBDw==", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.2", - "has-bigints": "^1.0.2", - "has-symbols": "^1.0.3", - "which-boxed-primitive": "^1.0.2" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/undici-types": { - "version": "6.20.0", - "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-6.20.0.tgz", - "integrity": "sha512-Ny6QZ2Nju20vw1SRHe3d9jVu6gJ+4e3+MMpqu7pqE5HT6WsTSlce++GQmK5UXS8mzV8DSYHrQH+Xrf2jVcuKNg==", - "license": "MIT", - "optional": true - }, - "node_modules/unicorn-magic": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/unicorn-magic/-/unicorn-magic-0.3.0.tgz", - "integrity": "sha512-+QBBXBCvifc56fsbuxZQ6Sic3wqqc3WWaqxs58gvJrcOuN83HGTCwz3oS5phzU9LthRNE9VrJCFCLUgHeeFnfA==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=18" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/uri-js": { - "version": "4.4.1", - "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", - "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", - "dev": true, - "license": "BSD-2-Clause", - "dependencies": { - "punycode": "^2.1.0" - } - }, - "node_modules/web-streams-polyfill": { - "version": "3.3.3", - "resolved": "https://registry.npmjs.org/web-streams-polyfill/-/web-streams-polyfill-3.3.3.tgz", - "integrity": "sha512-d2JWLCivmZYTSIoge9MsgFCZrt571BikcWGYkjC1khllbTeDlGqZ2D8vD8E/lJa8WGWbb7Plm8/XJYV7IJHZZw==", - "license": "MIT", - "engines": { - "node": ">= 8" - } - }, - "node_modules/which": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", - "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", - "dev": true, - "license": "ISC", - "dependencies": { - "isexe": "^2.0.0" - }, - "bin": { - "node-which": "bin/node-which" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/which-boxed-primitive": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz", - "integrity": "sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==", - "dev": true, - "license": "MIT", - "dependencies": { - "is-bigint": "^1.0.1", - "is-boolean-object": "^1.1.0", - "is-number-object": "^1.0.4", - "is-string": "^1.0.5", - "is-symbol": "^1.0.3" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/which-builtin-type": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/which-builtin-type/-/which-builtin-type-1.2.0.tgz", - "integrity": "sha512-I+qLGQ/vucCby4tf5HsLmGueEla4ZhwTBSqaooS+Y0BuxN4Cp+okmGuV+8mXZ84KDI9BA+oklo+RzKg0ONdSUA==", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.7", - "function.prototype.name": "^1.1.6", - "has-tostringtag": "^1.0.2", - "is-async-function": "^2.0.0", - "is-date-object": "^1.0.5", - "is-finalizationregistry": "^1.1.0", - "is-generator-function": "^1.0.10", - "is-regex": "^1.1.4", - "is-weakref": "^1.0.2", - "isarray": "^2.0.5", - "which-boxed-primitive": "^1.0.2", - "which-collection": "^1.0.2", - "which-typed-array": "^1.1.15" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/which-collection": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/which-collection/-/which-collection-1.0.2.tgz", - "integrity": "sha512-K4jVyjnBdgvc86Y6BkaLZEN933SwYOuBFkdmBu9ZfkcAbdVbpITnDmjvZ/aQjRXQrv5EPkTnD1s39GiiqbngCw==", - "dev": true, - "license": "MIT", - "dependencies": { - "is-map": "^2.0.3", - "is-set": "^2.0.3", - "is-weakmap": "^2.0.2", - "is-weakset": "^2.0.3" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/which-typed-array": { - "version": "1.1.15", - "resolved": "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.15.tgz", - "integrity": "sha512-oV0jmFtUky6CXfkqehVvBP/LSWJ2sy4vWMioiENyJLePrBO/yKyV9OyJySfAKosh+RYkIl5zJCNZ8/4JncrpdA==", - "dev": true, - "license": "MIT", - "dependencies": { - "available-typed-arrays": "^1.0.7", - "call-bind": "^1.0.7", - "for-each": "^0.3.3", - "gopd": "^1.0.1", - "has-tostringtag": "^1.0.2" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/wireit": { - "version": "0.14.9", - "resolved": "https://registry.npmjs.org/wireit/-/wireit-0.14.9.tgz", - "integrity": "sha512-hFc96BgyslfO1WGSzQqOVYd5N3TB+4u9w70L9GHR/T7SYjvFmeznkYMsRIjMLhPcVabCEYPW1vV66wmIVDs+dQ==", - "license": "Apache-2.0", - "workspaces": [ - "vscode-extension", - "website" - ], - "dependencies": { - "brace-expansion": "^4.0.0", - "chokidar": "^3.5.3", - "fast-glob": "^3.2.11", - "jsonc-parser": "^3.0.0", - "proper-lockfile": "^4.1.2" - }, - "bin": { - "wireit": "bin/wireit.js" - }, - "engines": { - "node": ">=18.0.0" - } - }, - "node_modules/wireit/node_modules/balanced-match": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-3.0.1.tgz", - "integrity": "sha512-vjtV3hiLqYDNRoiAv0zC4QaGAMPomEoq83PRmYIofPswwZurCeWR5LByXm7SyoL0Zh5+2z0+HC7jG8gSZJUh0w==", - "license": "MIT", - "engines": { - "node": ">= 16" - } - }, - "node_modules/wireit/node_modules/brace-expansion": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-4.0.0.tgz", - "integrity": "sha512-l/mOwLWs7BQIgOKrL46dIAbyCKvPV7YJPDspkuc88rHsZRlg3hptUGdU7Trv0VFP4d3xnSGBQrKu5ZvGB7UeIw==", - "license": "MIT", - "dependencies": { - "balanced-match": "^3.0.0" - }, - "engines": { - "node": ">= 18" - } - }, - "node_modules/word-wrap": { - "version": "1.2.5", - "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.5.tgz", - "integrity": "sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/wrap-ansi": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", - "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", - "dev": true, - "license": "MIT", - "dependencies": { - "ansi-styles": "^4.0.0", - "string-width": "^4.1.0", - "strip-ansi": "^6.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/wrap-ansi?sponsor=1" - } - }, - "node_modules/wrappy": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", - "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==", - "license": "ISC" - }, - "node_modules/y18n": { - "version": "5.0.8", - "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", - "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==", - "dev": true, - "license": "ISC", - "engines": { - "node": ">=10" - } - }, - "node_modules/yargs": { - "version": "17.7.2", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.7.2.tgz", - "integrity": "sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==", - "dev": true, - "license": "MIT", - "dependencies": { - "cliui": "^8.0.1", - "escalade": "^3.1.1", - "get-caller-file": "^2.0.5", - "require-directory": "^2.1.1", - "string-width": "^4.2.3", - "y18n": "^5.0.5", - "yargs-parser": "^21.1.1" - }, - "engines": { - "node": ">=12" - } - }, - "node_modules/yargs-parser": { - "version": "21.1.1", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.1.1.tgz", - "integrity": "sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==", - "dev": true, - "license": "ISC", - "engines": { - "node": ">=12" - } - }, - "node_modules/yauzl": { - "version": "2.10.0", - "resolved": "https://registry.npmjs.org/yauzl/-/yauzl-2.10.0.tgz", - "integrity": "sha512-p4a9I6X6nu6IhoGmBqAcbJy1mlC4j27vEPZX9F4L4/vZT3Lyq1VkFHw/V/PUcB9Buo+DG3iHkT0x3Qya58zc3g==", - "license": "MIT", - "dependencies": { - "buffer-crc32": "~0.2.3", - "fd-slicer": "~1.1.0" - } - }, - "node_modules/yocto-queue": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", - "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/yoctocolors": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/yoctocolors/-/yoctocolors-2.1.1.tgz", - "integrity": "sha512-GQHQqAopRhwU8Kt1DDM8NjibDXHC8eoh1erhGAJPEyveY9qqVeXvVikNKrDz69sHowPMorbPUrH/mx8c50eiBQ==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=18" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - } - } -} diff --git a/package.json b/package.json index ffb34e45..a4a6d6ca 100644 --- a/package.json +++ b/package.json @@ -28,7 +28,7 @@ "keywords": [], "license": "ISC", "name": "@vhs/nomos", - "packageManager": "pnpm@9.15.1+sha512.1acb565e6193efbebda772702950469150cf12bcc764262e7587e71d19dc98a423dff9536e57ea44c49bdf790ff694e83c27be5faa23d67e0c033b583be4bfcf", + "packageManager": "pnpm@10.2.0+sha512.0d27364e0139c6aadeed65ada153135e0ca96c8da42123bd50047f961339dc7a758fc2e944b428f52be570d1bd3372455c1c65fa2e7aa0bfbf931190f9552001", "private": true, "scripts": { "prepare": "wireit", @@ -38,10 +38,9 @@ "wireit": { "prepare": { "dependencies": [ - "prepare:webcomponents", "prepare:husky", "prepare:vendor", - "prepare:webhooker" + "prepare:webcomponents" ] }, "prepare:husky": { @@ -53,9 +52,6 @@ "prepare:webcomponents": { "command": "just setup webcomponents" }, - "prepare:webhooker": { - "command": "just setup webhooker" - }, "test": { "dependencies": [ "test:php", @@ -68,5 +64,11 @@ "test:webhooker": { "command": "just test php" } + }, + "pnpm": { + "onlyBuiltDependencies": [ + "dtrace-provider", + "just-install" + ] } } diff --git a/webhooker/.gitignore b/packages/webhooker/.gitignore similarity index 100% rename from webhooker/.gitignore rename to packages/webhooker/.gitignore diff --git a/webhooker/README.md b/packages/webhooker/README.md similarity index 100% rename from webhooker/README.md rename to packages/webhooker/README.md diff --git a/webhooker/config.docker.js b/packages/webhooker/config.docker.js similarity index 100% rename from webhooker/config.docker.js rename to packages/webhooker/config.docker.js diff --git a/webhooker/config.js.template.js b/packages/webhooker/config.js.template.js similarity index 100% rename from webhooker/config.js.template.js rename to packages/webhooker/config.js.template.js diff --git a/webhooker/domains.js b/packages/webhooker/domains.js similarity index 100% rename from webhooker/domains.js rename to packages/webhooker/domains.js diff --git a/webhooker/events.js b/packages/webhooker/events.js similarity index 100% rename from webhooker/events.js rename to packages/webhooker/events.js diff --git a/webhooker/nomos.js b/packages/webhooker/nomos.js similarity index 100% rename from webhooker/nomos.js rename to packages/webhooker/nomos.js diff --git a/webhooker/package.json b/packages/webhooker/package.json similarity index 79% rename from webhooker/package.json rename to packages/webhooker/package.json index 718f2059..832063a8 100644 --- a/webhooker/package.json +++ b/packages/webhooker/package.json @@ -1,28 +1,29 @@ { - "name": "webhooker", - "version": "1.0.0", - "description": "Nomos WebHook Broker", "author": "Thomas LaFreniere ", - "license": "MIT", - "repository": { - "type": "git", - "url": "git://github.com/vhs/nomos.git" - }, - "main": "webhooker.js", - "scripts": { - "start": "node webhooker.js", - "test": "mocha ./test", - "help": "node webhooker.js --help", - "console": "node webhooker.js --console | ./node_modules/bunyan/bin/bunyan" - }, "dependencies": { "amqplib": "^0.10.5", "bunyan": "^1.8.15", "commander": "^12.1.0", "daemon": "^1.1.0" }, + "description": "Nomos WebHook Broker", "devDependencies": { "chai": "^4.5.0", "mocha": "^10.8.2" - } + }, + "license": "MIT", + "main": "webhooker.js", + "name": "@vhs/webhooker", + "repository": { + "type": "git", + "url": "git://github.com/vhs/nomos.git" + }, + "scripts": { + "console": "node webhooker.js --console | ./node_modules/bunyan/bin/bunyan", + "help": "node webhooker.js --help", + "prepare": "cp config.docker.js config.js", + "start": "node webhooker.js", + "test": "mocha ./test" + }, + "version": "1.0.0" } diff --git a/webhooker/test/domains.js b/packages/webhooker/test/domains.js similarity index 100% rename from webhooker/test/domains.js rename to packages/webhooker/test/domains.js diff --git a/webhooker/test/webhooks.js b/packages/webhooker/test/webhooks.js similarity index 100% rename from webhooker/test/webhooks.js rename to packages/webhooker/test/webhooks.js diff --git a/webhooker/webhooker.console b/packages/webhooker/webhooker.console similarity index 100% rename from webhooker/webhooker.console rename to packages/webhooker/webhooker.console diff --git a/webhooker/webhooker.js b/packages/webhooker/webhooker.js similarity index 100% rename from webhooker/webhooker.js rename to packages/webhooker/webhooker.js diff --git a/packages/webhooker/webhooker.sbin b/packages/webhooker/webhooker.sbin new file mode 100755 index 00000000..cfcd6a4a --- /dev/null +++ b/packages/webhooker/webhooker.sbin @@ -0,0 +1,7 @@ +#!/usr/bin/env bash + +WEBHOOKER=$(dirname "$(realpath "$0")") + +cd "${WEBHOOKER}" || exit 255 + +npm start diff --git a/webhooker/webhooker.service b/packages/webhooker/webhooker.service similarity index 100% rename from webhooker/webhooker.service rename to packages/webhooker/webhooker.service diff --git a/webhooker/webhooks.js b/packages/webhooker/webhooks.js similarity index 100% rename from webhooker/webhooks.js rename to packages/webhooker/webhooks.js diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml new file mode 100644 index 00000000..0c84b7d7 --- /dev/null +++ b/pnpm-lock.yaml @@ -0,0 +1,3994 @@ +lockfileVersion: '9.0' + +settings: + autoInstallPeers: true + excludeLinksFromLockfile: false + injectWorkspacePackages: true + +importers: + + .: + dependencies: + '@types/lodash': + specifier: ^4.17.13 + version: 4.17.15 + just-install: + specifier: ^2.0.2 + version: 2.0.2 + wireit: + specifier: ^0.14.9 + version: 0.14.10 + devDependencies: + '@prettier/plugin-php': + specifier: ^0.22.2 + version: 0.22.4(prettier@3.4.2) + '@prettier/plugin-xml': + specifier: ^3.4.1 + version: 3.4.1(prettier@3.4.2) + '@tyisi/config-eslint': + specifier: ^4.0.0 + version: 4.0.0(@typescript-eslint/parser@8.22.0(eslint@9.19.0)(typescript@5.7.3))(eslint@9.19.0)(prettier@3.4.2)(typescript@5.7.3) + '@tyisi/config-prettier': + specifier: ^1.0.1 + version: 1.0.1(prettier@3.4.2) + '@types/angular': + specifier: ^1.8.9 + version: 1.8.9 + '@types/bootstrap': + specifier: ^5.2.10 + version: 5.2.10 + '@types/jquery': + specifier: ^3.5.32 + version: 3.5.32 + bower: + specifier: ^1.8.14 + version: 1.8.14 + eslint: + specifier: ^9.15.0 + version: 9.19.0 + husky: + specifier: ^9.1.7 + version: 9.1.7 + prettier: + specifier: ^3.0.3 + version: 3.4.2 + prettier-plugin-sh: + specifier: ^0.14.0 + version: 0.14.0(prettier@3.4.2) + prettier-plugin-sql: + specifier: ^0.18.1 + version: 0.18.1(prettier@3.4.2) + typescript: + specifier: ^5.7.2 + version: 5.7.3 + + packages/webhooker: + dependencies: + amqplib: + specifier: ^0.10.5 + version: 0.10.5 + bunyan: + specifier: ^1.8.15 + version: 1.8.15 + commander: + specifier: ^12.1.0 + version: 12.1.0 + daemon: + specifier: ^1.1.0 + version: 1.1.0 + devDependencies: + chai: + specifier: ^4.5.0 + version: 4.5.0 + mocha: + specifier: ^10.8.2 + version: 10.8.2 + +packages: + + '@acuminous/bitsyntax@0.1.2': + resolution: {integrity: sha512-29lUK80d1muEQqiUsSo+3A0yP6CdspgC95EnKBMi22Xlwt79i/En4Vr67+cXhU+cZjbti3TgGGC5wy1stIywVQ==} + engines: {node: '>=0.8'} + + '@eslint-community/eslint-utils@4.4.1': + resolution: {integrity: sha512-s3O3waFUrMV8P/XaF/+ZTp1X9XBZW1a4B97ZnjQF2KYWaFD2A8KyFBsrsfSjEmjn3RGWAIuvlneuZm3CUK3jbA==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + peerDependencies: + eslint: ^6.0.0 || ^7.0.0 || >=8.0.0 + + '@eslint-community/regexpp@4.12.1': + resolution: {integrity: sha512-CCZCDJuduB9OUkFkY2IgppNZMi2lBQgD2qzwXkEia16cge2pijY/aXi96CJMquDMn3nJdlPV1A5KrJEXwfLNzQ==} + engines: {node: ^12.0.0 || ^14.0.0 || >=16.0.0} + + '@eslint/config-array@0.19.2': + resolution: {integrity: sha512-GNKqxfHG2ySmJOBSHg7LxeUx4xpuCoFjacmlCoYWEbaPXLwvfIjixRI12xCQZeULksQb23uiA8F40w5TojpV7w==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + + '@eslint/core@0.10.0': + resolution: {integrity: sha512-gFHJ+xBOo4G3WRlR1e/3G8A6/KZAH6zcE/hkLRCZTi/B9avAG365QhFA8uOGzTMqgTghpn7/fSnscW++dpMSAw==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + + '@eslint/eslintrc@3.2.0': + resolution: {integrity: sha512-grOjVNN8P3hjJn/eIETF1wwd12DdnwFDoyceUJLYYdkpbwq3nLi+4fqrTAONx7XDALqlL220wC/RHSC/QTI/0w==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + + '@eslint/js@9.19.0': + resolution: {integrity: sha512-rbq9/g38qjfqFLOVPvwjIvFFdNziEC5S65jmjPw5r6A//QH+W91akh9irMwjDN8zKUTak6W9EsAv4m/7Wnw0UQ==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + + '@eslint/object-schema@2.1.6': + resolution: {integrity: sha512-RBMg5FRL0I0gs51M/guSAj5/e14VQ4tpZnQNWwuDT66P14I43ItmPfIZRhO9fUVIPOAQXU47atlywZ/czoqFPA==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + + '@eslint/plugin-kit@0.2.5': + resolution: {integrity: sha512-lB05FkqEdUg2AA0xEbUz0SnkXT1LcCTa438W4IWTUh4hdOnVbQyOJ81OrDXsJk/LSiJHubgGEFoR5EHq1NsH1A==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + + '@humanfs/core@0.19.1': + resolution: {integrity: sha512-5DyQ4+1JEUzejeK1JGICcideyfUbGixgS9jNgex5nqkW+cY7WZhxBigmieN5Qnw9ZosSNVC9KQKyb+GUaGyKUA==} + engines: {node: '>=18.18.0'} + + '@humanfs/node@0.16.6': + resolution: {integrity: sha512-YuI2ZHQL78Q5HbhDiBA1X4LmYdXCKCMQIfw0pw7piHJwyREFebJUvrQN4cMssyES6x+vfUbx1CIpaQUKYdQZOw==} + engines: {node: '>=18.18.0'} + + '@humanwhocodes/module-importer@1.0.1': + resolution: {integrity: sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==} + engines: {node: '>=12.22'} + + '@humanwhocodes/retry@0.3.1': + resolution: {integrity: sha512-JBxkERygn7Bv/GbN5Rv8Ul6LVknS+5Bp6RgDC/O8gEBU/yeH5Ui5C/OlWrTb6qct7LjjfT6Re2NxB0ln0yYybA==} + engines: {node: '>=18.18'} + + '@humanwhocodes/retry@0.4.1': + resolution: {integrity: sha512-c7hNEllBlenFTHBky65mhq8WD2kbN9Q6gk0bTk8lSBvc554jpXSkST1iePudpt7+A/AQvuHs9EMqjHDXMY1lrA==} + engines: {node: '>=18.18'} + + '@nodelib/fs.scandir@2.1.5': + resolution: {integrity: sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==} + engines: {node: '>= 8'} + + '@nodelib/fs.stat@2.0.5': + resolution: {integrity: sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==} + engines: {node: '>= 8'} + + '@nodelib/fs.walk@1.2.8': + resolution: {integrity: sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==} + engines: {node: '>= 8'} + + '@nolyfill/is-core-module@1.0.39': + resolution: {integrity: sha512-nn5ozdjYQpUCZlWGuxcJY/KpxkWQs4DcbMCmKojjyrYDEAGy4Ce19NN4v5MduafTwJlbKc99UA8YhSVqq9yPZA==} + engines: {node: '>=12.4.0'} + + '@popperjs/core@2.11.8': + resolution: {integrity: sha512-P1st0aksCrn9sGZhp8GMYwBnQsbvAWsZAX44oXNNvLHGqAOcoVxmjZiohstwQ7SqKnbR47akdNi+uleWD8+g6A==} + + '@prettier/plugin-php@0.22.4': + resolution: {integrity: sha512-uZWqfyrwsxScIYkmVcfnoQGFmKVMXTHD5pqYT4l8fxzm5P3XY94hTPbf8X6TFCi2QTZBIot7GS8lfIjQjldc2g==} + peerDependencies: + prettier: ^3.0.0 + + '@prettier/plugin-xml@3.4.1': + resolution: {integrity: sha512-Uf/6/+9ez6z/IvZErgobZ2G9n1ybxF5BhCd7eMcKqfoWuOzzNUxBipNo3QAP8kRC1VD18TIo84no7LhqtyDcTg==} + peerDependencies: + prettier: ^3.0.0 + + '@rtsao/scc@1.1.0': + resolution: {integrity: sha512-zt6OdqaDoOnJ1ZYsCYGt9YmWzDXl4vQdKTyJev62gFhRGKdx7mcT54V9KIjg+d2wi9EXsPvAPKe7i7WjfVWB8g==} + + '@sec-ant/readable-stream@0.4.1': + resolution: {integrity: sha512-831qok9r2t8AlxLko40y2ebgSDhenenCatLVeW/uBtnHPyhHOvG0C7TvfgecV+wHzIm5KUICgzmVpWS+IMEAeg==} + + '@sindresorhus/merge-streams@4.0.0': + resolution: {integrity: sha512-tlqY9xq5ukxTUZBmoOp+m61cqwQD5pHJtFY3Mn8CA8ps6yghLH/Hw8UPdqg4OLmFW3IFlcXnQNmo/dh8HzXYIQ==} + engines: {node: '>=18'} + + '@tyisi/config-eslint@4.0.0': + resolution: {integrity: sha512-d3mQl5w+D8EQ5gKjEOKMozAnfqqlcQkHEDP/ihrQQvR7t2rIsJu9xIxhJxRv8viWrk4kVVamYpOe410o6rCblQ==} + engines: {node: '>=20'} + peerDependencies: + eslint: ^9.12.0 + prettier: ^3.3.3 + + '@tyisi/config-prettier@1.0.1': + resolution: {integrity: sha512-tRmvt+2S4XpB7ibEMOXM+Unru6jrxk/V2FDXYO/2wgYnj5EVxkinT1U0XU2Gj4AuuHpbCdvksX1vbJvfMdmR+w==} + peerDependencies: + prettier: ^3.3.3 + + '@types/angular@1.8.9': + resolution: {integrity: sha512-Z0HukqZkx0fotsV3QO00yqU9NzcQI+tMcrum+8MvfB4ePqCawZctF/gz6QiuII+T1ax+LitNoPx/eICTgnF4sg==} + + '@types/bootstrap@5.2.10': + resolution: {integrity: sha512-F2X+cd6551tep0MvVZ6nM8v7XgGN/twpdNDjqS1TUM7YFNEtQYWk+dKAnH+T1gr6QgCoGMPl487xw/9hXooa2g==} + + '@types/estree@1.0.6': + resolution: {integrity: sha512-AYnb1nQyY49te+VRAVgmzfcgjYS91mY5P0TKUDCLEM+gNnA+3T6rWITXRLYCpahpqSQbN5cE+gHpnPyXjHWxcw==} + + '@types/jquery@3.5.32': + resolution: {integrity: sha512-b9Xbf4CkMqS02YH8zACqN1xzdxc3cO735Qe5AbSUFmyOiaWAbcpqh9Wna+Uk0vgACvoQHpWDg2rGdHkYPLmCiQ==} + + '@types/json-schema@7.0.15': + resolution: {integrity: sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==} + + '@types/json5@0.0.29': + resolution: {integrity: sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ==} + + '@types/lodash@4.17.15': + resolution: {integrity: sha512-w/P33JFeySuhN6JLkysYUK2gEmy9kHHFN7E8ro0tkfmlDOgxBDzWEZ/J8cWA+fHqFevpswDTFZnDx+R9lbL6xw==} + + '@types/node@22.13.0': + resolution: {integrity: sha512-ClIbNe36lawluuvq3+YYhnIN2CELi+6q8NpnM7PYp4hBn/TatfboPgVSm2rwKRfnV2M+Ty9GWDFI64KEe+kysA==} + + '@types/sizzle@2.3.9': + resolution: {integrity: sha512-xzLEyKB50yqCUPUJkIsrVvoWNfFUbIZI+RspLWt8u+tIW/BetMBZtgV2LY/2o+tYH8dRvQ+eoPf3NdhQCcLE2w==} + + '@types/yauzl@2.10.3': + resolution: {integrity: sha512-oJoftv0LSuaDZE3Le4DbKX+KS9G36NzOeSap90UIK0yMA/NhKJhqlSGtNDORNRaIbQfzjXDrQa0ytJ6mNRGz/Q==} + + '@typescript-eslint/eslint-plugin@8.22.0': + resolution: {integrity: sha512-4Uta6REnz/xEJMvwf72wdUnC3rr4jAQf5jnTkeRQ9b6soxLxhDEbS/pfMPoJLDfFPNVRdryqWUIV/2GZzDJFZw==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + peerDependencies: + '@typescript-eslint/parser': ^8.0.0 || ^8.0.0-alpha.0 + eslint: ^8.57.0 || ^9.0.0 + typescript: '>=4.8.4 <5.8.0' + + '@typescript-eslint/parser@8.22.0': + resolution: {integrity: sha512-MqtmbdNEdoNxTPzpWiWnqNac54h8JDAmkWtJExBVVnSrSmi9z+sZUt0LfKqk9rjqmKOIeRhO4fHHJ1nQIjduIQ==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + peerDependencies: + eslint: ^8.57.0 || ^9.0.0 + typescript: '>=4.8.4 <5.8.0' + + '@typescript-eslint/scope-manager@8.22.0': + resolution: {integrity: sha512-/lwVV0UYgkj7wPSw0o8URy6YI64QmcOdwHuGuxWIYznO6d45ER0wXUbksr9pYdViAofpUCNJx/tAzNukgvaaiQ==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + + '@typescript-eslint/type-utils@8.22.0': + resolution: {integrity: sha512-NzE3aB62fDEaGjaAYZE4LH7I1MUwHooQ98Byq0G0y3kkibPJQIXVUspzlFOmOfHhiDLwKzMlWxaNv+/qcZurJA==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + peerDependencies: + eslint: ^8.57.0 || ^9.0.0 + typescript: '>=4.8.4 <5.8.0' + + '@typescript-eslint/types@8.22.0': + resolution: {integrity: sha512-0S4M4baNzp612zwpD4YOieP3VowOARgK2EkN/GBn95hpyF8E2fbMT55sRHWBq+Huaqk3b3XK+rxxlM8sPgGM6A==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + + '@typescript-eslint/typescript-estree@8.22.0': + resolution: {integrity: sha512-SJX99NAS2ugGOzpyhMza/tX+zDwjvwAtQFLsBo3GQxiGcvaKlqGBkmZ+Y1IdiSi9h4Q0Lr5ey+Cp9CGWNY/F/w==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + peerDependencies: + typescript: '>=4.8.4 <5.8.0' + + '@typescript-eslint/utils@8.22.0': + resolution: {integrity: sha512-T8oc1MbF8L+Bk2msAvCUzjxVB2Z2f+vXYfcucE2wOmYs7ZUwco5Ep0fYZw8quNwOiw9K8GYVL+Kgc2pETNTLOg==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + peerDependencies: + eslint: ^8.57.0 || ^9.0.0 + typescript: '>=4.8.4 <5.8.0' + + '@typescript-eslint/visitor-keys@8.22.0': + resolution: {integrity: sha512-AWpYAXnUgvLNabGTy3uBylkgZoosva/miNd1I8Bz3SjotmQPbVqhO4Cczo8AsZ44XVErEBPr/CRSgaj8sG7g0w==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + + '@xml-tools/parser@1.0.11': + resolution: {integrity: sha512-aKqQ077XnR+oQtHJlrAflaZaL7qZsulWc/i/ZEooar5JiWj1eLt0+Wg28cpa+XLney107wXqneC+oG1IZvxkTA==} + + acorn-jsx@5.3.2: + resolution: {integrity: sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==} + peerDependencies: + acorn: ^6.0.0 || ^7.0.0 || ^8.0.0 + + acorn@8.14.0: + resolution: {integrity: sha512-cl669nCJTZBsL97OF4kUQm5g5hC2uihk0NxY3WENAC0TYdILVkAyHymAntgxGkl7K+t0cXIrH5siy5S4XkFycA==} + engines: {node: '>=0.4.0'} + hasBin: true + + ajv@6.12.6: + resolution: {integrity: sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==} + + amqplib@0.10.5: + resolution: {integrity: sha512-Dx5zmy0Ur+Q7LPPdhz+jx5IzmJBoHd15tOeAfQ8SuvEtyPJ20hBemhOBA4b1WeORCRa0ENM/kHCzmem1w/zHvQ==} + engines: {node: '>=10'} + + ansi-colors@4.1.3: + resolution: {integrity: sha512-/6w/C21Pm1A7aZitlI5Ni/2J6FFQN8i1Cvz3kHABAAbw93v/NlvKdVOqz7CCWz/3iv/JplRSEEZ83XION15ovw==} + engines: {node: '>=6'} + + ansi-regex@5.0.1: + resolution: {integrity: sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==} + engines: {node: '>=8'} + + ansi-styles@4.3.0: + resolution: {integrity: sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==} + engines: {node: '>=8'} + + anymatch@3.1.3: + resolution: {integrity: sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==} + engines: {node: '>= 8'} + + argparse@2.0.1: + resolution: {integrity: sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==} + + aria-query@5.3.2: + resolution: {integrity: sha512-COROpnaoap1E2F000S62r6A60uHZnmlvomhfyT2DlTcrY1OrBKn2UhH7qn5wTC9zMvD0AY7csdPSNwKP+7WiQw==} + engines: {node: '>= 0.4'} + + array-buffer-byte-length@1.0.2: + resolution: {integrity: sha512-LHE+8BuR7RYGDKvnrmcuSq3tDcKv9OFEXQt/HpbZhY7V6h0zlUXutnAD82GiFx9rdieCMjkvtcsPqBwgUl1Iiw==} + engines: {node: '>= 0.4'} + + array-includes@3.1.8: + resolution: {integrity: sha512-itaWrbYbqpGXkGhZPGUulwnhVf5Hpy1xiCFsGqyIGglbBxmG5vSjxQen3/WGOjPpNEv1RtBLKxbmVXm8HpJStQ==} + engines: {node: '>= 0.4'} + + array.prototype.findlast@1.2.5: + resolution: {integrity: sha512-CVvd6FHg1Z3POpBLxO6E6zr+rSKEQ9L6rZHAaY7lLfhKsWYUBBOuMs0e9o24oopj6H+geRCX0YJ+TJLBK2eHyQ==} + engines: {node: '>= 0.4'} + + array.prototype.findlastindex@1.2.5: + resolution: {integrity: sha512-zfETvRFA8o7EiNn++N5f/kaCw221hrpGsDmcpndVupkPzEc1Wuf3VgC0qby1BbHs7f5DVYjgtEU2LLh5bqeGfQ==} + engines: {node: '>= 0.4'} + + array.prototype.flat@1.3.3: + resolution: {integrity: sha512-rwG/ja1neyLqCuGZ5YYrznA62D4mZXg0i1cIskIUKSiqF3Cje9/wXAls9B9s1Wa2fomMsIv8czB8jZcPmxCXFg==} + engines: {node: '>= 0.4'} + + array.prototype.flatmap@1.3.3: + resolution: {integrity: sha512-Y7Wt51eKJSyi80hFrJCePGGNo5ktJCslFuboqJsbf57CCPcm5zztluPlc4/aD8sWsKvlwatezpV4U1efk8kpjg==} + engines: {node: '>= 0.4'} + + array.prototype.tosorted@1.1.4: + resolution: {integrity: sha512-p6Fx8B7b7ZhL/gmUsAy0D15WhvDccw3mnGNbZpi3pmeJdxtWsj2jEaI4Y6oo3XiHfzuSgPwKc04MYt6KgvC/wA==} + engines: {node: '>= 0.4'} + + arraybuffer.prototype.slice@1.0.4: + resolution: {integrity: sha512-BNoCY6SXXPQ7gF2opIP4GBE+Xw7U+pHMYKuzjgCN3GwiaIR09UUeKfheyIry77QtrCBlC0KK0q5/TER/tYh3PQ==} + engines: {node: '>= 0.4'} + + assertion-error@1.1.0: + resolution: {integrity: sha512-jgsaNduz+ndvGyFt3uSuWqvy4lCnIJiovtouQN5JZHOKCS2QuhEdbcQHFhVksz2N2U9hXJo8odG7ETyWlEeuDw==} + + ast-types-flow@0.0.8: + resolution: {integrity: sha512-OH/2E5Fg20h2aPrbe+QL8JZQFko0YZaF+j4mnQ7BGhfavO7OpSLa8a0y9sBwomHdSbkhTS8TQNayBfnW5DwbvQ==} + + async-function@1.0.0: + resolution: {integrity: sha512-hsU18Ae8CDTR6Kgu9DYf0EbCr/a5iGL0rytQDobUcdpYOKokk8LEjVphnXkDkgpi0wYVsqrXuP0bZxJaTqdgoA==} + engines: {node: '>= 0.4'} + + available-typed-arrays@1.0.7: + resolution: {integrity: sha512-wvUjBtSGN7+7SjNpq/9M2Tg350UZD3q62IFZLbRAR1bSMlCo1ZaeW+BJ+D090e4hIIZLBcTDWe4Mh4jvUDajzQ==} + engines: {node: '>= 0.4'} + + axe-core@4.10.2: + resolution: {integrity: sha512-RE3mdQ7P3FRSe7eqCWoeQ/Z9QXrtniSjp1wUjt5nRC3WIpz5rSCve6o3fsZ2aCpJtrZjSZgjwXAoTO5k4tEI0w==} + engines: {node: '>=4'} + + axobject-query@4.1.0: + resolution: {integrity: sha512-qIj0G9wZbMGNLjLmg1PT6v2mE9AH2zlnADJD/2tC6E00hgmhUOfEB6greHPAfLRSufHqROIUTkw6E+M3lH0PTQ==} + engines: {node: '>= 0.4'} + + balanced-match@1.0.0: + resolution: {integrity: sha512-9Y0g0Q8rmSt+H33DfKv7FOc3v+iRI+o1lbzt8jGcIosYW37IIW/2XVYq5NPdmaD5NQ59Nk26Kl/vZbwW9Fr8vg==} + + balanced-match@1.0.2: + resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==} + + balanced-match@3.0.1: + resolution: {integrity: sha512-vjtV3hiLqYDNRoiAv0zC4QaGAMPomEoq83PRmYIofPswwZurCeWR5LByXm7SyoL0Zh5+2z0+HC7jG8gSZJUh0w==} + engines: {node: '>= 16'} + + big-integer@1.6.52: + resolution: {integrity: sha512-QxD8cf2eVqJOOz63z6JIN9BzvVs/dlySa5HGSBH5xtR8dPteIRQnBxxKqkNTiT6jbDTF6jAfrd4oMcND9RGbQg==} + engines: {node: '>=0.6'} + + binary-extensions@2.3.0: + resolution: {integrity: sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw==} + engines: {node: '>=8'} + + bower@1.8.14: + resolution: {integrity: sha512-8Rq058FD91q9Nwthyhw0la9fzpBz0iwZTrt51LWl+w+PnJgZk9J+5wp3nibsJcIUPglMYXr4NRBaR+TUj0OkBQ==} + engines: {node: '>=0.10.0'} + hasBin: true + + brace-expansion@1.1.11: + resolution: {integrity: sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==} + + brace-expansion@2.0.1: + resolution: {integrity: sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==} + + brace-expansion@4.0.0: + resolution: {integrity: sha512-l/mOwLWs7BQIgOKrL46dIAbyCKvPV7YJPDspkuc88rHsZRlg3hptUGdU7Trv0VFP4d3xnSGBQrKu5ZvGB7UeIw==} + engines: {node: '>= 18'} + + braces@3.0.3: + resolution: {integrity: sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==} + engines: {node: '>=8'} + + browser-stdout@1.3.1: + resolution: {integrity: sha512-qhAVI1+Av2X7qelOfAIYwXONood6XlZE/fXaBSmW/T5SzLAmCgzi+eiWE7fUvbHaeNBQH13UftjpXxsfLkMpgw==} + + buffer-crc32@0.2.13: + resolution: {integrity: sha512-VO9Ht/+p3SN7SKWqcrgEzjGbRSJYTx+Q1pTQC0wrWqHx0vpJraQ6GtHx8tvcg1rlK1byhU5gccxgOgj7B0TDkQ==} + + buffer-more-ints@1.0.0: + resolution: {integrity: sha512-EMetuGFz5SLsT0QTnXzINh4Ksr+oo4i+UGTXEshiGCQWnsgSs7ZhJ8fzlwQ+OzEMs0MpDAMr1hxnblp5a4vcHg==} + + bunyan@1.8.15: + resolution: {integrity: sha512-0tECWShh6wUysgucJcBAoYegf3JJoZWibxdqhTm7OHPeT42qdjkZ29QCMcKwbgU1kiH+auSIasNRXMLWXafXig==} + engines: {'0': node >=0.10.0} + hasBin: true + + call-bind-apply-helpers@1.0.1: + resolution: {integrity: sha512-BhYE+WDaywFg2TBWYNXAE+8B1ATnThNBqXHP5nQu0jWJdVvY2hvkpyB3qOmtmDePiS5/BDQ8wASEWGMWRG148g==} + engines: {node: '>= 0.4'} + + call-bind@1.0.8: + resolution: {integrity: sha512-oKlSFMcMwpUg2ednkhQ454wfWiU/ul3CkJe/PEHcTKuiX6RpbehUiFMXu13HalGZxfUwCQzZG747YXBn1im9ww==} + engines: {node: '>= 0.4'} + + call-bound@1.0.3: + resolution: {integrity: sha512-YTd+6wGlNlPxSuri7Y6X8tY2dmm12UMH66RpKMhiX6rsk5wXXnYgbUcOt8kiS31/AjfoTOvCsE+w8nZQLQnzHA==} + engines: {node: '>= 0.4'} + + callsites@3.1.0: + resolution: {integrity: sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==} + engines: {node: '>=6'} + + camelcase@6.2.0: + resolution: {integrity: sha512-c7wVvbw3f37nuobQNtgsgG9POC9qMbNuMQmTCqZv23b6MIz0fcYpBiOlv9gEN/hdLdnZTDQhg6e9Dq5M1vKvfg==} + engines: {node: '>=10'} + + chai@4.5.0: + resolution: {integrity: sha512-RITGBfijLkBddZvnn8jdqoTypxvqbOLYQkGGxXzeFjVHvudaPw0HNFD9x928/eUwYWd2dPCugVqspGALTZZQKw==} + engines: {node: '>=4'} + + chalk@4.1.2: + resolution: {integrity: sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==} + engines: {node: '>=10'} + + check-error@1.0.3: + resolution: {integrity: sha512-iKEoDYaRmd1mxM90a2OEfWhjsjPpYPuQ+lMYsoxB126+t8fw7ySEO48nmDg5COTjxDI65/Y2OWpeEHk3ZOe8zg==} + + chevrotain@7.1.1: + resolution: {integrity: sha512-wy3mC1x4ye+O+QkEinVJkPf5u2vsrDIYW9G7ZuwFl6v/Yu0LwUuT2POsb+NUWApebyxfkQq6+yDfRExbnI5rcw==} + + chokidar@3.5.3: + resolution: {integrity: sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==} + engines: {node: '>= 8.10.0'} + + chokidar@3.6.0: + resolution: {integrity: sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==} + engines: {node: '>= 8.10.0'} + + cliui@7.0.4: + resolution: {integrity: sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==} + + cliui@8.0.1: + resolution: {integrity: sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==} + engines: {node: '>=12'} + + color-convert@2.0.1: + resolution: {integrity: sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==} + engines: {node: '>=7.0.0'} + + color-name@1.1.4: + resolution: {integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==} + + commander@12.1.0: + resolution: {integrity: sha512-Vw8qHK3bZM9y/P10u3Vib8o/DdkvA2OtPtZvD871QKjy74Wj1WSKFILMPRPSdUSx5RFK1arlJzEtA4PkFgnbuA==} + engines: {node: '>=18'} + + commander@2.20.3: + resolution: {integrity: sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==} + + concat-map@0.0.1: + resolution: {integrity: sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==} + + cross-spawn@7.0.6: + resolution: {integrity: sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==} + engines: {node: '>= 8'} + + daemon@1.1.0: + resolution: {integrity: sha512-1vX9YVcP21gt12nSD3SQRC/uPU7fyA6M8qyClTBIFuiRWoylFn57PwXhjBAqRl085bZAje7sILhZU48qcS9SWw==} + engines: {node: '>= 0.8.0'} + + damerau-levenshtein@1.0.8: + resolution: {integrity: sha512-sdQSFB7+llfUcQHUQO3+B8ERRj0Oa4w9POWMI/puGtuf7gFywGmkaLCElnudfTiKZV+NvHqL0ifzdrI8Ro7ESA==} + + data-uri-to-buffer@4.0.1: + resolution: {integrity: sha512-0R9ikRb668HB7QDxT1vkpuUBtqc53YyAwMwGeUFKRojY/NWKvdZ+9UYtRfGmhqNbRkTSVpMbmyhXipFFv2cb/A==} + engines: {node: '>= 12'} + + data-view-buffer@1.0.2: + resolution: {integrity: sha512-EmKO5V3OLXh1rtK2wgXRansaK1/mtVdTUEiEI0W8RkvgT05kfxaH29PliLnpLP73yYO6142Q72QNa8Wx/A5CqQ==} + engines: {node: '>= 0.4'} + + data-view-byte-length@1.0.2: + resolution: {integrity: sha512-tuhGbE6CfTM9+5ANGf+oQb72Ky/0+s3xKUpHvShfiz2RxMFgFPjsXuRLBVMtvMs15awe45SRb83D6wH4ew6wlQ==} + engines: {node: '>= 0.4'} + + data-view-byte-offset@1.0.1: + resolution: {integrity: sha512-BS8PfmtDGnrgYdOonGZQdLZslWIeCGFP9tpan0hi1Co2Zr2NKADsvGYA8XxuG/4UWgJ6Cjtv+YJnB6MM69QGlQ==} + engines: {node: '>= 0.4'} + + debug@3.2.7: + resolution: {integrity: sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==} + peerDependencies: + supports-color: '*' + peerDependenciesMeta: + supports-color: + optional: true + + debug@4.3.7: + resolution: {integrity: sha512-Er2nc/H7RrMXZBFCEim6TCmMk02Z8vLC2Rbi1KEBggpo0fS6l0S1nnapwmIi3yW/+GOJap1Krg4w0Hg80oCqgQ==} + engines: {node: '>=6.0'} + peerDependencies: + supports-color: '*' + peerDependenciesMeta: + supports-color: + optional: true + + debug@4.4.0: + resolution: {integrity: sha512-6WTZ/IxCY/T6BALoZHaE4ctp9xm+Z5kY/pzYaCHRFeyVhojxlrm+46y68HA6hr0TcwEssoxNiDEUJQjfPZ/RYA==} + engines: {node: '>=6.0'} + peerDependencies: + supports-color: '*' + peerDependenciesMeta: + supports-color: + optional: true + + decamelize@4.0.0: + resolution: {integrity: sha512-9iE1PgSik9HeIIw2JO94IidnE3eBoQrFJ3w7sFuzSX4DpmZ3v5sZpUiV5Swcf6mQEF+Y0ru8Neo+p+nyh2J+hQ==} + engines: {node: '>=10'} + + deep-eql@4.1.4: + resolution: {integrity: sha512-SUwdGfqdKOwxCPeVYjwSyRpJ7Z+fhpwIAtmCUdZIWZ/YP5R9WAsyuSgpLVDi9bjWoN2LXHNss/dk3urXtdQxGg==} + engines: {node: '>=6'} + + deep-is@0.1.4: + resolution: {integrity: sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==} + + deepmerge@4.3.1: + resolution: {integrity: sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A==} + engines: {node: '>=0.10.0'} + + define-data-property@1.1.4: + resolution: {integrity: sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==} + engines: {node: '>= 0.4'} + + define-properties@1.2.1: + resolution: {integrity: sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg==} + engines: {node: '>= 0.4'} + + diff@5.2.0: + resolution: {integrity: sha512-uIFDxqpRZGZ6ThOk84hEfqWoHx2devRFvpTZcTHur85vImfaxUbTW9Ryh4CpCuDnToOP1CEtXKIgytHBPVff5A==} + engines: {node: '>=0.3.1'} + + discontinuous-range@1.0.0: + resolution: {integrity: sha512-c68LpLbO+7kP/b1Hr1qs8/BJ09F5khZGTxqxZuhzxpmwJKOgRFHJWIb9/KmqnqHhLdO55aOxFH/EGBvUQbL/RQ==} + + doctrine@2.1.0: + resolution: {integrity: sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==} + engines: {node: '>=0.10.0'} + + dtrace-provider@0.8.8: + resolution: {integrity: sha512-b7Z7cNtHPhH9EJhNNbbeqTcXB8LGFFZhq1PGgEvpeHlzd36bhbdTWoE/Ba/YguqpBSlAPKnARWhVlhunCMwfxg==} + engines: {node: '>=0.10'} + + dunder-proto@1.0.1: + resolution: {integrity: sha512-KIN/nDJBQRcXw0MLVhZE9iQHmG68qAVIBg9CqmUYjmQIhgij9U5MFvrqkUL5FbtyyzZuOeOt0zdeRe4UY7ct+A==} + engines: {node: '>= 0.4'} + + emoji-regex@8.0.0: + resolution: {integrity: sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==} + + emoji-regex@9.2.2: + resolution: {integrity: sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==} + + end-of-stream@1.4.4: + resolution: {integrity: sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==} + + enhanced-resolve@5.18.0: + resolution: {integrity: sha512-0/r0MySGYG8YqlayBZ6MuCfECmHFdJ5qyPh8s8wa5Hnm6SaFLSK1VYCbj+NKp090Nm1caZhD+QTnmxO7esYGyQ==} + engines: {node: '>=10.13.0'} + + es-abstract@1.23.9: + resolution: {integrity: sha512-py07lI0wjxAC/DcfK1S6G7iANonniZwTISvdPzk9hzeH0IZIshbuuFxLIU96OyF89Yb9hiqWn8M/bY83KY5vzA==} + engines: {node: '>= 0.4'} + + es-define-property@1.0.1: + resolution: {integrity: sha512-e3nRfgfUZ4rNGL232gUgX06QNyyez04KdjFrF+LTRoOXmrOgFKDg4BCdsjW8EnT69eqdYGmRpJwiPVYNrCaW3g==} + engines: {node: '>= 0.4'} + + es-errors@1.3.0: + resolution: {integrity: sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==} + engines: {node: '>= 0.4'} + + es-iterator-helpers@1.2.1: + resolution: {integrity: sha512-uDn+FE1yrDzyC0pCo961B2IHbdM8y/ACZsKD4dG6WqrjV53BADjwa7D+1aom2rsNVfLyDgU/eigvlJGJ08OQ4w==} + engines: {node: '>= 0.4'} + + es-object-atoms@1.1.1: + resolution: {integrity: sha512-FGgH2h8zKNim9ljj7dankFPcICIK9Cp5bm+c2gQSYePhpaG5+esrLODihIorn+Pe6FGJzWhXQotPv73jTaldXA==} + engines: {node: '>= 0.4'} + + es-set-tostringtag@2.1.0: + resolution: {integrity: sha512-j6vWzfrGVfyXxge+O0x5sh6cvxAog0a/4Rdd2K36zCMV5eJ+/+tOAngRO8cODMNWbVRdVlmGZQL2YS3yR8bIUA==} + engines: {node: '>= 0.4'} + + es-shim-unscopables@1.0.2: + resolution: {integrity: sha512-J3yBRXCzDu4ULnQwxyToo/OjdMx6akgVC7K6few0a7F/0wLtmKKN7I73AH5T2836UuXRqN7Qg+IIUw/+YJksRw==} + + es-to-primitive@1.3.0: + resolution: {integrity: sha512-w+5mJ3GuFL+NjVtJlvydShqE1eN3h3PbI7/5LAsYJP/2qtuMXjfL2LpHSRqo4b4eSF5K/DH1JXKUAHSB2UW50g==} + engines: {node: '>= 0.4'} + + escalade@3.1.1: + resolution: {integrity: sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==} + engines: {node: '>=6'} + + escalade@3.2.0: + resolution: {integrity: sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==} + engines: {node: '>=6'} + + escape-string-regexp@4.0.0: + resolution: {integrity: sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==} + engines: {node: '>=10'} + + eslint-compat-utils@0.5.1: + resolution: {integrity: sha512-3z3vFexKIEnjHE3zCMRo6fn/e44U7T1khUjg+Hp0ZQMCigh28rALD0nPFBcGZuiLC5rLZa2ubQHDRln09JfU2Q==} + engines: {node: '>=12'} + peerDependencies: + eslint: '>=6.0.0' + + eslint-config-love@87.0.0: + resolution: {integrity: sha512-WqVVU+z+OGzoo1Zl92+ZbD0ShQzYvdLDH8L5F6c432MOAWlDp7mtqg5HuAdjPAMWiKtfzB0+0hVLzcrikd5whQ==} + peerDependencies: + eslint: ^9.0.0 + typescript: '*' + + eslint-config-prettier@9.1.0: + resolution: {integrity: sha512-NSWl5BFQWEPi1j4TjVNItzYV7dZXZ+wP6I6ZhrBGpChQhZRUaElihE9uRRkcbRnNb76UMKDF3r+WTmNcGPKsqw==} + hasBin: true + peerDependencies: + eslint: '>=7.0.0' + + eslint-import-resolver-node@0.3.9: + resolution: {integrity: sha512-WFj2isz22JahUv+B788TlO3N6zL3nNJGU8CcZbPZvVEkBPaJdCV4vy5wyghty5ROFbCRnm132v8BScu5/1BQ8g==} + + eslint-import-resolver-typescript@3.7.0: + resolution: {integrity: sha512-Vrwyi8HHxY97K5ebydMtffsWAn1SCR9eol49eCd5fJS4O1WV7PaAjbcjmbfJJSMz/t4Mal212Uz/fQZrOB8mow==} + engines: {node: ^14.18.0 || >=16.0.0} + peerDependencies: + eslint: '*' + eslint-plugin-import: '*' + eslint-plugin-import-x: '*' + peerDependenciesMeta: + eslint-plugin-import: + optional: true + eslint-plugin-import-x: + optional: true + + eslint-module-utils@2.12.0: + resolution: {integrity: sha512-wALZ0HFoytlyh/1+4wuZ9FJCD/leWHQzzrxJ8+rebyReSLk7LApMyd3WJaLVoN+D5+WIdJyDK1c6JnE65V4Zyg==} + engines: {node: '>=4'} + peerDependencies: + '@typescript-eslint/parser': '*' + eslint: '*' + eslint-import-resolver-node: '*' + eslint-import-resolver-typescript: '*' + eslint-import-resolver-webpack: '*' + peerDependenciesMeta: + '@typescript-eslint/parser': + optional: true + eslint: + optional: true + eslint-import-resolver-node: + optional: true + eslint-import-resolver-typescript: + optional: true + eslint-import-resolver-webpack: + optional: true + + eslint-plugin-es-x@7.8.0: + resolution: {integrity: sha512-7Ds8+wAAoV3T+LAKeu39Y5BzXCrGKrcISfgKEqTS4BDN8SFEDQd0S43jiQ8vIa3wUKD07qitZdfzlenSi8/0qQ==} + engines: {node: ^14.18.0 || >=16.0.0} + peerDependencies: + eslint: '>=8' + + eslint-plugin-import@2.31.0: + resolution: {integrity: sha512-ixmkI62Rbc2/w8Vfxyh1jQRTdRTF52VxwRVHl/ykPAmqG+Nb7/kNn+byLP0LxPgI7zWA16Jt82SybJInmMia3A==} + engines: {node: '>=4'} + peerDependencies: + '@typescript-eslint/parser': '*' + eslint: ^2 || ^3 || ^4 || ^5 || ^6 || ^7.2.0 || ^8 || ^9 + peerDependenciesMeta: + '@typescript-eslint/parser': + optional: true + + eslint-plugin-jsx-a11y@6.10.2: + resolution: {integrity: sha512-scB3nz4WmG75pV8+3eRUQOHZlNSUhFNq37xnpgRkCCELU3XMvXAxLk1eqWWyE22Ki4Q01Fnsw9BA3cJHDPgn2Q==} + engines: {node: '>=4.0'} + peerDependencies: + eslint: ^3 || ^4 || ^5 || ^6 || ^7 || ^8 || ^9 + + eslint-plugin-n@17.15.1: + resolution: {integrity: sha512-KFw7x02hZZkBdbZEFQduRGH4VkIH4MW97ClsbAM4Y4E6KguBJWGfWG1P4HEIpZk2bkoWf0bojpnjNAhYQP8beA==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + peerDependencies: + eslint: '>=8.23.0' + + eslint-plugin-promise@7.2.1: + resolution: {integrity: sha512-SWKjd+EuvWkYaS+uN2csvj0KoP43YTu7+phKQ5v+xw6+A0gutVX2yqCeCkC3uLCJFiPfR2dD8Es5L7yUsmvEaA==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + peerDependencies: + eslint: ^7.0.0 || ^8.0.0 || ^9.0.0 + + eslint-plugin-react@7.37.4: + resolution: {integrity: sha512-BGP0jRmfYyvOyvMoRX/uoUeW+GqNj9y16bPQzqAHf3AYII/tDs+jMN0dBVkl88/OZwNGwrVFxE7riHsXVfy/LQ==} + engines: {node: '>=4'} + peerDependencies: + eslint: ^3 || ^4 || ^5 || ^6 || ^7 || ^8 || ^9.7 + + eslint-scope@8.2.0: + resolution: {integrity: sha512-PHlWUfG6lvPc3yvP5A4PNyBL1W8fkDUccmI21JUu/+GKZBoH/W5u6usENXUrWFRsyoW5ACUjFGgAFQp5gUlb/A==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + + eslint-visitor-keys@3.4.3: + resolution: {integrity: sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + + eslint-visitor-keys@4.2.0: + resolution: {integrity: sha512-UyLnSehNt62FFhSwjZlHmeokpRK59rcz29j+F1/aDgbkbRTk7wIc9XzdoasMUbRNKDM0qQt/+BJ4BrpFeABemw==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + + eslint@9.19.0: + resolution: {integrity: sha512-ug92j0LepKlbbEv6hD911THhoRHmbdXt2gX+VDABAW/Ir7D3nqKdv5Pf5vtlyY6HQMTEP2skXY43ueqTCWssEA==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + hasBin: true + peerDependencies: + jiti: '*' + peerDependenciesMeta: + jiti: + optional: true + + espree@10.3.0: + resolution: {integrity: sha512-0QYC8b24HWY8zjRnDTL6RiHfDbAWn63qb4LMj1Z4b076A4une81+z03Kg7l7mn/48PUTqoLptSXez8oknU8Clg==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + + esquery@1.6.0: + resolution: {integrity: sha512-ca9pw9fomFcKPvFLXhBKUK90ZvGibiGOvRJNbjljY7s7uq/5YO4BOzcYtJqExdx99rF6aAcnRxHmcUHcz6sQsg==} + engines: {node: '>=0.10'} + + esrecurse@4.3.0: + resolution: {integrity: sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==} + engines: {node: '>=4.0'} + + estraverse@5.3.0: + resolution: {integrity: sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==} + engines: {node: '>=4.0'} + + esutils@2.0.3: + resolution: {integrity: sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==} + engines: {node: '>=0.10.0'} + + execa@9.5.2: + resolution: {integrity: sha512-EHlpxMCpHWSAh1dgS6bVeoLAXGnJNdR93aabr4QCGbzOM73o5XmRfM/e5FUqsw3aagP8S8XEWUWFAxnRBnAF0Q==} + engines: {node: ^18.19.0 || >=20.5.0} + + extract-zip@2.0.1: + resolution: {integrity: sha512-GDhU9ntwuKyGXdZBUgTIe+vXnWj0fppUEtMDL0+idd5Sta8TGpHssn/eusA9mrPr9qNDym6SxAYZjNvCn/9RBg==} + engines: {node: '>= 10.17.0'} + hasBin: true + + fast-deep-equal@3.1.3: + resolution: {integrity: sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==} + + fast-glob@3.3.3: + resolution: {integrity: sha512-7MptL8U0cqcFdzIzwOTHoilX9x5BrNqye7Z/LuC7kCMRio1EMSyqRK3BEAUD7sXRq4iT4AzTVuZdhgQ2TCvYLg==} + engines: {node: '>=8.6.0'} + + fast-json-stable-stringify@2.1.0: + resolution: {integrity: sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==} + + fast-levenshtein@2.0.6: + resolution: {integrity: sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==} + + fastq@1.19.0: + resolution: {integrity: sha512-7SFSRCNjBQIZH/xZR3iy5iQYR8aGBE0h3VG6/cwlbrpdciNYBMotQav8c1XI3HjHH+NikUpP53nPdlZSdWmFzA==} + + fd-slicer@1.1.0: + resolution: {integrity: sha512-cE1qsB/VwyQozZ+q1dGxR8LBYNZeofhEdUNGSMbQD3Gw2lAzX9Zb3uIU6Ebc/Fmyjo9AWWfnn0AUCHqtevs/8g==} + + fetch-blob@3.2.0: + resolution: {integrity: sha512-7yAQpD2UMJzLi1Dqv7qFYnPbaPx7ZfFK6PiIxQ4PfkGPyNyl2Ugx+a/umUonmKqjhM4DnfbMvdX6otXq83soQQ==} + engines: {node: ^12.20 || >= 14.13} + + figures@6.1.0: + resolution: {integrity: sha512-d+l3qxjSesT4V7v2fh+QnmFnUWv9lSpjarhShNTgBOfA0ttejbQUAlHLitbjkoRiDulW0OPoQPYIGhIC8ohejg==} + engines: {node: '>=18'} + + file-entry-cache@8.0.0: + resolution: {integrity: sha512-XXTUwCvisa5oacNGRP9SfNtYBNAMi+RPwBFmblZEF7N7swHYQS6/Zfk7SRwx4D5j3CH211YNRco1DEMNVfZCnQ==} + engines: {node: '>=16.0.0'} + + fill-range@7.1.1: + resolution: {integrity: sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==} + engines: {node: '>=8'} + + find-up@5.0.0: + resolution: {integrity: sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==} + engines: {node: '>=10'} + + flat-cache@4.0.1: + resolution: {integrity: sha512-f7ccFPK3SXFHpx15UIGyRJ/FJQctuKZ0zVuN3frBo4HnK3cay9VEW0R6yPYFHC0AgqhukPzKjq22t5DmAyqGyw==} + engines: {node: '>=16'} + + flat@5.0.2: + resolution: {integrity: sha512-b6suED+5/3rTpUBdG1gupIl8MPFCAMA0QXwmljLhvCUKcUvdE4gWky9zpuGCcXHOsz4J9wPGNWq6OKpmIzz3hQ==} + hasBin: true + + flatted@3.3.2: + resolution: {integrity: sha512-AiwGJM8YcNOaobumgtng+6NHuOqC3A7MixFeDafM3X9cIUM+xUXoS5Vfgf+OihAYe20fxqNM9yPBXJzRtZ/4eA==} + + for-each@0.3.4: + resolution: {integrity: sha512-kKaIINnFpzW6ffJNDjjyjrk21BkDx38c0xa/klsT8VzLCaMEefv4ZTacrcVR4DmgTeBra++jMDAfS/tS799YDw==} + engines: {node: '>= 0.4'} + + formdata-polyfill@4.0.10: + resolution: {integrity: sha512-buewHzMvYL29jdeQTVILecSaZKnt/RJWjoZCF5OW60Z67/GmSLBkOFM7qh1PI3zFNtJbaZL5eQu1vLfazOwj4g==} + engines: {node: '>=12.20.0'} + + fs.realpath@1.0.0: + resolution: {integrity: sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==} + + fsevents@2.3.2: + resolution: {integrity: sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==} + engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0} + os: [darwin] + + fsevents@2.3.3: + resolution: {integrity: sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==} + engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0} + os: [darwin] + + function-bind@1.1.2: + resolution: {integrity: sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==} + + function.prototype.name@1.1.8: + resolution: {integrity: sha512-e5iwyodOHhbMr/yNrc7fDYG4qlbIvI5gajyzPnb5TCwyhjApznQh1BMFou9b30SevY43gCJKXycoCBjMbsuW0Q==} + engines: {node: '>= 0.4'} + + functions-have-names@1.2.3: + resolution: {integrity: sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==} + + get-caller-file@2.0.5: + resolution: {integrity: sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==} + engines: {node: 6.* || 8.* || >= 10.*} + + get-func-name@2.0.2: + resolution: {integrity: sha512-8vXOvuE167CtIc3OyItco7N/dpRtBbYOsPsXCz7X/PMnlGjYjSGuZJgM1Y7mmew7BKf9BqvLX2tnOVy1BBUsxQ==} + + get-intrinsic@1.2.7: + resolution: {integrity: sha512-VW6Pxhsrk0KAOqs3WEd0klDiF/+V7gQOpAvY1jVU/LHmaD/kQO4523aiJuikX/QAKYiW6x8Jh+RJej1almdtCA==} + engines: {node: '>= 0.4'} + + get-proto@1.0.1: + resolution: {integrity: sha512-sTSfBjoXBp89JvIKIefqw7U2CCebsc74kiY6awiGogKtoSGbgjYE/G/+l9sF3MWFPNc9IcoOC4ODfKHfxFmp0g==} + engines: {node: '>= 0.4'} + + get-stdin@8.0.0: + resolution: {integrity: sha512-sY22aA6xchAzprjyqmSEQv4UbAAzRN0L2dQB0NlN5acTTK9Don6nhoc3eAbUnpZiCANAMfd/+40kVdKfFygohg==} + engines: {node: '>=10'} + + get-stream@5.2.0: + resolution: {integrity: sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==} + engines: {node: '>=8'} + + get-stream@9.0.1: + resolution: {integrity: sha512-kVCxPF3vQM/N0B1PmoqVUqgHP+EeVjmZSQn+1oCRPxd2P21P2F19lIgbR3HBosbB1PUhOAoctJnfEn2GbN2eZA==} + engines: {node: '>=18'} + + get-symbol-description@1.1.0: + resolution: {integrity: sha512-w9UMqWwJxHNOvoNzSJ2oPF5wvYcvP7jUvYzhp67yEhTi17ZDBBC1z9pTdGuzjD+EFIqLSYRweZjqfiPzQ06Ebg==} + engines: {node: '>= 0.4'} + + get-tsconfig@4.10.0: + resolution: {integrity: sha512-kGzZ3LWWQcGIAmg6iWvXn0ei6WDtV26wzHRMwDSzmAbcXrTEXxHy6IehI6/4eT6VRKyMP1eF1VqwrVUmE/LR7A==} + + glob-parent@5.1.2: + resolution: {integrity: sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==} + engines: {node: '>= 6'} + + glob-parent@6.0.2: + resolution: {integrity: sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==} + engines: {node: '>=10.13.0'} + + glob@6.0.4: + resolution: {integrity: sha512-MKZeRNyYZAVVVG1oZeLaWie1uweH40m9AZwIwxyPbTSX4hHrVYSzLg0Ro5Z5R7XKkIX+Cc6oD1rqeDJnwsB8/A==} + deprecated: Glob versions prior to v9 are no longer supported + + glob@8.1.0: + resolution: {integrity: sha512-r8hpEjiQEYlF2QU0df3dS+nxxSIreXQS1qRhMJM0Q5NDdR386C7jb7Hwwod8Fgiuex+k0GFjgft18yvxm5XoCQ==} + engines: {node: '>=12'} + deprecated: Glob versions prior to v9 are no longer supported + + globals@14.0.0: + resolution: {integrity: sha512-oahGvuMGQlPw/ivIYBjVSrWAfWLBeku5tpPE2fOPLi+WHffIWbuh2tCjhyQhTBPMf5E9jDEH4FOmTYgYwbKwtQ==} + engines: {node: '>=18'} + + globals@15.14.0: + resolution: {integrity: sha512-OkToC372DtlQeje9/zHIo5CT8lRP/FUgEOKBEhU4e0abL7J7CD24fD9ohiLN5hagG/kWCYj4K5oaxxtj2Z0Dig==} + engines: {node: '>=18'} + + globalthis@1.0.4: + resolution: {integrity: sha512-DpLKbNU4WylpxJykQujfCcwYWiV/Jhm50Goo0wrVILAv5jOr9d+H+UR3PhSCD2rCCEIg0uc+G+muBTwD54JhDQ==} + engines: {node: '>= 0.4'} + + gopd@1.2.0: + resolution: {integrity: sha512-ZUKRh6/kUFoAiTAtTYPZJ3hw9wNxx+BIBOijnlG9PnrJsCcSjs1wyyD6vJpaYtgnzDrKYRSqf3OO6Rfa93xsRg==} + engines: {node: '>= 0.4'} + + graceful-fs@4.2.11: + resolution: {integrity: sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==} + + graphemer@1.4.0: + resolution: {integrity: sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==} + + has-bigints@1.1.0: + resolution: {integrity: sha512-R3pbpkcIqv2Pm3dUwgjclDRVmWpTJW2DcMzcIhEXEx1oh/CEMObMm3KLmRJOdvhM7o4uQBnwr8pzRK2sJWIqfg==} + engines: {node: '>= 0.4'} + + has-flag@4.0.0: + resolution: {integrity: sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==} + engines: {node: '>=8'} + + has-property-descriptors@1.0.2: + resolution: {integrity: sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg==} + + has-proto@1.2.0: + resolution: {integrity: sha512-KIL7eQPfHQRC8+XluaIw7BHUwwqL19bQn4hzNgdr+1wXoU0KKj6rufu47lhY7KbJR2C6T6+PfyN0Ea7wkSS+qQ==} + engines: {node: '>= 0.4'} + + has-symbols@1.1.0: + resolution: {integrity: sha512-1cDNdwJ2Jaohmb3sg4OmKaMBwuC48sYni5HUw2DvsC8LjGTLK9h+eb1X6RyuOHe4hT0ULCW68iomhjUoKUqlPQ==} + engines: {node: '>= 0.4'} + + has-tostringtag@1.0.2: + resolution: {integrity: sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw==} + engines: {node: '>= 0.4'} + + hasown@2.0.2: + resolution: {integrity: sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==} + engines: {node: '>= 0.4'} + + he@1.2.0: + resolution: {integrity: sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==} + hasBin: true + + human-signals@8.0.0: + resolution: {integrity: sha512-/1/GPCpDUCCYwlERiYjxoczfP0zfvZMU/OWgQPMya9AbAE24vseigFdhAMObpc8Q4lc/kjutPfUddDYyAmejnA==} + engines: {node: '>=18.18.0'} + + husky@9.1.7: + resolution: {integrity: sha512-5gs5ytaNjBrh5Ow3zrvdUUY+0VxIuWVL4i9irt6friV+BqdCfmV11CQTWMiBYWHbXhco+J1kHfTOUkePhCDvMA==} + engines: {node: '>=18'} + hasBin: true + + ignore@5.3.2: + resolution: {integrity: sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g==} + engines: {node: '>= 4'} + + import-fresh@3.3.0: + resolution: {integrity: sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==} + engines: {node: '>=6'} + + imurmurhash@0.1.4: + resolution: {integrity: sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==} + engines: {node: '>=0.8.19'} + + inflight@1.0.6: + resolution: {integrity: sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==} + deprecated: This module is not supported, and leaks memory. Do not use it. Check out lru-cache if you want a good and tested way to coalesce async requests by a key value, which is much more comprehensive and powerful. + + inherits@2.0.4: + resolution: {integrity: sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==} + + internal-slot@1.1.0: + resolution: {integrity: sha512-4gd7VpWNQNB4UKKCFFVcp1AVv+FMOgs9NKzjHKusc8jTMhd5eL1NqQqOpE0KzMds804/yHlglp3uxgluOqAPLw==} + engines: {node: '>= 0.4'} + + is-array-buffer@3.0.5: + resolution: {integrity: sha512-DDfANUiiG2wC1qawP66qlTugJeL5HyzMpfr8lLK+jMQirGzNod0B12cFB/9q838Ru27sBwfw78/rdoU7RERz6A==} + engines: {node: '>= 0.4'} + + is-async-function@2.1.1: + resolution: {integrity: sha512-9dgM/cZBnNvjzaMYHVoxxfPj2QXt22Ev7SuuPrs+xav0ukGB0S6d4ydZdEiM48kLx5kDV+QBPrpVnFyefL8kkQ==} + engines: {node: '>= 0.4'} + + is-bigint@1.1.0: + resolution: {integrity: sha512-n4ZT37wG78iz03xPRKJrHTdZbe3IicyucEtdRsV5yglwc3GyUfbAfpSeD0FJ41NbUNSt5wbhqfp1fS+BgnvDFQ==} + engines: {node: '>= 0.4'} + + is-binary-path@2.1.0: + resolution: {integrity: sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==} + engines: {node: '>=8'} + + is-boolean-object@1.2.1: + resolution: {integrity: sha512-l9qO6eFlUETHtuihLcYOaLKByJ1f+N4kthcU9YjHy3N+B3hWv0y/2Nd0mu/7lTFnRQHTrSdXF50HQ3bl5fEnng==} + engines: {node: '>= 0.4'} + + is-bun-module@1.3.0: + resolution: {integrity: sha512-DgXeu5UWI0IsMQundYb5UAOzm6G2eVnarJ0byP6Tm55iZNKceD59LNPA2L4VvsScTtHcw0yEkVwSf7PC+QoLSA==} + + is-callable@1.2.7: + resolution: {integrity: sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==} + engines: {node: '>= 0.4'} + + is-core-module@2.16.1: + resolution: {integrity: sha512-UfoeMA6fIJ8wTYFEUjelnaGI67v6+N7qXJEvQuIGa99l4xsCruSYOVSQ0uPANn4dAzm8lkYPaKLrrijLq7x23w==} + engines: {node: '>= 0.4'} + + is-data-view@1.0.2: + resolution: {integrity: sha512-RKtWF8pGmS87i2D6gqQu/l7EYRlVdfzemCJN/P3UOs//x1QE7mfhvzHIApBTRf7axvT6DMGwSwBXYCT0nfB9xw==} + engines: {node: '>= 0.4'} + + is-date-object@1.1.0: + resolution: {integrity: sha512-PwwhEakHVKTdRNVOw+/Gyh0+MzlCl4R6qKvkhuvLtPMggI1WAHt9sOwZxQLSGpUaDnrdyDsomoRgNnCfKNSXXg==} + engines: {node: '>= 0.4'} + + is-extglob@2.1.1: + resolution: {integrity: sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==} + engines: {node: '>=0.10.0'} + + is-finalizationregistry@1.1.1: + resolution: {integrity: sha512-1pC6N8qWJbWoPtEjgcL2xyhQOP491EQjeUo3qTKcmV8YSDDJrOepfG8pcC7h/QgnQHYSv0mJ3Z/ZWxmatVrysg==} + engines: {node: '>= 0.4'} + + is-fullwidth-code-point@3.0.0: + resolution: {integrity: sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==} + engines: {node: '>=8'} + + is-generator-function@1.1.0: + resolution: {integrity: sha512-nPUB5km40q9e8UfN/Zc24eLlzdSf9OfKByBw9CIdw4H1giPMeA0OIJvbchsCu4npfI2QcMVBsGEBHKZ7wLTWmQ==} + engines: {node: '>= 0.4'} + + is-glob@4.0.3: + resolution: {integrity: sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==} + engines: {node: '>=0.10.0'} + + is-map@2.0.3: + resolution: {integrity: sha512-1Qed0/Hr2m+YqxnM09CjA2d/i6YZNfF6R2oRAOj36eUdS6qIV/huPJNSEpKbupewFs+ZsJlxsjjPbc0/afW6Lw==} + engines: {node: '>= 0.4'} + + is-number-object@1.1.1: + resolution: {integrity: sha512-lZhclumE1G6VYD8VHe35wFaIif+CTy5SJIi5+3y4psDgWu4wPDoBhF8NxUOinEc7pHgiTsT6MaBb92rKhhD+Xw==} + engines: {node: '>= 0.4'} + + is-number@7.0.0: + resolution: {integrity: sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==} + engines: {node: '>=0.12.0'} + + is-plain-obj@2.1.0: + resolution: {integrity: sha512-YWnfyRwxL/+SsrWYfOpUtz5b3YD+nyfkHvjbcanzk8zgyO4ASD67uVMRt8k5bM4lLMDnXfriRhOpemw+NfT1eA==} + engines: {node: '>=8'} + + is-plain-obj@4.1.0: + resolution: {integrity: sha512-+Pgi+vMuUNkJyExiMBt5IlFoMyKnr5zhJ4Uspz58WOhBF5QoIZkFyNHIbBAtHwzVAgk5RtndVNsDRN61/mmDqg==} + engines: {node: '>=12'} + + is-regex@1.2.1: + resolution: {integrity: sha512-MjYsKHO5O7mCsmRGxWcLWheFqN9DJ/2TmngvjKXihe6efViPqc274+Fx/4fYj/r03+ESvBdTXK0V6tA3rgez1g==} + engines: {node: '>= 0.4'} + + is-set@2.0.3: + resolution: {integrity: sha512-iPAjerrse27/ygGLxw+EBR9agv9Y6uLeYVJMu+QNCoouJ1/1ri0mGrcWpfCqFZuzzx3WjtwxG098X+n4OuRkPg==} + engines: {node: '>= 0.4'} + + is-shared-array-buffer@1.0.4: + resolution: {integrity: sha512-ISWac8drv4ZGfwKl5slpHG9OwPNty4jOWPRIhBpxOoD+hqITiwuipOQ2bNthAzwA3B4fIjO4Nln74N0S9byq8A==} + engines: {node: '>= 0.4'} + + is-stream@4.0.1: + resolution: {integrity: sha512-Dnz92NInDqYckGEUJv689RbRiTSEHCQ7wOVeALbkOz999YpqT46yMRIGtSNl2iCL1waAZSx40+h59NV/EwzV/A==} + engines: {node: '>=18'} + + is-string@1.1.1: + resolution: {integrity: sha512-BtEeSsoaQjlSPBemMQIrY1MY0uM6vnS1g5fmufYOtnxLGUZM2178PKbhsk7Ffv58IX+ZtcvoGwccYsh0PglkAA==} + engines: {node: '>= 0.4'} + + is-symbol@1.1.1: + resolution: {integrity: sha512-9gGx6GTtCQM73BgmHQXfDmLtfjjTUDSyoxTCbp5WtoixAhfgsDirWIcVQ/IHpvI5Vgd5i/J5F7B9cN/WlVbC/w==} + engines: {node: '>= 0.4'} + + is-typed-array@1.1.15: + resolution: {integrity: sha512-p3EcsicXjit7SaskXHs1hA91QxgTw46Fv6EFKKGS5DRFLD8yKnohjF3hxoju94b/OcMZoQukzpPpBE9uLVKzgQ==} + engines: {node: '>= 0.4'} + + is-unicode-supported@0.1.0: + resolution: {integrity: sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw==} + engines: {node: '>=10'} + + is-unicode-supported@2.1.0: + resolution: {integrity: sha512-mE00Gnza5EEB3Ds0HfMyllZzbBrmLOX3vfWoj9A9PEnTfratQ/BcaJOuMhnkhjXvb2+FkY3VuHqtAGpTPmglFQ==} + engines: {node: '>=18'} + + is-weakmap@2.0.2: + resolution: {integrity: sha512-K5pXYOm9wqY1RgjpL3YTkF39tni1XajUIkawTLUo9EZEVUFga5gSQJF8nNS7ZwJQ02y+1YCNYcMh+HIf1ZqE+w==} + engines: {node: '>= 0.4'} + + is-weakref@1.1.0: + resolution: {integrity: sha512-SXM8Nwyys6nT5WP6pltOwKytLV7FqQ4UiibxVmW+EIosHcmCqkkjViTb5SNssDlkCiEYRP1/pdWUKVvZBmsR2Q==} + engines: {node: '>= 0.4'} + + is-weakset@2.0.4: + resolution: {integrity: sha512-mfcwb6IzQyOKTs84CQMrOwW4gQcaTOAWJ0zzJCl2WSPDrWk/OzDaImWFH3djXhb24g4eudZfLRozAvPGw4d9hQ==} + engines: {node: '>= 0.4'} + + isarray@2.0.5: + resolution: {integrity: sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==} + + isexe@2.0.0: + resolution: {integrity: sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==} + + iterator.prototype@1.1.5: + resolution: {integrity: sha512-H0dkQoCa3b2VEeKQBOxFph+JAbcrQdE7KC0UkqwpLmv2EC4P41QXP+rqo9wYodACiG5/WM5s9oDApTU8utwj9g==} + engines: {node: '>= 0.4'} + + js-tokens@4.0.0: + resolution: {integrity: sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==} + + js-yaml@4.1.0: + resolution: {integrity: sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==} + hasBin: true + + json-buffer@3.0.1: + resolution: {integrity: sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==} + + json-schema-traverse@0.4.1: + resolution: {integrity: sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==} + + json-stable-stringify-without-jsonify@1.0.1: + resolution: {integrity: sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==} + + json5@1.0.2: + resolution: {integrity: sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA==} + hasBin: true + + jsonc-parser@3.3.1: + resolution: {integrity: sha512-HUgH65KyejrUFPvHFPbqOY0rsFip3Bo5wb4ngvdi1EpCYWUQDC5V+Y7mZws+DLkr4M//zQJoanu1SP+87Dv1oQ==} + + jsox@1.2.121: + resolution: {integrity: sha512-9Ag50tKhpTwS6r5wh3MJSAvpSof0UBr39Pto8OnzFT32Z/pAbxAsKHzyvsyMEHVslELvHyO/4/jaQELHk8wDcw==} + hasBin: true + + jsx-ast-utils@3.3.5: + resolution: {integrity: sha512-ZZow9HBI5O6EPgSJLUb8n2NKgmVWTwCvHGwFuJlMjvLFqlGG6pjirPhtdsseaLZjSibD8eegzmYpUZwoIlj2cQ==} + engines: {node: '>=4.0'} + + just-install@2.0.2: + resolution: {integrity: sha512-zH6aon3V2P8ZbD+njaMB/orHsOyFMgONSpxKtbovNu7Bhb1rD9qhnMkT2Nj91++b9GgqHNbozhUdIMxecmWJaw==} + engines: {node: '>=18.0'} + hasBin: true + + keyv@4.5.4: + resolution: {integrity: sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==} + + language-subtag-registry@0.3.23: + resolution: {integrity: sha512-0K65Lea881pHotoGEa5gDlMxt3pctLi2RplBb7Ezh4rRdLEOtgi7n4EwK9lamnUCkKBqaeKRVebTq6BAxSkpXQ==} + + language-tags@1.0.9: + resolution: {integrity: sha512-MbjN408fEndfiQXbFQ1vnd+1NoLDsnQW41410oQBXiyXDMYH5z505juWa4KUE1LqxRC7DgOgZDbKLxHIwm27hA==} + engines: {node: '>=0.10'} + + levn@0.4.1: + resolution: {integrity: sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==} + engines: {node: '>= 0.8.0'} + + linguist-languages@7.27.0: + resolution: {integrity: sha512-Wzx/22c5Jsv2ag+uKy+ITanGA5hzvBZngrNGDXLTC7ZjGM6FLCYGgomauTkxNJeP9of353OM0pWqngYA180xgw==} + + locate-path@6.0.0: + resolution: {integrity: sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==} + engines: {node: '>=10'} + + lodash.merge@4.6.2: + resolution: {integrity: sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==} + + log-symbols@4.1.0: + resolution: {integrity: sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg==} + engines: {node: '>=10'} + + loose-envify@1.4.0: + resolution: {integrity: sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==} + hasBin: true + + loupe@2.3.7: + resolution: {integrity: sha512-zSMINGVYkdpYSOBmLi0D1Uo7JU9nVdQKrHxC8eYlV+9YKK9WePqAlL7lSlorG/U2Fw1w0hTBmaa/jrQ3UbPHtA==} + + math-intrinsics@1.1.0: + resolution: {integrity: sha512-/IXtbwEk5HTPyEwyKX6hGkYXxM9nbj64B+ilVJnC/R6B0pH5G4V3b0pVbL7DBj4tkhBAppbQUlf6F6Xl9LHu1g==} + engines: {node: '>= 0.4'} + + merge2@1.4.1: + resolution: {integrity: sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==} + engines: {node: '>= 8'} + + micromatch@4.0.8: + resolution: {integrity: sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==} + engines: {node: '>=8.6'} + + minimatch@3.1.2: + resolution: {integrity: sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==} + + minimatch@5.1.6: + resolution: {integrity: sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==} + engines: {node: '>=10'} + + minimatch@9.0.5: + resolution: {integrity: sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==} + engines: {node: '>=16 || 14 >=14.17'} + + minimist@1.2.8: + resolution: {integrity: sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==} + + mkdirp@0.5.6: + resolution: {integrity: sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==} + hasBin: true + + mocha@10.8.2: + resolution: {integrity: sha512-VZlYo/WE8t1tstuRmqgeyBgCbJc/lEdopaa+axcKzTBJ+UIdlAB9XnmvTCAH4pwR4ElNInaedhEBmZD8iCSVEg==} + engines: {node: '>= 14.0.0'} + hasBin: true + + moment@2.29.4: + resolution: {integrity: sha512-5LC9SOxjSc2HF6vO2CyuTDNivEdoz2IvyJJGj6X8DJ0eFyfszE0QiEd+iXmBvUP3WHxSjFH/vIsA0EN00cgr8w==} + + moo@0.5.2: + resolution: {integrity: sha512-iSAJLHYKnX41mKcJKjqvnAN9sf0LMDTXDEvFv+ffuRR9a1MIuXLjMNL6EsnDHSkKLTWNqQQ5uo61P4EbU4NU+Q==} + + ms@2.1.3: + resolution: {integrity: sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==} + + mv@2.1.1: + resolution: {integrity: sha512-at/ZndSy3xEGJ8i0ygALh8ru9qy7gWW1cmkaqBN29JmMlIvM//MEO9y1sk/avxuwnPcfhkejkLsuPxH81BrkSg==} + engines: {node: '>=0.8.0'} + + mvdan-sh@0.10.1: + resolution: {integrity: sha512-kMbrH0EObaKmK3nVRKUIIya1dpASHIEusM13S4V1ViHFuxuNxCo+arxoa6j/dbV22YBGjl7UKJm9QQKJ2Crzhg==} + + nan@2.14.2: + resolution: {integrity: sha512-M2ufzIiINKCuDfBSAUr1vWQ+vuVcA9kqx8JJUsbQi6yf1uGRyb7HfpdfUr5qLXf3B/t8dPvcjhKMmlfnP47EzQ==} + + natural-compare@1.4.0: + resolution: {integrity: sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==} + + ncp@2.0.0: + resolution: {integrity: sha512-zIdGUrPRFTUELUvr3Gmc7KZ2Sw/h1PiVM0Af/oHB6zgnV1ikqSfRk+TOufi79aHYCW3NiOXmr1BP5nWbzojLaA==} + hasBin: true + + nearley@2.20.1: + resolution: {integrity: sha512-+Mc8UaAebFzgV+KpI5n7DasuuQCHA89dmwm7JXw3TV43ukfNQ9DnBH3Mdb2g/I4Fdxc26pwimBWvjIw0UAILSQ==} + hasBin: true + + node-domexception@1.0.0: + resolution: {integrity: sha512-/jKZoMpw0F8GRwl4/eLROPA3cfcXtLApP0QzLmUT/HuPCZWyB7IY9ZrMeKw2O/nFIqPQB3PVM9aYm0F312AXDQ==} + engines: {node: '>=10.5.0'} + + node-fetch@3.3.2: + resolution: {integrity: sha512-dRB78srN/l6gqWulah9SrxeYnxeddIG30+GOqK/9OlLVyLg3HPnr6SqOWTWOXKRwC2eGYCkZ59NNuSgvSrpgOA==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + + node-sql-parser@4.18.0: + resolution: {integrity: sha512-2YEOR5qlI1zUFbGMLKNfsrR5JUvFg9LxIRVE+xJe962pfVLH0rnItqLzv96XVs1Y1UIR8FxsXAuvX/lYAWZ2BQ==} + engines: {node: '>=8'} + + normalize-path@3.0.0: + resolution: {integrity: sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==} + engines: {node: '>=0.10.0'} + + npm-run-path@6.0.0: + resolution: {integrity: sha512-9qny7Z9DsQU8Ou39ERsPU4OZQlSTP47ShQzuKZ6PRXpYLtIFgl/DEBYEXKlvcEa+9tHVcK8CF81Y2V72qaZhWA==} + engines: {node: '>=18'} + + object-assign@4.1.1: + resolution: {integrity: sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==} + engines: {node: '>=0.10.0'} + + object-inspect@1.13.3: + resolution: {integrity: sha512-kDCGIbxkDSXE3euJZZXzc6to7fCrKHNI/hSRQnRuQ+BWjFNzZwiFF8fj/6o2t2G9/jTj8PSIYTfCLelLZEeRpA==} + engines: {node: '>= 0.4'} + + object-keys@1.1.1: + resolution: {integrity: sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==} + engines: {node: '>= 0.4'} + + object.assign@4.1.7: + resolution: {integrity: sha512-nK28WOo+QIjBkDduTINE4JkF/UJJKyf2EJxvJKfblDpyg0Q+pkOHNTL0Qwy6NP6FhE/EnzV73BxxqcJaXY9anw==} + engines: {node: '>= 0.4'} + + object.entries@1.1.8: + resolution: {integrity: sha512-cmopxi8VwRIAw/fkijJohSfpef5PdN0pMQJN6VC/ZKvn0LIknWD8KtgY6KlQdEc4tIjcQ3HxSMmnvtzIscdaYQ==} + engines: {node: '>= 0.4'} + + object.fromentries@2.0.8: + resolution: {integrity: sha512-k6E21FzySsSK5a21KRADBd/NGneRegFO5pLHfdQLpRDETUNJueLXs3WCzyQ3tFRDYgbq3KHGXfTbi2bs8WQ6rQ==} + engines: {node: '>= 0.4'} + + object.groupby@1.0.3: + resolution: {integrity: sha512-+Lhy3TQTuzXI5hevh8sBGqbmurHbbIjAi0Z4S63nthVLmLxfbj4T54a4CfZrXIrt9iP4mVAPYMo/v99taj3wjQ==} + engines: {node: '>= 0.4'} + + object.values@1.2.1: + resolution: {integrity: sha512-gXah6aZrcUxjWg2zR2MwouP2eHlCBzdV4pygudehaKXSGW4v2AsRQUK+lwwXhii6KFZcunEnmSUoYp5CXibxtA==} + engines: {node: '>= 0.4'} + + once@1.4.0: + resolution: {integrity: sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==} + + optionator@0.9.4: + resolution: {integrity: sha512-6IpQ7mKUxRcZNLIObR0hz7lxsapSSIYNZJwXPGeF0mTVqGKFIXj1DQcMoT22S3ROcLyY/rz0PWaWZ9ayWmad9g==} + engines: {node: '>= 0.8.0'} + + own-keys@1.0.1: + resolution: {integrity: sha512-qFOyK5PjiWZd+QQIh+1jhdb9LpxTF0qs7Pm8o5QHYZ0M3vKqSqzsZaEB6oWlxZ+q2sJBMI/Ktgd2N5ZwQoRHfg==} + engines: {node: '>= 0.4'} + + p-limit@3.1.0: + resolution: {integrity: sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==} + engines: {node: '>=10'} + + p-locate@5.0.0: + resolution: {integrity: sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==} + engines: {node: '>=10'} + + parent-module@1.0.1: + resolution: {integrity: sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==} + engines: {node: '>=6'} + + parse-ms@4.0.0: + resolution: {integrity: sha512-TXfryirbmq34y8QBwgqCVLi+8oA3oWx2eAnSn62ITyEhEYaWRlVZ2DvMM9eZbMs/RfxPu/PK/aBLyGj4IrqMHw==} + engines: {node: '>=18'} + + path-exists@4.0.0: + resolution: {integrity: sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==} + engines: {node: '>=8'} + + path-is-absolute@1.0.1: + resolution: {integrity: sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==} + engines: {node: '>=0.10.0'} + + path-key@3.1.1: + resolution: {integrity: sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==} + engines: {node: '>=8'} + + path-key@4.0.0: + resolution: {integrity: sha512-haREypq7xkM7ErfgIyA0z+Bj4AGKlMSdlQE2jvJo6huWD1EdkKYV+G/T4nq0YEF2vgTT8kqMFKo1uHn950r4SQ==} + engines: {node: '>=12'} + + path-parse@1.0.7: + resolution: {integrity: sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==} + + pathval@1.1.1: + resolution: {integrity: sha512-Dp6zGqpTdETdR63lehJYPeIOqpiNBNtc7BpWSLrOje7UaIsE5aY92r/AunQA7rsXvet3lrJ3JnZX29UPTKXyKQ==} + + pend@1.2.0: + resolution: {integrity: sha512-F3asv42UuXchdzt+xXqfW1OGlVBe+mxa2mqI0pg5yAHZPvFmY3Y6drSf/GQ1A86WgWEN9Kzh/WrgKa6iGcHXLg==} + + php-parser@3.2.2: + resolution: {integrity: sha512-voj3rzCJmEbwHwH3QteON28wA6K+JbcaJEofyUZkUXmcViiXofjbSbcE5PtqtjX6nstnnAEYCFoRq0mkjP5/cg==} + + picomatch@2.3.1: + resolution: {integrity: sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==} + engines: {node: '>=8.6'} + + possible-typed-array-names@1.0.0: + resolution: {integrity: sha512-d7Uw+eZoloe0EHDIYoe+bQ5WXnGMOpmiZFTuMWCwpjzzkL2nTjcKiAk4hh8TjnGye2TwWOk3UXucZ+3rbmBa8Q==} + engines: {node: '>= 0.4'} + + prelude-ls@1.2.1: + resolution: {integrity: sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==} + engines: {node: '>= 0.8.0'} + + prettier-plugin-sh@0.14.0: + resolution: {integrity: sha512-hfXulj5+zEl/ulrO5kMuuTPKmXvOg0bnLHY1hKFNN/N+/903iZbNp8NyZBTsgI8dtkSgFfAEIQq0IQTyP1ZVFQ==} + engines: {node: '>=16.0.0'} + peerDependencies: + prettier: ^3.0.3 + + prettier-plugin-sql@0.18.1: + resolution: {integrity: sha512-2+Nob2sg7hzLAKJoE6sfgtkhBZCqOzrWHZPvE4Kee/e80oOyI4qwy9vypeltqNBJwTtq3uiKPrCxlT03bBpOaw==} + engines: {node: ^14.18.0 || >=16.0.0} + peerDependencies: + prettier: ^3.0.3 + + prettier-plugin-tailwindcss@0.6.11: + resolution: {integrity: sha512-YxaYSIvZPAqhrrEpRtonnrXdghZg1irNg4qrjboCXrpybLWVs55cW2N3juhspVJiO0JBvYJT8SYsJpc8OQSnsA==} + engines: {node: '>=14.21.3'} + peerDependencies: + '@ianvs/prettier-plugin-sort-imports': '*' + '@prettier/plugin-pug': '*' + '@shopify/prettier-plugin-liquid': '*' + '@trivago/prettier-plugin-sort-imports': '*' + '@zackad/prettier-plugin-twig': '*' + prettier: ^3.0 + prettier-plugin-astro: '*' + prettier-plugin-css-order: '*' + prettier-plugin-import-sort: '*' + prettier-plugin-jsdoc: '*' + prettier-plugin-marko: '*' + prettier-plugin-multiline-arrays: '*' + prettier-plugin-organize-attributes: '*' + prettier-plugin-organize-imports: '*' + prettier-plugin-sort-imports: '*' + prettier-plugin-style-order: '*' + prettier-plugin-svelte: '*' + peerDependenciesMeta: + '@ianvs/prettier-plugin-sort-imports': + optional: true + '@prettier/plugin-pug': + optional: true + '@shopify/prettier-plugin-liquid': + optional: true + '@trivago/prettier-plugin-sort-imports': + optional: true + '@zackad/prettier-plugin-twig': + optional: true + prettier-plugin-astro: + optional: true + prettier-plugin-css-order: + optional: true + prettier-plugin-import-sort: + optional: true + prettier-plugin-jsdoc: + optional: true + prettier-plugin-marko: + optional: true + prettier-plugin-multiline-arrays: + optional: true + prettier-plugin-organize-attributes: + optional: true + prettier-plugin-organize-imports: + optional: true + prettier-plugin-sort-imports: + optional: true + prettier-plugin-style-order: + optional: true + prettier-plugin-svelte: + optional: true + + prettier@3.4.2: + resolution: {integrity: sha512-e9MewbtFo+Fevyuxn/4rrcDAaq0IYxPGLvObpQjiZBMAzB9IGmzlnG9RZy3FFas+eBMu2vA0CszMeduow5dIuQ==} + engines: {node: '>=14'} + hasBin: true + + pretty-ms@9.2.0: + resolution: {integrity: sha512-4yf0QO/sllf/1zbZWYnvWw3NxCQwLXKzIj0G849LSufP15BXKM0rbD2Z3wVnkMfjdn/CB0Dpp444gYAACdsplg==} + engines: {node: '>=18'} + + prop-types@15.8.1: + resolution: {integrity: sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg==} + + proper-lockfile@4.1.2: + resolution: {integrity: sha512-TjNPblN4BwAWMXU8s9AEz4JmQxnD1NNL7bNOY/AKUzyamc379FWASUhc/K1pL2noVb+XmZKLL68cjzLsiOAMaA==} + + pump@3.0.2: + resolution: {integrity: sha512-tUPXtzlGM8FE3P0ZL6DVs/3P58k9nk8/jZeQCurTJylQA8qFYzHFfhBJkuqyE0FifOsQ0uKWekiZ5g8wtr28cw==} + + punycode@2.3.1: + resolution: {integrity: sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==} + engines: {node: '>=6'} + + querystringify@2.2.0: + resolution: {integrity: sha512-FIqgj2EUvTa7R50u0rGsyTftzjYmv/a3hO345bZNrqabNqjtgiDMgmo4mkUjd+nzU5oF3dClKqFIPUKybUyqoQ==} + + queue-microtask@1.2.3: + resolution: {integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==} + + railroad-diagrams@1.0.0: + resolution: {integrity: sha512-cz93DjNeLY0idrCNOH6PviZGRN9GJhsdm9hpn1YCS879fj4W+x5IFJhhkRZcwVgMmFF7R82UA/7Oh+R8lLZg6A==} + + randexp@0.4.6: + resolution: {integrity: sha512-80WNmd9DA0tmZrw9qQa62GPPWfuXJknrmVmLcxvq4uZBdYqb1wYoKTmnlGUchvVWe0XiLupYkBoXVOxz3C8DYQ==} + engines: {node: '>=0.12'} + + randombytes@2.1.0: + resolution: {integrity: sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==} + + react-is@16.13.1: + resolution: {integrity: sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==} + + readdirp@3.6.0: + resolution: {integrity: sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==} + engines: {node: '>=8.10.0'} + + reflect.getprototypeof@1.0.10: + resolution: {integrity: sha512-00o4I+DVrefhv+nX0ulyi3biSHCPDe+yLv5o/p6d/UVlirijB8E16FtfwSAi4g3tcqrQ4lRAqQSoFEZJehYEcw==} + engines: {node: '>= 0.4'} + + regexp-to-ast@0.5.0: + resolution: {integrity: sha512-tlbJqcMHnPKI9zSrystikWKwHkBqu2a/Sgw01h3zFjvYrMxEDYHzzoMZnUrbIfpTFEsoRnnviOXNCzFiSc54Qw==} + + regexp.prototype.flags@1.5.4: + resolution: {integrity: sha512-dYqgNSZbDwkaJ2ceRd9ojCGjBq+mOm9LmtXnAnEGyHhN/5R7iDW2TRw3h+o/jCFxus3P2LfWIIiwowAjANm7IA==} + engines: {node: '>= 0.4'} + + require-directory@2.1.1: + resolution: {integrity: sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==} + engines: {node: '>=0.10.0'} + + requires-port@1.0.0: + resolution: {integrity: sha512-KigOCHcocU3XODJxsu8i/j8T9tzT4adHiecwORRQ0ZZFcp7ahwXuRU1m+yuO90C5ZUyGeGfocHDI14M3L3yDAQ==} + + resolve-from@4.0.0: + resolution: {integrity: sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==} + engines: {node: '>=4'} + + resolve-pkg-maps@1.0.0: + resolution: {integrity: sha512-seS2Tj26TBVOC2NIc2rOe2y2ZO7efxITtLZcGSOnHHNOQ7CkiUBfw0Iw2ck6xkIhPwLhKNLS8BO+hEpngQlqzw==} + + resolve@1.22.10: + resolution: {integrity: sha512-NPRy+/ncIMeDlTAsuqwKIiferiawhefFJtkNSW0qZJEqMEb+qBt/77B/jGeeek+F0uOeN05CDa6HXbbIgtVX4w==} + engines: {node: '>= 0.4'} + hasBin: true + + resolve@2.0.0-next.5: + resolution: {integrity: sha512-U7WjGVG9sH8tvjW5SmGbQuui75FiyjAX72HX15DwBBwF9dNiQZRQAg9nnPhYy+TUnE0+VcrttuvNI8oSxZcocA==} + hasBin: true + + ret@0.1.15: + resolution: {integrity: sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg==} + engines: {node: '>=0.12'} + + retry@0.12.0: + resolution: {integrity: sha512-9LkiTwjUh6rT555DtE9rTX+BKByPfrMzEAtnlEtdEwr3Nkffwiihqe2bWADg+OQRjt9gl6ICdmB/ZFDCGAtSow==} + engines: {node: '>= 4'} + + reusify@1.0.4: + resolution: {integrity: sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==} + engines: {iojs: '>=1.0.0', node: '>=0.10.0'} + + rimraf@2.4.5: + resolution: {integrity: sha512-J5xnxTyqaiw06JjMftq7L9ouA448dw/E7dKghkP9WpKNuwmARNNg+Gk8/u5ryb9N/Yo2+z3MCwuqFK/+qPOPfQ==} + deprecated: Rimraf versions prior to v4 are no longer supported + hasBin: true + + run-parallel@1.2.0: + resolution: {integrity: sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==} + + rust-just-darwin-arm64@1.39.0: + resolution: {integrity: sha512-rD/0eWJOj96Akfad++hExtTsVzLHb4+NWSSNej2steZZL9gvL/SRgJbJAkSH4FVJfqlgU9RKpS8YonRtZ/9Wfw==} + cpu: [arm64] + os: [darwin] + + rust-just-darwin-x64@1.39.0: + resolution: {integrity: sha512-WUbpENaMUxnN4Dt0eMFiwFJaeS/vU3Z7RygFm6PPpUVj3frZJckwUqacboghnQfXe2qLsBdoO3KOz0heOTVhPw==} + cpu: [x64] + os: [darwin] + + rust-just-linux-arm64@1.39.0: + resolution: {integrity: sha512-oFeYzWiLYuuTMbeJdmQvPpf6JluW6dN6Isw1J54bdJU1gkbEtq9zMvAaq0Jz6Ia+kyhhQtLJEzvFaDpnlv+8/Q==} + cpu: [arm64] + os: [linux] + + rust-just-linux-arm@1.39.0: + resolution: {integrity: sha512-srTb9czEk7vVnCdll6gV72JhIIXq9AcPyMydY1g9KwtlxHl9CyH7iwxppcm6ZdWfrcGfMwPXvr/9xs3rFmTdmA==} + cpu: [arm] + os: [linux] + + rust-just-linux-x64@1.39.0: + resolution: {integrity: sha512-lLPWXxif1BbtzKyUnEsLjbVwiHWt7kdvx6tK+cVnBXUyg6WmBP2RptP70Cbor2dg+pYtVpoBHGJUN4boELeoKg==} + cpu: [x64] + os: [linux] + + rust-just-windows-arm64@1.39.0: + resolution: {integrity: sha512-R7kGs6QwJNUjd3r59dYzRqoh0240hmoOdp7yvujnezdA8QWgtbsBMYPdSvsT42xTbAB1KrqLH/WBzNCwZgTIIQ==} + cpu: [arm64] + os: [win32] + + rust-just-windows-x64@1.39.0: + resolution: {integrity: sha512-Tf0C+phIIv4kI79XMsyz2HJqKdPW8AqrCkLVH0iFKWuAA/ukxRxwDCCIwOucrsB7lSdTr12TRppixWT5ZD5CcQ==} + cpu: [x64] + os: [win32] + + rust-just@1.39.0: + resolution: {integrity: sha512-Bzx+I4SA1zV7LR5Ple1NaP1ycnKIj/D3VvHoQfVeL4au/O9tsxVkquqfcMQUA15u4wA86tsQ/xJD1luv0NCxjg==} + engines: {node: '>=18.19 || >=20.6 || >=21'} + hasBin: true + + safe-array-concat@1.1.3: + resolution: {integrity: sha512-AURm5f0jYEOydBj7VQlVvDrjeFgthDdEF5H1dP+6mNpoXOMo1quQqJ4wvJDyRZ9+pO3kGWoOdmV08cSv2aJV6Q==} + engines: {node: '>=0.4'} + + safe-buffer@5.1.2: + resolution: {integrity: sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==} + + safe-json-stringify@1.2.0: + resolution: {integrity: sha512-gH8eh2nZudPQO6TytOvbxnuhYBOvDBBLW52tz5q6X58lJcd/tkmqFR+5Z9adS8aJtURSXWThWy/xJtJwixErvg==} + + safe-push-apply@1.0.0: + resolution: {integrity: sha512-iKE9w/Z7xCzUMIZqdBsp6pEQvwuEebH4vdpjcDWnyzaI6yl6O9FHvVpmGelvEHNsoY6wGblkxR6Zty/h00WiSA==} + engines: {node: '>= 0.4'} + + safe-regex-test@1.1.0: + resolution: {integrity: sha512-x/+Cz4YrimQxQccJf5mKEbIa1NzeCRNI5Ecl/ekmlYaampdNLPalVyIcCZNNH3MvmqBugV5TMYZXv0ljslUlaw==} + engines: {node: '>= 0.4'} + + semver@6.3.1: + resolution: {integrity: sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==} + hasBin: true + + semver@7.7.0: + resolution: {integrity: sha512-DrfFnPzblFmNrIZzg5RzHegbiRWg7KMR7btwi2yjHwx06zsUbO5g613sVwEV7FTwmzJu+Io0lJe2GJ3LxqpvBQ==} + engines: {node: '>=10'} + hasBin: true + + serialize-javascript@6.0.2: + resolution: {integrity: sha512-Saa1xPByTTq2gdeFZYLLo+RFE35NHZkAbqZeWNd3BpzppeVisAqpDjcp8dyf6uIvEqJRd46jemmyA4iFIeVk8g==} + + set-function-length@1.2.2: + resolution: {integrity: sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg==} + engines: {node: '>= 0.4'} + + set-function-name@2.0.2: + resolution: {integrity: sha512-7PGFlmtwsEADb0WYyvCMa1t+yke6daIG4Wirafur5kcf+MhUnPms1UeR0CKQdTZD81yESwMHbtn+TR+dMviakQ==} + engines: {node: '>= 0.4'} + + set-proto@1.0.0: + resolution: {integrity: sha512-RJRdvCo6IAnPdsvP/7m6bsQqNnn1FCBX5ZNtFL98MmFF/4xAIJTIg1YbHW5DC2W5SKZanrC6i4HsJqlajw/dZw==} + engines: {node: '>= 0.4'} + + sh-syntax@0.4.2: + resolution: {integrity: sha512-/l2UZ5fhGZLVZa16XQM9/Vq/hezGGbdHeVEA01uWjOL1+7Ek/gt6FquW0iKKws4a9AYPYvlz6RyVvjh3JxOteg==} + engines: {node: '>=16.0.0'} + + shebang-command@2.0.0: + resolution: {integrity: sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==} + engines: {node: '>=8'} + + shebang-regex@3.0.0: + resolution: {integrity: sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==} + engines: {node: '>=8'} + + side-channel-list@1.0.0: + resolution: {integrity: sha512-FCLHtRD/gnpCiCHEiJLOwdmFP+wzCmDEkc9y7NsYxeF4u7Btsn1ZuwgwJGxImImHicJArLP4R0yX4c2KCrMrTA==} + engines: {node: '>= 0.4'} + + side-channel-map@1.0.1: + resolution: {integrity: sha512-VCjCNfgMsby3tTdo02nbjtM/ewra6jPHmpThenkTYh8pG9ucZ/1P8So4u4FGBek/BjpOVsDCMoLA/iuBKIFXRA==} + engines: {node: '>= 0.4'} + + side-channel-weakmap@1.0.2: + resolution: {integrity: sha512-WPS/HvHQTYnHisLo9McqBHOJk2FkHO/tlpvldyrnem4aeQp4hai3gythswg6p01oSoTl58rcpiFAjF2br2Ak2A==} + engines: {node: '>= 0.4'} + + side-channel@1.1.0: + resolution: {integrity: sha512-ZX99e6tRweoUXqR+VBrslhda51Nh5MTQwou5tnUDgbtyM0dBgmhEDtWGP/xbKn6hqfPRHujUNwz5fy/wbbhnpw==} + engines: {node: '>= 0.4'} + + signal-exit@3.0.7: + resolution: {integrity: sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==} + + signal-exit@4.1.0: + resolution: {integrity: sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==} + engines: {node: '>=14'} + + sql-formatter@15.4.10: + resolution: {integrity: sha512-zQfiuxU1F/C7TNu+880BdL+fuvJTd1Kj8R0wv48dfZ27NR3z1PWvQFkH8ai/HrIy+NyvXCaZBkJHp/EeZFXSOA==} + hasBin: true + + stable-hash@0.0.4: + resolution: {integrity: sha512-LjdcbuBeLcdETCrPn9i8AYAZ1eCtu4ECAWtP7UleOiZ9LzVxRzzUZEoZ8zB24nhkQnDWyET0I+3sWokSDS3E7g==} + + string-width@4.2.3: + resolution: {integrity: sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==} + engines: {node: '>=8'} + + string.prototype.includes@2.0.1: + resolution: {integrity: sha512-o7+c9bW6zpAdJHTtujeePODAhkuicdAryFsfVKwA+wGw89wJ4GTY484WTucM9hLtDEOpOvI+aHnzqnC5lHp4Rg==} + engines: {node: '>= 0.4'} + + string.prototype.matchall@4.0.12: + resolution: {integrity: sha512-6CC9uyBL+/48dYizRf7H7VAYCMCNTBeM78x/VTUe9bFEaxBepPJDa1Ow99LqI/1yF7kuy7Q3cQsYMrcjGUcskA==} + engines: {node: '>= 0.4'} + + string.prototype.repeat@1.0.0: + resolution: {integrity: sha512-0u/TldDbKD8bFCQ/4f5+mNRrXwZ8hg2w7ZR8wa16e8z9XpePWl3eGEcUD0OXpEH/VJH/2G3gjUtR3ZOiBe2S/w==} + + string.prototype.trim@1.2.10: + resolution: {integrity: sha512-Rs66F0P/1kedk5lyYyH9uBzuiI/kNRmwJAR9quK6VOtIpZ2G+hMZd+HQbbv25MgCA6gEffoMZYxlTod4WcdrKA==} + engines: {node: '>= 0.4'} + + string.prototype.trimend@1.0.9: + resolution: {integrity: sha512-G7Ok5C6E/j4SGfyLCloXTrngQIQU3PWtXGst3yM7Bea9FRURf1S42ZHlZZtsNque2FN2PoUhfZXYLNWwEr4dLQ==} + engines: {node: '>= 0.4'} + + string.prototype.trimstart@1.0.8: + resolution: {integrity: sha512-UXSH262CSZY1tfu3G3Secr6uGLCFVPMhIqHjlgCUtCCcgihYc/xKs9djMTMUOb2j1mVSeU8EU6NWc/iQKU6Gfg==} + engines: {node: '>= 0.4'} + + strip-ansi@6.0.1: + resolution: {integrity: sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==} + engines: {node: '>=8'} + + strip-bom@3.0.0: + resolution: {integrity: sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==} + engines: {node: '>=4'} + + strip-final-newline@4.0.0: + resolution: {integrity: sha512-aulFJcD6YK8V1G7iRB5tigAP4TsHBZZrOV8pjV++zdUwmeV8uzbY7yn6h9MswN62adStNZFuCIx4haBnRuMDaw==} + engines: {node: '>=18'} + + strip-json-comments@3.1.1: + resolution: {integrity: sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==} + engines: {node: '>=8'} + + supports-color@7.2.0: + resolution: {integrity: sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==} + engines: {node: '>=8'} + + supports-color@8.1.1: + resolution: {integrity: sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==} + engines: {node: '>=10'} + + supports-preserve-symlinks-flag@1.0.0: + resolution: {integrity: sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==} + engines: {node: '>= 0.4'} + + tapable@2.2.1: + resolution: {integrity: sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ==} + engines: {node: '>=6'} + + to-regex-range@5.0.1: + resolution: {integrity: sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==} + engines: {node: '>=8.0'} + + ts-api-utils@2.0.1: + resolution: {integrity: sha512-dnlgjFSVetynI8nzgJ+qF62efpglpWRk8isUEWZGWlJYySCTD6aKvbUDu+zbPeDakk3bg5H4XpitHukgfL1m9w==} + engines: {node: '>=18.12'} + peerDependencies: + typescript: '>=4.8.4' + + tsconfig-paths@3.15.0: + resolution: {integrity: sha512-2Ac2RgzDe/cn48GvOe3M+o82pEFewD3UPbyoUHHdKasHwJKjds4fLXWf/Ux5kATBKN20oaFGu+jbElp1pos0mg==} + + tslib@2.8.1: + resolution: {integrity: sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==} + + type-check@0.4.0: + resolution: {integrity: sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==} + engines: {node: '>= 0.8.0'} + + type-detect@4.1.0: + resolution: {integrity: sha512-Acylog8/luQ8L7il+geoSxhEkazvkslg7PSNKOX59mbB9cOveP5aq9h74Y7YU8yDpJwetzQQrfIwtf4Wp4LKcw==} + engines: {node: '>=4'} + + typed-array-buffer@1.0.3: + resolution: {integrity: sha512-nAYYwfY3qnzX30IkA6AQZjVbtK6duGontcQm1WSG1MD94YLqK0515GNApXkoxKOWMusVssAHWLh9SeaoefYFGw==} + engines: {node: '>= 0.4'} + + typed-array-byte-length@1.0.3: + resolution: {integrity: sha512-BaXgOuIxz8n8pIq3e7Atg/7s+DpiYrxn4vdot3w9KbnBhcRQq6o3xemQdIfynqSeXeDrF32x+WvfzmOjPiY9lg==} + engines: {node: '>= 0.4'} + + typed-array-byte-offset@1.0.4: + resolution: {integrity: sha512-bTlAFB/FBYMcuX81gbL4OcpH5PmlFHqlCCpAl8AlEzMz5k53oNDvN8p1PNOWLEmI2x4orp3raOFB51tv9X+MFQ==} + engines: {node: '>= 0.4'} + + typed-array-length@1.0.7: + resolution: {integrity: sha512-3KS2b+kL7fsuk/eJZ7EQdnEmQoaho/r6KUef7hxvltNA5DR8NAUM+8wJMbJyZ4G9/7i3v5zPBIMN5aybAh2/Jg==} + engines: {node: '>= 0.4'} + + typescript-eslint@8.22.0: + resolution: {integrity: sha512-Y2rj210FW1Wb6TWXzQc5+P+EWI9/zdS57hLEc0gnyuvdzWo8+Y8brKlbj0muejonhMI/xAZCnZZwjbIfv1CkOw==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + peerDependencies: + eslint: ^8.57.0 || ^9.0.0 + typescript: '>=4.8.4 <5.8.0' + + typescript@5.7.3: + resolution: {integrity: sha512-84MVSjMEHP+FQRPy3pX9sTVV/INIex71s9TL2Gm5FG/WG1SqXeKyZ0k7/blY/4FdOzI12CBy1vGc4og/eus0fw==} + engines: {node: '>=14.17'} + hasBin: true + + unbox-primitive@1.1.0: + resolution: {integrity: sha512-nWJ91DjeOkej/TA8pXQ3myruKpKEYgqvpw9lz4OPHj/NWFNluYrjbz9j01CJ8yKQd2g4jFoOkINCTW2I5LEEyw==} + engines: {node: '>= 0.4'} + + undici-types@6.20.0: + resolution: {integrity: sha512-Ny6QZ2Nju20vw1SRHe3d9jVu6gJ+4e3+MMpqu7pqE5HT6WsTSlce++GQmK5UXS8mzV8DSYHrQH+Xrf2jVcuKNg==} + + unicorn-magic@0.3.0: + resolution: {integrity: sha512-+QBBXBCvifc56fsbuxZQ6Sic3wqqc3WWaqxs58gvJrcOuN83HGTCwz3oS5phzU9LthRNE9VrJCFCLUgHeeFnfA==} + engines: {node: '>=18'} + + uri-js@4.4.1: + resolution: {integrity: sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==} + + url-parse@1.5.10: + resolution: {integrity: sha512-WypcfiRhfeUP9vvF0j6rw0J3hrWrw6iZv3+22h6iRMJ/8z1Tj6XfLP4DsUix5MhMPnXpiHDoKyoZ/bdCkwBCiQ==} + + web-streams-polyfill@3.3.3: + resolution: {integrity: sha512-d2JWLCivmZYTSIoge9MsgFCZrt571BikcWGYkjC1khllbTeDlGqZ2D8vD8E/lJa8WGWbb7Plm8/XJYV7IJHZZw==} + engines: {node: '>= 8'} + + which-boxed-primitive@1.1.1: + resolution: {integrity: sha512-TbX3mj8n0odCBFVlY8AxkqcHASw3L60jIuF8jFP78az3C2YhmGvqbHBpAjTRH2/xqYunrJ9g1jSyjCjpoWzIAA==} + engines: {node: '>= 0.4'} + + which-builtin-type@1.2.1: + resolution: {integrity: sha512-6iBczoX+kDQ7a3+YJBnh3T+KZRxM/iYNPXicqk66/Qfm1b93iu+yOImkg0zHbj5LNOcNv1TEADiZ0xa34B4q6Q==} + engines: {node: '>= 0.4'} + + which-collection@1.0.2: + resolution: {integrity: sha512-K4jVyjnBdgvc86Y6BkaLZEN933SwYOuBFkdmBu9ZfkcAbdVbpITnDmjvZ/aQjRXQrv5EPkTnD1s39GiiqbngCw==} + engines: {node: '>= 0.4'} + + which-typed-array@1.1.18: + resolution: {integrity: sha512-qEcY+KJYlWyLH9vNbsr6/5j59AXk5ni5aakf8ldzBvGde6Iz4sxZGkJyWSAueTG7QhOvNRYb1lDdFmL5Td0QKA==} + engines: {node: '>= 0.4'} + + which@2.0.2: + resolution: {integrity: sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==} + engines: {node: '>= 8'} + hasBin: true + + wireit@0.14.10: + resolution: {integrity: sha512-Y9wiNU92PcyfTcXRYzqjmilKl4Yfg30Jk/dwTN0e64JCkzoIP2QVo6gc8fjYK0gpL0/pq2IW+iMlknHLmLV+MQ==} + engines: {node: '>=18.0.0'} + hasBin: true + + word-wrap@1.2.5: + resolution: {integrity: sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA==} + engines: {node: '>=0.10.0'} + + workerpool@6.5.1: + resolution: {integrity: sha512-Fs4dNYcsdpYSAfVxhnl1L5zTksjvOJxtC5hzMNl+1t9B8hTJTdKDyZ5ju7ztgPy+ft9tBFXoOlDNiOT9WUXZlA==} + + wrap-ansi@7.0.0: + resolution: {integrity: sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==} + engines: {node: '>=10'} + + wrappy@1.0.2: + resolution: {integrity: sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==} + + y18n@5.0.8: + resolution: {integrity: sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==} + engines: {node: '>=10'} + + yargs-parser@20.2.9: + resolution: {integrity: sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==} + engines: {node: '>=10'} + + yargs-parser@21.1.1: + resolution: {integrity: sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==} + engines: {node: '>=12'} + + yargs-unparser@2.0.0: + resolution: {integrity: sha512-7pRTIA9Qc1caZ0bZ6RYRGbHJthJWuakf+WmHK0rVeLkNrrGhfoabBNdue6kdINI6r4if7ocq9aD/n7xwKOdzOA==} + engines: {node: '>=10'} + + yargs@16.2.0: + resolution: {integrity: sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==} + engines: {node: '>=10'} + + yargs@17.7.2: + resolution: {integrity: sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==} + engines: {node: '>=12'} + + yauzl@2.10.0: + resolution: {integrity: sha512-p4a9I6X6nu6IhoGmBqAcbJy1mlC4j27vEPZX9F4L4/vZT3Lyq1VkFHw/V/PUcB9Buo+DG3iHkT0x3Qya58zc3g==} + + yocto-queue@0.1.0: + resolution: {integrity: sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==} + engines: {node: '>=10'} + + yoctocolors@2.1.1: + resolution: {integrity: sha512-GQHQqAopRhwU8Kt1DDM8NjibDXHC8eoh1erhGAJPEyveY9qqVeXvVikNKrDz69sHowPMorbPUrH/mx8c50eiBQ==} + engines: {node: '>=18'} + +snapshots: + + '@acuminous/bitsyntax@0.1.2': + dependencies: + buffer-more-ints: 1.0.0 + debug: 4.3.7(supports-color@8.1.1) + safe-buffer: 5.1.2 + transitivePeerDependencies: + - supports-color + + '@eslint-community/eslint-utils@4.4.1(eslint@9.19.0)': + dependencies: + eslint: 9.19.0 + eslint-visitor-keys: 3.4.3 + + '@eslint-community/regexpp@4.12.1': {} + + '@eslint/config-array@0.19.2': + dependencies: + '@eslint/object-schema': 2.1.6 + debug: 4.4.0 + minimatch: 3.1.2 + transitivePeerDependencies: + - supports-color + + '@eslint/core@0.10.0': + dependencies: + '@types/json-schema': 7.0.15 + + '@eslint/eslintrc@3.2.0': + dependencies: + ajv: 6.12.6 + debug: 4.4.0 + espree: 10.3.0 + globals: 14.0.0 + ignore: 5.3.2 + import-fresh: 3.3.0 + js-yaml: 4.1.0 + minimatch: 3.1.2 + strip-json-comments: 3.1.1 + transitivePeerDependencies: + - supports-color + + '@eslint/js@9.19.0': {} + + '@eslint/object-schema@2.1.6': {} + + '@eslint/plugin-kit@0.2.5': + dependencies: + '@eslint/core': 0.10.0 + levn: 0.4.1 + + '@humanfs/core@0.19.1': {} + + '@humanfs/node@0.16.6': + dependencies: + '@humanfs/core': 0.19.1 + '@humanwhocodes/retry': 0.3.1 + + '@humanwhocodes/module-importer@1.0.1': {} + + '@humanwhocodes/retry@0.3.1': {} + + '@humanwhocodes/retry@0.4.1': {} + + '@nodelib/fs.scandir@2.1.5': + dependencies: + '@nodelib/fs.stat': 2.0.5 + run-parallel: 1.2.0 + + '@nodelib/fs.stat@2.0.5': {} + + '@nodelib/fs.walk@1.2.8': + dependencies: + '@nodelib/fs.scandir': 2.1.5 + fastq: 1.19.0 + + '@nolyfill/is-core-module@1.0.39': {} + + '@popperjs/core@2.11.8': {} + + '@prettier/plugin-php@0.22.4(prettier@3.4.2)': + dependencies: + linguist-languages: 7.27.0 + php-parser: 3.2.2 + prettier: 3.4.2 + + '@prettier/plugin-xml@3.4.1(prettier@3.4.2)': + dependencies: + '@xml-tools/parser': 1.0.11 + prettier: 3.4.2 + + '@rtsao/scc@1.1.0': {} + + '@sec-ant/readable-stream@0.4.1': {} + + '@sindresorhus/merge-streams@4.0.0': {} + + '@tyisi/config-eslint@4.0.0(@typescript-eslint/parser@8.22.0(eslint@9.19.0)(typescript@5.7.3))(eslint@9.19.0)(prettier@3.4.2)(typescript@5.7.3)': + dependencies: + '@eslint/js': 9.19.0 + deepmerge: 4.3.1 + eslint: 9.19.0 + eslint-config-love: 87.0.0(@typescript-eslint/parser@8.22.0(eslint@9.19.0)(typescript@5.7.3))(eslint-import-resolver-typescript@3.7.0(eslint-plugin-import@2.31.0(@typescript-eslint/parser@8.22.0(eslint@9.19.0)(typescript@5.7.3))(eslint@9.19.0))(eslint@9.19.0))(eslint@9.19.0)(typescript@5.7.3) + eslint-config-prettier: 9.1.0(eslint@9.19.0) + eslint-import-resolver-typescript: 3.7.0(eslint-plugin-import@2.31.0(@typescript-eslint/parser@8.22.0(eslint@9.19.0)(typescript@5.7.3))(eslint@9.19.0))(eslint@9.19.0) + eslint-plugin-import: 2.31.0(@typescript-eslint/parser@8.22.0(eslint@9.19.0)(typescript@5.7.3))(eslint-import-resolver-typescript@3.7.0(eslint-plugin-import@2.31.0(@typescript-eslint/parser@8.22.0(eslint@9.19.0)(typescript@5.7.3))(eslint@9.19.0))(eslint@9.19.0))(eslint@9.19.0) + eslint-plugin-jsx-a11y: 6.10.2(eslint@9.19.0) + eslint-plugin-react: 7.37.4(eslint@9.19.0) + globals: 15.14.0 + prettier: 3.4.2 + rust-just: 1.39.0 + transitivePeerDependencies: + - '@typescript-eslint/parser' + - eslint-import-resolver-webpack + - eslint-plugin-import-x + - supports-color + - typescript + + '@tyisi/config-prettier@1.0.1(prettier@3.4.2)': + dependencies: + prettier: 3.4.2 + prettier-plugin-sh: 0.14.0(prettier@3.4.2) + prettier-plugin-tailwindcss: 0.6.11(prettier@3.4.2) + transitivePeerDependencies: + - '@ianvs/prettier-plugin-sort-imports' + - '@prettier/plugin-pug' + - '@shopify/prettier-plugin-liquid' + - '@trivago/prettier-plugin-sort-imports' + - '@zackad/prettier-plugin-twig' + - prettier-plugin-astro + - prettier-plugin-css-order + - prettier-plugin-import-sort + - prettier-plugin-jsdoc + - prettier-plugin-marko + - prettier-plugin-multiline-arrays + - prettier-plugin-organize-attributes + - prettier-plugin-organize-imports + - prettier-plugin-sort-imports + - prettier-plugin-style-order + - prettier-plugin-svelte + + '@types/angular@1.8.9': {} + + '@types/bootstrap@5.2.10': + dependencies: + '@popperjs/core': 2.11.8 + + '@types/estree@1.0.6': {} + + '@types/jquery@3.5.32': + dependencies: + '@types/sizzle': 2.3.9 + + '@types/json-schema@7.0.15': {} + + '@types/json5@0.0.29': {} + + '@types/lodash@4.17.15': {} + + '@types/node@22.13.0': + dependencies: + undici-types: 6.20.0 + optional: true + + '@types/sizzle@2.3.9': {} + + '@types/yauzl@2.10.3': + dependencies: + '@types/node': 22.13.0 + optional: true + + '@typescript-eslint/eslint-plugin@8.22.0(@typescript-eslint/parser@8.22.0(eslint@9.19.0)(typescript@5.7.3))(eslint@9.19.0)(typescript@5.7.3)': + dependencies: + '@eslint-community/regexpp': 4.12.1 + '@typescript-eslint/parser': 8.22.0(eslint@9.19.0)(typescript@5.7.3) + '@typescript-eslint/scope-manager': 8.22.0 + '@typescript-eslint/type-utils': 8.22.0(eslint@9.19.0)(typescript@5.7.3) + '@typescript-eslint/utils': 8.22.0(eslint@9.19.0)(typescript@5.7.3) + '@typescript-eslint/visitor-keys': 8.22.0 + eslint: 9.19.0 + graphemer: 1.4.0 + ignore: 5.3.2 + natural-compare: 1.4.0 + ts-api-utils: 2.0.1(typescript@5.7.3) + typescript: 5.7.3 + transitivePeerDependencies: + - supports-color + + '@typescript-eslint/parser@8.22.0(eslint@9.19.0)(typescript@5.7.3)': + dependencies: + '@typescript-eslint/scope-manager': 8.22.0 + '@typescript-eslint/types': 8.22.0 + '@typescript-eslint/typescript-estree': 8.22.0(typescript@5.7.3) + '@typescript-eslint/visitor-keys': 8.22.0 + debug: 4.3.7(supports-color@8.1.1) + eslint: 9.19.0 + typescript: 5.7.3 + transitivePeerDependencies: + - supports-color + + '@typescript-eslint/scope-manager@8.22.0': + dependencies: + '@typescript-eslint/types': 8.22.0 + '@typescript-eslint/visitor-keys': 8.22.0 + + '@typescript-eslint/type-utils@8.22.0(eslint@9.19.0)(typescript@5.7.3)': + dependencies: + '@typescript-eslint/typescript-estree': 8.22.0(typescript@5.7.3) + '@typescript-eslint/utils': 8.22.0(eslint@9.19.0)(typescript@5.7.3) + debug: 4.3.7(supports-color@8.1.1) + eslint: 9.19.0 + ts-api-utils: 2.0.1(typescript@5.7.3) + typescript: 5.7.3 + transitivePeerDependencies: + - supports-color + + '@typescript-eslint/types@8.22.0': {} + + '@typescript-eslint/typescript-estree@8.22.0(typescript@5.7.3)': + dependencies: + '@typescript-eslint/types': 8.22.0 + '@typescript-eslint/visitor-keys': 8.22.0 + debug: 4.3.7(supports-color@8.1.1) + fast-glob: 3.3.3 + is-glob: 4.0.3 + minimatch: 9.0.5 + semver: 7.7.0 + ts-api-utils: 2.0.1(typescript@5.7.3) + typescript: 5.7.3 + transitivePeerDependencies: + - supports-color + + '@typescript-eslint/utils@8.22.0(eslint@9.19.0)(typescript@5.7.3)': + dependencies: + '@eslint-community/eslint-utils': 4.4.1(eslint@9.19.0) + '@typescript-eslint/scope-manager': 8.22.0 + '@typescript-eslint/types': 8.22.0 + '@typescript-eslint/typescript-estree': 8.22.0(typescript@5.7.3) + eslint: 9.19.0 + typescript: 5.7.3 + transitivePeerDependencies: + - supports-color + + '@typescript-eslint/visitor-keys@8.22.0': + dependencies: + '@typescript-eslint/types': 8.22.0 + eslint-visitor-keys: 4.2.0 + + '@xml-tools/parser@1.0.11': + dependencies: + chevrotain: 7.1.1 + + acorn-jsx@5.3.2(acorn@8.14.0): + dependencies: + acorn: 8.14.0 + + acorn@8.14.0: {} + + ajv@6.12.6: + dependencies: + fast-deep-equal: 3.1.3 + fast-json-stable-stringify: 2.1.0 + json-schema-traverse: 0.4.1 + uri-js: 4.4.1 + + amqplib@0.10.5: + dependencies: + '@acuminous/bitsyntax': 0.1.2 + buffer-more-ints: 1.0.0 + url-parse: 1.5.10 + transitivePeerDependencies: + - supports-color + + ansi-colors@4.1.3: {} + + ansi-regex@5.0.1: {} + + ansi-styles@4.3.0: + dependencies: + color-convert: 2.0.1 + + anymatch@3.1.3: + dependencies: + normalize-path: 3.0.0 + picomatch: 2.3.1 + + argparse@2.0.1: {} + + aria-query@5.3.2: {} + + array-buffer-byte-length@1.0.2: + dependencies: + call-bound: 1.0.3 + is-array-buffer: 3.0.5 + + array-includes@3.1.8: + dependencies: + call-bind: 1.0.8 + define-properties: 1.2.1 + es-abstract: 1.23.9 + es-object-atoms: 1.1.1 + get-intrinsic: 1.2.7 + is-string: 1.1.1 + + array.prototype.findlast@1.2.5: + dependencies: + call-bind: 1.0.8 + define-properties: 1.2.1 + es-abstract: 1.23.9 + es-errors: 1.3.0 + es-object-atoms: 1.1.1 + es-shim-unscopables: 1.0.2 + + array.prototype.findlastindex@1.2.5: + dependencies: + call-bind: 1.0.8 + define-properties: 1.2.1 + es-abstract: 1.23.9 + es-errors: 1.3.0 + es-object-atoms: 1.1.1 + es-shim-unscopables: 1.0.2 + + array.prototype.flat@1.3.3: + dependencies: + call-bind: 1.0.8 + define-properties: 1.2.1 + es-abstract: 1.23.9 + es-shim-unscopables: 1.0.2 + + array.prototype.flatmap@1.3.3: + dependencies: + call-bind: 1.0.8 + define-properties: 1.2.1 + es-abstract: 1.23.9 + es-shim-unscopables: 1.0.2 + + array.prototype.tosorted@1.1.4: + dependencies: + call-bind: 1.0.8 + define-properties: 1.2.1 + es-abstract: 1.23.9 + es-errors: 1.3.0 + es-shim-unscopables: 1.0.2 + + arraybuffer.prototype.slice@1.0.4: + dependencies: + array-buffer-byte-length: 1.0.2 + call-bind: 1.0.8 + define-properties: 1.2.1 + es-abstract: 1.23.9 + es-errors: 1.3.0 + get-intrinsic: 1.2.7 + is-array-buffer: 3.0.5 + + assertion-error@1.1.0: {} + + ast-types-flow@0.0.8: {} + + async-function@1.0.0: {} + + available-typed-arrays@1.0.7: + dependencies: + possible-typed-array-names: 1.0.0 + + axe-core@4.10.2: {} + + axobject-query@4.1.0: {} + + balanced-match@1.0.0: {} + + balanced-match@1.0.2: {} + + balanced-match@3.0.1: {} + + big-integer@1.6.52: {} + + binary-extensions@2.3.0: {} + + bower@1.8.14: {} + + brace-expansion@1.1.11: + dependencies: + balanced-match: 1.0.2 + concat-map: 0.0.1 + + brace-expansion@2.0.1: + dependencies: + balanced-match: 1.0.0 + + brace-expansion@4.0.0: + dependencies: + balanced-match: 3.0.1 + + braces@3.0.3: + dependencies: + fill-range: 7.1.1 + + browser-stdout@1.3.1: {} + + buffer-crc32@0.2.13: {} + + buffer-more-ints@1.0.0: {} + + bunyan@1.8.15: + optionalDependencies: + dtrace-provider: 0.8.8 + moment: 2.29.4 + mv: 2.1.1 + safe-json-stringify: 1.2.0 + + call-bind-apply-helpers@1.0.1: + dependencies: + es-errors: 1.3.0 + function-bind: 1.1.2 + + call-bind@1.0.8: + dependencies: + call-bind-apply-helpers: 1.0.1 + es-define-property: 1.0.1 + get-intrinsic: 1.2.7 + set-function-length: 1.2.2 + + call-bound@1.0.3: + dependencies: + call-bind-apply-helpers: 1.0.1 + get-intrinsic: 1.2.7 + + callsites@3.1.0: {} + + camelcase@6.2.0: {} + + chai@4.5.0: + dependencies: + assertion-error: 1.1.0 + check-error: 1.0.3 + deep-eql: 4.1.4 + get-func-name: 2.0.2 + loupe: 2.3.7 + pathval: 1.1.1 + type-detect: 4.1.0 + + chalk@4.1.2: + dependencies: + ansi-styles: 4.3.0 + supports-color: 7.2.0 + + check-error@1.0.3: + dependencies: + get-func-name: 2.0.2 + + chevrotain@7.1.1: + dependencies: + regexp-to-ast: 0.5.0 + + chokidar@3.5.3: + dependencies: + anymatch: 3.1.3 + braces: 3.0.3 + glob-parent: 5.1.2 + is-binary-path: 2.1.0 + is-glob: 4.0.3 + normalize-path: 3.0.0 + readdirp: 3.6.0 + optionalDependencies: + fsevents: 2.3.2 + + chokidar@3.6.0: + dependencies: + anymatch: 3.1.3 + braces: 3.0.3 + glob-parent: 5.1.2 + is-binary-path: 2.1.0 + is-glob: 4.0.3 + normalize-path: 3.0.0 + readdirp: 3.6.0 + optionalDependencies: + fsevents: 2.3.3 + + cliui@7.0.4: + dependencies: + string-width: 4.2.3 + strip-ansi: 6.0.1 + wrap-ansi: 7.0.0 + + cliui@8.0.1: + dependencies: + string-width: 4.2.3 + strip-ansi: 6.0.1 + wrap-ansi: 7.0.0 + + color-convert@2.0.1: + dependencies: + color-name: 1.1.4 + + color-name@1.1.4: {} + + commander@12.1.0: {} + + commander@2.20.3: {} + + concat-map@0.0.1: {} + + cross-spawn@7.0.6: + dependencies: + path-key: 3.1.1 + shebang-command: 2.0.0 + which: 2.0.2 + + daemon@1.1.0: {} + + damerau-levenshtein@1.0.8: {} + + data-uri-to-buffer@4.0.1: {} + + data-view-buffer@1.0.2: + dependencies: + call-bound: 1.0.3 + es-errors: 1.3.0 + is-data-view: 1.0.2 + + data-view-byte-length@1.0.2: + dependencies: + call-bound: 1.0.3 + es-errors: 1.3.0 + is-data-view: 1.0.2 + + data-view-byte-offset@1.0.1: + dependencies: + call-bound: 1.0.3 + es-errors: 1.3.0 + is-data-view: 1.0.2 + + debug@3.2.7: + dependencies: + ms: 2.1.3 + + debug@4.3.7(supports-color@8.1.1): + dependencies: + ms: 2.1.3 + optionalDependencies: + supports-color: 8.1.1 + + debug@4.4.0: + dependencies: + ms: 2.1.3 + + decamelize@4.0.0: {} + + deep-eql@4.1.4: + dependencies: + type-detect: 4.1.0 + + deep-is@0.1.4: {} + + deepmerge@4.3.1: {} + + define-data-property@1.1.4: + dependencies: + es-define-property: 1.0.1 + es-errors: 1.3.0 + gopd: 1.2.0 + + define-properties@1.2.1: + dependencies: + define-data-property: 1.1.4 + has-property-descriptors: 1.0.2 + object-keys: 1.1.1 + + diff@5.2.0: {} + + discontinuous-range@1.0.0: {} + + doctrine@2.1.0: + dependencies: + esutils: 2.0.3 + + dtrace-provider@0.8.8: + dependencies: + nan: 2.14.2 + optional: true + + dunder-proto@1.0.1: + dependencies: + call-bind-apply-helpers: 1.0.1 + es-errors: 1.3.0 + gopd: 1.2.0 + + emoji-regex@8.0.0: {} + + emoji-regex@9.2.2: {} + + end-of-stream@1.4.4: + dependencies: + once: 1.4.0 + + enhanced-resolve@5.18.0: + dependencies: + graceful-fs: 4.2.11 + tapable: 2.2.1 + + es-abstract@1.23.9: + dependencies: + array-buffer-byte-length: 1.0.2 + arraybuffer.prototype.slice: 1.0.4 + available-typed-arrays: 1.0.7 + call-bind: 1.0.8 + call-bound: 1.0.3 + data-view-buffer: 1.0.2 + data-view-byte-length: 1.0.2 + data-view-byte-offset: 1.0.1 + es-define-property: 1.0.1 + es-errors: 1.3.0 + es-object-atoms: 1.1.1 + es-set-tostringtag: 2.1.0 + es-to-primitive: 1.3.0 + function.prototype.name: 1.1.8 + get-intrinsic: 1.2.7 + get-proto: 1.0.1 + get-symbol-description: 1.1.0 + globalthis: 1.0.4 + gopd: 1.2.0 + has-property-descriptors: 1.0.2 + has-proto: 1.2.0 + has-symbols: 1.1.0 + hasown: 2.0.2 + internal-slot: 1.1.0 + is-array-buffer: 3.0.5 + is-callable: 1.2.7 + is-data-view: 1.0.2 + is-regex: 1.2.1 + is-shared-array-buffer: 1.0.4 + is-string: 1.1.1 + is-typed-array: 1.1.15 + is-weakref: 1.1.0 + math-intrinsics: 1.1.0 + object-inspect: 1.13.3 + object-keys: 1.1.1 + object.assign: 4.1.7 + own-keys: 1.0.1 + regexp.prototype.flags: 1.5.4 + safe-array-concat: 1.1.3 + safe-push-apply: 1.0.0 + safe-regex-test: 1.1.0 + set-proto: 1.0.0 + string.prototype.trim: 1.2.10 + string.prototype.trimend: 1.0.9 + string.prototype.trimstart: 1.0.8 + typed-array-buffer: 1.0.3 + typed-array-byte-length: 1.0.3 + typed-array-byte-offset: 1.0.4 + typed-array-length: 1.0.7 + unbox-primitive: 1.1.0 + which-typed-array: 1.1.18 + + es-define-property@1.0.1: {} + + es-errors@1.3.0: {} + + es-iterator-helpers@1.2.1: + dependencies: + call-bind: 1.0.8 + call-bound: 1.0.3 + define-properties: 1.2.1 + es-abstract: 1.23.9 + es-errors: 1.3.0 + es-set-tostringtag: 2.1.0 + function-bind: 1.1.2 + get-intrinsic: 1.2.7 + globalthis: 1.0.4 + gopd: 1.2.0 + has-property-descriptors: 1.0.2 + has-proto: 1.2.0 + has-symbols: 1.1.0 + internal-slot: 1.1.0 + iterator.prototype: 1.1.5 + safe-array-concat: 1.1.3 + + es-object-atoms@1.1.1: + dependencies: + es-errors: 1.3.0 + + es-set-tostringtag@2.1.0: + dependencies: + es-errors: 1.3.0 + get-intrinsic: 1.2.7 + has-tostringtag: 1.0.2 + hasown: 2.0.2 + + es-shim-unscopables@1.0.2: + dependencies: + hasown: 2.0.2 + + es-to-primitive@1.3.0: + dependencies: + is-callable: 1.2.7 + is-date-object: 1.1.0 + is-symbol: 1.1.1 + + escalade@3.1.1: {} + + escalade@3.2.0: {} + + escape-string-regexp@4.0.0: {} + + eslint-compat-utils@0.5.1(eslint@9.19.0): + dependencies: + eslint: 9.19.0 + semver: 7.7.0 + + eslint-config-love@87.0.0(@typescript-eslint/parser@8.22.0(eslint@9.19.0)(typescript@5.7.3))(eslint-import-resolver-typescript@3.7.0(eslint-plugin-import@2.31.0(@typescript-eslint/parser@8.22.0(eslint@9.19.0)(typescript@5.7.3))(eslint@9.19.0))(eslint@9.19.0))(eslint@9.19.0)(typescript@5.7.3): + dependencies: + '@typescript-eslint/utils': 8.22.0(eslint@9.19.0)(typescript@5.7.3) + eslint: 9.19.0 + eslint-plugin-import: 2.31.0(@typescript-eslint/parser@8.22.0(eslint@9.19.0)(typescript@5.7.3))(eslint-import-resolver-typescript@3.7.0(eslint-plugin-import@2.31.0(@typescript-eslint/parser@8.22.0(eslint@9.19.0)(typescript@5.7.3))(eslint@9.19.0))(eslint@9.19.0))(eslint@9.19.0) + eslint-plugin-n: 17.15.1(eslint@9.19.0) + eslint-plugin-promise: 7.2.1(eslint@9.19.0) + typescript: 5.7.3 + typescript-eslint: 8.22.0(eslint@9.19.0)(typescript@5.7.3) + transitivePeerDependencies: + - '@typescript-eslint/parser' + - eslint-import-resolver-typescript + - eslint-import-resolver-webpack + - supports-color + + eslint-config-prettier@9.1.0(eslint@9.19.0): + dependencies: + eslint: 9.19.0 + + eslint-import-resolver-node@0.3.9: + dependencies: + debug: 3.2.7 + is-core-module: 2.16.1 + resolve: 1.22.10 + transitivePeerDependencies: + - supports-color + + eslint-import-resolver-typescript@3.7.0(eslint-plugin-import@2.31.0(@typescript-eslint/parser@8.22.0(eslint@9.19.0)(typescript@5.7.3))(eslint@9.19.0))(eslint@9.19.0): + dependencies: + '@nolyfill/is-core-module': 1.0.39 + debug: 4.4.0 + enhanced-resolve: 5.18.0 + eslint: 9.19.0 + fast-glob: 3.3.3 + get-tsconfig: 4.10.0 + is-bun-module: 1.3.0 + is-glob: 4.0.3 + stable-hash: 0.0.4 + optionalDependencies: + eslint-plugin-import: 2.31.0(@typescript-eslint/parser@8.22.0(eslint@9.19.0)(typescript@5.7.3))(eslint-import-resolver-typescript@3.7.0(eslint-plugin-import@2.31.0(@typescript-eslint/parser@8.22.0(eslint@9.19.0)(typescript@5.7.3))(eslint@9.19.0))(eslint@9.19.0))(eslint@9.19.0) + transitivePeerDependencies: + - supports-color + + eslint-module-utils@2.12.0(@typescript-eslint/parser@8.22.0(eslint@9.19.0)(typescript@5.7.3))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.7.0(eslint-plugin-import@2.31.0(@typescript-eslint/parser@8.22.0(eslint@9.19.0)(typescript@5.7.3))(eslint@9.19.0))(eslint@9.19.0))(eslint@9.19.0): + dependencies: + debug: 3.2.7 + optionalDependencies: + '@typescript-eslint/parser': 8.22.0(eslint@9.19.0)(typescript@5.7.3) + eslint: 9.19.0 + eslint-import-resolver-node: 0.3.9 + eslint-import-resolver-typescript: 3.7.0(eslint-plugin-import@2.31.0(@typescript-eslint/parser@8.22.0(eslint@9.19.0)(typescript@5.7.3))(eslint@9.19.0))(eslint@9.19.0) + transitivePeerDependencies: + - supports-color + + eslint-plugin-es-x@7.8.0(eslint@9.19.0): + dependencies: + '@eslint-community/eslint-utils': 4.4.1(eslint@9.19.0) + '@eslint-community/regexpp': 4.12.1 + eslint: 9.19.0 + eslint-compat-utils: 0.5.1(eslint@9.19.0) + + eslint-plugin-import@2.31.0(@typescript-eslint/parser@8.22.0(eslint@9.19.0)(typescript@5.7.3))(eslint-import-resolver-typescript@3.7.0(eslint-plugin-import@2.31.0(@typescript-eslint/parser@8.22.0(eslint@9.19.0)(typescript@5.7.3))(eslint@9.19.0))(eslint@9.19.0))(eslint@9.19.0): + dependencies: + '@rtsao/scc': 1.1.0 + array-includes: 3.1.8 + array.prototype.findlastindex: 1.2.5 + array.prototype.flat: 1.3.3 + array.prototype.flatmap: 1.3.3 + debug: 3.2.7 + doctrine: 2.1.0 + eslint: 9.19.0 + eslint-import-resolver-node: 0.3.9 + eslint-module-utils: 2.12.0(@typescript-eslint/parser@8.22.0(eslint@9.19.0)(typescript@5.7.3))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.7.0(eslint-plugin-import@2.31.0(@typescript-eslint/parser@8.22.0(eslint@9.19.0)(typescript@5.7.3))(eslint@9.19.0))(eslint@9.19.0))(eslint@9.19.0) + hasown: 2.0.2 + is-core-module: 2.16.1 + is-glob: 4.0.3 + minimatch: 3.1.2 + object.fromentries: 2.0.8 + object.groupby: 1.0.3 + object.values: 1.2.1 + semver: 6.3.1 + string.prototype.trimend: 1.0.9 + tsconfig-paths: 3.15.0 + optionalDependencies: + '@typescript-eslint/parser': 8.22.0(eslint@9.19.0)(typescript@5.7.3) + transitivePeerDependencies: + - eslint-import-resolver-typescript + - eslint-import-resolver-webpack + - supports-color + + eslint-plugin-jsx-a11y@6.10.2(eslint@9.19.0): + dependencies: + aria-query: 5.3.2 + array-includes: 3.1.8 + array.prototype.flatmap: 1.3.3 + ast-types-flow: 0.0.8 + axe-core: 4.10.2 + axobject-query: 4.1.0 + damerau-levenshtein: 1.0.8 + emoji-regex: 9.2.2 + eslint: 9.19.0 + hasown: 2.0.2 + jsx-ast-utils: 3.3.5 + language-tags: 1.0.9 + minimatch: 3.1.2 + object.fromentries: 2.0.8 + safe-regex-test: 1.1.0 + string.prototype.includes: 2.0.1 + + eslint-plugin-n@17.15.1(eslint@9.19.0): + dependencies: + '@eslint-community/eslint-utils': 4.4.1(eslint@9.19.0) + enhanced-resolve: 5.18.0 + eslint: 9.19.0 + eslint-plugin-es-x: 7.8.0(eslint@9.19.0) + get-tsconfig: 4.10.0 + globals: 15.14.0 + ignore: 5.3.2 + minimatch: 9.0.5 + semver: 7.7.0 + + eslint-plugin-promise@7.2.1(eslint@9.19.0): + dependencies: + '@eslint-community/eslint-utils': 4.4.1(eslint@9.19.0) + eslint: 9.19.0 + + eslint-plugin-react@7.37.4(eslint@9.19.0): + dependencies: + array-includes: 3.1.8 + array.prototype.findlast: 1.2.5 + array.prototype.flatmap: 1.3.3 + array.prototype.tosorted: 1.1.4 + doctrine: 2.1.0 + es-iterator-helpers: 1.2.1 + eslint: 9.19.0 + estraverse: 5.3.0 + hasown: 2.0.2 + jsx-ast-utils: 3.3.5 + minimatch: 3.1.2 + object.entries: 1.1.8 + object.fromentries: 2.0.8 + object.values: 1.2.1 + prop-types: 15.8.1 + resolve: 2.0.0-next.5 + semver: 6.3.1 + string.prototype.matchall: 4.0.12 + string.prototype.repeat: 1.0.0 + + eslint-scope@8.2.0: + dependencies: + esrecurse: 4.3.0 + estraverse: 5.3.0 + + eslint-visitor-keys@3.4.3: {} + + eslint-visitor-keys@4.2.0: {} + + eslint@9.19.0: + dependencies: + '@eslint-community/eslint-utils': 4.4.1(eslint@9.19.0) + '@eslint-community/regexpp': 4.12.1 + '@eslint/config-array': 0.19.2 + '@eslint/core': 0.10.0 + '@eslint/eslintrc': 3.2.0 + '@eslint/js': 9.19.0 + '@eslint/plugin-kit': 0.2.5 + '@humanfs/node': 0.16.6 + '@humanwhocodes/module-importer': 1.0.1 + '@humanwhocodes/retry': 0.4.1 + '@types/estree': 1.0.6 + '@types/json-schema': 7.0.15 + ajv: 6.12.6 + chalk: 4.1.2 + cross-spawn: 7.0.6 + debug: 4.4.0 + escape-string-regexp: 4.0.0 + eslint-scope: 8.2.0 + eslint-visitor-keys: 4.2.0 + espree: 10.3.0 + esquery: 1.6.0 + esutils: 2.0.3 + fast-deep-equal: 3.1.3 + file-entry-cache: 8.0.0 + find-up: 5.0.0 + glob-parent: 6.0.2 + ignore: 5.3.2 + imurmurhash: 0.1.4 + is-glob: 4.0.3 + json-stable-stringify-without-jsonify: 1.0.1 + lodash.merge: 4.6.2 + minimatch: 3.1.2 + natural-compare: 1.4.0 + optionator: 0.9.4 + transitivePeerDependencies: + - supports-color + + espree@10.3.0: + dependencies: + acorn: 8.14.0 + acorn-jsx: 5.3.2(acorn@8.14.0) + eslint-visitor-keys: 4.2.0 + + esquery@1.6.0: + dependencies: + estraverse: 5.3.0 + + esrecurse@4.3.0: + dependencies: + estraverse: 5.3.0 + + estraverse@5.3.0: {} + + esutils@2.0.3: {} + + execa@9.5.2: + dependencies: + '@sindresorhus/merge-streams': 4.0.0 + cross-spawn: 7.0.6 + figures: 6.1.0 + get-stream: 9.0.1 + human-signals: 8.0.0 + is-plain-obj: 4.1.0 + is-stream: 4.0.1 + npm-run-path: 6.0.0 + pretty-ms: 9.2.0 + signal-exit: 4.1.0 + strip-final-newline: 4.0.0 + yoctocolors: 2.1.1 + + extract-zip@2.0.1: + dependencies: + debug: 4.4.0 + get-stream: 5.2.0 + yauzl: 2.10.0 + optionalDependencies: + '@types/yauzl': 2.10.3 + transitivePeerDependencies: + - supports-color + + fast-deep-equal@3.1.3: {} + + fast-glob@3.3.3: + dependencies: + '@nodelib/fs.stat': 2.0.5 + '@nodelib/fs.walk': 1.2.8 + glob-parent: 5.1.2 + merge2: 1.4.1 + micromatch: 4.0.8 + + fast-json-stable-stringify@2.1.0: {} + + fast-levenshtein@2.0.6: {} + + fastq@1.19.0: + dependencies: + reusify: 1.0.4 + + fd-slicer@1.1.0: + dependencies: + pend: 1.2.0 + + fetch-blob@3.2.0: + dependencies: + node-domexception: 1.0.0 + web-streams-polyfill: 3.3.3 + + figures@6.1.0: + dependencies: + is-unicode-supported: 2.1.0 + + file-entry-cache@8.0.0: + dependencies: + flat-cache: 4.0.1 + + fill-range@7.1.1: + dependencies: + to-regex-range: 5.0.1 + + find-up@5.0.0: + dependencies: + locate-path: 6.0.0 + path-exists: 4.0.0 + + flat-cache@4.0.1: + dependencies: + flatted: 3.3.2 + keyv: 4.5.4 + + flat@5.0.2: {} + + flatted@3.3.2: {} + + for-each@0.3.4: + dependencies: + is-callable: 1.2.7 + + formdata-polyfill@4.0.10: + dependencies: + fetch-blob: 3.2.0 + + fs.realpath@1.0.0: {} + + fsevents@2.3.2: + optional: true + + fsevents@2.3.3: + optional: true + + function-bind@1.1.2: {} + + function.prototype.name@1.1.8: + dependencies: + call-bind: 1.0.8 + call-bound: 1.0.3 + define-properties: 1.2.1 + functions-have-names: 1.2.3 + hasown: 2.0.2 + is-callable: 1.2.7 + + functions-have-names@1.2.3: {} + + get-caller-file@2.0.5: {} + + get-func-name@2.0.2: {} + + get-intrinsic@1.2.7: + dependencies: + call-bind-apply-helpers: 1.0.1 + es-define-property: 1.0.1 + es-errors: 1.3.0 + es-object-atoms: 1.1.1 + function-bind: 1.1.2 + get-proto: 1.0.1 + gopd: 1.2.0 + has-symbols: 1.1.0 + hasown: 2.0.2 + math-intrinsics: 1.1.0 + + get-proto@1.0.1: + dependencies: + dunder-proto: 1.0.1 + es-object-atoms: 1.1.1 + + get-stdin@8.0.0: {} + + get-stream@5.2.0: + dependencies: + pump: 3.0.2 + + get-stream@9.0.1: + dependencies: + '@sec-ant/readable-stream': 0.4.1 + is-stream: 4.0.1 + + get-symbol-description@1.1.0: + dependencies: + call-bound: 1.0.3 + es-errors: 1.3.0 + get-intrinsic: 1.2.7 + + get-tsconfig@4.10.0: + dependencies: + resolve-pkg-maps: 1.0.0 + + glob-parent@5.1.2: + dependencies: + is-glob: 4.0.3 + + glob-parent@6.0.2: + dependencies: + is-glob: 4.0.3 + + glob@6.0.4: + dependencies: + inflight: 1.0.6 + inherits: 2.0.4 + minimatch: 3.1.2 + once: 1.4.0 + path-is-absolute: 1.0.1 + optional: true + + glob@8.1.0: + dependencies: + fs.realpath: 1.0.0 + inflight: 1.0.6 + inherits: 2.0.4 + minimatch: 5.1.6 + once: 1.4.0 + + globals@14.0.0: {} + + globals@15.14.0: {} + + globalthis@1.0.4: + dependencies: + define-properties: 1.2.1 + gopd: 1.2.0 + + gopd@1.2.0: {} + + graceful-fs@4.2.11: {} + + graphemer@1.4.0: {} + + has-bigints@1.1.0: {} + + has-flag@4.0.0: {} + + has-property-descriptors@1.0.2: + dependencies: + es-define-property: 1.0.1 + + has-proto@1.2.0: + dependencies: + dunder-proto: 1.0.1 + + has-symbols@1.1.0: {} + + has-tostringtag@1.0.2: + dependencies: + has-symbols: 1.1.0 + + hasown@2.0.2: + dependencies: + function-bind: 1.1.2 + + he@1.2.0: {} + + human-signals@8.0.0: {} + + husky@9.1.7: {} + + ignore@5.3.2: {} + + import-fresh@3.3.0: + dependencies: + parent-module: 1.0.1 + resolve-from: 4.0.0 + + imurmurhash@0.1.4: {} + + inflight@1.0.6: + dependencies: + once: 1.4.0 + wrappy: 1.0.2 + + inherits@2.0.4: {} + + internal-slot@1.1.0: + dependencies: + es-errors: 1.3.0 + hasown: 2.0.2 + side-channel: 1.1.0 + + is-array-buffer@3.0.5: + dependencies: + call-bind: 1.0.8 + call-bound: 1.0.3 + get-intrinsic: 1.2.7 + + is-async-function@2.1.1: + dependencies: + async-function: 1.0.0 + call-bound: 1.0.3 + get-proto: 1.0.1 + has-tostringtag: 1.0.2 + safe-regex-test: 1.1.0 + + is-bigint@1.1.0: + dependencies: + has-bigints: 1.1.0 + + is-binary-path@2.1.0: + dependencies: + binary-extensions: 2.3.0 + + is-boolean-object@1.2.1: + dependencies: + call-bound: 1.0.3 + has-tostringtag: 1.0.2 + + is-bun-module@1.3.0: + dependencies: + semver: 7.7.0 + + is-callable@1.2.7: {} + + is-core-module@2.16.1: + dependencies: + hasown: 2.0.2 + + is-data-view@1.0.2: + dependencies: + call-bound: 1.0.3 + get-intrinsic: 1.2.7 + is-typed-array: 1.1.15 + + is-date-object@1.1.0: + dependencies: + call-bound: 1.0.3 + has-tostringtag: 1.0.2 + + is-extglob@2.1.1: {} + + is-finalizationregistry@1.1.1: + dependencies: + call-bound: 1.0.3 + + is-fullwidth-code-point@3.0.0: {} + + is-generator-function@1.1.0: + dependencies: + call-bound: 1.0.3 + get-proto: 1.0.1 + has-tostringtag: 1.0.2 + safe-regex-test: 1.1.0 + + is-glob@4.0.3: + dependencies: + is-extglob: 2.1.1 + + is-map@2.0.3: {} + + is-number-object@1.1.1: + dependencies: + call-bound: 1.0.3 + has-tostringtag: 1.0.2 + + is-number@7.0.0: {} + + is-plain-obj@2.1.0: {} + + is-plain-obj@4.1.0: {} + + is-regex@1.2.1: + dependencies: + call-bound: 1.0.3 + gopd: 1.2.0 + has-tostringtag: 1.0.2 + hasown: 2.0.2 + + is-set@2.0.3: {} + + is-shared-array-buffer@1.0.4: + dependencies: + call-bound: 1.0.3 + + is-stream@4.0.1: {} + + is-string@1.1.1: + dependencies: + call-bound: 1.0.3 + has-tostringtag: 1.0.2 + + is-symbol@1.1.1: + dependencies: + call-bound: 1.0.3 + has-symbols: 1.1.0 + safe-regex-test: 1.1.0 + + is-typed-array@1.1.15: + dependencies: + which-typed-array: 1.1.18 + + is-unicode-supported@0.1.0: {} + + is-unicode-supported@2.1.0: {} + + is-weakmap@2.0.2: {} + + is-weakref@1.1.0: + dependencies: + call-bound: 1.0.3 + + is-weakset@2.0.4: + dependencies: + call-bound: 1.0.3 + get-intrinsic: 1.2.7 + + isarray@2.0.5: {} + + isexe@2.0.0: {} + + iterator.prototype@1.1.5: + dependencies: + define-data-property: 1.1.4 + es-object-atoms: 1.1.1 + get-intrinsic: 1.2.7 + get-proto: 1.0.1 + has-symbols: 1.1.0 + set-function-name: 2.0.2 + + js-tokens@4.0.0: {} + + js-yaml@4.1.0: + dependencies: + argparse: 2.0.1 + + json-buffer@3.0.1: {} + + json-schema-traverse@0.4.1: {} + + json-stable-stringify-without-jsonify@1.0.1: {} + + json5@1.0.2: + dependencies: + minimist: 1.2.8 + + jsonc-parser@3.3.1: {} + + jsox@1.2.121: {} + + jsx-ast-utils@3.3.5: + dependencies: + array-includes: 3.1.8 + array.prototype.flat: 1.3.3 + object.assign: 4.1.7 + object.values: 1.2.1 + + just-install@2.0.2: + dependencies: + extract-zip: 2.0.1 + node-fetch: 3.3.2 + transitivePeerDependencies: + - supports-color + + keyv@4.5.4: + dependencies: + json-buffer: 3.0.1 + + language-subtag-registry@0.3.23: {} + + language-tags@1.0.9: + dependencies: + language-subtag-registry: 0.3.23 + + levn@0.4.1: + dependencies: + prelude-ls: 1.2.1 + type-check: 0.4.0 + + linguist-languages@7.27.0: {} + + locate-path@6.0.0: + dependencies: + p-locate: 5.0.0 + + lodash.merge@4.6.2: {} + + log-symbols@4.1.0: + dependencies: + chalk: 4.1.2 + is-unicode-supported: 0.1.0 + + loose-envify@1.4.0: + dependencies: + js-tokens: 4.0.0 + + loupe@2.3.7: + dependencies: + get-func-name: 2.0.2 + + math-intrinsics@1.1.0: {} + + merge2@1.4.1: {} + + micromatch@4.0.8: + dependencies: + braces: 3.0.3 + picomatch: 2.3.1 + + minimatch@3.1.2: + dependencies: + brace-expansion: 1.1.11 + + minimatch@5.1.6: + dependencies: + brace-expansion: 2.0.1 + + minimatch@9.0.5: + dependencies: + brace-expansion: 2.0.1 + + minimist@1.2.8: {} + + mkdirp@0.5.6: + dependencies: + minimist: 1.2.8 + optional: true + + mocha@10.8.2: + dependencies: + ansi-colors: 4.1.3 + browser-stdout: 1.3.1 + chokidar: 3.5.3 + debug: 4.3.7(supports-color@8.1.1) + diff: 5.2.0 + escape-string-regexp: 4.0.0 + find-up: 5.0.0 + glob: 8.1.0 + he: 1.2.0 + js-yaml: 4.1.0 + log-symbols: 4.1.0 + minimatch: 5.1.6 + ms: 2.1.3 + serialize-javascript: 6.0.2 + strip-json-comments: 3.1.1 + supports-color: 8.1.1 + workerpool: 6.5.1 + yargs: 16.2.0 + yargs-parser: 20.2.9 + yargs-unparser: 2.0.0 + + moment@2.29.4: + optional: true + + moo@0.5.2: {} + + ms@2.1.3: {} + + mv@2.1.1: + dependencies: + mkdirp: 0.5.6 + ncp: 2.0.0 + rimraf: 2.4.5 + optional: true + + mvdan-sh@0.10.1: {} + + nan@2.14.2: + optional: true + + natural-compare@1.4.0: {} + + ncp@2.0.0: + optional: true + + nearley@2.20.1: + dependencies: + commander: 2.20.3 + moo: 0.5.2 + railroad-diagrams: 1.0.0 + randexp: 0.4.6 + + node-domexception@1.0.0: {} + + node-fetch@3.3.2: + dependencies: + data-uri-to-buffer: 4.0.1 + fetch-blob: 3.2.0 + formdata-polyfill: 4.0.10 + + node-sql-parser@4.18.0: + dependencies: + big-integer: 1.6.52 + + normalize-path@3.0.0: {} + + npm-run-path@6.0.0: + dependencies: + path-key: 4.0.0 + unicorn-magic: 0.3.0 + + object-assign@4.1.1: {} + + object-inspect@1.13.3: {} + + object-keys@1.1.1: {} + + object.assign@4.1.7: + dependencies: + call-bind: 1.0.8 + call-bound: 1.0.3 + define-properties: 1.2.1 + es-object-atoms: 1.1.1 + has-symbols: 1.1.0 + object-keys: 1.1.1 + + object.entries@1.1.8: + dependencies: + call-bind: 1.0.8 + define-properties: 1.2.1 + es-object-atoms: 1.1.1 + + object.fromentries@2.0.8: + dependencies: + call-bind: 1.0.8 + define-properties: 1.2.1 + es-abstract: 1.23.9 + es-object-atoms: 1.1.1 + + object.groupby@1.0.3: + dependencies: + call-bind: 1.0.8 + define-properties: 1.2.1 + es-abstract: 1.23.9 + + object.values@1.2.1: + dependencies: + call-bind: 1.0.8 + call-bound: 1.0.3 + define-properties: 1.2.1 + es-object-atoms: 1.1.1 + + once@1.4.0: + dependencies: + wrappy: 1.0.2 + + optionator@0.9.4: + dependencies: + deep-is: 0.1.4 + fast-levenshtein: 2.0.6 + levn: 0.4.1 + prelude-ls: 1.2.1 + type-check: 0.4.0 + word-wrap: 1.2.5 + + own-keys@1.0.1: + dependencies: + get-intrinsic: 1.2.7 + object-keys: 1.1.1 + safe-push-apply: 1.0.0 + + p-limit@3.1.0: + dependencies: + yocto-queue: 0.1.0 + + p-locate@5.0.0: + dependencies: + p-limit: 3.1.0 + + parent-module@1.0.1: + dependencies: + callsites: 3.1.0 + + parse-ms@4.0.0: {} + + path-exists@4.0.0: {} + + path-is-absolute@1.0.1: + optional: true + + path-key@3.1.1: {} + + path-key@4.0.0: {} + + path-parse@1.0.7: {} + + pathval@1.1.1: {} + + pend@1.2.0: {} + + php-parser@3.2.2: {} + + picomatch@2.3.1: {} + + possible-typed-array-names@1.0.0: {} + + prelude-ls@1.2.1: {} + + prettier-plugin-sh@0.14.0(prettier@3.4.2): + dependencies: + mvdan-sh: 0.10.1 + prettier: 3.4.2 + sh-syntax: 0.4.2 + + prettier-plugin-sql@0.18.1(prettier@3.4.2): + dependencies: + jsox: 1.2.121 + node-sql-parser: 4.18.0 + prettier: 3.4.2 + sql-formatter: 15.4.10 + tslib: 2.8.1 + + prettier-plugin-tailwindcss@0.6.11(prettier@3.4.2): + dependencies: + prettier: 3.4.2 + + prettier@3.4.2: {} + + pretty-ms@9.2.0: + dependencies: + parse-ms: 4.0.0 + + prop-types@15.8.1: + dependencies: + loose-envify: 1.4.0 + object-assign: 4.1.1 + react-is: 16.13.1 + + proper-lockfile@4.1.2: + dependencies: + graceful-fs: 4.2.11 + retry: 0.12.0 + signal-exit: 3.0.7 + + pump@3.0.2: + dependencies: + end-of-stream: 1.4.4 + once: 1.4.0 + + punycode@2.3.1: {} + + querystringify@2.2.0: {} + + queue-microtask@1.2.3: {} + + railroad-diagrams@1.0.0: {} + + randexp@0.4.6: + dependencies: + discontinuous-range: 1.0.0 + ret: 0.1.15 + + randombytes@2.1.0: + dependencies: + safe-buffer: 5.1.2 + + react-is@16.13.1: {} + + readdirp@3.6.0: + dependencies: + picomatch: 2.3.1 + + reflect.getprototypeof@1.0.10: + dependencies: + call-bind: 1.0.8 + define-properties: 1.2.1 + es-abstract: 1.23.9 + es-errors: 1.3.0 + es-object-atoms: 1.1.1 + get-intrinsic: 1.2.7 + get-proto: 1.0.1 + which-builtin-type: 1.2.1 + + regexp-to-ast@0.5.0: {} + + regexp.prototype.flags@1.5.4: + dependencies: + call-bind: 1.0.8 + define-properties: 1.2.1 + es-errors: 1.3.0 + get-proto: 1.0.1 + gopd: 1.2.0 + set-function-name: 2.0.2 + + require-directory@2.1.1: {} + + requires-port@1.0.0: {} + + resolve-from@4.0.0: {} + + resolve-pkg-maps@1.0.0: {} + + resolve@1.22.10: + dependencies: + is-core-module: 2.16.1 + path-parse: 1.0.7 + supports-preserve-symlinks-flag: 1.0.0 + + resolve@2.0.0-next.5: + dependencies: + is-core-module: 2.16.1 + path-parse: 1.0.7 + supports-preserve-symlinks-flag: 1.0.0 + + ret@0.1.15: {} + + retry@0.12.0: {} + + reusify@1.0.4: {} + + rimraf@2.4.5: + dependencies: + glob: 6.0.4 + optional: true + + run-parallel@1.2.0: + dependencies: + queue-microtask: 1.2.3 + + rust-just-darwin-arm64@1.39.0: + optional: true + + rust-just-darwin-x64@1.39.0: + optional: true + + rust-just-linux-arm64@1.39.0: + optional: true + + rust-just-linux-arm@1.39.0: + optional: true + + rust-just-linux-x64@1.39.0: + optional: true + + rust-just-windows-arm64@1.39.0: + optional: true + + rust-just-windows-x64@1.39.0: + optional: true + + rust-just@1.39.0: + dependencies: + execa: 9.5.2 + yargs: 17.7.2 + optionalDependencies: + rust-just-darwin-arm64: 1.39.0 + rust-just-darwin-x64: 1.39.0 + rust-just-linux-arm: 1.39.0 + rust-just-linux-arm64: 1.39.0 + rust-just-linux-x64: 1.39.0 + rust-just-windows-arm64: 1.39.0 + rust-just-windows-x64: 1.39.0 + + safe-array-concat@1.1.3: + dependencies: + call-bind: 1.0.8 + call-bound: 1.0.3 + get-intrinsic: 1.2.7 + has-symbols: 1.1.0 + isarray: 2.0.5 + + safe-buffer@5.1.2: {} + + safe-json-stringify@1.2.0: + optional: true + + safe-push-apply@1.0.0: + dependencies: + es-errors: 1.3.0 + isarray: 2.0.5 + + safe-regex-test@1.1.0: + dependencies: + call-bound: 1.0.3 + es-errors: 1.3.0 + is-regex: 1.2.1 + + semver@6.3.1: {} + + semver@7.7.0: {} + + serialize-javascript@6.0.2: + dependencies: + randombytes: 2.1.0 + + set-function-length@1.2.2: + dependencies: + define-data-property: 1.1.4 + es-errors: 1.3.0 + function-bind: 1.1.2 + get-intrinsic: 1.2.7 + gopd: 1.2.0 + has-property-descriptors: 1.0.2 + + set-function-name@2.0.2: + dependencies: + define-data-property: 1.1.4 + es-errors: 1.3.0 + functions-have-names: 1.2.3 + has-property-descriptors: 1.0.2 + + set-proto@1.0.0: + dependencies: + dunder-proto: 1.0.1 + es-errors: 1.3.0 + es-object-atoms: 1.1.1 + + sh-syntax@0.4.2: + dependencies: + tslib: 2.8.1 + + shebang-command@2.0.0: + dependencies: + shebang-regex: 3.0.0 + + shebang-regex@3.0.0: {} + + side-channel-list@1.0.0: + dependencies: + es-errors: 1.3.0 + object-inspect: 1.13.3 + + side-channel-map@1.0.1: + dependencies: + call-bound: 1.0.3 + es-errors: 1.3.0 + get-intrinsic: 1.2.7 + object-inspect: 1.13.3 + + side-channel-weakmap@1.0.2: + dependencies: + call-bound: 1.0.3 + es-errors: 1.3.0 + get-intrinsic: 1.2.7 + object-inspect: 1.13.3 + side-channel-map: 1.0.1 + + side-channel@1.1.0: + dependencies: + es-errors: 1.3.0 + object-inspect: 1.13.3 + side-channel-list: 1.0.0 + side-channel-map: 1.0.1 + side-channel-weakmap: 1.0.2 + + signal-exit@3.0.7: {} + + signal-exit@4.1.0: {} + + sql-formatter@15.4.10: + dependencies: + argparse: 2.0.1 + get-stdin: 8.0.0 + nearley: 2.20.1 + + stable-hash@0.0.4: {} + + string-width@4.2.3: + dependencies: + emoji-regex: 8.0.0 + is-fullwidth-code-point: 3.0.0 + strip-ansi: 6.0.1 + + string.prototype.includes@2.0.1: + dependencies: + call-bind: 1.0.8 + define-properties: 1.2.1 + es-abstract: 1.23.9 + + string.prototype.matchall@4.0.12: + dependencies: + call-bind: 1.0.8 + call-bound: 1.0.3 + define-properties: 1.2.1 + es-abstract: 1.23.9 + es-errors: 1.3.0 + es-object-atoms: 1.1.1 + get-intrinsic: 1.2.7 + gopd: 1.2.0 + has-symbols: 1.1.0 + internal-slot: 1.1.0 + regexp.prototype.flags: 1.5.4 + set-function-name: 2.0.2 + side-channel: 1.1.0 + + string.prototype.repeat@1.0.0: + dependencies: + define-properties: 1.2.1 + es-abstract: 1.23.9 + + string.prototype.trim@1.2.10: + dependencies: + call-bind: 1.0.8 + call-bound: 1.0.3 + define-data-property: 1.1.4 + define-properties: 1.2.1 + es-abstract: 1.23.9 + es-object-atoms: 1.1.1 + has-property-descriptors: 1.0.2 + + string.prototype.trimend@1.0.9: + dependencies: + call-bind: 1.0.8 + call-bound: 1.0.3 + define-properties: 1.2.1 + es-object-atoms: 1.1.1 + + string.prototype.trimstart@1.0.8: + dependencies: + call-bind: 1.0.8 + define-properties: 1.2.1 + es-object-atoms: 1.1.1 + + strip-ansi@6.0.1: + dependencies: + ansi-regex: 5.0.1 + + strip-bom@3.0.0: {} + + strip-final-newline@4.0.0: {} + + strip-json-comments@3.1.1: {} + + supports-color@7.2.0: + dependencies: + has-flag: 4.0.0 + + supports-color@8.1.1: + dependencies: + has-flag: 4.0.0 + + supports-preserve-symlinks-flag@1.0.0: {} + + tapable@2.2.1: {} + + to-regex-range@5.0.1: + dependencies: + is-number: 7.0.0 + + ts-api-utils@2.0.1(typescript@5.7.3): + dependencies: + typescript: 5.7.3 + + tsconfig-paths@3.15.0: + dependencies: + '@types/json5': 0.0.29 + json5: 1.0.2 + minimist: 1.2.8 + strip-bom: 3.0.0 + + tslib@2.8.1: {} + + type-check@0.4.0: + dependencies: + prelude-ls: 1.2.1 + + type-detect@4.1.0: {} + + typed-array-buffer@1.0.3: + dependencies: + call-bound: 1.0.3 + es-errors: 1.3.0 + is-typed-array: 1.1.15 + + typed-array-byte-length@1.0.3: + dependencies: + call-bind: 1.0.8 + for-each: 0.3.4 + gopd: 1.2.0 + has-proto: 1.2.0 + is-typed-array: 1.1.15 + + typed-array-byte-offset@1.0.4: + dependencies: + available-typed-arrays: 1.0.7 + call-bind: 1.0.8 + for-each: 0.3.4 + gopd: 1.2.0 + has-proto: 1.2.0 + is-typed-array: 1.1.15 + reflect.getprototypeof: 1.0.10 + + typed-array-length@1.0.7: + dependencies: + call-bind: 1.0.8 + for-each: 0.3.4 + gopd: 1.2.0 + is-typed-array: 1.1.15 + possible-typed-array-names: 1.0.0 + reflect.getprototypeof: 1.0.10 + + typescript-eslint@8.22.0(eslint@9.19.0)(typescript@5.7.3): + dependencies: + '@typescript-eslint/eslint-plugin': 8.22.0(@typescript-eslint/parser@8.22.0(eslint@9.19.0)(typescript@5.7.3))(eslint@9.19.0)(typescript@5.7.3) + '@typescript-eslint/parser': 8.22.0(eslint@9.19.0)(typescript@5.7.3) + '@typescript-eslint/utils': 8.22.0(eslint@9.19.0)(typescript@5.7.3) + eslint: 9.19.0 + typescript: 5.7.3 + transitivePeerDependencies: + - supports-color + + typescript@5.7.3: {} + + unbox-primitive@1.1.0: + dependencies: + call-bound: 1.0.3 + has-bigints: 1.1.0 + has-symbols: 1.1.0 + which-boxed-primitive: 1.1.1 + + undici-types@6.20.0: + optional: true + + unicorn-magic@0.3.0: {} + + uri-js@4.4.1: + dependencies: + punycode: 2.3.1 + + url-parse@1.5.10: + dependencies: + querystringify: 2.2.0 + requires-port: 1.0.0 + + web-streams-polyfill@3.3.3: {} + + which-boxed-primitive@1.1.1: + dependencies: + is-bigint: 1.1.0 + is-boolean-object: 1.2.1 + is-number-object: 1.1.1 + is-string: 1.1.1 + is-symbol: 1.1.1 + + which-builtin-type@1.2.1: + dependencies: + call-bound: 1.0.3 + function.prototype.name: 1.1.8 + has-tostringtag: 1.0.2 + is-async-function: 2.1.1 + is-date-object: 1.1.0 + is-finalizationregistry: 1.1.1 + is-generator-function: 1.1.0 + is-regex: 1.2.1 + is-weakref: 1.1.0 + isarray: 2.0.5 + which-boxed-primitive: 1.1.1 + which-collection: 1.0.2 + which-typed-array: 1.1.18 + + which-collection@1.0.2: + dependencies: + is-map: 2.0.3 + is-set: 2.0.3 + is-weakmap: 2.0.2 + is-weakset: 2.0.4 + + which-typed-array@1.1.18: + dependencies: + available-typed-arrays: 1.0.7 + call-bind: 1.0.8 + call-bound: 1.0.3 + for-each: 0.3.4 + gopd: 1.2.0 + has-tostringtag: 1.0.2 + + which@2.0.2: + dependencies: + isexe: 2.0.0 + + wireit@0.14.10: + dependencies: + brace-expansion: 4.0.0 + chokidar: 3.6.0 + fast-glob: 3.3.3 + jsonc-parser: 3.3.1 + proper-lockfile: 4.1.2 + + word-wrap@1.2.5: {} + + workerpool@6.5.1: {} + + wrap-ansi@7.0.0: + dependencies: + ansi-styles: 4.3.0 + string-width: 4.2.3 + strip-ansi: 6.0.1 + + wrappy@1.0.2: {} + + y18n@5.0.8: {} + + yargs-parser@20.2.9: {} + + yargs-parser@21.1.1: {} + + yargs-unparser@2.0.0: + dependencies: + camelcase: 6.2.0 + decamelize: 4.0.0 + flat: 5.0.2 + is-plain-obj: 2.1.0 + + yargs@16.2.0: + dependencies: + cliui: 7.0.4 + escalade: 3.1.1 + get-caller-file: 2.0.5 + require-directory: 2.1.1 + string-width: 4.2.3 + y18n: 5.0.8 + yargs-parser: 20.2.9 + + yargs@17.7.2: + dependencies: + cliui: 8.0.1 + escalade: 3.2.0 + get-caller-file: 2.0.5 + require-directory: 2.1.1 + string-width: 4.2.3 + y18n: 5.0.8 + yargs-parser: 21.1.1 + + yauzl@2.10.0: + dependencies: + buffer-crc32: 0.2.13 + fd-slicer: 1.1.0 + + yocto-queue@0.1.0: {} + + yoctocolors@2.1.1: {} diff --git a/pnpm-workspace.yaml b/pnpm-workspace.yaml new file mode 100644 index 00000000..9a36b405 --- /dev/null +++ b/pnpm-workspace.yaml @@ -0,0 +1,2 @@ +packages: + - 'packages/*' diff --git a/prettier.config.mjs b/prettier.config.mjs index cd015062..bd8b5cdf 100644 --- a/prettier.config.mjs +++ b/prettier.config.mjs @@ -17,7 +17,7 @@ const config = { } }, { - files: ['*.sh'], + files: ['*.sh', 'packages/webhooker/webhooker.console', 'packages/webhooker/webhooker.sbin', '.npmrc'], options: { parser: 'sh' } diff --git a/webhooker/package-lock.json b/webhooker/package-lock.json deleted file mode 100644 index a7b0d3e4..00000000 --- a/webhooker/package-lock.json +++ /dev/null @@ -1,2060 +0,0 @@ -{ - "name": "webhooker", - "version": "1.0.0", - "lockfileVersion": 2, - "requires": true, - "packages": { - "": { - "name": "webhooker", - "version": "1.0.0", - "license": "MIT", - "dependencies": { - "amqplib": "^0.10.5", - "bunyan": "^1.8.15", - "commander": "^12.1.0", - "daemon": "^1.1.0" - }, - "devDependencies": { - "chai": "^4.5.0", - "mocha": "^10.8.2" - } - }, - "node_modules/@acuminous/bitsyntax": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/@acuminous/bitsyntax/-/bitsyntax-0.1.2.tgz", - "integrity": "sha512-29lUK80d1muEQqiUsSo+3A0yP6CdspgC95EnKBMi22Xlwt79i/En4Vr67+cXhU+cZjbti3TgGGC5wy1stIywVQ==", - "dependencies": { - "buffer-more-ints": "~1.0.0", - "debug": "^4.3.4", - "safe-buffer": "~5.1.2" - }, - "engines": { - "node": ">=0.8" - } - }, - "node_modules/amqplib": { - "version": "0.10.5", - "resolved": "https://registry.npmjs.org/amqplib/-/amqplib-0.10.5.tgz", - "integrity": "sha512-Dx5zmy0Ur+Q7LPPdhz+jx5IzmJBoHd15tOeAfQ8SuvEtyPJ20hBemhOBA4b1WeORCRa0ENM/kHCzmem1w/zHvQ==", - "license": "MIT", - "dependencies": { - "@acuminous/bitsyntax": "^0.1.2", - "buffer-more-ints": "~1.0.0", - "url-parse": "~1.5.10" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/ansi-colors": { - "version": "4.1.3", - "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-4.1.3.tgz", - "integrity": "sha512-/6w/C21Pm1A7aZitlI5Ni/2J6FFQN8i1Cvz3kHABAAbw93v/NlvKdVOqz7CCWz/3iv/JplRSEEZ83XION15ovw==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=6" - } - }, - "node_modules/ansi-regex": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", - "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/anymatch": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz", - "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==", - "dev": true, - "dependencies": { - "normalize-path": "^3.0.0", - "picomatch": "^2.0.4" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/argparse": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", - "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", - "dev": true - }, - "node_modules/assertion-error": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/assertion-error/-/assertion-error-1.1.0.tgz", - "integrity": "sha512-jgsaNduz+ndvGyFt3uSuWqvy4lCnIJiovtouQN5JZHOKCS2QuhEdbcQHFhVksz2N2U9hXJo8odG7ETyWlEeuDw==", - "dev": true, - "engines": { - "node": "*" - } - }, - "node_modules/balanced-match": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz", - "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=", - "devOptional": true - }, - "node_modules/binary-extensions": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz", - "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/brace-expansion": { - "version": "1.1.11", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", - "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", - "optional": true, - "dependencies": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" - } - }, - "node_modules/braces": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.3.tgz", - "integrity": "sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==", - "dev": true, - "dependencies": { - "fill-range": "^7.1.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/browser-stdout": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/browser-stdout/-/browser-stdout-1.3.1.tgz", - "integrity": "sha512-qhAVI1+Av2X7qelOfAIYwXONood6XlZE/fXaBSmW/T5SzLAmCgzi+eiWE7fUvbHaeNBQH13UftjpXxsfLkMpgw==", - "dev": true - }, - "node_modules/buffer-more-ints": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/buffer-more-ints/-/buffer-more-ints-1.0.0.tgz", - "integrity": "sha512-EMetuGFz5SLsT0QTnXzINh4Ksr+oo4i+UGTXEshiGCQWnsgSs7ZhJ8fzlwQ+OzEMs0MpDAMr1hxnblp5a4vcHg==" - }, - "node_modules/bunyan": { - "version": "1.8.15", - "resolved": "https://registry.npmjs.org/bunyan/-/bunyan-1.8.15.tgz", - "integrity": "sha512-0tECWShh6wUysgucJcBAoYegf3JJoZWibxdqhTm7OHPeT42qdjkZ29QCMcKwbgU1kiH+auSIasNRXMLWXafXig==", - "engines": [ - "node >=0.10.0" - ], - "bin": { - "bunyan": "bin/bunyan" - }, - "optionalDependencies": { - "dtrace-provider": "~0.8", - "moment": "^2.19.3", - "mv": "~2", - "safe-json-stringify": "~1" - } - }, - "node_modules/chai": { - "version": "4.5.0", - "resolved": "https://registry.npmjs.org/chai/-/chai-4.5.0.tgz", - "integrity": "sha512-RITGBfijLkBddZvnn8jdqoTypxvqbOLYQkGGxXzeFjVHvudaPw0HNFD9x928/eUwYWd2dPCugVqspGALTZZQKw==", - "dev": true, - "license": "MIT", - "dependencies": { - "assertion-error": "^1.1.0", - "check-error": "^1.0.3", - "deep-eql": "^4.1.3", - "get-func-name": "^2.0.2", - "loupe": "^2.3.6", - "pathval": "^1.1.1", - "type-detect": "^4.1.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, - "node_modules/chalk/node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/check-error": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/check-error/-/check-error-1.0.3.tgz", - "integrity": "sha512-iKEoDYaRmd1mxM90a2OEfWhjsjPpYPuQ+lMYsoxB126+t8fw7ySEO48nmDg5COTjxDI65/Y2OWpeEHk3ZOe8zg==", - "dev": true, - "license": "MIT", - "dependencies": { - "get-func-name": "^2.0.2" - }, - "engines": { - "node": "*" - } - }, - "node_modules/chokidar": { - "version": "3.5.3", - "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.3.tgz", - "integrity": "sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==", - "dev": true, - "funding": [ - { - "type": "individual", - "url": "https://paulmillr.com/funding/" - } - ], - "dependencies": { - "anymatch": "~3.1.2", - "braces": "~3.0.2", - "glob-parent": "~5.1.2", - "is-binary-path": "~2.1.0", - "is-glob": "~4.0.1", - "normalize-path": "~3.0.0", - "readdirp": "~3.6.0" - }, - "engines": { - "node": ">= 8.10.0" - }, - "optionalDependencies": { - "fsevents": "~2.3.2" - } - }, - "node_modules/cliui": { - "version": "7.0.4", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz", - "integrity": "sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==", - "dev": true, - "dependencies": { - "string-width": "^4.2.0", - "strip-ansi": "^6.0.0", - "wrap-ansi": "^7.0.0" - } - }, - "node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - }, - "node_modules/commander": { - "version": "12.1.0", - "resolved": "https://registry.npmjs.org/commander/-/commander-12.1.0.tgz", - "integrity": "sha512-Vw8qHK3bZM9y/P10u3Vib8o/DdkvA2OtPtZvD871QKjy74Wj1WSKFILMPRPSdUSx5RFK1arlJzEtA4PkFgnbuA==", - "license": "MIT", - "engines": { - "node": ">=18" - } - }, - "node_modules/concat-map": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", - "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=", - "optional": true - }, - "node_modules/daemon": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/daemon/-/daemon-1.1.0.tgz", - "integrity": "sha1-bFECyB2wvoVvyQCPwsk1s5iGSug=", - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/debug": { - "version": "4.3.7", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.7.tgz", - "integrity": "sha512-Er2nc/H7RrMXZBFCEim6TCmMk02Z8vLC2Rbi1KEBggpo0fS6l0S1nnapwmIi3yW/+GOJap1Krg4w0Hg80oCqgQ==", - "license": "MIT", - "dependencies": { - "ms": "^2.1.3" - }, - "engines": { - "node": ">=6.0" - }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } - } - }, - "node_modules/deep-eql": { - "version": "4.1.4", - "resolved": "https://registry.npmjs.org/deep-eql/-/deep-eql-4.1.4.tgz", - "integrity": "sha512-SUwdGfqdKOwxCPeVYjwSyRpJ7Z+fhpwIAtmCUdZIWZ/YP5R9WAsyuSgpLVDi9bjWoN2LXHNss/dk3urXtdQxGg==", - "dev": true, - "license": "MIT", - "dependencies": { - "type-detect": "^4.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/diff": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/diff/-/diff-5.2.0.tgz", - "integrity": "sha512-uIFDxqpRZGZ6ThOk84hEfqWoHx2devRFvpTZcTHur85vImfaxUbTW9Ryh4CpCuDnToOP1CEtXKIgytHBPVff5A==", - "dev": true, - "license": "BSD-3-Clause", - "engines": { - "node": ">=0.3.1" - } - }, - "node_modules/dtrace-provider": { - "version": "0.8.8", - "resolved": "https://registry.npmjs.org/dtrace-provider/-/dtrace-provider-0.8.8.tgz", - "integrity": "sha512-b7Z7cNtHPhH9EJhNNbbeqTcXB8LGFFZhq1PGgEvpeHlzd36bhbdTWoE/Ba/YguqpBSlAPKnARWhVlhunCMwfxg==", - "hasInstallScript": true, - "optional": true, - "dependencies": { - "nan": "^2.14.0" - }, - "engines": { - "node": ">=0.10" - } - }, - "node_modules/emoji-regex": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", - "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", - "dev": true - }, - "node_modules/escalade": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", - "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/escape-string-regexp": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", - "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", - "dev": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/fill-range": { - "version": "7.1.1", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.1.1.tgz", - "integrity": "sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==", - "dev": true, - "dependencies": { - "to-regex-range": "^5.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/find-up": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", - "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", - "dev": true, - "dependencies": { - "locate-path": "^6.0.0", - "path-exists": "^4.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/flat": { - "version": "5.0.2", - "resolved": "https://registry.npmjs.org/flat/-/flat-5.0.2.tgz", - "integrity": "sha512-b6suED+5/3rTpUBdG1gupIl8MPFCAMA0QXwmljLhvCUKcUvdE4gWky9zpuGCcXHOsz4J9wPGNWq6OKpmIzz3hQ==", - "dev": true, - "bin": { - "flat": "cli.js" - } - }, - "node_modules/fs.realpath": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", - "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==", - "dev": true, - "license": "ISC" - }, - "node_modules/fsevents": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", - "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", - "dev": true, - "hasInstallScript": true, - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": "^8.16.0 || ^10.6.0 || >=11.0.0" - } - }, - "node_modules/get-caller-file": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", - "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", - "dev": true, - "engines": { - "node": "6.* || 8.* || >= 10.*" - } - }, - "node_modules/get-func-name": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/get-func-name/-/get-func-name-2.0.2.tgz", - "integrity": "sha512-8vXOvuE167CtIc3OyItco7N/dpRtBbYOsPsXCz7X/PMnlGjYjSGuZJgM1Y7mmew7BKf9BqvLX2tnOVy1BBUsxQ==", - "dev": true, - "license": "MIT", - "engines": { - "node": "*" - } - }, - "node_modules/glob": { - "version": "8.1.0", - "resolved": "https://registry.npmjs.org/glob/-/glob-8.1.0.tgz", - "integrity": "sha512-r8hpEjiQEYlF2QU0df3dS+nxxSIreXQS1qRhMJM0Q5NDdR386C7jb7Hwwod8Fgiuex+k0GFjgft18yvxm5XoCQ==", - "deprecated": "Glob versions prior to v9 are no longer supported", - "dev": true, - "license": "ISC", - "dependencies": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^5.0.1", - "once": "^1.3.0" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/glob-parent": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", - "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", - "dev": true, - "dependencies": { - "is-glob": "^4.0.1" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/glob/node_modules/brace-expansion": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", - "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", - "dev": true, - "license": "MIT", - "dependencies": { - "balanced-match": "^1.0.0" - } - }, - "node_modules/glob/node_modules/minimatch": { - "version": "5.1.6", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.6.tgz", - "integrity": "sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==", - "dev": true, - "license": "ISC", - "dependencies": { - "brace-expansion": "^2.0.1" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/he": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/he/-/he-1.2.0.tgz", - "integrity": "sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==", - "dev": true, - "bin": { - "he": "bin/he" - } - }, - "node_modules/inflight": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", - "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", - "devOptional": true, - "dependencies": { - "once": "^1.3.0", - "wrappy": "1" - } - }, - "node_modules/inherits": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", - "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", - "devOptional": true - }, - "node_modules/is-binary-path": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", - "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", - "dev": true, - "dependencies": { - "binary-extensions": "^2.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/is-extglob": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", - "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-fullwidth-code-point": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", - "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/is-glob": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", - "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", - "dev": true, - "dependencies": { - "is-extglob": "^2.1.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-number": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", - "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", - "dev": true, - "engines": { - "node": ">=0.12.0" - } - }, - "node_modules/is-plain-obj": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-2.1.0.tgz", - "integrity": "sha512-YWnfyRwxL/+SsrWYfOpUtz5b3YD+nyfkHvjbcanzk8zgyO4ASD67uVMRt8k5bM4lLMDnXfriRhOpemw+NfT1eA==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/is-unicode-supported": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/is-unicode-supported/-/is-unicode-supported-0.1.0.tgz", - "integrity": "sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw==", - "dev": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/js-yaml": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", - "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", - "dev": true, - "dependencies": { - "argparse": "^2.0.1" - }, - "bin": { - "js-yaml": "bin/js-yaml.js" - } - }, - "node_modules/locate-path": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", - "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", - "dev": true, - "dependencies": { - "p-locate": "^5.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/log-symbols": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-4.1.0.tgz", - "integrity": "sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg==", - "dev": true, - "dependencies": { - "chalk": "^4.1.0", - "is-unicode-supported": "^0.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/loupe": { - "version": "2.3.7", - "resolved": "https://registry.npmjs.org/loupe/-/loupe-2.3.7.tgz", - "integrity": "sha512-zSMINGVYkdpYSOBmLi0D1Uo7JU9nVdQKrHxC8eYlV+9YKK9WePqAlL7lSlorG/U2Fw1w0hTBmaa/jrQ3UbPHtA==", - "dev": true, - "license": "MIT", - "dependencies": { - "get-func-name": "^2.0.1" - } - }, - "node_modules/minimatch": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", - "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", - "optional": true, - "dependencies": { - "brace-expansion": "^1.1.7" - }, - "engines": { - "node": "*" - } - }, - "node_modules/minimist": { - "version": "1.2.8", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz", - "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==", - "optional": true, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/mkdirp": { - "version": "0.5.6", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.6.tgz", - "integrity": "sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==", - "optional": true, - "dependencies": { - "minimist": "^1.2.6" - }, - "bin": { - "mkdirp": "bin/cmd.js" - } - }, - "node_modules/mocha": { - "version": "10.8.2", - "resolved": "https://registry.npmjs.org/mocha/-/mocha-10.8.2.tgz", - "integrity": "sha512-VZlYo/WE8t1tstuRmqgeyBgCbJc/lEdopaa+axcKzTBJ+UIdlAB9XnmvTCAH4pwR4ElNInaedhEBmZD8iCSVEg==", - "dev": true, - "license": "MIT", - "dependencies": { - "ansi-colors": "^4.1.3", - "browser-stdout": "^1.3.1", - "chokidar": "^3.5.3", - "debug": "^4.3.5", - "diff": "^5.2.0", - "escape-string-regexp": "^4.0.0", - "find-up": "^5.0.0", - "glob": "^8.1.0", - "he": "^1.2.0", - "js-yaml": "^4.1.0", - "log-symbols": "^4.1.0", - "minimatch": "^5.1.6", - "ms": "^2.1.3", - "serialize-javascript": "^6.0.2", - "strip-json-comments": "^3.1.1", - "supports-color": "^8.1.1", - "workerpool": "^6.5.1", - "yargs": "^16.2.0", - "yargs-parser": "^20.2.9", - "yargs-unparser": "^2.0.0" - }, - "bin": { - "_mocha": "bin/_mocha", - "mocha": "bin/mocha.js" - }, - "engines": { - "node": ">= 14.0.0" - } - }, - "node_modules/mocha/node_modules/brace-expansion": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", - "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", - "dev": true, - "license": "MIT", - "dependencies": { - "balanced-match": "^1.0.0" - } - }, - "node_modules/mocha/node_modules/minimatch": { - "version": "5.1.6", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.6.tgz", - "integrity": "sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==", - "dev": true, - "license": "ISC", - "dependencies": { - "brace-expansion": "^2.0.1" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/moment": { - "version": "2.29.4", - "resolved": "https://registry.npmjs.org/moment/-/moment-2.29.4.tgz", - "integrity": "sha512-5LC9SOxjSc2HF6vO2CyuTDNivEdoz2IvyJJGj6X8DJ0eFyfszE0QiEd+iXmBvUP3WHxSjFH/vIsA0EN00cgr8w==", - "optional": true, - "engines": { - "node": "*" - } - }, - "node_modules/ms": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", - "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==" - }, - "node_modules/mv": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/mv/-/mv-2.1.1.tgz", - "integrity": "sha1-rmzg1vbV4KT32JN5jQPB6pVZtqI=", - "optional": true, - "dependencies": { - "mkdirp": "~0.5.1", - "ncp": "~2.0.0", - "rimraf": "~2.4.0" - }, - "engines": { - "node": ">=0.8.0" - } - }, - "node_modules/nan": { - "version": "2.14.2", - "resolved": "https://registry.npmjs.org/nan/-/nan-2.14.2.tgz", - "integrity": "sha512-M2ufzIiINKCuDfBSAUr1vWQ+vuVcA9kqx8JJUsbQi6yf1uGRyb7HfpdfUr5qLXf3B/t8dPvcjhKMmlfnP47EzQ==", - "optional": true - }, - "node_modules/ncp": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ncp/-/ncp-2.0.0.tgz", - "integrity": "sha1-GVoh1sRuNh0vsSgbo4uR6d9727M=", - "optional": true, - "bin": { - "ncp": "bin/ncp" - } - }, - "node_modules/normalize-path": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", - "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/once": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", - "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", - "devOptional": true, - "dependencies": { - "wrappy": "1" - } - }, - "node_modules/p-limit": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", - "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", - "dev": true, - "dependencies": { - "yocto-queue": "^0.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/p-locate": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz", - "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==", - "dev": true, - "dependencies": { - "p-limit": "^3.0.2" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/path-exists": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", - "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/path-is-absolute": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", - "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=", - "optional": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/pathval": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/pathval/-/pathval-1.1.1.tgz", - "integrity": "sha512-Dp6zGqpTdETdR63lehJYPeIOqpiNBNtc7BpWSLrOje7UaIsE5aY92r/AunQA7rsXvet3lrJ3JnZX29UPTKXyKQ==", - "dev": true, - "engines": { - "node": "*" - } - }, - "node_modules/picomatch": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", - "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", - "dev": true, - "engines": { - "node": ">=8.6" - }, - "funding": { - "url": "https://github.com/sponsors/jonschlinkert" - } - }, - "node_modules/querystringify": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/querystringify/-/querystringify-2.2.0.tgz", - "integrity": "sha512-FIqgj2EUvTa7R50u0rGsyTftzjYmv/a3hO345bZNrqabNqjtgiDMgmo4mkUjd+nzU5oF3dClKqFIPUKybUyqoQ==" - }, - "node_modules/randombytes": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz", - "integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "safe-buffer": "^5.1.0" - } - }, - "node_modules/readdirp": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", - "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", - "dev": true, - "dependencies": { - "picomatch": "^2.2.1" - }, - "engines": { - "node": ">=8.10.0" - } - }, - "node_modules/require-directory": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", - "integrity": "sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/requires-port": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/requires-port/-/requires-port-1.0.0.tgz", - "integrity": "sha512-KigOCHcocU3XODJxsu8i/j8T9tzT4adHiecwORRQ0ZZFcp7ahwXuRU1m+yuO90C5ZUyGeGfocHDI14M3L3yDAQ==" - }, - "node_modules/rimraf": { - "version": "2.4.5", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.4.5.tgz", - "integrity": "sha1-7nEM5dk6j9uFb7Xqj/Di11k0sto=", - "optional": true, - "dependencies": { - "glob": "^6.0.1" - }, - "bin": { - "rimraf": "bin.js" - } - }, - "node_modules/rimraf/node_modules/glob": { - "version": "6.0.4", - "resolved": "https://registry.npmjs.org/glob/-/glob-6.0.4.tgz", - "integrity": "sha1-DwiGD2oVUSey+t1PnOJLGqtuTSI=", - "optional": true, - "dependencies": { - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "2 || 3", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - }, - "engines": { - "node": "*" - } - }, - "node_modules/safe-buffer": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" - }, - "node_modules/safe-json-stringify": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/safe-json-stringify/-/safe-json-stringify-1.2.0.tgz", - "integrity": "sha512-gH8eh2nZudPQO6TytOvbxnuhYBOvDBBLW52tz5q6X58lJcd/tkmqFR+5Z9adS8aJtURSXWThWy/xJtJwixErvg==", - "optional": true - }, - "node_modules/serialize-javascript": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-6.0.2.tgz", - "integrity": "sha512-Saa1xPByTTq2gdeFZYLLo+RFE35NHZkAbqZeWNd3BpzppeVisAqpDjcp8dyf6uIvEqJRd46jemmyA4iFIeVk8g==", - "dev": true, - "license": "BSD-3-Clause", - "dependencies": { - "randombytes": "^2.1.0" - } - }, - "node_modules/string-width": { - "version": "4.2.3", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", - "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", - "dev": true, - "dependencies": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/strip-ansi": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", - "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", - "dev": true, - "dependencies": { - "ansi-regex": "^5.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/strip-json-comments": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", - "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", - "dev": true, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/supports-color": { - "version": "8.1.1", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", - "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", - "dev": true, - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/supports-color?sponsor=1" - } - }, - "node_modules/to-regex-range": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", - "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", - "dev": true, - "dependencies": { - "is-number": "^7.0.0" - }, - "engines": { - "node": ">=8.0" - } - }, - "node_modules/type-detect": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/type-detect/-/type-detect-4.1.0.tgz", - "integrity": "sha512-Acylog8/luQ8L7il+geoSxhEkazvkslg7PSNKOX59mbB9cOveP5aq9h74Y7YU8yDpJwetzQQrfIwtf4Wp4LKcw==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=4" - } - }, - "node_modules/url-parse": { - "version": "1.5.10", - "resolved": "https://registry.npmjs.org/url-parse/-/url-parse-1.5.10.tgz", - "integrity": "sha512-WypcfiRhfeUP9vvF0j6rw0J3hrWrw6iZv3+22h6iRMJ/8z1Tj6XfLP4DsUix5MhMPnXpiHDoKyoZ/bdCkwBCiQ==", - "dependencies": { - "querystringify": "^2.1.1", - "requires-port": "^1.0.0" - } - }, - "node_modules/workerpool": { - "version": "6.5.1", - "resolved": "https://registry.npmjs.org/workerpool/-/workerpool-6.5.1.tgz", - "integrity": "sha512-Fs4dNYcsdpYSAfVxhnl1L5zTksjvOJxtC5hzMNl+1t9B8hTJTdKDyZ5ju7ztgPy+ft9tBFXoOlDNiOT9WUXZlA==", - "dev": true, - "license": "Apache-2.0" - }, - "node_modules/wrap-ansi": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", - "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", - "dev": true, - "dependencies": { - "ansi-styles": "^4.0.0", - "string-width": "^4.1.0", - "strip-ansi": "^6.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/wrap-ansi?sponsor=1" - } - }, - "node_modules/wrappy": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", - "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=", - "devOptional": true - }, - "node_modules/y18n": { - "version": "5.0.8", - "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", - "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==", - "dev": true, - "engines": { - "node": ">=10" - } - }, - "node_modules/yargs": { - "version": "16.2.0", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-16.2.0.tgz", - "integrity": "sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==", - "dev": true, - "dependencies": { - "cliui": "^7.0.2", - "escalade": "^3.1.1", - "get-caller-file": "^2.0.5", - "require-directory": "^2.1.1", - "string-width": "^4.2.0", - "y18n": "^5.0.5", - "yargs-parser": "^20.2.2" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/yargs-parser": { - "version": "20.2.9", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.9.tgz", - "integrity": "sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==", - "dev": true, - "license": "ISC", - "engines": { - "node": ">=10" - } - }, - "node_modules/yargs-unparser": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/yargs-unparser/-/yargs-unparser-2.0.0.tgz", - "integrity": "sha512-7pRTIA9Qc1caZ0bZ6RYRGbHJthJWuakf+WmHK0rVeLkNrrGhfoabBNdue6kdINI6r4if7ocq9aD/n7xwKOdzOA==", - "dev": true, - "dependencies": { - "camelcase": "^6.0.0", - "decamelize": "^4.0.0", - "flat": "^5.0.2", - "is-plain-obj": "^2.1.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/yargs-unparser/node_modules/camelcase": { - "version": "6.2.0", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.2.0.tgz", - "integrity": "sha512-c7wVvbw3f37nuobQNtgsgG9POC9qMbNuMQmTCqZv23b6MIz0fcYpBiOlv9gEN/hdLdnZTDQhg6e9Dq5M1vKvfg==", - "dev": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/yargs-unparser/node_modules/decamelize": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-4.0.0.tgz", - "integrity": "sha512-9iE1PgSik9HeIIw2JO94IidnE3eBoQrFJ3w7sFuzSX4DpmZ3v5sZpUiV5Swcf6mQEF+Y0ru8Neo+p+nyh2J+hQ==", - "dev": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/yocto-queue": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", - "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==", - "dev": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - } - }, - "dependencies": { - "@acuminous/bitsyntax": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/@acuminous/bitsyntax/-/bitsyntax-0.1.2.tgz", - "integrity": "sha512-29lUK80d1muEQqiUsSo+3A0yP6CdspgC95EnKBMi22Xlwt79i/En4Vr67+cXhU+cZjbti3TgGGC5wy1stIywVQ==", - "requires": { - "buffer-more-ints": "~1.0.0", - "debug": "^4.3.4", - "safe-buffer": "~5.1.2" - } - }, - "amqplib": { - "version": "0.10.5", - "resolved": "https://registry.npmjs.org/amqplib/-/amqplib-0.10.5.tgz", - "integrity": "sha512-Dx5zmy0Ur+Q7LPPdhz+jx5IzmJBoHd15tOeAfQ8SuvEtyPJ20hBemhOBA4b1WeORCRa0ENM/kHCzmem1w/zHvQ==", - "requires": { - "@acuminous/bitsyntax": "^0.1.2", - "buffer-more-ints": "~1.0.0", - "url-parse": "~1.5.10" - } - }, - "ansi-colors": { - "version": "4.1.3", - "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-4.1.3.tgz", - "integrity": "sha512-/6w/C21Pm1A7aZitlI5Ni/2J6FFQN8i1Cvz3kHABAAbw93v/NlvKdVOqz7CCWz/3iv/JplRSEEZ83XION15ovw==", - "dev": true - }, - "ansi-regex": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", - "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", - "dev": true - }, - "ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "requires": { - "color-convert": "^2.0.1" - } - }, - "anymatch": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz", - "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==", - "dev": true, - "requires": { - "normalize-path": "^3.0.0", - "picomatch": "^2.0.4" - } - }, - "argparse": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", - "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", - "dev": true - }, - "assertion-error": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/assertion-error/-/assertion-error-1.1.0.tgz", - "integrity": "sha512-jgsaNduz+ndvGyFt3uSuWqvy4lCnIJiovtouQN5JZHOKCS2QuhEdbcQHFhVksz2N2U9hXJo8odG7ETyWlEeuDw==", - "dev": true - }, - "balanced-match": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz", - "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=", - "devOptional": true - }, - "binary-extensions": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz", - "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==", - "dev": true - }, - "brace-expansion": { - "version": "1.1.11", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", - "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", - "optional": true, - "requires": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" - } - }, - "braces": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.3.tgz", - "integrity": "sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==", - "dev": true, - "requires": { - "fill-range": "^7.1.1" - } - }, - "browser-stdout": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/browser-stdout/-/browser-stdout-1.3.1.tgz", - "integrity": "sha512-qhAVI1+Av2X7qelOfAIYwXONood6XlZE/fXaBSmW/T5SzLAmCgzi+eiWE7fUvbHaeNBQH13UftjpXxsfLkMpgw==", - "dev": true - }, - "buffer-more-ints": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/buffer-more-ints/-/buffer-more-ints-1.0.0.tgz", - "integrity": "sha512-EMetuGFz5SLsT0QTnXzINh4Ksr+oo4i+UGTXEshiGCQWnsgSs7ZhJ8fzlwQ+OzEMs0MpDAMr1hxnblp5a4vcHg==" - }, - "bunyan": { - "version": "1.8.15", - "resolved": "https://registry.npmjs.org/bunyan/-/bunyan-1.8.15.tgz", - "integrity": "sha512-0tECWShh6wUysgucJcBAoYegf3JJoZWibxdqhTm7OHPeT42qdjkZ29QCMcKwbgU1kiH+auSIasNRXMLWXafXig==", - "requires": { - "dtrace-provider": "~0.8", - "moment": "^2.19.3", - "mv": "~2", - "safe-json-stringify": "~1" - } - }, - "chai": { - "version": "4.5.0", - "resolved": "https://registry.npmjs.org/chai/-/chai-4.5.0.tgz", - "integrity": "sha512-RITGBfijLkBddZvnn8jdqoTypxvqbOLYQkGGxXzeFjVHvudaPw0HNFD9x928/eUwYWd2dPCugVqspGALTZZQKw==", - "dev": true, - "requires": { - "assertion-error": "^1.1.0", - "check-error": "^1.0.3", - "deep-eql": "^4.1.3", - "get-func-name": "^2.0.2", - "loupe": "^2.3.6", - "pathval": "^1.1.1", - "type-detect": "^4.1.0" - } - }, - "chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "dependencies": { - "supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, - "requires": { - "has-flag": "^4.0.0" - } - } - } - }, - "check-error": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/check-error/-/check-error-1.0.3.tgz", - "integrity": "sha512-iKEoDYaRmd1mxM90a2OEfWhjsjPpYPuQ+lMYsoxB126+t8fw7ySEO48nmDg5COTjxDI65/Y2OWpeEHk3ZOe8zg==", - "dev": true, - "requires": { - "get-func-name": "^2.0.2" - } - }, - "chokidar": { - "version": "3.5.3", - "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.3.tgz", - "integrity": "sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==", - "dev": true, - "requires": { - "anymatch": "~3.1.2", - "braces": "~3.0.2", - "fsevents": "~2.3.2", - "glob-parent": "~5.1.2", - "is-binary-path": "~2.1.0", - "is-glob": "~4.0.1", - "normalize-path": "~3.0.0", - "readdirp": "~3.6.0" - } - }, - "cliui": { - "version": "7.0.4", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz", - "integrity": "sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==", - "dev": true, - "requires": { - "string-width": "^4.2.0", - "strip-ansi": "^6.0.0", - "wrap-ansi": "^7.0.0" - } - }, - "color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "requires": { - "color-name": "~1.1.4" - } - }, - "color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - }, - "commander": { - "version": "12.1.0", - "resolved": "https://registry.npmjs.org/commander/-/commander-12.1.0.tgz", - "integrity": "sha512-Vw8qHK3bZM9y/P10u3Vib8o/DdkvA2OtPtZvD871QKjy74Wj1WSKFILMPRPSdUSx5RFK1arlJzEtA4PkFgnbuA==" - }, - "concat-map": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", - "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=", - "optional": true - }, - "daemon": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/daemon/-/daemon-1.1.0.tgz", - "integrity": "sha1-bFECyB2wvoVvyQCPwsk1s5iGSug=" - }, - "debug": { - "version": "4.3.7", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.7.tgz", - "integrity": "sha512-Er2nc/H7RrMXZBFCEim6TCmMk02Z8vLC2Rbi1KEBggpo0fS6l0S1nnapwmIi3yW/+GOJap1Krg4w0Hg80oCqgQ==", - "requires": { - "ms": "^2.1.3" - } - }, - "deep-eql": { - "version": "4.1.4", - "resolved": "https://registry.npmjs.org/deep-eql/-/deep-eql-4.1.4.tgz", - "integrity": "sha512-SUwdGfqdKOwxCPeVYjwSyRpJ7Z+fhpwIAtmCUdZIWZ/YP5R9WAsyuSgpLVDi9bjWoN2LXHNss/dk3urXtdQxGg==", - "dev": true, - "requires": { - "type-detect": "^4.0.0" - } - }, - "diff": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/diff/-/diff-5.2.0.tgz", - "integrity": "sha512-uIFDxqpRZGZ6ThOk84hEfqWoHx2devRFvpTZcTHur85vImfaxUbTW9Ryh4CpCuDnToOP1CEtXKIgytHBPVff5A==", - "dev": true - }, - "dtrace-provider": { - "version": "0.8.8", - "resolved": "https://registry.npmjs.org/dtrace-provider/-/dtrace-provider-0.8.8.tgz", - "integrity": "sha512-b7Z7cNtHPhH9EJhNNbbeqTcXB8LGFFZhq1PGgEvpeHlzd36bhbdTWoE/Ba/YguqpBSlAPKnARWhVlhunCMwfxg==", - "optional": true, - "requires": { - "nan": "^2.14.0" - } - }, - "emoji-regex": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", - "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", - "dev": true - }, - "escalade": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", - "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==", - "dev": true - }, - "escape-string-regexp": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", - "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", - "dev": true - }, - "fill-range": { - "version": "7.1.1", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.1.1.tgz", - "integrity": "sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==", - "dev": true, - "requires": { - "to-regex-range": "^5.0.1" - } - }, - "find-up": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", - "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", - "dev": true, - "requires": { - "locate-path": "^6.0.0", - "path-exists": "^4.0.0" - } - }, - "flat": { - "version": "5.0.2", - "resolved": "https://registry.npmjs.org/flat/-/flat-5.0.2.tgz", - "integrity": "sha512-b6suED+5/3rTpUBdG1gupIl8MPFCAMA0QXwmljLhvCUKcUvdE4gWky9zpuGCcXHOsz4J9wPGNWq6OKpmIzz3hQ==", - "dev": true - }, - "fs.realpath": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", - "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==", - "dev": true - }, - "fsevents": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", - "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", - "dev": true, - "optional": true - }, - "get-caller-file": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", - "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", - "dev": true - }, - "get-func-name": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/get-func-name/-/get-func-name-2.0.2.tgz", - "integrity": "sha512-8vXOvuE167CtIc3OyItco7N/dpRtBbYOsPsXCz7X/PMnlGjYjSGuZJgM1Y7mmew7BKf9BqvLX2tnOVy1BBUsxQ==", - "dev": true - }, - "glob": { - "version": "8.1.0", - "resolved": "https://registry.npmjs.org/glob/-/glob-8.1.0.tgz", - "integrity": "sha512-r8hpEjiQEYlF2QU0df3dS+nxxSIreXQS1qRhMJM0Q5NDdR386C7jb7Hwwod8Fgiuex+k0GFjgft18yvxm5XoCQ==", - "dev": true, - "requires": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^5.0.1", - "once": "^1.3.0" - }, - "dependencies": { - "brace-expansion": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", - "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", - "dev": true, - "requires": { - "balanced-match": "^1.0.0" - } - }, - "minimatch": { - "version": "5.1.6", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.6.tgz", - "integrity": "sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==", - "dev": true, - "requires": { - "brace-expansion": "^2.0.1" - } - } - } - }, - "glob-parent": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", - "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", - "dev": true, - "requires": { - "is-glob": "^4.0.1" - } - }, - "has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true - }, - "he": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/he/-/he-1.2.0.tgz", - "integrity": "sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==", - "dev": true - }, - "inflight": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", - "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", - "devOptional": true, - "requires": { - "once": "^1.3.0", - "wrappy": "1" - } - }, - "inherits": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", - "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", - "devOptional": true - }, - "is-binary-path": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", - "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", - "dev": true, - "requires": { - "binary-extensions": "^2.0.0" - } - }, - "is-extglob": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", - "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", - "dev": true - }, - "is-fullwidth-code-point": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", - "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", - "dev": true - }, - "is-glob": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", - "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", - "dev": true, - "requires": { - "is-extglob": "^2.1.1" - } - }, - "is-number": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", - "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", - "dev": true - }, - "is-plain-obj": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-2.1.0.tgz", - "integrity": "sha512-YWnfyRwxL/+SsrWYfOpUtz5b3YD+nyfkHvjbcanzk8zgyO4ASD67uVMRt8k5bM4lLMDnXfriRhOpemw+NfT1eA==", - "dev": true - }, - "is-unicode-supported": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/is-unicode-supported/-/is-unicode-supported-0.1.0.tgz", - "integrity": "sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw==", - "dev": true - }, - "js-yaml": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", - "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", - "dev": true, - "requires": { - "argparse": "^2.0.1" - } - }, - "locate-path": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", - "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", - "dev": true, - "requires": { - "p-locate": "^5.0.0" - } - }, - "log-symbols": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-4.1.0.tgz", - "integrity": "sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg==", - "dev": true, - "requires": { - "chalk": "^4.1.0", - "is-unicode-supported": "^0.1.0" - } - }, - "loupe": { - "version": "2.3.7", - "resolved": "https://registry.npmjs.org/loupe/-/loupe-2.3.7.tgz", - "integrity": "sha512-zSMINGVYkdpYSOBmLi0D1Uo7JU9nVdQKrHxC8eYlV+9YKK9WePqAlL7lSlorG/U2Fw1w0hTBmaa/jrQ3UbPHtA==", - "dev": true, - "requires": { - "get-func-name": "^2.0.1" - } - }, - "minimatch": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", - "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", - "optional": true, - "requires": { - "brace-expansion": "^1.1.7" - } - }, - "minimist": { - "version": "1.2.8", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz", - "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==", - "optional": true - }, - "mkdirp": { - "version": "0.5.6", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.6.tgz", - "integrity": "sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==", - "optional": true, - "requires": { - "minimist": "^1.2.6" - } - }, - "mocha": { - "version": "10.8.2", - "resolved": "https://registry.npmjs.org/mocha/-/mocha-10.8.2.tgz", - "integrity": "sha512-VZlYo/WE8t1tstuRmqgeyBgCbJc/lEdopaa+axcKzTBJ+UIdlAB9XnmvTCAH4pwR4ElNInaedhEBmZD8iCSVEg==", - "dev": true, - "requires": { - "ansi-colors": "^4.1.3", - "browser-stdout": "^1.3.1", - "chokidar": "^3.5.3", - "debug": "^4.3.5", - "diff": "^5.2.0", - "escape-string-regexp": "^4.0.0", - "find-up": "^5.0.0", - "glob": "^8.1.0", - "he": "^1.2.0", - "js-yaml": "^4.1.0", - "log-symbols": "^4.1.0", - "minimatch": "^5.1.6", - "ms": "^2.1.3", - "serialize-javascript": "^6.0.2", - "strip-json-comments": "^3.1.1", - "supports-color": "^8.1.1", - "workerpool": "^6.5.1", - "yargs": "^16.2.0", - "yargs-parser": "^20.2.9", - "yargs-unparser": "^2.0.0" - }, - "dependencies": { - "brace-expansion": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", - "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", - "dev": true, - "requires": { - "balanced-match": "^1.0.0" - } - }, - "minimatch": { - "version": "5.1.6", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.6.tgz", - "integrity": "sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==", - "dev": true, - "requires": { - "brace-expansion": "^2.0.1" - } - } - } - }, - "moment": { - "version": "2.29.4", - "resolved": "https://registry.npmjs.org/moment/-/moment-2.29.4.tgz", - "integrity": "sha512-5LC9SOxjSc2HF6vO2CyuTDNivEdoz2IvyJJGj6X8DJ0eFyfszE0QiEd+iXmBvUP3WHxSjFH/vIsA0EN00cgr8w==", - "optional": true - }, - "ms": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", - "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==" - }, - "mv": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/mv/-/mv-2.1.1.tgz", - "integrity": "sha1-rmzg1vbV4KT32JN5jQPB6pVZtqI=", - "optional": true, - "requires": { - "mkdirp": "~0.5.1", - "ncp": "~2.0.0", - "rimraf": "~2.4.0" - } - }, - "nan": { - "version": "2.14.2", - "resolved": "https://registry.npmjs.org/nan/-/nan-2.14.2.tgz", - "integrity": "sha512-M2ufzIiINKCuDfBSAUr1vWQ+vuVcA9kqx8JJUsbQi6yf1uGRyb7HfpdfUr5qLXf3B/t8dPvcjhKMmlfnP47EzQ==", - "optional": true - }, - "ncp": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ncp/-/ncp-2.0.0.tgz", - "integrity": "sha1-GVoh1sRuNh0vsSgbo4uR6d9727M=", - "optional": true - }, - "normalize-path": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", - "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", - "dev": true - }, - "once": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", - "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", - "devOptional": true, - "requires": { - "wrappy": "1" - } - }, - "p-limit": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", - "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", - "dev": true, - "requires": { - "yocto-queue": "^0.1.0" - } - }, - "p-locate": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz", - "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==", - "dev": true, - "requires": { - "p-limit": "^3.0.2" - } - }, - "path-exists": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", - "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", - "dev": true - }, - "path-is-absolute": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", - "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=", - "optional": true - }, - "pathval": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/pathval/-/pathval-1.1.1.tgz", - "integrity": "sha512-Dp6zGqpTdETdR63lehJYPeIOqpiNBNtc7BpWSLrOje7UaIsE5aY92r/AunQA7rsXvet3lrJ3JnZX29UPTKXyKQ==", - "dev": true - }, - "picomatch": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", - "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", - "dev": true - }, - "querystringify": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/querystringify/-/querystringify-2.2.0.tgz", - "integrity": "sha512-FIqgj2EUvTa7R50u0rGsyTftzjYmv/a3hO345bZNrqabNqjtgiDMgmo4mkUjd+nzU5oF3dClKqFIPUKybUyqoQ==" - }, - "randombytes": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz", - "integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==", - "dev": true, - "requires": { - "safe-buffer": "^5.1.0" - } - }, - "readdirp": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", - "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", - "dev": true, - "requires": { - "picomatch": "^2.2.1" - } - }, - "require-directory": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", - "integrity": "sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==", - "dev": true - }, - "requires-port": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/requires-port/-/requires-port-1.0.0.tgz", - "integrity": "sha512-KigOCHcocU3XODJxsu8i/j8T9tzT4adHiecwORRQ0ZZFcp7ahwXuRU1m+yuO90C5ZUyGeGfocHDI14M3L3yDAQ==" - }, - "rimraf": { - "version": "2.4.5", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.4.5.tgz", - "integrity": "sha1-7nEM5dk6j9uFb7Xqj/Di11k0sto=", - "optional": true, - "requires": { - "glob": "^6.0.1" - }, - "dependencies": { - "glob": { - "version": "6.0.4", - "resolved": "https://registry.npmjs.org/glob/-/glob-6.0.4.tgz", - "integrity": "sha1-DwiGD2oVUSey+t1PnOJLGqtuTSI=", - "optional": true, - "requires": { - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "2 || 3", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - } - } - } - }, - "safe-buffer": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" - }, - "safe-json-stringify": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/safe-json-stringify/-/safe-json-stringify-1.2.0.tgz", - "integrity": "sha512-gH8eh2nZudPQO6TytOvbxnuhYBOvDBBLW52tz5q6X58lJcd/tkmqFR+5Z9adS8aJtURSXWThWy/xJtJwixErvg==", - "optional": true - }, - "serialize-javascript": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-6.0.2.tgz", - "integrity": "sha512-Saa1xPByTTq2gdeFZYLLo+RFE35NHZkAbqZeWNd3BpzppeVisAqpDjcp8dyf6uIvEqJRd46jemmyA4iFIeVk8g==", - "dev": true, - "requires": { - "randombytes": "^2.1.0" - } - }, - "string-width": { - "version": "4.2.3", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", - "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", - "dev": true, - "requires": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.1" - } - }, - "strip-ansi": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", - "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", - "dev": true, - "requires": { - "ansi-regex": "^5.0.1" - } - }, - "strip-json-comments": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", - "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", - "dev": true - }, - "supports-color": { - "version": "8.1.1", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", - "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", - "dev": true, - "requires": { - "has-flag": "^4.0.0" - } - }, - "to-regex-range": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", - "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", - "dev": true, - "requires": { - "is-number": "^7.0.0" - } - }, - "type-detect": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/type-detect/-/type-detect-4.1.0.tgz", - "integrity": "sha512-Acylog8/luQ8L7il+geoSxhEkazvkslg7PSNKOX59mbB9cOveP5aq9h74Y7YU8yDpJwetzQQrfIwtf4Wp4LKcw==", - "dev": true - }, - "url-parse": { - "version": "1.5.10", - "resolved": "https://registry.npmjs.org/url-parse/-/url-parse-1.5.10.tgz", - "integrity": "sha512-WypcfiRhfeUP9vvF0j6rw0J3hrWrw6iZv3+22h6iRMJ/8z1Tj6XfLP4DsUix5MhMPnXpiHDoKyoZ/bdCkwBCiQ==", - "requires": { - "querystringify": "^2.1.1", - "requires-port": "^1.0.0" - } - }, - "workerpool": { - "version": "6.5.1", - "resolved": "https://registry.npmjs.org/workerpool/-/workerpool-6.5.1.tgz", - "integrity": "sha512-Fs4dNYcsdpYSAfVxhnl1L5zTksjvOJxtC5hzMNl+1t9B8hTJTdKDyZ5ju7ztgPy+ft9tBFXoOlDNiOT9WUXZlA==", - "dev": true - }, - "wrap-ansi": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", - "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", - "dev": true, - "requires": { - "ansi-styles": "^4.0.0", - "string-width": "^4.1.0", - "strip-ansi": "^6.0.0" - } - }, - "wrappy": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", - "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=", - "devOptional": true - }, - "y18n": { - "version": "5.0.8", - "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", - "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==", - "dev": true - }, - "yargs": { - "version": "16.2.0", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-16.2.0.tgz", - "integrity": "sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==", - "dev": true, - "requires": { - "cliui": "^7.0.2", - "escalade": "^3.1.1", - "get-caller-file": "^2.0.5", - "require-directory": "^2.1.1", - "string-width": "^4.2.0", - "y18n": "^5.0.5", - "yargs-parser": "^20.2.2" - } - }, - "yargs-parser": { - "version": "20.2.9", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.9.tgz", - "integrity": "sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==", - "dev": true - }, - "yargs-unparser": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/yargs-unparser/-/yargs-unparser-2.0.0.tgz", - "integrity": "sha512-7pRTIA9Qc1caZ0bZ6RYRGbHJthJWuakf+WmHK0rVeLkNrrGhfoabBNdue6kdINI6r4if7ocq9aD/n7xwKOdzOA==", - "dev": true, - "requires": { - "camelcase": "^6.0.0", - "decamelize": "^4.0.0", - "flat": "^5.0.2", - "is-plain-obj": "^2.1.0" - }, - "dependencies": { - "camelcase": { - "version": "6.2.0", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.2.0.tgz", - "integrity": "sha512-c7wVvbw3f37nuobQNtgsgG9POC9qMbNuMQmTCqZv23b6MIz0fcYpBiOlv9gEN/hdLdnZTDQhg6e9Dq5M1vKvfg==", - "dev": true - }, - "decamelize": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-4.0.0.tgz", - "integrity": "sha512-9iE1PgSik9HeIIw2JO94IidnE3eBoQrFJ3w7sFuzSX4DpmZ3v5sZpUiV5Swcf6mQEF+Y0ru8Neo+p+nyh2J+hQ==", - "dev": true - } - } - }, - "yocto-queue": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", - "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==", - "dev": true - } - } -} diff --git a/webhooker/webhooker.sbin b/webhooker/webhooker.sbin deleted file mode 100755 index 99681140..00000000 --- a/webhooker/webhooker.sbin +++ /dev/null @@ -1,7 +0,0 @@ -#!/usr/bin/env bash - -WEBHOOKER=$(dirname $(realpath $0)) - -cd $WEBHOOKER - -npm start From 3d233881405ee4aa3515aef78add65706783c202 Mon Sep 17 00:00:00 2001 From: Ty Eggen Date: Thu, 6 Feb 2025 04:00:15 +0000 Subject: [PATCH 011/497] chore: formatting --- app/gateways/PaymentGatewayException.php | 3 +-- app/modules/HttpPaymentGatewayHandlerModule.php | 3 +-- app/security/oauth/modules/OAuthHandlerModule.php | 3 +-- tests/ConstantsTest.php | 6 ++---- tests/DomainTest.php | 6 ++---- tests/LimitTest.php | 6 ++---- tests/ServiceTest.php | 6 ++---- tests/WhereTest.php | 6 ++---- vhs/Singleton.php | 6 ++---- vhs/SplClassLoader.php | 6 ++---- vhs/database/Element.php | 3 +-- vhs/database/IConverter.php | 3 +-- vhs/database/IGenerator.php | 3 +-- vhs/database/access/IAccessGenerator.php | 3 +-- vhs/database/exceptions/DatabaseConnectionException.php | 3 +-- vhs/database/exceptions/DatabaseException.php | 3 +-- vhs/database/exceptions/InvalidSchemaException.php | 3 +-- vhs/domain/Schema.php | 3 +-- vhs/domain/exceptions/DomainException.php | 3 +-- .../exceptions/InvalidColumnDefinitionException.php | 3 +-- vhs/messaging/exceptions/MessageQueueException.php | 3 +-- vhs/security/CurrentUser.php | 3 +-- vhs/security/ICredentials.php | 3 +-- vhs/security/SystemPrincipal.php | 3 +-- vhs/security/exceptions/InvalidCredentials.php | 3 +-- vhs/services/IContract.php | 3 +-- vhs/services/endpoints/Endpoint.php | 3 +-- vhs/services/exceptions/InvalidContractException.php | 3 +-- vhs/services/exceptions/InvalidRequestException.php | 3 +-- vhs/web/HttpRequest.php | 3 +-- vhs/web/modules/HttpBasicAuthModule.php | 3 +-- vhs/web/modules/HttpBearerTokenAuthModule.php | 6 ++---- vhs/web/modules/HttpExceptionHandlerModule.php | 6 ++---- vhs/web/modules/HttpJsonServiceHandlerModule.php | 6 ++---- vhs/web/modules/HttpRequestHandlerModule.php | 9 +++------ vhs/web/modules/HttpServerInfoModule.php | 6 ++---- 36 files changed, 49 insertions(+), 98 deletions(-) diff --git a/app/gateways/PaymentGatewayException.php b/app/gateways/PaymentGatewayException.php index ed4d9e66..8963be62 100644 --- a/app/gateways/PaymentGatewayException.php +++ b/app/gateways/PaymentGatewayException.php @@ -10,5 +10,4 @@ namespace app\gateways; /** @typescript */ -class PaymentGatewayException extends \Exception { -} +class PaymentGatewayException extends \Exception {} diff --git a/app/modules/HttpPaymentGatewayHandlerModule.php b/app/modules/HttpPaymentGatewayHandlerModule.php index 35858abd..282c64ca 100644 --- a/app/modules/HttpPaymentGatewayHandlerModule.php +++ b/app/modules/HttpPaymentGatewayHandlerModule.php @@ -43,6 +43,5 @@ public static function register(IPaymentGateway $gateway, $url = null) { self::getInstance()->register_internal('PUT', $path, $handler); } - private function __clone() { - } + private function __clone() {} } diff --git a/app/security/oauth/modules/OAuthHandlerModule.php b/app/security/oauth/modules/OAuthHandlerModule.php index 0282a87a..338c4194 100644 --- a/app/security/oauth/modules/OAuthHandlerModule.php +++ b/app/security/oauth/modules/OAuthHandlerModule.php @@ -37,6 +37,5 @@ public static function register(OAuthHandler $handler) { self::getInstance()->register_internal('PUT', $url, $handler); } - private function __clone() { - } + private function __clone() {} } diff --git a/tests/ConstantsTest.php b/tests/ConstantsTest.php index 80efd9b9..fbeba59e 100644 --- a/tests/ConstantsTest.php +++ b/tests/ConstantsTest.php @@ -42,9 +42,7 @@ public function test_StringLiterals_HTTPS_PREFIX() { $this->assertEquals('https://', StringLiterals::HTTPS_PREFIX); } - protected function setUp(): void { - } + protected function setUp(): void {} - protected function tearDown(): void { - } + protected function tearDown(): void {} } diff --git a/tests/DomainTest.php b/tests/DomainTest.php index 75dc2d54..fd9ca74e 100644 --- a/tests/DomainTest.php +++ b/tests/DomainTest.php @@ -257,9 +257,7 @@ public static function tearDownAfterClass(): void { //\vhs\database\Database::arbitrary("DROP DATABASE " . DB_DATABASE); } - protected function setUp(): void { - } + protected function setUp(): void {} - protected function tearDown(): void { - } + protected function tearDown(): void {} } diff --git a/tests/LimitTest.php b/tests/LimitTest.php index 619e85b5..fe3ae061 100644 --- a/tests/LimitTest.php +++ b/tests/LimitTest.php @@ -80,14 +80,12 @@ public static function setUpBeforeClass(): void { Database::setRethrow(true); } - public static function tearDownAfterClass(): void { - } + public static function tearDownAfterClass(): void {} public function setUp(): void { $this->mySqlGenerator = new \vhs\database\engines\mysql\MySqlGenerator(); $this->inMemoryGenerator = new \vhs\database\engines\memory\InMemoryGenerator(); } - public function tearDown(): void { - } + public function tearDown(): void {} } diff --git a/tests/ServiceTest.php b/tests/ServiceTest.php index 97b25d9e..be47060b 100644 --- a/tests/ServiceTest.php +++ b/tests/ServiceTest.php @@ -241,11 +241,9 @@ public static function setUpBeforeClass(): void { ServiceRegistry::register($logger, 'native', 'tests\\endpoints\\native', dirname(__FILE__) . '/..'); } - public static function tearDownAfterClass(): void { - } + public static function tearDownAfterClass(): void {} - protected function setUp(): void { - } + protected function setUp(): void {} protected function tearDown(): void { \vhs\security\CurrentUser::setPrincipal(new \vhs\security\AnonPrincipal()); diff --git a/tests/WhereTest.php b/tests/WhereTest.php index a3a67735..f16b59e4 100644 --- a/tests/WhereTest.php +++ b/tests/WhereTest.php @@ -332,14 +332,12 @@ public static function setUpBeforeClass(): void { Database::setRethrow(true); } - public static function tearDownAfterClass(): void { - } + public static function tearDownAfterClass(): void {} public function setUp(): void { $this->mySqlGenerator = new \vhs\database\engines\mysql\MySqlGenerator(); $this->inMemoryGenerator = new \vhs\database\engines\memory\InMemoryGenerator(); } - public function tearDown(): void { - } + public function tearDown(): void {} } diff --git a/vhs/Singleton.php b/vhs/Singleton.php index 0d3c22a1..f7e57944 100644 --- a/vhs/Singleton.php +++ b/vhs/Singleton.php @@ -11,8 +11,7 @@ /** @typescript */ abstract class Singleton { - protected function __construct() { - } + protected function __construct() {} final public static function getInstance() { static $aoInstance = []; @@ -26,6 +25,5 @@ final public static function getInstance() { return $aoInstance[$class]; } - private function __clone() { - } + private function __clone() {} } diff --git a/vhs/SplClassLoader.php b/vhs/SplClassLoader.php index 2762077e..8728b3ce 100644 --- a/vhs/SplClassLoader.php +++ b/vhs/SplClassLoader.php @@ -20,8 +20,7 @@ class SplClassLoader { private $_items = []; private $_namespaceSeparator = '\\'; - protected function __construct() { - } + protected function __construct() {} final public static function getInstance() { static $aoInstance = []; @@ -123,6 +122,5 @@ public function unregister() { spl_autoload_unregister([$this, 'loadClass']); } - private function __clone() { - } + private function __clone() {} } diff --git a/vhs/database/Element.php b/vhs/database/Element.php index e2d32d60..b24da60f 100644 --- a/vhs/database/Element.php +++ b/vhs/database/Element.php @@ -15,6 +15,5 @@ abstract class Element implements IGeneratable { use Cloneable; - protected function __updateTable(Table &$table) { - } + protected function __updateTable(Table &$table) {} } diff --git a/vhs/database/IConverter.php b/vhs/database/IConverter.php index 36db7a66..65145908 100644 --- a/vhs/database/IConverter.php +++ b/vhs/database/IConverter.php @@ -10,5 +10,4 @@ namespace vhs\database; /** @typescript */ -interface IConverter { -} +interface IConverter {} diff --git a/vhs/database/IGenerator.php b/vhs/database/IGenerator.php index 9902bfd8..211994ae 100644 --- a/vhs/database/IGenerator.php +++ b/vhs/database/IGenerator.php @@ -10,5 +10,4 @@ namespace vhs\database; /** @typescript */ -interface IGenerator { -} +interface IGenerator {} diff --git a/vhs/database/access/IAccessGenerator.php b/vhs/database/access/IAccessGenerator.php index 76751364..3cddeadd 100644 --- a/vhs/database/access/IAccessGenerator.php +++ b/vhs/database/access/IAccessGenerator.php @@ -10,5 +10,4 @@ namespace vhs\database\access; /** @typescript */ -interface IAccessGenerator { -} +interface IAccessGenerator {} diff --git a/vhs/database/exceptions/DatabaseConnectionException.php b/vhs/database/exceptions/DatabaseConnectionException.php index f11e71fe..75b449e2 100644 --- a/vhs/database/exceptions/DatabaseConnectionException.php +++ b/vhs/database/exceptions/DatabaseConnectionException.php @@ -10,5 +10,4 @@ namespace vhs\database\exceptions; /** @typescript */ -class DatabaseConnectionException extends DatabaseException { -} +class DatabaseConnectionException extends DatabaseException {} diff --git a/vhs/database/exceptions/DatabaseException.php b/vhs/database/exceptions/DatabaseException.php index 99be7489..556d47bd 100644 --- a/vhs/database/exceptions/DatabaseException.php +++ b/vhs/database/exceptions/DatabaseException.php @@ -10,5 +10,4 @@ namespace vhs\database\exceptions; /** @typescript */ -class DatabaseException extends \Exception { -} +class DatabaseException extends \Exception {} diff --git a/vhs/database/exceptions/InvalidSchemaException.php b/vhs/database/exceptions/InvalidSchemaException.php index 168130bf..c2be1a7b 100644 --- a/vhs/database/exceptions/InvalidSchemaException.php +++ b/vhs/database/exceptions/InvalidSchemaException.php @@ -10,5 +10,4 @@ namespace vhs\database\exceptions; /** @typescript */ -class InvalidSchemaException extends \Exception { -} +class InvalidSchemaException extends \Exception {} diff --git a/vhs/domain/Schema.php b/vhs/domain/Schema.php index f7f0c375..3aa077b8 100644 --- a/vhs/domain/Schema.php +++ b/vhs/domain/Schema.php @@ -99,6 +99,5 @@ private static function getInstance() { return $aoInstance[$class]; } - private function __clone() { - } + private function __clone() {} } diff --git a/vhs/domain/exceptions/DomainException.php b/vhs/domain/exceptions/DomainException.php index 32516a67..c9d96e98 100644 --- a/vhs/domain/exceptions/DomainException.php +++ b/vhs/domain/exceptions/DomainException.php @@ -10,5 +10,4 @@ namespace vhs\domain\exceptions; /** @typescript */ -class DomainException extends \Exception { -} +class DomainException extends \Exception {} diff --git a/vhs/domain/exceptions/InvalidColumnDefinitionException.php b/vhs/domain/exceptions/InvalidColumnDefinitionException.php index 5118b71a..3cff5155 100644 --- a/vhs/domain/exceptions/InvalidColumnDefinitionException.php +++ b/vhs/domain/exceptions/InvalidColumnDefinitionException.php @@ -10,5 +10,4 @@ namespace vhs\domain\exceptions; /** @typescript */ -class InvalidColumnDefinitionException extends DomainException { -} +class InvalidColumnDefinitionException extends DomainException {} diff --git a/vhs/messaging/exceptions/MessageQueueException.php b/vhs/messaging/exceptions/MessageQueueException.php index f6a79aa0..4b4aea78 100644 --- a/vhs/messaging/exceptions/MessageQueueException.php +++ b/vhs/messaging/exceptions/MessageQueueException.php @@ -10,5 +10,4 @@ namespace vhs\messaging\exceptions; /** @typescript */ -class MessageQueueException extends \Exception { -} +class MessageQueueException extends \Exception {} diff --git a/vhs/security/CurrentUser.php b/vhs/security/CurrentUser.php index 4ae6de25..09875ea4 100644 --- a/vhs/security/CurrentUser.php +++ b/vhs/security/CurrentUser.php @@ -76,6 +76,5 @@ final protected static function getInstance() { } } - private function __clone() { - } + private function __clone() {} } diff --git a/vhs/security/ICredentials.php b/vhs/security/ICredentials.php index e0c34e57..8f7e625e 100644 --- a/vhs/security/ICredentials.php +++ b/vhs/security/ICredentials.php @@ -10,5 +10,4 @@ namespace vhs\security; /** @typescript */ -interface ICredentials { -} +interface ICredentials {} diff --git a/vhs/security/SystemPrincipal.php b/vhs/security/SystemPrincipal.php index c6a52659..9180eb89 100644 --- a/vhs/security/SystemPrincipal.php +++ b/vhs/security/SystemPrincipal.php @@ -6,8 +6,7 @@ /** @typescript */ class SystemPrincipal implements IPrincipal, \JsonSerializable { - public function __construct() { - } + public function __construct() {} public function canGrantAllPermissions(...$permission) { return true; diff --git a/vhs/security/exceptions/InvalidCredentials.php b/vhs/security/exceptions/InvalidCredentials.php index 11c7ed60..3696537f 100644 --- a/vhs/security/exceptions/InvalidCredentials.php +++ b/vhs/security/exceptions/InvalidCredentials.php @@ -10,5 +10,4 @@ namespace vhs\security\exceptions; /** @typescript */ -class InvalidCredentials extends \Exception { -} +class InvalidCredentials extends \Exception {} diff --git a/vhs/services/IContract.php b/vhs/services/IContract.php index 0adbcb52..ed16b81a 100644 --- a/vhs/services/IContract.php +++ b/vhs/services/IContract.php @@ -10,5 +10,4 @@ namespace vhs\services; /** @typescript */ -interface IContract { -} +interface IContract {} diff --git a/vhs/services/endpoints/Endpoint.php b/vhs/services/endpoints/Endpoint.php index 911542c4..fc37eb93 100644 --- a/vhs/services/endpoints/Endpoint.php +++ b/vhs/services/endpoints/Endpoint.php @@ -180,6 +180,5 @@ private function getMethodPermissions(\ReflectionMethod $method) { return $permissions; } - private function __clone() { - } + private function __clone() {} } diff --git a/vhs/services/exceptions/InvalidContractException.php b/vhs/services/exceptions/InvalidContractException.php index 51825cda..468b1cc7 100644 --- a/vhs/services/exceptions/InvalidContractException.php +++ b/vhs/services/exceptions/InvalidContractException.php @@ -10,5 +10,4 @@ namespace vhs\services\exceptions; /** @typescript */ -class InvalidContractException extends \Exception { -} +class InvalidContractException extends \Exception {} diff --git a/vhs/services/exceptions/InvalidRequestException.php b/vhs/services/exceptions/InvalidRequestException.php index 1e2fb5b6..12468918 100644 --- a/vhs/services/exceptions/InvalidRequestException.php +++ b/vhs/services/exceptions/InvalidRequestException.php @@ -10,5 +10,4 @@ namespace vhs\services\exceptions; /** @typescript */ -class InvalidRequestException extends \Exception { -} +class InvalidRequestException extends \Exception {} diff --git a/vhs/web/HttpRequest.php b/vhs/web/HttpRequest.php index 6718ac53..3462b567 100644 --- a/vhs/web/HttpRequest.php +++ b/vhs/web/HttpRequest.php @@ -20,6 +20,5 @@ class HttpRequest { /** @var string */ public $url; - public function __construct() { - } + public function __construct() {} } diff --git a/vhs/web/modules/HttpBasicAuthModule.php b/vhs/web/modules/HttpBasicAuthModule.php index 49769884..3d25222b 100644 --- a/vhs/web/modules/HttpBasicAuthModule.php +++ b/vhs/web/modules/HttpBasicAuthModule.php @@ -25,8 +25,7 @@ public function __construct($realm, IAuthenticate $authorizer) { $this->authorizer = $authorizer; } - public function endResponse(HttpServer $server) { - } + public function endResponse(HttpServer $server) {} public function handle(HttpServer $server) { if (array_key_exists('PHP_AUTH_USER', $_SERVER) && $_SERVER['PHP_AUTH_USER'] && !$this->authorizer->isAuthenticated()) { diff --git a/vhs/web/modules/HttpBearerTokenAuthModule.php b/vhs/web/modules/HttpBearerTokenAuthModule.php index 118d0ca3..f1f8a11b 100644 --- a/vhs/web/modules/HttpBearerTokenAuthModule.php +++ b/vhs/web/modules/HttpBearerTokenAuthModule.php @@ -25,8 +25,7 @@ public function __construct(IAuthenticate $authorizer) { $this->authorizer = $authorizer; } - public function endResponse(HttpServer $server) { - } + public function endResponse(HttpServer $server) {} public function handle(HttpServer $server) { $bearerToken = null; @@ -50,6 +49,5 @@ public function handle(HttpServer $server) { } } - public function handleException(HttpServer $server, \Exception $ex) { - } + public function handleException(HttpServer $server, \Exception $ex) {} } diff --git a/vhs/web/modules/HttpExceptionHandlerModule.php b/vhs/web/modules/HttpExceptionHandlerModule.php index e628cab2..923b9ecb 100644 --- a/vhs/web/modules/HttpExceptionHandlerModule.php +++ b/vhs/web/modules/HttpExceptionHandlerModule.php @@ -24,11 +24,9 @@ public function __construct($level, Logger &$logger) { $this->logger = $logger; } - public function endResponse(HttpServer $server) { - } + public function endResponse(HttpServer $server) {} - public function handle(HttpServer $server) { - } + public function handle(HttpServer $server) {} public function handleException(HttpServer $server, \Exception $ex) { $this->logger->log($ex->getMessage()); diff --git a/vhs/web/modules/HttpJsonServiceHandlerModule.php b/vhs/web/modules/HttpJsonServiceHandlerModule.php index 1e30efb6..eff3797f 100644 --- a/vhs/web/modules/HttpJsonServiceHandlerModule.php +++ b/vhs/web/modules/HttpJsonServiceHandlerModule.php @@ -22,8 +22,7 @@ public function __construct($registryKey) { $this->registryKey = $registryKey; } - public function endResponse(HttpServer $server) { - } + public function endResponse(HttpServer $server) {} public function handle(HttpServer $server) { $input = null; @@ -60,6 +59,5 @@ public function handle(HttpServer $server) { } } - public function handleException(HttpServer $server, \Exception $ex) { - } + public function handleException(HttpServer $server, \Exception $ex) {} } diff --git a/vhs/web/modules/HttpRequestHandlerModule.php b/vhs/web/modules/HttpRequestHandlerModule.php index 80ef7317..301ea58d 100644 --- a/vhs/web/modules/HttpRequestHandlerModule.php +++ b/vhs/web/modules/HttpRequestHandlerModule.php @@ -17,11 +17,9 @@ abstract class HttpRequestHandlerModule implements IHttpModule { private $registry = []; - public function __construct() { - } + public function __construct() {} - public function endResponse(HttpServer $server) { - } + public function endResponse(HttpServer $server) {} public function handle(HttpServer $server) { if (array_key_exists($server->request->method, $this->registry)) { @@ -31,8 +29,7 @@ public function handle(HttpServer $server) { } } - public function handleException(HttpServer $server, \Exception $ex) { - } + public function handleException(HttpServer $server, \Exception $ex) {} protected function register_internal($method, $url, HttpRequestHandler $handler) { if (!array_key_exists($method, $this->registry)) { diff --git a/vhs/web/modules/HttpServerInfoModule.php b/vhs/web/modules/HttpServerInfoModule.php index 36311fd2..b59c5d91 100644 --- a/vhs/web/modules/HttpServerInfoModule.php +++ b/vhs/web/modules/HttpServerInfoModule.php @@ -20,13 +20,11 @@ public function __construct($name = 'Madhacks') { $this->name = $name; } - public function endResponse(HttpServer $server) { - } + public function endResponse(HttpServer $server) {} public function handle(HttpServer $server) { $server->header('Server: ' . $this->name); } - public function handleException(HttpServer $server, \Exception $ex) { - } + public function handleException(HttpServer $server, \Exception $ex) {} } From 0ba9b78042c5bd10897441f9d54b0a9bdd242e54 Mon Sep 17 00:00:00 2001 From: Ty Eggen Date: Thu, 6 Feb 2025 04:04:05 +0000 Subject: [PATCH 012/497] ci: pnpm in circle ci config --- .circleci/config.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.circleci/config.yml b/.circleci/config.yml index 39784957..8b01120a 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -39,7 +39,7 @@ jobs: - v1-dep-master- - v1-dep- - - run: npm ci + - run: corepack enable && pnpm ci - save_cache: key: v1-dep-{{ .Branch }}-{{ epoch }} @@ -55,7 +55,7 @@ jobs: - ~/.gradle - ~/.cache/bower - - run: npm run test + - run: pnpm run test - store_test_results: path: /tmp/circleci-test-results From 75996b20270a79aad56d237c0b54a633c1a73d03 Mon Sep 17 00:00:00 2001 From: Ty Eggen Date: Thu, 6 Feb 2025 04:13:49 +0000 Subject: [PATCH 013/497] ci: circleci corepack fix --- .circleci/config.yml | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/.circleci/config.yml b/.circleci/config.yml index 8b01120a..ec22eeac 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -38,14 +38,18 @@ jobs: - v1-dep-{{ .Branch }}- - v1-dep-master- - v1-dep- + - pnpm-packages-{{ checksum "pnpm-lock.yaml" }} - - run: corepack enable && pnpm ci + - run: + name: Install pnpm package manager + command: | + sudo corepack enable + sudo corepack prepare pnpm@latest-10 --activate + pnpm config set store-dir .pnpm-store - save_cache: key: v1-dep-{{ .Branch }}-{{ epoch }} paths: - # This is a broad list of cache paths to include many possible development environments - # You can probably delete some of these entries - vendor/ - ~/virtualenvs - ~/.m2 @@ -54,6 +58,7 @@ jobs: - ~/.go_workspace - ~/.gradle - ~/.cache/bower + - .pnpm-store - run: pnpm run test From 4de9fe2662f746721094a1c909b792ee519ba20f Mon Sep 17 00:00:00 2001 From: Ty Eggen Date: Thu, 6 Feb 2025 04:19:23 +0000 Subject: [PATCH 014/497] fix(ci): force npm and corepack install as hash issue workaround --- .circleci/config.yml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.circleci/config.yml b/.circleci/config.yml index ec22eeac..c8cf5f9e 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -43,6 +43,8 @@ jobs: - run: name: Install pnpm package manager command: | + sudo npm install -g npm@latest + sudo npm install -g corepack@latest sudo corepack enable sudo corepack prepare pnpm@latest-10 --activate pnpm config set store-dir .pnpm-store From 0c69da7104e7df2b7d7476be7981063adcfe042e Mon Sep 17 00:00:00 2001 From: Ty Eggen Date: Thu, 6 Feb 2025 04:21:47 +0000 Subject: [PATCH 015/497] fix(ci): run scripts --- .circleci/config.yml | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/.circleci/config.yml b/.circleci/config.yml index c8cf5f9e..731f82ba 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -49,6 +49,14 @@ jobs: sudo corepack prepare pnpm@latest-10 --activate pnpm config set store-dir .pnpm-store + - run: + name: Install dependencies + command: pnpm install + + - run: + name: Run tests + command: pnpm run test + - save_cache: key: v1-dep-{{ .Branch }}-{{ epoch }} paths: @@ -62,8 +70,6 @@ jobs: - ~/.cache/bower - .pnpm-store - - run: pnpm run test - - store_test_results: path: /tmp/circleci-test-results From 2a96504b22bdc7a67482be2faf5f28a2b79df939 Mon Sep 17 00:00:00 2001 From: Ty Eggen Date: Thu, 6 Feb 2025 04:28:23 +0000 Subject: [PATCH 016/497] fix(tools): default value for COMPOSER_INSTALL_OPT in justfile --- justfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/justfile b/justfile index 25cd37e3..f1115ebe 100644 --- a/justfile +++ b/justfile @@ -46,7 +46,7 @@ install_composer: echo "composer has already been set up!" fi - ./tools/composer.sh install "${COMPOSER_INSTALL_OPT}" + ./tools/composer.sh install "${COMPOSER_INSTALL_OPT:-""}" install_angular_ui_bootstrap: #!/usr/bin/env bash From 5e7496aa270ead3ebf354c7086b62592ab717d4b Mon Sep 17 00:00:00 2001 From: Ty Eggen Date: Thu, 6 Feb 2025 04:33:19 +0000 Subject: [PATCH 017/497] fix(tools): improved env var null value handling --- justfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/justfile b/justfile index f1115ebe..3a6998ea 100644 --- a/justfile +++ b/justfile @@ -46,7 +46,7 @@ install_composer: echo "composer has already been set up!" fi - ./tools/composer.sh install "${COMPOSER_INSTALL_OPT:-""}" + ./tools/composer.sh install ${COMPOSER_INSTALL_OPT:-} install_angular_ui_bootstrap: #!/usr/bin/env bash From 663018d67cac02e6d13ef3ee6d3f51d7b295d8a7 Mon Sep 17 00:00:00 2001 From: Ty Eggen Date: Thu, 6 Feb 2025 19:23:05 +0000 Subject: [PATCH 018/497] fix(build): change docker startup scripts to use sh instead of bash --- docker/docker_compose_run.sh | 4 ++-- docker/docker_env_config.sh | 17 ++++++++++------- 2 files changed, 12 insertions(+), 9 deletions(-) diff --git a/docker/docker_compose_run.sh b/docker/docker_compose_run.sh index 652b7111..e78c42a0 100755 --- a/docker/docker_compose_run.sh +++ b/docker/docker_compose_run.sh @@ -1,6 +1,6 @@ -#!/bin/bash +#!/bin/sh -docker_env_config.sh > /var/www/html/conf/env.php +/usr/local/bin/docker_env_config.sh (cd /var/www/html/tools && php migrate.php -b -m -t) diff --git a/docker/docker_env_config.sh b/docker/docker_env_config.sh index 91543718..3b5ee133 100755 --- a/docker/docker_env_config.sh +++ b/docker/docker_env_config.sh @@ -1,9 +1,12 @@ -#!/bin/bash +#!/bin/sh -echo " /var/www/html/conf/env.php From 91e5211e2d9c4396b18427547f431b3da94f0f50 Mon Sep 17 00:00:00 2001 From: Ty Eggen Date: Thu, 6 Feb 2025 19:55:11 +0000 Subject: [PATCH 019/497] fix(build): missing external script in docker_compose_run.sh --- docker/docker_compose_run.sh | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/docker/docker_compose_run.sh b/docker/docker_compose_run.sh index e78c42a0..273798d5 100755 --- a/docker/docker_compose_run.sh +++ b/docker/docker_compose_run.sh @@ -1,7 +1,14 @@ #!/bin/sh +# shellcheck shell=bash /usr/local/bin/docker_env_config.sh (cd /var/www/html/tools && php migrate.php -b -m -t) -exec /usr/local/bin/docker-php-entrypoint "$@" +CMD="$*" + +if [ "${CMD:0:1}" = "-" ]; then + CMD="php-fpm ${CMD}" +fi + +echo exec "${CMD}" From b03b36dc3551a1137d28bfc163590a9d2261fd72 Mon Sep 17 00:00:00 2001 From: Ty Eggen Date: Thu, 6 Feb 2025 19:55:49 +0000 Subject: [PATCH 020/497] fix(build): missing dependency (mysqldump) for backend --- docker-compose/Dockerfile | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docker-compose/Dockerfile b/docker-compose/Dockerfile index 6bb9daf6..f1b17a1e 100644 --- a/docker-compose/Dockerfile +++ b/docker-compose/Dockerfile @@ -15,7 +15,7 @@ RUN npm install -g npm@latest && npm install -g corepack@latest FROM base AS build-base -RUN apk --no-cache add alpine-sdk bash git just php83 php83-bcmath php83-common php83-curl php83-dom php83-mbstring php83-mysqli php83-mysqlnd php83-openssl php83-phar php83-simplexml php83-tokenizer php83-xml php83-xmlwriter php83-zip python3 wget +RUN apk --no-cache add alpine-sdk bash git just mariadb-client php83 php83-bcmath php83-common php83-curl php83-dom php83-mbstring php83-mysqli php83-mysqlnd php83-openssl php83-phar php83-simplexml php83-tokenizer php83-xml php83-xmlwriter php83-zip python3 wget FROM build-base AS build @@ -35,7 +35,7 @@ RUN pnpm deploy --filter="@vhs/webhooker" --prod /app/webhooker/ FROM alpine:3 AS backend-base -RUN apk --no-cache add just php83 php83-bcmath php83-common php83-fpm php83-mysqli php83-mysqlnd php83-openssl php83-zip python3 wget +RUN apk --no-cache add just mariadb-client php83 php83-bcmath php83-common php83-fpm php83-mysqli php83-mysqlnd php83-openssl php83-zip python3 wget VOLUME ["/sessions"] From ec067ffe9ecddeed369d6e062aa6307659cfcb29 Mon Sep 17 00:00:00 2001 From: Ty Eggen Date: Thu, 6 Feb 2025 20:00:15 +0000 Subject: [PATCH 021/497] fix(build): fixed accidental echo in docker_compose_run.sh because I'm very smart --- docker/docker_compose_run.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docker/docker_compose_run.sh b/docker/docker_compose_run.sh index 273798d5..4958ec97 100755 --- a/docker/docker_compose_run.sh +++ b/docker/docker_compose_run.sh @@ -11,4 +11,4 @@ if [ "${CMD:0:1}" = "-" ]; then CMD="php-fpm ${CMD}" fi -echo exec "${CMD}" +exec "${CMD}" From 60f367666b4a35f57c5396ede1d49717a19b88bd Mon Sep 17 00:00:00 2001 From: Ty Eggen Date: Thu, 6 Feb 2025 20:06:26 +0000 Subject: [PATCH 022/497] build: pinned version php-fpm binary --- docker-compose/Dockerfile | 2 +- docker/docker_compose_run.sh | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/docker-compose/Dockerfile b/docker-compose/Dockerfile index f1b17a1e..af1c11a6 100644 --- a/docker-compose/Dockerfile +++ b/docker-compose/Dockerfile @@ -48,7 +48,7 @@ FROM backend-base AS backend WORKDIR /var/www/html ENTRYPOINT [ "docker_compose_run.sh" ] -CMD ["php-fpm"] +CMD ["php-fpm83"] COPY --from=build /build/app/ app/ COPY --from=build /build/migrations/ migrations/ diff --git a/docker/docker_compose_run.sh b/docker/docker_compose_run.sh index 4958ec97..dfd29068 100755 --- a/docker/docker_compose_run.sh +++ b/docker/docker_compose_run.sh @@ -8,7 +8,7 @@ CMD="$*" if [ "${CMD:0:1}" = "-" ]; then - CMD="php-fpm ${CMD}" + CMD="php-fpm83 ${CMD}" fi exec "${CMD}" From 6304dde37005321927eacb3371a0d6cac011e5d9 Mon Sep 17 00:00:00 2001 From: Ty Eggen Date: Thu, 6 Feb 2025 20:36:40 +0000 Subject: [PATCH 023/497] refactor(backend): improved backup consistency --- docker-compose/Dockerfile | 4 ++++ docker-compose/core.yml | 2 ++ tools/migrate.php | 6 +++--- vhs/migration/Backup.php | 20 +++++++++----------- 4 files changed, 18 insertions(+), 14 deletions(-) diff --git a/docker-compose/Dockerfile b/docker-compose/Dockerfile index af1c11a6..dd4eac13 100644 --- a/docker-compose/Dockerfile +++ b/docker-compose/Dockerfile @@ -47,6 +47,10 @@ FROM backend-base AS backend WORKDIR /var/www/html +VOLUME ["/var/www/html/backup"] + +RUN mkdir -p /var/www/html/backup && chown nobody:nobody /var/www/html/backup + ENTRYPOINT [ "docker_compose_run.sh" ] CMD ["php-fpm83"] diff --git a/docker-compose/core.yml b/docker-compose/core.yml index b514ccd2..32cc84eb 100644 --- a/docker-compose/core.yml +++ b/docker-compose/core.yml @@ -12,3 +12,5 @@ services: image: vanhack/nomos-backend container_name: nomos-backend restart: always + volumes: + - ../data/backup:/var/www/html/backup diff --git a/tools/migrate.php b/tools/migrate.php index f3c41aac..89d8c11d 100644 --- a/tools/migrate.php +++ b/tools/migrate.php @@ -4,11 +4,11 @@ use vhs\migration\Backup; use vhs\migration\Migrator; -require_once dirname(__FILE__) . '/../vhs/vhs.php'; +require_once __DIR__ . '/../vhs/vhs.php'; define('_VALID_PHP', true); -require_once '../conf/config.ini.php'; +require_once __DIR__ . '/../conf/config.ini.php'; $target_version = null; $do_migrate = null; @@ -44,7 +44,7 @@ } if ($do_migrate) { $migrator = new Migrator(DB_SERVER, DB_USER, DB_PASS, DB_DATABASE, new ConsoleLogger()); - if ($migrator->migrate($target_version, '../migrations')) { + if ($migrator->migrate($target_version, __DIR__ . '/../migrations')) { print "Migration succeeded\n"; } else { print "Migration failed\n"; diff --git a/vhs/migration/Backup.php b/vhs/migration/Backup.php index 0221aeca..a1b4ba21 100644 --- a/vhs/migration/Backup.php +++ b/vhs/migration/Backup.php @@ -36,26 +36,24 @@ public function __construct($server, $user, $password, $database, Logger $logger public function external_backup($do_host = false, $fileName = null, $backupPath = 'backup/') { $this->logger->log('Starting backup'); - $fileName = !is_null($fileName) ? $fileName : 'db-backup-' . time() . '.sql'; + $fileName = !is_null($fileName) ? $fileName : sprintf('db-backup-%s.sql', time()); $command = []; $command[] = 'mysqldump'; - $command[] = "-u '" . $this->user . "'"; - $command[] = '-p' . $this->password; + $command[] = sprintf("-u '%s'", $this->user); + $command[] = sprintf("-p '%s'", $this->password); if ($do_host == true) { - $command[] = '--host ' . $this->server; + $command[] = '--host'; + $command[] = $this->server; + $command[] = '--skip-ssl-verify-server-cert'; } - $command[] = "'" . $this->database . "'"; + $command[] = sprintf("'%s'", $this->database); $command[] = '>'; - $command[] = "'" . $backupPath . $fileName . "'"; + $command[] = sprintf("'%s%s'", $backupPath, $fileName); exec(implode(' ', $command), $output, $return); - if (!$return) { - return true; - } else { - return false; - } + return !$return; } public function internal_backup($fileName = null, $backupPath = 'backup/') { From 4fe8d9c78c9fb7dc1f868a837ff290b2b60983ca Mon Sep 17 00:00:00 2001 From: Ty Eggen Date: Thu, 6 Feb 2025 20:54:03 +0000 Subject: [PATCH 024/497] fix(backend): prevent php-fpm from daemonizing --- docker-compose/Dockerfile | 1 + 1 file changed, 1 insertion(+) diff --git a/docker-compose/Dockerfile b/docker-compose/Dockerfile index dd4eac13..5b41d5ad 100644 --- a/docker-compose/Dockerfile +++ b/docker-compose/Dockerfile @@ -62,6 +62,7 @@ COPY --from=build /build/vendor/ vendor/ COPY --from=build /build/docker/*.sh /usr/local/bin/ COPY --from=build /build/conf/config.docker.ini.php /var/www/html/conf/config.ini.php +COPY --from=build /build/conf/php-fpm.conf /etc/php83/php-fpm.d/docker.conf FROM nginx:stable-alpine AS frontend From 22dfc7a749d8102d6456b53ee33ba15d54ce39fe Mon Sep 17 00:00:00 2001 From: Ty Eggen Date: Thu, 6 Feb 2025 20:57:04 +0000 Subject: [PATCH 025/497] feat(backend): config to prevent php-fpm from daemonizing --- conf/php-fpm.conf | 2 ++ 1 file changed, 2 insertions(+) create mode 100644 conf/php-fpm.conf diff --git a/conf/php-fpm.conf b/conf/php-fpm.conf new file mode 100644 index 00000000..c50c3602 --- /dev/null +++ b/conf/php-fpm.conf @@ -0,0 +1,2 @@ +[global] +daemonize = no From 1c97468b64d35db7c1df1d3c0c341508dbca2192 Mon Sep 17 00:00:00 2001 From: Ty Eggen Date: Thu, 6 Feb 2025 20:57:46 +0000 Subject: [PATCH 026/497] feat(dev): prettier config to make prettier format the config that prevents php-fpm from daemonizing --- prettier.config.mjs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/prettier.config.mjs b/prettier.config.mjs index bd8b5cdf..970c66bb 100644 --- a/prettier.config.mjs +++ b/prettier.config.mjs @@ -17,7 +17,7 @@ const config = { } }, { - files: ['*.sh', 'packages/webhooker/webhooker.console', 'packages/webhooker/webhooker.sbin', '.npmrc'], + files: ['*.sh', 'packages/webhooker/webhooker.console', 'packages/webhooker/webhooker.sbin', '.npmrc', 'conf/php-fpm.conf'], options: { parser: 'sh' } From 9f033fe2ac744c7af1e33c6a396e1aa1f22fa4dd Mon Sep 17 00:00:00 2001 From: Ty Eggen Date: Thu, 6 Feb 2025 21:02:14 +0000 Subject: [PATCH 027/497] dev: improved prettier php-fpm config matching --- prettier.config.mjs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/prettier.config.mjs b/prettier.config.mjs index 970c66bb..d9de62fb 100644 --- a/prettier.config.mjs +++ b/prettier.config.mjs @@ -17,7 +17,7 @@ const config = { } }, { - files: ['*.sh', 'packages/webhooker/webhooker.console', 'packages/webhooker/webhooker.sbin', '.npmrc', 'conf/php-fpm.conf'], + files: ['*.sh', 'packages/webhooker/webhooker.console', 'packages/webhooker/webhooker.sbin', '.npmrc', 'conf/php-fpm/*.conf'], options: { parser: 'sh' } From 27c972e89a59542435e0ad0d17707dc0a86ba1f6 Mon Sep 17 00:00:00 2001 From: Ty Eggen Date: Thu, 6 Feb 2025 21:12:28 +0000 Subject: [PATCH 028/497] build: support more custom php-fpm config files --- conf/php-fpm/00-defaults.conf | 9 +++++++++ conf/{php-fpm.conf => php-fpm/99-no-daemonize.conf} | 0 docker-compose/Dockerfile | 2 +- 3 files changed, 10 insertions(+), 1 deletion(-) create mode 100644 conf/php-fpm/00-defaults.conf rename conf/{php-fpm.conf => php-fpm/99-no-daemonize.conf} (100%) diff --git a/conf/php-fpm/00-defaults.conf b/conf/php-fpm/00-defaults.conf new file mode 100644 index 00000000..f0f85f24 --- /dev/null +++ b/conf/php-fpm/00-defaults.conf @@ -0,0 +1,9 @@ +[global] +error_log = /proc/self/fd/2 +log_limit = 8192 + +[www] +access.log = /proc/self/fd/2 +clear_env = no +catch_workers_output = yes +decorate_workers_output = no diff --git a/conf/php-fpm.conf b/conf/php-fpm/99-no-daemonize.conf similarity index 100% rename from conf/php-fpm.conf rename to conf/php-fpm/99-no-daemonize.conf diff --git a/docker-compose/Dockerfile b/docker-compose/Dockerfile index 5b41d5ad..687208ee 100644 --- a/docker-compose/Dockerfile +++ b/docker-compose/Dockerfile @@ -62,7 +62,7 @@ COPY --from=build /build/vendor/ vendor/ COPY --from=build /build/docker/*.sh /usr/local/bin/ COPY --from=build /build/conf/config.docker.ini.php /var/www/html/conf/config.ini.php -COPY --from=build /build/conf/php-fpm.conf /etc/php83/php-fpm.d/docker.conf +COPY --from=build /build/conf/php-fpm/*.conf /etc/php83/php-fpm.d/ FROM nginx:stable-alpine AS frontend From c4ed3f5cbf39af79da85ba7daf0305879a7b59b8 Mon Sep 17 00:00:00 2001 From: Ty Eggen Date: Thu, 6 Feb 2025 21:20:08 +0000 Subject: [PATCH 029/497] dev: improved php conf file formatting --- package.json | 1 + pnpm-lock.yaml | 10 ++++++++++ prettier.config.mjs | 10 ++++++++-- 3 files changed, 19 insertions(+), 2 deletions(-) diff --git a/package.json b/package.json index a4a6d6ca..93ac93be 100644 --- a/package.json +++ b/package.json @@ -18,6 +18,7 @@ "eslint": "^9.15.0", "husky": "^9.1.7", "prettier": "^3.0.3", + "prettier-plugin-ini": "^1.3.0", "prettier-plugin-sh": "^0.14.0", "prettier-plugin-sql": "^0.18.1", "typescript": "^5.7.2" diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 0c84b7d7..38a9170f 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -52,6 +52,9 @@ importers: prettier: specifier: ^3.0.3 version: 3.4.2 + prettier-plugin-ini: + specifier: ^1.3.0 + version: 1.3.0 prettier-plugin-sh: specifier: ^0.14.0 version: 0.14.0(prettier@3.4.2) @@ -1392,6 +1395,9 @@ packages: resolution: {integrity: sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==} engines: {node: '>= 0.8.0'} + prettier-plugin-ini@1.3.0: + resolution: {integrity: sha512-kX1KnPwITCTtYV0MTBZQKuFLxcNcbHOS9r7Ta1jHLLvRvZRTzHHqX0MEZMrCkedjLuxpQSgzr4aC5IRd+R3FPw==} + prettier-plugin-sh@0.14.0: resolution: {integrity: sha512-hfXulj5+zEl/ulrO5kMuuTPKmXvOg0bnLHY1hKFNN/N+/903iZbNp8NyZBTsgI8dtkSgFfAEIQq0IQTyP1ZVFQ==} engines: {node: '>=16.0.0'} @@ -3459,6 +3465,10 @@ snapshots: prelude-ls@1.2.1: {} + prettier-plugin-ini@1.3.0: + dependencies: + prettier: 3.4.2 + prettier-plugin-sh@0.14.0(prettier@3.4.2): dependencies: mvdan-sh: 0.10.1 diff --git a/prettier.config.mjs b/prettier.config.mjs index d9de62fb..343fc7cc 100644 --- a/prettier.config.mjs +++ b/prettier.config.mjs @@ -6,7 +6,7 @@ delete basePrettierConfig['tailwindFunctions'] const config = { ...basePrettierConfig, printWidth: 150, - plugins: ['@prettier/plugin-php', 'prettier-plugin-sh', 'prettier-plugin-sql', '@prettier/plugin-xml'], + plugins: ['prettier-plugin-ini', '@prettier/plugin-php', 'prettier-plugin-sh', 'prettier-plugin-sql', '@prettier/plugin-xml'], overrides: [ { files: ['*.php'], @@ -17,7 +17,7 @@ const config = { } }, { - files: ['*.sh', 'packages/webhooker/webhooker.console', 'packages/webhooker/webhooker.sbin', '.npmrc', 'conf/php-fpm/*.conf'], + files: ['*.sh', 'packages/webhooker/webhooker.console', 'packages/webhooker/webhooker.sbin', '.npmrc'], options: { parser: 'sh' } @@ -51,6 +51,12 @@ const config = { options: { parser: 'sh' } + }, + { + files: ['conf/php/*.ini', 'conf/php-fpm/*.conf'], + options: { + parser: 'ini' + } } ] } From e9a2d3f32ae552ffb5e033b2ff485def0572ba9d Mon Sep 17 00:00:00 2001 From: Ty Eggen Date: Thu, 6 Feb 2025 21:21:05 +0000 Subject: [PATCH 030/497] build: php/php-fpm config updates and improvements --- conf/php-fpm/00-defaults.conf | 12 ++++++------ conf/php-fpm/99-no-daemonize.conf | 2 +- conf/php/99-no-fastcgi-logging.ini | 1 + conf/php/99-sessions-dir.ini | 1 + docker-compose/Dockerfile | 3 +-- 5 files changed, 10 insertions(+), 9 deletions(-) create mode 100644 conf/php/99-no-fastcgi-logging.ini create mode 100644 conf/php/99-sessions-dir.ini diff --git a/conf/php-fpm/00-defaults.conf b/conf/php-fpm/00-defaults.conf index f0f85f24..8c20927a 100644 --- a/conf/php-fpm/00-defaults.conf +++ b/conf/php-fpm/00-defaults.conf @@ -1,9 +1,9 @@ [global] -error_log = /proc/self/fd/2 -log_limit = 8192 +error_log=/proc/self/fd/2 +log_limit=8192 [www] -access.log = /proc/self/fd/2 -clear_env = no -catch_workers_output = yes -decorate_workers_output = no +access.log=/proc/self/fd/2 +clear_env=no +catch_workers_output=yes +decorate_workers_output=no diff --git a/conf/php-fpm/99-no-daemonize.conf b/conf/php-fpm/99-no-daemonize.conf index c50c3602..a53c0e5a 100644 --- a/conf/php-fpm/99-no-daemonize.conf +++ b/conf/php-fpm/99-no-daemonize.conf @@ -1,2 +1,2 @@ [global] -daemonize = no +daemonize=no diff --git a/conf/php/99-no-fastcgi-logging.ini b/conf/php/99-no-fastcgi-logging.ini new file mode 100644 index 00000000..7e9000b4 --- /dev/null +++ b/conf/php/99-no-fastcgi-logging.ini @@ -0,0 +1 @@ +fastcgi.logging=Off diff --git a/conf/php/99-sessions-dir.ini b/conf/php/99-sessions-dir.ini new file mode 100644 index 00000000..0c9a6a53 --- /dev/null +++ b/conf/php/99-sessions-dir.ini @@ -0,0 +1 @@ +session.save_path="/sessions" diff --git a/docker-compose/Dockerfile b/docker-compose/Dockerfile index 687208ee..ee1e9c7b 100644 --- a/docker-compose/Dockerfile +++ b/docker-compose/Dockerfile @@ -41,8 +41,6 @@ VOLUME ["/sessions"] RUN mkdir -p /sessions && chown nobody:nobody /sessions -RUN echo "session.save_path = \"/sessions\"" > /etc/php83/conf.d/99_sessions.ini - FROM backend-base AS backend WORKDIR /var/www/html @@ -62,6 +60,7 @@ COPY --from=build /build/vendor/ vendor/ COPY --from=build /build/docker/*.sh /usr/local/bin/ COPY --from=build /build/conf/config.docker.ini.php /var/www/html/conf/config.ini.php +COPY --from=build /build/conf/php/*.ini /etc/php83/conf.d/ COPY --from=build /build/conf/php-fpm/*.conf /etc/php83/php-fpm.d/ FROM nginx:stable-alpine AS frontend From 901048968414374379edac80b581f5d1f7d01c4a Mon Sep 17 00:00:00 2001 From: Ty Eggen Date: Thu, 6 Feb 2025 21:43:52 +0000 Subject: [PATCH 031/497] build: expose backend fpm port --- docker-compose/Dockerfile | 2 ++ 1 file changed, 2 insertions(+) diff --git a/docker-compose/Dockerfile b/docker-compose/Dockerfile index ee1e9c7b..2d318f78 100644 --- a/docker-compose/Dockerfile +++ b/docker-compose/Dockerfile @@ -43,6 +43,8 @@ RUN mkdir -p /sessions && chown nobody:nobody /sessions FROM backend-base AS backend +EXPOSE 9000 + WORKDIR /var/www/html VOLUME ["/var/www/html/backup"] From da29f0046bccf976375e750df63e75e9a976161a Mon Sep 17 00:00:00 2001 From: Ty Eggen Date: Thu, 6 Feb 2025 22:15:55 +0000 Subject: [PATCH 032/497] build: make php-fpm listen on all addresses --- conf/php-fpm/00-defaults.conf | 2 ++ 1 file changed, 2 insertions(+) diff --git a/conf/php-fpm/00-defaults.conf b/conf/php-fpm/00-defaults.conf index 8c20927a..5d1b88c1 100644 --- a/conf/php-fpm/00-defaults.conf +++ b/conf/php-fpm/00-defaults.conf @@ -7,3 +7,5 @@ access.log=/proc/self/fd/2 clear_env=no catch_workers_output=yes decorate_workers_output=no + +listen=0.0.0.0:9000 From 1d86079e4a3037128762402429969552109b1cd0 Mon Sep 17 00:00:00 2001 From: Ty Eggen Date: Thu, 6 Feb 2025 22:41:13 +0000 Subject: [PATCH 033/497] build: disable default listen directive --- docker-compose/Dockerfile | 2 ++ 1 file changed, 2 insertions(+) diff --git a/docker-compose/Dockerfile b/docker-compose/Dockerfile index 2d318f78..475f8ccd 100644 --- a/docker-compose/Dockerfile +++ b/docker-compose/Dockerfile @@ -37,6 +37,8 @@ FROM alpine:3 AS backend-base RUN apk --no-cache add just mariadb-client php83 php83-bcmath php83-common php83-fpm php83-mysqli php83-mysqlnd php83-openssl php83-zip python3 wget +RUN sed -i 's/^listen/;listen/g' /etc/php83/php-fpm.d/www.conf + VOLUME ["/sessions"] RUN mkdir -p /sessions && chown nobody:nobody /sessions From a21712e6d77aafefdd7be9a64eadad65255c776d Mon Sep 17 00:00:00 2001 From: Ty Eggen Date: Thu, 6 Feb 2025 22:48:45 +0000 Subject: [PATCH 034/497] build: add missing php session package --- docker-compose/Dockerfile | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docker-compose/Dockerfile b/docker-compose/Dockerfile index 475f8ccd..cca606a4 100644 --- a/docker-compose/Dockerfile +++ b/docker-compose/Dockerfile @@ -15,7 +15,7 @@ RUN npm install -g npm@latest && npm install -g corepack@latest FROM base AS build-base -RUN apk --no-cache add alpine-sdk bash git just mariadb-client php83 php83-bcmath php83-common php83-curl php83-dom php83-mbstring php83-mysqli php83-mysqlnd php83-openssl php83-phar php83-simplexml php83-tokenizer php83-xml php83-xmlwriter php83-zip python3 wget +RUN apk --no-cache add alpine-sdk bash git just mariadb-client php83 php83-bcmath php83-common php83-curl php83-dom php83-mbstring php83-mysqli php83-mysqlnd php83-openssl php83-phar php83-session php83-simplexml php83-tokenizer php83-xml php83-xmlwriter php83-zip python3 wget FROM build-base AS build @@ -35,7 +35,7 @@ RUN pnpm deploy --filter="@vhs/webhooker" --prod /app/webhooker/ FROM alpine:3 AS backend-base -RUN apk --no-cache add just mariadb-client php83 php83-bcmath php83-common php83-fpm php83-mysqli php83-mysqlnd php83-openssl php83-zip python3 wget +RUN apk --no-cache add just mariadb-client php83 php83-bcmath php83-common php83-fpm php83-mysqli php83-mysqlnd php83-openssl php83-session php83-zip python3 wget RUN sed -i 's/^listen/;listen/g' /etc/php83/php-fpm.d/www.conf From 7b720b02f3a6802cc3d539662531f118c31b6e1d Mon Sep 17 00:00:00 2001 From: Ty Eggen Date: Thu, 6 Feb 2025 23:12:54 +0000 Subject: [PATCH 035/497] build: fix session path creation --- docker-compose/Dockerfile | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docker-compose/Dockerfile b/docker-compose/Dockerfile index cca606a4..f382c0bb 100644 --- a/docker-compose/Dockerfile +++ b/docker-compose/Dockerfile @@ -39,10 +39,10 @@ RUN apk --no-cache add just mariadb-client php83 php83-bcmath php83-common php83 RUN sed -i 's/^listen/;listen/g' /etc/php83/php-fpm.d/www.conf -VOLUME ["/sessions"] - RUN mkdir -p /sessions && chown nobody:nobody /sessions +VOLUME ["/sessions"] + FROM backend-base AS backend EXPOSE 9000 From 7f04de68be08b083e078f03e0e67a08624fd3bd5 Mon Sep 17 00:00:00 2001 From: Ty Eggen Date: Thu, 6 Feb 2025 23:36:18 +0000 Subject: [PATCH 036/497] fix: missing v2 definition from include.php --- app/include.php | 1 + 1 file changed, 1 insertion(+) diff --git a/app/include.php b/app/include.php index f885c77e..d5ca15fe 100644 --- a/app/include.php +++ b/app/include.php @@ -43,5 +43,6 @@ $serviceLog = DEBUG ? new \vhs\loggers\FileLogger(dirname(__FILE__) . '/service.log') : new \vhs\loggers\SilentLogger(); +\vhs\services\ServiceRegistry::register($serviceLog, 'v2', 'app\\endpoints\\v2', ROOT_NAMESPACE_PATH); \vhs\services\ServiceRegistry::register($serviceLog, 'web', 'app\\endpoints\\web', ROOT_NAMESPACE_PATH); \vhs\services\ServiceRegistry::register($serviceLog, 'native', 'app\\endpoints\\native', ROOT_NAMESPACE_PATH); From 50c933501cda4644760223f9db510d078e87cee3 Mon Sep 17 00:00:00 2001 From: Ty Eggen Date: Thu, 6 Feb 2025 23:39:15 +0000 Subject: [PATCH 037/497] fix(build): sessions directory permissions fix --- docker-compose/Dockerfile | 4 +--- docker/docker_compose_run.sh | 6 ++++++ 2 files changed, 7 insertions(+), 3 deletions(-) diff --git a/docker-compose/Dockerfile b/docker-compose/Dockerfile index f382c0bb..d04bf3af 100644 --- a/docker-compose/Dockerfile +++ b/docker-compose/Dockerfile @@ -39,12 +39,10 @@ RUN apk --no-cache add just mariadb-client php83 php83-bcmath php83-common php83 RUN sed -i 's/^listen/;listen/g' /etc/php83/php-fpm.d/www.conf -RUN mkdir -p /sessions && chown nobody:nobody /sessions +FROM backend-base AS backend VOLUME ["/sessions"] -FROM backend-base AS backend - EXPOSE 9000 WORKDIR /var/www/html diff --git a/docker/docker_compose_run.sh b/docker/docker_compose_run.sh index dfd29068..1c3b3189 100755 --- a/docker/docker_compose_run.sh +++ b/docker/docker_compose_run.sh @@ -1,6 +1,12 @@ #!/bin/sh # shellcheck shell=bash +if [ ! -d /sessions ]; then + mkdir -p /sessions +fi + +chown nobody:nobody /sessions && chmod 1777 /sessions + /usr/local/bin/docker_env_config.sh (cd /var/www/html/tools && php migrate.php -b -m -t) From e1aea8f95ad418ae6d031bb177b49752d09a46dc Mon Sep 17 00:00:00 2001 From: Ty Eggen Date: Fri, 7 Feb 2025 01:02:57 +0000 Subject: [PATCH 038/497] feat(backend): set error codes from exceptions --- vhs/web/HttpServer.php | 2 ++ 1 file changed, 2 insertions(+) diff --git a/vhs/web/HttpServer.php b/vhs/web/HttpServer.php index ff2b4b4a..e4cabfde 100644 --- a/vhs/web/HttpServer.php +++ b/vhs/web/HttpServer.php @@ -93,6 +93,8 @@ public function handle() { } catch (\Exception $ex) { $exception = $ex; + $this->code($ex->getCode() !== 0 ? $ex->getCode() : 500); + break; } $index += 1; From a76f0f100d36353732a991ae3fd43fe13aef23eb Mon Sep 17 00:00:00 2001 From: Ty Eggen Date: Fri, 7 Feb 2025 01:17:44 +0000 Subject: [PATCH 039/497] fix(backend): rename v2 endpoint files --- app/endpoints/v2/{ApiKeyService2.php => ApiKeyService2.svc.php} | 0 app/endpoints/v2/{AuthService2.php => AuthService2.svc.php} | 0 app/endpoints/v2/{EmailService2.php => EmailService2.svc.php} | 0 app/endpoints/v2/{EventService2.php => EventService2.svc.php} | 0 app/endpoints/v2/{IpnService2.php => IpnService2.svc.php} | 0 app/endpoints/v2/{KeyService2.php => KeyService2.svc.php} | 0 .../v2/{MemberCardService2.php => MemberCardService2.svc.php} | 0 .../v2/{MembershipService2.php => MembershipService2.svc.php} | 0 app/endpoints/v2/{MetricService2.php => MetricService2.svc.php} | 0 app/endpoints/v2/{PaymentService2.php => PaymentService2.svc.php} | 0 app/endpoints/v2/{PinService2.php => PinService2.svc.php} | 0 .../v2/{PreferenceService2.php => PreferenceService2.svc.php} | 0 .../v2/{PrivilegeService2.php => PrivilegeService2.svc.php} | 0 .../v2/{StripeEventService2.php => StripeEventService2.svc.php} | 0 app/endpoints/v2/{UserService2.php => UserService2.svc.php} | 0 app/endpoints/v2/{WebHookService2.php => WebHookService2.svc.php} | 0 16 files changed, 0 insertions(+), 0 deletions(-) rename app/endpoints/v2/{ApiKeyService2.php => ApiKeyService2.svc.php} (100%) rename app/endpoints/v2/{AuthService2.php => AuthService2.svc.php} (100%) rename app/endpoints/v2/{EmailService2.php => EmailService2.svc.php} (100%) rename app/endpoints/v2/{EventService2.php => EventService2.svc.php} (100%) rename app/endpoints/v2/{IpnService2.php => IpnService2.svc.php} (100%) rename app/endpoints/v2/{KeyService2.php => KeyService2.svc.php} (100%) rename app/endpoints/v2/{MemberCardService2.php => MemberCardService2.svc.php} (100%) rename app/endpoints/v2/{MembershipService2.php => MembershipService2.svc.php} (100%) rename app/endpoints/v2/{MetricService2.php => MetricService2.svc.php} (100%) rename app/endpoints/v2/{PaymentService2.php => PaymentService2.svc.php} (100%) rename app/endpoints/v2/{PinService2.php => PinService2.svc.php} (100%) rename app/endpoints/v2/{PreferenceService2.php => PreferenceService2.svc.php} (100%) rename app/endpoints/v2/{PrivilegeService2.php => PrivilegeService2.svc.php} (100%) rename app/endpoints/v2/{StripeEventService2.php => StripeEventService2.svc.php} (100%) rename app/endpoints/v2/{UserService2.php => UserService2.svc.php} (100%) rename app/endpoints/v2/{WebHookService2.php => WebHookService2.svc.php} (100%) diff --git a/app/endpoints/v2/ApiKeyService2.php b/app/endpoints/v2/ApiKeyService2.svc.php similarity index 100% rename from app/endpoints/v2/ApiKeyService2.php rename to app/endpoints/v2/ApiKeyService2.svc.php diff --git a/app/endpoints/v2/AuthService2.php b/app/endpoints/v2/AuthService2.svc.php similarity index 100% rename from app/endpoints/v2/AuthService2.php rename to app/endpoints/v2/AuthService2.svc.php diff --git a/app/endpoints/v2/EmailService2.php b/app/endpoints/v2/EmailService2.svc.php similarity index 100% rename from app/endpoints/v2/EmailService2.php rename to app/endpoints/v2/EmailService2.svc.php diff --git a/app/endpoints/v2/EventService2.php b/app/endpoints/v2/EventService2.svc.php similarity index 100% rename from app/endpoints/v2/EventService2.php rename to app/endpoints/v2/EventService2.svc.php diff --git a/app/endpoints/v2/IpnService2.php b/app/endpoints/v2/IpnService2.svc.php similarity index 100% rename from app/endpoints/v2/IpnService2.php rename to app/endpoints/v2/IpnService2.svc.php diff --git a/app/endpoints/v2/KeyService2.php b/app/endpoints/v2/KeyService2.svc.php similarity index 100% rename from app/endpoints/v2/KeyService2.php rename to app/endpoints/v2/KeyService2.svc.php diff --git a/app/endpoints/v2/MemberCardService2.php b/app/endpoints/v2/MemberCardService2.svc.php similarity index 100% rename from app/endpoints/v2/MemberCardService2.php rename to app/endpoints/v2/MemberCardService2.svc.php diff --git a/app/endpoints/v2/MembershipService2.php b/app/endpoints/v2/MembershipService2.svc.php similarity index 100% rename from app/endpoints/v2/MembershipService2.php rename to app/endpoints/v2/MembershipService2.svc.php diff --git a/app/endpoints/v2/MetricService2.php b/app/endpoints/v2/MetricService2.svc.php similarity index 100% rename from app/endpoints/v2/MetricService2.php rename to app/endpoints/v2/MetricService2.svc.php diff --git a/app/endpoints/v2/PaymentService2.php b/app/endpoints/v2/PaymentService2.svc.php similarity index 100% rename from app/endpoints/v2/PaymentService2.php rename to app/endpoints/v2/PaymentService2.svc.php diff --git a/app/endpoints/v2/PinService2.php b/app/endpoints/v2/PinService2.svc.php similarity index 100% rename from app/endpoints/v2/PinService2.php rename to app/endpoints/v2/PinService2.svc.php diff --git a/app/endpoints/v2/PreferenceService2.php b/app/endpoints/v2/PreferenceService2.svc.php similarity index 100% rename from app/endpoints/v2/PreferenceService2.php rename to app/endpoints/v2/PreferenceService2.svc.php diff --git a/app/endpoints/v2/PrivilegeService2.php b/app/endpoints/v2/PrivilegeService2.svc.php similarity index 100% rename from app/endpoints/v2/PrivilegeService2.php rename to app/endpoints/v2/PrivilegeService2.svc.php diff --git a/app/endpoints/v2/StripeEventService2.php b/app/endpoints/v2/StripeEventService2.svc.php similarity index 100% rename from app/endpoints/v2/StripeEventService2.php rename to app/endpoints/v2/StripeEventService2.svc.php diff --git a/app/endpoints/v2/UserService2.php b/app/endpoints/v2/UserService2.svc.php similarity index 100% rename from app/endpoints/v2/UserService2.php rename to app/endpoints/v2/UserService2.svc.php diff --git a/app/endpoints/v2/WebHookService2.php b/app/endpoints/v2/WebHookService2.svc.php similarity index 100% rename from app/endpoints/v2/WebHookService2.php rename to app/endpoints/v2/WebHookService2.svc.php From 2c9eced1503de4268c4f2d5c89478e07f1c31a18 Mon Sep 17 00:00:00 2001 From: Ty Eggen Date: Fri, 7 Feb 2025 21:28:29 +0000 Subject: [PATCH 040/497] fix(backend): fix permissions namespace in PrivilegeServiceHandler2 --- app/handlers/v2/PrivilegeServiceHandler2.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/handlers/v2/PrivilegeServiceHandler2.php b/app/handlers/v2/PrivilegeServiceHandler2.php index 516710b8..f92f1df4 100644 --- a/app/handlers/v2/PrivilegeServiceHandler2.php +++ b/app/handlers/v2/PrivilegeServiceHandler2.php @@ -98,7 +98,7 @@ public function GetAllPrivileges(): array { * @return string[] */ public function GetAllSystemPermissions(): array { - $endpoints = ServiceRegistry::get('web')->getAllEndpoints(); + $endpoints = ServiceRegistry::get('v2')->getAllEndpoints(); $flatPerms = []; From 104d79bbb89db7aff720c6d44d5875063f98022b Mon Sep 17 00:00:00 2001 From: Ty Eggen Date: Fri, 7 Feb 2025 21:28:49 +0000 Subject: [PATCH 041/497] refactor: renamed config.ini.template.php --- conf/config.ini.php.template | 55 ------------------------------------ conf/config.ini.template.php | 55 ++++++++++++++++++++++++++++++++++++ tools/ghetto_deploy.sh | 2 +- tools/vagrant_provision.sh | 2 +- 4 files changed, 57 insertions(+), 57 deletions(-) delete mode 100644 conf/config.ini.php.template create mode 100644 conf/config.ini.template.php diff --git a/conf/config.ini.php.template b/conf/config.ini.php.template deleted file mode 100644 index 1380b538..00000000 --- a/conf/config.ini.php.template +++ /dev/null @@ -1,55 +0,0 @@ - array( - "item_name" => "VHS Keyholder Membership", - "item_number" => "vhs_membership_keyholder" - ) - )); - - /** - * Show MySql Errors. - * Not recomended for live site. true/false - */ - define('DEBUG', true); diff --git a/conf/config.ini.template.php b/conf/config.ini.template.php new file mode 100644 index 00000000..5cc28073 --- /dev/null +++ b/conf/config.ini.template.php @@ -0,0 +1,55 @@ + [ + 'item_name' => 'VHS Keyholder Membership', + 'item_number' => 'vhs_membership_keyholder' + ] +]); + +/** + * Show MySql Errors. + * Not recomended for live site. true/false. + */ +define('DEBUG', defined('NOMOS_DEBUG')); diff --git a/tools/ghetto_deploy.sh b/tools/ghetto_deploy.sh index b39f4279..bc234a56 100755 --- a/tools/ghetto_deploy.sh +++ b/tools/ghetto_deploy.sh @@ -31,7 +31,7 @@ read -r if [ ! -e "config.ini.php" ]; then echo -e "\e[31mExpected config.php.ini for nomos to be in .\e[0m" - cp "${NOMOS}/conf/config.ini.php.template" ./config.ini.php + cp "${NOMOS}/conf/config.ini.template.php" ./config.ini.php echo "Copied templates to local" nano ./config.ini.php diff --git a/tools/vagrant_provision.sh b/tools/vagrant_provision.sh index b42043f7..65a609af 100755 --- a/tools/vagrant_provision.sh +++ b/tools/vagrant_provision.sh @@ -43,7 +43,7 @@ sudo sed -i 's/;error_log = php_errors.log/error_log = \/var\/log\/php7.0-cli.lo # configure app if [ ! -e "/vagrant/conf/config.ini.php" ]; then - cp /vagrant/conf/config.ini.php.template /vagrant/conf/config.ini.php + cp /vagrant/conf/config.ini.template.php /vagrant/conf/config.ini.php fi # add composer From a697f36a340934e89a2f746f63d596f961d30b3a Mon Sep 17 00:00:00 2001 From: Ty Eggen Date: Fri, 7 Feb 2025 21:30:05 +0000 Subject: [PATCH 042/497] feat(backend): central BasePath resolution class --- vhs/BasePath.php | 15 +++++++++++++++ 1 file changed, 15 insertions(+) create mode 100644 vhs/BasePath.php diff --git a/vhs/BasePath.php b/vhs/BasePath.php new file mode 100644 index 00000000..63810c7e --- /dev/null +++ b/vhs/BasePath.php @@ -0,0 +1,15 @@ + Date: Fri, 7 Feb 2025 21:30:27 +0000 Subject: [PATCH 043/497] feat(backend): debug logger method --- vhs/Logger.php | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/vhs/Logger.php b/vhs/Logger.php index fe35fbcc..e5dc0381 100644 --- a/vhs/Logger.php +++ b/vhs/Logger.php @@ -13,6 +13,12 @@ abstract class Logger { abstract public function log($message); + public function debug($file, $line, $caller, $msg) { + if (\DEBUG === true) { + $this->log(sprintf('%s:%s - %s: %s', str_replace(BasePath::getBasePath(withSlash: true), '', $file), $line, $caller, $msg)); + } + } + public function __toString() { return get_called_class(); } From 9afc8e33722c8668b45868857e50a7f5b05e34dd Mon Sep 17 00:00:00 2001 From: Ty Eggen Date: Fri, 7 Feb 2025 21:31:11 +0000 Subject: [PATCH 044/497] feat(backend): ServiceHandler optimization and debug logging --- vhs/services/ServiceHandler.php | 16 ++++++++++------ 1 file changed, 10 insertions(+), 6 deletions(-) diff --git a/vhs/services/ServiceHandler.php b/vhs/services/ServiceHandler.php index 48b4e418..9cc8e8e1 100644 --- a/vhs/services/ServiceHandler.php +++ b/vhs/services/ServiceHandler.php @@ -68,6 +68,8 @@ public function handle($uri, $data = null, $isNative = false) { /** @var Endpoint[] $endpoints */ $endpoints = []; + $this->logger->debug(__FILE__, __LINE__, __METHOD__, sprintf('handling: %s with prefixpath %s', $uri, $this->uriPrefixPath)); + if (!preg_match('%.*/' . $this->uriPrefixPath . '(?P.*)\.svc/(?P.*)%im', $uri, $regs)) { if (!preg_match('%.*/' . $this->uriPrefixPath . '(?P.*)\.svc%im', $uri, $regs)) { if (preg_match('%.*/' . $this->uriPrefixPath . 'help%im', $uri, $regs)) { @@ -79,11 +81,15 @@ public function handle($uri, $data = null, $isNative = false) { } } } else { - throw new InvalidRequestException('Invalid service request'); + $this->logger->debug(__FILE__, __LINE__, __METHOD__, sprintf('did not find match for: %s', $uri)); + + throw new InvalidRequestException('Invalid service request', 409); } } } + $this->logger->debug(__FILE__, __LINE__, __METHOD__, sprintf('$endpoints => %s', json_encode($endpoints))); + if (count($endpoints) > 0) { $discovery = []; @@ -131,15 +137,13 @@ public function handle($uri, $data = null, $isNative = false) { * * @throws InvalidRequestException * - * @return Endpoint + * @return string */ private function getEndpoint($uri) { if (!preg_match('%.*/' . $this->uriPrefixPath . '(?P.*)\.svc%im', $uri, $regs)) { - throw new InvalidRequestException('Invalid service request'); + throw new InvalidRequestException('Invalid endpoint request', 418); } - $endpoint = $this->endpointNamespace . '\\' . $regs['endpoint']; - - return $endpoint; + return $this->endpointNamespace . '\\' . $regs['endpoint']; } } From 6354de1a929ce1f27f5cd4253cc65bbd8f0dbfb1 Mon Sep 17 00:00:00 2001 From: Ty Eggen Date: Fri, 7 Feb 2025 21:32:57 +0000 Subject: [PATCH 045/497] feat(backend): improved exception handling and debug logging for HTTPServer --- vhs/web/HttpServer.php | 19 +++++++++++++++---- 1 file changed, 15 insertions(+), 4 deletions(-) diff --git a/vhs/web/HttpServer.php b/vhs/web/HttpServer.php index e4cabfde..87737528 100644 --- a/vhs/web/HttpServer.php +++ b/vhs/web/HttpServer.php @@ -11,17 +11,18 @@ use vhs\Logger; use vhs\loggers\SilentLogger; +use vhs\services\exceptions\InvalidRequestException; use vhs\web\modules\HttpServerInfoModule; /** @typescript */ class HttpServer { + public $logger; /** @var HttpRequest */ public $request; private $endset = false; private $handling = false; private $headerBuffer = []; private $http_response_code; - private $logger; private $modules = []; private $outputBuffer = []; @@ -60,10 +61,16 @@ public function code($code) { } public function end() { + $this->logger->debug(__FILE__, __LINE__, __METHOD__, 'trying end'); + if ($this->endset) { + $this->logger->debug(__FILE__, __LINE__, __METHOD__, 'already ended - bailing'); + return; } + $this->logger->debug(__FILE__, __LINE__, __METHOD__, 'setting end'); + $this->endset = true; $self = $this; array_push($this->outputBuffer, function () use ($self) { @@ -84,6 +91,8 @@ public function handle() { /** @var IHttpModule $module */ $index = 0; foreach ($this->modules as $module) { + $this->logger->debug(__FILE__, __LINE__, __METHOD__, sprintf('trying module: %s', get_class($module))); + if ($this->endset) { break; } @@ -93,13 +102,15 @@ public function handle() { } catch (\Exception $ex) { $exception = $ex; - $this->code($ex->getCode() !== 0 ? $ex->getCode() : 500); - break; } $index += 1; } + if (!$this->endset) { + $exception = new InvalidRequestException('No valid service endpoint found', 503); + } + $this->log($this->request->method . ' ' . $this->request->url . ' ' . json_encode($this->request->headers)); if (!is_null($exception)) { @@ -124,7 +135,7 @@ public function handle() { $this->endResponse(); } - public function header($string, $replace = true, $http_response_code = null) { + public function header($string, $replace = true, $http_response_code = 0) { if ($this->endset) { return; } From 0b89da13fd9f3d5bc6002987e4af1121895f6a93 Mon Sep 17 00:00:00 2001 From: Ty Eggen Date: Fri, 7 Feb 2025 21:33:34 +0000 Subject: [PATCH 046/497] feat(backend): improved DEBUG injection for docker php config --- conf/config.docker.ini.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/conf/config.docker.ini.php b/conf/config.docker.ini.php index 52cd4209..1853aa3b 100644 --- a/conf/config.docker.ini.php +++ b/conf/config.docker.ini.php @@ -45,6 +45,6 @@ /** * Show MySql Errors. - * Not recomended for live site. true/false + * Not recomended for live site. true/false. */ -define('DEBUG', false); +define('DEBUG', defined('NOMOS_DEBUG')); From 41284b007b3456659d53c1ca164d19f24ff0fe80 Mon Sep 17 00:00:00 2001 From: Ty Eggen Date: Fri, 7 Feb 2025 21:38:22 +0000 Subject: [PATCH 047/497] feat(backend): support multiple namespaces in HttpJsonServiceHandlerModule --- .../modules/HttpJsonServiceHandlerModule.php | 70 ++++++++++++------- 1 file changed, 45 insertions(+), 25 deletions(-) diff --git a/vhs/web/modules/HttpJsonServiceHandlerModule.php b/vhs/web/modules/HttpJsonServiceHandlerModule.php index eff3797f..e674ec98 100644 --- a/vhs/web/modules/HttpJsonServiceHandlerModule.php +++ b/vhs/web/modules/HttpJsonServiceHandlerModule.php @@ -31,31 +31,51 @@ public function handle(HttpServer $server) { $uri = $server->request->url; - switch ($server->request->method) { - case 'HEAD': - $server->output(ServiceRegistry::get($this->registryKey)->discover($uri)); - - break; - case 'GET': - if (isset($_GET['json'])) { - $input = $_GET['json']; - } else { - $input = json_encode($_GET); - } - - $server->output(ServiceRegistry::get($this->registryKey)->handle($uri, $input)); - - break; - case 'POST': - $server->output(ServiceRegistry::get($this->registryKey)->handle($uri, file_get_contents('php://input'))); - - break; - //case 'PUT': - //case 'DELETE': - default: - throw new InvalidRequestException(); - - break; + try { + switch ($server->request->method) { + case 'HEAD': + $server->output(ServiceRegistry::get($this->registryKey)->discover($uri)); + + $server->end(); + + break; + case 'GET': + if (isset($_GET['json'])) { + $input = $_GET['json']; + } else { + $input = json_encode($_GET); + } + + $server->output(ServiceRegistry::get($this->registryKey)->handle($uri, $input)); + + break; + case 'POST': + $server->output(ServiceRegistry::get($this->registryKey)->handle($uri, file_get_contents('php://input'))); + + $server->logger->debug(__FILE__, __LINE__, __METHOD__, 'setting end'); + + break; + //case 'PUT': + //case 'DELETE': + default: + throw new InvalidRequestException(); + + break; + } + + $server->logger->debug(__FILE__, __LINE__, __METHOD__, 'setting end'); + $server->end(); + } catch (\Exception $exception) { + $server->logger->debug( + __FILE__, + __LINE__, + __METHOD__, + sprintf('caught exception: %s(%s)', $exception->getMessage(), $exception->getCode()) + ); + + if ($exception->getCode() !== 409 && $exception->getCode() !== 418) { + throw $exception; + } } } From d8543bfe8ebdae102f2e98a119e564adf5806fa3 Mon Sep 17 00:00:00 2001 From: Ty Eggen Date: Fri, 7 Feb 2025 21:38:55 +0000 Subject: [PATCH 048/497] feat(backend): add http error code support in HttpExceptionHandlerModule --- vhs/web/modules/HttpExceptionHandlerModule.php | 2 ++ 1 file changed, 2 insertions(+) diff --git a/vhs/web/modules/HttpExceptionHandlerModule.php b/vhs/web/modules/HttpExceptionHandlerModule.php index 923b9ecb..dd6007bf 100644 --- a/vhs/web/modules/HttpExceptionHandlerModule.php +++ b/vhs/web/modules/HttpExceptionHandlerModule.php @@ -32,6 +32,8 @@ public function handleException(HttpServer $server, \Exception $ex) { $this->logger->log($ex->getMessage()); $this->logger->log($ex->getTraceAsString()); + $server->code($ex->getCode() !== 0 ? $ex->getCode() : 500); + if (DEBUG) { $server->output($ex->getMessage()); $server->output($ex->getTraceAsString()); From e3bdf0a7ab640f26fb5a6e353f323a5a80a67c77 Mon Sep 17 00:00:00 2001 From: Ty Eggen Date: Fri, 7 Feb 2025 21:39:44 +0000 Subject: [PATCH 049/497] dependencies(backend): upgraded php-amqplib --- composer.json | 2 +- composer.lock | 286 ++++++++++++++++++++++++++++++++++++++++++++++---- 2 files changed, 269 insertions(+), 19 deletions(-) diff --git a/composer.json b/composer.json index 1854cea8..50536d65 100644 --- a/composer.json +++ b/composer.json @@ -3,7 +3,7 @@ "aws/aws-sdk-php": "3.336.8", "nicmart/string-template": "0.1.3", "league/oauth2-client": "2.8.0", - "php-amqplib/php-amqplib": "2.5.2", + "php-amqplib/php-amqplib": "^3.0.0", "stripe/stripe-php": "7.128.0", "league/oauth2-github": "3.1.1", "league/oauth2-google": "4.0.1" diff --git a/composer.lock b/composer.lock index 3718b69b..d0f4d94f 100644 --- a/composer.lock +++ b/composer.lock @@ -4,7 +4,7 @@ "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies", "This file is @generated automatically" ], - "content-hash": "1da57a507b75c43bd4a7808420600272", + "content-hash": "f9b8a5b37903d7a6cbad2d42109d2d6c", "packages": [ { "name": "aws/aws-crt-php", @@ -779,35 +779,159 @@ }, "time": "2022-10-25T08:03:55+00:00" }, + { + "name": "paragonie/constant_time_encoding", + "version": "v3.0.0", + "source": { + "type": "git", + "url": "https://github.com/paragonie/constant_time_encoding.git", + "reference": "df1e7fde177501eee2037dd159cf04f5f301a512" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/paragonie/constant_time_encoding/zipball/df1e7fde177501eee2037dd159cf04f5f301a512", + "reference": "df1e7fde177501eee2037dd159cf04f5f301a512", + "shasum": "" + }, + "require": { + "php": "^8" + }, + "require-dev": { + "phpunit/phpunit": "^9", + "vimeo/psalm": "^4|^5" + }, + "type": "library", + "autoload": { + "psr-4": { + "ParagonIE\\ConstantTime\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Paragon Initiative Enterprises", + "email": "security@paragonie.com", + "homepage": "https://paragonie.com", + "role": "Maintainer" + }, + { + "name": "Steve 'Sc00bz' Thomas", + "email": "steve@tobtu.com", + "homepage": "https://www.tobtu.com", + "role": "Original Developer" + } + ], + "description": "Constant-time Implementations of RFC 4648 Encoding (Base-64, Base-32, Base-16)", + "keywords": [ + "base16", + "base32", + "base32_decode", + "base32_encode", + "base64", + "base64_decode", + "base64_encode", + "bin2hex", + "encoding", + "hex", + "hex2bin", + "rfc4648" + ], + "support": { + "email": "info@paragonie.com", + "issues": "https://github.com/paragonie/constant_time_encoding/issues", + "source": "https://github.com/paragonie/constant_time_encoding" + }, + "time": "2024-05-08T12:36:18+00:00" + }, + { + "name": "paragonie/random_compat", + "version": "v9.99.100", + "source": { + "type": "git", + "url": "https://github.com/paragonie/random_compat.git", + "reference": "996434e5492cb4c3edcb9168db6fbb1359ef965a" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/paragonie/random_compat/zipball/996434e5492cb4c3edcb9168db6fbb1359ef965a", + "reference": "996434e5492cb4c3edcb9168db6fbb1359ef965a", + "shasum": "" + }, + "require": { + "php": ">= 7" + }, + "require-dev": { + "phpunit/phpunit": "4.*|5.*", + "vimeo/psalm": "^1" + }, + "suggest": { + "ext-libsodium": "Provides a modern crypto API that can be used to generate random bytes." + }, + "type": "library", + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Paragon Initiative Enterprises", + "email": "security@paragonie.com", + "homepage": "https://paragonie.com" + } + ], + "description": "PHP 5.x polyfill for random_bytes() and random_int() from PHP 7", + "keywords": [ + "csprng", + "polyfill", + "pseudorandom", + "random" + ], + "support": { + "email": "info@paragonie.com", + "issues": "https://github.com/paragonie/random_compat/issues", + "source": "https://github.com/paragonie/random_compat" + }, + "time": "2020-10-15T08:29:30+00:00" + }, { "name": "php-amqplib/php-amqplib", - "version": "v2.5.2", + "version": "v3.7.2", "source": { "type": "git", "url": "https://github.com/php-amqplib/php-amqplib.git", - "reference": "eb8f94d97c8e79900accf77343dbd7eca7f58506" + "reference": "738a73eb0019b6c99d9bc25d7a0c0dd8f56a5199" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/php-amqplib/php-amqplib/zipball/eb8f94d97c8e79900accf77343dbd7eca7f58506", - "reference": "eb8f94d97c8e79900accf77343dbd7eca7f58506", + "url": "https://api.github.com/repos/php-amqplib/php-amqplib/zipball/738a73eb0019b6c99d9bc25d7a0c0dd8f56a5199", + "reference": "738a73eb0019b6c99d9bc25d7a0c0dd8f56a5199", "shasum": "" }, "require": { - "ext-bcmath": "*", "ext-mbstring": "*", - "php": ">=5.3.0" + "ext-sockets": "*", + "php": "^7.2||^8.0", + "phpseclib/phpseclib": "^2.0|^3.0" }, - "require-dev": { - "phpunit/phpunit": "3.7.*" + "conflict": { + "php": "7.4.0 - 7.4.1" }, - "suggest": { - "ext-sockets": "Use AMQPSocketConnection" + "replace": { + "videlalvaro/php-amqplib": "self.version" + }, + "require-dev": { + "ext-curl": "*", + "nategood/httpful": "^0.2.20", + "phpunit/phpunit": "^7.5|^9.5", + "squizlabs/php_codesniffer": "^3.6" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "2.4-dev" + "dev-master": "3.0-dev" } }, "autoload": { @@ -817,15 +941,31 @@ }, "notification-url": "https://packagist.org/downloads/", "license": [ - "LGPL-2.1" + "LGPL-2.1-or-later" ], "authors": [ { - "name": "Alvaro Videla" + "name": "Alvaro Videla", + "role": "Original Maintainer" + }, + { + "name": "Raúl Araya", + "email": "nubeiro@gmail.com", + "role": "Maintainer" + }, + { + "name": "Luke Bakken", + "email": "luke@bakken.io", + "role": "Maintainer" + }, + { + "name": "Ramūnas Dronga", + "email": "github@ramuno.lt", + "role": "Maintainer" } ], - "description": "This library is a pure PHP implementation of the AMQP protocol. It's been tested against RabbitMQ.", - "homepage": "https://github.com/videlalvaro/php-amqplib/", + "description": "Formerly videlalvaro/php-amqplib. This library is a pure PHP implementation of the AMQP protocol. It's been tested against RabbitMQ.", + "homepage": "https://github.com/php-amqplib/php-amqplib/", "keywords": [ "message", "queue", @@ -833,9 +973,119 @@ ], "support": { "issues": "https://github.com/php-amqplib/php-amqplib/issues", - "source": "https://github.com/php-amqplib/php-amqplib/tree/v2.5.2" + "source": "https://github.com/php-amqplib/php-amqplib/tree/v3.7.2" + }, + "time": "2024-11-21T09:21:41+00:00" + }, + { + "name": "phpseclib/phpseclib", + "version": "3.0.43", + "source": { + "type": "git", + "url": "https://github.com/phpseclib/phpseclib.git", + "reference": "709ec107af3cb2f385b9617be72af8cf62441d02" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/phpseclib/phpseclib/zipball/709ec107af3cb2f385b9617be72af8cf62441d02", + "reference": "709ec107af3cb2f385b9617be72af8cf62441d02", + "shasum": "" }, - "time": "2015-08-11T12:30:09+00:00" + "require": { + "paragonie/constant_time_encoding": "^1|^2|^3", + "paragonie/random_compat": "^1.4|^2.0|^9.99.99", + "php": ">=5.6.1" + }, + "require-dev": { + "phpunit/phpunit": "*" + }, + "suggest": { + "ext-dom": "Install the DOM extension to load XML formatted public keys.", + "ext-gmp": "Install the GMP (GNU Multiple Precision) extension in order to speed up arbitrary precision integer arithmetic operations.", + "ext-libsodium": "SSH2/SFTP can make use of some algorithms provided by the libsodium-php extension.", + "ext-mcrypt": "Install the Mcrypt extension in order to speed up a few other cryptographic operations.", + "ext-openssl": "Install the OpenSSL extension in order to speed up a wide variety of cryptographic operations." + }, + "type": "library", + "autoload": { + "files": [ + "phpseclib/bootstrap.php" + ], + "psr-4": { + "phpseclib3\\": "phpseclib/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Jim Wigginton", + "email": "terrafrost@php.net", + "role": "Lead Developer" + }, + { + "name": "Patrick Monnerat", + "email": "pm@datasphere.ch", + "role": "Developer" + }, + { + "name": "Andreas Fischer", + "email": "bantu@phpbb.com", + "role": "Developer" + }, + { + "name": "Hans-Jürgen Petrich", + "email": "petrich@tronic-media.com", + "role": "Developer" + }, + { + "name": "Graham Campbell", + "email": "graham@alt-three.com", + "role": "Developer" + } + ], + "description": "PHP Secure Communications Library - Pure-PHP implementations of RSA, AES, SSH2, SFTP, X.509 etc.", + "homepage": "http://phpseclib.sourceforge.net", + "keywords": [ + "BigInteger", + "aes", + "asn.1", + "asn1", + "blowfish", + "crypto", + "cryptography", + "encryption", + "rsa", + "security", + "sftp", + "signature", + "signing", + "ssh", + "twofish", + "x.509", + "x509" + ], + "support": { + "issues": "https://github.com/phpseclib/phpseclib/issues", + "source": "https://github.com/phpseclib/phpseclib/tree/3.0.43" + }, + "funding": [ + { + "url": "https://github.com/terrafrost", + "type": "github" + }, + { + "url": "https://www.patreon.com/phpseclib", + "type": "patreon" + }, + { + "url": "https://tidelift.com/funding/github/packagist/phpseclib/phpseclib", + "type": "tidelift" + } + ], + "time": "2024-12-14T21:12:59+00:00" }, { "name": "psr/http-client", From ec59bcac9adf8bf077905eaeb9c1772c47fbf72b Mon Sep 17 00:00:00 2001 From: Ty Eggen Date: Fri, 7 Feb 2025 21:40:47 +0000 Subject: [PATCH 050/497] refactor(backend): use BasePath for improved directory resolution --- app/app.php | 2 +- app/include.php | 8 ++++---- tests/ServiceTest.php | 4 ++-- 3 files changed, 7 insertions(+), 7 deletions(-) diff --git a/app/app.php b/app/app.php index b000622f..a108a3fa 100644 --- a/app/app.php +++ b/app/app.php @@ -17,7 +17,7 @@ require_once 'include.php'; -$serverLog = new \vhs\loggers\FileLogger(dirname(__FILE__) . '/../logs/server.log'); +$serverLog = new \vhs\loggers\FileLogger(\vhs\BasePath::getBasePath(false) . '/logs/server.log'); \vhs\web\HttpContext::Init(new \vhs\web\HttpServer(new \vhs\web\modules\HttpServerInfoModule('Nomos'), $serverLog)); diff --git a/app/include.php b/app/include.php index d5ca15fe..72c9a71a 100644 --- a/app/include.php +++ b/app/include.php @@ -12,7 +12,7 @@ define('ROOT_NAMESPACE_PATH', dirname(dirname(__FILE__))); -$sqlLog = DEBUG ? new \vhs\loggers\FileLogger(dirname(__FILE__) . '/../logs/sql.log') : new \vhs\loggers\SilentLogger(); +$sqlLog = DEBUG ? new \vhs\loggers\FileLogger(\vhs\BasePath::getBasePath(false) . '/logs/sql.log') : new \vhs\loggers\SilentLogger(); \vhs\database\Database::setLogger($sqlLog); \vhs\database\Database::setRethrow(true); @@ -26,7 +26,7 @@ \vhs\database\Database::setEngine($mySqlEngine); -$rabbitLog = DEBUG ? new \vhs\loggers\FileLogger(dirname(__FILE__) . '/../logs/rabbit.log') : new \vhs\loggers\SilentLogger(); +$rabbitLog = DEBUG ? new \vhs\loggers\FileLogger(\vhs\BasePath::getBasePath(false) . '/logs/rabbit.log') : new \vhs\loggers\SilentLogger(); \vhs\messaging\MessageQueue::setLogger($rabbitLog); \vhs\messaging\MessageQueue::setRethrow(true); @@ -41,8 +41,8 @@ \vhs\SplClassLoader::getInstance()->add(new \vhs\SplClassLoaderItem('app', ROOT_NAMESPACE_PATH)); -$serviceLog = DEBUG ? new \vhs\loggers\FileLogger(dirname(__FILE__) . '/service.log') : new \vhs\loggers\SilentLogger(); +$serviceLog = DEBUG ? new \vhs\loggers\FileLogger(\vhs\BasePath::getBasePath(false) . '/logs/service.log') : new \vhs\loggers\SilentLogger(); +\vhs\services\ServiceRegistry::register($serviceLog, 'native', 'app\\endpoints\\native', ROOT_NAMESPACE_PATH); \vhs\services\ServiceRegistry::register($serviceLog, 'v2', 'app\\endpoints\\v2', ROOT_NAMESPACE_PATH); \vhs\services\ServiceRegistry::register($serviceLog, 'web', 'app\\endpoints\\web', ROOT_NAMESPACE_PATH); -\vhs\services\ServiceRegistry::register($serviceLog, 'native', 'app\\endpoints\\native', ROOT_NAMESPACE_PATH); diff --git a/tests/ServiceTest.php b/tests/ServiceTest.php index be47060b..f005984d 100644 --- a/tests/ServiceTest.php +++ b/tests/ServiceTest.php @@ -237,8 +237,8 @@ public function test_PermMethod_asPerm() { public static function setUpBeforeClass(): void { $logger = new \vhs\loggers\SilentLogger(); - ServiceRegistry::register($logger, 'web', 'tests\\endpoints\\web', dirname(__FILE__) . '/..'); - ServiceRegistry::register($logger, 'native', 'tests\\endpoints\\native', dirname(__FILE__) . '/..'); + ServiceRegistry::register($logger, 'web', 'tests\\endpoints\\web', \vhs\BasePath::getBasePath(false)); + ServiceRegistry::register($logger, 'native', 'tests\\endpoints\\native', \vhs\BasePath::getBasePath(false)); } public static function tearDownAfterClass(): void {} From 27fc31bcb995098b7030caf62fad178c2c988646 Mon Sep 17 00:00:00 2001 From: Ty Eggen Date: Fri, 7 Feb 2025 21:41:20 +0000 Subject: [PATCH 051/497] test(backend): enforce DEBUG in unittests --- tests/autoload.php | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/tests/autoload.php b/tests/autoload.php index e472e947..52aa00f6 100644 --- a/tests/autoload.php +++ b/tests/autoload.php @@ -10,5 +10,7 @@ require_once 'vendor/autoload.php'; require_once 'vhs/vhs.php'; -\vhs\SplClassLoader::getInstance()->add(new \vhs\SplClassLoaderItem('tests', dirname(__FILE__) . '/..')); -\vhs\SplClassLoader::getInstance()->add(new \vhs\SplClassLoaderItem('app', dirname(__FILE__) . '/..')); +define('DEBUG', false); + +\vhs\SplClassLoader::getInstance()->add(new \vhs\SplClassLoaderItem('tests', \vhs\BasePath::getBasePath(false))); +\vhs\SplClassLoader::getInstance()->add(new \vhs\SplClassLoaderItem('app', \vhs\BasePath::getBasePath(false))); From 3f27da1e30ed41eb83bea98f411781b86ec0aa1f Mon Sep 17 00:00:00 2001 From: Ty Eggen Date: Fri, 7 Feb 2025 21:41:54 +0000 Subject: [PATCH 052/497] build(backend): added sockets support for amqplib --- docker-compose/Dockerfile | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docker-compose/Dockerfile b/docker-compose/Dockerfile index d04bf3af..d628236b 100644 --- a/docker-compose/Dockerfile +++ b/docker-compose/Dockerfile @@ -15,7 +15,7 @@ RUN npm install -g npm@latest && npm install -g corepack@latest FROM base AS build-base -RUN apk --no-cache add alpine-sdk bash git just mariadb-client php83 php83-bcmath php83-common php83-curl php83-dom php83-mbstring php83-mysqli php83-mysqlnd php83-openssl php83-phar php83-session php83-simplexml php83-tokenizer php83-xml php83-xmlwriter php83-zip python3 wget +RUN apk --no-cache add alpine-sdk bash git just mariadb-client php83 php83-bcmath php83-common php83-curl php83-dom php83-mbstring php83-mysqli php83-mysqlnd php83-openssl php83-phar php83-session php83-sockets php83-simplexml php83-tokenizer php83-xml php83-xmlwriter php83-zip python3 wget FROM build-base AS build @@ -35,7 +35,7 @@ RUN pnpm deploy --filter="@vhs/webhooker" --prod /app/webhooker/ FROM alpine:3 AS backend-base -RUN apk --no-cache add just mariadb-client php83 php83-bcmath php83-common php83-fpm php83-mysqli php83-mysqlnd php83-openssl php83-session php83-zip python3 wget +RUN apk --no-cache add just mariadb-client php83 php83-bcmath php83-common php83-fpm php83-mysqli php83-mysqlnd php83-openssl php83-session php83-sockets php83-zip python3 wget RUN sed -i 's/^listen/;listen/g' /etc/php83/php-fpm.d/www.conf From 59c5e1994506974320f3f1873c8509b03eac89c5 Mon Sep 17 00:00:00 2001 From: Ty Eggen Date: Fri, 7 Feb 2025 22:02:30 +0000 Subject: [PATCH 053/497] chore: improved .gitignore files --- .gitignore | 330 +++++++++------------------------- docker-compose/.dockerignore | 5 + packages/webhooker/.gitignore | 18 +- 3 files changed, 108 insertions(+), 245 deletions(-) create mode 100644 docker-compose/.dockerignore diff --git a/.gitignore b/.gitignore index 285b5669..f3bd64e0 100644 --- a/.gitignore +++ b/.gitignore @@ -1,252 +1,96 @@ +* +!.gitignore + +!.github/ +!.github/**/ +!.github/**/* + +!.husky/ +!.husky/* + +!app/ +!app/**/ +!app/**/*.php + +!conf/ +!conf/**/ +!conf/**/*.conf +!conf/**/*.ini +!conf/**/*.php +!conf/mimes.types conf/config.ini.php -tools/rabbitmq-signing-key-public.asc* -backup -*.gz -*.zip -logs/*.log -logs/*.log.* - -################# -## Eclipse -################# - -*.pydevproject -.project -.metadata -bin/ -tmp/ -*.tmp -*.bak -*.swp -*~.nib -local.properties -.classpath -.settings/ -.loadpath -.idea/ - -# External tool builders -.externalToolBuilders/ - -# Locally stored "Eclipse launch configurations" -*.launch - -# CDT-specific -.cproject - -# PDT-specific -.buildpath - -################# -## Visual Studio -################# - -## Ignore Visual Studio temporary files, build results, and -## files generated by popular Visual Studio add-ons. - -# User-specific files -*.suo -*.user -*.sln.docstates - -# Build results - -[Dd]ebug/ -x64/ -build/ -[Bb]in/ -[Oo]bj/ - -# MSTest test Results -[Tt]est[Rr]esult*/ -[Bb]uild[Ll]og.* - -*_i.c -*_p.c -*.ilk -*.meta -*.obj -*.pch -*.pdb -*.pgc -*.pgd -*.rsp -*.sbr -*.tlb -*.tli -*.tlh -*.tmp -*.tmp_proj -*.log -*.vspscc -*.vssscc -.builds -*.pidb -*.log -*.scc - -# Visual C++ cache files -ipch/ -*.aps -*.ncb -*.opensdf -*.sdf -*.cachefile - -# Visual Studio profiler -*.psess -*.vsp -*.vspx - -# Guidance Automation Toolkit -*.gpState - -# ReSharper is a .NET coding add-in -_ReSharper*/ -*.[Rr]e[Ss]harper - -# TeamCity is a build add-in -_TeamCity* - -# DotCover is a Code Coverage Tool -*.dotCover - -# NCrunch -*.ncrunch* -.*crunch*.local.xml - -# Installshield output folder -[Ee]xpress/ - -# DocProject is a documentation generator add-in -DocProject/buildhelp/ -DocProject/Help/*.HxT -DocProject/Help/*.HxC -DocProject/Help/*.hhc -DocProject/Help/*.hhk -DocProject/Help/*.hhp -DocProject/Help/Html2 -DocProject/Help/html - -# Click-Once directory -publish/ - -# Publish Web Output -*.Publish.xml -*.pubxml -*.publishproj - -# NuGet Packages Directory -## TODO: If you have NuGet Package Restore enabled, uncomment the next line -#packages/ - -# Windows Azure Build Output -csx -*.build.csdef - -# Windows Store app package directory -AppPackages/ - -# Others -sql/ -*.Cache -ClientBin/ -[Ss]tyle[Cc]op.* -~$* -*~ -*.dbmdl -*.[Pp]ublish.xml -*.pfx -*.publishsettings - -# RIA/Silverlight projects -Generated_Code/ - -# Backup & report files from converting an old project file to a newer -# Visual Studio version. Backup files are not needed, because we have git ;-) -_UpgradeReport_Files/ -Backup*/ -UpgradeLog*.XML -UpgradeLog*.htm - -# SQL Server files -App_Data/*.mdf -App_Data/*.ldf - -############# -## Windows detritus -############# - -# Windows image file caches -Thumbs.db -ehthumbs.db - -# Folder config file -Desktop.ini - -# Recycle Bin used on file shares -$RECYCLE.BIN/ - -# Mac crap -.DS_Store - -############# -## Python -############# - -*.py[cod] - -# Packages -*.egg -*.egg-info -build/ -eggs/ -parts/ -var/ -develop-eggs/ -.installed.cfg - -# Installer logs -pip-log.txt - -# Unit test / coverage reports -.coverage -.tox - -#Translations -*.mo - -#Mr Developer -.mr.developer.cfg - -#Vagrant -.vagrant - -#Composer -composer.phar -vendor - -#Docker env -docker/nomos.env -#Coverage -coverage.xml -coverage/. +!docker-compose/ +!docker-compose/Dockerfile +!docker-compose/*.yml + +!docker/ +!docker/* +!docker/docker_compose_run.sh +!docker/docker_env_config.sh +!docker/docker_run.sh +!docker/nomos.env.template +docker/nomos.env -data/** -node_modules -docker-compose.conf +!migrations/ +!migrations/**/ +!migrations/**/*.sql -.vscode -conf/config.js +!packages/ +!packages/**/ -.php-cs-fixer.cache -.phpunit.cache -.phpunit.result.cache +!tests/ +!tests/**/ +!tests/**/*.php +!tools/ +!tools/**/ +!tools/backup/EMPTY +!tools/**/*.md +!tools/**/*.php +!tools/**/*.sh tools/composer.phar -.wireit -docker-compose.override.yml +!vhs/ +!vhs/**/ +!vhs/**/*.php + +!web/ +!web/**/* web/components/ -deploy/ + +!.bowerrc +!.circleci/config.yml +!.dockerignore +!.editorconfig +!.github/workflows/build-docker.yml +!.husky/pre-commit +!.npmrc +!.php-cs-fixer.php +!.prettierignore +!.shellcheckrc +!Dockerfile +!README.md +!Vagrantfile + +!bower.json +!circle.yml +!composer.json +!composer.lock + +!docker-compose.dev.conf +!docker-compose.sample.conf +!docker-compose.sh +!docker-compose.template.conf + +!eslint.config.mjs +!justfile +!logs/EMPTY +!nomos.d.ts +!package.json +!php-ts-transformer.php +!phpunit.xml +!pnpm-lock.yaml +!pnpm-workspace.yaml +!prettier.config.mjs +!tsconfig.json diff --git a/docker-compose/.dockerignore b/docker-compose/.dockerignore new file mode 100644 index 00000000..aa3a93b8 --- /dev/null +++ b/docker-compose/.dockerignore @@ -0,0 +1,5 @@ +Dockerfile +.dockerignore +node_modules +npm-debug.log +dist diff --git a/packages/webhooker/.gitignore b/packages/webhooker/.gitignore index 5adb5f4f..6a81e8bb 100644 --- a/packages/webhooker/.gitignore +++ b/packages/webhooker/.gitignore @@ -1,2 +1,16 @@ -node_modules -config.js +* +!.gitignore +!README.md +!config.docker.js +!config.js.template.js +!domains.js +!events.js +!nomos.js +!package.json +!test/domains.js +!test/webhooks.js +!webhooker.console +!webhooker.js +!webhooker.sbin +!webhooker.service +!webhooks.js From 485a281aba22ad71657b13870696078af328113c Mon Sep 17 00:00:00 2001 From: Ty Eggen Date: Fri, 7 Feb 2025 22:06:43 +0000 Subject: [PATCH 054/497] fix(backend): missing AnonPrincipal return type from CurrentUser --- app/contracts/v2/IAuthService2.php | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/app/contracts/v2/IAuthService2.php b/app/contracts/v2/IAuthService2.php index ffa771f0..83d812b8 100644 --- a/app/contracts/v2/IAuthService2.php +++ b/app/contracts/v2/IAuthService2.php @@ -17,6 +17,7 @@ use app\dto\TrimmedUser; use app\security\UserPrincipal; use app\utils\AuthCheckResult; +use vhs\security\AnonPrincipal; use vhs\services\IContract; /** @typescript */ @@ -119,9 +120,9 @@ public function CountUserClients($userid, $filters): int; * * @throws string * - * @return \app\security\UserPrincipal + * @return \app\security\UserPrincipal|\vhs\security\AnonPrincipal */ - public function CurrentUser(): UserPrincipal; + public function CurrentUser(): UserPrincipal|AnonPrincipal; /** * @permission administrator|user From ae7c853cccf537c14b0013e4a621e1a1fe54a646 Mon Sep 17 00:00:00 2001 From: Ty Eggen Date: Sun, 9 Feb 2025 23:26:30 +0000 Subject: [PATCH 055/497] feat(backend): TotalKeyHoldersResult and TotalMembersResult dtos --- app/dto/TotalKeyHoldersResult.php | 7 +++++++ app/dto/TotalMembersResult.php | 7 +++++++ 2 files changed, 14 insertions(+) create mode 100644 app/dto/TotalKeyHoldersResult.php create mode 100644 app/dto/TotalMembersResult.php diff --git a/app/dto/TotalKeyHoldersResult.php b/app/dto/TotalKeyHoldersResult.php new file mode 100644 index 00000000..64dc3958 --- /dev/null +++ b/app/dto/TotalKeyHoldersResult.php @@ -0,0 +1,7 @@ + Date: Sun, 9 Feb 2025 23:31:12 +0000 Subject: [PATCH 056/497] feat(backend): improved v2 api typing --- app/contracts/v2/IApiKeyService2.php | 6 +++--- app/contracts/v2/IEmailService2.php | 4 ++-- app/contracts/v2/IEventService2.php | 8 ++++---- app/contracts/v2/IKeyService2.php | 4 ++-- app/contracts/v2/IMembershipService2.php | 8 ++++---- app/contracts/v2/IPreferenceService2.php | 8 ++++---- app/contracts/v2/ISystemPreferenceService2.php | 8 ++++---- app/contracts/v2/IUserService2.php | 8 ++++---- app/contracts/v2/IWebHookService2.php | 8 ++++---- app/handlers/v2/ApiKeyServiceHandler2.php | 18 +++++++++--------- app/handlers/v2/AuthServiceHandler2.php | 5 +++-- app/handlers/v2/EventServiceHandler2.php | 8 +++++--- app/handlers/v2/MembershipServiceHandler2.php | 4 ++-- app/handlers/v2/PreferenceServiceHandler2.php | 8 +++++--- .../v2/SystemPreferenceServiceHandler2.php | 8 +++++--- app/handlers/v2/UserServiceHandler2.php | 4 ++-- app/handlers/v2/WebHookServiceHandler2.php | 8 +++++--- 17 files changed, 67 insertions(+), 58 deletions(-) diff --git a/app/contracts/v2/IApiKeyService2.php b/app/contracts/v2/IApiKeyService2.php index 4bdda56e..220f1767 100644 --- a/app/contracts/v2/IApiKeyService2.php +++ b/app/contracts/v2/IApiKeyService2.php @@ -82,14 +82,14 @@ public function GetUserApiKeys($userid): array; /** * @permission administrator|user * - * @param int $keyid - * @param string $privileges + * @param int|int[] $key + * @param string|string[] $privileges * * @throws string * * @return bool */ - public function PutApiKeyPrivileges($keyid, $privileges): bool; + public function PutApiKeyPrivileges($key, $privileges): bool; /** * @permission administrator|user diff --git a/app/contracts/v2/IEmailService2.php b/app/contracts/v2/IEmailService2.php index d0631527..da93aa48 100644 --- a/app/contracts/v2/IEmailService2.php +++ b/app/contracts/v2/IEmailService2.php @@ -106,9 +106,9 @@ public function ListTemplates($page, $size, $columns, $order, $filters): array; * * @throws string * - * @return bool + * @return \app\domain\EmailTemplate */ - public function PutTemplate($name, $code, $subject, $help, $body, $html): bool; + public function PutTemplate($name, $code, $subject, $help, $body, $html): EmailTemplate; /** * @permission administrator diff --git a/app/contracts/v2/IEventService2.php b/app/contracts/v2/IEventService2.php index 39b894dd..ea09be60 100644 --- a/app/contracts/v2/IEventService2.php +++ b/app/contracts/v2/IEventService2.php @@ -36,9 +36,9 @@ public function CountEvents($filters): int; * * @throws string * - * @return bool + * @return \app\domain\Event */ - public function CreateEvent($name, $domain, $event, $description, $enabled): bool; + public function CreateEvent($name, $domain, $event, $description, $enabled): Event; /** * @permission administrator @@ -139,8 +139,8 @@ public function ListEvents($page, $size, $columns, $order, $filters): array; /** * @permission administrator * - * @param int $id - * @param string $privileges + * @param int $id + * @param string|string[] $privileges * * @throws string * diff --git a/app/contracts/v2/IKeyService2.php b/app/contracts/v2/IKeyService2.php index 130453ff..c050e825 100644 --- a/app/contracts/v2/IKeyService2.php +++ b/app/contracts/v2/IKeyService2.php @@ -83,8 +83,8 @@ public function GetUserKeys($userid, $types): array; /** * @permission administrator|user * - * @param int $keyid - * @param string $privileges + * @param int $keyid + * @param string|string[] $privileges * * @throws string * diff --git a/app/contracts/v2/IMembershipService2.php b/app/contracts/v2/IMembershipService2.php index 0235ad92..25d8556f 100644 --- a/app/contracts/v2/IMembershipService2.php +++ b/app/contracts/v2/IMembershipService2.php @@ -41,7 +41,7 @@ public function Create($title, $description, $price, $code, $days, $period): voi /** * @permission administrator * - * @param int $membershipId + * @param array $membershipId * * @throws string * @@ -76,8 +76,8 @@ public function ListMemberships($page, $size, $columns, $order, $filters): array /** * @permission administrator * - * @param int $membershipId - * @param string $privileges + * @param int $membershipId + * @param string|string[] $privileges * * @throws string * @@ -93,7 +93,7 @@ public function PutPrivileges($membershipId, $privileges): bool; * @param string $description * @param int $price * @param string $code - * @param string $days + * @param int $days * @param string $period * * @throws string diff --git a/app/contracts/v2/IPreferenceService2.php b/app/contracts/v2/IPreferenceService2.php index 3c472630..4015e1d8 100644 --- a/app/contracts/v2/IPreferenceService2.php +++ b/app/contracts/v2/IPreferenceService2.php @@ -81,15 +81,15 @@ public function ListSystemPreferences($page, $size, $columns, $order, $filters): * * @throws string * - * @return bool + * @return \app\domain\SystemPreference */ - public function PutSystemPreference($key, $value, $enabled, $notes): bool; + public function PutSystemPreference($key, $value, $enabled, $notes): SystemPreference; /** * @permission administrator * - * @param int $id - * @param string $privileges + * @param int $id + * @param string|string[] $privileges * * @throws string * diff --git a/app/contracts/v2/ISystemPreferenceService2.php b/app/contracts/v2/ISystemPreferenceService2.php index 9e301de4..4cece4a7 100644 --- a/app/contracts/v2/ISystemPreferenceService2.php +++ b/app/contracts/v2/ISystemPreferenceService2.php @@ -81,15 +81,15 @@ public function ListSystemPreferences($page, $size, $columns, $order, $filters): * * @throws string * - * @return bool + * @return \app\domain\SystemPreference */ - public function PutSystemPreference($key, $value, $enabled, $notes): bool; + public function PutSystemPreference($key, $value, $enabled, $notes): SystemPreference; /** * @permission administrator * - * @param int $id - * @param string $privileges + * @param int $id + * @param string|string[] $privileges * * @throws string * diff --git a/app/contracts/v2/IUserService2.php b/app/contracts/v2/IUserService2.php index 953240fe..670aa25e 100644 --- a/app/contracts/v2/IUserService2.php +++ b/app/contracts/v2/IUserService2.php @@ -124,8 +124,8 @@ public function ListUsers($page, $size, $columns, $order, $filters): array; /** * @permission administrator * - * @param int $userid - * @param string $privileges + * @param int $userid + * @param string|string[] $privileges * * @throws string * @@ -258,8 +258,8 @@ public function UpdateName($userid, $fname, $lname): bool; /** * @permission administrator|user * - * @param int $userid - * @param string $subscribe + * @param int $userid + * @param bool $subscribe * * @throws string * diff --git a/app/contracts/v2/IWebHookService2.php b/app/contracts/v2/IWebHookService2.php index 921993fd..0ba92610 100644 --- a/app/contracts/v2/IWebHookService2.php +++ b/app/contracts/v2/IWebHookService2.php @@ -53,9 +53,9 @@ public function CountUserHooks($userid, $filters): int; * @throws string * @throws UnauthorizedException * - * @return bool + * @return \app\domain\WebHook */ - public function CreateHook($name, $description, $enabled, $url, $translation, $headers, $method, $eventid): bool; + public function CreateHook($name, $description, $enabled, $url, $translation, $headers, $method, $eventid): WebHook; /** * @permission administrator|user @@ -147,8 +147,8 @@ public function ListUserHooks($userid, $page, $size, $columns, $order, $filters) /** * @permission administrator|user * - * @param int $id - * @param string $privileges + * @param int $id + * @param string|string[] $privileges * * @throws string * diff --git a/app/handlers/v2/ApiKeyServiceHandler2.php b/app/handlers/v2/ApiKeyServiceHandler2.php index 06c66fb6..bbd7a1df 100644 --- a/app/handlers/v2/ApiKeyServiceHandler2.php +++ b/app/handlers/v2/ApiKeyServiceHandler2.php @@ -146,22 +146,22 @@ public function GetUserApiKeys($userid): array { /** * @permission administrator|user * - * @param int $keyid - * @param string $privileges + * @param int|int[] $keyid + * @param string|string[] $privileges * * @throws string * * @return bool */ public function PutApiKeyPrivileges($keyid, $privileges): bool { - $key = Key::find($keyid); + $keyid = Key::find($keyid); - if (is_null($key)) { + if (is_null($keyid)) { throw new InvalidInputException(\app\constants\Errors::E_INVALID_KEY_INPUT); } if (!CurrentUser::hasAnyPermissions('administrator')) { - if (is_null($key->userid) || $key->userid != CurrentUser::getIdentity()) { + if (is_null($keyid->userid) || $keyid->userid != CurrentUser::getIdentity()) { throw new UnauthorizedException(); } } @@ -174,15 +174,15 @@ public function PutApiKeyPrivileges($keyid, $privileges): bool { $privs = Privilege::findByCodes(...$privArray); - foreach ($key->privileges->all() as $priv) { - $key->privileges->remove($priv); + foreach ($keyid->privileges->all() as $priv) { + $keyid->privileges->remove($priv); } foreach ($privs as $priv) { - $key->privileges->add($priv); + $keyid->privileges->add($priv); } - return $key->save(); + return $keyid->save(); } /** diff --git a/app/handlers/v2/AuthServiceHandler2.php b/app/handlers/v2/AuthServiceHandler2.php index 9cf78d3e..2cb14cc6 100644 --- a/app/handlers/v2/AuthServiceHandler2.php +++ b/app/handlers/v2/AuthServiceHandler2.php @@ -30,6 +30,7 @@ use vhs\database\queries\QuerySelect; use vhs\database\wheres\Where; use vhs\domain\Filter; +use vhs\security\AnonPrincipal; use vhs\security\CurrentUser; use vhs\security\exceptions\UnauthorizedException; use vhs\security\UserPassCredentials; @@ -338,9 +339,9 @@ public function CountUserClients($userid, $filters): int { * * @throws string * - * @return \app\security\UserPrincipal + * @return \app\security\AnonPrincipal|\app\security\UserPrincipal */ - public function CurrentUser(): UserPrincipal { + public function CurrentUser(): UserPrincipal|AnonPrincipal { return CurrentUser::getPrincipal(); } diff --git a/app/handlers/v2/EventServiceHandler2.php b/app/handlers/v2/EventServiceHandler2.php index f9113bd2..bf76a130 100644 --- a/app/handlers/v2/EventServiceHandler2.php +++ b/app/handlers/v2/EventServiceHandler2.php @@ -45,9 +45,9 @@ public function CountEvents($filters): int { * * @throws string * - * @return bool + * @return \app\domain\Event */ - public function CreateEvent($name, $domain, $event, $description, $enabled): bool { + public function CreateEvent($name, $domain, $event, $description, $enabled): Event { if (Event::exists($domain, $event)) { throw new InvalidInputException('Event already exists for code and/or domain.event'); } @@ -60,7 +60,9 @@ public function CreateEvent($name, $domain, $event, $description, $enabled): boo $evt->description = $description; $evt->enabled = $enabled; - return $evt->save(); + $evt->save(); + + return $evt; } /** diff --git a/app/handlers/v2/MembershipServiceHandler2.php b/app/handlers/v2/MembershipServiceHandler2.php index a5b3fbf2..28192af7 100644 --- a/app/handlers/v2/MembershipServiceHandler2.php +++ b/app/handlers/v2/MembershipServiceHandler2.php @@ -41,7 +41,7 @@ public function Create($title, $description, $price, $code, $days, $period): voi /** * @permission administrator * - * @param int $membershipId + * @param array $membershipId * * @throws string * @@ -119,7 +119,7 @@ public function PutPrivileges($membershipId, $privileges): bool { * @param string $description * @param int $price * @param string $code - * @param string $days + * @param int $days * @param string $period * * @throws string diff --git a/app/handlers/v2/PreferenceServiceHandler2.php b/app/handlers/v2/PreferenceServiceHandler2.php index 37c7125d..8b7f10d2 100644 --- a/app/handlers/v2/PreferenceServiceHandler2.php +++ b/app/handlers/v2/PreferenceServiceHandler2.php @@ -100,9 +100,9 @@ public function ListSystemPreferences($page, $size, $columns, $order, $filters): * * @throws string * - * @return bool + * @return SystemPreference */ - public function PutSystemPreference($key, $value, $enabled, $notes): bool { + public function PutSystemPreference($key, $value, $enabled, $notes): SystemPreference { $prefs = SystemPreference::findByKey($key); $pref = null; @@ -118,7 +118,9 @@ public function PutSystemPreference($key, $value, $enabled, $notes): bool { $pref->enabled = $enabled; $pref->notes = $notes; - return $pref->save(); + $pref->save(); + + return $pref; } /** diff --git a/app/handlers/v2/SystemPreferenceServiceHandler2.php b/app/handlers/v2/SystemPreferenceServiceHandler2.php index 78677c3e..c89b0801 100644 --- a/app/handlers/v2/SystemPreferenceServiceHandler2.php +++ b/app/handlers/v2/SystemPreferenceServiceHandler2.php @@ -101,9 +101,9 @@ public function ListSystemPreferences($page, $size, $columns, $order, $filters): * * @throws string * - * @return bool + * @return SystemPreference */ - public function PutSystemPreference($key, $value, $enabled, $notes): bool { + public function PutSystemPreference($key, $value, $enabled, $notes): SystemPreference { $pref = $this->getSystemPreferencesByKey($key, true); if (is_null($pref)) { @@ -115,7 +115,9 @@ public function PutSystemPreference($key, $value, $enabled, $notes): bool { $pref->enabled = $enabled; $pref->notes = $notes; - return $pref->save(); + $pref->save(); + + return $pref; } /** diff --git a/app/handlers/v2/UserServiceHandler2.php b/app/handlers/v2/UserServiceHandler2.php index 40460d0b..113ffaa1 100644 --- a/app/handlers/v2/UserServiceHandler2.php +++ b/app/handlers/v2/UserServiceHandler2.php @@ -609,8 +609,8 @@ public function UpdateName($userid, $fname, $lname): bool { /** * @permission administrator|user * - * @param int $userid - * @param string $subscribe + * @param int $userid + * @param bool $subscribe * * @throws string * diff --git a/app/handlers/v2/WebHookServiceHandler2.php b/app/handlers/v2/WebHookServiceHandler2.php index 008fb66a..be8ae1f5 100644 --- a/app/handlers/v2/WebHookServiceHandler2.php +++ b/app/handlers/v2/WebHookServiceHandler2.php @@ -64,9 +64,9 @@ public function CountUserHooks($userid, $filters): int { * @throws string * @throws UnauthorizedException * - * @return bool + * @return \app\domain\WebHook */ - public function CreateHook($name, $description, $enabled, $url, $translation, $headers, $method, $eventid): bool { + public function CreateHook($name, $description, $enabled, $url, $translation, $headers, $method, $eventid): WebHook { $event = (new EventServiceHandler2($this->context))->GetEvent($eventid); $codes = []; @@ -90,7 +90,9 @@ public function CreateHook($name, $description, $enabled, $url, $translation, $h $hook->event = $event; $hook->userid = CurrentUser::getIdentity(); - return $hook->save(); + $hook->save(); + + return $hook; } /** From a55fe55dd72e0dbd86a00a60e45fdc98011b20ec Mon Sep 17 00:00:00 2001 From: Ty Eggen Date: Sun, 9 Feb 2025 23:33:19 +0000 Subject: [PATCH 057/497] feat(backend): SystemPreferenceService2 endpoint --- .../v2/SystemPreferenceService2.svc.php | 21 +++++++++++++++++++ 1 file changed, 21 insertions(+) create mode 100644 app/endpoints/v2/SystemPreferenceService2.svc.php diff --git a/app/endpoints/v2/SystemPreferenceService2.svc.php b/app/endpoints/v2/SystemPreferenceService2.svc.php new file mode 100644 index 00000000..36c98da8 --- /dev/null +++ b/app/endpoints/v2/SystemPreferenceService2.svc.php @@ -0,0 +1,21 @@ + Date: Sun, 9 Feb 2025 23:54:11 +0000 Subject: [PATCH 058/497] feat(frontend): initial react frontend import --- packages/frontend-react/.editorconfig | 9 + packages/frontend-react/.gitignore | 45 ++ packages/frontend-react/.prettierignore | 2 + packages/frontend-react/.storybook/main.ts | 60 ++ .../frontend-react/.storybook/preview.tsx | 38 + packages/frontend-react/README.md | 20 + packages/frontend-react/docs/Development.md | 63 ++ packages/frontend-react/eslint.config.mjs | 84 +++ .../frontend-react/generate-react-cli.json | 280 +++++++ packages/frontend-react/index.html | 17 + packages/frontend-react/package.json | 130 ++++ packages/frontend-react/postcss.config.js | 7 + packages/frontend-react/prettier.config.mjs | 5 + .../public/badges/cert_cnc_mill_lathe.svg | 74 ++ .../public/badges/cert_laser.svg | 32 + .../public/badges/door_access.svg | 8 + .../public/badges/key_holder.svg | 140 ++++ .../public/badges/key_holder_inactive.svg | 54 ++ .../frontend-react/public/badges/laser.png | Bin 0 -> 28133 bytes .../public/badges/newsletter.svg | 28 + packages/frontend-react/public/favicon.ico | Bin 0 -> 3870 bytes .../frontend-react/public/images/logo.png | Bin 0 -> 4492 bytes .../public/images/provider/github.png | Bin 0 -> 3404 bytes .../public/images/provider/google.png | Bin 0 -> 3895 bytes .../public/images/provider/pin.png | Bin 0 -> 619 bytes .../public/images/provider/rfid.png | Bin 0 -> 802 bytes .../public/images/provider/slack.png | Bin 0 -> 5071 bytes .../frontend-react/public/images/slack.png | Bin 0 -> 5071 bytes .../images/under-construction90s-90s.gif | Bin 0 -> 3541 bytes .../images/vhs-member-card-2015-2-full.png | Bin 0 -> 598913 bytes .../images/vhs-member-card-2015-2-thumb.png | Bin 0 -> 52368 bytes .../images/vhs-member-card-2015-full.png | Bin 0 -> 679719 bytes .../images/vhs-member-card-2015-thumb.png | Bin 0 -> 56963 bytes .../public/mockServiceWorker.js | 307 ++++++++ packages/frontend-react/public/robots.txt | 3 + .../AccountStatusBadge.lazy.tsx | 15 + .../AccountStatusBadge.module.css | 11 + .../AccountStatusBadge.stories.tsx | 27 + .../AccountStatusBadge/AccountStatusBadge.tsx | 45 ++ .../AccountStatusBadge.types.ts | 3 + .../AccountStatusBadge.utils.ts | 0 .../AdminUserProfile.lazy.tsx | 15 + .../AdminUserProfile.stories.tsx | 27 + .../AdminUserProfile/AdminUserProfile.tsx | 113 +++ .../AdminUserProfile.types.ts | 20 + .../AdminUserProfile.utils.ts | 0 .../01-atoms/Button/Button.lazy.tsx | 15 + .../01-atoms/Button/Button.stories.tsx | 86 +++ .../src/components/01-atoms/Button/Button.tsx | 29 + .../01-atoms/Button/Button.types.ts | 20 + .../01-atoms/Button/Button.utils.ts | 0 .../src/components/01-atoms/Col/Col.lazy.tsx | 15 + .../components/01-atoms/Col/Col.stories.tsx | 29 + .../src/components/01-atoms/Col/Col.tsx | 34 + .../src/components/01-atoms/Col/Col.types.ts | 11 + .../src/components/01-atoms/Col/Col.utils.ts | 0 .../Conditional/Conditional.stories.tsx | 15 + .../01-atoms/Conditional/Conditional.tsx | 11 + .../01-atoms/Conditional/Conditional.types.ts | 7 + .../01-atoms/Conditional/Conditional.utils.ts | 0 .../01-atoms/Container/Container.lazy.tsx | 15 + .../01-atoms/Container/Container.stories.tsx | 27 + .../01-atoms/Container/Container.tsx | 17 + .../01-atoms/Container/Container.types.ts | 7 + .../01-atoms/Container/Container.utils.ts | 0 .../CreateUserButton.lazy.tsx | 15 + .../CreateUserButton.stories.tsx | 27 + .../CreateUserButton/CreateUserButton.tsx | 15 + .../CreateUserButton.types.ts | 5 + .../CreateUserButton.utils.ts | 0 .../FontAwesomeIcon/FontAwesomeIcon.lazy.tsx | 15 + .../FontAwesomeIcon.stories.tsx | 27 + .../FontAwesomeIcon/FontAwesomeIcon.tsx | 47 ++ .../FontAwesomeIcon/FontAwesomeIcon.types.ts | 27 + .../FontAwesomeIcon/FontAwesomeIcon.utils.ts | 0 .../01-atoms/FormControl/FormControl.lazy.tsx | 15 + .../FormControl/FormControl.module.css | 0 .../FormControl/FormControl.stories.tsx | 44 ++ .../01-atoms/FormControl/FormControl.tsx | 144 ++++ .../01-atoms/FormControl/FormControl.types.ts | 77 ++ .../01-atoms/FormControl/FormControl.utils.ts | 0 .../01-atoms/NavBar/NavBar.lazy.tsx | 15 + .../01-atoms/NavBar/NavBar.stories.tsx | 29 + .../src/components/01-atoms/NavBar/NavBar.tsx | 14 + .../01-atoms/NavBar/NavBar.types.ts | 5 + .../01-atoms/NavBar/NavBar.utils.ts | 0 .../01-atoms/Overlay/Overlay.lazy.tsx | 15 + .../01-atoms/Overlay/Overlay.stories.tsx | 29 + .../components/01-atoms/Overlay/Overlay.tsx | 32 + .../01-atoms/Overlay/Overlay.types.ts | 8 + .../01-atoms/Overlay/Overlay.utils.ts | 0 .../components/01-atoms/Pill/Pill.lazy.tsx | 15 + .../components/01-atoms/Pill/Pill.stories.tsx | 29 + .../src/components/01-atoms/Pill/Pill.tsx | 19 + .../components/01-atoms/Pill/Pill.types.ts | 6 + .../components/01-atoms/Pill/Pill.utils.ts | 0 .../01-atoms/Popover/Popover.lazy.tsx | 15 + .../01-atoms/Popover/Popover.stories.tsx | 28 + .../components/01-atoms/Popover/Popover.tsx | 16 + .../01-atoms/Popover/Popover.types.ts | 7 + .../01-atoms/Popover/Popover.utils.ts | 0 .../RedirectAdminDashboard.lazy.tsx | 15 + .../RedirectAdminDashboard.stories.tsx | 29 + .../RedirectAdminDashboard.tsx | 9 + .../RedirectAdminDashboard.types.ts | 5 + .../RedirectAdminDashboard.utils.ts | 0 .../RedirectLogin/RedirectLogin.lazy.tsx | 15 + .../RedirectLogin/RedirectLogin.stories.tsx | 29 + .../01-atoms/RedirectLogin/RedirectLogin.tsx | 9 + .../RedirectLogin/RedirectLogin.types.ts | 5 + .../RedirectLogin/RedirectLogin.utils.ts | 0 .../RedirectRoot/RedirectRoot.lazy.tsx | 15 + .../RedirectRoot/RedirectRoot.stories.tsx | 29 + .../01-atoms/RedirectRoot/RedirectRoot.tsx | 9 + .../RedirectRoot/RedirectRoot.types.ts | 5 + .../RedirectRoot/RedirectRoot.utils.ts | 0 .../RedirectUserDashboard.lazy.tsx | 15 + .../RedirectUserDashboard.stories.tsx | 29 + .../RedirectUserDashboard.tsx | 9 + .../RedirectUserDashboard.types.ts | 5 + .../RedirectUserDashboard.utils.ts | 0 .../src/components/01-atoms/Row/Row.lazy.tsx | 15 + .../components/01-atoms/Row/Row.stories.tsx | 29 + .../src/components/01-atoms/Row/Row.tsx | 13 + .../src/components/01-atoms/Row/Row.types.ts | 7 + .../src/components/01-atoms/Row/Row.utils.ts | 0 .../TableActionsCell.lazy.tsx | 15 + .../TableActionsCell.stories.tsx | 27 + .../TableActionsCell/TableActionsCell.tsx | 11 + .../TableActionsCell.types.ts | 5 + .../TableActionsCell.utils.ts | 0 .../TablePageRow/TablePageRow.lazy.tsx | 15 + .../TablePageRow/TablePageRow.stories.tsx | 27 + .../01-atoms/TablePageRow/TablePageRow.tsx | 11 + .../TablePageRow/TablePageRow.types.ts | 5 + .../TablePageRow/TablePageRow.utils.ts | 0 .../01-atoms/Toggle/Toggle.lazy.tsx | 15 + .../01-atoms/Toggle/Toggle.stories.tsx | 49 ++ .../src/components/01-atoms/Toggle/Toggle.tsx | 61 ++ .../01-atoms/Toggle/Toggle.types.ts | 9 + .../01-atoms/Toggle/Toggle.utils.ts | 0 .../UnderConstructionBanner.lazy.tsx | 15 + .../UnderConstructionBanner.stories.tsx | 27 + .../UnderConstructionBanner.tsx | 31 + .../UnderConstructionBanner.types.ts | 5 + .../UnderConstructionBanner.utils.ts | 0 .../AdminGuard/AdminGuard.lazy.tsx | 15 + .../AdminGuard/AdminGuard.stories.tsx | 29 + .../02-molecules/AdminGuard/AdminGuard.tsx | 23 + .../AdminGuard/AdminGuard.types.ts | 5 + .../AdminGuard/AdminGuard.utils.ts | 0 .../02-molecules/ApiKey/ApiKey.lazy.tsx | 15 + .../02-molecules/ApiKey/ApiKey.stories.tsx | 43 ++ .../components/02-molecules/ApiKey/ApiKey.tsx | 251 +++++++ .../02-molecules/ApiKey/ApiKey.types.ts | 12 + .../02-molecules/ApiKey/ApiKey.utils.ts | 0 .../PrivilegesList/PrivilegesList.lazy.tsx | 15 + .../PrivilegesList/PrivilegesList.stories.tsx | 17 + .../ApiKey/PrivilegesList/PrivilegesList.tsx | 44 ++ .../PrivilegesList/PrivilegesList.types.ts | 10 + .../PrivilegesList/PrivilegesList.utils.ts | 0 .../ConditionalTableCell.lazy.tsx | 15 + .../ConditionalTableCell.stories.tsx | 27 + .../ConditionalTableCell.test.tsx | 10 + .../ConditionalTableCell.tsx | 15 + .../ConditionalTableCell.types.ts | 8 + .../ConditionalTableCell.utils.ts | 0 .../02-molecules/Loading/Loading.stories.tsx | 29 + .../02-molecules/Loading/Loading.tsx | 21 + .../02-molecules/Loading/Loading.types.ts | 3 + .../02-molecules/Loading/Loading.utils.ts | 7 + .../LoadingOverlay/LoadingOverlay.lazy.tsx | 13 + .../LoadingOverlay/LoadingOverlay.stories.tsx | 29 + .../LoadingOverlay/LoadingOverlay.tsx | 19 + .../LoadingOverlay/LoadingOverlay.types.ts | 3 + .../LoadingOverlay/LoadingOverlay.utils.ts | 0 .../NewApiKeyForm/NewApiKeyForm.lazy.tsx | 15 + .../NewApiKeyForm/NewApiKeyForm.stories.tsx | 27 + .../NewApiKeyForm/NewApiKeyForm.tsx | 53 ++ .../NewApiKeyForm/NewApiKeyForm.types.ts | 8 + .../NewApiKeyForm/NewApiKeyForm.utils.ts | 0 .../PrivilegeIcon/PrivilegeIcon.lazy.tsx | 15 + .../PrivilegeIcon/PrivilegeIcon.stories.tsx | 27 + .../PrivilegeIcon/PrivilegeIcon.test.tsx | 10 + .../PrivilegeIcon/PrivilegeIcon.tsx | 26 + .../PrivilegeIcon/PrivilegeIcon.types.ts | 11 + .../PrivilegeIcon/PrivilegeIcon.ui.tsx | 17 + .../PrivilegeIcon/PrivilegeIcon.utils.ts | 0 .../02-molecules/TopBar/TopBar.lazy.tsx | 15 + .../02-molecules/TopBar/TopBar.stories.tsx | 29 + .../components/02-molecules/TopBar/TopBar.tsx | 30 + .../02-molecules/TopBar/TopBar.types.ts | 5 + .../02-molecules/TopBar/TopBar.utils.ts | 0 .../02-molecules/UserGuard/UserGuard.lazy.tsx | 15 + .../UserGuard/UserGuard.stories.tsx | 29 + .../02-molecules/UserGuard/UserGuard.tsx | 23 + .../02-molecules/UserGuard/UserGuard.types.ts | 5 + .../02-molecules/UserGuard/UserGuard.utils.ts | 0 .../WaitingRoom/WaitingRoom.lazy.tsx | 15 + .../WaitingRoom/WaitingRoom.stories.tsx | 29 + .../02-molecules/WaitingRoom/WaitingRoom.tsx | 17 + .../WaitingRoom/WaitingRoom.types.ts | 5 + .../WaitingRoom/WaitingRoom.utils.ts | 0 .../ComplexChart/ComplexChart.lazy.tsx | 15 + .../ComplexChart/ComplexChart.stories.tsx | 34 + .../ComplexChart/ComplexChart.tsx | 24 + .../ComplexChart/ComplexChart.types.ts | 7 + .../ComplexChart/ComplexChart.utils.ts | 0 .../DoughnutChart/DoughnutChart.lazy.tsx | 15 + .../DoughnutChart/DoughnutChart.stories.tsx | 23 + .../DoughnutChart/DoughnutChart.tsx | 13 + .../DoughnutChart/DoughnutChart.types.ts | 6 + .../DoughnutChart/DoughnutChart.utils.ts | 0 .../UserProfileCard/UserProfileCard.lazy.tsx | 15 + .../UserProfileCard.stories.tsx | 29 + .../UserProfileCard/UserProfileCard.tsx | 38 + .../UserProfileCard/UserProfileCard.types.ts | 5 + .../UserProfileCard/UserProfileCard.utils.ts | 0 .../04-composites/Card/Card.stories.tsx | 15 + .../04-composites/Card/Card.types.ts | 13 + .../Card/CardBody/CardBody.lazy.tsx | 15 + .../Card/CardBody/CardBody.stories.tsx | 29 + .../04-composites/Card/CardBody/CardBody.tsx | 13 + .../Card/CardBody/CardBody.types.ts | 6 + .../Card/CardBody/CardBody.utils.ts | 0 .../Card/CardContainer/CardContainer.lazy.tsx | 15 + .../CardContainer/CardContainer.stories.tsx | 29 + .../Card/CardContainer/CardContainer.tsx | 13 + .../Card/CardContainer/CardContainer.types.ts | 8 + .../Card/CardContainer/CardContainer.utils.ts | 0 .../Card/CardFooter/CardFooter.lazy.tsx | 15 + .../Card/CardFooter/CardFooter.stories.tsx | 29 + .../Card/CardFooter/CardFooter.tsx | 16 + .../Card/CardFooter/CardFooter.types.ts | 6 + .../Card/CardFooter/CardFooter.utils.ts | 0 .../Card/CardHeader/CardHeader.lazy.tsx | 15 + .../Card/CardHeader/CardHeader.stories.tsx | 29 + .../Card/CardHeader/CardHeader.tsx | 13 + .../Card/CardHeader/CardHeader.types.ts | 6 + .../Card/CardHeader/CardHeader.utils.ts | 0 .../components/04-composites/Card/index.tsx | 17 + .../CreateSystemPreference.lazy.tsx | 15 + .../CreateSystemPreference.stories.tsx | 27 + .../CreateSystemPreference.test.tsx | 10 + .../CreateSystemPreference.tsx | 277 +++++++ .../CreateSystemPreference.types.ts | 1 + .../CreateSystemPreference.utils.ts | 0 .../GridChart/GridChart.lazy.tsx | 15 + .../GridChart/GridChart.module.css | 28 + .../GridChart/GridChart.stories.tsx | 64 ++ .../04-composites/GridChart/GridChart.tsx | 88 +++ .../GridChart/GridChart.types.ts | 24 + .../GridChart/GridChart.utils.ts | 24 + .../InputGroup/InputGroup.lazy.tsx | 15 + .../InputGroup/InputGroup.stories.tsx | 29 + .../04-composites/InputGroup/InputGroup.tsx | 22 + .../InputGroup/InputGroup.types.ts | 7 + .../InputGroup/InputGroup.utils.ts | 0 .../04-composites/Modal/Modal.types.ts | 15 + .../Modal/ModalBody/ModalBody.lazy.tsx | 15 + .../Modal/ModalBody/ModalBody.stories.tsx | 29 + .../Modal/ModalBody/ModalBody.tsx | 13 + .../Modal/ModalBody/ModalBody.types.ts | 6 + .../Modal/ModalBody/ModalBody.utils.ts | 0 .../ModalContainer/ModalContainer.lazy.tsx | 15 + .../ModalContainer/ModalContainer.stories.tsx | 29 + .../Modal/ModalContainer/ModalContainer.tsx | 34 + .../ModalContainer/ModalContainer.types.ts | 7 + .../ModalContainer/ModalContainer.utils.ts | 0 .../Modal/ModalFooter/ModalFooter.lazy.tsx | 15 + .../Modal/ModalFooter/ModalFooter.stories.tsx | 29 + .../Modal/ModalFooter/ModalFooter.tsx | 16 + .../Modal/ModalFooter/ModalFooter.types.ts | 6 + .../Modal/ModalFooter/ModalFooter.utils.ts | 0 .../Modal/ModalHeader/ModalHeader.lazy.tsx | 15 + .../Modal/ModalHeader/ModalHeader.stories.tsx | 29 + .../Modal/ModalHeader/ModalHeader.tsx | 32 + .../Modal/ModalHeader/ModalHeader.types.ts | 7 + .../Modal/ModalHeader/ModalHeader.utils.ts | 0 .../Modal/ModalTitle/ModalTitle.lazy.tsx | 15 + .../Modal/ModalTitle/ModalTitle.stories.tsx | 29 + .../Modal/ModalTitle/ModalTitle.tsx | 13 + .../Modal/ModalTitle/ModalTitle.types.ts | 6 + .../Modal/ModalTitle/ModalTitle.utils.ts | 0 .../components/04-composites/Modal/index.tsx | 22 + .../Paginator/Paginator.lazy.tsx | 15 + .../Paginator/Paginator.stories.tsx | 18 + .../04-composites/Paginator/Paginator.tsx | 195 +++++ .../Paginator/Paginator.types.ts | 41 + .../Paginator/Paginator.utils.ts | 0 .../PathTabs/PathTab/PathTab.lazy.tsx | 15 + .../PathTabs/PathTab/PathTab.stories.tsx | 29 + .../PathTabs/PathTab/PathTab.tsx | 18 + .../PathTabs/PathTab/PathTab.types.ts | 7 + .../PathTabs/PathTab/PathTab.utils.ts | 0 .../PathTabs/PathTabs.context.tsx | 13 + .../04-composites/PathTabs/PathTabs.lazy.tsx | 15 + .../PathTabs/PathTabs.stories.tsx | 27 + .../04-composites/PathTabs/PathTabs.tsx | 35 + .../04-composites/PathTabs/PathTabs.types.ts | 16 + .../04-composites/PathTabs/PathTabs.utils.ts | 0 .../StatusSelectorCard.lazy.tsx | 15 + .../StatusSelectorCard.stories.tsx | 27 + .../StatusSelectorCard.test.tsx | 18 + .../StatusSelectorCard/StatusSelectorCard.tsx | 58 ++ .../StatusSelectorCard.types.ts | 10 + .../StatusSelectorCard.utils.ts | 8 + .../04-composites/Tabs/Tab/Tab.lazy.tsx | 15 + .../04-composites/Tabs/Tab/Tab.stories.tsx | 27 + .../04-composites/Tabs/Tab/Tab.test.tsx | 14 + .../components/04-composites/Tabs/Tab/Tab.tsx | 11 + .../04-composites/Tabs/Tab/Tab.types.ts | 7 + .../04-composites/Tabs/Tab/Tab.utils.ts | 0 .../04-composites/Tabs/Tabs.lazy.tsx | 15 + .../04-composites/Tabs/Tabs.stories.tsx | 35 + .../04-composites/Tabs/Tabs.test.tsx | 10 + .../components/04-composites/Tabs/Tabs.tsx | 39 + .../04-composites/Tabs/Tabs.types.ts | 9 + .../04-composites/Tabs/Tabs.utils.ts | 0 .../ApiKeyHelp/ApiKeyHelp.lazy.tsx | 15 + .../ApiKeyHelp/ApiKeyHelp.stories.tsx | 29 + .../05-materials/ApiKeyHelp/ApiKeyHelp.tsx | 25 + .../ApiKeyHelp/ApiKeyHelp.types.ts | 5 + .../ApiKeyHelp/ApiKeyHelp.utils.ts | 0 .../ApiKeyUsage/ApiKeyUsage.lazy.tsx | 15 + .../ApiKeyUsage/ApiKeyUsage.stories.tsx | 29 + .../05-materials/ApiKeyUsage/ApiKeyUsage.tsx | 110 +++ .../ApiKeyUsage/ApiKeyUsage.types.ts | 5 + .../ApiKeyUsage/ApiKeyUsage.utils.ts | 0 .../ApiKeysPage/ApiKeysPage.lazy.tsx | 15 + .../ApiKeysPage/ApiKeysPage.stories.tsx | 41 + .../05-materials/ApiKeysPage/ApiKeysPage.tsx | 131 ++++ .../ApiKeysPage/ApiKeysPage.types.ts | 19 + .../ApiKeysPage/ApiKeysPage.utils.ts | 33 + .../05-materials/BasePage/BasePage.lazy.tsx | 15 + .../BasePage/BasePage.stories.tsx | 30 + .../05-materials/BasePage/BasePage.tsx | 33 + .../05-materials/BasePage/BasePage.types.ts | 7 + .../05-materials/BasePage/BasePage.utils.ts | 0 .../CreateUserModal/CreateUserModal.lazy.tsx | 15 + .../CreateUserModal.stories.tsx | 27 + .../CreateUserModal/CreateUserModal.test.tsx | 10 + .../CreateUserModal/CreateUserModal.tsx | 15 + .../CreateUserModal/CreateUserModal.types.ts | 5 + .../CreateUserModal/CreateUserModal.utils.ts | 0 .../DomainSelectorCard.lazy.tsx | 15 + .../DomainSelectorCard.stories.tsx | 27 + .../DomainSelectorCard.test.tsx | 10 + .../DomainSelectorCard/DomainSelectorCard.tsx | 11 + .../DomainSelectorCard.types.ts | 5 + .../DomainSelectorCard.utils.ts | 0 .../MembershipSelectorCard.lazy.tsx | 15 + .../MembershipSelectorCard.stories.tsx | 27 + .../MembershipSelectorCard.test.tsx | 16 + .../MembershipSelectorCard.tsx | 58 ++ .../MembershipSelectorCard.types.ts | 8 + .../MembershipSelectorCard.utils.ts | 0 .../05-materials/Menu/Menu.lazy.tsx | 15 + .../05-materials/Menu/Menu.stories.tsx | 28 + .../05-materials/Menu/Menu.test.tsx | 11 + .../src/components/05-materials/Menu/Menu.tsx | 25 + .../05-materials/Menu/Menu.types.ts | 3 + .../05-materials/Menu/Menu.utils.ts | 6 + .../Menu/MenuItem/MenuItem.lazy.tsx | 15 + .../Menu/MenuItem/MenuItem.stories.tsx | 27 + .../Menu/MenuItem/MenuItem.test.tsx | 12 + .../05-materials/Menu/MenuItem/MenuItem.tsx | 27 + .../Menu/MenuItem/MenuItem.types.ts | 7 + .../Menu/MenuItem/MenuItem.utils.ts | 0 .../MobileMenu/MobileMenu.lazy.tsx | 15 + .../MobileMenu/MobileMenu.stories.tsx | 35 + .../MobileMenu/MobileMenu.test.tsx | 11 + .../05-materials/MobileMenu/MobileMenu.tsx | 56 ++ .../MobileMenu/MobileMenu.types.ts | 3 + .../MobileMenu/MobileMenu.utils.ts | 6 + .../NotFoundComponent.lazy.tsx | 15 + .../NotFoundComponent.stories.tsx | 27 + .../NotFoundComponent.test.tsx | 10 + .../NotFoundComponent/NotFoundComponent.tsx | 14 + .../NotFoundComponent.types.ts | 1 + .../NotFoundComponent.utils.ts | 0 .../OverlayCard/OverlayCard.lazy.tsx | 15 + .../OverlayCard/OverlayCard.stories.tsx | 27 + .../OverlayCard/OverlayCard.test.tsx | 10 + .../05-materials/OverlayCard/OverlayCard.tsx | 46 ++ .../OverlayCard/OverlayCard.types.ts | 10 + .../OverlayCard/OverlayCard.utils.ts | 0 .../PrivilegesSelectorCard.lazy.tsx | 15 + .../PrivilegesSelectorCard.stories.tsx | 33 + .../PrivilegesSelectorCard.test.tsx | 20 + .../PrivilegesSelectorCard.tsx | 79 ++ .../PrivilegesSelectorCard.types.ts | 10 + .../PrivilegesSelectorCard.utils.ts | 0 .../RootComponent/RootComponent.lazy.tsx | 15 + .../RootComponent/RootComponent.stories.tsx | 27 + .../RootComponent/RootComponent.test.tsx | 10 + .../RootComponent/RootComponent.tsx | 37 + .../RootComponent/RootComponent.types.ts | 5 + .../RootComponent/RootComponent.utils.ts | 0 .../TablePage/TablePage.context.ts | 13 + .../05-materials/TablePage/TablePage.lazy.tsx | 15 + .../TablePage/TablePage.stories.tsx | 87 +++ .../05-materials/TablePage/TablePage.test.tsx | 21 + .../05-materials/TablePage/TablePage.tsx | 527 +++++++++++++ .../05-materials/TablePage/TablePage.types.ts | 72 ++ .../05-materials/TablePage/TablePage.utils.ts | 20 + .../CreateWebHookForm.lazy.tsx | 15 + .../CreateWebHookForm.stories.tsx | 27 + .../CreateWebHookForm/CreateWebHookForm.tsx | 364 +++++++++ .../CreateWebHookForm.types.ts | 5 + .../CreateWebHookForm.utils.ts | 0 .../WebHooksComponent.lazy.tsx | 15 + .../WebHooksComponent.stories.tsx | 38 + .../WebHooksComponent/WebHooksComponent.tsx | 15 + .../WebHooksComponent.types.ts | 5 + .../WebHooksComponent.utils.ts | 0 .../WebHooksPage/WebHooksPage.lazy.tsx | 15 + .../WebHooksPage/WebHooksPage.stories.tsx | 33 + .../WebHooksPage/WebHooksPage.test.tsx | 10 + .../WebHooksPage/WebHooksPage.tsx | 29 + .../WebHooksPage/WebHooksPage.types.ts | 3 + .../WebHooksPage/WebHooksPage.utils.ts | 30 + .../AdminLayout/AdminLayout.lazy.tsx | 15 + .../AdminLayout/AdminLayout.stories.tsx | 29 + .../06-layouts/AdminLayout/AdminLayout.tsx | 34 + .../AdminLayout/AdminLayout.types.ts | 5 + .../06-layouts/AdminLayout/AdminLayout.ui.tsx | 26 + .../AdminLayout/AdminLayout.utils.ts | 0 .../06-layouts/MainLayout/MainLayout.lazy.tsx | 15 + .../MainLayout/MainLayout.stories.tsx | 29 + .../06-layouts/MainLayout/MainLayout.tsx | 17 + .../06-layouts/MainLayout/MainLayout.types.ts | 5 + .../06-layouts/MainLayout/MainLayout.utils.ts | 0 .../06-layouts/UserLayout/UserLayout.lazy.tsx | 15 + .../UserLayout/UserLayout.stories.tsx | 27 + .../06-layouts/UserLayout/UserLayout.tsx | 32 + .../06-layouts/UserLayout/UserLayout.types.ts | 5 + .../06-layouts/UserLayout/UserLayout.ui.tsx | 30 + .../06-layouts/UserLayout/UserLayout.utils.ts | 0 .../AdminAccessLogs/AdminAccessLogs.lazy.tsx | 15 + .../AdminAccessLogs.stories.tsx | 29 + .../admin/AdminAccessLogs/AdminAccessLogs.tsx | 26 + .../AdminAccessLogs/AdminAccessLogs.types.ts | 5 + .../AdminAccessLogs/AdminAccessLogs.utils.ts | 22 + .../AdminAccessLogsItem.lazy.tsx | 15 + .../AdminAccessLogsItem.stories.tsx | 35 + .../AdminAccessLogsItem.tsx | 29 + .../AdminAccessLogsItem.types.ts | 5 + .../AdminAccessLogsItem.utils.ts | 0 .../admin/AdminApiKeys/AdminApiKeys.lazy.tsx | 15 + .../AdminApiKeys/AdminApiKeys.stories.tsx | 27 + .../admin/AdminApiKeys/AdminApiKeys.test.tsx | 10 + .../admin/AdminApiKeys/AdminApiKeys.tsx | 59 ++ .../admin/AdminApiKeys/AdminApiKeys.types.ts | 5 + .../admin/AdminApiKeys/AdminApiKeys.utils.ts | 5 + .../AdminDashboard/AdminDashboard.lazy.tsx | 15 + .../AdminDashboard/AdminDashboard.stories.tsx | 29 + .../admin/AdminDashboard/AdminDashboard.tsx | 87 +++ .../AdminDashboard/AdminDashboard.types.ts | 5 + .../AdminDashboard/AdminDashboard.utils.ts | 0 .../AdminDatabaseBackup.lazy.tsx | 15 + .../AdminDatabaseBackup.stories.tsx | 29 + .../AdminDatabaseBackup.tsx | 14 + .../AdminDatabaseBackup.types.ts | 5 + .../AdminDatabaseBackup.utils.ts | 0 .../AdminEmailTemplates.lazy.tsx | 15 + .../AdminEmailTemplates.stories.tsx | 29 + .../AdminEmailTemplates.tsx | 14 + .../AdminEmailTemplates.types.ts | 5 + .../AdminEmailTemplates.utils.ts | 0 .../admin/AdminEvents/AdminEvents.lazy.tsx | 15 + .../admin/AdminEvents/AdminEvents.stories.tsx | 29 + .../admin/AdminEvents/AdminEvents.tsx | 24 + .../admin/AdminEvents/AdminEvents.types.ts | 5 + .../admin/AdminEvents/AdminEvents.utils.ts | 12 + .../AdminEventsItem/AdminEventsItem.lazy.tsx | 15 + .../AdminEventsItem.stories.tsx | 34 + .../AdminEventsItem/AdminEventsItem.tsx | 15 + .../AdminEventsItem/AdminEventsItem.types.ts | 5 + .../AdminEventsItem/AdminEventsItem.utils.ts | 0 .../AdminIPNRecords/AdminIPNRecords.lazy.tsx | 15 + .../AdminIPNRecords.stories.tsx | 29 + .../admin/AdminIPNRecords/AdminIPNRecords.tsx | 25 + .../AdminIPNRecords/AdminIPNRecords.types.ts | 5 + .../AdminIPNRecords/AdminIPNRecords.utils.ts | 34 + .../AdminIPNRecordsItem.lazy.tsx | 15 + .../AdminIPNRecordsItem.stories.tsx | 39 + .../AdminIPNRecordsItem.tsx | 15 + .../AdminIPNRecordsItem.types.ts | 5 + .../AdminIPNRecordsItem.utils.ts | 0 .../admin/AdminLogs/AdminLogs.lazy.tsx | 15 + .../admin/AdminLogs/AdminLogs.stories.tsx | 29 + .../07-pages/admin/AdminLogs/AdminLogs.tsx | 14 + .../admin/AdminLogs/AdminLogs.types.ts | 5 + .../admin/AdminLogs/AdminLogs.utils.ts | 0 .../AdminMemberCards.lazy.tsx | 15 + .../AdminMemberCards.stories.tsx | 29 + .../AdminMemberCards/AdminMemberCards.tsx | 51 ++ .../AdminMemberCards.types.ts | 5 + .../AdminMemberCards.utils.ts | 0 .../AdminMemberships.lazy.tsx | 15 + .../AdminMemberships.stories.tsx | 29 + .../AdminMemberships/AdminMemberships.tsx | 29 + .../AdminMemberships.types.ts | 8 + .../AdminMemberships.utils.ts | 29 + .../AdminMembershipsItem.lazy.tsx | 15 + .../AdminMembershipsItem.stories.tsx | 27 + .../AdminMembershipsItem.tsx | 52 ++ .../AdminMembershipsItem.types.ts | 8 + .../AdminMembershipsItem.utils.ts | 0 .../AdminMembershipsEdit.lazy.tsx | 15 + .../AdminMembershipsEdit.stories.tsx | 27 + .../AdminMembershipsEdit.test.tsx | 10 + .../AdminMembershipsEdit.tsx | 466 ++++++++++++ .../AdminMembershipsEdit.types.ts | 5 + .../AdminMembershipsEdit.utils.ts | 0 .../AdminNewsletter/AdminNewsletter.lazy.tsx | 15 + .../AdminNewsletter.stories.tsx | 29 + .../admin/AdminNewsletter/AdminNewsletter.tsx | 14 + .../AdminNewsletter/AdminNewsletter.types.ts | 5 + .../AdminNewsletter/AdminNewsletter.utils.ts | 0 .../admin/AdminOAuth/AdminOAuth.lazy.tsx | 15 + .../admin/AdminOAuth/AdminOAuth.stories.tsx | 29 + .../07-pages/admin/AdminOAuth/AdminOAuth.tsx | 14 + .../admin/AdminOAuth/AdminOAuth.types.ts | 5 + .../admin/AdminOAuth/AdminOAuth.utils.ts | 0 .../AdminPaymentGateways.lazy.tsx | 15 + .../AdminPaymentGateways.stories.tsx | 29 + .../AdminPaymentGateways.tsx | 14 + .../AdminPaymentGateways.types.ts | 5 + .../AdminPaymentGateways.utils.ts | 0 .../AdminPayPalPaymentItem.lazy.tsx | 15 + .../AdminPayPalPaymentItem.stories.tsx | 27 + .../AdminPayPalPaymentItem.tsx | 19 + .../AdminPayPalPaymentItem.types.ts | 8 + .../AdminPayPalPaymentItem.utils.ts | 0 .../AdminPayments/AdminPayments.lazy.tsx | 15 + .../AdminPayments/AdminPayments.stories.tsx | 29 + .../admin/AdminPayments/AdminPayments.tsx | 25 + .../AdminPayments/AdminPayments.types.ts | 5 + .../AdminPayments/AdminPayments.utils.ts | 38 + .../AdminPrivileges/AdminPrivileges.lazy.tsx | 15 + .../AdminPrivileges.stories.tsx | 29 + .../admin/AdminPrivileges/AdminPrivileges.tsx | 25 + .../AdminPrivileges/AdminPrivileges.types.ts | 5 + .../AdminPrivileges/AdminPrivileges.utils.ts | 22 + .../AdminPrivilegesItem.lazy.tsx | 15 + .../AdminPrivilegesItem.stories.tsx | 27 + .../AdminPrivilegesItem.tsx | 365 +++++++++ .../AdminPrivilegesItem.types.ts | 8 + .../AdminPrivilegesItem.utils.ts | 0 .../admin/AdminReports/AdminReports.lazy.tsx | 15 + .../AdminReports/AdminReports.stories.tsx | 29 + .../admin/AdminReports/AdminReports.tsx | 14 + .../admin/AdminReports/AdminReports.types.ts | 5 + .../admin/AdminReports/AdminReports.utils.ts | 0 .../AdminSiteConfiguration.lazy.tsx | 15 + .../AdminSiteConfiguration.stories.tsx | 29 + .../AdminSiteConfiguration.tsx | 14 + .../AdminSiteConfiguration.types.ts | 5 + .../AdminSiteConfiguration.utils.ts | 0 .../AdminStripeRecords.lazy.tsx | 15 + .../AdminStripeRecords.stories.tsx | 27 + .../AdminStripeRecords/AdminStripeRecords.tsx | 25 + .../AdminStripeRecords.types.ts | 5 + .../AdminStripeRecords.utils.ts | 34 + .../AdminStripeRecordsItem.lazy.tsx | 15 + .../AdminStripeRecordsItem.stories.tsx | 39 + .../AdminStripeRecordsItem.tsx | 15 + .../AdminStripeRecordsItem.types.ts | 5 + .../AdminStripeRecordsItem.utils.ts | 0 .../AdminSystemPreferences.lazy.tsx | 15 + .../AdminSystemPreferences.stories.tsx | 27 + .../AdminSystemPreferences.test.tsx | 10 + .../AdminSystemPreferences.tsx | 30 + .../AdminSystemPreferences.types.ts | 5 + .../AdminSystemPreferences.utils.ts | 30 + .../item/AdminSystemPreferencesItem.lazy.tsx | 15 + .../AdminSystemPreferencesItem.stories.tsx | 32 + .../item/AdminSystemPreferencesItem.tsx | 353 +++++++++ .../item/AdminSystemPreferencesItem.types.ts | 4 + .../item/AdminSystemPreferencesItem.utils.ts | 1 + .../admin/AdminUsers/AdminUsers.lazy.tsx | 15 + .../admin/AdminUsers/AdminUsers.stories.tsx | 27 + .../07-pages/admin/AdminUsers/AdminUsers.tsx | 35 + .../admin/AdminUsers/AdminUsers.types.ts | 5 + .../admin/AdminUsers/AdminUsers.utils.ts | 76 ++ .../AdminUsersEdit/AdminUsersEdit.lazy.tsx | 15 + .../AdminUsersEdit/AdminUsersEdit.stories.tsx | 27 + .../AdminUsersEdit/AdminUsersEdit.test.tsx | 10 + .../admin/AdminUsersEdit/AdminUsersEdit.tsx | 710 ++++++++++++++++++ .../AdminUsersEdit/AdminUsersEdit.types.ts | 5 + .../AdminUsersEdit/AdminUsersEdit.utils.ts | 0 .../AdminUsersNew/AdminUsersNew.lazy.tsx | 15 + .../AdminUsersNew/AdminUsersNew.stories.tsx | 27 + .../AdminUsersNew/AdminUsersNew.test.tsx | 10 + .../admin/AdminUsersNew/AdminUsersNew.tsx | 205 +++++ .../AdminUsersNew/AdminUsersNew.types.ts | 5 + .../AdminUsersNew/AdminUsersNew.utils.ts | 0 .../AdminWebHooks/AdminWebHooks.lazy.tsx | 15 + .../AdminWebHooks/AdminWebHooks.stories.tsx | 27 + .../admin/AdminWebHooks/AdminWebHooks.tsx | 9 + .../AdminWebHooks/AdminWebHooks.types.ts | 5 + .../AdminWebHooks/AdminWebHooks.utils.ts | 0 .../common/LandingPage/LandingPage.lazy.tsx | 15 + .../LandingPage/LandingPage.stories.tsx | 27 + .../common/LandingPage/LandingPage.tsx | 9 + .../common/LandingPage/LandingPage.types.ts | 5 + .../common/LandingPage/LandingPage.utils.ts | 0 .../07-pages/common/Login/Login.lazy.tsx | 15 + .../07-pages/common/Login/Login.stories.tsx | 27 + .../07-pages/common/Login/Login.test.tsx | 10 + .../07-pages/common/Login/Login.tsx | 108 +++ .../07-pages/common/Login/Login.types.ts | 5 + .../07-pages/common/Login/Login.utils.ts | 0 .../UserAccessHistory.lazy.tsx | 15 + .../UserAccessHistory.stories.tsx | 27 + .../UserAccessHistory/UserAccessHistory.tsx | 29 + .../UserAccessHistory.types.ts | 5 + .../UserAccessHistory.utils.ts | 22 + .../UserAccessHistoryItem.lazy.tsx | 15 + .../UserAccessHistoryItem.stories.tsx | 35 + .../UserAccessHistoryItem.tsx | 24 + .../UserAccessHistoryItem.types.ts | 5 + .../UserAccessHistoryItem.utils.ts | 0 .../user/UserApiKeys/UserApiKeys.lazy.tsx | 15 + .../user/UserApiKeys/UserApiKeys.stories.tsx | 41 + .../07-pages/user/UserApiKeys/UserApiKeys.tsx | 51 ++ .../user/UserApiKeys/UserApiKeys.types.ts | 5 + .../user/UserApiKeys/UserApiKeys.utils.ts | 0 .../user/UserDashboard/UserDashboard.lazy.tsx | 15 + .../UserDashboard/UserDashboard.stories.tsx | 27 + .../user/UserDashboard/UserDashboard.tsx | 225 ++++++ .../user/UserDashboard/UserDashboard.types.ts | 33 + .../user/UserDashboard/UserDashboard.utils.ts | 568 ++++++++++++++ .../UserDoorAccess/UserDoorAccess.lazy.tsx | 15 + .../UserDoorAccess/UserDoorAccess.stories.tsx | 27 + .../user/UserDoorAccess/UserDoorAccess.tsx | 208 +++++ .../UserDoorAccess/UserDoorAccess.types.ts | 5 + .../UserDoorAccess/UserDoorAccess.utils.ts | 0 .../UserGetInvolved/UserGetInvolved.lazy.tsx | 15 + .../UserGetInvolved.stories.tsx | 27 + .../user/UserGetInvolved/UserGetInvolved.tsx | 124 +++ .../UserGetInvolved/UserGetInvolved.types.ts | 5 + .../UserGetInvolved/UserGetInvolved.utils.ts | 5 + .../user/UserGranting/UserGranting.lazy.tsx | 15 + .../UserGranting/UserGranting.stories.tsx | 27 + .../user/UserGranting/UserGranting.tsx | 13 + .../user/UserGranting/UserGranting.types.ts | 5 + .../user/UserGranting/UserGranting.utils.ts | 0 .../07-pages/user/UserProfile/APIKeysCard.tsx | 40 + .../user/UserProfile/LinkedAccountsCard.tsx | 64 ++ .../07-pages/user/UserProfile/PinCard.tsx | 136 ++++ .../user/UserProfile/PrivilegesCard.tsx | 53 ++ .../user/UserProfile/RFIDKeysCard.tsx | 33 + .../user/UserProfile/StandingCard.tsx | 48 ++ .../user/UserProfile/UserProfile.lazy.tsx | 15 + .../user/UserProfile/UserProfile.stories.tsx | 27 + .../07-pages/user/UserProfile/UserProfile.tsx | 536 +++++++++++++ .../user/UserProfile/UserProfile.types.ts | 39 + .../user/UserProfile/UserProfile.utils.ts | 0 .../user/UserPurchases/UserPurchases.lazy.tsx | 15 + .../UserPurchases/UserPurchases.stories.tsx | 27 + .../user/UserPurchases/UserPurchases.tsx | 61 ++ .../user/UserPurchases/UserPurchases.types.ts | 5 + .../user/UserPurchases/UserPurchases.utils.ts | 0 .../UserTransactionItems.lazy.tsx | 15 + .../UserTransactionItems.stories.tsx | 27 + .../UserTransactionItems.tsx | 30 + .../UserTransactionItems.types.ts | 8 + .../UserTransactionItems.utils.ts | 0 .../UserTransactions.lazy.tsx | 15 + .../UserTransactions.stories.tsx | 27 + .../UserTransactions/UserTransactions.tsx | 29 + .../UserTransactions.types.ts | 5 + .../UserTransactions.utils.ts | 20 + .../user/UserWebHooks/UserWebHooks.lazy.tsx | 15 + .../UserWebHooks/UserWebHooks.stories.tsx | 27 + .../user/UserWebHooks/UserWebHooks.tsx | 11 + .../user/UserWebHooks/UserWebHooks.types.ts | 5 + .../user/UserWebHooks/UserWebHooks.utils.ts | 0 .../src/components/08-app/App/App.lazy.tsx | 15 + .../08-app/App/App.react-router.tsx | 102 +++ .../src/components/08-app/App/App.stories.tsx | 27 + .../src/components/08-app/App/App.tsx | 36 + .../src/components/08-app/App/App.types.ts | 5 + .../src/components/08-app/App/App.utils.ts | 0 .../AuthenticationProvider.context.ts | 13 + .../AuthenticationProvider.lazy.tsx | 15 + .../AuthenticationProvider.stories.tsx | 25 + .../AuthenticationProvider.tsx | 81 ++ .../AuthenticationProvider.types.ts | 17 + .../AuthenticationProvider.utils.ts | 28 + .../admin-page/AdminTemplateName.lazy.tsx | 15 + .../admin-page/AdminTemplateName.stories.tsx | 27 + .../admin-page/AdminTemplateName.test.tsx | 10 + .../admin-page/AdminTemplateName.tsx | 24 + .../admin-page/AdminTemplateName.types.ts | 5 + .../admin-page/AdminTemplateName.utils.ts | 5 + .../item/AdminTemplateNameItem.lazy.tsx | 15 + .../item/AdminTemplateNameItem.stories.tsx | 27 + .../admin-page/item/AdminTemplateNameItem.tsx | 17 + .../item/AdminTemplateNameItem.types.ts | 3 + .../item/AdminTemplateNameItem.utils.ts | 0 .../default/TemplateName.lazy.tsx | 15 + .../default/TemplateName.stories.tsx | 27 + .../default/TemplateName.test.tsx | 10 + .../99-templates/default/TemplateName.tsx | 11 + .../default/TemplateName.types.ts | 5 + .../default/TemplateName.utils.ts | 0 .../99-templates/page/TemplateName.lazy.tsx | 15 + .../page/TemplateName.stories.tsx | 27 + .../99-templates/page/TemplateName.test.tsx | 10 + .../99-templates/page/TemplateName.tsx | 11 + .../99-templates/page/TemplateName.types.ts | 5 + .../99-templates/page/TemplateName.utils.ts | 0 .../user-page/TemplateName.lazy.tsx | 15 + .../user-page/TemplateName.stories.tsx | 27 + .../user-page/TemplateName.test.tsx | 10 + .../99-templates/user-page/TemplateName.tsx | 11 + .../user-page/TemplateName.types.ts | 5 + .../user-page/TemplateName.utils.ts | 0 .../UserTemplateNameItem.lazy.tsx | 15 + .../UserTemplateNameItem.stories.tsx | 27 + .../UserTemplateNameItem.tsx | 11 + .../UserTemplateNameItem.types.ts | 5 + .../UserTemplateNameItem.utils.ts | 0 packages/frontend-react/src/lib/backend.ts | 16 + .../src/lib/db/PrincipalUser.ts | 9 + packages/frontend-react/src/lib/db/User.ts | 105 +++ .../src/lib/exceptions/HTTPException.ts | 4 + packages/frontend-react/src/lib/fetcher.ts | 159 ++++ .../ApiKeyService2/useDeleteApiKey.tsx | 2 + .../useGenerateSystemApiKey.tsx | 2 + .../ApiKeyService2/useGenerateUserApiKey.tsx | 2 + .../providers/ApiKeyService2/useGetApiKey.tsx | 2 + .../ApiKeyService2/useGetSystemApiKeys.tsx | 18 + .../ApiKeyService2/useGetUserAPIKeys.tsx | 2 + .../ApiKeyService2/usePutApiKeyPrivileges.tsx | 2 + .../ApiKeyService2/useUpdateApiKey.tsx | 2 + .../AuthService2/useCountAccessLog.tsx | 2 + .../AuthService2/useCountClients.tsx | 2 + .../AuthService2/useCountUserAccessLog.tsx | 27 + .../providers/AuthService2/useCurrentUser.tsx | 86 +++ .../AuthService2/useListAccessLog.tsx | 2 + .../providers/AuthService2/useListClients.tsx | 2 + .../AuthService2/useListUserAccessLog.tsx | 41 + .../hooks/providers/AuthService2/useLogin.tsx | 2 + .../providers/AuthService2/useLogout.tsx | 2 + .../AuthService2/useRegisterClient.tsx | 2 + .../CurrentUser/useGetCurrentUser.tsx | 2 + .../EmailService2/useCountTemplates.tsx | 2 + .../EmailService2/useDeleteTemplate.tsx | 2 + .../EmailService2/useGetTemplate.tsx | 2 + .../EmailService2/useListTemplates.tsx | 2 + .../EmailService2/usePutTemplate.tsx | 2 + .../providers/EmailService2/useUpdateBody.tsx | 2 + .../providers/EmailService2/useUpdateCode.tsx | 2 + .../providers/EmailService2/useUpdateHelp.tsx | 2 + .../providers/EmailService2/useUpdateHtml.tsx | 2 + .../providers/EmailService2/useUpdateName.tsx | 2 + .../EmailService2/useUpdateSubject.tsx | 2 + .../EventService2/useCountEvents.tsx | 2 + .../EventService2/useCreateEvent.tsx | 2 + .../EventService2/useDeleteEvent.tsx | 2 + .../EventService2/useEnableEvent.tsx | 2 + .../EventService2/useGetAccessibleEvents.tsx | 2 + .../EventService2/useGetDomainDefinitions.tsx | 2 + .../providers/EventService2/useGetEvent.tsx | 2 + .../EventService2/useGetEventTypes.tsx | 2 + .../providers/EventService2/useListEvents.tsx | 2 + .../EventService2/usePutEventPrivileges.tsx | 2 + .../EventService2/useUpdateEvent.tsx | 2 + .../providers/IpnService2/useCountRecords.tsx | 2 + .../hooks/providers/IpnService2/useGet.tsx | 2 + .../hooks/providers/IpnService2/useGetAll.tsx | 2 + .../providers/IpnService2/useListRecords.tsx | 2 + .../useGetGenuineCardDetails.tsx | 2 + .../MemberCardService2/useIssueCard.tsx | 2 + .../useListGenuineCards.tsx | 2 + .../useListUserGenuineCards.tsx | 2 + .../useRegisterGenuineCard.tsx | 2 + .../useUpdateGenuineCardActive.tsx | 2 + .../useValidateGenuineCard.tsx | 2 + .../providers/MembershipService2/useGet.tsx | 2 + .../MembershipService2/useGetAll.tsx | 2 + .../MembershipService2/useUpdate.tsx | 2 + .../MembershipService2/useUpdateActive.tsx | 2 + .../MembershipService2/useUpdatePrivate.tsx | 2 + .../MembershipService2/useUpdateRecurring.tsx | 2 + .../MembershipService2/useUpdateTrial.tsx | 2 + .../MetricService2/useGetCreatedDates.tsx | 39 + .../useGetExceptionPayments.tsx | 2 + .../MetricService2/useGetMembers.tsx | 48 ++ .../MetricService2/useGetNewKeyHolders.tsx | 2 + .../MetricService2/useGetNewMembers.tsx | 36 + .../MetricService2/useGetPendingAccounts.tsx | 2 + .../MetricService2/useGetRevenue.tsx | 50 ++ .../MetricService2/useGetTotalKeyHolders.tsx | 38 + .../MetricService2/useGetTotalMembers.tsx | 38 + .../PaymentService2/useCountPayments.tsx | 2 + .../PaymentService2/useCountUserPayments.tsx | 2 + .../PaymentService2/useGetPayment.tsx | 2 + .../PaymentService2/useListPayments.tsx | 2 + .../PaymentService2/useListUserPayments.tsx | 2 + .../useReplayPaymentProcessing.tsx | 2 + .../providers/PinService2/useGeneratePin.tsx | 2 + .../providers/PinService2/useGetUserPin.tsx | 2 + .../providers/PinService2/useUpdatePin.tsx | 2 + .../PinService2/useUpdateUserPin.tsx | 2 + .../useDeleteSystemPreference.tsx | 2 + .../useGetAllSystemPreferences.tsx | 2 + .../useGetSystemPreference.tsx | 18 + .../useListSystemPreferences.tsx | 2 + .../usePutSystemPreference.tsx | 2 + .../usePutSystemPreferencePrivileges.tsx | 2 + .../useSystemPreference.tsx | 2 + .../useUpdateSystemPreference.tsx | 2 + .../useUpdateSystemPreferenceEnabled.tsx | 2 + .../PrivilegeService2/useCreatePrivilege.tsx | 2 + .../PrivilegeService2/useDeletePrivilege.tsx | 2 + .../PrivilegeService2/useGetAllPrivileges.tsx | 18 + .../useGetAllSystemPermissions.tsx | 2 + .../PrivilegeService2/useGetPrivilege.tsx | 2 + .../useGetUserPrivileges.tsx | 2 + .../PrivilegeService2/usePutKeyPrivileges.tsx | 2 + .../usePutMembershipPrivileges.tsx | 2 + .../usePutUserPrivileges.tsx | 2 + .../useUpdatePrivilegeDescription.tsx | 2 + .../useUpdatePrivilegeEnabled.tsx | 2 + .../useUpdatePrivilegeIcon.tsx | 2 + .../useUpdatePrivilegeName.tsx | 2 + .../StripeEventService2/useCountRecords.tsx | 2 + .../providers/StripeEventService2/useGet.tsx | 2 + .../StripeEventService2/useGetAll.tsx | 2 + .../StripeEventService2/useListRecords.tsx | 2 + .../providers/UserService2/useCountUsers.tsx | 2 + .../providers/UserService2/useCreate.tsx | 2 + .../useGetGrantUserPrivileges.tsx | 2 + .../providers/UserService2/useGetStanding.tsx | 9 + .../providers/UserService2/useGetStatuses.tsx | 2 + .../providers/UserService2/useGetUser.tsx | 18 + .../providers/UserService2/useGetUsers.tsx | 2 + .../UserService2/useGrantPrivilege.tsx | 2 + .../providers/UserService2/useListUsers.tsx | 2 + .../providers/UserService2/useRegister.tsx | 2 + .../UserService2/useRequestPasswordReset.tsx | 2 + .../UserService2/useRequestSlackInvite.tsx | 2 + .../UserService2/useResetPassword.tsx | 2 + .../UserService2/useRevokePrivilege.tsx | 2 + .../providers/UserService2/useUpdateCash.tsx | 2 + .../providers/UserService2/useUpdateEmail.tsx | 2 + .../UserService2/useUpdateExpiry.tsx | 2 + .../UserService2/useUpdateMembership.tsx | 2 + .../providers/UserService2/useUpdateName.tsx | 2 + .../UserService2/useUpdateNewsletter.tsx | 2 + .../UserService2/useUpdatePassword.tsx | 2 + .../UserService2/useUpdatePaymentEmail.tsx | 2 + .../UserService2/useUpdateStatus.tsx | 2 + .../UserService2/useUpdateStripeEmail.tsx | 2 + .../UserService2/useUpdateUsername.tsx | 2 + .../WebHookService2/useCountHooks.tsx | 2 + .../WebHookService2/useCountUserHooks.tsx | 2 + .../WebHookService2/useCreateHook.tsx | 2 + .../WebHookService2/useDeleteHook.tsx | 2 + .../WebHookService2/useEnableHook.tsx | 2 + .../providers/WebHookService2/useGetHook.tsx | 2 + .../WebHookService2/useListHooks.tsx | 2 + .../WebHookService2/useListUserHooks.tsx | 2 + .../WebHookService2/usePutHookPrivileges.tsx | 2 + .../WebHookService2/useUpdateHook.tsx | 2 + .../frontend-react/src/lib/hooks/useAuth.tsx | 14 + .../src/lib/hooks/useClickOutside.tsx | 26 + .../src/lib/hooks/useFormDirty.tsx | 51 ++ .../src/lib/hooks/useFormErrors.tsx | 51 ++ .../src/lib/hooks/useInterval.tsx | 24 + .../lib/hooks/usePrivilegeCodesReducer.tsx | 72 ++ .../src/lib/hooks/useSelectorReducer.tsx | 72 ++ .../frontend-react/src/lib/mocking/data.ts | 131 ++++ .../src/lib/mocking/functions.ts | 10 + .../src/lib/mocking/handlers.ts | 79 ++ packages/frontend-react/src/lib/nomos.ts | 62 ++ .../src/lib/providers/ApiKeyService2.ts | 137 ++++ .../src/lib/providers/AuthService2.ts | 535 +++++++++++++ .../src/lib/providers/CurrentUser2.ts | 22 + .../src/lib/providers/EmailService2.ts | 268 +++++++ .../src/lib/providers/EventService2.ts | 239 ++++++ .../src/lib/providers/IpnService2.ts | 86 +++ .../src/lib/providers/MemberCardService2.ts | 195 +++++ .../src/lib/providers/MembershipService2.ts | 219 ++++++ .../src/lib/providers/MetricService2.ts | 65 ++ .../src/lib/providers/PaymentService2.ts | 134 ++++ .../src/lib/providers/PinService2.ts | 109 +++ .../src/lib/providers/PreferenceService2.ts | 198 +++++ .../src/lib/providers/PrivilegeService2.ts | 208 +++++ .../src/lib/providers/StripeEventService2.ts | 86 +++ .../lib/providers/SystemPreferenceService2.ts | 201 +++++ .../src/lib/providers/UserService2.ts | 456 +++++++++++ .../src/lib/providers/WebHookService2.ts | 274 +++++++ packages/frontend-react/src/lib/ui/common.tsx | 9 + .../src/lib/ui/fontawesome/common.ts | 18 + .../src/lib/ui/fontawesome/index.ts | 2 + packages/frontend-react/src/lib/ui/index.ts | 1 + packages/frontend-react/src/lib/util.ts | 95 +++ .../src/lib/validators/common.ts | 114 +++ .../src/lib/validators/custom.ts | 0 .../src/lib/validators/guards.ts | 307 ++++++++ .../src/lib/validators/query-filters.ts | 29 + .../src/lib/validators/records.ts | 363 +++++++++ packages/frontend-react/src/main.css | 608 +++++++++++++++ packages/frontend-react/src/main.tsx | 21 + packages/frontend-react/src/router.tsx | 19 + packages/frontend-react/src/routes/__root.tsx | 14 + packages/frontend-react/src/routes/_admin.tsx | 18 + .../src/routes/_admin/admin.accesslogs.tsx | 7 + .../src/routes/_admin/admin.apikeys.tsx | 7 + .../src/routes/_admin/admin.dashboard.tsx | 7 + .../routes/_admin/admin.databasebackup.tsx | 7 + .../src/routes/_admin/admin.email.tsx | 7 + .../routes/_admin/admin.emailtemplates.tsx | 7 + .../src/routes/_admin/admin.events.tsx | 7 + .../src/routes/_admin/admin.index.tsx | 17 + .../src/routes/_admin/admin.ipnrecords.tsx | 7 + .../src/routes/_admin/admin.logs.tsx | 7 + .../src/routes/_admin/admin.membercards.tsx | 7 + .../admin.memberships.$membershipId.tsx | 7 + .../src/routes/_admin/admin.memberships.tsx | 7 + .../src/routes/_admin/admin.newsletter.tsx | 7 + .../src/routes/_admin/admin.oauth.tsx | 7 + .../routes/_admin/admin.paymentgateways.tsx | 7 + .../src/routes/_admin/admin.payments.tsx | 7 + .../src/routes/_admin/admin.privileges.tsx | 7 + .../src/routes/_admin/admin.reports.tsx | 7 + .../routes/_admin/admin.siteconfiguration.tsx | 7 + .../src/routes/_admin/admin.striperecords.tsx | 7 + .../routes/_admin/admin.systemkeys.help.tsx | 7 + .../src/routes/_admin/admin.systemkeys.tsx | 7 + .../routes/_admin/admin.systemkeys.usage.tsx | 7 + .../routes/_admin/admin.systempreferences.tsx | 7 + .../src/routes/_admin/admin.transactions.tsx | 7 + .../src/routes/_admin/admin.users.$userId.tsx | 7 + .../src/routes/_admin/admin.users.new.tsx | 7 + .../src/routes/_admin/admin.users.tsx | 7 + .../src/routes/_admin/admin.webhooks.tsx | 7 + .../src/routes/_admin/backup.tsx | 7 + .../src/routes/_admin/config.tsx | 7 + .../src/routes/_admin/events.tsx | 7 + .../frontend-react/src/routes/_admin/logs.tsx | 7 + .../src/routes/_admin/oauth.tsx | 7 + .../frontend-react/src/routes/_public.tsx | 7 + .../src/routes/_public/login.tsx | 14 + .../routes/_public/recovery.reset.$token.tsx | 15 + .../src/routes/_public/recovery.tsx | 15 + .../src/routes/_public/register.tsx | 15 + packages/frontend-react/src/routes/_user.tsx | 18 + .../src/routes/_user/apikeys.$keyId.tsx | 15 + .../src/routes/_user/apikeys.help.tsx | 7 + .../src/routes/_user/apikeys.tsx | 7 + .../src/routes/_user/apikeys.usage.tsx | 7 + .../src/routes/_user/dashboard.tsx | 7 + .../src/routes/_user/dooraccess.tsx | 7 + .../src/routes/_user/getinvolved.tsx | 7 + .../src/routes/_user/grants.tsx | 7 + .../frontend-react/src/routes/_user/index.tsx | 23 + .../src/routes/_user/logout.tsx | 14 + .../src/routes/_user/membership.tsx | 15 + .../src/routes/_user/profile.tsx | 7 + .../src/routes/_user/purchase.tsx | 7 + .../src/routes/_user/settings.tsx | 15 + .../src/routes/_user/transactions.tsx | 7 + .../src/routes/_user/user.accesslogs.tsx | 7 + .../src/routes/_user/vhsopen.tsx | 15 + .../src/routes/_user/webhooks.tsx | 7 + packages/frontend-react/src/types/api.ts | 14 + packages/frontend-react/src/types/common.ts | 110 +++ packages/frontend-react/src/types/custom.ts | 39 + packages/frontend-react/src/types/db.ts | 6 + .../src/types/fontawesome/common.ts | 37 + .../src/types/fontawesome/index.ts | 2 + .../src/types/providers/IApiKeyService2.ts | 98 +++ .../src/types/providers/IAuthService2.ts | 387 ++++++++++ .../src/types/providers/IEmailService2.ts | 200 +++++ .../src/types/providers/IEventService2.ts | 171 +++++ .../src/types/providers/IIpnService2.ts | 55 ++ .../src/types/providers/IKeyService2.ts | 99 +++ .../types/providers/IMemberCardService2.ts | 139 ++++ .../types/providers/IMembershipService2.ts | 169 +++++ .../src/types/providers/IMetricService2.ts | 115 +++ .../src/types/providers/IPaymentService2.ts | 98 +++ .../src/types/providers/IPinService2.ts | 80 ++ .../types/providers/IPreferenceService2.ts | 147 ++++ .../src/types/providers/IPrivilegeService2.ts | 161 ++++ .../types/providers/IStripeEventService2.ts | 61 ++ .../providers/ISystemPreferenceService2.ts | 147 ++++ .../src/types/providers/IUserService2.ts | 327 ++++++++ .../src/types/providers/IWebHookService2.ts | 195 +++++ .../frontend-react/src/types/query-filters.ts | 39 + packages/frontend-react/src/types/records.ts | 158 ++++ packages/frontend-react/src/types/ui.ts | 18 + packages/frontend-react/src/types/utils.ts | 7 + packages/frontend-react/src/vite-env.d.ts | 2 + packages/frontend-react/stylelint.config.mjs | 16 + packages/frontend-react/tailwind.config.js | 151 ++++ packages/frontend-react/tsconfig.eslint.json | 10 + packages/frontend-react/tsconfig.json | 35 + packages/frontend-react/tsconfig.node.json | 12 + packages/frontend-react/vite.config.ts | 55 ++ 1007 files changed, 29286 insertions(+) create mode 100644 packages/frontend-react/.editorconfig create mode 100644 packages/frontend-react/.gitignore create mode 100644 packages/frontend-react/.prettierignore create mode 100644 packages/frontend-react/.storybook/main.ts create mode 100644 packages/frontend-react/.storybook/preview.tsx create mode 100644 packages/frontend-react/README.md create mode 100644 packages/frontend-react/docs/Development.md create mode 100644 packages/frontend-react/eslint.config.mjs create mode 100644 packages/frontend-react/generate-react-cli.json create mode 100644 packages/frontend-react/index.html create mode 100644 packages/frontend-react/package.json create mode 100644 packages/frontend-react/postcss.config.js create mode 100644 packages/frontend-react/prettier.config.mjs create mode 100644 packages/frontend-react/public/badges/cert_cnc_mill_lathe.svg create mode 100644 packages/frontend-react/public/badges/cert_laser.svg create mode 100644 packages/frontend-react/public/badges/door_access.svg create mode 100644 packages/frontend-react/public/badges/key_holder.svg create mode 100644 packages/frontend-react/public/badges/key_holder_inactive.svg create mode 100644 packages/frontend-react/public/badges/laser.png create mode 100644 packages/frontend-react/public/badges/newsletter.svg create mode 100644 packages/frontend-react/public/favicon.ico create mode 100644 packages/frontend-react/public/images/logo.png create mode 100644 packages/frontend-react/public/images/provider/github.png create mode 100644 packages/frontend-react/public/images/provider/google.png create mode 100644 packages/frontend-react/public/images/provider/pin.png create mode 100644 packages/frontend-react/public/images/provider/rfid.png create mode 100644 packages/frontend-react/public/images/provider/slack.png create mode 100644 packages/frontend-react/public/images/slack.png create mode 100644 packages/frontend-react/public/images/under-construction90s-90s.gif create mode 100644 packages/frontend-react/public/images/vhs-member-card-2015-2-full.png create mode 100644 packages/frontend-react/public/images/vhs-member-card-2015-2-thumb.png create mode 100644 packages/frontend-react/public/images/vhs-member-card-2015-full.png create mode 100644 packages/frontend-react/public/images/vhs-member-card-2015-thumb.png create mode 100644 packages/frontend-react/public/mockServiceWorker.js create mode 100644 packages/frontend-react/public/robots.txt create mode 100644 packages/frontend-react/src/components/01-atoms/AccountStatusBadge/AccountStatusBadge.lazy.tsx create mode 100644 packages/frontend-react/src/components/01-atoms/AccountStatusBadge/AccountStatusBadge.module.css create mode 100644 packages/frontend-react/src/components/01-atoms/AccountStatusBadge/AccountStatusBadge.stories.tsx create mode 100644 packages/frontend-react/src/components/01-atoms/AccountStatusBadge/AccountStatusBadge.tsx create mode 100644 packages/frontend-react/src/components/01-atoms/AccountStatusBadge/AccountStatusBadge.types.ts create mode 100644 packages/frontend-react/src/components/01-atoms/AccountStatusBadge/AccountStatusBadge.utils.ts create mode 100644 packages/frontend-react/src/components/01-atoms/AdminUserProfile/AdminUserProfile.lazy.tsx create mode 100644 packages/frontend-react/src/components/01-atoms/AdminUserProfile/AdminUserProfile.stories.tsx create mode 100644 packages/frontend-react/src/components/01-atoms/AdminUserProfile/AdminUserProfile.tsx create mode 100644 packages/frontend-react/src/components/01-atoms/AdminUserProfile/AdminUserProfile.types.ts create mode 100644 packages/frontend-react/src/components/01-atoms/AdminUserProfile/AdminUserProfile.utils.ts create mode 100644 packages/frontend-react/src/components/01-atoms/Button/Button.lazy.tsx create mode 100644 packages/frontend-react/src/components/01-atoms/Button/Button.stories.tsx create mode 100644 packages/frontend-react/src/components/01-atoms/Button/Button.tsx create mode 100644 packages/frontend-react/src/components/01-atoms/Button/Button.types.ts create mode 100644 packages/frontend-react/src/components/01-atoms/Button/Button.utils.ts create mode 100644 packages/frontend-react/src/components/01-atoms/Col/Col.lazy.tsx create mode 100644 packages/frontend-react/src/components/01-atoms/Col/Col.stories.tsx create mode 100644 packages/frontend-react/src/components/01-atoms/Col/Col.tsx create mode 100644 packages/frontend-react/src/components/01-atoms/Col/Col.types.ts create mode 100644 packages/frontend-react/src/components/01-atoms/Col/Col.utils.ts create mode 100644 packages/frontend-react/src/components/01-atoms/Conditional/Conditional.stories.tsx create mode 100644 packages/frontend-react/src/components/01-atoms/Conditional/Conditional.tsx create mode 100644 packages/frontend-react/src/components/01-atoms/Conditional/Conditional.types.ts create mode 100644 packages/frontend-react/src/components/01-atoms/Conditional/Conditional.utils.ts create mode 100644 packages/frontend-react/src/components/01-atoms/Container/Container.lazy.tsx create mode 100644 packages/frontend-react/src/components/01-atoms/Container/Container.stories.tsx create mode 100644 packages/frontend-react/src/components/01-atoms/Container/Container.tsx create mode 100644 packages/frontend-react/src/components/01-atoms/Container/Container.types.ts create mode 100644 packages/frontend-react/src/components/01-atoms/Container/Container.utils.ts create mode 100644 packages/frontend-react/src/components/01-atoms/CreateUserButton/CreateUserButton.lazy.tsx create mode 100644 packages/frontend-react/src/components/01-atoms/CreateUserButton/CreateUserButton.stories.tsx create mode 100644 packages/frontend-react/src/components/01-atoms/CreateUserButton/CreateUserButton.tsx create mode 100644 packages/frontend-react/src/components/01-atoms/CreateUserButton/CreateUserButton.types.ts create mode 100644 packages/frontend-react/src/components/01-atoms/CreateUserButton/CreateUserButton.utils.ts create mode 100644 packages/frontend-react/src/components/01-atoms/FontAwesomeIcon/FontAwesomeIcon.lazy.tsx create mode 100644 packages/frontend-react/src/components/01-atoms/FontAwesomeIcon/FontAwesomeIcon.stories.tsx create mode 100644 packages/frontend-react/src/components/01-atoms/FontAwesomeIcon/FontAwesomeIcon.tsx create mode 100644 packages/frontend-react/src/components/01-atoms/FontAwesomeIcon/FontAwesomeIcon.types.ts create mode 100644 packages/frontend-react/src/components/01-atoms/FontAwesomeIcon/FontAwesomeIcon.utils.ts create mode 100644 packages/frontend-react/src/components/01-atoms/FormControl/FormControl.lazy.tsx create mode 100644 packages/frontend-react/src/components/01-atoms/FormControl/FormControl.module.css create mode 100644 packages/frontend-react/src/components/01-atoms/FormControl/FormControl.stories.tsx create mode 100644 packages/frontend-react/src/components/01-atoms/FormControl/FormControl.tsx create mode 100644 packages/frontend-react/src/components/01-atoms/FormControl/FormControl.types.ts create mode 100644 packages/frontend-react/src/components/01-atoms/FormControl/FormControl.utils.ts create mode 100644 packages/frontend-react/src/components/01-atoms/NavBar/NavBar.lazy.tsx create mode 100644 packages/frontend-react/src/components/01-atoms/NavBar/NavBar.stories.tsx create mode 100644 packages/frontend-react/src/components/01-atoms/NavBar/NavBar.tsx create mode 100644 packages/frontend-react/src/components/01-atoms/NavBar/NavBar.types.ts create mode 100644 packages/frontend-react/src/components/01-atoms/NavBar/NavBar.utils.ts create mode 100644 packages/frontend-react/src/components/01-atoms/Overlay/Overlay.lazy.tsx create mode 100644 packages/frontend-react/src/components/01-atoms/Overlay/Overlay.stories.tsx create mode 100644 packages/frontend-react/src/components/01-atoms/Overlay/Overlay.tsx create mode 100644 packages/frontend-react/src/components/01-atoms/Overlay/Overlay.types.ts create mode 100644 packages/frontend-react/src/components/01-atoms/Overlay/Overlay.utils.ts create mode 100644 packages/frontend-react/src/components/01-atoms/Pill/Pill.lazy.tsx create mode 100644 packages/frontend-react/src/components/01-atoms/Pill/Pill.stories.tsx create mode 100644 packages/frontend-react/src/components/01-atoms/Pill/Pill.tsx create mode 100644 packages/frontend-react/src/components/01-atoms/Pill/Pill.types.ts create mode 100644 packages/frontend-react/src/components/01-atoms/Pill/Pill.utils.ts create mode 100644 packages/frontend-react/src/components/01-atoms/Popover/Popover.lazy.tsx create mode 100644 packages/frontend-react/src/components/01-atoms/Popover/Popover.stories.tsx create mode 100644 packages/frontend-react/src/components/01-atoms/Popover/Popover.tsx create mode 100644 packages/frontend-react/src/components/01-atoms/Popover/Popover.types.ts create mode 100644 packages/frontend-react/src/components/01-atoms/Popover/Popover.utils.ts create mode 100644 packages/frontend-react/src/components/01-atoms/RedirectAdminDashboard/RedirectAdminDashboard.lazy.tsx create mode 100644 packages/frontend-react/src/components/01-atoms/RedirectAdminDashboard/RedirectAdminDashboard.stories.tsx create mode 100644 packages/frontend-react/src/components/01-atoms/RedirectAdminDashboard/RedirectAdminDashboard.tsx create mode 100644 packages/frontend-react/src/components/01-atoms/RedirectAdminDashboard/RedirectAdminDashboard.types.ts create mode 100644 packages/frontend-react/src/components/01-atoms/RedirectAdminDashboard/RedirectAdminDashboard.utils.ts create mode 100644 packages/frontend-react/src/components/01-atoms/RedirectLogin/RedirectLogin.lazy.tsx create mode 100644 packages/frontend-react/src/components/01-atoms/RedirectLogin/RedirectLogin.stories.tsx create mode 100644 packages/frontend-react/src/components/01-atoms/RedirectLogin/RedirectLogin.tsx create mode 100644 packages/frontend-react/src/components/01-atoms/RedirectLogin/RedirectLogin.types.ts create mode 100644 packages/frontend-react/src/components/01-atoms/RedirectLogin/RedirectLogin.utils.ts create mode 100644 packages/frontend-react/src/components/01-atoms/RedirectRoot/RedirectRoot.lazy.tsx create mode 100644 packages/frontend-react/src/components/01-atoms/RedirectRoot/RedirectRoot.stories.tsx create mode 100644 packages/frontend-react/src/components/01-atoms/RedirectRoot/RedirectRoot.tsx create mode 100644 packages/frontend-react/src/components/01-atoms/RedirectRoot/RedirectRoot.types.ts create mode 100644 packages/frontend-react/src/components/01-atoms/RedirectRoot/RedirectRoot.utils.ts create mode 100644 packages/frontend-react/src/components/01-atoms/RedirectUserDashboard/RedirectUserDashboard.lazy.tsx create mode 100644 packages/frontend-react/src/components/01-atoms/RedirectUserDashboard/RedirectUserDashboard.stories.tsx create mode 100644 packages/frontend-react/src/components/01-atoms/RedirectUserDashboard/RedirectUserDashboard.tsx create mode 100644 packages/frontend-react/src/components/01-atoms/RedirectUserDashboard/RedirectUserDashboard.types.ts create mode 100644 packages/frontend-react/src/components/01-atoms/RedirectUserDashboard/RedirectUserDashboard.utils.ts create mode 100644 packages/frontend-react/src/components/01-atoms/Row/Row.lazy.tsx create mode 100644 packages/frontend-react/src/components/01-atoms/Row/Row.stories.tsx create mode 100644 packages/frontend-react/src/components/01-atoms/Row/Row.tsx create mode 100644 packages/frontend-react/src/components/01-atoms/Row/Row.types.ts create mode 100644 packages/frontend-react/src/components/01-atoms/Row/Row.utils.ts create mode 100644 packages/frontend-react/src/components/01-atoms/TableActionsCell/TableActionsCell.lazy.tsx create mode 100644 packages/frontend-react/src/components/01-atoms/TableActionsCell/TableActionsCell.stories.tsx create mode 100644 packages/frontend-react/src/components/01-atoms/TableActionsCell/TableActionsCell.tsx create mode 100644 packages/frontend-react/src/components/01-atoms/TableActionsCell/TableActionsCell.types.ts create mode 100644 packages/frontend-react/src/components/01-atoms/TableActionsCell/TableActionsCell.utils.ts create mode 100644 packages/frontend-react/src/components/01-atoms/TablePageRow/TablePageRow.lazy.tsx create mode 100644 packages/frontend-react/src/components/01-atoms/TablePageRow/TablePageRow.stories.tsx create mode 100644 packages/frontend-react/src/components/01-atoms/TablePageRow/TablePageRow.tsx create mode 100644 packages/frontend-react/src/components/01-atoms/TablePageRow/TablePageRow.types.ts create mode 100644 packages/frontend-react/src/components/01-atoms/TablePageRow/TablePageRow.utils.ts create mode 100644 packages/frontend-react/src/components/01-atoms/Toggle/Toggle.lazy.tsx create mode 100644 packages/frontend-react/src/components/01-atoms/Toggle/Toggle.stories.tsx create mode 100644 packages/frontend-react/src/components/01-atoms/Toggle/Toggle.tsx create mode 100644 packages/frontend-react/src/components/01-atoms/Toggle/Toggle.types.ts create mode 100644 packages/frontend-react/src/components/01-atoms/Toggle/Toggle.utils.ts create mode 100644 packages/frontend-react/src/components/01-atoms/UnderConstructionBanner/UnderConstructionBanner.lazy.tsx create mode 100644 packages/frontend-react/src/components/01-atoms/UnderConstructionBanner/UnderConstructionBanner.stories.tsx create mode 100644 packages/frontend-react/src/components/01-atoms/UnderConstructionBanner/UnderConstructionBanner.tsx create mode 100644 packages/frontend-react/src/components/01-atoms/UnderConstructionBanner/UnderConstructionBanner.types.ts create mode 100644 packages/frontend-react/src/components/01-atoms/UnderConstructionBanner/UnderConstructionBanner.utils.ts create mode 100644 packages/frontend-react/src/components/02-molecules/AdminGuard/AdminGuard.lazy.tsx create mode 100644 packages/frontend-react/src/components/02-molecules/AdminGuard/AdminGuard.stories.tsx create mode 100644 packages/frontend-react/src/components/02-molecules/AdminGuard/AdminGuard.tsx create mode 100644 packages/frontend-react/src/components/02-molecules/AdminGuard/AdminGuard.types.ts create mode 100644 packages/frontend-react/src/components/02-molecules/AdminGuard/AdminGuard.utils.ts create mode 100644 packages/frontend-react/src/components/02-molecules/ApiKey/ApiKey.lazy.tsx create mode 100644 packages/frontend-react/src/components/02-molecules/ApiKey/ApiKey.stories.tsx create mode 100644 packages/frontend-react/src/components/02-molecules/ApiKey/ApiKey.tsx create mode 100644 packages/frontend-react/src/components/02-molecules/ApiKey/ApiKey.types.ts create mode 100644 packages/frontend-react/src/components/02-molecules/ApiKey/ApiKey.utils.ts create mode 100644 packages/frontend-react/src/components/02-molecules/ApiKey/PrivilegesList/PrivilegesList.lazy.tsx create mode 100644 packages/frontend-react/src/components/02-molecules/ApiKey/PrivilegesList/PrivilegesList.stories.tsx create mode 100644 packages/frontend-react/src/components/02-molecules/ApiKey/PrivilegesList/PrivilegesList.tsx create mode 100644 packages/frontend-react/src/components/02-molecules/ApiKey/PrivilegesList/PrivilegesList.types.ts create mode 100644 packages/frontend-react/src/components/02-molecules/ApiKey/PrivilegesList/PrivilegesList.utils.ts create mode 100644 packages/frontend-react/src/components/02-molecules/ConditionalTableCell/ConditionalTableCell.lazy.tsx create mode 100644 packages/frontend-react/src/components/02-molecules/ConditionalTableCell/ConditionalTableCell.stories.tsx create mode 100644 packages/frontend-react/src/components/02-molecules/ConditionalTableCell/ConditionalTableCell.test.tsx create mode 100644 packages/frontend-react/src/components/02-molecules/ConditionalTableCell/ConditionalTableCell.tsx create mode 100644 packages/frontend-react/src/components/02-molecules/ConditionalTableCell/ConditionalTableCell.types.ts create mode 100644 packages/frontend-react/src/components/02-molecules/ConditionalTableCell/ConditionalTableCell.utils.ts create mode 100644 packages/frontend-react/src/components/02-molecules/Loading/Loading.stories.tsx create mode 100644 packages/frontend-react/src/components/02-molecules/Loading/Loading.tsx create mode 100644 packages/frontend-react/src/components/02-molecules/Loading/Loading.types.ts create mode 100644 packages/frontend-react/src/components/02-molecules/Loading/Loading.utils.ts create mode 100644 packages/frontend-react/src/components/02-molecules/LoadingOverlay/LoadingOverlay.lazy.tsx create mode 100644 packages/frontend-react/src/components/02-molecules/LoadingOverlay/LoadingOverlay.stories.tsx create mode 100644 packages/frontend-react/src/components/02-molecules/LoadingOverlay/LoadingOverlay.tsx create mode 100644 packages/frontend-react/src/components/02-molecules/LoadingOverlay/LoadingOverlay.types.ts create mode 100644 packages/frontend-react/src/components/02-molecules/LoadingOverlay/LoadingOverlay.utils.ts create mode 100644 packages/frontend-react/src/components/02-molecules/NewApiKeyForm/NewApiKeyForm.lazy.tsx create mode 100644 packages/frontend-react/src/components/02-molecules/NewApiKeyForm/NewApiKeyForm.stories.tsx create mode 100644 packages/frontend-react/src/components/02-molecules/NewApiKeyForm/NewApiKeyForm.tsx create mode 100644 packages/frontend-react/src/components/02-molecules/NewApiKeyForm/NewApiKeyForm.types.ts create mode 100644 packages/frontend-react/src/components/02-molecules/NewApiKeyForm/NewApiKeyForm.utils.ts create mode 100644 packages/frontend-react/src/components/02-molecules/PrivilegeIcon/PrivilegeIcon.lazy.tsx create mode 100644 packages/frontend-react/src/components/02-molecules/PrivilegeIcon/PrivilegeIcon.stories.tsx create mode 100644 packages/frontend-react/src/components/02-molecules/PrivilegeIcon/PrivilegeIcon.test.tsx create mode 100644 packages/frontend-react/src/components/02-molecules/PrivilegeIcon/PrivilegeIcon.tsx create mode 100644 packages/frontend-react/src/components/02-molecules/PrivilegeIcon/PrivilegeIcon.types.ts create mode 100644 packages/frontend-react/src/components/02-molecules/PrivilegeIcon/PrivilegeIcon.ui.tsx create mode 100644 packages/frontend-react/src/components/02-molecules/PrivilegeIcon/PrivilegeIcon.utils.ts create mode 100644 packages/frontend-react/src/components/02-molecules/TopBar/TopBar.lazy.tsx create mode 100644 packages/frontend-react/src/components/02-molecules/TopBar/TopBar.stories.tsx create mode 100644 packages/frontend-react/src/components/02-molecules/TopBar/TopBar.tsx create mode 100644 packages/frontend-react/src/components/02-molecules/TopBar/TopBar.types.ts create mode 100644 packages/frontend-react/src/components/02-molecules/TopBar/TopBar.utils.ts create mode 100644 packages/frontend-react/src/components/02-molecules/UserGuard/UserGuard.lazy.tsx create mode 100644 packages/frontend-react/src/components/02-molecules/UserGuard/UserGuard.stories.tsx create mode 100644 packages/frontend-react/src/components/02-molecules/UserGuard/UserGuard.tsx create mode 100644 packages/frontend-react/src/components/02-molecules/UserGuard/UserGuard.types.ts create mode 100644 packages/frontend-react/src/components/02-molecules/UserGuard/UserGuard.utils.ts create mode 100644 packages/frontend-react/src/components/02-molecules/WaitingRoom/WaitingRoom.lazy.tsx create mode 100644 packages/frontend-react/src/components/02-molecules/WaitingRoom/WaitingRoom.stories.tsx create mode 100644 packages/frontend-react/src/components/02-molecules/WaitingRoom/WaitingRoom.tsx create mode 100644 packages/frontend-react/src/components/02-molecules/WaitingRoom/WaitingRoom.types.ts create mode 100644 packages/frontend-react/src/components/02-molecules/WaitingRoom/WaitingRoom.utils.ts create mode 100644 packages/frontend-react/src/components/03-particles/ComplexChart/ComplexChart.lazy.tsx create mode 100644 packages/frontend-react/src/components/03-particles/ComplexChart/ComplexChart.stories.tsx create mode 100644 packages/frontend-react/src/components/03-particles/ComplexChart/ComplexChart.tsx create mode 100644 packages/frontend-react/src/components/03-particles/ComplexChart/ComplexChart.types.ts create mode 100644 packages/frontend-react/src/components/03-particles/ComplexChart/ComplexChart.utils.ts create mode 100644 packages/frontend-react/src/components/03-particles/DoughnutChart/DoughnutChart.lazy.tsx create mode 100644 packages/frontend-react/src/components/03-particles/DoughnutChart/DoughnutChart.stories.tsx create mode 100644 packages/frontend-react/src/components/03-particles/DoughnutChart/DoughnutChart.tsx create mode 100644 packages/frontend-react/src/components/03-particles/DoughnutChart/DoughnutChart.types.ts create mode 100644 packages/frontend-react/src/components/03-particles/DoughnutChart/DoughnutChart.utils.ts create mode 100644 packages/frontend-react/src/components/03-particles/UserProfileCard/UserProfileCard.lazy.tsx create mode 100644 packages/frontend-react/src/components/03-particles/UserProfileCard/UserProfileCard.stories.tsx create mode 100644 packages/frontend-react/src/components/03-particles/UserProfileCard/UserProfileCard.tsx create mode 100644 packages/frontend-react/src/components/03-particles/UserProfileCard/UserProfileCard.types.ts create mode 100644 packages/frontend-react/src/components/03-particles/UserProfileCard/UserProfileCard.utils.ts create mode 100644 packages/frontend-react/src/components/04-composites/Card/Card.stories.tsx create mode 100644 packages/frontend-react/src/components/04-composites/Card/Card.types.ts create mode 100644 packages/frontend-react/src/components/04-composites/Card/CardBody/CardBody.lazy.tsx create mode 100644 packages/frontend-react/src/components/04-composites/Card/CardBody/CardBody.stories.tsx create mode 100644 packages/frontend-react/src/components/04-composites/Card/CardBody/CardBody.tsx create mode 100644 packages/frontend-react/src/components/04-composites/Card/CardBody/CardBody.types.ts create mode 100644 packages/frontend-react/src/components/04-composites/Card/CardBody/CardBody.utils.ts create mode 100644 packages/frontend-react/src/components/04-composites/Card/CardContainer/CardContainer.lazy.tsx create mode 100644 packages/frontend-react/src/components/04-composites/Card/CardContainer/CardContainer.stories.tsx create mode 100644 packages/frontend-react/src/components/04-composites/Card/CardContainer/CardContainer.tsx create mode 100644 packages/frontend-react/src/components/04-composites/Card/CardContainer/CardContainer.types.ts create mode 100644 packages/frontend-react/src/components/04-composites/Card/CardContainer/CardContainer.utils.ts create mode 100644 packages/frontend-react/src/components/04-composites/Card/CardFooter/CardFooter.lazy.tsx create mode 100644 packages/frontend-react/src/components/04-composites/Card/CardFooter/CardFooter.stories.tsx create mode 100644 packages/frontend-react/src/components/04-composites/Card/CardFooter/CardFooter.tsx create mode 100644 packages/frontend-react/src/components/04-composites/Card/CardFooter/CardFooter.types.ts create mode 100644 packages/frontend-react/src/components/04-composites/Card/CardFooter/CardFooter.utils.ts create mode 100644 packages/frontend-react/src/components/04-composites/Card/CardHeader/CardHeader.lazy.tsx create mode 100644 packages/frontend-react/src/components/04-composites/Card/CardHeader/CardHeader.stories.tsx create mode 100644 packages/frontend-react/src/components/04-composites/Card/CardHeader/CardHeader.tsx create mode 100644 packages/frontend-react/src/components/04-composites/Card/CardHeader/CardHeader.types.ts create mode 100644 packages/frontend-react/src/components/04-composites/Card/CardHeader/CardHeader.utils.ts create mode 100644 packages/frontend-react/src/components/04-composites/Card/index.tsx create mode 100644 packages/frontend-react/src/components/04-composites/CreateSystemPreference/CreateSystemPreference.lazy.tsx create mode 100644 packages/frontend-react/src/components/04-composites/CreateSystemPreference/CreateSystemPreference.stories.tsx create mode 100644 packages/frontend-react/src/components/04-composites/CreateSystemPreference/CreateSystemPreference.test.tsx create mode 100644 packages/frontend-react/src/components/04-composites/CreateSystemPreference/CreateSystemPreference.tsx create mode 100644 packages/frontend-react/src/components/04-composites/CreateSystemPreference/CreateSystemPreference.types.ts create mode 100644 packages/frontend-react/src/components/04-composites/CreateSystemPreference/CreateSystemPreference.utils.ts create mode 100644 packages/frontend-react/src/components/04-composites/GridChart/GridChart.lazy.tsx create mode 100644 packages/frontend-react/src/components/04-composites/GridChart/GridChart.module.css create mode 100644 packages/frontend-react/src/components/04-composites/GridChart/GridChart.stories.tsx create mode 100644 packages/frontend-react/src/components/04-composites/GridChart/GridChart.tsx create mode 100644 packages/frontend-react/src/components/04-composites/GridChart/GridChart.types.ts create mode 100644 packages/frontend-react/src/components/04-composites/GridChart/GridChart.utils.ts create mode 100644 packages/frontend-react/src/components/04-composites/InputGroup/InputGroup.lazy.tsx create mode 100644 packages/frontend-react/src/components/04-composites/InputGroup/InputGroup.stories.tsx create mode 100644 packages/frontend-react/src/components/04-composites/InputGroup/InputGroup.tsx create mode 100644 packages/frontend-react/src/components/04-composites/InputGroup/InputGroup.types.ts create mode 100644 packages/frontend-react/src/components/04-composites/InputGroup/InputGroup.utils.ts create mode 100644 packages/frontend-react/src/components/04-composites/Modal/Modal.types.ts create mode 100644 packages/frontend-react/src/components/04-composites/Modal/ModalBody/ModalBody.lazy.tsx create mode 100644 packages/frontend-react/src/components/04-composites/Modal/ModalBody/ModalBody.stories.tsx create mode 100644 packages/frontend-react/src/components/04-composites/Modal/ModalBody/ModalBody.tsx create mode 100644 packages/frontend-react/src/components/04-composites/Modal/ModalBody/ModalBody.types.ts create mode 100644 packages/frontend-react/src/components/04-composites/Modal/ModalBody/ModalBody.utils.ts create mode 100644 packages/frontend-react/src/components/04-composites/Modal/ModalContainer/ModalContainer.lazy.tsx create mode 100644 packages/frontend-react/src/components/04-composites/Modal/ModalContainer/ModalContainer.stories.tsx create mode 100644 packages/frontend-react/src/components/04-composites/Modal/ModalContainer/ModalContainer.tsx create mode 100644 packages/frontend-react/src/components/04-composites/Modal/ModalContainer/ModalContainer.types.ts create mode 100644 packages/frontend-react/src/components/04-composites/Modal/ModalContainer/ModalContainer.utils.ts create mode 100644 packages/frontend-react/src/components/04-composites/Modal/ModalFooter/ModalFooter.lazy.tsx create mode 100644 packages/frontend-react/src/components/04-composites/Modal/ModalFooter/ModalFooter.stories.tsx create mode 100644 packages/frontend-react/src/components/04-composites/Modal/ModalFooter/ModalFooter.tsx create mode 100644 packages/frontend-react/src/components/04-composites/Modal/ModalFooter/ModalFooter.types.ts create mode 100644 packages/frontend-react/src/components/04-composites/Modal/ModalFooter/ModalFooter.utils.ts create mode 100644 packages/frontend-react/src/components/04-composites/Modal/ModalHeader/ModalHeader.lazy.tsx create mode 100644 packages/frontend-react/src/components/04-composites/Modal/ModalHeader/ModalHeader.stories.tsx create mode 100644 packages/frontend-react/src/components/04-composites/Modal/ModalHeader/ModalHeader.tsx create mode 100644 packages/frontend-react/src/components/04-composites/Modal/ModalHeader/ModalHeader.types.ts create mode 100644 packages/frontend-react/src/components/04-composites/Modal/ModalHeader/ModalHeader.utils.ts create mode 100644 packages/frontend-react/src/components/04-composites/Modal/ModalTitle/ModalTitle.lazy.tsx create mode 100644 packages/frontend-react/src/components/04-composites/Modal/ModalTitle/ModalTitle.stories.tsx create mode 100644 packages/frontend-react/src/components/04-composites/Modal/ModalTitle/ModalTitle.tsx create mode 100644 packages/frontend-react/src/components/04-composites/Modal/ModalTitle/ModalTitle.types.ts create mode 100644 packages/frontend-react/src/components/04-composites/Modal/ModalTitle/ModalTitle.utils.ts create mode 100644 packages/frontend-react/src/components/04-composites/Modal/index.tsx create mode 100644 packages/frontend-react/src/components/04-composites/Paginator/Paginator.lazy.tsx create mode 100644 packages/frontend-react/src/components/04-composites/Paginator/Paginator.stories.tsx create mode 100644 packages/frontend-react/src/components/04-composites/Paginator/Paginator.tsx create mode 100644 packages/frontend-react/src/components/04-composites/Paginator/Paginator.types.ts create mode 100644 packages/frontend-react/src/components/04-composites/Paginator/Paginator.utils.ts create mode 100644 packages/frontend-react/src/components/04-composites/PathTabs/PathTab/PathTab.lazy.tsx create mode 100644 packages/frontend-react/src/components/04-composites/PathTabs/PathTab/PathTab.stories.tsx create mode 100644 packages/frontend-react/src/components/04-composites/PathTabs/PathTab/PathTab.tsx create mode 100644 packages/frontend-react/src/components/04-composites/PathTabs/PathTab/PathTab.types.ts create mode 100644 packages/frontend-react/src/components/04-composites/PathTabs/PathTab/PathTab.utils.ts create mode 100644 packages/frontend-react/src/components/04-composites/PathTabs/PathTabs.context.tsx create mode 100644 packages/frontend-react/src/components/04-composites/PathTabs/PathTabs.lazy.tsx create mode 100644 packages/frontend-react/src/components/04-composites/PathTabs/PathTabs.stories.tsx create mode 100644 packages/frontend-react/src/components/04-composites/PathTabs/PathTabs.tsx create mode 100644 packages/frontend-react/src/components/04-composites/PathTabs/PathTabs.types.ts create mode 100644 packages/frontend-react/src/components/04-composites/PathTabs/PathTabs.utils.ts create mode 100644 packages/frontend-react/src/components/04-composites/StatusSelectorCard/StatusSelectorCard.lazy.tsx create mode 100644 packages/frontend-react/src/components/04-composites/StatusSelectorCard/StatusSelectorCard.stories.tsx create mode 100644 packages/frontend-react/src/components/04-composites/StatusSelectorCard/StatusSelectorCard.test.tsx create mode 100644 packages/frontend-react/src/components/04-composites/StatusSelectorCard/StatusSelectorCard.tsx create mode 100644 packages/frontend-react/src/components/04-composites/StatusSelectorCard/StatusSelectorCard.types.ts create mode 100644 packages/frontend-react/src/components/04-composites/StatusSelectorCard/StatusSelectorCard.utils.ts create mode 100644 packages/frontend-react/src/components/04-composites/Tabs/Tab/Tab.lazy.tsx create mode 100644 packages/frontend-react/src/components/04-composites/Tabs/Tab/Tab.stories.tsx create mode 100644 packages/frontend-react/src/components/04-composites/Tabs/Tab/Tab.test.tsx create mode 100644 packages/frontend-react/src/components/04-composites/Tabs/Tab/Tab.tsx create mode 100644 packages/frontend-react/src/components/04-composites/Tabs/Tab/Tab.types.ts create mode 100644 packages/frontend-react/src/components/04-composites/Tabs/Tab/Tab.utils.ts create mode 100644 packages/frontend-react/src/components/04-composites/Tabs/Tabs.lazy.tsx create mode 100644 packages/frontend-react/src/components/04-composites/Tabs/Tabs.stories.tsx create mode 100644 packages/frontend-react/src/components/04-composites/Tabs/Tabs.test.tsx create mode 100644 packages/frontend-react/src/components/04-composites/Tabs/Tabs.tsx create mode 100644 packages/frontend-react/src/components/04-composites/Tabs/Tabs.types.ts create mode 100644 packages/frontend-react/src/components/04-composites/Tabs/Tabs.utils.ts create mode 100644 packages/frontend-react/src/components/05-materials/ApiKeyHelp/ApiKeyHelp.lazy.tsx create mode 100644 packages/frontend-react/src/components/05-materials/ApiKeyHelp/ApiKeyHelp.stories.tsx create mode 100644 packages/frontend-react/src/components/05-materials/ApiKeyHelp/ApiKeyHelp.tsx create mode 100644 packages/frontend-react/src/components/05-materials/ApiKeyHelp/ApiKeyHelp.types.ts create mode 100644 packages/frontend-react/src/components/05-materials/ApiKeyHelp/ApiKeyHelp.utils.ts create mode 100644 packages/frontend-react/src/components/05-materials/ApiKeyUsage/ApiKeyUsage.lazy.tsx create mode 100644 packages/frontend-react/src/components/05-materials/ApiKeyUsage/ApiKeyUsage.stories.tsx create mode 100644 packages/frontend-react/src/components/05-materials/ApiKeyUsage/ApiKeyUsage.tsx create mode 100644 packages/frontend-react/src/components/05-materials/ApiKeyUsage/ApiKeyUsage.types.ts create mode 100644 packages/frontend-react/src/components/05-materials/ApiKeyUsage/ApiKeyUsage.utils.ts create mode 100644 packages/frontend-react/src/components/05-materials/ApiKeysPage/ApiKeysPage.lazy.tsx create mode 100644 packages/frontend-react/src/components/05-materials/ApiKeysPage/ApiKeysPage.stories.tsx create mode 100644 packages/frontend-react/src/components/05-materials/ApiKeysPage/ApiKeysPage.tsx create mode 100644 packages/frontend-react/src/components/05-materials/ApiKeysPage/ApiKeysPage.types.ts create mode 100644 packages/frontend-react/src/components/05-materials/ApiKeysPage/ApiKeysPage.utils.ts create mode 100644 packages/frontend-react/src/components/05-materials/BasePage/BasePage.lazy.tsx create mode 100644 packages/frontend-react/src/components/05-materials/BasePage/BasePage.stories.tsx create mode 100644 packages/frontend-react/src/components/05-materials/BasePage/BasePage.tsx create mode 100644 packages/frontend-react/src/components/05-materials/BasePage/BasePage.types.ts create mode 100644 packages/frontend-react/src/components/05-materials/BasePage/BasePage.utils.ts create mode 100644 packages/frontend-react/src/components/05-materials/CreateUserModal/CreateUserModal.lazy.tsx create mode 100644 packages/frontend-react/src/components/05-materials/CreateUserModal/CreateUserModal.stories.tsx create mode 100644 packages/frontend-react/src/components/05-materials/CreateUserModal/CreateUserModal.test.tsx create mode 100644 packages/frontend-react/src/components/05-materials/CreateUserModal/CreateUserModal.tsx create mode 100644 packages/frontend-react/src/components/05-materials/CreateUserModal/CreateUserModal.types.ts create mode 100644 packages/frontend-react/src/components/05-materials/CreateUserModal/CreateUserModal.utils.ts create mode 100644 packages/frontend-react/src/components/05-materials/DomainSelectorCard/DomainSelectorCard.lazy.tsx create mode 100644 packages/frontend-react/src/components/05-materials/DomainSelectorCard/DomainSelectorCard.stories.tsx create mode 100644 packages/frontend-react/src/components/05-materials/DomainSelectorCard/DomainSelectorCard.test.tsx create mode 100644 packages/frontend-react/src/components/05-materials/DomainSelectorCard/DomainSelectorCard.tsx create mode 100644 packages/frontend-react/src/components/05-materials/DomainSelectorCard/DomainSelectorCard.types.ts create mode 100644 packages/frontend-react/src/components/05-materials/DomainSelectorCard/DomainSelectorCard.utils.ts create mode 100644 packages/frontend-react/src/components/05-materials/MembershipSelectorCard/MembershipSelectorCard.lazy.tsx create mode 100644 packages/frontend-react/src/components/05-materials/MembershipSelectorCard/MembershipSelectorCard.stories.tsx create mode 100644 packages/frontend-react/src/components/05-materials/MembershipSelectorCard/MembershipSelectorCard.test.tsx create mode 100644 packages/frontend-react/src/components/05-materials/MembershipSelectorCard/MembershipSelectorCard.tsx create mode 100644 packages/frontend-react/src/components/05-materials/MembershipSelectorCard/MembershipSelectorCard.types.ts create mode 100644 packages/frontend-react/src/components/05-materials/MembershipSelectorCard/MembershipSelectorCard.utils.ts create mode 100644 packages/frontend-react/src/components/05-materials/Menu/Menu.lazy.tsx create mode 100644 packages/frontend-react/src/components/05-materials/Menu/Menu.stories.tsx create mode 100644 packages/frontend-react/src/components/05-materials/Menu/Menu.test.tsx create mode 100644 packages/frontend-react/src/components/05-materials/Menu/Menu.tsx create mode 100644 packages/frontend-react/src/components/05-materials/Menu/Menu.types.ts create mode 100644 packages/frontend-react/src/components/05-materials/Menu/Menu.utils.ts create mode 100644 packages/frontend-react/src/components/05-materials/Menu/MenuItem/MenuItem.lazy.tsx create mode 100644 packages/frontend-react/src/components/05-materials/Menu/MenuItem/MenuItem.stories.tsx create mode 100644 packages/frontend-react/src/components/05-materials/Menu/MenuItem/MenuItem.test.tsx create mode 100644 packages/frontend-react/src/components/05-materials/Menu/MenuItem/MenuItem.tsx create mode 100644 packages/frontend-react/src/components/05-materials/Menu/MenuItem/MenuItem.types.ts create mode 100644 packages/frontend-react/src/components/05-materials/Menu/MenuItem/MenuItem.utils.ts create mode 100644 packages/frontend-react/src/components/05-materials/MobileMenu/MobileMenu.lazy.tsx create mode 100644 packages/frontend-react/src/components/05-materials/MobileMenu/MobileMenu.stories.tsx create mode 100644 packages/frontend-react/src/components/05-materials/MobileMenu/MobileMenu.test.tsx create mode 100644 packages/frontend-react/src/components/05-materials/MobileMenu/MobileMenu.tsx create mode 100644 packages/frontend-react/src/components/05-materials/MobileMenu/MobileMenu.types.ts create mode 100644 packages/frontend-react/src/components/05-materials/MobileMenu/MobileMenu.utils.ts create mode 100644 packages/frontend-react/src/components/05-materials/NotFoundComponent/NotFoundComponent.lazy.tsx create mode 100644 packages/frontend-react/src/components/05-materials/NotFoundComponent/NotFoundComponent.stories.tsx create mode 100644 packages/frontend-react/src/components/05-materials/NotFoundComponent/NotFoundComponent.test.tsx create mode 100644 packages/frontend-react/src/components/05-materials/NotFoundComponent/NotFoundComponent.tsx create mode 100644 packages/frontend-react/src/components/05-materials/NotFoundComponent/NotFoundComponent.types.ts create mode 100644 packages/frontend-react/src/components/05-materials/NotFoundComponent/NotFoundComponent.utils.ts create mode 100644 packages/frontend-react/src/components/05-materials/OverlayCard/OverlayCard.lazy.tsx create mode 100644 packages/frontend-react/src/components/05-materials/OverlayCard/OverlayCard.stories.tsx create mode 100644 packages/frontend-react/src/components/05-materials/OverlayCard/OverlayCard.test.tsx create mode 100644 packages/frontend-react/src/components/05-materials/OverlayCard/OverlayCard.tsx create mode 100644 packages/frontend-react/src/components/05-materials/OverlayCard/OverlayCard.types.ts create mode 100644 packages/frontend-react/src/components/05-materials/OverlayCard/OverlayCard.utils.ts create mode 100644 packages/frontend-react/src/components/05-materials/PrivilegesSelectorCard/PrivilegesSelectorCard.lazy.tsx create mode 100644 packages/frontend-react/src/components/05-materials/PrivilegesSelectorCard/PrivilegesSelectorCard.stories.tsx create mode 100644 packages/frontend-react/src/components/05-materials/PrivilegesSelectorCard/PrivilegesSelectorCard.test.tsx create mode 100644 packages/frontend-react/src/components/05-materials/PrivilegesSelectorCard/PrivilegesSelectorCard.tsx create mode 100644 packages/frontend-react/src/components/05-materials/PrivilegesSelectorCard/PrivilegesSelectorCard.types.ts create mode 100644 packages/frontend-react/src/components/05-materials/PrivilegesSelectorCard/PrivilegesSelectorCard.utils.ts create mode 100644 packages/frontend-react/src/components/05-materials/RootComponent/RootComponent.lazy.tsx create mode 100644 packages/frontend-react/src/components/05-materials/RootComponent/RootComponent.stories.tsx create mode 100644 packages/frontend-react/src/components/05-materials/RootComponent/RootComponent.test.tsx create mode 100644 packages/frontend-react/src/components/05-materials/RootComponent/RootComponent.tsx create mode 100644 packages/frontend-react/src/components/05-materials/RootComponent/RootComponent.types.ts create mode 100644 packages/frontend-react/src/components/05-materials/RootComponent/RootComponent.utils.ts create mode 100644 packages/frontend-react/src/components/05-materials/TablePage/TablePage.context.ts create mode 100644 packages/frontend-react/src/components/05-materials/TablePage/TablePage.lazy.tsx create mode 100644 packages/frontend-react/src/components/05-materials/TablePage/TablePage.stories.tsx create mode 100644 packages/frontend-react/src/components/05-materials/TablePage/TablePage.test.tsx create mode 100644 packages/frontend-react/src/components/05-materials/TablePage/TablePage.tsx create mode 100644 packages/frontend-react/src/components/05-materials/TablePage/TablePage.types.ts create mode 100644 packages/frontend-react/src/components/05-materials/TablePage/TablePage.utils.ts create mode 100644 packages/frontend-react/src/components/05-materials/WebHooksPage/CreateWebHookForm/CreateWebHookForm.lazy.tsx create mode 100644 packages/frontend-react/src/components/05-materials/WebHooksPage/CreateWebHookForm/CreateWebHookForm.stories.tsx create mode 100644 packages/frontend-react/src/components/05-materials/WebHooksPage/CreateWebHookForm/CreateWebHookForm.tsx create mode 100644 packages/frontend-react/src/components/05-materials/WebHooksPage/CreateWebHookForm/CreateWebHookForm.types.ts create mode 100644 packages/frontend-react/src/components/05-materials/WebHooksPage/CreateWebHookForm/CreateWebHookForm.utils.ts create mode 100644 packages/frontend-react/src/components/05-materials/WebHooksPage/WebHooksComponent/WebHooksComponent.lazy.tsx create mode 100644 packages/frontend-react/src/components/05-materials/WebHooksPage/WebHooksComponent/WebHooksComponent.stories.tsx create mode 100644 packages/frontend-react/src/components/05-materials/WebHooksPage/WebHooksComponent/WebHooksComponent.tsx create mode 100644 packages/frontend-react/src/components/05-materials/WebHooksPage/WebHooksComponent/WebHooksComponent.types.ts create mode 100644 packages/frontend-react/src/components/05-materials/WebHooksPage/WebHooksComponent/WebHooksComponent.utils.ts create mode 100644 packages/frontend-react/src/components/05-materials/WebHooksPage/WebHooksPage.lazy.tsx create mode 100644 packages/frontend-react/src/components/05-materials/WebHooksPage/WebHooksPage.stories.tsx create mode 100644 packages/frontend-react/src/components/05-materials/WebHooksPage/WebHooksPage.test.tsx create mode 100644 packages/frontend-react/src/components/05-materials/WebHooksPage/WebHooksPage.tsx create mode 100644 packages/frontend-react/src/components/05-materials/WebHooksPage/WebHooksPage.types.ts create mode 100644 packages/frontend-react/src/components/05-materials/WebHooksPage/WebHooksPage.utils.ts create mode 100644 packages/frontend-react/src/components/06-layouts/AdminLayout/AdminLayout.lazy.tsx create mode 100644 packages/frontend-react/src/components/06-layouts/AdminLayout/AdminLayout.stories.tsx create mode 100644 packages/frontend-react/src/components/06-layouts/AdminLayout/AdminLayout.tsx create mode 100644 packages/frontend-react/src/components/06-layouts/AdminLayout/AdminLayout.types.ts create mode 100644 packages/frontend-react/src/components/06-layouts/AdminLayout/AdminLayout.ui.tsx create mode 100644 packages/frontend-react/src/components/06-layouts/AdminLayout/AdminLayout.utils.ts create mode 100644 packages/frontend-react/src/components/06-layouts/MainLayout/MainLayout.lazy.tsx create mode 100644 packages/frontend-react/src/components/06-layouts/MainLayout/MainLayout.stories.tsx create mode 100644 packages/frontend-react/src/components/06-layouts/MainLayout/MainLayout.tsx create mode 100644 packages/frontend-react/src/components/06-layouts/MainLayout/MainLayout.types.ts create mode 100644 packages/frontend-react/src/components/06-layouts/MainLayout/MainLayout.utils.ts create mode 100644 packages/frontend-react/src/components/06-layouts/UserLayout/UserLayout.lazy.tsx create mode 100644 packages/frontend-react/src/components/06-layouts/UserLayout/UserLayout.stories.tsx create mode 100644 packages/frontend-react/src/components/06-layouts/UserLayout/UserLayout.tsx create mode 100644 packages/frontend-react/src/components/06-layouts/UserLayout/UserLayout.types.ts create mode 100644 packages/frontend-react/src/components/06-layouts/UserLayout/UserLayout.ui.tsx create mode 100644 packages/frontend-react/src/components/06-layouts/UserLayout/UserLayout.utils.ts create mode 100644 packages/frontend-react/src/components/07-pages/admin/AdminAccessLogs/AdminAccessLogs.lazy.tsx create mode 100644 packages/frontend-react/src/components/07-pages/admin/AdminAccessLogs/AdminAccessLogs.stories.tsx create mode 100644 packages/frontend-react/src/components/07-pages/admin/AdminAccessLogs/AdminAccessLogs.tsx create mode 100644 packages/frontend-react/src/components/07-pages/admin/AdminAccessLogs/AdminAccessLogs.types.ts create mode 100644 packages/frontend-react/src/components/07-pages/admin/AdminAccessLogs/AdminAccessLogs.utils.ts create mode 100644 packages/frontend-react/src/components/07-pages/admin/AdminAccessLogs/AdminAccessLogsItem/AdminAccessLogsItem.lazy.tsx create mode 100644 packages/frontend-react/src/components/07-pages/admin/AdminAccessLogs/AdminAccessLogsItem/AdminAccessLogsItem.stories.tsx create mode 100644 packages/frontend-react/src/components/07-pages/admin/AdminAccessLogs/AdminAccessLogsItem/AdminAccessLogsItem.tsx create mode 100644 packages/frontend-react/src/components/07-pages/admin/AdminAccessLogs/AdminAccessLogsItem/AdminAccessLogsItem.types.ts create mode 100644 packages/frontend-react/src/components/07-pages/admin/AdminAccessLogs/AdminAccessLogsItem/AdminAccessLogsItem.utils.ts create mode 100644 packages/frontend-react/src/components/07-pages/admin/AdminApiKeys/AdminApiKeys.lazy.tsx create mode 100644 packages/frontend-react/src/components/07-pages/admin/AdminApiKeys/AdminApiKeys.stories.tsx create mode 100644 packages/frontend-react/src/components/07-pages/admin/AdminApiKeys/AdminApiKeys.test.tsx create mode 100644 packages/frontend-react/src/components/07-pages/admin/AdminApiKeys/AdminApiKeys.tsx create mode 100644 packages/frontend-react/src/components/07-pages/admin/AdminApiKeys/AdminApiKeys.types.ts create mode 100644 packages/frontend-react/src/components/07-pages/admin/AdminApiKeys/AdminApiKeys.utils.ts create mode 100644 packages/frontend-react/src/components/07-pages/admin/AdminDashboard/AdminDashboard.lazy.tsx create mode 100644 packages/frontend-react/src/components/07-pages/admin/AdminDashboard/AdminDashboard.stories.tsx create mode 100644 packages/frontend-react/src/components/07-pages/admin/AdminDashboard/AdminDashboard.tsx create mode 100644 packages/frontend-react/src/components/07-pages/admin/AdminDashboard/AdminDashboard.types.ts create mode 100644 packages/frontend-react/src/components/07-pages/admin/AdminDashboard/AdminDashboard.utils.ts create mode 100644 packages/frontend-react/src/components/07-pages/admin/AdminDatabaseBackup/AdminDatabaseBackup.lazy.tsx create mode 100644 packages/frontend-react/src/components/07-pages/admin/AdminDatabaseBackup/AdminDatabaseBackup.stories.tsx create mode 100644 packages/frontend-react/src/components/07-pages/admin/AdminDatabaseBackup/AdminDatabaseBackup.tsx create mode 100644 packages/frontend-react/src/components/07-pages/admin/AdminDatabaseBackup/AdminDatabaseBackup.types.ts create mode 100644 packages/frontend-react/src/components/07-pages/admin/AdminDatabaseBackup/AdminDatabaseBackup.utils.ts create mode 100644 packages/frontend-react/src/components/07-pages/admin/AdminEmailTemplates/AdminEmailTemplates.lazy.tsx create mode 100644 packages/frontend-react/src/components/07-pages/admin/AdminEmailTemplates/AdminEmailTemplates.stories.tsx create mode 100644 packages/frontend-react/src/components/07-pages/admin/AdminEmailTemplates/AdminEmailTemplates.tsx create mode 100644 packages/frontend-react/src/components/07-pages/admin/AdminEmailTemplates/AdminEmailTemplates.types.ts create mode 100644 packages/frontend-react/src/components/07-pages/admin/AdminEmailTemplates/AdminEmailTemplates.utils.ts create mode 100644 packages/frontend-react/src/components/07-pages/admin/AdminEvents/AdminEvents.lazy.tsx create mode 100644 packages/frontend-react/src/components/07-pages/admin/AdminEvents/AdminEvents.stories.tsx create mode 100644 packages/frontend-react/src/components/07-pages/admin/AdminEvents/AdminEvents.tsx create mode 100644 packages/frontend-react/src/components/07-pages/admin/AdminEvents/AdminEvents.types.ts create mode 100644 packages/frontend-react/src/components/07-pages/admin/AdminEvents/AdminEvents.utils.ts create mode 100644 packages/frontend-react/src/components/07-pages/admin/AdminEvents/AdminEventsItem/AdminEventsItem.lazy.tsx create mode 100644 packages/frontend-react/src/components/07-pages/admin/AdminEvents/AdminEventsItem/AdminEventsItem.stories.tsx create mode 100644 packages/frontend-react/src/components/07-pages/admin/AdminEvents/AdminEventsItem/AdminEventsItem.tsx create mode 100644 packages/frontend-react/src/components/07-pages/admin/AdminEvents/AdminEventsItem/AdminEventsItem.types.ts create mode 100644 packages/frontend-react/src/components/07-pages/admin/AdminEvents/AdminEventsItem/AdminEventsItem.utils.ts create mode 100644 packages/frontend-react/src/components/07-pages/admin/AdminIPNRecords/AdminIPNRecords.lazy.tsx create mode 100644 packages/frontend-react/src/components/07-pages/admin/AdminIPNRecords/AdminIPNRecords.stories.tsx create mode 100644 packages/frontend-react/src/components/07-pages/admin/AdminIPNRecords/AdminIPNRecords.tsx create mode 100644 packages/frontend-react/src/components/07-pages/admin/AdminIPNRecords/AdminIPNRecords.types.ts create mode 100644 packages/frontend-react/src/components/07-pages/admin/AdminIPNRecords/AdminIPNRecords.utils.ts create mode 100644 packages/frontend-react/src/components/07-pages/admin/AdminIPNRecords/AdminIPNRecordsItem/AdminIPNRecordsItem.lazy.tsx create mode 100644 packages/frontend-react/src/components/07-pages/admin/AdminIPNRecords/AdminIPNRecordsItem/AdminIPNRecordsItem.stories.tsx create mode 100644 packages/frontend-react/src/components/07-pages/admin/AdminIPNRecords/AdminIPNRecordsItem/AdminIPNRecordsItem.tsx create mode 100644 packages/frontend-react/src/components/07-pages/admin/AdminIPNRecords/AdminIPNRecordsItem/AdminIPNRecordsItem.types.ts create mode 100644 packages/frontend-react/src/components/07-pages/admin/AdminIPNRecords/AdminIPNRecordsItem/AdminIPNRecordsItem.utils.ts create mode 100644 packages/frontend-react/src/components/07-pages/admin/AdminLogs/AdminLogs.lazy.tsx create mode 100644 packages/frontend-react/src/components/07-pages/admin/AdminLogs/AdminLogs.stories.tsx create mode 100644 packages/frontend-react/src/components/07-pages/admin/AdminLogs/AdminLogs.tsx create mode 100644 packages/frontend-react/src/components/07-pages/admin/AdminLogs/AdminLogs.types.ts create mode 100644 packages/frontend-react/src/components/07-pages/admin/AdminLogs/AdminLogs.utils.ts create mode 100644 packages/frontend-react/src/components/07-pages/admin/AdminMemberCards/AdminMemberCards.lazy.tsx create mode 100644 packages/frontend-react/src/components/07-pages/admin/AdminMemberCards/AdminMemberCards.stories.tsx create mode 100644 packages/frontend-react/src/components/07-pages/admin/AdminMemberCards/AdminMemberCards.tsx create mode 100644 packages/frontend-react/src/components/07-pages/admin/AdminMemberCards/AdminMemberCards.types.ts create mode 100644 packages/frontend-react/src/components/07-pages/admin/AdminMemberCards/AdminMemberCards.utils.ts create mode 100644 packages/frontend-react/src/components/07-pages/admin/AdminMemberships/AdminMemberships.lazy.tsx create mode 100644 packages/frontend-react/src/components/07-pages/admin/AdminMemberships/AdminMemberships.stories.tsx create mode 100644 packages/frontend-react/src/components/07-pages/admin/AdminMemberships/AdminMemberships.tsx create mode 100644 packages/frontend-react/src/components/07-pages/admin/AdminMemberships/AdminMemberships.types.ts create mode 100644 packages/frontend-react/src/components/07-pages/admin/AdminMemberships/AdminMemberships.utils.ts create mode 100644 packages/frontend-react/src/components/07-pages/admin/AdminMemberships/AdminMembershipsItem/AdminMembershipsItem.lazy.tsx create mode 100644 packages/frontend-react/src/components/07-pages/admin/AdminMemberships/AdminMembershipsItem/AdminMembershipsItem.stories.tsx create mode 100644 packages/frontend-react/src/components/07-pages/admin/AdminMemberships/AdminMembershipsItem/AdminMembershipsItem.tsx create mode 100644 packages/frontend-react/src/components/07-pages/admin/AdminMemberships/AdminMembershipsItem/AdminMembershipsItem.types.ts create mode 100644 packages/frontend-react/src/components/07-pages/admin/AdminMemberships/AdminMembershipsItem/AdminMembershipsItem.utils.ts create mode 100644 packages/frontend-react/src/components/07-pages/admin/AdminMembershipsEdit/AdminMembershipsEdit.lazy.tsx create mode 100644 packages/frontend-react/src/components/07-pages/admin/AdminMembershipsEdit/AdminMembershipsEdit.stories.tsx create mode 100644 packages/frontend-react/src/components/07-pages/admin/AdminMembershipsEdit/AdminMembershipsEdit.test.tsx create mode 100644 packages/frontend-react/src/components/07-pages/admin/AdminMembershipsEdit/AdminMembershipsEdit.tsx create mode 100644 packages/frontend-react/src/components/07-pages/admin/AdminMembershipsEdit/AdminMembershipsEdit.types.ts create mode 100644 packages/frontend-react/src/components/07-pages/admin/AdminMembershipsEdit/AdminMembershipsEdit.utils.ts create mode 100644 packages/frontend-react/src/components/07-pages/admin/AdminNewsletter/AdminNewsletter.lazy.tsx create mode 100644 packages/frontend-react/src/components/07-pages/admin/AdminNewsletter/AdminNewsletter.stories.tsx create mode 100644 packages/frontend-react/src/components/07-pages/admin/AdminNewsletter/AdminNewsletter.tsx create mode 100644 packages/frontend-react/src/components/07-pages/admin/AdminNewsletter/AdminNewsletter.types.ts create mode 100644 packages/frontend-react/src/components/07-pages/admin/AdminNewsletter/AdminNewsletter.utils.ts create mode 100644 packages/frontend-react/src/components/07-pages/admin/AdminOAuth/AdminOAuth.lazy.tsx create mode 100644 packages/frontend-react/src/components/07-pages/admin/AdminOAuth/AdminOAuth.stories.tsx create mode 100644 packages/frontend-react/src/components/07-pages/admin/AdminOAuth/AdminOAuth.tsx create mode 100644 packages/frontend-react/src/components/07-pages/admin/AdminOAuth/AdminOAuth.types.ts create mode 100644 packages/frontend-react/src/components/07-pages/admin/AdminOAuth/AdminOAuth.utils.ts create mode 100644 packages/frontend-react/src/components/07-pages/admin/AdminPaymentGateways/AdminPaymentGateways.lazy.tsx create mode 100644 packages/frontend-react/src/components/07-pages/admin/AdminPaymentGateways/AdminPaymentGateways.stories.tsx create mode 100644 packages/frontend-react/src/components/07-pages/admin/AdminPaymentGateways/AdminPaymentGateways.tsx create mode 100644 packages/frontend-react/src/components/07-pages/admin/AdminPaymentGateways/AdminPaymentGateways.types.ts create mode 100644 packages/frontend-react/src/components/07-pages/admin/AdminPaymentGateways/AdminPaymentGateways.utils.ts create mode 100644 packages/frontend-react/src/components/07-pages/admin/AdminPayments/AdminPayPalPaymentItem/AdminPayPalPaymentItem.lazy.tsx create mode 100644 packages/frontend-react/src/components/07-pages/admin/AdminPayments/AdminPayPalPaymentItem/AdminPayPalPaymentItem.stories.tsx create mode 100644 packages/frontend-react/src/components/07-pages/admin/AdminPayments/AdminPayPalPaymentItem/AdminPayPalPaymentItem.tsx create mode 100644 packages/frontend-react/src/components/07-pages/admin/AdminPayments/AdminPayPalPaymentItem/AdminPayPalPaymentItem.types.ts create mode 100644 packages/frontend-react/src/components/07-pages/admin/AdminPayments/AdminPayPalPaymentItem/AdminPayPalPaymentItem.utils.ts create mode 100644 packages/frontend-react/src/components/07-pages/admin/AdminPayments/AdminPayments.lazy.tsx create mode 100644 packages/frontend-react/src/components/07-pages/admin/AdminPayments/AdminPayments.stories.tsx create mode 100644 packages/frontend-react/src/components/07-pages/admin/AdminPayments/AdminPayments.tsx create mode 100644 packages/frontend-react/src/components/07-pages/admin/AdminPayments/AdminPayments.types.ts create mode 100644 packages/frontend-react/src/components/07-pages/admin/AdminPayments/AdminPayments.utils.ts create mode 100644 packages/frontend-react/src/components/07-pages/admin/AdminPrivileges/AdminPrivileges.lazy.tsx create mode 100644 packages/frontend-react/src/components/07-pages/admin/AdminPrivileges/AdminPrivileges.stories.tsx create mode 100644 packages/frontend-react/src/components/07-pages/admin/AdminPrivileges/AdminPrivileges.tsx create mode 100644 packages/frontend-react/src/components/07-pages/admin/AdminPrivileges/AdminPrivileges.types.ts create mode 100644 packages/frontend-react/src/components/07-pages/admin/AdminPrivileges/AdminPrivileges.utils.ts create mode 100644 packages/frontend-react/src/components/07-pages/admin/AdminPrivileges/AdminPrivilegesItem/AdminPrivilegesItem.lazy.tsx create mode 100644 packages/frontend-react/src/components/07-pages/admin/AdminPrivileges/AdminPrivilegesItem/AdminPrivilegesItem.stories.tsx create mode 100644 packages/frontend-react/src/components/07-pages/admin/AdminPrivileges/AdminPrivilegesItem/AdminPrivilegesItem.tsx create mode 100644 packages/frontend-react/src/components/07-pages/admin/AdminPrivileges/AdminPrivilegesItem/AdminPrivilegesItem.types.ts create mode 100644 packages/frontend-react/src/components/07-pages/admin/AdminPrivileges/AdminPrivilegesItem/AdminPrivilegesItem.utils.ts create mode 100644 packages/frontend-react/src/components/07-pages/admin/AdminReports/AdminReports.lazy.tsx create mode 100644 packages/frontend-react/src/components/07-pages/admin/AdminReports/AdminReports.stories.tsx create mode 100644 packages/frontend-react/src/components/07-pages/admin/AdminReports/AdminReports.tsx create mode 100644 packages/frontend-react/src/components/07-pages/admin/AdminReports/AdminReports.types.ts create mode 100644 packages/frontend-react/src/components/07-pages/admin/AdminReports/AdminReports.utils.ts create mode 100644 packages/frontend-react/src/components/07-pages/admin/AdminSiteConfiguration/AdminSiteConfiguration.lazy.tsx create mode 100644 packages/frontend-react/src/components/07-pages/admin/AdminSiteConfiguration/AdminSiteConfiguration.stories.tsx create mode 100644 packages/frontend-react/src/components/07-pages/admin/AdminSiteConfiguration/AdminSiteConfiguration.tsx create mode 100644 packages/frontend-react/src/components/07-pages/admin/AdminSiteConfiguration/AdminSiteConfiguration.types.ts create mode 100644 packages/frontend-react/src/components/07-pages/admin/AdminSiteConfiguration/AdminSiteConfiguration.utils.ts create mode 100644 packages/frontend-react/src/components/07-pages/admin/AdminStripeRecords/AdminStripeRecords.lazy.tsx create mode 100644 packages/frontend-react/src/components/07-pages/admin/AdminStripeRecords/AdminStripeRecords.stories.tsx create mode 100644 packages/frontend-react/src/components/07-pages/admin/AdminStripeRecords/AdminStripeRecords.tsx create mode 100644 packages/frontend-react/src/components/07-pages/admin/AdminStripeRecords/AdminStripeRecords.types.ts create mode 100644 packages/frontend-react/src/components/07-pages/admin/AdminStripeRecords/AdminStripeRecords.utils.ts create mode 100644 packages/frontend-react/src/components/07-pages/admin/AdminStripeRecords/AdminStripeRecordsItem/AdminStripeRecordsItem.lazy.tsx create mode 100644 packages/frontend-react/src/components/07-pages/admin/AdminStripeRecords/AdminStripeRecordsItem/AdminStripeRecordsItem.stories.tsx create mode 100644 packages/frontend-react/src/components/07-pages/admin/AdminStripeRecords/AdminStripeRecordsItem/AdminStripeRecordsItem.tsx create mode 100644 packages/frontend-react/src/components/07-pages/admin/AdminStripeRecords/AdminStripeRecordsItem/AdminStripeRecordsItem.types.ts create mode 100644 packages/frontend-react/src/components/07-pages/admin/AdminStripeRecords/AdminStripeRecordsItem/AdminStripeRecordsItem.utils.ts create mode 100644 packages/frontend-react/src/components/07-pages/admin/AdminSystemPreferences/AdminSystemPreferences.lazy.tsx create mode 100644 packages/frontend-react/src/components/07-pages/admin/AdminSystemPreferences/AdminSystemPreferences.stories.tsx create mode 100644 packages/frontend-react/src/components/07-pages/admin/AdminSystemPreferences/AdminSystemPreferences.test.tsx create mode 100644 packages/frontend-react/src/components/07-pages/admin/AdminSystemPreferences/AdminSystemPreferences.tsx create mode 100644 packages/frontend-react/src/components/07-pages/admin/AdminSystemPreferences/AdminSystemPreferences.types.ts create mode 100644 packages/frontend-react/src/components/07-pages/admin/AdminSystemPreferences/AdminSystemPreferences.utils.ts create mode 100644 packages/frontend-react/src/components/07-pages/admin/AdminSystemPreferences/item/AdminSystemPreferencesItem.lazy.tsx create mode 100644 packages/frontend-react/src/components/07-pages/admin/AdminSystemPreferences/item/AdminSystemPreferencesItem.stories.tsx create mode 100644 packages/frontend-react/src/components/07-pages/admin/AdminSystemPreferences/item/AdminSystemPreferencesItem.tsx create mode 100644 packages/frontend-react/src/components/07-pages/admin/AdminSystemPreferences/item/AdminSystemPreferencesItem.types.ts create mode 100644 packages/frontend-react/src/components/07-pages/admin/AdminSystemPreferences/item/AdminSystemPreferencesItem.utils.ts create mode 100644 packages/frontend-react/src/components/07-pages/admin/AdminUsers/AdminUsers.lazy.tsx create mode 100644 packages/frontend-react/src/components/07-pages/admin/AdminUsers/AdminUsers.stories.tsx create mode 100644 packages/frontend-react/src/components/07-pages/admin/AdminUsers/AdminUsers.tsx create mode 100644 packages/frontend-react/src/components/07-pages/admin/AdminUsers/AdminUsers.types.ts create mode 100644 packages/frontend-react/src/components/07-pages/admin/AdminUsers/AdminUsers.utils.ts create mode 100644 packages/frontend-react/src/components/07-pages/admin/AdminUsersEdit/AdminUsersEdit.lazy.tsx create mode 100644 packages/frontend-react/src/components/07-pages/admin/AdminUsersEdit/AdminUsersEdit.stories.tsx create mode 100644 packages/frontend-react/src/components/07-pages/admin/AdminUsersEdit/AdminUsersEdit.test.tsx create mode 100644 packages/frontend-react/src/components/07-pages/admin/AdminUsersEdit/AdminUsersEdit.tsx create mode 100644 packages/frontend-react/src/components/07-pages/admin/AdminUsersEdit/AdminUsersEdit.types.ts create mode 100644 packages/frontend-react/src/components/07-pages/admin/AdminUsersEdit/AdminUsersEdit.utils.ts create mode 100644 packages/frontend-react/src/components/07-pages/admin/AdminUsersNew/AdminUsersNew.lazy.tsx create mode 100644 packages/frontend-react/src/components/07-pages/admin/AdminUsersNew/AdminUsersNew.stories.tsx create mode 100644 packages/frontend-react/src/components/07-pages/admin/AdminUsersNew/AdminUsersNew.test.tsx create mode 100644 packages/frontend-react/src/components/07-pages/admin/AdminUsersNew/AdminUsersNew.tsx create mode 100644 packages/frontend-react/src/components/07-pages/admin/AdminUsersNew/AdminUsersNew.types.ts create mode 100644 packages/frontend-react/src/components/07-pages/admin/AdminUsersNew/AdminUsersNew.utils.ts create mode 100644 packages/frontend-react/src/components/07-pages/admin/AdminWebHooks/AdminWebHooks.lazy.tsx create mode 100644 packages/frontend-react/src/components/07-pages/admin/AdminWebHooks/AdminWebHooks.stories.tsx create mode 100644 packages/frontend-react/src/components/07-pages/admin/AdminWebHooks/AdminWebHooks.tsx create mode 100644 packages/frontend-react/src/components/07-pages/admin/AdminWebHooks/AdminWebHooks.types.ts create mode 100644 packages/frontend-react/src/components/07-pages/admin/AdminWebHooks/AdminWebHooks.utils.ts create mode 100644 packages/frontend-react/src/components/07-pages/common/LandingPage/LandingPage.lazy.tsx create mode 100644 packages/frontend-react/src/components/07-pages/common/LandingPage/LandingPage.stories.tsx create mode 100644 packages/frontend-react/src/components/07-pages/common/LandingPage/LandingPage.tsx create mode 100644 packages/frontend-react/src/components/07-pages/common/LandingPage/LandingPage.types.ts create mode 100644 packages/frontend-react/src/components/07-pages/common/LandingPage/LandingPage.utils.ts create mode 100644 packages/frontend-react/src/components/07-pages/common/Login/Login.lazy.tsx create mode 100644 packages/frontend-react/src/components/07-pages/common/Login/Login.stories.tsx create mode 100644 packages/frontend-react/src/components/07-pages/common/Login/Login.test.tsx create mode 100644 packages/frontend-react/src/components/07-pages/common/Login/Login.tsx create mode 100644 packages/frontend-react/src/components/07-pages/common/Login/Login.types.ts create mode 100644 packages/frontend-react/src/components/07-pages/common/Login/Login.utils.ts create mode 100644 packages/frontend-react/src/components/07-pages/user/UserAccessHistory/UserAccessHistory.lazy.tsx create mode 100644 packages/frontend-react/src/components/07-pages/user/UserAccessHistory/UserAccessHistory.stories.tsx create mode 100644 packages/frontend-react/src/components/07-pages/user/UserAccessHistory/UserAccessHistory.tsx create mode 100644 packages/frontend-react/src/components/07-pages/user/UserAccessHistory/UserAccessHistory.types.ts create mode 100644 packages/frontend-react/src/components/07-pages/user/UserAccessHistory/UserAccessHistory.utils.ts create mode 100644 packages/frontend-react/src/components/07-pages/user/UserAccessHistory/UserAccessHistoryItem/UserAccessHistoryItem.lazy.tsx create mode 100644 packages/frontend-react/src/components/07-pages/user/UserAccessHistory/UserAccessHistoryItem/UserAccessHistoryItem.stories.tsx create mode 100644 packages/frontend-react/src/components/07-pages/user/UserAccessHistory/UserAccessHistoryItem/UserAccessHistoryItem.tsx create mode 100644 packages/frontend-react/src/components/07-pages/user/UserAccessHistory/UserAccessHistoryItem/UserAccessHistoryItem.types.ts create mode 100644 packages/frontend-react/src/components/07-pages/user/UserAccessHistory/UserAccessHistoryItem/UserAccessHistoryItem.utils.ts create mode 100644 packages/frontend-react/src/components/07-pages/user/UserApiKeys/UserApiKeys.lazy.tsx create mode 100644 packages/frontend-react/src/components/07-pages/user/UserApiKeys/UserApiKeys.stories.tsx create mode 100644 packages/frontend-react/src/components/07-pages/user/UserApiKeys/UserApiKeys.tsx create mode 100644 packages/frontend-react/src/components/07-pages/user/UserApiKeys/UserApiKeys.types.ts create mode 100644 packages/frontend-react/src/components/07-pages/user/UserApiKeys/UserApiKeys.utils.ts create mode 100644 packages/frontend-react/src/components/07-pages/user/UserDashboard/UserDashboard.lazy.tsx create mode 100644 packages/frontend-react/src/components/07-pages/user/UserDashboard/UserDashboard.stories.tsx create mode 100644 packages/frontend-react/src/components/07-pages/user/UserDashboard/UserDashboard.tsx create mode 100644 packages/frontend-react/src/components/07-pages/user/UserDashboard/UserDashboard.types.ts create mode 100644 packages/frontend-react/src/components/07-pages/user/UserDashboard/UserDashboard.utils.ts create mode 100644 packages/frontend-react/src/components/07-pages/user/UserDoorAccess/UserDoorAccess.lazy.tsx create mode 100644 packages/frontend-react/src/components/07-pages/user/UserDoorAccess/UserDoorAccess.stories.tsx create mode 100644 packages/frontend-react/src/components/07-pages/user/UserDoorAccess/UserDoorAccess.tsx create mode 100644 packages/frontend-react/src/components/07-pages/user/UserDoorAccess/UserDoorAccess.types.ts create mode 100644 packages/frontend-react/src/components/07-pages/user/UserDoorAccess/UserDoorAccess.utils.ts create mode 100644 packages/frontend-react/src/components/07-pages/user/UserGetInvolved/UserGetInvolved.lazy.tsx create mode 100644 packages/frontend-react/src/components/07-pages/user/UserGetInvolved/UserGetInvolved.stories.tsx create mode 100644 packages/frontend-react/src/components/07-pages/user/UserGetInvolved/UserGetInvolved.tsx create mode 100644 packages/frontend-react/src/components/07-pages/user/UserGetInvolved/UserGetInvolved.types.ts create mode 100644 packages/frontend-react/src/components/07-pages/user/UserGetInvolved/UserGetInvolved.utils.ts create mode 100644 packages/frontend-react/src/components/07-pages/user/UserGranting/UserGranting.lazy.tsx create mode 100644 packages/frontend-react/src/components/07-pages/user/UserGranting/UserGranting.stories.tsx create mode 100644 packages/frontend-react/src/components/07-pages/user/UserGranting/UserGranting.tsx create mode 100644 packages/frontend-react/src/components/07-pages/user/UserGranting/UserGranting.types.ts create mode 100644 packages/frontend-react/src/components/07-pages/user/UserGranting/UserGranting.utils.ts create mode 100644 packages/frontend-react/src/components/07-pages/user/UserProfile/APIKeysCard.tsx create mode 100644 packages/frontend-react/src/components/07-pages/user/UserProfile/LinkedAccountsCard.tsx create mode 100644 packages/frontend-react/src/components/07-pages/user/UserProfile/PinCard.tsx create mode 100644 packages/frontend-react/src/components/07-pages/user/UserProfile/PrivilegesCard.tsx create mode 100644 packages/frontend-react/src/components/07-pages/user/UserProfile/RFIDKeysCard.tsx create mode 100644 packages/frontend-react/src/components/07-pages/user/UserProfile/StandingCard.tsx create mode 100644 packages/frontend-react/src/components/07-pages/user/UserProfile/UserProfile.lazy.tsx create mode 100644 packages/frontend-react/src/components/07-pages/user/UserProfile/UserProfile.stories.tsx create mode 100644 packages/frontend-react/src/components/07-pages/user/UserProfile/UserProfile.tsx create mode 100644 packages/frontend-react/src/components/07-pages/user/UserProfile/UserProfile.types.ts create mode 100644 packages/frontend-react/src/components/07-pages/user/UserProfile/UserProfile.utils.ts create mode 100644 packages/frontend-react/src/components/07-pages/user/UserPurchases/UserPurchases.lazy.tsx create mode 100644 packages/frontend-react/src/components/07-pages/user/UserPurchases/UserPurchases.stories.tsx create mode 100644 packages/frontend-react/src/components/07-pages/user/UserPurchases/UserPurchases.tsx create mode 100644 packages/frontend-react/src/components/07-pages/user/UserPurchases/UserPurchases.types.ts create mode 100644 packages/frontend-react/src/components/07-pages/user/UserPurchases/UserPurchases.utils.ts create mode 100644 packages/frontend-react/src/components/07-pages/user/UserTransactions/UserTransactionItems/UserTransactionItems.lazy.tsx create mode 100644 packages/frontend-react/src/components/07-pages/user/UserTransactions/UserTransactionItems/UserTransactionItems.stories.tsx create mode 100644 packages/frontend-react/src/components/07-pages/user/UserTransactions/UserTransactionItems/UserTransactionItems.tsx create mode 100644 packages/frontend-react/src/components/07-pages/user/UserTransactions/UserTransactionItems/UserTransactionItems.types.ts create mode 100644 packages/frontend-react/src/components/07-pages/user/UserTransactions/UserTransactionItems/UserTransactionItems.utils.ts create mode 100644 packages/frontend-react/src/components/07-pages/user/UserTransactions/UserTransactions.lazy.tsx create mode 100644 packages/frontend-react/src/components/07-pages/user/UserTransactions/UserTransactions.stories.tsx create mode 100644 packages/frontend-react/src/components/07-pages/user/UserTransactions/UserTransactions.tsx create mode 100644 packages/frontend-react/src/components/07-pages/user/UserTransactions/UserTransactions.types.ts create mode 100644 packages/frontend-react/src/components/07-pages/user/UserTransactions/UserTransactions.utils.ts create mode 100644 packages/frontend-react/src/components/07-pages/user/UserWebHooks/UserWebHooks.lazy.tsx create mode 100644 packages/frontend-react/src/components/07-pages/user/UserWebHooks/UserWebHooks.stories.tsx create mode 100644 packages/frontend-react/src/components/07-pages/user/UserWebHooks/UserWebHooks.tsx create mode 100644 packages/frontend-react/src/components/07-pages/user/UserWebHooks/UserWebHooks.types.ts create mode 100644 packages/frontend-react/src/components/07-pages/user/UserWebHooks/UserWebHooks.utils.ts create mode 100644 packages/frontend-react/src/components/08-app/App/App.lazy.tsx create mode 100644 packages/frontend-react/src/components/08-app/App/App.react-router.tsx create mode 100644 packages/frontend-react/src/components/08-app/App/App.stories.tsx create mode 100644 packages/frontend-react/src/components/08-app/App/App.tsx create mode 100644 packages/frontend-react/src/components/08-app/App/App.types.ts create mode 100644 packages/frontend-react/src/components/08-app/App/App.utils.ts create mode 100644 packages/frontend-react/src/components/09-providers/AuthenticationProvider/AuthenticationProvider.context.ts create mode 100644 packages/frontend-react/src/components/09-providers/AuthenticationProvider/AuthenticationProvider.lazy.tsx create mode 100644 packages/frontend-react/src/components/09-providers/AuthenticationProvider/AuthenticationProvider.stories.tsx create mode 100644 packages/frontend-react/src/components/09-providers/AuthenticationProvider/AuthenticationProvider.tsx create mode 100644 packages/frontend-react/src/components/09-providers/AuthenticationProvider/AuthenticationProvider.types.ts create mode 100644 packages/frontend-react/src/components/09-providers/AuthenticationProvider/AuthenticationProvider.utils.ts create mode 100644 packages/frontend-react/src/components/99-templates/admin-page/AdminTemplateName.lazy.tsx create mode 100644 packages/frontend-react/src/components/99-templates/admin-page/AdminTemplateName.stories.tsx create mode 100644 packages/frontend-react/src/components/99-templates/admin-page/AdminTemplateName.test.tsx create mode 100644 packages/frontend-react/src/components/99-templates/admin-page/AdminTemplateName.tsx create mode 100644 packages/frontend-react/src/components/99-templates/admin-page/AdminTemplateName.types.ts create mode 100644 packages/frontend-react/src/components/99-templates/admin-page/AdminTemplateName.utils.ts create mode 100644 packages/frontend-react/src/components/99-templates/admin-page/item/AdminTemplateNameItem.lazy.tsx create mode 100644 packages/frontend-react/src/components/99-templates/admin-page/item/AdminTemplateNameItem.stories.tsx create mode 100644 packages/frontend-react/src/components/99-templates/admin-page/item/AdminTemplateNameItem.tsx create mode 100644 packages/frontend-react/src/components/99-templates/admin-page/item/AdminTemplateNameItem.types.ts create mode 100644 packages/frontend-react/src/components/99-templates/admin-page/item/AdminTemplateNameItem.utils.ts create mode 100644 packages/frontend-react/src/components/99-templates/default/TemplateName.lazy.tsx create mode 100644 packages/frontend-react/src/components/99-templates/default/TemplateName.stories.tsx create mode 100644 packages/frontend-react/src/components/99-templates/default/TemplateName.test.tsx create mode 100644 packages/frontend-react/src/components/99-templates/default/TemplateName.tsx create mode 100644 packages/frontend-react/src/components/99-templates/default/TemplateName.types.ts create mode 100644 packages/frontend-react/src/components/99-templates/default/TemplateName.utils.ts create mode 100644 packages/frontend-react/src/components/99-templates/page/TemplateName.lazy.tsx create mode 100644 packages/frontend-react/src/components/99-templates/page/TemplateName.stories.tsx create mode 100644 packages/frontend-react/src/components/99-templates/page/TemplateName.test.tsx create mode 100644 packages/frontend-react/src/components/99-templates/page/TemplateName.tsx create mode 100644 packages/frontend-react/src/components/99-templates/page/TemplateName.types.ts create mode 100644 packages/frontend-react/src/components/99-templates/page/TemplateName.utils.ts create mode 100644 packages/frontend-react/src/components/99-templates/user-page/TemplateName.lazy.tsx create mode 100644 packages/frontend-react/src/components/99-templates/user-page/TemplateName.stories.tsx create mode 100644 packages/frontend-react/src/components/99-templates/user-page/TemplateName.test.tsx create mode 100644 packages/frontend-react/src/components/99-templates/user-page/TemplateName.tsx create mode 100644 packages/frontend-react/src/components/99-templates/user-page/TemplateName.types.ts create mode 100644 packages/frontend-react/src/components/99-templates/user-page/TemplateName.utils.ts create mode 100644 packages/frontend-react/src/components/99-templates/user-page/UserTemplateNameItem/UserTemplateNameItem.lazy.tsx create mode 100644 packages/frontend-react/src/components/99-templates/user-page/UserTemplateNameItem/UserTemplateNameItem.stories.tsx create mode 100644 packages/frontend-react/src/components/99-templates/user-page/UserTemplateNameItem/UserTemplateNameItem.tsx create mode 100644 packages/frontend-react/src/components/99-templates/user-page/UserTemplateNameItem/UserTemplateNameItem.types.ts create mode 100644 packages/frontend-react/src/components/99-templates/user-page/UserTemplateNameItem/UserTemplateNameItem.utils.ts create mode 100644 packages/frontend-react/src/lib/backend.ts create mode 100644 packages/frontend-react/src/lib/db/PrincipalUser.ts create mode 100644 packages/frontend-react/src/lib/db/User.ts create mode 100644 packages/frontend-react/src/lib/exceptions/HTTPException.ts create mode 100644 packages/frontend-react/src/lib/fetcher.ts create mode 100644 packages/frontend-react/src/lib/hooks/providers/ApiKeyService2/useDeleteApiKey.tsx create mode 100644 packages/frontend-react/src/lib/hooks/providers/ApiKeyService2/useGenerateSystemApiKey.tsx create mode 100644 packages/frontend-react/src/lib/hooks/providers/ApiKeyService2/useGenerateUserApiKey.tsx create mode 100644 packages/frontend-react/src/lib/hooks/providers/ApiKeyService2/useGetApiKey.tsx create mode 100644 packages/frontend-react/src/lib/hooks/providers/ApiKeyService2/useGetSystemApiKeys.tsx create mode 100644 packages/frontend-react/src/lib/hooks/providers/ApiKeyService2/useGetUserAPIKeys.tsx create mode 100644 packages/frontend-react/src/lib/hooks/providers/ApiKeyService2/usePutApiKeyPrivileges.tsx create mode 100644 packages/frontend-react/src/lib/hooks/providers/ApiKeyService2/useUpdateApiKey.tsx create mode 100644 packages/frontend-react/src/lib/hooks/providers/AuthService2/useCountAccessLog.tsx create mode 100644 packages/frontend-react/src/lib/hooks/providers/AuthService2/useCountClients.tsx create mode 100644 packages/frontend-react/src/lib/hooks/providers/AuthService2/useCountUserAccessLog.tsx create mode 100644 packages/frontend-react/src/lib/hooks/providers/AuthService2/useCurrentUser.tsx create mode 100644 packages/frontend-react/src/lib/hooks/providers/AuthService2/useListAccessLog.tsx create mode 100644 packages/frontend-react/src/lib/hooks/providers/AuthService2/useListClients.tsx create mode 100644 packages/frontend-react/src/lib/hooks/providers/AuthService2/useListUserAccessLog.tsx create mode 100644 packages/frontend-react/src/lib/hooks/providers/AuthService2/useLogin.tsx create mode 100644 packages/frontend-react/src/lib/hooks/providers/AuthService2/useLogout.tsx create mode 100644 packages/frontend-react/src/lib/hooks/providers/AuthService2/useRegisterClient.tsx create mode 100644 packages/frontend-react/src/lib/hooks/providers/CurrentUser/useGetCurrentUser.tsx create mode 100644 packages/frontend-react/src/lib/hooks/providers/EmailService2/useCountTemplates.tsx create mode 100644 packages/frontend-react/src/lib/hooks/providers/EmailService2/useDeleteTemplate.tsx create mode 100644 packages/frontend-react/src/lib/hooks/providers/EmailService2/useGetTemplate.tsx create mode 100644 packages/frontend-react/src/lib/hooks/providers/EmailService2/useListTemplates.tsx create mode 100644 packages/frontend-react/src/lib/hooks/providers/EmailService2/usePutTemplate.tsx create mode 100644 packages/frontend-react/src/lib/hooks/providers/EmailService2/useUpdateBody.tsx create mode 100644 packages/frontend-react/src/lib/hooks/providers/EmailService2/useUpdateCode.tsx create mode 100644 packages/frontend-react/src/lib/hooks/providers/EmailService2/useUpdateHelp.tsx create mode 100644 packages/frontend-react/src/lib/hooks/providers/EmailService2/useUpdateHtml.tsx create mode 100644 packages/frontend-react/src/lib/hooks/providers/EmailService2/useUpdateName.tsx create mode 100644 packages/frontend-react/src/lib/hooks/providers/EmailService2/useUpdateSubject.tsx create mode 100644 packages/frontend-react/src/lib/hooks/providers/EventService2/useCountEvents.tsx create mode 100644 packages/frontend-react/src/lib/hooks/providers/EventService2/useCreateEvent.tsx create mode 100644 packages/frontend-react/src/lib/hooks/providers/EventService2/useDeleteEvent.tsx create mode 100644 packages/frontend-react/src/lib/hooks/providers/EventService2/useEnableEvent.tsx create mode 100644 packages/frontend-react/src/lib/hooks/providers/EventService2/useGetAccessibleEvents.tsx create mode 100644 packages/frontend-react/src/lib/hooks/providers/EventService2/useGetDomainDefinitions.tsx create mode 100644 packages/frontend-react/src/lib/hooks/providers/EventService2/useGetEvent.tsx create mode 100644 packages/frontend-react/src/lib/hooks/providers/EventService2/useGetEventTypes.tsx create mode 100644 packages/frontend-react/src/lib/hooks/providers/EventService2/useListEvents.tsx create mode 100644 packages/frontend-react/src/lib/hooks/providers/EventService2/usePutEventPrivileges.tsx create mode 100644 packages/frontend-react/src/lib/hooks/providers/EventService2/useUpdateEvent.tsx create mode 100644 packages/frontend-react/src/lib/hooks/providers/IpnService2/useCountRecords.tsx create mode 100644 packages/frontend-react/src/lib/hooks/providers/IpnService2/useGet.tsx create mode 100644 packages/frontend-react/src/lib/hooks/providers/IpnService2/useGetAll.tsx create mode 100644 packages/frontend-react/src/lib/hooks/providers/IpnService2/useListRecords.tsx create mode 100644 packages/frontend-react/src/lib/hooks/providers/MemberCardService2/useGetGenuineCardDetails.tsx create mode 100644 packages/frontend-react/src/lib/hooks/providers/MemberCardService2/useIssueCard.tsx create mode 100644 packages/frontend-react/src/lib/hooks/providers/MemberCardService2/useListGenuineCards.tsx create mode 100644 packages/frontend-react/src/lib/hooks/providers/MemberCardService2/useListUserGenuineCards.tsx create mode 100644 packages/frontend-react/src/lib/hooks/providers/MemberCardService2/useRegisterGenuineCard.tsx create mode 100644 packages/frontend-react/src/lib/hooks/providers/MemberCardService2/useUpdateGenuineCardActive.tsx create mode 100644 packages/frontend-react/src/lib/hooks/providers/MemberCardService2/useValidateGenuineCard.tsx create mode 100644 packages/frontend-react/src/lib/hooks/providers/MembershipService2/useGet.tsx create mode 100644 packages/frontend-react/src/lib/hooks/providers/MembershipService2/useGetAll.tsx create mode 100644 packages/frontend-react/src/lib/hooks/providers/MembershipService2/useUpdate.tsx create mode 100644 packages/frontend-react/src/lib/hooks/providers/MembershipService2/useUpdateActive.tsx create mode 100644 packages/frontend-react/src/lib/hooks/providers/MembershipService2/useUpdatePrivate.tsx create mode 100644 packages/frontend-react/src/lib/hooks/providers/MembershipService2/useUpdateRecurring.tsx create mode 100644 packages/frontend-react/src/lib/hooks/providers/MembershipService2/useUpdateTrial.tsx create mode 100644 packages/frontend-react/src/lib/hooks/providers/MetricService2/useGetCreatedDates.tsx create mode 100644 packages/frontend-react/src/lib/hooks/providers/MetricService2/useGetExceptionPayments.tsx create mode 100644 packages/frontend-react/src/lib/hooks/providers/MetricService2/useGetMembers.tsx create mode 100644 packages/frontend-react/src/lib/hooks/providers/MetricService2/useGetNewKeyHolders.tsx create mode 100644 packages/frontend-react/src/lib/hooks/providers/MetricService2/useGetNewMembers.tsx create mode 100644 packages/frontend-react/src/lib/hooks/providers/MetricService2/useGetPendingAccounts.tsx create mode 100644 packages/frontend-react/src/lib/hooks/providers/MetricService2/useGetRevenue.tsx create mode 100644 packages/frontend-react/src/lib/hooks/providers/MetricService2/useGetTotalKeyHolders.tsx create mode 100644 packages/frontend-react/src/lib/hooks/providers/MetricService2/useGetTotalMembers.tsx create mode 100644 packages/frontend-react/src/lib/hooks/providers/PaymentService2/useCountPayments.tsx create mode 100644 packages/frontend-react/src/lib/hooks/providers/PaymentService2/useCountUserPayments.tsx create mode 100644 packages/frontend-react/src/lib/hooks/providers/PaymentService2/useGetPayment.tsx create mode 100644 packages/frontend-react/src/lib/hooks/providers/PaymentService2/useListPayments.tsx create mode 100644 packages/frontend-react/src/lib/hooks/providers/PaymentService2/useListUserPayments.tsx create mode 100644 packages/frontend-react/src/lib/hooks/providers/PaymentService2/useReplayPaymentProcessing.tsx create mode 100644 packages/frontend-react/src/lib/hooks/providers/PinService2/useGeneratePin.tsx create mode 100644 packages/frontend-react/src/lib/hooks/providers/PinService2/useGetUserPin.tsx create mode 100644 packages/frontend-react/src/lib/hooks/providers/PinService2/useUpdatePin.tsx create mode 100644 packages/frontend-react/src/lib/hooks/providers/PinService2/useUpdateUserPin.tsx create mode 100644 packages/frontend-react/src/lib/hooks/providers/PreferenceService2/useDeleteSystemPreference.tsx create mode 100644 packages/frontend-react/src/lib/hooks/providers/PreferenceService2/useGetAllSystemPreferences.tsx create mode 100644 packages/frontend-react/src/lib/hooks/providers/PreferenceService2/useGetSystemPreference.tsx create mode 100644 packages/frontend-react/src/lib/hooks/providers/PreferenceService2/useListSystemPreferences.tsx create mode 100644 packages/frontend-react/src/lib/hooks/providers/PreferenceService2/usePutSystemPreference.tsx create mode 100644 packages/frontend-react/src/lib/hooks/providers/PreferenceService2/usePutSystemPreferencePrivileges.tsx create mode 100644 packages/frontend-react/src/lib/hooks/providers/PreferenceService2/useSystemPreference.tsx create mode 100644 packages/frontend-react/src/lib/hooks/providers/PreferenceService2/useUpdateSystemPreference.tsx create mode 100644 packages/frontend-react/src/lib/hooks/providers/PreferenceService2/useUpdateSystemPreferenceEnabled.tsx create mode 100644 packages/frontend-react/src/lib/hooks/providers/PrivilegeService2/useCreatePrivilege.tsx create mode 100644 packages/frontend-react/src/lib/hooks/providers/PrivilegeService2/useDeletePrivilege.tsx create mode 100644 packages/frontend-react/src/lib/hooks/providers/PrivilegeService2/useGetAllPrivileges.tsx create mode 100644 packages/frontend-react/src/lib/hooks/providers/PrivilegeService2/useGetAllSystemPermissions.tsx create mode 100644 packages/frontend-react/src/lib/hooks/providers/PrivilegeService2/useGetPrivilege.tsx create mode 100644 packages/frontend-react/src/lib/hooks/providers/PrivilegeService2/useGetUserPrivileges.tsx create mode 100644 packages/frontend-react/src/lib/hooks/providers/PrivilegeService2/usePutKeyPrivileges.tsx create mode 100644 packages/frontend-react/src/lib/hooks/providers/PrivilegeService2/usePutMembershipPrivileges.tsx create mode 100644 packages/frontend-react/src/lib/hooks/providers/PrivilegeService2/usePutUserPrivileges.tsx create mode 100644 packages/frontend-react/src/lib/hooks/providers/PrivilegeService2/useUpdatePrivilegeDescription.tsx create mode 100644 packages/frontend-react/src/lib/hooks/providers/PrivilegeService2/useUpdatePrivilegeEnabled.tsx create mode 100644 packages/frontend-react/src/lib/hooks/providers/PrivilegeService2/useUpdatePrivilegeIcon.tsx create mode 100644 packages/frontend-react/src/lib/hooks/providers/PrivilegeService2/useUpdatePrivilegeName.tsx create mode 100644 packages/frontend-react/src/lib/hooks/providers/StripeEventService2/useCountRecords.tsx create mode 100644 packages/frontend-react/src/lib/hooks/providers/StripeEventService2/useGet.tsx create mode 100644 packages/frontend-react/src/lib/hooks/providers/StripeEventService2/useGetAll.tsx create mode 100644 packages/frontend-react/src/lib/hooks/providers/StripeEventService2/useListRecords.tsx create mode 100644 packages/frontend-react/src/lib/hooks/providers/UserService2/useCountUsers.tsx create mode 100644 packages/frontend-react/src/lib/hooks/providers/UserService2/useCreate.tsx create mode 100644 packages/frontend-react/src/lib/hooks/providers/UserService2/useGetGrantUserPrivileges.tsx create mode 100644 packages/frontend-react/src/lib/hooks/providers/UserService2/useGetStanding.tsx create mode 100644 packages/frontend-react/src/lib/hooks/providers/UserService2/useGetStatuses.tsx create mode 100644 packages/frontend-react/src/lib/hooks/providers/UserService2/useGetUser.tsx create mode 100644 packages/frontend-react/src/lib/hooks/providers/UserService2/useGetUsers.tsx create mode 100644 packages/frontend-react/src/lib/hooks/providers/UserService2/useGrantPrivilege.tsx create mode 100644 packages/frontend-react/src/lib/hooks/providers/UserService2/useListUsers.tsx create mode 100644 packages/frontend-react/src/lib/hooks/providers/UserService2/useRegister.tsx create mode 100644 packages/frontend-react/src/lib/hooks/providers/UserService2/useRequestPasswordReset.tsx create mode 100644 packages/frontend-react/src/lib/hooks/providers/UserService2/useRequestSlackInvite.tsx create mode 100644 packages/frontend-react/src/lib/hooks/providers/UserService2/useResetPassword.tsx create mode 100644 packages/frontend-react/src/lib/hooks/providers/UserService2/useRevokePrivilege.tsx create mode 100644 packages/frontend-react/src/lib/hooks/providers/UserService2/useUpdateCash.tsx create mode 100644 packages/frontend-react/src/lib/hooks/providers/UserService2/useUpdateEmail.tsx create mode 100644 packages/frontend-react/src/lib/hooks/providers/UserService2/useUpdateExpiry.tsx create mode 100644 packages/frontend-react/src/lib/hooks/providers/UserService2/useUpdateMembership.tsx create mode 100644 packages/frontend-react/src/lib/hooks/providers/UserService2/useUpdateName.tsx create mode 100644 packages/frontend-react/src/lib/hooks/providers/UserService2/useUpdateNewsletter.tsx create mode 100644 packages/frontend-react/src/lib/hooks/providers/UserService2/useUpdatePassword.tsx create mode 100644 packages/frontend-react/src/lib/hooks/providers/UserService2/useUpdatePaymentEmail.tsx create mode 100644 packages/frontend-react/src/lib/hooks/providers/UserService2/useUpdateStatus.tsx create mode 100644 packages/frontend-react/src/lib/hooks/providers/UserService2/useUpdateStripeEmail.tsx create mode 100644 packages/frontend-react/src/lib/hooks/providers/UserService2/useUpdateUsername.tsx create mode 100644 packages/frontend-react/src/lib/hooks/providers/WebHookService2/useCountHooks.tsx create mode 100644 packages/frontend-react/src/lib/hooks/providers/WebHookService2/useCountUserHooks.tsx create mode 100644 packages/frontend-react/src/lib/hooks/providers/WebHookService2/useCreateHook.tsx create mode 100644 packages/frontend-react/src/lib/hooks/providers/WebHookService2/useDeleteHook.tsx create mode 100644 packages/frontend-react/src/lib/hooks/providers/WebHookService2/useEnableHook.tsx create mode 100644 packages/frontend-react/src/lib/hooks/providers/WebHookService2/useGetHook.tsx create mode 100644 packages/frontend-react/src/lib/hooks/providers/WebHookService2/useListHooks.tsx create mode 100644 packages/frontend-react/src/lib/hooks/providers/WebHookService2/useListUserHooks.tsx create mode 100644 packages/frontend-react/src/lib/hooks/providers/WebHookService2/usePutHookPrivileges.tsx create mode 100644 packages/frontend-react/src/lib/hooks/providers/WebHookService2/useUpdateHook.tsx create mode 100644 packages/frontend-react/src/lib/hooks/useAuth.tsx create mode 100644 packages/frontend-react/src/lib/hooks/useClickOutside.tsx create mode 100644 packages/frontend-react/src/lib/hooks/useFormDirty.tsx create mode 100644 packages/frontend-react/src/lib/hooks/useFormErrors.tsx create mode 100644 packages/frontend-react/src/lib/hooks/useInterval.tsx create mode 100644 packages/frontend-react/src/lib/hooks/usePrivilegeCodesReducer.tsx create mode 100644 packages/frontend-react/src/lib/hooks/useSelectorReducer.tsx create mode 100644 packages/frontend-react/src/lib/mocking/data.ts create mode 100644 packages/frontend-react/src/lib/mocking/functions.ts create mode 100644 packages/frontend-react/src/lib/mocking/handlers.ts create mode 100644 packages/frontend-react/src/lib/nomos.ts create mode 100644 packages/frontend-react/src/lib/providers/ApiKeyService2.ts create mode 100644 packages/frontend-react/src/lib/providers/AuthService2.ts create mode 100644 packages/frontend-react/src/lib/providers/CurrentUser2.ts create mode 100644 packages/frontend-react/src/lib/providers/EmailService2.ts create mode 100644 packages/frontend-react/src/lib/providers/EventService2.ts create mode 100644 packages/frontend-react/src/lib/providers/IpnService2.ts create mode 100644 packages/frontend-react/src/lib/providers/MemberCardService2.ts create mode 100644 packages/frontend-react/src/lib/providers/MembershipService2.ts create mode 100644 packages/frontend-react/src/lib/providers/MetricService2.ts create mode 100644 packages/frontend-react/src/lib/providers/PaymentService2.ts create mode 100644 packages/frontend-react/src/lib/providers/PinService2.ts create mode 100644 packages/frontend-react/src/lib/providers/PreferenceService2.ts create mode 100644 packages/frontend-react/src/lib/providers/PrivilegeService2.ts create mode 100644 packages/frontend-react/src/lib/providers/StripeEventService2.ts create mode 100644 packages/frontend-react/src/lib/providers/SystemPreferenceService2.ts create mode 100644 packages/frontend-react/src/lib/providers/UserService2.ts create mode 100644 packages/frontend-react/src/lib/providers/WebHookService2.ts create mode 100644 packages/frontend-react/src/lib/ui/common.tsx create mode 100644 packages/frontend-react/src/lib/ui/fontawesome/common.ts create mode 100644 packages/frontend-react/src/lib/ui/fontawesome/index.ts create mode 100644 packages/frontend-react/src/lib/ui/index.ts create mode 100644 packages/frontend-react/src/lib/util.ts create mode 100644 packages/frontend-react/src/lib/validators/common.ts create mode 100644 packages/frontend-react/src/lib/validators/custom.ts create mode 100644 packages/frontend-react/src/lib/validators/guards.ts create mode 100644 packages/frontend-react/src/lib/validators/query-filters.ts create mode 100644 packages/frontend-react/src/lib/validators/records.ts create mode 100644 packages/frontend-react/src/main.css create mode 100644 packages/frontend-react/src/main.tsx create mode 100644 packages/frontend-react/src/router.tsx create mode 100644 packages/frontend-react/src/routes/__root.tsx create mode 100644 packages/frontend-react/src/routes/_admin.tsx create mode 100644 packages/frontend-react/src/routes/_admin/admin.accesslogs.tsx create mode 100644 packages/frontend-react/src/routes/_admin/admin.apikeys.tsx create mode 100644 packages/frontend-react/src/routes/_admin/admin.dashboard.tsx create mode 100644 packages/frontend-react/src/routes/_admin/admin.databasebackup.tsx create mode 100644 packages/frontend-react/src/routes/_admin/admin.email.tsx create mode 100644 packages/frontend-react/src/routes/_admin/admin.emailtemplates.tsx create mode 100644 packages/frontend-react/src/routes/_admin/admin.events.tsx create mode 100644 packages/frontend-react/src/routes/_admin/admin.index.tsx create mode 100644 packages/frontend-react/src/routes/_admin/admin.ipnrecords.tsx create mode 100644 packages/frontend-react/src/routes/_admin/admin.logs.tsx create mode 100644 packages/frontend-react/src/routes/_admin/admin.membercards.tsx create mode 100644 packages/frontend-react/src/routes/_admin/admin.memberships.$membershipId.tsx create mode 100644 packages/frontend-react/src/routes/_admin/admin.memberships.tsx create mode 100644 packages/frontend-react/src/routes/_admin/admin.newsletter.tsx create mode 100644 packages/frontend-react/src/routes/_admin/admin.oauth.tsx create mode 100644 packages/frontend-react/src/routes/_admin/admin.paymentgateways.tsx create mode 100644 packages/frontend-react/src/routes/_admin/admin.payments.tsx create mode 100644 packages/frontend-react/src/routes/_admin/admin.privileges.tsx create mode 100644 packages/frontend-react/src/routes/_admin/admin.reports.tsx create mode 100644 packages/frontend-react/src/routes/_admin/admin.siteconfiguration.tsx create mode 100644 packages/frontend-react/src/routes/_admin/admin.striperecords.tsx create mode 100644 packages/frontend-react/src/routes/_admin/admin.systemkeys.help.tsx create mode 100644 packages/frontend-react/src/routes/_admin/admin.systemkeys.tsx create mode 100644 packages/frontend-react/src/routes/_admin/admin.systemkeys.usage.tsx create mode 100644 packages/frontend-react/src/routes/_admin/admin.systempreferences.tsx create mode 100644 packages/frontend-react/src/routes/_admin/admin.transactions.tsx create mode 100644 packages/frontend-react/src/routes/_admin/admin.users.$userId.tsx create mode 100644 packages/frontend-react/src/routes/_admin/admin.users.new.tsx create mode 100644 packages/frontend-react/src/routes/_admin/admin.users.tsx create mode 100644 packages/frontend-react/src/routes/_admin/admin.webhooks.tsx create mode 100644 packages/frontend-react/src/routes/_admin/backup.tsx create mode 100644 packages/frontend-react/src/routes/_admin/config.tsx create mode 100644 packages/frontend-react/src/routes/_admin/events.tsx create mode 100644 packages/frontend-react/src/routes/_admin/logs.tsx create mode 100644 packages/frontend-react/src/routes/_admin/oauth.tsx create mode 100644 packages/frontend-react/src/routes/_public.tsx create mode 100644 packages/frontend-react/src/routes/_public/login.tsx create mode 100644 packages/frontend-react/src/routes/_public/recovery.reset.$token.tsx create mode 100644 packages/frontend-react/src/routes/_public/recovery.tsx create mode 100644 packages/frontend-react/src/routes/_public/register.tsx create mode 100644 packages/frontend-react/src/routes/_user.tsx create mode 100644 packages/frontend-react/src/routes/_user/apikeys.$keyId.tsx create mode 100644 packages/frontend-react/src/routes/_user/apikeys.help.tsx create mode 100644 packages/frontend-react/src/routes/_user/apikeys.tsx create mode 100644 packages/frontend-react/src/routes/_user/apikeys.usage.tsx create mode 100644 packages/frontend-react/src/routes/_user/dashboard.tsx create mode 100644 packages/frontend-react/src/routes/_user/dooraccess.tsx create mode 100644 packages/frontend-react/src/routes/_user/getinvolved.tsx create mode 100644 packages/frontend-react/src/routes/_user/grants.tsx create mode 100644 packages/frontend-react/src/routes/_user/index.tsx create mode 100644 packages/frontend-react/src/routes/_user/logout.tsx create mode 100644 packages/frontend-react/src/routes/_user/membership.tsx create mode 100644 packages/frontend-react/src/routes/_user/profile.tsx create mode 100644 packages/frontend-react/src/routes/_user/purchase.tsx create mode 100644 packages/frontend-react/src/routes/_user/settings.tsx create mode 100644 packages/frontend-react/src/routes/_user/transactions.tsx create mode 100644 packages/frontend-react/src/routes/_user/user.accesslogs.tsx create mode 100644 packages/frontend-react/src/routes/_user/vhsopen.tsx create mode 100644 packages/frontend-react/src/routes/_user/webhooks.tsx create mode 100644 packages/frontend-react/src/types/api.ts create mode 100644 packages/frontend-react/src/types/common.ts create mode 100644 packages/frontend-react/src/types/custom.ts create mode 100644 packages/frontend-react/src/types/db.ts create mode 100644 packages/frontend-react/src/types/fontawesome/common.ts create mode 100644 packages/frontend-react/src/types/fontawesome/index.ts create mode 100644 packages/frontend-react/src/types/providers/IApiKeyService2.ts create mode 100644 packages/frontend-react/src/types/providers/IAuthService2.ts create mode 100644 packages/frontend-react/src/types/providers/IEmailService2.ts create mode 100644 packages/frontend-react/src/types/providers/IEventService2.ts create mode 100644 packages/frontend-react/src/types/providers/IIpnService2.ts create mode 100644 packages/frontend-react/src/types/providers/IKeyService2.ts create mode 100644 packages/frontend-react/src/types/providers/IMemberCardService2.ts create mode 100644 packages/frontend-react/src/types/providers/IMembershipService2.ts create mode 100644 packages/frontend-react/src/types/providers/IMetricService2.ts create mode 100644 packages/frontend-react/src/types/providers/IPaymentService2.ts create mode 100644 packages/frontend-react/src/types/providers/IPinService2.ts create mode 100644 packages/frontend-react/src/types/providers/IPreferenceService2.ts create mode 100644 packages/frontend-react/src/types/providers/IPrivilegeService2.ts create mode 100644 packages/frontend-react/src/types/providers/IStripeEventService2.ts create mode 100644 packages/frontend-react/src/types/providers/ISystemPreferenceService2.ts create mode 100644 packages/frontend-react/src/types/providers/IUserService2.ts create mode 100644 packages/frontend-react/src/types/providers/IWebHookService2.ts create mode 100644 packages/frontend-react/src/types/query-filters.ts create mode 100644 packages/frontend-react/src/types/records.ts create mode 100644 packages/frontend-react/src/types/ui.ts create mode 100644 packages/frontend-react/src/types/utils.ts create mode 100644 packages/frontend-react/src/vite-env.d.ts create mode 100644 packages/frontend-react/stylelint.config.mjs create mode 100644 packages/frontend-react/tailwind.config.js create mode 100644 packages/frontend-react/tsconfig.eslint.json create mode 100644 packages/frontend-react/tsconfig.json create mode 100644 packages/frontend-react/tsconfig.node.json create mode 100644 packages/frontend-react/vite.config.ts diff --git a/packages/frontend-react/.editorconfig b/packages/frontend-react/.editorconfig new file mode 100644 index 00000000..8ae4323a --- /dev/null +++ b/packages/frontend-react/.editorconfig @@ -0,0 +1,9 @@ +[*] +indent_style=space +indent_size=4 +end_of_line=lf +charset=utf-8 +trim_trailing_whitespace=true +insert_final_newline=true +max_line_width=120 +print_width=120 diff --git a/packages/frontend-react/.gitignore b/packages/frontend-react/.gitignore new file mode 100644 index 00000000..7dd817e3 --- /dev/null +++ b/packages/frontend-react/.gitignore @@ -0,0 +1,45 @@ +* +!.gitignore + +!.storybook/ +!.storybook/main.ts +!.storybook/preview.tsx + +!docs/ +!docs/*.md + +!public/ +!public/**/ +!public/**/* +public/assets/fa/ + +!src/ +!src/**/ +!src/**/*.css +!src/**/*.ts +!src/**/*.tsx +src/routeTree.gen.ts +src/lib/ui/fontawesome/generated.ts +src/routes/_public/fafo.tsx +src/routes/test.tsx +src/types/fontawesome/generated.ts +src/types/nomos.d.ts + +!.editorconfig +!.prettierignore +!eslint.config.mjs +!generate-react-cli.json +!postcss.config.js +!prettier.config.mjs +!stylelint.config.mjs +!tailwind.config.js +!tsconfig.*.json +!tsconfig.json +!vite.config.ts + +!index.html + +!package.json +!pnpm-lock.yaml + +!README.md diff --git a/packages/frontend-react/.prettierignore b/packages/frontend-react/.prettierignore new file mode 100644 index 00000000..f2ffa9b7 --- /dev/null +++ b/packages/frontend-react/.prettierignore @@ -0,0 +1,2 @@ +pnpm-lock.yaml +src/routeTree.gen.ts diff --git a/packages/frontend-react/.storybook/main.ts b/packages/frontend-react/.storybook/main.ts new file mode 100644 index 00000000..30d1d000 --- /dev/null +++ b/packages/frontend-react/.storybook/main.ts @@ -0,0 +1,60 @@ +import { readFileSync } from 'fs' + +import { mergeConfig } from 'vite' +import tsconfigPaths from 'vite-tsconfig-paths' + +import type { StorybookConfig } from '@storybook/react-vite' + +const includeDirs = [ + '01-atoms', + '02-molecules', + '03-particles', + '04-composites', + '05-materials', + '06-layouts', + '07-pages', + '08-app', + '09-providers', + '10-styles', + '20-buttons', + '20-lib', + '20-services', + '20-shared', + '20-types' +] + +const stories = [ + '../src/**/*.mdx', + ...includeDirs.map((includeDir) => `../src/components/${includeDir}/**/*.stories.@(js|jsx|mjs|ts|tsx)`) +] + +const config: StorybookConfig = { + stories, + + addons: ['@storybook/addon-links', '@storybook/addon-essentials', '@storybook/addon-interactions'], + + framework: { + name: '@storybook/react-vite', + options: {} + }, + + docs: {}, + + core: { + disableTelemetry: true + }, + + staticDirs: ['../public'], + + typescript: { + reactDocgen: 'react-docgen-typescript' + }, + + viteFinal(config) { + return mergeConfig(config, { + plugins: [tsconfigPaths()] + }) + } +} + +export default config diff --git a/packages/frontend-react/.storybook/preview.tsx b/packages/frontend-react/.storybook/preview.tsx new file mode 100644 index 00000000..78b0c843 --- /dev/null +++ b/packages/frontend-react/.storybook/preview.tsx @@ -0,0 +1,38 @@ +import React from 'react' + +import { RouterProvider, createMemoryHistory, createRootRoute, createRouter } from '@tanstack/react-router' +import { initialize, mswLoader } from 'msw-storybook-addon' + +import type { Preview } from '@storybook/react' + +import '../src/main.css' + +initialize() + +const preview: Preview = { + loaders: [mswLoader], + parameters: { + controls: { + matchers: { + color: /(background|color)$/i, + date: /Date$/ + } + } + }, + decorators: [ + (Story) => { + return ( + + ) + } + ] +} + +export default preview diff --git a/packages/frontend-react/README.md b/packages/frontend-react/README.md new file mode 100644 index 00000000..8f372f62 --- /dev/null +++ b/packages/frontend-react/README.md @@ -0,0 +1,20 @@ +# NOMOS React Frontend + +This project aims to provide a replacement frontend for the [NOMOS membership operations system](https://github.com/vhs/nomos). + +## Development + +Amongst others, this project uses the following technologies: + +- FontAwesome +- HeroIcons +- React +- React Toastify +- SWR +- Tailwind +- Tanstack (React) Router +- Typescript +- Vite +- Zod + +For more information, see the [Development Guide](./docs/Development.md) diff --git a/packages/frontend-react/docs/Development.md b/packages/frontend-react/docs/Development.md new file mode 100644 index 00000000..5b8253cf --- /dev/null +++ b/packages/frontend-react/docs/Development.md @@ -0,0 +1,63 @@ +# Development + +## Components + +This project uses a variant of the "Atomic React" pattern to organize its components. In short, Atomic React breaks up components into different types(/folders) based on re-use and complexity.
+I.e. an _atom_ is a component of bare function where as a molecule in increasingly complex, and so on. + +This project divides components based on complexity and the inclusion of other components and their respective complexity levels.
+I.e. a simple component that includes an _Atom_ or other components will always at least be a Molecule. + +This project uses the following levels to achieve this: + +- _Atoms_ are re-usable, simple one-off components +- _Molecules_ are fundamental building blocks +- _Particles_ offer more functionality +- _Composites_ are re-usable (template) components +- _Materials_ are fully re-usable complex modules/components + +In addition to the "basic" components above, this project separates the following types of components: + +- _Layouts_ +- _Pages_ + - _Admin_ + - _Common_ + - _User_ +- _App_ +- _Providers_ +- _Templates_ + +Furthermore, all components use a numbered naming convention to enforce consistent directory ordering: + +- `src/components/00-components` +- `src/components/01-atoms` +- `src/components/02-molecules` +- `src/components/03-particles` +- `src/components/04-composites` +- `src/components/05-materials` +- `src/components/06-layouts` +- `src/components/07-pages` +- `src/components/08-app` +- `src/components/09-providers` +- `src/components/99-templates` + +Barring templates, every type of component can be scaffolded by using the `pnpm create:_type_` command.
+E.g. `pnpm create:atom Logo` will create a template component by the name of `Logo` in `src/components/01-atoms/Logo`. + +The basic page/route workflow consists of a `route` file (that extends a particular `layout`) which calls a `page` that includes all the relevant components. + +## Source Code Organization + +The sources are organized in the following folders: + +- `src/components` is where all components live +- `src/lib` is where all other non-component code lives +- `src/routes` is where all routing files are kept +- `src/types` is where all supportive Typescript typing files reside + +Additionally, the following files are relevant: + +- `index.html` is the primary entry point for the application +- `src/main.tsx` is the primary JSX entrypoint +- `src/main.css` is the main CSS definitions file +- `src/router.tsx` provides routing scaffolding diff --git a/packages/frontend-react/eslint.config.mjs b/packages/frontend-react/eslint.config.mjs new file mode 100644 index 00000000..f78f599e --- /dev/null +++ b/packages/frontend-react/eslint.config.mjs @@ -0,0 +1,84 @@ +import pluginRouter from '@tanstack/eslint-plugin-router' +import cjs from '@tyisi/config-eslint/cjs' +import js from '@tyisi/config-eslint/js' +import mjs from '@tyisi/config-eslint/mjs' +import ts from '@tyisi/config-eslint/ts' +import tsx from '@tyisi/config-eslint/tsx' +import pluginReactHooks from 'eslint-plugin-react-hooks' +import pluginReactRefresh from 'eslint-plugin-react-refresh' +import pluginStorybook from 'eslint-plugin-storybook' +import unusedImports from 'eslint-plugin-unused-imports' +import globals from 'globals' + +// import jestPlugin from 'eslint-plugin-jest' + +// import { inspect } from 'node:util' + +function hoistConfig(config, withReact) { + withReact ??= false + + config[0].languageOptions.parserOptions = { + ecmaVersion: 'latest', + sourceType: 'module', + project: ['./tsconfig.eslint.json', './tsconfig.node.json'], + tsconfigRootDir: process.cwd(), + ecmaFeatures: { + jsx: withReact + } + } + + if (withReact) config[0].languageOptions.globals = { ...config[0].languageOptions.globals, ...globals.browser } + + config[0].languageOptions.globals.describe = false + config[0].languageOptions.globals.it = false + + config[0].languageOptions.globals.Highcharts = false + + config[0].languageOptions.globals.top = false + + if (withReact) config[0].plugins['react-hooks'] = pluginReactHooks + if (withReact) config[0].plugins['react-refresh'] = pluginReactRefresh + if (withReact) config[0].plugins['@tanstack/router'] = pluginRouter + + if (withReact) config[0].rules['react-refresh/only-export-components'] = ['warn', { allowConstantExport: true }] + + if (withReact) + // @ts-ignore + Object.entries(pluginRouter.configs['flat/recommended'][0].rules).forEach(([k, v]) => (config[0].rules[k] = v)) + if (withReact) + Object.entries(pluginReactHooks.configs.recommended.rules).forEach(([k, v]) => (config[0].rules[k] = v)) + if (withReact) + Object.entries(pluginReactHooks.configs.recommended.rules).forEach(([k, v]) => (config[0].rules[k] = v)) + + delete config[0].rules['@typescript-eslint/no-unnecessary-condition'] + + if (withReact) { + config[0].plugins['storybook'] = pluginStorybook + + pluginStorybook.configs['flat/recommended'].forEach((storybookConfigSlice) => { + const newConfigSlice = {} + + if (storybookConfigSlice.files != null) { + newConfigSlice.files = [] + storybookConfigSlice.files.forEach((e) => newConfigSlice.files.push(e)) + } + + if (storybookConfigSlice.rules != null) { + newConfigSlice.rules = { ...config[0].rules } + Object.entries(storybookConfigSlice.rules).forEach(([k, v]) => (newConfigSlice.rules[k] = v)) + } + + config.push({ ...config[0], ...newConfigSlice }) + }) + } + + config[0].plugins['unused-imports'] = unusedImports + config[0].rules['unused-imports/no-unused-imports'] = 'warn' + + config.unshift({ ignores: ['src/routeTree.gen.ts', 'src/types/nomos.d.ts'] }) +} + +hoistConfig(ts, false) +hoistConfig(tsx, true) + +export default [...cjs, ...mjs, ...js, ...ts, ...tsx] diff --git a/packages/frontend-react/generate-react-cli.json b/packages/frontend-react/generate-react-cli.json new file mode 100644 index 00000000..92b42e6c --- /dev/null +++ b/packages/frontend-react/generate-react-cli.json @@ -0,0 +1,280 @@ +{ + "usesTypeScript": true, + "usesStyledComponents": false, + "usesCssModule": true, + "cssPreprocessor": "scss", + "testLibrary": "Testing Library", + "component": { + "default": { + "path": "src/components/01-atoms", + "withLazy": false, + "withStory": true, + "withStyle": false, + "withTest": false, + "withTypes": true, + "withUtils": true, + "customTemplates": { + "component": "src/components/99-templates/default/TemplateName.tsx", + "lazy": "src/components/99-templates/default/TemplateName.lazy.tsx", + "story": "src/components/99-templates/default/TemplateName.stories.tsx", + "style": "src/components/99-templates/default/TemplateName.module.css", + "test": "src/components/99-templates/default/TemplateName.test.tsx", + "types": "src/components/99-templates/default/TemplateName.types.ts", + "utils": "src/components/99-templates/default/TemplateName.utils.ts" + } + }, + "atom": { + "path": "src/components/01-atoms", + "withLazy": true, + "withStory": true, + "withStyle": false, + "withTest": false, + "withTypes": true, + "withUtils": true, + "customTemplates": { + "component": "src/components/99-templates/default/TemplateName.tsx", + "lazy": "src/components/99-templates/default/TemplateName.lazy.tsx", + "story": "src/components/99-templates/default/TemplateName.stories.tsx", + "style": "src/components/99-templates/default/TemplateName.module.css", + "test": "src/components/99-templates/default/TemplateName.test.tsx", + "types": "src/components/99-templates/default/TemplateName.types.ts", + "utils": "src/components/99-templates/default/TemplateName.utils.ts" + } + }, + "molecule": { + "path": "src/components/02-molecules", + "withLazy": true, + "withStory": true, + "withStyle": false, + "withTest": true, + "withTypes": true, + "withUtils": true, + "customTemplates": { + "component": "src/components/99-templates/default/TemplateName.tsx", + "lazy": "src/components/99-templates/default/TemplateName.lazy.tsx", + "story": "src/components/99-templates/default/TemplateName.stories.tsx", + "style": "src/components/99-templates/default/TemplateName.module.css", + "test": "src/components/99-templates/default/TemplateName.test.tsx", + "types": "src/components/99-templates/default/TemplateName.types.ts", + "utils": "src/components/99-templates/default/TemplateName.utils.ts" + } + }, + "particle": { + "path": "src/components/03-particles", + "withLazy": true, + "withStory": true, + "withStyle": false, + "withTest": true, + "withTypes": true, + "withUtils": true, + "customTemplates": { + "component": "src/components/99-templates/default/TemplateName.tsx", + "lazy": "src/components/99-templates/default/TemplateName.lazy.tsx", + "story": "src/components/99-templates/default/TemplateName.stories.tsx", + "style": "src/components/99-templates/default/TemplateName.module.css", + "test": "src/components/99-templates/default/TemplateName.test.tsx", + "types": "src/components/99-templates/default/TemplateName.types.ts", + "utils": "src/components/99-templates/default/TemplateName.utils.ts" + } + }, + "composite": { + "path": "src/components/04-composites", + "withLazy": true, + "withStory": true, + "withStyle": false, + "withTest": true, + "withTypes": true, + "withUtils": true, + "customTemplates": { + "component": "src/components/99-templates/default/TemplateName.tsx", + "lazy": "src/components/99-templates/default/TemplateName.lazy.tsx", + "story": "src/components/99-templates/default/TemplateName.stories.tsx", + "style": "src/components/99-templates/default/TemplateName.module.css", + "test": "src/components/99-templates/default/TemplateName.test.tsx", + "types": "src/components/99-templates/default/TemplateName.types.ts", + "utils": "src/components/99-templates/default/TemplateName.utils.ts" + } + }, + "material": { + "path": "src/components/05-materials", + "withLazy": true, + "withStory": true, + "withStyle": false, + "withTest": true, + "withTypes": true, + "withUtils": true, + "customTemplates": { + "component": "src/components/99-templates/default/TemplateName.tsx", + "lazy": "src/components/99-templates/default/TemplateName.lazy.tsx", + "story": "src/components/99-templates/default/TemplateName.stories.tsx", + "style": "src/components/99-templates/default/TemplateName.module.css", + "test": "src/components/99-templates/default/TemplateName.test.tsx", + "types": "src/components/99-templates/default/TemplateName.types.ts", + "utils": "src/components/99-templates/default/TemplateName.utils.ts" + } + }, + "layout": { + "path": "src/components/06-layouts", + "withLazy": true, + "withStory": true, + "withStyle": false, + "withTest": true, + "withTypes": true, + "withUtils": true, + "customTemplates": { + "component": "src/components/99-templates/default/TemplateName.tsx", + "lazy": "src/components/99-templates/default/TemplateName.lazy.tsx", + "story": "src/components/99-templates/default/TemplateName.stories.tsx", + "style": "src/components/99-templates/default/TemplateName.module.css", + "test": "src/components/99-templates/default/TemplateName.test.tsx", + "types": "src/components/99-templates/default/TemplateName.types.ts", + "utils": "src/components/99-templates/default/TemplateName.utils.ts" + } + }, + "page": { + "path": "src/components/07-pages", + "withLazy": true, + "withStory": true, + "withStyle": false, + "withTest": true, + "withTypes": true, + "withUtils": true, + "customTemplates": { + "component": "src/components/99-templates/default/TemplateName.tsx", + "lazy": "src/components/99-templates/default/TemplateName.lazy.tsx", + "story": "src/components/99-templates/default/TemplateName.stories.tsx", + "style": "src/components/99-templates/default/TemplateName.module.css", + "test": "src/components/99-templates/default/TemplateName.test.tsx", + "types": "src/components/99-templates/default/TemplateName.types.ts", + "utils": "src/components/99-templates/default/TemplateName.utils.ts" + } + }, + "page:admin": { + "path": "src/components/07-pages/admin", + "withLazy": true, + "withStory": true, + "withStyle": false, + "withTest": true, + "withTypes": true, + "withUtils": true, + "customDirectory": "AdminTemplateName", + "customTemplates": { + "component": "src/components/99-templates/admin-page/AdminTemplateName.tsx", + "lazy": "src/components/99-templates/admin-page/AdminTemplateName.lazy.tsx", + "story": "src/components/99-templates/admin-page/AdminTemplateName.stories.tsx", + "style": "src/components/99-templates/admin-page/AdminTemplateName.module.css", + "test": "src/components/99-templates/admin-page/AdminTemplateName.test.tsx", + "types": "src/components/99-templates/admin-page/AdminTemplateName.types.ts", + "utils": "src/components/99-templates/admin-page/AdminTemplateName.utils.ts" + } + }, + "page:admin:item": { + "path": "src/components/07-pages/admin", + "withLazy": true, + "withStory": true, + "withStyle": false, + "withTest": false, + "withTypes": true, + "withUtils": true, + "customDirectory": "AdminTemplateName/item", + "customTemplates": { + "component": "src/components/99-templates/admin-page/item/AdminTemplateNameItem.tsx", + "lazy": "src/components/99-templates/admin-page/item/AdminTemplateNameItem.lazy.tsx", + "story": "src/components/99-templates/admin-page/item/AdminTemplateNameItem.stories.tsx", + "test": "src/components/99-templates/admin-page/item/AdminTemplateNameItem.test.ts", + "types": "src/components/99-templates/admin-page/item/AdminTemplateNameItem.types.ts", + "utils": "src/components/99-templates/admin-page/item/AdminTemplateNameItem.utils.ts" + } + }, + "page:common": { + "path": "src/components/07-pages/common", + "withLazy": true, + "withStory": true, + "withStyle": false, + "withTest": true, + "withTypes": true, + "withUtils": true, + "customTemplates": { + "component": "src/components/99-templates/page/TemplateName.tsx", + "lazy": "src/components/99-templates/page/TemplateName.lazy.tsx", + "story": "src/components/99-templates/page/TemplateName.stories.tsx", + "style": "src/components/99-templates/page/TemplateName.module.css", + "test": "src/components/99-templates/page/TemplateName.test.tsx", + "types": "src/components/99-templates/page/TemplateName.types.ts", + "utils": "src/components/99-templates/page/TemplateName.utils.ts" + } + }, + "page:public": { + "path": "src/components/07-pages/public", + "withLazy": true, + "withStory": true, + "withStyle": false, + "withTest": true, + "withTypes": true, + "withUtils": true, + "customTemplates": { + "component": "src/components/99-templates/page/TemplateName.tsx", + "lazy": "src/components/99-templates/page/TemplateName.lazy.tsx", + "story": "src/components/99-templates/page/TemplateName.stories.tsx", + "style": "src/components/99-templates/page/TemplateName.module.css", + "test": "src/components/99-templates/page/TemplateName.test.tsx", + "types": "src/components/99-templates/page/TemplateName.types.ts", + "utils": "src/components/99-templates/page/TemplateName.utils.ts" + } + }, + "page:user": { + "path": "src/components/07-pages/user", + "withLazy": true, + "withStory": true, + "withStyle": false, + "withTest": true, + "withTypes": true, + "withUtils": true, + "customTemplates": { + "component": "src/components/99-templates/page/TemplateName.tsx", + "lazy": "src/components/99-templates/page/TemplateName.lazy.tsx", + "story": "src/components/99-templates/page/TemplateName.stories.tsx", + "style": "src/components/99-templates/page/TemplateName.module.css", + "test": "src/components/99-templates/page/TemplateName.test.tsx", + "types": "src/components/99-templates/page/TemplateName.types.ts", + "utils": "src/components/99-templates/page/TemplateName.utils.ts" + } + }, + "app": { + "path": "src/components/08-app", + "withLazy": true, + "withStory": true, + "withStyle": false, + "withTest": true, + "withTypes": true, + "withUtils": true, + "customTemplates": { + "component": "src/components/99-templates/default/TemplateName.tsx", + "lazy": "src/components/99-templates/default/TemplateName.lazy.tsx", + "story": "src/components/99-templates/default/TemplateName.stories.tsx", + "style": "src/components/99-templates/default/TemplateName.module.css", + "test": "src/components/99-templates/default/TemplateName.test.tsx", + "types": "src/components/99-templates/default/TemplateName.types.ts", + "utils": "src/components/99-templates/default/TemplateName.utils.ts" + } + }, + "provider": { + "path": "src/components/09-providers", + "withLazy": true, + "withStory": true, + "withStyle": false, + "withTest": true, + "withTypes": true, + "withUtils": true, + "customTemplates": { + "component": "src/components/99-templates/default/TemplateName.tsx", + "lazy": "src/components/99-templates/default/TemplateName.lazy.tsx", + "story": "src/components/99-templates/default/TemplateName.stories.tsx", + "style": "src/components/99-templates/default/TemplateName.module.css", + "test": "src/components/99-templates/default/TemplateName.test.tsx", + "types": "src/components/99-templates/default/TemplateName.types.ts", + "utils": "src/components/99-templates/default/TemplateName.utils.ts" + } + } + } +} diff --git a/packages/frontend-react/index.html b/packages/frontend-react/index.html new file mode 100644 index 00000000..5f6be6db --- /dev/null +++ b/packages/frontend-react/index.html @@ -0,0 +1,17 @@ + + + + + + + NOMOS + + + + + + +
+ + + diff --git a/packages/frontend-react/package.json b/packages/frontend-react/package.json new file mode 100644 index 00000000..8c5249d4 --- /dev/null +++ b/packages/frontend-react/package.json @@ -0,0 +1,130 @@ +{ + "name": "@vhs/nomos-frontend-react", + "private": true, + "version": "0.0.0", + "type": "module", + "dependencies": { + "@heroicons/react": "2.2.0", + "@tanstack/react-router": "1.100.0", + "anderm-react-timeago": "4.4.2", + "chart.js": "4.4.7", + "clsx": "2.1.1", + "crypto-js": "4.2.0", + "javascript-color-gradient": "2.5.0", + "just-install": "2.0.2", + "moment": "2.30.1", + "react": "18.3.1", + "react-chartjs-2": "5.3.0", + "react-dom": "18.3.1", + "react-gravatar": "2.6.3", + "react-spinners": "0.15.0", + "react-toastify": "11.0.3", + "swr": "2.3.2", + "wireit": "0.14.11", + "zod": "3.24.1" + }, + "devDependencies": { + "@storybook/addon-docs": "8.4.7", + "@storybook/addon-essentials": "8.4.7", + "@storybook/addon-interactions": "8.4.7", + "@storybook/addon-links": "8.4.7", + "@storybook/blocks": "8.4.7", + "@storybook/react": "8.4.7", + "@storybook/react-vite": "8.4.7", + "@storybook/test": "8.4.7", + "@tanstack/eslint-plugin-router": "1.99.3", + "@tanstack/router-devtools": "1.100.0", + "@tanstack/router-plugin": "1.100.0", + "@testing-library/jest-dom": "6.6.3", + "@testing-library/react": "16.2.0", + "@testing-library/user-event": "14.6.1", + "@tyisi/config-eslint": "4.0.0", + "@tyisi/config-prettier": "1.0.1", + "@tyisi/config-stylelint": "1.1.0", + "@types/crypto-js": "4.2.2", + "@types/javascript-color-gradient": "2.4.2", + "@types/jest": "29.5.14", + "@types/node": "22.13.1", + "@types/react": "19.0.8", + "@types/react-dom": "19.0.3", + "@types/react-gravatar": "2.6.14", + "@vitejs/plugin-basic-ssl": "1.2.0", + "@vitejs/plugin-react-swc": "3.7.2", + "autoprefixer": "^10.4.20", + "eslint": "9.20.0", + "eslint-plugin-jest": "28.9.0", + "eslint-plugin-react-hooks": "5.1.0", + "eslint-plugin-react-refresh": "0.4.18", + "eslint-plugin-storybook": "0.11.2", + "eslint-plugin-unused-imports": "^4.1.4", + "generate-react-cli": "8.4.9", + "globals": "15.14.0", + "husky": "9.1.7", + "jest": "29.7.0", + "msw": "2.7.0", + "msw-storybook-addon": "2.0.4", + "postcss": "8.5.1", + "postcss-import": "^16.1.0", + "prettier": "3.4.2", + "prettier-plugin-tailwindcss": "^0.6.11", + "sass": "1.84.0", + "storybook": "8.4.7", + "stylelint": "16.14.1", + "tailwindcss": "3.4.17", + "typescript": "5.7.3", + "vite": "6.1.0", + "vite-tsconfig-paths": "5.1.4" + }, + "scripts": { + "dev": "vite", + "dev:lan": "vite --host", + "build": "wireit", + "build:storybook": "wireit", + "lint": "wireit", + "preview": "vite preview", + "create:atom": "generate-react c --type=atom", + "create:composite": "generate-react c --type=composite", + "create:layout": "generate-react c --type=layout", + "create:material": "generate-react c --type=material", + "create:molecule": "generate-react c --type=molecule", + "create:page": "generate-react c --type=page", + "create:page:admin": "generate-react c --type=page:admin", + "create:page:admin:item": "generate-react c --type=page:admin:item", + "create:page:common": "generate-react c --type=page:common", + "create:page:public": "generate-react c --type=page:public", + "create:page:user": "generate-react c --type=page:user", + "create:particle": "generate-react c --type=particle", + "create:provider": "generate-react c --type=provider", + "storybook": "wireit", + "type-check": "wireit" + }, + "wireit": { + "build": { + "dependencies": [ + "compile" + ], + "command": "vite build" + }, + "compile": { + "command": "tsc" + }, + "lint": { + "command": "eslint . --ext ts,tsx --report-unused-disable-directives --max-warnings 0" + }, + "build:storybook": { + "command": "storybook build" + }, + "storybook": { + "command": "storybook dev -p 6006 --https --ssl-ca ./certs/ca.crt --ssl-key ./certs/localhost.key --ssl-cert ./certs/localhost.crt", + "service": true + }, + "type-check": { + "command": "tsc --noEmit" + } + }, + "msw": { + "workerDirectory": [ + "public" + ] + } +} diff --git a/packages/frontend-react/postcss.config.js b/packages/frontend-react/postcss.config.js new file mode 100644 index 00000000..801a9de0 --- /dev/null +++ b/packages/frontend-react/postcss.config.js @@ -0,0 +1,7 @@ +export default { + plugins: { + 'postcss-import': {}, + 'tailwindcss': {}, + 'autoprefixer': {} + } +} diff --git a/packages/frontend-react/prettier.config.mjs b/packages/frontend-react/prettier.config.mjs new file mode 100644 index 00000000..15e3ea33 --- /dev/null +++ b/packages/frontend-react/prettier.config.mjs @@ -0,0 +1,5 @@ +import config from '../../prettier.config.mjs' + +config.printWidth = 120 + +export default config diff --git a/packages/frontend-react/public/badges/cert_cnc_mill_lathe.svg b/packages/frontend-react/public/badges/cert_cnc_mill_lathe.svg new file mode 100644 index 00000000..f9487d69 --- /dev/null +++ b/packages/frontend-react/public/badges/cert_cnc_mill_lathe.svg @@ -0,0 +1,74 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/packages/frontend-react/public/badges/cert_laser.svg b/packages/frontend-react/public/badges/cert_laser.svg new file mode 100644 index 00000000..4c25d36d --- /dev/null +++ b/packages/frontend-react/public/badges/cert_laser.svg @@ -0,0 +1,32 @@ + + + + + + + + diff --git a/packages/frontend-react/public/badges/door_access.svg b/packages/frontend-react/public/badges/door_access.svg new file mode 100644 index 00000000..a31f701f --- /dev/null +++ b/packages/frontend-react/public/badges/door_access.svg @@ -0,0 +1,8 @@ + + + + + + + + \ No newline at end of file diff --git a/packages/frontend-react/public/badges/key_holder.svg b/packages/frontend-react/public/badges/key_holder.svg new file mode 100644 index 00000000..47767763 --- /dev/null +++ b/packages/frontend-react/public/badges/key_holder.svg @@ -0,0 +1,140 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/packages/frontend-react/public/badges/key_holder_inactive.svg b/packages/frontend-react/public/badges/key_holder_inactive.svg new file mode 100644 index 00000000..8c0bf309 --- /dev/null +++ b/packages/frontend-react/public/badges/key_holder_inactive.svg @@ -0,0 +1,54 @@ + + + + + + + + + + + + + + + + + diff --git a/packages/frontend-react/public/badges/laser.png b/packages/frontend-react/public/badges/laser.png new file mode 100644 index 0000000000000000000000000000000000000000..3e6baf4f918af25a86bbcce62ff3c2ed50c9fd51 GIT binary patch literal 28133 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 E17~MvQ~&?~ literal 0 HcmV?d00001 diff --git a/packages/frontend-react/public/badges/newsletter.svg b/packages/frontend-react/public/badges/newsletter.svg new file mode 100644 index 00000000..6f2a51b1 --- /dev/null +++ b/packages/frontend-react/public/badges/newsletter.svg @@ -0,0 +1,28 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/packages/frontend-react/public/favicon.ico b/packages/frontend-react/public/favicon.ico new file mode 100644 index 0000000000000000000000000000000000000000..a11777cc471a4344702741ab1c8a588998b1311a GIT binary patch literal 3870 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 baj7?x%VD!5Cxk2YbYLNVeiXvvpMCWYo=by@ literal 0 HcmV?d00001 diff --git a/packages/frontend-react/public/images/logo.png b/packages/frontend-react/public/images/logo.png new file mode 100644 index 0000000000000000000000000000000000000000..809bb93303a1f282762e9bf616869ffb4ebb334d GIT binary patch literal 4492 zcmY*d2V7IlvJbrlP--aBr3Df~@j~cQ1gV13ix5IldW|9oh=`g<5kUy$qbpSeO+czZ zkdE}G^j@VYLEs+0@4oxqJHOwa-JLT#voo{*+1>Nh-1HhVBQGNe1Y$Nc(6s<+6j0>p zX@R%F8oC3hD1t1mT?JM2@vi|L27d$FAP@*9`lnD}3N=Fk23xP2Ho-O~#z>T(56s2Q z&lL^B`1k|dAdngc2{e7s!7f4=A8+3vBt~82Zw@5T{zHa~2>s0xd{#>8Am$1e~q zqy$rh$%$w%3JD3R1-iK-Ep+w&GaTrti+BbH`y=7-u&^*#m;%f%&;yQ8QBi@*$;0L4 zWdRP^pnJZ-E*M$gAklw>{Er-6bPy`g%Rku5&sXS=To+frkYIHYkw1$5`}{M{U@!Oo z)#MxWAF}`h;eWos5imLUe`Nzh)&5YCW`SO4K=U8@8VI$&IsYH+KYG;Qf0X~9$^2vK z-&DX<4MsKif8D0RX#82i76fALG1S$*iJ{n_dVYs__yrP@gUFfN>m}XU871J5A@lk;hAEv^{dI;KIyEK0#(M7|fwx-LDa@Fcizco?)hWTBCCI zYXNWgQd~*!!LGI!c<@*J!FdAHX&<74zxOJW?6CL83HM%GkE{`6NEtt7r{QPDQkrw) zMDUOa{!-|8?(u%VCZB!=i=`RW!A9NY`|fAj0uO)xa2Ma4&tOqmOkCb=Wfhbs8CZ3A zVn?4lndEbu4qGe~RXCb5@cLxj%i-UeJ(L!0Vw0`Y{5c);+~pZ!5TT!bZ#msksUfqA z_jbz6!}A7z9(Syb<8g=JLq+GvWAwy0s=yAWtkA1yY3mx)uO3zv_{~WZr3{f&bbfdm zvi~h?hPhTNWWV=c&ehG7OdNKY$)=QaZKX?rGIgtYy_rFM6P;#)Ee5}WJ8@2!JN>Wk zYJ@nNEUe@_gzYhfN?xe^`g#62{JTv3?&m`LaBM5~;^)N3-#Cp(x}bC!yin7&+3*^?KAj%iMhMN67>_A+^v}J7kIGSGO#5RHXYF6URwTf-MbW8s{viz{Zdh%;iFr0LOr37S1^Wz|gaP6`!{2miM~h@Zf{XtUtY!61X6g-nC1qy~#!}m4bvTS*EDAJHHjub^#u4 z8WG;5xB)6wwSmospWk&N6Cy_xdi+xou9{Ed!0C! z)H(jup#+J$xQI@3{FtcgKWvQB?L&hrrED zDmF(|Ut`>gt_r$kl~fgD1gkBW0G4yNlUO|Dx$zc)>+|_{GH z%y-+lol}@QH`nPH<_1}PV9>7hv9LQIc%Ex5CS4QYk&iVzIy>3no+!I5?-X%3f;&Y( zQ`Am5rc(cfYOAzv%APdxh>6aLB)@e@%(x)P=oG&7fz1a~F|}_BBHFHBu}!@7b=#7+ zW6hm1$>=5>)_PIQIz@eBv%23m^!vRPSNb^7%5I|m{W&Uv;DMq(a-yE_Ep&?QlSj}< zoE#NJ_tY}u{C>AlNHs#^M;m*gz5#K{_Y*Tu{#8CghcPHn9azD=fQ{DRIqcN{EX9@Y zm<9I)^&?5`XblHDuw3EeEk%8w7EWu2DsL;u*b`Z00BLuthb@d=5vP{NSZAMAQ2|&w z9w>6&H#!-Hp}YDo(itzyI-60k~l%x~s4S~<`bIK_8!@)$T) zGRI>DA`ZR^=RgtZ+M|l+eBtXetuGz^fa8MB`@7xILtg4c9Rtg?+#!e$dh$!Ot=RX< zsb0)%RNL67IjhWx9&PHr9-Lq`ls?#>#PsdHo`-|m^+fIMFRzcJWX)DXctvq8jf2;r zN>e@r#{i?lMhZBIcra+x-IxbERinBwJY=Tnm|aWxBnKi&lEN)uTGKKY8FYQS`uBYZ z-$v_?m+>_1PRZnh^kj4~g5D1L6fx=$)cbji#1%d3ZxU!N^z|B0^YVMR(KpVw?E>f_(wRJ+(G(}gK0(LC%n!LD-aC=R-k z9@wd_rxhthz}PLr!LZ^>=B{1NeTT{Fr_T45UiAVA%0`?ceGctSM)OOJ;AqaSmEPKc zqZ{uB zO9)}(ZD>3Y-tpy<(hBKZe+wn#Xhc1qbsEcu!$+p5nx~>d5)0IfY>&c8DFb^Nrf*}* zTCOKQrE%v?8-wOJ|KzLmfG)&~zL4A$gD8Y@W_Nm{_rZOJPcDVpAi4mZ0}cW0oV@_J z?L|6uo!7XL`H1T?!StWwg=OwaIa93<$A>Yd$@{-vKxxM!URyieD;%!fs@teo3O_M# zSG*tpU@`O!O`aYJ!6J;L&(7$O)B~P<@c?cxyp)ptj!Tx3>D41a^3Zz+^s8Gy+N~{8*=?rkmL>!iPHr?r z2T)5^KpyubKXtH<`k5GH4GkROcOm=w1fxJ^}{xrS4^mOK-wL(lfu?S%+WtZETE)F`UehOH>< zTgX`AxD}Wne%MMgKf+4h=0WO%`cr4c@!s=RyzGUsR% zqB_ch&^15g!z1`x=xZ48>aL+M<2!AGbd^nK_ocpt&P4p2FS5A7hYT6Y!}4=<3gtmx zUbj0vUda(;>(qVk?B2dhOV;ORA;8G*Cm~5mFEq%ju3~X(bXlbMy{Su5s@KI6>7^-0 zNEl%E>#khv;fQ0{E!0pol@jt0k{=84;xp;Y`f}x0vd1k2lIl*qW#i)$ZM|kvuiP{z zpwgv!=sR59YJBG%HPu{V80*6hrJLB_d@?g*#Ds$Nqwf+ygr zHrniwxZPCS*Ye*)6nOSB<&{OHa5|c(Dc9$+UG0tmAN(2)tr+y(a&~H0vV{XVV9#o# zMYwt0ToRwMOK_!q*l9fBvYs)jFh#kgKF0U0%h>^7dLEJkoMc>{m6yvNU9pd?Y2>7S zFFkoM^u07zkc{;kP+8m1(YWsB`JnfDqQ(+BmLOT3dLwkgY3;Lfl)RVRl#p`m8F}Lg zNwRBCMdhWu%*&>Hrc&Rv!Zg#NckhQFt#Wp7YSabN8=5%MEt&$&S?W#hMqHGWf+#VB zN6$lxEexA^Q*Sk?y{oWnu?6BSL(5=-CSP;EF%Lk%9wy&e{q5oTX>X@QjssZu!n^CP z7fy{Y>_l2aAGl*bZtt!u>O*uqsklG1(DJ3^yuW>wf+OFo{4Zcf$BZu%rf+LVE97w% zL>{%$ooc1*@UTq&u6?<)sPz%#ritf|Y&u#M36zeu5O-}j9EHBLyd5;@Rm^EEzQ@K^ z3|Ap~-ms3G9%!#ts9|ocU~y>C=kvLlAsHV)8KUM(JN0FMpCc*0+K^A=-Og$x$lGdy zp9kqf#%xP)X95S#rdlAqce`|lt2X5NmR+z-shG@C@z?}5f?nX*YWc;Urs7K}SflkI z=3*sQQpYRRjDI@imkBgKPA&rQ-m~2Krb3H@^6133?5}>MzquL9DPr2+2menT{m!({re=6xfhcOsb{mh zN2aG}UbepQIX{*s{|Exsf|*O$PKn?qO@yPqUYYW?^qi1G+-05aF}eDcq#ocu8gs>I z9b%@Ou3=^4&wPdIV>E4ARk@H4gFuY+Yur9=6G1uAnI~4wDLrjQn`hK#iV7AUUC4{t zX0$|tci_rwaE*g`FVc2{3&Wr&H&vP=7% zF4FgLp;hkMcOuwI5No4(E*>5@c`NFL1YRe+K zSByfRa=yy1*+<>E{n9OPqzwH?`4Hq*_zG&;f+d(bQQUCTZdgEEKq%507hxD+dNYV=stMrt#orWCQ)^hd!0O!1VR(l4_F_a@2`RJV!lX^x>% zK8M7Om5iC!*o%~T)N>gJ{#lI%p9X~@;770CmB;e-D-o?^0#b!RZQ4%Z2}QNoYagl2p& z{p=&Y3+V(at@e1VSN4zWJ#vBh^6N^>nL#X z%PXiWjqmrcmhwxwO&(D`tPTwa-FuLd9KL603(*W1FhTdnaz~7ue#(BrBT8AYxt@qr zj!oSsgxwx*=MYF^AIp8n9TCAyawbZanHUL@u!uWICD^0uM)a_C@|W_OJW*Eun%Zg6 z1hx0XjGB>%y6i*r12spA1LMry$_{+p?C6pliW-5&jc-hVLvbABuUCflRx&%k-W}>x z)w8RrNYWxB6vLKyp}K3HalYK;b>)!)?%=N1ET}Q9^6?~#w~k?7BOg?2RzHu|$FGUS z+9m}S#9%r6?tHx@b^bQm!x(m6k)=%RNNIL6e@gWT@uPWGGnkgvG4=wAtn>m20sGP( z0k_cTma^^U*p^#}+n2@KyX}Tt9w;{BiA3p@lyl0cO6C03mM+gfzeo)AOm!=+-j4Y< D9vX#2 literal 0 HcmV?d00001 diff --git a/packages/frontend-react/public/images/provider/github.png b/packages/frontend-react/public/images/provider/github.png new file mode 100644 index 0000000000000000000000000000000000000000..16c7c368c645d90d36b5f76125d09a84ddbe1af6 GIT binary patch literal 3404 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 F{{h4o$`=3t literal 0 HcmV?d00001 diff --git a/packages/frontend-react/public/images/provider/google.png b/packages/frontend-react/public/images/provider/google.png new file mode 100644 index 0000000000000000000000000000000000000000..14e513a0ab5bf22b74c92bdba5fcbb4a6ddf8543 GIT binary patch literal 3895 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 literal 0 HcmV?d00001 diff --git a/packages/frontend-react/public/images/provider/pin.png b/packages/frontend-react/public/images/provider/pin.png new file mode 100644 index 0000000000000000000000000000000000000000..8c58b23e4af9bbe36d12a90a8c83515b32852c4c GIT binary patch literal 619 zcmV-x0+juUP)Px#1ZP1_K>z@;j|==^1poj532;bRa{vGi!vFvd!vV){sAK>D0su)wK~z{r<(EB@ z!Y~YlLq|ymB}d^96dZw);SwByl4Ec*O7;!!MI$TNB(e8rX1`)5k|n*^QWCa%{t|yf z_l(FU)cC z^Wr^Wb+g$hxn3AWX<}Yj-Fw0+ufg$nWO{)Q!hYO1tKJhb4JhX!=!N z0EU%Gg09!AQpY6+lsQA#rsHrp&=bZ7=6bzm41oW9KJRuruF5+@Sb1Idcs%GqX?oB? zsIFEkn#N+Wz+bkX9>Cl(?}cTjE%Z;z5CrS0iLgg&{aE=irbk8-Vc%n|bsd}PpCty% zXd>);%nJh3-wK0e)ChA*f!|iZ-%2L3{q+lg{Hy&KD1mU2Kf`KhrL(nlqg)7rrAIqUjYg9j5-#8m#E6j1zS?B7h{Ei z3Jh9k-C=2a=j``;`iXy1Km*~^=|n$EL(-f6s9xcsfp922d?sZy7Y15*E#atTyfcmV z!gkaEX6~nFV`2Z*3g1eaMjK%p>@d23ejvN2jd0kdk!vuRBMi{U+`G_I_}^lJu$?Cv zo@&5vH=G2RAnYGdFsu~_;~khFJe6GI$u|m@`ESC{=NApsSzL_rZ$JP5002ovPDHLk FV1lny5N-ef literal 0 HcmV?d00001 diff --git a/packages/frontend-react/public/images/provider/rfid.png b/packages/frontend-react/public/images/provider/rfid.png new file mode 100644 index 0000000000000000000000000000000000000000..71aab5c8903699dd022b50f318f5611d41f22a74 GIT binary patch literal 802 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 X#=au)jyk#@{ADxJKc`oTbh!RMrP0)$ literal 0 HcmV?d00001 diff --git a/packages/frontend-react/public/images/slack.png b/packages/frontend-react/public/images/slack.png new file mode 100644 index 0000000000000000000000000000000000000000..bd9468193b078817d0a1f627eb2c8369660b63e5 GIT binary patch literal 5071 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 X#=au)jyk#@{ADxJKc`oTbh!RMrP0)$ literal 0 HcmV?d00001 diff --git a/packages/frontend-react/public/images/under-construction90s-90s.gif b/packages/frontend-react/public/images/under-construction90s-90s.gif new file mode 100644 index 0000000000000000000000000000000000000000..ab87cfc56cd4517552494f847b29ec5c3a105a05 GIT binary patch literal 3541 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 PFz(zCUi0p4xc~q=Nb%zc literal 0 HcmV?d00001 diff --git a/packages/frontend-react/public/images/vhs-member-card-2015-2-full.png b/packages/frontend-react/public/images/vhs-member-card-2015-2-full.png new file mode 100644 index 0000000000000000000000000000000000000000..3402af8a191192c3e87d7cd6c9654e1f5e7db3e3 GIT binary patch literal 598913 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�Q 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 z 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%0AL)3^Ru(6OHnjbD})H+ID+9Y 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%0As*@ud&?GxJPO}%L}CYI&rVK#@J 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 XV*VGtb{EXC00000NkvXXu0mjfB(6Zk literal 0 HcmV?d00001 diff --git a/packages/frontend-react/public/images/vhs-member-card-2015-thumb.png b/packages/frontend-react/public/images/vhs-member-card-2015-thumb.png new file mode 100644 index 0000000000000000000000000000000000000000..25cdb4ede142c95fb8a10e07fe105225784d5fb3 GIT binary patch literal 56963 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

-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 literal 0 HcmV?d00001 diff --git a/packages/frontend-react/public/mockServiceWorker.js b/packages/frontend-react/public/mockServiceWorker.js new file mode 100644 index 00000000..ec47a9a5 --- /dev/null +++ b/packages/frontend-react/public/mockServiceWorker.js @@ -0,0 +1,307 @@ +/* eslint-disable */ +/* tslint:disable */ + +/** + * Mock Service Worker. + * @see https://github.com/mswjs/msw + * - Please do NOT modify this file. + * - Please do NOT serve this file on production. + */ + +const PACKAGE_VERSION = '2.7.0' +const INTEGRITY_CHECKSUM = '00729d72e3b82faf54ca8b9621dbb96f' +const IS_MOCKED_RESPONSE = Symbol('isMockedResponse') +const activeClientIds = new Set() + +self.addEventListener('install', function () { + self.skipWaiting() +}) + +self.addEventListener('activate', function (event) { + event.waitUntil(self.clients.claim()) +}) + +self.addEventListener('message', async function (event) { + const clientId = event.source.id + + if (!clientId || !self.clients) { + return + } + + const client = await self.clients.get(clientId) + + if (!client) { + return + } + + const allClients = await self.clients.matchAll({ + type: 'window', + }) + + switch (event.data) { + case 'KEEPALIVE_REQUEST': { + sendToClient(client, { + type: 'KEEPALIVE_RESPONSE', + }) + break + } + + case 'INTEGRITY_CHECK_REQUEST': { + sendToClient(client, { + type: 'INTEGRITY_CHECK_RESPONSE', + payload: { + packageVersion: PACKAGE_VERSION, + checksum: INTEGRITY_CHECKSUM, + }, + }) + break + } + + case 'MOCK_ACTIVATE': { + activeClientIds.add(clientId) + + sendToClient(client, { + type: 'MOCKING_ENABLED', + payload: { + client: { + id: client.id, + frameType: client.frameType, + }, + }, + }) + break + } + + case 'MOCK_DEACTIVATE': { + activeClientIds.delete(clientId) + break + } + + case 'CLIENT_CLOSED': { + activeClientIds.delete(clientId) + + const remainingClients = allClients.filter((client) => { + return client.id !== clientId + }) + + // Unregister itself when there are no more clients + if (remainingClients.length === 0) { + self.registration.unregister() + } + + break + } + } +}) + +self.addEventListener('fetch', function (event) { + const { request } = event + + // Bypass navigation requests. + if (request.mode === 'navigate') { + return + } + + // Opening the DevTools triggers the "only-if-cached" request + // that cannot be handled by the worker. Bypass such requests. + if (request.cache === 'only-if-cached' && request.mode !== 'same-origin') { + return + } + + // Bypass all requests when there are no active clients. + // Prevents the self-unregistered worked from handling requests + // after it's been deleted (still remains active until the next reload). + if (activeClientIds.size === 0) { + return + } + + // Generate unique request ID. + const requestId = crypto.randomUUID() + event.respondWith(handleRequest(event, requestId)) +}) + +async function handleRequest(event, requestId) { + const client = await resolveMainClient(event) + const response = await getResponse(event, client, requestId) + + // Send back the response clone for the "response:*" life-cycle events. + // Ensure MSW is active and ready to handle the message, otherwise + // this message will pend indefinitely. + if (client && activeClientIds.has(client.id)) { + ;(async function () { + const responseClone = response.clone() + + sendToClient( + client, + { + type: 'RESPONSE', + payload: { + requestId, + isMockedResponse: IS_MOCKED_RESPONSE in response, + type: responseClone.type, + status: responseClone.status, + statusText: responseClone.statusText, + body: responseClone.body, + headers: Object.fromEntries(responseClone.headers.entries()), + }, + }, + [responseClone.body], + ) + })() + } + + return response +} + +// Resolve the main client for the given event. +// Client that issues a request doesn't necessarily equal the client +// that registered the worker. It's with the latter the worker should +// communicate with during the response resolving phase. +async function resolveMainClient(event) { + const client = await self.clients.get(event.clientId) + + if (activeClientIds.has(event.clientId)) { + return client + } + + if (client?.frameType === 'top-level') { + return client + } + + const allClients = await self.clients.matchAll({ + type: 'window', + }) + + return allClients + .filter((client) => { + // Get only those clients that are currently visible. + return client.visibilityState === 'visible' + }) + .find((client) => { + // Find the client ID that's recorded in the + // set of clients that have registered the worker. + return activeClientIds.has(client.id) + }) +} + +async function getResponse(event, client, requestId) { + const { request } = event + + // Clone the request because it might've been already used + // (i.e. its body has been read and sent to the client). + const requestClone = request.clone() + + function passthrough() { + // Cast the request headers to a new Headers instance + // so the headers can be manipulated with. + const headers = new Headers(requestClone.headers) + + // Remove the "accept" header value that marked this request as passthrough. + // This prevents request alteration and also keeps it compliant with the + // user-defined CORS policies. + const acceptHeader = headers.get('accept') + if (acceptHeader) { + const values = acceptHeader.split(',').map((value) => value.trim()) + const filteredValues = values.filter( + (value) => value !== 'msw/passthrough', + ) + + if (filteredValues.length > 0) { + headers.set('accept', filteredValues.join(', ')) + } else { + headers.delete('accept') + } + } + + return fetch(requestClone, { headers }) + } + + // Bypass mocking when the client is not active. + if (!client) { + return passthrough() + } + + // Bypass initial page load requests (i.e. static assets). + // The absence of the immediate/parent client in the map of the active clients + // means that MSW hasn't dispatched the "MOCK_ACTIVATE" event yet + // and is not ready to handle requests. + if (!activeClientIds.has(client.id)) { + return passthrough() + } + + // Notify the client that a request has been intercepted. + const requestBuffer = await request.arrayBuffer() + const clientMessage = await sendToClient( + client, + { + type: 'REQUEST', + payload: { + id: requestId, + url: request.url, + mode: request.mode, + method: request.method, + headers: Object.fromEntries(request.headers.entries()), + cache: request.cache, + credentials: request.credentials, + destination: request.destination, + integrity: request.integrity, + redirect: request.redirect, + referrer: request.referrer, + referrerPolicy: request.referrerPolicy, + body: requestBuffer, + keepalive: request.keepalive, + }, + }, + [requestBuffer], + ) + + switch (clientMessage.type) { + case 'MOCK_RESPONSE': { + return respondWithMock(clientMessage.data) + } + + case 'PASSTHROUGH': { + return passthrough() + } + } + + return passthrough() +} + +function sendToClient(client, message, transferrables = []) { + return new Promise((resolve, reject) => { + const channel = new MessageChannel() + + channel.port1.onmessage = (event) => { + if (event.data && event.data.error) { + return reject(event.data.error) + } + + resolve(event.data) + } + + client.postMessage( + message, + [channel.port2].concat(transferrables.filter(Boolean)), + ) + }) +} + +async function respondWithMock(response) { + // Setting response status code to 0 is a no-op. + // However, when responding with a "Response.error()", the produced Response + // instance will have status code set to 0. Since it's not possible to create + // a Response instance with status code 0, handle that use-case separately. + if (response.status === 0) { + return Response.error() + } + + const mockedResponse = new Response(response.body, response) + + Reflect.defineProperty(mockedResponse, IS_MOCKED_RESPONSE, { + value: true, + enumerable: true, + }) + + return mockedResponse +} diff --git a/packages/frontend-react/public/robots.txt b/packages/frontend-react/public/robots.txt new file mode 100644 index 00000000..e9e57dc4 --- /dev/null +++ b/packages/frontend-react/public/robots.txt @@ -0,0 +1,3 @@ +# https://www.robotstxt.org/robotstxt.html +User-agent: * +Disallow: diff --git a/packages/frontend-react/src/components/01-atoms/AccountStatusBadge/AccountStatusBadge.lazy.tsx b/packages/frontend-react/src/components/01-atoms/AccountStatusBadge/AccountStatusBadge.lazy.tsx new file mode 100644 index 00000000..58b00dfe --- /dev/null +++ b/packages/frontend-react/src/components/01-atoms/AccountStatusBadge/AccountStatusBadge.lazy.tsx @@ -0,0 +1,15 @@ +import { lazy, Suspense, type JSX } from 'react' + +import type { AccountStatusBadgeProps } from './AccountStatusBadge.types' + +import LoadingOverlay from '@/components/02-molecules/LoadingOverlay/LoadingOverlay' + +const LazyAccountStatusBadge = lazy(async () => await import('./AccountStatusBadge')) + +const AccountStatusBadge = (props: JSX.IntrinsicAttributes & AccountStatusBadgeProps): JSX.Element => ( + }> + + +) + +export default AccountStatusBadge diff --git a/packages/frontend-react/src/components/01-atoms/AccountStatusBadge/AccountStatusBadge.module.css b/packages/frontend-react/src/components/01-atoms/AccountStatusBadge/AccountStatusBadge.module.css new file mode 100644 index 00000000..3cdb5f84 --- /dev/null +++ b/packages/frontend-react/src/components/01-atoms/AccountStatusBadge/AccountStatusBadge.module.css @@ -0,0 +1,11 @@ +.Icon { + @apply inline h-5 w-5; +} + +.Icon > svg { + @apply inline h-5 w-5 rounded-full p-0; +} + +.Icon > svg > * { + @apply bg-white; +} diff --git a/packages/frontend-react/src/components/01-atoms/AccountStatusBadge/AccountStatusBadge.stories.tsx b/packages/frontend-react/src/components/01-atoms/AccountStatusBadge/AccountStatusBadge.stories.tsx new file mode 100644 index 00000000..889d33ab --- /dev/null +++ b/packages/frontend-react/src/components/01-atoms/AccountStatusBadge/AccountStatusBadge.stories.tsx @@ -0,0 +1,27 @@ +import type { Meta, StoryObj } from '@storybook/react' + +import AuthenticationProvider from '@/components/09-providers/AuthenticationProvider/AuthenticationProvider' + +import AccountStatusBadge from './AccountStatusBadge' + +type StoryType = StoryObj + +const meta: Meta = { + component: AccountStatusBadge, + title: '01-Atoms/AccountStatusBadge', + decorators: [ + (Story) => ( + + + + ) + ] +} + +export default meta + +export const Default: StoryType = { + args: { + status: 'AccountStatusBadge' + } +} diff --git a/packages/frontend-react/src/components/01-atoms/AccountStatusBadge/AccountStatusBadge.tsx b/packages/frontend-react/src/components/01-atoms/AccountStatusBadge/AccountStatusBadge.tsx new file mode 100644 index 00000000..f6840585 --- /dev/null +++ b/packages/frontend-react/src/components/01-atoms/AccountStatusBadge/AccountStatusBadge.tsx @@ -0,0 +1,45 @@ +import type { FC, JSX } from 'react' + +import { + CheckCircleIcon, + ClockIcon, + NoSymbolIcon, + PauseCircleIcon, + QuestionMarkCircleIcon +} from '@heroicons/react/16/solid' + +import type { AccountStatusBadgeProps } from './AccountStatusBadge.types' + +import styles from './AccountStatusBadge.module.css' + +const BannedIcon = +const PendingIcon = +const ActiveIcon = +const InactiveIcon = +const UnknownIcon = + +const getStatusIcon = (status: string | null): JSX.Element => { + switch (status) { + case 'Active': + return ActiveIcon + case 'Banned': + return BannedIcon + case 'Inactive': + return InactiveIcon + case 'Pending': + return PendingIcon + default: + return UnknownIcon + } +} + +const AccountStatusBadge: FC = ({ status }) => { + return ( +

+
{getStatusIcon(status)}
+
 {status}
+
+ ) +} + +export default AccountStatusBadge diff --git a/packages/frontend-react/src/components/01-atoms/AccountStatusBadge/AccountStatusBadge.types.ts b/packages/frontend-react/src/components/01-atoms/AccountStatusBadge/AccountStatusBadge.types.ts new file mode 100644 index 00000000..ebe446fc --- /dev/null +++ b/packages/frontend-react/src/components/01-atoms/AccountStatusBadge/AccountStatusBadge.types.ts @@ -0,0 +1,3 @@ +export interface AccountStatusBadgeProps { + status: string | null +} diff --git a/packages/frontend-react/src/components/01-atoms/AccountStatusBadge/AccountStatusBadge.utils.ts b/packages/frontend-react/src/components/01-atoms/AccountStatusBadge/AccountStatusBadge.utils.ts new file mode 100644 index 00000000..e69de29b diff --git a/packages/frontend-react/src/components/01-atoms/AdminUserProfile/AdminUserProfile.lazy.tsx b/packages/frontend-react/src/components/01-atoms/AdminUserProfile/AdminUserProfile.lazy.tsx new file mode 100644 index 00000000..04ae1bb8 --- /dev/null +++ b/packages/frontend-react/src/components/01-atoms/AdminUserProfile/AdminUserProfile.lazy.tsx @@ -0,0 +1,15 @@ +import { lazy, Suspense, type JSX } from 'react' + +import type { AdminUserProfileProps } from './AdminUserProfile.types' + +import LoadingOverlay from '@/components/02-molecules/LoadingOverlay/LoadingOverlay' + +const LazyAdminUserProfile = lazy(async () => await import('./AdminUserProfile')) + +const AdminUserProfile = (props: JSX.IntrinsicAttributes & AdminUserProfileProps): JSX.Element => ( + }> + + +) + +export default AdminUserProfile diff --git a/packages/frontend-react/src/components/01-atoms/AdminUserProfile/AdminUserProfile.stories.tsx b/packages/frontend-react/src/components/01-atoms/AdminUserProfile/AdminUserProfile.stories.tsx new file mode 100644 index 00000000..eb7c7a87 --- /dev/null +++ b/packages/frontend-react/src/components/01-atoms/AdminUserProfile/AdminUserProfile.stories.tsx @@ -0,0 +1,27 @@ +import type { Meta, StoryObj } from '@storybook/react' + +import AuthenticationProvider from '@/components/09-providers/AuthenticationProvider/AuthenticationProvider' + +import AdminUserProfile from './AdminUserProfile' + +type StoryType = StoryObj + +const meta: Meta = { + component: AdminUserProfile, + title: '01-Atoms/AdminUserProfile', + decorators: [ + (Story) => ( + + + + ) + ] +} + +export default meta + +export const Default: StoryType = { + args: { + children: 'AdminUserProfile' + } +} diff --git a/packages/frontend-react/src/components/01-atoms/AdminUserProfile/AdminUserProfile.tsx b/packages/frontend-react/src/components/01-atoms/AdminUserProfile/AdminUserProfile.tsx new file mode 100644 index 00000000..b1d52c67 --- /dev/null +++ b/packages/frontend-react/src/components/01-atoms/AdminUserProfile/AdminUserProfile.tsx @@ -0,0 +1,113 @@ +/* eslint-disable @typescript-eslint/naming-convention */ + +import type { FC } from 'react' + +import { CheckCircleIcon } from '@heroicons/react/16/solid' +import { useRouter } from '@tanstack/react-router' +import clsx from 'clsx' +import moment from 'moment' +import useSWR from 'swr' + +import type { AdminUserProfileData, AdminUserProfileProps } from './AdminUserProfile.types' + +import ConditionalTableCell from '@/components/02-molecules/ConditionalTableCell/ConditionalTableCell' +import Loading from '@/components/02-molecules/Loading/Loading' + +import { convertUserStatus } from '@/lib/nomos' + +import type { UserActiveStates } from '@/types/common' + +import AccountStatusBadge from '../AccountStatusBadge/AccountStatusBadge' +import Button from '../Button/Button' +import FontAwesomeIcon from '../FontAwesomeIcon/FontAwesomeIcon' +import Popover from '../Popover/Popover' +import TablePageRow from '../TablePageRow/TablePageRow' + +const AdminUserProfile: FC = ({ data }) => { + const router = useRouter() + + const { data: statuses, isLoading: isStatusesLoading } = useSWR( + '/services/v2/UserService2.svc/GetStatuses' + ) + + const user: AdminUserProfileData = { + ...data, + + member_since_month: moment(data.created).format('MMMM'), + member_since_rest: moment(data.created).format('Do, YYYY'), + member_for: moment(data.created).fromNow(true), + last_login: moment(data.lastlogin).format('MMM DD, YYYY, h:mm:ss a'), + expiry: moment(data.mem_expire).fromNow(), + expiry_date_month: moment(data.mem_expire).format('MMMM'), + expiry_date_rest: moment(data.mem_expire).format('Do YYYY') + } + + if (isStatusesLoading) + return ( + + + + + + ) + + const userStatus = user.active != null ? convertUserStatus(statuses, user.active) : null + + return ( + + + + + + {user.fname} {data.lname} + + + + + + + + + + + + {user.member_since_month} {user.member_since_rest} ({user.member_for}) + + + {user.expiry_date_month} {user.expiry_date_rest} ({user.expiry}) + + + {user.privileges != null && + Object.values(user.privileges) + .map((p) => p.code) + .join(', ')} + + + {user.lastlogin != null ? user.lastlogin.toLocaleString() : null} + + +
+ +
+ +
+ ) +} + +export default AdminUserProfile diff --git a/packages/frontend-react/src/components/01-atoms/AdminUserProfile/AdminUserProfile.types.ts b/packages/frontend-react/src/components/01-atoms/AdminUserProfile/AdminUserProfile.types.ts new file mode 100644 index 00000000..baabc80a --- /dev/null +++ b/packages/frontend-react/src/components/01-atoms/AdminUserProfile/AdminUserProfile.types.ts @@ -0,0 +1,20 @@ +/* eslint-disable @typescript-eslint/naming-convention */ + +import type { ReactNode } from 'react' + +import type { User } from '@/types/records' + +export interface AdminUserProfileProps { + children?: ReactNode + data: User +} + +export interface AdminUserProfileData extends User { + member_since_month: string + member_since_rest: string + member_for: string + last_login: string + expiry: string + expiry_date_month: string + expiry_date_rest: string +} diff --git a/packages/frontend-react/src/components/01-atoms/AdminUserProfile/AdminUserProfile.utils.ts b/packages/frontend-react/src/components/01-atoms/AdminUserProfile/AdminUserProfile.utils.ts new file mode 100644 index 00000000..e69de29b diff --git a/packages/frontend-react/src/components/01-atoms/Button/Button.lazy.tsx b/packages/frontend-react/src/components/01-atoms/Button/Button.lazy.tsx new file mode 100644 index 00000000..0d748733 --- /dev/null +++ b/packages/frontend-react/src/components/01-atoms/Button/Button.lazy.tsx @@ -0,0 +1,15 @@ +import { lazy, Suspense, type JSX } from 'react' + +import type { ButtonProps } from './Button.types' + +import LoadingOverlay from '@/components/02-molecules/LoadingOverlay/LoadingOverlay' + +const LazyButton = lazy(async () => await import('./Button')) + +const Button = (props: JSX.IntrinsicAttributes & ButtonProps): JSX.Element => ( + }> + + +) + +export default Button diff --git a/packages/frontend-react/src/components/01-atoms/Button/Button.stories.tsx b/packages/frontend-react/src/components/01-atoms/Button/Button.stories.tsx new file mode 100644 index 00000000..88c60348 --- /dev/null +++ b/packages/frontend-react/src/components/01-atoms/Button/Button.stories.tsx @@ -0,0 +1,86 @@ +import type { Meta, StoryObj } from '@storybook/react' + +import Col from '@/components/01-atoms/Col/Col' +import Row from '@/components/01-atoms/Row/Row' + +import Button from './Button' + +type StoryType = StoryObj + +const meta: Meta = { + title: '01-Atoms/Button', + component: Button, + decorators: [ + (Story) => ( + + + + + + ) + ] +} + +export default meta + +export const Default: StoryType = { + render: () => ( + <> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + ) +} + +export const Primary: StoryType = { args: { variant: 'primary', children: 'Primary' } } +export const Secondary: StoryType = { args: { variant: 'secondary', children: 'Secondary' } } +export const Success: StoryType = { args: { variant: 'success', children: 'Success' } } +export const Warning: StoryType = { args: { variant: 'warning', children: 'Warning' } } +export const Danger: StoryType = { args: { variant: 'danger', children: 'Danger' } } +export const Info: StoryType = { args: { variant: 'info', children: 'Info' } } +export const Light: StoryType = { args: { variant: 'light', children: 'Light' } } +export const Dark: StoryType = { args: { variant: 'dark', children: 'Dark' } } +export const Link: StoryType = { args: { variant: 'link', children: 'Link' } } diff --git a/packages/frontend-react/src/components/01-atoms/Button/Button.tsx b/packages/frontend-react/src/components/01-atoms/Button/Button.tsx new file mode 100644 index 00000000..b9e901f3 --- /dev/null +++ b/packages/frontend-react/src/components/01-atoms/Button/Button.tsx @@ -0,0 +1,29 @@ +import type { FC } from 'react' + +import { clsx } from 'clsx' + +import type { ButtonProps, ButtonVariantTypes } from './Button.types' + +const styles: Record = { + primary: 'btn-primary', + secondary: 'btn-secondary', + success: 'btn-success', + warning: 'btn-warning', + danger: 'btn-danger', + info: 'btn-info', + light: 'btn-light', + dark: 'btn-dark', + link: 'btn-link' +} + +const Button: FC = ({ children, className, variant, ...restProps }) => { + variant ??= 'primary' + + return ( + + ) +} + +export default Button diff --git a/packages/frontend-react/src/components/01-atoms/Button/Button.types.ts b/packages/frontend-react/src/components/01-atoms/Button/Button.types.ts new file mode 100644 index 00000000..988f3c4e --- /dev/null +++ b/packages/frontend-react/src/components/01-atoms/Button/Button.types.ts @@ -0,0 +1,20 @@ +import type { MouseEventHandler, ReactNode } from 'react' + +export type ButtonVariantTypes = + | 'primary' + | 'secondary' + | 'success' + | 'warning' + | 'danger' + | 'info' + | 'light' + | 'dark' + | 'link' + +export interface ButtonProps { + children?: ReactNode + className?: string + variant?: ButtonVariantTypes + disabled?: boolean + onClick?: MouseEventHandler +} diff --git a/packages/frontend-react/src/components/01-atoms/Button/Button.utils.ts b/packages/frontend-react/src/components/01-atoms/Button/Button.utils.ts new file mode 100644 index 00000000..e69de29b diff --git a/packages/frontend-react/src/components/01-atoms/Col/Col.lazy.tsx b/packages/frontend-react/src/components/01-atoms/Col/Col.lazy.tsx new file mode 100644 index 00000000..1cab8318 --- /dev/null +++ b/packages/frontend-react/src/components/01-atoms/Col/Col.lazy.tsx @@ -0,0 +1,15 @@ +import { lazy, Suspense, type JSX } from 'react' + +import type { ColProps } from './Col.types' + +import LoadingOverlay from '@/components/02-molecules/LoadingOverlay/LoadingOverlay' + +const LazyCol = lazy(async () => await import('./Col')) + +const Col = (props: JSX.IntrinsicAttributes & ColProps): JSX.Element => ( + }> + + +) + +export default Col diff --git a/packages/frontend-react/src/components/01-atoms/Col/Col.stories.tsx b/packages/frontend-react/src/components/01-atoms/Col/Col.stories.tsx new file mode 100644 index 00000000..b25e1e1c --- /dev/null +++ b/packages/frontend-react/src/components/01-atoms/Col/Col.stories.tsx @@ -0,0 +1,29 @@ +import type { Meta, StoryObj } from '@storybook/react' + +import AuthenticationProvider from '@/components/09-providers/AuthenticationProvider/AuthenticationProvider' + +// import { mockHandlers } from '@/lib/mocking/handlers' + +import Col from './Col' + +type StoryType = StoryObj + +const meta: Meta = { + component: Col, + title: '01-Atoms/Col', + decorators: [ + (Story) => ( + + + + ) + ] +} + +export default meta + +export const Default: StoryType = { + args: { + children: 'Col' + } +} diff --git a/packages/frontend-react/src/components/01-atoms/Col/Col.tsx b/packages/frontend-react/src/components/01-atoms/Col/Col.tsx new file mode 100644 index 00000000..0143c622 --- /dev/null +++ b/packages/frontend-react/src/components/01-atoms/Col/Col.tsx @@ -0,0 +1,34 @@ +import type { FC } from 'react' + +import { clsx } from 'clsx' + +import type { ColBreakPoint, ColProps } from './Col.types' + +const breakpoints: ColBreakPoint[] = ['default', 'xs', 'sm', 'md', 'lg', 'xl'] + +const Col: FC = ({ children, className, ...restProps }) => { + const breakpointClasses = breakpoints + .filter((breakpoint) => restProps[breakpoint] != null) + .map((breakpoint) => { + const basis = + restProps[breakpoint]?.toString() === '12' + ? `${breakpoint}:basis-full` + : `${breakpoint}:basis-${restProps[breakpoint]}/12` + + return basis + }) + + const classNames = ['col', className, ...breakpointClasses].map((cn) => cn?.replace(/default:/, '')) + + if (!classNames.join(' ').includes('basis-')) { + classNames.splice(1, 0, 'shrink grow basis-0') + } + + return ( +
+ {children} +
+ ) +} + +export default Col diff --git a/packages/frontend-react/src/components/01-atoms/Col/Col.types.ts b/packages/frontend-react/src/components/01-atoms/Col/Col.types.ts new file mode 100644 index 00000000..563e5208 --- /dev/null +++ b/packages/frontend-react/src/components/01-atoms/Col/Col.types.ts @@ -0,0 +1,11 @@ +import type { MouseEventHandler, ReactNode } from 'react' + +export type ColBreakPoint = 'default' | 'xs' | 'sm' | 'md' | 'lg' | 'xl' + +export type ColBreakPointRecord = Partial> + +export interface ColProps extends ColBreakPointRecord { + children?: ReactNode + className?: string + onClick?: MouseEventHandler +} diff --git a/packages/frontend-react/src/components/01-atoms/Col/Col.utils.ts b/packages/frontend-react/src/components/01-atoms/Col/Col.utils.ts new file mode 100644 index 00000000..e69de29b diff --git a/packages/frontend-react/src/components/01-atoms/Conditional/Conditional.stories.tsx b/packages/frontend-react/src/components/01-atoms/Conditional/Conditional.stories.tsx new file mode 100644 index 00000000..bbb0b6c0 --- /dev/null +++ b/packages/frontend-react/src/components/01-atoms/Conditional/Conditional.stories.tsx @@ -0,0 +1,15 @@ +import type { JSX } from 'react' + +import Conditional from './Conditional' + +export default { + title: '01-Atoms/Conditional' +} + +export const Disabled = (): JSX.Element => Disabled + +Disabled.storyName = 'disabled' + +export const Enabled = (): JSX.Element => Enabled + +Enabled.storyName = 'enabled' diff --git a/packages/frontend-react/src/components/01-atoms/Conditional/Conditional.tsx b/packages/frontend-react/src/components/01-atoms/Conditional/Conditional.tsx new file mode 100644 index 00000000..de58da23 --- /dev/null +++ b/packages/frontend-react/src/components/01-atoms/Conditional/Conditional.tsx @@ -0,0 +1,11 @@ +import type { FC } from 'react' + +import type { ConditionalProps } from './Conditional.types' + +const Conditional: FC = ({ condition, fallback, children }) => { + if (!condition) return fallback ?? null + + return <>{children} +} + +export default Conditional diff --git a/packages/frontend-react/src/components/01-atoms/Conditional/Conditional.types.ts b/packages/frontend-react/src/components/01-atoms/Conditional/Conditional.types.ts new file mode 100644 index 00000000..f6c176ac --- /dev/null +++ b/packages/frontend-react/src/components/01-atoms/Conditional/Conditional.types.ts @@ -0,0 +1,7 @@ +import type { JSX, ReactNode } from 'react' + +export interface ConditionalProps { + condition: boolean + fallback?: JSX.Element + children?: ReactNode +} diff --git a/packages/frontend-react/src/components/01-atoms/Conditional/Conditional.utils.ts b/packages/frontend-react/src/components/01-atoms/Conditional/Conditional.utils.ts new file mode 100644 index 00000000..e69de29b diff --git a/packages/frontend-react/src/components/01-atoms/Container/Container.lazy.tsx b/packages/frontend-react/src/components/01-atoms/Container/Container.lazy.tsx new file mode 100644 index 00000000..7e69233e --- /dev/null +++ b/packages/frontend-react/src/components/01-atoms/Container/Container.lazy.tsx @@ -0,0 +1,15 @@ +import { lazy, Suspense, type JSX } from 'react' + +import type { ContainerProps } from './Container.types' + +import LoadingOverlay from '@/components/02-molecules/LoadingOverlay/LoadingOverlay' + +const LazyContainer = lazy(async () => await import('./Container')) + +const Container = (props: JSX.IntrinsicAttributes & ContainerProps): JSX.Element => ( + }> + + +) + +export default Container diff --git a/packages/frontend-react/src/components/01-atoms/Container/Container.stories.tsx b/packages/frontend-react/src/components/01-atoms/Container/Container.stories.tsx new file mode 100644 index 00000000..ba6ffb94 --- /dev/null +++ b/packages/frontend-react/src/components/01-atoms/Container/Container.stories.tsx @@ -0,0 +1,27 @@ +import type { Meta, StoryObj } from '@storybook/react' + +import AuthenticationProvider from '@/components/09-providers/AuthenticationProvider/AuthenticationProvider' + +import Container from './Container' + +type StoryType = StoryObj + +const meta: Meta = { + component: Container, + title: '01-Atoms/Container', + decorators: [ + (Story) => ( + + + + ) + ] +} + +export default meta + +export const Default: StoryType = { + args: { + children: 'Container' + } +} diff --git a/packages/frontend-react/src/components/01-atoms/Container/Container.tsx b/packages/frontend-react/src/components/01-atoms/Container/Container.tsx new file mode 100644 index 00000000..8e64b878 --- /dev/null +++ b/packages/frontend-react/src/components/01-atoms/Container/Container.tsx @@ -0,0 +1,17 @@ +import type { FC } from 'react' + +import clsx from 'clsx' + +import type { ContainerProps } from './Container.types' + +const Container: FC = ({ fluid, className, children }) => { + fluid ??= false + + return ( +
+ {children} +
+ ) +} + +export default Container diff --git a/packages/frontend-react/src/components/01-atoms/Container/Container.types.ts b/packages/frontend-react/src/components/01-atoms/Container/Container.types.ts new file mode 100644 index 00000000..bae65014 --- /dev/null +++ b/packages/frontend-react/src/components/01-atoms/Container/Container.types.ts @@ -0,0 +1,7 @@ +import type { ReactNode } from 'react' + +export interface ContainerProps { + children?: ReactNode + fluid?: boolean + className?: string +} diff --git a/packages/frontend-react/src/components/01-atoms/Container/Container.utils.ts b/packages/frontend-react/src/components/01-atoms/Container/Container.utils.ts new file mode 100644 index 00000000..e69de29b diff --git a/packages/frontend-react/src/components/01-atoms/CreateUserButton/CreateUserButton.lazy.tsx b/packages/frontend-react/src/components/01-atoms/CreateUserButton/CreateUserButton.lazy.tsx new file mode 100644 index 00000000..6351d2c6 --- /dev/null +++ b/packages/frontend-react/src/components/01-atoms/CreateUserButton/CreateUserButton.lazy.tsx @@ -0,0 +1,15 @@ +import { lazy, Suspense, type JSX } from 'react' + +import type { CreateUserButtonProps } from './CreateUserButton.types' + +import LoadingOverlay from '@/components/02-molecules/LoadingOverlay/LoadingOverlay' + +const LazyCreateUserButton = lazy(async () => await import('./CreateUserButton')) + +const CreateUserButton = (props: JSX.IntrinsicAttributes & CreateUserButtonProps): JSX.Element => ( + }> + + +) + +export default CreateUserButton diff --git a/packages/frontend-react/src/components/01-atoms/CreateUserButton/CreateUserButton.stories.tsx b/packages/frontend-react/src/components/01-atoms/CreateUserButton/CreateUserButton.stories.tsx new file mode 100644 index 00000000..db9f4c64 --- /dev/null +++ b/packages/frontend-react/src/components/01-atoms/CreateUserButton/CreateUserButton.stories.tsx @@ -0,0 +1,27 @@ +import type { Meta, StoryObj } from '@storybook/react' + +import AuthenticationProvider from '@/components/09-providers/AuthenticationProvider/AuthenticationProvider' + +import CreateUserButton from './CreateUserButton' + +type StoryType = StoryObj + +const meta: Meta = { + component: CreateUserButton, + title: '01-Atoms/CreateUserButton', + decorators: [ + (Story) => ( + + + + ) + ] +} + +export default meta + +export const Default: StoryType = { + args: { + children: 'CreateUserButton' + } +} diff --git a/packages/frontend-react/src/components/01-atoms/CreateUserButton/CreateUserButton.tsx b/packages/frontend-react/src/components/01-atoms/CreateUserButton/CreateUserButton.tsx new file mode 100644 index 00000000..d28b8ab0 --- /dev/null +++ b/packages/frontend-react/src/components/01-atoms/CreateUserButton/CreateUserButton.tsx @@ -0,0 +1,15 @@ +import type { FC } from 'react' + +import { Link } from '@tanstack/react-router' + +import type { CreateUserButtonProps } from './CreateUserButton.types' + +const CreateUserButton: FC = () => ( +
+ +
Create User
+ +
+) + +export default CreateUserButton diff --git a/packages/frontend-react/src/components/01-atoms/CreateUserButton/CreateUserButton.types.ts b/packages/frontend-react/src/components/01-atoms/CreateUserButton/CreateUserButton.types.ts new file mode 100644 index 00000000..562eb9cb --- /dev/null +++ b/packages/frontend-react/src/components/01-atoms/CreateUserButton/CreateUserButton.types.ts @@ -0,0 +1,5 @@ +import type { ReactNode } from 'react' + +export interface CreateUserButtonProps { + children?: ReactNode +} diff --git a/packages/frontend-react/src/components/01-atoms/CreateUserButton/CreateUserButton.utils.ts b/packages/frontend-react/src/components/01-atoms/CreateUserButton/CreateUserButton.utils.ts new file mode 100644 index 00000000..e69de29b diff --git a/packages/frontend-react/src/components/01-atoms/FontAwesomeIcon/FontAwesomeIcon.lazy.tsx b/packages/frontend-react/src/components/01-atoms/FontAwesomeIcon/FontAwesomeIcon.lazy.tsx new file mode 100644 index 00000000..64ff8dd9 --- /dev/null +++ b/packages/frontend-react/src/components/01-atoms/FontAwesomeIcon/FontAwesomeIcon.lazy.tsx @@ -0,0 +1,15 @@ +import { lazy, Suspense, type JSX } from 'react' + +import type { FontAwesomeIconProps } from './FontAwesomeIcon.types' + +import LoadingOverlay from '@/components/02-molecules/LoadingOverlay/LoadingOverlay' + +const LazyFontAwesomeIcon = lazy(async () => await import('./FontAwesomeIcon')) + +const FontAwesomeIcon = (props: JSX.IntrinsicAttributes & FontAwesomeIconProps): JSX.Element => ( + }> + + +) + +export default FontAwesomeIcon diff --git a/packages/frontend-react/src/components/01-atoms/FontAwesomeIcon/FontAwesomeIcon.stories.tsx b/packages/frontend-react/src/components/01-atoms/FontAwesomeIcon/FontAwesomeIcon.stories.tsx new file mode 100644 index 00000000..6133bf4f --- /dev/null +++ b/packages/frontend-react/src/components/01-atoms/FontAwesomeIcon/FontAwesomeIcon.stories.tsx @@ -0,0 +1,27 @@ +import type { Meta, StoryObj } from '@storybook/react' + +import AuthenticationProvider from '@/components/09-providers/AuthenticationProvider/AuthenticationProvider' + +import FontAwesomeIcon from './FontAwesomeIcon' + +type StoryType = StoryObj + +const meta: Meta = { + component: FontAwesomeIcon, + title: '99-Templates/default', + decorators: [ + (Story) => ( + + + + ) + ] +} + +export default meta + +export const Default: StoryType = { + args: { + icon: '42-group' + } +} diff --git a/packages/frontend-react/src/components/01-atoms/FontAwesomeIcon/FontAwesomeIcon.tsx b/packages/frontend-react/src/components/01-atoms/FontAwesomeIcon/FontAwesomeIcon.tsx new file mode 100644 index 00000000..accd7fe8 --- /dev/null +++ b/packages/frontend-react/src/components/01-atoms/FontAwesomeIcon/FontAwesomeIcon.tsx @@ -0,0 +1,47 @@ +import { useMemo, type FC } from 'react' + +import { clsx } from 'clsx' + +import type { FontAwesomeIconProps } from './FontAwesomeIcon.types' + +const FontAwesomeIcon: FC = ({ + category, + className, + effect, + flip, + icon, + inverse, + pullLeft, + pullRight, + rotate, + size, + stack, + ...restProps +}) => { + const iconClassName = useMemo(() => { + const iconOptions = [] + + iconOptions.push(`fa${(category ?? 'solid')[0]}`) + + const iconArray = Array.isArray(icon) ? icon : [icon] + iconArray.forEach((i) => iconOptions.push(`fa-${i}`)) + + if (effect != null) { + const effectArray = Array.isArray(effect) ? effect : [effect] + effectArray.forEach((e) => iconOptions.push(`fa-${e}`)) + } + if (inverse != null) iconOptions.push(`fa-inverse`) + if (pullLeft != null) iconOptions.push(`fa-pull-left`) + if (pullRight != null) iconOptions.push(`fa-pull-right`) + if (flip != null) iconOptions.push(`fa-${flip}`) + if (size != null) iconOptions.push(`fa-${size}`) + if (rotate != null) iconOptions.push(`fa-${rotate}`) + if (stack != null) iconOptions.push(`fa-${stack === true ? 'stack' : stack}`) + + return iconOptions.join(' ') + }, [icon, category, effect, flip, inverse, pullLeft, pullRight, rotate, size, stack]) + + return +} + +export default FontAwesomeIcon diff --git a/packages/frontend-react/src/components/01-atoms/FontAwesomeIcon/FontAwesomeIcon.types.ts b/packages/frontend-react/src/components/01-atoms/FontAwesomeIcon/FontAwesomeIcon.types.ts new file mode 100644 index 00000000..a0e65f5c --- /dev/null +++ b/packages/frontend-react/src/components/01-atoms/FontAwesomeIcon/FontAwesomeIcon.types.ts @@ -0,0 +1,27 @@ +import type { + FAB, + FAS, + FontAwesomeCategoryOption, + FontAwesomeEffectOption, + FontAwesomeFlipOption, + FontAwesomeRotateOption, + FontAwesomeSizeOption, + FontAwesomeStackOption +} from '@/types/fontawesome' +import type { CastReactElement, SingleOrArray } from '@/types/utils' + +export type IconProp = FAB | FAS | string[] + +export interface FontAwesomeIconProps extends Partial> { + icon: IconProp + category?: FontAwesomeCategoryOption + className?: string + effect?: SingleOrArray + flip?: FontAwesomeFlipOption + inverse?: boolean + pullLeft?: boolean + pullRight?: boolean + rotate?: FontAwesomeRotateOption + size?: FontAwesomeSizeOption + stack?: FontAwesomeStackOption +} diff --git a/packages/frontend-react/src/components/01-atoms/FontAwesomeIcon/FontAwesomeIcon.utils.ts b/packages/frontend-react/src/components/01-atoms/FontAwesomeIcon/FontAwesomeIcon.utils.ts new file mode 100644 index 00000000..e69de29b diff --git a/packages/frontend-react/src/components/01-atoms/FormControl/FormControl.lazy.tsx b/packages/frontend-react/src/components/01-atoms/FormControl/FormControl.lazy.tsx new file mode 100644 index 00000000..1f54760e --- /dev/null +++ b/packages/frontend-react/src/components/01-atoms/FormControl/FormControl.lazy.tsx @@ -0,0 +1,15 @@ +import { lazy, Suspense, type JSX } from 'react' + +import type { FormControlProps } from './FormControl.types' + +import LoadingOverlay from '@/components/02-molecules/LoadingOverlay/LoadingOverlay' + +const LazyFormControl = lazy(async () => await import('./FormControl')) + +const FormControl = (props: JSX.IntrinsicAttributes & FormControlProps): JSX.Element => ( + }> + + +) + +export default FormControl diff --git a/packages/frontend-react/src/components/01-atoms/FormControl/FormControl.module.css b/packages/frontend-react/src/components/01-atoms/FormControl/FormControl.module.css new file mode 100644 index 00000000..e69de29b diff --git a/packages/frontend-react/src/components/01-atoms/FormControl/FormControl.stories.tsx b/packages/frontend-react/src/components/01-atoms/FormControl/FormControl.stories.tsx new file mode 100644 index 00000000..4b8e1e82 --- /dev/null +++ b/packages/frontend-react/src/components/01-atoms/FormControl/FormControl.stories.tsx @@ -0,0 +1,44 @@ +import type { Meta, StoryObj } from '@storybook/react' + +import Col from '../Col/Col' +import Row from '../Row/Row' + +import FormControl from './FormControl' + +type StoryType = StoryObj + +const meta: Meta = { + component: FormControl, + title: '01-Atoms/FormControl', + decorators: [ + (Story) => ( + + + + + + + + ) + ] +} + +export default meta + +export const Default: StoryType = { + args: { formType: 'text' } +} + +export const PreContent: StoryType = { + args: { + formType: 'email', + preContent: '@' + } +} + +export const PinInput: StoryType = { + args: { + formType: 'number', + preContent: '0000' + } +} diff --git a/packages/frontend-react/src/components/01-atoms/FormControl/FormControl.tsx b/packages/frontend-react/src/components/01-atoms/FormControl/FormControl.tsx new file mode 100644 index 00000000..eb64b28a --- /dev/null +++ b/packages/frontend-react/src/components/01-atoms/FormControl/FormControl.tsx @@ -0,0 +1,144 @@ +import { useMemo, useState, type FC } from 'react' + +import { XMarkIcon } from '@heroicons/react/16/solid' +import clsx from 'clsx' + +import Conditional from '../Conditional/Conditional' + +import { isFormControlSelectOption, type FormControlProps } from './FormControl.types' + +const FormControl: FC = ({ + className, + error, + formType, + onChange, + reset, + preContent, + options, + value, + ...restProps +}) => { + error ??= false + + formType ??= 'text' + + const hasPreContent = useMemo(() => preContent != null, [preContent]) + + const [hasFocus, setHasFocus] = useState(false) + + if (formType === 'dropdown') + return ( +
+ +
+ ) + + if (formType === 'textarea') + return ( +
+

5Y5O1C~`XKOpu}` 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ࣩ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Ƕ_=EJ+dim?gouF30;RK1lBe0kFRWovlXroT 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 z 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