@cratis/arc 18.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/GetHttpHeaders.ts +7 -0
- package/Globals.ts +14 -0
- package/ICanBeConfigured.ts +33 -0
- package/README.md +65 -0
- package/UrlHelpers.ts +71 -0
- package/commands/Command.ts +209 -0
- package/commands/CommandResult.ts +203 -0
- package/commands/CommandResults.ts +105 -0
- package/commands/CommandValidator.ts +17 -0
- package/commands/ICommand.ts +82 -0
- package/commands/ICommandResult.ts +60 -0
- package/commands/for_Command/CommandWithRouteParams.ts +34 -0
- package/commands/for_Command/SomeCommand.ts +34 -0
- package/commands/for_Command/given/a_command.ts +18 -0
- package/commands/for_Command/when_clearing_the_command.ts +17 -0
- package/commands/for_Command/when_executing/and_command_route_not_found.ts +26 -0
- package/commands/for_Command/when_executing/and_fetch_throws_exception.ts +24 -0
- package/commands/for_Command/when_executing/with_command_properties.ts +40 -0
- package/commands/for_Command/when_executing/with_custom_http_headers.ts +60 -0
- package/commands/for_Command/when_executing/with_microservice_header.ts +55 -0
- package/commands/for_Command/when_executing/with_origin_and_api_base_path.ts +51 -0
- package/commands/for_Command/when_executing/with_route_parameters.ts +58 -0
- package/commands/for_Command/when_executing/with_successful_response.ts +51 -0
- package/commands/for_Command/when_property_changed_value_that_is_different_from_initial_value.ts +16 -0
- package/commands/for_Command/when_property_changed_value_that_is_same_as_initial_value.ts +16 -0
- package/commands/for_Command/when_property_changes_and_initial_value_is_undefined.ts +12 -0
- package/commands/for_Command/when_property_changes_and_there_is_a_callback.ts +15 -0
- package/commands/for_Command/when_property_has_changed_and_we_revert.ts +15 -0
- package/commands/for_Command/when_setting_initial_values_after_property_changed.ts +17 -0
- package/commands/for_Command/when_validating/and_fetch_throws_exception.ts +24 -0
- package/commands/for_Command/when_validating/and_validation_endpoint_not_found.ts +26 -0
- package/commands/for_Command/when_validating/does_not_update_initial_values.ts +39 -0
- package/commands/for_Command/when_validating/with_successful_response.ts +47 -0
- package/commands/for_Command/when_validating/with_validation_errors.ts +45 -0
- package/commands/for_CommandResult/when_chaining_callbacks/and_result_has_exceptions.ts +54 -0
- package/commands/for_CommandResult/when_chaining_callbacks/and_result_is_invalid.ts +53 -0
- package/commands/for_CommandResult/when_chaining_callbacks/and_result_is_successful.ts +42 -0
- package/commands/for_CommandResult/when_chaining_callbacks/and_result_is_unauthorized.ts +43 -0
- package/commands/index.ts +9 -0
- package/deepEqual.ts +23 -0
- package/dist/cjs/GetHttpHeaders.d.ts +2 -0
- package/dist/cjs/GetHttpHeaders.d.ts.map +1 -0
- package/dist/cjs/Globals.d.ts +7 -0
- package/dist/cjs/Globals.d.ts.map +1 -0
- package/dist/cjs/Globals.js +10 -0
- package/dist/cjs/Globals.js.map +1 -0
- package/dist/cjs/ICanBeConfigured.d.ts +8 -0
- package/dist/cjs/ICanBeConfigured.d.ts.map +1 -0
- package/dist/cjs/UrlHelpers.d.ts +9 -0
- package/dist/cjs/UrlHelpers.d.ts.map +1 -0
- package/dist/cjs/UrlHelpers.js +43 -0
- package/dist/cjs/UrlHelpers.js.map +1 -0
- package/dist/cjs/commands/Command.d.ts +41 -0
- package/dist/cjs/commands/Command.d.ts.map +1 -0
- package/dist/cjs/commands/Command.js +151 -0
- package/dist/cjs/commands/Command.js.map +1 -0
- package/dist/cjs/commands/CommandResult.d.ts +48 -0
- package/dist/cjs/commands/CommandResult.d.ts.map +1 -0
- package/dist/cjs/commands/CommandResult.js +95 -0
- package/dist/cjs/commands/CommandResult.js.map +1 -0
- package/dist/cjs/commands/CommandResults.d.ts +23 -0
- package/dist/cjs/commands/CommandResults.d.ts.map +1 -0
- package/dist/cjs/commands/CommandResults.js +72 -0
- package/dist/cjs/commands/CommandResults.js.map +1 -0
- package/dist/cjs/commands/CommandValidator.d.ts +9 -0
- package/dist/cjs/commands/CommandValidator.d.ts.map +1 -0
- package/dist/cjs/commands/CommandValidator.js +10 -0
- package/dist/cjs/commands/CommandValidator.js.map +1 -0
- package/dist/cjs/commands/ICommand.d.ts +18 -0
- package/dist/cjs/commands/ICommand.d.ts.map +1 -0
- package/dist/cjs/commands/ICommandResult.d.ts +15 -0
- package/dist/cjs/commands/ICommandResult.d.ts.map +1 -0
- package/dist/cjs/commands/index.d.ts +7 -0
- package/dist/cjs/commands/index.d.ts.map +1 -0
- package/dist/cjs/commands/index.js +14 -0
- package/dist/cjs/commands/index.js.map +1 -0
- package/dist/cjs/deepEqual.d.ts +2 -0
- package/dist/cjs/deepEqual.d.ts.map +1 -0
- package/dist/cjs/deepEqual.js +22 -0
- package/dist/cjs/deepEqual.js.map +1 -0
- package/dist/cjs/given.d.ts +5 -0
- package/dist/cjs/given.d.ts.map +1 -0
- package/dist/cjs/identity/IIdentity.d.ts +8 -0
- package/dist/cjs/identity/IIdentity.d.ts.map +1 -0
- package/dist/cjs/identity/IIdentityProvider.d.ts +5 -0
- package/dist/cjs/identity/IIdentityProvider.d.ts.map +1 -0
- package/dist/cjs/identity/IIdentityProvider.js +7 -0
- package/dist/cjs/identity/IIdentityProvider.js.map +1 -0
- package/dist/cjs/identity/IdentityProvider.d.ts +14 -0
- package/dist/cjs/identity/IdentityProvider.d.ts.map +1 -0
- package/dist/cjs/identity/IdentityProvider.js +63 -0
- package/dist/cjs/identity/IdentityProvider.js.map +1 -0
- package/dist/cjs/identity/IdentityProviderResult.d.ts +6 -0
- package/dist/cjs/identity/IdentityProviderResult.d.ts.map +1 -0
- package/dist/cjs/identity/index.d.ts +5 -0
- package/dist/cjs/identity/index.d.ts.map +1 -0
- package/dist/cjs/identity/index.js +10 -0
- package/dist/cjs/identity/index.js.map +1 -0
- package/dist/cjs/index.d.ts +12 -0
- package/dist/cjs/index.d.ts.map +1 -0
- package/dist/cjs/index.js +22 -0
- package/dist/cjs/index.js.map +1 -0
- package/dist/cjs/joinPaths.d.ts +2 -0
- package/dist/cjs/joinPaths.d.ts.map +1 -0
- package/dist/cjs/joinPaths.js +9 -0
- package/dist/cjs/joinPaths.js.map +1 -0
- package/dist/cjs/queries/IObservableQueryConnection.d.ts +6 -0
- package/dist/cjs/queries/IObservableQueryConnection.d.ts.map +1 -0
- package/dist/cjs/queries/IObservableQueryFor.d.ts +13 -0
- package/dist/cjs/queries/IObservableQueryFor.d.ts.map +1 -0
- package/dist/cjs/queries/IQuery.d.ts +10 -0
- package/dist/cjs/queries/IQuery.d.ts.map +1 -0
- package/dist/cjs/queries/IQueryFor.d.ts +12 -0
- package/dist/cjs/queries/IQueryFor.d.ts.map +1 -0
- package/dist/cjs/queries/IQueryProvider.d.ts +6 -0
- package/dist/cjs/queries/IQueryProvider.d.ts.map +1 -0
- package/dist/cjs/queries/IQueryProvider.js +7 -0
- package/dist/cjs/queries/IQueryProvider.js.map +1 -0
- package/dist/cjs/queries/IQueryResult.d.ts +15 -0
- package/dist/cjs/queries/IQueryResult.d.ts.map +1 -0
- package/dist/cjs/queries/NullObservableQueryConnection.d.ts +9 -0
- package/dist/cjs/queries/NullObservableQueryConnection.d.ts.map +1 -0
- package/dist/cjs/queries/NullObservableQueryConnection.js +18 -0
- package/dist/cjs/queries/NullObservableQueryConnection.js.map +1 -0
- package/dist/cjs/queries/ObservableQueryConnection.d.ts +14 -0
- package/dist/cjs/queries/ObservableQueryConnection.d.ts.map +1 -0
- package/dist/cjs/queries/ObservableQueryConnection.js +101 -0
- package/dist/cjs/queries/ObservableQueryConnection.js.map +1 -0
- package/dist/cjs/queries/ObservableQueryFor.d.ts +37 -0
- package/dist/cjs/queries/ObservableQueryFor.d.ts.map +1 -0
- package/dist/cjs/queries/ObservableQueryFor.js +176 -0
- package/dist/cjs/queries/ObservableQueryFor.js.map +1 -0
- package/dist/cjs/queries/ObservableQuerySubscription.d.ts +7 -0
- package/dist/cjs/queries/ObservableQuerySubscription.d.ts.map +1 -0
- package/dist/cjs/queries/ObservableQuerySubscription.js +17 -0
- package/dist/cjs/queries/ObservableQuerySubscription.js.map +1 -0
- package/dist/cjs/queries/Paging.d.ts +8 -0
- package/dist/cjs/queries/Paging.d.ts.map +1 -0
- package/dist/cjs/queries/Paging.js +17 -0
- package/dist/cjs/queries/Paging.js.map +1 -0
- package/dist/cjs/queries/PagingInfo.d.ts +9 -0
- package/dist/cjs/queries/PagingInfo.d.ts.map +1 -0
- package/dist/cjs/queries/PagingInfo.js +18 -0
- package/dist/cjs/queries/PagingInfo.js.map +1 -0
- package/dist/cjs/queries/QueryFor.d.ts +30 -0
- package/dist/cjs/queries/QueryFor.d.ts.map +1 -0
- package/dist/cjs/queries/QueryFor.js +101 -0
- package/dist/cjs/queries/QueryFor.js.map +1 -0
- package/dist/cjs/queries/QueryProvider.d.ts +13 -0
- package/dist/cjs/queries/QueryProvider.d.ts.map +1 -0
- package/dist/cjs/queries/QueryProvider.js +25 -0
- package/dist/cjs/queries/QueryProvider.js.map +1 -0
- package/dist/cjs/queries/QueryResult.d.ts +44 -0
- package/dist/cjs/queries/QueryResult.d.ts.map +1 -0
- package/dist/cjs/queries/QueryResult.js +95 -0
- package/dist/cjs/queries/QueryResult.js.map +1 -0
- package/dist/cjs/queries/QueryResultWithState.d.ts +22 -0
- package/dist/cjs/queries/QueryResultWithState.d.ts.map +1 -0
- package/dist/cjs/queries/QueryResultWithState.js +46 -0
- package/dist/cjs/queries/QueryResultWithState.js.map +1 -0
- package/dist/cjs/queries/SortDirection.d.ts +6 -0
- package/dist/cjs/queries/SortDirection.d.ts.map +1 -0
- package/dist/cjs/queries/SortDirection.js +9 -0
- package/dist/cjs/queries/SortDirection.js.map +1 -0
- package/dist/cjs/queries/Sorting.d.ts +9 -0
- package/dist/cjs/queries/Sorting.d.ts.map +1 -0
- package/dist/cjs/queries/Sorting.js +19 -0
- package/dist/cjs/queries/Sorting.js.map +1 -0
- package/dist/cjs/queries/SortingActions.d.ts +10 -0
- package/dist/cjs/queries/SortingActions.d.ts.map +1 -0
- package/dist/cjs/queries/SortingActions.js +24 -0
- package/dist/cjs/queries/SortingActions.js.map +1 -0
- package/dist/cjs/queries/SortingActionsForObservableQuery.d.ts +10 -0
- package/dist/cjs/queries/SortingActionsForObservableQuery.d.ts.map +1 -0
- package/dist/cjs/queries/SortingActionsForObservableQuery.js +24 -0
- package/dist/cjs/queries/SortingActionsForObservableQuery.js.map +1 -0
- package/dist/cjs/queries/SortingActionsForQuery.d.ts +10 -0
- package/dist/cjs/queries/SortingActionsForQuery.d.ts.map +1 -0
- package/dist/cjs/queries/SortingActionsForQuery.js +24 -0
- package/dist/cjs/queries/SortingActionsForQuery.js.map +1 -0
- package/dist/cjs/queries/ValidateRequestArguments.d.ts +2 -0
- package/dist/cjs/queries/ValidateRequestArguments.d.ts.map +1 -0
- package/dist/cjs/queries/ValidateRequestArguments.js +29 -0
- package/dist/cjs/queries/ValidateRequestArguments.js.map +1 -0
- package/dist/cjs/queries/index.d.ts +19 -0
- package/dist/cjs/queries/index.d.ts.map +1 -0
- package/dist/cjs/queries/index.js +37 -0
- package/dist/cjs/queries/index.js.map +1 -0
- package/dist/cjs/reflection/IHaveParameters.d.ts +5 -0
- package/dist/cjs/reflection/IHaveParameters.d.ts.map +1 -0
- package/dist/cjs/reflection/ParameterDescriptor.d.ts +7 -0
- package/dist/cjs/reflection/ParameterDescriptor.d.ts.map +1 -0
- package/dist/cjs/reflection/ParameterDescriptor.js +13 -0
- package/dist/cjs/reflection/ParameterDescriptor.js.map +1 -0
- package/dist/cjs/reflection/ParametersHelper.d.ts +5 -0
- package/dist/cjs/reflection/ParametersHelper.d.ts.map +1 -0
- package/dist/cjs/reflection/ParametersHelper.js +17 -0
- package/dist/cjs/reflection/ParametersHelper.js.map +1 -0
- package/dist/cjs/reflection/PropertyDescriptor.d.ts +7 -0
- package/dist/cjs/reflection/PropertyDescriptor.d.ts.map +1 -0
- package/dist/cjs/reflection/PropertyDescriptor.js +13 -0
- package/dist/cjs/reflection/PropertyDescriptor.js.map +1 -0
- package/dist/cjs/reflection/index.d.ts +5 -0
- package/dist/cjs/reflection/index.d.ts.map +1 -0
- package/dist/cjs/reflection/index.js +12 -0
- package/dist/cjs/reflection/index.js.map +1 -0
- package/dist/cjs/validation/ValidationResult.d.ts +9 -0
- package/dist/cjs/validation/ValidationResult.d.ts.map +1 -0
- package/dist/cjs/validation/ValidationResult.js +17 -0
- package/dist/cjs/validation/ValidationResult.js.map +1 -0
- package/dist/cjs/validation/ValidationResultSeverity.d.ts +7 -0
- package/dist/cjs/validation/ValidationResultSeverity.d.ts.map +1 -0
- package/dist/cjs/validation/Validator.d.ts +4 -0
- package/dist/cjs/validation/Validator.d.ts.map +1 -0
- package/dist/cjs/validation/Validator.js +10 -0
- package/dist/cjs/validation/Validator.js.map +1 -0
- package/dist/cjs/validation/index.d.ts +3 -0
- package/dist/cjs/validation/index.d.ts.map +1 -0
- package/dist/cjs/validation/index.js +10 -0
- package/dist/cjs/validation/index.js.map +1 -0
- package/dist/esm/GetHttpHeaders.d.ts +2 -0
- package/dist/esm/GetHttpHeaders.d.ts.map +1 -0
- package/dist/esm/GetHttpHeaders.js +2 -0
- package/dist/esm/GetHttpHeaders.js.map +1 -0
- package/dist/esm/Globals.d.ts +7 -0
- package/dist/esm/Globals.d.ts.map +1 -0
- package/dist/esm/Globals.js +8 -0
- package/dist/esm/Globals.js.map +1 -0
- package/dist/esm/ICanBeConfigured.d.ts +8 -0
- package/dist/esm/ICanBeConfigured.d.ts.map +1 -0
- package/dist/esm/ICanBeConfigured.js +2 -0
- package/dist/esm/ICanBeConfigured.js.map +1 -0
- package/dist/esm/UrlHelpers.d.ts +9 -0
- package/dist/esm/UrlHelpers.d.ts.map +1 -0
- package/dist/esm/UrlHelpers.js +41 -0
- package/dist/esm/UrlHelpers.js.map +1 -0
- package/dist/esm/commands/Command.d.ts +41 -0
- package/dist/esm/commands/Command.d.ts.map +1 -0
- package/dist/esm/commands/Command.js +149 -0
- package/dist/esm/commands/Command.js.map +1 -0
- package/dist/esm/commands/CommandResult.d.ts +48 -0
- package/dist/esm/commands/CommandResult.d.ts.map +1 -0
- package/dist/esm/commands/CommandResult.js +93 -0
- package/dist/esm/commands/CommandResult.js.map +1 -0
- package/dist/esm/commands/CommandResults.d.ts +23 -0
- package/dist/esm/commands/CommandResults.d.ts.map +1 -0
- package/dist/esm/commands/CommandResults.js +70 -0
- package/dist/esm/commands/CommandResults.js.map +1 -0
- package/dist/esm/commands/CommandValidator.d.ts +9 -0
- package/dist/esm/commands/CommandValidator.d.ts.map +1 -0
- package/dist/esm/commands/CommandValidator.js +8 -0
- package/dist/esm/commands/CommandValidator.js.map +1 -0
- package/dist/esm/commands/ICommand.d.ts +18 -0
- package/dist/esm/commands/ICommand.d.ts.map +1 -0
- package/dist/esm/commands/ICommand.js +2 -0
- package/dist/esm/commands/ICommand.js.map +1 -0
- package/dist/esm/commands/ICommandResult.d.ts +15 -0
- package/dist/esm/commands/ICommandResult.d.ts.map +1 -0
- package/dist/esm/commands/ICommandResult.js +2 -0
- package/dist/esm/commands/ICommandResult.js.map +1 -0
- package/dist/esm/commands/index.d.ts +7 -0
- package/dist/esm/commands/index.d.ts.map +1 -0
- package/dist/esm/commands/index.js +5 -0
- package/dist/esm/commands/index.js.map +1 -0
- package/dist/esm/deepEqual.d.ts +2 -0
- package/dist/esm/deepEqual.d.ts.map +1 -0
- package/dist/esm/deepEqual.js +20 -0
- package/dist/esm/deepEqual.js.map +1 -0
- package/dist/esm/given.d.ts +5 -0
- package/dist/esm/given.d.ts.map +1 -0
- package/dist/esm/given.js +7 -0
- package/dist/esm/given.js.map +1 -0
- package/dist/esm/identity/IIdentity.d.ts +8 -0
- package/dist/esm/identity/IIdentity.d.ts.map +1 -0
- package/dist/esm/identity/IIdentity.js +2 -0
- package/dist/esm/identity/IIdentity.js.map +1 -0
- package/dist/esm/identity/IIdentityProvider.d.ts +5 -0
- package/dist/esm/identity/IIdentityProvider.d.ts.map +1 -0
- package/dist/esm/identity/IIdentityProvider.js +5 -0
- package/dist/esm/identity/IIdentityProvider.js.map +1 -0
- package/dist/esm/identity/IdentityProvider.d.ts +14 -0
- package/dist/esm/identity/IdentityProvider.d.ts.map +1 -0
- package/dist/esm/identity/IdentityProvider.js +61 -0
- package/dist/esm/identity/IdentityProvider.js.map +1 -0
- package/dist/esm/identity/IdentityProviderResult.d.ts +6 -0
- package/dist/esm/identity/IdentityProviderResult.d.ts.map +1 -0
- package/dist/esm/identity/IdentityProviderResult.js +2 -0
- package/dist/esm/identity/IdentityProviderResult.js.map +1 -0
- package/dist/esm/identity/index.d.ts +5 -0
- package/dist/esm/identity/index.d.ts.map +1 -0
- package/dist/esm/identity/index.js +3 -0
- package/dist/esm/identity/index.js.map +1 -0
- package/dist/esm/index.d.ts +12 -0
- package/dist/esm/index.d.ts.map +1 -0
- package/dist/esm/index.js +14 -0
- package/dist/esm/index.js.map +1 -0
- package/dist/esm/joinPaths.d.ts +2 -0
- package/dist/esm/joinPaths.d.ts.map +1 -0
- package/dist/esm/joinPaths.js +7 -0
- package/dist/esm/joinPaths.js.map +1 -0
- package/dist/esm/queries/IObservableQueryConnection.d.ts +6 -0
- package/dist/esm/queries/IObservableQueryConnection.d.ts.map +1 -0
- package/dist/esm/queries/IObservableQueryConnection.js +2 -0
- package/dist/esm/queries/IObservableQueryConnection.js.map +1 -0
- package/dist/esm/queries/IObservableQueryFor.d.ts +13 -0
- package/dist/esm/queries/IObservableQueryFor.d.ts.map +1 -0
- package/dist/esm/queries/IObservableQueryFor.js +2 -0
- package/dist/esm/queries/IObservableQueryFor.js.map +1 -0
- package/dist/esm/queries/IQuery.d.ts +10 -0
- package/dist/esm/queries/IQuery.d.ts.map +1 -0
- package/dist/esm/queries/IQuery.js +2 -0
- package/dist/esm/queries/IQuery.js.map +1 -0
- package/dist/esm/queries/IQueryFor.d.ts +12 -0
- package/dist/esm/queries/IQueryFor.d.ts.map +1 -0
- package/dist/esm/queries/IQueryFor.js +2 -0
- package/dist/esm/queries/IQueryFor.js.map +1 -0
- package/dist/esm/queries/IQueryProvider.d.ts +6 -0
- package/dist/esm/queries/IQueryProvider.d.ts.map +1 -0
- package/dist/esm/queries/IQueryProvider.js +5 -0
- package/dist/esm/queries/IQueryProvider.js.map +1 -0
- package/dist/esm/queries/IQueryResult.d.ts +15 -0
- package/dist/esm/queries/IQueryResult.d.ts.map +1 -0
- package/dist/esm/queries/IQueryResult.js +2 -0
- package/dist/esm/queries/IQueryResult.js.map +1 -0
- package/dist/esm/queries/NullObservableQueryConnection.d.ts +9 -0
- package/dist/esm/queries/NullObservableQueryConnection.d.ts.map +1 -0
- package/dist/esm/queries/NullObservableQueryConnection.js +16 -0
- package/dist/esm/queries/NullObservableQueryConnection.js.map +1 -0
- package/dist/esm/queries/ObservableQueryConnection.d.ts +14 -0
- package/dist/esm/queries/ObservableQueryConnection.d.ts.map +1 -0
- package/dist/esm/queries/ObservableQueryConnection.js +99 -0
- package/dist/esm/queries/ObservableQueryConnection.js.map +1 -0
- package/dist/esm/queries/ObservableQueryFor.d.ts +37 -0
- package/dist/esm/queries/ObservableQueryFor.d.ts.map +1 -0
- package/dist/esm/queries/ObservableQueryFor.js +174 -0
- package/dist/esm/queries/ObservableQueryFor.js.map +1 -0
- package/dist/esm/queries/ObservableQuerySubscription.d.ts +7 -0
- package/dist/esm/queries/ObservableQuerySubscription.d.ts.map +1 -0
- package/dist/esm/queries/ObservableQuerySubscription.js +15 -0
- package/dist/esm/queries/ObservableQuerySubscription.js.map +1 -0
- package/dist/esm/queries/Paging.d.ts +8 -0
- package/dist/esm/queries/Paging.d.ts.map +1 -0
- package/dist/esm/queries/Paging.js +15 -0
- package/dist/esm/queries/Paging.js.map +1 -0
- package/dist/esm/queries/PagingInfo.d.ts +9 -0
- package/dist/esm/queries/PagingInfo.d.ts.map +1 -0
- package/dist/esm/queries/PagingInfo.js +16 -0
- package/dist/esm/queries/PagingInfo.js.map +1 -0
- package/dist/esm/queries/QueryFor.d.ts +30 -0
- package/dist/esm/queries/QueryFor.d.ts.map +1 -0
- package/dist/esm/queries/QueryFor.js +99 -0
- package/dist/esm/queries/QueryFor.js.map +1 -0
- package/dist/esm/queries/QueryProvider.d.ts +13 -0
- package/dist/esm/queries/QueryProvider.d.ts.map +1 -0
- package/dist/esm/queries/QueryProvider.js +23 -0
- package/dist/esm/queries/QueryProvider.js.map +1 -0
- package/dist/esm/queries/QueryResult.d.ts +44 -0
- package/dist/esm/queries/QueryResult.d.ts.map +1 -0
- package/dist/esm/queries/QueryResult.js +93 -0
- package/dist/esm/queries/QueryResult.js.map +1 -0
- package/dist/esm/queries/QueryResultWithState.d.ts +22 -0
- package/dist/esm/queries/QueryResultWithState.d.ts.map +1 -0
- package/dist/esm/queries/QueryResultWithState.js +44 -0
- package/dist/esm/queries/QueryResultWithState.js.map +1 -0
- package/dist/esm/queries/SortDirection.d.ts +6 -0
- package/dist/esm/queries/SortDirection.d.ts.map +1 -0
- package/dist/esm/queries/SortDirection.js +9 -0
- package/dist/esm/queries/SortDirection.js.map +1 -0
- package/dist/esm/queries/Sorting.d.ts +9 -0
- package/dist/esm/queries/Sorting.d.ts.map +1 -0
- package/dist/esm/queries/Sorting.js +17 -0
- package/dist/esm/queries/Sorting.js.map +1 -0
- package/dist/esm/queries/SortingActions.d.ts +10 -0
- package/dist/esm/queries/SortingActions.d.ts.map +1 -0
- package/dist/esm/queries/SortingActions.js +22 -0
- package/dist/esm/queries/SortingActions.js.map +1 -0
- package/dist/esm/queries/SortingActionsForObservableQuery.d.ts +10 -0
- package/dist/esm/queries/SortingActionsForObservableQuery.d.ts.map +1 -0
- package/dist/esm/queries/SortingActionsForObservableQuery.js +22 -0
- package/dist/esm/queries/SortingActionsForObservableQuery.js.map +1 -0
- package/dist/esm/queries/SortingActionsForQuery.d.ts +10 -0
- package/dist/esm/queries/SortingActionsForQuery.d.ts.map +1 -0
- package/dist/esm/queries/SortingActionsForQuery.js +22 -0
- package/dist/esm/queries/SortingActionsForQuery.js.map +1 -0
- package/dist/esm/queries/ValidateRequestArguments.d.ts +2 -0
- package/dist/esm/queries/ValidateRequestArguments.d.ts.map +1 -0
- package/dist/esm/queries/ValidateRequestArguments.js +27 -0
- package/dist/esm/queries/ValidateRequestArguments.js.map +1 -0
- package/dist/esm/queries/index.d.ts +19 -0
- package/dist/esm/queries/index.d.ts.map +1 -0
- package/dist/esm/queries/index.js +15 -0
- package/dist/esm/queries/index.js.map +1 -0
- package/dist/esm/reflection/IHaveParameters.d.ts +5 -0
- package/dist/esm/reflection/IHaveParameters.d.ts.map +1 -0
- package/dist/esm/reflection/IHaveParameters.js +2 -0
- package/dist/esm/reflection/IHaveParameters.js.map +1 -0
- package/dist/esm/reflection/ParameterDescriptor.d.ts +7 -0
- package/dist/esm/reflection/ParameterDescriptor.d.ts.map +1 -0
- package/dist/esm/reflection/ParameterDescriptor.js +11 -0
- package/dist/esm/reflection/ParameterDescriptor.js.map +1 -0
- package/dist/esm/reflection/ParametersHelper.d.ts +5 -0
- package/dist/esm/reflection/ParametersHelper.d.ts.map +1 -0
- package/dist/esm/reflection/ParametersHelper.js +15 -0
- package/dist/esm/reflection/ParametersHelper.js.map +1 -0
- package/dist/esm/reflection/PropertyDescriptor.d.ts +7 -0
- package/dist/esm/reflection/PropertyDescriptor.d.ts.map +1 -0
- package/dist/esm/reflection/PropertyDescriptor.js +11 -0
- package/dist/esm/reflection/PropertyDescriptor.js.map +1 -0
- package/dist/esm/reflection/index.d.ts +5 -0
- package/dist/esm/reflection/index.d.ts.map +1 -0
- package/dist/esm/reflection/index.js +4 -0
- package/dist/esm/reflection/index.js.map +1 -0
- package/dist/esm/tsconfig.tsbuildinfo +1 -0
- package/dist/esm/validation/ValidationResult.d.ts +9 -0
- package/dist/esm/validation/ValidationResult.d.ts.map +1 -0
- package/dist/esm/validation/ValidationResult.js +15 -0
- package/dist/esm/validation/ValidationResult.js.map +1 -0
- package/dist/esm/validation/ValidationResultSeverity.d.ts +7 -0
- package/dist/esm/validation/ValidationResultSeverity.d.ts.map +1 -0
- package/dist/esm/validation/ValidationResultSeverity.js +8 -0
- package/dist/esm/validation/ValidationResultSeverity.js.map +1 -0
- package/dist/esm/validation/Validator.d.ts +4 -0
- package/dist/esm/validation/Validator.d.ts.map +1 -0
- package/dist/esm/validation/Validator.js +8 -0
- package/dist/esm/validation/Validator.js.map +1 -0
- package/dist/esm/validation/index.d.ts +3 -0
- package/dist/esm/validation/index.d.ts.map +1 -0
- package/dist/esm/validation/index.js +3 -0
- package/dist/esm/validation/index.js.map +1 -0
- package/for_UrlHelpers/when_building_query_params/with_additional_parameters.ts +23 -0
- package/for_UrlHelpers/when_building_query_params/with_empty_parameters.ts +16 -0
- package/for_UrlHelpers/when_building_query_params/with_null_and_undefined_values.ts +22 -0
- package/for_UrlHelpers/when_building_query_params/with_unused_parameters_only.ts +21 -0
- package/for_UrlHelpers/when_creating_url_from/with_base_path_ending_with_slash.ts +32 -0
- package/for_UrlHelpers/when_creating_url_from/with_empty_origin.ts +45 -0
- package/for_UrlHelpers/when_creating_url_from/with_null_or_undefined_origin.ts +53 -0
- package/for_UrlHelpers/when_creating_url_from/with_relative_route.ts +32 -0
- package/for_UrlHelpers/when_creating_url_from/with_valid_parameters.ts +32 -0
- package/for_UrlHelpers/when_creating_url_from/without_document_object.ts +34 -0
- package/for_UrlHelpers/when_replacing_route_parameters/with_all_parameters_used_in_route.ts +21 -0
- package/for_UrlHelpers/when_replacing_route_parameters/with_no_parameters.ts +19 -0
- package/for_UrlHelpers/when_replacing_route_parameters/with_unused_parameters.ts +23 -0
- package/for_UrlHelpers/when_replacing_route_parameters/with_url_encoded_values.ts +20 -0
- package/given.ts +14 -0
- package/identity/IIdentity.ts +33 -0
- package/identity/IIdentityProvider.ts +16 -0
- package/identity/IdentityProvider.ts +85 -0
- package/identity/IdentityProviderResult.ts +8 -0
- package/identity/index.ts +7 -0
- package/index.ts +21 -0
- package/joinPaths.ts +7 -0
- package/package.json +70 -0
- package/queries/IObservableQueryConnection.ts +21 -0
- package/queries/IObservableQueryFor.ts +38 -0
- package/queries/IQuery.ts +31 -0
- package/queries/IQueryFor.ts +36 -0
- package/queries/IQueryProvider.ts +17 -0
- package/queries/IQueryResult.ts +60 -0
- package/queries/NullObservableQueryConnection.ts +29 -0
- package/queries/ObservableQueryConnection.ts +118 -0
- package/queries/ObservableQueryFor.ts +230 -0
- package/queries/ObservableQuerySubscription.ts +27 -0
- package/queries/Paging.ts +38 -0
- package/queries/PagingInfo.ts +43 -0
- package/queries/QueryFor.ts +138 -0
- package/queries/QueryProvider.ts +36 -0
- package/queries/QueryResult.ts +157 -0
- package/queries/QueryResultWithState.ts +95 -0
- package/queries/SortDirection.ts +22 -0
- package/queries/Sorting.ts +30 -0
- package/queries/SortingActions.ts +36 -0
- package/queries/SortingActionsForObservableQuery.ts +36 -0
- package/queries/SortingActionsForQuery.ts +36 -0
- package/queries/ValidateRequestArguments.ts +36 -0
- package/queries/for_ObservableQueryFor/given/TestQueries.ts +58 -0
- package/queries/for_ObservableQueryFor/given/an_observable_query_for.ts +16 -0
- package/queries/for_ObservableQueryFor/when_constructing.ts +32 -0
- package/queries/for_ObservableQueryFor/when_constructing_enumerable.ts +18 -0
- package/queries/for_ObservableQueryFor/when_disposing.ts +28 -0
- package/queries/for_ObservableQueryFor/when_performing/with_enumerable_query.ts +61 -0
- package/queries/for_ObservableQueryFor/when_performing/with_invalid_arguments.ts +22 -0
- package/queries/for_ObservableQueryFor/when_performing/with_paging.ts +55 -0
- package/queries/for_ObservableQueryFor/when_performing/with_parameter_descriptor_values.ts +68 -0
- package/queries/for_ObservableQueryFor/when_performing/with_partial_parameter_descriptor_values.ts +67 -0
- package/queries/for_ObservableQueryFor/when_performing/with_route_parameters_and_unused_parameters.ts +71 -0
- package/queries/for_ObservableQueryFor/when_performing/with_sorting.ts +56 -0
- package/queries/for_ObservableQueryFor/when_performing/with_valid_arguments.ts +79 -0
- package/queries/for_ObservableQueryFor/when_setting_api_base_path.ts +17 -0
- package/queries/for_ObservableQueryFor/when_setting_microservice.ts +17 -0
- package/queries/for_ObservableQueryFor/when_setting_origin.ts +17 -0
- package/queries/for_ObservableQueryFor/when_subscribing/with_enumerable_query.ts +34 -0
- package/queries/for_ObservableQueryFor/when_subscribing/with_invalid_arguments.ts +40 -0
- package/queries/for_ObservableQueryFor/when_subscribing/with_paging.ts +36 -0
- package/queries/for_ObservableQueryFor/when_subscribing/with_sorting.ts +37 -0
- package/queries/for_ObservableQueryFor/when_subscribing/with_valid_arguments.ts +35 -0
- package/queries/for_QueryFor/given/TestQueries.ts +72 -0
- package/queries/for_QueryFor/given/a_query_for.ts +18 -0
- package/queries/for_QueryFor/when_constructing.ts +31 -0
- package/queries/for_QueryFor/when_constructing_enumerable.ts +17 -0
- package/queries/for_QueryFor/when_performing/with_abort_controller.ts +71 -0
- package/queries/for_QueryFor/when_performing/with_enumerable_query.ts +62 -0
- package/queries/for_QueryFor/when_performing/with_fetch_error.ts +47 -0
- package/queries/for_QueryFor/when_performing/with_invalid_arguments.ts +29 -0
- package/queries/for_QueryFor/when_performing/with_json_parse_error.ts +45 -0
- package/queries/for_QueryFor/when_performing/with_paging.ts +62 -0
- package/queries/for_QueryFor/when_performing/with_parameter_descriptor_values.ts +68 -0
- package/queries/for_QueryFor/when_performing/with_partial_parameter_descriptor_values.ts +67 -0
- package/queries/for_QueryFor/when_performing/with_query_without_required_parameters.ts +58 -0
- package/queries/for_QueryFor/when_performing/with_route_parameters_and_unused_parameters.ts +71 -0
- package/queries/for_QueryFor/when_performing/with_sorting.ts +99 -0
- package/queries/for_QueryFor/when_performing/with_valid_arguments.ts +87 -0
- package/queries/for_QueryFor/when_setting_api_base_path.ts +19 -0
- package/queries/for_QueryFor/when_setting_microservice.ts +19 -0
- package/queries/for_QueryFor/when_setting_origin.ts +19 -0
- package/queries/for_QueryResult/when_asking_has_data/and_it_an_array_with_items.ts +27 -0
- package/queries/for_QueryResult/when_asking_has_data/and_it_is_defined_instance.ts +27 -0
- package/queries/for_QueryResult/when_asking_has_data/and_it_is_empty_array.ts +27 -0
- package/queries/for_QueryResult/when_asking_has_data/and_it_is_undefined.ts +27 -0
- package/queries/index.ts +21 -0
- package/reflection/IHaveParameters.ts +11 -0
- package/reflection/ParameterDescriptor.ts +17 -0
- package/reflection/ParametersHelper.ts +25 -0
- package/reflection/PropertyDescriptor.ts +17 -0
- package/reflection/index.ts +7 -0
- package/validation/ValidationResult.ts +16 -0
- package/validation/ValidationResultSeverity.ts +28 -0
- package/validation/Validator.ts +15 -0
- package/validation/index.ts +5 -0
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
import { Guid } from '@cratis/fundamentals';
|
|
2
|
+
import { ICommandResult } from './ICommandResult';
|
|
3
|
+
import { ValidationResult } from '../validation/ValidationResult';
|
|
4
|
+
import { Constructor } from '@cratis/fundamentals';
|
|
5
|
+
type OnSuccess = (<TResponse>(response: TResponse) => void) | (() => void);
|
|
6
|
+
type OnFailed<TResponse> = ((commandResult: CommandResult<TResponse>) => void) | (() => void);
|
|
7
|
+
type OnException = (messages: string[], stackTrace: string) => void;
|
|
8
|
+
type OnUnauthorized = () => void;
|
|
9
|
+
type OnValidationFailure = (validationResults: ValidationResult[]) => void;
|
|
10
|
+
type ServerCommandResult = {
|
|
11
|
+
correlationId: string;
|
|
12
|
+
isSuccess: boolean;
|
|
13
|
+
isAuthorized: boolean;
|
|
14
|
+
isValid: boolean;
|
|
15
|
+
hasExceptions: boolean;
|
|
16
|
+
validationResults: {
|
|
17
|
+
severity: number;
|
|
18
|
+
message: string;
|
|
19
|
+
members: string[];
|
|
20
|
+
state: object;
|
|
21
|
+
}[];
|
|
22
|
+
exceptionMessages: string[];
|
|
23
|
+
exceptionStackTrace: string;
|
|
24
|
+
authorizationFailureReason: string;
|
|
25
|
+
response: any;
|
|
26
|
+
};
|
|
27
|
+
export declare class CommandResult<TResponse = object> implements ICommandResult<TResponse> {
|
|
28
|
+
static empty: CommandResult;
|
|
29
|
+
static failed: (exceptionMessages: string[]) => CommandResult;
|
|
30
|
+
readonly correlationId: Guid;
|
|
31
|
+
readonly isSuccess: boolean;
|
|
32
|
+
readonly isAuthorized: boolean;
|
|
33
|
+
readonly isValid: boolean;
|
|
34
|
+
readonly hasExceptions: boolean;
|
|
35
|
+
readonly validationResults: ValidationResult[];
|
|
36
|
+
readonly exceptionMessages: string[];
|
|
37
|
+
readonly exceptionStackTrace: string;
|
|
38
|
+
readonly authorizationFailureReason: string;
|
|
39
|
+
readonly response?: TResponse;
|
|
40
|
+
constructor(result: ServerCommandResult, responseInstanceType: Constructor | undefined, isResponseTypeEnumerable: boolean);
|
|
41
|
+
onSuccess(callback: OnSuccess): CommandResult<TResponse>;
|
|
42
|
+
onFailed(callback: OnFailed<TResponse>): CommandResult<TResponse>;
|
|
43
|
+
onException(callback: OnException): CommandResult<TResponse>;
|
|
44
|
+
onUnauthorized(callback: OnUnauthorized): CommandResult<TResponse>;
|
|
45
|
+
onValidationFailure(callback: OnValidationFailure): CommandResult<TResponse>;
|
|
46
|
+
}
|
|
47
|
+
export {};
|
|
48
|
+
//# sourceMappingURL=CommandResult.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"CommandResult.d.ts","sourceRoot":"","sources":["../../../commands/CommandResult.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,IAAI,EAAE,MAAM,sBAAsB,CAAC;AAC5C,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,EAAE,gBAAgB,EAAE,MAAM,gCAAgC,CAAC;AAClE,OAAO,EAAE,WAAW,EAAkB,MAAM,sBAAsB,CAAC;AAKnE,KAAK,SAAS,GAAG,CAAC,CAAC,SAAS,EAAE,QAAQ,EAAE,SAAS,KAAK,IAAI,CAAC,GAAG,CAAC,MAAM,IAAI,CAAC,CAAC;AAK3E,KAAK,QAAQ,CAAC,SAAS,IAAI,CAAC,CAAC,aAAa,EAAE,aAAa,CAAC,SAAS,CAAC,KAAK,IAAI,CAAC,GAAG,CAAC,MAAM,IAAI,CAAC,CAAC;AAK9F,KAAK,WAAW,GAAG,CAAC,QAAQ,EAAE,MAAM,EAAE,EAAE,UAAU,EAAE,MAAM,KAAK,IAAI,CAAC;AAKpE,KAAK,cAAc,GAAG,MAAM,IAAI,CAAC;AAKjC,KAAK,mBAAmB,GAAG,CAAC,iBAAiB,EAAE,gBAAgB,EAAE,KAAK,IAAI,CAAC;AAE3E,KAAK,mBAAmB,GAAG;IACvB,aAAa,EAAE,MAAM,CAAC;IACtB,SAAS,EAAE,OAAO,CAAC;IACnB,YAAY,EAAE,OAAO,CAAC;IACtB,OAAO,EAAE,OAAO,CAAC;IACjB,aAAa,EAAE,OAAO,CAAC;IACvB,iBAAiB,EAAE;QACf,QAAQ,EAAE,MAAM,CAAC;QACjB,OAAO,EAAE,MAAM,CAAC;QAChB,OAAO,EAAE,MAAM,EAAE,CAAC;QAClB,KAAK,EAAE,MAAM,CAAC;KACjB,EAAE,CAAC;IACJ,iBAAiB,EAAE,MAAM,EAAE,CAAC;IAC5B,mBAAmB,EAAE,MAAM,CAAC;IAC5B,0BAA0B,EAAE,MAAM,CAAC;IAGnC,QAAQ,EAAE,GAAG,CAAC;CAEjB,CAAA;AAKD,qBAAa,aAAa,CAAC,SAAS,GAAG,MAAM,CAAE,YAAW,cAAc,CAAC,SAAS,CAAC;IAE/E,MAAM,CAAC,KAAK,EAAE,aAAa,CAWT;IAElB,MAAM,CAAC,MAAM,GAAI,mBAAmB,MAAM,EAAE,KAAG,aAAa,CAa1D;IAGF,QAAQ,CAAC,aAAa,EAAE,IAAI,CAAC;IAG7B,QAAQ,CAAC,SAAS,EAAE,OAAO,CAAC;IAG5B,QAAQ,CAAC,YAAY,EAAE,OAAO,CAAC;IAG/B,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;IAG1B,QAAQ,CAAC,aAAa,EAAE,OAAO,CAAC;IAGhC,QAAQ,CAAC,iBAAiB,EAAE,gBAAgB,EAAE,CAAC;IAG/C,QAAQ,CAAC,iBAAiB,EAAE,MAAM,EAAE,CAAC;IAGrC,QAAQ,CAAC,mBAAmB,EAAE,MAAM,CAAC;IAGrC,QAAQ,CAAC,0BAA0B,EAAE,MAAM,CAAC;IAG5C,QAAQ,CAAC,QAAQ,CAAC,EAAE,SAAS,CAAC;gBAQlB,MAAM,EAAE,mBAAmB,EAAE,oBAAoB,EAAE,WAAW,YAAS,EAAE,wBAAwB,EAAE,OAAO;IAyBtH,SAAS,CAAC,QAAQ,EAAE,SAAS,GAAG,aAAa,CAAC,SAAS,CAAC;IAYxD,QAAQ,CAAC,QAAQ,EAAE,QAAQ,CAAC,SAAS,CAAC,GAAG,aAAa,CAAC,SAAS,CAAC;IAYjE,WAAW,CAAC,QAAQ,EAAE,WAAW,GAAG,aAAa,CAAC,SAAS,CAAC;IAY5D,cAAc,CAAC,QAAQ,EAAE,cAAc,GAAG,aAAa,CAAC,SAAS,CAAC;IAYlE,mBAAmB,CAAC,QAAQ,EAAE,mBAAmB,GAAG,aAAa,CAAC,SAAS,CAAC;CAM/E"}
|
|
@@ -0,0 +1,93 @@
|
|
|
1
|
+
import { Guid, JsonSerializer } from '@cratis/fundamentals';
|
|
2
|
+
import { ValidationResult } from '../validation/ValidationResult.js';
|
|
3
|
+
|
|
4
|
+
class CommandResult {
|
|
5
|
+
static empty = new CommandResult({
|
|
6
|
+
correlationId: Guid.empty.toString(),
|
|
7
|
+
isSuccess: true,
|
|
8
|
+
isAuthorized: true,
|
|
9
|
+
isValid: true,
|
|
10
|
+
hasExceptions: false,
|
|
11
|
+
validationResults: [],
|
|
12
|
+
exceptionMessages: [],
|
|
13
|
+
exceptionStackTrace: '',
|
|
14
|
+
authorizationFailureReason: '',
|
|
15
|
+
response: null
|
|
16
|
+
}, Object, false);
|
|
17
|
+
static failed = (exceptionMessages) => {
|
|
18
|
+
return new CommandResult({
|
|
19
|
+
correlationId: Guid.empty.toString(),
|
|
20
|
+
isSuccess: false,
|
|
21
|
+
isAuthorized: true,
|
|
22
|
+
isValid: true,
|
|
23
|
+
hasExceptions: true,
|
|
24
|
+
validationResults: [],
|
|
25
|
+
exceptionMessages: exceptionMessages,
|
|
26
|
+
exceptionStackTrace: '',
|
|
27
|
+
authorizationFailureReason: '',
|
|
28
|
+
response: null
|
|
29
|
+
}, Object, false);
|
|
30
|
+
};
|
|
31
|
+
correlationId;
|
|
32
|
+
isSuccess;
|
|
33
|
+
isAuthorized;
|
|
34
|
+
isValid;
|
|
35
|
+
hasExceptions;
|
|
36
|
+
validationResults;
|
|
37
|
+
exceptionMessages;
|
|
38
|
+
exceptionStackTrace;
|
|
39
|
+
authorizationFailureReason;
|
|
40
|
+
response;
|
|
41
|
+
constructor(result, responseInstanceType = Object, isResponseTypeEnumerable) {
|
|
42
|
+
this.correlationId = Guid.parse(result.correlationId);
|
|
43
|
+
this.isSuccess = result.isSuccess;
|
|
44
|
+
this.isAuthorized = result.isAuthorized;
|
|
45
|
+
this.isValid = result.isValid;
|
|
46
|
+
this.hasExceptions = result.hasExceptions;
|
|
47
|
+
this.validationResults = result.validationResults.map(_ => new ValidationResult(_.severity, _.message, _.members, _.state));
|
|
48
|
+
this.exceptionMessages = result.exceptionMessages;
|
|
49
|
+
this.exceptionStackTrace = result.exceptionStackTrace;
|
|
50
|
+
this.authorizationFailureReason = result.authorizationFailureReason;
|
|
51
|
+
if (result.response) {
|
|
52
|
+
if (isResponseTypeEnumerable) {
|
|
53
|
+
this.response = JsonSerializer.deserializeArrayFromInstance(responseInstanceType, result.response);
|
|
54
|
+
}
|
|
55
|
+
else {
|
|
56
|
+
this.response = JsonSerializer.deserializeFromInstance(responseInstanceType, result.response);
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
onSuccess(callback) {
|
|
61
|
+
if (this.isSuccess) {
|
|
62
|
+
callback(this.response);
|
|
63
|
+
}
|
|
64
|
+
return this;
|
|
65
|
+
}
|
|
66
|
+
onFailed(callback) {
|
|
67
|
+
if (!this.isSuccess) {
|
|
68
|
+
callback(this);
|
|
69
|
+
}
|
|
70
|
+
return this;
|
|
71
|
+
}
|
|
72
|
+
onException(callback) {
|
|
73
|
+
if (this.hasExceptions) {
|
|
74
|
+
callback(this.exceptionMessages, this.exceptionStackTrace);
|
|
75
|
+
}
|
|
76
|
+
return this;
|
|
77
|
+
}
|
|
78
|
+
onUnauthorized(callback) {
|
|
79
|
+
if (!this.isAuthorized) {
|
|
80
|
+
callback();
|
|
81
|
+
}
|
|
82
|
+
return this;
|
|
83
|
+
}
|
|
84
|
+
onValidationFailure(callback) {
|
|
85
|
+
if (!this.isValid) {
|
|
86
|
+
callback(this.validationResults);
|
|
87
|
+
}
|
|
88
|
+
return this;
|
|
89
|
+
}
|
|
90
|
+
}
|
|
91
|
+
|
|
92
|
+
export { CommandResult };
|
|
93
|
+
//# sourceMappingURL=CommandResult.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"CommandResult.js","sources":["../../../commands/CommandResult.ts"],"sourcesContent":["// Copyright (c) Cratis. All rights reserved.\n// Licensed under the MIT license. See LICENSE file in the project root for full license information.\n\nimport { Guid } from '@cratis/fundamentals';\nimport { ICommandResult } from './ICommandResult';\nimport { ValidationResult } from '../validation/ValidationResult';\nimport { Constructor, JsonSerializer } from '@cratis/fundamentals';\n\n/**\n * Delegate type for the onSuccess callback.\n */\ntype OnSuccess = (<TResponse>(response: TResponse) => void) | (() => void);\n\n/**\n * Delegate type for the onFailed callback.\n */\ntype OnFailed<TResponse> = ((commandResult: CommandResult<TResponse>) => void) | (() => void);\n\n/**\n * Delegate type for the onException callback.\n */\ntype OnException = (messages: string[], stackTrace: string) => void;\n\n/**\n * Delegate type for the onUnauthorized callback.\n */\ntype OnUnauthorized = () => void;\n\n/**\n * Delegate type for the onValidationFailure callback.\n */\ntype OnValidationFailure = (validationResults: ValidationResult[]) => void;\n\ntype ServerCommandResult = {\n correlationId: string;\n isSuccess: boolean;\n isAuthorized: boolean;\n isValid: boolean;\n hasExceptions: boolean;\n validationResults: {\n severity: number;\n message: string;\n members: string[];\n state: object;\n }[];\n exceptionMessages: string[];\n exceptionStackTrace: string;\n authorizationFailureReason: string;\n\n /* eslint-disable @typescript-eslint/no-explicit-any */\n response: any;\n /* eslint-enable @typescript-eslint/no-explicit-any */\n}\n\n/**\n * Represents the result from executing a {@link ICommand}.\n */\nexport class CommandResult<TResponse = object> implements ICommandResult<TResponse> {\n\n static empty: CommandResult = new CommandResult({\n correlationId: Guid.empty.toString(),\n isSuccess: true,\n isAuthorized: true,\n isValid: true,\n hasExceptions: false,\n validationResults: [],\n exceptionMessages: [],\n exceptionStackTrace: '',\n authorizationFailureReason: '',\n response: null\n }, Object, false);\n\n static failed = (exceptionMessages: string[]): CommandResult => {\n return new CommandResult({\n correlationId: Guid.empty.toString(),\n isSuccess: false,\n isAuthorized: true,\n isValid: true,\n hasExceptions: true,\n validationResults: [],\n exceptionMessages: exceptionMessages,\n exceptionStackTrace: '',\n authorizationFailureReason: '',\n response: null\n }, Object, false);\n };\n\n /** @inheritdoc */\n readonly correlationId: Guid;\n\n /** @inheritdoc */\n readonly isSuccess: boolean;\n\n /** @inheritdoc */\n readonly isAuthorized: boolean;\n\n /** @inheritdoc */\n readonly isValid: boolean;\n\n /** @inheritdoc */\n readonly hasExceptions: boolean;\n\n /** @inheritdoc */\n readonly validationResults: ValidationResult[];\n\n /** @inheritdoc */\n readonly exceptionMessages: string[];\n\n /** @inheritdoc */\n readonly exceptionStackTrace: string;\n\n /** @inheritdoc */\n readonly authorizationFailureReason: string;\n\n /** @inheritdoc */\n readonly response?: TResponse;\n\n /**\n * Creates an instance of command result.\n * @param {*} result The JSON/any representation of the command result;\n * @param {Constructor} responseInstanceType The {@see Constructor} that represents the type of response, if any. Defaults to {@see Object}.\n * @param {boolean} isResponseTypeEnumerable Whether or not the response type is an enumerable or not.\n */\n constructor(result: ServerCommandResult, responseInstanceType: Constructor = Object, isResponseTypeEnumerable: boolean) {\n this.correlationId = Guid.parse(result.correlationId);\n this.isSuccess = result.isSuccess;\n this.isAuthorized = result.isAuthorized;\n this.isValid = result.isValid;\n this.hasExceptions = result.hasExceptions;\n this.validationResults = result.validationResults.map(_ => new ValidationResult(_.severity, _.message, _.members, _.state));\n this.exceptionMessages = result.exceptionMessages;\n this.exceptionStackTrace = result.exceptionStackTrace;\n this.authorizationFailureReason = result.authorizationFailureReason;\n\n if (result.response) {\n if (isResponseTypeEnumerable) {\n this.response = JsonSerializer.deserializeArrayFromInstance(responseInstanceType, result.response) as TResponse;\n } else {\n this.response = JsonSerializer.deserializeFromInstance(responseInstanceType, result.response) as TResponse;\n }\n }\n }\n\n /**\n * Set up a callback for when the command was successful.\n * @param {OnSuccess} callback The callback to call when the command was successful.\n * @returns {CommandResult} The instance of the command result.\n */\n onSuccess(callback: OnSuccess): CommandResult<TResponse> {\n if (this.isSuccess) {\n callback(this.response as TResponse);\n }\n return this;\n }\n\n /**\n * Set up a callback for when the command failed.\n * @param {OnFailed} callback The callback to call when the command failed.\n * @returns {CommandResult} The instance of the command result.\n */\n onFailed(callback: OnFailed<TResponse>): CommandResult<TResponse> {\n if (!this.isSuccess) {\n callback(this);\n }\n return this;\n }\n\n /**\n * Set up a callback for when the command failed with an exception.\n * @param {OnException} callback The callback to call when the command had an exception.\n * @returns {CommandResult} The instance of the command result.\n */\n onException(callback: OnException): CommandResult<TResponse> {\n if (this.hasExceptions) {\n callback(this.exceptionMessages, this.exceptionStackTrace);\n }\n return this;\n }\n\n /**\n * Set up a callback for when the command was unauthorized.\n * @param {OnUnauthorized} callback The callback to call when the command was unauthorized.\n * @returns {CommandResult} The instance of the command result.\n */\n onUnauthorized(callback: OnUnauthorized): CommandResult<TResponse> {\n if (!this.isAuthorized) {\n callback();\n }\n return this;\n }\n\n /**\n * Set up a callback for when the command had validation errors.\n * @param {OnSuccess} callback The callback to call when the command was invalid.\n * @returns {CommandResult} The instance of the command result.\n */\n onValidationFailure(callback: OnValidationFailure): CommandResult<TResponse> {\n if (!this.isValid) {\n callback(this.validationResults);\n }\n return this;\n }\n}\n"],"names":[],"mappings":";;;MAyDa,aAAa,CAAA;AAEtB,IAAA,OAAO,KAAK,GAAkB,IAAI,aAAa,CAAC;AAC5C,QAAA,aAAa,EAAE,IAAI,CAAC,KAAK,CAAC,QAAQ,EAAE;AACpC,QAAA,SAAS,EAAE,IAAI;AACf,QAAA,YAAY,EAAE,IAAI;AAClB,QAAA,OAAO,EAAE,IAAI;AACb,QAAA,aAAa,EAAE,KAAK;AACpB,QAAA,iBAAiB,EAAE,EAAE;AACrB,QAAA,iBAAiB,EAAE,EAAE;AACrB,QAAA,mBAAmB,EAAE,EAAE;AACvB,QAAA,0BAA0B,EAAE,EAAE;AAC9B,QAAA,QAAQ,EAAE;AACb,KAAA,EAAE,MAAM,EAAE,KAAK,CAAC;AAEjB,IAAA,OAAO,MAAM,GAAG,CAAC,iBAA2B,KAAmB;QAC3D,OAAO,IAAI,aAAa,CAAC;AACrB,YAAA,aAAa,EAAE,IAAI,CAAC,KAAK,CAAC,QAAQ,EAAE;AACpC,YAAA,SAAS,EAAE,KAAK;AAChB,YAAA,YAAY,EAAE,IAAI;AAClB,YAAA,OAAO,EAAE,IAAI;AACb,YAAA,aAAa,EAAE,IAAI;AACnB,YAAA,iBAAiB,EAAE,EAAE;AACrB,YAAA,iBAAiB,EAAE,iBAAiB;AACpC,YAAA,mBAAmB,EAAE,EAAE;AACvB,YAAA,0BAA0B,EAAE,EAAE;AAC9B,YAAA,QAAQ,EAAE;AACb,SAAA,EAAE,MAAM,EAAE,KAAK,CAAC;AACrB,IAAA,CAAC;AAGQ,IAAA,aAAa;AAGb,IAAA,SAAS;AAGT,IAAA,YAAY;AAGZ,IAAA,OAAO;AAGP,IAAA,aAAa;AAGb,IAAA,iBAAiB;AAGjB,IAAA,iBAAiB;AAGjB,IAAA,mBAAmB;AAGnB,IAAA,0BAA0B;AAG1B,IAAA,QAAQ;AAQjB,IAAA,WAAA,CAAY,MAA2B,EAAE,oBAAA,GAAoC,MAAM,EAAE,wBAAiC,EAAA;QAClH,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,aAAa,CAAC;AACrD,QAAA,IAAI,CAAC,SAAS,GAAG,MAAM,CAAC,SAAS;AACjC,QAAA,IAAI,CAAC,YAAY,GAAG,MAAM,CAAC,YAAY;AACvC,QAAA,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC,OAAO;AAC7B,QAAA,IAAI,CAAC,aAAa,GAAG,MAAM,CAAC,aAAa;AACzC,QAAA,IAAI,CAAC,iBAAiB,GAAG,MAAM,CAAC,iBAAiB,CAAC,GAAG,CAAC,CAAC,IAAI,IAAI,gBAAgB,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC;AAC3H,QAAA,IAAI,CAAC,iBAAiB,GAAG,MAAM,CAAC,iBAAiB;AACjD,QAAA,IAAI,CAAC,mBAAmB,GAAG,MAAM,CAAC,mBAAmB;AACrD,QAAA,IAAI,CAAC,0BAA0B,GAAG,MAAM,CAAC,0BAA0B;AAEnE,QAAA,IAAI,MAAM,CAAC,QAAQ,EAAE;YACjB,IAAI,wBAAwB,EAAE;AAC1B,gBAAA,IAAI,CAAC,QAAQ,GAAG,cAAc,CAAC,4BAA4B,CAAC,oBAAoB,EAAE,MAAM,CAAC,QAAQ,CAAc;YACnH;iBAAO;AACH,gBAAA,IAAI,CAAC,QAAQ,GAAG,cAAc,CAAC,uBAAuB,CAAC,oBAAoB,EAAE,MAAM,CAAC,QAAQ,CAAc;YAC9G;QACJ;IACJ;AAOA,IAAA,SAAS,CAAC,QAAmB,EAAA;AACzB,QAAA,IAAI,IAAI,CAAC,SAAS,EAAE;AAChB,YAAA,QAAQ,CAAC,IAAI,CAAC,QAAqB,CAAC;QACxC;AACA,QAAA,OAAO,IAAI;IACf;AAOA,IAAA,QAAQ,CAAC,QAA6B,EAAA;AAClC,QAAA,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE;YACjB,QAAQ,CAAC,IAAI,CAAC;QAClB;AACA,QAAA,OAAO,IAAI;IACf;AAOA,IAAA,WAAW,CAAC,QAAqB,EAAA;AAC7B,QAAA,IAAI,IAAI,CAAC,aAAa,EAAE;YACpB,QAAQ,CAAC,IAAI,CAAC,iBAAiB,EAAE,IAAI,CAAC,mBAAmB,CAAC;QAC9D;AACA,QAAA,OAAO,IAAI;IACf;AAOA,IAAA,cAAc,CAAC,QAAwB,EAAA;AACnC,QAAA,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE;AACpB,YAAA,QAAQ,EAAE;QACd;AACA,QAAA,OAAO,IAAI;IACf;AAOA,IAAA,mBAAmB,CAAC,QAA6B,EAAA;AAC7C,QAAA,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE;AACf,YAAA,QAAQ,CAAC,IAAI,CAAC,iBAAiB,CAAC;QACpC;AACA,QAAA,OAAO,IAAI;IACf;;;;;"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import { Guid } from '@cratis/fundamentals';
|
|
2
|
+
import { ValidationResult } from '../validation/ValidationResult';
|
|
3
|
+
import { Command } from './Command';
|
|
4
|
+
import { CommandResult } from './CommandResult';
|
|
5
|
+
import { ICommandResult } from './ICommandResult';
|
|
6
|
+
type GetSpecificState = (commandResult: CommandResult) => boolean;
|
|
7
|
+
export declare class CommandResults implements ICommandResult {
|
|
8
|
+
private readonly _commandResultsPerCommand;
|
|
9
|
+
constructor(_commandResultsPerCommand: Map<Command, CommandResult>);
|
|
10
|
+
readonly correlationId: Guid;
|
|
11
|
+
get isSuccess(): boolean;
|
|
12
|
+
get isAuthorized(): boolean;
|
|
13
|
+
get isValid(): boolean;
|
|
14
|
+
get hasExceptions(): boolean;
|
|
15
|
+
get validationResults(): ValidationResult[];
|
|
16
|
+
get exceptionMessages(): string[];
|
|
17
|
+
get authorizationFailureReason(): string;
|
|
18
|
+
get exceptionStackTrace(): string;
|
|
19
|
+
isAnyFalse(callback: GetSpecificState): boolean;
|
|
20
|
+
isAnyTrue(callback: GetSpecificState): boolean;
|
|
21
|
+
}
|
|
22
|
+
export {};
|
|
23
|
+
//# sourceMappingURL=CommandResults.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"CommandResults.d.ts","sourceRoot":"","sources":["../../../commands/CommandResults.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,IAAI,EAAE,MAAM,sBAAsB,CAAC;AAC5C,OAAO,EAAE,gBAAgB,EAAE,MAAM,gCAAgC,CAAC;AAClE,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAChD,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAElD,KAAK,gBAAgB,GAAG,CAAC,aAAa,EAAE,aAAa,KAAK,OAAO,CAAC;AAGlE,qBAAa,cAAe,YAAW,cAAc;IACrC,OAAO,CAAC,QAAQ,CAAC,yBAAyB;gBAAzB,yBAAyB,EAAE,GAAG,CAAC,OAAO,EAAE,aAAa,CAAC;IAInF,QAAQ,CAAC,aAAa,EAAE,IAAI,CAAc;IAG1C,IAAI,SAAS,IAAI,OAAO,CAEvB;IAGD,IAAI,YAAY,IAAI,OAAO,CAE1B;IAGD,IAAI,OAAO,IAAI,OAAO,CAErB;IAGD,IAAI,aAAa,IAAI,OAAO,CAE3B;IAGD,IAAI,iBAAiB,IAAI,gBAAgB,EAAE,CAQ1C;IAGD,IAAI,iBAAiB,IAAI,MAAM,EAAE,CAQhC;IAGD,IAAI,0BAA0B,IAAI,MAAM,CAUvC;IAGD,IAAI,mBAAmB,IAAI,MAAM,CAShC;IAGD,UAAU,CAAC,QAAQ,EAAE,gBAAgB;IASrC,SAAS,CAAC,QAAQ,EAAE,gBAAgB;CAQvC"}
|
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
import { Guid } from '@cratis/fundamentals';
|
|
2
|
+
|
|
3
|
+
class CommandResults {
|
|
4
|
+
_commandResultsPerCommand;
|
|
5
|
+
constructor(_commandResultsPerCommand) {
|
|
6
|
+
this._commandResultsPerCommand = _commandResultsPerCommand;
|
|
7
|
+
}
|
|
8
|
+
correlationId = Guid.empty;
|
|
9
|
+
get isSuccess() {
|
|
10
|
+
return this.isAnyFalse(_ => _.isSuccess);
|
|
11
|
+
}
|
|
12
|
+
get isAuthorized() {
|
|
13
|
+
return this.isAnyFalse(_ => _.isAuthorized);
|
|
14
|
+
}
|
|
15
|
+
get isValid() {
|
|
16
|
+
return this.isAnyFalse(_ => _.isValid);
|
|
17
|
+
}
|
|
18
|
+
get hasExceptions() {
|
|
19
|
+
return this.isAnyTrue(_ => _.hasExceptions);
|
|
20
|
+
}
|
|
21
|
+
get validationResults() {
|
|
22
|
+
const errors = [];
|
|
23
|
+
for (const result of this._commandResultsPerCommand.values()) {
|
|
24
|
+
result.validationResults.forEach(_ => errors.push(_));
|
|
25
|
+
}
|
|
26
|
+
return errors;
|
|
27
|
+
}
|
|
28
|
+
get exceptionMessages() {
|
|
29
|
+
const messages = [];
|
|
30
|
+
for (const result of this._commandResultsPerCommand.values()) {
|
|
31
|
+
result.exceptionMessages.forEach(_ => messages.push(_));
|
|
32
|
+
}
|
|
33
|
+
return messages;
|
|
34
|
+
}
|
|
35
|
+
get authorizationFailureReason() {
|
|
36
|
+
const reasons = [];
|
|
37
|
+
for (const result of this._commandResultsPerCommand.values()) {
|
|
38
|
+
if (result.authorizationFailureReason) {
|
|
39
|
+
reasons.push(result.authorizationFailureReason);
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
return reasons.join('; ');
|
|
43
|
+
}
|
|
44
|
+
get exceptionStackTrace() {
|
|
45
|
+
let stackTraces = '';
|
|
46
|
+
for (const result of this._commandResultsPerCommand.values()) {
|
|
47
|
+
stackTraces = stackTraces + '\n' + result.exceptionStackTrace;
|
|
48
|
+
}
|
|
49
|
+
return stackTraces;
|
|
50
|
+
}
|
|
51
|
+
isAnyFalse(callback) {
|
|
52
|
+
for (const result of this._commandResultsPerCommand.values()) {
|
|
53
|
+
if (!callback(result)) {
|
|
54
|
+
return false;
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
return true;
|
|
58
|
+
}
|
|
59
|
+
isAnyTrue(callback) {
|
|
60
|
+
for (const result of this._commandResultsPerCommand.values()) {
|
|
61
|
+
if (callback(result)) {
|
|
62
|
+
return true;
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
return false;
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
|
|
69
|
+
export { CommandResults };
|
|
70
|
+
//# sourceMappingURL=CommandResults.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"CommandResults.js","sources":["../../../commands/CommandResults.ts"],"sourcesContent":["// Copyright (c) Cratis. All rights reserved.\n// Licensed under the MIT license. See LICENSE file in the project root for full license information.\n\nimport { Guid } from '@cratis/fundamentals';\nimport { ValidationResult } from '../validation/ValidationResult';\nimport { Command } from './Command';\nimport { CommandResult } from './CommandResult';\nimport { ICommandResult } from './ICommandResult';\n\ntype GetSpecificState = (commandResult: CommandResult) => boolean;\n\n\nexport class CommandResults implements ICommandResult {\n constructor(private readonly _commandResultsPerCommand: Map<Command, CommandResult>) {\n }\n\n /** @inheritdoc */\n readonly correlationId: Guid = Guid.empty;\n\n /** @inheritdoc */\n get isSuccess(): boolean {\n return this.isAnyFalse(_ => _.isSuccess);\n }\n\n /** @inheritdoc */\n get isAuthorized(): boolean {\n return this.isAnyFalse(_ => _.isAuthorized);\n }\n\n /** @inheritdoc */\n get isValid(): boolean {\n return this.isAnyFalse(_ => _.isValid);\n }\n\n /** @inheritdoc */\n get hasExceptions(): boolean {\n return this.isAnyTrue(_ => _.hasExceptions);\n }\n\n /** @inheritdoc */\n get validationResults(): ValidationResult[] {\n const errors: ValidationResult[] = [];\n\n for (const result of this._commandResultsPerCommand.values()) {\n result.validationResults.forEach(_ => errors.push(_));\n }\n\n return errors;\n }\n\n /** @inheritdoc */\n get exceptionMessages(): string[] {\n const messages: string[] = [];\n\n for (const result of this._commandResultsPerCommand.values()) {\n result.exceptionMessages.forEach(_ => messages.push(_));\n }\n\n return messages;\n }\n\n /** @inheritdoc */\n get authorizationFailureReason(): string {\n const reasons: string[] = [];\n\n for (const result of this._commandResultsPerCommand.values()) {\n if (result.authorizationFailureReason) {\n reasons.push(result.authorizationFailureReason);\n }\n }\n\n return reasons.join('; ');\n }\n\n /** @inheritdoc */\n get exceptionStackTrace(): string {\n let stackTraces = '';\n\n for (const result of this._commandResultsPerCommand.values()) {\n stackTraces = stackTraces + '\\n' + result.exceptionStackTrace;\n }\n\n return stackTraces;\n\n }\n\n\n isAnyFalse(callback: GetSpecificState) {\n for (const result of this._commandResultsPerCommand.values()) {\n if (!callback(result)) {\n return false;\n }\n }\n return true;\n }\n\n isAnyTrue(callback: GetSpecificState) {\n for (const result of this._commandResultsPerCommand.values()) {\n if (callback(result)) {\n return true;\n }\n }\n return false;\n }\n}\n"],"names":[],"mappings":";;MAYa,cAAc,CAAA;AACM,IAAA,yBAAA;AAA7B,IAAA,WAAA,CAA6B,yBAAsD,EAAA;QAAtD,IAAA,CAAA,yBAAyB,GAAzB,yBAAyB;IACtD;AAGS,IAAA,aAAa,GAAS,IAAI,CAAC,KAAK;AAGzC,IAAA,IAAI,SAAS,GAAA;AACT,QAAA,OAAO,IAAI,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,CAAC,SAAS,CAAC;IAC5C;AAGA,IAAA,IAAI,YAAY,GAAA;AACZ,QAAA,OAAO,IAAI,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,CAAC,YAAY,CAAC;IAC/C;AAGA,IAAA,IAAI,OAAO,GAAA;AACP,QAAA,OAAO,IAAI,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC;IAC1C;AAGA,IAAA,IAAI,aAAa,GAAA;AACb,QAAA,OAAO,IAAI,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,CAAC,aAAa,CAAC;IAC/C;AAGA,IAAA,IAAI,iBAAiB,GAAA;QACjB,MAAM,MAAM,GAAuB,EAAE;QAErC,KAAK,MAAM,MAAM,IAAI,IAAI,CAAC,yBAAyB,CAAC,MAAM,EAAE,EAAE;AAC1D,YAAA,MAAM,CAAC,iBAAiB,CAAC,OAAO,CAAC,CAAC,IAAI,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QACzD;AAEA,QAAA,OAAO,MAAM;IACjB;AAGA,IAAA,IAAI,iBAAiB,GAAA;QACjB,MAAM,QAAQ,GAAa,EAAE;QAE7B,KAAK,MAAM,MAAM,IAAI,IAAI,CAAC,yBAAyB,CAAC,MAAM,EAAE,EAAE;AAC1D,YAAA,MAAM,CAAC,iBAAiB,CAAC,OAAO,CAAC,CAAC,IAAI,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAC3D;AAEA,QAAA,OAAO,QAAQ;IACnB;AAGA,IAAA,IAAI,0BAA0B,GAAA;QAC1B,MAAM,OAAO,GAAa,EAAE;QAE5B,KAAK,MAAM,MAAM,IAAI,IAAI,CAAC,yBAAyB,CAAC,MAAM,EAAE,EAAE;AAC1D,YAAA,IAAI,MAAM,CAAC,0BAA0B,EAAE;AACnC,gBAAA,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,0BAA0B,CAAC;YACnD;QACJ;AAEA,QAAA,OAAO,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC;IAC7B;AAGA,IAAA,IAAI,mBAAmB,GAAA;QACnB,IAAI,WAAW,GAAG,EAAE;QAEpB,KAAK,MAAM,MAAM,IAAI,IAAI,CAAC,yBAAyB,CAAC,MAAM,EAAE,EAAE;YAC1D,WAAW,GAAG,WAAW,GAAG,IAAI,GAAG,MAAM,CAAC,mBAAmB;QACjE;AAEA,QAAA,OAAO,WAAW;IAEtB;AAGA,IAAA,UAAU,CAAC,QAA0B,EAAA;QACjC,KAAK,MAAM,MAAM,IAAI,IAAI,CAAC,yBAAyB,CAAC,MAAM,EAAE,EAAE;AAC1D,YAAA,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE;AACnB,gBAAA,OAAO,KAAK;YAChB;QACJ;AACA,QAAA,OAAO,IAAI;IACf;AAEA,IAAA,SAAS,CAAC,QAA0B,EAAA;QAChC,KAAK,MAAM,MAAM,IAAI,IAAI,CAAC,yBAAyB,CAAC,MAAM,EAAE,EAAE;AAC1D,YAAA,IAAI,QAAQ,CAAC,MAAM,CAAC,EAAE;AAClB,gBAAA,OAAO,IAAI;YACf;QACJ;AACA,QAAA,OAAO,KAAK;IAChB;AACH;;;;"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { Validator } from '../validation/Validator';
|
|
2
|
+
export type CommandPropertyValidators = {
|
|
3
|
+
[key: string]: Validator;
|
|
4
|
+
};
|
|
5
|
+
export declare abstract class CommandValidator {
|
|
6
|
+
abstract readonly properties: CommandPropertyValidators;
|
|
7
|
+
get isValid(): boolean;
|
|
8
|
+
}
|
|
9
|
+
//# sourceMappingURL=CommandValidator.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"CommandValidator.d.ts","sourceRoot":"","sources":["../../../commands/CommandValidator.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAC;AAEpD,MAAM,MAAM,yBAAyB,GAAG;IAAE,CAAC,GAAG,EAAE,MAAM,GAAG,SAAS,CAAC;CAAE,CAAC;AAKtE,8BAAsB,gBAAgB;IAClC,QAAQ,CAAC,QAAQ,CAAC,UAAU,EAAE,yBAAyB,CAAC;IAExD,IAAI,OAAO,YAEV;CACJ"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"CommandValidator.js","sources":["../../../commands/CommandValidator.ts"],"sourcesContent":["// Copyright (c) Cratis. All rights reserved.\n// Licensed under the MIT license. See LICENSE file in the project root for full license information.\n\nimport { Validator } from '../validation/Validator';\n\nexport type CommandPropertyValidators = { [key: string]: Validator; };\n\n/**\n * Represents the command validator\n */\nexport abstract class CommandValidator {\n abstract readonly properties: CommandPropertyValidators;\n\n get isValid() {\n return true;\n }\n}\n"],"names":[],"mappings":"MAUsB,gBAAgB,CAAA;AAGlC,IAAA,IAAI,OAAO,GAAA;AACP,QAAA,OAAO,IAAI;IACf;AACH;;;;"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { ICanBeConfigured } from '../ICanBeConfigured';
|
|
2
|
+
import { CommandResult } from './CommandResult';
|
|
3
|
+
import { PropertyDescriptor } from '../reflection/PropertyDescriptor';
|
|
4
|
+
export type PropertyChanged = (property: string) => void;
|
|
5
|
+
export interface ICommand<TCommandContent = object, TCommandResponse = object> extends ICanBeConfigured {
|
|
6
|
+
readonly route: string;
|
|
7
|
+
readonly propertyDescriptors: PropertyDescriptor[];
|
|
8
|
+
execute(): Promise<CommandResult<TCommandResponse>>;
|
|
9
|
+
validate(): Promise<CommandResult<TCommandResponse>>;
|
|
10
|
+
clear(): void;
|
|
11
|
+
setInitialValues(values: TCommandContent): void;
|
|
12
|
+
setInitialValuesFromCurrentValues(): void;
|
|
13
|
+
revertChanges(): void;
|
|
14
|
+
readonly hasChanges: boolean;
|
|
15
|
+
propertyChanged(property: string): void;
|
|
16
|
+
onPropertyChanged(callback: PropertyChanged, thisArg: object): void;
|
|
17
|
+
}
|
|
18
|
+
//# sourceMappingURL=ICommand.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ICommand.d.ts","sourceRoot":"","sources":["../../../commands/ICommand.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AACvD,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAChD,OAAO,EAAE,kBAAkB,EAAE,MAAM,kCAAkC,CAAC;AAKtE,MAAM,MAAM,eAAe,GAAG,CAAC,QAAQ,EAAE,MAAM,KAAK,IAAI,CAAC;AAKzD,MAAM,WAAW,QAAQ,CAAC,eAAe,GAAG,MAAM,EAAE,gBAAgB,GAAG,MAAM,CAAE,SAAQ,gBAAgB;IAInG,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IAKvB,QAAQ,CAAC,mBAAmB,EAAE,kBAAkB,EAAE,CAAC;IAOnD,OAAO,IAAI,OAAO,CAAC,aAAa,CAAC,gBAAgB,CAAC,CAAC,CAAC;IASpD,QAAQ,IAAI,OAAO,CAAC,aAAa,CAAC,gBAAgB,CAAC,CAAC,CAAC;IAMrD,KAAK,IAAI,IAAI,CAAC;IAMd,gBAAgB,CAAC,MAAM,EAAE,eAAe,GAAG,IAAI,CAAC;IAKhD,iCAAiC,IAAI,IAAI,CAAC;IAK1C,aAAa,IAAI,IAAI,CAAC;IAKtB,QAAQ,CAAC,UAAU,EAAE,OAAO,CAAC;IAM7B,eAAe,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IAOxC,iBAAiB,CAAC,QAAQ,EAAE,eAAe,EAAE,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;CACvE"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ICommand.js","sourceRoot":"","sources":["../../../commands/ICommand.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { Guid } from '@cratis/fundamentals';
|
|
2
|
+
import { ValidationResult } from '../validation/ValidationResult';
|
|
3
|
+
export interface ICommandResult<TResponse = object> {
|
|
4
|
+
readonly correlationId: Guid;
|
|
5
|
+
readonly isSuccess: boolean;
|
|
6
|
+
readonly isAuthorized: boolean;
|
|
7
|
+
readonly isValid: boolean;
|
|
8
|
+
readonly hasExceptions: boolean;
|
|
9
|
+
readonly validationResults: ValidationResult[];
|
|
10
|
+
readonly exceptionMessages: string[];
|
|
11
|
+
readonly authorizationFailureReason: string;
|
|
12
|
+
readonly exceptionStackTrace: string;
|
|
13
|
+
readonly response?: TResponse;
|
|
14
|
+
}
|
|
15
|
+
//# sourceMappingURL=ICommandResult.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ICommandResult.d.ts","sourceRoot":"","sources":["../../../commands/ICommandResult.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,IAAI,EAAE,MAAM,sBAAsB,CAAC;AAC5C,OAAO,EAAE,gBAAgB,EAAE,MAAM,gCAAgC,CAAC;AAKjE,MAAM,WAAW,cAAc,CAAC,SAAS,GAAG,MAAM;IAI9C,QAAQ,CAAC,aAAa,EAAE,IAAI,CAAC;IAK7B,QAAQ,CAAC,SAAS,EAAE,OAAO,CAAC;IAK5B,QAAQ,CAAC,YAAY,EAAE,OAAO,CAAC;IAK/B,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;IAK1B,QAAQ,CAAC,aAAa,EAAE,OAAO,CAAC;IAKhC,QAAQ,CAAC,iBAAiB,EAAE,gBAAgB,EAAE,CAAC;IAK/C,QAAQ,CAAC,iBAAiB,EAAE,MAAM,EAAE,CAAC;IAKrC,QAAQ,CAAC,0BAA0B,EAAE,MAAM,CAAC;IAK5C,QAAQ,CAAC,mBAAmB,EAAE,MAAM,CAAC;IAKrC,QAAQ,CAAC,QAAQ,CAAC,EAAE,SAAS,CAAC;CAClC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ICommandResult.js","sourceRoot":"","sources":["../../../commands/ICommandResult.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../commands/index.ts"],"names":[],"mappings":"AAGA,cAAc,YAAY,CAAC;AAC3B,cAAc,WAAW,CAAC;AAC1B,cAAc,kBAAkB,CAAC;AACjC,cAAc,iBAAiB,CAAC;AAChC,cAAc,kBAAkB,CAAC;AACjC,cAAc,oBAAoB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"deepEqual.d.ts","sourceRoot":"","sources":["../../deepEqual.ts"],"names":[],"mappings":"AAGA,eAAO,MAAM,SAAS,GAAI,SAAI,EAAE,SAAI,YAmBnC,CAAC"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
const deepEqual = (obj1, obj2) => {
|
|
2
|
+
if (obj1 === obj2)
|
|
3
|
+
return true;
|
|
4
|
+
if (obj1 == null || obj2 == null || typeof obj1 !== "object" || typeof obj2 !== "object") {
|
|
5
|
+
return false;
|
|
6
|
+
}
|
|
7
|
+
const keys1 = Object.keys(obj1);
|
|
8
|
+
const keys2 = Object.keys(obj2);
|
|
9
|
+
if (keys1.length !== keys2.length) {
|
|
10
|
+
return false;
|
|
11
|
+
}
|
|
12
|
+
for (const key of keys1) {
|
|
13
|
+
if (!keys2.includes(key) || !deepEqual(obj1[key], obj2[key]))
|
|
14
|
+
return false;
|
|
15
|
+
}
|
|
16
|
+
return true;
|
|
17
|
+
};
|
|
18
|
+
|
|
19
|
+
export { deepEqual };
|
|
20
|
+
//# sourceMappingURL=deepEqual.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"deepEqual.js","sources":["../../deepEqual.ts"],"sourcesContent":["// Copyright (c) Cratis. All rights reserved.\n// Licensed under the MIT license. See LICENSE file in the project root for full license information.\n\nexport const deepEqual = (obj1, obj2) => {\n if (obj1 === obj2) return true; // Same reference or primitive value\n\n if (obj1 == null || obj2 == null || typeof obj1 !== \"object\" || typeof obj2 !== \"object\") {\n return false; // Handle null, undefined, or different types\n }\n\n const keys1 = Object.keys(obj1);\n const keys2 = Object.keys(obj2);\n\n if (keys1.length !== keys2.length) {\n return false; // Different number of keys\n }\n\n for (const key of keys1) {\n if (!keys2.includes(key) || !deepEqual(obj1[key], obj2[key])) return false;\n }\n\n return true; // All keys and values match\n};"],"names":[],"mappings":"MAGa,SAAS,GAAG,CAAC,IAAI,EAAE,IAAI,KAAI;IACpC,IAAI,IAAI,KAAK,IAAI;AAAE,QAAA,OAAO,IAAI;AAE9B,IAAA,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE;AACtF,QAAA,OAAO,KAAK;IAChB;IAEA,MAAM,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC;IAC/B,MAAM,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC;IAE/B,IAAI,KAAK,CAAC,MAAM,KAAK,KAAK,CAAC,MAAM,EAAE;AAC/B,QAAA,OAAO,KAAK;IAChB;AAEA,IAAA,KAAK,MAAM,GAAG,IAAI,KAAK,EAAE;QACrB,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC;AAAE,YAAA,OAAO,KAAK;IAC9E;AAEA,IAAA,OAAO,IAAI;AACf;;;;"}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import { Constructor } from '@cratis/fundamentals';
|
|
2
|
+
import { Suite } from 'mocha';
|
|
3
|
+
export type ContextForSuite<TContext extends object> = (this: Suite, context: TContext) => void;
|
|
4
|
+
export declare function given<TContext extends object>(contextType: Constructor<TContext>, callback: ContextForSuite<TContext>): (this: Suite) => void;
|
|
5
|
+
//# sourceMappingURL=given.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"given.d.ts","sourceRoot":"","sources":["../../given.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AACnD,OAAO,EAAE,KAAK,EAAE,MAAM,OAAO,CAAC;AAE9B,MAAM,MAAM,eAAe,CAAC,QAAQ,SAAS,MAAM,IAAI,CAAC,IAAI,EAAE,KAAK,EAAE,OAAO,EAAE,QAAQ,KAAK,IAAI,CAAC;AAEhG,wBAAgB,KAAK,CAAC,QAAQ,SAAS,MAAM,EAAE,WAAW,EAAE,WAAW,CAAC,QAAQ,CAAC,EAAE,QAAQ,EAAE,eAAe,CAAC,QAAQ,CAAC,IACjG,MAAM,KAAK,UAI/B"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"given.js","sourceRoot":"","sources":["../../given.ts"],"names":[],"mappings":"AAQA,MAAM,UAAU,KAAK,CAA0B,WAAkC,EAAE,QAAmC;IAClH,OAAO;QACH,MAAM,OAAO,GAAG,IAAI,WAAW,CAAC,IAAI,CAAC,CAAC;QACtC,QAAQ,CAAC,IAAI,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;IACjC,CAAC,CAAC;AACN,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"IIdentity.d.ts","sourceRoot":"","sources":["../../../identity/IIdentity.ts"],"names":[],"mappings":"AAMA,MAAM,WAAW,SAAS,CAAC,QAAQ,GAAG,MAAM;IAKxC,EAAE,EAAE,MAAM,CAAC;IAKX,IAAI,EAAE,MAAM,CAAC;IAKb,OAAO,EAAE,QAAQ,CAAC;IAKlB,KAAK,EAAE,OAAO,CAAC;IAKf,OAAO,IAAI,OAAO,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC,CAAC;CAC3C"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"IIdentity.js","sourceRoot":"","sources":["../../../identity/IIdentity.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"IIdentityProvider.d.ts","sourceRoot":"","sources":["../../../identity/IIdentityProvider.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAKxC,8BAAsB,iBAAiB;IAMnC,QAAQ,CAAC,UAAU,CAAC,QAAQ,GAAG,MAAM,KAAK,OAAO,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC;CACzE"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"IIdentityProvider.js","sources":["../../../identity/IIdentityProvider.ts"],"sourcesContent":["// Copyright (c) Cratis. All rights reserved.\n// Licensed under the MIT license. See LICENSE file in the project root for full license information.\n\nimport { IIdentity } from './IIdentity';\n\n/**\n * Defines the identity provider.\n */\nexport abstract class IIdentityProvider {\n\n /**\n * Gets the current identity by optionally specifying the details type.\n * @returns The current identity as {@link IIdentity}.\n */\n abstract getCurrent<TDetails = object>(): Promise<IIdentity<TDetails>>;\n}\n"],"names":[],"mappings":"MAQsB,iBAAiB,CAAA;AAOtC;;;;"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { IIdentityProvider } from './IIdentityProvider';
|
|
2
|
+
import { IIdentity } from './IIdentity';
|
|
3
|
+
import { GetHttpHeaders } from 'GetHttpHeaders';
|
|
4
|
+
export declare class IdentityProvider extends IIdentityProvider {
|
|
5
|
+
static readonly CookieName = ".cratis-identity";
|
|
6
|
+
static httpHeadersCallback: GetHttpHeaders | undefined;
|
|
7
|
+
static setHttpHeadersCallback(callback: GetHttpHeaders): void;
|
|
8
|
+
static getCurrent<TDetails = object>(): Promise<IIdentity<TDetails>>;
|
|
9
|
+
getCurrent<TDetails = object>(): Promise<IIdentity<TDetails>>;
|
|
10
|
+
static refresh<TDetails = object>(): Promise<IIdentity<TDetails>>;
|
|
11
|
+
private static getCookie;
|
|
12
|
+
private static clearCookie;
|
|
13
|
+
}
|
|
14
|
+
//# sourceMappingURL=IdentityProvider.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"IdentityProvider.d.ts","sourceRoot":"","sources":["../../../identity/IdentityProvider.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AACxD,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAExC,OAAO,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAKhD,qBAAa,gBAAiB,SAAQ,iBAAiB;IAEnD,MAAM,CAAC,QAAQ,CAAC,UAAU,sBAAsB;IAChD,MAAM,CAAC,mBAAmB,EAAE,cAAc,GAAG,SAAS,CAAC;IAMvD,MAAM,CAAC,sBAAsB,CAAC,QAAQ,EAAE,cAAc,GAAG,IAAI;WAQhD,UAAU,CAAC,QAAQ,GAAG,MAAM,KAAK,OAAO,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC;IAmBpE,UAAU,CAAC,QAAQ,GAAG,MAAM,KAAK,OAAO,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC;WAItD,OAAO,CAAC,QAAQ,GAAG,MAAM,KAAK,OAAO,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC;IAmBvE,OAAO,CAAC,MAAM,CAAC,SAAS;IAWxB,OAAO,CAAC,MAAM,CAAC,WAAW;CAG7B"}
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
import { IIdentityProvider } from './IIdentityProvider.js';
|
|
2
|
+
|
|
3
|
+
class IdentityProvider extends IIdentityProvider {
|
|
4
|
+
static CookieName = '.cratis-identity';
|
|
5
|
+
static httpHeadersCallback;
|
|
6
|
+
static setHttpHeadersCallback(callback) {
|
|
7
|
+
IdentityProvider.httpHeadersCallback = callback;
|
|
8
|
+
}
|
|
9
|
+
static async getCurrent() {
|
|
10
|
+
const cookie = this.getCookie();
|
|
11
|
+
if (cookie.length == 2) {
|
|
12
|
+
const json = atob(cookie[1]);
|
|
13
|
+
const result = JSON.parse(json);
|
|
14
|
+
return {
|
|
15
|
+
id: result.id,
|
|
16
|
+
name: result.name,
|
|
17
|
+
details: result.details,
|
|
18
|
+
isSet: true,
|
|
19
|
+
refresh: IdentityProvider.refresh
|
|
20
|
+
};
|
|
21
|
+
}
|
|
22
|
+
else {
|
|
23
|
+
const identity = await this.refresh();
|
|
24
|
+
return identity;
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
async getCurrent() {
|
|
28
|
+
return IdentityProvider.getCurrent();
|
|
29
|
+
}
|
|
30
|
+
static async refresh() {
|
|
31
|
+
IdentityProvider.clearCookie();
|
|
32
|
+
const response = await fetch('/.cratis/me', {
|
|
33
|
+
method: 'GET',
|
|
34
|
+
headers: IdentityProvider.httpHeadersCallback?.() ?? {}
|
|
35
|
+
});
|
|
36
|
+
const result = await response.json();
|
|
37
|
+
return {
|
|
38
|
+
id: result.id,
|
|
39
|
+
name: result.name,
|
|
40
|
+
details: result.details,
|
|
41
|
+
isSet: true,
|
|
42
|
+
refresh: IdentityProvider.refresh
|
|
43
|
+
};
|
|
44
|
+
}
|
|
45
|
+
static getCookie() {
|
|
46
|
+
const decoded = decodeURIComponent(document.cookie);
|
|
47
|
+
const cookies = decoded.split(';').map(_ => _.trim());
|
|
48
|
+
const cookie = cookies.find(_ => _.indexOf(`${IdentityProvider.CookieName}=`) == 0);
|
|
49
|
+
if (cookie) {
|
|
50
|
+
const keyValue = cookie.split('=');
|
|
51
|
+
return [keyValue[0].trim(), keyValue[1].trim()];
|
|
52
|
+
}
|
|
53
|
+
return [];
|
|
54
|
+
}
|
|
55
|
+
static clearCookie() {
|
|
56
|
+
document.cookie = `${IdentityProvider.CookieName}=;expires=Thu, 01 Jan 1970 00:00:00 GMT`;
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
export { IdentityProvider };
|
|
61
|
+
//# sourceMappingURL=IdentityProvider.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"IdentityProvider.js","sources":["../../../identity/IdentityProvider.ts"],"sourcesContent":["// Copyright (c) Cratis. All rights reserved.\n// Licensed under the MIT license. See LICENSE file in the project root for full license information.\n\nimport { IIdentityProvider } from './IIdentityProvider';\nimport { IIdentity } from './IIdentity';\nimport { IdentityProviderResult } from './IdentityProviderResult';\nimport { GetHttpHeaders } from 'GetHttpHeaders';\n\n/**\n * Represents an implementation of {@link IIdentityProvider}.\n*/\nexport class IdentityProvider extends IIdentityProvider {\n\n static readonly CookieName = '.cratis-identity';\n static httpHeadersCallback: GetHttpHeaders | undefined;\n\n /**\n * Sets the HTTP headers callback.\n * @param callback Callback to set.\n */\n static setHttpHeadersCallback(callback: GetHttpHeaders): void {\n IdentityProvider.httpHeadersCallback = callback;\n }\n\n /**\n * Gets the current identity by optionally specifying the details type.\n * @returns The current identity as {@link IIdentity}.\n */\n static async getCurrent<TDetails = object>(): Promise<IIdentity<TDetails>> {\n const cookie = this.getCookie();\n if (cookie.length == 2) {\n const json = atob(cookie[1]);\n const result = JSON.parse(json) as IdentityProviderResult;\n return {\n id: result.id,\n name: result.name,\n details: result.details,\n isSet: true,\n refresh: IdentityProvider.refresh\n } as IIdentity<TDetails>;\n } else {\n const identity = await this.refresh<TDetails>();\n return identity;\n }\n }\n\n /** @inheritdoc */\n async getCurrent<TDetails = object>(): Promise<IIdentity<TDetails>> {\n return IdentityProvider.getCurrent<TDetails>();\n }\n\n static async refresh<TDetails = object>(): Promise<IIdentity<TDetails>> {\n IdentityProvider.clearCookie();\n const response = await fetch(\n '/.cratis/me', {\n method: 'GET',\n headers: IdentityProvider.httpHeadersCallback?.() ?? {}\n });\n\n const result = await response.json() as IdentityProviderResult;\n\n return {\n id: result.id,\n name: result.name,\n details: result.details as TDetails,\n isSet: true,\n refresh: IdentityProvider.refresh\n };\n }\n\n private static getCookie() {\n const decoded = decodeURIComponent(document.cookie);\n const cookies = decoded.split(';').map(_ => _.trim());\n const cookie = cookies.find(_ => _.indexOf(`${IdentityProvider.CookieName}=`) == 0);\n if (cookie) {\n const keyValue = cookie.split('=');\n return [keyValue[0].trim(), keyValue[1].trim()];\n }\n return [];\n }\n\n private static clearCookie() {\n document.cookie = `${IdentityProvider.CookieName}=;expires=Thu, 01 Jan 1970 00:00:00 GMT`;\n }\n}\n"],"names":[],"mappings":";;AAWM,MAAO,gBAAiB,SAAQ,iBAAiB,CAAA;AAEnD,IAAA,OAAgB,UAAU,GAAG,kBAAkB;IAC/C,OAAO,mBAAmB;IAM1B,OAAO,sBAAsB,CAAC,QAAwB,EAAA;AAClD,QAAA,gBAAgB,CAAC,mBAAmB,GAAG,QAAQ;IACnD;IAMA,aAAa,UAAU,GAAA;AACnB,QAAA,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,EAAE;AAC/B,QAAA,IAAI,MAAM,CAAC,MAAM,IAAI,CAAC,EAAE;YACpB,MAAM,IAAI,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;YAC5B,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAA2B;YACzD,OAAO;gBACH,EAAE,EAAE,MAAM,CAAC,EAAE;gBACb,IAAI,EAAE,MAAM,CAAC,IAAI;gBACjB,OAAO,EAAE,MAAM,CAAC,OAAO;AACvB,gBAAA,KAAK,EAAE,IAAI;gBACX,OAAO,EAAE,gBAAgB,CAAC;aACN;QAC5B;aAAO;AACH,YAAA,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,OAAO,EAAY;AAC/C,YAAA,OAAO,QAAQ;QACnB;IACJ;AAGA,IAAA,MAAM,UAAU,GAAA;AACZ,QAAA,OAAO,gBAAgB,CAAC,UAAU,EAAY;IAClD;IAEA,aAAa,OAAO,GAAA;QAChB,gBAAgB,CAAC,WAAW,EAAE;AAC9B,QAAA,MAAM,QAAQ,GAAG,MAAM,KAAK,CACxB,aAAa,EAAE;AACf,YAAA,MAAM,EAAE,KAAK;AACb,YAAA,OAAO,EAAE,gBAAgB,CAAC,mBAAmB,IAAI,IAAI;AACxD,SAAA,CAAC;AAEF,QAAA,MAAM,MAAM,GAAG,MAAM,QAAQ,CAAC,IAAI,EAA4B;QAE9D,OAAO;YACH,EAAE,EAAE,MAAM,CAAC,EAAE;YACb,IAAI,EAAE,MAAM,CAAC,IAAI;YACjB,OAAO,EAAE,MAAM,CAAC,OAAmB;AACnC,YAAA,KAAK,EAAE,IAAI;YACX,OAAO,EAAE,gBAAgB,CAAC;SAC7B;IACL;AAEQ,IAAA,OAAO,SAAS,GAAA;QACpB,MAAM,OAAO,GAAG,kBAAkB,CAAC,QAAQ,CAAC,MAAM,CAAC;QACnD,MAAM,OAAO,GAAG,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,CAAC;QACrD,MAAM,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,CAAA,EAAG,gBAAgB,CAAC,UAAU,GAAG,CAAC,IAAI,CAAC,CAAC;QACnF,IAAI,MAAM,EAAE;YACR,MAAM,QAAQ,GAAG,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC;AAClC,YAAA,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;QACnD;AACA,QAAA,OAAO,EAAE;IACb;AAEQ,IAAA,OAAO,WAAW,GAAA;QACtB,QAAQ,CAAC,MAAM,GAAG,CAAA,EAAG,gBAAgB,CAAC,UAAU,yCAAyC;IAC7F;;;;;"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"IdentityProviderResult.d.ts","sourceRoot":"","sources":["../../../identity/IdentityProviderResult.ts"],"names":[],"mappings":"AAGA,MAAM,MAAM,sBAAsB,GAAG;IACjC,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;CACnB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"IdentityProviderResult.js","sourceRoot":"","sources":["../../../identity/IdentityProviderResult.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../identity/index.ts"],"names":[],"mappings":"AAGA,cAAc,oBAAoB,CAAC;AACnC,cAAc,0BAA0B,CAAC;AACzC,cAAc,qBAAqB,CAAC;AACpC,cAAc,aAAa,CAAC"}
|