Skip to content
Merged
Show file tree
Hide file tree
Changes from 7 commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 4 additions & 0 deletions .github/workflows/package-integrity.yml
Original file line number Diff line number Diff line change
Expand Up @@ -37,6 +37,10 @@ jobs:
repo: fhir-code-generation
- path: src/Component/Validation
repo: fhir-validation
- path: src/Component/HttpClient
repo: fhir-http-client
- path: src/Component/Sdc
repo: fhir-sdc
- path: src/Bundle/FHIRBundle
repo: fhir-bundle
steps:
Expand Down
4 changes: 3 additions & 1 deletion composer.json
Original file line number Diff line number Diff line change
Expand Up @@ -85,7 +85,8 @@
"Ardenexal\\FHIRTools\\Component\\Metadata\\": "src/Component/Metadata/src/",
"Ardenexal\\FHIRTools\\Component\\FHIRPath\\": "src/Component/FHIRPath/src/",
"Ardenexal\\FHIRTools\\Component\\Validation\\": "src/Component/Validation/src/",
"Ardenexal\\FHIRTools\\Component\\Sdc\\": "src/Component/Sdc/src/"
"Ardenexal\\FHIRTools\\Component\\Sdc\\": "src/Component/Sdc/src/",
"Ardenexal\\FHIRTools\\Component\\HttpClient\\": "src/Component/HttpClient/src/"
}
},
"autoload-dev": {
Expand All @@ -96,6 +97,7 @@
"Ardenexal\\FHIRTools\\Component\\Serialization\\Tests\\": "src/Component/Serialization/tests/",
"Ardenexal\\FHIRTools\\Component\\Validation\\Tests\\": "src/Component/Validation/tests/",
"Ardenexal\\FHIRTools\\Component\\Sdc\\Tests\\": "src/Component/Sdc/tests/",
"Ardenexal\\FHIRTools\\Component\\HttpClient\\Tests\\": "src/Component/HttpClient/tests/",
"Ardenexal\\FHIRTools\\Benchmarks\\": "bench/",
"App\\Mate\\": "mate/src/"
}
Expand Down
74 changes: 38 additions & 36 deletions demo/config/reference.php
Original file line number Diff line number Diff line change
Expand Up @@ -128,17 +128,17 @@
* @psalm-type FrameworkConfig = array{
* secret?: scalar|Param|null,
* http_method_override?: bool|Param, // Set true to enable support for the '_method' request parameter to determine the intended HTTP method on POST requests. // Default: false
* allowed_http_method_override?: null|list<string|Param>,
* allowed_http_method_override?: list<string|Param>|null,
* trust_x_sendfile_type_header?: scalar|Param|null, // Set true to enable support for xsendfile in binary file responses. // Default: "%env(bool:default::SYMFONY_TRUST_X_SENDFILE_TYPE_HEADER)%"
* ide?: scalar|Param|null, // Default: "%env(default::SYMFONY_IDE)%"
* test?: bool|Param,
* default_locale?: scalar|Param|null, // Default: "en"
* set_locale_from_accept_language?: bool|Param, // Whether to use the Accept-Language HTTP header to set the Request locale (only when the "_locale" request attribute is not passed). // Default: false
* set_content_language_from_locale?: bool|Param, // Whether to set the Content-Language HTTP header on the Response using the Request locale. // Default: false
* enabled_locales?: list<scalar|Param|null>,
* trusted_hosts?: string|list<scalar|Param|null>,
* trusted_hosts?: list<scalar|Param|null>,
* trusted_proxies?: mixed, // Default: ["%env(default::SYMFONY_TRUSTED_PROXIES)%"]
* trusted_headers?: string|list<scalar|Param|null>,
* trusted_headers?: list<scalar|Param|null>,
* error_controller?: scalar|Param|null, // Default: "error_controller"
* handle_all_throwables?: bool|Param, // HttpKernel will handle all kinds of \Throwable. // Default: true
* csrf_protection?: bool|array{
Expand Down Expand Up @@ -202,23 +202,23 @@
* property?: scalar|Param|null,
* service?: scalar|Param|null,
* },
* supports?: string|list<scalar|Param|null>,
* supports?: list<scalar|Param|null>,
* definition_validators?: list<scalar|Param|null>,
* support_strategy?: scalar|Param|null,
* initial_marking?: \BackedEnum|string|list<scalar|Param|null>,
* events_to_dispatch?: null|list<string|Param>,
* places?: string|list<array{ // Default: []
* initial_marking?: list<scalar|Param|null>,
* events_to_dispatch?: list<string|Param>|null,
* places?: list<array{ // Default: []
* name?: scalar|Param|null,
* metadata?: array<string, mixed>,
* }>,
* transitions?: list<array{ // Default: []
* name?: string|Param,
* guard?: string|Param, // An expression to block the transition.
* from?: \BackedEnum|string|list<array{ // Default: []
* from?: list<array{ // Default: []
* place?: string|Param,
* weight?: int|Param, // Default: 1
* }>,
* to?: \BackedEnum|string|list<array{ // Default: []
* to?: list<array{ // Default: []
* place?: string|Param,
* weight?: int|Param, // Default: 1
* }>,
Expand Down Expand Up @@ -271,20 +271,20 @@
* version_format?: scalar|Param|null, // Default: "%%s?%%s"
* json_manifest_path?: scalar|Param|null, // Default: null
* base_path?: scalar|Param|null, // Default: ""
* base_urls?: string|list<scalar|Param|null>,
* base_urls?: list<scalar|Param|null>,
* packages?: array<string, array{ // Default: []
* strict_mode?: bool|Param, // Throw an exception if an entry is missing from the manifest.json. // Default: false
* version_strategy?: scalar|Param|null, // Default: null
* version?: scalar|Param|null,
* version_format?: scalar|Param|null, // Default: null
* json_manifest_path?: scalar|Param|null, // Default: null
* base_path?: scalar|Param|null, // Default: ""
* base_urls?: string|list<scalar|Param|null>,
* base_urls?: list<scalar|Param|null>,
* }>,
* },
* asset_mapper?: bool|array{ // Asset Mapper configuration
* enabled?: bool|Param, // Default: true
* paths?: string|array<string, scalar|Param|null>,
* paths?: array<string, scalar|Param|null>,
* excluded_patterns?: list<scalar|Param|null>,
* exclude_dotfiles?: bool|Param, // If true, any files starting with "." will be excluded from the asset mapper. // Default: true
* server?: bool|Param, // If true, a "dev server" will return the assets from the public directory (true in "debug" mode only by default). // Default: true
Expand All @@ -303,7 +303,7 @@
* },
* translator?: bool|array{ // Translator configuration
* enabled?: bool|Param, // Default: true
* fallbacks?: string|list<scalar|Param|null>,
* fallbacks?: list<scalar|Param|null>,
* logging?: bool|Param, // Default: false
* formatter?: scalar|Param|null, // Default: "translator.formatter.default"
* cache_dir?: scalar|Param|null, // Default: "%kernel.cache_dir%/translations"
Expand Down Expand Up @@ -333,7 +333,7 @@
* enabled?: bool|Param, // Default: true
* cache?: scalar|Param|null, // Deprecated: Setting the "framework.validation.cache.cache" configuration option is deprecated. It will be removed in version 8.0.
* enable_attributes?: bool|Param, // Default: true
* static_method?: string|list<scalar|Param|null>,
* static_method?: list<scalar|Param|null>,
* translation_domain?: scalar|Param|null, // Default: "validators"
* email_validation_mode?: "html5"|"html5-allow-no-tld"|"strict"|"loose"|Param, // Default: "html5"
* mapping?: array{
Expand Down Expand Up @@ -396,7 +396,7 @@
* default_doctrine_dbal_provider?: scalar|Param|null, // Default: "database_connection"
* default_pdo_provider?: scalar|Param|null, // Default: null
* pools?: array<string, array{ // Default: []
* adapters?: string|list<scalar|Param|null>,
* adapters?: list<scalar|Param|null>,
* tags?: scalar|Param|null, // Default: null
* public?: bool|Param, // Default: false
* default_lifetime?: scalar|Param|null, // Default lifetime of the pool.
Expand All @@ -419,11 +419,11 @@
* },
* lock?: bool|string|array{ // Lock configuration
* enabled?: bool|Param, // Default: false
* resources?: string|array<string, string|list<scalar|Param|null>>,
* resources?: array<string, string|list<scalar|Param|null>>,
* },
* semaphore?: bool|string|array{ // Semaphore configuration
* enabled?: bool|Param, // Default: false
* resources?: string|array<string, scalar|Param|null>,
* resources?: array<string, scalar|Param|null>,
* },
* messenger?: bool|array{ // Messenger configuration
* enabled?: bool|Param, // Default: false
Expand Down Expand Up @@ -453,15 +453,15 @@
* rate_limiter?: scalar|Param|null, // Rate limiter name to use when processing messages. // Default: null
* }>,
* failure_transport?: scalar|Param|null, // Transport name to send failed messages to (after all retries have failed). // Default: null
* stop_worker_on_signals?: int|string|list<scalar|Param|null>,
* stop_worker_on_signals?: list<scalar|Param|null>,
* default_bus?: scalar|Param|null, // Default: null
* buses?: array<string, array{ // Default: {"messenger.bus.default":{"default_middleware":{"enabled":true,"allow_no_handlers":false,"allow_no_senders":true},"middleware":[]}}
* default_middleware?: bool|string|array{
* enabled?: bool|Param, // Default: true
* allow_no_handlers?: bool|Param, // Default: false
* allow_no_senders?: bool|Param, // Default: true
* },
* middleware?: string|list<string|array{ // Default: []
* middleware?: list<string|array{ // Default: []
* id?: scalar|Param|null,
* arguments?: list<mixed>,
* }>,
Expand Down Expand Up @@ -510,9 +510,9 @@
* retry_failed?: bool|array{
* enabled?: bool|Param, // Default: false
* retry_strategy?: scalar|Param|null, // service id to override the retry strategy. // Default: null
* http_codes?: int|string|array<string, array{ // Default: []
* http_codes?: array<string, array{ // Default: []
* code?: int|Param,
* methods?: string|list<string|Param>,
* methods?: list<string|Param>,
* }>,
* max_retries?: int|Param, // Default: 3
* delay?: int|Param, // Time in ms to delay (or the initial value when multiplier is used). // Default: 1000
Expand Down Expand Up @@ -563,9 +563,9 @@
* retry_failed?: bool|array{
* enabled?: bool|Param, // Default: false
* retry_strategy?: scalar|Param|null, // service id to override the retry strategy. // Default: null
* http_codes?: int|string|array<string, array{ // Default: []
* http_codes?: array<string, array{ // Default: []
* code?: int|Param,
* methods?: string|list<string|Param>,
* methods?: list<string|Param>,
* }>,
* max_retries?: int|Param, // Default: 3
* delay?: int|Param, // Time in ms to delay (or the initial value when multiplier is used). // Default: 1000
Expand All @@ -582,8 +582,8 @@
* transports?: array<string, scalar|Param|null>,
* envelope?: array{ // Mailer Envelope configuration
* sender?: scalar|Param|null,
* recipients?: string|list<scalar|Param|null>,
* allowed_recipients?: string|list<scalar|Param|null>,
* recipients?: list<scalar|Param|null>,
* allowed_recipients?: list<scalar|Param|null>,
* },
* headers?: array<string, string|array{ // Default: []
* value?: mixed,
Expand Down Expand Up @@ -635,7 +635,7 @@
* cache_pool?: scalar|Param|null, // The cache pool to use for storing the current limiter state. // Default: "cache.rate_limiter"
* storage_service?: scalar|Param|null, // The service ID of a custom storage implementation, this precedes any configured "cache_pool". // Default: null
* policy?: "fixed_window"|"token_bucket"|"sliding_window"|"compound"|"no_limit"|Param, // The algorithm to be used by this limiter.
* limiters?: string|list<scalar|Param|null>,
* limiters?: list<scalar|Param|null>,
* limit?: int|Param, // The maximum allowed hits in a fixed interval or burst.
* interval?: scalar|Param|null, // Configures the fixed interval if "policy" is set to "fixed_window" or "sliding_window". The value must be a number followed by "second", "minute", "hour", "day", "week" or "month" (or their plural equivalent).
* rate?: array{ // Configures the fill rate if "policy" is set to "token_bucket".
Expand All @@ -658,20 +658,20 @@
* allow_safe_elements?: bool|Param, // Allows "safe" elements and attributes. // Default: false
* allow_static_elements?: bool|Param, // Allows all static elements and attributes from the W3C Sanitizer API standard. // Default: false
* allow_elements?: array<string, mixed>,
* block_elements?: string|list<string|Param>,
* drop_elements?: string|list<string|Param>,
* block_elements?: list<string|Param>,
* drop_elements?: list<string|Param>,
* allow_attributes?: array<string, mixed>,
* drop_attributes?: array<string, mixed>,
* force_attributes?: array<string, array<string, string|Param>>,
* force_https_urls?: bool|Param, // Transforms URLs using the HTTP scheme to use the HTTPS scheme instead. // Default: false
* allowed_link_schemes?: string|list<string|Param>,
* allowed_link_hosts?: null|string|list<string|Param>,
* allowed_link_schemes?: list<string|Param>,
* allowed_link_hosts?: list<string|Param>|null,
* allow_relative_links?: bool|Param, // Allows relative URLs to be used in links href attributes. // Default: false
* allowed_media_schemes?: string|list<string|Param>,
* allowed_media_hosts?: null|string|list<string|Param>,
* allowed_media_schemes?: list<string|Param>,
* allowed_media_hosts?: list<string|Param>|null,
* allow_relative_medias?: bool|Param, // Allows relative URLs to be used in media source attributes (img, audio, video, ...). // Default: false
* with_attribute_sanitizers?: string|list<string|Param>,
* without_attribute_sanitizers?: string|list<string|Param>,
* with_attribute_sanitizers?: list<string|Param>,
* without_attribute_sanitizers?: list<string|Param>,
* max_input_length?: int|Param, // The maximum length allowed for the sanitized input. // Default: 0
* }>,
* },
Expand Down Expand Up @@ -714,7 +714,7 @@
* auto_reload?: scalar|Param|null,
* optimizations?: int|Param,
* default_path?: scalar|Param|null, // The default path used to load templates. // Default: "%kernel.project_dir%/templates"
* file_name_pattern?: string|list<scalar|Param|null>,
* file_name_pattern?: list<scalar|Param|null>,
* paths?: array<string, mixed>,
* date?: array{ // The default format options used by the date filter.
* format?: scalar|Param|null, // Default: "F j, Y H:i"
Expand Down Expand Up @@ -807,11 +807,13 @@
* @psalm-type FhirConfig = array{
* output_directory?: scalar|Param|null, // Directory where generated FHIR classes will be stored // Default: "%kernel.project_dir%/output"
* cache_directory?: scalar|Param|null, // Directory for FHIR package cache and metadata // Default: "%kernel.cache_dir%/fhir"
* default_version?: scalar|Param|null, // Default FHIR version to use when not specified // Default: "R4B"
* default_version?: scalar|Param|null, // Default FHIR version to use when not specified // Default: "R4"
* validation?: array{
* enabled?: bool|Param, // Enable FHIR validation during code generation // Default: true
* strict_mode?: bool|Param, // Enable strict validation mode (fail on warnings) // Default: false
* message_overrides?: array<string, scalar|Param|null>,
* terminology_cache_pool?: scalar|Param|null, // PSR-6 cache pool service ID for terminology validation results. Set to null to disable. // Default: null
* terminology_cache_ttl?: int|Param, // TTL in seconds for cached terminology results. 0 = no expiry. // Default: 3600
* },
* packages?: array<string, array{ // Default: []
* version?: scalar|Param|null, // Package version to use
Expand Down
2 changes: 2 additions & 0 deletions phpstan.neon
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,8 @@ parameters:
- src/Component/Models/src/
- src/Component/FHIRPath/src/
- src/Component/Validation/src/
- src/Component/Sdc/src/
- src/Component/HttpClient/src/
- mate/src/
excludePaths:
- */vendor/*
Expand Down
2 changes: 2 additions & 0 deletions phpunit.dist.xml
Original file line number Diff line number Diff line change
Expand Up @@ -28,6 +28,7 @@
<directory>src/Component/FHIRPath/tests/Unit</directory>
<directory>src/Component/Validation/tests/Unit</directory>
<directory>src/Component/Sdc/tests/Unit</directory>
<directory>src/Component/HttpClient/tests/Unit</directory>
</testsuite>
<testsuite name="integration">
<directory>tests/Integration</directory>
Expand Down Expand Up @@ -102,6 +103,7 @@
<directory>src/Component/FHIRPath/src</directory>
<directory>src/Component/Validation/src</directory>
<directory>src/Component/Sdc/src</directory>
<directory>src/Component/HttpClient/src</directory>
</include>
<exclude>
<directory>src/Exception</directory>
Expand Down
1 change: 1 addition & 0 deletions src/Bundle/FHIRBundle/composer.json
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,7 @@
"require": {
"php": ">=8.3",
"ardenexal/fhir-code-generation": "^0.4",
"ardenexal/fhir-http-client": "^0.4",
"ardenexal/fhir-metadata": "^0.4",
"ardenexal/fhir-path": "^0.4",
"ardenexal/fhir-serialization": "^0.4",
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -7,8 +7,8 @@
use Ardenexal\FHIRTools\Bundle\FHIRBundle\CacheWarmer\FHIRMetadataCacheWarmer;
use Ardenexal\FHIRTools\Bundle\FHIRBundle\Compatibility\SymfonyVersionHelper;
use Ardenexal\FHIRTools\Component\Serialization\Metadata\PropertyMetadataProvider;
use Ardenexal\FHIRTools\Component\Validation\CachingFHIRTerminologyClient;
use Ardenexal\FHIRTools\Component\Validation\FHIRTerminologyClientInterface;
use Ardenexal\FHIRTools\Component\HttpClient\CachingFHIRTerminologyClient;
use Ardenexal\FHIRTools\Component\Metadata\Contract\FHIRTerminologyClientInterface;
use Ardenexal\FHIRTools\Component\Validation\FHIRValidationMessageRegistry;
use Symfony\Component\Config\FileLocator;
use Symfony\Component\DependencyInjection\ContainerBuilder;
Expand Down
Loading
Loading