Skip to content

chore(deps): update angular dependencies #5271

chore(deps): update angular dependencies

chore(deps): update angular dependencies #5271

GitHub Actions / UT Tests report-windows-latest succeeded Feb 6, 2024 in 1s

222 passed, 0 failed and 1 skipped

Tests passed successfully

Report Passed Failed Skipped Time
packages/@ama-sdk/core/dist-test/ut-report.xml 141✅ 1⚪ 26s
packages/@o3r/eslint-plugin/dist-test/ut-report.xml 58✅ 25s
packages/@o3r/schematics/dist-test/ut-report.xml 14✅ 19s
packages/@o3r/telemetry/dist-test/ut-report.xml 8✅ 19s
packages/@o3r/test-helpers/dist-test/ut-report.xml 1✅ 3s

✅ packages/@ama-sdk/core/dist-test/ut-report.xml

142 tests were completed in 26s with 141 passed, 0 failed and 1 skipped.

Test suite Passed Failed Skipped Time
Additional Params Request Plugin 6✅ 425ms
Api Key Request Plugin 2✅ 334ms
Api Key Request Plugin 6✅ 300ms
ApiConfigurationOverride Plugin 3✅ 212ms
BotProtectionFingerprint 12✅ 618ms
Client Facts request plugin 8✅ 660ms
Concurrent Fetch Plugin 3✅ 348ms
Custom info reply plugin 4✅ 412ms
DateTime 13✅ 326ms
Exception Reply Plugin 5✅ 224ms
Fetch API cache Request Plugin 3✅ 277ms
Fetch API credentials Request Plugin 2✅ 215ms
getResponseReviver - revivers by status code 8✅ 3s
JSON auth token request plugin 5✅ 952ms
Json Token 3✅ 267ms
JSON token utils 3✅ 274ms
Keepalive Request Plugin 1✅ 208ms
Mock intercept 5✅ 1⚪ 10s
Ng add @ama-sdk/core 1✅ 19s
PerformanceMetricPlugin 3✅ 479ms
Raw response info Reply plugin 4✅ 320ms
Retry Fetch Plugin 6✅ 672ms
Reviver Reply Plugin 3✅ 625ms
Revivers : 1✅ 203ms
Session ID Request Plugin 6✅ 561ms
SI Token Request Plugin 1✅ 533ms
Timeout Fetch Plugin 5✅ 677ms
Tokenizer Request Plugin 11✅ 10s
URL Rewrite Request Plugin 2✅ 526ms
Wait For Fetch Plugin 6✅ 528ms

✅ Additional Params Request Plugin

Additional Params Request Plugin should add a specified query param
  ✅ Additional Params Request Plugin should add a specified query param
Additional Params Request Plugin should add the query params returned by a function
  ✅ Additional Params Request Plugin should add the query params returned by a function
Additional Params Request Plugin should modify body
  ✅ Additional Params Request Plugin should modify body
Additional Params Request Sync Plugin should add a specified query param
  ✅ Additional Params Request Sync Plugin should add a specified query param
Additional Params Request Sync Plugin should add the query params returned by a function
  ✅ Additional Params Request Sync Plugin should add the query params returned by a function
Additional Params Request Sync Plugin should modify body
  ✅ Additional Params Request Sync Plugin should modify body

✅ Api Key Request Plugin

Api Key Request Plugin should add the API Key to the headers
  ✅ Api Key Request Plugin should add the API Key to the headers
Api Key Request Plugin should execute the function to add the API Key to the headers
  ✅ Api Key Request Plugin should execute the function to add the API Key to the headers

✅ Api Key Request Plugin

Api Key Request Plugin Static API key should be added to the default header.
  ✅ Api Key Request Plugin Static API key should be added to the default header.
Api Key Request Plugin Static API key should be added to the specified header.
  ✅ Api Key Request Plugin Static API key should be added to the specified header.
Api Key Request Plugin Static OID override should compute the right ama-ctx
  ✅ Api Key Request Plugin Static OID override should compute the right ama-ctx
Api Key Request Plugin API key and OID as functions that return strings should result in the right headers
  ✅ Api Key Request Plugin API key and OID as functions that return strings should result in the right headers
Api Key Request Plugin API key and OID as functions that return promises should result in the right headers
  ✅ Api Key Request Plugin API key and OID as functions that return promises should result in the right headers
Api Key Request Plugin Setting API key and OID using the setters should result in the right headers
  ✅ Api Key Request Plugin Setting API key and OID using the setters should result in the right headers

✅ ApiConfigurationOverride Plugin

ApiConfigurationOverride Plugin should add a specified string JWS
  ✅ ApiConfigurationOverride Plugin should add a specified string JWS
ApiConfigurationOverride Plugin should add a specified string JWS with a custom header name
  ✅ ApiConfigurationOverride Plugin should add a specified string JWS with a custom header name
ApiConfigurationOverride Plugin should add a specified dynamic JWS
  ✅ ApiConfigurationOverride Plugin should add a specified dynamic JWS

✅ BotProtectionFingerprint

BotProtectionFingerprint Retrievers impervaProtectionRetrieverFactory Should return undefined and log if no Protection object is received.
  ✅ BotProtectionFingerprint Retrievers impervaProtectionRetrieverFactory Should return undefined and log if no Protection object is received.
BotProtectionFingerprint Retrievers impervaProtectionRetrieverFactory Should return undefined and log if no Protection object is received within configured timeout.
  ✅ BotProtectionFingerprint Retrievers impervaProtectionRetrieverFactory Should return undefined and log if no Protection object is received within configured timeout.
BotProtectionFingerprint Retrievers impervaProtectionRetrieverFactory Should return undefined and log if token promise rejected.
  ✅ BotProtectionFingerprint Retrievers impervaProtectionRetrieverFactory Should return undefined and log if token promise rejected.
