Compare commits

...

10 Commits

Author SHA1 Message Date
baf5acc01a When creating a new entry, and validation redirects back to the form, ensure our RDN readonly is preserved
All checks were successful
Create Docker Image / Test Application (x86_64) (push) Successful in 27s
Create Docker Image / Build Docker Image (x86_64) (push) Successful in 1m22s
Create Docker Image / Build Docker Image (arm64) (push) Successful in 4m33s
Create Docker Image / Final Docker Image Manifest (push) Successful in 9s
2025-03-07 11:00:11 +11:00
00a8350f1d Fix rendering of error message, minor changes to login as a result of ba9124c. Record in README we can now do deletes
All checks were successful
Create Docker Image / Test Application (x86_64) (push) Successful in 27s
Create Docker Image / Build Docker Image (x86_64) (push) Successful in 1m30s
Create Docker Image / Build Docker Image (arm64) (push) Successful in 4m32s
Create Docker Image / Final Docker Image Manifest (push) Successful in 10s
2025-03-07 09:10:35 +11:00
732f777c75 Rename our configuration keys to ldap/ldaps/startls, they are not openldap specific 2025-03-07 08:33:08 +11:00
c588e13bd8 Clear some javascript @todos: fancytree options, optionclass processing
All checks were successful
Create Docker Image / Test Application (x86_64) (push) Successful in 3m27s
Create Docker Image / Build Docker Image (x86_64) (push) Successful in 1m25s
Create Docker Image / Build Docker Image (arm64) (push) Successful in 4m35s
Create Docker Image / Final Docker Image Manifest (push) Successful in 9s
2025-03-06 23:47:24 +11:00
dc623b18ae Laravel framework and npm modules update 2025-03-06 23:47:24 +11:00
d97087b83f Implemented DN delete 2025-03-06 21:09:05 +11:00
c8c3939d59 Style changes when rendering the DN header 2025-03-06 20:43:19 +11:00
daf240e363 When the session expired, automatically refresh the page with the intended desitination without the alert 2025-03-06 20:43:19 +11:00
070aabfc88 Switch to using icons when rendering a DN, and move the server icons to the topmenu 2025-03-06 20:43:19 +11:00
57b6b8c1f1 Fix search close btn and other css fixes as need after upgrading to ArchitectUI v4 2025-03-06 20:43:19 +11:00
36 changed files with 906 additions and 749 deletions

View File

@ -3,7 +3,7 @@ run-name: ${{ gitea.actor }} Building Docker Image 🐳
on: [push] on: [push]
env: env:
DOCKER_HOST: tcp://127.0.0.1:2375 DOCKER_HOST: tcp://127.0.0.1:2375
ASSETS: 41d6948 ASSETS: 509b1a1
jobs: jobs:
test: test:

View File

