1 Commits

Author SHA1 Message Date
358f1af52c fix(deps): update vue monorepo to v3.5.34
Some checks failed
renovate/artifacts Artifact file update failure
Build Test / build (pull_request) Failing after 10s
JS Unit Tests / test (pull_request) Failing after 9s
PHP Unit Tests / test (pull_request) Successful in 38s
2026-05-15 03:09:53 +00:00
11 changed files with 675 additions and 680 deletions

20
composer.lock generated
View File

@@ -4,7 +4,7 @@
"Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies", "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies",
"This file is @generated automatically" "This file is @generated automatically"
], ],
"content-hash": "85ac161c93851c4863257009fc596644", "content-hash": "b14b010c422e222aeb1e33104e2a09ec",
"packages": [ "packages": [
{ {
"name": "laravel/serializable-closure", "name": "laravel/serializable-closure",
@@ -606,16 +606,16 @@
}, },
{ {
"name": "symfony/console", "name": "symfony/console",
"version": "v7.4.11", "version": "v7.4.9",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/symfony/console.git", "url": "https://github.com/symfony/console.git",
"reference": "ed0107e43ab452aa77ae99e005b95e56b556e075" "reference": "d7d2b64a45a89d607865927b176fa51c33ddbb58"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/symfony/console/zipball/ed0107e43ab452aa77ae99e005b95e56b556e075", "url": "https://api.github.com/repos/symfony/console/zipball/d7d2b64a45a89d607865927b176fa51c33ddbb58",
"reference": "ed0107e43ab452aa77ae99e005b95e56b556e075", "reference": "d7d2b64a45a89d607865927b176fa51c33ddbb58",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
@@ -680,7 +680,7 @@
"terminal" "terminal"
], ],
"support": { "support": {
"source": "https://github.com/symfony/console/tree/v7.4.11" "source": "https://github.com/symfony/console/tree/v7.4.9"
}, },
"funding": [ "funding": [
{ {
@@ -700,7 +700,7 @@
"type": "tidelift" "type": "tidelift"
} }
], ],
"time": "2026-05-13T12:04:42+00:00" "time": "2026-04-22T15:21:55+00:00"
}, },
{ {
"name": "symfony/deprecation-contracts", "name": "symfony/deprecation-contracts",
@@ -3148,7 +3148,7 @@
], ],
"aliases": [], "aliases": [],
"minimum-stability": "stable", "minimum-stability": "stable",
"stability-flags": {}, "stability-flags": [],
"prefer-stable": true, "prefer-stable": true,
"prefer-lowest": false, "prefer-lowest": false,
"platform": { "platform": {
@@ -3156,6 +3156,6 @@
"ext-ctype": "*", "ext-ctype": "*",
"ext-iconv": "*" "ext-iconv": "*"
}, },
"platform-dev": {}, "platform-dev": [],
"plugin-api-version": "2.9.0" "plugin-api-version": "2.3.0"
} }

1163
package-lock.json generated

File diff suppressed because it is too large Load Diff

View File