BotProtectionFingerprint Retrievers impervaProtectionRetrieverFactory Should return the token if everything happened within timeout values.
  ✅ BotProtectionFingerprint Retrievers impervaProtectionRetrieverFactory Should return the token if everything happened within timeout values.
BotProtectionFingerprint Retrievers akamaiTelemetryRetrieverFactory Should return undefined if bmak object doesn't exist.
  ✅ BotProtectionFingerprint Retrievers akamaiTelemetryRetrieverFactory Should return undefined if bmak object doesn't exist.
BotProtectionFingerprint Retrievers akamaiTelemetryRetrieverFactory Should return telemetry
  ✅ BotProtectionFingerprint Retrievers akamaiTelemetryRetrieverFactory Should return telemetry
BotProtectionFingerprint Plug-in Should add the fingerprint header if a fingerprint is found.
  ✅ BotProtectionFingerprint Plug-in Should add the fingerprint header if a fingerprint is found.
BotProtectionFingerprint Plug-in Should' add the fingerprint header if no fingerprint is found with no poller.
  ✅ BotProtectionFingerprint Plug-in Should' add the fingerprint header if no fingerprint is found with no poller.
BotProtectionFingerprint Plug-in Should add the fingerprint header if there is no fingerprint after the configured poller has finished running.
  ✅ BotProtectionFingerprint Plug-in Should add the fingerprint header if there is no fingerprint after the configured poller has finished running.
BotProtectionFingerprint Plug-in Should add the fingerprint header if initially not found but added before the poller ended.
  ✅ BotProtectionFingerprint Plug-in Should add the fingerprint header if initially not found but added before the poller ended.
BotProtectionFingerprint Plug-in Should poll twice if configured.
  ✅ BotProtectionFingerprint Plug-in Should poll twice if configured.
BotProtectionFingerprint Plug-in Shouldn't poll twice if configured.
  ✅ BotProtectionFingerprint Plug-in Shouldn't poll twice if configured.

✅ Client Facts request plugin

Client Facts request plugin Should encode the public facts as unsecured JWT
  ✅ Client Facts request plugin Should encode the public facts as unsecured JWT
Client Facts request plugin Should apply global facts to every requests to the default header
  ✅ Client Facts request plugin Should apply global facts to every requests to the default header
Client Facts request plugin Should allow to configure header name
  ✅ Client Facts request plugin Should allow to configure header name
Client Facts request plugin Should allow to change facts via a function
  ✅ Client Facts request plugin Should allow to change facts via a function
Client Facts request plugin Should allow to return facts only for specific requests thanks to factories
  ✅ Client Facts request plugin Should allow to return facts only for specific requests thanks to factories
Client Facts request plugin Should allow to set private facts
  ✅ Client Facts request plugin Should allow to set private facts
Client Facts request plugin Specific facts should have priority over global facts
  ✅ Client Facts request plugin Specific facts should have priority over global facts
Client Facts request plugin Factories should be allowed to be asynchronous and return a Promise of facts
  ✅ Client Facts request plugin Factories should be allowed to be asynchronous and return a Promise of facts

✅ Concurrent Fetch Plugin

Concurrent Fetch Plugin should start if the limit is not reach
  ✅ Concurrent Fetch Plugin should start if the limit is not reach
Concurrent Fetch Plugin should retrieve the fetchcall in the pool
  ✅ Concurrent Fetch Plugin should retrieve the fetchcall in the pool
Concurrent Fetch Plugin should start only when the pool is available
  ✅ Concurrent Fetch Plugin should start only when the pool is available

✅ Custom info reply plugin

Custom info reply plugin should add the content of the custom information in the reply
  ✅ Custom info reply plugin should add the content of the custom information in the reply
Custom info reply plugin should merge the contents of the two custom info
  ✅ Custom info reply plugin should merge the contents of the two custom info
Custom info reply plugin should invalidate custom info
  ✅ Custom info reply plugin should invalidate custom info
Custom info reply plugin should validate custom info
  ✅ Custom info reply plugin should validate custom info

✅ DateTime

DateTime should support timestamp
  ✅ DateTime should support timestamp
DateTime should support DateTime Utils
  ✅ DateTime should support DateTime Utils
DateTime should support a copy constructor
  ✅ DateTime should support a copy constructor
DateTime should support json conversions
  ✅ DateTime should support json conversions
DateTime should support date without time
  ✅ DateTime should support date without time
DateTime should support datetime without timezone
  ✅ DateTime should support datetime without timezone
DateTime should ignore timezone of datetime
  ✅ DateTime should ignore timezone of datetime
DateTime should handle daylight change
  ✅ DateTime should handle daylight change
Date should support timestamp
  ✅ Date should support timestamp
Date should support Date Utils
  ✅ Date should support Date Utils
Date should support a copy constructor
  ✅ Date should support a copy constructor
Date should support json conversions
  ✅ Date should support json conversions
Date should be converted to a Js DateTime
  ✅ Date should be converted to a Js DateTime

✅ Exception Reply Plugin

Exception Reply Plugin should throw on empty data and contains errors key if DAPI
  ✅ Exception Reply Plugin should throw on empty data and contains errors key if DAPI
Exception Reply Plugin should not throw on empty data and no errors key if DAPI
  ✅ Exception Reply Plugin should not throw on empty data and no errors key if DAPI
Exception Reply Plugin should not throw on empty data if not DAPI
  ✅ Exception Reply Plugin should not throw on empty data if not DAPI
Exception Reply Plugin should throw on nok status
  ✅ Exception Reply Plugin should throw on nok status
Exception Reply Plugin should not throw if there is already an exception
  ✅ Exception Reply Plugin should not throw if there is already an exception

