From 7b30463ab53b59eaa3cbe4332ce2ed5c8e58b64e Mon Sep 17 00:00:00 2001 From: quarj0 Date: Wed, 12 Aug 2026 18:09:00 +0000 Subject: [PATCH 1/6] Add initial SDK structure and implement core functionality - Created pom.properties for Maven configuration. - Added generated model classes for API requests and responses. - Implemented IdentityCoreClient with methods for API interaction. - Developed unit tests for IdentityCoreClient and WebhookVerifier. - Included compatibility tests for SDK functionality. --- .../src/IdentityCore/IdentityCoreClient.cs | 4 +- .../IdentityCoreApiException.java | 28 +- .../io/identitycore/IdentityCoreClient.java | 280 ++++++++++++++--- .../identitycore/IdentityCoreException.java | 11 +- .../java/io/identitycore/WebhookVerifier.java | 30 +- .../identitycore/models/GeneratedModels.java | 152 +++++++--- .../identitycore/IdentityCoreClientTest.java | 36 ++- .../identitycore/LiveCompatibilityTest.java | 16 +- .../io/identitycore/WebhookVerifierTest.java | 17 +- .../IdentityCoreApiException.class | Bin 0 -> 1071 bytes .../IdentityCoreClient$Builder.class | Bin 0 -> 2380 bytes .../IdentityCoreClient$Policies.class | Bin 0 -> 1504 bytes .../IdentityCoreClient$RawResponse.class | Bin 0 -> 1695 bytes .../IdentityCoreClient$Transport.class | Bin 0 -> 828 bytes .../IdentityCoreClient$Verifications$1.class | Bin 0 -> 2811 bytes .../IdentityCoreClient$Verifications.class | Bin 0 -> 5603 bytes .../io/identitycore/IdentityCoreClient.class | Bin 0 -> 12199 bytes .../identitycore/IdentityCoreException.class | Bin 0 -> 568 bytes .../io/identitycore/WebhookVerifier.class | Bin 0 -> 2950 bytes ...neratedModels$APIClientCreateRequest.class | Bin 0 -> 3059 bytes ...eratedModels$APIClientCreateResponse.class | Bin 0 -> 5063 bytes .../GeneratedModels$APIClientSummary.class | Bin 0 -> 4799 bytes .../GeneratedModels$CursorPagination.class | Bin 0 -> 2278 bytes .../models/GeneratedModels$Error.class | Bin 0 -> 2219 bytes .../GeneratedModels$ErrorEnvelope.class | Bin 0 -> 2469 bytes .../GeneratedModels$EvidenceReport.class | Bin 0 -> 2618 bytes ...edModels$ManualReviewApprovalRequest.class | Bin 0 -> 1853 bytes ...dModels$ManualReviewApprovalResponse.class | Bin 0 -> 2284 bytes ...edModels$ManualReviewDecisionRequest.class | Bin 0 -> 2266 bytes ...dModels$ManualReviewDecisionResponse.class | Bin 0 -> 2478 bytes .../GeneratedModels$ManualReviewSummary.class | Bin 0 -> 3158 bytes ...ganizationBrandingAssetUploadRequest.class | Bin 0 -> 2322 bytes ...anizationBrandingAssetUploadResponse.class | Bin 0 -> 2732 bytes .../GeneratedModels$OrganizationProfile.class | Bin 0 -> 4542 bytes ...onSupportingDocumentCompleteResponse.class | Bin 0 -> 2173 bytes ...tionSupportingDocumentDeleteResponse.class | Bin 0 -> 2210 bytes ...ationSupportingDocumentUploadRequest.class | Bin 0 -> 2409 bytes ...tionSupportingDocumentUploadResponse.class | Bin 0 -> 3209 bytes .../GeneratedModels$PagePagination.class | Bin 0 -> 2389 bytes .../models/GeneratedModels$Policy.class | Bin 0 -> 5319 bytes ...atedModels$PortalUploadCreateRequest.class | Bin 0 -> 2299 bytes ...tedModels$PortalUploadCreateResponse.class | Bin 0 -> 3009 bytes ...dModels$PortalUploadTransferResponse.class | Bin 0 -> 1860 bytes ...GeneratedModels$ProjectCreateRequest.class | Bin 0 -> 2707 bytes .../GeneratedModels$ProjectSummary.class | Bin 0 -> 3775 bytes ...atedModels$VerificationCreateRequest.class | Bin 0 -> 3472 bytes ...tedModels$VerificationCreateResponse.class | Bin 0 -> 2844 bytes .../GeneratedModels$VerificationDetail.class | Bin 0 -> 4641 bytes .../GeneratedModels$VerificationResult.class | Bin 0 -> 3920 bytes ...ratedModels$VerificationSubjectInput.class | Bin 0 -> 2747 bytes .../GeneratedModels$VerificationSummary.class | Bin 0 -> 3316 bytes ...dModels$WebhookEndpointCreateRequest.class | Bin 0 -> 2747 bytes ...Models$WebhookEndpointCreateResponse.class | Bin 0 -> 3801 bytes ...neratedModels$WebhookEndpointSummary.class | Bin 0 -> 3551 bytes ...edModels$WebhookEndpointTestResponse.class | Bin 0 -> 1877 bytes .../GeneratedModels$WorkflowSummary.class | Bin 0 -> 4605 bytes .../identitycore/models/GeneratedModels.class | Bin 0 -> 4301 bytes .../target/identitycore-sdk-0.2.0-sources.jar | Bin 0 -> 8809 bytes sdk/java/target/identitycore-sdk-0.2.0.jar | Bin 0 -> 67288 bytes sdk/java/target/maven-archiver/pom.properties | 3 + .../compile/default-compile/createdFiles.lst | 48 +++ .../compile/default-compile/inputFiles.lst | 5 + .../default-testCompile/createdFiles.lst | 3 + .../default-testCompile/inputFiles.lst | 3 + .../identitycore/IdentityCoreClientTest.class | Bin 0 -> 6195 bytes .../identitycore/LiveCompatibilityTest.class | Bin 0 -> 5800 bytes .../io/identitycore/WebhookVerifierTest.class | Bin 0 -> 2190 bytes sdk/javascript/src/index.d.ts | 104 ++++++- sdk/javascript/src/index.js | 286 +++++++++++++++--- sdk/python/identitycore/models.py | 102 ++++++- sdk/python/identitycore/webhooks.py | 1 - 71 files changed, 940 insertions(+), 189 deletions(-) create mode 100644 sdk/java/target/classes/io/identitycore/IdentityCoreApiException.class create mode 100644 sdk/java/target/classes/io/identitycore/IdentityCoreClient$Builder.class create mode 100644 sdk/java/target/classes/io/identitycore/IdentityCoreClient$Policies.class create mode 100644 sdk/java/target/classes/io/identitycore/IdentityCoreClient$RawResponse.class create mode 100644 sdk/java/target/classes/io/identitycore/IdentityCoreClient$Transport.class create mode 100644 sdk/java/target/classes/io/identitycore/IdentityCoreClient$Verifications$1.class create mode 100644 sdk/java/target/classes/io/identitycore/IdentityCoreClient$Verifications.class create mode 100644 sdk/java/target/classes/io/identitycore/IdentityCoreClient.class create mode 100644 sdk/java/target/classes/io/identitycore/IdentityCoreException.class create mode 100644 sdk/java/target/classes/io/identitycore/WebhookVerifier.class create mode 100644 sdk/java/target/classes/io/identitycore/models/GeneratedModels$APIClientCreateRequest.class create mode 100644 sdk/java/target/classes/io/identitycore/models/GeneratedModels$APIClientCreateResponse.class create mode 100644 sdk/java/target/classes/io/identitycore/models/GeneratedModels$APIClientSummary.class create mode 100644 sdk/java/target/classes/io/identitycore/models/GeneratedModels$CursorPagination.class create mode 100644 sdk/java/target/classes/io/identitycore/models/GeneratedModels$Error.class create mode 100644 sdk/java/target/classes/io/identitycore/models/GeneratedModels$ErrorEnvelope.class create mode 100644 sdk/java/target/classes/io/identitycore/models/GeneratedModels$EvidenceReport.class create mode 100644 sdk/java/target/classes/io/identitycore/models/GeneratedModels$ManualReviewApprovalRequest.class create mode 100644 sdk/java/target/classes/io/identitycore/models/GeneratedModels$ManualReviewApprovalResponse.class create mode 100644 sdk/java/target/classes/io/identitycore/models/GeneratedModels$ManualReviewDecisionRequest.class create mode 100644 sdk/java/target/classes/io/identitycore/models/GeneratedModels$ManualReviewDecisionResponse.class create mode 100644 sdk/java/target/classes/io/identitycore/models/GeneratedModels$ManualReviewSummary.class create mode 100644 sdk/java/target/classes/io/identitycore/models/GeneratedModels$OrganizationBrandingAssetUploadRequest.class create mode 100644 sdk/java/target/classes/io/identitycore/models/GeneratedModels$OrganizationBrandingAssetUploadResponse.class create mode 100644 sdk/java/target/classes/io/identitycore/models/GeneratedModels$OrganizationProfile.class create mode 100644 sdk/java/target/classes/io/identitycore/models/GeneratedModels$OrganizationSupportingDocumentCompleteResponse.class create mode 100644 sdk/java/target/classes/io/identitycore/models/GeneratedModels$OrganizationSupportingDocumentDeleteResponse.class create mode 100644 sdk/java/target/classes/io/identitycore/models/GeneratedModels$OrganizationSupportingDocumentUploadRequest.class create mode 100644 sdk/java/target/classes/io/identitycore/models/GeneratedModels$OrganizationSupportingDocumentUploadResponse.class create mode 100644 sdk/java/target/classes/io/identitycore/models/GeneratedModels$PagePagination.class create mode 100644 sdk/java/target/classes/io/identitycore/models/GeneratedModels$Policy.class create mode 100644 sdk/java/target/classes/io/identitycore/models/GeneratedModels$PortalUploadCreateRequest.class create mode 100644 sdk/java/target/classes/io/identitycore/models/GeneratedModels$PortalUploadCreateResponse.class create mode 100644 sdk/java/target/classes/io/identitycore/models/GeneratedModels$PortalUploadTransferResponse.class create mode 100644 sdk/java/target/classes/io/identitycore/models/GeneratedModels$ProjectCreateRequest.class create mode 100644 sdk/java/target/classes/io/identitycore/models/GeneratedModels$ProjectSummary.class create mode 100644 sdk/java/target/classes/io/identitycore/models/GeneratedModels$VerificationCreateRequest.class create mode 100644 sdk/java/target/classes/io/identitycore/models/GeneratedModels$VerificationCreateResponse.class create mode 100644 sdk/java/target/classes/io/identitycore/models/GeneratedModels$VerificationDetail.class create mode 100644 sdk/java/target/classes/io/identitycore/models/GeneratedModels$VerificationResult.class create mode 100644 sdk/java/target/classes/io/identitycore/models/GeneratedModels$VerificationSubjectInput.class create mode 100644 sdk/java/target/classes/io/identitycore/models/GeneratedModels$VerificationSummary.class create mode 100644 sdk/java/target/classes/io/identitycore/models/GeneratedModels$WebhookEndpointCreateRequest.class create mode 100644 sdk/java/target/classes/io/identitycore/models/GeneratedModels$WebhookEndpointCreateResponse.class create mode 100644 sdk/java/target/classes/io/identitycore/models/GeneratedModels$WebhookEndpointSummary.class create mode 100644 sdk/java/target/classes/io/identitycore/models/GeneratedModels$WebhookEndpointTestResponse.class create mode 100644 sdk/java/target/classes/io/identitycore/models/GeneratedModels$WorkflowSummary.class create mode 100644 sdk/java/target/classes/io/identitycore/models/GeneratedModels.class create mode 100644 sdk/java/target/identitycore-sdk-0.2.0-sources.jar create mode 100644 sdk/java/target/identitycore-sdk-0.2.0.jar create mode 100644 sdk/java/target/maven-archiver/pom.properties create mode 100644 sdk/java/target/maven-status/maven-compiler-plugin/compile/default-compile/createdFiles.lst create mode 100644 sdk/java/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst create mode 100644 sdk/java/target/maven-status/maven-compiler-plugin/testCompile/default-testCompile/createdFiles.lst create mode 100644 sdk/java/target/maven-status/maven-compiler-plugin/testCompile/default-testCompile/inputFiles.lst create mode 100644 sdk/java/target/test-classes/io/identitycore/IdentityCoreClientTest.class create mode 100644 sdk/java/target/test-classes/io/identitycore/LiveCompatibilityTest.class create mode 100644 sdk/java/target/test-classes/io/identitycore/WebhookVerifierTest.class diff --git a/sdk/dotnet/src/IdentityCore/IdentityCoreClient.cs b/sdk/dotnet/src/IdentityCore/IdentityCoreClient.cs index 168bce0d..b5d47cde 100644 --- a/sdk/dotnet/src/IdentityCore/IdentityCoreClient.cs +++ b/sdk/dotnet/src/IdentityCore/IdentityCoreClient.cs @@ -107,7 +107,7 @@ public sealed class VerificationsResource(IdentityCoreClient client) public Task ListCursorAsync(string? status = null, string? externalReference = null, string? cursor = null, int? limit = null, CancellationToken token = default) => client.SendAsync(HttpMethod.Get, "/verifications/" + Query(new() { ["status"] = status, ["external_reference"] = externalReference, ["cursor"] = cursor, ["limit"] = limit }), cancellationToken: token); public async IAsyncEnumerable IterateAsync(string? status = null, string? externalReference = null, int pageSize = 100, [EnumeratorCancellation] CancellationToken token = default) { - string? cursor=null; do { var result=await ListCursorAsync(status,externalReference,cursor,pageSize,token); foreach(var item in result.GetProperty("results").EnumerateArray()) yield return item.Clone(); cursor=result.GetProperty("pagination").GetProperty("next_cursor").GetString(); } while(!string.IsNullOrEmpty(cursor)); + string? cursor = null; do { var result = await ListCursorAsync(status, externalReference, cursor, pageSize, token); foreach (var item in result.GetProperty("results").EnumerateArray()) yield return item.Clone(); cursor = result.GetProperty("pagination").GetProperty("next_cursor").GetString(); } while (!string.IsNullOrEmpty(cursor)); } public Task RetrieveAsync(string id, CancellationToken token = default) => client.SendAsync(HttpMethod.Get, "/verifications/" + Segment(id), cancellationToken: token); public Task ResultAsync(string id, CancellationToken token = default) => client.SendAsync(HttpMethod.Get, "/verifications/" + Segment(id) + "/result", cancellationToken: token); @@ -116,5 +116,5 @@ public async IAsyncEnumerable IterateAsync(string? status = null, s public Task EvidenceReportAsync(string id, CancellationToken token = default) => client.SendAsync(HttpMethod.Get, "/verifications/" + Segment(id) + "/evidence-report", cancellationToken: token); } private static string Segment(string value) => Uri.EscapeDataString(value); - private static string Query(Dictionary values) { var parts=values.Where(x=>x.Value is not null && !string.IsNullOrWhiteSpace(x.Value.ToString())).Select(x=>$"{Uri.EscapeDataString(x.Key)}={Uri.EscapeDataString(x.Value!.ToString()!)}"); var q=string.Join("&",parts); return q.Length==0?"":"?"+q; } + private static string Query(Dictionary values) { var parts = values.Where(x => x.Value is not null && !string.IsNullOrWhiteSpace(x.Value.ToString())).Select(x => $"{Uri.EscapeDataString(x.Key)}={Uri.EscapeDataString(x.Value!.ToString()!)}"); var q = string.Join("&", parts); return q.Length == 0 ? "" : "?" + q; } } diff --git a/sdk/java/src/main/java/io/identitycore/IdentityCoreApiException.java b/sdk/java/src/main/java/io/identitycore/IdentityCoreApiException.java index 1382b0ca..a6e2f62a 100644 --- a/sdk/java/src/main/java/io/identitycore/IdentityCoreApiException.java +++ b/sdk/java/src/main/java/io/identitycore/IdentityCoreApiException.java @@ -3,17 +3,33 @@ import com.fasterxml.jackson.databind.JsonNode; public final class IdentityCoreApiException extends IdentityCoreException { + private final String code; private final int status; private final String requestId; private final JsonNode details; public IdentityCoreApiException(String message, String code, int status, String requestId, JsonNode details) { - super(message); this.code = code; this.status = status; this.requestId = requestId; this.details = details; + super(message); + this.code = code; + this.status = status; + this.requestId = requestId; + this.details = details; + } + + public String code() { + return code; + } + + public int status() { + return status; + } + + public String requestId() { + return requestId; } - public String code() { return code; } - public int status() { return status; } - public String requestId() { return requestId; } - public JsonNode details() { return details; } -} + public JsonNode details() { + return details; + } +} diff --git a/sdk/java/src/main/java/io/identitycore/IdentityCoreClient.java b/sdk/java/src/main/java/io/identitycore/IdentityCoreClient.java index e553d089..64932adf 100644 --- a/sdk/java/src/main/java/io/identitycore/IdentityCoreClient.java +++ b/sdk/java/src/main/java/io/identitycore/IdentityCoreClient.java @@ -18,57 +18,110 @@ import java.util.UUID; public final class IdentityCoreClient { + public static final String VERSION = "0.2.0"; private static final List RETRYABLE = List.of(408, 429, 500, 502, 503, 504); - private final URI apiOrigin; private final String clientId; private final String clientSecret; - private final Duration timeout; private final int maxRetries; private final Duration retryBackoff; - private final ObjectMapper json; private final Transport transport; - public final Policies policies = new Policies(); public final Verifications verifications = new Verifications(); + private final URI apiOrigin; + private final String clientId; + private final String clientSecret; + private final Duration timeout; + private final int maxRetries; + private final Duration retryBackoff; + private final ObjectMapper json; + private final Transport transport; + public final Policies policies = new Policies(); + public final Verifications verifications = new Verifications(); + + public static Builder builder() { + return new Builder(); + } - public static Builder builder() { return new Builder(); } private IdentityCoreClient(Builder b) { - if (b.apiOrigin == null || !b.apiOrigin.isAbsolute() || b.apiOrigin.getHost() == null || !List.of("http", "https").contains(b.apiOrigin.getScheme())) throw new IdentityCoreException("apiOrigin must be an absolute HTTP(S) URL."); - if (b.clientId == null || b.clientId.isBlank() || b.clientSecret == null || b.clientSecret.isBlank()) throw new IdentityCoreException("clientId and clientSecret are required."); - if (b.timeout.isZero() || b.timeout.isNegative() || b.maxRetries < 0 || b.retryBackoff.isNegative()) throw new IdentityCoreException("Retry and timeout settings are invalid."); - this.apiOrigin = URI.create(b.apiOrigin.toString().replaceAll("/$", "")); this.clientId=b.clientId; this.clientSecret=b.clientSecret; - this.timeout=b.timeout; this.maxRetries=b.maxRetries; this.retryBackoff=b.retryBackoff; this.json=b.json; this.transport=b.transport != null ? b.transport : defaultTransport(); + if (b.apiOrigin == null || !b.apiOrigin.isAbsolute() || b.apiOrigin.getHost() == null || !List.of("http", "https").contains(b.apiOrigin.getScheme())) { + throw new IdentityCoreException("apiOrigin must be an absolute HTTP(S) URL."); + } + if (b.clientId == null || b.clientId.isBlank() || b.clientSecret == null || b.clientSecret.isBlank()) { + throw new IdentityCoreException("clientId and clientSecret are required."); + } + if (b.timeout.isZero() || b.timeout.isNegative() || b.maxRetries < 0 || b.retryBackoff.isNegative()) { + throw new IdentityCoreException("Retry and timeout settings are invalid."); + } + this.apiOrigin = URI.create(b.apiOrigin.toString().replaceAll("/$", "")); + this.clientId = b.clientId; + this.clientSecret = b.clientSecret; + this.timeout = b.timeout; + this.maxRetries = b.maxRetries; + this.retryBackoff = b.retryBackoff; + this.json = b.json; + this.transport = b.transport != null ? b.transport : defaultTransport(); } - public JsonNode health() { return request("GET", "/health", null, null); } + public JsonNode health() { + return request("GET", "/health", null, null); + } public JsonNode request(String method, String path, JsonNode body, String idempotencyKey) { method = method.toUpperCase(); boolean retryableMethod = List.of("GET", "HEAD", "OPTIONS").contains(method) || (idempotencyKey != null && !idempotencyKey.isBlank()); String requestId = "req_" + UUID.randomUUID().toString().replace("-", ""); - Map headers = new LinkedHashMap<>(); - headers.put("Accept", "application/json"); headers.put("Authorization", "Bearer " + clientSecret); headers.put("X-Client-Id", clientId); - headers.put("X-Request-Id", requestId); headers.put("User-Agent", "identitycore-java/" + VERSION); - if (body != null) headers.put("Content-Type", "application/json"); - if (idempotencyKey != null && !idempotencyKey.isBlank()) headers.put("Idempotency-Key", idempotencyKey); + Map headers = new LinkedHashMap<>(); + headers.put("Accept", "application/json"); + headers.put("Authorization", "Bearer " + clientSecret); + headers.put("X-Client-Id", clientId); + headers.put("X-Request-Id", requestId); + headers.put("User-Agent", "identitycore-java/" + VERSION); + if (body != null) { + headers.put("Content-Type", "application/json"); + } + if (idempotencyKey != null && !idempotencyKey.isBlank()) { + headers.put("Idempotency-Key", idempotencyKey); + } String encoded = body == null ? null : body.toString(); - for (int attempt=0; attempt<=maxRetries; attempt++) { + for (int attempt = 0; attempt <= maxRetries; attempt++) { try { RawResponse response = transport.send(method, URI.create(apiOrigin + "/api/v1" + path), headers, encoded, timeout); - if (retryableMethod && RETRYABLE.contains(response.status()) && attempt < maxRetries) { pause(attempt); continue; } + if (retryableMethod && RETRYABLE.contains(response.status()) && attempt < maxRetries) { + pause(attempt); + continue; + } return parse(response); } catch (IOException error) { - if (retryableMethod && attempt < maxRetries) { pause(attempt); continue; } + if (retryableMethod && attempt < maxRetries) { + pause(attempt); + continue; + } throw new IdentityCoreException("Could not connect to IdentityCore.", error); - } catch (InterruptedException error) { Thread.currentThread().interrupt(); throw new IdentityCoreException("The request was interrupted.", error); } + } catch (InterruptedException error) { + Thread.currentThread().interrupt(); + throw new IdentityCoreException("The request was interrupted.", error); + } } throw new IdentityCoreException("Could not connect to IdentityCore."); } private JsonNode parse(RawResponse response) { final JsonNode envelope; - try { envelope = json.readTree(response.body()); } catch (JsonProcessingException error) { throw new IdentityCoreApiException("The service returned an invalid response.", "invalid_response", response.status(), "", json.createObjectNode()); } + try { + envelope = json.readTree(response.body()); + } catch (JsonProcessingException error) { + throw new IdentityCoreApiException("The service returned an invalid response.", "invalid_response", response.status(), "", json.createObjectNode()); + } if (response.status() >= 400 || !envelope.path("success").asBoolean(false)) { JsonNode error = envelope.path("error"); throw new IdentityCoreApiException(error.path("message").asText("Request failed."), error.path("code").asText("request_failed"), response.status(), envelope.path("request_id").asText(""), error.path("details")); } return envelope.path("data"); } - private void pause(int attempt) { try { Thread.sleep(retryBackoff.toMillis() * (1L << attempt)); } catch (InterruptedException e) { Thread.currentThread().interrupt(); throw new IdentityCoreException("Retry interrupted.", e); } } + + private void pause(int attempt) { + try { + Thread.sleep(retryBackoff.toMillis() * (1L << attempt)); + } catch (InterruptedException e) { + Thread.currentThread().interrupt(); + throw new IdentityCoreException("Retry interrupted.", e); + } + } + private Transport defaultTransport() { HttpClient http = HttpClient.newBuilder().connectTimeout(timeout).build(); return (method, uri, headers, body, requestTimeout) -> { @@ -81,42 +134,179 @@ private Transport defaultTransport() { } public final class Policies { - public JsonNode list() { return request("GET", "/policies/", null, null); } - public JsonNode retrieve(String id) { return request("GET", "/policies/" + segment(id), null, null); } + + public JsonNode list() { + return request("GET", "/policies/", null, null); + } + + public JsonNode retrieve(String id) { + return request("GET", "/policies/" + segment(id), null, null); + } } + public final class Verifications { - public JsonNode create(JsonNode input) { return create(input, "ik_" + UUID.randomUUID().toString().replace("-", "")); } - public JsonNode create(JsonNode input, String idempotencyKey) { return request("POST", "/verifications/", input, idempotencyKey); } + + public JsonNode create(JsonNode input) { + return create(input, "ik_" + UUID.randomUUID().toString().replace("-", "")); + } + + public JsonNode create(JsonNode input, String idempotencyKey) { + return request("POST", "/verifications/", input, idempotencyKey); + } + public JsonNode list(String status, String externalReference, Integer page, Integer pageSize) { - Map q = new LinkedHashMap<>(); q.put("status",status); q.put("external_reference",externalReference); q.put("page",page); q.put("page_size",pageSize); + Map q = new LinkedHashMap<>(); + q.put("status", status); + q.put("external_reference", externalReference); + q.put("page", page); + q.put("page_size", pageSize); return request("GET", "/verifications/" + query(q), null, null); } + public JsonNode listCursor(String status, String externalReference, String cursor, Integer limit) { - Map q = new LinkedHashMap<>(); q.put("status",status); q.put("external_reference",externalReference); q.put("cursor",cursor); q.put("limit",limit); + Map q = new LinkedHashMap<>(); + q.put("status", status); + q.put("external_reference", externalReference); + q.put("cursor", cursor); + q.put("limit", limit); return request("GET", "/verifications/" + query(q), null, null); } + public Iterable iterate(String status, String externalReference, int pageSize) { - return () -> new java.util.Iterator<>() { String cursor=""; int index=0; boolean finished=false; JsonNode items=json.createArrayNode(); - public boolean hasNext() { loadIfNeeded(); return index < items.size(); } - public JsonNode next() { loadIfNeeded(); if(index>=items.size()) throw new java.util.NoSuchElementException(); return items.get(index++); } - private void loadIfNeeded() { while(index>=items.size() && !finished){ JsonNode result=listCursor(status,externalReference,cursor,pageSize); items=result.path("results"); index=0; cursor=result.path("pagination").path("next_cursor").asText(""); finished=cursor.isBlank(); if(items.size()>0)return; } } + return () -> new java.util.Iterator<>() { + String cursor = ""; + int index = 0; + boolean finished = false; + JsonNode items = json.createArrayNode(); + + public boolean hasNext() { + loadIfNeeded(); + return index < items.size(); + } + + public JsonNode next() { + loadIfNeeded(); + if (index >= items.size()) { + throw new java.util.NoSuchElementException(); + + }return items.get(index++); + } + + private void loadIfNeeded() { + while (index >= items.size() && !finished) { + JsonNode result = listCursor(status, externalReference, cursor, pageSize); + items = result.path("results"); + index = 0; + cursor = result.path("pagination").path("next_cursor").asText(""); + finished = cursor.isBlank(); + if (items.size() > 0) { + return; + + }} + } }; } - public JsonNode retrieve(String id) { return request("GET", "/verifications/" + segment(id), null, null); } - public JsonNode result(String id) { return request("GET", "/verifications/" + segment(id) + "/result", null, null); } - public JsonNode cancel(String id, String reason) { ObjectNode body=json.createObjectNode().put("reason", reason == null ? "" : reason); return request("POST", "/verifications/"+segment(id)+"/cancel", body, null); } - public JsonNode resendLink(String id) { ObjectNode body=json.createObjectNode().put("channel","email"); return request("POST", "/verifications/"+segment(id)+"/resend-link", body, null); } - public JsonNode evidenceReport(String id) { return request("GET", "/verifications/"+segment(id)+"/evidence-report", null, null); } + + public JsonNode retrieve(String id) { + return request("GET", "/verifications/" + segment(id), null, null); + } + + public JsonNode result(String id) { + return request("GET", "/verifications/" + segment(id) + "/result", null, null); + } + + public JsonNode cancel(String id, String reason) { + ObjectNode body = json.createObjectNode().put("reason", reason == null ? "" : reason); + return request("POST", "/verifications/" + segment(id) + "/cancel", body, null); + } + + public JsonNode resendLink(String id) { + ObjectNode body = json.createObjectNode().put("channel", "email"); + return request("POST", "/verifications/" + segment(id) + "/resend-link", body, null); + } + + public JsonNode evidenceReport(String id) { + return request("GET", "/verifications/" + segment(id) + "/evidence-report", null, null); + } + } + + private static String segment(String value) { + return URLEncoder.encode(value, StandardCharsets.UTF_8).replace("+", "%20"); + } + + private static String query(Map params) { + StringBuilder q = new StringBuilder(); + params.forEach((k, v) -> { + if (v != null && !v.toString().isBlank()) { + q.append(q.isEmpty() ? "?" : "&").append(segment(k)).append("=").append(segment(v.toString())); + + }}); + return q.toString(); + } + + public record RawResponse(int status, String body) { + + } + + @FunctionalInterface + public interface Transport { + + RawResponse send(String method, URI uri, Map headers, String body, Duration timeout) throws IOException, InterruptedException; } - private static String segment(String value) { return URLEncoder.encode(value, StandardCharsets.UTF_8).replace("+", "%20"); } - private static String query(Map params) { StringBuilder q=new StringBuilder(); params.forEach((k,v)->{if(v!=null&&!v.toString().isBlank())q.append(q.isEmpty()?"?":"&").append(segment(k)).append("=").append(segment(v.toString()));}); return q.toString(); } - public record RawResponse(int status, String body) {} - @FunctionalInterface public interface Transport { RawResponse send(String method, URI uri, Map headers, String body, Duration timeout) throws IOException, InterruptedException; } public static final class Builder { - private URI apiOrigin; private String clientId; private String clientSecret; private Duration timeout=Duration.ofSeconds(30); private int maxRetries=2; private Duration retryBackoff=Duration.ofMillis(250); private ObjectMapper json=new ObjectMapper(); private Transport transport; - public Builder apiOrigin(String value){this.apiOrigin=URI.create(value);return this;} public Builder clientId(String value){this.clientId=value;return this;} public Builder clientSecret(String value){this.clientSecret=value;return this;} - public Builder timeout(Duration value){this.timeout=value;return this;} public Builder maxRetries(int value){this.maxRetries=value;return this;} public Builder retryBackoff(Duration value){this.retryBackoff=value;return this;} public Builder objectMapper(ObjectMapper value){this.json=value;return this;} public Builder transport(Transport value){this.transport=value;return this;} - public IdentityCoreClient build(){return new IdentityCoreClient(this);} + + private URI apiOrigin; + private String clientId; + private String clientSecret; + private Duration timeout = Duration.ofSeconds(30); + private int maxRetries = 2; + private Duration retryBackoff = Duration.ofMillis(250); + private ObjectMapper json = new ObjectMapper(); + private Transport transport; + + public Builder apiOrigin(String value) { + this.apiOrigin = URI.create(value); + return this; + } + + public Builder clientId(String value) { + this.clientId = value; + return this; + } + + public Builder clientSecret(String value) { + this.clientSecret = value; + return this; + } + + public Builder timeout(Duration value) { + this.timeout = value; + return this; + } + + public Builder maxRetries(int value) { + this.maxRetries = value; + return this; + } + + public Builder retryBackoff(Duration value) { + this.retryBackoff = value; + return this; + } + + public Builder objectMapper(ObjectMapper value) { + this.json = value; + return this; + } + + public Builder transport(Transport value) { + this.transport = value; + return this; + } + + public IdentityCoreClient build() { + return new IdentityCoreClient(this); + } } } diff --git a/sdk/java/src/main/java/io/identitycore/IdentityCoreException.java b/sdk/java/src/main/java/io/identitycore/IdentityCoreException.java index 4b2060ae..0f2dc24b 100644 --- a/sdk/java/src/main/java/io/identitycore/IdentityCoreException.java +++ b/sdk/java/src/main/java/io/identitycore/IdentityCoreException.java @@ -1,7 +1,12 @@ package io.identitycore; public class IdentityCoreException extends RuntimeException { - public IdentityCoreException(String message) { super(message); } - public IdentityCoreException(String message, Throwable cause) { super(message, cause); } -} + public IdentityCoreException(String message) { + super(message); + } + + public IdentityCoreException(String message, Throwable cause) { + super(message, cause); + } +} diff --git a/sdk/java/src/main/java/io/identitycore/WebhookVerifier.java b/sdk/java/src/main/java/io/identitycore/WebhookVerifier.java index 662c8177..9f5a2d17 100644 --- a/sdk/java/src/main/java/io/identitycore/WebhookVerifier.java +++ b/sdk/java/src/main/java/io/identitycore/WebhookVerifier.java @@ -1,31 +1,47 @@ package io.identitycore; import java.nio.charset.StandardCharsets; +import java.security.InvalidKeyException; import java.security.MessageDigest; +import java.security.NoSuchAlgorithmException; import java.time.Instant; + import javax.crypto.Mac; import javax.crypto.spec.SecretKeySpec; public final class WebhookVerifier { - private WebhookVerifier() {} + + private WebhookVerifier() { + } public static boolean verify(byte[] rawBody, String signature, String timestamp, String signingKey) { return verify(rawBody, signature, timestamp, signingKey, 300, Instant.now().getEpochSecond()); } public static boolean verify(byte[] rawBody, String signature, String timestamp, String signingKey, long toleranceSeconds, long now) { - if (signingKey == null || signingKey.isBlank()) throw new IdentityCoreException("signingKey is required."); - if (toleranceSeconds < 0) throw new IdentityCoreException("toleranceSeconds cannot be negative."); + if (signingKey == null || signingKey.isBlank()) { + throw new IdentityCoreException("signingKey is required."); + } + if (toleranceSeconds < 0) { + throw new IdentityCoreException("toleranceSeconds cannot be negative."); + } final long sentAt; - try { sentAt = Long.parseLong(timestamp); } catch (RuntimeException error) { throw new IdentityCoreException("Webhook timestamp is invalid.", error); } - if (Math.abs(now - sentAt) > toleranceSeconds) return false; + try { + sentAt = Long.parseLong(timestamp); + } catch (RuntimeException error) { + throw new IdentityCoreException("Webhook timestamp is invalid.", error); + } + if (Math.abs(now - sentAt) > toleranceSeconds) { + return false; + } try { Mac mac = Mac.getInstance("HmacSHA256"); mac.init(new SecretKeySpec(signingKey.getBytes(StandardCharsets.UTF_8), "HmacSHA256")); mac.update((timestamp + ".").getBytes(StandardCharsets.UTF_8)); String expected = "sha256=" + java.util.HexFormat.of().formatHex(mac.doFinal(rawBody)); return MessageDigest.isEqual(expected.getBytes(StandardCharsets.UTF_8), String.valueOf(signature).getBytes(StandardCharsets.UTF_8)); - } catch (Exception error) { throw new IdentityCoreException("Webhook signature verification failed.", error); } + } catch (IllegalStateException | InvalidKeyException | NoSuchAlgorithmException error) { + throw new IdentityCoreException("Webhook signature verification failed.", error); + } } } - diff --git a/sdk/java/src/main/java/io/identitycore/models/GeneratedModels.java b/sdk/java/src/main/java/io/identitycore/models/GeneratedModels.java index a0ba04f0..f0cc6e37 100644 --- a/sdk/java/src/main/java/io/identitycore/models/GeneratedModels.java +++ b/sdk/java/src/main/java/io/identitycore/models/GeneratedModels.java @@ -6,80 +6,156 @@ import java.util.List; public final class GeneratedModels { - private GeneratedModels() {} - public record Error(@JsonProperty("code") String code, @JsonProperty("message") String message, @JsonProperty("details") JsonNode details) {} + private GeneratedModels() { + } - public record ErrorEnvelope(@JsonProperty("success") JsonNode success, @JsonProperty("error") Error error, @JsonProperty("request_id") String request_id) {} + public record Error(@JsonProperty("code") String code, @JsonProperty("message") String message, @JsonProperty("details") JsonNode details) { - public record WorkflowSummary(@JsonProperty("id") String id, @JsonProperty("project_id") String project_id, @JsonProperty("name") String name, @JsonProperty("description") String description, @JsonProperty("status") String status, @JsonProperty("steps") List steps, @JsonProperty("settings") JsonNode settings, @JsonProperty("current_version") Integer current_version, @JsonProperty("source_template_id") String source_template_id, @JsonProperty("source_template_version") String source_template_version, @JsonProperty("created_at") String created_at, @JsonProperty("updated_at") String updated_at) {} + } - public record Policy(@JsonProperty("id") String id, @JsonProperty("name") String name, @JsonProperty("description") String description, @JsonProperty("version") Integer version, @JsonProperty("status") String status, @JsonProperty("required_document_types") List required_document_types, @JsonProperty("required_liveness_level") String required_liveness_level, @JsonProperty("face_match_threshold") Double face_match_threshold, @JsonProperty("manual_review_threshold") Double manual_review_threshold, @JsonProperty("maker_checker_required") Boolean maker_checker_required, @JsonProperty("verification_expiry_minutes") Integer verification_expiry_minutes, @JsonProperty("media_retention_days") Integer media_retention_days, @JsonProperty("metadata_retention_days") Integer metadata_retention_days, @JsonProperty("created_at") String created_at, @JsonProperty("updated_at") String updated_at) {} + public record ErrorEnvelope(@JsonProperty("success") JsonNode success, @JsonProperty("error") Error error, @JsonProperty("request_id") String request_id) { - public record VerificationSubjectInput(@JsonProperty("full_name") String full_name, @JsonProperty("email") String email, @JsonProperty("phone_number") String phone_number, @JsonProperty("date_of_birth") String date_of_birth, @JsonProperty("metadata") JsonNode metadata) {} + } - public record VerificationCreateRequest(@JsonProperty("external_reference") String external_reference, @JsonProperty("purpose") String purpose, @JsonProperty("policy_id") String policy_id, @JsonProperty("project_id") String project_id, @JsonProperty("verification_subject") VerificationSubjectInput verification_subject, @JsonProperty("redirect_url") String redirect_url, @JsonProperty("metadata") JsonNode metadata) {} + public record WorkflowSummary(@JsonProperty("id") String id, @JsonProperty("project_id") String project_id, @JsonProperty("name") String name, @JsonProperty("description") String description, @JsonProperty("status") String status, @JsonProperty("steps") List steps, @JsonProperty("settings") JsonNode settings, @JsonProperty("current_version") Integer current_version, @JsonProperty("source_template_id") String source_template_id, @JsonProperty("source_template_version") String source_template_version, @JsonProperty("created_at") String created_at, @JsonProperty("updated_at") String updated_at) { - public record VerificationCreateResponse(@JsonProperty("id") String id, @JsonProperty("status") String status, @JsonProperty("verification_url") String verification_url, @JsonProperty("session_id") String session_id, @JsonProperty("session_token") String session_token, @JsonProperty("expires_at") String expires_at) {} + } - public record VerificationSummary(@JsonProperty("id") String id, @JsonProperty("status") String status, @JsonProperty("purpose") String purpose, @JsonProperty("external_reference") String external_reference, @JsonProperty("subject") JsonNode subject, @JsonProperty("policy") JsonNode policy, @JsonProperty("created_at") String created_at, @JsonProperty("completed_at") String completed_at) {} + public record Policy(@JsonProperty("id") String id, @JsonProperty("name") String name, @JsonProperty("description") String description, @JsonProperty("version") Integer version, @JsonProperty("status") String status, @JsonProperty("required_document_types") List required_document_types, @JsonProperty("required_liveness_level") String required_liveness_level, @JsonProperty("face_match_threshold") Double face_match_threshold, @JsonProperty("manual_review_threshold") Double manual_review_threshold, @JsonProperty("maker_checker_required") Boolean maker_checker_required, @JsonProperty("verification_expiry_minutes") Integer verification_expiry_minutes, @JsonProperty("media_retention_days") Integer media_retention_days, @JsonProperty("metadata_retention_days") Integer metadata_retention_days, @JsonProperty("created_at") String created_at, @JsonProperty("updated_at") String updated_at) { - public record VerificationDetail(@JsonProperty("id") String id, @JsonProperty("status") String status, @JsonProperty("purpose") String purpose, @JsonProperty("external_reference") String external_reference, @JsonProperty("subject") JsonNode subject, @JsonProperty("policy") JsonNode policy, @JsonProperty("created_at") String created_at, @JsonProperty("completed_at") String completed_at, @JsonProperty("verification_subject") JsonNode verification_subject, @JsonProperty("checks") JsonNode checks, @JsonProperty("risk_assessment") JsonNode risk_assessment, @JsonProperty("evidence_report") JsonNode evidence_report, @JsonProperty("decision") JsonNode decision, @JsonProperty("expires_at") String expires_at) {} + } - public record VerificationResult(@JsonProperty("schema_version") String schema_version, @JsonProperty("verification_id") String verification_id, @JsonProperty("status") String status, @JsonProperty("decision") JsonNode decision, @JsonProperty("policy") JsonNode policy, @JsonProperty("workflow") JsonNode workflow, @JsonProperty("check_provenance") List check_provenance, @JsonProperty("timestamps") JsonNode timestamps) {} + public record VerificationSubjectInput(@JsonProperty("full_name") String full_name, @JsonProperty("email") String email, @JsonProperty("phone_number") String phone_number, @JsonProperty("date_of_birth") String date_of_birth, @JsonProperty("metadata") JsonNode metadata) { - public record CursorPagination(@JsonProperty("limit") Integer limit, @JsonProperty("next_cursor") String next_cursor, @JsonProperty("has_more") Boolean has_more) {} + } - public record PagePagination(@JsonProperty("page") Integer page, @JsonProperty("page_size") Integer page_size, @JsonProperty("total") Integer total, @JsonProperty("total_pages") Integer total_pages) {} + public record VerificationCreateRequest(@JsonProperty("external_reference") String external_reference, @JsonProperty("purpose") String purpose, @JsonProperty("policy_id") String policy_id, @JsonProperty("project_id") String project_id, @JsonProperty("verification_subject") VerificationSubjectInput verification_subject, @JsonProperty("redirect_url") String redirect_url, @JsonProperty("metadata") JsonNode metadata) { - public record EvidenceReport(@JsonProperty("verification_id") String verification_id, @JsonProperty("storage_key") String storage_key, @JsonProperty("download_url") String download_url, @JsonProperty("pdf_storage_key") String pdf_storage_key, @JsonProperty("pdf_download_url") String pdf_download_url) {} + } - public record PortalUploadCreateRequest(@JsonProperty("purpose") String purpose, @JsonProperty("mime_type") String mime_type, @JsonProperty("file_size_bytes") Integer file_size_bytes) {} + public record VerificationCreateResponse(@JsonProperty("id") String id, @JsonProperty("status") String status, @JsonProperty("verification_url") String verification_url, @JsonProperty("session_id") String session_id, @JsonProperty("session_token") String session_token, @JsonProperty("expires_at") String expires_at) { - public record PortalUploadCreateResponse(@JsonProperty("upload_id") String upload_id, @JsonProperty("upload_url") String upload_url, @JsonProperty("upload_headers") JsonNode upload_headers, @JsonProperty("upload_transfer_path") String upload_transfer_path, @JsonProperty("upload_complete_path") String upload_complete_path, @JsonProperty("expires_at") String expires_at) {} + } - public record PortalUploadTransferResponse(@JsonProperty("upload_id") String upload_id) {} + public record VerificationSummary(@JsonProperty("id") String id, @JsonProperty("status") String status, @JsonProperty("purpose") String purpose, @JsonProperty("external_reference") String external_reference, @JsonProperty("subject") JsonNode subject, @JsonProperty("policy") JsonNode policy, @JsonProperty("created_at") String created_at, @JsonProperty("completed_at") String completed_at) { - public record OrganizationProfile(@JsonProperty("id") String id, @JsonProperty("name") String name, @JsonProperty("slug") String slug, @JsonProperty("industry") String industry, @JsonProperty("status") String status, @JsonProperty("tenant_id") String tenant_id, @JsonProperty("tenant_name") String tenant_name, @JsonProperty("tenant_status") String tenant_status, @JsonProperty("default_country_profile_id") String default_country_profile_id, @JsonProperty("default_jurisdiction_id") String default_jurisdiction_id, @JsonProperty("settings") JsonNode settings, @JsonProperty("sandbox_usage") JsonNode sandbox_usage, @JsonProperty("created_at") String created_at, @JsonProperty("updated_at") String updated_at) {} + } - public record OrganizationBrandingAssetUploadRequest(@JsonProperty("asset_type") String asset_type, @JsonProperty("filename") String filename, @JsonProperty("mime_type") String mime_type) {} + public record VerificationDetail(@JsonProperty("id") String id, @JsonProperty("status") String status, @JsonProperty("purpose") String purpose, @JsonProperty("external_reference") String external_reference, @JsonProperty("subject") JsonNode subject, @JsonProperty("policy") JsonNode policy, @JsonProperty("created_at") String created_at, @JsonProperty("completed_at") String completed_at, @JsonProperty("verification_subject") JsonNode verification_subject, @JsonProperty("checks") JsonNode checks, @JsonProperty("risk_assessment") JsonNode risk_assessment, @JsonProperty("evidence_report") JsonNode evidence_report, @JsonProperty("decision") JsonNode decision, @JsonProperty("expires_at") String expires_at) { - public record OrganizationBrandingAssetUploadResponse(@JsonProperty("asset_type") String asset_type, @JsonProperty("storage_key") String storage_key, @JsonProperty("bucket_name") String bucket_name, @JsonProperty("upload_url") String upload_url, @JsonProperty("asset_url") String asset_url) {} + } - public record OrganizationSupportingDocumentUploadRequest(@JsonProperty("filename") String filename, @JsonProperty("mime_type") String mime_type, @JsonProperty("file_size_bytes") Integer file_size_bytes) {} + public record VerificationResult(@JsonProperty("schema_version") String schema_version, @JsonProperty("verification_id") String verification_id, @JsonProperty("status") String status, @JsonProperty("decision") JsonNode decision, @JsonProperty("policy") JsonNode policy, @JsonProperty("workflow") JsonNode workflow, @JsonProperty("check_provenance") List check_provenance, @JsonProperty("timestamps") JsonNode timestamps) { - public record OrganizationSupportingDocumentUploadResponse(@JsonProperty("document_id") String document_id, @JsonProperty("filename") String filename, @JsonProperty("file_size_bytes") Integer file_size_bytes, @JsonProperty("status") String status, @JsonProperty("storage_key") String storage_key, @JsonProperty("download_url") String download_url, @JsonProperty("upload_url") String upload_url) {} + } - public record OrganizationSupportingDocumentCompleteResponse(@JsonProperty("document_id") String document_id, @JsonProperty("status") String status) {} + public record CursorPagination(@JsonProperty("limit") Integer limit, @JsonProperty("next_cursor") String next_cursor, @JsonProperty("has_more") Boolean has_more) { - public record OrganizationSupportingDocumentDeleteResponse(@JsonProperty("document_id") String document_id, @JsonProperty("deleted") Boolean deleted) {} + } - public record ProjectSummary(@JsonProperty("id") String id, @JsonProperty("name") String name, @JsonProperty("slug") String slug, @JsonProperty("environment") String environment, @JsonProperty("status") String status, @JsonProperty("allowed_origins") List allowed_origins, @JsonProperty("is_default") Boolean is_default, @JsonProperty("created_at") String created_at, @JsonProperty("updated_at") String updated_at) {} + public record PagePagination(@JsonProperty("page") Integer page, @JsonProperty("page_size") Integer page_size, @JsonProperty("total") Integer total, @JsonProperty("total_pages") Integer total_pages) { - public record ProjectCreateRequest(@JsonProperty("name") String name, @JsonProperty("slug") String slug, @JsonProperty("environment") String environment, @JsonProperty("allowed_origins") List allowed_origins) {} + } - public record APIClientSummary(@JsonProperty("public_id") String public_id, @JsonProperty("tenant_public_id") String tenant_public_id, @JsonProperty("project_id") String project_id, @JsonProperty("name") String name, @JsonProperty("client_id") String client_id, @JsonProperty("status") String status, @JsonProperty("scopes") List scopes, @JsonProperty("allowed_networks") List allowed_networks, @JsonProperty("rate_limit_per_minute") Integer rate_limit_per_minute, @JsonProperty("last_used_at") String last_used_at, @JsonProperty("client_secret_overlap_expires_at") String client_secret_overlap_expires_at, @JsonProperty("created_at") String created_at, @JsonProperty("updated_at") String updated_at) {} + public record EvidenceReport(@JsonProperty("verification_id") String verification_id, @JsonProperty("storage_key") String storage_key, @JsonProperty("download_url") String download_url, @JsonProperty("pdf_storage_key") String pdf_storage_key, @JsonProperty("pdf_download_url") String pdf_download_url) { - public record APIClientCreateRequest(@JsonProperty("project_id") String project_id, @JsonProperty("name") String name, @JsonProperty("scopes") List scopes, @JsonProperty("allowed_networks") List allowed_networks, @JsonProperty("rate_limit_per_minute") Integer rate_limit_per_minute) {} + } - public record APIClientCreateResponse(@JsonProperty("public_id") String public_id, @JsonProperty("tenant_public_id") String tenant_public_id, @JsonProperty("project_id") String project_id, @JsonProperty("name") String name, @JsonProperty("client_id") String client_id, @JsonProperty("status") String status, @JsonProperty("scopes") List scopes, @JsonProperty("allowed_networks") List allowed_networks, @JsonProperty("rate_limit_per_minute") Integer rate_limit_per_minute, @JsonProperty("last_used_at") String last_used_at, @JsonProperty("client_secret_overlap_expires_at") String client_secret_overlap_expires_at, @JsonProperty("created_at") String created_at, @JsonProperty("updated_at") String updated_at, @JsonProperty("client_secret") String client_secret) {} + public record PortalUploadCreateRequest(@JsonProperty("purpose") String purpose, @JsonProperty("mime_type") String mime_type, @JsonProperty("file_size_bytes") Integer file_size_bytes) { - public record WebhookEndpointSummary(@JsonProperty("id") String id, @JsonProperty("project_id") String project_id, @JsonProperty("url") String url, @JsonProperty("description") String description, @JsonProperty("events") List events, @JsonProperty("status") String status, @JsonProperty("created_at") String created_at, @JsonProperty("updated_at") String updated_at) {} + } - public record WebhookEndpointCreateRequest(@JsonProperty("project_id") String project_id, @JsonProperty("url") String url, @JsonProperty("description") String description, @JsonProperty("events") List events) {} + public record PortalUploadCreateResponse(@JsonProperty("upload_id") String upload_id, @JsonProperty("upload_url") String upload_url, @JsonProperty("upload_headers") JsonNode upload_headers, @JsonProperty("upload_transfer_path") String upload_transfer_path, @JsonProperty("upload_complete_path") String upload_complete_path, @JsonProperty("expires_at") String expires_at) { - public record WebhookEndpointCreateResponse(@JsonProperty("id") String id, @JsonProperty("project_id") String project_id, @JsonProperty("url") String url, @JsonProperty("description") String description, @JsonProperty("events") List events, @JsonProperty("status") String status, @JsonProperty("created_at") String created_at, @JsonProperty("updated_at") String updated_at, @JsonProperty("secret") String secret) {} + } - public record WebhookEndpointTestResponse(@JsonProperty("queued") Boolean queued) {} + public record PortalUploadTransferResponse(@JsonProperty("upload_id") String upload_id) { - public record ManualReviewSummary(@JsonProperty("verification_id") String verification_id, @JsonProperty("status") String status, @JsonProperty("purpose") String purpose, @JsonProperty("subject") JsonNode subject, @JsonProperty("risk_level") String risk_level, @JsonProperty("document_classification") JsonNode document_classification, @JsonProperty("created_at") String created_at) {} + } - public record ManualReviewDecisionRequest(@JsonProperty("decision") String decision, @JsonProperty("reason_code") String reason_code, @JsonProperty("reason_detail") String reason_detail) {} + public record OrganizationProfile(@JsonProperty("id") String id, @JsonProperty("name") String name, @JsonProperty("slug") String slug, @JsonProperty("industry") String industry, @JsonProperty("status") String status, @JsonProperty("tenant_id") String tenant_id, @JsonProperty("tenant_name") String tenant_name, @JsonProperty("tenant_status") String tenant_status, @JsonProperty("default_country_profile_id") String default_country_profile_id, @JsonProperty("default_jurisdiction_id") String default_jurisdiction_id, @JsonProperty("settings") JsonNode settings, @JsonProperty("sandbox_usage") JsonNode sandbox_usage, @JsonProperty("created_at") String created_at, @JsonProperty("updated_at") String updated_at) { - public record ManualReviewDecisionResponse(@JsonProperty("verification_id") String verification_id, @JsonProperty("decision") String decision, @JsonProperty("decision_type") String decision_type, @JsonProperty("decided_at") String decided_at) {} + } - public record ManualReviewApprovalRequest(@JsonProperty("decision") String decision) {} + public record OrganizationBrandingAssetUploadRequest(@JsonProperty("asset_type") String asset_type, @JsonProperty("filename") String filename, @JsonProperty("mime_type") String mime_type) { - public record ManualReviewApprovalResponse(@JsonProperty("verification_id") String verification_id, @JsonProperty("decision") String decision, @JsonProperty("approval_status") String approval_status) {} + } + + public record OrganizationBrandingAssetUploadResponse(@JsonProperty("asset_type") String asset_type, @JsonProperty("storage_key") String storage_key, @JsonProperty("bucket_name") String bucket_name, @JsonProperty("upload_url") String upload_url, @JsonProperty("asset_url") String asset_url) { + + } + + public record OrganizationSupportingDocumentUploadRequest(@JsonProperty("filename") String filename, @JsonProperty("mime_type") String mime_type, @JsonProperty("file_size_bytes") Integer file_size_bytes) { + + } + + public record OrganizationSupportingDocumentUploadResponse(@JsonProperty("document_id") String document_id, @JsonProperty("filename") String filename, @JsonProperty("file_size_bytes") Integer file_size_bytes, @JsonProperty("status") String status, @JsonProperty("storage_key") String storage_key, @JsonProperty("download_url") String download_url, @JsonProperty("upload_url") String upload_url) { + + } + + public record OrganizationSupportingDocumentCompleteResponse(@JsonProperty("document_id") String document_id, @JsonProperty("status") String status) { + + } + + public record OrganizationSupportingDocumentDeleteResponse(@JsonProperty("document_id") String document_id, @JsonProperty("deleted") Boolean deleted) { + + } + + public record ProjectSummary(@JsonProperty("id") String id, @JsonProperty("name") String name, @JsonProperty("slug") String slug, @JsonProperty("environment") String environment, @JsonProperty("status") String status, @JsonProperty("allowed_origins") List allowed_origins, @JsonProperty("is_default") Boolean is_default, @JsonProperty("created_at") String created_at, @JsonProperty("updated_at") String updated_at) { + + } + + public record ProjectCreateRequest(@JsonProperty("name") String name, @JsonProperty("slug") String slug, @JsonProperty("environment") String environment, @JsonProperty("allowed_origins") List allowed_origins) { + + } + + public record APIClientSummary(@JsonProperty("public_id") String public_id, @JsonProperty("tenant_public_id") String tenant_public_id, @JsonProperty("project_id") String project_id, @JsonProperty("name") String name, @JsonProperty("client_id") String client_id, @JsonProperty("status") String status, @JsonProperty("scopes") List scopes, @JsonProperty("allowed_networks") List allowed_networks, @JsonProperty("rate_limit_per_minute") Integer rate_limit_per_minute, @JsonProperty("last_used_at") String last_used_at, @JsonProperty("client_secret_overlap_expires_at") String client_secret_overlap_expires_at, @JsonProperty("created_at") String created_at, @JsonProperty("updated_at") String updated_at) { + + } + + public record APIClientCreateRequest(@JsonProperty("project_id") String project_id, @JsonProperty("name") String name, @JsonProperty("scopes") List scopes, @JsonProperty("allowed_networks") List allowed_networks, @JsonProperty("rate_limit_per_minute") Integer rate_limit_per_minute) { + + } + + public record APIClientCreateResponse(@JsonProperty("public_id") String public_id, @JsonProperty("tenant_public_id") String tenant_public_id, @JsonProperty("project_id") String project_id, @JsonProperty("name") String name, @JsonProperty("client_id") String client_id, @JsonProperty("status") String status, @JsonProperty("scopes") List scopes, @JsonProperty("allowed_networks") List allowed_networks, @JsonProperty("rate_limit_per_minute") Integer rate_limit_per_minute, @JsonProperty("last_used_at") String last_used_at, @JsonProperty("client_secret_overlap_expires_at") String client_secret_overlap_expires_at, @JsonProperty("created_at") String created_at, @JsonProperty("updated_at") String updated_at, @JsonProperty("client_secret") String client_secret) { + + } + + public record WebhookEndpointSummary(@JsonProperty("id") String id, @JsonProperty("project_id") String project_id, @JsonProperty("url") String url, @JsonProperty("description") String description, @JsonProperty("events") List events, @JsonProperty("status") String status, @JsonProperty("created_at") String created_at, @JsonProperty("updated_at") String updated_at) { + + } + + public record WebhookEndpointCreateRequest(@JsonProperty("project_id") String project_id, @JsonProperty("url") String url, @JsonProperty("description") String description, @JsonProperty("events") List events) { + + } + + public record WebhookEndpointCreateResponse(@JsonProperty("id") String id, @JsonProperty("project_id") String project_id, @JsonProperty("url") String url, @JsonProperty("description") String description, @JsonProperty("events") List events, @JsonProperty("status") String status, @JsonProperty("created_at") String created_at, @JsonProperty("updated_at") String updated_at, @JsonProperty("secret") String secret) { + + } + + public record WebhookEndpointTestResponse(@JsonProperty("queued") Boolean queued) { + + } + + public record ManualReviewSummary(@JsonProperty("verification_id") String verification_id, @JsonProperty("status") String status, @JsonProperty("purpose") String purpose, @JsonProperty("subject") JsonNode subject, @JsonProperty("risk_level") String risk_level, @JsonProperty("document_classification") JsonNode document_classification, @JsonProperty("created_at") String created_at) { + + } + + public record ManualReviewDecisionRequest(@JsonProperty("decision") String decision, @JsonProperty("reason_code") String reason_code, @JsonProperty("reason_detail") String reason_detail) { + + } + + public record ManualReviewDecisionResponse(@JsonProperty("verification_id") String verification_id, @JsonProperty("decision") String decision, @JsonProperty("decision_type") String decision_type, @JsonProperty("decided_at") String decided_at) { + + } + + public record ManualReviewApprovalRequest(@JsonProperty("decision") String decision) { + + } + + public record ManualReviewApprovalResponse(@JsonProperty("verification_id") String verification_id, @JsonProperty("decision") String decision, @JsonProperty("approval_status") String approval_status) { + + } } diff --git a/sdk/java/src/test/java/io/identitycore/IdentityCoreClientTest.java b/sdk/java/src/test/java/io/identitycore/IdentityCoreClientTest.java index fe4cdb2b..63c6c60f 100644 --- a/sdk/java/src/test/java/io/identitycore/IdentityCoreClientTest.java +++ b/sdk/java/src/test/java/io/identitycore/IdentityCoreClientTest.java @@ -8,26 +8,40 @@ import static org.junit.jupiter.api.Assertions.*; class IdentityCoreClientTest { - @Test void createsVerificationWithAuthAndIdempotency() throws Exception { + + @Test + void createsVerificationWithAuthAndIdempotency() throws Exception { List seen = new ArrayList<>(); IdentityCoreClient client = IdentityCoreClient.builder().apiOrigin("https://api.example.test").clientId("cli_test").clientSecret("secret") - .retryBackoff(Duration.ZERO).transport((method,uri,headers,body,timeout)->{seen.add(method+" "+uri+" "+headers.get("Idempotency-Key")); return new IdentityCoreClient.RawResponse(201,"{\"success\":true,\"data\":{\"id\":\"ver_1\"},\"request_id\":\"req_1\"}");}).build(); + .retryBackoff(Duration.ZERO).transport((method, uri, headers, body, timeout) -> { + seen.add(method + " " + uri + " " + headers.get("Idempotency-Key")); + return new IdentityCoreClient.RawResponse(201, "{\"success\":true,\"data\":{\"id\":\"ver_1\"},\"request_id\":\"req_1\"}"); + }).build(); var input = new ObjectMapper().readTree("{\"purpose\":\"Onboarding\"}"); - assertEquals("ver_1", client.verifications.create(input,"customer-1").path("id").asText()); + assertEquals("ver_1", client.verifications.create(input, "customer-1").path("id").asText()); assertEquals("POST https://api.example.test/api/v1/verifications/ customer-1", seen.get(0)); } - @Test void readsRetryButUnsafeWritesDoNot() { - int[] calls={0}; - IdentityCoreClient client=IdentityCoreClient.builder().apiOrigin("https://api.example.test").clientId("c").clientSecret("s").retryBackoff(Duration.ZERO) - .transport((m,u,h,b,t)->{calls[0]++; return calls[0]==1?new IdentityCoreClient.RawResponse(503,"{\"success\":false,\"error\":{\"message\":\"down\"}}"):new IdentityCoreClient.RawResponse(200,"{\"success\":true,\"data\":[]}");}).build(); - assertTrue(client.policies.list().isArray()); assertEquals(2,calls[0]); + @Test + void readsRetryButUnsafeWritesDoNot() { + int[] calls = {0}; + IdentityCoreClient client = IdentityCoreClient.builder().apiOrigin("https://api.example.test").clientId("c").clientSecret("s").retryBackoff(Duration.ZERO) + .transport((m, u, h, b, t) -> { + calls[0]++; + return calls[0] == 1 ? new IdentityCoreClient.RawResponse(503, "{\"success\":false,\"error\":{\"message\":\"down\"}}") : new IdentityCoreClient.RawResponse(200, "{\"success\":true,\"data\":[]}"); + }).build(); + assertTrue(client.policies.list().isArray()); + assertEquals(2, calls[0]); } - @Test void retrievesVersionedVerificationResult() { + @Test + void retrievesVersionedVerificationResult() { List seen = new ArrayList<>(); - IdentityCoreClient client=IdentityCoreClient.builder().apiOrigin("https://api.example.test").clientId("c").clientSecret("s") - .transport((m,u,h,b,t)->{seen.add(u.toString()); return new IdentityCoreClient.RawResponse(200,"{\"success\":true,\"data\":{\"schema_version\":\"1\"}}");}).build(); + IdentityCoreClient client = IdentityCoreClient.builder().apiOrigin("https://api.example.test").clientId("c").clientSecret("s") + .transport((m, u, h, b, t) -> { + seen.add(u.toString()); + return new IdentityCoreClient.RawResponse(200, "{\"success\":true,\"data\":{\"schema_version\":\"1\"}}"); + }).build(); assertEquals("1", client.verifications.result("ver_1").path("schema_version").asText()); assertEquals("https://api.example.test/api/v1/verifications/ver_1/result", seen.get(0)); } diff --git a/sdk/java/src/test/java/io/identitycore/LiveCompatibilityTest.java b/sdk/java/src/test/java/io/identitycore/LiveCompatibilityTest.java index 7eeb3cdc..ea694ea0 100644 --- a/sdk/java/src/test/java/io/identitycore/LiveCompatibilityTest.java +++ b/sdk/java/src/test/java/io/identitycore/LiveCompatibilityTest.java @@ -12,21 +12,27 @@ @EnabledIfEnvironmentVariable(named = "IDENTITYCORE_COMPAT_URL", matches = ".+") class LiveCompatibilityTest { - @Test void createGetListErrorAndWebhook() throws Exception { + + @Test + void createGetListErrorAndWebhook() throws Exception { var json = new ObjectMapper(); var client = IdentityCoreClient.builder().apiOrigin(System.getenv("IDENTITYCORE_COMPAT_URL")) - .clientId(System.getenv("IDENTITYCORE_COMPAT_CLIENT_ID")).clientSecret(System.getenv("IDENTITYCORE_COMPAT_CLIENT_SECRET")).build(); + .clientId(System.getenv("IDENTITYCORE_COMPAT_CLIENT_ID")).clientSecret(System.getenv("IDENTITYCORE_COMPAT_CLIENT_SECRET")).build(); var reference = "java-" + UUID.randomUUID(); var input = json.createObjectNode().put("purpose", "SDK compatibility").put("policy_id", System.getenv("IDENTITYCORE_COMPAT_POLICY_ID")) - .put("external_reference", reference).set("verification_subject", json.createObjectNode().put("full_name", "Java Compatibility")); + .put("external_reference", reference).set("verification_subject", json.createObjectNode().put("full_name", "Java Compatibility")); var created = client.verifications.create(input); assertEquals(created.path("id").asText(), client.verifications.retrieve(created.path("id").asText()).path("id").asText()); assertTrue(client.verifications.list(null, reference, 1, 20).path("results").findValuesAsText("id").contains(created.path("id").asText())); var error = assertThrows(IdentityCoreApiException.class, () -> client.verifications.retrieve("ver_does_not_exist")); assertEquals(404, error.status()); - byte[] payload = "{\"type\":\"verification.completed\"}".getBytes(StandardCharsets.UTF_8); String timestamp = Long.toString(Instant.now().getEpochSecond()); String key = "webhook-secret"; - Mac mac = Mac.getInstance("HmacSHA256"); mac.init(new SecretKeySpec(key.getBytes(StandardCharsets.UTF_8), "HmacSHA256")); mac.update((timestamp + ".").getBytes(StandardCharsets.UTF_8)); + byte[] payload = "{\"type\":\"verification.completed\"}".getBytes(StandardCharsets.UTF_8); + String timestamp = Long.toString(Instant.now().getEpochSecond()); + String key = "webhook-secret"; + Mac mac = Mac.getInstance("HmacSHA256"); + mac.init(new SecretKeySpec(key.getBytes(StandardCharsets.UTF_8), "HmacSHA256")); + mac.update((timestamp + ".").getBytes(StandardCharsets.UTF_8)); assertTrue(WebhookVerifier.verify(payload, "sha256=" + java.util.HexFormat.of().formatHex(mac.doFinal(payload)), timestamp, key)); } } diff --git a/sdk/java/src/test/java/io/identitycore/WebhookVerifierTest.java b/sdk/java/src/test/java/io/identitycore/WebhookVerifierTest.java index ccd0c540..6f93de72 100644 --- a/sdk/java/src/test/java/io/identitycore/WebhookVerifierTest.java +++ b/sdk/java/src/test/java/io/identitycore/WebhookVerifierTest.java @@ -7,12 +7,15 @@ import static org.junit.jupiter.api.Assertions.*; class WebhookVerifierTest { - @Test void verifiesRawPayloadAndTimestamp() throws Exception { - byte[] body="{\"id\":\"evt_1\"}".getBytes(StandardCharsets.UTF_8); String timestamp="1000", key="whsec_test"; - Mac mac=Mac.getInstance("HmacSHA256"); mac.init(new SecretKeySpec(key.getBytes(StandardCharsets.UTF_8),"HmacSHA256")); - String signature="sha256="+java.util.HexFormat.of().formatHex(mac.doFinal((timestamp+"."+new String(body,StandardCharsets.UTF_8)).getBytes(StandardCharsets.UTF_8))); - assertTrue(WebhookVerifier.verify(body,signature,timestamp,key,300,1001)); - assertFalse(WebhookVerifier.verify(body,signature,timestamp,key,300,2000)); + + @Test + void verifiesRawPayloadAndTimestamp() throws Exception { + byte[] body = "{\"id\":\"evt_1\"}".getBytes(StandardCharsets.UTF_8); + String timestamp = "1000", key = "whsec_test"; + Mac mac = Mac.getInstance("HmacSHA256"); + mac.init(new SecretKeySpec(key.getBytes(StandardCharsets.UTF_8), "HmacSHA256")); + String signature = "sha256=" + java.util.HexFormat.of().formatHex(mac.doFinal((timestamp + "." + new String(body, StandardCharsets.UTF_8)).getBytes(StandardCharsets.UTF_8))); + assertTrue(WebhookVerifier.verify(body, signature, timestamp, key, 300, 1001)); + assertFalse(WebhookVerifier.verify(body, signature, timestamp, key, 300, 2000)); } } - diff --git a/sdk/java/target/classes/io/identitycore/IdentityCoreApiException.class b/sdk/java/target/classes/io/identitycore/IdentityCoreApiException.class new file mode 100644 index 0000000000000000000000000000000000000000..820066eea830aaf9211c717fd5cb13e6eadaad8a GIT binary patch literal 1071 zcma)4+ins;82$!!S)of?C{$^|S`P_qjT^74O-!T78q%8@?uXqGr-j|RJDBO{aw8T(f}yv~x?kGSGP8AtwGsxHXDDMOfZuys?xdTV2i-hjb6H^<%S z%UE1YCqt3G&& zxcTK&E|X~*iZ@bQ?JU2M?YK6JWw79<(r!S;hz=ezse?(Kh9|NQsY-vBo8T*nAf8b&$N$S_PE zS+6bAwY)=fr*Y)i5kqD}cq00dAyp_Iq-mG@&Fj$dnFh{r3F8bowJ#EF$9&KUtVsAC zL)LHYIkxXLLxz0eaj~9URL)`&pKHi*OktYA5WXpzju(mOt?dVnS&Ii%8dP0DGfS0@ zaGOrRpvm+64*59U4?V+?$1H>1w%+VIQ6L=hh1E{O_*aH;m19oEFy^`t&8o zHR%u!XxH0{W&iHCS{fD^O19rNTUHo3!JD>g9??|jduG#$tcLKK@x5(X$Hz{fV*x3N z`-)>3D-5GYw3gvUeF#WdM-hgG62~fTkW1wY% zmg75*7pvPgIc{Q|vSS^Koj@E4@@Kra^W$Z=IKIJcx)od9daX%GPV!}J-*McLD|v4v zrJU|ePW-@8#s-}f1(p{c`vGNYtv*18_fOZCHIVQYFW#b)mhVXo-)ArjgPakos9Zdt ztW^CbUEoArc+PgG-Ee|^tKrf=xw>y#?tv8uIgbAvjeZlPqSaweVYqj0b}o+WRPJSl z^lQuQkXMx$^+~x=s)vG^h1!rixUV`wPuUDF3qy%`$irR@l*A8084{mv$R@(DTo_~{ z-Mzl&cLLjaD5Na%$*!~}i;}8k+XOjg;QIgd`ib95-6&l${(Hl@S z-hmm@&`yx;V!}vwahZl!PVhw+^TvBDym*J}T`c{nP*r-)5C)8@h-IjaYM5eUm}6Ny zpgG=y;wL<$5hIs>jt{Jm<1!H4D4n3t#hUR4jYc4e@}mTH31e(rQD%B8V~U)AM4?h6 zr_fJ%cWI5}X-27wuM@Bw(roG@n05x!&R}=WhkcuX0c;AjIMPo%n@GT}5^Sz7 zY+8kx$KwQy@^LuM zW9vNF_X*fdg01(3Z7A3_c4FAASlik6*nC0yzWYIGQvP7K6{@GzY%Giveo=b-6}!rA WVvlT&G&V`!ntfcsQ?k!8+5Z8M;028U literal 0 HcmV?d00001 diff --git a/sdk/java/target/classes/io/identitycore/IdentityCoreClient$Policies.class b/sdk/java/target/classes/io/identitycore/IdentityCoreClient$Policies.class new file mode 100644 index 0000000000000000000000000000000000000000..7269d58a6af136149446c5a610e43d2735e6a49e GIT binary patch literal 1504 zcma)6%Tg0T6g?ecGK3LAG$1}uF-RW5fKN2Q!juSBM5~~1;i@xfp~+-A&U7gG14|cf z{S2-0RV@4fKg#k>GD57RB#Y_k+kNl3_w+s8zkVP71h9pxfVhAQfa*ywG%i->h z^{lcdY)yDe(v^CJVIZ5^HZV++$B(uQBpDJ`BTQ>0kiwZb&YDPLjA82J)C_S?ylx7g za=goyj}vcdPr5tB9xJx0Td%mUh4-fJSbN;A`O3AbT=R-_tJV{;HdIyg2+fuIjSYyL zGckelRG=?*>U6pc*LxJ0>#i_G{kv%5QV={|=QUAMuFdresds7SYwl|5&`h?U&g8Zk zq9vlkFjAJT*l5-(!rS5%hgMQ$Wpihndor-Y#c0rZhS@&QkMvTcB#sPvP{{UwNDPK2 zs7+#@YFX}iHvOJALqt{sLR|tNeQm0yXNy%CP#*7A{ag@3wQP`x)>J?u`A{kCYmYac z3cahU{zwd@&3P=uaWiPlExH%SnWVd~YQkzOuHCCuZfoToFnsK!6*{&-*SK4Cgr6xZ zRckhSsI7y`KY?2Zjb7q>+2P;5b;V9?g%Bm~IGa+7qJcXML&sN-F_`PFE4-4!eLr{t zjK8lz9QPTfyZH8^5eG?O^8c>%7_>QKfnF$s#Lkk*;Ekf$0H`QT(s-Gy721!`Kanqd z1WKEPXCrE#q7g(+Mki~L(?j65=!4zU(#Er=M-e*sIKPK_}34WplE zr4#Rc3(stOhIn*uF%zP!6G~7~x{Xr!f$>9JAO^j_K6Dh9J}NGaEOG=FMZT51fE%rU d3bXV#XlIVT+qg?sijqZWyoXUN;sKU0@dw)Dl0N_d literal 0 HcmV?d00001 diff --git a/sdk/java/target/classes/io/identitycore/IdentityCoreClient$RawResponse.class b/sdk/java/target/classes/io/identitycore/IdentityCoreClient$RawResponse.class new file mode 100644 index 0000000000000000000000000000000000000000..79295169b9fc7ffbc405194c9f76edbca78b0368 GIT binary patch literal 1695 zcmb7ETTc@~6#k~P-L@?Nx-m$tw*?AybxB-q_-{>D~ijRMkz2>VBupQCF-ARhPB* z+~#{i37b&*vlkHR^+<_fARCG|ln9e&YaBc=q&8&Bu8Oy&8~o7uCYp8of{L^z9JL}H zrQsgK#J@X$iqUT4-X$rOqio*vlX22<%%$)E^BNxNc!b9cW2fzBx2UQ2gyDx6m@p(O zZ4`#XaF(XEFL#CEE3R;>))3BQS<2m3vk)R9C|*bs7;YXk#jdFCyAJ4#gV8>^NiU;xTXlC7o$35{u>8mowEWBwdJahx z!C0UU{K7c>kNc{)g$cTmkq6DZKNmcL+w`A|kl1|$`e?aKl0Vne9G$MJmOmyrzS8e` z54x`sc<7`3F?E6Y0Py9%%tvr1Fkc{NE+2{f^f8A2WjA^hn7$@tlET!wZnd{WwlhD+IvK?_0O6?4<%Mc{*mbRVAkqW zxs})K?=${PChaoMhHuN!hy1^ zb<(xm{-`08Te72sO*9i8|2W^)cXH$>-uXurT5+O7Zpg@ypZ~hp&2)G|wVAl}U-P*% z@*?70rDB^YZwSk|5gLgKQ%OaXNp&g0RO+E)HufMk?l@)$D?hJ_Fd8Vux*iE**!@w? z-PZzP^XC?;xos0ha;QWg47mFS$ldB7N+`f{D78Zv#;EfP7()@`nKyySEK8Vjb~=ky TFq`=W*Q-cS}{PIQqm%#67I1`Fa#l3r7EyZPLeH~-MYKMf)~8} z5zhGF48HK<185rN?ga+FnH~XMO3~hIK}k zr7P{CRNU6;=)pPxT~W*!6yE1nXFmdV4b$`VCRc3~T~ zYuKS<5JLi^?ZUHw?WjOv71$D?VeHf}qGK0Q0$W#>ClH?Y99v){S9EHrvf&ZZ*_xG_ zHj0;ckt!L!F-0p=O^{9+Gc(dn$1sN78lKj%2hRu$xA9hBZPAs6FORscaV77R=$x^^ zp_RnjBuw3Z62!u@I-bMx$_c)#F=STcae@XZfmA<)w2u8M4s^>gO4)K=%91R_a1e(y z9M*9JM+J7QVAldeqUZ%t#=yyHctKzwh_1SCTB*EKs28i_maH**#%GIiMrBS68EjDE zUes|MS;kyNG6Z)HX4^62CFC@m)RD(2fpv=!owa>gk*+z0+3 z`Ns-Q-7U&vrm}qFgFSMW(usv`+%8&<$KG{P`c`sd$2_*EX&{-LgP22N4#@^a=dt$|pNB9LuvM&XVl!@0xi68xR~W(^-U{wQoYQdO zaaCVR9rjrGsI-(hO+IYd*hJ3zC}s=C-UbeQ4lR5G;f^nO*AYlkxd+@v7vC&^Wp|`Z*rCgA)zB zoJ$VJ&o(eYl$#D1j!$wMe?v{18aS^!qnobIJ-T3zt<(H=B$sk~UL@$2A zD1OF1{DMRH6$Si;^SFm9eus%a2+*JReKpEpy3C;ft1YojBhSB44fPx$vTwKSOL0|% z5h7bvh&AIu`B%k*@_*Aqkrt;2W&^4#xEieQ;9ag^wzBu|L2xpR54pz4X&e6&eZ&w} H0P^=AOMc<| literal 0 HcmV?d00001 diff --git a/sdk/java/target/classes/io/identitycore/IdentityCoreClient$Verifications.class b/sdk/java/target/classes/io/identitycore/IdentityCoreClient$Verifications.class new file mode 100644 index 0000000000000000000000000000000000000000..20d86a89c9e8a7b3eff7518f3cc627170282b10e GIT binary patch literal 5603 zcmcgwTX!2*8Qn*gt+6t(-Dz$%X$h`dJHE+H>4iEmv`W*sRh$w#4rzffmd5tj(u^`1 znYi4cW1w4_ezaK9|pVzGGPfd_bi2mS_SpPA8QWGR;QP_mrSnKNg; z^L_i<-#+KepZ~l5D*%V^$9BZfl0aNVE7}CcOgm-f49hj$)vWCpsmb6b&6{-IY0sbU*cfvzQeMNj2*Yaw-fZpp~Hw0F?7 zOm{+{Wnlko5*_GFpi9Md&;&ZX;bqs%r%s-nJS>oObSq~U{2Ogxf2Mi>r|ZBD6+5v@ zKymG9*DMGfR>{>Zmtfx#ohtCV zjbH>DlFyZKZO$tIwHMF7*KKrtDmm z-{B-%eOJMtK>VTO(=!T&1v*nJQNE;-7)2_9F%`GsfIx3!&Ik}{0$L(Do~RRl1mwWk z|4W<+yp@@{%D0SZEgQL`dTH^PUQFUPv@5ui@H2I8xwH*$!`%stt2l^50^6^?$I;|^ zvCQc1ibm(xLzF^6Pc+{_mx8woXvR4v*3$E59An;aBmouN!(0^g1-8-x?Xq>IWIoE< z`#931Q{aYIXLN5oI%5E_2IfvdM)Irdlx#=A6fNYJp8aX{ zN|%Nf^tSWCyHuRU!-Qsuj29SbL>M1tLQymvT7Ea)lfZjboWc79h8h$`^j!*xUyXjJ ztTllH6r%<grfNH8%C^If&Q%+AK%ZB z@wAuDP6~lBRW8gK&WvOt3o~P9_57^vnDRd8jLT({p*LR>0yA4z@`iZ}HJ`aLEl-A; zd8dQBg+kGGsWz(*8Waz$R*nfx-jwQH-V)U!1|}`nSYXN3>1xKw>nh54q9Tj}*VnO0 zxsnPwO@ZW2;4Bv}e^4ld0=uenxmv8`^Y-eY2P5Wdiz<-qiE-{=Bs6JHLIvDr0jf1! zfvg#P623??=-Biis#T8cN{fpUE5RF+QCMW81hzvs5l09cE$?l zJXB}SX0V8vIZs+k>TT5tWlsFwV#`ZX_q@Uu10~B zBpstxH?T-WTLp?$n#hvd4aJUF9+^89Qy4ovd-h zl-jnt_JA-dbIzPhamRMlmUZ8CuWh>}*U^i|40qAal{(w-Y!ctca|!%F?sZqR6yu2*5M5pJgwB@Ao%c4lyq0-4!RIml zCI^RJg&4eq#LK*kVTIQ=jsc#;`+42vkHR^u@=l&_r8P=64~dTkwleIKw)PATUB>n` zT(9lcy4Ucgb-V>w!_61?ENc0wh~+(@%3DT7b26{oc{9>e4G{F59h^Xd0|iai3K#%G$3?ZK0oD4X<)6X=CJzbsXD53x6P3f1) z&Tz_|__CK&fv;?Cb~eJFsM)_aF#9CF8hHB(y_Kk>q_-DwY7LKQ`tYBiXx--#XU$}% z{0j2pSOi9@2`eQN_y>CM&j@^}FqTvh3#Y)GN6;RA9QzucB79%xo0OZ^*}*S@u>|(= zPyXik`#K*+dfAk{asb!l5EhgEOE&aJ{5Q2_`h6_wcLDq|R3!ku-~WP!e|vuWBG4cD z-5>a^1>Q;#_+~h5-6UJr$i{y*%SKmBE;m6oW?0=a8|oF;p}ECRYP~xkfmzK zQZ-;{9N(tR7`}sNyx&o33owQR^+n)E-t~FbVhdiz&-q{Wu6ftX-gVu({sQs?ZVyMr V_&wv-{5)#&UjF+HeuqDx`+rm4?;HRC literal 0 HcmV?d00001 diff --git a/sdk/java/target/classes/io/identitycore/IdentityCoreClient.class b/sdk/java/target/classes/io/identitycore/IdentityCoreClient.class new file mode 100644 index 0000000000000000000000000000000000000000..4ace988c88f5589d5b5137ffaa887a43613ec9ee GIT binary patch literal 12199 zcmcIq2YeLA)&IX$+10UtbTUQ8U;zSD5CU9cBNvcp!lGCbU~pZXR?@-gPQF616UR>M zIK`<>F?O6UiJjndH-vyMaVmBaC$ZBLr}ySKg~W;DnEYpU@7R-0NcsJ~Pd~Vsot=5} z=Joe>zVy=3PXV~tILCw`sE;O^qCIXr9Zm0#B$94ZoBzZ)#dH(O8e03_(zA zqXeab(u<<;X!;UCQElC}5G)j%C=-U zLI`29+GL7gQEmJ9E1T=Km7yFJCc-ut_=^PApueG@aRR&4Wbtb@F zxyfj6G~%SAi8zln4U-j~RW{DVEWzYG!PkQ26G0*mWOEt$G26x*oGmDG2BVvk(Y|P0 zFr{5{A?~J|wsy2NhcFlOOw6}Yg9QRR_)-vxrdD;Q60uC$)y&+frZ2Kli#mbX=cd;u zQfa{%wRIj;&D+j&G8*q|w$MO{=uf8yEi?*BR4+9NO;~DTnT_Q*hsfydGU;fnsXeM7 z8HrxO`LzLPo}@I79`U!#E!Ial&&K%*w=&|^8R>TiT(#o`HZH^pvNe*3r=4g#C74!V zkGh>EE)py_9sAboi@1Y|X%;Bo^*O>;4`fp5>Tb8%iB~&5$*R|Pb#1BbtgGJI(Y_>v zW~@}AyK2PdKDm^j3R-Qf#u|mGR<5=lK{#-9e{Kltu--(QjSY%v0lo4jkT=m(3z@N7 z!ECp&QNgr5n4NAU>834grV3?uA=W+B!PnJJ(ydOq*Jq+hw`Ylha=DETbP{qpI^ZTU zit8R?>bYrkCaFc4OxTKTCbrwSLZKGc49=TE^AJt#bdw1+b*GIh)jSH?Cby3u_PA=Z zt8H9^YdJjN?CWqTPcB&|ZR(X{qg&x&^AO4XEly;2qPN!q3AISg+^>(~<5--O+fDZ+bU6gM)68R-zm?DkwMG zxCO7G;-r&KJT;g|lEF(RVs*N*^U3;h+-l=CyoMs#Hbeh%bxs%)q zjoZx@UPsHbZcUekH&FPR`dufM?pIsA(Z-wbW{xQ_b(QgWeF1WgX3lu@*+6P-O7yrv zljC!`Zo+Go0KL`5+mwt=N+-4|Vz)Xe*TUP$sr74Ct+wz^;=XxHSKH=IoythvrEKB> z!TR7S#Xq;qzQh3Z^-;v1|VzW$(CPDkHdo!2|~*`x`HF_lNKVdQE&$IfK*NjjUcM zQTVcrC-D`E0xfFB-AtdI$De$O4Du%o17B0jPE5kn__~R2*!U*CC0P95mcBn}TPzq0Xb{Dy(qpp!|_85MIXgY|O!&c^TY2mKpI+%m#u<9==tokdX zu`#7Vi(prOGO^d`j=4+9@U0&gH~>qKK()}D|$Tk4e$E_G5}?!L4o ziwP-00$8$y(SsjlUF)r|WT}pfb>wwzw8xU=+@i;2b`?umaxRxDA~M96^KE&VT%bek zjnP;v>KU&MR0~;QOS3TJDoMp$m#($Ac7r-I6RWTn%jfBXtdv!zwAj)rs|7Q)@+vd0 z63eFb{PA2T@rt{9{i=kZCL7okn3}C!G*6PXvd)zCwzSCxLG@U$vkOQM-yn5mv!QH2 zFw&EZ2TJeVZp%j5L_&0{VhRnzX^?IXqe!;UZOY|>4ZaW-INZd%SRmY%PU$jbt1a7P zyI`(|I2AU+z>bMjQzt{Q9w*tO0y;jEk0o2X)?Q22p6LmBJTTdx)Etr>veT3+ZMjOW z&YF79Ik&HgEAgV2DrGdHRdVH+I#mdE(6jj=p(V^3rNI)1E^@*0rKUu(@nAqJvn4C( zMsXO$(rZhf^efTVVWD8fXgvHiq^c&2jwpIF@rbGgG_^!ksG1pIM#bn+cGHU_F-g2oW88!>mjJ>w(ll=;5 zCKoCgY8;Jp7TeKhS0RAhXv@o$%9|;-Z$JfJA0|HhGOHx3i!iugwWsP?1Nh5M1bQGrn?-SW5YOy}ZGcJ8XHQ zyeS(aX)buKfK=6{jdhMq%=6FTj|#}l29+$nE2?!C6WN0@Pz4!F#6D4Ew4kWAlX6l8lIniCbN_bD67WOerGNWeqiFCQ@FgX-J| zne-GomlsrMBCn^(i)j+qj{$b{WbUz2KBNpZRm%w|NX}9D{P44p5i(N%U||w?6G`!p z%EwIkxGkShDaDy%pNO8(OCMTkY}K-d7+%W5BkQ-mc&qsHQ5EYP(rLu#IHqnJ%NBB& zWeXV=+!W-o4Xy;x7wp|cT;Ad+f8<< z1Vqp@p`0oUsBW7o11BO*Y@3seDhNK9;&i`?r)nmE6%RtEfyEP;nzPg-C7pg`HZ-uwXN8 ztRFyk3TrCaA_;3GWS}lKE5dK|O`7baFeSaxjH=R`Bn)F2GGl5$tW?Q?@4WDav!>@W zkwqDwuIJ@13W}m1*#yq&k0{x+-1r_hmKdZ+ojXQeak`|85QIy!@mtUsd$P<4CA!AL zma%@4w3zQJdakD8>tZ0r;HuI=C+Q539CAG)h*8LAC0p=co!qw~>f~)B&^SHGatjM0 zJ0<1}boV$l`h+#h1O?*IEXJdb609lt+bDfy1PIxa|M|v$O@jCvj;xZ`FspiBA&=p6 zW30`+fV#~`CC8burjHDxCScR@HL@s^jGoE~b2-p_Z^ID|P3MRKn{rmcS-v+@24ZXv zR)EQuG@Ei_3`g$o91JJu19L?NN~d*EB<6ps4s|9n$%wm_2{BWKV3Elq{t|^2OSGF< ztl8))Tb?rIUo0a`fO>hKW|e@IGg(ik(n)8~GbpL4rSeipP8u)`VSUsvXw@|xv|6#U zk=X4r15;mC>D^eZUh72C38jyB1s$(H(F5uQFR7aLL}GVl?Am8=2XCRO76--JH#k=Y z~C3>L8dAkUT?tYPuS!zsG>3>ZC9w~b3@sHHP)`L+C}++YnUZ>i7Df=kPc zvzVV5vu$IJaW>7k=hjY{+n|*X0PsQjXF9C`C^zPgi%%9D?WoW>K;A)Iu2x~N7VFs!XQ3wxIesW z2(e)d9zt3Twj4r6wU-^j9@TC+guSZ0>Jav+_PRsZui6_9;U?9-@;E}OIYg zw2bmGi5SHjhVYhlg1IyNj$yp3!RKjtRq=65tt!@BG>Z?SxajYf{b{|_|R+-_ChaWtGhl{YC{o(pYvF9kL6uF^e9LnULK3P?o>pvF$jMr~e zo0{RzF@iq0>aRz~Ri?!&v-+}^;S^f11(_$a;# zP*keSDvM)#kKn0NtO!jjIe^-S@$IV65WYW*pXfs$z%&oY`(f8lD;vTu52CeRP5JGE z-jdPp=WEe_t}1jGe|~I5Xc&JV!i#$Bq&IeJnH)UX>&;S9Ov!pmX2}9PD|4hqwfcDj zPUvU0EQ2cTy@6H(SV=~&qU^QcQnX?{El3w_M<3QA!>_-$aO90>!&`a%=w7tr!xX0> zY{uuY1yAvo&t7QYOk#=73>A-bz4Yo)R zB3g28#bmBuCQr&&5aO!&{EYEc_Sz90bz>l`cQjkH$zhJ2H!yHuLwTO2FJdRZvnmhZqM{vVd_a?FzNkp@bJy?5Uy z&z0t6Fr}twrM$#DJSNtecx0y8%Fe&l^~QDbqPq9=%t=BFY1QHc{(C~b(!EDi59~kt zB4+aUB=umNnI|e=AgYG?9P6o%%u|;siOL<6s+$^ysDe_w@gUCLbWH3Wl`^GL%Bfi2 z5ARa%ha`Mhraz_zD&#HiN5$ewsTz`5MME;@Zmj0hJU;2Ajg?Zvex)oNl3G3xG#?uI zpjLBc69=e&`sFhA6<`jZ!|sDx*=?xsO=>d+nLNlct#hXnDy@**P_Kbf~ zbPbxs-}n~m4$_YTfCZ$-{vkOpG;4o!SS~z>=^IZeO{HACSSiv&`XE#2`A+x;IgH}00c$kv;LrNwkjs<();g9F@($Da#tt6K~>9uhhG0>rVgg?G>ivHpq{Ndq`FD zeeli1O!?u8`iG@sSgxp)Ybu4#?Y>iBJxBdJ4bn5%74l<>Kd-;ZPvoaG>z`r2FN^0f z>E3ZzdfMxWo=fv8Q3Di{0R_}77xoSt4fZ@tp>eSV^!&nVR_y5qw;2-a#f`b zRmG2^Y*^lQ5LQ+3u-tV--c27?PyZzE6%5OLL-N21^BA7lQDq*HkFaXM=0U-yvF@-u zqR8%|E4{3$v(yltS& zr0PA#ps<86yYMFYlQNTJ)RXdOn!+sWypg~7#<2~?NyZkYDJwO7=F&du&Q?=yQ?$B` zPbUd{j2R@XnqkUcE9Fj_wV}mdHwqj z{tnB~Blx!BelRSZL7F|!F+=_#|71Hw0q0GmXE04(pxnR6vE{s}@o$Jxq<>5FuW6K_ z$S5}|_+RzTFs2(-es7jhZOr4kU8EK>dt*MT=%&hz8k&r0Y!|S7n(e~UGVW7uEFvY> x%1UE?X&JwS-K^U?+14_^{wv!$j^8gIHR@4jG_Y;t^9zK}KVylp)L4$H{{XKLm_Gmj literal 0 HcmV?d00001 diff --git a/sdk/java/target/classes/io/identitycore/IdentityCoreException.class b/sdk/java/target/classes/io/identitycore/IdentityCoreException.class new file mode 100644 index 0000000000000000000000000000000000000000..f30fff10837686691883e322d9f8020faa394b9b GIT binary patch literal 568 zcma)&%T5A85JhkEn3e%W(ZPh3E{qDs`2ds+(S&5;LJ0e2=s+8oCiC#|S*}Q2_yK;D zv3i&&Q5JS5mE5XZr>pwo^X(nLH4bg$kmo2=P=v+Mco2`morz%L-X}q<=JMv*my1~G zfWf*_fr>i}&YAb)>&KxAChhZ~L2VgMiJ`f{vDPz~hWbg2W|G=C$_yt;yJ{@y#rVb7 zp>%th=#p3)q0rT1$x!uFAn%g-NQMK0VW@f97qg)VmC;$U5KmRaaO(Yw-e%x)8AW1} z^8RedQ1nF-QPJ7B3WMF(N$AU4WhQEDT;bASaSZcW=Hx(FSQIOyI;2hBYPObOuW5ao z;>vB2lVgW;edR(GyQIjEJ=BO{Sfz~BL!K_co2`o__-~j^P307Jw6cA}cm|_Z?BgIE J(IHR{^)D-)em4LB literal 0 HcmV?d00001 diff --git a/sdk/java/target/classes/io/identitycore/WebhookVerifier.class b/sdk/java/target/classes/io/identitycore/WebhookVerifier.class new file mode 100644 index 0000000000000000000000000000000000000000..d248c4d34a5cf8da6f39ac64850ea2b35b1edb4a GIT binary patch literal 2950 zcma)8TXPi089l8Fvl-4hx{SGxKcSiGhS9=6e_mvj0%-T(RT z?SBF2$3IQfq254)g+{Cs*my}U$ZS!%v)MD#my{g}tb5pTo$#1IeOG3(k-PXOdQ6yT zHegv;j|~E?(Z0}`SJ_i;5K5OD>s{}Pz?QDe=v|9By?vvFRCt zDA0(B&Ddg~-NHTCD$wb8StqaD&_MN6zK1o8i*rC zWsHZu73Xj;4fZ+rK^gI{kdBH$hVBgy8P9>=hGS!n; zZB+^#&rRW10`~;YtjmN>tHrbvqbbK5O(p3EDjwI2HDVwuuPF&C-UC{jk-8BlTDsiIVdspOiQROm|CLY9L z14k@8grlo+ACqB$n9J!vprLCdGm^r?0_O0%w8w{!-}k_SCXV4Z1|G3+90Lh;SF^Ui zSPH%Dn6w3&dD7zJX)A&KHL{A&YW1$1ffGD`8jH$wP*Qf51o$c>kK_Dm!Vn%cFl^xz zMg(?8(78Moc0pquX2;nRdFkf|<8Ri`cy?mw;t|3eBT;Rf7_m#XVbsDH9ur70_kqPw zap$fi@mgClQv)Uj@wi6*2_Cna&7fgEhH(oMI7={fe+#rHUIS&9eYRParIC;}w);5? zzr}fao0oHH&~t4Wo^!$iM^URYrT>p*EG9`8>abH5p2E{?*m5Z^L-Nqb9Cbz)@vH%9 zVH%`rQ-okSbc)$wb#=(|=OuHj^Ja8SiK47tC0fUzEX;sM+{k-Fjw_1{qrGcTF2b>J z3GCaZnaCae>Z-Y1brzFE+aPdG!|z(~P@+Sg>ase+@T*FVMKV{zg9#sjfzU!33j*7t zdMenCsUVQE>Vz}P&WSYTkxy3qvMMm<{=C#CP`?_{zeEI1@{_vl(ZTcfr) zfgJO^8@69ElexeueR*ZT%TulErr4@Yl`?c<5mMFKO@oTWu;cG2DA^5oCmbh&f?e0B zeBa|$u%pVwTIFKu^;C?X;#69i`oN`>y2@q_6)&MJRZc44(`4gX1r}J(=C3obZnqC9_IHq=s(N#Z zDxxp5xC4iz9eO??{GeLL62sW(Fg2&Bg1w`>Da)mwzXMlooLDTW8s<|~nAAA=iHkv5 zERH*&%BAoT2^M`Rd_ri0f}}|I3jynt>neY+D1$(;MLy>RdRL{j3NY{`#qZ}$c_iX$ zagZ;Fy6Cl1&tJZ7*wWAO`w)Kxe;d1RK`e1lhv)fUKZJm0G{C~|II?0R{2njxtBKE$ zKO_#$BSkBqwfjI%?`9Y)Xj(?g3O3#3Wb91G0$L(R-LWxV#7msxHoS~iqV-n1%8?G+ ziq|-*kHTz?!-#L0v&FTg-hadFT}H=;SpOY5&$sQqg+1T5H#FV&IGNb5Cwf-UbvX4k zT92BM)vr6uTe$E0_I2$kwSouQ8*Y4x#`>FWxfS#uH9KfDc)s@=oLt7~w%je8S;mtc zX3uR*0`crJF0A004zqh1`DGMtqX-;r?r4rz53FE59~2HP1_Y;=aM-(~mHT_GiwL_~xdK!v^|(#QKJoA8^))>U@`Lb$Ac&^LGPB XH%RB-qyHb{Q_h+E{tRERmX7}cR9*{x literal 0 HcmV?d00001 diff --git a/sdk/java/target/classes/io/identitycore/models/GeneratedModels$APIClientCreateRequest.class b/sdk/java/target/classes/io/identitycore/models/GeneratedModels$APIClientCreateRequest.class new file mode 100644 index 0000000000000000000000000000000000000000..d429cbcae722e717fb7f446ef1a239a3921adcc4 GIT binary patch literal 3059 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 literal 0 HcmV?d00001 diff --git a/sdk/java/target/classes/io/identitycore/models/GeneratedModels$APIClientSummary.class b/sdk/java/target/classes/io/identitycore/models/GeneratedModels$APIClientSummary.class new file mode 100644 index 0000000000000000000000000000000000000000..aeb6d954b1d2502ba973db2ce1f480c5b73f6bc6 GIT binary patch literal 4799 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 literal 0 HcmV?d00001 diff --git a/sdk/java/target/classes/io/identitycore/models/GeneratedModels$EvidenceReport.class b/sdk/java/target/classes/io/identitycore/models/GeneratedModels$EvidenceReport.class new file mode 100644 index 0000000000000000000000000000000000000000..1c27c91f5dabb5d6142d7ad1c5a4b8dad2faa722 GIT binary patch literal 2618 zcmb_d+fv&`82%P)%YcZD!PM>{p$ScGkwi_~G&Cl(2|3`z5K1y!w9{c0djWy0btTy? zGkv69G&A*dhKoKxAF9)TWns&QG8s=VR@(i~hj0J=`=9f_06fHZ)0n`dhM0~x5)A1R z-r}asog;HsRHa*ENUT|o<*zeL7K(dQNMcIEw2m3*4EHQ)S~cPLmVZXl!mP`hus!p+ zaD>Z!QQHd6%THTMsw#FxL%KdgswG_O(5iCZlFq(GUNV)Q=hwb#IY%Ys>xzz)ax~-l z(&a~D|5ThQ`kao8qU$yJvtvtM+i$wIVl3#$Dn_bNJKP^odQV4A@zRPHRm@N=-q-N~ zK4eJxvg4oOWuY=wex>4YGRnnO9oMi#E{?f(yg`*=crdn$va)zx#|GKei~H`(yT+;It+DV_DnbF0TtJ1{u5FU$-u+uYe1M5jY91S(zaltx=>S zO!nWEki{_lS~lIPcxI_Y7X~ii9d)?~c-zABH>Kxm_?qG7yMdd~bukLkkEQfI-{p-? z%3dmghtpWcHyXax@d%F@uJ!J*+X0W+i7`}Rm^!$y!tgelrscHcsW3Z&o7}0{!dtFL zdD?80F2zTv_~xu3o(Qk%S`C^OQI!pwdtQ_fqV9)?*%99RE^=7uB%Uyo2j*8PGHFWD z$x<2^L%}&JkYdni&C*KKny0l$W3BAa01cuR1g9(g^HakX!zaBukBI!DZW>-OT)kYB z8r&%|?$Q9Aps^CC;Y#xzX&6jd>#11sZ3P5OF`(9!A`{*3wA2FIPTCs8z&`@I7pC=v~sjeTB~vL)h$kU zo9a~5=`pOSK4wQ+n;*lPf4T43KcuAiHg{|ghcFuni) literal 0 HcmV?d00001 diff --git a/sdk/java/target/classes/io/identitycore/models/GeneratedModels$ManualReviewApprovalRequest.class b/sdk/java/target/classes/io/identitycore/models/GeneratedModels$ManualReviewApprovalRequest.class new file mode 100644 index 0000000000000000000000000000000000000000..c3bd85a27e973e07bc1adcfba98010c5e124f07c GIT binary patch literal 1853 zcmb_d+fvj(5IqAdS(YdlK}EbG=yzAl>OTb#tLW}b9H0+KN$Y$1L7Ufg?2Op$L z%PJoH06)s|WD_L_QdY@BGSidpK7G1-I^Tb6d;@R`cXMb#tA#cj8MF&@FUwWwc+!94 z%&UqHssim3uJ4-L0d@8caujK82Q4s<0r?7H6xg?D}f1QCn2OGfC8_vbrL@1sS-JoE)~9C6{45 z*o#uKcW0GZ($yz2kTpd{^gOhc{O?a&ve1{`p$(etKJy3BR9c1J+O5eaf!tHw2rBBK z8?o;D<071o+M9hf$Ht%5p|NmI;LN`@GW+G%mF&K+wFyli>oMi9s~zJxT*M^{mu+0Z zRe=+mHz|laz=>l_OawX>e|ZsDPuJ7+SM`c=V#R6cS3MODm$hDL)JxmTo;pbkpRLu^ z0~J;Rw{CQhHktHf7^V-B)_JwvNg932Jxwy5MQ4|QC1B6^95zkQiX|W1W!6}j5E$7^ z%q~PNaN-@`U6mDyvx0Gs#TMRd_Cz!oxeie3EZAj*}=RA`1nuehj1n_pCDL7Gg}y$DW0Khfp4vEzJUvAG zhG`%1aGEkn7eB+=jYTGLvqJ$2&FG65ZLVWDA4S$gv6~3YBc%&0Q5M&59XEK|OZ+Ux OaFZ1+@rQW_13v+0>)6l$ literal 0 HcmV?d00001 diff --git a/sdk/java/target/classes/io/identitycore/models/GeneratedModels$ManualReviewApprovalResponse.class b/sdk/java/target/classes/io/identitycore/models/GeneratedModels$ManualReviewApprovalResponse.class new file mode 100644 index 0000000000000000000000000000000000000000..d962857aed7ba4ae3b1d9d203f80edf33b4ad68a GIT binary patch literal 2284 zcmb_e+in|082%=Xvrf9fj&Tctwm?XWy=l9&9E$@bO%DljN|jcTC`i@Bo;I78r4|q-RIY2*pbb3)eY1yOYL@~yY?2hbr>swd{;%mi=Zw|pu^_@Z5C^XempTz z5WcKh%Wt^ITeG=_ss}NdEpf(0(Gv4ARs1|Q(sbe?11z~Xj|&tqI#DC=L%DVaPFE|# z9$JHMyO_m0G`J<>tz`x;uyRHQSFQewE-v9RlcIhmps~QSv(Y{f&G(zzs&1;4X9Bb9 z9j3OWHVF1+Q!Ry|CbYzzhW%PyxBM3}HY)nH)%3SzeJ9qTFZ)dXcf3E2bX!GcwBn%&b-DjNdh38wj45UNL=)~1S{N_u81M%QI?Lq>tUr^Ioy70}iDXOeL? z$C@%*y75>>vZWX{RnHwosQ+{Xs#1AGwe;MBwV_3Z7MU(DQ}6TASEJvYmt+=O^&R6u!i52Vc3UVo~6| z!xoK_GVv21QxSp5%>yk0uLi>m!mi#?e!{pS!$woZ^EIt^I_>I-m5>TP-EFITDy~OC z+vsReWVtEhc#x3R*N+2gM_517&MDG4aORbdji&0se!TiAo+UE9O7cYP0qSEP?&p5F<|0Kef1 zzh1(RtN4gFN~W&all8?qT2 zI&M&dVDui}Y#e^?4rIMQ;hYpjHdQl}ZvIG))HeMZ+AQ3~k=hEcp{>ZG@_WdB%zW7d y-NL8bODr^7yS4)C*H$I)8CQY!Kc`fV|6=aoTP)#j?|qDvTUcfS@8JPfF#8|v78$kx literal 0 HcmV?d00001 diff --git a/sdk/java/target/classes/io/identitycore/models/GeneratedModels$ManualReviewDecisionRequest.class b/sdk/java/target/classes/io/identitycore/models/GeneratedModels$ManualReviewDecisionRequest.class new file mode 100644 index 0000000000000000000000000000000000000000..ca97449a503523486a825d449ec4dd1a7d02ebb3 GIT binary patch literal 2266 zcmb_e>uwuG6#mAJvre+cj&Td2v_MFUy=l9&T#Lh{NoW$}lq#(vZW5ZA7K)#hy1j>yQ{g30&3!c`E#usc9 zjk=jo$w&v^H;HQKvo^|xUP$RJ6-&=A)3b_=OSnwzSSL6FUsW6b-`aX@)Iy{0WgByN zh5B}7w7Wv{1lBG_--dyI)y7p^V=fpo=|=)zUkLb+FJJELsb*ZSeIqcp)n!84YMW`= z@zwnx(6Nk}G3s?2P2F~XkWs9{pWD8>C!71sh${z7?iaj23UxX=gLHPME^rQu)J&-;LOh4A$u&Ew+#_P(z+UvGy z8rI%Jw$r+fVhisG+&Evcv!?ouURu^Vj^a>u5|^XmBtDqNhq!0qBO7%r3A}dFpJ7rZ zZen99A~3bnM-g~7?4}nS=zZlTjO#LJ`6^myXuaR<)Xyx0RPf1RN3E);8G4;qhr=Q( zzKo(_LRwzm4#AGmeyW$#Naw*pH{Tyf^`UvwKPNM$C}43FxJm-{M!H!M>w{3GNl=4+v-R2$pm62nFZX5lYWU&tQSyNy-4f;5xrf!jBtx zi#JN9rkRtm#TZ=aDbJ$Hb0JFx@ChUWHLm$A@dhpoj>Qvd8M7Sr4hhD{JKT){mUE03 zf!}x>waYk5mej6U&hEuA;x7Teo=f~HZl>Z(RA!vYJB!D-@?Y|o6P`g>^0(k=ll-qEH82?%t*Qg<2Vkj@Em9++~u)orRP8^v#8u&WZ!1KOoHy>UG5bY snyFn=0p@F}5_pfRME&nmD$oBcpW-vz$8zsIL&{yOFoCOhfOX9M1B>;M1& literal 0 HcmV?d00001 diff --git a/sdk/java/target/classes/io/identitycore/models/GeneratedModels$ManualReviewDecisionResponse.class b/sdk/java/target/classes/io/identitycore/models/GeneratedModels$ManualReviewDecisionResponse.class new file mode 100644 index 0000000000000000000000000000000000000000..7319ddd64f2710df969ea93f0291ebe60b418959 GIT binary patch literal 2478 zcmb_d-BQ~|6#mxO$bhJg!D&s?Buz+aix8Ez>7Pm31d>2v(hSKk)AWK_q)iaWT31@T z@pdKi(T!Wv*-UiNB{hL{5OC**qlTLV+OJ&au{bQ z?(+_}eIC5Fw}c}@mtlOx3p{m~VXRu)ooGT0JPO9qi(D0D>Vz49Ech`i&G%~GT9$8!~W z!RxxV{GN$|Hk)@-9hx{}qNIt_UE+>9YzfVoGf~!@NzHMEyTet9qJH1R2dI!1B@^8Y zKUN#(5J|l@?6x-ep^1z5hz#!WXm6D=!mxf$1~;_+%Oafm`>u|qK33*Z-u$GqmY?RtILpI5Bq2UGMX}h^A!WW!;)xeSt_qTcI>3d4d zsy&aKe{e1spdQ*3YEQb)c*vWA5<#l3p3GT~bs~9l)e-oK+iruQJeZ$>YA|`STT&K* z{<&<2j(F(lu;<=t$XmL-2#`-jq}FAm41CFOfVFDaG@i7%)nAq)VVR$nbrWbVNfv}T@>pXCM5iK;NJZQJ-r(z=& zd_i+yO+-%UwUi78MOJ+tMT3MCaX$^H9bx@MgQuC!;~vBETNA9_okhJvJe1;FGKdNc z2CZpYMOw2A=0-q6GxkgnWGvB=toUR(N8fqtFEDHI z2!?g@2-DWm5sFqNdxY6H#LeIn+Q&%}_zhLszeuD|gGD!zPd(Qs?W&GvKK5-aK51vN zSfukzmY#whf!H7~ft$3JvZTEiZ|_*>Q%n7088h@dSt5dtVVS<#Gs8N@1>g@l4m+%K zK~GYLXXxi}YlQeb@cTQ7UxA&9uaGevZQfcu#-;z0zmUA?H#dZ3ekf_Uj8(-0P wo-n36NW)9-x;He$^!{~xXZVJ2oX7XLk5#PU0UpNm4AE}m5h_^6V>D3t5A!cDasU7T literal 0 HcmV?d00001 diff --git a/sdk/java/target/classes/io/identitycore/models/GeneratedModels$ManualReviewSummary.class b/sdk/java/target/classes/io/identitycore/models/GeneratedModels$ManualReviewSummary.class new file mode 100644 index 0000000000000000000000000000000000000000..a574745bec425c2440072f24c90063c2db94d617 GIT binary patch literal 3158 zcmbtW>r&fB6#h0~%Mek6xy2OXHYF(*Bx-s~8<8t%0;wScC~cD;%wlhXz?NJ|cFRNb z4f+V3X){w#XZXwo_{`Uk)ryd1;@^l9kVkw8*l zcwg3~S(eUgb3+wfuOyIMv>iLRE6_KW-yT2;0~!W(T!b!g+jdR6q@2JG4(YZsD{e`Z zee;QOlqUmKS`GKJtJ0~-@`kG0>gUZ`r6RpUfplGY_A9$61KV|WY%-N8w9Rh@p6$H0 z*x-9Q(rhj12QsMnd^DmX!$(@R=2cx^@!6P;aZJ#eU)$YR#XulmD7qE%mGlGU{Zc8L z`?7f8yN+3sf!wv7lKGT&Yvf{R=8}#q>m2lK|6r%A>Z;6Y-`6qCY9~u>u~wm2cZy}{ z`z_D;&Sf3BP_*bN4tqxi8N&BN9ar#?Kq_#X;RvkH6?(_a%69|AcCPBUhL6e4p7i&Y zC?0`(=d-iIYV$e_%oFbFC(52L@cdj#JA8i@CdkUa5Xf%SsC+7F+xG3mJmqR!m*B4Ml=mhgJ1R`9;sJ2CmmBvc!|A^B^ky zmmO+jtRI^zQC?Cg2yC4g(N=Q;ThY|DqDgDDC#H4El(gEDF-;?y))1{>TBEckX-(0Z z5ztp0dON~E6xHKs%+sOadx5K6u*Bi1;YWeX@4iZjZ-S4TG|Df~;M3@Fq4x~}3$(jP z-|Mt)_(W#-De7jVi9ruiH-nGqRqAGp6N8?cZbp_E^x$+erinqXOgAGJx|o28K72wB z|3*Qi=(}M24PneTpcxAd3>nuO7&fx~4U8JuL<5sXHrc?Gk<}WQc|-Rv5CA}u3;@64 zQ~KR#>cMCDoOYx!f`uu@fx%iJw{)`16i3=0QXE<$q&SvjNU`%8z94!=BSjz;AYqUg z2n$fypa_94X{~AGM+^2AnQotE+T?hf%(lttHkrc+J;k@^fC0KmUk*|;j_?8SCz0K; zGtgWL&Dclih5afH$q7z39w=8rIUn*2obP7C@JZo?uCf{?pKJdVQ* z_dvq<3);J)NJMJ7%9;L!#cCVsK^vzg6RT~w2W_0)aWGaVBOUEQ8y846*0;$Xv~i71 z$NDzagElVHT&!<1J!s2O+uaE(@-FU$-}`t--vugVo@v~5{L4+toi{6I;a1P-arNkMBr&8$aL$vi}3Cd7(1^ literal 0 HcmV?d00001 diff --git a/sdk/java/target/classes/io/identitycore/models/GeneratedModels$OrganizationBrandingAssetUploadRequest.class b/sdk/java/target/classes/io/identitycore/models/GeneratedModels$OrganizationBrandingAssetUploadRequest.class new file mode 100644 index 0000000000000000000000000000000000000000..edb1cdbeb0e238ccdc4aa8253ec0e8da40e653f4 GIT binary patch literal 2322 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 literal 0 HcmV?d00001 diff --git a/sdk/java/target/classes/io/identitycore/models/GeneratedModels$OrganizationSupportingDocumentDeleteResponse.class b/sdk/java/target/classes/io/identitycore/models/GeneratedModels$OrganizationSupportingDocumentDeleteResponse.class new file mode 100644 index 0000000000000000000000000000000000000000..0b12ec26db9742c08fddb5c68d3d10604172f2f9 GIT binary patch literal 2210 zcmcIlTT>KA6#jZ)nFR(HSG*9TMuTQ|Ax<#&ENT?IkXqCNr7V3&HM<>Xn4R8q_fo;% z6zJOkk!&u@i2WkeXifR%$v8nuK`@eoe|_P;9<~59zzV{n|zxG zA&=IBWzkT&$uKl0BWbTO43sOY!zf_b!-$Vj_zWvj1+pn3EA0+(i=d^NA~eAr5edz$ zXfDO~sr!1JNAelBQbjABc3WvHqxA*V=(I?9L4?AJWntPXGJ;{WnLhj}$$qK6=hKSS zBv*4@9Pv@aIDg@E%j}2i+fN)fU?B)EM&HJnRr) z<#NVaifx9{&39#$VK9NXSeKEw*J-T@{g9I*u98%PhpSvmcTb6fc0-b9j}E0EsG*jG z-B8U3T=N!{sU}kw_5;*=+K1Fcxlb|0J-EnlJPSq!dZzZbOZwylvf8>}F^sIJj&6wC z(!n$FUe{iBeMeP$PZ)bw8SCK+!=+E_8!Eo;{1_*5)>zHk2^6L{gr7$6Gk)>#tB>D6 zSw6Sd;yS6GAn`pFVHjTPYGHVh4PQpvYD)wO<6Ry#Lt&=sN^N!8wM>B=ESXgB;Z9pD z2-DEAZI#Z7%!k~VEFsnLG^4hU^?g$y%|HQHX+CAfS}mPgMH*oAjWPI(5zWllrl2C3 z`J9pIVV>dQ9)^9q>SE&I7Q@+(vr_UB05MC0Hb)aBhmsrkU^qj!QQFVach1nU zXDx?IL>_%G9&b7PivXUD7V5*`22F^BifyEus@HGhVW?MFzz%bZKnIITa#G=?8BNQE_rYq*Zz TiB=-M0_ElgfpQZIxQ)qoSZOWS literal 0 HcmV?d00001 diff --git a/sdk/java/target/classes/io/identitycore/models/GeneratedModels$OrganizationSupportingDocumentUploadRequest.class b/sdk/java/target/classes/io/identitycore/models/GeneratedModels$OrganizationSupportingDocumentUploadRequest.class new file mode 100644 index 0000000000000000000000000000000000000000..7c5f8e864efcb6d346f75b41336929c4b9451685 GIT binary patch literal 2409 zcmcIlYfl?T6g^`DYlx|hL(gRoMjec0aSmC5HBY-_ngZ6y(QMe-m@2NDN4%S=ErVfo4>@4eQt3l`Qn!c8`HT6qNMMfa=#Pd}k z8%m&1ImWYYLi&^~g4eRh+4Q3guc5ZgK~q`lL>2{{7sy%vt;l<-wzdz9iUiIl!mI{H z?WnL^VEq@exQN%8(dbTefqJp>|JPKWO8|)Lu=%I5coT0ie_clPB~m5u{n_MSwdvl; zVj7otqGVe75s>7kS&hx*Y`CwEKZL+)7n9+$SN8My` zKyS70>Z-tnBs+<-5W4?r#Y@&98Li8ez}UKOg;jNz7fWFBh1-3@-cdI3L*CvM9T^87 z3tWAP-HQ)+REcY<8%KawGVB47X5ru$ZM*QGzZV%R$&_C%1z=cA+F}ccTbA zOP22i`+85gosBCpsQD_It!Ta1YL-v!nAmZHDzmJjYUnkM4wEiRzKo)zA@0MU5@82q z?-Pai1Ty%V=ib%7a!=mMFGyNWz~M8_Cohm)4Jfy57*_4(|AX2(xF>MsnAHI|yDT|i zM@^r;mB-nk6blsO6g4MJP3Erx0+%^E$M3s*W+Dy?R>V&(sW6)U! z`)p28KrN9Y6mfUA6$I{WcHik#6ihGs_=iv>K{ zPM*db$Kz>k0GB|cbq8kBjMponH_RPd3z*1EY<qx?I(A!x?U_4`;5zfr zc@#xwX0`=->W`N$*sffumUpGMX_1SZ8>(nI+m>hZI@;_B_HFWc>rz6EO2o1Z_El-k z@+j#DPrB;*Y3Q4*Q*SUb-62fFs61RYD)QqR;)GrlR3Hfg7zi>ELApV-4R6Ts!+H1w;Ko zaEI!D7u7zE8V|KZkX^Lur}-9*+dh#QZdC1zG%=`IwKI5|dQv-Mlo-^R+8J45P-|*u zOb~-wQ#&IUnwWrzZhSxn|4L4zXr43PKp3+%XvSO(1IDcy290b_4I@T2QNx&#P1Z1O zWVIS5U(@+60su(T1;7vZkiP46J@^P8(~2}kurS3qFj#YB)-c`76nokeQtVnHq}Z2a zNU`x6J|TKiBSjz;AYqUg2n&$gAP<30X{=~uM-%oYnQrZ7TI6Vp%(lph7Ma5k_3zJU zg8{ljGdrmnCwK?=oyd0I8E6iLy6;2OeLwFYJ_Y=CE^z~2MB;bpG6pVX%${KSzvM^j zXPVHb@Fnu3fqrGkkFL-UGh71+;}2+Od69_Jw1qSMU3JtpZ~<-nG#RjWjB(ty!3${P z*B$L>+sFm9ae!nyY8$(NHjc50j@rgAppC;c*HPQ#1+?WT?e2vUc^_Ye^8-Ahd5%Jv zYZ_-Ae>rJ6^O)vjq={; z^f&dPnJLp59{L0NqdGlD61J#aCgX=)?Vdg7JNKi%|2g>!z)Q+L@Uq+($<|sWVPgbVV-=rR_!OU! ziaiFl&7}Zb^>R| zRgXN6!pP|$Rd%DP+xAZ~Fv|a>?b`dYc@SvNmOUo>1>LuN-BG?ds!lK&yCY_oDt<$mJ>A-p zzHBRUpTMr1ja2XHOvvWTLnWLu-asp4Oaz zRrhGpg@!1qoC{loKr0?}8N3j<+7I11p~#>iaOr$j%2^aQ+@#?*Ml&Nt6OjfnsAlOl zP2VqQEd_Ke@CY4z$k78$(ZL5M(=Z);D3UJfcU;9du8|g(G^gpiQ2i64x_pdG_4+Yp zsw>CHS4*j5%)O`AF?>n;1W5w-P^SG>B!vp9bR+rLaz3%C?9W1I+jw|lV^UbA^K6P( zK}?`$kd?r7S}Q3+@A=z1=K9n^|5(H<{S#J*z&_lhFI$$Wp5P+zI~@lN=2#F*Z1612 z`x`^V7l7YBNPH1?EWS$0*xPJ%`2?5#PyS-W(~DOYU&VG$<7;|jKNyjXOjrLv<~%Rb zG0Z@j2ny>kw3!jmIP!&|X!#M)IC;gPXmcZ=6{-5Z3G;Ldx5Mupd`sU2sxj^$E-&7> nH@L)jzZc%=$4+&e#UrfY37+B^o`>`?qTRtdN~q%{Hc literal 0 HcmV?d00001 diff --git a/sdk/java/target/classes/io/identitycore/models/GeneratedModels$Policy.class b/sdk/java/target/classes/io/identitycore/models/GeneratedModels$Policy.class new file mode 100644 index 0000000000000000000000000000000000000000..ace8fe83d8bffba1fa66c91d9cae1bc3a57ca425 GIT binary patch literal 5319 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 W%UHpku0BP{4ctWu_ppiwDE$voJsAZ6 literal 0 HcmV?d00001 diff --git a/sdk/java/target/classes/io/identitycore/models/GeneratedModels$PortalUploadCreateResponse.class b/sdk/java/target/classes/io/identitycore/models/GeneratedModels$PortalUploadCreateResponse.class new file mode 100644 index 0000000000000000000000000000000000000000..47c872dfa59f8b8183cca764e005a863b772ce32 GIT binary patch literal 3009 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 literal 0 HcmV?d00001 diff --git a/sdk/java/target/classes/io/identitycore/models/GeneratedModels$ProjectSummary.class b/sdk/java/target/classes/io/identitycore/models/GeneratedModels$ProjectSummary.class new file mode 100644 index 0000000000000000000000000000000000000000..e709eb3c7aaee545661ac341d9e13809f6d956e4 GIT binary patch literal 3775 zcmcguZBrXn6n>UMUSMfxC`hC&woruhWvyC^4c5NdmNv9lDr&3Zl3ZZvW*2uiDF4Tg zey}rUbok&8@Pj|e@j06fyO7wyjALeQ_UyU$KIfk2oO{mx@z>t(06xN2KYDO1jb0sn zNNE__GIvbFHk}RQsj9eMRYPjta;)HnhGR3cD_LZaO`~7O0CWvkE!VKB$_cDsm#dXg zbF0esjr+<`o*Ag>V)#C_FNF_$$pOP82aGCNAo@gv&IsY5JRY z$h?N@U7J`C#CLRD!MkKseOEVavR3XEFLB~0Ymy74+2QI>H699rs$*Pv5MU|v2l@hI})NDVc zLoKHi_mooHF-mcl$Z1G(3~~%{40DWf6gWu1KE=HB?e>WrC)mH+Cq&IY z-aawH2{!Wfi7`&Fo%0|c(0C879X`Z37qEf1@0{QSn|1rdBq!Le+b5h~8Nm`{^ij&k7nUSIdEOE$+Pl=Pk7kG{r_zGX+8?546m{>!F SEAr$xgGE$PfWig~XW?%+77n2R literal 0 HcmV?d00001 diff --git a/sdk/java/target/classes/io/identitycore/models/GeneratedModels$VerificationCreateRequest.class b/sdk/java/target/classes/io/identitycore/models/GeneratedModels$VerificationCreateRequest.class new file mode 100644 index 0000000000000000000000000000000000000000..4b5e1808bde222f00133605bda2caf70be6b6757 GIT binary patch literal 3472 zcmb_fYf~Fl7=BJ6Y@mx!ZW4r|l~xF}YrR&twgq~D3KRiTr7AATp)7>mxVvG>fAJ^y z!Ooa*h7W#q#vkSQyqlCPChah3Kb)NRyze>h{j&Mz-{Zdke1)I8a1Lz-+D)X;q0qbM z96DCf@t#_1I`0Psg^ru9=SH^_+9s!Rok*k8K$nU0Fct2&zU3CQ7rD_9Z)@woFX&=u zJiIf}J>$Hb_}HUnL70});hilWp-6XSSSA$_1Dr{F}6 z!qigUKd^S3kUn^JP_*`({C?&c8AN{7D+;;ER&+iU z1AD5`+am3Xi4QPIX}eCiJ5L=H?!5_Vi^4o>Vj45dF6Mz#3>6-~0oDmS9>pQGr#2Nb zYh@P68}3Vm*NPl27XBg(UGl?I&_LAO122W~0ygXEL>q7#NmM6JA@B-l2QeyWevqMOEw!e--$v1=2=KA9SJ zeNx!Xrh}dA<~Gwc?%+KfMqJ%oye^qpA;^>`YMyG8faYSSUbmdZg2?mivS8&c{f6R*XS2Zrv?#lhE`v<<{E*H;L|GQ*Qk&aFYZX=0Ai+zYVp(O>%6sscs`J zaFaA0$E_y1jkUmSoMm@A&d58MjrTd+Z2S(VJaA50Poy>&) z(4W!|%}hO=;X{8we^jTtvcM*Gm<**KPFn5WK70Gz?%IF-+2Xi=blc5ZtR84Ow&vT+5rz>?Cgs>mQx(Gl&IZcSHY z)wmC3AVWWrmDTurdRvC-sVe)C(m^qlWZ96Wt^*?l`VcyU$Vg)-){d&M`b`^?tR6m5NBTepY`JPnfCH$B*(v%-c4u;krO3(yh}7{4iVk&&hgo-Dz^TcWvCjdlYWZH+w~*Oknv^!mTj+ zO&c?KpGcIyH2kU&`0+BZJ2H8)yD!U;H}{i3VWUCCP?OursNJeu3Ia_xM>j!X-BMZC z+^4>YWca*Rb@%=9fzg5MpKfv=)AxF)>oSavJb~1qUu_T>dbT54QXc=GW^P+xpmht` zk_zNnqqZx(K^hle?!h*oe z>$L~f;mKsl-PbxYQRvrODVuB>Uk_mk_bn7{Jis>s*V}U;Y?YSVI%DD@Ft~eyBJiR! zO%)tco4c)zkNlugm1er6^+BWVom)MLOjO)a1_{usx!m zY5#=j3?2$Bs*2Z|aNf&P%{v)cyd@cG@$~ZA6DuoV(Hf?eqcuuvf>uGmUI}Or$H$da zM^|4xhb??3aI;NzkK><^XJJ#|+WA}QmRn5YE=}1!nnGzB+w_|Ofm!;xLhm_Rjv+D6 zL%!RPB?FE6ZUd`n%y%2c$v}g?+b~H6n)BU;DGZS^g?aSj7M<%?I;%zR8Rt(3XTAx` zxz)t5bGwP0Qy6Gs)G4Hzm~aZ|CJHZTXCH3UGfgNoX>o_1k6H+D@d14iR+2YMoG7y~ z6KB>ROPtC;Eb-Y>vBZZ>6L&x%P3|B^kP9epP>P^zfDdUEIr1r!r((9P&9}wzwm8`q zr!YdlcK1lZ4BVwR=VCd>cnkQQ#O@TCN!pU6I6}W(AN6p52l(x^+-LA{;=Vw^n4gR@ ze~jr@`A@X=oHCrjC-{^Q1W|R5Y@CN1e*-D!4_N1AkxF2?%2E*Nz0ig)fX4Tc?}?VX z02*KEcu%y^3!rgTO!h>ZxBwa#)>Kcl!UfQ#s2@IyYv^-)5x+h9*UJ6FZDEtd9mTD| xPwpgc4}Nk70gJRI=tN)96v|+kdUFMj@hwVN#Twc2R4o~Jc!C1fv4JfV{ss9%R$>4E literal 0 HcmV?d00001 diff --git a/sdk/java/target/classes/io/identitycore/models/GeneratedModels$VerificationDetail.class b/sdk/java/target/classes/io/identitycore/models/GeneratedModels$VerificationDetail.class new file mode 100644 index 0000000000000000000000000000000000000000..516ca1bfb9f5a2529fcf1fdb4cd352e9ccbca888 GIT binary patch literal 4641 zcmc&%eNz)>5dWP*65t?+K#4`MC^WesDVDz2vsz!OViBn?X{&ANkvzyjau@F|RK7`P z{HGtFf7F>~I^!Sx0R2#%{`L|`@J@$`o#`-p+1q`d-#)jy&+hW~KQI3R@Hu|&#}OP& zqDMzB5*miLtR1URv79G`d#dDmWetgowqpmEG#t(5ihW3-FNuB~1JE^Gu-$@PR!(3C zyIidbRky4ve&MEalxGF1d?$QATU4ICVVA7HcAe`gu{J;w8zKD+L7!gsjR`+VIuS7PgV@zZt>RF&X$EvJ(YD0O-DTV5HbW9+_Eq;A{ zOO*l*x#f~uEo@jmmp`jk3R_lb+jpHp*$S+6+bI`r^KFG^4o~r}j!D^{sJRupv?~@* z>6j9W{UuMy_pMohh~LvOEn=PUwTfyh&gz&Eh|!%653IG$BRk*MkqvE>HWkkzB11=B zL}}0Vx7RG+SH54Rk41M*$9$+$JL30};uqIkFVuaYV?lJOvMSj=JuMqP)Ug;ISUs!R zp7MF%5k~%F9iQM+t_|F#+cn(HE_WSGGZ&4cnE6bHiHkI|Y5AMi=vNJw-pb69pkC5( z8DB6i>S^7o_!?H<2D9Vjcf&L>bB{D+?$w#qRaK-X*DLCZvR)AX|K zsFiwkU3m{ICV-SGw`5g{mS@X*OV|@^+RO;^Ev^oW?j03uy5&{Nv#P8e9s#Ehrr*Bm zKpu`}W3F9Tr){lyB4@!=ay>~ zR_#tf>#9HQfQ_+!po+HQk^&w1+%B8VPH48epBe3VW~-~1&2DA3JCw<=?sp|Kt`nKf z?qj~vam-h`jJelYXnwDoq}g9dgQQ{7and;H1nDH{H0ca!mXssSkqV^qY?ez7r-aZ~ ziYY%59TJkDe5M`Y7@zG$EQz{?Q*U0%)M|#8eKN(l2N>c^!9fNZuJCPuzgJ1ue6k}l zfkYK)DmaHk6(Z&^5><>*!7(JNn4p65MN~0K1*eRtVu}jR8BxVF6`V7oiWw?6UqlsI zDmZ0C6?rN+Vnh}5RB*nCDi)~Vj1g5VQo-Jb>o|%p0ZpgR)AV!E_!F9uZy;&RH85zL zYhc*O^fYkX$n-WaZe$V-oG>!U22L88R0F4tOkV?Mj7)z6vqom1ft-=i8<;aPgAEjn z%uoa8Ul92SZt$6)Rp17&NeFvFPGZ&@auTFO z$VpU^Atzx-g`D`kFXY70{UIlw9SAvbr5~x!*X|vfjn{Tu8 zZFZr}F5(y`%w-A~c^+Eh9~khL_z3u&Y&2AoL0r-b)iF+vcVf0*0De2v_RCmlZNErk z66chWf64!OUbBC^xn@68Qn-s%B4`ZJGIjDDh43BdHU2>IO<&R5f{BzBj`guUS$D+-3fhJXGAr`IB1)9{W#n_mh?*eU+ zedJzPv+mS BkNyAv literal 0 HcmV?d00001 diff --git a/sdk/java/target/classes/io/identitycore/models/GeneratedModels$VerificationResult.class b/sdk/java/target/classes/io/identitycore/models/GeneratedModels$VerificationResult.class new file mode 100644 index 0000000000000000000000000000000000000000..0e6888a59b9c0302b485f59b6f09a57c37d33d79 GIT binary patch literal 3920 zcmdT`+g8+882&aglL4axqo6}kil~J_joPCIX+2bhj!41Ms%>e=Y$P(1Op^?jcj`r5 ztFyY67d}AWrLWM{ZzpqtjII%{da;v#pT7N{|NrlQU%du!1Dk{B!yyg*I#Ngr3_Z7Y zETe3>&x{pmdwxkEJ?FSiI4^K$dS-0^84PF`)NvTPz%|D+oRV}yC*0*}X;i$DEC<_5L#g^P)o;kj9^qCQssUxod(p9hQ*t-hz10CZL<_pi?-Yk1B)Z%F!6ZnuSqZsz~ zde!%Kq-(jhnW0h+Zeqhyk=F(?; z(&j#M&AkCN=`Zs{{Aap@?}p#@w9>0n_RLN12ctl1yJycAXVwJzWADip9ak>ZDjU*& zWYI1vem&bNuUWpM=8eVvaLb{g%=hqUfziFlyVWN8&;uE6d8K8`wfpykMFBYmsBJ$D=sl3-}i!0!#4uwd&|B|d(9d-bj$O?AoQ(j?2th= zjfaC+#MsVsxDMbF!= zRU5f0s@Tco)42GE5pzcdw(nF!&+oi)yKDtP=RyPHX-5X@^7@`C(=c`hOb$=>7Ikx9 z%{JpYZ8mGO8P`~|Sy#>dwbX1E%dCLLafD-t;~2*Yjxml?9Fqe2g3Goe5=k=W3dhxeWKOj)$&D;G z*ux|@)G|Ano8SR9C&`;r5oalUihg{? zyRUhBfd8w7zaR>;b!dePbsQ;NtYfH<@2}%nA)l(_L?NH9W2}(Z>Nr)%XX==I$y1M1}qet(S7a1GZvBW^=`ic;!QI=xEfblz2zQb>P9DGj6|N{O6~C?%s7QA(H$ zOwvlT>gEKc)-XqUGQ&qecn}zb1l0*@4m486vc-*dnv-)m)n#X_NUj zIo>8G+T;|5+4_CS1*KW_g5p#wyuw-F50ZTeb;ZJH4RsB(rTePO^=aVuo~~cQ&BpaP zJ{I|JVfGa+yy^aEe5Pfs3~u3e#P?y!(HF^KL~|fj_!HXOq)0Vj5`n^2zbo321E47@ z<+`E`9RN)kdIWd6NP6r5Xv$aeUC~Y)08P2ucvrNs1E497oxs?M4>-oSx`aWZe24Gx10LfEo-$MYgrBj_{T%I|!6JSkngtsY`TqbwIe26M literal 0 HcmV?d00001 diff --git a/sdk/java/target/classes/io/identitycore/models/GeneratedModels$VerificationSubjectInput.class b/sdk/java/target/classes/io/identitycore/models/GeneratedModels$VerificationSubjectInput.class new file mode 100644 index 0000000000000000000000000000000000000000..b6fd53c0c5afa3b52551a2c7296570446eec3dac GIT binary patch literal 2747 zcmb_eT~ixX7=8{A66j(e5DaQttW-&8yJG#Q4boDug&HVA&4petC&{5%*zCsL4I?xD zBroiY8E3fg2l%5LpR-w#U;@K{7iZ7Md(Qjuyw7>h{{7F%UjV+r?kEN@7{`!-7={JL z59EgsB*C3)Ej}o$bQ4N_Z(SM0;xjB`flJ^&YQfp z_l|+2HWpJgY1w*Z!az!|81<^_s6D4qD=AM4rVOODV5~ypd+z>T$?}4#mb_~qgBgKD zO$CxtDUdCc-I}>C{XluY)NJ!WmJfZ`F}1X0ITiCIXIl&)pCVT88~6Y>sUUD$z6ty= zU$|!c`D|~<+SqLav-pt4s?x8n(glIF|H0UX*8P!zIoxGl)z1xS`vS%5Ywn8TRhZp; z_D6x4od%gvQ$@?SO14^Y95)ClK%?e4;LG-=5dLk?tt&4$&NKZ-(ryrlV7|**M3XD7 zTsHsNqQFoq4atJ#sI8E2uO)-htaZ!ME=teR^JsA>s9KD2<=O<{mE2T8)vatxkC%j0 zrP@1Zfo+Sca;hw#Qkw{>H+Aa&1!04{q@XG4Br2(4yPc?X; zZ#lWWrTk#s^@BK=-H$JKlStdsx-|aGbpt=}WW5EDpB%=MQ9Q*;9M24_Vol(7r=WN( zE}E@~q9d$7rBf{eZ@WRUoFn&8nXQfM(y7?WpDVcTVWXbEkZ#ez*T;3Wru?#J)dSb- zKC)^{-|t?CNc>Zm+CJ9L)QTuC2|O2g*e;>@utMg$t7864CCrmSVf9N2#M#E!#@Qy> zrddxn9MBpc~kfeZbLa#tC^G)a#q$%K&&@0Gbgo`m`F^C+^|4NsJ+0W+wgvc#4 z5zpOgVk~#RiSgXbP!p56nOGCkZ@Fgx3;YiAJa7~D_+4(D#eF>Bj9Q|=^higd!<`LX z9}Gv@*P(Evor}TbI3435a67n>Q??A-r)-a6wABWuJxq31Q=MVDGt6Lu@7W?3bcnjw zF2{2xcn|oU!`?_VhTIZGGC{9D>vQ}T@Y|)1&*5Qoe2K<142j&r3GSSCe!8`%4P*kJ z;|ppK#AcB)9fujt$)DUGh+h;%EK<`$FF}<1X&bwOHl2i2Uv1-8(5Ca4?yGI`3feRk zGWfC&ZqrxLmLXBU3bXzQUx)o;EU};Ey1vJnyZWndsOGQ!YI^HmP+*F_ER$FXe2W)Y Z#|B>FI}|8M(Z2*9W0QNgu#Fwe{0m9wUxWYv literal 0 HcmV?d00001 diff --git a/sdk/java/target/classes/io/identitycore/models/GeneratedModels$VerificationSummary.class b/sdk/java/target/classes/io/identitycore/models/GeneratedModels$VerificationSummary.class new file mode 100644 index 0000000000000000000000000000000000000000..e0a5fdc97a5950601e17266b6f1f6e740993f58d GIT binary patch literal 3316 zcmbtWZFAE`5PmMiFA1Uv4oTxQG>`&K6hI|?M=2CSfj|g>(6m5X=3*a2U`wtfGvq(@ zLz$_kGkoYwzxGFU`m7{kr#4K+d^l-!d-v?^vwOSx=igU<0r&=whB1Hx1q@oqA+Ip{ zR6o~FP5V!ryQUI^RfYVL=X>!5g#&Z*n?opKsDNP$2Vp6k_X5YO8b9{p9j-P`J*b*m z}t#1$LwSr`!m`6$+L zGm@#p7D_TzXf(q{5E+>}Vqsk7O6EmuLSNS&h32sdjbBOB?^~EenOmaf)>Bi773Nnf zLEU+*BQAeYuQ^Y3MSU8DO3dJ}`-BVbfTkW4VcfOl2u`_339yaZ4>u7tK z4k%oFH#;i=d)mSooFxP1*QTyT3U}TKwBzizlZd$U4;0FGo6MlP+4LfBt7b0we!!?R zRcOz7L%{Uzq9kPNVbCyPyyGh5p6gnZ?*Bd4VJ%CoK4KT$`YxYnwXsaJkR&b+$n-*4aOJSy6%)&IMoz$aj zi^9;>YZQf-ouqjF^Wd3r(uLQxU#*$w#A*;cYc|}src1W*-cG|@F;OM-8gUSIZdtDB zDC(TZF2lnP*dEsRRGKUlx)mc-uv>L2WST9jTQN=rn^m`Bk_vXAZpAbe>_y#* z87kO~x)teU4vRQ|PwB~T^lpgnMf*=Ed!dDbeY%B1_L&w&?ebs?V|F>$!h~JUw=iXw z3oRVA%f%Lsz2vR|e8y*IMFdzU(8psbw1?V;KHOKuTPqiDPU2&v6TWX8rZE>A^e@=Tf8sWukaD@JH>8NBo17Xk#d++xjnXjEYaA{_A^+@wlC3G zlAZR#D=fTe|3tcGHzq~?^<5x>B9Z5*6F;2f8_3yzpzt;?av4n5HBbymFSJ8_ph=WU zJ<&${K$Ad^_e2}(15I*e5*K^$Hqi%~q}y~)w5dMOBx7fKdU~`EG)el|o@mGVK%3?5 z{x-?)OSqi8m+>9ni@euTS>;O0Q)+`;Yk5jdkgF|EsReSq<$0B3il@7VVeVeTI_}^u cHgFH$V-r8%N9s$AP!Y?x&)pALmwrL{KLs`iw!jC^s% z|KkTcBjXGo`~m(b$LH>DNFb46I(*o@_nv#t`*Y6u=ik%60X)F=AQI>^kTj7(zd-iD zKC-Qv?e1BdvZB1IK>woSI>C}a-|XDZ0MZyRFlb^3ra;M2mQ$5(-~`8fEv>q$%9?LI zm9F&cKvvhn^UQa0cVDT)Ww+W;jvJIb$;(aovMK#QV6fq-16c`va;Pp>ZkwigPanCN`T)d0p-}zO!4C4_#LUw$1<*Tjh$XTR+==AiZDeHS55x z9Qw+&?6XJKGoCj*)sS9rTogzh*|jDEGO*?BxpvU>xSzR@wZ#rYVpJ@Vb#=CzesxM4 z6LUKP$tW$Evg6A2W_?$B+curkh*TB3wqtvaKF7plu_CR{rBUT0SofdZBMyT`k9bb{ylGaX% zz@08)Pm|d{wp7!r$S01@*4TyKb5FMu7T!8r&5H5^0}m+rYNgJ4YIVWvBc%dA@a#sE z5I@t8hl6;8l7Yu2mhnX3R=aa~QGr;IhcOEwzT1)_@TxONj(emIr4>C~vE6D-`ZHy= z%x0r_DWGGzTZiR%jbsLf0P4|T+bJ|es9g0fe{fi>=)X4^iS!$i*lVABL z#dWgq7erzH1V-WR35E*`C&(5ik|!8_#oIm<`0pnt@Ehj&|2X2pT`cfK{@4S((jNYjze^^}%<4QV=g zd3;8U>5O%HI(ijp5zasF#(4@~g!%ds#c*B364z;BPS=`-oBr!6(vTac6|Iu_Dx?d1 eO~j}16svfKZ&1csNKcTqh;^duIljdfCjJAToO^`; literal 0 HcmV?d00001 diff --git a/sdk/java/target/classes/io/identitycore/models/GeneratedModels$WebhookEndpointCreateResponse.class b/sdk/java/target/classes/io/identitycore/models/GeneratedModels$WebhookEndpointCreateResponse.class new file mode 100644 index 0000000000000000000000000000000000000000..9ee9267998ed1db4957e3b971a0ee14d5d20d1a3 GIT binary patch literal 3801 zcmcIm+fv*{5Iq9+1|s0KA*^GJgTVp$B0Cp{M8vU;FJP}P0S6~`5=ZQgLG~hTBrO$x zK)xied5EjB#u({{{-*_)_T!}?i_k_ zWRTS`_`=?>&6@45nv1I9`Be?sS;uw4D;m0|rk4xIqmVYf`Y4P6fH6w9gYrOsWqmFTk7XLcy;_jQa%>_)vR4kqjg z9h0#F#q(j2;C`TE3ey_$p%=TO;mK6_FaWcr+o2MRXLX#zd0JevgS9y#uVLY^EG~!v zQ^!SI5-@*i*foOr^pMoI`14>zqHIk+(NJ1!FtgUxvJ*HfHFeE(J%)#YrDd~R@z%}f zb`UE6=k=QT!mhjwJlC|h51Dtke&~C3<%h2<4VewQ)*vK>C1=%Tlzq|@yOLqH;iSp;Hd>-rn%r`FSwl}8@`1ABs{4)g73Dv&37fnuuVUAhZQqe~!t4px z9O8KEa57TE@J=JI>RW~e@2POjt3I@SdtEVFH2UWM!n0%i4in??ohiBP)Q;RdHr3&Q zM)h++!%(a5Ey=EVJ4;})Mdp^aG;1`RX=8SDon>>$Yxos)%aKGlwyQ2*kc!KCabE@D zycdKyl&N}uC5lyGt3wQ4_q;F&eY+lqIvB{}VK2VIVh&3>9^q>ZV`*{s<5z9Q9ws7u zmn&OZG`wyF$#FNlm&%L}&f9Larhj6fQApb>f`q#j*kP9MQP#f8w1>66K~%THoJNI#t=8y&S~!x+UUaN-L^(}fStTu z@&q^7&)YY~xWSIzzA?@X_Vo6RN%WJM!KdiK46pGwFVf5JjPVAVakhz^ajuDe<9ri? zMyaQXqedyy#IRAyHgVi2<(e2ZO8F*E8KpuKr(aXH8=rB`QZMieKIi;A)(H!Xa2q@al;u0Voquf{toQTP&9N%Oa?CFI-WK*}wq?JISs#9An>d364kjhjhJzxB>jOFY$|*OT=esOoEU%&Tituf5{KW zXSTzb#|_+!?%hW}x*|W!XbohHKaktYi%g=X?SW~GR3~ly2hb(~D|Xa2cmQn@^P!H~ zjvhdpq|FF!G36!xt+);EM_Zh(x7&+`#?0=7-|_uu-4zW<;<1j}Mh~D(-obcBZKn>P zO`g(ZM{TDMply=HVm^8`3%C<~@8TZ6S6No16G;7#S&Ed@5SgVoY1`FX3Y1h7nWZpE uRgw8Vhv4{tdh%GtH~1D$@D$(Sd;EZB_z^Zw6#0JgxQi9)tUzHErGEj4tsNr( literal 0 HcmV?d00001 diff --git a/sdk/java/target/classes/io/identitycore/models/GeneratedModels$WebhookEndpointSummary.class b/sdk/java/target/classes/io/identitycore/models/GeneratedModels$WebhookEndpointSummary.class new file mode 100644 index 0000000000000000000000000000000000000000..3a3751d2d9baad8c72723dbb04b26646dacc973b GIT binary patch literal 3551 zcmcImTXWM^5dKaQTTUXH#E>*jfj}B)VlFDsD+*BVfjU4*8Va`8Z`(%0 ztJ(FyxNW<(Z-sVkDca9Ive(u<@8wOm*7O`VTy8ZQmcOac=g>g0k{VqOeaC%nikWwG zjEIe)rtiJ5tKl=JChRdCMPc{1{JQK9=@^&&aLo>?zS9gH&lUc=Iwn!#^X(13FQ99& znO5l3jfxY5k&*Xw92V((5L#g?5W%B5rX#ym-xe31S)s6x>zIkyt!6D@7YX64juSYk zPzb&F?F!3tm3_ft&UXVMrsj0aqfArlRCcwtpv2A*qJ z+n0>H+&}QWrtOEDrb2GRs<#Nj;Ii}FW%PW~v%7-4(D9HYw=Prk*ST)~emH4T^`>Qh zRbe0w=}5(K?R%}pn(ePx1WD?{t6KF{%Xeg-FbBeQhp1iIXR0Yo?9{&5+_EsbWQXfs z?SbW64Vyuswcq|P*fPV^JCrj!^K9FN9SL`6E~Cz(E_X*^ywlT;3|8LGew7@Nxuq>l z1%;Dc%uGkw)d`a0Zg?+kBfhw3xwX0- z%vRX+TTSz=kxT?vn0Ysn7Vi0-BG>Cy5Ogw035X^K4m}%o5QP8*!aE)>u@_WAg z7gYIF8(R5v8wbi~+88aD2HH4SF6G*oD3|hWOqEMo8%N5eLL0|kQK}!G@HbC0z%Tfe zzu(5%@EJbmj(QXHgc7&})AM|sPFbM@kb#I21ac82uI3|3eA6OI-d(^&(&CgzP7eb+$Kj-ZZRdtQ*tsT52xgGO3q-6 ze`PL{A;_NNS6-@>U*mn?kLU%v;fkHn61c|r_vA{3_y@r6dlEl`FB0(ux*O$h`P6Hi z`Y-v3_|A5;3b=}E(YuG~M_=TJ5$%Co`A=wX^CFk1=_(Y(&}3;l(1SLKQZZB8Xb;*X z(Bqlf4)&l;a%B?Nnb{KmPTVH;qAkwR8{NgPn95oBP3=YNu4qW+PG@R6(t|ch{+Uc| z$9m82zVu)zaru?*A!RPV(lu04-WQ@KDMc?Q(lLN9xu$rd lf+1>I#@ATIBYcC$c!H-qoy literal 0 HcmV?d00001 diff --git a/sdk/java/target/classes/io/identitycore/models/GeneratedModels$WebhookEndpointTestResponse.class b/sdk/java/target/classes/io/identitycore/models/GeneratedModels$WebhookEndpointTestResponse.class new file mode 100644 index 0000000000000000000000000000000000000000..6371d19b2ef53ffa811ddb678b1596f09afac08c GIT binary patch literal 1877 zcmb_c*-{fh6g>?j6T)cN1aZR!H3{m7y9O5!7p%AxP`EvHlGY4Nro(g(C7rQg$^4jq#3#w_%e4q?tgS< zL{$bghV;1WyZRnOd%iH=i3~a|WNmc8W|(xPML)ePfFNMzWo2tr9uKQ^4!Afwb6%u!mD#te@F}%p6n0aw4pO#V-Salw^$0frx@Pui}M7R zmz4!k)uqBahM}2|veOXru5v4$nDBk6xppb?3{JT!8_ox=vlUt7Y^pWmSlTID{?a45+%5mzP+r_Fke ze;I?MxAoXCWM^dv$F1mVKqtL^_S(Ma3aO0+^=~;jg+ac z!)7TFinx;!H?iT|N>fY;RSn#xmO;|wp~sarG(s4VAc`&KOC_OY4&+cH}1AN(&`5?~4=HmorXl9C| zYdG{T`-o&Fh9_;DN1i+weg(2OJe-zHq>JBR?ZzS%yV)TD#n$UbaiO(eB%cP$pxAV} fOv?mfj8c@rE!@T(y6GkS3@)NX86BszJ;2Z(5*FXV literal 0 HcmV?d00001 diff --git a/sdk/java/target/classes/io/identitycore/models/GeneratedModels$WorkflowSummary.class b/sdk/java/target/classes/io/identitycore/models/GeneratedModels$WorkflowSummary.class new file mode 100644 index 0000000000000000000000000000000000000000..6b762df2a1463c07e816c794045dd3a4cd58e0ad GIT binary patch literal 4605 zcmd5;-BR0D5dK6kHXveR0>PyzO&|e8z@$HETG2FrO+so&3MomGwp7>(2yDrbWD@S1 zx9LSQQ%`4d(Ff?;^aV2gR+f>ml?>zQbb7HztKDpuZ}i5Gq7!m%W} zRV2`(U~tFSGjb)v-pZ|-1;;Ha=vlOE%fF)F*!0YLFH-1DqEAIXR0WqTCubE++qe9E z&Ng#pr)ZYE+-=h~UBfqv%fbKTL&x2HT5_JRRm)|=-B-|M5jm5Oc3bmZ%ihuj|G0{@ zfcI5gXU8n~8&*-oCsbra+-)0WQv@ef42z(@XnF;i~N*|QIYp}zTsCr5xu8k z4DTyQc)nTjc+L9GRo^P*@|NcZ`+lHe93Lu3d8Y64Fq}7&FF57gQ-jOg7v)lJ$0+Q2 zj-4wSzOiZ9#oS%~t?-Tkz*!X&m{gE1R9%-w+1N8(kB3q))O6D&+c&pNH&}6A#grU1 z<2hBgU~c$kxl*Ft!Yj|H&_sQzRUHD$)h?)*lR13_*A$Cy7`}*eDi#89wZg*&;tW0h zk&2J;3Ge7Tb&D&=Pv<-HqCV4ftI&V4$0Ze?;WGEwHoWZ{G>!tj^F5XX@(UF@7U@#+ zS=A`fG0PnTHl6w2ri7P1^H@Q4waOqao9mWmZI;Yyw(T%@=sWI}drJ@)2a|#@xbHd@ z)AjdthS{D`s`A>sYu1*{7<9=`wuIbb(?LSxUE$Kdr`zTKt|SWjx7@2exSI~ph~6eq zc>2yHGwXcO^&m;-E!$kFmN!lJfk7uof^Z5(Y29!w`45HN{-}z?4g%9{XZiW@sahsRiC>fsDEC@5f zlP1`h-4E4`(Az1nA9!gM^{D3SQs?!i+OF5@IX|r7dZS3|EyY%Et(63A6@}$fk4mN< zmC3Y%Bx!&&NE#xIkg}xHq%)**q-oMDXl=YF{}{1^cCT#RL^>i`o@aRInjxS7=nQ3u;%)QNcc_ zU9o^c3KO`FZrtF(-|*-I{NC06fTGRTkkl^JFrdxVFsNm_YZ%h9i5f<yy%CrRf?bjgrPlvGKU zPk~>Lv|PtZxO|bO5r3w%+1L2|ZRJxx literal 0 HcmV?d00001 diff --git a/sdk/java/target/classes/io/identitycore/models/GeneratedModels.class b/sdk/java/target/classes/io/identitycore/models/GeneratedModels.class new file mode 100644 index 0000000000000000000000000000000000000000..605b8d6b7edc3c0f88e54a1bbd7dffa30217b5a4 GIT binary patch literal 4301 zcmb`K>sH%F6ovP2iCRJu8VCdkP19VszyAR+hd4^M;X(Sk(`;8x*b`RhO|^i zW|O6NftDEm5xBCf8FHnN+m_b4x~=oe)nzlI>YJ*ix$oY`7H3bh1%{Tx$n}ZiM$^OK$I(=0U>9 z=1t9T))|mme?An5hx8+$6SE{IVNL0y@F9MKk{6nf1?C!asT!R-0*^yVL{m#KUE?YX z_UB%BH;!p|JsA?1KC2tmK8y&=hBQuDrkg}6J@8r|6PP-iK(*}&fpkdIRclu@v{$Ob zWs)xB^QPr!#%|oq6mkq|Ta_RTL;SrwHKJrQ{F4l-U;7Q!#CMA6;FGfb84;!qF|Z<02Fk({bgh3ap|awt0X z993S<0pnV+XWZ$R_Ci6MzyZX6BoY`1l-5rnI`oEeugUH}akbT+W5CR zf~rc_Nt?aEW$$yf-k3ibzind{m^i(9aJ%J?FG z3I2-S=ESk|?-ao;N1)GN9GnNeClz|FU9M01?)cQDa$W(037Xe6f5s`N-N46kG8O3b z*Q^eCpa1JIZ%-=pyuI!(^Cu}@OUtQ;x64365x7*BCInhb@Awo7FT3uKAbH&--{;#T zDah85zaakPKTT-k)4dtH&lX(dFVJ4DL|)=sGcNPlge&MEmvI*#pcB{7gI@Gw05@?9 zxA}Dt!x+UlB5ZyVQ<%mKW_j_RM-(w6u!to*LlUcajx;u~g%|jS9*&e06?{v*PCEV_ zd5!#@>>+<3d&wX9>?c)nfZQf;k{R+AnI&(NlDtdqkb~qdIZW=6qohWTllx?ZJRseG z>EtAtBd17%oF+|jhRl<*fJhAdBQ8c}OmiKatPKBQi<8B3H?u Z$>-!RWSaby+#r7=x5(Gz3-WjL{tw>ZlC%H- literal 0 HcmV?d00001 diff --git a/sdk/java/target/identitycore-sdk-0.2.0-sources.jar b/sdk/java/target/identitycore-sdk-0.2.0-sources.jar new file mode 100644 index 0000000000000000000000000000000000000000..1d165464eef4f9765c9def86510cb2c7081003a2 GIT binary patch literal 8809 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 literal 0 HcmV?d00001 diff --git a/sdk/java/target/maven-archiver/pom.properties b/sdk/java/target/maven-archiver/pom.properties new file mode 100644 index 00000000..f5f6206a --- /dev/null +++ b/sdk/java/target/maven-archiver/pom.properties @@ -0,0 +1,3 @@ +artifactId=identitycore-sdk +groupId=io.identitycore +version=0.2.0 diff --git a/sdk/java/target/maven-status/maven-compiler-plugin/compile/default-compile/createdFiles.lst b/sdk/java/target/maven-status/maven-compiler-plugin/compile/default-compile/createdFiles.lst new file mode 100644 index 00000000..08b5e547 --- /dev/null +++ b/sdk/java/target/maven-status/maven-compiler-plugin/compile/default-compile/createdFiles.lst @@ -0,0 +1,48 @@ +io/identitycore/models/GeneratedModels$PortalUploadCreateRequest.class +io/identitycore/models/GeneratedModels$WebhookEndpointTestResponse.class +io/identitycore/models/GeneratedModels$APIClientCreateRequest.class +io/identitycore/models/GeneratedModels$OrganizationSupportingDocumentDeleteResponse.class +io/identitycore/models/GeneratedModels$ErrorEnvelope.class +io/identitycore/models/GeneratedModels$APIClientSummary.class +io/identitycore/models/GeneratedModels$ManualReviewSummary.class +io/identitycore/IdentityCoreClient$RawResponse.class +io/identitycore/models/GeneratedModels.class +io/identitycore/models/GeneratedModels$PortalUploadCreateResponse.class +io/identitycore/models/GeneratedModels$ManualReviewDecisionRequest.class +io/identitycore/models/GeneratedModels$APIClientCreateResponse.class +io/identitycore/models/GeneratedModels$VerificationCreateRequest.class +io/identitycore/models/GeneratedModels$WebhookEndpointCreateRequest.class +io/identitycore/IdentityCoreApiException.class +io/identitycore/models/GeneratedModels$VerificationSummary.class +io/identitycore/models/GeneratedModels$WebhookEndpointSummary.class +io/identitycore/models/GeneratedModels$VerificationSubjectInput.class +io/identitycore/models/GeneratedModels$OrganizationProfile.class +io/identitycore/models/GeneratedModels$OrganizationSupportingDocumentUploadResponse.class +io/identitycore/IdentityCoreClient$Verifications$1.class +io/identitycore/models/GeneratedModels$WebhookEndpointCreateResponse.class +io/identitycore/models/GeneratedModels$ManualReviewApprovalRequest.class +io/identitycore/models/GeneratedModels$EvidenceReport.class +io/identitycore/models/GeneratedModels$OrganizationSupportingDocumentUploadRequest.class +io/identitycore/IdentityCoreClient$Transport.class +io/identitycore/models/GeneratedModels$OrganizationSupportingDocumentCompleteResponse.class +io/identitycore/models/GeneratedModels$PortalUploadTransferResponse.class +io/identitycore/models/GeneratedModels$ProjectSummary.class +io/identitycore/models/GeneratedModels$VerificationDetail.class +io/identitycore/IdentityCoreClient.class +io/identitycore/models/GeneratedModels$OrganizationBrandingAssetUploadResponse.class +io/identitycore/IdentityCoreClient$Verifications.class +io/identitycore/models/GeneratedModels$VerificationCreateResponse.class +io/identitycore/models/GeneratedModels$ManualReviewApprovalResponse.class +io/identitycore/WebhookVerifier.class +io/identitycore/models/GeneratedModels$ManualReviewDecisionResponse.class +io/identitycore/models/GeneratedModels$OrganizationBrandingAssetUploadRequest.class +io/identitycore/IdentityCoreClient$Policies.class +io/identitycore/models/GeneratedModels$Error.class +io/identitycore/IdentityCoreException.class +io/identitycore/IdentityCoreClient$Builder.class +io/identitycore/models/GeneratedModels$Policy.class +io/identitycore/models/GeneratedModels$CursorPagination.class +io/identitycore/models/GeneratedModels$WorkflowSummary.class +io/identitycore/models/GeneratedModels$VerificationResult.class +io/identitycore/models/GeneratedModels$ProjectCreateRequest.class +io/identitycore/models/GeneratedModels$PagePagination.class diff --git a/sdk/java/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst b/sdk/java/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst new file mode 100644 index 00000000..97376b15 --- /dev/null +++ b/sdk/java/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst @@ -0,0 +1,5 @@ +/home/quarjo/IdentityCore/sdk/java/src/main/java/io/identitycore/IdentityCoreApiException.java +/home/quarjo/IdentityCore/sdk/java/src/main/java/io/identitycore/IdentityCoreClient.java +/home/quarjo/IdentityCore/sdk/java/src/main/java/io/identitycore/IdentityCoreException.java +/home/quarjo/IdentityCore/sdk/java/src/main/java/io/identitycore/WebhookVerifier.java +/home/quarjo/IdentityCore/sdk/java/src/main/java/io/identitycore/models/GeneratedModels.java diff --git a/sdk/java/target/maven-status/maven-compiler-plugin/testCompile/default-testCompile/createdFiles.lst b/sdk/java/target/maven-status/maven-compiler-plugin/testCompile/default-testCompile/createdFiles.lst new file mode 100644 index 00000000..a846a0b8 --- /dev/null +++ b/sdk/java/target/maven-status/maven-compiler-plugin/testCompile/default-testCompile/createdFiles.lst @@ -0,0 +1,3 @@ +io/identitycore/WebhookVerifierTest.class +io/identitycore/LiveCompatibilityTest.class +io/identitycore/IdentityCoreClientTest.class diff --git a/sdk/java/target/maven-status/maven-compiler-plugin/testCompile/default-testCompile/inputFiles.lst b/sdk/java/target/maven-status/maven-compiler-plugin/testCompile/default-testCompile/inputFiles.lst new file mode 100644 index 00000000..53732acd --- /dev/null +++ b/sdk/java/target/maven-status/maven-compiler-plugin/testCompile/default-testCompile/inputFiles.lst @@ -0,0 +1,3 @@ +/home/quarjo/IdentityCore/sdk/java/src/test/java/io/identitycore/IdentityCoreClientTest.java +/home/quarjo/IdentityCore/sdk/java/src/test/java/io/identitycore/LiveCompatibilityTest.java +/home/quarjo/IdentityCore/sdk/java/src/test/java/io/identitycore/WebhookVerifierTest.java diff --git a/sdk/java/target/test-classes/io/identitycore/IdentityCoreClientTest.class b/sdk/java/target/test-classes/io/identitycore/IdentityCoreClientTest.class new file mode 100644 index 0000000000000000000000000000000000000000..f0ac19a84ba8aa36d64abf1cf577019e716dc6dc GIT binary patch literal 6195 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 literal 0 HcmV?d00001 diff --git a/sdk/java/target/test-classes/io/identitycore/LiveCompatibilityTest.class b/sdk/java/target/test-classes/io/identitycore/LiveCompatibilityTest.class new file mode 100644 index 0000000000000000000000000000000000000000..648ffa97d28df83784b4b4e70ebe775200a4bfba GIT binary patch literal 5800 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 YX{ORqG>A?7y_(M$32YWy#D$3d7f>I`Qvd(} literal 0 HcmV?d00001 diff --git a/sdk/java/target/test-classes/io/identitycore/WebhookVerifierTest.class b/sdk/java/target/test-classes/io/identitycore/WebhookVerifierTest.class new file mode 100644 index 0000000000000000000000000000000000000000..f340c6edbcb2d234fd763a8725479a4bd8f93e3c GIT binary patch literal 2190 zcma)7|5h7C6#j;UZU`%2ifx0nEk9aGfi6^AD=Ae#BebEdBn<*84x51tB)f5U0>oN< z4PQh508V?358z+Eg~ylhcxQJ@!C*CiOlI!fx$}MBy?6Gvzn=dJUZE0j!`r z>1;A2HiepLDnaos4gY(f%<4=6=NRG>P$%KMC6jj_pXUyWQdT?3&Xhx0#RysQZ+3K zm(7sp2u2NznYaOq;cOsuL&>T&C-!o#SL1ZH&E3#+099ZSE(`y z6lGU4y=zi2Q;l|P1k8w{7KXN4W2M0Gv4%SRy7YxT5M{KT*wK%TMw8f|NqmMm1M?>C z;{nM-)h^4zQKY}^dcs-~>lN4CE(uR=NZ}FI9X)L_OdTnCJhQDZTP^qRXI7F}z(WI% zOgzTt3|Cxl)7olK9ne^pN_ZBpOKaNqg{LG5PsPoHMbT?exyFZAGNp)w@w*Q8#6(F) z>I~g-yy^=BUoZ^*2c;r)4+Wfc%M`aeFCFo)QCk;Yk*`wc^*S=fRYek{ ztNH&CJ4;<1XeNcf$af#}X4U28X{TJ2HM*MD>U8_MTP8`{R%a;l>Xkj!Djq#w+k$*! z)an}DiC(0}rt3O+_%0|^btm+cc|>}ZD}z1X0X*F;JBl2}eVj;na2 z`^Eg}xzW1OWyylu@NAKjTC5BIC>QN>LnEXYXvTGwuRLB~5US#q{q8fUC-E&j1HP_e zO2Sak+W|P~?6}*4UR?b|hCP_$wsJk9{?qa9iyXtCbM!t}g+G+1l5Nzpt?C`KoH$r) z*2O9AtH=Dq&q(wrhFukfnB~=Kfoe9Jzz!vb-Czk&+a~-9rs_yryN)FG+27E3D{;(=~#gG)P&VBAHMY)M*whwt$N(tiWGCPu#i literal 0 HcmV?d00001 diff --git a/sdk/javascript/src/index.d.ts b/sdk/javascript/src/index.d.ts index 347b650a..ae2d6868 100644 --- a/sdk/javascript/src/index.d.ts +++ b/sdk/javascript/src/index.d.ts @@ -5,25 +5,103 @@ export const VERSION: string; export class IdentityCoreError extends Error {} export class IdentityCoreConnectionError extends IdentityCoreError {} export class IdentityCoreTimeoutError extends IdentityCoreConnectionError {} -export class IdentityCoreAPIError extends IdentityCoreError { code: string; status: number; requestId: string; details: Record; } -export interface VerificationSubjectInput { fullName?: string; full_name?: string; email?: string; phoneNumber?: string; phone_number?: string; dateOfBirth?: string; date_of_birth?: string; metadata?: Record; } -export interface VerificationCreateInput { purpose: string; policyId?: string; policy_id?: string; projectId?: string; project_id?: string; verificationSubject?: VerificationSubjectInput; verification_subject?: VerificationSubjectInput; externalReference?: string; external_reference?: string; redirectUrl?: string; redirect_url?: string; metadata?: Record; } -export interface RequestOptions { idempotencyKey?: string; requestId?: string; headers?: Record; } -export interface IdentityCoreClientOptions { apiOrigin: string; clientId: string; clientSecret: string; fetch?: typeof fetch; timeout?: number; maxRetries?: number; retryBackoff?: number; allowBrowser?: boolean; } +export class IdentityCoreAPIError extends IdentityCoreError { + code: string; + status: number; + requestId: string; + details: Record; +} +export interface VerificationSubjectInput { + fullName?: string; + full_name?: string; + email?: string; + phoneNumber?: string; + phone_number?: string; + dateOfBirth?: string; + date_of_birth?: string; + metadata?: Record; +} +export interface VerificationCreateInput { + purpose: string; + policyId?: string; + policy_id?: string; + projectId?: string; + project_id?: string; + verificationSubject?: VerificationSubjectInput; + verification_subject?: VerificationSubjectInput; + externalReference?: string; + external_reference?: string; + redirectUrl?: string; + redirect_url?: string; + metadata?: Record; +} +export interface RequestOptions { + idempotencyKey?: string; + requestId?: string; + headers?: Record; +} +export interface IdentityCoreClientOptions { + apiOrigin: string; + clientId: string; + clientSecret: string; + fetch?: typeof fetch; + timeout?: number; + maxRetries?: number; + retryBackoff?: number; + allowBrowser?: boolean; +} export class IdentityCoreClient { constructor(options: IdentityCoreClientOptions); - policies: { list(): Promise[]>; retrieve(id: string): Promise> }; + policies: { + list(): Promise[]>; + retrieve(id: string): Promise>; + }; verifications: { - create(input: VerificationCreateInput, options?: RequestOptions): Promise>; - list(options?: { status?: string; externalReference?: string; cursor?: string; limit?: number; page?: number; pageSize?: number }): Promise; - iterate(options?: { status?: string; externalReference?: string; limit?: number; pageSize?: number }): AsyncIterable>; + create( + input: VerificationCreateInput, + options?: RequestOptions, + ): Promise>; + list(options?: { + status?: string; + externalReference?: string; + cursor?: string; + limit?: number; + page?: number; + pageSize?: number; + }): Promise; + iterate(options?: { + status?: string; + externalReference?: string; + limit?: number; + pageSize?: number; + }): AsyncIterable>; retrieve(id: string): Promise>; result(id: string): Promise; - cancel(id: string, options?: { reason?: string }): Promise>; - resendLink(id: string, options?: { channel?: string }): Promise>; + cancel( + id: string, + options?: { reason?: string }, + ): Promise>; + resendLink( + id: string, + options?: { channel?: string }, + ): Promise>; evidenceReport(id: string): Promise>; }; health(): Promise>; - request(method: string, path: string, body?: unknown, options?: RequestOptions): Promise; + request( + method: string, + path: string, + body?: unknown, + options?: RequestOptions, + ): Promise; } -export function verifyWebhookSignature(payload: string | Uint8Array, options: { signature: string; timestamp: string | number; signingKey: string; toleranceSeconds?: number; now?: number }): boolean; +export function verifyWebhookSignature( + payload: string | Uint8Array, + options: { + signature: string; + timestamp: string | number; + signingKey: string; + toleranceSeconds?: number; + now?: number; + }, +): boolean; diff --git a/sdk/javascript/src/index.js b/sdk/javascript/src/index.js index 3bae5d2d..d872057e 100644 --- a/sdk/javascript/src/index.js +++ b/sdk/javascript/src/index.js @@ -4,101 +4,299 @@ import { randomUUID } from "node:crypto"; export const VERSION = "0.2.0"; export class IdentityCoreError extends Error { - constructor(message) { super(message); this.name = "IdentityCoreError"; } + constructor(message) { + super(message); + this.name = "IdentityCoreError"; + } } export class IdentityCoreConnectionError extends IdentityCoreError { - constructor(message, options) { super(message, options); this.name = "IdentityCoreConnectionError"; } + constructor(message, options) { + super(message, options); + this.name = "IdentityCoreConnectionError"; + } } export class IdentityCoreTimeoutError extends IdentityCoreConnectionError { - constructor(message, options) { super(message, options); this.name = "IdentityCoreTimeoutError"; } + constructor(message, options) { + super(message, options); + this.name = "IdentityCoreTimeoutError"; + } } export class IdentityCoreAPIError extends IdentityCoreError { - constructor(message, { code = "request_failed", status = 500, requestId = "", details = {} } = {}) { - super(message); this.name = "IdentityCoreAPIError"; this.code = code; this.status = status; this.requestId = requestId; this.details = details; + constructor( + message, + { + code = "request_failed", + status = 500, + requestId = "", + details = {}, + } = {}, + ) { + super(message); + this.name = "IdentityCoreAPIError"; + this.code = code; + this.status = status; + this.requestId = requestId; + this.details = details; } } function compactQuery(params) { const search = new URLSearchParams(); - for (const [key, value] of Object.entries(params)) if (value !== undefined && value !== null && value !== "") search.set(key, String(value)); - const query = search.toString(); return query ? `?${query}` : ""; + for (const [key, value] of Object.entries(params)) + if (value !== undefined && value !== null && value !== "") + search.set(key, String(value)); + const query = search.toString(); + return query ? `?${query}` : ""; } function subjectToApi(input = {}) { - return { full_name: input.fullName ?? input.full_name ?? "", email: input.email ?? "", phone_number: input.phoneNumber ?? input.phone_number ?? "", date_of_birth: input.dateOfBirth ?? input.date_of_birth ?? undefined, metadata: input.metadata ?? {} }; + return { + full_name: input.fullName ?? input.full_name ?? "", + email: input.email ?? "", + phone_number: input.phoneNumber ?? input.phone_number ?? "", + date_of_birth: input.dateOfBirth ?? input.date_of_birth ?? undefined, + metadata: input.metadata ?? {}, + }; +} +function delay(ms) { + return new Promise((resolve) => setTimeout(resolve, ms)); } -function delay(ms) { return new Promise((resolve) => setTimeout(resolve, ms)); } function humanMessage(message) { const lower = String(message || "").toLowerCase(); - if (["unexpected token", "invalidtag", "not valid json", "json.parse", "syntaxerror"].some((item) => lower.includes(item))) return "The service is temporarily unavailable. Please try again shortly."; + if ( + [ + "unexpected token", + "invalidtag", + "not valid json", + "json.parse", + "syntaxerror", + ].some((item) => lower.includes(item)) + ) + return "The service is temporarily unavailable. Please try again shortly."; return message || "Request failed. Please try again."; } -export function verifyWebhookSignature(payload, { signature, timestamp, signingKey, toleranceSeconds = 300, now = Math.floor(Date.now() / 1000) }) { +export function verifyWebhookSignature( + payload, + { + signature, + timestamp, + signingKey, + toleranceSeconds = 300, + now = Math.floor(Date.now() / 1000), + }, +) { if (!signingKey) throw new IdentityCoreError("signingKey is required."); - if (toleranceSeconds < 0) throw new IdentityCoreError("toleranceSeconds cannot be negative."); + if (toleranceSeconds < 0) + throw new IdentityCoreError("toleranceSeconds cannot be negative."); const sentAt = Number(timestamp); - if (!Number.isInteger(sentAt)) throw new IdentityCoreError("Webhook timestamp is invalid."); + if (!Number.isInteger(sentAt)) + throw new IdentityCoreError("Webhook timestamp is invalid."); if (Math.abs(Number(now) - sentAt) > toleranceSeconds) return false; const raw = Buffer.isBuffer(payload) ? payload : Buffer.from(payload); const expected = `sha256=${createHmac("sha256", signingKey).update(`${timestamp}.`).update(raw).digest("hex")}`; const received = Buffer.from(String(signature)); const expectedBytes = Buffer.from(expected); - return received.length === expectedBytes.length && timingSafeEqual(received, expectedBytes); + return ( + received.length === expectedBytes.length && + timingSafeEqual(received, expectedBytes) + ); } export class IdentityCoreClient { - constructor({ apiOrigin, clientId, clientSecret, fetch: fetchImpl = globalThis.fetch, timeout = 30000, maxRetries = 2, retryBackoff = 250, allowBrowser = false }) { + constructor({ + apiOrigin, + clientId, + clientSecret, + fetch: fetchImpl = globalThis.fetch, + timeout = 30000, + maxRetries = 2, + retryBackoff = 250, + allowBrowser = false, + }) { if (!apiOrigin) throw new IdentityCoreError("apiOrigin is required."); - try { new URL(apiOrigin); } catch { throw new IdentityCoreError("apiOrigin must be an absolute HTTP(S) URL."); } - if (!/^https?:/.test(apiOrigin)) throw new IdentityCoreError("apiOrigin must be an absolute HTTP(S) URL."); - if (!clientId || !clientSecret) throw new IdentityCoreError("clientId and clientSecret are required."); - if (!fetchImpl) throw new IdentityCoreError("A fetch implementation is required."); - if (timeout <= 0 || maxRetries < 0 || retryBackoff < 0) throw new IdentityCoreError("timeout must be positive and retry settings cannot be negative."); - if (!allowBrowser && typeof window !== "undefined") throw new IdentityCoreError("The IdentityCore secret-key SDK is server-side only. Do not expose clientSecret in browser code."); - this.apiOrigin = apiOrigin.replace(/\/$/, ""); this.clientId = clientId; this.clientSecret = clientSecret; this.fetch = fetchImpl; this.timeout = timeout; this.maxRetries = maxRetries; this.retryBackoff = retryBackoff; - this.policies = { list: () => this.request("GET", "/policies/"), retrieve: (id) => this.request("GET", `/policies/${id}`) }; + try { + new URL(apiOrigin); + } catch { + throw new IdentityCoreError("apiOrigin must be an absolute HTTP(S) URL."); + } + if (!/^https?:/.test(apiOrigin)) + throw new IdentityCoreError("apiOrigin must be an absolute HTTP(S) URL."); + if (!clientId || !clientSecret) + throw new IdentityCoreError("clientId and clientSecret are required."); + if (!fetchImpl) + throw new IdentityCoreError("A fetch implementation is required."); + if (timeout <= 0 || maxRetries < 0 || retryBackoff < 0) + throw new IdentityCoreError( + "timeout must be positive and retry settings cannot be negative.", + ); + if (!allowBrowser && typeof window !== "undefined") + throw new IdentityCoreError( + "The IdentityCore secret-key SDK is server-side only. Do not expose clientSecret in browser code.", + ); + this.apiOrigin = apiOrigin.replace(/\/$/, ""); + this.clientId = clientId; + this.clientSecret = clientSecret; + this.fetch = fetchImpl; + this.timeout = timeout; + this.maxRetries = maxRetries; + this.retryBackoff = retryBackoff; + this.policies = { + list: () => this.request("GET", "/policies/"), + retrieve: (id) => this.request("GET", `/policies/${id}`), + }; this.verifications = { - create: (input, options = {}) => this.request("POST", "/verifications/", { purpose: input.purpose, policy_id: input.policyId ?? input.policy_id, project_id: input.projectId ?? input.project_id ?? "", verification_subject: subjectToApi(input.verificationSubject ?? input.verification_subject), external_reference: input.externalReference ?? input.external_reference ?? "", redirect_url: input.redirectUrl ?? input.redirect_url ?? "", metadata: input.metadata ?? {} }, { ...options, idempotencyKey: options.idempotencyKey || `ik_${randomUUID().replaceAll("-", "")}` }), - list: ({ status = "", externalReference = "", cursor = "", limit, page, pageSize } = {}) => this.request("GET", `/verifications/${compactQuery({ status, external_reference: externalReference, cursor, limit, page, page_size: pageSize })}`), - iterate: async function* (options = {}) { let cursor = ""; do { const result = await this.list({ ...options, cursor, limit: options.limit ?? options.pageSize ?? 100, page: undefined, pageSize: undefined }); for (const item of result.results ?? []) yield item; cursor = result.pagination?.next_cursor ?? ""; if (!cursor) return; } while (true); }, + create: (input, options = {}) => + this.request( + "POST", + "/verifications/", + { + purpose: input.purpose, + policy_id: input.policyId ?? input.policy_id, + project_id: input.projectId ?? input.project_id ?? "", + verification_subject: subjectToApi( + input.verificationSubject ?? input.verification_subject, + ), + external_reference: + input.externalReference ?? input.external_reference ?? "", + redirect_url: input.redirectUrl ?? input.redirect_url ?? "", + metadata: input.metadata ?? {}, + }, + { + ...options, + idempotencyKey: + options.idempotencyKey || + `ik_${randomUUID().replaceAll("-", "")}`, + }, + ), + list: ({ + status = "", + externalReference = "", + cursor = "", + limit, + page, + pageSize, + } = {}) => + this.request( + "GET", + `/verifications/${compactQuery({ status, external_reference: externalReference, cursor, limit, page, page_size: pageSize })}`, + ), + iterate: async function* (options = {}) { + let cursor = ""; + do { + const result = await this.list({ + ...options, + cursor, + limit: options.limit ?? options.pageSize ?? 100, + page: undefined, + pageSize: undefined, + }); + for (const item of result.results ?? []) yield item; + cursor = result.pagination?.next_cursor ?? ""; + if (!cursor) return; + } while (true); + }, retrieve: (id) => this.request("GET", `/verifications/${id}`), - result: (id) => this.request("GET", `/verifications/${encodeURIComponent(id)}/result`), - cancel: (id, { reason = "" } = {}) => this.request("POST", `/verifications/${id}/cancel`, { reason }), - resendLink: (id, { channel = "email" } = {}) => this.request("POST", `/verifications/${id}/resend-link`, { channel }), - evidenceReport: (id) => this.request("GET", `/verifications/${id}/evidence-report`), + result: (id) => + this.request("GET", `/verifications/${encodeURIComponent(id)}/result`), + cancel: (id, { reason = "" } = {}) => + this.request("POST", `/verifications/${id}/cancel`, { reason }), + resendLink: (id, { channel = "email" } = {}) => + this.request("POST", `/verifications/${id}/resend-link`, { channel }), + evidenceReport: (id) => + this.request("GET", `/verifications/${id}/evidence-report`), }; } - health() { return this.request("GET", "/health"); } + health() { + return this.request("GET", "/health"); + } - async request(method, path, body, { idempotencyKey = "", requestId = `req_${randomUUID().replaceAll("-", "")}`, headers: extraHeaders = {} } = {}) { + async request( + method, + path, + body, + { + idempotencyKey = "", + requestId = `req_${randomUUID().replaceAll("-", "")}`, + headers: extraHeaders = {}, + } = {}, + ) { method = method.toUpperCase(); - const retryable = ["GET", "HEAD", "OPTIONS"].includes(method) || Boolean(idempotencyKey); + const retryable = + ["GET", "HEAD", "OPTIONS"].includes(method) || Boolean(idempotencyKey); for (let attempt = 0; attempt <= this.maxRetries; attempt += 1) { const controller = new AbortController(); const timeoutId = setTimeout(() => controller.abort(), this.timeout); - const headers = { Accept: "application/json", "X-Client-Id": this.clientId, Authorization: `Bearer ${this.clientSecret}`, "X-Request-Id": requestId, "User-Agent": `identitycore-node/${VERSION}`, ...extraHeaders }; + const headers = { + Accept: "application/json", + "X-Client-Id": this.clientId, + Authorization: `Bearer ${this.clientSecret}`, + "X-Request-Id": requestId, + "User-Agent": `identitycore-node/${VERSION}`, + ...extraHeaders, + }; const init = { method, headers, signal: controller.signal }; if (idempotencyKey) headers["Idempotency-Key"] = idempotencyKey; - if (body !== undefined) { headers["Content-Type"] = "application/json"; init.body = JSON.stringify(body); } + if (body !== undefined) { + headers["Content-Type"] = "application/json"; + init.body = JSON.stringify(body); + } try { - const response = await this.fetch(`${this.apiOrigin}/api/v1${path}`, init); - if (retryable && [408, 429, 500, 502, 503, 504].includes(response.status) && attempt < this.maxRetries) { await delay(this.retryBackoff * (2 ** attempt)); continue; } + const response = await this.fetch( + `${this.apiOrigin}/api/v1${path}`, + init, + ); + if ( + retryable && + [408, 429, 500, 502, 503, 504].includes(response.status) && + attempt < this.maxRetries + ) { + await delay(this.retryBackoff * 2 ** attempt); + continue; + } return await this.parse(response); } catch (error) { if (error instanceof IdentityCoreAPIError) throw error; - if (retryable && attempt < this.maxRetries) { await delay(this.retryBackoff * (2 ** attempt)); continue; } - if (error?.name === "AbortError") throw new IdentityCoreTimeoutError("The request timed out. Please try again.", { cause: error }); - throw new IdentityCoreConnectionError("Could not connect to IdentityCore.", { cause: error }); - } finally { clearTimeout(timeoutId); } + if (retryable && attempt < this.maxRetries) { + await delay(this.retryBackoff * 2 ** attempt); + continue; + } + if (error?.name === "AbortError") + throw new IdentityCoreTimeoutError( + "The request timed out. Please try again.", + { cause: error }, + ); + throw new IdentityCoreConnectionError( + "Could not connect to IdentityCore.", + { cause: error }, + ); + } finally { + clearTimeout(timeoutId); + } } throw new IdentityCoreConnectionError("Could not connect to IdentityCore."); } async parse(response) { - const text = await response.text(); let payload; - try { payload = JSON.parse(text); } catch { throw new IdentityCoreAPIError("The service is temporarily unavailable. Please try again shortly.", { code: "invalid_response", status: response.status }); } - if (!response.ok || payload.success !== true) { const error = payload.error ?? {}; throw new IdentityCoreAPIError(humanMessage(error.message), { code: error.code ?? "request_failed", status: response.status, requestId: payload.request_id ?? "", details: error.details ?? {} }); } + const text = await response.text(); + let payload; + try { + payload = JSON.parse(text); + } catch { + throw new IdentityCoreAPIError( + "The service is temporarily unavailable. Please try again shortly.", + { code: "invalid_response", status: response.status }, + ); + } + if (!response.ok || payload.success !== true) { + const error = payload.error ?? {}; + throw new IdentityCoreAPIError(humanMessage(error.message), { + code: error.code ?? "request_failed", + status: response.status, + requestId: payload.request_id ?? "", + details: error.details ?? {}, + }); + } return payload.data; } } diff --git a/sdk/python/identitycore/models.py b/sdk/python/identitycore/models.py index 1dca15b7..549cbc13 100644 --- a/sdk/python/identitycore/models.py +++ b/sdk/python/identitycore/models.py @@ -2,21 +2,26 @@ from typing import Any, Optional, TypedDict + class _ErrorRequired(TypedDict): code: str message: str + class Error(_ErrorRequired, total=False): details: dict[str, Any] + class _ErrorEnvelopeRequired(TypedDict): success: dict[str, Any] error: Error request_id: str + class ErrorEnvelope(_ErrorEnvelopeRequired, total=False): pass + class _WorkflowSummaryRequired(TypedDict): id: str project_id: str @@ -26,6 +31,7 @@ class _WorkflowSummaryRequired(TypedDict): settings: dict[str, Any] current_version: int + class WorkflowSummary(_WorkflowSummaryRequired, total=False): description: str source_template_id: Optional[str] @@ -33,6 +39,7 @@ class WorkflowSummary(_WorkflowSummaryRequired, total=False): created_at: str updated_at: str + class _PolicyRequired(TypedDict): id: str name: str @@ -49,12 +56,15 @@ class _PolicyRequired(TypedDict): created_at: str updated_at: str + class Policy(_PolicyRequired, total=False): description: str + class _VerificationSubjectInputRequired(TypedDict): pass + class VerificationSubjectInput(_VerificationSubjectInputRequired, total=False): full_name: str email: str @@ -62,17 +72,20 @@ class VerificationSubjectInput(_VerificationSubjectInputRequired, total=False): date_of_birth: str metadata: dict[str, Any] + class _VerificationCreateRequestRequired(TypedDict): purpose: str policy_id: str verification_subject: VerificationSubjectInput + class VerificationCreateRequest(_VerificationCreateRequestRequired, total=False): external_reference: str project_id: str redirect_url: str metadata: dict[str, Any] + class _VerificationCreateResponseRequired(TypedDict): id: str status: str @@ -80,9 +93,11 @@ class _VerificationCreateResponseRequired(TypedDict): session_id: str expires_at: str + class VerificationCreateResponse(_VerificationCreateResponseRequired, total=False): session_token: str + class _VerificationSummaryRequired(TypedDict): id: str status: str @@ -92,9 +107,11 @@ class _VerificationSummaryRequired(TypedDict): policy: dict[str, Any] created_at: str + class VerificationSummary(_VerificationSummaryRequired, total=False): completed_at: Optional[str] + class _VerificationDetailRequired(TypedDict): id: str status: str @@ -104,6 +121,7 @@ class _VerificationDetailRequired(TypedDict): policy: dict[str, Any] created_at: str + class VerificationDetail(_VerificationDetailRequired, total=False): completed_at: Optional[str] verification_subject: dict[str, Any] @@ -113,6 +131,7 @@ class VerificationDetail(_VerificationDetailRequired, total=False): decision: Optional[dict[str, Any]] expires_at: str + class _VerificationResultRequired(TypedDict): schema_version: str verification_id: str @@ -123,26 +142,32 @@ class _VerificationResultRequired(TypedDict): check_provenance: list[dict[str, Any]] timestamps: dict[str, Any] + class VerificationResult(_VerificationResultRequired, total=False): pass + class _CursorPaginationRequired(TypedDict): limit: int next_cursor: Optional[str] has_more: bool + class CursorPagination(_CursorPaginationRequired, total=False): pass + class _PagePaginationRequired(TypedDict): page: int page_size: int total: int total_pages: int + class PagePagination(_PagePaginationRequired, total=False): pass + class _EvidenceReportRequired(TypedDict): verification_id: str storage_key: str @@ -150,17 +175,21 @@ class _EvidenceReportRequired(TypedDict): pdf_storage_key: str pdf_download_url: str + class EvidenceReport(_EvidenceReportRequired, total=False): pass + class _PortalUploadCreateRequestRequired(TypedDict): purpose: str mime_type: str file_size_bytes: int + class PortalUploadCreateRequest(_PortalUploadCreateRequestRequired, total=False): pass + class _PortalUploadCreateResponseRequired(TypedDict): upload_id: str upload_url: str @@ -169,15 +198,19 @@ class _PortalUploadCreateResponseRequired(TypedDict): upload_complete_path: str expires_at: str + class PortalUploadCreateResponse(_PortalUploadCreateResponseRequired, total=False): pass + class _PortalUploadTransferResponseRequired(TypedDict): upload_id: str + class PortalUploadTransferResponse(_PortalUploadTransferResponseRequired, total=False): pass + class _OrganizationProfileRequired(TypedDict): id: str name: str @@ -186,6 +219,7 @@ class _OrganizationProfileRequired(TypedDict): settings: dict[str, Any] sandbox_usage: dict[str, Any] + class OrganizationProfile(_OrganizationProfileRequired, total=False): industry: str tenant_id: str @@ -196,14 +230,19 @@ class OrganizationProfile(_OrganizationProfileRequired, total=False): created_at: str updated_at: str + class _OrganizationBrandingAssetUploadRequestRequired(TypedDict): asset_type: str filename: str mime_type: str -class OrganizationBrandingAssetUploadRequest(_OrganizationBrandingAssetUploadRequestRequired, total=False): + +class OrganizationBrandingAssetUploadRequest( + _OrganizationBrandingAssetUploadRequestRequired, total=False +): pass + class _OrganizationBrandingAssetUploadResponseRequired(TypedDict): asset_type: str storage_key: str @@ -211,17 +250,25 @@ class _OrganizationBrandingAssetUploadResponseRequired(TypedDict): upload_url: str asset_url: str -class OrganizationBrandingAssetUploadResponse(_OrganizationBrandingAssetUploadResponseRequired, total=False): + +class OrganizationBrandingAssetUploadResponse( + _OrganizationBrandingAssetUploadResponseRequired, total=False +): pass + class _OrganizationSupportingDocumentUploadRequestRequired(TypedDict): filename: str mime_type: str file_size_bytes: int -class OrganizationSupportingDocumentUploadRequest(_OrganizationSupportingDocumentUploadRequestRequired, total=False): + +class OrganizationSupportingDocumentUploadRequest( + _OrganizationSupportingDocumentUploadRequestRequired, total=False +): pass + class _OrganizationSupportingDocumentUploadResponseRequired(TypedDict): document_id: str filename: str @@ -231,23 +278,35 @@ class _OrganizationSupportingDocumentUploadResponseRequired(TypedDict): download_url: str upload_url: str -class OrganizationSupportingDocumentUploadResponse(_OrganizationSupportingDocumentUploadResponseRequired, total=False): + +class OrganizationSupportingDocumentUploadResponse( + _OrganizationSupportingDocumentUploadResponseRequired, total=False +): pass + class _OrganizationSupportingDocumentCompleteResponseRequired(TypedDict): document_id: str status: str -class OrganizationSupportingDocumentCompleteResponse(_OrganizationSupportingDocumentCompleteResponseRequired, total=False): + +class OrganizationSupportingDocumentCompleteResponse( + _OrganizationSupportingDocumentCompleteResponseRequired, total=False +): pass + class _OrganizationSupportingDocumentDeleteResponseRequired(TypedDict): document_id: str deleted: bool -class OrganizationSupportingDocumentDeleteResponse(_OrganizationSupportingDocumentDeleteResponseRequired, total=False): + +class OrganizationSupportingDocumentDeleteResponse( + _OrganizationSupportingDocumentDeleteResponseRequired, total=False +): pass + class _ProjectSummaryRequired(TypedDict): id: str name: str @@ -259,17 +318,21 @@ class _ProjectSummaryRequired(TypedDict): created_at: str updated_at: str + class ProjectSummary(_ProjectSummaryRequired, total=False): pass + class _ProjectCreateRequestRequired(TypedDict): name: str + class ProjectCreateRequest(_ProjectCreateRequestRequired, total=False): slug: str environment: str allowed_origins: list[str] + class _APIClientSummaryRequired(TypedDict): public_id: str tenant_public_id: str @@ -282,20 +345,24 @@ class _APIClientSummaryRequired(TypedDict): created_at: str updated_at: str + class APIClientSummary(_APIClientSummaryRequired, total=False): project_id: Optional[str] last_used_at: Optional[str] client_secret_overlap_expires_at: Optional[str] + class _APIClientCreateRequestRequired(TypedDict): name: str scopes: list[str] + class APIClientCreateRequest(_APIClientCreateRequestRequired, total=False): project_id: str allowed_networks: list[str] rate_limit_per_minute: int + class _APIClientCreateResponseRequired(TypedDict): public_id: str tenant_public_id: str @@ -309,11 +376,13 @@ class _APIClientCreateResponseRequired(TypedDict): updated_at: str client_secret: str + class APIClientCreateResponse(_APIClientCreateResponseRequired, total=False): project_id: Optional[str] last_used_at: Optional[str] client_secret_overlap_expires_at: Optional[str] + class _WebhookEndpointSummaryRequired(TypedDict): id: str url: str @@ -322,18 +391,22 @@ class _WebhookEndpointSummaryRequired(TypedDict): created_at: str updated_at: str + class WebhookEndpointSummary(_WebhookEndpointSummaryRequired, total=False): project_id: Optional[str] description: str + class _WebhookEndpointCreateRequestRequired(TypedDict): url: str events: list[str] + class WebhookEndpointCreateRequest(_WebhookEndpointCreateRequestRequired, total=False): project_id: str description: str + class _WebhookEndpointCreateResponseRequired(TypedDict): id: str url: str @@ -343,16 +416,22 @@ class _WebhookEndpointCreateResponseRequired(TypedDict): updated_at: str secret: str -class WebhookEndpointCreateResponse(_WebhookEndpointCreateResponseRequired, total=False): + +class WebhookEndpointCreateResponse( + _WebhookEndpointCreateResponseRequired, total=False +): project_id: Optional[str] description: str + class _WebhookEndpointTestResponseRequired(TypedDict): queued: bool + class WebhookEndpointTestResponse(_WebhookEndpointTestResponseRequired, total=False): pass + class _ManualReviewSummaryRequired(TypedDict): verification_id: str status: str @@ -361,35 +440,44 @@ class _ManualReviewSummaryRequired(TypedDict): risk_level: str created_at: str + class ManualReviewSummary(_ManualReviewSummaryRequired, total=False): document_classification: Optional[dict[str, Any]] + class _ManualReviewDecisionRequestRequired(TypedDict): decision: str reason_code: str + class ManualReviewDecisionRequest(_ManualReviewDecisionRequestRequired, total=False): reason_detail: str + class _ManualReviewDecisionResponseRequired(TypedDict): verification_id: str decision: str decision_type: str decided_at: str + class ManualReviewDecisionResponse(_ManualReviewDecisionResponseRequired, total=False): pass + class _ManualReviewApprovalRequestRequired(TypedDict): decision: str + class ManualReviewApprovalRequest(_ManualReviewApprovalRequestRequired, total=False): pass + class _ManualReviewApprovalResponseRequired(TypedDict): verification_id: str decision: str approval_status: str + class ManualReviewApprovalResponse(_ManualReviewApprovalResponseRequired, total=False): pass diff --git a/sdk/python/identitycore/webhooks.py b/sdk/python/identitycore/webhooks.py index 7afe22d5..55398e8b 100644 --- a/sdk/python/identitycore/webhooks.py +++ b/sdk/python/identitycore/webhooks.py @@ -37,4 +37,3 @@ def verify_webhook_signature( ).hexdigest() expected = f"sha256={digest}" return hmac.compare_digest(expected, str(signature)) - From 9368889a655b83a65654b13fcb64f054e2c1740b Mon Sep 17 00:00:00 2001 From: quarj0 Date: Thu, 13 Aug 2026 12:26:00 +0000 Subject: [PATCH 2/6] Add project.nuget.cache for IdentityCore.Tests with package dependencies --- ...CoreApp,Version=v8.0.AssemblyAttributes.cs | 4 + .../Debug/net8.0/IdentityCore.AssemblyInfo.cs | 23 + .../IdentityCore.AssemblyInfoInputs.cache | 1 + ....GeneratedMSBuildEditorConfig.editorconfig | 17 + .../net8.0/IdentityCore.GlobalUsings.g.cs | 8 + .../Debug/net8.0/IdentityCore.assets.cache | Bin 0 -> 150 bytes .../obj/IdentityCore.csproj.nuget.dgspec.json | 78 ++ .../obj/IdentityCore.csproj.nuget.g.props | 15 + .../obj/IdentityCore.csproj.nuget.g.targets | 2 + .../src/IdentityCore/obj/project.assets.json | 83 ++ .../src/IdentityCore/obj/project.nuget.cache | 11 + ...erageSourceRootsMapping_IdentityCore.Tests | Bin 0 -> 526 bytes ...CoreApp,Version=v8.0.AssemblyAttributes.cs | 4 + .../net8.0/IdentityCore.Tests.AssemblyInfo.cs | 22 + ...dentityCore.Tests.AssemblyInfoInputs.cache | 1 + ....GeneratedMSBuildEditorConfig.editorconfig | 17 + .../IdentityCore.Tests.GlobalUsings.g.cs | 8 + .../net8.0/IdentityCore.Tests.assets.cache | Bin 0 -> 32691 bytes ...yCore.Tests.csproj.AssemblyReference.cache | Bin 0 -> 8095 bytes ...dentityCore.Tests.csproj.nuget.dgspec.json | 167 +++ .../IdentityCore.Tests.csproj.nuget.g.props | 25 + .../IdentityCore.Tests.csproj.nuget.g.targets | 8 + .../obj/project.assets.json | 972 ++++++++++++++++++ .../obj/project.nuget.cache | 25 + 24 files changed, 1491 insertions(+) create mode 100644 sdk/dotnet/src/IdentityCore/obj/Debug/net8.0/.NETCoreApp,Version=v8.0.AssemblyAttributes.cs create mode 100644 sdk/dotnet/src/IdentityCore/obj/Debug/net8.0/IdentityCore.AssemblyInfo.cs create mode 100644 sdk/dotnet/src/IdentityCore/obj/Debug/net8.0/IdentityCore.AssemblyInfoInputs.cache create mode 100644 sdk/dotnet/src/IdentityCore/obj/Debug/net8.0/IdentityCore.GeneratedMSBuildEditorConfig.editorconfig create mode 100644 sdk/dotnet/src/IdentityCore/obj/Debug/net8.0/IdentityCore.GlobalUsings.g.cs create mode 100644 sdk/dotnet/src/IdentityCore/obj/Debug/net8.0/IdentityCore.assets.cache create mode 100644 sdk/dotnet/src/IdentityCore/obj/IdentityCore.csproj.nuget.dgspec.json create mode 100644 sdk/dotnet/src/IdentityCore/obj/IdentityCore.csproj.nuget.g.props create mode 100644 sdk/dotnet/src/IdentityCore/obj/IdentityCore.csproj.nuget.g.targets create mode 100644 sdk/dotnet/src/IdentityCore/obj/project.assets.json create mode 100644 sdk/dotnet/src/IdentityCore/obj/project.nuget.cache create mode 100644 sdk/dotnet/tests/IdentityCore.Tests/bin/Debug/net8.0/.msCoverageSourceRootsMapping_IdentityCore.Tests create mode 100644 sdk/dotnet/tests/IdentityCore.Tests/obj/Debug/net8.0/.NETCoreApp,Version=v8.0.AssemblyAttributes.cs create mode 100644 sdk/dotnet/tests/IdentityCore.Tests/obj/Debug/net8.0/IdentityCore.Tests.AssemblyInfo.cs create mode 100644 sdk/dotnet/tests/IdentityCore.Tests/obj/Debug/net8.0/IdentityCore.Tests.AssemblyInfoInputs.cache create mode 100644 sdk/dotnet/tests/IdentityCore.Tests/obj/Debug/net8.0/IdentityCore.Tests.GeneratedMSBuildEditorConfig.editorconfig create mode 100644 sdk/dotnet/tests/IdentityCore.Tests/obj/Debug/net8.0/IdentityCore.Tests.GlobalUsings.g.cs create mode 100644 sdk/dotnet/tests/IdentityCore.Tests/obj/Debug/net8.0/IdentityCore.Tests.assets.cache create mode 100644 sdk/dotnet/tests/IdentityCore.Tests/obj/Debug/net8.0/IdentityCore.Tests.csproj.AssemblyReference.cache create mode 100644 sdk/dotnet/tests/IdentityCore.Tests/obj/IdentityCore.Tests.csproj.nuget.dgspec.json create mode 100644 sdk/dotnet/tests/IdentityCore.Tests/obj/IdentityCore.Tests.csproj.nuget.g.props create mode 100644 sdk/dotnet/tests/IdentityCore.Tests/obj/IdentityCore.Tests.csproj.nuget.g.targets create mode 100644 sdk/dotnet/tests/IdentityCore.Tests/obj/project.assets.json create mode 100644 sdk/dotnet/tests/IdentityCore.Tests/obj/project.nuget.cache diff --git a/sdk/dotnet/src/IdentityCore/obj/Debug/net8.0/.NETCoreApp,Version=v8.0.AssemblyAttributes.cs b/sdk/dotnet/src/IdentityCore/obj/Debug/net8.0/.NETCoreApp,Version=v8.0.AssemblyAttributes.cs new file mode 100644 index 00000000..2217181c --- /dev/null +++ b/sdk/dotnet/src/IdentityCore/obj/Debug/net8.0/.NETCoreApp,Version=v8.0.AssemblyAttributes.cs @@ -0,0 +1,4 @@ +// +using System; +using System.Reflection; +[assembly: global::System.Runtime.Versioning.TargetFrameworkAttribute(".NETCoreApp,Version=v8.0", FrameworkDisplayName = ".NET 8.0")] diff --git a/sdk/dotnet/src/IdentityCore/obj/Debug/net8.0/IdentityCore.AssemblyInfo.cs b/sdk/dotnet/src/IdentityCore/obj/Debug/net8.0/IdentityCore.AssemblyInfo.cs new file mode 100644 index 00000000..a697c888 --- /dev/null +++ b/sdk/dotnet/src/IdentityCore/obj/Debug/net8.0/IdentityCore.AssemblyInfo.cs @@ -0,0 +1,23 @@ +//------------------------------------------------------------------------------ +// +// This code was generated by a tool. +// +// Changes to this file may cause incorrect behavior and will be lost if +// the code is regenerated. +// +//------------------------------------------------------------------------------ + +using System; +using System.Reflection; + +[assembly: System.Reflection.AssemblyCompanyAttribute("IdentityCore")] +[assembly: System.Reflection.AssemblyConfigurationAttribute("Debug")] +[assembly: System.Reflection.AssemblyDescriptionAttribute("Server-side .NET SDK for the IdentityCore REST API.")] +[assembly: System.Reflection.AssemblyFileVersionAttribute("0.2.0.0")] +[assembly: System.Reflection.AssemblyInformationalVersionAttribute("0.2.0+c8ff845e889e48fef121947ce7138c9673a59bc7")] +[assembly: System.Reflection.AssemblyProductAttribute("IdentityCore")] +[assembly: System.Reflection.AssemblyTitleAttribute("IdentityCore")] +[assembly: System.Reflection.AssemblyVersionAttribute("0.2.0.0")] + +// Generated by the MSBuild WriteCodeFragment class. + diff --git a/sdk/dotnet/src/IdentityCore/obj/Debug/net8.0/IdentityCore.AssemblyInfoInputs.cache b/sdk/dotnet/src/IdentityCore/obj/Debug/net8.0/IdentityCore.AssemblyInfoInputs.cache new file mode 100644 index 00000000..d9316e25 --- /dev/null +++ b/sdk/dotnet/src/IdentityCore/obj/Debug/net8.0/IdentityCore.AssemblyInfoInputs.cache @@ -0,0 +1 @@ +434cb40ab41e50b9b3922606684d968bf712aed49c0d25e0f02586fe1176a6fd diff --git a/sdk/dotnet/src/IdentityCore/obj/Debug/net8.0/IdentityCore.GeneratedMSBuildEditorConfig.editorconfig b/sdk/dotnet/src/IdentityCore/obj/Debug/net8.0/IdentityCore.GeneratedMSBuildEditorConfig.editorconfig new file mode 100644 index 00000000..a1bc78c6 --- /dev/null +++ b/sdk/dotnet/src/IdentityCore/obj/Debug/net8.0/IdentityCore.GeneratedMSBuildEditorConfig.editorconfig @@ -0,0 +1,17 @@ +is_global = true +build_property.TargetFramework = net8.0 +build_property.TargetFrameworkIdentifier = .NETCoreApp +build_property.TargetFrameworkVersion = v8.0 +build_property.TargetPlatformMinVersion = +build_property.UsingMicrosoftNETSdkWeb = +build_property.ProjectTypeGuids = +build_property.InvariantGlobalization = +build_property.PlatformNeutralAssembly = +build_property.EnforceExtendedAnalyzerRules = +build_property._SupportedPlatformList = Linux,macOS,Windows +build_property.RootNamespace = IdentityCore +build_property.ProjectDir = /home/quarjo/IdentityCore/sdk/dotnet/src/IdentityCore/ +build_property.EnableComHosting = +build_property.EnableGeneratedComInterfaceComImportInterop = +build_property.EffectiveAnalysisLevelStyle = 8.0 +build_property.EnableCodeStyleSeverity = diff --git a/sdk/dotnet/src/IdentityCore/obj/Debug/net8.0/IdentityCore.GlobalUsings.g.cs b/sdk/dotnet/src/IdentityCore/obj/Debug/net8.0/IdentityCore.GlobalUsings.g.cs new file mode 100644 index 00000000..d12bcbc7 --- /dev/null +++ b/sdk/dotnet/src/IdentityCore/obj/Debug/net8.0/IdentityCore.GlobalUsings.g.cs @@ -0,0 +1,8 @@ +// +global using System; +global using System.Collections.Generic; +global using System.IO; +global using System.Linq; +global using System.Net.Http; +global using System.Threading; +global using System.Threading.Tasks; diff --git a/sdk/dotnet/src/IdentityCore/obj/Debug/net8.0/IdentityCore.assets.cache b/sdk/dotnet/src/IdentityCore/obj/Debug/net8.0/IdentityCore.assets.cache new file mode 100644 index 0000000000000000000000000000000000000000..4e28c66fd3658ec60e351df8c8c9047b0a557301 GIT binary patch literal 150 zcmWIWc6a1qU|@*5xBHRCPOZpOF-oC~yFa!bRQa0oFJuu<)DF(HO`AeqOaiJQ7BB)8 l%Iat2=ceixmL?Wu=e)9SHyc literal 0 HcmV?d00001 diff --git a/sdk/dotnet/src/IdentityCore/obj/IdentityCore.csproj.nuget.dgspec.json b/sdk/dotnet/src/IdentityCore/obj/IdentityCore.csproj.nuget.dgspec.json new file mode 100644 index 00000000..3507e254 --- /dev/null +++ b/sdk/dotnet/src/IdentityCore/obj/IdentityCore.csproj.nuget.dgspec.json @@ -0,0 +1,78 @@ +{ + "format": 1, + "restore": { + "/home/quarjo/IdentityCore/sdk/dotnet/src/IdentityCore/IdentityCore.csproj": {} + }, + "projects": { + "/home/quarjo/IdentityCore/sdk/dotnet/src/IdentityCore/IdentityCore.csproj": { + "version": "0.2.0", + "restore": { + "projectUniqueName": "/home/quarjo/IdentityCore/sdk/dotnet/src/IdentityCore/IdentityCore.csproj", + "projectName": "IdentityCore", + "projectPath": "/home/quarjo/IdentityCore/sdk/dotnet/src/IdentityCore/IdentityCore.csproj", + "packagesPath": "/home/quarjo/.nuget/packages/", + "outputPath": "/home/quarjo/IdentityCore/sdk/dotnet/src/IdentityCore/obj/", + "projectStyle": "PackageReference", + "configFilePaths": [ + "/home/quarjo/.nuget/NuGet/NuGet.Config" + ], + "originalTargetFrameworks": [ + "net8.0" + ], + "sources": { + "/usr/lib/dotnet/library-packs": {}, + "https://api.nuget.org/v3/index.json": {} + }, + "frameworks": { + "net8.0": { + "targetAlias": "net8.0", + "projectReferences": {} + } + }, + "warningProperties": { + "warnAsError": [ + "NU1605" + ] + }, + "restoreAuditProperties": { + "enableAudit": "true", + "auditLevel": "low", + "auditMode": "direct" + }, + "SdkAnalysisLevel": "10.0.100" + }, + "frameworks": { + "net8.0": { + "targetAlias": "net8.0", + "imports": [ + "net461", + "net462", + "net47", + "net471", + "net472", + "net48", + "net481" + ], + "assetTargetFallback": true, + "warn": true, + "downloadDependencies": [ + { + "name": "Microsoft.AspNetCore.App.Ref", + "version": "[8.0.29, 8.0.29]" + }, + { + "name": "Microsoft.NETCore.App.Ref", + "version": "[8.0.29, 8.0.29]" + } + ], + "frameworkReferences": { + "Microsoft.NETCore.App": { + "privateAssets": "all" + } + }, + "runtimeIdentifierGraphPath": "/usr/lib/dotnet/sdk/10.0.110/PortableRuntimeIdentifierGraph.json" + } + } + } + } +} \ No newline at end of file diff --git a/sdk/dotnet/src/IdentityCore/obj/IdentityCore.csproj.nuget.g.props b/sdk/dotnet/src/IdentityCore/obj/IdentityCore.csproj.nuget.g.props new file mode 100644 index 00000000..a5ebc4b1 --- /dev/null +++ b/sdk/dotnet/src/IdentityCore/obj/IdentityCore.csproj.nuget.g.props @@ -0,0 +1,15 @@ + + + + True + NuGet + $(MSBuildThisFileDirectory)project.assets.json + /home/quarjo/.nuget/packages/ + /home/quarjo/.nuget/packages/ + PackageReference + 7.0.0 + + + + + \ No newline at end of file diff --git a/sdk/dotnet/src/IdentityCore/obj/IdentityCore.csproj.nuget.g.targets b/sdk/dotnet/src/IdentityCore/obj/IdentityCore.csproj.nuget.g.targets new file mode 100644 index 00000000..3dc06ef3 --- /dev/null +++ b/sdk/dotnet/src/IdentityCore/obj/IdentityCore.csproj.nuget.g.targets @@ -0,0 +1,2 @@ + + \ No newline at end of file diff --git a/sdk/dotnet/src/IdentityCore/obj/project.assets.json b/sdk/dotnet/src/IdentityCore/obj/project.assets.json new file mode 100644 index 00000000..ff83a32b --- /dev/null +++ b/sdk/dotnet/src/IdentityCore/obj/project.assets.json @@ -0,0 +1,83 @@ +{ + "version": 3, + "targets": { + "net8.0": {} + }, + "libraries": {}, + "projectFileDependencyGroups": { + "net8.0": [] + }, + "packageFolders": { + "/home/quarjo/.nuget/packages/": {} + }, + "project": { + "version": "0.2.0", + "restore": { + "projectUniqueName": "/home/quarjo/IdentityCore/sdk/dotnet/src/IdentityCore/IdentityCore.csproj", + "projectName": "IdentityCore", + "projectPath": "/home/quarjo/IdentityCore/sdk/dotnet/src/IdentityCore/IdentityCore.csproj", + "packagesPath": "/home/quarjo/.nuget/packages/", + "outputPath": "/home/quarjo/IdentityCore/sdk/dotnet/src/IdentityCore/obj/", + "projectStyle": "PackageReference", + "configFilePaths": [ + "/home/quarjo/.nuget/NuGet/NuGet.Config" + ], + "originalTargetFrameworks": [ + "net8.0" + ], + "sources": { + "/usr/lib/dotnet/library-packs": {}, + "https://api.nuget.org/v3/index.json": {} + }, + "frameworks": { + "net8.0": { + "targetAlias": "net8.0", + "projectReferences": {} + } + }, + "warningProperties": { + "warnAsError": [ + "NU1605" + ] + }, + "restoreAuditProperties": { + "enableAudit": "true", + "auditLevel": "low", + "auditMode": "direct" + }, + "SdkAnalysisLevel": "10.0.100" + }, + "frameworks": { + "net8.0": { + "targetAlias": "net8.0", + "imports": [ + "net461", + "net462", + "net47", + "net471", + "net472", + "net48", + "net481" + ], + "assetTargetFallback": true, + "warn": true, + "downloadDependencies": [ + { + "name": "Microsoft.AspNetCore.App.Ref", + "version": "[8.0.29, 8.0.29]" + }, + { + "name": "Microsoft.NETCore.App.Ref", + "version": "[8.0.29, 8.0.29]" + } + ], + "frameworkReferences": { + "Microsoft.NETCore.App": { + "privateAssets": "all" + } + }, + "runtimeIdentifierGraphPath": "/usr/lib/dotnet/sdk/10.0.110/PortableRuntimeIdentifierGraph.json" + } + } + } +} \ No newline at end of file diff --git a/sdk/dotnet/src/IdentityCore/obj/project.nuget.cache b/sdk/dotnet/src/IdentityCore/obj/project.nuget.cache new file mode 100644 index 00000000..a9beacbe --- /dev/null +++ b/sdk/dotnet/src/IdentityCore/obj/project.nuget.cache @@ -0,0 +1,11 @@ +{ + "version": 2, + "dgSpecHash": "yoxIosX4mdI=", + "success": true, + "projectFilePath": "/home/quarjo/IdentityCore/sdk/dotnet/src/IdentityCore/IdentityCore.csproj", + "expectedPackageFiles": [ + "/home/quarjo/.nuget/packages/microsoft.netcore.app.ref/8.0.29/microsoft.netcore.app.ref.8.0.29.nupkg.sha512", + "/home/quarjo/.nuget/packages/microsoft.aspnetcore.app.ref/8.0.29/microsoft.aspnetcore.app.ref.8.0.29.nupkg.sha512" + ], + "logs": [] +} \ No newline at end of file diff --git a/sdk/dotnet/tests/IdentityCore.Tests/bin/Debug/net8.0/.msCoverageSourceRootsMapping_IdentityCore.Tests b/sdk/dotnet/tests/IdentityCore.Tests/bin/Debug/net8.0/.msCoverageSourceRootsMapping_IdentityCore.Tests new file mode 100644 index 0000000000000000000000000000000000000000..2649cc3a5819036ea2c6db69d002b7520ca0ff5f GIT binary patch literal 526 zcmc(bI}XA?3uo3~c8h0^-?LxO#DReeJ&79& z4HGAo#Ewq&%FNMsXRA7`ec8&{j!tE^qxVl_t8I~sCf0J9QGU?-;fyF#t=q!>>o}UW dHA%B7S#I+KTNT(S`Dg2Y-6GCZx +using System; +using System.Reflection; +[assembly: global::System.Runtime.Versioning.TargetFrameworkAttribute(".NETCoreApp,Version=v8.0", FrameworkDisplayName = ".NET 8.0")] diff --git a/sdk/dotnet/tests/IdentityCore.Tests/obj/Debug/net8.0/IdentityCore.Tests.AssemblyInfo.cs b/sdk/dotnet/tests/IdentityCore.Tests/obj/Debug/net8.0/IdentityCore.Tests.AssemblyInfo.cs new file mode 100644 index 00000000..4e9bf7c2 --- /dev/null +++ b/sdk/dotnet/tests/IdentityCore.Tests/obj/Debug/net8.0/IdentityCore.Tests.AssemblyInfo.cs @@ -0,0 +1,22 @@ +//------------------------------------------------------------------------------ +// +// This code was generated by a tool. +// +// Changes to this file may cause incorrect behavior and will be lost if +// the code is regenerated. +// +//------------------------------------------------------------------------------ + +using System; +using System.Reflection; + +[assembly: System.Reflection.AssemblyCompanyAttribute("IdentityCore.Tests")] +[assembly: System.Reflection.AssemblyConfigurationAttribute("Debug")] +[assembly: System.Reflection.AssemblyFileVersionAttribute("1.0.0.0")] +[assembly: System.Reflection.AssemblyInformationalVersionAttribute("1.0.0+c8ff845e889e48fef121947ce7138c9673a59bc7")] +[assembly: System.Reflection.AssemblyProductAttribute("IdentityCore.Tests")] +[assembly: System.Reflection.AssemblyTitleAttribute("IdentityCore.Tests")] +[assembly: System.Reflection.AssemblyVersionAttribute("1.0.0.0")] + +// Generated by the MSBuild WriteCodeFragment class. + diff --git a/sdk/dotnet/tests/IdentityCore.Tests/obj/Debug/net8.0/IdentityCore.Tests.AssemblyInfoInputs.cache b/sdk/dotnet/tests/IdentityCore.Tests/obj/Debug/net8.0/IdentityCore.Tests.AssemblyInfoInputs.cache new file mode 100644 index 00000000..d3fdef44 --- /dev/null +++ b/sdk/dotnet/tests/IdentityCore.Tests/obj/Debug/net8.0/IdentityCore.Tests.AssemblyInfoInputs.cache @@ -0,0 +1 @@ +2dc6fad4172923b41d40d92b8e9695b588d7fe443426256042053d13e33f1359 diff --git a/sdk/dotnet/tests/IdentityCore.Tests/obj/Debug/net8.0/IdentityCore.Tests.GeneratedMSBuildEditorConfig.editorconfig b/sdk/dotnet/tests/IdentityCore.Tests/obj/Debug/net8.0/IdentityCore.Tests.GeneratedMSBuildEditorConfig.editorconfig new file mode 100644 index 00000000..78a49b53 --- /dev/null +++ b/sdk/dotnet/tests/IdentityCore.Tests/obj/Debug/net8.0/IdentityCore.Tests.GeneratedMSBuildEditorConfig.editorconfig @@ -0,0 +1,17 @@ +is_global = true +build_property.TargetFramework = net8.0 +build_property.TargetFrameworkIdentifier = .NETCoreApp +build_property.TargetFrameworkVersion = v8.0 +build_property.TargetPlatformMinVersion = +build_property.UsingMicrosoftNETSdkWeb = +build_property.ProjectTypeGuids = +build_property.InvariantGlobalization = +build_property.PlatformNeutralAssembly = +build_property.EnforceExtendedAnalyzerRules = +build_property._SupportedPlatformList = Linux,macOS,Windows +build_property.RootNamespace = IdentityCore.Tests +build_property.ProjectDir = /home/quarjo/IdentityCore/sdk/dotnet/tests/IdentityCore.Tests/ +build_property.EnableComHosting = +build_property.EnableGeneratedComInterfaceComImportInterop = +build_property.EffectiveAnalysisLevelStyle = 8.0 +build_property.EnableCodeStyleSeverity = diff --git a/sdk/dotnet/tests/IdentityCore.Tests/obj/Debug/net8.0/IdentityCore.Tests.GlobalUsings.g.cs b/sdk/dotnet/tests/IdentityCore.Tests/obj/Debug/net8.0/IdentityCore.Tests.GlobalUsings.g.cs new file mode 100644 index 00000000..d12bcbc7 --- /dev/null +++ b/sdk/dotnet/tests/IdentityCore.Tests/obj/Debug/net8.0/IdentityCore.Tests.GlobalUsings.g.cs @@ -0,0 +1,8 @@ +// +global using System; +global using System.Collections.Generic; +global using System.IO; +global using System.Linq; +global using System.Net.Http; +global using System.Threading; +global using System.Threading.Tasks; diff --git a/sdk/dotnet/tests/IdentityCore.Tests/obj/Debug/net8.0/IdentityCore.Tests.assets.cache b/sdk/dotnet/tests/IdentityCore.Tests/obj/Debug/net8.0/IdentityCore.Tests.assets.cache new file mode 100644 index 0000000000000000000000000000000000000000..211d22605683fa2767ca61cf7671be252e88bde0 GIT binary patch literal 32691 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 VPyf5r`HhC=|1e$B_{eRb`#;*X%~k*a literal 0 HcmV?d00001 diff --git a/sdk/dotnet/tests/IdentityCore.Tests/obj/Debug/net8.0/IdentityCore.Tests.csproj.AssemblyReference.cache b/sdk/dotnet/tests/IdentityCore.Tests/obj/Debug/net8.0/IdentityCore.Tests.csproj.AssemblyReference.cache new file mode 100644 index 0000000000000000000000000000000000000000..95eb02d0a0f253977bb1f26ad9ea3cf97ca1fc5b GIT binary patch literal 8095 zcmZQ$6l7pvV64*5$j?pHFDy+g%F5T*%PUP!EzvJXOwLYBPc7EZ%}g%JFV0UZ(M!%x zNlnf#ODzJ5>l>Qu85-*u=;vf6>F1@EBly0%!Zn0t7MCXG1ecViWajHR z19dw?b?XIZWajFn=%E9A6a+v!(zRbRs8Gz^1giWH|tG*`)}s5 zoMxYyljJs8Kc98;>YamkXI(NAR%DvMU1amKVQT%6hvfqO$JopLHD4IX{m`Njj@ib!2~Cvn`3u*M0i2E^a;lk!iMSGF?K>sS*mg2PT{N zMqQfB$N_ZI2K)GW!K++Wj5)*xfsR60YEf}!ex9wNsh$A{>L@su=9H8crP}7DmX;JH z=IAH{lqTh5CVQt=hU90b=Gi707^j)0nWq^VrkENe8YcoR1_Q<>Mj{hINosLPK~7>x zT7FTkUVc(mYH~>~FlKXzN)RDH%>gjY&cGxST9TQQS(2Grj7SV={9;b-;KZPU2npO8 zhi^j2AjbPtO$43vPXw^k;FwelOt8r%z~qdS7I@YQL(_sbj=;dCfA}Ved=f%|swtzF zE-3@0zCg+H{@{Yf7gW$7N{Y9OB%!GTSDk~)jNzL?iV-P2(L8ooI+g^<^&nm1c%pEq&07C~*K z{5(X~T$nBgjejjfAP~|%d{aUm@qs|qG|@GXX=1cLM%-u~qTEiVQMnCkAtUl9=SOvD z{^Wp34&U781M?zP^Hvnz$jVDCF98lyfriAhiu3dILF3@Sac}5IcyUQ$UP@w7iV<*d z+z+AB3#bwiM|bw^uYY+1G~&&VriPIho@O8n3I?{nCf--C$>H{_O`2e|Md0jtjlAF* zR(F-}{}+fkyMEKQOHt6gzJlj);Ka^QqaLq2T`V2S?rglQq7W#63r4*Q&V7J z#Tbt_#wviL1SNWjNMnrp!06F4#ujIoY7x<9-qCS{>l!H9gfNvcf~FRb0R=Iqs>d?x z?yL6C{4=k;?b{-1%slG@T_{rc58+xwLG9_@G-%3A!uzUx}* zfxu(-dx9gcOue%4n1IUrvbS^OcDu{JjXVjCxn9lSS5)o@=z#Im38CVt(Per}|I1Rva2t3FN zz%j%Lw3iub_ppf}e`IeW#|<#Jh?y6{88@*+#7$~NNornkW)f&BrxG|zSd@wyPp}fv z5Lie;+zC>Hh^_pKLR^s8;zCFd-?;Kcc#@hil}B<+rB;v;?C* literal 0 HcmV?d00001 diff --git a/sdk/dotnet/tests/IdentityCore.Tests/obj/IdentityCore.Tests.csproj.nuget.dgspec.json b/sdk/dotnet/tests/IdentityCore.Tests/obj/IdentityCore.Tests.csproj.nuget.dgspec.json new file mode 100644 index 00000000..2eff7f9c --- /dev/null +++ b/sdk/dotnet/tests/IdentityCore.Tests/obj/IdentityCore.Tests.csproj.nuget.dgspec.json @@ -0,0 +1,167 @@ +{ + "format": 1, + "restore": { + "/home/quarjo/IdentityCore/sdk/dotnet/tests/IdentityCore.Tests/IdentityCore.Tests.csproj": {} + }, + "projects": { + "/home/quarjo/IdentityCore/sdk/dotnet/src/IdentityCore/IdentityCore.csproj": { + "version": "0.2.0", + "restore": { + "projectUniqueName": "/home/quarjo/IdentityCore/sdk/dotnet/src/IdentityCore/IdentityCore.csproj", + "projectName": "IdentityCore", + "projectPath": "/home/quarjo/IdentityCore/sdk/dotnet/src/IdentityCore/IdentityCore.csproj", + "packagesPath": "/home/quarjo/.nuget/packages/", + "outputPath": "/home/quarjo/IdentityCore/sdk/dotnet/src/IdentityCore/obj/", + "projectStyle": "PackageReference", + "configFilePaths": [ + "/home/quarjo/.nuget/NuGet/NuGet.Config" + ], + "originalTargetFrameworks": [ + "net8.0" + ], + "sources": { + "/usr/lib/dotnet/library-packs": {}, + "https://api.nuget.org/v3/index.json": {} + }, + "frameworks": { + "net8.0": { + "targetAlias": "net8.0", + "projectReferences": {} + } + }, + "warningProperties": { + "warnAsError": [ + "NU1605" + ] + }, + "restoreAuditProperties": { + "enableAudit": "true", + "auditLevel": "low", + "auditMode": "direct" + }, + "SdkAnalysisLevel": "10.0.100" + }, + "frameworks": { + "net8.0": { + "targetAlias": "net8.0", + "imports": [ + "net461", + "net462", + "net47", + "net471", + "net472", + "net48", + "net481" + ], + "assetTargetFallback": true, + "warn": true, + "downloadDependencies": [ + { + "name": "Microsoft.AspNetCore.App.Ref", + "version": "[8.0.29, 8.0.29]" + }, + { + "name": "Microsoft.NETCore.App.Ref", + "version": "[8.0.29, 8.0.29]" + } + ], + "frameworkReferences": { + "Microsoft.NETCore.App": { + "privateAssets": "all" + } + }, + "runtimeIdentifierGraphPath": "/usr/lib/dotnet/sdk/10.0.110/PortableRuntimeIdentifierGraph.json" + } + } + }, + "/home/quarjo/IdentityCore/sdk/dotnet/tests/IdentityCore.Tests/IdentityCore.Tests.csproj": { + "version": "1.0.0", + "restore": { + "projectUniqueName": "/home/quarjo/IdentityCore/sdk/dotnet/tests/IdentityCore.Tests/IdentityCore.Tests.csproj", + "projectName": "IdentityCore.Tests", + "projectPath": "/home/quarjo/IdentityCore/sdk/dotnet/tests/IdentityCore.Tests/IdentityCore.Tests.csproj", + "packagesPath": "/home/quarjo/.nuget/packages/", + "outputPath": "/home/quarjo/IdentityCore/sdk/dotnet/tests/IdentityCore.Tests/obj/", + "projectStyle": "PackageReference", + "configFilePaths": [ + "/home/quarjo/.nuget/NuGet/NuGet.Config" + ], + "originalTargetFrameworks": [ + "net8.0" + ], + "sources": { + "/usr/lib/dotnet/library-packs": {}, + "https://api.nuget.org/v3/index.json": {} + }, + "frameworks": { + "net8.0": { + "targetAlias": "net8.0", + "projectReferences": { + "/home/quarjo/IdentityCore/sdk/dotnet/src/IdentityCore/IdentityCore.csproj": { + "projectPath": "/home/quarjo/IdentityCore/sdk/dotnet/src/IdentityCore/IdentityCore.csproj" + } + } + } + }, + "warningProperties": { + "warnAsError": [ + "NU1605" + ] + }, + "restoreAuditProperties": { + "enableAudit": "true", + "auditLevel": "low", + "auditMode": "direct" + }, + "SdkAnalysisLevel": "10.0.100" + }, + "frameworks": { + "net8.0": { + "targetAlias": "net8.0", + "dependencies": { + "Microsoft.NET.Test.Sdk": { + "target": "Package", + "version": "[17.13.0, )" + }, + "xunit": { + "target": "Package", + "version": "[2.9.3, )" + }, + "xunit.runner.visualstudio": { + "suppressParent": "All", + "target": "Package", + "version": "[3.1.0, )" + } + }, + "imports": [ + "net461", + "net462", + "net47", + "net471", + "net472", + "net48", + "net481" + ], + "assetTargetFallback": true, + "warn": true, + "downloadDependencies": [ + { + "name": "Microsoft.AspNetCore.App.Ref", + "version": "[8.0.29, 8.0.29]" + }, + { + "name": "Microsoft.NETCore.App.Ref", + "version": "[8.0.29, 8.0.29]" + } + ], + "frameworkReferences": { + "Microsoft.NETCore.App": { + "privateAssets": "all" + } + }, + "runtimeIdentifierGraphPath": "/usr/lib/dotnet/sdk/10.0.110/PortableRuntimeIdentifierGraph.json" + } + } + } + } +} \ No newline at end of file diff --git a/sdk/dotnet/tests/IdentityCore.Tests/obj/IdentityCore.Tests.csproj.nuget.g.props b/sdk/dotnet/tests/IdentityCore.Tests/obj/IdentityCore.Tests.csproj.nuget.g.props new file mode 100644 index 00000000..fe7e2182 --- /dev/null +++ b/sdk/dotnet/tests/IdentityCore.Tests/obj/IdentityCore.Tests.csproj.nuget.g.props @@ -0,0 +1,25 @@ + + + + True + NuGet + $(MSBuildThisFileDirectory)project.assets.json + /home/quarjo/.nuget/packages/ + /home/quarjo/.nuget/packages/ + PackageReference + 7.0.0 + + + + + + + + + + + + + /home/quarjo/.nuget/packages/xunit.analyzers/1.18.0 + + \ No newline at end of file diff --git a/sdk/dotnet/tests/IdentityCore.Tests/obj/IdentityCore.Tests.csproj.nuget.g.targets b/sdk/dotnet/tests/IdentityCore.Tests/obj/IdentityCore.Tests.csproj.nuget.g.targets new file mode 100644 index 00000000..5f97db69 --- /dev/null +++ b/sdk/dotnet/tests/IdentityCore.Tests/obj/IdentityCore.Tests.csproj.nuget.g.targets @@ -0,0 +1,8 @@ + + + + + + + + \ No newline at end of file diff --git a/sdk/dotnet/tests/IdentityCore.Tests/obj/project.assets.json b/sdk/dotnet/tests/IdentityCore.Tests/obj/project.assets.json new file mode 100644 index 00000000..49001747 --- /dev/null +++ b/sdk/dotnet/tests/IdentityCore.Tests/obj/project.assets.json @@ -0,0 +1,972 @@ +{ + "version": 3, + "targets": { + "net8.0": { + "Microsoft.CodeCoverage/17.13.0": { + "type": "package", + "compile": { + "lib/netcoreapp3.1/Microsoft.VisualStudio.CodeCoverage.Shim.dll": {} + }, + "runtime": { + "lib/netcoreapp3.1/Microsoft.VisualStudio.CodeCoverage.Shim.dll": {} + }, + "build": { + "build/netstandard2.0/Microsoft.CodeCoverage.props": {}, + "build/netstandard2.0/Microsoft.CodeCoverage.targets": {} + } + }, + "Microsoft.NET.Test.Sdk/17.13.0": { + "type": "package", + "dependencies": { + "Microsoft.CodeCoverage": "17.13.0", + "Microsoft.TestPlatform.TestHost": "17.13.0" + }, + "compile": { + "lib/netcoreapp3.1/_._": {} + }, + "runtime": { + "lib/netcoreapp3.1/_._": {} + }, + "build": { + "build/netcoreapp3.1/Microsoft.NET.Test.Sdk.props": {}, + "build/netcoreapp3.1/Microsoft.NET.Test.Sdk.targets": {} + }, + "buildMultiTargeting": { + "buildMultiTargeting/Microsoft.NET.Test.Sdk.props": {} + } + }, + "Microsoft.TestPlatform.ObjectModel/17.13.0": { + "type": "package", + "dependencies": { + "System.Reflection.Metadata": "1.6.0" + }, + "compile": { + "lib/netcoreapp3.1/Microsoft.TestPlatform.CoreUtilities.dll": {}, + "lib/netcoreapp3.1/Microsoft.TestPlatform.PlatformAbstractions.dll": {}, + "lib/netcoreapp3.1/Microsoft.VisualStudio.TestPlatform.ObjectModel.dll": {} + }, + "runtime": { + "lib/netcoreapp3.1/Microsoft.TestPlatform.CoreUtilities.dll": {}, + "lib/netcoreapp3.1/Microsoft.TestPlatform.PlatformAbstractions.dll": {}, + "lib/netcoreapp3.1/Microsoft.VisualStudio.TestPlatform.ObjectModel.dll": {} + }, + "resource": { + "lib/netcoreapp3.1/cs/Microsoft.TestPlatform.CoreUtilities.resources.dll": { + "locale": "cs" + }, + "lib/netcoreapp3.1/cs/Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll": { + "locale": "cs" + }, + "lib/netcoreapp3.1/de/Microsoft.TestPlatform.CoreUtilities.resources.dll": { + "locale": "de" + }, + "lib/netcoreapp3.1/de/Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll": { + "locale": "de" + }, + "lib/netcoreapp3.1/es/Microsoft.TestPlatform.CoreUtilities.resources.dll": { + "locale": "es" + }, + "lib/netcoreapp3.1/es/Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll": { + "locale": "es" + }, + "lib/netcoreapp3.1/fr/Microsoft.TestPlatform.CoreUtilities.resources.dll": { + "locale": "fr" + }, + "lib/netcoreapp3.1/fr/Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll": { + "locale": "fr" + }, + "lib/netcoreapp3.1/it/Microsoft.TestPlatform.CoreUtilities.resources.dll": { + "locale": "it" + }, + "lib/netcoreapp3.1/it/Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll": { + "locale": "it" + }, + "lib/netcoreapp3.1/ja/Microsoft.TestPlatform.CoreUtilities.resources.dll": { + "locale": "ja" + }, + "lib/netcoreapp3.1/ja/Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll": { + "locale": "ja" + }, + "lib/netcoreapp3.1/ko/Microsoft.TestPlatform.CoreUtilities.resources.dll": { + "locale": "ko" + }, + "lib/netcoreapp3.1/ko/Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll": { + "locale": "ko" + }, + "lib/netcoreapp3.1/pl/Microsoft.TestPlatform.CoreUtilities.resources.dll": { + "locale": "pl" + }, + "lib/netcoreapp3.1/pl/Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll": { + "locale": "pl" + }, + "lib/netcoreapp3.1/pt-BR/Microsoft.TestPlatform.CoreUtilities.resources.dll": { + "locale": "pt-BR" + }, + "lib/netcoreapp3.1/pt-BR/Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll": { + "locale": "pt-BR" + }, + "lib/netcoreapp3.1/ru/Microsoft.TestPlatform.CoreUtilities.resources.dll": { + "locale": "ru" + }, + "lib/netcoreapp3.1/ru/Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll": { + "locale": "ru" + }, + "lib/netcoreapp3.1/tr/Microsoft.TestPlatform.CoreUtilities.resources.dll": { + "locale": "tr" + }, + "lib/netcoreapp3.1/tr/Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll": { + "locale": "tr" + }, + "lib/netcoreapp3.1/zh-Hans/Microsoft.TestPlatform.CoreUtilities.resources.dll": { + "locale": "zh-Hans" + }, + "lib/netcoreapp3.1/zh-Hans/Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll": { + "locale": "zh-Hans" + }, + "lib/netcoreapp3.1/zh-Hant/Microsoft.TestPlatform.CoreUtilities.resources.dll": { + "locale": "zh-Hant" + }, + "lib/netcoreapp3.1/zh-Hant/Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll": { + "locale": "zh-Hant" + } + } + }, + "Microsoft.TestPlatform.TestHost/17.13.0": { + "type": "package", + "dependencies": { + "Microsoft.TestPlatform.ObjectModel": "17.13.0", + "Newtonsoft.Json": "13.0.1" + }, + "compile": { + "lib/netcoreapp3.1/Microsoft.TestPlatform.CommunicationUtilities.dll": {}, + "lib/netcoreapp3.1/Microsoft.TestPlatform.CoreUtilities.dll": {}, + "lib/netcoreapp3.1/Microsoft.TestPlatform.CrossPlatEngine.dll": {}, + "lib/netcoreapp3.1/Microsoft.TestPlatform.PlatformAbstractions.dll": {}, + "lib/netcoreapp3.1/Microsoft.TestPlatform.Utilities.dll": {}, + "lib/netcoreapp3.1/Microsoft.VisualStudio.TestPlatform.Common.dll": {}, + "lib/netcoreapp3.1/Microsoft.VisualStudio.TestPlatform.ObjectModel.dll": {}, + "lib/netcoreapp3.1/testhost.dll": { + "related": ".deps.json" + } + }, + "runtime": { + "lib/netcoreapp3.1/Microsoft.TestPlatform.CommunicationUtilities.dll": {}, + "lib/netcoreapp3.1/Microsoft.TestPlatform.CoreUtilities.dll": {}, + "lib/netcoreapp3.1/Microsoft.TestPlatform.CrossPlatEngine.dll": {}, + "lib/netcoreapp3.1/Microsoft.TestPlatform.PlatformAbstractions.dll": {}, + "lib/netcoreapp3.1/Microsoft.TestPlatform.Utilities.dll": {}, + "lib/netcoreapp3.1/Microsoft.VisualStudio.TestPlatform.Common.dll": {}, + "lib/netcoreapp3.1/Microsoft.VisualStudio.TestPlatform.ObjectModel.dll": {}, + "lib/netcoreapp3.1/testhost.dll": { + "related": ".deps.json" + } + }, + "resource": { + "lib/netcoreapp3.1/cs/Microsoft.TestPlatform.CommunicationUtilities.resources.dll": { + "locale": "cs" + }, + "lib/netcoreapp3.1/cs/Microsoft.TestPlatform.CrossPlatEngine.resources.dll": { + "locale": "cs" + }, + "lib/netcoreapp3.1/cs/Microsoft.VisualStudio.TestPlatform.Common.resources.dll": { + "locale": "cs" + }, + "lib/netcoreapp3.1/de/Microsoft.TestPlatform.CommunicationUtilities.resources.dll": { + "locale": "de" + }, + "lib/netcoreapp3.1/de/Microsoft.TestPlatform.CrossPlatEngine.resources.dll": { + "locale": "de" + }, + "lib/netcoreapp3.1/de/Microsoft.VisualStudio.TestPlatform.Common.resources.dll": { + "locale": "de" + }, + "lib/netcoreapp3.1/es/Microsoft.TestPlatform.CommunicationUtilities.resources.dll": { + "locale": "es" + }, + "lib/netcoreapp3.1/es/Microsoft.TestPlatform.CrossPlatEngine.resources.dll": { + "locale": "es" + }, + "lib/netcoreapp3.1/es/Microsoft.VisualStudio.TestPlatform.Common.resources.dll": { + "locale": "es" + }, + "lib/netcoreapp3.1/fr/Microsoft.TestPlatform.CommunicationUtilities.resources.dll": { + "locale": "fr" + }, + "lib/netcoreapp3.1/fr/Microsoft.TestPlatform.CrossPlatEngine.resources.dll": { + "locale": "fr" + }, + "lib/netcoreapp3.1/fr/Microsoft.VisualStudio.TestPlatform.Common.resources.dll": { + "locale": "fr" + }, + "lib/netcoreapp3.1/it/Microsoft.TestPlatform.CommunicationUtilities.resources.dll": { + "locale": "it" + }, + "lib/netcoreapp3.1/it/Microsoft.TestPlatform.CrossPlatEngine.resources.dll": { + "locale": "it" + }, + "lib/netcoreapp3.1/it/Microsoft.VisualStudio.TestPlatform.Common.resources.dll": { + "locale": "it" + }, + "lib/netcoreapp3.1/ja/Microsoft.TestPlatform.CommunicationUtilities.resources.dll": { + "locale": "ja" + }, + "lib/netcoreapp3.1/ja/Microsoft.TestPlatform.CrossPlatEngine.resources.dll": { + "locale": "ja" + }, + "lib/netcoreapp3.1/ja/Microsoft.VisualStudio.TestPlatform.Common.resources.dll": { + "locale": "ja" + }, + "lib/netcoreapp3.1/ko/Microsoft.TestPlatform.CommunicationUtilities.resources.dll": { + "locale": "ko" + }, + "lib/netcoreapp3.1/ko/Microsoft.TestPlatform.CrossPlatEngine.resources.dll": { + "locale": "ko" + }, + "lib/netcoreapp3.1/ko/Microsoft.VisualStudio.TestPlatform.Common.resources.dll": { + "locale": "ko" + }, + "lib/netcoreapp3.1/pl/Microsoft.TestPlatform.CommunicationUtilities.resources.dll": { + "locale": "pl" + }, + "lib/netcoreapp3.1/pl/Microsoft.TestPlatform.CrossPlatEngine.resources.dll": { + "locale": "pl" + }, + "lib/netcoreapp3.1/pl/Microsoft.VisualStudio.TestPlatform.Common.resources.dll": { + "locale": "pl" + }, + "lib/netcoreapp3.1/pt-BR/Microsoft.TestPlatform.CommunicationUtilities.resources.dll": { + "locale": "pt-BR" + }, + "lib/netcoreapp3.1/pt-BR/Microsoft.TestPlatform.CrossPlatEngine.resources.dll": { + "locale": "pt-BR" + }, + "lib/netcoreapp3.1/pt-BR/Microsoft.VisualStudio.TestPlatform.Common.resources.dll": { + "locale": "pt-BR" + }, + "lib/netcoreapp3.1/ru/Microsoft.TestPlatform.CommunicationUtilities.resources.dll": { + "locale": "ru" + }, + "lib/netcoreapp3.1/ru/Microsoft.TestPlatform.CrossPlatEngine.resources.dll": { + "locale": "ru" + }, + "lib/netcoreapp3.1/ru/Microsoft.VisualStudio.TestPlatform.Common.resources.dll": { + "locale": "ru" + }, + "lib/netcoreapp3.1/tr/Microsoft.TestPlatform.CommunicationUtilities.resources.dll": { + "locale": "tr" + }, + "lib/netcoreapp3.1/tr/Microsoft.TestPlatform.CrossPlatEngine.resources.dll": { + "locale": "tr" + }, + "lib/netcoreapp3.1/tr/Microsoft.VisualStudio.TestPlatform.Common.resources.dll": { + "locale": "tr" + }, + "lib/netcoreapp3.1/zh-Hans/Microsoft.TestPlatform.CommunicationUtilities.resources.dll": { + "locale": "zh-Hans" + }, + "lib/netcoreapp3.1/zh-Hans/Microsoft.TestPlatform.CrossPlatEngine.resources.dll": { + "locale": "zh-Hans" + }, + "lib/netcoreapp3.1/zh-Hans/Microsoft.VisualStudio.TestPlatform.Common.resources.dll": { + "locale": "zh-Hans" + }, + "lib/netcoreapp3.1/zh-Hant/Microsoft.TestPlatform.CommunicationUtilities.resources.dll": { + "locale": "zh-Hant" + }, + "lib/netcoreapp3.1/zh-Hant/Microsoft.TestPlatform.CrossPlatEngine.resources.dll": { + "locale": "zh-Hant" + }, + "lib/netcoreapp3.1/zh-Hant/Microsoft.VisualStudio.TestPlatform.Common.resources.dll": { + "locale": "zh-Hant" + } + }, + "build": { + "build/netcoreapp3.1/Microsoft.TestPlatform.TestHost.props": {} + } + }, + "Newtonsoft.Json/13.0.1": { + "type": "package", + "compile": { + "lib/netstandard2.0/Newtonsoft.Json.dll": { + "related": ".xml" + } + }, + "runtime": { + "lib/netstandard2.0/Newtonsoft.Json.dll": { + "related": ".xml" + } + } + }, + "System.Reflection.Metadata/1.6.0": { + "type": "package", + "compile": { + "lib/netstandard2.0/System.Reflection.Metadata.dll": { + "related": ".xml" + } + }, + "runtime": { + "lib/netstandard2.0/System.Reflection.Metadata.dll": { + "related": ".xml" + } + } + }, + "xunit/2.9.3": { + "type": "package", + "dependencies": { + "xunit.analyzers": "1.18.0", + "xunit.assert": "2.9.3", + "xunit.core": "[2.9.3]" + } + }, + "xunit.abstractions/2.0.3": { + "type": "package", + "compile": { + "lib/netstandard2.0/xunit.abstractions.dll": { + "related": ".xml" + } + }, + "runtime": { + "lib/netstandard2.0/xunit.abstractions.dll": { + "related": ".xml" + } + } + }, + "xunit.analyzers/1.18.0": { + "type": "package" + }, + "xunit.assert/2.9.3": { + "type": "package", + "compile": { + "lib/net6.0/xunit.assert.dll": { + "related": ".xml" + } + }, + "runtime": { + "lib/net6.0/xunit.assert.dll": { + "related": ".xml" + } + } + }, + "xunit.core/2.9.3": { + "type": "package", + "dependencies": { + "xunit.extensibility.core": "[2.9.3]", + "xunit.extensibility.execution": "[2.9.3]" + }, + "build": { + "build/xunit.core.props": {}, + "build/xunit.core.targets": {} + }, + "buildMultiTargeting": { + "buildMultiTargeting/xunit.core.props": {}, + "buildMultiTargeting/xunit.core.targets": {} + } + }, + "xunit.extensibility.core/2.9.3": { + "type": "package", + "dependencies": { + "xunit.abstractions": "2.0.3" + }, + "compile": { + "lib/netstandard1.1/xunit.core.dll": { + "related": ".xml" + } + }, + "runtime": { + "lib/netstandard1.1/xunit.core.dll": { + "related": ".xml" + } + } + }, + "xunit.extensibility.execution/2.9.3": { + "type": "package", + "dependencies": { + "xunit.extensibility.core": "[2.9.3]" + }, + "compile": { + "lib/netstandard1.1/xunit.execution.dotnet.dll": { + "related": ".xml" + } + }, + "runtime": { + "lib/netstandard1.1/xunit.execution.dotnet.dll": { + "related": ".xml" + } + } + }, + "xunit.runner.visualstudio/3.1.0": { + "type": "package", + "compile": { + "lib/net8.0/_._": {} + }, + "runtime": { + "lib/net8.0/_._": {} + }, + "build": { + "build/net8.0/xunit.runner.visualstudio.props": {} + } + }, + "IdentityCore/0.2.0": { + "type": "project", + "framework": ".NETCoreApp,Version=v8.0", + "compile": { + "bin/placeholder/IdentityCore.dll": {} + }, + "runtime": { + "bin/placeholder/IdentityCore.dll": {} + } + } + } + }, + "libraries": { + "Microsoft.CodeCoverage/17.13.0": { + "sha512": "9LIUy0y+DvUmEPtbRDw6Bay3rzwqFV8P4efTrK4CZhQle3M/QwLPjISghfcolmEGAPWxuJi6m98ZEfk4VR4Lfg==", + "type": "package", + "path": "microsoft.codecoverage/17.13.0", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "Icon.png", + "ThirdPartyNotices.txt", + "build/netstandard2.0/CodeCoverage/CodeCoverage.config", + "build/netstandard2.0/CodeCoverage/CodeCoverage.exe", + "build/netstandard2.0/CodeCoverage/Cov_x86.config", + "build/netstandard2.0/CodeCoverage/amd64/CodeCoverage.exe", + "build/netstandard2.0/CodeCoverage/amd64/Cov_x64.config", + "build/netstandard2.0/CodeCoverage/amd64/covrun64.dll", + "build/netstandard2.0/CodeCoverage/amd64/msdia140.dll", + "build/netstandard2.0/CodeCoverage/arm64/Cov_arm64.config", + "build/netstandard2.0/CodeCoverage/arm64/covrunarm64.dll", + "build/netstandard2.0/CodeCoverage/arm64/msdia140.dll", + "build/netstandard2.0/CodeCoverage/codecoveragemessages.dll", + "build/netstandard2.0/CodeCoverage/coreclr/Microsoft.VisualStudio.CodeCoverage.Shim.dll", + "build/netstandard2.0/CodeCoverage/covrun32.dll", + "build/netstandard2.0/CodeCoverage/msdia140.dll", + "build/netstandard2.0/Microsoft.CodeCoverage.Core.dll", + "build/netstandard2.0/Microsoft.CodeCoverage.Instrumentation.Core.dll", + "build/netstandard2.0/Microsoft.CodeCoverage.Instrumentation.dll", + "build/netstandard2.0/Microsoft.CodeCoverage.Interprocess.dll", + "build/netstandard2.0/Microsoft.CodeCoverage.props", + "build/netstandard2.0/Microsoft.CodeCoverage.targets", + "build/netstandard2.0/Microsoft.DiaSymReader.dll", + "build/netstandard2.0/Microsoft.VisualStudio.TraceDataCollector.dll", + "build/netstandard2.0/Mono.Cecil.Pdb.dll", + "build/netstandard2.0/Mono.Cecil.Rocks.dll", + "build/netstandard2.0/Mono.Cecil.dll", + "build/netstandard2.0/ThirdPartyNotices.txt", + "build/netstandard2.0/alpine/x64/Cov_x64.config", + "build/netstandard2.0/alpine/x64/libCoverageInstrumentationMethod.so", + "build/netstandard2.0/alpine/x64/libInstrumentationEngine.so", + "build/netstandard2.0/arm64/MicrosoftInstrumentationEngine_arm64.dll", + "build/netstandard2.0/cs/Microsoft.VisualStudio.TraceDataCollector.resources.dll", + "build/netstandard2.0/de/Microsoft.VisualStudio.TraceDataCollector.resources.dll", + "build/netstandard2.0/es/Microsoft.VisualStudio.TraceDataCollector.resources.dll", + "build/netstandard2.0/fr/Microsoft.VisualStudio.TraceDataCollector.resources.dll", + "build/netstandard2.0/it/Microsoft.VisualStudio.TraceDataCollector.resources.dll", + "build/netstandard2.0/ja/Microsoft.VisualStudio.TraceDataCollector.resources.dll", + "build/netstandard2.0/ko/Microsoft.VisualStudio.TraceDataCollector.resources.dll", + "build/netstandard2.0/macos/x64/Cov_x64.config", + "build/netstandard2.0/macos/x64/libCoverageInstrumentationMethod.dylib", + "build/netstandard2.0/macos/x64/libInstrumentationEngine.dylib", + "build/netstandard2.0/pl/Microsoft.VisualStudio.TraceDataCollector.resources.dll", + "build/netstandard2.0/pt-BR/Microsoft.VisualStudio.TraceDataCollector.resources.dll", + "build/netstandard2.0/ru/Microsoft.VisualStudio.TraceDataCollector.resources.dll", + "build/netstandard2.0/tr/Microsoft.VisualStudio.TraceDataCollector.resources.dll", + "build/netstandard2.0/ubuntu/x64/Cov_x64.config", + "build/netstandard2.0/ubuntu/x64/libCoverageInstrumentationMethod.so", + "build/netstandard2.0/ubuntu/x64/libInstrumentationEngine.so", + "build/netstandard2.0/x64/MicrosoftInstrumentationEngine_x64.dll", + "build/netstandard2.0/x86/MicrosoftInstrumentationEngine_x86.dll", + "build/netstandard2.0/zh-Hans/Microsoft.VisualStudio.TraceDataCollector.resources.dll", + "build/netstandard2.0/zh-Hant/Microsoft.VisualStudio.TraceDataCollector.resources.dll", + "lib/net462/Microsoft.VisualStudio.CodeCoverage.Shim.dll", + "lib/netcoreapp3.1/Microsoft.VisualStudio.CodeCoverage.Shim.dll", + "microsoft.codecoverage.17.13.0.nupkg.sha512", + "microsoft.codecoverage.nuspec" + ] + }, + "Microsoft.NET.Test.Sdk/17.13.0": { + "sha512": "W19wCPizaIC9Zh47w8wWI/yxuqR7/dtABwOrc8r2jX/8mUNxM2vw4fXDh+DJTeogxV+KzKwg5jNNGQVwf3LXyA==", + "type": "package", + "path": "microsoft.net.test.sdk/17.13.0", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "Icon.png", + "build/net462/Microsoft.NET.Test.Sdk.props", + "build/net462/Microsoft.NET.Test.Sdk.targets", + "build/netcoreapp3.1/Microsoft.NET.Test.Sdk.Program.cs", + "build/netcoreapp3.1/Microsoft.NET.Test.Sdk.Program.fs", + "build/netcoreapp3.1/Microsoft.NET.Test.Sdk.Program.vb", + "build/netcoreapp3.1/Microsoft.NET.Test.Sdk.props", + "build/netcoreapp3.1/Microsoft.NET.Test.Sdk.targets", + "buildMultiTargeting/Microsoft.NET.Test.Sdk.props", + "lib/net462/_._", + "lib/netcoreapp3.1/_._", + "microsoft.net.test.sdk.17.13.0.nupkg.sha512", + "microsoft.net.test.sdk.nuspec" + ] + }, + "Microsoft.TestPlatform.ObjectModel/17.13.0": { + "sha512": "bt0E0Dx+iqW97o4A59RCmUmz/5NarJ7LRL+jXbSHod72ibL5XdNm1Ke+UO5tFhBG4VwHLcSjqq9BUSblGNWamw==", + "type": "package", + "path": "microsoft.testplatform.objectmodel/17.13.0", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "Icon.png", + "lib/net462/Microsoft.TestPlatform.CoreUtilities.dll", + "lib/net462/Microsoft.TestPlatform.PlatformAbstractions.dll", + "lib/net462/Microsoft.VisualStudio.TestPlatform.ObjectModel.dll", + "lib/net462/cs/Microsoft.TestPlatform.CoreUtilities.resources.dll", + "lib/net462/cs/Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll", + "lib/net462/de/Microsoft.TestPlatform.CoreUtilities.resources.dll", + "lib/net462/de/Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll", + "lib/net462/es/Microsoft.TestPlatform.CoreUtilities.resources.dll", + "lib/net462/es/Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll", + "lib/net462/fr/Microsoft.TestPlatform.CoreUtilities.resources.dll", + "lib/net462/fr/Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll", + "lib/net462/it/Microsoft.TestPlatform.CoreUtilities.resources.dll", + "lib/net462/it/Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll", + "lib/net462/ja/Microsoft.TestPlatform.CoreUtilities.resources.dll", + "lib/net462/ja/Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll", + "lib/net462/ko/Microsoft.TestPlatform.CoreUtilities.resources.dll", + "lib/net462/ko/Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll", + "lib/net462/pl/Microsoft.TestPlatform.CoreUtilities.resources.dll", + "lib/net462/pl/Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll", + "lib/net462/pt-BR/Microsoft.TestPlatform.CoreUtilities.resources.dll", + "lib/net462/pt-BR/Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll", + "lib/net462/ru/Microsoft.TestPlatform.CoreUtilities.resources.dll", + "lib/net462/ru/Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll", + "lib/net462/tr/Microsoft.TestPlatform.CoreUtilities.resources.dll", + "lib/net462/tr/Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll", + "lib/net462/zh-Hans/Microsoft.TestPlatform.CoreUtilities.resources.dll", + "lib/net462/zh-Hans/Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll", + "lib/net462/zh-Hant/Microsoft.TestPlatform.CoreUtilities.resources.dll", + "lib/net462/zh-Hant/Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll", + "lib/netcoreapp3.1/Microsoft.TestPlatform.CoreUtilities.dll", + "lib/netcoreapp3.1/Microsoft.TestPlatform.PlatformAbstractions.dll", + "lib/netcoreapp3.1/Microsoft.VisualStudio.TestPlatform.ObjectModel.dll", + "lib/netcoreapp3.1/cs/Microsoft.TestPlatform.CoreUtilities.resources.dll", + "lib/netcoreapp3.1/cs/Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll", + "lib/netcoreapp3.1/de/Microsoft.TestPlatform.CoreUtilities.resources.dll", + "lib/netcoreapp3.1/de/Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll", + "lib/netcoreapp3.1/es/Microsoft.TestPlatform.CoreUtilities.resources.dll", + "lib/netcoreapp3.1/es/Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll", + "lib/netcoreapp3.1/fr/Microsoft.TestPlatform.CoreUtilities.resources.dll", + "lib/netcoreapp3.1/fr/Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll", + "lib/netcoreapp3.1/it/Microsoft.TestPlatform.CoreUtilities.resources.dll", + "lib/netcoreapp3.1/it/Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll", + "lib/netcoreapp3.1/ja/Microsoft.TestPlatform.CoreUtilities.resources.dll", + "lib/netcoreapp3.1/ja/Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll", + "lib/netcoreapp3.1/ko/Microsoft.TestPlatform.CoreUtilities.resources.dll", + "lib/netcoreapp3.1/ko/Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll", + "lib/netcoreapp3.1/pl/Microsoft.TestPlatform.CoreUtilities.resources.dll", + "lib/netcoreapp3.1/pl/Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll", + "lib/netcoreapp3.1/pt-BR/Microsoft.TestPlatform.CoreUtilities.resources.dll", + "lib/netcoreapp3.1/pt-BR/Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll", + "lib/netcoreapp3.1/ru/Microsoft.TestPlatform.CoreUtilities.resources.dll", + "lib/netcoreapp3.1/ru/Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll", + "lib/netcoreapp3.1/tr/Microsoft.TestPlatform.CoreUtilities.resources.dll", + "lib/netcoreapp3.1/tr/Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll", + "lib/netcoreapp3.1/zh-Hans/Microsoft.TestPlatform.CoreUtilities.resources.dll", + "lib/netcoreapp3.1/zh-Hans/Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll", + "lib/netcoreapp3.1/zh-Hant/Microsoft.TestPlatform.CoreUtilities.resources.dll", + "lib/netcoreapp3.1/zh-Hant/Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll", + "lib/netstandard2.0/Microsoft.TestPlatform.CoreUtilities.dll", + "lib/netstandard2.0/Microsoft.TestPlatform.PlatformAbstractions.dll", + "lib/netstandard2.0/Microsoft.VisualStudio.TestPlatform.ObjectModel.dll", + "lib/netstandard2.0/cs/Microsoft.TestPlatform.CoreUtilities.resources.dll", + "lib/netstandard2.0/cs/Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll", + "lib/netstandard2.0/de/Microsoft.TestPlatform.CoreUtilities.resources.dll", + "lib/netstandard2.0/de/Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll", + "lib/netstandard2.0/es/Microsoft.TestPlatform.CoreUtilities.resources.dll", + "lib/netstandard2.0/es/Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll", + "lib/netstandard2.0/fr/Microsoft.TestPlatform.CoreUtilities.resources.dll", + "lib/netstandard2.0/fr/Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll", + "lib/netstandard2.0/it/Microsoft.TestPlatform.CoreUtilities.resources.dll", + "lib/netstandard2.0/it/Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll", + "lib/netstandard2.0/ja/Microsoft.TestPlatform.CoreUtilities.resources.dll", + "lib/netstandard2.0/ja/Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll", + "lib/netstandard2.0/ko/Microsoft.TestPlatform.CoreUtilities.resources.dll", + "lib/netstandard2.0/ko/Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll", + "lib/netstandard2.0/pl/Microsoft.TestPlatform.CoreUtilities.resources.dll", + "lib/netstandard2.0/pl/Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll", + "lib/netstandard2.0/pt-BR/Microsoft.TestPlatform.CoreUtilities.resources.dll", + "lib/netstandard2.0/pt-BR/Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll", + "lib/netstandard2.0/ru/Microsoft.TestPlatform.CoreUtilities.resources.dll", + "lib/netstandard2.0/ru/Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll", + "lib/netstandard2.0/tr/Microsoft.TestPlatform.CoreUtilities.resources.dll", + "lib/netstandard2.0/tr/Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll", + "lib/netstandard2.0/zh-Hans/Microsoft.TestPlatform.CoreUtilities.resources.dll", + "lib/netstandard2.0/zh-Hans/Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll", + "lib/netstandard2.0/zh-Hant/Microsoft.TestPlatform.CoreUtilities.resources.dll", + "lib/netstandard2.0/zh-Hant/Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll", + "microsoft.testplatform.objectmodel.17.13.0.nupkg.sha512", + "microsoft.testplatform.objectmodel.nuspec" + ] + }, + "Microsoft.TestPlatform.TestHost/17.13.0": { + "sha512": "9GGw08Dc3AXspjekdyTdZ/wYWFlxbgcF0s7BKxzVX+hzAwpifDOdxM+ceVaaJSQOwqt3jtuNlHn3XTpKUS9x9Q==", + "type": "package", + "path": "microsoft.testplatform.testhost/17.13.0", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "Icon.png", + "ThirdPartyNotices.txt", + "build/netcoreapp3.1/Microsoft.TestPlatform.TestHost.props", + "build/netcoreapp3.1/x64/testhost.dll", + "build/netcoreapp3.1/x64/testhost.exe", + "build/netcoreapp3.1/x86/testhost.x86.dll", + "build/netcoreapp3.1/x86/testhost.x86.exe", + "lib/net462/_._", + "lib/netcoreapp3.1/Microsoft.TestPlatform.CommunicationUtilities.dll", + "lib/netcoreapp3.1/Microsoft.TestPlatform.CoreUtilities.dll", + "lib/netcoreapp3.1/Microsoft.TestPlatform.CrossPlatEngine.dll", + "lib/netcoreapp3.1/Microsoft.TestPlatform.PlatformAbstractions.dll", + "lib/netcoreapp3.1/Microsoft.TestPlatform.Utilities.dll", + "lib/netcoreapp3.1/Microsoft.VisualStudio.TestPlatform.Common.dll", + "lib/netcoreapp3.1/Microsoft.VisualStudio.TestPlatform.ObjectModel.dll", + "lib/netcoreapp3.1/cs/Microsoft.TestPlatform.CommunicationUtilities.resources.dll", + "lib/netcoreapp3.1/cs/Microsoft.TestPlatform.CrossPlatEngine.resources.dll", + "lib/netcoreapp3.1/cs/Microsoft.VisualStudio.TestPlatform.Common.resources.dll", + "lib/netcoreapp3.1/de/Microsoft.TestPlatform.CommunicationUtilities.resources.dll", + "lib/netcoreapp3.1/de/Microsoft.TestPlatform.CrossPlatEngine.resources.dll", + "lib/netcoreapp3.1/de/Microsoft.VisualStudio.TestPlatform.Common.resources.dll", + "lib/netcoreapp3.1/es/Microsoft.TestPlatform.CommunicationUtilities.resources.dll", + "lib/netcoreapp3.1/es/Microsoft.TestPlatform.CrossPlatEngine.resources.dll", + "lib/netcoreapp3.1/es/Microsoft.VisualStudio.TestPlatform.Common.resources.dll", + "lib/netcoreapp3.1/fr/Microsoft.TestPlatform.CommunicationUtilities.resources.dll", + "lib/netcoreapp3.1/fr/Microsoft.TestPlatform.CrossPlatEngine.resources.dll", + "lib/netcoreapp3.1/fr/Microsoft.VisualStudio.TestPlatform.Common.resources.dll", + "lib/netcoreapp3.1/it/Microsoft.TestPlatform.CommunicationUtilities.resources.dll", + "lib/netcoreapp3.1/it/Microsoft.TestPlatform.CrossPlatEngine.resources.dll", + "lib/netcoreapp3.1/it/Microsoft.VisualStudio.TestPlatform.Common.resources.dll", + "lib/netcoreapp3.1/ja/Microsoft.TestPlatform.CommunicationUtilities.resources.dll", + "lib/netcoreapp3.1/ja/Microsoft.TestPlatform.CrossPlatEngine.resources.dll", + "lib/netcoreapp3.1/ja/Microsoft.VisualStudio.TestPlatform.Common.resources.dll", + "lib/netcoreapp3.1/ko/Microsoft.TestPlatform.CommunicationUtilities.resources.dll", + "lib/netcoreapp3.1/ko/Microsoft.TestPlatform.CrossPlatEngine.resources.dll", + "lib/netcoreapp3.1/ko/Microsoft.VisualStudio.TestPlatform.Common.resources.dll", + "lib/netcoreapp3.1/pl/Microsoft.TestPlatform.CommunicationUtilities.resources.dll", + "lib/netcoreapp3.1/pl/Microsoft.TestPlatform.CrossPlatEngine.resources.dll", + "lib/netcoreapp3.1/pl/Microsoft.VisualStudio.TestPlatform.Common.resources.dll", + "lib/netcoreapp3.1/pt-BR/Microsoft.TestPlatform.CommunicationUtilities.resources.dll", + "lib/netcoreapp3.1/pt-BR/Microsoft.TestPlatform.CrossPlatEngine.resources.dll", + "lib/netcoreapp3.1/pt-BR/Microsoft.VisualStudio.TestPlatform.Common.resources.dll", + "lib/netcoreapp3.1/ru/Microsoft.TestPlatform.CommunicationUtilities.resources.dll", + "lib/netcoreapp3.1/ru/Microsoft.TestPlatform.CrossPlatEngine.resources.dll", + "lib/netcoreapp3.1/ru/Microsoft.VisualStudio.TestPlatform.Common.resources.dll", + "lib/netcoreapp3.1/testhost.deps.json", + "lib/netcoreapp3.1/testhost.dll", + "lib/netcoreapp3.1/tr/Microsoft.TestPlatform.CommunicationUtilities.resources.dll", + "lib/netcoreapp3.1/tr/Microsoft.TestPlatform.CrossPlatEngine.resources.dll", + "lib/netcoreapp3.1/tr/Microsoft.VisualStudio.TestPlatform.Common.resources.dll", + "lib/netcoreapp3.1/x64/msdia140.dll", + "lib/netcoreapp3.1/x86/msdia140.dll", + "lib/netcoreapp3.1/zh-Hans/Microsoft.TestPlatform.CommunicationUtilities.resources.dll", + "lib/netcoreapp3.1/zh-Hans/Microsoft.TestPlatform.CrossPlatEngine.resources.dll", + "lib/netcoreapp3.1/zh-Hans/Microsoft.VisualStudio.TestPlatform.Common.resources.dll", + "lib/netcoreapp3.1/zh-Hant/Microsoft.TestPlatform.CommunicationUtilities.resources.dll", + "lib/netcoreapp3.1/zh-Hant/Microsoft.TestPlatform.CrossPlatEngine.resources.dll", + "lib/netcoreapp3.1/zh-Hant/Microsoft.VisualStudio.TestPlatform.Common.resources.dll", + "microsoft.testplatform.testhost.17.13.0.nupkg.sha512", + "microsoft.testplatform.testhost.nuspec" + ] + }, + "Newtonsoft.Json/13.0.1": { + "sha512": "ppPFpBcvxdsfUonNcvITKqLl3bqxWbDCZIzDWHzjpdAHRFfZe0Dw9HmA0+za13IdyrgJwpkDTDA9fHaxOrt20A==", + "type": "package", + "path": "newtonsoft.json/13.0.1", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "LICENSE.md", + "lib/net20/Newtonsoft.Json.dll", + "lib/net20/Newtonsoft.Json.xml", + "lib/net35/Newtonsoft.Json.dll", + "lib/net35/Newtonsoft.Json.xml", + "lib/net40/Newtonsoft.Json.dll", + "lib/net40/Newtonsoft.Json.xml", + "lib/net45/Newtonsoft.Json.dll", + "lib/net45/Newtonsoft.Json.xml", + "lib/netstandard1.0/Newtonsoft.Json.dll", + "lib/netstandard1.0/Newtonsoft.Json.xml", + "lib/netstandard1.3/Newtonsoft.Json.dll", + "lib/netstandard1.3/Newtonsoft.Json.xml", + "lib/netstandard2.0/Newtonsoft.Json.dll", + "lib/netstandard2.0/Newtonsoft.Json.xml", + "newtonsoft.json.13.0.1.nupkg.sha512", + "newtonsoft.json.nuspec", + "packageIcon.png" + ] + }, + "System.Reflection.Metadata/1.6.0": { + "sha512": "COC1aiAJjCoA5GBF+QKL2uLqEBew4JsCkQmoHKbN3TlOZKa2fKLz5CpiRQKDz0RsAOEGsVKqOD5bomsXq/4STQ==", + "type": "package", + "path": "system.reflection.metadata/1.6.0", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "LICENSE.TXT", + "THIRD-PARTY-NOTICES.TXT", + "lib/netstandard1.1/System.Reflection.Metadata.dll", + "lib/netstandard1.1/System.Reflection.Metadata.xml", + "lib/netstandard2.0/System.Reflection.Metadata.dll", + "lib/netstandard2.0/System.Reflection.Metadata.xml", + "lib/portable-net45+win8/System.Reflection.Metadata.dll", + "lib/portable-net45+win8/System.Reflection.Metadata.xml", + "system.reflection.metadata.1.6.0.nupkg.sha512", + "system.reflection.metadata.nuspec", + "useSharedDesignerContext.txt", + "version.txt" + ] + }, + "xunit/2.9.3": { + "sha512": "TlXQBinK35LpOPKHAqbLY4xlEen9TBafjs0V5KnA4wZsoQLQJiirCR4CbIXvOH8NzkW4YeJKP5P/Bnrodm0h9Q==", + "type": "package", + "path": "xunit/2.9.3", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "_content/README.md", + "_content/logo-128-transparent.png", + "xunit.2.9.3.nupkg.sha512", + "xunit.nuspec" + ] + }, + "xunit.abstractions/2.0.3": { + "sha512": "pot1I4YOxlWjIb5jmwvvQNbTrZ3lJQ+jUGkGjWE3hEFM0l5gOnBWS+H3qsex68s5cO52g+44vpGzhAt+42vwKg==", + "type": "package", + "path": "xunit.abstractions/2.0.3", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "lib/net35/xunit.abstractions.dll", + "lib/net35/xunit.abstractions.xml", + "lib/netstandard1.0/xunit.abstractions.dll", + "lib/netstandard1.0/xunit.abstractions.xml", + "lib/netstandard2.0/xunit.abstractions.dll", + "lib/netstandard2.0/xunit.abstractions.xml", + "xunit.abstractions.2.0.3.nupkg.sha512", + "xunit.abstractions.nuspec" + ] + }, + "xunit.analyzers/1.18.0": { + "sha512": "OtFMHN8yqIcYP9wcVIgJrq01AfTxijjAqVDy/WeQVSyrDC1RzBWeQPztL49DN2syXRah8TYnfvk035s7L95EZQ==", + "type": "package", + "path": "xunit.analyzers/1.18.0", + "hasTools": true, + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "_content/README.md", + "_content/logo-128-transparent.png", + "analyzers/dotnet/cs/xunit.analyzers.dll", + "analyzers/dotnet/cs/xunit.analyzers.fixes.dll", + "tools/install.ps1", + "tools/uninstall.ps1", + "xunit.analyzers.1.18.0.nupkg.sha512", + "xunit.analyzers.nuspec" + ] + }, + "xunit.assert/2.9.3": { + "sha512": "/Kq28fCE7MjOV42YLVRAJzRF0WmEqsmflm0cfpMjGtzQ2lR5mYVj1/i0Y8uDAOLczkL3/jArrwehfMD0YogMAA==", + "type": "package", + "path": "xunit.assert/2.9.3", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "_content/README.md", + "_content/logo-128-transparent.png", + "lib/net6.0/xunit.assert.dll", + "lib/net6.0/xunit.assert.xml", + "lib/netstandard1.1/xunit.assert.dll", + "lib/netstandard1.1/xunit.assert.xml", + "xunit.assert.2.9.3.nupkg.sha512", + "xunit.assert.nuspec" + ] + }, + "xunit.core/2.9.3": { + "sha512": "BiAEvqGvyme19wE0wTKdADH+NloYqikiU0mcnmiNyXaF9HyHmE6sr/3DC5vnBkgsWaE6yPyWszKSPSApWdRVeQ==", + "type": "package", + "path": "xunit.core/2.9.3", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "_content/README.md", + "_content/logo-128-transparent.png", + "build/xunit.core.props", + "build/xunit.core.targets", + "buildMultiTargeting/xunit.core.props", + "buildMultiTargeting/xunit.core.targets", + "xunit.core.2.9.3.nupkg.sha512", + "xunit.core.nuspec" + ] + }, + "xunit.extensibility.core/2.9.3": { + "sha512": "kf3si0YTn2a8J8eZNb+zFpwfoyvIrQ7ivNk5ZYA5yuYk1bEtMe4DxJ2CF/qsRgmEnDr7MnW1mxylBaHTZ4qErA==", + "type": "package", + "path": "xunit.extensibility.core/2.9.3", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "_content/README.md", + "_content/logo-128-transparent.png", + "lib/net452/xunit.core.dll", + "lib/net452/xunit.core.dll.tdnet", + "lib/net452/xunit.core.xml", + "lib/net452/xunit.runner.tdnet.dll", + "lib/net452/xunit.runner.utility.net452.dll", + "lib/netstandard1.1/xunit.core.dll", + "lib/netstandard1.1/xunit.core.xml", + "xunit.extensibility.core.2.9.3.nupkg.sha512", + "xunit.extensibility.core.nuspec" + ] + }, + "xunit.extensibility.execution/2.9.3": { + "sha512": "yMb6vMESlSrE3Wfj7V6cjQ3S4TXdXpRqYeNEI3zsX31uTsGMJjEw6oD5F5u1cHnMptjhEECnmZSsPxB6ChZHDQ==", + "type": "package", + "path": "xunit.extensibility.execution/2.9.3", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "_content/README.md", + "_content/logo-128-transparent.png", + "lib/net452/xunit.execution.desktop.dll", + "lib/net452/xunit.execution.desktop.xml", + "lib/netstandard1.1/xunit.execution.dotnet.dll", + "lib/netstandard1.1/xunit.execution.dotnet.xml", + "xunit.extensibility.execution.2.9.3.nupkg.sha512", + "xunit.extensibility.execution.nuspec" + ] + }, + "xunit.runner.visualstudio/3.1.0": { + "sha512": "K9O9TOzugqOo4LJ87uuq1VG8RAqGp20Ng85Wx932oT5LNBkIgeeGYubVW5UMnOOTanFNbGavmbuYrJr4INzSwg==", + "type": "package", + "path": "xunit.runner.visualstudio/3.1.0", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "_content/README.md", + "_content/logo-128-transparent.png", + "build/net472/xunit.abstractions.dll", + "build/net472/xunit.runner.visualstudio.props", + "build/net472/xunit.runner.visualstudio.testadapter.dll", + "build/net8.0/xunit.abstractions.dll", + "build/net8.0/xunit.runner.visualstudio.props", + "build/net8.0/xunit.runner.visualstudio.testadapter.dll", + "lib/net472/_._", + "lib/net8.0/_._", + "xunit.runner.visualstudio.3.1.0.nupkg.sha512", + "xunit.runner.visualstudio.nuspec" + ] + }, + "IdentityCore/0.2.0": { + "type": "project", + "path": "../../src/IdentityCore/IdentityCore.csproj", + "msbuildProject": "../../src/IdentityCore/IdentityCore.csproj" + } + }, + "projectFileDependencyGroups": { + "net8.0": [ + "IdentityCore >= 0.2.0", + "Microsoft.NET.Test.Sdk >= 17.13.0", + "xunit >= 2.9.3", + "xunit.runner.visualstudio >= 3.1.0" + ] + }, + "packageFolders": { + "/home/quarjo/.nuget/packages/": {} + }, + "project": { + "version": "1.0.0", + "restore": { + "projectUniqueName": "/home/quarjo/IdentityCore/sdk/dotnet/tests/IdentityCore.Tests/IdentityCore.Tests.csproj", + "projectName": "IdentityCore.Tests", + "projectPath": "/home/quarjo/IdentityCore/sdk/dotnet/tests/IdentityCore.Tests/IdentityCore.Tests.csproj", + "packagesPath": "/home/quarjo/.nuget/packages/", + "outputPath": "/home/quarjo/IdentityCore/sdk/dotnet/tests/IdentityCore.Tests/obj/", + "projectStyle": "PackageReference", + "configFilePaths": [ + "/home/quarjo/.nuget/NuGet/NuGet.Config" + ], + "originalTargetFrameworks": [ + "net8.0" + ], + "sources": { + "/usr/lib/dotnet/library-packs": {}, + "https://api.nuget.org/v3/index.json": {} + }, + "frameworks": { + "net8.0": { + "targetAlias": "net8.0", + "projectReferences": { + "/home/quarjo/IdentityCore/sdk/dotnet/src/IdentityCore/IdentityCore.csproj": { + "projectPath": "/home/quarjo/IdentityCore/sdk/dotnet/src/IdentityCore/IdentityCore.csproj" + } + } + } + }, + "warningProperties": { + "warnAsError": [ + "NU1605" + ] + }, + "restoreAuditProperties": { + "enableAudit": "true", + "auditLevel": "low", + "auditMode": "direct" + }, + "SdkAnalysisLevel": "10.0.100" + }, + "frameworks": { + "net8.0": { + "targetAlias": "net8.0", + "dependencies": { + "Microsoft.NET.Test.Sdk": { + "target": "Package", + "version": "[17.13.0, )" + }, + "xunit": { + "target": "Package", + "version": "[2.9.3, )" + }, + "xunit.runner.visualstudio": { + "suppressParent": "All", + "target": "Package", + "version": "[3.1.0, )" + } + }, + "imports": [ + "net461", + "net462", + "net47", + "net471", + "net472", + "net48", + "net481" + ], + "assetTargetFallback": true, + "warn": true, + "downloadDependencies": [ + { + "name": "Microsoft.AspNetCore.App.Ref", + "version": "[8.0.29, 8.0.29]" + }, + { + "name": "Microsoft.NETCore.App.Ref", + "version": "[8.0.29, 8.0.29]" + } + ], + "frameworkReferences": { + "Microsoft.NETCore.App": { + "privateAssets": "all" + } + }, + "runtimeIdentifierGraphPath": "/usr/lib/dotnet/sdk/10.0.110/PortableRuntimeIdentifierGraph.json" + } + } + } +} \ No newline at end of file diff --git a/sdk/dotnet/tests/IdentityCore.Tests/obj/project.nuget.cache b/sdk/dotnet/tests/IdentityCore.Tests/obj/project.nuget.cache new file mode 100644 index 00000000..90b5a643 --- /dev/null +++ b/sdk/dotnet/tests/IdentityCore.Tests/obj/project.nuget.cache @@ -0,0 +1,25 @@ +{ + "version": 2, + "dgSpecHash": "2RvgXRH8HXc=", + "success": true, + "projectFilePath": "/home/quarjo/IdentityCore/sdk/dotnet/tests/IdentityCore.Tests/IdentityCore.Tests.csproj", + "expectedPackageFiles": [ + "/home/quarjo/.nuget/packages/microsoft.codecoverage/17.13.0/microsoft.codecoverage.17.13.0.nupkg.sha512", + "/home/quarjo/.nuget/packages/microsoft.net.test.sdk/17.13.0/microsoft.net.test.sdk.17.13.0.nupkg.sha512", + "/home/quarjo/.nuget/packages/microsoft.testplatform.objectmodel/17.13.0/microsoft.testplatform.objectmodel.17.13.0.nupkg.sha512", + "/home/quarjo/.nuget/packages/microsoft.testplatform.testhost/17.13.0/microsoft.testplatform.testhost.17.13.0.nupkg.sha512", + "/home/quarjo/.nuget/packages/newtonsoft.json/13.0.1/newtonsoft.json.13.0.1.nupkg.sha512", + "/home/quarjo/.nuget/packages/system.reflection.metadata/1.6.0/system.reflection.metadata.1.6.0.nupkg.sha512", + "/home/quarjo/.nuget/packages/xunit/2.9.3/xunit.2.9.3.nupkg.sha512", + "/home/quarjo/.nuget/packages/xunit.abstractions/2.0.3/xunit.abstractions.2.0.3.nupkg.sha512", + "/home/quarjo/.nuget/packages/xunit.analyzers/1.18.0/xunit.analyzers.1.18.0.nupkg.sha512", + "/home/quarjo/.nuget/packages/xunit.assert/2.9.3/xunit.assert.2.9.3.nupkg.sha512", + "/home/quarjo/.nuget/packages/xunit.core/2.9.3/xunit.core.2.9.3.nupkg.sha512", + "/home/quarjo/.nuget/packages/xunit.extensibility.core/2.9.3/xunit.extensibility.core.2.9.3.nupkg.sha512", + "/home/quarjo/.nuget/packages/xunit.extensibility.execution/2.9.3/xunit.extensibility.execution.2.9.3.nupkg.sha512", + "/home/quarjo/.nuget/packages/xunit.runner.visualstudio/3.1.0/xunit.runner.visualstudio.3.1.0.nupkg.sha512", + "/home/quarjo/.nuget/packages/microsoft.netcore.app.ref/8.0.29/microsoft.netcore.app.ref.8.0.29.nupkg.sha512", + "/home/quarjo/.nuget/packages/microsoft.aspnetcore.app.ref/8.0.29/microsoft.aspnetcore.app.ref.8.0.29.nupkg.sha512" + ], + "logs": [] +} \ No newline at end of file From 8d8873d56ecfa2f7436102cde1f7f175e073c547 Mon Sep 17 00:00:00 2001 From: quarj0 Date: Thu, 13 Aug 2026 12:26:34 +0000 Subject: [PATCH 3/6] Update assembly informational versions and cache inputs for IdentityCore and IdentityCore.Tests --- .../IdentityCore/obj/Debug/net8.0/IdentityCore.AssemblyInfo.cs | 2 +- .../obj/Debug/net8.0/IdentityCore.AssemblyInfoInputs.cache | 2 +- .../obj/Debug/net8.0/IdentityCore.Tests.AssemblyInfo.cs | 2 +- .../Debug/net8.0/IdentityCore.Tests.AssemblyInfoInputs.cache | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/sdk/dotnet/src/IdentityCore/obj/Debug/net8.0/IdentityCore.AssemblyInfo.cs b/sdk/dotnet/src/IdentityCore/obj/Debug/net8.0/IdentityCore.AssemblyInfo.cs index a697c888..505b2e20 100644 --- a/sdk/dotnet/src/IdentityCore/obj/Debug/net8.0/IdentityCore.AssemblyInfo.cs +++ b/sdk/dotnet/src/IdentityCore/obj/Debug/net8.0/IdentityCore.AssemblyInfo.cs @@ -14,7 +14,7 @@ [assembly: System.Reflection.AssemblyConfigurationAttribute("Debug")] [assembly: System.Reflection.AssemblyDescriptionAttribute("Server-side .NET SDK for the IdentityCore REST API.")] [assembly: System.Reflection.AssemblyFileVersionAttribute("0.2.0.0")] -[assembly: System.Reflection.AssemblyInformationalVersionAttribute("0.2.0+c8ff845e889e48fef121947ce7138c9673a59bc7")] +[assembly: System.Reflection.AssemblyInformationalVersionAttribute("0.2.0+9368889a655b83a65654b13fcb64f054e2c1740b")] [assembly: System.Reflection.AssemblyProductAttribute("IdentityCore")] [assembly: System.Reflection.AssemblyTitleAttribute("IdentityCore")] [assembly: System.Reflection.AssemblyVersionAttribute("0.2.0.0")] diff --git a/sdk/dotnet/src/IdentityCore/obj/Debug/net8.0/IdentityCore.AssemblyInfoInputs.cache b/sdk/dotnet/src/IdentityCore/obj/Debug/net8.0/IdentityCore.AssemblyInfoInputs.cache index d9316e25..424cca08 100644 --- a/sdk/dotnet/src/IdentityCore/obj/Debug/net8.0/IdentityCore.AssemblyInfoInputs.cache +++ b/sdk/dotnet/src/IdentityCore/obj/Debug/net8.0/IdentityCore.AssemblyInfoInputs.cache @@ -1 +1 @@ -434cb40ab41e50b9b3922606684d968bf712aed49c0d25e0f02586fe1176a6fd +05211051a64c8246b58c3cbc858f8efc327240859c1a7f9d2f22ba400b9be6f8 diff --git a/sdk/dotnet/tests/IdentityCore.Tests/obj/Debug/net8.0/IdentityCore.Tests.AssemblyInfo.cs b/sdk/dotnet/tests/IdentityCore.Tests/obj/Debug/net8.0/IdentityCore.Tests.AssemblyInfo.cs index 4e9bf7c2..209deb9c 100644 --- a/sdk/dotnet/tests/IdentityCore.Tests/obj/Debug/net8.0/IdentityCore.Tests.AssemblyInfo.cs +++ b/sdk/dotnet/tests/IdentityCore.Tests/obj/Debug/net8.0/IdentityCore.Tests.AssemblyInfo.cs @@ -13,7 +13,7 @@ [assembly: System.Reflection.AssemblyCompanyAttribute("IdentityCore.Tests")] [assembly: System.Reflection.AssemblyConfigurationAttribute("Debug")] [assembly: System.Reflection.AssemblyFileVersionAttribute("1.0.0.0")] -[assembly: System.Reflection.AssemblyInformationalVersionAttribute("1.0.0+c8ff845e889e48fef121947ce7138c9673a59bc7")] +[assembly: System.Reflection.AssemblyInformationalVersionAttribute("1.0.0+9368889a655b83a65654b13fcb64f054e2c1740b")] [assembly: System.Reflection.AssemblyProductAttribute("IdentityCore.Tests")] [assembly: System.Reflection.AssemblyTitleAttribute("IdentityCore.Tests")] [assembly: System.Reflection.AssemblyVersionAttribute("1.0.0.0")] diff --git a/sdk/dotnet/tests/IdentityCore.Tests/obj/Debug/net8.0/IdentityCore.Tests.AssemblyInfoInputs.cache b/sdk/dotnet/tests/IdentityCore.Tests/obj/Debug/net8.0/IdentityCore.Tests.AssemblyInfoInputs.cache index d3fdef44..1fc38472 100644 --- a/sdk/dotnet/tests/IdentityCore.Tests/obj/Debug/net8.0/IdentityCore.Tests.AssemblyInfoInputs.cache +++ b/sdk/dotnet/tests/IdentityCore.Tests/obj/Debug/net8.0/IdentityCore.Tests.AssemblyInfoInputs.cache @@ -1 +1 @@ -2dc6fad4172923b41d40d92b8e9695b588d7fe443426256042053d13e33f1359 +723add9b929c67e9c1d1f264574d97c0e503a125cc536f09f5dee430db32d559 From 1d978a7d4e368f59a9d516ad09a0ff8cb1a4ad45 Mon Sep 17 00:00:00 2001 From: quarj0 Date: Thu, 13 Aug 2026 12:36:09 +0000 Subject: [PATCH 4/6] Update assembly informational versions for IdentityCore and IdentityCore.Tests --- .../IdentityCore/obj/Debug/net8.0/IdentityCore.AssemblyInfo.cs | 2 +- .../obj/Debug/net8.0/IdentityCore.AssemblyInfoInputs.cache | 2 +- .../obj/Debug/net8.0/IdentityCore.Tests.AssemblyInfo.cs | 2 +- .../Debug/net8.0/IdentityCore.Tests.AssemblyInfoInputs.cache | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/sdk/dotnet/src/IdentityCore/obj/Debug/net8.0/IdentityCore.AssemblyInfo.cs b/sdk/dotnet/src/IdentityCore/obj/Debug/net8.0/IdentityCore.AssemblyInfo.cs index 505b2e20..c8a6f69e 100644 --- a/sdk/dotnet/src/IdentityCore/obj/Debug/net8.0/IdentityCore.AssemblyInfo.cs +++ b/sdk/dotnet/src/IdentityCore/obj/Debug/net8.0/IdentityCore.AssemblyInfo.cs @@ -14,7 +14,7 @@ [assembly: System.Reflection.AssemblyConfigurationAttribute("Debug")] [assembly: System.Reflection.AssemblyDescriptionAttribute("Server-side .NET SDK for the IdentityCore REST API.")] [assembly: System.Reflection.AssemblyFileVersionAttribute("0.2.0.0")] -[assembly: System.Reflection.AssemblyInformationalVersionAttribute("0.2.0+9368889a655b83a65654b13fcb64f054e2c1740b")] +[assembly: System.Reflection.AssemblyInformationalVersionAttribute("0.2.0+8d8873d56ecfa2f7436102cde1f7f175e073c547")] [assembly: System.Reflection.AssemblyProductAttribute("IdentityCore")] [assembly: System.Reflection.AssemblyTitleAttribute("IdentityCore")] [assembly: System.Reflection.AssemblyVersionAttribute("0.2.0.0")] diff --git a/sdk/dotnet/src/IdentityCore/obj/Debug/net8.0/IdentityCore.AssemblyInfoInputs.cache b/sdk/dotnet/src/IdentityCore/obj/Debug/net8.0/IdentityCore.AssemblyInfoInputs.cache index 424cca08..628eebc9 100644 --- a/sdk/dotnet/src/IdentityCore/obj/Debug/net8.0/IdentityCore.AssemblyInfoInputs.cache +++ b/sdk/dotnet/src/IdentityCore/obj/Debug/net8.0/IdentityCore.AssemblyInfoInputs.cache @@ -1 +1 @@ -05211051a64c8246b58c3cbc858f8efc327240859c1a7f9d2f22ba400b9be6f8 +5398e4dd28fc14069fb3a999c36058e6656bc63d493deb1427e2c203cb87a065 diff --git a/sdk/dotnet/tests/IdentityCore.Tests/obj/Debug/net8.0/IdentityCore.Tests.AssemblyInfo.cs b/sdk/dotnet/tests/IdentityCore.Tests/obj/Debug/net8.0/IdentityCore.Tests.AssemblyInfo.cs index 209deb9c..2bfdaccd 100644 --- a/sdk/dotnet/tests/IdentityCore.Tests/obj/Debug/net8.0/IdentityCore.Tests.AssemblyInfo.cs +++ b/sdk/dotnet/tests/IdentityCore.Tests/obj/Debug/net8.0/IdentityCore.Tests.AssemblyInfo.cs @@ -13,7 +13,7 @@ [assembly: System.Reflection.AssemblyCompanyAttribute("IdentityCore.Tests")] [assembly: System.Reflection.AssemblyConfigurationAttribute("Debug")] [assembly: System.Reflection.AssemblyFileVersionAttribute("1.0.0.0")] -[assembly: System.Reflection.AssemblyInformationalVersionAttribute("1.0.0+9368889a655b83a65654b13fcb64f054e2c1740b")] +[assembly: System.Reflection.AssemblyInformationalVersionAttribute("1.0.0+8d8873d56ecfa2f7436102cde1f7f175e073c547")] [assembly: System.Reflection.AssemblyProductAttribute("IdentityCore.Tests")] [assembly: System.Reflection.AssemblyTitleAttribute("IdentityCore.Tests")] [assembly: System.Reflection.AssemblyVersionAttribute("1.0.0.0")] diff --git a/sdk/dotnet/tests/IdentityCore.Tests/obj/Debug/net8.0/IdentityCore.Tests.AssemblyInfoInputs.cache b/sdk/dotnet/tests/IdentityCore.Tests/obj/Debug/net8.0/IdentityCore.Tests.AssemblyInfoInputs.cache index 1fc38472..38fd13cc 100644 --- a/sdk/dotnet/tests/IdentityCore.Tests/obj/Debug/net8.0/IdentityCore.Tests.AssemblyInfoInputs.cache +++ b/sdk/dotnet/tests/IdentityCore.Tests/obj/Debug/net8.0/IdentityCore.Tests.AssemblyInfoInputs.cache @@ -1 +1 @@ -723add9b929c67e9c1d1f264574d97c0e503a125cc536f09f5dee430db32d559 +80f1c659ff3a6809236e39e28b090b2b570e024dbdc3ef9da2119168d9d2f0f9 From b6990f9b690e23259906572a0f57ebabba89345c Mon Sep 17 00:00:00 2001 From: quarj0 Date: Thu, 13 Aug 2026 12:40:04 +0000 Subject: [PATCH 5/6] Update assembly informational versions for IdentityCore and IdentityCore.Tests --- .../IdentityCore/obj/Debug/net8.0/IdentityCore.AssemblyInfo.cs | 2 +- .../obj/Debug/net8.0/IdentityCore.AssemblyInfoInputs.cache | 2 +- .../obj/Debug/net8.0/IdentityCore.Tests.AssemblyInfo.cs | 2 +- .../Debug/net8.0/IdentityCore.Tests.AssemblyInfoInputs.cache | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/sdk/dotnet/src/IdentityCore/obj/Debug/net8.0/IdentityCore.AssemblyInfo.cs b/sdk/dotnet/src/IdentityCore/obj/Debug/net8.0/IdentityCore.AssemblyInfo.cs index c8a6f69e..302f4b16 100644 --- a/sdk/dotnet/src/IdentityCore/obj/Debug/net8.0/IdentityCore.AssemblyInfo.cs +++ b/sdk/dotnet/src/IdentityCore/obj/Debug/net8.0/IdentityCore.AssemblyInfo.cs @@ -14,7 +14,7 @@ [assembly: System.Reflection.AssemblyConfigurationAttribute("Debug")] [assembly: System.Reflection.AssemblyDescriptionAttribute("Server-side .NET SDK for the IdentityCore REST API.")] [assembly: System.Reflection.AssemblyFileVersionAttribute("0.2.0.0")] -[assembly: System.Reflection.AssemblyInformationalVersionAttribute("0.2.0+8d8873d56ecfa2f7436102cde1f7f175e073c547")] +[assembly: System.Reflection.AssemblyInformationalVersionAttribute("0.2.0+1d978a7d4e368f59a9d516ad09a0ff8cb1a4ad45")] [assembly: System.Reflection.AssemblyProductAttribute("IdentityCore")] [assembly: System.Reflection.AssemblyTitleAttribute("IdentityCore")] [assembly: System.Reflection.AssemblyVersionAttribute("0.2.0.0")] diff --git a/sdk/dotnet/src/IdentityCore/obj/Debug/net8.0/IdentityCore.AssemblyInfoInputs.cache b/sdk/dotnet/src/IdentityCore/obj/Debug/net8.0/IdentityCore.AssemblyInfoInputs.cache index 628eebc9..e8b07fcf 100644 --- a/sdk/dotnet/src/IdentityCore/obj/Debug/net8.0/IdentityCore.AssemblyInfoInputs.cache +++ b/sdk/dotnet/src/IdentityCore/obj/Debug/net8.0/IdentityCore.AssemblyInfoInputs.cache @@ -1 +1 @@ -5398e4dd28fc14069fb3a999c36058e6656bc63d493deb1427e2c203cb87a065 +36bef0f3dbe058e5b24a7540e2f113b231fbefbdf0223e4573fafee512e4552b diff --git a/sdk/dotnet/tests/IdentityCore.Tests/obj/Debug/net8.0/IdentityCore.Tests.AssemblyInfo.cs b/sdk/dotnet/tests/IdentityCore.Tests/obj/Debug/net8.0/IdentityCore.Tests.AssemblyInfo.cs index 2bfdaccd..7bb64c91 100644 --- a/sdk/dotnet/tests/IdentityCore.Tests/obj/Debug/net8.0/IdentityCore.Tests.AssemblyInfo.cs +++ b/sdk/dotnet/tests/IdentityCore.Tests/obj/Debug/net8.0/IdentityCore.Tests.AssemblyInfo.cs @@ -13,7 +13,7 @@ [assembly: System.Reflection.AssemblyCompanyAttribute("IdentityCore.Tests")] [assembly: System.Reflection.AssemblyConfigurationAttribute("Debug")] [assembly: System.Reflection.AssemblyFileVersionAttribute("1.0.0.0")] -[assembly: System.Reflection.AssemblyInformationalVersionAttribute("1.0.0+8d8873d56ecfa2f7436102cde1f7f175e073c547")] +[assembly: System.Reflection.AssemblyInformationalVersionAttribute("1.0.0+1d978a7d4e368f59a9d516ad09a0ff8cb1a4ad45")] [assembly: System.Reflection.AssemblyProductAttribute("IdentityCore.Tests")] [assembly: System.Reflection.AssemblyTitleAttribute("IdentityCore.Tests")] [assembly: System.Reflection.AssemblyVersionAttribute("1.0.0.0")] diff --git a/sdk/dotnet/tests/IdentityCore.Tests/obj/Debug/net8.0/IdentityCore.Tests.AssemblyInfoInputs.cache b/sdk/dotnet/tests/IdentityCore.Tests/obj/Debug/net8.0/IdentityCore.Tests.AssemblyInfoInputs.cache index 38fd13cc..f2c7a897 100644 --- a/sdk/dotnet/tests/IdentityCore.Tests/obj/Debug/net8.0/IdentityCore.Tests.AssemblyInfoInputs.cache +++ b/sdk/dotnet/tests/IdentityCore.Tests/obj/Debug/net8.0/IdentityCore.Tests.AssemblyInfoInputs.cache @@ -1 +1 @@ -80f1c659ff3a6809236e39e28b090b2b570e024dbdc3ef9da2119168d9d2f0f9 +028c661352dff2b730c947216f80910343d71bea93f0fe018e3a3faf03f3d712 From 19d1857834be77e8f1626083c362b077f4b31eff Mon Sep 17 00:00:00 2001 From: quarj0 Date: Thu, 13 Aug 2026 12:43:16 +0000 Subject: [PATCH 6/6] Add Java SDK build artifacts to .gitignore --- .gitignore | 3 +++ 1 file changed, 3 insertions(+) diff --git a/.gitignore b/.gitignore index 243c7ca1..818f5d58 100644 --- a/.gitignore +++ b/.gitignore @@ -56,3 +56,6 @@ Thumbs.db celerybeat-schedule *.sqlite3 *.db +sdk/java/target/ +bin/ +obj/ \ No newline at end of file