@ -32,7 +32,7 @@ Take a look at the [Docker Container](https://github.com/leenooks/phpLDAPadmin/w
The update to v2 is progressing well - here is a list of work to do and done: The update to v2 is progressing well - here is a list of work to do and done:
- [X] Creating new LDAP entries - [X] Creating new LDAP entries
- [ ] Delete existing LDAP entries - [X] Delete existing LDAP entries
- [X] Updating existing LDAP Entries - [X] Updating existing LDAP Entries
- [X] Password attributes - [X] Password attributes
- [X] Support different password hash options - [X] Support different password hash options

View File

@ -241,6 +241,7 @@ class Attribute implements \Countable, \ArrayAccess, \Iterator
// @todo // @todo
// objectClasses requiring this attribute // objectClasses requiring this attribute
// @todo limit this to this DNs objectclasses
// eg: $result->put('required','Required by objectClasses: a,b'); // eg: $result->put('required','Required by objectClasses: a,b');
if ($this->required_by->count()) if ($this->required_by->count())
$result->put(__('required'),sprintf('%s: %s',__('Required Attribute by ObjectClass(es)'),$this->required_by->join(','))); $result->put(__('required'),sprintf('%s: %s',__('Required Attribute by ObjectClass(es)'),$this->required_by->join(',')));

View File

@ -96,7 +96,7 @@ class HomeController extends Controller
*/ */
public function entry_attr_add(Request $request,string $id): string public function entry_attr_add(Request $request,string $id): string
{ {
$xx = new \stdClass(); $xx = new \stdClass;
$xx->index = 0; $xx->index = 0;
$x = $request->noheader $x = $request->noheader
@ -137,7 +137,7 @@ class HomeController extends Controller
abort(599,$e->getDetailedError()->getErrorMessage()); abort(599,$e->getDetailedError()->getErrorMessage());
} }
// @todo To test and valide this Exception is caught // @todo when we create an entry, and it already exists, enable a redirect to it
} catch (LdapRecordException $e) { } catch (LdapRecordException $e) {
$request->flash(); $request->flash();
@ -156,6 +156,46 @@ class HomeController extends Controller
->withFragment($o->getDNSecure()); ->withFragment($o->getDNSecure());
} }
public function entry_delete(Request $request)
{
$dn = Crypt::decryptString($request->dn);
$o = config('server')->fetch($dn);
try {
$o->delete();
} catch (InsufficientAccessException $e) {
$request->flash();
switch ($x=$e->getDetailedError()->getErrorCode()) {
case 50:
return Redirect::to('/')
->withInput()
->withErrors(sprintf('%s: %s (%s)',__('LDAP Server Error Code'),$x,__($e->getDetailedError()->getErrorMessage())));
default:
abort(599,$e->getDetailedError()->getErrorMessage());
}
} catch (LdapRecordException $e) {
$request->flash();
switch ($x=$e->getDetailedError()->getErrorCode()) {
case 8:
return Redirect::to('/')
->withInput()
->withErrors(sprintf('%s: %s (%s)',__('LDAP Server Error Code'),$x,__($e->getDetailedError()->getErrorMessage())));
default:
abort(599,$e->getDetailedError()->getErrorMessage());
}
}
return Redirect::to('/')
->with('success',[sprintf('%s: %s',__('Deleted'),$dn)]);
}
public function entry_export(Request $request,string $id) public function entry_export(Request $request,string $id)
{ {
$dn = Crypt::decryptString($id); $dn = Crypt::decryptString($id);

View File

@ -25,6 +25,9 @@ class SwapinAuthUser
{ {
$key = config('ldap.default'); $key = config('ldap.default');
if (! array_key_exists($key,config('ldap.connections')))
abort(599,sprintf('LDAP default server [%s] configuration doesnt exist?',$key));
/* /*
// Rebuild our connection with the authenticated user. // Rebuild our connection with the authenticated user.
if (Session::has('username_encrypt') && Session::has('password_encrypt')) { if (Session::has('username_encrypt') && Session::has('password_encrypt')) {

471
composer.lock generated
View File

@ -8,16 +8,16 @@
"packages": [ "packages": [
{ {
"name": "brick/math", "name": "brick/math",
"version": "0.12.1", "version": "0.12.3",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/brick/math.git", "url": "https://github.com/brick/math.git",
"reference": "f510c0a40911935b77b86859eb5223d58d660df1" "reference": "866551da34e9a618e64a819ee1e01c20d8a588ba"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/brick/math/zipball/f510c0a40911935b77b86859eb5223d58d660df1", "url": "https://api.github.com/repos/brick/math/zipball/866551da34e9a618e64a819ee1e01c20d8a588ba",
"reference": "f510c0a40911935b77b86859eb5223d58d660df1", "reference": "866551da34e9a618e64a819ee1e01c20d8a588ba",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
@ -26,7 +26,7 @@
"require-dev": { "require-dev": {
"php-coveralls/php-coveralls": "^2.2", "php-coveralls/php-coveralls": "^2.2",
"phpunit/phpunit": "^10.1", "phpunit/phpunit": "^10.1",
"vimeo/psalm": "5.16.0" "vimeo/psalm": "6.8.8"
}, },
"type": "library", "type": "library",
"autoload": { "autoload": {
@ -56,7 +56,7 @@
], ],
"support": { "support": {
"issues": "https://github.com/brick/math/issues", "issues": "https://github.com/brick/math/issues",
"source": "https://github.com/brick/math/tree/0.12.1" "source": "https://github.com/brick/math/tree/0.12.3"
}, },
"funding": [ "funding": [
{ {
@ -64,7 +64,7 @@
"type": "github" "type": "github"
} }
], ],
"time": "2023-11-29T23:19:16+00:00" "time": "2025-02-28T13:11:00+00:00"
}, },
{ {
"name": "carbonphp/carbon-doctrine-types", "name": "carbonphp/carbon-doctrine-types",
@ -212,24 +212,24 @@
}, },
{ {
"name": "directorytree/ldaprecord", "name": "directorytree/ldaprecord",
"version": "v3.7.6", "version": "v3.8.1",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/DirectoryTree/LdapRecord.git", "url": "https://github.com/DirectoryTree/LdapRecord.git",
"reference": "9df53be0893d361f2a383d41f715268a8a7f596c" "reference": "9eb34c1b3588a853406373720a772ae4f3ed23d3"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/DirectoryTree/LdapRecord/zipball/9df53be0893d361f2a383d41f715268a8a7f596c", "url": "https://api.github.com/repos/DirectoryTree/LdapRecord/zipball/9eb34c1b3588a853406373720a772ae4f3ed23d3",
"reference": "9df53be0893d361f2a383d41f715268a8a7f596c", "reference": "9eb34c1b3588a853406373720a772ae4f3ed23d3",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
"ext-iconv": "*", "ext-iconv": "*",
"ext-json": "*", "ext-json": "*",
"ext-ldap": "*", "ext-ldap": "*",
"illuminate/collections": "^8.0|^9.0|^10.0|^11.0", "illuminate/collections": "^8.0|^9.0|^10.0|^11.0|^12.0",
"illuminate/contracts": "^8.0|^9.0|^10.0|^11.0", "illuminate/contracts": "^8.0|^9.0|^10.0|^11.0|^12.0",
"nesbot/carbon": "*", "nesbot/carbon": "*",
"php": ">=8.1", "php": ">=8.1",
"psr/log": "*", "psr/log": "*",
@ -284,27 +284,27 @@
"type": "github" "type": "github"
} }
], ],
"time": "2024-12-07T01:11:37+00:00" "time": "2025-03-06T00:35:47+00:00"
}, },
{ {
"name": "directorytree/ldaprecord-laravel", "name": "directorytree/ldaprecord-laravel",
"version": "v3.3.5", "version": "v3.4.0",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/DirectoryTree/LdapRecord-Laravel.git", "url": "https://github.com/DirectoryTree/LdapRecord-Laravel.git",
"reference": "3f5d015417498d62763a2aae13f8e2fc9d56fbb1" "reference": "bb0aa206723ed07e2b42eadd7311d5949cc770dd"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/DirectoryTree/LdapRecord-Laravel/zipball/3f5d015417498d62763a2aae13f8e2fc9d56fbb1", "url": "https://api.github.com/repos/DirectoryTree/LdapRecord-Laravel/zipball/bb0aa206723ed07e2b42eadd7311d5949cc770dd",
"reference": "3f5d015417498d62763a2aae13f8e2fc9d56fbb1", "reference": "bb0aa206723ed07e2b42eadd7311d5949cc770dd",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
"directorytree/ldaprecord": "^v3.3", "directorytree/ldaprecord": "^v3.3",
"ext-json": "*", "ext-json": "*",
"ext-ldap": "*", "ext-ldap": "*",
"illuminate/support": "^8.0|^9.0|^10.0|^11.0", "illuminate/support": "^8.0|^9.0|^10.0|^11.0|^12.0",
"php": ">=8.1", "php": ">=8.1",
"ramsey/uuid": "*" "ramsey/uuid": "*"
}, },
@ -312,7 +312,7 @@
"laravel/pint": "^1.9", "laravel/pint": "^1.9",
"laravel/sanctum": "*", "laravel/sanctum": "*",
"mockery/mockery": "^1.0", "mockery/mockery": "^1.0",
"orchestra/testbench": "^6.0|^7.0|^8.0|^9.0", "orchestra/testbench": "^6.0|^7.0|^8.0|^9.0|^10.0",
"phpunit/phpunit": "^8.0|^9.0|^10.0|^11.0", "phpunit/phpunit": "^8.0|^9.0|^10.0|^11.0",
"spatie/ray": "^1.28" "spatie/ray": "^1.28"
}, },
@ -343,7 +343,7 @@
], ],
"support": { "support": {
"issues": "https://github.com/DirectoryTree/LdapRecord-Laravel/issues", "issues": "https://github.com/DirectoryTree/LdapRecord-Laravel/issues",
"source": "https://github.com/DirectoryTree/LdapRecord-Laravel/tree/v3.3.5" "source": "https://github.com/DirectoryTree/LdapRecord-Laravel/tree/v3.4.0"
}, },
"funding": [ "funding": [
{ {
@ -351,7 +351,7 @@
"type": "github" "type": "github"
} }
], ],
"time": "2024-09-23T03:24:21+00:00" "time": "2025-02-26T01:41:53+00:00"
}, },
{ {
"name": "doctrine/inflector", "name": "doctrine/inflector",
@ -1199,16 +1199,16 @@
}, },
{ {
"name": "laravel/framework", "name": "laravel/framework",
"version": "v11.42.0", "version": "v11.44.1",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/laravel/framework.git", "url": "https://github.com/laravel/framework.git",
"reference": "006375ba67e830e87daa7b52ab65163ba3508d26" "reference": "0883d4175f4e2b5c299e7087ad3c74f2ce195c6d"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/laravel/framework/zipball/006375ba67e830e87daa7b52ab65163ba3508d26", "url": "https://api.github.com/repos/laravel/framework/zipball/0883d4175f4e2b5c299e7087ad3c74f2ce195c6d",
"reference": "006375ba67e830e87daa7b52ab65163ba3508d26", "reference": "0883d4175f4e2b5c299e7087ad3c74f2ce195c6d",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
@ -1316,7 +1316,7 @@
"league/flysystem-read-only": "^3.25.1", "league/flysystem-read-only": "^3.25.1",
"league/flysystem-sftp-v3": "^3.25.1", "league/flysystem-sftp-v3": "^3.25.1",
"mockery/mockery": "^1.6.10", "mockery/mockery": "^1.6.10",
"orchestra/testbench-core": "^9.9.4", "orchestra/testbench-core": "^9.11.2",
"pda/pheanstalk": "^5.0.6", "pda/pheanstalk": "^5.0.6",
"php-http/discovery": "^1.15", "php-http/discovery": "^1.15",
"phpstan/phpstan": "^2.0", "phpstan/phpstan": "^2.0",
@ -1410,7 +1410,7 @@
"issues": "https://github.com/laravel/framework/issues", "issues": "https://github.com/laravel/framework/issues",
"source": "https://github.com/laravel/framework" "source": "https://github.com/laravel/framework"
}, },
"time": "2025-02-11T17:17:56+00:00" "time": "2025-03-05T15:34:10+00:00"
}, },
{ {
"name": "laravel/prompts", "name": "laravel/prompts",
@ -2315,16 +2315,16 @@
}, },
{ {
"name": "nesbot/carbon", "name": "nesbot/carbon",
"version": "3.8.5", "version": "3.8.6",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/CarbonPHP/carbon.git", "url": "https://github.com/CarbonPHP/carbon.git",
"reference": "b1a53a27898639579a67de42e8ced5d5386aa9a4" "reference": "ff2f20cf83bd4d503720632ce8a426dc747bf7fd"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/CarbonPHP/carbon/zipball/b1a53a27898639579a67de42e8ced5d5386aa9a4", "url": "https://api.github.com/repos/CarbonPHP/carbon/zipball/ff2f20cf83bd4d503720632ce8a426dc747bf7fd",
"reference": "b1a53a27898639579a67de42e8ced5d5386aa9a4", "reference": "ff2f20cf83bd4d503720632ce8a426dc747bf7fd",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
@ -2417,7 +2417,7 @@
"type": "tidelift" "type": "tidelift"
} }
], ],
"time": "2025-02-11T16:28:45+00:00" "time": "2025-02-20T17:33:38+00:00"
}, },
{ {
"name": "nette/schema", "name": "nette/schema",
@ -3187,16 +3187,16 @@
}, },
{ {
"name": "ramsey/collection", "name": "ramsey/collection",
"version": "2.0.0", "version": "2.1.0",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/ramsey/collection.git", "url": "https://github.com/ramsey/collection.git",
"reference": "a4b48764bfbb8f3a6a4d1aeb1a35bb5e9ecac4a5" "reference": "3c5990b8a5e0b79cd1cf11c2dc1229e58e93f109"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/ramsey/collection/zipball/a4b48764bfbb8f3a6a4d1aeb1a35bb5e9ecac4a5", "url": "https://api.github.com/repos/ramsey/collection/zipball/3c5990b8a5e0b79cd1cf11c2dc1229e58e93f109",
"reference": "a4b48764bfbb8f3a6a4d1aeb1a35bb5e9ecac4a5", "reference": "3c5990b8a5e0b79cd1cf11c2dc1229e58e93f109",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
@ -3204,25 +3204,22 @@
}, },
"require-dev": { "require-dev": {
"captainhook/plugin-composer": "^5.3", "captainhook/plugin-composer": "^5.3",
"ergebnis/composer-normalize": "^2.28.3", "ergebnis/composer-normalize": "^2.45",
"fakerphp/faker": "^1.21", "fakerphp/faker": "^1.24",
"hamcrest/hamcrest-php": "^2.0", "hamcrest/hamcrest-php": "^2.0",
"jangregor/phpstan-prophecy": "^1.0", "jangregor/phpstan-prophecy": "^2.1",
"mockery/mockery": "^1.5", "mockery/mockery": "^1.6",
"php-parallel-lint/php-console-highlighter": "^1.0", "php-parallel-lint/php-console-highlighter": "^1.0",
"php-parallel-lint/php-parallel-lint": "^1.3", "php-parallel-lint/php-parallel-lint": "^1.4",
"phpcsstandards/phpcsutils": "^1.0.0-rc1", "phpspec/prophecy-phpunit": "^2.3",
"phpspec/prophecy-phpunit": "^2.0", "phpstan/extension-installer": "^1.4",
"phpstan/extension-installer": "^1.2", "phpstan/phpstan": "^2.1",
"phpstan/phpstan": "^1.9", "phpstan/phpstan-mockery": "^2.0",
"phpstan/phpstan-mockery": "^1.1", "phpstan/phpstan-phpunit": "^2.0",
"phpstan/phpstan-phpunit": "^1.3", "phpunit/phpunit": "^10.5",
"phpunit/phpunit": "^9.5", "ramsey/coding-standard": "^2.3",
"psalm/plugin-mockery": "^1.1", "ramsey/conventional-commits": "^1.6",
"psalm/plugin-phpunit": "^0.18.4", "roave/security-advisories": "dev-latest"
"ramsey/coding-standard": "^2.0.3",
"ramsey/conventional-commits": "^1.3",
"vimeo/psalm": "^5.4"
}, },
"type": "library", "type": "library",
"extra": { "extra": {
@ -3260,19 +3257,9 @@
], ],
"support": { "support": {
"issues": "https://github.com/ramsey/collection/issues", "issues": "https://github.com/ramsey/collection/issues",
"source": "https://github.com/ramsey/collection/tree/2.0.0" "source": "https://github.com/ramsey/collection/tree/2.1.0"
}, },
"funding": [ "time": "2025-03-02T04:48:29+00:00"
{
"url": "https://github.com/ramsey",
"type": "github"
},
{
"url": "https://tidelift.com/funding/github/packagist/ramsey/collection",
"type": "tidelift"
}
],
"time": "2022-12-31T21:50:55+00:00"
}, },
{ {
"name": "ramsey/uuid", "name": "ramsey/uuid",
@ -3667,16 +3654,16 @@
}, },
{ {
"name": "symfony/error-handler", "name": "symfony/error-handler",
"version": "v7.2.3", "version": "v7.2.4",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/symfony/error-handler.git", "url": "https://github.com/symfony/error-handler.git",
"reference": "959a74d044a6db21f4caa6d695648dcb5584cb49" "reference": "aabf79938aa795350c07ce6464dd1985607d95d5"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/symfony/error-handler/zipball/959a74d044a6db21f4caa6d695648dcb5584cb49", "url": "https://api.github.com/repos/symfony/error-handler/zipball/aabf79938aa795350c07ce6464dd1985607d95d5",
"reference": "959a74d044a6db21f4caa6d695648dcb5584cb49", "reference": "aabf79938aa795350c07ce6464dd1985607d95d5",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
@ -3722,7 +3709,7 @@
"description": "Provides tools to manage errors and ease debugging PHP code", "description": "Provides tools to manage errors and ease debugging PHP code",
"homepage": "https://symfony.com", "homepage": "https://symfony.com",
"support": { "support": {
"source": "https://github.com/symfony/error-handler/tree/v7.2.3" "source": "https://github.com/symfony/error-handler/tree/v7.2.4"
}, },
"funding": [ "funding": [
{ {
@ -3738,7 +3725,7 @@
"type": "tidelift" "type": "tidelift"
} }
], ],
"time": "2025-01-07T09:39:55+00:00" "time": "2025-02-02T20:27:07+00:00"
}, },
{ {
"name": "symfony/event-dispatcher", "name": "symfony/event-dispatcher",
@ -4040,16 +4027,16 @@
}, },
{ {
"name": "symfony/http-kernel", "name": "symfony/http-kernel",
"version": "v7.2.3", "version": "v7.2.4",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/symfony/http-kernel.git", "url": "https://github.com/symfony/http-kernel.git",
"reference": "caae9807f8e25a9b43ce8cc6fafab6cf91f0cc9b" "reference": "9f1103734c5789798fefb90e91de4586039003ed"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/symfony/http-kernel/zipball/caae9807f8e25a9b43ce8cc6fafab6cf91f0cc9b", "url": "https://api.github.com/repos/symfony/http-kernel/zipball/9f1103734c5789798fefb90e91de4586039003ed",
"reference": "caae9807f8e25a9b43ce8cc6fafab6cf91f0cc9b", "reference": "9f1103734c5789798fefb90e91de4586039003ed",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
@ -4134,7 +4121,7 @@
"description": "Provides a structured process for converting a Request into a Response", "description": "Provides a structured process for converting a Request into a Response",
"homepage": "https://symfony.com", "homepage": "https://symfony.com",
"support": { "support": {
"source": "https://github.com/symfony/http-kernel/tree/v7.2.3" "source": "https://github.com/symfony/http-kernel/tree/v7.2.4"
}, },
"funding": [ "funding": [
{ {
@ -4150,7 +4137,7 @@
"type": "tidelift" "type": "tidelift"
} }
], ],
"time": "2025-01-29T07:40:13+00:00" "time": "2025-02-26T11:01:22+00:00"
}, },
{ {
"name": "symfony/mailer", "name": "symfony/mailer",
@ -4234,16 +4221,16 @@
}, },
{ {
"name": "symfony/mime", "name": "symfony/mime",
"version": "v7.2.3", "version": "v7.2.4",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/symfony/mime.git", "url": "https://github.com/symfony/mime.git",
"reference": "2fc3b4bd67e4747e45195bc4c98bea4628476204" "reference": "87ca22046b78c3feaff04b337f33b38510fd686b"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/symfony/mime/zipball/2fc3b4bd67e4747e45195bc4c98bea4628476204", "url": "https://api.github.com/repos/symfony/mime/zipball/87ca22046b78c3feaff04b337f33b38510fd686b",
"reference": "2fc3b4bd67e4747e45195bc4c98bea4628476204", "reference": "87ca22046b78c3feaff04b337f33b38510fd686b",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
@ -4298,7 +4285,7 @@
"mime-type" "mime-type"
], ],
"support": { "support": {
"source": "https://github.com/symfony/mime/tree/v7.2.3" "source": "https://github.com/symfony/mime/tree/v7.2.4"
}, },
"funding": [ "funding": [
{ {
@ -4314,7 +4301,7 @@
"type": "tidelift" "type": "tidelift"
} }
], ],
"time": "2025-01-27T11:08:17+00:00" "time": "2025-02-19T08:51:20+00:00"
}, },
{ {
"name": "symfony/polyfill-ctype", "name": "symfony/polyfill-ctype",
@ -4954,16 +4941,16 @@
}, },
{ {
"name": "symfony/process", "name": "symfony/process",
"version": "v7.2.0", "version": "v7.2.4",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/symfony/process.git", "url": "https://github.com/symfony/process.git",
"reference": "d34b22ba9390ec19d2dd966c40aa9e8462f27a7e" "reference": "d8f411ff3c7ddc4ae9166fb388d1190a2df5b5cf"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/symfony/process/zipball/d34b22ba9390ec19d2dd966c40aa9e8462f27a7e", "url": "https://api.github.com/repos/symfony/process/zipball/d8f411ff3c7ddc4ae9166fb388d1190a2df5b5cf",
"reference": "d34b22ba9390ec19d2dd966c40aa9e8462f27a7e", "reference": "d8f411ff3c7ddc4ae9166fb388d1190a2df5b5cf",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
@ -4995,7 +4982,7 @@
"description": "Executes commands in sub-processes", "description": "Executes commands in sub-processes",
"homepage": "https://symfony.com", "homepage": "https://symfony.com",
"support": { "support": {
"source": "https://github.com/symfony/process/tree/v7.2.0" "source": "https://github.com/symfony/process/tree/v7.2.4"
}, },
"funding": [ "funding": [
{ {
@ -5011,7 +4998,7 @@
"type": "tidelift" "type": "tidelift"
} }
], ],
"time": "2024-11-06T14:24:19+00:00" "time": "2025-02-05T08:33:46+00:00"
}, },
{ {
"name": "symfony/routing", "name": "symfony/routing",
@ -5266,16 +5253,16 @@
}, },
{ {
"name": "symfony/translation", "name": "symfony/translation",
"version": "v7.2.2", "version": "v7.2.4",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/symfony/translation.git", "url": "https://github.com/symfony/translation.git",
"reference": "e2674a30132b7cc4d74540d6c2573aa363f05923" "reference": "283856e6981286cc0d800b53bd5703e8e363f05a"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/symfony/translation/zipball/e2674a30132b7cc4d74540d6c2573aa363f05923", "url": "https://api.github.com/repos/symfony/translation/zipball/283856e6981286cc0d800b53bd5703e8e363f05a",
"reference": "e2674a30132b7cc4d74540d6c2573aa363f05923", "reference": "283856e6981286cc0d800b53bd5703e8e363f05a",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
@ -5341,7 +5328,7 @@
"description": "Provides tools to internationalize your application", "description": "Provides tools to internationalize your application",
"homepage": "https://symfony.com", "homepage": "https://symfony.com",
"support": { "support": {
"source": "https://github.com/symfony/translation/tree/v7.2.2" "source": "https://github.com/symfony/translation/tree/v7.2.4"
}, },
"funding": [ "funding": [
{ {
@ -5357,7 +5344,7 @@
"type": "tidelift" "type": "tidelift"
} }
], ],
"time": "2024-12-07T08:18:10+00:00" "time": "2025-02-13T10:27:23+00:00"
}, },
{ {
"name": "symfony/translation-contracts", "name": "symfony/translation-contracts",
@ -5869,30 +5856,33 @@
"packages-dev": [ "packages-dev": [
{ {
"name": "barryvdh/laravel-debugbar", "name": "barryvdh/laravel-debugbar",
"version": "v3.14.10", "version": "v3.15.2",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/barryvdh/laravel-debugbar.git", "url": "https://github.com/barryvdh/laravel-debugbar.git",
"reference": "56b9bd235e3fe62e250124804009ce5bab97cc63" "reference": "0bc1e1361e7fffc2be156f46ad1fba6927c01729"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/barryvdh/laravel-debugbar/zipball/56b9bd235e3fe62e250124804009ce5bab97cc63", "url": "https://api.github.com/repos/barryvdh/laravel-debugbar/zipball/0bc1e1361e7fffc2be156f46ad1fba6927c01729",
"reference": "56b9bd235e3fe62e250124804009ce5bab97cc63", "reference": "0bc1e1361e7fffc2be156f46ad1fba6927c01729",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
"illuminate/routing": "^9|^10|^11", "illuminate/routing": "^9|^10|^11|^12",
"illuminate/session": "^9|^10|^11", "illuminate/session": "^9|^10|^11|^12",
"illuminate/support": "^9|^10|^11", "illuminate/support": "^9|^10|^11|^12",
"maximebf/debugbar": "~1.23.0", "php": "^8.1",
"php": "^8.0", "php-debugbar/php-debugbar": "~2.1.1",
"symfony/finder": "^6|^7" "symfony/finder": "^6|^7"
}, },
"conflict": {
"maximebf/debugbar": "*"
},
"require-dev": { "require-dev": {
"mockery/mockery": "^1.3.3", "mockery/mockery": "^1.3.3",
"orchestra/testbench-dusk": "^5|^6|^7|^8|^9", "orchestra/testbench-dusk": "^7|^8|^9|^10",
"phpunit/phpunit": "^9.6|^10.5", "phpunit/phpunit": "^9.5.10|^10|^11",
"squizlabs/php_codesniffer": "^3.5" "squizlabs/php_codesniffer": "^3.5"
}, },
"type": "library", "type": "library",
@ -5906,7 +5896,7 @@
] ]
}, },
"branch-alias": { "branch-alias": {
"dev-master": "3.14-dev" "dev-master": "3.15-dev"
} }
}, },
"autoload": { "autoload": {
@ -5931,13 +5921,14 @@
"keywords": [ "keywords": [
"debug", "debug",
"debugbar", "debugbar",
"dev",
"laravel", "laravel",
"profiler", "profiler",
"webprofiler" "webprofiler"
], ],
"support": { "support": {
"issues": "https://github.com/barryvdh/laravel-debugbar/issues", "issues": "https://github.com/barryvdh/laravel-debugbar/issues",
"source": "https://github.com/barryvdh/laravel-debugbar/tree/v3.14.10" "source": "https://github.com/barryvdh/laravel-debugbar/tree/v3.15.2"
}, },
"funding": [ "funding": [
{ {
@ -5949,7 +5940,7 @@
"type": "github" "type": "github"
} }
], ],
"time": "2024-12-23T10:10:42+00:00" "time": "2025-02-25T15:25:22+00:00"
}, },
{ {
"name": "fakerphp/faker", "name": "fakerphp/faker",
@ -6136,74 +6127,6 @@
}, },
"time": "2020-07-09T08:09:16+00:00" "time": "2020-07-09T08:09:16+00:00"
}, },
{
"name": "maximebf/debugbar",
"version": "v1.23.5",
"source": {
"type": "git",
"url": "https://github.com/php-debugbar/php-debugbar.git",
"reference": "eeabd61a1f19ba5dcd5ac4585a477130ee03ce25"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/php-debugbar/php-debugbar/zipball/eeabd61a1f19ba5dcd5ac4585a477130ee03ce25",
"reference": "eeabd61a1f19ba5dcd5ac4585a477130ee03ce25",
"shasum": ""
},
"require": {
"php": "^7.2|^8",
"psr/log": "^1|^2|^3",
"symfony/var-dumper": "^4|^5|^6|^7"
},
"require-dev": {
"dbrekelmans/bdi": "^1",
"phpunit/phpunit": "^8|^9",
"symfony/panther": "^1|^2.1",
"twig/twig": "^1.38|^2.7|^3.0"
},
"suggest": {
"kriswallsmith/assetic": "The best way to manage assets",
"monolog/monolog": "Log using Monolog",
"predis/predis": "Redis storage"
},
"type": "library",
"extra": {
"branch-alias": {
"dev-master": "1.23-dev"
}
},
"autoload": {
"psr-4": {
"DebugBar\\": "src/DebugBar/"
}
},
"notification-url": "https://packagist.org/downloads/",
"license": [
"MIT"
],
"authors": [
{
"name": "Maxime Bouroumeau-Fuseau",
"email": "maxime.bouroumeau@gmail.com",
"homepage": "http://maximebf.com"
},
{
"name": "Barry vd. Heuvel",
"email": "barryvdh@gmail.com"
}
],
"description": "Debug bar in the browser for php application",
"homepage": "https://github.com/maximebf/php-debugbar",
"keywords": [
"debug",
"debugbar"
],
"support": {
"issues": "https://github.com/php-debugbar/php-debugbar/issues",
"source": "https://github.com/php-debugbar/php-debugbar/tree/v1.23.5"
},
"time": "2024-12-15T19:20:42+00:00"
},
{ {
"name": "mockery/mockery", "name": "mockery/mockery",
"version": "1.6.12", "version": "1.6.12",
@ -6289,16 +6212,16 @@
}, },
{ {
"name": "myclabs/deep-copy", "name": "myclabs/deep-copy",
"version": "1.12.1", "version": "1.13.0",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/myclabs/DeepCopy.git", "url": "https://github.com/myclabs/DeepCopy.git",
"reference": "123267b2c49fbf30d78a7b2d333f6be754b94845" "reference": "024473a478be9df5fdaca2c793f2232fe788e414"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/myclabs/DeepCopy/zipball/123267b2c49fbf30d78a7b2d333f6be754b94845", "url": "https://api.github.com/repos/myclabs/DeepCopy/zipball/024473a478be9df5fdaca2c793f2232fe788e414",
"reference": "123267b2c49fbf30d78a7b2d333f6be754b94845", "reference": "024473a478be9df5fdaca2c793f2232fe788e414",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
@ -6337,7 +6260,7 @@
], ],
"support": { "support": {
"issues": "https://github.com/myclabs/DeepCopy/issues", "issues": "https://github.com/myclabs/DeepCopy/issues",
"source": "https://github.com/myclabs/DeepCopy/tree/1.12.1" "source": "https://github.com/myclabs/DeepCopy/tree/1.13.0"
}, },
"funding": [ "funding": [
{ {
@ -6345,7 +6268,7 @@
"type": "tidelift" "type": "tidelift"
} }
], ],
"time": "2024-11-08T17:47:46+00:00" "time": "2025-02-12T12:17:51+00:00"
}, },
{ {
"name": "nikic/php-parser", "name": "nikic/php-parser",
@ -6622,24 +6545,94 @@
"time": "2022-02-21T01:04:05+00:00" "time": "2022-02-21T01:04:05+00:00"
}, },
{ {
"name": "phpunit/php-code-coverage", "name": "php-debugbar/php-debugbar",
"version": "11.0.8", "version": "v2.1.6",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/sebastianbergmann/php-code-coverage.git", "url": "https://github.com/php-debugbar/php-debugbar.git",
"reference": "418c59fd080954f8c4aa5631d9502ecda2387118" "reference": "16fa68da5617220594aa5e33fa9de415f94784a0"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/sebastianbergmann/php-code-coverage/zipball/418c59fd080954f8c4aa5631d9502ecda2387118", "url": "https://api.github.com/repos/php-debugbar/php-debugbar/zipball/16fa68da5617220594aa5e33fa9de415f94784a0",
"reference": "418c59fd080954f8c4aa5631d9502ecda2387118", "reference": "16fa68da5617220594aa5e33fa9de415f94784a0",
"shasum": ""
},
"require": {
"php": "^8",
"psr/log": "^1|^2|^3",
"symfony/var-dumper": "^4|^5|^6|^7"
},
"require-dev": {
"dbrekelmans/bdi": "^1",
"phpunit/phpunit": "^8|^9",
"symfony/panther": "^1|^2.1",
"twig/twig": "^1.38|^2.7|^3.0"
},
"suggest": {
"kriswallsmith/assetic": "The best way to manage assets",
"monolog/monolog": "Log using Monolog",
"predis/predis": "Redis storage"
},
"type": "library",
"extra": {
"branch-alias": {
"dev-master": "2.0-dev"
}
},
"autoload": {
"psr-4": {
"DebugBar\\": "src/DebugBar/"
}
},
"notification-url": "https://packagist.org/downloads/",
"license": [
"MIT"
],
"authors": [
{
"name": "Maxime Bouroumeau-Fuseau",
"email": "maxime.bouroumeau@gmail.com",
"homepage": "http://maximebf.com"
},
{
"name": "Barry vd. Heuvel",
"email": "barryvdh@gmail.com"
}
],
"description": "Debug bar in the browser for php application",
"homepage": "https://github.com/php-debugbar/php-debugbar",
"keywords": [
"debug",
"debug bar",
"debugbar",
"dev"
],
"support": {
"issues": "https://github.com/php-debugbar/php-debugbar/issues",
"source": "https://github.com/php-debugbar/php-debugbar/tree/v2.1.6"
},
"time": "2025-02-21T17:47:03+00:00"
},
{
"name": "phpunit/php-code-coverage",
"version": "11.0.9",
"source": {
"type": "git",
"url": "https://github.com/sebastianbergmann/php-code-coverage.git",
"reference": "14d63fbcca18457e49c6f8bebaa91a87e8e188d7"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/sebastianbergmann/php-code-coverage/zipball/14d63fbcca18457e49c6f8bebaa91a87e8e188d7",
"reference": "14d63fbcca18457e49c6f8bebaa91a87e8e188d7",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
"ext-dom": "*", "ext-dom": "*",
"ext-libxml": "*", "ext-libxml": "*",
"ext-xmlwriter": "*", "ext-xmlwriter": "*",
"nikic/php-parser": "^5.3.1", "nikic/php-parser": "^5.4.0",
"php": ">=8.2", "php": ">=8.2",
"phpunit/php-file-iterator": "^5.1.0", "phpunit/php-file-iterator": "^5.1.0",
"phpunit/php-text-template": "^4.0.1", "phpunit/php-text-template": "^4.0.1",
@ -6651,7 +6644,7 @@
"theseer/tokenizer": "^1.2.3" "theseer/tokenizer": "^1.2.3"
}, },
"require-dev": { "require-dev": {
"phpunit/phpunit": "^11.5.0" "phpunit/phpunit": "^11.5.2"
}, },
"suggest": { "suggest": {
"ext-pcov": "PHP extension that provides line coverage", "ext-pcov": "PHP extension that provides line coverage",
@ -6689,7 +6682,7 @@
"support": { "support": {
"issues": "https://github.com/sebastianbergmann/php-code-coverage/issues", "issues": "https://github.com/sebastianbergmann/php-code-coverage/issues",
"security": "https://github.com/sebastianbergmann/php-code-coverage/security/policy", "security": "https://github.com/sebastianbergmann/php-code-coverage/security/policy",
"source": "https://github.com/sebastianbergmann/php-code-coverage/tree/11.0.8" "source": "https://github.com/sebastianbergmann/php-code-coverage/tree/11.0.9"
}, },
"funding": [ "funding": [
{ {
@ -6697,7 +6690,7 @@
"type": "github" "type": "github"
} }
], ],
"time": "2024-12-11T12:34:27+00:00" "time": "2025-02-25T13:26:39+00:00"
}, },
{ {
"name": "phpunit/php-file-iterator", "name": "phpunit/php-file-iterator",
@ -6946,16 +6939,16 @@
}, },
{ {
"name": "phpunit/phpunit", "name": "phpunit/phpunit",
"version": "11.5.7", "version": "11.5.11",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/sebastianbergmann/phpunit.git", "url": "https://github.com/sebastianbergmann/phpunit.git",
"reference": "e1cb706f019e2547039ca2c839898cd5f557ee5d" "reference": "3946ac38410be7440186c6e74584f31b15107fc7"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/e1cb706f019e2547039ca2c839898cd5f557ee5d", "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/3946ac38410be7440186c6e74584f31b15107fc7",
"reference": "e1cb706f019e2547039ca2c839898cd5f557ee5d", "reference": "3946ac38410be7440186c6e74584f31b15107fc7",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
@ -6965,11 +6958,11 @@
"ext-mbstring": "*", "ext-mbstring": "*",
"ext-xml": "*", "ext-xml": "*",
"ext-xmlwriter": "*", "ext-xmlwriter": "*",
"myclabs/deep-copy": "^1.12.1", "myclabs/deep-copy": "^1.13.0",
"phar-io/manifest": "^2.0.4", "phar-io/manifest": "^2.0.4",
"phar-io/version": "^3.2.1", "phar-io/version": "^3.2.1",
"php": ">=8.2", "php": ">=8.2",
"phpunit/php-code-coverage": "^11.0.8", "phpunit/php-code-coverage": "^11.0.9",
"phpunit/php-file-iterator": "^5.1.0", "phpunit/php-file-iterator": "^5.1.0",
"phpunit/php-invoker": "^5.0.1", "phpunit/php-invoker": "^5.0.1",
"phpunit/php-text-template": "^4.0.1", "phpunit/php-text-template": "^4.0.1",
@ -7027,7 +7020,7 @@
"support": { "support": {
"issues": "https://github.com/sebastianbergmann/phpunit/issues", "issues": "https://github.com/sebastianbergmann/phpunit/issues",
"security": "https://github.com/sebastianbergmann/phpunit/security/policy", "security": "https://github.com/sebastianbergmann/phpunit/security/policy",
"source": "https://github.com/sebastianbergmann/phpunit/tree/11.5.7" "source": "https://github.com/sebastianbergmann/phpunit/tree/11.5.11"
}, },
"funding": [ "funding": [
{ {
@ -7043,7 +7036,7 @@
"type": "tidelift" "type": "tidelift"
} }
], ],
"time": "2025-02-06T16:10:05+00:00" "time": "2025-03-05T07:36:02+00:00"
}, },
{ {
"name": "sebastian/cli-parser", "name": "sebastian/cli-parser",
@ -8036,30 +8029,30 @@
}, },
{ {
"name": "spatie/error-solutions", "name": "spatie/error-solutions",
"version": "1.1.2", "version": "1.1.3",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/spatie/error-solutions.git", "url": "https://github.com/spatie/error-solutions.git",
"reference": "d239a65235a1eb128dfa0a4e4c4ef032ea11b541" "reference": "e495d7178ca524f2dd0fe6a1d99a1e608e1c9936"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/spatie/error-solutions/zipball/d239a65235a1eb128dfa0a4e4c4ef032ea11b541", "url": "https://api.github.com/repos/spatie/error-solutions/zipball/e495d7178ca524f2dd0fe6a1d99a1e608e1c9936",
"reference": "d239a65235a1eb128dfa0a4e4c4ef032ea11b541", "reference": "e495d7178ca524f2dd0fe6a1d99a1e608e1c9936",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
"php": "^8.0" "php": "^8.0"
}, },
"require-dev": { "require-dev": {
"illuminate/broadcasting": "^10.0|^11.0", "illuminate/broadcasting": "^10.0|^11.0|^12.0",
"illuminate/cache": "^10.0|^11.0", "illuminate/cache": "^10.0|^11.0|^12.0",
"illuminate/support": "^10.0|^11.0", "illuminate/support": "^10.0|^11.0|^12.0",
"livewire/livewire": "^2.11|^3.3.5", "livewire/livewire": "^2.11|^3.5.20",
"openai-php/client": "^0.10.1", "openai-php/client": "^0.10.1",
"orchestra/testbench": "^7.0|8.22.3|^9.0", "orchestra/testbench": "8.22.3|^9.0|^10.0",
"pestphp/pest": "^2.20", "pestphp/pest": "^2.20|^3.0",
"phpstan/phpstan": "^1.11", "phpstan/phpstan": "^2.1",
"psr/simple-cache": "^3.0", "psr/simple-cache": "^3.0",
"psr/simple-cache-implementation": "^3.0", "psr/simple-cache-implementation": "^3.0",
"spatie/ray": "^1.28", "spatie/ray": "^1.28",
@ -8098,7 +8091,7 @@
], ],
"support": { "support": {
"issues": "https://github.com/spatie/error-solutions/issues", "issues": "https://github.com/spatie/error-solutions/issues",
"source": "https://github.com/spatie/error-solutions/tree/1.1.2" "source": "https://github.com/spatie/error-solutions/tree/1.1.3"
}, },
"funding": [ "funding": [
{ {
@ -8106,24 +8099,24 @@
"type": "github" "type": "github"
} }
], ],
"time": "2024-12-11T09:51:56+00:00" "time": "2025-02-14T12:29:50+00:00"
}, },
{ {
"name": "spatie/flare-client-php", "name": "spatie/flare-client-php",
"version": "1.10.0", "version": "1.10.1",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/spatie/flare-client-php.git", "url": "https://github.com/spatie/flare-client-php.git",
"reference": "140a42b2c5d59ac4ecf8f5b493386a4f2eb28272" "reference": "bf1716eb98bd689451b071548ae9e70738dce62f"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/spatie/flare-client-php/zipball/140a42b2c5d59ac4ecf8f5b493386a4f2eb28272", "url": "https://api.github.com/repos/spatie/flare-client-php/zipball/bf1716eb98bd689451b071548ae9e70738dce62f",
"reference": "140a42b2c5d59ac4ecf8f5b493386a4f2eb28272", "reference": "bf1716eb98bd689451b071548ae9e70738dce62f",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
"illuminate/pipeline": "^8.0|^9.0|^10.0|^11.0", "illuminate/pipeline": "^8.0|^9.0|^10.0|^11.0|^12.0",
"php": "^8.0", "php": "^8.0",
"spatie/backtrace": "^1.6.1", "spatie/backtrace": "^1.6.1",
"symfony/http-foundation": "^5.2|^6.0|^7.0", "symfony/http-foundation": "^5.2|^6.0|^7.0",
@ -8167,7 +8160,7 @@
], ],
"support": { "support": {
"issues": "https://github.com/spatie/flare-client-php/issues", "issues": "https://github.com/spatie/flare-client-php/issues",
"source": "https://github.com/spatie/flare-client-php/tree/1.10.0" "source": "https://github.com/spatie/flare-client-php/tree/1.10.1"
}, },
"funding": [ "funding": [
{ {
@ -8175,20 +8168,20 @@
"type": "github" "type": "github"
} }
], ],
"time": "2024-12-02T14:30:06+00:00" "time": "2025-02-14T13:42:06+00:00"
}, },
{ {
"name": "spatie/ignition", "name": "spatie/ignition",
"version": "1.15.0", "version": "1.15.1",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/spatie/ignition.git", "url": "https://github.com/spatie/ignition.git",
"reference": "e3a68e137371e1eb9edc7f78ffa733f3b98991d2" "reference": "31f314153020aee5af3537e507fef892ffbf8c85"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/spatie/ignition/zipball/e3a68e137371e1eb9edc7f78ffa733f3b98991d2", "url": "https://api.github.com/repos/spatie/ignition/zipball/31f314153020aee5af3537e507fef892ffbf8c85",
"reference": "e3a68e137371e1eb9edc7f78ffa733f3b98991d2", "reference": "31f314153020aee5af3537e507fef892ffbf8c85",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
@ -8201,7 +8194,7 @@
"symfony/var-dumper": "^5.4|^6.0|^7.0" "symfony/var-dumper": "^5.4|^6.0|^7.0"
}, },
"require-dev": { "require-dev": {
"illuminate/cache": "^9.52|^10.0|^11.0", "illuminate/cache": "^9.52|^10.0|^11.0|^12.0",
"mockery/mockery": "^1.4", "mockery/mockery": "^1.4",
"pestphp/pest": "^1.20|^2.0", "pestphp/pest": "^1.20|^2.0",
"phpstan/extension-installer": "^1.1", "phpstan/extension-installer": "^1.1",
@ -8258,27 +8251,27 @@
"type": "github" "type": "github"
} }
], ],
"time": "2024-06-12T14:55:22+00:00" "time": "2025-02-21T14:31:39+00:00"
}, },
{ {
"name": "spatie/laravel-ignition", "name": "spatie/laravel-ignition",
"version": "2.9.0", "version": "2.9.1",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/spatie/laravel-ignition.git", "url": "https://github.com/spatie/laravel-ignition.git",
"reference": "62042df15314b829d0f26e02108f559018e2aad0" "reference": "1baee07216d6748ebd3a65ba97381b051838707a"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/spatie/laravel-ignition/zipball/62042df15314b829d0f26e02108f559018e2aad0", "url": "https://api.github.com/repos/spatie/laravel-ignition/zipball/1baee07216d6748ebd3a65ba97381b051838707a",
"reference": "62042df15314b829d0f26e02108f559018e2aad0", "reference": "1baee07216d6748ebd3a65ba97381b051838707a",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
"ext-curl": "*", "ext-curl": "*",
"ext-json": "*", "ext-json": "*",
"ext-mbstring": "*", "ext-mbstring": "*",
"illuminate/support": "^10.0|^11.0", "illuminate/support": "^10.0|^11.0|^12.0",
"php": "^8.1", "php": "^8.1",
"spatie/ignition": "^1.15", "spatie/ignition": "^1.15",
"symfony/console": "^6.2.3|^7.0", "symfony/console": "^6.2.3|^7.0",
@ -8287,12 +8280,12 @@
"require-dev": { "require-dev": {
"livewire/livewire": "^2.11|^3.3.5", "livewire/livewire": "^2.11|^3.3.5",
"mockery/mockery": "^1.5.1", "mockery/mockery": "^1.5.1",
"openai-php/client": "^0.8.1", "openai-php/client": "^0.8.1|^0.10",
"orchestra/testbench": "8.22.3|^9.0", "orchestra/testbench": "8.22.3|^9.0|^10.0",
"pestphp/pest": "^2.34", "pestphp/pest": "^2.34|^3.7",
"phpstan/extension-installer": "^1.3.1", "phpstan/extension-installer": "^1.3.1",
"phpstan/phpstan-deprecation-rules": "^1.1.1", "phpstan/phpstan-deprecation-rules": "^1.1.1|^2.0",
"phpstan/phpstan-phpunit": "^1.3.16", "phpstan/phpstan-phpunit": "^1.3.16|^2.0",
"vlucas/phpdotenv": "^5.5" "vlucas/phpdotenv": "^5.5"
}, },
"suggest": { "suggest": {
@ -8349,7 +8342,7 @@
"type": "github" "type": "github"
} }
], ],
"time": "2024-12-02T08:43:31+00:00" "time": "2025-02-20T13:13:55+00:00"
}, },
{ {
"name": "staabm/side-effects-detector", "name": "staabm/side-effects-detector",

View File

@ -15,7 +15,7 @@ return [
| |
*/ */
'default' => env('LDAP_CONNECTION', 'openldap'), 'default' => env('LDAP_CONNECTION', 'ldap'),
/* /*
|-------------------------------------------------------------------------- |--------------------------------------------------------------------------
@ -30,7 +30,7 @@ return [
'connections' => [ 'connections' => [
'openldap' => [ 'ldap' => [
'hosts' => [env('LDAP_HOST', '127.0.0.1')], 'hosts' => [env('LDAP_HOST', '127.0.0.1')],
'username' => env('LDAP_USERNAME', 'cn=user,dc=local,dc=com'), 'username' => env('LDAP_USERNAME', 'cn=user,dc=local,dc=com'),
'password' => env('LDAP_PASSWORD', 'secret'), 'password' => env('LDAP_PASSWORD', 'secret'),
@ -42,7 +42,7 @@ return [
'name' => env('LDAP_NAME','LDAP Server'), 'name' => env('LDAP_NAME','LDAP Server'),
], ],
'openldaps' => [ 'ldaps' => [
'hosts' => [env('LDAP_HOST', '127.0.0.1')], 'hosts' => [env('LDAP_HOST', '127.0.0.1')],
'username' => env('LDAP_USERNAME', 'cn=user,dc=local,dc=com'), 'username' => env('LDAP_USERNAME', 'cn=user,dc=local,dc=com'),
'password' => env('LDAP_PASSWORD', 'secret'), 'password' => env('LDAP_PASSWORD', 'secret'),
@ -54,7 +54,7 @@ return [
'name' => env('LDAP_NAME','LDAPS Server'), 'name' => env('LDAP_NAME','LDAPS Server'),
], ],
'openldaptls' => [ 'starttls' => [
'hosts' => [env('LDAP_HOST', '127.0.0.1')], 'hosts' => [env('LDAP_HOST', '127.0.0.1')],
'username' => env('LDAP_USERNAME', 'cn=user,dc=local,dc=com'), 'username' => env('LDAP_USERNAME', 'cn=user,dc=local,dc=com'),
'password' => env('LDAP_PASSWORD', 'secret'), 'password' => env('LDAP_PASSWORD', 'secret'),
@ -66,6 +66,7 @@ return [
'name' => env('LDAP_NAME','LDAP-TLS Server'), 'name' => env('LDAP_NAME','LDAP-TLS Server'),
], ],
/*
'opendj' => [ 'opendj' => [
'hosts' => ['opendj'], 'hosts' => ['opendj'],
'username' => 'cn=Directory Manager', 'username' => 'cn=Directory Manager',
@ -77,6 +78,7 @@ return [
'use_tls' => env('LDAP_TLS', false), 'use_tls' => env('LDAP_TLS', false),
'name' => 'OpenDJ Server', 'name' => 'OpenDJ Server',
], ],
*/
], ],

361
package-lock.json generated
View File

@ -61,22 +61,21 @@
} }
}, },
"node_modules/@babel/core": { "node_modules/@babel/core": {
"version": "7.26.8", "version": "7.26.9",
"resolved": "https://registry.npmjs.org/@babel/core/-/core-7.26.8.tgz", "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.26.9.tgz",
"integrity": "sha512-l+lkXCHS6tQEc5oUpK28xBOZ6+HwaH7YwoYQbLFiYb4nS2/l1tKnZEtEWkD0GuiYdvArf9qBS0XlQGXzPMsNqQ==", "integrity": "sha512-lWBYIrF7qK5+GjY5Uy+/hEgp8OJWOD/rpy74GplYRhEauvbHDeFB8t5hPOZxCZ0Oxf4Cc36tK51/l3ymJysrKw==",
"license": "MIT", "license": "MIT",
"dependencies": { "dependencies": {
"@ampproject/remapping": "^2.2.0", "@ampproject/remapping": "^2.2.0",
"@babel/code-frame": "^7.26.2", "@babel/code-frame": "^7.26.2",
"@babel/generator": "^7.26.8", "@babel/generator": "^7.26.9",
"@babel/helper-compilation-targets": "^7.26.5", "@babel/helper-compilation-targets": "^7.26.5",
"@babel/helper-module-transforms": "^7.26.0", "@babel/helper-module-transforms": "^7.26.0",
"@babel/helpers": "^7.26.7", "@babel/helpers": "^7.26.9",
"@babel/parser": "^7.26.8", "@babel/parser": "^7.26.9",
"@babel/template": "^7.26.8", "@babel/template": "^7.26.9",
"@babel/traverse": "^7.26.8", "@babel/traverse": "^7.26.9",
"@babel/types": "^7.26.8", "@babel/types": "^7.26.9",
"@types/gensync": "^1.0.0",
"convert-source-map": "^2.0.0", "convert-source-map": "^2.0.0",
"debug": "^4.1.0", "debug": "^4.1.0",
"gensync": "^1.0.0-beta.2", "gensync": "^1.0.0-beta.2",
@ -101,13 +100,13 @@
} }
}, },
"node_modules/@babel/generator": { "node_modules/@babel/generator": {
"version": "7.26.8", "version": "7.26.9",
"resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.26.8.tgz", "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.26.9.tgz",
"integrity": "sha512-ef383X5++iZHWAXX0SXQR6ZyQhw/0KtTkrTz61WXRhFM6dhpHulO/RJz79L8S6ugZHJkOOkUrUdxgdF2YiPFnA==", "integrity": "sha512-kEWdzjOAUMW4hAyrzJ0ZaTOu9OmpyDIQicIh0zg0EEcEkYXZb2TjtBhnHi2ViX7PKwZqF4xwqfAm299/QMP3lg==",
"license": "MIT", "license": "MIT",
"dependencies": { "dependencies": {
"@babel/parser": "^7.26.8", "@babel/parser": "^7.26.9",
"@babel/types": "^7.26.8", "@babel/types": "^7.26.9",
"@jridgewell/gen-mapping": "^0.3.5", "@jridgewell/gen-mapping": "^0.3.5",
"@jridgewell/trace-mapping": "^0.3.25", "@jridgewell/trace-mapping": "^0.3.25",
"jsesc": "^3.0.2" "jsesc": "^3.0.2"
@ -154,17 +153,17 @@
} }
}, },
"node_modules/@babel/helper-create-class-features-plugin": { "node_modules/@babel/helper-create-class-features-plugin": {
"version": "7.25.9", "version": "7.26.9",
"resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.25.9.tgz", "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.26.9.tgz",
"integrity": "sha512-UTZQMvt0d/rSz6KI+qdu7GQze5TIajwTS++GUozlw8VBJDEOAqSXwm1WvmYEZwqdqSGQshRocPDqrt4HBZB3fQ==", "integrity": "sha512-ubbUqCofvxPRurw5L8WTsCLSkQiVpov4Qx0WMA+jUN+nXBK8ADPlJO1grkFw5CWKC5+sZSOfuGMdX1aI1iT9Sg==",
"license": "MIT", "license": "MIT",
"dependencies": { "dependencies": {
"@babel/helper-annotate-as-pure": "^7.25.9", "@babel/helper-annotate-as-pure": "^7.25.9",
"@babel/helper-member-expression-to-functions": "^7.25.9", "@babel/helper-member-expression-to-functions": "^7.25.9",
"@babel/helper-optimise-call-expression": "^7.25.9", "@babel/helper-optimise-call-expression": "^7.25.9",
"@babel/helper-replace-supers": "^7.25.9", "@babel/helper-replace-supers": "^7.26.5",
"@babel/helper-skip-transparent-expression-wrappers": "^7.25.9", "@babel/helper-skip-transparent-expression-wrappers": "^7.25.9",
"@babel/traverse": "^7.25.9", "@babel/traverse": "^7.26.9",
"semver": "^6.3.1" "semver": "^6.3.1"
}, },
"engines": { "engines": {
@ -378,25 +377,25 @@
} }
}, },
"node_modules/@babel/helpers": { "node_modules/@babel/helpers": {
"version": "7.26.7", "version": "7.26.9",
"resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.26.7.tgz", "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.26.9.tgz",
"integrity": "sha512-8NHiL98vsi0mbPQmYAGWwfcFaOy4j2HY49fXJCfuDcdE7fMIsH9a7GdaeXpIBsbT7307WU8KCMp5pUVDNL4f9A==", "integrity": "sha512-Mz/4+y8udxBKdmzt/UjPACs4G3j5SshJJEFFKxlCGPydG4JAHXxjWjAwjd09tf6oINvl1VfMJo+nB7H2YKQ0dA==",
"license": "MIT", "license": "MIT",
"dependencies": { "dependencies": {
"@babel/template": "^7.25.9", "@babel/template": "^7.26.9",
"@babel/types": "^7.26.7" "@babel/types": "^7.26.9"
}, },
"engines": { "engines": {
"node": ">=6.9.0" "node": ">=6.9.0"
} }
}, },
"node_modules/@babel/parser": { "node_modules/@babel/parser": {
"version": "7.26.8", "version": "7.26.9",
"resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.26.8.tgz", "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.26.9.tgz",
"integrity": "sha512-TZIQ25pkSoaKEYYaHbbxkfL36GNsQ6iFiBbeuzAkLnXayKR1yP1zFe+NxuZWWsUyvt8icPU9CCq0sgWGXR1GEw==", "integrity": "sha512-81NWa1njQblgZbQHxWHpxxCzNsa3ZwvFqpUg7P+NNUU6f3UU2jBEg4OlF/J6rl8+PQGh1q6/zWScd001YwcA5A==",
"license": "MIT", "license": "MIT",
"dependencies": { "dependencies": {
"@babel/types": "^7.26.8" "@babel/types": "^7.26.9"
}, },
"bin": { "bin": {
"parser": "bin/babel-parser.js" "parser": "bin/babel-parser.js"
@ -841,12 +840,12 @@
} }
}, },
"node_modules/@babel/plugin-transform-for-of": { "node_modules/@babel/plugin-transform-for-of": {
"version": "7.25.9", "version": "7.26.9",
"resolved": "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.25.9.tgz", "resolved": "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.26.9.tgz",
"integrity": "sha512-LqHxduHoaGELJl2uhImHwRQudhCM50pT46rIBNvtT/Oql3nqiS3wOwP+5ten7NpYSXrrVLgtZU3DZmPtWZo16A==", "integrity": "sha512-Hry8AusVm8LW5BVFgiyUReuoGzPUpdHQQqJY5bZnbbf+ngOHWuCuYFKw/BqaaWlvEUrF91HMhDtEaI1hZzNbLg==",
"license": "MIT", "license": "MIT",
"dependencies": { "dependencies": {
"@babel/helper-plugin-utils": "^7.25.9", "@babel/helper-plugin-utils": "^7.26.5",
"@babel/helper-skip-transparent-expression-wrappers": "^7.25.9" "@babel/helper-skip-transparent-expression-wrappers": "^7.25.9"
}, },
"engines": { "engines": {
@ -1235,9 +1234,9 @@
} }
}, },
"node_modules/@babel/plugin-transform-runtime": { "node_modules/@babel/plugin-transform-runtime": {
"version": "7.26.8", "version": "7.26.9",
"resolved": "https://registry.npmjs.org/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.26.8.tgz", "resolved": "https://registry.npmjs.org/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.26.9.tgz",
"integrity": "sha512-H0jlQxFMI0Q8SyGPsj9pO3ygVQRxPkIGytsL3m1Zqca8KrCPpMlvh+e2dxknqdfS8LFwBw+PpiYPD9qy/FPQpA==", "integrity": "sha512-Jf+8y9wXQbbxvVYTM8gO5oEF2POdNji0NMltEkG7FtmzD9PVz7/lxpqSdTvwsjTMU5HIHuDVNf2SOxLkWi+wPQ==",
"license": "MIT", "license": "MIT",
"dependencies": { "dependencies": {
"@babel/helper-module-imports": "^7.25.9", "@babel/helper-module-imports": "^7.25.9",
@ -1403,9 +1402,9 @@
} }
}, },
"node_modules/@babel/preset-env": { "node_modules/@babel/preset-env": {
"version": "7.26.8", "version": "7.26.9",
"resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.26.8.tgz", "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.26.9.tgz",
"integrity": "sha512-um7Sy+2THd697S4zJEfv/U5MHGJzkN2xhtsR3T/SWRbVSic62nbISh51VVfU9JiO/L/Z97QczHTaFVkOU8IzNg==", "integrity": "sha512-vX3qPGE8sEKEAZCWk05k3cpTAE3/nOYca++JA+Rd0z2NCNzabmYvEiSShKzm10zdquOIAVXsy2Ei/DTW34KlKQ==",
"license": "MIT", "license": "MIT",
"dependencies": { "dependencies": {
"@babel/compat-data": "^7.26.8", "@babel/compat-data": "^7.26.8",
@ -1437,7 +1436,7 @@
"@babel/plugin-transform-dynamic-import": "^7.25.9", "@babel/plugin-transform-dynamic-import": "^7.25.9",
"@babel/plugin-transform-exponentiation-operator": "^7.26.3", "@babel/plugin-transform-exponentiation-operator": "^7.26.3",
"@babel/plugin-transform-export-namespace-from": "^7.25.9", "@babel/plugin-transform-export-namespace-from": "^7.25.9",
"@babel/plugin-transform-for-of": "^7.25.9", "@babel/plugin-transform-for-of": "^7.26.9",
"@babel/plugin-transform-function-name": "^7.25.9", "@babel/plugin-transform-function-name": "^7.25.9",
"@babel/plugin-transform-json-strings": "^7.25.9", "@babel/plugin-transform-json-strings": "^7.25.9",
"@babel/plugin-transform-literals": "^7.25.9", "@babel/plugin-transform-literals": "^7.25.9",
@ -1522,9 +1521,9 @@
} }
}, },
"node_modules/@babel/runtime": { "node_modules/@babel/runtime": {
"version": "7.26.7", "version": "7.26.9",
"resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.26.7.tgz", "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.26.9.tgz",
"integrity": "sha512-AOPI3D+a8dXnja+iwsUqGRjr1BbZIe771sXdapOtYI531gSqpi92vXivKcq2asu/DFpdl1ceFAKZyRzK2PCVcQ==", "integrity": "sha512-aA63XwOkcl4xxQa3HjPMqOP6LiK0ZDv3mUPYEFXkpHbaFjtGggE1A61FjFzJnB+p7/oy2gA8E+rcBNl/zC1tMg==",
"license": "MIT", "license": "MIT",
"dependencies": { "dependencies": {
"regenerator-runtime": "^0.14.0" "regenerator-runtime": "^0.14.0"
@ -1534,30 +1533,30 @@
} }
}, },
"node_modules/@babel/template": { "node_modules/@babel/template": {
"version": "7.26.8", "version": "7.26.9",
"resolved": "https://registry.npmjs.org/@babel/template/-/template-7.26.8.tgz", "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.26.9.tgz",
"integrity": "sha512-iNKaX3ZebKIsCvJ+0jd6embf+Aulaa3vNBqZ41kM7iTWjx5qzWKXGHiJUW3+nTpQ18SG11hdF8OAzKrpXkb96Q==", "integrity": "sha512-qyRplbeIpNZhmzOysF/wFMuP9sctmh2cFzRAZOn1YapxBsE1i9bJIY586R/WBLfLcmcBlM8ROBiQURnnNy+zfA==",
"license": "MIT", "license": "MIT",
"dependencies": { "dependencies": {
"@babel/code-frame": "^7.26.2", "@babel/code-frame": "^7.26.2",
"@babel/parser": "^7.26.8", "@babel/parser": "^7.26.9",
"@babel/types": "^7.26.8" "@babel/types": "^7.26.9"
}, },
"engines": { "engines": {
"node": ">=6.9.0" "node": ">=6.9.0"
} }
}, },
"node_modules/@babel/traverse": { "node_modules/@babel/traverse": {
"version": "7.26.8", "version": "7.26.9",
"resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.26.8.tgz", "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.26.9.tgz",
"integrity": "sha512-nic9tRkjYH0oB2dzr/JoGIm+4Q6SuYeLEiIiZDwBscRMYFJ+tMAz98fuel9ZnbXViA2I0HVSSRRK8DW5fjXStA==", "integrity": "sha512-ZYW7L+pL8ahU5fXmNbPF+iZFHCv5scFak7MZ9bwaRPLUhHh7QQEMjZUg0HevihoqCM5iSYHN61EyCoZvqC+bxg==",
"license": "MIT", "license": "MIT",
"dependencies": { "dependencies": {
"@babel/code-frame": "^7.26.2", "@babel/code-frame": "^7.26.2",
"@babel/generator": "^7.26.8", "@babel/generator": "^7.26.9",
"@babel/parser": "^7.26.8", "@babel/parser": "^7.26.9",
"@babel/template": "^7.26.8", "@babel/template": "^7.26.9",
"@babel/types": "^7.26.8", "@babel/types": "^7.26.9",
"debug": "^4.3.1", "debug": "^4.3.1",
"globals": "^11.1.0" "globals": "^11.1.0"
}, },
@ -1566,9 +1565,9 @@
} }
}, },
"node_modules/@babel/types": { "node_modules/@babel/types": {
"version": "7.26.8", "version": "7.26.9",
"resolved": "https://registry.npmjs.org/@babel/types/-/types-7.26.8.tgz", "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.26.9.tgz",
"integrity": "sha512-eUuWapzEGWFEpHFxgEaBG8e3n6S8L3MSu0oda755rOfabWPnh0Our1AozNFVUxGFIhbKgd1ksprsoDGMinTOTA==", "integrity": "sha512-Y3IR1cRnOxOCDvMmNiym7XpXQ93iGDDPHx+Zj+NM+rg0fBaShfQLkg+hKPaZCEvg5N/LeCo4+Rj/i3FuJsIQaw==",
"license": "MIT", "license": "MIT",
"dependencies": { "dependencies": {
"@babel/helper-string-parser": "^7.25.9", "@babel/helper-string-parser": "^7.25.9",
@ -2171,12 +2170,6 @@
"@types/send": "*" "@types/send": "*"
} }
}, },
"node_modules/@types/gensync": {
"version": "1.0.4",
"resolved": "https://registry.npmjs.org/@types/gensync/-/gensync-1.0.4.tgz",
"integrity": "sha512-C3YYeRQWp2fmq9OryX+FoDy8nXS6scQ7dPptD8LnFDAUNcKWJjXQKDNJD3HVm+kOUsXhTOkpi69vI4EuAr95bA==",
"license": "MIT"
},
"node_modules/@types/glob": { "node_modules/@types/glob": {
"version": "7.2.0", "version": "7.2.0",
"resolved": "https://registry.npmjs.org/@types/glob/-/glob-7.2.0.tgz", "resolved": "https://registry.npmjs.org/@types/glob/-/glob-7.2.0.tgz",
@ -2267,9 +2260,9 @@
"license": "MIT" "license": "MIT"
}, },
"node_modules/@types/node": { "node_modules/@types/node": {
"version": "22.13.1", "version": "22.13.9",
"resolved": "https://registry.npmjs.org/@types/node/-/node-22.13.1.tgz", "resolved": "https://registry.npmjs.org/@types/node/-/node-22.13.9.tgz",
"integrity": "sha512-jK8uzQlrvXqEU91UxiK5J7pKHyzgnI1Qnl0QDHIgVGuolJhRb9EEl28Cj9b3rGR8B2lhFCtvIm5os8lFnO/1Ew==", "integrity": "sha512-acBjXdRJ3A6Pb3tqnw9HZmyR3Fiol3aGxRCK1x3d+6CDAMjl7I649wpSd+yNURCjbOUGu9tqtLKnTGxmK6CyGw==",
"license": "MIT", "license": "MIT",
"dependencies": { "dependencies": {
"undici-types": "~6.20.0" "undici-types": "~6.20.0"
@ -2354,9 +2347,9 @@
"license": "MIT" "license": "MIT"
}, },
"node_modules/@types/ws": { "node_modules/@types/ws": {
"version": "8.5.14", "version": "8.18.0",
"resolved": "https://registry.npmjs.org/@types/ws/-/ws-8.5.14.tgz", "resolved": "https://registry.npmjs.org/@types/ws/-/ws-8.18.0.tgz",
"integrity": "sha512-bd/YFLW+URhBzMXurx7lWByOu+xzU9+kb3RboOteXYDfW+tr+JZa99OyNmPINEGB/ahzKrEuc8rcv4gnpJmxTw==", "integrity": "sha512-8svvI3hMyvN0kKCJMvTJP/x6Y/EoQbepff882wL+Sn5QsXb3etnamgrJq4isrBxSJj5L2AuXcI0+bgkoAXGUJw==",
"license": "MIT", "license": "MIT",
"dependencies": { "dependencies": {
"@types/node": "*" "@types/node": "*"
@ -2579,9 +2572,9 @@
} }
}, },
"node_modules/acorn": { "node_modules/acorn": {
"version": "8.14.0", "version": "8.14.1",
"resolved": "https://registry.npmjs.org/acorn/-/acorn-8.14.0.tgz", "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.14.1.tgz",
"integrity": "sha512-cl669nCJTZBsL97OF4kUQm5g5hC2uihk0NxY3WENAC0TYdILVkAyHymAntgxGkl7K+t0cXIrH5siy5S4XkFycA==", "integrity": "sha512-OvQ/2pUDKmgfCg++xsTX1wGxfTaszcHVcTctW4UJB4hibJx2HXxxO5UmVgyjMa+ZDsiaf5wWLXYpRWMmBI0QHg==",
"license": "MIT", "license": "MIT",
"bin": { "bin": {
"acorn": "bin/acorn" "acorn": "bin/acorn"
@ -2823,9 +2816,9 @@
} }
}, },
"node_modules/axios": { "node_modules/axios": {
"version": "1.7.9", "version": "1.8.1",
"resolved": "https://registry.npmjs.org/axios/-/axios-1.7.9.tgz", "resolved": "https://registry.npmjs.org/axios/-/axios-1.8.1.tgz",
"integrity": "sha512-LhLcE7Hbiryz8oMDdDptSrWowmB4Bl6RCt6sIJKpRB4XtVf0iEgewX3au/pJqm+Py1kCASkb/FFKjxQaLtxJvw==", "integrity": "sha512-NN+fvwH/kV01dYUQ3PTOZns4LWtWhOFCAhQ/pHb88WQ1hNe5V/dvFwc4VJcDL11LT9xSX0QtsR8sWUuyOuOq7g==",
"license": "MIT", "license": "MIT",
"dependencies": { "dependencies": {
"follow-redirects": "^1.15.6", "follow-redirects": "^1.15.6",
@ -3258,9 +3251,9 @@
} }
}, },
"node_modules/call-bind-apply-helpers": { "node_modules/call-bind-apply-helpers": {
"version": "1.0.1", "version": "1.0.2",
"resolved": "https://registry.npmjs.org/call-bind-apply-helpers/-/call-bind-apply-helpers-1.0.1.tgz", "resolved": "https://registry.npmjs.org/call-bind-apply-helpers/-/call-bind-apply-helpers-1.0.2.tgz",
"integrity": "sha512-BhYE+WDaywFg2TBWYNXAE+8B1ATnThNBqXHP5nQu0jWJdVvY2hvkpyB3qOmtmDePiS5/BDQ8wASEWGMWRG148g==", "integrity": "sha512-Sp1ablJ0ivDkSzjcaJdxEunN5/XvksFJ2sMBFfq6x0ryhQV/2b/KwFe21cMpmHtPOSij8K99/wSfoEuTObmuMQ==",
"license": "MIT", "license": "MIT",
"dependencies": { "dependencies": {
"es-errors": "^1.3.0", "es-errors": "^1.3.0",
@ -3271,13 +3264,13 @@
} }
}, },
"node_modules/call-bound": { "node_modules/call-bound": {
"version": "1.0.3", "version": "1.0.4",
"resolved": "https://registry.npmjs.org/call-bound/-/call-bound-1.0.3.tgz", "resolved": "https://registry.npmjs.org/call-bound/-/call-bound-1.0.4.tgz",
"integrity": "sha512-YTd+6wGlNlPxSuri7Y6X8tY2dmm12UMH66RpKMhiX6rsk5wXXnYgbUcOt8kiS31/AjfoTOvCsE+w8nZQLQnzHA==", "integrity": "sha512-+ys997U96po4Kx/ABpBCqhA9EuxJaQWDQg7295H4hBphv3IZg0boBKuwYpt4YXp6MZ5AmZQnU/tyMTlRpaSejg==",
"license": "MIT", "license": "MIT",
"dependencies": { "dependencies": {
"call-bind-apply-helpers": "^1.0.1", "call-bind-apply-helpers": "^1.0.2",
"get-intrinsic": "^1.2.6" "get-intrinsic": "^1.3.0"
}, },
"engines": { "engines": {
"node": ">= 0.4" "node": ">= 0.4"
@ -3318,9 +3311,9 @@
} }
}, },
"node_modules/caniuse-lite": { "node_modules/caniuse-lite": {
"version": "1.0.30001699", "version": "1.0.30001702",
"resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001699.tgz", "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001702.tgz",
"integrity": "sha512-b+uH5BakXZ9Do9iK+CkDmctUSEqZl+SP056vc5usa0PL+ev5OHw003rZXcnjNDv3L8P5j6rwT6C0BPKSikW08w==", "integrity": "sha512-LoPe/D7zioC0REI5W73PeR1e1MLCipRGq/VkovJnd6Df+QVqT+vT33OXCp8QUd7kA7RZrHWxb1B36OQKI/0gOA==",
"funding": [ "funding": [
{ {
"type": "opencollective", "type": "opencollective",
@ -3680,12 +3673,12 @@
} }
}, },
"node_modules/core-js-compat": { "node_modules/core-js-compat": {
"version": "3.40.0", "version": "3.41.0",
"resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.40.0.tgz", "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.41.0.tgz",
"integrity": "sha512-0XEDpr5y5mijvw8Lbc6E5AkjrHfp7eEoPlu36SWeAbcL8fn1G1ANe8DBlo2XoNN89oVpxWwOjYIPVzR4ZvsKCQ==", "integrity": "sha512-RFsU9LySVue9RTwdDVX/T0e2Y6jRYWXERKElIjpuEOEnxaXffI0X7RUwVzfYLfzuLXSNJDYoRYUAmRUcyln20A==",
"license": "MIT", "license": "MIT",
"dependencies": { "dependencies": {
"browserslist": "^4.24.3" "browserslist": "^4.24.4"
}, },
"funding": { "funding": {
"type": "opencollective", "type": "opencollective",
@ -4331,9 +4324,9 @@
"license": "MIT" "license": "MIT"
}, },
"node_modules/electron-to-chromium": { "node_modules/electron-to-chromium": {
"version": "1.5.97", "version": "1.5.112",
"resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.97.tgz", "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.112.tgz",
"integrity": "sha512-HKLtaH02augM7ZOdYRuO19rWDeY+QSJ1VxnXFa/XDFLf07HvM90pALIJFgrO+UVaajI3+aJMMpojoUTLZyQ7JQ==", "integrity": "sha512-oen93kVyqSb3l+ziUgzIOlWt/oOuy4zRmpwestMn4rhFWAoFJeFuCVte9F2fASjeZZo7l/Cif9TiyrdW4CwEMA==",
"license": "ISC" "license": "ISC"
}, },
"node_modules/elliptic": { "node_modules/elliptic": {
@ -4474,6 +4467,21 @@
"node": ">= 0.4" "node": ">= 0.4"
} }
}, },
"node_modules/es-set-tostringtag": {
"version": "2.1.0",
"resolved": "https://registry.npmjs.org/es-set-tostringtag/-/es-set-tostringtag-2.1.0.tgz",
"integrity": "sha512-j6vWzfrGVfyXxge+O0x5sh6cvxAog0a/4Rdd2K36zCMV5eJ+/+tOAngRO8cODMNWbVRdVlmGZQL2YS3yR8bIUA==",
"license": "MIT",
"dependencies": {
"es-errors": "^1.3.0",
"get-intrinsic": "^1.2.6",
"has-tostringtag": "^1.0.2",
"hasown": "^2.0.2"
},
"engines": {
"node": ">= 0.4"
}
},
"node_modules/escalade": { "node_modules/escalade": {
"version": "3.2.0", "version": "3.2.0",
"resolved": "https://registry.npmjs.org/escalade/-/escalade-3.2.0.tgz", "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.2.0.tgz",
@ -4728,9 +4736,9 @@
} }
}, },
"node_modules/fastq": { "node_modules/fastq": {
"version": "1.19.0", "version": "1.19.1",
"resolved": "https://registry.npmjs.org/fastq/-/fastq-1.19.0.tgz", "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.19.1.tgz",
"integrity": "sha512-7SFSRCNjBQIZH/xZR3iy5iQYR8aGBE0h3VG6/cwlbrpdciNYBMotQav8c1XI3HjHH+NikUpP53nPdlZSdWmFzA==", "integrity": "sha512-GwLTyxkCXjXbxqIhTsMI2Nui8huMPtnxg7krajPJAjnEG/iiOS7i+zCtWGZR9G0NBKbXKh6X9m9UIsYX/N6vvQ==",
"license": "ISC", "license": "ISC",
"dependencies": { "dependencies": {
"reusify": "^1.0.4" "reusify": "^1.0.4"
@ -4900,13 +4908,14 @@
} }
}, },
"node_modules/form-data": { "node_modules/form-data": {
"version": "4.0.1", "version": "4.0.2",
"resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.1.tgz", "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.2.tgz",
"integrity": "sha512-tzN8e4TX8+kkxGPK8D5u0FNmjPUjw3lwC9lSLxxoB/+GtsJG91CO8bSWy73APlgAZzZbXEYZJuxjkHH2w+Ezhw==", "integrity": "sha512-hGfm/slu0ZabnNt4oaRZ6uREyfCj6P4fT/n6A1rGV+Z0VdGXjfOhVUpkn6qVQONHGIFwmveGXyDs75+nr6FM8w==",
"license": "MIT", "license": "MIT",
"dependencies": { "dependencies": {
"asynckit": "^0.4.0", "asynckit": "^0.4.0",
"combined-stream": "^1.0.8", "combined-stream": "^1.0.8",
"es-set-tostringtag": "^2.1.0",
"mime-types": "^2.1.12" "mime-types": "^2.1.12"
}, },
"engines": { "engines": {
@ -5012,17 +5021,17 @@
} }
}, },
"node_modules/get-intrinsic": { "node_modules/get-intrinsic": {
"version": "1.2.7", "version": "1.3.0",
"resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.7.tgz", "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.3.0.tgz",
"integrity": "sha512-VW6Pxhsrk0KAOqs3WEd0klDiF/+V7gQOpAvY1jVU/LHmaD/kQO4523aiJuikX/QAKYiW6x8Jh+RJej1almdtCA==", "integrity": "sha512-9fSjSaos/fRIVIp+xSJlE6lfwhES7LNtKaCBIamHsjr2na1BiABJPo0mOjjz8GJDURarmCPGqaiVg5mfjb98CQ==",
"license": "MIT", "license": "MIT",
"dependencies": { "dependencies": {
"call-bind-apply-helpers": "^1.0.1", "call-bind-apply-helpers": "^1.0.2",
"es-define-property": "^1.0.1", "es-define-property": "^1.0.1",
"es-errors": "^1.3.0", "es-errors": "^1.3.0",
"es-object-atoms": "^1.0.0", "es-object-atoms": "^1.1.1",
"function-bind": "^1.1.2", "function-bind": "^1.1.2",
"get-proto": "^1.0.0", "get-proto": "^1.0.1",
"gopd": "^1.2.0", "gopd": "^1.2.0",
"has-symbols": "^1.1.0", "has-symbols": "^1.1.0",
"hasown": "^2.0.2", "hasown": "^2.0.2",
@ -5190,6 +5199,21 @@
"url": "https://github.com/sponsors/ljharb" "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==",
"license": "MIT",
"dependencies": {
"has-symbols": "^1.0.3"
},
"engines": {
"node": ">= 0.4"
},
"funding": {
"url": "https://github.com/sponsors/ljharb"
}
},
"node_modules/hash-base": { "node_modules/hash-base": {
"version": "3.0.5", "version": "3.0.5",
"resolved": "https://registry.npmjs.org/hash-base/-/hash-base-3.0.5.tgz", "resolved": "https://registry.npmjs.org/hash-base/-/hash-base-3.0.5.tgz",
@ -6060,9 +6084,9 @@
} }
}, },
"node_modules/launch-editor": { "node_modules/launch-editor": {
"version": "2.9.1", "version": "2.10.0",
"resolved": "https://registry.npmjs.org/launch-editor/-/launch-editor-2.9.1.tgz", "resolved": "https://registry.npmjs.org/launch-editor/-/launch-editor-2.10.0.tgz",
"integrity": "sha512-Gcnl4Bd+hRO9P9icCP/RVVT2o8SFlPXofuCxvA2SaZuH45whSvf5p8x5oih5ftLiVhEI4sp5xDY+R+b3zJBh5w==", "integrity": "sha512-D7dBRJo/qcGX9xlvt/6wUYzQxjh5G1RvZPgPv8vi4KRU99DVQL/oW7tnVOCCTm2HGeo3C5HvGE5Yrh6UBoZ0vA==",
"license": "MIT", "license": "MIT",
"dependencies": { "dependencies": {
"picocolors": "^1.0.0", "picocolors": "^1.0.0",
@ -7092,9 +7116,9 @@
} }
}, },
"node_modules/postcss": { "node_modules/postcss": {
"version": "8.5.2", "version": "8.5.3",
"resolved": "https://registry.npmjs.org/postcss/-/postcss-8.5.2.tgz", "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.5.3.tgz",
"integrity": "sha512-MjOadfU3Ys9KYoX0AdkBlFEF1Vx37uCCeN4ZHnmwm9FfpbsGWMZeBLMmmpY+6Ocqod7mkdZ0DT31OlbsFrLlkA==", "integrity": "sha512-dle9A3yYxlBSrt8Fu+IpjGT8SY8hN0mlaA6GY8t0P5PjIOZemULz/E2Bnm/2dcUOena75OTNkHI76uZBNUUq3A==",
"funding": [ "funding": [
{ {
"type": "opencollective", "type": "opencollective",
@ -7951,9 +7975,9 @@
} }
}, },
"node_modules/regex-parser": { "node_modules/regex-parser": {
"version": "2.3.0", "version": "2.3.1",
"resolved": "https://registry.npmjs.org/regex-parser/-/regex-parser-2.3.0.tgz", "resolved": "https://registry.npmjs.org/regex-parser/-/regex-parser-2.3.1.tgz",
"integrity": "sha512-TVILVSz2jY5D47F4mA4MppkBrafEaiUWJO/TcZHEIuI13AqoZMkK1WMA4Om1YkYbTx+9Ki1/tSUXbceyr9saRg==", "integrity": "sha512-yXLRqatcCuKtVHsWrNg0JL3l1zGfdXeEvDa0bdu4tCDQw0RpMDZsqbkyRTUnKMR0tXF627V2oEWjBEaEdqTwtQ==",
"license": "MIT" "license": "MIT"
}, },
"node_modules/regexpu-core": { "node_modules/regexpu-core": {
@ -8127,9 +8151,9 @@
} }
}, },
"node_modules/reusify": { "node_modules/reusify": {
"version": "1.0.4", "version": "1.1.0",
"resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.1.0.tgz",
"integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==", "integrity": "sha512-g6QUff04oZpHs0eG5p83rFLhHeV00ug/Yf9nZM6fLeUrPguBTkTQOdpAWWspMh55TZfVQDPaN3NQJfbVRAxdIw==",
"license": "MIT", "license": "MIT",
"engines": { "engines": {
"iojs": ">=1.0.0", "iojs": ">=1.0.0",
@ -8212,9 +8236,9 @@
"license": "MIT" "license": "MIT"
}, },
"node_modules/sass": { "node_modules/sass": {
"version": "1.84.0", "version": "1.85.1",
"resolved": "https://registry.npmjs.org/sass/-/sass-1.84.0.tgz", "resolved": "https://registry.npmjs.org/sass/-/sass-1.85.1.tgz",
"integrity": "sha512-XDAbhEPJRxi7H0SxrnOpiXFQoUJHwkR2u3Zc4el+fK/Tt5Hpzw5kkQ59qVDfvdaUq6gCrEZIbySFBM2T9DNKHg==", "integrity": "sha512-Uk8WpxM5v+0cMR0XjX9KfRIacmSG86RH4DCCZjLU2rFh5tyutt9siAXJ7G+YfxQ99Q6wrRMbMlVl6KqUms71ag==",
"license": "MIT", "license": "MIT",
"dependencies": { "dependencies": {
"chokidar": "^4.0.0", "chokidar": "^4.0.0",
@ -8284,9 +8308,9 @@
} }
}, },
"node_modules/sass/node_modules/readdirp": { "node_modules/sass/node_modules/readdirp": {
"version": "4.1.1", "version": "4.1.2",
"resolved": "https://registry.npmjs.org/readdirp/-/readdirp-4.1.1.tgz", "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-4.1.2.tgz",
"integrity": "sha512-h80JrZu/MHUZCyHu5ciuoI0+WxsCxzxJTILn6Fs8rxSnFPh+UVHYfeIxK1nVGugMqkfC4vJcBOYbkfkwYK0+gw==", "integrity": "sha512-GDhwkLfywWL2s6vEjyhri+eXmfH6j1L7JE27WhqLeYzoh/A3DBaYGEj2H/HFZCn/kMfim73FXxEJTw06WtxQwg==",
"license": "MIT", "license": "MIT",
"engines": { "engines": {
"node": ">= 14.18.0" "node": ">= 14.18.0"
@ -8804,9 +8828,9 @@
} }
}, },
"node_modules/std-env": { "node_modules/std-env": {
"version": "3.8.0", "version": "3.8.1",
"resolved": "https://registry.npmjs.org/std-env/-/std-env-3.8.0.tgz", "resolved": "https://registry.npmjs.org/std-env/-/std-env-3.8.1.tgz",
"integrity": "sha512-Bc3YwwCB+OzldMxOXJIIvC6cPRWr/LxOp48CdQTOkPyk/t4JWWJbrilwBd7RJzKV8QW7tJkcgAmeuLLJugl5/w==", "integrity": "sha512-vj5lIj3Mwf9D79hBkltk5qmkFI+biIKWS2IBxEyEU3AX1tUf7AoL8nSazCOiiqQsGKIq01SClsKEzweu34uwvA==",
"license": "MIT" "license": "MIT"
}, },
"node_modules/stream-browserify": { "node_modules/stream-browserify": {
@ -8985,9 +9009,9 @@
} }
}, },
"node_modules/terser": { "node_modules/terser": {
"version": "5.38.2", "version": "5.39.0",
"resolved": "https://registry.npmjs.org/terser/-/terser-5.38.2.tgz", "resolved": "https://registry.npmjs.org/terser/-/terser-5.39.0.tgz",
"integrity": "sha512-w8CXxxbFA5zfNsR/i8HZq5bvn18AK0O9jj7hyo1YqkovLxEFa0uP0LCVGZRqiRaKRFxXhELBp8SteeAjEnfeJg==", "integrity": "sha512-LBAhFyLho16harJoWMg/nZsQYgTrg5jXOn2nCYjRUcZZEdE3qa2zb8QEDRUGVZBW4rlazf2fxkg8tztybTaqWw==",
"license": "BSD-2-Clause", "license": "BSD-2-Clause",
"dependencies": { "dependencies": {
"@jridgewell/source-map": "^0.3.3", "@jridgewell/source-map": "^0.3.3",
@ -9003,9 +9027,9 @@
} }
}, },
"node_modules/terser-webpack-plugin": { "node_modules/terser-webpack-plugin": {
"version": "5.3.11", "version": "5.3.13",
"resolved": "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-5.3.11.tgz", "resolved": "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-5.3.13.tgz",
"integrity": "sha512-RVCsMfuD0+cTt3EwX8hSl2Ks56EbFHWmhluwcqoPKtBnfjiT6olaq7PRIRfhyU8nnC2MrnDrBLfrD/RGE+cVXQ==", "integrity": "sha512-JG3pBixF6kx2o0Yfz2K6pqh72DpwTI08nooHd06tcj5WyIt5SsSiUYqRT+kemrGUNSuSzVhwfZ28aO8gogajNQ==",
"license": "MIT", "license": "MIT",
"dependencies": { "dependencies": {
"@jridgewell/trace-mapping": "^0.3.25", "@jridgewell/trace-mapping": "^0.3.25",
@ -9230,9 +9254,9 @@
} }
}, },
"node_modules/update-browserslist-db": { "node_modules/update-browserslist-db": {
"version": "1.1.2", "version": "1.1.3",
"resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.1.2.tgz", "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.1.3.tgz",
"integrity": "sha512-PPypAm5qvlD7XMZC3BujecnaOxwhrtoFR+Dqkk5Aa/6DssiH0ibKoketaj9w8LP7Bont1rYeoV5plxD7RTEPRg==", "integrity": "sha512-UxhIZQ+QInVdunkDAaiazvvT/+fXL5Osr0JZlJulepYu6Jd7qJtDZjlur0emRlT71EN3ScPoE7gvsuIKKNavKw==",
"funding": [ "funding": [
{ {
"type": "opencollective", "type": "opencollective",
@ -9403,9 +9427,9 @@
} }
}, },
"node_modules/webpack": { "node_modules/webpack": {
"version": "5.97.1", "version": "5.98.0",
"resolved": "https://registry.npmjs.org/webpack/-/webpack-5.97.1.tgz", "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.98.0.tgz",
"integrity": "sha512-EksG6gFY3L1eFMROS/7Wzgrii5mBAFe4rIr3r2BTfo7bcc+DWwFZ4OJ/miOuHJO/A85HwyI4eQ0F6IKXesO7Fg==", "integrity": "sha512-UFynvx+gM44Gv9qFgj0acCQK2VE1CtdfwFdimkapco3hlPCJ/zeq73n2yVKimVbtm+TnApIugGhLJnkU6gjYXA==",
"license": "MIT", "license": "MIT",
"dependencies": { "dependencies": {
"@types/eslint-scope": "^3.7.7", "@types/eslint-scope": "^3.7.7",
@ -9426,9 +9450,9 @@
"loader-runner": "^4.2.0", "loader-runner": "^4.2.0",
"mime-types": "^2.1.27", "mime-types": "^2.1.27",
"neo-async": "^2.6.2", "neo-async": "^2.6.2",
"schema-utils": "^3.2.0", "schema-utils": "^4.3.0",
"tapable": "^2.1.1", "tapable": "^2.1.1",
"terser-webpack-plugin": "^5.3.10", "terser-webpack-plugin": "^5.3.11",
"watchpack": "^2.4.1", "watchpack": "^2.4.1",
"webpack-sources": "^3.2.3" "webpack-sources": "^3.2.3"
}, },
@ -9725,15 +9749,50 @@
"source-map": "~0.6.1" "source-map": "~0.6.1"
} }
}, },
"node_modules/webpack/node_modules/schema-utils": { "node_modules/webpack/node_modules/ajv": {
"version": "3.3.0", "version": "8.17.1",
"resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.3.0.tgz", "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.17.1.tgz",
"integrity": "sha512-pN/yOAvcC+5rQ5nERGuwrjLlYvLTbCibnZ1I7B1LaiAz9BRBlE9GMgE/eqV30P7aJQUf7Ddimy/RsbYO/GrVGg==", "integrity": "sha512-B/gBuNg5SiMTrPkC+A2+cW0RszwxYmn6VYxB/inlBStS5nx6xHIt/ehKRhIMhqusl7a8LjQoZnjCs5vhwxOQ1g==",
"license": "MIT", "license": "MIT",
"dependencies": { "dependencies": {
"@types/json-schema": "^7.0.8", "fast-deep-equal": "^3.1.3",
"ajv": "^6.12.5", "fast-uri": "^3.0.1",
"ajv-keywords": "^3.5.2" "json-schema-traverse": "^1.0.0",
"require-from-string": "^2.0.2"
},
"funding": {
"type": "github",
"url": "https://github.com/sponsors/epoberezkin"
}
},
"node_modules/webpack/node_modules/ajv-keywords": {
"version": "5.1.0",
"resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-5.1.0.tgz",
"integrity": "sha512-YCS/JNFAUyr5vAuhk1DWm1CBxRHW9LbJ2ozWeemrIqpbsqKjHVxYPyi5GC0rjZIT5JxJ3virVTS8wk4i/Z+krw==",
"license": "MIT",
"dependencies": {
"fast-deep-equal": "^3.1.3"
},
"peerDependencies": {
"ajv": "^8.8.2"
}
},
"node_modules/webpack/node_modules/json-schema-traverse": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz",
"integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==",
"license": "MIT"
},
"node_modules/webpack/node_modules/schema-utils": {
"version": "4.3.0",
"resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-4.3.0.tgz",
"integrity": "sha512-Gf9qqc58SpCA/xdziiHz35F4GNIWYWZrEshUc/G/r5BnLph6xpKuLeoJoQuj5WfBIx/eQLf+hmVPYHaxJu7V2g==",
"license": "MIT",
"dependencies": {
"@types/json-schema": "^7.0.9",
"ajv": "^8.9.0",
"ajv-formats": "^2.1.1",
"ajv-keywords": "^5.1.0"
}, },
"engines": { "engines": {
"node": ">= 10.13.0" "node": ">= 10.13.0"
@ -9838,9 +9897,9 @@
"license": "ISC" "license": "ISC"
}, },
"node_modules/ws": { "node_modules/ws": {
"version": "8.18.0", "version": "8.18.1",
"resolved": "https://registry.npmjs.org/ws/-/ws-8.18.0.tgz", "resolved": "https://registry.npmjs.org/ws/-/ws-8.18.1.tgz",
"integrity": "sha512-8VbfWfHLbbwu3+N6OKsOMpBdT4kXPDDB9cJk2bJ6mh9ucxdlnNvH1e+roYkKmN9Nxw2yjz7VzeO9oOz2zJ04Pw==", "integrity": "sha512-RKW2aJZMXeMxVpnZ6bck+RswznaxmzdULiBr6KY7XkTnW8uvt0iT9H5DkHUChXrc+uurzwa0rVI16n/Xzjdz1w==",
"license": "MIT", "license": "MIT",
"engines": { "engines": {
"node": ">=10.0.0" "node": ">=10.0.0"

51
public/css/custom.css vendored
View File

@ -1,9 +1,3 @@
img.jpegphoto {
display:block;
max-width:100px;
height:100px;
}
/** ensure our userpassword has select is next to the password input */ /** ensure our userpassword has select is next to the password input */
div#userPassword .select2-container--bootstrap-5 .select2-selection { div#userPassword .select2-container--bootstrap-5 .select2-selection {
font-size: inherit; font-size: inherit;
@ -28,3 +22,48 @@ input.form-control.input-group-end {
border-bottom-right-radius: 4px !important; border-bottom-right-radius: 4px !important;
border-top-right-radius: 4px !important; border-top-right-radius: 4px !important;
} }
.custom-tooltip-warning {
--bs-tooltip-bg: var(--bs-warning);
--bs-tooltip-color: black;
}
.custom-tooltip-danger {
--bs-tooltip-bg: var(--bs-danger);
}
.tooltip {
font-size: 85%;
}
/*
.custom-tooltip-warning .tooltip-inner {
--bs-tooltip-bg: #ffffff;
--bs-tooltip-color: var(--bs-warning);
--bs-font-size: 85%;
border: 2px solid var(--bs-warning);
border-radius: 6px;
}
.custom-tooltip-warning .tooltip-arrow::before {
--bs-tooltip-bg: var(--bs-warning);
}
.custom-tooltip-danger .tooltip-inner {
--bs-tooltip-bg: #ffffff;
--bs-tooltip-color: var(--bs-danger);
--bs-font-size: 85%;
border: 2px solid var(--bs-danger);
border-radius: 6px;
}
.custom-tooltip-danger .tooltip-arrow::before {
--bs-tooltip-bg: var(--bs-danger);
}
*/
/* hide the site icons when the search is opened */
.search-wrapper.active + .header-menu.nav {
display: none;
}

58
public/css/fixes.css vendored
View File

@ -69,10 +69,6 @@ table.dataTable thead .sorting {
*/ */
/** Fancy Tree Fixes **/ /** Fancy Tree Fixes **/
/*
@todo The unopened lazy branches off the tree are off by 5px. see *-cdl. below
@todo The last node is missing some dots, connecting to the previous node
*/
/* So our tree can be longer than the frame */ /* So our tree can be longer than the frame */
.scrollbar-sidebar { .scrollbar-sidebar {
overflow: auto; overflow: auto;
@ -117,7 +113,7 @@ ul.fancytree-container ul {
} }
.fancytree-node.fancytree-exp-n span.fancytree-expander, .fancytree-node.fancytree-exp-n span.fancytree-expander,
.fancytree-node.fancytree-exp-n span.fancytree-expander:hover { /* node */ .fancytree-node.fancytree-exp-n span.fancytree-expander:hover { /* node */
margin-top: 4px; margin-top: 3px;
background-position: 0 -63px; background-position: 0 -63px;
} }
.fancytree-node.fancytree-exp-nl span.fancytree-expander { /* node last */ .fancytree-node.fancytree-exp-nl span.fancytree-expander { /* node last */
@ -143,11 +139,6 @@ ul.fancytree-container ul {
opacity: 0; opacity: 0;
} }
/* Fix ellipsis icon (top right) on small display with the light background */
.closed-sidebar .app-header.header-text-light .app-header__menu .mobile-toggle-header-nav {
background: #343a40;
}
/* Hide tree when collapsed and show it when open */ /* Hide tree when collapsed and show it when open */
.sidebar-mobile-open:hover #tree, /* small */ .sidebar-mobile-open:hover #tree, /* small */
.fixed-sidebar #tree, /* wide */ .fixed-sidebar #tree, /* wide */
@ -160,12 +151,6 @@ ul.fancytree-container ul {
} }
/** Server icons **/ /** Server icons **/
.closed-sidebar .server-icon {
display: none;
}
.closed-sidebar .app-sidebar:hover .server-icon, .sidebar-mobile-open .server-icon {
display: flex;
}
.font-icon-wrapper { .font-icon-wrapper {
text-align: center; text-align: center;
border: #e9ecef solid 1px; border: #e9ecef solid 1px;
@ -181,47 +166,6 @@ ul.fancytree-container ul {
font-size: 1.2rem; font-size: 1.2rem;
} }
/*
.font-icon-wrapper {
text-align: center;
border: $gray-200 solid 1px;
@include border-radius($border-radius);
margin: 0 0 10px;
padding: 5px;
&.font-icon-lg {
float: left;
padding: 10px;
text-align: center;
margin-right: 15px;
min-width: 64px;
i {
font-size: $h1-font-size;
}
}
&:hover {
background: $gray-100;
color: $primary;
p {
color: $gray-600;
}
}
i {
font-size: ($font-size-base * 1.5);
}
p {
color: $gray-500;
font-size: calc($font-size-sm / 1.2);
margin: 5px 0 0;
}
}
*/
/** Ensure our DN menu is at the top **/ /** Ensure our DN menu is at the top **/
.app-page-title .page-title-wrapper { .app-page-title .page-title-wrapper {
align-items: start; align-items: start;

18
public/js/custom.js vendored
View File

@ -36,11 +36,11 @@ function getNode(item) {
case 404: case 404:
$('.main-content').empty().append(e.responseText); $('.main-content').empty().append(e.responseText);
break; break;
case 409: case 409: // Not in root
location.replace('/#'+item); location.replace('/#'+item);
break; break;
case 419: case 419: // Session Expired
alert('Session has expired, reloading the page and try again...'); location.replace('/#'+item);
location.reload(); location.reload();
break; break;
case 500: case 500:
@ -64,18 +64,14 @@ $(document).ready(function() {
// and pass the tree options as an argument to the fancytree() function: // and pass the tree options as an argument to the fancytree() function:
$('#tree').fancytree({ $('#tree').fancytree({
clickFolderMode: 3, clickFolderMode: 3,
extensions: ['glyph','persist'], extensions: ['persist'],
autoCollapse: true, // Automatically collapse all siblings, when a node is expanded. autoCollapse: true, // Automatically collapse all siblings, when a node is expanded.
autoScroll: true, // Automatically scroll nodes into visible area. autoScroll: true, // Automatically scroll nodes into visible area.
focusOnSelect: true, // Set focus when node is checked by a mouse click focusOnSelect: true, // Set focus when node is checked by a mouse click
glyph: {
preset: 'bootstrap3', // @todo look at changing this to awesome5
map: {}
},
persist: { persist: {
// Available options with their default: // Available options with their default:
cookieDelimiter: '~', // character used to join key strings cookieDelimiter: '~', // character used to join key strings
cookiePrefix: undefined, // 'fancytree-<treeId>-' by default cookiePrefix: 'pla-<treeId>-', // 'fancytree-<treeId>-' by default
cookie: { // settings passed to jquery.cookie plugin cookie: { // settings passed to jquery.cookie plugin
raw: false, raw: false,
expires: '', expires: '',
@ -85,14 +81,14 @@ $(document).ready(function() {
}, },
expandLazy: true, // true: recursively expand and load lazy nodes expandLazy: true, // true: recursively expand and load lazy nodes
expandOpts: undefined, // optional `opts` argument passed to setExpanded() expandOpts: undefined, // optional `opts` argument passed to setExpanded()
fireActivate: false, //
overrideSource: true, // true: cookie takes precedence over `source` data attributes. overrideSource: true, // true: cookie takes precedence over `source` data attributes.
store: 'auto', // 'cookie': use cookie, 'local': use localStore, 'session': use sessionStore store: 'auto', // 'cookie': use cookie, 'local': use localStore, 'session': use sessionStore
types: 'active expanded focus selected' // which status types to store types: 'active expanded focus selected' // which status types to store
}, },
click: function(event,data) { click: function(event,data) {
if (data.targetType == 'title') { if (data.targetType === 'title')
getNode(data.node.data.item); getNode(data.node.data.item);
}
}, },
source: sources, source: sources,
lazyLoad: function(event,data) { lazyLoad: function(event,data) {

View File

@ -3,10 +3,23 @@
// If you want the anchor version, it requires `href="#"`. // If you want the anchor version, it requires `href="#"`.
// See https://developer.mozilla.org/en-US/docs/Web/Events/click#Safari_Mobile // See https://developer.mozilla.org/en-US/docs/Web/Events/click#Safari_Mobile
.header-text-dark * .btn-close {
--#{$prefix}btn-close-color: #{$btn-close-color-dark};
--#{$prefix}btn-close-bg: #{ escape-svg($btn-close-bg-dark) };
}
.header-text-light *.btn-close {
--#{$prefix}btn-close-color: #{$btn-close-color-light};
--#{$prefix}btn-close-bg: #{ escape-svg($btn-close-bg-light) };
}
.btn-close { .btn-close {
// scss-docs-start close-css-vars // scss-docs-start close-css-vars
--#{$prefix}btn-close-color: #{$btn-close-color}; --#{$prefix}btn-close-color: #{$btn-close-color};
--#{$prefix}btn-close-bg: #{ escape-svg($btn-close-bg) }; --#{$prefix}btn-close-bg: #{ escape-svg($btn-close-bg) };
--#{$prefix}btn-close-color-light: #{$btn-close-color-light};
--#{$prefix}btn-close-bg-light: #{ escape-svg($btn-close-bg-light) };
--#{$prefix}btn-close-color-dark: #{$btn-close-color-dark};
--#{$prefix}btn-close-bg-dark: #{ escape-svg($btn-close-bg-dark) };
--#{$prefix}btn-close-opacity: #{$btn-close-opacity}; --#{$prefix}btn-close-opacity: #{$btn-close-opacity};
--#{$prefix}btn-close-hover-opacity: #{$btn-close-hover-opacity}; --#{$prefix}btn-close-hover-opacity: #{$btn-close-hover-opacity};
--#{$prefix}btn-close-focus-shadow: #{$btn-close-focus-shadow}; --#{$prefix}btn-close-focus-shadow: #{$btn-close-focus-shadow};

View File

@ -1705,6 +1705,10 @@ $btn-close-padding-x: .25em !default;
$btn-close-padding-y: $btn-close-padding-x !default; $btn-close-padding-y: $btn-close-padding-x !default;
$btn-close-color: $black !default; $btn-close-color: $black !default;
$btn-close-bg: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='#{$btn-close-color}'><path d='M.293.293a1 1 0 0 1 1.414 0L8 6.586 14.293.293a1 1 0 1 1 1.414 1.414L9.414 8l6.293 6.293a1 1 0 0 1-1.414 1.414L8 9.414l-6.293 6.293a1 1 0 0 1-1.414-1.414L6.586 8 .293 1.707a1 1 0 0 1 0-1.414z'/></svg>") !default; $btn-close-bg: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='#{$btn-close-color}'><path d='M.293.293a1 1 0 0 1 1.414 0L8 6.586 14.293.293a1 1 0 1 1 1.414 1.414L9.414 8l6.293 6.293a1 1 0 0 1-1.414 1.414L8 9.414l-6.293 6.293a1 1 0 0 1-1.414-1.414L6.586 8 .293 1.707a1 1 0 0 1 0-1.414z'/></svg>") !default;
$btn-close-color-dark: $black !default;
$btn-close-color-light: $gray-100 !default;
$btn-close-bg-dark: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='#{$btn-close-color-dark}'><path d='M.293.293a1 1 0 0 1 1.414 0L8 6.586 14.293.293a1 1 0 1 1 1.414 1.414L9.414 8l6.293 6.293a1 1 0 0 1-1.414 1.414L8 9.414l-6.293 6.293a1 1 0 0 1-1.414-1.414L6.586 8 .293 1.707a1 1 0 0 1 0-1.414z'/></svg>") !default;
$btn-close-bg-light: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='#{$btn-close-color-light}'><path d='M.293.293a1 1 0 0 1 1.414 0L8 6.586 14.293.293a1 1 0 1 1 1.414 1.414L9.414 8l6.293 6.293a1 1 0 0 1-1.414 1.414L8 9.414l-6.293 6.293a1 1 0 0 1-1.414-1.414L6.586 8 .293 1.707a1 1 0 0 1 0-1.414z'/></svg>") !default;
$btn-close-focus-shadow: $focus-ring-box-shadow !default; $btn-close-focus-shadow: $focus-ring-box-shadow !default;
$btn-close-opacity: .5 !default; $btn-close-opacity: .5 !default;
$btn-close-hover-opacity: .75 !default; $btn-close-hover-opacity: .75 !default;

View File

@ -26,20 +26,6 @@
align-items: center; align-items: center;
} }
.header-menu {
.nav-link {
color: $gray-600;
i {
color: $gray-500;
}
&:hover {
color: $gray-900;
}
}
}
.app-header-right { .app-header-right {
align-items: center; align-items: center;
display: flex; display: flex;

View File

@ -114,14 +114,6 @@
} }
} }
.app-header__mobile-menu {
.hamburger-inner,
.hamburger-inner::before,
.hamburger-inner::after {
background: $gray-800;
}
}
} }
} }

View File

@ -128,7 +128,7 @@
.hamburger-inner, .hamburger-inner,
.hamburger-inner::before, .hamburger-inner::before,
.hamburger-inner::after { .hamburger-inner::after {
background: $gray-800; background: rgba(0, 0, 0, .8);
} }
} }

View File

@ -173,6 +173,7 @@
& > .btn { & > .btn {
background: rgba(255, 255, 255, .1); background: rgba(255, 255, 255, .1);
border-color: rgba(255, 255, 255, .1); border-color: rgba(255, 255, 255, .1);
color: rgba(0, 0, 0, .9);
} }
} }

View File

@ -10,23 +10,23 @@
<div class="app-container"> <div class="app-container">
<div class="h-100 bg-animation"> <div class="h-100 bg-animation">
<div class="d-flex h-100 justify-content-center align-items-center"> <div class="d-flex h-100 justify-content-center align-items-center">
<div class="mx-auto app-login-box col-md-8"> <div class="mx-auto col-12 col-sm-8">
<x-file-note file="login-note.html"/> <x-file-note file="login-note.html"/>
<div class="modal-dialog w-100 mx-auto"> <div class="modal-dialog modal-lg">
<div class="modal-content"> <div class="modal-content">
<form class="needs-validation" novalidate method="post"> <form class="form-control needs-validation p-0" novalidate method="post">
{{ csrf_field() }} @csrf
<div class="modal-body"> <div class="modal-body p-3">
<div class="h5 modal-title text-center"> <div class="h5 modal-title text-center">
<h4 class="mt-2"> <h4 class="mt-2">
<div class="app-logo mx-auto mb-3"><img class="w-75" src="{{ url('images/logo-h-lg.png') }}"></div> <div class="app-logo mx-auto mb-3"><img class="w-75" src="{{ url('images/logo-h-lg.png') }}"></div>
<small>@lang('Sign in to <strong>:server</strong>',['server'=>config('ldap.connections.default.name')])</small> <small>@lang('Sign in to') <strong>{{ config('server')->name }}</strong></small>
</h4> </h4>
</div> </div>
<div class="form-row"> <div class="row">
<div class="col-md-12 mt-3"> <div class="col-md-12 mt-3">
<label class="mb-1">{{ login_attr_description() }}</label> <label class="mb-1">{{ login_attr_description() }}</label>
<input name="{{ login_attr_name() }}" id="user" placeholder="" type="@if(in_array(login_attr_name(),['mail','email'])) email @else text @endif" class="form-control" required=""> <input name="{{ login_attr_name() }}" id="user" placeholder="" type="@if(in_array(login_attr_name(),['mail','email'])) email @else text @endif" class="form-control" required="">
@ -34,7 +34,9 @@
@lang('Please enter your '.strtolower(login_attr_description())) @lang('Please enter your '.strtolower(login_attr_description()))
</div> </div>
</div> </div>
</div>
<div class="row">
<div class="col-md-12 mt-2"> <div class="col-md-12 mt-2">
<label class="mb-1">@lang('Password')</label> <label class="mb-1">@lang('Password')</label>
<input name="password" id="password" placeholder="" type="password" class="form-control" required> <input name="password" id="password" placeholder="" type="password" class="form-control" required>
@ -43,11 +45,11 @@
</div> </div>
</div> </div>
</div> </div>
</div>
<div class="modal-footer">
@if (count($errors) > 0) @if (count($errors) > 0)
<div class="alert alert-danger w-100"> <div class="row">
<div class="col">
<div class="alert alert-danger m-3">
<strong>Whoops!</strong> Something went wrong?<br><br> <strong>Whoops!</strong> Something went wrong?<br><br>
<ul> <ul>
@foreach ($errors->all() as $error) @foreach ($errors->all() as $error)
@ -55,11 +57,18 @@
@endforeach @endforeach
</ul> </ul>
</div> </div>
</div>
</div>
@endif @endif
<div class="float-end"> </div>
<div class="modal-footer p-2 border-top">
<div class="row">
<div class="col float-end">
<button class="btn btn-lg btn-primary">Login</button> <button class="btn btn-lg btn-primary">Login</button>
</div> </div>
</div> </div>
</div>
</form> </form>
</div> </div>
</div> </div>

View File

@ -11,16 +11,16 @@
<div class="app-container"> <div class="app-container">
<div class="h-100 bg-animation"> <div class="h-100 bg-animation">
<div class="d-flex h-100 justify-content-center align-items-center"> <div class="d-flex h-100 justify-content-center align-items-center">
<div class="mx-auto app-login-box col-md-8"> <div class="mx-auto col-12 col-sm-8">
<div class="modal-dialog w-100 mx-auto"> <div class="modal-dialog modal-lg">
<div class="modal-content"> <div class="modal-content">
<div class="modal-header"> <div class="modal-header p-3">
<img class="w-25" src="{{ url('images/logo-h-lg.png') }}"> <img class="w-25" src="{{ url('images/logo-h-lg.png') }}">
<span class="card-header-title text-danger ms-auto fs-4">@yield('title')</span> <span class="card-header-title text-danger ms-auto fs-4">@yield('title')</span>
</div> </div>
<div class="modal-body"> <div class="modal-body p-3">
<div class="text-center"> <div class="text-center">
<span class="badge text-danger fsize-2 mb-3">@yield('error')</span> <span class="badge text-danger fsize-2 mb-3">@yield('error')</span>
</div> </div>

View File

@ -6,24 +6,6 @@
<li class="nav-item"> <li class="nav-item">
<strong>{{ config('app.version') }}</strong> <strong>{{ config('app.version') }}</strong>
</li> </li>
@if(($x=Config::get('update_available')) && $x->action !== 'current')
<li class="nav-item ms-2">
@switch($x->action)
@case('unable')
<abbr title="Upstream Version Unavailable"><i class="fas fa-exclamation text-alternate"></i></abbr>
@break
@case('upgrade')
<abbr title="Update Available: {{ $x->version }}"><i class="fas fa-wrench text-danger"></i></abbr>
@break
@case('mismatch')
<abbr title="Version Issue - Upstream {{ $x->version }}"><i class="fas fa-exclamation text-danger"></i></abbr>
@break
@case('unknown')
<abbr title="Version Issue - Upstream {{ $x->version }}"><i class="fas fa-bolt text-alternate"></i></abbr>
@break
@endswitch
</li>
@endif
{{-- {{--
<li class="nav-item"> <li class="nav-item">
<a href="javascript:void(0);" class="nav-link">Footer Link</a> <a href="javascript:void(0);" class="nav-link">Footer Link</a>

View File

@ -6,54 +6,41 @@
<i class="@yield('page_icon','')"></i> <i class="@yield('page_icon','')"></i>
</div> </div>
@endif @endif
<div>
@yield('page_title','Page Title') @yield('page_title','Page Title')
<div class="page-title-subheading"> <div class="page-title-subheading">
@yield('page_subtitle','') @yield('page_subtitle','')
</div> </div>
</div> </div>
</div>
@if (isset($page_actions) || old())
<div class="page-title-actions"> <div class="page-title-actions">
<div class="page-title-actions"> <div class="row">
<div class="d-inline-block dropdown"> <div class="col">
<button type="button" data-bs-toggle="dropdown" aria-haspopup="true" aria-expanded="false" class="dropdown-toggle btn btn-primary"> <div class="action-buttons float-end">
<span class="btn-icon-wrapper pe-2 opacity-7"> <ul class="nav">
<i class="fa fa-business-time fa-w-20"></i>
</span>
@lang('Entry Options')
</button>
<div tabindex="-1" role="menu" aria-hidden="true" class="dropdown-menu dropdown-menu-right">
<ul class="nav flex-column">
@if ((isset($page_actions) && $page_actions->contains('edit')) || old())
<li class="nav-item">
<span class="nav-link pt-0 pb-1">
<button id="entry-edit" class="p-2 m-0 border-0 btn btn-transition btn-outline-dark w-100 text-start">
<i class="fas fa-fw fa-edit me-2"></i> @lang('Edit')
</button>
</span>
</li>
@endif
@if(isset($page_actions) && $page_actions->contains('export')) @if(isset($page_actions) && $page_actions->contains('export'))
<li class="nav-item"> <li>
<a class="nav-link pt-0 pb-1"> <span data-bs-toggle="modal" data-bs-target="#entry_export-modal">
<button type="button" class="p-2 m-0 border-0 btn btn-transition btn-outline-dark w-100 text-start" data-bs-toggle="modal" data-bs-target="#entry_export-modal"> <button class="btn btn-outline-dark p-1 m-1" data-bs-toggle="tooltip" data-bs-placement="bottom" title="@lang('Export')"><i class="fas fa-fw fa-download fs-5"></i></button>
<i class="fas fa-fw fa-file-export me-2"></i> @lang('Export') </span>
</button>
</a>
</li> </li>
@endif @endif
@if(isset($page_actions) && $page_actions->contains('copy')) @if(isset($page_actions) && $page_actions->contains('copy'))
<li class="nav-item"> <li>
<a class="nav-link pt-0 pb-1"> <button class="btn btn-outline-dark p-1 m-1" id="entry-copy-move" data-bs-toggle="tooltip" data-bs-placement="bottom" title="@lang('Copy/Move')"><i class="fas fa-fw fa-copy fs-5"></i></button>
<button class="p-2 m-0 border-0 btn btn-transition btn-outline-dark w-100 text-start"> </li>
<i class="fas fa-fw fa-truck-moving me-2"></i> @lang('Copy or Move') @endif
</button> @if((isset($page_actions) && $page_actions->contains('edit')) || old())
</a> <li>
<button class="btn btn-outline-dark p-1 m-1" id="entry-edit" data-bs-toggle="tooltip" data-bs-placement="bottom" title="@lang('Edit Entry')"><i class="fas fa-fw fa-edit fs-5"></i></button>
</li>
@endif
<!-- @todo Dont offer the delete button for an entry with children -->
@if(isset($page_actions) && $page_actions->contains('delete'))
<li>
<span id="entry-delete" data-bs-toggle="modal" data-bs-target="#page-modal">
<button class="btn btn-outline-danger p-1 m-1" data-bs-custom-class="custom-tooltip-danger" data-bs-toggle="tooltip" data-bs-placement="bottom" title="@lang('Delete Entry')"><i class="fas fa-fw fa-trash-can fs-5"></i></button>
</span>
</li> </li>
@endif @endif
</ul> </ul>
@ -61,6 +48,20 @@
</div> </div>
</div> </div>
</div> </div>
@endif
</div> </div>
</div> </div>
@section('page-scripts')
<script type="text/javascript">
$(document).ready(function() {
$('button[id=entry-edit]').on('click',function(item) {
item.preventDefault();
if ($(this).hasClass('btn-dark'))
return;
editmode();
});
});
</script>
@append

View File

@ -33,23 +33,6 @@
<div class="app-sidebar__inner"> <div class="app-sidebar__inner">
<ul class="vertical-nav-menu"> <ul class="vertical-nav-menu">
<li class="app-sidebar__heading">{{ config('server')->name }}</li> <li class="app-sidebar__heading">{{ config('server')->name }}</li>
<li>
<div class="font-icon-wrapper float-start me-1 server-icon">
<a class="p-0 m-0" href="{{ url('info') }}" onclick="return false;" style="display: contents;"><i class="fas fa-fw fa-info"></i></a>
</div>
<div class="font-icon-wrapper float-start ms-1 me-1 server-icon">
<a class="p-0 m-0" href="{{ url('schema') }}" onclick="return false;" style="display: contents;"><i class="fas fa-fw fa-fingerprint"></i></a>
</div>
<div class="font-icon-wrapper float-start ms-1 me-1 server-icon">
<a class="p-0 m-0" href="{{ url('import') }}" onclick="return false;" style="display: contents;"><i class="fas fa-fw fa-upload"></i></a>
</div>
@env(['local'])
<div class="font-icon-wrapper float-end ms-1 server-icon">
<a class="p-0 m-0" href="{{ url('debug') }}" onclick="return false;" style="display: contents;"><i class="fas fa-fw fa-toolbox"></i></a>
</div>
@endenv
<div class="clearfix"></div>
</li>
<li> <li>
<i id="treeicon" class="metismenu-icon fa-fw fas fa-sitemap"></i> <i id="treeicon" class="metismenu-icon fa-fw fas fa-sitemap"></i>
<span class="f16" id="tree"></span> <span class="f16" id="tree"></span>
@ -58,38 +41,3 @@
</div> </div>
</div> </div>
</div> </div>
@section('page-scripts')
<script type="text/javascript">
$(document).ready(function() {
$('.server-icon > a').on('click',function(item) {
var content;
$.ajax({
url: $(this).attr('href'),
method: 'GET',
dataType: 'html',
statusCode: {
404: function() {
$('.main-content').empty().append(content);
}
},
beforeSend: function() {
content = $('.main-content').contents();
$('.main-content').empty().append('<div class="fa-3x"><i class="fas fa-spinner fa-pulse"></i></div>');
}
}).done(function(html) {
$('.main-content').empty().append(html);
}).fail(function() {
alert('Well that didnt work?');
});
item.stopPropagation();
return false;
});
});
</script>
@append

View File

@ -39,22 +39,68 @@
<button class="btn-close"></button> <button class="btn-close"></button>
</div> </div>
<ul class="header-menu nav"> <ul class="header-menu nav server-icon">
{{-- <li>
<li class="nav-item"> <button id="link-info" class="btn btn-light p-1 m-1" data-bs-toggle="tooltip" data-bs-placement="bottom" title="@lang('Server Info')" data-link="{{ url('info') }}">
<a href="javascript:void(0);" class="nav-link"> <i class="fas fa-fw fa-info fs-5"></i>
<i class="nav-link-icon fas fa-database"></i> Link </button>
</a> </li>
<li>
<button id="link-schema" class="btn btn-light p-1 m-1" data-bs-toggle="tooltip" data-bs-placement="bottom" title="@lang('Schema Viewer')" data-link="{{ url('schema') }}">
<i class="fas fa-fw fa-fingerprint fs-5"></i>
</button>
</li>
<li>
<button id="link-import" class="btn btn-light p-1 m-1" data-bs-toggle="tooltip" data-bs-placement="bottom" title="@lang('Import')" data-link="{{ url('import') }}">
<i class="fas fa-fw fa-upload fs-5"></i>
</button>
</li>
<li>
<button id="link-debug" class="btn btn-light p-1 m-1" data-bs-toggle="tooltip" data-bs-placement="bottom" title="@lang('Debug')" data-link="{{ url('debug') }}">
<i class="fas fa-fw fa-toolbox fs-5"></i>
</button>
</li> </li>
--}}
</ul> </ul>
</div> </div>
<div class="app-header-right"> <div class="app-header-right">
<ul class="header-menu nav">
@if(! request()->isSecure()) @if(! request()->isSecure())
<span class="badge bg-danger">WARNING - SESSION NOT SECURE</span> <li>
<button class="btn btn-danger p-1 m-1" data-bs-custom-class="custom-tooltip-danger" data-bs-toggle="tooltip" data-bs-placement="bottom" title="WARNING - SESSION NOT SECURE">
<i class="fas fa-fw fa-unlock-keyhole fs-5"></i>
</button>
</li>
@endif @endif
@if(($x=Config::get('update_available')) && $x->action !== 'current')
<li>
@switch($x->action)
@case('unable')
<button class="btn btn-light opacity-2 p-1 m-1" data-bs-toggle="tooltip" data-bs-placement="bottom" title="Upstream Version Unavailable">
<i class="fas fa-fw fa-bolt fs-5"></i>
</button>
@break
@case('upgrade')
<button class="btn btn-warning p-1 m-1" data-bs-custom-class="custom-tooltip-warning" data-bs-toggle="tooltip" data-bs-placement="bottom" data-bs-html="true" title="Update Available:<br>{{ $x->version }}">
<i class="fas fa-fw fa-wrench fs-5"></i>
</button>
@break
@case('mismatch')
<button class="btn btn-light opacity-2 p-1 m-1" data-bs-toggle="tooltip" data-bs-placement="bottom" data-bs-html="true" title="Version Issue - Upstream<br>{{ $x->version }}">
<i class="fas fa-fw fa-exclamation fs-5"></i>
</button>
@break
@case('unknown')
<button class="btn btn-light opacity-2 p-1 m-1" data-bs-toggle="tooltip" data-bs-placement="bottom" data-bs-html="true" title="Version Issue - Unknown<br>{{ $x->version }}">
<i class="fas fa-fw fa-question fs-5"></i>
</button>
@break
@endswitch
</li>
@endif
</ul>
<div class="header-btn-lg pe-0"> <div class="header-btn-lg pe-0">
<div class="widget-content p-0"> <div class="widget-content p-0">
<div class="widget-content-wrapper"> <div class="widget-content-wrapper">
@ -112,3 +158,38 @@
</div> </div>
</div> </div>
</div> </div>
@section('page-scripts')
<script type="text/javascript">
$(document).ready(function() {
$('button[id^="link-"]').on('click',function(item) {
var content;
$.ajax({
url: $(this).data('link'),
method: 'GET',
dataType: 'html',
statusCode: {
404: function() {
$('.main-content').empty().append(content);
}
},
beforeSend: function() {
content = $('.main-content').contents();
$('.main-content').empty().append('<div class="fa-3x"><i class="fas fa-spinner fa-pulse"></i></div>');
}
}).done(function(html) {
$('.main-content').empty().append(html);
}).fail(function() {
alert('Well that didnt work?');
});
item.stopPropagation();
return false;
});
});
</script>
@append

View File

@ -9,12 +9,12 @@
@default @default
<td> <td>
<input type="hidden" name="{{ $o->name_lc }}[]" value="{{ md5($value) }}"> <input type="hidden" name="{{ $o->name_lc }}[]" value="{{ md5($value) }}">
<img @class(['jpegphoto','is-invalid'=>($e=$errors->get($o->name_lc.'.'.$loop->index))]) src="data:{{ $x }};base64, {{ base64_encode($value) }}" /> <img @class(['border','rounded','p-2','m-0','is-invalid'=>($e=$errors->get($o->name_lc.'.'.$loop->index))]) src="data:{{ $x }};base64, {{ base64_encode($value) }}" />
@if ($edit) @if ($edit)
<br> <br>
<!-- @todo TO IMPLEMENT --> <!-- @todo TO IMPLEMENT -->
<span class="btn btn-sm btn-danger deletable d-none"><i class="fas fa-trash-alt"></i> @lang('Delete')</span> <span class="btn btn-sm btn-danger deletable d-none mt-3"><i class="fas fa-trash-alt"></i> @lang('Delete')</span>
<div class="invalid-feedback pb-2"> <div class="invalid-feedback pb-2">
@if($e) @if($e)

View File

@ -22,7 +22,7 @@
<div class="row"> <div class="row">
<div class="offset-1 col-4 p-2"> <div class="offset-1 col-4 p-2">
<span class="p-0 m-0"> <span class="p-0 m-0">
<button type="button" class="btn btn-transition btn-sm btn-outline-dark mt-3" data-bs-toggle="modal" data-bs-target="#userpassword_check-modal"><i class="fas fa-user-check"></i> @lang('Check Password')</button> <button type="button" class="btn btn-sm btn-outline-dark mt-3" data-bs-toggle="modal" data-bs-target="#userpassword_check-modal"><i class="fas fa-user-check"></i> @lang('Check Password')</button>
</span> </span>
</div> </div>
</div> </div>

View File

@ -34,8 +34,13 @@
@section('page-scripts') @section('page-scripts')
<script type="text/javascript"> <script type="text/javascript">
$(document).ready(function() { $(document).ready(function() {
var rdn_value_set = null; var rdn_value_set = $('input#rdn_value').val();
var rdn_attr = null; rdn_attr = $('select#rdn').val();
if (rdn_attr) {
$('#'+rdn_attr).find('input').attr('readonly',true);
set_rdn_value();
}
function set_rdn_value() { function set_rdn_value() {
if (rdn_attr && rdn_value_set) if (rdn_attr && rdn_value_set)

View File

@ -27,9 +27,6 @@
<div class="modal-footer"> <div class="modal-footer">
<button type="button" class="btn btn-sm btn-primary" data-bs-dismiss="modal">Next</button> <button type="button" class="btn btn-sm btn-primary" data-bs-dismiss="modal">Next</button>
{{--
<button type="button" class="btn btn-sm btn-primary" data-bs-dismiss="modal"><i class="fas fa-fw fa-spinner fa-spin d-none"></i> Next</button>
--}}
</div> </div>
</div> </div>
</div> </div>
@ -45,12 +42,12 @@
$('#new_objectclass-modal').on('shown.bs.modal',function() { $('#new_objectclass-modal').on('shown.bs.modal',function() {
if (! rendered) if (! rendered)
$.ajax({ $.ajax({
type: 'POST', method: 'POST',
cache: false,
url: '{{ url('entry/objectclass/add') }}', url: '{{ url('entry/objectclass/add') }}',
data: { data: {
oc: oc, oc: oc,
}, },
cache: false,
success: function(data) { success: function(data) {
$('select#newoc').select2({ $('select#newoc').select2({
dropdownParent: $('#new_objectclass-modal'), dropdownParent: $('#new_objectclass-modal'),
@ -60,7 +57,7 @@
}); });
}, },
error: function(e) { error: function(e) {
if (e.status != 412) if (e.status !== 412)
alert('That didnt work? Please try again....'); alert('That didnt work? Please try again....');
}, },
}); });
@ -70,11 +67,10 @@
// When the ObjectClass modal is closed, process what was selected // When the ObjectClass modal is closed, process what was selected
$('#new_objectclass-modal').on('hide.bs.modal',function() { $('#new_objectclass-modal').on('hide.bs.modal',function() {
var c = {{ $o->values->count() }}; // @todo do we need this?
var newadded = $('select#newoc').val(); var newadded = $('select#newoc').val();
// If nothing selected, we dont have anything to do // If nothing selected, we dont have anything to do
if (added_oc.sort().join('|') == newadded.sort().join('|')) if (added_oc.sort().join('|') === newadded.sort().join('|'))
return; return;
// Find out what was selected, and add them // Find out what was selected, and add them
@ -84,50 +80,47 @@
// Add attribute to the page // Add attribute to the page
$.ajax({ $.ajax({
type: 'POST', method: 'POST',
beforeSend: function() {},
success: function(data) {
$('#{{ $o->name }}').append(data);
},
error: function(e) {
if (e.status != 412)
alert('That didnt work? Please try again....');
},
url: '{{ url('entry/attr/add',[$o->name_lc]) }}', url: '{{ url('entry/attr/add',[$o->name_lc]) }}',
data: { data: {
noheader: true, noheader: true,
value: item, value: item,
objectclasses: oc, objectclasses: oc,
loop: c++, // @todo can we omit loop and c
}, },
cache: false cache: false,
success: function(data) {
$('#{{ $o->name }}').append(data);
},
error: function(e) {
if (e.status !== 412)
alert('That didnt work? Please try again....');
},
}); });
$.ajax({ $.ajax({
type: 'POST', method: 'POST',
beforeSend: function() {}, url: '{{ url('api/schema/objectclass/attrs') }}/'+item,
cache: false,
success: function(data) { success: function(data) {
// Render any must attributes // Render any must attributes
if (data.must.length) { if (data.must.length) {
data.must.forEach(function(item) { data.must.forEach(function(item) {
// Add attribute to the page // Add attribute to the page
$.ajax({ $.ajax({
type: 'POST', method: 'POST',
beforeSend: function() {},
success: function(data) {
$('#newattrs').append(data);
},
error: function(e) {
if (e.status != 412)
alert('That didnt work? Please try again....');
},
url: '{{ url('entry/attr/add') }}/'+item, url: '{{ url('entry/attr/add') }}/'+item,
data: { data: {
value: item, value: item,
objectclasses: oc, objectclasses: oc,
loop: c++, // @todo can we omit loop and c
}, },
cache: false cache: false,
success: function(data) {
$('#newattrs').append(data);
},
error: function(e) {
if (e.status !== 412)
alert('That didnt work? Please try again....');
},
}); });
}) })
} }
@ -135,19 +128,29 @@
// Add attributes to "Add new Attribute" that are now available // Add attributes to "Add new Attribute" that are now available
if (data.may.length) { if (data.may.length) {
var newattr = $('select#newattr'); var newattr = $('select#newattr');
var oldoptions = $('select#newattr option').map((i,o)=>o.value).get();
// @todo It might be nice to re-sort these options
data.may.forEach(function(item) { data.may.forEach(function(item) {
if (! oldoptions.includes(item))
newattr.append(new Option(item,item,false,false)); newattr.append(new Option(item,item,false,false));
}); });
// Sort the attributes
newattr
.append($('select#newattr option')
.remove()
.sort(function (a,b) {
let at = $(a).text(),
bt = $(b).text();
return (at > bt) ? 1 : ((at < bt) ? -1 : 0);
}))
.val('');
} }
}, },
error: function(e) { error: function(e) {
if (e.status != 412) if (e.status !== 412)
alert('That didnt work? Please try again....'); alert('That didnt work? Please try again....');
}, },
url: '{{ url('api/schema/objectclass/attrs') }}/'+item,
cache: false
}); });
}); });
@ -156,10 +159,10 @@
if (newadded.indexOf(item) === -1) { if (newadded.indexOf(item) === -1) {
$('span#objectclass_'+item).empty(); $('span#objectclass_'+item).empty();
// @todo Remove attributes from "Add new Attribute" that are no longer available
$.ajax({ $.ajax({
type: 'POST', method: 'POST',
beforeSend: function() {}, url: '{{ url('api/schema/objectclass/attrs') }}/'+item,
cache: false,
success: function(data) { success: function(data) {
var attrs = []; var attrs = [];
@ -183,17 +186,11 @@
x.css('background-color','#f0c0c0').attr('readonly',true).attr('placeholder',x.val()).val(''); x.css('background-color','#f0c0c0').attr('readonly',true).attr('placeholder',x.val()).val('');
}); });
// remove the Add Values box
// Remove any keyed in values
// @todo remove any required attributes that are no longer defined as a result of removing this OC
}, },
error: function(e) { error: function(e) {
if (e.status != 412) if (e.status !== 412)
alert('That didnt work? Please try again....'); alert('That didnt work? Please try again....');
}, },
url: '{{ url('api/schema/objectclass/attrs') }}/'+item,
cache: false
}); });
} }
}); });

View File

@ -0,0 +1 @@
<button type="button" class="btn btn-sm btn-secondary" data-bs-dismiss="modal">@lang('Close')</button>

View File

@ -1,28 +1,28 @@
<table class="table table-borderless"> <table class="table table-borderless">
<tr> <tr class="border-bottom line-height-2">
<td class="{{ ($x=$o->getObject('jpegphoto')) ? 'border' : '' }}" rowspan="2"> <td class="p-1 pt-0" rowspan="2">
{!! $x ? $x->render(FALSE,TRUE) : sprintf('<div class="page-title-icon f32"><i class="%s"></i></div>',$o->icon() ?? "fas fa-info") !!} {!! ($x=$o->getObject('jpegphoto')) ? $x->render(FALSE,TRUE) : sprintf('<div class="page-title-icon f32 m-2"><i class="%s"></i></div>',$o->icon() ?? "fas fa-info") !!}
</td> </td>
<td class="text-end align-text-top p-0 {{ $x ? 'ps-5' : 'pt-2' }}"><strong>{{ $o->getDn() }}</strong></td> <td class="text-end align-bottom pb-0 mb-0 pt-2 pe-3 {{ $x ? 'ps-3' : '' }}"><strong>{{ $o->getDn() }}</strong></td>
</tr> </tr>
<tr> <tr>
<td class="line-height-1" style="font-size: 55%;vertical-align: bottom;" colspan="2"> <td class="align-bottom" style="font-size: 55%" colspan="2">
<table> <table class="table table-condensed table-borderless w-100">
<tr> <tr class="mt-1">
<td class="p-1 m-1">Created</td> <td class="p-0 pe-2">Created</td>
<th class="p-1 m-1"> <th class="p-0">
<x-attribute :o="$o->getObject('createtimestamp')" :na="__('Unknown')"/> [<x-attribute :o="$o->getObject('creatorsname')" :na="__('Unknown')"/>] <x-attribute :o="$o->getObject('createtimestamp')" :na="__('Unknown')"/> [<x-attribute :o="$o->getObject('creatorsname')" :na="__('Unknown')"/>]
</th> </th>
</tr> </tr>
<tr> <tr class="mt-1">
<td class="p-1 m-1">Modified</td> <td class="p-0 pe-2">Modified</td>
<th class="p-1 m-1"> <th class="p-0">
<x-attribute :o="$o->getObject('modifytimestamp')" :na="__('Unknown')"/> [<x-attribute :o="$o->getObject('modifiersname')" :na="__('Unknown')"/>] <x-attribute :o="$o->getObject('modifytimestamp')" :na="__('Unknown')"/> [<x-attribute :o="$o->getObject('modifiersname')" :na="__('Unknown')"/>]
</th> </th>
</tr> </tr>
<tr> <tr class="mt-1">
<td class="p-1 m-1">UUID</td> <td class="p-0 pe-2">UUID</td>
<th class="p-1 m-1"> <th class="p-0">
<x-attribute :o="$o->getObject('entryuuid')" :na="__('Unknown')"/> <x-attribute :o="$o->getObject('entryuuid')" :na="__('Unknown')"/>
</th> </th>
</tr> </tr>

View File

@ -25,7 +25,7 @@
@switch($step) @switch($step)
@case(1) @case(1)
<div class="row"> <div class="row">
<div class="col-12 col-sm-6"> <div class="col-12 col-md-6">
<x-form.select <x-form.select
id="objectclass" id="objectclass"
name="objectclass[]" name="objectclass[]"
@ -54,7 +54,7 @@
</form> </form>
<div class="row d-none pt-3"> <div class="row d-none pt-3">
<div class="col-12 {{ $step > 1 ? 'offset-sm-2' : '' }} col-sm-4 col-lg-2"> <div class="col-12 {{ $step > 1 ? 'offset-sm-2' : '' }} col-lg-10">
<x-form.reset form="dn-create"/> <x-form.reset form="dn-create"/>
<x-form.submit action="Next" form="dn-create"/> <x-form.submit action="Next" form="dn-create"/>
</div> </div>
@ -68,6 +68,7 @@
@section('page-scripts') @section('page-scripts')
<script type="text/javascript"> <script type="text/javascript">
var oc = {!! $oo->getObject('objectclass')->values !!}; var oc = {!! $oo->getObject('objectclass')->values !!};
var rdn_attr;
function editmode() { function editmode() {
// Find all input items and turn off readonly // Find all input items and turn off readonly
@ -76,6 +77,10 @@
if ($(this)[0].name.match(/^objectclass/)) if ($(this)[0].name.match(/^objectclass/))
return; return;
// Dont take of the readonly value for our RDN if it is set
if (rdn_attr && ($(this)[0].name === rdn_attr+'[]'))
return;
$(this).attr('readonly',false); $(this).attr('readonly',false);
}); });

View File

@ -71,9 +71,16 @@
@endsection @endsection
@section('page-modals') @section('page-modals')
<!-- Frame Modals -->
<div class="modal fade" id="page-modal" tabindex="-1" aria-labelledby="label" aria-hidden="true">
<div class="modal-dialog modal-lg modal-fullscreen-lg-down">
<div class="modal-content"></div>
</div>
</div>
<!-- EXPORT --> <!-- EXPORT -->
<div class="modal fade" id="entry_export-modal" tabindex="-1" aria-labelledby="entry_export-label" aria-hidden="true"> <div class="modal fade" id="entry_export-modal" tabindex="-1" aria-labelledby="entry_export-label" aria-hidden="true">
<div class="modal-dialog modal-lg modal-fullscreen-xl-down"> <div class="modal-dialog modal-lg modal-fullscreen-lg-down">
<div class="modal-content"> <div class="modal-content">
<div class="modal-header"> <div class="modal-header">
<h1 class="modal-title fs-5" id="entry_export-label">LDIF for {{ $dn }}</h1> <h1 class="modal-title fs-5" id="entry_export-label">LDIF for {{ $dn }}</h1>
@ -149,7 +156,9 @@
function editmode() { function editmode() {
$('#dn-edit input[name="dn"]').val(dn); $('#dn-edit input[name="dn"]').val(dn);
$('button[id=entry-edit]').addClass('active').removeClass('btn-outline-dark').addClass('btn-outline-light'); $('button[id=entry-edit]')
.removeClass('btn-outline-dark')
.addClass('btn-dark');
// Find all input items and turn off readonly // Find all input items and turn off readonly
$('input.form-control').each(function() { $('input.form-control').each(function() {
@ -201,15 +210,6 @@
$('#newattr-select').remove(); $('#newattr-select').remove();
}); });
$('button[id=entry-edit]').on('click',function(item) {
item.preventDefault();
if ($(this).hasClass('active'))
return;
editmode();
});
$('#entry_export-download').on('click',function(item) { $('#entry_export-download').on('click',function(item) {
item.preventDefault(); item.preventDefault();
@ -217,6 +217,34 @@
download('ldap-export.ldif',ldif.html()); download('ldap-export.ldif',ldif.html());
}); });
$('#page-modal').on('shown.bs.modal',function(item) {
var that = $(this).find('.modal-content');
switch ($(item.relatedTarget).attr('id')) {
case 'entry-delete':
$.ajax({
method: 'GET',
url: '{{ url('modal/delete') }}/'+dn,
dataType: 'html',
cache: false,
beforeSend: function() {
that.empty().append('<span class="p-3"><i class="fas fa-3x fa-spinner fa-pulse"></i></span>');
},
success: function(data) {
that.empty().html(data);
},
error: function(e) {
if (e.status != 412)
alert('That didnt work? Please try again....');
},
})
break;
default:
console.log('No action for button:'+$(item.relatedTarget).attr('id'));
}
});
$('#entry_export-modal').on('shown.bs.modal',function() { $('#entry_export-modal').on('shown.bs.modal',function() {
$.ajax({ $.ajax({
type: 'GET', type: 'GET',

View File

@ -12,6 +12,8 @@
--}} --}}
@section('main-content') @section('main-content')
<x-success/>
<div class="card card-solid mb-3"> <div class="card card-solid mb-3">
<div class="card-body"> <div class="card-body">
<div class="row"> <div class="row">
@ -48,24 +50,12 @@
var subpage = window.location.hash; var subpage = window.location.hash;
$(document).ready(function() { $(document).ready(function() {
if (subpage) {
// Enable navigating to a page via a URL fragment, and that fragment is defined with a server-icon // Enable navigating to a page via a URL fragment, and that fragment is defined with a server-icon
var valid = Object.values($('.server-icon > a').map(function() { if (subpage) {
return $(this).attr('id');
})).indexOf(subpage.substring(1));
if (valid !== -1) {
// @todo this condition can probably be removed
console.log('teleporting...:'+subpage.substring(1));
// The click() event wont have been registered yet, so we need to delay us clicking it
setTimeout(function() { $(subpage).click(); },250);
} else if (valid === -1) {
// Clear the hash // Clear the hash
history.replaceState(null,null,' '); history.replaceState(null,null,' ');
getNode(subpage.substring(1)); getNode(subpage.substring(1));
} }
}
}); });
</script> </script>
@append @append

View File

@ -13,3 +13,8 @@
@yield('page-modals') @yield('page-modals')
@yield('page-scripts') @yield('page-scripts')
@yield('page-styles') @yield('page-styles')
<!-- Initialise any ajax tool tip attributes -->
<script type="text/javascript">
$('[data-bs-toggle="tooltip"]').tooltip();
</script>

View File

@ -0,0 +1,29 @@
<div class="modal-header bg-danger text-white">
<h1 class="modal-title fs-5" id="entry_export-label">
<i class="fas fa-fw fa-exclamation-triangle"></i> <strong>@lang('WARNING')</strong>: @lang('Delete') <strong>{{ Crypt::decryptString($dn) }}</strong>
</h1>
<button type="button" class="btn-close" data-bs-dismiss="modal"></button>
</div>
<div class="modal-body">
@lang('Deleting this DN will permanently delete it from your LDAP server.')
</div>
<div class="modal-footer">
<x-modal.close/>
<button id="entry-delete" type="button" class="btn btn-sm btn-danger">@lang('Delete')</button>
</div>
<form id="entry-delete-form" method="POST" action="{{ url('entry/delete') }}">
@csrf
<input type="hidden" name="dn" value="{{ $dn }}">
</form>
<script type="text/javascript">
$(document).ready(function() {
$('button[id=entry-delete]').on('click',function(item) {
$('form#entry-delete-form').submit();
});
});
</script>

View File

@ -43,6 +43,7 @@ Route::controller(HomeController::class)->group(function() {
Route::match(['get','post'],'entry/add','entry_add'); Route::match(['get','post'],'entry/add','entry_add');
Route::post('entry/create','entry_create'); Route::post('entry/create','entry_create');
Route::post('entry/delete','entry_delete');
Route::get('entry/export/{id}','entry_export'); Route::get('entry/export/{id}','entry_export');
Route::post('entry/password/check/','entry_password_check'); Route::post('entry/password/check/','entry_password_check');
Route::post('entry/attr/add/{id}','entry_attr_add'); Route::post('entry/attr/add/{id}','entry_attr_add');
@ -51,5 +52,7 @@ Route::controller(HomeController::class)->group(function() {
Route::post('entry/update/pending','entry_pending_update'); Route::post('entry/update/pending','entry_pending_update');
Route::post('import/process/{type}','import'); Route::post('import/process/{type}','import');
Route::view('modal/delete/{dn}','modals.entry-delete');
}); });
}); });