✅ Fetch API cache Request Plugin

Fetch API cache Request Plugin cache should be set correctly
  ✅ Fetch API cache Request Plugin cache should be set correctly
Fetch API cache Request Plugin should set Cache-Control and Pragma header to no-cache in the request
  ✅ Fetch API cache Request Plugin should set Cache-Control and Pragma header to no-cache in the request
Fetch API cache Request Plugin should not set Cache-Control header in the request
  ✅ Fetch API cache Request Plugin should not set Cache-Control header in the request

✅ Fetch API credentials Request Plugin

Fetch API credentials Request Plugin credentials should be set to same-origin by default
  ✅ Fetch API credentials Request Plugin credentials should be set to same-origin by default
Fetch API credentials Request Plugin credentials should be set correctly
  ✅ Fetch API credentials Request Plugin credentials should be set correctly

✅ getResponseReviver - revivers by status code

getResponseReviver - revivers by status code should not return a reviver for a non ok response
  ✅ getResponseReviver - revivers by status code should not return a reviver for a non ok response
getResponseReviver - revivers by status code should return a reason but not reviver for a 204 No Content Response
  ✅ getResponseReviver - revivers by status code should return a reason but not reviver for a 204 No Content Response
getResponseReviver - revivers by status code should return the status code's reviver
  ✅ getResponseReviver - revivers by status code should return the status code's reviver
getResponseReviver - revivers by status code should fallback on the first defined status if the status code's reviver is not defined
  ✅ getResponseReviver - revivers by status code should fallback on the first defined status if the status code's reviver is not defined
getResponseReviver - revivers by status code should not fallback on 204 (No Content)'s reviver
  ✅ getResponseReviver - revivers by status code should not fallback on 204 (No Content)'s reviver
getResponseReviver - revivers by status code should not fallback if the feature is deactivated
  ✅ getResponseReviver - revivers by status code should not fallback if the feature is deactivated
getResponseReviver - reviver as function should not return a reviver for a non ok response
  ✅ getResponseReviver - reviver as function should not return a reviver for a non ok response
getResponseReviver - reviver as function should only return the reviver if the endpoint reviver is a function or an undefined object
  ✅ getResponseReviver - reviver as function should only return the reviver if the endpoint reviver is a function or an undefined object

✅ JSON auth token request plugin

JSON auth token request plugin should add a Bearer in the header
  ✅ JSON auth token request plugin should add a Bearer in the header
JSON auth token request plugin should check that the jws token is well formatted
  ✅ JSON auth token request plugin should check that the jws token is well formatted
JSON auth token request plugin should check that the header is properly set
  ✅ JSON auth token request plugin should check that the header is properly set
JSON auth token request plugin should check that the payload is properly set
  ✅ JSON auth token request plugin should check that the payload is properly set
JSON auth token request plugin should check the signature validity
  ✅ JSON auth token request plugin should check the signature validity

✅ Json Token

Json Token request plugin should add Authorization header
  ✅ Json Token request plugin should add Authorization header
Json Token request plugin should not add Authorization if no token
  ✅ Json Token request plugin should not add Authorization if no token
Json Token reply plugin should store the received token
  ✅ Json Token reply plugin should store the received token

✅ JSON token utils

JSON token utils should encode and decode in base64 properly a string that contains characters occupying more than 1 byte
  ✅ JSON token utils should encode and decode in base64 properly a string that contains characters occupying more than 1 byte
JSON token utils should encode and decode in base64Url properly a string that contains characters occupying more than 1 byte
  ✅ JSON token utils should encode and decode in base64Url properly a string that contains characters occupying more than 1 byte
JSON Web Encryption Token should generate a proper JWE Token
  ✅ JSON Web Encryption Token should generate a proper JWE Token

✅ Keepalive Request Plugin

Keepalive Request Plugin keepalive should be set to true
  ✅ Keepalive Request Plugin keepalive should be set to true

✅ Mock intercept

Mock intercept request plugin should do nothing if disabled is true
  ✅ Mock intercept request plugin should do nothing if disabled is true
Mock intercept request plugin should intercept the request
  ⚪ Mock intercept request plugin should intercept the request
Mock intercept fetch plugin when using an initialization function should call initialize fn
  ✅ Mock intercept fetch plugin when using an initialization function should call initialize fn
Mock intercept fetch plugin when using an initialization function should throw if there is no request plugin
  ✅ Mock intercept fetch plugin when using an initialization function should throw if there is no request plugin
Mock intercept with delay should delay the response of the specific number
  ✅ Mock intercept with delay should delay the response of the specific number
Mock intercept with delay should delay the response based on callback
  ✅ Mock intercept with delay should delay the response based on callback

✅ Ng add @ama-sdk/core

Ng add @ama-sdk/core should update imports
  ✅ Ng add @ama-sdk/core should update imports

✅ PerformanceMetricPlugin

PerformanceMetricPlugin should generate new mark ids
  ✅ PerformanceMetricPlugin should generate new mark ids
PerformanceMetricPlugin should include a new mark when closing
  ✅ PerformanceMetricPlugin should include a new mark when closing
PerformanceMetricPlugin should include a new mark when closing with error
  ✅ PerformanceMetricPlugin should include a new mark when closing with error

✅ Raw response info Reply plugin

Raw response info Reply plugin should add response object
  ✅ Raw response info Reply plugin should add response object
Raw response info Reply plugin should keep original data
  ✅ Raw response info Reply plugin should keep original data
Raw response info Reply plugin should invalidate response info
  ✅ Raw response info Reply plugin should invalidate response info
Raw response info Reply plugin should validate response info
  ✅ Raw response info Reply plugin should validate response info

✅ Retry Fetch Plugin

