Browse Source

🤖 Automated commit for release 'develop' on 2025-09-30

pull/986/head
JC5 3 weeks ago
parent
commit
86f73bdbdb
No known key found for this signature in database GPG Key ID: 910CF2B5E8B6CC6E
  1. 133
      .ci/php-cs-fixer/composer.lock
  2. 80
      app/Http/Request/ConfigurationPostRequest.php
  3. 339
      app/Services/Shared/Configuration/Configuration.php
  4. 172
      composer.lock
  5. 4
      config/importer.php
  6. 221
      package-lock.json

133
.ci/php-cs-fixer/composer.lock

@ -402,16 +402,16 @@
},
{
"name": "friendsofphp/php-cs-fixer",
"version": "v3.87.2",
"version": "v3.88.2",
"source": {
"type": "git",
"url": "https://github.com/PHP-CS-Fixer/PHP-CS-Fixer.git",
"reference": "da5f0a7858c79b56fc0b8c36d3efcfe5f37f0992"
"reference": "a8d15584bafb0f0d9d938827840060fd4a3ebc99"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/PHP-CS-Fixer/PHP-CS-Fixer/zipball/da5f0a7858c79b56fc0b8c36d3efcfe5f37f0992",
"reference": "da5f0a7858c79b56fc0b8c36d3efcfe5f37f0992",
"url": "https://api.github.com/repos/PHP-CS-Fixer/PHP-CS-Fixer/zipball/a8d15584bafb0f0d9d938827840060fd4a3ebc99",
"reference": "a8d15584bafb0f0d9d938827840060fd4a3ebc99",
"shasum": ""
},
"require": {
@ -438,12 +438,13 @@
"symfony/polyfill-mbstring": "^1.33",
"symfony/polyfill-php80": "^1.33",
"symfony/polyfill-php81": "^1.33",
"symfony/polyfill-php84": "^1.33",
"symfony/process": "^5.4.47 || ^6.4.24 || ^7.2",
"symfony/stopwatch": "^5.4.45 || ^6.4.24 || ^7.0"
},
"require-dev": {
"facile-it/paraunit": "^1.3.1 || ^2.7",
"infection/infection": "^0.29.14",
"infection/infection": "^0.31.0",
"justinrainbow/json-schema": "^6.5",
"keradus/cli-executor": "^2.2",
"mikey179/vfsstream": "^1.6.12",
@ -451,7 +452,6 @@
"php-cs-fixer/phpunit-constraint-isidenticalstring": "^1.6",
"php-cs-fixer/phpunit-constraint-xmlmatchesxsd": "^1.6",
"phpunit/phpunit": "^9.6.25 || ^10.5.53 || ^11.5.34",
"symfony/polyfill-php84": "^1.33",
"symfony/var-dumper": "^5.4.48 || ^6.4.24 || ^7.3.2",
"symfony/yaml": "^5.4.45 || ^6.4.24 || ^7.3.2"
},
@ -494,7 +494,7 @@
],
"support": {
"issues": "https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues",
"source": "https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/tree/v3.87.2"
"source": "https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/tree/v3.88.2"
},
"funding": [
{
@ -502,7 +502,7 @@
"type": "github"
}
],
"time": "2025-09-10T09:51:40+00:00"
"time": "2025-09-27T00:24:15+00:00"
},
{
"name": "psr/container",
@ -1252,16 +1252,16 @@
},
{
"name": "symfony/console",
"version": "v7.3.3",
"version": "v7.3.4",
"source": {
"type": "git",
"url": "https://github.com/symfony/console.git",
"reference": "cb0102a1c5ac3807cf3fdf8bea96007df7fdbea7"
"reference": "2b9c5fafbac0399a20a2e82429e2bd735dcfb7db"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/symfony/console/zipball/cb0102a1c5ac3807cf3fdf8bea96007df7fdbea7",
"reference": "cb0102a1c5ac3807cf3fdf8bea96007df7fdbea7",
"url": "https://api.github.com/repos/symfony/console/zipball/2b9c5fafbac0399a20a2e82429e2bd735dcfb7db",
"reference": "2b9c5fafbac0399a20a2e82429e2bd735dcfb7db",
"shasum": ""
},
"require": {
@ -1326,7 +1326,7 @@
"terminal"
],
"support": {
"source": "https://github.com/symfony/console/tree/v7.3.3"
"source": "https://github.com/symfony/console/tree/v7.3.4"
},
"funding": [
{
@ -1346,7 +1346,7 @@
"type": "tidelift"
}
],
"time": "2025-08-25T06:35:40+00:00"
"time": "2025-09-22T15:31:00+00:00"
},
{
"name": "symfony/deprecation-contracts",
@ -2283,18 +2283,98 @@
],
"time": "2024-09-09T11:45:10+00:00"
},
{
"name": "symfony/polyfill-php84",
"version": "v1.33.0",
"source": {
"type": "git",
"url": "https://github.com/symfony/polyfill-php84.git",
"reference": "d8ced4d875142b6a7426000426b8abc631d6b191"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/symfony/polyfill-php84/zipball/d8ced4d875142b6a7426000426b8abc631d6b191",
"reference": "d8ced4d875142b6a7426000426b8abc631d6b191",
"shasum": ""
},
"require": {
"php": ">=7.2"
},
"type": "library",
"extra": {
"thanks": {
"url": "https://github.com/symfony/polyfill",
"name": "symfony/polyfill"
}
},
"autoload": {
"files": [
"bootstrap.php"
],
"psr-4": {
"Symfony\\Polyfill\\Php84\\": ""
},
"classmap": [
"Resources/stubs"
]
},
"notification-url": "https://packagist.org/downloads/",
"license": [
"MIT"
],
"authors": [
{
"name": "Nicolas Grekas",
"email": "p@tchwork.com"
},
{
"name": "Symfony Community",
"homepage": "https://symfony.com/contributors"
}
],
"description": "Symfony polyfill backporting some PHP 8.4+ features to lower PHP versions",
"homepage": "https://symfony.com",
"keywords": [
"compatibility",
"polyfill",
"portable",
"shim"
],
"support": {
"source": "https://github.com/symfony/polyfill-php84/tree/v1.33.0"
},
"funding": [
{
"url": "https://symfony.com/sponsor",
"type": "custom"
},
{
"url": "https://github.com/fabpot",
"type": "github"
},
{
"url": "https://github.com/nicolas-grekas",
"type": "github"
},
{
"url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
"type": "tidelift"
}
],
"time": "2025-06-24T13:30:11+00:00"
},
{
"name": "symfony/process",
"version": "v7.3.3",
"version": "v7.3.4",
"source": {
"type": "git",
"url": "https://github.com/symfony/process.git",
"reference": "32241012d521e2e8a9d713adb0812bb773b907f1"
"reference": "f24f8f316367b30810810d4eb30c543d7003ff3b"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/symfony/process/zipball/32241012d521e2e8a9d713adb0812bb773b907f1",
"reference": "32241012d521e2e8a9d713adb0812bb773b907f1",
"url": "https://api.github.com/repos/symfony/process/zipball/f24f8f316367b30810810d4eb30c543d7003ff3b",
"reference": "f24f8f316367b30810810d4eb30c543d7003ff3b",
"shasum": ""
},
"require": {
@ -2326,7 +2406,7 @@
"description": "Executes commands in sub-processes",
"homepage": "https://symfony.com",
"support": {
"source": "https://github.com/symfony/process/tree/v7.3.3"
"source": "https://github.com/symfony/process/tree/v7.3.4"
},
"funding": [
{
@ -2346,7 +2426,7 @@
"type": "tidelift"
}
],
"time": "2025-08-18T09:42:54+00:00"
"time": "2025-09-11T10:12:26+00:00"
},
{
"name": "symfony/service-contracts",
@ -2495,16 +2575,16 @@
},
{
"name": "symfony/string",
"version": "v7.3.3",
"version": "v7.3.4",
"source": {
"type": "git",
"url": "https://github.com/symfony/string.git",
"reference": "17a426cce5fd1f0901fefa9b2a490d0038fd3c9c"
"reference": "f96476035142921000338bad71e5247fbc138872"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/symfony/string/zipball/17a426cce5fd1f0901fefa9b2a490d0038fd3c9c",
"reference": "17a426cce5fd1f0901fefa9b2a490d0038fd3c9c",
"url": "https://api.github.com/repos/symfony/string/zipball/f96476035142921000338bad71e5247fbc138872",
"reference": "f96476035142921000338bad71e5247fbc138872",
"shasum": ""
},
"require": {
@ -2519,7 +2599,6 @@
},
"require-dev": {
"symfony/emoji": "^7.1",
"symfony/error-handler": "^6.4|^7.0",
"symfony/http-client": "^6.4|^7.0",
"symfony/intl": "^6.4|^7.0",
"symfony/translation-contracts": "^2.5|^3.0",
@ -2562,7 +2641,7 @@
"utf8"
],
"support": {
"source": "https://github.com/symfony/string/tree/v7.3.3"
"source": "https://github.com/symfony/string/tree/v7.3.4"
},
"funding": [
{
@ -2582,7 +2661,7 @@
"type": "tidelift"
}
],
"time": "2025-08-25T06:35:40+00:00"
"time": "2025-09-11T14:36:48+00:00"
}
],
"packages-dev": [],

80
app/Http/Request/ConfigurationPostRequest.php