@@ -21,45 +21,45 @@
"test:coverage": "vitest run --coverage --config tests/js/vitest.config.ts" "test:coverage": "vitest run --coverage --config tests/js/vitest.config.ts"
}, },
"dependencies": { "dependencies": {
"@fontsource/inter": "^5.2.8", "@fontsource/inter": "5.2.8",
"@fontsource/poppins": "^5.2.7", "@fontsource/poppins": "5.2.7",
"@fontsource/public-sans": "^5.2.7", "@fontsource/public-sans": "5.2.7",
"@fontsource/roboto": "^5.2.10", "@fontsource/roboto": "5.2.10",
"@mdi/font": "^7.4.47", "@mdi/font": "7.4.47",
"@tsconfig/node24": "^24.0.4", "@tsconfig/node24": "24.0.4",
"@typescript-eslint/parser": "^8.59.3", "@typescript-eslint/parser": "^8.55.0",
"@vue/compiler-sfc": "^3.5.34", "@vue/compiler-sfc": "^3.5.33",
"dompurify": "^3.4.3", "dompurify": "^3.4.1",
"pinia": "^3.0.4", "pinia": "3.0.4",
"vee-validate": "^4.15.1", "vee-validate": "^4.15.1",
"vite-plugin-vuetify": "^2.1.3", "vite-plugin-vuetify": "2.1.3",
"vue": "^3.5.34", "vue": "3.5.34",
"vue-router": "^5.0.7", "vue-router": "5.0.6",
"vue3-perfect-scrollbar": "^2.0.0", "vue3-perfect-scrollbar": "2.0.0",
"vuetify": "^4.0.7" "vuetify": "4.0.6"
}, },
"devDependencies": { "devDependencies": {
"@eslint/js": "^10.0.1", "@eslint/js": "^10.0.0",
"@types/dompurify": "^3.2.0", "@types/dompurify": "^3.2.0",
"@types/node": "^25.8.0", "@types/node": "25.6.0",
"@vitejs/plugin-vue": "^6.0.7", "@vitejs/plugin-vue": "6.0.6",
"@vitest/coverage-v8": "^4.1.6", "@vitest/coverage-v8": "^4.0.18",
"@vitest/ui": "^4.1.6", "@vitest/ui": "^4.0.18",
"@vue/eslint-config-prettier": "^10.2.0", "@vue/eslint-config-prettier": "10.2.0",
"@vue/test-utils": "^2.4.10", "@vue/test-utils": "^2.4.8",
"@vue/tsconfig": "^0.9.1", "@vue/tsconfig": "0.9.1",
"eslint": "^10.3.0", "eslint": "^10.0.0",
"eslint-plugin-vue": "^10.9.1", "eslint-plugin-vue": "10.9.1",
"jsdom": "^29.1.1", "jsdom": "^29.0.0",
"prettier": "^3.8.3", "prettier": "3.8.3",
"sass": "^1.99.0", "sass": "1.99.0",
"sass-loader": "^16.0.8", "sass-loader": "16.0.7",
"typescript": "^6.0.3", "typescript": "6.0.3",
"typescript-eslint": "^8.59.3", "typescript-eslint": "^8.59.0",
"vite": "^8.0.13", "vite": "8.0.10",
"vite-plugin-static-copy": "^4.1.0", "vite-plugin-static-copy": "^4.0.0",
"vitest": "^4.1.6", "vitest": "^4.0.18",
"vue-cli-plugin-vuetify": "^2.5.8", "vue-cli-plugin-vuetify": "2.5.8",
"vue-tsc": "^3.2.9" "vue-tsc": "^3.2.7"
} }
} }

View File