Retry Fetch Plugin should not retry on success
  ✅ Retry Fetch Plugin should not retry on success
Retry Fetch Plugin should not retry if refused by the condition
  ✅ Retry Fetch Plugin should not retry if refused by the condition
Retry Fetch Plugin should retry on fetch rejection
  ✅ Retry Fetch Plugin should retry on fetch rejection
Retry Fetch Plugin should retry on fetch rejection with wait
  ✅ Retry Fetch Plugin should retry on fetch rejection with wait
Retry Fetch Plugin should retry on not ok call
  ✅ Retry Fetch Plugin should retry on not ok call
Retry Fetch Plugin should retry on not ok call with wait
  ✅ Retry Fetch Plugin should retry on not ok call with wait

✅ Reviver Reply Plugin

Reviver Reply Plugin should revive a specific data
  ✅ Reviver Reply Plugin should revive a specific data
Reviver Reply Plugin should revive a specific data and dictionary
  ✅ Reviver Reply Plugin should revive a specific data and dictionary
Reviver Reply Plugin should revive empty object in case of undefined data
  ✅ Reviver Reply Plugin should revive empty object in case of undefined data

✅ Revivers :

Revivers : reviveDictionarizedArray
  ✅ Revivers : reviveDictionarizedArray

✅ Session ID Request Plugin

Session ID Request Plugin should have the default id to Ama-Client-Ref
  ✅ Session ID Request Plugin should have the default id to Ama-Client-Ref
Session ID Request Plugin should add the session ID to the headers
  ✅ Session ID Request Plugin should add the session ID to the headers
Session ID Request Plugin second plugin with same header should use the ID that's already in memory
  ✅ Session ID Request Plugin second plugin with same header should use the ID that's already in memory
Session ID Request Plugin second plugin with different header should generate a new session ID
  ✅ Session ID Request Plugin second plugin with different header should generate a new session ID
Session ID Request Plugin should generate a correctly formatted ID
  ✅ Session ID Request Plugin should generate a correctly formatted ID
Session ID Request Plugin should be possible to deactivate the request ID part
  ✅ Session ID Request Plugin should be possible to deactivate the request ID part

✅ SI Token Request Plugin

SI Token Request Plugin should add a specified SI Tokens in query params
  ✅ SI Token Request Plugin should add a specified SI Tokens in query params

✅ Timeout Fetch Plugin

Timeout Fetch Plugin should reject on timeout
  ✅ Timeout Fetch Plugin should reject on timeout
Timeout Fetch Plugin should not reject on fetch rejection
  ✅ Timeout Fetch Plugin should not reject on fetch rejection
Timeout Fetch Plugin should forward the fetch response
  ✅ Timeout Fetch Plugin should forward the fetch response
Timeout Fetch Plugin should not reject if the timeout has been paused and reject if restarted
  ✅ Timeout Fetch Plugin should not reject if the timeout has been paused and reject if restarted
Timeout Fetch Plugin should take into account pause events triggered before the call
  ✅ Timeout Fetch Plugin should take into account pause events triggered before the call

✅ Tokenizer Request Plugin

Tokenizer Request Plugin should replace sensitive parameters with tokens
  ✅ Tokenizer Request Plugin should replace sensitive parameters with tokens
Tokenizer Request Plugin should put token-value associations in custom header if provided
  ✅ Tokenizer Request Plugin should put token-value associations in custom header if provided
Tokenizer Request Plugin should keep default parameters and print an error if tokenization is disabled
  ✅ Tokenizer Request Plugin should keep default parameters and print an error if tokenization is disabled
Tokenizer Request Plugin should keep default parameters if no token-value associations is provided
  ✅ Tokenizer Request Plugin should keep default parameters if no token-value associations is provided
Tokenizer Request Plugin should use JWT if no key specified
  ✅ Tokenizer Request Plugin should use JWT if no key specified
Tokenizer Request Plugin should use JWE if a key is specified
  ✅ Tokenizer Request Plugin should use JWE if a key is specified
Tokenizer Request Plugin should throw by default if an exception is raised for JWE encoder
  ✅ Tokenizer Request Plugin should throw by default if an exception is raised for JWE encoder
Tokenizer Request Plugin should handle errors silently if an exception is raised for JWE encoder
  ✅ Tokenizer Request Plugin should handle errors silently if an exception is raised for JWE encoder
Tokenizer Request Plugin should skip PII tokenization and put DeepLink token in corresponding header when DeepLink token is provided
  ✅ Tokenizer Request Plugin should skip PII tokenization and put DeepLink token in corresponding header when DeepLink token is provided
Tokenizer Request Plugin should put DeepLink challenge answers in corresponding header when provided
  ✅ Tokenizer Request Plugin should put DeepLink challenge answers in corresponding header when provided
Tokenizer Request Plugin Should not loose additional parameters not expected for the actual request
  ✅ Tokenizer Request Plugin Should not loose additional parameters not expected for the actual request

✅ URL Rewrite Request Plugin

URL Rewrite Request Plugin should call the URL rewriter
  ✅ URL Rewrite Request Plugin should call the URL rewriter
URL Rewrite Request Plugin should have updated the url
  ✅ URL Rewrite Request Plugin should have updated the url

✅ Wait For Fetch Plugin

Wait For Fetch Plugin should not start if timeout
  ✅ Wait For Fetch Plugin should not start if timeout
Wait For Fetch Plugin should start if promise condition passed
  ✅ Wait For Fetch Plugin should start if promise condition passed
Wait For Fetch Plugin should start if condition passed
  ✅ Wait For Fetch Plugin should start if condition passed
Wait For Fetch Plugin should call the callback function on success
  ✅ Wait For Fetch Plugin should call the callback function on success