@ -94,64 +94,64 @@ class ConfigurationPostRequest extends Request
}
return [
'headers' => $this->convertBoolean($this->get('headers')),
'delimiter' => $this->convertToString('delimiter'),
'date' => $this->convertToString('date'),
'default_account' => $this->convertToInteger('default_account'),
'rules' => $this->convertBoolean($this->get('rules')),
'ignore_duplicate_lines' => $this->convertBoolean($this->get('ignore_duplicate_lines')),
'ignore_duplicate_transactions' => $this->convertBoolean($this->get('ignore_duplicate_transactions')),
'skip_form' => $this->convertBoolean($this->get('skip_form')),
'add_import_tag' => $this->convertBoolean($this->get('add_import_tag')),
'pending_transactions' => $this->convertBoolean($this->get('pending_transactions')),
'specifics' => [],
'roles' => [],
'mapping' => [],
'do_mapping' => [],
'flow' => $this->convertToString('flow'),
'content_type' => $this->convertToString('content_type'),
'custom_tag' => $this->convertToString('custom_tag'),
'headers' => $this->convertBoolean($this->get('headers')),
'delimiter' => $this->convertToString('delimiter'),
'date' => $this->convertToString('date'),
'default_account' => $this->convertToInteger('default_account'),
'rules' => $this->convertBoolean($this->get('rules')),
'ignore_duplicate_lines' => $this->convertBoolean($this->get('ignore_duplicate_lines')),
'ignore_duplicate_transactions' => $this->convertBoolean($this->get('ignore_duplicate_transactions')),
'skip_form' => $this->convertBoolean($this->get('skip_form')),
'add_import_tag' => $this->convertBoolean($this->get('add_import_tag')),
'pending_transactions' => $this->convertBoolean($this->get('pending_transactions')),
'specifics' => [],
'roles' => [],
'mapping' => [],
'do_mapping' => [],
'flow' => $this->convertToString('flow'),
'content_type' => $this->convertToString('content_type'),
'custom_tag' => $this->convertToString('custom_tag'),
// duplicate detection:
'duplicate_detection_method' => $this->convertToString('duplicate_detection_method'),
'unique_column_index' => $this->convertToInteger('unique_column_index'),
'unique_column_type' => $this->convertToString('unique_column_type'),
'duplicate_detection_method' => $this->convertToString('duplicate_detection_method'),
'unique_column_index' => $this->convertToInteger('unique_column_index'),
'unique_column_type' => $this->convertToString('unique_column_type'),
// spectre values:
'connection' => $this->convertToString('connection'),
'identifier' => $this->convertToString('identifier'),
'ignore_spectre_categories' => $this->convertBoolean($this->get('ignore_spectre_categories')),
'connection' => $this->convertToString('connection'),
'identifier' => $this->convertToString('identifier'),
'ignore_spectre_categories' => $this->convertBoolean($this->get('ignore_spectre_categories')),
// nordigen:
'nordigen_country' => $this->convertToString('nordigen_country'),
'nordigen_bank' => $this->convertToString('nordigen_bank'),
'nordigen_max_days' => $this->convertToString('nordigen_max_days'),
'nordigen_requisitions' => json_decode($this->convertToString('nordigen_requisitions'), true) ?? [],
'nordigen_country' => $this->convertToString('nordigen_country'),
'nordigen_bank' => $this->convertToString('nordigen_bank'),
'nordigen_max_days' => $this->convertToString('nordigen_max_days'),
'nordigen_requisitions' => json_decode($this->convertToString('nordigen_requisitions'), true) ?? [],
// nordigen + spectre - with decoded account IDs
'do_import' => $decodedDoImport,
'accounts' => $decodedAccounts,
'new_account' => $decodedNewAccount,
'map_all_data' => $this->convertBoolean($this->get('map_all_data')),
'date_range' => $this->convertToString('date_range'),
'date_range_number' => $this->convertToInteger('date_range_number'),
'date_range_unit' => $this->convertToString('date_range_unit'),
'do_import' => $decodedDoImport,
'accounts' => $decodedAccounts,
'new_account' => $decodedNewAccount,
'map_all_data' => $this->convertBoolean($this->get('map_all_data')),
'date_range' => $this->convertToString('date_range'),
'date_range_number' => $this->convertToInteger('date_range_number'),
'date_range_unit' => $this->convertToString('date_range_unit'),
'date_range_not_after_number' => $this->convertToInteger('date_range_not_after_number'),
'date_range_not_after_unit' => $this->convertToString('date_range_not_after_unit'),
'date_not_before' => $this->getCarbonDate('date_not_before'),
'date_not_after' => $this->getCarbonDate('date_not_after'),
'date_not_before' => $this->getCarbonDate('date_not_before'),
'date_not_after' => $this->getCarbonDate('date_not_after'),
// simplefin:
'access_token' => $this->convertToString('access_token'),
'access_token' => $this->convertToString('access_token'),
// utf8 conversion
'conversion' => $this->convertBoolean($this->get('conversion')),
'conversion' => $this->convertBoolean($this->get('conversion')),
// camt
'grouped_transaction_handling' => $this->convertToString('grouped_transaction_handling'),
'use_entire_opposing_address' => $this->convertBoolean($this->get('use_entire_opposing_address')),
'grouped_transaction_handling' => $this->convertToString('grouped_transaction_handling'),
'use_entire_opposing_address' => $this->convertBoolean($this->get('use_entire_opposing_address')),
];
}

339
app/Services/Shared/Configuration/Configuration.php