@@ -28,8 +28,6 @@ use KTXF\Resource\Provider\ResourceServiceLocationInterface;
*/ */
interface ProviderServiceDiscoverInterface { interface ProviderServiceDiscoverInterface {
public const CAPABILITY_SERVICE_DISCOVER = 'ServiceDiscover';
/** /**
* Attempts to discover service configuration using provider-specific methods. * Attempts to discover service configuration using provider-specific methods.
* *

View File

@@ -28,8 +28,6 @@ use KTXF\Mail\Service\ServiceMutableInterface;
*/ */
interface ProviderServiceTestInterface { interface ProviderServiceTestInterface {
public const CAPABILITY_SERVICE_TEST = 'ServiceTest';
/** /**
* Test a service connection * Test a service connection
* *

View File

@@ -12,10 +12,8 @@ namespace KTXF\Mail\Service;
use Generator; use Generator;
use KTXF\Mail\Collection\CollectionBaseInterface; use KTXF\Mail\Collection\CollectionBaseInterface;
use KTXF\Mail\Object\AddressInterface; use KTXF\Mail\Object\AddressInterface;
use KTXF\Resource\BinaryResource;
use KTXF\Resource\Delta\Delta; use KTXF\Resource\Delta\Delta;
use KTXF\Resource\Filter\IFilter; use KTXF\Resource\Filter\IFilter;
use KTXF\Resource\Identifier\EntityIdentifierInterface;
use KTXF\Resource\Provider\ResourceServiceBaseInterface; use KTXF\Resource\Provider\ResourceServiceBaseInterface;
use KTXF\Resource\Range\IRange; use KTXF\Resource\Range\IRange;
use KTXF\Resource\Range\RangeType; use KTXF\Resource\Range\RangeType;
@@ -168,9 +166,9 @@ interface ServiceBaseInterface extends ResourceServiceBaseInterface {
* @param IRange|null $range Optional pagination * @param IRange|null $range Optional pagination
* @param array|null $properties Optional message properties to fetch * @param array|null $properties Optional message properties to fetch
* *
* @return array<string,EntityBaseInterface> Messages indexed by Urn * @return array<string|int,EntityBaseInterface> Messages indexed by ID
*/ */
public function entityListBulk(string|int $collection, ?IFilter $filter = null, ?ISort $sort = null, ?IRange $range = null, ?array $properties = null): array; public function entityList(string|int $collection, ?IFilter $filter = null, ?ISort $sort = null, ?IRange $range = null, ?array $properties = null): array;
/** /**
* Lists messages in a collection * Lists messages in a collection
@@ -246,33 +244,11 @@ interface ServiceBaseInterface extends ResourceServiceBaseInterface {
* *
* @since 2025.05.01 * @since 2025.05.01
* *
* @param EntityIdentifierInterface ...$identifiers Message identifiers to fetch * @param string|int $collection Collection ID
* @param string|int ...$identifiers Message IDs to fetch
* *
* @return array<string,EntityBaseInterface> Messages indexed by Urn * @return array<string|int,EntityBaseInterface> Messages indexed by ID
*/ */
public function entityFetchBulk(EntityIdentifierInterface ...$identifiers): array; public function entityFetch(string|int $collection, string|int ...$identifiers): array;
/**
* Fetches one or more entities
*
* @since 2025.05.01
*
* @param EntityIdentifierInterface ...$identifiers Message identifiers to fetch
*
* @return Generator<string,EntityBaseInterface> Yields messages one by one
*/
public function entityFetchStream(EntityIdentifierInterface ...$identifiers): Generator;
/**
* Downloads a message or part of a message
*
* @since 2025.05.01
*
* @param EntityIdentifierInterface $target Message identifier
* @param array|null $part Optional part to download
*
* @return BinaryResource
*/
public function entityDownload(EntityIdentifierInterface $target, array|null $part): BinaryResource;
} }

View File

@@ -1,37 +0,0 @@
<?php
declare(strict_types=1);
/**
* SPDX-FileCopyrightText: Sebastian Krupinski <krupinski01@gmail.com>
* SPDX-License-Identifier: AGPL-3.0-or-later
*/
namespace KTXF\Resource;
/**
* Carries file-like binary content metadata and a byte stream.
*/
final class BinaryResource
{
public function __construct(
private readonly string $filename,
private readonly string $mimeType,
private readonly \Generator $stream,
) {}
public function filename(): string
{
return $this->filename;
}
public function mimeType(): string
{
return $this->mimeType;
}
public function stream(): \Generator
{
return $this->stream;
}
}

View File

@@ -71,13 +71,6 @@ abstract class NodeBaseAbstract implements NodeBaseInterface {
return $this->data[static::PROPERTY_TYPE]; return $this->data[static::PROPERTY_TYPE];
} }
/**
* @inheritDoc
*/
public function urn(): string {
return (string) $this->nodeIdentifier();
}
/** /**
* @inheritDoc * @inheritDoc
*/ */

View File

@@ -36,13 +36,6 @@ interface NodeBaseInterface extends JsonSerializable {
*/ */
public function type(): string; public function type(): string;
/**
* Node URN
*
* @since 2025.05.01
*/
public function urn(): string;
/** /**
* Provider identifier * Provider identifier
* *

View File

@@ -14,6 +14,11 @@ interface ResourceProviderBaseInterface extends ProviderInterface, JsonSerializa
public const CAPABILITY_SERVICE_LIST = 'ServiceList'; public const CAPABILITY_SERVICE_LIST = 'ServiceList';
public const CAPABILITY_SERVICE_FETCH = 'ServiceFetch'; public const CAPABILITY_SERVICE_FETCH = 'ServiceFetch';
public const CAPABILITY_SERVICE_EXTANT = 'ServiceExtant'; public const CAPABILITY_SERVICE_EXTANT = 'ServiceExtant';
public const CAPABILITY_SERVICE_CREATE = 'ServiceCreate';
public const CAPABILITY_SERVICE_MODIFY = 'ServiceModify';
public const CAPABILITY_SERVICE_DESTROY = 'ServiceDestroy';
public const CAPABILITY_SERVICE_DISCOVER = 'ServiceDiscover';
public const CAPABILITY_SERVICE_TEST = 'ServiceTest';
public const JSON_TYPE = 'resource.provider'; public const JSON_TYPE = 'resource.provider';
public const JSON_PROPERTY_TYPE = '@type'; public const JSON_PROPERTY_TYPE = '@type';

View File

@@ -13,10 +13,6 @@ use KTXF\Json\JsonDeserializable;
interface ResourceProviderServiceMutateInterface extends JsonDeserializable { interface ResourceProviderServiceMutateInterface extends JsonDeserializable {
public const CAPABILITY_SERVICE_CREATE = 'ServiceCreate';
public const CAPABILITY_SERVICE_MODIFY = 'ServiceModify';
public const CAPABILITY_SERVICE_DESTROY = 'ServiceDestroy';
/** /**
* construct and new blank service instance * construct and new blank service instance
* *