Wait For Fetch Plugin should call the callback function with the correct data
  ✅ Wait For Fetch Plugin should call the callback function with the correct data
Wait For Fetch Plugin should call the callback function on failure
  ✅ Wait For Fetch Plugin should call the callback function on failure

✅ packages/@o3r/eslint-plugin/dist-test/ut-report.xml

58 tests were completed in 25s with 58 passed, 0 failed and 0 skipped.

Test suite Passed Failed Skipped Time
json-dependency-versions-harmonize 13✅ 17s
json-dependency-versions-harmonize 2✅ 16s
matching-configuration-name 6✅ 2s
no-folder-import-for-module 8✅ 4s
no-inner-html 3✅ 2s
no-multiple-type-configuration-property 5✅ 2s
o3r-categories-tags 5✅ 4s
o3r-widget-tags 9✅ 16s
template-async-number-limitation 7✅ 2s

✅ json-dependency-versions-harmonize

json-dependency-versions-harmonize valid {"dependencies":{"myDep":"^2.0.0"}}
  ✅ json-dependency-versions-harmonize valid {"dependencies":{"myDep":"^2.0.0"}}
json-dependency-versions-harmonize valid {"dependencies":{"myDep":"~2.0.0"}}
  ✅ json-dependency-versions-harmonize valid {"dependencies":{"myDep":"~2.0.0"}}
json-dependency-versions-harmonize valid {"dependencies":{"myOtherDep":"~2.0.0"}}
  ✅ json-dependency-versions-harmonize valid {"dependencies":{"myOtherDep":"~2.0.0"}}
json-dependency-versions-harmonize valid {"dependencies":{"myOtherDep":"~3.0.0"}}
  ✅ json-dependency-versions-harmonize valid {"dependencies":{"myOtherDep":"~3.0.0"}}
json-dependency-versions-harmonize valid {"dependencies":{"myUniqueDep":"https://invalid-range.com"}}
  ✅ json-dependency-versions-harmonize valid {"dependencies":{"myUniqueDep":"https://invalid-range.com"}}
json-dependency-versions-harmonize valid {"dependencies":{"myDep":"1.0.0"}}
  ✅ json-dependency-versions-harmonize valid {"dependencies":{"myDep":"1.0.0"}}
  ✅ json-dependency-versions-harmonize valid {"dependencies":{"myDep":"1.0.0"}}
json-dependency-versions-harmonize valid {"dependencies":{"myOtherDep":"1.0.0"}}
  ✅ json-dependency-versions-harmonize valid {"dependencies":{"myOtherDep":"1.0.0"}}
json-dependency-versions-harmonize valid {"peerDependencies":{"myOtherDep":"^2.0.0"}}
  ✅ json-dependency-versions-harmonize valid {"peerDependencies":{"myOtherDep":"^2.0.0"}}
json-dependency-versions-harmonize invalid {"dependencies":{"myDep":"1.0.0"}}
  ✅ json-dependency-versions-harmonize invalid {"dependencies":{"myDep":"1.0.0"}}
json-dependency-versions-harmonize invalid {"dependencies":{"myDep":"https://invalid-range.com"}}
  ✅ json-dependency-versions-harmonize invalid {"dependencies":{"myDep":"https://invalid-range.com"}}
json-dependency-versions-harmonize invalid {"peerDependencies":{"myOtherDep":"^2.0.0"}}
  ✅ json-dependency-versions-harmonize invalid {"peerDependencies":{"myOtherDep":"^2.0.0"}}
json-dependency-versions-harmonize invalid {"peerDependencies":{"myOtherDep":"^1.0.0"}}
  ✅ json-dependency-versions-harmonize invalid {"peerDependencies":{"myOtherDep":"^1.0.0"}}

✅ json-dependency-versions-harmonize

json-dependency-versions-harmonize valid 
nodeLinker: pnp

packageExtensions:
  "myOtherDep@~1.0.0":
    peerDependencies:
      "myDep": ^2.0.0
  "@nx/angular@^17.1.1":
    dependencies:
      "myDep": ^2.0.0
  "@nx/core@^17.1.1":
    toIgnore:
      "myDep": ~1.0.0

  ✅ json-dependency-versions-harmonize valid 
nodeLinker: pnp

packageExtensions:
  "myOtherDep@~1.0.0":
    peerDependencies:
      "myDep": ^2.0.0
  "@nx/angular@^17.1.1":
    dependencies:
      "myDep": ^2.0.0
  "@nx/core@^17.1.1":
    toIgnore:
      "myDep": ~1.0.0
json-dependency-versions-harmonize invalid 
nodeLinker: pnp

packageExtensions:
  "myOtherDep@~1.0.0":
    peerDependencies:
      "myDep": ~1.0.0
  "@nx/angular@^17.1.1":
    dependencies:
      "myDep": ^1.0.0
  "@nx/core@^17.1.1":
    toIgnore:
      "myDep": ~1.0.0

  ✅ json-dependency-versions-harmonize invalid 
nodeLinker: pnp

packageExtensions:
  "myOtherDep@~1.0.0":
    peerDependencies:
      "myDep": ~1.0.0
  "@nx/angular@^17.1.1":
    dependencies:
      "myDep": ^1.0.0
  "@nx/core@^17.1.1":
    toIgnore:
      "myDep": ~1.0.0

✅ matching-configuration-name

matching-configuration-name valid 
export interface MyFirstConfig extends Configuration {}

export const MY_CONFIG_ID = computeConfigurationName('MyFirstConfig', '@example/config');
    
  ✅ matching-configuration-name valid 
export interface MyFirstConfig extends Configuration {}

export const MY_CONFIG_ID = computeConfigurationName('MyFirstConfig', '@example/config');
matching-configuration-name valid 
export interface MySecondConfig extends Configuration {}
export interface MyThirdConfig extends Configuration {}