@ -35,7 +35,7 @@ use UnexpectedValueException;
*/
class Configuration
{
public const int VERSION = 3;
public const int VERSION = 3;
private array $accounts = [];
private array $newAccounts = [];
private bool $addImportTag = true;
@ -54,21 +54,21 @@ class Configuration
private int $dateRangeNotAfterNumber;
private string $dateRangeNotAfterUnit;
private int $defaultAccount = 1;
private int $defaultAccount = 1;
// nordigen configuration
private string $delimiter = 'comma';
private array $doMapping = [];
private string $delimiter = 'comma';
private array $doMapping = [];
// flow and file type
private string $duplicateDetectionMethod;
private string $flow = 'file';
private string $flow = 'file';
// csv config
private string $groupedTransactionHandling;
// spectre + nordigen configuration
private bool $headers = false;
private bool $headers = false;
// spectre configuration
private string $identifier;
@ -84,20 +84,20 @@ class Configuration
private string $accessToken;
// date range settings
private array $mapping = [];
private array $mapping = [];
private string $nordigenBank;
private string $nordigenCountry;
private string $nordigenMaxDays;
private array $nordigenRequisitions;
// what type of import?
private array $roles = [];
private array $roles = [];
private bool $rules = true;
private bool $rules = true;
// configuration for "classic" method:
private bool $skipForm = false;
private array $specifics = [];
private bool $skipForm = false;
private array $specifics = [];
// configuration for "cell" method:
private int $uniqueColumnIndex;
@ -112,43 +112,43 @@ class Configuration
*/
private function __construct()
{
$this->customTag = '';
$this->customTag = '';
// date range settings
$this->dateRange = 'all';
$this->dateRangeNumber = 30;
$this->dateRangeUnit = 'd';
$this->dateRange = 'all';
$this->dateRangeNumber = 30;
$this->dateRangeUnit = 'd';
// by default, no "not after" settings.
$this->dateRangeNotAfterNumber = 0;
$this->dateRangeNotAfterUnit = '';
$this->dateRangeNotAfterNumber = 0;
$this->dateRangeNotAfterUnit = '';
$this->dateNotBefore = '';
$this->dateNotAfter = '';
$this->dateNotBefore = '';
$this->dateNotAfter = '';
// camt settings
$this->groupedTransactionHandling = 'single';
$this->useEntireOpposingAddress = false;
$this->groupedTransactionHandling = 'single';
$this->useEntireOpposingAddress = false;
// nordigen configuration
$this->nordigenCountry = '';
$this->nordigenBank = '';
$this->nordigenRequisitions = [];
$this->nordigenMaxDays = '90';
$this->nordigenCountry = '';
$this->nordigenBank = '';
$this->nordigenRequisitions = [];
$this->nordigenMaxDays = '90';
// spectre
$this->identifier = '0';
$this->connection = '0';
$this->ignoreSpectreCategories = false;
$this->identifier = '0';
$this->connection = '0';
$this->ignoreSpectreCategories = false;
// mapping for spectre + nordigen
$this->mapAllData = false;
$this->mapAllData = false;
// simplefin configuration
$this->pendingTransactions = true;
$this->accessToken = '';
$this->pendingTransactions = true;
$this->accessToken = '';
// double transaction detection:
$this->duplicateDetectionMethod = 'classic';
$this->duplicateDetectionMethod = 'classic';
// config for "classic":
Log::debug('Configuration __construct. ignoreDuplicateTransactions = true');
@ -156,13 +156,13 @@ class Configuration
$this->ignoreDuplicateLines = true;
// config for "cell":
$this->uniqueColumnIndex = 0;
$this->uniqueColumnType = 'internal_reference';
$this->uniqueColumnIndex = 0;
$this->uniqueColumnType = 'internal_reference';
// utf8
$this->conversion = false;
$this->conversion = false;
$this->version = self::VERSION;
$this->version = self::VERSION;
}
/**
@ -196,51 +196,51 @@ class Configuration
*/
private static function fromClassicFile(array $data): self
{
$delimiters = config('csv.delimiters_reversed');
$classicRoleNames = config('csv.classic_roles');
$object = new self();
$object->headers = $data['has-headers'] ?? false;
$object->date = $data['date-format'] ?? $object->date;
$object->delimiter = $delimiters[$data['delimiter']] ?? 'comma';
$object->defaultAccount = $data['import-account'] ?? $object->defaultAccount;
$object->rules = $data['apply-rules'] ?? true;
$object->flow = $data['flow'] ?? 'file';
$object->contentType = $data['content_type'] ?? 'csv';
$object->customTag = $data['custom_tag'] ?? '';
$delimiters = config('csv.delimiters_reversed');
$classicRoleNames = config('csv.classic_roles');
$object = new self();
$object->headers = $data['has-headers'] ?? false;
$object->date = $data['date-format'] ?? $object->date;
$object->delimiter = $delimiters[$data['delimiter']] ?? 'comma';
$object->defaultAccount = $data['import-account'] ?? $object->defaultAccount;
$object->rules = $data['apply-rules'] ?? true;
$object->flow = $data['flow'] ?? 'file';
$object->contentType = $data['content_type'] ?? 'csv';
$object->customTag = $data['custom_tag'] ?? '';
// camt settings
$object->groupedTransactionHandling = $data['grouped_transaction_handling'] ?? 'single';
$object->useEntireOpposingAddress = $data['use_entire_opposing_address'] ?? false;
$object->groupedTransactionHandling = $data['grouped_transaction_handling'] ?? 'single';
$object->useEntireOpposingAddress = $data['use_entire_opposing_address'] ?? false;
// other settings (are not in v1 anyway)
$object->dateRange = $data['date_range'] ?? 'all';
$object->dateRangeNumber = $data['date_range_number'] ?? 30;
$object->dateRangeUnit = $data['date_range_unit'] ?? 'd';
$object->dateRange = $data['date_range'] ?? 'all';
$object->dateRangeNumber = $data['date_range_number'] ?? 30;
$object->dateRangeUnit = $data['date_range_unit'] ?? 'd';
// by default, no "not after" settings (are not in v1 anyway)
$object->dateRangeNotAfterNumber = $data['date_range_not_after_number'] ?? 0;
$object->dateRangeNotAfterUnit = $data['date_range_not_after_unit'] ?? '';
$object->dateRangeNotAfterNumber = $data['date_range_not_after_number'] ?? 0;
$object->dateRangeNotAfterUnit = $data['date_range_not_after_unit'] ?? '';
$object->dateNotBefore = $data['date_not_before'] ?? '';
$object->dateNotAfter = $data['date_not_after'] ?? '';
$object->dateNotBefore = $data['date_not_before'] ?? '';
$object->dateNotAfter = $data['date_not_after'] ?? '';
// spectre settings (are not in v1 anyway)
$object->identifier = $data['identifier'] ?? '0';
$object->connection = $data['connection'] ?? '0';
$object->ignoreSpectreCategories = $data['ignore_spectre_categories'] ?? false;
$object->identifier = $data['identifier'] ?? '0';
$object->connection = $data['connection'] ?? '0';
$object->ignoreSpectreCategories = $data['ignore_spectre_categories'] ?? false;
// nordigen settings (are not in v1 anyway)
$object->nordigenCountry = $data['nordigen_country'] ?? '';
$object->nordigenBank = $data['nordigen_bank'] ?? '';
$object->nordigenRequisitions = $data['nordigen_requisitions'] ?? [];
$object->nordigenMaxDays = $data['nordigen_max_days'] ?? '90';
$object->nordigenCountry = $data['nordigen_country'] ?? '';
$object->nordigenBank = $data['nordigen_bank'] ?? '';
$object->nordigenRequisitions = $data['nordigen_requisitions'] ?? [];
$object->nordigenMaxDays = $data['nordigen_max_days'] ?? '90';
// settings for spectre + nordigen (are not in v1 anyway)
$object->mapAllData = $data['map_all_data'] ?? false;
$object->accounts = $data['accounts'] ?? [];
$object->mapAllData = $data['map_all_data'] ?? false;
$object->accounts = $data['accounts'] ?? [];
// simplefin
$object->pendingTransactions = $data['pending_transactions'] ?? true;
$object->pendingTransactions = $data['pending_transactions'] ?? true;
$object->ignoreDuplicateTransactions = $data['ignore_duplicate_transactions'] ?? true;
@ -250,7 +250,7 @@ class Configuration
Log::debug('Will ignore duplicates.');
$object->ignoreDuplicateTransactions = true;
Log::debug(sprintf('Configuration fromClassicFile: ignoreDuplicateTransactions = %s', var_export($object->ignoreDuplicateTransactions, true)));
$object->duplicateDetectionMethod = 'classic';
$object->duplicateDetectionMethod = 'classic';
}
if (isset($data['ignore_duplicates']) && false === $data['ignore_duplicates']) {
@ -266,17 +266,17 @@ class Configuration
}
// array values
$object->specifics = [];
$object->roles = [];
$object->doMapping = [];
$object->mapping = [];
$object->accounts = [];
$object->specifics = [];
$object->roles = [];
$object->doMapping = [];
$object->mapping = [];
$object->accounts = [];
// utf8
$object->conversion = $data['conversion'] ?? false;
$object->conversion = $data['conversion'] ?? false;
// loop roles from classic file:
$roles = $data['column-roles'] ?? [];
$roles = $data['column-roles'] ?? [];
foreach ($roles as $index => $role) {
// some roles have been given a new name some time in the past.
$role = $classicRoleNames[$role] ?? $role;
@ -291,7 +291,7 @@ class Configuration
ksort($object->roles);
// loop do mapping from classic file.
$doMapping = $data['column-do-mapping'] ?? [];
$doMapping = $data['column-do-mapping'] ?? [];
foreach ($doMapping as $index => $map) {
$index = (int)$index;
$object->doMapping[$index] = $map;
@ -299,7 +299,7 @@ class Configuration
ksort($object->doMapping);
// loop mapping from classic file.
$mapping = $data['column-mapping-config'] ?? [];
$mapping = $data['column-mapping-config'] ?? [];
foreach ($mapping as $index => $map) {
$index = (int)$index;
$object->mapping[$index] = $map;
@ -307,7 +307,7 @@ class Configuration
ksort($object->mapping);
// set version to latest version and return.
$object->version = self::VERSION;
$object->version = self::VERSION;
if ('csv' === $object->flow) {
$object->flow = 'file';
@ -329,22 +329,22 @@ class Configuration
*/
public static function fromArray(array $array): self
{
$delimiters = config('csv.delimiters_reversed');
$object = new self();
$object->headers = $array['headers'] ?? false;
$object->date = $array['date'] ?? '';
$object->defaultAccount = $array['default_account'] ?? 0;
$object->delimiter = $delimiters[$array['delimiter'] ?? ','] ?? 'comma';
$object->rules = $array['rules'] ?? true;
$object->skipForm = $array['skip_form'] ?? false;
$object->addImportTag = $array['add_import_tag'] ?? true;
$object->roles = $array['roles'] ?? [];
$object->mapping = $array['mapping'] ?? [];
$object->doMapping = $array['do_mapping'] ?? [];
$object->version = self::VERSION;
$object->flow = $array['flow'] ?? 'file';
$object->contentType = $array['content_type'] ?? 'csv';
$object->customTag = $array['custom_tag'] ?? '';
$delimiters = config('csv.delimiters_reversed');
$object = new self();
$object->headers = $array['headers'] ?? false;
$object->date = $array['date'] ?? '';
$object->defaultAccount = $array['default_account'] ?? 0;
$object->delimiter = $delimiters[$array['delimiter'] ?? ','] ?? 'comma';
$object->rules = $array['rules'] ?? true;
$object->skipForm = $array['skip_form'] ?? false;
$object->addImportTag = $array['add_import_tag'] ?? true;
$object->roles = $array['roles'] ?? [];
$object->mapping = $array['mapping'] ?? [];
$object->doMapping = $array['do_mapping'] ?? [];
$object->version = self::VERSION;
$object->flow = $array['flow'] ?? 'file';
$object->contentType = $array['content_type'] ?? 'csv';
$object->customTag = $array['custom_tag'] ?? '';
Log::debug(sprintf('Configuration fromArray, default_account=%s', var_export($object->defaultAccount, true)));
@ -354,42 +354,42 @@ class Configuration
ksort($object->roles);
// settings for spectre + nordigen
$object->mapAllData = $array['map_all_data'] ?? false;
$object->accounts = $array['accounts'] ?? [];
$object->newAccounts = $array['new_account'] ?? [];
$object->mapAllData = $array['map_all_data'] ?? false;
$object->accounts = $array['accounts'] ?? [];
$object->newAccounts = $array['new_account'] ?? [];
// spectre
$object->identifier = $array['identifier'] ?? '0';
$object->connection = $array['connection'] ?? '0';
$object->ignoreSpectreCategories = $array['ignore_spectre_categories'] ?? false;
$object->identifier = $array['identifier'] ?? '0';
$object->connection = $array['connection'] ?? '0';
$object->ignoreSpectreCategories = $array['ignore_spectre_categories'] ?? false;
// date range settings
$object->dateRange = $array['date_range'] ?? 'all';
$object->dateRangeNumber = $array['date_range_number'] ?? 30;
$object->dateRangeUnit = $array['date_range_unit'] ?? 'd';
$object->dateRange = $array['date_range'] ?? 'all';
$object->dateRangeNumber = $array['date_range_number'] ?? 30;
$object->dateRangeUnit = $array['date_range_unit'] ?? 'd';
// add date range not after settings.
$object->dateRangeNotAfterNumber = $array['date_range_not_after_number'] ?? 0;
$object->dateRangeNotAfterUnit = $array['date_range_not_after_unit'] ?? '';
$object->dateRangeNotAfterNumber = $array['date_range_not_after_number'] ?? 0;
$object->dateRangeNotAfterUnit = $array['date_range_not_after_unit'] ?? '';
$object->dateNotBefore = $array['date_not_before'] ?? '';
$object->dateNotAfter = $array['date_not_after'] ?? '';
$object->dateNotBefore = $array['date_not_before'] ?? '';
$object->dateNotAfter = $array['date_not_after'] ?? '';
// camt
$object->groupedTransactionHandling = $array['grouped_transaction_handling'] ?? 'single';
$object->useEntireOpposingAddress = $array['use_entire_opposing_address'] ?? false;
$object->groupedTransactionHandling = $array['grouped_transaction_handling'] ?? 'single';
$object->useEntireOpposingAddress = $array['use_entire_opposing_address'] ?? false;
// nordigen information:
$object->nordigenCountry = $array['nordigen_country'] ?? '';
$object->nordigenBank = $array['nordigen_bank'] ?? '';
$object->nordigenRequisitions = $array['nordigen_requisitions'] ?? [];
$object->nordigenMaxDays = $array['nordigen_max_days'] ?? '90';
$object->nordigenCountry = $array['nordigen_country'] ?? '';
$object->nordigenBank = $array['nordigen_bank'] ?? '';
$object->nordigenRequisitions = $array['nordigen_requisitions'] ?? [];
$object->nordigenMaxDays = $array['nordigen_max_days'] ?? '90';
// simplefin
$object->pendingTransactions = $array['pending_transactions'] ?? true;
$object->pendingTransactions = $array['pending_transactions'] ?? true;
// duplicate transaction detection
$object->duplicateDetectionMethod = $array['duplicate_detection_method'] ?? 'classic';
$object->duplicateDetectionMethod = $array['duplicate_detection_method'] ?? 'classic';
// config for "classic":
$object->ignoreDuplicateLines = $array['ignore_duplicate_lines'] ?? false;
@ -410,15 +410,15 @@ class Configuration
}
// config for "cell":
$object->uniqueColumnIndex = $array['unique_column_index'] ?? 0;
$object->uniqueColumnType = $array['unique_column_type'] ?? '';
$object->uniqueColumnIndex = $array['unique_column_index'] ?? 0;
$object->uniqueColumnType = $array['unique_column_type'] ?? '';
// utf8
$object->conversion = $array['conversion'] ?? false;
$object->conversion = $array['conversion'] ?? false;
// simplefin configuration
$object->pendingTransactions = $array['pending_transactions'] ?? true;
$object->accessToken = $array['access_token'] ?? '';
$object->pendingTransactions = $array['pending_transactions'] ?? true;
$object->accessToken = $array['access_token'] ?? '';
if ('csv' === $object->flow) {
$object->flow = 'file';
@ -444,60 +444,60 @@ class Configuration
*/
public static function fromRequest(array $array): self
{
$delimiters = config('csv.delimiters_reversed');
$object = new self();
$object->version = self::VERSION;
$object->headers = $array['headers'] ?? false;
$object->date = $array['date'];
$object->defaultAccount = $array['default_account'];
$object->delimiter = $delimiters[$array['delimiter']] ?? 'comma';
$object->rules = $array['rules'];
$object->skipForm = $array['skip_form'];
$object->addImportTag = $array['add_import_tag'] ?? true;
$object->roles = $array['roles'] ?? [];
$object->mapping = $array['mapping'] ?? [];
$object->doMapping = $array['do_mapping'] ?? [];
$object->contentType = $array['content_type'] ?? 'csv';
$object->customTag = $array['custom_tag'] ?? '';
$delimiters = config('csv.delimiters_reversed');
$object = new self();
$object->version = self::VERSION;
$object->headers = $array['headers'] ?? false;
$object->date = $array['date'];
$object->defaultAccount = $array['default_account'];
$object->delimiter = $delimiters[$array['delimiter']] ?? 'comma';
$object->rules = $array['rules'];
$object->skipForm = $array['skip_form'];
$object->addImportTag = $array['add_import_tag'] ?? true;
$object->roles = $array['roles'] ?? [];
$object->mapping = $array['mapping'] ?? [];
$object->doMapping = $array['do_mapping'] ?? [];
$object->contentType = $array['content_type'] ?? 'csv';
$object->customTag = $array['custom_tag'] ?? '';
Log::debug(sprintf('Configuration fromRequest, default_account=%s', var_export($object->defaultAccount, true)));
// mapping for spectre + nordigen
$object->mapAllData = $array['map_all_data'] ?? false;
$object->mapAllData = $array['map_all_data'] ?? false;
// spectre
$object->identifier = $array['identifier'] ?? '0';
$object->connection = $array['connection'] ?? '0';
$object->ignoreSpectreCategories = $array['ignore_spectre_categories'] ?? false;
$object->identifier = $array['identifier'] ?? '0';
$object->connection = $array['connection'] ?? '0';
$object->ignoreSpectreCategories = $array['ignore_spectre_categories'] ?? false;
// nordigen:
$object->nordigenCountry = $array['nordigen_country'] ?? '';
$object->nordigenBank = $array['nordigen_bank'] ?? '';
$object->nordigenRequisitions = $array['nordigen_requisitions'] ?? [];
$object->nordigenMaxDays = $array['nordigen_max_days'] ?? '90';
$object->nordigenCountry = $array['nordigen_country'] ?? '';
$object->nordigenBank = $array['nordigen_bank'] ?? '';
$object->nordigenRequisitions = $array['nordigen_requisitions'] ?? [];
$object->nordigenMaxDays = $array['nordigen_max_days'] ?? '90';
$object->groupedTransactionHandling = $array['grouped_transaction_handling'] ?? 'single';
$object->useEntireOpposingAddress = $array['use_entire_opposing_address'] ?? false;
$object->groupedTransactionHandling = $array['grouped_transaction_handling'] ?? 'single';
$object->useEntireOpposingAddress = $array['use_entire_opposing_address'] ?? false;
// spectre + nordigen
$object->accounts = $array['accounts'] ?? [];
$object->newAccounts = $array['new_account'] ?? [];
$object->accounts = $array['accounts'] ?? [];
$object->newAccounts = $array['new_account'] ?? [];
// date range settings
$object->dateRange = $array['date_range'] ?? 'all';
$object->dateRangeNumber = $array['date_range_number'] ?? 30;
$object->dateRangeUnit = $array['date_range_unit'] ?? 'd';
$object->dateRange = $array['date_range'] ?? 'all';
$object->dateRangeNumber = $array['date_range_number'] ?? 30;
$object->dateRangeUnit = $array['date_range_unit'] ?? 'd';
// date range settings for "not after"
$object->dateRangeNotAfterNumber = $array['date_range_not_after_number'] ?? 0;
$object->dateRangeNotAfterUnit = $array['date_range_not_after_unit'] ?? '';
$object->dateRangeNotAfterNumber = $array['date_range_not_after_number'] ?? 0;
$object->dateRangeNotAfterUnit = $array['date_range_not_after_unit'] ?? '';
// null or Carbon because fromRequest will give Carbon object.
$object->dateNotBefore = null === $array['date_not_before'] ? '' : $array['date_not_before']->format('Y-m-d');
$object->dateNotAfter = null === $array['date_not_after'] ? '' : $array['date_not_after']->format('Y-m-d');
$object->dateNotBefore = null === $array['date_not_before'] ? '' : $array['date_not_before']->format('Y-m-d');
$object->dateNotAfter = null === $array['date_not_after'] ? '' : $array['date_not_after']->format('Y-m-d');
// duplicate transaction detection
$object->duplicateDetectionMethod = $array['duplicate_detection_method'] ?? 'classic';
$object->duplicateDetectionMethod = $array['duplicate_detection_method'] ?? 'classic';
// config for "classic":
$object->ignoreDuplicateLines = $array['ignore_duplicate_lines'];
@ -505,18 +505,18 @@ class Configuration
Log::debug(sprintf('Configuration fromRequest: ignoreDuplicateTransactions = %s', var_export($object->ignoreDuplicateTransactions, true)));
// config for "cell":
$object->uniqueColumnIndex = $array['unique_column_index'] ?? 0;
$object->uniqueColumnType = $array['unique_column_type'] ?? '';
$object->uniqueColumnIndex = $array['unique_column_index'] ?? 0;
$object->uniqueColumnType = $array['unique_column_type'] ?? '';
// utf8 conversion
$object->conversion = $array['conversion'] ?? false;
$object->conversion = $array['conversion'] ?? false;
// simplefin configuration
$object->pendingTransactions = $array['pending_transactions'] ?? true;
$object->accessToken = $array['access_token'] ?? '';
$object->pendingTransactions = $array['pending_transactions'] ?? true;
$object->accessToken = $array['access_token'] ?? '';
// flow
$object->flow = $array['flow'] ?? 'file';
$object->flow = $array['flow'] ?? 'file';
// overrule a setting:
if ('none' === $object->duplicateDetectionMethod) {
@ -524,7 +524,7 @@ class Configuration
Log::debug(sprintf('Configuration overruled from none: ignoreDuplicateTransactions = %s', var_export($object->ignoreDuplicateTransactions, true)));
}
$object->specifics = [];
$object->specifics = [];
foreach ($array['specifics'] as $key => $enabled) {
if (true === $enabled) {
$object->specifics[] = $key;
@ -690,7 +690,7 @@ class Configuration
public function setMapping(array $mapping): void
{
$newMap = [];
$newMap = [];
foreach ($mapping as $column => $map) {
ksort($map);
$newMap[$column] = $map;
@ -843,7 +843,7 @@ class Configuration
public function toArray(): array
{
$array = [
$array = [
'version' => $this->version,
'source' => sprintf('ff3-importer-%s', config('importer.version')),
'created_at' => date(DateTimeInterface::W3C),
@ -934,7 +934,7 @@ class Configuration
case 'partial':
Log::debug('Range is partial.');
$this->dateNotBefore = self::calcDateNotBefore($this->dateRangeUnit, $this->dateRangeNumber);
$this->dateNotBefore = self::calcDateNotBefore($this->dateRangeUnit, $this->dateRangeNumber);
Log::debug(sprintf('dateNotBefore is now "%s"', $this->dateNotBefore));
if ('' === $this->dateRangeNotAfterUnit) {
Log::debug('dateRangeNotAfterUnit is "", dateNotAfter will be empty.');
@ -951,8 +951,8 @@ class Configuration
case 'range':
Log::debug('Range is "range", both will be created from a string.');
$before = trim($this->dateNotBefore); // string
$after = trim($this->dateNotAfter); // string
$before = trim($this->dateNotBefore); // string
$after = trim($this->dateNotAfter); // string
if ('' !== $before) {
$before = Carbon::createFromFormat('Y-m-d', $before);
}
@ -964,8 +964,8 @@ class Configuration
[$before, $after] = [$after, $before];
}
$this->dateNotBefore = '' === $before ? '' : $before->format('Y-m-d');
$this->dateNotAfter = '' === $after ? '' : $after->format('Y-m-d');
$this->dateNotBefore = '' === $before ? '' : $before->format('Y-m-d');
$this->dateNotAfter = '' === $after ? '' : $after->format('Y-m-d');
Log::debug(sprintf('dateNotBefore is now "%s", dateNotAfter is "%s"', $this->dateNotBefore, $this->dateNotAfter));
}
}
@ -1000,7 +1000,6 @@ class Configuration
$this->accessToken = $accessToken;
}
public function getDateRangeNotAfterNumber(): int
{
return $this->dateRangeNotAfterNumber;
@ -1010,6 +1009,4 @@ class Configuration
{
return $this->dateRangeNotAfterUnit;
}
}

172
composer.lock

@ -1480,16 +1480,16 @@
},
{
"name": "laravel/prompts",
"version": "v0.3.6",
"version": "v0.3.7",
"source": {
"type": "git",
"url": "https://github.com/laravel/prompts.git",
"reference": "86a8b692e8661d0fb308cec64f3d176821323077"
"reference": "a1891d362714bc40c8d23b0b1d7090f022ea27cc"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/laravel/prompts/zipball/86a8b692e8661d0fb308cec64f3d176821323077",
"reference": "86a8b692e8661d0fb308cec64f3d176821323077",
"url": "https://api.github.com/repos/laravel/prompts/zipball/a1891d362714bc40c8d23b0b1d7090f022ea27cc",
"reference": "a1891d362714bc40c8d23b0b1d7090f022ea27cc",
"shasum": ""
},
"require": {
@ -1506,8 +1506,8 @@
"illuminate/collections": "^10.0|^11.0|^12.0",
"mockery/mockery": "^1.5",
"pestphp/pest": "^2.3|^3.4",
"phpstan/phpstan": "^1.11",
"phpstan/phpstan-mockery": "^1.1"
"phpstan/phpstan": "^1.12.28",
"phpstan/phpstan-mockery": "^1.1.3"
},
"suggest": {
"ext-pcntl": "Required for the spinner to be animated."
@ -1533,22 +1533,22 @@
"description": "Add beautiful and user-friendly forms to your command-line applications.",
"support": {
"issues": "https://github.com/laravel/prompts/issues",
"source": "https://github.com/laravel/prompts/tree/v0.3.6"
"source": "https://github.com/laravel/prompts/tree/v0.3.7"
},
"time": "2025-07-07T14:17:42+00:00"
"time": "2025-09-19T13:47:56+00:00"
},
{
"name": "laravel/serializable-closure",
"version": "v2.0.4",
"version": "v2.0.5",
"source": {
"type": "git",
"url": "https://github.com/laravel/serializable-closure.git",
"reference": "b352cf0534aa1ae6b4d825d1e762e35d43f8a841"
"reference": "3832547db6e0e2f8bb03d4093857b378c66eceed"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/laravel/serializable-closure/zipball/b352cf0534aa1ae6b4d825d1e762e35d43f8a841",
"reference": "b352cf0534aa1ae6b4d825d1e762e35d43f8a841",
"url": "https://api.github.com/repos/laravel/serializable-closure/zipball/3832547db6e0e2f8bb03d4093857b378c66eceed",
"reference": "3832547db6e0e2f8bb03d4093857b378c66eceed",
"shasum": ""
},
"require": {
@ -1596,7 +1596,7 @@
"issues": "https://github.com/laravel/serializable-closure/issues",
"source": "https://github.com/laravel/serializable-closure"
},
"time": "2025-03-19T13:51:03+00:00"
"time": "2025-09-22T17:29:40+00:00"
},
{
"name": "league/commonmark",
@ -3756,16 +3756,16 @@
},
{
"name": "symfony/console",
"version": "v7.3.3",
"version": "v7.3.4",
"source": {
"type": "git",
"url": "https://github.com/symfony/console.git",
"reference": "cb0102a1c5ac3807cf3fdf8bea96007df7fdbea7"
"reference": "2b9c5fafbac0399a20a2e82429e2bd735dcfb7db"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/symfony/console/zipball/cb0102a1c5ac3807cf3fdf8bea96007df7fdbea7",
"reference": "cb0102a1c5ac3807cf3fdf8bea96007df7fdbea7",
"url": "https://api.github.com/repos/symfony/console/zipball/2b9c5fafbac0399a20a2e82429e2bd735dcfb7db",
"reference": "2b9c5fafbac0399a20a2e82429e2bd735dcfb7db",
"shasum": ""
},
"require": {
@ -3830,7 +3830,7 @@
"terminal"
],
"support": {
"source": "https://github.com/symfony/console/tree/v7.3.3"
"source": "https://github.com/symfony/console/tree/v7.3.4"
},
"funding": [
{
@ -3850,7 +3850,7 @@
"type": "tidelift"
}
],
"time": "2025-08-25T06:35:40+00:00"
"time": "2025-09-22T15:31:00+00:00"
},
{
"name": "symfony/css-selector",
@ -3986,16 +3986,16 @@
},
{
"name": "symfony/error-handler",
"version": "v7.3.2",
"version": "v7.3.4",
"source": {
"type": "git",
"url": "https://github.com/symfony/error-handler.git",
"reference": "0b31a944fcd8759ae294da4d2808cbc53aebd0c3"
"reference": "99f81bc944ab8e5dae4f21b4ca9972698bbad0e4"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/symfony/error-handler/zipball/0b31a944fcd8759ae294da4d2808cbc53aebd0c3",
"reference": "0b31a944fcd8759ae294da4d2808cbc53aebd0c3",
"url": "https://api.github.com/repos/symfony/error-handler/zipball/99f81bc944ab8e5dae4f21b4ca9972698bbad0e4",
"reference": "99f81bc944ab8e5dae4f21b4ca9972698bbad0e4",
"shasum": ""
},
"require": {
@ -4043,7 +4043,7 @@
"description": "Provides tools to manage errors and ease debugging PHP code",
"homepage": "https://symfony.com",
"support": {
"source": "https://github.com/symfony/error-handler/tree/v7.3.2"
"source": "https://github.com/symfony/error-handler/tree/v7.3.4"
},
"funding": [
{
@ -4063,7 +4063,7 @@
"type": "tidelift"
}
],
"time": "2025-07-07T08:17:57+00:00"
"time": "2025-09-11T10:12:26+00:00"
},
{
"name": "symfony/event-dispatcher",
@ -4473,16 +4473,16 @@
},
{
"name": "symfony/http-foundation",
"version": "v7.3.3",
"version": "v7.3.4",
"source": {
"type": "git",
"url": "https://github.com/symfony/http-foundation.git",
"reference": "7475561ec27020196c49bb7c4f178d33d7d3dc00"
"reference": "c061c7c18918b1b64268771aad04b40be41dd2e6"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/symfony/http-foundation/zipball/7475561ec27020196c49bb7c4f178d33d7d3dc00",
"reference": "7475561ec27020196c49bb7c4f178d33d7d3dc00",
"url": "https://api.github.com/repos/symfony/http-foundation/zipball/c061c7c18918b1b64268771aad04b40be41dd2e6",
"reference": "c061c7c18918b1b64268771aad04b40be41dd2e6",
"shasum": ""
},
"require": {
@ -4532,7 +4532,7 @@
"description": "Defines an object-oriented layer for the HTTP specification",
"homepage": "https://symfony.com",
"support": {
"source": "https://github.com/symfony/http-foundation/tree/v7.3.3"
"source": "https://github.com/symfony/http-foundation/tree/v7.3.4"
},
"funding": [
{
@ -4552,20 +4552,20 @@
"type": "tidelift"
}
],
"time": "2025-08-20T08:04:18+00:00"
"time": "2025-09-16T08:38:17+00:00"
},
{
"name": "symfony/http-kernel",
"version": "v7.3.3",
"version": "v7.3.4",
"source": {
"type": "git",
"url": "https://github.com/symfony/http-kernel.git",
"reference": "72c304de37e1a1cec6d5d12b81187ebd4850a17b"
"reference": "b796dffea7821f035047235e076b60ca2446e3cf"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/symfony/http-kernel/zipball/72c304de37e1a1cec6d5d12b81187ebd4850a17b",
"reference": "72c304de37e1a1cec6d5d12b81187ebd4850a17b",
"url": "https://api.github.com/repos/symfony/http-kernel/zipball/b796dffea7821f035047235e076b60ca2446e3cf",
"reference": "b796dffea7821f035047235e076b60ca2446e3cf",
"shasum": ""
},
"require": {
@ -4650,7 +4650,7 @@
"description": "Provides a structured process for converting a Request into a Response",
"homepage": "https://symfony.com",
"support": {
"source": "https://github.com/symfony/http-kernel/tree/v7.3.3"
"source": "https://github.com/symfony/http-kernel/tree/v7.3.4"
},
"funding": [
{
@ -4670,20 +4670,20 @@
"type": "tidelift"
}
],
"time": "2025-08-29T08:23:45+00:00"
"time": "2025-09-27T12:32:17+00:00"
},
{
"name": "symfony/mailer",
"version": "v7.3.3",
"version": "v7.3.4",
"source": {
"type": "git",
"url": "https://github.com/symfony/mailer.git",
"reference": "a32f3f45f1990db8c4341d5122a7d3a381c7e575"
"reference": "ab97ef2f7acf0216955f5845484235113047a31d"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/symfony/mailer/zipball/a32f3f45f1990db8c4341d5122a7d3a381c7e575",
"reference": "a32f3f45f1990db8c4341d5122a7d3a381c7e575",
"url": "https://api.github.com/repos/symfony/mailer/zipball/ab97ef2f7acf0216955f5845484235113047a31d",
"reference": "ab97ef2f7acf0216955f5845484235113047a31d",
"shasum": ""
},
"require": {
@ -4734,7 +4734,7 @@
"description": "Helps sending emails",
"homepage": "https://symfony.com",
"support": {
"source": "https://github.com/symfony/mailer/tree/v7.3.3"
"source": "https://github.com/symfony/mailer/tree/v7.3.4"
},
"funding": [
{
@ -4754,7 +4754,7 @@
"type": "tidelift"
}
],
"time": "2025-08-13T11:49:31+00:00"
"time": "2025-09-17T05:51:54+00:00"
},
{
"name": "symfony/mailgun-mailer",
@ -4827,16 +4827,16 @@
},
{
"name": "symfony/mime",
"version": "v7.3.2",
"version": "v7.3.4",
"source": {
"type": "git",
"url": "https://github.com/symfony/mime.git",
"reference": "e0a0f859148daf1edf6c60b398eb40bfc96697d1"
"reference": "b1b828f69cbaf887fa835a091869e55df91d0e35"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/symfony/mime/zipball/e0a0f859148daf1edf6c60b398eb40bfc96697d1",
"reference": "e0a0f859148daf1edf6c60b398eb40bfc96697d1",
"url": "https://api.github.com/repos/symfony/mime/zipball/b1b828f69cbaf887fa835a091869e55df91d0e35",
"reference": "b1b828f69cbaf887fa835a091869e55df91d0e35",
"shasum": ""
},
"require": {
@ -4891,7 +4891,7 @@
"mime-type"
],
"support": {
"source": "https://github.com/symfony/mime/tree/v7.3.2"
"source": "https://github.com/symfony/mime/tree/v7.3.4"
},
"funding": [
{
@ -4911,7 +4911,7 @@
"type": "tidelift"
}
],
"time": "2025-07-15T13:41:35+00:00"
"time": "2025-09-16T08:38:17+00:00"
},
{
"name": "symfony/options-resolver",
@ -5655,16 +5655,16 @@
},
{
"name": "symfony/process",
"version": "v7.3.3",
"version": "v7.3.4",
"source": {
"type": "git",
"url": "https://github.com/symfony/process.git",
"reference": "32241012d521e2e8a9d713adb0812bb773b907f1"
"reference": "f24f8f316367b30810810d4eb30c543d7003ff3b"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/symfony/process/zipball/32241012d521e2e8a9d713adb0812bb773b907f1",
"reference": "32241012d521e2e8a9d713adb0812bb773b907f1",
"url": "https://api.github.com/repos/symfony/process/zipball/f24f8f316367b30810810d4eb30c543d7003ff3b",
"reference": "f24f8f316367b30810810d4eb30c543d7003ff3b",
"shasum": ""
},
"require": {
@ -5696,7 +5696,7 @@
"description": "Executes commands in sub-processes",
"homepage": "https://symfony.com",
"support": {
"source": "https://github.com/symfony/process/tree/v7.3.3"
"source": "https://github.com/symfony/process/tree/v7.3.4"
},
"funding": [
{
@ -5716,20 +5716,20 @@
"type": "tidelift"
}
],
"time": "2025-08-18T09:42:54+00:00"
"time": "2025-09-11T10:12:26+00:00"
},
{
"name": "symfony/routing",
"version": "v7.3.2",
"version": "v7.3.4",
"source": {
"type": "git",
"url": "https://github.com/symfony/routing.git",
"reference": "7614b8ca5fa89b9cd233e21b627bfc5774f586e4"
"reference": "8dc648e159e9bac02b703b9fbd937f19ba13d07c"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/symfony/routing/zipball/7614b8ca5fa89b9cd233e21b627bfc5774f586e4",
"reference": "7614b8ca5fa89b9cd233e21b627bfc5774f586e4",
"url": "https://api.github.com/repos/symfony/routing/zipball/8dc648e159e9bac02b703b9fbd937f19ba13d07c",
"reference": "8dc648e159e9bac02b703b9fbd937f19ba13d07c",
"shasum": ""
},
"require": {
@ -5781,7 +5781,7 @@
"url"
],
"support": {
"source": "https://github.com/symfony/routing/tree/v7.3.2"
"source": "https://github.com/symfony/routing/tree/v7.3.4"
},
"funding": [
{
@ -5801,7 +5801,7 @@
"type": "tidelift"
}
],
"time": "2025-07-15T11:36:08+00:00"
"time": "2025-09-11T10:12:26+00:00"
},
{
"name": "symfony/service-contracts",
@ -5888,16 +5888,16 @@
},
{
"name": "symfony/string",
"version": "v7.3.3",
"version": "v7.3.4",
"source": {
"type": "git",
"url": "https://github.com/symfony/string.git",
"reference": "17a426cce5fd1f0901fefa9b2a490d0038fd3c9c"
"reference": "f96476035142921000338bad71e5247fbc138872"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/symfony/string/zipball/17a426cce5fd1f0901fefa9b2a490d0038fd3c9c",
"reference": "17a426cce5fd1f0901fefa9b2a490d0038fd3c9c",
"url": "https://api.github.com/repos/symfony/string/zipball/f96476035142921000338bad71e5247fbc138872",
"reference": "f96476035142921000338bad71e5247fbc138872",
"shasum": ""
},
"require": {
@ -5912,7 +5912,6 @@
},
"require-dev": {
"symfony/emoji": "^7.1",
"symfony/error-handler": "^6.4|^7.0",
"symfony/http-client": "^6.4|^7.0",
"symfony/intl": "^6.4|^7.0",
"symfony/translation-contracts": "^2.5|^3.0",
@ -5955,7 +5954,7 @@
"utf8"
],
"support": {
"source": "https://github.com/symfony/string/tree/v7.3.3"
"source": "https://github.com/symfony/string/tree/v7.3.4"
},
"funding": [
{
@ -5975,20 +5974,20 @@
"type": "tidelift"
}
],
"time": "2025-08-25T06:35:40+00:00"
"time": "2025-09-11T14:36:48+00:00"
},
{
"name": "symfony/translation",
"version": "v7.3.3",
"version": "v7.3.4",
"source": {
"type": "git",
"url": "https://github.com/symfony/translation.git",
"reference": "e0837b4cbcef63c754d89a4806575cada743a38d"
"reference": "ec25870502d0c7072d086e8ffba1420c85965174"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/symfony/translation/zipball/e0837b4cbcef63c754d89a4806575cada743a38d",
"reference": "e0837b4cbcef63c754d89a4806575cada743a38d",
"url": "https://api.github.com/repos/symfony/translation/zipball/ec25870502d0c7072d086e8ffba1420c85965174",
"reference": "ec25870502d0c7072d086e8ffba1420c85965174",
"shasum": ""
},
"require": {
@ -6055,7 +6054,7 @@
"description": "Provides tools to internationalize your application",
"homepage": "https://symfony.com",
"support": {
"source": "https://github.com/symfony/translation/tree/v7.3.3"
"source": "https://github.com/symfony/translation/tree/v7.3.4"
},
"funding": [
{
@ -6075,7 +6074,7 @@
"type": "tidelift"
}
],
"time": "2025-08-01T21:02:37+00:00"
"time": "2025-09-07T11:39:36+00:00"
},
{
"name": "symfony/translation-contracts",
@ -6231,16 +6230,16 @@
},
{
"name": "symfony/var-dumper",
"version": "v7.3.3",
"version": "v7.3.4",
"source": {
"type": "git",
"url": "https://github.com/symfony/var-dumper.git",
"reference": "34d8d4c4b9597347306d1ec8eb4e1319b1e6986f"
"reference": "b8abe7daf2730d07dfd4b2ee1cecbf0dd2fbdabb"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/symfony/var-dumper/zipball/34d8d4c4b9597347306d1ec8eb4e1319b1e6986f",
"reference": "34d8d4c4b9597347306d1ec8eb4e1319b1e6986f",
"url": "https://api.github.com/repos/symfony/var-dumper/zipball/b8abe7daf2730d07dfd4b2ee1cecbf0dd2fbdabb",
"reference": "b8abe7daf2730d07dfd4b2ee1cecbf0dd2fbdabb",
"shasum": ""
},
"require": {
@ -6294,7 +6293,7 @@
"dump"
],
"support": {
"source": "https://github.com/symfony/var-dumper/tree/v7.3.3"
"source": "https://github.com/symfony/var-dumper/tree/v7.3.4"
},
"funding": [
{
@ -6314,7 +6313,7 @@
"type": "tidelift"
}
],
"time": "2025-08-13T11:49:31+00:00"
"time": "2025-09-11T10:12:26+00:00"
},
{
"name": "thecodingmachine/safe",
@ -8790,12 +8789,12 @@
"source": {
"type": "git",
"url": "https://github.com/Roave/SecurityAdvisories.git",
"reference": "f48b3e601515b060334744b4b495f0d6b3cc2e6b"
"reference": "684ef27cdce62b6562f77a92dc76bdfb46542a2d"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/Roave/SecurityAdvisories/zipball/f48b3e601515b060334744b4b495f0d6b3cc2e6b",
"reference": "f48b3e601515b060334744b4b495f0d6b3cc2e6b",
"url": "https://api.github.com/repos/Roave/SecurityAdvisories/zipball/684ef27cdce62b6562f77a92dc76bdfb46542a2d",
"reference": "684ef27cdce62b6562f77a92dc76bdfb46542a2d",
"shasum": ""
},
"conflict": {
@ -9083,6 +9082,7 @@
"gogentooss/samlbase": "<1.2.7",
"google/protobuf": "<3.4",
"gos/web-socket-bundle": "<1.10.4|>=2,<2.6.1|>=3,<3.3",
"gp247/core": "<1.1.24",
"gree/jose": "<2.2.1",
"gregwar/rst": "<1.0.3",
"grumpydictator/firefly-iii": "<6.1.17",
@ -9285,6 +9285,7 @@
"notrinos/notrinos-erp": "<=0.7",
"noumo/easyii": "<=0.9",
"novaksolutions/infusionsoft-php-sdk": "<1",
"novosga/novosga": "<=2.2.9",
"nukeviet/nukeviet": "<4.5.02",
"nyholm/psr7": "<1.6.1",
"nystudio107/craft-seomatic": "<3.4.12",
@ -9415,7 +9416,7 @@
"roundcube/roundcubemail": "<1.5.10|>=1.6,<1.6.11",
"rudloff/alltube": "<3.0.3",
"rudloff/rtmpdump-bin": "<=2.3.1",
"s-cart/core": "<6.9",
"s-cart/core": "<=9.0.5",
"s-cart/s-cart": "<6.9",
"sabberworm/php-css-parser": ">=1,<1.0.1|>=2,<2.0.1|>=3,<3.0.1|>=4,<4.0.1|>=5,<5.0.9|>=5.1,<5.1.3|>=5.2,<5.2.1|>=6,<6.0.2|>=7,<7.0.4|>=8,<8.0.1|>=8.1,<8.1.1|>=8.2,<8.2.1|>=8.3,<8.3.1",
"sabre/dav": ">=1.6,<1.7.11|>=1.8,<1.8.9",
@ -9487,6 +9488,7 @@
"starcitizentools/citizen-skin": ">=1.9.4,<3.4",
"starcitizentools/short-description": ">=4,<4.0.1",
"starcitizentools/tabber-neue": ">=1.9.1,<2.7.2|>=3,<3.1.1",
"starcitizenwiki/embedvideo": "<=4",
"statamic/cms": "<=5.16",
"stormpath/sdk": "<9.9.99",
"studio-42/elfinder": "<=2.1.64",
@ -9752,7 +9754,7 @@
"type": "tidelift"
}
],
"time": "2025-09-19T18:07:33+00:00"
"time": "2025-09-24T21:05:21+00:00"
},
{
"name": "sebastian/cli-parser",

4
config/importer.php

@ -24,8 +24,8 @@
declare(strict_types=1);
return [
'version' => 'develop/2025-09-23',
'build_time' => 1758598090,
'version' => 'develop/2025-09-30',
'build_time' => 1759202948,
'flows' => ['nordigen', 'spectre', 'file', 'simplefin'],
'enabled_flows' => [
'nordigen' => true,

221
package-lock.json

@ -783,9 +783,9 @@
}
},
"node_modules/@rollup/rollup-android-arm-eabi": {
"version": "4.52.0",
"resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.52.0.tgz",
"integrity": "sha512-VxDYCDqOaR7NXzAtvRx7G1u54d2kEHopb28YH/pKzY6y0qmogP3gG7CSiWsq9WvDFxOQMpNEyjVAHZFXfH3o/A==",
"version": "4.52.3",
"resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.52.3.tgz",
"integrity": "sha512-h6cqHGZ6VdnwliFG1NXvMPTy/9PS3h8oLh7ImwR+kl+oYnQizgjxsONmmPSb2C66RksfkfIxEVtDSEcJiO0tqw==",
"cpu": [
"arm"
],
@ -797,9 +797,9 @@
]
},
"node_modules/@rollup/rollup-android-arm64": {
"version": "4.52.0",
"resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.52.0.tgz",
"integrity": "sha512-pqDirm8koABIKvzL59YI9W9DWbRlTX7RWhN+auR8HXJxo89m4mjqbah7nJZjeKNTNYopqL+yGg+0mhCpf3xZtQ==",
"version": "4.52.3",
"resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.52.3.tgz",
"integrity": "sha512-wd+u7SLT/u6knklV/ifG7gr5Qy4GUbH2hMWcDauPFJzmCZUAJ8L2bTkVXC2niOIxp8lk3iH/QX8kSrUxVZrOVw==",
"cpu": [
"arm64"
],
@ -811,9 +811,9 @@
]
},
"node_modules/@rollup/rollup-darwin-arm64": {
"version": "4.52.0",
"resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.52.0.tgz",
"integrity": "sha512-YCdWlY/8ltN6H78HnMsRHYlPiKvqKagBP1r+D7SSylxX+HnsgXGCmLiV3Y4nSyY9hW8qr8U9LDUx/Lo7M6MfmQ==",
"version": "4.52.3",
"resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.52.3.tgz",
"integrity": "sha512-lj9ViATR1SsqycwFkJCtYfQTheBdvlWJqzqxwc9f2qrcVrQaF/gCuBRTiTolkRWS6KvNxSk4KHZWG7tDktLgjg==",
"cpu": [
"arm64"
],
@ -825,9 +825,9 @@
]
},
"node_modules/@rollup/rollup-darwin-x64": {
"version": "4.52.0",
"resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.52.0.tgz",
"integrity": "sha512-z4nw6y1j+OOSGzuVbSWdIp1IUks9qNw4dc7z7lWuWDKojY38VMWBlEN7F9jk5UXOkUcp97vA1N213DF+Lz8BRg==",
"version": "4.52.3",
"resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.52.3.tgz",
"integrity": "sha512-+Dyo7O1KUmIsbzx1l+4V4tvEVnVQqMOIYtrxK7ncLSknl1xnMHLgn7gddJVrYPNZfEB8CIi3hK8gq8bDhb3h5A==",
"cpu": [
"x64"
],
@ -839,9 +839,9 @@
]
},
"node_modules/@rollup/rollup-freebsd-arm64": {
"version": "4.52.0",
"resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-arm64/-/rollup-freebsd-arm64-4.52.0.tgz",
"integrity": "sha512-Q/dv9Yvyr5rKlK8WQJZVrp5g2SOYeZUs9u/t2f9cQ2E0gJjYB/BWoedXfUT0EcDJefi2zzVfhcOj8drWCzTviw==",
"version": "4.52.3",
"resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-arm64/-/rollup-freebsd-arm64-4.52.3.tgz",
"integrity": "sha512-u9Xg2FavYbD30g3DSfNhxgNrxhi6xVG4Y6i9Ur1C7xUuGDW3banRbXj+qgnIrwRN4KeJ396jchwy9bCIzbyBEQ==",
"cpu": [
"arm64"
],
@ -853,9 +853,9 @@
]
},
"node_modules/@rollup/rollup-freebsd-x64": {
"version": "4.52.0",
"resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-x64/-/rollup-freebsd-x64-4.52.0.tgz",
"integrity": "sha512-kdBsLs4Uile/fbjZVvCRcKB4q64R+1mUq0Yd7oU1CMm1Av336ajIFqNFovByipciuUQjBCPMxwJhCgfG2re3rg==",
"version": "4.52.3",
"resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-x64/-/rollup-freebsd-x64-4.52.3.tgz",
"integrity": "sha512-5M8kyi/OX96wtD5qJR89a/3x5x8x5inXBZO04JWhkQb2JWavOWfjgkdvUqibGJeNNaz1/Z1PPza5/tAPXICI6A==",
"cpu": [
"x64"
],
@ -867,9 +867,9 @@
]
},
"node_modules/@rollup/rollup-linux-arm-gnueabihf": {
"version": "4.52.0",
"resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.52.0.tgz",
"integrity": "sha512-aL6hRwu0k7MTUESgkg7QHY6CoqPgr6gdQXRJI1/VbFlUMwsSzPGSR7sG5d+MCbYnJmJwThc2ol3nixj1fvI/zQ==",
"version": "4.52.3",
"resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.52.3.tgz",
"integrity": "sha512-IoerZJ4l1wRMopEHRKOO16e04iXRDyZFZnNZKrWeNquh5d6bucjezgd+OxG03mOMTnS1x7hilzb3uURPkJ0OfA==",
"cpu": [
"arm"
],
@ -881,9 +881,9 @@
]
},
"node_modules/@rollup/rollup-linux-arm-musleabihf": {
"version": "4.52.0",
"resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.52.0.tgz",
"integrity": "sha512-BTs0M5s1EJejgIBJhCeiFo7GZZ2IXWkFGcyZhxX4+8usnIo5Mti57108vjXFIQmmJaRyDwmV59Tw64Ap1dkwMw==",
"version": "4.52.3",
"resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.52.3.tgz",
"integrity": "sha512-ZYdtqgHTDfvrJHSh3W22TvjWxwOgc3ThK/XjgcNGP2DIwFIPeAPNsQxrJO5XqleSlgDux2VAoWQ5iJrtaC1TbA==",
"cpu": [
"arm"
],
@ -895,9 +895,9 @@
]
},
"node_modules/@rollup/rollup-linux-arm64-gnu": {
"version": "4.52.0",
"resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.52.0.tgz",
"integrity": "sha512-uj672IVOU9m08DBGvoPKPi/J8jlVgjh12C9GmjjBxCTQc3XtVmRkRKyeHSmIKQpvJ7fIm1EJieBUcnGSzDVFyw==",
"version": "4.52.3",
"resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.52.3.tgz",
"integrity": "sha512-NcViG7A0YtuFDA6xWSgmFb6iPFzHlf5vcqb2p0lGEbT+gjrEEz8nC/EeDHvx6mnGXnGCC1SeVV+8u+smj0CeGQ==",
"cpu": [
"arm64"
],
@ -909,9 +909,9 @@
]
},
"node_modules/@rollup/rollup-linux-arm64-musl": {
"version": "4.52.0",
"resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.52.0.tgz",
"integrity": "sha512-/+IVbeDMDCtB/HP/wiWsSzduD10SEGzIZX2945KSgZRNi4TSkjHqRJtNTVtVb8IRwhJ65ssI56krlLik+zFWkw==",
"version": "4.52.3",
"resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.52.3.tgz",
"integrity": "sha512-d3pY7LWno6SYNXRm6Ebsq0DJGoiLXTb83AIPCXl9fmtIQs/rXoS8SJxxUNtFbJ5MiOvs+7y34np77+9l4nfFMw==",
"cpu": [
"arm64"
],
@ -923,9 +923,9 @@
]
},
"node_modules/@rollup/rollup-linux-loong64-gnu": {
"version": "4.52.0",
"resolved": "https://registry.npmjs.org/@rollup/rollup-linux-loong64-gnu/-/rollup-linux-loong64-gnu-4.52.0.tgz",
"integrity": "sha512-U1vVzvSWtSMWKKrGoROPBXMh3Vwn93TA9V35PldokHGqiUbF6erSzox/5qrSMKp6SzakvyjcPiVF8yB1xKr9Pg==",
"version": "4.52.3",
"resolved": "https://registry.npmjs.org/@rollup/rollup-linux-loong64-gnu/-/rollup-linux-loong64-gnu-4.52.3.tgz",
"integrity": "sha512-3y5GA0JkBuirLqmjwAKwB0keDlI6JfGYduMlJD/Rl7fvb4Ni8iKdQs1eiunMZJhwDWdCvrcqXRY++VEBbvk6Eg==",
"cpu": [
"loong64"
],
@ -937,9 +937,9 @@
]
},
"node_modules/@rollup/rollup-linux-ppc64-gnu": {
"version": "4.52.0",
"resolved": "https://registry.npmjs.org/@rollup/rollup-linux-ppc64-gnu/-/rollup-linux-ppc64-gnu-4.52.0.tgz",
"integrity": "sha512-X/4WfuBAdQRH8cK3DYl8zC00XEE6aM472W+QCycpQJeLWVnHfkv7RyBFVaTqNUMsTgIX8ihMjCvFF9OUgeABzw==",
"version": "4.52.3",
"resolved": "https://registry.npmjs.org/@rollup/rollup-linux-ppc64-gnu/-/rollup-linux-ppc64-gnu-4.52.3.tgz",
"integrity": "sha512-AUUH65a0p3Q0Yfm5oD2KVgzTKgwPyp9DSXc3UA7DtxhEb/WSPfbG4wqXeSN62OG5gSo18em4xv6dbfcUGXcagw==",
"cpu": [
"ppc64"
],
@ -951,9 +951,9 @@
]
},
"node_modules/@rollup/rollup-linux-riscv64-gnu": {
"version": "4.52.0",
"resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.52.0.tgz",
"integrity": "sha512-xIRYc58HfWDBZoLmWfWXg2Sq8VCa2iJ32B7mqfWnkx5mekekl0tMe7FHpY8I72RXEcUkaWawRvl3qA55og+cwQ==",
"version": "4.52.3",
"resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.52.3.tgz",
"integrity": "sha512-1makPhFFVBqZE+XFg3Dkq+IkQ7JvmUrwwqaYBL2CE+ZpxPaqkGaiWFEWVGyvTwZace6WLJHwjVh/+CXbKDGPmg==",
"cpu": [
"riscv64"
],
@ -965,9 +965,9 @@
]
},
"node_modules/@rollup/rollup-linux-riscv64-musl": {
"version": "4.52.0",
"resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-musl/-/rollup-linux-riscv64-musl-4.52.0.tgz",
"integrity": "sha512-mbsoUey05WJIOz8U1WzNdf+6UMYGwE3fZZnQqsM22FZ3wh1N887HT6jAOjXs6CNEK3Ntu2OBsyQDXfIjouI4dw==",
"version": "4.52.3",
"resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-musl/-/rollup-linux-riscv64-musl-4.52.3.tgz",
"integrity": "sha512-OOFJa28dxfl8kLOPMUOQBCO6z3X2SAfzIE276fwT52uXDWUS178KWq0pL7d6p1kz7pkzA0yQwtqL0dEPoVcRWg==",
"cpu": [
"riscv64"
],
@ -979,9 +979,9 @@
]
},
"node_modules/@rollup/rollup-linux-s390x-gnu": {
"version": "4.52.0",
"resolved": "https://registry.npmjs.org/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.52.0.tgz",
"integrity": "sha512-qP6aP970bucEi5KKKR4AuPFd8aTx9EF6BvutvYxmZuWLJHmnq4LvBfp0U+yFDMGwJ+AIJEH5sIP+SNypauMWzg==",
"version": "4.52.3",
"resolved": "https://registry.npmjs.org/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.52.3.tgz",
"integrity": "sha512-jMdsML2VI5l+V7cKfZx3ak+SLlJ8fKvLJ0Eoa4b9/vCUrzXKgoKxvHqvJ/mkWhFiyp88nCkM5S2v6nIwRtPcgg==",
"cpu": [
"s390x"
],
@ -993,9 +993,9 @@
]
},
"node_modules/@rollup/rollup-linux-x64-gnu": {
"version": "4.52.0",
"resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.52.0.tgz",
"integrity": "sha512-nmSVN+F2i1yKZ7rJNKO3G7ZzmxJgoQBQZ/6c4MuS553Grmr7WqR7LLDcYG53Z2m9409z3JLt4sCOhLdbKQ3HmA==",
"version": "4.52.3",
"resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.52.3.tgz",
"integrity": "sha512-tPgGd6bY2M2LJTA1uGq8fkSPK8ZLYjDjY+ZLK9WHncCnfIz29LIXIqUgzCR0hIefzy6Hpbe8Th5WOSwTM8E7LA==",
"cpu": [
"x64"
],
@ -1007,9 +1007,9 @@
]
},
"node_modules/@rollup/rollup-linux-x64-musl": {
"version": "4.52.0",
"resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.52.0.tgz",
"integrity": "sha512-2d0qRo33G6TfQVjaMR71P+yJVGODrt5V6+T0BDYH4EMfGgdC/2HWDVjSSFw888GSzAZUwuska3+zxNUCDco6rQ==",
"version": "4.52.3",
"resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.52.3.tgz",
"integrity": "sha512-BCFkJjgk+WFzP+tcSMXq77ymAPIxsX9lFJWs+2JzuZTLtksJ2o5hvgTdIcZ5+oKzUDMwI0PfWzRBYAydAHF2Mw==",
"cpu": [
"x64"
],
@ -1021,9 +1021,9 @@
]
},
"node_modules/@rollup/rollup-openharmony-arm64": {
"version": "4.52.0",
"resolved": "https://registry.npmjs.org/@rollup/rollup-openharmony-arm64/-/rollup-openharmony-arm64-4.52.0.tgz",
"integrity": "sha512-A1JalX4MOaFAAyGgpO7XP5khquv/7xKzLIyLmhNrbiCxWpMlnsTYr8dnsWM7sEeotNmxvSOEL7F65j0HXFcFsw==",
"version": "4.52.3",
"resolved": "https://registry.npmjs.org/@rollup/rollup-openharmony-arm64/-/rollup-openharmony-arm64-4.52.3.tgz",
"integrity": "sha512-KTD/EqjZF3yvRaWUJdD1cW+IQBk4fbQaHYJUmP8N4XoKFZilVL8cobFSTDnjTtxWJQ3JYaMgF4nObY/+nYkumA==",
"cpu": [
"arm64"
],
@ -1035,9 +1035,9 @@
]
},
"node_modules/@rollup/rollup-win32-arm64-msvc": {
"version": "4.52.0",
"resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.52.0.tgz",
"integrity": "sha512-YQugafP/rH0eOOHGjmNgDURrpYHrIX0yuojOI8bwCyXwxC9ZdTd3vYkmddPX0oHONLXu9Rb1dDmT0VNpjkzGGw==",
"version": "4.52.3",
"resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.52.3.tgz",
"integrity": "sha512-+zteHZdoUYLkyYKObGHieibUFLbttX2r+58l27XZauq0tcWYYuKUwY2wjeCN9oK1Um2YgH2ibd6cnX/wFD7DuA==",
"cpu": [
"arm64"
],
@ -1049,9 +1049,9 @@
]
},
"node_modules/@rollup/rollup-win32-ia32-msvc": {
"version": "4.52.0",
"resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.52.0.tgz",
"integrity": "sha512-zYdUYhi3Qe2fndujBqL5FjAFzvNeLxtIqfzNEVKD1I7C37/chv1VxhscWSQHTNfjPCrBFQMnynwA3kpZpZ8w4A==",
"version": "4.52.3",
"resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.52.3.tgz",
"integrity": "sha512-of1iHkTQSo3kr6dTIRX6t81uj/c/b15HXVsPcEElN5sS859qHrOepM5p9G41Hah+CTqSh2r8Bm56dL2z9UQQ7g==",
"cpu": [
"ia32"
],
@ -1063,9 +1063,9 @@
]
},
"node_modules/@rollup/rollup-win32-x64-gnu": {
"version": "4.52.0",
"resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-gnu/-/rollup-win32-x64-gnu-4.52.0.tgz",
"integrity": "sha512-fGk03kQylNaCOQ96HDMeT7E2n91EqvCDd3RwvT5k+xNdFCeMGnj5b5hEgTGrQuyidqSsD3zJDQ21QIaxXqTBJw==",
"version": "4.52.3",
"resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-gnu/-/rollup-win32-x64-gnu-4.52.3.tgz",
"integrity": "sha512-s0hybmlHb56mWVZQj8ra9048/WZTPLILKxcvcq+8awSZmyiSUZjjem1AhU3Tf4ZKpYhK4mg36HtHDOe8QJS5PQ==",
"cpu": [
"x64"
],
@ -1077,9 +1077,9 @@
]
},
"node_modules/@rollup/rollup-win32-x64-msvc": {
"version": "4.52.0",
"resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.52.0.tgz",
"integrity": "sha512-6iKDCVSIUQ8jPMoIV0OytRKniaYyy5EbY/RRydmLW8ZR3cEBhxbWl5ro0rkUNe0ef6sScvhbY79HrjRm8i3vDQ==",
"version": "4.52.3",
"resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.52.3.tgz",
"integrity": "sha512-zGIbEVVXVtauFgl3MRwGWEN36P5ZGenHRMgNw88X5wEhEBpq0XrMEZwOn07+ICrwM17XO5xfMZqh0OldCH5VTA==",
"cpu": [
"x64"
],
@ -1121,6 +1121,26 @@
"@vue/reactivity": "~3.1.1"
}
},
"node_modules/async-function": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/async-function/-/async-function-1.0.0.tgz",
"integrity": "sha512-hsU18Ae8CDTR6Kgu9DYf0EbCr/a5iGL0rytQDobUcdpYOKokk8LEjVphnXkDkgpi0wYVsqrXuP0bZxJaTqdgoA==",
"dev": true,
"license": "MIT",
"engines": {
"node": ">= 0.4"
}
},
"node_modules/async-generator-function": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/async-generator-function/-/async-generator-function-1.0.0.tgz",
"integrity": "sha512-+NAXNqgCrB95ya4Sr66i1CL2hqLVckAk7xwRYWdcm39/ELQ6YNn1aw5r0bdQtqNZgQpEWzc5yc/igXc7aL5SLA==",
"dev": true,
"license": "MIT",
"engines": {
"node": ">= 0.4"
}
},
"node_modules/asynckit": {
"version": "0.4.0",
"resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz",
@ -1423,18 +1443,31 @@
"url": "https://github.com/sponsors/ljharb"
}
},
"node_modules/generator-function": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/generator-function/-/generator-function-2.0.0.tgz",
"integrity": "sha512-xPypGGincdfyl/AiSGa7GjXLkvld9V7GjZlowup9SHIJnQnHLFiLODCd/DqKOp0PBagbHJ68r1KJI9Mut7m4sA==",
"dev": true,
"license": "MIT",
"engines": {
"node": ">= 0.4"
}
},
"node_modules/get-intrinsic": {
"version": "1.3.0",
"resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.3.0.tgz",
"integrity": "sha512-9fSjSaos/fRIVIp+xSJlE6lfwhES7LNtKaCBIamHsjr2na1BiABJPo0mOjjz8GJDURarmCPGqaiVg5mfjb98CQ==",
"version": "1.3.1",
"resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.3.1.tgz",
"integrity": "sha512-fk1ZVEeOX9hVZ6QzoBNEC55+Ucqg4sTVwrVuigZhuRPESVFpMyXnd3sbXvPOwp7Y9riVyANiqhEuRF0G1aVSeQ==",
"dev": true,
"license": "MIT",
"dependencies": {
"async-function": "^1.0.0",
"async-generator-function": "^1.0.0",
"call-bind-apply-helpers": "^1.0.2",
"es-define-property": "^1.0.1",
"es-errors": "^1.3.0",
"es-object-atoms": "^1.1.1",
"function-bind": "^1.1.2",
"generator-function": "^2.0.0",
"get-proto": "^1.0.1",
"gopd": "^1.2.0",
"has-symbols": "^1.1.0",
@ -1726,9 +1759,9 @@
}
},
"node_modules/rollup": {
"version": "4.52.0",
"resolved": "https://registry.npmjs.org/rollup/-/rollup-4.52.0.tgz",
"integrity": "sha512-+IuescNkTJQgX7AkIDtITipZdIGcWF0pnVvZTWStiazUmcGA2ag8dfg0urest2XlXUi9kuhfQ+qmdc5Stc3z7g==",
"version": "4.52.3",
"resolved": "https://registry.npmjs.org/rollup/-/rollup-4.52.3.tgz",
"integrity": "sha512-RIDh866U8agLgiIcdpB+COKnlCreHJLfIhWC3LVflku5YHfpnsIKigRZeFfMfCc4dVcqNVfQQ5gO/afOck064A==",
"dev": true,
"license": "MIT",
"dependencies": {
@ -1742,28 +1775,28 @@
"npm": ">=8.0.0"
},
"optionalDependencies": {
"@rollup/rollup-android-arm-eabi": "4.52.0",
"@rollup/rollup-android-arm64": "4.52.0",
"@rollup/rollup-darwin-arm64": "4.52.0",
"@rollup/rollup-darwin-x64": "4.52.0",
"@rollup/rollup-freebsd-arm64": "4.52.0",
"@rollup/rollup-freebsd-x64": "4.52.0",
"@rollup/rollup-linux-arm-gnueabihf": "4.52.0",
"@rollup/rollup-linux-arm-musleabihf": "4.52.0",
"@rollup/rollup-linux-arm64-gnu": "4.52.0",
"@rollup/rollup-linux-arm64-musl": "4.52.0",
"@rollup/rollup-linux-loong64-gnu": "4.52.0",
"@rollup/rollup-linux-ppc64-gnu": "4.52.0",
"@rollup/rollup-linux-riscv64-gnu": "4.52.0",
"@rollup/rollup-linux-riscv64-musl": "4.52.0",
"@rollup/rollup-linux-s390x-gnu": "4.52.0",
"@rollup/rollup-linux-x64-gnu": "4.52.0",
"@rollup/rollup-linux-x64-musl": "4.52.0",
"@rollup/rollup-openharmony-arm64": "4.52.0",
"@rollup/rollup-win32-arm64-msvc": "4.52.0",
"@rollup/rollup-win32-ia32-msvc": "4.52.0",
"@rollup/rollup-win32-x64-gnu": "4.52.0",
"@rollup/rollup-win32-x64-msvc": "4.52.0",
"@rollup/rollup-android-arm-eabi": "4.52.3",
"@rollup/rollup-android-arm64": "4.52.3",
"@rollup/rollup-darwin-arm64": "4.52.3",
"@rollup/rollup-darwin-x64": "4.52.3",
"@rollup/rollup-freebsd-arm64": "4.52.3",
"@rollup/rollup-freebsd-x64": "4.52.3",
"@rollup/rollup-linux-arm-gnueabihf": "4.52.3",
"@rollup/rollup-linux-arm-musleabihf": "4.52.3",
"@rollup/rollup-linux-arm64-gnu": "4.52.3",
"@rollup/rollup-linux-arm64-musl": "4.52.3",
"@rollup/rollup-linux-loong64-gnu": "4.52.3",
"@rollup/rollup-linux-ppc64-gnu": "4.52.3",
"@rollup/rollup-linux-riscv64-gnu": "4.52.3",
"@rollup/rollup-linux-riscv64-musl": "4.52.3",
"@rollup/rollup-linux-s390x-gnu": "4.52.3",
"@rollup/rollup-linux-x64-gnu": "4.52.3",
"@rollup/rollup-linux-x64-musl": "4.52.3",
"@rollup/rollup-openharmony-arm64": "4.52.3",
"@rollup/rollup-win32-arm64-msvc": "4.52.3",
"@rollup/rollup-win32-ia32-msvc": "4.52.3",
"@rollup/rollup-win32-x64-gnu": "4.52.3",
"@rollup/rollup-win32-x64-msvc": "4.52.3",
"fsevents": "~2.3.2"
}
},

Loading…
Cancel
Save