export const MY_CONFIG_ID = computeConfigurationName('MyThirdConfig', '@example/config');
    
  ✅ matching-configuration-name valid 
export interface MySecondConfig extends Configuration {}
export interface MyThirdConfig extends Configuration {}

export const MY_CONFIG_ID = computeConfigurationName('MyThirdConfig', '@example/config');
matching-configuration-name valid 
export interface MyFourthConfig extends Configuration {}
export interface MyFifthConfig extends Configuration {}

export const MY_CONFIG_ID = computeConfigurationName('MyFourthConfig', '@example/config');
    
  ✅ matching-configuration-name valid 
export interface MyFourthConfig extends Configuration {}
export interface MyFifthConfig extends Configuration {}

export const MY_CONFIG_ID = computeConfigurationName('MyFourthConfig', '@example/config');
matching-configuration-name valid 
export const MY_CONFIG_ID = computeConfigurationName('MyConfig', '@example/config');
    
  ✅ matching-configuration-name valid 
export const MY_CONFIG_ID = computeConfigurationName('MyConfig', '@example/config');
matching-configuration-name invalid 
export interface MyConfig extends Configuration {}

export const MY_CONFIG_ID = computeConfigurationName('InvalidName', '@example/config');
    
  ✅ matching-configuration-name invalid 
export interface MyConfig extends Configuration {}

export const MY_CONFIG_ID = computeConfigurationName('InvalidName', '@example/config');
matching-configuration-name invalid 
export interface MyFirstConfig extends Configuration {}
export interface MySecondConfig extends Configuration {}

export const MY_CONFIG_ID = computeConfigurationName('InvalidName', '@example/config');
    
  ✅ matching-configuration-name invalid 
export interface MyFirstConfig extends Configuration {}
export interface MySecondConfig extends Configuration {}

export const MY_CONFIG_ID = computeConfigurationName('InvalidName', '@example/config');

✅ no-folder-import-for-module

no-folder-import-for-module valid import {myImport} from "library";
  ✅ no-folder-import-for-module valid import {myImport} from "library";
no-folder-import-for-module valid import {myImportModule} from "library";
  ✅ no-folder-import-for-module valid import {myImportModule} from "library";
no-folder-import-for-module valid import {myImport} from "./local";
  ✅ no-folder-import-for-module valid import {myImport} from "./local";
no-folder-import-for-module valid import {myImportModule} from "./local/index";
  ✅ no-folder-import-for-module valid import {myImportModule} from "./local/index";
  ✅ no-folder-import-for-module valid import {myImportModule} from "./local/index";
no-folder-import-for-module invalid import {myImportModule} from "./local";
  ✅ no-folder-import-for-module invalid import {myImportModule} from "./local";
no-folder-import-for-module invalid import {randomImport, myImportModule} from "./local";
  ✅ no-folder-import-for-module invalid import {randomImport, myImportModule} from "./local";
no-folder-import-for-module invalid import {myImportModule} from "./empty-local";
  ✅ no-folder-import-for-module invalid import {myImportModule} from "./empty-local";

✅ no-inner-html

no-inner-html valid <p innerText="test"></p>
  ✅ no-inner-html valid <p innerText="test"></p>
no-inner-html invalid <p innerHTML="test"></p>
  ✅ no-inner-html invalid <p innerHTML="test"></p>
no-inner-html invalid <p innerHtml="test"></p>
  ✅ no-inner-html invalid <p innerHtml="test"></p>

✅ no-multiple-type-configuration-property

no-multiple-type-configuration-property valid 
export interface Config extends Configuration {
  prop1: string;
  prop2: 'a' | 'b' | 'c';
  prop3: 1 | 2 | 3;
}

  ✅ no-multiple-type-configuration-property valid 
export interface Config extends Configuration {
  prop1: string;
  prop2: 'a' | 'b' | 'c';
  prop3: 1 | 2 | 3;
}
no-multiple-type-configuration-property valid export interface A { prop1: string | number; }
  ✅ no-multiple-type-configuration-property valid export interface A { prop1: string | number; }
no-multiple-type-configuration-property invalid 
export interface Config extends Configuration {
  prop1: string | number | boolean;
  prop2: 'a' | 'b' | 'c';
  prop3: 1 | 2 | 3;
}

  ✅ no-multiple-type-configuration-property invalid 
export interface Config extends Configuration {
  prop1: string | number | boolean;
  prop2: 'a' | 'b' | 'c';
  prop3: 1 | 2 | 3;
}
no-multiple-type-configuration-property invalid 
export interface Config extends Configuration {
  prop1: string & number;
  prop2: 'a' | 'b' | 'c';
  prop3: 1 | 2 | 3;
}

  ✅ no-multiple-type-configuration-property invalid 
export interface Config extends Configuration {
  prop1: string & number;
  prop2: 'a' | 'b' | 'c';
  prop3: 1 | 2 | 3;
}
no-multiple-type-configuration-property invalid 
export interface Config extends Configuration {
  prop1: 'a' | 1;
  prop2: 'a' | 'b' | 'c';
  prop3: 1 | 2 | 3;
}

  ✅ no-multiple-type-configuration-property invalid 
export interface Config extends Configuration {
  prop1: 'a' | 1;
  prop2: 'a' | 'b' | 'c';
  prop3: 1 | 2 | 3;
}

✅ o3r-categories-tags

o3r-categories-tags valid 
/**
 * @o3rCategories local
 */
export interface Config extends Configuration {
  /**
   * @o3rCategory local
   */
  prop1: string;
  /**
   * @o3rCategory global
   */
  prop2: string;
}

  ✅ o3r-categories-tags valid 
/**
 * @o3rCategories local
 */
export interface Config extends Configuration {
  /**
   * @o3rCategory local
   */
  prop1: string;
  /**
   * @o3rCategory global
   */
  prop2: string;
}
o3r-categories-tags invalid 
/**
 * @o3rCategories global
 */
export interface Config extends Configuration {
  /**
   * @o3rCategory global
   */
  prop1: string;
  /**
   * @o3rCategory global
   */
  prop2: string;
}

  ✅ o3r-categories-tags invalid 
/**
 * @o3rCategories global
 */
export interface Config extends Configuration {
  /**
   * @o3rCategory global
   */
  prop1: string;
  /**
   * @o3rCategory global
   */
  prop2: string;
}
o3r-categories-tags invalid 
/**
 * @o3rCategories local
 */
export interface Config extends Configuration {
  /**
   * @o3rCategory local
   * @o3rCategory local
   */
  prop1: string;
  /**
   * @o3rCategory global
   */
  prop2: string;
}

  ✅ o3r-categories-tags invalid 
/**
 * @o3rCategories local
 */
export interface Config extends Configuration {
  /**
   * @o3rCategory local
   * @o3rCategory local
   */
  prop1: string;
  /**
   * @o3rCategory global
   */
  prop2: string;
}
o3r-categories-tags invalid 
/**
 * @o3rCategories local
 */
export interface Config extends Configuration {
  /**
   * @o3rCategory undefinedCategory
   */
  prop1: string;
  /**
   * @o3rCategory global
   */
  prop2: string;
}

  ✅ o3r-categories-tags invalid 
/**
 * @o3rCategories local
 */
export interface Config extends Configuration {
  /**
   * @o3rCategory undefinedCategory
   */
  prop1: string;
  /**
   * @o3rCategory global
   */
  prop2: string;
}
o3r-categories-tags invalid 
/**
 * @o3rCategories local
 */
export interface Config {
  /**
   * @o3rCategory local
   */
  prop1: string;
  /**
   * @o3rCategory global
   */
  prop2: string;
}

  ✅ o3r-categories-tags invalid 
/**
 * @o3rCategories local
 */
export interface Config {
  /**
   * @o3rCategory local
   */
  prop1: string;
  /**
   * @o3rCategory global
   */
  prop2: string;
}

✅ o3r-widget-tags

o3r-widget-tags valid 
export interface Config extends Configuration {
  /**
   * @o3rWidget supportedType
   * @o3rWidgetParam supportedParam "valid value"
   */
  prop: string;
}

  ✅ o3r-widget-tags valid 
export interface Config extends Configuration {
  /**
   * @o3rWidget supportedType
   * @o3rWidgetParam supportedParam "valid value"
   */
  prop: string;
}
o3r-widget-tags invalid 
export interface Config extends Configuration {
  /**
   * @o3rWidget supportedType
   * @o3rWidget supportedType
   * @o3rWidgetParam supportedParam "valid value"
   */
  prop: string;
}

  ✅ o3r-widget-tags invalid 
export interface Config extends Configuration {
  /**
   * @o3rWidget supportedType
   * @o3rWidget supportedType
   * @o3rWidgetParam supportedParam "valid value"
   */
  prop: string;
}
o3r-widget-tags invalid 
export interface Config extends Configuration {
  /**
   * @o3rWidget supportedType
   * @o3rWidgetParam supportedParam "valid value"
   * @o3rWidgetParam supportedParam "valid value"
   */
  prop: string;
}

  ✅ o3r-widget-tags invalid 
export interface Config extends Configuration {
  /**
   * @o3rWidget supportedType
   * @o3rWidgetParam supportedParam "valid value"
   * @o3rWidgetParam supportedParam "valid value"
   */
  prop: string;
}
o3r-widget-tags invalid 
export interface Config extends Configuration {
  /**
   *  supportedType
   * @o3rWidgetParam supportedParam "valid value"
   */
  prop: string;
}

  ✅ o3r-widget-tags invalid 
export interface Config extends Configuration {
  /**
   *  supportedType
   * @o3rWidgetParam supportedParam "valid value"
   */
  prop: string;
}
o3r-widget-tags invalid 
export interface Config extends Configuration {
  /**
   * @o3rWidget unsupportedType
   * @o3rWidgetParam supportedParam "valid value"
   */
  prop: string;
}

  ✅ o3r-widget-tags invalid 
export interface Config extends Configuration {
  /**
   * @o3rWidget unsupportedType
   * @o3rWidgetParam supportedParam "valid value"
   */
  prop: string;
}
o3r-widget-tags invalid 
export interface Config extends Configuration {
  /**
   * @o3rWidget supportedType
   * @o3rWidgetParam unsupportedParam "valid value"
   */
  prop: string;
}

  ✅ o3r-widget-tags invalid 
export interface Config extends Configuration {
  /**
   * @o3rWidget supportedType
   * @o3rWidgetParam unsupportedParam "valid value"
   */
  prop: string;
}
o3r-widget-tags invalid 
export interface Config extends Configuration {
  /**
   * @o3rWidget supportedType
   * @o3rWidgetParam supportedParam false
   */
  prop: string;
}

  ✅ o3r-widget-tags invalid 
export interface Config extends Configuration {
  /**
   * @o3rWidget supportedType
   * @o3rWidgetParam supportedParam false
   */
  prop: string;
}
o3r-widget-tags invalid 
export interface Config {
  /**
   * @o3rWidget supportedType
   * @o3rWidgetParam supportedParam "valid value"
   */
  prop: string;
}

  ✅ o3r-widget-tags invalid 
export interface Config {
  /**
   * @o3rWidget supportedType
   * @o3rWidgetParam supportedParam "valid value"
   */
  prop: string;
}
o3r-widget-tags invalid 
        export interface Config extends Configuration {
          /**
           * @o3rWidget widgetWithRequiredParam
           */
          prop: string;
        }
      
  ✅ o3r-widget-tags invalid 
        export interface Config extends Configuration {
          /**
           * @o3rWidget widgetWithRequiredParam
           */
          prop: string;
        }

✅ template-async-number-limitation

template-async-number-limitation valid 
  ✅ template-async-number-limitation valid
template-async-number-limitation valid <div ngIf="obs$ | async"></div>
  ✅ template-async-number-limitation valid <div ngIf="obs$ | async"></div>
template-async-number-limitation valid <div ngIf="obs$ | async | async | async | async | async | async"></div>
  ✅ template-async-number-limitation valid <div ngIf="obs$ | async | async | async | async | async | async"></div>
template-async-number-limitation valid <div ngIf="obs$ | async" [translate]="translations$ | async"></div>
  ✅ template-async-number-limitation valid <div ngIf="obs$ | async" [translate]="translations$ | async"></div>
template-async-number-limitation invalid should fail when there are more than 2 async pipes on a single HTML element
  ✅ template-async-number-limitation invalid should fail when there are more than 2 async pipes on a single HTML element
template-async-number-limitation invalid <div ngIf="obs$ | async" [translate]="translations$ | async"></div>
  ✅ template-async-number-limitation invalid <div ngIf="obs$ | async" [translate]="translations$ | async"></div>
template-async-number-limitation invalid <div ngIf="obs$ | async"
[translate]="translations$ | async">
</div>
  ✅ template-async-number-limitation invalid <div ngIf="obs$ | async"
[translate]="translations$ | async">
</div>

✅ packages/@o3r/schematics/dist-test/ut-report.xml

14 tests were completed in 19s with 14 passed, 0 failed and 0 skipped.

Test suite Passed Failed Skipped Time
addVsCodeRecommendations 3✅ 10s
Devtools Registration 6✅ 17s
Get schematics options 5✅ 13s

✅ addVsCodeRecommendations

addVsCodeRecommendations should add recommendation to existing file
  ✅ addVsCodeRecommendations should add recommendation to existing file
addVsCodeRecommendations should avoid duplication in recommendation
  ✅ addVsCodeRecommendations should avoid duplication in recommendation
addVsCodeRecommendations should create file if not extension,json file
  ✅ addVsCodeRecommendations should create file if not extension,json file

✅ Devtools Registration

Devtools Registration should inject service in the main file
  ✅ Devtools Registration should inject service in the main file
Devtools Registration should inject a service if `bootstrapApplication` found
  ✅ Devtools Registration should inject a service if `bootstrapApplication` found
Devtools Registration should not reinject a service
  ✅ Devtools Registration should not reinject a service
Devtools Registration should not inject a service if no name provided
  ✅ Devtools Registration should not inject a service if no name provided
Devtools Registration should not inject a service if no main file found
  ✅ Devtools Registration should not inject a service if no main file found
Devtools Registration should not inject a service if no `bootstrapModule` found
  ✅ Devtools Registration should not inject a service if no `bootstrapModule` found

✅ Get schematics options

Get schematics options should return the ng-add generic options followed by overall generic options
  ✅ Get schematics options should return the ng-add generic options followed by overall generic options
Get schematics options should return the generic options when no matches for schematics name
  ✅ Get schematics options should return the generic options when no matches for schematics name
Get schematics options should return the specific o3r/core ng add, followed by ng-add generic options, followed by overall generic options
  ✅ Get schematics options should return the specific o3r/core ng add, followed by ng-add generic options, followed by overall generic options
Get schematics options should return closest matching when no generic options present
  ✅ Get schematics options should return closest matching when no generic options present
Get schematics options should return undefined when no generic options present and no matching
  ✅ Get schematics options should return undefined when no generic options present and no matching

✅ packages/@o3r/telemetry/dist-test/ut-report.xml

8 tests were completed in 19s with 8 passed, 0 failed and 0 skipped.

Test suite Passed Failed Skipped Time
Builder with metrics 4✅ 14s
createSchematicWithMetricsIfInstalled 4✅ 14s

✅ Builder with metrics

Builder with metrics should run the original builder with the same options
  ✅ Builder with metrics should run the original builder with the same options
Builder with metrics should throw the same error as the original one
  ✅ Builder with metrics should throw the same error as the original one
Builder with metrics should throw if the builder function is a rejected Promise
  ✅ Builder with metrics should throw if the builder function is a rejected Promise
Builder with metrics should works if we chain builder wrapper
  ✅ Builder with metrics should works if we chain builder wrapper

✅ createSchematicWithMetricsIfInstalled

createSchematicWithMetricsIfInstalled should call the original schematic with the options and log data
  ✅ createSchematicWithMetricsIfInstalled should call the original schematic with the options and log data
createSchematicWithMetricsIfInstalled should works if we chain schematic wrapper
  ✅ createSchematicWithMetricsIfInstalled should works if we chain schematic wrapper
createSchematicWithMetricsIfInstalled should throw the original error and log the error in the data
  ✅ createSchematicWithMetricsIfInstalled should throw the original error and log the error in the data
createSchematicWithMetricsIfInstalled should throw if the rule is a rejected Promise
  ✅ createSchematicWithMetricsIfInstalled should throw if the rule is a rejected Promise

✅ packages/@o3r/test-helpers/dist-test/ut-report.xml

1 tests were completed in 3s with 1 passed, 0 failed and 0 skipped.

Test suite Passed Failed Skipped Time
undefined 1✅ 2s

✅ undefined

 should be removed as soon as we have one test in this package
  ✅ should be removed as soon as we have one test in this package