From 68db8eb51f2b608dfacdd3264f4e173b8174424e Mon Sep 17 00:00:00 2001 From: christina-gagnon-sp <97126282+christina-gagnon-sp@users.noreply.github.com> Date: Tue, 21 May 2024 14:39:02 -0500 Subject: [PATCH 01/74] Add note about clientMetadata --- .../event-triggers/available/access-request-decision.md | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/docs/extensibility/event-triggers/available/access-request-decision.md b/docs/extensibility/event-triggers/available/access-request-decision.md index f098dc7e7..fa9acc3bb 100644 --- a/docs/extensibility/event-triggers/available/access-request-decision.md +++ b/docs/extensibility/event-triggers/available/access-request-decision.md @@ -77,6 +77,11 @@ This is an example input from this trigger: } } ``` +:::info + +```clientMetadata``` is determined by the user that invoked ```create-access-request``` and can contain any value at runtime that was specified in the access request. + +::: ## Additional Information and Links From 612003aa88cd60e3c9fa5b642b21f5f1d26472bb Mon Sep 17 00:00:00 2001 From: GitHub Action Bot Date: Wed, 22 May 2024 18:59:18 +0000 Subject: [PATCH 02/74] Automated commit by github action: 9196908503 --- static/api-specs/idn/beta/schemas/CampaignTemplate.yaml | 1 + static/api-specs/idn/v3/schemas/CampaignTemplate.yaml | 1 + 2 files changed, 2 insertions(+) diff --git a/static/api-specs/idn/beta/schemas/CampaignTemplate.yaml b/static/api-specs/idn/beta/schemas/CampaignTemplate.yaml index 75a5c544c..d862918c3 100644 --- a/static/api-specs/idn/beta/schemas/CampaignTemplate.yaml +++ b/static/api-specs/idn/beta/schemas/CampaignTemplate.yaml @@ -33,6 +33,7 @@ properties: default: false ownerRef: type : object + readOnly: true description: >- The owner of this template, and the owner of campaigns generated from this template via a schedule. This field is automatically populated at creation time with the current user. diff --git a/static/api-specs/idn/v3/schemas/CampaignTemplate.yaml b/static/api-specs/idn/v3/schemas/CampaignTemplate.yaml index fc61ef96c..96a77b11e 100644 --- a/static/api-specs/idn/v3/schemas/CampaignTemplate.yaml +++ b/static/api-specs/idn/v3/schemas/CampaignTemplate.yaml @@ -33,6 +33,7 @@ properties: default: false ownerRef: type : object + readOnly: true description: >- The owner of this template, and the owner of campaigns generated from this template via a schedule. This field is automatically populated at creation time with the current user. From 0ffc2edb309b203ea3350b6b0e960a7f883ee74e Mon Sep 17 00:00:00 2001 From: GitHub Action Bot Date: Wed, 22 May 2024 23:04:12 +0000 Subject: [PATCH 03/74] Automated commit by github action: 9199518214 --- .../idn/beta/paths/load-accounts.yaml | 1 + .../paths/load-uncorrelated-accounts.yaml | 45 +++++ .../schemas/LoadUncorrelatedAccountsTask.yaml | 186 ++++++++++++++++++ static/api-specs/idn/sailpoint-api.beta.yaml | 2 + 4 files changed, 234 insertions(+) create mode 100644 static/api-specs/idn/beta/paths/load-uncorrelated-accounts.yaml create mode 100644 static/api-specs/idn/beta/schemas/LoadUncorrelatedAccountsTask.yaml diff --git a/static/api-specs/idn/beta/paths/load-accounts.yaml b/static/api-specs/idn/beta/paths/load-accounts.yaml index 973b5985e..f506c9a7e 100644 --- a/static/api-specs/idn/beta/paths/load-accounts.yaml +++ b/static/api-specs/idn/beta/paths/load-accounts.yaml @@ -53,3 +53,4 @@ post: $ref: '../../v3/responses/429.yaml' "500": $ref: "../../v3/responses/500.yaml" + diff --git a/static/api-specs/idn/beta/paths/load-uncorrelated-accounts.yaml b/static/api-specs/idn/beta/paths/load-uncorrelated-accounts.yaml new file mode 100644 index 000000000..b47669803 --- /dev/null +++ b/static/api-specs/idn/beta/paths/load-uncorrelated-accounts.yaml @@ -0,0 +1,45 @@ +post: + tags: + - Sources > Uncorrelated Accounts + summary: Process Uncorrelated Accounts + operationId: importUncorrelatedAccounts + description: >- + File is required for upload. You will also need to set the Content-Type header to `multipart/form-data` + security: + - UserContextAuth: [ idn:sources:manage ] + parameters: + - in: path + name: id + schema: + type: string + required: true + description: Source Id + example: 75dbec1ebe154d5785da27b95e1dd5d7 + requestBody: + content: + multipart/form-data: + schema: + type: object + properties: + file: + type: string + format: binary + responses: + "202": + description: Uncorrelated Accounts Task + content: + application/json: + schema: + $ref: "../schemas/LoadUncorrelatedAccountsTask.yaml" + "400": + $ref: "../../v3/responses/400.yaml" + "401": + $ref: "../../v3/responses/401.yaml" + '403': + $ref: '../../v3/responses/403.yaml' + '429': + $ref: '../../v3/responses/429.yaml' + "500": + $ref: "../../v3/responses/500.yaml" + + diff --git a/static/api-specs/idn/beta/schemas/LoadUncorrelatedAccountsTask.yaml b/static/api-specs/idn/beta/schemas/LoadUncorrelatedAccountsTask.yaml new file mode 100644 index 000000000..87b398074 --- /dev/null +++ b/static/api-specs/idn/beta/schemas/LoadUncorrelatedAccountsTask.yaml @@ -0,0 +1,186 @@ +type: object +properties: + success: + type: boolean + description: The status of the result + default: 'true' + example: 'true' + task: + type: object + properties: + id: + description: System-generated unique ID of the task this taskStatus represents + type: string + example: 90b83a6bb737489494794f84cd3a51e6 + type: + description: Type of task this task represents + type: string + example: QUARTZ + name: + description: The name of uncorrelated accounts process + type: string + example: Cloud Process Uncorrelated Accounts + description: + description: The description of the task + type: string + example: Processes uncorrelated accounts for the specified application. + launcher: + description: The user who initiated the task + type: string + example: John Doe + created: + type: string + description: >- + The Task creation date + format: date-time + example: '2020-09-07T42:14:00.364Z' + launched: + type: string + nullable: true + format: date-time + description: >- + The task start date + example: '2020-09-07T42:14:00.521Z' + completed: + type: string + nullable: true + format: date-time + description: >- + The task completion date + example: '2020-09-07T42:14:01.137Z' + completionStatus: + type: string + nullable: true + enum: + - SUCCESS + - WARNING + - ERROR + - TERMINATED + - TEMP_ERROR + description: >- + Task completion status. + example: Success + parentName: + type: string + nullable: true + description: >- + Name of the parent task if exists. + example: Audit Report + messages: + type: array + description: >- + List of the messages dedicated to the report. + From task definition perspective here usually should be warnings or errors. + example: [] + items: + type: object + properties: + type: + type: string + description: >- + Type of the message. + enum: + - INFO + - WARN + - ERROR + example: WARN + error: + type: boolean + default: false + description: >- + Flag whether message is an error. + example: false + warning: + type: boolean + default: false + description: >- + Flag whether message is a warning. + example: true + key: + type: string + description: >- + Message string identifier. + example: "This correlation failed because the currently running correlation must complete before the next one can start." + localizedText: + type: string + description: >- + Message context with the locale based language. + example: "This correlation failed because the currently running correlation must complete before the next one can start." + progress: + type: string + nullable: true + description: >- + Current task state. + example: Initializing... + attributes: + type: object + description: >- + Extra attributes map(dictionary) for the task. + properties: + qpocJobId: + description: The id of qpoc job + type: string + example: '5d303d46-fc51-48cd-9c6d-4e211e3ab63c' + taskStartDelay: + description: the task start delay value + example: '' + returns: + description: Return values from the task + type: object + example: + - displayLabel: "TASK_OUT_ACCOUNT_CORRELATION_APPLICATIONS" + attributeName: "applications" + - displayLabel: "TASK_OUT_ACCOUNT_CORRELATION_TOTAL" + attributeName: "total" + - displayLabel: "TASK_OUT_ACCOUNT_CORRELATION_IGNORED" + attributeName: "correlationFailures" + - displayLabel: "TASK_OUT_ACCOUNT_CORRELATION_FAILURES" + attributeName: "ignored" + - displayLabel: "TASK_OUT_UNCHANGED_ACCOUNTS" + attributeName: "optimized" + - displayLabel: "TASK_OUT_ACCOUNT_CORRELATION__CREATED" + attributeName: "created" + - displayLabel: "TASK_OUT_ACCOUNT_CORRELATION_UPDATED" + attributeName: "updated" + - displayLabel: "TASK_OUT_ACCOUNT_CORRELATION_DELETED" + attributeName: "deleted" + - displayLabel: "TASK_OUT_ACCOUNT_CORRELATION_MANAGER_CHANGES" + attributeName: "managerChanges" + - displayLabel: "TASK_OUT_ACCOUNT_CORRELATION_BUSINESS_ROLE_CHANGES" + attributeName: "detectedRoleChanges" + - displayLabel: "TASK_OUT_ACCOUNT_CORRELATION_EXCEPTION_CHANGES" + attributeName: "exceptionChanges" + - displayLabel: "TASK_OUT_ACCOUNT_CORRELATION_POLICIES" + attributeName: "policies" + - displayLabel: "TASK_OUT_ACCOUNT_CORRELATION_POLICY_VIOLATIONS" + attributeName: "policyViolations" + - displayLabel: "TASK_OUT_ACCOUNT_CORRELATION_POLICY_NOTIFICATIONS" + attributeName: "policyNotifications" + - displayLabel: "TASK_OUT_ACCOUNT_CORRELATION_SCORES_CHANGED" + attributeName: "scoresChanged" + - displayLabel: "TASK_OUT_ACCOUNT_CORRELATION_SNAPSHOTS_CREATED" + attributeName: "snapshotsCreated" + - displayLabel: "TASK_OUT_ACCOUNT_CORRELATION_SCOPES_CREATED" + attributeName: "scopesCreated" + - displayLabel: "TASK_OUT_ACCOUNT_CORRELATION_SCOPES_CORRELATED" + attributeName: "scopesCorrelated" + - displayLabel: "TASK_OUT_ACCOUNT_CORRELATION_SCOPES_SELECTED" + attributeName: "scopesSelected" + - displayLabel: "TASK_OUT_ACCOUNT_CORRELATION_SCOPES_DORMANT" + attributeName: "scopesDormant" + - displayLabel: "TASK_OUT_ACCOUNT_CORRELATION_UNSCOPED_IDENTITIES" + attributeName: "unscopedIdentities" + - displayLabel: "TASK_OUT_ACCOUNT_CORRELATION_CERTIFICATIONS_CREATED" + attributeName: "certificationsCreated" + - displayLabel: "TASK_OUT_ACCOUNT_CORRELATION_CERTIFICATIONS_DELETED" + attributeName: "certificationsDeleted" + - displayLabel: "TASK_OUT_ACCOUNT_CORRELATION_APPLICATIONS_GENERATED" + attributeName: "applicationsGenerated" + - displayLabel: "TASK_OUT_ACCOUNT_CORRELATION_MANAGED_ATTRIBUTES_PROMOTED" + attributeName: "managedAttributesCreated" + - displayLabel: "TASK_OUT_ACCOUNT_CORRELATION_MANAGED_ATTRIBUTES_PROMOTED_BY_APP" + attributeName: "managedAttributesCreatedByApplication" + - displayLabel: "TASK_OUT_ACCOUNT_CORRELATION_IDENTITYENTITLEMENTS_CREATED" + attributeName: "identityEntitlementsCreated" + - displayLabel: "TASK_OUT_ACCOUNT_CORRELATION_GROUPS_CREATED" + attributeName: "groupsCreated" \ No newline at end of file diff --git a/static/api-specs/idn/sailpoint-api.beta.yaml b/static/api-specs/idn/sailpoint-api.beta.yaml index 7c897f2df..5c486eb08 100644 --- a/static/api-specs/idn/sailpoint-api.beta.yaml +++ b/static/api-specs/idn/sailpoint-api.beta.yaml @@ -1640,6 +1640,8 @@ paths: $ref: './beta/paths/sources-entitlement-request-config.yaml' /sources/{id}/load-accounts: $ref: './beta/paths/load-accounts.yaml' + /sources/{id}/load-uncorrelated-accounts: + $ref: './beta/paths/load-uncorrelated-accounts.yaml' /task-status/{id}: $ref: "./beta/paths/task-status.yaml" /task-status: From dcb587b0f77c5b7ae88189a603750d67643121eb Mon Sep 17 00:00:00 2001 From: Colin McKibben <75683148+colin-mckibben-sp@users.noreply.github.com> Date: Thu, 23 May 2024 10:43:36 -0400 Subject: [PATCH 04/74] Update standard-collection-parameters.md Add additional tags to standard collection parameters to aid in search --- docs/api/standard-collection-parameters.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/api/standard-collection-parameters.md b/docs/api/standard-collection-parameters.md index 20eb3b267..047680809 100644 --- a/docs/api/standard-collection-parameters.md +++ b/docs/api/standard-collection-parameters.md @@ -5,9 +5,9 @@ pagination_label: Standard Collection Parameters sidebar_label: Standard Collection Parameters sidebar_position: 5 sidebar_class_name: standardCollectionParameters -keywords: ['standard collection parameters'] +keywords: ['standard collection parameters','filter','pagination','paginate,'sort'] description: ISC API pagination, filtering, and sorting. -tags: ['Standard Collection Parameters'] +tags: ['Standard Collection Parameters','Filter','Sort','Pagination'] --- Many endpoints in the Identity Security Cloud API support a generic syntax for paginating, filtering and sorting the results. A collection endpoint has the following characteristics: From c2472e830295a09dc4f5f18dcd86350fda859acc Mon Sep 17 00:00:00 2001 From: GitHub Action Bot Date: Thu, 23 May 2024 14:45:33 +0000 Subject: [PATCH 05/74] Automated commit by github action: 9210107494 --- static/api-specs/idn/beta/paths/load-uncorrelated-accounts.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/static/api-specs/idn/beta/paths/load-uncorrelated-accounts.yaml b/static/api-specs/idn/beta/paths/load-uncorrelated-accounts.yaml index b47669803..be3a3c46f 100644 --- a/static/api-specs/idn/beta/paths/load-uncorrelated-accounts.yaml +++ b/static/api-specs/idn/beta/paths/load-uncorrelated-accounts.yaml @@ -1,6 +1,6 @@ post: tags: - - Sources > Uncorrelated Accounts + - Sources summary: Process Uncorrelated Accounts operationId: importUncorrelatedAccounts description: >- From 985be695f825e0fb95e4b81d84290bb2ac5ab333 Mon Sep 17 00:00:00 2001 From: Colin McKibben <75683148+colin-mckibben-sp@users.noreply.github.com> Date: Thu, 23 May 2024 10:53:44 -0400 Subject: [PATCH 06/74] Update standard-collection-parameters.md Fixed typo --- docs/api/standard-collection-parameters.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/api/standard-collection-parameters.md b/docs/api/standard-collection-parameters.md index 047680809..7c6e8e4a3 100644 --- a/docs/api/standard-collection-parameters.md +++ b/docs/api/standard-collection-parameters.md @@ -5,7 +5,7 @@ pagination_label: Standard Collection Parameters sidebar_label: Standard Collection Parameters sidebar_position: 5 sidebar_class_name: standardCollectionParameters -keywords: ['standard collection parameters','filter','pagination','paginate,'sort'] +keywords: ['standard collection parameters','filter','pagination','paginate','sort'] description: ISC API pagination, filtering, and sorting. tags: ['Standard Collection Parameters','Filter','Sort','Pagination'] --- From aedc6e0bf85a60d8cda7b57992a007ae54b513a0 Mon Sep 17 00:00:00 2001 From: GitHub Action Bot Date: Thu, 23 May 2024 17:57:25 +0000 Subject: [PATCH 07/74] Automated commit by github action: 9212660800 --- static/api-specs/idn/beta/paths/icon.yaml | 4 ++-- .../idn/beta/paths/ui-metadata/tenant-ui-metadata.yaml | 4 ++-- static/api-specs/idn/v3/paths/branding.yaml | 6 +++--- static/api-specs/idn/v3/paths/brandings.yaml | 4 ++-- 4 files changed, 9 insertions(+), 9 deletions(-) diff --git a/static/api-specs/idn/beta/paths/icon.yaml b/static/api-specs/idn/beta/paths/icon.yaml index f2f3e1848..eb9330bed 100644 --- a/static/api-specs/idn/beta/paths/icon.yaml +++ b/static/api-specs/idn/beta/paths/icon.yaml @@ -36,7 +36,7 @@ put: description: file with icon. Allowed mime-types ['image/png', 'image/jpeg'] example: \x00\x00\x00\x02 security: - - UserContextAuth: [ ] + - UserContextAuth: [idn:icons:manage] responses: '200': description: Icon updated @@ -85,7 +85,7 @@ delete: description: Object id. example: a291e870-48c3-4953-b656-fb5ce2a93169 security: - - UserContextAuth: [ ] + - UserContextAuth: [idn:icons:manage] responses: '204': $ref: '../../v3/responses/204.yaml' diff --git a/static/api-specs/idn/beta/paths/ui-metadata/tenant-ui-metadata.yaml b/static/api-specs/idn/beta/paths/ui-metadata/tenant-ui-metadata.yaml index fc86dfad3..6155208f6 100644 --- a/static/api-specs/idn/beta/paths/ui-metadata/tenant-ui-metadata.yaml +++ b/static/api-specs/idn/beta/paths/ui-metadata/tenant-ui-metadata.yaml @@ -8,7 +8,7 @@ get: A token with ORG_ADMIN authority is required to call this API. security: - - UserContextAuth: [ ] + - UserContextAuth: [idn:ui-access-metadata-page:read] responses: '200': description: A tenant UI metadata object @@ -44,7 +44,7 @@ put: schema: $ref: "../../schemas/ui-metadata/TenantUiMetadataItemUpdateRequest.yaml" security: - - UserContextAuth: [ ] + - UserContextAuth: [idn:ui-access-metadata-page:manage] responses: '200': description: A tenant UI metadata object diff --git a/static/api-specs/idn/v3/paths/branding.yaml b/static/api-specs/idn/v3/paths/branding.yaml index e7a23bfa1..8ed1e15be 100644 --- a/static/api-specs/idn/v3/paths/branding.yaml +++ b/static/api-specs/idn/v3/paths/branding.yaml @@ -8,7 +8,7 @@ get: A token with API, ORG_ADMIN authority is required to call this API. security: - - UserContextAuth: [ ] + - UserContextAuth: [idn:branding:read] parameters: - in: path name: name @@ -60,7 +60,7 @@ put: schema: $ref: '../schemas/BrandingItemCreate.yaml' security: - - UserContextAuth: [ ] + - UserContextAuth: [idn:branding:manage] responses: '200': description: Branding item updated @@ -90,7 +90,7 @@ delete: A token with API, ORG_ADMIN authority is required to call this API. security: - - UserContextAuth: [ ] + - UserContextAuth: [idn:branding:manage] parameters: - in: path name: name diff --git a/static/api-specs/idn/v3/paths/brandings.yaml b/static/api-specs/idn/v3/paths/brandings.yaml index 41d19b4c5..6e701f2fe 100644 --- a/static/api-specs/idn/v3/paths/brandings.yaml +++ b/static/api-specs/idn/v3/paths/brandings.yaml @@ -9,7 +9,7 @@ get: A token with API, ORG_ADMIN authority is required to call this API. security: - - UserContextAuth: [ ] + - UserContextAuth: [idn:branding:read] responses: '200': description: A list of branding items. @@ -45,7 +45,7 @@ post: schema: $ref: '../schemas/BrandingItemCreate.yaml' security: - - UserContextAuth: [ ] + - UserContextAuth: [idn:branding:manage] responses: '201': description: Branding item created From a24bc2622796bbdcc57860e5030daee747bf1bc3 Mon Sep 17 00:00:00 2001 From: GitHub Action Bot Date: Thu, 23 May 2024 19:04:33 +0000 Subject: [PATCH 08/74] Automated commit by github action: 9213467416 --- .../api-specs/idn/beta/paths/task-status.yaml | 28 +++++++++++++------ static/api-specs/idn/v3/paths/account.yaml | 2 +- .../idn/v3/paths/managed-client.yaml | 18 ++++++------ .../idn/v3/paths/managed-cluster.yaml | 18 ++++++------ 4 files changed, 40 insertions(+), 26 deletions(-) diff --git a/static/api-specs/idn/beta/paths/task-status.yaml b/static/api-specs/idn/beta/paths/task-status.yaml index 15f8f2f0d..b94b54d16 100644 --- a/static/api-specs/idn/beta/paths/task-status.yaml +++ b/static/api-specs/idn/beta/paths/task-status.yaml @@ -10,13 +10,13 @@ get: parameters: - name: id in: path - description: Task ID of the TaskStatus to get + description: Task ID. required: true + example: 00eebcf881994e419d72e757fd30dc0e style: simple explode: false schema: type: string - example: anId responses: "200": description: Responds with a TaskStatus for the task with the given task ID. @@ -39,30 +39,40 @@ get: security: - UserContextAuth: [idn:task-management:read] patch: + operationId: updateTaskStatus tags: - Task Management summary: Update task status by ID - description: Update a current TaskStatus for a task by task ID. - operationId: updateTaskStatus + description: Update a current task status by task ID. Use this API to clear a pending task by updating the completionStatus and completed attributes. parameters: - name: id in: path - description: Task ID of the task whose TaskStatus to update + description: Task ID. + example: 00eebcf881994e419d72e757fd30dc0e required: true style: simple explode: false schema: type: string - example: anId requestBody: + required: true + description: The JSONPatch payload used to update the object. content: application/json-patch+json: schema: - $ref: '../schemas/JsonPatch.yaml' - required: true + type: array + items: + $ref: "../schemas/JsonPatchOperation.yaml" + example: + - op: replace + path: /completionStatus + value: Error + - op: replace + path: /completed + value: 2024-05-17T19:33:16.470Z responses: "200": - description: Responds with the updated TaskStatus for the task with the given task ID. + description: This response indicates the PATCH operation succeeded, and the API returns the updated task object. content: application/json: schema: diff --git a/static/api-specs/idn/v3/paths/account.yaml b/static/api-specs/idn/v3/paths/account.yaml index f517f1d36..3d9da1488 100644 --- a/static/api-specs/idn/v3/paths/account.yaml +++ b/static/api-specs/idn/v3/paths/account.yaml @@ -73,7 +73,7 @@ patch: type: array items: $ref: "../schemas/JsonPatchOperation.yaml" - example: + examples: Uncorrelate account: description: Remove account from Identity value: diff --git a/static/api-specs/idn/v3/paths/managed-client.yaml b/static/api-specs/idn/v3/paths/managed-client.yaml index d3a8b7011..f12212e17 100644 --- a/static/api-specs/idn/v3/paths/managed-client.yaml +++ b/static/api-specs/idn/v3/paths/managed-client.yaml @@ -8,11 +8,11 @@ get: parameters: - name: id in: path - description: The Managed Client ID + description: Managed Client ID. required: true + example: 4440278c-0ce2-41ee-a0a9-f5cfd5e8d3b7 schema: type: string - example: aClientId responses: "200": description: Responds with a Managed Client @@ -47,15 +47,17 @@ patch: schema: type: string required: true - description: The Managed Client ID - example: aClientId + description: Managed Client ID. + example: 4440278c-0ce2-41ee-a0a9-f5cfd5e8d3b7 requestBody: required: true - description: The JSONPatch payload used to update the schema. + description: The JSONPatch payload used to update the object. content: application/json-patch+json: schema: - $ref: '../schemas/JsonPatch.yaml' + type: array + items: + $ref: "../schemas/JsonPatchOperation.yaml" responses: "200": description: The updated Managed Client @@ -90,8 +92,8 @@ delete: schema: type: string required: true - description: The Managed Client ID - example: aClientId + description: Managed Client ID. + example: 4440278c-0ce2-41ee-a0a9-f5cfd5e8d3b7 responses: '204': $ref: '../../v3/responses/204.yaml' diff --git a/static/api-specs/idn/v3/paths/managed-cluster.yaml b/static/api-specs/idn/v3/paths/managed-cluster.yaml index 973b37627..e2e92be84 100644 --- a/static/api-specs/idn/v3/paths/managed-cluster.yaml +++ b/static/api-specs/idn/v3/paths/managed-cluster.yaml @@ -7,13 +7,13 @@ get: parameters: - name: id in: path - description: ID of the ManagedCluster to get + description: ManagedCluster ID. required: true + example: 2c9180897de347a2017de8859e8c5039 style: simple explode: false schema: type: string - example: aClusterId responses: "200": description: Responds with ManagedCluster having the given ID. @@ -48,15 +48,17 @@ patch: schema: type: string required: true - description: The Managed Cluster ID - example: aClusterId + description: Managed Cluster ID. + example: 2c9180897de347a2017de8859e8c5039 requestBody: required: true - description: The JSONPatch payload used to update the schema. + description: The JSONPatch payload used to update the object. content: application/json-patch+json: schema: - $ref: '../schemas/JsonPatch.yaml' + type: array + items: + $ref: "../schemas/JsonPatchOperation.yaml" responses: "200": description: The updated Managed Cluster @@ -91,8 +93,8 @@ delete: schema: type: string required: true - description: The Managed Cluster ID - example: aClusterId + description: Managed Cluster ID. + example: 2c9180897de347a2017de8859e8c5039 - in: query name: removeClients schema: From b689c83e071f3f0689616d4825f8f7a3eb7c5f1d Mon Sep 17 00:00:00 2001 From: GitHub Action Bot Date: Thu, 23 May 2024 19:47:44 +0000 Subject: [PATCH 09/74] Automated commit by github action: 9213962035 --- static/api-specs/idn/beta/paths/load-accounts.yaml | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/static/api-specs/idn/beta/paths/load-accounts.yaml b/static/api-specs/idn/beta/paths/load-accounts.yaml index f506c9a7e..5349ce8a3 100644 --- a/static/api-specs/idn/beta/paths/load-accounts.yaml +++ b/static/api-specs/idn/beta/paths/load-accounts.yaml @@ -32,9 +32,8 @@ post: format: binary description: The CSV file containing the source accounts to aggregate. disableOptimization: - type: boolean - example: true - default: false + type: string + example: "true" description: Use this flag to reprocess every account whether or not the data has changed. responses: "202": From d5ef4fd203d8cb366bcf0edab7e63c1bb3cfe867 Mon Sep 17 00:00:00 2001 From: GitHub Action Bot Date: Thu, 23 May 2024 19:48:12 +0000 Subject: [PATCH 10/74] Automated commit by github action: 9213967824 --- static/api-specs/idn/beta/paths/workgroups/workgroups.yaml | 3 +++ 1 file changed, 3 insertions(+) diff --git a/static/api-specs/idn/beta/paths/workgroups/workgroups.yaml b/static/api-specs/idn/beta/paths/workgroups/workgroups.yaml index 7b2b62c11..9e8850d88 100644 --- a/static/api-specs/idn/beta/paths/workgroups/workgroups.yaml +++ b/static/api-specs/idn/beta/paths/workgroups/workgroups.yaml @@ -23,6 +23,9 @@ get: **name**: *eq, sw, in* + + + **memberships.identityId**: *eq, in* example: name sw "Test" required: false - in: query From 905a9815c0fdb6b00c9aafd7ff2949b48536b9d7 Mon Sep 17 00:00:00 2001 From: GitHub Action Bot Date: Thu, 23 May 2024 19:48:29 +0000 Subject: [PATCH 11/74] Automated commit by github action: 9213969841 --- static/api-specs/idn/beta/paths/role.yaml | 16 ++++++++++++++++ static/api-specs/idn/beta/paths/roles.yaml | 4 +++- static/api-specs/idn/v3/paths/role.yaml | 16 ++++++++++++++++ static/api-specs/idn/v3/paths/roles.yaml | 4 +++- 4 files changed, 38 insertions(+), 2 deletions(-) diff --git a/static/api-specs/idn/beta/paths/role.yaml b/static/api-specs/idn/beta/paths/role.yaml index eee384c96..38544014c 100644 --- a/static/api-specs/idn/beta/paths/role.yaml +++ b/static/api-specs/idn/beta/paths/role.yaml @@ -46,25 +46,40 @@ patch: description: >- This API updates an existing role using [JSON Patch](https://tools.ietf.org/html/rfc6902) syntax. + The following fields are patchable: + + * name + * description + * enabled + * owner + * accessProfiles + * membership + * requestable + * accessRequestConfig + * revokeRequestConfig + * segments + A token with API, ORG_ADMIN, ROLE_ADMIN, or ROLE_SUBADMIN authority is required to call this API. In addition, a token with ROLE_SUBADMIN authority may only call this API if all access profiles included in the role are associated to Sources with management workgroups of which the ROLE_SUBADMIN is a member. + The maximum supported length for the description field is 2000 characters. Longer descriptions will be preserved for existing roles, however, any new roles as well as any updates to existing descriptions will be limited to 2000 characters. + When you use this API to modify a role's membership identities, you can only modify up to a limit of 500 membership identities at a time. parameters: - name: id @@ -210,6 +225,7 @@ delete: description: >- This API deletes a Role by its ID. + A token with API, ORG_ADMIN, ROLE_ADMIN, or ROLE_SUBADMIN authority is required to call this API. In addition, a token with ROLE_SUBADMIN authority may only call this API if all Access Profiles included in the Role are associated to Sources with management workgroups of which the ROLE_SUBADMIN is a member. diff --git a/static/api-specs/idn/beta/paths/roles.yaml b/static/api-specs/idn/beta/paths/roles.yaml index eafe0f3fa..90948c713 100644 --- a/static/api-specs/idn/beta/paths/roles.yaml +++ b/static/api-specs/idn/beta/paths/roles.yaml @@ -77,7 +77,6 @@ get: If segmentation is currently unavailable, specifying this parameter results in an error. - example: 0b5c9f25-83c6-4762-9073-e38f7bb2ae26,2e8d8180-24bc-4d21-91c6-7affdb473b0d required: false - in: query @@ -119,12 +118,15 @@ post: description: >- This API creates a role. + You must have a token with API, ORG_ADMIN, ROLE_ADMIN, or ROLE_SUBADMIN authority to call this API. + In addition, a ROLE_SUBADMIN may not create a role including an access profile if that access profile is associated with a source the ROLE_SUBADMIN is not associated with themselves. + The maximum supported length for the description field is 2000 characters. Longer descriptions will be preserved for existing roles. However, any new roles as well as any updates to existing descriptions will be limited to 2000 characters. requestBody: diff --git a/static/api-specs/idn/v3/paths/role.yaml b/static/api-specs/idn/v3/paths/role.yaml index d0cce05d4..75013e516 100644 --- a/static/api-specs/idn/v3/paths/role.yaml +++ b/static/api-specs/idn/v3/paths/role.yaml @@ -46,25 +46,40 @@ patch: description: >- This API updates an existing role using [JSON Patch](https://tools.ietf.org/html/rfc6902) syntax. + The following fields are patchable: + + * name + * description + * enabled + * owner + * accessProfiles + * membership + * requestable + * accessRequestConfig + * revokeRequestConfig + * segments + A token with API, ORG_ADMIN, ROLE_ADMIN, or ROLE_SUBADMIN authority is required to call this API. In addition, a token with ROLE_SUBADMIN authority may only call this API if all access profiles included in the role are associated to Sources with management workgroups of which the ROLE_SUBADMIN is a member. + The maximum supported length for the description field is 2000 characters. Longer descriptions will be preserved for existing roles, however, any new roles as well as any updates to existing descriptions will be limited to 2000 characters. + When you use this API to modify a role's membership identities, you can only modify up to a limit of 500 membership identities at a time. parameters: - name: id @@ -210,6 +225,7 @@ delete: description: >- This API deletes a Role by its ID. + A token with API, ORG_ADMIN, ROLE_ADMIN, or ROLE_SUBADMIN authority is required to call this API. In addition, a token with ROLE_SUBADMIN authority may only call this API if all Access Profiles included in the Role are associated to Sources with management workgroups of which the ROLE_SUBADMIN is a member. diff --git a/static/api-specs/idn/v3/paths/roles.yaml b/static/api-specs/idn/v3/paths/roles.yaml index 6224950fd..c787658bd 100644 --- a/static/api-specs/idn/v3/paths/roles.yaml +++ b/static/api-specs/idn/v3/paths/roles.yaml @@ -77,7 +77,6 @@ get: If segmentation is currently unavailable, specifying this parameter results in an error. - example: 0b5c9f25-83c6-4762-9073-e38f7bb2ae26,2e8d8180-24bc-4d21-91c6-7affdb473b0d required: false - in: query @@ -119,12 +118,15 @@ post: description: >- This API creates a role. + You must have a token with API, ORG_ADMIN, ROLE_ADMIN, or ROLE_SUBADMIN authority to call this API. + In addition, a ROLE_SUBADMIN may not create a role including an access profile if that access profile is associated with a source the ROLE_SUBADMIN is not associated with themselves. + The maximum supported length for the description field is 2000 characters. Longer descriptions will be preserved for existing roles. However, any new roles as well as any updates to existing descriptions will be limited to 2000 characters. requestBody: From 6086f2b8cf1ee2120aed3200a6f5d37890ae98b6 Mon Sep 17 00:00:00 2001 From: GitHub Action Bot Date: Thu, 23 May 2024 19:58:45 +0000 Subject: [PATCH 12/74] Automated commit by github action: 9214071118 --- .../idn/beta/paths/campaign-activate.yaml | 6 +- .../idn/beta/paths/campaign-complete.yaml | 8 +- .../paths/campaign-reports-configuration.yaml | 14 +- .../idn/beta/paths/campaign-reports.yaml | 6 +- .../paths/campaign-run-remediation-scan.yaml | 6 +- .../idn/beta/paths/campaign-run-report.yaml | 8 +- .../paths/campaign-template-generate.yaml | 16 +- .../paths/campaign-template-schedule.yaml | 22 +-- .../idn/beta/paths/campaign-template.yaml | 16 +- .../idn/beta/paths/campaign-templates.yaml | 11 +- static/api-specs/idn/beta/paths/campaign.yaml | 20 +-- .../idn/beta/paths/campaigns-delete.yaml | 8 +- .../api-specs/idn/beta/paths/campaigns.yaml | 12 +- .../identity-profile-lifecycle-state.yaml | 24 +-- .../paths/identity-set-lifecycle-state.yaml | 4 +- static/api-specs/idn/beta/paths/schemas.yaml | 21 ++- static/api-specs/idn/beta/paths/source.yaml | 59 ++++--- .../idn/beta/paths/workflow-execution.yaml | 8 +- .../idn/beta/paths/workflow-executions.yaml | 10 +- .../beta/schemas/EmailNotificationOption.yaml | 3 + .../idn/beta/schemas/LifecycleState.yaml | 9 +- static/api-specs/idn/beta/schemas/Source.yaml | 157 ++++++++++-------- .../idn/beta/schemas/WorkflowExecution.yaml | 14 +- .../idn/v3/paths/access-request-status.yaml | 19 ++- .../idn/v3/paths/access-requests.yaml | 22 +-- .../idn/v3/paths/campaign-activate.yaml | 6 +- .../idn/v3/paths/campaign-complete.yaml | 6 +- .../paths/campaign-reports-configuration.yaml | 14 +- .../idn/v3/paths/campaign-reports.yaml | 6 +- .../paths/campaign-run-remediation-scan.yaml | 6 +- .../idn/v3/paths/campaign-run-report.yaml | 8 +- .../v3/paths/campaign-template-generate.yaml | 14 +- .../v3/paths/campaign-template-schedule.yaml | 21 ++- .../idn/v3/paths/campaign-template.yaml | 16 +- .../idn/v3/paths/campaign-templates.yaml | 13 +- static/api-specs/idn/v3/paths/campaign.yaml | 20 +-- .../idn/v3/paths/campaigns-delete.yaml | 8 +- static/api-specs/idn/v3/paths/campaigns.yaml | 7 +- .../idn/v3/paths/identity-certifications.yaml | 10 +- .../identity-profile-lifecycle-state.yaml | 22 +-- .../identity-profile-lifecycle-states.yaml | 18 +- .../paths/identity-set-lifecycle-state.yaml | 2 +- static/api-specs/idn/v3/paths/schemas.yaml | 24 +-- static/api-specs/idn/v3/paths/source.yaml | 57 ++++--- .../paths/workflows/workflow-execution.yaml | 8 +- .../paths/workflows/workflow-executions.yaml | 10 +- .../v3/schemas/EmailNotificationOption.yaml | 3 + .../idn/v3/schemas/LifecycleState.yaml | 13 +- static/api-specs/idn/v3/schemas/Source.yaml | 140 ++++++++-------- .../schemas/workflows/WorkflowExecution.yaml | 14 +- 50 files changed, 511 insertions(+), 458 deletions(-) diff --git a/static/api-specs/idn/beta/paths/campaign-activate.yaml b/static/api-specs/idn/beta/paths/campaign-activate.yaml index adc610550..06f8626da 100644 --- a/static/api-specs/idn/beta/paths/campaign-activate.yaml +++ b/static/api-specs/idn/beta/paths/campaign-activate.yaml @@ -4,9 +4,9 @@ post: - Certification Campaigns summary: Activate a Campaign description: >- - Submits a job to activate the campaign with the given Id. The campaign must be staged. + Use this API to submit a job to activate the certified campaign with the specified ID. The campaign must be staged. Though this Beta endpoint has been deprecated, you can find its V3 equivalent [here](https://developer.sailpoint.com/docs/api/v3/start-campaign). - Requires roles of CERT_ADMIN and ORG_ADMIN + Calling this endpoint requires roles of CERT_ADMIN and ORG_ADMIN. security: - UserContextAuth: [ idn:campaign:update ] deprecated: true @@ -27,7 +27,7 @@ post: schema: type: string required: true - description: The campaign id + description: Campaign ID. example: ef38f94347e94562b5bb8424a56397d8 responses: '202': diff --git a/static/api-specs/idn/beta/paths/campaign-complete.yaml b/static/api-specs/idn/beta/paths/campaign-complete.yaml index b610d1d23..be4458612 100644 --- a/static/api-specs/idn/beta/paths/campaign-complete.yaml +++ b/static/api-specs/idn/beta/paths/campaign-complete.yaml @@ -12,10 +12,10 @@ post: ::: - Completes a certification campaign. This is provided to admins so that they - can complete a certification even if all items have not been completed. + Use this API to complete a certification campaign. This functionality is provided to admins so that they + can complete a certification even if all items have not been completed. Though this Beta endpoint has been deprecated, you can find its V3 equivalent [here](https://developer.sailpoint.com/docs/api/v3/complete-campaign). - Requires roles of CERT_ADMIN and ORG_ADMIN + Calling this endpoint requires roles of CERT_ADMIN and ORG_ADMIN. deprecated: true security: - UserContextAuth: [idn:campaign:update] @@ -34,7 +34,7 @@ post: schema: type: string required: true - description: The campaign id + description: Campaign ID. example: ef38f94347e94562b5bb8424a56397d8 responses: '202': diff --git a/static/api-specs/idn/beta/paths/campaign-reports-configuration.yaml b/static/api-specs/idn/beta/paths/campaign-reports-configuration.yaml index 4393b1ccf..e0842408d 100644 --- a/static/api-specs/idn/beta/paths/campaign-reports-configuration.yaml +++ b/static/api-specs/idn/beta/paths/campaign-reports-configuration.yaml @@ -5,15 +5,15 @@ get: summary: Get Campaign Reports Configuration deprecated: true description: >- - Fetches configuration for campaign reports. Currently it includes only one element - identity attributes defined as custom report columns. + Use this API to fetch the configuration for certification campaign reports. The configuration includes only one element - identity attributes defined as custom report columns. Though this Beta endpoint has been deprecated, you can find its V3 equivalent [here](https://developer.sailpoint.com/docs/api/v3/get-campaign-reports-config). - Requires roles of CERT_ADMIN and ORG_ADMIN. + Calling this endpoint requires roles of CERT_ADMIN and ORG_ADMIN. security: - UserContextAuth: [ idn:campaign-reports-config:read ] responses: '200': - description: Campaign Report Configuration + description: Campaign report configuration. content: application/json: schema: @@ -35,22 +35,22 @@ put: summary: Set Campaign Reports Configuration deprecated: true description: >- - Overwrites configuration for campaign reports. + Use this API to overwrite the configuration for campaign reports. Though this Beta endpoint has been deprecated, you can find its V3 equivalent [here](https://developer.sailpoint.com/docs/api/v3/set-campaign-reports-config). - Requires roles CERT_ADMIN and ORG_ADMIN. + Calling this endpoint requires roles of CERT_ADMIN and ORG_ADMIN. security: - UserContextAuth: [ idn:campaign-reports-config:write ] requestBody: required: true - description: Campaign Report Configuration + description: Campaign report configuration. content: application/json: schema: $ref: '../schemas/CampaignReportsConfig.yaml' responses: '200': - description: The persisted Campaign Report Configuration + description: The persisted campaign report configuration. content: application/json: schema: diff --git a/static/api-specs/idn/beta/paths/campaign-reports.yaml b/static/api-specs/idn/beta/paths/campaign-reports.yaml index 17d14ae04..ea07e5f73 100644 --- a/static/api-specs/idn/beta/paths/campaign-reports.yaml +++ b/static/api-specs/idn/beta/paths/campaign-reports.yaml @@ -5,9 +5,9 @@ get: summary: Get Campaign Reports deprecated: true description: >- - Fetches all reports for a certification campaign by campaign ID. + Use this API to fetch all reports for a certification campaign by campaign ID. Though this Beta endpoint has been deprecated, you can find its V3 equivalent [here](https://developer.sailpoint.com/docs/api/v3/get-campaign-reports). - Requires roles of CERT_ADMIN, DASHBOARD, ORG_ADMIN and REPORT_ADMIN + Calling this endpoint requires roles of CERT_ADMIN, DASHBOARD, ORG_ADMIN and REPORT_ADMIN. security: - UserContextAuth: [idn:campaign-report:read] parameters: @@ -17,7 +17,7 @@ get: type: string example: 2c91808571bcfcf80171c23e4b4221fc required: true - description: The ID of the campaign for which reports are being fetched. + description: ID of the campaign whose reports are being fetched. responses: '200': description: Array of campaign report objects. diff --git a/static/api-specs/idn/beta/paths/campaign-run-remediation-scan.yaml b/static/api-specs/idn/beta/paths/campaign-run-remediation-scan.yaml index ff6e16601..45b76cec3 100644 --- a/static/api-specs/idn/beta/paths/campaign-run-remediation-scan.yaml +++ b/static/api-specs/idn/beta/paths/campaign-run-remediation-scan.yaml @@ -4,9 +4,9 @@ post: - Certification Campaigns summary: Run Campaign Remediation Scan description: >- - Kicks off remediation scan task for a certification campaign. + Use this API to run a remediation scan task for a certification campaign. Though this Beta endpoint has been deprecated, you can find its V3 equivalent [here](https://developer.sailpoint.com/docs/api/v3/start-campaign-remediation-scan). - Requires roles of CERT_ADMIN and ORG_ADMIN + Calling this endpoint requires roles of CERT_ADMIN and ORG_ADMIN. deprecated: true security: - UserContextAuth: [idn:campaign-report:run] @@ -17,7 +17,7 @@ post: type: string example: 2c91808571bcfcf80171c23e4b4221fc required: true - description: The ID of the campaign for which remediation scan is being run. + description: ID of the campaign the remediation scan is being run for. responses: '202': $ref: '../../v3/responses/202.yaml' diff --git a/static/api-specs/idn/beta/paths/campaign-run-report.yaml b/static/api-specs/idn/beta/paths/campaign-run-report.yaml index 04001e28c..ea400e2e7 100644 --- a/static/api-specs/idn/beta/paths/campaign-run-report.yaml +++ b/static/api-specs/idn/beta/paths/campaign-run-report.yaml @@ -5,9 +5,9 @@ post: summary: Run Campaign Report deprecated: true description: >- - Runs a report for a certification campaign. + Use this API to run a report for a certification campaign. Though this Beta endpoint has been deprecated, you can find its V3 equivalent [here](https://developer.sailpoint.com/docs/api/v3/start-campaign-report). - Requires the following roles: CERT_ADMIN, DASHBOARD, ORG_ADMIN and REPORT_ADMIN. + Calling this endpoint requires the following roles: CERT_ADMIN, DASHBOARD, ORG_ADMIN and REPORT_ADMIN. security: - UserContextAuth: [idn:campaign-report:run] parameters: @@ -17,13 +17,13 @@ post: type: string example: 2c91808571bcfcf80171c23e4b4221fc required: true - description: The ID of the campaign for which report is being run. + description: ID of the campaign the report is being run for. - in: path name: type schema: $ref: '../schemas/ReportType.yaml' required: true - description: The type of the report to run. + description: Type of report to run. responses: '202': $ref: '../../v3/responses/202.yaml' diff --git a/static/api-specs/idn/beta/paths/campaign-template-generate.yaml b/static/api-specs/idn/beta/paths/campaign-template-generate.yaml index 49f6a3280..32388a63b 100644 --- a/static/api-specs/idn/beta/paths/campaign-template-generate.yaml +++ b/static/api-specs/idn/beta/paths/campaign-template-generate.yaml @@ -7,31 +7,33 @@ post: security: - UserContextAuth: [idn:campaign-template:run] description: >- - Generates a new campaign from a campaign template. + Use this API to generate a new certification campaign from a campaign template. The campaign object contained in the template has special formatting applied to its name and description - fields in order to determine the generated campaign's name/description. Placeholders in those fields are + fields that determine the generated campaign's name/description. Placeholders in those fields are formatted with the current date and time upon generation. - Placeholders consist of a percent sign followed by a letter indicating what should be inserted; for - example, "%Y" will insert the current year; a campaign template named "Campaign for %y" would generate a + Placeholders consist of a percent sign followed by a letter indicating what should be inserted. For + example, "%Y" inserts the current year, and a campaign template named "Campaign for %y" generates a campaign called "Campaign for 2020" (assuming the year at generation time is 2020). Valid placeholders are the date/time conversion suffix characters supported by [java.util.Formatter](https://docs.oracle.com/javase/8/docs/api/java/util/Formatter.html). - Requires roles ORG_ADMIN. + Though this Beta endpoint has been deprecated, you can find its V3 equivalent [here](https://developer.sailpoint.com/docs/api/v3/start-generate-campaign-template). + + Calling this endpoint requires the ORG_ADMIN role. parameters: - in: path name: id schema: type: string required: true - description: The ID of the campaign template to use for generation. + description: ID of the campaign template to use for generation. example: 2c9180835d191a86015d28455b4a2329 responses: '200': description: >- - Indicates a campaign was successfully generated from this template, and returns a reference to the + This response indicates that a campaign was successfully generated from this template, and the API returns a reference to the new campaign. content: application/json: diff --git a/static/api-specs/idn/beta/paths/campaign-template-schedule.yaml b/static/api-specs/idn/beta/paths/campaign-template-schedule.yaml index a80244296..a2bd24e4d 100644 --- a/static/api-specs/idn/beta/paths/campaign-template-schedule.yaml +++ b/static/api-specs/idn/beta/paths/campaign-template-schedule.yaml @@ -2,9 +2,9 @@ get: operationId: getCampaignTemplateSchedule tags: - Certification Campaigns - summary: Gets a Campaign Template's Schedule + summary: Get Campaign Template Schedule description: >- - Gets the schedule for a campaign template. Returns a 404 if there is no schedule set. + Use this API to get the schedule for a certification campaign template. The API returns a 404 if there is no schedule set. Though this Beta endpoint has been deprecated, you can find its V3 equivalent [here](https://developer.sailpoint.com/docs/api/v3/get-campaign-template-schedule). security: - UserContextAuth: [ idn:campaign-template:read ] deprecated: true @@ -14,12 +14,12 @@ get: schema: type: string required: true - description: The ID of the campaign template whose schedule is being fetched. + description: ID of the campaign template whose schedule is being fetched. example: "04bedce387bd47b2ae1f86eb0bb36dee" responses: '200': description: >- - The current schedule for the campaign template. See the PUT endpoint documentation for + Current schedule for the campaign template. See the [Set Campaign Template Schedule endpoint documentation](https://developer.sailpoint.com/docs/api/beta/set-campaign-template-schedule) for more examples. content: application/json: @@ -41,10 +41,10 @@ put: operationId: setCampaignTemplateSchedule tags: - Certification Campaigns - summary: Sets a Campaign Template's Schedule + summary: Set Campaign Template Schedule description: >- - Sets the schedule for a campaign template. If a schedule already exists, it will be overwritten with - the new one. + Use this API to set the schedule for a certification campaign template. If a schedule already exists, the API overwrites it with the new one. + Though this Beta endpoint has been deprecated, you can find its V3 equivalent [here](https://developer.sailpoint.com/docs/api/v3/set-campaign-template-schedule). security: - UserContextAuth: [ idn:campaign-template:run ] deprecated: true @@ -54,7 +54,7 @@ put: schema: type: string required: true - description: The ID of the campaign template being scheduled. + description: ID of the campaign template being scheduled. example: 04bedce387bd47b2ae1f86eb0bb36dee requestBody: content: @@ -147,9 +147,9 @@ delete: operationId: deleteCampaignTemplateSchedule tags: - Certification Campaigns - summary: Deletes a Campaign Template's Schedule + summary: Delete Campaign Template Schedule description: >- - Deletes the schedule for a campaign template. Returns a 404 if there is no schedule set. + Use this API to delete the schedule for a certification campaign template. The API returns a 404 if there is no schedule set. Though this Beta endpoint has been deprecated, you can find its V3 equivalent [here](https://developer.sailpoint.com/docs/api/v3/delete-campaign-template-schedule). security: - UserContextAuth: [ idn:campaign-template:run ] deprecated: true @@ -159,7 +159,7 @@ delete: schema: type: string required: true - description: The ID of the campaign template whose schedule is being deleted. + description: ID of the campaign template whose schedule is being deleted. example: "04bedce387bd47b2ae1f86eb0bb36dee" responses: '204': diff --git a/static/api-specs/idn/beta/paths/campaign-template.yaml b/static/api-specs/idn/beta/paths/campaign-template.yaml index a9ab8b840..c6f688588 100644 --- a/static/api-specs/idn/beta/paths/campaign-template.yaml +++ b/static/api-specs/idn/beta/paths/campaign-template.yaml @@ -3,7 +3,7 @@ get: tags: - Certification Campaigns summary: Get a Campaign Template - description: Fetches a campaign template by ID. + description: Use this API to fetch a certification campaign template by ID. Though this Beta endpoint has been deprecated, you can find its V3 equivalent [here](https://developer.sailpoint.com/docs/api/v3/get-campaign-template). security: - UserContextAuth: [ idn:campaign-template:read ] deprecated: true @@ -13,11 +13,11 @@ get: schema: type: string required: true - description: The desired campaign template's ID. + description: Requested campaign template's ID. example: 2c9180835d191a86015d28455b4a2329 responses: '200': - description: The data for the campaign matching the given ID. + description: Data for the campaign matching the given ID. content: application/json: schema: @@ -48,7 +48,7 @@ patch: tags: - Certification Campaigns summary: Update a Campaign Template - description: Allows updating individual fields on a campaign template using the [JSON Patch](https://tools.ietf.org/html/rfc6902) standard. + description: Use this API to update individual fields on a certification campaign template, using the [JSON Patch](https://tools.ietf.org/html/rfc6902) standard. Though this Beta endpoint has been deprecated, you can find its V3 equivalent [here](https://developer.sailpoint.com/docs/api/v3/patch-campaign-template). deprecated: true security: - UserContextAuth: [ idn:campaign-template:update ] @@ -58,7 +58,7 @@ patch: schema: type: string required: true - description: The ID of the campaign template being modified. + description: ID of the campaign template being modified. example: 2c9180835d191a86015d28455b4a2329 requestBody: required: true @@ -86,7 +86,7 @@ patch: responses: '200': description: >- - Indicates the PATCH operation succeeded, and returns the template's new representation. + This response indicates that the PATCH operation succeeded, and the API returns the template's new representation. content: application/json: schema: @@ -117,7 +117,7 @@ delete: tags: - Certification Campaigns summary: Delete a Campaign Template - description: Deletes a campaign template by ID. + description: Use this API to delete a certification campaign template by ID. Though this Beta endpoint has been deprecated, you can find its V3 equivalent [here](https://developer.sailpoint.com/docs/api/v3/delete-campaign-template). deprecated: true security: - UserContextAuth: [ idn:campaign-template:delete ] @@ -127,7 +127,7 @@ delete: schema: type: string required: true - description: The ID of the campaign template being deleted. + description: ID of the campaign template being deleted. example: 2c9180835d191a86015d28455b4a2329 responses: '204': diff --git a/static/api-specs/idn/beta/paths/campaign-templates.yaml b/static/api-specs/idn/beta/paths/campaign-templates.yaml index 7ec8220fe..45417d559 100644 --- a/static/api-specs/idn/beta/paths/campaign-templates.yaml +++ b/static/api-specs/idn/beta/paths/campaign-templates.yaml @@ -1,13 +1,12 @@ get: - operationId: listCampaignTemplates + operationId: getCampaignTemplates tags: - Certification Campaigns summary: List Campaign Templates description: >- - Lists all CampaignTemplates. Scope can be reduced via standard V3 query params. + Use this API to get a list of all campaign templates. Scope can be reduced through standard V3 query params. Though this Beta endpoint has been deprecated, you can find its V3 equivalent [here](https://developer.sailpoint.com/docs/api/v3/list-campaign-templates). - - All CampaignTemplates matching the query params + The endpoint returns all campaign templates matching the query parameters. deprecated: true security: @@ -46,7 +45,7 @@ get: example: name eq "manager template" responses: '200': - description: List of campaign template objects + description: List of campaign template objects. content: application/json: schema: @@ -71,7 +70,7 @@ post: - Certification Campaigns summary: Create a Campaign Template description: >- - Create a campaign Template based on campaign. + Use this API to create a campaign template based on campaign. Though this Beta endpoint has been deprecated, you can find its V3 equivalent [here](https://developer.sailpoint.com/docs/api/v3/create-campaign-template). security: - UserContextAuth: [ idn:campaign-template:create ] deprecated: true diff --git a/static/api-specs/idn/beta/paths/campaign.yaml b/static/api-specs/idn/beta/paths/campaign.yaml index 6a66a394a..3103d194c 100644 --- a/static/api-specs/idn/beta/paths/campaign.yaml +++ b/static/api-specs/idn/beta/paths/campaign.yaml @@ -2,10 +2,10 @@ get: operationId: getCampaign tags: - Certification Campaigns - summary: Get a campaign + summary: Get Campaign description: >- - Retrieves information for an existing campaign using the campaign's ID. Authorized callers must be a - reviewer for this campaign, an ORG_ADMIN, or a CERT_ADMIN. + Use this API to get information for an existing certification campaign by the campaign's ID. Though this endpoint has been deprecated, you can find its V3 equivalent [here](https://developer.sailpoint.com/docs/api/v3/get-campaign). + Authorized callers must be reviewers for this campaign, ORG_ADMINs, or a CERT_ADMINs. deprecated: true security: - UserContextAuth: [] @@ -15,11 +15,11 @@ get: schema: type: string required: true - description: The ID of the campaign to be retrieved + description: ID of the campaign to be retrieved. example: 2c91808571bcfcf80171c23e4b4221fc responses: '200': - description: A campaign object + description: Campaign object. content: application/json: schema: @@ -50,7 +50,7 @@ patch: tags: - Certification Campaigns summary: Update a Campaign - description: Allows updating individual fields on a campaign using the [JSON Patch](https://tools.ietf.org/html/rfc6902) standard. + description: Use this API to update individual fields on a certification campaign, using the [JSON Patch](https://tools.ietf.org/html/rfc6902) standard. Though this endpoint has been deprecated, you can find its V3 equivalent [here](https://developer.sailpoint.com/docs/api/beta/update-campaign). deprecated: true security: - UserContextAuth: [idn:campaign:update,idn:campaign:read] @@ -60,7 +60,7 @@ patch: schema: type: string required: true - description: The ID of the campaign template being modified. + description: ID of the campaign template being modified. example: 2c91808571bcfcf80171c23e4b4221fc requestBody: required: true @@ -68,7 +68,7 @@ patch: A list of campaign update operations according to the [JSON Patch](https://tools.ietf.org/html/rfc6902) standard. The fields that can be patched differ based on the status of the campaign. - In the *STAGED* status, the following fields can be patched: + When the campaign is in the *STAGED* status, you can patch these fields: * name * description * recommendationsEnabled @@ -76,7 +76,7 @@ patch: * emailNotificationEnabled * autoRevokeAllowed - In the *ACTIVE* status, the following fields can be patched: + When the campaign is in the *ACTIVE* status, you can patch these fields: * deadline content: application/json-patch+json: @@ -94,7 +94,7 @@ patch: responses: '200': description: >- - Indicates the PATCH operation succeeded, and returns the campaign's new representation. + This response indicates that the PATCH operation succeeded, and the API returns the campaign's new representation. content: application/json: schema: diff --git a/static/api-specs/idn/beta/paths/campaigns-delete.yaml b/static/api-specs/idn/beta/paths/campaigns-delete.yaml index d178bdf28..7309a1a97 100644 --- a/static/api-specs/idn/beta/paths/campaigns-delete.yaml +++ b/static/api-specs/idn/beta/paths/campaigns-delete.yaml @@ -2,15 +2,15 @@ post: operationId: deleteCampaigns tags: - Certification Campaigns - summary: Deletes Campaigns + summary: Delete Campaigns description: >- - Deletes campaigns whose Ids are specified in the provided list of campaign Ids. - Authorized callers must be an ORG_ADMIN or a CERT_ADMIN. + Use this API to delete certification campaigns whose IDs are specified in the provided list of campaign IDs. Though this Beta endpoint has been deprecated, you can find its V3 equivalent [here](https://developer.sailpoint.com/docs/api/v3/delete-campaigns). + Authorized callers must be ORG_ADMINs or CERT_ADMINs. deprecated: true security: - UserContextAuth: [idn:campaign:delete] requestBody: - description: The ids of the campaigns to delete. + description: IDs of the campaigns to delete. required: true content: application/json: diff --git a/static/api-specs/idn/beta/paths/campaigns.yaml b/static/api-specs/idn/beta/paths/campaigns.yaml index 34698b7cb..315b7f079 100644 --- a/static/api-specs/idn/beta/paths/campaigns.yaml +++ b/static/api-specs/idn/beta/paths/campaigns.yaml @@ -4,9 +4,7 @@ get: - Certification Campaigns summary: List Campaigns description: >- - Gets campaigns and returns them in a list. Can provide increased level of detail for each campaign if provided - the correct query. - security: + Use this API to get a list of campaigns. The API can provide increased level of detail for each campaign for the correct provided query. Though this Beta endpoint has been deprecated, you can find its V3 equivalent [here](https://developer.sailpoint.com/docs/api/v3/get-active-campaigns). - UserContextAuth: [] deprecated: true parameters: @@ -57,7 +55,7 @@ get: example: name responses: '200': - description: A list of campaign objects. By default list of SLIM campaigns is returned. + description: List of campaign objects. By default, the API returns a list of SLIM campaigns. content: application/json: schema: @@ -86,8 +84,8 @@ post: operationId: createCampaign tags: - Certification Campaigns - summary: Create a campaign - description: Creates a new Certification Campaign with the information provided in the request body. + summary: Create Campaign + description: Use this API to create a certification campaign with the information provided in the request body. Though this Beta endpoint has been deprecated, you can find its V3 equivalent [here](https://developer.sailpoint.com/docs/api/v3/create-campaign). security: - UserContextAuth: [idn:campaign:create] deprecated: true @@ -108,7 +106,7 @@ post: $ref: '../schemas/campaign/examples/CreateCampaignRoleComposition.yaml' responses: '200': - description: Indicates that the campaign requested was successfully created and returns its representation. + description: This response indicates that the requested campaign was successfully created, and the API returns its representation. content: application/json: schema: diff --git a/static/api-specs/idn/beta/paths/identity-profile-lifecycle-state.yaml b/static/api-specs/idn/beta/paths/identity-profile-lifecycle-state.yaml index a9d710333..49c8726e7 100644 --- a/static/api-specs/idn/beta/paths/identity-profile-lifecycle-state.yaml +++ b/static/api-specs/idn/beta/paths/identity-profile-lifecycle-state.yaml @@ -1,30 +1,32 @@ get: - operationId: listLifecycleStates + operationId: getLifecycleStates tags: - Lifecycle States - summary: Lifecycle State + summary: Get Lifecycle State description: | - This endpoint returns a lifecycle state. + Use this endpoint to get a lifecycle state by its ID and its associated identity profile ID. A token with ORG_ADMIN or API authority is required to call this API. parameters: - in: path name: identity-profile-id description: >- - Identity Profile ID + Identity Profile ID. required: true schema: type: string + example: 2b838de9-db9b-abcf-e646-d4f274ad4238 - in: path name: lifecycle-state-id description: >- - Lifecycle State ID + Lifecycle State ID. required: true schema: type: string + example: ef38f94347e94562b5bb8424a56397d8 responses: '200': - description: lifecycle-state + description: Requested lifecycle state. content: application/json: schema: @@ -46,24 +48,26 @@ patch: - Lifecycle States summary: Update Lifecycle State description: | - This API updates individual lifecycle state fields using the [JSON Patch](https://tools.ietf.org/html/rfc6902) standard. + Use this endpoint to update individual lifecycle state fields, using the [JSON Patch](https://tools.ietf.org/html/rfc6902) standard. A token with ORG_ADMIN or API authority is required to call this API. parameters: - in: path name: identity-profile-id description: >- - Identity Profile ID + Identity Profile ID. required: true schema: type: string + example: 2b838de9-db9b-abcf-e646-d4f274ad4238 - in: path name: lifecycle-state-id description: >- - Lifecycle State ID + Lifecycle State ID. required: true schema: type: string + example: ef38f94347e94562b5bb8424a56397d8 requestBody: required: true description: | @@ -110,7 +114,7 @@ patch: responses: '200': description: >- - Updated lifecycle-state. + Updated lifecycle state. content: application/json: schema: diff --git a/static/api-specs/idn/beta/paths/identity-set-lifecycle-state.yaml b/static/api-specs/idn/beta/paths/identity-set-lifecycle-state.yaml index 5c2d14c95..a75a23136 100644 --- a/static/api-specs/idn/beta/paths/identity-set-lifecycle-state.yaml +++ b/static/api-specs/idn/beta/paths/identity-set-lifecycle-state.yaml @@ -4,7 +4,7 @@ post: - Lifecycle States summary: Set Lifecycle State description: | - This endpoint will set/update an identity's lifecycle state to the one provided and updates the corresponding identity profile. + Use this endpoint to set/update an identity's lifecycle state to the one provided and update the corresponding identity profile. A token with ORG_ADMIN or API authority is required to call this API. parameters: @@ -42,6 +42,8 @@ post: format: uuid example: 2c9180837ab5b716017ab7c6c9ef1e20 description: The ID of the IdentityRequest object that is generated when the workflow launches. To follow the IdentityRequest, you can provide this ID with a [Get Account Activity request](https://developer.sailpoint.com/docs/api/beta/get-account-activity/). The response will contain relevant information about the IdentityRequest, such as its status. + '400': + $ref: '../../v3/responses/400.yaml' '401': $ref: '../../v3/responses/401.yaml' '403': diff --git a/static/api-specs/idn/beta/paths/schemas.yaml b/static/api-specs/idn/beta/paths/schemas.yaml index 94ec4ba1c..dc104de5c 100644 --- a/static/api-specs/idn/beta/paths/schemas.yaml +++ b/static/api-specs/idn/beta/paths/schemas.yaml @@ -1,35 +1,41 @@ get: - operationId: listSourceSchemas + operationId: getSourceSchemas tags: - Sources - summary: Lists the Schemas that exist on the specified Source in IdentityNow. + summary: List Schemas on Source + description: Use this API to list the schemas that exist on the specified source in Identity Security Cloud (ISC). parameters: - in: path name: sourceId required: true schema: type: string - description: The Source id. + description: Source ID. example: 2c9180835d191a86015d28455b4a2329 - in: query name: include-types required: false schema: type: string + enum: + - group + - user description: >- If set to 'group', then the account schema is filtered and only group schemas are returned. Only a value of 'group' is recognized. example: group responses: '200': - description: The Schemas were successfully retrieved. + description: The schemas were successfully retrieved. content: application/json: schema: type: array items: $ref: '../schemas/Schema.yaml' + '400': + $ref: '../../v3/responses/400.yaml' '401': $ref: '../../v3/responses/401.yaml' '403': @@ -44,14 +50,15 @@ post: operationId: createSourceSchema tags: - Sources - summary: Creates a new Schema on the specified Source in IdentityNow. + summary: Create Schema on Source + description: Use this API to create a new schema on the specified source in Identity Security Cloud (ISC). parameters: - in: path name: sourceId required: true schema: type: string - description: The Source id. + description: Source ID. example: 2c9180835d191a86015d28455b4a2329 requestBody: required: true @@ -61,7 +68,7 @@ post: $ref: '../schemas/Schema.yaml' responses: '201': - description: The Schema was successfully created on the specified Source. + description: The schema was successfully created on the specified source. content: application/json: schema: diff --git a/static/api-specs/idn/beta/paths/source.yaml b/static/api-specs/idn/beta/paths/source.yaml index 76ff2e191..f1511d14e 100644 --- a/static/api-specs/idn/beta/paths/source.yaml +++ b/static/api-specs/idn/beta/paths/source.yaml @@ -6,7 +6,7 @@ get: - Sources summary: Get Source by ID description: >- - This end-point gets a specific source in IdentityNow. + Use this API to get a source by a specified ID in Identity Security Cloud (ISC). A token with ORG_ADMIN, SOURCE_ADMIN, or SOURCE_SUBADMIN authority is required to call this API. parameters: @@ -15,11 +15,11 @@ get: schema: type: string required: true - description: The Source ID + description: Source ID. example: 2c9180835d191a86015d28455b4a2329 responses: '200': - description: A Source object + description: Source object. content: application/json: schema: @@ -44,10 +44,9 @@ put: - Sources summary: Update Source (Full) description: | - This API updates a source in IdentityNow, using a full object representation. In other words, the existing Source - configuration is completely replaced. + Use this API to update a source in Identity Security Cloud (ISC), using a full object representation. This means that when you use this API, it completely replaces the existing source configuration. - Some fields are immutable and cannot be changed, such as: + These fields are immutable, so they cannot be changed: * id * type @@ -65,7 +64,7 @@ put: schema: type: string required: true - description: The Source id + description: Source ID. example: 2c9180835d191a86015d28455b4a2329 requestBody: required: true @@ -76,8 +75,8 @@ put: responses: '200': description: >- - Updated Source object. Any passwords will only show the the encrypted cipher-text, as they are not decrypt-able - in IdentityNow cloud-based services, per IdentityNow security design. + Updated Source object. Any passwords will only show the the encrypted cipher-text so that they aren't decryptable + in Identity Security Cloud (ISC) cloud-based services, per ISC security design. content: application/json: schema: @@ -102,10 +101,10 @@ patch: - Sources summary: Update Source (Partial) description: | - This API partially updates a source in IdentityNow, using a list of patch operations according to the + Use this API to partially update a source in Identity Security Cloud (ISC), using a list of patch operations according to the [JSON Patch](https://tools.ietf.org/html/rfc6902) standard. - Some fields are immutable and cannot be changed, such as: + These fields are immutable, so they cannot be changed: * id * type * authoritative @@ -124,13 +123,13 @@ patch: schema: type: string required: true - description: The Source id + description: Source ID. example: 2c9180835d191a86015d28455b4a2329 requestBody: required: true description: >- A list of account update operations according to the [JSON Patch](https://tools.ietf.org/html/rfc6902) standard. - Any password changes are submitted as plain-text and encrypted upon receipt in IdentityNow. + Any password changes are submitted as plain-text and encrypted upon receipt in Identity Security Cloud (ISC). content: application/json-patch+json: schema: @@ -149,7 +148,7 @@ patch: } ] Edit the source cluster: - description: This example shows how to edit a source cluster by id. + description: This example shows how to edit a source cluster by ID. value: [ { @@ -160,7 +159,7 @@ patch: ] Edit source features: - description: This example illustrates how you can update source supported features + description: This example illustrates how you can update source supported features. value: [ { @@ -174,8 +173,8 @@ patch: ] } ] - Change a source description and cluster in One Call: - description: This example shows how multiple fields may be updated with a single patch call. + Change a source description and cluster in one call: + description: This example shows how multiple fields may be updated with a single PATCH call. value: [ { @@ -190,7 +189,7 @@ patch: } ] Add a filter string to the connector: - description: This example shows how you can add a filter to incoming accounts during the account aggregation process. In the example below, any account that does not have an "m" or "d" in the id will be aggregated. + description: This example shows how you can add a filter to incoming accounts during the account aggregation process. In the example, any account that does not have an "m" or "d" in the ID will be aggregated. value: [ { @@ -200,7 +199,7 @@ patch: } ] Update connector attribute for specific operation type: - description: This example shows how you can update the 3rd object in the connection parameters operationType. This will change it from a standard group aggregation to a group aggregation on the "test" entitlement type + description: This example shows how you can update the 3rd object in the connection parameter's `operationType`. This changes it from a standard group aggregation to a group aggregation on the "test" entitlement type. value: [ { @@ -212,8 +211,8 @@ patch: responses: '200': description: >- - Updated Source object. Any passwords will only show the the encrypted cipher-text, as they are not decrypt-able - in IdentityNow cloud-based services, per IdentityNow security design. + Updated Source object. Any passwords will only show the the encrypted cipher-text so that they are not decryptable + in Identity Security Cloud cloud-based services, per ISC security design. content: application/json: schema: @@ -238,19 +237,19 @@ delete: - Sources summary: Delete Source by ID description: >- - This end-point deletes a specific source in IdentityNow. + Use this API to delete a specific source in Identity Security Cloud (ISC). + + The API removes all the accounts on the source first, and then it deletes the source. + You can retrieve the actual task execution status with this method: GET `/task-status/{id}` A token with ORG_ADMIN, SOURCE_ADMIN, or SOURCE_SUBADMIN authority is required to call this API. - - All of accounts on the source will be removed first, then the source will be deleted. - Actual status of task execution can be retrieved via method GET `/task-status/{id}` parameters: - in: path name: id schema: type: string required: true - description: The Source ID + description: Source ID. example: 2c9180835d191a86015d28455b4a2329 responses: '202': @@ -261,22 +260,22 @@ delete: type: object properties: type: - description: The type of object being referenced + description: Type of object being referenced. type: string enum: - TASK_RESULT example: TASK_RESULT id: type: string - description: ID of the task result + description: Task result ID. example: 2c91808779ecf55b0179f720942f181a name: type: string - description: Human-readable display name of the task result (should be null/empty) + description: Task result's human-readable display name (this should be null/empty). example: null examples: deleteSource: - summary: Response returned when deleting a source + summary: Response returned when a source is being deleted. value: {"type": "TASK_RESULT", "id": "2c91808779ecf55b0179f720942f181a", "name": null} '400': $ref: '../../v3/responses/400.yaml' diff --git a/static/api-specs/idn/beta/paths/workflow-execution.yaml b/static/api-specs/idn/beta/paths/workflow-execution.yaml index fa3164913..18e647dd6 100644 --- a/static/api-specs/idn/beta/paths/workflow-execution.yaml +++ b/static/api-specs/idn/beta/paths/workflow-execution.yaml @@ -2,15 +2,15 @@ get: operationId: getWorkflowExecution tags: - Workflows - summary: Get a Workflow Execution + summary: Get Workflow Execution description: >- - Get a single workflow execution. Workflow executions are available for up to 90 days before being archived. If you attempt to access a workflow execution that has been archived, you will receive a 404 Not Found. + Use this API to get a single workflow execution. Workflow executions are available for up to 90 days before being archived. If you attempt to access a workflow execution that has been archived, you will receive a "404 Not Found" response. security: - UserContextAuth: [sp:workflow:read] parameters: - name: id in: path - description: Id of the workflow execution + description: Workflow execution ID. required: true style: simple explode: false @@ -20,7 +20,7 @@ get: responses: '200': description: >- - The workflow execution + Workflow execution. content: application/json: schema: diff --git a/static/api-specs/idn/beta/paths/workflow-executions.yaml b/static/api-specs/idn/beta/paths/workflow-executions.yaml index 62862a80b..b1e63f39c 100644 --- a/static/api-specs/idn/beta/paths/workflow-executions.yaml +++ b/static/api-specs/idn/beta/paths/workflow-executions.yaml @@ -1,10 +1,10 @@ get: - operationId: listWorkflowExecutions + operationId: getWorkflowExecutions tags: - Workflows summary: List Workflow Executions description: >- - This lists the executions for a given workflow. Workflow executions are available for up to 90 days before being archived. + Use this API to list a specified workflow's executions. Workflow executions are available for up to 90 days before being archived. By default, you can get a maximum of 250 executions. To get executions past the first 250 records, you can do the following: @@ -17,7 +17,7 @@ get: - Filter to find relevant workflow executions. For example, you can filter for failed workflow executions: `GET /workflows/:workflowID/executions?filters=status eq "Failed"` - - You can paginate through results with the `offset` parameter. + - Paginate through results with the `offset` parameter. For example, you can page through 50 executions per page and use that as a way to get to the records past the first 250. Refer to [Paginating Results](https://developer.sailpoint.com/idn/api/standard-collection-parameters#paginating-results) for more information about the query parameters you can use to achieve pagination. security: @@ -25,7 +25,7 @@ get: parameters: - name: id in: path - description: Id of the workflow + description: Workflow ID. required: true style: simple explode: false @@ -55,7 +55,7 @@ get: responses: '200': description: >- - List of workflow executions for the given workflow + List of workflow executions for the specified workflow. content: application/json: schema: diff --git a/static/api-specs/idn/beta/schemas/EmailNotificationOption.yaml b/static/api-specs/idn/beta/schemas/EmailNotificationOption.yaml index 7891cd1a4..53f0375fb 100644 --- a/static/api-specs/idn/beta/schemas/EmailNotificationOption.yaml +++ b/static/api-specs/idn/beta/schemas/EmailNotificationOption.yaml @@ -2,14 +2,17 @@ type : object properties: notifyManagers: type: boolean + default: false example: true description: If true, then the manager is notified of the lifecycle state change. notifyAllAdmins: type: boolean + default: false example: true description: If true, then all the admins are notified of the lifecycle state change. notifySpecificUsers: type: boolean + default: false example: true description: If true, then the users specified in "emailAddressList" below are notified of lifecycle state change. emailAddressList: diff --git a/static/api-specs/idn/beta/schemas/LifecycleState.yaml b/static/api-specs/idn/beta/schemas/LifecycleState.yaml index a2340c16c..14ed75426 100644 --- a/static/api-specs/idn/beta/schemas/LifecycleState.yaml +++ b/static/api-specs/idn/beta/schemas/LifecycleState.yaml @@ -4,17 +4,17 @@ properties: type: string readOnly: true example: 2c9180835d2e5168015d32f890ca1581 - description: lifecycle stat id. + description: Lifecycle state ID. name: type: string readOnly: true example: Lifecycle Name - description: Lifecycle-state name. + description: Lifecycle state name. technicalName: type: string readOnly: true example: lifecycleTechnicalName - description: The technical name for lifecycle state. This is for internal use. + description: Lifecycle state technical name. This is for internal use. description: type: string example: LifecycleDescription @@ -33,8 +33,9 @@ properties: description: Lifecycle state modified date. enabled: type: boolean + default: false example: true - description: Whether the lifecycle state is enabled or disabled. + description: Indicates whether the lifecycle state is enabled or disabled. identityCount: type: integer format: int32 diff --git a/static/api-specs/idn/beta/schemas/Source.yaml b/static/api-specs/idn/beta/schemas/Source.yaml index 74f350569..b2656ce53 100644 --- a/static/api-specs/idn/beta/schemas/Source.yaml +++ b/static/api-specs/idn/beta/schemas/Source.yaml @@ -3,136 +3,140 @@ properties: id: type: string readOnly: true - description: the id of the Source - example: "2c91808568c529c60168cca6f90c1324" + description: Source ID. + example: 2c91808568c529c60168cca6f90c1324 name: type: string - description: Human-readable name of the source + description: Source's human-readable name. example: My Source description: type: string - description: Human-readable description of the source - example: "This is the corporate directory." + description: Source's human-readable description. + example: This is the corporate directory. owner: - description: Reference to an owning Identity Object + description: Reference to identity object who owns the source. type: object properties: type: - description: The type of object being referenced + description: Type of object being referenced. type: string enum: - IDENTITY example: IDENTITY id: type: string - description: ID of the identity + description: Owner identity's ID. example: 2c91808568c529c60168cca6f90c1313 name: type: string - description: Human-readable display name of the identity + description: Owner identity's human-readable display name. example: MyName cluster: - description: Reference to the associated Cluster + description: Reference to the source's associated cluster. type: object + nullable: true required: - name - id - - type + - type properties: type: - description: The type of object being referenced + description: Type of object being referenced. type: string enum: - CLUSTER example: CLUSTER id: type: string - description: ID of the cluster + description: Cluster ID. example: 2c9180866166b5b0016167c32ef31a66 name: type: string - description: Human-readable display name of the cluster + description: Cluster's human-readable display name. example: Corporate Cluster accountCorrelationConfig: - description: Reference to an Account Correlation Config object + description: Reference to account correlation config object. type: object + nullable: true properties: type: - description: The type of object being referenced + description: Type of object being referenced. type: string enum: - ACCOUNT_CORRELATION_CONFIG example: ACCOUNT_CORRELATION_CONFIG id: type: string - description: ID of the account correlation config + description: Account correlation config ID. example: 2c9180855d191c59015d28583727245a name: type: string - description: Human-readable display name of the account correlation config + description: Account correlation config's human-readable display name. example: Directory [source-62867] Account Correlation accountCorrelationRule: description: >- - Reference to a Rule that can do COMPLEX correlation, should only be used when accountCorrelationConfig can't - be used. + Reference to a rule that can do COMPLEX correlation. Only use this rule when you can't use accountCorrelationConfig. type: object + nullable: true properties: type: - description: The type of object being referenced + description: Type of object being referenced. type: string enum: - RULE example: RULE id: type: string - description: ID of the rule + description: Rule ID. example: 2c918085708c274401708c2a8a760001 name: type: string - description: Human-readable display name of the rule + description: Rule's human-readable display name. example: Example Rule managerCorrelationMapping: $ref: './ManagerCorrelationMapping.yaml' description: >- - Filter Object used during manager correlation to match incoming manager values to an existing manager's - Account/Identity + Filter object used during manager correlation to match incoming manager values to an existing manager's + account/identity. managerCorrelationRule: description: >- - Reference to the ManagerCorrelationRule, only used when a simple filter isn't sufficient. + Reference to the ManagerCorrelationRule. Only use this rule when a simple filter isn't sufficient. type: object + nullable: true properties: type: - description: The type of object being referenced + description: Type of object being referenced. type: string enum: - RULE example: RULE id: type: string - description: ID of the rule + description: Rule ID. example: 2c918085708c274401708c2a8a760001 name: type: string - description: Human-readable display name of the rule + description: Rule's human-readable display name. example: Example Rule beforeProvisioningRule: description: >- - Rule that runs on the CCG and allows for customization of provisioning plans before the connector is called. + Rule that runs on the CCG and allows for customization of provisioning plans before the API calls the connector. type: object + nullable: true properties: type: - description: The type of object being referenced + description: Type of object being referenced. type: string enum: - RULE example: RULE id: type: string - description: ID of the rule + description: Rule ID. example: 2c918085708c274401708c2a8a760001 name: type: string - description: Human-readable display name of the rule + description: Rule's human-readable display name. example: Example Rule schemas: type: array @@ -140,21 +144,21 @@ properties: type: object properties: type: - description: The type of object being referenced + description: Type of object being referenced. type: string enum: - CONNECTOR_SCHEMA example: CONNECTOR_SCHEMA id: type: string - description: ID of the schema + description: Schema ID. example: 2c91808568c529c60168cca6f90c1777 name: type: string - description: Human-readable display name of the schema + description: Schema's human-readable display name. example: MySchema description: >- - List of references to Schema objects + List of references to schema objects. example: - type: "CONNECTOR_SCHEMA" id: "2c9180835d191a86015d28455b4b232a" @@ -164,22 +168,23 @@ properties: name: "group" passwordPolicies: type: array + nullable: true items: type: object properties: type: - description: The type of object being referenced + description: Type of object being referenced. type: string enum: - PASSWORD_POLICY example: PASSWORD_POLICY id: type: string - description: ID of the policy + description: Policy ID. example: 2c91808568c529c60168cca6f90c1777 name: type: string - description: Human-readable display name of the policy + description: Policy's human-readable display name. example: My Password Policy description: >- List of references to the associated PasswordPolicy objects. @@ -196,7 +201,7 @@ properties: type: string description: >- Specifies the type of system being managed e.g. Active Directory, Workday, etc.. - If you are creating a Delimited File source, you must set the `provisionasCsv` query parameter to `true`. + If you are creating a delimited file source, you must set the `provisionasCsv` query parameter to `true`. example: "OpenLDAP - Direct" connector: type: string @@ -205,12 +210,12 @@ properties: connectorClass: type: string description: >- - The fully qualified name of the Java class that implements the connector interface. + Fully qualified name of the Java class that implements the connector interface. example: "sailpoint.connector.LDAPConnector" connectorAttributes: type: object description: >- - Connector specific configuration; will differ from type to type. + Connector specific configuration. This configuration will differ from type to type. example: healthCheckTimeout: 30 authSearchAttributes: [ @@ -227,82 +232,94 @@ properties: authoritative: type: boolean description: >- - When true indicates the source is referenced by an IdentityProfile. + When this is true, it indicates that the source is referenced by an identity profile. default: false example: false managementWorkgroup: - description: Reference to Management Workgroup for this Source + description: Reference to management workgroup for the source. type: object + nullable: true properties: type: - description: The type of object being referenced + description: Type of object being referenced. type: string enum: - GOVERNANCE_GROUP example: GOVERNANCE_GROUP id: type: string - description: ID of the management workgroup + description: Management workgroup ID. example: 2c91808568c529c60168cca6f90c2222 name: type: string - description: Human-readable display name of the management workgroup + description: Management workgroup's human-readable display name. example: My Management Workgroup healthy: type: boolean description: >- - When true indicates a healthy source - default: false + When this is true, it indicates that the source is healthy. + default: false example: true status: type: string + enum: + - SOURCE_STATE_ERROR_CLUSTER + - SOURCE_STATE_ERROR_SOURCE + - SOURCE_STATE_ERROR_VA + - SOURCE_STATE_FAILURE_CLUSTER + - SOURCE_STATE_FAILURE_SOURCE + - SOURCE_STATE_HEALTHY + - SOURCE_STATE_UNCHECKED_CLUSTER + - SOURCE_STATE_UNCHECKED_CLUSTER_NO_SOURCES + - SOURCE_STATE_UNCHECKED_SOURCE + - SOURCE_STATE_UNCHECKED_SOURCE_NO_ACCOUNTS description: >- - A status identifier, giving specific information on why a source is healthy or not + Status identifier that gives specific information about why a source is or isn't healthy. example: SOURCE_STATE_HEALTHY since: type: string description: >- - Timestamp showing when a source health check was last performed - example: "2021-09-28T15:48:29.3801666300Z" + Timestamp that shows when a source health check was last performed. + example: 2021-09-28T15:48:29.3801666300Z connectorId: type: string - description: The id of connector - example: "active-directory" + description: Connector ID + example: active-directory connectorName: type: string - description: The name of the connector that was chosen on source creation - example: "Active Directory" + description: Name of the connector that was chosen during source creation. + example: Active Directory connectionType: type: string - description: The type of connection (direct or file) - example: "file" + description: Type of connection (direct or file). + example: file connectorImplementationId: type: string - description: The connector implementation id + description: Connector implementation ID. example: "delimited-file" created: type: string - description: The date-time when the source was created + description: Date-time when the source was created format: date-time example: 2022-02-08T14:50:03.827Z modified: type: string - description: The date-time when the source was last modified + description: Date-time when the source was last modified. format: date-time example: 2024-01-23T18:08:50.897Z credentialProviderEnabled: - type: boolean - description: >- - Enables credential provider for this source. If credentialProvider is turned on - then source can use credential provider(s) to fetch credentials. - default: false - example: false + type: boolean + description: >- + If this is true, it enables a credential provider for the source. If credentialProvider is turned on, + then the source can use credential provider(s) to fetch credentials. + default: false + example: false category: type: string nullable: true default: null - description: The category of source (e.g. null, CredentialProvider) - example: "CredentialProvider" + description: Source category (e.g. null, CredentialProvider). + example: CredentialProvider required: - name - owner diff --git a/static/api-specs/idn/beta/schemas/WorkflowExecution.yaml b/static/api-specs/idn/beta/schemas/WorkflowExecution.yaml index 439b00609..99a2d747b 100644 --- a/static/api-specs/idn/beta/schemas/WorkflowExecution.yaml +++ b/static/api-specs/idn/beta/schemas/WorkflowExecution.yaml @@ -2,33 +2,33 @@ type: object properties: id: type: string - description: The workflow execution ID + description: Workflow execution ID. example: b393f4e2-4785-4d7f-ab27-3a6b8ded4c81 workflowId: type: string - description: The workflow ID + description: Workflow ID. example: d201c5d9-d37b-4a2f-af14-66414f39d568 requestId: type: string - description: This backend ID tracks a workflow request in the system. You can provide this ID in a customer support ticket for debugging purposes. + description: Backend ID that tracks a workflow request in the system. Provide this ID in a customer support ticket for debugging purposes. example: 41e12a74fa7b4a6a98ae47887b64acdb startTime: type: string format: date-time - description: The date/time the workflow started + description: Date/time when the workflow started. example: "2022-02-07T20:13:29.356648026Z" closeTime: type: string format: date-time - description: The date/time the workflow ended + description: Date/time when the workflow ended. example: "2022-02-07T20:13:31.682410165Z" status: - description: The workflow execution status + description: Workflow execution status. type: string enum: - "Completed" - "Failed" - "Canceled" - - "Running" + - "Executing" example: "Completed" diff --git a/static/api-specs/idn/v3/paths/access-request-status.yaml b/static/api-specs/idn/v3/paths/access-request-status.yaml index 31e271dbd..eb0712c7e 100644 --- a/static/api-specs/idn/v3/paths/access-request-status.yaml +++ b/static/api-specs/idn/v3/paths/access-request-status.yaml @@ -6,9 +6,12 @@ get: - Access Requests summary: Access Request Status description: >- - The Access Request Status API returns a list of access request statuses + Use this API to return a list of access request statuses based on the specified query parameters. + If an access request was made for access that an identity already has, the API ignores the access request. + These ignored requests do not display in the list of access request statuses. + Any token with any authority can request their own status. A token with ORG_ADMIN authority is required to call this API to get a list of statuses for other users. @@ -19,7 +22,7 @@ get: type: string example: 2c9180877b2b6ea4017b2c545f971429 description: >- - Filter the results by the identity for which the requests were made. + Filter the results by the identity the requests were made for. *me* indicates the current user. Mutually exclusive with *regarding-identity*. required: false @@ -29,7 +32,7 @@ get: type: string example: 2c9180877b2b6ea4017b2c545f971429 description: >- - Filter the results by the identity that made the requests. *me* + Filter the results by the identity twho made the requests. *me* indicates the current user. Mutually exclusive with *regarding-identity*. required: false @@ -39,7 +42,7 @@ get: type: string example: 2c9180877b2b6ea4017b2c545f971429 description: >- - Filter the results by the specified identity which is either the + Filter the results by the specified identity who is either the requester or target of the requests. *me* indicates the current user. Mutually exclusive with *requested-for* and *requested-by*. required: false @@ -49,14 +52,14 @@ get: type: string example: 2c9180877b2b6ea4017b2c545f971429 description: >- - Filter the results by the specified identity which is the + Filter the results by the specified identity who is the owner of the Identity Request Work Item. *me* indicates the current user. required: false - in: query name: count description: >- - If *true* it will populate the *X-Total-Count* response header with the - number of results that would be returned if *limit* and *offset* were + If this is true, the *X-Total-Count* response header populates with the + number of results that would be returned if limit and offset were ignored. required: false schema: @@ -115,7 +118,7 @@ get: required: false responses: "200": - description: List of requested item status. + description: List of requested item statuses. content: application/json: schema: diff --git a/static/api-specs/idn/v3/paths/access-requests.yaml b/static/api-specs/idn/v3/paths/access-requests.yaml index ceaa137b8..fe09be937 100644 --- a/static/api-specs/idn/v3/paths/access-requests.yaml +++ b/static/api-specs/idn/v3/paths/access-requests.yaml @@ -2,19 +2,21 @@ post: operationId: createAccessRequest security: - UserContextAuth: [ idn:access-request:create ] - summary: Submit an Access Request + summary: Submit Access Request tags: - Access Requests description: | - This submits the access request into IdentityNow, where it will follow any IdentityNow approval processes. + Use this API to submit an access request in Identity Security Cloud (ISC), where it follows any ISC approval processes. - Access requests are processed asynchronously by IdentityNow. A success response from this endpoint means the request - has been submitted to IDN and is queued for processing. Because this endpoint is asynchronous, it will not return an error - if you submit duplicate access requests in quick succession, or you submit an access request for access that is already in progress, approved, or rejected. - It is best practice to check for any existing access requests that reference the same access items before submitting a new access request. This can - be accomplished by using the [access request status](https://developer.sailpoint.com/idn/api/v3/list-access-request-status) or the [pending access request approvals](https://developer.sailpoint.com/idn/api/v3/list-pending-approvals) endpoints. You can also - use the [search API](https://developer.sailpoint.com/idn/api/v3/search) to check the existing access items that an identity has before submitting - an access request to ensure you are not requesting access that is already granted. + Access requests are processed asynchronously by ISC. A successful response from this endpoint means that the request + has been submitted to ISC and is queued for processing. Because this endpoint is asynchronous, it doesn't return an error + if you submit duplicate access requests in quick succession or submit an access request for access that is already in progress, approved, or rejected. + + It's best practice to check for any existing access requests that reference the same access items before submitting a new access request. This can + be accomplished by using the [List Access Request Status](https://developer.sailpoint.com/idn/api/v3/list-access-request-status) or the [Pending Access Request Approvals](https://developer.sailpoint.com/idn/api/v3/list-pending-approvals) APIs. You can also + use the [Search API](https://developer.sailpoint.com/idn/api/v3/search) to check the existing access items an identity has before submitting + an access request to ensure that you aren't requesting access that is already granted. If you use this API to request access that an identity already has, the API will ignore the request. + These ignored requests do not display when you use the [List Access Request Status](https://developer.sailpoint.com/idn/api/v3/list-access-request-status) API. There are two types of access request: @@ -34,8 +36,6 @@ post: * Revoke requests for entitlements are limited to 1 entitlement per access request currently. * [Roles, Access Profiles] You can specify a `removeDate` if the access doesn't already have a sunset date. The `removeDate` must be a future date, in the UTC timezone. * Allows a manager to request to revoke access for direct employees. A token with ORG_ADMIN authority can also request to revoke access from anyone. - - >**Note:** There is no indication to the approver in the IdentityNow UI that the approval request is for a revoke action. Take this into consideration when calling this API. A token with API authority cannot be used to call this endpoint. diff --git a/static/api-specs/idn/v3/paths/campaign-activate.yaml b/static/api-specs/idn/v3/paths/campaign-activate.yaml index f110db213..c53b6f6e9 100644 --- a/static/api-specs/idn/v3/paths/campaign-activate.yaml +++ b/static/api-specs/idn/v3/paths/campaign-activate.yaml @@ -4,9 +4,9 @@ post: - Certification Campaigns summary: Activate a Campaign description: >- - Submits a job to activate the campaign with the given Id. The campaign must be staged. + Use this API to submit a job to activate the certified campaign with the specified ID. The campaign must be staged. - Requires roles of CERT_ADMIN and ORG_ADMIN + Calling this endpoint requires roles of CERT_ADMIN and ORG_ADMIN. security: - UserContextAuth: [idn:campaign:update] requestBody: @@ -26,7 +26,7 @@ post: schema: type: string required: true - description: The campaign id + description: Campaign ID. example: ef38f94347e94562b5bb8424a56397d8 responses: '202': diff --git a/static/api-specs/idn/v3/paths/campaign-complete.yaml b/static/api-specs/idn/v3/paths/campaign-complete.yaml index b40480343..18bd8d46f 100644 --- a/static/api-specs/idn/v3/paths/campaign-complete.yaml +++ b/static/api-specs/idn/v3/paths/campaign-complete.yaml @@ -12,10 +12,10 @@ post: ::: - Completes a certification campaign. This is provided to admins so that they + Use this API to complete a certification campaign. This functionality is provided to admins so that they can complete a certification even if all items have not been completed. - Requires roles of CERT_ADMIN and ORG_ADMIN + Calling this endpoint requires roles of CERT_ADMIN and ORG_ADMIN. security: - UserContextAuth: [idn:campaign:update] requestBody: @@ -33,7 +33,7 @@ post: schema: type: string required: true - description: The campaign id + description: Campaign ID. example: ef38f94347e94562b5bb8424a56397d8 responses: '202': diff --git a/static/api-specs/idn/v3/paths/campaign-reports-configuration.yaml b/static/api-specs/idn/v3/paths/campaign-reports-configuration.yaml index 2e9f46e33..e22688a8b 100644 --- a/static/api-specs/idn/v3/paths/campaign-reports-configuration.yaml +++ b/static/api-specs/idn/v3/paths/campaign-reports-configuration.yaml @@ -4,15 +4,15 @@ get: - Certification Campaigns summary: Get Campaign Reports Configuration description: >- - Fetches configuration for campaign reports. Currently it includes only one element - identity attributes defined as custom report columns. + Use this API to fetch the configuration for certification campaign reports. The configuration includes only one element - identity attributes defined as custom report columns. - Requires roles of CERT_ADMIN and ORG_ADMIN. + Calling this endpoint requires roles of CERT_ADMIN and ORG_ADMIN. security: - UserContextAuth: [ idn:campaign-reports-config:read ] responses: '200': - description: Campaign Report Configuration + description: Campaign report configuration. content: application/json: schema: @@ -33,22 +33,22 @@ put: - Certification Campaigns summary: Set Campaign Reports Configuration description: >- - Overwrites configuration for campaign reports. + Use this API to overwrite the configuration for campaign reports. - Requires roles CERT_ADMIN and ORG_ADMIN. + Calling this endpoint requires roles of CERT_ADMIN and ORG_ADMIN. security: - UserContextAuth: [ idn:campaign-reports-config:write ] requestBody: required: true - description: Campaign Report Configuration + description: Campaign report configuration. content: application/json: schema: $ref: '../schemas/CampaignReportsConfig.yaml' responses: '200': - description: The persisted Campaign Report Configuration + description: The persisted campaign report configuration. content: application/json: schema: diff --git a/static/api-specs/idn/v3/paths/campaign-reports.yaml b/static/api-specs/idn/v3/paths/campaign-reports.yaml index 0e84e2a47..7169d2d0b 100644 --- a/static/api-specs/idn/v3/paths/campaign-reports.yaml +++ b/static/api-specs/idn/v3/paths/campaign-reports.yaml @@ -4,9 +4,9 @@ get: - Certification Campaigns summary: Get Campaign Reports description: >- - Fetches all reports for a certification campaign by campaign ID. + Use this API to fetch all reports for a certification campaign by campaign ID. - Requires roles of CERT_ADMIN, DASHBOARD, ORG_ADMIN and REPORT_ADMIN + Calling this endpoint requires roles of CERT_ADMIN, DASHBOARD, ORG_ADMIN and REPORT_ADMIN. security: - UserContextAuth: [idn:campaign-report:read] parameters: @@ -16,7 +16,7 @@ get: type: string example: 2c91808571bcfcf80171c23e4b4221fc required: true - description: The ID of the campaign for which reports are being fetched. + description: ID of the campaign whose reports are being fetched. responses: '200': description: Array of campaign report objects. diff --git a/static/api-specs/idn/v3/paths/campaign-run-remediation-scan.yaml b/static/api-specs/idn/v3/paths/campaign-run-remediation-scan.yaml index 5022e14fe..ef130d4aa 100644 --- a/static/api-specs/idn/v3/paths/campaign-run-remediation-scan.yaml +++ b/static/api-specs/idn/v3/paths/campaign-run-remediation-scan.yaml @@ -4,9 +4,9 @@ post: - Certification Campaigns summary: Run Campaign Remediation Scan description: >- - Kicks off remediation scan task for a certification campaign. + Use this API to run a remediation scan task for a certification campaign. - Requires roles of CERT_ADMIN and ORG_ADMIN + Calling this endpoint requires roles of CERT_ADMIN and ORG_ADMIN. security: - UserContextAuth: [idn:campaign-report:run] parameters: @@ -16,7 +16,7 @@ post: type: string example: 2c91808571bcfcf80171c23e4b4221fc required: true - description: The ID of the campaign for which remediation scan is being run. + description: ID of the campaign the remediation scan is being run for. responses: '202': $ref: '../responses/202.yaml' diff --git a/static/api-specs/idn/v3/paths/campaign-run-report.yaml b/static/api-specs/idn/v3/paths/campaign-run-report.yaml index 58a1eea1f..c8f5377fc 100644 --- a/static/api-specs/idn/v3/paths/campaign-run-report.yaml +++ b/static/api-specs/idn/v3/paths/campaign-run-report.yaml @@ -4,9 +4,9 @@ post: - Certification Campaigns summary: Run Campaign Report description: >- - Runs a report for a certification campaign. + Use this API to run a report for a certification campaign. - Requires the following roles: CERT_ADMIN, DASHBOARD, ORG_ADMIN and REPORT_ADMIN. + Calling this endpoint requires the following roles: CERT_ADMIN, DASHBOARD, ORG_ADMIN and REPORT_ADMIN. security: - UserContextAuth: [idn:campaign-report:run] parameters: @@ -16,13 +16,13 @@ post: type: string example: 2c91808571bcfcf80171c23e4b4221fc required: true - description: The ID of the campaign for which report is being run. + description: ID of the campaign the report is being run for. - in: path name: type schema: $ref: '../schemas/ReportType.yaml' required: true - description: The type of the report to run. + description: Type of the report to run. responses: '202': $ref: '../responses/202.yaml' diff --git a/static/api-specs/idn/v3/paths/campaign-template-generate.yaml b/static/api-specs/idn/v3/paths/campaign-template-generate.yaml index 4e0b57852..7b6c66fca 100644 --- a/static/api-specs/idn/v3/paths/campaign-template-generate.yaml +++ b/static/api-specs/idn/v3/paths/campaign-template-generate.yaml @@ -6,31 +6,31 @@ post: security: - UserContextAuth: [idn:campaign-template:run] description: >- - Generates a new campaign from a campaign template. + Use this API to generate a new certification campaign from a campaign template. The campaign object contained in the template has special formatting applied to its name and description - fields in order to determine the generated campaign's name/description. Placeholders in those fields are + fields that determine the generated campaign's name/description. Placeholders in those fields are formatted with the current date and time upon generation. - Placeholders consist of a percent sign followed by a letter indicating what should be inserted; for - example, "%Y" will insert the current year; a campaign template named "Campaign for %y" would generate a + Placeholders consist of a percent sign followed by a letter indicating what should be inserted. For + example, "%Y" inserts the current year, and a campaign template named "Campaign for %y" generates a campaign called "Campaign for 2020" (assuming the year at generation time is 2020). Valid placeholders are the date/time conversion suffix characters supported by [java.util.Formatter](https://docs.oracle.com/javase/8/docs/api/java/util/Formatter.html). - Requires roles ORG_ADMIN. + Calling this endpoint requires the ORG_ADMIN role. parameters: - in: path name: id schema: type: string required: true - description: The ID of the campaign template to use for generation. + description: ID of the campaign template to use for generation. example: 2c9180835d191a86015d28455b4a2329 responses: '200': description: >- - Indicates a campaign was successfully generated from this template, and returns a reference to the + This response indicates that a campaign was successfully generated from this template, and the API returns a reference to the new campaign. content: application/json: diff --git a/static/api-specs/idn/v3/paths/campaign-template-schedule.yaml b/static/api-specs/idn/v3/paths/campaign-template-schedule.yaml index ca5ac6b1c..72b72325b 100644 --- a/static/api-specs/idn/v3/paths/campaign-template-schedule.yaml +++ b/static/api-specs/idn/v3/paths/campaign-template-schedule.yaml @@ -2,9 +2,9 @@ get: operationId: getCampaignTemplateSchedule tags: - Certification Campaigns - summary: Gets a Campaign Template's Schedule + summary: Get Campaign Template Schedule description: >- - Gets the schedule for a campaign template. Returns a 404 if there is no schedule set. + Use this API to get the schedule for a certification campaign template. The API returns a 404 if there is no schedule set. security: - UserContextAuth: [ idn:campaign-template:read ] parameters: @@ -13,12 +13,12 @@ get: schema: type: string required: true - description: The ID of the campaign template whose schedule is being fetched. + description: ID of the campaign template whose schedule is being fetched. example: "04bedce387bd47b2ae1f86eb0bb36dee" responses: '200': description: >- - The current schedule for the campaign template. See the PUT endpoint documentation for + Current schedule for the campaign template. See the [Set Campaign Template Schedule endpoint documentation](https://developer.sailpoint.com/docs/api/v3/set-campaign-template-schedule) for more examples. content: application/json: @@ -40,10 +40,9 @@ put: operationId: setCampaignTemplateSchedule tags: - Certification Campaigns - summary: Sets a Campaign Template's Schedule + summary: Set Campaign Template Schedule description: >- - Sets the schedule for a campaign template. If a schedule already exists, it will be overwritten with - the new one. + Use this API to set the schedule for a certification campaign template. If a schedule already exists, the API overwrites it with the new one. security: - UserContextAuth: [ idn:campaign-template:run ] parameters: @@ -52,7 +51,7 @@ put: schema: type: string required: true - description: The ID of the campaign template being scheduled. + description: ID of the campaign template being scheduled. example: "04bedce387bd47b2ae1f86eb0bb36dee" requestBody: content: @@ -145,9 +144,9 @@ delete: operationId: deleteCampaignTemplateSchedule tags: - Certification Campaigns - summary: Deletes a Campaign Template's Schedule + summary: Delete Campaign Template Schedule description: >- - Deletes the schedule for a campaign template. Returns a 404 if there is no schedule set. + Use this API to delete the schedule for a certification campaign template. The API returns a 404 if there is no schedule set. security: - UserContextAuth: [ idn:campaign-template:run ] parameters: @@ -156,7 +155,7 @@ delete: schema: type: string required: true - description: The ID of the campaign template whose schedule is being deleted. + description: ID of the campaign template whose schedule is being deleted. example: "04bedce387bd47b2ae1f86eb0bb36dee" responses: '204': diff --git a/static/api-specs/idn/v3/paths/campaign-template.yaml b/static/api-specs/idn/v3/paths/campaign-template.yaml index fd6b28b4a..b4b313469 100644 --- a/static/api-specs/idn/v3/paths/campaign-template.yaml +++ b/static/api-specs/idn/v3/paths/campaign-template.yaml @@ -3,7 +3,7 @@ patch: tags: - Certification Campaigns summary: Update a Campaign Template - description: Allows updating individual fields on a campaign template using the [JSON Patch](https://tools.ietf.org/html/rfc6902) standard. + description: Use this API to update individual fields on a certification campaign template, using the [JSON Patch](https://tools.ietf.org/html/rfc6902) standard. security: - UserContextAuth: [ idn:campaign-template:update ] parameters: @@ -12,7 +12,7 @@ patch: schema: type: string required: true - description: The ID of the campaign template being modified. + description: ID of the campaign template being modified. example: 2c9180835d191a86015d28455b4a2329 requestBody: required: true @@ -40,7 +40,7 @@ patch: responses: '200': description: >- - Indicates the PATCH operation succeeded, and returns the template's new representation. + This response indicates that the PATCH operation succeeded, and the API returns the template's new representation. content: application/json: schema: @@ -71,7 +71,7 @@ get: tags: - Certification Campaigns summary: Get a Campaign Template - description: Fetches a campaign template by ID. + description: Use this API to fetch a certification campaign template by ID. security: - UserContextAuth: [ idn:campaign-template:read ] parameters: @@ -80,11 +80,11 @@ get: schema: type: string required: true - description: The desired campaign template's ID. + description: Requested campaign template's ID. example: 2c9180835d191a86015d28455b4a2329 responses: '200': - description: The data for the campaign matching the given ID. + description: Data for the campaign matching the given ID. content: application/json: schema: @@ -115,7 +115,7 @@ delete: tags: - Certification Campaigns summary: Delete a Campaign Template - description: Deletes a campaign template by ID. + description: Use this API to delete a certification campaign template by ID. security: - UserContextAuth: [ idn:campaign-template:delete ] parameters: @@ -124,7 +124,7 @@ delete: schema: type: string required: true - description: The ID of the campaign template being deleted. + description: ID of the campaign template being deleted. example: 2c9180835d191a86015d28455b4a2329 responses: '204': diff --git a/static/api-specs/idn/v3/paths/campaign-templates.yaml b/static/api-specs/idn/v3/paths/campaign-templates.yaml index babefaa83..ffd23a896 100644 --- a/static/api-specs/idn/v3/paths/campaign-templates.yaml +++ b/static/api-specs/idn/v3/paths/campaign-templates.yaml @@ -4,7 +4,7 @@ post: - Certification Campaigns summary: Create a Campaign Template description: >- - Create a campaign Template based on campaign. + Use this API to create a certification campaign template based on campaign. security: - UserContextAuth: [ idn:campaign-template:create ] requestBody: @@ -49,15 +49,14 @@ post: '500': $ref: '../responses/500.yaml' get: - operationId: listCampaignTemplates + operationId: getCampaignTemplates tags: - Certification Campaigns summary: List Campaign Templates description: >- - Lists all CampaignTemplates. Scope can be reduced via standard V3 query params. - - - All CampaignTemplates matching the query params + Use this API to get a list of all campaign templates. Scope can be reduced through standard V3 query params. + + The API returns all campaign templates matching the query parameters. security: - UserContextAuth: [ idn:campaign-template-list:read ] @@ -95,7 +94,7 @@ get: example: name eq "manager template" responses: '200': - description: List of campaign template objects + description: List of campaign template objects. content: application/json: schema: diff --git a/static/api-specs/idn/v3/paths/campaign.yaml b/static/api-specs/idn/v3/paths/campaign.yaml index 9b78ec442..0c92a150c 100644 --- a/static/api-specs/idn/v3/paths/campaign.yaml +++ b/static/api-specs/idn/v3/paths/campaign.yaml @@ -2,10 +2,10 @@ get: operationId: getCampaign tags: - Certification Campaigns - summary: Get a campaign + summary: Get Campaign description: >- - Retrieves information for an existing campaign using the campaign's ID. Authorized callers must be a - reviewer for this campaign, an ORG_ADMIN, or a CERT_ADMIN. + Use this API to get information for an existing certification campaign by the campaign's ID. + Authorized callers must be reviewers for this campaign, ORG_ADMINs, or a CERT_ADMINs. security: - UserContextAuth: [] parameters: @@ -14,11 +14,11 @@ get: schema: type: string required: true - description: The ID of the campaign to be retrieved + description: ID of the campaign to be retrieved. example: 2c91808571bcfcf80171c23e4b4221fc responses: '200': - description: A campaign object + description: Requested campaign object. content: application/json: schema: @@ -49,7 +49,7 @@ patch: tags: - Certification Campaigns summary: Update a Campaign - description: Allows updating individual fields on a campaign using the [JSON Patch](https://tools.ietf.org/html/rfc6902) standard. + description: Use this API to update individual fields on a certification campaign, using the [JSON Patch](https://tools.ietf.org/html/rfc6902) standard. security: - UserContextAuth: [idn:campaign:update,idn:campaign:read] parameters: @@ -58,7 +58,7 @@ patch: schema: type: string required: true - description: The ID of the campaign template being modified. + description: ID of the campaign template being modified. example: 2c91808571bcfcf80171c23e4b4221fc requestBody: required: true @@ -66,7 +66,7 @@ patch: A list of campaign update operations according to the [JSON Patch](https://tools.ietf.org/html/rfc6902) standard. The fields that can be patched differ based on the status of the campaign. - In the *STAGED* status, the following fields can be patched: + When the campaign is in the *STAGED* status, you can patch these fields: * name * description * recommendationsEnabled @@ -74,7 +74,7 @@ patch: * emailNotificationEnabled * autoRevokeAllowed - In the *ACTIVE* status, the following fields can be patched: + When the campaign is in the *ACTIVE* status, you can patch these fields: * deadline content: application/json-patch+json: @@ -92,7 +92,7 @@ patch: responses: '200': description: >- - Indicates the PATCH operation succeeded, and returns the campaign's new representation. + This response indicates that the PATCH operation succeeded, and the API returns the campaign's new representation. content: application/json: schema: diff --git a/static/api-specs/idn/v3/paths/campaigns-delete.yaml b/static/api-specs/idn/v3/paths/campaigns-delete.yaml index e5e0f8d27..840c4292d 100644 --- a/static/api-specs/idn/v3/paths/campaigns-delete.yaml +++ b/static/api-specs/idn/v3/paths/campaigns-delete.yaml @@ -2,14 +2,14 @@ post: operationId: deleteCampaigns tags: - Certification Campaigns - summary: Deletes Campaigns + summary: Delete Campaigns description: >- - Deletes campaigns whose Ids are specified in the provided list of campaign Ids. - Authorized callers must be an ORG_ADMIN or a CERT_ADMIN. + Use this API to delete certification campaigns whose IDs are specified in the provided list of campaign IDs. + Authorized callers must be ORG_ADMINs or CERT_ADMINs. security: - UserContextAuth: [idn:campaign:delete] requestBody: - description: The ids of the campaigns to delete. + description: IDs of the campaigns to delete. required: true content: application/json: diff --git a/static/api-specs/idn/v3/paths/campaigns.yaml b/static/api-specs/idn/v3/paths/campaigns.yaml index 5f7c62deb..f8cf45ec0 100644 --- a/static/api-specs/idn/v3/paths/campaigns.yaml +++ b/static/api-specs/idn/v3/paths/campaigns.yaml @@ -4,8 +4,7 @@ get: - Certification Campaigns summary: List Campaigns description: >- - Gets campaigns and returns them in a list. Can provide increased level of detail for each campaign if provided - the correct query. + Use this API to get a list of campaigns. This API can provide increased level of detail for each campaign for the correct provided query. security: - UserContextAuth: [idn:campaign-list:read] parameters: @@ -86,7 +85,7 @@ post: tags: - Certification Campaigns summary: Create a campaign - description: Creates a new Certification Campaign with the information provided in the request body. + description: Use this API to create a certification campaign with the information provided in the request body. security: - UserContextAuth: [idn:campaign:create] requestBody: @@ -106,7 +105,7 @@ post: $ref: '../schemas/campaign/examples/CreateCampaignRoleComposition.yaml' responses: '200': - description: Indicates that the campaign requested was successfully created and returns its representation. + description: This response indicates that the requested campaign was successfully created, and the API returns its representation. content: application/json: schema: diff --git a/static/api-specs/idn/v3/paths/identity-certifications.yaml b/static/api-specs/idn/v3/paths/identity-certifications.yaml index 3883aef51..b2f05f528 100644 --- a/static/api-specs/idn/v3/paths/identity-certifications.yaml +++ b/static/api-specs/idn/v3/paths/identity-certifications.yaml @@ -2,11 +2,11 @@ get: operationId: listIdentityCertifications tags: - Certifications - summary: Identity Campaign Certifications by IDs + summary: List Identity Campaign Certifications description: >- - This API returns a list of identity campaign certifications that satisfy the given query parameters. Any + Use this API to get a list of identity campaign certifications for the specified query parameters. Any authenticated token can call this API, but only certifications you are authorized to review will be returned. This - API does not support requests for certifications assigned to Governance Groups. + API does not support requests for certifications assigned to governance groups. parameters: - in: query name: reviewer-identity @@ -14,7 +14,7 @@ get: type: string example: me description: >- - The ID of reviewer identity. *me* indicates the current user. + Reviewer's identity. *me* indicates the current user. required: false - $ref: '../parameters/limit.yaml' - $ref: '../parameters/offset.yaml' @@ -56,7 +56,7 @@ get: Sorting is supported for the following fields: **name, due, signed** responses: '200': - description: List of identity campaign certifications + description: List of identity campaign certifications. content: application/json: schema: diff --git a/static/api-specs/idn/v3/paths/identity-profile-lifecycle-state.yaml b/static/api-specs/idn/v3/paths/identity-profile-lifecycle-state.yaml index 003f1be25..26dcb2fa3 100644 --- a/static/api-specs/idn/v3/paths/identity-profile-lifecycle-state.yaml +++ b/static/api-specs/idn/v3/paths/identity-profile-lifecycle-state.yaml @@ -2,9 +2,9 @@ get: operationId: getLifecycleState tags: - Lifecycle States - summary: Retrieves Lifecycle State + summary: Get Lifecycle State description: >- - This endpoint retrieves a Lifecycle State. + Use this endpoint to get a lifecycle state by its ID and its associated identity profile ID. A token with ORG_ADMIN or API authority is required to call this API. security: @@ -12,14 +12,14 @@ get: parameters: - in: path name: identity-profile-id - description: Identity Profile ID + description: Identity profile ID. required: true schema: type: string example: 2b838de9-db9b-abcf-e646-d4f274ad4238 - in: path name: lifecycle-state-id - description: Lifecycle State ID + description: Lifecycle state ID. required: true schema: type: string @@ -49,7 +49,7 @@ patch: - Lifecycle States summary: Update Lifecycle State description: >- - This endpoint updates individual Lifecycle State fields using the [JSON Patch](https://tools.ietf.org/html/rfc6902) standard. + Use this endpoint to update individual lifecycle state fields, using the [JSON Patch](https://tools.ietf.org/html/rfc6902) standard. A token with ORG_ADMIN or API authority is required to call this API. security: @@ -57,14 +57,14 @@ patch: parameters: - in: path name: identity-profile-id - description: Identity Profile ID + description: Identity profile ID. required: true schema: type: string example: 2b838de9-db9b-abcf-e646-d4f274ad4238 - in: path name: lifecycle-state-id - description: Lifecycle State ID + description: Lifecycle state ID. required: true schema: type: string @@ -135,9 +135,9 @@ delete: operationId: deleteLifecycleState tags: - Lifecycle States - summary: Delete Lifecycle State by ID + summary: Delete Lifecycle State description: >- - This endpoint deletes the Lifecycle State using its ID. + Use this endpoint to delete the lifecycle state by its ID. A token with API, or ORG_ADMIN authority is required to call this API. security: @@ -145,14 +145,14 @@ delete: parameters: - in: path name: identity-profile-id - description: Identity Profile ID + description: Identity profile ID. required: true schema: type: string example: 2b838de9-db9b-abcf-e646-d4f274ad4238 - in: path name: lifecycle-state-id - description: Lifecycle State ID + description: Lifecycle state ID. required: true schema: type: string diff --git a/static/api-specs/idn/v3/paths/identity-profile-lifecycle-states.yaml b/static/api-specs/idn/v3/paths/identity-profile-lifecycle-states.yaml index df26c3275..72678561e 100644 --- a/static/api-specs/idn/v3/paths/identity-profile-lifecycle-states.yaml +++ b/static/api-specs/idn/v3/paths/identity-profile-lifecycle-states.yaml @@ -1,10 +1,10 @@ get: - operationId: listLifecycleStates + operationId: getLifecycleStates tags: - Lifecycle States summary: Lists LifecycleStates description: >- - This end-point lists all the LifecycleStates associated with IdentityProfiles. + Use this endpoint to list all lifecycle states by their associated identity profiles. A token with API, or ORG_ADMIN authority is required to call this API. security: @@ -12,11 +12,11 @@ get: parameters: - in: path name: identity-profile-id - description: The IdentityProfile id + description: Identity profile ID. required: true schema: type: string - example: ef38f94347e94562b5bb8424a56397d8 + example: 2b838de9-db9b-abcf-e646-d4f274ad4238 - $ref: '../parameters/limit.yaml' - $ref: '../parameters/offset.yaml' - $ref: '../parameters/count.yaml' @@ -34,7 +34,7 @@ get: Sorting is supported for the following fields: **created, modified** responses: '200': - description: List of LifecycleState objects + description: List of LifecycleState objects. content: application/json: schema: @@ -57,7 +57,7 @@ post: - Lifecycle States summary: Create Lifecycle State description: >- - This API creates a new Lifecycle State. + Use this endpoint to create a lifecycle state. A token with ORG_ADMIN or API authority is required to call this API. security: @@ -65,13 +65,13 @@ post: parameters: - in: path name: identity-profile-id - description: Identity Profile ID + description: Identity profile ID. required: true schema: type: string - example: ef38f94347e94562b5bb8424a56397d8 + example: 2b838de9-db9b-abcf-e646-d4f274ad4238 requestBody: - description: Lifecycle State + description: Lifecycle state to be created. required: true content: application/json: diff --git a/static/api-specs/idn/v3/paths/identity-set-lifecycle-state.yaml b/static/api-specs/idn/v3/paths/identity-set-lifecycle-state.yaml index 7c9f9c20d..17aaf979a 100644 --- a/static/api-specs/idn/v3/paths/identity-set-lifecycle-state.yaml +++ b/static/api-specs/idn/v3/paths/identity-set-lifecycle-state.yaml @@ -4,7 +4,7 @@ post: - Lifecycle States summary: Set Lifecycle State description: >- - This endpoint will set/update an identity's lifecycle state to the one provided and updates the corresponding identity profile. + Use this endpoint to set/update an identity's lifecycle state to the one provided and update the corresponding identity profile. A token with ORG_ADMIN or API authority is required to call this API. security: diff --git a/static/api-specs/idn/v3/paths/schemas.yaml b/static/api-specs/idn/v3/paths/schemas.yaml index eb13daeb0..7fbba34a0 100644 --- a/static/api-specs/idn/v3/paths/schemas.yaml +++ b/static/api-specs/idn/v3/paths/schemas.yaml @@ -1,31 +1,33 @@ get: - operationId: listSourceSchemas + operationId: getSourceSchemas tags: - Sources - summary: List Schemas on a Source + summary: List Schemas on Source description: | - Lists the Schemas that exist on the specified Source in IdentityNow. + Use this API to list the schemas that exist on the specified source in Identity Security Cloud (ISC). parameters: - in: path name: sourceId required: true schema: type: string - description: The Source ID. + description: Source ID. example: 2c9180835d191a86015d28455b4a2329 - in: query name: include-types required: false schema: type: string + enum: + - group + - user description: >- - If set to 'group', then the account schema is filtered and only group schemas are returned. Only a - value of 'group' is recognized. + If this is set to `group`, the API filters the account schema and only returns only group schemas. If this is set to `user`, the API returns the account schema for the source. example: group responses: '200': - description: The Schemas were successfully retrieved. + description: The schemas were successfully retrieved. content: application/json: schema: @@ -48,16 +50,16 @@ post: operationId: createSourceSchema tags: - Sources - summary: Create Schema on a Source + summary: Create Schema on Source description: | - Creates a new Schema on the specified Source in IdentityNow. + Use this API to create a new schema on the specified source in Identity Security Cloud (ISC). parameters: - in: path name: sourceId required: true schema: type: string - description: The Source id. + description: Source ID. example: 2c9180835d191a86015d28455b4a2329 requestBody: required: true @@ -67,7 +69,7 @@ post: $ref: '../schemas/Schema.yaml' responses: '201': - description: The Schema was successfully created on the specified Source. + description: The schema was successfully created on the specified source. content: application/json: schema: diff --git a/static/api-specs/idn/v3/paths/source.yaml b/static/api-specs/idn/v3/paths/source.yaml index 60bd541b4..792a8f030 100644 --- a/static/api-specs/idn/v3/paths/source.yaml +++ b/static/api-specs/idn/v3/paths/source.yaml @@ -6,7 +6,7 @@ get: - Sources summary: Get Source by ID description: >- - This end-point gets a specific source in IdentityNow. + Use this API to get a source by a specified ID in Identity Security Cloud (ISC). A token with ORG_ADMIN, SOURCE_ADMIN, or SOURCE_SUBADMIN authority is required to call this API. parameters: @@ -15,11 +15,11 @@ get: schema: type: string required: true - description: The Source id + description: Source ID. example: 2c9180835d191a86015d28455b4a2329 responses: '200': - description: A Source object + description: Source object. content: application/json: schema: @@ -44,10 +44,9 @@ put: - Sources summary: Update Source (Full) description: | - This API updates a source in IdentityNow, using a full object representation. In other words, the existing Source - configuration is completely replaced. + Use this API to update a source in Identity Security Cloud (ISC), using a full object representation. This means that when you use this API, it completely replaces the existing source configuration. - Some fields are immutable and cannot be changed, such as: + These fields are immutable, so they cannot be changed: * id * type @@ -65,7 +64,7 @@ put: schema: type: string required: true - description: The Source id + description: Source ID. example: 2c9180835d191a86015d28455b4a2329 requestBody: required: true @@ -76,8 +75,8 @@ put: responses: '200': description: >- - Updated Source object. Any passwords will only show the the encrypted cipher-text, as they are not decrypt-able - in IdentityNow cloud-based services, per IdentityNow security design. + Updated Source object. Any passwords will only show the the encrypted cipher-text so that they aren't decryptable + in Identity Security Cloud (ISC) cloud-based services, per ISC security design. content: application/json: schema: @@ -102,10 +101,10 @@ patch: - Sources summary: Update Source (Partial) description: | - This API partially updates a source in IdentityNow, using a list of patch operations according to the + Use this API to partially update a source in Identity Security Cloud (ISC), using a list of patch operations according to the [JSON Patch](https://tools.ietf.org/html/rfc6902) standard. - Some fields are immutable and cannot be changed, such as: + These fields are immutable, so they cannot be changed: * id * type @@ -125,13 +124,13 @@ patch: schema: type: string required: true - description: The Source id + description: Source ID. example: 2c9180835d191a86015d28455b4a2329 requestBody: required: true description: >- A list of account update operations according to the [JSON Patch](https://tools.ietf.org/html/rfc6902) standard. - Any password changes are submitted as plain-text and encrypted upon receipt in IdentityNow. + Any password changes are submitted as plain-text and encrypted upon receipt in Identity Security Cloud (ISC). content: application/json-patch+json: schema: @@ -150,7 +149,7 @@ patch: } ] Edit the source cluster: - description: This example shows how to edit a source cluster by id. + description: This example shows how to edit a source cluster by ID. value: [ { @@ -175,8 +174,8 @@ patch: ] } ] - Change a source description and cluster in One Call: - description: This example shows how multiple fields may be updated with a single patch call. + Change a source description and cluster in one call: + description: This example shows how multiple fields may be updated with a single PATCH call. value: [ { @@ -191,7 +190,7 @@ patch: } ] Add a filter string to the connector: - description: This example shows how you can add a filter to incoming accounts during the account aggregation process. In the example below, any account that does not have an "m" or "d" in the id will be aggregated. + description: This example shows how you can add a filter to incoming accounts during the account aggregation process. In the example, any account that does not have an "m" or "d" in the ID will be aggregated. value: [ { @@ -201,7 +200,7 @@ patch: } ] Update connector attribute for specific operation type: - description: This example shows how you can update the 3rd object in the connection parameters operationType. This will change it from a standard group aggregation to a group aggregation on the "test" entitlement type. + description: This example shows how you can update the 3rd object in the connection parameter's `operationType`. This changes it from a standard group aggregation to a group aggregation on the "test" entitlement type. value: [ { @@ -213,8 +212,8 @@ patch: responses: '200': description: >- - Updated Source object. Any passwords will only show the the encrypted cipher-text, as they are not decrypt-able - in IdentityNow cloud-based services, per IdentityNow security design. + Updated Source object. Any passwords will only show the the encrypted cipher-text so that they aren't decryptable + in Identity Security Cloud (ISC) cloud-based services, per ISC security design. content: application/json: schema: @@ -239,19 +238,19 @@ delete: - Sources summary: Delete Source by ID description: >- - This end-point deletes a specific source in IdentityNow. + Use this API to delete a specific source in Identity Security Cloud (ISC). + + The API removes all the accounts on the source first, and then it deletes the source. + You can retrieve the actual task execution status with this method: GET `/task-status/{id}` A token with ORG_ADMIN, SOURCE_ADMIN, or SOURCE_SUBADMIN authority is required to call this API. - - All of accounts on the source will be removed first, then the source will be deleted. - Actual status of task execution can be retrieved via method GET `/task-status/{id}` parameters: - in: path name: id schema: type: string required: true - description: The Source id + description: Source ID. example: 2c9180835d191a86015d28455b4a2329 responses: '202': @@ -262,22 +261,22 @@ delete: type: object properties: type: - description: The type of object being referenced + description: Type of object being referenced. type: string enum: - TASK_RESULT example: TASK_RESULT id: type: string - description: ID of the task result + description: Task result ID. example: 2c91808779ecf55b0179f720942f181a name: type: string - description: Human-readable display name of the task result (should be null/empty) + description: Task result's human-readable display name (this should be null/empty). example: null examples: deleteSource: - summary: Response returned when deleting a source + summary: Response returned when a source is being deleted. value: {"type": "TASK_RESULT", "id": "2c91808779ecf55b0179f720942f181a", "name": null} '400': $ref: '../../v3/responses/400.yaml' diff --git a/static/api-specs/idn/v3/paths/workflows/workflow-execution.yaml b/static/api-specs/idn/v3/paths/workflows/workflow-execution.yaml index 95f41fd99..efc3da6a6 100644 --- a/static/api-specs/idn/v3/paths/workflows/workflow-execution.yaml +++ b/static/api-specs/idn/v3/paths/workflows/workflow-execution.yaml @@ -2,15 +2,15 @@ get: operationId: getWorkflowExecution tags: - Workflows - summary: Get a Workflow Execution + summary: Get Workflow Execution description: >- - Get a single workflow execution. Workflow executions are available for up to 90 days before being archived. If you attempt to access a workflow execution that has been archived, you will receive a 404 Not Found. + Use this API to get a single workflow execution. Workflow executions are available for up to 90 days before being archived. If you attempt to access a workflow execution that has been archived, you will receive a "404 Not Found" response. security: - UserContextAuth: [sp:workflow:read] parameters: - name: id in: path - description: Id of the workflow execution + description: Workflow execution ID. required: true style: simple explode: false @@ -20,7 +20,7 @@ get: responses: '200': description: >- - The workflow execution + Workflow execution. content: application/json: schema: diff --git a/static/api-specs/idn/v3/paths/workflows/workflow-executions.yaml b/static/api-specs/idn/v3/paths/workflows/workflow-executions.yaml index 1a5faeb7d..d84dd5be2 100644 --- a/static/api-specs/idn/v3/paths/workflows/workflow-executions.yaml +++ b/static/api-specs/idn/v3/paths/workflows/workflow-executions.yaml @@ -1,10 +1,10 @@ get: - operationId: listWorkflowExecutions + operationId: getWorkflowExecutions tags: - Workflows summary: List Workflow Executions description: >- - This lists the executions for a given workflow. Workflow executions are available for up to 90 days before being archived. + Use this API to list a specified workflow's executions. Workflow executions are available for up to 90 days before being archived. By default, you can get a maximum of 250 executions. To get executions past the first 250 records, you can do the following: @@ -17,7 +17,7 @@ get: - Filter to find relevant workflow executions. For example, you can filter for failed workflow executions: `GET /workflows/:workflowID/executions?filters=status eq "Failed"` - - You can paginate through results with the `offset` parameter. + - Paginate through results with the `offset` parameter. For example, you can page through 50 executions per page and use that as a way to get to the records past the first 250. Refer to [Paginating Results](https://developer.sailpoint.com/idn/api/standard-collection-parameters#paginating-results) for more information about the query parameters you can use to achieve pagination. security: @@ -25,7 +25,7 @@ get: parameters: - name: id in: path - description: Id of the workflow + description: Workflow ID. required: true style: simple explode: false @@ -55,7 +55,7 @@ get: responses: '200': description: >- - List of workflow executions for the given workflow + List of workflow executions for the specified workflow. content: application/json: schema: diff --git a/static/api-specs/idn/v3/schemas/EmailNotificationOption.yaml b/static/api-specs/idn/v3/schemas/EmailNotificationOption.yaml index 056b7b02a..429fe9f1e 100644 --- a/static/api-specs/idn/v3/schemas/EmailNotificationOption.yaml +++ b/static/api-specs/idn/v3/schemas/EmailNotificationOption.yaml @@ -3,14 +3,17 @@ description: This is used for representing email configuration for a lifecycle s properties: notifyManagers: type: boolean + default: false example: true description: If true, then the manager is notified of the lifecycle state change. notifyAllAdmins: type: boolean + default: false example: true description: If true, then all the admins are notified of the lifecycle state change. notifySpecificUsers: type: boolean + default: false example: true description: If true, then the users specified in "emailAddressList" below are notified of lifecycle state change. emailAddressList: diff --git a/static/api-specs/idn/v3/schemas/LifecycleState.yaml b/static/api-specs/idn/v3/schemas/LifecycleState.yaml index 47c90fbf0..c54f33cd3 100644 --- a/static/api-specs/idn/v3/schemas/LifecycleState.yaml +++ b/static/api-specs/idn/v3/schemas/LifecycleState.yaml @@ -6,16 +6,17 @@ allOf: properties: enabled: type: boolean + default: false example: true - description: Whether the lifecycle state is enabled or disabled. + description: Indicates whether the lifecycle state is enabled or disabled. technicalName: type: string example: "Technical Name" - description: The technical name for lifecycle state. This is for internal use. + description: The lifecycle state's technical name. This is for internal use. description: type: string example: "Lifecycle description" - description: Lifecycle state description. + description: Lifecycle state's description. identityCount: type: integer format: int32 @@ -35,3 +36,9 @@ allOf: uniqueItems: true example: ["2c918084660f45d6016617daa9210584", "2c918084660f45d6016617daa9210500"] description: List of unique access-profile IDs that are associated with the lifecycle state. + identityState: + type: string + nullable: true + example: null + description: The lifecycle state's associated identity state. This field is generally 'null'. + diff --git a/static/api-specs/idn/v3/schemas/Source.yaml b/static/api-specs/idn/v3/schemas/Source.yaml index 7bdd7ba14..36e1dc3a3 100644 --- a/static/api-specs/idn/v3/schemas/Source.yaml +++ b/static/api-specs/idn/v3/schemas/Source.yaml @@ -3,36 +3,36 @@ properties: id: type: string readOnly: true - description: the id of the Source - example: "2c91808568c529c60168cca6f90c1324" + description: Source ID. + example: 2c91808568c529c60168cca6f90c1324 name: type: string - description: Human-readable name of the source + description: Source's human-readable name. example: My Source description: type: string - description: Human-readable description of the source - example: "This is the corporate directory." + description: Source's human-readable description. + example: This is the corporate directory. owner: - description: Reference to an owning Identity Object + description: Reference to identity object who owns the source. type: object properties: type: - description: The type of object being referenced + description: Type of object being referenced. type: string enum: - IDENTITY example: IDENTITY id: type: string - description: ID of the identity + description: Owner identity's ID. example: 2c91808568c529c60168cca6f90c1313 name: type: string - description: Human-readable display name of the identity + description: Owner identity's human-readable display name. example: MyName cluster: - description: Reference to the associated Cluster + description: Reference to the source's associated cluster. type: object nullable: true required: @@ -41,105 +41,104 @@ properties: - type properties: type: - description: The type of object being referenced + description: Type of object being referenced. type: string enum: - CLUSTER example: CLUSTER id: type: string - description: ID of the cluster + description: Cluster ID. example: 2c9180866166b5b0016167c32ef31a66 name: type: string - description: Human-readable display name of the cluster + description: Cluster's human-readable display name. example: Corporate Cluster accountCorrelationConfig: - description: Reference to an Account Correlation Config object + description: Reference to account correlation config object. type: object nullable: true properties: type: - description: The type of object being referenced + description: Type of object being referenced. type: string enum: - ACCOUNT_CORRELATION_CONFIG example: ACCOUNT_CORRELATION_CONFIG id: type: string - description: ID of the account correlation config + description: Account correlation config ID. example: 2c9180855d191c59015d28583727245a name: type: string - description: Human-readable display name of the account correlation config + description: Account correlation config's human-readable display name. example: Directory [source-62867] Account Correlation accountCorrelationRule: description: >- - Reference to a Rule that can do COMPLEX correlation, should only be used when accountCorrelationConfig can't - be used. + Reference to a rule that can do COMPLEX correlation. Only use this rule when you can't use accountCorrelationConfig. type: object nullable: true properties: type: - description: The type of object being referenced + description: Type of object being referenced. type: string enum: - RULE example: RULE id: type: string - description: ID of the rule + description: Rule ID. example: 2c918085708c274401708c2a8a760001 name: type: string - description: Human-readable display name of the rule + description: Rule's human-readable display name. example: Example Rule managerCorrelationMapping: allOf: - $ref: '../../v3/schemas/ManagerCorrelationMapping.yaml' - nullable: true description: | - Filter Object used during manager correlation to match incoming manager values to an existing manager's - Account/Identity + Filter object used during manager correlation to match incoming manager values to an existing manager's + account/identity. managerCorrelationRule: description: >- - Reference to the ManagerCorrelationRule, only used when a simple filter isn't sufficient. + Reference to the ManagerCorrelationRule. Only use this rule when a simple filter isn't sufficient. type: object nullable: true properties: type: - description: The type of object being referenced + description: Type of object being referenced. type: string enum: - RULE example: RULE id: type: string - description: ID of the rule + description: Rule ID. example: 2c918085708c274401708c2a8a760001 name: type: string - description: Human-readable display name of the rule + description: Rule's human-readable display name. example: Example Rule beforeProvisioningRule: description: >- - Rule that runs on the CCG and allows for customization of provisioning plans before the connector is called. + Rule that runs on the CCG and allows for customization of provisioning plans before the API calls the connector. type: object nullable: true properties: type: - description: The type of object being referenced + description: Type of object being referenced. type: string enum: - RULE example: RULE id: type: string - description: ID of the rule + description: Rule ID. example: 2c918085708c274401708c2a8a760001 name: type: string - description: Human-readable display name of the rule + description: Rule's human-readable display name. example: Example Rule schemas: type: array @@ -147,21 +146,21 @@ properties: type: object properties: type: - description: The type of object being referenced + description: Type of object being referenced. type: string enum: - CONNECTOR_SCHEMA example: CONNECTOR_SCHEMA id: type: string - description: ID of the schema + description: Schema ID. example: 2c91808568c529c60168cca6f90c1777 name: type: string - description: Human-readable display name of the schema + description: Schema's human-readable display name. example: MySchema description: >- - List of references to Schema objects + List of references to schema objects. example: - type: "CONNECTOR_SCHEMA" id: "2c9180835d191a86015d28455b4b232a" @@ -176,18 +175,18 @@ properties: type: object properties: type: - description: The type of object being referenced + description: Type of object being referenced. type: string enum: - PASSWORD_POLICY example: PASSWORD_POLICY id: type: string - description: ID of the policy + description: Policy ID. example: 2c91808568c529c60168cca6f90c1777 name: type: string - description: Human-readable display name of the policy + description: Policy's human-readable display name. example: My Password Policy description: >- List of references to the associated PasswordPolicy objects. @@ -204,7 +203,7 @@ properties: type: string description: >- Specifies the type of system being managed e.g. Active Directory, Workday, etc.. - If you are creating a Delimited File source, you must set the `provisionasCsv` query parameter to `true`. + If you are creating a delimited file source, you must set the `provisionasCsv` query parameter to `true`. example: "OpenLDAP - Direct" connector: type: string @@ -213,12 +212,12 @@ properties: connectorClass: type: string description: >- - The fully qualified name of the Java class that implements the connector interface. + Fully qualified name of the Java class that implements the connector interface. example: "sailpoint.connector.LDAPConnector" connectorAttributes: type: object description: >- - Connector specific configuration; will differ from type to type. + Connector specific configuration. This configuration will differ from type to type. example: healthCheckTimeout: 30 authSearchAttributes: [ @@ -235,83 +234,94 @@ properties: authoritative: type: boolean description: >- - When true indicates the source is referenced by an IdentityProfile. + When this is true, it indicates that the source is referenced by an identity profile. default: false example: false managementWorkgroup: - description: Reference to Management Workgroup for this Source + description: Reference to management workgroup for the source. type: object nullable: true properties: type: - description: The type of object being referenced + description: Type of object being referenced. type: string enum: - GOVERNANCE_GROUP example: GOVERNANCE_GROUP id: type: string - description: ID of the management workgroup + description: Management workgroup ID. example: 2c91808568c529c60168cca6f90c2222 name: type: string - description: Human-readable display name of the management workgroup + description: Management workgroup's human-readable display name. example: My Management Workgroup healthy: type: boolean description: >- - When true indicates a healthy source + When this is true, it indicates that the source is healthy. default: false example: true status: type: string + enum: + - SOURCE_STATE_ERROR_CLUSTER + - SOURCE_STATE_ERROR_SOURCE + - SOURCE_STATE_ERROR_VA + - SOURCE_STATE_FAILURE_CLUSTER + - SOURCE_STATE_FAILURE_SOURCE + - SOURCE_STATE_HEALTHY + - SOURCE_STATE_UNCHECKED_CLUSTER + - SOURCE_STATE_UNCHECKED_CLUSTER_NO_SOURCES + - SOURCE_STATE_UNCHECKED_SOURCE + - SOURCE_STATE_UNCHECKED_SOURCE_NO_ACCOUNTS description: >- - A status identifier, giving specific information on why a source is healthy or not - example: "SOURCE_STATE_HEALTHY" + Status identifier that gives specific information about why a source is or isn't healthy. + example: SOURCE_STATE_HEALTHY since: type: string description: >- - Timestamp showing when a source health check was last performed - example: "2021-09-28T15:48:29.3801666300Z" + Timestamp that shows when a source health check was last performed. + example: 2021-09-28T15:48:29.3801666300Z connectorId: type: string - description: The id of connector - example: "active-directory" + description: Connector ID + example: active-directory connectorName: type: string - description: The name of the connector that was chosen on source creation - example: "Active Directory" + description: Name of the connector that was chosen during source creation. + example: Active Directory connectionType: type: string - description: The type of connection (direct or file) - example: "file" + description: Type of connection (direct or file). + example: file connectorImplementationId: type: string - description: The connector implementation id + description: Connector implementation ID. example: "delimited-file" created: type: string - description: The date-time when the source was created + description: Date-time when the source was created format: date-time example: 2022-02-08T14:50:03.827Z modified: type: string - description: The date-time when the source was last modified + description: Date-time when the source was last modified. format: date-time example: 2024-01-23T18:08:50.897Z credentialProviderEnabled: type: boolean description: >- - Enables credential provider for this source. If credentialProvider is turned on - then source can use credential provider(s) to fetch credentials. + If this is true, it enables a credential provider for the source. If credentialProvider is turned on, + then the source can use credential provider(s) to fetch credentials. default: false example: false category: type: string nullable: true default: null - description: The category of source (e.g. null, CredentialProvider) - example: "CredentialProvider" + description: Source category (e.g. null, CredentialProvider). + example: CredentialProvider required: - name - owner diff --git a/static/api-specs/idn/v3/schemas/workflows/WorkflowExecution.yaml b/static/api-specs/idn/v3/schemas/workflows/WorkflowExecution.yaml index bdcf21787..5aff5d56c 100644 --- a/static/api-specs/idn/v3/schemas/workflows/WorkflowExecution.yaml +++ b/static/api-specs/idn/v3/schemas/workflows/WorkflowExecution.yaml @@ -2,32 +2,32 @@ type: object properties: id: type: string - description: The workflow execution ID + description: Workflow execution ID. example: b393f4e2-4785-4d7f-ab27-3a6b8ded4c81 workflowId: type: string - description: The workflow ID + description: Workflow ID. example: d201c5d9-d37b-4a2f-af14-66414f39d568 requestId: type: string - description: This backend ID tracks a workflow request in the system. You can provide this ID in a customer support ticket for debugging purposes. + description: Backend ID that tracks a workflow request in the system. Provide this ID in a customer support ticket for debugging purposes. example: 41e12a74fa7b4a6a98ae47887b64acdb startTime: type: string format: date-time - description: The date/time the workflow started + description: Date/time when the workflow started. example: "2022-02-07T20:13:29.356648026Z" closeTime: type: string format: date-time - description: The date/time the workflow ended + description: Date/time when the workflow ended. example: "2022-02-07T20:13:31.682410165Z" status: - description: The workflow execution status + description: Workflow execution status. type: string enum: - "Completed" - "Failed" - "Canceled" - - "Running" + - "Executing" example: "Completed" From 7a7c77125182ac8769f63e71814e1902e5e301fe Mon Sep 17 00:00:00 2001 From: GitHub Action Bot Date: Tue, 28 May 2024 19:46:38 +0000 Subject: [PATCH 13/74] Automated commit by github action: 9275435038 --- .../api-specs/idn/beta/paths/identity-ownership.yaml | 11 ++++++++--- .../idn/v3/schemas/AccessRequestConfig.yaml | 12 +++++++----- .../idn/v3/schemas/EntitlementRequestConfig.yaml | 9 +++++---- .../schemas/IdentityReferenceWithNameAndEmail.yaml | 8 ++++---- .../idn/v3/schemas/RequestOnBehalfOfConfig.yaml | 6 ++++-- 5 files changed, 28 insertions(+), 18 deletions(-) diff --git a/static/api-specs/idn/beta/paths/identity-ownership.yaml b/static/api-specs/idn/beta/paths/identity-ownership.yaml index a47e7298f..8a297af6e 100644 --- a/static/api-specs/idn/beta/paths/identity-ownership.yaml +++ b/static/api-specs/idn/beta/paths/identity-ownership.yaml @@ -4,7 +4,12 @@ get: tags: - Identities description: >- - Get Ownership association details of an Identity + Use this API to return an identity's owned objects that will cause problems for deleting the identity. + + Use this API as a checklist of objects that you need to reassign to a different identity before you can delete the identity. + + For a full list of objects owned by an identity, use the [Search API](https://developer.sailpoint.com/docs/api/v3/search-post/). + When you search for identities, the returned identities have a property, `owns`, that contains a more comprehensive list of identity's owned objects. security: - UserContextAuth: - "idn:identity:read" @@ -14,12 +19,12 @@ get: schema: type: string required: true - description: The identity id + description: Identity ID. example: 'ff8081814d2a8036014d701f3fbf53fa' responses: "200": description: >- - Ownership association details of an Identity. + Identity's ownership association details. content: application/json: schema: diff --git a/static/api-specs/idn/v3/schemas/AccessRequestConfig.yaml b/static/api-specs/idn/v3/schemas/AccessRequestConfig.yaml index 2eed9835f..95722b52c 100644 --- a/static/api-specs/idn/v3/schemas/AccessRequestConfig.yaml +++ b/static/api-specs/idn/v3/schemas/AccessRequestConfig.yaml @@ -2,18 +2,20 @@ type : object properties: approvalsMustBeExternal: type: boolean - description: If true, then approvals must be processed by external system. + description: If this is true, approvals must be processed by an external system. Also, if this is true, it blocks Request Center access requests and returns an error for any user who isn't an org admin. + default: false example: true autoApprovalEnabled: type: boolean - description: If true and requester and reviewer are the same, then automatically approve the approval. + description: If this is true and the requester and reviewer are the same, the request is automatically approved. + default: false example: true requestOnBehalfOfConfig: $ref: './RequestOnBehalfOfConfig.yaml' - description: Request On Behalf Of Configuration. + description: Request On Behalf Of configuration. approvalReminderAndEscalationConfig: $ref: './ApprovalReminderAndEscalationConfig.yaml' - description: Approval Reminder and Escalation Configuration. + description: Approval reminder and escalation configuration. entitlementRequestConfig: $ref: './EntitlementRequestConfig.yaml' - description: Entitlement Request Configuration. \ No newline at end of file + description: Entitlement request configuration. \ No newline at end of file diff --git a/static/api-specs/idn/v3/schemas/EntitlementRequestConfig.yaml b/static/api-specs/idn/v3/schemas/EntitlementRequestConfig.yaml index 05c458f60..96bec964e 100644 --- a/static/api-specs/idn/v3/schemas/EntitlementRequestConfig.yaml +++ b/static/api-specs/idn/v3/schemas/EntitlementRequestConfig.yaml @@ -2,16 +2,17 @@ type : object properties: allowEntitlementRequest: type: boolean - description: Flag for allowing entitlement request. + description: If this is true, entitlement requests are allowed. + default: false example: true requestCommentsRequired: type: boolean - description: Flag for requiring comments while submitting an entitlement request. + description: If this is true, comments are required to submit entitlement requests. default: false example: false deniedCommentsRequired: type: boolean - description: Flag for requiring comments while rejecting an entitlement request. + description: If this is true, comments are required to reject entitlement requests. default: false example: false grantRequestApprovalSchemes: @@ -19,7 +20,7 @@ properties: description: | Approval schemes for granting entitlement request. This can be empty if no approval is needed. Multiple schemes must be comma-separated. The valid schemes are "entitlementOwner", "sourceOwner", "manager" and "workgroup:{id}". - Multiple workgroups (governance groups) can be used. + You can use multiple governance groups (workgroups). default: sourceOwner nullable: true example: diff --git a/static/api-specs/idn/v3/schemas/IdentityReferenceWithNameAndEmail.yaml b/static/api-specs/idn/v3/schemas/IdentityReferenceWithNameAndEmail.yaml index df31eb6cb..87d3cc74c 100644 --- a/static/api-specs/idn/v3/schemas/IdentityReferenceWithNameAndEmail.yaml +++ b/static/api-specs/idn/v3/schemas/IdentityReferenceWithNameAndEmail.yaml @@ -3,18 +3,18 @@ nullable: true properties: type: type: string - description: The type can only be IDENTITY. This is read-only + description: The type can only be IDENTITY. This is read-only. example: IDENTITY id: type: string - description: Identity id. + description: Identity ID. example: 5168015d32f890ca15812c9180835d2e name: type: string - description: Human-readable display name of identity. This is read-only + description: Identity's human-readable display name. This is read-only. example: "Alison Ferguso" email: type: string - description: Email address of identity. This is read-only + description: Identity's email address. This is read-only. example: "alison.ferguso@identitysoon.com" diff --git a/static/api-specs/idn/v3/schemas/RequestOnBehalfOfConfig.yaml b/static/api-specs/idn/v3/schemas/RequestOnBehalfOfConfig.yaml index 1ceaf48f2..1bdac601f 100644 --- a/static/api-specs/idn/v3/schemas/RequestOnBehalfOfConfig.yaml +++ b/static/api-specs/idn/v3/schemas/RequestOnBehalfOfConfig.yaml @@ -2,9 +2,11 @@ type : object properties: allowRequestOnBehalfOfAnyoneByAnyone: type: boolean - description: If anyone can request access for anyone. + description: If this is true, anyone can request access for anyone. + default: false example: true allowRequestOnBehalfOfEmployeeByManager: type: boolean - description: If a manager can request access for his/her direct reports. + description: If this is true, a manager can request access for his or her direct reports. + default: false example: true From 9c4ccdfc9a740a7236e307afce8323e813566464 Mon Sep 17 00:00:00 2001 From: GitHub Action Bot Date: Fri, 31 May 2024 19:18:44 +0000 Subject: [PATCH 14/74] Automated commit by github action: 9323243754 --- static/api-specs/idn/beta/paths/load-accounts.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/static/api-specs/idn/beta/paths/load-accounts.yaml b/static/api-specs/idn/beta/paths/load-accounts.yaml index 5349ce8a3..4d1d76476 100644 --- a/static/api-specs/idn/beta/paths/load-accounts.yaml +++ b/static/api-specs/idn/beta/paths/load-accounts.yaml @@ -12,7 +12,7 @@ post: A token with ORG_ADMIN, SOURCE_ADMIN, or SOURCE_SUBADMIN authority is required to call this API. security: - - UserContextAuth: [idn:accounts:manage] + - UserContextAuth: [idn:sources:manage] parameters: - in: path name: id From f4b0b8cfac4fb3484e751405d678e140184ebe51 Mon Sep 17 00:00:00 2001 From: GitHub Action Bot Date: Mon, 3 Jun 2024 18:16:05 +0000 Subject: [PATCH 15/74] Automated commit by github action: 9355224114 --- static/api-specs/idn/beta/paths/remove-accounts.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/static/api-specs/idn/beta/paths/remove-accounts.yaml b/static/api-specs/idn/beta/paths/remove-accounts.yaml index c54de3c20..72418b846 100644 --- a/static/api-specs/idn/beta/paths/remove-accounts.yaml +++ b/static/api-specs/idn/beta/paths/remove-accounts.yaml @@ -1,8 +1,8 @@ post: operationId: deleteAccountsAsync - summary: Remove All Accounts + summary: Remove All Accounts in a Source tags: - - Accounts + - Sources description: | Use this endpoint to remove all accounts from the system without provisioning changes to the source. Accounts that are removed could be re-created during the next aggregation. From a6b761694c01bed14cfafb74edf3632b7a2dfd8d Mon Sep 17 00:00:00 2001 From: con-docs Date: Thu, 6 Jun 2024 15:44:33 -0500 Subject: [PATCH 16/74] devrel-1603 --- .../saas-configuration.mdx | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) diff --git a/docs/extensibility/configuration-management/saas-configuration.mdx b/docs/extensibility/configuration-management/saas-configuration.mdx index f0451b0b7..a1d357b11 100644 --- a/docs/extensibility/configuration-management/saas-configuration.mdx +++ b/docs/extensibility/configuration-management/saas-configuration.mdx @@ -13,7 +13,10 @@ tags: ['SaaS Configuration'] import Tabs from '@theme/Tabs'; import TabItem from '@theme/TabItem'; -This is a guide about using the SailPoint SaaS Configuration APIs to import configurations into and export configurations from the SailPoint SaaS system. Use these APIs to get configurations in bulk in support of environmental promotion, go-live, or tenant-to-tenant configuration management processes and pipelines. +You can use the SailPoint SaaS Configuration APIs to export snapshots of your tenant configurations and import them to restore those configurations in other SaaS systems, such as new or existing tenants. +Use these APIs to get configurations in bulk in support of environmental promotion, go-live, or tenant-to-tenant configuration management processes and pipelines. + +Read this document to learn about the different SaaS Configuration APIs and what you can do with them. For more details around how to manage configurations, refer to [SailPoint SaaS Change Management and Deployment Best Practices](https://community.sailpoint.com/t5/IdentityNow-Articles/SailPoint-SaaS-Change-Management-and-Deployment-Best-Practices/ta-p/189871). @@ -23,6 +26,16 @@ This document is intended for technically proficient administrators, implementer ## Supported Objects +A SailPoint tenant configuration comprises various objects and their details, such as an organization's different identity profiles, roles, certification campaigns, and more. +You can use the SaaS Configuration APIs to exclude objects from the imports and exports. + +This table lists the objects supported for import and export with the SaaS Configuration APIs: + +:::note +This table also lists the objects supported for backup and deploy, the terms used in Configuration Hub for export and import functionality. +To learn more about Configuration Hub, refer to [Configuration Hub](https://documentation.sailpoint.com/saas/help/confighub/config_hub.html). +::: + | **Object** | **Object Type** | **Export** | **Import** | **Backup** | **Deploy** | | :-- | :-- | :-- | :-- | :-- | :-- | | Access Profiles | `ACCESS_PROFILE` | ✅ | ❌ | ✅ | ✅ | From 7d88a042259185d431d885a13e392e45b444ef17 Mon Sep 17 00:00:00 2001 From: con-docs Date: Thu, 6 Jun 2024 15:46:24 -0500 Subject: [PATCH 17/74] devrel-1634 --- docs/tools/rule-development-kit/index.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/tools/rule-development-kit/index.md b/docs/tools/rule-development-kit/index.md index 333f78f93..243fb1944 100644 --- a/docs/tools/rule-development-kit/index.md +++ b/docs/tools/rule-development-kit/index.md @@ -68,7 +68,7 @@ src/ - **`src/test/java/sailpoint/`** Use this folder for test classes to test your rules. -## Install depedencies +## Install dependencies Install all the required dependencies by running Maven install in the root of the project: From 62fc0f5e88ce0a22fee001acb1e6e2cadf98fcfa Mon Sep 17 00:00:00 2001 From: con-docs Date: Thu, 6 Jun 2024 15:58:49 -0500 Subject: [PATCH 18/74] devrel-1100 --- .../event-triggers/available/identity-attribute-changed.md | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/docs/extensibility/event-triggers/available/identity-attribute-changed.md b/docs/extensibility/event-triggers/available/identity-attribute-changed.md index 02f30b340..c91036beb 100644 --- a/docs/extensibility/event-triggers/available/identity-attribute-changed.md +++ b/docs/extensibility/event-triggers/available/identity-attribute-changed.md @@ -18,6 +18,13 @@ Identity Attribute Changed events occur when any attributes aggegrated from an a This event trigger provides a flexible way to extend Joiner-Mover-Leaver processes. This provides more proactive governance and ensures users can quickly get necessary access when they enter your organization. +:::info + +This event trigger doesn't detect an identity's change in lifecycle state from 'null' to 'active', so it's recommended that you set an identity's lifecycle state when it's created. You can then use the [Identity Created](./identity-created.md) trigger to detect that change to 'active' for Joiners. + +::: + + Some uses cases for this trigger include the following: - Notify an administrator or system to take the appropriate provisioning actions as part of the Mover workflow. From 56fe7559476ec09548da517956a482acc7d0f20c Mon Sep 17 00:00:00 2001 From: GitHub Action Bot Date: Mon, 10 Jun 2024 15:32:47 +0000 Subject: [PATCH 19/74] Automated commit by github action: 9451255983 --- static/api-specs/idn/beta/schemas/CompletedApproval.yaml | 5 +++-- static/api-specs/idn/beta/schemas/PendingApproval.yaml | 2 +- static/api-specs/idn/v3/paths/access-requests.yaml | 4 ++-- static/api-specs/idn/v3/schemas/AccessRequestItem.yaml | 3 +-- static/api-specs/idn/v3/schemas/AccountActivityItem.yaml | 2 +- static/api-specs/idn/v3/schemas/ApprovalStatusDto.yaml | 2 +- static/api-specs/idn/v3/schemas/CompletedApproval.yaml | 5 +++-- static/api-specs/idn/v3/schemas/IdentitySummary.yaml | 1 + static/api-specs/idn/v3/schemas/PendingApproval.yaml | 2 +- 9 files changed, 14 insertions(+), 12 deletions(-) diff --git a/static/api-specs/idn/beta/schemas/CompletedApproval.yaml b/static/api-specs/idn/beta/schemas/CompletedApproval.yaml index 7e631f081..f6c54eb8e 100644 --- a/static/api-specs/idn/beta/schemas/CompletedApproval.yaml +++ b/static/api-specs/idn/beta/schemas/CompletedApproval.yaml @@ -88,7 +88,7 @@ properties: removeDate: type: string nullable: true - description: The date the role or access profile is no longer assigned to the specified identity. + description: The date the role or access profile or entitlement is no longer assigned to the specified identity. format: 'date-time' example: '2020-07-11T00:00:00Z' removeDateUpdateRequested: @@ -137,4 +137,5 @@ properties: requestedAppId: 2c91808f7892918f0178b78da4a305a1 requestedAccounts: type: string - nullable: true \ No newline at end of file + nullable: true + description: Information about the requested accounts \ No newline at end of file diff --git a/static/api-specs/idn/beta/schemas/PendingApproval.yaml b/static/api-specs/idn/beta/schemas/PendingApproval.yaml index ccf67017a..01fcd2a9c 100644 --- a/static/api-specs/idn/beta/schemas/PendingApproval.yaml +++ b/static/api-specs/idn/beta/schemas/PendingApproval.yaml @@ -63,7 +63,7 @@ properties: description: Action that is performed on this approval, and system has not finished performing that action yet. removeDate: type: string - description: The date the role or access profile is no longer assigned to the specified identity. + description: The date the role or access profile or entitlement is no longer assigned to the specified identity. format: 'date-time' example: '2020-07-11T00:00:00Z' removeDateUpdateRequested: diff --git a/static/api-specs/idn/v3/paths/access-requests.yaml b/static/api-specs/idn/v3/paths/access-requests.yaml index fe09be937..2ee191ca9 100644 --- a/static/api-specs/idn/v3/paths/access-requests.yaml +++ b/static/api-specs/idn/v3/paths/access-requests.yaml @@ -31,10 +31,10 @@ post: * Can only be requested for a single identity at a time. * You cannot use an access request to revoke access from an identity if that access has been granted by role membership or by birthright provisioning. * Does not support self request. Only manager can request to revoke access for their directly managed employees. - * If a `removeDate` is specified, then the access will be removed on that date and time only for roles and access profiles. Entitlements are currently unsupported for `removeDate`. + * If a `removeDate` is specified, then the access will be removed on that date and time only for roles, access profiles and entitlements. * Roles, access profiles, and entitlements can be requested for revocation. * Revoke requests for entitlements are limited to 1 entitlement per access request currently. - * [Roles, Access Profiles] You can specify a `removeDate` if the access doesn't already have a sunset date. The `removeDate` must be a future date, in the UTC timezone. + * You can specify a `removeDate` if the access doesn't already have a sunset date. The `removeDate` must be a future date, in the UTC timezone. * Allows a manager to request to revoke access for direct employees. A token with ORG_ADMIN authority can also request to revoke access from anyone. A token with API authority cannot be used to call this endpoint. diff --git a/static/api-specs/idn/v3/schemas/AccessRequestItem.yaml b/static/api-specs/idn/v3/schemas/AccessRequestItem.yaml index bfd79b0de..7b24f89f2 100644 --- a/static/api-specs/idn/v3/schemas/AccessRequestItem.yaml +++ b/static/api-specs/idn/v3/schemas/AccessRequestItem.yaml @@ -32,11 +32,10 @@ properties: removeDate: type: string description: | - The date the role or access profile is no longer assigned to the specified identity. Also known as the expiration date. + The date the role or access profile or entitlement is no longer assigned to the specified identity. Also known as the expiration date. * Specify a date in the future. * The current SLA for the deprovisioning is 24 hours. * This date can be modified to either extend or decrease the duration of access item assignments for the specified identity. You can change the expiration date for requests for yourself or direct reports, but you cannot remove an expiration date on an already approved item. If the access request has not been approved, you can cancel it and submit a new one without the expiration. If it has already been approved, then you have to revoke the access and then re-request without the expiration. - * Currently it is not supported for entitlements. format: 'date-time' example: '2020-07-11T21:23:15.000Z' required : ["id", "type"] diff --git a/static/api-specs/idn/v3/schemas/AccountActivityItem.yaml b/static/api-specs/idn/v3/schemas/AccountActivityItem.yaml index 2bc0d45dc..811dd4cfc 100644 --- a/static/api-specs/idn/v3/schemas/AccountActivityItem.yaml +++ b/static/api-specs/idn/v3/schemas/AccountActivityItem.yaml @@ -66,7 +66,7 @@ properties: nullable: true type: string description: - The date the role or access profile is no longer assigned to the specified + The date the role or access profile or entitlement is no longer assigned to the specified identity. format: "date-time" example: "2020-07-11T00:00:00Z" diff --git a/static/api-specs/idn/v3/schemas/ApprovalStatusDto.yaml b/static/api-specs/idn/v3/schemas/ApprovalStatusDto.yaml index c12450a25..dbe0e1094 100644 --- a/static/api-specs/idn/v3/schemas/ApprovalStatusDto.yaml +++ b/static/api-specs/idn/v3/schemas/ApprovalStatusDto.yaml @@ -54,7 +54,7 @@ properties: removeDate: type: string description: - The date the role or access profile is no longer assigned to the specified + The date the role or access profile or entitlement is no longer assigned to the specified identity. format: "date-time" example: "2020-07-11T00:00:00Z" diff --git a/static/api-specs/idn/v3/schemas/CompletedApproval.yaml b/static/api-specs/idn/v3/schemas/CompletedApproval.yaml index da1468a5c..4fb1ea9ef 100644 --- a/static/api-specs/idn/v3/schemas/CompletedApproval.yaml +++ b/static/api-specs/idn/v3/schemas/CompletedApproval.yaml @@ -71,7 +71,7 @@ properties: description: The final state of the approval removeDate: type: string - description: The date the role or access profile is no longer assigned to the specified identity. + description: The date the role or access profile or entitlement is no longer assigned to the specified identity. format: 'date-time' example: '2020-07-11T00:00:00Z' nullable: true @@ -121,4 +121,5 @@ properties: requestedAppId: 2c91808f7892918f0178b78da4a305a1 requestedAccounts: type: string - nullable: true \ No newline at end of file + nullable: true + description: Information about the requested accounts \ No newline at end of file diff --git a/static/api-specs/idn/v3/schemas/IdentitySummary.yaml b/static/api-specs/idn/v3/schemas/IdentitySummary.yaml index b98ccef1a..d33032c5c 100644 --- a/static/api-specs/idn/v3/schemas/IdentitySummary.yaml +++ b/static/api-specs/idn/v3/schemas/IdentitySummary.yaml @@ -18,3 +18,4 @@ properties: type: boolean description: Indicates if all access items for this summary have been decided on example: true + default: false diff --git a/static/api-specs/idn/v3/schemas/PendingApproval.yaml b/static/api-specs/idn/v3/schemas/PendingApproval.yaml index fd3d04205..ee3fd1e9c 100644 --- a/static/api-specs/idn/v3/schemas/PendingApproval.yaml +++ b/static/api-specs/idn/v3/schemas/PendingApproval.yaml @@ -79,7 +79,7 @@ properties: description: Action that is performed on this approval, and system has not finished performing that action yet. removeDate: type: string - description: The date the role or access profile is no longer assigned to the specified identity. + description: The date the role or access profile or entitlement is no longer assigned to the specified identity. format: 'date-time' example: '2020-07-11T00:00:00Z' removeDateUpdateRequested: From 3f222d362dc2b22600c008f9554e69e53b6c2d75 Mon Sep 17 00:00:00 2001 From: GitHub Action Bot Date: Mon, 10 Jun 2024 17:44:23 +0000 Subject: [PATCH 20/74] Automated commit by github action: 9453072955 --- ...integrations-before-provisioning-rule.yaml | 42 +++++ .../paths/sim-integrations-value-list.yaml | 62 +++++++ .../idn/beta/paths/sim-integrations.yaml | 153 ++++++++++++++++++ .../beta/schemas/SimIntegrationDetails.yaml | 66 ++++++++ static/api-specs/idn/sailpoint-api.beta.yaml | 15 ++ 5 files changed, 338 insertions(+) create mode 100644 static/api-specs/idn/beta/paths/sim-integrations-before-provisioning-rule.yaml create mode 100644 static/api-specs/idn/beta/paths/sim-integrations-value-list.yaml create mode 100644 static/api-specs/idn/beta/paths/sim-integrations.yaml create mode 100644 static/api-specs/idn/beta/schemas/SimIntegrationDetails.yaml diff --git a/static/api-specs/idn/beta/paths/sim-integrations-before-provisioning-rule.yaml b/static/api-specs/idn/beta/paths/sim-integrations-before-provisioning-rule.yaml new file mode 100644 index 000000000..881128e7b --- /dev/null +++ b/static/api-specs/idn/beta/paths/sim-integrations-before-provisioning-rule.yaml @@ -0,0 +1,42 @@ +patch: + tags: + - SIM Integrations + summary: Patch a SIM beforeProvisioningRule attribute. + description: Patch a SIM beforeProvisioningRule attribute given a JsonPatch object. A token with Org Admin or Service Desk Admin authority is required to access this endpoint. + operationId: patchBeforeProvisioningRule + requestBody: + required: true + description: The JsonPatch object that describes the changes of SIM beforeProvisioningRule. + content: + application/json-patch+json: + schema: + $ref: '../schemas/JsonPatch.yaml' + parameters: + - name: id + in: path + description: SIM integration id + schema: + type: string + example: 12345 + required: true + responses: + '200': + description: The updated DTO containing the details of the SIM integration. + content: + application/json: + schema: + $ref: '../schemas/ServiceDeskIntegrationDto.yaml' + '400': + $ref: '../../v3/responses/400.yaml' + '401': + $ref: '../../v3/responses/401.yaml' + '403': + $ref: '../../v3/responses/403.yaml' + '404': + $ref: '../../v3/responses/404.yaml' + '429': + $ref: '../../v3/responses/429.yaml' + '500': + $ref: '../../v3/responses/500.yaml' + security: + - UserContextAuth: [idn:service-desk-admin:write] \ No newline at end of file diff --git a/static/api-specs/idn/beta/paths/sim-integrations-value-list.yaml b/static/api-specs/idn/beta/paths/sim-integrations-value-list.yaml new file mode 100644 index 000000000..e0cef139b --- /dev/null +++ b/static/api-specs/idn/beta/paths/sim-integrations-value-list.yaml @@ -0,0 +1,62 @@ +get: + tags: + - SIM Integrations + summary: List the existing SIM integrations. + description: List the existing SIM integrations. A token with Org Admin or Service Desk Admin authority is required to access this endpoint. + operationId: getSIMIntegrations + responses: + '200': + description: The DTO containing the details of the SIM integration + content: + application/json: + schema: + $ref: '../schemas/ServiceDeskIntegrationDto.yaml' + '400': + $ref: '../../v3/responses/400.yaml' + '401': + $ref: '../../v3/responses/401.yaml' + '403': + $ref: '../../v3/responses/403.yaml' + '404': + $ref: '../../v3/responses/404.yaml' + '429': + $ref: '../../v3/responses/429.yaml' + '500': + $ref: '../../v3/responses/500.yaml' + security: + - UserContextAuth: [idn:service-desk-admin:read] + +post: + tags: + - SIM Integrations + summary: Create new SIM integration + description: Create a new SIM Integrations. A token with Org Admin or Service Desk Admin authority is required to access this endpoint. + operationId: createSIMIntegration + requestBody: + description: DTO containing the details of the SIM integration + content: + application/json: + schema: + $ref: '../schemas/SimIntegrationDetails.yaml' + required: true + responses: + '200': + description: details of the created integration + content: + application/json: + schema: + $ref: '../schemas/ServiceDeskIntegrationDto.yaml' + '400': + $ref: '../../v3/responses/400.yaml' + '401': + $ref: '../../v3/responses/401.yaml' + '403': + $ref: '../../v3/responses/403.yaml' + '404': + $ref: '../../v3/responses/404.yaml' + '429': + $ref: '../../v3/responses/429.yaml' + '500': + $ref: '../../v3/responses/500.yaml' + security: + - UserContextAuth: [idn:service-desk-admin:create] \ No newline at end of file diff --git a/static/api-specs/idn/beta/paths/sim-integrations.yaml b/static/api-specs/idn/beta/paths/sim-integrations.yaml new file mode 100644 index 000000000..247749dd8 --- /dev/null +++ b/static/api-specs/idn/beta/paths/sim-integrations.yaml @@ -0,0 +1,153 @@ +put: + tags: + - SIM Integrations + summary: Update an existing SIM integration + description: Update an existing SIM integration. A token with Org Admin or Service Desk Admin authority is required to access this endpoint. + operationId: putSIMIntegration + requestBody: + description: The full DTO of the integration containing the updated model + content: + application/json: + schema: + $ref: '../schemas/SimIntegrationDetails.yaml' + required: true + parameters: + - name: id + in: path + description: The id of the integration. + schema: + type: string + example: 12345 + required: true + responses: + '200': + description: details of the updated integration + content: + application/json: + schema: + $ref: '../schemas/ServiceDeskIntegrationDto.yaml' + '400': + $ref: '../../v3/responses/400.yaml' + '401': + $ref: '../../v3/responses/401.yaml' + '403': + $ref: '../../v3/responses/403.yaml' + '404': + $ref: '../../v3/responses/404.yaml' + '429': + $ref: '../../v3/responses/429.yaml' + '500': + $ref: '../../v3/responses/500.yaml' + security: + - UserContextAuth: [idn:service-desk-admin:create] + +get: + tags: + - SIM Integrations + summary: Get a SIM integration details. + description: Get the details of a SIM integration. A token with Org Admin or Service Desk Admin authority is required to access this endpoint. + operationId: getSIMIntegration + parameters: + - name: id + in: path + description: The id of the integration. + schema: + type: string + example: 12345 + required: true + responses: + '200': + description: The DTO containing the details of the SIM integration + content: + application/json: + schema: + $ref: '../schemas/ServiceDeskIntegrationDto.yaml' + '400': + $ref: '../../v3/responses/400.yaml' + '401': + $ref: '../../v3/responses/401.yaml' + '403': + $ref: '../../v3/responses/403.yaml' + '404': + $ref: '../../v3/responses/404.yaml' + '429': + $ref: '../../v3/responses/429.yaml' + '500': + $ref: '../../v3/responses/500.yaml' + security: + - UserContextAuth: [idn:service-desk-admin:read] + +delete: + tags: + - SIM Integrations + summary: Delete a SIM integration + description: Get the details of a SIM integration. A token with Org Admin or Service Desk Admin authority is required to access this endpoint. + operationId: deleteSIMIntegration + parameters: + - name: id + description: The id of the integration to delete. + in: path + schema: + type: string + example: 12345 + required: true + responses: + '200': + description: No content response + '400': + $ref: '../../v3/responses/400.yaml' + '401': + $ref: '../../v3/responses/401.yaml' + '403': + $ref: '../../v3/responses/403.yaml' + '404': + $ref: '../../v3/responses/404.yaml' + '429': + $ref: '../../v3/responses/429.yaml' + '500': + $ref: '../../v3/responses/500.yaml' + security: + - UserContextAuth: [idn:service-desk-admin:write] + +patch: + tags: + - SIM Integrations + summary: Patch a SIM attribute. + description: Patch a SIM attribute given a JsonPatch object. A token with Org Admin or Service Desk Admin authority is required to access this endpoint. + operationId: patchSIMAttributes + requestBody: + required: true + description: The JsonPatch object that describes the changes of SIM + content: + application/json-patch+json: + schema: + $ref: '../schemas/JsonPatch.yaml' + parameters: + - name: id + description: SIM integration id + in: path + schema: + type: string + example: 12345 + required: true + responses: + '200': + description: The updated DTO containing the details of the SIM integration. + content: + application/json: + schema: + $ref: '../schemas/ServiceDeskIntegrationDto.yaml' + '400': + $ref: '../../v3/responses/400.yaml' + '401': + $ref: '../../v3/responses/401.yaml' + '403': + $ref: '../../v3/responses/403.yaml' + '404': + $ref: '../../v3/responses/404.yaml' + '429': + $ref: '../../v3/responses/429.yaml' + '500': + $ref: '../../v3/responses/500.yaml' + security: + - UserContextAuth: [idn:service-desk-admin:write] \ No newline at end of file diff --git a/static/api-specs/idn/beta/schemas/SimIntegrationDetails.yaml b/static/api-specs/idn/beta/schemas/SimIntegrationDetails.yaml new file mode 100644 index 000000000..010a3095e --- /dev/null +++ b/static/api-specs/idn/beta/schemas/SimIntegrationDetails.yaml @@ -0,0 +1,66 @@ +type: object +title: Sim Integration Details +allOf: + - $ref: './BaseCommonDto.yaml' + - type: object + properties: + description: + type: string + description: The description of the integration + example: 'Integration description' + nullable: false + type: + type: string + description: The integration type + example: 'ServiceNow Service Desk' + nullable: false + attributes: + type: object + description: The attributes map containing the credentials used to configure the integration. + nullable: true + example: '{"uid":"Walter White","firstname":"walter","cloudStatus":"UNREGISTERED","displayName":"Walter White","identificationNumber":"942","lastSyncDate":1470348809380,"email":"walter@gmail.com","lastname":"white"}' + sources: + type: array + description: The list of sources (managed resources) + items: + type: string + example: + - 2c9180835d191a86015d28455b4a2329 + - 2c5680835d191a85765d28455b4a9823 + nullable: false + cluster: + type: string + description: The cluster/proxy + example: 'xyzzy999' + nullable: false + statusMap: + type: object + description: Custom mapping between the integration result and the provisioning result + example: + closed_cancelled: Failed + closed_complete: Committed + closed_incomplete: Failed + closed_rejected: Failed + in_process: Queued + requested: Queued + request: + type: object + description: Request data to customize desc and body of the created ticket + example: + description: SailPoint Access Request, + req_description: The Service Request created by SailPoint ServiceNow Service Integration Module (SIM)., + req_short_description: SailPoint New Access Request Created from IdentityNow, + short_description: SailPoint Access Request $!plan.arguments.identityRequestId + beforeProvisioningRule: + description: Before provisioning rule of integration + properties: + type: + $ref: '../../v3/schemas/DtoType.yaml' + id: + type: string + description: ID of the rule + example: 2c918085708c274401708c2a8a760001 + name: + type: string + description: Human-readable display name of the rule + example: Example Rule \ No newline at end of file diff --git a/static/api-specs/idn/sailpoint-api.beta.yaml b/static/api-specs/idn/sailpoint-api.beta.yaml index 5c486eb08..bba8e3b3c 100644 --- a/static/api-specs/idn/sailpoint-api.beta.yaml +++ b/static/api-specs/idn/sailpoint-api.beta.yaml @@ -765,6 +765,15 @@ tags: - [ServiceNow Service Desk](https://documentation.sailpoint.com/connectors/servicenow/sdim/help/integrating_servicenow_sdim/intro.html) - [Zendesk Service Desk](https://documentation.sailpoint.com/connectors/zendesk/help/integrating_zendesk_sd/introduction.html) + - name: SIM Integrations + description: | + Use this API to administer IdentityNow's Service Integration Module, or SIM integration with ServiceNow, so that it converts IdentityNow provisioning actions into tickets in ServiceNow. + + ServiceNow is a software platform that supports IT service management and automates common business processes for requesting and fulfilling service requests across a business enterprise. + + You must have an IdentityNow ServiceNow ServiceDesk license to use this integration. Contact your Customer Success Manager for more information. + + Service Desk integration for IdentityNow and in deprecation - not available for new implementation, as of July 21st, 2021. As per SailPoint’s [support policy](https://community.sailpoint.com/t5/Connector-Directory/SailPoint-Support-Policy-for-Connectivity/ta-p/79422), all existing SailPoint IdentityNow customers using this legacy integration will be supported until July 2022. - name: SOD Policies description: | Use this API to implement and manage "separation of duties" (SOD) policies. @@ -1584,6 +1593,12 @@ paths: $ref: './beta/paths/service-desk-integration-template.yaml' /service-desk-integrations/status-check-configuration: $ref: './beta/paths/service-desk-integration-configuration.yaml' + /sim-integrations: + $ref: './beta/paths/sim-integrations-value-list.yaml' + /sim-integrations/{id}: + $ref: './beta/paths/sim-integrations.yaml' + /sim-integrations/{id}/beforeProvisioningRule: + $ref: './beta/paths/sim-integrations-before-provisioning-rule.yaml' /sp-config/export: $ref: './beta/paths/sp-config-export.yaml' /sp-config/export/{id}: From 0c07bf112725cb9834934f8d291b06388bc3ff43 Mon Sep 17 00:00:00 2001 From: Colin McKibben Date: Mon, 10 Jun 2024 15:15:23 -0400 Subject: [PATCH 21/74] Updated access request submitted and access request dynamic approval triggers to indicate which order they are executed in --- .../event-triggers/available/access-request-dynamic-approval.md | 2 ++ .../event-triggers/available/access-request-submitted.md | 2 +- 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/docs/extensibility/event-triggers/available/access-request-dynamic-approval.md b/docs/extensibility/event-triggers/available/access-request-dynamic-approval.md index ddeebc5ab..1fd2ee55f 100644 --- a/docs/extensibility/event-triggers/available/access-request-dynamic-approval.md +++ b/docs/extensibility/event-triggers/available/access-request-dynamic-approval.md @@ -30,6 +30,8 @@ You can use this trigger to develop logic outside of Identity Security Cloud’s - A security officer - A high-risk governance group for highly sensitive roles +If there is an active subscription to the [Access Request Submitted trigger](./access-request-submitted.md), this trigger is invoked **after** a response is submitted to the Access Request Submitted trigger, and only if that response is to approve the access request. + ## Configuration This is a `REQUEST_RESPONSE` trigger type. For more information about how to respond to a `REQUEST_RESPONSE` type trigger, see [responding to a request response type trigger](../responding-to-a-request-response-trigger.mdx) . This trigger intercepts newly submitted access requests and allows the subscribing service to add one additional identity or governance group as the last step in the approver list for the access request. diff --git a/docs/extensibility/event-triggers/available/access-request-submitted.md b/docs/extensibility/event-triggers/available/access-request-submitted.md index 3888885c9..10af13ee2 100644 --- a/docs/extensibility/event-triggers/available/access-request-submitted.md +++ b/docs/extensibility/event-triggers/available/access-request-submitted.md @@ -21,7 +21,7 @@ tags: ['Event Triggers', 'Available Event Triggers', 'Request Response'] ## Event Context -The platform now includes event triggers within the access request approval workflow. The 'Access Request Submitted' event trigger provides more proactive governance, ensures users can quickly obtain needed access, and helps with more preventative measures towards unintended access. +The platform now includes event triggers within the access request approval workflow. The 'Access Request Submitted' event trigger provides more proactive governance, ensures users can quickly obtain needed access, and helps with more preventative measures towards unintended access. When an access request is submitted, this trigger is invoked before the [Access Request Dynamic Approval trigger](./access-request-dynamic-approval.md). ![Flow](./img/access-request-preapproval-path.png) From 407b50931a96d8961842e235100e5795e6a8b3ca Mon Sep 17 00:00:00 2001 From: Colin McKibben Date: Tue, 11 Jun 2024 10:29:02 -0400 Subject: [PATCH 22/74] Add a warning about the approver for Access Request Submitted needing to be a real identity --- .../available/access-request-submitted.md | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/docs/extensibility/event-triggers/available/access-request-submitted.md b/docs/extensibility/event-triggers/available/access-request-submitted.md index 10af13ee2..aba01f1a5 100644 --- a/docs/extensibility/event-triggers/available/access-request-submitted.md +++ b/docs/extensibility/event-triggers/available/access-request-submitted.md @@ -96,10 +96,20 @@ To deny an access request, the subscribing service responds to the event trigger } ``` -This event trigger interrupts the normal workflow for access requests. Access requests can only proceed if the subscribing service responds within the alotted time by approving the request. If the subscribing service is non-responsive or it is responding with an incorrect payload, access requests will fail after the **Separation of Duties** check. If you see numerous access requests failing at this stage, verify that your subscribing service itself is operating correctly. +:::Warning +The `approver` does not have to be the name of an existing identity in your ISC tenant. It can be anything you want it to be. However, if you have an active subscription to the [Access Request Decision](./access-request-decision.md) trigger, you **MUST** provide the **username** of an existing identity in your tenant in the `approver` field. If you do not provide the **username** of an existing identity, then your Access Request Decision subscriptions will never be triggered. +::: + +:::Warning +This event trigger interrupts the normal workflow for access requests. Access requests can only proceed if the subscribing service responds within the alotted time by approving the request. If the subscribing service is non-responsive or it is responding with an incorrect payload, access requests will fail after the **Separation of Duties** check. ![AR failed](./img/access-request-preapproval-failure.png) +If you see numerous access requests failing at this stage, verify that your subscribing service is operating correctly. +::: + + + ## Additional Information and Links - **Trigger Type**: [REQUEST_RESPONSE](../trigger-types.md#request-response) From 28b278f71758165eababee99415fe17bab8ebdb5 Mon Sep 17 00:00:00 2001 From: GitHub Action Bot Date: Tue, 11 Jun 2024 14:30:29 +0000 Subject: [PATCH 23/74] Automated commit by github action: 9467523592 --- .../idn/beta/paths/sod-policies.yaml | 26 ++++++++++++++----- .../idn/beta/paths/task-status-list.yaml | 3 ++- .../api-specs/idn/beta/schemas/SodPolicy.yaml | 19 +++++++++++++- .../ViolationOwnerAssignmentConfig.yaml | 24 ++++++++++++++--- .../api-specs/idn/v3/paths/sod-policies.yaml | 22 +++++++++++----- .../api-specs/idn/v3/schemas/SodPolicy.yaml | 19 +++++++++++++- .../ViolationOwnerAssignmentConfig.yaml | 24 ++++++++++++++--- 7 files changed, 115 insertions(+), 22 deletions(-) diff --git a/static/api-specs/idn/beta/paths/sod-policies.yaml b/static/api-specs/idn/beta/paths/sod-policies.yaml index 5860654fb..68152f456 100644 --- a/static/api-specs/idn/beta/paths/sod-policies.yaml +++ b/static/api-specs/idn/beta/paths/sod-policies.yaml @@ -257,15 +257,27 @@ get: Filtering is supported for the following fields and operators: - **id**: *eq* - - - **name**: *eq* - - - **state**: *eq* + **id**: *eq, in* + + + **name**: *eq, in* + + + **state**: *eq, in* example: id eq "bc693f07e7b645539626c25954c58554" required: false + - in: query + name: sorters + required: false + schema: + type: string + format: comma-separated + example: id,name + description: >- + Sort results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#sorting-results) + + + Sorting is supported for the following fields: **id, name, created, modified, description** responses: "200": description: List of all SOD policies. diff --git a/static/api-specs/idn/beta/paths/task-status-list.yaml b/static/api-specs/idn/beta/paths/task-status-list.yaml index 33f31c4de..46d794625 100644 --- a/static/api-specs/idn/beta/paths/task-status-list.yaml +++ b/static/api-specs/idn/beta/paths/task-status-list.yaml @@ -2,7 +2,8 @@ get: tags: - Task Management summary: Retrieve a task status list. - description: Get a TaskStatus list. + description: | + Use this endpoint to get a list of **completed** tasks. To get a list of tasks **in-progress**, please use the [get pending tasks](https://developer.sailpoint.com/docs/api/beta/get-pending-tasks) endpoint. operationId: getTaskStatusList parameters: - $ref: '../../v3/parameters/limit.yaml' diff --git a/static/api-specs/idn/beta/schemas/SodPolicy.yaml b/static/api-specs/idn/beta/schemas/SodPolicy.yaml index 152e061d7..94ee3955e 100644 --- a/static/api-specs/idn/beta/schemas/SodPolicy.yaml +++ b/static/api-specs/idn/beta/schemas/SodPolicy.yaml @@ -27,7 +27,24 @@ properties: example: "This policy ensures compliance of xyz" nullable: true ownerRef: - $ref: '../../v3/schemas/OwnerDto.yaml' + type: object + description: The owner of the SOD policy. + properties: + type: + type: string + description: Owner type. + enum: + - IDENTITY + - GOVERNANCE_GROUP + example: IDENTITY + id: + type: string + description: Owner's ID. + example: 2c9180a46faadee4016fb4e018c20639 + name: + type: string + description: Owner's name. + example: Support externalPolicyReference: type: string description: Optional external policy reference. diff --git a/static/api-specs/idn/beta/schemas/ViolationOwnerAssignmentConfig.yaml b/static/api-specs/idn/beta/schemas/ViolationOwnerAssignmentConfig.yaml index 002c60748..77d1054e5 100644 --- a/static/api-specs/idn/beta/schemas/ViolationOwnerAssignmentConfig.yaml +++ b/static/api-specs/idn/beta/schemas/ViolationOwnerAssignmentConfig.yaml @@ -15,7 +15,25 @@ properties: example: MANAGER nullable: true ownerRef: - allOf: - - $ref: '../../v3/schemas/OwnerDto.yaml' - - nullable: true + type: object + description: The owner of the violation assignment config. + nullable: true + properties: + type: + type: string + description: Owner type. + enum: + - IDENTITY + - GOVERNANCE_GROUP + - MANAGER + - null + example: IDENTITY + id: + type: string + description: Owner's ID. + example: 2c9180a46faadee4016fb4e018c20639 + name: + type: string + description: Owner's name. + example: Support diff --git a/static/api-specs/idn/v3/paths/sod-policies.yaml b/static/api-specs/idn/v3/paths/sod-policies.yaml index 1c667239a..496235166 100644 --- a/static/api-specs/idn/v3/paths/sod-policies.yaml +++ b/static/api-specs/idn/v3/paths/sod-policies.yaml @@ -249,23 +249,33 @@ get: schema: type: string description: >- - Filter results using the standard syntax described in [V3 API Standard - Collection - Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#filtering-results) + Filter results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#filtering-results) Filtering is supported for the following fields and operators: - **id**: *eq* + **id**: *eq, in* - **name**: *eq* + **name**: *eq, in* - **state**: *eq* + **state**: *eq, in* example: id eq "bc693f07e7b645539626c25954c58554" required: false + - in: query + name: sorters + required: false + schema: + type: string + format: comma-separated + example: id,name + description: >- + Sort results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#sorting-results) + + + Sorting is supported for the following fields: **id, name, created, modified, description** responses: "200": description: List of all SOD policies. diff --git a/static/api-specs/idn/v3/schemas/SodPolicy.yaml b/static/api-specs/idn/v3/schemas/SodPolicy.yaml index a402accd8..2ece25f65 100644 --- a/static/api-specs/idn/v3/schemas/SodPolicy.yaml +++ b/static/api-specs/idn/v3/schemas/SodPolicy.yaml @@ -27,7 +27,24 @@ properties: example: "This policy ensures compliance of xyz" nullable: true ownerRef: - $ref: '../../v3/schemas/OwnerDto.yaml' + type: object + description: The owner of the SOD policy. + properties: + type: + type: string + description: Owner type. + enum: + - IDENTITY + - GOVERNANCE_GROUP + example: IDENTITY + id: + type: string + description: Owner's ID. + example: 2c9180a46faadee4016fb4e018c20639 + name: + type: string + description: Owner's name. + example: Support externalPolicyReference: type: string description: Optional External Policy Reference diff --git a/static/api-specs/idn/v3/schemas/ViolationOwnerAssignmentConfig.yaml b/static/api-specs/idn/v3/schemas/ViolationOwnerAssignmentConfig.yaml index a4ca11cd3..67f33d71d 100644 --- a/static/api-specs/idn/v3/schemas/ViolationOwnerAssignmentConfig.yaml +++ b/static/api-specs/idn/v3/schemas/ViolationOwnerAssignmentConfig.yaml @@ -15,6 +15,24 @@ properties: example: MANAGER nullable: true ownerRef: - allOf: - - $ref: '../../v3/schemas/OwnerDto.yaml' - - nullable: true + type: object + description: The owner of the violation assignment config. + nullable: true + properties: + type: + type: string + description: Owner type. + enum: + - IDENTITY + - GOVERNANCE_GROUP + - MANAGER + - null + example: IDENTITY + id: + type: string + description: Owner's ID. + example: 2c9180a46faadee4016fb4e018c20639 + name: + type: string + description: Owner's name. + example: Support From 7b35880d4c4472316fb997081e2ca510bba8d6a9 Mon Sep 17 00:00:00 2001 From: GitHub Action Bot Date: Tue, 11 Jun 2024 17:49:43 +0000 Subject: [PATCH 24/74] Automated commit by github action: 9470405480 --- static/api-specs/idn/beta/paths/sod-all-report-run.yaml | 2 +- static/api-specs/idn/beta/paths/sod-all-report-status.yaml | 2 +- .../api-specs/idn/beta/paths/sod-download-custom-report.yaml | 2 +- .../api-specs/idn/beta/paths/sod-download-default-report.yaml | 2 +- static/api-specs/idn/beta/paths/sod-violation-check.yaml | 4 ++-- .../api-specs/idn/beta/paths/sod-violation-report-status.yaml | 2 +- static/api-specs/idn/beta/paths/sod/arm-risk.yaml | 2 +- static/api-specs/idn/v3/paths/sod-all-report-run.yaml | 2 +- static/api-specs/idn/v3/paths/sod-all-report-status.yaml | 2 +- static/api-specs/idn/v3/paths/sod-download-custom-report.yaml | 2 +- .../api-specs/idn/v3/paths/sod-download-default-report.yaml | 2 +- 11 files changed, 12 insertions(+), 12 deletions(-) diff --git a/static/api-specs/idn/beta/paths/sod-all-report-run.yaml b/static/api-specs/idn/beta/paths/sod-all-report-run.yaml index e521eac22..09eddf4d5 100644 --- a/static/api-specs/idn/beta/paths/sod-all-report-run.yaml +++ b/static/api-specs/idn/beta/paths/sod-all-report-run.yaml @@ -1,7 +1,7 @@ post: operationId: startSodAllPoliciesForOrg tags: - - SOD Policy + - SOD Policies summary: Runs all policies for org deprecated: true security: diff --git a/static/api-specs/idn/beta/paths/sod-all-report-status.yaml b/static/api-specs/idn/beta/paths/sod-all-report-status.yaml index 6080fdbc9..ff36945ce 100644 --- a/static/api-specs/idn/beta/paths/sod-all-report-status.yaml +++ b/static/api-specs/idn/beta/paths/sod-all-report-status.yaml @@ -1,7 +1,7 @@ get: operationId: getSodAllReportRunStatus tags: - - SOD Policy + - SOD Policies summary: Get multi-report run task status deprecated: true security: diff --git a/static/api-specs/idn/beta/paths/sod-download-custom-report.yaml b/static/api-specs/idn/beta/paths/sod-download-custom-report.yaml index 949c1eedc..d62937e5e 100644 --- a/static/api-specs/idn/beta/paths/sod-download-custom-report.yaml +++ b/static/api-specs/idn/beta/paths/sod-download-custom-report.yaml @@ -1,7 +1,7 @@ get: operationId: getCustomViolationReport tags: - - SOD Policy + - SOD Policies summary: Download custom violation report deprecated: true security: diff --git a/static/api-specs/idn/beta/paths/sod-download-default-report.yaml b/static/api-specs/idn/beta/paths/sod-download-default-report.yaml index 8b084c2bd..3f502c117 100644 --- a/static/api-specs/idn/beta/paths/sod-download-default-report.yaml +++ b/static/api-specs/idn/beta/paths/sod-download-default-report.yaml @@ -1,7 +1,7 @@ get: operationId: getDefaultViolationReport tags: - - SOD Policy + - SOD Policies summary: Download violation report deprecated: true security: diff --git a/static/api-specs/idn/beta/paths/sod-violation-check.yaml b/static/api-specs/idn/beta/paths/sod-violation-check.yaml index 63691dfb7..58a79d692 100644 --- a/static/api-specs/idn/beta/paths/sod-violation-check.yaml +++ b/static/api-specs/idn/beta/paths/sod-violation-check.yaml @@ -1,7 +1,7 @@ post: - operationId: violationCheck + operationId: startViolationCheck tags: - - SOD Policy + - SOD Policies summary: Check SOD violations description: >- This API initiates a SOD policy verification asynchronously. diff --git a/static/api-specs/idn/beta/paths/sod-violation-report-status.yaml b/static/api-specs/idn/beta/paths/sod-violation-report-status.yaml index f7511bde8..fcf570e7a 100644 --- a/static/api-specs/idn/beta/paths/sod-violation-report-status.yaml +++ b/static/api-specs/idn/beta/paths/sod-violation-report-status.yaml @@ -1,7 +1,7 @@ get: operationId: getSodViolationReportRunStatus tags: - - SOD Policy + - SOD Policies summary: Get violation report run status deprecated: true security: diff --git a/static/api-specs/idn/beta/paths/sod/arm-risk.yaml b/static/api-specs/idn/beta/paths/sod/arm-risk.yaml index be8c8662a..ebd4f8ee8 100644 --- a/static/api-specs/idn/beta/paths/sod/arm-risk.yaml +++ b/static/api-specs/idn/beta/paths/sod/arm-risk.yaml @@ -1,7 +1,7 @@ get: operationId: getArmRiskById tags: - - SOD Policy + - SOD Policies summary: Gets the specified ARM risk. description: >- This API gets the specified ARM risk. diff --git a/static/api-specs/idn/v3/paths/sod-all-report-run.yaml b/static/api-specs/idn/v3/paths/sod-all-report-run.yaml index 5c1f5fdf5..5c38f5863 100644 --- a/static/api-specs/idn/v3/paths/sod-all-report-run.yaml +++ b/static/api-specs/idn/v3/paths/sod-all-report-run.yaml @@ -3,7 +3,7 @@ post: - UserContextAuth: [idn:sod-violation:write] operationId: startSodAllPoliciesForOrg tags: - - SOD Policy + - SOD Policies summary: Runs all policies for org description: >- Runs multi-policy report for the org. If a policy reports more than 5000 violations, the report mentions that the violation limit was exceeded for that policy. diff --git a/static/api-specs/idn/v3/paths/sod-all-report-status.yaml b/static/api-specs/idn/v3/paths/sod-all-report-status.yaml index 89cc03633..24681e2ab 100644 --- a/static/api-specs/idn/v3/paths/sod-all-report-status.yaml +++ b/static/api-specs/idn/v3/paths/sod-all-report-status.yaml @@ -3,7 +3,7 @@ get: - UserContextAuth: [idn:sod-violation:read] operationId: getSodAllReportRunStatus tags: - - SOD Policy + - SOD Policies summary: Get multi-report run task status description: >- This endpoint gets the status for a violation report for all policy run. diff --git a/static/api-specs/idn/v3/paths/sod-download-custom-report.yaml b/static/api-specs/idn/v3/paths/sod-download-custom-report.yaml index ea676363c..c4f2acc30 100644 --- a/static/api-specs/idn/v3/paths/sod-download-custom-report.yaml +++ b/static/api-specs/idn/v3/paths/sod-download-custom-report.yaml @@ -3,7 +3,7 @@ get: - UserContextAuth: [idn:sod-violation:read] operationId: getCustomViolationReport tags: - - SOD Policy + - SOD Policies summary: Download custom violation report description: >- This allows to download a specified named violation report for a given report reference. diff --git a/static/api-specs/idn/v3/paths/sod-download-default-report.yaml b/static/api-specs/idn/v3/paths/sod-download-default-report.yaml index 7904e8fb4..d29332f74 100644 --- a/static/api-specs/idn/v3/paths/sod-download-default-report.yaml +++ b/static/api-specs/idn/v3/paths/sod-download-default-report.yaml @@ -3,7 +3,7 @@ get: - UserContextAuth: [idn:sod-violation:read] operationId: getDefaultViolationReport tags: - - SOD Policy + - SOD Policies summary: Download violation report description: >- This allows to download a violation report for a given report reference. From 8a676fda72ae67c14c26c29191c8497d0355d3fc Mon Sep 17 00:00:00 2001 From: GitHub Action Bot Date: Thu, 13 Jun 2024 13:39:20 +0000 Subject: [PATCH 25/74] Automated commit by github action: 9500739768 --- static/api-specs/idn/v3/paths/access-requests.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/static/api-specs/idn/v3/paths/access-requests.yaml b/static/api-specs/idn/v3/paths/access-requests.yaml index 2ee191ca9..bf0752e11 100644 --- a/static/api-specs/idn/v3/paths/access-requests.yaml +++ b/static/api-specs/idn/v3/paths/access-requests.yaml @@ -1,7 +1,7 @@ post: operationId: createAccessRequest security: - - UserContextAuth: [ idn:access-request:create ] + - UserContextAuth: [ idn:access-request:manage ] summary: Submit Access Request tags: - Access Requests From 60e639d66ea73899639c0a152096c1e286a820b6 Mon Sep 17 00:00:00 2001 From: Colin McKibben <75683148+colin-mckibben-sp@users.noreply.github.com> Date: Thu, 13 Jun 2024 10:16:03 -0400 Subject: [PATCH 26/74] Update authorization.md User levels can be set via a V3 API now. --- docs/api/authorization.md | 8 +------- 1 file changed, 1 insertion(+), 7 deletions(-) diff --git a/docs/api/authorization.md b/docs/api/authorization.md index 1bb04108b..2e27da8ce 100644 --- a/docs/api/authorization.md +++ b/docs/api/authorization.md @@ -43,13 +43,7 @@ sequenceDiagram When managing a user's access to the API, you must first assign the target user an appropriate [user level](https://documentation.sailpoint.com/saas/help/common/users/user_level_matrix.html). It is important to choose the correct user level as it will place a boundary on which APIs a user can call, which also affects the areas and functions of the UI they have access to. For example, if a user is in charge of creating reports for auditing requirements, consider granting them the "Report Admin" user level. -User levels are typically granted through the UI, [following the procedures from this document](https://documentation.sailpoint.com/saas/help/common/users/grant_remove_user_levels.html). - -:::caution - -There is an [API that can set an identity's user level](https://developer.sailpoint.com/discuss/t/assign-identitynow-admin-roles-via-api/1874/4), but it is a V1 API with no guaranteed support. Use it at your own risk! - -::: +User levels are typically granted through the UI, [following the procedures from this document](https://documentation.sailpoint.com/saas/help/common/users/grant_remove_user_levels.html). You can also set user levels via API using the [auth user update](https://developer.sailpoint.com/docs/api/v3/patch-auth-user) endpoint. User levels act as the first line of defense by applying a rigid boundary around the APIs that a user can call. The next section introduces scopes, which allow users to apply granular controls on the APIs an access token can call. From 234f91dcd3735ff0f4a270ac2f108f4f34a87475 Mon Sep 17 00:00:00 2001 From: GitHub Action Bot Date: Thu, 13 Jun 2024 15:28:41 +0000 Subject: [PATCH 27/74] Automated commit by github action: 9502475173 --- static/api-specs/idn/sailpoint-api.beta.yaml | 130 ++++++------ static/api-specs/idn/sailpoint-api.v3.yaml | 201 +++++++++---------- 2 files changed, 165 insertions(+), 166 deletions(-) diff --git a/static/api-specs/idn/sailpoint-api.beta.yaml b/static/api-specs/idn/sailpoint-api.beta.yaml index bba8e3b3c..f39b83a48 100644 --- a/static/api-specs/idn/sailpoint-api.beta.yaml +++ b/static/api-specs/idn/sailpoint-api.beta.yaml @@ -72,23 +72,6 @@ tags: - Multiple Account Options: Define the logic Identity Security Cloud uses to provision access to an identity with multiple accounts on the source. Refer to [Managing Access Profiles](https://documentation.sailpoint.com/saas/help/access/access-profiles.html) for more information about access profiles. - - name: Access Requests - description: | - Use this API to implement and customize access request functionality. - With this functionality in place, users can request access to applications, entitlements, or roles, and managers can request that team members' access be revoked. - This allows users to get access to the tools they need quickly and securely, and it allows managers to take away access to those tools. - - Identity Security Cloud's Access Request service allows end users to request access that requires approval before it can be granted to users and enables qualified users to review those requests and approve or deny them. - - In the Request Center in Identity Security Cloud, users can view available applications, roles, and entitlements and request access to them. - If the requested tools requires approval, the requests appear as 'Pending' under the My Requests tab until the required approver approves, rejects, or cancels them. - - Users can use My Requests to track and/or cancel the requests. - - In My Team on the Identity Security Cloud Home, managers can submit requests to revoke their team members' access. - They can use the My Requests tab under Request Center to track and/or cancel the requests. - - Refer to [Requesting Access](https://documentation.sailpoint.com/saas/user-help/requests/requesting_access.html) for more information about access requests. - name: Access Request Approvals description: | Use this API to implement and customize access request approval functionality. @@ -114,35 +97,23 @@ tags: With this functionality in place, access request reviewers can see relevant details about the requested access item and associated source activity. This allows reviewers to see how many of the identities who share a manager with the access requester have this same type of access and how many of them have had activity in the related source. This additional context about whether the access has been granted before and how often it has been used can help those approving access requests make more informed decisions. - - name: Accounts + - name: Access Requests description: | - Use this API to implement and customize account functionality. - With this functionality in place, administrators can manage users' access across sources in Identity Security Cloud. + Use this API to implement and customize access request functionality. + With this functionality in place, users can request access to applications, entitlements, or roles, and managers can request that team members' access be revoked. + This allows users to get access to the tools they need quickly and securely, and it allows managers to take away access to those tools. - In Identity Security Cloud, an account refers to a user's account on a supported source. - This typically includes a unique identifier for the user, a unique password, a set of permissions associated with the source and a set of attributes. Identity Security Cloud loads accounts through the creation of sources in Identity Security Cloud. + Identity Security Cloud's Access Request service allows end users to request access that requires approval before it can be granted to users and enables qualified users to review those requests and approve or deny them. - Administrators can correlate users' identities with the users' accounts on the different sources they use. - This allows Identity Security Cloud to govern the access of identities and all their correlated accounts securely and cohesively. + In the Request Center in Identity Security Cloud, users can view available applications, roles, and entitlements and request access to them. + If the requested tools requires approval, the requests appear as 'Pending' under the My Requests tab until the required approver approves, rejects, or cancels them. - To view the accounts on a source and their correlated identities, administrators can use the Connections drop-down menu, select Sources, select the relevant source, and select its Account tab. + Users can use My Requests to track and/or cancel the requests. - To view and edit source account statuses for an identity in Identity Security Cloud, administrators can use the Identities drop-down menu, select Identity List, select the relevant identity, and select its Accounts tab. - Administrators can toggle an account's Actions to aggregate the account, enable/disable it, unlock it, or remove it from the identity. + In My Team on the Identity Security Cloud Home, managers can submit requests to revoke their team members' access. + They can use the My Requests tab under Request Center to track and/or cancel the requests. - Accounts can have the following statuses: - - - Enabled: The account is enabled. The user can access it. - - - Disabled: The account is disabled, and the user cannot access it, but the identity is not disabled in Identity Security Cloud. This can occur when an administrator disables the account or when the user's lifecycle state changes. - - - Locked: The account is locked. This may occur when someone has entered an incorrect password for the account too many times. - - - Pending: The account is currently updating. This status typically lasts seconds. - - Administrators can select the source account to view its attributes, entitlements, and the last time the account's password was changed. - - Refer to [Managing User Accounts](https://documentation.sailpoint.com/saas/help/common/users/user_access.html#managing-user-accounts) for more information about accounts. + Refer to [Requesting Access](https://documentation.sailpoint.com/saas/user-help/requests/requesting_access.html) for more information about access requests. - name: Account Activities description: | Use this API to implement account activity tracking functionality. @@ -195,28 +166,40 @@ tags: Use this API to implement account usage insight functionality. With this functionality in place, administrators can gather information and insights about how their tenants' source accounts are being used. This allows organizations to get the information they need to start optimizing and securing source account usage. + - name: Accounts + description: | + Use this API to implement and customize account functionality. + With this functionality in place, administrators can manage users' access across sources in Identity Security Cloud. + + In Identity Security Cloud, an account refers to a user's account on a supported source. + This typically includes a unique identifier for the user, a unique password, a set of permissions associated with the source and a set of attributes. Identity Security Cloud loads accounts through the creation of sources in Identity Security Cloud. + + Administrators can correlate users' identities with the users' accounts on the different sources they use. + This allows Identity Security Cloud to govern the access of identities and all their correlated accounts securely and cohesively. + + To view the accounts on a source and their correlated identities, administrators can use the Connections drop-down menu, select Sources, select the relevant source, and select its Account tab. + + To view and edit source account statuses for an identity in Identity Security Cloud, administrators can use the Identities drop-down menu, select Identity List, select the relevant identity, and select its Accounts tab. + Administrators can toggle an account's Actions to aggregate the account, enable/disable it, unlock it, or remove it from the identity. + + Accounts can have the following statuses: + + - Enabled: The account is enabled. The user can access it. + + - Disabled: The account is disabled, and the user cannot access it, but the identity is not disabled in Identity Security Cloud. This can occur when an administrator disables the account or when the user's lifecycle state changes. + + - Locked: The account is locked. This may occur when someone has entered an incorrect password for the account too many times. + + - Pending: The account is currently updating. This status typically lasts seconds. + + Administrators can select the source account to view its attributes, entitlements, and the last time the account's password was changed. + + Refer to [Managing User Accounts](https://documentation.sailpoint.com/saas/help/common/users/user_access.html#managing-user-accounts) for more information about accounts. - name: Auth Profile description: | Auth Profile - Represents authentication configuration for an Identity Profile. This object gets created when an Identity Profile is created. APIs can be used to retrieve and update Auth Profiles. - - name: Certifications - description: | - Use this API to implement certification functionality. - This API provides specific functionality that improves an organization's ability to manage its certification process. - - A certification refers to Identity Security Cloud's mechanism for reviewing a user's access to entitlements (sets of permissions) and approving or removing that access. - These certifications serve as a way of showing that a user's access has been reviewed and approved. - Multiple certifications by different reviewers are often required to approve a user's access. - A set of multiple certifications is called a certification campaign. - - For example, an organization may use a Manager Certification as a way of showing that a user's access has been reviewed and approved by their manager, or if the certification is part of a campaign, that the user's access has been reviewed and approved by multiple managers. - Once this certification has been completed, Identity Security Cloud would provision all the access the user needs, nothing more. - - This API enables administrators and reviewers to get useful information about certifications at a high level, such as the reviewers involved, and at a more granular level, such as the permissions affected by changes to entitlements within those certifications. - It also provides the useful ability to reassign identities and items within certifications to other reviewers, rather than [reassigning the entire certifications themselves](https://developer.sailpoint.com/idn/api/beta/submit-reassign-certs-async/). - - Refer to [Managing User Accounts](https://documentation.sailpoint.com/saas/help/common/users/user_access.html#managing-user-accounts) for more information about accounts. - name: Certification Campaigns description: | Use this API to implement certification campaign functionality. @@ -272,7 +255,7 @@ tags: Those reviewers can view any of the certifications they either need to review (active) or have already reviewed (completed). When a certification campaign is in progress, certification reviewers see the listed active certifications whose involved identities they can review. - Reviewers can then make decisions to grant or revoke access, as well as reassign the ceritifcation to another reviewer. If the reviewer chooses this option, they must provide a reason for reassignment in the form of a comment. + Reviewers can then make decisions to grant or revoke access, as well as reassign the certification to another reviewer. If the reviewer chooses this option, they must provide a reason for reassignment in the form of a comment. Once a reviewer has made decisions on all the certification's involved access items, he or she must "Sign Off" to complete the review process. Doing so converts the certification into read-only status, preventing any further changes to the review decisions and deleting the work item (task) from the reviewer's list of work items. @@ -284,6 +267,24 @@ tags: The end of a certification campaign is determined by its deadline, its completion status, or by an administrator's decision. For more information about certifications and certification campaigns, refer to [Certifications](https://documentation.sailpoint.com/saas/user-help/certifications.html). + - name: Certifications + description: | + Use this API to implement certification functionality. + This API provides specific functionality that improves an organization's ability to manage its certification process. + + A certification refers to Identity Security Cloud's mechanism for reviewing a user's access to entitlements (sets of permissions) and approving or removing that access. + These certifications serve as a way of showing that a user's access has been reviewed and approved. + Multiple certifications by different reviewers are often required to approve a user's access. + A set of multiple certifications is called a certification campaign. + + For example, an organization may use a Manager Certification as a way of showing that a user's access has been reviewed and approved by their manager, or if the certification is part of a campaign, that the user's access has been reviewed and approved by multiple managers. + Once this certification has been completed, Identity Security Cloud would provision all the access the user needs, nothing more. + + This API enables administrators and reviewers to get useful information about certifications at a high level, such as the reviewers involved, and at a more granular level, such as the permissions affected by changes to entitlements within those certifications. + It also provides the useful ability to reassign identities and items within certifications to other reviewers, rather than [reassigning the entire certifications themselves](https://developer.sailpoint.com/idn/api/beta/submit-reassign-certs-async/). + + Refer to [Managing User Accounts](https://documentation.sailpoint.com/saas/help/common/users/user_access.html#managing-user-accounts) for more information about accounts. + - name: Connector Rule Management - name: Connectors description: | Use this API to implement connector functionality. @@ -300,7 +301,6 @@ tags: Refer to [SaaS Connectivity](https://developer.sailpoint.com/docs/connectivity/saas-connectivity) for more information about the SaaS custom connectors that do not need VAs (virtual appliances) to communicate with their sources. Refer to [Managing Sources](https://documentation.sailpoint.com/saas/help/sources/managing_sources.html) for more information about using connectors in Identity Security Cloud. - - name: Connector Rule Management - name: Custom Forms description: | Use this API to build and manage custom forms. @@ -679,6 +679,7 @@ tags: Use this API to implement requestable object functionality. With this functionality in place, administrators can determine which access items can be requested with the [Access Request APIs](https://developer.sailpoint.com/docs/api/beta/access-requests/), along with their statuses. This can be helpful for administrators who are implementing and customizing access request functionality as a way of checking which items are requestable as they are created, assigned, and made available. + - name: Role Insights - name: Roles description: | Use this API to implement and customize role functionality. @@ -718,7 +719,6 @@ tags: Do not configure a role to be requestable without establishing a secure access request approval process for that role first. Refer to [Working with Roles](https://documentation.sailpoint.com/saas/help/access/roles.html) for more information about roles. - - name: Role Insights - name: Search Attribute Configuration - name: Segments description: | @@ -822,6 +822,11 @@ tags: This second option is a good way to prevent SOD violations from triggering at all. Refer to [Handling Policy Violations](https://documentation.sailpoint.com/saas/help/sod/policy-violations.html) for more information about SOD policy violations. + - name: Source Usages + description: | + Use this API to implement source usage insight functionality. + With this functionality in place, administrators can gather information and insights about how their tenants' sources are being used. + This allows organizations to get the information they need to start optimizing and securing source usage. - name: Sources description: | Use this API to implement and customize source functionality. @@ -881,11 +886,6 @@ tags: Well organized, mapped out connections between sources and Identity Security Cloud are essential to achieving comprehensive identity access governance across all the source systems organizations need. Refer to [Managing Sources](https://documentation.sailpoint.com/saas/help/sources/managing_sources.html) for more information about all the different things admins can do with sources once they are connected. - - name: Source Usages - description: | - Use this API to implement source usage insight functionality. - With this functionality in place, administrators can gather information and insights about how their tenants' sources are being used. - This allows organizations to get the information they need to start optimizing and securing source usage. - name: SP-Config description: Import and export configuration for some objects between tenants. - name: Suggested Entitlement Description diff --git a/static/api-specs/idn/sailpoint-api.v3.yaml b/static/api-specs/idn/sailpoint-api.v3.yaml index 7d694dbb1..c3ff8f71f 100644 --- a/static/api-specs/idn/sailpoint-api.v3.yaml +++ b/static/api-specs/idn/sailpoint-api.v3.yaml @@ -67,23 +67,6 @@ tags: - Multiple Account Options: Define the logic Identity Security Cloud uses to provision access to an identity with multiple accounts on the source. Refer to [Managing Access Profiles](https://documentation.sailpoint.com/saas/help/access/access-profiles.html) for more information about access profiles. - - name: Access Requests - description: | - Use this API to implement and customize access request functionality. - With this functionality in place, users can request access to applications, entitlements, or roles, and managers can request that team members' access be revoked. - This allows users to get access to the tools they need quickly and securely, and it allows managers to take away access to those tools. - - Identity Security Cloud's Access Request service allows end users to request access that requires approval before it can be granted to users and enables qualified users to review those requests and approve or deny them. - - In the Request Center in Identity Security Cloud, users can view available applications, roles, and entitlements and request access to them. - If the requested tools requires approval, the requests appear as 'Pending' under the My Requests tab until the required approver approves, rejects, or cancels them. - - Users can use My Requests to track and/or cancel the requests. - - In My Team on the Identity Security Cloud Home, managers can submit requests to revoke their team members' access. - They can use the My Requests tab under Request Center to track and/or cancel the requests. - - Refer to [Requesting Access](https://documentation.sailpoint.com/saas/user-help/requests/requesting_access.html) for more information about access requests. - name: Access Request Approvals description: | Use this API to implement and customize access request approval functionality. @@ -103,35 +86,23 @@ tags: The required approver can then view any completed access requests under the Reviewed tab. Refer to [Access Requests](https://documentation.sailpoint.com/saas/help/requests/index.html) for more information about access request approvals. - - name: Accounts + - name: Access Requests description: | - Use this API to implement and customize account functionality. - With this functionality in place, administrators can manage users' access across sources in Identity Security Cloud. + Use this API to implement and customize access request functionality. + With this functionality in place, users can request access to applications, entitlements, or roles, and managers can request that team members' access be revoked. + This allows users to get access to the tools they need quickly and securely, and it allows managers to take away access to those tools. - In Identity Security Cloud, an account refers to a user's account on a supported source. - This typically includes a unique identifier for the user, a unique password, a set of permissions associated with the source and a set of attributes. Identity Security Cloud loads accounts through the creation of sources in Identity Security Cloud. + Identity Security Cloud's Access Request service allows end users to request access that requires approval before it can be granted to users and enables qualified users to review those requests and approve or deny them. - Administrators can correlate users' identities with the users' accounts on the different sources they use. - This allows Identity Security Cloud to govern the access of identities and all their correlated accounts securely and cohesively. + In the Request Center in Identity Security Cloud, users can view available applications, roles, and entitlements and request access to them. + If the requested tools requires approval, the requests appear as 'Pending' under the My Requests tab until the required approver approves, rejects, or cancels them. - To view the accounts on a source and their correlated identities, administrators can use the Connections drop-down menu, select Sources, select the relevant source, and select its Account tab. + Users can use My Requests to track and/or cancel the requests. - To view and edit source account statuses for an identity in Identity Security Cloud, administrators can use the Identities drop-down menu, select Identity List, select the relevant identity, and select its Accounts tab. - Administrators can toggle an account's Actions to aggregate the account, enable/disable it, unlock it, or remove it from the identity. + In My Team on the Identity Security Cloud Home, managers can submit requests to revoke their team members' access. + They can use the My Requests tab under Request Center to track and/or cancel the requests. - Accounts can have the following statuses: - - - Enabled: The account is enabled. The user can access it. - - - Disabled: The account is disabled, and the user cannot access it, but the identity is not disabled in Identity Security Cloud. This can occur when an administrator disables the account or when the user's lifecycle state changes. - - - Locked: The account is locked. This may occur when someone has entered an incorrect password for the account too many times. - - - Pending: The account is currently updating. This status typically lasts seconds. - - Administrators can select the source account to view its attributes, entitlements, and the last time the account's password was changed. - - Refer to [Managing User Accounts](https://documentation.sailpoint.com/saas/help/common/users/user_access.html#managing-user-accounts) for more information about accounts. + Refer to [Requesting Access](https://documentation.sailpoint.com/saas/user-help/requests/requesting_access.html) for more information about access requests. - name: Account Activities description: | Use this API to implement account activity tracking functionality. @@ -172,6 +143,35 @@ tags: Use this API to implement account usage insight functionality. With this functionality in place, administrators can gather information and insights about how their tenants' source accounts are being used. This allows organizations to get the information they need to start optimizing and securing source account usage. + - name: Accounts + description: | + Use this API to implement and customize account functionality. + With this functionality in place, administrators can manage users' access across sources in Identity Security Cloud. + + In Identity Security Cloud, an account refers to a user's account on a supported source. + This typically includes a unique identifier for the user, a unique password, a set of permissions associated with the source and a set of attributes. Identity Security Cloud loads accounts through the creation of sources in Identity Security Cloud. + + Administrators can correlate users' identities with the users' accounts on the different sources they use. + This allows Identity Security Cloud to govern the access of identities and all their correlated accounts securely and cohesively. + + To view the accounts on a source and their correlated identities, administrators can use the Connections drop-down menu, select Sources, select the relevant source, and select its Account tab. + + To view and edit source account statuses for an identity in Identity Security Cloud, administrators can use the Identities drop-down menu, select Identity List, select the relevant identity, and select its Accounts tab. + Administrators can toggle an account's Actions to aggregate the account, enable/disable it, unlock it, or remove it from the identity. + + Accounts can have the following statuses: + + - Enabled: The account is enabled. The user can access it. + + - Disabled: The account is disabled, and the user cannot access it, but the identity is not disabled in Identity Security Cloud. This can occur when an administrator disables the account or when the user's lifecycle state changes. + + - Locked: The account is locked. This may occur when someone has entered an incorrect password for the account too many times. + + - Pending: The account is currently updating. This status typically lasts seconds. + + Administrators can select the source account to view its attributes, entitlements, and the last time the account's password was changed. + + Refer to [Managing User Accounts](https://documentation.sailpoint.com/saas/help/common/users/user_access.html#managing-user-accounts) for more information about accounts. - name: Auth Users description: | Use this API to implement user authentication system functionality. @@ -185,33 +185,36 @@ tags: With this functionality in place, administrators can get and manage existing branding items, and they can also create new branding items and configure them for use throughout Identity Security Cloud. The Branding APIs provide administrators with a way to customize branding items. This customization includes details like their colors, logos, and other information. - - name: Certifications - description: | - Use this API to implement certification functionality. - With this functionality in place, administrators and designated certification reviewers can review users' access certifications and decide whether to approve access, revoke it, or reassign the review to another reviewer. - Implementing certifications improves organizations' data security by reducing inappropriate access through a distributed review process and helping them satisfy audit and regulatory requirements. - - A certification refers to Identity Security Cloud's mechanism for reviewing a user's access to entitlements (sets of permissions) and approving or removing that access. - These serve as a way of showing that a user's access has been reviewed and approved. - Multiple certifications by different reviewers are often required to approve a user's access. - A set of multiple certifications is called a certification campaign. - - For example, an organization may use a Manager Certification as a way of showing that a user's access has been reviewed and approved by their manager, or if the certification is part of a campaign, that the user's access has been reviewed and approved by multiple managers. - Once this certification has been completed, Identity Security Cloud would provision all the access the user needs, nothing more. - - Organization administrators or certification administrators can designate other Identity Security Cloud users as certification reviewers. - Those reviewers can select the 'Certifications' tab to view any of the certifications they either need to review or have already reviewed under the 'Active' and 'Completed' tabs, respectively. - - When a certification campaign is in progress, certification reviewers will see certifications listed under 'Active,' where they can review the involved identities. - Under the 'Decision' column on the right, next to each access item, reviewers can select the checkmark to approve access, select the 'X' to revoke access, or they can toggle the 'More Options' menu to reassign the certification to another reviewer and provide a reason for reassignment in the form of a comment. - - Once a reviewer has made decisions on all the certification's involved access items, he or she must select 'Sign Off' to complete the review process. - Doing so converts the certification into read-only status, preventing any further changes to the review decisions and deleting the work item (task) from the reviewer's list of work items. - - Once all the reviewers have signed off, the certification campaign either completes or, if any reviewers decided to revoke access for any of the involved identities, it moves into a remediation phase. In the remediation phase, identities' entitlements are altered to remove any entitlements marked for revocation. - In this situation, the certification campaign completes once all the remediation requests are completed. - Refer to [Certifications](https://documentation.sailpoint.com/saas/user-help/certifications.html) for more information about certifications. + - name: Certification Campaign Filters + description: | + Use this API to implement the certification campaign filter functionality. These filters can be used to create a certification campaign that includes a subset of your entitlements or users to certify. + + For example, if for a certification campaign an organization wants to certify only specific users or entitlements, then those can be included/excluded on the basis of campaign filters. + + For more information about creating a campaign filter, refer to [Creating a Campaign Filter](https://documentation.sailpoint.com/saas/help/certs/campaign_filters.html#creating-a-campaign-filter) + + You can create campaign filters using any of the following criteria types: + + - Access Profile : This criteria type includes or excludes access profiles from a campaign. + + - Account Attribute : This criteria type includes or excludes certification items that match a specified value in an account attribute. + + - Entitlement : This criteria type includes or excludes entitlements from a campaign. + + - Identity : This criteria type includes or excludes specific identities from your campaign. + + - Identity Attribute : This criteria type includes or excludes identities based on whether they have an identity attribute that matches criteria you've chosen. + + - Role : This criteria type includes or excludes roles, as opposed to identities. + + - Source : This criteria type includes or excludes entitlements from a source you select. + + For more information about these criteria types, refer to [Types of Campaign Filters](https://documentation.sailpoint.com/saas/help/certs/campaign_filters.html#types-of-campaign-filters) + + Once the campaign filter is created, it can be linked while creating the campaign. The generated campaign will have the items to review as per the campaign filter. + + For example, An inclusion campaign filter is created with a source of Source 1, an operation of Equals, and an entitlement of Entitlement 1. When this filter is selected, only users who have Entitlement 1 are included in the campaign, and only Entitlement 1 is shown in the certification. - name: Certification Campaigns description: | Use this API to implement certification campaign functionality. @@ -267,7 +270,7 @@ tags: Those reviewers can view any of the certifications they either need to review (active) or have already reviewed (completed). When a certification campaign is in progress, certification reviewers see the listed active certifications whose involved identities they can review. - Reviewers can then make decisions to grant or revoke access, as well as reassign the ceritifcation to another reviewer. If the reviewer chooses this option, they must provide a reason for reassignment in the form of a comment. + Reviewers can then make decisions to grant or revoke access, as well as reassign the certification to another reviewer. If the reviewer chooses this option, they must provide a reason for reassignment in the form of a comment. Once a reviewer has made decisions on all the certification's involved access items, he or she must "Sign Off" to complete the review process. Doing so converts the certification into read-only status, preventing any further changes to the review decisions and deleting the work item (task) from the reviewer's list of work items. @@ -279,35 +282,6 @@ tags: The end of a certification campaign is determined by its deadline, its completion status, or by an administrator's decision. For more information about certifications and certification campaigns, refer to [Certifications](https://documentation.sailpoint.com/saas/user-help/certifications.html). - - name: Certification Campaign Filters - description: | - Use this API to implement the certification campaign filter functionality. These filters can be used to create a certification campaign that includes a subset of your entitlements or users to certify. - - For example, if for a certification campaign an organization wants to certify only specific users or entitlements, then those can be included/excluded on the basis of campaign filters. - - For more information about creating a campaign filter, refer to [Creating a Campaign Filter](https://documentation.sailpoint.com/saas/help/certs/campaign_filters.html#creating-a-campaign-filter) - - You can create campaign filters using any of the following criteria types: - - - Access Profile : This criteria type includes or excludes access profiles from a campaign. - - - Account Attribute : This criteria type includes or excludes certification items that match a specified value in an account attribute. - - - Entitlement : This criteria type includes or excludes entitlements from a campaign. - - - Identity : This criteria type includes or excludes specific identities from your campaign. - - - Identity Attribute : This criteria type includes or excludes identities based on whether they have an identity attribute that matches criteria you've chosen. - - - Role : This criteria type includes or excludes roles, as opposed to identities. - - - Source : This criteria type includes or excludes entitlements from a source you select. - - For more information about these criteria types, refer to [Types of Campaign Filters](https://documentation.sailpoint.com/saas/help/certs/campaign_filters.html#types-of-campaign-filters) - - Once the campaign filter is created, it can be linked while creating the campaign. The generated campaign will have the items to review as per the campaign filter. - - For example, An inclusion campaign filter is created with a source of Source 1, an operation of Equals, and an entitlement of Entitlement 1. When this filter is selected, only users who have Entitlement 1 are included in the campaign, and only Entitlement 1 is shown in the certification. - name: Certification Summaries description: | Use this API to implement certification summary functionality. @@ -324,6 +298,31 @@ tags: Certification summaries provide information about identity certification campaigns such as the identities involved, the number of decisions made, and the access changed. For example, an administrator or designated certification reviewer can examine the Manager Certification campaign to get an overview of how many entitlement decisions are made in that campaign as opposed to role decisions, which identities would be affected by changes to the campaign, and how those identities' access would be affected. + - name: Certifications + description: | + Use this API to implement certification functionality. + With this functionality in place, administrators and designated certification reviewers can review users' access certifications and decide whether to approve access, revoke it, or reassign the review to another reviewer. + Implementing certifications improves organizations' data security by reducing inappropriate access through a distributed review process and helping them satisfy audit and regulatory requirements. + + A certification refers to Identity Security Cloud's mechanism for reviewing a user's access to entitlements (sets of permissions) and approving or removing that access. + These serve as a way of showing that a user's access has been reviewed and approved. + Multiple certifications by different reviewers are often required to approve a user's access. + A set of multiple certifications is called a certification campaign. + + For example, an organization may use a Manager Certification as a way of showing that a user's access has been reviewed and approved by their manager, or if the certification is part of a campaign, that the user's access has been reviewed and approved by multiple managers. + Once this certification has been completed, Identity Security Cloud would provision all the access the user needs, nothing more. + + Organization administrators or certification administrators can designate other Identity Security Cloud users as certification reviewers. + Those reviewers can select the 'Certifications' tab to view any of the certifications they either need to review or have already reviewed under the 'Active' and 'Completed' tabs, respectively. + + When a certification campaign is in progress, certification reviewers will see certifications listed under 'Active,' where they can review the involved identities. + Under the 'Decision' column on the right, next to each access item, reviewers can select the checkmark to approve access, select the 'X' to revoke access, or they can toggle the 'More Options' menu to reassign the certification to another reviewer and provide a reason for reassignment in the form of a comment. + + Once a reviewer has made decisions on all the certification's involved access items, he or she must select 'Sign Off' to complete the review process. + Doing so converts the certification into read-only status, preventing any further changes to the review decisions and deleting the work item (task) from the reviewer's list of work items. + + Once all the reviewers have signed off, the certification campaign either completes or, if any reviewers decided to revoke access for any of the involved identities, it moves into a remediation phase. In the remediation phase, identities' entitlements are altered to remove any entitlements marked for revocation. + In this situation, the certification campaign completes once all the remediation requests are completed. - name: Configuration Hub description: | Upload configurations and manage object mappings between tenants. @@ -818,6 +817,11 @@ tags: This second option is a good way to prevent SOD violations from triggering at all. Refer to [Handling Policy Violations](https://documentation.sailpoint.com/saas/help/sod/policy-violations.html) for more information about SOD policy violations. + - name: Source Usages + description: | + Use this API to implement source usage insight functionality. + With this functionality in place, administrators can gather information and insights about how their tenants' sources are being used. + This allows organizations to get the information they need to start optimizing and securing source usage. - name: Sources description: | Use this API to implement and customize source functionality. @@ -877,11 +881,6 @@ tags: Well organized, mapped out connections between sources and Identity Security Cloud are essential to achieving comprehensive identity access governance across all the source systems organizations need. Refer to [Managing Sources](https://documentation.sailpoint.com/saas/help/sources/managing_sources.html) for more information about all the different things admins can do with sources once they are connected. - - name: Source Usages - description: | - Use this API to implement source usage insight functionality. - With this functionality in place, administrators can gather information and insights about how their tenants' sources are being used. - This allows organizations to get the information they need to start optimizing and securing source usage. - name: Tagged Objects description: | Use this API to implement object tagging functionality. From 13d220010f062408f9b8083e77995521c7d128ff Mon Sep 17 00:00:00 2001 From: GitHub Action Bot Date: Fri, 14 Jun 2024 15:24:57 +0000 Subject: [PATCH 28/74] Automated commit by github action: 9518540915 --- static/api-specs/idn/sailpoint-api.v3.yaml | 6 +- static/api-specs/idn/v3/paths/connector.yaml | 142 ++++++++++++++++++ .../connectors-create-custom-connector.yaml | 37 ----- .../idn/v3/paths/connectors-list.yaml | 73 --------- static/api-specs/idn/v3/paths/connectors.yaml | 128 ++++++---------- .../idn/v3/schemas/V3ConnectorDto.yaml | 1 + 6 files changed, 195 insertions(+), 192 deletions(-) create mode 100644 static/api-specs/idn/v3/paths/connector.yaml delete mode 100644 static/api-specs/idn/v3/paths/connectors-create-custom-connector.yaml delete mode 100644 static/api-specs/idn/v3/paths/connectors-list.yaml diff --git a/static/api-specs/idn/sailpoint-api.v3.yaml b/static/api-specs/idn/sailpoint-api.v3.yaml index c3ff8f71f..9c67d9e57 100644 --- a/static/api-specs/idn/sailpoint-api.v3.yaml +++ b/static/api-specs/idn/sailpoint-api.v3.yaml @@ -1095,9 +1095,9 @@ paths: /configuration-hub/backups/uploads/{id}: $ref: './v3/paths/configuration-hub/backup-uploads-id.yaml' /connectors/{scriptName}: + $ref: './v3/paths/connector.yaml' + /connectors: $ref: './v3/paths/connectors.yaml' - /connectors/{scriptName}/list: - $ref: './v3/paths/connectors-list.yaml' /connectors/{scriptName}/source-config: $ref: './v3/paths/connectors-source-config.yaml' /connectors/{scriptName}/translations/{locale}: @@ -1106,8 +1106,6 @@ paths: $ref: './v3/paths/connectors-source-template.yaml' /connectors/{scriptName}/correlation-config: $ref: './v3/paths/connectors-correlation-config.yaml' - /connectors: - $ref: './v3/paths/connectors-create-custom-connector.yaml' /identities/{identity-id}/set-lifecycle-state: $ref: "./v3/paths/identity-set-lifecycle-state.yaml" /identity-profiles/{identity-profile-id}/lifecycle-states: diff --git a/static/api-specs/idn/v3/paths/connector.yaml b/static/api-specs/idn/v3/paths/connector.yaml new file mode 100644 index 000000000..f9206871c --- /dev/null +++ b/static/api-specs/idn/v3/paths/connector.yaml @@ -0,0 +1,142 @@ +get: + tags: + - Connectors + operationId: getConnector + summary: Gets connector by script name + description: >- + Fetches a connector that using its script name. + + A token with ORG_ADMIN authority is required to call this API. + parameters: + - name: scriptName + in: path + description: The scriptName value of the connector. Scriptname is the unique id generated at connector creation. + required: true + style: simple + explode: false + schema: + type: string + example: aScriptName + - in: query + name: locale + schema: + type: string + enum: [ de, no, fi, sv, ru, pt, ko, zh-TW, en, it, fr, zh-CN, hu, es, cs, ja, pl, da, nl ] + example: de + description: >- + The locale to apply to the config. If no viable locale is given, it will default to "en" + responses: + '200': + description: A Connector Dto object + content: + application/json: + schema: + $ref: '../schemas/ConnectorDetail.yaml' + '400': + $ref: '../../v3/responses/400.yaml' + '401': + $ref: '../../v3/responses/401.yaml' + '403': + $ref: '../../v3/responses/403.yaml' + '404': + $ref: '../../v3/responses/404.yaml' + '429': + $ref: '../../v3/responses/429.yaml' + '500': + $ref: '../../v3/responses/500.yaml' + security: + - UserContextAuth: [ idn:connector-config:read ] +delete: + tags: + - Connectors + operationId: deleteCustomConnector + summary: Deletes connector by script name + description: >- + Delete a custom connector that using its script name. + + A token with ORG_ADMIN authority is required to call this API. + parameters: + - name: scriptName + in: path + description: The scriptName value of the connector. Scriptname is the unique id generated at connector creation. + required: true + style: simple + explode: false + schema: + type: string + example: aScriptName + responses: + '204': + $ref: '../../v3/responses/204.yaml' + description: The custom connector was successfully deleted. + '400': + $ref: '../../v3/responses/400.yaml' + '401': + $ref: '../../v3/responses/401.yaml' + '403': + $ref: '../../v3/responses/403.yaml' + '404': + $ref: '../../v3/responses/404.yaml' + '429': + $ref: '../../v3/responses/429.yaml' + '500': + $ref: '../../v3/responses/500.yaml' + security: + - UserContextAuth: [ idn:connector-config:delete ] +patch: + tags: + - Connectors + operationId: updateConnector + summary: Update connector by script name + description: >- + Patch a custom connector that using its script name. + + A token with ORG_ADMIN authority is required to call this API. + The following fields are patchable: + * connectorMetadata + * applicationXml + * correlationConfigXml + * sourceConfigXml + parameters: + - name: scriptName + in: path + description: The scriptName value of the connector. Scriptname is the unique id generated at connector creation. + required: true + style: simple + explode: false + schema: + type: string + example: aScriptName + requestBody: + required: true + description: >- + A list of connector detail update operations according to + the [JSON Patch](https://tools.ietf.org/html/rfc6902) standard. + content: + application/json-patch+json: + schema: + type: array + items: + $ref: "../schemas/JsonPatchOperation.yaml" + responses: + '200': + description: A updated Connector Dto object + content: + application/json: + schema: + $ref: '../schemas/ConnectorDetail.yaml' + '400': + $ref: '../../v3/responses/400.yaml' + '401': + $ref: '../../v3/responses/401.yaml' + '403': + $ref: '../../v3/responses/403.yaml' + '404': + $ref: '../../v3/responses/404.yaml' + '429': + $ref: '../../v3/responses/429.yaml' + '500': + $ref: '../../v3/responses/500.yaml' + security: + - UserContextAuth: [ idn:connector-config:update ] + diff --git a/static/api-specs/idn/v3/paths/connectors-create-custom-connector.yaml b/static/api-specs/idn/v3/paths/connectors-create-custom-connector.yaml deleted file mode 100644 index f9e143b58..000000000 --- a/static/api-specs/idn/v3/paths/connectors-create-custom-connector.yaml +++ /dev/null @@ -1,37 +0,0 @@ -post: - tags: - - Connectors - operationId: createCustomConnector - summary: Create custom connector - description: >- - Create custom connector. - - A token with ORG_ADMIN authority is required to call this API. - requestBody: - required: true - content: - application/json: - schema: - $ref: '../schemas/V3CreateConnectorDto.yaml' - responses: - '200': - description: A Connector Dto object - content: - application/json: - schema: - $ref: '../schemas/V3ConnectorDto.yaml' - '400': - $ref: '../../v3/responses/400.yaml' - '401': - $ref: '../../v3/responses/401.yaml' - '403': - $ref: '../../v3/responses/403.yaml' - '404': - $ref: '../../v3/responses/404.yaml' - '429': - $ref: '../../v3/responses/429.yaml' - '500': - $ref: '../../v3/responses/500.yaml' - security: - - UserContextAuth: [ idn:connector-config:create ] - diff --git a/static/api-specs/idn/v3/paths/connectors-list.yaml b/static/api-specs/idn/v3/paths/connectors-list.yaml deleted file mode 100644 index 5da16b176..000000000 --- a/static/api-specs/idn/v3/paths/connectors-list.yaml +++ /dev/null @@ -1,73 +0,0 @@ -get: - tags: - - Connectors - operationId: getConnectorList - summary: Gets connector list - description: >- - Fetches list of connectors that have 'RELEASED' status using filtering and pagination. - - A token with ORG_ADMIN authority is required to call this API. - parameters: - - in: query - name: filters - schema: - type: string - description: >- - Filter results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#filtering-results) - - - Filtering is supported for the following fields and operators: - - - **name**: *sw, co* - - - **type**: *sw, co, eq* - - - **directConnect**: *eq* - - - **category**: *eq* - - - **features**: *ca* - - - **labels**: *ca* - - example: directConnect eq "true" - - $ref: '../../v3/parameters/limit.yaml' - - $ref: '../../v3/parameters/offset.yaml' - - $ref: '../../v3/parameters/count.yaml' - - in: query - name: locale - schema: - type: string - enum: [de, no, fi, sv, ru, pt, ko, zh-TW, en, it, fr, zh-CN, hu, es, cs, ja, pl, da, nl] - example: de - description: >- - The locale to apply to the config. If no viable locale is given, it will default to "en" - responses: - '200': - description: A Connector Dto object - content: - application/json: - schema: - type: array - items: - $ref: '../schemas/V3ConnectorDto.yaml' - '400': - $ref: '../../v3/responses/400.yaml' - '401': - $ref: '../../v3/responses/401.yaml' - '403': - $ref: '../../v3/responses/403.yaml' - '404': - $ref: '../../v3/responses/404.yaml' - '429': - $ref: '../../v3/responses/429.yaml' - '500': - $ref: '../../v3/responses/500.yaml' - security: - - UserContextAuth: [ idn:connector-source-config:read ] diff --git a/static/api-specs/idn/v3/paths/connectors.yaml b/static/api-specs/idn/v3/paths/connectors.yaml index d9cf61bb0..2c9eba063 100644 --- a/static/api-specs/idn/v3/paths/connectors.yaml +++ b/static/api-specs/idn/v3/paths/connectors.yaml @@ -1,26 +1,50 @@ get: tags: - Connectors - operationId: getConnector + operationId: getConnectorList + summary: Gets connector list description: >- - Fetches a connector that using its script name. - + Fetches list of connectors that have 'RELEASED' status using filtering and pagination. + A token with ORG_ADMIN authority is required to call this API. parameters: - - name: scriptName - in: path - description: The scriptName value of the connector. Scriptname is the unique id generated at connector creation. - required: true - style: simple - explode: false + - in: query + name: filters schema: type: string - example: aScriptName + description: >- + Filter results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#filtering-results) + + + Filtering is supported for the following fields and operators: + + + **name**: *sw, co* + + + **type**: *sw, co, eq* + + + **directConnect**: *eq* + + + **category**: *eq* + + + **features**: *ca* + + + **labels**: *ca* + + example: directConnect eq "true" + - $ref: '../../v3/parameters/limit.yaml' + - $ref: '../../v3/parameters/offset.yaml' + - $ref: '../../v3/parameters/count.yaml' - in: query name: locale schema: type: string - enum: [ de, no, fi, sv, ru, pt, ko, zh-TW, en, it, fr, zh-CN, hu, es, cs, ja, pl, da, nl ] + enum: [de, no, fi, sv, ru, pt, ko, zh-TW, en, it, fr, zh-CN, hu, es, cs, ja, pl, da, nl] example: de description: >- The locale to apply to the config. If no viable locale is given, it will default to "en" @@ -30,7 +54,9 @@ get: content: application/json: schema: - $ref: '../schemas/ConnectorDetail.yaml' + type: array + items: + $ref: '../schemas/V3ConnectorDto.yaml' '400': $ref: '../../v3/responses/400.yaml' '401': @@ -44,84 +70,29 @@ get: '500': $ref: '../../v3/responses/500.yaml' security: - - UserContextAuth: [ idn:connector-config:read ] -delete: + - UserContextAuth: [ idn:connector-source-config:read ] +post: tags: - Connectors - operationId: deleteCustomConnector + operationId: createCustomConnector + summary: Create custom connector description: >- - Delete a custom connector that using its script name. - + Create custom connector. + A token with ORG_ADMIN authority is required to call this API. - parameters: - - name: scriptName - in: path - description: The scriptName value of the connector. Scriptname is the unique id generated at connector creation. - required: true - style: simple - explode: false - schema: - type: string - example: aScriptName - responses: - '204': - $ref: '../../v3/responses/204.yaml' - description: The custom connector was successfully deleted. - '400': - $ref: '../../v3/responses/400.yaml' - '401': - $ref: '../../v3/responses/401.yaml' - '403': - $ref: '../../v3/responses/403.yaml' - '404': - $ref: '../../v3/responses/404.yaml' - '429': - $ref: '../../v3/responses/429.yaml' - '500': - $ref: '../../v3/responses/500.yaml' - security: - - UserContextAuth: [ idn:connector-config:delete ] -patch: - tags: - - Connectors - operationId: updateConnector - description: >- - Patch a custom connector that using its script name. - - A token with ORG_ADMIN authority is required to call this API. - The following fields are patchable: - * connectorMetadata - * applicationXml - * correlationConfigXml - * sourceConfigXml - parameters: - - name: scriptName - in: path - description: The scriptName value of the connector. Scriptname is the unique id generated at connector creation. - required: true - style: simple - explode: false - schema: - type: string - example: aScriptName requestBody: required: true - description: >- - A list of connector detail update operations according to - the [JSON Patch](https://tools.ietf.org/html/rfc6902) standard. content: - application/json-patch+json: + application/json: schema: - type: array - items: - $ref: "../schemas/JsonPatchOperation.yaml" + $ref: '../schemas/V3CreateConnectorDto.yaml' responses: '200': - description: A updated Connector Dto object + description: A Connector Dto object content: application/json: schema: - $ref: '../schemas/ConnectorDetail.yaml' + $ref: '../schemas/V3ConnectorDto.yaml' '400': $ref: '../../v3/responses/400.yaml' '401': @@ -135,5 +106,6 @@ patch: '500': $ref: '../../v3/responses/500.yaml' security: - - UserContextAuth: [ idn:connector-config:update ] + - UserContextAuth: [ idn:connector-config:create ] + diff --git a/static/api-specs/idn/v3/schemas/V3ConnectorDto.yaml b/static/api-specs/idn/v3/schemas/V3ConnectorDto.yaml index 8e7d11624..25f225476 100644 --- a/static/api-specs/idn/v3/schemas/V3ConnectorDto.yaml +++ b/static/api-specs/idn/v3/schemas/V3ConnectorDto.yaml @@ -15,6 +15,7 @@ properties: example: "servicenow" className: type: string + nullable: true description: The connector class name. example: "sailpoint.connector.OpenConnectorAdapter" features: From 3d54914112832ad3acaf47ec53a4edffbf38b7b5 Mon Sep 17 00:00:00 2001 From: GitHub Action Bot Date: Fri, 14 Jun 2024 19:53:24 +0000 Subject: [PATCH 29/74] Automated commit by github action: 9521607745 --- .../idn/beta/paths/access-profiles.yaml | 25 ++++++++++--------- .../access-request-approval-summary.yaml | 18 +++++++------ .../approve-access-request-approval.yaml | 10 +++++--- .../forward-access-request-approval.yaml | 6 ++--- .../identity-attributes-bulk-delete.yaml | 8 +++--- .../idn/beta/paths/identity-attributes.yaml | 14 +++++------ .../paths/reject-access-request-approval.yaml | 8 +++--- .../idn/v3/paths/access-profiles.yaml | 22 ++++++++-------- .../access-request-approval-summary.yaml | 11 ++++---- .../approve-access-request-approval.yaml | 8 +++--- .../forward-access-request-approval.yaml | 6 ++--- .../paths/reject-access-request-approval.yaml | 8 +++--- .../IdentityAttribute.yaml | 9 +++---- .../IdentityAttributeNames.yaml | 4 +-- 14 files changed, 82 insertions(+), 75 deletions(-) diff --git a/static/api-specs/idn/beta/paths/access-profiles.yaml b/static/api-specs/idn/beta/paths/access-profiles.yaml index 320a543c1..bb2d4f9fb 100644 --- a/static/api-specs/idn/beta/paths/access-profiles.yaml +++ b/static/api-specs/idn/beta/paths/access-profiles.yaml @@ -4,9 +4,8 @@ get: - Access Profiles summary: List Access Profiles description: >- - This API returns a list of Access Profiles. + Use this API to get a list of access profiles. - A token with API, ORG_ADMIN, ROLE_ADMIN, ROLE_SUBADMIN, SOURCE_ADMIN, or SOURCE_SUBADMIN authority is required to call this API. parameters: @@ -16,11 +15,11 @@ get: type: string description: >- If provided, filters the returned list according to what is visible to the indicated ROLE_SUBADMIN or - SOURCE_SUBADMIN Identity. The value of the parameter is either an Identity ID, or the special value **me**, + SOURCE_SUBADMIN identity. The value of the parameter is either an identity ID, or the special value **me**, which is shorthand for the calling Identity's ID. - A 400 Bad Request error is returned if the **for-subadmin** parameter is specified for an Identity that is not + A 400 Bad Request error is returned if the **for-subadmin** parameter is specified for an identity that is not a subadmin. example: 8c190e6787aa4ed9a90bd9d5344523fb required: false @@ -57,6 +56,9 @@ get: **source.id**: *eq, in* + + + Filtering is not supported for access profiles and entitlements that have the '+' symbol in their names. example: name eq "SailPoint Support" required: false - in: query @@ -77,10 +79,9 @@ get: type: string format: comma-separated description: >- - If present and not empty, additionally filters Access Profiles to those which are assigned to the Segment(s) + If present and not empty, additionally filters access profiles to those which are assigned to the segment(s) with the specified IDs. - If segmentation is currently unavailable, specifying this parameter results in an error. example: 0b5c9f25-83c6-4762-9073-e38f7bb2ae26,2e8d8180-24bc-4d21-91c6-7affdb473b0d required: false @@ -90,13 +91,13 @@ get: type: boolean default: true description: >- - Whether or not the response list should contain unsegmented Access Profiles. + Indicates whether the response list should contain unsegmented access profiles. If *for-segment-ids* is absent or empty, specifying *include-unsegmented* as false results in an error. example: false required: false responses: '200': - description: List of Access Profiles + description: List of access profiles. content: application/json: schema: @@ -119,13 +120,13 @@ post: operationId: createAccessProfile tags: - Access Profiles - summary: Create an Access Profile + summary: Create Access Profile description: >- - This API creates an Access Profile. + Use this API to create an access profile. A token with API, ORG_ADMIN, ROLE_ADMIN, ROLE_SUBADMIN, SOURCE_ADMIN, or SOURCE_SUBADMIN authority is required to call this API. In addition, a token with only ROLE_SUBADMIN or SOURCE_SUBADMIN authority must be associated with the - Access Profile's Source. + access profile's Source. The maximum supported length for the description field is 2000 characters. Longer descriptions will be preserved for existing access profiles, however, any new access profiles as well as any updates to existing descriptions will be limited to 2000 characters. @@ -137,7 +138,7 @@ post: $ref: '../../v3/schemas/access/AccessProfile.yaml' responses: '201': - description: Access Profile created + description: Access profile created. content: application/json: schema: diff --git a/static/api-specs/idn/beta/paths/access-request-approval-summary.yaml b/static/api-specs/idn/beta/paths/access-request-approval-summary.yaml index b57a84473..4c4a2b461 100644 --- a/static/api-specs/idn/beta/paths/access-request-approval-summary.yaml +++ b/static/api-specs/idn/beta/paths/access-request-approval-summary.yaml @@ -1,31 +1,35 @@ get: operationId: getAccessRequestApprovalSummary - summary: Get the number of pending, approved and rejected access requests approvals + security: + - UserContextAuth: [ idn:access-request-approvals-summary:read ] + summary: Get Access Requests Approvals Number tags: - Access Request Approvals description: >- - This endpoint returns the number of pending, approved and rejected access requests approvals. - See "owner-id" query parameter below for authorization info. + Use this API to return the number of pending, approved and rejected access requests approvals. + See the "owner-id" query parameter for authorization information. parameters: - in: query name: owner-id schema: type: string description: >- - The id of the owner or approver identity of the approvals. If present, the value returns approval summary for the specified identity. + The ID of the owner or approver identity of the approvals. If present, the value returns approval summary for the specified identity. * ORG_ADMIN users can call this with any identity ID value. * ORG_ADMIN user can also fetch all the approvals in the org, when owner-id is not used. * Non ORG_ADMIN users can only specify *me* or pass their own identity ID value. - + example: 2c91808568c529c60168cca6f90c1313 + required: false - in: query name: from-date schema: type: string description: >- - From date is the date and time from which the results will be shown. It should be in a valid ISO-8601 format + This is the date and time the results will be shown from. It must be in a valid ISO-8601 format. - example: from-date=2020-03-19T19:59:11Z + example: from-date=2020-03-19T19:59:11Z + required: false responses: '200': description: Number of pending, approved, rejected access request approvals. diff --git a/static/api-specs/idn/beta/paths/approve-access-request-approval.yaml b/static/api-specs/idn/beta/paths/approve-access-request-approval.yaml index 9fce2b032..589a9041a 100644 --- a/static/api-specs/idn/beta/paths/approve-access-request-approval.yaml +++ b/static/api-specs/idn/beta/paths/approve-access-request-approval.yaml @@ -1,21 +1,21 @@ post: operationId: approveAccessRequest - summary: Approves an access request approval. + summary: Approve Access Request Approval tags: - Access Request Approvals description: >- - This endpoint approves an access request approval. Only the owner of the approval and ORG_ADMIN users are allowed to perform this action. + Use this endpoint to approve an access request approval. Only the owner of the approval and ORG_ADMIN users are allowed to perform this action. parameters: - in: path name: approvalId schema: type: string required: true - description: The id of the approval. + description: Approval ID. example: 2c91808b7294bea301729568c68c002e requestBody: description: Reviewer's comment. - required: false + required: true content: application/json: schema: @@ -23,6 +23,8 @@ post: responses: '202': $ref: '../../v3/responses/202.yaml' + '400': + $ref: '../../v3/responses/400.yaml' '401': $ref: '../../v3/responses/401.yaml' '403': diff --git a/static/api-specs/idn/beta/paths/forward-access-request-approval.yaml b/static/api-specs/idn/beta/paths/forward-access-request-approval.yaml index c1aea6422..1489e41b5 100644 --- a/static/api-specs/idn/beta/paths/forward-access-request-approval.yaml +++ b/static/api-specs/idn/beta/paths/forward-access-request-approval.yaml @@ -1,17 +1,17 @@ post: operationId: forwardAccessRequest - summary: Forwards an access request approval to a new owner. + summary: Forward Access Request Approval tags: - Access Request Approvals description: >- - This endpoint forwards an access request approval. Only the owner of the approval and ORG_ADMIN users are allowed to perform this action. + Use this API to forward an access request approval to a new owner. Only the owner of the approval and ORG_ADMIN users are allowed to perform this action. parameters: - in: path name: approvalId schema: type: string required: true - description: The id of the approval. + description: Approval ID. example: 2c91808b7294bea301729568c68c002e requestBody: description: Information about the forwarded approval. diff --git a/static/api-specs/idn/beta/paths/identity-attributes-bulk-delete.yaml b/static/api-specs/idn/beta/paths/identity-attributes-bulk-delete.yaml index 49a1b495d..f262b9b27 100644 --- a/static/api-specs/idn/beta/paths/identity-attributes-bulk-delete.yaml +++ b/static/api-specs/idn/beta/paths/identity-attributes-bulk-delete.yaml @@ -1,12 +1,12 @@ -post: +delete: operationId: deleteIdentityAttributesInBulk tags: - Identity Attributes summary: Bulk delete Identity Attributes description: >- - This deletes identity attributes for a given set of names. - Attributes that are currently mapped in an Identity Profile cannot be deleted. - The `system` and `standard` properties must be set to false before you can delete an identity attribute. + Use this API to bulk delete identity attributes for a given set of names. + Attributes that are currently mapped in an identity profile cannot be deleted. + The `system` and `standard` properties must be set to 'false' before you can delete an identity attribute. security: - UserContextAuth: [ idn:identity-profile-attribute-bulk:delete ] requestBody: diff --git a/static/api-specs/idn/beta/paths/identity-attributes.yaml b/static/api-specs/idn/beta/paths/identity-attributes.yaml index 4eda9a9d7..e953ce731 100644 --- a/static/api-specs/idn/beta/paths/identity-attributes.yaml +++ b/static/api-specs/idn/beta/paths/identity-attributes.yaml @@ -4,7 +4,7 @@ get: - Identity Attributes summary: List Identity Attributes description: >- - This gets a collection of identity attributes. + Use this API to get a collection of identity attributes. security: - UserContextAuth: [idn:identity-profile-attribute-list:read] parameters: @@ -14,7 +14,7 @@ get: type: boolean default: false description: >- - Include "system" attributes in the response. + Include 'system' attributes in the response. required: false example: false - in: query @@ -23,7 +23,7 @@ get: type: boolean default: false description: >- - Include "silent" attributes in the response. + Include 'silent' attributes in the response. required: false example: false - in: query @@ -32,13 +32,13 @@ get: type: boolean default: false description: >- - Include only "searchable" attributes in the response. + Include only 'searchable' attributes in the response. required: false example: false - $ref: '../../v3/parameters/count.yaml' responses: "200": - description: List of identity attributes + description: List of identity attributes. content: application/json: schema: @@ -61,7 +61,7 @@ post: - Identity Attributes summary: Create Identity Attribute description: >- - This creates a new identity attribute. + Use this API to create a new identity attribute. security: - UserContextAuth: [ idn:identity-profile-attribute:create ] requestBody: @@ -72,7 +72,7 @@ post: $ref: "../../v3/schemas/identity-attributes/IdentityAttribute.yaml" responses: "201": - description: The identity attribute was created successfully + description: The identity attribute was created successfully. content: application/json: schema: diff --git a/static/api-specs/idn/beta/paths/reject-access-request-approval.yaml b/static/api-specs/idn/beta/paths/reject-access-request-approval.yaml index 781ccde4c..82fa0dca4 100644 --- a/static/api-specs/idn/beta/paths/reject-access-request-approval.yaml +++ b/static/api-specs/idn/beta/paths/reject-access-request-approval.yaml @@ -1,21 +1,21 @@ post: operationId: rejectAccessRequest - summary: Rejects an access request approval. + summary: Reject Access Request Approval tags: - Access Request Approvals description: >- - This endpoint rejects an access request approval. Only the owner of the approval and admin users are allowed to perform this action. + Use this API to reject an access request approval. Only the owner of the approval and admin users are allowed to perform this action. parameters: - in: path name: approvalId schema: type: string required: true - description: The id of the approval. + description: Approval ID. example: 2c91808b7294bea301729568c68c002e requestBody: description: Reviewer's comment. - required: false + required: true content: application/json: schema: diff --git a/static/api-specs/idn/v3/paths/access-profiles.yaml b/static/api-specs/idn/v3/paths/access-profiles.yaml index 3de3fd691..634798336 100644 --- a/static/api-specs/idn/v3/paths/access-profiles.yaml +++ b/static/api-specs/idn/v3/paths/access-profiles.yaml @@ -4,8 +4,7 @@ get: - Access Profiles summary: List Access Profiles description: >- - This API returns a list of Access Profiles. - + Use this API to get a list of access profiles. A token with API, ORG_ADMIN, ROLE_ADMIN, ROLE_SUBADMIN, SOURCE_ADMIN, or SOURCE_SUBADMIN authority is required to call this API. @@ -60,6 +59,9 @@ get: Composite operators supported: *and, or* + + + Filtering is not supported for access profiles and entitlements that have the '+' symbol in their names. example: name eq "SailPoint Support" required: false - in: query @@ -80,7 +82,7 @@ get: type: string format: comma-separated description: >- - If present and not empty, additionally filters Access Profiles to those which are assigned to the Segment(s) + If present and not empty, additionally filters access profiles to those which are assigned to the Segment(s) with the specified IDs. @@ -93,13 +95,13 @@ get: type: boolean default: true description: >- - Whether or not the response list should contain unsegmented Access Profiles. + Indicates whether the response list should contain unsegmented access profiles. If *for-segment-ids* is absent or empty, specifying *include-unsegmented* as false results in an error. example: false required: false responses: '200': - description: List of Access Profiles + description: List of access profiles. content: application/json: schema: @@ -122,16 +124,16 @@ post: operationId: createAccessProfile tags: - Access Profiles - summary: Create an Access Profile + summary: Create Access Profile description: >- - This API creates an Access Profile. + Use this API to create an access profile. A token with API, ORG_ADMIN, ROLE_ADMIN, ROLE_SUBADMIN, SOURCE_ADMIN, or SOURCE_SUBADMIN authority is required to call this API. In addition, a token with only ROLE_SUBADMIN or SOURCE_SUBADMIN authority must be associated with the - Access Profile's Source. + access profile's Source. The maximum supported length for the description field is 2000 characters. - Longer descriptions will be preserved for existing access profiles, however, any new access profiles as well as any updates to existing descriptions will be limited to 2000 characters. + Longer descriptions will be preserved for existing access profiles. However, any new access profiles as well as any updates to existing descriptions are limited to 2000 characters. requestBody: required: true content: @@ -140,7 +142,7 @@ post: $ref: '../../v3/schemas/access/AccessProfile.yaml' responses: '201': - description: Access Profile created + description: Access profile created. content: application/json: schema: diff --git a/static/api-specs/idn/v3/paths/access-request-approval-summary.yaml b/static/api-specs/idn/v3/paths/access-request-approval-summary.yaml index d144d71b5..ea3b21c82 100644 --- a/static/api-specs/idn/v3/paths/access-request-approval-summary.yaml +++ b/static/api-specs/idn/v3/paths/access-request-approval-summary.yaml @@ -2,12 +2,11 @@ get: operationId: getAccessRequestApprovalSummary security: - UserContextAuth: [ idn:access-request-approvals-summary:read ] - summary: Get the number of access-requests-approvals + summary: Get Access Requests Approvals Number tags: - Access Request Approvals description: >- - This endpoint returns the number of pending, approved and rejected access - requests approvals. See "owner-id" query parameter below for authorization + Use this API to return the number of pending, approved and rejected access requests approvals. See the "owner-id" query parameter for authorization information. info. parameters: - in: query @@ -15,7 +14,7 @@ get: schema: type: string description: >- - The id of the owner or approver identity of the approvals. If present, + The ID of the owner or approver identity of the approvals. If present, the value returns approval summary for the specified identity. * ORG_ADMIN users can call this with any identity ID value. * ORG_ADMIN user can also fetch all the approvals in the org, when @@ -29,8 +28,8 @@ get: schema: type: string description: >- - From date is the date and time from which the results will be shown. It - should be in a valid ISO-8601 format + This is the date and time the results will be shown from. It + must be in a valid ISO-8601 format. example: from-date=2020-03-19T19:59:11Z required: false responses: diff --git a/static/api-specs/idn/v3/paths/approve-access-request-approval.yaml b/static/api-specs/idn/v3/paths/approve-access-request-approval.yaml index 5e583e931..7931ce578 100644 --- a/static/api-specs/idn/v3/paths/approve-access-request-approval.yaml +++ b/static/api-specs/idn/v3/paths/approve-access-request-approval.yaml @@ -1,21 +1,21 @@ post: operationId: approveAccessRequest - summary: Approves an access request approval. + summary: Approve Access Request Approval tags: - Access Request Approvals description: >- - This endpoint approves an access request approval. Only the owner of the approval and ORG_ADMIN users are allowed to perform this action. + Use this endpoint to approve an access request approval. Only the owner of the approval and ORG_ADMIN users are allowed to perform this action. parameters: - in: path name: approvalId schema: type: string required: true - description: The id of the approval. + description: Approval ID. example: 2c91808b7294bea301729568c68c002e requestBody: description: Reviewer's comment. - required: false + required: true content: application/json: schema: diff --git a/static/api-specs/idn/v3/paths/forward-access-request-approval.yaml b/static/api-specs/idn/v3/paths/forward-access-request-approval.yaml index 2b734367a..1d2dd630b 100644 --- a/static/api-specs/idn/v3/paths/forward-access-request-approval.yaml +++ b/static/api-specs/idn/v3/paths/forward-access-request-approval.yaml @@ -1,10 +1,10 @@ post: operationId: forwardAccessRequest - summary: Forwards an access request approval. + summary: Forward Access Request Approval tags: - Access Request Approvals description: >- - This endpoint forwards an access request approval to a new owner. + Use this API to forward an access request approval to a new owner. Only the owner of the approval and ORG_ADMIN users are allowed to perform this action. Only the owner of the approval and ORG_ADMIN users are allowed to perform this action. parameters: - in: path @@ -12,7 +12,7 @@ post: schema: type: string required: true - description: The id of the approval. + description: Approval ID. example: 2c91808b7294bea301729568c68c002e requestBody: description: Information about the forwarded approval. diff --git a/static/api-specs/idn/v3/paths/reject-access-request-approval.yaml b/static/api-specs/idn/v3/paths/reject-access-request-approval.yaml index 58381df07..aa6f585b1 100644 --- a/static/api-specs/idn/v3/paths/reject-access-request-approval.yaml +++ b/static/api-specs/idn/v3/paths/reject-access-request-approval.yaml @@ -1,21 +1,21 @@ post: operationId: rejectAccessRequest - summary: Rejects an access request approval. + summary: Reject Access Request Approval tags: - Access Request Approvals description: >- - This endpoint rejects an access request approval. Only the owner of the approval and admin users are allowed to perform this action. + Use this API to reject an access request approval. Only the owner of the approval and admin users are allowed to perform this action. parameters: - in: path name: approvalId schema: type: string required: true - description: The id of the approval. + description: Approval ID. example: 2c91808b7294bea301729568c68c002e requestBody: description: Reviewer's comment. - required: false + required: true content: application/json: schema: diff --git a/static/api-specs/idn/v3/schemas/identity-attributes/IdentityAttribute.yaml b/static/api-specs/idn/v3/schemas/identity-attributes/IdentityAttribute.yaml index a00f8c244..5456c2631 100644 --- a/static/api-specs/idn/v3/schemas/identity-attributes/IdentityAttribute.yaml +++ b/static/api-specs/idn/v3/schemas/identity-attributes/IdentityAttribute.yaml @@ -1,11 +1,9 @@ type: object -required: - - name properties: - name: + name: type: string - description: Identity attribute's technical name. - example: 'uid' + description: Identity attribute's technical name. + example: Identity Attribute Name displayName: type: string description: Identity attribute's business-friendly name. @@ -17,6 +15,7 @@ properties: example: true type: type: string + nullable: true description: Identity attribute's type. example: 'string' multi: diff --git a/static/api-specs/idn/v3/schemas/identity-attributes/IdentityAttributeNames.yaml b/static/api-specs/idn/v3/schemas/identity-attributes/IdentityAttributeNames.yaml index 579d579c4..1702e140e 100644 --- a/static/api-specs/idn/v3/schemas/identity-attributes/IdentityAttributeNames.yaml +++ b/static/api-specs/idn/v3/schemas/identity-attributes/IdentityAttributeNames.yaml @@ -1,9 +1,9 @@ type: object description: >- - Identity Attribute IDs + Identity attribute IDs. properties: ids: - description: List of identity attributes' technical names + description: List of identity attributes' technical names. type: array items: type: string From 562b5df01102bdb3ae2cee4312eecd97a349357a Mon Sep 17 00:00:00 2001 From: GitHub Action Bot Date: Mon, 17 Jun 2024 13:36:07 +0000 Subject: [PATCH 30/74] Automated commit by github action: 9548706422 --- .../idn/v3/schemas/reports/ReportDetails.yaml | 3 +-- .../accounts-export-report-arguments.yaml | 15 +-------------- .../identities-details-report-arguments.yaml | 15 +-------------- .../arguments/identities-report-arguments.yaml | 14 -------------- ...y-profile-identity-error-report-arguments.yaml | 15 +-------------- .../orphan-uncorrelated-report-arguments.yaml | 14 -------------- .../arguments/search-export-report-arguments.yaml | 15 +-------------- .../identities-details-report-details.yaml | 1 - static/api-specs/idn/v3/schemas/search/Query.yaml | 6 ++---- 9 files changed, 7 insertions(+), 91 deletions(-) diff --git a/static/api-specs/idn/v3/schemas/reports/ReportDetails.yaml b/static/api-specs/idn/v3/schemas/reports/ReportDetails.yaml index 03fb70273..c12737a82 100644 --- a/static/api-specs/idn/v3/schemas/reports/ReportDetails.yaml +++ b/static/api-specs/idn/v3/schemas/reports/ReportDetails.yaml @@ -25,8 +25,7 @@ properties: - $ref: '../reports/arguments/search-export-report-arguments.yaml' example: { "application": "2c9180897e7742b2017e781782f705b9", - "sourceName": "DataScienceWorkday", - "defaultS3Bucket": true + "sourceName": "DataScienceWorkday" } description: >- The string-object map(dictionary) with the arguments needed for report processing. \ No newline at end of file diff --git a/static/api-specs/idn/v3/schemas/reports/arguments/accounts-export-report-arguments.yaml b/static/api-specs/idn/v3/schemas/reports/arguments/accounts-export-report-arguments.yaml index 8720968b1..fb1b65da6 100644 --- a/static/api-specs/idn/v3/schemas/reports/arguments/accounts-export-report-arguments.yaml +++ b/static/api-specs/idn/v3/schemas/reports/arguments/accounts-export-report-arguments.yaml @@ -5,7 +5,6 @@ description: >- required: - application - sourceName - - defaultS3Bucket properties: application: type: string @@ -16,16 +15,4 @@ properties: type: string description: >- Name of the authoritative source for accounts export - example: DataScienceSourceName - defaultS3Bucket: - type: boolean - description: >- - Use it to set default s3 bucket where generated report will be saved. - In case this argument is false and 's3Bucket' argument is null or absent there will be default - s3Bucket assigned to the report. - example: true - s3Bucket: - type: string - description: >- - If you want to be specific you could use this argument with defaultS3Bucket = false. - example: the-dev-bucket \ No newline at end of file + example: DataScienceSourceName \ No newline at end of file diff --git a/static/api-specs/idn/v3/schemas/reports/arguments/identities-details-report-arguments.yaml b/static/api-specs/idn/v3/schemas/reports/arguments/identities-details-report-arguments.yaml index dbf5e90b7..7e4882782 100644 --- a/static/api-specs/idn/v3/schemas/reports/arguments/identities-details-report-arguments.yaml +++ b/static/api-specs/idn/v3/schemas/reports/arguments/identities-details-report-arguments.yaml @@ -3,7 +3,6 @@ type: object description: >- Arguments for Identities details report (IDENTITIES_DETAILS) required: - - defaultS3Bucket - correlatedOnly properties: correlatedOnly: @@ -11,16 +10,4 @@ properties: description: >- Boolean FLAG to specify if only correlated identities should be used in report processing default: false - example: true - defaultS3Bucket: - type: boolean - description: >- - Use it to set default s3 bucket where generated report will be saved. - In case this argument is false and 's3Bucket' argument is null or absent there will be default - s3Bucket assigned to the report. - example: true - s3Bucket: - type: string - description: >- - If you want to be specific you could use this argument with defaultS3Bucket = false. - example: the-dev-bucket + example: true \ No newline at end of file diff --git a/static/api-specs/idn/v3/schemas/reports/arguments/identities-report-arguments.yaml b/static/api-specs/idn/v3/schemas/reports/arguments/identities-report-arguments.yaml index 9778fb8d2..ccf94c025 100644 --- a/static/api-specs/idn/v3/schemas/reports/arguments/identities-report-arguments.yaml +++ b/static/api-specs/idn/v3/schemas/reports/arguments/identities-report-arguments.yaml @@ -2,8 +2,6 @@ title: IDENTITIES type: object description: >- Arguments for Identities report (IDENTITIES) -required: - - defaultS3Bucket properties: correlatedOnly: type: boolean @@ -11,15 +9,3 @@ properties: Boolean FLAG to specify if only correlated identities should be used in report processing default: false example: true - defaultS3Bucket: - type: boolean - description: >- - Use it to set default s3 bucket where generated report will be saved. - In case this argument is false and 's3Bucket' argument is null or absent there will be default - s3Bucket assigned to the report. - example: true - s3Bucket: - type: string - description: >- - If you want to be specific you could use this argument with defaultS3Bucket = false. - example: the-dev-bucket diff --git a/static/api-specs/idn/v3/schemas/reports/arguments/identity-profile-identity-error-report-arguments.yaml b/static/api-specs/idn/v3/schemas/reports/arguments/identity-profile-identity-error-report-arguments.yaml index 622acec92..0bd951c3c 100644 --- a/static/api-specs/idn/v3/schemas/reports/arguments/identity-profile-identity-error-report-arguments.yaml +++ b/static/api-specs/idn/v3/schemas/reports/arguments/identity-profile-identity-error-report-arguments.yaml @@ -4,22 +4,9 @@ description: >- Arguments for Identity Profile Identity Error report (IDENTITY_PROFILE_IDENTITY_ERROR) required: - authoritativeSource - - defaultS3Bucket properties: authoritativeSource: type: string description: >- Source Id to be checked on errors of identity profiles aggregation - example: 1234sourceId5678902 - defaultS3Bucket: - type: boolean - description: >- - Use it to set default s3 bucket where generated report will be saved. - In case this argument is false and 's3Bucket' argument is null or absent there will be default - s3Bucket assigned to the report. - example: true - s3Bucket: - type: string - description: >- - If you want to be specific you could use this argument with defaultS3Bucket = false. - example: the-dev-bucket \ No newline at end of file + example: 1234sourceId5678902 \ No newline at end of file diff --git a/static/api-specs/idn/v3/schemas/reports/arguments/orphan-uncorrelated-report-arguments.yaml b/static/api-specs/idn/v3/schemas/reports/arguments/orphan-uncorrelated-report-arguments.yaml index 5834620ab..1da17f7fc 100644 --- a/static/api-specs/idn/v3/schemas/reports/arguments/orphan-uncorrelated-report-arguments.yaml +++ b/static/api-specs/idn/v3/schemas/reports/arguments/orphan-uncorrelated-report-arguments.yaml @@ -2,8 +2,6 @@ title: ORPHAN_IDENTITIES & UNCORRELATED_ACCOUNTS type: object description: >- Arguments for Orphan Identities report (ORPHAN_IDENTITIES) and Uncorrelated Accounts report (UNCORRELATED_ACCOUNTS) -required: - - defaultS3Bucket properties: selectedFormats: type: array @@ -17,15 +15,3 @@ properties: In case report won't have this argument there will be ['CSV', 'PDF'] as default. example: - CSV - defaultS3Bucket: - type: boolean - description: >- - Use it to set default s3 bucket where generated report will be saved. - In case this argument is false and 's3Bucket' argument is null or absent there will be default - s3Bucket assigned to the report. - example: true - s3Bucket: - type: string - description: >- - If you want to be specific you could use this argument with defaultS3Bucket = false. - example: the-dev-bucket diff --git a/static/api-specs/idn/v3/schemas/reports/arguments/search-export-report-arguments.yaml b/static/api-specs/idn/v3/schemas/reports/arguments/search-export-report-arguments.yaml index dee344ba2..de43cf002 100644 --- a/static/api-specs/idn/v3/schemas/reports/arguments/search-export-report-arguments.yaml +++ b/static/api-specs/idn/v3/schemas/reports/arguments/search-export-report-arguments.yaml @@ -4,7 +4,6 @@ description: >- Arguments for Search Export report (SEARCH_EXPORT) required: - query - - defaultS3Bucket properties: indices: description: >- @@ -50,16 +49,4 @@ properties: type: string example: - 'displayName' - - '+id' - defaultS3Bucket: - type: boolean - description: >- - Use it to set default s3 bucket where generated report will be saved. - In case this argument is false and 's3Bucket' argument is null or absent there will be default - s3Bucket assigned to the report. - example: true - s3Bucket: - type: string - description: >- - If you want to be specific you could use this argument with defaultS3Bucket = false. - example: the-dev-bucket \ No newline at end of file + - '+id' \ No newline at end of file diff --git a/static/api-specs/idn/v3/schemas/reports/examples/identities-details-report-details.yaml b/static/api-specs/idn/v3/schemas/reports/examples/identities-details-report-details.yaml index 43eed60f7..5b57e1809 100644 --- a/static/api-specs/idn/v3/schemas/reports/examples/identities-details-report-details.yaml +++ b/static/api-specs/idn/v3/schemas/reports/examples/identities-details-report-details.yaml @@ -2,5 +2,4 @@ summary: Identities Details report value: reportType: IDENTITIES_DETAILS arguments: - defaultS3Bucket: true correlatedOnly: true \ No newline at end of file diff --git a/static/api-specs/idn/v3/schemas/search/Query.yaml b/static/api-specs/idn/v3/schemas/search/Query.yaml index a9b7bbbec..c3feda788 100644 --- a/static/api-specs/idn/v3/schemas/search/Query.yaml +++ b/static/api-specs/idn/v3/schemas/search/Query.yaml @@ -17,11 +17,9 @@ properties: A field's availability depends on the indices being searched. For example, if you are searching "identities", you can apply your search to the "firstName" field, but you couldn't use "firstName" with a search on "access profiles". Refer to the response schema for the respective lists of available fields. - type: array - items: - type: string + type: string example: - - 'name' + - 'firstName,lastName,email' timeZone: description: >- The time zone to be applied to any range query related to dates. From 1e128cebb1936cc7d7ad4e725c39f154c324790a Mon Sep 17 00:00:00 2001 From: GitHub Action Bot Date: Wed, 19 Jun 2024 14:59:50 +0000 Subject: [PATCH 31/74] Automated commit by github action: 9584247731 --- .../idn/beta/schemas/SlimAccount.yaml | 25 +++++++++++++++++++ 1 file changed, 25 insertions(+) diff --git a/static/api-specs/idn/beta/schemas/SlimAccount.yaml b/static/api-specs/idn/beta/schemas/SlimAccount.yaml index abd9e8b48..f6e61becb 100644 --- a/static/api-specs/idn/beta/schemas/SlimAccount.yaml +++ b/static/api-specs/idn/beta/schemas/SlimAccount.yaml @@ -27,6 +27,10 @@ allOf: type: boolean description: Whether the account is locked example: false + type: + type: string + description: Either NON_HUMAN or null, null denotes human account + example: NON_HUMAN manuallyCorrelated: type: boolean description: Whether the account was manually correlated @@ -55,3 +59,24 @@ allOf: firstName: "SailPoint" lastName: "Support" displayName: "SailPoint Support" + origin: + type: string + enum: + - AGGREGATED + - PROVISIONED + description: The origin of the account either aggregated or provisioned + example: AGGREGATED + ownerIdentity: + $ref: './BaseReferenceDto.yaml' + description: The identity who owns this account, typically used for non-human accounts + example: + id: "2c919194670f45d6016917qzz910581" + type: "IDENTITY" + name: "Adam Abbott" + ownerGroup: + $ref: './BaseReferenceDto.yaml' + description: The governance group who owns this account, typically used for non-human accounts + example: + id: "8d3e0094e99445de98eef6c75e25jc04" + type: "GOVERNANCE_GROUP" + name: "GovGroup AX17Z" From 6fa01a151db9b01374d9897c29b3e4263b1d77c1 Mon Sep 17 00:00:00 2001 From: GitHub Action Bot Date: Wed, 19 Jun 2024 18:21:11 +0000 Subject: [PATCH 32/74] Automated commit by github action: 9586587953 --- .../idn/beta/paths/correlation-config.yaml | 85 +++++++++++++++++++ .../idn/beta/schemas/CorrelationConfig.yaml | 54 ++++++++++++ static/api-specs/idn/sailpoint-api.beta.yaml | 2 + 3 files changed, 141 insertions(+) create mode 100644 static/api-specs/idn/beta/paths/correlation-config.yaml create mode 100644 static/api-specs/idn/beta/schemas/CorrelationConfig.yaml diff --git a/static/api-specs/idn/beta/paths/correlation-config.yaml b/static/api-specs/idn/beta/paths/correlation-config.yaml new file mode 100644 index 000000000..a442aaf66 --- /dev/null +++ b/static/api-specs/idn/beta/paths/correlation-config.yaml @@ -0,0 +1,85 @@ +get: + operationId: getCorrelationConfig + tags: + - Sources + summary: Get Source Correlation Configuration + security: + - UserContextAuth: [idn:sources:read] + description: >- + This API returns the existing correlation configuration for a source specified by the + given ID. + + A token with ORG_ADMIN authority is required to call this API. + parameters: + - in: path + name: id + required: true + schema: + type: string + description: The source id + example: 2c9180835d191a86015d28455b4a2329 + responses: + '200': + description: Correlation configuration for a source + content: + application/json: + schema: + $ref: '../schemas/CorrelationConfig.yaml' + '400': + $ref: '../../v3/responses/400.yaml' + '401': + $ref: '../../v3/responses/401.yaml' + '403': + $ref: '../../v3/responses/403.yaml' + '404': + $ref: '../../v3/responses/404.yaml' + '429': + $ref: '../../v3/responses/429.yaml' + '500': + $ref: '../../v3/responses/500.yaml' + +put: + operationId: putCorrelationConfig + tags: + - Sources + summary: Update Source Correlation Configuration + security: + - UserContextAuth: [idn:sources:update] + description: >- + Replaces the correlation configuration for the source specified by the given ID with the + configuration provided in the request body. + + A token with ORG_ADMIN authority is required to call this API. + parameters: + - in: path + name: id + required: true + schema: + type: string + description: The source id + example: 2c9180835d191a86015d28455b4a2329 + requestBody: + required: true + content: + application/json: + schema: + $ref: '../schemas/CorrelationConfig.yaml' + responses: + '200': + description: Updated correlation configuration for a source + content: + application/json: + schema: + $ref: '../schemas/CorrelationConfig.yaml' + '400': + $ref: '../../v3/responses/400.yaml' + '401': + $ref: '../../v3/responses/401.yaml' + '403': + $ref: '../../v3/responses/403.yaml' + '404': + $ref: '../../v3/responses/404.yaml' + '429': + $ref: '../../v3/responses/429.yaml' + '500': + $ref: '../../v3/responses/500.yaml' diff --git a/static/api-specs/idn/beta/schemas/CorrelationConfig.yaml b/static/api-specs/idn/beta/schemas/CorrelationConfig.yaml new file mode 100644 index 000000000..531284bdf --- /dev/null +++ b/static/api-specs/idn/beta/schemas/CorrelationConfig.yaml @@ -0,0 +1,54 @@ +type: object +description: Source configuration information that is used by correlation process. +properties: + id: + type: string + description: The ID of the correlation configuration. + example: 2c9180835d191a86015d28455b4a2329 + name: + type: string + description: The name of the correlation configuration. + example: Source [source] Account Correlation + attributeAssignments: + type: array + description: The list of attribute assignments of the correlation configuration. + items: + type: object + description: The attribute assignment of the correlation configuration. + properties: + property: + type: string + description: The property of the attribute assignment. + example: first_name + value: + type: string + description: The value of the attribute assignment. + example: firstName + operation: + type: string + description: The operation of the attribute assignment. + enum: + - EQ + example: EQ + complex: + type: boolean + description: Whether or not the it's a complex attribute assignment. + default: false + example: false + ignoreCase: + type: boolean + description: Whether or not the attribute assignment should ignore case. + default: false + example: false + matchMode: + type: string + description: The match mode of the attribute assignment. + enum: + - ANYWHERE + - START + - END + example: ANYWHERE + filterString: + type: string + description: The filter string of the attribute assignment. + example: first_name == "John" diff --git a/static/api-specs/idn/sailpoint-api.beta.yaml b/static/api-specs/idn/sailpoint-api.beta.yaml index f39b83a48..a8f37d90e 100644 --- a/static/api-specs/idn/sailpoint-api.beta.yaml +++ b/static/api-specs/idn/sailpoint-api.beta.yaml @@ -1657,6 +1657,8 @@ paths: $ref: './beta/paths/load-accounts.yaml' /sources/{id}/load-uncorrelated-accounts: $ref: './beta/paths/load-uncorrelated-accounts.yaml' + /sources/{id}/correlation-config: + $ref: './beta/paths/correlation-config.yaml' /task-status/{id}: $ref: "./beta/paths/task-status.yaml" /task-status: From 3dffdeb5d408ca13e4fb3245d2b398a8e27dce84 Mon Sep 17 00:00:00 2001 From: GitHub Action Bot Date: Fri, 21 Jun 2024 06:18:31 +0000 Subject: [PATCH 33/74] Automated commit by github action: 9609195443 --- .../paths/load-entitlements-by-sources.yaml | 51 +++++++++++++++++++ .../idn/beta/paths/load-entitlements.yaml | 12 ++--- static/api-specs/idn/sailpoint-api.beta.yaml | 4 +- 3 files changed, 60 insertions(+), 7 deletions(-) create mode 100644 static/api-specs/idn/beta/paths/load-entitlements-by-sources.yaml diff --git a/static/api-specs/idn/beta/paths/load-entitlements-by-sources.yaml b/static/api-specs/idn/beta/paths/load-entitlements-by-sources.yaml new file mode 100644 index 000000000..c6e73a61d --- /dev/null +++ b/static/api-specs/idn/beta/paths/load-entitlements-by-sources.yaml @@ -0,0 +1,51 @@ +post: + tags: + - Entitlements + summary: Aggregate Entitlements + deprecated: true + operationId: importEntitlementsBySource + description: >- + Starts an entitlement aggregation on the specified source. Though this endpoint has been deprecated, you can find its Beta equivalent [here](https://developer.sailpoint.com/docs/api/beta/import-entitlements). + + + If the target source is a direct connection, then the request body must be empty. You will also need to make sure the Content-Type header is not set. If you set the Content-Type header without specifying a body, then you will receive a 500 error. + + + If the target source is a delimited file source, then the CSV file needs to be included in the request body. You will also need to set the Content-Type header to `multipart/form-data`. + parameters: + - in: path + name: id + schema: + type: string + required: true + description: Source Id + example: ef38f94347e94562b5bb8424a56397d8 + requestBody: + content: + multipart/form-data: + schema: + type: object + properties: + csvFile: + type: string + format: binary + description: The CSV file containing the source entitlements to aggregate. + responses: + "202": + description: Aggregate Entitlements Task + content: + application/json: + schema: + $ref: "../schemas/LoadEntitlementTask.yaml" + "400": + $ref: "../../v3/responses/400.yaml" + "401": + $ref: "../../v3/responses/401.yaml" + '403': + $ref: '../../v3/responses/403.yaml' + '429': + $ref: '../../v3/responses/429.yaml' + "500": + $ref: "../../v3/responses/500.yaml" + security: + - UserContextAuth: [ idn:entitlements:manage ] \ No newline at end of file diff --git a/static/api-specs/idn/beta/paths/load-entitlements.yaml b/static/api-specs/idn/beta/paths/load-entitlements.yaml index 92382c947..8db4bebad 100644 --- a/static/api-specs/idn/beta/paths/load-entitlements.yaml +++ b/static/api-specs/idn/beta/paths/load-entitlements.yaml @@ -1,16 +1,16 @@ post: tags: - - Entitlements - summary: Aggregate Entitlements + - Sources + summary: Entitlement Aggregation operationId: importEntitlements description: >- Starts an entitlement aggregation on the specified source. - - If the target source is a direct connection, then the request body must be empty. You will also need to make sure the Content-Type header is not set. If you set the Content-Type header without specifying a body, then you will receive a 500 error. + If the target source is a delimited file source, then the CSV file needs to be included in the request body. + You will also need to set the Content-Type header to `multipart/form-data`. - If the target source is a delimited file source, then the CSV file needs to be included in the request body. You will also need to set the Content-Type header to `multipart/form-data`. + A token with ORG_ADMIN, SOURCE_ADMIN, or SOURCE_SUBADMIN authority is required to call this API. parameters: - in: path name: id @@ -25,7 +25,7 @@ post: schema: type: object properties: - csvFile: + file: type: string format: binary description: The CSV file containing the source entitlements to aggregate. diff --git a/static/api-specs/idn/sailpoint-api.beta.yaml b/static/api-specs/idn/sailpoint-api.beta.yaml index a8f37d90e..147547be0 100644 --- a/static/api-specs/idn/sailpoint-api.beta.yaml +++ b/static/api-specs/idn/sailpoint-api.beta.yaml @@ -1282,7 +1282,7 @@ paths: /entitlements/{id}/access-model-metadata/{attributeKey}/values/{attributeValue}: $ref: './beta/paths/entitlement-access-model-metadata.yaml' /entitlements/aggregate/sources/{id}: - $ref: "./beta/paths/load-entitlements.yaml" + $ref: "./beta/paths/load-entitlements-by-sources.yaml" /generate-password-reset-token/digit: $ref: './beta/paths/password-reset-digit-token.yaml' /historical-identities: @@ -1655,6 +1655,8 @@ paths: $ref: './beta/paths/sources-entitlement-request-config.yaml' /sources/{id}/load-accounts: $ref: './beta/paths/load-accounts.yaml' + /sources/{id}/load-entitlements: + $ref: './beta/paths/load-entitlements.yaml' /sources/{id}/load-uncorrelated-accounts: $ref: './beta/paths/load-uncorrelated-accounts.yaml' /sources/{id}/correlation-config: From 7a569a4550ba9b71d9f88297a959d6783f2ff3c8 Mon Sep 17 00:00:00 2001 From: Colin McKibben <75683148+colin-mckibben-sp@users.noreply.github.com> Date: Fri, 21 Jun 2024 09:43:44 -0400 Subject: [PATCH 34/74] Update authentication.md REFERSH_TOKEN grant type cannot be used with CLIENT_CREDENTIALS. --- docs/api/authentication.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/docs/api/authentication.md b/docs/api/authentication.md index 129c9632f..342bd52fd 100644 --- a/docs/api/authentication.md +++ b/docs/api/authentication.md @@ -130,7 +130,7 @@ There are several different authorization flows that OAuth 2.0 supports, and eac 1. [**Client Credentials**](https://oauth.net/2/grant-types/client-credentials/) - Clients use this grant type to obtain a JWT `access_token` without user involvement such as scripts, programs or system to system integration. 2. [**Authorization Code**](https://oauth.net/2/grant-types/authorization-code/) - Clients use this grant type to exchange an authorization code for an `access_token`. Authorization codes are mainly used by web applications because there is a login into ISC with a subsequent redirect back to the web application/client. -3. [**Refresh Token**](https://oauth.net/2/grant-types/refresh-token/) - Clients use this grant type to exchange a refresh token for a new `access_token` when the existing `access_token` has expired. This allows clients to continue using the APIs without having to re-authenticate as frequently. This grant type is commonly used together with `Authorization Code` to prevent a user from having to log in several times per day. +3. [**Refresh Token**](https://oauth.net/2/grant-types/refresh-token/) - Clients use this grant type to exchange a refresh token for a new `access_token` when the existing `access_token` has expired. This allows clients to continue using the APIs without having to re-authenticate as frequently. This grant type can only be used together with `Authorization Code` to prevent a user from having to log in several times per day. One way to determine which authorization flow you need to use is to look at the specification for the endpoint you want to use. The endpoint will have the supported OAuth flows listed under the 'Authorization' dropdown, like the [List Access Profiles endpoint](https://developer.sailpoint.com/docs/api/beta/list-access-profiles): @@ -317,7 +317,7 @@ For more information about the OAuth authorization code grant flow, refer [here] Clients use this grant type in order to exchange a refresh token for a new `access_token` once the existing `access_token` has expired. This allows clients to continue to have a valid `access_token` without the need for the user to login as frequently. -The OAuth 2.0 client you are using must have `REFRESH_TOKEN` as one of its grant types, and you would typically use this type in conjunction with another grant type, like `CLIENT_CREDENTIALS` or `AUTHORIZATION_CODE`: +The OAuth 2.0 client you are using must have `REFRESH_TOKEN` and `AUTHORIZATION_CODE` as its grant types: ```json { @@ -337,7 +337,7 @@ The OAuth 2.0 client you are using must have `REFRESH_TOKEN` as one of its grant This is the overall authorization flow: -1. The client application receives an `access_token` and a `refresh_token` from one of the other OAuth grant flows, like `AUTHORIZATION_CODE`. +1. The client application receives an `access_token` and a `refresh_token` when using the `AUTHORIZATION_CODE` grant flow. 2. The client application detects that the `access_token` is about to expire, based on the `expires_in` attribute contained within the JWT token. 3. The client submits an OAuth 2.0 token request to ISC in this form: From 8186b8fc1df9048f503d9fc2853811035b9b6aa8 Mon Sep 17 00:00:00 2001 From: GitHub Action Bot Date: Fri, 21 Jun 2024 14:25:07 +0000 Subject: [PATCH 35/74] Automated commit by github action: 9615207338 --- static/api-specs/idn/beta/paths/accounts.yaml | 8 +++++++- static/api-specs/idn/v3/paths/accounts.yaml | 8 +++++++- 2 files changed, 14 insertions(+), 2 deletions(-) diff --git a/static/api-specs/idn/beta/paths/accounts.yaml b/static/api-specs/idn/beta/paths/accounts.yaml index f837f51d7..819cbb1d6 100644 --- a/static/api-specs/idn/beta/paths/accounts.yaml +++ b/static/api-specs/idn/beta/paths/accounts.yaml @@ -55,6 +55,12 @@ get: **entitlements**: *eq* + **origin**: *eq, in* + + + **manuallyCorrelated**: *eq* + + **identity.name**: *eq, in, sw* @@ -82,7 +88,7 @@ get: Sort results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#sorting-results) - Sorting is supported for the following fields: **id, name, created, modified, sourceId, identityId, identity.id, nativeIdentity, uuid, manuallyCorrelated, entitlements, identity.name, identity.identityState, identity.correlated, source.displayableName, source.authoritative, source.connectionType** + Sorting is supported for the following fields: **id, name, created, modified, sourceId, identityId, identity.id, nativeIdentity, uuid, manuallyCorrelated, entitlements, origin, identity.name, identity.identityState, identity.correlated, source.displayableName, source.authoritative, source.connectionType** responses: '200': description: List of account objects diff --git a/static/api-specs/idn/v3/paths/accounts.yaml b/static/api-specs/idn/v3/paths/accounts.yaml index f44b994d4..3499fe5c3 100644 --- a/static/api-specs/idn/v3/paths/accounts.yaml +++ b/static/api-specs/idn/v3/paths/accounts.yaml @@ -48,6 +48,12 @@ get: **entitlements**: *eq* + **origin**: *eq, in* + + + **manuallyCorrelated**: *eq* + + **identity.name**: *eq, in, sw* @@ -76,7 +82,7 @@ get: Sort results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#sorting-results) - Sorting is supported for the following fields: **id, name, created, modified, sourceId, identityId, identity.id, nativeIdentity, uuid, manuallyCorrelated, entitlements, identity.name, identity.identityState, identity.correlated, source.displayableName, source.authoritative, source.connectionType** + Sorting is supported for the following fields: **id, name, created, modified, sourceId, identityId, identity.id, nativeIdentity, uuid, manuallyCorrelated, entitlements, origin, identity.name, identity.identityState, identity.correlated, source.displayableName, source.authoritative, source.connectionType** responses: "200": description: List of account objects From cac2e25b2b215e368943460e218896bcb1b10f33 Mon Sep 17 00:00:00 2001 From: GitHub Action Bot Date: Mon, 24 Jun 2024 14:53:12 +0000 Subject: [PATCH 36/74] Update to rule java docs: 9647567835 --- static/rule-java-docs/allclasses-frame.html | 4 +- static/rule-java-docs/allclasses-noframe.html | 4 +- .../connector/common/JsonUtil.JsonParser.html | 4 +- .../common/JsonUtil.JsonParserBuilder.html | 4 +- .../connector/common/JsonUtil.html | 4 +- .../rule-java-docs/connector/common/Util.html | 4 +- .../connector/common/package-frame.html | 4 +- .../connector/common/package-summary.html | 4 +- .../connector/common/package-tree.html | 4 +- static/rule-java-docs/constant-values.html | 4 +- static/rule-java-docs/deprecated-list.html | 4 +- static/rule-java-docs/help-doc.html | 4 +- .../rule-java-docs/index-files/index-1.html | 4 +- .../rule-java-docs/index-files/index-10.html | 4 +- .../rule-java-docs/index-files/index-11.html | 4 +- .../rule-java-docs/index-files/index-12.html | 4 +- .../rule-java-docs/index-files/index-13.html | 4 +- .../rule-java-docs/index-files/index-14.html | 4 +- .../rule-java-docs/index-files/index-15.html | 4 +- .../rule-java-docs/index-files/index-16.html | 4 +- .../rule-java-docs/index-files/index-17.html | 4 +- .../rule-java-docs/index-files/index-18.html | 4 +- .../rule-java-docs/index-files/index-19.html | 4 +- .../rule-java-docs/index-files/index-2.html | 4 +- .../rule-java-docs/index-files/index-20.html | 4 +- .../rule-java-docs/index-files/index-21.html | 4 +- .../rule-java-docs/index-files/index-22.html | 4 +- .../rule-java-docs/index-files/index-23.html | 4 +- .../rule-java-docs/index-files/index-3.html | 4 +- .../rule-java-docs/index-files/index-4.html | 4 +- .../rule-java-docs/index-files/index-5.html | 8 ++- .../rule-java-docs/index-files/index-6.html | 4 +- .../rule-java-docs/index-files/index-7.html | 4 +- .../rule-java-docs/index-files/index-8.html | 4 +- .../rule-java-docs/index-files/index-9.html | 4 +- static/rule-java-docs/index.html | 2 +- static/rule-java-docs/overview-frame.html | 4 +- static/rule-java-docs/overview-summary.html | 4 +- static/rule-java-docs/overview-tree.html | 4 +- .../sailpoint/api/SailPointContext.html | 4 +- .../sailpoint/api/package-frame.html | 4 +- .../sailpoint/api/package-summary.html | 4 +- .../sailpoint/api/package-tree.html | 4 +- .../connector/DelimitedFileConnector.html | 4 +- .../sailpoint/connector/package-frame.html | 4 +- .../sailpoint/connector/package-summary.html | 4 +- .../sailpoint/connector/package-tree.html | 4 +- .../connector/webservices/Endpoint.html | 4 +- .../webservices/WebServicesClient.html | 60 +++++++++++++++---- .../connector/webservices/package-frame.html | 4 +- .../webservices/package-summary.html | 4 +- .../connector/webservices/package-tree.html | 4 +- .../sailpoint/object/Application.html | 4 +- .../sailpoint/object/AttributeDefinition.html | 4 +- .../sailpoint/object/Attributes.html | 4 +- .../object/BaseAttributeDefinition.html | 4 +- .../sailpoint/object/Bundle.html | 4 +- .../sailpoint/object/Entitlement.html | 4 +- .../sailpoint/object/Field.html | 4 +- .../object/Filter.BaseFilterVisitor.html | 4 +- .../object/Filter.BooleanOperation.html | 4 +- .../object/Filter.CompositeFilter.html | 4 +- ...r.FilterCompiler.IdentitiferLookAhead.html | 4 +- .../object/Filter.FilterCompiler.html | 4 +- .../object/Filter.FilterVisitor.html | 4 +- .../sailpoint/object/Filter.LeafFilter.html | 4 +- .../object/Filter.LogicalOperation.html | 4 +- .../sailpoint/object/Filter.MatchMode.html | 4 +- .../object/Filter.ValueEscapeStyle.html | 4 +- .../sailpoint/object/Filter.html | 4 +- .../sailpoint/object/Identity.html | 4 +- .../sailpoint/object/IntegrationConfig.html | 4 +- .../rule-java-docs/sailpoint/object/Link.html | 4 +- .../object/ManagedAttribute.Type.html | 4 +- .../sailpoint/object/ManagedAttribute.html | 4 +- .../ProvisioningPlan.AbstractRequest.html | 4 +- ...isioningPlan.AccountRequest.Operation.html | 4 +- .../ProvisioningPlan.AccountRequest.html | 4 +- .../ProvisioningPlan.AttributeRequest.html | 4 +- .../ProvisioningPlan.GenericRequest.html | 4 +- .../ProvisioningPlan.ObjectOperation.html | 4 +- .../ProvisioningPlan.ObjectRequest.html | 4 +- .../object/ProvisioningPlan.Operation.html | 4 +- .../ProvisioningPlan.PermissionRequest.html | 4 +- .../sailpoint/object/ProvisioningPlan.html | 4 +- .../sailpoint/object/ProvisioningResult.html | 4 +- .../object/QueryOptions.Ordering.html | 4 +- .../sailpoint/object/QueryOptions.html | 4 +- .../sailpoint/object/ResourceObject.html | 4 +- .../sailpoint/object/RoleAssignment.html | 4 +- .../sailpoint/object/Schema.html | 4 +- .../sailpoint/object/package-frame.html | 4 +- .../sailpoint/object/package-summary.html | 4 +- .../sailpoint/object/package-tree.html | 10 ++-- .../sailpoint/rule/Account.html | 4 +- .../sailpoint/rule/Identity.html | 4 +- .../rule/ManagedAttributeDetails.html | 4 +- .../sailpoint/rule/package-frame.html | 4 +- .../sailpoint/rule/package-summary.html | 4 +- .../sailpoint/rule/package-tree.html | 4 +- .../sailpoint/server/IdnRuleUtil.html | 4 +- .../sailpoint/server/package-frame.html | 4 +- .../sailpoint/server/package-summary.html | 4 +- .../sailpoint/server/package-tree.html | 4 +- .../sailpoint/tools/Message.Type.html | 4 +- .../sailpoint/tools/Message.html | 4 +- .../sailpoint/tools/package-frame.html | 4 +- .../sailpoint/tools/package-summary.html | 4 +- .../sailpoint/tools/package-tree.html | 4 +- static/rule-java-docs/serialized-form.html | 4 +- 110 files changed, 271 insertions(+), 233 deletions(-) diff --git a/static/rule-java-docs/allclasses-frame.html b/static/rule-java-docs/allclasses-frame.html index 45316d210..76e7a8276 100644 --- a/static/rule-java-docs/allclasses-frame.html +++ b/static/rule-java-docs/allclasses-frame.html @@ -2,9 +2,9 @@ - + All Classes - + diff --git a/static/rule-java-docs/allclasses-noframe.html b/static/rule-java-docs/allclasses-noframe.html index efa336ba5..ea039cbf5 100644 --- a/static/rule-java-docs/allclasses-noframe.html +++ b/static/rule-java-docs/allclasses-noframe.html @@ -2,9 +2,9 @@ - + All Classes - + diff --git a/static/rule-java-docs/connector/common/JsonUtil.JsonParser.html b/static/rule-java-docs/connector/common/JsonUtil.JsonParser.html index 82d70f901..57d8a17a2 100644 --- a/static/rule-java-docs/connector/common/JsonUtil.JsonParser.html +++ b/static/rule-java-docs/connector/common/JsonUtil.JsonParser.html @@ -2,9 +2,9 @@ - + JsonUtil.JsonParser - + diff --git a/static/rule-java-docs/connector/common/JsonUtil.JsonParserBuilder.html b/static/rule-java-docs/connector/common/JsonUtil.JsonParserBuilder.html index 705a12ecd..e2ec7c50a 100644 --- a/static/rule-java-docs/connector/common/JsonUtil.JsonParserBuilder.html +++ b/static/rule-java-docs/connector/common/JsonUtil.JsonParserBuilder.html @@ -2,9 +2,9 @@ - + JsonUtil.JsonParserBuilder - + diff --git a/static/rule-java-docs/connector/common/JsonUtil.html b/static/rule-java-docs/connector/common/JsonUtil.html index c9110659d..ff7027cd1 100644 --- a/static/rule-java-docs/connector/common/JsonUtil.html +++ b/static/rule-java-docs/connector/common/JsonUtil.html @@ -2,9 +2,9 @@ - + JsonUtil - + diff --git a/static/rule-java-docs/connector/common/Util.html b/static/rule-java-docs/connector/common/Util.html index 53c145324..046b0d0f1 100644 --- a/static/rule-java-docs/connector/common/Util.html +++ b/static/rule-java-docs/connector/common/Util.html @@ -2,9 +2,9 @@ - + Util - + diff --git a/static/rule-java-docs/connector/common/package-frame.html b/static/rule-java-docs/connector/common/package-frame.html index eb8aeb983..b0bbf913c 100644 --- a/static/rule-java-docs/connector/common/package-frame.html +++ b/static/rule-java-docs/connector/common/package-frame.html @@ -2,9 +2,9 @@ - + connector.common - + diff --git a/static/rule-java-docs/connector/common/package-summary.html b/static/rule-java-docs/connector/common/package-summary.html index 9d92ee64e..4971073a6 100644 --- a/static/rule-java-docs/connector/common/package-summary.html +++ b/static/rule-java-docs/connector/common/package-summary.html @@ -2,9 +2,9 @@ - + connector.common - + diff --git a/static/rule-java-docs/connector/common/package-tree.html b/static/rule-java-docs/connector/common/package-tree.html index ef96d49c4..bcecd3e83 100644 --- a/static/rule-java-docs/connector/common/package-tree.html +++ b/static/rule-java-docs/connector/common/package-tree.html @@ -2,9 +2,9 @@ - + connector.common Class Hierarchy - + diff --git a/static/rule-java-docs/constant-values.html b/static/rule-java-docs/constant-values.html index 7136b8239..d51d66d4d 100644 --- a/static/rule-java-docs/constant-values.html +++ b/static/rule-java-docs/constant-values.html @@ -2,9 +2,9 @@ - + Constant Field Values - + diff --git a/static/rule-java-docs/deprecated-list.html b/static/rule-java-docs/deprecated-list.html index 48cbacbb4..2c0561678 100644 --- a/static/rule-java-docs/deprecated-list.html +++ b/static/rule-java-docs/deprecated-list.html @@ -2,9 +2,9 @@ - + Deprecated List - + diff --git a/static/rule-java-docs/help-doc.html b/static/rule-java-docs/help-doc.html index dfb223e5a..3948d6fdc 100644 --- a/static/rule-java-docs/help-doc.html +++ b/static/rule-java-docs/help-doc.html @@ -2,9 +2,9 @@ - + API Help - + diff --git a/static/rule-java-docs/index-files/index-1.html b/static/rule-java-docs/index-files/index-1.html index bd4549514..3e3c4baa8 100644 --- a/static/rule-java-docs/index-files/index-1.html +++ b/static/rule-java-docs/index-files/index-1.html @@ -2,9 +2,9 @@ - + A-Index - + diff --git a/static/rule-java-docs/index-files/index-10.html b/static/rule-java-docs/index-files/index-10.html index 0d546e58d..ba72c407f 100644 --- a/static/rule-java-docs/index-files/index-10.html +++ b/static/rule-java-docs/index-files/index-10.html @@ -2,9 +2,9 @@ - + J-Index - + diff --git a/static/rule-java-docs/index-files/index-11.html b/static/rule-java-docs/index-files/index-11.html index bb501c20d..8c5d84f5b 100644 --- a/static/rule-java-docs/index-files/index-11.html +++ b/static/rule-java-docs/index-files/index-11.html @@ -2,9 +2,9 @@ - + L-Index - + diff --git a/static/rule-java-docs/index-files/index-12.html b/static/rule-java-docs/index-files/index-12.html index 4346bb8bb..44e0cbd7d 100644 --- a/static/rule-java-docs/index-files/index-12.html +++ b/static/rule-java-docs/index-files/index-12.html @@ -2,9 +2,9 @@ - + M-Index - + diff --git a/static/rule-java-docs/index-files/index-13.html b/static/rule-java-docs/index-files/index-13.html index 1f2d18722..f136751e2 100644 --- a/static/rule-java-docs/index-files/index-13.html +++ b/static/rule-java-docs/index-files/index-13.html @@ -2,9 +2,9 @@ - + N-Index - + diff --git a/static/rule-java-docs/index-files/index-14.html b/static/rule-java-docs/index-files/index-14.html index 447b0212c..96b81f23b 100644 --- a/static/rule-java-docs/index-files/index-14.html +++ b/static/rule-java-docs/index-files/index-14.html @@ -2,9 +2,9 @@ - + O-Index - + diff --git a/static/rule-java-docs/index-files/index-15.html b/static/rule-java-docs/index-files/index-15.html index a78bcfb88..74f69fd33 100644 --- a/static/rule-java-docs/index-files/index-15.html +++ b/static/rule-java-docs/index-files/index-15.html @@ -2,9 +2,9 @@ - + P-Index - + diff --git a/static/rule-java-docs/index-files/index-16.html b/static/rule-java-docs/index-files/index-16.html index 366ef2429..afe3eaecb 100644 --- a/static/rule-java-docs/index-files/index-16.html +++ b/static/rule-java-docs/index-files/index-16.html @@ -2,9 +2,9 @@ - + Q-Index - + diff --git a/static/rule-java-docs/index-files/index-17.html b/static/rule-java-docs/index-files/index-17.html index bff1aed6f..4f8d0e1e5 100644 --- a/static/rule-java-docs/index-files/index-17.html +++ b/static/rule-java-docs/index-files/index-17.html @@ -2,9 +2,9 @@ - + R-Index - + diff --git a/static/rule-java-docs/index-files/index-18.html b/static/rule-java-docs/index-files/index-18.html index 46bd38d44..466ebcca9 100644 --- a/static/rule-java-docs/index-files/index-18.html +++ b/static/rule-java-docs/index-files/index-18.html @@ -2,9 +2,9 @@ - + S-Index - + diff --git a/static/rule-java-docs/index-files/index-19.html b/static/rule-java-docs/index-files/index-19.html index b7ef631a9..b8602783e 100644 --- a/static/rule-java-docs/index-files/index-19.html +++ b/static/rule-java-docs/index-files/index-19.html @@ -2,9 +2,9 @@ - + T-Index - + diff --git a/static/rule-java-docs/index-files/index-2.html b/static/rule-java-docs/index-files/index-2.html index e99710750..289c31999 100644 --- a/static/rule-java-docs/index-files/index-2.html +++ b/static/rule-java-docs/index-files/index-2.html @@ -2,9 +2,9 @@ - + B-Index - + diff --git a/static/rule-java-docs/index-files/index-20.html b/static/rule-java-docs/index-files/index-20.html index de6654320..fc4e8dbe4 100644 --- a/static/rule-java-docs/index-files/index-20.html +++ b/static/rule-java-docs/index-files/index-20.html @@ -2,9 +2,9 @@ - + U-Index - + diff --git a/static/rule-java-docs/index-files/index-21.html b/static/rule-java-docs/index-files/index-21.html index 7a0879bc4..cc65c3836 100644 --- a/static/rule-java-docs/index-files/index-21.html +++ b/static/rule-java-docs/index-files/index-21.html @@ -2,9 +2,9 @@ - + V-Index - + diff --git a/static/rule-java-docs/index-files/index-22.html b/static/rule-java-docs/index-files/index-22.html index 9d7d39cc6..46761863c 100644 --- a/static/rule-java-docs/index-files/index-22.html +++ b/static/rule-java-docs/index-files/index-22.html @@ -2,9 +2,9 @@ - + W-Index - + diff --git a/static/rule-java-docs/index-files/index-23.html b/static/rule-java-docs/index-files/index-23.html index c7598d1eb..702e525f1 100644 --- a/static/rule-java-docs/index-files/index-23.html +++ b/static/rule-java-docs/index-files/index-23.html @@ -2,9 +2,9 @@ - + _-Index - + diff --git a/static/rule-java-docs/index-files/index-3.html b/static/rule-java-docs/index-files/index-3.html index b19d7126b..ddae92124 100644 --- a/static/rule-java-docs/index-files/index-3.html +++ b/static/rule-java-docs/index-files/index-3.html @@ -2,9 +2,9 @@ - + C-Index - + diff --git a/static/rule-java-docs/index-files/index-4.html b/static/rule-java-docs/index-files/index-4.html index f6aa2b341..44f6258e4 100644 --- a/static/rule-java-docs/index-files/index-4.html +++ b/static/rule-java-docs/index-files/index-4.html @@ -2,9 +2,9 @@ - + D-Index - + diff --git a/static/rule-java-docs/index-files/index-5.html b/static/rule-java-docs/index-files/index-5.html index 6d8a780fa..30ccf8ea8 100644 --- a/static/rule-java-docs/index-files/index-5.html +++ b/static/rule-java-docs/index-files/index-5.html @@ -2,9 +2,9 @@ - + E-Index - + @@ -119,6 +119,10 @@
Use this method to execute a DELETE call specifying the url, header values and allowed statuses.
+
executeDelete(String, Object, Map, List<String>) - Method in class sailpoint.connector.webservices.WebServicesClient
+
+
Use this method to execute a DELETE call specifying the url, header values and allowed statuses.
+
executeGet(Map, List<String>) - Method in class sailpoint.connector.webservices.WebServicesClient
Use this method to execute a GET call with specifying header values and allowed statuses.
diff --git a/static/rule-java-docs/index-files/index-6.html b/static/rule-java-docs/index-files/index-6.html index 0530d4940..fe40fc860 100644 --- a/static/rule-java-docs/index-files/index-6.html +++ b/static/rule-java-docs/index-files/index-6.html @@ -2,9 +2,9 @@ - + F-Index - + diff --git a/static/rule-java-docs/index-files/index-7.html b/static/rule-java-docs/index-files/index-7.html index 4da7a9f6e..ea2968bb6 100644 --- a/static/rule-java-docs/index-files/index-7.html +++ b/static/rule-java-docs/index-files/index-7.html @@ -2,9 +2,9 @@ - + G-Index - + diff --git a/static/rule-java-docs/index-files/index-8.html b/static/rule-java-docs/index-files/index-8.html index 35dc2825e..24c3adf66 100644 --- a/static/rule-java-docs/index-files/index-8.html +++ b/static/rule-java-docs/index-files/index-8.html @@ -2,9 +2,9 @@ - + H-Index - + diff --git a/static/rule-java-docs/index-files/index-9.html b/static/rule-java-docs/index-files/index-9.html index 1c2d5bd57..ddf3b6c95 100644 --- a/static/rule-java-docs/index-files/index-9.html +++ b/static/rule-java-docs/index-files/index-9.html @@ -2,9 +2,9 @@ - + I-Index - + diff --git a/static/rule-java-docs/index.html b/static/rule-java-docs/index.html index 483ce2e6f..b8e8c83d7 100644 --- a/static/rule-java-docs/index.html +++ b/static/rule-java-docs/index.html @@ -2,7 +2,7 @@ - + Generated Documentation (Untitled) diff --git a/static/rule-java-docs/overview-summary.html b/static/rule-java-docs/overview-summary.html index 507d3bb43..35a83aaea 100644 --- a/static/rule-java-docs/overview-summary.html +++ b/static/rule-java-docs/overview-summary.html @@ -2,9 +2,9 @@ - + Overview - + diff --git a/static/rule-java-docs/overview-tree.html b/static/rule-java-docs/overview-tree.html index d8c7d3b62..992fbc750 100644 --- a/static/rule-java-docs/overview-tree.html +++ b/static/rule-java-docs/overview-tree.html @@ -2,9 +2,9 @@ - + Class Hierarchy - + diff --git a/static/rule-java-docs/sailpoint/api/SailPointContext.html b/static/rule-java-docs/sailpoint/api/SailPointContext.html index 2c2c3cc7f..04d6af249 100644 --- a/static/rule-java-docs/sailpoint/api/SailPointContext.html +++ b/static/rule-java-docs/sailpoint/api/SailPointContext.html @@ -2,9 +2,9 @@ - + SailPointContext - + diff --git a/static/rule-java-docs/sailpoint/api/package-frame.html b/static/rule-java-docs/sailpoint/api/package-frame.html index a25543180..db2000655 100644 --- a/static/rule-java-docs/sailpoint/api/package-frame.html +++ b/static/rule-java-docs/sailpoint/api/package-frame.html @@ -2,9 +2,9 @@ - + sailpoint.api - + diff --git a/static/rule-java-docs/sailpoint/api/package-summary.html b/static/rule-java-docs/sailpoint/api/package-summary.html index 39318b437..bbdea3ca5 100644 --- a/static/rule-java-docs/sailpoint/api/package-summary.html +++ b/static/rule-java-docs/sailpoint/api/package-summary.html @@ -2,9 +2,9 @@ - + sailpoint.api - + diff --git a/static/rule-java-docs/sailpoint/api/package-tree.html b/static/rule-java-docs/sailpoint/api/package-tree.html index ef44e0644..d84dbd6c8 100644 --- a/static/rule-java-docs/sailpoint/api/package-tree.html +++ b/static/rule-java-docs/sailpoint/api/package-tree.html @@ -2,9 +2,9 @@ - + sailpoint.api Class Hierarchy - + diff --git a/static/rule-java-docs/sailpoint/connector/DelimitedFileConnector.html b/static/rule-java-docs/sailpoint/connector/DelimitedFileConnector.html index bb27a659c..b03c5d73e 100644 --- a/static/rule-java-docs/sailpoint/connector/DelimitedFileConnector.html +++ b/static/rule-java-docs/sailpoint/connector/DelimitedFileConnector.html @@ -2,9 +2,9 @@ - + DelimitedFileConnector - + diff --git a/static/rule-java-docs/sailpoint/connector/package-frame.html b/static/rule-java-docs/sailpoint/connector/package-frame.html index 1b195f3cd..8186898b8 100644 --- a/static/rule-java-docs/sailpoint/connector/package-frame.html +++ b/static/rule-java-docs/sailpoint/connector/package-frame.html @@ -2,9 +2,9 @@ - + sailpoint.connector - + diff --git a/static/rule-java-docs/sailpoint/connector/package-summary.html b/static/rule-java-docs/sailpoint/connector/package-summary.html index f75e2891d..b15fa8231 100644 --- a/static/rule-java-docs/sailpoint/connector/package-summary.html +++ b/static/rule-java-docs/sailpoint/connector/package-summary.html @@ -2,9 +2,9 @@ - + sailpoint.connector - + diff --git a/static/rule-java-docs/sailpoint/connector/package-tree.html b/static/rule-java-docs/sailpoint/connector/package-tree.html index ec8b4956f..2ec7168d1 100644 --- a/static/rule-java-docs/sailpoint/connector/package-tree.html +++ b/static/rule-java-docs/sailpoint/connector/package-tree.html @@ -2,9 +2,9 @@ - + sailpoint.connector Class Hierarchy - + diff --git a/static/rule-java-docs/sailpoint/connector/webservices/Endpoint.html b/static/rule-java-docs/sailpoint/connector/webservices/Endpoint.html index 8cf6150a9..e9d3d498e 100644 --- a/static/rule-java-docs/sailpoint/connector/webservices/Endpoint.html +++ b/static/rule-java-docs/sailpoint/connector/webservices/Endpoint.html @@ -2,9 +2,9 @@ - + Endpoint - + diff --git a/static/rule-java-docs/sailpoint/connector/webservices/WebServicesClient.html b/static/rule-java-docs/sailpoint/connector/webservices/WebServicesClient.html index 95331a562..dad4c19f5 100644 --- a/static/rule-java-docs/sailpoint/connector/webservices/WebServicesClient.html +++ b/static/rule-java-docs/sailpoint/connector/webservices/WebServicesClient.html @@ -2,9 +2,9 @@ - + WebServicesClient - + @@ -18,7 +18,7 @@ catch(err) { } //--> -var methods = {"i0":10,"i1":10,"i2":10,"i3":10,"i4":10,"i5":10,"i6":10,"i7":10,"i8":10,"i9":10,"i10":10,"i11":10,"i12":10}; +var methods = {"i0":10,"i1":10,"i2":10,"i3":10,"i4":10,"i5":10,"i6":10,"i7":10,"i8":10,"i9":10,"i10":10,"i11":10,"i12":10,"i13":10}; var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]}; var altColor = "altColor"; var rowColor = "rowColor"; @@ -188,12 +188,21 @@ extends java.lang.Object java.lang.String +executeDelete(java.lang.String url, + java.lang.Object payload, + java.util.Map headers, + java.util.List<java.lang.String> allowedStatuses) +
Use this method to execute a DELETE call specifying the url, header values and allowed statuses.
+ + + +java.lang.String executeGet(java.util.Map headers, java.util.List<java.lang.String> allowedStatuses)
Use this method to execute a GET call with specifying header values and allowed statuses.
- + java.lang.String executeGet(java.lang.String url, java.util.Map headers, @@ -201,7 +210,7 @@ extends java.lang.Object
Use this method to execute a GET call with specifying the url, header values and allowed statuses.
- + java.lang.String executePatch(java.lang.String url, java.lang.Object payload, @@ -209,7 +218,7 @@ extends java.lang.Object
Use this method to execute a PATCH call with specifying the url, payload and allowed statuses.
- + java.lang.String executePatch(java.lang.String url, java.lang.Object payload, @@ -218,7 +227,7 @@ extends java.lang.Object
Use this method to execute a PATCH call with specifying the url, payload, header values and allowed statuses.
- + java.lang.String executePost(java.lang.String url, java.lang.Object payload, @@ -226,7 +235,7 @@ extends java.lang.Object
Use this method to execute a POST call with specifying the url, payload, and allowed statuses.
- + java.lang.String executePost(java.lang.String url, java.lang.Object payload, @@ -235,7 +244,7 @@ extends java.lang.Object
Use this method to execute a POST call with specifying the url, payload, header values and allowed statuses.
- + java.lang.String executePut(java.lang.String url, java.lang.Object payload, @@ -243,7 +252,7 @@ extends java.lang.Object
Use this method to execute a PUT call with specifying the url, payload, and allowed statuses.
- + java.lang.String executePut(java.lang.String url, java.lang.Object payload, @@ -252,13 +261,13 @@ extends java.lang.Object
Use this method to execute a PUT call with specifying the url, payload, header values and allowed statuses.
- + java.util.List getCookies()
Use this method to get a list of cookies associated with the request
- + java.util.Map<java.lang.String,java.lang.String> getResponseHeaders()
Get the last executed request's response headers.
@@ -583,7 +592,7 @@ extends java.lang.Object -
    +
    • executeDelete

      public java.lang.String executeDelete(java.lang.String url,
      @@ -603,6 +612,31 @@ extends java.lang.Object
    + + + +
      +
    • +

      executeDelete

      +
      public java.lang.String executeDelete(java.lang.String url,
      +                                      java.lang.Object payload,
      +                                      java.util.Map headers,
      +                                      java.util.List<java.lang.String> allowedStatuses)
      +                               throws java.lang.Exception
      +
      Use this method to execute a DELETE call specifying the url, header values and allowed statuses.
      +
      +
      Parameters:
      +
      url - The url to execute the request against
      +
      payload - The payload to send to the request endpoint
      +
      headers - Any headers needed to authenticate or specify a content-type
      +
      allowedStatuses - Allowed response statuses, ie: 200, 201, 400, etc...
      +
      Returns:
      +
      Delete request response object
      +
      Throws:
      +
      java.lang.Exception - The exception thrown by the client
      +
      +
    • +
diff --git a/static/rule-java-docs/sailpoint/connector/webservices/package-frame.html b/static/rule-java-docs/sailpoint/connector/webservices/package-frame.html index ca48ab86c..fa1baf365 100644 --- a/static/rule-java-docs/sailpoint/connector/webservices/package-frame.html +++ b/static/rule-java-docs/sailpoint/connector/webservices/package-frame.html @@ -2,9 +2,9 @@ - + sailpoint.connector.webservices - + diff --git a/static/rule-java-docs/sailpoint/connector/webservices/package-summary.html b/static/rule-java-docs/sailpoint/connector/webservices/package-summary.html index 9d52179cb..76cc4ce8e 100644 --- a/static/rule-java-docs/sailpoint/connector/webservices/package-summary.html +++ b/static/rule-java-docs/sailpoint/connector/webservices/package-summary.html @@ -2,9 +2,9 @@ - + sailpoint.connector.webservices - + diff --git a/static/rule-java-docs/sailpoint/connector/webservices/package-tree.html b/static/rule-java-docs/sailpoint/connector/webservices/package-tree.html index 8374606ac..3e50addbb 100644 --- a/static/rule-java-docs/sailpoint/connector/webservices/package-tree.html +++ b/static/rule-java-docs/sailpoint/connector/webservices/package-tree.html @@ -2,9 +2,9 @@ - + sailpoint.connector.webservices Class Hierarchy - + diff --git a/static/rule-java-docs/sailpoint/object/Application.html b/static/rule-java-docs/sailpoint/object/Application.html index 89c83e325..a51e2ec4c 100644 --- a/static/rule-java-docs/sailpoint/object/Application.html +++ b/static/rule-java-docs/sailpoint/object/Application.html @@ -2,9 +2,9 @@ - + Application - + diff --git a/static/rule-java-docs/sailpoint/object/AttributeDefinition.html b/static/rule-java-docs/sailpoint/object/AttributeDefinition.html index 637d8e09d..7bbdcb2ce 100644 --- a/static/rule-java-docs/sailpoint/object/AttributeDefinition.html +++ b/static/rule-java-docs/sailpoint/object/AttributeDefinition.html @@ -2,9 +2,9 @@ - + AttributeDefinition - + diff --git a/static/rule-java-docs/sailpoint/object/Attributes.html b/static/rule-java-docs/sailpoint/object/Attributes.html index 8cad6a176..3c5d82cda 100644 --- a/static/rule-java-docs/sailpoint/object/Attributes.html +++ b/static/rule-java-docs/sailpoint/object/Attributes.html @@ -2,9 +2,9 @@ - + Attributes - + diff --git a/static/rule-java-docs/sailpoint/object/BaseAttributeDefinition.html b/static/rule-java-docs/sailpoint/object/BaseAttributeDefinition.html index ca15b5e16..9a404ae21 100644 --- a/static/rule-java-docs/sailpoint/object/BaseAttributeDefinition.html +++ b/static/rule-java-docs/sailpoint/object/BaseAttributeDefinition.html @@ -2,9 +2,9 @@ - + BaseAttributeDefinition - + diff --git a/static/rule-java-docs/sailpoint/object/Bundle.html b/static/rule-java-docs/sailpoint/object/Bundle.html index e59df9c70..2de7a7b4d 100644 --- a/static/rule-java-docs/sailpoint/object/Bundle.html +++ b/static/rule-java-docs/sailpoint/object/Bundle.html @@ -2,9 +2,9 @@ - + Bundle - + diff --git a/static/rule-java-docs/sailpoint/object/Entitlement.html b/static/rule-java-docs/sailpoint/object/Entitlement.html index a1925d1f3..1d63467d4 100644 --- a/static/rule-java-docs/sailpoint/object/Entitlement.html +++ b/static/rule-java-docs/sailpoint/object/Entitlement.html @@ -2,9 +2,9 @@ - + Entitlement - + diff --git a/static/rule-java-docs/sailpoint/object/Field.html b/static/rule-java-docs/sailpoint/object/Field.html index a478088a8..a824490c5 100644 --- a/static/rule-java-docs/sailpoint/object/Field.html +++ b/static/rule-java-docs/sailpoint/object/Field.html @@ -2,9 +2,9 @@ - + Field - + diff --git a/static/rule-java-docs/sailpoint/object/Filter.BaseFilterVisitor.html b/static/rule-java-docs/sailpoint/object/Filter.BaseFilterVisitor.html index ca4c7d5cd..7951b6a55 100644 --- a/static/rule-java-docs/sailpoint/object/Filter.BaseFilterVisitor.html +++ b/static/rule-java-docs/sailpoint/object/Filter.BaseFilterVisitor.html @@ -2,9 +2,9 @@ - + Filter.BaseFilterVisitor - + diff --git a/static/rule-java-docs/sailpoint/object/Filter.BooleanOperation.html b/static/rule-java-docs/sailpoint/object/Filter.BooleanOperation.html index 230ae255f..530fb5d4e 100644 --- a/static/rule-java-docs/sailpoint/object/Filter.BooleanOperation.html +++ b/static/rule-java-docs/sailpoint/object/Filter.BooleanOperation.html @@ -2,9 +2,9 @@ - + Filter.BooleanOperation - + diff --git a/static/rule-java-docs/sailpoint/object/Filter.CompositeFilter.html b/static/rule-java-docs/sailpoint/object/Filter.CompositeFilter.html index 32978ab68..b68bc4cdf 100644 --- a/static/rule-java-docs/sailpoint/object/Filter.CompositeFilter.html +++ b/static/rule-java-docs/sailpoint/object/Filter.CompositeFilter.html @@ -2,9 +2,9 @@ - + Filter.CompositeFilter - + diff --git a/static/rule-java-docs/sailpoint/object/Filter.FilterCompiler.IdentitiferLookAhead.html b/static/rule-java-docs/sailpoint/object/Filter.FilterCompiler.IdentitiferLookAhead.html index f98a60056..0d47cff1f 100644 --- a/static/rule-java-docs/sailpoint/object/Filter.FilterCompiler.IdentitiferLookAhead.html +++ b/static/rule-java-docs/sailpoint/object/Filter.FilterCompiler.IdentitiferLookAhead.html @@ -2,9 +2,9 @@ - + Filter.FilterCompiler.IdentitiferLookAhead - + diff --git a/static/rule-java-docs/sailpoint/object/Filter.FilterCompiler.html b/static/rule-java-docs/sailpoint/object/Filter.FilterCompiler.html index 612a8b44b..4022fe037 100644 --- a/static/rule-java-docs/sailpoint/object/Filter.FilterCompiler.html +++ b/static/rule-java-docs/sailpoint/object/Filter.FilterCompiler.html @@ -2,9 +2,9 @@ - + Filter.FilterCompiler - + diff --git a/static/rule-java-docs/sailpoint/object/Filter.FilterVisitor.html b/static/rule-java-docs/sailpoint/object/Filter.FilterVisitor.html index 897a6b3ec..f6e41a7fe 100644 --- a/static/rule-java-docs/sailpoint/object/Filter.FilterVisitor.html +++ b/static/rule-java-docs/sailpoint/object/Filter.FilterVisitor.html @@ -2,9 +2,9 @@ - + Filter.FilterVisitor - + diff --git a/static/rule-java-docs/sailpoint/object/Filter.LeafFilter.html b/static/rule-java-docs/sailpoint/object/Filter.LeafFilter.html index c206412c0..497d056cf 100644 --- a/static/rule-java-docs/sailpoint/object/Filter.LeafFilter.html +++ b/static/rule-java-docs/sailpoint/object/Filter.LeafFilter.html @@ -2,9 +2,9 @@ - + Filter.LeafFilter - + diff --git a/static/rule-java-docs/sailpoint/object/Filter.LogicalOperation.html b/static/rule-java-docs/sailpoint/object/Filter.LogicalOperation.html index 84ec57bca..5d9d3fe02 100644 --- a/static/rule-java-docs/sailpoint/object/Filter.LogicalOperation.html +++ b/static/rule-java-docs/sailpoint/object/Filter.LogicalOperation.html @@ -2,9 +2,9 @@ - + Filter.LogicalOperation - + diff --git a/static/rule-java-docs/sailpoint/object/Filter.MatchMode.html b/static/rule-java-docs/sailpoint/object/Filter.MatchMode.html index 81e3e0bc3..be7ef7558 100644 --- a/static/rule-java-docs/sailpoint/object/Filter.MatchMode.html +++ b/static/rule-java-docs/sailpoint/object/Filter.MatchMode.html @@ -2,9 +2,9 @@ - + Filter.MatchMode - + diff --git a/static/rule-java-docs/sailpoint/object/Filter.ValueEscapeStyle.html b/static/rule-java-docs/sailpoint/object/Filter.ValueEscapeStyle.html index c381ec936..e7240bed0 100644 --- a/static/rule-java-docs/sailpoint/object/Filter.ValueEscapeStyle.html +++ b/static/rule-java-docs/sailpoint/object/Filter.ValueEscapeStyle.html @@ -2,9 +2,9 @@ - + Filter.ValueEscapeStyle - + diff --git a/static/rule-java-docs/sailpoint/object/Filter.html b/static/rule-java-docs/sailpoint/object/Filter.html index 364114253..4d65dfdbc 100644 --- a/static/rule-java-docs/sailpoint/object/Filter.html +++ b/static/rule-java-docs/sailpoint/object/Filter.html @@ -2,9 +2,9 @@ - + Filter - + diff --git a/static/rule-java-docs/sailpoint/object/Identity.html b/static/rule-java-docs/sailpoint/object/Identity.html index a647470a0..4a89f9045 100644 --- a/static/rule-java-docs/sailpoint/object/Identity.html +++ b/static/rule-java-docs/sailpoint/object/Identity.html @@ -2,9 +2,9 @@ - + Identity - + diff --git a/static/rule-java-docs/sailpoint/object/IntegrationConfig.html b/static/rule-java-docs/sailpoint/object/IntegrationConfig.html index c865c87ca..3a0f104f8 100644 --- a/static/rule-java-docs/sailpoint/object/IntegrationConfig.html +++ b/static/rule-java-docs/sailpoint/object/IntegrationConfig.html @@ -2,9 +2,9 @@ - + IntegrationConfig - + diff --git a/static/rule-java-docs/sailpoint/object/Link.html b/static/rule-java-docs/sailpoint/object/Link.html index 2d65ac62c..00fff9f02 100644 --- a/static/rule-java-docs/sailpoint/object/Link.html +++ b/static/rule-java-docs/sailpoint/object/Link.html @@ -2,9 +2,9 @@ - + Link - + diff --git a/static/rule-java-docs/sailpoint/object/ManagedAttribute.Type.html b/static/rule-java-docs/sailpoint/object/ManagedAttribute.Type.html index 776cbddcc..e7a028040 100644 --- a/static/rule-java-docs/sailpoint/object/ManagedAttribute.Type.html +++ b/static/rule-java-docs/sailpoint/object/ManagedAttribute.Type.html @@ -2,9 +2,9 @@ - + ManagedAttribute.Type - + diff --git a/static/rule-java-docs/sailpoint/object/ManagedAttribute.html b/static/rule-java-docs/sailpoint/object/ManagedAttribute.html index 98fa74182..47642408f 100644 --- a/static/rule-java-docs/sailpoint/object/ManagedAttribute.html +++ b/static/rule-java-docs/sailpoint/object/ManagedAttribute.html @@ -2,9 +2,9 @@ - + ManagedAttribute - + diff --git a/static/rule-java-docs/sailpoint/object/ProvisioningPlan.AbstractRequest.html b/static/rule-java-docs/sailpoint/object/ProvisioningPlan.AbstractRequest.html index 51842cc0d..b8eb4c798 100644 --- a/static/rule-java-docs/sailpoint/object/ProvisioningPlan.AbstractRequest.html +++ b/static/rule-java-docs/sailpoint/object/ProvisioningPlan.AbstractRequest.html @@ -2,9 +2,9 @@ - + ProvisioningPlan.AbstractRequest - + diff --git a/static/rule-java-docs/sailpoint/object/ProvisioningPlan.AccountRequest.Operation.html b/static/rule-java-docs/sailpoint/object/ProvisioningPlan.AccountRequest.Operation.html index 2c1569c41..872eb5487 100644 --- a/static/rule-java-docs/sailpoint/object/ProvisioningPlan.AccountRequest.Operation.html +++ b/static/rule-java-docs/sailpoint/object/ProvisioningPlan.AccountRequest.Operation.html @@ -2,9 +2,9 @@ - + ProvisioningPlan.AccountRequest.Operation - + diff --git a/static/rule-java-docs/sailpoint/object/ProvisioningPlan.AccountRequest.html b/static/rule-java-docs/sailpoint/object/ProvisioningPlan.AccountRequest.html index 98a02b749..517d3cd90 100644 --- a/static/rule-java-docs/sailpoint/object/ProvisioningPlan.AccountRequest.html +++ b/static/rule-java-docs/sailpoint/object/ProvisioningPlan.AccountRequest.html @@ -2,9 +2,9 @@ - + ProvisioningPlan.AccountRequest - + diff --git a/static/rule-java-docs/sailpoint/object/ProvisioningPlan.AttributeRequest.html b/static/rule-java-docs/sailpoint/object/ProvisioningPlan.AttributeRequest.html index af429a6db..a886cae9f 100644 --- a/static/rule-java-docs/sailpoint/object/ProvisioningPlan.AttributeRequest.html +++ b/static/rule-java-docs/sailpoint/object/ProvisioningPlan.AttributeRequest.html @@ -2,9 +2,9 @@ - + ProvisioningPlan.AttributeRequest - + diff --git a/static/rule-java-docs/sailpoint/object/ProvisioningPlan.GenericRequest.html b/static/rule-java-docs/sailpoint/object/ProvisioningPlan.GenericRequest.html index c8a73e619..551c5f20c 100644 --- a/static/rule-java-docs/sailpoint/object/ProvisioningPlan.GenericRequest.html +++ b/static/rule-java-docs/sailpoint/object/ProvisioningPlan.GenericRequest.html @@ -2,9 +2,9 @@ - + ProvisioningPlan.GenericRequest - + diff --git a/static/rule-java-docs/sailpoint/object/ProvisioningPlan.ObjectOperation.html b/static/rule-java-docs/sailpoint/object/ProvisioningPlan.ObjectOperation.html index aba177079..d851fda7e 100644 --- a/static/rule-java-docs/sailpoint/object/ProvisioningPlan.ObjectOperation.html +++ b/static/rule-java-docs/sailpoint/object/ProvisioningPlan.ObjectOperation.html @@ -2,9 +2,9 @@ - + ProvisioningPlan.ObjectOperation - + diff --git a/static/rule-java-docs/sailpoint/object/ProvisioningPlan.ObjectRequest.html b/static/rule-java-docs/sailpoint/object/ProvisioningPlan.ObjectRequest.html index 90ca0073f..57541cf53 100644 --- a/static/rule-java-docs/sailpoint/object/ProvisioningPlan.ObjectRequest.html +++ b/static/rule-java-docs/sailpoint/object/ProvisioningPlan.ObjectRequest.html @@ -2,9 +2,9 @@ - + ProvisioningPlan.ObjectRequest - + diff --git a/static/rule-java-docs/sailpoint/object/ProvisioningPlan.Operation.html b/static/rule-java-docs/sailpoint/object/ProvisioningPlan.Operation.html index e11950a06..9c36e2668 100644 --- a/static/rule-java-docs/sailpoint/object/ProvisioningPlan.Operation.html +++ b/static/rule-java-docs/sailpoint/object/ProvisioningPlan.Operation.html @@ -2,9 +2,9 @@ - + ProvisioningPlan.Operation - + diff --git a/static/rule-java-docs/sailpoint/object/ProvisioningPlan.PermissionRequest.html b/static/rule-java-docs/sailpoint/object/ProvisioningPlan.PermissionRequest.html index a9f511317..3f7d2833f 100644 --- a/static/rule-java-docs/sailpoint/object/ProvisioningPlan.PermissionRequest.html +++ b/static/rule-java-docs/sailpoint/object/ProvisioningPlan.PermissionRequest.html @@ -2,9 +2,9 @@ - + ProvisioningPlan.PermissionRequest - + diff --git a/static/rule-java-docs/sailpoint/object/ProvisioningPlan.html b/static/rule-java-docs/sailpoint/object/ProvisioningPlan.html index ec63b1035..f9f64e327 100644 --- a/static/rule-java-docs/sailpoint/object/ProvisioningPlan.html +++ b/static/rule-java-docs/sailpoint/object/ProvisioningPlan.html @@ -2,9 +2,9 @@ - + ProvisioningPlan - + diff --git a/static/rule-java-docs/sailpoint/object/ProvisioningResult.html b/static/rule-java-docs/sailpoint/object/ProvisioningResult.html index c8d31b61b..b1e0800f9 100644 --- a/static/rule-java-docs/sailpoint/object/ProvisioningResult.html +++ b/static/rule-java-docs/sailpoint/object/ProvisioningResult.html @@ -2,9 +2,9 @@ - + ProvisioningResult - + diff --git a/static/rule-java-docs/sailpoint/object/QueryOptions.Ordering.html b/static/rule-java-docs/sailpoint/object/QueryOptions.Ordering.html index 757f72e9b..6dda26140 100644 --- a/static/rule-java-docs/sailpoint/object/QueryOptions.Ordering.html +++ b/static/rule-java-docs/sailpoint/object/QueryOptions.Ordering.html @@ -2,9 +2,9 @@ - + QueryOptions.Ordering - + diff --git a/static/rule-java-docs/sailpoint/object/QueryOptions.html b/static/rule-java-docs/sailpoint/object/QueryOptions.html index 139f26258..16ad7847f 100644 --- a/static/rule-java-docs/sailpoint/object/QueryOptions.html +++ b/static/rule-java-docs/sailpoint/object/QueryOptions.html @@ -2,9 +2,9 @@ - + QueryOptions - + diff --git a/static/rule-java-docs/sailpoint/object/ResourceObject.html b/static/rule-java-docs/sailpoint/object/ResourceObject.html index 9d51c3e78..28b71ddb1 100644 --- a/static/rule-java-docs/sailpoint/object/ResourceObject.html +++ b/static/rule-java-docs/sailpoint/object/ResourceObject.html @@ -2,9 +2,9 @@ - + ResourceObject - + diff --git a/static/rule-java-docs/sailpoint/object/RoleAssignment.html b/static/rule-java-docs/sailpoint/object/RoleAssignment.html index f8fe53f76..7c1b533c4 100644 --- a/static/rule-java-docs/sailpoint/object/RoleAssignment.html +++ b/static/rule-java-docs/sailpoint/object/RoleAssignment.html @@ -2,9 +2,9 @@ - + RoleAssignment - + diff --git a/static/rule-java-docs/sailpoint/object/Schema.html b/static/rule-java-docs/sailpoint/object/Schema.html index cb12eae43..e99e89df3 100644 --- a/static/rule-java-docs/sailpoint/object/Schema.html +++ b/static/rule-java-docs/sailpoint/object/Schema.html @@ -2,9 +2,9 @@ - + Schema - + diff --git a/static/rule-java-docs/sailpoint/object/package-frame.html b/static/rule-java-docs/sailpoint/object/package-frame.html index 12a1d0319..b84e94549 100644 --- a/static/rule-java-docs/sailpoint/object/package-frame.html +++ b/static/rule-java-docs/sailpoint/object/package-frame.html @@ -2,9 +2,9 @@ - + sailpoint.object - + diff --git a/static/rule-java-docs/sailpoint/object/package-summary.html b/static/rule-java-docs/sailpoint/object/package-summary.html index 4aad78f52..63a1c29a6 100644 --- a/static/rule-java-docs/sailpoint/object/package-summary.html +++ b/static/rule-java-docs/sailpoint/object/package-summary.html @@ -2,9 +2,9 @@ - + sailpoint.object - + diff --git a/static/rule-java-docs/sailpoint/object/package-tree.html b/static/rule-java-docs/sailpoint/object/package-tree.html index 1a8d7a5ae..39b8ef75c 100644 --- a/static/rule-java-docs/sailpoint/object/package-tree.html +++ b/static/rule-java-docs/sailpoint/object/package-tree.html @@ -2,9 +2,9 @@ - + sailpoint.object Class Hierarchy - + @@ -160,13 +160,13 @@
  • java.lang.Enum<E> (implements java.lang.Comparable<T>, java.io.Serializable)
  • diff --git a/static/rule-java-docs/sailpoint/rule/Account.html b/static/rule-java-docs/sailpoint/rule/Account.html index 15fe94fea..511f7a4c8 100644 --- a/static/rule-java-docs/sailpoint/rule/Account.html +++ b/static/rule-java-docs/sailpoint/rule/Account.html @@ -2,9 +2,9 @@ - + Account - + diff --git a/static/rule-java-docs/sailpoint/rule/Identity.html b/static/rule-java-docs/sailpoint/rule/Identity.html index 03c313274..7391e16e3 100644 --- a/static/rule-java-docs/sailpoint/rule/Identity.html +++ b/static/rule-java-docs/sailpoint/rule/Identity.html @@ -2,9 +2,9 @@ - + Identity - + diff --git a/static/rule-java-docs/sailpoint/rule/ManagedAttributeDetails.html b/static/rule-java-docs/sailpoint/rule/ManagedAttributeDetails.html index 4431d0009..f22061503 100644 --- a/static/rule-java-docs/sailpoint/rule/ManagedAttributeDetails.html +++ b/static/rule-java-docs/sailpoint/rule/ManagedAttributeDetails.html @@ -2,9 +2,9 @@ - + ManagedAttributeDetails - + diff --git a/static/rule-java-docs/sailpoint/rule/package-frame.html b/static/rule-java-docs/sailpoint/rule/package-frame.html index 1069c23b1..1a3d1a4f9 100644 --- a/static/rule-java-docs/sailpoint/rule/package-frame.html +++ b/static/rule-java-docs/sailpoint/rule/package-frame.html @@ -2,9 +2,9 @@ - + sailpoint.rule - + diff --git a/static/rule-java-docs/sailpoint/rule/package-summary.html b/static/rule-java-docs/sailpoint/rule/package-summary.html index 1ffcd7029..3f4ed474c 100644 --- a/static/rule-java-docs/sailpoint/rule/package-summary.html +++ b/static/rule-java-docs/sailpoint/rule/package-summary.html @@ -2,9 +2,9 @@ - + sailpoint.rule - + diff --git a/static/rule-java-docs/sailpoint/rule/package-tree.html b/static/rule-java-docs/sailpoint/rule/package-tree.html index d5a81d794..1f9dd9f0e 100644 --- a/static/rule-java-docs/sailpoint/rule/package-tree.html +++ b/static/rule-java-docs/sailpoint/rule/package-tree.html @@ -2,9 +2,9 @@ - + sailpoint.rule Class Hierarchy - + diff --git a/static/rule-java-docs/sailpoint/server/IdnRuleUtil.html b/static/rule-java-docs/sailpoint/server/IdnRuleUtil.html index 5e476f7a4..98d5800ee 100644 --- a/static/rule-java-docs/sailpoint/server/IdnRuleUtil.html +++ b/static/rule-java-docs/sailpoint/server/IdnRuleUtil.html @@ -2,9 +2,9 @@ - + IdnRuleUtil - + diff --git a/static/rule-java-docs/sailpoint/server/package-frame.html b/static/rule-java-docs/sailpoint/server/package-frame.html index 078212897..6fc03463c 100644 --- a/static/rule-java-docs/sailpoint/server/package-frame.html +++ b/static/rule-java-docs/sailpoint/server/package-frame.html @@ -2,9 +2,9 @@ - + sailpoint.server - + diff --git a/static/rule-java-docs/sailpoint/server/package-summary.html b/static/rule-java-docs/sailpoint/server/package-summary.html index d65e1a01a..794fbedfb 100644 --- a/static/rule-java-docs/sailpoint/server/package-summary.html +++ b/static/rule-java-docs/sailpoint/server/package-summary.html @@ -2,9 +2,9 @@ - + sailpoint.server - + diff --git a/static/rule-java-docs/sailpoint/server/package-tree.html b/static/rule-java-docs/sailpoint/server/package-tree.html index 4918d9618..17bd839f4 100644 --- a/static/rule-java-docs/sailpoint/server/package-tree.html +++ b/static/rule-java-docs/sailpoint/server/package-tree.html @@ -2,9 +2,9 @@ - + sailpoint.server Class Hierarchy - + diff --git a/static/rule-java-docs/sailpoint/tools/Message.Type.html b/static/rule-java-docs/sailpoint/tools/Message.Type.html index 0837cb9ce..784ba90c9 100644 --- a/static/rule-java-docs/sailpoint/tools/Message.Type.html +++ b/static/rule-java-docs/sailpoint/tools/Message.Type.html @@ -2,9 +2,9 @@ - + Message.Type - + diff --git a/static/rule-java-docs/sailpoint/tools/Message.html b/static/rule-java-docs/sailpoint/tools/Message.html index d080591a2..6300d4aee 100644 --- a/static/rule-java-docs/sailpoint/tools/Message.html +++ b/static/rule-java-docs/sailpoint/tools/Message.html @@ -2,9 +2,9 @@ - + Message - + diff --git a/static/rule-java-docs/sailpoint/tools/package-frame.html b/static/rule-java-docs/sailpoint/tools/package-frame.html index fe37ad8d1..6b208902f 100644 --- a/static/rule-java-docs/sailpoint/tools/package-frame.html +++ b/static/rule-java-docs/sailpoint/tools/package-frame.html @@ -2,9 +2,9 @@ - + sailpoint.tools - + diff --git a/static/rule-java-docs/sailpoint/tools/package-summary.html b/static/rule-java-docs/sailpoint/tools/package-summary.html index 498152e89..75c86c424 100644 --- a/static/rule-java-docs/sailpoint/tools/package-summary.html +++ b/static/rule-java-docs/sailpoint/tools/package-summary.html @@ -2,9 +2,9 @@ - + sailpoint.tools - + diff --git a/static/rule-java-docs/sailpoint/tools/package-tree.html b/static/rule-java-docs/sailpoint/tools/package-tree.html index 2ee0a4293..49e0eb8d0 100644 --- a/static/rule-java-docs/sailpoint/tools/package-tree.html +++ b/static/rule-java-docs/sailpoint/tools/package-tree.html @@ -2,9 +2,9 @@ - + sailpoint.tools Class Hierarchy - + diff --git a/static/rule-java-docs/serialized-form.html b/static/rule-java-docs/serialized-form.html index a7250878e..9f654a81e 100644 --- a/static/rule-java-docs/serialized-form.html +++ b/static/rule-java-docs/serialized-form.html @@ -2,9 +2,9 @@ - + Serialized Form - + From 3f04988899f5f4db5279e18d67de6036592a43af Mon Sep 17 00:00:00 2001 From: christina-gagnon-sp <97126282+christina-gagnon-sp@users.noreply.github.com> Date: Mon, 24 Jun 2024 17:46:41 -0500 Subject: [PATCH 37/74] Trying to publish again --- .../event-triggers/available/access-request-decision.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/extensibility/event-triggers/available/access-request-decision.md b/docs/extensibility/event-triggers/available/access-request-decision.md index fa9acc3bb..45aa95877 100644 --- a/docs/extensibility/event-triggers/available/access-request-decision.md +++ b/docs/extensibility/event-triggers/available/access-request-decision.md @@ -79,7 +79,7 @@ This is an example input from this trigger: ``` :::info -```clientMetadata``` is determined by the user that invoked ```create-access-request``` and can contain any value at runtime that was specified in the access request. +```clientMetadata``` is determined by the user that invoked ```create-access-request``` and can contain any value at runtime that was specified in the access request. ::: From 2845b0d0491a959392ed282298e75193d4b50dd5 Mon Sep 17 00:00:00 2001 From: christina-gagnon-sp <97126282+christina-gagnon-sp@users.noreply.github.com> Date: Mon, 24 Jun 2024 18:27:25 -0500 Subject: [PATCH 38/74] Added newline to operator examples --- docs/api/standard-collection-parameters.md | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/docs/api/standard-collection-parameters.md b/docs/api/standard-collection-parameters.md index 20eb3b267..46675f9c7 100644 --- a/docs/api/standard-collection-parameters.md +++ b/docs/api/standard-collection-parameters.md @@ -108,11 +108,11 @@ These filter operators apply directly to fields and their values: | `ca` | True if the collection-valued field contains all the listed values. | groups ca ("Venezia","Firenze") | | `co` | True if the value of the field contains the specified value as a substring.(Applicable to string-valued fields only.) | name co "Rajesh" | | `eq` | True if the value of the field indicated by the first operand is equal to the value specified by the second operand. | identitySummary.id eq "2c9180846e85e4b8016eafeba20c1314" | -| `ge` | True if the value of the field indicated by the first operand is greater or equal to the value specified by the second operand. | daysUntilEscalation ge 7 name ge "Genaro" | -| `gt` | True if the value of the field indicated by the first operand is greater than the value specified by the second operand. | daysUntilEscalation gt 7 name gt "Genaro" created gt 2018-12-18T23:05:55Z | +| `ge` | True if the value of the field indicated by the first operand is greater or equal to the value specified by the second operand. | daysUntilEscalation ge 7



    name ge "Genaro" | +| `gt` | True if the value of the field indicated by the first operand is greater than the value specified by the second operand. | daysUntilEscalation gt 7



    name gt "Genaro"



    created gt 2018-12-18T23:05:55Z | | `in` | True if the field value is in the list of values. | accountActivityItemId in ("2c9180846b0a0583016b299f210c1314","2c9180846b0a0581016b299e82560c1314") | -| `le` | True if the value of the field indicated by the first operand is less or equal to the value specified by the second operand. | daysUntilEscalation le 7 name le "Genaro" | -| `lt` | True if the value of the field indicated by the first operand is less than the value specified by the second operand. | daysUntilEscalation lt 7 name lt "Genaro" created lt 2018-12-18T23:05:55Z | +| `le` | True if the value of the field indicated by the first operand is less or equal to the value specified by the second operand. | daysUntilEscalation le 7



    name le "Genaro" | +| `lt` | True if the value of the field indicated by the first operand is less than the value specified by the second operand. | daysUntilEscalation lt 7



    name lt "Genaro"



    created lt 2018-12-18T23:05:55Z | | `ne` | True if the value of the field indicated by the first operand is not equal to the value specified by the second operand. | type ne "ROLE" | | `pr` | True if the field is present, that is, not null. | pr accountRequestInfo | | `isnull` | True if the field is null. | lastUsed isnull | From 682603dd42ce95372ca7a9cc8c8cadc9ffe7c24d Mon Sep 17 00:00:00 2001 From: GitHub Action Bot Date: Tue, 25 Jun 2024 19:38:49 +0000 Subject: [PATCH 39/74] Automated commit by github action: 9668578378 --- .../idn/beta/paths/auth-profiles.yaml | 4 +- .../beta/paths/form-definitions-export.yaml | 4 +- .../beta/paths/form-definitions-import.yaml | 5 +- .../idn/beta/paths/form-definitions.yaml | 43 +------ .../idn/beta/paths/form-instances.yaml | 4 +- .../idn/beta/paths/password-policies.yaml | 8 +- .../idn/beta/paths/password-policy.yaml | 4 +- .../idn/beta/paths/role-mining-sessions.yaml | 2 +- .../idn/beta/paths/work-items-count.yaml | 6 +- .../idn/beta/paths/work-items-summary.yaml | 6 +- .../api-specs/idn/beta/schemas/Account.yaml | 109 ++++++++++++++++-- .../idn/beta/schemas/ApprovalItemDetails.yaml | 5 +- .../api-specs/idn/beta/schemas/Children.yaml | 13 +++ .../beta/schemas/CommonAccessResponse.yaml | 5 +- .../beta/schemas/CompleteInvocationInput.yaml | 3 +- .../idn/beta/schemas/CompletedApproval.yaml | 23 +++- .../idn/beta/schemas/EmailStatusDto.yaml | 4 + .../idn/beta/schemas/Expression.yaml | 6 +- .../idn/beta/schemas/FormDetails.yaml | 7 +- .../beta/schemas/GetOAuthClientResponse.yaml | 8 +- .../idn/beta/schemas/IdentityListItem.yaml | 4 +- .../idn/beta/schemas/InvocationStatus.yaml | 8 +- .../idn/beta/schemas/LocalizedMessage.yaml | 3 +- .../schemas/ManagerCorrelationMapping.yaml | 4 +- .../idn/beta/schemas/PasswordPolicyV3Dto.yaml | 12 +- .../idn/beta/schemas/RoleInsight.yaml | 9 +- .../idn/beta/schemas/RoleInsightsInsight.yaml | 5 +- .../beta/schemas/RoleMiningPotentialRole.yaml | 25 +++- .../RoleMiningPotentialRoleSummary.yaml | 20 +++- .../RoleMiningSessionDraftRoleDto.yaml | 22 +++- .../beta/schemas/RoleMiningSessionDto.yaml | 31 ++--- .../schemas/RoleMiningSessionResponse.yaml | 48 +++++++- .../SodViolationContextCheckCompleted.yaml | 1 + static/api-specs/idn/beta/schemas/Source.yaml | 3 +- .../idn/beta/schemas/SpConfigObject.yaml | 8 ++ .../idn/beta/schemas/Subscription.yaml | 5 +- static/api-specs/idn/beta/schemas/Target.yaml | 20 ++++ .../beta/schemas/TaskDefinitionSummary.yaml | 13 ++- .../idn/beta/schemas/TaskStatus.yaml | 22 +++- .../idn/beta/schemas/TaskStatusMessage.yaml | 3 +- .../idn/beta/schemas/TemplateDto.yaml | 6 + .../idn/beta/schemas/TemplateDtoDefault.yaml | 5 +- .../idn/beta/schemas/TemplateSlack.yaml | 63 ++++++++++ .../idn/beta/schemas/TemplateTeams.yaml | 64 ++++++++++ .../api-specs/idn/beta/schemas/Transform.yaml | 2 +- .../idn/beta/schemas/V3ConnectorDto.yaml | 5 + static/api-specs/idn/beta/schemas/Value.yaml | 4 +- .../idn/beta/schemas/VisibilityCriteria.yaml | 3 +- .../api-specs/idn/beta/schemas/WorkItems.yaml | 21 +++- .../api-specs/idn/beta/schemas/Workflow.yaml | 7 ++ .../idn/beta/schemas/WorkflowBody.yaml | 2 + .../beta/schemas/WorkflowLibraryAction.yaml | 20 +++- .../schemas/WorkflowLibraryFormFields.yaml | 10 +- .../beta/schemas/WorkflowLibraryOperator.yaml | 12 ++ .../beta/schemas/WorkflowLibraryTrigger.yaml | 13 ++- .../idn/beta/schemas/WorkflowModifiedBy.yaml | 15 +++ .../idn/beta/schemas/WorkflowTrigger.yaml | 5 +- .../FormDefinitionSelfImportExportDto.yaml | 17 +++ .../idn/beta/schemas/forms/FormElement.yaml | 15 ++- .../forms/FormElementValidationsSet.yaml | 16 +++ .../schemas/forms/FormInstanceResponse.yaml | 7 +- .../idn/beta/schemas/forms/FormOwner.yaml | 6 +- .../idn/beta/schemas/forms/FormUsedBy.yaml | 8 +- .../ListFormDefinitionsByTenantResponse.yaml | 5 +- .../trigger-attributes/EventAttributes.yaml | 6 +- .../ExternalAttributes.yaml | 15 ++- .../ScheduledAttributes.yaml | 34 +++++- .../beta/schemas/workgroups/WorkgroupDto.yaml | 8 ++ .../AccountActivityApprovalStatus.yaml | 12 ++ .../idn/v3/schemas/AccountActivityItem.yaml | 4 +- .../idn/v3/schemas/PasswordPolicyV3Dto.yaml | 12 +- .../idn/v3/schemas/RequestedItemStatus.yaml | 25 ++-- .../idn/v3/schemas/WorkItemState.yaml | 15 +-- .../idn/v3/schemas/WorkItemType.yaml | 32 ++--- .../api-specs/idn/v3/schemas/access/Role.yaml | 11 +- .../IdentityAttribute.yaml | 12 +- .../idn/v3/schemas/workflows/Workflow.yaml | 5 + .../v3/schemas/workflows/WorkflowBody.yaml | 3 +- .../workflows/WorkflowLibraryAction.yaml | 10 +- .../schemas/workflows/WorkflowModifiedBy.yaml | 15 +++ .../v3/schemas/workflows/WorkflowTrigger.yaml | 3 + 81 files changed, 859 insertions(+), 229 deletions(-) create mode 100644 static/api-specs/idn/beta/schemas/Children.yaml create mode 100644 static/api-specs/idn/beta/schemas/Target.yaml create mode 100644 static/api-specs/idn/beta/schemas/TemplateSlack.yaml create mode 100644 static/api-specs/idn/beta/schemas/TemplateTeams.yaml create mode 100644 static/api-specs/idn/beta/schemas/WorkflowModifiedBy.yaml create mode 100644 static/api-specs/idn/beta/schemas/forms/FormDefinitionSelfImportExportDto.yaml create mode 100644 static/api-specs/idn/v3/schemas/AccountActivityApprovalStatus.yaml create mode 100644 static/api-specs/idn/v3/schemas/workflows/WorkflowModifiedBy.yaml diff --git a/static/api-specs/idn/beta/paths/auth-profiles.yaml b/static/api-specs/idn/beta/paths/auth-profiles.yaml index fdb592bf8..31a46f613 100644 --- a/static/api-specs/idn/beta/paths/auth-profiles.yaml +++ b/static/api-specs/idn/beta/paths/auth-profiles.yaml @@ -13,7 +13,9 @@ get: content: application/json: schema: - $ref: '../schemas/AuthProfileSummary.yaml' + type: array + items: + $ref: '../schemas/AuthProfileSummary.yaml' '400': $ref: '../../v3/responses/400.yaml' '401': diff --git a/static/api-specs/idn/beta/paths/form-definitions-export.yaml b/static/api-specs/idn/beta/paths/form-definitions-export.yaml index 252b957ce..fbbb5b1d2 100644 --- a/static/api-specs/idn/beta/paths/form-definitions-export.yaml +++ b/static/api-specs/idn/beta/paths/form-definitions-export.yaml @@ -90,11 +90,9 @@ get: object: $ref: '../schemas/forms/FormDefinitionResponse.yaml' self: - type: string - x-go-name: Self + $ref: '../schemas/forms/FormDefinitionSelfImportExportDto.yaml' version: type: integer - format: int8 x-go-name: Version "400": description: An error with the request occurred diff --git a/static/api-specs/idn/beta/paths/form-definitions-import.yaml b/static/api-specs/idn/beta/paths/form-definitions-import.yaml index c6cae2b69..9ddda1245 100644 --- a/static/api-specs/idn/beta/paths/form-definitions-import.yaml +++ b/static/api-specs/idn/beta/paths/form-definitions-import.yaml @@ -19,7 +19,6 @@ post: x-go-name: Self version: type: integer - format: int8 x-go-name: Version example: [ { @@ -142,11 +141,9 @@ post: object: $ref: '../schemas/forms/FormDefinitionResponse.yaml' self: - type: string - x-go-name: Self + $ref: '../schemas/forms/FormDefinitionSelfImportExportDto.yaml' version: type: integer - format: int8 x-go-name: Version x-go-name: ImportedObjects infos: diff --git a/static/api-specs/idn/beta/paths/form-definitions.yaml b/static/api-specs/idn/beta/paths/form-definitions.yaml index 51e08618b..3fe42c06c 100644 --- a/static/api-specs/idn/beta/paths/form-definitions.yaml +++ b/static/api-specs/idn/beta/paths/form-definitions.yaml @@ -16,10 +16,8 @@ get: type: integer format: int64 default: 0 - x-go-name: Offset example: 250 required: false - x-go-name: Offset - name: limit in: query description: |- @@ -33,10 +31,8 @@ get: maxLength: 250 minLength: 0 default: 250 - x-go-name: Limit example: 250 required: false - x-go-name: Limit - name: filters in: query description: >- @@ -58,10 +54,8 @@ get: **modified**: *eq, gt, sw, in* schema: type: string - x-go-name: Filters example: name sw "my form" required: false - x-go-name: Filters - name: sorters in: query description: >- @@ -72,10 +66,8 @@ get: schema: type: string default: name - x-go-name: Sorters example: name required: false - x-go-name: Sorters responses: "200": description: Returns a list of form definitions by tenant @@ -92,19 +84,15 @@ get: properties: detailCode: type: string - x-go-name: DetailCode messages: type: array items: $ref: '../schemas/forms/ErrorMessage.yaml' - x-go-name: Messages statusCode: type: integer format: int64 - x-go-name: StatusCode trackingId: type: string - x-go-name: TrackingID "401": description: An error with the authorization occurred content: @@ -114,19 +102,15 @@ get: properties: detailCode: type: string - x-go-name: DetailCode messages: type: array items: $ref: '../schemas/forms/ErrorMessage.yaml' - x-go-name: Messages statusCode: type: integer format: int64 - x-go-name: StatusCode trackingId: type: string - x-go-name: TrackingID "403": description: An error with the user permissions occurred content: @@ -136,19 +120,15 @@ get: properties: detailCode: type: string - x-go-name: DetailCode messages: type: array items: $ref: '../schemas/forms/ErrorMessage.yaml' - x-go-name: Messages statusCode: type: integer format: int64 - x-go-name: StatusCode trackingId: type: string - x-go-name: TrackingID "429": description: Too many requests content: @@ -164,19 +144,15 @@ get: properties: detailCode: type: string - x-go-name: DetailCode messages: type: array items: $ref: '../schemas/forms/ErrorMessage.yaml' - x-go-name: Messages statusCode: type: integer format: int64 - x-go-name: StatusCode trackingId: type: string - x-go-name: TrackingID security: - UserContextAuth: - sp:forms:manage @@ -216,19 +192,15 @@ post: properties: detailCode: type: string - x-go-name: DetailCode messages: type: array items: $ref: '../schemas/forms/ErrorMessage.yaml' - x-go-name: Messages statusCode: type: integer format: int64 - x-go-name: StatusCode trackingId: type: string - x-go-name: TrackingID "401": description: An error with the authorization occurred content: @@ -238,19 +210,15 @@ post: properties: detailCode: type: string - x-go-name: DetailCode messages: type: array items: $ref: '../schemas/forms/ErrorMessage.yaml' - x-go-name: Messages statusCode: type: integer format: int64 - x-go-name: StatusCode trackingId: type: string - x-go-name: TrackingID "403": description: An error with the user permissions occurred content: @@ -260,19 +228,15 @@ post: properties: detailCode: type: string - x-go-name: DetailCode messages: type: array items: $ref: '../schemas/forms/ErrorMessage.yaml' - x-go-name: Messages statusCode: type: integer format: int64 - x-go-name: StatusCode trackingId: type: string - x-go-name: TrackingID "429": description: Too many requests content: @@ -288,20 +252,15 @@ post: properties: detailCode: type: string - x-go-name: DetailCode messages: type: array items: $ref: '../schemas/forms/ErrorMessage.yaml' - x-go-name: Messages statusCode: type: integer format: int64 - x-go-name: StatusCode trackingId: type: string - x-go-name: TrackingID security: - UserContextAuth: - - sp:forms:manage - x-codegen-request-body-name: Body \ No newline at end of file + - sp:forms:manage \ No newline at end of file diff --git a/static/api-specs/idn/beta/paths/form-instances.yaml b/static/api-specs/idn/beta/paths/form-instances.yaml index 52aeb732c..2078f831f 100644 --- a/static/api-specs/idn/beta/paths/form-instances.yaml +++ b/static/api-specs/idn/beta/paths/form-instances.yaml @@ -10,7 +10,9 @@ get: content: application/json: schema: - $ref: '../schemas/forms/ListFormInstancesByTenantResponse.yaml' + type: array + items: + $ref: '../schemas/forms/FormInstanceResponse.yaml' "400": description: An error with the request occurred content: diff --git a/static/api-specs/idn/beta/paths/password-policies.yaml b/static/api-specs/idn/beta/paths/password-policies.yaml index 08de2b334..17258d92a 100644 --- a/static/api-specs/idn/beta/paths/password-policies.yaml +++ b/static/api-specs/idn/beta/paths/password-policies.yaml @@ -120,7 +120,9 @@ get: "useIdentityAttributes": false, "validateAgainstAccountId": true, "validateAgainstAccountName": true, - "sourceIds": ["2c91808382ffee0b01830de154f14034","2c91808582ffee0c01830de36511405f" ] + "sourceIds": ["2c91808382ffee0b01830de154f14034","2c91808582ffee0c01830de36511405f" ], + "created": null, + "modified": null }, { "description": null, @@ -151,7 +153,9 @@ get: "useIdentityAttributes": true, "validateAgainstAccountId": false, "validateAgainstAccountName": false, - "sourceIds": [ ] + "sourceIds": [ ], + "created": null, + "modified": null } ] '400': diff --git a/static/api-specs/idn/beta/paths/password-policy.yaml b/static/api-specs/idn/beta/paths/password-policy.yaml index c94138613..629ca9fe6 100644 --- a/static/api-specs/idn/beta/paths/password-policy.yaml +++ b/static/api-specs/idn/beta/paths/password-policy.yaml @@ -53,7 +53,9 @@ get: "useIdentityAttributes": false, "validateAgainstAccountId": true, "validateAgainstAccountName": true, - "sourceIds": ["2c91808382ffee0b01830de154f14034","2c91808582ffee0c01830de36511405f" ] + "sourceIds": ["2c91808382ffee0b01830de154f14034","2c91808582ffee0c01830de36511405f" ], + "created": null, + "modified": null } '400': $ref: '../../v3/responses/400.yaml' diff --git a/static/api-specs/idn/beta/paths/role-mining-sessions.yaml b/static/api-specs/idn/beta/paths/role-mining-sessions.yaml index dd5abf0be..419b99a35 100644 --- a/static/api-specs/idn/beta/paths/role-mining-sessions.yaml +++ b/static/api-specs/idn/beta/paths/role-mining-sessions.yaml @@ -76,7 +76,7 @@ get: schema: type: array items: - $ref: '../schemas/RoleMiningSessionDto.yaml' + $ref: '../schemas/RoleMiningSessionResponse.yaml' '400': $ref: '../../v3/responses/400.yaml' '401': diff --git a/static/api-specs/idn/beta/paths/work-items-count.yaml b/static/api-specs/idn/beta/paths/work-items-count.yaml index 6f3cae27b..7788c10fa 100644 --- a/static/api-specs/idn/beta/paths/work-items-count.yaml +++ b/static/api-specs/idn/beta/paths/work-items-count.yaml @@ -18,9 +18,9 @@ get: content: application/json: schema: - type: array - items: - $ref: '../schemas/WorkItemsCount.yaml' + # type: array + # items: + $ref: '../schemas/WorkItemsCount.yaml' '400': $ref: '../../v3/responses/400.yaml' '403': diff --git a/static/api-specs/idn/beta/paths/work-items-summary.yaml b/static/api-specs/idn/beta/paths/work-items-summary.yaml index 86aa54799..ebe61baa2 100644 --- a/static/api-specs/idn/beta/paths/work-items-summary.yaml +++ b/static/api-specs/idn/beta/paths/work-items-summary.yaml @@ -18,9 +18,9 @@ get: content: application/json: schema: - type: array - items: - $ref: '../schemas/WorkItemsSummary.yaml' + # type: array + # items: + $ref: '../schemas/WorkItemsSummary.yaml' '400': $ref: '../../v3/responses/400.yaml' '403': diff --git a/static/api-specs/idn/beta/schemas/Account.yaml b/static/api-specs/idn/beta/schemas/Account.yaml index dbc34544d..5de333220 100644 --- a/static/api-specs/idn/beta/schemas/Account.yaml +++ b/static/api-specs/idn/beta/schemas/Account.yaml @@ -26,6 +26,25 @@ allOf: type: string example: 2c9180835d2e5168015d32f890ca1581 description: The unique ID of the identity this account is correlated to + cloudLifecycleState: + type: string + nullable: true + example: active + description: The lifecycle state of the identity this account is correlated to + identityState: + type: string + nullable: true + example: ACTIVE + description: The identity state of the identity this account is correlated to + connectionType: + type: string + example: direct + description: The connection type of the source this account is from + type: + type: string + nullable: true + example: NON_HUMAN + description: The type of the account attributes: type: object nullable: true @@ -80,21 +99,91 @@ allOf: description: Indicates if the account has entitlements example: true identity: - $ref: './BaseReferenceDto.yaml' description: The identity this account is correlated to - example: - id: "2c918084660f45d6016617daa9210584" - type: "IDENTITY" - name: "Adam Kennedy" + type: object + properties: + type: + description: The type of object being referenced + type: string + enum: + - IDENTITY + example: IDENTITY + id: + type: string + description: ID of the identity + example: 2c918084660f45d6016617daa9210584 + name: + type: string + description: Human-readable display name of the identity + example: Adam Kennedy sourceOwner: - $ref: './BaseReferenceDto.yaml' description: The owner of the source this account belongs to - example: - id: "4c5c8534e99445de98eef6c75e25eb01" - type: "IDENTITY" - name: "SailPoint Support" + type: object + properties: + type: + description: The type of object being referenced + type: string + enum: + - IDENTITY + example: IDENTITY + id: + type: string + description: ID of the identity + example: 4c5c8534e99445de98eef6c75e25eb01 + name: + type: string + description: Human-readable display name of the identity + example: SailPoint Support features: type: string description: A string list containing the owning source's features example: 'ENABLE' nullable: true + origin: + type: string + nullable: true + enum: + - AGGREGATED + - PROVISIONED + - null + description: The origin of the account either aggregated or provisioned + example: AGGREGATED + ownerIdentity: + description: The identity who owns this account, typically used for non-human accounts + type: object + nullable: true + properties: + type: + description: The type of object being referenced + type: string + enum: + - IDENTITY + example: IDENTITY + id: + type: string + description: ID of the identity + example: 2c918084660f45d6016617daa9210584 + name: + type: string + description: Human-readable display name of the identity + example: Adam Kennedy + ownerGroup: + description: The governance group who owns this account, typically used for non-human accounts + type: object + nullable: true + properties: + type: + description: The type of object being referenced + type: string + enum: + - "GOVERNANCE_GROUP" + example: "GOVERNANCE_GROUP" + id: + type: string + description: ID of the governance group + example: 8d3e0094e99445de98eef6c75e25jc04 + name: + type: string + description: Human-readable display name of the governance group + example: "GovGroup AX17Z" + \ No newline at end of file diff --git a/static/api-specs/idn/beta/schemas/ApprovalItemDetails.yaml b/static/api-specs/idn/beta/schemas/ApprovalItemDetails.yaml index 01a91c14f..b97d96a3f 100644 --- a/static/api-specs/idn/beta/schemas/ApprovalItemDetails.yaml +++ b/static/api-specs/idn/beta/schemas/ApprovalItemDetails.yaml @@ -6,6 +6,7 @@ properties: example: 2c9180835d2e5168015d32f890ca1581 account: type: string + nullable: true description: The account referenced by the approval item example: john.smith application: @@ -14,6 +15,7 @@ properties: example: Active Directory name: type: string + nullable: true description: The attribute's name example: emailAddress operation: @@ -22,7 +24,8 @@ properties: example: update value: type: string + nullable: true description: The attribute's value example: a@b.com state: - $ref: '../../v3/schemas/WorkItemState.yaml' + $ref: '../../v3/schemas/WorkItemState.yaml' \ No newline at end of file diff --git a/static/api-specs/idn/beta/schemas/Children.yaml b/static/api-specs/idn/beta/schemas/Children.yaml new file mode 100644 index 000000000..d020cf276 --- /dev/null +++ b/static/api-specs/idn/beta/schemas/Children.yaml @@ -0,0 +1,13 @@ +type: object +properties: + operator: + type: string + example: EQUALS + attribute: + type: string + example: country + value: + $ref: './Value.yaml' + children: + type: string + nullable: true \ No newline at end of file diff --git a/static/api-specs/idn/beta/schemas/CommonAccessResponse.yaml b/static/api-specs/idn/beta/schemas/CommonAccessResponse.yaml index 561351068..53a105f58 100644 --- a/static/api-specs/idn/beta/schemas/CommonAccessResponse.yaml +++ b/static/api-specs/idn/beta/schemas/CommonAccessResponse.yaml @@ -10,6 +10,9 @@ properties: status: type: string description: CONFIRMED or DENIED + commonAccessType: + type: string + example: UNSET lastUpdated: type: string readOnly: true @@ -25,4 +28,4 @@ properties: createdByUser: type: boolean default: false - example: false + example: false \ No newline at end of file diff --git a/static/api-specs/idn/beta/schemas/CompleteInvocationInput.yaml b/static/api-specs/idn/beta/schemas/CompleteInvocationInput.yaml index 4f5009407..60db350c6 100644 --- a/static/api-specs/idn/beta/schemas/CompleteInvocationInput.yaml +++ b/static/api-specs/idn/beta/schemas/CompleteInvocationInput.yaml @@ -4,5 +4,6 @@ properties: $ref: './LocalizedMessage.yaml' output: type: object + nullable: true example: {"approved": false} - description: Trigger output that completed the invocation. Its schema is defined in the trigger definition. + description: Trigger output that completed the invocation. Its schema is defined in the trigger definition. \ No newline at end of file diff --git a/static/api-specs/idn/beta/schemas/CompletedApproval.yaml b/static/api-specs/idn/beta/schemas/CompletedApproval.yaml index f6c54eb8e..f02c8e306 100644 --- a/static/api-specs/idn/beta/schemas/CompletedApproval.yaml +++ b/static/api-specs/idn/beta/schemas/CompletedApproval.yaml @@ -29,12 +29,23 @@ properties: requester: $ref: './AccessItemRequesterDto.yaml' requestedFor: - type: array - description: Identities access was requested for. - items: - $ref: './AccessItemRequestedForDto.yaml' - minItems: 1 - maxItems: 10 + type: object + description: Identity access was requested for. + properties: + type: + type: string + enum: + - IDENTITY + description: Type of the object to which this reference applies + example: IDENTITY + id: + type: string + description: ID of the object to which this reference applies + example: 2c9180835d191a86015d28455b4b232a + name: + type: string + description: Human-readable display name of the object to which this reference applies + example: William Wilson reviewedBy: type: object description: Identity who reviewed the access item request. diff --git a/static/api-specs/idn/beta/schemas/EmailStatusDto.yaml b/static/api-specs/idn/beta/schemas/EmailStatusDto.yaml index a3b1f5613..ecad0fb70 100644 --- a/static/api-specs/idn/beta/schemas/EmailStatusDto.yaml +++ b/static/api-specs/idn/beta/schemas/EmailStatusDto.yaml @@ -2,9 +2,13 @@ type: object properties: id: type: string + nullable: true email: type: string example: "sender@example.com" + isVerifiedByDomain: + type: boolean + example: false verificationStatus: type: string enum: diff --git a/static/api-specs/idn/beta/schemas/Expression.yaml b/static/api-specs/idn/beta/schemas/Expression.yaml index b04630a4e..ed66ac42e 100644 --- a/static/api-specs/idn/beta/schemas/Expression.yaml +++ b/static/api-specs/idn/beta/schemas/Expression.yaml @@ -9,13 +9,15 @@ properties: example: "EQUALS" attribute: type: string + nullable: true description: Name for the attribute example: "location" value: $ref: './Value.yaml' children: type: array + nullable: true description: List of expressions items: - $ref: './Value.yaml' - example: [] + $ref: './Children.yaml' + example: [] \ No newline at end of file diff --git a/static/api-specs/idn/beta/schemas/FormDetails.yaml b/static/api-specs/idn/beta/schemas/FormDetails.yaml index 8f9f45394..1133dc3b8 100644 --- a/static/api-specs/idn/beta/schemas/FormDetails.yaml +++ b/static/api-specs/idn/beta/schemas/FormDetails.yaml @@ -1,11 +1,14 @@ type: object +nullable: true properties: id: type: string + nullable: true description: ID of the form example: 2c9180835d2e5168015d32f890ca1581 name: type: string + nullable: true description: Name of the form example: AccountSelection Form title: @@ -21,4 +24,6 @@ properties: description: The name of the user that should be shown this form example: Jane.Doe sections: - $ref: './SectionDetails.yaml' + type: array + items: + $ref: './SectionDetails.yaml' \ No newline at end of file diff --git a/static/api-specs/idn/beta/schemas/GetOAuthClientResponse.yaml b/static/api-specs/idn/beta/schemas/GetOAuthClientResponse.yaml index 135d1963d..82ef6bade 100644 --- a/static/api-specs/idn/beta/schemas/GetOAuthClientResponse.yaml +++ b/static/api-specs/idn/beta/schemas/GetOAuthClientResponse.yaml @@ -80,6 +80,12 @@ properties: format: 'date-time' description: The date and time, down to the millisecond, when the API Client was last updated example: '2018-06-25T20:22:28.104Z' + secret: + type: string + nullable: true + metadata: + type: string + nullable: true lastUsed: type: string nullable: true @@ -112,4 +118,4 @@ required: - claimsSupported - created - modified - - scope + - scope \ No newline at end of file diff --git a/static/api-specs/idn/beta/schemas/IdentityListItem.yaml b/static/api-specs/idn/beta/schemas/IdentityListItem.yaml index 49f9ed586..09a992dd8 100644 --- a/static/api-specs/idn/beta/schemas/IdentityListItem.yaml +++ b/static/api-specs/idn/beta/schemas/IdentityListItem.yaml @@ -10,10 +10,12 @@ properties: example: 'Adam Zampa' firstName: type: string + nullable: true description: the first name of the identity example: 'Adam' lastName: type: string + nullable: true description: the last name of the identity example: 'Zampa' active: @@ -25,4 +27,4 @@ properties: type: string nullable: true description: the date when the identity was deleted - example: '2007-03-01T13:00:00.000Z' + example: '2007-03-01T13:00:00.000Z' \ No newline at end of file diff --git a/static/api-specs/idn/beta/schemas/InvocationStatus.yaml b/static/api-specs/idn/beta/schemas/InvocationStatus.yaml index 59a90d954..53560a3dc 100644 --- a/static/api-specs/idn/beta/schemas/InvocationStatus.yaml +++ b/static/api-specs/idn/beta/schemas/InvocationStatus.yaml @@ -15,7 +15,11 @@ properties: triggerId: type: string description: Trigger ID - example: "idn:access-requested" + example: "idn:access-request-post-approval" + subscriptionName: + type: string + description: Subscription name + example: "Access request subscription" subscriptionId: type: string description: Subscription ID @@ -37,4 +41,4 @@ properties: description: Data related to start of trigger invocation. completeInvocationInput: $ref: './CompleteInvocationInput.yaml' - description: Data related to end of trigger invocation. + description: Data related to end of trigger invocation. \ No newline at end of file diff --git a/static/api-specs/idn/beta/schemas/LocalizedMessage.yaml b/static/api-specs/idn/beta/schemas/LocalizedMessage.yaml index 97f271b6c..7845ed808 100644 --- a/static/api-specs/idn/beta/schemas/LocalizedMessage.yaml +++ b/static/api-specs/idn/beta/schemas/LocalizedMessage.yaml @@ -1,4 +1,5 @@ type: object +nullable: true description: Localized error message to indicate a failed invocation or error if any. required: - "locale" @@ -11,4 +12,4 @@ properties: message: description: Message text type: string - example: "Error has occurred!" + example: "Error has occurred!" \ No newline at end of file diff --git a/static/api-specs/idn/beta/schemas/ManagerCorrelationMapping.yaml b/static/api-specs/idn/beta/schemas/ManagerCorrelationMapping.yaml index 3c6a7807d..87a90a2de 100644 --- a/static/api-specs/idn/beta/schemas/ManagerCorrelationMapping.yaml +++ b/static/api-specs/idn/beta/schemas/ManagerCorrelationMapping.yaml @@ -1,4 +1,5 @@ type: object +nullable: true properties: accountAttributeName: type: string @@ -10,5 +11,4 @@ properties: type: string description: >- Name of the identity attribute to search when trying to find a manager using the value from the accountAttribute. - example: "manager" - + example: "manager" \ No newline at end of file diff --git a/static/api-specs/idn/beta/schemas/PasswordPolicyV3Dto.yaml b/static/api-specs/idn/beta/schemas/PasswordPolicyV3Dto.yaml index e42d6e104..64ea108e4 100644 --- a/static/api-specs/idn/beta/schemas/PasswordPolicyV3Dto.yaml +++ b/static/api-specs/idn/beta/schemas/PasswordPolicyV3Dto.yaml @@ -6,19 +6,21 @@ properties: example: 2c91808e7d976f3b017d9f5ceae440c8 description: type: string + nullable: true description: Description for current password policy. example: Information about the Password Policy name: type: string description: The name of the password policy. example: PasswordPolicy Example - dateCrated: + dateCreated: type: string format: 'date-time' description: Date the Password Policy was created. example: 1639056206564 lastUpdated: type: string + nullable: true format: 'date-time' description: Date the Password Policy was updated. example: 1939056206564 @@ -127,9 +129,15 @@ properties: type: boolean description: Defines whether this policy validate against account name or not. This field is false by default. example: true + created: + type: string + nullable: true + modified: + type: string + nullable: true sourceIds: type: array description: List of sources IDs managed by this password policy. items: type: string - example: ["2c91808382ffee0b01830de154f14034", "2f98808382ffee0b01830de154f12134"] + example: ["2c91808382ffee0b01830de154f14034", "2f98808382ffee0b01830de154f12134"] \ No newline at end of file diff --git a/static/api-specs/idn/beta/schemas/RoleInsight.yaml b/static/api-specs/idn/beta/schemas/RoleInsight.yaml index b6ef9525d..ca6724c8d 100644 --- a/static/api-specs/idn/beta/schemas/RoleInsight.yaml +++ b/static/api-specs/idn/beta/schemas/RoleInsight.yaml @@ -12,12 +12,15 @@ properties: type: string format: 'date-time' description: The date-time insights were last created for this role. + modifiedDate: + type: string + format: 'date-time' + nullable: true + description: The date-time insights were last modified for this role. example: '2020-05-19T13:49:37.385Z' role: $ref: './RoleInsightsRole.yaml' description: A role insight: $ref: './RoleInsightsInsight.yaml' - description: The kind of insight this is and some stats - - + description: The kind of insight this is and some stats \ No newline at end of file diff --git a/static/api-specs/idn/beta/schemas/RoleInsightsInsight.yaml b/static/api-specs/idn/beta/schemas/RoleInsightsInsight.yaml index b46f94f50..b4247f771 100644 --- a/static/api-specs/idn/beta/schemas/RoleInsightsInsight.yaml +++ b/static/api-specs/idn/beta/schemas/RoleInsightsInsight.yaml @@ -15,4 +15,7 @@ properties: totalNumberOfIdentities: type: integer description: The total number of identities. - example: 1000 \ No newline at end of file + example: 1000 + impactedIdentityNames: + type: string + nullable: true \ No newline at end of file diff --git a/static/api-specs/idn/beta/schemas/RoleMiningPotentialRole.yaml b/static/api-specs/idn/beta/schemas/RoleMiningPotentialRole.yaml index 349d689d0..ca9ee08bc 100644 --- a/static/api-specs/idn/beta/schemas/RoleMiningPotentialRole.yaml +++ b/static/api-specs/idn/beta/schemas/RoleMiningPotentialRole.yaml @@ -1,8 +1,10 @@ type: object properties: createdBy: - $ref: './iai/EntityCreatedByDTO.yaml' - description: The session created by details. + oneOf: + - $ref: './iai/EntityCreatedByDTO.yaml' + - $ref: './iai/NullableEntityCreatedByDTO.yaml' + description: The session created by details density: type: integer description: The density of a potential role. @@ -10,6 +12,7 @@ properties: format: int32 description: type: string + nullable: true description: The description of a potential role. example: "Potential Role for Accounting dept" entitlementCount: @@ -19,6 +22,7 @@ properties: format: int32 excludedEntitlements: description: The list of entitlement ids to be excluded. + nullable: true type: array items: type: string @@ -35,6 +39,7 @@ properties: format: int32 identityDistribution: description: Identity attribute distribution. + nullable: true type: array items: $ref: './RoleMiningIdentityDistribution.yaml' @@ -51,6 +56,7 @@ properties: provisionState: $ref: './RoleMiningPotentialRoleProvisionState.yaml' description: The provisioning state of a potential role. + nullable: true quality: type: integer description: The quality of a potential role. @@ -58,6 +64,7 @@ properties: format: int32 roleId: type: string + nullable: true description: The roleId of a potential role. example: "07a0b4e2-7a76-44fa-bd0b-c64654b66519" saved: @@ -69,4 +76,16 @@ properties: description: The session parameters of the potential role. type: $ref: './iai/RoleMiningRoleType.yaml' - description: Role mining potential type. \ No newline at end of file + description: Role mining potential type. + id: + type: string + description: Id of the potential role + example: "e0cc5d7d-bf7f-4f81-b2af-8885b09d9923" + createdDate: + type: string + format: 'date-time' + description: The date-time when this potential role was created. + modifiedDate: + type: string + format: 'date-time' + description: The date-time when this potential role was modified. \ No newline at end of file diff --git a/static/api-specs/idn/beta/schemas/RoleMiningPotentialRoleSummary.yaml b/static/api-specs/idn/beta/schemas/RoleMiningPotentialRoleSummary.yaml index 76cc919bb..33420bf68 100644 --- a/static/api-specs/idn/beta/schemas/RoleMiningPotentialRoleSummary.yaml +++ b/static/api-specs/idn/beta/schemas/RoleMiningPotentialRoleSummary.yaml @@ -52,6 +52,24 @@ properties: type: $ref: './iai/RoleMiningRoleType.yaml' description: Role mining potential type. + createdBy: + oneOf: + - $ref: './iai/EntityCreatedByDTO.yaml' + - $ref: './iai/NullableEntityCreatedByDTO.yaml' + description: The potential role created by details + createdDate: + type: string + format: 'date-time' + description: The date-time when this potential role was created. + saved: + type: boolean + description: The potential role's saved status + default: false + example: true + description: + type: string + nullable: true + description: Description of the potential role session: $ref: './RoleMiningSessionParametersDto.yaml' - description: The session parameters of the potential role. + description: The session parameters of the potential role. \ No newline at end of file diff --git a/static/api-specs/idn/beta/schemas/RoleMiningSessionDraftRoleDto.yaml b/static/api-specs/idn/beta/schemas/RoleMiningSessionDraftRoleDto.yaml index 6fd860ca7..6f9d6f025 100644 --- a/static/api-specs/idn/beta/schemas/RoleMiningSessionDraftRoleDto.yaml +++ b/static/api-specs/idn/beta/schemas/RoleMiningSessionDraftRoleDto.yaml @@ -1,5 +1,9 @@ type: object properties: + name: + type: string + description: Name of the draft role + example: "Saved RM Session - 07/10" description: type: string description: Draft role description @@ -27,11 +31,19 @@ properties: format: date-time description: Last modified date example: '2020-09-16T18:49:32.150Z' - name: - type: string - description: Name of the draft role - example: "Saved RM Session - 07/10" type: $ref: './iai/RoleMiningRoleType.yaml' description: Role mining session type - example: SPECIALIZED \ No newline at end of file + example: SPECIALIZED + id: + type: string + description: Id of the potential draft role + example: "e0cc5d7d-bf7f-4f81-b2af-8885b09d9923" + createdDate: + type: string + format: 'date-time' + description: The date-time when this potential draft role was created. + modifiedDate: + type: string + format: 'date-time' + description: The date-time when this potential draft role was modified. \ No newline at end of file diff --git a/static/api-specs/idn/beta/schemas/RoleMiningSessionDto.yaml b/static/api-specs/idn/beta/schemas/RoleMiningSessionDto.yaml index 850356218..785a7335e 100644 --- a/static/api-specs/idn/beta/schemas/RoleMiningSessionDto.yaml +++ b/static/api-specs/idn/beta/schemas/RoleMiningSessionDto.yaml @@ -6,22 +6,24 @@ properties: example: { identityIds: [], criteria: "source.name:DataScienceDataset", - attributeFilterCriteria: { - displayName: {untranslated: "Location: Miami"}, - ariaLabel: {untranslated: "Location: Miami"}, - data: { - displayName: {translateKey: "IDN.IDENTITY_ATTRIBUTES.LOCATION"}, - name: "location", - operator: "EQUALS", - values: ["Miami"] + attributeFilterCriteria: [ + { + displayName: {untranslated: "Location: Miami"}, + ariaLabel: {untranslated: "Location: Miami"}, + data: { + displayName: {translateKey: "IDN.IDENTITY_ATTRIBUTES.LOCATION"}, + name: "location", + operator: "EQUALS", + values: ["Miami"] + } } - } + ] } pruneThreshold: type: integer description: The prune threshold to be used or null to calculate prescribedPruneThreshold nullable: true - example: 5 + example: 50 format: int32 prescribedPruneThreshold: type: integer @@ -45,10 +47,6 @@ properties: description: Number of potential roles ready example: 0 format: int32 - status: - $ref: './RoleMiningSessionStatus.yaml' - description: The status of the role mining session - example: CREATED type: $ref: './iai/RoleMiningRoleType.yaml' description: Role mining session type @@ -58,11 +56,6 @@ properties: description: The id of the user who will receive an email about the role mining session nullable: true example: "2c918090761a5aac0176215c46a62d58" - createdBy: - oneOf: - - $ref: './iai/EntityCreatedByDTO.yaml' - - $ref: './iai/NullableEntityCreatedByDTO.yaml' - description: The session created by details identityCount: type: integer description: Number of identities in the population which meet the search criteria or identity list provided diff --git a/static/api-specs/idn/beta/schemas/RoleMiningSessionResponse.yaml b/static/api-specs/idn/beta/schemas/RoleMiningSessionResponse.yaml index 7b56cfcb0..443cf11e7 100644 --- a/static/api-specs/idn/beta/schemas/RoleMiningSessionResponse.yaml +++ b/static/api-specs/idn/beta/schemas/RoleMiningSessionResponse.yaml @@ -5,14 +5,22 @@ properties: description: The scope of identities for this role mining session minNumIdentitiesInPotentialRole: type: integer + nullable: true description: Minimum number of identities in a potential role example: 20 + scopingMethod: + type: string + description: The scoping method of the role mining session + nullable: true + example: "AUTO_RM" prescribedPruneThreshold: type: integer + nullable: true description: The computed (or prescribed) prune threshold for this session example: 83 pruneThreshold: type: integer + nullable: true description: The prune threshold to be used for this role mining session example: 70 potentialRoleCount: @@ -26,6 +34,33 @@ properties: status: $ref: './RoleMiningSessionStatus.yaml' description: The role mining session status + emailRecipientId: + type: string + description: The id of the user who will receive an email about the role mining session + nullable: true + createdBy: + oneOf: + - $ref: './iai/EntityCreatedByDTO.yaml' + - $ref: './iai/NullableEntityCreatedByDTO.yaml' + description: The session created by details + identityCount: + type: integer + description: The number of identities + example: 39 + saved: + type: boolean + description: The session's saved status + default: false + example: true + name: + type: string + description: The session's saved name + nullable: true + example: "Saved RM Session - 07/10" + dataFilePath: + type: string + description: The data file path of the role mining session + nullable: true id: type: string description: Session Id for this role mining session @@ -42,14 +77,21 @@ properties: $ref: './iai/RoleMiningRoleType.yaml' description: Role mining session type example: - scope: {identityIds: [], criteria: "source.name:DataScienceDataset"} + scope: {identityIds: [], criteria: "source.name:DataScienceDataset", "attributeFilterCriteria": null} + "scopingMethod": "AUTO_RM" minNumIdentitiesInPotentialRole: 20 pruneThreshold: 70 prescribedPruneThreshold: 83 potentialRoleCount: 8 potentialRolesReadyCount: 4 status: {state: "POTENTIAL_ROLES_PROCESSING"} + type: SPECIALIZED + "emailRecipientId": null + "createdBy": null + "identityCount": 0 + "saved": false + "name": null + "dataFilePath": null "id": "602ba738-cf48-499b-a780-7b67b3fc1ecf" "createdDate": "2021-09-08T16:11:05.348Z" - "modifiedDate": "2021-09-08T16:11:05.348Z" - type: SPECIALIZED + "modifiedDate": "2021-09-08T16:11:05.348Z" \ No newline at end of file diff --git a/static/api-specs/idn/beta/schemas/SodViolationContextCheckCompleted.yaml b/static/api-specs/idn/beta/schemas/SodViolationContextCheckCompleted.yaml index 869472c27..c478602ce 100644 --- a/static/api-specs/idn/beta/schemas/SodViolationContextCheckCompleted.yaml +++ b/static/api-specs/idn/beta/schemas/SodViolationContextCheckCompleted.yaml @@ -1,5 +1,6 @@ description: An object referencing a completed SOD violation check type: object +nullable: true properties: state: type: string diff --git a/static/api-specs/idn/beta/schemas/Source.yaml b/static/api-specs/idn/beta/schemas/Source.yaml index b2656ce53..57b46ff4f 100644 --- a/static/api-specs/idn/beta/schemas/Source.yaml +++ b/static/api-specs/idn/beta/schemas/Source.yaml @@ -263,6 +263,7 @@ properties: status: type: string enum: + - SOURCE_STATE_ERROR_ACCOUNT_FILE_IMPORT - SOURCE_STATE_ERROR_CLUSTER - SOURCE_STATE_ERROR_SOURCE - SOURCE_STATE_ERROR_VA @@ -323,4 +324,4 @@ properties: required: - name - owner - - connector + - connector \ No newline at end of file diff --git a/static/api-specs/idn/beta/schemas/SpConfigObject.yaml b/static/api-specs/idn/beta/schemas/SpConfigObject.yaml index 3d799e8b0..672bb9cac 100644 --- a/static/api-specs/idn/beta/schemas/SpConfigObject.yaml +++ b/static/api-specs/idn/beta/schemas/SpConfigObject.yaml @@ -57,3 +57,11 @@ properties: description: >- If true, this type of object will be JWS signed and cannot be modified before import. example: false + legacyObject: + type: boolean + default: false + example: false + onePerTenant: + type: boolean + default: false + example: false \ No newline at end of file diff --git a/static/api-specs/idn/beta/schemas/Subscription.yaml b/static/api-specs/idn/beta/schemas/Subscription.yaml index 7515cea28..dc79be0d4 100644 --- a/static/api-specs/idn/beta/schemas/Subscription.yaml +++ b/static/api-specs/idn/beta/schemas/Subscription.yaml @@ -6,7 +6,6 @@ required: - name - triggerName - enabled - - responseDeadline properties: id: type: string @@ -23,7 +22,7 @@ properties: triggerId: type: string description: ID of trigger subscribed to. - example: "idn:access-requested" + example: "idn:access-request-post-approval" triggerName: type: string description: Trigger name of trigger subscribed to. @@ -55,4 +54,4 @@ properties: example: '$[?($.identityId == "201327fda1c44704ac01181e963d463c")]' externalDocs: description: JSONPath filter documentation - url: https://developer.sailpoint.com/idn/docs/event-triggers/filtering-events + url: https://developer.sailpoint.com/idn/docs/event-triggers/filtering-events \ No newline at end of file diff --git a/static/api-specs/idn/beta/schemas/Target.yaml b/static/api-specs/idn/beta/schemas/Target.yaml new file mode 100644 index 000000000..82fc19d05 --- /dev/null +++ b/static/api-specs/idn/beta/schemas/Target.yaml @@ -0,0 +1,20 @@ +type: object +nullable: true +properties: + id: + description: Target ID + type: string + example: c6dc37bf508149b28ce5b7d90ca4bbf9 + type: + description: Target type + type: string + nullable: true + enum: + - APPLICATION + - IDENTITY + - null + example: APPLICATION + name: + description: Target name + type: string + example: Active Directory [source] \ No newline at end of file diff --git a/static/api-specs/idn/beta/schemas/TaskDefinitionSummary.yaml b/static/api-specs/idn/beta/schemas/TaskDefinitionSummary.yaml index 76b095e50..2da3bc9e6 100644 --- a/static/api-specs/idn/beta/schemas/TaskDefinitionSummary.yaml +++ b/static/api-specs/idn/beta/schemas/TaskDefinitionSummary.yaml @@ -11,24 +11,25 @@ properties: id: description: System-generated unique ID of the TaskDefinition type: string - example: id12345 + example: 2c91808475b4334b0175e1dff64b63c5 uniqueName: description: Name of the TaskDefinition type: string - example: Big Task + example: Cloud Account Aggregation description: description: Description of the TaskDefinition type: string - example: A Really Big Task + example: Aggregates from the specified application. parentName: description: Name of the parent of the TaskDefinition type: string - example: Parent Task + example: Cloud Account Aggregation executor: description: Executor of the TaskDefinition + nullable: true type: string - example: Big Task + example: sailpoint.task.ServiceTaskExecutor arguments: description: Formal parameters of the TaskDefinition, without values type: object - additionalProperties: true + additionalProperties: true \ No newline at end of file diff --git a/static/api-specs/idn/beta/schemas/TaskStatus.yaml b/static/api-specs/idn/beta/schemas/TaskStatus.yaml index 538797a85..71a0c384b 100644 --- a/static/api-specs/idn/beta/schemas/TaskStatus.yaml +++ b/static/api-specs/idn/beta/schemas/TaskStatus.yaml @@ -40,12 +40,15 @@ properties: example: A Really Big Task parentName: description: Name of the parent of the task this TaskStatus represents + nullable: true type: string example: Parent Task launcher: description: Service to execute the task this TaskStatus represents type: string example: sweep + target: + $ref: './Target.yaml' created: description: Creation date of the task this TaskStatus represents type: string @@ -58,24 +61,28 @@ properties: example: '2020-07-11T21:23:15.000Z' launched: description: Launch date of the task this TaskStatus represents + nullable: true type: string format: date-time example: '2020-07-11T21:23:15.000Z' completed: description: Completion date of the task this TaskStatus represents + nullable: true type: string format: date-time example: '2020-07-11T21:23:15.000Z' completionStatus: description: Completion status of the task this TaskStatus represents type: string + nullable: true enum: - - Success - - Warning - - Error - - Terminated - - TempError - example: Success + - SUCCESS + - WARNING + - ERROR + - TERMINATED + - TEMPERROR + - null + example: SUCCESS messages: description: Messages associated with the task this TaskStatus represents type: array @@ -93,9 +100,12 @@ properties: example: {"identityCount": 0} progress: description: Current progress of the task this TaskStatus represents + nullable: true type: string example: 'Started' percentComplete: description: Current percentage completion of the task this TaskStatus represents type: integer example: 100 + taskDefinitionSummary: + $ref: './TaskDefinitionSummary.yaml' \ No newline at end of file diff --git a/static/api-specs/idn/beta/schemas/TaskStatusMessage.yaml b/static/api-specs/idn/beta/schemas/TaskStatusMessage.yaml index b0e7a66db..ac74858b2 100644 --- a/static/api-specs/idn/beta/schemas/TaskStatusMessage.yaml +++ b/static/api-specs/idn/beta/schemas/TaskStatusMessage.yaml @@ -23,7 +23,8 @@ properties: example: akey parameters: description: Message parameters for internationalization + nullable: true type: array items: type: object - example: [{ "name": "value"}] + example: [{ "name": "value"}] \ No newline at end of file diff --git a/static/api-specs/idn/beta/schemas/TemplateDto.yaml b/static/api-specs/idn/beta/schemas/TemplateDto.yaml index f1ac47501..b4922e076 100644 --- a/static/api-specs/idn/beta/schemas/TemplateDto.yaml +++ b/static/api-specs/idn/beta/schemas/TemplateDto.yaml @@ -72,6 +72,12 @@ properties: description: The time when this template was last modified. This is auto-generated. example: "2020-01-01T00:00:00.000000Z" + slackTemplate: + type: string + nullable: true + teamsTemplate: + type: string + nullable: true required: - key - medium diff --git a/static/api-specs/idn/beta/schemas/TemplateDtoDefault.yaml b/static/api-specs/idn/beta/schemas/TemplateDtoDefault.yaml index 41ae8c205..80b715a49 100644 --- a/static/api-specs/idn/beta/schemas/TemplateDtoDefault.yaml +++ b/static/api-specs/idn/beta/schemas/TemplateDtoDefault.yaml @@ -61,4 +61,7 @@ properties: "Daily digest - sent if number of outstanding tasks for task owner > 0" description: The description of the default template nullable: true - + slackTemplate: + $ref: ../schemas/TemplateSlack.yaml + teamsTemplate: + $ref: ../schemas/TemplateTeams.yaml \ No newline at end of file diff --git a/static/api-specs/idn/beta/schemas/TemplateSlack.yaml b/static/api-specs/idn/beta/schemas/TemplateSlack.yaml new file mode 100644 index 000000000..347a9de6e --- /dev/null +++ b/static/api-specs/idn/beta/schemas/TemplateSlack.yaml @@ -0,0 +1,63 @@ +type: object +nullable: true +properties: + key: + type: string + nullable: true + text: + type: string + blocks: + type: string + nullable: true + attachments: + type: string + notificationType: + type: string + nullable: true + approvalId: + type: string + nullable: true + requestId: + type: string + nullable: true + requestedById: + type: string + nullable: true + isSubscription: + type: boolean + nullable: true + autoApprovalData: + type: object + nullable: true + properties: + isAutoApproved: + type: string + nullable: true + itemId: + type: string + nullable: true + itemType: + type: string + nullable: true + autoApprovalMessageJSON: + type: string + nullable: true + autoApprovalTitle: + type: string + nullable: true + customFields: + type: object + nullable: true + properties: + requestType: + type: string + nullable: true + containsDeny: + type: string + nullable: true + campaignId: + type: string + nullable: true + campaignStatus: + type: string + nullable: true \ No newline at end of file diff --git a/static/api-specs/idn/beta/schemas/TemplateTeams.yaml b/static/api-specs/idn/beta/schemas/TemplateTeams.yaml new file mode 100644 index 000000000..dad72479a --- /dev/null +++ b/static/api-specs/idn/beta/schemas/TemplateTeams.yaml @@ -0,0 +1,64 @@ +type: object +nullable: true +properties: + key: + type: string + nullable: true + title: + type: string + nullable: true + text: + type: string + messageJSON: + type: string + nullable: true + isSubscription: + type: boolean + nullable: true + approvalId: + type: string + nullable: true + requestId: + type: string + nullable: true + requestedById: + type: string + nullable: true + notificationType: + type: string + nullable: true + autoApprovalData: + type: object + nullable: true + properties: + isAutoApproved: + type: string + nullable: true + itemId: + type: string + nullable: true + itemType: + type: string + nullable: true + autoApprovalMessageJSON: + type: string + nullable: true + autoApprovalTitle: + type: string + nullable: true + customFields: + type: object + nullable: true + properties: + requestType: + type: string + nullable: true + containsDeny: + type: string + nullable: true + campaignId: + type: string + nullable: true + campaignStatus: + type: string + nullable: true \ No newline at end of file diff --git a/static/api-specs/idn/beta/schemas/Transform.yaml b/static/api-specs/idn/beta/schemas/Transform.yaml index 74cfb7fb6..e306172fd 100644 --- a/static/api-specs/idn/beta/schemas/Transform.yaml +++ b/static/api-specs/idn/beta/schemas/Transform.yaml @@ -92,4 +92,4 @@ properties: - $ref: '../../v3/schemas/transforms/Substring.yaml' - $ref: '../../v3/schemas/transforms/Trim.yaml' - $ref: '../../v3/schemas/transforms/Upper.yaml' - - $ref: '../../v3/schemas/transforms/UUIDGenerator.yaml' + - $ref: '../../v3/schemas/transforms/UUIDGenerator.yaml' \ No newline at end of file diff --git a/static/api-specs/idn/beta/schemas/V3ConnectorDto.yaml b/static/api-specs/idn/beta/schemas/V3ConnectorDto.yaml index adbd9114e..0bc3a360a 100644 --- a/static/api-specs/idn/beta/schemas/V3ConnectorDto.yaml +++ b/static/api-specs/idn/beta/schemas/V3ConnectorDto.yaml @@ -12,6 +12,11 @@ properties: type: string description: The connector script name example: "servicenow" + className: + type: string + description: The connector class name. + nullable: true + example: "sailpoint.connector.OpenConnectorAdapter" features: type: array description: The list of features supported by the connector diff --git a/static/api-specs/idn/beta/schemas/Value.yaml b/static/api-specs/idn/beta/schemas/Value.yaml index 514d0721c..91498aa51 100644 --- a/static/api-specs/idn/beta/schemas/Value.yaml +++ b/static/api-specs/idn/beta/schemas/Value.yaml @@ -1,10 +1,12 @@ type: object +nullable: true properties: type: type: string + nullable: true description: The type of attribute value example: "STRING" value: type: string description: The attribute value - example: "Austin" + example: "Austin" \ No newline at end of file diff --git a/static/api-specs/idn/beta/schemas/VisibilityCriteria.yaml b/static/api-specs/idn/beta/schemas/VisibilityCriteria.yaml index 583adcc0d..d4de745c6 100644 --- a/static/api-specs/idn/beta/schemas/VisibilityCriteria.yaml +++ b/static/api-specs/idn/beta/schemas/VisibilityCriteria.yaml @@ -1,4 +1,5 @@ type: object +nullable: true properties: expression: - $ref: './Expression.yaml' + $ref: './Expression.yaml' \ No newline at end of file diff --git a/static/api-specs/idn/beta/schemas/WorkItems.yaml b/static/api-specs/idn/beta/schemas/WorkItems.yaml index 3dd2c5a1b..3ef7703f2 100644 --- a/static/api-specs/idn/beta/schemas/WorkItems.yaml +++ b/static/api-specs/idn/beta/schemas/WorkItems.yaml @@ -6,14 +6,17 @@ properties: example: 2c9180835d2e5168015d32f890ca1581 requesterId: type: string + nullable: true description: ID of the requester example: 2c9180835d2e5168015d32f890ca1581 requesterDisplayName: type: string + nullable: true description: The displayname of the requester example: John Smith ownerId: type: string + nullable: true description: The ID of the owner example: 2c9180835d2e5168015d32f890ca1581 ownerName: @@ -26,6 +29,7 @@ properties: example: '2017-07-11T18:45:37.098Z' modified: type: string + nullable: true format: 'date-time' example: '2018-06-25T20:22:28.104Z' description: @@ -37,19 +41,28 @@ properties: type: $ref: '../../v3/schemas/WorkItemType.yaml' remediationItems: - $ref: './RemediationItemDetails.yaml' + nullable: true + type: array + items: + $ref: './RemediationItemDetails.yaml' approvalItems: - $ref: './ApprovalItemDetails.yaml' + nullable: true + type: array + items: + $ref: './ApprovalItemDetails.yaml' name: type: string + nullable: true description: The work item name example: Account Create completed: type: string + nullable: true format: 'date-time' example: '2018-10-19T13:49:37.385Z' numItems: type: integer + nullable: true description: The number of items in the work item example: 19 errors: @@ -57,5 +70,5 @@ properties: items: type: string example: ["The work item ID that was specified was not found."] - - + form: + $ref: './FormDetails.yaml' \ No newline at end of file diff --git a/static/api-specs/idn/beta/schemas/Workflow.yaml b/static/api-specs/idn/beta/schemas/Workflow.yaml index 5e0b01787..9a3cea2b0 100644 --- a/static/api-specs/idn/beta/schemas/Workflow.yaml +++ b/static/api-specs/idn/beta/schemas/Workflow.yaml @@ -5,6 +5,13 @@ allOf: type: string description: Workflow ID. This is a UUID generated upon creation. example: d201c5e9-d37b-4aff-af14-66414f39d569 + modified: + type: string + format: date-time + description: The date and time the workflow was modified. + example: 2023-12-05T15:18:27.699132301Z + modifiedBy: + $ref: './WorkflowModifiedBy.yaml' executionCount: type: integer format: int32 diff --git a/static/api-specs/idn/beta/schemas/WorkflowBody.yaml b/static/api-specs/idn/beta/schemas/WorkflowBody.yaml index 81205e635..517454f48 100644 --- a/static/api-specs/idn/beta/schemas/WorkflowBody.yaml +++ b/static/api-specs/idn/beta/schemas/WorkflowBody.yaml @@ -5,6 +5,7 @@ properties: description: The name of the workflow example: "Send Email" owner: + type: object description: The identity that owns the workflow. The owner's permissions in IDN will determine what actions the workflow is allowed to perform. Ownership can be changed by updating the owner in a PUT or PATCH request. properties: type: @@ -34,3 +35,4 @@ properties: example: false trigger: $ref: './WorkflowTrigger.yaml' + description: Workflow Trigger. \ No newline at end of file diff --git a/static/api-specs/idn/beta/schemas/WorkflowLibraryAction.yaml b/static/api-specs/idn/beta/schemas/WorkflowLibraryAction.yaml index 0664038e4..15625cbf9 100644 --- a/static/api-specs/idn/beta/schemas/WorkflowLibraryAction.yaml +++ b/static/api-specs/idn/beta/schemas/WorkflowLibraryAction.yaml @@ -18,10 +18,28 @@ properties: description: Action Description example: "Generates a certification campaign." formFields: + nullable: true type: array description: One or more inputs that the action accepts items: $ref: './WorkflowLibraryFormFields.yaml' + exampleOutput: + oneOf: + - type: object + description: Example output + - type: array + items: + type: object + deprecated: + type: boolean + deprecatedBy: + type: string + format: date-time + versionNumber: + type: integer + description: Version number + isSimulationEnabled: + type: boolean isDynamicSchema: type: boolean description: Determines whether the dynamic output schema is returned in place of the action's output schema. The dynamic schema lists non-static properties, like properties of a workflow form where each form has different fields. These will be provided dynamically based on available form fields. @@ -141,4 +159,4 @@ properties: }, "title": "sp:create-campaign", "type": "object" - } + } \ No newline at end of file diff --git a/static/api-specs/idn/beta/schemas/WorkflowLibraryFormFields.yaml b/static/api-specs/idn/beta/schemas/WorkflowLibraryFormFields.yaml index eda889dac..b04540ba1 100644 --- a/static/api-specs/idn/beta/schemas/WorkflowLibraryFormFields.yaml +++ b/static/api-specs/idn/beta/schemas/WorkflowLibraryFormFields.yaml @@ -1,5 +1,9 @@ type: object properties: + description: + type: string + description: Description of the form field + example: First value to compare helpText: type: string description: Describes the form field in the UI @@ -18,6 +22,7 @@ properties: example: false type: description: The type of the form field + type: string nullable: true enum: - text @@ -33,6 +38,7 @@ properties: - multiType - duration - toggle + - formPicker - identityPicker - governanceGroupPicker - string @@ -42,4 +48,6 @@ properties: - keyValuePairs - emailPicker - advancedToggle - example: text + - variableCreator + - htmlEditor + example: text \ No newline at end of file diff --git a/static/api-specs/idn/beta/schemas/WorkflowLibraryOperator.yaml b/static/api-specs/idn/beta/schemas/WorkflowLibraryOperator.yaml index 34bc08cb3..79250aab6 100644 --- a/static/api-specs/idn/beta/schemas/WorkflowLibraryOperator.yaml +++ b/static/api-specs/idn/beta/schemas/WorkflowLibraryOperator.yaml @@ -17,8 +17,20 @@ properties: type: string description: Description of the operator example: Compare two boolean values and decide what happens based on the result. + isDynamicSchema: + type: boolean + description: Determines whether the dynamic output schema is returned in place of the action's output schema. The dynamic schema lists non-static properties, like properties of a workflow form where each form has different fields. These will be provided dynamically based on available form fields. + example: false + deprecated: + type: boolean + deprecatedBy: + type: string + format: date-time + isSimulationEnabled: + type: boolean formFields: type: array + nullable: true description: One or more inputs that the operator accepts items: $ref: './WorkflowLibraryFormFields.yaml' diff --git a/static/api-specs/idn/beta/schemas/WorkflowLibraryTrigger.yaml b/static/api-specs/idn/beta/schemas/WorkflowLibraryTrigger.yaml index 02059b0f4..5d9b7069c 100644 --- a/static/api-specs/idn/beta/schemas/WorkflowLibraryTrigger.yaml +++ b/static/api-specs/idn/beta/schemas/WorkflowLibraryTrigger.yaml @@ -7,11 +7,22 @@ properties: example: "idn:identity-attributes-changed" type: description: Trigger type + type: string enum: - EVENT - SCHEDULED - EXTERNAL example: EVENT + deprecated: + type: boolean + deprecatedBy: + type: string + format: date-time + isSimulationEnabled: + type: boolean + outputSchema: + type: object + description: Example output schema name: type: string description: Trigger Name @@ -70,4 +81,4 @@ properties: description: One or more inputs that the trigger accepts example: [] items: - $ref: './WorkflowLibraryFormFields.yaml' + $ref: './WorkflowLibraryFormFields.yaml' \ No newline at end of file diff --git a/static/api-specs/idn/beta/schemas/WorkflowModifiedBy.yaml b/static/api-specs/idn/beta/schemas/WorkflowModifiedBy.yaml new file mode 100644 index 000000000..9bf06a123 --- /dev/null +++ b/static/api-specs/idn/beta/schemas/WorkflowModifiedBy.yaml @@ -0,0 +1,15 @@ +type: object +properties: + type: + type: string + enum: + - IDENTITY + example: IDENTITY + id: + type: string + description: Identity ID + example: 2c9180a46faadee4016fb4e018c20639 + name: + type: string + description: Human-readable display name of identity. + example: Thomas Edison diff --git a/static/api-specs/idn/beta/schemas/WorkflowTrigger.yaml b/static/api-specs/idn/beta/schemas/WorkflowTrigger.yaml index 5995eb656..228f385df 100644 --- a/static/api-specs/idn/beta/schemas/WorkflowTrigger.yaml +++ b/static/api-specs/idn/beta/schemas/WorkflowTrigger.yaml @@ -12,9 +12,12 @@ properties: - SCHEDULED example: EVENT description: The trigger type + displayName: + type: string + nullable: true attributes: oneOf: - $ref: './workflows/trigger-attributes/EventAttributes.yaml' - $ref: './workflows/trigger-attributes/ExternalAttributes.yaml' - $ref: './workflows/trigger-attributes/ScheduledAttributes.yaml' - description: Workflow Trigger Attributes. + description: Workflow Trigger Attributes. \ No newline at end of file diff --git a/static/api-specs/idn/beta/schemas/forms/FormDefinitionSelfImportExportDto.yaml b/static/api-specs/idn/beta/schemas/forms/FormDefinitionSelfImportExportDto.yaml new file mode 100644 index 000000000..c4434a272 --- /dev/null +++ b/static/api-specs/idn/beta/schemas/forms/FormDefinitionSelfImportExportDto.yaml @@ -0,0 +1,17 @@ +type: object +description: Self block for imported/exported object. +properties: + type: + type: string + description: Imported/exported object's DTO type. + enum: + - FORM_DEFINITION + example: FORM_DEFINITION + id: + type: string + description: Imported/exported object's ID. + example: 2c9180835d191a86015d28455b4b232a + name: + type: string + description: Imported/exported object's display name. + example: Temporary User Level Permissions - Requester \ No newline at end of file diff --git a/static/api-specs/idn/beta/schemas/forms/FormElement.yaml b/static/api-specs/idn/beta/schemas/forms/FormElement.yaml index c2f0dd48f..6e3aeb8a8 100644 --- a/static/api-specs/idn/beta/schemas/forms/FormElement.yaml +++ b/static/api-specs/idn/beta/schemas/forms/FormElement.yaml @@ -16,7 +16,9 @@ properties: SELECT FormElementTypeSelect DATE FormElementTypeDate SECTION FormElementTypeSection - COLUMNS FormElementTypeColumns + COLUMN_SET FormElementTypeColumns + IMAGE FormElementTypeImage + DESCRIPTION FormElementTypeDescription enum: - TEXT - TOGGLE @@ -27,7 +29,9 @@ properties: - SELECT - DATE - SECTION - - COLUMNS + - COLUMN_SET + - IMAGE + - DESCRIPTION example: TEXT type: string x-go-name: ElementType @@ -48,13 +52,16 @@ properties: SELECT FormElementTypeSelect DATE FormElementTypeDate SECTION FormElementTypeSection - COLUMNS FormElementTypeColumnsn + COLUMNS FormElementTypeColumns key: description: Technical key. example: department type: string x-go-name: Key validations: - $ref: './FormElementValidationsSet.yaml' + nullable: true + type: array + items: + $ref: './FormElementValidationsSet.yaml' type: object x-go-package: github.com/sailpoint/sp-forms/domain \ No newline at end of file diff --git a/static/api-specs/idn/beta/schemas/forms/FormElementValidationsSet.yaml b/static/api-specs/idn/beta/schemas/forms/FormElementValidationsSet.yaml index 5bdc8101c..a5a5f9d6d 100644 --- a/static/api-specs/idn/beta/schemas/forms/FormElementValidationsSet.yaml +++ b/static/api-specs/idn/beta/schemas/forms/FormElementValidationsSet.yaml @@ -1,4 +1,20 @@ description: Set of FormElementValidation items. example: [ { "validationType": "REQUIRED" } ] type: object +properties: + validationType: + type: string + enum: + - REQUIRED + - MIN_LENGTH + - MAX_LENGTH + - REGEX + - DATE + - MAX_DATE + - MIN_DATE + - LESS_THAN_DATE + - PHONE + - EMAIL + - DATA_SOURCE + - TEXTAREA x-go-package: github.com/sailpoint/sp-forms/domain \ No newline at end of file diff --git a/static/api-specs/idn/beta/schemas/forms/FormInstanceResponse.yaml b/static/api-specs/idn/beta/schemas/forms/FormInstanceResponse.yaml index d9871b39b..88072572b 100644 --- a/static/api-specs/idn/beta/schemas/forms/FormInstanceResponse.yaml +++ b/static/api-specs/idn/beta/schemas/forms/FormInstanceResponse.yaml @@ -27,7 +27,7 @@ properties: x-go-name: FormData formDefinitionId: description: FormDefinitionID is the id of the form definition that created this form - example: 00000000-0000-0000-0000-000000000000 + example: "49841cb8-00a5-4fbd-9888-8bbb28d48331" type: string x-go-name: FormDefinitionID formElements: @@ -44,14 +44,15 @@ properties: x-go-name: FormErrors formInput: additionalProperties: { } + nullable: true description: FormInput is an object of form input labels to value example: input1: Sales type: object x-go-name: FormInput id: - description: FormInstanceID is a unique guid identifying this form instance - example: 00000000-0000-0000-0000-000000000000 + description: Unique guid identifying this form instance + example: 06a2d961-07fa-44d1-8d0a-2f6470e30fd2 type: string x-go-name: FormInstanceID modified: diff --git a/static/api-specs/idn/beta/schemas/forms/FormOwner.yaml b/static/api-specs/idn/beta/schemas/forms/FormOwner.yaml index 13154a2e6..efd5b42c5 100644 --- a/static/api-specs/idn/beta/schemas/forms/FormOwner.yaml +++ b/static/api-specs/idn/beta/schemas/forms/FormOwner.yaml @@ -11,8 +11,12 @@ properties: x-go-name: Type id: description: Unique identifier of the form's owner. - example: 00000000-0000-0000-0000-000000000000 + example: 2c9180867624cbd7017642d8c8c81f67 type: string x-go-name: ID + name: + description: Name of the form's owner. + example: Grant Smith + type: string type: object x-go-package: github.com/sailpoint/sp-forms/domain \ No newline at end of file diff --git a/static/api-specs/idn/beta/schemas/forms/FormUsedBy.yaml b/static/api-specs/idn/beta/schemas/forms/FormUsedBy.yaml index 66ae7eb64..784b3111e 100644 --- a/static/api-specs/idn/beta/schemas/forms/FormUsedBy.yaml +++ b/static/api-specs/idn/beta/schemas/forms/FormUsedBy.yaml @@ -4,9 +4,11 @@ properties: FormUsedByType value. WORKFLOW FormUsedByTypeWorkflow SOURCE FormUsedByTypeSource + MySailPoint FormUsedByType enum: - WORKFLOW - SOURCE + - MySailPoint example: WORKFLOW type: string x-go-enum-desc: |- @@ -15,8 +17,12 @@ properties: x-go-name: Type id: description: Unique identifier of the system using the form. - example: 00000000-0000-0000-0000-000000000000 + example: "61940a92-5484-42bc-bc10-b9982b218cdf" type: string x-go-name: ID + name: + description: Name of the system using the form. + example: "Access Request Form" + type: string type: object x-go-package: github.com/sailpoint/sp-forms/domain \ No newline at end of file diff --git a/static/api-specs/idn/beta/schemas/forms/ListFormDefinitionsByTenantResponse.yaml b/static/api-specs/idn/beta/schemas/forms/ListFormDefinitionsByTenantResponse.yaml index 2141273c3..e5360d05b 100644 --- a/static/api-specs/idn/beta/schemas/forms/ListFormDefinitionsByTenantResponse.yaml +++ b/static/api-specs/idn/beta/schemas/forms/ListFormDefinitionsByTenantResponse.yaml @@ -4,12 +4,9 @@ properties: example: 1 format: int64 type: integer - x-go-name: Count results: description: List of FormDefinitionResponse items. items: $ref: './FormDefinitionResponse.yaml' type: array - x-go-name: Results -type: object -x-go-package: github.com/sailpoint/sp-forms/domain \ No newline at end of file +type: object \ No newline at end of file diff --git a/static/api-specs/idn/beta/schemas/workflows/trigger-attributes/EventAttributes.yaml b/static/api-specs/idn/beta/schemas/workflows/trigger-attributes/EventAttributes.yaml index 70c663712..c6ed51f36 100644 --- a/static/api-specs/idn/beta/schemas/workflows/trigger-attributes/EventAttributes.yaml +++ b/static/api-specs/idn/beta/schemas/workflows/trigger-attributes/EventAttributes.yaml @@ -1,6 +1,7 @@ title: Event Trigger Attributes type: object description: Attributes related to an IdentityNow ETS event +additionalProperties: false required: - id properties: @@ -8,7 +9,10 @@ properties: type: string description: The unique ID of the trigger example: "idn:identity-attributes-changed" - filter.$: + "filter.$": type: string description: JSON path expression that will limit which events the trigger will fire on example: "$.changes[?(@.attribute == 'manager')]" + description: + type: string + description: Description of the event trigger \ No newline at end of file diff --git a/static/api-specs/idn/beta/schemas/workflows/trigger-attributes/ExternalAttributes.yaml b/static/api-specs/idn/beta/schemas/workflows/trigger-attributes/ExternalAttributes.yaml index c66be6c7e..d083c5ad1 100644 --- a/static/api-specs/idn/beta/schemas/workflows/trigger-attributes/ExternalAttributes.yaml +++ b/static/api-specs/idn/beta/schemas/workflows/trigger-attributes/ExternalAttributes.yaml @@ -1,8 +1,7 @@ title: External Trigger Attributes type: object description: Attributes related to an external trigger -required: -- name +additionalProperties: false properties: name: type: string @@ -10,5 +9,13 @@ properties: example: "search-and-notify" description: type: string - description: Additonal context about the external trigger - example: Run a search and notify the results \ No newline at end of file + description: Additional context about the external trigger + example: Run a search and notify the results + clientId: + type: string + description: OAuth Client ID to authenticate with this trigger + example: "87e239b2-b85b-4bde-b9a7-55bf304ddcdc" + url: + type: string + description: URL to invoke this workflow + example: "https://tenant.api.identitynow.com/beta/workflows/execute/external/c79e0079-562c-4df5-aa73-60a9e25c916d" \ No newline at end of file diff --git a/static/api-specs/idn/beta/schemas/workflows/trigger-attributes/ScheduledAttributes.yaml b/static/api-specs/idn/beta/schemas/workflows/trigger-attributes/ScheduledAttributes.yaml index 990de7f4f..853d1a489 100644 --- a/static/api-specs/idn/beta/schemas/workflows/trigger-attributes/ScheduledAttributes.yaml +++ b/static/api-specs/idn/beta/schemas/workflows/trigger-attributes/ScheduledAttributes.yaml @@ -1,13 +1,35 @@ title: Scheduled Trigger Attributes type: object description: Attributes related to a scheduled trigger +additionalProperties: false required: -- cronString +- frequency properties: + frequency: + type: string + description: Frequency of execution + enum: + - daily + - weekly + - monthly + - yearly + - cronSchedule + timeZone: + type: string + description: Time zone identifier + example: "America/Chicago" cronString: type: string - description: A valid CRON expression - externalDocs: - description: CRON expression editor - url: https://crontab.guru/ - example: "0 * */3 */5 *" \ No newline at end of file + example: "0 9 * * 1" + weeklyDays: + type: array + items: + type: string + example: Monday + description: Scheduled days of the week for execution + weeklyTimes: + type: array + items: + type: string + example: Monday + description: Scheduled execution times \ No newline at end of file diff --git a/static/api-specs/idn/beta/schemas/workgroups/WorkgroupDto.yaml b/static/api-specs/idn/beta/schemas/workgroups/WorkgroupDto.yaml index 25b872d57..4b56d9353 100644 --- a/static/api-specs/idn/beta/schemas/workgroups/WorkgroupDto.yaml +++ b/static/api-specs/idn/beta/schemas/workgroups/WorkgroupDto.yaml @@ -41,3 +41,11 @@ properties: example: 1641498673000 description: Number of connections in the governance group. readOnly: true + created: + type: string + format: date-time + example: "2022-01-06T19:51:13Z" + modified: + type: string + format: date-time + example: "2022-01-06T19:51:13Z" \ No newline at end of file diff --git a/static/api-specs/idn/v3/schemas/AccountActivityApprovalStatus.yaml b/static/api-specs/idn/v3/schemas/AccountActivityApprovalStatus.yaml new file mode 100644 index 000000000..72fd87c66 --- /dev/null +++ b/static/api-specs/idn/v3/schemas/AccountActivityApprovalStatus.yaml @@ -0,0 +1,12 @@ +type: string +nullable: true +enum: + - FINISHED + - REJECTED + - RETURNED + - EXPIRED + - PENDING + - CANCELED + - null +example: PENDING +description: The state of an approval status \ No newline at end of file diff --git a/static/api-specs/idn/v3/schemas/AccountActivityItem.yaml b/static/api-specs/idn/v3/schemas/AccountActivityItem.yaml index 811dd4cfc..a6ced3456 100644 --- a/static/api-specs/idn/v3/schemas/AccountActivityItem.yaml +++ b/static/api-specs/idn/v3/schemas/AccountActivityItem.yaml @@ -15,7 +15,7 @@ properties: example: "2017-07-11T18:45:37.098Z" approvalStatus: allOf: - - $ref: "./WorkItemState.yaml" + - $ref: "./AccountActivityApprovalStatus.yaml" - nullable: true provisioningStatus: $ref: "./ProvisioningState.yaml" @@ -69,4 +69,4 @@ properties: The date the role or access profile or entitlement is no longer assigned to the specified identity. format: "date-time" - example: "2020-07-11T00:00:00Z" + example: "2020-07-11T00:00:00Z" \ No newline at end of file diff --git a/static/api-specs/idn/v3/schemas/PasswordPolicyV3Dto.yaml b/static/api-specs/idn/v3/schemas/PasswordPolicyV3Dto.yaml index d91e06914..5471adaf7 100644 --- a/static/api-specs/idn/v3/schemas/PasswordPolicyV3Dto.yaml +++ b/static/api-specs/idn/v3/schemas/PasswordPolicyV3Dto.yaml @@ -6,19 +6,21 @@ properties: example: 2c91808e7d976f3b017d9f5ceae440c8 description: type: string + nullable: true description: Description for current password policy. example: Information about the Password Policy name: type: string description: The name of the password policy. example: PasswordPolicy Example - dateCrated: + dateCreated: type: string format: 'date-time' description: Date the Password Policy was created. example: 1639056206564 lastUpdated: type: string + nullable: true format: 'date-time' description: Date the Password Policy was updated. example: 1939056206564 @@ -137,9 +139,15 @@ properties: description: Defines whether this policy validate against account name or not. This field is false by default. example: true default: false + created: + type: string + nullable: true + modified: + type: string + nullable: true sourceIds: type: array description: List of sources IDs managed by this password policy. items: type: string - example: ["2c91808382ffee0b01830de154f14034", "2f98808382ffee0b01830de154f12134"] + example: ["2c91808382ffee0b01830de154f14034", "2f98808382ffee0b01830de154f12134"] \ No newline at end of file diff --git a/static/api-specs/idn/v3/schemas/RequestedItemStatus.yaml b/static/api-specs/idn/v3/schemas/RequestedItemStatus.yaml index e70e628bf..002436426 100644 --- a/static/api-specs/idn/v3/schemas/RequestedItemStatus.yaml +++ b/static/api-specs/idn/v3/schemas/RequestedItemStatus.yaml @@ -58,12 +58,23 @@ properties: requester: $ref: './AccessItemRequester.yaml' requestedFor: - type: array - description: Identities access was requested for. - items: - $ref: './AccessItemRequestedFor.yaml' - minItems: 1 - maxItems: 10 + type: object + description: Identity access was requested for. + properties: + type: + type: string + enum: + - IDENTITY + description: Type of the object to which this reference applies + example: IDENTITY + id: + type: string + description: ID of the object to which this reference applies + example: 2c9180835d191a86015d28455b4b232a + name: + type: string + description: Human-readable display name of the object to which this reference applies + example: William Wilson requesterComment: allOf: - $ref: './CommentDto.yaml' @@ -119,4 +130,4 @@ properties: { "key1": "value1", "key2": "value2" - } + } \ No newline at end of file diff --git a/static/api-specs/idn/v3/schemas/WorkItemState.yaml b/static/api-specs/idn/v3/schemas/WorkItemState.yaml index b57edcece..d30abb425 100644 --- a/static/api-specs/idn/v3/schemas/WorkItemState.yaml +++ b/static/api-specs/idn/v3/schemas/WorkItemState.yaml @@ -1,11 +1,12 @@ type: string +nullable: true enum: - - FINISHED - - REJECTED - - RETURNED - - EXPIRED - - PENDING - - CANCELED + - Finished + - Rejected + - Returned + - Expired + - Pending + - Canceled - null -example: FINISHED +example: Pending description: The state of a work item \ No newline at end of file diff --git a/static/api-specs/idn/v3/schemas/WorkItemType.yaml b/static/api-specs/idn/v3/schemas/WorkItemType.yaml index 71acc8042..78df32536 100644 --- a/static/api-specs/idn/v3/schemas/WorkItemType.yaml +++ b/static/api-specs/idn/v3/schemas/WorkItemType.yaml @@ -1,19 +1,19 @@ type: string enum: - - UNKNOWN - - GENERIC - - CERTIFICATION - - REMEDIATION - - DELEGATION - - APPROVAL - - VIOLATIONREVIEW - - FORM - - POLICYVIOLATION - - CHALLENGE - - IMPACTANALYSIS - - SIGNOFF - - EVENT - - MANUALACTION - - TEST -example: GENERIC + - Unknown + - Generic + - Certification + - Remediation + - Delegation + - Approval + - ViolationReview + - Form + - PolicyViolation + - Challenge + - ImpactAnalysis + - Signoff + - Event + - ManualAction + - Test +example: Generic description: The type of the work item \ No newline at end of file diff --git a/static/api-specs/idn/v3/schemas/access/Role.yaml b/static/api-specs/idn/v3/schemas/access/Role.yaml index d6fd7cf17..a6541e5ef 100644 --- a/static/api-specs/idn/v3/schemas/access/Role.yaml +++ b/static/api-specs/idn/v3/schemas/access/Role.yaml @@ -81,9 +81,12 @@ properties: "f7b1b8a3-5fed-4fd4-ad29-82014e137e19", "29cb6c06-1da8-43ea-8be4-b3125f248f2a" ] + dimensional: + type: boolean + nullable: true + dimensionRefs: + type: string + nullable: true required: - name - - owner - - - + - owner \ No newline at end of file diff --git a/static/api-specs/idn/v3/schemas/identity-attributes/IdentityAttribute.yaml b/static/api-specs/idn/v3/schemas/identity-attributes/IdentityAttribute.yaml index 5456c2631..b05698c44 100644 --- a/static/api-specs/idn/v3/schemas/identity-attributes/IdentityAttribute.yaml +++ b/static/api-specs/idn/v3/schemas/identity-attributes/IdentityAttribute.yaml @@ -1,9 +1,11 @@ type: object +required: + - name properties: - name: + name: type: string - description: Identity attribute's technical name. - example: Identity Attribute Name + description: Identity attribute's technical name. + example: 'uid' displayName: type: string description: Identity attribute's business-friendly name. @@ -15,8 +17,8 @@ properties: example: true type: type: string - nullable: true description: Identity attribute's type. + nullable: true example: 'string' multi: type: boolean @@ -37,4 +39,4 @@ properties: description: Identity attribute's list of sources - this specifies how the rule's value is derived. type: array items: - $ref: "../identity-attributes/Source.yaml" + $ref: "../identity-attributes/Source.yaml" \ No newline at end of file diff --git a/static/api-specs/idn/v3/schemas/workflows/Workflow.yaml b/static/api-specs/idn/v3/schemas/workflows/Workflow.yaml index f52a22a04..6d11056f8 100644 --- a/static/api-specs/idn/v3/schemas/workflows/Workflow.yaml +++ b/static/api-specs/idn/v3/schemas/workflows/Workflow.yaml @@ -20,6 +20,11 @@ allOf: format: date-time description: The date and time the workflow was created. example: "2022-01-10T16:06:16.636381447Z" + modified: + type: string + format: date-time + description: The date and time the workflow was modified. + example: 2023-12-05T15:18:27.699132301Z creator: type: object description: Workflow creator's identity. diff --git a/static/api-specs/idn/v3/schemas/workflows/WorkflowBody.yaml b/static/api-specs/idn/v3/schemas/workflows/WorkflowBody.yaml index 81205e635..40b7a8b74 100644 --- a/static/api-specs/idn/v3/schemas/workflows/WorkflowBody.yaml +++ b/static/api-specs/idn/v3/schemas/workflows/WorkflowBody.yaml @@ -5,6 +5,7 @@ properties: description: The name of the workflow example: "Send Email" owner: + type: object description: The identity that owns the workflow. The owner's permissions in IDN will determine what actions the workflow is allowed to perform. Ownership can be changed by updating the owner in a PUT or PATCH request. properties: type: @@ -33,4 +34,4 @@ properties: default: false example: false trigger: - $ref: './WorkflowTrigger.yaml' + $ref: './WorkflowTrigger.yaml' \ No newline at end of file diff --git a/static/api-specs/idn/v3/schemas/workflows/WorkflowLibraryAction.yaml b/static/api-specs/idn/v3/schemas/workflows/WorkflowLibraryAction.yaml index f60c85e8c..e97df6d7c 100644 --- a/static/api-specs/idn/v3/schemas/workflows/WorkflowLibraryAction.yaml +++ b/static/api-specs/idn/v3/schemas/workflows/WorkflowLibraryAction.yaml @@ -23,10 +23,10 @@ properties: items: $ref: './WorkflowLibraryFormFields.yaml' isDynamicSchema: - type: boolean - description: Determines whether the dynamic output schema is returned in place of the action's output schema. The dynamic schema lists non-static properties, like properties of a workflow form where each form has different fields. These will be provided dynamically based on available form fields. - example: false - default: false + type: boolean + description: Determines whether the dynamic output schema is returned in place of the action's output schema. The dynamic schema lists non-static properties, like properties of a workflow form where each form has different fields. These will be provided dynamically based on available form fields. + example: false + default: false outputSchema: type: object description: Defines the output schema, if any, that this action produces. @@ -142,4 +142,4 @@ properties: }, "title": "sp:create-campaign", "type": "object" - } + } \ No newline at end of file diff --git a/static/api-specs/idn/v3/schemas/workflows/WorkflowModifiedBy.yaml b/static/api-specs/idn/v3/schemas/workflows/WorkflowModifiedBy.yaml new file mode 100644 index 000000000..9bf06a123 --- /dev/null +++ b/static/api-specs/idn/v3/schemas/workflows/WorkflowModifiedBy.yaml @@ -0,0 +1,15 @@ +type: object +properties: + type: + type: string + enum: + - IDENTITY + example: IDENTITY + id: + type: string + description: Identity ID + example: 2c9180a46faadee4016fb4e018c20639 + name: + type: string + description: Human-readable display name of identity. + example: Thomas Edison diff --git a/static/api-specs/idn/v3/schemas/workflows/WorkflowTrigger.yaml b/static/api-specs/idn/v3/schemas/workflows/WorkflowTrigger.yaml index b0aac6309..53f4bf445 100644 --- a/static/api-specs/idn/v3/schemas/workflows/WorkflowTrigger.yaml +++ b/static/api-specs/idn/v3/schemas/workflows/WorkflowTrigger.yaml @@ -12,6 +12,9 @@ properties: - SCHEDULED example: EVENT description: The trigger type + displayName: + type: string + nullable: true attributes: oneOf: - $ref: './trigger-attributes/EventAttributes.yaml' From 8fe59369af3cee4375c4acb18ba53c3ed2e0adf8 Mon Sep 17 00:00:00 2001 From: GitHub Action Bot Date: Wed, 26 Jun 2024 14:10:39 +0000 Subject: [PATCH 40/74] Automated commit by github action: 9681255834 --- .../idn/beta/paths/identities-invite.yaml | 44 +++++++++++++++++++ .../identity-send-account-verification.yaml | 33 ++++++++++++++ .../beta/schemas/InviteIdentitiesRequest.yaml | 14 ++++++ .../SendAccountVerificationRequest.yaml | 18 ++++++++ static/api-specs/idn/sailpoint-api.beta.yaml | 4 ++ 5 files changed, 113 insertions(+) create mode 100644 static/api-specs/idn/beta/paths/identities-invite.yaml create mode 100644 static/api-specs/idn/beta/paths/identity-send-account-verification.yaml create mode 100644 static/api-specs/idn/beta/schemas/InviteIdentitiesRequest.yaml create mode 100644 static/api-specs/idn/beta/schemas/SendAccountVerificationRequest.yaml diff --git a/static/api-specs/idn/beta/paths/identities-invite.yaml b/static/api-specs/idn/beta/paths/identities-invite.yaml new file mode 100644 index 000000000..ed57d64ad --- /dev/null +++ b/static/api-specs/idn/beta/paths/identities-invite.yaml @@ -0,0 +1,44 @@ +post: + operationId: startIdentitiesInvite + tags: + - Identities + summary: Invite identities to register + description: | + This API submits a task for inviting given identities via email to complete registration. The invitation email will include the link. After selecting the link an identity will be able to set up password and log in into the system. Invitations expire after 7 days. By default invitations send to the work identity email. It can be changed in Admin > Identities > Identity Profiles by selecting corresponding profile and editing Invitation Options. + + This task will send an invitation email only for unregistered identities. + + The executed task status can be checked by Task Management > [Get task status by ID](https://developer.sailpoint.com/docs/api/beta/get-task-status) + + A token with ORG_ADMIN or HELPDESK authority is required to call this API. + externalDocs: + description: 'Learn more about inviting identities here' + url: 'https://documentation.sailpoint.com/saas/help/common/users/inviting_users.html' + security: + - UserContextAuth: + - "idn:password-user-invite:create" + requestBody: + required: true + content: + application/json: + schema: + $ref: "../schemas/InviteIdentitiesRequest.yaml" + responses: + "202": + description: Responds with an initial TaskStatus for the executed task + content: + application/json: + schema: + $ref: "../schemas/TaskStatus.yaml" + "400": + $ref: "../../v3/responses/400.yaml" + "401": + $ref: "../../v3/responses/401.yaml" + "403": + $ref: "../../v3/responses/403.yaml" + "404": + $ref: "../../v3/responses/404.yaml" + "429": + $ref: "../../v3/responses/429.yaml" + "500": + $ref: "../../v3/responses/500.yaml" diff --git a/static/api-specs/idn/beta/paths/identity-send-account-verification.yaml b/static/api-specs/idn/beta/paths/identity-send-account-verification.yaml new file mode 100644 index 000000000..8132ffcea --- /dev/null +++ b/static/api-specs/idn/beta/paths/identity-send-account-verification.yaml @@ -0,0 +1,33 @@ +post: + operationId: sendIdentityVerificationAccountToken + tags: + - Identities + summary: Send password reset email + description: | + This API sends an email with the link to start Password Reset. After selecting the link an identity will be able to set up a new password. Emails expire after 2 hours. + + A token with ORG_ADMIN or HELPDESK authority is required to call this API. + security: + - UserContextAuth: + - "idn:password-user-invite:create" + requestBody: + required: true + content: + application/json: + schema: + $ref: "../schemas/SendAccountVerificationRequest.yaml" + responses: + "200": + description: The email was successfully sent + "400": + $ref: "../../v3/responses/400.yaml" + "401": + $ref: "../../v3/responses/401.yaml" + "403": + $ref: "../../v3/responses/403.yaml" + "404": + $ref: "../../v3/responses/404.yaml" + "429": + $ref: "../../v3/responses/429.yaml" + "500": + $ref: "../../v3/responses/500.yaml" diff --git a/static/api-specs/idn/beta/schemas/InviteIdentitiesRequest.yaml b/static/api-specs/idn/beta/schemas/InviteIdentitiesRequest.yaml new file mode 100644 index 000000000..f51c7c2e2 --- /dev/null +++ b/static/api-specs/idn/beta/schemas/InviteIdentitiesRequest.yaml @@ -0,0 +1,14 @@ +type: object +properties: + ids: + description: The list of Identities IDs to invite - required when 'uninvited' is false + type: array + items: + type: string + nullable: true + example: [ "2b568c65bc3c4c57a43bd97e3a8e55", "2c9180867769897d01776ed5f125512f" ] + uninvited: + description: indicator (optional) to invite all unregistered identities in the system within a limit 1000. This parameter makes sense only when 'ids' is empty. + type: boolean + default: false + example: false diff --git a/static/api-specs/idn/beta/schemas/SendAccountVerificationRequest.yaml b/static/api-specs/idn/beta/schemas/SendAccountVerificationRequest.yaml new file mode 100644 index 000000000..d429658ec --- /dev/null +++ b/static/api-specs/idn/beta/schemas/SendAccountVerificationRequest.yaml @@ -0,0 +1,18 @@ +type: object +properties: + sourceName: + description: The source name where identity account password should be reset + type: string + nullable: true + example: "Active Directory Source" + via: + description: The method to send notification + type: string + enum: + - EMAIL_WORK + - EMAIL_PERSONAL + - LINK_WORK + - LINK_PERSONAL + example: EMAIL_WORK +required: + - via diff --git a/static/api-specs/idn/sailpoint-api.beta.yaml b/static/api-specs/idn/sailpoint-api.beta.yaml index 147547be0..14a9ec677 100644 --- a/static/api-specs/idn/sailpoint-api.beta.yaml +++ b/static/api-specs/idn/sailpoint-api.beta.yaml @@ -1319,6 +1319,10 @@ paths: $ref: './beta/paths/identities.yaml' /identities/{id}: $ref: './beta/paths/identity.yaml' + /identities/invite: + $ref: './beta/paths/identities-invite.yaml' + /identities/{id}/verification/account/send: + $ref: './beta/paths/identity-send-account-verification.yaml' /identities/process: $ref: './beta/paths/identities-process.yaml' /identities/{id}/reset: From ed424e13c24b60a062f307c5db9a32c89bf8a94a Mon Sep 17 00:00:00 2001 From: GitHub Action Bot Date: Wed, 26 Jun 2024 16:35:39 +0000 Subject: [PATCH 41/74] Automated commit by github action: 9683434695 --- .../idn/beta/paths/identity-profile-process-identities.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/static/api-specs/idn/beta/paths/identity-profile-process-identities.yaml b/static/api-specs/idn/beta/paths/identity-profile-process-identities.yaml index 265491c74..2618f0d91 100644 --- a/static/api-specs/idn/beta/paths/identity-profile-process-identities.yaml +++ b/static/api-specs/idn/beta/paths/identity-profile-process-identities.yaml @@ -47,6 +47,6 @@ post: '500': $ref: '../../v3/responses/500.yaml' security: - - UserContextAuth: [idn:identity-profile:refresh] + - UserContextAuth: [idn:identity-profile:read, idn:identity-profile:manage] From f6feda53d338f403e9f84607577fba2d0beacafe Mon Sep 17 00:00:00 2001 From: GitHub Action Bot Date: Wed, 26 Jun 2024 16:35:54 +0000 Subject: [PATCH 42/74] Automated commit by github action: 9683438264 --- static/api-specs/idn/beta/paths/set-password.yaml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/static/api-specs/idn/beta/paths/set-password.yaml b/static/api-specs/idn/beta/paths/set-password.yaml index e9db06242..4950e9f07 100644 --- a/static/api-specs/idn/beta/paths/set-password.yaml +++ b/static/api-specs/idn/beta/paths/set-password.yaml @@ -3,6 +3,8 @@ post: tags: - Password Management summary: Set Identity's Password + security: + - UserContextAuth: [idn:password-change:manage] description: | This API is used to set a password for an identity. From adb0602c57f092d17932e519fc40b6b17826c7e8 Mon Sep 17 00:00:00 2001 From: GitHub Action Bot Date: Thu, 27 Jun 2024 18:38:07 +0000 Subject: [PATCH 43/74] Automated commit by github action: 9701875089 --- static/api-specs/idn/sailpoint-api.beta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/static/api-specs/idn/sailpoint-api.beta.yaml b/static/api-specs/idn/sailpoint-api.beta.yaml index 14a9ec677..0c6a80eaa 100644 --- a/static/api-specs/idn/sailpoint-api.beta.yaml +++ b/static/api-specs/idn/sailpoint-api.beta.yaml @@ -1597,12 +1597,12 @@ paths: $ref: './beta/paths/service-desk-integration-template.yaml' /service-desk-integrations/status-check-configuration: $ref: './beta/paths/service-desk-integration-configuration.yaml' - /sim-integrations: - $ref: './beta/paths/sim-integrations-value-list.yaml' /sim-integrations/{id}: $ref: './beta/paths/sim-integrations.yaml' /sim-integrations/{id}/beforeProvisioningRule: $ref: './beta/paths/sim-integrations-before-provisioning-rule.yaml' + /sim-integrations: + $ref: './beta/paths/sim-integrations-value-list.yaml' /sp-config/export: $ref: './beta/paths/sp-config-export.yaml' /sp-config/export/{id}: From c7c40cedaea6ecbdd6fb9d15b91f8fb17df08980 Mon Sep 17 00:00:00 2001 From: GitHub Action Bot Date: Fri, 28 Jun 2024 12:11:46 +0000 Subject: [PATCH 44/74] Automated commit by github action: 9712547225 --- static/api-specs/nerm/openapi.yaml | 3 ++ .../paths/workflow_action_performers.yaml | 15 ++++++ .../POST/WorkflowActionPerformers.yaml | 9 ++++ .../responses/WorkflowActionPerformers.yaml | 9 ++++ .../schemas/GET/WorkflowActionPerformers.yaml | 48 +++++++++++++++++++ .../POST/WorkflowActionPerformers.yaml | 43 +++++++++++++++++ 6 files changed, 127 insertions(+) create mode 100644 static/api-specs/nerm/paths/workflow_action_performers.yaml create mode 100644 static/api-specs/nerm/requestBodies/POST/WorkflowActionPerformers.yaml create mode 100644 static/api-specs/nerm/responses/WorkflowActionPerformers.yaml create mode 100644 static/api-specs/nerm/schemas/GET/WorkflowActionPerformers.yaml create mode 100644 static/api-specs/nerm/schemas/POST/WorkflowActionPerformers.yaml diff --git a/static/api-specs/nerm/openapi.yaml b/static/api-specs/nerm/openapi.yaml index 6b741418b..e43521f19 100644 --- a/static/api-specs/nerm/openapi.yaml +++ b/static/api-specs/nerm/openapi.yaml @@ -198,6 +198,9 @@ paths: $ref: "./paths/workflow_actions/username_password_action.yaml" /workflow_actions: $ref: "./paths/workflow_actions/workflow_action.yaml" +#Workflow Action Performer + /workflow_action_performers: + $ref: "./paths/workflow_action_performers.yaml" # Workflow Sessions /workflow_sessions: $ref: "./paths/workflow_sessions.yaml" diff --git a/static/api-specs/nerm/paths/workflow_action_performers.yaml b/static/api-specs/nerm/paths/workflow_action_performers.yaml new file mode 100644 index 000000000..fa3141d8a --- /dev/null +++ b/static/api-specs/nerm/paths/workflow_action_performers.yaml @@ -0,0 +1,15 @@ +post: + summary: Create a workflow action performer + operationId: createWorkflowActionPerformer + description: Create a workflow action performer for an existing workflow action + tags: + - workflow action performer + requestBody: + $ref: "../requestBodies/POST/WorkflowActionPerformers.yaml" + responses: + '200': + $ref: "../responses/WorkflowActionPerformers.yaml" + '400': + $ref: "../responses/400.yaml" + '500': + $ref: "../responses/500.yaml" \ No newline at end of file diff --git a/static/api-specs/nerm/requestBodies/POST/WorkflowActionPerformers.yaml b/static/api-specs/nerm/requestBodies/POST/WorkflowActionPerformers.yaml new file mode 100644 index 000000000..e3a3700d1 --- /dev/null +++ b/static/api-specs/nerm/requestBodies/POST/WorkflowActionPerformers.yaml @@ -0,0 +1,9 @@ +required: true +content: + application/json: + schema: + type: object + properties: + workflow_action_performers: + type: object + $ref: "../../schemas/POST/WorkflowActionPerformers.yaml" \ No newline at end of file diff --git a/static/api-specs/nerm/responses/WorkflowActionPerformers.yaml b/static/api-specs/nerm/responses/WorkflowActionPerformers.yaml new file mode 100644 index 000000000..b043e0e78 --- /dev/null +++ b/static/api-specs/nerm/responses/WorkflowActionPerformers.yaml @@ -0,0 +1,9 @@ +description: Expected response to a valid request +content: + application/json: + schema: + type: object + properties: + workflow_action_performer: + type: object + $ref: "../schemas/GET/WorkflowActionPerformers.yaml" \ No newline at end of file diff --git a/static/api-specs/nerm/schemas/GET/WorkflowActionPerformers.yaml b/static/api-specs/nerm/schemas/GET/WorkflowActionPerformers.yaml new file mode 100644 index 000000000..55148952d --- /dev/null +++ b/static/api-specs/nerm/schemas/GET/WorkflowActionPerformers.yaml @@ -0,0 +1,48 @@ +type: object +properties: + id: + type: string + format: uuid + description: The id of the workflow action performer that was created. + example: e6905f25-489a-43cd-a758-bdacaf60dcab + contributor_attribute_id: + type: string + format: uuid + description: The id of the user attribute to perform the action. + example: e6905f25-489a-43cd-a758-bdacaf60dcab + contributors: + type: boolean + default: false + description: Set to allow profile contributor to perform the action. + example: true + contributors_manager_attribute_id: + type: string + format: uuid + description: The id of the user attribute to perform the action. + example: e6905f25-489a-43cd-a758-bdacaf60dcab + owner: + type: boolean + default: false + description: Set to allow profile owner to perform the action. + example: true + profiles_contributors_attribute_id: + type: string + format: uuid + description: The id of the profile attribute to perform the action. + example: e6905f25-489a-43cd-a758-bdacaf60dcab + requester: + type: boolean + default: false + description: Set to allow requester from the request to perform the action. + example: true + requesters_manager: + type: boolean + default: false + description: Set to allow the requester's manager from the request to perform the action. + example: true + workflow_action_id: + type: string + format: uuid + description: The id of the workflow action. + example: e6905f25-489a-43cd-a758-bdacaf60dcab + \ No newline at end of file diff --git a/static/api-specs/nerm/schemas/POST/WorkflowActionPerformers.yaml b/static/api-specs/nerm/schemas/POST/WorkflowActionPerformers.yaml new file mode 100644 index 000000000..44e0fc49c --- /dev/null +++ b/static/api-specs/nerm/schemas/POST/WorkflowActionPerformers.yaml @@ -0,0 +1,43 @@ +type: object +properties: + contributor_attribute_id: + type: string + format: uuid + description: Specify the id of the user attribute to perform the action. + example: e6905f25-489a-43cd-a758-bdacaf60dcab + contributors: + type: boolean + default: false + description: Set to true to allow profile contributor to perform the action. + example: true + contributors_manager_attribute_id: + type: string + format: uuid + description: Specify the id of the user attribute to perform the action. + example: e6905f25-489a-43cd-a758-bdacaf60dcab + owner: + type: boolean + default: false + description: Set to true to allow profile owner to perform the action. + example: true + profiles_contributors_attribute_id: + type: string + format: uuid + description: Specify the id of the profile attribute to perform the action. + example: e6905f25-489a-43cd-a758-bdacaf60dcab + requester: + type: boolean + default: false + description: Set to true to allow requester from the request to perform the action. + example: true + requesters_manager: + type: boolean + default: false + description: Set to true to allow the requester's manager from the request to perform the action. + example: true + workflow_action_id: + type: string + format: uuid + description: Specify the id of the workflow action you would like to create the workflow action performer/s for. + example: e6905f25-489a-43cd-a758-bdacaf60dcab + \ No newline at end of file From 5de206485a52981044822a52dec6c538217d28c9 Mon Sep 17 00:00:00 2001 From: GitHub Action Bot Date: Fri, 28 Jun 2024 22:33:00 +0000 Subject: [PATCH 45/74] Automated commit by github action: 9719249088 --- .../schemas/FederationProtocolDetails.yaml | 2 + .../idn/beta/schemas/IdpDetails.yaml | 6 + .../idn/beta/schemas/JITConfiguration.yaml | 3 + .../beta/schemas/SessionConfiguration.yaml | 3 + static/api-specs/idn/sailpoint-api.v3.yaml | 6 + .../idn/v3/paths/auth-org-lockout-config.yaml | 81 +++++++++++ .../auth-org-service-provider-config.yaml | 133 ++++++++++++++++++ .../idn/v3/paths/auth-org-session-config.yaml | 80 +++++++++++ .../v3/schemas/FederationProtocolDetails.yaml | 13 ++ .../api-specs/idn/v3/schemas/IdpDetails.yaml | 58 ++++++++ .../idn/v3/schemas/JITConfiguration.yaml | 21 +++ .../idn/v3/schemas/LockoutConfiguration.yaml | 17 +++ .../schemas/ServiceProviderConfiguration.yaml | 67 +++++++++ .../idn/v3/schemas/SessionConfiguration.yaml | 17 +++ .../api-specs/idn/v3/schemas/SpDetails.yaml | 19 +++ 15 files changed, 526 insertions(+) create mode 100644 static/api-specs/idn/v3/paths/auth-org-lockout-config.yaml create mode 100644 static/api-specs/idn/v3/paths/auth-org-service-provider-config.yaml create mode 100644 static/api-specs/idn/v3/paths/auth-org-session-config.yaml create mode 100644 static/api-specs/idn/v3/schemas/FederationProtocolDetails.yaml create mode 100644 static/api-specs/idn/v3/schemas/IdpDetails.yaml create mode 100644 static/api-specs/idn/v3/schemas/JITConfiguration.yaml create mode 100644 static/api-specs/idn/v3/schemas/LockoutConfiguration.yaml create mode 100644 static/api-specs/idn/v3/schemas/ServiceProviderConfiguration.yaml create mode 100644 static/api-specs/idn/v3/schemas/SessionConfiguration.yaml create mode 100644 static/api-specs/idn/v3/schemas/SpDetails.yaml diff --git a/static/api-specs/idn/beta/schemas/FederationProtocolDetails.yaml b/static/api-specs/idn/beta/schemas/FederationProtocolDetails.yaml index 46f92e30d..869800a9a 100644 --- a/static/api-specs/idn/beta/schemas/FederationProtocolDetails.yaml +++ b/static/api-specs/idn/beta/schemas/FederationProtocolDetails.yaml @@ -2,6 +2,8 @@ type: object properties: role: type: string + description: Federation protocol role + example: SAML_IDP enum: - SAML_IDP - SAML_SP diff --git a/static/api-specs/idn/beta/schemas/IdpDetails.yaml b/static/api-specs/idn/beta/schemas/IdpDetails.yaml index 298b5f166..828a6dc46 100644 --- a/static/api-specs/idn/beta/schemas/IdpDetails.yaml +++ b/static/api-specs/idn/beta/schemas/IdpDetails.yaml @@ -14,9 +14,12 @@ allOf: logoutUrl: type: string description: The IDP logout URL. Used with IDP configurations. + example: https://dev-206445.oktapreview.com/login/signout includeAuthContext: type: boolean description: Determines if the configured AuthnContext should be used or the default. Used with IDP configurations. + default: false + example: false nameId: type: string description: The name id format to use. Used with IDP configurations. @@ -26,6 +29,7 @@ allOf: cert: type: string description: The Base64-encoded certificate used by the IDP. Used with IDP configurations. + example: -----BEGIN CERTIFICATE-----****-----END CERTIFICATE----- loginUrlPost: type: string description: The IDP POST URL, used with IDP HTTP-POST bindings for IDP-initiated logins. Used with IDP configurations. @@ -40,6 +44,8 @@ allOf: example: email role: type: string + description: Federation protocol role + example: SAML_IDP enum: - SAML_IDP certificateExpirationDate: diff --git a/static/api-specs/idn/beta/schemas/JITConfiguration.yaml b/static/api-specs/idn/beta/schemas/JITConfiguration.yaml index 65f434dd9..98ac276f8 100644 --- a/static/api-specs/idn/beta/schemas/JITConfiguration.yaml +++ b/static/api-specs/idn/beta/schemas/JITConfiguration.yaml @@ -3,12 +3,15 @@ properties: enabled: type: boolean description: The indicator for just-in-time provisioning enabled + default: false + example: false sourceId: type: string description: the sourceId that mapped to just-in-time provisioning configuration example: 2c9180857377ed2901739c12a2da5ac8 sourceAttributeMappings: type: object + description: A mapping of identity profile attribute names to SAML assertion attribute names additionalProperties: type: string description: a mapping of JIT source attributes to the SAML assertion attribute diff --git a/static/api-specs/idn/beta/schemas/SessionConfiguration.yaml b/static/api-specs/idn/beta/schemas/SessionConfiguration.yaml index 6ba488ea8..2aab8d6d5 100644 --- a/static/api-specs/idn/beta/schemas/SessionConfiguration.yaml +++ b/static/api-specs/idn/beta/schemas/SessionConfiguration.yaml @@ -3,12 +3,15 @@ properties: maxIdleTime: type: integer description: The maximum time in minutes a session can be idle. + format: int32 example: 15 rememberMe: type: boolean description: Denotes if 'remember me' is enabled. + default: false example: true maxSessionTime: type: integer description: The maximum allowable session time in minutes. + format: int32 example: 45 diff --git a/static/api-specs/idn/sailpoint-api.v3.yaml b/static/api-specs/idn/sailpoint-api.v3.yaml index 9c67d9e57..e3a5e9aa4 100644 --- a/static/api-specs/idn/sailpoint-api.v3.yaml +++ b/static/api-specs/idn/sailpoint-api.v3.yaml @@ -1012,6 +1012,12 @@ paths: $ref: "./v3/paths/account-activity-get-one.yaml" /auth-org/network-config: $ref: "./v3/paths/auth-org-network-config.yaml" + /auth-org/lockout-config: + $ref: "./v3/paths/auth-org-lockout-config.yaml" + /auth-org/service-provider-config: + $ref: "./v3/paths/auth-org-service-provider-config.yaml" + /auth-org/session-config: + $ref: "./v3/paths/auth-org-session-config.yaml" /auth-users/{id}: $ref: "./v3/paths/auth-user.yaml" /brandings: diff --git a/static/api-specs/idn/v3/paths/auth-org-lockout-config.yaml b/static/api-specs/idn/v3/paths/auth-org-lockout-config.yaml new file mode 100644 index 000000000..0864c91d1 --- /dev/null +++ b/static/api-specs/idn/v3/paths/auth-org-lockout-config.yaml @@ -0,0 +1,81 @@ +get: + operationId: getAuthOrgLockoutConfig + tags: + - Global Tenant Security Settings + summary: Get Auth Org Lockout Configuration. + description: >- + This API returns the details of an org's lockout auth configuration. + responses: + "200": + description: Lockout configuration for the tenant's auth org. + content: + application/json: + schema: + $ref: "../schemas/LockoutConfiguration.yaml" + "400": + $ref: "../../v3/responses/400.yaml" + "401": + $ref: "../../v3/responses/401.yaml" + "403": + $ref: "../../v3/responses/403.yaml" + "404": + $ref: "../../v3/responses/404.yaml" + "429": + $ref: "../../v3/responses/429.yaml" + "500": + $ref: "../../v3/responses/500.yaml" + security: + - UserContextAuth: [sp:auth-org:read] +patch: + operationId: patchAuthOrgLockoutConfig + tags: + - Global Tenant Security Settings + summary: Update Auth Org Lockout Configuration + description: >- + This API updates an existing lockout configuration for an org using PATCH + Requires security scope of: 'sp:auth-org:update' + requestBody: + required: true + description: >- + A list of auth org lockout configuration update operations according to + the [JSON Patch](https://tools.ietf.org/html/rfc6902) standard. + + Ensures that the patched Lockout Config conforms to certain logical + guidelines, which are: + 1. maximumAttempts >= 1 && maximumAttempts <= 15 + 2. lockoutDuration >= 5 && lockoutDuration <= 60 + 3. lockoutWindow >= 5 && lockoutDuration <= 60 + content: + application/json-patch+json: + schema: + type: array + items: + $ref: "../schemas/JsonPatchOperation.yaml" + example: + - op: "replace" + path: "/maximumAttempts" + value: 7, + - op: "add" + path: "/lockoutDuration" + value: 35 + responses: + "200": + description: Updated Auth Org lockout configuration. + content: + application/json: + schema: + $ref: "../schemas/LockoutConfiguration.yaml" + "400": + $ref: "../../v3/responses/400.yaml" + "401": + $ref: "../../v3/responses/401.yaml" + "403": + $ref: "../../v3/responses/403.yaml" + "404": + $ref: "../../v3/responses/404.yaml" + "429": + $ref: "../../v3/responses/429.yaml" + "500": + $ref: "../../v3/responses/500.yaml" + security: + - UserContextAuth: [] diff --git a/static/api-specs/idn/v3/paths/auth-org-service-provider-config.yaml b/static/api-specs/idn/v3/paths/auth-org-service-provider-config.yaml new file mode 100644 index 000000000..7a888385a --- /dev/null +++ b/static/api-specs/idn/v3/paths/auth-org-service-provider-config.yaml @@ -0,0 +1,133 @@ +get: + operationId: getAuthOrgServiceProviderConfig + tags: + - Global Tenant Security Settings + summary: Get Service Provider Configuration. + description: >- + This API returns the details of an org's service provider auth + configuration. + responses: + "200": + description: Service provider configuration for the tenant. + content: + application/json: + schema: + $ref: "../schemas/ServiceProviderConfiguration.yaml" + "400": + $ref: "../../v3/responses/400.yaml" + "401": + $ref: "../../v3/responses/401.yaml" + "403": + $ref: "../../v3/responses/403.yaml" + "404": + $ref: "../../v3/responses/404.yaml" + "429": + $ref: "../../v3/responses/429.yaml" + "500": + $ref: "../../v3/responses/500.yaml" + security: + - UserContextAuth: [] +patch: + operationId: patchAuthOrgServiceProviderConfig + tags: + - Global Tenant Security Settings + summary: Update Service Provider Configuration + description: >- + This API updates an existing service provider configuration for an org using + PATCH. + requestBody: + required: true + description: >- + A list of auth org service provider configuration update operations + according to the [JSON Patch](https://tools.ietf.org/html/rfc6902) + standard. + + Note: /federationProtocolDetails/0 is IdpDetails + /federationProtocolDetails/1 is SpDetails + + Ensures that the patched ServiceProviderConfig conforms to certain logical + guidelines, which are: + 1. Do not add or remove any elements in the federation protocol details + in the service provider configuration. + 2. Do not modify, add, or delete the service provider details element in + the federation protocol details. + 3. If this is the first time the patched ServiceProviderConfig enables + Remote IDP sign-in, it must also include IDPDetails. + 4. If the patch enables Remote IDP sign in, the entityID in the + IDPDetails cannot be null. IDPDetails must include an entityID. + 5. Any JIT configuration update must be valid. + + Just in time configuration update must be valid when enabled. This + includes: + - A Source ID + - Source attribute mappings + - Source attribute maps have all the required key values (firstName, + lastName, email) + content: + application/json-patch+json: + schema: + type: array + items: + $ref: "../schemas/JsonPatchOperation.yaml" + example: + - op: "replace" + path: "/enabled" + value: true, + - op: "add" + path: "/federationProtocolDetails/0/jitConfiguration" + value: + { + "enabled": true, + "sourceId": "2c9180857377ed2901739c12a2da5ac8", + "sourceAttributeMappings": + { + "firstName": "okta.firstName", + "lastName": "okta.lastName", + "email": "okta.email", + "employeeNumber": "okta.employeeNumber", + }, + } + responses: + "200": + description: Auth Org Service Provider configuration updated. + content: + application/json: + schema: + $ref: "../schemas/ServiceProviderConfiguration.yaml" + "400": + description: Client Error - Returned if the request body is invalid. + content: + application/json: + schema: + $ref: "../../v3/schemas/ErrorResponseDto.yaml" + examples: + 400.1 Bad Request Content: + description: Response for bad request content + value: + detailCode: 400.1 Bad Request Content + trackingId: e7eab60924f64aa284175b9fa3309599 + messages: + - locale: en + localeOrigin: REQUEST + text: firstName is required; accountName is required; + 400.1.3 Illegal value: + description: Response for Illegal value + value: + detailCode: 400.1.3 Illegal value + trackingId: e7eab60924f64aa284175b9fa3309599 + messages: + - locale: en + localeOrigin: REQUEST + text: JIT source id is invalid. + "401": + $ref: "../../v3/responses/401.yaml" + "403": + $ref: "../../v3/responses/403.yaml" + "404": + $ref: "../../v3/responses/404.yaml" + "429": + $ref: "../../v3/responses/429.yaml" + "500": + $ref: "../../v3/responses/500.yaml" + security: + - UserContextAuth: [] diff --git a/static/api-specs/idn/v3/paths/auth-org-session-config.yaml b/static/api-specs/idn/v3/paths/auth-org-session-config.yaml new file mode 100644 index 000000000..60f34ee2f --- /dev/null +++ b/static/api-specs/idn/v3/paths/auth-org-session-config.yaml @@ -0,0 +1,80 @@ +get: + operationId: getAuthOrgSessionConfig + tags: + - Global Tenant Security Settings + summary: Get Auth Org Session Configuration. + description: >- + This API returns the details of an org's session auth configuration. + responses: + "200": + description: Session configuration for the tenant's auth org. + content: + application/json: + schema: + $ref: "../schemas/SessionConfiguration.yaml" + "400": + $ref: "../../v3/responses/400.yaml" + "401": + $ref: "../../v3/responses/401.yaml" + "403": + $ref: "../../v3/responses/403.yaml" + "404": + $ref: "../../v3/responses/404.yaml" + "429": + $ref: "../../v3/responses/429.yaml" + "500": + $ref: "../../v3/responses/500.yaml" + security: + - UserContextAuth: [] +patch: + operationId: patchAuthOrgSessionConfig + tags: + - Global Tenant Security Settings + summary: Update Auth Org Session Configuration + description: >- + This API updates an existing session configuration for an org using PATCH. + requestBody: + required: true + description: >- + A list of auth org session configuration update operations according to + the [JSON Patch](https://tools.ietf.org/html/rfc6902) standard. + + Ensures that the patched Session Config conforms to certain logical + guidelines, which are: + 1. maxSessionTime >= 1 && maxSessionTime <= 10080 (1 week) + 2. maxIdleTime >= 1 && maxIdleTime <= 1440 (1 day) + 3. maxSessionTime must have a greater duration than maxIdleTime. + content: + application/json-patch+json: + schema: + type: array + items: + $ref: "../schemas/JsonPatchOperation.yaml" + example: + - op: "replace" + path: "/rememberMe" + value: true, + - op: "add" + path: "/maxSessionTime" + value: 480 + responses: + "200": + description: Updated Auth Org session configuration. + content: + application/json: + schema: + $ref: "../schemas/SessionConfiguration.yaml" + "400": + $ref: "../../v3/responses/400.yaml" + "401": + $ref: "../../v3/responses/401.yaml" + "403": + $ref: "../../v3/responses/403.yaml" + "404": + $ref: "../../v3/responses/404.yaml" + "429": + $ref: "../../v3/responses/429.yaml" + "500": + $ref: "../../v3/responses/500.yaml" + security: + - UserContextAuth: [] diff --git a/static/api-specs/idn/v3/schemas/FederationProtocolDetails.yaml b/static/api-specs/idn/v3/schemas/FederationProtocolDetails.yaml new file mode 100644 index 000000000..869800a9a --- /dev/null +++ b/static/api-specs/idn/v3/schemas/FederationProtocolDetails.yaml @@ -0,0 +1,13 @@ +type: object +properties: + role: + type: string + description: Federation protocol role + example: SAML_IDP + enum: + - SAML_IDP + - SAML_SP + entityId: + type: string + description: An entity ID is a globally unique name for a SAML entity, either an Identity Provider (IDP) or a Service Provider (SP). + example: http://www.okta.com/exkdaruy8Ln5Ry7C54x6 diff --git a/static/api-specs/idn/v3/schemas/IdpDetails.yaml b/static/api-specs/idn/v3/schemas/IdpDetails.yaml new file mode 100644 index 000000000..e7b9337c4 --- /dev/null +++ b/static/api-specs/idn/v3/schemas/IdpDetails.yaml @@ -0,0 +1,58 @@ +allOf: + - $ref: './FederationProtocolDetails.yaml' + - type: object + description: Specification of Identity Provider Details section of Service Provider Config + properties: + binding: + type: string + description: Defines the binding used for the SAML flow. Used with IDP configurations. + example: urn:oasis:names:tc:SAML:2.0:bindings:HTTP-POST + authContext: + type: string + description: Specifies the SAML authentication method to use. Used with IDP configurations. + example: urn:oasis:names:tc:SAML:2.0:ac:classes:PasswordProtectedTransport + logoutUrl: + type: string + description: The IDP logout URL. Used with IDP configurations. + example: https://dev-206445.oktapreview.com/login/signout + includeAuthContext: + type: boolean + description: Determines if the configured AuthnContext should be used or the default. Used with IDP configurations. + default: false + example: false + nameId: + type: string + description: The name id format to use. Used with IDP configurations. + example: urn:oasis:names:tc:SAML:1.1:nameid-format:emailAddress + jitConfiguration: + $ref: './JITConfiguration.yaml' + cert: + type: string + description: The Base64-encoded certificate used by the IDP. Used with IDP configurations. + example: -----BEGIN CERTIFICATE-----****-----END CERTIFICATE----- + loginUrlPost: + type: string + description: The IDP POST URL, used with IDP HTTP-POST bindings for IDP-initiated logins. Used with IDP configurations. + example: https://dev-157216.okta.com/app/sailpointdev157216_cdovsaml_1/exkdaruy8Ln5Ry7C54x6/sso/saml + loginUrlRedirect: + type: string + description: The IDP Redirect URL. Used with IDP configurations. + example: https://dev-157216.okta.com/app/sailpointdev157216_cdovsaml_1/exkdaruy8Ln5Ry7C54x6/sso/saml + mappingAttribute: + type: string + description: Return the saml Id for the given user, based on the IDN as SP settings of the org. Used with IDP configurations. + example: email + role: + type: string + description: Federation protocol role + example: SAML_IDP + enum: + - SAML_IDP + certificateExpirationDate: + type: string + description: The expiration date extracted from the certificate. + example: Fri Mar 08 08:54:24 UTC 2013 + certificateName: + type: string + description: The name extracted from the certificate. + example: OU=Conext, O=Surfnet, L=Utrecht, ST=Utrecht, C=NL diff --git a/static/api-specs/idn/v3/schemas/JITConfiguration.yaml b/static/api-specs/idn/v3/schemas/JITConfiguration.yaml new file mode 100644 index 000000000..98ac276f8 --- /dev/null +++ b/static/api-specs/idn/v3/schemas/JITConfiguration.yaml @@ -0,0 +1,21 @@ +type: object +properties: + enabled: + type: boolean + description: The indicator for just-in-time provisioning enabled + default: false + example: false + sourceId: + type: string + description: the sourceId that mapped to just-in-time provisioning configuration + example: 2c9180857377ed2901739c12a2da5ac8 + sourceAttributeMappings: + type: object + description: A mapping of identity profile attribute names to SAML assertion attribute names + additionalProperties: + type: string + description: a mapping of JIT source attributes to the SAML assertion attribute + example: + firstName: okta.firstName + lastName: okta.lastName + email: okta.email diff --git a/static/api-specs/idn/v3/schemas/LockoutConfiguration.yaml b/static/api-specs/idn/v3/schemas/LockoutConfiguration.yaml new file mode 100644 index 000000000..36be1a451 --- /dev/null +++ b/static/api-specs/idn/v3/schemas/LockoutConfiguration.yaml @@ -0,0 +1,17 @@ +type: object +properties: + maximumAttempts: + type: integer + format: int32 + description: The maximum attempts allowed before lockout occurs. + example: 5 + lockoutDuration: + type: integer + format: int32 + description: The total time in minutes a user will be locked out. + example: 15 + lockoutWindow: + type: integer + format: int32 + description: A rolling window where authentication attempts in a series count towards the maximum before lockout occurs. + example: 5 diff --git a/static/api-specs/idn/v3/schemas/ServiceProviderConfiguration.yaml b/static/api-specs/idn/v3/schemas/ServiceProviderConfiguration.yaml new file mode 100644 index 000000000..cd2107220 --- /dev/null +++ b/static/api-specs/idn/v3/schemas/ServiceProviderConfiguration.yaml @@ -0,0 +1,67 @@ +description: >- + Represents the IdentityNow as Service Provider Configuration + allowing customers to log into IDN via an Identity Provider +type: object +properties: + enabled: + description: This determines whether or not the SAML authentication flow is enabled for an org + type: boolean + example: true + default: false + bypassIdp: + description: >- + This allows basic login with the parameter prompt=true. + This is often toggled on when debugging SAML authentication setup. + When false, only org admins with MFA-enabled can bypass the IDP. + type: boolean + example: true + default: false + samlConfigurationValid: + description: This indicates whether or not the SAML configuration is valid. + type: boolean + example: true + default: false + federationProtocolDetails: + description: >- + A list of the abstract implementations of the Federation Protocol details. + Typically, this will include on SpDetails object and one IdpDetails object + used in tandem to define a SAML integration between a customer's identity + provider and a customer's SailPoint instance (i.e., the service provider). + type: array + items: + oneOf: + - $ref: 'IdpDetails.yaml' + - $ref: 'SpDetails.yaml' + example: [ + { + "role": "SAML_IDP", + "entityId": "http://www.okta.com/exktq4o24bmQA4fr60h7", + "cert": "MIIDpDCCAoygAwIBAgIGAYhZ+b29MA0GCSqGSIb3DQEBCwUAMIGSMQswCQYDVQQGEwJVUzETMBEGA1UECAwKQ2FsaWZvcm5pYTEWMBQGA1UEBwwNU2FuIEZyYW5jaXNjbzENMAsGA1UECgwET2t0YTEUMBIGA1UECwwLU1NPUHJvdmlkZXIxEzARBgNVBAMMCmRldi0yMDY0NDUxHDAaBgkqhkiG9w0BCQEWDWluZm9Ab2t0YS5jb20wHhcNMjMwNTI2MjEzMDU5WhcNMzMwNTI2MjEzMTU5WjCBkjELMAkGA1UEBhMCVVMxEzARBgNVBAgMCkNhbGlmb3JuaWExFjAUBgNVBAcMDVNhbiBGcmFuY2lzY28xDTALBgNVBAoMBE9rdGExFDASBgNVBAsMC1NTT1Byb3ZpZGVyMRMwEQYDVQQDDApkZXYtMjA2NDQ1MRwwGgYJKoZIhvcNAQkBFg1pbmZvQG9rdGEuY29tMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAwvi1+WbF2ceGlLCrLl5PrG1lpj04IsrHX6OE666ObC2WFh+Nxvpxy+Vmzon9c9+akhK3bTv+9ifEoVc6tA1qWuCfXISAn9g81JqI68I1PGUbe6eF8pmOA18rjOrt7x94k4QukpR3+I8DfPJ+TynatltB51laLb8H4jchMafA4rDTjV/ZiYPxV0LMEIbprVyGuvBEhiEWha3wwVdDuJq996okX36YNS8PcGH+5CJ8c3YWZp/wrspgJmfCooMXeV+6zBpZfXqPpMWlUo0gcZqDOFgy3r4vkXehJdVYRlInMfDv04Lvy8VI1YAZClG/duO/6o9YVUFLjD9s+mQfhgaF5wIDAQABMA0GCSqGSIb3DQEBCwUAA4IBAQB1CTrA/pTHkarbhMHsdSFAjVoYWwdAfrssG99rIjwwr/CW9tavTC3keaoUmUeddcnLY4V/TfL07+xgQGHCBR88cnzG9h6rC9qWxt6C3nug3YDVQfkdCDgnW9A8QEvLeq/KVLoRccpJNEENb2Y5ESUXHi1+PtjkFBtvfSgZ4eEhVggirL0bJdWVm700hCnjb2iCGSbSX7WflfPi0GSmjht983caG9OwZDnDzNFt8qGWCxo4bNSThT00JnWEN/6f1BWNOt9YDrxqEyNclqhLL+RDqFsPBFIrQlsoXzqpWqCL8oS9UMNxbGATK2v3d5ueE9+SswBAFBhirCuqZw19Ri2W", + "loginUrlPost": "https://dev-206445.oktapreview.com/app/tivolidev206445_acmeidntest_1/exktq4o24bmQA4fr60h7/sso/saml", + "loginUrlRedirect": "https://dev-206445.oktapreview.com/app/tivolidev206445_acmeidntest_1/exktq4o24bmQA4fr60h7/sso/saml", + "logoutUrl": "https://dev-206445.oktapreview.com/login/signout", + "nameId": "urn:oasis:names:tc:SAML:1.1:nameid-format:emailAddress", + "binding": "urn:oasis:names:tc:SAML:2.0:bindings:HTTP-POST", + "authnContext": "urn:oasis:names:tc:SAML:2.0:ac:classes:PasswordProtectedTransport", + "includeAuthnContext": true, + "mappingAttribute": "email", + "jitConfiguration": { + "enabled": true, + "sourceId": "2c9180897427f3a501745042afc83144", + "sourceAttributeMappings": { + "firstName": "okta.firstName", + "lastName": "okta.lastName", + "email": "okta.email" + } + }, + "certificateExpirationDate": "Thu May 26 21:31:59 GMT 2033", + "certificateName": "EMAILADDRESS=info@okta.com, CN=dev-206445, OU=SSOProvider, O=Okta, L=San Francisco, ST=California, C=US" + }, + { + "role": "SAML_SP", + "entityId": "https://acme.identitysoon.com/sp", + "alias": "acme-sp", + "callbackUrl": "https://acme.test-login.sailpoint.com/saml/SSO/alias/acme-sp", + "legacyAcsUrl": "https://megapod-useast1-sso.identitysoon.com/sso/Consumer/metaAlias/acme/sp" + } + ] diff --git a/static/api-specs/idn/v3/schemas/SessionConfiguration.yaml b/static/api-specs/idn/v3/schemas/SessionConfiguration.yaml new file mode 100644 index 000000000..0a9104f80 --- /dev/null +++ b/static/api-specs/idn/v3/schemas/SessionConfiguration.yaml @@ -0,0 +1,17 @@ +type: object +properties: + maxIdleTime: + type: integer + format: int32 + description: The maximum time in minutes a session can be idle. + example: 15 + rememberMe: + type: boolean + description: Denotes if 'remember me' is enabled. + default: false + example: true + maxSessionTime: + type: integer + format: int32 + description: The maximum allowable session time in minutes. + example: 45 diff --git a/static/api-specs/idn/v3/schemas/SpDetails.yaml b/static/api-specs/idn/v3/schemas/SpDetails.yaml new file mode 100644 index 000000000..36c835107 --- /dev/null +++ b/static/api-specs/idn/v3/schemas/SpDetails.yaml @@ -0,0 +1,19 @@ +allOf: + - $ref: './FederationProtocolDetails.yaml' + - type: object + description: Specification of a Service Provider Details + properties: + role: + type: string + description: Federation protocol role + example: SAML_SP + enum: + - SAML_SP + alias: + type: string + description: Unique alias used to identify the selected local service provider based on used URL. Used with SP configurations. + example: acme-sp + callbackUrl: + type: string + description: The allowed callback URL where users will be redirected to after authentication. Used with SP configurations. + example: https://stradbroke-sso.identitysoon.com/sso/Consumer/metaAlias/cdov-saml/sp From 5432a3245f915aa4e7cd7fd1d3e041bb45374dd9 Mon Sep 17 00:00:00 2001 From: GitHub Action Bot Date: Mon, 1 Jul 2024 17:14:25 +0000 Subject: [PATCH 46/74] Automated commit by github action: 9748371607 --- ...l-identity-snapshot-date-access-items.yaml | 17 ++++++++------- .../paths/identity-set-lifecycle-state.yaml | 10 ++++----- static/api-specs/idn/beta/paths/source.yaml | 17 +++++++++++++++ .../idn/v3/paths/campaign-filters.yaml | 18 +++++++--------- .../paths/identity-set-lifecycle-state.yaml | 10 ++++----- static/api-specs/idn/v3/paths/source.yaml | 17 +++++++++++++++ .../idn/v3/schemas/CampaignFilterDetails.yaml | 21 +++++++------------ 7 files changed, 69 insertions(+), 41 deletions(-) diff --git a/static/api-specs/idn/beta/paths/historical-identity-snapshot-date-access-items.yaml b/static/api-specs/idn/beta/paths/historical-identity-snapshot-date-access-items.yaml index 2c61b9e4a..7325eda5a 100644 --- a/static/api-specs/idn/beta/paths/historical-identity-snapshot-date-access-items.yaml +++ b/static/api-specs/idn/beta/paths/historical-identity-snapshot-date-access-items.yaml @@ -2,34 +2,35 @@ get: operationId: listIdentitySnapshotAccessItems tags: - Identity History - summary: Gets the list of identity access items at a given date filterd by item type + summary: Get Identity Access Items Snapshot description: >- - This method retrieves the list of identity access items at a given date filterd by item type - Requires authorization scope of 'idn:identity-history:read' + Use this API to get a list of identity access items at a specified date, filtered by item type. + security: + - UserContextAuth: [idn:identity-history:read] parameters: - in: path name: id schema: type: string required: true - description: The identity id + description: Identity ID. example: '8c190e6787aa4ed9a90bd9d5344523fb' - in: path name: date schema: type: string required: true - description: The specified date + description: Specified date. example: '2007-03-01T13:00:00Z' - in: query name: type schema: type: string - description: The access item type + description: Access item type. example: account responses: '200': - description: The identity object. + description: Identity object. content: application/json: schema: @@ -102,5 +103,7 @@ get: $ref: '../../v3/responses/403.yaml' '404': $ref: '../../v3/responses/404.yaml' + '429': + $ref: '../../v3/responses/429.yaml' '500': $ref: '../../v3/responses/500.yaml' \ No newline at end of file diff --git a/static/api-specs/idn/beta/paths/identity-set-lifecycle-state.yaml b/static/api-specs/idn/beta/paths/identity-set-lifecycle-state.yaml index a75a23136..b27cc0a38 100644 --- a/static/api-specs/idn/beta/paths/identity-set-lifecycle-state.yaml +++ b/static/api-specs/idn/beta/paths/identity-set-lifecycle-state.yaml @@ -4,14 +4,14 @@ post: - Lifecycle States summary: Set Lifecycle State description: | - Use this endpoint to set/update an identity's lifecycle state to the one provided and update the corresponding identity profile. + Use this API to set/update an identity's lifecycle state to the one provided and update the corresponding identity profile. - A token with ORG_ADMIN or API authority is required to call this API. + A token with ORG_ADMIN or API authority and the appropriate user context is required to call this API. parameters: - in: path name: identity-id description: >- - The ID of the identity to update. + ID of the identity to update. required: true example: 2c9180857893f1290178944561990364 schema: @@ -27,7 +27,7 @@ post: lifecycleStateId: type: string format: uuid - description: The ID of the lifecycle state to set. + description: ID of the lifecycle state to set. example: 2c9180877a86e408017a8c19fefe046c responses: '200': @@ -41,7 +41,7 @@ post: type: string format: uuid example: 2c9180837ab5b716017ab7c6c9ef1e20 - description: The ID of the IdentityRequest object that is generated when the workflow launches. To follow the IdentityRequest, you can provide this ID with a [Get Account Activity request](https://developer.sailpoint.com/docs/api/beta/get-account-activity/). The response will contain relevant information about the IdentityRequest, such as its status. + description: ID of the IdentityRequest object that is generated when the workflow launches. To follow the IdentityRequest, you can provide this ID with a [Get Account Activity request](https://developer.sailpoint.com/docs/api/beta/get-account-activity/). The response will contain relevant information about the IdentityRequest, such as its status. '400': $ref: '../../v3/responses/400.yaml' '401': diff --git a/static/api-specs/idn/beta/paths/source.yaml b/static/api-specs/idn/beta/paths/source.yaml index f1511d14e..9260102fe 100644 --- a/static/api-specs/idn/beta/paths/source.yaml +++ b/static/api-specs/idn/beta/paths/source.yaml @@ -208,6 +208,23 @@ patch: "value": "Group Aggregation-test" } ] + Enable notifications for new account provisioning on a source: + description: This example shows how you can configure and enable email notifications that will send when new accounts are provisioned on a source. + value: + [ + { + "op": "replace", + "path": "/connectorAttributes/accountCreateNotification", + "value": { + "notifyList": [ + "Distribution.list@demo.com" + ], + "notifyAccountOwner": true, + "enabled": true, + "notifyAccountOwnerAltEmail": false + } + } + ] responses: '200': description: >- diff --git a/static/api-specs/idn/v3/paths/campaign-filters.yaml b/static/api-specs/idn/v3/paths/campaign-filters.yaml index 2e02f6fbb..5c95d7e96 100644 --- a/static/api-specs/idn/v3/paths/campaign-filters.yaml +++ b/static/api-specs/idn/v3/paths/campaign-filters.yaml @@ -2,9 +2,9 @@ post: operationId: createCampaignFilter tags: - Certification Campaign Filters - summary: Create a Campaign Filter + summary: Create Campaign Filter description: >- - Create a campaign Filter based on filter details and criteria. + Use this API to create a campaign filter based on filter details and criteria. security: - UserContextAuth: [ idn:campaign-filter:create ] requestBody: @@ -36,10 +36,7 @@ get: - Certification Campaign Filters summary: List Campaign Filters description: >- - Lists all Campaign Filters. Scope can be reduced via standard V3 query params. - - - All Campaign Filters matching the query params + Use this API to list all campaign filters. You can reduce scope with standard V3 query parameters. security: - UserContextAuth: [ idn:campaign-filter-list:read ] @@ -61,8 +58,7 @@ get: - in: query name: includeSystemFilters description: >- - If true, include system filters in the count and results, exclude them otherwise. If not provided any value for it - then by default it is true. + If this is true, the API includes system filters in the count and results. Otherwise it excludes them. If no value is provided, the default is true. required: false example: true schema: @@ -70,7 +66,7 @@ get: default: true responses: '200': - description: List of campaign filter objects + description: List of campaign filter objects. content: application/json: schema: @@ -78,12 +74,12 @@ get: properties: items: type: array - description: The list of campaign filters + description: List of campaign filters. items: $ref: '../schemas/CampaignFilterDetails.yaml' count: type: integer - description: The number of filters returned + description: Number of filters returned. example: 2 example: { "items": [ diff --git a/static/api-specs/idn/v3/paths/identity-set-lifecycle-state.yaml b/static/api-specs/idn/v3/paths/identity-set-lifecycle-state.yaml index 17aaf979a..c65ad656d 100644 --- a/static/api-specs/idn/v3/paths/identity-set-lifecycle-state.yaml +++ b/static/api-specs/idn/v3/paths/identity-set-lifecycle-state.yaml @@ -4,16 +4,16 @@ post: - Lifecycle States summary: Set Lifecycle State description: >- - Use this endpoint to set/update an identity's lifecycle state to the one provided and update the corresponding identity profile. + Use this API to set/update an identity's lifecycle state to the one provided and update the corresponding identity profile. - A token with ORG_ADMIN or API authority is required to call this API. + A token with ORG_ADMIN or API authority and the appropriate user context is required to call this API. security: - UserContextAuth: [idn:identity-lifecycle-state:update] parameters: - in: path name: identity-id description: >- - The ID of the identity to update. + ID of the identity to update. required: true example: 2c9180857893f1290178944561990364 schema: @@ -27,7 +27,7 @@ post: properties: lifecycleStateId: type: string - description: The ID of the lifecycle state to set. + description: ID of the lifecycle state to set. example: 2c9180877a86e408017a8c19fefe046c responses: '200': @@ -40,7 +40,7 @@ post: accountActivityId: type: string example: 2c9180837ab5b716017ab7c6c9ef1e20 - description: The ID of the IdentityRequest object that is generated when the workflow launches. To follow the IdentityRequest, you can provide this ID with a [Get Account Activity request](https://developer.sailpoint.com/docs/api/v3/get-account-activity/). The response will contain relevant information about the IdentityRequest, such as its status. + description: ID of the IdentityRequest object that is generated when the workflow launches. To follow the IdentityRequest, you can provide this ID with a [Get Account Activity request](https://developer.sailpoint.com/docs/api/v3/get-account-activity/). The response will contain relevant information about the IdentityRequest, such as its status. '400': $ref: '../responses/400.yaml' '401': diff --git a/static/api-specs/idn/v3/paths/source.yaml b/static/api-specs/idn/v3/paths/source.yaml index 792a8f030..0ddf9ad36 100644 --- a/static/api-specs/idn/v3/paths/source.yaml +++ b/static/api-specs/idn/v3/paths/source.yaml @@ -209,6 +209,23 @@ patch: "value": "Group Aggregation-test" } ] + Enable notifications for new account provisioning on a source: + description: This example shows how you can configure and enable email notifications that will send when new accounts are provisioned on a source. + value: + [ + { + "op": "replace", + "path": "/connectorAttributes/accountCreateNotification", + "value": { + "notifyList": [ + "Distribution.list@demo.com" + ], + "notifyAccountOwner": true, + "enabled": true, + "notifyAccountOwnerAltEmail": false + } + } + ] responses: '200': description: >- diff --git a/static/api-specs/idn/v3/schemas/CampaignFilterDetails.yaml b/static/api-specs/idn/v3/schemas/CampaignFilterDetails.yaml index 3e2bfe71d..d2a07868b 100644 --- a/static/api-specs/idn/v3/schemas/CampaignFilterDetails.yaml +++ b/static/api-specs/idn/v3/schemas/CampaignFilterDetails.yaml @@ -1,27 +1,23 @@ type: object description: Campaign Filter Details properties: - id: - type: string - description: Id of the campaign filter - example: e9f9a1397b842fd5a65842087040d3ac name: type: string - description: This is campaign filter's name. + description: Campaign filter name. example: Identity Attribute Campaign Filter description: type: string - description: This is campaign filter's description. - example: Campaign filter to certify data based on specified property of Identity Attribute. + description: Campaign filter description. + example: Campaign filter to certify data based on an identity attribute's specified property. owner: type: string - description: The owner of this filter. This field is automatically populated at creation time with the current user. + description: Owner of the filter. This field automatically populates at creation time with the current user. example: SailPoint Support nullable: true mode: description: >- - The mode/type of Filter, where it is of INCLUSION or EXCLUSION type. INCLUSION type will include the data in generated campaign - as per specified in criteria, whereas EXCLUSION type will exclude the the data in generated campaign as per specified in criteria. + Mode/type of filter, either the INCLUSION or EXCLUSION type. The INCLUSION type includes the data in generated campaigns + as per specified in the criteria, whereas the EXCLUSION type excludes the data in generated campaigns as per specified in criteria. enum: - "INCLUSION" - "EXCLUSION" @@ -40,12 +36,12 @@ properties: - nullable: true property: type: string - description: The specified key from the Type of criteria. + description: Specified key from the type of criteria. example: displayName nullable: true value: type: string - description: The value for the specified key from the Type of Criteria + description: Value for the specified key from the type of criteria. example: Allie nullable: true required: @@ -69,6 +65,5 @@ properties: ] required: - name - - description - owner - mode \ No newline at end of file From 0fcd8f977922522386d80684c1dfc7ea3120f21a Mon Sep 17 00:00:00 2001 From: con-docs Date: Mon, 1 Jul 2024 12:56:17 -0500 Subject: [PATCH 47/74] devrel-1602 --- .../saas-connectivity/connector-commands/account-create.md | 2 ++ .../saas-connectivity/connector-commands/account-delete.md | 2 ++ .../saas-connectivity/connector-commands/account-disable.md | 2 ++ .../saas-connectivity/connector-commands/account-discover.md | 2 ++ .../saas-connectivity/connector-commands/account-enable.md | 2 ++ .../saas-connectivity/connector-commands/account-list.md | 2 ++ .../saas-connectivity/connector-commands/account-read.md | 2 ++ .../saas-connectivity/connector-commands/account-unlock.md | 2 ++ .../saas-connectivity/connector-commands/account-update.md | 2 ++ .../saas-connectivity/connector-commands/change-password.md | 2 ++ .../saas-connectivity/connector-commands/entitlement-list.md | 2 ++ .../saas-connectivity/connector-commands/entitlement-read.md | 2 ++ .../connector-commands/source-data-discover.md | 2 ++ .../saas-connectivity/connector-commands/source-data-read.md | 2 ++ .../saas-connectivity/connector-commands/test-connection.md | 2 ++ 15 files changed, 30 insertions(+) diff --git a/docs/connectivity/saas-connectivity/connector-commands/account-create.md b/docs/connectivity/saas-connectivity/connector-commands/account-create.md index 477522c15..32a84dfd5 100644 --- a/docs/connectivity/saas-connectivity/connector-commands/account-create.md +++ b/docs/connectivity/saas-connectivity/connector-commands/account-create.md @@ -59,6 +59,8 @@ tags: ['Connectivity', 'Connector Command'] The account create command triggers whenever ISC is told to provision entitlements for an identity on the target source, but no account for the identity on the target source exists yet. For example, if you create an access profile that grants a group on the target source and then add that access profile to a role, any identity matching that role’s membership criteria will be granted to the group. ISC determines which identities do not have accounts on the target source and triggers the account create command for each identity. If an identity already has an account, then it invokes the account update command. +To use this command, you must specify this value in the `commands` array: `std:account:create` + ## The Provisioning Plan The account create command accepts a provisioning plan from ISC and creates the corresponding account(s) in the target source. When you configure your source in ISC, you must set up ‘Create Profile’ to tell ISC how to provision new accounts for your source. diff --git a/docs/connectivity/saas-connectivity/connector-commands/account-delete.md b/docs/connectivity/saas-connectivity/connector-commands/account-delete.md index 2ce42fedf..575047250 100644 --- a/docs/connectivity/saas-connectivity/connector-commands/account-delete.md +++ b/docs/connectivity/saas-connectivity/connector-commands/account-delete.md @@ -40,6 +40,8 @@ The account delete command sends one attribute from ISC, the identity to delete. Enable account delete in ISC through a BeforeProvisioning rule. The connector honors whichever operation the provisioning plan sends. For more information, see the [documentation](https://community.sailpoint.com/t5/Identity Security Cloud-Articles/Identity Security Cloud-Rule-Guide/ta-p/76665) and an [example implementation](https://community.sailpoint.com/t5/Identity Security Cloud-Wiki/Identity Security Cloud-Rule-Guide-Before-Provisioning-Rule/ta-p/77415). +To use this command, you must specify this value in the `commands` array: `std:account:delete` + The following snippet shows an example of account delete command implementation: [index.ts](https://github.com/sailpoint-oss/airtable-example-connector/blob/main/src/index.ts) diff --git a/docs/connectivity/saas-connectivity/connector-commands/account-disable.md b/docs/connectivity/saas-connectivity/connector-commands/account-disable.md index 105371100..336dd04f7 100644 --- a/docs/connectivity/saas-connectivity/connector-commands/account-disable.md +++ b/docs/connectivity/saas-connectivity/connector-commands/account-disable.md @@ -56,6 +56,8 @@ Disabling accounts is generally preferred if the source supports account disabli > 🚧 It is important to note that although SaaS Connectivity supports the account delete command, ISC never sends the account delete command, only the account disable command. The connector’s developer determines the appropriate action for account disable on the source. +To use this command, you must specify this value in the `commands` array: `std:account:disable` + Account disable is similar to implementing the account update command. If you have implemented your source call to modify any of the values on your source, then you can use the same method to implement the command. The following code implements disable: ```javascript diff --git a/docs/connectivity/saas-connectivity/connector-commands/account-discover.md b/docs/connectivity/saas-connectivity/connector-commands/account-discover.md index f83efc723..6dcc33a18 100644 --- a/docs/connectivity/saas-connectivity/connector-commands/account-discover.md +++ b/docs/connectivity/saas-connectivity/connector-commands/account-discover.md @@ -53,6 +53,8 @@ tags: ['Connectivity', 'Connector Command'] The account discover schema command tells ISC to dynamically create the account schema for the source rather than use the account schema provided by the connector in connector-spec.json. It is often ideal to statically define the account schema because it is generally more performant and easier to develop and reason about the code. However, some sources have schemas that can be different for each customer deployment. It can also be difficult to determine which account attributes to statically expose, which requires the schema to be dynamically generated. SalesForce is an example of a source that can have thousands of account attributes, which makes it impractical to statically define a set of attributes that satisfies all connector users. Although the SalesForce connector defines a standard set of account attributes out of the box, it also allows schema discovery for users looking for more attributes. +To use this command, you must specify this value in the `commands` array: `std:account:discover-schema` + ## Implementation If your connector requires dynamic schema discovery, you must add std:account:discover-schema to the list of commands in connector-spec.json. Because the account schema is dynamic, you do not need to specify an accountSchema or an accountCreateTemplate object in connector-spec.json. Your connector-spec.json file will look similar to this example from the [Airtable connector](https://github.com/sailpoint-oss/airtable-example-connector/blob/main/connector-spec.json). diff --git a/docs/connectivity/saas-connectivity/connector-commands/account-enable.md b/docs/connectivity/saas-connectivity/connector-commands/account-enable.md index 2f5c9e7a6..1ab547055 100644 --- a/docs/connectivity/saas-connectivity/connector-commands/account-enable.md +++ b/docs/connectivity/saas-connectivity/connector-commands/account-enable.md @@ -52,6 +52,8 @@ tags: ['Connectivity', 'Connector Command'] You typically invoke the `account enable` command during the joiner, mover, leaver (JML) lifecycle. An identity’s rejoining the organization or move to a role that grants access to a previously disabled account triggers the account enable command. +To use this command, you must specify this value in the `commands` array: `std:account:enable` + Implementing `account enable` is similar to implementing the `account update` command. If you have implemented your source call to modify any of the values on your source, then you can use the same method to implement the command. The following code implements enable: ```javascript diff --git a/docs/connectivity/saas-connectivity/connector-commands/account-list.md b/docs/connectivity/saas-connectivity/connector-commands/account-list.md index 9362a721d..70e528c82 100644 --- a/docs/connectivity/saas-connectivity/connector-commands/account-list.md +++ b/docs/connectivity/saas-connectivity/connector-commands/account-list.md @@ -49,6 +49,8 @@ tags: ['Connectivity', 'Connector Command'] The account list command aggregates all accounts from the target source into Identity Security Cloud. ISC calls this command during a manual or scheduled account aggregation. +To use this command, you must specify this value in the `commands` array: `std:account:list` + ![Account List](./img/account_list_idn.png) ## Implementation diff --git a/docs/connectivity/saas-connectivity/connector-commands/account-read.md b/docs/connectivity/saas-connectivity/connector-commands/account-read.md index 21d3e0a2e..cbc484a3a 100644 --- a/docs/connectivity/saas-connectivity/connector-commands/account-read.md +++ b/docs/connectivity/saas-connectivity/connector-commands/account-read.md @@ -52,6 +52,8 @@ tags: ['Connectivity', 'Connector Command'] The account read command aggregates a single account from the target source into Identity Security Cloud. ISC can call this command during a “one-off” account refresh, which you can trigger by aggregating an individual account in ISC. +To use this command, you must specify this value in the `commands` array: `std:account:read` + ![Account Read](./img/account_read_idn.png) ## Implementation diff --git a/docs/connectivity/saas-connectivity/connector-commands/account-unlock.md b/docs/connectivity/saas-connectivity/connector-commands/account-unlock.md index e110ed10f..d5ea79f34 100644 --- a/docs/connectivity/saas-connectivity/connector-commands/account-unlock.md +++ b/docs/connectivity/saas-connectivity/connector-commands/account-unlock.md @@ -52,6 +52,8 @@ tags: ['Connectivity', 'Connector Command'] The account lock and account unlock commands provide ways to temporarily prevent access to an account. ISC only supports the unlock command, so accounts must be locked on the source level, but they can be unlocked through ISC, and ISC can store the account's status. +To use this command, you must specify this value in the `commands` array: `std:account:unlock` + Implementing account unlock is similar to the other commands that update attributes on an account. The following code unlocks an account: ```javascript diff --git a/docs/connectivity/saas-connectivity/connector-commands/account-update.md b/docs/connectivity/saas-connectivity/connector-commands/account-update.md index 5c9f8dfd5..202cae19e 100644 --- a/docs/connectivity/saas-connectivity/connector-commands/account-update.md +++ b/docs/connectivity/saas-connectivity/connector-commands/account-update.md @@ -61,6 +61,8 @@ tags: ['Connectivity', 'Connector Command'] The account update command triggers whenever ISC is told to modify an identity's attributes or entitlements on the target source. For example, granting an identity a new entitlement through a role, changing an identity’s lifecycle state, or modifying an identity attribute tied to an account attribute all trigger the account update command. +To use this command, you must specify this value in the `commands` array: `std:account:update` + ## Input Schema The payload from ISC contains the ID of the identity to modify, the configuration items the connector needs to call the source API, and one or more change operations to apply to the identity. Each operation has the following special considerations: diff --git a/docs/connectivity/saas-connectivity/connector-commands/change-password.md b/docs/connectivity/saas-connectivity/connector-commands/change-password.md index 36028109a..2664497df 100644 --- a/docs/connectivity/saas-connectivity/connector-commands/change-password.md +++ b/docs/connectivity/saas-connectivity/connector-commands/change-password.md @@ -37,6 +37,8 @@ tags: ['Connectivity', 'Connector Command'] The change password command is triggered in ISC when a user changes their password through ISC. When this occurs, if your source has change password enabled, then you can change the user password on the source system through ISC. +To use this command, you must specify this value in the `commands` array: `std:change-password` + ## The Provisioning Plan The change password command sends the password change event to your connector whenever a user changes their password through the Password Manager. Handling this even is as simple as implementing a method on the source system that updates a users password diff --git a/docs/connectivity/saas-connectivity/connector-commands/entitlement-list.md b/docs/connectivity/saas-connectivity/connector-commands/entitlement-list.md index 931e542e3..4c11a53bd 100644 --- a/docs/connectivity/saas-connectivity/connector-commands/entitlement-list.md +++ b/docs/connectivity/saas-connectivity/connector-commands/entitlement-list.md @@ -44,6 +44,8 @@ tags: ['Connectivity', 'Connector Command'] The entitlement list command triggers during a manual or scheduled entitlement aggregation operation within ISC. This operation gathers a list of all entitlements available on the target source, usually multi-valued entitlements like groups or roles. This operation provides ISC administrators with a list of entitlements available on the source so they can create access profiles and roles accordingly, and it provides ISC with more details about the entitlements. The entitlement schema’s minimum requirements are name and ID, but you can add other values, such as created date, updated date, status, etc. +To use this command, you must specify this value in the `commands` array: `std:entitlement:list` + ![Discover Schema 4](./img/entitlement_list_idn.png) ## Defining the Schema diff --git a/docs/connectivity/saas-connectivity/connector-commands/entitlement-read.md b/docs/connectivity/saas-connectivity/connector-commands/entitlement-read.md index 5481797f4..a42bbe969 100644 --- a/docs/connectivity/saas-connectivity/connector-commands/entitlement-read.md +++ b/docs/connectivity/saas-connectivity/connector-commands/entitlement-read.md @@ -15,6 +15,8 @@ At this time Entitlement Read is not triggered from ISC for any specific workflo ::: +To use this command, you must specify this value in the `commands` array: `std:entitlement:list` + | Input/Output | Data Type | | :----------- | :----------------------: | | Input | StdEntitlementReadInput | diff --git a/docs/connectivity/saas-connectivity/connector-commands/source-data-discover.md b/docs/connectivity/saas-connectivity/connector-commands/source-data-discover.md index 14bc2e672..dd4f6318a 100644 --- a/docs/connectivity/saas-connectivity/connector-commands/source-data-discover.md +++ b/docs/connectivity/saas-connectivity/connector-commands/source-data-discover.md @@ -48,6 +48,8 @@ Use the source data discover command to identify the types of data your source c One typical use for the source data discover command is found in Identity Security Cloud customer forms for dropdown menus: they use the command to identify the additional source types their sources can provide to Identity Security Cloud and use that information to populate the dropdown menus. +To use this command, you must specify this value in the `commands` array: `std:source-data:discover` + This is a simple example of the source data discover command. It has been implemented to list two types of queries that the Airtable source can supply. ```javascript diff --git a/docs/connectivity/saas-connectivity/connector-commands/source-data-read.md b/docs/connectivity/saas-connectivity/connector-commands/source-data-read.md index fb4f86148..e601a3452 100644 --- a/docs/connectivity/saas-connectivity/connector-commands/source-data-read.md +++ b/docs/connectivity/saas-connectivity/connector-commands/source-data-read.md @@ -47,6 +47,8 @@ tags: ['Connectivity', 'Connector Command'] Use the source data read command to query a source in Identity Security Cloud and return a set of data. This data is typically used to populate a dropdown menu for selection purposes. This functionality is typically useful for Identity Security Cloud forms, but it can be used for any type of implementation that requires you to get other information from a source, information that is not normally retrieved from identites or entitlements. +To use this command, you must specify this value in the `commands` array: `std:source-data:read` + This is a simple example of the source data read command. It is implemented to retrieve the base ID name. The `sourceDataKey` is required, the `source data read` command should return it. ```javascript diff --git a/docs/connectivity/saas-connectivity/connector-commands/test-connection.md b/docs/connectivity/saas-connectivity/connector-commands/test-connection.md index 94ed0e6f2..416b9b417 100644 --- a/docs/connectivity/saas-connectivity/connector-commands/test-connection.md +++ b/docs/connectivity/saas-connectivity/connector-commands/test-connection.md @@ -25,6 +25,8 @@ tags: ['Connectivity', 'Connector Command'] The test connection command ensures the connector can communicate with the target web service. It validates API credentials, host names, ports, and other configuration items. To implement this command, look for either a health endpoint or a simple GET endpoint. Some web services implement a health endpoint that returns status information about the service, which can be useful to test a connection. If no health endpoint exists, use a simple GET endpoint that takes few to no parameters to ensure the connector can make a successful call to the web service. +To use this command, you must specify this value in the `commands` array: `std:test-connection` + Use ‘Test Connection’ in the ISC UI after an admin has finished entering configuration information for a new instance of the connector. ![Test Connection](./img/test_command_idn.png) From 23e02451b6fb41e1076b7c7170b21ced584d0412 Mon Sep 17 00:00:00 2001 From: christina-gagnon-sp <97126282+christina-gagnon-sp@users.noreply.github.com> Date: Mon, 1 Jul 2024 14:09:17 -0500 Subject: [PATCH 48/74] Fixed highlight markup --- .../event-triggers/available/access-request-decision.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/extensibility/event-triggers/available/access-request-decision.md b/docs/extensibility/event-triggers/available/access-request-decision.md index 45aa95877..901ac153b 100644 --- a/docs/extensibility/event-triggers/available/access-request-decision.md +++ b/docs/extensibility/event-triggers/available/access-request-decision.md @@ -79,7 +79,7 @@ This is an example input from this trigger: ``` :::info -```clientMetadata``` is determined by the user that invoked ```create-access-request``` and can contain any value at runtime that was specified in the access request. +`clientMetadata` is determined by the user that invoked `create-access-request` and can contain any value at runtime that was specified in the access request. ::: From 2ae64c01eae73006d8cf708f0675b55daec4d8b1 Mon Sep 17 00:00:00 2001 From: christina-gagnon-sp <97126282+christina-gagnon-sp@users.noreply.github.com> Date: Mon, 1 Jul 2024 17:41:28 -0500 Subject: [PATCH 49/74] Removed reference to terminated status and added new diagram --- .../account-aggregation-completed.md | 6 +----- .../available/img/aggregation-diagram.png | Bin 102730 -> 33280 bytes 2 files changed, 1 insertion(+), 5 deletions(-) diff --git a/docs/extensibility/event-triggers/available/account-aggregation-completed.md b/docs/extensibility/event-triggers/available/account-aggregation-completed.md index 6e0de65a9..1451fbca7 100644 --- a/docs/extensibility/event-triggers/available/account-aggregation-completed.md +++ b/docs/extensibility/event-triggers/available/account-aggregation-completed.md @@ -20,7 +20,6 @@ The platform has introduced an event trigger within the Source Aggregation workf After the initial collection of accounts in the source system during aggregation completes, some uses cases for this trigger include the following: - Notify an administrator that Identity Security Cloud was able to successfully connect to the source system and collect source accounts. -- Notify an administrator when the aggregation is terminated manually during the account collection phase. - Notify an administrator or system (e.g. PagerDuty) that Identity Security Cloud failed to collect accounts during aggregation and indicate required remediation for the source system. :::info @@ -69,13 +68,10 @@ In this example, there are 10 changed accounts (`scanned` (200) - `unchanged` - > This event trigger fires even without changed accounts. The unchanged count will match the scanned accounts in the response. -The status of the aggregation can be one of three possible values: +The status of the aggregation can be one of two possible values: - **Success**: Account collection was successful and aggregation can move to the next step. - **Error**: There is a failure in account collection or an issue connecting to the source. The `errors` vary by source. -- **Termination**: The aggregation was terminated during the account collection phase. Aggregation can be terminated when the account deletion threshold is exceeded. For example, an account delete threshold of 10% is set by default for the source, and if the number of `removed` accounts for the above example is 21 (more than 10% of `scanned` accounts (200)), the aggregation is cancelled. - -![Account_Delete_Threshold](./img/aggregation-delete-threshold.png) ## Additional Information and Links diff --git a/docs/extensibility/event-triggers/available/img/aggregation-diagram.png b/docs/extensibility/event-triggers/available/img/aggregation-diagram.png index ca1ddaac8ad8c1d1e31101c7d08972696ea21c1d..8296d3bd483db89a7a065790fc32873ff93cc719 100644 GIT binary patch literal 33280 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ξ5|b-n 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 Date: Tue, 2 Jul 2024 16:55:54 -0400 Subject: [PATCH 50/74] start for upgrading to v3 --- docs/api/authorization.md | 2 +- docs/api/getting-started.md | 2 +- .../api/nerm/pagination-metadata-filtering.md | 2 +- docs/api/postman-collections.md | 2 +- docs/api/rate-limit.md | 2 +- docs/api/standard-collection-parameters.md | 4 +- .../event-triggers/filtering-events.md | 4 +- docs/extensibility/rules/cloud-rules/index.md | 2 +- .../web_services_after_operation_rule.md | 2 +- .../rules/guides/your_first_rule.md | 4 +- .../transforms/operations/date-compare.md | 2 +- .../operations/generate-random-string.md | 2 +- docusaurus.config.js | 6 +- output.txt | 9 + package-lock.json | 16970 +++++++++++++--- package.json | 27 +- sidebars.js | 8 +- 17 files changed, 14019 insertions(+), 3031 deletions(-) create mode 100644 output.txt diff --git a/docs/api/authorization.md b/docs/api/authorization.md index 2e27da8ce..7c8bfb681 100644 --- a/docs/api/authorization.md +++ b/docs/api/authorization.md @@ -94,7 +94,7 @@ When you create a PAT in the UI, you can apply scopes to the token. More informa You can [create PATs](https://developer.sailpoint.com/docs/api/v3/create-personal-access-token) programmatically with the API. The request body for the endpoint allows the caller to specify a list of scopes to be applied to the PAT. If the `scope` property is omitted from the request body, then `sp:scopes:all` is granted to the credentials. The following example shows how to generate a PAT with the `idn:access-request:manage` and `idn:nelm:manage` scopes. -POST +POST `https://{tenant}.api.identitynow.com/v3/personal-access-tokens` Request Body diff --git a/docs/api/getting-started.md b/docs/api/getting-started.md index 0f1dffe2c..f9ac44ab9 100644 --- a/docs/api/getting-started.md +++ b/docs/api/getting-started.md @@ -69,7 +69,7 @@ There is a rate limit of 100 requests per `access_token` per 10 seconds for V3 A **Headers**: -- **Retry-After**: {seconds to wait before rate limit resets} +- **Retry-After**: [seconds to wait before rate limit resets] ## API Tools diff --git a/docs/api/nerm/pagination-metadata-filtering.md b/docs/api/nerm/pagination-metadata-filtering.md index d2fc8673d..6cff5dba3 100644 --- a/docs/api/nerm/pagination-metadata-filtering.md +++ b/docs/api/nerm/pagination-metadata-filtering.md @@ -179,7 +179,7 @@ This rule searches for profiles based on an attribute that profile has. | object_type | string **required** | The values must equal 'NeAttribute' | | condition_object_id | string **required** | this is the id of the attribute you are searching against | | comparison_operator | string **required** | This is how the comparison is made for the attribute values.

    Available basic operators:
    • == (equals)
    • != (not equal)
    • > (greater than)
    • < (less than)
    • start_with? (starts with)
    • end_with? (ends with)
    • include? (includes)
    Available date operators:
    • before (before specific date)
    • after (after specific date)
    • > (more than X days before/after today)
    • < (less than X days before/after today)
    • == (equal to X days before/after today)
    | -| value | string **required** | This is the value used for comparison.

    Value formatting:
    • profile select attribute: ID of profile
    • profile search attribute: ID of profile
    • user select attribute: ID of user
    • user search attribute: ID of user
    • date attribute (before, after): correct date format for attribute
    • date attribute (>, <, ==): "X before" or "X after" where X is the number of days
    | +| value | string **required** | This is the value used for comparison.

    Value formatting:
    • profile select attribute: ID of profile
    • profile search attribute: ID of profile
    • user select attribute: ID of user
    • user search attribute: ID of user
    • date attribute (before, after): correct date format for attribute
    • date attribute (\>, \<, ==): "X before" or "X after" where X is the number of days
    | | \_destroy | boolean | Supplying this option with "true" will cause the condition to be destroyed | Example: diff --git a/docs/api/postman-collections.md b/docs/api/postman-collections.md index 4e51e4f3c..6f5eb9e41 100644 --- a/docs/api/postman-collections.md +++ b/docs/api/postman-collections.md @@ -51,7 +51,7 @@ To send API requests in Postman, you must authenticate to the APIs. To authentic :::caution -Don't specify your baseUrl in your environment variables. When you fork an API collection, the baseUrl is automatically set as . Setting your baseURl in your environment variables may interfere with this process. +Don't specify your baseUrl in your environment variables. When you fork an API collection, the baseUrl is automatically set as `https://{{tenant}}.api.{{domain}}.com`. Setting your baseURl in your environment variables may interfere with this process. ::: diff --git a/docs/api/rate-limit.md b/docs/api/rate-limit.md index 327d50989..ec2769cc5 100644 --- a/docs/api/rate-limit.md +++ b/docs/api/rate-limit.md @@ -18,4 +18,4 @@ There is a rate limit of 100 requests per `access_token` per 10 seconds for V3 A **Headers**: -- **Retry-After**: {seconds to wait before rate limit resets} +- **Retry-After**: [seconds to wait before rate limit resets] diff --git a/docs/api/standard-collection-parameters.md b/docs/api/standard-collection-parameters.md index 4ad531318..70ecab956 100644 --- a/docs/api/standard-collection-parameters.md +++ b/docs/api/standard-collection-parameters.md @@ -50,7 +50,7 @@ The `searchAfter` capability provides the ability to page on sorted field values Here is an example of a search API call with `searchAfter` paging. The first query will get the first set of results. The default limit for search is 10,000, which is different from other collection endpoints. For this example, the query is set to page 100 records at a time. Paginating search queries also requires the `sort` property to be set to `id`. -**POST** +**POST** `https://{tenant}.api.identitynow.com/v3/search?limit=100&count=true` ```json { @@ -64,7 +64,7 @@ Here is an example of a search API call with `searchAfter` paging. The first que This query will return 100 records. To get the next 100 records, find the last record's `id` and use it in the next query's `searchAfter` property. -**POST** +**POST** `https://{tenant}.api.identitynow.com/v3/search?limit=100&count=true` ```json { diff --git a/docs/extensibility/event-triggers/filtering-events.md b/docs/extensibility/event-triggers/filtering-events.md index a5ddee82d..4bf4dcd64 100644 --- a/docs/extensibility/event-triggers/filtering-events.md +++ b/docs/extensibility/event-triggers/filtering-events.md @@ -61,8 +61,8 @@ Operators provide more options to filter JSON structures. | != | **Not equal to** - Evaluates to `true` if operands do not match. | $[?($.identity.name != "george.washington")] | | > | **Greater than** - Evaluates to `true` if the left operand is greater than the right operand. It works on strings and numbers. | $[?($.attributes.created > '2020-04-27T16:48:33.200Z')] | | >= | **Greater than or equal to** - Evaluates to `true` if the left operand is greater than or equal to the right operand. | $[?($.attributes.created >= '2020-04-27T16:48:33.597Z')] | -| < | **Less than** - Evaluates to `true` if the left operand is less than the right operand. | $[?($.attributes.created < '2020-04-27T16:48:33.200Z')] | -| <= | **Less than or equal to** - Evaluates to `true` if the left operand is less than or equal to the right operand. | $[?($.attributes.created <= '2020-04-27T16:48:33.200Z')] | +| \< | **Less than** - Evaluates to `true` if the left operand is less than the right operand. | $[?($.attributes.created < '2020-04-27T16:48:33.200Z')] | +| \<= | **Less than or equal to** - Evaluates to `true` if the left operand is less than or equal to the right operand. | $[?($.attributes.created \<= '2020-04-27T16:48:33.200Z')] | | =~ | **Regular expression** - Evaluates to `true` if the left operand matches the regular expression. | $.changes[?(@.attribute == "department" && @.newValue =~ /US.*Support/i)] | | in | **In** - Evaluates to `true` if the left operand exists in the list of values on the right. | $.changes[?(@.attribute == 'department' && @.newValue in ['sales','engineering'])] | | nin | **Not in** - Evaluates to `true` if the left operand **does not** exist in the list of values on the right. | $.changes[?(@.attribute == 'department' && @.newValue nin ['sales','engineering'])] | diff --git a/docs/extensibility/rules/cloud-rules/index.md b/docs/extensibility/rules/cloud-rules/index.md index 79e3e1466..0843e5ed6 100644 --- a/docs/extensibility/rules/cloud-rules/index.md +++ b/docs/extensibility/rules/cloud-rules/index.md @@ -34,7 +34,7 @@ In this process, SailPoint does _not check_ whether the rule executes correctly ## Submit for Rule Review -To submit your Cloud Rule for review, approval, and inclusion in the SailPoint platform, submit a [SailPoint support portal request](https://support.sailpoint.com/csm) or send an email to . Attach the rule, validator output, tenant name (e.g., acme-sb.identitynow.com for sandbox or acme.identitynow.com for production) and approval for expert services to proceed. If you need assistance writing and testing rules, Expert Services can assist in that process as well. Make sure your contact information is up to date so the review team can contact you if they need to. +To submit your Cloud Rule for review, approval, and inclusion in the SailPoint platform, submit a [SailPoint support portal request](https://support.sailpoint.com/csm) or send an email to `support@sailpoint.com`. Attach the rule, validator output, tenant name (e.g., acme-sb.identitynow.com for sandbox or acme.identitynow.com for production) and approval for expert services to proceed. If you need assistance writing and testing rules, Expert Services can assist in that process as well. Make sure your contact information is up to date so the review team can contact you if they need to. ## Review Guidelines diff --git a/docs/extensibility/rules/connector-rules/web_services_after_operation_rule.md b/docs/extensibility/rules/connector-rules/web_services_after_operation_rule.md index f40c05dc1..cb0c98207 100644 --- a/docs/extensibility/rules/connector-rules/web_services_after_operation_rule.md +++ b/docs/extensibility/rules/connector-rules/web_services_after_operation_rule.md @@ -26,7 +26,7 @@ This rule calculates attributes after a web-service operation call. | Argument | Type | Purpose | | --- | --- | --- | | application | sailpoint.object.Application | Application whose data file is being processed. | -| processedResponseObject | List> | List of map (account/group). The map contains a key, the identityAttribute of the application schema, and a value, all the account/group attributes (schema) passed by the connector after parsing the respective API response. | +| processedResponseObject | List\\> | List of map (account/group). The map contains a key, the identityAttribute of the application schema, and a value, all the account/group attributes (schema) passed by the connector after parsing the respective API response. | | requestEndPoint | sailpoint.connector.webservices.EndPoint | Current request information. It contains the header, body, context url, method type, response attribute map, successful response code. | | restClient | sailpoint.connector.webservices.WebServicesClient | WebServicesClient (HttpClient) object that enables the user to call the Web Services API target system. | | rawResponseObject | String | String object that holds the raw response returned from the target system, which can be in JSON or XML form. | diff --git a/docs/extensibility/rules/guides/your_first_rule.md b/docs/extensibility/rules/guides/your_first_rule.md index 04e8d62a8..ebb7c3e25 100644 --- a/docs/extensibility/rules/guides/your_first_rule.md +++ b/docs/extensibility/rules/guides/your_first_rule.md @@ -483,11 +483,11 @@ ________________________________________________________________________________ ## Submit for Rule Review -To submit your Cloud Rule for review, approval, and inclusion in the SailPoint platform, submit a [SailPoint support portal request](https://support.sailpoint.com/csm) or send an email to . Attach the rule, validator output, tenant name (e.g., acme-sb.identitynow.com for sandbox or acme.identitynow.com for production) and approval for expert services to proceed. If you need assistance writing and testing rules, Expert Services can assist in that process as well. Make sure your contact information is up to date so the review team can contact you if they need to. +To submit your Cloud Rule for review, approval, and inclusion in the SailPoint platform, submit a [SailPoint support portal request](https://support.sailpoint.com/csm) or send an email to `support@sailpoint.com`. Attach the rule, validator output, tenant name (e.g., acme-sb.identitynow.com for sandbox or acme.identitynow.com for production) and approval for expert services to proceed. If you need assistance writing and testing rules, Expert Services can assist in that process as well. Make sure your contact information is up to date so the review team can contact you if they need to. ## Add Rule To Account Creation -Log into your ISC tenant and navigate to **Admin** -> **Connections** -> **Sources** -> **{Source Name}** -> **Accounts** -> **Create Account**. Scroll to the attribute you wish to use the rule for generating the username. Check the generator radio button and pick your new rule from the drop down. +Log into your ISC tenant and navigate to **Admin** -\> **Connections** -\> **Sources** -\> **[Source Name]** -\> **Accounts** -\> **Create Account**. Scroll to the attribute you wish to use the rule for generating the username. Check the generator radio button and pick your new rule from the drop down. ![Account Create](./img/account-create.png) diff --git a/docs/extensibility/transforms/operations/date-compare.md b/docs/extensibility/transforms/operations/date-compare.md index 5ad89b8a0..3cf0cad10 100644 --- a/docs/extensibility/transforms/operations/date-compare.md +++ b/docs/extensibility/transforms/operations/date-compare.md @@ -54,7 +54,7 @@ The date compare transform takes as an input the two dates to compare, denoted a - **secondDate** - This is the second date to consider (i.e., the date that would be on the right hand side of the comparison operation). - **operator** - This is the comparison to perform. The following values are valid: - **LT**: Strictly less than: firstDate < secondDate - - **LTE**: Less than or equal to: firstDate <= secondDate + - **LTE**: Less than or equal to: firstDate \<= secondDate - **GT**: Strictly greater than: firstDate > secondDate - **GTE**: Greater than or equal to: firstDate >= secondDate - **positiveCondition** - This is the value to return if the comparison is true. diff --git a/docs/extensibility/transforms/operations/generate-random-string.md b/docs/extensibility/transforms/operations/generate-random-string.md index a48f201be..50daa6b5c 100644 --- a/docs/extensibility/transforms/operations/generate-random-string.md +++ b/docs/extensibility/transforms/operations/generate-random-string.md @@ -57,7 +57,7 @@ The structure of a generate random string transform requires the `name` of the r - ( - ) - \+ - - < + - \< - \> - ? - **length** - This is the required length ofthe randomly generated string. diff --git a/docusaurus.config.js b/docusaurus.config.js index 704771810..ccf8220cf 100644 --- a/docusaurus.config.js +++ b/docusaurus.config.js @@ -1,8 +1,9 @@ // @ts-check // Note: type annotations allow type checking and IDEs autocompletion -const lightCodeTheme = require('prism-react-renderer/themes/github'); -const darkCodeTheme = require('prism-react-renderer/themes/dracula'); +const {themes} = require('prism-react-renderer'); +const lightCodeTheme = themes.github; +const darkCodeTheme = themes.dracula; const footer = require('./footer'); const navbar = require('./navbar'); @@ -37,7 +38,6 @@ const config = { showLastUpdateTime: true, sidebarCollapsible: true, sidebarPath: require.resolve('./sidebars.js'), - docLayoutComponent: '@theme/DocPage', docItemComponent: '@theme/ApiItem', // Derived from docusaurus-theme-openapi }, theme: { diff --git a/output.txt b/output.txt new file mode 100644 index 000000000..d40209041 --- /dev/null +++ b/output.txt @@ -0,0 +1,9 @@ + +> sailpoint-developer-portal@0.0.0 start +> docusaurus start --port=4200 + + + ------------------------------------------------------------------------------ Update available 3.0.1 → 3.4.0 To upgrade Docusaurus packages with the latest version, run the following command: `npm i @docusaurus/plugin-client-redirects@latest @docusaurus/plugin-content-docs@latest @docusaurus/plugin-google-tag-manager@latest @docusaurus/theme-mermaid@latest @docusaurus/core@latest @docusaurus/types@latest @docusaurus/module-type-aliases@latest @docusaurus/preset-classic@latest` ------------------------------------------------------------------------------ + +[INFO] Starting the development server... +[ERROR] Something is already running on port 4200. diff --git a/package-lock.json b/package-lock.json index 34c8f6ddc..72b4dc285 100644 --- a/package-lock.json +++ b/package-lock.json @@ -8,25 +8,25 @@ "name": "sailpoint-developer-portal", "version": "0.0.0", "dependencies": { - "@docusaurus/plugin-client-redirects": "2.4.3", - "@docusaurus/plugin-content-docs": "^2.4.3", - "@docusaurus/plugin-google-tag-manager": "^2.4.3", - "@docusaurus/theme-mermaid": "2.4.3", + "@docusaurus/plugin-client-redirects": "3.0.1", + "@docusaurus/plugin-google-tag-manager": "3.0.1", + "@docusaurus/theme-common": "3.0.1", + "@docusaurus/theme-mermaid": "3.0.1", "@fortawesome/fontawesome-svg-core": "^6.5.1", "@fortawesome/pro-duotone-svg-icons": "^6.5.1", "@fortawesome/pro-solid-svg-icons": "^6.5.1", "@fortawesome/react-fontawesome": "^0.2.0", - "@mdx-js/react": "^1.6.22", + "@mdx-js/react": "^3.0.0", "@typeform/embed-react": "^1.21.0", "autoprefixer": "^10.4.13", "classnames": "^2.3.2", "clsx": "^1.1.1", - "docusaurus-plugin-openapi-docs": "^2.0.2", - "docusaurus-theme-openapi-docs": "^2.0.2", + "docusaurus-plugin-openapi-docs": "^3.0.0-beta.10", + "docusaurus-theme-openapi-docs": "^3.0.0-beta.10", "docusaurus2-dotenv": "^1.4.0", "esbuild-loader": "^2.20.0", "ldrs": "^1.0.1", - "prism-react-renderer": "^1.3.1", + "prism-react-renderer": "^2.1.0", "react": "^18.2.0", "react-dom": "^18.2.0", "react-markdown": "^8.0.7", @@ -34,15 +34,16 @@ "react-tabs": "^4.3.0" }, "devDependencies": { - "@docusaurus/core": "2.4.3", - "@docusaurus/module-type-aliases": "2.4.3", - "@docusaurus/preset-classic": "2.4.3", + "@docusaurus/core": "3.0.1", + "@docusaurus/module-type-aliases": "3.0.0", + "@docusaurus/preset-classic": "3.0.1", + "@docusaurus/types": "3.0.1", "husky": "^8.0.2", "prettier": "2.8.0", "pretty-quick": "^3.1.3" }, "engines": { - "node": ">=16.14" + "node": ">=18.0" } }, "node_modules/@algolia/autocomplete-core": { @@ -91,82 +92,82 @@ } }, "node_modules/@algolia/cache-browser-local-storage": { - "version": "4.20.0", - "resolved": "https://registry.npmjs.org/@algolia/cache-browser-local-storage/-/cache-browser-local-storage-4.20.0.tgz", - "integrity": "sha512-uujahcBt4DxduBTvYdwO3sBfHuJvJokiC3BP1+O70fglmE1ShkH8lpXqZBac1rrU3FnNYSUs4pL9lBdTKeRPOQ==", + "version": "4.24.0", + "resolved": "https://registry.npmjs.org/@algolia/cache-browser-local-storage/-/cache-browser-local-storage-4.24.0.tgz", + "integrity": "sha512-t63W9BnoXVrGy9iYHBgObNXqYXM3tYXCjDSHeNwnsc324r4o5UiVKUiAB4THQ5z9U5hTj6qUvwg/Ez43ZD85ww==", "dev": true, "dependencies": { - "@algolia/cache-common": "4.20.0" + "@algolia/cache-common": "4.24.0" } }, "node_modules/@algolia/cache-common": { - "version": "4.20.0", - "resolved": "https://registry.npmjs.org/@algolia/cache-common/-/cache-common-4.20.0.tgz", - "integrity": "sha512-vCfxauaZutL3NImzB2G9LjLt36vKAckc6DhMp05An14kVo8F1Yofb6SIl6U3SaEz8pG2QOB9ptwM5c+zGevwIQ==", + "version": "4.24.0", + "resolved": "https://registry.npmjs.org/@algolia/cache-common/-/cache-common-4.24.0.tgz", + "integrity": "sha512-emi+v+DmVLpMGhp0V9q9h5CdkURsNmFC+cOS6uK9ndeJm9J4TiqSvPYVu+THUP8P/S08rxf5x2P+p3CfID0Y4g==", "dev": true }, "node_modules/@algolia/cache-in-memory": { - "version": "4.20.0", - "resolved": "https://registry.npmjs.org/@algolia/cache-in-memory/-/cache-in-memory-4.20.0.tgz", - "integrity": "sha512-Wm9ak/IaacAZXS4mB3+qF/KCoVSBV6aLgIGFEtQtJwjv64g4ePMapORGmCyulCFwfePaRAtcaTbMcJF+voc/bg==", + "version": "4.24.0", + "resolved": "https://registry.npmjs.org/@algolia/cache-in-memory/-/cache-in-memory-4.24.0.tgz", + "integrity": "sha512-gDrt2so19jW26jY3/MkFg5mEypFIPbPoXsQGQWAi6TrCPsNOSEYepBMPlucqWigsmEy/prp5ug2jy/N3PVG/8w==", "dev": true, "dependencies": { - "@algolia/cache-common": "4.20.0" + "@algolia/cache-common": "4.24.0" } }, "node_modules/@algolia/client-account": { - "version": "4.20.0", - "resolved": "https://registry.npmjs.org/@algolia/client-account/-/client-account-4.20.0.tgz", - "integrity": "sha512-GGToLQvrwo7am4zVkZTnKa72pheQeez/16sURDWm7Seyz+HUxKi3BM6fthVVPUEBhtJ0reyVtuK9ArmnaKl10Q==", + "version": "4.24.0", + "resolved": "https://registry.npmjs.org/@algolia/client-account/-/client-account-4.24.0.tgz", + "integrity": "sha512-adcvyJ3KjPZFDybxlqnf+5KgxJtBjwTPTeyG2aOyoJvx0Y8dUQAEOEVOJ/GBxX0WWNbmaSrhDURMhc+QeevDsA==", "dev": true, "dependencies": { - "@algolia/client-common": "4.20.0", - "@algolia/client-search": "4.20.0", - "@algolia/transporter": "4.20.0" + "@algolia/client-common": "4.24.0", + "@algolia/client-search": "4.24.0", + "@algolia/transporter": "4.24.0" } }, "node_modules/@algolia/client-analytics": { - "version": "4.20.0", - "resolved": "https://registry.npmjs.org/@algolia/client-analytics/-/client-analytics-4.20.0.tgz", - "integrity": "sha512-EIr+PdFMOallRdBTHHdKI3CstslgLORQG7844Mq84ib5oVFRVASuuPmG4bXBgiDbcsMLUeOC6zRVJhv1KWI0ug==", + "version": "4.24.0", + "resolved": "https://registry.npmjs.org/@algolia/client-analytics/-/client-analytics-4.24.0.tgz", + "integrity": "sha512-y8jOZt1OjwWU4N2qr8G4AxXAzaa8DBvyHTWlHzX/7Me1LX8OayfgHexqrsL4vSBcoMmVw2XnVW9MhL+Y2ZDJXg==", "dev": true, "dependencies": { - "@algolia/client-common": "4.20.0", - "@algolia/client-search": "4.20.0", - "@algolia/requester-common": "4.20.0", - "@algolia/transporter": "4.20.0" + "@algolia/client-common": "4.24.0", + "@algolia/client-search": "4.24.0", + "@algolia/requester-common": "4.24.0", + "@algolia/transporter": "4.24.0" } }, "node_modules/@algolia/client-common": { - "version": "4.20.0", - "resolved": "https://registry.npmjs.org/@algolia/client-common/-/client-common-4.20.0.tgz", - "integrity": "sha512-P3WgMdEss915p+knMMSd/fwiHRHKvDu4DYRrCRaBrsfFw7EQHon+EbRSm4QisS9NYdxbS04kcvNoavVGthyfqQ==", + "version": "4.24.0", + "resolved": "https://registry.npmjs.org/@algolia/client-common/-/client-common-4.24.0.tgz", + "integrity": "sha512-bc2ROsNL6w6rqpl5jj/UywlIYC21TwSSoFHKl01lYirGMW+9Eek6r02Tocg4gZ8HAw3iBvu6XQiM3BEbmEMoiA==", "dev": true, "dependencies": { - "@algolia/requester-common": "4.20.0", - "@algolia/transporter": "4.20.0" + "@algolia/requester-common": "4.24.0", + "@algolia/transporter": "4.24.0" } }, "node_modules/@algolia/client-personalization": { - "version": "4.20.0", - "resolved": "https://registry.npmjs.org/@algolia/client-personalization/-/client-personalization-4.20.0.tgz", - "integrity": "sha512-N9+zx0tWOQsLc3K4PVRDV8GUeOLAY0i445En79Pr3zWB+m67V+n/8w4Kw1C5LlbHDDJcyhMMIlqezh6BEk7xAQ==", + "version": "4.24.0", + "resolved": "https://registry.npmjs.org/@algolia/client-personalization/-/client-personalization-4.24.0.tgz", + "integrity": "sha512-l5FRFm/yngztweU0HdUzz1rC4yoWCFo3IF+dVIVTfEPg906eZg5BOd1k0K6rZx5JzyyoP4LdmOikfkfGsKVE9w==", "dev": true, "dependencies": { - "@algolia/client-common": "4.20.0", - "@algolia/requester-common": "4.20.0", - "@algolia/transporter": "4.20.0" + "@algolia/client-common": "4.24.0", + "@algolia/requester-common": "4.24.0", + "@algolia/transporter": "4.24.0" } }, "node_modules/@algolia/client-search": { - "version": "4.20.0", - "resolved": "https://registry.npmjs.org/@algolia/client-search/-/client-search-4.20.0.tgz", - "integrity": "sha512-zgwqnMvhWLdpzKTpd3sGmMlr4c+iS7eyyLGiaO51zDZWGMkpgoNVmltkzdBwxOVXz0RsFMznIxB9zuarUv4TZg==", + "version": "4.24.0", + "resolved": "https://registry.npmjs.org/@algolia/client-search/-/client-search-4.24.0.tgz", + "integrity": "sha512-uRW6EpNapmLAD0mW47OXqTP8eiIx5F6qN9/x/7HHO6owL3N1IXqydGwW5nhDFBrV+ldouro2W1VX3XlcUXEFCA==", "dev": true, "dependencies": { - "@algolia/client-common": "4.20.0", - "@algolia/requester-common": "4.20.0", - "@algolia/transporter": "4.20.0" + "@algolia/client-common": "4.24.0", + "@algolia/requester-common": "4.24.0", + "@algolia/transporter": "4.24.0" } }, "node_modules/@algolia/events": { @@ -176,53 +177,72 @@ "dev": true }, "node_modules/@algolia/logger-common": { - "version": "4.20.0", - "resolved": "https://registry.npmjs.org/@algolia/logger-common/-/logger-common-4.20.0.tgz", - "integrity": "sha512-xouigCMB5WJYEwvoWW5XDv7Z9f0A8VoXJc3VKwlHJw/je+3p2RcDXfksLI4G4lIVncFUYMZx30tP/rsdlvvzHQ==", + "version": "4.24.0", + "resolved": "https://registry.npmjs.org/@algolia/logger-common/-/logger-common-4.24.0.tgz", + "integrity": "sha512-LLUNjkahj9KtKYrQhFKCzMx0BY3RnNP4FEtO+sBybCjJ73E8jNdaKJ/Dd8A/VA4imVHP5tADZ8pn5B8Ga/wTMA==", "dev": true }, "node_modules/@algolia/logger-console": { - "version": "4.20.0", - "resolved": "https://registry.npmjs.org/@algolia/logger-console/-/logger-console-4.20.0.tgz", - "integrity": "sha512-THlIGG1g/FS63z0StQqDhT6bprUczBI8wnLT3JWvfAQDZX5P6fCg7dG+pIrUBpDIHGszgkqYEqECaKKsdNKOUA==", + "version": "4.24.0", + "resolved": "https://registry.npmjs.org/@algolia/logger-console/-/logger-console-4.24.0.tgz", + "integrity": "sha512-X4C8IoHgHfiUROfoRCV+lzSy+LHMgkoEEU1BbKcsfnV0i0S20zyy0NLww9dwVHUWNfPPxdMU+/wKmLGYf96yTg==", "dev": true, "dependencies": { - "@algolia/logger-common": "4.20.0" + "@algolia/logger-common": "4.24.0" + } + }, + "node_modules/@algolia/recommend": { + "version": "4.24.0", + "resolved": "https://registry.npmjs.org/@algolia/recommend/-/recommend-4.24.0.tgz", + "integrity": "sha512-P9kcgerfVBpfYHDfVZDvvdJv0lEoCvzNlOy2nykyt5bK8TyieYyiD0lguIJdRZZYGre03WIAFf14pgE+V+IBlw==", + "dev": true, + "dependencies": { + "@algolia/cache-browser-local-storage": "4.24.0", + "@algolia/cache-common": "4.24.0", + "@algolia/cache-in-memory": "4.24.0", + "@algolia/client-common": "4.24.0", + "@algolia/client-search": "4.24.0", + "@algolia/logger-common": "4.24.0", + "@algolia/logger-console": "4.24.0", + "@algolia/requester-browser-xhr": "4.24.0", + "@algolia/requester-common": "4.24.0", + "@algolia/requester-node-http": "4.24.0", + "@algolia/transporter": "4.24.0" } }, "node_modules/@algolia/requester-browser-xhr": { - "version": "4.20.0", - "resolved": "https://registry.npmjs.org/@algolia/requester-browser-xhr/-/requester-browser-xhr-4.20.0.tgz", - "integrity": "sha512-HbzoSjcjuUmYOkcHECkVTwAelmvTlgs48N6Owt4FnTOQdwn0b8pdht9eMgishvk8+F8bal354nhx/xOoTfwiAw==", + "version": "4.24.0", + "resolved": "https://registry.npmjs.org/@algolia/requester-browser-xhr/-/requester-browser-xhr-4.24.0.tgz", + "integrity": "sha512-Z2NxZMb6+nVXSjF13YpjYTdvV3032YTBSGm2vnYvYPA6mMxzM3v5rsCiSspndn9rzIW4Qp1lPHBvuoKJV6jnAA==", "dev": true, "dependencies": { - "@algolia/requester-common": "4.20.0" + "@algolia/requester-common": "4.24.0" } }, "node_modules/@algolia/requester-common": { - "version": "4.20.0", - "resolved": "https://registry.npmjs.org/@algolia/requester-common/-/requester-common-4.20.0.tgz", - "integrity": "sha512-9h6ye6RY/BkfmeJp7Z8gyyeMrmmWsMOCRBXQDs4mZKKsyVlfIVICpcSibbeYcuUdurLhIlrOUkH3rQEgZzonng==", + "version": "4.24.0", + "resolved": "https://registry.npmjs.org/@algolia/requester-common/-/requester-common-4.24.0.tgz", + "integrity": "sha512-k3CXJ2OVnvgE3HMwcojpvY6d9kgKMPRxs/kVohrwF5WMr2fnqojnycZkxPoEg+bXm8fi5BBfFmOqgYztRtHsQA==", "dev": true }, "node_modules/@algolia/requester-node-http": { - "version": "4.20.0", - "resolved": "https://registry.npmjs.org/@algolia/requester-node-http/-/requester-node-http-4.20.0.tgz", - "integrity": "sha512-ocJ66L60ABSSTRFnCHIEZpNHv6qTxsBwJEPfYaSBsLQodm0F9ptvalFkHMpvj5DfE22oZrcrLbOYM2bdPJRHng==", + "version": "4.24.0", + "resolved": "https://registry.npmjs.org/@algolia/requester-node-http/-/requester-node-http-4.24.0.tgz", + "integrity": "sha512-JF18yTjNOVYvU/L3UosRcvbPMGT9B+/GQWNWnenIImglzNVGpyzChkXLnrSf6uxwVNO6ESGu6oN8MqcGQcjQJw==", "dev": true, "dependencies": { - "@algolia/requester-common": "4.20.0" + "@algolia/requester-common": "4.24.0" } }, "node_modules/@algolia/transporter": { - "version": "4.20.0", - "resolved": "https://registry.npmjs.org/@algolia/transporter/-/transporter-4.20.0.tgz", - "integrity": "sha512-Lsii1pGWOAISbzeyuf+r/GPhvHMPHSPrTDWNcIzOE1SG1inlJHICaVe2ikuoRjcpgxZNU54Jl+if15SUCsaTUg==", + "version": "4.24.0", + "resolved": "https://registry.npmjs.org/@algolia/transporter/-/transporter-4.24.0.tgz", + "integrity": "sha512-86nI7w6NzWxd1Zp9q3413dRshDqAzSbsQjhcDhPIatEFiZrL1/TjnHL8S7jVKFePlIMzDsZWXAXwXzcok9c5oA==", "dev": true, "dependencies": { - "@algolia/cache-common": "4.20.0", - "@algolia/logger-common": "4.20.0", - "@algolia/requester-common": "4.20.0" + "@algolia/cache-common": "4.24.0", + "@algolia/logger-common": "4.24.0", + "@algolia/requester-common": "4.24.0" } }, "node_modules/@ampproject/remapping": { @@ -238,15 +258,13 @@ } }, "node_modules/@apidevtools/json-schema-ref-parser": { - "version": "10.1.0", - "resolved": "https://registry.npmjs.org/@apidevtools/json-schema-ref-parser/-/json-schema-ref-parser-10.1.0.tgz", - "integrity": "sha512-3e+viyMuXdrcK8v5pvP+SDoAQ77FH6OyRmuK48SZKmdHJRFm87RsSs8qm6kP39a/pOPURByJw+OXzQIqcfmKtA==", + "version": "11.6.4", + "resolved": "https://registry.npmjs.org/@apidevtools/json-schema-ref-parser/-/json-schema-ref-parser-11.6.4.tgz", + "integrity": "sha512-9K6xOqeevacvweLGik6LnZCb1fBtCOSIWQs8d096XGeqoLKC33UVMGz9+77Gw44KvbH4pKcQPWo4ZpxkXYj05w==", "dependencies": { "@jsdevtools/ono": "^7.1.3", - "@types/json-schema": "^7.0.11", - "@types/lodash.clonedeep": "^4.5.7", - "js-yaml": "^4.1.0", - "lodash.clonedeep": "^4.5.0" + "@types/json-schema": "^7.0.15", + "js-yaml": "^4.1.0" }, "engines": { "node": ">= 16" @@ -842,20 +860,6 @@ "@babel/core": "^7.0.0" } }, - "node_modules/@babel/plugin-proposal-object-rest-spread": { - "version": "7.12.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.12.1.tgz", - "integrity": "sha512-s6SowJIjzlhx8o7lsFx5zmY4At6CTtDvgNQDdPzkBQucle58A6b/TTeEBYtyDgmcXjUTM+vE8YOGHZzzbc/ioA==", - "deprecated": "This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-object-rest-spread instead.", - "dependencies": { - "@babel/helper-plugin-utils": "^7.10.4", - "@babel/plugin-syntax-object-rest-spread": "^7.8.0", - "@babel/plugin-transform-parameters": "^7.12.1" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, "node_modules/@babel/plugin-proposal-private-property-in-object": { "version": "7.21.0-placeholder-for-preset-env.2", "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-private-property-in-object/-/plugin-proposal-private-property-in-object-7.21.0-placeholder-for-preset-env.2.tgz", @@ -2203,20 +2207,20 @@ } }, "node_modules/@docsearch/css": { - "version": "3.5.2", - "resolved": "https://registry.npmjs.org/@docsearch/css/-/css-3.5.2.tgz", - "integrity": "sha512-SPiDHaWKQZpwR2siD0KQUwlStvIAnEyK6tAE2h2Wuoq8ue9skzhlyVQ1ddzOxX6khULnAALDiR/isSF3bnuciA==", + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/@docsearch/css/-/css-3.6.0.tgz", + "integrity": "sha512-+sbxb71sWre+PwDK7X2T8+bhS6clcVMLwBPznX45Qu6opJcgRjAp7gYSDzVFp187J+feSj5dNBN1mJoi6ckkUQ==", "dev": true }, "node_modules/@docsearch/react": { - "version": "3.5.2", - "resolved": "https://registry.npmjs.org/@docsearch/react/-/react-3.5.2.tgz", - "integrity": "sha512-9Ahcrs5z2jq/DcAvYtvlqEBHImbm4YJI8M9y0x6Tqg598P40HTEkX7hsMcIuThI+hTFxRGZ9hll0Wygm2yEjng==", + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/@docsearch/react/-/react-3.6.0.tgz", + "integrity": "sha512-HUFut4ztcVNmqy9gp/wxNbC7pTOHhgVVkHVGCACTuLhUKUhKAF9KYHJtMiLUJxEqiFLQiuri1fWF8zqwM/cu1w==", "dev": true, "dependencies": { "@algolia/autocomplete-core": "1.9.3", "@algolia/autocomplete-preset-algolia": "1.9.3", - "@docsearch/css": "3.5.2", + "@docsearch/css": "3.6.0", "algoliasearch": "^4.19.1" }, "peerDependencies": { @@ -2241,157 +2245,220 @@ } }, "node_modules/@docusaurus/core": { - "version": "2.4.3", - "resolved": "https://registry.npmjs.org/@docusaurus/core/-/core-2.4.3.tgz", - "integrity": "sha512-dWH5P7cgeNSIg9ufReX6gaCl/TmrGKD38Orbwuz05WPhAQtFXHd5B8Qym1TiXfvUNvwoYKkAJOJuGe8ou0Z7PA==", + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/@docusaurus/core/-/core-3.0.1.tgz", + "integrity": "sha512-CXrLpOnW+dJdSv8M5FAJ3JBwXtL6mhUWxFA8aS0ozK6jBG/wgxERk5uvH28fCeFxOGbAT9v1e9dOMo1X2IEVhQ==", "dependencies": { - "@babel/core": "^7.18.6", - "@babel/generator": "^7.18.7", + "@babel/core": "^7.23.3", + "@babel/generator": "^7.23.3", "@babel/plugin-syntax-dynamic-import": "^7.8.3", - "@babel/plugin-transform-runtime": "^7.18.6", - "@babel/preset-env": "^7.18.6", - "@babel/preset-react": "^7.18.6", - "@babel/preset-typescript": "^7.18.6", - "@babel/runtime": "^7.18.6", - "@babel/runtime-corejs3": "^7.18.6", - "@babel/traverse": "^7.18.8", - "@docusaurus/cssnano-preset": "2.4.3", - "@docusaurus/logger": "2.4.3", - "@docusaurus/mdx-loader": "2.4.3", + "@babel/plugin-transform-runtime": "^7.22.9", + "@babel/preset-env": "^7.22.9", + "@babel/preset-react": "^7.22.5", + "@babel/preset-typescript": "^7.22.5", + "@babel/runtime": "^7.22.6", + "@babel/runtime-corejs3": "^7.22.6", + "@babel/traverse": "^7.22.8", + "@docusaurus/cssnano-preset": "3.0.1", + "@docusaurus/logger": "3.0.1", + "@docusaurus/mdx-loader": "3.0.1", "@docusaurus/react-loadable": "5.5.2", - "@docusaurus/utils": "2.4.3", - "@docusaurus/utils-common": "2.4.3", - "@docusaurus/utils-validation": "2.4.3", + "@docusaurus/utils": "3.0.1", + "@docusaurus/utils-common": "3.0.1", + "@docusaurus/utils-validation": "3.0.1", "@slorber/static-site-generator-webpack-plugin": "^4.0.7", - "@svgr/webpack": "^6.2.1", - "autoprefixer": "^10.4.7", - "babel-loader": "^8.2.5", + "@svgr/webpack": "^6.5.1", + "autoprefixer": "^10.4.14", + "babel-loader": "^9.1.3", "babel-plugin-dynamic-import-node": "^2.3.3", "boxen": "^6.2.1", "chalk": "^4.1.2", "chokidar": "^3.5.3", - "clean-css": "^5.3.0", - "cli-table3": "^0.6.2", + "clean-css": "^5.3.2", + "cli-table3": "^0.6.3", "combine-promises": "^1.1.0", "commander": "^5.1.0", "copy-webpack-plugin": "^11.0.0", - "core-js": "^3.23.3", - "css-loader": "^6.7.1", - "css-minimizer-webpack-plugin": "^4.0.0", - "cssnano": "^5.1.12", + "core-js": "^3.31.1", + "css-loader": "^6.8.1", + "css-minimizer-webpack-plugin": "^4.2.2", + "cssnano": "^5.1.15", "del": "^6.1.1", - "detect-port": "^1.3.0", + "detect-port": "^1.5.1", "escape-html": "^1.0.3", - "eta": "^2.0.0", + "eta": "^2.2.0", "file-loader": "^6.2.0", - "fs-extra": "^10.1.0", - "html-minifier-terser": "^6.1.0", - "html-tags": "^3.2.0", - "html-webpack-plugin": "^5.5.0", - "import-fresh": "^3.3.0", + "fs-extra": "^11.1.1", + "html-minifier-terser": "^7.2.0", + "html-tags": "^3.3.1", + "html-webpack-plugin": "^5.5.3", "leven": "^3.1.0", "lodash": "^4.17.21", - "mini-css-extract-plugin": "^2.6.1", - "postcss": "^8.4.14", - "postcss-loader": "^7.0.0", + "mini-css-extract-plugin": "^2.7.6", + "postcss": "^8.4.26", + "postcss-loader": "^7.3.3", "prompts": "^2.4.2", "react-dev-utils": "^12.0.1", "react-helmet-async": "^1.3.0", "react-loadable": "npm:@docusaurus/react-loadable@5.5.2", "react-loadable-ssr-addon-v5-slorber": "^1.0.1", - "react-router": "^5.3.3", + "react-router": "^5.3.4", "react-router-config": "^5.1.1", - "react-router-dom": "^5.3.3", + "react-router-dom": "^5.3.4", "rtl-detect": "^1.0.4", - "semver": "^7.3.7", - "serve-handler": "^6.1.3", + "semver": "^7.5.4", + "serve-handler": "^6.1.5", "shelljs": "^0.8.5", - "terser-webpack-plugin": "^5.3.3", - "tslib": "^2.4.0", - "update-notifier": "^5.1.0", + "terser-webpack-plugin": "^5.3.9", + "tslib": "^2.6.0", + "update-notifier": "^6.0.2", "url-loader": "^4.1.1", - "wait-on": "^6.0.1", - "webpack": "^5.73.0", - "webpack-bundle-analyzer": "^4.5.0", - "webpack-dev-server": "^4.9.3", - "webpack-merge": "^5.8.0", + "webpack": "^5.88.1", + "webpack-bundle-analyzer": "^4.9.0", + "webpack-dev-server": "^4.15.1", + "webpack-merge": "^5.9.0", "webpackbar": "^5.0.2" }, "bin": { "docusaurus": "bin/docusaurus.mjs" }, "engines": { - "node": ">=16.14" + "node": ">=18.0" }, "peerDependencies": { - "react": "^16.8.4 || ^17.0.0", - "react-dom": "^16.8.4 || ^17.0.0" + "react": "^18.0.0", + "react-dom": "^18.0.0" } }, - "node_modules/@docusaurus/core/node_modules/@docusaurus/mdx-loader": { - "version": "2.4.3", - "resolved": "https://registry.npmjs.org/@docusaurus/mdx-loader/-/mdx-loader-2.4.3.tgz", - "integrity": "sha512-b1+fDnWtl3GiqkL0BRjYtc94FZrcDDBV1j8446+4tptB9BAOlePwG2p/pK6vGvfL53lkOsszXMghr2g67M0vCw==", + "node_modules/@docusaurus/core/node_modules/html-minifier-terser": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/html-minifier-terser/-/html-minifier-terser-7.2.0.tgz", + "integrity": "sha512-tXgn3QfqPIpGl9o+K5tpcj3/MN4SfLtsx2GWwBC3SSd0tXQGyF3gsSqad8loJgKZGM3ZxbYDd5yhiBIdWpmvLA==", "dependencies": { - "@babel/parser": "^7.18.8", - "@babel/traverse": "^7.18.8", - "@docusaurus/logger": "2.4.3", - "@docusaurus/utils": "2.4.3", - "@mdx-js/mdx": "^1.6.22", - "escape-html": "^1.0.3", - "file-loader": "^6.2.0", - "fs-extra": "^10.1.0", - "image-size": "^1.0.1", - "mdast-util-to-string": "^2.0.0", - "remark-emoji": "^2.2.0", - "stringify-object": "^3.3.0", - "tslib": "^2.4.0", - "unified": "^9.2.2", - "unist-util-visit": "^2.0.3", - "url-loader": "^4.1.1", - "webpack": "^5.73.0" + "camel-case": "^4.1.2", + "clean-css": "~5.3.2", + "commander": "^10.0.0", + "entities": "^4.4.0", + "param-case": "^3.0.4", + "relateurl": "^0.2.7", + "terser": "^5.15.1" + }, + "bin": { + "html-minifier-terser": "cli.js" }, "engines": { - "node": ">=16.14" - }, - "peerDependencies": { - "react": "^16.8.4 || ^17.0.0", - "react-dom": "^16.8.4 || ^17.0.0" + "node": "^14.13.1 || >=16.0.0" + } + }, + "node_modules/@docusaurus/core/node_modules/html-minifier-terser/node_modules/commander": { + "version": "10.0.1", + "resolved": "https://registry.npmjs.org/commander/-/commander-10.0.1.tgz", + "integrity": "sha512-y4Mg2tXshplEbSGzx7amzPwKKOCGuoSRP/CjEdwwk0FOGlUbq6lKuoyDZTNZkmxHdJtp54hdfY/JUrdL7Xfdug==", + "engines": { + "node": ">=14" } }, "node_modules/@docusaurus/cssnano-preset": { - "version": "2.4.3", - "resolved": "https://registry.npmjs.org/@docusaurus/cssnano-preset/-/cssnano-preset-2.4.3.tgz", - "integrity": "sha512-ZvGSRCi7z9wLnZrXNPG6DmVPHdKGd8dIn9pYbEOFiYihfv4uDR3UtxogmKf+rT8ZlKFf5Lqne8E8nt08zNM8CA==", + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/@docusaurus/cssnano-preset/-/cssnano-preset-3.0.1.tgz", + "integrity": "sha512-wjuXzkHMW+ig4BD6Ya1Yevx9UJadO4smNZCEljqBoQfIQrQskTswBs7lZ8InHP7mCt273a/y/rm36EZhqJhknQ==", "dependencies": { - "cssnano-preset-advanced": "^5.3.8", - "postcss": "^8.4.14", - "postcss-sort-media-queries": "^4.2.1", - "tslib": "^2.4.0" + "cssnano-preset-advanced": "^5.3.10", + "postcss": "^8.4.26", + "postcss-sort-media-queries": "^4.4.1", + "tslib": "^2.6.0" }, "engines": { - "node": ">=16.14" + "node": ">=18.0" } }, "node_modules/@docusaurus/logger": { - "version": "2.4.3", - "resolved": "https://registry.npmjs.org/@docusaurus/logger/-/logger-2.4.3.tgz", - "integrity": "sha512-Zxws7r3yLufk9xM1zq9ged0YHs65mlRmtsobnFkdZTxWXdTYlWWLWdKyNKAsVC+D7zg+pv2fGbyabdOnyZOM3w==", + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/@docusaurus/logger/-/logger-3.0.1.tgz", + "integrity": "sha512-I5L6Nk8OJzkVA91O2uftmo71LBSxe1vmOn9AMR6JRCzYeEBrqneWMH02AqMvjJ2NpMiviO+t0CyPjyYV7nxCWQ==", "dependencies": { "chalk": "^4.1.2", - "tslib": "^2.4.0" + "tslib": "^2.6.0" }, "engines": { - "node": ">=16.14" + "node": ">=18.0" + } + }, + "node_modules/@docusaurus/mdx-loader": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/@docusaurus/mdx-loader/-/mdx-loader-3.0.1.tgz", + "integrity": "sha512-ldnTmvnvlrONUq45oKESrpy+lXtbnTcTsFkOTIDswe5xx5iWJjt6eSa0f99ZaWlnm24mlojcIGoUWNCS53qVlQ==", + "dependencies": { + "@babel/parser": "^7.22.7", + "@babel/traverse": "^7.22.8", + "@docusaurus/logger": "3.0.1", + "@docusaurus/utils": "3.0.1", + "@docusaurus/utils-validation": "3.0.1", + "@mdx-js/mdx": "^3.0.0", + "@slorber/remark-comment": "^1.0.0", + "escape-html": "^1.0.3", + "estree-util-value-to-estree": "^3.0.1", + "file-loader": "^6.2.0", + "fs-extra": "^11.1.1", + "image-size": "^1.0.2", + "mdast-util-mdx": "^3.0.0", + "mdast-util-to-string": "^4.0.0", + "rehype-raw": "^7.0.0", + "remark-directive": "^3.0.0", + "remark-emoji": "^4.0.0", + "remark-frontmatter": "^5.0.0", + "remark-gfm": "^4.0.0", + "stringify-object": "^3.3.0", + "tslib": "^2.6.0", + "unified": "^11.0.3", + "unist-util-visit": "^5.0.0", + "url-loader": "^4.1.1", + "vfile": "^6.0.1", + "webpack": "^5.88.1" + }, + "engines": { + "node": ">=18.0" + }, + "peerDependencies": { + "react": "^18.0.0", + "react-dom": "^18.0.0" + } + }, + "node_modules/@docusaurus/mdx-loader/node_modules/@types/hast": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/@types/hast/-/hast-3.0.4.tgz", + "integrity": "sha512-WPs+bbQw5aCj+x6laNGWLH3wviHtoCv/P3+otBhbOhJgG8qtpdAMlTCxLtsTWA7LH1Oh/bFCHsBn0TPS5m30EQ==", + "dependencies": { + "@types/unist": "*" + } + }, + "node_modules/@docusaurus/mdx-loader/node_modules/@types/unist": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/@types/unist/-/unist-3.0.2.tgz", + "integrity": "sha512-dqId9J8K/vGi5Zr7oo212BGii5m3q5Hxlkwy3WpYuKPklmBEvsbMYYyLxAQpSffdLl/gdW0XUpKWFvYmyoWCoQ==" + }, + "node_modules/@docusaurus/mdx-loader/node_modules/rehype-raw": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/rehype-raw/-/rehype-raw-7.0.0.tgz", + "integrity": "sha512-/aE8hCfKlQeA8LmyeyQvQF3eBiLRGNlfBJEvWH7ivp9sBqs7TNqBL5X3v157rM4IFETqDnIOO+z5M/biZbo9Ww==", + "dependencies": { + "@types/hast": "^3.0.0", + "hast-util-raw": "^9.0.0", + "vfile": "^6.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" } }, "node_modules/@docusaurus/module-type-aliases": { - "version": "2.4.3", - "resolved": "https://registry.npmjs.org/@docusaurus/module-type-aliases/-/module-type-aliases-2.4.3.tgz", - "integrity": "sha512-cwkBkt1UCiduuvEAo7XZY01dJfRn7UR/75mBgOdb1hKknhrabJZ8YH+7savd/y9kLExPyrhe0QwdS9GuzsRRIA==", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@docusaurus/module-type-aliases/-/module-type-aliases-3.0.0.tgz", + "integrity": "sha512-CfC6CgN4u/ce+2+L1JdsHNyBd8yYjl4De2B2CBj2a9F7WuJ5RjV1ciuU7KDg8uyju+NRVllRgvJvxVUjCdkPiw==", + "dev": true, "dependencies": { "@docusaurus/react-loadable": "5.5.2", - "@docusaurus/types": "2.4.3", + "@docusaurus/types": "3.0.0", "@types/history": "^4.7.11", "@types/react": "*", "@types/react-router-config": "*", @@ -2405,543 +2472,1634 @@ } }, "node_modules/@docusaurus/module-type-aliases/node_modules/@docusaurus/types": { - "version": "2.4.3", - "resolved": "https://registry.npmjs.org/@docusaurus/types/-/types-2.4.3.tgz", - "integrity": "sha512-W6zNLGQqfrp/EoPD0bhb9n7OobP+RHpmvVzpA+Z/IuU3Q63njJM24hmT0GYboovWcDtFmnIJC9wcyx4RVPQscw==", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@docusaurus/types/-/types-3.0.0.tgz", + "integrity": "sha512-Qb+l/hmCOVemReuzvvcFdk84bUmUFyD0Zi81y651ie3VwMrXqC7C0E7yZLKMOsLj/vkqsxHbtkAuYMI89YzNzg==", + "dev": true, "dependencies": { "@types/history": "^4.7.11", "@types/react": "*", "commander": "^5.1.0", - "joi": "^17.6.0", + "joi": "^17.9.2", "react-helmet-async": "^1.3.0", "utility-types": "^3.10.0", - "webpack": "^5.73.0", - "webpack-merge": "^5.8.0" + "webpack": "^5.88.1", + "webpack-merge": "^5.9.0" }, "peerDependencies": { - "react": "^16.8.4 || ^17.0.0", - "react-dom": "^16.8.4 || ^17.0.0" + "react": "^18.0.0", + "react-dom": "^18.0.0" } }, "node_modules/@docusaurus/plugin-client-redirects": { - "version": "2.4.3", - "resolved": "https://registry.npmjs.org/@docusaurus/plugin-client-redirects/-/plugin-client-redirects-2.4.3.tgz", - "integrity": "sha512-iCwc/zH8X6eNtLYdyUJFY6+GbsbRgMgvAC/TmSmCYTmwnoN5Y1Bc5OwUkdtoch0XKizotJMRAmGIAhP8sAetdQ==", + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/@docusaurus/plugin-client-redirects/-/plugin-client-redirects-3.0.1.tgz", + "integrity": "sha512-CoZapnHbV3j5jsHCa/zmKaa8+H+oagHBgg91dN5I8/3kFit/xtZPfRaznvDX49cHg2nSoV74B3VMAT+bvCmzFQ==", "dependencies": { - "@docusaurus/core": "2.4.3", - "@docusaurus/logger": "2.4.3", - "@docusaurus/utils": "2.4.3", - "@docusaurus/utils-common": "2.4.3", - "@docusaurus/utils-validation": "2.4.3", - "eta": "^2.0.0", - "fs-extra": "^10.1.0", + "@docusaurus/core": "3.0.1", + "@docusaurus/logger": "3.0.1", + "@docusaurus/utils": "3.0.1", + "@docusaurus/utils-common": "3.0.1", + "@docusaurus/utils-validation": "3.0.1", + "eta": "^2.2.0", + "fs-extra": "^11.1.1", "lodash": "^4.17.21", - "tslib": "^2.4.0" + "tslib": "^2.6.0" }, "engines": { - "node": ">=16.14" + "node": ">=18.0" }, "peerDependencies": { - "react": "^16.8.4 || ^17.0.0", - "react-dom": "^16.8.4 || ^17.0.0" + "react": "^18.0.0", + "react-dom": "^18.0.0" + } + }, + "node_modules/@docusaurus/plugin-content-blog": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/@docusaurus/plugin-content-blog/-/plugin-content-blog-3.0.1.tgz", + "integrity": "sha512-cLOvtvAyaMQFLI8vm4j26svg3ktxMPSXpuUJ7EERKoGbfpJSsgtowNHcRsaBVmfuCsRSk1HZ/yHBsUkTmHFEsg==", + "dependencies": { + "@docusaurus/core": "3.0.1", + "@docusaurus/logger": "3.0.1", + "@docusaurus/mdx-loader": "3.0.1", + "@docusaurus/types": "3.0.1", + "@docusaurus/utils": "3.0.1", + "@docusaurus/utils-common": "3.0.1", + "@docusaurus/utils-validation": "3.0.1", + "cheerio": "^1.0.0-rc.12", + "feed": "^4.2.2", + "fs-extra": "^11.1.1", + "lodash": "^4.17.21", + "reading-time": "^1.5.0", + "srcset": "^4.0.0", + "tslib": "^2.6.0", + "unist-util-visit": "^5.0.0", + "utility-types": "^3.10.0", + "webpack": "^5.88.1" + }, + "engines": { + "node": ">=18.0" + }, + "peerDependencies": { + "react": "^18.0.0", + "react-dom": "^18.0.0" } }, "node_modules/@docusaurus/plugin-content-docs": { - "version": "2.4.3", - "resolved": "https://registry.npmjs.org/@docusaurus/plugin-content-docs/-/plugin-content-docs-2.4.3.tgz", - "integrity": "sha512-N7Po2LSH6UejQhzTCsvuX5NOzlC+HiXOVvofnEPj0WhMu1etpLEXE6a4aTxrtg95lQ5kf0xUIdjX9sh3d3G76A==", + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/@docusaurus/plugin-content-docs/-/plugin-content-docs-3.4.0.tgz", + "integrity": "sha512-HkUCZffhBo7ocYheD9oZvMcDloRnGhBMOZRyVcAQRFmZPmNqSyISlXA1tQCIxW+r478fty97XXAGjNYzBjpCsg==", "dependencies": { - "@docusaurus/core": "2.4.3", - "@docusaurus/logger": "2.4.3", - "@docusaurus/mdx-loader": "2.4.3", - "@docusaurus/module-type-aliases": "2.4.3", - "@docusaurus/types": "2.4.3", - "@docusaurus/utils": "2.4.3", - "@docusaurus/utils-validation": "2.4.3", - "@types/react-router-config": "^5.0.6", + "@docusaurus/core": "3.4.0", + "@docusaurus/logger": "3.4.0", + "@docusaurus/mdx-loader": "3.4.0", + "@docusaurus/module-type-aliases": "3.4.0", + "@docusaurus/types": "3.4.0", + "@docusaurus/utils": "3.4.0", + "@docusaurus/utils-common": "3.4.0", + "@docusaurus/utils-validation": "3.4.0", + "@types/react-router-config": "^5.0.7", "combine-promises": "^1.1.0", - "fs-extra": "^10.1.0", - "import-fresh": "^3.3.0", + "fs-extra": "^11.1.1", "js-yaml": "^4.1.0", "lodash": "^4.17.21", - "tslib": "^2.4.0", + "tslib": "^2.6.0", "utility-types": "^3.10.0", - "webpack": "^5.73.0" + "webpack": "^5.88.1" }, "engines": { - "node": ">=16.14" + "node": ">=18.0" }, "peerDependencies": { - "react": "^16.8.4 || ^17.0.0", - "react-dom": "^16.8.4 || ^17.0.0" + "react": "^18.0.0", + "react-dom": "^18.0.0" + } + }, + "node_modules/@docusaurus/plugin-content-docs/node_modules/@docusaurus/core": { + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/@docusaurus/core/-/core-3.4.0.tgz", + "integrity": "sha512-g+0wwmN2UJsBqy2fQRQ6fhXruoEa62JDeEa5d8IdTJlMoaDaEDfHh7WjwGRn4opuTQWpjAwP/fbcgyHKlE+64w==", + "dependencies": { + "@babel/core": "^7.23.3", + "@babel/generator": "^7.23.3", + "@babel/plugin-syntax-dynamic-import": "^7.8.3", + "@babel/plugin-transform-runtime": "^7.22.9", + "@babel/preset-env": "^7.22.9", + "@babel/preset-react": "^7.22.5", + "@babel/preset-typescript": "^7.22.5", + "@babel/runtime": "^7.22.6", + "@babel/runtime-corejs3": "^7.22.6", + "@babel/traverse": "^7.22.8", + "@docusaurus/cssnano-preset": "3.4.0", + "@docusaurus/logger": "3.4.0", + "@docusaurus/mdx-loader": "3.4.0", + "@docusaurus/utils": "3.4.0", + "@docusaurus/utils-common": "3.4.0", + "@docusaurus/utils-validation": "3.4.0", + "autoprefixer": "^10.4.14", + "babel-loader": "^9.1.3", + "babel-plugin-dynamic-import-node": "^2.3.3", + "boxen": "^6.2.1", + "chalk": "^4.1.2", + "chokidar": "^3.5.3", + "clean-css": "^5.3.2", + "cli-table3": "^0.6.3", + "combine-promises": "^1.1.0", + "commander": "^5.1.0", + "copy-webpack-plugin": "^11.0.0", + "core-js": "^3.31.1", + "css-loader": "^6.8.1", + "css-minimizer-webpack-plugin": "^5.0.1", + "cssnano": "^6.1.2", + "del": "^6.1.1", + "detect-port": "^1.5.1", + "escape-html": "^1.0.3", + "eta": "^2.2.0", + "eval": "^0.1.8", + "file-loader": "^6.2.0", + "fs-extra": "^11.1.1", + "html-minifier-terser": "^7.2.0", + "html-tags": "^3.3.1", + "html-webpack-plugin": "^5.5.3", + "leven": "^3.1.0", + "lodash": "^4.17.21", + "mini-css-extract-plugin": "^2.7.6", + "p-map": "^4.0.0", + "postcss": "^8.4.26", + "postcss-loader": "^7.3.3", + "prompts": "^2.4.2", + "react-dev-utils": "^12.0.1", + "react-helmet-async": "^1.3.0", + "react-loadable": "npm:@docusaurus/react-loadable@6.0.0", + "react-loadable-ssr-addon-v5-slorber": "^1.0.1", + "react-router": "^5.3.4", + "react-router-config": "^5.1.1", + "react-router-dom": "^5.3.4", + "rtl-detect": "^1.0.4", + "semver": "^7.5.4", + "serve-handler": "^6.1.5", + "shelljs": "^0.8.5", + "terser-webpack-plugin": "^5.3.9", + "tslib": "^2.6.0", + "update-notifier": "^6.0.2", + "url-loader": "^4.1.1", + "webpack": "^5.88.1", + "webpack-bundle-analyzer": "^4.9.0", + "webpack-dev-server": "^4.15.1", + "webpack-merge": "^5.9.0", + "webpackbar": "^5.0.2" + }, + "bin": { + "docusaurus": "bin/docusaurus.mjs" + }, + "engines": { + "node": ">=18.0" + }, + "peerDependencies": { + "react": "^18.0.0", + "react-dom": "^18.0.0" + } + }, + "node_modules/@docusaurus/plugin-content-docs/node_modules/@docusaurus/cssnano-preset": { + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/@docusaurus/cssnano-preset/-/cssnano-preset-3.4.0.tgz", + "integrity": "sha512-qwLFSz6v/pZHy/UP32IrprmH5ORce86BGtN0eBtG75PpzQJAzp9gefspox+s8IEOr0oZKuQ/nhzZ3xwyc3jYJQ==", + "dependencies": { + "cssnano-preset-advanced": "^6.1.2", + "postcss": "^8.4.38", + "postcss-sort-media-queries": "^5.2.0", + "tslib": "^2.6.0" + }, + "engines": { + "node": ">=18.0" + } + }, + "node_modules/@docusaurus/plugin-content-docs/node_modules/@docusaurus/logger": { + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/@docusaurus/logger/-/logger-3.4.0.tgz", + "integrity": "sha512-bZwkX+9SJ8lB9kVRkXw+xvHYSMGG4bpYHKGXeXFvyVc79NMeeBSGgzd4TQLHH+DYeOJoCdl8flrFJVxlZ0wo/Q==", + "dependencies": { + "chalk": "^4.1.2", + "tslib": "^2.6.0" + }, + "engines": { + "node": ">=18.0" } }, "node_modules/@docusaurus/plugin-content-docs/node_modules/@docusaurus/mdx-loader": { - "version": "2.4.3", - "resolved": "https://registry.npmjs.org/@docusaurus/mdx-loader/-/mdx-loader-2.4.3.tgz", - "integrity": "sha512-b1+fDnWtl3GiqkL0BRjYtc94FZrcDDBV1j8446+4tptB9BAOlePwG2p/pK6vGvfL53lkOsszXMghr2g67M0vCw==", + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/@docusaurus/mdx-loader/-/mdx-loader-3.4.0.tgz", + "integrity": "sha512-kSSbrrk4nTjf4d+wtBA9H+FGauf2gCax89kV8SUSJu3qaTdSIKdWERlngsiHaCFgZ7laTJ8a67UFf+xlFPtuTw==", "dependencies": { - "@babel/parser": "^7.18.8", - "@babel/traverse": "^7.18.8", - "@docusaurus/logger": "2.4.3", - "@docusaurus/utils": "2.4.3", - "@mdx-js/mdx": "^1.6.22", + "@docusaurus/logger": "3.4.0", + "@docusaurus/utils": "3.4.0", + "@docusaurus/utils-validation": "3.4.0", + "@mdx-js/mdx": "^3.0.0", + "@slorber/remark-comment": "^1.0.0", "escape-html": "^1.0.3", + "estree-util-value-to-estree": "^3.0.1", "file-loader": "^6.2.0", - "fs-extra": "^10.1.0", - "image-size": "^1.0.1", - "mdast-util-to-string": "^2.0.0", - "remark-emoji": "^2.2.0", + "fs-extra": "^11.1.1", + "image-size": "^1.0.2", + "mdast-util-mdx": "^3.0.0", + "mdast-util-to-string": "^4.0.0", + "rehype-raw": "^7.0.0", + "remark-directive": "^3.0.0", + "remark-emoji": "^4.0.0", + "remark-frontmatter": "^5.0.0", + "remark-gfm": "^4.0.0", "stringify-object": "^3.3.0", - "tslib": "^2.4.0", - "unified": "^9.2.2", - "unist-util-visit": "^2.0.3", + "tslib": "^2.6.0", + "unified": "^11.0.3", + "unist-util-visit": "^5.0.0", "url-loader": "^4.1.1", - "webpack": "^5.73.0" + "vfile": "^6.0.1", + "webpack": "^5.88.1" }, "engines": { - "node": ">=16.14" + "node": ">=18.0" }, "peerDependencies": { - "react": "^16.8.4 || ^17.0.0", - "react-dom": "^16.8.4 || ^17.0.0" + "react": "^18.0.0", + "react-dom": "^18.0.0" + } + }, + "node_modules/@docusaurus/plugin-content-docs/node_modules/@docusaurus/module-type-aliases": { + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/@docusaurus/module-type-aliases/-/module-type-aliases-3.4.0.tgz", + "integrity": "sha512-A1AyS8WF5Bkjnb8s+guTDuYmUiwJzNrtchebBHpc0gz0PyHJNMaybUlSrmJjHVcGrya0LKI4YcR3lBDQfXRYLw==", + "dependencies": { + "@docusaurus/types": "3.4.0", + "@types/history": "^4.7.11", + "@types/react": "*", + "@types/react-router-config": "*", + "@types/react-router-dom": "*", + "react-helmet-async": "*", + "react-loadable": "npm:@docusaurus/react-loadable@6.0.0" + }, + "peerDependencies": { + "react": "*", + "react-dom": "*" } }, "node_modules/@docusaurus/plugin-content-docs/node_modules/@docusaurus/types": { - "version": "2.4.3", - "resolved": "https://registry.npmjs.org/@docusaurus/types/-/types-2.4.3.tgz", - "integrity": "sha512-W6zNLGQqfrp/EoPD0bhb9n7OobP+RHpmvVzpA+Z/IuU3Q63njJM24hmT0GYboovWcDtFmnIJC9wcyx4RVPQscw==", + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/@docusaurus/types/-/types-3.4.0.tgz", + "integrity": "sha512-4jcDO8kXi5Cf9TcyikB/yKmz14f2RZ2qTRerbHAsS+5InE9ZgSLBNLsewtFTcTOXSVcbU3FoGOzcNWAmU1TR0A==", "dependencies": { + "@mdx-js/mdx": "^3.0.0", "@types/history": "^4.7.11", "@types/react": "*", "commander": "^5.1.0", - "joi": "^17.6.0", + "joi": "^17.9.2", "react-helmet-async": "^1.3.0", "utility-types": "^3.10.0", - "webpack": "^5.73.0", - "webpack-merge": "^5.8.0" + "webpack": "^5.88.1", + "webpack-merge": "^5.9.0" }, "peerDependencies": { - "react": "^16.8.4 || ^17.0.0", - "react-dom": "^16.8.4 || ^17.0.0" + "react": "^18.0.0", + "react-dom": "^18.0.0" + } + }, + "node_modules/@docusaurus/plugin-content-docs/node_modules/@docusaurus/utils": { + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/@docusaurus/utils/-/utils-3.4.0.tgz", + "integrity": "sha512-fRwnu3L3nnWaXOgs88BVBmG1yGjcQqZNHG+vInhEa2Sz2oQB+ZjbEMO5Rh9ePFpZ0YDiDUhpaVjwmS+AU2F14g==", + "dependencies": { + "@docusaurus/logger": "3.4.0", + "@docusaurus/utils-common": "3.4.0", + "@svgr/webpack": "^8.1.0", + "escape-string-regexp": "^4.0.0", + "file-loader": "^6.2.0", + "fs-extra": "^11.1.1", + "github-slugger": "^1.5.0", + "globby": "^11.1.0", + "gray-matter": "^4.0.3", + "jiti": "^1.20.0", + "js-yaml": "^4.1.0", + "lodash": "^4.17.21", + "micromatch": "^4.0.5", + "prompts": "^2.4.2", + "resolve-pathname": "^3.0.0", + "shelljs": "^0.8.5", + "tslib": "^2.6.0", + "url-loader": "^4.1.1", + "utility-types": "^3.10.0", + "webpack": "^5.88.1" + }, + "engines": { + "node": ">=18.0" + }, + "peerDependencies": { + "@docusaurus/types": "*" + }, + "peerDependenciesMeta": { + "@docusaurus/types": { + "optional": true + } + } + }, + "node_modules/@docusaurus/plugin-content-docs/node_modules/@docusaurus/utils-common": { + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/@docusaurus/utils-common/-/utils-common-3.4.0.tgz", + "integrity": "sha512-NVx54Wr4rCEKsjOH5QEVvxIqVvm+9kh7q8aYTU5WzUU9/Hctd6aTrcZ3G0Id4zYJ+AeaG5K5qHA4CY5Kcm2iyQ==", + "dependencies": { + "tslib": "^2.6.0" + }, + "engines": { + "node": ">=18.0" + }, + "peerDependencies": { + "@docusaurus/types": "*" + }, + "peerDependenciesMeta": { + "@docusaurus/types": { + "optional": true + } + } + }, + "node_modules/@docusaurus/plugin-content-docs/node_modules/@docusaurus/utils-validation": { + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/@docusaurus/utils-validation/-/utils-validation-3.4.0.tgz", + "integrity": "sha512-hYQ9fM+AXYVTWxJOT1EuNaRnrR2WGpRdLDQG07O8UOpsvCPWUVOeo26Rbm0JWY2sGLfzAb+tvJ62yF+8F+TV0g==", + "dependencies": { + "@docusaurus/logger": "3.4.0", + "@docusaurus/utils": "3.4.0", + "@docusaurus/utils-common": "3.4.0", + "fs-extra": "^11.2.0", + "joi": "^17.9.2", + "js-yaml": "^4.1.0", + "lodash": "^4.17.21", + "tslib": "^2.6.0" + }, + "engines": { + "node": ">=18.0" + } + }, + "node_modules/@docusaurus/plugin-content-docs/node_modules/@svgr/babel-plugin-add-jsx-attribute": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-add-jsx-attribute/-/babel-plugin-add-jsx-attribute-8.0.0.tgz", + "integrity": "sha512-b9MIk7yhdS1pMCZM8VeNfUlSKVRhsHZNMl5O9SfaX0l0t5wjdgu4IDzGB8bpnGBBOjGST3rRFVsaaEtI4W6f7g==", + "engines": { + "node": ">=14" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/gregberge" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@docusaurus/plugin-content-docs/node_modules/@svgr/babel-plugin-replace-jsx-attribute-value": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-replace-jsx-attribute-value/-/babel-plugin-replace-jsx-attribute-value-8.0.0.tgz", + "integrity": "sha512-KVQ+PtIjb1BuYT3ht8M5KbzWBhdAjjUPdlMtpuw/VjT8coTrItWX6Qafl9+ji831JaJcu6PJNKCV0bp01lBNzQ==", + "engines": { + "node": ">=14" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/gregberge" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@docusaurus/plugin-content-docs/node_modules/@svgr/babel-plugin-svg-dynamic-title": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-svg-dynamic-title/-/babel-plugin-svg-dynamic-title-8.0.0.tgz", + "integrity": "sha512-omNiKqwjNmOQJ2v6ge4SErBbkooV2aAWwaPFs2vUY7p7GhVkzRkJ00kILXQvRhA6miHnNpXv7MRnnSjdRjK8og==", + "engines": { + "node": ">=14" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/gregberge" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@docusaurus/plugin-content-docs/node_modules/@svgr/babel-plugin-svg-em-dimensions": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-svg-em-dimensions/-/babel-plugin-svg-em-dimensions-8.0.0.tgz", + "integrity": "sha512-mURHYnu6Iw3UBTbhGwE/vsngtCIbHE43xCRK7kCw4t01xyGqb2Pd+WXekRRoFOBIY29ZoOhUCTEweDMdrjfi9g==", + "engines": { + "node": ">=14" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/gregberge" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@docusaurus/plugin-content-docs/node_modules/@svgr/babel-plugin-transform-react-native-svg": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-transform-react-native-svg/-/babel-plugin-transform-react-native-svg-8.1.0.tgz", + "integrity": "sha512-Tx8T58CHo+7nwJ+EhUwx3LfdNSG9R2OKfaIXXs5soiy5HtgoAEkDay9LIimLOcG8dJQH1wPZp/cnAv6S9CrR1Q==", + "engines": { + "node": ">=14" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/gregberge" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@docusaurus/plugin-content-docs/node_modules/@svgr/babel-plugin-transform-svg-component": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-transform-svg-component/-/babel-plugin-transform-svg-component-8.0.0.tgz", + "integrity": "sha512-DFx8xa3cZXTdb/k3kfPeaixecQLgKh5NVBMwD0AQxOzcZawK4oo1Jh9LbrcACUivsCA7TLG8eeWgrDXjTMhRmw==", + "engines": { + "node": ">=12" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/gregberge" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@docusaurus/plugin-content-docs/node_modules/@svgr/babel-preset": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/@svgr/babel-preset/-/babel-preset-8.1.0.tgz", + "integrity": "sha512-7EYDbHE7MxHpv4sxvnVPngw5fuR6pw79SkcrILHJ/iMpuKySNCl5W1qcwPEpU+LgyRXOaAFgH0KhwD18wwg6ug==", + "dependencies": { + "@svgr/babel-plugin-add-jsx-attribute": "8.0.0", + "@svgr/babel-plugin-remove-jsx-attribute": "8.0.0", + "@svgr/babel-plugin-remove-jsx-empty-expression": "8.0.0", + "@svgr/babel-plugin-replace-jsx-attribute-value": "8.0.0", + "@svgr/babel-plugin-svg-dynamic-title": "8.0.0", + "@svgr/babel-plugin-svg-em-dimensions": "8.0.0", + "@svgr/babel-plugin-transform-react-native-svg": "8.1.0", + "@svgr/babel-plugin-transform-svg-component": "8.0.0" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/gregberge" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@docusaurus/plugin-content-docs/node_modules/@svgr/core": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/@svgr/core/-/core-8.1.0.tgz", + "integrity": "sha512-8QqtOQT5ACVlmsvKOJNEaWmRPmcojMOzCz4Hs2BGG/toAp/K38LcsMRyLp349glq5AzJbCEeimEoxaX6v/fLrA==", + "dependencies": { + "@babel/core": "^7.21.3", + "@svgr/babel-preset": "8.1.0", + "camelcase": "^6.2.0", + "cosmiconfig": "^8.1.3", + "snake-case": "^3.0.4" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/gregberge" + } + }, + "node_modules/@docusaurus/plugin-content-docs/node_modules/@svgr/hast-util-to-babel-ast": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/@svgr/hast-util-to-babel-ast/-/hast-util-to-babel-ast-8.0.0.tgz", + "integrity": "sha512-EbDKwO9GpfWP4jN9sGdYwPBU0kdomaPIL2Eu4YwmgP+sJeXT+L7bMwJUBnhzfH8Q2qMBqZ4fJwpCyYsAN3mt2Q==", + "dependencies": { + "@babel/types": "^7.21.3", + "entities": "^4.4.0" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/gregberge" + } + }, + "node_modules/@docusaurus/plugin-content-docs/node_modules/@svgr/plugin-jsx": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/@svgr/plugin-jsx/-/plugin-jsx-8.1.0.tgz", + "integrity": "sha512-0xiIyBsLlr8quN+WyuxooNW9RJ0Dpr8uOnH/xrCVO8GLUcwHISwj1AG0k+LFzteTkAA0GbX0kj9q6Dk70PTiPA==", + "dependencies": { + "@babel/core": "^7.21.3", + "@svgr/babel-preset": "8.1.0", + "@svgr/hast-util-to-babel-ast": "8.0.0", + "svg-parser": "^2.0.4" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/gregberge" + }, + "peerDependencies": { + "@svgr/core": "*" + } + }, + "node_modules/@docusaurus/plugin-content-docs/node_modules/@svgr/plugin-svgo": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/@svgr/plugin-svgo/-/plugin-svgo-8.1.0.tgz", + "integrity": "sha512-Ywtl837OGO9pTLIN/onoWLmDQ4zFUycI1g76vuKGEz6evR/ZTJlJuz3G/fIkb6OVBJ2g0o6CGJzaEjfmEo3AHA==", + "dependencies": { + "cosmiconfig": "^8.1.3", + "deepmerge": "^4.3.1", + "svgo": "^3.0.2" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/gregberge" + }, + "peerDependencies": { + "@svgr/core": "*" + } + }, + "node_modules/@docusaurus/plugin-content-docs/node_modules/@svgr/webpack": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/@svgr/webpack/-/webpack-8.1.0.tgz", + "integrity": "sha512-LnhVjMWyMQV9ZmeEy26maJk+8HTIbd59cH4F2MJ439k9DqejRisfFNGAPvRYlKETuh9LrImlS8aKsBgKjMA8WA==", + "dependencies": { + "@babel/core": "^7.21.3", + "@babel/plugin-transform-react-constant-elements": "^7.21.3", + "@babel/preset-env": "^7.20.2", + "@babel/preset-react": "^7.18.6", + "@babel/preset-typescript": "^7.21.0", + "@svgr/core": "8.1.0", + "@svgr/plugin-jsx": "8.1.0", + "@svgr/plugin-svgo": "8.1.0" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/gregberge" + } + }, + "node_modules/@docusaurus/plugin-content-docs/node_modules/@types/hast": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/@types/hast/-/hast-3.0.4.tgz", + "integrity": "sha512-WPs+bbQw5aCj+x6laNGWLH3wviHtoCv/P3+otBhbOhJgG8qtpdAMlTCxLtsTWA7LH1Oh/bFCHsBn0TPS5m30EQ==", + "dependencies": { + "@types/unist": "*" + } + }, + "node_modules/@docusaurus/plugin-content-docs/node_modules/cosmiconfig": { + "version": "8.3.6", + "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-8.3.6.tgz", + "integrity": "sha512-kcZ6+W5QzcJ3P1Mt+83OUv/oHFqZHIx8DuxG6eZ5RGMERoLqp4BuGjhHLYGK+Kf5XVkQvqBSmAy/nGWN3qDgEA==", + "dependencies": { + "import-fresh": "^3.3.0", + "js-yaml": "^4.1.0", + "parse-json": "^5.2.0", + "path-type": "^4.0.0" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/d-fischer" + }, + "peerDependencies": { + "typescript": ">=4.9.5" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/@docusaurus/plugin-content-docs/node_modules/css-declaration-sorter": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/css-declaration-sorter/-/css-declaration-sorter-7.2.0.tgz", + "integrity": "sha512-h70rUM+3PNFuaBDTLe8wF/cdWu+dOZmb7pJt8Z2sedYbAcQVQV/tEchueg3GWxwqS0cxtbxmaHEdkNACqcvsow==", + "engines": { + "node": "^14 || ^16 || >=18" + }, + "peerDependencies": { + "postcss": "^8.0.9" + } + }, + "node_modules/@docusaurus/plugin-content-docs/node_modules/css-minimizer-webpack-plugin": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/css-minimizer-webpack-plugin/-/css-minimizer-webpack-plugin-5.0.1.tgz", + "integrity": "sha512-3caImjKFQkS+ws1TGcFn0V1HyDJFq1Euy589JlD6/3rV2kj+w7r5G9WDMgSHvpvXHNZ2calVypZWuEDQd9wfLg==", + "dependencies": { + "@jridgewell/trace-mapping": "^0.3.18", + "cssnano": "^6.0.1", + "jest-worker": "^29.4.3", + "postcss": "^8.4.24", + "schema-utils": "^4.0.1", + "serialize-javascript": "^6.0.1" + }, + "engines": { + "node": ">= 14.15.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "webpack": "^5.0.0" + }, + "peerDependenciesMeta": { + "@parcel/css": { + "optional": true + }, + "@swc/css": { + "optional": true + }, + "clean-css": { + "optional": true + }, + "csso": { + "optional": true + }, + "esbuild": { + "optional": true + }, + "lightningcss": { + "optional": true + } + } + }, + "node_modules/@docusaurus/plugin-content-docs/node_modules/css-select": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/css-select/-/css-select-5.1.0.tgz", + "integrity": "sha512-nwoRF1rvRRnnCqqY7updORDsuqKzqYJ28+oSMaJMMgOauh3fvwHqMS7EZpIPqK8GL+g9mKxF1vP/ZjSeNjEVHg==", + "dependencies": { + "boolbase": "^1.0.0", + "css-what": "^6.1.0", + "domhandler": "^5.0.2", + "domutils": "^3.0.1", + "nth-check": "^2.0.1" + }, + "funding": { + "url": "https://github.com/sponsors/fb55" + } + }, + "node_modules/@docusaurus/plugin-content-docs/node_modules/css-tree": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/css-tree/-/css-tree-2.3.1.tgz", + "integrity": "sha512-6Fv1DV/TYw//QF5IzQdqsNDjx/wc8TrMBZsqjL9eW01tWb7R7k/mq+/VXfJCl7SoD5emsJop9cOByJZfs8hYIw==", + "dependencies": { + "mdn-data": "2.0.30", + "source-map-js": "^1.0.1" + }, + "engines": { + "node": "^10 || ^12.20.0 || ^14.13.0 || >=15.0.0" + } + }, + "node_modules/@docusaurus/plugin-content-docs/node_modules/cssnano": { + "version": "6.1.2", + "resolved": "https://registry.npmjs.org/cssnano/-/cssnano-6.1.2.tgz", + "integrity": "sha512-rYk5UeX7VAM/u0lNqewCdasdtPK81CgX8wJFLEIXHbV2oldWRgJAsZrdhRXkV1NJzA2g850KiFm9mMU2HxNxMA==", + "dependencies": { + "cssnano-preset-default": "^6.1.2", + "lilconfig": "^3.1.1" + }, + "engines": { + "node": "^14 || ^16 || >=18.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/cssnano" + }, + "peerDependencies": { + "postcss": "^8.4.31" + } + }, + "node_modules/@docusaurus/plugin-content-docs/node_modules/cssnano-preset-advanced": { + "version": "6.1.2", + "resolved": "https://registry.npmjs.org/cssnano-preset-advanced/-/cssnano-preset-advanced-6.1.2.tgz", + "integrity": "sha512-Nhao7eD8ph2DoHolEzQs5CfRpiEP0xa1HBdnFZ82kvqdmbwVBUr2r1QuQ4t1pi+D1ZpqpcO4T+wy/7RxzJ/WPQ==", + "dependencies": { + "autoprefixer": "^10.4.19", + "browserslist": "^4.23.0", + "cssnano-preset-default": "^6.1.2", + "postcss-discard-unused": "^6.0.5", + "postcss-merge-idents": "^6.0.3", + "postcss-reduce-idents": "^6.0.3", + "postcss-zindex": "^6.0.2" + }, + "engines": { + "node": "^14 || ^16 || >=18.0" + }, + "peerDependencies": { + "postcss": "^8.4.31" + } + }, + "node_modules/@docusaurus/plugin-content-docs/node_modules/cssnano-preset-default": { + "version": "6.1.2", + "resolved": "https://registry.npmjs.org/cssnano-preset-default/-/cssnano-preset-default-6.1.2.tgz", + "integrity": "sha512-1C0C+eNaeN8OcHQa193aRgYexyJtU8XwbdieEjClw+J9d94E41LwT6ivKH0WT+fYwYWB0Zp3I3IZ7tI/BbUbrg==", + "dependencies": { + "browserslist": "^4.23.0", + "css-declaration-sorter": "^7.2.0", + "cssnano-utils": "^4.0.2", + "postcss-calc": "^9.0.1", + "postcss-colormin": "^6.1.0", + "postcss-convert-values": "^6.1.0", + "postcss-discard-comments": "^6.0.2", + "postcss-discard-duplicates": "^6.0.3", + "postcss-discard-empty": "^6.0.3", + "postcss-discard-overridden": "^6.0.2", + "postcss-merge-longhand": "^6.0.5", + "postcss-merge-rules": "^6.1.1", + "postcss-minify-font-values": "^6.1.0", + "postcss-minify-gradients": "^6.0.3", + "postcss-minify-params": "^6.1.0", + "postcss-minify-selectors": "^6.0.4", + "postcss-normalize-charset": "^6.0.2", + "postcss-normalize-display-values": "^6.0.2", + "postcss-normalize-positions": "^6.0.2", + "postcss-normalize-repeat-style": "^6.0.2", + "postcss-normalize-string": "^6.0.2", + "postcss-normalize-timing-functions": "^6.0.2", + "postcss-normalize-unicode": "^6.1.0", + "postcss-normalize-url": "^6.0.2", + "postcss-normalize-whitespace": "^6.0.2", + "postcss-ordered-values": "^6.0.2", + "postcss-reduce-initial": "^6.1.0", + "postcss-reduce-transforms": "^6.0.2", + "postcss-svgo": "^6.0.3", + "postcss-unique-selectors": "^6.0.4" + }, + "engines": { + "node": "^14 || ^16 || >=18.0" + }, + "peerDependencies": { + "postcss": "^8.4.31" + } + }, + "node_modules/@docusaurus/plugin-content-docs/node_modules/cssnano-utils": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/cssnano-utils/-/cssnano-utils-4.0.2.tgz", + "integrity": "sha512-ZR1jHg+wZ8o4c3zqf1SIUSTIvm/9mU343FMR6Obe/unskbvpGhZOo1J6d/r8D1pzkRQYuwbcH3hToOuoA2G7oQ==", + "engines": { + "node": "^14 || ^16 || >=18.0" + }, + "peerDependencies": { + "postcss": "^8.4.31" + } + }, + "node_modules/@docusaurus/plugin-content-docs/node_modules/csso": { + "version": "5.0.5", + "resolved": "https://registry.npmjs.org/csso/-/csso-5.0.5.tgz", + "integrity": "sha512-0LrrStPOdJj+SPCCrGhzryycLjwcgUSHBtxNA8aIDxf0GLsRh1cKYhB00Gd1lDOS4yGH69+SNn13+TWbVHETFQ==", + "dependencies": { + "css-tree": "~2.2.0" + }, + "engines": { + "node": "^10 || ^12.20.0 || ^14.13.0 || >=15.0.0", + "npm": ">=7.0.0" + } + }, + "node_modules/@docusaurus/plugin-content-docs/node_modules/csso/node_modules/css-tree": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/css-tree/-/css-tree-2.2.1.tgz", + "integrity": "sha512-OA0mILzGc1kCOCSJerOeqDxDQ4HOh+G8NbOJFOTgOCzpw7fCBubk0fEyxp8AgOL/jvLgYA/uV0cMbe43ElF1JA==", + "dependencies": { + "mdn-data": "2.0.28", + "source-map-js": "^1.0.1" + }, + "engines": { + "node": "^10 || ^12.20.0 || ^14.13.0 || >=15.0.0", + "npm": ">=7.0.0" + } + }, + "node_modules/@docusaurus/plugin-content-docs/node_modules/csso/node_modules/mdn-data": { + "version": "2.0.28", + "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.28.tgz", + "integrity": "sha512-aylIc7Z9y4yzHYAJNuESG3hfhC+0Ibp/MAMiaOZgNv4pmEdFyfZhhhny4MNiAfWdBQ1RQ2mfDWmM1x8SvGyp8g==" + }, + "node_modules/@docusaurus/plugin-content-docs/node_modules/dom-serializer": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-2.0.0.tgz", + "integrity": "sha512-wIkAryiqt/nV5EQKqQpo3SToSOV9J0DnbJqwK7Wv/Trc92zIAYZ4FlMu+JPFW1DfGFt81ZTCGgDEabffXeLyJg==", + "dependencies": { + "domelementtype": "^2.3.0", + "domhandler": "^5.0.2", + "entities": "^4.2.0" + }, + "funding": { + "url": "https://github.com/cheeriojs/dom-serializer?sponsor=1" + } + }, + "node_modules/@docusaurus/plugin-content-docs/node_modules/domhandler": { + "version": "5.0.3", + "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-5.0.3.tgz", + "integrity": "sha512-cgwlv/1iFQiFnU96XXgROh8xTeetsnJiDsTc7TYCLFd9+/WNkIqPTxiM/8pSd8VIrhXGTf1Ny1q1hquVqDJB5w==", + "dependencies": { + "domelementtype": "^2.3.0" + }, + "engines": { + "node": ">= 4" + }, + "funding": { + "url": "https://github.com/fb55/domhandler?sponsor=1" + } + }, + "node_modules/@docusaurus/plugin-content-docs/node_modules/domutils": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/domutils/-/domutils-3.1.0.tgz", + "integrity": "sha512-H78uMmQtI2AhgDJjWeQmHwJJ2bLPD3GMmO7Zja/ZZh84wkm+4ut+IUnUdRa8uCGX88DiVx1j6FRe1XfxEgjEZA==", + "dependencies": { + "dom-serializer": "^2.0.0", + "domelementtype": "^2.3.0", + "domhandler": "^5.0.3" + }, + "funding": { + "url": "https://github.com/fb55/domutils?sponsor=1" + } + }, + "node_modules/@docusaurus/plugin-content-docs/node_modules/html-minifier-terser": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/html-minifier-terser/-/html-minifier-terser-7.2.0.tgz", + "integrity": "sha512-tXgn3QfqPIpGl9o+K5tpcj3/MN4SfLtsx2GWwBC3SSd0tXQGyF3gsSqad8loJgKZGM3ZxbYDd5yhiBIdWpmvLA==", + "dependencies": { + "camel-case": "^4.1.2", + "clean-css": "~5.3.2", + "commander": "^10.0.0", + "entities": "^4.4.0", + "param-case": "^3.0.4", + "relateurl": "^0.2.7", + "terser": "^5.15.1" + }, + "bin": { + "html-minifier-terser": "cli.js" + }, + "engines": { + "node": "^14.13.1 || >=16.0.0" + } + }, + "node_modules/@docusaurus/plugin-content-docs/node_modules/html-minifier-terser/node_modules/commander": { + "version": "10.0.1", + "resolved": "https://registry.npmjs.org/commander/-/commander-10.0.1.tgz", + "integrity": "sha512-y4Mg2tXshplEbSGzx7amzPwKKOCGuoSRP/CjEdwwk0FOGlUbq6lKuoyDZTNZkmxHdJtp54hdfY/JUrdL7Xfdug==", + "engines": { + "node": ">=14" + } + }, + "node_modules/@docusaurus/plugin-content-docs/node_modules/lilconfig": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/lilconfig/-/lilconfig-3.1.2.tgz", + "integrity": "sha512-eop+wDAvpItUys0FWkHIKeC9ybYrTGbU41U5K7+bttZZeohvnY7M9dZ5kB21GNWiFT2q1OoPTvncPCgSOVO5ow==", + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/antonk52" + } + }, + "node_modules/@docusaurus/plugin-content-docs/node_modules/mdn-data": { + "version": "2.0.30", + "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.30.tgz", + "integrity": "sha512-GaqWWShW4kv/G9IEucWScBx9G1/vsFZZJUO+tD26M8J8z3Kw5RDQjaoZe03YAClgeS/SWPOcb4nkFBTEi5DUEA==" + }, + "node_modules/@docusaurus/plugin-content-docs/node_modules/postcss-calc": { + "version": "9.0.1", + "resolved": "https://registry.npmjs.org/postcss-calc/-/postcss-calc-9.0.1.tgz", + "integrity": "sha512-TipgjGyzP5QzEhsOZUaIkeO5mKeMFpebWzRogWG/ysonUlnHcq5aJe0jOjpfzUU8PeSaBQnrE8ehR0QA5vs8PQ==", + "dependencies": { + "postcss-selector-parser": "^6.0.11", + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^14 || ^16 || >=18.0" + }, + "peerDependencies": { + "postcss": "^8.2.2" + } + }, + "node_modules/@docusaurus/plugin-content-docs/node_modules/postcss-colormin": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/postcss-colormin/-/postcss-colormin-6.1.0.tgz", + "integrity": "sha512-x9yX7DOxeMAR+BgGVnNSAxmAj98NX/YxEMNFP+SDCEeNLb2r3i6Hh1ksMsnW8Ub5SLCpbescQqn9YEbE9554Sw==", + "dependencies": { + "browserslist": "^4.23.0", + "caniuse-api": "^3.0.0", + "colord": "^2.9.3", + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^14 || ^16 || >=18.0" + }, + "peerDependencies": { + "postcss": "^8.4.31" + } + }, + "node_modules/@docusaurus/plugin-content-docs/node_modules/postcss-convert-values": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/postcss-convert-values/-/postcss-convert-values-6.1.0.tgz", + "integrity": "sha512-zx8IwP/ts9WvUM6NkVSkiU902QZL1bwPhaVaLynPtCsOTqp+ZKbNi+s6XJg3rfqpKGA/oc7Oxk5t8pOQJcwl/w==", + "dependencies": { + "browserslist": "^4.23.0", + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^14 || ^16 || >=18.0" + }, + "peerDependencies": { + "postcss": "^8.4.31" + } + }, + "node_modules/@docusaurus/plugin-content-docs/node_modules/postcss-discard-comments": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/postcss-discard-comments/-/postcss-discard-comments-6.0.2.tgz", + "integrity": "sha512-65w/uIqhSBBfQmYnG92FO1mWZjJ4GL5b8atm5Yw2UgrwD7HiNiSSNwJor1eCFGzUgYnN/iIknhNRVqjrrpuglw==", + "engines": { + "node": "^14 || ^16 || >=18.0" + }, + "peerDependencies": { + "postcss": "^8.4.31" + } + }, + "node_modules/@docusaurus/plugin-content-docs/node_modules/postcss-discard-duplicates": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/postcss-discard-duplicates/-/postcss-discard-duplicates-6.0.3.tgz", + "integrity": "sha512-+JA0DCvc5XvFAxwx6f/e68gQu/7Z9ud584VLmcgto28eB8FqSFZwtrLwB5Kcp70eIoWP/HXqz4wpo8rD8gpsTw==", + "engines": { + "node": "^14 || ^16 || >=18.0" + }, + "peerDependencies": { + "postcss": "^8.4.31" + } + }, + "node_modules/@docusaurus/plugin-content-docs/node_modules/postcss-discard-empty": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/postcss-discard-empty/-/postcss-discard-empty-6.0.3.tgz", + "integrity": "sha512-znyno9cHKQsK6PtxL5D19Fj9uwSzC2mB74cpT66fhgOadEUPyXFkbgwm5tvc3bt3NAy8ltE5MrghxovZRVnOjQ==", + "engines": { + "node": "^14 || ^16 || >=18.0" + }, + "peerDependencies": { + "postcss": "^8.4.31" + } + }, + "node_modules/@docusaurus/plugin-content-docs/node_modules/postcss-discard-overridden": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/postcss-discard-overridden/-/postcss-discard-overridden-6.0.2.tgz", + "integrity": "sha512-j87xzI4LUggC5zND7KdjsI25APtyMuynXZSujByMaav2roV6OZX+8AaCUcZSWqckZpjAjRyFDdpqybgjFO0HJQ==", + "engines": { + "node": "^14 || ^16 || >=18.0" + }, + "peerDependencies": { + "postcss": "^8.4.31" + } + }, + "node_modules/@docusaurus/plugin-content-docs/node_modules/postcss-discard-unused": { + "version": "6.0.5", + "resolved": "https://registry.npmjs.org/postcss-discard-unused/-/postcss-discard-unused-6.0.5.tgz", + "integrity": "sha512-wHalBlRHkaNnNwfC8z+ppX57VhvS+HWgjW508esjdaEYr3Mx7Gnn2xA4R/CKf5+Z9S5qsqC+Uzh4ueENWwCVUA==", + "dependencies": { + "postcss-selector-parser": "^6.0.16" + }, + "engines": { + "node": "^14 || ^16 || >=18.0" + }, + "peerDependencies": { + "postcss": "^8.4.31" + } + }, + "node_modules/@docusaurus/plugin-content-docs/node_modules/postcss-merge-idents": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/postcss-merge-idents/-/postcss-merge-idents-6.0.3.tgz", + "integrity": "sha512-1oIoAsODUs6IHQZkLQGO15uGEbK3EAl5wi9SS8hs45VgsxQfMnxvt+L+zIr7ifZFIH14cfAeVe2uCTa+SPRa3g==", + "dependencies": { + "cssnano-utils": "^4.0.2", + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^14 || ^16 || >=18.0" + }, + "peerDependencies": { + "postcss": "^8.4.31" + } + }, + "node_modules/@docusaurus/plugin-content-docs/node_modules/postcss-merge-longhand": { + "version": "6.0.5", + "resolved": "https://registry.npmjs.org/postcss-merge-longhand/-/postcss-merge-longhand-6.0.5.tgz", + "integrity": "sha512-5LOiordeTfi64QhICp07nzzuTDjNSO8g5Ksdibt44d+uvIIAE1oZdRn8y/W5ZtYgRH/lnLDlvi9F8btZcVzu3w==", + "dependencies": { + "postcss-value-parser": "^4.2.0", + "stylehacks": "^6.1.1" + }, + "engines": { + "node": "^14 || ^16 || >=18.0" + }, + "peerDependencies": { + "postcss": "^8.4.31" + } + }, + "node_modules/@docusaurus/plugin-content-docs/node_modules/postcss-merge-rules": { + "version": "6.1.1", + "resolved": "https://registry.npmjs.org/postcss-merge-rules/-/postcss-merge-rules-6.1.1.tgz", + "integrity": "sha512-KOdWF0gju31AQPZiD+2Ar9Qjowz1LTChSjFFbS+e2sFgc4uHOp3ZvVX4sNeTlk0w2O31ecFGgrFzhO0RSWbWwQ==", + "dependencies": { + "browserslist": "^4.23.0", + "caniuse-api": "^3.0.0", + "cssnano-utils": "^4.0.2", + "postcss-selector-parser": "^6.0.16" + }, + "engines": { + "node": "^14 || ^16 || >=18.0" + }, + "peerDependencies": { + "postcss": "^8.4.31" + } + }, + "node_modules/@docusaurus/plugin-content-docs/node_modules/postcss-minify-font-values": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/postcss-minify-font-values/-/postcss-minify-font-values-6.1.0.tgz", + "integrity": "sha512-gklfI/n+9rTh8nYaSJXlCo3nOKqMNkxuGpTn/Qm0gstL3ywTr9/WRKznE+oy6fvfolH6dF+QM4nCo8yPLdvGJg==", + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^14 || ^16 || >=18.0" + }, + "peerDependencies": { + "postcss": "^8.4.31" + } + }, + "node_modules/@docusaurus/plugin-content-docs/node_modules/postcss-minify-gradients": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/postcss-minify-gradients/-/postcss-minify-gradients-6.0.3.tgz", + "integrity": "sha512-4KXAHrYlzF0Rr7uc4VrfwDJ2ajrtNEpNEuLxFgwkhFZ56/7gaE4Nr49nLsQDZyUe+ds+kEhf+YAUolJiYXF8+Q==", + "dependencies": { + "colord": "^2.9.3", + "cssnano-utils": "^4.0.2", + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^14 || ^16 || >=18.0" + }, + "peerDependencies": { + "postcss": "^8.4.31" + } + }, + "node_modules/@docusaurus/plugin-content-docs/node_modules/postcss-minify-params": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/postcss-minify-params/-/postcss-minify-params-6.1.0.tgz", + "integrity": "sha512-bmSKnDtyyE8ujHQK0RQJDIKhQ20Jq1LYiez54WiaOoBtcSuflfK3Nm596LvbtlFcpipMjgClQGyGr7GAs+H1uA==", + "dependencies": { + "browserslist": "^4.23.0", + "cssnano-utils": "^4.0.2", + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^14 || ^16 || >=18.0" + }, + "peerDependencies": { + "postcss": "^8.4.31" + } + }, + "node_modules/@docusaurus/plugin-content-docs/node_modules/postcss-minify-selectors": { + "version": "6.0.4", + "resolved": "https://registry.npmjs.org/postcss-minify-selectors/-/postcss-minify-selectors-6.0.4.tgz", + "integrity": "sha512-L8dZSwNLgK7pjTto9PzWRoMbnLq5vsZSTu8+j1P/2GB8qdtGQfn+K1uSvFgYvgh83cbyxT5m43ZZhUMTJDSClQ==", + "dependencies": { + "postcss-selector-parser": "^6.0.16" + }, + "engines": { + "node": "^14 || ^16 || >=18.0" + }, + "peerDependencies": { + "postcss": "^8.4.31" + } + }, + "node_modules/@docusaurus/plugin-content-docs/node_modules/postcss-normalize-charset": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/postcss-normalize-charset/-/postcss-normalize-charset-6.0.2.tgz", + "integrity": "sha512-a8N9czmdnrjPHa3DeFlwqst5eaL5W8jYu3EBbTTkI5FHkfMhFZh1EGbku6jhHhIzTA6tquI2P42NtZ59M/H/kQ==", + "engines": { + "node": "^14 || ^16 || >=18.0" + }, + "peerDependencies": { + "postcss": "^8.4.31" + } + }, + "node_modules/@docusaurus/plugin-content-docs/node_modules/postcss-normalize-display-values": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/postcss-normalize-display-values/-/postcss-normalize-display-values-6.0.2.tgz", + "integrity": "sha512-8H04Mxsb82ON/aAkPeq8kcBbAtI5Q2a64X/mnRRfPXBq7XeogoQvReqxEfc0B4WPq1KimjezNC8flUtC3Qz6jg==", + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^14 || ^16 || >=18.0" + }, + "peerDependencies": { + "postcss": "^8.4.31" + } + }, + "node_modules/@docusaurus/plugin-content-docs/node_modules/postcss-normalize-positions": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/postcss-normalize-positions/-/postcss-normalize-positions-6.0.2.tgz", + "integrity": "sha512-/JFzI441OAB9O7VnLA+RtSNZvQ0NCFZDOtp6QPFo1iIyawyXg0YI3CYM9HBy1WvwCRHnPep/BvI1+dGPKoXx/Q==", + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^14 || ^16 || >=18.0" + }, + "peerDependencies": { + "postcss": "^8.4.31" + } + }, + "node_modules/@docusaurus/plugin-content-docs/node_modules/postcss-normalize-repeat-style": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/postcss-normalize-repeat-style/-/postcss-normalize-repeat-style-6.0.2.tgz", + "integrity": "sha512-YdCgsfHkJ2jEXwR4RR3Tm/iOxSfdRt7jplS6XRh9Js9PyCR/aka/FCb6TuHT2U8gQubbm/mPmF6L7FY9d79VwQ==", + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^14 || ^16 || >=18.0" + }, + "peerDependencies": { + "postcss": "^8.4.31" + } + }, + "node_modules/@docusaurus/plugin-content-docs/node_modules/postcss-normalize-string": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/postcss-normalize-string/-/postcss-normalize-string-6.0.2.tgz", + "integrity": "sha512-vQZIivlxlfqqMp4L9PZsFE4YUkWniziKjQWUtsxUiVsSSPelQydwS8Wwcuw0+83ZjPWNTl02oxlIvXsmmG+CiQ==", + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^14 || ^16 || >=18.0" + }, + "peerDependencies": { + "postcss": "^8.4.31" + } + }, + "node_modules/@docusaurus/plugin-content-docs/node_modules/postcss-normalize-timing-functions": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/postcss-normalize-timing-functions/-/postcss-normalize-timing-functions-6.0.2.tgz", + "integrity": "sha512-a+YrtMox4TBtId/AEwbA03VcJgtyW4dGBizPl7e88cTFULYsprgHWTbfyjSLyHeBcK/Q9JhXkt2ZXiwaVHoMzA==", + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^14 || ^16 || >=18.0" + }, + "peerDependencies": { + "postcss": "^8.4.31" + } + }, + "node_modules/@docusaurus/plugin-content-docs/node_modules/postcss-normalize-unicode": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/postcss-normalize-unicode/-/postcss-normalize-unicode-6.1.0.tgz", + "integrity": "sha512-QVC5TQHsVj33otj8/JD869Ndr5Xcc/+fwRh4HAsFsAeygQQXm+0PySrKbr/8tkDKzW+EVT3QkqZMfFrGiossDg==", + "dependencies": { + "browserslist": "^4.23.0", + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^14 || ^16 || >=18.0" + }, + "peerDependencies": { + "postcss": "^8.4.31" + } + }, + "node_modules/@docusaurus/plugin-content-docs/node_modules/postcss-normalize-url": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/postcss-normalize-url/-/postcss-normalize-url-6.0.2.tgz", + "integrity": "sha512-kVNcWhCeKAzZ8B4pv/DnrU1wNh458zBNp8dh4y5hhxih5RZQ12QWMuQrDgPRw3LRl8mN9vOVfHl7uhvHYMoXsQ==", + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^14 || ^16 || >=18.0" + }, + "peerDependencies": { + "postcss": "^8.4.31" + } + }, + "node_modules/@docusaurus/plugin-content-docs/node_modules/postcss-normalize-whitespace": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/postcss-normalize-whitespace/-/postcss-normalize-whitespace-6.0.2.tgz", + "integrity": "sha512-sXZ2Nj1icbJOKmdjXVT9pnyHQKiSAyuNQHSgRCUgThn2388Y9cGVDR+E9J9iAYbSbLHI+UUwLVl1Wzco/zgv0Q==", + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^14 || ^16 || >=18.0" + }, + "peerDependencies": { + "postcss": "^8.4.31" + } + }, + "node_modules/@docusaurus/plugin-content-docs/node_modules/postcss-ordered-values": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/postcss-ordered-values/-/postcss-ordered-values-6.0.2.tgz", + "integrity": "sha512-VRZSOB+JU32RsEAQrO94QPkClGPKJEL/Z9PCBImXMhIeK5KAYo6slP/hBYlLgrCjFxyqvn5VC81tycFEDBLG1Q==", + "dependencies": { + "cssnano-utils": "^4.0.2", + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^14 || ^16 || >=18.0" + }, + "peerDependencies": { + "postcss": "^8.4.31" + } + }, + "node_modules/@docusaurus/plugin-content-docs/node_modules/postcss-reduce-idents": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/postcss-reduce-idents/-/postcss-reduce-idents-6.0.3.tgz", + "integrity": "sha512-G3yCqZDpsNPoQgbDUy3T0E6hqOQ5xigUtBQyrmq3tn2GxlyiL0yyl7H+T8ulQR6kOcHJ9t7/9H4/R2tv8tJbMA==", + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^14 || ^16 || >=18.0" + }, + "peerDependencies": { + "postcss": "^8.4.31" + } + }, + "node_modules/@docusaurus/plugin-content-docs/node_modules/postcss-reduce-initial": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/postcss-reduce-initial/-/postcss-reduce-initial-6.1.0.tgz", + "integrity": "sha512-RarLgBK/CrL1qZags04oKbVbrrVK2wcxhvta3GCxrZO4zveibqbRPmm2VI8sSgCXwoUHEliRSbOfpR0b/VIoiw==", + "dependencies": { + "browserslist": "^4.23.0", + "caniuse-api": "^3.0.0" + }, + "engines": { + "node": "^14 || ^16 || >=18.0" + }, + "peerDependencies": { + "postcss": "^8.4.31" + } + }, + "node_modules/@docusaurus/plugin-content-docs/node_modules/postcss-reduce-transforms": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/postcss-reduce-transforms/-/postcss-reduce-transforms-6.0.2.tgz", + "integrity": "sha512-sB+Ya++3Xj1WaT9+5LOOdirAxP7dJZms3GRcYheSPi1PiTMigsxHAdkrbItHxwYHr4kt1zL7mmcHstgMYT+aiA==", + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^14 || ^16 || >=18.0" + }, + "peerDependencies": { + "postcss": "^8.4.31" + } + }, + "node_modules/@docusaurus/plugin-content-docs/node_modules/postcss-sort-media-queries": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/postcss-sort-media-queries/-/postcss-sort-media-queries-5.2.0.tgz", + "integrity": "sha512-AZ5fDMLD8SldlAYlvi8NIqo0+Z8xnXU2ia0jxmuhxAU+Lqt9K+AlmLNJ/zWEnE9x+Zx3qL3+1K20ATgNOr3fAA==", + "dependencies": { + "sort-css-media-queries": "2.2.0" + }, + "engines": { + "node": ">=14.0.0" + }, + "peerDependencies": { + "postcss": "^8.4.23" + } + }, + "node_modules/@docusaurus/plugin-content-docs/node_modules/postcss-svgo": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/postcss-svgo/-/postcss-svgo-6.0.3.tgz", + "integrity": "sha512-dlrahRmxP22bX6iKEjOM+c8/1p+81asjKT+V5lrgOH944ryx/OHpclnIbGsKVd3uWOXFLYJwCVf0eEkJGvO96g==", + "dependencies": { + "postcss-value-parser": "^4.2.0", + "svgo": "^3.2.0" + }, + "engines": { + "node": "^14 || ^16 || >= 18" + }, + "peerDependencies": { + "postcss": "^8.4.31" + } + }, + "node_modules/@docusaurus/plugin-content-docs/node_modules/postcss-unique-selectors": { + "version": "6.0.4", + "resolved": "https://registry.npmjs.org/postcss-unique-selectors/-/postcss-unique-selectors-6.0.4.tgz", + "integrity": "sha512-K38OCaIrO8+PzpArzkLKB42dSARtC2tmG6PvD4b1o1Q2E9Os8jzfWFfSy/rixsHwohtsDdFtAWGjFVFUdwYaMg==", + "dependencies": { + "postcss-selector-parser": "^6.0.16" + }, + "engines": { + "node": "^14 || ^16 || >=18.0" + }, + "peerDependencies": { + "postcss": "^8.4.31" + } + }, + "node_modules/@docusaurus/plugin-content-docs/node_modules/postcss-zindex": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/postcss-zindex/-/postcss-zindex-6.0.2.tgz", + "integrity": "sha512-5BxW9l1evPB/4ZIc+2GobEBoKC+h8gPGCMi+jxsYvd2x0mjq7wazk6DrP71pStqxE9Foxh5TVnonbWpFZzXaYg==", + "engines": { + "node": "^14 || ^16 || >=18.0" + }, + "peerDependencies": { + "postcss": "^8.4.31" + } + }, + "node_modules/@docusaurus/plugin-content-docs/node_modules/react-loadable": { + "name": "@docusaurus/react-loadable", + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/@docusaurus/react-loadable/-/react-loadable-6.0.0.tgz", + "integrity": "sha512-YMMxTUQV/QFSnbgrP3tjDzLHRg7vsbMn8e9HAa8o/1iXoiomo48b7sk/kkmWEuWNDPJVlKSJRB6Y2fHqdJk+SQ==", + "dependencies": { + "@types/react": "*" + }, + "peerDependencies": { + "react": "*" + } + }, + "node_modules/@docusaurus/plugin-content-docs/node_modules/rehype-raw": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/rehype-raw/-/rehype-raw-7.0.0.tgz", + "integrity": "sha512-/aE8hCfKlQeA8LmyeyQvQF3eBiLRGNlfBJEvWH7ivp9sBqs7TNqBL5X3v157rM4IFETqDnIOO+z5M/biZbo9Ww==", + "dependencies": { + "@types/hast": "^3.0.0", + "hast-util-raw": "^9.0.0", + "vfile": "^6.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/@docusaurus/plugin-content-docs/node_modules/sort-css-media-queries": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/sort-css-media-queries/-/sort-css-media-queries-2.2.0.tgz", + "integrity": "sha512-0xtkGhWCC9MGt/EzgnvbbbKhqWjl1+/rncmhTh5qCpbYguXh6S/qwePfv/JQ8jePXXmqingylxoC49pCkSPIbA==", + "engines": { + "node": ">= 6.3.0" + } + }, + "node_modules/@docusaurus/plugin-content-docs/node_modules/stylehacks": { + "version": "6.1.1", + "resolved": "https://registry.npmjs.org/stylehacks/-/stylehacks-6.1.1.tgz", + "integrity": "sha512-gSTTEQ670cJNoaeIp9KX6lZmm8LJ3jPB5yJmX8Zq/wQxOsAFXV3qjWzHas3YYk1qesuVIyYWWUpZ0vSE/dTSGg==", + "dependencies": { + "browserslist": "^4.23.0", + "postcss-selector-parser": "^6.0.16" + }, + "engines": { + "node": "^14 || ^16 || >=18.0" + }, + "peerDependencies": { + "postcss": "^8.4.31" + } + }, + "node_modules/@docusaurus/plugin-content-docs/node_modules/svgo": { + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/svgo/-/svgo-3.3.2.tgz", + "integrity": "sha512-OoohrmuUlBs8B8o6MB2Aevn+pRIH9zDALSR+6hhqVfa6fRwG/Qw9VUMSMW9VNg2CFc/MTIfabtdOVl9ODIJjpw==", + "dependencies": { + "@trysound/sax": "0.2.0", + "commander": "^7.2.0", + "css-select": "^5.1.0", + "css-tree": "^2.3.1", + "css-what": "^6.1.0", + "csso": "^5.0.5", + "picocolors": "^1.0.0" + }, + "bin": { + "svgo": "bin/svgo" + }, + "engines": { + "node": ">=14.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/svgo" + } + }, + "node_modules/@docusaurus/plugin-content-docs/node_modules/svgo/node_modules/commander": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-7.2.0.tgz", + "integrity": "sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw==", + "engines": { + "node": ">= 10" + } + }, + "node_modules/@docusaurus/plugin-content-pages": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/@docusaurus/plugin-content-pages/-/plugin-content-pages-3.0.1.tgz", + "integrity": "sha512-oP7PoYizKAXyEttcvVzfX3OoBIXEmXTMzCdfmC4oSwjG4SPcJsRge3mmI6O8jcZBgUPjIzXD21bVGWEE1iu8gg==", + "dependencies": { + "@docusaurus/core": "3.0.1", + "@docusaurus/mdx-loader": "3.0.1", + "@docusaurus/types": "3.0.1", + "@docusaurus/utils": "3.0.1", + "@docusaurus/utils-validation": "3.0.1", + "fs-extra": "^11.1.1", + "tslib": "^2.6.0", + "webpack": "^5.88.1" + }, + "engines": { + "node": ">=18.0" + }, + "peerDependencies": { + "react": "^18.0.0", + "react-dom": "^18.0.0" + } + }, + "node_modules/@docusaurus/plugin-debug": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/@docusaurus/plugin-debug/-/plugin-debug-3.0.1.tgz", + "integrity": "sha512-09dxZMdATky4qdsZGzhzlUvvC+ilQ2hKbYF+wez+cM2mGo4qHbv8+qKXqxq0CQZyimwlAOWQLoSozIXU0g0i7g==", + "dev": true, + "dependencies": { + "@docusaurus/core": "3.0.1", + "@docusaurus/types": "3.0.1", + "@docusaurus/utils": "3.0.1", + "fs-extra": "^11.1.1", + "react-json-view-lite": "^1.2.0", + "tslib": "^2.6.0" + }, + "engines": { + "node": ">=18.0" + }, + "peerDependencies": { + "react": "^18.0.0", + "react-dom": "^18.0.0" + } + }, + "node_modules/@docusaurus/plugin-google-analytics": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/@docusaurus/plugin-google-analytics/-/plugin-google-analytics-3.0.1.tgz", + "integrity": "sha512-jwseSz1E+g9rXQwDdr0ZdYNjn8leZBnKPjjQhMBEiwDoenL3JYFcNW0+p0sWoVF/f2z5t7HkKA+cYObrUh18gg==", + "dev": true, + "dependencies": { + "@docusaurus/core": "3.0.1", + "@docusaurus/types": "3.0.1", + "@docusaurus/utils-validation": "3.0.1", + "tslib": "^2.6.0" + }, + "engines": { + "node": ">=18.0" + }, + "peerDependencies": { + "react": "^18.0.0", + "react-dom": "^18.0.0" + } + }, + "node_modules/@docusaurus/plugin-google-gtag": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/@docusaurus/plugin-google-gtag/-/plugin-google-gtag-3.0.1.tgz", + "integrity": "sha512-UFTDvXniAWrajsulKUJ1DB6qplui1BlKLQZjX4F7qS/qfJ+qkKqSkhJ/F4VuGQ2JYeZstYb+KaUzUzvaPK1aRQ==", + "dev": true, + "dependencies": { + "@docusaurus/core": "3.0.1", + "@docusaurus/types": "3.0.1", + "@docusaurus/utils-validation": "3.0.1", + "@types/gtag.js": "^0.0.12", + "tslib": "^2.6.0" + }, + "engines": { + "node": ">=18.0" + }, + "peerDependencies": { + "react": "^18.0.0", + "react-dom": "^18.0.0" } }, "node_modules/@docusaurus/plugin-google-tag-manager": { - "version": "2.4.3", - "resolved": "https://registry.npmjs.org/@docusaurus/plugin-google-tag-manager/-/plugin-google-tag-manager-2.4.3.tgz", - "integrity": "sha512-1jTzp71yDGuQiX9Bi0pVp3alArV0LSnHXempvQTxwCGAEzUWWaBg4d8pocAlTpbP9aULQQqhgzrs8hgTRPOM0A==", + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/@docusaurus/plugin-google-tag-manager/-/plugin-google-tag-manager-3.0.1.tgz", + "integrity": "sha512-IPFvuz83aFuheZcWpTlAdiiX1RqWIHM+OH8wS66JgwAKOiQMR3+nLywGjkLV4bp52x7nCnwhNk1rE85Cpy/CIw==", "dependencies": { - "@docusaurus/core": "2.4.3", - "@docusaurus/types": "2.4.3", - "@docusaurus/utils-validation": "2.4.3", - "tslib": "^2.4.0" + "@docusaurus/core": "3.0.1", + "@docusaurus/types": "3.0.1", + "@docusaurus/utils-validation": "3.0.1", + "tslib": "^2.6.0" }, "engines": { - "node": ">=16.14" + "node": ">=18.0" }, "peerDependencies": { - "react": "^16.8.4 || ^17.0.0", - "react-dom": "^16.8.4 || ^17.0.0" + "react": "^18.0.0", + "react-dom": "^18.0.0" } }, - "node_modules/@docusaurus/plugin-google-tag-manager/node_modules/@docusaurus/types": { - "version": "2.4.3", - "resolved": "https://registry.npmjs.org/@docusaurus/types/-/types-2.4.3.tgz", - "integrity": "sha512-W6zNLGQqfrp/EoPD0bhb9n7OobP+RHpmvVzpA+Z/IuU3Q63njJM24hmT0GYboovWcDtFmnIJC9wcyx4RVPQscw==", + "node_modules/@docusaurus/plugin-sitemap": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/@docusaurus/plugin-sitemap/-/plugin-sitemap-3.0.1.tgz", + "integrity": "sha512-xARiWnjtVvoEniZudlCq5T9ifnhCu/GAZ5nA7XgyLfPcNpHQa241HZdsTlLtVcecEVVdllevBKOp7qknBBaMGw==", + "dev": true, "dependencies": { - "@types/history": "^4.7.11", - "@types/react": "*", - "commander": "^5.1.0", - "joi": "^17.6.0", - "react-helmet-async": "^1.3.0", - "utility-types": "^3.10.0", - "webpack": "^5.73.0", - "webpack-merge": "^5.8.0" + "@docusaurus/core": "3.0.1", + "@docusaurus/logger": "3.0.1", + "@docusaurus/types": "3.0.1", + "@docusaurus/utils": "3.0.1", + "@docusaurus/utils-common": "3.0.1", + "@docusaurus/utils-validation": "3.0.1", + "fs-extra": "^11.1.1", + "sitemap": "^7.1.1", + "tslib": "^2.6.0" + }, + "engines": { + "node": ">=18.0" }, "peerDependencies": { - "react": "^16.8.4 || ^17.0.0", - "react-dom": "^16.8.4 || ^17.0.0" + "react": "^18.0.0", + "react-dom": "^18.0.0" } }, "node_modules/@docusaurus/preset-classic": { - "version": "2.4.3", - "resolved": "https://registry.npmjs.org/@docusaurus/preset-classic/-/preset-classic-2.4.3.tgz", - "integrity": "sha512-tRyMliepY11Ym6hB1rAFSNGwQDpmszvWYJvlK1E+md4SW8i6ylNHtpZjaYFff9Mdk3i/Pg8ItQq9P0daOJAvQw==", + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/@docusaurus/preset-classic/-/preset-classic-3.0.1.tgz", + "integrity": "sha512-il9m9xZKKjoXn6h0cRcdnt6wce0Pv1y5t4xk2Wx7zBGhKG1idu4IFHtikHlD0QPuZ9fizpXspXcTzjL5FXc1Gw==", "dev": true, "dependencies": { - "@docusaurus/core": "2.4.3", - "@docusaurus/plugin-content-blog": "2.4.3", - "@docusaurus/plugin-content-docs": "2.4.3", - "@docusaurus/plugin-content-pages": "2.4.3", - "@docusaurus/plugin-debug": "2.4.3", - "@docusaurus/plugin-google-analytics": "2.4.3", - "@docusaurus/plugin-google-gtag": "2.4.3", - "@docusaurus/plugin-google-tag-manager": "2.4.3", - "@docusaurus/plugin-sitemap": "2.4.3", - "@docusaurus/theme-classic": "2.4.3", - "@docusaurus/theme-common": "2.4.3", - "@docusaurus/theme-search-algolia": "2.4.3", - "@docusaurus/types": "2.4.3" + "@docusaurus/core": "3.0.1", + "@docusaurus/plugin-content-blog": "3.0.1", + "@docusaurus/plugin-content-docs": "3.0.1", + "@docusaurus/plugin-content-pages": "3.0.1", + "@docusaurus/plugin-debug": "3.0.1", + "@docusaurus/plugin-google-analytics": "3.0.1", + "@docusaurus/plugin-google-gtag": "3.0.1", + "@docusaurus/plugin-google-tag-manager": "3.0.1", + "@docusaurus/plugin-sitemap": "3.0.1", + "@docusaurus/theme-classic": "3.0.1", + "@docusaurus/theme-common": "3.0.1", + "@docusaurus/theme-search-algolia": "3.0.1", + "@docusaurus/types": "3.0.1" }, "engines": { - "node": ">=16.14" + "node": ">=18.0" }, "peerDependencies": { - "react": "^16.8.4 || ^17.0.0", - "react-dom": "^16.8.4 || ^17.0.0" + "react": "^18.0.0", + "react-dom": "^18.0.0" } }, - "node_modules/@docusaurus/preset-classic/node_modules/@docusaurus/plugin-content-blog": { - "version": "2.4.3", - "resolved": "https://registry.npmjs.org/@docusaurus/plugin-content-blog/-/plugin-content-blog-2.4.3.tgz", - "integrity": "sha512-PVhypqaA0t98zVDpOeTqWUTvRqCEjJubtfFUQ7zJNYdbYTbS/E/ytq6zbLVsN/dImvemtO/5JQgjLxsh8XLo8Q==", - "dev": true, - "dependencies": { - "@docusaurus/core": "2.4.3", - "@docusaurus/logger": "2.4.3", - "@docusaurus/mdx-loader": "2.4.3", - "@docusaurus/types": "2.4.3", - "@docusaurus/utils": "2.4.3", - "@docusaurus/utils-common": "2.4.3", - "@docusaurus/utils-validation": "2.4.3", - "cheerio": "^1.0.0-rc.12", - "feed": "^4.2.2", - "fs-extra": "^10.1.0", - "lodash": "^4.17.21", - "reading-time": "^1.5.0", - "tslib": "^2.4.0", - "unist-util-visit": "^2.0.3", - "utility-types": "^3.10.0", - "webpack": "^5.73.0" - }, - "engines": { - "node": ">=16.14" - }, - "peerDependencies": { - "react": "^16.8.4 || ^17.0.0", - "react-dom": "^16.8.4 || ^17.0.0" - } - }, - "node_modules/@docusaurus/preset-classic/node_modules/@docusaurus/plugin-content-blog/node_modules/@docusaurus/mdx-loader": { - "version": "2.4.3", - "resolved": "https://registry.npmjs.org/@docusaurus/mdx-loader/-/mdx-loader-2.4.3.tgz", - "integrity": "sha512-b1+fDnWtl3GiqkL0BRjYtc94FZrcDDBV1j8446+4tptB9BAOlePwG2p/pK6vGvfL53lkOsszXMghr2g67M0vCw==", - "dev": true, - "dependencies": { - "@babel/parser": "^7.18.8", - "@babel/traverse": "^7.18.8", - "@docusaurus/logger": "2.4.3", - "@docusaurus/utils": "2.4.3", - "@mdx-js/mdx": "^1.6.22", - "escape-html": "^1.0.3", - "file-loader": "^6.2.0", - "fs-extra": "^10.1.0", - "image-size": "^1.0.1", - "mdast-util-to-string": "^2.0.0", - "remark-emoji": "^2.2.0", - "stringify-object": "^3.3.0", - "tslib": "^2.4.0", - "unified": "^9.2.2", - "unist-util-visit": "^2.0.3", - "url-loader": "^4.1.1", - "webpack": "^5.73.0" - }, - "engines": { - "node": ">=16.14" - }, - "peerDependencies": { - "react": "^16.8.4 || ^17.0.0", - "react-dom": "^16.8.4 || ^17.0.0" - } - }, - "node_modules/@docusaurus/preset-classic/node_modules/@docusaurus/plugin-content-pages": { - "version": "2.4.3", - "resolved": "https://registry.npmjs.org/@docusaurus/plugin-content-pages/-/plugin-content-pages-2.4.3.tgz", - "integrity": "sha512-txtDVz7y3zGk67q0HjG0gRttVPodkHqE0bpJ+7dOaTH40CQFLSh7+aBeGnPOTl+oCPG+hxkim4SndqPqXjQ8Bg==", - "dev": true, - "dependencies": { - "@docusaurus/core": "2.4.3", - "@docusaurus/mdx-loader": "2.4.3", - "@docusaurus/types": "2.4.3", - "@docusaurus/utils": "2.4.3", - "@docusaurus/utils-validation": "2.4.3", - "fs-extra": "^10.1.0", - "tslib": "^2.4.0", - "webpack": "^5.73.0" - }, - "engines": { - "node": ">=16.14" - }, - "peerDependencies": { - "react": "^16.8.4 || ^17.0.0", - "react-dom": "^16.8.4 || ^17.0.0" - } - }, - "node_modules/@docusaurus/preset-classic/node_modules/@docusaurus/plugin-content-pages/node_modules/@docusaurus/mdx-loader": { - "version": "2.4.3", - "resolved": "https://registry.npmjs.org/@docusaurus/mdx-loader/-/mdx-loader-2.4.3.tgz", - "integrity": "sha512-b1+fDnWtl3GiqkL0BRjYtc94FZrcDDBV1j8446+4tptB9BAOlePwG2p/pK6vGvfL53lkOsszXMghr2g67M0vCw==", - "dev": true, - "dependencies": { - "@babel/parser": "^7.18.8", - "@babel/traverse": "^7.18.8", - "@docusaurus/logger": "2.4.3", - "@docusaurus/utils": "2.4.3", - "@mdx-js/mdx": "^1.6.22", - "escape-html": "^1.0.3", - "file-loader": "^6.2.0", - "fs-extra": "^10.1.0", - "image-size": "^1.0.1", - "mdast-util-to-string": "^2.0.0", - "remark-emoji": "^2.2.0", - "stringify-object": "^3.3.0", - "tslib": "^2.4.0", - "unified": "^9.2.2", - "unist-util-visit": "^2.0.3", - "url-loader": "^4.1.1", - "webpack": "^5.73.0" - }, - "engines": { - "node": ">=16.14" - }, - "peerDependencies": { - "react": "^16.8.4 || ^17.0.0", - "react-dom": "^16.8.4 || ^17.0.0" - } - }, - "node_modules/@docusaurus/preset-classic/node_modules/@docusaurus/plugin-debug": { - "version": "2.4.3", - "resolved": "https://registry.npmjs.org/@docusaurus/plugin-debug/-/plugin-debug-2.4.3.tgz", - "integrity": "sha512-LkUbuq3zCmINlFb+gAd4ZvYr+bPAzMC0hwND4F7V9bZ852dCX8YoWyovVUBKq4er1XsOwSQaHmNGtObtn8Av8Q==", - "dev": true, - "dependencies": { - "@docusaurus/core": "2.4.3", - "@docusaurus/types": "2.4.3", - "@docusaurus/utils": "2.4.3", - "fs-extra": "^10.1.0", - "react-json-view": "^1.21.3", - "tslib": "^2.4.0" - }, - "engines": { - "node": ">=16.14" - }, - "peerDependencies": { - "react": "^16.8.4 || ^17.0.0", - "react-dom": "^16.8.4 || ^17.0.0" - } - }, - "node_modules/@docusaurus/preset-classic/node_modules/@docusaurus/plugin-debug/node_modules/react-json-view": { - "version": "1.21.3", - "resolved": "https://registry.npmjs.org/react-json-view/-/react-json-view-1.21.3.tgz", - "integrity": "sha512-13p8IREj9/x/Ye4WI/JpjhoIwuzEgUAtgJZNBJckfzJt1qyh24BdTm6UQNGnyTq9dapQdrqvquZTo3dz1X6Cjw==", - "dev": true, - "dependencies": { - "flux": "^4.0.1", - "react-base16-styling": "^0.6.0", - "react-lifecycles-compat": "^3.0.4", - "react-textarea-autosize": "^8.3.2" - }, - "peerDependencies": { - "react": "^17.0.0 || ^16.3.0 || ^15.5.4", - "react-dom": "^17.0.0 || ^16.3.0 || ^15.5.4" - } - }, - "node_modules/@docusaurus/preset-classic/node_modules/@docusaurus/plugin-debug/node_modules/react-json-view/node_modules/flux": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/flux/-/flux-4.0.4.tgz", - "integrity": "sha512-NCj3XlayA2UsapRpM7va6wU1+9rE5FIL7qoMcmxWHRzbp0yujihMBm9BBHZ1MDIk5h5o2Bl6eGiCe8rYELAmYw==", - "dev": true, - "dependencies": { - "fbemitter": "^3.0.0", - "fbjs": "^3.0.1" - }, - "peerDependencies": { - "react": "^15.0.2 || ^16.0.0 || ^17.0.0" - } - }, - "node_modules/@docusaurus/preset-classic/node_modules/@docusaurus/plugin-google-analytics": { - "version": "2.4.3", - "resolved": "https://registry.npmjs.org/@docusaurus/plugin-google-analytics/-/plugin-google-analytics-2.4.3.tgz", - "integrity": "sha512-KzBV3k8lDkWOhg/oYGxlK5o9bOwX7KpPc/FTWoB+SfKhlHfhq7qcQdMi1elAaVEIop8tgK6gD1E58Q+XC6otSQ==", - "dev": true, - "dependencies": { - "@docusaurus/core": "2.4.3", - "@docusaurus/types": "2.4.3", - "@docusaurus/utils-validation": "2.4.3", - "tslib": "^2.4.0" - }, - "engines": { - "node": ">=16.14" - }, - "peerDependencies": { - "react": "^16.8.4 || ^17.0.0", - "react-dom": "^16.8.4 || ^17.0.0" - } - }, - "node_modules/@docusaurus/preset-classic/node_modules/@docusaurus/plugin-google-gtag": { - "version": "2.4.3", - "resolved": "https://registry.npmjs.org/@docusaurus/plugin-google-gtag/-/plugin-google-gtag-2.4.3.tgz", - "integrity": "sha512-5FMg0rT7sDy4i9AGsvJC71MQrqQZwgLNdDetLEGDHLfSHLvJhQbTCUGbGXknUgWXQJckcV/AILYeJy+HhxeIFA==", - "dev": true, - "dependencies": { - "@docusaurus/core": "2.4.3", - "@docusaurus/types": "2.4.3", - "@docusaurus/utils-validation": "2.4.3", - "tslib": "^2.4.0" - }, - "engines": { - "node": ">=16.14" - }, - "peerDependencies": { - "react": "^16.8.4 || ^17.0.0", - "react-dom": "^16.8.4 || ^17.0.0" - } - }, - "node_modules/@docusaurus/preset-classic/node_modules/@docusaurus/plugin-sitemap": { - "version": "2.4.3", - "resolved": "https://registry.npmjs.org/@docusaurus/plugin-sitemap/-/plugin-sitemap-2.4.3.tgz", - "integrity": "sha512-LRQYrK1oH1rNfr4YvWBmRzTL0LN9UAPxBbghgeFRBm5yloF6P+zv1tm2pe2hQTX/QP5bSKdnajCvfnScgKXMZQ==", - "dev": true, - "dependencies": { - "@docusaurus/core": "2.4.3", - "@docusaurus/logger": "2.4.3", - "@docusaurus/types": "2.4.3", - "@docusaurus/utils": "2.4.3", - "@docusaurus/utils-common": "2.4.3", - "@docusaurus/utils-validation": "2.4.3", - "fs-extra": "^10.1.0", - "sitemap": "^7.1.1", - "tslib": "^2.4.0" - }, - "engines": { - "node": ">=16.14" - }, - "peerDependencies": { - "react": "^16.8.4 || ^17.0.0", - "react-dom": "^16.8.4 || ^17.0.0" - } - }, - "node_modules/@docusaurus/preset-classic/node_modules/@docusaurus/theme-classic": { - "version": "2.4.3", - "resolved": "https://registry.npmjs.org/@docusaurus/theme-classic/-/theme-classic-2.4.3.tgz", - "integrity": "sha512-QKRAJPSGPfDY2yCiPMIVyr+MqwZCIV2lxNzqbyUW0YkrlmdzzP3WuQJPMGLCjWgQp/5c9kpWMvMxjhpZx1R32Q==", - "dev": true, - "dependencies": { - "@docusaurus/core": "2.4.3", - "@docusaurus/mdx-loader": "2.4.3", - "@docusaurus/module-type-aliases": "2.4.3", - "@docusaurus/plugin-content-blog": "2.4.3", - "@docusaurus/plugin-content-docs": "2.4.3", - "@docusaurus/plugin-content-pages": "2.4.3", - "@docusaurus/theme-common": "2.4.3", - "@docusaurus/theme-translations": "2.4.3", - "@docusaurus/types": "2.4.3", - "@docusaurus/utils": "2.4.3", - "@docusaurus/utils-common": "2.4.3", - "@docusaurus/utils-validation": "2.4.3", - "@mdx-js/react": "^1.6.22", - "clsx": "^1.2.1", - "copy-text-to-clipboard": "^3.0.1", - "infima": "0.2.0-alpha.43", - "lodash": "^4.17.21", - "nprogress": "^0.2.0", - "postcss": "^8.4.14", - "prism-react-renderer": "^1.3.5", - "prismjs": "^1.28.0", - "react-router-dom": "^5.3.3", - "rtlcss": "^3.5.0", - "tslib": "^2.4.0", - "utility-types": "^3.10.0" - }, - "engines": { - "node": ">=16.14" - }, - "peerDependencies": { - "react": "^16.8.4 || ^17.0.0", - "react-dom": "^16.8.4 || ^17.0.0" - } - }, - "node_modules/@docusaurus/preset-classic/node_modules/@docusaurus/theme-classic/node_modules/@docusaurus/mdx-loader": { - "version": "2.4.3", - "resolved": "https://registry.npmjs.org/@docusaurus/mdx-loader/-/mdx-loader-2.4.3.tgz", - "integrity": "sha512-b1+fDnWtl3GiqkL0BRjYtc94FZrcDDBV1j8446+4tptB9BAOlePwG2p/pK6vGvfL53lkOsszXMghr2g67M0vCw==", - "dev": true, - "dependencies": { - "@babel/parser": "^7.18.8", - "@babel/traverse": "^7.18.8", - "@docusaurus/logger": "2.4.3", - "@docusaurus/utils": "2.4.3", - "@mdx-js/mdx": "^1.6.22", - "escape-html": "^1.0.3", - "file-loader": "^6.2.0", - "fs-extra": "^10.1.0", - "image-size": "^1.0.1", - "mdast-util-to-string": "^2.0.0", - "remark-emoji": "^2.2.0", - "stringify-object": "^3.3.0", - "tslib": "^2.4.0", - "unified": "^9.2.2", - "unist-util-visit": "^2.0.3", - "url-loader": "^4.1.1", - "webpack": "^5.73.0" - }, - "engines": { - "node": ">=16.14" - }, - "peerDependencies": { - "react": "^16.8.4 || ^17.0.0", - "react-dom": "^16.8.4 || ^17.0.0" - } - }, - "node_modules/@docusaurus/preset-classic/node_modules/@docusaurus/theme-search-algolia": { - "version": "2.4.3", - "resolved": "https://registry.npmjs.org/@docusaurus/theme-search-algolia/-/theme-search-algolia-2.4.3.tgz", - "integrity": "sha512-jziq4f6YVUB5hZOB85ELATwnxBz/RmSLD3ksGQOLDPKVzat4pmI8tddNWtriPpxR04BNT+ZfpPUMFkNFetSW1Q==", - "dev": true, - "dependencies": { - "@docsearch/react": "^3.1.1", - "@docusaurus/core": "2.4.3", - "@docusaurus/logger": "2.4.3", - "@docusaurus/plugin-content-docs": "2.4.3", - "@docusaurus/theme-common": "2.4.3", - "@docusaurus/theme-translations": "2.4.3", - "@docusaurus/utils": "2.4.3", - "@docusaurus/utils-validation": "2.4.3", - "algoliasearch": "^4.13.1", - "algoliasearch-helper": "^3.10.0", - "clsx": "^1.2.1", - "eta": "^2.0.0", - "fs-extra": "^10.1.0", - "lodash": "^4.17.21", - "tslib": "^2.4.0", - "utility-types": "^3.10.0" - }, - "engines": { - "node": ">=16.14" - }, - "peerDependencies": { - "react": "^16.8.4 || ^17.0.0", - "react-dom": "^16.8.4 || ^17.0.0" - } - }, - "node_modules/@docusaurus/preset-classic/node_modules/@docusaurus/types": { - "version": "2.4.3", - "resolved": "https://registry.npmjs.org/@docusaurus/types/-/types-2.4.3.tgz", - "integrity": "sha512-W6zNLGQqfrp/EoPD0bhb9n7OobP+RHpmvVzpA+Z/IuU3Q63njJM24hmT0GYboovWcDtFmnIJC9wcyx4RVPQscw==", + "node_modules/@docusaurus/preset-classic/node_modules/@docusaurus/module-type-aliases": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/@docusaurus/module-type-aliases/-/module-type-aliases-3.0.1.tgz", + "integrity": "sha512-DEHpeqUDsLynl3AhQQiO7AbC7/z/lBra34jTcdYuvp9eGm01pfH1wTVq8YqWZq6Jyx0BgcVl/VJqtE9StRd9Ag==", "dev": true, "dependencies": { + "@docusaurus/react-loadable": "5.5.2", + "@docusaurus/types": "3.0.1", "@types/history": "^4.7.11", "@types/react": "*", - "commander": "^5.1.0", - "joi": "^17.6.0", - "react-helmet-async": "^1.3.0", - "utility-types": "^3.10.0", - "webpack": "^5.73.0", - "webpack-merge": "^5.8.0" + "@types/react-router-config": "*", + "@types/react-router-dom": "*", + "react-helmet-async": "*", + "react-loadable": "npm:@docusaurus/react-loadable@5.5.2" }, "peerDependencies": { - "react": "^16.8.4 || ^17.0.0", - "react-dom": "^16.8.4 || ^17.0.0" + "react": "*", + "react-dom": "*" + } + }, + "node_modules/@docusaurus/preset-classic/node_modules/@docusaurus/plugin-content-docs": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/@docusaurus/plugin-content-docs/-/plugin-content-docs-3.0.1.tgz", + "integrity": "sha512-dRfAOA5Ivo+sdzzJGXEu33yAtvGg8dlZkvt/NEJ7nwi1F2j4LEdsxtfX2GKeETB2fP6XoGNSQnFXqa2NYGrHFg==", + "dev": true, + "dependencies": { + "@docusaurus/core": "3.0.1", + "@docusaurus/logger": "3.0.1", + "@docusaurus/mdx-loader": "3.0.1", + "@docusaurus/module-type-aliases": "3.0.1", + "@docusaurus/types": "3.0.1", + "@docusaurus/utils": "3.0.1", + "@docusaurus/utils-validation": "3.0.1", + "@types/react-router-config": "^5.0.7", + "combine-promises": "^1.1.0", + "fs-extra": "^11.1.1", + "js-yaml": "^4.1.0", + "lodash": "^4.17.21", + "tslib": "^2.6.0", + "utility-types": "^3.10.0", + "webpack": "^5.88.1" + }, + "engines": { + "node": ">=18.0" + }, + "peerDependencies": { + "react": "^18.0.0", + "react-dom": "^18.0.0" } }, "node_modules/@docusaurus/react-loadable": { @@ -2956,235 +4114,377 @@ "react": "*" } }, - "node_modules/@docusaurus/theme-common": { - "version": "2.4.3", - "resolved": "https://registry.npmjs.org/@docusaurus/theme-common/-/theme-common-2.4.3.tgz", - "integrity": "sha512-7KaDJBXKBVGXw5WOVt84FtN8czGWhM0lbyWEZXGp8AFfL6sZQfRTluFp4QriR97qwzSyOfQb+nzcDZZU4tezUw==", + "node_modules/@docusaurus/theme-classic": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/@docusaurus/theme-classic/-/theme-classic-3.0.1.tgz", + "integrity": "sha512-XD1FRXaJiDlmYaiHHdm27PNhhPboUah9rqIH0lMpBt5kYtsGjJzhqa27KuZvHLzOP2OEpqd2+GZ5b6YPq7Q05Q==", + "dev": true, "dependencies": { - "@docusaurus/mdx-loader": "2.4.3", - "@docusaurus/module-type-aliases": "2.4.3", - "@docusaurus/plugin-content-blog": "2.4.3", - "@docusaurus/plugin-content-docs": "2.4.3", - "@docusaurus/plugin-content-pages": "2.4.3", - "@docusaurus/utils": "2.4.3", - "@docusaurus/utils-common": "2.4.3", - "@types/history": "^4.7.11", - "@types/react": "*", - "@types/react-router-config": "*", - "clsx": "^1.2.1", - "parse-numeric-range": "^1.3.0", - "prism-react-renderer": "^1.3.5", - "tslib": "^2.4.0", - "use-sync-external-store": "^1.2.0", + "@docusaurus/core": "3.0.1", + "@docusaurus/mdx-loader": "3.0.1", + "@docusaurus/module-type-aliases": "3.0.1", + "@docusaurus/plugin-content-blog": "3.0.1", + "@docusaurus/plugin-content-docs": "3.0.1", + "@docusaurus/plugin-content-pages": "3.0.1", + "@docusaurus/theme-common": "3.0.1", + "@docusaurus/theme-translations": "3.0.1", + "@docusaurus/types": "3.0.1", + "@docusaurus/utils": "3.0.1", + "@docusaurus/utils-common": "3.0.1", + "@docusaurus/utils-validation": "3.0.1", + "@mdx-js/react": "^3.0.0", + "clsx": "^2.0.0", + "copy-text-to-clipboard": "^3.2.0", + "infima": "0.2.0-alpha.43", + "lodash": "^4.17.21", + "nprogress": "^0.2.0", + "postcss": "^8.4.26", + "prism-react-renderer": "^2.3.0", + "prismjs": "^1.29.0", + "react-router-dom": "^5.3.4", + "rtlcss": "^4.1.0", + "tslib": "^2.6.0", "utility-types": "^3.10.0" }, "engines": { - "node": ">=16.14" + "node": ">=18.0" }, "peerDependencies": { - "react": "^16.8.4 || ^17.0.0", - "react-dom": "^16.8.4 || ^17.0.0" + "react": "^18.0.0", + "react-dom": "^18.0.0" } }, - "node_modules/@docusaurus/theme-common/node_modules/@docusaurus/mdx-loader": { - "version": "2.4.3", - "resolved": "https://registry.npmjs.org/@docusaurus/mdx-loader/-/mdx-loader-2.4.3.tgz", - "integrity": "sha512-b1+fDnWtl3GiqkL0BRjYtc94FZrcDDBV1j8446+4tptB9BAOlePwG2p/pK6vGvfL53lkOsszXMghr2g67M0vCw==", + "node_modules/@docusaurus/theme-classic/node_modules/@docusaurus/module-type-aliases": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/@docusaurus/module-type-aliases/-/module-type-aliases-3.0.1.tgz", + "integrity": "sha512-DEHpeqUDsLynl3AhQQiO7AbC7/z/lBra34jTcdYuvp9eGm01pfH1wTVq8YqWZq6Jyx0BgcVl/VJqtE9StRd9Ag==", + "dev": true, "dependencies": { - "@babel/parser": "^7.18.8", - "@babel/traverse": "^7.18.8", - "@docusaurus/logger": "2.4.3", - "@docusaurus/utils": "2.4.3", - "@mdx-js/mdx": "^1.6.22", - "escape-html": "^1.0.3", - "file-loader": "^6.2.0", - "fs-extra": "^10.1.0", - "image-size": "^1.0.1", - "mdast-util-to-string": "^2.0.0", - "remark-emoji": "^2.2.0", - "stringify-object": "^3.3.0", - "tslib": "^2.4.0", - "unified": "^9.2.2", - "unist-util-visit": "^2.0.3", - "url-loader": "^4.1.1", - "webpack": "^5.73.0" - }, - "engines": { - "node": ">=16.14" + "@docusaurus/react-loadable": "5.5.2", + "@docusaurus/types": "3.0.1", + "@types/history": "^4.7.11", + "@types/react": "*", + "@types/react-router-config": "*", + "@types/react-router-dom": "*", + "react-helmet-async": "*", + "react-loadable": "npm:@docusaurus/react-loadable@5.5.2" }, "peerDependencies": { - "react": "^16.8.4 || ^17.0.0", - "react-dom": "^16.8.4 || ^17.0.0" + "react": "*", + "react-dom": "*" } }, - "node_modules/@docusaurus/theme-common/node_modules/@docusaurus/plugin-content-blog": { - "version": "2.4.3", - "resolved": "https://registry.npmjs.org/@docusaurus/plugin-content-blog/-/plugin-content-blog-2.4.3.tgz", - "integrity": "sha512-PVhypqaA0t98zVDpOeTqWUTvRqCEjJubtfFUQ7zJNYdbYTbS/E/ytq6zbLVsN/dImvemtO/5JQgjLxsh8XLo8Q==", + "node_modules/@docusaurus/theme-classic/node_modules/@docusaurus/plugin-content-docs": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/@docusaurus/plugin-content-docs/-/plugin-content-docs-3.0.1.tgz", + "integrity": "sha512-dRfAOA5Ivo+sdzzJGXEu33yAtvGg8dlZkvt/NEJ7nwi1F2j4LEdsxtfX2GKeETB2fP6XoGNSQnFXqa2NYGrHFg==", + "dev": true, "dependencies": { - "@docusaurus/core": "2.4.3", - "@docusaurus/logger": "2.4.3", - "@docusaurus/mdx-loader": "2.4.3", - "@docusaurus/types": "2.4.3", - "@docusaurus/utils": "2.4.3", - "@docusaurus/utils-common": "2.4.3", - "@docusaurus/utils-validation": "2.4.3", - "cheerio": "^1.0.0-rc.12", - "feed": "^4.2.2", - "fs-extra": "^10.1.0", + "@docusaurus/core": "3.0.1", + "@docusaurus/logger": "3.0.1", + "@docusaurus/mdx-loader": "3.0.1", + "@docusaurus/module-type-aliases": "3.0.1", + "@docusaurus/types": "3.0.1", + "@docusaurus/utils": "3.0.1", + "@docusaurus/utils-validation": "3.0.1", + "@types/react-router-config": "^5.0.7", + "combine-promises": "^1.1.0", + "fs-extra": "^11.1.1", + "js-yaml": "^4.1.0", "lodash": "^4.17.21", - "reading-time": "^1.5.0", - "tslib": "^2.4.0", - "unist-util-visit": "^2.0.3", + "tslib": "^2.6.0", "utility-types": "^3.10.0", - "webpack": "^5.73.0" + "webpack": "^5.88.1" }, "engines": { - "node": ">=16.14" + "node": ">=18.0" }, "peerDependencies": { - "react": "^16.8.4 || ^17.0.0", - "react-dom": "^16.8.4 || ^17.0.0" + "react": "^18.0.0", + "react-dom": "^18.0.0" } }, - "node_modules/@docusaurus/theme-common/node_modules/@docusaurus/plugin-content-blog/node_modules/@docusaurus/types": { - "version": "2.4.3", - "resolved": "https://registry.npmjs.org/@docusaurus/types/-/types-2.4.3.tgz", - "integrity": "sha512-W6zNLGQqfrp/EoPD0bhb9n7OobP+RHpmvVzpA+Z/IuU3Q63njJM24hmT0GYboovWcDtFmnIJC9wcyx4RVPQscw==", + "node_modules/@docusaurus/theme-classic/node_modules/clsx": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/clsx/-/clsx-2.1.1.tgz", + "integrity": "sha512-eYm0QWBtUrBWZWG0d386OGAw16Z995PiOVo2B7bjWSbHedGl5e0ZWaq65kOGgUSNesEIDkB9ISbTg/JK9dhCZA==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/@docusaurus/theme-common": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/@docusaurus/theme-common/-/theme-common-3.0.1.tgz", + "integrity": "sha512-cr9TOWXuIOL0PUfuXv6L5lPlTgaphKP+22NdVBOYah5jSq5XAAulJTjfe+IfLsEG4L7lJttLbhW7LXDFSAI7Ag==", "dependencies": { + "@docusaurus/mdx-loader": "3.0.1", + "@docusaurus/module-type-aliases": "3.0.1", + "@docusaurus/plugin-content-blog": "3.0.1", + "@docusaurus/plugin-content-docs": "3.0.1", + "@docusaurus/plugin-content-pages": "3.0.1", + "@docusaurus/utils": "3.0.1", + "@docusaurus/utils-common": "3.0.1", "@types/history": "^4.7.11", "@types/react": "*", - "commander": "^5.1.0", - "joi": "^17.6.0", - "react-helmet-async": "^1.3.0", - "utility-types": "^3.10.0", - "webpack": "^5.73.0", - "webpack-merge": "^5.8.0" - }, - "peerDependencies": { - "react": "^16.8.4 || ^17.0.0", - "react-dom": "^16.8.4 || ^17.0.0" - } - }, - "node_modules/@docusaurus/theme-common/node_modules/@docusaurus/plugin-content-pages": { - "version": "2.4.3", - "resolved": "https://registry.npmjs.org/@docusaurus/plugin-content-pages/-/plugin-content-pages-2.4.3.tgz", - "integrity": "sha512-txtDVz7y3zGk67q0HjG0gRttVPodkHqE0bpJ+7dOaTH40CQFLSh7+aBeGnPOTl+oCPG+hxkim4SndqPqXjQ8Bg==", - "dependencies": { - "@docusaurus/core": "2.4.3", - "@docusaurus/mdx-loader": "2.4.3", - "@docusaurus/types": "2.4.3", - "@docusaurus/utils": "2.4.3", - "@docusaurus/utils-validation": "2.4.3", - "fs-extra": "^10.1.0", - "tslib": "^2.4.0", - "webpack": "^5.73.0" + "@types/react-router-config": "*", + "clsx": "^2.0.0", + "parse-numeric-range": "^1.3.0", + "prism-react-renderer": "^2.3.0", + "tslib": "^2.6.0", + "utility-types": "^3.10.0" }, "engines": { - "node": ">=16.14" + "node": ">=18.0" }, "peerDependencies": { - "react": "^16.8.4 || ^17.0.0", - "react-dom": "^16.8.4 || ^17.0.0" + "react": "^18.0.0", + "react-dom": "^18.0.0" } }, - "node_modules/@docusaurus/theme-common/node_modules/@docusaurus/plugin-content-pages/node_modules/@docusaurus/types": { - "version": "2.4.3", - "resolved": "https://registry.npmjs.org/@docusaurus/types/-/types-2.4.3.tgz", - "integrity": "sha512-W6zNLGQqfrp/EoPD0bhb9n7OobP+RHpmvVzpA+Z/IuU3Q63njJM24hmT0GYboovWcDtFmnIJC9wcyx4RVPQscw==", + "node_modules/@docusaurus/theme-common/node_modules/@docusaurus/module-type-aliases": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/@docusaurus/module-type-aliases/-/module-type-aliases-3.0.1.tgz", + "integrity": "sha512-DEHpeqUDsLynl3AhQQiO7AbC7/z/lBra34jTcdYuvp9eGm01pfH1wTVq8YqWZq6Jyx0BgcVl/VJqtE9StRd9Ag==", "dependencies": { + "@docusaurus/react-loadable": "5.5.2", + "@docusaurus/types": "3.0.1", "@types/history": "^4.7.11", "@types/react": "*", - "commander": "^5.1.0", - "joi": "^17.6.0", - "react-helmet-async": "^1.3.0", - "utility-types": "^3.10.0", - "webpack": "^5.73.0", - "webpack-merge": "^5.8.0" + "@types/react-router-config": "*", + "@types/react-router-dom": "*", + "react-helmet-async": "*", + "react-loadable": "npm:@docusaurus/react-loadable@5.5.2" }, "peerDependencies": { - "react": "^16.8.4 || ^17.0.0", - "react-dom": "^16.8.4 || ^17.0.0" + "react": "*", + "react-dom": "*" + } + }, + "node_modules/@docusaurus/theme-common/node_modules/@docusaurus/plugin-content-docs": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/@docusaurus/plugin-content-docs/-/plugin-content-docs-3.0.1.tgz", + "integrity": "sha512-dRfAOA5Ivo+sdzzJGXEu33yAtvGg8dlZkvt/NEJ7nwi1F2j4LEdsxtfX2GKeETB2fP6XoGNSQnFXqa2NYGrHFg==", + "dependencies": { + "@docusaurus/core": "3.0.1", + "@docusaurus/logger": "3.0.1", + "@docusaurus/mdx-loader": "3.0.1", + "@docusaurus/module-type-aliases": "3.0.1", + "@docusaurus/types": "3.0.1", + "@docusaurus/utils": "3.0.1", + "@docusaurus/utils-validation": "3.0.1", + "@types/react-router-config": "^5.0.7", + "combine-promises": "^1.1.0", + "fs-extra": "^11.1.1", + "js-yaml": "^4.1.0", + "lodash": "^4.17.21", + "tslib": "^2.6.0", + "utility-types": "^3.10.0", + "webpack": "^5.88.1" + }, + "engines": { + "node": ">=18.0" + }, + "peerDependencies": { + "react": "^18.0.0", + "react-dom": "^18.0.0" + } + }, + "node_modules/@docusaurus/theme-common/node_modules/clsx": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/clsx/-/clsx-2.1.1.tgz", + "integrity": "sha512-eYm0QWBtUrBWZWG0d386OGAw16Z995PiOVo2B7bjWSbHedGl5e0ZWaq65kOGgUSNesEIDkB9ISbTg/JK9dhCZA==", + "engines": { + "node": ">=6" } }, "node_modules/@docusaurus/theme-mermaid": { - "version": "2.4.3", - "resolved": "https://registry.npmjs.org/@docusaurus/theme-mermaid/-/theme-mermaid-2.4.3.tgz", - "integrity": "sha512-S1tZ3xpowtFiTrpTKmvVbRHUYGOlEG5CnPzWlO4huJT1sAwLR+pD6f9DYUlPv2+9NezF3EfUrUyW9xLH0UP58w==", + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/@docusaurus/theme-mermaid/-/theme-mermaid-3.0.1.tgz", + "integrity": "sha512-jquSDnZfazABnC5i+02GzRIvufXKruKgvbYkQjKbI7/LWo0XvBs0uKAcCDGgHhth0t/ON5+Sn27joRfpeSk3Lw==", "dependencies": { - "@docusaurus/core": "2.4.3", - "@docusaurus/module-type-aliases": "2.4.3", - "@docusaurus/theme-common": "2.4.3", - "@docusaurus/types": "2.4.3", - "@docusaurus/utils-validation": "2.4.3", - "@mdx-js/react": "^1.6.22", - "mermaid": "^9.2.2", - "tslib": "^2.4.0" + "@docusaurus/core": "3.0.1", + "@docusaurus/module-type-aliases": "3.0.1", + "@docusaurus/theme-common": "3.0.1", + "@docusaurus/types": "3.0.1", + "@docusaurus/utils-validation": "3.0.1", + "mermaid": "^10.4.0", + "tslib": "^2.6.0" }, "engines": { - "node": ">=16.14" + "node": ">=18.0" }, "peerDependencies": { - "react": "^16.8.4 || ^17.0.0", - "react-dom": "^16.8.4 || ^17.0.0" + "react": "^18.0.0", + "react-dom": "^18.0.0" } }, - "node_modules/@docusaurus/theme-mermaid/node_modules/@docusaurus/types": { - "version": "2.4.3", - "resolved": "https://registry.npmjs.org/@docusaurus/types/-/types-2.4.3.tgz", - "integrity": "sha512-W6zNLGQqfrp/EoPD0bhb9n7OobP+RHpmvVzpA+Z/IuU3Q63njJM24hmT0GYboovWcDtFmnIJC9wcyx4RVPQscw==", + "node_modules/@docusaurus/theme-mermaid/node_modules/@docusaurus/module-type-aliases": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/@docusaurus/module-type-aliases/-/module-type-aliases-3.0.1.tgz", + "integrity": "sha512-DEHpeqUDsLynl3AhQQiO7AbC7/z/lBra34jTcdYuvp9eGm01pfH1wTVq8YqWZq6Jyx0BgcVl/VJqtE9StRd9Ag==", + "dependencies": { + "@docusaurus/react-loadable": "5.5.2", + "@docusaurus/types": "3.0.1", + "@types/history": "^4.7.11", + "@types/react": "*", + "@types/react-router-config": "*", + "@types/react-router-dom": "*", + "react-helmet-async": "*", + "react-loadable": "npm:@docusaurus/react-loadable@5.5.2" + }, + "peerDependencies": { + "react": "*", + "react-dom": "*" + } + }, + "node_modules/@docusaurus/theme-search-algolia": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/@docusaurus/theme-search-algolia/-/theme-search-algolia-3.0.1.tgz", + "integrity": "sha512-DDiPc0/xmKSEdwFkXNf1/vH1SzJPzuJBar8kMcBbDAZk/SAmo/4lf6GU2drou4Ae60lN2waix+jYWTWcJRahSA==", + "dev": true, + "dependencies": { + "@docsearch/react": "^3.5.2", + "@docusaurus/core": "3.0.1", + "@docusaurus/logger": "3.0.1", + "@docusaurus/plugin-content-docs": "3.0.1", + "@docusaurus/theme-common": "3.0.1", + "@docusaurus/theme-translations": "3.0.1", + "@docusaurus/utils": "3.0.1", + "@docusaurus/utils-validation": "3.0.1", + "algoliasearch": "^4.18.0", + "algoliasearch-helper": "^3.13.3", + "clsx": "^2.0.0", + "eta": "^2.2.0", + "fs-extra": "^11.1.1", + "lodash": "^4.17.21", + "tslib": "^2.6.0", + "utility-types": "^3.10.0" + }, + "engines": { + "node": ">=18.0" + }, + "peerDependencies": { + "react": "^18.0.0", + "react-dom": "^18.0.0" + } + }, + "node_modules/@docusaurus/theme-search-algolia/node_modules/@docusaurus/module-type-aliases": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/@docusaurus/module-type-aliases/-/module-type-aliases-3.0.1.tgz", + "integrity": "sha512-DEHpeqUDsLynl3AhQQiO7AbC7/z/lBra34jTcdYuvp9eGm01pfH1wTVq8YqWZq6Jyx0BgcVl/VJqtE9StRd9Ag==", + "dev": true, + "dependencies": { + "@docusaurus/react-loadable": "5.5.2", + "@docusaurus/types": "3.0.1", + "@types/history": "^4.7.11", + "@types/react": "*", + "@types/react-router-config": "*", + "@types/react-router-dom": "*", + "react-helmet-async": "*", + "react-loadable": "npm:@docusaurus/react-loadable@5.5.2" + }, + "peerDependencies": { + "react": "*", + "react-dom": "*" + } + }, + "node_modules/@docusaurus/theme-search-algolia/node_modules/@docusaurus/plugin-content-docs": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/@docusaurus/plugin-content-docs/-/plugin-content-docs-3.0.1.tgz", + "integrity": "sha512-dRfAOA5Ivo+sdzzJGXEu33yAtvGg8dlZkvt/NEJ7nwi1F2j4LEdsxtfX2GKeETB2fP6XoGNSQnFXqa2NYGrHFg==", + "dev": true, + "dependencies": { + "@docusaurus/core": "3.0.1", + "@docusaurus/logger": "3.0.1", + "@docusaurus/mdx-loader": "3.0.1", + "@docusaurus/module-type-aliases": "3.0.1", + "@docusaurus/types": "3.0.1", + "@docusaurus/utils": "3.0.1", + "@docusaurus/utils-validation": "3.0.1", + "@types/react-router-config": "^5.0.7", + "combine-promises": "^1.1.0", + "fs-extra": "^11.1.1", + "js-yaml": "^4.1.0", + "lodash": "^4.17.21", + "tslib": "^2.6.0", + "utility-types": "^3.10.0", + "webpack": "^5.88.1" + }, + "engines": { + "node": ">=18.0" + }, + "peerDependencies": { + "react": "^18.0.0", + "react-dom": "^18.0.0" + } + }, + "node_modules/@docusaurus/theme-search-algolia/node_modules/clsx": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/clsx/-/clsx-2.1.1.tgz", + "integrity": "sha512-eYm0QWBtUrBWZWG0d386OGAw16Z995PiOVo2B7bjWSbHedGl5e0ZWaq65kOGgUSNesEIDkB9ISbTg/JK9dhCZA==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/@docusaurus/theme-translations": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/@docusaurus/theme-translations/-/theme-translations-3.0.1.tgz", + "integrity": "sha512-6UrbpzCTN6NIJnAtZ6Ne9492vmPVX+7Fsz4kmp+yor3KQwA1+MCzQP7ItDNkP38UmVLnvB/cYk/IvehCUqS3dg==", + "dev": true, + "dependencies": { + "fs-extra": "^11.1.1", + "tslib": "^2.6.0" + }, + "engines": { + "node": ">=18.0" + } + }, + "node_modules/@docusaurus/types": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/@docusaurus/types/-/types-3.0.1.tgz", + "integrity": "sha512-plyX2iU1tcUsF46uQ01pAd4JhexR7n0iiQ5MSnBFX6M6NSJgDYdru/i1/YNPKOnQHBoXGLHv0dNT6OAlDWNjrg==", "dependencies": { "@types/history": "^4.7.11", "@types/react": "*", "commander": "^5.1.0", - "joi": "^17.6.0", + "joi": "^17.9.2", "react-helmet-async": "^1.3.0", "utility-types": "^3.10.0", - "webpack": "^5.73.0", - "webpack-merge": "^5.8.0" + "webpack": "^5.88.1", + "webpack-merge": "^5.9.0" }, "peerDependencies": { - "react": "^16.8.4 || ^17.0.0", - "react-dom": "^16.8.4 || ^17.0.0" - } - }, - "node_modules/@docusaurus/theme-translations": { - "version": "2.4.3", - "resolved": "https://registry.npmjs.org/@docusaurus/theme-translations/-/theme-translations-2.4.3.tgz", - "integrity": "sha512-H4D+lbZbjbKNS/Zw1Lel64PioUAIT3cLYYJLUf3KkuO/oc9e0QCVhIYVtUI2SfBCF2NNdlyhBDQEEMygsCedIg==", - "dev": true, - "dependencies": { - "fs-extra": "^10.1.0", - "tslib": "^2.4.0" - }, - "engines": { - "node": ">=16.14" + "react": "^18.0.0", + "react-dom": "^18.0.0" } }, "node_modules/@docusaurus/utils": { - "version": "2.4.3", - "resolved": "https://registry.npmjs.org/@docusaurus/utils/-/utils-2.4.3.tgz", - "integrity": "sha512-fKcXsjrD86Smxv8Pt0TBFqYieZZCPh4cbf9oszUq/AMhZn3ujwpKaVYZACPX8mmjtYx0JOgNx52CREBfiGQB4A==", + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/@docusaurus/utils/-/utils-3.0.1.tgz", + "integrity": "sha512-TwZ33Am0q4IIbvjhUOs+zpjtD/mXNmLmEgeTGuRq01QzulLHuPhaBTTAC/DHu6kFx3wDgmgpAlaRuCHfTcXv8g==", "dependencies": { - "@docusaurus/logger": "2.4.3", - "@svgr/webpack": "^6.2.1", + "@docusaurus/logger": "3.0.1", + "@svgr/webpack": "^6.5.1", "escape-string-regexp": "^4.0.0", "file-loader": "^6.2.0", - "fs-extra": "^10.1.0", - "github-slugger": "^1.4.0", + "fs-extra": "^11.1.1", + "github-slugger": "^1.5.0", "globby": "^11.1.0", "gray-matter": "^4.0.3", + "jiti": "^1.20.0", "js-yaml": "^4.1.0", "lodash": "^4.17.21", "micromatch": "^4.0.5", "resolve-pathname": "^3.0.0", "shelljs": "^0.8.5", - "tslib": "^2.4.0", + "tslib": "^2.6.0", "url-loader": "^4.1.1", - "webpack": "^5.73.0" + "webpack": "^5.88.1" }, "engines": { - "node": ">=16.14" + "node": ">=18.0" }, "peerDependencies": { "@docusaurus/types": "*" @@ -3196,14 +4496,14 @@ } }, "node_modules/@docusaurus/utils-common": { - "version": "2.4.3", - "resolved": "https://registry.npmjs.org/@docusaurus/utils-common/-/utils-common-2.4.3.tgz", - "integrity": "sha512-/jascp4GbLQCPVmcGkPzEQjNaAk3ADVfMtudk49Ggb+131B1WDD6HqlSmDf8MxGdy7Dja2gc+StHf01kiWoTDQ==", + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/@docusaurus/utils-common/-/utils-common-3.0.1.tgz", + "integrity": "sha512-W0AxD6w6T8g6bNro8nBRWf7PeZ/nn7geEWM335qHU2DDDjHuV4UZjgUGP1AQsdcSikPrlIqTJJbKzer1lRSlIg==", "dependencies": { - "tslib": "^2.4.0" + "tslib": "^2.6.0" }, "engines": { - "node": ">=16.14" + "node": ">=18.0" }, "peerDependencies": { "@docusaurus/types": "*" @@ -3215,18 +4515,18 @@ } }, "node_modules/@docusaurus/utils-validation": { - "version": "2.4.3", - "resolved": "https://registry.npmjs.org/@docusaurus/utils-validation/-/utils-validation-2.4.3.tgz", - "integrity": "sha512-G2+Vt3WR5E/9drAobP+hhZQMaswRwDlp6qOMi7o7ZypB+VO7N//DZWhZEwhcRGepMDJGQEwtPv7UxtYwPL9PBw==", + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/@docusaurus/utils-validation/-/utils-validation-3.0.1.tgz", + "integrity": "sha512-ujTnqSfyGQ7/4iZdB4RRuHKY/Nwm58IIb+41s5tCXOv/MBU2wGAjOHq3U+AEyJ8aKQcHbxvTKJaRchNHYUVUQg==", "dependencies": { - "@docusaurus/logger": "2.4.3", - "@docusaurus/utils": "2.4.3", - "joi": "^17.6.0", + "@docusaurus/logger": "3.0.1", + "@docusaurus/utils": "3.0.1", + "joi": "^17.9.2", "js-yaml": "^4.1.0", - "tslib": "^2.4.0" + "tslib": "^2.6.0" }, "engines": { - "node": ">=16.14" + "node": ">=18.0" } }, "node_modules/@esbuild/android-arm": { @@ -3732,141 +5032,93 @@ "integrity": "sha512-Hcv+nVC0kZnQ3tD9GVu5xSMR4VVYOteQIr/hwFPVEvPdlXqgGEuRjiheChHgdM+JyqdgNcmzZOX/tnl0JOiI7A==" }, "node_modules/@mdx-js/mdx": { - "version": "1.6.22", - "resolved": "https://registry.npmjs.org/@mdx-js/mdx/-/mdx-1.6.22.tgz", - "integrity": "sha512-AMxuLxPz2j5/6TpF/XSdKpQP1NlG0z11dFOlq+2IP/lSgl11GY8ji6S/rgsViN/L0BDvHvUMruRb7ub+24LUYA==", + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/@mdx-js/mdx/-/mdx-3.0.1.tgz", + "integrity": "sha512-eIQ4QTrOWyL3LWEe/bu6Taqzq2HQvHcyTMaOrI95P2/LmJE7AsfPfgJGuFLPVqBUE1BC1rik3VIhU+s9u72arA==", "dependencies": { - "@babel/core": "7.12.9", - "@babel/plugin-syntax-jsx": "7.12.1", - "@babel/plugin-syntax-object-rest-spread": "7.8.3", - "@mdx-js/util": "1.6.22", - "babel-plugin-apply-mdx-type-prop": "1.6.22", - "babel-plugin-extract-import-names": "1.6.22", - "camelcase-css": "2.0.1", - "detab": "2.0.4", - "hast-util-raw": "6.0.1", - "lodash.uniq": "4.5.0", - "mdast-util-to-hast": "10.0.1", - "remark-footnotes": "2.0.0", - "remark-mdx": "1.6.22", - "remark-parse": "8.0.3", - "remark-squeeze-paragraphs": "4.0.0", - "style-to-object": "0.3.0", - "unified": "9.2.0", - "unist-builder": "2.0.3", - "unist-util-visit": "2.0.3" + "@types/estree": "^1.0.0", + "@types/estree-jsx": "^1.0.0", + "@types/hast": "^3.0.0", + "@types/mdx": "^2.0.0", + "collapse-white-space": "^2.0.0", + "devlop": "^1.0.0", + "estree-util-build-jsx": "^3.0.0", + "estree-util-is-identifier-name": "^3.0.0", + "estree-util-to-js": "^2.0.0", + "estree-walker": "^3.0.0", + "hast-util-to-estree": "^3.0.0", + "hast-util-to-jsx-runtime": "^2.0.0", + "markdown-extensions": "^2.0.0", + "periscopic": "^3.0.0", + "remark-mdx": "^3.0.0", + "remark-parse": "^11.0.0", + "remark-rehype": "^11.0.0", + "source-map": "^0.7.0", + "unified": "^11.0.0", + "unist-util-position-from-estree": "^2.0.0", + "unist-util-stringify-position": "^4.0.0", + "unist-util-visit": "^5.0.0", + "vfile": "^6.0.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/unified" } }, - "node_modules/@mdx-js/mdx/node_modules/@babel/core": { - "version": "7.12.9", - "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.12.9.tgz", - "integrity": "sha512-gTXYh3M5wb7FRXQy+FErKFAv90BnlOuNn1QkCK2lREoPAjrQCO49+HVSrFoe5uakFAF5eenS75KbO2vQiLrTMQ==", + "node_modules/@mdx-js/mdx/node_modules/@types/hast": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/@types/hast/-/hast-3.0.4.tgz", + "integrity": "sha512-WPs+bbQw5aCj+x6laNGWLH3wviHtoCv/P3+otBhbOhJgG8qtpdAMlTCxLtsTWA7LH1Oh/bFCHsBn0TPS5m30EQ==", "dependencies": { - "@babel/code-frame": "^7.10.4", - "@babel/generator": "^7.12.5", - "@babel/helper-module-transforms": "^7.12.1", - "@babel/helpers": "^7.12.5", - "@babel/parser": "^7.12.7", - "@babel/template": "^7.12.7", - "@babel/traverse": "^7.12.9", - "@babel/types": "^7.12.7", - "convert-source-map": "^1.7.0", - "debug": "^4.1.0", - "gensync": "^1.0.0-beta.1", - "json5": "^2.1.2", - "lodash": "^4.17.19", - "resolve": "^1.3.2", - "semver": "^5.4.1", - "source-map": "^0.5.0" - }, - "engines": { - "node": ">=6.9.0" + "@types/unist": "*" + } + }, + "node_modules/@mdx-js/mdx/node_modules/@types/mdast": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/@types/mdast/-/mdast-4.0.4.tgz", + "integrity": "sha512-kGaNbPh1k7AFzgpud/gMdvIm5xuECykRR+JnWKQno9TAXVa6WIVCGTPvYGekIDL4uwCZQSYbUxNBSb1aUo79oA==", + "dependencies": { + "@types/unist": "*" + } + }, + "node_modules/@mdx-js/mdx/node_modules/remark-rehype": { + "version": "11.1.0", + "resolved": "https://registry.npmjs.org/remark-rehype/-/remark-rehype-11.1.0.tgz", + "integrity": "sha512-z3tJrAs2kIs1AqIIy6pzHmAHlF1hWQ+OdY4/hv+Wxe35EhyLKcajL33iUEn3ScxtFox9nUvRufR/Zre8Q08H/g==", + "dependencies": { + "@types/hast": "^3.0.0", + "@types/mdast": "^4.0.0", + "mdast-util-to-hast": "^13.0.0", + "unified": "^11.0.0", + "vfile": "^6.0.0" }, "funding": { "type": "opencollective", - "url": "https://opencollective.com/babel" - } - }, - "node_modules/@mdx-js/mdx/node_modules/@babel/plugin-syntax-jsx": { - "version": "7.12.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.12.1.tgz", - "integrity": "sha512-1yRi7yAtB0ETgxdY9ti/p2TivUxJkTdhu/ZbF9MshVGqOx1TdB3b7xCXs49Fupgg50N45KcAsRP/ZqWjs9SRjg==", - "dependencies": { - "@babel/helper-plugin-utils": "^7.10.4" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@mdx-js/mdx/node_modules/convert-source-map": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.9.0.tgz", - "integrity": "sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A==" - }, - "node_modules/@mdx-js/mdx/node_modules/is-plain-obj": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-2.1.0.tgz", - "integrity": "sha512-YWnfyRwxL/+SsrWYfOpUtz5b3YD+nyfkHvjbcanzk8zgyO4ASD67uVMRt8k5bM4lLMDnXfriRhOpemw+NfT1eA==", - "engines": { - "node": ">=8" - } - }, - "node_modules/@mdx-js/mdx/node_modules/semver": { - "version": "5.7.2", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz", - "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==", - "bin": { - "semver": "bin/semver" + "url": "https://opencollective.com/unified" } }, "node_modules/@mdx-js/mdx/node_modules/source-map": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", - "integrity": "sha512-LbrmJOMUSdEVxIKvdcJzQC+nQhe8FUZQTXQy6+I75skNgn3OoQ0DZA8YnFa7gp8tqtL3KPf1kmo0R5DoApeSGQ==", + "version": "0.7.4", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.4.tgz", + "integrity": "sha512-l3BikUxvPOcn5E74dZiq5BGsTb5yEwhaTSzccU6t4sDOH8NWJCstKO5QT2CvtFoK6F0saL7p9xHAqHOlCPJygA==", "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/@mdx-js/mdx/node_modules/unified": { - "version": "9.2.0", - "resolved": "https://registry.npmjs.org/unified/-/unified-9.2.0.tgz", - "integrity": "sha512-vx2Z0vY+a3YoTj8+pttM3tiJHCwY5UFbYdiWrwBEbHmK8pvsPj2rtAX2BFfgXen8T39CJWblWRDT4L5WGXtDdg==", - "dependencies": { - "bail": "^1.0.0", - "extend": "^3.0.0", - "is-buffer": "^2.0.0", - "is-plain-obj": "^2.0.0", - "trough": "^1.0.0", - "vfile": "^4.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" + "node": ">= 8" } }, "node_modules/@mdx-js/react": { - "version": "1.6.22", - "resolved": "https://registry.npmjs.org/@mdx-js/react/-/react-1.6.22.tgz", - "integrity": "sha512-TDoPum4SHdfPiGSAaRBw7ECyI8VaHpK8GJugbJIJuqyh6kzw9ZLJZW3HGL3NNrJGxcAixUvqROm+YuQOo5eXtg==", + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/@mdx-js/react/-/react-3.0.1.tgz", + "integrity": "sha512-9ZrPIU4MGf6et1m1ov3zKf+q9+deetI51zprKB1D/z3NOb+rUxxtEl3mCjW5wTGh6VhRdwPueh1oRzi6ezkA8A==", + "dependencies": { + "@types/mdx": "^2.0.0" + }, "funding": { "type": "opencollective", "url": "https://opencollective.com/unified" }, "peerDependencies": { - "react": "^16.13.1 || ^17.0.0" - } - }, - "node_modules/@mdx-js/util": { - "version": "1.6.22", - "resolved": "https://registry.npmjs.org/@mdx-js/util/-/util-1.6.22.tgz", - "integrity": "sha512-H1rQc1ZOHANWBvPcW+JpGwr+juXSxM8Q8YCkm3GhZd8REu1fHR3z99CErO1p9pkcfcxZnMdIZdIsXkOHY0NilA==", - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" + "@types/react": ">=16", + "react": ">=16" } }, "node_modules/@nodelib/fs.scandir": { @@ -4020,6 +5272,43 @@ "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==" }, + "node_modules/@pnpm/config.env-replace": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@pnpm/config.env-replace/-/config.env-replace-1.1.0.tgz", + "integrity": "sha512-htyl8TWnKL7K/ESFa1oW2UB5lVDxuF5DpM7tBi6Hu2LNL3mWkIzNLG6N4zoCUP1lCKNxWy/3iu8mS8MvToGd6w==", + "engines": { + "node": ">=12.22.0" + } + }, + "node_modules/@pnpm/network.ca-file": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/@pnpm/network.ca-file/-/network.ca-file-1.0.2.tgz", + "integrity": "sha512-YcPQ8a0jwYU9bTdJDpXjMi7Brhkr1mXsXrUJvjqM2mQDgkRiz8jFaQGOdaLxgjtUfQgZhKy/O3cG/YwmgKaxLA==", + "dependencies": { + "graceful-fs": "4.2.10" + }, + "engines": { + "node": ">=12.22.0" + } + }, + "node_modules/@pnpm/network.ca-file/node_modules/graceful-fs": { + "version": "4.2.10", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.10.tgz", + "integrity": "sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA==" + }, + "node_modules/@pnpm/npm-conf": { + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/@pnpm/npm-conf/-/npm-conf-2.2.2.tgz", + "integrity": "sha512-UA91GwWPhFExt3IizW6bOeY/pQ0BkuNwKjk9iQW9KqxluGCrg4VenZ0/L+2Y0+ZOtme72EVvg6v0zo3AMQRCeA==", + "dependencies": { + "@pnpm/config.env-replace": "^1.1.0", + "@pnpm/network.ca-file": "^1.0.1", + "config-chain": "^1.1.11" + }, + "engines": { + "node": ">=12" + } + }, "node_modules/@polka/url": { "version": "1.0.0-next.23", "resolved": "https://registry.npmjs.org/@polka/url/-/url-1.0.0-next.23.tgz", @@ -4040,14 +5329,20 @@ "url": "https://github.com/sponsors/epoberezkin" } }, + "node_modules/@redocly/config": { + "version": "0.6.2", + "resolved": "https://registry.npmjs.org/@redocly/config/-/config-0.6.2.tgz", + "integrity": "sha512-c3K5u64eMnr2ootPcpEI0ioIRLE8QP8ptvLxG9MwAmb2sU8HMRfVwXDU3AZiMVY2w4Ts0mDc+Xv4HTIk8DRqFw==" + }, "node_modules/@redocly/openapi-core": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/@redocly/openapi-core/-/openapi-core-1.4.1.tgz", - "integrity": "sha512-oAhnG8MKocM9LuP++NGFxdniNKWSLA7hzHPQoOK92LIP/DdvXx8pEeZ68UTNxIXhKonoUcO6s86I3L0zj143zg==", + "version": "1.17.0", + "resolved": "https://registry.npmjs.org/@redocly/openapi-core/-/openapi-core-1.17.0.tgz", + "integrity": "sha512-XoNIuksnOGAzAcfpyJkHrMxwurXaQfglnovNE7/pTx4OEjik3OT91+tKAyRCkklVCdMtAA3YokGMZzdhjViUWA==", "dependencies": { "@redocly/ajv": "^8.11.0", - "@types/node": "^14.11.8", + "@redocly/config": "^0.6.0", "colorette": "^1.2.0", + "https-proxy-agent": "^7.0.4", "js-levenshtein": "^1.1.6", "js-yaml": "^4.1.0", "lodash.isequal": "^4.5.0", @@ -4108,11 +5403,24 @@ "integrity": "sha512-+Fj43pSMwJs4KRrH/938Uf+uAELIgVBmQzg/q1YG10djyfA3TnrU8N8XzqCh/okZdszqBQTZf96idMfE5lnwTA==" }, "node_modules/@sindresorhus/is": { - "version": "0.14.0", - "resolved": "https://registry.npmjs.org/@sindresorhus/is/-/is-0.14.0.tgz", - "integrity": "sha512-9NET910DNaIPngYnLLPeg+Ogzqsi9uM4mSboU5y6p8S5DzMTVEsJZrawi+BoDNUVBa2DhJqQYUFvMDfgU062LQ==", + "version": "5.6.0", + "resolved": "https://registry.npmjs.org/@sindresorhus/is/-/is-5.6.0.tgz", + "integrity": "sha512-TV7t8GKYaJWsn00tFDqBw8+Uqmr8A0fRU1tvTQhyZzGv0sJCGRQL3JGMI3ucuKo3XIZdUP+Lx7/gh2t3lewy7g==", "engines": { - "node": ">=6" + "node": ">=14.16" + }, + "funding": { + "url": "https://github.com/sindresorhus/is?sponsor=1" + } + }, + "node_modules/@slorber/remark-comment": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/@slorber/remark-comment/-/remark-comment-1.0.0.tgz", + "integrity": "sha512-RCE24n7jsOj1M0UPvIQCHTe7fI0sFL4S2nwKVWwHyVr/wI/H8GosgsJGyhnsZoGFnD/P2hLf1mSbrrgSLN93NA==", + "dependencies": { + "micromark-factory-space": "^1.0.0", + "micromark-util-character": "^1.1.0", + "micromark-util-symbol": "^1.0.1" } }, "node_modules/@slorber/static-site-generator-webpack-plugin": { @@ -4372,14 +5680,14 @@ } }, "node_modules/@szmarczak/http-timer": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@szmarczak/http-timer/-/http-timer-1.1.2.tgz", - "integrity": "sha512-XIB2XbzHTN6ieIjfIMV9hlVcfPU26s2vafYWQcZHWXHOxiaRZYEDKEwdl129Zyg50+foYV2jCgtrqSA6qNuNSA==", + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/@szmarczak/http-timer/-/http-timer-5.0.1.tgz", + "integrity": "sha512-+PmQX0PiAYPMeVYe237LJAYvOMYW1j2rH5YROyS3b4CTVJum34HfRvKvAzozHAQG0TnHNdUfY9nCeUyRAs//cw==", "dependencies": { - "defer-to-connect": "^1.0.1" + "defer-to-connect": "^2.0.1" }, "engines": { - "node": ">=6" + "node": ">=14.16" } }, "node_modules/@trysound/sax": { @@ -4413,6 +5721,14 @@ "react": ">=16.8.0" } }, + "node_modules/@types/acorn": { + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/@types/acorn/-/acorn-4.0.6.tgz", + "integrity": "sha512-veQTnWP+1D/xbxVrPC3zHnCZRjSrKfhbMUlEA43iMZLu7EsnTtkJklIuwrCPbOi8YkvDQAiW05VQQFvvz9oieQ==", + "dependencies": { + "@types/estree": "*" + } + }, "node_modules/@types/body-parser": { "version": "1.19.5", "resolved": "https://registry.npmjs.org/@types/body-parser/-/body-parser-1.19.5.tgz", @@ -4447,6 +5763,24 @@ "@types/node": "*" } }, + "node_modules/@types/d3-scale": { + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/@types/d3-scale/-/d3-scale-4.0.8.tgz", + "integrity": "sha512-gkK1VVTr5iNiYJ7vWDI+yUFFlszhNMtVeneJ6lUTKPjprsvLLI9/tgEGiXJOnlINJA8FyA88gfnQsHbybVZrYQ==", + "dependencies": { + "@types/d3-time": "*" + } + }, + "node_modules/@types/d3-scale-chromatic": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/@types/d3-scale-chromatic/-/d3-scale-chromatic-3.0.3.tgz", + "integrity": "sha512-laXM4+1o5ImZv3RpFAsTRn3TEkzqkytiOY0Dz0sq5cnd1dtNlk6sHLon4OvqaiJb28T0S/TdsBI3Sjsy+keJrw==" + }, + "node_modules/@types/d3-time": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/@types/d3-time/-/d3-time-3.0.3.tgz", + "integrity": "sha512-2p6olUZ4w3s+07q3Tm2dbiMZy5pCDfYwtLXXHUnVzXgQlZ/OyPtUz6OL382BkOuGlLXqfT+wqv8Fw2v8/0geBw==" + }, "node_modules/@types/debug": { "version": "4.1.12", "resolved": "https://registry.npmjs.org/@types/debug/-/debug-4.1.12.tgz", @@ -4478,6 +5812,14 @@ "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.5.tgz", "integrity": "sha512-/kYRxGDLWzHOB7q+wtSUQlFrtcdUccpfy+X+9iMBpHK8QLLhx2wIPYuS5DYtR9Wa/YlZAbIovy7qVdB1Aq6Lyw==" }, + "node_modules/@types/estree-jsx": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/@types/estree-jsx/-/estree-jsx-1.0.5.tgz", + "integrity": "sha512-52CcUVNFyfb1A2ALocQw/Dd1BQFNmSdkuC3BkZ6iqhdMfQz7JWOFRuJFloOzjk+6WijU56m9oKXFAXc7o3Towg==", + "dependencies": { + "@types/estree": "*" + } + }, "node_modules/@types/express": { "version": "4.17.21", "resolved": "https://registry.npmjs.org/@types/express/-/express-4.17.21.tgz", @@ -4500,6 +5842,12 @@ "@types/send": "*" } }, + "node_modules/@types/gtag.js": { + "version": "0.0.12", + "resolved": "https://registry.npmjs.org/@types/gtag.js/-/gtag.js-0.0.12.tgz", + "integrity": "sha512-YQV9bUsemkzG81Ea295/nF/5GijnD2Af7QhEofh7xu+kvCN6RdodgNwwGWXB5GMI3NoyvQo0odNctoH/qLMIpg==", + "dev": true + }, "node_modules/@types/hast": { "version": "2.3.8", "resolved": "https://registry.npmjs.org/@types/hast/-/hast-2.3.8.tgz", @@ -4527,6 +5875,11 @@ "resolved": "https://registry.npmjs.org/@types/html-minifier-terser/-/html-minifier-terser-6.1.0.tgz", "integrity": "sha512-oh/6byDPnL1zeNXFrDXFLyZjkr1MsBG667IM792caf1L2UPOOMf65NFzjUH/ltyfwjAGfs1rsX1eftK0jC/KIg==" }, + "node_modules/@types/http-cache-semantics": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/@types/http-cache-semantics/-/http-cache-semantics-4.0.4.tgz", + "integrity": "sha512-1m0bIFVc7eJWyve9S0RnuRgcQqF/Xd5QsUZAZeQFr1Q3/p9JWoQQEqmVy+DPTNpGXwhgIetAoYF8JSc33q29QA==" + }, "node_modules/@types/http-errors": { "version": "2.0.4", "resolved": "https://registry.npmjs.org/@types/http-errors/-/http-errors-2.0.4.tgz", @@ -4566,19 +5919,6 @@ "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.15.tgz", "integrity": "sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==" }, - "node_modules/@types/lodash": { - "version": "4.14.202", - "resolved": "https://registry.npmjs.org/@types/lodash/-/lodash-4.14.202.tgz", - "integrity": "sha512-OvlIYQK9tNneDlS0VN54LLd5uiPCBOp7gS5Z0f1mjoJYBrtStzgmJBxONW3U6OZqdtNzZPmn9BS/7WI7BFFcFQ==" - }, - "node_modules/@types/lodash.clonedeep": { - "version": "4.5.9", - "resolved": "https://registry.npmjs.org/@types/lodash.clonedeep/-/lodash.clonedeep-4.5.9.tgz", - "integrity": "sha512-19429mWC+FyaAhOLzsS8kZUsI+/GmBAQ0HFiCPsKGU+7pBXOQWhyrY6xNNDwUSX8SMZMJvuFVMF9O5dQOlQK9Q==", - "dependencies": { - "@types/lodash": "*" - } - }, "node_modules/@types/mdast": { "version": "3.0.15", "resolved": "https://registry.npmjs.org/@types/mdast/-/mdast-3.0.15.tgz", @@ -4587,6 +5927,11 @@ "@types/unist": "^2" } }, + "node_modules/@types/mdx": { + "version": "2.0.13", + "resolved": "https://registry.npmjs.org/@types/mdx/-/mdx-2.0.13.tgz", + "integrity": "sha512-+OWZQfAYyio6YkJb3HLxDrvnx6SWWDbC0zVPfBRzUk0/nqoDyf6dNxQi3eArPe8rJ473nobTMQ/8Zk+LxJ+Yuw==" + }, "node_modules/@types/mime": { "version": "1.3.5", "resolved": "https://registry.npmjs.org/@types/mime/-/mime-1.3.5.tgz", @@ -4621,11 +5966,6 @@ "resolved": "https://registry.npmjs.org/@types/parse-json/-/parse-json-4.0.2.tgz", "integrity": "sha512-dISoDXWWQwUquiKsyZ4Ng+HX2KsPL7LyHKHQwgGFEA3IaKac4Obd+h2a/a6waisAoepJlBcx9paWqjA8/HVjCw==" }, - "node_modules/@types/parse5": { - "version": "5.0.3", - "resolved": "https://registry.npmjs.org/@types/parse5/-/parse5-5.0.3.tgz", - "integrity": "sha512-kUNnecmtkunAoQ3CnjmMkzNU/gtxG8guhi+Fk2U/kOpIKjIMKnXGp4IJCgQJrXSgMsWYimYG4TGjz/UzbGEBTw==" - }, "node_modules/@types/prismjs": { "version": "1.26.3", "resolved": "https://registry.npmjs.org/@types/prismjs/-/prismjs-1.26.3.tgz", @@ -4776,6 +6116,11 @@ "resolved": "https://registry.npmjs.org/@types/yargs-parser/-/yargs-parser-21.0.3.tgz", "integrity": "sha512-I4q9QU9MQv4oEOz4tAHJtNz1cwuLxn2F3xcc2iV5WdqLPpUnj30aUuxt1mAxYTG+oe8CZMV/+6rU4S4gRDzqtQ==" }, + "node_modules/@ungap/structured-clone": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@ungap/structured-clone/-/structured-clone-1.2.0.tgz", + "integrity": "sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ==" + }, "node_modules/@webassemblyjs/ast": { "version": "1.11.6", "resolved": "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.11.6.tgz", @@ -4959,6 +6304,14 @@ "acorn": "^8" } }, + "node_modules/acorn-jsx": { + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz", + "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==", + "peerDependencies": { + "acorn": "^6.0.0 || ^7.0.0 || ^8.0.0" + } + }, "node_modules/acorn-walk": { "version": "8.3.0", "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-8.3.0.tgz", @@ -4975,6 +6328,17 @@ "node": ">= 10.0.0" } }, + "node_modules/agent-base": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-7.1.1.tgz", + "integrity": "sha512-H0TSyFNDMomMNJQBn8wFV5YC/2eJ+VXECwOadZJT554xP6cODZHPX3H9QMQECxvrgiSOP1pHjy1sMWQVYJOUOA==", + "dependencies": { + "debug": "^4.3.4" + }, + "engines": { + "node": ">= 14" + } + }, "node_modules/aggregate-error": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/aggregate-error/-/aggregate-error-3.1.0.tgz", @@ -5018,32 +6382,44 @@ } } }, + "node_modules/ajv-keywords": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-5.1.0.tgz", + "integrity": "sha512-YCS/JNFAUyr5vAuhk1DWm1CBxRHW9LbJ2ozWeemrIqpbsqKjHVxYPyi5GC0rjZIT5JxJ3virVTS8wk4i/Z+krw==", + "dependencies": { + "fast-deep-equal": "^3.1.3" + }, + "peerDependencies": { + "ajv": "^8.8.2" + } + }, "node_modules/algoliasearch": { - "version": "4.20.0", - "resolved": "https://registry.npmjs.org/algoliasearch/-/algoliasearch-4.20.0.tgz", - "integrity": "sha512-y+UHEjnOItoNy0bYO+WWmLWBlPwDjKHW6mNHrPi0NkuhpQOOEbrkwQH/wgKFDLh7qlKjzoKeiRtlpewDPDG23g==", + "version": "4.24.0", + "resolved": "https://registry.npmjs.org/algoliasearch/-/algoliasearch-4.24.0.tgz", + "integrity": "sha512-bf0QV/9jVejssFBmz2HQLxUadxk574t4iwjCKp5E7NBzwKkrDEhKPISIIjAU/p6K5qDx3qoeh4+26zWN1jmw3g==", "dev": true, "dependencies": { - "@algolia/cache-browser-local-storage": "4.20.0", - "@algolia/cache-common": "4.20.0", - "@algolia/cache-in-memory": "4.20.0", - "@algolia/client-account": "4.20.0", - "@algolia/client-analytics": "4.20.0", - "@algolia/client-common": "4.20.0", - "@algolia/client-personalization": "4.20.0", - "@algolia/client-search": "4.20.0", - "@algolia/logger-common": "4.20.0", - "@algolia/logger-console": "4.20.0", - "@algolia/requester-browser-xhr": "4.20.0", - "@algolia/requester-common": "4.20.0", - "@algolia/requester-node-http": "4.20.0", - "@algolia/transporter": "4.20.0" + "@algolia/cache-browser-local-storage": "4.24.0", + "@algolia/cache-common": "4.24.0", + "@algolia/cache-in-memory": "4.24.0", + "@algolia/client-account": "4.24.0", + "@algolia/client-analytics": "4.24.0", + "@algolia/client-common": "4.24.0", + "@algolia/client-personalization": "4.24.0", + "@algolia/client-search": "4.24.0", + "@algolia/logger-common": "4.24.0", + "@algolia/logger-console": "4.24.0", + "@algolia/recommend": "4.24.0", + "@algolia/requester-browser-xhr": "4.24.0", + "@algolia/requester-common": "4.24.0", + "@algolia/requester-node-http": "4.24.0", + "@algolia/transporter": "4.24.0" } }, "node_modules/algoliasearch-helper": { - "version": "3.15.0", - "resolved": "https://registry.npmjs.org/algoliasearch-helper/-/algoliasearch-helper-3.15.0.tgz", - "integrity": "sha512-DGUnK3TGtDQsaUE4ayF/LjSN0DGsuYThB8WBgnnDY0Wq04K6lNVruO3LfqJOgSfDiezp+Iyt8Tj4YKHi+/ivSA==", + "version": "3.22.2", + "resolved": "https://registry.npmjs.org/algoliasearch-helper/-/algoliasearch-helper-3.22.2.tgz", + "integrity": "sha512-3YQ6eo7uYOCHeQ2ZpD+OoT3aJJwMNKEnwtu8WMzm81XmBOSCwRjQditH9CeSOQ38qhHkuGw23pbq+kULkIJLcw==", "dev": true, "dependencies": { "@algolia/events": "^4.0.1" @@ -5170,12 +6546,6 @@ "node": ">=8" } }, - "node_modules/asap": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/asap/-/asap-2.0.6.tgz", - "integrity": "sha512-BSHWgDSAiKs50o2Re8ppvp3seVHXSRM44cdSsT9FfNEUUZLOGWVCsiWaRPWM1Znn+mqZ1OfVZ3z3DWEzSp7hRA==", - "dev": true - }, "node_modules/asn1.js": { "version": "5.4.1", "resolved": "https://registry.npmjs.org/asn1.js/-/asn1.js-5.4.1.tgz", @@ -5204,6 +6574,14 @@ "util": "^0.12.5" } }, + "node_modules/astring": { + "version": "1.8.6", + "resolved": "https://registry.npmjs.org/astring/-/astring-1.8.6.tgz", + "integrity": "sha512-ISvCdHdlTDlH5IpxQJIex7BWBywFWgjJSVdwst+/iQCoEYnyOaQ95+X1JGshuBjGp6nxKUy1jMgE3zPqN7fQdg==", + "bin": { + "astring": "bin/astring" + } + }, "node_modules/async": { "version": "3.2.1", "resolved": "https://registry.npmjs.org/async/-/async-3.2.1.tgz", @@ -5218,9 +6596,9 @@ } }, "node_modules/autoprefixer": { - "version": "10.4.16", - "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-10.4.16.tgz", - "integrity": "sha512-7vd3UC6xKp0HLfua5IjZlcXvGAGy7cBAXTg2lyQ/8WpNhd6SiZ8Be+xm3FyBSYJx5GKcpRCzBh7RH4/0dnY+uQ==", + "version": "10.4.19", + "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-10.4.19.tgz", + "integrity": "sha512-BaENR2+zBZ8xXhM4pUaKUxlVdxZ0EZhjvbopwnXmxRUfqDmwSpC2lAi/QXvx7NRdPCo1WKEcEF6mV64si1z4Ew==", "funding": [ { "type": "opencollective", @@ -5236,9 +6614,9 @@ } ], "dependencies": { - "browserslist": "^4.21.10", - "caniuse-lite": "^1.0.30001538", - "fraction.js": "^4.3.6", + "browserslist": "^4.23.0", + "caniuse-lite": "^1.0.30001599", + "fraction.js": "^4.3.7", "normalize-range": "^0.1.2", "picocolors": "^1.0.0", "postcss-value-parser": "^4.2.0" @@ -5264,53 +6642,22 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/axios": { - "version": "0.25.0", - "resolved": "https://registry.npmjs.org/axios/-/axios-0.25.0.tgz", - "integrity": "sha512-cD8FOb0tRH3uuEe6+evtAbgJtfxr7ly3fQjYcMcuPlgkwVS9xboaVIpcDV+cYQe+yGykgwZCs1pzjntcGa6l5g==", - "dependencies": { - "follow-redirects": "^1.14.7" - } - }, "node_modules/babel-loader": { - "version": "8.3.0", - "resolved": "https://registry.npmjs.org/babel-loader/-/babel-loader-8.3.0.tgz", - "integrity": "sha512-H8SvsMF+m9t15HNLMipppzkC+Y2Yq+v3SonZyU70RBL/h1gxPkH08Ot8pEE9Z4Kd+czyWJClmFS8qzIP9OZ04Q==", + "version": "9.1.3", + "resolved": "https://registry.npmjs.org/babel-loader/-/babel-loader-9.1.3.tgz", + "integrity": "sha512-xG3ST4DglodGf8qSwv0MdeWLhrDsw/32QMdTO5T1ZIp9gQur0HkCyFs7Awskr10JKXFXwpAhiCuYX5oGXnRGbw==", "dependencies": { - "find-cache-dir": "^3.3.1", - "loader-utils": "^2.0.0", - "make-dir": "^3.1.0", - "schema-utils": "^2.6.5" + "find-cache-dir": "^4.0.0", + "schema-utils": "^4.0.0" }, "engines": { - "node": ">= 8.9" + "node": ">= 14.15.0" }, "peerDependencies": { - "@babel/core": "^7.0.0", - "webpack": ">=2" + "@babel/core": "^7.12.0", + "webpack": ">=5" } }, - "node_modules/babel-plugin-apply-mdx-type-prop": { - "version": "1.6.22", - "resolved": "https://registry.npmjs.org/babel-plugin-apply-mdx-type-prop/-/babel-plugin-apply-mdx-type-prop-1.6.22.tgz", - "integrity": "sha512-VefL+8o+F/DfK24lPZMtJctrCVOfgbqLAGZSkxwhazQv4VxPg3Za/i40fu22KR2m8eEda+IfSOlPLUSIiLcnCQ==", - "dependencies": { - "@babel/helper-plugin-utils": "7.10.4", - "@mdx-js/util": "1.6.22" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - }, - "peerDependencies": { - "@babel/core": "^7.11.6" - } - }, - "node_modules/babel-plugin-apply-mdx-type-prop/node_modules/@babel/helper-plugin-utils": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.10.4.tgz", - "integrity": "sha512-O4KCvQA6lLiMU9l2eawBPMf1xPP8xPfB3iEQw150hOVTqj/rfXz0ThTb4HEzqQfs2Bmo5Ay8BzxfzVtBrr9dVg==" - }, "node_modules/babel-plugin-dynamic-import-node": { "version": "2.3.3", "resolved": "https://registry.npmjs.org/babel-plugin-dynamic-import-node/-/babel-plugin-dynamic-import-node-2.3.3.tgz", @@ -5319,23 +6666,6 @@ "object.assign": "^4.1.0" } }, - "node_modules/babel-plugin-extract-import-names": { - "version": "1.6.22", - "resolved": "https://registry.npmjs.org/babel-plugin-extract-import-names/-/babel-plugin-extract-import-names-1.6.22.tgz", - "integrity": "sha512-yJ9BsJaISua7d8zNT7oRG1ZLBJCIdZ4PZqmH8qa9N5AK01ifk3fnkc98AXhtzE7UkfCsEumvoQWgoYLhOnJ7jQ==", - "dependencies": { - "@babel/helper-plugin-utils": "7.10.4" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/babel-plugin-extract-import-names/node_modules/@babel/helper-plugin-utils": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.10.4.tgz", - "integrity": "sha512-O4KCvQA6lLiMU9l2eawBPMf1xPP8xPfB3iEQw150hOVTqj/rfXz0ThTb4HEzqQfs2Bmo5Ay8BzxfzVtBrr9dVg==" - }, "node_modules/babel-plugin-polyfill-corejs2": { "version": "0.4.6", "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.4.6.tgz", @@ -5381,9 +6711,9 @@ } }, "node_modules/bail": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/bail/-/bail-1.0.5.tgz", - "integrity": "sha512-xFbRxM1tahm08yHBP16MMjVUAvDaBMD38zsM9EMAUN61omwLmKlOpB/Zku5QkjZ8TZ4vn53pj+t518cH0S03RQ==", + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/bail/-/bail-2.0.2.tgz", + "integrity": "sha512-0xO6mYd7JB2YesxDKplafRpsiOzPt9V02ddPCLbY1xYGPOX24NTyN50qnUxgCPcSoYMhKpAuBTjQoRZCAkUDRw==", "funding": { "type": "github", "url": "https://github.com/sponsors/wooorm" @@ -5394,12 +6724,6 @@ "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==" }, - "node_modules/base16": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/base16/-/base16-1.0.0.tgz", - "integrity": "sha512-pNdYkNPiJUnEhnfXV56+sQy8+AaPcG3POZAUnwr4EeqCUZFz4u2PePbo3e5Gj4ziYPCWGUZT9RHisvJKnwFuBQ==", - "dev": true - }, "node_modules/base64-js": { "version": "1.5.1", "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz", @@ -5659,9 +6983,9 @@ } }, "node_modules/browserslist": { - "version": "4.22.1", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.22.1.tgz", - "integrity": "sha512-FEVc202+2iuClEhZhrWy6ZiAcRLvNMyYcxZ8raemul1DYVOVdFsbqckWLdsixQZCpJlwe77Z3UTalE7jsjnKfQ==", + "version": "4.23.1", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.23.1.tgz", + "integrity": "sha512-TUfofFo/KsK/bWZ9TWQ5O26tsWW4Uhmt8IYklbnUa70udB6P2wA7w7o4PY4muaEPBQaAX+CEnmmIA41NVHtPVw==", "funding": [ { "type": "opencollective", @@ -5677,10 +7001,10 @@ } ], "dependencies": { - "caniuse-lite": "^1.0.30001541", - "electron-to-chromium": "^1.4.535", - "node-releases": "^2.0.13", - "update-browserslist-db": "^1.0.13" + "caniuse-lite": "^1.0.30001629", + "electron-to-chromium": "^1.4.796", + "node-releases": "^2.0.14", + "update-browserslist-db": "^1.0.16" }, "bin": { "browserslist": "cli.js" @@ -5735,37 +7059,51 @@ "node": ">= 0.8" } }, - "node_modules/cacheable-request": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/cacheable-request/-/cacheable-request-6.1.0.tgz", - "integrity": "sha512-Oj3cAGPCqOZX7Rz64Uny2GYAZNliQSqfbePrgAQ1wKAihYmCUnraBtJtKcGR4xz7wF+LoJC+ssFZvv5BgF9Igg==", - "dependencies": { - "clone-response": "^1.0.2", - "get-stream": "^5.1.0", - "http-cache-semantics": "^4.0.0", - "keyv": "^3.0.0", - "lowercase-keys": "^2.0.0", - "normalize-url": "^4.1.0", - "responselike": "^1.0.2" - }, + "node_modules/cacheable-lookup": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/cacheable-lookup/-/cacheable-lookup-7.0.0.tgz", + "integrity": "sha512-+qJyx4xiKra8mZrcwhjMRMUhD5NR1R8esPkzIYxX96JiecFoxAXFuz/GpR3+ev4PE1WamHip78wV0vcmPQtp8w==", "engines": { - "node": ">=8" + "node": ">=14.16" } }, - "node_modules/cacheable-request/node_modules/lowercase-keys": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-2.0.0.tgz", - "integrity": "sha512-tqNXrS78oMOE73NMxK4EMLQsQowWf8jKooH9g7xPavRT706R6bkQJ6DY2Te7QukaZsulxa30wQ7bk0pm4XiHmA==", + "node_modules/cacheable-request": { + "version": "10.2.14", + "resolved": "https://registry.npmjs.org/cacheable-request/-/cacheable-request-10.2.14.tgz", + "integrity": "sha512-zkDT5WAF4hSSoUgyfg5tFIxz8XQK+25W/TLVojJTMKBaxevLBBtLxgqguAuVQB8PVW79FVjHcU+GJ9tVbDZ9mQ==", + "dependencies": { + "@types/http-cache-semantics": "^4.0.2", + "get-stream": "^6.0.1", + "http-cache-semantics": "^4.1.1", + "keyv": "^4.5.3", + "mimic-response": "^4.0.0", + "normalize-url": "^8.0.0", + "responselike": "^3.0.0" + }, "engines": { - "node": ">=8" + "node": ">=14.16" + } + }, + "node_modules/cacheable-request/node_modules/get-stream": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz", + "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/cacheable-request/node_modules/normalize-url": { - "version": "4.5.1", - "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-4.5.1.tgz", - "integrity": "sha512-9UZCFRHQdNrfTpGg8+1INIg93B6zE0aXMVFkw1WFwvO4SlZywU6aLg5Of0Ap/PgcbSw4LNxvMWXMeugwMCX0AA==", + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-8.0.1.tgz", + "integrity": "sha512-IO9QvjUMWxPQQhs60oOu10CRkWCiZzSUkzbXGGV9pviYl1fXYcvkzQ5jV9z8Y6un8ARoVRl4EtC6v6jNqbaJ/w==", "engines": { - "node": ">=8" + "node": ">=14.16" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/call-bind": { @@ -5814,14 +7152,6 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/camelcase-css": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/camelcase-css/-/camelcase-css-2.0.1.tgz", - "integrity": "sha512-QOSvevhslijgYwRx6Rv7zKdMF8lbRmx+uQGx2+vDc+KI/eBnsy9kit5aj23AgGu3pa4t9AgwbnXWqS+iOY+2aA==", - "engines": { - "node": ">= 6" - } - }, "node_modules/caniuse-api": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/caniuse-api/-/caniuse-api-3.0.0.tgz", @@ -5834,9 +7164,9 @@ } }, "node_modules/caniuse-lite": { - "version": "1.0.30001565", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001565.tgz", - "integrity": "sha512-xrE//a3O7TP0vaJ8ikzkD2c2NgcVUvsEe2IvFTntV4Yd1Z9FVzh+gW+enX96L0psrbaFMcVcH2l90xNuGDWc8w==", + "version": "1.0.30001639", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001639.tgz", + "integrity": "sha512-eFHflNTBIlFwP2AIKaYuBQN/apnUoKNhBdza8ZnW/h2di4LCZ4xFqYlxUxo+LQ76KFI1PGcC1QDxMbxTZpSCAg==", "funding": [ { "type": "opencollective", @@ -5852,15 +7182,6 @@ } ] }, - "node_modules/ccount": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/ccount/-/ccount-1.1.0.tgz", - "integrity": "sha512-vlNK021QdI7PNeiUh/lKkC/mNHHfV0m/Ad5JoI0TYtlBnJAslM/JIkm/tGC88bkLIwO6OQ5uV6ztS6kVAtCDlg==", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" - } - }, "node_modules/chalk": { "version": "4.1.2", "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", @@ -5876,28 +7197,18 @@ "url": "https://github.com/chalk/chalk?sponsor=1" } }, - "node_modules/character-entities": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/character-entities/-/character-entities-1.2.4.tgz", - "integrity": "sha512-iBMyeEHxfVnIakwOuDXpVkc54HijNgCyQB2w0VfGQThle6NXn50zU6V/u+LDhxHcDUPojn6Kpga3PTAD8W1bQw==", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" + "node_modules/char-regex": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/char-regex/-/char-regex-1.0.2.tgz", + "integrity": "sha512-kWWXztvZ5SBQV+eRgKFeh8q5sLuZY2+8WUIzlxWVTg+oGwY14qylx1KbKzHd8P6ZYkAg0xyIDU9JMHhyJMZ1jw==", + "engines": { + "node": ">=10" } }, - "node_modules/character-entities-legacy": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/character-entities-legacy/-/character-entities-legacy-1.1.4.tgz", - "integrity": "sha512-3Xnr+7ZFS1uxeiUDvV02wQ+QDbc55o97tIV5zHScSPJpcLm/r0DFPcoY3tYRp+VZukxuMeKgXYmsXQHO05zQeA==", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" - } - }, - "node_modules/character-reference-invalid": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/character-reference-invalid/-/character-reference-invalid-1.1.4.tgz", - "integrity": "sha512-mKKUkUbhPpQlCOfIuZkvSEgktjPFIsZKRRbC6KWVEMvlzblj3i3asQv5ODsrwt0N3pHAEvjP8KTQPHkp0+6jOg==", + "node_modules/character-entities-html4": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/character-entities-html4/-/character-entities-html4-2.1.0.tgz", + "integrity": "sha512-1v7fgQRj6hnSwFpq1Eu0ynr/CDEw0rXo2B61qXrLNdHZmPKgb7fqS1a2JwF0rISo9q77jDI8VMEHoApn8qDoZA==", "funding": { "type": "github", "url": "https://github.com/sponsors/wooorm" @@ -6260,17 +7571,6 @@ "node": ">=0.10.0" } }, - "node_modules/clone-response": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/clone-response/-/clone-response-1.0.3.tgz", - "integrity": "sha512-ROoL94jJH2dUVML2Y/5PEDNaSHgeOdSDicUyS7izcF63G6sTc/FTjLub4b8Il9S8S0beOfYt0TaA5qvFK+w0wA==", - "dependencies": { - "mimic-response": "^1.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/clsx": { "version": "1.2.1", "resolved": "https://registry.npmjs.org/clsx/-/clsx-1.2.1.tgz", @@ -6280,9 +7580,9 @@ } }, "node_modules/collapse-white-space": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/collapse-white-space/-/collapse-white-space-1.0.6.tgz", - "integrity": "sha512-jEovNnrhMuqyCcjfEJA56v0Xq8SkIoPKDyaHahwo3POf4qcSXqMYuwNcOTzp74vTsR9Tn08z4MxWqAhcekogkQ==", + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/collapse-white-space/-/collapse-white-space-2.1.0.tgz", + "integrity": "sha512-loKTxY1zCOuG4j9f6EPnuyyYkf58RnhhWTvRoZEokgB+WbdXehfjFviyOVYkqzEWz1Q5kRiZdBYS5SwxbQYwzw==", "funding": { "type": "github", "url": "https://github.com/sponsors/wooorm" @@ -6323,9 +7623,9 @@ } }, "node_modules/comma-separated-tokens": { - "version": "1.0.8", - "resolved": "https://registry.npmjs.org/comma-separated-tokens/-/comma-separated-tokens-1.0.8.tgz", - "integrity": "sha512-GHuDRO12Sypu2cV70d1dkA2EUmXHgntrzbpvOB+Qy+49ypNfGgFQIC2fhhXbnyrJRynDCAARsT7Ou0M6hirpfw==", + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/comma-separated-tokens/-/comma-separated-tokens-2.0.3.tgz", + "integrity": "sha512-Fu4hJdvzeylCfQPp9SGWidpzrMs7tTrlu6Vb8XGaRGck8QSNZJJp538Wrb60Lax4fPwR64ViY468OIUTbRlGZg==", "funding": { "type": "github", "url": "https://github.com/sponsors/wooorm" @@ -6339,10 +7639,10 @@ "node": ">= 6" } }, - "node_modules/commondir": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/commondir/-/commondir-1.0.1.tgz", - "integrity": "sha512-W9pAhw0ja1Edb5GVdIF1mjZw/ASI0AlShXM83UUGe2DVr5TdAPEA1OA8m/g8zWp9x6On7gqufY+FatDbC3MDQg==" + "node_modules/common-path-prefix": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/common-path-prefix/-/common-path-prefix-3.0.0.tgz", + "integrity": "sha512-QE33hToZseCH3jS0qN96O/bSh3kaw/h+Tq7ngyY9eWDUnTlTNUyqfqvCXioLe5Na5jFsL78ra/wuBU4iuEgd4w==" }, "node_modules/compressible": { "version": "2.0.18", @@ -6416,20 +7716,31 @@ "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==" }, - "node_modules/configstore": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/configstore/-/configstore-5.0.1.tgz", - "integrity": "sha512-aMKprgk5YhBNyH25hj8wGt2+D52Sw1DRRIzqBwLp2Ya9mFmY8KPvvtvmna8SxVR9JMZ4kzMD68N22vlaRpkeFA==", + "node_modules/config-chain": { + "version": "1.1.13", + "resolved": "https://registry.npmjs.org/config-chain/-/config-chain-1.1.13.tgz", + "integrity": "sha512-qj+f8APARXHrM0hraqXYb2/bOVSV4PvJQlNZ/DVj0QrmNM2q2euizkeuVckQ57J+W0mRH6Hvi+k50M4Jul2VRQ==", "dependencies": { - "dot-prop": "^5.2.0", - "graceful-fs": "^4.1.2", - "make-dir": "^3.0.0", - "unique-string": "^2.0.0", - "write-file-atomic": "^3.0.0", - "xdg-basedir": "^4.0.0" + "ini": "^1.3.4", + "proto-list": "~1.2.1" + } + }, + "node_modules/configstore": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/configstore/-/configstore-6.0.0.tgz", + "integrity": "sha512-cD31W1v3GqUlQvbBCGcXmd2Nj9SvLDOP1oQ0YFuLETufzSPaKp11rYBsSOm7rCsW3OnIRAFM3OxRhceaXNYHkA==", + "dependencies": { + "dot-prop": "^6.0.1", + "graceful-fs": "^4.2.6", + "unique-string": "^3.0.0", + "write-file-atomic": "^3.0.3", + "xdg-basedir": "^5.0.1" }, "engines": { - "node": ">=8" + "node": ">=12" + }, + "funding": { + "url": "https://github.com/yeoman/configstore?sponsor=1" } }, "node_modules/connect-history-api-fallback": { @@ -6523,32 +7834,6 @@ "webpack": "^5.1.0" } }, - "node_modules/copy-webpack-plugin/node_modules/ajv": { - "version": "8.12.0", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.12.0.tgz", - "integrity": "sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA==", - "dependencies": { - "fast-deep-equal": "^3.1.1", - "json-schema-traverse": "^1.0.0", - "require-from-string": "^2.0.2", - "uri-js": "^4.2.2" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/epoberezkin" - } - }, - "node_modules/copy-webpack-plugin/node_modules/ajv-keywords": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-5.1.0.tgz", - "integrity": "sha512-YCS/JNFAUyr5vAuhk1DWm1CBxRHW9LbJ2ozWeemrIqpbsqKjHVxYPyi5GC0rjZIT5JxJ3virVTS8wk4i/Z+krw==", - "dependencies": { - "fast-deep-equal": "^3.1.3" - }, - "peerDependencies": { - "ajv": "^8.8.2" - } - }, "node_modules/copy-webpack-plugin/node_modules/glob-parent": { "version": "6.0.2", "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz", @@ -6578,24 +7863,6 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/copy-webpack-plugin/node_modules/schema-utils": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-4.2.0.tgz", - "integrity": "sha512-L0jRsrPpjdckP3oPug3/VxNKt2trR8TcabrM6FOAAlvC/9Phcmm+cuAgTlxBqdBR1WJx7Naj9WHw+aOmheSVbw==", - "dependencies": { - "@types/json-schema": "^7.0.9", - "ajv": "^8.9.0", - "ajv-formats": "^2.1.1", - "ajv-keywords": "^5.1.0" - }, - "engines": { - "node": ">= 12.13.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" - } - }, "node_modules/copy-webpack-plugin/node_modules/slash": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/slash/-/slash-4.0.0.tgz", @@ -6644,6 +7911,14 @@ "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.3.tgz", "integrity": "sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==" }, + "node_modules/cose-base": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/cose-base/-/cose-base-1.0.3.tgz", + "integrity": "sha512-s9whTXInMSgAp/NVXVNuVxVKzGH2qck3aQlVHxDCdAEPgtMKwc4Wq6/QKhgdEdgbLSi9rBTAcPoRa6JpiG4ksg==", + "dependencies": { + "layout-base": "^1.0.0" + } + }, "node_modules/cosmiconfig": { "version": "7.1.0", "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-7.1.0.tgz", @@ -6698,15 +7973,6 @@ "sha.js": "^2.4.8" } }, - "node_modules/cross-fetch": { - "version": "3.1.8", - "resolved": "https://registry.npmjs.org/cross-fetch/-/cross-fetch-3.1.8.tgz", - "integrity": "sha512-cvA+JwZoU0Xq+h6WkMvAUqPEYy92Obet6UdKLfW60qn99ftItKjB5T+BkyWOFWe2pUyfQ+IJHmpOTznqk1M6Kg==", - "dev": true, - "dependencies": { - "node-fetch": "^2.6.12" - } - }, "node_modules/cross-spawn": { "version": "7.0.3", "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", @@ -6747,11 +8013,28 @@ "integrity": "sha512-KALDyEYgpY+Rlob/iriUtjV6d5Eq+Y191A5g4UqLAi8CyGP9N1+FdVbkc1SxKc2r4YAYqG8JzO2KGL+AizD70Q==" }, "node_modules/crypto-random-string": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/crypto-random-string/-/crypto-random-string-2.0.0.tgz", - "integrity": "sha512-v1plID3y9r/lPhviJ1wrXpLeyUIGAZ2SHNYTEapm7/8A9nLPoyvVp3RK/EPFqn5kEznyWgYZNsRtYYIWbuG8KA==", + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/crypto-random-string/-/crypto-random-string-4.0.0.tgz", + "integrity": "sha512-x8dy3RnvYdlUcPOjkEHqozhiwzKNSq7GcPuXFbnyMOCHxX8V3OgIg/pYuabl2sbUPfIJaeAQB7PMOK8DFIdoRA==", + "dependencies": { + "type-fest": "^1.0.1" + }, "engines": { - "node": ">=8" + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/crypto-random-string/node_modules/type-fest": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-1.4.0.tgz", + "integrity": "sha512-yGSza74xk0UG8k+pLh5oeoYirvIiWo5t0/o3zHHAO2tRDiZcxWP7fywNlXhqb6/r6sWvwi+RsyQMWhVLe4BVuA==", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/css-declaration-sorter": { @@ -6833,50 +8116,6 @@ } } }, - "node_modules/css-minimizer-webpack-plugin/node_modules/ajv": { - "version": "8.12.0", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.12.0.tgz", - "integrity": "sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA==", - "dependencies": { - "fast-deep-equal": "^3.1.1", - "json-schema-traverse": "^1.0.0", - "require-from-string": "^2.0.2", - "uri-js": "^4.2.2" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/epoberezkin" - } - }, - "node_modules/css-minimizer-webpack-plugin/node_modules/ajv-keywords": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-5.1.0.tgz", - "integrity": "sha512-YCS/JNFAUyr5vAuhk1DWm1CBxRHW9LbJ2ozWeemrIqpbsqKjHVxYPyi5GC0rjZIT5JxJ3virVTS8wk4i/Z+krw==", - "dependencies": { - "fast-deep-equal": "^3.1.3" - }, - "peerDependencies": { - "ajv": "^8.8.2" - } - }, - "node_modules/css-minimizer-webpack-plugin/node_modules/schema-utils": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-4.2.0.tgz", - "integrity": "sha512-L0jRsrPpjdckP3oPug3/VxNKt2trR8TcabrM6FOAAlvC/9Phcmm+cuAgTlxBqdBR1WJx7Naj9WHw+aOmheSVbw==", - "dependencies": { - "@types/json-schema": "^7.0.9", - "ajv": "^8.9.0", - "ajv-formats": "^2.1.1", - "ajv-keywords": "^5.1.0" - }, - "engines": { - "node": ">= 12.13.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" - } - }, "node_modules/css-select": { "version": "4.3.0", "resolved": "https://registry.npmjs.org/css-select/-/css-select-4.3.0.tgz", @@ -7034,6 +8273,49 @@ "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.1.2.tgz", "integrity": "sha512-I7K1Uu0MBPzaFKg4nI5Q7Vs2t+3gWWW648spaF+Rg7pI9ds18Ugn+lvg4SHczUdKlHI5LWBXyqfS8+DufyBsgQ==" }, + "node_modules/cytoscape": { + "version": "3.30.0", + "resolved": "https://registry.npmjs.org/cytoscape/-/cytoscape-3.30.0.tgz", + "integrity": "sha512-l590mjTHT6/Cbxp13dGPC2Y7VXdgc+rUeF8AnF/JPzhjNevbDJfObnJgaSjlldOgBQZbue+X6IUZ7r5GAgvauQ==", + "engines": { + "node": ">=0.10" + } + }, + "node_modules/cytoscape-cose-bilkent": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/cytoscape-cose-bilkent/-/cytoscape-cose-bilkent-4.1.0.tgz", + "integrity": "sha512-wgQlVIUJF13Quxiv5e1gstZ08rnZj2XaLHGoFMYXz7SkNfCDOOteKBE6SYRfA9WxxI/iBc3ajfDoc6hb/MRAHQ==", + "dependencies": { + "cose-base": "^1.0.0" + }, + "peerDependencies": { + "cytoscape": "^3.2.0" + } + }, + "node_modules/cytoscape-fcose": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/cytoscape-fcose/-/cytoscape-fcose-2.2.0.tgz", + "integrity": "sha512-ki1/VuRIHFCzxWNrsshHYPs6L7TvLu3DL+TyIGEsRcvVERmxokbf5Gdk7mFxZnTdiGtnA4cfSmjZJMviqSuZrQ==", + "dependencies": { + "cose-base": "^2.2.0" + }, + "peerDependencies": { + "cytoscape": "^3.2.0" + } + }, + "node_modules/cytoscape-fcose/node_modules/cose-base": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/cose-base/-/cose-base-2.2.0.tgz", + "integrity": "sha512-AzlgcsCbUMymkADOJtQm3wO9S3ltPfYOFD5033keQn9NJzIbtnZj+UdBJe7DYml/8TdbtHJW3j58SOnKhWY/5g==", + "dependencies": { + "layout-base": "^2.0.0" + } + }, + "node_modules/cytoscape-fcose/node_modules/layout-base": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/layout-base/-/layout-base-2.0.1.tgz", + "integrity": "sha512-dp3s92+uNI1hWIpPGH3jK2kxE2lMjdXdr+DH8ynZHpd6PUlH6x6cbuXnoMmiNumznqaNO31xu9e79F0uuZ0JFg==" + }, "node_modules/d3": { "version": "7.8.5", "resolved": "https://registry.npmjs.org/d3/-/d3-7.8.5.tgz", @@ -7119,11 +8401,6 @@ "node": ">=12" } }, - "node_modules/d3-collection": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/d3-collection/-/d3-collection-1.0.7.tgz", - "integrity": "sha512-ii0/r5f4sjKNTfh84Di+DpztYwqKhEyUlKoPrzUFfeSkWxjW49xU2QzO9qrPrNkpdI0XJkfzvmTu8V2Zylln6A==" - }, "node_modules/d3-color": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/d3-color/-/d3-color-3.1.0.tgz", @@ -7308,6 +8585,41 @@ "node": ">=12" } }, + "node_modules/d3-sankey": { + "version": "0.12.3", + "resolved": "https://registry.npmjs.org/d3-sankey/-/d3-sankey-0.12.3.tgz", + "integrity": "sha512-nQhsBRmM19Ax5xEIPLMY9ZmJ/cDvd1BG3UVvt5h3WRxKg5zGRbvnteTyWAbzeSvlh3tW7ZEmq4VwR5mB3tutmQ==", + "dependencies": { + "d3-array": "1 - 2", + "d3-shape": "^1.2.0" + } + }, + "node_modules/d3-sankey/node_modules/d3-array": { + "version": "2.12.1", + "resolved": "https://registry.npmjs.org/d3-array/-/d3-array-2.12.1.tgz", + "integrity": "sha512-B0ErZK/66mHtEsR1TkPEEkwdy+WDesimkM5gpZr5Dsg54BiTA5RXtYW5qTLIAcekaS9xfZrzBLF/OAkB3Qn1YQ==", + "dependencies": { + "internmap": "^1.0.0" + } + }, + "node_modules/d3-sankey/node_modules/d3-path": { + "version": "1.0.9", + "resolved": "https://registry.npmjs.org/d3-path/-/d3-path-1.0.9.tgz", + "integrity": "sha512-VLaYcn81dtHVTjEHd8B+pbe9yHWpXKZUC87PzoFmsFrJqgFwDe/qxfp5MlfsfM1V5E/iVt0MmEbWQ7FVIXh/bg==" + }, + "node_modules/d3-sankey/node_modules/d3-shape": { + "version": "1.3.7", + "resolved": "https://registry.npmjs.org/d3-shape/-/d3-shape-1.3.7.tgz", + "integrity": "sha512-EUkvKjqPFUAZyOlhY5gzCxCeI0Aep04LwIRpsZ/mLFelJiUfnK56jo5JMDSE7yyP2kLSb6LtF+S5chMk7uqPqw==", + "dependencies": { + "d3-path": "1" + } + }, + "node_modules/d3-sankey/node_modules/internmap": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/internmap/-/internmap-1.0.1.tgz", + "integrity": "sha512-lDB5YccMydFBtasVtxnZ3MRBHuaoE8GKsppq+EchKL2U4nK/DmEpPHNH8MZe5HkMtpSiTSOZwfN0tzYjO/lJEw==" + }, "node_modules/d3-scale": { "version": "4.0.2", "resolved": "https://registry.npmjs.org/d3-scale/-/d3-scale-4.0.2.tgz", @@ -7402,11 +8714,6 @@ "d3-selection": "2 - 3" } }, - "node_modules/d3-voronoi": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/d3-voronoi/-/d3-voronoi-1.1.4.tgz", - "integrity": "sha512-dArJ32hchFsrQ8uMiTBLq256MpnZjeuBtdHpaDlYuQyjU0CVzCJl/BVW+SkszaAeH95D/8gxqAhgx0ouAWAfRg==" - }, "node_modules/d3-zoom": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/d3-zoom/-/d3-zoom-3.0.0.tgz", @@ -7422,306 +8729,19 @@ "node": ">=12" } }, - "node_modules/dagre": { - "version": "0.8.5", - "resolved": "https://registry.npmjs.org/dagre/-/dagre-0.8.5.tgz", - "integrity": "sha512-/aTqmnRta7x7MCCpExk7HQL2O4owCT2h8NT//9I1OQ9vt29Pa0BzSAkR5lwFUcQ7491yVi/3CXU9jQ5o0Mn2Sw==", + "node_modules/dagre-d3-es": { + "version": "7.0.10", + "resolved": "https://registry.npmjs.org/dagre-d3-es/-/dagre-d3-es-7.0.10.tgz", + "integrity": "sha512-qTCQmEhcynucuaZgY5/+ti3X/rnszKZhEQH/ZdWdtP1tA/y3VoHJzcVrO9pjjJCNpigfscAtoUB5ONcd2wNn0A==", "dependencies": { - "graphlib": "^2.1.8", - "lodash": "^4.17.15" + "d3": "^7.8.2", + "lodash-es": "^4.17.21" } }, - "node_modules/dagre-d3": { - "version": "0.6.4", - "resolved": "https://registry.npmjs.org/dagre-d3/-/dagre-d3-0.6.4.tgz", - "integrity": "sha512-e/6jXeCP7/ptlAM48clmX4xTZc5Ek6T6kagS7Oz2HrYSdqcLZFLqpAfh7ldbZRFfxCZVyh61NEPR08UQRVxJzQ==", - "dependencies": { - "d3": "^5.14", - "dagre": "^0.8.5", - "graphlib": "^2.1.8", - "lodash": "^4.17.15" - } - }, - "node_modules/dagre-d3/node_modules/commander": { - "version": "2.20.3", - "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", - "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==" - }, - "node_modules/dagre-d3/node_modules/d3": { - "version": "5.16.0", - "resolved": "https://registry.npmjs.org/d3/-/d3-5.16.0.tgz", - "integrity": "sha512-4PL5hHaHwX4m7Zr1UapXW23apo6pexCgdetdJ5kTmADpG/7T9Gkxw0M0tf/pjoB63ezCCm0u5UaFYy2aMt0Mcw==", - "dependencies": { - "d3-array": "1", - "d3-axis": "1", - "d3-brush": "1", - "d3-chord": "1", - "d3-collection": "1", - "d3-color": "1", - "d3-contour": "1", - "d3-dispatch": "1", - "d3-drag": "1", - "d3-dsv": "1", - "d3-ease": "1", - "d3-fetch": "1", - "d3-force": "1", - "d3-format": "1", - "d3-geo": "1", - "d3-hierarchy": "1", - "d3-interpolate": "1", - "d3-path": "1", - "d3-polygon": "1", - "d3-quadtree": "1", - "d3-random": "1", - "d3-scale": "2", - "d3-scale-chromatic": "1", - "d3-selection": "1", - "d3-shape": "1", - "d3-time": "1", - "d3-time-format": "2", - "d3-timer": "1", - "d3-transition": "1", - "d3-voronoi": "1", - "d3-zoom": "1" - } - }, - "node_modules/dagre-d3/node_modules/d3-array": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/d3-array/-/d3-array-1.2.4.tgz", - "integrity": "sha512-KHW6M86R+FUPYGb3R5XiYjXPq7VzwxZ22buHhAEVG5ztoEcZZMLov530mmccaqA1GghZArjQV46fuc8kUqhhHw==" - }, - "node_modules/dagre-d3/node_modules/d3-axis": { - "version": "1.0.12", - "resolved": "https://registry.npmjs.org/d3-axis/-/d3-axis-1.0.12.tgz", - "integrity": "sha512-ejINPfPSNdGFKEOAtnBtdkpr24c4d4jsei6Lg98mxf424ivoDP2956/5HDpIAtmHo85lqT4pruy+zEgvRUBqaQ==" - }, - "node_modules/dagre-d3/node_modules/d3-brush": { - "version": "1.1.6", - "resolved": "https://registry.npmjs.org/d3-brush/-/d3-brush-1.1.6.tgz", - "integrity": "sha512-7RW+w7HfMCPyZLifTz/UnJmI5kdkXtpCbombUSs8xniAyo0vIbrDzDwUJB6eJOgl9u5DQOt2TQlYumxzD1SvYA==", - "dependencies": { - "d3-dispatch": "1", - "d3-drag": "1", - "d3-interpolate": "1", - "d3-selection": "1", - "d3-transition": "1" - } - }, - "node_modules/dagre-d3/node_modules/d3-chord": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/d3-chord/-/d3-chord-1.0.6.tgz", - "integrity": "sha512-JXA2Dro1Fxw9rJe33Uv+Ckr5IrAa74TlfDEhE/jfLOaXegMQFQTAgAw9WnZL8+HxVBRXaRGCkrNU7pJeylRIuA==", - "dependencies": { - "d3-array": "1", - "d3-path": "1" - } - }, - "node_modules/dagre-d3/node_modules/d3-color": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/d3-color/-/d3-color-1.4.1.tgz", - "integrity": "sha512-p2sTHSLCJI2QKunbGb7ocOh7DgTAn8IrLx21QRc/BSnodXM4sv6aLQlnfpvehFMLZEfBc6g9pH9SWQccFYfJ9Q==" - }, - "node_modules/dagre-d3/node_modules/d3-contour": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/d3-contour/-/d3-contour-1.3.2.tgz", - "integrity": "sha512-hoPp4K/rJCu0ladiH6zmJUEz6+u3lgR+GSm/QdM2BBvDraU39Vr7YdDCicJcxP1z8i9B/2dJLgDC1NcvlF8WCg==", - "dependencies": { - "d3-array": "^1.1.1" - } - }, - "node_modules/dagre-d3/node_modules/d3-dispatch": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/d3-dispatch/-/d3-dispatch-1.0.6.tgz", - "integrity": "sha512-fVjoElzjhCEy+Hbn8KygnmMS7Or0a9sI2UzGwoB7cCtvI1XpVN9GpoYlnb3xt2YV66oXYb1fLJ8GMvP4hdU1RA==" - }, - "node_modules/dagre-d3/node_modules/d3-drag": { - "version": "1.2.5", - "resolved": "https://registry.npmjs.org/d3-drag/-/d3-drag-1.2.5.tgz", - "integrity": "sha512-rD1ohlkKQwMZYkQlYVCrSFxsWPzI97+W+PaEIBNTMxRuxz9RF0Hi5nJWHGVJ3Om9d2fRTe1yOBINJyy/ahV95w==", - "dependencies": { - "d3-dispatch": "1", - "d3-selection": "1" - } - }, - "node_modules/dagre-d3/node_modules/d3-dsv": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/d3-dsv/-/d3-dsv-1.2.0.tgz", - "integrity": "sha512-9yVlqvZcSOMhCYzniHE7EVUws7Fa1zgw+/EAV2BxJoG3ME19V6BQFBwI855XQDsxyOuG7NibqRMTtiF/Qup46g==", - "dependencies": { - "commander": "2", - "iconv-lite": "0.4", - "rw": "1" - }, - "bin": { - "csv2json": "bin/dsv2json", - "csv2tsv": "bin/dsv2dsv", - "dsv2dsv": "bin/dsv2dsv", - "dsv2json": "bin/dsv2json", - "json2csv": "bin/json2dsv", - "json2dsv": "bin/json2dsv", - "json2tsv": "bin/json2dsv", - "tsv2csv": "bin/dsv2dsv", - "tsv2json": "bin/dsv2json" - } - }, - "node_modules/dagre-d3/node_modules/d3-ease": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/d3-ease/-/d3-ease-1.0.7.tgz", - "integrity": "sha512-lx14ZPYkhNx0s/2HX5sLFUI3mbasHjSSpwO/KaaNACweVwxUruKyWVcb293wMv1RqTPZyZ8kSZ2NogUZNcLOFQ==" - }, - "node_modules/dagre-d3/node_modules/d3-fetch": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/d3-fetch/-/d3-fetch-1.2.0.tgz", - "integrity": "sha512-yC78NBVcd2zFAyR/HnUiBS7Lf6inSCoWcSxFfw8FYL7ydiqe80SazNwoffcqOfs95XaLo7yebsmQqDKSsXUtvA==", - "dependencies": { - "d3-dsv": "1" - } - }, - "node_modules/dagre-d3/node_modules/d3-force": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/d3-force/-/d3-force-1.2.1.tgz", - "integrity": "sha512-HHvehyaiUlVo5CxBJ0yF/xny4xoaxFxDnBXNvNcfW9adORGZfyNF1dj6DGLKyk4Yh3brP/1h3rnDzdIAwL08zg==", - "dependencies": { - "d3-collection": "1", - "d3-dispatch": "1", - "d3-quadtree": "1", - "d3-timer": "1" - } - }, - "node_modules/dagre-d3/node_modules/d3-format": { - "version": "1.4.5", - "resolved": "https://registry.npmjs.org/d3-format/-/d3-format-1.4.5.tgz", - "integrity": "sha512-J0piedu6Z8iB6TbIGfZgDzfXxUFN3qQRMofy2oPdXzQibYGqPB/9iMcxr/TGalU+2RsyDO+U4f33id8tbnSRMQ==" - }, - "node_modules/dagre-d3/node_modules/d3-geo": { - "version": "1.12.1", - "resolved": "https://registry.npmjs.org/d3-geo/-/d3-geo-1.12.1.tgz", - "integrity": "sha512-XG4d1c/UJSEX9NfU02KwBL6BYPj8YKHxgBEw5om2ZnTRSbIcego6dhHwcxuSR3clxh0EpE38os1DVPOmnYtTPg==", - "dependencies": { - "d3-array": "1" - } - }, - "node_modules/dagre-d3/node_modules/d3-hierarchy": { - "version": "1.1.9", - "resolved": "https://registry.npmjs.org/d3-hierarchy/-/d3-hierarchy-1.1.9.tgz", - "integrity": "sha512-j8tPxlqh1srJHAtxfvOUwKNYJkQuBFdM1+JAUfq6xqH5eAqf93L7oG1NVqDa4CpFZNvnNKtCYEUC8KY9yEn9lQ==" - }, - "node_modules/dagre-d3/node_modules/d3-interpolate": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/d3-interpolate/-/d3-interpolate-1.4.0.tgz", - "integrity": "sha512-V9znK0zc3jOPV4VD2zZn0sDhZU3WAE2bmlxdIwwQPPzPjvyLkd8B3JUVdS1IDUFDkWZ72c9qnv1GK2ZagTZ8EA==", - "dependencies": { - "d3-color": "1" - } - }, - "node_modules/dagre-d3/node_modules/d3-path": { - "version": "1.0.9", - "resolved": "https://registry.npmjs.org/d3-path/-/d3-path-1.0.9.tgz", - "integrity": "sha512-VLaYcn81dtHVTjEHd8B+pbe9yHWpXKZUC87PzoFmsFrJqgFwDe/qxfp5MlfsfM1V5E/iVt0MmEbWQ7FVIXh/bg==" - }, - "node_modules/dagre-d3/node_modules/d3-polygon": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/d3-polygon/-/d3-polygon-1.0.6.tgz", - "integrity": "sha512-k+RF7WvI08PC8reEoXa/w2nSg5AUMTi+peBD9cmFc+0ixHfbs4QmxxkarVal1IkVkgxVuk9JSHhJURHiyHKAuQ==" - }, - "node_modules/dagre-d3/node_modules/d3-quadtree": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/d3-quadtree/-/d3-quadtree-1.0.7.tgz", - "integrity": "sha512-RKPAeXnkC59IDGD0Wu5mANy0Q2V28L+fNe65pOCXVdVuTJS3WPKaJlFHer32Rbh9gIo9qMuJXio8ra4+YmIymA==" - }, - "node_modules/dagre-d3/node_modules/d3-random": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/d3-random/-/d3-random-1.1.2.tgz", - "integrity": "sha512-6AK5BNpIFqP+cx/sreKzNjWbwZQCSUatxq+pPRmFIQaWuoD+NrbVWw7YWpHiXpCQ/NanKdtGDuB+VQcZDaEmYQ==" - }, - "node_modules/dagre-d3/node_modules/d3-scale": { - "version": "2.2.2", - "resolved": "https://registry.npmjs.org/d3-scale/-/d3-scale-2.2.2.tgz", - "integrity": "sha512-LbeEvGgIb8UMcAa0EATLNX0lelKWGYDQiPdHj+gLblGVhGLyNbaCn3EvrJf0A3Y/uOOU5aD6MTh5ZFCdEwGiCw==", - "dependencies": { - "d3-array": "^1.2.0", - "d3-collection": "1", - "d3-format": "1", - "d3-interpolate": "1", - "d3-time": "1", - "d3-time-format": "2" - } - }, - "node_modules/dagre-d3/node_modules/d3-scale-chromatic": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/d3-scale-chromatic/-/d3-scale-chromatic-1.5.0.tgz", - "integrity": "sha512-ACcL46DYImpRFMBcpk9HhtIyC7bTBR4fNOPxwVSl0LfulDAwyiHyPOTqcDG1+t5d4P9W7t/2NAuWu59aKko/cg==", - "dependencies": { - "d3-color": "1", - "d3-interpolate": "1" - } - }, - "node_modules/dagre-d3/node_modules/d3-selection": { - "version": "1.4.2", - "resolved": "https://registry.npmjs.org/d3-selection/-/d3-selection-1.4.2.tgz", - "integrity": "sha512-SJ0BqYihzOjDnnlfyeHT0e30k0K1+5sR3d5fNueCNeuhZTnGw4M4o8mqJchSwgKMXCNFo+e2VTChiSJ0vYtXkg==" - }, - "node_modules/dagre-d3/node_modules/d3-shape": { - "version": "1.3.7", - "resolved": "https://registry.npmjs.org/d3-shape/-/d3-shape-1.3.7.tgz", - "integrity": "sha512-EUkvKjqPFUAZyOlhY5gzCxCeI0Aep04LwIRpsZ/mLFelJiUfnK56jo5JMDSE7yyP2kLSb6LtF+S5chMk7uqPqw==", - "dependencies": { - "d3-path": "1" - } - }, - "node_modules/dagre-d3/node_modules/d3-time": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/d3-time/-/d3-time-1.1.0.tgz", - "integrity": "sha512-Xh0isrZ5rPYYdqhAVk8VLnMEidhz5aP7htAADH6MfzgmmicPkTo8LhkLxci61/lCB7n7UmE3bN0leRt+qvkLxA==" - }, - "node_modules/dagre-d3/node_modules/d3-time-format": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/d3-time-format/-/d3-time-format-2.3.0.tgz", - "integrity": "sha512-guv6b2H37s2Uq/GefleCDtbe0XZAuy7Wa49VGkPVPMfLL9qObgBST3lEHJBMUp8S7NdLQAGIvr2KXk8Hc98iKQ==", - "dependencies": { - "d3-time": "1" - } - }, - "node_modules/dagre-d3/node_modules/d3-timer": { - "version": "1.0.10", - "resolved": "https://registry.npmjs.org/d3-timer/-/d3-timer-1.0.10.tgz", - "integrity": "sha512-B1JDm0XDaQC+uvo4DT79H0XmBskgS3l6Ve+1SBCfxgmtIb1AVrPIoqd+nPSv+loMX8szQ0sVUhGngL7D5QPiXw==" - }, - "node_modules/dagre-d3/node_modules/d3-transition": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/d3-transition/-/d3-transition-1.3.2.tgz", - "integrity": "sha512-sc0gRU4PFqZ47lPVHloMn9tlPcv8jxgOQg+0zjhfZXMQuvppjG6YuwdMBE0TuqCZjeJkLecku/l9R0JPcRhaDA==", - "dependencies": { - "d3-color": "1", - "d3-dispatch": "1", - "d3-ease": "1", - "d3-interpolate": "1", - "d3-selection": "^1.1.0", - "d3-timer": "1" - } - }, - "node_modules/dagre-d3/node_modules/d3-zoom": { - "version": "1.8.3", - "resolved": "https://registry.npmjs.org/d3-zoom/-/d3-zoom-1.8.3.tgz", - "integrity": "sha512-VoLXTK4wvy1a0JpH2Il+F2CiOhVu7VRXWF5M/LroMIh3/zBAC3WAt7QoIvPibOavVo20hN6/37vwAsdBejLyKQ==", - "dependencies": { - "d3-dispatch": "1", - "d3-drag": "1", - "d3-interpolate": "1", - "d3-selection": "1", - "d3-transition": "1" - } - }, - "node_modules/dagre-d3/node_modules/iconv-lite": { - "version": "0.4.24", - "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", - "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", - "dependencies": { - "safer-buffer": ">= 2.1.2 < 3" - }, - "engines": { - "node": ">=0.10.0" - } + "node_modules/dayjs": { + "version": "1.11.11", + "resolved": "https://registry.npmjs.org/dayjs/-/dayjs-1.11.11.tgz", + "integrity": "sha512-okzr3f11N6WuqYtZSvm+F776mB41wRZMhKP+hc34YdW+KmtYYK9iqvHSwo2k9FEH3fhGXvOPV6yz2IcSrfRUDg==" }, "node_modules/debounce": { "version": "1.2.1", @@ -7774,14 +8794,28 @@ } }, "node_modules/decompress-response": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-3.3.0.tgz", - "integrity": "sha512-BzRPQuY1ip+qDonAOz42gRm/pg9F768C+npV/4JOsxRC2sq+Rlk+Q4ZCAsOhnIaMrgarILY+RMUIvMmmX1qAEA==", + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-6.0.0.tgz", + "integrity": "sha512-aW35yZM6Bb/4oJlZncMH2LCoZtJXTRxES17vE3hoRiowU2kWHaJKFkSBDnDR+cm9J+9QhXmREyIfv0pji9ejCQ==", "dependencies": { - "mimic-response": "^1.0.0" + "mimic-response": "^3.1.0" }, "engines": { - "node": ">=4" + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/decompress-response/node_modules/mimic-response": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-3.1.0.tgz", + "integrity": "sha512-z0yWI+4FDrrweS8Zmt4Ej5HdJmky15+L2e6Wgn3+iK5fWzb6T3fhNFq2+MeTRb064c6Wr4N/wv0DzQTjNzHNGQ==", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/deep-extend": { @@ -7853,9 +8887,12 @@ } }, "node_modules/defer-to-connect": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/defer-to-connect/-/defer-to-connect-1.1.3.tgz", - "integrity": "sha512-0ISdNousHvZT2EiFlZeZAHBUvSxmKswVCEf8hW7KWgG4a8MVEu/3Vb6uWYozkjylyCxe0JBIiRB1jV45S70WVQ==" + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/defer-to-connect/-/defer-to-connect-2.0.1.tgz", + "integrity": "sha512-4tvttepXG1VaYGrRibk5EwJd1t4udunSOVMdLSAL6mId1ix438oPwPZMALY41FCijukO1L0twNcGsdzS7dHgDg==", + "engines": { + "node": ">=10" + } }, "node_modules/define-data-property": { "version": "1.1.1", @@ -7957,18 +8994,6 @@ "npm": "1.2.8000 || >= 1.4.16" } }, - "node_modules/detab": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/detab/-/detab-2.0.4.tgz", - "integrity": "sha512-8zdsQA5bIkoRECvCrNKPla84lyoR7DSAyf7p0YgXzBO9PDJx8KntPUay7NS6yp+KdxdVtiE5SpHKtbp2ZQyA9g==", - "dependencies": { - "repeat-string": "^1.5.4" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" - } - }, "node_modules/detect-node": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/detect-node/-/detect-node-2.1.0.tgz", @@ -8016,6 +9041,18 @@ "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" }, + "node_modules/devlop": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/devlop/-/devlop-1.1.0.tgz", + "integrity": "sha512-RWmIqhcFf1lRYBvNmr7qTNuyCt/7/ns2jbpp1+PalgE/rDQcBT0fioSMUpJ93irlUhC5hrg4cYqe6U+0ImW0rA==", + "dependencies": { + "dequal": "^2.0.0" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, "node_modules/diff": { "version": "5.1.0", "resolved": "https://registry.npmjs.org/diff/-/diff-5.1.0.tgz", @@ -8067,22 +9104,23 @@ } }, "node_modules/docusaurus-plugin-openapi-docs": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/docusaurus-plugin-openapi-docs/-/docusaurus-plugin-openapi-docs-2.0.2.tgz", - "integrity": "sha512-gxxZd3LFhFDqlX78HqvA/suvpdbK3MDUFXolYeDnxpAXvTQrhtgEyv6ubiIqddLyGGfneMRVmGkhsKmtgMZzRg==", + "version": "3.0.0-beta.10", + "resolved": "https://registry.npmjs.org/docusaurus-plugin-openapi-docs/-/docusaurus-plugin-openapi-docs-3.0.0-beta.10.tgz", + "integrity": "sha512-BtMBH4TzCiMM0WbO2ZAMXSuL7Ge9yyASZhAycb5vX+KSUnUgp47/Ex2f6/evBfaadnr6vXYEr1UBT1fSiJYh5w==", "dependencies": { - "@apidevtools/json-schema-ref-parser": "^10.1.0", - "@docusaurus/plugin-content-docs": ">=2.4.1 <=2.4.3", - "@docusaurus/utils": ">=2.4.1 <=2.4.3", - "@docusaurus/utils-validation": ">=2.4.1 <=2.4.3", + "@apidevtools/json-schema-ref-parser": "^11.5.4", + "@docusaurus/plugin-content-docs": "^3.0.1", + "@docusaurus/utils": "^3.0.1", + "@docusaurus/utils-validation": "^3.0.1", "@paloaltonetworks/openapi-to-postmanv2": "3.1.0-hotfix.1", "@paloaltonetworks/postman-collection": "^4.1.0", - "@redocly/openapi-core": "^1.0.0-beta.125", + "@redocly/openapi-core": "^1.10.5", "chalk": "^4.1.2", "clsx": "^1.1.1", "fs-extra": "^9.0.1", "json-pointer": "^0.6.2", "json-schema-merge-allof": "^0.8.1", + "json5": "^2.2.3", "lodash": "^4.17.20", "mustache": "^4.2.0", "slugify": "^1.6.5", @@ -8096,6 +9134,454 @@ "react": "^16.8.4 || ^17.0.0 || ^18.0.0" } }, + "node_modules/docusaurus-plugin-openapi-docs/node_modules/@docusaurus/logger": { + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/@docusaurus/logger/-/logger-3.4.0.tgz", + "integrity": "sha512-bZwkX+9SJ8lB9kVRkXw+xvHYSMGG4bpYHKGXeXFvyVc79NMeeBSGgzd4TQLHH+DYeOJoCdl8flrFJVxlZ0wo/Q==", + "dependencies": { + "chalk": "^4.1.2", + "tslib": "^2.6.0" + }, + "engines": { + "node": ">=18.0" + } + }, + "node_modules/docusaurus-plugin-openapi-docs/node_modules/@docusaurus/utils": { + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/@docusaurus/utils/-/utils-3.4.0.tgz", + "integrity": "sha512-fRwnu3L3nnWaXOgs88BVBmG1yGjcQqZNHG+vInhEa2Sz2oQB+ZjbEMO5Rh9ePFpZ0YDiDUhpaVjwmS+AU2F14g==", + "dependencies": { + "@docusaurus/logger": "3.4.0", + "@docusaurus/utils-common": "3.4.0", + "@svgr/webpack": "^8.1.0", + "escape-string-regexp": "^4.0.0", + "file-loader": "^6.2.0", + "fs-extra": "^11.1.1", + "github-slugger": "^1.5.0", + "globby": "^11.1.0", + "gray-matter": "^4.0.3", + "jiti": "^1.20.0", + "js-yaml": "^4.1.0", + "lodash": "^4.17.21", + "micromatch": "^4.0.5", + "prompts": "^2.4.2", + "resolve-pathname": "^3.0.0", + "shelljs": "^0.8.5", + "tslib": "^2.6.0", + "url-loader": "^4.1.1", + "utility-types": "^3.10.0", + "webpack": "^5.88.1" + }, + "engines": { + "node": ">=18.0" + }, + "peerDependencies": { + "@docusaurus/types": "*" + }, + "peerDependenciesMeta": { + "@docusaurus/types": { + "optional": true + } + } + }, + "node_modules/docusaurus-plugin-openapi-docs/node_modules/@docusaurus/utils-common": { + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/@docusaurus/utils-common/-/utils-common-3.4.0.tgz", + "integrity": "sha512-NVx54Wr4rCEKsjOH5QEVvxIqVvm+9kh7q8aYTU5WzUU9/Hctd6aTrcZ3G0Id4zYJ+AeaG5K5qHA4CY5Kcm2iyQ==", + "dependencies": { + "tslib": "^2.6.0" + }, + "engines": { + "node": ">=18.0" + }, + "peerDependencies": { + "@docusaurus/types": "*" + }, + "peerDependenciesMeta": { + "@docusaurus/types": { + "optional": true + } + } + }, + "node_modules/docusaurus-plugin-openapi-docs/node_modules/@docusaurus/utils-validation": { + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/@docusaurus/utils-validation/-/utils-validation-3.4.0.tgz", + "integrity": "sha512-hYQ9fM+AXYVTWxJOT1EuNaRnrR2WGpRdLDQG07O8UOpsvCPWUVOeo26Rbm0JWY2sGLfzAb+tvJ62yF+8F+TV0g==", + "dependencies": { + "@docusaurus/logger": "3.4.0", + "@docusaurus/utils": "3.4.0", + "@docusaurus/utils-common": "3.4.0", + "fs-extra": "^11.2.0", + "joi": "^17.9.2", + "js-yaml": "^4.1.0", + "lodash": "^4.17.21", + "tslib": "^2.6.0" + }, + "engines": { + "node": ">=18.0" + } + }, + "node_modules/docusaurus-plugin-openapi-docs/node_modules/@docusaurus/utils-validation/node_modules/fs-extra": { + "version": "11.2.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-11.2.0.tgz", + "integrity": "sha512-PmDi3uwK5nFuXh7XDTlVnS17xJS7vW36is2+w3xcv8SVxiB4NyATf4ctkVY5bkSjX0Y4nbvZCq1/EjtEyr9ktw==", + "dependencies": { + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^2.0.0" + }, + "engines": { + "node": ">=14.14" + } + }, + "node_modules/docusaurus-plugin-openapi-docs/node_modules/@docusaurus/utils/node_modules/fs-extra": { + "version": "11.2.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-11.2.0.tgz", + "integrity": "sha512-PmDi3uwK5nFuXh7XDTlVnS17xJS7vW36is2+w3xcv8SVxiB4NyATf4ctkVY5bkSjX0Y4nbvZCq1/EjtEyr9ktw==", + "dependencies": { + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^2.0.0" + }, + "engines": { + "node": ">=14.14" + } + }, + "node_modules/docusaurus-plugin-openapi-docs/node_modules/@svgr/babel-plugin-add-jsx-attribute": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-add-jsx-attribute/-/babel-plugin-add-jsx-attribute-8.0.0.tgz", + "integrity": "sha512-b9MIk7yhdS1pMCZM8VeNfUlSKVRhsHZNMl5O9SfaX0l0t5wjdgu4IDzGB8bpnGBBOjGST3rRFVsaaEtI4W6f7g==", + "engines": { + "node": ">=14" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/gregberge" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/docusaurus-plugin-openapi-docs/node_modules/@svgr/babel-plugin-replace-jsx-attribute-value": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-replace-jsx-attribute-value/-/babel-plugin-replace-jsx-attribute-value-8.0.0.tgz", + "integrity": "sha512-KVQ+PtIjb1BuYT3ht8M5KbzWBhdAjjUPdlMtpuw/VjT8coTrItWX6Qafl9+ji831JaJcu6PJNKCV0bp01lBNzQ==", + "engines": { + "node": ">=14" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/gregberge" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/docusaurus-plugin-openapi-docs/node_modules/@svgr/babel-plugin-svg-dynamic-title": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-svg-dynamic-title/-/babel-plugin-svg-dynamic-title-8.0.0.tgz", + "integrity": "sha512-omNiKqwjNmOQJ2v6ge4SErBbkooV2aAWwaPFs2vUY7p7GhVkzRkJ00kILXQvRhA6miHnNpXv7MRnnSjdRjK8og==", + "engines": { + "node": ">=14" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/gregberge" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/docusaurus-plugin-openapi-docs/node_modules/@svgr/babel-plugin-svg-em-dimensions": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-svg-em-dimensions/-/babel-plugin-svg-em-dimensions-8.0.0.tgz", + "integrity": "sha512-mURHYnu6Iw3UBTbhGwE/vsngtCIbHE43xCRK7kCw4t01xyGqb2Pd+WXekRRoFOBIY29ZoOhUCTEweDMdrjfi9g==", + "engines": { + "node": ">=14" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/gregberge" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/docusaurus-plugin-openapi-docs/node_modules/@svgr/babel-plugin-transform-react-native-svg": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-transform-react-native-svg/-/babel-plugin-transform-react-native-svg-8.1.0.tgz", + "integrity": "sha512-Tx8T58CHo+7nwJ+EhUwx3LfdNSG9R2OKfaIXXs5soiy5HtgoAEkDay9LIimLOcG8dJQH1wPZp/cnAv6S9CrR1Q==", + "engines": { + "node": ">=14" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/gregberge" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/docusaurus-plugin-openapi-docs/node_modules/@svgr/babel-plugin-transform-svg-component": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-transform-svg-component/-/babel-plugin-transform-svg-component-8.0.0.tgz", + "integrity": "sha512-DFx8xa3cZXTdb/k3kfPeaixecQLgKh5NVBMwD0AQxOzcZawK4oo1Jh9LbrcACUivsCA7TLG8eeWgrDXjTMhRmw==", + "engines": { + "node": ">=12" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/gregberge" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/docusaurus-plugin-openapi-docs/node_modules/@svgr/babel-preset": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/@svgr/babel-preset/-/babel-preset-8.1.0.tgz", + "integrity": "sha512-7EYDbHE7MxHpv4sxvnVPngw5fuR6pw79SkcrILHJ/iMpuKySNCl5W1qcwPEpU+LgyRXOaAFgH0KhwD18wwg6ug==", + "dependencies": { + "@svgr/babel-plugin-add-jsx-attribute": "8.0.0", + "@svgr/babel-plugin-remove-jsx-attribute": "8.0.0", + "@svgr/babel-plugin-remove-jsx-empty-expression": "8.0.0", + "@svgr/babel-plugin-replace-jsx-attribute-value": "8.0.0", + "@svgr/babel-plugin-svg-dynamic-title": "8.0.0", + "@svgr/babel-plugin-svg-em-dimensions": "8.0.0", + "@svgr/babel-plugin-transform-react-native-svg": "8.1.0", + "@svgr/babel-plugin-transform-svg-component": "8.0.0" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/gregberge" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/docusaurus-plugin-openapi-docs/node_modules/@svgr/core": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/@svgr/core/-/core-8.1.0.tgz", + "integrity": "sha512-8QqtOQT5ACVlmsvKOJNEaWmRPmcojMOzCz4Hs2BGG/toAp/K38LcsMRyLp349glq5AzJbCEeimEoxaX6v/fLrA==", + "dependencies": { + "@babel/core": "^7.21.3", + "@svgr/babel-preset": "8.1.0", + "camelcase": "^6.2.0", + "cosmiconfig": "^8.1.3", + "snake-case": "^3.0.4" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/gregberge" + } + }, + "node_modules/docusaurus-plugin-openapi-docs/node_modules/@svgr/hast-util-to-babel-ast": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/@svgr/hast-util-to-babel-ast/-/hast-util-to-babel-ast-8.0.0.tgz", + "integrity": "sha512-EbDKwO9GpfWP4jN9sGdYwPBU0kdomaPIL2Eu4YwmgP+sJeXT+L7bMwJUBnhzfH8Q2qMBqZ4fJwpCyYsAN3mt2Q==", + "dependencies": { + "@babel/types": "^7.21.3", + "entities": "^4.4.0" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/gregberge" + } + }, + "node_modules/docusaurus-plugin-openapi-docs/node_modules/@svgr/plugin-jsx": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/@svgr/plugin-jsx/-/plugin-jsx-8.1.0.tgz", + "integrity": "sha512-0xiIyBsLlr8quN+WyuxooNW9RJ0Dpr8uOnH/xrCVO8GLUcwHISwj1AG0k+LFzteTkAA0GbX0kj9q6Dk70PTiPA==", + "dependencies": { + "@babel/core": "^7.21.3", + "@svgr/babel-preset": "8.1.0", + "@svgr/hast-util-to-babel-ast": "8.0.0", + "svg-parser": "^2.0.4" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/gregberge" + }, + "peerDependencies": { + "@svgr/core": "*" + } + }, + "node_modules/docusaurus-plugin-openapi-docs/node_modules/@svgr/plugin-svgo": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/@svgr/plugin-svgo/-/plugin-svgo-8.1.0.tgz", + "integrity": "sha512-Ywtl837OGO9pTLIN/onoWLmDQ4zFUycI1g76vuKGEz6evR/ZTJlJuz3G/fIkb6OVBJ2g0o6CGJzaEjfmEo3AHA==", + "dependencies": { + "cosmiconfig": "^8.1.3", + "deepmerge": "^4.3.1", + "svgo": "^3.0.2" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/gregberge" + }, + "peerDependencies": { + "@svgr/core": "*" + } + }, + "node_modules/docusaurus-plugin-openapi-docs/node_modules/@svgr/webpack": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/@svgr/webpack/-/webpack-8.1.0.tgz", + "integrity": "sha512-LnhVjMWyMQV9ZmeEy26maJk+8HTIbd59cH4F2MJ439k9DqejRisfFNGAPvRYlKETuh9LrImlS8aKsBgKjMA8WA==", + "dependencies": { + "@babel/core": "^7.21.3", + "@babel/plugin-transform-react-constant-elements": "^7.21.3", + "@babel/preset-env": "^7.20.2", + "@babel/preset-react": "^7.18.6", + "@babel/preset-typescript": "^7.21.0", + "@svgr/core": "8.1.0", + "@svgr/plugin-jsx": "8.1.0", + "@svgr/plugin-svgo": "8.1.0" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/gregberge" + } + }, + "node_modules/docusaurus-plugin-openapi-docs/node_modules/cosmiconfig": { + "version": "8.3.6", + "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-8.3.6.tgz", + "integrity": "sha512-kcZ6+W5QzcJ3P1Mt+83OUv/oHFqZHIx8DuxG6eZ5RGMERoLqp4BuGjhHLYGK+Kf5XVkQvqBSmAy/nGWN3qDgEA==", + "dependencies": { + "import-fresh": "^3.3.0", + "js-yaml": "^4.1.0", + "parse-json": "^5.2.0", + "path-type": "^4.0.0" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/d-fischer" + }, + "peerDependencies": { + "typescript": ">=4.9.5" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/docusaurus-plugin-openapi-docs/node_modules/css-select": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/css-select/-/css-select-5.1.0.tgz", + "integrity": "sha512-nwoRF1rvRRnnCqqY7updORDsuqKzqYJ28+oSMaJMMgOauh3fvwHqMS7EZpIPqK8GL+g9mKxF1vP/ZjSeNjEVHg==", + "dependencies": { + "boolbase": "^1.0.0", + "css-what": "^6.1.0", + "domhandler": "^5.0.2", + "domutils": "^3.0.1", + "nth-check": "^2.0.1" + }, + "funding": { + "url": "https://github.com/sponsors/fb55" + } + }, + "node_modules/docusaurus-plugin-openapi-docs/node_modules/css-tree": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/css-tree/-/css-tree-2.3.1.tgz", + "integrity": "sha512-6Fv1DV/TYw//QF5IzQdqsNDjx/wc8TrMBZsqjL9eW01tWb7R7k/mq+/VXfJCl7SoD5emsJop9cOByJZfs8hYIw==", + "dependencies": { + "mdn-data": "2.0.30", + "source-map-js": "^1.0.1" + }, + "engines": { + "node": "^10 || ^12.20.0 || ^14.13.0 || >=15.0.0" + } + }, + "node_modules/docusaurus-plugin-openapi-docs/node_modules/csso": { + "version": "5.0.5", + "resolved": "https://registry.npmjs.org/csso/-/csso-5.0.5.tgz", + "integrity": "sha512-0LrrStPOdJj+SPCCrGhzryycLjwcgUSHBtxNA8aIDxf0GLsRh1cKYhB00Gd1lDOS4yGH69+SNn13+TWbVHETFQ==", + "dependencies": { + "css-tree": "~2.2.0" + }, + "engines": { + "node": "^10 || ^12.20.0 || ^14.13.0 || >=15.0.0", + "npm": ">=7.0.0" + } + }, + "node_modules/docusaurus-plugin-openapi-docs/node_modules/csso/node_modules/css-tree": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/css-tree/-/css-tree-2.2.1.tgz", + "integrity": "sha512-OA0mILzGc1kCOCSJerOeqDxDQ4HOh+G8NbOJFOTgOCzpw7fCBubk0fEyxp8AgOL/jvLgYA/uV0cMbe43ElF1JA==", + "dependencies": { + "mdn-data": "2.0.28", + "source-map-js": "^1.0.1" + }, + "engines": { + "node": "^10 || ^12.20.0 || ^14.13.0 || >=15.0.0", + "npm": ">=7.0.0" + } + }, + "node_modules/docusaurus-plugin-openapi-docs/node_modules/csso/node_modules/mdn-data": { + "version": "2.0.28", + "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.28.tgz", + "integrity": "sha512-aylIc7Z9y4yzHYAJNuESG3hfhC+0Ibp/MAMiaOZgNv4pmEdFyfZhhhny4MNiAfWdBQ1RQ2mfDWmM1x8SvGyp8g==" + }, + "node_modules/docusaurus-plugin-openapi-docs/node_modules/dom-serializer": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-2.0.0.tgz", + "integrity": "sha512-wIkAryiqt/nV5EQKqQpo3SToSOV9J0DnbJqwK7Wv/Trc92zIAYZ4FlMu+JPFW1DfGFt81ZTCGgDEabffXeLyJg==", + "dependencies": { + "domelementtype": "^2.3.0", + "domhandler": "^5.0.2", + "entities": "^4.2.0" + }, + "funding": { + "url": "https://github.com/cheeriojs/dom-serializer?sponsor=1" + } + }, + "node_modules/docusaurus-plugin-openapi-docs/node_modules/domhandler": { + "version": "5.0.3", + "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-5.0.3.tgz", + "integrity": "sha512-cgwlv/1iFQiFnU96XXgROh8xTeetsnJiDsTc7TYCLFd9+/WNkIqPTxiM/8pSd8VIrhXGTf1Ny1q1hquVqDJB5w==", + "dependencies": { + "domelementtype": "^2.3.0" + }, + "engines": { + "node": ">= 4" + }, + "funding": { + "url": "https://github.com/fb55/domhandler?sponsor=1" + } + }, + "node_modules/docusaurus-plugin-openapi-docs/node_modules/domutils": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/domutils/-/domutils-3.1.0.tgz", + "integrity": "sha512-H78uMmQtI2AhgDJjWeQmHwJJ2bLPD3GMmO7Zja/ZZh84wkm+4ut+IUnUdRa8uCGX88DiVx1j6FRe1XfxEgjEZA==", + "dependencies": { + "dom-serializer": "^2.0.0", + "domelementtype": "^2.3.0", + "domhandler": "^5.0.3" + }, + "funding": { + "url": "https://github.com/fb55/domutils?sponsor=1" + } + }, "node_modules/docusaurus-plugin-openapi-docs/node_modules/fs-extra": { "version": "9.1.0", "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-9.1.0.tgz", @@ -8110,6 +9596,43 @@ "node": ">=10" } }, + "node_modules/docusaurus-plugin-openapi-docs/node_modules/mdn-data": { + "version": "2.0.30", + "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.30.tgz", + "integrity": "sha512-GaqWWShW4kv/G9IEucWScBx9G1/vsFZZJUO+tD26M8J8z3Kw5RDQjaoZe03YAClgeS/SWPOcb4nkFBTEi5DUEA==" + }, + "node_modules/docusaurus-plugin-openapi-docs/node_modules/svgo": { + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/svgo/-/svgo-3.3.2.tgz", + "integrity": "sha512-OoohrmuUlBs8B8o6MB2Aevn+pRIH9zDALSR+6hhqVfa6fRwG/Qw9VUMSMW9VNg2CFc/MTIfabtdOVl9ODIJjpw==", + "dependencies": { + "@trysound/sax": "0.2.0", + "commander": "^7.2.0", + "css-select": "^5.1.0", + "css-tree": "^2.3.1", + "css-what": "^6.1.0", + "csso": "^5.0.5", + "picocolors": "^1.0.0" + }, + "bin": { + "svgo": "bin/svgo" + }, + "engines": { + "node": ">=14.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/svgo" + } + }, + "node_modules/docusaurus-plugin-openapi-docs/node_modules/svgo/node_modules/commander": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-7.2.0.tgz", + "integrity": "sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw==", + "engines": { + "node": ">= 10" + } + }, "node_modules/docusaurus-plugin-sass": { "version": "0.2.5", "resolved": "https://registry.npmjs.org/docusaurus-plugin-sass/-/docusaurus-plugin-sass-0.2.5.tgz", @@ -8204,24 +9727,24 @@ } }, "node_modules/docusaurus-theme-openapi-docs": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/docusaurus-theme-openapi-docs/-/docusaurus-theme-openapi-docs-2.0.2.tgz", - "integrity": "sha512-6EUUjKeLrt1XpeCrdw1RmGlWG5zZYeT29zLlL7tJhsvUeefDtCKpenixkTzlFaPs9raCDjWiq44m8AAiGM7PSg==", + "version": "3.0.0-beta.10", + "resolved": "https://registry.npmjs.org/docusaurus-theme-openapi-docs/-/docusaurus-theme-openapi-docs-3.0.0-beta.10.tgz", + "integrity": "sha512-8oUMMZSrRJ9EssrjWwbM9aYuHOt1AAm6wQDzWr8k6VvefGvVAibg4Y9PK7GeZ243lJikq9s45KqUA0SMwsm+Fg==", "dependencies": { - "@docusaurus/theme-common": ">=2.4.1 <=2.4.3", + "@docusaurus/theme-common": "^3.0.1", "@hookform/error-message": "^2.0.1", "@paloaltonetworks/postman-code-generators": "1.1.15-patch.2", "@paloaltonetworks/postman-collection": "^4.1.0", "@reduxjs/toolkit": "^1.7.1", "clsx": "^1.1.1", "copy-text-to-clipboard": "^3.1.0", - "crypto-js": "^4.2.0", - "docusaurus-plugin-openapi-docs": "^2.0.2", + "crypto-js": "^4.1.1", + "docusaurus-plugin-openapi-docs": "^3.0.0-beta.10", "docusaurus-plugin-sass": "^0.2.3", "file-saver": "^2.0.5", "lodash": "^4.17.20", "node-polyfill-webpack-plugin": "^2.0.1", - "prism-react-renderer": "^1.3.5", + "prism-react-renderer": "^2.3.0", "react-hook-form": "^7.43.8", "react-live": "^4.0.0", "react-magic-dropzone": "^1.0.1", @@ -8242,6 +9765,1359 @@ "react-dom": "^16.8.4 || ^17.0.0 || ^18.0.0" } }, + "node_modules/docusaurus-theme-openapi-docs/node_modules/@docusaurus/core": { + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/@docusaurus/core/-/core-3.4.0.tgz", + "integrity": "sha512-g+0wwmN2UJsBqy2fQRQ6fhXruoEa62JDeEa5d8IdTJlMoaDaEDfHh7WjwGRn4opuTQWpjAwP/fbcgyHKlE+64w==", + "dependencies": { + "@babel/core": "^7.23.3", + "@babel/generator": "^7.23.3", + "@babel/plugin-syntax-dynamic-import": "^7.8.3", + "@babel/plugin-transform-runtime": "^7.22.9", + "@babel/preset-env": "^7.22.9", + "@babel/preset-react": "^7.22.5", + "@babel/preset-typescript": "^7.22.5", + "@babel/runtime": "^7.22.6", + "@babel/runtime-corejs3": "^7.22.6", + "@babel/traverse": "^7.22.8", + "@docusaurus/cssnano-preset": "3.4.0", + "@docusaurus/logger": "3.4.0", + "@docusaurus/mdx-loader": "3.4.0", + "@docusaurus/utils": "3.4.0", + "@docusaurus/utils-common": "3.4.0", + "@docusaurus/utils-validation": "3.4.0", + "autoprefixer": "^10.4.14", + "babel-loader": "^9.1.3", + "babel-plugin-dynamic-import-node": "^2.3.3", + "boxen": "^6.2.1", + "chalk": "^4.1.2", + "chokidar": "^3.5.3", + "clean-css": "^5.3.2", + "cli-table3": "^0.6.3", + "combine-promises": "^1.1.0", + "commander": "^5.1.0", + "copy-webpack-plugin": "^11.0.0", + "core-js": "^3.31.1", + "css-loader": "^6.8.1", + "css-minimizer-webpack-plugin": "^5.0.1", + "cssnano": "^6.1.2", + "del": "^6.1.1", + "detect-port": "^1.5.1", + "escape-html": "^1.0.3", + "eta": "^2.2.0", + "eval": "^0.1.8", + "file-loader": "^6.2.0", + "fs-extra": "^11.1.1", + "html-minifier-terser": "^7.2.0", + "html-tags": "^3.3.1", + "html-webpack-plugin": "^5.5.3", + "leven": "^3.1.0", + "lodash": "^4.17.21", + "mini-css-extract-plugin": "^2.7.6", + "p-map": "^4.0.0", + "postcss": "^8.4.26", + "postcss-loader": "^7.3.3", + "prompts": "^2.4.2", + "react-dev-utils": "^12.0.1", + "react-helmet-async": "^1.3.0", + "react-loadable": "npm:@docusaurus/react-loadable@6.0.0", + "react-loadable-ssr-addon-v5-slorber": "^1.0.1", + "react-router": "^5.3.4", + "react-router-config": "^5.1.1", + "react-router-dom": "^5.3.4", + "rtl-detect": "^1.0.4", + "semver": "^7.5.4", + "serve-handler": "^6.1.5", + "shelljs": "^0.8.5", + "terser-webpack-plugin": "^5.3.9", + "tslib": "^2.6.0", + "update-notifier": "^6.0.2", + "url-loader": "^4.1.1", + "webpack": "^5.88.1", + "webpack-bundle-analyzer": "^4.9.0", + "webpack-dev-server": "^4.15.1", + "webpack-merge": "^5.9.0", + "webpackbar": "^5.0.2" + }, + "bin": { + "docusaurus": "bin/docusaurus.mjs" + }, + "engines": { + "node": ">=18.0" + }, + "peerDependencies": { + "react": "^18.0.0", + "react-dom": "^18.0.0" + } + }, + "node_modules/docusaurus-theme-openapi-docs/node_modules/@docusaurus/cssnano-preset": { + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/@docusaurus/cssnano-preset/-/cssnano-preset-3.4.0.tgz", + "integrity": "sha512-qwLFSz6v/pZHy/UP32IrprmH5ORce86BGtN0eBtG75PpzQJAzp9gefspox+s8IEOr0oZKuQ/nhzZ3xwyc3jYJQ==", + "dependencies": { + "cssnano-preset-advanced": "^6.1.2", + "postcss": "^8.4.38", + "postcss-sort-media-queries": "^5.2.0", + "tslib": "^2.6.0" + }, + "engines": { + "node": ">=18.0" + } + }, + "node_modules/docusaurus-theme-openapi-docs/node_modules/@docusaurus/logger": { + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/@docusaurus/logger/-/logger-3.4.0.tgz", + "integrity": "sha512-bZwkX+9SJ8lB9kVRkXw+xvHYSMGG4bpYHKGXeXFvyVc79NMeeBSGgzd4TQLHH+DYeOJoCdl8flrFJVxlZ0wo/Q==", + "dependencies": { + "chalk": "^4.1.2", + "tslib": "^2.6.0" + }, + "engines": { + "node": ">=18.0" + } + }, + "node_modules/docusaurus-theme-openapi-docs/node_modules/@docusaurus/mdx-loader": { + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/@docusaurus/mdx-loader/-/mdx-loader-3.4.0.tgz", + "integrity": "sha512-kSSbrrk4nTjf4d+wtBA9H+FGauf2gCax89kV8SUSJu3qaTdSIKdWERlngsiHaCFgZ7laTJ8a67UFf+xlFPtuTw==", + "dependencies": { + "@docusaurus/logger": "3.4.0", + "@docusaurus/utils": "3.4.0", + "@docusaurus/utils-validation": "3.4.0", + "@mdx-js/mdx": "^3.0.0", + "@slorber/remark-comment": "^1.0.0", + "escape-html": "^1.0.3", + "estree-util-value-to-estree": "^3.0.1", + "file-loader": "^6.2.0", + "fs-extra": "^11.1.1", + "image-size": "^1.0.2", + "mdast-util-mdx": "^3.0.0", + "mdast-util-to-string": "^4.0.0", + "rehype-raw": "^7.0.0", + "remark-directive": "^3.0.0", + "remark-emoji": "^4.0.0", + "remark-frontmatter": "^5.0.0", + "remark-gfm": "^4.0.0", + "stringify-object": "^3.3.0", + "tslib": "^2.6.0", + "unified": "^11.0.3", + "unist-util-visit": "^5.0.0", + "url-loader": "^4.1.1", + "vfile": "^6.0.1", + "webpack": "^5.88.1" + }, + "engines": { + "node": ">=18.0" + }, + "peerDependencies": { + "react": "^18.0.0", + "react-dom": "^18.0.0" + } + }, + "node_modules/docusaurus-theme-openapi-docs/node_modules/@docusaurus/mdx-loader/node_modules/rehype-raw": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/rehype-raw/-/rehype-raw-7.0.0.tgz", + "integrity": "sha512-/aE8hCfKlQeA8LmyeyQvQF3eBiLRGNlfBJEvWH7ivp9sBqs7TNqBL5X3v157rM4IFETqDnIOO+z5M/biZbo9Ww==", + "dependencies": { + "@types/hast": "^3.0.0", + "hast-util-raw": "^9.0.0", + "vfile": "^6.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/docusaurus-theme-openapi-docs/node_modules/@docusaurus/module-type-aliases": { + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/@docusaurus/module-type-aliases/-/module-type-aliases-3.4.0.tgz", + "integrity": "sha512-A1AyS8WF5Bkjnb8s+guTDuYmUiwJzNrtchebBHpc0gz0PyHJNMaybUlSrmJjHVcGrya0LKI4YcR3lBDQfXRYLw==", + "dependencies": { + "@docusaurus/types": "3.4.0", + "@types/history": "^4.7.11", + "@types/react": "*", + "@types/react-router-config": "*", + "@types/react-router-dom": "*", + "react-helmet-async": "*", + "react-loadable": "npm:@docusaurus/react-loadable@6.0.0" + }, + "peerDependencies": { + "react": "*", + "react-dom": "*" + } + }, + "node_modules/docusaurus-theme-openapi-docs/node_modules/@docusaurus/plugin-content-blog": { + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/@docusaurus/plugin-content-blog/-/plugin-content-blog-3.4.0.tgz", + "integrity": "sha512-vv6ZAj78ibR5Jh7XBUT4ndIjmlAxkijM3Sx5MAAzC1gyv0vupDQNhzuFg1USQmQVj3P5I6bquk12etPV3LJ+Xw==", + "dependencies": { + "@docusaurus/core": "3.4.0", + "@docusaurus/logger": "3.4.0", + "@docusaurus/mdx-loader": "3.4.0", + "@docusaurus/types": "3.4.0", + "@docusaurus/utils": "3.4.0", + "@docusaurus/utils-common": "3.4.0", + "@docusaurus/utils-validation": "3.4.0", + "cheerio": "^1.0.0-rc.12", + "feed": "^4.2.2", + "fs-extra": "^11.1.1", + "lodash": "^4.17.21", + "reading-time": "^1.5.0", + "srcset": "^4.0.0", + "tslib": "^2.6.0", + "unist-util-visit": "^5.0.0", + "utility-types": "^3.10.0", + "webpack": "^5.88.1" + }, + "engines": { + "node": ">=18.0" + }, + "peerDependencies": { + "react": "^18.0.0", + "react-dom": "^18.0.0" + } + }, + "node_modules/docusaurus-theme-openapi-docs/node_modules/@docusaurus/plugin-content-pages": { + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/@docusaurus/plugin-content-pages/-/plugin-content-pages-3.4.0.tgz", + "integrity": "sha512-h2+VN/0JjpR8fIkDEAoadNjfR3oLzB+v1qSXbIAKjQ46JAHx3X22n9nqS+BWSQnTnp1AjkjSvZyJMekmcwxzxg==", + "dependencies": { + "@docusaurus/core": "3.4.0", + "@docusaurus/mdx-loader": "3.4.0", + "@docusaurus/types": "3.4.0", + "@docusaurus/utils": "3.4.0", + "@docusaurus/utils-validation": "3.4.0", + "fs-extra": "^11.1.1", + "tslib": "^2.6.0", + "webpack": "^5.88.1" + }, + "engines": { + "node": ">=18.0" + }, + "peerDependencies": { + "react": "^18.0.0", + "react-dom": "^18.0.0" + } + }, + "node_modules/docusaurus-theme-openapi-docs/node_modules/@docusaurus/theme-common": { + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/@docusaurus/theme-common/-/theme-common-3.4.0.tgz", + "integrity": "sha512-0A27alXuv7ZdCg28oPE8nH/Iz73/IUejVaCazqu9elS4ypjiLhK3KfzdSQBnL/g7YfHSlymZKdiOHEo8fJ0qMA==", + "dependencies": { + "@docusaurus/mdx-loader": "3.4.0", + "@docusaurus/module-type-aliases": "3.4.0", + "@docusaurus/plugin-content-blog": "3.4.0", + "@docusaurus/plugin-content-docs": "3.4.0", + "@docusaurus/plugin-content-pages": "3.4.0", + "@docusaurus/utils": "3.4.0", + "@docusaurus/utils-common": "3.4.0", + "@types/history": "^4.7.11", + "@types/react": "*", + "@types/react-router-config": "*", + "clsx": "^2.0.0", + "parse-numeric-range": "^1.3.0", + "prism-react-renderer": "^2.3.0", + "tslib": "^2.6.0", + "utility-types": "^3.10.0" + }, + "engines": { + "node": ">=18.0" + }, + "peerDependencies": { + "react": "^18.0.0", + "react-dom": "^18.0.0" + } + }, + "node_modules/docusaurus-theme-openapi-docs/node_modules/@docusaurus/theme-common/node_modules/clsx": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/clsx/-/clsx-2.1.1.tgz", + "integrity": "sha512-eYm0QWBtUrBWZWG0d386OGAw16Z995PiOVo2B7bjWSbHedGl5e0ZWaq65kOGgUSNesEIDkB9ISbTg/JK9dhCZA==", + "engines": { + "node": ">=6" + } + }, + "node_modules/docusaurus-theme-openapi-docs/node_modules/@docusaurus/types": { + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/@docusaurus/types/-/types-3.4.0.tgz", + "integrity": "sha512-4jcDO8kXi5Cf9TcyikB/yKmz14f2RZ2qTRerbHAsS+5InE9ZgSLBNLsewtFTcTOXSVcbU3FoGOzcNWAmU1TR0A==", + "dependencies": { + "@mdx-js/mdx": "^3.0.0", + "@types/history": "^4.7.11", + "@types/react": "*", + "commander": "^5.1.0", + "joi": "^17.9.2", + "react-helmet-async": "^1.3.0", + "utility-types": "^3.10.0", + "webpack": "^5.88.1", + "webpack-merge": "^5.9.0" + }, + "peerDependencies": { + "react": "^18.0.0", + "react-dom": "^18.0.0" + } + }, + "node_modules/docusaurus-theme-openapi-docs/node_modules/@docusaurus/utils": { + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/@docusaurus/utils/-/utils-3.4.0.tgz", + "integrity": "sha512-fRwnu3L3nnWaXOgs88BVBmG1yGjcQqZNHG+vInhEa2Sz2oQB+ZjbEMO5Rh9ePFpZ0YDiDUhpaVjwmS+AU2F14g==", + "dependencies": { + "@docusaurus/logger": "3.4.0", + "@docusaurus/utils-common": "3.4.0", + "@svgr/webpack": "^8.1.0", + "escape-string-regexp": "^4.0.0", + "file-loader": "^6.2.0", + "fs-extra": "^11.1.1", + "github-slugger": "^1.5.0", + "globby": "^11.1.0", + "gray-matter": "^4.0.3", + "jiti": "^1.20.0", + "js-yaml": "^4.1.0", + "lodash": "^4.17.21", + "micromatch": "^4.0.5", + "prompts": "^2.4.2", + "resolve-pathname": "^3.0.0", + "shelljs": "^0.8.5", + "tslib": "^2.6.0", + "url-loader": "^4.1.1", + "utility-types": "^3.10.0", + "webpack": "^5.88.1" + }, + "engines": { + "node": ">=18.0" + }, + "peerDependencies": { + "@docusaurus/types": "*" + }, + "peerDependenciesMeta": { + "@docusaurus/types": { + "optional": true + } + } + }, + "node_modules/docusaurus-theme-openapi-docs/node_modules/@docusaurus/utils-common": { + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/@docusaurus/utils-common/-/utils-common-3.4.0.tgz", + "integrity": "sha512-NVx54Wr4rCEKsjOH5QEVvxIqVvm+9kh7q8aYTU5WzUU9/Hctd6aTrcZ3G0Id4zYJ+AeaG5K5qHA4CY5Kcm2iyQ==", + "dependencies": { + "tslib": "^2.6.0" + }, + "engines": { + "node": ">=18.0" + }, + "peerDependencies": { + "@docusaurus/types": "*" + }, + "peerDependenciesMeta": { + "@docusaurus/types": { + "optional": true + } + } + }, + "node_modules/docusaurus-theme-openapi-docs/node_modules/@docusaurus/utils-validation": { + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/@docusaurus/utils-validation/-/utils-validation-3.4.0.tgz", + "integrity": "sha512-hYQ9fM+AXYVTWxJOT1EuNaRnrR2WGpRdLDQG07O8UOpsvCPWUVOeo26Rbm0JWY2sGLfzAb+tvJ62yF+8F+TV0g==", + "dependencies": { + "@docusaurus/logger": "3.4.0", + "@docusaurus/utils": "3.4.0", + "@docusaurus/utils-common": "3.4.0", + "fs-extra": "^11.2.0", + "joi": "^17.9.2", + "js-yaml": "^4.1.0", + "lodash": "^4.17.21", + "tslib": "^2.6.0" + }, + "engines": { + "node": ">=18.0" + } + }, + "node_modules/docusaurus-theme-openapi-docs/node_modules/@svgr/babel-plugin-add-jsx-attribute": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-add-jsx-attribute/-/babel-plugin-add-jsx-attribute-8.0.0.tgz", + "integrity": "sha512-b9MIk7yhdS1pMCZM8VeNfUlSKVRhsHZNMl5O9SfaX0l0t5wjdgu4IDzGB8bpnGBBOjGST3rRFVsaaEtI4W6f7g==", + "engines": { + "node": ">=14" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/gregberge" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/docusaurus-theme-openapi-docs/node_modules/@svgr/babel-plugin-replace-jsx-attribute-value": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-replace-jsx-attribute-value/-/babel-plugin-replace-jsx-attribute-value-8.0.0.tgz", + "integrity": "sha512-KVQ+PtIjb1BuYT3ht8M5KbzWBhdAjjUPdlMtpuw/VjT8coTrItWX6Qafl9+ji831JaJcu6PJNKCV0bp01lBNzQ==", + "engines": { + "node": ">=14" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/gregberge" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/docusaurus-theme-openapi-docs/node_modules/@svgr/babel-plugin-svg-dynamic-title": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-svg-dynamic-title/-/babel-plugin-svg-dynamic-title-8.0.0.tgz", + "integrity": "sha512-omNiKqwjNmOQJ2v6ge4SErBbkooV2aAWwaPFs2vUY7p7GhVkzRkJ00kILXQvRhA6miHnNpXv7MRnnSjdRjK8og==", + "engines": { + "node": ">=14" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/gregberge" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/docusaurus-theme-openapi-docs/node_modules/@svgr/babel-plugin-svg-em-dimensions": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-svg-em-dimensions/-/babel-plugin-svg-em-dimensions-8.0.0.tgz", + "integrity": "sha512-mURHYnu6Iw3UBTbhGwE/vsngtCIbHE43xCRK7kCw4t01xyGqb2Pd+WXekRRoFOBIY29ZoOhUCTEweDMdrjfi9g==", + "engines": { + "node": ">=14" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/gregberge" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/docusaurus-theme-openapi-docs/node_modules/@svgr/babel-plugin-transform-react-native-svg": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-transform-react-native-svg/-/babel-plugin-transform-react-native-svg-8.1.0.tgz", + "integrity": "sha512-Tx8T58CHo+7nwJ+EhUwx3LfdNSG9R2OKfaIXXs5soiy5HtgoAEkDay9LIimLOcG8dJQH1wPZp/cnAv6S9CrR1Q==", + "engines": { + "node": ">=14" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/gregberge" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/docusaurus-theme-openapi-docs/node_modules/@svgr/babel-plugin-transform-svg-component": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-transform-svg-component/-/babel-plugin-transform-svg-component-8.0.0.tgz", + "integrity": "sha512-DFx8xa3cZXTdb/k3kfPeaixecQLgKh5NVBMwD0AQxOzcZawK4oo1Jh9LbrcACUivsCA7TLG8eeWgrDXjTMhRmw==", + "engines": { + "node": ">=12" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/gregberge" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/docusaurus-theme-openapi-docs/node_modules/@svgr/babel-preset": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/@svgr/babel-preset/-/babel-preset-8.1.0.tgz", + "integrity": "sha512-7EYDbHE7MxHpv4sxvnVPngw5fuR6pw79SkcrILHJ/iMpuKySNCl5W1qcwPEpU+LgyRXOaAFgH0KhwD18wwg6ug==", + "dependencies": { + "@svgr/babel-plugin-add-jsx-attribute": "8.0.0", + "@svgr/babel-plugin-remove-jsx-attribute": "8.0.0", + "@svgr/babel-plugin-remove-jsx-empty-expression": "8.0.0", + "@svgr/babel-plugin-replace-jsx-attribute-value": "8.0.0", + "@svgr/babel-plugin-svg-dynamic-title": "8.0.0", + "@svgr/babel-plugin-svg-em-dimensions": "8.0.0", + "@svgr/babel-plugin-transform-react-native-svg": "8.1.0", + "@svgr/babel-plugin-transform-svg-component": "8.0.0" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/gregberge" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/docusaurus-theme-openapi-docs/node_modules/@svgr/core": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/@svgr/core/-/core-8.1.0.tgz", + "integrity": "sha512-8QqtOQT5ACVlmsvKOJNEaWmRPmcojMOzCz4Hs2BGG/toAp/K38LcsMRyLp349glq5AzJbCEeimEoxaX6v/fLrA==", + "dependencies": { + "@babel/core": "^7.21.3", + "@svgr/babel-preset": "8.1.0", + "camelcase": "^6.2.0", + "cosmiconfig": "^8.1.3", + "snake-case": "^3.0.4" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/gregberge" + } + }, + "node_modules/docusaurus-theme-openapi-docs/node_modules/@svgr/hast-util-to-babel-ast": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/@svgr/hast-util-to-babel-ast/-/hast-util-to-babel-ast-8.0.0.tgz", + "integrity": "sha512-EbDKwO9GpfWP4jN9sGdYwPBU0kdomaPIL2Eu4YwmgP+sJeXT+L7bMwJUBnhzfH8Q2qMBqZ4fJwpCyYsAN3mt2Q==", + "dependencies": { + "@babel/types": "^7.21.3", + "entities": "^4.4.0" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/gregberge" + } + }, + "node_modules/docusaurus-theme-openapi-docs/node_modules/@svgr/plugin-jsx": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/@svgr/plugin-jsx/-/plugin-jsx-8.1.0.tgz", + "integrity": "sha512-0xiIyBsLlr8quN+WyuxooNW9RJ0Dpr8uOnH/xrCVO8GLUcwHISwj1AG0k+LFzteTkAA0GbX0kj9q6Dk70PTiPA==", + "dependencies": { + "@babel/core": "^7.21.3", + "@svgr/babel-preset": "8.1.0", + "@svgr/hast-util-to-babel-ast": "8.0.0", + "svg-parser": "^2.0.4" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/gregberge" + }, + "peerDependencies": { + "@svgr/core": "*" + } + }, + "node_modules/docusaurus-theme-openapi-docs/node_modules/@svgr/plugin-svgo": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/@svgr/plugin-svgo/-/plugin-svgo-8.1.0.tgz", + "integrity": "sha512-Ywtl837OGO9pTLIN/onoWLmDQ4zFUycI1g76vuKGEz6evR/ZTJlJuz3G/fIkb6OVBJ2g0o6CGJzaEjfmEo3AHA==", + "dependencies": { + "cosmiconfig": "^8.1.3", + "deepmerge": "^4.3.1", + "svgo": "^3.0.2" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/gregberge" + }, + "peerDependencies": { + "@svgr/core": "*" + } + }, + "node_modules/docusaurus-theme-openapi-docs/node_modules/@svgr/webpack": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/@svgr/webpack/-/webpack-8.1.0.tgz", + "integrity": "sha512-LnhVjMWyMQV9ZmeEy26maJk+8HTIbd59cH4F2MJ439k9DqejRisfFNGAPvRYlKETuh9LrImlS8aKsBgKjMA8WA==", + "dependencies": { + "@babel/core": "^7.21.3", + "@babel/plugin-transform-react-constant-elements": "^7.21.3", + "@babel/preset-env": "^7.20.2", + "@babel/preset-react": "^7.18.6", + "@babel/preset-typescript": "^7.21.0", + "@svgr/core": "8.1.0", + "@svgr/plugin-jsx": "8.1.0", + "@svgr/plugin-svgo": "8.1.0" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/gregberge" + } + }, + "node_modules/docusaurus-theme-openapi-docs/node_modules/@types/hast": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/@types/hast/-/hast-3.0.4.tgz", + "integrity": "sha512-WPs+bbQw5aCj+x6laNGWLH3wviHtoCv/P3+otBhbOhJgG8qtpdAMlTCxLtsTWA7LH1Oh/bFCHsBn0TPS5m30EQ==", + "dependencies": { + "@types/unist": "*" + } + }, + "node_modules/docusaurus-theme-openapi-docs/node_modules/@types/unist": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/@types/unist/-/unist-3.0.2.tgz", + "integrity": "sha512-dqId9J8K/vGi5Zr7oo212BGii5m3q5Hxlkwy3WpYuKPklmBEvsbMYYyLxAQpSffdLl/gdW0XUpKWFvYmyoWCoQ==" + }, + "node_modules/docusaurus-theme-openapi-docs/node_modules/cosmiconfig": { + "version": "8.3.6", + "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-8.3.6.tgz", + "integrity": "sha512-kcZ6+W5QzcJ3P1Mt+83OUv/oHFqZHIx8DuxG6eZ5RGMERoLqp4BuGjhHLYGK+Kf5XVkQvqBSmAy/nGWN3qDgEA==", + "dependencies": { + "import-fresh": "^3.3.0", + "js-yaml": "^4.1.0", + "parse-json": "^5.2.0", + "path-type": "^4.0.0" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/d-fischer" + }, + "peerDependencies": { + "typescript": ">=4.9.5" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/docusaurus-theme-openapi-docs/node_modules/css-declaration-sorter": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/css-declaration-sorter/-/css-declaration-sorter-7.2.0.tgz", + "integrity": "sha512-h70rUM+3PNFuaBDTLe8wF/cdWu+dOZmb7pJt8Z2sedYbAcQVQV/tEchueg3GWxwqS0cxtbxmaHEdkNACqcvsow==", + "engines": { + "node": "^14 || ^16 || >=18" + }, + "peerDependencies": { + "postcss": "^8.0.9" + } + }, + "node_modules/docusaurus-theme-openapi-docs/node_modules/css-minimizer-webpack-plugin": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/css-minimizer-webpack-plugin/-/css-minimizer-webpack-plugin-5.0.1.tgz", + "integrity": "sha512-3caImjKFQkS+ws1TGcFn0V1HyDJFq1Euy589JlD6/3rV2kj+w7r5G9WDMgSHvpvXHNZ2calVypZWuEDQd9wfLg==", + "dependencies": { + "@jridgewell/trace-mapping": "^0.3.18", + "cssnano": "^6.0.1", + "jest-worker": "^29.4.3", + "postcss": "^8.4.24", + "schema-utils": "^4.0.1", + "serialize-javascript": "^6.0.1" + }, + "engines": { + "node": ">= 14.15.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "webpack": "^5.0.0" + }, + "peerDependenciesMeta": { + "@parcel/css": { + "optional": true + }, + "@swc/css": { + "optional": true + }, + "clean-css": { + "optional": true + }, + "csso": { + "optional": true + }, + "esbuild": { + "optional": true + }, + "lightningcss": { + "optional": true + } + } + }, + "node_modules/docusaurus-theme-openapi-docs/node_modules/css-select": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/css-select/-/css-select-5.1.0.tgz", + "integrity": "sha512-nwoRF1rvRRnnCqqY7updORDsuqKzqYJ28+oSMaJMMgOauh3fvwHqMS7EZpIPqK8GL+g9mKxF1vP/ZjSeNjEVHg==", + "dependencies": { + "boolbase": "^1.0.0", + "css-what": "^6.1.0", + "domhandler": "^5.0.2", + "domutils": "^3.0.1", + "nth-check": "^2.0.1" + }, + "funding": { + "url": "https://github.com/sponsors/fb55" + } + }, + "node_modules/docusaurus-theme-openapi-docs/node_modules/css-tree": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/css-tree/-/css-tree-2.3.1.tgz", + "integrity": "sha512-6Fv1DV/TYw//QF5IzQdqsNDjx/wc8TrMBZsqjL9eW01tWb7R7k/mq+/VXfJCl7SoD5emsJop9cOByJZfs8hYIw==", + "dependencies": { + "mdn-data": "2.0.30", + "source-map-js": "^1.0.1" + }, + "engines": { + "node": "^10 || ^12.20.0 || ^14.13.0 || >=15.0.0" + } + }, + "node_modules/docusaurus-theme-openapi-docs/node_modules/cssnano": { + "version": "6.1.2", + "resolved": "https://registry.npmjs.org/cssnano/-/cssnano-6.1.2.tgz", + "integrity": "sha512-rYk5UeX7VAM/u0lNqewCdasdtPK81CgX8wJFLEIXHbV2oldWRgJAsZrdhRXkV1NJzA2g850KiFm9mMU2HxNxMA==", + "dependencies": { + "cssnano-preset-default": "^6.1.2", + "lilconfig": "^3.1.1" + }, + "engines": { + "node": "^14 || ^16 || >=18.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/cssnano" + }, + "peerDependencies": { + "postcss": "^8.4.31" + } + }, + "node_modules/docusaurus-theme-openapi-docs/node_modules/cssnano-preset-advanced": { + "version": "6.1.2", + "resolved": "https://registry.npmjs.org/cssnano-preset-advanced/-/cssnano-preset-advanced-6.1.2.tgz", + "integrity": "sha512-Nhao7eD8ph2DoHolEzQs5CfRpiEP0xa1HBdnFZ82kvqdmbwVBUr2r1QuQ4t1pi+D1ZpqpcO4T+wy/7RxzJ/WPQ==", + "dependencies": { + "autoprefixer": "^10.4.19", + "browserslist": "^4.23.0", + "cssnano-preset-default": "^6.1.2", + "postcss-discard-unused": "^6.0.5", + "postcss-merge-idents": "^6.0.3", + "postcss-reduce-idents": "^6.0.3", + "postcss-zindex": "^6.0.2" + }, + "engines": { + "node": "^14 || ^16 || >=18.0" + }, + "peerDependencies": { + "postcss": "^8.4.31" + } + }, + "node_modules/docusaurus-theme-openapi-docs/node_modules/cssnano-preset-default": { + "version": "6.1.2", + "resolved": "https://registry.npmjs.org/cssnano-preset-default/-/cssnano-preset-default-6.1.2.tgz", + "integrity": "sha512-1C0C+eNaeN8OcHQa193aRgYexyJtU8XwbdieEjClw+J9d94E41LwT6ivKH0WT+fYwYWB0Zp3I3IZ7tI/BbUbrg==", + "dependencies": { + "browserslist": "^4.23.0", + "css-declaration-sorter": "^7.2.0", + "cssnano-utils": "^4.0.2", + "postcss-calc": "^9.0.1", + "postcss-colormin": "^6.1.0", + "postcss-convert-values": "^6.1.0", + "postcss-discard-comments": "^6.0.2", + "postcss-discard-duplicates": "^6.0.3", + "postcss-discard-empty": "^6.0.3", + "postcss-discard-overridden": "^6.0.2", + "postcss-merge-longhand": "^6.0.5", + "postcss-merge-rules": "^6.1.1", + "postcss-minify-font-values": "^6.1.0", + "postcss-minify-gradients": "^6.0.3", + "postcss-minify-params": "^6.1.0", + "postcss-minify-selectors": "^6.0.4", + "postcss-normalize-charset": "^6.0.2", + "postcss-normalize-display-values": "^6.0.2", + "postcss-normalize-positions": "^6.0.2", + "postcss-normalize-repeat-style": "^6.0.2", + "postcss-normalize-string": "^6.0.2", + "postcss-normalize-timing-functions": "^6.0.2", + "postcss-normalize-unicode": "^6.1.0", + "postcss-normalize-url": "^6.0.2", + "postcss-normalize-whitespace": "^6.0.2", + "postcss-ordered-values": "^6.0.2", + "postcss-reduce-initial": "^6.1.0", + "postcss-reduce-transforms": "^6.0.2", + "postcss-svgo": "^6.0.3", + "postcss-unique-selectors": "^6.0.4" + }, + "engines": { + "node": "^14 || ^16 || >=18.0" + }, + "peerDependencies": { + "postcss": "^8.4.31" + } + }, + "node_modules/docusaurus-theme-openapi-docs/node_modules/cssnano-utils": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/cssnano-utils/-/cssnano-utils-4.0.2.tgz", + "integrity": "sha512-ZR1jHg+wZ8o4c3zqf1SIUSTIvm/9mU343FMR6Obe/unskbvpGhZOo1J6d/r8D1pzkRQYuwbcH3hToOuoA2G7oQ==", + "engines": { + "node": "^14 || ^16 || >=18.0" + }, + "peerDependencies": { + "postcss": "^8.4.31" + } + }, + "node_modules/docusaurus-theme-openapi-docs/node_modules/csso": { + "version": "5.0.5", + "resolved": "https://registry.npmjs.org/csso/-/csso-5.0.5.tgz", + "integrity": "sha512-0LrrStPOdJj+SPCCrGhzryycLjwcgUSHBtxNA8aIDxf0GLsRh1cKYhB00Gd1lDOS4yGH69+SNn13+TWbVHETFQ==", + "dependencies": { + "css-tree": "~2.2.0" + }, + "engines": { + "node": "^10 || ^12.20.0 || ^14.13.0 || >=15.0.0", + "npm": ">=7.0.0" + } + }, + "node_modules/docusaurus-theme-openapi-docs/node_modules/csso/node_modules/css-tree": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/css-tree/-/css-tree-2.2.1.tgz", + "integrity": "sha512-OA0mILzGc1kCOCSJerOeqDxDQ4HOh+G8NbOJFOTgOCzpw7fCBubk0fEyxp8AgOL/jvLgYA/uV0cMbe43ElF1JA==", + "dependencies": { + "mdn-data": "2.0.28", + "source-map-js": "^1.0.1" + }, + "engines": { + "node": "^10 || ^12.20.0 || ^14.13.0 || >=15.0.0", + "npm": ">=7.0.0" + } + }, + "node_modules/docusaurus-theme-openapi-docs/node_modules/csso/node_modules/mdn-data": { + "version": "2.0.28", + "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.28.tgz", + "integrity": "sha512-aylIc7Z9y4yzHYAJNuESG3hfhC+0Ibp/MAMiaOZgNv4pmEdFyfZhhhny4MNiAfWdBQ1RQ2mfDWmM1x8SvGyp8g==" + }, + "node_modules/docusaurus-theme-openapi-docs/node_modules/dom-serializer": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-2.0.0.tgz", + "integrity": "sha512-wIkAryiqt/nV5EQKqQpo3SToSOV9J0DnbJqwK7Wv/Trc92zIAYZ4FlMu+JPFW1DfGFt81ZTCGgDEabffXeLyJg==", + "dependencies": { + "domelementtype": "^2.3.0", + "domhandler": "^5.0.2", + "entities": "^4.2.0" + }, + "funding": { + "url": "https://github.com/cheeriojs/dom-serializer?sponsor=1" + } + }, + "node_modules/docusaurus-theme-openapi-docs/node_modules/domhandler": { + "version": "5.0.3", + "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-5.0.3.tgz", + "integrity": "sha512-cgwlv/1iFQiFnU96XXgROh8xTeetsnJiDsTc7TYCLFd9+/WNkIqPTxiM/8pSd8VIrhXGTf1Ny1q1hquVqDJB5w==", + "dependencies": { + "domelementtype": "^2.3.0" + }, + "engines": { + "node": ">= 4" + }, + "funding": { + "url": "https://github.com/fb55/domhandler?sponsor=1" + } + }, + "node_modules/docusaurus-theme-openapi-docs/node_modules/domutils": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/domutils/-/domutils-3.1.0.tgz", + "integrity": "sha512-H78uMmQtI2AhgDJjWeQmHwJJ2bLPD3GMmO7Zja/ZZh84wkm+4ut+IUnUdRa8uCGX88DiVx1j6FRe1XfxEgjEZA==", + "dependencies": { + "dom-serializer": "^2.0.0", + "domelementtype": "^2.3.0", + "domhandler": "^5.0.3" + }, + "funding": { + "url": "https://github.com/fb55/domutils?sponsor=1" + } + }, + "node_modules/docusaurus-theme-openapi-docs/node_modules/html-minifier-terser": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/html-minifier-terser/-/html-minifier-terser-7.2.0.tgz", + "integrity": "sha512-tXgn3QfqPIpGl9o+K5tpcj3/MN4SfLtsx2GWwBC3SSd0tXQGyF3gsSqad8loJgKZGM3ZxbYDd5yhiBIdWpmvLA==", + "dependencies": { + "camel-case": "^4.1.2", + "clean-css": "~5.3.2", + "commander": "^10.0.0", + "entities": "^4.4.0", + "param-case": "^3.0.4", + "relateurl": "^0.2.7", + "terser": "^5.15.1" + }, + "bin": { + "html-minifier-terser": "cli.js" + }, + "engines": { + "node": "^14.13.1 || >=16.0.0" + } + }, + "node_modules/docusaurus-theme-openapi-docs/node_modules/html-minifier-terser/node_modules/commander": { + "version": "10.0.1", + "resolved": "https://registry.npmjs.org/commander/-/commander-10.0.1.tgz", + "integrity": "sha512-y4Mg2tXshplEbSGzx7amzPwKKOCGuoSRP/CjEdwwk0FOGlUbq6lKuoyDZTNZkmxHdJtp54hdfY/JUrdL7Xfdug==", + "engines": { + "node": ">=14" + } + }, + "node_modules/docusaurus-theme-openapi-docs/node_modules/lilconfig": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/lilconfig/-/lilconfig-3.1.2.tgz", + "integrity": "sha512-eop+wDAvpItUys0FWkHIKeC9ybYrTGbU41U5K7+bttZZeohvnY7M9dZ5kB21GNWiFT2q1OoPTvncPCgSOVO5ow==", + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/antonk52" + } + }, + "node_modules/docusaurus-theme-openapi-docs/node_modules/mdn-data": { + "version": "2.0.30", + "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.30.tgz", + "integrity": "sha512-GaqWWShW4kv/G9IEucWScBx9G1/vsFZZJUO+tD26M8J8z3Kw5RDQjaoZe03YAClgeS/SWPOcb4nkFBTEi5DUEA==" + }, + "node_modules/docusaurus-theme-openapi-docs/node_modules/postcss-calc": { + "version": "9.0.1", + "resolved": "https://registry.npmjs.org/postcss-calc/-/postcss-calc-9.0.1.tgz", + "integrity": "sha512-TipgjGyzP5QzEhsOZUaIkeO5mKeMFpebWzRogWG/ysonUlnHcq5aJe0jOjpfzUU8PeSaBQnrE8ehR0QA5vs8PQ==", + "dependencies": { + "postcss-selector-parser": "^6.0.11", + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^14 || ^16 || >=18.0" + }, + "peerDependencies": { + "postcss": "^8.2.2" + } + }, + "node_modules/docusaurus-theme-openapi-docs/node_modules/postcss-colormin": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/postcss-colormin/-/postcss-colormin-6.1.0.tgz", + "integrity": "sha512-x9yX7DOxeMAR+BgGVnNSAxmAj98NX/YxEMNFP+SDCEeNLb2r3i6Hh1ksMsnW8Ub5SLCpbescQqn9YEbE9554Sw==", + "dependencies": { + "browserslist": "^4.23.0", + "caniuse-api": "^3.0.0", + "colord": "^2.9.3", + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^14 || ^16 || >=18.0" + }, + "peerDependencies": { + "postcss": "^8.4.31" + } + }, + "node_modules/docusaurus-theme-openapi-docs/node_modules/postcss-convert-values": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/postcss-convert-values/-/postcss-convert-values-6.1.0.tgz", + "integrity": "sha512-zx8IwP/ts9WvUM6NkVSkiU902QZL1bwPhaVaLynPtCsOTqp+ZKbNi+s6XJg3rfqpKGA/oc7Oxk5t8pOQJcwl/w==", + "dependencies": { + "browserslist": "^4.23.0", + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^14 || ^16 || >=18.0" + }, + "peerDependencies": { + "postcss": "^8.4.31" + } + }, + "node_modules/docusaurus-theme-openapi-docs/node_modules/postcss-discard-comments": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/postcss-discard-comments/-/postcss-discard-comments-6.0.2.tgz", + "integrity": "sha512-65w/uIqhSBBfQmYnG92FO1mWZjJ4GL5b8atm5Yw2UgrwD7HiNiSSNwJor1eCFGzUgYnN/iIknhNRVqjrrpuglw==", + "engines": { + "node": "^14 || ^16 || >=18.0" + }, + "peerDependencies": { + "postcss": "^8.4.31" + } + }, + "node_modules/docusaurus-theme-openapi-docs/node_modules/postcss-discard-duplicates": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/postcss-discard-duplicates/-/postcss-discard-duplicates-6.0.3.tgz", + "integrity": "sha512-+JA0DCvc5XvFAxwx6f/e68gQu/7Z9ud584VLmcgto28eB8FqSFZwtrLwB5Kcp70eIoWP/HXqz4wpo8rD8gpsTw==", + "engines": { + "node": "^14 || ^16 || >=18.0" + }, + "peerDependencies": { + "postcss": "^8.4.31" + } + }, + "node_modules/docusaurus-theme-openapi-docs/node_modules/postcss-discard-empty": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/postcss-discard-empty/-/postcss-discard-empty-6.0.3.tgz", + "integrity": "sha512-znyno9cHKQsK6PtxL5D19Fj9uwSzC2mB74cpT66fhgOadEUPyXFkbgwm5tvc3bt3NAy8ltE5MrghxovZRVnOjQ==", + "engines": { + "node": "^14 || ^16 || >=18.0" + }, + "peerDependencies": { + "postcss": "^8.4.31" + } + }, + "node_modules/docusaurus-theme-openapi-docs/node_modules/postcss-discard-overridden": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/postcss-discard-overridden/-/postcss-discard-overridden-6.0.2.tgz", + "integrity": "sha512-j87xzI4LUggC5zND7KdjsI25APtyMuynXZSujByMaav2roV6OZX+8AaCUcZSWqckZpjAjRyFDdpqybgjFO0HJQ==", + "engines": { + "node": "^14 || ^16 || >=18.0" + }, + "peerDependencies": { + "postcss": "^8.4.31" + } + }, + "node_modules/docusaurus-theme-openapi-docs/node_modules/postcss-discard-unused": { + "version": "6.0.5", + "resolved": "https://registry.npmjs.org/postcss-discard-unused/-/postcss-discard-unused-6.0.5.tgz", + "integrity": "sha512-wHalBlRHkaNnNwfC8z+ppX57VhvS+HWgjW508esjdaEYr3Mx7Gnn2xA4R/CKf5+Z9S5qsqC+Uzh4ueENWwCVUA==", + "dependencies": { + "postcss-selector-parser": "^6.0.16" + }, + "engines": { + "node": "^14 || ^16 || >=18.0" + }, + "peerDependencies": { + "postcss": "^8.4.31" + } + }, + "node_modules/docusaurus-theme-openapi-docs/node_modules/postcss-merge-idents": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/postcss-merge-idents/-/postcss-merge-idents-6.0.3.tgz", + "integrity": "sha512-1oIoAsODUs6IHQZkLQGO15uGEbK3EAl5wi9SS8hs45VgsxQfMnxvt+L+zIr7ifZFIH14cfAeVe2uCTa+SPRa3g==", + "dependencies": { + "cssnano-utils": "^4.0.2", + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^14 || ^16 || >=18.0" + }, + "peerDependencies": { + "postcss": "^8.4.31" + } + }, + "node_modules/docusaurus-theme-openapi-docs/node_modules/postcss-merge-longhand": { + "version": "6.0.5", + "resolved": "https://registry.npmjs.org/postcss-merge-longhand/-/postcss-merge-longhand-6.0.5.tgz", + "integrity": "sha512-5LOiordeTfi64QhICp07nzzuTDjNSO8g5Ksdibt44d+uvIIAE1oZdRn8y/W5ZtYgRH/lnLDlvi9F8btZcVzu3w==", + "dependencies": { + "postcss-value-parser": "^4.2.0", + "stylehacks": "^6.1.1" + }, + "engines": { + "node": "^14 || ^16 || >=18.0" + }, + "peerDependencies": { + "postcss": "^8.4.31" + } + }, + "node_modules/docusaurus-theme-openapi-docs/node_modules/postcss-merge-rules": { + "version": "6.1.1", + "resolved": "https://registry.npmjs.org/postcss-merge-rules/-/postcss-merge-rules-6.1.1.tgz", + "integrity": "sha512-KOdWF0gju31AQPZiD+2Ar9Qjowz1LTChSjFFbS+e2sFgc4uHOp3ZvVX4sNeTlk0w2O31ecFGgrFzhO0RSWbWwQ==", + "dependencies": { + "browserslist": "^4.23.0", + "caniuse-api": "^3.0.0", + "cssnano-utils": "^4.0.2", + "postcss-selector-parser": "^6.0.16" + }, + "engines": { + "node": "^14 || ^16 || >=18.0" + }, + "peerDependencies": { + "postcss": "^8.4.31" + } + }, + "node_modules/docusaurus-theme-openapi-docs/node_modules/postcss-minify-font-values": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/postcss-minify-font-values/-/postcss-minify-font-values-6.1.0.tgz", + "integrity": "sha512-gklfI/n+9rTh8nYaSJXlCo3nOKqMNkxuGpTn/Qm0gstL3ywTr9/WRKznE+oy6fvfolH6dF+QM4nCo8yPLdvGJg==", + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^14 || ^16 || >=18.0" + }, + "peerDependencies": { + "postcss": "^8.4.31" + } + }, + "node_modules/docusaurus-theme-openapi-docs/node_modules/postcss-minify-gradients": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/postcss-minify-gradients/-/postcss-minify-gradients-6.0.3.tgz", + "integrity": "sha512-4KXAHrYlzF0Rr7uc4VrfwDJ2ajrtNEpNEuLxFgwkhFZ56/7gaE4Nr49nLsQDZyUe+ds+kEhf+YAUolJiYXF8+Q==", + "dependencies": { + "colord": "^2.9.3", + "cssnano-utils": "^4.0.2", + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^14 || ^16 || >=18.0" + }, + "peerDependencies": { + "postcss": "^8.4.31" + } + }, + "node_modules/docusaurus-theme-openapi-docs/node_modules/postcss-minify-params": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/postcss-minify-params/-/postcss-minify-params-6.1.0.tgz", + "integrity": "sha512-bmSKnDtyyE8ujHQK0RQJDIKhQ20Jq1LYiez54WiaOoBtcSuflfK3Nm596LvbtlFcpipMjgClQGyGr7GAs+H1uA==", + "dependencies": { + "browserslist": "^4.23.0", + "cssnano-utils": "^4.0.2", + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^14 || ^16 || >=18.0" + }, + "peerDependencies": { + "postcss": "^8.4.31" + } + }, + "node_modules/docusaurus-theme-openapi-docs/node_modules/postcss-minify-selectors": { + "version": "6.0.4", + "resolved": "https://registry.npmjs.org/postcss-minify-selectors/-/postcss-minify-selectors-6.0.4.tgz", + "integrity": "sha512-L8dZSwNLgK7pjTto9PzWRoMbnLq5vsZSTu8+j1P/2GB8qdtGQfn+K1uSvFgYvgh83cbyxT5m43ZZhUMTJDSClQ==", + "dependencies": { + "postcss-selector-parser": "^6.0.16" + }, + "engines": { + "node": "^14 || ^16 || >=18.0" + }, + "peerDependencies": { + "postcss": "^8.4.31" + } + }, + "node_modules/docusaurus-theme-openapi-docs/node_modules/postcss-normalize-charset": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/postcss-normalize-charset/-/postcss-normalize-charset-6.0.2.tgz", + "integrity": "sha512-a8N9czmdnrjPHa3DeFlwqst5eaL5W8jYu3EBbTTkI5FHkfMhFZh1EGbku6jhHhIzTA6tquI2P42NtZ59M/H/kQ==", + "engines": { + "node": "^14 || ^16 || >=18.0" + }, + "peerDependencies": { + "postcss": "^8.4.31" + } + }, + "node_modules/docusaurus-theme-openapi-docs/node_modules/postcss-normalize-display-values": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/postcss-normalize-display-values/-/postcss-normalize-display-values-6.0.2.tgz", + "integrity": "sha512-8H04Mxsb82ON/aAkPeq8kcBbAtI5Q2a64X/mnRRfPXBq7XeogoQvReqxEfc0B4WPq1KimjezNC8flUtC3Qz6jg==", + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^14 || ^16 || >=18.0" + }, + "peerDependencies": { + "postcss": "^8.4.31" + } + }, + "node_modules/docusaurus-theme-openapi-docs/node_modules/postcss-normalize-positions": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/postcss-normalize-positions/-/postcss-normalize-positions-6.0.2.tgz", + "integrity": "sha512-/JFzI441OAB9O7VnLA+RtSNZvQ0NCFZDOtp6QPFo1iIyawyXg0YI3CYM9HBy1WvwCRHnPep/BvI1+dGPKoXx/Q==", + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^14 || ^16 || >=18.0" + }, + "peerDependencies": { + "postcss": "^8.4.31" + } + }, + "node_modules/docusaurus-theme-openapi-docs/node_modules/postcss-normalize-repeat-style": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/postcss-normalize-repeat-style/-/postcss-normalize-repeat-style-6.0.2.tgz", + "integrity": "sha512-YdCgsfHkJ2jEXwR4RR3Tm/iOxSfdRt7jplS6XRh9Js9PyCR/aka/FCb6TuHT2U8gQubbm/mPmF6L7FY9d79VwQ==", + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^14 || ^16 || >=18.0" + }, + "peerDependencies": { + "postcss": "^8.4.31" + } + }, + "node_modules/docusaurus-theme-openapi-docs/node_modules/postcss-normalize-string": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/postcss-normalize-string/-/postcss-normalize-string-6.0.2.tgz", + "integrity": "sha512-vQZIivlxlfqqMp4L9PZsFE4YUkWniziKjQWUtsxUiVsSSPelQydwS8Wwcuw0+83ZjPWNTl02oxlIvXsmmG+CiQ==", + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^14 || ^16 || >=18.0" + }, + "peerDependencies": { + "postcss": "^8.4.31" + } + }, + "node_modules/docusaurus-theme-openapi-docs/node_modules/postcss-normalize-timing-functions": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/postcss-normalize-timing-functions/-/postcss-normalize-timing-functions-6.0.2.tgz", + "integrity": "sha512-a+YrtMox4TBtId/AEwbA03VcJgtyW4dGBizPl7e88cTFULYsprgHWTbfyjSLyHeBcK/Q9JhXkt2ZXiwaVHoMzA==", + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^14 || ^16 || >=18.0" + }, + "peerDependencies": { + "postcss": "^8.4.31" + } + }, + "node_modules/docusaurus-theme-openapi-docs/node_modules/postcss-normalize-unicode": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/postcss-normalize-unicode/-/postcss-normalize-unicode-6.1.0.tgz", + "integrity": "sha512-QVC5TQHsVj33otj8/JD869Ndr5Xcc/+fwRh4HAsFsAeygQQXm+0PySrKbr/8tkDKzW+EVT3QkqZMfFrGiossDg==", + "dependencies": { + "browserslist": "^4.23.0", + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^14 || ^16 || >=18.0" + }, + "peerDependencies": { + "postcss": "^8.4.31" + } + }, + "node_modules/docusaurus-theme-openapi-docs/node_modules/postcss-normalize-url": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/postcss-normalize-url/-/postcss-normalize-url-6.0.2.tgz", + "integrity": "sha512-kVNcWhCeKAzZ8B4pv/DnrU1wNh458zBNp8dh4y5hhxih5RZQ12QWMuQrDgPRw3LRl8mN9vOVfHl7uhvHYMoXsQ==", + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^14 || ^16 || >=18.0" + }, + "peerDependencies": { + "postcss": "^8.4.31" + } + }, + "node_modules/docusaurus-theme-openapi-docs/node_modules/postcss-normalize-whitespace": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/postcss-normalize-whitespace/-/postcss-normalize-whitespace-6.0.2.tgz", + "integrity": "sha512-sXZ2Nj1icbJOKmdjXVT9pnyHQKiSAyuNQHSgRCUgThn2388Y9cGVDR+E9J9iAYbSbLHI+UUwLVl1Wzco/zgv0Q==", + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^14 || ^16 || >=18.0" + }, + "peerDependencies": { + "postcss": "^8.4.31" + } + }, + "node_modules/docusaurus-theme-openapi-docs/node_modules/postcss-ordered-values": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/postcss-ordered-values/-/postcss-ordered-values-6.0.2.tgz", + "integrity": "sha512-VRZSOB+JU32RsEAQrO94QPkClGPKJEL/Z9PCBImXMhIeK5KAYo6slP/hBYlLgrCjFxyqvn5VC81tycFEDBLG1Q==", + "dependencies": { + "cssnano-utils": "^4.0.2", + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^14 || ^16 || >=18.0" + }, + "peerDependencies": { + "postcss": "^8.4.31" + } + }, + "node_modules/docusaurus-theme-openapi-docs/node_modules/postcss-reduce-idents": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/postcss-reduce-idents/-/postcss-reduce-idents-6.0.3.tgz", + "integrity": "sha512-G3yCqZDpsNPoQgbDUy3T0E6hqOQ5xigUtBQyrmq3tn2GxlyiL0yyl7H+T8ulQR6kOcHJ9t7/9H4/R2tv8tJbMA==", + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^14 || ^16 || >=18.0" + }, + "peerDependencies": { + "postcss": "^8.4.31" + } + }, + "node_modules/docusaurus-theme-openapi-docs/node_modules/postcss-reduce-initial": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/postcss-reduce-initial/-/postcss-reduce-initial-6.1.0.tgz", + "integrity": "sha512-RarLgBK/CrL1qZags04oKbVbrrVK2wcxhvta3GCxrZO4zveibqbRPmm2VI8sSgCXwoUHEliRSbOfpR0b/VIoiw==", + "dependencies": { + "browserslist": "^4.23.0", + "caniuse-api": "^3.0.0" + }, + "engines": { + "node": "^14 || ^16 || >=18.0" + }, + "peerDependencies": { + "postcss": "^8.4.31" + } + }, + "node_modules/docusaurus-theme-openapi-docs/node_modules/postcss-reduce-transforms": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/postcss-reduce-transforms/-/postcss-reduce-transforms-6.0.2.tgz", + "integrity": "sha512-sB+Ya++3Xj1WaT9+5LOOdirAxP7dJZms3GRcYheSPi1PiTMigsxHAdkrbItHxwYHr4kt1zL7mmcHstgMYT+aiA==", + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^14 || ^16 || >=18.0" + }, + "peerDependencies": { + "postcss": "^8.4.31" + } + }, + "node_modules/docusaurus-theme-openapi-docs/node_modules/postcss-sort-media-queries": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/postcss-sort-media-queries/-/postcss-sort-media-queries-5.2.0.tgz", + "integrity": "sha512-AZ5fDMLD8SldlAYlvi8NIqo0+Z8xnXU2ia0jxmuhxAU+Lqt9K+AlmLNJ/zWEnE9x+Zx3qL3+1K20ATgNOr3fAA==", + "dependencies": { + "sort-css-media-queries": "2.2.0" + }, + "engines": { + "node": ">=14.0.0" + }, + "peerDependencies": { + "postcss": "^8.4.23" + } + }, + "node_modules/docusaurus-theme-openapi-docs/node_modules/postcss-svgo": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/postcss-svgo/-/postcss-svgo-6.0.3.tgz", + "integrity": "sha512-dlrahRmxP22bX6iKEjOM+c8/1p+81asjKT+V5lrgOH944ryx/OHpclnIbGsKVd3uWOXFLYJwCVf0eEkJGvO96g==", + "dependencies": { + "postcss-value-parser": "^4.2.0", + "svgo": "^3.2.0" + }, + "engines": { + "node": "^14 || ^16 || >= 18" + }, + "peerDependencies": { + "postcss": "^8.4.31" + } + }, + "node_modules/docusaurus-theme-openapi-docs/node_modules/postcss-unique-selectors": { + "version": "6.0.4", + "resolved": "https://registry.npmjs.org/postcss-unique-selectors/-/postcss-unique-selectors-6.0.4.tgz", + "integrity": "sha512-K38OCaIrO8+PzpArzkLKB42dSARtC2tmG6PvD4b1o1Q2E9Os8jzfWFfSy/rixsHwohtsDdFtAWGjFVFUdwYaMg==", + "dependencies": { + "postcss-selector-parser": "^6.0.16" + }, + "engines": { + "node": "^14 || ^16 || >=18.0" + }, + "peerDependencies": { + "postcss": "^8.4.31" + } + }, + "node_modules/docusaurus-theme-openapi-docs/node_modules/postcss-zindex": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/postcss-zindex/-/postcss-zindex-6.0.2.tgz", + "integrity": "sha512-5BxW9l1evPB/4ZIc+2GobEBoKC+h8gPGCMi+jxsYvd2x0mjq7wazk6DrP71pStqxE9Foxh5TVnonbWpFZzXaYg==", + "engines": { + "node": "^14 || ^16 || >=18.0" + }, + "peerDependencies": { + "postcss": "^8.4.31" + } + }, "node_modules/docusaurus-theme-openapi-docs/node_modules/react-live": { "version": "4.1.5", "resolved": "https://registry.npmjs.org/react-live/-/react-live-4.1.5.tgz", @@ -8261,17 +11137,17 @@ } }, "node_modules/docusaurus-theme-openapi-docs/node_modules/react-live/node_modules/clsx": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/clsx/-/clsx-2.0.0.tgz", - "integrity": "sha512-rQ1+kcj+ttHG0MKVGBUXwayCCF1oh39BF5COIpRzuCEv8Mwjv0XucrI2ExNTOn9IlLifGClWQcU9BrZORvtw6Q==", + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/clsx/-/clsx-2.1.1.tgz", + "integrity": "sha512-eYm0QWBtUrBWZWG0d386OGAw16Z995PiOVo2B7bjWSbHedGl5e0ZWaq65kOGgUSNesEIDkB9ISbTg/JK9dhCZA==", "engines": { "node": ">=6" } }, "node_modules/docusaurus-theme-openapi-docs/node_modules/react-live/node_modules/prism-react-renderer": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/prism-react-renderer/-/prism-react-renderer-2.3.0.tgz", - "integrity": "sha512-UYRg2TkVIaI6tRVHC5OJ4/BxqPUxJkJvq/odLT/ykpt1zGYXooNperUxQcCvi87LyRnR4nCh81ceOA+e7nrydg==", + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/prism-react-renderer/-/prism-react-renderer-2.3.1.tgz", + "integrity": "sha512-Rdf+HzBLR7KYjzpJ1rSoxT9ioO85nZngQEoFIhL07XhtJHlCU3SOz0GJ6+qvMyQe0Se+BV3qpe6Yd/NmQF5Juw==", "dependencies": { "@types/prismjs": "^1.26.0", "clsx": "^2.0.0" @@ -8280,6 +11156,73 @@ "react": ">=16.0.0" } }, + "node_modules/docusaurus-theme-openapi-docs/node_modules/react-loadable": { + "name": "@docusaurus/react-loadable", + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/@docusaurus/react-loadable/-/react-loadable-6.0.0.tgz", + "integrity": "sha512-YMMxTUQV/QFSnbgrP3tjDzLHRg7vsbMn8e9HAa8o/1iXoiomo48b7sk/kkmWEuWNDPJVlKSJRB6Y2fHqdJk+SQ==", + "dependencies": { + "@types/react": "*" + }, + "peerDependencies": { + "react": "*" + } + }, + "node_modules/docusaurus-theme-openapi-docs/node_modules/sort-css-media-queries": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/sort-css-media-queries/-/sort-css-media-queries-2.2.0.tgz", + "integrity": "sha512-0xtkGhWCC9MGt/EzgnvbbbKhqWjl1+/rncmhTh5qCpbYguXh6S/qwePfv/JQ8jePXXmqingylxoC49pCkSPIbA==", + "engines": { + "node": ">= 6.3.0" + } + }, + "node_modules/docusaurus-theme-openapi-docs/node_modules/stylehacks": { + "version": "6.1.1", + "resolved": "https://registry.npmjs.org/stylehacks/-/stylehacks-6.1.1.tgz", + "integrity": "sha512-gSTTEQ670cJNoaeIp9KX6lZmm8LJ3jPB5yJmX8Zq/wQxOsAFXV3qjWzHas3YYk1qesuVIyYWWUpZ0vSE/dTSGg==", + "dependencies": { + "browserslist": "^4.23.0", + "postcss-selector-parser": "^6.0.16" + }, + "engines": { + "node": "^14 || ^16 || >=18.0" + }, + "peerDependencies": { + "postcss": "^8.4.31" + } + }, + "node_modules/docusaurus-theme-openapi-docs/node_modules/svgo": { + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/svgo/-/svgo-3.3.2.tgz", + "integrity": "sha512-OoohrmuUlBs8B8o6MB2Aevn+pRIH9zDALSR+6hhqVfa6fRwG/Qw9VUMSMW9VNg2CFc/MTIfabtdOVl9ODIJjpw==", + "dependencies": { + "@trysound/sax": "0.2.0", + "commander": "^7.2.0", + "css-select": "^5.1.0", + "css-tree": "^2.3.1", + "css-what": "^6.1.0", + "csso": "^5.0.5", + "picocolors": "^1.0.0" + }, + "bin": { + "svgo": "bin/svgo" + }, + "engines": { + "node": ">=14.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/svgo" + } + }, + "node_modules/docusaurus-theme-openapi-docs/node_modules/svgo/node_modules/commander": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-7.2.0.tgz", + "integrity": "sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw==", + "engines": { + "node": ">= 10" + } + }, "node_modules/docusaurus2-dotenv": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/docusaurus2-dotenv/-/docusaurus2-dotenv-1.4.0.tgz", @@ -8354,9 +11297,9 @@ } }, "node_modules/dompurify": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/dompurify/-/dompurify-2.4.0.tgz", - "integrity": "sha512-Be9tbQMZds4a3C6xTmz68NlMfeONA//4dOavl/1rNw50E+/QO0KVpbcU0PcaW0nsQxurXls9ZocqFxk8R2mWEA==" + "version": "3.1.5", + "resolved": "https://registry.npmjs.org/dompurify/-/dompurify-3.1.5.tgz", + "integrity": "sha512-lwG+n5h8QNpxtyrJW/gJWckL+1/DQiYMX8f7t8Z2AZTPw1esVrqjI63i7Zc2Gz0aKzLVMYC1V1PL/ky+aY/NgA==" }, "node_modules/domutils": { "version": "2.8.0", @@ -8381,14 +11324,17 @@ } }, "node_modules/dot-prop": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/dot-prop/-/dot-prop-5.3.0.tgz", - "integrity": "sha512-QM8q3zDe58hqUqjraQOmzZ1LIH9SWQJTlEKCH4kJ2oQvLZk7RbQXvtDM2XEq3fwkV9CCvvH4LA0AV+ogFsBM2Q==", + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/dot-prop/-/dot-prop-6.0.1.tgz", + "integrity": "sha512-tE7ztYzXHIeyvc7N+hR3oi7FIbf/NIjVP9hmAt3yMXzrQ072/fpjGLx2GxNxGxUl5V73MEqYzioOMoVhGMJ5cA==", "dependencies": { "is-obj": "^2.0.0" }, "engines": { - "node": ">=8" + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/dotenv": { @@ -8423,11 +11369,6 @@ "resolved": "https://registry.npmjs.org/duplexer/-/duplexer-0.1.2.tgz", "integrity": "sha512-jtD6YG370ZCIi/9GTaJKQxWTZD045+4R4hTk/x1UyoqadyJ9x9CgSi1RlVDQF8U2sxLLSnFkCaMihqljHIWgMg==" }, - "node_modules/duplexer3": { - "version": "0.1.5", - "resolved": "https://registry.npmjs.org/duplexer3/-/duplexer3-0.1.5.tgz", - "integrity": "sha512-1A8za6ws41LQgv9HrE/66jyC5yuSjQ3L/KOpFtoBilsAK2iA2wuS5rTt1OCzIvtS2V7nVmedsUU+DGRcjBmOYA==" - }, "node_modules/eastasianwidth": { "version": "0.2.0", "resolved": "https://registry.npmjs.org/eastasianwidth/-/eastasianwidth-0.2.0.tgz", @@ -8439,9 +11380,14 @@ "integrity": "sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==" }, "node_modules/electron-to-chromium": { - "version": "1.4.595", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.595.tgz", - "integrity": "sha512-+ozvXuamBhDOKvMNUQvecxfbyICmIAwS4GpLmR0bsiSBlGnLaOcs2Cj7J8XSbW+YEaN3Xl3ffgpm+srTUWFwFQ==" + "version": "1.4.816", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.816.tgz", + "integrity": "sha512-EKH5X5oqC6hLmiS7/vYtZHZFTNdhsYG5NVPRN6Yn0kQHNBlT59+xSM8HBy66P5fxWpKgZbPqb+diC64ng295Jw==" + }, + "node_modules/elkjs": { + "version": "0.8.2", + "resolved": "https://registry.npmjs.org/elkjs/-/elkjs-0.8.2.tgz", + "integrity": "sha512-L6uRgvZTH+4OF5NE/MBbzQx/WYpru1xCBE9respNj6qznEewGUIfhzmm7horWWxbNO2M0WckQypGctR8lH79xQ==" }, "node_modules/elliptic": { "version": "6.5.4", @@ -8467,6 +11413,11 @@ "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz", "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==" }, + "node_modules/emojilib": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/emojilib/-/emojilib-2.4.0.tgz", + "integrity": "sha512-5U0rVMU5Y2n2+ykNLQqMoqklN9ICBT/KsvC1Gz6vqHbz2AXXGkG+Pm5rMWk/8Vjrr/mY9985Hi8DYzn1F09Nyw==" + }, "node_modules/emojis-list": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/emojis-list/-/emojis-list-3.0.0.tgz", @@ -8476,9 +11427,9 @@ } }, "node_modules/emoticon": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/emoticon/-/emoticon-3.2.0.tgz", - "integrity": "sha512-SNujglcLTTg+lDAcApPNgEdudaqQFiAbJCqzjNxJkvN9vAwCGi0uu8IUVvx+f16h+V44KCY6Y2yboroc9pilHg==", + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/emoticon/-/emoticon-4.0.1.tgz", + "integrity": "sha512-dqx7eA9YaqyvYtUhJwT4rC1HIp82j5ybS1/vQ42ur+jBe17dJMwZE4+gvL1XadSFfxaPFFGt3Xsw+Y8akThDlw==", "funding": { "type": "github", "url": "https://github.com/sponsors/wooorm" @@ -8496,6 +11447,7 @@ "version": "1.4.4", "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz", "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==", + "dev": true, "dependencies": { "once": "^1.4.0" } @@ -8606,19 +11558,22 @@ } }, "node_modules/escalade": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", - "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==", + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.2.tgz", + "integrity": "sha512-ErCHMCae19vR8vQGe50xIsVomy19rg6gFu3+r3jkEO46suLMWBksvVyoGgQV+jOfl84ZSOSlmv6Gxa89PmTGmA==", "engines": { "node": ">=6" } }, "node_modules/escape-goat": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/escape-goat/-/escape-goat-2.1.1.tgz", - "integrity": "sha512-8/uIhbG12Csjy2JEW7D9pHbreaVaS/OpN3ycnyvElTdwM5n6GY6W6e2IPemfvGZeUMqZ9A/3GqIZMgKnBhAw/Q==", + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/escape-goat/-/escape-goat-4.0.0.tgz", + "integrity": "sha512-2Sd4ShcWxbx6OY1IHyla/CVNwvg7XwZVoXZHcSu9w9SReNP1EzzD5T8NWKIR38fIqEns9kDWKUQTXXAmlDrdPg==", "engines": { - "node": ">=8" + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/escape-html": { @@ -8688,6 +11643,101 @@ "node": ">=4.0" } }, + "node_modules/estree-util-attach-comments": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/estree-util-attach-comments/-/estree-util-attach-comments-3.0.0.tgz", + "integrity": "sha512-cKUwm/HUcTDsYh/9FgnuFqpfquUbwIqwKM26BVCGDPVgvaCl/nDCCjUfiLlx6lsEZ3Z4RFxNbOQ60pkaEwFxGw==", + "dependencies": { + "@types/estree": "^1.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/estree-util-build-jsx": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/estree-util-build-jsx/-/estree-util-build-jsx-3.0.1.tgz", + "integrity": "sha512-8U5eiL6BTrPxp/CHbs2yMgP8ftMhR5ww1eIKoWRMlqvltHF8fZn5LRDvTKuxD3DUn+shRbLGqXemcP51oFCsGQ==", + "dependencies": { + "@types/estree-jsx": "^1.0.0", + "devlop": "^1.0.0", + "estree-util-is-identifier-name": "^3.0.0", + "estree-walker": "^3.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/estree-util-is-identifier-name": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/estree-util-is-identifier-name/-/estree-util-is-identifier-name-3.0.0.tgz", + "integrity": "sha512-hFtqIDZTIUZ9BXLb8y4pYGyk6+wekIivNVTcmvk8NoOh+VeRn5y6cEHzbURrWbfp1fIqdVipilzj+lfaadNZmg==", + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/estree-util-to-js": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/estree-util-to-js/-/estree-util-to-js-2.0.0.tgz", + "integrity": "sha512-WDF+xj5rRWmD5tj6bIqRi6CkLIXbbNQUcxQHzGysQzvHmdYG2G7p/Tf0J0gpxGgkeMZNTIjT/AoSvC9Xehcgdg==", + "dependencies": { + "@types/estree-jsx": "^1.0.0", + "astring": "^1.8.0", + "source-map": "^0.7.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/estree-util-to-js/node_modules/source-map": { + "version": "0.7.4", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.4.tgz", + "integrity": "sha512-l3BikUxvPOcn5E74dZiq5BGsTb5yEwhaTSzccU6t4sDOH8NWJCstKO5QT2CvtFoK6F0saL7p9xHAqHOlCPJygA==", + "engines": { + "node": ">= 8" + } + }, + "node_modules/estree-util-value-to-estree": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/estree-util-value-to-estree/-/estree-util-value-to-estree-3.1.2.tgz", + "integrity": "sha512-S0gW2+XZkmsx00tU2uJ4L9hUT7IFabbml9pHh2WQqFmAbxit++YGZne0sKJbNwkj9Wvg9E4uqWl4nCIFQMmfag==", + "dependencies": { + "@types/estree": "^1.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/remcohaszing" + } + }, + "node_modules/estree-util-visit": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/estree-util-visit/-/estree-util-visit-2.0.0.tgz", + "integrity": "sha512-m5KgiH85xAhhW8Wta0vShLcUvOsh3LLPI2YVwcbio1l7E09NTLL1EyMZFM1OyWowoH0skScNbhOPl4kcBgzTww==", + "dependencies": { + "@types/estree-jsx": "^1.0.0", + "@types/unist": "^3.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/estree-util-visit/node_modules/@types/unist": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/@types/unist/-/unist-3.0.2.tgz", + "integrity": "sha512-dqId9J8K/vGi5Zr7oo212BGii5m3q5Hxlkwy3WpYuKPklmBEvsbMYYyLxAQpSffdLl/gdW0XUpKWFvYmyoWCoQ==" + }, + "node_modules/estree-walker": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-3.0.3.tgz", + "integrity": "sha512-7RUKfXgSMMkzt6ZuXmqapOurLGPPfgj6l9uRZ7lRGolvk0y2yocc35LdcxKC5PQZdn2DMqioAQ2NoWcrTKmm6g==", + "dependencies": { + "@types/estree": "^1.0.0" + } + }, "node_modules/esutils": { "version": "2.0.3", "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", @@ -8949,6 +11999,18 @@ "reusify": "^1.0.4" } }, + "node_modules/fault": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/fault/-/fault-2.0.1.tgz", + "integrity": "sha512-WtySTkS4OKev5JtpHXnib4Gxiurzh5NCGvWrFaZ34m6JehfTUhKZvn9njTfw48t6JumVQOmrKqpmGcdwxnhqBQ==", + "dependencies": { + "format": "^0.2.0" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, "node_modules/faye-websocket": { "version": "0.11.4", "resolved": "https://registry.npmjs.org/faye-websocket/-/faye-websocket-0.11.4.tgz", @@ -8960,36 +12022,6 @@ "node": ">=0.8.0" } }, - "node_modules/fbemitter": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/fbemitter/-/fbemitter-3.0.0.tgz", - "integrity": "sha512-KWKaceCwKQU0+HPoop6gn4eOHk50bBv/VxjJtGMfwmJt3D29JpN4H4eisCtIPA+a8GVBam+ldMMpMjJUvpDyHw==", - "dev": true, - "dependencies": { - "fbjs": "^3.0.0" - } - }, - "node_modules/fbjs": { - "version": "3.0.5", - "resolved": "https://registry.npmjs.org/fbjs/-/fbjs-3.0.5.tgz", - "integrity": "sha512-ztsSx77JBtkuMrEypfhgc3cI0+0h+svqeie7xHbh1k/IKdcydnvadp/mUaGgjAOXQmQSxsqgaRhS3q9fy+1kxg==", - "dev": true, - "dependencies": { - "cross-fetch": "^3.1.5", - "fbjs-css-vars": "^1.0.0", - "loose-envify": "^1.0.0", - "object-assign": "^4.1.0", - "promise": "^7.1.1", - "setimmediate": "^1.0.5", - "ua-parser-js": "^1.0.35" - } - }, - "node_modules/fbjs-css-vars": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/fbjs-css-vars/-/fbjs-css-vars-1.0.2.tgz", - "integrity": "sha512-b2XGFAFdWZWg0phtAWLHCk836A1Xann+I+Dgd3Gk64MHKZO44FfoD1KxyvbSh0qZsIoXQGGlVztIY+oitJPpRQ==", - "dev": true - }, "node_modules/feed": { "version": "4.2.2", "resolved": "https://registry.npmjs.org/feed/-/feed-4.2.2.tgz", @@ -9136,19 +12168,18 @@ "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" }, "node_modules/find-cache-dir": { - "version": "3.3.2", - "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-3.3.2.tgz", - "integrity": "sha512-wXZV5emFEjrridIgED11OoUKLxiYjAcqot/NJdAkOhlJ+vGzwhOAfcG5OX1jP+S0PcjEn8bdMJv+g2jwQ3Onig==", + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-4.0.0.tgz", + "integrity": "sha512-9ZonPT4ZAK4a+1pUPVPZJapbi7O5qbbJPdYw/NOQWZZbVLdDTYM3A4R9z/DpAM08IDaFGsvPgiGZ82WEwUDWjg==", "dependencies": { - "commondir": "^1.0.1", - "make-dir": "^3.0.2", - "pkg-dir": "^4.1.0" + "common-path-prefix": "^3.0.0", + "pkg-dir": "^7.0.0" }, "engines": { - "node": ">=8" + "node": ">=14.16" }, "funding": { - "url": "https://github.com/avajs/find-cache-dir?sponsor=1" + "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/find-up": { @@ -9343,6 +12374,22 @@ "node": ">=6" } }, + "node_modules/form-data-encoder": { + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/form-data-encoder/-/form-data-encoder-2.1.4.tgz", + "integrity": "sha512-yDYSgNMraqvnxiEXO4hi88+YZxaHC6QKzb5N84iRCTDeRO7ZALpir/lVmf/uXUhnwUr2O4HU8s/n6x+yNjQkHw==", + "engines": { + "node": ">= 14.17" + } + }, + "node_modules/format": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/format/-/format-0.2.2.tgz", + "integrity": "sha512-wzsgA6WOq+09wrU1tsJ09udeR/YZRaeArL9e1wPbFg3GG2yDnC2ldKpxs4xunpFF9DgqCqOIra3bc1HWrJ37Ww==", + "engines": { + "node": ">=0.4.x" + } + }, "node_modules/forwarded": { "version": "0.2.0", "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.2.0.tgz", @@ -9372,16 +12419,16 @@ } }, "node_modules/fs-extra": { - "version": "10.1.0", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-10.1.0.tgz", - "integrity": "sha512-oRXApq54ETRj4eMiFzGnHWGy+zo5raudjuxN0b8H7s/RU2oW0Wvsx9O0ACRN/kRq9E8Vu/ReskGB5o3ji+FzHQ==", + "version": "11.2.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-11.2.0.tgz", + "integrity": "sha512-PmDi3uwK5nFuXh7XDTlVnS17xJS7vW36is2+w3xcv8SVxiB4NyATf4ctkVY5bkSjX0Y4nbvZCq1/EjtEyr9ktw==", "dependencies": { "graceful-fs": "^4.2.0", "jsonfile": "^6.0.1", "universalify": "^2.0.0" }, "engines": { - "node": ">=12" + "node": ">=14.14" } }, "node_modules/fs-monkey": { @@ -9454,6 +12501,7 @@ "version": "5.2.0", "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz", "integrity": "sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==", + "dev": true, "dependencies": { "pump": "^3.0.0" }, @@ -9620,35 +12668,38 @@ } }, "node_modules/got": { - "version": "9.6.0", - "resolved": "https://registry.npmjs.org/got/-/got-9.6.0.tgz", - "integrity": "sha512-R7eWptXuGYxwijs0eV+v3o6+XH1IqVK8dJOEecQfTmkncw9AV4dcw/Dhxi8MdlqPthxxpZyizMzyg8RTmEsG+Q==", + "version": "12.6.1", + "resolved": "https://registry.npmjs.org/got/-/got-12.6.1.tgz", + "integrity": "sha512-mThBblvlAF1d4O5oqyvN+ZxLAYwIJK7bpMxgYqPD9okW0C3qm5FFn7k811QrcuEBwaogR3ngOFoCfs6mRv7teQ==", "dependencies": { - "@sindresorhus/is": "^0.14.0", - "@szmarczak/http-timer": "^1.1.2", - "cacheable-request": "^6.0.0", - "decompress-response": "^3.3.0", - "duplexer3": "^0.1.4", - "get-stream": "^4.1.0", - "lowercase-keys": "^1.0.1", - "mimic-response": "^1.0.1", - "p-cancelable": "^1.0.0", - "to-readable-stream": "^1.0.0", - "url-parse-lax": "^3.0.0" + "@sindresorhus/is": "^5.2.0", + "@szmarczak/http-timer": "^5.0.1", + "cacheable-lookup": "^7.0.0", + "cacheable-request": "^10.2.8", + "decompress-response": "^6.0.0", + "form-data-encoder": "^2.1.2", + "get-stream": "^6.0.1", + "http2-wrapper": "^2.1.10", + "lowercase-keys": "^3.0.0", + "p-cancelable": "^3.0.0", + "responselike": "^3.0.0" }, "engines": { - "node": ">=8.6" + "node": ">=14.16" + }, + "funding": { + "url": "https://github.com/sindresorhus/got?sponsor=1" } }, "node_modules/got/node_modules/get-stream": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-4.1.0.tgz", - "integrity": "sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w==", - "dependencies": { - "pump": "^3.0.0" - }, + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz", + "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==", "engines": { - "node": ">=6" + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/graceful-fs": { @@ -9656,14 +12707,6 @@ "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz", "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==" }, - "node_modules/graphlib": { - "version": "2.1.8", - "resolved": "https://registry.npmjs.org/graphlib/-/graphlib-2.1.8.tgz", - "integrity": "sha512-jcLLfkpoVGmH7/InMC/1hIvOPSUh38oJtGhvrOFGzioE1DZ+0YW16RgmOJhHiuWTvGiJQ9Z1Ik43JvkRPRvE+A==", - "dependencies": { - "lodash": "^4.17.15" - } - }, "node_modules/gray-matter": { "version": "4.0.3", "resolved": "https://registry.npmjs.org/gray-matter/-/gray-matter-4.0.3.tgz", @@ -9773,11 +12816,14 @@ } }, "node_modules/has-yarn": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/has-yarn/-/has-yarn-2.1.0.tgz", - "integrity": "sha512-UqBRqi4ju7T+TqGNdqAO0PaSVGsDGJUBQvk9eUWNGRY1CFGDzYhLWoM7JQEemnlvVcv/YEmc2wNW8BC24EnUsw==", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-yarn/-/has-yarn-3.0.0.tgz", + "integrity": "sha512-IrsVwUHhEULx3R8f/aA8AHuEzAorplsab/v8HBzEiIukwq5i/EC+xmOW+HfP1OaDP+2JkgT1yILHN2O3UFIbcA==", "engines": { - "node": ">=8" + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/hash-base": { @@ -9826,87 +12872,256 @@ "node": ">= 0.4" } }, - "node_modules/hast-to-hyperscript": { - "version": "9.0.1", - "resolved": "https://registry.npmjs.org/hast-to-hyperscript/-/hast-to-hyperscript-9.0.1.tgz", - "integrity": "sha512-zQgLKqF+O2F72S1aa4y2ivxzSlko3MAvxkwG8ehGmNiqd98BIN3JM1rAJPmplEyLmGLO2QZYJtIneOSZ2YbJuA==", + "node_modules/hast-util-from-parse5": { + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/hast-util-from-parse5/-/hast-util-from-parse5-8.0.1.tgz", + "integrity": "sha512-Er/Iixbc7IEa7r/XLtuG52zoqn/b3Xng/w6aZQ0xGVxzhw5xUFxcRqdPzP6yFi/4HBYRaifaI5fQ1RH8n0ZeOQ==", "dependencies": { - "@types/unist": "^2.0.3", - "comma-separated-tokens": "^1.0.0", - "property-information": "^5.3.0", - "space-separated-tokens": "^1.0.0", - "style-to-object": "^0.3.0", - "unist-util-is": "^4.0.0", - "web-namespaces": "^1.0.0" + "@types/hast": "^3.0.0", + "@types/unist": "^3.0.0", + "devlop": "^1.0.0", + "hastscript": "^8.0.0", + "property-information": "^6.0.0", + "vfile": "^6.0.0", + "vfile-location": "^5.0.0", + "web-namespaces": "^2.0.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/unified" } }, - "node_modules/hast-util-from-parse5": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/hast-util-from-parse5/-/hast-util-from-parse5-6.0.1.tgz", - "integrity": "sha512-jeJUWiN5pSxW12Rh01smtVkZgZr33wBokLzKLwinYOUfSzm1Nl/c3GUGebDyOKjdsRgMvoVbV0VpAcpjF4NrJA==", + "node_modules/hast-util-from-parse5/node_modules/@types/hast": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/@types/hast/-/hast-3.0.4.tgz", + "integrity": "sha512-WPs+bbQw5aCj+x6laNGWLH3wviHtoCv/P3+otBhbOhJgG8qtpdAMlTCxLtsTWA7LH1Oh/bFCHsBn0TPS5m30EQ==", "dependencies": { - "@types/parse5": "^5.0.0", - "hastscript": "^6.0.0", - "property-information": "^5.0.0", - "vfile": "^4.0.0", - "vfile-location": "^3.2.0", - "web-namespaces": "^1.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" + "@types/unist": "*" } }, + "node_modules/hast-util-from-parse5/node_modules/@types/unist": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/@types/unist/-/unist-3.0.2.tgz", + "integrity": "sha512-dqId9J8K/vGi5Zr7oo212BGii5m3q5Hxlkwy3WpYuKPklmBEvsbMYYyLxAQpSffdLl/gdW0XUpKWFvYmyoWCoQ==" + }, "node_modules/hast-util-parse-selector": { - "version": "2.2.5", - "resolved": "https://registry.npmjs.org/hast-util-parse-selector/-/hast-util-parse-selector-2.2.5.tgz", - "integrity": "sha512-7j6mrk/qqkSehsM92wQjdIgWM2/BW61u/53G6xmC8i1OmEdKLHbk419QKQUjz6LglWsfqoiHmyMRkP1BGjecNQ==", + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/hast-util-parse-selector/-/hast-util-parse-selector-4.0.0.tgz", + "integrity": "sha512-wkQCkSYoOGCRKERFWcxMVMOcYE2K1AaNLU8DXS9arxnLOUEWbOXKXiJUNzEpqZ3JOKpnha3jkFrumEjVliDe7A==", + "dependencies": { + "@types/hast": "^3.0.0" + }, "funding": { "type": "opencollective", "url": "https://opencollective.com/unified" } }, + "node_modules/hast-util-parse-selector/node_modules/@types/hast": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/@types/hast/-/hast-3.0.4.tgz", + "integrity": "sha512-WPs+bbQw5aCj+x6laNGWLH3wviHtoCv/P3+otBhbOhJgG8qtpdAMlTCxLtsTWA7LH1Oh/bFCHsBn0TPS5m30EQ==", + "dependencies": { + "@types/unist": "*" + } + }, "node_modules/hast-util-raw": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/hast-util-raw/-/hast-util-raw-6.0.1.tgz", - "integrity": "sha512-ZMuiYA+UF7BXBtsTBNcLBF5HzXzkyE6MLzJnL605LKE8GJylNjGc4jjxazAHUtcwT5/CEt6afRKViYB4X66dig==", + "version": "9.0.4", + "resolved": "https://registry.npmjs.org/hast-util-raw/-/hast-util-raw-9.0.4.tgz", + "integrity": "sha512-LHE65TD2YiNsHD3YuXcKPHXPLuYh/gjp12mOfU8jxSrm1f/yJpsb0F/KKljS6U9LJoP0Ux+tCe8iJ2AsPzTdgA==", "dependencies": { - "@types/hast": "^2.0.0", - "hast-util-from-parse5": "^6.0.0", - "hast-util-to-parse5": "^6.0.0", - "html-void-elements": "^1.0.0", - "parse5": "^6.0.0", - "unist-util-position": "^3.0.0", - "vfile": "^4.0.0", - "web-namespaces": "^1.0.0", - "xtend": "^4.0.0", - "zwitch": "^1.0.0" + "@types/hast": "^3.0.0", + "@types/unist": "^3.0.0", + "@ungap/structured-clone": "^1.0.0", + "hast-util-from-parse5": "^8.0.0", + "hast-util-to-parse5": "^8.0.0", + "html-void-elements": "^3.0.0", + "mdast-util-to-hast": "^13.0.0", + "parse5": "^7.0.0", + "unist-util-position": "^5.0.0", + "unist-util-visit": "^5.0.0", + "vfile": "^6.0.0", + "web-namespaces": "^2.0.0", + "zwitch": "^2.0.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/unified" } }, - "node_modules/hast-util-to-parse5": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/hast-util-to-parse5/-/hast-util-to-parse5-6.0.0.tgz", - "integrity": "sha512-Lu5m6Lgm/fWuz8eWnrKezHtVY83JeRGaNQ2kn9aJgqaxvVkFCZQBEhgodZUDUvoodgyROHDb3r5IxAEdl6suJQ==", + "node_modules/hast-util-raw/node_modules/@types/hast": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/@types/hast/-/hast-3.0.4.tgz", + "integrity": "sha512-WPs+bbQw5aCj+x6laNGWLH3wviHtoCv/P3+otBhbOhJgG8qtpdAMlTCxLtsTWA7LH1Oh/bFCHsBn0TPS5m30EQ==", "dependencies": { - "hast-to-hyperscript": "^9.0.0", - "property-information": "^5.0.0", - "web-namespaces": "^1.0.0", - "xtend": "^4.0.0", - "zwitch": "^1.0.0" + "@types/unist": "*" + } + }, + "node_modules/hast-util-raw/node_modules/@types/unist": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/@types/unist/-/unist-3.0.2.tgz", + "integrity": "sha512-dqId9J8K/vGi5Zr7oo212BGii5m3q5Hxlkwy3WpYuKPklmBEvsbMYYyLxAQpSffdLl/gdW0XUpKWFvYmyoWCoQ==" + }, + "node_modules/hast-util-raw/node_modules/parse5": { + "version": "7.1.2", + "resolved": "https://registry.npmjs.org/parse5/-/parse5-7.1.2.tgz", + "integrity": "sha512-Czj1WaSVpaoj0wbhMzLmWD69anp2WH7FXMB9n1Sy8/ZFF9jolSQVMu1Ij5WIyGmcBmhk7EOndpO4mIpihVqAXw==", + "dependencies": { + "entities": "^4.4.0" + }, + "funding": { + "url": "https://github.com/inikulin/parse5?sponsor=1" + } + }, + "node_modules/hast-util-to-estree": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/hast-util-to-estree/-/hast-util-to-estree-3.1.0.tgz", + "integrity": "sha512-lfX5g6hqVh9kjS/B9E2gSkvHH4SZNiQFiqWS0x9fENzEl+8W12RqdRxX6d/Cwxi30tPQs3bIO+aolQJNp1bIyw==", + "dependencies": { + "@types/estree": "^1.0.0", + "@types/estree-jsx": "^1.0.0", + "@types/hast": "^3.0.0", + "comma-separated-tokens": "^2.0.0", + "devlop": "^1.0.0", + "estree-util-attach-comments": "^3.0.0", + "estree-util-is-identifier-name": "^3.0.0", + "hast-util-whitespace": "^3.0.0", + "mdast-util-mdx-expression": "^2.0.0", + "mdast-util-mdx-jsx": "^3.0.0", + "mdast-util-mdxjs-esm": "^2.0.0", + "property-information": "^6.0.0", + "space-separated-tokens": "^2.0.0", + "style-to-object": "^0.4.0", + "unist-util-position": "^5.0.0", + "zwitch": "^2.0.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/unified" } }, + "node_modules/hast-util-to-estree/node_modules/@types/hast": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/@types/hast/-/hast-3.0.4.tgz", + "integrity": "sha512-WPs+bbQw5aCj+x6laNGWLH3wviHtoCv/P3+otBhbOhJgG8qtpdAMlTCxLtsTWA7LH1Oh/bFCHsBn0TPS5m30EQ==", + "dependencies": { + "@types/unist": "*" + } + }, + "node_modules/hast-util-to-estree/node_modules/@types/unist": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/@types/unist/-/unist-3.0.2.tgz", + "integrity": "sha512-dqId9J8K/vGi5Zr7oo212BGii5m3q5Hxlkwy3WpYuKPklmBEvsbMYYyLxAQpSffdLl/gdW0XUpKWFvYmyoWCoQ==" + }, + "node_modules/hast-util-to-estree/node_modules/hast-util-whitespace": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/hast-util-whitespace/-/hast-util-whitespace-3.0.0.tgz", + "integrity": "sha512-88JUN06ipLwsnv+dVn+OIYOvAuvBMy/Qoi6O7mQHxdPXpjy+Cd6xRkWwux7DKO+4sYILtLBRIKgsdpS2gQc7qw==", + "dependencies": { + "@types/hast": "^3.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/hast-util-to-estree/node_modules/style-to-object": { + "version": "0.4.4", + "resolved": "https://registry.npmjs.org/style-to-object/-/style-to-object-0.4.4.tgz", + "integrity": "sha512-HYNoHZa2GorYNyqiCaBgsxvcJIn7OHq6inEga+E6Ke3m5JkoqpQbnFssk4jwe+K7AhGa2fcha4wSOf1Kn01dMg==", + "dependencies": { + "inline-style-parser": "0.1.1" + } + }, + "node_modules/hast-util-to-jsx-runtime": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/hast-util-to-jsx-runtime/-/hast-util-to-jsx-runtime-2.3.0.tgz", + "integrity": "sha512-H/y0+IWPdsLLS738P8tDnrQ8Z+dj12zQQ6WC11TIM21C8WFVoIxcqWXf2H3hiTVZjF1AWqoimGwrTWecWrnmRQ==", + "dependencies": { + "@types/estree": "^1.0.0", + "@types/hast": "^3.0.0", + "@types/unist": "^3.0.0", + "comma-separated-tokens": "^2.0.0", + "devlop": "^1.0.0", + "estree-util-is-identifier-name": "^3.0.0", + "hast-util-whitespace": "^3.0.0", + "mdast-util-mdx-expression": "^2.0.0", + "mdast-util-mdx-jsx": "^3.0.0", + "mdast-util-mdxjs-esm": "^2.0.0", + "property-information": "^6.0.0", + "space-separated-tokens": "^2.0.0", + "style-to-object": "^1.0.0", + "unist-util-position": "^5.0.0", + "vfile-message": "^4.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/hast-util-to-jsx-runtime/node_modules/@types/hast": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/@types/hast/-/hast-3.0.4.tgz", + "integrity": "sha512-WPs+bbQw5aCj+x6laNGWLH3wviHtoCv/P3+otBhbOhJgG8qtpdAMlTCxLtsTWA7LH1Oh/bFCHsBn0TPS5m30EQ==", + "dependencies": { + "@types/unist": "*" + } + }, + "node_modules/hast-util-to-jsx-runtime/node_modules/@types/unist": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/@types/unist/-/unist-3.0.2.tgz", + "integrity": "sha512-dqId9J8K/vGi5Zr7oo212BGii5m3q5Hxlkwy3WpYuKPklmBEvsbMYYyLxAQpSffdLl/gdW0XUpKWFvYmyoWCoQ==" + }, + "node_modules/hast-util-to-jsx-runtime/node_modules/hast-util-whitespace": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/hast-util-whitespace/-/hast-util-whitespace-3.0.0.tgz", + "integrity": "sha512-88JUN06ipLwsnv+dVn+OIYOvAuvBMy/Qoi6O7mQHxdPXpjy+Cd6xRkWwux7DKO+4sYILtLBRIKgsdpS2gQc7qw==", + "dependencies": { + "@types/hast": "^3.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/hast-util-to-jsx-runtime/node_modules/inline-style-parser": { + "version": "0.2.3", + "resolved": "https://registry.npmjs.org/inline-style-parser/-/inline-style-parser-0.2.3.tgz", + "integrity": "sha512-qlD8YNDqyTKTyuITrDOffsl6Tdhv+UC4hcdAVuQsK4IMQ99nSgd1MIA/Q+jQYoh9r3hVUXhYh7urSRmXPkW04g==" + }, + "node_modules/hast-util-to-jsx-runtime/node_modules/style-to-object": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/style-to-object/-/style-to-object-1.0.6.tgz", + "integrity": "sha512-khxq+Qm3xEyZfKd/y9L3oIWQimxuc4STrQKtQn8aSDRHb8mFgpukgX1hdzfrMEW6JCjyJ8p89x+IUMVnCBI1PA==", + "dependencies": { + "inline-style-parser": "0.2.3" + } + }, + "node_modules/hast-util-to-parse5": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/hast-util-to-parse5/-/hast-util-to-parse5-8.0.0.tgz", + "integrity": "sha512-3KKrV5ZVI8if87DVSi1vDeByYrkGzg4mEfeu4alwgmmIeARiBLKCZS2uw5Gb6nU9x9Yufyj3iudm6i7nl52PFw==", + "dependencies": { + "@types/hast": "^3.0.0", + "comma-separated-tokens": "^2.0.0", + "devlop": "^1.0.0", + "property-information": "^6.0.0", + "space-separated-tokens": "^2.0.0", + "web-namespaces": "^2.0.0", + "zwitch": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/hast-util-to-parse5/node_modules/@types/hast": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/@types/hast/-/hast-3.0.4.tgz", + "integrity": "sha512-WPs+bbQw5aCj+x6laNGWLH3wviHtoCv/P3+otBhbOhJgG8qtpdAMlTCxLtsTWA7LH1Oh/bFCHsBn0TPS5m30EQ==", + "dependencies": { + "@types/unist": "*" + } + }, "node_modules/hast-util-whitespace": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/hast-util-whitespace/-/hast-util-whitespace-2.0.1.tgz", @@ -9917,21 +13132,29 @@ } }, "node_modules/hastscript": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/hastscript/-/hastscript-6.0.0.tgz", - "integrity": "sha512-nDM6bvd7lIqDUiYEiu5Sl/+6ReP0BMk/2f4U/Rooccxkj0P5nm+acM5PrGJ/t5I8qPGiqZSE6hVAwZEdZIvP4w==", + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/hastscript/-/hastscript-8.0.0.tgz", + "integrity": "sha512-dMOtzCEd3ABUeSIISmrETiKuyydk1w0pa+gE/uormcTpSYuaNJPbX1NU3JLyscSLjwAQM8bWMhhIlnCqnRvDTw==", "dependencies": { - "@types/hast": "^2.0.0", - "comma-separated-tokens": "^1.0.0", - "hast-util-parse-selector": "^2.0.0", - "property-information": "^5.0.0", - "space-separated-tokens": "^1.0.0" + "@types/hast": "^3.0.0", + "comma-separated-tokens": "^2.0.0", + "hast-util-parse-selector": "^4.0.0", + "property-information": "^6.0.0", + "space-separated-tokens": "^2.0.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/unified" } }, + "node_modules/hastscript/node_modules/@types/hast": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/@types/hast/-/hast-3.0.4.tgz", + "integrity": "sha512-WPs+bbQw5aCj+x6laNGWLH3wviHtoCv/P3+otBhbOhJgG8qtpdAMlTCxLtsTWA7LH1Oh/bFCHsBn0TPS5m30EQ==", + "dependencies": { + "@types/unist": "*" + } + }, "node_modules/he": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/he/-/he-1.2.0.tgz", @@ -10074,9 +13297,9 @@ } }, "node_modules/html-void-elements": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/html-void-elements/-/html-void-elements-1.0.5.tgz", - "integrity": "sha512-uE/TxKuyNIcx44cIWnjr/rfIATDH7ZaOMmstu0CwhFG1Dunhlp4OC6/NMbhiwoq5BpW0ubi303qnEk/PZj614w==", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/html-void-elements/-/html-void-elements-3.0.0.tgz", + "integrity": "sha512-bEqo66MRXsUGxWHV5IP0PUiAWwoEjba4VCzg0LjFJBpchPaTfyfCKTG6bc5F8ucKec3q5y6qOdGyYTSBEvhCrg==", "funding": { "type": "github", "url": "https://github.com/sponsors/wooorm" @@ -10206,11 +13429,35 @@ "resolved": "https://registry.npmjs.org/http2-client/-/http2-client-1.3.5.tgz", "integrity": "sha512-EC2utToWl4RKfs5zd36Mxq7nzHHBuomZboI0yYL6Y0RmBgT7Sgkq4rQ0ezFTYoIsSs7Tm9SJe+o2FcAg6GBhGA==" }, + "node_modules/http2-wrapper": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/http2-wrapper/-/http2-wrapper-2.2.1.tgz", + "integrity": "sha512-V5nVw1PAOgfI3Lmeaj2Exmeg7fenjhRUgz1lPSezy1CuhPYbgQtbQj4jZfEAEMlaL+vupsvhjqCyjzob0yxsmQ==", + "dependencies": { + "quick-lru": "^5.1.1", + "resolve-alpn": "^1.2.0" + }, + "engines": { + "node": ">=10.19.0" + } + }, "node_modules/https-browserify": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/https-browserify/-/https-browserify-1.0.0.tgz", "integrity": "sha512-J+FkSdyD+0mA0N+81tMotaRMfSL9SGi+xpD3T6YApKsc3bGSXJlfXri3VyFOeYkfLRQisDk1W+jIFFKBeUBbBg==" }, + "node_modules/https-proxy-agent": { + "version": "7.0.5", + "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-7.0.5.tgz", + "integrity": "sha512-1e4Wqeblerz+tMKPIq2EMGiiWW1dIjZOksyHWSUm1rmuvw/how9hBHZ38lAGj5ID4Ik6EdkOw7NmWPy6LAwalw==", + "dependencies": { + "agent-base": "^7.0.2", + "debug": "4" + }, + "engines": { + "node": ">= 14" + } + }, "node_modules/human-signals": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-1.1.1.tgz", @@ -10328,11 +13575,11 @@ } }, "node_modules/import-lazy": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/import-lazy/-/import-lazy-2.1.0.tgz", - "integrity": "sha512-m7ZEHgtw69qOGw+jwxXkHlrlIPdTGkyh66zXZ1ajZbxkDBNjSY/LGbmjc7h0s2ELsUDTAhFr55TrPSSqJGPG0A==", + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/import-lazy/-/import-lazy-4.0.0.tgz", + "integrity": "sha512-rKtvo6a868b5Hu3heneU+L4yEQ4jYKLtjpnPeUdK7h0yzXGmyBTypknlkCvHFBqfX9YlorEiMM6Dnq/5atfHkw==", "engines": { - "node": ">=4" + "node": ">=8" } }, "node_modules/imurmurhash": { @@ -10416,28 +13663,6 @@ "node": ">= 10" } }, - "node_modules/is-alphabetical": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/is-alphabetical/-/is-alphabetical-1.0.4.tgz", - "integrity": "sha512-DwzsA04LQ10FHTZuL0/grVDk4rFoVH1pjAToYwBrHSxcrBIGQuXrQMtD5U1b0U2XVgKZCTLLP8u2Qxqhy3l2Vg==", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" - } - }, - "node_modules/is-alphanumerical": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/is-alphanumerical/-/is-alphanumerical-1.0.4.tgz", - "integrity": "sha512-UzoZUr+XfVz3t3v4KyGEniVL9BDRoQtY7tOyrRybkVNjDFWyo1yhXNGrrBTQxp3ib9BLAWs7k2YKBQsFRkZG9A==", - "dependencies": { - "is-alphabetical": "^1.0.0", - "is-decimal": "^1.0.0" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" - } - }, "node_modules/is-arguments": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/is-arguments/-/is-arguments-1.1.1.tgz", @@ -10503,21 +13728,16 @@ } }, "node_modules/is-ci": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-ci/-/is-ci-2.0.0.tgz", - "integrity": "sha512-YfJT7rkpQB0updsdHLGWrvhBJfcfzNNawYDNIyQXJz0IViGf75O8EBPKSdvw2rF+LGCsX4FZ8tcr3b19LcZq4w==", + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/is-ci/-/is-ci-3.0.1.tgz", + "integrity": "sha512-ZYvCgrefwqoQ6yTyYUbQu64HsITZ3NfKX1lzaEYdkTDcfKzzCI/wthRRYKkdjHKFVgNiXKAKm65Zo1pk2as/QQ==", "dependencies": { - "ci-info": "^2.0.0" + "ci-info": "^3.2.0" }, "bin": { "is-ci": "bin.js" } }, - "node_modules/is-ci/node_modules/ci-info": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-2.0.0.tgz", - "integrity": "sha512-5tK7EtrZ0N+OLFMthtqOj4fI2Jeb88C4CAZPu25LDVUgXJ0A3Js4PMGqrn0JU1W0Mh1/Z8wZzYPxqUrXeBboCQ==" - }, "node_modules/is-core-module": { "version": "2.13.1", "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.13.1.tgz", @@ -10529,15 +13749,6 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/is-decimal": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/is-decimal/-/is-decimal-1.0.4.tgz", - "integrity": "sha512-RGdriMmQQvZ2aqaQq3awNA6dCGtKpiDFcOzrTWrDAT2MiWrKQVPmxLGHl7Y2nNu6led0kEyoX0enY0qXYsv9zw==", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" - } - }, "node_modules/is-docker": { "version": "2.2.1", "resolved": "https://registry.npmjs.org/is-docker/-/is-docker-2.2.1.tgz", @@ -10601,15 +13812,6 @@ "node": ">=0.10.0" } }, - "node_modules/is-hexadecimal": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/is-hexadecimal/-/is-hexadecimal-1.0.4.tgz", - "integrity": "sha512-gyPJuv83bHMpocVYoqof5VDiZveEoGoFL8m3BXNb2VW8Xs+rz9kqO8LOQ5DH6EsuvilT1ApazU0pyl+ytbPtlw==", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" - } - }, "node_modules/is-installed-globally": { "version": "0.4.0", "resolved": "https://registry.npmjs.org/is-installed-globally/-/is-installed-globally-0.4.0.tgz", @@ -10641,11 +13843,11 @@ } }, "node_modules/is-npm": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/is-npm/-/is-npm-5.0.0.tgz", - "integrity": "sha512-WW/rQLOazUq+ST/bCAVBp/2oMERWLsR7OrKyt052dNDk4DHcDE0/7QSXITlmi+VBcV13DfIbysG3tZJm5RfdBA==", + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/is-npm/-/is-npm-6.0.0.tgz", + "integrity": "sha512-JEjxbSmtPSt1c8XTkVrlujcXdKV1/tvuQ7GwKcAlyiVLeYFQ2VHat8xfrDJsIkhCdF/tZ7CiIR3sy141c6+gPQ==", "engines": { - "node": ">=10" + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" @@ -10702,6 +13904,14 @@ "node": ">=0.10.0" } }, + "node_modules/is-reference": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/is-reference/-/is-reference-3.0.2.tgz", + "integrity": "sha512-v3rht/LgVcsdZa3O2Nqs+NMowLOxeOm7Ay9+/ARQ2F+qEoANRcqrjAZKGN0v8ymUetZGgkp26LTnGT7H0Qo9Pg==", + "dependencies": { + "@types/estree": "*" + } + }, "node_modules/is-regexp": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/is-regexp/-/is-regexp-1.0.0.tgz", @@ -10748,24 +13958,6 @@ "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", "integrity": "sha512-cyA56iCMHAh5CdzjJIa4aohJyeO1YbwLi3Jc35MmRU6poroFjIGZzUzupGiRPOjgHg9TLu43xbpwXk523fMxKA==" }, - "node_modules/is-whitespace-character": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/is-whitespace-character/-/is-whitespace-character-1.0.4.tgz", - "integrity": "sha512-SDweEzfIZM0SJV0EUga669UTKlmL0Pq8Lno0QDQsPnvECB3IM2aP0gdx5TrU0A01MAPfViaZiI2V1QMZLaKK5w==", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" - } - }, - "node_modules/is-word-character": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/is-word-character/-/is-word-character-1.0.4.tgz", - "integrity": "sha512-5SMO8RVennx3nZrqtKwCGyyetPE9VDba5ugvKLaD4KopPG5kR4mQ7tNt/r7feL5yt5h3lpuBbIUmCOG2eSzXHA==", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" - } - }, "node_modules/is-wsl": { "version": "2.2.0", "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-2.2.0.tgz", @@ -10778,9 +13970,12 @@ } }, "node_modules/is-yarn-global": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/is-yarn-global/-/is-yarn-global-0.3.0.tgz", - "integrity": "sha512-VjSeb/lHmkoyd8ryPVIKvOCn4D1koMqY+vqyjjUfc3xyKtP4dYOxM44sZrnqQSzSds3xyOrUTLTC9LVCVgLngw==" + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/is-yarn-global/-/is-yarn-global-0.4.1.tgz", + "integrity": "sha512-/kppl+R+LO5VmhYSEWARUFjodS25D68gvj8W7z0I7OWhUla5xWu8KL6CtB2V0R6yqhnRgbcaREMr4EEM6htLPQ==", + "engines": { + "node": ">=12" + } }, "node_modules/isarray": { "version": "0.0.1", @@ -10908,9 +14103,9 @@ } }, "node_modules/json-buffer": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.0.tgz", - "integrity": "sha512-CuUqjv0FUZIdXkHPI8MezCnFCdaTAacej1TZYulLoAg1h/PhwkdXFN4V/gzY4g+fMBCOV2xF+rp7t2XD2ns/NQ==" + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.1.tgz", + "integrity": "sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==" }, "node_modules/json-parse-even-better-errors": { "version": "2.3.1", @@ -10974,11 +14169,11 @@ } }, "node_modules/keyv": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/keyv/-/keyv-3.1.0.tgz", - "integrity": "sha512-9ykJ/46SN/9KPM/sichzQ7OvXyGDYKGTaDlKMGCAlg2UK8KRy4jb0d8sFc+0Tt0YYnThq8X2RZgCg74RPxgcVA==", + "version": "4.5.4", + "resolved": "https://registry.npmjs.org/keyv/-/keyv-4.5.4.tgz", + "integrity": "sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==", "dependencies": { - "json-buffer": "3.0.0" + "json-buffer": "3.0.1" } }, "node_modules/khroma": { @@ -11011,14 +14206,17 @@ } }, "node_modules/latest-version": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/latest-version/-/latest-version-5.1.0.tgz", - "integrity": "sha512-weT+r0kTkRQdCdYCNtkMwWXQTMEswKrFBkm4ckQOMVhhqhIMI1UT2hMj+1iigIhgSZm5gTmrRXBNoGUgaTY1xA==", + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/latest-version/-/latest-version-7.0.0.tgz", + "integrity": "sha512-KvNT4XqAMzdcL6ka6Tl3i2lYeFDgXNCuIX+xNx6ZMVR1dFq+idXd9FLKNMOIx0t9mJ9/HudyX4oZWXZQ0UJHeg==", "dependencies": { - "package-json": "^6.3.0" + "package-json": "^8.1.0" }, "engines": { - "node": ">=8" + "node": ">=14.16" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/launch-editor": { @@ -11030,6 +14228,11 @@ "shell-quote": "^1.8.1" } }, + "node_modules/layout-base": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/layout-base/-/layout-base-1.0.2.tgz", + "integrity": "sha512-8h2oVEZNktL4BH2JCOI90iD1yXwL6iNW7KcCKT2QZgQJR2vbqDsldCTPRU9NifTCqHZci57XvQQ15YTu+sTYPg==" + }, "node_modules/ldrs": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/ldrs/-/ldrs-1.0.1.tgz", @@ -11101,28 +14304,16 @@ "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==" }, - "node_modules/lodash.clonedeep": { - "version": "4.5.0", - "resolved": "https://registry.npmjs.org/lodash.clonedeep/-/lodash.clonedeep-4.5.0.tgz", - "integrity": "sha512-H5ZhCF25riFd9uB5UCkVKo61m3S/xZk1x4wA6yp/L3RFP6Z/eHH1ymQcGLo7J3GMPfm0V/7m1tryHuGVxpqEBQ==" - }, - "node_modules/lodash.curry": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/lodash.curry/-/lodash.curry-4.1.1.tgz", - "integrity": "sha512-/u14pXGviLaweY5JI0IUzgzF2J6Ne8INyzAZjImcryjgkZ+ebruBxy2/JaOOkTqScddcYtakjhSaeemV8lR0tA==", - "dev": true + "node_modules/lodash-es": { + "version": "4.17.21", + "resolved": "https://registry.npmjs.org/lodash-es/-/lodash-es-4.17.21.tgz", + "integrity": "sha512-mKnC+QJ9pWVzv+C4/U3rRsHapFfHvQFoFB92e52xeyGMcX6/OlIl78je1u8vePzYZSkkogMPJ2yjxxsb89cxyw==" }, "node_modules/lodash.debounce": { "version": "4.0.8", "resolved": "https://registry.npmjs.org/lodash.debounce/-/lodash.debounce-4.0.8.tgz", "integrity": "sha512-FT1yDzDYEoYWhnSGnpE/4Kj1fLZkDFyqRb7fNt6FdYOSxlUWAtp42Eh6Wb0rGIv/m9Bgo7x4GhQbm5Ys4SG5ow==" }, - "node_modules/lodash.flow": { - "version": "3.5.0", - "resolved": "https://registry.npmjs.org/lodash.flow/-/lodash.flow-3.5.0.tgz", - "integrity": "sha512-ff3BX/tSioo+XojX4MOsOMhJw0nZoUEF011LX8g8d3gvjVbxd89cCio4BCXronjxcTUIJUoqKEUA+n4CqvvRPw==", - "dev": true - }, "node_modules/lodash.isequal": { "version": "4.5.0", "resolved": "https://registry.npmjs.org/lodash.isequal/-/lodash.isequal-4.5.0.tgz", @@ -11138,6 +14329,15 @@ "resolved": "https://registry.npmjs.org/lodash.uniq/-/lodash.uniq-4.5.0.tgz", "integrity": "sha512-xfBaXQd9ryd9dlSDvnvI0lvxfLJlYAZzXomUYzLKtUeOQvOP5piqAWuGtrhWeqaXK9hhoM/iyJc5AV+XfsX3HQ==" }, + "node_modules/longest-streak": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/longest-streak/-/longest-streak-3.1.0.tgz", + "integrity": "sha512-9Ri+o0JYgehTaVBBDoMqIl8GXtbWg711O3srftcHhZ0dqnETqLaoIK0x17fUw9rFSlK/0NlsKe0Ahhyl5pXE2g==", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, "node_modules/loose-envify": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz", @@ -11158,11 +14358,14 @@ } }, "node_modules/lowercase-keys": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-1.0.1.tgz", - "integrity": "sha512-G2Lj61tXDnVFFOi8VZds+SoQjtQC3dgokKdDG2mTm1tx4m50NUHBOZSBwQQHyy0V12A0JTG4icfZQH+xPyh8VA==", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-3.0.0.tgz", + "integrity": "sha512-ozCC6gdQ+glXOQsveKD0YsDy8DSQFjDTz4zyzEHNV5+JP5D62LmfDZ6o1cycFx9ouG940M5dE8C8CTewdj2YWQ==", "engines": { - "node": ">=0.10.0" + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/lru-cache": { @@ -11173,32 +14376,21 @@ "yallist": "^3.0.2" } }, - "node_modules/make-dir": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz", - "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==", - "dependencies": { - "semver": "^6.0.0" - }, + "node_modules/markdown-extensions": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/markdown-extensions/-/markdown-extensions-2.0.0.tgz", + "integrity": "sha512-o5vL7aDWatOTX8LzaS1WMoaoxIiLRQJuIKKe2wAw6IeULDHaqbiqiggmx+pKvZDb1Sj+pE46Sn1T7lCqfFtg1Q==", "engines": { - "node": ">=8" + "node": ">=16" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/make-dir/node_modules/semver": { - "version": "6.3.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", - "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", - "bin": { - "semver": "bin/semver.js" - } - }, - "node_modules/markdown-escapes": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/markdown-escapes/-/markdown-escapes-1.0.4.tgz", - "integrity": "sha512-8z4efJYk43E0upd0NbVXwgSTQs6cT3T06etieCMEg7dRbzCbxUCK/GHlX8mhHRDcp+OLlHkPKsvqQTCvsRl2cg==", + "node_modules/markdown-table": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/markdown-table/-/markdown-table-3.0.3.tgz", + "integrity": "sha512-Z1NL3Tb1M9wH4XESsCDEksWoKTdlUafKc4pt0GRwjUyXaCFZ+dc3g2erqB6zm3szA2IUSi7VnPI+o/9jnxh9hw==", "funding": { "type": "github", "url": "https://github.com/sponsors/wooorm" @@ -11214,30 +14406,612 @@ "safe-buffer": "^5.1.2" } }, - "node_modules/mdast-squeeze-paragraphs": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/mdast-squeeze-paragraphs/-/mdast-squeeze-paragraphs-4.0.0.tgz", - "integrity": "sha512-zxdPn69hkQ1rm4J+2Cs2j6wDEv7O17TfXTJ33tl/+JPIoEmtV9t2ZzBM5LPHE8QlHsmVD8t3vPKCyY3oH+H8MQ==", + "node_modules/mdast-util-directive": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/mdast-util-directive/-/mdast-util-directive-3.0.0.tgz", + "integrity": "sha512-JUpYOqKI4mM3sZcNxmF/ox04XYFFkNwr0CFlrQIkCwbvH0xzMCqkMqAde9wRd80VAhaUrwFwKm2nxretdT1h7Q==", "dependencies": { - "unist-util-remove": "^2.0.0" + "@types/mdast": "^4.0.0", + "@types/unist": "^3.0.0", + "devlop": "^1.0.0", + "mdast-util-from-markdown": "^2.0.0", + "mdast-util-to-markdown": "^2.0.0", + "parse-entities": "^4.0.0", + "stringify-entities": "^4.0.0", + "unist-util-visit-parents": "^6.0.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/unified" } }, - "node_modules/mdast-util-definitions": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/mdast-util-definitions/-/mdast-util-definitions-4.0.0.tgz", - "integrity": "sha512-k8AJ6aNnUkB7IE+5azR9h81O5EQ/cTDXtWdMq9Kk5KcEW/8ritU5CeLg/9HhOC++nALHBlaogJ5jz0Ybk3kPMQ==", + "node_modules/mdast-util-directive/node_modules/@types/mdast": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/@types/mdast/-/mdast-4.0.4.tgz", + "integrity": "sha512-kGaNbPh1k7AFzgpud/gMdvIm5xuECykRR+JnWKQno9TAXVa6WIVCGTPvYGekIDL4uwCZQSYbUxNBSb1aUo79oA==", "dependencies": { - "unist-util-visit": "^2.0.0" + "@types/unist": "*" + } + }, + "node_modules/mdast-util-directive/node_modules/@types/unist": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/@types/unist/-/unist-3.0.2.tgz", + "integrity": "sha512-dqId9J8K/vGi5Zr7oo212BGii5m3q5Hxlkwy3WpYuKPklmBEvsbMYYyLxAQpSffdLl/gdW0XUpKWFvYmyoWCoQ==" + }, + "node_modules/mdast-util-directive/node_modules/character-entities": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/character-entities/-/character-entities-2.0.2.tgz", + "integrity": "sha512-shx7oQ0Awen/BRIdkjkvz54PnEEI/EjwXDSIZp86/KKdbafHh1Df/RYGBhn4hbe2+uKC9FnT5UCEdyPz3ai9hQ==", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/mdast-util-directive/node_modules/character-entities-legacy": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/character-entities-legacy/-/character-entities-legacy-3.0.0.tgz", + "integrity": "sha512-RpPp0asT/6ufRm//AJVwpViZbGM/MkjQFxJccQRHmISF/22NBtsHqAWmL+/pmkPWoIUJdWyeVleTl1wydHATVQ==", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/mdast-util-directive/node_modules/character-reference-invalid": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/character-reference-invalid/-/character-reference-invalid-2.0.1.tgz", + "integrity": "sha512-iBZ4F4wRbyORVsu0jPV7gXkOsGYjGHPmAyv+HiHG8gi5PtC9KI2j1+v8/tlibRvjoWX027ypmG/n0HtO5t7unw==", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/mdast-util-directive/node_modules/is-alphabetical": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-alphabetical/-/is-alphabetical-2.0.1.tgz", + "integrity": "sha512-FWyyY60MeTNyeSRpkM2Iry0G9hpr7/9kD40mD/cGQEuilcZYS4okz8SN2Q6rLCJ8gbCt6fN+rC+6tMGS99LaxQ==", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/mdast-util-directive/node_modules/is-alphanumerical": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-alphanumerical/-/is-alphanumerical-2.0.1.tgz", + "integrity": "sha512-hmbYhX/9MUMF5uh7tOXyK/n0ZvWpad5caBA17GsC6vyuCqaWliRG5K1qS9inmUhEMaOBIW7/whAnSwveW/LtZw==", + "dependencies": { + "is-alphabetical": "^2.0.0", + "is-decimal": "^2.0.0" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/mdast-util-directive/node_modules/is-decimal": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-decimal/-/is-decimal-2.0.1.tgz", + "integrity": "sha512-AAB9hiomQs5DXWcRB1rqsxGUstbRroFOPPVAomNk/3XHR5JyEZChOyTWe2oayKnsSsr/kcGqF+z6yuH6HHpN0A==", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/mdast-util-directive/node_modules/is-hexadecimal": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-hexadecimal/-/is-hexadecimal-2.0.1.tgz", + "integrity": "sha512-DgZQp241c8oO6cA1SbTEWiXeoxV42vlcJxgH+B3hi1AiqqKruZR3ZGF8In3fj4+/y/7rHvlOZLZtgJ/4ttYGZg==", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/mdast-util-directive/node_modules/mdast-util-from-markdown": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/mdast-util-from-markdown/-/mdast-util-from-markdown-2.0.1.tgz", + "integrity": "sha512-aJEUyzZ6TzlsX2s5B4Of7lN7EQtAxvtradMMglCQDyaTFgse6CmtmdJ15ElnVRlCg1vpNyVtbem0PWzlNieZsA==", + "dependencies": { + "@types/mdast": "^4.0.0", + "@types/unist": "^3.0.0", + "decode-named-character-reference": "^1.0.0", + "devlop": "^1.0.0", + "mdast-util-to-string": "^4.0.0", + "micromark": "^4.0.0", + "micromark-util-decode-numeric-character-reference": "^2.0.0", + "micromark-util-decode-string": "^2.0.0", + "micromark-util-normalize-identifier": "^2.0.0", + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0", + "unist-util-stringify-position": "^4.0.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/unified" } }, + "node_modules/mdast-util-directive/node_modules/micromark": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/micromark/-/micromark-4.0.0.tgz", + "integrity": "sha512-o/sd0nMof8kYff+TqcDx3VSrgBTcZpSvYcAHIfHhv5VAuNmisCxjhx6YmxS8PFEpb9z5WKWKPdzf0jM23ro3RQ==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "dependencies": { + "@types/debug": "^4.0.0", + "debug": "^4.0.0", + "decode-named-character-reference": "^1.0.0", + "devlop": "^1.0.0", + "micromark-core-commonmark": "^2.0.0", + "micromark-factory-space": "^2.0.0", + "micromark-util-character": "^2.0.0", + "micromark-util-chunked": "^2.0.0", + "micromark-util-combine-extensions": "^2.0.0", + "micromark-util-decode-numeric-character-reference": "^2.0.0", + "micromark-util-encode": "^2.0.0", + "micromark-util-normalize-identifier": "^2.0.0", + "micromark-util-resolve-all": "^2.0.0", + "micromark-util-sanitize-uri": "^2.0.0", + "micromark-util-subtokenize": "^2.0.0", + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" + } + }, + "node_modules/mdast-util-directive/node_modules/micromark-core-commonmark": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-core-commonmark/-/micromark-core-commonmark-2.0.1.tgz", + "integrity": "sha512-CUQyKr1e///ZODyD1U3xit6zXwy1a8q2a1S1HKtIlmgvurrEpaw/Y9y6KSIbF8P59cn/NjzHyO+Q2fAyYLQrAA==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "dependencies": { + "decode-named-character-reference": "^1.0.0", + "devlop": "^1.0.0", + "micromark-factory-destination": "^2.0.0", + "micromark-factory-label": "^2.0.0", + "micromark-factory-space": "^2.0.0", + "micromark-factory-title": "^2.0.0", + "micromark-factory-whitespace": "^2.0.0", + "micromark-util-character": "^2.0.0", + "micromark-util-chunked": "^2.0.0", + "micromark-util-classify-character": "^2.0.0", + "micromark-util-html-tag-name": "^2.0.0", + "micromark-util-normalize-identifier": "^2.0.0", + "micromark-util-resolve-all": "^2.0.0", + "micromark-util-subtokenize": "^2.0.0", + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" + } + }, + "node_modules/mdast-util-directive/node_modules/micromark-factory-destination": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/micromark-factory-destination/-/micromark-factory-destination-2.0.0.tgz", + "integrity": "sha512-j9DGrQLm/Uhl2tCzcbLhy5kXsgkHUrjJHg4fFAeoMRwJmJerT9aw4FEhIbZStWN8A3qMwOp1uzHr4UL8AInxtA==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "dependencies": { + "micromark-util-character": "^2.0.0", + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" + } + }, + "node_modules/mdast-util-directive/node_modules/micromark-factory-label": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/micromark-factory-label/-/micromark-factory-label-2.0.0.tgz", + "integrity": "sha512-RR3i96ohZGde//4WSe/dJsxOX6vxIg9TimLAS3i4EhBAFx8Sm5SmqVfR8E87DPSR31nEAjZfbt91OMZWcNgdZw==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "dependencies": { + "devlop": "^1.0.0", + "micromark-util-character": "^2.0.0", + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" + } + }, + "node_modules/mdast-util-directive/node_modules/micromark-factory-space": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/micromark-factory-space/-/micromark-factory-space-2.0.0.tgz", + "integrity": "sha512-TKr+LIDX2pkBJXFLzpyPyljzYK3MtmllMUMODTQJIUfDGncESaqB90db9IAUcz4AZAJFdd8U9zOp9ty1458rxg==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "dependencies": { + "micromark-util-character": "^2.0.0", + "micromark-util-types": "^2.0.0" + } + }, + "node_modules/mdast-util-directive/node_modules/micromark-factory-title": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/micromark-factory-title/-/micromark-factory-title-2.0.0.tgz", + "integrity": "sha512-jY8CSxmpWLOxS+t8W+FG3Xigc0RDQA9bKMY/EwILvsesiRniiVMejYTE4wumNc2f4UbAa4WsHqe3J1QS1sli+A==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "dependencies": { + "micromark-factory-space": "^2.0.0", + "micromark-util-character": "^2.0.0", + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" + } + }, + "node_modules/mdast-util-directive/node_modules/micromark-factory-whitespace": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/micromark-factory-whitespace/-/micromark-factory-whitespace-2.0.0.tgz", + "integrity": "sha512-28kbwaBjc5yAI1XadbdPYHX/eDnqaUFVikLwrO7FDnKG7lpgxnvk/XGRhX/PN0mOZ+dBSZ+LgunHS+6tYQAzhA==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "dependencies": { + "micromark-factory-space": "^2.0.0", + "micromark-util-character": "^2.0.0", + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" + } + }, + "node_modules/mdast-util-directive/node_modules/micromark-util-character": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/micromark-util-character/-/micromark-util-character-2.1.0.tgz", + "integrity": "sha512-KvOVV+X1yLBfs9dCBSopq/+G1PcgT3lAK07mC4BzXi5E7ahzMAF8oIupDDJ6mievI6F+lAATkbQQlQixJfT3aQ==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "dependencies": { + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" + } + }, + "node_modules/mdast-util-directive/node_modules/micromark-util-chunked": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/micromark-util-chunked/-/micromark-util-chunked-2.0.0.tgz", + "integrity": "sha512-anK8SWmNphkXdaKgz5hJvGa7l00qmcaUQoMYsBwDlSKFKjc6gjGXPDw3FNL3Nbwq5L8gE+RCbGqTw49FK5Qyvg==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "dependencies": { + "micromark-util-symbol": "^2.0.0" + } + }, + "node_modules/mdast-util-directive/node_modules/micromark-util-classify-character": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/micromark-util-classify-character/-/micromark-util-classify-character-2.0.0.tgz", + "integrity": "sha512-S0ze2R9GH+fu41FA7pbSqNWObo/kzwf8rN/+IGlW/4tC6oACOs8B++bh+i9bVyNnwCcuksbFwsBme5OCKXCwIw==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "dependencies": { + "micromark-util-character": "^2.0.0", + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" + } + }, + "node_modules/mdast-util-directive/node_modules/micromark-util-combine-extensions": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/micromark-util-combine-extensions/-/micromark-util-combine-extensions-2.0.0.tgz", + "integrity": "sha512-vZZio48k7ON0fVS3CUgFatWHoKbbLTK/rT7pzpJ4Bjp5JjkZeasRfrS9wsBdDJK2cJLHMckXZdzPSSr1B8a4oQ==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "dependencies": { + "micromark-util-chunked": "^2.0.0", + "micromark-util-types": "^2.0.0" + } + }, + "node_modules/mdast-util-directive/node_modules/micromark-util-decode-numeric-character-reference": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-util-decode-numeric-character-reference/-/micromark-util-decode-numeric-character-reference-2.0.1.tgz", + "integrity": "sha512-bmkNc7z8Wn6kgjZmVHOX3SowGmVdhYS7yBpMnuMnPzDq/6xwVA604DuOXMZTO1lvq01g+Adfa0pE2UKGlxL1XQ==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "dependencies": { + "micromark-util-symbol": "^2.0.0" + } + }, + "node_modules/mdast-util-directive/node_modules/micromark-util-decode-string": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/micromark-util-decode-string/-/micromark-util-decode-string-2.0.0.tgz", + "integrity": "sha512-r4Sc6leeUTn3P6gk20aFMj2ntPwn6qpDZqWvYmAG6NgvFTIlj4WtrAudLi65qYoaGdXYViXYw2pkmn7QnIFasA==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "dependencies": { + "decode-named-character-reference": "^1.0.0", + "micromark-util-character": "^2.0.0", + "micromark-util-decode-numeric-character-reference": "^2.0.0", + "micromark-util-symbol": "^2.0.0" + } + }, + "node_modules/mdast-util-directive/node_modules/micromark-util-encode": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/micromark-util-encode/-/micromark-util-encode-2.0.0.tgz", + "integrity": "sha512-pS+ROfCXAGLWCOc8egcBvT0kf27GoWMqtdarNfDcjb6YLuV5cM3ioG45Ys2qOVqeqSbjaKg72vU+Wby3eddPsA==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ] + }, + "node_modules/mdast-util-directive/node_modules/micromark-util-html-tag-name": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/micromark-util-html-tag-name/-/micromark-util-html-tag-name-2.0.0.tgz", + "integrity": "sha512-xNn4Pqkj2puRhKdKTm8t1YHC/BAjx6CEwRFXntTaRf/x16aqka6ouVoutm+QdkISTlT7e2zU7U4ZdlDLJd2Mcw==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ] + }, + "node_modules/mdast-util-directive/node_modules/micromark-util-normalize-identifier": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/micromark-util-normalize-identifier/-/micromark-util-normalize-identifier-2.0.0.tgz", + "integrity": "sha512-2xhYT0sfo85FMrUPtHcPo2rrp1lwbDEEzpx7jiH2xXJLqBuy4H0GgXk5ToU8IEwoROtXuL8ND0ttVa4rNqYK3w==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "dependencies": { + "micromark-util-symbol": "^2.0.0" + } + }, + "node_modules/mdast-util-directive/node_modules/micromark-util-resolve-all": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/micromark-util-resolve-all/-/micromark-util-resolve-all-2.0.0.tgz", + "integrity": "sha512-6KU6qO7DZ7GJkaCgwBNtplXCvGkJToU86ybBAUdavvgsCiG8lSSvYxr9MhwmQ+udpzywHsl4RpGJsYWG1pDOcA==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "dependencies": { + "micromark-util-types": "^2.0.0" + } + }, + "node_modules/mdast-util-directive/node_modules/micromark-util-sanitize-uri": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/micromark-util-sanitize-uri/-/micromark-util-sanitize-uri-2.0.0.tgz", + "integrity": "sha512-WhYv5UEcZrbAtlsnPuChHUAsu/iBPOVaEVsntLBIdpibO0ddy8OzavZz3iL2xVvBZOpolujSliP65Kq0/7KIYw==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "dependencies": { + "micromark-util-character": "^2.0.0", + "micromark-util-encode": "^2.0.0", + "micromark-util-symbol": "^2.0.0" + } + }, + "node_modules/mdast-util-directive/node_modules/micromark-util-subtokenize": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-util-subtokenize/-/micromark-util-subtokenize-2.0.1.tgz", + "integrity": "sha512-jZNtiFl/1aY73yS3UGQkutD0UbhTt68qnRpw2Pifmz5wV9h8gOVsN70v+Lq/f1rKaU/W8pxRe8y8Q9FX1AOe1Q==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "dependencies": { + "devlop": "^1.0.0", + "micromark-util-chunked": "^2.0.0", + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" + } + }, + "node_modules/mdast-util-directive/node_modules/micromark-util-symbol": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/micromark-util-symbol/-/micromark-util-symbol-2.0.0.tgz", + "integrity": "sha512-8JZt9ElZ5kyTnO94muPxIGS8oyElRJaiJO8EzV6ZSyGQ1Is8xwl4Q45qU5UOg+bGH4AikWziz0iN4sFLWs8PGw==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ] + }, + "node_modules/mdast-util-directive/node_modules/micromark-util-types": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/micromark-util-types/-/micromark-util-types-2.0.0.tgz", + "integrity": "sha512-oNh6S2WMHWRZrmutsRmDDfkzKtxF+bc2VxLC9dvtrDIRFln627VsFP6fLMgTryGDljgLPjkrzQSDcPrjPyDJ5w==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ] + }, + "node_modules/mdast-util-directive/node_modules/parse-entities": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/parse-entities/-/parse-entities-4.0.1.tgz", + "integrity": "sha512-SWzvYcSJh4d/SGLIOQfZ/CoNv6BTlI6YEQ7Nj82oDVnRpwe/Z/F1EMx42x3JAOwGBlCjeCH0BRJQbQ/opHL17w==", + "dependencies": { + "@types/unist": "^2.0.0", + "character-entities": "^2.0.0", + "character-entities-legacy": "^3.0.0", + "character-reference-invalid": "^2.0.0", + "decode-named-character-reference": "^1.0.0", + "is-alphanumerical": "^2.0.0", + "is-decimal": "^2.0.0", + "is-hexadecimal": "^2.0.0" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/mdast-util-directive/node_modules/parse-entities/node_modules/@types/unist": { + "version": "2.0.10", + "resolved": "https://registry.npmjs.org/@types/unist/-/unist-2.0.10.tgz", + "integrity": "sha512-IfYcSBWE3hLpBg8+X2SEa8LVkJdJEkT2Ese2aaLs3ptGdVtABxndrMaxuFlQ1qdFf9Q5rDvDpxI3WwgvKFAsQA==" + }, + "node_modules/mdast-util-find-and-replace": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/mdast-util-find-and-replace/-/mdast-util-find-and-replace-3.0.1.tgz", + "integrity": "sha512-SG21kZHGC3XRTSUhtofZkBzZTJNM5ecCi0SK2IMKmSXR8vO3peL+kb1O0z7Zl83jKtutG4k5Wv/W7V3/YHvzPA==", + "dependencies": { + "@types/mdast": "^4.0.0", + "escape-string-regexp": "^5.0.0", + "unist-util-is": "^6.0.0", + "unist-util-visit-parents": "^6.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/mdast-util-find-and-replace/node_modules/@types/mdast": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/@types/mdast/-/mdast-4.0.4.tgz", + "integrity": "sha512-kGaNbPh1k7AFzgpud/gMdvIm5xuECykRR+JnWKQno9TAXVa6WIVCGTPvYGekIDL4uwCZQSYbUxNBSb1aUo79oA==", + "dependencies": { + "@types/unist": "*" + } + }, + "node_modules/mdast-util-find-and-replace/node_modules/@types/unist": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/@types/unist/-/unist-3.0.2.tgz", + "integrity": "sha512-dqId9J8K/vGi5Zr7oo212BGii5m3q5Hxlkwy3WpYuKPklmBEvsbMYYyLxAQpSffdLl/gdW0XUpKWFvYmyoWCoQ==" + }, + "node_modules/mdast-util-find-and-replace/node_modules/escape-string-regexp": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-5.0.0.tgz", + "integrity": "sha512-/veY75JbMK4j1yjvuUxuVsiS/hr/4iHs9FTT6cgTexxdE0Ly/glccBAkloH/DofkjRbZU3bnoj38mOmhkZ0lHw==", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/mdast-util-from-markdown": { "version": "1.3.1", "resolved": "https://registry.npmjs.org/mdast-util-from-markdown/-/mdast-util-from-markdown-1.3.1.tgz", @@ -11285,44 +15059,5267 @@ "url": "https://opencollective.com/unified" } }, - "node_modules/mdast-util-to-hast": { - "version": "10.0.1", - "resolved": "https://registry.npmjs.org/mdast-util-to-hast/-/mdast-util-to-hast-10.0.1.tgz", - "integrity": "sha512-BW3LM9SEMnjf4HXXVApZMt8gLQWVNXc3jryK0nJu/rOXPOnlkUjmdkDlmxMirpbU9ILncGFIwLH/ubnWBbcdgA==", + "node_modules/mdast-util-frontmatter": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/mdast-util-frontmatter/-/mdast-util-frontmatter-2.0.1.tgz", + "integrity": "sha512-LRqI9+wdgC25P0URIJY9vwocIzCcksduHQ9OF2joxQoyTNVduwLAFUzjoopuRJbJAReaKrNQKAZKL3uCMugWJA==", "dependencies": { - "@types/mdast": "^3.0.0", - "@types/unist": "^2.0.0", - "mdast-util-definitions": "^4.0.0", - "mdurl": "^1.0.0", - "unist-builder": "^2.0.0", - "unist-util-generated": "^1.0.0", - "unist-util-position": "^3.0.0", - "unist-util-visit": "^2.0.0" + "@types/mdast": "^4.0.0", + "devlop": "^1.0.0", + "escape-string-regexp": "^5.0.0", + "mdast-util-from-markdown": "^2.0.0", + "mdast-util-to-markdown": "^2.0.0", + "micromark-extension-frontmatter": "^2.0.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/unified" } }, - "node_modules/mdast-util-to-string": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/mdast-util-to-string/-/mdast-util-to-string-2.0.0.tgz", - "integrity": "sha512-AW4DRS3QbBayY/jJmD8437V1Gombjf8RSOUCMFBuo5iHi58AGEgVCKQ+ezHkZZDpAQS75hcBMpLqjpJTjtUL7w==", + "node_modules/mdast-util-frontmatter/node_modules/@types/mdast": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/@types/mdast/-/mdast-4.0.4.tgz", + "integrity": "sha512-kGaNbPh1k7AFzgpud/gMdvIm5xuECykRR+JnWKQno9TAXVa6WIVCGTPvYGekIDL4uwCZQSYbUxNBSb1aUo79oA==", + "dependencies": { + "@types/unist": "*" + } + }, + "node_modules/mdast-util-frontmatter/node_modules/@types/unist": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/@types/unist/-/unist-3.0.2.tgz", + "integrity": "sha512-dqId9J8K/vGi5Zr7oo212BGii5m3q5Hxlkwy3WpYuKPklmBEvsbMYYyLxAQpSffdLl/gdW0XUpKWFvYmyoWCoQ==" + }, + "node_modules/mdast-util-frontmatter/node_modules/escape-string-regexp": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-5.0.0.tgz", + "integrity": "sha512-/veY75JbMK4j1yjvuUxuVsiS/hr/4iHs9FTT6cgTexxdE0Ly/glccBAkloH/DofkjRbZU3bnoj38mOmhkZ0lHw==", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/mdast-util-frontmatter/node_modules/mdast-util-from-markdown": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/mdast-util-from-markdown/-/mdast-util-from-markdown-2.0.1.tgz", + "integrity": "sha512-aJEUyzZ6TzlsX2s5B4Of7lN7EQtAxvtradMMglCQDyaTFgse6CmtmdJ15ElnVRlCg1vpNyVtbem0PWzlNieZsA==", + "dependencies": { + "@types/mdast": "^4.0.0", + "@types/unist": "^3.0.0", + "decode-named-character-reference": "^1.0.0", + "devlop": "^1.0.0", + "mdast-util-to-string": "^4.0.0", + "micromark": "^4.0.0", + "micromark-util-decode-numeric-character-reference": "^2.0.0", + "micromark-util-decode-string": "^2.0.0", + "micromark-util-normalize-identifier": "^2.0.0", + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0", + "unist-util-stringify-position": "^4.0.0" + }, "funding": { "type": "opencollective", "url": "https://opencollective.com/unified" } }, + "node_modules/mdast-util-frontmatter/node_modules/micromark": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/micromark/-/micromark-4.0.0.tgz", + "integrity": "sha512-o/sd0nMof8kYff+TqcDx3VSrgBTcZpSvYcAHIfHhv5VAuNmisCxjhx6YmxS8PFEpb9z5WKWKPdzf0jM23ro3RQ==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "dependencies": { + "@types/debug": "^4.0.0", + "debug": "^4.0.0", + "decode-named-character-reference": "^1.0.0", + "devlop": "^1.0.0", + "micromark-core-commonmark": "^2.0.0", + "micromark-factory-space": "^2.0.0", + "micromark-util-character": "^2.0.0", + "micromark-util-chunked": "^2.0.0", + "micromark-util-combine-extensions": "^2.0.0", + "micromark-util-decode-numeric-character-reference": "^2.0.0", + "micromark-util-encode": "^2.0.0", + "micromark-util-normalize-identifier": "^2.0.0", + "micromark-util-resolve-all": "^2.0.0", + "micromark-util-sanitize-uri": "^2.0.0", + "micromark-util-subtokenize": "^2.0.0", + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" + } + }, + "node_modules/mdast-util-frontmatter/node_modules/micromark-core-commonmark": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-core-commonmark/-/micromark-core-commonmark-2.0.1.tgz", + "integrity": "sha512-CUQyKr1e///ZODyD1U3xit6zXwy1a8q2a1S1HKtIlmgvurrEpaw/Y9y6KSIbF8P59cn/NjzHyO+Q2fAyYLQrAA==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "dependencies": { + "decode-named-character-reference": "^1.0.0", + "devlop": "^1.0.0", + "micromark-factory-destination": "^2.0.0", + "micromark-factory-label": "^2.0.0", + "micromark-factory-space": "^2.0.0", + "micromark-factory-title": "^2.0.0", + "micromark-factory-whitespace": "^2.0.0", + "micromark-util-character": "^2.0.0", + "micromark-util-chunked": "^2.0.0", + "micromark-util-classify-character": "^2.0.0", + "micromark-util-html-tag-name": "^2.0.0", + "micromark-util-normalize-identifier": "^2.0.0", + "micromark-util-resolve-all": "^2.0.0", + "micromark-util-subtokenize": "^2.0.0", + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" + } + }, + "node_modules/mdast-util-frontmatter/node_modules/micromark-factory-destination": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/micromark-factory-destination/-/micromark-factory-destination-2.0.0.tgz", + "integrity": "sha512-j9DGrQLm/Uhl2tCzcbLhy5kXsgkHUrjJHg4fFAeoMRwJmJerT9aw4FEhIbZStWN8A3qMwOp1uzHr4UL8AInxtA==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "dependencies": { + "micromark-util-character": "^2.0.0", + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" + } + }, + "node_modules/mdast-util-frontmatter/node_modules/micromark-factory-label": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/micromark-factory-label/-/micromark-factory-label-2.0.0.tgz", + "integrity": "sha512-RR3i96ohZGde//4WSe/dJsxOX6vxIg9TimLAS3i4EhBAFx8Sm5SmqVfR8E87DPSR31nEAjZfbt91OMZWcNgdZw==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "dependencies": { + "devlop": "^1.0.0", + "micromark-util-character": "^2.0.0", + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" + } + }, + "node_modules/mdast-util-frontmatter/node_modules/micromark-factory-space": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/micromark-factory-space/-/micromark-factory-space-2.0.0.tgz", + "integrity": "sha512-TKr+LIDX2pkBJXFLzpyPyljzYK3MtmllMUMODTQJIUfDGncESaqB90db9IAUcz4AZAJFdd8U9zOp9ty1458rxg==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "dependencies": { + "micromark-util-character": "^2.0.0", + "micromark-util-types": "^2.0.0" + } + }, + "node_modules/mdast-util-frontmatter/node_modules/micromark-factory-title": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/micromark-factory-title/-/micromark-factory-title-2.0.0.tgz", + "integrity": "sha512-jY8CSxmpWLOxS+t8W+FG3Xigc0RDQA9bKMY/EwILvsesiRniiVMejYTE4wumNc2f4UbAa4WsHqe3J1QS1sli+A==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "dependencies": { + "micromark-factory-space": "^2.0.0", + "micromark-util-character": "^2.0.0", + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" + } + }, + "node_modules/mdast-util-frontmatter/node_modules/micromark-factory-whitespace": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/micromark-factory-whitespace/-/micromark-factory-whitespace-2.0.0.tgz", + "integrity": "sha512-28kbwaBjc5yAI1XadbdPYHX/eDnqaUFVikLwrO7FDnKG7lpgxnvk/XGRhX/PN0mOZ+dBSZ+LgunHS+6tYQAzhA==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "dependencies": { + "micromark-factory-space": "^2.0.0", + "micromark-util-character": "^2.0.0", + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" + } + }, + "node_modules/mdast-util-frontmatter/node_modules/micromark-util-character": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/micromark-util-character/-/micromark-util-character-2.1.0.tgz", + "integrity": "sha512-KvOVV+X1yLBfs9dCBSopq/+G1PcgT3lAK07mC4BzXi5E7ahzMAF8oIupDDJ6mievI6F+lAATkbQQlQixJfT3aQ==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "dependencies": { + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" + } + }, + "node_modules/mdast-util-frontmatter/node_modules/micromark-util-chunked": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/micromark-util-chunked/-/micromark-util-chunked-2.0.0.tgz", + "integrity": "sha512-anK8SWmNphkXdaKgz5hJvGa7l00qmcaUQoMYsBwDlSKFKjc6gjGXPDw3FNL3Nbwq5L8gE+RCbGqTw49FK5Qyvg==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "dependencies": { + "micromark-util-symbol": "^2.0.0" + } + }, + "node_modules/mdast-util-frontmatter/node_modules/micromark-util-classify-character": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/micromark-util-classify-character/-/micromark-util-classify-character-2.0.0.tgz", + "integrity": "sha512-S0ze2R9GH+fu41FA7pbSqNWObo/kzwf8rN/+IGlW/4tC6oACOs8B++bh+i9bVyNnwCcuksbFwsBme5OCKXCwIw==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "dependencies": { + "micromark-util-character": "^2.0.0", + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" + } + }, + "node_modules/mdast-util-frontmatter/node_modules/micromark-util-combine-extensions": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/micromark-util-combine-extensions/-/micromark-util-combine-extensions-2.0.0.tgz", + "integrity": "sha512-vZZio48k7ON0fVS3CUgFatWHoKbbLTK/rT7pzpJ4Bjp5JjkZeasRfrS9wsBdDJK2cJLHMckXZdzPSSr1B8a4oQ==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "dependencies": { + "micromark-util-chunked": "^2.0.0", + "micromark-util-types": "^2.0.0" + } + }, + "node_modules/mdast-util-frontmatter/node_modules/micromark-util-decode-numeric-character-reference": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-util-decode-numeric-character-reference/-/micromark-util-decode-numeric-character-reference-2.0.1.tgz", + "integrity": "sha512-bmkNc7z8Wn6kgjZmVHOX3SowGmVdhYS7yBpMnuMnPzDq/6xwVA604DuOXMZTO1lvq01g+Adfa0pE2UKGlxL1XQ==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "dependencies": { + "micromark-util-symbol": "^2.0.0" + } + }, + "node_modules/mdast-util-frontmatter/node_modules/micromark-util-decode-string": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/micromark-util-decode-string/-/micromark-util-decode-string-2.0.0.tgz", + "integrity": "sha512-r4Sc6leeUTn3P6gk20aFMj2ntPwn6qpDZqWvYmAG6NgvFTIlj4WtrAudLi65qYoaGdXYViXYw2pkmn7QnIFasA==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "dependencies": { + "decode-named-character-reference": "^1.0.0", + "micromark-util-character": "^2.0.0", + "micromark-util-decode-numeric-character-reference": "^2.0.0", + "micromark-util-symbol": "^2.0.0" + } + }, + "node_modules/mdast-util-frontmatter/node_modules/micromark-util-encode": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/micromark-util-encode/-/micromark-util-encode-2.0.0.tgz", + "integrity": "sha512-pS+ROfCXAGLWCOc8egcBvT0kf27GoWMqtdarNfDcjb6YLuV5cM3ioG45Ys2qOVqeqSbjaKg72vU+Wby3eddPsA==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ] + }, + "node_modules/mdast-util-frontmatter/node_modules/micromark-util-html-tag-name": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/micromark-util-html-tag-name/-/micromark-util-html-tag-name-2.0.0.tgz", + "integrity": "sha512-xNn4Pqkj2puRhKdKTm8t1YHC/BAjx6CEwRFXntTaRf/x16aqka6ouVoutm+QdkISTlT7e2zU7U4ZdlDLJd2Mcw==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ] + }, + "node_modules/mdast-util-frontmatter/node_modules/micromark-util-normalize-identifier": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/micromark-util-normalize-identifier/-/micromark-util-normalize-identifier-2.0.0.tgz", + "integrity": "sha512-2xhYT0sfo85FMrUPtHcPo2rrp1lwbDEEzpx7jiH2xXJLqBuy4H0GgXk5ToU8IEwoROtXuL8ND0ttVa4rNqYK3w==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "dependencies": { + "micromark-util-symbol": "^2.0.0" + } + }, + "node_modules/mdast-util-frontmatter/node_modules/micromark-util-resolve-all": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/micromark-util-resolve-all/-/micromark-util-resolve-all-2.0.0.tgz", + "integrity": "sha512-6KU6qO7DZ7GJkaCgwBNtplXCvGkJToU86ybBAUdavvgsCiG8lSSvYxr9MhwmQ+udpzywHsl4RpGJsYWG1pDOcA==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "dependencies": { + "micromark-util-types": "^2.0.0" + } + }, + "node_modules/mdast-util-frontmatter/node_modules/micromark-util-sanitize-uri": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/micromark-util-sanitize-uri/-/micromark-util-sanitize-uri-2.0.0.tgz", + "integrity": "sha512-WhYv5UEcZrbAtlsnPuChHUAsu/iBPOVaEVsntLBIdpibO0ddy8OzavZz3iL2xVvBZOpolujSliP65Kq0/7KIYw==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "dependencies": { + "micromark-util-character": "^2.0.0", + "micromark-util-encode": "^2.0.0", + "micromark-util-symbol": "^2.0.0" + } + }, + "node_modules/mdast-util-frontmatter/node_modules/micromark-util-subtokenize": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-util-subtokenize/-/micromark-util-subtokenize-2.0.1.tgz", + "integrity": "sha512-jZNtiFl/1aY73yS3UGQkutD0UbhTt68qnRpw2Pifmz5wV9h8gOVsN70v+Lq/f1rKaU/W8pxRe8y8Q9FX1AOe1Q==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "dependencies": { + "devlop": "^1.0.0", + "micromark-util-chunked": "^2.0.0", + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" + } + }, + "node_modules/mdast-util-frontmatter/node_modules/micromark-util-symbol": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/micromark-util-symbol/-/micromark-util-symbol-2.0.0.tgz", + "integrity": "sha512-8JZt9ElZ5kyTnO94muPxIGS8oyElRJaiJO8EzV6ZSyGQ1Is8xwl4Q45qU5UOg+bGH4AikWziz0iN4sFLWs8PGw==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ] + }, + "node_modules/mdast-util-frontmatter/node_modules/micromark-util-types": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/micromark-util-types/-/micromark-util-types-2.0.0.tgz", + "integrity": "sha512-oNh6S2WMHWRZrmutsRmDDfkzKtxF+bc2VxLC9dvtrDIRFln627VsFP6fLMgTryGDljgLPjkrzQSDcPrjPyDJ5w==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ] + }, + "node_modules/mdast-util-gfm": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/mdast-util-gfm/-/mdast-util-gfm-3.0.0.tgz", + "integrity": "sha512-dgQEX5Amaq+DuUqf26jJqSK9qgixgd6rYDHAv4aTBuA92cTknZlKpPfa86Z/s8Dj8xsAQpFfBmPUHWJBWqS4Bw==", + "dependencies": { + "mdast-util-from-markdown": "^2.0.0", + "mdast-util-gfm-autolink-literal": "^2.0.0", + "mdast-util-gfm-footnote": "^2.0.0", + "mdast-util-gfm-strikethrough": "^2.0.0", + "mdast-util-gfm-table": "^2.0.0", + "mdast-util-gfm-task-list-item": "^2.0.0", + "mdast-util-to-markdown": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/mdast-util-gfm-autolink-literal": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/mdast-util-gfm-autolink-literal/-/mdast-util-gfm-autolink-literal-2.0.0.tgz", + "integrity": "sha512-FyzMsduZZHSc3i0Px3PQcBT4WJY/X/RCtEJKuybiC6sjPqLv7h1yqAkmILZtuxMSsUyaLUWNp71+vQH2zqp5cg==", + "dependencies": { + "@types/mdast": "^4.0.0", + "ccount": "^2.0.0", + "devlop": "^1.0.0", + "mdast-util-find-and-replace": "^3.0.0", + "micromark-util-character": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/mdast-util-gfm-autolink-literal/node_modules/@types/mdast": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/@types/mdast/-/mdast-4.0.4.tgz", + "integrity": "sha512-kGaNbPh1k7AFzgpud/gMdvIm5xuECykRR+JnWKQno9TAXVa6WIVCGTPvYGekIDL4uwCZQSYbUxNBSb1aUo79oA==", + "dependencies": { + "@types/unist": "*" + } + }, + "node_modules/mdast-util-gfm-autolink-literal/node_modules/ccount": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/ccount/-/ccount-2.0.1.tgz", + "integrity": "sha512-eyrF0jiFpY+3drT6383f1qhkbGsLSifNAjA61IUjZjmLCWjItY6LB9ft9YhoDgwfmclB2zhu51Lc7+95b8NRAg==", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/mdast-util-gfm-autolink-literal/node_modules/micromark-util-character": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/micromark-util-character/-/micromark-util-character-2.1.0.tgz", + "integrity": "sha512-KvOVV+X1yLBfs9dCBSopq/+G1PcgT3lAK07mC4BzXi5E7ahzMAF8oIupDDJ6mievI6F+lAATkbQQlQixJfT3aQ==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "dependencies": { + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" + } + }, + "node_modules/mdast-util-gfm-autolink-literal/node_modules/micromark-util-symbol": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/micromark-util-symbol/-/micromark-util-symbol-2.0.0.tgz", + "integrity": "sha512-8JZt9ElZ5kyTnO94muPxIGS8oyElRJaiJO8EzV6ZSyGQ1Is8xwl4Q45qU5UOg+bGH4AikWziz0iN4sFLWs8PGw==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ] + }, + "node_modules/mdast-util-gfm-autolink-literal/node_modules/micromark-util-types": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/micromark-util-types/-/micromark-util-types-2.0.0.tgz", + "integrity": "sha512-oNh6S2WMHWRZrmutsRmDDfkzKtxF+bc2VxLC9dvtrDIRFln627VsFP6fLMgTryGDljgLPjkrzQSDcPrjPyDJ5w==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ] + }, + "node_modules/mdast-util-gfm-footnote": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/mdast-util-gfm-footnote/-/mdast-util-gfm-footnote-2.0.0.tgz", + "integrity": "sha512-5jOT2boTSVkMnQ7LTrd6n/18kqwjmuYqo7JUPe+tRCY6O7dAuTFMtTPauYYrMPpox9hlN0uOx/FL8XvEfG9/mQ==", + "dependencies": { + "@types/mdast": "^4.0.0", + "devlop": "^1.1.0", + "mdast-util-from-markdown": "^2.0.0", + "mdast-util-to-markdown": "^2.0.0", + "micromark-util-normalize-identifier": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/mdast-util-gfm-footnote/node_modules/@types/mdast": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/@types/mdast/-/mdast-4.0.4.tgz", + "integrity": "sha512-kGaNbPh1k7AFzgpud/gMdvIm5xuECykRR+JnWKQno9TAXVa6WIVCGTPvYGekIDL4uwCZQSYbUxNBSb1aUo79oA==", + "dependencies": { + "@types/unist": "*" + } + }, + "node_modules/mdast-util-gfm-footnote/node_modules/@types/unist": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/@types/unist/-/unist-3.0.2.tgz", + "integrity": "sha512-dqId9J8K/vGi5Zr7oo212BGii5m3q5Hxlkwy3WpYuKPklmBEvsbMYYyLxAQpSffdLl/gdW0XUpKWFvYmyoWCoQ==" + }, + "node_modules/mdast-util-gfm-footnote/node_modules/mdast-util-from-markdown": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/mdast-util-from-markdown/-/mdast-util-from-markdown-2.0.1.tgz", + "integrity": "sha512-aJEUyzZ6TzlsX2s5B4Of7lN7EQtAxvtradMMglCQDyaTFgse6CmtmdJ15ElnVRlCg1vpNyVtbem0PWzlNieZsA==", + "dependencies": { + "@types/mdast": "^4.0.0", + "@types/unist": "^3.0.0", + "decode-named-character-reference": "^1.0.0", + "devlop": "^1.0.0", + "mdast-util-to-string": "^4.0.0", + "micromark": "^4.0.0", + "micromark-util-decode-numeric-character-reference": "^2.0.0", + "micromark-util-decode-string": "^2.0.0", + "micromark-util-normalize-identifier": "^2.0.0", + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0", + "unist-util-stringify-position": "^4.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/mdast-util-gfm-footnote/node_modules/micromark": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/micromark/-/micromark-4.0.0.tgz", + "integrity": "sha512-o/sd0nMof8kYff+TqcDx3VSrgBTcZpSvYcAHIfHhv5VAuNmisCxjhx6YmxS8PFEpb9z5WKWKPdzf0jM23ro3RQ==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "dependencies": { + "@types/debug": "^4.0.0", + "debug": "^4.0.0", + "decode-named-character-reference": "^1.0.0", + "devlop": "^1.0.0", + "micromark-core-commonmark": "^2.0.0", + "micromark-factory-space": "^2.0.0", + "micromark-util-character": "^2.0.0", + "micromark-util-chunked": "^2.0.0", + "micromark-util-combine-extensions": "^2.0.0", + "micromark-util-decode-numeric-character-reference": "^2.0.0", + "micromark-util-encode": "^2.0.0", + "micromark-util-normalize-identifier": "^2.0.0", + "micromark-util-resolve-all": "^2.0.0", + "micromark-util-sanitize-uri": "^2.0.0", + "micromark-util-subtokenize": "^2.0.0", + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" + } + }, + "node_modules/mdast-util-gfm-footnote/node_modules/micromark-core-commonmark": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-core-commonmark/-/micromark-core-commonmark-2.0.1.tgz", + "integrity": "sha512-CUQyKr1e///ZODyD1U3xit6zXwy1a8q2a1S1HKtIlmgvurrEpaw/Y9y6KSIbF8P59cn/NjzHyO+Q2fAyYLQrAA==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "dependencies": { + "decode-named-character-reference": "^1.0.0", + "devlop": "^1.0.0", + "micromark-factory-destination": "^2.0.0", + "micromark-factory-label": "^2.0.0", + "micromark-factory-space": "^2.0.0", + "micromark-factory-title": "^2.0.0", + "micromark-factory-whitespace": "^2.0.0", + "micromark-util-character": "^2.0.0", + "micromark-util-chunked": "^2.0.0", + "micromark-util-classify-character": "^2.0.0", + "micromark-util-html-tag-name": "^2.0.0", + "micromark-util-normalize-identifier": "^2.0.0", + "micromark-util-resolve-all": "^2.0.0", + "micromark-util-subtokenize": "^2.0.0", + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" + } + }, + "node_modules/mdast-util-gfm-footnote/node_modules/micromark-factory-destination": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/micromark-factory-destination/-/micromark-factory-destination-2.0.0.tgz", + "integrity": "sha512-j9DGrQLm/Uhl2tCzcbLhy5kXsgkHUrjJHg4fFAeoMRwJmJerT9aw4FEhIbZStWN8A3qMwOp1uzHr4UL8AInxtA==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "dependencies": { + "micromark-util-character": "^2.0.0", + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" + } + }, + "node_modules/mdast-util-gfm-footnote/node_modules/micromark-factory-label": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/micromark-factory-label/-/micromark-factory-label-2.0.0.tgz", + "integrity": "sha512-RR3i96ohZGde//4WSe/dJsxOX6vxIg9TimLAS3i4EhBAFx8Sm5SmqVfR8E87DPSR31nEAjZfbt91OMZWcNgdZw==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "dependencies": { + "devlop": "^1.0.0", + "micromark-util-character": "^2.0.0", + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" + } + }, + "node_modules/mdast-util-gfm-footnote/node_modules/micromark-factory-space": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/micromark-factory-space/-/micromark-factory-space-2.0.0.tgz", + "integrity": "sha512-TKr+LIDX2pkBJXFLzpyPyljzYK3MtmllMUMODTQJIUfDGncESaqB90db9IAUcz4AZAJFdd8U9zOp9ty1458rxg==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "dependencies": { + "micromark-util-character": "^2.0.0", + "micromark-util-types": "^2.0.0" + } + }, + "node_modules/mdast-util-gfm-footnote/node_modules/micromark-factory-title": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/micromark-factory-title/-/micromark-factory-title-2.0.0.tgz", + "integrity": "sha512-jY8CSxmpWLOxS+t8W+FG3Xigc0RDQA9bKMY/EwILvsesiRniiVMejYTE4wumNc2f4UbAa4WsHqe3J1QS1sli+A==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "dependencies": { + "micromark-factory-space": "^2.0.0", + "micromark-util-character": "^2.0.0", + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" + } + }, + "node_modules/mdast-util-gfm-footnote/node_modules/micromark-factory-whitespace": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/micromark-factory-whitespace/-/micromark-factory-whitespace-2.0.0.tgz", + "integrity": "sha512-28kbwaBjc5yAI1XadbdPYHX/eDnqaUFVikLwrO7FDnKG7lpgxnvk/XGRhX/PN0mOZ+dBSZ+LgunHS+6tYQAzhA==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "dependencies": { + "micromark-factory-space": "^2.0.0", + "micromark-util-character": "^2.0.0", + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" + } + }, + "node_modules/mdast-util-gfm-footnote/node_modules/micromark-util-character": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/micromark-util-character/-/micromark-util-character-2.1.0.tgz", + "integrity": "sha512-KvOVV+X1yLBfs9dCBSopq/+G1PcgT3lAK07mC4BzXi5E7ahzMAF8oIupDDJ6mievI6F+lAATkbQQlQixJfT3aQ==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "dependencies": { + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" + } + }, + "node_modules/mdast-util-gfm-footnote/node_modules/micromark-util-chunked": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/micromark-util-chunked/-/micromark-util-chunked-2.0.0.tgz", + "integrity": "sha512-anK8SWmNphkXdaKgz5hJvGa7l00qmcaUQoMYsBwDlSKFKjc6gjGXPDw3FNL3Nbwq5L8gE+RCbGqTw49FK5Qyvg==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "dependencies": { + "micromark-util-symbol": "^2.0.0" + } + }, + "node_modules/mdast-util-gfm-footnote/node_modules/micromark-util-classify-character": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/micromark-util-classify-character/-/micromark-util-classify-character-2.0.0.tgz", + "integrity": "sha512-S0ze2R9GH+fu41FA7pbSqNWObo/kzwf8rN/+IGlW/4tC6oACOs8B++bh+i9bVyNnwCcuksbFwsBme5OCKXCwIw==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "dependencies": { + "micromark-util-character": "^2.0.0", + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" + } + }, + "node_modules/mdast-util-gfm-footnote/node_modules/micromark-util-combine-extensions": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/micromark-util-combine-extensions/-/micromark-util-combine-extensions-2.0.0.tgz", + "integrity": "sha512-vZZio48k7ON0fVS3CUgFatWHoKbbLTK/rT7pzpJ4Bjp5JjkZeasRfrS9wsBdDJK2cJLHMckXZdzPSSr1B8a4oQ==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "dependencies": { + "micromark-util-chunked": "^2.0.0", + "micromark-util-types": "^2.0.0" + } + }, + "node_modules/mdast-util-gfm-footnote/node_modules/micromark-util-decode-numeric-character-reference": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-util-decode-numeric-character-reference/-/micromark-util-decode-numeric-character-reference-2.0.1.tgz", + "integrity": "sha512-bmkNc7z8Wn6kgjZmVHOX3SowGmVdhYS7yBpMnuMnPzDq/6xwVA604DuOXMZTO1lvq01g+Adfa0pE2UKGlxL1XQ==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "dependencies": { + "micromark-util-symbol": "^2.0.0" + } + }, + "node_modules/mdast-util-gfm-footnote/node_modules/micromark-util-decode-string": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/micromark-util-decode-string/-/micromark-util-decode-string-2.0.0.tgz", + "integrity": "sha512-r4Sc6leeUTn3P6gk20aFMj2ntPwn6qpDZqWvYmAG6NgvFTIlj4WtrAudLi65qYoaGdXYViXYw2pkmn7QnIFasA==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "dependencies": { + "decode-named-character-reference": "^1.0.0", + "micromark-util-character": "^2.0.0", + "micromark-util-decode-numeric-character-reference": "^2.0.0", + "micromark-util-symbol": "^2.0.0" + } + }, + "node_modules/mdast-util-gfm-footnote/node_modules/micromark-util-encode": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/micromark-util-encode/-/micromark-util-encode-2.0.0.tgz", + "integrity": "sha512-pS+ROfCXAGLWCOc8egcBvT0kf27GoWMqtdarNfDcjb6YLuV5cM3ioG45Ys2qOVqeqSbjaKg72vU+Wby3eddPsA==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ] + }, + "node_modules/mdast-util-gfm-footnote/node_modules/micromark-util-html-tag-name": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/micromark-util-html-tag-name/-/micromark-util-html-tag-name-2.0.0.tgz", + "integrity": "sha512-xNn4Pqkj2puRhKdKTm8t1YHC/BAjx6CEwRFXntTaRf/x16aqka6ouVoutm+QdkISTlT7e2zU7U4ZdlDLJd2Mcw==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ] + }, + "node_modules/mdast-util-gfm-footnote/node_modules/micromark-util-normalize-identifier": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/micromark-util-normalize-identifier/-/micromark-util-normalize-identifier-2.0.0.tgz", + "integrity": "sha512-2xhYT0sfo85FMrUPtHcPo2rrp1lwbDEEzpx7jiH2xXJLqBuy4H0GgXk5ToU8IEwoROtXuL8ND0ttVa4rNqYK3w==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "dependencies": { + "micromark-util-symbol": "^2.0.0" + } + }, + "node_modules/mdast-util-gfm-footnote/node_modules/micromark-util-resolve-all": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/micromark-util-resolve-all/-/micromark-util-resolve-all-2.0.0.tgz", + "integrity": "sha512-6KU6qO7DZ7GJkaCgwBNtplXCvGkJToU86ybBAUdavvgsCiG8lSSvYxr9MhwmQ+udpzywHsl4RpGJsYWG1pDOcA==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "dependencies": { + "micromark-util-types": "^2.0.0" + } + }, + "node_modules/mdast-util-gfm-footnote/node_modules/micromark-util-sanitize-uri": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/micromark-util-sanitize-uri/-/micromark-util-sanitize-uri-2.0.0.tgz", + "integrity": "sha512-WhYv5UEcZrbAtlsnPuChHUAsu/iBPOVaEVsntLBIdpibO0ddy8OzavZz3iL2xVvBZOpolujSliP65Kq0/7KIYw==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "dependencies": { + "micromark-util-character": "^2.0.0", + "micromark-util-encode": "^2.0.0", + "micromark-util-symbol": "^2.0.0" + } + }, + "node_modules/mdast-util-gfm-footnote/node_modules/micromark-util-subtokenize": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-util-subtokenize/-/micromark-util-subtokenize-2.0.1.tgz", + "integrity": "sha512-jZNtiFl/1aY73yS3UGQkutD0UbhTt68qnRpw2Pifmz5wV9h8gOVsN70v+Lq/f1rKaU/W8pxRe8y8Q9FX1AOe1Q==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "dependencies": { + "devlop": "^1.0.0", + "micromark-util-chunked": "^2.0.0", + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" + } + }, + "node_modules/mdast-util-gfm-footnote/node_modules/micromark-util-symbol": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/micromark-util-symbol/-/micromark-util-symbol-2.0.0.tgz", + "integrity": "sha512-8JZt9ElZ5kyTnO94muPxIGS8oyElRJaiJO8EzV6ZSyGQ1Is8xwl4Q45qU5UOg+bGH4AikWziz0iN4sFLWs8PGw==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ] + }, + "node_modules/mdast-util-gfm-footnote/node_modules/micromark-util-types": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/micromark-util-types/-/micromark-util-types-2.0.0.tgz", + "integrity": "sha512-oNh6S2WMHWRZrmutsRmDDfkzKtxF+bc2VxLC9dvtrDIRFln627VsFP6fLMgTryGDljgLPjkrzQSDcPrjPyDJ5w==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ] + }, + "node_modules/mdast-util-gfm-strikethrough": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/mdast-util-gfm-strikethrough/-/mdast-util-gfm-strikethrough-2.0.0.tgz", + "integrity": "sha512-mKKb915TF+OC5ptj5bJ7WFRPdYtuHv0yTRxK2tJvi+BDqbkiG7h7u/9SI89nRAYcmap2xHQL9D+QG/6wSrTtXg==", + "dependencies": { + "@types/mdast": "^4.0.0", + "mdast-util-from-markdown": "^2.0.0", + "mdast-util-to-markdown": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/mdast-util-gfm-strikethrough/node_modules/@types/mdast": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/@types/mdast/-/mdast-4.0.4.tgz", + "integrity": "sha512-kGaNbPh1k7AFzgpud/gMdvIm5xuECykRR+JnWKQno9TAXVa6WIVCGTPvYGekIDL4uwCZQSYbUxNBSb1aUo79oA==", + "dependencies": { + "@types/unist": "*" + } + }, + "node_modules/mdast-util-gfm-strikethrough/node_modules/@types/unist": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/@types/unist/-/unist-3.0.2.tgz", + "integrity": "sha512-dqId9J8K/vGi5Zr7oo212BGii5m3q5Hxlkwy3WpYuKPklmBEvsbMYYyLxAQpSffdLl/gdW0XUpKWFvYmyoWCoQ==" + }, + "node_modules/mdast-util-gfm-strikethrough/node_modules/mdast-util-from-markdown": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/mdast-util-from-markdown/-/mdast-util-from-markdown-2.0.1.tgz", + "integrity": "sha512-aJEUyzZ6TzlsX2s5B4Of7lN7EQtAxvtradMMglCQDyaTFgse6CmtmdJ15ElnVRlCg1vpNyVtbem0PWzlNieZsA==", + "dependencies": { + "@types/mdast": "^4.0.0", + "@types/unist": "^3.0.0", + "decode-named-character-reference": "^1.0.0", + "devlop": "^1.0.0", + "mdast-util-to-string": "^4.0.0", + "micromark": "^4.0.0", + "micromark-util-decode-numeric-character-reference": "^2.0.0", + "micromark-util-decode-string": "^2.0.0", + "micromark-util-normalize-identifier": "^2.0.0", + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0", + "unist-util-stringify-position": "^4.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/mdast-util-gfm-strikethrough/node_modules/micromark": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/micromark/-/micromark-4.0.0.tgz", + "integrity": "sha512-o/sd0nMof8kYff+TqcDx3VSrgBTcZpSvYcAHIfHhv5VAuNmisCxjhx6YmxS8PFEpb9z5WKWKPdzf0jM23ro3RQ==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "dependencies": { + "@types/debug": "^4.0.0", + "debug": "^4.0.0", + "decode-named-character-reference": "^1.0.0", + "devlop": "^1.0.0", + "micromark-core-commonmark": "^2.0.0", + "micromark-factory-space": "^2.0.0", + "micromark-util-character": "^2.0.0", + "micromark-util-chunked": "^2.0.0", + "micromark-util-combine-extensions": "^2.0.0", + "micromark-util-decode-numeric-character-reference": "^2.0.0", + "micromark-util-encode": "^2.0.0", + "micromark-util-normalize-identifier": "^2.0.0", + "micromark-util-resolve-all": "^2.0.0", + "micromark-util-sanitize-uri": "^2.0.0", + "micromark-util-subtokenize": "^2.0.0", + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" + } + }, + "node_modules/mdast-util-gfm-strikethrough/node_modules/micromark-core-commonmark": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-core-commonmark/-/micromark-core-commonmark-2.0.1.tgz", + "integrity": "sha512-CUQyKr1e///ZODyD1U3xit6zXwy1a8q2a1S1HKtIlmgvurrEpaw/Y9y6KSIbF8P59cn/NjzHyO+Q2fAyYLQrAA==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "dependencies": { + "decode-named-character-reference": "^1.0.0", + "devlop": "^1.0.0", + "micromark-factory-destination": "^2.0.0", + "micromark-factory-label": "^2.0.0", + "micromark-factory-space": "^2.0.0", + "micromark-factory-title": "^2.0.0", + "micromark-factory-whitespace": "^2.0.0", + "micromark-util-character": "^2.0.0", + "micromark-util-chunked": "^2.0.0", + "micromark-util-classify-character": "^2.0.0", + "micromark-util-html-tag-name": "^2.0.0", + "micromark-util-normalize-identifier": "^2.0.0", + "micromark-util-resolve-all": "^2.0.0", + "micromark-util-subtokenize": "^2.0.0", + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" + } + }, + "node_modules/mdast-util-gfm-strikethrough/node_modules/micromark-factory-destination": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/micromark-factory-destination/-/micromark-factory-destination-2.0.0.tgz", + "integrity": "sha512-j9DGrQLm/Uhl2tCzcbLhy5kXsgkHUrjJHg4fFAeoMRwJmJerT9aw4FEhIbZStWN8A3qMwOp1uzHr4UL8AInxtA==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "dependencies": { + "micromark-util-character": "^2.0.0", + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" + } + }, + "node_modules/mdast-util-gfm-strikethrough/node_modules/micromark-factory-label": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/micromark-factory-label/-/micromark-factory-label-2.0.0.tgz", + "integrity": "sha512-RR3i96ohZGde//4WSe/dJsxOX6vxIg9TimLAS3i4EhBAFx8Sm5SmqVfR8E87DPSR31nEAjZfbt91OMZWcNgdZw==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "dependencies": { + "devlop": "^1.0.0", + "micromark-util-character": "^2.0.0", + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" + } + }, + "node_modules/mdast-util-gfm-strikethrough/node_modules/micromark-factory-space": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/micromark-factory-space/-/micromark-factory-space-2.0.0.tgz", + "integrity": "sha512-TKr+LIDX2pkBJXFLzpyPyljzYK3MtmllMUMODTQJIUfDGncESaqB90db9IAUcz4AZAJFdd8U9zOp9ty1458rxg==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "dependencies": { + "micromark-util-character": "^2.0.0", + "micromark-util-types": "^2.0.0" + } + }, + "node_modules/mdast-util-gfm-strikethrough/node_modules/micromark-factory-title": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/micromark-factory-title/-/micromark-factory-title-2.0.0.tgz", + "integrity": "sha512-jY8CSxmpWLOxS+t8W+FG3Xigc0RDQA9bKMY/EwILvsesiRniiVMejYTE4wumNc2f4UbAa4WsHqe3J1QS1sli+A==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "dependencies": { + "micromark-factory-space": "^2.0.0", + "micromark-util-character": "^2.0.0", + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" + } + }, + "node_modules/mdast-util-gfm-strikethrough/node_modules/micromark-factory-whitespace": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/micromark-factory-whitespace/-/micromark-factory-whitespace-2.0.0.tgz", + "integrity": "sha512-28kbwaBjc5yAI1XadbdPYHX/eDnqaUFVikLwrO7FDnKG7lpgxnvk/XGRhX/PN0mOZ+dBSZ+LgunHS+6tYQAzhA==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "dependencies": { + "micromark-factory-space": "^2.0.0", + "micromark-util-character": "^2.0.0", + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" + } + }, + "node_modules/mdast-util-gfm-strikethrough/node_modules/micromark-util-character": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/micromark-util-character/-/micromark-util-character-2.1.0.tgz", + "integrity": "sha512-KvOVV+X1yLBfs9dCBSopq/+G1PcgT3lAK07mC4BzXi5E7ahzMAF8oIupDDJ6mievI6F+lAATkbQQlQixJfT3aQ==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "dependencies": { + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" + } + }, + "node_modules/mdast-util-gfm-strikethrough/node_modules/micromark-util-chunked": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/micromark-util-chunked/-/micromark-util-chunked-2.0.0.tgz", + "integrity": "sha512-anK8SWmNphkXdaKgz5hJvGa7l00qmcaUQoMYsBwDlSKFKjc6gjGXPDw3FNL3Nbwq5L8gE+RCbGqTw49FK5Qyvg==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "dependencies": { + "micromark-util-symbol": "^2.0.0" + } + }, + "node_modules/mdast-util-gfm-strikethrough/node_modules/micromark-util-classify-character": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/micromark-util-classify-character/-/micromark-util-classify-character-2.0.0.tgz", + "integrity": "sha512-S0ze2R9GH+fu41FA7pbSqNWObo/kzwf8rN/+IGlW/4tC6oACOs8B++bh+i9bVyNnwCcuksbFwsBme5OCKXCwIw==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "dependencies": { + "micromark-util-character": "^2.0.0", + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" + } + }, + "node_modules/mdast-util-gfm-strikethrough/node_modules/micromark-util-combine-extensions": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/micromark-util-combine-extensions/-/micromark-util-combine-extensions-2.0.0.tgz", + "integrity": "sha512-vZZio48k7ON0fVS3CUgFatWHoKbbLTK/rT7pzpJ4Bjp5JjkZeasRfrS9wsBdDJK2cJLHMckXZdzPSSr1B8a4oQ==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "dependencies": { + "micromark-util-chunked": "^2.0.0", + "micromark-util-types": "^2.0.0" + } + }, + "node_modules/mdast-util-gfm-strikethrough/node_modules/micromark-util-decode-numeric-character-reference": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-util-decode-numeric-character-reference/-/micromark-util-decode-numeric-character-reference-2.0.1.tgz", + "integrity": "sha512-bmkNc7z8Wn6kgjZmVHOX3SowGmVdhYS7yBpMnuMnPzDq/6xwVA604DuOXMZTO1lvq01g+Adfa0pE2UKGlxL1XQ==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "dependencies": { + "micromark-util-symbol": "^2.0.0" + } + }, + "node_modules/mdast-util-gfm-strikethrough/node_modules/micromark-util-decode-string": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/micromark-util-decode-string/-/micromark-util-decode-string-2.0.0.tgz", + "integrity": "sha512-r4Sc6leeUTn3P6gk20aFMj2ntPwn6qpDZqWvYmAG6NgvFTIlj4WtrAudLi65qYoaGdXYViXYw2pkmn7QnIFasA==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "dependencies": { + "decode-named-character-reference": "^1.0.0", + "micromark-util-character": "^2.0.0", + "micromark-util-decode-numeric-character-reference": "^2.0.0", + "micromark-util-symbol": "^2.0.0" + } + }, + "node_modules/mdast-util-gfm-strikethrough/node_modules/micromark-util-encode": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/micromark-util-encode/-/micromark-util-encode-2.0.0.tgz", + "integrity": "sha512-pS+ROfCXAGLWCOc8egcBvT0kf27GoWMqtdarNfDcjb6YLuV5cM3ioG45Ys2qOVqeqSbjaKg72vU+Wby3eddPsA==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ] + }, + "node_modules/mdast-util-gfm-strikethrough/node_modules/micromark-util-html-tag-name": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/micromark-util-html-tag-name/-/micromark-util-html-tag-name-2.0.0.tgz", + "integrity": "sha512-xNn4Pqkj2puRhKdKTm8t1YHC/BAjx6CEwRFXntTaRf/x16aqka6ouVoutm+QdkISTlT7e2zU7U4ZdlDLJd2Mcw==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ] + }, + "node_modules/mdast-util-gfm-strikethrough/node_modules/micromark-util-normalize-identifier": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/micromark-util-normalize-identifier/-/micromark-util-normalize-identifier-2.0.0.tgz", + "integrity": "sha512-2xhYT0sfo85FMrUPtHcPo2rrp1lwbDEEzpx7jiH2xXJLqBuy4H0GgXk5ToU8IEwoROtXuL8ND0ttVa4rNqYK3w==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "dependencies": { + "micromark-util-symbol": "^2.0.0" + } + }, + "node_modules/mdast-util-gfm-strikethrough/node_modules/micromark-util-resolve-all": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/micromark-util-resolve-all/-/micromark-util-resolve-all-2.0.0.tgz", + "integrity": "sha512-6KU6qO7DZ7GJkaCgwBNtplXCvGkJToU86ybBAUdavvgsCiG8lSSvYxr9MhwmQ+udpzywHsl4RpGJsYWG1pDOcA==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "dependencies": { + "micromark-util-types": "^2.0.0" + } + }, + "node_modules/mdast-util-gfm-strikethrough/node_modules/micromark-util-sanitize-uri": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/micromark-util-sanitize-uri/-/micromark-util-sanitize-uri-2.0.0.tgz", + "integrity": "sha512-WhYv5UEcZrbAtlsnPuChHUAsu/iBPOVaEVsntLBIdpibO0ddy8OzavZz3iL2xVvBZOpolujSliP65Kq0/7KIYw==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "dependencies": { + "micromark-util-character": "^2.0.0", + "micromark-util-encode": "^2.0.0", + "micromark-util-symbol": "^2.0.0" + } + }, + "node_modules/mdast-util-gfm-strikethrough/node_modules/micromark-util-subtokenize": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-util-subtokenize/-/micromark-util-subtokenize-2.0.1.tgz", + "integrity": "sha512-jZNtiFl/1aY73yS3UGQkutD0UbhTt68qnRpw2Pifmz5wV9h8gOVsN70v+Lq/f1rKaU/W8pxRe8y8Q9FX1AOe1Q==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "dependencies": { + "devlop": "^1.0.0", + "micromark-util-chunked": "^2.0.0", + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" + } + }, + "node_modules/mdast-util-gfm-strikethrough/node_modules/micromark-util-symbol": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/micromark-util-symbol/-/micromark-util-symbol-2.0.0.tgz", + "integrity": "sha512-8JZt9ElZ5kyTnO94muPxIGS8oyElRJaiJO8EzV6ZSyGQ1Is8xwl4Q45qU5UOg+bGH4AikWziz0iN4sFLWs8PGw==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ] + }, + "node_modules/mdast-util-gfm-strikethrough/node_modules/micromark-util-types": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/micromark-util-types/-/micromark-util-types-2.0.0.tgz", + "integrity": "sha512-oNh6S2WMHWRZrmutsRmDDfkzKtxF+bc2VxLC9dvtrDIRFln627VsFP6fLMgTryGDljgLPjkrzQSDcPrjPyDJ5w==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ] + }, + "node_modules/mdast-util-gfm-table": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/mdast-util-gfm-table/-/mdast-util-gfm-table-2.0.0.tgz", + "integrity": "sha512-78UEvebzz/rJIxLvE7ZtDd/vIQ0RHv+3Mh5DR96p7cS7HsBhYIICDBCu8csTNWNO6tBWfqXPWekRuj2FNOGOZg==", + "dependencies": { + "@types/mdast": "^4.0.0", + "devlop": "^1.0.0", + "markdown-table": "^3.0.0", + "mdast-util-from-markdown": "^2.0.0", + "mdast-util-to-markdown": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/mdast-util-gfm-table/node_modules/@types/mdast": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/@types/mdast/-/mdast-4.0.4.tgz", + "integrity": "sha512-kGaNbPh1k7AFzgpud/gMdvIm5xuECykRR+JnWKQno9TAXVa6WIVCGTPvYGekIDL4uwCZQSYbUxNBSb1aUo79oA==", + "dependencies": { + "@types/unist": "*" + } + }, + "node_modules/mdast-util-gfm-table/node_modules/@types/unist": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/@types/unist/-/unist-3.0.2.tgz", + "integrity": "sha512-dqId9J8K/vGi5Zr7oo212BGii5m3q5Hxlkwy3WpYuKPklmBEvsbMYYyLxAQpSffdLl/gdW0XUpKWFvYmyoWCoQ==" + }, + "node_modules/mdast-util-gfm-table/node_modules/mdast-util-from-markdown": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/mdast-util-from-markdown/-/mdast-util-from-markdown-2.0.1.tgz", + "integrity": "sha512-aJEUyzZ6TzlsX2s5B4Of7lN7EQtAxvtradMMglCQDyaTFgse6CmtmdJ15ElnVRlCg1vpNyVtbem0PWzlNieZsA==", + "dependencies": { + "@types/mdast": "^4.0.0", + "@types/unist": "^3.0.0", + "decode-named-character-reference": "^1.0.0", + "devlop": "^1.0.0", + "mdast-util-to-string": "^4.0.0", + "micromark": "^4.0.0", + "micromark-util-decode-numeric-character-reference": "^2.0.0", + "micromark-util-decode-string": "^2.0.0", + "micromark-util-normalize-identifier": "^2.0.0", + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0", + "unist-util-stringify-position": "^4.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/mdast-util-gfm-table/node_modules/micromark": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/micromark/-/micromark-4.0.0.tgz", + "integrity": "sha512-o/sd0nMof8kYff+TqcDx3VSrgBTcZpSvYcAHIfHhv5VAuNmisCxjhx6YmxS8PFEpb9z5WKWKPdzf0jM23ro3RQ==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "dependencies": { + "@types/debug": "^4.0.0", + "debug": "^4.0.0", + "decode-named-character-reference": "^1.0.0", + "devlop": "^1.0.0", + "micromark-core-commonmark": "^2.0.0", + "micromark-factory-space": "^2.0.0", + "micromark-util-character": "^2.0.0", + "micromark-util-chunked": "^2.0.0", + "micromark-util-combine-extensions": "^2.0.0", + "micromark-util-decode-numeric-character-reference": "^2.0.0", + "micromark-util-encode": "^2.0.0", + "micromark-util-normalize-identifier": "^2.0.0", + "micromark-util-resolve-all": "^2.0.0", + "micromark-util-sanitize-uri": "^2.0.0", + "micromark-util-subtokenize": "^2.0.0", + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" + } + }, + "node_modules/mdast-util-gfm-table/node_modules/micromark-core-commonmark": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-core-commonmark/-/micromark-core-commonmark-2.0.1.tgz", + "integrity": "sha512-CUQyKr1e///ZODyD1U3xit6zXwy1a8q2a1S1HKtIlmgvurrEpaw/Y9y6KSIbF8P59cn/NjzHyO+Q2fAyYLQrAA==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "dependencies": { + "decode-named-character-reference": "^1.0.0", + "devlop": "^1.0.0", + "micromark-factory-destination": "^2.0.0", + "micromark-factory-label": "^2.0.0", + "micromark-factory-space": "^2.0.0", + "micromark-factory-title": "^2.0.0", + "micromark-factory-whitespace": "^2.0.0", + "micromark-util-character": "^2.0.0", + "micromark-util-chunked": "^2.0.0", + "micromark-util-classify-character": "^2.0.0", + "micromark-util-html-tag-name": "^2.0.0", + "micromark-util-normalize-identifier": "^2.0.0", + "micromark-util-resolve-all": "^2.0.0", + "micromark-util-subtokenize": "^2.0.0", + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" + } + }, + "node_modules/mdast-util-gfm-table/node_modules/micromark-factory-destination": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/micromark-factory-destination/-/micromark-factory-destination-2.0.0.tgz", + "integrity": "sha512-j9DGrQLm/Uhl2tCzcbLhy5kXsgkHUrjJHg4fFAeoMRwJmJerT9aw4FEhIbZStWN8A3qMwOp1uzHr4UL8AInxtA==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "dependencies": { + "micromark-util-character": "^2.0.0", + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" + } + }, + "node_modules/mdast-util-gfm-table/node_modules/micromark-factory-label": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/micromark-factory-label/-/micromark-factory-label-2.0.0.tgz", + "integrity": "sha512-RR3i96ohZGde//4WSe/dJsxOX6vxIg9TimLAS3i4EhBAFx8Sm5SmqVfR8E87DPSR31nEAjZfbt91OMZWcNgdZw==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "dependencies": { + "devlop": "^1.0.0", + "micromark-util-character": "^2.0.0", + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" + } + }, + "node_modules/mdast-util-gfm-table/node_modules/micromark-factory-space": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/micromark-factory-space/-/micromark-factory-space-2.0.0.tgz", + "integrity": "sha512-TKr+LIDX2pkBJXFLzpyPyljzYK3MtmllMUMODTQJIUfDGncESaqB90db9IAUcz4AZAJFdd8U9zOp9ty1458rxg==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "dependencies": { + "micromark-util-character": "^2.0.0", + "micromark-util-types": "^2.0.0" + } + }, + "node_modules/mdast-util-gfm-table/node_modules/micromark-factory-title": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/micromark-factory-title/-/micromark-factory-title-2.0.0.tgz", + "integrity": "sha512-jY8CSxmpWLOxS+t8W+FG3Xigc0RDQA9bKMY/EwILvsesiRniiVMejYTE4wumNc2f4UbAa4WsHqe3J1QS1sli+A==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "dependencies": { + "micromark-factory-space": "^2.0.0", + "micromark-util-character": "^2.0.0", + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" + } + }, + "node_modules/mdast-util-gfm-table/node_modules/micromark-factory-whitespace": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/micromark-factory-whitespace/-/micromark-factory-whitespace-2.0.0.tgz", + "integrity": "sha512-28kbwaBjc5yAI1XadbdPYHX/eDnqaUFVikLwrO7FDnKG7lpgxnvk/XGRhX/PN0mOZ+dBSZ+LgunHS+6tYQAzhA==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "dependencies": { + "micromark-factory-space": "^2.0.0", + "micromark-util-character": "^2.0.0", + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" + } + }, + "node_modules/mdast-util-gfm-table/node_modules/micromark-util-character": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/micromark-util-character/-/micromark-util-character-2.1.0.tgz", + "integrity": "sha512-KvOVV+X1yLBfs9dCBSopq/+G1PcgT3lAK07mC4BzXi5E7ahzMAF8oIupDDJ6mievI6F+lAATkbQQlQixJfT3aQ==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "dependencies": { + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" + } + }, + "node_modules/mdast-util-gfm-table/node_modules/micromark-util-chunked": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/micromark-util-chunked/-/micromark-util-chunked-2.0.0.tgz", + "integrity": "sha512-anK8SWmNphkXdaKgz5hJvGa7l00qmcaUQoMYsBwDlSKFKjc6gjGXPDw3FNL3Nbwq5L8gE+RCbGqTw49FK5Qyvg==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "dependencies": { + "micromark-util-symbol": "^2.0.0" + } + }, + "node_modules/mdast-util-gfm-table/node_modules/micromark-util-classify-character": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/micromark-util-classify-character/-/micromark-util-classify-character-2.0.0.tgz", + "integrity": "sha512-S0ze2R9GH+fu41FA7pbSqNWObo/kzwf8rN/+IGlW/4tC6oACOs8B++bh+i9bVyNnwCcuksbFwsBme5OCKXCwIw==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "dependencies": { + "micromark-util-character": "^2.0.0", + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" + } + }, + "node_modules/mdast-util-gfm-table/node_modules/micromark-util-combine-extensions": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/micromark-util-combine-extensions/-/micromark-util-combine-extensions-2.0.0.tgz", + "integrity": "sha512-vZZio48k7ON0fVS3CUgFatWHoKbbLTK/rT7pzpJ4Bjp5JjkZeasRfrS9wsBdDJK2cJLHMckXZdzPSSr1B8a4oQ==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "dependencies": { + "micromark-util-chunked": "^2.0.0", + "micromark-util-types": "^2.0.0" + } + }, + "node_modules/mdast-util-gfm-table/node_modules/micromark-util-decode-numeric-character-reference": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-util-decode-numeric-character-reference/-/micromark-util-decode-numeric-character-reference-2.0.1.tgz", + "integrity": "sha512-bmkNc7z8Wn6kgjZmVHOX3SowGmVdhYS7yBpMnuMnPzDq/6xwVA604DuOXMZTO1lvq01g+Adfa0pE2UKGlxL1XQ==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "dependencies": { + "micromark-util-symbol": "^2.0.0" + } + }, + "node_modules/mdast-util-gfm-table/node_modules/micromark-util-decode-string": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/micromark-util-decode-string/-/micromark-util-decode-string-2.0.0.tgz", + "integrity": "sha512-r4Sc6leeUTn3P6gk20aFMj2ntPwn6qpDZqWvYmAG6NgvFTIlj4WtrAudLi65qYoaGdXYViXYw2pkmn7QnIFasA==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "dependencies": { + "decode-named-character-reference": "^1.0.0", + "micromark-util-character": "^2.0.0", + "micromark-util-decode-numeric-character-reference": "^2.0.0", + "micromark-util-symbol": "^2.0.0" + } + }, + "node_modules/mdast-util-gfm-table/node_modules/micromark-util-encode": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/micromark-util-encode/-/micromark-util-encode-2.0.0.tgz", + "integrity": "sha512-pS+ROfCXAGLWCOc8egcBvT0kf27GoWMqtdarNfDcjb6YLuV5cM3ioG45Ys2qOVqeqSbjaKg72vU+Wby3eddPsA==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ] + }, + "node_modules/mdast-util-gfm-table/node_modules/micromark-util-html-tag-name": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/micromark-util-html-tag-name/-/micromark-util-html-tag-name-2.0.0.tgz", + "integrity": "sha512-xNn4Pqkj2puRhKdKTm8t1YHC/BAjx6CEwRFXntTaRf/x16aqka6ouVoutm+QdkISTlT7e2zU7U4ZdlDLJd2Mcw==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ] + }, + "node_modules/mdast-util-gfm-table/node_modules/micromark-util-normalize-identifier": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/micromark-util-normalize-identifier/-/micromark-util-normalize-identifier-2.0.0.tgz", + "integrity": "sha512-2xhYT0sfo85FMrUPtHcPo2rrp1lwbDEEzpx7jiH2xXJLqBuy4H0GgXk5ToU8IEwoROtXuL8ND0ttVa4rNqYK3w==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "dependencies": { + "micromark-util-symbol": "^2.0.0" + } + }, + "node_modules/mdast-util-gfm-table/node_modules/micromark-util-resolve-all": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/micromark-util-resolve-all/-/micromark-util-resolve-all-2.0.0.tgz", + "integrity": "sha512-6KU6qO7DZ7GJkaCgwBNtplXCvGkJToU86ybBAUdavvgsCiG8lSSvYxr9MhwmQ+udpzywHsl4RpGJsYWG1pDOcA==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "dependencies": { + "micromark-util-types": "^2.0.0" + } + }, + "node_modules/mdast-util-gfm-table/node_modules/micromark-util-sanitize-uri": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/micromark-util-sanitize-uri/-/micromark-util-sanitize-uri-2.0.0.tgz", + "integrity": "sha512-WhYv5UEcZrbAtlsnPuChHUAsu/iBPOVaEVsntLBIdpibO0ddy8OzavZz3iL2xVvBZOpolujSliP65Kq0/7KIYw==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "dependencies": { + "micromark-util-character": "^2.0.0", + "micromark-util-encode": "^2.0.0", + "micromark-util-symbol": "^2.0.0" + } + }, + "node_modules/mdast-util-gfm-table/node_modules/micromark-util-subtokenize": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-util-subtokenize/-/micromark-util-subtokenize-2.0.1.tgz", + "integrity": "sha512-jZNtiFl/1aY73yS3UGQkutD0UbhTt68qnRpw2Pifmz5wV9h8gOVsN70v+Lq/f1rKaU/W8pxRe8y8Q9FX1AOe1Q==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "dependencies": { + "devlop": "^1.0.0", + "micromark-util-chunked": "^2.0.0", + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" + } + }, + "node_modules/mdast-util-gfm-table/node_modules/micromark-util-symbol": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/micromark-util-symbol/-/micromark-util-symbol-2.0.0.tgz", + "integrity": "sha512-8JZt9ElZ5kyTnO94muPxIGS8oyElRJaiJO8EzV6ZSyGQ1Is8xwl4Q45qU5UOg+bGH4AikWziz0iN4sFLWs8PGw==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ] + }, + "node_modules/mdast-util-gfm-table/node_modules/micromark-util-types": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/micromark-util-types/-/micromark-util-types-2.0.0.tgz", + "integrity": "sha512-oNh6S2WMHWRZrmutsRmDDfkzKtxF+bc2VxLC9dvtrDIRFln627VsFP6fLMgTryGDljgLPjkrzQSDcPrjPyDJ5w==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ] + }, + "node_modules/mdast-util-gfm-task-list-item": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/mdast-util-gfm-task-list-item/-/mdast-util-gfm-task-list-item-2.0.0.tgz", + "integrity": "sha512-IrtvNvjxC1o06taBAVJznEnkiHxLFTzgonUdy8hzFVeDun0uTjxxrRGVaNFqkU1wJR3RBPEfsxmU6jDWPofrTQ==", + "dependencies": { + "@types/mdast": "^4.0.0", + "devlop": "^1.0.0", + "mdast-util-from-markdown": "^2.0.0", + "mdast-util-to-markdown": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/mdast-util-gfm-task-list-item/node_modules/@types/mdast": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/@types/mdast/-/mdast-4.0.4.tgz", + "integrity": "sha512-kGaNbPh1k7AFzgpud/gMdvIm5xuECykRR+JnWKQno9TAXVa6WIVCGTPvYGekIDL4uwCZQSYbUxNBSb1aUo79oA==", + "dependencies": { + "@types/unist": "*" + } + }, + "node_modules/mdast-util-gfm-task-list-item/node_modules/@types/unist": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/@types/unist/-/unist-3.0.2.tgz", + "integrity": "sha512-dqId9J8K/vGi5Zr7oo212BGii5m3q5Hxlkwy3WpYuKPklmBEvsbMYYyLxAQpSffdLl/gdW0XUpKWFvYmyoWCoQ==" + }, + "node_modules/mdast-util-gfm-task-list-item/node_modules/mdast-util-from-markdown": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/mdast-util-from-markdown/-/mdast-util-from-markdown-2.0.1.tgz", + "integrity": "sha512-aJEUyzZ6TzlsX2s5B4Of7lN7EQtAxvtradMMglCQDyaTFgse6CmtmdJ15ElnVRlCg1vpNyVtbem0PWzlNieZsA==", + "dependencies": { + "@types/mdast": "^4.0.0", + "@types/unist": "^3.0.0", + "decode-named-character-reference": "^1.0.0", + "devlop": "^1.0.0", + "mdast-util-to-string": "^4.0.0", + "micromark": "^4.0.0", + "micromark-util-decode-numeric-character-reference": "^2.0.0", + "micromark-util-decode-string": "^2.0.0", + "micromark-util-normalize-identifier": "^2.0.0", + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0", + "unist-util-stringify-position": "^4.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/mdast-util-gfm-task-list-item/node_modules/micromark": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/micromark/-/micromark-4.0.0.tgz", + "integrity": "sha512-o/sd0nMof8kYff+TqcDx3VSrgBTcZpSvYcAHIfHhv5VAuNmisCxjhx6YmxS8PFEpb9z5WKWKPdzf0jM23ro3RQ==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "dependencies": { + "@types/debug": "^4.0.0", + "debug": "^4.0.0", + "decode-named-character-reference": "^1.0.0", + "devlop": "^1.0.0", + "micromark-core-commonmark": "^2.0.0", + "micromark-factory-space": "^2.0.0", + "micromark-util-character": "^2.0.0", + "micromark-util-chunked": "^2.0.0", + "micromark-util-combine-extensions": "^2.0.0", + "micromark-util-decode-numeric-character-reference": "^2.0.0", + "micromark-util-encode": "^2.0.0", + "micromark-util-normalize-identifier": "^2.0.0", + "micromark-util-resolve-all": "^2.0.0", + "micromark-util-sanitize-uri": "^2.0.0", + "micromark-util-subtokenize": "^2.0.0", + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" + } + }, + "node_modules/mdast-util-gfm-task-list-item/node_modules/micromark-core-commonmark": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-core-commonmark/-/micromark-core-commonmark-2.0.1.tgz", + "integrity": "sha512-CUQyKr1e///ZODyD1U3xit6zXwy1a8q2a1S1HKtIlmgvurrEpaw/Y9y6KSIbF8P59cn/NjzHyO+Q2fAyYLQrAA==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "dependencies": { + "decode-named-character-reference": "^1.0.0", + "devlop": "^1.0.0", + "micromark-factory-destination": "^2.0.0", + "micromark-factory-label": "^2.0.0", + "micromark-factory-space": "^2.0.0", + "micromark-factory-title": "^2.0.0", + "micromark-factory-whitespace": "^2.0.0", + "micromark-util-character": "^2.0.0", + "micromark-util-chunked": "^2.0.0", + "micromark-util-classify-character": "^2.0.0", + "micromark-util-html-tag-name": "^2.0.0", + "micromark-util-normalize-identifier": "^2.0.0", + "micromark-util-resolve-all": "^2.0.0", + "micromark-util-subtokenize": "^2.0.0", + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" + } + }, + "node_modules/mdast-util-gfm-task-list-item/node_modules/micromark-factory-destination": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/micromark-factory-destination/-/micromark-factory-destination-2.0.0.tgz", + "integrity": "sha512-j9DGrQLm/Uhl2tCzcbLhy5kXsgkHUrjJHg4fFAeoMRwJmJerT9aw4FEhIbZStWN8A3qMwOp1uzHr4UL8AInxtA==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "dependencies": { + "micromark-util-character": "^2.0.0", + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" + } + }, + "node_modules/mdast-util-gfm-task-list-item/node_modules/micromark-factory-label": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/micromark-factory-label/-/micromark-factory-label-2.0.0.tgz", + "integrity": "sha512-RR3i96ohZGde//4WSe/dJsxOX6vxIg9TimLAS3i4EhBAFx8Sm5SmqVfR8E87DPSR31nEAjZfbt91OMZWcNgdZw==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "dependencies": { + "devlop": "^1.0.0", + "micromark-util-character": "^2.0.0", + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" + } + }, + "node_modules/mdast-util-gfm-task-list-item/node_modules/micromark-factory-space": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/micromark-factory-space/-/micromark-factory-space-2.0.0.tgz", + "integrity": "sha512-TKr+LIDX2pkBJXFLzpyPyljzYK3MtmllMUMODTQJIUfDGncESaqB90db9IAUcz4AZAJFdd8U9zOp9ty1458rxg==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "dependencies": { + "micromark-util-character": "^2.0.0", + "micromark-util-types": "^2.0.0" + } + }, + "node_modules/mdast-util-gfm-task-list-item/node_modules/micromark-factory-title": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/micromark-factory-title/-/micromark-factory-title-2.0.0.tgz", + "integrity": "sha512-jY8CSxmpWLOxS+t8W+FG3Xigc0RDQA9bKMY/EwILvsesiRniiVMejYTE4wumNc2f4UbAa4WsHqe3J1QS1sli+A==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "dependencies": { + "micromark-factory-space": "^2.0.0", + "micromark-util-character": "^2.0.0", + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" + } + }, + "node_modules/mdast-util-gfm-task-list-item/node_modules/micromark-factory-whitespace": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/micromark-factory-whitespace/-/micromark-factory-whitespace-2.0.0.tgz", + "integrity": "sha512-28kbwaBjc5yAI1XadbdPYHX/eDnqaUFVikLwrO7FDnKG7lpgxnvk/XGRhX/PN0mOZ+dBSZ+LgunHS+6tYQAzhA==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "dependencies": { + "micromark-factory-space": "^2.0.0", + "micromark-util-character": "^2.0.0", + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" + } + }, + "node_modules/mdast-util-gfm-task-list-item/node_modules/micromark-util-character": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/micromark-util-character/-/micromark-util-character-2.1.0.tgz", + "integrity": "sha512-KvOVV+X1yLBfs9dCBSopq/+G1PcgT3lAK07mC4BzXi5E7ahzMAF8oIupDDJ6mievI6F+lAATkbQQlQixJfT3aQ==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "dependencies": { + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" + } + }, + "node_modules/mdast-util-gfm-task-list-item/node_modules/micromark-util-chunked": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/micromark-util-chunked/-/micromark-util-chunked-2.0.0.tgz", + "integrity": "sha512-anK8SWmNphkXdaKgz5hJvGa7l00qmcaUQoMYsBwDlSKFKjc6gjGXPDw3FNL3Nbwq5L8gE+RCbGqTw49FK5Qyvg==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "dependencies": { + "micromark-util-symbol": "^2.0.0" + } + }, + "node_modules/mdast-util-gfm-task-list-item/node_modules/micromark-util-classify-character": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/micromark-util-classify-character/-/micromark-util-classify-character-2.0.0.tgz", + "integrity": "sha512-S0ze2R9GH+fu41FA7pbSqNWObo/kzwf8rN/+IGlW/4tC6oACOs8B++bh+i9bVyNnwCcuksbFwsBme5OCKXCwIw==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "dependencies": { + "micromark-util-character": "^2.0.0", + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" + } + }, + "node_modules/mdast-util-gfm-task-list-item/node_modules/micromark-util-combine-extensions": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/micromark-util-combine-extensions/-/micromark-util-combine-extensions-2.0.0.tgz", + "integrity": "sha512-vZZio48k7ON0fVS3CUgFatWHoKbbLTK/rT7pzpJ4Bjp5JjkZeasRfrS9wsBdDJK2cJLHMckXZdzPSSr1B8a4oQ==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "dependencies": { + "micromark-util-chunked": "^2.0.0", + "micromark-util-types": "^2.0.0" + } + }, + "node_modules/mdast-util-gfm-task-list-item/node_modules/micromark-util-decode-numeric-character-reference": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-util-decode-numeric-character-reference/-/micromark-util-decode-numeric-character-reference-2.0.1.tgz", + "integrity": "sha512-bmkNc7z8Wn6kgjZmVHOX3SowGmVdhYS7yBpMnuMnPzDq/6xwVA604DuOXMZTO1lvq01g+Adfa0pE2UKGlxL1XQ==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "dependencies": { + "micromark-util-symbol": "^2.0.0" + } + }, + "node_modules/mdast-util-gfm-task-list-item/node_modules/micromark-util-decode-string": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/micromark-util-decode-string/-/micromark-util-decode-string-2.0.0.tgz", + "integrity": "sha512-r4Sc6leeUTn3P6gk20aFMj2ntPwn6qpDZqWvYmAG6NgvFTIlj4WtrAudLi65qYoaGdXYViXYw2pkmn7QnIFasA==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "dependencies": { + "decode-named-character-reference": "^1.0.0", + "micromark-util-character": "^2.0.0", + "micromark-util-decode-numeric-character-reference": "^2.0.0", + "micromark-util-symbol": "^2.0.0" + } + }, + "node_modules/mdast-util-gfm-task-list-item/node_modules/micromark-util-encode": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/micromark-util-encode/-/micromark-util-encode-2.0.0.tgz", + "integrity": "sha512-pS+ROfCXAGLWCOc8egcBvT0kf27GoWMqtdarNfDcjb6YLuV5cM3ioG45Ys2qOVqeqSbjaKg72vU+Wby3eddPsA==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ] + }, + "node_modules/mdast-util-gfm-task-list-item/node_modules/micromark-util-html-tag-name": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/micromark-util-html-tag-name/-/micromark-util-html-tag-name-2.0.0.tgz", + "integrity": "sha512-xNn4Pqkj2puRhKdKTm8t1YHC/BAjx6CEwRFXntTaRf/x16aqka6ouVoutm+QdkISTlT7e2zU7U4ZdlDLJd2Mcw==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ] + }, + "node_modules/mdast-util-gfm-task-list-item/node_modules/micromark-util-normalize-identifier": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/micromark-util-normalize-identifier/-/micromark-util-normalize-identifier-2.0.0.tgz", + "integrity": "sha512-2xhYT0sfo85FMrUPtHcPo2rrp1lwbDEEzpx7jiH2xXJLqBuy4H0GgXk5ToU8IEwoROtXuL8ND0ttVa4rNqYK3w==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "dependencies": { + "micromark-util-symbol": "^2.0.0" + } + }, + "node_modules/mdast-util-gfm-task-list-item/node_modules/micromark-util-resolve-all": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/micromark-util-resolve-all/-/micromark-util-resolve-all-2.0.0.tgz", + "integrity": "sha512-6KU6qO7DZ7GJkaCgwBNtplXCvGkJToU86ybBAUdavvgsCiG8lSSvYxr9MhwmQ+udpzywHsl4RpGJsYWG1pDOcA==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "dependencies": { + "micromark-util-types": "^2.0.0" + } + }, + "node_modules/mdast-util-gfm-task-list-item/node_modules/micromark-util-sanitize-uri": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/micromark-util-sanitize-uri/-/micromark-util-sanitize-uri-2.0.0.tgz", + "integrity": "sha512-WhYv5UEcZrbAtlsnPuChHUAsu/iBPOVaEVsntLBIdpibO0ddy8OzavZz3iL2xVvBZOpolujSliP65Kq0/7KIYw==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "dependencies": { + "micromark-util-character": "^2.0.0", + "micromark-util-encode": "^2.0.0", + "micromark-util-symbol": "^2.0.0" + } + }, + "node_modules/mdast-util-gfm-task-list-item/node_modules/micromark-util-subtokenize": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-util-subtokenize/-/micromark-util-subtokenize-2.0.1.tgz", + "integrity": "sha512-jZNtiFl/1aY73yS3UGQkutD0UbhTt68qnRpw2Pifmz5wV9h8gOVsN70v+Lq/f1rKaU/W8pxRe8y8Q9FX1AOe1Q==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "dependencies": { + "devlop": "^1.0.0", + "micromark-util-chunked": "^2.0.0", + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" + } + }, + "node_modules/mdast-util-gfm-task-list-item/node_modules/micromark-util-symbol": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/micromark-util-symbol/-/micromark-util-symbol-2.0.0.tgz", + "integrity": "sha512-8JZt9ElZ5kyTnO94muPxIGS8oyElRJaiJO8EzV6ZSyGQ1Is8xwl4Q45qU5UOg+bGH4AikWziz0iN4sFLWs8PGw==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ] + }, + "node_modules/mdast-util-gfm-task-list-item/node_modules/micromark-util-types": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/micromark-util-types/-/micromark-util-types-2.0.0.tgz", + "integrity": "sha512-oNh6S2WMHWRZrmutsRmDDfkzKtxF+bc2VxLC9dvtrDIRFln627VsFP6fLMgTryGDljgLPjkrzQSDcPrjPyDJ5w==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ] + }, + "node_modules/mdast-util-gfm/node_modules/@types/mdast": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/@types/mdast/-/mdast-4.0.4.tgz", + "integrity": "sha512-kGaNbPh1k7AFzgpud/gMdvIm5xuECykRR+JnWKQno9TAXVa6WIVCGTPvYGekIDL4uwCZQSYbUxNBSb1aUo79oA==", + "dependencies": { + "@types/unist": "*" + } + }, + "node_modules/mdast-util-gfm/node_modules/@types/unist": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/@types/unist/-/unist-3.0.2.tgz", + "integrity": "sha512-dqId9J8K/vGi5Zr7oo212BGii5m3q5Hxlkwy3WpYuKPklmBEvsbMYYyLxAQpSffdLl/gdW0XUpKWFvYmyoWCoQ==" + }, + "node_modules/mdast-util-gfm/node_modules/mdast-util-from-markdown": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/mdast-util-from-markdown/-/mdast-util-from-markdown-2.0.1.tgz", + "integrity": "sha512-aJEUyzZ6TzlsX2s5B4Of7lN7EQtAxvtradMMglCQDyaTFgse6CmtmdJ15ElnVRlCg1vpNyVtbem0PWzlNieZsA==", + "dependencies": { + "@types/mdast": "^4.0.0", + "@types/unist": "^3.0.0", + "decode-named-character-reference": "^1.0.0", + "devlop": "^1.0.0", + "mdast-util-to-string": "^4.0.0", + "micromark": "^4.0.0", + "micromark-util-decode-numeric-character-reference": "^2.0.0", + "micromark-util-decode-string": "^2.0.0", + "micromark-util-normalize-identifier": "^2.0.0", + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0", + "unist-util-stringify-position": "^4.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/mdast-util-gfm/node_modules/micromark": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/micromark/-/micromark-4.0.0.tgz", + "integrity": "sha512-o/sd0nMof8kYff+TqcDx3VSrgBTcZpSvYcAHIfHhv5VAuNmisCxjhx6YmxS8PFEpb9z5WKWKPdzf0jM23ro3RQ==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "dependencies": { + "@types/debug": "^4.0.0", + "debug": "^4.0.0", + "decode-named-character-reference": "^1.0.0", + "devlop": "^1.0.0", + "micromark-core-commonmark": "^2.0.0", + "micromark-factory-space": "^2.0.0", + "micromark-util-character": "^2.0.0", + "micromark-util-chunked": "^2.0.0", + "micromark-util-combine-extensions": "^2.0.0", + "micromark-util-decode-numeric-character-reference": "^2.0.0", + "micromark-util-encode": "^2.0.0", + "micromark-util-normalize-identifier": "^2.0.0", + "micromark-util-resolve-all": "^2.0.0", + "micromark-util-sanitize-uri": "^2.0.0", + "micromark-util-subtokenize": "^2.0.0", + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" + } + }, + "node_modules/mdast-util-gfm/node_modules/micromark-core-commonmark": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-core-commonmark/-/micromark-core-commonmark-2.0.1.tgz", + "integrity": "sha512-CUQyKr1e///ZODyD1U3xit6zXwy1a8q2a1S1HKtIlmgvurrEpaw/Y9y6KSIbF8P59cn/NjzHyO+Q2fAyYLQrAA==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "dependencies": { + "decode-named-character-reference": "^1.0.0", + "devlop": "^1.0.0", + "micromark-factory-destination": "^2.0.0", + "micromark-factory-label": "^2.0.0", + "micromark-factory-space": "^2.0.0", + "micromark-factory-title": "^2.0.0", + "micromark-factory-whitespace": "^2.0.0", + "micromark-util-character": "^2.0.0", + "micromark-util-chunked": "^2.0.0", + "micromark-util-classify-character": "^2.0.0", + "micromark-util-html-tag-name": "^2.0.0", + "micromark-util-normalize-identifier": "^2.0.0", + "micromark-util-resolve-all": "^2.0.0", + "micromark-util-subtokenize": "^2.0.0", + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" + } + }, + "node_modules/mdast-util-gfm/node_modules/micromark-factory-destination": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/micromark-factory-destination/-/micromark-factory-destination-2.0.0.tgz", + "integrity": "sha512-j9DGrQLm/Uhl2tCzcbLhy5kXsgkHUrjJHg4fFAeoMRwJmJerT9aw4FEhIbZStWN8A3qMwOp1uzHr4UL8AInxtA==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "dependencies": { + "micromark-util-character": "^2.0.0", + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" + } + }, + "node_modules/mdast-util-gfm/node_modules/micromark-factory-label": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/micromark-factory-label/-/micromark-factory-label-2.0.0.tgz", + "integrity": "sha512-RR3i96ohZGde//4WSe/dJsxOX6vxIg9TimLAS3i4EhBAFx8Sm5SmqVfR8E87DPSR31nEAjZfbt91OMZWcNgdZw==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "dependencies": { + "devlop": "^1.0.0", + "micromark-util-character": "^2.0.0", + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" + } + }, + "node_modules/mdast-util-gfm/node_modules/micromark-factory-space": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/micromark-factory-space/-/micromark-factory-space-2.0.0.tgz", + "integrity": "sha512-TKr+LIDX2pkBJXFLzpyPyljzYK3MtmllMUMODTQJIUfDGncESaqB90db9IAUcz4AZAJFdd8U9zOp9ty1458rxg==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "dependencies": { + "micromark-util-character": "^2.0.0", + "micromark-util-types": "^2.0.0" + } + }, + "node_modules/mdast-util-gfm/node_modules/micromark-factory-title": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/micromark-factory-title/-/micromark-factory-title-2.0.0.tgz", + "integrity": "sha512-jY8CSxmpWLOxS+t8W+FG3Xigc0RDQA9bKMY/EwILvsesiRniiVMejYTE4wumNc2f4UbAa4WsHqe3J1QS1sli+A==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "dependencies": { + "micromark-factory-space": "^2.0.0", + "micromark-util-character": "^2.0.0", + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" + } + }, + "node_modules/mdast-util-gfm/node_modules/micromark-factory-whitespace": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/micromark-factory-whitespace/-/micromark-factory-whitespace-2.0.0.tgz", + "integrity": "sha512-28kbwaBjc5yAI1XadbdPYHX/eDnqaUFVikLwrO7FDnKG7lpgxnvk/XGRhX/PN0mOZ+dBSZ+LgunHS+6tYQAzhA==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "dependencies": { + "micromark-factory-space": "^2.0.0", + "micromark-util-character": "^2.0.0", + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" + } + }, + "node_modules/mdast-util-gfm/node_modules/micromark-util-character": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/micromark-util-character/-/micromark-util-character-2.1.0.tgz", + "integrity": "sha512-KvOVV+X1yLBfs9dCBSopq/+G1PcgT3lAK07mC4BzXi5E7ahzMAF8oIupDDJ6mievI6F+lAATkbQQlQixJfT3aQ==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "dependencies": { + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" + } + }, + "node_modules/mdast-util-gfm/node_modules/micromark-util-chunked": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/micromark-util-chunked/-/micromark-util-chunked-2.0.0.tgz", + "integrity": "sha512-anK8SWmNphkXdaKgz5hJvGa7l00qmcaUQoMYsBwDlSKFKjc6gjGXPDw3FNL3Nbwq5L8gE+RCbGqTw49FK5Qyvg==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "dependencies": { + "micromark-util-symbol": "^2.0.0" + } + }, + "node_modules/mdast-util-gfm/node_modules/micromark-util-classify-character": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/micromark-util-classify-character/-/micromark-util-classify-character-2.0.0.tgz", + "integrity": "sha512-S0ze2R9GH+fu41FA7pbSqNWObo/kzwf8rN/+IGlW/4tC6oACOs8B++bh+i9bVyNnwCcuksbFwsBme5OCKXCwIw==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "dependencies": { + "micromark-util-character": "^2.0.0", + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" + } + }, + "node_modules/mdast-util-gfm/node_modules/micromark-util-combine-extensions": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/micromark-util-combine-extensions/-/micromark-util-combine-extensions-2.0.0.tgz", + "integrity": "sha512-vZZio48k7ON0fVS3CUgFatWHoKbbLTK/rT7pzpJ4Bjp5JjkZeasRfrS9wsBdDJK2cJLHMckXZdzPSSr1B8a4oQ==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "dependencies": { + "micromark-util-chunked": "^2.0.0", + "micromark-util-types": "^2.0.0" + } + }, + "node_modules/mdast-util-gfm/node_modules/micromark-util-decode-numeric-character-reference": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-util-decode-numeric-character-reference/-/micromark-util-decode-numeric-character-reference-2.0.1.tgz", + "integrity": "sha512-bmkNc7z8Wn6kgjZmVHOX3SowGmVdhYS7yBpMnuMnPzDq/6xwVA604DuOXMZTO1lvq01g+Adfa0pE2UKGlxL1XQ==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "dependencies": { + "micromark-util-symbol": "^2.0.0" + } + }, + "node_modules/mdast-util-gfm/node_modules/micromark-util-decode-string": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/micromark-util-decode-string/-/micromark-util-decode-string-2.0.0.tgz", + "integrity": "sha512-r4Sc6leeUTn3P6gk20aFMj2ntPwn6qpDZqWvYmAG6NgvFTIlj4WtrAudLi65qYoaGdXYViXYw2pkmn7QnIFasA==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "dependencies": { + "decode-named-character-reference": "^1.0.0", + "micromark-util-character": "^2.0.0", + "micromark-util-decode-numeric-character-reference": "^2.0.0", + "micromark-util-symbol": "^2.0.0" + } + }, + "node_modules/mdast-util-gfm/node_modules/micromark-util-encode": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/micromark-util-encode/-/micromark-util-encode-2.0.0.tgz", + "integrity": "sha512-pS+ROfCXAGLWCOc8egcBvT0kf27GoWMqtdarNfDcjb6YLuV5cM3ioG45Ys2qOVqeqSbjaKg72vU+Wby3eddPsA==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ] + }, + "node_modules/mdast-util-gfm/node_modules/micromark-util-html-tag-name": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/micromark-util-html-tag-name/-/micromark-util-html-tag-name-2.0.0.tgz", + "integrity": "sha512-xNn4Pqkj2puRhKdKTm8t1YHC/BAjx6CEwRFXntTaRf/x16aqka6ouVoutm+QdkISTlT7e2zU7U4ZdlDLJd2Mcw==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ] + }, + "node_modules/mdast-util-gfm/node_modules/micromark-util-normalize-identifier": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/micromark-util-normalize-identifier/-/micromark-util-normalize-identifier-2.0.0.tgz", + "integrity": "sha512-2xhYT0sfo85FMrUPtHcPo2rrp1lwbDEEzpx7jiH2xXJLqBuy4H0GgXk5ToU8IEwoROtXuL8ND0ttVa4rNqYK3w==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "dependencies": { + "micromark-util-symbol": "^2.0.0" + } + }, + "node_modules/mdast-util-gfm/node_modules/micromark-util-resolve-all": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/micromark-util-resolve-all/-/micromark-util-resolve-all-2.0.0.tgz", + "integrity": "sha512-6KU6qO7DZ7GJkaCgwBNtplXCvGkJToU86ybBAUdavvgsCiG8lSSvYxr9MhwmQ+udpzywHsl4RpGJsYWG1pDOcA==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "dependencies": { + "micromark-util-types": "^2.0.0" + } + }, + "node_modules/mdast-util-gfm/node_modules/micromark-util-sanitize-uri": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/micromark-util-sanitize-uri/-/micromark-util-sanitize-uri-2.0.0.tgz", + "integrity": "sha512-WhYv5UEcZrbAtlsnPuChHUAsu/iBPOVaEVsntLBIdpibO0ddy8OzavZz3iL2xVvBZOpolujSliP65Kq0/7KIYw==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "dependencies": { + "micromark-util-character": "^2.0.0", + "micromark-util-encode": "^2.0.0", + "micromark-util-symbol": "^2.0.0" + } + }, + "node_modules/mdast-util-gfm/node_modules/micromark-util-subtokenize": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-util-subtokenize/-/micromark-util-subtokenize-2.0.1.tgz", + "integrity": "sha512-jZNtiFl/1aY73yS3UGQkutD0UbhTt68qnRpw2Pifmz5wV9h8gOVsN70v+Lq/f1rKaU/W8pxRe8y8Q9FX1AOe1Q==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "dependencies": { + "devlop": "^1.0.0", + "micromark-util-chunked": "^2.0.0", + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" + } + }, + "node_modules/mdast-util-gfm/node_modules/micromark-util-symbol": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/micromark-util-symbol/-/micromark-util-symbol-2.0.0.tgz", + "integrity": "sha512-8JZt9ElZ5kyTnO94muPxIGS8oyElRJaiJO8EzV6ZSyGQ1Is8xwl4Q45qU5UOg+bGH4AikWziz0iN4sFLWs8PGw==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ] + }, + "node_modules/mdast-util-gfm/node_modules/micromark-util-types": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/micromark-util-types/-/micromark-util-types-2.0.0.tgz", + "integrity": "sha512-oNh6S2WMHWRZrmutsRmDDfkzKtxF+bc2VxLC9dvtrDIRFln627VsFP6fLMgTryGDljgLPjkrzQSDcPrjPyDJ5w==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ] + }, + "node_modules/mdast-util-mdx": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/mdast-util-mdx/-/mdast-util-mdx-3.0.0.tgz", + "integrity": "sha512-JfbYLAW7XnYTTbUsmpu0kdBUVe+yKVJZBItEjwyYJiDJuZ9w4eeaqks4HQO+R7objWgS2ymV60GYpI14Ug554w==", + "dependencies": { + "mdast-util-from-markdown": "^2.0.0", + "mdast-util-mdx-expression": "^2.0.0", + "mdast-util-mdx-jsx": "^3.0.0", + "mdast-util-mdxjs-esm": "^2.0.0", + "mdast-util-to-markdown": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/mdast-util-mdx-expression": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/mdast-util-mdx-expression/-/mdast-util-mdx-expression-2.0.0.tgz", + "integrity": "sha512-fGCu8eWdKUKNu5mohVGkhBXCXGnOTLuFqOvGMvdikr+J1w7lDJgxThOKpwRWzzbyXAU2hhSwsmssOY4yTokluw==", + "dependencies": { + "@types/estree-jsx": "^1.0.0", + "@types/hast": "^3.0.0", + "@types/mdast": "^4.0.0", + "devlop": "^1.0.0", + "mdast-util-from-markdown": "^2.0.0", + "mdast-util-to-markdown": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/mdast-util-mdx-expression/node_modules/@types/hast": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/@types/hast/-/hast-3.0.4.tgz", + "integrity": "sha512-WPs+bbQw5aCj+x6laNGWLH3wviHtoCv/P3+otBhbOhJgG8qtpdAMlTCxLtsTWA7LH1Oh/bFCHsBn0TPS5m30EQ==", + "dependencies": { + "@types/unist": "*" + } + }, + "node_modules/mdast-util-mdx-expression/node_modules/@types/mdast": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/@types/mdast/-/mdast-4.0.4.tgz", + "integrity": "sha512-kGaNbPh1k7AFzgpud/gMdvIm5xuECykRR+JnWKQno9TAXVa6WIVCGTPvYGekIDL4uwCZQSYbUxNBSb1aUo79oA==", + "dependencies": { + "@types/unist": "*" + } + }, + "node_modules/mdast-util-mdx-expression/node_modules/@types/unist": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/@types/unist/-/unist-3.0.2.tgz", + "integrity": "sha512-dqId9J8K/vGi5Zr7oo212BGii5m3q5Hxlkwy3WpYuKPklmBEvsbMYYyLxAQpSffdLl/gdW0XUpKWFvYmyoWCoQ==" + }, + "node_modules/mdast-util-mdx-expression/node_modules/mdast-util-from-markdown": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/mdast-util-from-markdown/-/mdast-util-from-markdown-2.0.1.tgz", + "integrity": "sha512-aJEUyzZ6TzlsX2s5B4Of7lN7EQtAxvtradMMglCQDyaTFgse6CmtmdJ15ElnVRlCg1vpNyVtbem0PWzlNieZsA==", + "dependencies": { + "@types/mdast": "^4.0.0", + "@types/unist": "^3.0.0", + "decode-named-character-reference": "^1.0.0", + "devlop": "^1.0.0", + "mdast-util-to-string": "^4.0.0", + "micromark": "^4.0.0", + "micromark-util-decode-numeric-character-reference": "^2.0.0", + "micromark-util-decode-string": "^2.0.0", + "micromark-util-normalize-identifier": "^2.0.0", + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0", + "unist-util-stringify-position": "^4.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/mdast-util-mdx-expression/node_modules/micromark": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/micromark/-/micromark-4.0.0.tgz", + "integrity": "sha512-o/sd0nMof8kYff+TqcDx3VSrgBTcZpSvYcAHIfHhv5VAuNmisCxjhx6YmxS8PFEpb9z5WKWKPdzf0jM23ro3RQ==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "dependencies": { + "@types/debug": "^4.0.0", + "debug": "^4.0.0", + "decode-named-character-reference": "^1.0.0", + "devlop": "^1.0.0", + "micromark-core-commonmark": "^2.0.0", + "micromark-factory-space": "^2.0.0", + "micromark-util-character": "^2.0.0", + "micromark-util-chunked": "^2.0.0", + "micromark-util-combine-extensions": "^2.0.0", + "micromark-util-decode-numeric-character-reference": "^2.0.0", + "micromark-util-encode": "^2.0.0", + "micromark-util-normalize-identifier": "^2.0.0", + "micromark-util-resolve-all": "^2.0.0", + "micromark-util-sanitize-uri": "^2.0.0", + "micromark-util-subtokenize": "^2.0.0", + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" + } + }, + "node_modules/mdast-util-mdx-expression/node_modules/micromark-core-commonmark": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-core-commonmark/-/micromark-core-commonmark-2.0.1.tgz", + "integrity": "sha512-CUQyKr1e///ZODyD1U3xit6zXwy1a8q2a1S1HKtIlmgvurrEpaw/Y9y6KSIbF8P59cn/NjzHyO+Q2fAyYLQrAA==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "dependencies": { + "decode-named-character-reference": "^1.0.0", + "devlop": "^1.0.0", + "micromark-factory-destination": "^2.0.0", + "micromark-factory-label": "^2.0.0", + "micromark-factory-space": "^2.0.0", + "micromark-factory-title": "^2.0.0", + "micromark-factory-whitespace": "^2.0.0", + "micromark-util-character": "^2.0.0", + "micromark-util-chunked": "^2.0.0", + "micromark-util-classify-character": "^2.0.0", + "micromark-util-html-tag-name": "^2.0.0", + "micromark-util-normalize-identifier": "^2.0.0", + "micromark-util-resolve-all": "^2.0.0", + "micromark-util-subtokenize": "^2.0.0", + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" + } + }, + "node_modules/mdast-util-mdx-expression/node_modules/micromark-factory-destination": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/micromark-factory-destination/-/micromark-factory-destination-2.0.0.tgz", + "integrity": "sha512-j9DGrQLm/Uhl2tCzcbLhy5kXsgkHUrjJHg4fFAeoMRwJmJerT9aw4FEhIbZStWN8A3qMwOp1uzHr4UL8AInxtA==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "dependencies": { + "micromark-util-character": "^2.0.0", + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" + } + }, + "node_modules/mdast-util-mdx-expression/node_modules/micromark-factory-label": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/micromark-factory-label/-/micromark-factory-label-2.0.0.tgz", + "integrity": "sha512-RR3i96ohZGde//4WSe/dJsxOX6vxIg9TimLAS3i4EhBAFx8Sm5SmqVfR8E87DPSR31nEAjZfbt91OMZWcNgdZw==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "dependencies": { + "devlop": "^1.0.0", + "micromark-util-character": "^2.0.0", + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" + } + }, + "node_modules/mdast-util-mdx-expression/node_modules/micromark-factory-space": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/micromark-factory-space/-/micromark-factory-space-2.0.0.tgz", + "integrity": "sha512-TKr+LIDX2pkBJXFLzpyPyljzYK3MtmllMUMODTQJIUfDGncESaqB90db9IAUcz4AZAJFdd8U9zOp9ty1458rxg==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "dependencies": { + "micromark-util-character": "^2.0.0", + "micromark-util-types": "^2.0.0" + } + }, + "node_modules/mdast-util-mdx-expression/node_modules/micromark-factory-title": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/micromark-factory-title/-/micromark-factory-title-2.0.0.tgz", + "integrity": "sha512-jY8CSxmpWLOxS+t8W+FG3Xigc0RDQA9bKMY/EwILvsesiRniiVMejYTE4wumNc2f4UbAa4WsHqe3J1QS1sli+A==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "dependencies": { + "micromark-factory-space": "^2.0.0", + "micromark-util-character": "^2.0.0", + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" + } + }, + "node_modules/mdast-util-mdx-expression/node_modules/micromark-factory-whitespace": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/micromark-factory-whitespace/-/micromark-factory-whitespace-2.0.0.tgz", + "integrity": "sha512-28kbwaBjc5yAI1XadbdPYHX/eDnqaUFVikLwrO7FDnKG7lpgxnvk/XGRhX/PN0mOZ+dBSZ+LgunHS+6tYQAzhA==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "dependencies": { + "micromark-factory-space": "^2.0.0", + "micromark-util-character": "^2.0.0", + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" + } + }, + "node_modules/mdast-util-mdx-expression/node_modules/micromark-util-character": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/micromark-util-character/-/micromark-util-character-2.1.0.tgz", + "integrity": "sha512-KvOVV+X1yLBfs9dCBSopq/+G1PcgT3lAK07mC4BzXi5E7ahzMAF8oIupDDJ6mievI6F+lAATkbQQlQixJfT3aQ==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "dependencies": { + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" + } + }, + "node_modules/mdast-util-mdx-expression/node_modules/micromark-util-chunked": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/micromark-util-chunked/-/micromark-util-chunked-2.0.0.tgz", + "integrity": "sha512-anK8SWmNphkXdaKgz5hJvGa7l00qmcaUQoMYsBwDlSKFKjc6gjGXPDw3FNL3Nbwq5L8gE+RCbGqTw49FK5Qyvg==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "dependencies": { + "micromark-util-symbol": "^2.0.0" + } + }, + "node_modules/mdast-util-mdx-expression/node_modules/micromark-util-classify-character": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/micromark-util-classify-character/-/micromark-util-classify-character-2.0.0.tgz", + "integrity": "sha512-S0ze2R9GH+fu41FA7pbSqNWObo/kzwf8rN/+IGlW/4tC6oACOs8B++bh+i9bVyNnwCcuksbFwsBme5OCKXCwIw==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "dependencies": { + "micromark-util-character": "^2.0.0", + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" + } + }, + "node_modules/mdast-util-mdx-expression/node_modules/micromark-util-combine-extensions": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/micromark-util-combine-extensions/-/micromark-util-combine-extensions-2.0.0.tgz", + "integrity": "sha512-vZZio48k7ON0fVS3CUgFatWHoKbbLTK/rT7pzpJ4Bjp5JjkZeasRfrS9wsBdDJK2cJLHMckXZdzPSSr1B8a4oQ==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "dependencies": { + "micromark-util-chunked": "^2.0.0", + "micromark-util-types": "^2.0.0" + } + }, + "node_modules/mdast-util-mdx-expression/node_modules/micromark-util-decode-numeric-character-reference": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-util-decode-numeric-character-reference/-/micromark-util-decode-numeric-character-reference-2.0.1.tgz", + "integrity": "sha512-bmkNc7z8Wn6kgjZmVHOX3SowGmVdhYS7yBpMnuMnPzDq/6xwVA604DuOXMZTO1lvq01g+Adfa0pE2UKGlxL1XQ==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "dependencies": { + "micromark-util-symbol": "^2.0.0" + } + }, + "node_modules/mdast-util-mdx-expression/node_modules/micromark-util-decode-string": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/micromark-util-decode-string/-/micromark-util-decode-string-2.0.0.tgz", + "integrity": "sha512-r4Sc6leeUTn3P6gk20aFMj2ntPwn6qpDZqWvYmAG6NgvFTIlj4WtrAudLi65qYoaGdXYViXYw2pkmn7QnIFasA==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "dependencies": { + "decode-named-character-reference": "^1.0.0", + "micromark-util-character": "^2.0.0", + "micromark-util-decode-numeric-character-reference": "^2.0.0", + "micromark-util-symbol": "^2.0.0" + } + }, + "node_modules/mdast-util-mdx-expression/node_modules/micromark-util-encode": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/micromark-util-encode/-/micromark-util-encode-2.0.0.tgz", + "integrity": "sha512-pS+ROfCXAGLWCOc8egcBvT0kf27GoWMqtdarNfDcjb6YLuV5cM3ioG45Ys2qOVqeqSbjaKg72vU+Wby3eddPsA==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ] + }, + "node_modules/mdast-util-mdx-expression/node_modules/micromark-util-html-tag-name": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/micromark-util-html-tag-name/-/micromark-util-html-tag-name-2.0.0.tgz", + "integrity": "sha512-xNn4Pqkj2puRhKdKTm8t1YHC/BAjx6CEwRFXntTaRf/x16aqka6ouVoutm+QdkISTlT7e2zU7U4ZdlDLJd2Mcw==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ] + }, + "node_modules/mdast-util-mdx-expression/node_modules/micromark-util-normalize-identifier": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/micromark-util-normalize-identifier/-/micromark-util-normalize-identifier-2.0.0.tgz", + "integrity": "sha512-2xhYT0sfo85FMrUPtHcPo2rrp1lwbDEEzpx7jiH2xXJLqBuy4H0GgXk5ToU8IEwoROtXuL8ND0ttVa4rNqYK3w==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "dependencies": { + "micromark-util-symbol": "^2.0.0" + } + }, + "node_modules/mdast-util-mdx-expression/node_modules/micromark-util-resolve-all": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/micromark-util-resolve-all/-/micromark-util-resolve-all-2.0.0.tgz", + "integrity": "sha512-6KU6qO7DZ7GJkaCgwBNtplXCvGkJToU86ybBAUdavvgsCiG8lSSvYxr9MhwmQ+udpzywHsl4RpGJsYWG1pDOcA==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "dependencies": { + "micromark-util-types": "^2.0.0" + } + }, + "node_modules/mdast-util-mdx-expression/node_modules/micromark-util-sanitize-uri": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/micromark-util-sanitize-uri/-/micromark-util-sanitize-uri-2.0.0.tgz", + "integrity": "sha512-WhYv5UEcZrbAtlsnPuChHUAsu/iBPOVaEVsntLBIdpibO0ddy8OzavZz3iL2xVvBZOpolujSliP65Kq0/7KIYw==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "dependencies": { + "micromark-util-character": "^2.0.0", + "micromark-util-encode": "^2.0.0", + "micromark-util-symbol": "^2.0.0" + } + }, + "node_modules/mdast-util-mdx-expression/node_modules/micromark-util-subtokenize": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-util-subtokenize/-/micromark-util-subtokenize-2.0.1.tgz", + "integrity": "sha512-jZNtiFl/1aY73yS3UGQkutD0UbhTt68qnRpw2Pifmz5wV9h8gOVsN70v+Lq/f1rKaU/W8pxRe8y8Q9FX1AOe1Q==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "dependencies": { + "devlop": "^1.0.0", + "micromark-util-chunked": "^2.0.0", + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" + } + }, + "node_modules/mdast-util-mdx-expression/node_modules/micromark-util-symbol": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/micromark-util-symbol/-/micromark-util-symbol-2.0.0.tgz", + "integrity": "sha512-8JZt9ElZ5kyTnO94muPxIGS8oyElRJaiJO8EzV6ZSyGQ1Is8xwl4Q45qU5UOg+bGH4AikWziz0iN4sFLWs8PGw==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ] + }, + "node_modules/mdast-util-mdx-expression/node_modules/micromark-util-types": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/micromark-util-types/-/micromark-util-types-2.0.0.tgz", + "integrity": "sha512-oNh6S2WMHWRZrmutsRmDDfkzKtxF+bc2VxLC9dvtrDIRFln627VsFP6fLMgTryGDljgLPjkrzQSDcPrjPyDJ5w==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ] + }, + "node_modules/mdast-util-mdx-jsx": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/mdast-util-mdx-jsx/-/mdast-util-mdx-jsx-3.1.2.tgz", + "integrity": "sha512-eKMQDeywY2wlHc97k5eD8VC+9ASMjN8ItEZQNGwJ6E0XWKiW/Z0V5/H8pvoXUf+y+Mj0VIgeRRbujBmFn4FTyA==", + "dependencies": { + "@types/estree-jsx": "^1.0.0", + "@types/hast": "^3.0.0", + "@types/mdast": "^4.0.0", + "@types/unist": "^3.0.0", + "ccount": "^2.0.0", + "devlop": "^1.1.0", + "mdast-util-from-markdown": "^2.0.0", + "mdast-util-to-markdown": "^2.0.0", + "parse-entities": "^4.0.0", + "stringify-entities": "^4.0.0", + "unist-util-remove-position": "^5.0.0", + "unist-util-stringify-position": "^4.0.0", + "vfile-message": "^4.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/mdast-util-mdx-jsx/node_modules/@types/hast": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/@types/hast/-/hast-3.0.4.tgz", + "integrity": "sha512-WPs+bbQw5aCj+x6laNGWLH3wviHtoCv/P3+otBhbOhJgG8qtpdAMlTCxLtsTWA7LH1Oh/bFCHsBn0TPS5m30EQ==", + "dependencies": { + "@types/unist": "*" + } + }, + "node_modules/mdast-util-mdx-jsx/node_modules/@types/mdast": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/@types/mdast/-/mdast-4.0.4.tgz", + "integrity": "sha512-kGaNbPh1k7AFzgpud/gMdvIm5xuECykRR+JnWKQno9TAXVa6WIVCGTPvYGekIDL4uwCZQSYbUxNBSb1aUo79oA==", + "dependencies": { + "@types/unist": "*" + } + }, + "node_modules/mdast-util-mdx-jsx/node_modules/@types/unist": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/@types/unist/-/unist-3.0.2.tgz", + "integrity": "sha512-dqId9J8K/vGi5Zr7oo212BGii5m3q5Hxlkwy3WpYuKPklmBEvsbMYYyLxAQpSffdLl/gdW0XUpKWFvYmyoWCoQ==" + }, + "node_modules/mdast-util-mdx-jsx/node_modules/ccount": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/ccount/-/ccount-2.0.1.tgz", + "integrity": "sha512-eyrF0jiFpY+3drT6383f1qhkbGsLSifNAjA61IUjZjmLCWjItY6LB9ft9YhoDgwfmclB2zhu51Lc7+95b8NRAg==", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/mdast-util-mdx-jsx/node_modules/character-entities": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/character-entities/-/character-entities-2.0.2.tgz", + "integrity": "sha512-shx7oQ0Awen/BRIdkjkvz54PnEEI/EjwXDSIZp86/KKdbafHh1Df/RYGBhn4hbe2+uKC9FnT5UCEdyPz3ai9hQ==", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/mdast-util-mdx-jsx/node_modules/character-entities-legacy": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/character-entities-legacy/-/character-entities-legacy-3.0.0.tgz", + "integrity": "sha512-RpPp0asT/6ufRm//AJVwpViZbGM/MkjQFxJccQRHmISF/22NBtsHqAWmL+/pmkPWoIUJdWyeVleTl1wydHATVQ==", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/mdast-util-mdx-jsx/node_modules/character-reference-invalid": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/character-reference-invalid/-/character-reference-invalid-2.0.1.tgz", + "integrity": "sha512-iBZ4F4wRbyORVsu0jPV7gXkOsGYjGHPmAyv+HiHG8gi5PtC9KI2j1+v8/tlibRvjoWX027ypmG/n0HtO5t7unw==", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/mdast-util-mdx-jsx/node_modules/is-alphabetical": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-alphabetical/-/is-alphabetical-2.0.1.tgz", + "integrity": "sha512-FWyyY60MeTNyeSRpkM2Iry0G9hpr7/9kD40mD/cGQEuilcZYS4okz8SN2Q6rLCJ8gbCt6fN+rC+6tMGS99LaxQ==", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/mdast-util-mdx-jsx/node_modules/is-alphanumerical": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-alphanumerical/-/is-alphanumerical-2.0.1.tgz", + "integrity": "sha512-hmbYhX/9MUMF5uh7tOXyK/n0ZvWpad5caBA17GsC6vyuCqaWliRG5K1qS9inmUhEMaOBIW7/whAnSwveW/LtZw==", + "dependencies": { + "is-alphabetical": "^2.0.0", + "is-decimal": "^2.0.0" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/mdast-util-mdx-jsx/node_modules/is-decimal": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-decimal/-/is-decimal-2.0.1.tgz", + "integrity": "sha512-AAB9hiomQs5DXWcRB1rqsxGUstbRroFOPPVAomNk/3XHR5JyEZChOyTWe2oayKnsSsr/kcGqF+z6yuH6HHpN0A==", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/mdast-util-mdx-jsx/node_modules/is-hexadecimal": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-hexadecimal/-/is-hexadecimal-2.0.1.tgz", + "integrity": "sha512-DgZQp241c8oO6cA1SbTEWiXeoxV42vlcJxgH+B3hi1AiqqKruZR3ZGF8In3fj4+/y/7rHvlOZLZtgJ/4ttYGZg==", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/mdast-util-mdx-jsx/node_modules/mdast-util-from-markdown": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/mdast-util-from-markdown/-/mdast-util-from-markdown-2.0.1.tgz", + "integrity": "sha512-aJEUyzZ6TzlsX2s5B4Of7lN7EQtAxvtradMMglCQDyaTFgse6CmtmdJ15ElnVRlCg1vpNyVtbem0PWzlNieZsA==", + "dependencies": { + "@types/mdast": "^4.0.0", + "@types/unist": "^3.0.0", + "decode-named-character-reference": "^1.0.0", + "devlop": "^1.0.0", + "mdast-util-to-string": "^4.0.0", + "micromark": "^4.0.0", + "micromark-util-decode-numeric-character-reference": "^2.0.0", + "micromark-util-decode-string": "^2.0.0", + "micromark-util-normalize-identifier": "^2.0.0", + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0", + "unist-util-stringify-position": "^4.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/mdast-util-mdx-jsx/node_modules/micromark": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/micromark/-/micromark-4.0.0.tgz", + "integrity": "sha512-o/sd0nMof8kYff+TqcDx3VSrgBTcZpSvYcAHIfHhv5VAuNmisCxjhx6YmxS8PFEpb9z5WKWKPdzf0jM23ro3RQ==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "dependencies": { + "@types/debug": "^4.0.0", + "debug": "^4.0.0", + "decode-named-character-reference": "^1.0.0", + "devlop": "^1.0.0", + "micromark-core-commonmark": "^2.0.0", + "micromark-factory-space": "^2.0.0", + "micromark-util-character": "^2.0.0", + "micromark-util-chunked": "^2.0.0", + "micromark-util-combine-extensions": "^2.0.0", + "micromark-util-decode-numeric-character-reference": "^2.0.0", + "micromark-util-encode": "^2.0.0", + "micromark-util-normalize-identifier": "^2.0.0", + "micromark-util-resolve-all": "^2.0.0", + "micromark-util-sanitize-uri": "^2.0.0", + "micromark-util-subtokenize": "^2.0.0", + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" + } + }, + "node_modules/mdast-util-mdx-jsx/node_modules/micromark-core-commonmark": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-core-commonmark/-/micromark-core-commonmark-2.0.1.tgz", + "integrity": "sha512-CUQyKr1e///ZODyD1U3xit6zXwy1a8q2a1S1HKtIlmgvurrEpaw/Y9y6KSIbF8P59cn/NjzHyO+Q2fAyYLQrAA==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "dependencies": { + "decode-named-character-reference": "^1.0.0", + "devlop": "^1.0.0", + "micromark-factory-destination": "^2.0.0", + "micromark-factory-label": "^2.0.0", + "micromark-factory-space": "^2.0.0", + "micromark-factory-title": "^2.0.0", + "micromark-factory-whitespace": "^2.0.0", + "micromark-util-character": "^2.0.0", + "micromark-util-chunked": "^2.0.0", + "micromark-util-classify-character": "^2.0.0", + "micromark-util-html-tag-name": "^2.0.0", + "micromark-util-normalize-identifier": "^2.0.0", + "micromark-util-resolve-all": "^2.0.0", + "micromark-util-subtokenize": "^2.0.0", + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" + } + }, + "node_modules/mdast-util-mdx-jsx/node_modules/micromark-factory-destination": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/micromark-factory-destination/-/micromark-factory-destination-2.0.0.tgz", + "integrity": "sha512-j9DGrQLm/Uhl2tCzcbLhy5kXsgkHUrjJHg4fFAeoMRwJmJerT9aw4FEhIbZStWN8A3qMwOp1uzHr4UL8AInxtA==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "dependencies": { + "micromark-util-character": "^2.0.0", + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" + } + }, + "node_modules/mdast-util-mdx-jsx/node_modules/micromark-factory-label": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/micromark-factory-label/-/micromark-factory-label-2.0.0.tgz", + "integrity": "sha512-RR3i96ohZGde//4WSe/dJsxOX6vxIg9TimLAS3i4EhBAFx8Sm5SmqVfR8E87DPSR31nEAjZfbt91OMZWcNgdZw==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "dependencies": { + "devlop": "^1.0.0", + "micromark-util-character": "^2.0.0", + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" + } + }, + "node_modules/mdast-util-mdx-jsx/node_modules/micromark-factory-space": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/micromark-factory-space/-/micromark-factory-space-2.0.0.tgz", + "integrity": "sha512-TKr+LIDX2pkBJXFLzpyPyljzYK3MtmllMUMODTQJIUfDGncESaqB90db9IAUcz4AZAJFdd8U9zOp9ty1458rxg==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "dependencies": { + "micromark-util-character": "^2.0.0", + "micromark-util-types": "^2.0.0" + } + }, + "node_modules/mdast-util-mdx-jsx/node_modules/micromark-factory-title": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/micromark-factory-title/-/micromark-factory-title-2.0.0.tgz", + "integrity": "sha512-jY8CSxmpWLOxS+t8W+FG3Xigc0RDQA9bKMY/EwILvsesiRniiVMejYTE4wumNc2f4UbAa4WsHqe3J1QS1sli+A==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "dependencies": { + "micromark-factory-space": "^2.0.0", + "micromark-util-character": "^2.0.0", + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" + } + }, + "node_modules/mdast-util-mdx-jsx/node_modules/micromark-factory-whitespace": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/micromark-factory-whitespace/-/micromark-factory-whitespace-2.0.0.tgz", + "integrity": "sha512-28kbwaBjc5yAI1XadbdPYHX/eDnqaUFVikLwrO7FDnKG7lpgxnvk/XGRhX/PN0mOZ+dBSZ+LgunHS+6tYQAzhA==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "dependencies": { + "micromark-factory-space": "^2.0.0", + "micromark-util-character": "^2.0.0", + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" + } + }, + "node_modules/mdast-util-mdx-jsx/node_modules/micromark-util-character": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/micromark-util-character/-/micromark-util-character-2.1.0.tgz", + "integrity": "sha512-KvOVV+X1yLBfs9dCBSopq/+G1PcgT3lAK07mC4BzXi5E7ahzMAF8oIupDDJ6mievI6F+lAATkbQQlQixJfT3aQ==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "dependencies": { + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" + } + }, + "node_modules/mdast-util-mdx-jsx/node_modules/micromark-util-chunked": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/micromark-util-chunked/-/micromark-util-chunked-2.0.0.tgz", + "integrity": "sha512-anK8SWmNphkXdaKgz5hJvGa7l00qmcaUQoMYsBwDlSKFKjc6gjGXPDw3FNL3Nbwq5L8gE+RCbGqTw49FK5Qyvg==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "dependencies": { + "micromark-util-symbol": "^2.0.0" + } + }, + "node_modules/mdast-util-mdx-jsx/node_modules/micromark-util-classify-character": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/micromark-util-classify-character/-/micromark-util-classify-character-2.0.0.tgz", + "integrity": "sha512-S0ze2R9GH+fu41FA7pbSqNWObo/kzwf8rN/+IGlW/4tC6oACOs8B++bh+i9bVyNnwCcuksbFwsBme5OCKXCwIw==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "dependencies": { + "micromark-util-character": "^2.0.0", + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" + } + }, + "node_modules/mdast-util-mdx-jsx/node_modules/micromark-util-combine-extensions": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/micromark-util-combine-extensions/-/micromark-util-combine-extensions-2.0.0.tgz", + "integrity": "sha512-vZZio48k7ON0fVS3CUgFatWHoKbbLTK/rT7pzpJ4Bjp5JjkZeasRfrS9wsBdDJK2cJLHMckXZdzPSSr1B8a4oQ==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "dependencies": { + "micromark-util-chunked": "^2.0.0", + "micromark-util-types": "^2.0.0" + } + }, + "node_modules/mdast-util-mdx-jsx/node_modules/micromark-util-decode-numeric-character-reference": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-util-decode-numeric-character-reference/-/micromark-util-decode-numeric-character-reference-2.0.1.tgz", + "integrity": "sha512-bmkNc7z8Wn6kgjZmVHOX3SowGmVdhYS7yBpMnuMnPzDq/6xwVA604DuOXMZTO1lvq01g+Adfa0pE2UKGlxL1XQ==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "dependencies": { + "micromark-util-symbol": "^2.0.0" + } + }, + "node_modules/mdast-util-mdx-jsx/node_modules/micromark-util-decode-string": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/micromark-util-decode-string/-/micromark-util-decode-string-2.0.0.tgz", + "integrity": "sha512-r4Sc6leeUTn3P6gk20aFMj2ntPwn6qpDZqWvYmAG6NgvFTIlj4WtrAudLi65qYoaGdXYViXYw2pkmn7QnIFasA==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "dependencies": { + "decode-named-character-reference": "^1.0.0", + "micromark-util-character": "^2.0.0", + "micromark-util-decode-numeric-character-reference": "^2.0.0", + "micromark-util-symbol": "^2.0.0" + } + }, + "node_modules/mdast-util-mdx-jsx/node_modules/micromark-util-encode": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/micromark-util-encode/-/micromark-util-encode-2.0.0.tgz", + "integrity": "sha512-pS+ROfCXAGLWCOc8egcBvT0kf27GoWMqtdarNfDcjb6YLuV5cM3ioG45Ys2qOVqeqSbjaKg72vU+Wby3eddPsA==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ] + }, + "node_modules/mdast-util-mdx-jsx/node_modules/micromark-util-html-tag-name": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/micromark-util-html-tag-name/-/micromark-util-html-tag-name-2.0.0.tgz", + "integrity": "sha512-xNn4Pqkj2puRhKdKTm8t1YHC/BAjx6CEwRFXntTaRf/x16aqka6ouVoutm+QdkISTlT7e2zU7U4ZdlDLJd2Mcw==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ] + }, + "node_modules/mdast-util-mdx-jsx/node_modules/micromark-util-normalize-identifier": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/micromark-util-normalize-identifier/-/micromark-util-normalize-identifier-2.0.0.tgz", + "integrity": "sha512-2xhYT0sfo85FMrUPtHcPo2rrp1lwbDEEzpx7jiH2xXJLqBuy4H0GgXk5ToU8IEwoROtXuL8ND0ttVa4rNqYK3w==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "dependencies": { + "micromark-util-symbol": "^2.0.0" + } + }, + "node_modules/mdast-util-mdx-jsx/node_modules/micromark-util-resolve-all": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/micromark-util-resolve-all/-/micromark-util-resolve-all-2.0.0.tgz", + "integrity": "sha512-6KU6qO7DZ7GJkaCgwBNtplXCvGkJToU86ybBAUdavvgsCiG8lSSvYxr9MhwmQ+udpzywHsl4RpGJsYWG1pDOcA==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "dependencies": { + "micromark-util-types": "^2.0.0" + } + }, + "node_modules/mdast-util-mdx-jsx/node_modules/micromark-util-sanitize-uri": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/micromark-util-sanitize-uri/-/micromark-util-sanitize-uri-2.0.0.tgz", + "integrity": "sha512-WhYv5UEcZrbAtlsnPuChHUAsu/iBPOVaEVsntLBIdpibO0ddy8OzavZz3iL2xVvBZOpolujSliP65Kq0/7KIYw==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "dependencies": { + "micromark-util-character": "^2.0.0", + "micromark-util-encode": "^2.0.0", + "micromark-util-symbol": "^2.0.0" + } + }, + "node_modules/mdast-util-mdx-jsx/node_modules/micromark-util-subtokenize": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-util-subtokenize/-/micromark-util-subtokenize-2.0.1.tgz", + "integrity": "sha512-jZNtiFl/1aY73yS3UGQkutD0UbhTt68qnRpw2Pifmz5wV9h8gOVsN70v+Lq/f1rKaU/W8pxRe8y8Q9FX1AOe1Q==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "dependencies": { + "devlop": "^1.0.0", + "micromark-util-chunked": "^2.0.0", + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" + } + }, + "node_modules/mdast-util-mdx-jsx/node_modules/micromark-util-symbol": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/micromark-util-symbol/-/micromark-util-symbol-2.0.0.tgz", + "integrity": "sha512-8JZt9ElZ5kyTnO94muPxIGS8oyElRJaiJO8EzV6ZSyGQ1Is8xwl4Q45qU5UOg+bGH4AikWziz0iN4sFLWs8PGw==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ] + }, + "node_modules/mdast-util-mdx-jsx/node_modules/micromark-util-types": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/micromark-util-types/-/micromark-util-types-2.0.0.tgz", + "integrity": "sha512-oNh6S2WMHWRZrmutsRmDDfkzKtxF+bc2VxLC9dvtrDIRFln627VsFP6fLMgTryGDljgLPjkrzQSDcPrjPyDJ5w==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ] + }, + "node_modules/mdast-util-mdx-jsx/node_modules/parse-entities": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/parse-entities/-/parse-entities-4.0.1.tgz", + "integrity": "sha512-SWzvYcSJh4d/SGLIOQfZ/CoNv6BTlI6YEQ7Nj82oDVnRpwe/Z/F1EMx42x3JAOwGBlCjeCH0BRJQbQ/opHL17w==", + "dependencies": { + "@types/unist": "^2.0.0", + "character-entities": "^2.0.0", + "character-entities-legacy": "^3.0.0", + "character-reference-invalid": "^2.0.0", + "decode-named-character-reference": "^1.0.0", + "is-alphanumerical": "^2.0.0", + "is-decimal": "^2.0.0", + "is-hexadecimal": "^2.0.0" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/mdast-util-mdx-jsx/node_modules/parse-entities/node_modules/@types/unist": { + "version": "2.0.10", + "resolved": "https://registry.npmjs.org/@types/unist/-/unist-2.0.10.tgz", + "integrity": "sha512-IfYcSBWE3hLpBg8+X2SEa8LVkJdJEkT2Ese2aaLs3ptGdVtABxndrMaxuFlQ1qdFf9Q5rDvDpxI3WwgvKFAsQA==" + }, + "node_modules/mdast-util-mdx-jsx/node_modules/unist-util-remove-position": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/unist-util-remove-position/-/unist-util-remove-position-5.0.0.tgz", + "integrity": "sha512-Hp5Kh3wLxv0PHj9m2yZhhLt58KzPtEYKQQ4yxfYFEO7EvHwzyDYnduhHnY1mDxoqr7VUwVuHXk9RXKIiYS1N8Q==", + "dependencies": { + "@types/unist": "^3.0.0", + "unist-util-visit": "^5.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/mdast-util-mdx/node_modules/@types/mdast": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/@types/mdast/-/mdast-4.0.4.tgz", + "integrity": "sha512-kGaNbPh1k7AFzgpud/gMdvIm5xuECykRR+JnWKQno9TAXVa6WIVCGTPvYGekIDL4uwCZQSYbUxNBSb1aUo79oA==", + "dependencies": { + "@types/unist": "*" + } + }, + "node_modules/mdast-util-mdx/node_modules/@types/unist": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/@types/unist/-/unist-3.0.2.tgz", + "integrity": "sha512-dqId9J8K/vGi5Zr7oo212BGii5m3q5Hxlkwy3WpYuKPklmBEvsbMYYyLxAQpSffdLl/gdW0XUpKWFvYmyoWCoQ==" + }, + "node_modules/mdast-util-mdx/node_modules/mdast-util-from-markdown": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/mdast-util-from-markdown/-/mdast-util-from-markdown-2.0.1.tgz", + "integrity": "sha512-aJEUyzZ6TzlsX2s5B4Of7lN7EQtAxvtradMMglCQDyaTFgse6CmtmdJ15ElnVRlCg1vpNyVtbem0PWzlNieZsA==", + "dependencies": { + "@types/mdast": "^4.0.0", + "@types/unist": "^3.0.0", + "decode-named-character-reference": "^1.0.0", + "devlop": "^1.0.0", + "mdast-util-to-string": "^4.0.0", + "micromark": "^4.0.0", + "micromark-util-decode-numeric-character-reference": "^2.0.0", + "micromark-util-decode-string": "^2.0.0", + "micromark-util-normalize-identifier": "^2.0.0", + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0", + "unist-util-stringify-position": "^4.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/mdast-util-mdx/node_modules/micromark": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/micromark/-/micromark-4.0.0.tgz", + "integrity": "sha512-o/sd0nMof8kYff+TqcDx3VSrgBTcZpSvYcAHIfHhv5VAuNmisCxjhx6YmxS8PFEpb9z5WKWKPdzf0jM23ro3RQ==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "dependencies": { + "@types/debug": "^4.0.0", + "debug": "^4.0.0", + "decode-named-character-reference": "^1.0.0", + "devlop": "^1.0.0", + "micromark-core-commonmark": "^2.0.0", + "micromark-factory-space": "^2.0.0", + "micromark-util-character": "^2.0.0", + "micromark-util-chunked": "^2.0.0", + "micromark-util-combine-extensions": "^2.0.0", + "micromark-util-decode-numeric-character-reference": "^2.0.0", + "micromark-util-encode": "^2.0.0", + "micromark-util-normalize-identifier": "^2.0.0", + "micromark-util-resolve-all": "^2.0.0", + "micromark-util-sanitize-uri": "^2.0.0", + "micromark-util-subtokenize": "^2.0.0", + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" + } + }, + "node_modules/mdast-util-mdx/node_modules/micromark-core-commonmark": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-core-commonmark/-/micromark-core-commonmark-2.0.1.tgz", + "integrity": "sha512-CUQyKr1e///ZODyD1U3xit6zXwy1a8q2a1S1HKtIlmgvurrEpaw/Y9y6KSIbF8P59cn/NjzHyO+Q2fAyYLQrAA==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "dependencies": { + "decode-named-character-reference": "^1.0.0", + "devlop": "^1.0.0", + "micromark-factory-destination": "^2.0.0", + "micromark-factory-label": "^2.0.0", + "micromark-factory-space": "^2.0.0", + "micromark-factory-title": "^2.0.0", + "micromark-factory-whitespace": "^2.0.0", + "micromark-util-character": "^2.0.0", + "micromark-util-chunked": "^2.0.0", + "micromark-util-classify-character": "^2.0.0", + "micromark-util-html-tag-name": "^2.0.0", + "micromark-util-normalize-identifier": "^2.0.0", + "micromark-util-resolve-all": "^2.0.0", + "micromark-util-subtokenize": "^2.0.0", + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" + } + }, + "node_modules/mdast-util-mdx/node_modules/micromark-factory-destination": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/micromark-factory-destination/-/micromark-factory-destination-2.0.0.tgz", + "integrity": "sha512-j9DGrQLm/Uhl2tCzcbLhy5kXsgkHUrjJHg4fFAeoMRwJmJerT9aw4FEhIbZStWN8A3qMwOp1uzHr4UL8AInxtA==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "dependencies": { + "micromark-util-character": "^2.0.0", + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" + } + }, + "node_modules/mdast-util-mdx/node_modules/micromark-factory-label": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/micromark-factory-label/-/micromark-factory-label-2.0.0.tgz", + "integrity": "sha512-RR3i96ohZGde//4WSe/dJsxOX6vxIg9TimLAS3i4EhBAFx8Sm5SmqVfR8E87DPSR31nEAjZfbt91OMZWcNgdZw==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "dependencies": { + "devlop": "^1.0.0", + "micromark-util-character": "^2.0.0", + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" + } + }, + "node_modules/mdast-util-mdx/node_modules/micromark-factory-space": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/micromark-factory-space/-/micromark-factory-space-2.0.0.tgz", + "integrity": "sha512-TKr+LIDX2pkBJXFLzpyPyljzYK3MtmllMUMODTQJIUfDGncESaqB90db9IAUcz4AZAJFdd8U9zOp9ty1458rxg==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "dependencies": { + "micromark-util-character": "^2.0.0", + "micromark-util-types": "^2.0.0" + } + }, + "node_modules/mdast-util-mdx/node_modules/micromark-factory-title": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/micromark-factory-title/-/micromark-factory-title-2.0.0.tgz", + "integrity": "sha512-jY8CSxmpWLOxS+t8W+FG3Xigc0RDQA9bKMY/EwILvsesiRniiVMejYTE4wumNc2f4UbAa4WsHqe3J1QS1sli+A==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "dependencies": { + "micromark-factory-space": "^2.0.0", + "micromark-util-character": "^2.0.0", + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" + } + }, + "node_modules/mdast-util-mdx/node_modules/micromark-factory-whitespace": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/micromark-factory-whitespace/-/micromark-factory-whitespace-2.0.0.tgz", + "integrity": "sha512-28kbwaBjc5yAI1XadbdPYHX/eDnqaUFVikLwrO7FDnKG7lpgxnvk/XGRhX/PN0mOZ+dBSZ+LgunHS+6tYQAzhA==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "dependencies": { + "micromark-factory-space": "^2.0.0", + "micromark-util-character": "^2.0.0", + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" + } + }, + "node_modules/mdast-util-mdx/node_modules/micromark-util-character": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/micromark-util-character/-/micromark-util-character-2.1.0.tgz", + "integrity": "sha512-KvOVV+X1yLBfs9dCBSopq/+G1PcgT3lAK07mC4BzXi5E7ahzMAF8oIupDDJ6mievI6F+lAATkbQQlQixJfT3aQ==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "dependencies": { + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" + } + }, + "node_modules/mdast-util-mdx/node_modules/micromark-util-chunked": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/micromark-util-chunked/-/micromark-util-chunked-2.0.0.tgz", + "integrity": "sha512-anK8SWmNphkXdaKgz5hJvGa7l00qmcaUQoMYsBwDlSKFKjc6gjGXPDw3FNL3Nbwq5L8gE+RCbGqTw49FK5Qyvg==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "dependencies": { + "micromark-util-symbol": "^2.0.0" + } + }, + "node_modules/mdast-util-mdx/node_modules/micromark-util-classify-character": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/micromark-util-classify-character/-/micromark-util-classify-character-2.0.0.tgz", + "integrity": "sha512-S0ze2R9GH+fu41FA7pbSqNWObo/kzwf8rN/+IGlW/4tC6oACOs8B++bh+i9bVyNnwCcuksbFwsBme5OCKXCwIw==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "dependencies": { + "micromark-util-character": "^2.0.0", + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" + } + }, + "node_modules/mdast-util-mdx/node_modules/micromark-util-combine-extensions": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/micromark-util-combine-extensions/-/micromark-util-combine-extensions-2.0.0.tgz", + "integrity": "sha512-vZZio48k7ON0fVS3CUgFatWHoKbbLTK/rT7pzpJ4Bjp5JjkZeasRfrS9wsBdDJK2cJLHMckXZdzPSSr1B8a4oQ==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "dependencies": { + "micromark-util-chunked": "^2.0.0", + "micromark-util-types": "^2.0.0" + } + }, + "node_modules/mdast-util-mdx/node_modules/micromark-util-decode-numeric-character-reference": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-util-decode-numeric-character-reference/-/micromark-util-decode-numeric-character-reference-2.0.1.tgz", + "integrity": "sha512-bmkNc7z8Wn6kgjZmVHOX3SowGmVdhYS7yBpMnuMnPzDq/6xwVA604DuOXMZTO1lvq01g+Adfa0pE2UKGlxL1XQ==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "dependencies": { + "micromark-util-symbol": "^2.0.0" + } + }, + "node_modules/mdast-util-mdx/node_modules/micromark-util-decode-string": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/micromark-util-decode-string/-/micromark-util-decode-string-2.0.0.tgz", + "integrity": "sha512-r4Sc6leeUTn3P6gk20aFMj2ntPwn6qpDZqWvYmAG6NgvFTIlj4WtrAudLi65qYoaGdXYViXYw2pkmn7QnIFasA==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "dependencies": { + "decode-named-character-reference": "^1.0.0", + "micromark-util-character": "^2.0.0", + "micromark-util-decode-numeric-character-reference": "^2.0.0", + "micromark-util-symbol": "^2.0.0" + } + }, + "node_modules/mdast-util-mdx/node_modules/micromark-util-encode": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/micromark-util-encode/-/micromark-util-encode-2.0.0.tgz", + "integrity": "sha512-pS+ROfCXAGLWCOc8egcBvT0kf27GoWMqtdarNfDcjb6YLuV5cM3ioG45Ys2qOVqeqSbjaKg72vU+Wby3eddPsA==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ] + }, + "node_modules/mdast-util-mdx/node_modules/micromark-util-html-tag-name": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/micromark-util-html-tag-name/-/micromark-util-html-tag-name-2.0.0.tgz", + "integrity": "sha512-xNn4Pqkj2puRhKdKTm8t1YHC/BAjx6CEwRFXntTaRf/x16aqka6ouVoutm+QdkISTlT7e2zU7U4ZdlDLJd2Mcw==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ] + }, + "node_modules/mdast-util-mdx/node_modules/micromark-util-normalize-identifier": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/micromark-util-normalize-identifier/-/micromark-util-normalize-identifier-2.0.0.tgz", + "integrity": "sha512-2xhYT0sfo85FMrUPtHcPo2rrp1lwbDEEzpx7jiH2xXJLqBuy4H0GgXk5ToU8IEwoROtXuL8ND0ttVa4rNqYK3w==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "dependencies": { + "micromark-util-symbol": "^2.0.0" + } + }, + "node_modules/mdast-util-mdx/node_modules/micromark-util-resolve-all": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/micromark-util-resolve-all/-/micromark-util-resolve-all-2.0.0.tgz", + "integrity": "sha512-6KU6qO7DZ7GJkaCgwBNtplXCvGkJToU86ybBAUdavvgsCiG8lSSvYxr9MhwmQ+udpzywHsl4RpGJsYWG1pDOcA==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "dependencies": { + "micromark-util-types": "^2.0.0" + } + }, + "node_modules/mdast-util-mdx/node_modules/micromark-util-sanitize-uri": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/micromark-util-sanitize-uri/-/micromark-util-sanitize-uri-2.0.0.tgz", + "integrity": "sha512-WhYv5UEcZrbAtlsnPuChHUAsu/iBPOVaEVsntLBIdpibO0ddy8OzavZz3iL2xVvBZOpolujSliP65Kq0/7KIYw==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "dependencies": { + "micromark-util-character": "^2.0.0", + "micromark-util-encode": "^2.0.0", + "micromark-util-symbol": "^2.0.0" + } + }, + "node_modules/mdast-util-mdx/node_modules/micromark-util-subtokenize": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-util-subtokenize/-/micromark-util-subtokenize-2.0.1.tgz", + "integrity": "sha512-jZNtiFl/1aY73yS3UGQkutD0UbhTt68qnRpw2Pifmz5wV9h8gOVsN70v+Lq/f1rKaU/W8pxRe8y8Q9FX1AOe1Q==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "dependencies": { + "devlop": "^1.0.0", + "micromark-util-chunked": "^2.0.0", + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" + } + }, + "node_modules/mdast-util-mdx/node_modules/micromark-util-symbol": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/micromark-util-symbol/-/micromark-util-symbol-2.0.0.tgz", + "integrity": "sha512-8JZt9ElZ5kyTnO94muPxIGS8oyElRJaiJO8EzV6ZSyGQ1Is8xwl4Q45qU5UOg+bGH4AikWziz0iN4sFLWs8PGw==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ] + }, + "node_modules/mdast-util-mdx/node_modules/micromark-util-types": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/micromark-util-types/-/micromark-util-types-2.0.0.tgz", + "integrity": "sha512-oNh6S2WMHWRZrmutsRmDDfkzKtxF+bc2VxLC9dvtrDIRFln627VsFP6fLMgTryGDljgLPjkrzQSDcPrjPyDJ5w==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ] + }, + "node_modules/mdast-util-mdxjs-esm": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/mdast-util-mdxjs-esm/-/mdast-util-mdxjs-esm-2.0.1.tgz", + "integrity": "sha512-EcmOpxsZ96CvlP03NghtH1EsLtr0n9Tm4lPUJUBccV9RwUOneqSycg19n5HGzCf+10LozMRSObtVr3ee1WoHtg==", + "dependencies": { + "@types/estree-jsx": "^1.0.0", + "@types/hast": "^3.0.0", + "@types/mdast": "^4.0.0", + "devlop": "^1.0.0", + "mdast-util-from-markdown": "^2.0.0", + "mdast-util-to-markdown": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/mdast-util-mdxjs-esm/node_modules/@types/hast": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/@types/hast/-/hast-3.0.4.tgz", + "integrity": "sha512-WPs+bbQw5aCj+x6laNGWLH3wviHtoCv/P3+otBhbOhJgG8qtpdAMlTCxLtsTWA7LH1Oh/bFCHsBn0TPS5m30EQ==", + "dependencies": { + "@types/unist": "*" + } + }, + "node_modules/mdast-util-mdxjs-esm/node_modules/@types/mdast": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/@types/mdast/-/mdast-4.0.4.tgz", + "integrity": "sha512-kGaNbPh1k7AFzgpud/gMdvIm5xuECykRR+JnWKQno9TAXVa6WIVCGTPvYGekIDL4uwCZQSYbUxNBSb1aUo79oA==", + "dependencies": { + "@types/unist": "*" + } + }, + "node_modules/mdast-util-mdxjs-esm/node_modules/@types/unist": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/@types/unist/-/unist-3.0.2.tgz", + "integrity": "sha512-dqId9J8K/vGi5Zr7oo212BGii5m3q5Hxlkwy3WpYuKPklmBEvsbMYYyLxAQpSffdLl/gdW0XUpKWFvYmyoWCoQ==" + }, + "node_modules/mdast-util-mdxjs-esm/node_modules/mdast-util-from-markdown": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/mdast-util-from-markdown/-/mdast-util-from-markdown-2.0.1.tgz", + "integrity": "sha512-aJEUyzZ6TzlsX2s5B4Of7lN7EQtAxvtradMMglCQDyaTFgse6CmtmdJ15ElnVRlCg1vpNyVtbem0PWzlNieZsA==", + "dependencies": { + "@types/mdast": "^4.0.0", + "@types/unist": "^3.0.0", + "decode-named-character-reference": "^1.0.0", + "devlop": "^1.0.0", + "mdast-util-to-string": "^4.0.0", + "micromark": "^4.0.0", + "micromark-util-decode-numeric-character-reference": "^2.0.0", + "micromark-util-decode-string": "^2.0.0", + "micromark-util-normalize-identifier": "^2.0.0", + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0", + "unist-util-stringify-position": "^4.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/mdast-util-mdxjs-esm/node_modules/micromark": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/micromark/-/micromark-4.0.0.tgz", + "integrity": "sha512-o/sd0nMof8kYff+TqcDx3VSrgBTcZpSvYcAHIfHhv5VAuNmisCxjhx6YmxS8PFEpb9z5WKWKPdzf0jM23ro3RQ==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "dependencies": { + "@types/debug": "^4.0.0", + "debug": "^4.0.0", + "decode-named-character-reference": "^1.0.0", + "devlop": "^1.0.0", + "micromark-core-commonmark": "^2.0.0", + "micromark-factory-space": "^2.0.0", + "micromark-util-character": "^2.0.0", + "micromark-util-chunked": "^2.0.0", + "micromark-util-combine-extensions": "^2.0.0", + "micromark-util-decode-numeric-character-reference": "^2.0.0", + "micromark-util-encode": "^2.0.0", + "micromark-util-normalize-identifier": "^2.0.0", + "micromark-util-resolve-all": "^2.0.0", + "micromark-util-sanitize-uri": "^2.0.0", + "micromark-util-subtokenize": "^2.0.0", + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" + } + }, + "node_modules/mdast-util-mdxjs-esm/node_modules/micromark-core-commonmark": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-core-commonmark/-/micromark-core-commonmark-2.0.1.tgz", + "integrity": "sha512-CUQyKr1e///ZODyD1U3xit6zXwy1a8q2a1S1HKtIlmgvurrEpaw/Y9y6KSIbF8P59cn/NjzHyO+Q2fAyYLQrAA==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "dependencies": { + "decode-named-character-reference": "^1.0.0", + "devlop": "^1.0.0", + "micromark-factory-destination": "^2.0.0", + "micromark-factory-label": "^2.0.0", + "micromark-factory-space": "^2.0.0", + "micromark-factory-title": "^2.0.0", + "micromark-factory-whitespace": "^2.0.0", + "micromark-util-character": "^2.0.0", + "micromark-util-chunked": "^2.0.0", + "micromark-util-classify-character": "^2.0.0", + "micromark-util-html-tag-name": "^2.0.0", + "micromark-util-normalize-identifier": "^2.0.0", + "micromark-util-resolve-all": "^2.0.0", + "micromark-util-subtokenize": "^2.0.0", + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" + } + }, + "node_modules/mdast-util-mdxjs-esm/node_modules/micromark-factory-destination": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/micromark-factory-destination/-/micromark-factory-destination-2.0.0.tgz", + "integrity": "sha512-j9DGrQLm/Uhl2tCzcbLhy5kXsgkHUrjJHg4fFAeoMRwJmJerT9aw4FEhIbZStWN8A3qMwOp1uzHr4UL8AInxtA==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "dependencies": { + "micromark-util-character": "^2.0.0", + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" + } + }, + "node_modules/mdast-util-mdxjs-esm/node_modules/micromark-factory-label": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/micromark-factory-label/-/micromark-factory-label-2.0.0.tgz", + "integrity": "sha512-RR3i96ohZGde//4WSe/dJsxOX6vxIg9TimLAS3i4EhBAFx8Sm5SmqVfR8E87DPSR31nEAjZfbt91OMZWcNgdZw==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "dependencies": { + "devlop": "^1.0.0", + "micromark-util-character": "^2.0.0", + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" + } + }, + "node_modules/mdast-util-mdxjs-esm/node_modules/micromark-factory-space": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/micromark-factory-space/-/micromark-factory-space-2.0.0.tgz", + "integrity": "sha512-TKr+LIDX2pkBJXFLzpyPyljzYK3MtmllMUMODTQJIUfDGncESaqB90db9IAUcz4AZAJFdd8U9zOp9ty1458rxg==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "dependencies": { + "micromark-util-character": "^2.0.0", + "micromark-util-types": "^2.0.0" + } + }, + "node_modules/mdast-util-mdxjs-esm/node_modules/micromark-factory-title": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/micromark-factory-title/-/micromark-factory-title-2.0.0.tgz", + "integrity": "sha512-jY8CSxmpWLOxS+t8W+FG3Xigc0RDQA9bKMY/EwILvsesiRniiVMejYTE4wumNc2f4UbAa4WsHqe3J1QS1sli+A==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "dependencies": { + "micromark-factory-space": "^2.0.0", + "micromark-util-character": "^2.0.0", + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" + } + }, + "node_modules/mdast-util-mdxjs-esm/node_modules/micromark-factory-whitespace": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/micromark-factory-whitespace/-/micromark-factory-whitespace-2.0.0.tgz", + "integrity": "sha512-28kbwaBjc5yAI1XadbdPYHX/eDnqaUFVikLwrO7FDnKG7lpgxnvk/XGRhX/PN0mOZ+dBSZ+LgunHS+6tYQAzhA==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "dependencies": { + "micromark-factory-space": "^2.0.0", + "micromark-util-character": "^2.0.0", + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" + } + }, + "node_modules/mdast-util-mdxjs-esm/node_modules/micromark-util-character": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/micromark-util-character/-/micromark-util-character-2.1.0.tgz", + "integrity": "sha512-KvOVV+X1yLBfs9dCBSopq/+G1PcgT3lAK07mC4BzXi5E7ahzMAF8oIupDDJ6mievI6F+lAATkbQQlQixJfT3aQ==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "dependencies": { + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" + } + }, + "node_modules/mdast-util-mdxjs-esm/node_modules/micromark-util-chunked": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/micromark-util-chunked/-/micromark-util-chunked-2.0.0.tgz", + "integrity": "sha512-anK8SWmNphkXdaKgz5hJvGa7l00qmcaUQoMYsBwDlSKFKjc6gjGXPDw3FNL3Nbwq5L8gE+RCbGqTw49FK5Qyvg==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "dependencies": { + "micromark-util-symbol": "^2.0.0" + } + }, + "node_modules/mdast-util-mdxjs-esm/node_modules/micromark-util-classify-character": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/micromark-util-classify-character/-/micromark-util-classify-character-2.0.0.tgz", + "integrity": "sha512-S0ze2R9GH+fu41FA7pbSqNWObo/kzwf8rN/+IGlW/4tC6oACOs8B++bh+i9bVyNnwCcuksbFwsBme5OCKXCwIw==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "dependencies": { + "micromark-util-character": "^2.0.0", + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" + } + }, + "node_modules/mdast-util-mdxjs-esm/node_modules/micromark-util-combine-extensions": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/micromark-util-combine-extensions/-/micromark-util-combine-extensions-2.0.0.tgz", + "integrity": "sha512-vZZio48k7ON0fVS3CUgFatWHoKbbLTK/rT7pzpJ4Bjp5JjkZeasRfrS9wsBdDJK2cJLHMckXZdzPSSr1B8a4oQ==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "dependencies": { + "micromark-util-chunked": "^2.0.0", + "micromark-util-types": "^2.0.0" + } + }, + "node_modules/mdast-util-mdxjs-esm/node_modules/micromark-util-decode-numeric-character-reference": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-util-decode-numeric-character-reference/-/micromark-util-decode-numeric-character-reference-2.0.1.tgz", + "integrity": "sha512-bmkNc7z8Wn6kgjZmVHOX3SowGmVdhYS7yBpMnuMnPzDq/6xwVA604DuOXMZTO1lvq01g+Adfa0pE2UKGlxL1XQ==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "dependencies": { + "micromark-util-symbol": "^2.0.0" + } + }, + "node_modules/mdast-util-mdxjs-esm/node_modules/micromark-util-decode-string": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/micromark-util-decode-string/-/micromark-util-decode-string-2.0.0.tgz", + "integrity": "sha512-r4Sc6leeUTn3P6gk20aFMj2ntPwn6qpDZqWvYmAG6NgvFTIlj4WtrAudLi65qYoaGdXYViXYw2pkmn7QnIFasA==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "dependencies": { + "decode-named-character-reference": "^1.0.0", + "micromark-util-character": "^2.0.0", + "micromark-util-decode-numeric-character-reference": "^2.0.0", + "micromark-util-symbol": "^2.0.0" + } + }, + "node_modules/mdast-util-mdxjs-esm/node_modules/micromark-util-encode": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/micromark-util-encode/-/micromark-util-encode-2.0.0.tgz", + "integrity": "sha512-pS+ROfCXAGLWCOc8egcBvT0kf27GoWMqtdarNfDcjb6YLuV5cM3ioG45Ys2qOVqeqSbjaKg72vU+Wby3eddPsA==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ] + }, + "node_modules/mdast-util-mdxjs-esm/node_modules/micromark-util-html-tag-name": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/micromark-util-html-tag-name/-/micromark-util-html-tag-name-2.0.0.tgz", + "integrity": "sha512-xNn4Pqkj2puRhKdKTm8t1YHC/BAjx6CEwRFXntTaRf/x16aqka6ouVoutm+QdkISTlT7e2zU7U4ZdlDLJd2Mcw==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ] + }, + "node_modules/mdast-util-mdxjs-esm/node_modules/micromark-util-normalize-identifier": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/micromark-util-normalize-identifier/-/micromark-util-normalize-identifier-2.0.0.tgz", + "integrity": "sha512-2xhYT0sfo85FMrUPtHcPo2rrp1lwbDEEzpx7jiH2xXJLqBuy4H0GgXk5ToU8IEwoROtXuL8ND0ttVa4rNqYK3w==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "dependencies": { + "micromark-util-symbol": "^2.0.0" + } + }, + "node_modules/mdast-util-mdxjs-esm/node_modules/micromark-util-resolve-all": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/micromark-util-resolve-all/-/micromark-util-resolve-all-2.0.0.tgz", + "integrity": "sha512-6KU6qO7DZ7GJkaCgwBNtplXCvGkJToU86ybBAUdavvgsCiG8lSSvYxr9MhwmQ+udpzywHsl4RpGJsYWG1pDOcA==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "dependencies": { + "micromark-util-types": "^2.0.0" + } + }, + "node_modules/mdast-util-mdxjs-esm/node_modules/micromark-util-sanitize-uri": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/micromark-util-sanitize-uri/-/micromark-util-sanitize-uri-2.0.0.tgz", + "integrity": "sha512-WhYv5UEcZrbAtlsnPuChHUAsu/iBPOVaEVsntLBIdpibO0ddy8OzavZz3iL2xVvBZOpolujSliP65Kq0/7KIYw==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "dependencies": { + "micromark-util-character": "^2.0.0", + "micromark-util-encode": "^2.0.0", + "micromark-util-symbol": "^2.0.0" + } + }, + "node_modules/mdast-util-mdxjs-esm/node_modules/micromark-util-subtokenize": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-util-subtokenize/-/micromark-util-subtokenize-2.0.1.tgz", + "integrity": "sha512-jZNtiFl/1aY73yS3UGQkutD0UbhTt68qnRpw2Pifmz5wV9h8gOVsN70v+Lq/f1rKaU/W8pxRe8y8Q9FX1AOe1Q==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "dependencies": { + "devlop": "^1.0.0", + "micromark-util-chunked": "^2.0.0", + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" + } + }, + "node_modules/mdast-util-mdxjs-esm/node_modules/micromark-util-symbol": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/micromark-util-symbol/-/micromark-util-symbol-2.0.0.tgz", + "integrity": "sha512-8JZt9ElZ5kyTnO94muPxIGS8oyElRJaiJO8EzV6ZSyGQ1Is8xwl4Q45qU5UOg+bGH4AikWziz0iN4sFLWs8PGw==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ] + }, + "node_modules/mdast-util-mdxjs-esm/node_modules/micromark-util-types": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/micromark-util-types/-/micromark-util-types-2.0.0.tgz", + "integrity": "sha512-oNh6S2WMHWRZrmutsRmDDfkzKtxF+bc2VxLC9dvtrDIRFln627VsFP6fLMgTryGDljgLPjkrzQSDcPrjPyDJ5w==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ] + }, + "node_modules/mdast-util-phrasing": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/mdast-util-phrasing/-/mdast-util-phrasing-4.1.0.tgz", + "integrity": "sha512-TqICwyvJJpBwvGAMZjj4J2n0X8QWp21b9l0o7eXyVJ25YNWYbJDVIyD1bZXE6WtV6RmKJVYmQAKWa0zWOABz2w==", + "dependencies": { + "@types/mdast": "^4.0.0", + "unist-util-is": "^6.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/mdast-util-phrasing/node_modules/@types/mdast": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/@types/mdast/-/mdast-4.0.4.tgz", + "integrity": "sha512-kGaNbPh1k7AFzgpud/gMdvIm5xuECykRR+JnWKQno9TAXVa6WIVCGTPvYGekIDL4uwCZQSYbUxNBSb1aUo79oA==", + "dependencies": { + "@types/unist": "*" + } + }, + "node_modules/mdast-util-phrasing/node_modules/@types/unist": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/@types/unist/-/unist-3.0.2.tgz", + "integrity": "sha512-dqId9J8K/vGi5Zr7oo212BGii5m3q5Hxlkwy3WpYuKPklmBEvsbMYYyLxAQpSffdLl/gdW0XUpKWFvYmyoWCoQ==" + }, + "node_modules/mdast-util-to-hast": { + "version": "13.2.0", + "resolved": "https://registry.npmjs.org/mdast-util-to-hast/-/mdast-util-to-hast-13.2.0.tgz", + "integrity": "sha512-QGYKEuUsYT9ykKBCMOEDLsU5JRObWQusAolFMeko/tYPufNkRffBAQjIE+99jbA87xv6FgmjLtwjh9wBWajwAA==", + "dependencies": { + "@types/hast": "^3.0.0", + "@types/mdast": "^4.0.0", + "@ungap/structured-clone": "^1.0.0", + "devlop": "^1.0.0", + "micromark-util-sanitize-uri": "^2.0.0", + "trim-lines": "^3.0.0", + "unist-util-position": "^5.0.0", + "unist-util-visit": "^5.0.0", + "vfile": "^6.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/mdast-util-to-hast/node_modules/@types/hast": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/@types/hast/-/hast-3.0.4.tgz", + "integrity": "sha512-WPs+bbQw5aCj+x6laNGWLH3wviHtoCv/P3+otBhbOhJgG8qtpdAMlTCxLtsTWA7LH1Oh/bFCHsBn0TPS5m30EQ==", + "dependencies": { + "@types/unist": "*" + } + }, + "node_modules/mdast-util-to-hast/node_modules/@types/mdast": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/@types/mdast/-/mdast-4.0.4.tgz", + "integrity": "sha512-kGaNbPh1k7AFzgpud/gMdvIm5xuECykRR+JnWKQno9TAXVa6WIVCGTPvYGekIDL4uwCZQSYbUxNBSb1aUo79oA==", + "dependencies": { + "@types/unist": "*" + } + }, + "node_modules/mdast-util-to-hast/node_modules/micromark-util-character": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/micromark-util-character/-/micromark-util-character-2.1.0.tgz", + "integrity": "sha512-KvOVV+X1yLBfs9dCBSopq/+G1PcgT3lAK07mC4BzXi5E7ahzMAF8oIupDDJ6mievI6F+lAATkbQQlQixJfT3aQ==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "dependencies": { + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" + } + }, + "node_modules/mdast-util-to-hast/node_modules/micromark-util-encode": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/micromark-util-encode/-/micromark-util-encode-2.0.0.tgz", + "integrity": "sha512-pS+ROfCXAGLWCOc8egcBvT0kf27GoWMqtdarNfDcjb6YLuV5cM3ioG45Ys2qOVqeqSbjaKg72vU+Wby3eddPsA==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ] + }, + "node_modules/mdast-util-to-hast/node_modules/micromark-util-sanitize-uri": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/micromark-util-sanitize-uri/-/micromark-util-sanitize-uri-2.0.0.tgz", + "integrity": "sha512-WhYv5UEcZrbAtlsnPuChHUAsu/iBPOVaEVsntLBIdpibO0ddy8OzavZz3iL2xVvBZOpolujSliP65Kq0/7KIYw==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "dependencies": { + "micromark-util-character": "^2.0.0", + "micromark-util-encode": "^2.0.0", + "micromark-util-symbol": "^2.0.0" + } + }, + "node_modules/mdast-util-to-hast/node_modules/micromark-util-symbol": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/micromark-util-symbol/-/micromark-util-symbol-2.0.0.tgz", + "integrity": "sha512-8JZt9ElZ5kyTnO94muPxIGS8oyElRJaiJO8EzV6ZSyGQ1Is8xwl4Q45qU5UOg+bGH4AikWziz0iN4sFLWs8PGw==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ] + }, + "node_modules/mdast-util-to-hast/node_modules/micromark-util-types": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/micromark-util-types/-/micromark-util-types-2.0.0.tgz", + "integrity": "sha512-oNh6S2WMHWRZrmutsRmDDfkzKtxF+bc2VxLC9dvtrDIRFln627VsFP6fLMgTryGDljgLPjkrzQSDcPrjPyDJ5w==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ] + }, + "node_modules/mdast-util-to-markdown": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/mdast-util-to-markdown/-/mdast-util-to-markdown-2.1.0.tgz", + "integrity": "sha512-SR2VnIEdVNCJbP6y7kVTJgPLifdr8WEU440fQec7qHoHOUz/oJ2jmNRqdDQ3rbiStOXb2mCDGTuwsK5OPUgYlQ==", + "dependencies": { + "@types/mdast": "^4.0.0", + "@types/unist": "^3.0.0", + "longest-streak": "^3.0.0", + "mdast-util-phrasing": "^4.0.0", + "mdast-util-to-string": "^4.0.0", + "micromark-util-decode-string": "^2.0.0", + "unist-util-visit": "^5.0.0", + "zwitch": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/mdast-util-to-markdown/node_modules/@types/mdast": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/@types/mdast/-/mdast-4.0.4.tgz", + "integrity": "sha512-kGaNbPh1k7AFzgpud/gMdvIm5xuECykRR+JnWKQno9TAXVa6WIVCGTPvYGekIDL4uwCZQSYbUxNBSb1aUo79oA==", + "dependencies": { + "@types/unist": "*" + } + }, + "node_modules/mdast-util-to-markdown/node_modules/@types/unist": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/@types/unist/-/unist-3.0.2.tgz", + "integrity": "sha512-dqId9J8K/vGi5Zr7oo212BGii5m3q5Hxlkwy3WpYuKPklmBEvsbMYYyLxAQpSffdLl/gdW0XUpKWFvYmyoWCoQ==" + }, + "node_modules/mdast-util-to-markdown/node_modules/micromark-util-character": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/micromark-util-character/-/micromark-util-character-2.1.0.tgz", + "integrity": "sha512-KvOVV+X1yLBfs9dCBSopq/+G1PcgT3lAK07mC4BzXi5E7ahzMAF8oIupDDJ6mievI6F+lAATkbQQlQixJfT3aQ==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "dependencies": { + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" + } + }, + "node_modules/mdast-util-to-markdown/node_modules/micromark-util-decode-numeric-character-reference": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-util-decode-numeric-character-reference/-/micromark-util-decode-numeric-character-reference-2.0.1.tgz", + "integrity": "sha512-bmkNc7z8Wn6kgjZmVHOX3SowGmVdhYS7yBpMnuMnPzDq/6xwVA604DuOXMZTO1lvq01g+Adfa0pE2UKGlxL1XQ==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "dependencies": { + "micromark-util-symbol": "^2.0.0" + } + }, + "node_modules/mdast-util-to-markdown/node_modules/micromark-util-decode-string": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/micromark-util-decode-string/-/micromark-util-decode-string-2.0.0.tgz", + "integrity": "sha512-r4Sc6leeUTn3P6gk20aFMj2ntPwn6qpDZqWvYmAG6NgvFTIlj4WtrAudLi65qYoaGdXYViXYw2pkmn7QnIFasA==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "dependencies": { + "decode-named-character-reference": "^1.0.0", + "micromark-util-character": "^2.0.0", + "micromark-util-decode-numeric-character-reference": "^2.0.0", + "micromark-util-symbol": "^2.0.0" + } + }, + "node_modules/mdast-util-to-markdown/node_modules/micromark-util-symbol": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/micromark-util-symbol/-/micromark-util-symbol-2.0.0.tgz", + "integrity": "sha512-8JZt9ElZ5kyTnO94muPxIGS8oyElRJaiJO8EzV6ZSyGQ1Is8xwl4Q45qU5UOg+bGH4AikWziz0iN4sFLWs8PGw==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ] + }, + "node_modules/mdast-util-to-markdown/node_modules/micromark-util-types": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/micromark-util-types/-/micromark-util-types-2.0.0.tgz", + "integrity": "sha512-oNh6S2WMHWRZrmutsRmDDfkzKtxF+bc2VxLC9dvtrDIRFln627VsFP6fLMgTryGDljgLPjkrzQSDcPrjPyDJ5w==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ] + }, + "node_modules/mdast-util-to-string": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/mdast-util-to-string/-/mdast-util-to-string-4.0.0.tgz", + "integrity": "sha512-0H44vDimn51F0YwvxSJSm0eCDOJTRlmN0R1yBh4HLj9wiV1Dn0QoXGbvFAWj2hSItVTlCmBF1hqKlIyUBVFLPg==", + "dependencies": { + "@types/mdast": "^4.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/mdast-util-to-string/node_modules/@types/mdast": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/@types/mdast/-/mdast-4.0.4.tgz", + "integrity": "sha512-kGaNbPh1k7AFzgpud/gMdvIm5xuECykRR+JnWKQno9TAXVa6WIVCGTPvYGekIDL4uwCZQSYbUxNBSb1aUo79oA==", + "dependencies": { + "@types/unist": "*" + } + }, "node_modules/mdn-data": { "version": "2.0.14", "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.14.tgz", "integrity": "sha512-dn6wd0uw5GsdswPFfsgMp5NSB0/aDe6fK94YJV/AJDYXL6HVLWBsxeq7js7Ad+mU2K9LAlwpk6kN2D5mwCPVow==" }, - "node_modules/mdurl": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/mdurl/-/mdurl-1.0.1.tgz", - "integrity": "sha512-/sKlQJCBYVY9Ers9hqzKou4H6V5UWc/M59TH2dvkt+84itfnq7uFOMLpOiOS4ujvHP4etln18fmIxA5R5fll0g==" - }, "node_modules/media-typer": { "version": "0.3.0", "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz", @@ -11361,19 +20358,42 @@ } }, "node_modules/mermaid": { - "version": "9.1.7", - "resolved": "https://registry.npmjs.org/mermaid/-/mermaid-9.1.7.tgz", - "integrity": "sha512-MRVHXy5FLjnUQUG7YS3UN9jEN6FXCJbFCXVGJQjVIbiR6Vhw0j/6pLIjqsiah9xoHmQU6DEaKOvB3S1g/1nBPA==", + "version": "10.4.0", + "resolved": "https://registry.npmjs.org/mermaid/-/mermaid-10.4.0.tgz", + "integrity": "sha512-4QCQLp79lvz7UZxow5HUX7uWTPJOaQBVExduo91tliXC7v78i6kssZOPHxLL+Xs30KU72cpPn3g3imw/xm/gaw==", "dependencies": { - "@braintree/sanitize-url": "^6.0.0", - "d3": "^7.0.0", - "dagre": "^0.8.5", - "dagre-d3": "^0.6.4", - "dompurify": "2.4.0", - "graphlib": "^2.1.8", + "@braintree/sanitize-url": "^6.0.1", + "@types/d3-scale": "^4.0.3", + "@types/d3-scale-chromatic": "^3.0.0", + "cytoscape": "^3.23.0", + "cytoscape-cose-bilkent": "^4.1.0", + "cytoscape-fcose": "^2.1.0", + "d3": "^7.4.0", + "d3-sankey": "^0.12.3", + "dagre-d3-es": "7.0.10", + "dayjs": "^1.11.7", + "dompurify": "^3.0.5", + "elkjs": "^0.8.2", "khroma": "^2.0.0", - "moment-mini": "2.24.0", - "stylis": "^4.0.10" + "lodash-es": "^4.17.21", + "mdast-util-from-markdown": "^1.3.0", + "non-layered-tidy-tree-layout": "^2.0.2", + "stylis": "^4.1.3", + "ts-dedent": "^2.2.0", + "uuid": "^9.0.0", + "web-worker": "^1.2.0" + } + }, + "node_modules/mermaid/node_modules/uuid": { + "version": "9.0.1", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-9.0.1.tgz", + "integrity": "sha512-b+1eJOlsR9K8HJpow9Ok3fiWOWSIcIzXodvv0rQjVoOVNpWMpxf1wZNpt4y9h10odCNrqnYp1OBzRktckBe3sA==", + "funding": [ + "https://github.com/sponsors/broofa", + "https://github.com/sponsors/ctavan" + ], + "bin": { + "uuid": "dist/bin/uuid" } }, "node_modules/methods": { @@ -11451,6 +20471,1722 @@ "uvu": "^0.5.0" } }, + "node_modules/micromark-extension-directive": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/micromark-extension-directive/-/micromark-extension-directive-3.0.0.tgz", + "integrity": "sha512-61OI07qpQrERc+0wEysLHMvoiO3s2R56x5u7glHq2Yqq6EHbH4dW25G9GfDdGCDYqA21KE6DWgNSzxSwHc2hSg==", + "dependencies": { + "devlop": "^1.0.0", + "micromark-factory-space": "^2.0.0", + "micromark-factory-whitespace": "^2.0.0", + "micromark-util-character": "^2.0.0", + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0", + "parse-entities": "^4.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/micromark-extension-directive/node_modules/character-entities": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/character-entities/-/character-entities-2.0.2.tgz", + "integrity": "sha512-shx7oQ0Awen/BRIdkjkvz54PnEEI/EjwXDSIZp86/KKdbafHh1Df/RYGBhn4hbe2+uKC9FnT5UCEdyPz3ai9hQ==", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/micromark-extension-directive/node_modules/character-entities-legacy": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/character-entities-legacy/-/character-entities-legacy-3.0.0.tgz", + "integrity": "sha512-RpPp0asT/6ufRm//AJVwpViZbGM/MkjQFxJccQRHmISF/22NBtsHqAWmL+/pmkPWoIUJdWyeVleTl1wydHATVQ==", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/micromark-extension-directive/node_modules/character-reference-invalid": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/character-reference-invalid/-/character-reference-invalid-2.0.1.tgz", + "integrity": "sha512-iBZ4F4wRbyORVsu0jPV7gXkOsGYjGHPmAyv+HiHG8gi5PtC9KI2j1+v8/tlibRvjoWX027ypmG/n0HtO5t7unw==", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/micromark-extension-directive/node_modules/is-alphabetical": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-alphabetical/-/is-alphabetical-2.0.1.tgz", + "integrity": "sha512-FWyyY60MeTNyeSRpkM2Iry0G9hpr7/9kD40mD/cGQEuilcZYS4okz8SN2Q6rLCJ8gbCt6fN+rC+6tMGS99LaxQ==", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/micromark-extension-directive/node_modules/is-alphanumerical": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-alphanumerical/-/is-alphanumerical-2.0.1.tgz", + "integrity": "sha512-hmbYhX/9MUMF5uh7tOXyK/n0ZvWpad5caBA17GsC6vyuCqaWliRG5K1qS9inmUhEMaOBIW7/whAnSwveW/LtZw==", + "dependencies": { + "is-alphabetical": "^2.0.0", + "is-decimal": "^2.0.0" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/micromark-extension-directive/node_modules/is-decimal": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-decimal/-/is-decimal-2.0.1.tgz", + "integrity": "sha512-AAB9hiomQs5DXWcRB1rqsxGUstbRroFOPPVAomNk/3XHR5JyEZChOyTWe2oayKnsSsr/kcGqF+z6yuH6HHpN0A==", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/micromark-extension-directive/node_modules/is-hexadecimal": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-hexadecimal/-/is-hexadecimal-2.0.1.tgz", + "integrity": "sha512-DgZQp241c8oO6cA1SbTEWiXeoxV42vlcJxgH+B3hi1AiqqKruZR3ZGF8In3fj4+/y/7rHvlOZLZtgJ/4ttYGZg==", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/micromark-extension-directive/node_modules/micromark-factory-space": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/micromark-factory-space/-/micromark-factory-space-2.0.0.tgz", + "integrity": "sha512-TKr+LIDX2pkBJXFLzpyPyljzYK3MtmllMUMODTQJIUfDGncESaqB90db9IAUcz4AZAJFdd8U9zOp9ty1458rxg==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "dependencies": { + "micromark-util-character": "^2.0.0", + "micromark-util-types": "^2.0.0" + } + }, + "node_modules/micromark-extension-directive/node_modules/micromark-factory-whitespace": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/micromark-factory-whitespace/-/micromark-factory-whitespace-2.0.0.tgz", + "integrity": "sha512-28kbwaBjc5yAI1XadbdPYHX/eDnqaUFVikLwrO7FDnKG7lpgxnvk/XGRhX/PN0mOZ+dBSZ+LgunHS+6tYQAzhA==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "dependencies": { + "micromark-factory-space": "^2.0.0", + "micromark-util-character": "^2.0.0", + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" + } + }, + "node_modules/micromark-extension-directive/node_modules/micromark-util-character": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/micromark-util-character/-/micromark-util-character-2.1.0.tgz", + "integrity": "sha512-KvOVV+X1yLBfs9dCBSopq/+G1PcgT3lAK07mC4BzXi5E7ahzMAF8oIupDDJ6mievI6F+lAATkbQQlQixJfT3aQ==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "dependencies": { + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" + } + }, + "node_modules/micromark-extension-directive/node_modules/micromark-util-symbol": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/micromark-util-symbol/-/micromark-util-symbol-2.0.0.tgz", + "integrity": "sha512-8JZt9ElZ5kyTnO94muPxIGS8oyElRJaiJO8EzV6ZSyGQ1Is8xwl4Q45qU5UOg+bGH4AikWziz0iN4sFLWs8PGw==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ] + }, + "node_modules/micromark-extension-directive/node_modules/micromark-util-types": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/micromark-util-types/-/micromark-util-types-2.0.0.tgz", + "integrity": "sha512-oNh6S2WMHWRZrmutsRmDDfkzKtxF+bc2VxLC9dvtrDIRFln627VsFP6fLMgTryGDljgLPjkrzQSDcPrjPyDJ5w==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ] + }, + "node_modules/micromark-extension-directive/node_modules/parse-entities": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/parse-entities/-/parse-entities-4.0.1.tgz", + "integrity": "sha512-SWzvYcSJh4d/SGLIOQfZ/CoNv6BTlI6YEQ7Nj82oDVnRpwe/Z/F1EMx42x3JAOwGBlCjeCH0BRJQbQ/opHL17w==", + "dependencies": { + "@types/unist": "^2.0.0", + "character-entities": "^2.0.0", + "character-entities-legacy": "^3.0.0", + "character-reference-invalid": "^2.0.0", + "decode-named-character-reference": "^1.0.0", + "is-alphanumerical": "^2.0.0", + "is-decimal": "^2.0.0", + "is-hexadecimal": "^2.0.0" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/micromark-extension-frontmatter": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/micromark-extension-frontmatter/-/micromark-extension-frontmatter-2.0.0.tgz", + "integrity": "sha512-C4AkuM3dA58cgZha7zVnuVxBhDsbttIMiytjgsM2XbHAB2faRVaHRle40558FBN+DJcrLNCoqG5mlrpdU4cRtg==", + "dependencies": { + "fault": "^2.0.0", + "micromark-util-character": "^2.0.0", + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/micromark-extension-frontmatter/node_modules/micromark-util-character": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/micromark-util-character/-/micromark-util-character-2.1.0.tgz", + "integrity": "sha512-KvOVV+X1yLBfs9dCBSopq/+G1PcgT3lAK07mC4BzXi5E7ahzMAF8oIupDDJ6mievI6F+lAATkbQQlQixJfT3aQ==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "dependencies": { + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" + } + }, + "node_modules/micromark-extension-frontmatter/node_modules/micromark-util-symbol": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/micromark-util-symbol/-/micromark-util-symbol-2.0.0.tgz", + "integrity": "sha512-8JZt9ElZ5kyTnO94muPxIGS8oyElRJaiJO8EzV6ZSyGQ1Is8xwl4Q45qU5UOg+bGH4AikWziz0iN4sFLWs8PGw==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ] + }, + "node_modules/micromark-extension-frontmatter/node_modules/micromark-util-types": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/micromark-util-types/-/micromark-util-types-2.0.0.tgz", + "integrity": "sha512-oNh6S2WMHWRZrmutsRmDDfkzKtxF+bc2VxLC9dvtrDIRFln627VsFP6fLMgTryGDljgLPjkrzQSDcPrjPyDJ5w==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ] + }, + "node_modules/micromark-extension-gfm": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/micromark-extension-gfm/-/micromark-extension-gfm-3.0.0.tgz", + "integrity": "sha512-vsKArQsicm7t0z2GugkCKtZehqUm31oeGBV/KVSorWSy8ZlNAv7ytjFhvaryUiCUJYqs+NoE6AFhpQvBTM6Q4w==", + "dependencies": { + "micromark-extension-gfm-autolink-literal": "^2.0.0", + "micromark-extension-gfm-footnote": "^2.0.0", + "micromark-extension-gfm-strikethrough": "^2.0.0", + "micromark-extension-gfm-table": "^2.0.0", + "micromark-extension-gfm-tagfilter": "^2.0.0", + "micromark-extension-gfm-task-list-item": "^2.0.0", + "micromark-util-combine-extensions": "^2.0.0", + "micromark-util-types": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/micromark-extension-gfm-autolink-literal": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/micromark-extension-gfm-autolink-literal/-/micromark-extension-gfm-autolink-literal-2.0.0.tgz", + "integrity": "sha512-rTHfnpt/Q7dEAK1Y5ii0W8bhfJlVJFnJMHIPisfPK3gpVNuOP0VnRl96+YJ3RYWV/P4gFeQoGKNlT3RhuvpqAg==", + "dependencies": { + "micromark-util-character": "^2.0.0", + "micromark-util-sanitize-uri": "^2.0.0", + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/micromark-extension-gfm-autolink-literal/node_modules/micromark-util-character": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/micromark-util-character/-/micromark-util-character-2.1.0.tgz", + "integrity": "sha512-KvOVV+X1yLBfs9dCBSopq/+G1PcgT3lAK07mC4BzXi5E7ahzMAF8oIupDDJ6mievI6F+lAATkbQQlQixJfT3aQ==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "dependencies": { + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" + } + }, + "node_modules/micromark-extension-gfm-autolink-literal/node_modules/micromark-util-encode": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/micromark-util-encode/-/micromark-util-encode-2.0.0.tgz", + "integrity": "sha512-pS+ROfCXAGLWCOc8egcBvT0kf27GoWMqtdarNfDcjb6YLuV5cM3ioG45Ys2qOVqeqSbjaKg72vU+Wby3eddPsA==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ] + }, + "node_modules/micromark-extension-gfm-autolink-literal/node_modules/micromark-util-sanitize-uri": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/micromark-util-sanitize-uri/-/micromark-util-sanitize-uri-2.0.0.tgz", + "integrity": "sha512-WhYv5UEcZrbAtlsnPuChHUAsu/iBPOVaEVsntLBIdpibO0ddy8OzavZz3iL2xVvBZOpolujSliP65Kq0/7KIYw==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "dependencies": { + "micromark-util-character": "^2.0.0", + "micromark-util-encode": "^2.0.0", + "micromark-util-symbol": "^2.0.0" + } + }, + "node_modules/micromark-extension-gfm-autolink-literal/node_modules/micromark-util-symbol": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/micromark-util-symbol/-/micromark-util-symbol-2.0.0.tgz", + "integrity": "sha512-8JZt9ElZ5kyTnO94muPxIGS8oyElRJaiJO8EzV6ZSyGQ1Is8xwl4Q45qU5UOg+bGH4AikWziz0iN4sFLWs8PGw==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ] + }, + "node_modules/micromark-extension-gfm-autolink-literal/node_modules/micromark-util-types": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/micromark-util-types/-/micromark-util-types-2.0.0.tgz", + "integrity": "sha512-oNh6S2WMHWRZrmutsRmDDfkzKtxF+bc2VxLC9dvtrDIRFln627VsFP6fLMgTryGDljgLPjkrzQSDcPrjPyDJ5w==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ] + }, + "node_modules/micromark-extension-gfm-footnote": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/micromark-extension-gfm-footnote/-/micromark-extension-gfm-footnote-2.0.0.tgz", + "integrity": "sha512-6Rzu0CYRKDv3BfLAUnZsSlzx3ak6HAoI85KTiijuKIz5UxZxbUI+pD6oHgw+6UtQuiRwnGRhzMmPRv4smcz0fg==", + "dependencies": { + "devlop": "^1.0.0", + "micromark-core-commonmark": "^2.0.0", + "micromark-factory-space": "^2.0.0", + "micromark-util-character": "^2.0.0", + "micromark-util-normalize-identifier": "^2.0.0", + "micromark-util-sanitize-uri": "^2.0.0", + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/micromark-extension-gfm-footnote/node_modules/micromark-core-commonmark": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-core-commonmark/-/micromark-core-commonmark-2.0.1.tgz", + "integrity": "sha512-CUQyKr1e///ZODyD1U3xit6zXwy1a8q2a1S1HKtIlmgvurrEpaw/Y9y6KSIbF8P59cn/NjzHyO+Q2fAyYLQrAA==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "dependencies": { + "decode-named-character-reference": "^1.0.0", + "devlop": "^1.0.0", + "micromark-factory-destination": "^2.0.0", + "micromark-factory-label": "^2.0.0", + "micromark-factory-space": "^2.0.0", + "micromark-factory-title": "^2.0.0", + "micromark-factory-whitespace": "^2.0.0", + "micromark-util-character": "^2.0.0", + "micromark-util-chunked": "^2.0.0", + "micromark-util-classify-character": "^2.0.0", + "micromark-util-html-tag-name": "^2.0.0", + "micromark-util-normalize-identifier": "^2.0.0", + "micromark-util-resolve-all": "^2.0.0", + "micromark-util-subtokenize": "^2.0.0", + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" + } + }, + "node_modules/micromark-extension-gfm-footnote/node_modules/micromark-factory-destination": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/micromark-factory-destination/-/micromark-factory-destination-2.0.0.tgz", + "integrity": "sha512-j9DGrQLm/Uhl2tCzcbLhy5kXsgkHUrjJHg4fFAeoMRwJmJerT9aw4FEhIbZStWN8A3qMwOp1uzHr4UL8AInxtA==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "dependencies": { + "micromark-util-character": "^2.0.0", + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" + } + }, + "node_modules/micromark-extension-gfm-footnote/node_modules/micromark-factory-label": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/micromark-factory-label/-/micromark-factory-label-2.0.0.tgz", + "integrity": "sha512-RR3i96ohZGde//4WSe/dJsxOX6vxIg9TimLAS3i4EhBAFx8Sm5SmqVfR8E87DPSR31nEAjZfbt91OMZWcNgdZw==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "dependencies": { + "devlop": "^1.0.0", + "micromark-util-character": "^2.0.0", + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" + } + }, + "node_modules/micromark-extension-gfm-footnote/node_modules/micromark-factory-space": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/micromark-factory-space/-/micromark-factory-space-2.0.0.tgz", + "integrity": "sha512-TKr+LIDX2pkBJXFLzpyPyljzYK3MtmllMUMODTQJIUfDGncESaqB90db9IAUcz4AZAJFdd8U9zOp9ty1458rxg==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "dependencies": { + "micromark-util-character": "^2.0.0", + "micromark-util-types": "^2.0.0" + } + }, + "node_modules/micromark-extension-gfm-footnote/node_modules/micromark-factory-title": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/micromark-factory-title/-/micromark-factory-title-2.0.0.tgz", + "integrity": "sha512-jY8CSxmpWLOxS+t8W+FG3Xigc0RDQA9bKMY/EwILvsesiRniiVMejYTE4wumNc2f4UbAa4WsHqe3J1QS1sli+A==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "dependencies": { + "micromark-factory-space": "^2.0.0", + "micromark-util-character": "^2.0.0", + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" + } + }, + "node_modules/micromark-extension-gfm-footnote/node_modules/micromark-factory-whitespace": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/micromark-factory-whitespace/-/micromark-factory-whitespace-2.0.0.tgz", + "integrity": "sha512-28kbwaBjc5yAI1XadbdPYHX/eDnqaUFVikLwrO7FDnKG7lpgxnvk/XGRhX/PN0mOZ+dBSZ+LgunHS+6tYQAzhA==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "dependencies": { + "micromark-factory-space": "^2.0.0", + "micromark-util-character": "^2.0.0", + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" + } + }, + "node_modules/micromark-extension-gfm-footnote/node_modules/micromark-util-character": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/micromark-util-character/-/micromark-util-character-2.1.0.tgz", + "integrity": "sha512-KvOVV+X1yLBfs9dCBSopq/+G1PcgT3lAK07mC4BzXi5E7ahzMAF8oIupDDJ6mievI6F+lAATkbQQlQixJfT3aQ==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "dependencies": { + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" + } + }, + "node_modules/micromark-extension-gfm-footnote/node_modules/micromark-util-chunked": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/micromark-util-chunked/-/micromark-util-chunked-2.0.0.tgz", + "integrity": "sha512-anK8SWmNphkXdaKgz5hJvGa7l00qmcaUQoMYsBwDlSKFKjc6gjGXPDw3FNL3Nbwq5L8gE+RCbGqTw49FK5Qyvg==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "dependencies": { + "micromark-util-symbol": "^2.0.0" + } + }, + "node_modules/micromark-extension-gfm-footnote/node_modules/micromark-util-classify-character": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/micromark-util-classify-character/-/micromark-util-classify-character-2.0.0.tgz", + "integrity": "sha512-S0ze2R9GH+fu41FA7pbSqNWObo/kzwf8rN/+IGlW/4tC6oACOs8B++bh+i9bVyNnwCcuksbFwsBme5OCKXCwIw==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "dependencies": { + "micromark-util-character": "^2.0.0", + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" + } + }, + "node_modules/micromark-extension-gfm-footnote/node_modules/micromark-util-encode": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/micromark-util-encode/-/micromark-util-encode-2.0.0.tgz", + "integrity": "sha512-pS+ROfCXAGLWCOc8egcBvT0kf27GoWMqtdarNfDcjb6YLuV5cM3ioG45Ys2qOVqeqSbjaKg72vU+Wby3eddPsA==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ] + }, + "node_modules/micromark-extension-gfm-footnote/node_modules/micromark-util-html-tag-name": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/micromark-util-html-tag-name/-/micromark-util-html-tag-name-2.0.0.tgz", + "integrity": "sha512-xNn4Pqkj2puRhKdKTm8t1YHC/BAjx6CEwRFXntTaRf/x16aqka6ouVoutm+QdkISTlT7e2zU7U4ZdlDLJd2Mcw==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ] + }, + "node_modules/micromark-extension-gfm-footnote/node_modules/micromark-util-normalize-identifier": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/micromark-util-normalize-identifier/-/micromark-util-normalize-identifier-2.0.0.tgz", + "integrity": "sha512-2xhYT0sfo85FMrUPtHcPo2rrp1lwbDEEzpx7jiH2xXJLqBuy4H0GgXk5ToU8IEwoROtXuL8ND0ttVa4rNqYK3w==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "dependencies": { + "micromark-util-symbol": "^2.0.0" + } + }, + "node_modules/micromark-extension-gfm-footnote/node_modules/micromark-util-resolve-all": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/micromark-util-resolve-all/-/micromark-util-resolve-all-2.0.0.tgz", + "integrity": "sha512-6KU6qO7DZ7GJkaCgwBNtplXCvGkJToU86ybBAUdavvgsCiG8lSSvYxr9MhwmQ+udpzywHsl4RpGJsYWG1pDOcA==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "dependencies": { + "micromark-util-types": "^2.0.0" + } + }, + "node_modules/micromark-extension-gfm-footnote/node_modules/micromark-util-sanitize-uri": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/micromark-util-sanitize-uri/-/micromark-util-sanitize-uri-2.0.0.tgz", + "integrity": "sha512-WhYv5UEcZrbAtlsnPuChHUAsu/iBPOVaEVsntLBIdpibO0ddy8OzavZz3iL2xVvBZOpolujSliP65Kq0/7KIYw==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "dependencies": { + "micromark-util-character": "^2.0.0", + "micromark-util-encode": "^2.0.0", + "micromark-util-symbol": "^2.0.0" + } + }, + "node_modules/micromark-extension-gfm-footnote/node_modules/micromark-util-subtokenize": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-util-subtokenize/-/micromark-util-subtokenize-2.0.1.tgz", + "integrity": "sha512-jZNtiFl/1aY73yS3UGQkutD0UbhTt68qnRpw2Pifmz5wV9h8gOVsN70v+Lq/f1rKaU/W8pxRe8y8Q9FX1AOe1Q==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "dependencies": { + "devlop": "^1.0.0", + "micromark-util-chunked": "^2.0.0", + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" + } + }, + "node_modules/micromark-extension-gfm-footnote/node_modules/micromark-util-symbol": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/micromark-util-symbol/-/micromark-util-symbol-2.0.0.tgz", + "integrity": "sha512-8JZt9ElZ5kyTnO94muPxIGS8oyElRJaiJO8EzV6ZSyGQ1Is8xwl4Q45qU5UOg+bGH4AikWziz0iN4sFLWs8PGw==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ] + }, + "node_modules/micromark-extension-gfm-footnote/node_modules/micromark-util-types": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/micromark-util-types/-/micromark-util-types-2.0.0.tgz", + "integrity": "sha512-oNh6S2WMHWRZrmutsRmDDfkzKtxF+bc2VxLC9dvtrDIRFln627VsFP6fLMgTryGDljgLPjkrzQSDcPrjPyDJ5w==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ] + }, + "node_modules/micromark-extension-gfm-strikethrough": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/micromark-extension-gfm-strikethrough/-/micromark-extension-gfm-strikethrough-2.0.0.tgz", + "integrity": "sha512-c3BR1ClMp5fxxmwP6AoOY2fXO9U8uFMKs4ADD66ahLTNcwzSCyRVU4k7LPV5Nxo/VJiR4TdzxRQY2v3qIUceCw==", + "dependencies": { + "devlop": "^1.0.0", + "micromark-util-chunked": "^2.0.0", + "micromark-util-classify-character": "^2.0.0", + "micromark-util-resolve-all": "^2.0.0", + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/micromark-extension-gfm-strikethrough/node_modules/micromark-util-character": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/micromark-util-character/-/micromark-util-character-2.1.0.tgz", + "integrity": "sha512-KvOVV+X1yLBfs9dCBSopq/+G1PcgT3lAK07mC4BzXi5E7ahzMAF8oIupDDJ6mievI6F+lAATkbQQlQixJfT3aQ==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "dependencies": { + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" + } + }, + "node_modules/micromark-extension-gfm-strikethrough/node_modules/micromark-util-chunked": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/micromark-util-chunked/-/micromark-util-chunked-2.0.0.tgz", + "integrity": "sha512-anK8SWmNphkXdaKgz5hJvGa7l00qmcaUQoMYsBwDlSKFKjc6gjGXPDw3FNL3Nbwq5L8gE+RCbGqTw49FK5Qyvg==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "dependencies": { + "micromark-util-symbol": "^2.0.0" + } + }, + "node_modules/micromark-extension-gfm-strikethrough/node_modules/micromark-util-classify-character": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/micromark-util-classify-character/-/micromark-util-classify-character-2.0.0.tgz", + "integrity": "sha512-S0ze2R9GH+fu41FA7pbSqNWObo/kzwf8rN/+IGlW/4tC6oACOs8B++bh+i9bVyNnwCcuksbFwsBme5OCKXCwIw==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "dependencies": { + "micromark-util-character": "^2.0.0", + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" + } + }, + "node_modules/micromark-extension-gfm-strikethrough/node_modules/micromark-util-resolve-all": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/micromark-util-resolve-all/-/micromark-util-resolve-all-2.0.0.tgz", + "integrity": "sha512-6KU6qO7DZ7GJkaCgwBNtplXCvGkJToU86ybBAUdavvgsCiG8lSSvYxr9MhwmQ+udpzywHsl4RpGJsYWG1pDOcA==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "dependencies": { + "micromark-util-types": "^2.0.0" + } + }, + "node_modules/micromark-extension-gfm-strikethrough/node_modules/micromark-util-symbol": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/micromark-util-symbol/-/micromark-util-symbol-2.0.0.tgz", + "integrity": "sha512-8JZt9ElZ5kyTnO94muPxIGS8oyElRJaiJO8EzV6ZSyGQ1Is8xwl4Q45qU5UOg+bGH4AikWziz0iN4sFLWs8PGw==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ] + }, + "node_modules/micromark-extension-gfm-strikethrough/node_modules/micromark-util-types": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/micromark-util-types/-/micromark-util-types-2.0.0.tgz", + "integrity": "sha512-oNh6S2WMHWRZrmutsRmDDfkzKtxF+bc2VxLC9dvtrDIRFln627VsFP6fLMgTryGDljgLPjkrzQSDcPrjPyDJ5w==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ] + }, + "node_modules/micromark-extension-gfm-table": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/micromark-extension-gfm-table/-/micromark-extension-gfm-table-2.0.0.tgz", + "integrity": "sha512-PoHlhypg1ItIucOaHmKE8fbin3vTLpDOUg8KAr8gRCF1MOZI9Nquq2i/44wFvviM4WuxJzc3demT8Y3dkfvYrw==", + "dependencies": { + "devlop": "^1.0.0", + "micromark-factory-space": "^2.0.0", + "micromark-util-character": "^2.0.0", + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/micromark-extension-gfm-table/node_modules/micromark-factory-space": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/micromark-factory-space/-/micromark-factory-space-2.0.0.tgz", + "integrity": "sha512-TKr+LIDX2pkBJXFLzpyPyljzYK3MtmllMUMODTQJIUfDGncESaqB90db9IAUcz4AZAJFdd8U9zOp9ty1458rxg==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "dependencies": { + "micromark-util-character": "^2.0.0", + "micromark-util-types": "^2.0.0" + } + }, + "node_modules/micromark-extension-gfm-table/node_modules/micromark-util-character": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/micromark-util-character/-/micromark-util-character-2.1.0.tgz", + "integrity": "sha512-KvOVV+X1yLBfs9dCBSopq/+G1PcgT3lAK07mC4BzXi5E7ahzMAF8oIupDDJ6mievI6F+lAATkbQQlQixJfT3aQ==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "dependencies": { + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" + } + }, + "node_modules/micromark-extension-gfm-table/node_modules/micromark-util-symbol": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/micromark-util-symbol/-/micromark-util-symbol-2.0.0.tgz", + "integrity": "sha512-8JZt9ElZ5kyTnO94muPxIGS8oyElRJaiJO8EzV6ZSyGQ1Is8xwl4Q45qU5UOg+bGH4AikWziz0iN4sFLWs8PGw==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ] + }, + "node_modules/micromark-extension-gfm-table/node_modules/micromark-util-types": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/micromark-util-types/-/micromark-util-types-2.0.0.tgz", + "integrity": "sha512-oNh6S2WMHWRZrmutsRmDDfkzKtxF+bc2VxLC9dvtrDIRFln627VsFP6fLMgTryGDljgLPjkrzQSDcPrjPyDJ5w==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ] + }, + "node_modules/micromark-extension-gfm-tagfilter": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/micromark-extension-gfm-tagfilter/-/micromark-extension-gfm-tagfilter-2.0.0.tgz", + "integrity": "sha512-xHlTOmuCSotIA8TW1mDIM6X2O1SiX5P9IuDtqGonFhEK0qgRI4yeC6vMxEV2dgyr2TiD+2PQ10o+cOhdVAcwfg==", + "dependencies": { + "micromark-util-types": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/micromark-extension-gfm-tagfilter/node_modules/micromark-util-types": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/micromark-util-types/-/micromark-util-types-2.0.0.tgz", + "integrity": "sha512-oNh6S2WMHWRZrmutsRmDDfkzKtxF+bc2VxLC9dvtrDIRFln627VsFP6fLMgTryGDljgLPjkrzQSDcPrjPyDJ5w==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ] + }, + "node_modules/micromark-extension-gfm-task-list-item": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-extension-gfm-task-list-item/-/micromark-extension-gfm-task-list-item-2.0.1.tgz", + "integrity": "sha512-cY5PzGcnULaN5O7T+cOzfMoHjBW7j+T9D2sucA5d/KbsBTPcYdebm9zUd9zzdgJGCwahV+/W78Z3nbulBYVbTw==", + "dependencies": { + "devlop": "^1.0.0", + "micromark-factory-space": "^2.0.0", + "micromark-util-character": "^2.0.0", + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/micromark-extension-gfm-task-list-item/node_modules/micromark-factory-space": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/micromark-factory-space/-/micromark-factory-space-2.0.0.tgz", + "integrity": "sha512-TKr+LIDX2pkBJXFLzpyPyljzYK3MtmllMUMODTQJIUfDGncESaqB90db9IAUcz4AZAJFdd8U9zOp9ty1458rxg==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "dependencies": { + "micromark-util-character": "^2.0.0", + "micromark-util-types": "^2.0.0" + } + }, + "node_modules/micromark-extension-gfm-task-list-item/node_modules/micromark-util-character": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/micromark-util-character/-/micromark-util-character-2.1.0.tgz", + "integrity": "sha512-KvOVV+X1yLBfs9dCBSopq/+G1PcgT3lAK07mC4BzXi5E7ahzMAF8oIupDDJ6mievI6F+lAATkbQQlQixJfT3aQ==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "dependencies": { + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" + } + }, + "node_modules/micromark-extension-gfm-task-list-item/node_modules/micromark-util-symbol": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/micromark-util-symbol/-/micromark-util-symbol-2.0.0.tgz", + "integrity": "sha512-8JZt9ElZ5kyTnO94muPxIGS8oyElRJaiJO8EzV6ZSyGQ1Is8xwl4Q45qU5UOg+bGH4AikWziz0iN4sFLWs8PGw==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ] + }, + "node_modules/micromark-extension-gfm-task-list-item/node_modules/micromark-util-types": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/micromark-util-types/-/micromark-util-types-2.0.0.tgz", + "integrity": "sha512-oNh6S2WMHWRZrmutsRmDDfkzKtxF+bc2VxLC9dvtrDIRFln627VsFP6fLMgTryGDljgLPjkrzQSDcPrjPyDJ5w==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ] + }, + "node_modules/micromark-extension-gfm/node_modules/micromark-util-chunked": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/micromark-util-chunked/-/micromark-util-chunked-2.0.0.tgz", + "integrity": "sha512-anK8SWmNphkXdaKgz5hJvGa7l00qmcaUQoMYsBwDlSKFKjc6gjGXPDw3FNL3Nbwq5L8gE+RCbGqTw49FK5Qyvg==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "dependencies": { + "micromark-util-symbol": "^2.0.0" + } + }, + "node_modules/micromark-extension-gfm/node_modules/micromark-util-combine-extensions": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/micromark-util-combine-extensions/-/micromark-util-combine-extensions-2.0.0.tgz", + "integrity": "sha512-vZZio48k7ON0fVS3CUgFatWHoKbbLTK/rT7pzpJ4Bjp5JjkZeasRfrS9wsBdDJK2cJLHMckXZdzPSSr1B8a4oQ==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "dependencies": { + "micromark-util-chunked": "^2.0.0", + "micromark-util-types": "^2.0.0" + } + }, + "node_modules/micromark-extension-gfm/node_modules/micromark-util-symbol": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/micromark-util-symbol/-/micromark-util-symbol-2.0.0.tgz", + "integrity": "sha512-8JZt9ElZ5kyTnO94muPxIGS8oyElRJaiJO8EzV6ZSyGQ1Is8xwl4Q45qU5UOg+bGH4AikWziz0iN4sFLWs8PGw==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ] + }, + "node_modules/micromark-extension-gfm/node_modules/micromark-util-types": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/micromark-util-types/-/micromark-util-types-2.0.0.tgz", + "integrity": "sha512-oNh6S2WMHWRZrmutsRmDDfkzKtxF+bc2VxLC9dvtrDIRFln627VsFP6fLMgTryGDljgLPjkrzQSDcPrjPyDJ5w==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ] + }, + "node_modules/micromark-extension-mdx-expression": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/micromark-extension-mdx-expression/-/micromark-extension-mdx-expression-3.0.0.tgz", + "integrity": "sha512-sI0nwhUDz97xyzqJAbHQhp5TfaxEvZZZ2JDqUo+7NvyIYG6BZ5CPPqj2ogUoPJlmXHBnyZUzISg9+oUmU6tUjQ==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "dependencies": { + "@types/estree": "^1.0.0", + "devlop": "^1.0.0", + "micromark-factory-mdx-expression": "^2.0.0", + "micromark-factory-space": "^2.0.0", + "micromark-util-character": "^2.0.0", + "micromark-util-events-to-acorn": "^2.0.0", + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" + } + }, + "node_modules/micromark-extension-mdx-expression/node_modules/micromark-factory-space": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/micromark-factory-space/-/micromark-factory-space-2.0.0.tgz", + "integrity": "sha512-TKr+LIDX2pkBJXFLzpyPyljzYK3MtmllMUMODTQJIUfDGncESaqB90db9IAUcz4AZAJFdd8U9zOp9ty1458rxg==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "dependencies": { + "micromark-util-character": "^2.0.0", + "micromark-util-types": "^2.0.0" + } + }, + "node_modules/micromark-extension-mdx-expression/node_modules/micromark-util-character": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/micromark-util-character/-/micromark-util-character-2.1.0.tgz", + "integrity": "sha512-KvOVV+X1yLBfs9dCBSopq/+G1PcgT3lAK07mC4BzXi5E7ahzMAF8oIupDDJ6mievI6F+lAATkbQQlQixJfT3aQ==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "dependencies": { + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" + } + }, + "node_modules/micromark-extension-mdx-expression/node_modules/micromark-util-symbol": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/micromark-util-symbol/-/micromark-util-symbol-2.0.0.tgz", + "integrity": "sha512-8JZt9ElZ5kyTnO94muPxIGS8oyElRJaiJO8EzV6ZSyGQ1Is8xwl4Q45qU5UOg+bGH4AikWziz0iN4sFLWs8PGw==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ] + }, + "node_modules/micromark-extension-mdx-expression/node_modules/micromark-util-types": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/micromark-util-types/-/micromark-util-types-2.0.0.tgz", + "integrity": "sha512-oNh6S2WMHWRZrmutsRmDDfkzKtxF+bc2VxLC9dvtrDIRFln627VsFP6fLMgTryGDljgLPjkrzQSDcPrjPyDJ5w==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ] + }, + "node_modules/micromark-extension-mdx-jsx": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/micromark-extension-mdx-jsx/-/micromark-extension-mdx-jsx-3.0.0.tgz", + "integrity": "sha512-uvhhss8OGuzR4/N17L1JwvmJIpPhAd8oByMawEKx6NVdBCbesjH4t+vjEp3ZXft9DwvlKSD07fCeI44/N0Vf2w==", + "dependencies": { + "@types/acorn": "^4.0.0", + "@types/estree": "^1.0.0", + "devlop": "^1.0.0", + "estree-util-is-identifier-name": "^3.0.0", + "micromark-factory-mdx-expression": "^2.0.0", + "micromark-factory-space": "^2.0.0", + "micromark-util-character": "^2.0.0", + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0", + "vfile-message": "^4.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/micromark-extension-mdx-jsx/node_modules/micromark-factory-space": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/micromark-factory-space/-/micromark-factory-space-2.0.0.tgz", + "integrity": "sha512-TKr+LIDX2pkBJXFLzpyPyljzYK3MtmllMUMODTQJIUfDGncESaqB90db9IAUcz4AZAJFdd8U9zOp9ty1458rxg==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "dependencies": { + "micromark-util-character": "^2.0.0", + "micromark-util-types": "^2.0.0" + } + }, + "node_modules/micromark-extension-mdx-jsx/node_modules/micromark-util-character": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/micromark-util-character/-/micromark-util-character-2.1.0.tgz", + "integrity": "sha512-KvOVV+X1yLBfs9dCBSopq/+G1PcgT3lAK07mC4BzXi5E7ahzMAF8oIupDDJ6mievI6F+lAATkbQQlQixJfT3aQ==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "dependencies": { + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" + } + }, + "node_modules/micromark-extension-mdx-jsx/node_modules/micromark-util-symbol": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/micromark-util-symbol/-/micromark-util-symbol-2.0.0.tgz", + "integrity": "sha512-8JZt9ElZ5kyTnO94muPxIGS8oyElRJaiJO8EzV6ZSyGQ1Is8xwl4Q45qU5UOg+bGH4AikWziz0iN4sFLWs8PGw==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ] + }, + "node_modules/micromark-extension-mdx-jsx/node_modules/micromark-util-types": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/micromark-util-types/-/micromark-util-types-2.0.0.tgz", + "integrity": "sha512-oNh6S2WMHWRZrmutsRmDDfkzKtxF+bc2VxLC9dvtrDIRFln627VsFP6fLMgTryGDljgLPjkrzQSDcPrjPyDJ5w==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ] + }, + "node_modules/micromark-extension-mdx-md": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/micromark-extension-mdx-md/-/micromark-extension-mdx-md-2.0.0.tgz", + "integrity": "sha512-EpAiszsB3blw4Rpba7xTOUptcFeBFi+6PY8VnJ2hhimH+vCQDirWgsMpz7w1XcZE7LVrSAUGb9VJpG9ghlYvYQ==", + "dependencies": { + "micromark-util-types": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/micromark-extension-mdx-md/node_modules/micromark-util-types": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/micromark-util-types/-/micromark-util-types-2.0.0.tgz", + "integrity": "sha512-oNh6S2WMHWRZrmutsRmDDfkzKtxF+bc2VxLC9dvtrDIRFln627VsFP6fLMgTryGDljgLPjkrzQSDcPrjPyDJ5w==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ] + }, + "node_modules/micromark-extension-mdxjs": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/micromark-extension-mdxjs/-/micromark-extension-mdxjs-3.0.0.tgz", + "integrity": "sha512-A873fJfhnJ2siZyUrJ31l34Uqwy4xIFmvPY1oj+Ean5PHcPBYzEsvqvWGaWcfEIr11O5Dlw3p2y0tZWpKHDejQ==", + "dependencies": { + "acorn": "^8.0.0", + "acorn-jsx": "^5.0.0", + "micromark-extension-mdx-expression": "^3.0.0", + "micromark-extension-mdx-jsx": "^3.0.0", + "micromark-extension-mdx-md": "^2.0.0", + "micromark-extension-mdxjs-esm": "^3.0.0", + "micromark-util-combine-extensions": "^2.0.0", + "micromark-util-types": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/micromark-extension-mdxjs-esm": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/micromark-extension-mdxjs-esm/-/micromark-extension-mdxjs-esm-3.0.0.tgz", + "integrity": "sha512-DJFl4ZqkErRpq/dAPyeWp15tGrcrrJho1hKK5uBS70BCtfrIFg81sqcTVu3Ta+KD1Tk5vAtBNElWxtAa+m8K9A==", + "dependencies": { + "@types/estree": "^1.0.0", + "devlop": "^1.0.0", + "micromark-core-commonmark": "^2.0.0", + "micromark-util-character": "^2.0.0", + "micromark-util-events-to-acorn": "^2.0.0", + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0", + "unist-util-position-from-estree": "^2.0.0", + "vfile-message": "^4.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/micromark-extension-mdxjs-esm/node_modules/micromark-core-commonmark": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-core-commonmark/-/micromark-core-commonmark-2.0.1.tgz", + "integrity": "sha512-CUQyKr1e///ZODyD1U3xit6zXwy1a8q2a1S1HKtIlmgvurrEpaw/Y9y6KSIbF8P59cn/NjzHyO+Q2fAyYLQrAA==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "dependencies": { + "decode-named-character-reference": "^1.0.0", + "devlop": "^1.0.0", + "micromark-factory-destination": "^2.0.0", + "micromark-factory-label": "^2.0.0", + "micromark-factory-space": "^2.0.0", + "micromark-factory-title": "^2.0.0", + "micromark-factory-whitespace": "^2.0.0", + "micromark-util-character": "^2.0.0", + "micromark-util-chunked": "^2.0.0", + "micromark-util-classify-character": "^2.0.0", + "micromark-util-html-tag-name": "^2.0.0", + "micromark-util-normalize-identifier": "^2.0.0", + "micromark-util-resolve-all": "^2.0.0", + "micromark-util-subtokenize": "^2.0.0", + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" + } + }, + "node_modules/micromark-extension-mdxjs-esm/node_modules/micromark-factory-destination": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/micromark-factory-destination/-/micromark-factory-destination-2.0.0.tgz", + "integrity": "sha512-j9DGrQLm/Uhl2tCzcbLhy5kXsgkHUrjJHg4fFAeoMRwJmJerT9aw4FEhIbZStWN8A3qMwOp1uzHr4UL8AInxtA==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "dependencies": { + "micromark-util-character": "^2.0.0", + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" + } + }, + "node_modules/micromark-extension-mdxjs-esm/node_modules/micromark-factory-label": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/micromark-factory-label/-/micromark-factory-label-2.0.0.tgz", + "integrity": "sha512-RR3i96ohZGde//4WSe/dJsxOX6vxIg9TimLAS3i4EhBAFx8Sm5SmqVfR8E87DPSR31nEAjZfbt91OMZWcNgdZw==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "dependencies": { + "devlop": "^1.0.0", + "micromark-util-character": "^2.0.0", + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" + } + }, + "node_modules/micromark-extension-mdxjs-esm/node_modules/micromark-factory-space": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/micromark-factory-space/-/micromark-factory-space-2.0.0.tgz", + "integrity": "sha512-TKr+LIDX2pkBJXFLzpyPyljzYK3MtmllMUMODTQJIUfDGncESaqB90db9IAUcz4AZAJFdd8U9zOp9ty1458rxg==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "dependencies": { + "micromark-util-character": "^2.0.0", + "micromark-util-types": "^2.0.0" + } + }, + "node_modules/micromark-extension-mdxjs-esm/node_modules/micromark-factory-title": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/micromark-factory-title/-/micromark-factory-title-2.0.0.tgz", + "integrity": "sha512-jY8CSxmpWLOxS+t8W+FG3Xigc0RDQA9bKMY/EwILvsesiRniiVMejYTE4wumNc2f4UbAa4WsHqe3J1QS1sli+A==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "dependencies": { + "micromark-factory-space": "^2.0.0", + "micromark-util-character": "^2.0.0", + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" + } + }, + "node_modules/micromark-extension-mdxjs-esm/node_modules/micromark-factory-whitespace": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/micromark-factory-whitespace/-/micromark-factory-whitespace-2.0.0.tgz", + "integrity": "sha512-28kbwaBjc5yAI1XadbdPYHX/eDnqaUFVikLwrO7FDnKG7lpgxnvk/XGRhX/PN0mOZ+dBSZ+LgunHS+6tYQAzhA==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "dependencies": { + "micromark-factory-space": "^2.0.0", + "micromark-util-character": "^2.0.0", + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" + } + }, + "node_modules/micromark-extension-mdxjs-esm/node_modules/micromark-util-character": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/micromark-util-character/-/micromark-util-character-2.1.0.tgz", + "integrity": "sha512-KvOVV+X1yLBfs9dCBSopq/+G1PcgT3lAK07mC4BzXi5E7ahzMAF8oIupDDJ6mievI6F+lAATkbQQlQixJfT3aQ==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "dependencies": { + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" + } + }, + "node_modules/micromark-extension-mdxjs-esm/node_modules/micromark-util-chunked": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/micromark-util-chunked/-/micromark-util-chunked-2.0.0.tgz", + "integrity": "sha512-anK8SWmNphkXdaKgz5hJvGa7l00qmcaUQoMYsBwDlSKFKjc6gjGXPDw3FNL3Nbwq5L8gE+RCbGqTw49FK5Qyvg==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "dependencies": { + "micromark-util-symbol": "^2.0.0" + } + }, + "node_modules/micromark-extension-mdxjs-esm/node_modules/micromark-util-classify-character": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/micromark-util-classify-character/-/micromark-util-classify-character-2.0.0.tgz", + "integrity": "sha512-S0ze2R9GH+fu41FA7pbSqNWObo/kzwf8rN/+IGlW/4tC6oACOs8B++bh+i9bVyNnwCcuksbFwsBme5OCKXCwIw==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "dependencies": { + "micromark-util-character": "^2.0.0", + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" + } + }, + "node_modules/micromark-extension-mdxjs-esm/node_modules/micromark-util-html-tag-name": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/micromark-util-html-tag-name/-/micromark-util-html-tag-name-2.0.0.tgz", + "integrity": "sha512-xNn4Pqkj2puRhKdKTm8t1YHC/BAjx6CEwRFXntTaRf/x16aqka6ouVoutm+QdkISTlT7e2zU7U4ZdlDLJd2Mcw==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ] + }, + "node_modules/micromark-extension-mdxjs-esm/node_modules/micromark-util-normalize-identifier": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/micromark-util-normalize-identifier/-/micromark-util-normalize-identifier-2.0.0.tgz", + "integrity": "sha512-2xhYT0sfo85FMrUPtHcPo2rrp1lwbDEEzpx7jiH2xXJLqBuy4H0GgXk5ToU8IEwoROtXuL8ND0ttVa4rNqYK3w==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "dependencies": { + "micromark-util-symbol": "^2.0.0" + } + }, + "node_modules/micromark-extension-mdxjs-esm/node_modules/micromark-util-resolve-all": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/micromark-util-resolve-all/-/micromark-util-resolve-all-2.0.0.tgz", + "integrity": "sha512-6KU6qO7DZ7GJkaCgwBNtplXCvGkJToU86ybBAUdavvgsCiG8lSSvYxr9MhwmQ+udpzywHsl4RpGJsYWG1pDOcA==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "dependencies": { + "micromark-util-types": "^2.0.0" + } + }, + "node_modules/micromark-extension-mdxjs-esm/node_modules/micromark-util-subtokenize": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-util-subtokenize/-/micromark-util-subtokenize-2.0.1.tgz", + "integrity": "sha512-jZNtiFl/1aY73yS3UGQkutD0UbhTt68qnRpw2Pifmz5wV9h8gOVsN70v+Lq/f1rKaU/W8pxRe8y8Q9FX1AOe1Q==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "dependencies": { + "devlop": "^1.0.0", + "micromark-util-chunked": "^2.0.0", + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" + } + }, + "node_modules/micromark-extension-mdxjs-esm/node_modules/micromark-util-symbol": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/micromark-util-symbol/-/micromark-util-symbol-2.0.0.tgz", + "integrity": "sha512-8JZt9ElZ5kyTnO94muPxIGS8oyElRJaiJO8EzV6ZSyGQ1Is8xwl4Q45qU5UOg+bGH4AikWziz0iN4sFLWs8PGw==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ] + }, + "node_modules/micromark-extension-mdxjs-esm/node_modules/micromark-util-types": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/micromark-util-types/-/micromark-util-types-2.0.0.tgz", + "integrity": "sha512-oNh6S2WMHWRZrmutsRmDDfkzKtxF+bc2VxLC9dvtrDIRFln627VsFP6fLMgTryGDljgLPjkrzQSDcPrjPyDJ5w==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ] + }, + "node_modules/micromark-extension-mdxjs/node_modules/micromark-util-chunked": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/micromark-util-chunked/-/micromark-util-chunked-2.0.0.tgz", + "integrity": "sha512-anK8SWmNphkXdaKgz5hJvGa7l00qmcaUQoMYsBwDlSKFKjc6gjGXPDw3FNL3Nbwq5L8gE+RCbGqTw49FK5Qyvg==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "dependencies": { + "micromark-util-symbol": "^2.0.0" + } + }, + "node_modules/micromark-extension-mdxjs/node_modules/micromark-util-combine-extensions": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/micromark-util-combine-extensions/-/micromark-util-combine-extensions-2.0.0.tgz", + "integrity": "sha512-vZZio48k7ON0fVS3CUgFatWHoKbbLTK/rT7pzpJ4Bjp5JjkZeasRfrS9wsBdDJK2cJLHMckXZdzPSSr1B8a4oQ==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "dependencies": { + "micromark-util-chunked": "^2.0.0", + "micromark-util-types": "^2.0.0" + } + }, + "node_modules/micromark-extension-mdxjs/node_modules/micromark-util-symbol": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/micromark-util-symbol/-/micromark-util-symbol-2.0.0.tgz", + "integrity": "sha512-8JZt9ElZ5kyTnO94muPxIGS8oyElRJaiJO8EzV6ZSyGQ1Is8xwl4Q45qU5UOg+bGH4AikWziz0iN4sFLWs8PGw==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ] + }, + "node_modules/micromark-extension-mdxjs/node_modules/micromark-util-types": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/micromark-util-types/-/micromark-util-types-2.0.0.tgz", + "integrity": "sha512-oNh6S2WMHWRZrmutsRmDDfkzKtxF+bc2VxLC9dvtrDIRFln627VsFP6fLMgTryGDljgLPjkrzQSDcPrjPyDJ5w==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ] + }, "node_modules/micromark-factory-destination": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/micromark-factory-destination/-/micromark-factory-destination-1.1.0.tgz", @@ -11492,6 +22228,80 @@ "uvu": "^0.5.0" } }, + "node_modules/micromark-factory-mdx-expression": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-factory-mdx-expression/-/micromark-factory-mdx-expression-2.0.1.tgz", + "integrity": "sha512-F0ccWIUHRLRrYp5TC9ZYXmZo+p2AM13ggbsW4T0b5CRKP8KHVRB8t4pwtBgTxtjRmwrK0Irwm7vs2JOZabHZfg==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "dependencies": { + "@types/estree": "^1.0.0", + "devlop": "^1.0.0", + "micromark-util-character": "^2.0.0", + "micromark-util-events-to-acorn": "^2.0.0", + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0", + "unist-util-position-from-estree": "^2.0.0", + "vfile-message": "^4.0.0" + } + }, + "node_modules/micromark-factory-mdx-expression/node_modules/micromark-util-character": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/micromark-util-character/-/micromark-util-character-2.1.0.tgz", + "integrity": "sha512-KvOVV+X1yLBfs9dCBSopq/+G1PcgT3lAK07mC4BzXi5E7ahzMAF8oIupDDJ6mievI6F+lAATkbQQlQixJfT3aQ==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "dependencies": { + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" + } + }, + "node_modules/micromark-factory-mdx-expression/node_modules/micromark-util-symbol": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/micromark-util-symbol/-/micromark-util-symbol-2.0.0.tgz", + "integrity": "sha512-8JZt9ElZ5kyTnO94muPxIGS8oyElRJaiJO8EzV6ZSyGQ1Is8xwl4Q45qU5UOg+bGH4AikWziz0iN4sFLWs8PGw==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ] + }, + "node_modules/micromark-factory-mdx-expression/node_modules/micromark-util-types": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/micromark-util-types/-/micromark-util-types-2.0.0.tgz", + "integrity": "sha512-oNh6S2WMHWRZrmutsRmDDfkzKtxF+bc2VxLC9dvtrDIRFln627VsFP6fLMgTryGDljgLPjkrzQSDcPrjPyDJ5w==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ] + }, "node_modules/micromark-factory-space": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/micromark-factory-space/-/micromark-factory-space-1.1.0.tgz", @@ -11683,6 +22493,66 @@ } ] }, + "node_modules/micromark-util-events-to-acorn": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/micromark-util-events-to-acorn/-/micromark-util-events-to-acorn-2.0.2.tgz", + "integrity": "sha512-Fk+xmBrOv9QZnEDguL9OI9/NQQp6Hz4FuQ4YmCb/5V7+9eAh1s6AYSvL20kHkD67YIg7EpE54TiSlcsf3vyZgA==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "dependencies": { + "@types/acorn": "^4.0.0", + "@types/estree": "^1.0.0", + "@types/unist": "^3.0.0", + "devlop": "^1.0.0", + "estree-util-visit": "^2.0.0", + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0", + "vfile-message": "^4.0.0" + } + }, + "node_modules/micromark-util-events-to-acorn/node_modules/@types/unist": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/@types/unist/-/unist-3.0.2.tgz", + "integrity": "sha512-dqId9J8K/vGi5Zr7oo212BGii5m3q5Hxlkwy3WpYuKPklmBEvsbMYYyLxAQpSffdLl/gdW0XUpKWFvYmyoWCoQ==" + }, + "node_modules/micromark-util-events-to-acorn/node_modules/micromark-util-symbol": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/micromark-util-symbol/-/micromark-util-symbol-2.0.0.tgz", + "integrity": "sha512-8JZt9ElZ5kyTnO94muPxIGS8oyElRJaiJO8EzV6ZSyGQ1Is8xwl4Q45qU5UOg+bGH4AikWziz0iN4sFLWs8PGw==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ] + }, + "node_modules/micromark-util-events-to-acorn/node_modules/micromark-util-types": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/micromark-util-types/-/micromark-util-types-2.0.0.tgz", + "integrity": "sha512-oNh6S2WMHWRZrmutsRmDDfkzKtxF+bc2VxLC9dvtrDIRFln627VsFP6fLMgTryGDljgLPjkrzQSDcPrjPyDJ5w==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ] + }, "node_modules/micromark-util-html-tag-name": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/micromark-util-html-tag-name/-/micromark-util-html-tag-name-1.2.0.tgz", @@ -11881,11 +22751,14 @@ } }, "node_modules/mimic-response": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-1.0.1.tgz", - "integrity": "sha512-j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ==", + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-4.0.0.tgz", + "integrity": "sha512-e5ISH9xMYU0DzrT+jl8q2ze9D6eWBto+I8CNpe+VI+K2J/F/k3PdkdTdz4wvGVH4NTpo+NRYTVIuMQEMMcsLqg==", "engines": { - "node": ">=4" + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/mini-css-extract-plugin": { @@ -11906,50 +22779,6 @@ "webpack": "^5.0.0" } }, - "node_modules/mini-css-extract-plugin/node_modules/ajv": { - "version": "8.12.0", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.12.0.tgz", - "integrity": "sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA==", - "dependencies": { - "fast-deep-equal": "^3.1.1", - "json-schema-traverse": "^1.0.0", - "require-from-string": "^2.0.2", - "uri-js": "^4.2.2" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/epoberezkin" - } - }, - "node_modules/mini-css-extract-plugin/node_modules/ajv-keywords": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-5.1.0.tgz", - "integrity": "sha512-YCS/JNFAUyr5vAuhk1DWm1CBxRHW9LbJ2ozWeemrIqpbsqKjHVxYPyi5GC0rjZIT5JxJ3virVTS8wk4i/Z+krw==", - "dependencies": { - "fast-deep-equal": "^3.1.3" - }, - "peerDependencies": { - "ajv": "^8.8.2" - } - }, - "node_modules/mini-css-extract-plugin/node_modules/schema-utils": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-4.2.0.tgz", - "integrity": "sha512-L0jRsrPpjdckP3oPug3/VxNKt2trR8TcabrM6FOAAlvC/9Phcmm+cuAgTlxBqdBR1WJx7Naj9WHw+aOmheSVbw==", - "dependencies": { - "@types/json-schema": "^7.0.9", - "ajv": "^8.9.0", - "ajv-formats": "^2.1.1", - "ajv-keywords": "^5.1.0" - }, - "engines": { - "node": ">= 12.13.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" - } - }, "node_modules/minimalistic-assert": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz", @@ -11979,11 +22808,6 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/moment-mini": { - "version": "2.24.0", - "resolved": "https://registry.npmjs.org/moment-mini/-/moment-mini-2.24.0.tgz", - "integrity": "sha512-9ARkWHBs+6YJIvrIp0Ik5tyTTtP9PoV0Ssu2Ocq5y9v8+NOOpWiRshAp8c4rZVWTOe+157on/5G+zj5pwIQFEQ==" - }, "node_modules/mri": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/mri/-/mri-1.2.0.tgz", @@ -12113,11 +22937,28 @@ } }, "node_modules/node-emoji": { - "version": "1.11.0", - "resolved": "https://registry.npmjs.org/node-emoji/-/node-emoji-1.11.0.tgz", - "integrity": "sha512-wo2DpQkQp7Sjm2A0cq+sN7EHKO6Sl0ctXeBdFZrL9T9+UywORbufTcTZxom8YqpLQt/FqNMUkOpkZrJVYSKD3A==", + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/node-emoji/-/node-emoji-2.1.3.tgz", + "integrity": "sha512-E2WEOVsgs7O16zsURJ/eH8BqhF029wGpEOnv7Urwdo2wmQanOACwJQh0devF9D9RhoZru0+9JXIS0dBXIAz+lA==", "dependencies": { - "lodash": "^4.17.21" + "@sindresorhus/is": "^4.6.0", + "char-regex": "^1.0.2", + "emojilib": "^2.4.0", + "skin-tone": "^2.0.0" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/node-emoji/node_modules/@sindresorhus/is": { + "version": "4.6.0", + "resolved": "https://registry.npmjs.org/@sindresorhus/is/-/is-4.6.0.tgz", + "integrity": "sha512-t09vSN3MdfsyCHoFcTRCH/iUtG7OJ0CsjzB8cjAmKc/va/kIgeDI/TxsigdncE/4be734m0cvIYwNaV4i2XqAw==", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sindresorhus/is?sponsor=1" } }, "node_modules/node-fetch": { @@ -12205,9 +23046,14 @@ } }, "node_modules/node-releases": { - "version": "2.0.13", - "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.13.tgz", - "integrity": "sha512-uYr7J37ae/ORWdZeQ1xxMJe3NtdmqMC/JZK+geofDrkLUApKRHPd18/TxtBOJ4A0/+uUIliorNrfYV6s1b02eQ==" + "version": "2.0.14", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.14.tgz", + "integrity": "sha512-y10wOWt8yZpqXmOgRo77WaHEmhYQYGNA6y421PKsKYWEK8aW+cqAphborZDhqfyKrbZEN92CN1X2KbafY2s7Yw==" + }, + "node_modules/non-layered-tidy-tree-layout": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/non-layered-tidy-tree-layout/-/non-layered-tidy-tree-layout-2.0.2.tgz", + "integrity": "sha512-gkXMxRzUH+PB0ax9dUN0yYF0S25BqeAYqhgMaLUFmpXLEk7Fcu8f4emJuOAY0V8kjDICxROIKsTAKsV/v355xw==" }, "node_modules/normalize-path": { "version": "3.0.0", @@ -12560,11 +23406,11 @@ "integrity": "sha512-gjcpUc3clBf9+210TRaDWbf+rZZZEshZ+DlXMRCeAjp0xhTrnQsKHypIy1J3d5hKdUzj69t708EHtU8P6bUn0A==" }, "node_modules/p-cancelable": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/p-cancelable/-/p-cancelable-1.1.0.tgz", - "integrity": "sha512-s73XxOZ4zpt1edZYZzvhqFa6uvQc1vwUa0K0BdtIZgQMAJj9IbebH+JkgKZc9h+B05PKHLOTl4ajG1BmNrVZlw==", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/p-cancelable/-/p-cancelable-3.0.0.tgz", + "integrity": "sha512-mlVgR3PGuzlo0MmTdk4cXqXWlwQDLnONTAg6sm62XkMJEiRxN3GL3SffkYvqwonbkJBcrI7Uvv5Zh9yjvn2iUw==", "engines": { - "node": ">=6" + "node": ">=12.20" } }, "node_modules/p-limit": { @@ -12627,25 +23473,20 @@ } }, "node_modules/package-json": { - "version": "6.5.0", - "resolved": "https://registry.npmjs.org/package-json/-/package-json-6.5.0.tgz", - "integrity": "sha512-k3bdm2n25tkyxcjSKzB5x8kfVxlMdgsbPr0GkZcwHsLpba6cBjqCt1KlcChKEvxHIcTB1FVMuwoijZ26xex5MQ==", + "version": "8.1.1", + "resolved": "https://registry.npmjs.org/package-json/-/package-json-8.1.1.tgz", + "integrity": "sha512-cbH9IAIJHNj9uXi196JVsRlt7cHKak6u/e6AkL/bkRelZ7rlL3X1YKxsZwa36xipOEKAsdtmaG6aAJoM1fx2zA==", "dependencies": { - "got": "^9.6.0", - "registry-auth-token": "^4.0.0", - "registry-url": "^5.0.0", - "semver": "^6.2.0" + "got": "^12.1.0", + "registry-auth-token": "^5.0.1", + "registry-url": "^6.0.0", + "semver": "^7.3.7" }, "engines": { - "node": ">=8" - } - }, - "node_modules/package-json/node_modules/semver": { - "version": "6.3.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", - "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", - "bin": { - "semver": "bin/semver.js" + "node": ">=14.16" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/pako": { @@ -12685,23 +23526,6 @@ "safe-buffer": "^5.1.1" } }, - "node_modules/parse-entities": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/parse-entities/-/parse-entities-2.0.0.tgz", - "integrity": "sha512-kkywGpCcRYhqQIchaWqZ875wzpS/bMKhz5HnN3p7wveJTkTtyAB/AlnS0f8DFSqYW1T82t6yEAkEcB+A1I3MbQ==", - "dependencies": { - "character-entities": "^1.0.0", - "character-entities-legacy": "^1.0.0", - "character-reference-invalid": "^1.0.0", - "is-alphanumerical": "^1.0.0", - "is-decimal": "^1.0.0", - "is-hexadecimal": "^1.0.0" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" - } - }, "node_modules/parse-json": { "version": "5.2.0", "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz", @@ -12875,10 +23699,20 @@ "node": ">=0.12" } }, + "node_modules/periscopic": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/periscopic/-/periscopic-3.1.0.tgz", + "integrity": "sha512-vKiQ8RRtkl9P+r/+oefh25C3fhybptkHKCZSPlcXiJux2tJF55GnEj3BVn4A5gKfq9NWWXXrxkHBwVPUfH0opw==", + "dependencies": { + "@types/estree": "^1.0.0", + "estree-walker": "^3.0.0", + "is-reference": "^3.0.0" + } + }, "node_modules/picocolors": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz", - "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==" + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.1.tgz", + "integrity": "sha512-anP1Z8qwhkbmu7MFP5iTt+wQKXgwzf7zTyGlcdzabySa9vd0Xt392U0rVmz9poOaBj0uHJKyyo9/upk0HrEQew==" }, "node_modules/picomatch": { "version": "2.3.1", @@ -12900,14 +23734,93 @@ } }, "node_modules/pkg-dir": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz", - "integrity": "sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==", + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-7.0.0.tgz", + "integrity": "sha512-Ie9z/WINcxxLp27BKOCHGde4ITq9UklYKDzVo1nhk5sqGEXU3FpkwP5GM2voTGJkGd9B3Otl+Q4uwSOeSUtOBA==", "dependencies": { - "find-up": "^4.0.0" + "find-up": "^6.3.0" }, "engines": { - "node": ">=8" + "node": ">=14.16" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/pkg-dir/node_modules/find-up": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-6.3.0.tgz", + "integrity": "sha512-v2ZsoEuVHYy8ZIlYqwPe/39Cy+cFDzp4dXPaxNvkEuouymu+2Jbz0PxpKarJHYJTmv2HWT3O382qY8l4jMWthw==", + "dependencies": { + "locate-path": "^7.1.0", + "path-exists": "^5.0.0" + }, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/pkg-dir/node_modules/locate-path": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-7.2.0.tgz", + "integrity": "sha512-gvVijfZvn7R+2qyPX8mAuKcFGDf6Nc61GdvGafQsHL0sBIxfKzA+usWn4GFC/bk+QdwPUD4kWFJLhElipq+0VA==", + "dependencies": { + "p-locate": "^6.0.0" + }, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/pkg-dir/node_modules/p-limit": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-4.0.0.tgz", + "integrity": "sha512-5b0R4txpzjPWVw/cXXUResoD4hb6U/x9BH08L7nw+GN1sezDzPdxeRvpc9c433fZhBan/wusjbCsqwqm4EIBIQ==", + "dependencies": { + "yocto-queue": "^1.0.0" + }, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/pkg-dir/node_modules/p-locate": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-6.0.0.tgz", + "integrity": "sha512-wPrq66Llhl7/4AGC6I+cqxT07LhXvWL08LNXz1fENOw0Ap4sRZZ/gZpTTJ5jpurzzzfS2W/Ge9BY3LgLjCShcw==", + "dependencies": { + "p-limit": "^4.0.0" + }, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/pkg-dir/node_modules/path-exists": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-5.0.0.tgz", + "integrity": "sha512-RjhtfwJOxzcFmNOi6ltcbcu4Iu+FL3zEj83dk4kAS+fVpTxXLO1b38RvJgT/0QwvV/L3aY9TAnyv0EOqW4GoMQ==", + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + } + }, + "node_modules/pkg-dir/node_modules/yocto-queue": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-1.1.1.tgz", + "integrity": "sha512-b4JR1PFR10y1mKjhHY9LaGo6tmrgjit7hxVIeAmyMw3jegXR4dhYqLaQF5zMXZxY7tLpMyJeLjr1C4rLmkVe8g==", + "engines": { + "node": ">=12.20" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/pkg-up": { @@ -12972,9 +23885,9 @@ } }, "node_modules/postcss": { - "version": "8.4.31", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.31.tgz", - "integrity": "sha512-PS08Iboia9mts/2ygV3eLpY5ghnUcfLV/EXTOW1E2qYxJKGGBUtNjN76FYHnMs36RmARn41bC0AZmn+rR0OVpQ==", + "version": "8.4.39", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.39.tgz", + "integrity": "sha512-0vzE+lAiG7hZl1/9I8yzKLx3aR9Xbof3fBHKunvMfOCYAtMhrsnccJY2iTURb9EZd5+pLuiNV9/c/GZJOHsgIw==", "funding": [ { "type": "opencollective", @@ -12990,9 +23903,9 @@ } ], "dependencies": { - "nanoid": "^3.3.6", - "picocolors": "^1.0.0", - "source-map-js": "^1.0.2" + "nanoid": "^3.3.7", + "picocolors": "^1.0.1", + "source-map-js": "^1.2.0" }, "engines": { "node": "^10 || ^12 || >=14" @@ -13492,9 +24405,9 @@ } }, "node_modules/postcss-selector-parser": { - "version": "6.0.13", - "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.0.13.tgz", - "integrity": "sha512-EaV1Gl4mUEV4ddhDnv/xtj7sxwrwxdetHdWUGnT4VJQf+4d05v6lHYZr8N573k5Z0BViss7BDhfWtKS3+sfAqQ==", + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.1.0.tgz", + "integrity": "sha512-UMz42UD0UY0EApS0ZL9o1XnLhSTtvvvLe5Dc2H2O56fvRZi+KulDyf5ctDhhtYJBGKStV2FL1fy6253cmLgqVQ==", "dependencies": { "cssesc": "^3.0.0", "util-deprecate": "^1.0.2" @@ -13573,14 +24486,6 @@ "node": ">=10" } }, - "node_modules/prepend-http": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/prepend-http/-/prepend-http-2.0.0.tgz", - "integrity": "sha512-ravE6m9Atw9Z/jjttRUZ+clIXogdghyZAuWJ3qEzjT+jI/dL1ifAqhZeC5VHzQp1MSt1+jxKkFNemj/iO7tVUA==", - "engines": { - "node": ">=4" - } - }, "node_modules/prettier": { "version": "2.8.0", "resolved": "https://registry.npmjs.org/prettier/-/prettier-2.8.0.tgz", @@ -13650,11 +24555,23 @@ } }, "node_modules/prism-react-renderer": { - "version": "1.3.5", - "resolved": "https://registry.npmjs.org/prism-react-renderer/-/prism-react-renderer-1.3.5.tgz", - "integrity": "sha512-IJ+MSwBWKG+SM3b2SUfdrhC+gu01QkV2KmRQgREThBfSQRoufqRfxfHUxpG1WcaFjP+kojcFyO9Qqtpgt3qLCg==", + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/prism-react-renderer/-/prism-react-renderer-2.3.1.tgz", + "integrity": "sha512-Rdf+HzBLR7KYjzpJ1rSoxT9ioO85nZngQEoFIhL07XhtJHlCU3SOz0GJ6+qvMyQe0Se+BV3qpe6Yd/NmQF5Juw==", + "dependencies": { + "@types/prismjs": "^1.26.0", + "clsx": "^2.0.0" + }, "peerDependencies": { - "react": ">=0.14.9" + "react": ">=16.0.0" + } + }, + "node_modules/prism-react-renderer/node_modules/clsx": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/clsx/-/clsx-2.1.1.tgz", + "integrity": "sha512-eYm0QWBtUrBWZWG0d386OGAw16Z995PiOVo2B7bjWSbHedGl5e0ZWaq65kOGgUSNesEIDkB9ISbTg/JK9dhCZA==", + "engines": { + "node": ">=6" } }, "node_modules/prismjs": { @@ -13679,15 +24596,6 @@ "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==" }, - "node_modules/promise": { - "version": "7.3.1", - "resolved": "https://registry.npmjs.org/promise/-/promise-7.3.1.tgz", - "integrity": "sha512-nolQXZ/4L+bP/UGlkfaIujX9BKxGwmQ9OT4mOt5yvy8iK1h3wqTEJCijzGANTCCl9nWjY41juyAn2K3Q1hLLTg==", - "dev": true, - "dependencies": { - "asap": "~2.0.3" - } - }, "node_modules/prompts": { "version": "2.4.2", "resolved": "https://registry.npmjs.org/prompts/-/prompts-2.4.2.tgz", @@ -13711,17 +24619,19 @@ } }, "node_modules/property-information": { - "version": "5.6.0", - "resolved": "https://registry.npmjs.org/property-information/-/property-information-5.6.0.tgz", - "integrity": "sha512-YUHSPk+A30YPv+0Qf8i9Mbfe/C0hdPXk1s1jPVToV8pk8BQtpw10ct89Eo7OWkutrwqvT0eicAxlOg3dOAu8JA==", - "dependencies": { - "xtend": "^4.0.0" - }, + "version": "6.5.0", + "resolved": "https://registry.npmjs.org/property-information/-/property-information-6.5.0.tgz", + "integrity": "sha512-PgTgs/BlvHxOu8QuEN7wi5A0OmXaBcHpmCSTehcs6Uuu9IkDIEo13Hy7n898RHfrQ49vKCoGeWZSaAK01nwVig==", "funding": { "type": "github", "url": "https://github.com/sponsors/wooorm" } }, + "node_modules/proto-list": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/proto-list/-/proto-list-1.2.4.tgz", + "integrity": "sha512-vtK/94akxsTMhe0/cbfpR+syPuszcuwhqVjJq26CuNDgFGj682oRBXOP5MJpv2r7JtE8MsiepGIqvvOTBwn2vA==" + }, "node_modules/proxy-addr": { "version": "2.0.7", "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.7.tgz", @@ -13764,6 +24674,7 @@ "version": "3.0.0", "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz", "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==", + "dev": true, "dependencies": { "end-of-stream": "^1.1.0", "once": "^1.3.1" @@ -13778,22 +24689,19 @@ } }, "node_modules/pupa": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/pupa/-/pupa-2.1.1.tgz", - "integrity": "sha512-l1jNAspIBSFqbT+y+5FosojNpVpF94nlI+wDUpqP9enwOTfHx9f0gh5nB96vl+6yTpsJsypeNrwfzPrKuHB41A==", + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/pupa/-/pupa-3.1.0.tgz", + "integrity": "sha512-FLpr4flz5xZTSJxSeaheeMKN/EDzMdK7b8PTOC6a5PYFKTucWbdqjgqaEyH0shFiSJrVB1+Qqi4Tk19ccU6Aug==", "dependencies": { - "escape-goat": "^2.0.0" + "escape-goat": "^4.0.0" }, "engines": { - "node": ">=8" + "node": ">=12.20" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/pure-color": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/pure-color/-/pure-color-1.3.0.tgz", - "integrity": "sha512-QFADYnsVoBMw1srW7OVKEYjG+MbIa49s54w1MA1EDY6r2r/sTcKKYqRX1f4GYvnXP7eN/Pe9HFcX+hwzmrXRHA==", - "dev": true - }, "node_modules/qs": { "version": "6.11.2", "resolved": "https://registry.npmjs.org/qs/-/qs-6.11.2.tgz", @@ -13843,6 +24751,17 @@ } ] }, + "node_modules/quick-lru": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/quick-lru/-/quick-lru-5.1.1.tgz", + "integrity": "sha512-WuyALRjWPDGtt/wzJiadO5AXY+8hZ80hVpe6MyivgraREW751X3SbhRvG3eLKOYN+8VEvqLcf3wdnt44Z4S4SA==", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/randombytes": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz", @@ -13915,6 +24834,14 @@ "rc": "cli.js" } }, + "node_modules/rc/node_modules/strip-json-comments": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz", + "integrity": "sha512-4gB8na07fecVVkOI6Rs4e7T6NOTki5EmL7TUduTs6bu3EdnSycntVJ4re8kgZA+wx9IueI2Y11bfbgwtzuE0KQ==", + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/react": { "version": "18.2.0", "resolved": "https://registry.npmjs.org/react/-/react-18.2.0.tgz", @@ -13926,18 +24853,6 @@ "node": ">=0.10.0" } }, - "node_modules/react-base16-styling": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/react-base16-styling/-/react-base16-styling-0.6.0.tgz", - "integrity": "sha512-yvh/7CArceR/jNATXOKDlvTnPKPmGZz7zsenQ3jUwLzHkNUR0CvY3yGYJbWJ/nnxsL8Sgmt5cO3/SILVuPO6TQ==", - "dev": true, - "dependencies": { - "base16": "^1.0.0", - "lodash.curry": "^4.0.1", - "lodash.flow": "^3.3.0", - "pure-color": "^1.2.0" - } - }, "node_modules/react-dev-utils": { "version": "12.0.1", "resolved": "https://registry.npmjs.org/react-dev-utils/-/react-dev-utils-12.0.1.tgz", @@ -14095,6 +25010,18 @@ "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz", "integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==" }, + "node_modules/react-json-view-lite": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/react-json-view-lite/-/react-json-view-lite-1.4.0.tgz", + "integrity": "sha512-wh6F6uJyYAmQ4fK0e8dSQMEWuvTs2Wr3el3sLD9bambX1+pSWUVXIz1RFaoy3TI1mZ0FqdpKq9YgbgTTgyrmXA==", + "dev": true, + "engines": { + "node": ">=14" + }, + "peerDependencies": { + "react": "^16.13.1 || ^17.0.0 || ^18.0.0" + } + }, "node_modules/react-lifecycles-compat": { "version": "3.0.4", "resolved": "https://registry.npmjs.org/react-lifecycles-compat/-/react-lifecycles-compat-3.0.4.tgz", @@ -14163,24 +25090,6 @@ "react": ">=16" } }, - "node_modules/react-markdown/node_modules/bail": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/bail/-/bail-2.0.2.tgz", - "integrity": "sha512-0xO6mYd7JB2YesxDKplafRpsiOzPt9V02ddPCLbY1xYGPOX24NTyN50qnUxgCPcSoYMhKpAuBTjQoRZCAkUDRw==", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" - } - }, - "node_modules/react-markdown/node_modules/comma-separated-tokens": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/comma-separated-tokens/-/comma-separated-tokens-2.0.3.tgz", - "integrity": "sha512-Fu4hJdvzeylCfQPp9SGWidpzrMs7tTrlu6Vb8XGaRGck8QSNZJJp538Wrb60Lax4fPwR64ViY468OIUTbRlGZg==", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" - } - }, "node_modules/react-markdown/node_modules/is-plain-obj": { "version": "4.1.0", "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-4.1.0.tgz", @@ -14192,15 +25101,6 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/react-markdown/node_modules/property-information": { - "version": "6.4.0", - "resolved": "https://registry.npmjs.org/property-information/-/property-information-6.4.0.tgz", - "integrity": "sha512-9t5qARVofg2xQqKtytzt+lZ4d1Qvj8t5B8fEwXK6qOfgRLgH/b13QlgEyDh033NOS31nXeFbYv7CLUDG1CeifQ==", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" - } - }, "node_modules/react-markdown/node_modules/react-is": { "version": "18.2.0", "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.2.0.tgz", @@ -14220,15 +25120,6 @@ "url": "https://opencollective.com/unified" } }, - "node_modules/react-markdown/node_modules/space-separated-tokens": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/space-separated-tokens/-/space-separated-tokens-2.0.2.tgz", - "integrity": "sha512-PEGlAwrG8yXGXRjW32fGbg66JAlOAwbObuqVoJpv/mRgoWDQfgH1wDPvtzWyUSNAXBGSk8h755YDbbcEy3SH2Q==", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" - } - }, "node_modules/react-markdown/node_modules/style-to-object": { "version": "0.4.4", "resolved": "https://registry.npmjs.org/style-to-object/-/style-to-object-0.4.4.tgz", @@ -14237,15 +25128,6 @@ "inline-style-parser": "0.1.1" } }, - "node_modules/react-markdown/node_modules/trough": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/trough/-/trough-2.1.0.tgz", - "integrity": "sha512-AqTiAOLcj85xS7vQ8QkAV41hPDIJ71XJB4RCUrzo/1GM2CQwhkJGaf9Hgr7BOugMRpgGUrqRg/DrBDl4H40+8g==", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" - } - }, "node_modules/react-markdown/node_modules/unified": { "version": "10.1.2", "resolved": "https://registry.npmjs.org/unified/-/unified-10.1.2.tgz", @@ -14459,23 +25341,6 @@ "react": "^16.8.0 || ^17.0.0-0 || ^18.0.0" } }, - "node_modules/react-textarea-autosize": { - "version": "8.5.3", - "resolved": "https://registry.npmjs.org/react-textarea-autosize/-/react-textarea-autosize-8.5.3.tgz", - "integrity": "sha512-XT1024o2pqCuZSuBt9FwHlaDeNtVrtCXu0Rnz88t1jUGheCLa3PhjE1GH8Ctm2axEtvdCl5SUHYschyQ0L5QHQ==", - "dev": true, - "dependencies": { - "@babel/runtime": "^7.20.13", - "use-composed-ref": "^1.3.0", - "use-latest": "^1.2.1" - }, - "engines": { - "node": ">=10" - }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0 || ^18.0.0" - } - }, "node_modules/readable-stream": { "version": "4.4.2", "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-4.4.2.tgz", @@ -14619,25 +25484,28 @@ } }, "node_modules/registry-auth-token": { - "version": "4.2.2", - "resolved": "https://registry.npmjs.org/registry-auth-token/-/registry-auth-token-4.2.2.tgz", - "integrity": "sha512-PC5ZysNb42zpFME6D/XlIgtNGdTl8bBOCw90xQLVMpzuuubJKYDWFAEuUNc+Cn8Z8724tg2SDhDRrkVEsqfDMg==", + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/registry-auth-token/-/registry-auth-token-5.0.2.tgz", + "integrity": "sha512-o/3ikDxtXaA59BmZuZrJZDJv8NMDGSj+6j6XaeBmHw8eY1i1qd9+6H+LjVvQXx3HN6aRCGa1cUdJ9RaJZUugnQ==", + "dependencies": { + "@pnpm/npm-conf": "^2.1.0" + }, + "engines": { + "node": ">=14" + } + }, + "node_modules/registry-url": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/registry-url/-/registry-url-6.0.1.tgz", + "integrity": "sha512-+crtS5QjFRqFCoQmvGduwYWEBng99ZvmFvF+cUJkGYF1L1BfU8C6Zp9T7f5vPAwyLkUExpvK+ANVZmGU49qi4Q==", "dependencies": { "rc": "1.2.8" }, "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/registry-url": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/registry-url/-/registry-url-5.1.0.tgz", - "integrity": "sha512-8acYXXTI0AkQv6RAOjE3vOaIXZkT9wo4LOFbBKYQEEnnMNBpKqdUrI6S4NT0KPIo/WVvJ5tE/X5LF/TQUf0ekw==", - "dependencies": { - "rc": "^1.2.8" + "node": ">=12" }, - "engines": { - "node": ">=8" + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/regjsparser": { @@ -14678,24 +25546,6 @@ "resolved": "https://registry.npmjs.org/@types/parse5/-/parse5-6.0.3.tgz", "integrity": "sha512-SuT16Q1K51EAVPz1K29DJ/sXjhSQ0zjvsypYJ6tlwVsRV9jwW5Adq2ch8Dq8kDBCkYnELS7N7VNCSB5nC56t/g==" }, - "node_modules/rehype-raw/node_modules/bail": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/bail/-/bail-2.0.2.tgz", - "integrity": "sha512-0xO6mYd7JB2YesxDKplafRpsiOzPt9V02ddPCLbY1xYGPOX24NTyN50qnUxgCPcSoYMhKpAuBTjQoRZCAkUDRw==", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" - } - }, - "node_modules/rehype-raw/node_modules/comma-separated-tokens": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/comma-separated-tokens/-/comma-separated-tokens-2.0.3.tgz", - "integrity": "sha512-Fu4hJdvzeylCfQPp9SGWidpzrMs7tTrlu6Vb8XGaRGck8QSNZJJp538Wrb60Lax4fPwR64ViY468OIUTbRlGZg==", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" - } - }, "node_modules/rehype-raw/node_modules/hast-util-from-parse5": { "version": "7.1.2", "resolved": "https://registry.npmjs.org/hast-util-from-parse5/-/hast-util-from-parse5-7.1.2.tgz", @@ -14801,33 +25651,6 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/rehype-raw/node_modules/property-information": { - "version": "6.4.0", - "resolved": "https://registry.npmjs.org/property-information/-/property-information-6.4.0.tgz", - "integrity": "sha512-9t5qARVofg2xQqKtytzt+lZ4d1Qvj8t5B8fEwXK6qOfgRLgH/b13QlgEyDh033NOS31nXeFbYv7CLUDG1CeifQ==", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" - } - }, - "node_modules/rehype-raw/node_modules/space-separated-tokens": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/space-separated-tokens/-/space-separated-tokens-2.0.2.tgz", - "integrity": "sha512-PEGlAwrG8yXGXRjW32fGbg66JAlOAwbObuqVoJpv/mRgoWDQfgH1wDPvtzWyUSNAXBGSk8h755YDbbcEy3SH2Q==", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" - } - }, - "node_modules/rehype-raw/node_modules/trough": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/trough/-/trough-2.1.0.tgz", - "integrity": "sha512-AqTiAOLcj85xS7vQ8QkAV41hPDIJ71XJB4RCUrzo/1GM2CQwhkJGaf9Hgr7BOugMRpgGUrqRg/DrBDl4H40+8g==", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" - } - }, "node_modules/rehype-raw/node_modules/unified": { "version": "10.1.2", "resolved": "https://registry.npmjs.org/unified/-/unified-10.1.2.tgz", @@ -14950,24 +25773,6 @@ "url": "https://opencollective.com/unified" } }, - "node_modules/rehype-raw/node_modules/web-namespaces": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/web-namespaces/-/web-namespaces-2.0.1.tgz", - "integrity": "sha512-bKr1DkiNa2krS7qxNtdrtHAmzuYGFQLiQ13TsorsdT6ULTkPLKuu5+GsFpDlg6JFjUTwX2DyhMPG2be8uPrqsQ==", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" - } - }, - "node_modules/rehype-raw/node_modules/zwitch": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/zwitch/-/zwitch-2.0.4.tgz", - "integrity": "sha512-bXE4cR/kVZhKZX/RjPEflHaKVhUVl85noU3v6b8apfQEc1x4A+zBxjZ4lN8LqGd6WZ3dl98pY4o717VFmoPp+A==", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" - } - }, "node_modules/relateurl": { "version": "0.2.7", "resolved": "https://registry.npmjs.org/relateurl/-/relateurl-0.2.7.tgz", @@ -14976,130 +25781,122 @@ "node": ">= 0.10" } }, - "node_modules/remark-emoji": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/remark-emoji/-/remark-emoji-2.2.0.tgz", - "integrity": "sha512-P3cj9s5ggsUvWw5fS2uzCHJMGuXYRb0NnZqYlNecewXt8QBU9n5vW3DUUKOhepS8F9CwdMx9B8a3i7pqFWAI5w==", + "node_modules/remark-directive": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/remark-directive/-/remark-directive-3.0.0.tgz", + "integrity": "sha512-l1UyWJ6Eg1VPU7Hm/9tt0zKtReJQNOA4+iDMAxTyZNWnJnFlbS/7zhiel/rogTLQ2vMYwDzSJa4BiVNqGlqIMA==", "dependencies": { - "emoticon": "^3.2.0", - "node-emoji": "^1.10.0", - "unist-util-visit": "^2.0.3" - } - }, - "node_modules/remark-footnotes": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/remark-footnotes/-/remark-footnotes-2.0.0.tgz", - "integrity": "sha512-3Clt8ZMH75Ayjp9q4CorNeyjwIxHFcTkaektplKGl2A1jNGEUey8cKL0ZC5vJwfcD5GFGsNLImLG/NGzWIzoMQ==", + "@types/mdast": "^4.0.0", + "mdast-util-directive": "^3.0.0", + "micromark-extension-directive": "^3.0.0", + "unified": "^11.0.0" + }, "funding": { "type": "opencollective", "url": "https://opencollective.com/unified" } }, + "node_modules/remark-directive/node_modules/@types/mdast": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/@types/mdast/-/mdast-4.0.4.tgz", + "integrity": "sha512-kGaNbPh1k7AFzgpud/gMdvIm5xuECykRR+JnWKQno9TAXVa6WIVCGTPvYGekIDL4uwCZQSYbUxNBSb1aUo79oA==", + "dependencies": { + "@types/unist": "*" + } + }, + "node_modules/remark-directive/node_modules/@types/unist": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/@types/unist/-/unist-3.0.2.tgz", + "integrity": "sha512-dqId9J8K/vGi5Zr7oo212BGii5m3q5Hxlkwy3WpYuKPklmBEvsbMYYyLxAQpSffdLl/gdW0XUpKWFvYmyoWCoQ==" + }, + "node_modules/remark-emoji": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/remark-emoji/-/remark-emoji-4.0.1.tgz", + "integrity": "sha512-fHdvsTR1dHkWKev9eNyhTo4EFwbUvJ8ka9SgeWkMPYFX4WoI7ViVBms3PjlQYgw5TLvNQso3GUB/b/8t3yo+dg==", + "dependencies": { + "@types/mdast": "^4.0.2", + "emoticon": "^4.0.1", + "mdast-util-find-and-replace": "^3.0.1", + "node-emoji": "^2.1.0", + "unified": "^11.0.4" + }, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + } + }, + "node_modules/remark-emoji/node_modules/@types/mdast": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/@types/mdast/-/mdast-4.0.4.tgz", + "integrity": "sha512-kGaNbPh1k7AFzgpud/gMdvIm5xuECykRR+JnWKQno9TAXVa6WIVCGTPvYGekIDL4uwCZQSYbUxNBSb1aUo79oA==", + "dependencies": { + "@types/unist": "*" + } + }, + "node_modules/remark-frontmatter": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/remark-frontmatter/-/remark-frontmatter-5.0.0.tgz", + "integrity": "sha512-XTFYvNASMe5iPN0719nPrdItC9aU0ssC4v14mH1BCi1u0n1gAocqcujWUrByftZTbLhRtiKRyjYTSIOcr69UVQ==", + "dependencies": { + "@types/mdast": "^4.0.0", + "mdast-util-frontmatter": "^2.0.0", + "micromark-extension-frontmatter": "^2.0.0", + "unified": "^11.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/remark-frontmatter/node_modules/@types/mdast": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/@types/mdast/-/mdast-4.0.4.tgz", + "integrity": "sha512-kGaNbPh1k7AFzgpud/gMdvIm5xuECykRR+JnWKQno9TAXVa6WIVCGTPvYGekIDL4uwCZQSYbUxNBSb1aUo79oA==", + "dependencies": { + "@types/unist": "*" + } + }, + "node_modules/remark-frontmatter/node_modules/@types/unist": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/@types/unist/-/unist-3.0.2.tgz", + "integrity": "sha512-dqId9J8K/vGi5Zr7oo212BGii5m3q5Hxlkwy3WpYuKPklmBEvsbMYYyLxAQpSffdLl/gdW0XUpKWFvYmyoWCoQ==" + }, + "node_modules/remark-gfm": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/remark-gfm/-/remark-gfm-4.0.0.tgz", + "integrity": "sha512-U92vJgBPkbw4Zfu/IiW2oTZLSL3Zpv+uI7My2eq8JxKgqraFdU8YUGicEJCEgSbeaG+QDFqIcwwfMTOEelPxuA==", + "dependencies": { + "@types/mdast": "^4.0.0", + "mdast-util-gfm": "^3.0.0", + "micromark-extension-gfm": "^3.0.0", + "remark-parse": "^11.0.0", + "remark-stringify": "^11.0.0", + "unified": "^11.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/remark-gfm/node_modules/@types/mdast": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/@types/mdast/-/mdast-4.0.4.tgz", + "integrity": "sha512-kGaNbPh1k7AFzgpud/gMdvIm5xuECykRR+JnWKQno9TAXVa6WIVCGTPvYGekIDL4uwCZQSYbUxNBSb1aUo79oA==", + "dependencies": { + "@types/unist": "*" + } + }, + "node_modules/remark-gfm/node_modules/@types/unist": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/@types/unist/-/unist-3.0.2.tgz", + "integrity": "sha512-dqId9J8K/vGi5Zr7oo212BGii5m3q5Hxlkwy3WpYuKPklmBEvsbMYYyLxAQpSffdLl/gdW0XUpKWFvYmyoWCoQ==" + }, "node_modules/remark-mdx": { - "version": "1.6.22", - "resolved": "https://registry.npmjs.org/remark-mdx/-/remark-mdx-1.6.22.tgz", - "integrity": "sha512-phMHBJgeV76uyFkH4rvzCftLfKCr2RZuF+/gmVcaKrpsihyzmhXjA0BEMDaPTXG5y8qZOKPVo83NAOX01LPnOQ==", + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/remark-mdx/-/remark-mdx-3.0.1.tgz", + "integrity": "sha512-3Pz3yPQ5Rht2pM5R+0J2MrGoBSrzf+tJG94N+t/ilfdh8YLyyKYtidAYwTveB20BoHAcwIopOUqhcmh2F7hGYA==", "dependencies": { - "@babel/core": "7.12.9", - "@babel/helper-plugin-utils": "7.10.4", - "@babel/plugin-proposal-object-rest-spread": "7.12.1", - "@babel/plugin-syntax-jsx": "7.12.1", - "@mdx-js/util": "1.6.22", - "is-alphabetical": "1.0.4", - "remark-parse": "8.0.3", - "unified": "9.2.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/remark-mdx/node_modules/@babel/core": { - "version": "7.12.9", - "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.12.9.tgz", - "integrity": "sha512-gTXYh3M5wb7FRXQy+FErKFAv90BnlOuNn1QkCK2lREoPAjrQCO49+HVSrFoe5uakFAF5eenS75KbO2vQiLrTMQ==", - "dependencies": { - "@babel/code-frame": "^7.10.4", - "@babel/generator": "^7.12.5", - "@babel/helper-module-transforms": "^7.12.1", - "@babel/helpers": "^7.12.5", - "@babel/parser": "^7.12.7", - "@babel/template": "^7.12.7", - "@babel/traverse": "^7.12.9", - "@babel/types": "^7.12.7", - "convert-source-map": "^1.7.0", - "debug": "^4.1.0", - "gensync": "^1.0.0-beta.1", - "json5": "^2.1.2", - "lodash": "^4.17.19", - "resolve": "^1.3.2", - "semver": "^5.4.1", - "source-map": "^0.5.0" - }, - "engines": { - "node": ">=6.9.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/babel" - } - }, - "node_modules/remark-mdx/node_modules/@babel/helper-plugin-utils": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.10.4.tgz", - "integrity": "sha512-O4KCvQA6lLiMU9l2eawBPMf1xPP8xPfB3iEQw150hOVTqj/rfXz0ThTb4HEzqQfs2Bmo5Ay8BzxfzVtBrr9dVg==" - }, - "node_modules/remark-mdx/node_modules/@babel/plugin-syntax-jsx": { - "version": "7.12.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.12.1.tgz", - "integrity": "sha512-1yRi7yAtB0ETgxdY9ti/p2TivUxJkTdhu/ZbF9MshVGqOx1TdB3b7xCXs49Fupgg50N45KcAsRP/ZqWjs9SRjg==", - "dependencies": { - "@babel/helper-plugin-utils": "^7.10.4" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/remark-mdx/node_modules/convert-source-map": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.9.0.tgz", - "integrity": "sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A==" - }, - "node_modules/remark-mdx/node_modules/is-plain-obj": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-2.1.0.tgz", - "integrity": "sha512-YWnfyRwxL/+SsrWYfOpUtz5b3YD+nyfkHvjbcanzk8zgyO4ASD67uVMRt8k5bM4lLMDnXfriRhOpemw+NfT1eA==", - "engines": { - "node": ">=8" - } - }, - "node_modules/remark-mdx/node_modules/semver": { - "version": "5.7.2", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz", - "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==", - "bin": { - "semver": "bin/semver" - } - }, - "node_modules/remark-mdx/node_modules/source-map": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", - "integrity": "sha512-LbrmJOMUSdEVxIKvdcJzQC+nQhe8FUZQTXQy6+I75skNgn3OoQ0DZA8YnFa7gp8tqtL3KPf1kmo0R5DoApeSGQ==", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/remark-mdx/node_modules/unified": { - "version": "9.2.0", - "resolved": "https://registry.npmjs.org/unified/-/unified-9.2.0.tgz", - "integrity": "sha512-vx2Z0vY+a3YoTj8+pttM3tiJHCwY5UFbYdiWrwBEbHmK8pvsPj2rtAX2BFfgXen8T39CJWblWRDT4L5WGXtDdg==", - "dependencies": { - "bail": "^1.0.0", - "extend": "^3.0.0", - "is-buffer": "^2.0.0", - "is-plain-obj": "^2.0.0", - "trough": "^1.0.0", - "vfile": "^4.0.0" + "mdast-util-mdx": "^3.0.0", + "micromark-extension-mdxjs": "^3.0.0" }, "funding": { "type": "opencollective", @@ -15107,32 +25904,477 @@ } }, "node_modules/remark-parse": { - "version": "8.0.3", - "resolved": "https://registry.npmjs.org/remark-parse/-/remark-parse-8.0.3.tgz", - "integrity": "sha512-E1K9+QLGgggHxCQtLt++uXltxEprmWzNfg+MxpfHsZlrddKzZ/hZyWHDbK3/Ap8HJQqYJRXP+jHczdL6q6i85Q==", + "version": "11.0.0", + "resolved": "https://registry.npmjs.org/remark-parse/-/remark-parse-11.0.0.tgz", + "integrity": "sha512-FCxlKLNGknS5ba/1lmpYijMUzX2esxW5xQqjWxw2eHFfS2MSdaHVINFmhjo+qN1WhZhNimq0dZATN9pH0IDrpA==", "dependencies": { - "ccount": "^1.0.0", - "collapse-white-space": "^1.0.2", - "is-alphabetical": "^1.0.0", - "is-decimal": "^1.0.0", - "is-whitespace-character": "^1.0.0", - "is-word-character": "^1.0.0", - "markdown-escapes": "^1.0.0", - "parse-entities": "^2.0.0", - "repeat-string": "^1.5.4", - "state-toggle": "^1.0.0", - "trim": "0.0.1", - "trim-trailing-lines": "^1.0.0", - "unherit": "^1.0.4", - "unist-util-remove-position": "^2.0.0", - "vfile-location": "^3.0.0", - "xtend": "^4.0.1" + "@types/mdast": "^4.0.0", + "mdast-util-from-markdown": "^2.0.0", + "micromark-util-types": "^2.0.0", + "unified": "^11.0.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/unified" } }, + "node_modules/remark-parse/node_modules/@types/mdast": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/@types/mdast/-/mdast-4.0.4.tgz", + "integrity": "sha512-kGaNbPh1k7AFzgpud/gMdvIm5xuECykRR+JnWKQno9TAXVa6WIVCGTPvYGekIDL4uwCZQSYbUxNBSb1aUo79oA==", + "dependencies": { + "@types/unist": "*" + } + }, + "node_modules/remark-parse/node_modules/@types/unist": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/@types/unist/-/unist-3.0.2.tgz", + "integrity": "sha512-dqId9J8K/vGi5Zr7oo212BGii5m3q5Hxlkwy3WpYuKPklmBEvsbMYYyLxAQpSffdLl/gdW0XUpKWFvYmyoWCoQ==" + }, + "node_modules/remark-parse/node_modules/mdast-util-from-markdown": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/mdast-util-from-markdown/-/mdast-util-from-markdown-2.0.1.tgz", + "integrity": "sha512-aJEUyzZ6TzlsX2s5B4Of7lN7EQtAxvtradMMglCQDyaTFgse6CmtmdJ15ElnVRlCg1vpNyVtbem0PWzlNieZsA==", + "dependencies": { + "@types/mdast": "^4.0.0", + "@types/unist": "^3.0.0", + "decode-named-character-reference": "^1.0.0", + "devlop": "^1.0.0", + "mdast-util-to-string": "^4.0.0", + "micromark": "^4.0.0", + "micromark-util-decode-numeric-character-reference": "^2.0.0", + "micromark-util-decode-string": "^2.0.0", + "micromark-util-normalize-identifier": "^2.0.0", + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0", + "unist-util-stringify-position": "^4.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/remark-parse/node_modules/micromark": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/micromark/-/micromark-4.0.0.tgz", + "integrity": "sha512-o/sd0nMof8kYff+TqcDx3VSrgBTcZpSvYcAHIfHhv5VAuNmisCxjhx6YmxS8PFEpb9z5WKWKPdzf0jM23ro3RQ==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "dependencies": { + "@types/debug": "^4.0.0", + "debug": "^4.0.0", + "decode-named-character-reference": "^1.0.0", + "devlop": "^1.0.0", + "micromark-core-commonmark": "^2.0.0", + "micromark-factory-space": "^2.0.0", + "micromark-util-character": "^2.0.0", + "micromark-util-chunked": "^2.0.0", + "micromark-util-combine-extensions": "^2.0.0", + "micromark-util-decode-numeric-character-reference": "^2.0.0", + "micromark-util-encode": "^2.0.0", + "micromark-util-normalize-identifier": "^2.0.0", + "micromark-util-resolve-all": "^2.0.0", + "micromark-util-sanitize-uri": "^2.0.0", + "micromark-util-subtokenize": "^2.0.0", + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" + } + }, + "node_modules/remark-parse/node_modules/micromark-core-commonmark": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-core-commonmark/-/micromark-core-commonmark-2.0.1.tgz", + "integrity": "sha512-CUQyKr1e///ZODyD1U3xit6zXwy1a8q2a1S1HKtIlmgvurrEpaw/Y9y6KSIbF8P59cn/NjzHyO+Q2fAyYLQrAA==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "dependencies": { + "decode-named-character-reference": "^1.0.0", + "devlop": "^1.0.0", + "micromark-factory-destination": "^2.0.0", + "micromark-factory-label": "^2.0.0", + "micromark-factory-space": "^2.0.0", + "micromark-factory-title": "^2.0.0", + "micromark-factory-whitespace": "^2.0.0", + "micromark-util-character": "^2.0.0", + "micromark-util-chunked": "^2.0.0", + "micromark-util-classify-character": "^2.0.0", + "micromark-util-html-tag-name": "^2.0.0", + "micromark-util-normalize-identifier": "^2.0.0", + "micromark-util-resolve-all": "^2.0.0", + "micromark-util-subtokenize": "^2.0.0", + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" + } + }, + "node_modules/remark-parse/node_modules/micromark-factory-destination": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/micromark-factory-destination/-/micromark-factory-destination-2.0.0.tgz", + "integrity": "sha512-j9DGrQLm/Uhl2tCzcbLhy5kXsgkHUrjJHg4fFAeoMRwJmJerT9aw4FEhIbZStWN8A3qMwOp1uzHr4UL8AInxtA==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "dependencies": { + "micromark-util-character": "^2.0.0", + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" + } + }, + "node_modules/remark-parse/node_modules/micromark-factory-label": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/micromark-factory-label/-/micromark-factory-label-2.0.0.tgz", + "integrity": "sha512-RR3i96ohZGde//4WSe/dJsxOX6vxIg9TimLAS3i4EhBAFx8Sm5SmqVfR8E87DPSR31nEAjZfbt91OMZWcNgdZw==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "dependencies": { + "devlop": "^1.0.0", + "micromark-util-character": "^2.0.0", + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" + } + }, + "node_modules/remark-parse/node_modules/micromark-factory-space": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/micromark-factory-space/-/micromark-factory-space-2.0.0.tgz", + "integrity": "sha512-TKr+LIDX2pkBJXFLzpyPyljzYK3MtmllMUMODTQJIUfDGncESaqB90db9IAUcz4AZAJFdd8U9zOp9ty1458rxg==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "dependencies": { + "micromark-util-character": "^2.0.0", + "micromark-util-types": "^2.0.0" + } + }, + "node_modules/remark-parse/node_modules/micromark-factory-title": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/micromark-factory-title/-/micromark-factory-title-2.0.0.tgz", + "integrity": "sha512-jY8CSxmpWLOxS+t8W+FG3Xigc0RDQA9bKMY/EwILvsesiRniiVMejYTE4wumNc2f4UbAa4WsHqe3J1QS1sli+A==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "dependencies": { + "micromark-factory-space": "^2.0.0", + "micromark-util-character": "^2.0.0", + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" + } + }, + "node_modules/remark-parse/node_modules/micromark-factory-whitespace": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/micromark-factory-whitespace/-/micromark-factory-whitespace-2.0.0.tgz", + "integrity": "sha512-28kbwaBjc5yAI1XadbdPYHX/eDnqaUFVikLwrO7FDnKG7lpgxnvk/XGRhX/PN0mOZ+dBSZ+LgunHS+6tYQAzhA==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "dependencies": { + "micromark-factory-space": "^2.0.0", + "micromark-util-character": "^2.0.0", + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" + } + }, + "node_modules/remark-parse/node_modules/micromark-util-character": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/micromark-util-character/-/micromark-util-character-2.1.0.tgz", + "integrity": "sha512-KvOVV+X1yLBfs9dCBSopq/+G1PcgT3lAK07mC4BzXi5E7ahzMAF8oIupDDJ6mievI6F+lAATkbQQlQixJfT3aQ==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "dependencies": { + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" + } + }, + "node_modules/remark-parse/node_modules/micromark-util-chunked": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/micromark-util-chunked/-/micromark-util-chunked-2.0.0.tgz", + "integrity": "sha512-anK8SWmNphkXdaKgz5hJvGa7l00qmcaUQoMYsBwDlSKFKjc6gjGXPDw3FNL3Nbwq5L8gE+RCbGqTw49FK5Qyvg==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "dependencies": { + "micromark-util-symbol": "^2.0.0" + } + }, + "node_modules/remark-parse/node_modules/micromark-util-classify-character": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/micromark-util-classify-character/-/micromark-util-classify-character-2.0.0.tgz", + "integrity": "sha512-S0ze2R9GH+fu41FA7pbSqNWObo/kzwf8rN/+IGlW/4tC6oACOs8B++bh+i9bVyNnwCcuksbFwsBme5OCKXCwIw==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "dependencies": { + "micromark-util-character": "^2.0.0", + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" + } + }, + "node_modules/remark-parse/node_modules/micromark-util-combine-extensions": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/micromark-util-combine-extensions/-/micromark-util-combine-extensions-2.0.0.tgz", + "integrity": "sha512-vZZio48k7ON0fVS3CUgFatWHoKbbLTK/rT7pzpJ4Bjp5JjkZeasRfrS9wsBdDJK2cJLHMckXZdzPSSr1B8a4oQ==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "dependencies": { + "micromark-util-chunked": "^2.0.0", + "micromark-util-types": "^2.0.0" + } + }, + "node_modules/remark-parse/node_modules/micromark-util-decode-numeric-character-reference": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-util-decode-numeric-character-reference/-/micromark-util-decode-numeric-character-reference-2.0.1.tgz", + "integrity": "sha512-bmkNc7z8Wn6kgjZmVHOX3SowGmVdhYS7yBpMnuMnPzDq/6xwVA604DuOXMZTO1lvq01g+Adfa0pE2UKGlxL1XQ==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "dependencies": { + "micromark-util-symbol": "^2.0.0" + } + }, + "node_modules/remark-parse/node_modules/micromark-util-decode-string": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/micromark-util-decode-string/-/micromark-util-decode-string-2.0.0.tgz", + "integrity": "sha512-r4Sc6leeUTn3P6gk20aFMj2ntPwn6qpDZqWvYmAG6NgvFTIlj4WtrAudLi65qYoaGdXYViXYw2pkmn7QnIFasA==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "dependencies": { + "decode-named-character-reference": "^1.0.0", + "micromark-util-character": "^2.0.0", + "micromark-util-decode-numeric-character-reference": "^2.0.0", + "micromark-util-symbol": "^2.0.0" + } + }, + "node_modules/remark-parse/node_modules/micromark-util-encode": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/micromark-util-encode/-/micromark-util-encode-2.0.0.tgz", + "integrity": "sha512-pS+ROfCXAGLWCOc8egcBvT0kf27GoWMqtdarNfDcjb6YLuV5cM3ioG45Ys2qOVqeqSbjaKg72vU+Wby3eddPsA==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ] + }, + "node_modules/remark-parse/node_modules/micromark-util-html-tag-name": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/micromark-util-html-tag-name/-/micromark-util-html-tag-name-2.0.0.tgz", + "integrity": "sha512-xNn4Pqkj2puRhKdKTm8t1YHC/BAjx6CEwRFXntTaRf/x16aqka6ouVoutm+QdkISTlT7e2zU7U4ZdlDLJd2Mcw==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ] + }, + "node_modules/remark-parse/node_modules/micromark-util-normalize-identifier": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/micromark-util-normalize-identifier/-/micromark-util-normalize-identifier-2.0.0.tgz", + "integrity": "sha512-2xhYT0sfo85FMrUPtHcPo2rrp1lwbDEEzpx7jiH2xXJLqBuy4H0GgXk5ToU8IEwoROtXuL8ND0ttVa4rNqYK3w==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "dependencies": { + "micromark-util-symbol": "^2.0.0" + } + }, + "node_modules/remark-parse/node_modules/micromark-util-resolve-all": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/micromark-util-resolve-all/-/micromark-util-resolve-all-2.0.0.tgz", + "integrity": "sha512-6KU6qO7DZ7GJkaCgwBNtplXCvGkJToU86ybBAUdavvgsCiG8lSSvYxr9MhwmQ+udpzywHsl4RpGJsYWG1pDOcA==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "dependencies": { + "micromark-util-types": "^2.0.0" + } + }, + "node_modules/remark-parse/node_modules/micromark-util-sanitize-uri": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/micromark-util-sanitize-uri/-/micromark-util-sanitize-uri-2.0.0.tgz", + "integrity": "sha512-WhYv5UEcZrbAtlsnPuChHUAsu/iBPOVaEVsntLBIdpibO0ddy8OzavZz3iL2xVvBZOpolujSliP65Kq0/7KIYw==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "dependencies": { + "micromark-util-character": "^2.0.0", + "micromark-util-encode": "^2.0.0", + "micromark-util-symbol": "^2.0.0" + } + }, + "node_modules/remark-parse/node_modules/micromark-util-subtokenize": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-util-subtokenize/-/micromark-util-subtokenize-2.0.1.tgz", + "integrity": "sha512-jZNtiFl/1aY73yS3UGQkutD0UbhTt68qnRpw2Pifmz5wV9h8gOVsN70v+Lq/f1rKaU/W8pxRe8y8Q9FX1AOe1Q==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "dependencies": { + "devlop": "^1.0.0", + "micromark-util-chunked": "^2.0.0", + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" + } + }, + "node_modules/remark-parse/node_modules/micromark-util-symbol": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/micromark-util-symbol/-/micromark-util-symbol-2.0.0.tgz", + "integrity": "sha512-8JZt9ElZ5kyTnO94muPxIGS8oyElRJaiJO8EzV6ZSyGQ1Is8xwl4Q45qU5UOg+bGH4AikWziz0iN4sFLWs8PGw==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ] + }, + "node_modules/remark-parse/node_modules/micromark-util-types": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/micromark-util-types/-/micromark-util-types-2.0.0.tgz", + "integrity": "sha512-oNh6S2WMHWRZrmutsRmDDfkzKtxF+bc2VxLC9dvtrDIRFln627VsFP6fLMgTryGDljgLPjkrzQSDcPrjPyDJ5w==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ] + }, "node_modules/remark-rehype": { "version": "10.1.0", "resolved": "https://registry.npmjs.org/remark-rehype/-/remark-rehype-10.1.0.tgz", @@ -15148,15 +26390,6 @@ "url": "https://opencollective.com/unified" } }, - "node_modules/remark-rehype/node_modules/bail": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/bail/-/bail-2.0.2.tgz", - "integrity": "sha512-0xO6mYd7JB2YesxDKplafRpsiOzPt9V02ddPCLbY1xYGPOX24NTyN50qnUxgCPcSoYMhKpAuBTjQoRZCAkUDRw==", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" - } - }, "node_modules/remark-rehype/node_modules/is-plain-obj": { "version": "4.1.0", "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-4.1.0.tgz", @@ -15201,15 +26434,6 @@ "url": "https://opencollective.com/unified" } }, - "node_modules/remark-rehype/node_modules/trough": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/trough/-/trough-2.1.0.tgz", - "integrity": "sha512-AqTiAOLcj85xS7vQ8QkAV41hPDIJ71XJB4RCUrzo/1GM2CQwhkJGaf9Hgr7BOugMRpgGUrqRg/DrBDl4H40+8g==", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" - } - }, "node_modules/remark-rehype/node_modules/unified": { "version": "10.1.2", "resolved": "https://registry.npmjs.org/unified/-/unified-10.1.2.tgz", @@ -15328,18 +26552,33 @@ "url": "https://opencollective.com/unified" } }, - "node_modules/remark-squeeze-paragraphs": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/remark-squeeze-paragraphs/-/remark-squeeze-paragraphs-4.0.0.tgz", - "integrity": "sha512-8qRqmL9F4nuLPIgl92XUuxI3pFxize+F1H0e/W3llTk0UsjJaj01+RrirkMw7P21RKe4X6goQhYRSvNWX+70Rw==", + "node_modules/remark-stringify": { + "version": "11.0.0", + "resolved": "https://registry.npmjs.org/remark-stringify/-/remark-stringify-11.0.0.tgz", + "integrity": "sha512-1OSmLd3awB/t8qdoEOMazZkNsfVTeY4fTsgzcQFdXNq8ToTN4ZGwrMnlda4K6smTFKD+GRV6O48i6Z4iKgPPpw==", "dependencies": { - "mdast-squeeze-paragraphs": "^4.0.0" + "@types/mdast": "^4.0.0", + "mdast-util-to-markdown": "^2.0.0", + "unified": "^11.0.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/unified" } }, + "node_modules/remark-stringify/node_modules/@types/mdast": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/@types/mdast/-/mdast-4.0.4.tgz", + "integrity": "sha512-kGaNbPh1k7AFzgpud/gMdvIm5xuECykRR+JnWKQno9TAXVa6WIVCGTPvYGekIDL4uwCZQSYbUxNBSb1aUo79oA==", + "dependencies": { + "@types/unist": "*" + } + }, + "node_modules/remark-stringify/node_modules/@types/unist": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/@types/unist/-/unist-3.0.2.tgz", + "integrity": "sha512-dqId9J8K/vGi5Zr7oo212BGii5m3q5Hxlkwy3WpYuKPklmBEvsbMYYyLxAQpSffdLl/gdW0XUpKWFvYmyoWCoQ==" + }, "node_modules/renderkid": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/renderkid/-/renderkid-3.0.0.tgz", @@ -15352,14 +26591,6 @@ "strip-ansi": "^6.0.1" } }, - "node_modules/repeat-string": { - "version": "1.6.1", - "resolved": "https://registry.npmjs.org/repeat-string/-/repeat-string-1.6.1.tgz", - "integrity": "sha512-PV0dzCYDNfRi1jCDbJzpW7jNNDRuCOG/jI5ctQcGKt/clZD+YcPS3yIlWuTJMmESC8aevCFmWJy5wjAFgNqN6w==", - "engines": { - "node": ">=0.10" - } - }, "node_modules/require-directory": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", @@ -15415,6 +26646,11 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/resolve-alpn": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/resolve-alpn/-/resolve-alpn-1.2.1.tgz", + "integrity": "sha512-0a1F4l73/ZFZOakJnQ3FvkJ2+gSTQWz/r2KE5OdDY0TxPm5h4GkqkWWfM47T7HsbnOtcJVEF4epCVy6u7Q3K+g==" + }, "node_modules/resolve-from": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", @@ -15429,11 +26665,17 @@ "integrity": "sha512-C7rARubxI8bXFNB/hqcp/4iUeIXJhJZvFPFPiSPRnhU5UPxzMFIl+2E6yY6c4k9giDJAhtV+enfA+G89N6Csng==" }, "node_modules/responselike": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/responselike/-/responselike-1.0.2.tgz", - "integrity": "sha512-/Fpe5guzJk1gPqdJLJR5u7eG/gNY4nImjbRDaVWVMRhne55TCmj2i9Q+54PBRfatRC8v/rIiv9BN0pMd9OV5EQ==", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/responselike/-/responselike-3.0.0.tgz", + "integrity": "sha512-40yHxbNcl2+rzXvZuVkrYohathsSJlMTXKryG5y8uciHv1+xDLHQpgjG64JUO9nrEq2jGLH6IZ8BcZyw3wrweg==", "dependencies": { - "lowercase-keys": "^1.0.0" + "lowercase-keys": "^3.0.0" + }, + "engines": { + "node": ">=14.16" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/retry": { @@ -15487,91 +26729,21 @@ "integrity": "sha512-PGMBq03+TTG/p/cRB7HCLKJ1MgDIi07+QU1faSjiYRfmY5UsAttV9Hs08jDAHVwcOwmVLcSJkpwyfXszVjWfIQ==" }, "node_modules/rtlcss": { - "version": "3.5.0", - "resolved": "https://registry.npmjs.org/rtlcss/-/rtlcss-3.5.0.tgz", - "integrity": "sha512-wzgMaMFHQTnyi9YOwsx9LjOxYXJPzS8sYnFaKm6R5ysvTkwzHiB0vxnbHwchHQT65PTdBjDG21/kQBWI7q9O7A==", + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/rtlcss/-/rtlcss-4.1.1.tgz", + "integrity": "sha512-/oVHgBtnPNcggP2aVXQjSy6N1mMAfHg4GSag0QtZBlD5bdDgAHwr4pydqJGd+SUCu9260+Pjqbjwtvu7EMH1KQ==", "dev": true, "dependencies": { - "find-up": "^5.0.0", + "escalade": "^3.1.1", "picocolors": "^1.0.0", - "postcss": "^8.3.11", + "postcss": "^8.4.21", "strip-json-comments": "^3.1.1" }, "bin": { "rtlcss": "bin/rtlcss.js" - } - }, - "node_modules/rtlcss/node_modules/find-up": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", - "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", - "dev": true, - "dependencies": { - "locate-path": "^6.0.0", - "path-exists": "^4.0.0" }, "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/rtlcss/node_modules/locate-path": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", - "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", - "dev": true, - "dependencies": { - "p-locate": "^5.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/rtlcss/node_modules/p-limit": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", - "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", - "dev": true, - "dependencies": { - "yocto-queue": "^0.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/rtlcss/node_modules/p-locate": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz", - "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==", - "dev": true, - "dependencies": { - "p-limit": "^3.0.2" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/rtlcss/node_modules/strip-json-comments": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", - "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", - "dev": true, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "node": ">=12.0.0" } }, "node_modules/run-parallel": { @@ -15601,14 +26773,6 @@ "resolved": "https://registry.npmjs.org/rw/-/rw-1.3.3.tgz", "integrity": "sha512-PdhdWy89SiZogBLaw42zdeqtRJ//zFd2PgQavcICDUgJT5oW10QCRKbJ6bg4r0/UY2M6BWd5tkxuGFRvCkgfHQ==" }, - "node_modules/rxjs": { - "version": "7.8.1", - "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-7.8.1.tgz", - "integrity": "sha512-AA3TVj+0A2iuIoQkWEK/tqFjBq2j+6PO6Y0zJcvzLAFhEFIO3HL0vls9hWLncZbAAbK0mar7oZ4V079I/qPMxg==", - "dependencies": { - "tslib": "^2.1.0" - } - }, "node_modules/sade": { "version": "1.8.1", "resolved": "https://registry.npmjs.org/sade/-/sade-1.8.1.tgz", @@ -15710,16 +26874,17 @@ } }, "node_modules/schema-utils": { - "version": "2.7.1", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-2.7.1.tgz", - "integrity": "sha512-SHiNtMOUGWBQJwzISiVYKu82GiV4QYGePp3odlY1tuKO7gPtphAT5R/py0fA6xtbgLL/RvtJZnU9b8s0F1q0Xg==", + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-4.2.0.tgz", + "integrity": "sha512-L0jRsrPpjdckP3oPug3/VxNKt2trR8TcabrM6FOAAlvC/9Phcmm+cuAgTlxBqdBR1WJx7Naj9WHw+aOmheSVbw==", "dependencies": { - "@types/json-schema": "^7.0.5", - "ajv": "^6.12.4", - "ajv-keywords": "^3.5.2" + "@types/json-schema": "^7.0.9", + "ajv": "^8.9.0", + "ajv-formats": "^2.1.1", + "ajv-keywords": "^5.1.0" }, "engines": { - "node": ">= 8.9.0" + "node": ">= 12.13.0" }, "funding": { "type": "opencollective", @@ -15727,33 +26892,20 @@ } }, "node_modules/schema-utils/node_modules/ajv": { - "version": "6.12.6", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", - "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", + "version": "8.16.0", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.16.0.tgz", + "integrity": "sha512-F0twR8U1ZU67JIEtekUcLkXkoO5mMMmgGD8sK/xUFzJ805jxHQl92hImFAqqXMyMYjSPOyUPAwHYhB72g5sTXw==", "dependencies": { - "fast-deep-equal": "^3.1.1", - "fast-json-stable-stringify": "^2.0.0", - "json-schema-traverse": "^0.4.1", - "uri-js": "^4.2.2" + "fast-deep-equal": "^3.1.3", + "json-schema-traverse": "^1.0.0", + "require-from-string": "^2.0.2", + "uri-js": "^4.4.1" }, "funding": { "type": "github", "url": "https://github.com/sponsors/epoberezkin" } }, - "node_modules/schema-utils/node_modules/ajv-keywords": { - "version": "3.5.2", - "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.2.tgz", - "integrity": "sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==", - "peerDependencies": { - "ajv": "^6.9.1" - } - }, - "node_modules/schema-utils/node_modules/json-schema-traverse": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", - "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==" - }, "node_modules/section-matter": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/section-matter/-/section-matter-1.0.0.tgz", @@ -15798,22 +26950,17 @@ } }, "node_modules/semver-diff": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/semver-diff/-/semver-diff-3.1.1.tgz", - "integrity": "sha512-GX0Ix/CJcHyB8c4ykpHGIAvLyOwOobtM/8d+TQkAd81/bEjgPHrfba41Vpesr7jX/t8Uh+R3EX9eAS5be+jQYg==", + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/semver-diff/-/semver-diff-4.0.0.tgz", + "integrity": "sha512-0Ju4+6A8iOnpL/Thra7dZsSlOHYAHIeMxfhWQRI1/VLcT3WDBZKKtQt/QkBOsiIN9ZpuvHE6cGZ0x4glCMmfiA==", "dependencies": { - "semver": "^6.3.0" + "semver": "^7.3.5" }, "engines": { - "node": ">=8" - } - }, - "node_modules/semver-diff/node_modules/semver": { - "version": "6.3.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", - "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", - "bin": { - "semver": "bin/semver.js" + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/semver/node_modules/lru-cache": { @@ -16217,9 +27364,9 @@ "integrity": "sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg==" }, "node_modules/sitemap": { - "version": "7.1.1", - "resolved": "https://registry.npmjs.org/sitemap/-/sitemap-7.1.1.tgz", - "integrity": "sha512-mK3aFtjz4VdJN0igpIJrinf3EO8U8mxOPsTBzSsy06UtjZQJ3YY3o3Xa7zSc5nMqcMrRwlChHZ18Kxg0caiPBg==", + "version": "7.1.2", + "resolved": "https://registry.npmjs.org/sitemap/-/sitemap-7.1.2.tgz", + "integrity": "sha512-ARCqzHJ0p4gWt+j7NlU5eDlIO9+Rkr/JhPFZKKQ1l5GCus7rJH4UdrlVAh0xC/gDS/Qir2UMxqYNHtsKr2rpCw==", "dev": true, "dependencies": { "@types/node": "^17.0.5", @@ -16241,6 +27388,17 @@ "integrity": "sha512-w+tIMs3rq2afQdsPJlODhoUEKzFP1ayaoyl1CcnwtIlsVe7K7bA1NGm4s3PraqTLlXnbIN84zuBlxBWo1u9BLw==", "dev": true }, + "node_modules/skin-tone": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/skin-tone/-/skin-tone-2.0.0.tgz", + "integrity": "sha512-kUMbT1oBJCpgrnKoSr0o6wPtvRWT9W9UKvGLwfJYO2WuahZRHOpEyL1ckyMGgMWh0UdpmaoFqKKD29WTomNEGA==", + "dependencies": { + "unicode-emoji-modifier-base": "^1.0.0" + }, + "engines": { + "node": ">=8" + } + }, "node_modules/slash": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", @@ -16257,6 +27415,15 @@ "node": ">=8.0.0" } }, + "node_modules/snake-case": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/snake-case/-/snake-case-3.0.4.tgz", + "integrity": "sha512-LAOh4z89bGQvl9pFfNF8V146i7o7/CqFPbqzYgP+yYzDIDeS9HaNFtXABamRW+AQzEVODcvE79ljJ+8a9YSdMg==", + "dependencies": { + "dot-case": "^3.0.4", + "tslib": "^2.0.3" + } + }, "node_modules/sockjs": { "version": "0.3.24", "resolved": "https://registry.npmjs.org/sockjs/-/sockjs-0.3.24.tgz", @@ -16289,9 +27456,9 @@ } }, "node_modules/source-map-js": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.0.2.tgz", - "integrity": "sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==", + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.0.tgz", + "integrity": "sha512-itJW8lvSA0TXEphiRoawsCksnlf8SyvmFzIhltqAHluXd88pkCd+cXJVHTDwdCr0IzwptSm035IHQktUu1QUMg==", "engines": { "node": ">=0.10.0" } @@ -16306,9 +27473,9 @@ } }, "node_modules/space-separated-tokens": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/space-separated-tokens/-/space-separated-tokens-1.1.5.tgz", - "integrity": "sha512-q/JSVd1Lptzhf5bkYm4ob4iWPjx0KiRe3sRFBNrVqbJkFaBm5vbbowy1mymoPNLRa52+oadOhJ+K49wsSeSjTA==", + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/space-separated-tokens/-/space-separated-tokens-2.0.2.tgz", + "integrity": "sha512-PEGlAwrG8yXGXRjW32fGbg66JAlOAwbObuqVoJpv/mRgoWDQfgH1wDPvtzWyUSNAXBGSk8h755YDbbcEy3SH2Q==", "funding": { "type": "github", "url": "https://github.com/sponsors/wooorm" @@ -16360,21 +27527,23 @@ "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", "integrity": "sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==" }, + "node_modules/srcset": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/srcset/-/srcset-4.0.0.tgz", + "integrity": "sha512-wvLeHgcVHKO8Sc/H/5lkGreJQVeYMm9rlmt8PuR1xE31rIuXhuzznUUqAt8MqLhB3MqJdFzlNAfpcWnxiFUcPw==", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/stable": { "version": "0.1.8", "resolved": "https://registry.npmjs.org/stable/-/stable-0.1.8.tgz", "integrity": "sha512-ji9qxRnOVfcuLDySj9qzhGSEFVobyt1kIOSkj1qZzYLzq7Tos/oUUWvotUPQLlrsidqsK6tBH89Bc9kL5zHA6w==", "deprecated": "Modern JS already guarantees Array#sort() is a stable sort, so this library is deprecated. See the compatibility table on MDN: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/sort#browser_compatibility" }, - "node_modules/state-toggle": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/state-toggle/-/state-toggle-1.0.3.tgz", - "integrity": "sha512-d/5Z4/2iiCnHw6Xzghyhb+GcmF89bxwgXG60wjIiZaxnymbyOmI8Hk4VqHXiVVp6u2ysaskFfXg3ekCj4WNftQ==", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" - } - }, "node_modules/statuses": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz", @@ -16483,6 +27652,28 @@ "url": "https://github.com/chalk/strip-ansi?sponsor=1" } }, + "node_modules/stringify-entities": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/stringify-entities/-/stringify-entities-4.0.4.tgz", + "integrity": "sha512-IwfBptatlO+QCJUo19AqvrPNqlVMpW9YEL2LIVY+Rpv2qsjCGxaDLNRgeGsQWJhfItebuJhsGSLjaBbNSQ+ieg==", + "dependencies": { + "character-entities-html4": "^2.0.0", + "character-entities-legacy": "^3.0.0" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/stringify-entities/node_modules/character-entities-legacy": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/character-entities-legacy/-/character-entities-legacy-3.0.0.tgz", + "integrity": "sha512-RpPp0asT/6ufRm//AJVwpViZbGM/MkjQFxJccQRHmISF/22NBtsHqAWmL+/pmkPWoIUJdWyeVleTl1wydHATVQ==", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, "node_modules/stringify-object": { "version": "3.3.0", "resolved": "https://registry.npmjs.org/stringify-object/-/stringify-object-3.3.0.tgz", @@ -16532,19 +27723,15 @@ } }, "node_modules/strip-json-comments": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz", - "integrity": "sha512-4gB8na07fecVVkOI6Rs4e7T6NOTki5EmL7TUduTs6bu3EdnSycntVJ4re8kgZA+wx9IueI2Y11bfbgwtzuE0KQ==", + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", + "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", + "dev": true, "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/style-to-object": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/style-to-object/-/style-to-object-0.3.0.tgz", - "integrity": "sha512-CzFnRRXhzWIdItT3OmF8SQfWyahHhjq3HwcMNCNLn+N7klOOqPjMeG/4JSu77D7ypZdGvSzvkrbyeTMizz2VrA==", - "dependencies": { - "inline-style-parser": "0.1.1" + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/stylehacks": { @@ -16989,14 +28176,6 @@ "node": ">=4" } }, - "node_modules/to-readable-stream": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/to-readable-stream/-/to-readable-stream-1.0.0.tgz", - "integrity": "sha512-Iq25XBt6zD5npPhlLVXGFN3/gyR2/qODcKNNyTMd4vbm39HUaOiAM4PMq0eMVC/Tkxz+Zjdsc55g9yyz+Yq00Q==", - "engines": { - "node": ">=6" - } - }, "node_modules/to-regex-range": { "version": "5.0.1", "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", @@ -17029,12 +28208,6 @@ "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz", "integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==" }, - "node_modules/trim": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/trim/-/trim-0.0.1.tgz", - "integrity": "sha512-YzQV+TZg4AxpKxaTHK3c3D+kRDCGVEE7LemdlQZoQXn0iennk10RsIoY6ikzAqJTc9Xjl9C1/waHom/J86ziAQ==", - "deprecated": "Use String.prototype.trim() instead" - }, "node_modules/trim-lines": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/trim-lines/-/trim-lines-3.0.1.tgz", @@ -17044,22 +28217,21 @@ "url": "https://github.com/sponsors/wooorm" } }, - "node_modules/trim-trailing-lines": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/trim-trailing-lines/-/trim-trailing-lines-1.1.4.tgz", - "integrity": "sha512-rjUWSqnfTNrjbB9NQWfPMH/xRK1deHeGsHoVfpxJ++XeYXE0d6B1En37AHfw3jtfTU7dzMzZL2jjpe8Qb5gLIQ==", + "node_modules/trough": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/trough/-/trough-2.2.0.tgz", + "integrity": "sha512-tmMpK00BjZiUyVyvrBK7knerNgmgvcV/KLVyuma/SC+TQN167GrMRciANTz09+k3zW8L8t60jWO1GpfkZdjTaw==", "funding": { "type": "github", "url": "https://github.com/sponsors/wooorm" } }, - "node_modules/trough": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/trough/-/trough-1.0.5.tgz", - "integrity": "sha512-rvuRbTarPXmMb79SmzEp8aqXNKcK+y0XaB298IXueQ8I2PsrATcPBCSPyK/dDNa2iWOhKlfNnOjdAOTBU/nkFA==", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" + "node_modules/ts-dedent": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/ts-dedent/-/ts-dedent-2.2.0.tgz", + "integrity": "sha512-q5W7tVM71e2xjHZTlgfTDoPF/SmqKG5hddq9SzR49CH2hayqRKJtQ4mtRlSxKaJlR/+9rEM+mnBHf7I2/BQcpQ==", + "engines": { + "node": ">=6.10" } }, "node_modules/ts-interface-checker": { @@ -17108,42 +28280,6 @@ "is-typedarray": "^1.0.0" } }, - "node_modules/ua-parser-js": { - "version": "1.0.37", - "resolved": "https://registry.npmjs.org/ua-parser-js/-/ua-parser-js-1.0.37.tgz", - "integrity": "sha512-bhTyI94tZofjo+Dn8SN6Zv8nBDvyXTymAdM3LDI/0IboIUwTu1rEhW7v2TfiVsoYWgkQ4kOVqnI8APUFbIQIFQ==", - "dev": true, - "funding": [ - { - "type": "opencollective", - "url": "https://opencollective.com/ua-parser-js" - }, - { - "type": "paypal", - "url": "https://paypal.me/faisalman" - }, - { - "type": "github", - "url": "https://github.com/sponsors/faisalman" - } - ], - "engines": { - "node": "*" - } - }, - "node_modules/unherit": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/unherit/-/unherit-1.1.3.tgz", - "integrity": "sha512-Ft16BJcnapDKp0+J/rqFC3Rrk6Y/Ng4nzsC028k2jdDII/rdZ7Wd3pPT/6+vIIxRagwRc9K0IUX0Ra4fKvw+WQ==", - "dependencies": { - "inherits": "^2.0.0", - "xtend": "^4.0.0" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" - } - }, "node_modules/unicode-canonical-property-names-ecmascript": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-2.0.0.tgz", @@ -17152,6 +28288,14 @@ "node": ">=4" } }, + "node_modules/unicode-emoji-modifier-base": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/unicode-emoji-modifier-base/-/unicode-emoji-modifier-base-1.0.0.tgz", + "integrity": "sha512-yLSH4py7oFH3oG/9K+XWrz1pSi3dfUrWEnInbxMfArOfc1+33BlGPQtLsOYwvdMy11AwUBetYuaRxSPqgkq+8g==", + "engines": { + "node": ">=4" + } + }, "node_modules/unicode-match-property-ecmascript": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/unicode-match-property-ecmascript/-/unicode-match-property-ecmascript-2.0.0.tgz", @@ -17181,121 +28325,129 @@ } }, "node_modules/unified": { - "version": "9.2.2", - "resolved": "https://registry.npmjs.org/unified/-/unified-9.2.2.tgz", - "integrity": "sha512-Sg7j110mtefBD+qunSLO1lqOEKdrwBFBrR6Qd8f4uwkhWNlbkaqwHse6e7QvD3AP/MNoJdEDLaf8OxYyoWgorQ==", + "version": "11.0.5", + "resolved": "https://registry.npmjs.org/unified/-/unified-11.0.5.tgz", + "integrity": "sha512-xKvGhPWw3k84Qjh8bI3ZeJjqnyadK+GEFtazSfZv/rKeTkTjOJho6mFqh2SM96iIcZokxiOpg78GazTSg8+KHA==", "dependencies": { - "bail": "^1.0.0", + "@types/unist": "^3.0.0", + "bail": "^2.0.0", + "devlop": "^1.0.0", "extend": "^3.0.0", - "is-buffer": "^2.0.0", - "is-plain-obj": "^2.0.0", - "trough": "^1.0.0", - "vfile": "^4.0.0" + "is-plain-obj": "^4.0.0", + "trough": "^2.0.0", + "vfile": "^6.0.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/unified" } }, + "node_modules/unified/node_modules/@types/unist": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/@types/unist/-/unist-3.0.2.tgz", + "integrity": "sha512-dqId9J8K/vGi5Zr7oo212BGii5m3q5Hxlkwy3WpYuKPklmBEvsbMYYyLxAQpSffdLl/gdW0XUpKWFvYmyoWCoQ==" + }, "node_modules/unified/node_modules/is-plain-obj": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-2.1.0.tgz", - "integrity": "sha512-YWnfyRwxL/+SsrWYfOpUtz5b3YD+nyfkHvjbcanzk8zgyO4ASD67uVMRt8k5bM4lLMDnXfriRhOpemw+NfT1eA==", + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-4.1.0.tgz", + "integrity": "sha512-+Pgi+vMuUNkJyExiMBt5IlFoMyKnr5zhJ4Uspz58WOhBF5QoIZkFyNHIbBAtHwzVAgk5RtndVNsDRN61/mmDqg==", "engines": { - "node": ">=8" + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/unique-string": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/unique-string/-/unique-string-2.0.0.tgz", - "integrity": "sha512-uNaeirEPvpZWSgzwsPGtU2zVSTrn/8L5q/IexZmH0eH6SA73CmAA5U4GwORTxQAZs95TAXLNqeLoPPNO5gZfWg==", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/unique-string/-/unique-string-3.0.0.tgz", + "integrity": "sha512-VGXBUVwxKMBUznyffQweQABPRRW1vHZAbadFZud4pLFAqRGvv/96vafgjWFqzourzr8YonlQiPgH0YCJfawoGQ==", "dependencies": { - "crypto-random-string": "^2.0.0" + "crypto-random-string": "^4.0.0" }, "engines": { - "node": ">=8" - } - }, - "node_modules/unist-builder": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/unist-builder/-/unist-builder-2.0.3.tgz", - "integrity": "sha512-f98yt5pnlMWlzP539tPc4grGMsFaQQlP/vM396b00jngsiINumNmsY8rkXjfoi1c6QaM8nQ3vaGDuoKWbe/1Uw==", + "node": ">=12" + }, "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/unist-util-generated": { - "version": "1.1.6", - "resolved": "https://registry.npmjs.org/unist-util-generated/-/unist-util-generated-1.1.6.tgz", - "integrity": "sha512-cln2Mm1/CZzN5ttGK7vkoGw+RZ8VcUH6BtGbq98DDtRGquAAOXig1mrBQYelOwMXYS8rK+vZDyyojSjp7JX+Lg==", - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" + "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/unist-util-is": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/unist-util-is/-/unist-util-is-4.1.0.tgz", - "integrity": "sha512-ZOQSsnce92GrxSqlnEEseX0gi7GH9zTJZ0p9dtu87WRb/37mMPO2Ilx1s/t9vBHrFhbgweUwb+t7cIn5dxPhZg==", + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/unist-util-is/-/unist-util-is-6.0.0.tgz", + "integrity": "sha512-2qCTHimwdxLfz+YzdGfkqNlH0tLi9xjTnHddPmJwtIG9MGsdbutfTc4P+haPD7l7Cjxf/WZj+we5qfVPvvxfYw==", + "dependencies": { + "@types/unist": "^3.0.0" + }, "funding": { "type": "opencollective", "url": "https://opencollective.com/unified" } }, + "node_modules/unist-util-is/node_modules/@types/unist": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/@types/unist/-/unist-3.0.2.tgz", + "integrity": "sha512-dqId9J8K/vGi5Zr7oo212BGii5m3q5Hxlkwy3WpYuKPklmBEvsbMYYyLxAQpSffdLl/gdW0XUpKWFvYmyoWCoQ==" + }, "node_modules/unist-util-position": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/unist-util-position/-/unist-util-position-3.1.0.tgz", - "integrity": "sha512-w+PkwCbYSFw8vpgWD0v7zRCl1FpY3fjDSQ3/N/wNd9Ffa4gPi8+4keqt99N3XW6F99t/mUzp2xAhNmfKWp95QA==", - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/unist-util-remove": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/unist-util-remove/-/unist-util-remove-2.1.0.tgz", - "integrity": "sha512-J8NYPyBm4baYLdCbjmf1bhPu45Cr1MWTm77qd9istEkzWpnN6O9tMsEbB2JhNnBCqGENRqEWomQ+He6au0B27Q==", + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/unist-util-position/-/unist-util-position-5.0.0.tgz", + "integrity": "sha512-fucsC7HjXvkB5R3kTCO7kUjRdrS0BJt3M/FPxmHMBOm8JQi2BsHAHFsy27E0EolP8rp0NzXsJ+jNPyDWvOJZPA==", "dependencies": { - "unist-util-is": "^4.0.0" + "@types/unist": "^3.0.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/unified" } }, - "node_modules/unist-util-remove-position": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/unist-util-remove-position/-/unist-util-remove-position-2.0.1.tgz", - "integrity": "sha512-fDZsLYIe2uT+oGFnuZmy73K6ZxOPG/Qcm+w7jbEjaFcJgbQ6cqjs/eSPzXhsmGpAsWPkqZM9pYjww5QTn3LHMA==", + "node_modules/unist-util-position-from-estree": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/unist-util-position-from-estree/-/unist-util-position-from-estree-2.0.0.tgz", + "integrity": "sha512-KaFVRjoqLyF6YXCbVLNad/eS4+OfPQQn2yOd7zF/h5T/CSL2v8NpN6a5TPvtbXthAGw5nG+PuTtq+DdIZr+cRQ==", "dependencies": { - "unist-util-visit": "^2.0.0" + "@types/unist": "^3.0.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/unified" } }, + "node_modules/unist-util-position-from-estree/node_modules/@types/unist": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/@types/unist/-/unist-3.0.2.tgz", + "integrity": "sha512-dqId9J8K/vGi5Zr7oo212BGii5m3q5Hxlkwy3WpYuKPklmBEvsbMYYyLxAQpSffdLl/gdW0XUpKWFvYmyoWCoQ==" + }, + "node_modules/unist-util-position/node_modules/@types/unist": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/@types/unist/-/unist-3.0.2.tgz", + "integrity": "sha512-dqId9J8K/vGi5Zr7oo212BGii5m3q5Hxlkwy3WpYuKPklmBEvsbMYYyLxAQpSffdLl/gdW0XUpKWFvYmyoWCoQ==" + }, "node_modules/unist-util-stringify-position": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-2.0.3.tgz", - "integrity": "sha512-3faScn5I+hy9VleOq/qNbAd6pAx7iH5jYBMS9I1HgQVijz/4mv5Bvw5iw1sC/90CODiKo81G/ps8AJrISn687g==", + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-4.0.0.tgz", + "integrity": "sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ==", "dependencies": { - "@types/unist": "^2.0.2" + "@types/unist": "^3.0.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/unified" } }, + "node_modules/unist-util-stringify-position/node_modules/@types/unist": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/@types/unist/-/unist-3.0.2.tgz", + "integrity": "sha512-dqId9J8K/vGi5Zr7oo212BGii5m3q5Hxlkwy3WpYuKPklmBEvsbMYYyLxAQpSffdLl/gdW0XUpKWFvYmyoWCoQ==" + }, "node_modules/unist-util-visit": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/unist-util-visit/-/unist-util-visit-2.0.3.tgz", - "integrity": "sha512-iJ4/RczbJMkD0712mGktuGpm/U4By4FfDonL7N/9tATGIF4imikjOuagyMY53tnZq3NP6BcmlrHhEKAfGWjh7Q==", + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/unist-util-visit/-/unist-util-visit-5.0.0.tgz", + "integrity": "sha512-MR04uvD+07cwl/yhVuVWAtw+3GOR/knlL55Nd/wAdblk27GCVt3lqpTivy/tkJcZoNPzTwS1Y+KMojlLDhoTzg==", "dependencies": { - "@types/unist": "^2.0.0", - "unist-util-is": "^4.0.0", - "unist-util-visit-parents": "^3.0.0" + "@types/unist": "^3.0.0", + "unist-util-is": "^6.0.0", + "unist-util-visit-parents": "^6.0.0" }, "funding": { "type": "opencollective", @@ -17303,18 +28455,28 @@ } }, "node_modules/unist-util-visit-parents": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/unist-util-visit-parents/-/unist-util-visit-parents-3.1.1.tgz", - "integrity": "sha512-1KROIZWo6bcMrZEwiH2UrXDyalAa0uqzWCxCJj6lPOvTve2WkfgCytoDTPaMnodXh1WrXOq0haVYHj99ynJlsg==", + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/unist-util-visit-parents/-/unist-util-visit-parents-6.0.1.tgz", + "integrity": "sha512-L/PqWzfTP9lzzEa6CKs0k2nARxTdZduw3zyh8d2NVBnsyvHjSX4TWse388YrrQKbvI8w20fGjGlhgT96WwKykw==", "dependencies": { - "@types/unist": "^2.0.0", - "unist-util-is": "^4.0.0" + "@types/unist": "^3.0.0", + "unist-util-is": "^6.0.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/unified" } }, + "node_modules/unist-util-visit-parents/node_modules/@types/unist": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/@types/unist/-/unist-3.0.2.tgz", + "integrity": "sha512-dqId9J8K/vGi5Zr7oo212BGii5m3q5Hxlkwy3WpYuKPklmBEvsbMYYyLxAQpSffdLl/gdW0XUpKWFvYmyoWCoQ==" + }, + "node_modules/unist-util-visit/node_modules/@types/unist": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/@types/unist/-/unist-3.0.2.tgz", + "integrity": "sha512-dqId9J8K/vGi5Zr7oo212BGii5m3q5Hxlkwy3WpYuKPklmBEvsbMYYyLxAQpSffdLl/gdW0XUpKWFvYmyoWCoQ==" + }, "node_modules/universalify": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.1.tgz", @@ -17332,9 +28494,9 @@ } }, "node_modules/update-browserslist-db": { - "version": "1.0.13", - "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.13.tgz", - "integrity": "sha512-xebP81SNcPuNpPP3uzeW1NYXxI3rxyJzF3pD6sH4jE7o/IX+WtSpwnVU+qIsDPyk0d3hmFQ7mjqc6AtV604hbg==", + "version": "1.0.16", + "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.16.tgz", + "integrity": "sha512-KVbTxlBYlckhF5wgfyZXTWnMn7MMZjMu9XG8bPlliUOP9ThaF4QnhP8qrjrH7DRzHfSk0oQv1wToW+iA5GajEQ==", "funding": [ { "type": "opencollective", @@ -17350,8 +28512,8 @@ } ], "dependencies": { - "escalade": "^3.1.1", - "picocolors": "^1.0.0" + "escalade": "^3.1.2", + "picocolors": "^1.0.1" }, "bin": { "update-browserslist-db": "cli.js" @@ -17361,118 +28523,73 @@ } }, "node_modules/update-notifier": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/update-notifier/-/update-notifier-5.1.0.tgz", - "integrity": "sha512-ItnICHbeMh9GqUy31hFPrD1kcuZ3rpxDZbf4KUDavXwS0bW5m7SLbDQpGX3UYr072cbrF5hFUs3r5tUsPwjfHw==", + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/update-notifier/-/update-notifier-6.0.2.tgz", + "integrity": "sha512-EDxhTEVPZZRLWYcJ4ZXjGFN0oP7qYvbXWzEgRm/Yql4dHX5wDbvh89YHP6PK1lzZJYrMtXUuZZz8XGK+U6U1og==", "dependencies": { - "boxen": "^5.0.0", - "chalk": "^4.1.0", - "configstore": "^5.0.1", - "has-yarn": "^2.1.0", - "import-lazy": "^2.1.0", - "is-ci": "^2.0.0", + "boxen": "^7.0.0", + "chalk": "^5.0.1", + "configstore": "^6.0.0", + "has-yarn": "^3.0.0", + "import-lazy": "^4.0.0", + "is-ci": "^3.0.1", "is-installed-globally": "^0.4.0", - "is-npm": "^5.0.0", - "is-yarn-global": "^0.3.0", - "latest-version": "^5.1.0", - "pupa": "^2.1.1", - "semver": "^7.3.4", - "semver-diff": "^3.1.1", - "xdg-basedir": "^4.0.0" + "is-npm": "^6.0.0", + "is-yarn-global": "^0.4.0", + "latest-version": "^7.0.0", + "pupa": "^3.1.0", + "semver": "^7.3.7", + "semver-diff": "^4.0.0", + "xdg-basedir": "^5.1.0" }, "engines": { - "node": ">=10" + "node": ">=14.16" }, "funding": { "url": "https://github.com/yeoman/update-notifier?sponsor=1" } }, "node_modules/update-notifier/node_modules/boxen": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/boxen/-/boxen-5.1.2.tgz", - "integrity": "sha512-9gYgQKXx+1nP8mP7CzFyaUARhg7D3n1dF/FnErWmu9l6JvGpNUN278h0aSb+QjoiKSWG+iZ3uHrcqk0qrY9RQQ==", + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/boxen/-/boxen-7.1.1.tgz", + "integrity": "sha512-2hCgjEmP8YLWQ130n2FerGv7rYpfBmnmp9Uy2Le1vge6X3gZIfSmEzP5QTDElFxcvVcXlEn8Aq6MU/PZygIOog==", "dependencies": { - "ansi-align": "^3.0.0", - "camelcase": "^6.2.0", - "chalk": "^4.1.0", - "cli-boxes": "^2.2.1", - "string-width": "^4.2.2", - "type-fest": "^0.20.2", - "widest-line": "^3.1.0", - "wrap-ansi": "^7.0.0" + "ansi-align": "^3.0.1", + "camelcase": "^7.0.1", + "chalk": "^5.2.0", + "cli-boxes": "^3.0.0", + "string-width": "^5.1.2", + "type-fest": "^2.13.0", + "widest-line": "^4.0.1", + "wrap-ansi": "^8.1.0" }, "engines": { - "node": ">=10" + "node": ">=14.16" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/update-notifier/node_modules/cli-boxes": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/cli-boxes/-/cli-boxes-2.2.1.tgz", - "integrity": "sha512-y4coMcylgSCdVinjiDBuR8PCC2bLjyGTwEmPb9NHR/QaNU6EUOXcTY/s6VjGMD6ENSEaeQYHCY0GNGS5jfMwPw==", + "node_modules/update-notifier/node_modules/camelcase": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-7.0.1.tgz", + "integrity": "sha512-xlx1yCK2Oc1APsPXDL2LdlNP6+uu8OCDdhOBSVT279M/S+y75O30C2VuD8T2ogdePBBl7PfPF4504tnLgX3zfw==", "engines": { - "node": ">=6" + "node": ">=14.16" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/update-notifier/node_modules/emoji-regex": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", - "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==" - }, - "node_modules/update-notifier/node_modules/string-width": { - "version": "4.2.3", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", - "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", - "dependencies": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.1" - }, + "node_modules/update-notifier/node_modules/chalk": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-5.3.0.tgz", + "integrity": "sha512-dLitG79d+GV1Nb/VYcCDFivJeK1hiukt9QjRNVOsUtTy1rR1YJsmpGGTZ3qJos+uw7WmWF4wUwBd9jxjocFC2w==", "engines": { - "node": ">=8" - } - }, - "node_modules/update-notifier/node_modules/type-fest": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", - "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", - "engines": { - "node": ">=10" + "node": "^12.17.0 || ^14.13 || >=16.0.0" }, "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/update-notifier/node_modules/widest-line": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/widest-line/-/widest-line-3.1.0.tgz", - "integrity": "sha512-NsmoXalsWVDMGupxZ5R08ka9flZjjiLvHVAWYOKtiKM8ujtZWr9cRffak+uSE48+Ob8ObalXpwyeUiyDD6QFgg==", - "dependencies": { - "string-width": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/update-notifier/node_modules/wrap-ansi": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", - "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", - "dependencies": { - "ansi-styles": "^4.0.0", - "string-width": "^4.1.0", - "strip-ansi": "^6.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + "url": "https://github.com/chalk/chalk?sponsor=1" } }, "node_modules/uri-js": { @@ -17563,31 +28680,11 @@ "url": "https://opencollective.com/webpack" } }, - "node_modules/url-parse-lax": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/url-parse-lax/-/url-parse-lax-3.0.0.tgz", - "integrity": "sha512-NjFKA0DidqPa5ciFcSrXnAltTtzz84ogy+NebPvfEgAck0+TNg4UJ4IN+fB7zRZfbgUf0syOo9MDxFkDSMuFaQ==", - "dependencies": { - "prepend-http": "^2.0.0" - }, - "engines": { - "node": ">=4" - } - }, "node_modules/url/node_modules/punycode": { "version": "1.4.1", "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz", "integrity": "sha512-jmYNElW7yvO7TV33CjSmvSiE2yco3bV2czu/OzDKdMNVZQWfxCblURLhf+47syQRBntjfLdd/H0egrzIG+oaFQ==" }, - "node_modules/use-composed-ref": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/use-composed-ref/-/use-composed-ref-1.3.0.tgz", - "integrity": "sha512-GLMG0Jc/jiKov/3Ulid1wbv3r54K9HlMW29IWcDFPEqFkSO2nS0MuefWgMJpeHQ9YJeXDL3ZUF+P3jdXlZX/cQ==", - "dev": true, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0 || ^18.0.0" - } - }, "node_modules/use-editable": { "version": "2.3.3", "resolved": "https://registry.npmjs.org/use-editable/-/use-editable-2.3.3.tgz", @@ -17596,45 +28693,6 @@ "react": ">= 16.8.0" } }, - "node_modules/use-isomorphic-layout-effect": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/use-isomorphic-layout-effect/-/use-isomorphic-layout-effect-1.1.2.tgz", - "integrity": "sha512-49L8yCO3iGT/ZF9QttjwLF/ZD9Iwto5LnH5LmEdk/6cFmXddqi2ulF0edxTwjj+7mqvpVVGQWvbXZdn32wRSHA==", - "dev": true, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0 || ^18.0.0" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - } - } - }, - "node_modules/use-latest": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/use-latest/-/use-latest-1.2.1.tgz", - "integrity": "sha512-xA+AVm/Wlg3e2P/JiItTziwS7FK92LWrDB0p+hgXloIMuVCeJJ8v6f0eeHyPZaJrM+usM1FkFfbNCrJGs8A/zw==", - "dev": true, - "dependencies": { - "use-isomorphic-layout-effect": "^1.1.1" - }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0 || ^18.0.0" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - } - } - }, - "node_modules/use-sync-external-store": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/use-sync-external-store/-/use-sync-external-store-1.2.0.tgz", - "integrity": "sha512-eEgnFxGQ1Ife9bzYs6VLi8/4X6CObHMw9Qr9tPY43iKwsPw8xE8+EFsf/2cFZ5S3esXgpWgtSCtLNS41F+sKPA==", - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0 || ^18.0.0" - } - }, "node_modules/util": { "version": "0.12.5", "resolved": "https://registry.npmjs.org/util/-/util-0.12.5.tgz", @@ -17752,14 +28810,13 @@ } }, "node_modules/vfile": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/vfile/-/vfile-4.2.1.tgz", - "integrity": "sha512-O6AE4OskCG5S1emQ/4gl8zK586RqA3srz3nfK/Viy0UPToBc5Trp9BVFb1u0CjsKrAWwnpr4ifM/KBXPWwJbCA==", + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/vfile/-/vfile-6.0.1.tgz", + "integrity": "sha512-1bYqc7pt6NIADBJ98UiG0Bn/CHIVOoZ/IyEkqIruLg0mE1BKzkOXY2D6CSqQIcKqgadppE5lrxgWXJmXd7zZJw==", "dependencies": { - "@types/unist": "^2.0.0", - "is-buffer": "^2.0.0", - "unist-util-stringify-position": "^2.0.0", - "vfile-message": "^2.0.0" + "@types/unist": "^3.0.0", + "unist-util-stringify-position": "^4.0.0", + "vfile-message": "^4.0.0" }, "funding": { "type": "opencollective", @@ -17767,50 +28824,51 @@ } }, "node_modules/vfile-location": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/vfile-location/-/vfile-location-3.2.0.tgz", - "integrity": "sha512-aLEIZKv/oxuCDZ8lkJGhuhztf/BW4M+iHdCwglA/eWc+vtuRFJj8EtgceYFX4LRjOhCAAiNHsKGssC6onJ+jbA==", - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/vfile-message": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-2.0.4.tgz", - "integrity": "sha512-DjssxRGkMvifUOJre00juHoP9DPWuzjxKuMDrhNbk2TdaYYBNMStsNhEOt3idrtI12VQYM/1+iM0KOzXi4pxwQ==", + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/vfile-location/-/vfile-location-5.0.2.tgz", + "integrity": "sha512-NXPYyxyBSH7zB5U6+3uDdd6Nybz6o6/od9rk8bp9H8GR3L+cm/fC0uUTbqBmUTnMCUDslAGBOIKNfvvb+gGlDg==", "dependencies": { - "@types/unist": "^2.0.0", - "unist-util-stringify-position": "^2.0.0" + "@types/unist": "^3.0.0", + "vfile": "^6.0.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/unified" } }, + "node_modules/vfile-location/node_modules/@types/unist": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/@types/unist/-/unist-3.0.2.tgz", + "integrity": "sha512-dqId9J8K/vGi5Zr7oo212BGii5m3q5Hxlkwy3WpYuKPklmBEvsbMYYyLxAQpSffdLl/gdW0XUpKWFvYmyoWCoQ==" + }, + "node_modules/vfile-message": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-4.0.2.tgz", + "integrity": "sha512-jRDZ1IMLttGj41KcZvlrYAaI3CfqpLpfpf+Mfig13viT6NKvRzWZ+lXz0Y5D60w6uJIBAOGq9mSHf0gktF0duw==", + "dependencies": { + "@types/unist": "^3.0.0", + "unist-util-stringify-position": "^4.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/vfile-message/node_modules/@types/unist": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/@types/unist/-/unist-3.0.2.tgz", + "integrity": "sha512-dqId9J8K/vGi5Zr7oo212BGii5m3q5Hxlkwy3WpYuKPklmBEvsbMYYyLxAQpSffdLl/gdW0XUpKWFvYmyoWCoQ==" + }, + "node_modules/vfile/node_modules/@types/unist": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/@types/unist/-/unist-3.0.2.tgz", + "integrity": "sha512-dqId9J8K/vGi5Zr7oo212BGii5m3q5Hxlkwy3WpYuKPklmBEvsbMYYyLxAQpSffdLl/gdW0XUpKWFvYmyoWCoQ==" + }, "node_modules/vm-browserify": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/vm-browserify/-/vm-browserify-1.1.2.tgz", "integrity": "sha512-2ham8XPWTONajOR0ohOKOHXkm3+gaBmGut3SRuu75xLd/RRaY6vqgh8NBYYk7+RW3u5AtzPQZG8F10LHkl0lAQ==" }, - "node_modules/wait-on": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/wait-on/-/wait-on-6.0.1.tgz", - "integrity": "sha512-zht+KASY3usTY5u2LgaNqn/Cd8MukxLGjdcZxT2ns5QzDmTFc4XoWBgC+C/na+sMRZTuVygQoMYwdcVjHnYIVw==", - "dependencies": { - "axios": "^0.25.0", - "joi": "^17.6.0", - "lodash": "^4.17.21", - "minimist": "^1.2.5", - "rxjs": "^7.5.4" - }, - "bin": { - "wait-on": "bin/wait-on" - }, - "engines": { - "node": ">=10.0.0" - } - }, "node_modules/warning": { "version": "4.0.3", "resolved": "https://registry.npmjs.org/warning/-/warning-4.0.3.tgz", @@ -17840,14 +28898,19 @@ } }, "node_modules/web-namespaces": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/web-namespaces/-/web-namespaces-1.1.4.tgz", - "integrity": "sha512-wYxSGajtmoP4WxfejAPIr4l0fVh+jeMXZb08wNc0tMg6xsfZXj3cECqIK0G7ZAqUq0PP8WlMDtaOGVBTAWztNw==", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/web-namespaces/-/web-namespaces-2.0.1.tgz", + "integrity": "sha512-bKr1DkiNa2krS7qxNtdrtHAmzuYGFQLiQ13TsorsdT6ULTkPLKuu5+GsFpDlg6JFjUTwX2DyhMPG2be8uPrqsQ==", "funding": { "type": "github", "url": "https://github.com/sponsors/wooorm" } }, + "node_modules/web-worker": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/web-worker/-/web-worker-1.3.0.tgz", + "integrity": "sha512-BSR9wyRsy/KOValMgd5kMyr3JzpdeoR9KVId8u5GVlTTAtNChlsE4yTxeY7zMdNSyOmoKBv8NH2qeRY9Tg+IaA==" + }, "node_modules/webidl-conversions": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz", @@ -17955,32 +29018,6 @@ "webpack": "^4.0.0 || ^5.0.0" } }, - "node_modules/webpack-dev-middleware/node_modules/ajv": { - "version": "8.12.0", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.12.0.tgz", - "integrity": "sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA==", - "dependencies": { - "fast-deep-equal": "^3.1.1", - "json-schema-traverse": "^1.0.0", - "require-from-string": "^2.0.2", - "uri-js": "^4.2.2" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/epoberezkin" - } - }, - "node_modules/webpack-dev-middleware/node_modules/ajv-keywords": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-5.1.0.tgz", - "integrity": "sha512-YCS/JNFAUyr5vAuhk1DWm1CBxRHW9LbJ2ozWeemrIqpbsqKjHVxYPyi5GC0rjZIT5JxJ3virVTS8wk4i/Z+krw==", - "dependencies": { - "fast-deep-equal": "^3.1.3" - }, - "peerDependencies": { - "ajv": "^8.8.2" - } - }, "node_modules/webpack-dev-middleware/node_modules/colorette": { "version": "2.0.20", "resolved": "https://registry.npmjs.org/colorette/-/colorette-2.0.20.tgz", @@ -17994,24 +29031,6 @@ "node": ">= 0.6" } }, - "node_modules/webpack-dev-middleware/node_modules/schema-utils": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-4.2.0.tgz", - "integrity": "sha512-L0jRsrPpjdckP3oPug3/VxNKt2trR8TcabrM6FOAAlvC/9Phcmm+cuAgTlxBqdBR1WJx7Naj9WHw+aOmheSVbw==", - "dependencies": { - "@types/json-schema": "^7.0.9", - "ajv": "^8.9.0", - "ajv-formats": "^2.1.1", - "ajv-keywords": "^5.1.0" - }, - "engines": { - "node": ">= 12.13.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" - } - }, "node_modules/webpack-dev-server": { "version": "4.15.1", "resolved": "https://registry.npmjs.org/webpack-dev-server/-/webpack-dev-server-4.15.1.tgz", @@ -18070,55 +29089,11 @@ } } }, - "node_modules/webpack-dev-server/node_modules/ajv": { - "version": "8.12.0", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.12.0.tgz", - "integrity": "sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA==", - "dependencies": { - "fast-deep-equal": "^3.1.1", - "json-schema-traverse": "^1.0.0", - "require-from-string": "^2.0.2", - "uri-js": "^4.2.2" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/epoberezkin" - } - }, - "node_modules/webpack-dev-server/node_modules/ajv-keywords": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-5.1.0.tgz", - "integrity": "sha512-YCS/JNFAUyr5vAuhk1DWm1CBxRHW9LbJ2ozWeemrIqpbsqKjHVxYPyi5GC0rjZIT5JxJ3virVTS8wk4i/Z+krw==", - "dependencies": { - "fast-deep-equal": "^3.1.3" - }, - "peerDependencies": { - "ajv": "^8.8.2" - } - }, "node_modules/webpack-dev-server/node_modules/colorette": { "version": "2.0.20", "resolved": "https://registry.npmjs.org/colorette/-/colorette-2.0.20.tgz", "integrity": "sha512-IfEDxwoWIjkeXL1eXcDiow4UbKjhLdq6/EuSVR9GMN7KVH3r9gQ83e73hsz1Nd1T3ijd5xv1wcWRYO+D6kCI2w==" }, - "node_modules/webpack-dev-server/node_modules/schema-utils": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-4.2.0.tgz", - "integrity": "sha512-L0jRsrPpjdckP3oPug3/VxNKt2trR8TcabrM6FOAAlvC/9Phcmm+cuAgTlxBqdBR1WJx7Naj9WHw+aOmheSVbw==", - "dependencies": { - "@types/json-schema": "^7.0.9", - "ajv": "^8.9.0", - "ajv-formats": "^2.1.1", - "ajv-keywords": "^5.1.0" - }, - "engines": { - "node": ">= 12.13.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" - } - }, "node_modules/webpack-dev-server/node_modules/ws": { "version": "8.14.2", "resolved": "https://registry.npmjs.org/ws/-/ws-8.14.2.tgz", @@ -18397,11 +29372,14 @@ } }, "node_modules/xdg-basedir": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/xdg-basedir/-/xdg-basedir-4.0.0.tgz", - "integrity": "sha512-PSNhEJDejZYV7h50BohL09Er9VaIefr2LMAf3OEmpCkjOi34eYyQYAXUTjEQtZJTKcF0E2UKTh+osDLsgNim9Q==", + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/xdg-basedir/-/xdg-basedir-5.1.0.tgz", + "integrity": "sha512-GCPAHLvrIH13+c0SuacwvRYj2SxJXQ4kaVTT5xgL3kPrz56XxkF21IGhjSE1+W0aw7gpBWRGXLCPnPby6lSpmQ==", "engines": { - "node": ">=8" + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/xml-formatter": { @@ -18536,9 +29514,9 @@ } }, "node_modules/zwitch": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/zwitch/-/zwitch-1.0.5.tgz", - "integrity": "sha512-V50KMwwzqJV0NpZIZFwfOD5/lyny3WlSzRiXgA0G7VUnRlqttta1L6UQIHzd6EuBY/cHGfwTIck7w1yH6Q5zUw==", + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/zwitch/-/zwitch-2.0.4.tgz", + "integrity": "sha512-bXE4cR/kVZhKZX/RjPEflHaKVhUVl85noU3v6b8apfQEc1x4A+zBxjZ4lN8LqGd6WZ3dl98pY4o717VFmoPp+A==", "funding": { "type": "github", "url": "https://github.com/sponsors/wooorm" diff --git a/package.json b/package.json index 7893673af..f796dcaa9 100644 --- a/package.json +++ b/package.json @@ -21,24 +21,24 @@ "rebuild-docs": "npm run clean-api-docs-all && npm run gen-api-docs-all" }, "dependencies": { - "@docusaurus/plugin-client-redirects": "2.4.3", - "@docusaurus/plugin-content-docs": "^2.4.3", - "@docusaurus/plugin-google-tag-manager": "^2.4.3", - "@docusaurus/theme-mermaid": "2.4.3", + "@docusaurus/plugin-client-redirects": "3.0.1", + "@docusaurus/plugin-google-tag-manager": "3.0.1", + "@docusaurus/theme-common": "3.0.1", + "@docusaurus/theme-mermaid": "3.0.1", "@fortawesome/fontawesome-svg-core": "^6.5.1", "@fortawesome/pro-duotone-svg-icons": "^6.5.1", "@fortawesome/pro-solid-svg-icons": "^6.5.1", "@fortawesome/react-fontawesome": "^0.2.0", - "@mdx-js/react": "^1.6.22", + "@mdx-js/react": "^3.0.0", "@typeform/embed-react": "^1.21.0", "autoprefixer": "^10.4.13", "classnames": "^2.3.2", "clsx": "^1.1.1", - "docusaurus-plugin-openapi-docs": "^2.0.2", - "docusaurus-theme-openapi-docs": "^2.0.2", + "docusaurus-plugin-openapi-docs": "^3.0.0-beta.10", + "docusaurus-theme-openapi-docs": "^3.0.0-beta.10", "docusaurus2-dotenv": "^1.4.0", "ldrs": "^1.0.1", - "prism-react-renderer": "^1.3.1", + "prism-react-renderer": "^2.1.0", "react": "^18.2.0", "react-dom": "^18.2.0", "react-markdown": "^8.0.7", @@ -47,12 +47,13 @@ "esbuild-loader": "^2.20.0" }, "overrides": { - "mermaid": "9.1.7" + "mermaid": "10.4.0" }, "devDependencies": { - "@docusaurus/core": "2.4.3", - "@docusaurus/module-type-aliases": "2.4.3", - "@docusaurus/preset-classic": "2.4.3", + "@docusaurus/core": "3.0.1", + "@docusaurus/types": "3.0.1", + "@docusaurus/module-type-aliases": "3.0.0", + "@docusaurus/preset-classic": "3.0.1", "husky": "^8.0.2", "prettier": "2.8.0", "pretty-quick": "^3.1.3" @@ -70,7 +71,7 @@ ] }, "engines": { - "node": ">=16.14" + "node": ">=18.0" }, "husky": { "hooks": { diff --git a/sidebars.js b/sidebars.js index 1d97501de..e54bad64c 100644 --- a/sidebars.js +++ b/sidebars.js @@ -69,7 +69,7 @@ const sidebars = { slug: '/api/v3', }, // @ts-ignore - items: require('./docs/api/v3/sidebar.js'), + items: require('./docs/api/v3/sidebar.ts'), }, { type: 'category', @@ -82,7 +82,7 @@ const sidebars = { slug: '/api/beta', }, // @ts-ignore - items: require('./docs/api/beta/sidebar.js'), + items: require('./docs/api/beta/sidebar.ts'), }, ], }, @@ -121,7 +121,7 @@ const sidebars = { slug: '/api/nerm/v1', }, // @ts-ignore - items: require('./docs/api/nerm/v1/sidebar.js'), + items: require('./docs/api/nerm/v1/sidebar.ts'), }, ], }, @@ -227,7 +227,7 @@ const sidebars = { slug: '/api/iiq', }, // @ts-ignore - items: require('./docs/api/iiq/sidebar.js'), + items: require('./docs/api/iiq/sidebar.ts'), }, { type: 'category', From 0903e7f91f559705b3b24bed2eadd318788119e9 Mon Sep 17 00:00:00 2001 From: GitHub Action Bot Date: Tue, 2 Jul 2024 23:35:55 +0000 Subject: [PATCH 51/74] Automated commit by github action: 9769393967 --- .../api-specs/idn/beta/paths/identity-attribute.yaml | 10 ++++++---- .../beta/paths/identity-attributes-bulk-delete.yaml | 5 +++-- .../api-specs/idn/beta/paths/identity-attributes.yaml | 7 ++++--- .../schemas/identity-attributes/IdentityAttribute.yaml | 8 ++++---- .../idn/v3/schemas/identity-attributes/Source.yaml | 6 +++--- 5 files changed, 20 insertions(+), 16 deletions(-) diff --git a/static/api-specs/idn/beta/paths/identity-attribute.yaml b/static/api-specs/idn/beta/paths/identity-attribute.yaml index b52033b77..e37a7d106 100644 --- a/static/api-specs/idn/beta/paths/identity-attribute.yaml +++ b/static/api-specs/idn/beta/paths/identity-attribute.yaml @@ -41,9 +41,10 @@ put: summary: Update Identity Attribute description: >- This updates an existing identity attribute. - Making an attribute searchable requires that the `system`, `standard`, and `multi` properties be set to false. + Making an attribute searchable requires that the `system`, `standard`, and `multi` properties be set to false. + A token with ORG_ADMIN authority is required to call this API. security: - - UserContextAuth: [ idn:identity-profile-attribute:create ] + - UserContextAuth: [ idn:identity-profile-attribute:manage ] parameters: - in: path name: name @@ -84,9 +85,10 @@ delete: summary: Delete Identity Attribute description: >- This deletes an identity attribute with the given name. - The `system` and `standard` properties must be set to false before you can delete an identity attribute. + The `system` and `standard` properties must be set to false before you can delete an identity attribute. + A token with ORG_ADMIN authority is required to call this API. security: - - UserContextAuth: [ idn:identity-profile-attribute:delete ] + - UserContextAuth: [ idn:identity-profile-attribute:manage ] parameters: - in: path name: name diff --git a/static/api-specs/idn/beta/paths/identity-attributes-bulk-delete.yaml b/static/api-specs/idn/beta/paths/identity-attributes-bulk-delete.yaml index f262b9b27..9cd188977 100644 --- a/static/api-specs/idn/beta/paths/identity-attributes-bulk-delete.yaml +++ b/static/api-specs/idn/beta/paths/identity-attributes-bulk-delete.yaml @@ -6,9 +6,10 @@ delete: description: >- Use this API to bulk delete identity attributes for a given set of names. Attributes that are currently mapped in an identity profile cannot be deleted. - The `system` and `standard` properties must be set to 'false' before you can delete an identity attribute. + The `system` and `standard` properties must be set to 'false' before you can delete an identity attribute. + A token with ORG_ADMIN authority is required to call this API. security: - - UserContextAuth: [ idn:identity-profile-attribute-bulk:delete ] + - UserContextAuth: [ idn:identity-profile-attribute:manage ] requestBody: required: true content: diff --git a/static/api-specs/idn/beta/paths/identity-attributes.yaml b/static/api-specs/idn/beta/paths/identity-attributes.yaml index e953ce731..844450dfa 100644 --- a/static/api-specs/idn/beta/paths/identity-attributes.yaml +++ b/static/api-specs/idn/beta/paths/identity-attributes.yaml @@ -6,7 +6,7 @@ get: description: >- Use this API to get a collection of identity attributes. security: - - UserContextAuth: [idn:identity-profile-attribute-list:read] + - UserContextAuth: [ idn:identity-profile-attribute:read ] parameters: - in: query name: includeSystem @@ -61,9 +61,10 @@ post: - Identity Attributes summary: Create Identity Attribute description: >- - Use this API to create a new identity attribute. + Use this API to create a new identity attribute. + A token with ORG_ADMIN authority is required to call this API. security: - - UserContextAuth: [ idn:identity-profile-attribute:create ] + - UserContextAuth: [ idn:identity-profile-attribute:manage ] requestBody: required: true content: diff --git a/static/api-specs/idn/v3/schemas/identity-attributes/IdentityAttribute.yaml b/static/api-specs/idn/v3/schemas/identity-attributes/IdentityAttribute.yaml index b05698c44..ce8bc711d 100644 --- a/static/api-specs/idn/v3/schemas/identity-attributes/IdentityAttribute.yaml +++ b/static/api-specs/idn/v3/schemas/identity-attributes/IdentityAttribute.yaml @@ -5,16 +5,16 @@ properties: name: type: string description: Identity attribute's technical name. - example: 'uid' + example: 'costCenter' displayName: type: string description: Identity attribute's business-friendly name. - example: 'Identity Security Cloud Username' + example: 'Cost Center' standard: type: boolean description: Indicates whether the attribute is 'standard' or 'default'. default: false - example: true + example: false type: type: string description: Identity attribute's type. @@ -29,7 +29,7 @@ properties: type: boolean description: Indicates whether the identity attribute is searchable. default: false - example: true + example: false system: type: boolean description: Indicates whether the identity attribute is 'system', meaning that it doesn't have a source and isn't configurable. diff --git a/static/api-specs/idn/v3/schemas/identity-attributes/Source.yaml b/static/api-specs/idn/v3/schemas/identity-attributes/Source.yaml index 5168ce570..c05187978 100644 --- a/static/api-specs/idn/v3/schemas/identity-attributes/Source.yaml +++ b/static/api-specs/idn/v3/schemas/identity-attributes/Source.yaml @@ -2,9 +2,9 @@ type: object properties: type: type: string - description: Source type. + description: Attribute mapping type. example: 'rule' properties: type: object - description: Source properties. - example: { "attribute": null,"sourceName": "Employees" } + description: Attribute mapping properties. + example: { "ruleType": "IdentityAttribute","ruleName": "Cloud Promote Identity Attribute" } \ No newline at end of file From 87191d10fb1204d0e2736068faee1781596b7740 Mon Sep 17 00:00:00 2001 From: GitHub Action Bot Date: Wed, 3 Jul 2024 13:33:04 +0000 Subject: [PATCH 52/74] Automated commit by github action: 9778867389 --- .../idn/v3/paths/bulk-add-tagged-objects.yaml | 4 +++- .../idn/v3/schemas/BulkTaggedObjectResponse.yaml | 12 ++++++++++++ 2 files changed, 15 insertions(+), 1 deletion(-) create mode 100644 static/api-specs/idn/v3/schemas/BulkTaggedObjectResponse.yaml diff --git a/static/api-specs/idn/v3/paths/bulk-add-tagged-objects.yaml b/static/api-specs/idn/v3/paths/bulk-add-tagged-objects.yaml index c61df43cb..e5af783d2 100644 --- a/static/api-specs/idn/v3/paths/bulk-add-tagged-objects.yaml +++ b/static/api-specs/idn/v3/paths/bulk-add-tagged-objects.yaml @@ -24,7 +24,9 @@ post: content: application/json: schema: - $ref: '../schemas/BulkTaggedObject.yaml' + type: array + items: + $ref: '../schemas/BulkTaggedObjectResponse.yaml' '400': $ref: '../../v3/responses/400.yaml' '401': diff --git a/static/api-specs/idn/v3/schemas/BulkTaggedObjectResponse.yaml b/static/api-specs/idn/v3/schemas/BulkTaggedObjectResponse.yaml new file mode 100644 index 000000000..6241d6b23 --- /dev/null +++ b/static/api-specs/idn/v3/schemas/BulkTaggedObjectResponse.yaml @@ -0,0 +1,12 @@ +type: object +properties: + objectRefs: + type: array + items: + $ref: '../../v3/schemas/TaggedObjectDto.yaml' + tags: + type: array + items: + type: string + description: Label to be applied to an Object + example: [ "BU_FINANCE", "PCI" ] From f4d43e1f75c8ddb5a49d8b6812821f26a05c9db7 Mon Sep 17 00:00:00 2001 From: darrell-thobe-sp Date: Wed, 3 Jul 2024 11:06:11 -0400 Subject: [PATCH 53/74] working version for docusaurus upgrade on 3.4.0 --- docs/api/authentication.md | 54 +- .../event-triggers/filtering-events.md | 4 +- package-lock.json | 5361 +++-------------- package.json | 19 +- src/theme/DocCard/index.js | 101 - src/theme/DocCard/styles.module.css | 33 - 6 files changed, 994 insertions(+), 4578 deletions(-) delete mode 100644 src/theme/DocCard/index.js delete mode 100644 src/theme/DocCard/styles.module.css diff --git a/docs/api/authentication.md b/docs/api/authentication.md index 342bd52fd..42e0955a3 100644 --- a/docs/api/authentication.md +++ b/docs/api/authentication.md @@ -68,8 +68,8 @@ To authenticate to the ISC APIs, you must be able to connect to your tenant to s Your tenant's OAuth details refer to the details you need to know to connect it to the APIs. You need to know your tenant's name, its `authorizeEndpoint` URL, and its `tokenEndpoint` URL. -Your ISC instance is likely using the domain name supplied by SailPoint (`{tenant}.api.identitynow.com`), in which case, the tenant name is in the URL. This is assumed to be the case in this guide. -However, if your ISC instance is using a vanity URL, you must enter this URL into your browser to get your OAuth info: `https://{tenant}.api.identitynow.com/oauth/info` +Your ISC instance is likely using the domain name supplied by SailPoint (`[tenant].api.identitynow.com`), in which case, the tenant name is in the URL. This is assumed to be the case in this guide. +However, if your ISC instance is using a vanity URL, you must enter this URL into your browser to get your OAuth info: `https://[tenant].api.identitynow.com/oauth/info` If you have admin access but don't know your tenant name, you can learn it by following these steps: @@ -100,7 +100,7 @@ A personal access token (PAT) is a method of authenticating to an API as a user Any ISC user can generate a PAT. To do so, follow these steps: -1. Select **Preferences** from the drop-down menu under your username, then **Personal Access Tokens** on the left. You can also go directly to the page by using this URL (replace `{tenant}` with your Identity Security Cloud tenant): `https://{tenant}.identitynow.com/ui/d/user-preferences/personal-access-tokens` +1. Select **Preferences** from the drop-down menu under your username, then **Personal Access Tokens** on the left. You can also go directly to the page by using this URL (replace `[tenant]` with your Identity Security Cloud tenant): `https://[tenant].identitynow.com/ui/d/user-preferences/personal-access-tokens` 2. Click **New Token** and enter a meaningful description to help differentiate the token from others. @@ -170,7 +170,7 @@ This is the overall authorization flow: 1. The client first submits an OAuth 2.0 token request to ISC in this form: ```text -POST https://{tenant}.api.identitynow.com/oauth/token +POST https://[tenant].api.identitynow.com/oauth/token ``` The request includes the client credential information passed in the request body, as shown in this example using [Postman](https://www.getpostman.com): @@ -182,22 +182,22 @@ This example shows how to pass the information with form-data in the request bod - Use x-www-form-urlencoded data to pass in the client credential information in the request body. - Use query parameters to pass the information in the request URL. The request URL will look like this: ```text - https://{tenant}.api.identitynow.com/oauth/token?grant_type=client_credentials&client_id={{clientId}}&client_secret={{clientSecret}} + https://[tenant].api.identitynow.com/oauth/token?grant_type=client_credentials&client_id={{clientId}}&client_secret={{clientSecret}} ``` -- If you are using Postman, you can use the 'Authorization' tab to pass in the client credentials. If you use this option, you must also specify the access token URL: https://{tenant}.api.identitynow.com/oauth/token +- If you are using Postman, you can use the 'Authorization' tab to pass in the client credentials. If you use this option, you must also specify the access token URL: https://[tenant].api.identitynow.com/oauth/token The OAuth 2.0 token request must include this information: | Key | Description | | --- | --- | | `grant_type` | This is set to `CLIENT_CREDENTIALS` for the authorization code grant type. | -| `client_id` | This is the API client's ID (e.g. `b61429f5-203d-494c-94c3-04f54e17bc5c`). You can generate this ID at `https://{tenant}.identitynow.com/ui/admin/#admin:global:security:apimanagementpanel`, or you can generate it when you create a PAT. | -| `client_secret` | This is the API client's secret describing (e.g. `c924417c85b19eda40e171935503d8e9747ca60ddb9b48ba4c6bb5a7145fb6c5`). You can generate this secret at `https://{tenant}.identitynow.com/ui/admin/#admin:global:security:apimanagementpanel`, or you can generate it when you create a PAT. | +| `client_id` | This is the API client's ID (e.g. `b61429f5-203d-494c-94c3-04f54e17bc5c`). You can generate this ID at `https://[tenant].identitynow.com/ui/admin/#admin:global:security:apimanagementpanel`, or you can generate it when you create a PAT. | +| `client_secret` | This is the API client's secret describing (e.g. `c924417c85b19eda40e171935503d8e9747ca60ddb9b48ba4c6bb5a7145fb6c5`). You can generate this secret at `https://[tenant].identitynow.com/ui/admin/#admin:global:security:apimanagementpanel`, or you can generate it when you create a PAT. | This example cURL command passes client credentials in the body as form-data to generate an access token: ```bash -curl --location 'https://{tenant}.api.identitynow.com/oauth/token' \ +curl --location 'https://[tenant].api.identitynow.com/oauth/token' \ --header 'scope: sp:scope:all' \ --form 'grant_type="client_credentials"' \ --form 'client_id="{clientId}"' \ @@ -251,11 +251,11 @@ sequenceDiagram participant I as Identity Security Cloud U->>W: Click login link - W->>I: Authorization request to https://{tenant}.login.sailpoint.com/oauth/authorize + W->>I: Authorization request to https://[tenant].login.sailpoint.com/oauth/authorize I->>U: Redirect to login prompt U->>I: Authentication I->>W: Authorization code granted - W->>I: Authorization code to https://{tenant}.api.identitynow.com/oauth/token + W->>I: Authorization code to https://[tenant].api.identitynow.com/oauth/token I->>W: JWT access token granted ``` @@ -268,7 +268,7 @@ This is the overall authorization flow: 2. The web app sends an authorization request to ISC in this form: ```Text -GET https://{tenant}.login.sailpoint.com/oauth/authorize?client_id={client-id}&response_type=code&redirect_uri={redirect-url} +GET https://[tenant].login.sailpoint.com/oauth/authorize?client_id={client-id}&response_type=code&redirect_uri={redirect-url} ``` 3. ISC redirects the user to a login prompt to authenticate to Identity Security Cloud. @@ -280,12 +280,12 @@ GET https://{tenant}.login.sailpoint.com/oauth/authorize?client_id={client-id}&r 6. The web app submits an OAuth 2.0 token request to ISC in this form: ```text -POST https://{tenant}.api.identitynow.com/oauth/token?grant_type=authorization_code&client_id={client-id}&code={code}&redirect_uri={redirect-url} +POST https://[tenant].api.identitynow.com/oauth/token?grant_type=authorization_code&client_id={client-id}&code={code}&redirect_uri={redirect-url} ``` :::info -The token endpoint URL is `{tenant}.api.identitynow.com`, and the authorize URL is `{tenant}.login.sailpoint.com`. Please be sure to use the correct URL when you're setting up your webapp to use this flow. You can read more about [finding your tenant OAuth details here](https://developer.sailpoint.com/docs/api/authentication/#find-your-tenants-oauth-details). +The token endpoint URL is `[tenant].api.identitynow.com`, and the authorize URL is `[tenant].login.sailpoint.com`. Please be sure to use the correct URL when you're setting up your webapp to use this flow. You can read more about [finding your tenant OAuth details here](https://developer.sailpoint.com/docs/api/authentication/#find-your-tenants-oauth-details). ::: @@ -296,7 +296,7 @@ These are the query parameters in the OAuth 2.0 token request for the authorizat | Key | Description | | --- | --- | | `grant_type` | Set this to `authorization_code` for the authorization code grant type. | -| `client_id` | This is the client ID for the API client (e.g. `b61429f5-203d-494c-94c3-04f54e17bc5c`). This can be generated at `https://{tenant}.identitynow.com/ui/admin/#admin:global:security:apimanagementpanel` | +| `client_id` | This is the client ID for the API client (e.g. `b61429f5-203d-494c-94c3-04f54e17bc5c`). This can be generated at `https://[tenant].identitynow.com/ui/admin/#admin:global:security:apimanagementpanel` | | `code` | This is a code returned by `/oauth/authorize`. | | `redirect_uri` | This is the application URL to redirect to once the token has been granted. | @@ -342,7 +342,7 @@ This is the overall authorization flow: 3. The client submits an OAuth 2.0 token request to ISC in this form: ```text -POST https://{tenant}.api.identitynow.com/oauth/token?grant_type=refresh_token&client_id={client_id}&client_secret={client_secret}&refresh_token={refresh_token} +POST https://[tenant].api.identitynow.com/oauth/token?grant_type=refresh_token&client_id={client_id}&client_secret={client_secret}&refresh_token={refresh_token} ``` 4. ISC validates the token request and submits a response. If the request is successful, the response contains a new `access_token` and `refresh_token`. @@ -352,8 +352,8 @@ These are the query parameters in the OAuth 2.0 token request for the refresh to | Key | Description | | --- | --- | | `grant_type` | Set to `refresh_token` for the authorization code grant type. | -| `client_id` | This is the client ID for the API client (e.g. `b61429f5-203d-494c-94c3-04f54e17bc5c`). This can be generated at `https://{tenant}.identitynow.com/ui/admin/#admin:global:security:apimanagementpanel`. | -| `client_secret` | This is the client secret for the API client (e.g. `c924417c85b19eda40e171935503d8e9747ca60ddb9b48ba4c6bb5a7145fb6c5`). This can be generated at `https://{tenant}.identitynow.com/ui/admin/#admin:global:security:apimanagementpanel`. | +| `client_id` | This is the client ID for the API client (e.g. `b61429f5-203d-494c-94c3-04f54e17bc5c`). This can be generated at `https://[tenant].identitynow.com/ui/admin/#admin:global:security:apimanagementpanel`. | +| `client_secret` | This is the client secret for the API client (e.g. `c924417c85b19eda40e171935503d8e9747ca60ddb9b48ba4c6bb5a7145fb6c5`). This can be generated at `https://[tenant].identitynow.com/ui/admin/#admin:global:security:apimanagementpanel`. | | `refresh_token` | This is the `refresh_token` that was provided along with the now expired `access_token`. | Here is an example call OAuth 2.0 Token Request for the Refresh Token grant. @@ -370,7 +370,7 @@ For more information about the OAuth refresh token grant flow, refer [here](http ### OAuth token response -A successful request using any of the grant flows to `https://{tenant}.api.identitynow.com/oauth/token` will contain a response body like this: +A successful request using any of the grant flows to `https://[tenant].api.identitynow.com/oauth/token` will contain a response body like this: ```json { @@ -397,7 +397,7 @@ You can use the JWT `access_token` to authorize REST API calls through the ISC A ```bash curl -X GET \ - 'https://{tenant}.api.identitynow.com/v3/account-activities' \ + 'https://[tenant].api.identitynow.com/v3/account-activities' \ -H 'Authorization: Bearer {access_token}' \ -H 'cache-control: no-cache' ``` @@ -521,13 +521,13 @@ Having issues? Follow these steps: ### Verify API endpoint calls 1. Verify the structure of the API call: -2. Verify that the API calls are going through the API gateway: `https://{tenant}.api.identitynow.com` +2. Verify that the API calls are going through the API gateway: `https://[tenant].api.identitynow.com` 3. Verify you are calling their version correctly: - - Private APIs: `https://{tenant}.api.identitynow.com/cc/api/{endpoint}` - - V2 APIs: `https://{tenant}.api.identitynow.com/v2/{endpoint}` - - V3 APIs: `https://{tenant}.api.identitynow.com/v3/{endpoint}` - - Beta APIs: `https://{tenant}.api.identitynow.com/beta/{endpoint}` + - Private APIs: `https://[tenant].api.identitynow.com/cc/api/{endpoint}` + - V2 APIs: `https://[tenant].api.identitynow.com/v2/{endpoint}` + - V3 APIs: `https://[tenant].api.identitynow.com/v3/{endpoint}` + - Beta APIs: `https://[tenant].api.identitynow.com/beta/{endpoint}` 4. Verify that the API calls have the correct headers (e.g., `content-type`), query parameters, and body data. 5. If the HTTP response is **401 Unauthorized** , this is an indication either that there is no `Authorization` header or that the `access_token` is invalid. Verify that the API calls are providing the `access_token` in the `Authorization` header correctly (ex. `Authorization: Bearer {access_token}`) and that the `access_token` has not expired. @@ -559,7 +559,7 @@ or GET /beta/oauth-clients/ ``` -You can also view all of the active clients in the UI by going to `https://{tenant}.identitynow.com/ui/admin/#admin:global:security:apimanagementpanel`. +You can also view all of the active clients in the UI by going to `https://[tenant].identitynow.com/ui/admin/#admin:global:security:apimanagementpanel`. 3. Verify that the OAuth 2.0 client grant types match the OAuth 2.0 grant type flow you're trying to use. For example, this client will work with [Authorization Code](#authorization-code-grant-flow) and [Client Credentials](#client-Credentials-grant-flow) grant flows, but not [Refresh Token](#refresh-token-grant-flow) flows: @@ -583,4 +583,4 @@ You can also view all of the active clients in the UI by going to `https://{tena ### Verify OAuth calls -Verify that the OAuth call flow is going to the right URLs, with the correct query parameters and data values. A common source of errors is using the wrong host for authorization and token API calls. The token endpoint URL is `{tenant}.api.identitynow.com`, while the authorize URL is `{tenant}.identitynow.com`. +Verify that the OAuth call flow is going to the right URLs, with the correct query parameters and data values. A common source of errors is using the wrong host for authorization and token API calls. The token endpoint URL is `[tenant].api.identitynow.com`, while the authorize URL is `[tenant].identitynow.com`. diff --git a/docs/extensibility/event-triggers/filtering-events.md b/docs/extensibility/event-triggers/filtering-events.md index 4bf4dcd64..5eb16ddeb 100644 --- a/docs/extensibility/event-triggers/filtering-events.md +++ b/docs/extensibility/event-triggers/filtering-events.md @@ -79,7 +79,7 @@ Operators provide more options to filter JSON structures. Developing a filter can be faster when you use a tool like an online [JSONpath editor](https://www.javainuse.com/jsonpath). These tools can provide quick feedback on your filter, allowing you to focus on the exact filter expression you want before testing it on a trigger. Just paste an example of your event trigger input and start crafting an expression to see its result. -:::Warning +:::warning Third party websites like the one mentioned earlier must be treated with caution. Do not use real data from your tenant when you're interacting with these tools. ::: @@ -182,7 +182,7 @@ POST https://{tenant}.api.identitynow.com/beta/trigger-subscriptions/validate-fi If SailPoint accepts your trigger filter, you must test whether it actually works. You must configure your trigger subscription to point to the URL of your testing service. [webhook.site](https://webhook.site) is an easy to use testing service. Just copy the unique URL it generates and paste it into your subscription's integration URL field. The easiest way to test a trigger subscription is to use the UI to fire off a test event. -:::Warning +:::warning Third party websites like the one mentioned earlier must be treated with caution. Do not use real data from your tenant when you're interacting with these tools. ::: diff --git a/package-lock.json b/package-lock.json index 72b4dc285..c71756972 100644 --- a/package-lock.json +++ b/package-lock.json @@ -8,10 +8,9 @@ "name": "sailpoint-developer-portal", "version": "0.0.0", "dependencies": { - "@docusaurus/plugin-client-redirects": "3.0.1", - "@docusaurus/plugin-google-tag-manager": "3.0.1", - "@docusaurus/theme-common": "3.0.1", - "@docusaurus/theme-mermaid": "3.0.1", + "@docusaurus/plugin-client-redirects": "3.4.0", + "@docusaurus/plugin-google-tag-manager": "3.4.0", + "@docusaurus/theme-mermaid": "3.4.0", "@fortawesome/fontawesome-svg-core": "^6.5.1", "@fortawesome/pro-duotone-svg-icons": "^6.5.1", "@fortawesome/pro-solid-svg-icons": "^6.5.1", @@ -20,13 +19,13 @@ "@typeform/embed-react": "^1.21.0", "autoprefixer": "^10.4.13", "classnames": "^2.3.2", - "clsx": "^1.1.1", + "clsx": "^2.0.0", "docusaurus-plugin-openapi-docs": "^3.0.0-beta.10", "docusaurus-theme-openapi-docs": "^3.0.0-beta.10", "docusaurus2-dotenv": "^1.4.0", "esbuild-loader": "^2.20.0", "ldrs": "^1.0.1", - "prism-react-renderer": "^2.1.0", + "prism-react-renderer": "^2.3.0", "react": "^18.2.0", "react-dom": "^18.2.0", "react-markdown": "^8.0.7", @@ -34,10 +33,10 @@ "react-tabs": "^4.3.0" }, "devDependencies": { - "@docusaurus/core": "3.0.1", - "@docusaurus/module-type-aliases": "3.0.0", - "@docusaurus/preset-classic": "3.0.1", - "@docusaurus/types": "3.0.1", + "@docusaurus/core": "3.4.0", + "@docusaurus/module-type-aliases": "3.4.0", + "@docusaurus/preset-classic": "3.4.0", + "@docusaurus/types": "3.4.0", "husky": "^8.0.2", "prettier": "2.8.0", "pretty-quick": "^3.1.3" @@ -605,9 +604,9 @@ } }, "node_modules/@babel/helper-plugin-utils": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.22.5.tgz", - "integrity": "sha512-uLls06UVKgFG9QD4OeFYLEGteMIAa5kpTPcFL28yuCIIzsf6ZyKZMllKVOCZFhiZ5ptnwX4mtKdWCBE/uT4amg==", + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.24.7.tgz", + "integrity": "sha512-Rq76wjt7yz9AAc1KnlRKNAi/dMSVWgDRx43FHoJEbcYU6xOWaE2dVPwcdTukJrjxS65GITyfbvEYHvkirZ6uEg==", "engines": { "node": ">=6.9.0" } @@ -1682,11 +1681,11 @@ } }, "node_modules/@babel/plugin-transform-react-constant-elements": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-constant-elements/-/plugin-transform-react-constant-elements-7.23.3.tgz", - "integrity": "sha512-zP0QKq/p6O42OL94udMgSfKXyse4RyJ0JqbQ34zDAONWjyrEsghYEyTSK5FIpmXmCpB55SHokL1cRRKHv8L2Qw==", + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-constant-elements/-/plugin-transform-react-constant-elements-7.24.7.tgz", + "integrity": "sha512-7LidzZfUXyfZ8/buRW6qIIHBY8wAZ1OrY9c/wTr8YhZ6vMPo+Uc/CVFLYY1spZrEQlD4w5u8wjqk5NQ3OVqQKA==", "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" + "@babel/helper-plugin-utils": "^7.24.7" }, "engines": { "node": ">=6.9.0" @@ -2245,337 +2244,6 @@ } }, "node_modules/@docusaurus/core": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/@docusaurus/core/-/core-3.0.1.tgz", - "integrity": "sha512-CXrLpOnW+dJdSv8M5FAJ3JBwXtL6mhUWxFA8aS0ozK6jBG/wgxERk5uvH28fCeFxOGbAT9v1e9dOMo1X2IEVhQ==", - "dependencies": { - "@babel/core": "^7.23.3", - "@babel/generator": "^7.23.3", - "@babel/plugin-syntax-dynamic-import": "^7.8.3", - "@babel/plugin-transform-runtime": "^7.22.9", - "@babel/preset-env": "^7.22.9", - "@babel/preset-react": "^7.22.5", - "@babel/preset-typescript": "^7.22.5", - "@babel/runtime": "^7.22.6", - "@babel/runtime-corejs3": "^7.22.6", - "@babel/traverse": "^7.22.8", - "@docusaurus/cssnano-preset": "3.0.1", - "@docusaurus/logger": "3.0.1", - "@docusaurus/mdx-loader": "3.0.1", - "@docusaurus/react-loadable": "5.5.2", - "@docusaurus/utils": "3.0.1", - "@docusaurus/utils-common": "3.0.1", - "@docusaurus/utils-validation": "3.0.1", - "@slorber/static-site-generator-webpack-plugin": "^4.0.7", - "@svgr/webpack": "^6.5.1", - "autoprefixer": "^10.4.14", - "babel-loader": "^9.1.3", - "babel-plugin-dynamic-import-node": "^2.3.3", - "boxen": "^6.2.1", - "chalk": "^4.1.2", - "chokidar": "^3.5.3", - "clean-css": "^5.3.2", - "cli-table3": "^0.6.3", - "combine-promises": "^1.1.0", - "commander": "^5.1.0", - "copy-webpack-plugin": "^11.0.0", - "core-js": "^3.31.1", - "css-loader": "^6.8.1", - "css-minimizer-webpack-plugin": "^4.2.2", - "cssnano": "^5.1.15", - "del": "^6.1.1", - "detect-port": "^1.5.1", - "escape-html": "^1.0.3", - "eta": "^2.2.0", - "file-loader": "^6.2.0", - "fs-extra": "^11.1.1", - "html-minifier-terser": "^7.2.0", - "html-tags": "^3.3.1", - "html-webpack-plugin": "^5.5.3", - "leven": "^3.1.0", - "lodash": "^4.17.21", - "mini-css-extract-plugin": "^2.7.6", - "postcss": "^8.4.26", - "postcss-loader": "^7.3.3", - "prompts": "^2.4.2", - "react-dev-utils": "^12.0.1", - "react-helmet-async": "^1.3.0", - "react-loadable": "npm:@docusaurus/react-loadable@5.5.2", - "react-loadable-ssr-addon-v5-slorber": "^1.0.1", - "react-router": "^5.3.4", - "react-router-config": "^5.1.1", - "react-router-dom": "^5.3.4", - "rtl-detect": "^1.0.4", - "semver": "^7.5.4", - "serve-handler": "^6.1.5", - "shelljs": "^0.8.5", - "terser-webpack-plugin": "^5.3.9", - "tslib": "^2.6.0", - "update-notifier": "^6.0.2", - "url-loader": "^4.1.1", - "webpack": "^5.88.1", - "webpack-bundle-analyzer": "^4.9.0", - "webpack-dev-server": "^4.15.1", - "webpack-merge": "^5.9.0", - "webpackbar": "^5.0.2" - }, - "bin": { - "docusaurus": "bin/docusaurus.mjs" - }, - "engines": { - "node": ">=18.0" - }, - "peerDependencies": { - "react": "^18.0.0", - "react-dom": "^18.0.0" - } - }, - "node_modules/@docusaurus/core/node_modules/html-minifier-terser": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/html-minifier-terser/-/html-minifier-terser-7.2.0.tgz", - "integrity": "sha512-tXgn3QfqPIpGl9o+K5tpcj3/MN4SfLtsx2GWwBC3SSd0tXQGyF3gsSqad8loJgKZGM3ZxbYDd5yhiBIdWpmvLA==", - "dependencies": { - "camel-case": "^4.1.2", - "clean-css": "~5.3.2", - "commander": "^10.0.0", - "entities": "^4.4.0", - "param-case": "^3.0.4", - "relateurl": "^0.2.7", - "terser": "^5.15.1" - }, - "bin": { - "html-minifier-terser": "cli.js" - }, - "engines": { - "node": "^14.13.1 || >=16.0.0" - } - }, - "node_modules/@docusaurus/core/node_modules/html-minifier-terser/node_modules/commander": { - "version": "10.0.1", - "resolved": "https://registry.npmjs.org/commander/-/commander-10.0.1.tgz", - "integrity": "sha512-y4Mg2tXshplEbSGzx7amzPwKKOCGuoSRP/CjEdwwk0FOGlUbq6lKuoyDZTNZkmxHdJtp54hdfY/JUrdL7Xfdug==", - "engines": { - "node": ">=14" - } - }, - "node_modules/@docusaurus/cssnano-preset": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/@docusaurus/cssnano-preset/-/cssnano-preset-3.0.1.tgz", - "integrity": "sha512-wjuXzkHMW+ig4BD6Ya1Yevx9UJadO4smNZCEljqBoQfIQrQskTswBs7lZ8InHP7mCt273a/y/rm36EZhqJhknQ==", - "dependencies": { - "cssnano-preset-advanced": "^5.3.10", - "postcss": "^8.4.26", - "postcss-sort-media-queries": "^4.4.1", - "tslib": "^2.6.0" - }, - "engines": { - "node": ">=18.0" - } - }, - "node_modules/@docusaurus/logger": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/@docusaurus/logger/-/logger-3.0.1.tgz", - "integrity": "sha512-I5L6Nk8OJzkVA91O2uftmo71LBSxe1vmOn9AMR6JRCzYeEBrqneWMH02AqMvjJ2NpMiviO+t0CyPjyYV7nxCWQ==", - "dependencies": { - "chalk": "^4.1.2", - "tslib": "^2.6.0" - }, - "engines": { - "node": ">=18.0" - } - }, - "node_modules/@docusaurus/mdx-loader": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/@docusaurus/mdx-loader/-/mdx-loader-3.0.1.tgz", - "integrity": "sha512-ldnTmvnvlrONUq45oKESrpy+lXtbnTcTsFkOTIDswe5xx5iWJjt6eSa0f99ZaWlnm24mlojcIGoUWNCS53qVlQ==", - "dependencies": { - "@babel/parser": "^7.22.7", - "@babel/traverse": "^7.22.8", - "@docusaurus/logger": "3.0.1", - "@docusaurus/utils": "3.0.1", - "@docusaurus/utils-validation": "3.0.1", - "@mdx-js/mdx": "^3.0.0", - "@slorber/remark-comment": "^1.0.0", - "escape-html": "^1.0.3", - "estree-util-value-to-estree": "^3.0.1", - "file-loader": "^6.2.0", - "fs-extra": "^11.1.1", - "image-size": "^1.0.2", - "mdast-util-mdx": "^3.0.0", - "mdast-util-to-string": "^4.0.0", - "rehype-raw": "^7.0.0", - "remark-directive": "^3.0.0", - "remark-emoji": "^4.0.0", - "remark-frontmatter": "^5.0.0", - "remark-gfm": "^4.0.0", - "stringify-object": "^3.3.0", - "tslib": "^2.6.0", - "unified": "^11.0.3", - "unist-util-visit": "^5.0.0", - "url-loader": "^4.1.1", - "vfile": "^6.0.1", - "webpack": "^5.88.1" - }, - "engines": { - "node": ">=18.0" - }, - "peerDependencies": { - "react": "^18.0.0", - "react-dom": "^18.0.0" - } - }, - "node_modules/@docusaurus/mdx-loader/node_modules/@types/hast": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/@types/hast/-/hast-3.0.4.tgz", - "integrity": "sha512-WPs+bbQw5aCj+x6laNGWLH3wviHtoCv/P3+otBhbOhJgG8qtpdAMlTCxLtsTWA7LH1Oh/bFCHsBn0TPS5m30EQ==", - "dependencies": { - "@types/unist": "*" - } - }, - "node_modules/@docusaurus/mdx-loader/node_modules/@types/unist": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/@types/unist/-/unist-3.0.2.tgz", - "integrity": "sha512-dqId9J8K/vGi5Zr7oo212BGii5m3q5Hxlkwy3WpYuKPklmBEvsbMYYyLxAQpSffdLl/gdW0XUpKWFvYmyoWCoQ==" - }, - "node_modules/@docusaurus/mdx-loader/node_modules/rehype-raw": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/rehype-raw/-/rehype-raw-7.0.0.tgz", - "integrity": "sha512-/aE8hCfKlQeA8LmyeyQvQF3eBiLRGNlfBJEvWH7ivp9sBqs7TNqBL5X3v157rM4IFETqDnIOO+z5M/biZbo9Ww==", - "dependencies": { - "@types/hast": "^3.0.0", - "hast-util-raw": "^9.0.0", - "vfile": "^6.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/@docusaurus/module-type-aliases": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/@docusaurus/module-type-aliases/-/module-type-aliases-3.0.0.tgz", - "integrity": "sha512-CfC6CgN4u/ce+2+L1JdsHNyBd8yYjl4De2B2CBj2a9F7WuJ5RjV1ciuU7KDg8uyju+NRVllRgvJvxVUjCdkPiw==", - "dev": true, - "dependencies": { - "@docusaurus/react-loadable": "5.5.2", - "@docusaurus/types": "3.0.0", - "@types/history": "^4.7.11", - "@types/react": "*", - "@types/react-router-config": "*", - "@types/react-router-dom": "*", - "react-helmet-async": "*", - "react-loadable": "npm:@docusaurus/react-loadable@5.5.2" - }, - "peerDependencies": { - "react": "*", - "react-dom": "*" - } - }, - "node_modules/@docusaurus/module-type-aliases/node_modules/@docusaurus/types": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/@docusaurus/types/-/types-3.0.0.tgz", - "integrity": "sha512-Qb+l/hmCOVemReuzvvcFdk84bUmUFyD0Zi81y651ie3VwMrXqC7C0E7yZLKMOsLj/vkqsxHbtkAuYMI89YzNzg==", - "dev": true, - "dependencies": { - "@types/history": "^4.7.11", - "@types/react": "*", - "commander": "^5.1.0", - "joi": "^17.9.2", - "react-helmet-async": "^1.3.0", - "utility-types": "^3.10.0", - "webpack": "^5.88.1", - "webpack-merge": "^5.9.0" - }, - "peerDependencies": { - "react": "^18.0.0", - "react-dom": "^18.0.0" - } - }, - "node_modules/@docusaurus/plugin-client-redirects": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/@docusaurus/plugin-client-redirects/-/plugin-client-redirects-3.0.1.tgz", - "integrity": "sha512-CoZapnHbV3j5jsHCa/zmKaa8+H+oagHBgg91dN5I8/3kFit/xtZPfRaznvDX49cHg2nSoV74B3VMAT+bvCmzFQ==", - "dependencies": { - "@docusaurus/core": "3.0.1", - "@docusaurus/logger": "3.0.1", - "@docusaurus/utils": "3.0.1", - "@docusaurus/utils-common": "3.0.1", - "@docusaurus/utils-validation": "3.0.1", - "eta": "^2.2.0", - "fs-extra": "^11.1.1", - "lodash": "^4.17.21", - "tslib": "^2.6.0" - }, - "engines": { - "node": ">=18.0" - }, - "peerDependencies": { - "react": "^18.0.0", - "react-dom": "^18.0.0" - } - }, - "node_modules/@docusaurus/plugin-content-blog": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/@docusaurus/plugin-content-blog/-/plugin-content-blog-3.0.1.tgz", - "integrity": "sha512-cLOvtvAyaMQFLI8vm4j26svg3ktxMPSXpuUJ7EERKoGbfpJSsgtowNHcRsaBVmfuCsRSk1HZ/yHBsUkTmHFEsg==", - "dependencies": { - "@docusaurus/core": "3.0.1", - "@docusaurus/logger": "3.0.1", - "@docusaurus/mdx-loader": "3.0.1", - "@docusaurus/types": "3.0.1", - "@docusaurus/utils": "3.0.1", - "@docusaurus/utils-common": "3.0.1", - "@docusaurus/utils-validation": "3.0.1", - "cheerio": "^1.0.0-rc.12", - "feed": "^4.2.2", - "fs-extra": "^11.1.1", - "lodash": "^4.17.21", - "reading-time": "^1.5.0", - "srcset": "^4.0.0", - "tslib": "^2.6.0", - "unist-util-visit": "^5.0.0", - "utility-types": "^3.10.0", - "webpack": "^5.88.1" - }, - "engines": { - "node": ">=18.0" - }, - "peerDependencies": { - "react": "^18.0.0", - "react-dom": "^18.0.0" - } - }, - "node_modules/@docusaurus/plugin-content-docs": { - "version": "3.4.0", - "resolved": "https://registry.npmjs.org/@docusaurus/plugin-content-docs/-/plugin-content-docs-3.4.0.tgz", - "integrity": "sha512-HkUCZffhBo7ocYheD9oZvMcDloRnGhBMOZRyVcAQRFmZPmNqSyISlXA1tQCIxW+r478fty97XXAGjNYzBjpCsg==", - "dependencies": { - "@docusaurus/core": "3.4.0", - "@docusaurus/logger": "3.4.0", - "@docusaurus/mdx-loader": "3.4.0", - "@docusaurus/module-type-aliases": "3.4.0", - "@docusaurus/types": "3.4.0", - "@docusaurus/utils": "3.4.0", - "@docusaurus/utils-common": "3.4.0", - "@docusaurus/utils-validation": "3.4.0", - "@types/react-router-config": "^5.0.7", - "combine-promises": "^1.1.0", - "fs-extra": "^11.1.1", - "js-yaml": "^4.1.0", - "lodash": "^4.17.21", - "tslib": "^2.6.0", - "utility-types": "^3.10.0", - "webpack": "^5.88.1" - }, - "engines": { - "node": ">=18.0" - }, - "peerDependencies": { - "react": "^18.0.0", - "react-dom": "^18.0.0" - } - }, - "node_modules/@docusaurus/plugin-content-docs/node_modules/@docusaurus/core": { "version": "3.4.0", "resolved": "https://registry.npmjs.org/@docusaurus/core/-/core-3.4.0.tgz", "integrity": "sha512-g+0wwmN2UJsBqy2fQRQ6fhXruoEa62JDeEa5d8IdTJlMoaDaEDfHh7WjwGRn4opuTQWpjAwP/fbcgyHKlE+64w==", @@ -2660,7 +2328,47 @@ "react-dom": "^18.0.0" } }, - "node_modules/@docusaurus/plugin-content-docs/node_modules/@docusaurus/cssnano-preset": { + "node_modules/@docusaurus/core/node_modules/html-minifier-terser": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/html-minifier-terser/-/html-minifier-terser-7.2.0.tgz", + "integrity": "sha512-tXgn3QfqPIpGl9o+K5tpcj3/MN4SfLtsx2GWwBC3SSd0tXQGyF3gsSqad8loJgKZGM3ZxbYDd5yhiBIdWpmvLA==", + "dependencies": { + "camel-case": "^4.1.2", + "clean-css": "~5.3.2", + "commander": "^10.0.0", + "entities": "^4.4.0", + "param-case": "^3.0.4", + "relateurl": "^0.2.7", + "terser": "^5.15.1" + }, + "bin": { + "html-minifier-terser": "cli.js" + }, + "engines": { + "node": "^14.13.1 || >=16.0.0" + } + }, + "node_modules/@docusaurus/core/node_modules/html-minifier-terser/node_modules/commander": { + "version": "10.0.1", + "resolved": "https://registry.npmjs.org/commander/-/commander-10.0.1.tgz", + "integrity": "sha512-y4Mg2tXshplEbSGzx7amzPwKKOCGuoSRP/CjEdwwk0FOGlUbq6lKuoyDZTNZkmxHdJtp54hdfY/JUrdL7Xfdug==", + "engines": { + "node": ">=14" + } + }, + "node_modules/@docusaurus/core/node_modules/react-loadable": { + "name": "@docusaurus/react-loadable", + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/@docusaurus/react-loadable/-/react-loadable-6.0.0.tgz", + "integrity": "sha512-YMMxTUQV/QFSnbgrP3tjDzLHRg7vsbMn8e9HAa8o/1iXoiomo48b7sk/kkmWEuWNDPJVlKSJRB6Y2fHqdJk+SQ==", + "dependencies": { + "@types/react": "*" + }, + "peerDependencies": { + "react": "*" + } + }, + "node_modules/@docusaurus/cssnano-preset": { "version": "3.4.0", "resolved": "https://registry.npmjs.org/@docusaurus/cssnano-preset/-/cssnano-preset-3.4.0.tgz", "integrity": "sha512-qwLFSz6v/pZHy/UP32IrprmH5ORce86BGtN0eBtG75PpzQJAzp9gefspox+s8IEOr0oZKuQ/nhzZ3xwyc3jYJQ==", @@ -2674,7 +2382,7 @@ "node": ">=18.0" } }, - "node_modules/@docusaurus/plugin-content-docs/node_modules/@docusaurus/logger": { + "node_modules/@docusaurus/logger": { "version": "3.4.0", "resolved": "https://registry.npmjs.org/@docusaurus/logger/-/logger-3.4.0.tgz", "integrity": "sha512-bZwkX+9SJ8lB9kVRkXw+xvHYSMGG4bpYHKGXeXFvyVc79NMeeBSGgzd4TQLHH+DYeOJoCdl8flrFJVxlZ0wo/Q==", @@ -2686,7 +2394,7 @@ "node": ">=18.0" } }, - "node_modules/@docusaurus/plugin-content-docs/node_modules/@docusaurus/mdx-loader": { + "node_modules/@docusaurus/mdx-loader": { "version": "3.4.0", "resolved": "https://registry.npmjs.org/@docusaurus/mdx-loader/-/mdx-loader-3.4.0.tgz", "integrity": "sha512-kSSbrrk4nTjf4d+wtBA9H+FGauf2gCax89kV8SUSJu3qaTdSIKdWERlngsiHaCFgZ7laTJ8a67UFf+xlFPtuTw==", @@ -2724,7 +2432,29 @@ "react-dom": "^18.0.0" } }, - "node_modules/@docusaurus/plugin-content-docs/node_modules/@docusaurus/module-type-aliases": { + "node_modules/@docusaurus/mdx-loader/node_modules/@types/hast": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/@types/hast/-/hast-3.0.4.tgz", + "integrity": "sha512-WPs+bbQw5aCj+x6laNGWLH3wviHtoCv/P3+otBhbOhJgG8qtpdAMlTCxLtsTWA7LH1Oh/bFCHsBn0TPS5m30EQ==", + "dependencies": { + "@types/unist": "*" + } + }, + "node_modules/@docusaurus/mdx-loader/node_modules/rehype-raw": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/rehype-raw/-/rehype-raw-7.0.0.tgz", + "integrity": "sha512-/aE8hCfKlQeA8LmyeyQvQF3eBiLRGNlfBJEvWH7ivp9sBqs7TNqBL5X3v157rM4IFETqDnIOO+z5M/biZbo9Ww==", + "dependencies": { + "@types/hast": "^3.0.0", + "hast-util-raw": "^9.0.0", + "vfile": "^6.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/@docusaurus/module-type-aliases": { "version": "3.4.0", "resolved": "https://registry.npmjs.org/@docusaurus/module-type-aliases/-/module-type-aliases-3.4.0.tgz", "integrity": "sha512-A1AyS8WF5Bkjnb8s+guTDuYmUiwJzNrtchebBHpc0gz0PyHJNMaybUlSrmJjHVcGrya0LKI4YcR3lBDQfXRYLw==", @@ -2742,7 +2472,389 @@ "react-dom": "*" } }, - "node_modules/@docusaurus/plugin-content-docs/node_modules/@docusaurus/types": { + "node_modules/@docusaurus/module-type-aliases/node_modules/react-loadable": { + "name": "@docusaurus/react-loadable", + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/@docusaurus/react-loadable/-/react-loadable-6.0.0.tgz", + "integrity": "sha512-YMMxTUQV/QFSnbgrP3tjDzLHRg7vsbMn8e9HAa8o/1iXoiomo48b7sk/kkmWEuWNDPJVlKSJRB6Y2fHqdJk+SQ==", + "dependencies": { + "@types/react": "*" + }, + "peerDependencies": { + "react": "*" + } + }, + "node_modules/@docusaurus/plugin-client-redirects": { + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/@docusaurus/plugin-client-redirects/-/plugin-client-redirects-3.4.0.tgz", + "integrity": "sha512-Pr8kyh/+OsmYCvdZhc60jy/FnrY6flD2TEAhl4rJxeVFxnvvRgEhoaIVX8q9MuJmaQoh6frPk94pjs7/6YgBDQ==", + "dependencies": { + "@docusaurus/core": "3.4.0", + "@docusaurus/logger": "3.4.0", + "@docusaurus/utils": "3.4.0", + "@docusaurus/utils-common": "3.4.0", + "@docusaurus/utils-validation": "3.4.0", + "eta": "^2.2.0", + "fs-extra": "^11.1.1", + "lodash": "^4.17.21", + "tslib": "^2.6.0" + }, + "engines": { + "node": ">=18.0" + }, + "peerDependencies": { + "react": "^18.0.0", + "react-dom": "^18.0.0" + } + }, + "node_modules/@docusaurus/plugin-content-blog": { + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/@docusaurus/plugin-content-blog/-/plugin-content-blog-3.4.0.tgz", + "integrity": "sha512-vv6ZAj78ibR5Jh7XBUT4ndIjmlAxkijM3Sx5MAAzC1gyv0vupDQNhzuFg1USQmQVj3P5I6bquk12etPV3LJ+Xw==", + "dependencies": { + "@docusaurus/core": "3.4.0", + "@docusaurus/logger": "3.4.0", + "@docusaurus/mdx-loader": "3.4.0", + "@docusaurus/types": "3.4.0", + "@docusaurus/utils": "3.4.0", + "@docusaurus/utils-common": "3.4.0", + "@docusaurus/utils-validation": "3.4.0", + "cheerio": "^1.0.0-rc.12", + "feed": "^4.2.2", + "fs-extra": "^11.1.1", + "lodash": "^4.17.21", + "reading-time": "^1.5.0", + "srcset": "^4.0.0", + "tslib": "^2.6.0", + "unist-util-visit": "^5.0.0", + "utility-types": "^3.10.0", + "webpack": "^5.88.1" + }, + "engines": { + "node": ">=18.0" + }, + "peerDependencies": { + "react": "^18.0.0", + "react-dom": "^18.0.0" + } + }, + "node_modules/@docusaurus/plugin-content-docs": { + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/@docusaurus/plugin-content-docs/-/plugin-content-docs-3.4.0.tgz", + "integrity": "sha512-HkUCZffhBo7ocYheD9oZvMcDloRnGhBMOZRyVcAQRFmZPmNqSyISlXA1tQCIxW+r478fty97XXAGjNYzBjpCsg==", + "dependencies": { + "@docusaurus/core": "3.4.0", + "@docusaurus/logger": "3.4.0", + "@docusaurus/mdx-loader": "3.4.0", + "@docusaurus/module-type-aliases": "3.4.0", + "@docusaurus/types": "3.4.0", + "@docusaurus/utils": "3.4.0", + "@docusaurus/utils-common": "3.4.0", + "@docusaurus/utils-validation": "3.4.0", + "@types/react-router-config": "^5.0.7", + "combine-promises": "^1.1.0", + "fs-extra": "^11.1.1", + "js-yaml": "^4.1.0", + "lodash": "^4.17.21", + "tslib": "^2.6.0", + "utility-types": "^3.10.0", + "webpack": "^5.88.1" + }, + "engines": { + "node": ">=18.0" + }, + "peerDependencies": { + "react": "^18.0.0", + "react-dom": "^18.0.0" + } + }, + "node_modules/@docusaurus/plugin-content-pages": { + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/@docusaurus/plugin-content-pages/-/plugin-content-pages-3.4.0.tgz", + "integrity": "sha512-h2+VN/0JjpR8fIkDEAoadNjfR3oLzB+v1qSXbIAKjQ46JAHx3X22n9nqS+BWSQnTnp1AjkjSvZyJMekmcwxzxg==", + "dependencies": { + "@docusaurus/core": "3.4.0", + "@docusaurus/mdx-loader": "3.4.0", + "@docusaurus/types": "3.4.0", + "@docusaurus/utils": "3.4.0", + "@docusaurus/utils-validation": "3.4.0", + "fs-extra": "^11.1.1", + "tslib": "^2.6.0", + "webpack": "^5.88.1" + }, + "engines": { + "node": ">=18.0" + }, + "peerDependencies": { + "react": "^18.0.0", + "react-dom": "^18.0.0" + } + }, + "node_modules/@docusaurus/plugin-debug": { + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/@docusaurus/plugin-debug/-/plugin-debug-3.4.0.tgz", + "integrity": "sha512-uV7FDUNXGyDSD3PwUaf5YijX91T5/H9SX4ErEcshzwgzWwBtK37nUWPU3ZLJfeTavX3fycTOqk9TglpOLaWkCg==", + "dev": true, + "dependencies": { + "@docusaurus/core": "3.4.0", + "@docusaurus/types": "3.4.0", + "@docusaurus/utils": "3.4.0", + "fs-extra": "^11.1.1", + "react-json-view-lite": "^1.2.0", + "tslib": "^2.6.0" + }, + "engines": { + "node": ">=18.0" + }, + "peerDependencies": { + "react": "^18.0.0", + "react-dom": "^18.0.0" + } + }, + "node_modules/@docusaurus/plugin-google-analytics": { + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/@docusaurus/plugin-google-analytics/-/plugin-google-analytics-3.4.0.tgz", + "integrity": "sha512-mCArluxEGi3cmYHqsgpGGt3IyLCrFBxPsxNZ56Mpur0xSlInnIHoeLDH7FvVVcPJRPSQ9/MfRqLsainRw+BojA==", + "dev": true, + "dependencies": { + "@docusaurus/core": "3.4.0", + "@docusaurus/types": "3.4.0", + "@docusaurus/utils-validation": "3.4.0", + "tslib": "^2.6.0" + }, + "engines": { + "node": ">=18.0" + }, + "peerDependencies": { + "react": "^18.0.0", + "react-dom": "^18.0.0" + } + }, + "node_modules/@docusaurus/plugin-google-gtag": { + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/@docusaurus/plugin-google-gtag/-/plugin-google-gtag-3.4.0.tgz", + "integrity": "sha512-Dsgg6PLAqzZw5wZ4QjUYc8Z2KqJqXxHxq3vIoyoBWiLEEfigIs7wHR+oiWUQy3Zk9MIk6JTYj7tMoQU0Jm3nqA==", + "dev": true, + "dependencies": { + "@docusaurus/core": "3.4.0", + "@docusaurus/types": "3.4.0", + "@docusaurus/utils-validation": "3.4.0", + "@types/gtag.js": "^0.0.12", + "tslib": "^2.6.0" + }, + "engines": { + "node": ">=18.0" + }, + "peerDependencies": { + "react": "^18.0.0", + "react-dom": "^18.0.0" + } + }, + "node_modules/@docusaurus/plugin-google-tag-manager": { + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/@docusaurus/plugin-google-tag-manager/-/plugin-google-tag-manager-3.4.0.tgz", + "integrity": "sha512-O9tX1BTwxIhgXpOLpFDueYA9DWk69WCbDRrjYoMQtFHSkTyE7RhNgyjSPREUWJb9i+YUg3OrsvrBYRl64FCPCQ==", + "dependencies": { + "@docusaurus/core": "3.4.0", + "@docusaurus/types": "3.4.0", + "@docusaurus/utils-validation": "3.4.0", + "tslib": "^2.6.0" + }, + "engines": { + "node": ">=18.0" + }, + "peerDependencies": { + "react": "^18.0.0", + "react-dom": "^18.0.0" + } + }, + "node_modules/@docusaurus/plugin-sitemap": { + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/@docusaurus/plugin-sitemap/-/plugin-sitemap-3.4.0.tgz", + "integrity": "sha512-+0VDvx9SmNrFNgwPoeoCha+tRoAjopwT0+pYO1xAbyLcewXSemq+eLxEa46Q1/aoOaJQ0qqHELuQM7iS2gp33Q==", + "dev": true, + "dependencies": { + "@docusaurus/core": "3.4.0", + "@docusaurus/logger": "3.4.0", + "@docusaurus/types": "3.4.0", + "@docusaurus/utils": "3.4.0", + "@docusaurus/utils-common": "3.4.0", + "@docusaurus/utils-validation": "3.4.0", + "fs-extra": "^11.1.1", + "sitemap": "^7.1.1", + "tslib": "^2.6.0" + }, + "engines": { + "node": ">=18.0" + }, + "peerDependencies": { + "react": "^18.0.0", + "react-dom": "^18.0.0" + } + }, + "node_modules/@docusaurus/preset-classic": { + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/@docusaurus/preset-classic/-/preset-classic-3.4.0.tgz", + "integrity": "sha512-Ohj6KB7siKqZaQhNJVMBBUzT3Nnp6eTKqO+FXO3qu/n1hJl3YLwVKTWBg28LF7MWrKu46UuYavwMRxud0VyqHg==", + "dev": true, + "dependencies": { + "@docusaurus/core": "3.4.0", + "@docusaurus/plugin-content-blog": "3.4.0", + "@docusaurus/plugin-content-docs": "3.4.0", + "@docusaurus/plugin-content-pages": "3.4.0", + "@docusaurus/plugin-debug": "3.4.0", + "@docusaurus/plugin-google-analytics": "3.4.0", + "@docusaurus/plugin-google-gtag": "3.4.0", + "@docusaurus/plugin-google-tag-manager": "3.4.0", + "@docusaurus/plugin-sitemap": "3.4.0", + "@docusaurus/theme-classic": "3.4.0", + "@docusaurus/theme-common": "3.4.0", + "@docusaurus/theme-search-algolia": "3.4.0", + "@docusaurus/types": "3.4.0" + }, + "engines": { + "node": ">=18.0" + }, + "peerDependencies": { + "react": "^18.0.0", + "react-dom": "^18.0.0" + } + }, + "node_modules/@docusaurus/theme-classic": { + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/@docusaurus/theme-classic/-/theme-classic-3.4.0.tgz", + "integrity": "sha512-0IPtmxsBYv2adr1GnZRdMkEQt1YW6tpzrUPj02YxNpvJ5+ju4E13J5tB4nfdaen/tfR1hmpSPlTFPvTf4kwy8Q==", + "dev": true, + "dependencies": { + "@docusaurus/core": "3.4.0", + "@docusaurus/mdx-loader": "3.4.0", + "@docusaurus/module-type-aliases": "3.4.0", + "@docusaurus/plugin-content-blog": "3.4.0", + "@docusaurus/plugin-content-docs": "3.4.0", + "@docusaurus/plugin-content-pages": "3.4.0", + "@docusaurus/theme-common": "3.4.0", + "@docusaurus/theme-translations": "3.4.0", + "@docusaurus/types": "3.4.0", + "@docusaurus/utils": "3.4.0", + "@docusaurus/utils-common": "3.4.0", + "@docusaurus/utils-validation": "3.4.0", + "@mdx-js/react": "^3.0.0", + "clsx": "^2.0.0", + "copy-text-to-clipboard": "^3.2.0", + "infima": "0.2.0-alpha.43", + "lodash": "^4.17.21", + "nprogress": "^0.2.0", + "postcss": "^8.4.26", + "prism-react-renderer": "^2.3.0", + "prismjs": "^1.29.0", + "react-router-dom": "^5.3.4", + "rtlcss": "^4.1.0", + "tslib": "^2.6.0", + "utility-types": "^3.10.0" + }, + "engines": { + "node": ">=18.0" + }, + "peerDependencies": { + "react": "^18.0.0", + "react-dom": "^18.0.0" + } + }, + "node_modules/@docusaurus/theme-common": { + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/@docusaurus/theme-common/-/theme-common-3.4.0.tgz", + "integrity": "sha512-0A27alXuv7ZdCg28oPE8nH/Iz73/IUejVaCazqu9elS4ypjiLhK3KfzdSQBnL/g7YfHSlymZKdiOHEo8fJ0qMA==", + "dependencies": { + "@docusaurus/mdx-loader": "3.4.0", + "@docusaurus/module-type-aliases": "3.4.0", + "@docusaurus/plugin-content-blog": "3.4.0", + "@docusaurus/plugin-content-docs": "3.4.0", + "@docusaurus/plugin-content-pages": "3.4.0", + "@docusaurus/utils": "3.4.0", + "@docusaurus/utils-common": "3.4.0", + "@types/history": "^4.7.11", + "@types/react": "*", + "@types/react-router-config": "*", + "clsx": "^2.0.0", + "parse-numeric-range": "^1.3.0", + "prism-react-renderer": "^2.3.0", + "tslib": "^2.6.0", + "utility-types": "^3.10.0" + }, + "engines": { + "node": ">=18.0" + }, + "peerDependencies": { + "react": "^18.0.0", + "react-dom": "^18.0.0" + } + }, + "node_modules/@docusaurus/theme-mermaid": { + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/@docusaurus/theme-mermaid/-/theme-mermaid-3.4.0.tgz", + "integrity": "sha512-3w5QW0HEZ2O6x2w6lU3ZvOe1gNXP2HIoKDMJBil1VmLBc9PmpAG17VmfhI/p3L2etNmOiVs5GgniUqvn8AFEGQ==", + "dependencies": { + "@docusaurus/core": "3.4.0", + "@docusaurus/module-type-aliases": "3.4.0", + "@docusaurus/theme-common": "3.4.0", + "@docusaurus/types": "3.4.0", + "@docusaurus/utils-validation": "3.4.0", + "mermaid": "^10.4.0", + "tslib": "^2.6.0" + }, + "engines": { + "node": ">=18.0" + }, + "peerDependencies": { + "react": "^18.0.0", + "react-dom": "^18.0.0" + } + }, + "node_modules/@docusaurus/theme-search-algolia": { + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/@docusaurus/theme-search-algolia/-/theme-search-algolia-3.4.0.tgz", + "integrity": "sha512-aiHFx7OCw4Wck1z6IoShVdUWIjntC8FHCw9c5dR8r3q4Ynh+zkS8y2eFFunN/DL6RXPzpnvKCg3vhLQYJDmT9Q==", + "dev": true, + "dependencies": { + "@docsearch/react": "^3.5.2", + "@docusaurus/core": "3.4.0", + "@docusaurus/logger": "3.4.0", + "@docusaurus/plugin-content-docs": "3.4.0", + "@docusaurus/theme-common": "3.4.0", + "@docusaurus/theme-translations": "3.4.0", + "@docusaurus/utils": "3.4.0", + "@docusaurus/utils-validation": "3.4.0", + "algoliasearch": "^4.18.0", + "algoliasearch-helper": "^3.13.3", + "clsx": "^2.0.0", + "eta": "^2.2.0", + "fs-extra": "^11.1.1", + "lodash": "^4.17.21", + "tslib": "^2.6.0", + "utility-types": "^3.10.0" + }, + "engines": { + "node": ">=18.0" + }, + "peerDependencies": { + "react": "^18.0.0", + "react-dom": "^18.0.0" + } + }, + "node_modules/@docusaurus/theme-translations": { + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/@docusaurus/theme-translations/-/theme-translations-3.4.0.tgz", + "integrity": "sha512-zSxCSpmQCCdQU5Q4CnX/ID8CSUUI3fvmq4hU/GNP/XoAWtXo9SAVnM3TzpU8Gb//H3WCsT8mJcTfyOk3d9ftNg==", + "dev": true, + "dependencies": { + "fs-extra": "^11.1.1", + "tslib": "^2.6.0" + }, + "engines": { + "node": ">=18.0" + } + }, + "node_modules/@docusaurus/types": { "version": "3.4.0", "resolved": "https://registry.npmjs.org/@docusaurus/types/-/types-3.4.0.tgz", "integrity": "sha512-4jcDO8kXi5Cf9TcyikB/yKmz14f2RZ2qTRerbHAsS+5InE9ZgSLBNLsewtFTcTOXSVcbU3FoGOzcNWAmU1TR0A==", @@ -2762,7 +2874,7 @@ "react-dom": "^18.0.0" } }, - "node_modules/@docusaurus/plugin-content-docs/node_modules/@docusaurus/utils": { + "node_modules/@docusaurus/utils": { "version": "3.4.0", "resolved": "https://registry.npmjs.org/@docusaurus/utils/-/utils-3.4.0.tgz", "integrity": "sha512-fRwnu3L3nnWaXOgs88BVBmG1yGjcQqZNHG+vInhEa2Sz2oQB+ZjbEMO5Rh9ePFpZ0YDiDUhpaVjwmS+AU2F14g==", @@ -2800,7 +2912,7 @@ } } }, - "node_modules/@docusaurus/plugin-content-docs/node_modules/@docusaurus/utils-common": { + "node_modules/@docusaurus/utils-common": { "version": "3.4.0", "resolved": "https://registry.npmjs.org/@docusaurus/utils-common/-/utils-common-3.4.0.tgz", "integrity": "sha512-NVx54Wr4rCEKsjOH5QEVvxIqVvm+9kh7q8aYTU5WzUU9/Hctd6aTrcZ3G0Id4zYJ+AeaG5K5qHA4CY5Kcm2iyQ==", @@ -2819,7 +2931,7 @@ } } }, - "node_modules/@docusaurus/plugin-content-docs/node_modules/@docusaurus/utils-validation": { + "node_modules/@docusaurus/utils-validation": { "version": "3.4.0", "resolved": "https://registry.npmjs.org/@docusaurus/utils-validation/-/utils-validation-3.4.0.tgz", "integrity": "sha512-hYQ9fM+AXYVTWxJOT1EuNaRnrR2WGpRdLDQG07O8UOpsvCPWUVOeo26Rbm0JWY2sGLfzAb+tvJ62yF+8F+TV0g==", @@ -2837,1698 +2949,6 @@ "node": ">=18.0" } }, - "node_modules/@docusaurus/plugin-content-docs/node_modules/@svgr/babel-plugin-add-jsx-attribute": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-add-jsx-attribute/-/babel-plugin-add-jsx-attribute-8.0.0.tgz", - "integrity": "sha512-b9MIk7yhdS1pMCZM8VeNfUlSKVRhsHZNMl5O9SfaX0l0t5wjdgu4IDzGB8bpnGBBOjGST3rRFVsaaEtI4W6f7g==", - "engines": { - "node": ">=14" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/gregberge" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@docusaurus/plugin-content-docs/node_modules/@svgr/babel-plugin-replace-jsx-attribute-value": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-replace-jsx-attribute-value/-/babel-plugin-replace-jsx-attribute-value-8.0.0.tgz", - "integrity": "sha512-KVQ+PtIjb1BuYT3ht8M5KbzWBhdAjjUPdlMtpuw/VjT8coTrItWX6Qafl9+ji831JaJcu6PJNKCV0bp01lBNzQ==", - "engines": { - "node": ">=14" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/gregberge" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@docusaurus/plugin-content-docs/node_modules/@svgr/babel-plugin-svg-dynamic-title": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-svg-dynamic-title/-/babel-plugin-svg-dynamic-title-8.0.0.tgz", - "integrity": "sha512-omNiKqwjNmOQJ2v6ge4SErBbkooV2aAWwaPFs2vUY7p7GhVkzRkJ00kILXQvRhA6miHnNpXv7MRnnSjdRjK8og==", - "engines": { - "node": ">=14" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/gregberge" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@docusaurus/plugin-content-docs/node_modules/@svgr/babel-plugin-svg-em-dimensions": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-svg-em-dimensions/-/babel-plugin-svg-em-dimensions-8.0.0.tgz", - "integrity": "sha512-mURHYnu6Iw3UBTbhGwE/vsngtCIbHE43xCRK7kCw4t01xyGqb2Pd+WXekRRoFOBIY29ZoOhUCTEweDMdrjfi9g==", - "engines": { - "node": ">=14" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/gregberge" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@docusaurus/plugin-content-docs/node_modules/@svgr/babel-plugin-transform-react-native-svg": { - "version": "8.1.0", - "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-transform-react-native-svg/-/babel-plugin-transform-react-native-svg-8.1.0.tgz", - "integrity": "sha512-Tx8T58CHo+7nwJ+EhUwx3LfdNSG9R2OKfaIXXs5soiy5HtgoAEkDay9LIimLOcG8dJQH1wPZp/cnAv6S9CrR1Q==", - "engines": { - "node": ">=14" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/gregberge" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@docusaurus/plugin-content-docs/node_modules/@svgr/babel-plugin-transform-svg-component": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-transform-svg-component/-/babel-plugin-transform-svg-component-8.0.0.tgz", - "integrity": "sha512-DFx8xa3cZXTdb/k3kfPeaixecQLgKh5NVBMwD0AQxOzcZawK4oo1Jh9LbrcACUivsCA7TLG8eeWgrDXjTMhRmw==", - "engines": { - "node": ">=12" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/gregberge" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@docusaurus/plugin-content-docs/node_modules/@svgr/babel-preset": { - "version": "8.1.0", - "resolved": "https://registry.npmjs.org/@svgr/babel-preset/-/babel-preset-8.1.0.tgz", - "integrity": "sha512-7EYDbHE7MxHpv4sxvnVPngw5fuR6pw79SkcrILHJ/iMpuKySNCl5W1qcwPEpU+LgyRXOaAFgH0KhwD18wwg6ug==", - "dependencies": { - "@svgr/babel-plugin-add-jsx-attribute": "8.0.0", - "@svgr/babel-plugin-remove-jsx-attribute": "8.0.0", - "@svgr/babel-plugin-remove-jsx-empty-expression": "8.0.0", - "@svgr/babel-plugin-replace-jsx-attribute-value": "8.0.0", - "@svgr/babel-plugin-svg-dynamic-title": "8.0.0", - "@svgr/babel-plugin-svg-em-dimensions": "8.0.0", - "@svgr/babel-plugin-transform-react-native-svg": "8.1.0", - "@svgr/babel-plugin-transform-svg-component": "8.0.0" - }, - "engines": { - "node": ">=14" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/gregberge" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@docusaurus/plugin-content-docs/node_modules/@svgr/core": { - "version": "8.1.0", - "resolved": "https://registry.npmjs.org/@svgr/core/-/core-8.1.0.tgz", - "integrity": "sha512-8QqtOQT5ACVlmsvKOJNEaWmRPmcojMOzCz4Hs2BGG/toAp/K38LcsMRyLp349glq5AzJbCEeimEoxaX6v/fLrA==", - "dependencies": { - "@babel/core": "^7.21.3", - "@svgr/babel-preset": "8.1.0", - "camelcase": "^6.2.0", - "cosmiconfig": "^8.1.3", - "snake-case": "^3.0.4" - }, - "engines": { - "node": ">=14" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/gregberge" - } - }, - "node_modules/@docusaurus/plugin-content-docs/node_modules/@svgr/hast-util-to-babel-ast": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/@svgr/hast-util-to-babel-ast/-/hast-util-to-babel-ast-8.0.0.tgz", - "integrity": "sha512-EbDKwO9GpfWP4jN9sGdYwPBU0kdomaPIL2Eu4YwmgP+sJeXT+L7bMwJUBnhzfH8Q2qMBqZ4fJwpCyYsAN3mt2Q==", - "dependencies": { - "@babel/types": "^7.21.3", - "entities": "^4.4.0" - }, - "engines": { - "node": ">=14" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/gregberge" - } - }, - "node_modules/@docusaurus/plugin-content-docs/node_modules/@svgr/plugin-jsx": { - "version": "8.1.0", - "resolved": "https://registry.npmjs.org/@svgr/plugin-jsx/-/plugin-jsx-8.1.0.tgz", - "integrity": "sha512-0xiIyBsLlr8quN+WyuxooNW9RJ0Dpr8uOnH/xrCVO8GLUcwHISwj1AG0k+LFzteTkAA0GbX0kj9q6Dk70PTiPA==", - "dependencies": { - "@babel/core": "^7.21.3", - "@svgr/babel-preset": "8.1.0", - "@svgr/hast-util-to-babel-ast": "8.0.0", - "svg-parser": "^2.0.4" - }, - "engines": { - "node": ">=14" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/gregberge" - }, - "peerDependencies": { - "@svgr/core": "*" - } - }, - "node_modules/@docusaurus/plugin-content-docs/node_modules/@svgr/plugin-svgo": { - "version": "8.1.0", - "resolved": "https://registry.npmjs.org/@svgr/plugin-svgo/-/plugin-svgo-8.1.0.tgz", - "integrity": "sha512-Ywtl837OGO9pTLIN/onoWLmDQ4zFUycI1g76vuKGEz6evR/ZTJlJuz3G/fIkb6OVBJ2g0o6CGJzaEjfmEo3AHA==", - "dependencies": { - "cosmiconfig": "^8.1.3", - "deepmerge": "^4.3.1", - "svgo": "^3.0.2" - }, - "engines": { - "node": ">=14" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/gregberge" - }, - "peerDependencies": { - "@svgr/core": "*" - } - }, - "node_modules/@docusaurus/plugin-content-docs/node_modules/@svgr/webpack": { - "version": "8.1.0", - "resolved": "https://registry.npmjs.org/@svgr/webpack/-/webpack-8.1.0.tgz", - "integrity": "sha512-LnhVjMWyMQV9ZmeEy26maJk+8HTIbd59cH4F2MJ439k9DqejRisfFNGAPvRYlKETuh9LrImlS8aKsBgKjMA8WA==", - "dependencies": { - "@babel/core": "^7.21.3", - "@babel/plugin-transform-react-constant-elements": "^7.21.3", - "@babel/preset-env": "^7.20.2", - "@babel/preset-react": "^7.18.6", - "@babel/preset-typescript": "^7.21.0", - "@svgr/core": "8.1.0", - "@svgr/plugin-jsx": "8.1.0", - "@svgr/plugin-svgo": "8.1.0" - }, - "engines": { - "node": ">=14" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/gregberge" - } - }, - "node_modules/@docusaurus/plugin-content-docs/node_modules/@types/hast": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/@types/hast/-/hast-3.0.4.tgz", - "integrity": "sha512-WPs+bbQw5aCj+x6laNGWLH3wviHtoCv/P3+otBhbOhJgG8qtpdAMlTCxLtsTWA7LH1Oh/bFCHsBn0TPS5m30EQ==", - "dependencies": { - "@types/unist": "*" - } - }, - "node_modules/@docusaurus/plugin-content-docs/node_modules/cosmiconfig": { - "version": "8.3.6", - "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-8.3.6.tgz", - "integrity": "sha512-kcZ6+W5QzcJ3P1Mt+83OUv/oHFqZHIx8DuxG6eZ5RGMERoLqp4BuGjhHLYGK+Kf5XVkQvqBSmAy/nGWN3qDgEA==", - "dependencies": { - "import-fresh": "^3.3.0", - "js-yaml": "^4.1.0", - "parse-json": "^5.2.0", - "path-type": "^4.0.0" - }, - "engines": { - "node": ">=14" - }, - "funding": { - "url": "https://github.com/sponsors/d-fischer" - }, - "peerDependencies": { - "typescript": ">=4.9.5" - }, - "peerDependenciesMeta": { - "typescript": { - "optional": true - } - } - }, - "node_modules/@docusaurus/plugin-content-docs/node_modules/css-declaration-sorter": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/css-declaration-sorter/-/css-declaration-sorter-7.2.0.tgz", - "integrity": "sha512-h70rUM+3PNFuaBDTLe8wF/cdWu+dOZmb7pJt8Z2sedYbAcQVQV/tEchueg3GWxwqS0cxtbxmaHEdkNACqcvsow==", - "engines": { - "node": "^14 || ^16 || >=18" - }, - "peerDependencies": { - "postcss": "^8.0.9" - } - }, - "node_modules/@docusaurus/plugin-content-docs/node_modules/css-minimizer-webpack-plugin": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/css-minimizer-webpack-plugin/-/css-minimizer-webpack-plugin-5.0.1.tgz", - "integrity": "sha512-3caImjKFQkS+ws1TGcFn0V1HyDJFq1Euy589JlD6/3rV2kj+w7r5G9WDMgSHvpvXHNZ2calVypZWuEDQd9wfLg==", - "dependencies": { - "@jridgewell/trace-mapping": "^0.3.18", - "cssnano": "^6.0.1", - "jest-worker": "^29.4.3", - "postcss": "^8.4.24", - "schema-utils": "^4.0.1", - "serialize-javascript": "^6.0.1" - }, - "engines": { - "node": ">= 14.15.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" - }, - "peerDependencies": { - "webpack": "^5.0.0" - }, - "peerDependenciesMeta": { - "@parcel/css": { - "optional": true - }, - "@swc/css": { - "optional": true - }, - "clean-css": { - "optional": true - }, - "csso": { - "optional": true - }, - "esbuild": { - "optional": true - }, - "lightningcss": { - "optional": true - } - } - }, - "node_modules/@docusaurus/plugin-content-docs/node_modules/css-select": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/css-select/-/css-select-5.1.0.tgz", - "integrity": "sha512-nwoRF1rvRRnnCqqY7updORDsuqKzqYJ28+oSMaJMMgOauh3fvwHqMS7EZpIPqK8GL+g9mKxF1vP/ZjSeNjEVHg==", - "dependencies": { - "boolbase": "^1.0.0", - "css-what": "^6.1.0", - "domhandler": "^5.0.2", - "domutils": "^3.0.1", - "nth-check": "^2.0.1" - }, - "funding": { - "url": "https://github.com/sponsors/fb55" - } - }, - "node_modules/@docusaurus/plugin-content-docs/node_modules/css-tree": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/css-tree/-/css-tree-2.3.1.tgz", - "integrity": "sha512-6Fv1DV/TYw//QF5IzQdqsNDjx/wc8TrMBZsqjL9eW01tWb7R7k/mq+/VXfJCl7SoD5emsJop9cOByJZfs8hYIw==", - "dependencies": { - "mdn-data": "2.0.30", - "source-map-js": "^1.0.1" - }, - "engines": { - "node": "^10 || ^12.20.0 || ^14.13.0 || >=15.0.0" - } - }, - "node_modules/@docusaurus/plugin-content-docs/node_modules/cssnano": { - "version": "6.1.2", - "resolved": "https://registry.npmjs.org/cssnano/-/cssnano-6.1.2.tgz", - "integrity": "sha512-rYk5UeX7VAM/u0lNqewCdasdtPK81CgX8wJFLEIXHbV2oldWRgJAsZrdhRXkV1NJzA2g850KiFm9mMU2HxNxMA==", - "dependencies": { - "cssnano-preset-default": "^6.1.2", - "lilconfig": "^3.1.1" - }, - "engines": { - "node": "^14 || ^16 || >=18.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/cssnano" - }, - "peerDependencies": { - "postcss": "^8.4.31" - } - }, - "node_modules/@docusaurus/plugin-content-docs/node_modules/cssnano-preset-advanced": { - "version": "6.1.2", - "resolved": "https://registry.npmjs.org/cssnano-preset-advanced/-/cssnano-preset-advanced-6.1.2.tgz", - "integrity": "sha512-Nhao7eD8ph2DoHolEzQs5CfRpiEP0xa1HBdnFZ82kvqdmbwVBUr2r1QuQ4t1pi+D1ZpqpcO4T+wy/7RxzJ/WPQ==", - "dependencies": { - "autoprefixer": "^10.4.19", - "browserslist": "^4.23.0", - "cssnano-preset-default": "^6.1.2", - "postcss-discard-unused": "^6.0.5", - "postcss-merge-idents": "^6.0.3", - "postcss-reduce-idents": "^6.0.3", - "postcss-zindex": "^6.0.2" - }, - "engines": { - "node": "^14 || ^16 || >=18.0" - }, - "peerDependencies": { - "postcss": "^8.4.31" - } - }, - "node_modules/@docusaurus/plugin-content-docs/node_modules/cssnano-preset-default": { - "version": "6.1.2", - "resolved": "https://registry.npmjs.org/cssnano-preset-default/-/cssnano-preset-default-6.1.2.tgz", - "integrity": "sha512-1C0C+eNaeN8OcHQa193aRgYexyJtU8XwbdieEjClw+J9d94E41LwT6ivKH0WT+fYwYWB0Zp3I3IZ7tI/BbUbrg==", - "dependencies": { - "browserslist": "^4.23.0", - "css-declaration-sorter": "^7.2.0", - "cssnano-utils": "^4.0.2", - "postcss-calc": "^9.0.1", - "postcss-colormin": "^6.1.0", - "postcss-convert-values": "^6.1.0", - "postcss-discard-comments": "^6.0.2", - "postcss-discard-duplicates": "^6.0.3", - "postcss-discard-empty": "^6.0.3", - "postcss-discard-overridden": "^6.0.2", - "postcss-merge-longhand": "^6.0.5", - "postcss-merge-rules": "^6.1.1", - "postcss-minify-font-values": "^6.1.0", - "postcss-minify-gradients": "^6.0.3", - "postcss-minify-params": "^6.1.0", - "postcss-minify-selectors": "^6.0.4", - "postcss-normalize-charset": "^6.0.2", - "postcss-normalize-display-values": "^6.0.2", - "postcss-normalize-positions": "^6.0.2", - "postcss-normalize-repeat-style": "^6.0.2", - "postcss-normalize-string": "^6.0.2", - "postcss-normalize-timing-functions": "^6.0.2", - "postcss-normalize-unicode": "^6.1.0", - "postcss-normalize-url": "^6.0.2", - "postcss-normalize-whitespace": "^6.0.2", - "postcss-ordered-values": "^6.0.2", - "postcss-reduce-initial": "^6.1.0", - "postcss-reduce-transforms": "^6.0.2", - "postcss-svgo": "^6.0.3", - "postcss-unique-selectors": "^6.0.4" - }, - "engines": { - "node": "^14 || ^16 || >=18.0" - }, - "peerDependencies": { - "postcss": "^8.4.31" - } - }, - "node_modules/@docusaurus/plugin-content-docs/node_modules/cssnano-utils": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/cssnano-utils/-/cssnano-utils-4.0.2.tgz", - "integrity": "sha512-ZR1jHg+wZ8o4c3zqf1SIUSTIvm/9mU343FMR6Obe/unskbvpGhZOo1J6d/r8D1pzkRQYuwbcH3hToOuoA2G7oQ==", - "engines": { - "node": "^14 || ^16 || >=18.0" - }, - "peerDependencies": { - "postcss": "^8.4.31" - } - }, - "node_modules/@docusaurus/plugin-content-docs/node_modules/csso": { - "version": "5.0.5", - "resolved": "https://registry.npmjs.org/csso/-/csso-5.0.5.tgz", - "integrity": "sha512-0LrrStPOdJj+SPCCrGhzryycLjwcgUSHBtxNA8aIDxf0GLsRh1cKYhB00Gd1lDOS4yGH69+SNn13+TWbVHETFQ==", - "dependencies": { - "css-tree": "~2.2.0" - }, - "engines": { - "node": "^10 || ^12.20.0 || ^14.13.0 || >=15.0.0", - "npm": ">=7.0.0" - } - }, - "node_modules/@docusaurus/plugin-content-docs/node_modules/csso/node_modules/css-tree": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/css-tree/-/css-tree-2.2.1.tgz", - "integrity": "sha512-OA0mILzGc1kCOCSJerOeqDxDQ4HOh+G8NbOJFOTgOCzpw7fCBubk0fEyxp8AgOL/jvLgYA/uV0cMbe43ElF1JA==", - "dependencies": { - "mdn-data": "2.0.28", - "source-map-js": "^1.0.1" - }, - "engines": { - "node": "^10 || ^12.20.0 || ^14.13.0 || >=15.0.0", - "npm": ">=7.0.0" - } - }, - "node_modules/@docusaurus/plugin-content-docs/node_modules/csso/node_modules/mdn-data": { - "version": "2.0.28", - "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.28.tgz", - "integrity": "sha512-aylIc7Z9y4yzHYAJNuESG3hfhC+0Ibp/MAMiaOZgNv4pmEdFyfZhhhny4MNiAfWdBQ1RQ2mfDWmM1x8SvGyp8g==" - }, - "node_modules/@docusaurus/plugin-content-docs/node_modules/dom-serializer": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-2.0.0.tgz", - "integrity": "sha512-wIkAryiqt/nV5EQKqQpo3SToSOV9J0DnbJqwK7Wv/Trc92zIAYZ4FlMu+JPFW1DfGFt81ZTCGgDEabffXeLyJg==", - "dependencies": { - "domelementtype": "^2.3.0", - "domhandler": "^5.0.2", - "entities": "^4.2.0" - }, - "funding": { - "url": "https://github.com/cheeriojs/dom-serializer?sponsor=1" - } - }, - "node_modules/@docusaurus/plugin-content-docs/node_modules/domhandler": { - "version": "5.0.3", - "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-5.0.3.tgz", - "integrity": "sha512-cgwlv/1iFQiFnU96XXgROh8xTeetsnJiDsTc7TYCLFd9+/WNkIqPTxiM/8pSd8VIrhXGTf1Ny1q1hquVqDJB5w==", - "dependencies": { - "domelementtype": "^2.3.0" - }, - "engines": { - "node": ">= 4" - }, - "funding": { - "url": "https://github.com/fb55/domhandler?sponsor=1" - } - }, - "node_modules/@docusaurus/plugin-content-docs/node_modules/domutils": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/domutils/-/domutils-3.1.0.tgz", - "integrity": "sha512-H78uMmQtI2AhgDJjWeQmHwJJ2bLPD3GMmO7Zja/ZZh84wkm+4ut+IUnUdRa8uCGX88DiVx1j6FRe1XfxEgjEZA==", - "dependencies": { - "dom-serializer": "^2.0.0", - "domelementtype": "^2.3.0", - "domhandler": "^5.0.3" - }, - "funding": { - "url": "https://github.com/fb55/domutils?sponsor=1" - } - }, - "node_modules/@docusaurus/plugin-content-docs/node_modules/html-minifier-terser": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/html-minifier-terser/-/html-minifier-terser-7.2.0.tgz", - "integrity": "sha512-tXgn3QfqPIpGl9o+K5tpcj3/MN4SfLtsx2GWwBC3SSd0tXQGyF3gsSqad8loJgKZGM3ZxbYDd5yhiBIdWpmvLA==", - "dependencies": { - "camel-case": "^4.1.2", - "clean-css": "~5.3.2", - "commander": "^10.0.0", - "entities": "^4.4.0", - "param-case": "^3.0.4", - "relateurl": "^0.2.7", - "terser": "^5.15.1" - }, - "bin": { - "html-minifier-terser": "cli.js" - }, - "engines": { - "node": "^14.13.1 || >=16.0.0" - } - }, - "node_modules/@docusaurus/plugin-content-docs/node_modules/html-minifier-terser/node_modules/commander": { - "version": "10.0.1", - "resolved": "https://registry.npmjs.org/commander/-/commander-10.0.1.tgz", - "integrity": "sha512-y4Mg2tXshplEbSGzx7amzPwKKOCGuoSRP/CjEdwwk0FOGlUbq6lKuoyDZTNZkmxHdJtp54hdfY/JUrdL7Xfdug==", - "engines": { - "node": ">=14" - } - }, - "node_modules/@docusaurus/plugin-content-docs/node_modules/lilconfig": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/lilconfig/-/lilconfig-3.1.2.tgz", - "integrity": "sha512-eop+wDAvpItUys0FWkHIKeC9ybYrTGbU41U5K7+bttZZeohvnY7M9dZ5kB21GNWiFT2q1OoPTvncPCgSOVO5ow==", - "engines": { - "node": ">=14" - }, - "funding": { - "url": "https://github.com/sponsors/antonk52" - } - }, - "node_modules/@docusaurus/plugin-content-docs/node_modules/mdn-data": { - "version": "2.0.30", - "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.30.tgz", - "integrity": "sha512-GaqWWShW4kv/G9IEucWScBx9G1/vsFZZJUO+tD26M8J8z3Kw5RDQjaoZe03YAClgeS/SWPOcb4nkFBTEi5DUEA==" - }, - "node_modules/@docusaurus/plugin-content-docs/node_modules/postcss-calc": { - "version": "9.0.1", - "resolved": "https://registry.npmjs.org/postcss-calc/-/postcss-calc-9.0.1.tgz", - "integrity": "sha512-TipgjGyzP5QzEhsOZUaIkeO5mKeMFpebWzRogWG/ysonUlnHcq5aJe0jOjpfzUU8PeSaBQnrE8ehR0QA5vs8PQ==", - "dependencies": { - "postcss-selector-parser": "^6.0.11", - "postcss-value-parser": "^4.2.0" - }, - "engines": { - "node": "^14 || ^16 || >=18.0" - }, - "peerDependencies": { - "postcss": "^8.2.2" - } - }, - "node_modules/@docusaurus/plugin-content-docs/node_modules/postcss-colormin": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/postcss-colormin/-/postcss-colormin-6.1.0.tgz", - "integrity": "sha512-x9yX7DOxeMAR+BgGVnNSAxmAj98NX/YxEMNFP+SDCEeNLb2r3i6Hh1ksMsnW8Ub5SLCpbescQqn9YEbE9554Sw==", - "dependencies": { - "browserslist": "^4.23.0", - "caniuse-api": "^3.0.0", - "colord": "^2.9.3", - "postcss-value-parser": "^4.2.0" - }, - "engines": { - "node": "^14 || ^16 || >=18.0" - }, - "peerDependencies": { - "postcss": "^8.4.31" - } - }, - "node_modules/@docusaurus/plugin-content-docs/node_modules/postcss-convert-values": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/postcss-convert-values/-/postcss-convert-values-6.1.0.tgz", - "integrity": "sha512-zx8IwP/ts9WvUM6NkVSkiU902QZL1bwPhaVaLynPtCsOTqp+ZKbNi+s6XJg3rfqpKGA/oc7Oxk5t8pOQJcwl/w==", - "dependencies": { - "browserslist": "^4.23.0", - "postcss-value-parser": "^4.2.0" - }, - "engines": { - "node": "^14 || ^16 || >=18.0" - }, - "peerDependencies": { - "postcss": "^8.4.31" - } - }, - "node_modules/@docusaurus/plugin-content-docs/node_modules/postcss-discard-comments": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/postcss-discard-comments/-/postcss-discard-comments-6.0.2.tgz", - "integrity": "sha512-65w/uIqhSBBfQmYnG92FO1mWZjJ4GL5b8atm5Yw2UgrwD7HiNiSSNwJor1eCFGzUgYnN/iIknhNRVqjrrpuglw==", - "engines": { - "node": "^14 || ^16 || >=18.0" - }, - "peerDependencies": { - "postcss": "^8.4.31" - } - }, - "node_modules/@docusaurus/plugin-content-docs/node_modules/postcss-discard-duplicates": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/postcss-discard-duplicates/-/postcss-discard-duplicates-6.0.3.tgz", - "integrity": "sha512-+JA0DCvc5XvFAxwx6f/e68gQu/7Z9ud584VLmcgto28eB8FqSFZwtrLwB5Kcp70eIoWP/HXqz4wpo8rD8gpsTw==", - "engines": { - "node": "^14 || ^16 || >=18.0" - }, - "peerDependencies": { - "postcss": "^8.4.31" - } - }, - "node_modules/@docusaurus/plugin-content-docs/node_modules/postcss-discard-empty": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/postcss-discard-empty/-/postcss-discard-empty-6.0.3.tgz", - "integrity": "sha512-znyno9cHKQsK6PtxL5D19Fj9uwSzC2mB74cpT66fhgOadEUPyXFkbgwm5tvc3bt3NAy8ltE5MrghxovZRVnOjQ==", - "engines": { - "node": "^14 || ^16 || >=18.0" - }, - "peerDependencies": { - "postcss": "^8.4.31" - } - }, - "node_modules/@docusaurus/plugin-content-docs/node_modules/postcss-discard-overridden": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/postcss-discard-overridden/-/postcss-discard-overridden-6.0.2.tgz", - "integrity": "sha512-j87xzI4LUggC5zND7KdjsI25APtyMuynXZSujByMaav2roV6OZX+8AaCUcZSWqckZpjAjRyFDdpqybgjFO0HJQ==", - "engines": { - "node": "^14 || ^16 || >=18.0" - }, - "peerDependencies": { - "postcss": "^8.4.31" - } - }, - "node_modules/@docusaurus/plugin-content-docs/node_modules/postcss-discard-unused": { - "version": "6.0.5", - "resolved": "https://registry.npmjs.org/postcss-discard-unused/-/postcss-discard-unused-6.0.5.tgz", - "integrity": "sha512-wHalBlRHkaNnNwfC8z+ppX57VhvS+HWgjW508esjdaEYr3Mx7Gnn2xA4R/CKf5+Z9S5qsqC+Uzh4ueENWwCVUA==", - "dependencies": { - "postcss-selector-parser": "^6.0.16" - }, - "engines": { - "node": "^14 || ^16 || >=18.0" - }, - "peerDependencies": { - "postcss": "^8.4.31" - } - }, - "node_modules/@docusaurus/plugin-content-docs/node_modules/postcss-merge-idents": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/postcss-merge-idents/-/postcss-merge-idents-6.0.3.tgz", - "integrity": "sha512-1oIoAsODUs6IHQZkLQGO15uGEbK3EAl5wi9SS8hs45VgsxQfMnxvt+L+zIr7ifZFIH14cfAeVe2uCTa+SPRa3g==", - "dependencies": { - "cssnano-utils": "^4.0.2", - "postcss-value-parser": "^4.2.0" - }, - "engines": { - "node": "^14 || ^16 || >=18.0" - }, - "peerDependencies": { - "postcss": "^8.4.31" - } - }, - "node_modules/@docusaurus/plugin-content-docs/node_modules/postcss-merge-longhand": { - "version": "6.0.5", - "resolved": "https://registry.npmjs.org/postcss-merge-longhand/-/postcss-merge-longhand-6.0.5.tgz", - "integrity": "sha512-5LOiordeTfi64QhICp07nzzuTDjNSO8g5Ksdibt44d+uvIIAE1oZdRn8y/W5ZtYgRH/lnLDlvi9F8btZcVzu3w==", - "dependencies": { - "postcss-value-parser": "^4.2.0", - "stylehacks": "^6.1.1" - }, - "engines": { - "node": "^14 || ^16 || >=18.0" - }, - "peerDependencies": { - "postcss": "^8.4.31" - } - }, - "node_modules/@docusaurus/plugin-content-docs/node_modules/postcss-merge-rules": { - "version": "6.1.1", - "resolved": "https://registry.npmjs.org/postcss-merge-rules/-/postcss-merge-rules-6.1.1.tgz", - "integrity": "sha512-KOdWF0gju31AQPZiD+2Ar9Qjowz1LTChSjFFbS+e2sFgc4uHOp3ZvVX4sNeTlk0w2O31ecFGgrFzhO0RSWbWwQ==", - "dependencies": { - "browserslist": "^4.23.0", - "caniuse-api": "^3.0.0", - "cssnano-utils": "^4.0.2", - "postcss-selector-parser": "^6.0.16" - }, - "engines": { - "node": "^14 || ^16 || >=18.0" - }, - "peerDependencies": { - "postcss": "^8.4.31" - } - }, - "node_modules/@docusaurus/plugin-content-docs/node_modules/postcss-minify-font-values": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/postcss-minify-font-values/-/postcss-minify-font-values-6.1.0.tgz", - "integrity": "sha512-gklfI/n+9rTh8nYaSJXlCo3nOKqMNkxuGpTn/Qm0gstL3ywTr9/WRKznE+oy6fvfolH6dF+QM4nCo8yPLdvGJg==", - "dependencies": { - "postcss-value-parser": "^4.2.0" - }, - "engines": { - "node": "^14 || ^16 || >=18.0" - }, - "peerDependencies": { - "postcss": "^8.4.31" - } - }, - "node_modules/@docusaurus/plugin-content-docs/node_modules/postcss-minify-gradients": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/postcss-minify-gradients/-/postcss-minify-gradients-6.0.3.tgz", - "integrity": "sha512-4KXAHrYlzF0Rr7uc4VrfwDJ2ajrtNEpNEuLxFgwkhFZ56/7gaE4Nr49nLsQDZyUe+ds+kEhf+YAUolJiYXF8+Q==", - "dependencies": { - "colord": "^2.9.3", - "cssnano-utils": "^4.0.2", - "postcss-value-parser": "^4.2.0" - }, - "engines": { - "node": "^14 || ^16 || >=18.0" - }, - "peerDependencies": { - "postcss": "^8.4.31" - } - }, - "node_modules/@docusaurus/plugin-content-docs/node_modules/postcss-minify-params": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/postcss-minify-params/-/postcss-minify-params-6.1.0.tgz", - "integrity": "sha512-bmSKnDtyyE8ujHQK0RQJDIKhQ20Jq1LYiez54WiaOoBtcSuflfK3Nm596LvbtlFcpipMjgClQGyGr7GAs+H1uA==", - "dependencies": { - "browserslist": "^4.23.0", - "cssnano-utils": "^4.0.2", - "postcss-value-parser": "^4.2.0" - }, - "engines": { - "node": "^14 || ^16 || >=18.0" - }, - "peerDependencies": { - "postcss": "^8.4.31" - } - }, - "node_modules/@docusaurus/plugin-content-docs/node_modules/postcss-minify-selectors": { - "version": "6.0.4", - "resolved": "https://registry.npmjs.org/postcss-minify-selectors/-/postcss-minify-selectors-6.0.4.tgz", - "integrity": "sha512-L8dZSwNLgK7pjTto9PzWRoMbnLq5vsZSTu8+j1P/2GB8qdtGQfn+K1uSvFgYvgh83cbyxT5m43ZZhUMTJDSClQ==", - "dependencies": { - "postcss-selector-parser": "^6.0.16" - }, - "engines": { - "node": "^14 || ^16 || >=18.0" - }, - "peerDependencies": { - "postcss": "^8.4.31" - } - }, - "node_modules/@docusaurus/plugin-content-docs/node_modules/postcss-normalize-charset": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/postcss-normalize-charset/-/postcss-normalize-charset-6.0.2.tgz", - "integrity": "sha512-a8N9czmdnrjPHa3DeFlwqst5eaL5W8jYu3EBbTTkI5FHkfMhFZh1EGbku6jhHhIzTA6tquI2P42NtZ59M/H/kQ==", - "engines": { - "node": "^14 || ^16 || >=18.0" - }, - "peerDependencies": { - "postcss": "^8.4.31" - } - }, - "node_modules/@docusaurus/plugin-content-docs/node_modules/postcss-normalize-display-values": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/postcss-normalize-display-values/-/postcss-normalize-display-values-6.0.2.tgz", - "integrity": "sha512-8H04Mxsb82ON/aAkPeq8kcBbAtI5Q2a64X/mnRRfPXBq7XeogoQvReqxEfc0B4WPq1KimjezNC8flUtC3Qz6jg==", - "dependencies": { - "postcss-value-parser": "^4.2.0" - }, - "engines": { - "node": "^14 || ^16 || >=18.0" - }, - "peerDependencies": { - "postcss": "^8.4.31" - } - }, - "node_modules/@docusaurus/plugin-content-docs/node_modules/postcss-normalize-positions": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/postcss-normalize-positions/-/postcss-normalize-positions-6.0.2.tgz", - "integrity": "sha512-/JFzI441OAB9O7VnLA+RtSNZvQ0NCFZDOtp6QPFo1iIyawyXg0YI3CYM9HBy1WvwCRHnPep/BvI1+dGPKoXx/Q==", - "dependencies": { - "postcss-value-parser": "^4.2.0" - }, - "engines": { - "node": "^14 || ^16 || >=18.0" - }, - "peerDependencies": { - "postcss": "^8.4.31" - } - }, - "node_modules/@docusaurus/plugin-content-docs/node_modules/postcss-normalize-repeat-style": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/postcss-normalize-repeat-style/-/postcss-normalize-repeat-style-6.0.2.tgz", - "integrity": "sha512-YdCgsfHkJ2jEXwR4RR3Tm/iOxSfdRt7jplS6XRh9Js9PyCR/aka/FCb6TuHT2U8gQubbm/mPmF6L7FY9d79VwQ==", - "dependencies": { - "postcss-value-parser": "^4.2.0" - }, - "engines": { - "node": "^14 || ^16 || >=18.0" - }, - "peerDependencies": { - "postcss": "^8.4.31" - } - }, - "node_modules/@docusaurus/plugin-content-docs/node_modules/postcss-normalize-string": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/postcss-normalize-string/-/postcss-normalize-string-6.0.2.tgz", - "integrity": "sha512-vQZIivlxlfqqMp4L9PZsFE4YUkWniziKjQWUtsxUiVsSSPelQydwS8Wwcuw0+83ZjPWNTl02oxlIvXsmmG+CiQ==", - "dependencies": { - "postcss-value-parser": "^4.2.0" - }, - "engines": { - "node": "^14 || ^16 || >=18.0" - }, - "peerDependencies": { - "postcss": "^8.4.31" - } - }, - "node_modules/@docusaurus/plugin-content-docs/node_modules/postcss-normalize-timing-functions": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/postcss-normalize-timing-functions/-/postcss-normalize-timing-functions-6.0.2.tgz", - "integrity": "sha512-a+YrtMox4TBtId/AEwbA03VcJgtyW4dGBizPl7e88cTFULYsprgHWTbfyjSLyHeBcK/Q9JhXkt2ZXiwaVHoMzA==", - "dependencies": { - "postcss-value-parser": "^4.2.0" - }, - "engines": { - "node": "^14 || ^16 || >=18.0" - }, - "peerDependencies": { - "postcss": "^8.4.31" - } - }, - "node_modules/@docusaurus/plugin-content-docs/node_modules/postcss-normalize-unicode": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/postcss-normalize-unicode/-/postcss-normalize-unicode-6.1.0.tgz", - "integrity": "sha512-QVC5TQHsVj33otj8/JD869Ndr5Xcc/+fwRh4HAsFsAeygQQXm+0PySrKbr/8tkDKzW+EVT3QkqZMfFrGiossDg==", - "dependencies": { - "browserslist": "^4.23.0", - "postcss-value-parser": "^4.2.0" - }, - "engines": { - "node": "^14 || ^16 || >=18.0" - }, - "peerDependencies": { - "postcss": "^8.4.31" - } - }, - "node_modules/@docusaurus/plugin-content-docs/node_modules/postcss-normalize-url": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/postcss-normalize-url/-/postcss-normalize-url-6.0.2.tgz", - "integrity": "sha512-kVNcWhCeKAzZ8B4pv/DnrU1wNh458zBNp8dh4y5hhxih5RZQ12QWMuQrDgPRw3LRl8mN9vOVfHl7uhvHYMoXsQ==", - "dependencies": { - "postcss-value-parser": "^4.2.0" - }, - "engines": { - "node": "^14 || ^16 || >=18.0" - }, - "peerDependencies": { - "postcss": "^8.4.31" - } - }, - "node_modules/@docusaurus/plugin-content-docs/node_modules/postcss-normalize-whitespace": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/postcss-normalize-whitespace/-/postcss-normalize-whitespace-6.0.2.tgz", - "integrity": "sha512-sXZ2Nj1icbJOKmdjXVT9pnyHQKiSAyuNQHSgRCUgThn2388Y9cGVDR+E9J9iAYbSbLHI+UUwLVl1Wzco/zgv0Q==", - "dependencies": { - "postcss-value-parser": "^4.2.0" - }, - "engines": { - "node": "^14 || ^16 || >=18.0" - }, - "peerDependencies": { - "postcss": "^8.4.31" - } - }, - "node_modules/@docusaurus/plugin-content-docs/node_modules/postcss-ordered-values": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/postcss-ordered-values/-/postcss-ordered-values-6.0.2.tgz", - "integrity": "sha512-VRZSOB+JU32RsEAQrO94QPkClGPKJEL/Z9PCBImXMhIeK5KAYo6slP/hBYlLgrCjFxyqvn5VC81tycFEDBLG1Q==", - "dependencies": { - "cssnano-utils": "^4.0.2", - "postcss-value-parser": "^4.2.0" - }, - "engines": { - "node": "^14 || ^16 || >=18.0" - }, - "peerDependencies": { - "postcss": "^8.4.31" - } - }, - "node_modules/@docusaurus/plugin-content-docs/node_modules/postcss-reduce-idents": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/postcss-reduce-idents/-/postcss-reduce-idents-6.0.3.tgz", - "integrity": "sha512-G3yCqZDpsNPoQgbDUy3T0E6hqOQ5xigUtBQyrmq3tn2GxlyiL0yyl7H+T8ulQR6kOcHJ9t7/9H4/R2tv8tJbMA==", - "dependencies": { - "postcss-value-parser": "^4.2.0" - }, - "engines": { - "node": "^14 || ^16 || >=18.0" - }, - "peerDependencies": { - "postcss": "^8.4.31" - } - }, - "node_modules/@docusaurus/plugin-content-docs/node_modules/postcss-reduce-initial": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/postcss-reduce-initial/-/postcss-reduce-initial-6.1.0.tgz", - "integrity": "sha512-RarLgBK/CrL1qZags04oKbVbrrVK2wcxhvta3GCxrZO4zveibqbRPmm2VI8sSgCXwoUHEliRSbOfpR0b/VIoiw==", - "dependencies": { - "browserslist": "^4.23.0", - "caniuse-api": "^3.0.0" - }, - "engines": { - "node": "^14 || ^16 || >=18.0" - }, - "peerDependencies": { - "postcss": "^8.4.31" - } - }, - "node_modules/@docusaurus/plugin-content-docs/node_modules/postcss-reduce-transforms": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/postcss-reduce-transforms/-/postcss-reduce-transforms-6.0.2.tgz", - "integrity": "sha512-sB+Ya++3Xj1WaT9+5LOOdirAxP7dJZms3GRcYheSPi1PiTMigsxHAdkrbItHxwYHr4kt1zL7mmcHstgMYT+aiA==", - "dependencies": { - "postcss-value-parser": "^4.2.0" - }, - "engines": { - "node": "^14 || ^16 || >=18.0" - }, - "peerDependencies": { - "postcss": "^8.4.31" - } - }, - "node_modules/@docusaurus/plugin-content-docs/node_modules/postcss-sort-media-queries": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/postcss-sort-media-queries/-/postcss-sort-media-queries-5.2.0.tgz", - "integrity": "sha512-AZ5fDMLD8SldlAYlvi8NIqo0+Z8xnXU2ia0jxmuhxAU+Lqt9K+AlmLNJ/zWEnE9x+Zx3qL3+1K20ATgNOr3fAA==", - "dependencies": { - "sort-css-media-queries": "2.2.0" - }, - "engines": { - "node": ">=14.0.0" - }, - "peerDependencies": { - "postcss": "^8.4.23" - } - }, - "node_modules/@docusaurus/plugin-content-docs/node_modules/postcss-svgo": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/postcss-svgo/-/postcss-svgo-6.0.3.tgz", - "integrity": "sha512-dlrahRmxP22bX6iKEjOM+c8/1p+81asjKT+V5lrgOH944ryx/OHpclnIbGsKVd3uWOXFLYJwCVf0eEkJGvO96g==", - "dependencies": { - "postcss-value-parser": "^4.2.0", - "svgo": "^3.2.0" - }, - "engines": { - "node": "^14 || ^16 || >= 18" - }, - "peerDependencies": { - "postcss": "^8.4.31" - } - }, - "node_modules/@docusaurus/plugin-content-docs/node_modules/postcss-unique-selectors": { - "version": "6.0.4", - "resolved": "https://registry.npmjs.org/postcss-unique-selectors/-/postcss-unique-selectors-6.0.4.tgz", - "integrity": "sha512-K38OCaIrO8+PzpArzkLKB42dSARtC2tmG6PvD4b1o1Q2E9Os8jzfWFfSy/rixsHwohtsDdFtAWGjFVFUdwYaMg==", - "dependencies": { - "postcss-selector-parser": "^6.0.16" - }, - "engines": { - "node": "^14 || ^16 || >=18.0" - }, - "peerDependencies": { - "postcss": "^8.4.31" - } - }, - "node_modules/@docusaurus/plugin-content-docs/node_modules/postcss-zindex": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/postcss-zindex/-/postcss-zindex-6.0.2.tgz", - "integrity": "sha512-5BxW9l1evPB/4ZIc+2GobEBoKC+h8gPGCMi+jxsYvd2x0mjq7wazk6DrP71pStqxE9Foxh5TVnonbWpFZzXaYg==", - "engines": { - "node": "^14 || ^16 || >=18.0" - }, - "peerDependencies": { - "postcss": "^8.4.31" - } - }, - "node_modules/@docusaurus/plugin-content-docs/node_modules/react-loadable": { - "name": "@docusaurus/react-loadable", - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/@docusaurus/react-loadable/-/react-loadable-6.0.0.tgz", - "integrity": "sha512-YMMxTUQV/QFSnbgrP3tjDzLHRg7vsbMn8e9HAa8o/1iXoiomo48b7sk/kkmWEuWNDPJVlKSJRB6Y2fHqdJk+SQ==", - "dependencies": { - "@types/react": "*" - }, - "peerDependencies": { - "react": "*" - } - }, - "node_modules/@docusaurus/plugin-content-docs/node_modules/rehype-raw": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/rehype-raw/-/rehype-raw-7.0.0.tgz", - "integrity": "sha512-/aE8hCfKlQeA8LmyeyQvQF3eBiLRGNlfBJEvWH7ivp9sBqs7TNqBL5X3v157rM4IFETqDnIOO+z5M/biZbo9Ww==", - "dependencies": { - "@types/hast": "^3.0.0", - "hast-util-raw": "^9.0.0", - "vfile": "^6.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/@docusaurus/plugin-content-docs/node_modules/sort-css-media-queries": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/sort-css-media-queries/-/sort-css-media-queries-2.2.0.tgz", - "integrity": "sha512-0xtkGhWCC9MGt/EzgnvbbbKhqWjl1+/rncmhTh5qCpbYguXh6S/qwePfv/JQ8jePXXmqingylxoC49pCkSPIbA==", - "engines": { - "node": ">= 6.3.0" - } - }, - "node_modules/@docusaurus/plugin-content-docs/node_modules/stylehacks": { - "version": "6.1.1", - "resolved": "https://registry.npmjs.org/stylehacks/-/stylehacks-6.1.1.tgz", - "integrity": "sha512-gSTTEQ670cJNoaeIp9KX6lZmm8LJ3jPB5yJmX8Zq/wQxOsAFXV3qjWzHas3YYk1qesuVIyYWWUpZ0vSE/dTSGg==", - "dependencies": { - "browserslist": "^4.23.0", - "postcss-selector-parser": "^6.0.16" - }, - "engines": { - "node": "^14 || ^16 || >=18.0" - }, - "peerDependencies": { - "postcss": "^8.4.31" - } - }, - "node_modules/@docusaurus/plugin-content-docs/node_modules/svgo": { - "version": "3.3.2", - "resolved": "https://registry.npmjs.org/svgo/-/svgo-3.3.2.tgz", - "integrity": "sha512-OoohrmuUlBs8B8o6MB2Aevn+pRIH9zDALSR+6hhqVfa6fRwG/Qw9VUMSMW9VNg2CFc/MTIfabtdOVl9ODIJjpw==", - "dependencies": { - "@trysound/sax": "0.2.0", - "commander": "^7.2.0", - "css-select": "^5.1.0", - "css-tree": "^2.3.1", - "css-what": "^6.1.0", - "csso": "^5.0.5", - "picocolors": "^1.0.0" - }, - "bin": { - "svgo": "bin/svgo" - }, - "engines": { - "node": ">=14.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/svgo" - } - }, - "node_modules/@docusaurus/plugin-content-docs/node_modules/svgo/node_modules/commander": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/commander/-/commander-7.2.0.tgz", - "integrity": "sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw==", - "engines": { - "node": ">= 10" - } - }, - "node_modules/@docusaurus/plugin-content-pages": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/@docusaurus/plugin-content-pages/-/plugin-content-pages-3.0.1.tgz", - "integrity": "sha512-oP7PoYizKAXyEttcvVzfX3OoBIXEmXTMzCdfmC4oSwjG4SPcJsRge3mmI6O8jcZBgUPjIzXD21bVGWEE1iu8gg==", - "dependencies": { - "@docusaurus/core": "3.0.1", - "@docusaurus/mdx-loader": "3.0.1", - "@docusaurus/types": "3.0.1", - "@docusaurus/utils": "3.0.1", - "@docusaurus/utils-validation": "3.0.1", - "fs-extra": "^11.1.1", - "tslib": "^2.6.0", - "webpack": "^5.88.1" - }, - "engines": { - "node": ">=18.0" - }, - "peerDependencies": { - "react": "^18.0.0", - "react-dom": "^18.0.0" - } - }, - "node_modules/@docusaurus/plugin-debug": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/@docusaurus/plugin-debug/-/plugin-debug-3.0.1.tgz", - "integrity": "sha512-09dxZMdATky4qdsZGzhzlUvvC+ilQ2hKbYF+wez+cM2mGo4qHbv8+qKXqxq0CQZyimwlAOWQLoSozIXU0g0i7g==", - "dev": true, - "dependencies": { - "@docusaurus/core": "3.0.1", - "@docusaurus/types": "3.0.1", - "@docusaurus/utils": "3.0.1", - "fs-extra": "^11.1.1", - "react-json-view-lite": "^1.2.0", - "tslib": "^2.6.0" - }, - "engines": { - "node": ">=18.0" - }, - "peerDependencies": { - "react": "^18.0.0", - "react-dom": "^18.0.0" - } - }, - "node_modules/@docusaurus/plugin-google-analytics": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/@docusaurus/plugin-google-analytics/-/plugin-google-analytics-3.0.1.tgz", - "integrity": "sha512-jwseSz1E+g9rXQwDdr0ZdYNjn8leZBnKPjjQhMBEiwDoenL3JYFcNW0+p0sWoVF/f2z5t7HkKA+cYObrUh18gg==", - "dev": true, - "dependencies": { - "@docusaurus/core": "3.0.1", - "@docusaurus/types": "3.0.1", - "@docusaurus/utils-validation": "3.0.1", - "tslib": "^2.6.0" - }, - "engines": { - "node": ">=18.0" - }, - "peerDependencies": { - "react": "^18.0.0", - "react-dom": "^18.0.0" - } - }, - "node_modules/@docusaurus/plugin-google-gtag": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/@docusaurus/plugin-google-gtag/-/plugin-google-gtag-3.0.1.tgz", - "integrity": "sha512-UFTDvXniAWrajsulKUJ1DB6qplui1BlKLQZjX4F7qS/qfJ+qkKqSkhJ/F4VuGQ2JYeZstYb+KaUzUzvaPK1aRQ==", - "dev": true, - "dependencies": { - "@docusaurus/core": "3.0.1", - "@docusaurus/types": "3.0.1", - "@docusaurus/utils-validation": "3.0.1", - "@types/gtag.js": "^0.0.12", - "tslib": "^2.6.0" - }, - "engines": { - "node": ">=18.0" - }, - "peerDependencies": { - "react": "^18.0.0", - "react-dom": "^18.0.0" - } - }, - "node_modules/@docusaurus/plugin-google-tag-manager": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/@docusaurus/plugin-google-tag-manager/-/plugin-google-tag-manager-3.0.1.tgz", - "integrity": "sha512-IPFvuz83aFuheZcWpTlAdiiX1RqWIHM+OH8wS66JgwAKOiQMR3+nLywGjkLV4bp52x7nCnwhNk1rE85Cpy/CIw==", - "dependencies": { - "@docusaurus/core": "3.0.1", - "@docusaurus/types": "3.0.1", - "@docusaurus/utils-validation": "3.0.1", - "tslib": "^2.6.0" - }, - "engines": { - "node": ">=18.0" - }, - "peerDependencies": { - "react": "^18.0.0", - "react-dom": "^18.0.0" - } - }, - "node_modules/@docusaurus/plugin-sitemap": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/@docusaurus/plugin-sitemap/-/plugin-sitemap-3.0.1.tgz", - "integrity": "sha512-xARiWnjtVvoEniZudlCq5T9ifnhCu/GAZ5nA7XgyLfPcNpHQa241HZdsTlLtVcecEVVdllevBKOp7qknBBaMGw==", - "dev": true, - "dependencies": { - "@docusaurus/core": "3.0.1", - "@docusaurus/logger": "3.0.1", - "@docusaurus/types": "3.0.1", - "@docusaurus/utils": "3.0.1", - "@docusaurus/utils-common": "3.0.1", - "@docusaurus/utils-validation": "3.0.1", - "fs-extra": "^11.1.1", - "sitemap": "^7.1.1", - "tslib": "^2.6.0" - }, - "engines": { - "node": ">=18.0" - }, - "peerDependencies": { - "react": "^18.0.0", - "react-dom": "^18.0.0" - } - }, - "node_modules/@docusaurus/preset-classic": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/@docusaurus/preset-classic/-/preset-classic-3.0.1.tgz", - "integrity": "sha512-il9m9xZKKjoXn6h0cRcdnt6wce0Pv1y5t4xk2Wx7zBGhKG1idu4IFHtikHlD0QPuZ9fizpXspXcTzjL5FXc1Gw==", - "dev": true, - "dependencies": { - "@docusaurus/core": "3.0.1", - "@docusaurus/plugin-content-blog": "3.0.1", - "@docusaurus/plugin-content-docs": "3.0.1", - "@docusaurus/plugin-content-pages": "3.0.1", - "@docusaurus/plugin-debug": "3.0.1", - "@docusaurus/plugin-google-analytics": "3.0.1", - "@docusaurus/plugin-google-gtag": "3.0.1", - "@docusaurus/plugin-google-tag-manager": "3.0.1", - "@docusaurus/plugin-sitemap": "3.0.1", - "@docusaurus/theme-classic": "3.0.1", - "@docusaurus/theme-common": "3.0.1", - "@docusaurus/theme-search-algolia": "3.0.1", - "@docusaurus/types": "3.0.1" - }, - "engines": { - "node": ">=18.0" - }, - "peerDependencies": { - "react": "^18.0.0", - "react-dom": "^18.0.0" - } - }, - "node_modules/@docusaurus/preset-classic/node_modules/@docusaurus/module-type-aliases": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/@docusaurus/module-type-aliases/-/module-type-aliases-3.0.1.tgz", - "integrity": "sha512-DEHpeqUDsLynl3AhQQiO7AbC7/z/lBra34jTcdYuvp9eGm01pfH1wTVq8YqWZq6Jyx0BgcVl/VJqtE9StRd9Ag==", - "dev": true, - "dependencies": { - "@docusaurus/react-loadable": "5.5.2", - "@docusaurus/types": "3.0.1", - "@types/history": "^4.7.11", - "@types/react": "*", - "@types/react-router-config": "*", - "@types/react-router-dom": "*", - "react-helmet-async": "*", - "react-loadable": "npm:@docusaurus/react-loadable@5.5.2" - }, - "peerDependencies": { - "react": "*", - "react-dom": "*" - } - }, - "node_modules/@docusaurus/preset-classic/node_modules/@docusaurus/plugin-content-docs": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/@docusaurus/plugin-content-docs/-/plugin-content-docs-3.0.1.tgz", - "integrity": "sha512-dRfAOA5Ivo+sdzzJGXEu33yAtvGg8dlZkvt/NEJ7nwi1F2j4LEdsxtfX2GKeETB2fP6XoGNSQnFXqa2NYGrHFg==", - "dev": true, - "dependencies": { - "@docusaurus/core": "3.0.1", - "@docusaurus/logger": "3.0.1", - "@docusaurus/mdx-loader": "3.0.1", - "@docusaurus/module-type-aliases": "3.0.1", - "@docusaurus/types": "3.0.1", - "@docusaurus/utils": "3.0.1", - "@docusaurus/utils-validation": "3.0.1", - "@types/react-router-config": "^5.0.7", - "combine-promises": "^1.1.0", - "fs-extra": "^11.1.1", - "js-yaml": "^4.1.0", - "lodash": "^4.17.21", - "tslib": "^2.6.0", - "utility-types": "^3.10.0", - "webpack": "^5.88.1" - }, - "engines": { - "node": ">=18.0" - }, - "peerDependencies": { - "react": "^18.0.0", - "react-dom": "^18.0.0" - } - }, - "node_modules/@docusaurus/react-loadable": { - "version": "5.5.2", - "resolved": "https://registry.npmjs.org/@docusaurus/react-loadable/-/react-loadable-5.5.2.tgz", - "integrity": "sha512-A3dYjdBGuy0IGT+wyLIGIKLRE+sAk1iNk0f1HjNDysO7u8lhL4N3VEm+FAubmJbAztn94F7MxBTPmnixbiyFdQ==", - "dependencies": { - "@types/react": "*", - "prop-types": "^15.6.2" - }, - "peerDependencies": { - "react": "*" - } - }, - "node_modules/@docusaurus/theme-classic": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/@docusaurus/theme-classic/-/theme-classic-3.0.1.tgz", - "integrity": "sha512-XD1FRXaJiDlmYaiHHdm27PNhhPboUah9rqIH0lMpBt5kYtsGjJzhqa27KuZvHLzOP2OEpqd2+GZ5b6YPq7Q05Q==", - "dev": true, - "dependencies": { - "@docusaurus/core": "3.0.1", - "@docusaurus/mdx-loader": "3.0.1", - "@docusaurus/module-type-aliases": "3.0.1", - "@docusaurus/plugin-content-blog": "3.0.1", - "@docusaurus/plugin-content-docs": "3.0.1", - "@docusaurus/plugin-content-pages": "3.0.1", - "@docusaurus/theme-common": "3.0.1", - "@docusaurus/theme-translations": "3.0.1", - "@docusaurus/types": "3.0.1", - "@docusaurus/utils": "3.0.1", - "@docusaurus/utils-common": "3.0.1", - "@docusaurus/utils-validation": "3.0.1", - "@mdx-js/react": "^3.0.0", - "clsx": "^2.0.0", - "copy-text-to-clipboard": "^3.2.0", - "infima": "0.2.0-alpha.43", - "lodash": "^4.17.21", - "nprogress": "^0.2.0", - "postcss": "^8.4.26", - "prism-react-renderer": "^2.3.0", - "prismjs": "^1.29.0", - "react-router-dom": "^5.3.4", - "rtlcss": "^4.1.0", - "tslib": "^2.6.0", - "utility-types": "^3.10.0" - }, - "engines": { - "node": ">=18.0" - }, - "peerDependencies": { - "react": "^18.0.0", - "react-dom": "^18.0.0" - } - }, - "node_modules/@docusaurus/theme-classic/node_modules/@docusaurus/module-type-aliases": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/@docusaurus/module-type-aliases/-/module-type-aliases-3.0.1.tgz", - "integrity": "sha512-DEHpeqUDsLynl3AhQQiO7AbC7/z/lBra34jTcdYuvp9eGm01pfH1wTVq8YqWZq6Jyx0BgcVl/VJqtE9StRd9Ag==", - "dev": true, - "dependencies": { - "@docusaurus/react-loadable": "5.5.2", - "@docusaurus/types": "3.0.1", - "@types/history": "^4.7.11", - "@types/react": "*", - "@types/react-router-config": "*", - "@types/react-router-dom": "*", - "react-helmet-async": "*", - "react-loadable": "npm:@docusaurus/react-loadable@5.5.2" - }, - "peerDependencies": { - "react": "*", - "react-dom": "*" - } - }, - "node_modules/@docusaurus/theme-classic/node_modules/@docusaurus/plugin-content-docs": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/@docusaurus/plugin-content-docs/-/plugin-content-docs-3.0.1.tgz", - "integrity": "sha512-dRfAOA5Ivo+sdzzJGXEu33yAtvGg8dlZkvt/NEJ7nwi1F2j4LEdsxtfX2GKeETB2fP6XoGNSQnFXqa2NYGrHFg==", - "dev": true, - "dependencies": { - "@docusaurus/core": "3.0.1", - "@docusaurus/logger": "3.0.1", - "@docusaurus/mdx-loader": "3.0.1", - "@docusaurus/module-type-aliases": "3.0.1", - "@docusaurus/types": "3.0.1", - "@docusaurus/utils": "3.0.1", - "@docusaurus/utils-validation": "3.0.1", - "@types/react-router-config": "^5.0.7", - "combine-promises": "^1.1.0", - "fs-extra": "^11.1.1", - "js-yaml": "^4.1.0", - "lodash": "^4.17.21", - "tslib": "^2.6.0", - "utility-types": "^3.10.0", - "webpack": "^5.88.1" - }, - "engines": { - "node": ">=18.0" - }, - "peerDependencies": { - "react": "^18.0.0", - "react-dom": "^18.0.0" - } - }, - "node_modules/@docusaurus/theme-classic/node_modules/clsx": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/clsx/-/clsx-2.1.1.tgz", - "integrity": "sha512-eYm0QWBtUrBWZWG0d386OGAw16Z995PiOVo2B7bjWSbHedGl5e0ZWaq65kOGgUSNesEIDkB9ISbTg/JK9dhCZA==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/@docusaurus/theme-common": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/@docusaurus/theme-common/-/theme-common-3.0.1.tgz", - "integrity": "sha512-cr9TOWXuIOL0PUfuXv6L5lPlTgaphKP+22NdVBOYah5jSq5XAAulJTjfe+IfLsEG4L7lJttLbhW7LXDFSAI7Ag==", - "dependencies": { - "@docusaurus/mdx-loader": "3.0.1", - "@docusaurus/module-type-aliases": "3.0.1", - "@docusaurus/plugin-content-blog": "3.0.1", - "@docusaurus/plugin-content-docs": "3.0.1", - "@docusaurus/plugin-content-pages": "3.0.1", - "@docusaurus/utils": "3.0.1", - "@docusaurus/utils-common": "3.0.1", - "@types/history": "^4.7.11", - "@types/react": "*", - "@types/react-router-config": "*", - "clsx": "^2.0.0", - "parse-numeric-range": "^1.3.0", - "prism-react-renderer": "^2.3.0", - "tslib": "^2.6.0", - "utility-types": "^3.10.0" - }, - "engines": { - "node": ">=18.0" - }, - "peerDependencies": { - "react": "^18.0.0", - "react-dom": "^18.0.0" - } - }, - "node_modules/@docusaurus/theme-common/node_modules/@docusaurus/module-type-aliases": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/@docusaurus/module-type-aliases/-/module-type-aliases-3.0.1.tgz", - "integrity": "sha512-DEHpeqUDsLynl3AhQQiO7AbC7/z/lBra34jTcdYuvp9eGm01pfH1wTVq8YqWZq6Jyx0BgcVl/VJqtE9StRd9Ag==", - "dependencies": { - "@docusaurus/react-loadable": "5.5.2", - "@docusaurus/types": "3.0.1", - "@types/history": "^4.7.11", - "@types/react": "*", - "@types/react-router-config": "*", - "@types/react-router-dom": "*", - "react-helmet-async": "*", - "react-loadable": "npm:@docusaurus/react-loadable@5.5.2" - }, - "peerDependencies": { - "react": "*", - "react-dom": "*" - } - }, - "node_modules/@docusaurus/theme-common/node_modules/@docusaurus/plugin-content-docs": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/@docusaurus/plugin-content-docs/-/plugin-content-docs-3.0.1.tgz", - "integrity": "sha512-dRfAOA5Ivo+sdzzJGXEu33yAtvGg8dlZkvt/NEJ7nwi1F2j4LEdsxtfX2GKeETB2fP6XoGNSQnFXqa2NYGrHFg==", - "dependencies": { - "@docusaurus/core": "3.0.1", - "@docusaurus/logger": "3.0.1", - "@docusaurus/mdx-loader": "3.0.1", - "@docusaurus/module-type-aliases": "3.0.1", - "@docusaurus/types": "3.0.1", - "@docusaurus/utils": "3.0.1", - "@docusaurus/utils-validation": "3.0.1", - "@types/react-router-config": "^5.0.7", - "combine-promises": "^1.1.0", - "fs-extra": "^11.1.1", - "js-yaml": "^4.1.0", - "lodash": "^4.17.21", - "tslib": "^2.6.0", - "utility-types": "^3.10.0", - "webpack": "^5.88.1" - }, - "engines": { - "node": ">=18.0" - }, - "peerDependencies": { - "react": "^18.0.0", - "react-dom": "^18.0.0" - } - }, - "node_modules/@docusaurus/theme-common/node_modules/clsx": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/clsx/-/clsx-2.1.1.tgz", - "integrity": "sha512-eYm0QWBtUrBWZWG0d386OGAw16Z995PiOVo2B7bjWSbHedGl5e0ZWaq65kOGgUSNesEIDkB9ISbTg/JK9dhCZA==", - "engines": { - "node": ">=6" - } - }, - "node_modules/@docusaurus/theme-mermaid": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/@docusaurus/theme-mermaid/-/theme-mermaid-3.0.1.tgz", - "integrity": "sha512-jquSDnZfazABnC5i+02GzRIvufXKruKgvbYkQjKbI7/LWo0XvBs0uKAcCDGgHhth0t/ON5+Sn27joRfpeSk3Lw==", - "dependencies": { - "@docusaurus/core": "3.0.1", - "@docusaurus/module-type-aliases": "3.0.1", - "@docusaurus/theme-common": "3.0.1", - "@docusaurus/types": "3.0.1", - "@docusaurus/utils-validation": "3.0.1", - "mermaid": "^10.4.0", - "tslib": "^2.6.0" - }, - "engines": { - "node": ">=18.0" - }, - "peerDependencies": { - "react": "^18.0.0", - "react-dom": "^18.0.0" - } - }, - "node_modules/@docusaurus/theme-mermaid/node_modules/@docusaurus/module-type-aliases": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/@docusaurus/module-type-aliases/-/module-type-aliases-3.0.1.tgz", - "integrity": "sha512-DEHpeqUDsLynl3AhQQiO7AbC7/z/lBra34jTcdYuvp9eGm01pfH1wTVq8YqWZq6Jyx0BgcVl/VJqtE9StRd9Ag==", - "dependencies": { - "@docusaurus/react-loadable": "5.5.2", - "@docusaurus/types": "3.0.1", - "@types/history": "^4.7.11", - "@types/react": "*", - "@types/react-router-config": "*", - "@types/react-router-dom": "*", - "react-helmet-async": "*", - "react-loadable": "npm:@docusaurus/react-loadable@5.5.2" - }, - "peerDependencies": { - "react": "*", - "react-dom": "*" - } - }, - "node_modules/@docusaurus/theme-search-algolia": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/@docusaurus/theme-search-algolia/-/theme-search-algolia-3.0.1.tgz", - "integrity": "sha512-DDiPc0/xmKSEdwFkXNf1/vH1SzJPzuJBar8kMcBbDAZk/SAmo/4lf6GU2drou4Ae60lN2waix+jYWTWcJRahSA==", - "dev": true, - "dependencies": { - "@docsearch/react": "^3.5.2", - "@docusaurus/core": "3.0.1", - "@docusaurus/logger": "3.0.1", - "@docusaurus/plugin-content-docs": "3.0.1", - "@docusaurus/theme-common": "3.0.1", - "@docusaurus/theme-translations": "3.0.1", - "@docusaurus/utils": "3.0.1", - "@docusaurus/utils-validation": "3.0.1", - "algoliasearch": "^4.18.0", - "algoliasearch-helper": "^3.13.3", - "clsx": "^2.0.0", - "eta": "^2.2.0", - "fs-extra": "^11.1.1", - "lodash": "^4.17.21", - "tslib": "^2.6.0", - "utility-types": "^3.10.0" - }, - "engines": { - "node": ">=18.0" - }, - "peerDependencies": { - "react": "^18.0.0", - "react-dom": "^18.0.0" - } - }, - "node_modules/@docusaurus/theme-search-algolia/node_modules/@docusaurus/module-type-aliases": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/@docusaurus/module-type-aliases/-/module-type-aliases-3.0.1.tgz", - "integrity": "sha512-DEHpeqUDsLynl3AhQQiO7AbC7/z/lBra34jTcdYuvp9eGm01pfH1wTVq8YqWZq6Jyx0BgcVl/VJqtE9StRd9Ag==", - "dev": true, - "dependencies": { - "@docusaurus/react-loadable": "5.5.2", - "@docusaurus/types": "3.0.1", - "@types/history": "^4.7.11", - "@types/react": "*", - "@types/react-router-config": "*", - "@types/react-router-dom": "*", - "react-helmet-async": "*", - "react-loadable": "npm:@docusaurus/react-loadable@5.5.2" - }, - "peerDependencies": { - "react": "*", - "react-dom": "*" - } - }, - "node_modules/@docusaurus/theme-search-algolia/node_modules/@docusaurus/plugin-content-docs": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/@docusaurus/plugin-content-docs/-/plugin-content-docs-3.0.1.tgz", - "integrity": "sha512-dRfAOA5Ivo+sdzzJGXEu33yAtvGg8dlZkvt/NEJ7nwi1F2j4LEdsxtfX2GKeETB2fP6XoGNSQnFXqa2NYGrHFg==", - "dev": true, - "dependencies": { - "@docusaurus/core": "3.0.1", - "@docusaurus/logger": "3.0.1", - "@docusaurus/mdx-loader": "3.0.1", - "@docusaurus/module-type-aliases": "3.0.1", - "@docusaurus/types": "3.0.1", - "@docusaurus/utils": "3.0.1", - "@docusaurus/utils-validation": "3.0.1", - "@types/react-router-config": "^5.0.7", - "combine-promises": "^1.1.0", - "fs-extra": "^11.1.1", - "js-yaml": "^4.1.0", - "lodash": "^4.17.21", - "tslib": "^2.6.0", - "utility-types": "^3.10.0", - "webpack": "^5.88.1" - }, - "engines": { - "node": ">=18.0" - }, - "peerDependencies": { - "react": "^18.0.0", - "react-dom": "^18.0.0" - } - }, - "node_modules/@docusaurus/theme-search-algolia/node_modules/clsx": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/clsx/-/clsx-2.1.1.tgz", - "integrity": "sha512-eYm0QWBtUrBWZWG0d386OGAw16Z995PiOVo2B7bjWSbHedGl5e0ZWaq65kOGgUSNesEIDkB9ISbTg/JK9dhCZA==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/@docusaurus/theme-translations": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/@docusaurus/theme-translations/-/theme-translations-3.0.1.tgz", - "integrity": "sha512-6UrbpzCTN6NIJnAtZ6Ne9492vmPVX+7Fsz4kmp+yor3KQwA1+MCzQP7ItDNkP38UmVLnvB/cYk/IvehCUqS3dg==", - "dev": true, - "dependencies": { - "fs-extra": "^11.1.1", - "tslib": "^2.6.0" - }, - "engines": { - "node": ">=18.0" - } - }, - "node_modules/@docusaurus/types": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/@docusaurus/types/-/types-3.0.1.tgz", - "integrity": "sha512-plyX2iU1tcUsF46uQ01pAd4JhexR7n0iiQ5MSnBFX6M6NSJgDYdru/i1/YNPKOnQHBoXGLHv0dNT6OAlDWNjrg==", - "dependencies": { - "@types/history": "^4.7.11", - "@types/react": "*", - "commander": "^5.1.0", - "joi": "^17.9.2", - "react-helmet-async": "^1.3.0", - "utility-types": "^3.10.0", - "webpack": "^5.88.1", - "webpack-merge": "^5.9.0" - }, - "peerDependencies": { - "react": "^18.0.0", - "react-dom": "^18.0.0" - } - }, - "node_modules/@docusaurus/utils": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/@docusaurus/utils/-/utils-3.0.1.tgz", - "integrity": "sha512-TwZ33Am0q4IIbvjhUOs+zpjtD/mXNmLmEgeTGuRq01QzulLHuPhaBTTAC/DHu6kFx3wDgmgpAlaRuCHfTcXv8g==", - "dependencies": { - "@docusaurus/logger": "3.0.1", - "@svgr/webpack": "^6.5.1", - "escape-string-regexp": "^4.0.0", - "file-loader": "^6.2.0", - "fs-extra": "^11.1.1", - "github-slugger": "^1.5.0", - "globby": "^11.1.0", - "gray-matter": "^4.0.3", - "jiti": "^1.20.0", - "js-yaml": "^4.1.0", - "lodash": "^4.17.21", - "micromatch": "^4.0.5", - "resolve-pathname": "^3.0.0", - "shelljs": "^0.8.5", - "tslib": "^2.6.0", - "url-loader": "^4.1.1", - "webpack": "^5.88.1" - }, - "engines": { - "node": ">=18.0" - }, - "peerDependencies": { - "@docusaurus/types": "*" - }, - "peerDependenciesMeta": { - "@docusaurus/types": { - "optional": true - } - } - }, - "node_modules/@docusaurus/utils-common": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/@docusaurus/utils-common/-/utils-common-3.0.1.tgz", - "integrity": "sha512-W0AxD6w6T8g6bNro8nBRWf7PeZ/nn7geEWM335qHU2DDDjHuV4UZjgUGP1AQsdcSikPrlIqTJJbKzer1lRSlIg==", - "dependencies": { - "tslib": "^2.6.0" - }, - "engines": { - "node": ">=18.0" - }, - "peerDependencies": { - "@docusaurus/types": "*" - }, - "peerDependenciesMeta": { - "@docusaurus/types": { - "optional": true - } - } - }, - "node_modules/@docusaurus/utils-validation": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/@docusaurus/utils-validation/-/utils-validation-3.0.1.tgz", - "integrity": "sha512-ujTnqSfyGQ7/4iZdB4RRuHKY/Nwm58IIb+41s5tCXOv/MBU2wGAjOHq3U+AEyJ8aKQcHbxvTKJaRchNHYUVUQg==", - "dependencies": { - "@docusaurus/logger": "3.0.1", - "@docusaurus/utils": "3.0.1", - "joi": "^17.9.2", - "js-yaml": "^4.1.0", - "tslib": "^2.6.0" - }, - "engines": { - "node": ">=18.0" - } - }, "node_modules/@esbuild/android-arm": { "version": "0.16.17", "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.16.17.tgz", @@ -5423,25 +3843,12 @@ "micromark-util-symbol": "^1.0.1" } }, - "node_modules/@slorber/static-site-generator-webpack-plugin": { - "version": "4.0.7", - "resolved": "https://registry.npmjs.org/@slorber/static-site-generator-webpack-plugin/-/static-site-generator-webpack-plugin-4.0.7.tgz", - "integrity": "sha512-Ug7x6z5lwrz0WqdnNFOMYrDQNTPAprvHLSh6+/fmml3qUiz6l5eq+2MzLKWtn/q5K5NpSiFsZTP/fck/3vjSxA==", - "dependencies": { - "eval": "^0.1.8", - "p-map": "^4.0.0", - "webpack-sources": "^3.2.2" - }, + "node_modules/@svgr/babel-plugin-add-jsx-attribute": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-add-jsx-attribute/-/babel-plugin-add-jsx-attribute-8.0.0.tgz", + "integrity": "sha512-b9MIk7yhdS1pMCZM8VeNfUlSKVRhsHZNMl5O9SfaX0l0t5wjdgu4IDzGB8bpnGBBOjGST3rRFVsaaEtI4W6f7g==", "engines": { "node": ">=14" - } - }, - "node_modules/@svgr/babel-plugin-add-jsx-attribute": { - "version": "6.5.1", - "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-add-jsx-attribute/-/babel-plugin-add-jsx-attribute-6.5.1.tgz", - "integrity": "sha512-9PYGcXrAxitycIjRmZB+Q0JaN07GZIWaTBIGQzfaZv+qr1n8X1XUEJ5rZ/vx6OVD9RRYlrNnXWExQXcmZeD/BQ==", - "engines": { - "node": ">=10" }, "funding": { "type": "github", @@ -5482,11 +3889,11 @@ } }, "node_modules/@svgr/babel-plugin-replace-jsx-attribute-value": { - "version": "6.5.1", - "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-replace-jsx-attribute-value/-/babel-plugin-replace-jsx-attribute-value-6.5.1.tgz", - "integrity": "sha512-8DPaVVE3fd5JKuIC29dqyMB54sA6mfgki2H2+swh+zNJoynC8pMPzOkidqHOSc6Wj032fhl8Z0TVn1GiPpAiJg==", + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-replace-jsx-attribute-value/-/babel-plugin-replace-jsx-attribute-value-8.0.0.tgz", + "integrity": "sha512-KVQ+PtIjb1BuYT3ht8M5KbzWBhdAjjUPdlMtpuw/VjT8coTrItWX6Qafl9+ji831JaJcu6PJNKCV0bp01lBNzQ==", "engines": { - "node": ">=10" + "node": ">=14" }, "funding": { "type": "github", @@ -5497,11 +3904,11 @@ } }, "node_modules/@svgr/babel-plugin-svg-dynamic-title": { - "version": "6.5.1", - "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-svg-dynamic-title/-/babel-plugin-svg-dynamic-title-6.5.1.tgz", - "integrity": "sha512-FwOEi0Il72iAzlkaHrlemVurgSQRDFbk0OC8dSvD5fSBPHltNh7JtLsxmZUhjYBZo2PpcU/RJvvi6Q0l7O7ogw==", + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-svg-dynamic-title/-/babel-plugin-svg-dynamic-title-8.0.0.tgz", + "integrity": "sha512-omNiKqwjNmOQJ2v6ge4SErBbkooV2aAWwaPFs2vUY7p7GhVkzRkJ00kILXQvRhA6miHnNpXv7MRnnSjdRjK8og==", "engines": { - "node": ">=10" + "node": ">=14" }, "funding": { "type": "github", @@ -5512,11 +3919,11 @@ } }, "node_modules/@svgr/babel-plugin-svg-em-dimensions": { - "version": "6.5.1", - "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-svg-em-dimensions/-/babel-plugin-svg-em-dimensions-6.5.1.tgz", - "integrity": "sha512-gWGsiwjb4tw+ITOJ86ndY/DZZ6cuXMNE/SjcDRg+HLuCmwpcjOktwRF9WgAiycTqJD/QXqL2f8IzE2Rzh7aVXA==", + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-svg-em-dimensions/-/babel-plugin-svg-em-dimensions-8.0.0.tgz", + "integrity": "sha512-mURHYnu6Iw3UBTbhGwE/vsngtCIbHE43xCRK7kCw4t01xyGqb2Pd+WXekRRoFOBIY29ZoOhUCTEweDMdrjfi9g==", "engines": { - "node": ">=10" + "node": ">=14" }, "funding": { "type": "github", @@ -5527,11 +3934,11 @@ } }, "node_modules/@svgr/babel-plugin-transform-react-native-svg": { - "version": "6.5.1", - "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-transform-react-native-svg/-/babel-plugin-transform-react-native-svg-6.5.1.tgz", - "integrity": "sha512-2jT3nTayyYP7kI6aGutkyfJ7UMGtuguD72OjeGLwVNyfPRBD8zQthlvL+fAbAKk5n9ZNcvFkp/b1lZ7VsYqVJg==", + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-transform-react-native-svg/-/babel-plugin-transform-react-native-svg-8.1.0.tgz", + "integrity": "sha512-Tx8T58CHo+7nwJ+EhUwx3LfdNSG9R2OKfaIXXs5soiy5HtgoAEkDay9LIimLOcG8dJQH1wPZp/cnAv6S9CrR1Q==", "engines": { - "node": ">=10" + "node": ">=14" }, "funding": { "type": "github", @@ -5542,9 +3949,9 @@ } }, "node_modules/@svgr/babel-plugin-transform-svg-component": { - "version": "6.5.1", - "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-transform-svg-component/-/babel-plugin-transform-svg-component-6.5.1.tgz", - "integrity": "sha512-a1p6LF5Jt33O3rZoVRBqdxL350oge54iZWHNI6LJB5tQ7EelvD/Mb1mfBiZNAan0dt4i3VArkFRjA4iObuNykQ==", + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-transform-svg-component/-/babel-plugin-transform-svg-component-8.0.0.tgz", + "integrity": "sha512-DFx8xa3cZXTdb/k3kfPeaixecQLgKh5NVBMwD0AQxOzcZawK4oo1Jh9LbrcACUivsCA7TLG8eeWgrDXjTMhRmw==", "engines": { "node": ">=12" }, @@ -5557,21 +3964,21 @@ } }, "node_modules/@svgr/babel-preset": { - "version": "6.5.1", - "resolved": "https://registry.npmjs.org/@svgr/babel-preset/-/babel-preset-6.5.1.tgz", - "integrity": "sha512-6127fvO/FF2oi5EzSQOAjo1LE3OtNVh11R+/8FXa+mHx1ptAaS4cknIjnUA7e6j6fwGGJ17NzaTJFUwOV2zwCw==", + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/@svgr/babel-preset/-/babel-preset-8.1.0.tgz", + "integrity": "sha512-7EYDbHE7MxHpv4sxvnVPngw5fuR6pw79SkcrILHJ/iMpuKySNCl5W1qcwPEpU+LgyRXOaAFgH0KhwD18wwg6ug==", "dependencies": { - "@svgr/babel-plugin-add-jsx-attribute": "^6.5.1", - "@svgr/babel-plugin-remove-jsx-attribute": "*", - "@svgr/babel-plugin-remove-jsx-empty-expression": "*", - "@svgr/babel-plugin-replace-jsx-attribute-value": "^6.5.1", - "@svgr/babel-plugin-svg-dynamic-title": "^6.5.1", - "@svgr/babel-plugin-svg-em-dimensions": "^6.5.1", - "@svgr/babel-plugin-transform-react-native-svg": "^6.5.1", - "@svgr/babel-plugin-transform-svg-component": "^6.5.1" + "@svgr/babel-plugin-add-jsx-attribute": "8.0.0", + "@svgr/babel-plugin-remove-jsx-attribute": "8.0.0", + "@svgr/babel-plugin-remove-jsx-empty-expression": "8.0.0", + "@svgr/babel-plugin-replace-jsx-attribute-value": "8.0.0", + "@svgr/babel-plugin-svg-dynamic-title": "8.0.0", + "@svgr/babel-plugin-svg-em-dimensions": "8.0.0", + "@svgr/babel-plugin-transform-react-native-svg": "8.1.0", + "@svgr/babel-plugin-transform-svg-component": "8.0.0" }, "engines": { - "node": ">=10" + "node": ">=14" }, "funding": { "type": "github", @@ -5582,18 +3989,18 @@ } }, "node_modules/@svgr/core": { - "version": "6.5.1", - "resolved": "https://registry.npmjs.org/@svgr/core/-/core-6.5.1.tgz", - "integrity": "sha512-/xdLSWxK5QkqG524ONSjvg3V/FkNyCv538OIBdQqPNaAta3AsXj/Bd2FbvR87yMbXO2hFSWiAe/Q6IkVPDw+mw==", + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/@svgr/core/-/core-8.1.0.tgz", + "integrity": "sha512-8QqtOQT5ACVlmsvKOJNEaWmRPmcojMOzCz4Hs2BGG/toAp/K38LcsMRyLp349glq5AzJbCEeimEoxaX6v/fLrA==", "dependencies": { - "@babel/core": "^7.19.6", - "@svgr/babel-preset": "^6.5.1", - "@svgr/plugin-jsx": "^6.5.1", + "@babel/core": "^7.21.3", + "@svgr/babel-preset": "8.1.0", "camelcase": "^6.2.0", - "cosmiconfig": "^7.0.1" + "cosmiconfig": "^8.1.3", + "snake-case": "^3.0.4" }, "engines": { - "node": ">=10" + "node": ">=14" }, "funding": { "type": "github", @@ -5601,15 +4008,15 @@ } }, "node_modules/@svgr/hast-util-to-babel-ast": { - "version": "6.5.1", - "resolved": "https://registry.npmjs.org/@svgr/hast-util-to-babel-ast/-/hast-util-to-babel-ast-6.5.1.tgz", - "integrity": "sha512-1hnUxxjd83EAxbL4a0JDJoD3Dao3hmjvyvyEV8PzWmLK3B9m9NPlW7GKjFyoWE8nM7HnXzPcmmSyOW8yOddSXw==", + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/@svgr/hast-util-to-babel-ast/-/hast-util-to-babel-ast-8.0.0.tgz", + "integrity": "sha512-EbDKwO9GpfWP4jN9sGdYwPBU0kdomaPIL2Eu4YwmgP+sJeXT+L7bMwJUBnhzfH8Q2qMBqZ4fJwpCyYsAN3mt2Q==", "dependencies": { - "@babel/types": "^7.20.0", + "@babel/types": "^7.21.3", "entities": "^4.4.0" }, "engines": { - "node": ">=10" + "node": ">=14" }, "funding": { "type": "github", @@ -5617,37 +4024,37 @@ } }, "node_modules/@svgr/plugin-jsx": { - "version": "6.5.1", - "resolved": "https://registry.npmjs.org/@svgr/plugin-jsx/-/plugin-jsx-6.5.1.tgz", - "integrity": "sha512-+UdQxI3jgtSjCykNSlEMuy1jSRQlGC7pqBCPvkG/2dATdWo082zHTTK3uhnAju2/6XpE6B5mZ3z4Z8Ns01S8Gw==", + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/@svgr/plugin-jsx/-/plugin-jsx-8.1.0.tgz", + "integrity": "sha512-0xiIyBsLlr8quN+WyuxooNW9RJ0Dpr8uOnH/xrCVO8GLUcwHISwj1AG0k+LFzteTkAA0GbX0kj9q6Dk70PTiPA==", "dependencies": { - "@babel/core": "^7.19.6", - "@svgr/babel-preset": "^6.5.1", - "@svgr/hast-util-to-babel-ast": "^6.5.1", + "@babel/core": "^7.21.3", + "@svgr/babel-preset": "8.1.0", + "@svgr/hast-util-to-babel-ast": "8.0.0", "svg-parser": "^2.0.4" }, "engines": { - "node": ">=10" + "node": ">=14" }, "funding": { "type": "github", "url": "https://github.com/sponsors/gregberge" }, "peerDependencies": { - "@svgr/core": "^6.0.0" + "@svgr/core": "*" } }, "node_modules/@svgr/plugin-svgo": { - "version": "6.5.1", - "resolved": "https://registry.npmjs.org/@svgr/plugin-svgo/-/plugin-svgo-6.5.1.tgz", - "integrity": "sha512-omvZKf8ixP9z6GWgwbtmP9qQMPX4ODXi+wzbVZgomNFsUIlHA1sf4fThdwTWSsZGgvGAG6yE+b/F5gWUkcZ/iQ==", + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/@svgr/plugin-svgo/-/plugin-svgo-8.1.0.tgz", + "integrity": "sha512-Ywtl837OGO9pTLIN/onoWLmDQ4zFUycI1g76vuKGEz6evR/ZTJlJuz3G/fIkb6OVBJ2g0o6CGJzaEjfmEo3AHA==", "dependencies": { - "cosmiconfig": "^7.0.1", - "deepmerge": "^4.2.2", - "svgo": "^2.8.0" + "cosmiconfig": "^8.1.3", + "deepmerge": "^4.3.1", + "svgo": "^3.0.2" }, "engines": { - "node": ">=10" + "node": ">=14" }, "funding": { "type": "github", @@ -5658,21 +4065,21 @@ } }, "node_modules/@svgr/webpack": { - "version": "6.5.1", - "resolved": "https://registry.npmjs.org/@svgr/webpack/-/webpack-6.5.1.tgz", - "integrity": "sha512-cQ/AsnBkXPkEK8cLbv4Dm7JGXq2XrumKnL1dRpJD9rIO2fTIlJI9a1uCciYG1F2aUsox/hJQyNGbt3soDxSRkA==", + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/@svgr/webpack/-/webpack-8.1.0.tgz", + "integrity": "sha512-LnhVjMWyMQV9ZmeEy26maJk+8HTIbd59cH4F2MJ439k9DqejRisfFNGAPvRYlKETuh9LrImlS8aKsBgKjMA8WA==", "dependencies": { - "@babel/core": "^7.19.6", - "@babel/plugin-transform-react-constant-elements": "^7.18.12", - "@babel/preset-env": "^7.19.4", + "@babel/core": "^7.21.3", + "@babel/plugin-transform-react-constant-elements": "^7.21.3", + "@babel/preset-env": "^7.20.2", "@babel/preset-react": "^7.18.6", - "@babel/preset-typescript": "^7.18.6", - "@svgr/core": "^6.5.1", - "@svgr/plugin-jsx": "^6.5.1", - "@svgr/plugin-svgo": "^6.5.1" + "@babel/preset-typescript": "^7.21.0", + "@svgr/core": "8.1.0", + "@svgr/plugin-jsx": "8.1.0", + "@svgr/plugin-svgo": "8.1.0" }, "engines": { - "node": ">=10" + "node": ">=14" }, "funding": { "type": "github", @@ -5949,9 +4356,9 @@ "integrity": "sha512-nG96G3Wp6acyAgJqGasjODb+acrI7KltPiRxzHPXnP3NgI28bpQDRv53olbqGXbfcgF5aiiHmO3xpwEpS5Ld9g==" }, "node_modules/@types/node": { - "version": "14.18.63", - "resolved": "https://registry.npmjs.org/@types/node/-/node-14.18.63.tgz", - "integrity": "sha512-fAtCfv4jJg+ExtXhvCkCqUKZ+4ok/JQk01qDKhL5BDDoS3AxKXhV5/MAVUZyQnSEd2GT92fkgZl0pz0Q0AzcIQ==" + "version": "17.0.45", + "resolved": "https://registry.npmjs.org/@types/node/-/node-17.0.45.tgz", + "integrity": "sha512-w+tIMs3rq2afQdsPJlODhoUEKzFP1ayaoyl1CcnwtIlsVe7K7bA1NGm4s3PraqTLlXnbIN84zuBlxBWo1u9BLw==" }, "node_modules/@types/node-forge": { "version": "1.3.10", @@ -7572,9 +5979,9 @@ } }, "node_modules/clsx": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/clsx/-/clsx-1.2.1.tgz", - "integrity": "sha512-EcR6r5a8bj6pu3ycsa/E/cKVGuTgZJZdsyUYHOksG/UHIiKfjxzRxYJpyVBwYaQeOvghal9fcc4PidlgzugAQg==", + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/clsx/-/clsx-2.1.1.tgz", + "integrity": "sha512-eYm0QWBtUrBWZWG0d386OGAw16Z995PiOVo2B7bjWSbHedGl5e0ZWaq65kOGgUSNesEIDkB9ISbTg/JK9dhCZA==", "engines": { "node": ">=6" } @@ -7920,18 +6327,28 @@ } }, "node_modules/cosmiconfig": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-7.1.0.tgz", - "integrity": "sha512-AdmX6xUzdNASswsFtmwSt7Vj8po9IuqXm0UXz7QKPuEUmPB4XyjGfaAr2PSuELMwkRMVH1EpIkX5bTZGRB3eCA==", + "version": "8.3.6", + "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-8.3.6.tgz", + "integrity": "sha512-kcZ6+W5QzcJ3P1Mt+83OUv/oHFqZHIx8DuxG6eZ5RGMERoLqp4BuGjhHLYGK+Kf5XVkQvqBSmAy/nGWN3qDgEA==", "dependencies": { - "@types/parse-json": "^4.0.0", - "import-fresh": "^3.2.1", - "parse-json": "^5.0.0", - "path-type": "^4.0.0", - "yaml": "^1.10.0" + "import-fresh": "^3.3.0", + "js-yaml": "^4.1.0", + "parse-json": "^5.2.0", + "path-type": "^4.0.0" }, "engines": { - "node": ">=10" + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/d-fischer" + }, + "peerDependencies": { + "typescript": ">=4.9.5" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } } }, "node_modules/create-ecdh": { @@ -8038,11 +6455,11 @@ } }, "node_modules/css-declaration-sorter": { - "version": "6.4.1", - "resolved": "https://registry.npmjs.org/css-declaration-sorter/-/css-declaration-sorter-6.4.1.tgz", - "integrity": "sha512-rtdthzxKuyq6IzqX6jEcIzQF/YqccluefyCYheovBOLhFT/drQA9zj/UbRAa9J7C0o6EG6u3E6g+vKkay7/k3g==", + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/css-declaration-sorter/-/css-declaration-sorter-7.2.0.tgz", + "integrity": "sha512-h70rUM+3PNFuaBDTLe8wF/cdWu+dOZmb7pJt8Z2sedYbAcQVQV/tEchueg3GWxwqS0cxtbxmaHEdkNACqcvsow==", "engines": { - "node": "^10 || ^12 || >=14" + "node": "^14 || ^16 || >=18" }, "peerDependencies": { "postcss": "^8.0.9" @@ -8074,16 +6491,16 @@ } }, "node_modules/css-minimizer-webpack-plugin": { - "version": "4.2.2", - "resolved": "https://registry.npmjs.org/css-minimizer-webpack-plugin/-/css-minimizer-webpack-plugin-4.2.2.tgz", - "integrity": "sha512-s3Of/4jKfw1Hj9CxEO1E5oXhQAxlayuHO2y/ML+C6I9sQ7FdzfEV6QgMLN3vI+qFsjJGIAFLKtQK7t8BOXAIyA==", + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/css-minimizer-webpack-plugin/-/css-minimizer-webpack-plugin-5.0.1.tgz", + "integrity": "sha512-3caImjKFQkS+ws1TGcFn0V1HyDJFq1Euy589JlD6/3rV2kj+w7r5G9WDMgSHvpvXHNZ2calVypZWuEDQd9wfLg==", "dependencies": { - "cssnano": "^5.1.8", - "jest-worker": "^29.1.2", - "postcss": "^8.4.17", - "schema-utils": "^4.0.0", - "serialize-javascript": "^6.0.0", - "source-map": "^0.6.1" + "@jridgewell/trace-mapping": "^0.3.18", + "cssnano": "^6.0.1", + "jest-worker": "^29.4.3", + "postcss": "^8.4.24", + "schema-utils": "^4.0.1", + "serialize-javascript": "^6.0.1" }, "engines": { "node": ">= 14.15.0" @@ -8132,15 +6549,15 @@ } }, "node_modules/css-tree": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/css-tree/-/css-tree-1.1.3.tgz", - "integrity": "sha512-tRpdppF7TRazZrjJ6v3stzv93qxRcSsFmW6cX0Zm2NVKpxE1WV1HblnghVv9TreireHkqI/VDEsfolRF1p6y7Q==", + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/css-tree/-/css-tree-2.3.1.tgz", + "integrity": "sha512-6Fv1DV/TYw//QF5IzQdqsNDjx/wc8TrMBZsqjL9eW01tWb7R7k/mq+/VXfJCl7SoD5emsJop9cOByJZfs8hYIw==", "dependencies": { - "mdn-data": "2.0.14", - "source-map": "^0.6.1" + "mdn-data": "2.0.30", + "source-map-js": "^1.0.1" }, "engines": { - "node": ">=8.0.0" + "node": "^10 || ^12.20.0 || ^14.13.0 || >=15.0.0" } }, "node_modules/css-what": { @@ -8166,108 +6583,128 @@ } }, "node_modules/cssnano": { - "version": "5.1.15", - "resolved": "https://registry.npmjs.org/cssnano/-/cssnano-5.1.15.tgz", - "integrity": "sha512-j+BKgDcLDQA+eDifLx0EO4XSA56b7uut3BQFH+wbSaSTuGLuiyTa/wbRYthUXX8LC9mLg+WWKe8h+qJuwTAbHw==", + "version": "6.1.2", + "resolved": "https://registry.npmjs.org/cssnano/-/cssnano-6.1.2.tgz", + "integrity": "sha512-rYk5UeX7VAM/u0lNqewCdasdtPK81CgX8wJFLEIXHbV2oldWRgJAsZrdhRXkV1NJzA2g850KiFm9mMU2HxNxMA==", "dependencies": { - "cssnano-preset-default": "^5.2.14", - "lilconfig": "^2.0.3", - "yaml": "^1.10.2" + "cssnano-preset-default": "^6.1.2", + "lilconfig": "^3.1.1" }, "engines": { - "node": "^10 || ^12 || >=14.0" + "node": "^14 || ^16 || >=18.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/cssnano" }, "peerDependencies": { - "postcss": "^8.2.15" + "postcss": "^8.4.31" } }, "node_modules/cssnano-preset-advanced": { - "version": "5.3.10", - "resolved": "https://registry.npmjs.org/cssnano-preset-advanced/-/cssnano-preset-advanced-5.3.10.tgz", - "integrity": "sha512-fnYJyCS9jgMU+cmHO1rPSPf9axbQyD7iUhLO5Df6O4G+fKIOMps+ZbU0PdGFejFBBZ3Pftf18fn1eG7MAPUSWQ==", + "version": "6.1.2", + "resolved": "https://registry.npmjs.org/cssnano-preset-advanced/-/cssnano-preset-advanced-6.1.2.tgz", + "integrity": "sha512-Nhao7eD8ph2DoHolEzQs5CfRpiEP0xa1HBdnFZ82kvqdmbwVBUr2r1QuQ4t1pi+D1ZpqpcO4T+wy/7RxzJ/WPQ==", "dependencies": { - "autoprefixer": "^10.4.12", - "cssnano-preset-default": "^5.2.14", - "postcss-discard-unused": "^5.1.0", - "postcss-merge-idents": "^5.1.1", - "postcss-reduce-idents": "^5.2.0", - "postcss-zindex": "^5.1.0" + "autoprefixer": "^10.4.19", + "browserslist": "^4.23.0", + "cssnano-preset-default": "^6.1.2", + "postcss-discard-unused": "^6.0.5", + "postcss-merge-idents": "^6.0.3", + "postcss-reduce-idents": "^6.0.3", + "postcss-zindex": "^6.0.2" }, "engines": { - "node": "^10 || ^12 || >=14.0" + "node": "^14 || ^16 || >=18.0" }, "peerDependencies": { - "postcss": "^8.2.15" + "postcss": "^8.4.31" } }, "node_modules/cssnano-preset-default": { - "version": "5.2.14", - "resolved": "https://registry.npmjs.org/cssnano-preset-default/-/cssnano-preset-default-5.2.14.tgz", - "integrity": "sha512-t0SFesj/ZV2OTylqQVOrFgEh5uanxbO6ZAdeCrNsUQ6fVuXwYTxJPNAGvGTxHbD68ldIJNec7PyYZDBrfDQ+6A==", + "version": "6.1.2", + "resolved": "https://registry.npmjs.org/cssnano-preset-default/-/cssnano-preset-default-6.1.2.tgz", + "integrity": "sha512-1C0C+eNaeN8OcHQa193aRgYexyJtU8XwbdieEjClw+J9d94E41LwT6ivKH0WT+fYwYWB0Zp3I3IZ7tI/BbUbrg==", "dependencies": { - "css-declaration-sorter": "^6.3.1", - "cssnano-utils": "^3.1.0", - "postcss-calc": "^8.2.3", - "postcss-colormin": "^5.3.1", - "postcss-convert-values": "^5.1.3", - "postcss-discard-comments": "^5.1.2", - "postcss-discard-duplicates": "^5.1.0", - "postcss-discard-empty": "^5.1.1", - "postcss-discard-overridden": "^5.1.0", - "postcss-merge-longhand": "^5.1.7", - "postcss-merge-rules": "^5.1.4", - "postcss-minify-font-values": "^5.1.0", - "postcss-minify-gradients": "^5.1.1", - "postcss-minify-params": "^5.1.4", - "postcss-minify-selectors": "^5.2.1", - "postcss-normalize-charset": "^5.1.0", - "postcss-normalize-display-values": "^5.1.0", - "postcss-normalize-positions": "^5.1.1", - "postcss-normalize-repeat-style": "^5.1.1", - "postcss-normalize-string": "^5.1.0", - "postcss-normalize-timing-functions": "^5.1.0", - "postcss-normalize-unicode": "^5.1.1", - "postcss-normalize-url": "^5.1.0", - "postcss-normalize-whitespace": "^5.1.1", - "postcss-ordered-values": "^5.1.3", - "postcss-reduce-initial": "^5.1.2", - "postcss-reduce-transforms": "^5.1.0", - "postcss-svgo": "^5.1.0", - "postcss-unique-selectors": "^5.1.1" + "browserslist": "^4.23.0", + "css-declaration-sorter": "^7.2.0", + "cssnano-utils": "^4.0.2", + "postcss-calc": "^9.0.1", + "postcss-colormin": "^6.1.0", + "postcss-convert-values": "^6.1.0", + "postcss-discard-comments": "^6.0.2", + "postcss-discard-duplicates": "^6.0.3", + "postcss-discard-empty": "^6.0.3", + "postcss-discard-overridden": "^6.0.2", + "postcss-merge-longhand": "^6.0.5", + "postcss-merge-rules": "^6.1.1", + "postcss-minify-font-values": "^6.1.0", + "postcss-minify-gradients": "^6.0.3", + "postcss-minify-params": "^6.1.0", + "postcss-minify-selectors": "^6.0.4", + "postcss-normalize-charset": "^6.0.2", + "postcss-normalize-display-values": "^6.0.2", + "postcss-normalize-positions": "^6.0.2", + "postcss-normalize-repeat-style": "^6.0.2", + "postcss-normalize-string": "^6.0.2", + "postcss-normalize-timing-functions": "^6.0.2", + "postcss-normalize-unicode": "^6.1.0", + "postcss-normalize-url": "^6.0.2", + "postcss-normalize-whitespace": "^6.0.2", + "postcss-ordered-values": "^6.0.2", + "postcss-reduce-initial": "^6.1.0", + "postcss-reduce-transforms": "^6.0.2", + "postcss-svgo": "^6.0.3", + "postcss-unique-selectors": "^6.0.4" }, "engines": { - "node": "^10 || ^12 || >=14.0" + "node": "^14 || ^16 || >=18.0" }, "peerDependencies": { - "postcss": "^8.2.15" + "postcss": "^8.4.31" } }, "node_modules/cssnano-utils": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/cssnano-utils/-/cssnano-utils-3.1.0.tgz", - "integrity": "sha512-JQNR19/YZhz4psLX/rQ9M83e3z2Wf/HdJbryzte4a3NSuafyp9w/I4U+hx5C2S9g41qlstH7DEWnZaaj83OuEA==", + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/cssnano-utils/-/cssnano-utils-4.0.2.tgz", + "integrity": "sha512-ZR1jHg+wZ8o4c3zqf1SIUSTIvm/9mU343FMR6Obe/unskbvpGhZOo1J6d/r8D1pzkRQYuwbcH3hToOuoA2G7oQ==", "engines": { - "node": "^10 || ^12 || >=14.0" + "node": "^14 || ^16 || >=18.0" }, "peerDependencies": { - "postcss": "^8.2.15" + "postcss": "^8.4.31" } }, "node_modules/csso": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/csso/-/csso-4.2.0.tgz", - "integrity": "sha512-wvlcdIbf6pwKEk7vHj8/Bkc0B4ylXZruLvOgs9doS5eOsOpuodOV2zJChSpkp+pRpYQLQMeF04nr3Z68Sta9jA==", + "version": "5.0.5", + "resolved": "https://registry.npmjs.org/csso/-/csso-5.0.5.tgz", + "integrity": "sha512-0LrrStPOdJj+SPCCrGhzryycLjwcgUSHBtxNA8aIDxf0GLsRh1cKYhB00Gd1lDOS4yGH69+SNn13+TWbVHETFQ==", "dependencies": { - "css-tree": "^1.1.2" + "css-tree": "~2.2.0" }, "engines": { - "node": ">=8.0.0" + "node": "^10 || ^12.20.0 || ^14.13.0 || >=15.0.0", + "npm": ">=7.0.0" } }, + "node_modules/csso/node_modules/css-tree": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/css-tree/-/css-tree-2.2.1.tgz", + "integrity": "sha512-OA0mILzGc1kCOCSJerOeqDxDQ4HOh+G8NbOJFOTgOCzpw7fCBubk0fEyxp8AgOL/jvLgYA/uV0cMbe43ElF1JA==", + "dependencies": { + "mdn-data": "2.0.28", + "source-map-js": "^1.0.1" + }, + "engines": { + "node": "^10 || ^12.20.0 || ^14.13.0 || >=15.0.0", + "npm": ">=7.0.0" + } + }, + "node_modules/csso/node_modules/mdn-data": { + "version": "2.0.28", + "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.28.tgz", + "integrity": "sha512-aylIc7Z9y4yzHYAJNuESG3hfhC+0Ibp/MAMiaOZgNv4pmEdFyfZhhhny4MNiAfWdBQ1RQ2mfDWmM1x8SvGyp8g==" + }, "node_modules/csstype": { "version": "3.1.2", "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.1.2.tgz", @@ -9134,452 +7571,12 @@ "react": "^16.8.4 || ^17.0.0 || ^18.0.0" } }, - "node_modules/docusaurus-plugin-openapi-docs/node_modules/@docusaurus/logger": { - "version": "3.4.0", - "resolved": "https://registry.npmjs.org/@docusaurus/logger/-/logger-3.4.0.tgz", - "integrity": "sha512-bZwkX+9SJ8lB9kVRkXw+xvHYSMGG4bpYHKGXeXFvyVc79NMeeBSGgzd4TQLHH+DYeOJoCdl8flrFJVxlZ0wo/Q==", - "dependencies": { - "chalk": "^4.1.2", - "tslib": "^2.6.0" - }, + "node_modules/docusaurus-plugin-openapi-docs/node_modules/clsx": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/clsx/-/clsx-1.2.1.tgz", + "integrity": "sha512-EcR6r5a8bj6pu3ycsa/E/cKVGuTgZJZdsyUYHOksG/UHIiKfjxzRxYJpyVBwYaQeOvghal9fcc4PidlgzugAQg==", "engines": { - "node": ">=18.0" - } - }, - "node_modules/docusaurus-plugin-openapi-docs/node_modules/@docusaurus/utils": { - "version": "3.4.0", - "resolved": "https://registry.npmjs.org/@docusaurus/utils/-/utils-3.4.0.tgz", - "integrity": "sha512-fRwnu3L3nnWaXOgs88BVBmG1yGjcQqZNHG+vInhEa2Sz2oQB+ZjbEMO5Rh9ePFpZ0YDiDUhpaVjwmS+AU2F14g==", - "dependencies": { - "@docusaurus/logger": "3.4.0", - "@docusaurus/utils-common": "3.4.0", - "@svgr/webpack": "^8.1.0", - "escape-string-regexp": "^4.0.0", - "file-loader": "^6.2.0", - "fs-extra": "^11.1.1", - "github-slugger": "^1.5.0", - "globby": "^11.1.0", - "gray-matter": "^4.0.3", - "jiti": "^1.20.0", - "js-yaml": "^4.1.0", - "lodash": "^4.17.21", - "micromatch": "^4.0.5", - "prompts": "^2.4.2", - "resolve-pathname": "^3.0.0", - "shelljs": "^0.8.5", - "tslib": "^2.6.0", - "url-loader": "^4.1.1", - "utility-types": "^3.10.0", - "webpack": "^5.88.1" - }, - "engines": { - "node": ">=18.0" - }, - "peerDependencies": { - "@docusaurus/types": "*" - }, - "peerDependenciesMeta": { - "@docusaurus/types": { - "optional": true - } - } - }, - "node_modules/docusaurus-plugin-openapi-docs/node_modules/@docusaurus/utils-common": { - "version": "3.4.0", - "resolved": "https://registry.npmjs.org/@docusaurus/utils-common/-/utils-common-3.4.0.tgz", - "integrity": "sha512-NVx54Wr4rCEKsjOH5QEVvxIqVvm+9kh7q8aYTU5WzUU9/Hctd6aTrcZ3G0Id4zYJ+AeaG5K5qHA4CY5Kcm2iyQ==", - "dependencies": { - "tslib": "^2.6.0" - }, - "engines": { - "node": ">=18.0" - }, - "peerDependencies": { - "@docusaurus/types": "*" - }, - "peerDependenciesMeta": { - "@docusaurus/types": { - "optional": true - } - } - }, - "node_modules/docusaurus-plugin-openapi-docs/node_modules/@docusaurus/utils-validation": { - "version": "3.4.0", - "resolved": "https://registry.npmjs.org/@docusaurus/utils-validation/-/utils-validation-3.4.0.tgz", - "integrity": "sha512-hYQ9fM+AXYVTWxJOT1EuNaRnrR2WGpRdLDQG07O8UOpsvCPWUVOeo26Rbm0JWY2sGLfzAb+tvJ62yF+8F+TV0g==", - "dependencies": { - "@docusaurus/logger": "3.4.0", - "@docusaurus/utils": "3.4.0", - "@docusaurus/utils-common": "3.4.0", - "fs-extra": "^11.2.0", - "joi": "^17.9.2", - "js-yaml": "^4.1.0", - "lodash": "^4.17.21", - "tslib": "^2.6.0" - }, - "engines": { - "node": ">=18.0" - } - }, - "node_modules/docusaurus-plugin-openapi-docs/node_modules/@docusaurus/utils-validation/node_modules/fs-extra": { - "version": "11.2.0", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-11.2.0.tgz", - "integrity": "sha512-PmDi3uwK5nFuXh7XDTlVnS17xJS7vW36is2+w3xcv8SVxiB4NyATf4ctkVY5bkSjX0Y4nbvZCq1/EjtEyr9ktw==", - "dependencies": { - "graceful-fs": "^4.2.0", - "jsonfile": "^6.0.1", - "universalify": "^2.0.0" - }, - "engines": { - "node": ">=14.14" - } - }, - "node_modules/docusaurus-plugin-openapi-docs/node_modules/@docusaurus/utils/node_modules/fs-extra": { - "version": "11.2.0", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-11.2.0.tgz", - "integrity": "sha512-PmDi3uwK5nFuXh7XDTlVnS17xJS7vW36is2+w3xcv8SVxiB4NyATf4ctkVY5bkSjX0Y4nbvZCq1/EjtEyr9ktw==", - "dependencies": { - "graceful-fs": "^4.2.0", - "jsonfile": "^6.0.1", - "universalify": "^2.0.0" - }, - "engines": { - "node": ">=14.14" - } - }, - "node_modules/docusaurus-plugin-openapi-docs/node_modules/@svgr/babel-plugin-add-jsx-attribute": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-add-jsx-attribute/-/babel-plugin-add-jsx-attribute-8.0.0.tgz", - "integrity": "sha512-b9MIk7yhdS1pMCZM8VeNfUlSKVRhsHZNMl5O9SfaX0l0t5wjdgu4IDzGB8bpnGBBOjGST3rRFVsaaEtI4W6f7g==", - "engines": { - "node": ">=14" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/gregberge" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/docusaurus-plugin-openapi-docs/node_modules/@svgr/babel-plugin-replace-jsx-attribute-value": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-replace-jsx-attribute-value/-/babel-plugin-replace-jsx-attribute-value-8.0.0.tgz", - "integrity": "sha512-KVQ+PtIjb1BuYT3ht8M5KbzWBhdAjjUPdlMtpuw/VjT8coTrItWX6Qafl9+ji831JaJcu6PJNKCV0bp01lBNzQ==", - "engines": { - "node": ">=14" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/gregberge" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/docusaurus-plugin-openapi-docs/node_modules/@svgr/babel-plugin-svg-dynamic-title": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-svg-dynamic-title/-/babel-plugin-svg-dynamic-title-8.0.0.tgz", - "integrity": "sha512-omNiKqwjNmOQJ2v6ge4SErBbkooV2aAWwaPFs2vUY7p7GhVkzRkJ00kILXQvRhA6miHnNpXv7MRnnSjdRjK8og==", - "engines": { - "node": ">=14" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/gregberge" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/docusaurus-plugin-openapi-docs/node_modules/@svgr/babel-plugin-svg-em-dimensions": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-svg-em-dimensions/-/babel-plugin-svg-em-dimensions-8.0.0.tgz", - "integrity": "sha512-mURHYnu6Iw3UBTbhGwE/vsngtCIbHE43xCRK7kCw4t01xyGqb2Pd+WXekRRoFOBIY29ZoOhUCTEweDMdrjfi9g==", - "engines": { - "node": ">=14" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/gregberge" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/docusaurus-plugin-openapi-docs/node_modules/@svgr/babel-plugin-transform-react-native-svg": { - "version": "8.1.0", - "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-transform-react-native-svg/-/babel-plugin-transform-react-native-svg-8.1.0.tgz", - "integrity": "sha512-Tx8T58CHo+7nwJ+EhUwx3LfdNSG9R2OKfaIXXs5soiy5HtgoAEkDay9LIimLOcG8dJQH1wPZp/cnAv6S9CrR1Q==", - "engines": { - "node": ">=14" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/gregberge" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/docusaurus-plugin-openapi-docs/node_modules/@svgr/babel-plugin-transform-svg-component": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-transform-svg-component/-/babel-plugin-transform-svg-component-8.0.0.tgz", - "integrity": "sha512-DFx8xa3cZXTdb/k3kfPeaixecQLgKh5NVBMwD0AQxOzcZawK4oo1Jh9LbrcACUivsCA7TLG8eeWgrDXjTMhRmw==", - "engines": { - "node": ">=12" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/gregberge" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/docusaurus-plugin-openapi-docs/node_modules/@svgr/babel-preset": { - "version": "8.1.0", - "resolved": "https://registry.npmjs.org/@svgr/babel-preset/-/babel-preset-8.1.0.tgz", - "integrity": "sha512-7EYDbHE7MxHpv4sxvnVPngw5fuR6pw79SkcrILHJ/iMpuKySNCl5W1qcwPEpU+LgyRXOaAFgH0KhwD18wwg6ug==", - "dependencies": { - "@svgr/babel-plugin-add-jsx-attribute": "8.0.0", - "@svgr/babel-plugin-remove-jsx-attribute": "8.0.0", - "@svgr/babel-plugin-remove-jsx-empty-expression": "8.0.0", - "@svgr/babel-plugin-replace-jsx-attribute-value": "8.0.0", - "@svgr/babel-plugin-svg-dynamic-title": "8.0.0", - "@svgr/babel-plugin-svg-em-dimensions": "8.0.0", - "@svgr/babel-plugin-transform-react-native-svg": "8.1.0", - "@svgr/babel-plugin-transform-svg-component": "8.0.0" - }, - "engines": { - "node": ">=14" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/gregberge" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/docusaurus-plugin-openapi-docs/node_modules/@svgr/core": { - "version": "8.1.0", - "resolved": "https://registry.npmjs.org/@svgr/core/-/core-8.1.0.tgz", - "integrity": "sha512-8QqtOQT5ACVlmsvKOJNEaWmRPmcojMOzCz4Hs2BGG/toAp/K38LcsMRyLp349glq5AzJbCEeimEoxaX6v/fLrA==", - "dependencies": { - "@babel/core": "^7.21.3", - "@svgr/babel-preset": "8.1.0", - "camelcase": "^6.2.0", - "cosmiconfig": "^8.1.3", - "snake-case": "^3.0.4" - }, - "engines": { - "node": ">=14" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/gregberge" - } - }, - "node_modules/docusaurus-plugin-openapi-docs/node_modules/@svgr/hast-util-to-babel-ast": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/@svgr/hast-util-to-babel-ast/-/hast-util-to-babel-ast-8.0.0.tgz", - "integrity": "sha512-EbDKwO9GpfWP4jN9sGdYwPBU0kdomaPIL2Eu4YwmgP+sJeXT+L7bMwJUBnhzfH8Q2qMBqZ4fJwpCyYsAN3mt2Q==", - "dependencies": { - "@babel/types": "^7.21.3", - "entities": "^4.4.0" - }, - "engines": { - "node": ">=14" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/gregberge" - } - }, - "node_modules/docusaurus-plugin-openapi-docs/node_modules/@svgr/plugin-jsx": { - "version": "8.1.0", - "resolved": "https://registry.npmjs.org/@svgr/plugin-jsx/-/plugin-jsx-8.1.0.tgz", - "integrity": "sha512-0xiIyBsLlr8quN+WyuxooNW9RJ0Dpr8uOnH/xrCVO8GLUcwHISwj1AG0k+LFzteTkAA0GbX0kj9q6Dk70PTiPA==", - "dependencies": { - "@babel/core": "^7.21.3", - "@svgr/babel-preset": "8.1.0", - "@svgr/hast-util-to-babel-ast": "8.0.0", - "svg-parser": "^2.0.4" - }, - "engines": { - "node": ">=14" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/gregberge" - }, - "peerDependencies": { - "@svgr/core": "*" - } - }, - "node_modules/docusaurus-plugin-openapi-docs/node_modules/@svgr/plugin-svgo": { - "version": "8.1.0", - "resolved": "https://registry.npmjs.org/@svgr/plugin-svgo/-/plugin-svgo-8.1.0.tgz", - "integrity": "sha512-Ywtl837OGO9pTLIN/onoWLmDQ4zFUycI1g76vuKGEz6evR/ZTJlJuz3G/fIkb6OVBJ2g0o6CGJzaEjfmEo3AHA==", - "dependencies": { - "cosmiconfig": "^8.1.3", - "deepmerge": "^4.3.1", - "svgo": "^3.0.2" - }, - "engines": { - "node": ">=14" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/gregberge" - }, - "peerDependencies": { - "@svgr/core": "*" - } - }, - "node_modules/docusaurus-plugin-openapi-docs/node_modules/@svgr/webpack": { - "version": "8.1.0", - "resolved": "https://registry.npmjs.org/@svgr/webpack/-/webpack-8.1.0.tgz", - "integrity": "sha512-LnhVjMWyMQV9ZmeEy26maJk+8HTIbd59cH4F2MJ439k9DqejRisfFNGAPvRYlKETuh9LrImlS8aKsBgKjMA8WA==", - "dependencies": { - "@babel/core": "^7.21.3", - "@babel/plugin-transform-react-constant-elements": "^7.21.3", - "@babel/preset-env": "^7.20.2", - "@babel/preset-react": "^7.18.6", - "@babel/preset-typescript": "^7.21.0", - "@svgr/core": "8.1.0", - "@svgr/plugin-jsx": "8.1.0", - "@svgr/plugin-svgo": "8.1.0" - }, - "engines": { - "node": ">=14" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/gregberge" - } - }, - "node_modules/docusaurus-plugin-openapi-docs/node_modules/cosmiconfig": { - "version": "8.3.6", - "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-8.3.6.tgz", - "integrity": "sha512-kcZ6+W5QzcJ3P1Mt+83OUv/oHFqZHIx8DuxG6eZ5RGMERoLqp4BuGjhHLYGK+Kf5XVkQvqBSmAy/nGWN3qDgEA==", - "dependencies": { - "import-fresh": "^3.3.0", - "js-yaml": "^4.1.0", - "parse-json": "^5.2.0", - "path-type": "^4.0.0" - }, - "engines": { - "node": ">=14" - }, - "funding": { - "url": "https://github.com/sponsors/d-fischer" - }, - "peerDependencies": { - "typescript": ">=4.9.5" - }, - "peerDependenciesMeta": { - "typescript": { - "optional": true - } - } - }, - "node_modules/docusaurus-plugin-openapi-docs/node_modules/css-select": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/css-select/-/css-select-5.1.0.tgz", - "integrity": "sha512-nwoRF1rvRRnnCqqY7updORDsuqKzqYJ28+oSMaJMMgOauh3fvwHqMS7EZpIPqK8GL+g9mKxF1vP/ZjSeNjEVHg==", - "dependencies": { - "boolbase": "^1.0.0", - "css-what": "^6.1.0", - "domhandler": "^5.0.2", - "domutils": "^3.0.1", - "nth-check": "^2.0.1" - }, - "funding": { - "url": "https://github.com/sponsors/fb55" - } - }, - "node_modules/docusaurus-plugin-openapi-docs/node_modules/css-tree": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/css-tree/-/css-tree-2.3.1.tgz", - "integrity": "sha512-6Fv1DV/TYw//QF5IzQdqsNDjx/wc8TrMBZsqjL9eW01tWb7R7k/mq+/VXfJCl7SoD5emsJop9cOByJZfs8hYIw==", - "dependencies": { - "mdn-data": "2.0.30", - "source-map-js": "^1.0.1" - }, - "engines": { - "node": "^10 || ^12.20.0 || ^14.13.0 || >=15.0.0" - } - }, - "node_modules/docusaurus-plugin-openapi-docs/node_modules/csso": { - "version": "5.0.5", - "resolved": "https://registry.npmjs.org/csso/-/csso-5.0.5.tgz", - "integrity": "sha512-0LrrStPOdJj+SPCCrGhzryycLjwcgUSHBtxNA8aIDxf0GLsRh1cKYhB00Gd1lDOS4yGH69+SNn13+TWbVHETFQ==", - "dependencies": { - "css-tree": "~2.2.0" - }, - "engines": { - "node": "^10 || ^12.20.0 || ^14.13.0 || >=15.0.0", - "npm": ">=7.0.0" - } - }, - "node_modules/docusaurus-plugin-openapi-docs/node_modules/csso/node_modules/css-tree": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/css-tree/-/css-tree-2.2.1.tgz", - "integrity": "sha512-OA0mILzGc1kCOCSJerOeqDxDQ4HOh+G8NbOJFOTgOCzpw7fCBubk0fEyxp8AgOL/jvLgYA/uV0cMbe43ElF1JA==", - "dependencies": { - "mdn-data": "2.0.28", - "source-map-js": "^1.0.1" - }, - "engines": { - "node": "^10 || ^12.20.0 || ^14.13.0 || >=15.0.0", - "npm": ">=7.0.0" - } - }, - "node_modules/docusaurus-plugin-openapi-docs/node_modules/csso/node_modules/mdn-data": { - "version": "2.0.28", - "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.28.tgz", - "integrity": "sha512-aylIc7Z9y4yzHYAJNuESG3hfhC+0Ibp/MAMiaOZgNv4pmEdFyfZhhhny4MNiAfWdBQ1RQ2mfDWmM1x8SvGyp8g==" - }, - "node_modules/docusaurus-plugin-openapi-docs/node_modules/dom-serializer": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-2.0.0.tgz", - "integrity": "sha512-wIkAryiqt/nV5EQKqQpo3SToSOV9J0DnbJqwK7Wv/Trc92zIAYZ4FlMu+JPFW1DfGFt81ZTCGgDEabffXeLyJg==", - "dependencies": { - "domelementtype": "^2.3.0", - "domhandler": "^5.0.2", - "entities": "^4.2.0" - }, - "funding": { - "url": "https://github.com/cheeriojs/dom-serializer?sponsor=1" - } - }, - "node_modules/docusaurus-plugin-openapi-docs/node_modules/domhandler": { - "version": "5.0.3", - "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-5.0.3.tgz", - "integrity": "sha512-cgwlv/1iFQiFnU96XXgROh8xTeetsnJiDsTc7TYCLFd9+/WNkIqPTxiM/8pSd8VIrhXGTf1Ny1q1hquVqDJB5w==", - "dependencies": { - "domelementtype": "^2.3.0" - }, - "engines": { - "node": ">= 4" - }, - "funding": { - "url": "https://github.com/fb55/domhandler?sponsor=1" - } - }, - "node_modules/docusaurus-plugin-openapi-docs/node_modules/domutils": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/domutils/-/domutils-3.1.0.tgz", - "integrity": "sha512-H78uMmQtI2AhgDJjWeQmHwJJ2bLPD3GMmO7Zja/ZZh84wkm+4ut+IUnUdRa8uCGX88DiVx1j6FRe1XfxEgjEZA==", - "dependencies": { - "dom-serializer": "^2.0.0", - "domelementtype": "^2.3.0", - "domhandler": "^5.0.3" - }, - "funding": { - "url": "https://github.com/fb55/domutils?sponsor=1" + "node": ">=6" } }, "node_modules/docusaurus-plugin-openapi-docs/node_modules/fs-extra": { @@ -9596,43 +7593,6 @@ "node": ">=10" } }, - "node_modules/docusaurus-plugin-openapi-docs/node_modules/mdn-data": { - "version": "2.0.30", - "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.30.tgz", - "integrity": "sha512-GaqWWShW4kv/G9IEucWScBx9G1/vsFZZJUO+tD26M8J8z3Kw5RDQjaoZe03YAClgeS/SWPOcb4nkFBTEi5DUEA==" - }, - "node_modules/docusaurus-plugin-openapi-docs/node_modules/svgo": { - "version": "3.3.2", - "resolved": "https://registry.npmjs.org/svgo/-/svgo-3.3.2.tgz", - "integrity": "sha512-OoohrmuUlBs8B8o6MB2Aevn+pRIH9zDALSR+6hhqVfa6fRwG/Qw9VUMSMW9VNg2CFc/MTIfabtdOVl9ODIJjpw==", - "dependencies": { - "@trysound/sax": "0.2.0", - "commander": "^7.2.0", - "css-select": "^5.1.0", - "css-tree": "^2.3.1", - "css-what": "^6.1.0", - "csso": "^5.0.5", - "picocolors": "^1.0.0" - }, - "bin": { - "svgo": "bin/svgo" - }, - "engines": { - "node": ">=14.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/svgo" - } - }, - "node_modules/docusaurus-plugin-openapi-docs/node_modules/svgo/node_modules/commander": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/commander/-/commander-7.2.0.tgz", - "integrity": "sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw==", - "engines": { - "node": ">= 10" - } - }, "node_modules/docusaurus-plugin-sass": { "version": "0.2.5", "resolved": "https://registry.npmjs.org/docusaurus-plugin-sass/-/docusaurus-plugin-sass-0.2.5.tgz", @@ -9765,1359 +7725,14 @@ "react-dom": "^16.8.4 || ^17.0.0 || ^18.0.0" } }, - "node_modules/docusaurus-theme-openapi-docs/node_modules/@docusaurus/core": { - "version": "3.4.0", - "resolved": "https://registry.npmjs.org/@docusaurus/core/-/core-3.4.0.tgz", - "integrity": "sha512-g+0wwmN2UJsBqy2fQRQ6fhXruoEa62JDeEa5d8IdTJlMoaDaEDfHh7WjwGRn4opuTQWpjAwP/fbcgyHKlE+64w==", - "dependencies": { - "@babel/core": "^7.23.3", - "@babel/generator": "^7.23.3", - "@babel/plugin-syntax-dynamic-import": "^7.8.3", - "@babel/plugin-transform-runtime": "^7.22.9", - "@babel/preset-env": "^7.22.9", - "@babel/preset-react": "^7.22.5", - "@babel/preset-typescript": "^7.22.5", - "@babel/runtime": "^7.22.6", - "@babel/runtime-corejs3": "^7.22.6", - "@babel/traverse": "^7.22.8", - "@docusaurus/cssnano-preset": "3.4.0", - "@docusaurus/logger": "3.4.0", - "@docusaurus/mdx-loader": "3.4.0", - "@docusaurus/utils": "3.4.0", - "@docusaurus/utils-common": "3.4.0", - "@docusaurus/utils-validation": "3.4.0", - "autoprefixer": "^10.4.14", - "babel-loader": "^9.1.3", - "babel-plugin-dynamic-import-node": "^2.3.3", - "boxen": "^6.2.1", - "chalk": "^4.1.2", - "chokidar": "^3.5.3", - "clean-css": "^5.3.2", - "cli-table3": "^0.6.3", - "combine-promises": "^1.1.0", - "commander": "^5.1.0", - "copy-webpack-plugin": "^11.0.0", - "core-js": "^3.31.1", - "css-loader": "^6.8.1", - "css-minimizer-webpack-plugin": "^5.0.1", - "cssnano": "^6.1.2", - "del": "^6.1.1", - "detect-port": "^1.5.1", - "escape-html": "^1.0.3", - "eta": "^2.2.0", - "eval": "^0.1.8", - "file-loader": "^6.2.0", - "fs-extra": "^11.1.1", - "html-minifier-terser": "^7.2.0", - "html-tags": "^3.3.1", - "html-webpack-plugin": "^5.5.3", - "leven": "^3.1.0", - "lodash": "^4.17.21", - "mini-css-extract-plugin": "^2.7.6", - "p-map": "^4.0.0", - "postcss": "^8.4.26", - "postcss-loader": "^7.3.3", - "prompts": "^2.4.2", - "react-dev-utils": "^12.0.1", - "react-helmet-async": "^1.3.0", - "react-loadable": "npm:@docusaurus/react-loadable@6.0.0", - "react-loadable-ssr-addon-v5-slorber": "^1.0.1", - "react-router": "^5.3.4", - "react-router-config": "^5.1.1", - "react-router-dom": "^5.3.4", - "rtl-detect": "^1.0.4", - "semver": "^7.5.4", - "serve-handler": "^6.1.5", - "shelljs": "^0.8.5", - "terser-webpack-plugin": "^5.3.9", - "tslib": "^2.6.0", - "update-notifier": "^6.0.2", - "url-loader": "^4.1.1", - "webpack": "^5.88.1", - "webpack-bundle-analyzer": "^4.9.0", - "webpack-dev-server": "^4.15.1", - "webpack-merge": "^5.9.0", - "webpackbar": "^5.0.2" - }, - "bin": { - "docusaurus": "bin/docusaurus.mjs" - }, - "engines": { - "node": ">=18.0" - }, - "peerDependencies": { - "react": "^18.0.0", - "react-dom": "^18.0.0" - } - }, - "node_modules/docusaurus-theme-openapi-docs/node_modules/@docusaurus/cssnano-preset": { - "version": "3.4.0", - "resolved": "https://registry.npmjs.org/@docusaurus/cssnano-preset/-/cssnano-preset-3.4.0.tgz", - "integrity": "sha512-qwLFSz6v/pZHy/UP32IrprmH5ORce86BGtN0eBtG75PpzQJAzp9gefspox+s8IEOr0oZKuQ/nhzZ3xwyc3jYJQ==", - "dependencies": { - "cssnano-preset-advanced": "^6.1.2", - "postcss": "^8.4.38", - "postcss-sort-media-queries": "^5.2.0", - "tslib": "^2.6.0" - }, - "engines": { - "node": ">=18.0" - } - }, - "node_modules/docusaurus-theme-openapi-docs/node_modules/@docusaurus/logger": { - "version": "3.4.0", - "resolved": "https://registry.npmjs.org/@docusaurus/logger/-/logger-3.4.0.tgz", - "integrity": "sha512-bZwkX+9SJ8lB9kVRkXw+xvHYSMGG4bpYHKGXeXFvyVc79NMeeBSGgzd4TQLHH+DYeOJoCdl8flrFJVxlZ0wo/Q==", - "dependencies": { - "chalk": "^4.1.2", - "tslib": "^2.6.0" - }, - "engines": { - "node": ">=18.0" - } - }, - "node_modules/docusaurus-theme-openapi-docs/node_modules/@docusaurus/mdx-loader": { - "version": "3.4.0", - "resolved": "https://registry.npmjs.org/@docusaurus/mdx-loader/-/mdx-loader-3.4.0.tgz", - "integrity": "sha512-kSSbrrk4nTjf4d+wtBA9H+FGauf2gCax89kV8SUSJu3qaTdSIKdWERlngsiHaCFgZ7laTJ8a67UFf+xlFPtuTw==", - "dependencies": { - "@docusaurus/logger": "3.4.0", - "@docusaurus/utils": "3.4.0", - "@docusaurus/utils-validation": "3.4.0", - "@mdx-js/mdx": "^3.0.0", - "@slorber/remark-comment": "^1.0.0", - "escape-html": "^1.0.3", - "estree-util-value-to-estree": "^3.0.1", - "file-loader": "^6.2.0", - "fs-extra": "^11.1.1", - "image-size": "^1.0.2", - "mdast-util-mdx": "^3.0.0", - "mdast-util-to-string": "^4.0.0", - "rehype-raw": "^7.0.0", - "remark-directive": "^3.0.0", - "remark-emoji": "^4.0.0", - "remark-frontmatter": "^5.0.0", - "remark-gfm": "^4.0.0", - "stringify-object": "^3.3.0", - "tslib": "^2.6.0", - "unified": "^11.0.3", - "unist-util-visit": "^5.0.0", - "url-loader": "^4.1.1", - "vfile": "^6.0.1", - "webpack": "^5.88.1" - }, - "engines": { - "node": ">=18.0" - }, - "peerDependencies": { - "react": "^18.0.0", - "react-dom": "^18.0.0" - } - }, - "node_modules/docusaurus-theme-openapi-docs/node_modules/@docusaurus/mdx-loader/node_modules/rehype-raw": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/rehype-raw/-/rehype-raw-7.0.0.tgz", - "integrity": "sha512-/aE8hCfKlQeA8LmyeyQvQF3eBiLRGNlfBJEvWH7ivp9sBqs7TNqBL5X3v157rM4IFETqDnIOO+z5M/biZbo9Ww==", - "dependencies": { - "@types/hast": "^3.0.0", - "hast-util-raw": "^9.0.0", - "vfile": "^6.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/docusaurus-theme-openapi-docs/node_modules/@docusaurus/module-type-aliases": { - "version": "3.4.0", - "resolved": "https://registry.npmjs.org/@docusaurus/module-type-aliases/-/module-type-aliases-3.4.0.tgz", - "integrity": "sha512-A1AyS8WF5Bkjnb8s+guTDuYmUiwJzNrtchebBHpc0gz0PyHJNMaybUlSrmJjHVcGrya0LKI4YcR3lBDQfXRYLw==", - "dependencies": { - "@docusaurus/types": "3.4.0", - "@types/history": "^4.7.11", - "@types/react": "*", - "@types/react-router-config": "*", - "@types/react-router-dom": "*", - "react-helmet-async": "*", - "react-loadable": "npm:@docusaurus/react-loadable@6.0.0" - }, - "peerDependencies": { - "react": "*", - "react-dom": "*" - } - }, - "node_modules/docusaurus-theme-openapi-docs/node_modules/@docusaurus/plugin-content-blog": { - "version": "3.4.0", - "resolved": "https://registry.npmjs.org/@docusaurus/plugin-content-blog/-/plugin-content-blog-3.4.0.tgz", - "integrity": "sha512-vv6ZAj78ibR5Jh7XBUT4ndIjmlAxkijM3Sx5MAAzC1gyv0vupDQNhzuFg1USQmQVj3P5I6bquk12etPV3LJ+Xw==", - "dependencies": { - "@docusaurus/core": "3.4.0", - "@docusaurus/logger": "3.4.0", - "@docusaurus/mdx-loader": "3.4.0", - "@docusaurus/types": "3.4.0", - "@docusaurus/utils": "3.4.0", - "@docusaurus/utils-common": "3.4.0", - "@docusaurus/utils-validation": "3.4.0", - "cheerio": "^1.0.0-rc.12", - "feed": "^4.2.2", - "fs-extra": "^11.1.1", - "lodash": "^4.17.21", - "reading-time": "^1.5.0", - "srcset": "^4.0.0", - "tslib": "^2.6.0", - "unist-util-visit": "^5.0.0", - "utility-types": "^3.10.0", - "webpack": "^5.88.1" - }, - "engines": { - "node": ">=18.0" - }, - "peerDependencies": { - "react": "^18.0.0", - "react-dom": "^18.0.0" - } - }, - "node_modules/docusaurus-theme-openapi-docs/node_modules/@docusaurus/plugin-content-pages": { - "version": "3.4.0", - "resolved": "https://registry.npmjs.org/@docusaurus/plugin-content-pages/-/plugin-content-pages-3.4.0.tgz", - "integrity": "sha512-h2+VN/0JjpR8fIkDEAoadNjfR3oLzB+v1qSXbIAKjQ46JAHx3X22n9nqS+BWSQnTnp1AjkjSvZyJMekmcwxzxg==", - "dependencies": { - "@docusaurus/core": "3.4.0", - "@docusaurus/mdx-loader": "3.4.0", - "@docusaurus/types": "3.4.0", - "@docusaurus/utils": "3.4.0", - "@docusaurus/utils-validation": "3.4.0", - "fs-extra": "^11.1.1", - "tslib": "^2.6.0", - "webpack": "^5.88.1" - }, - "engines": { - "node": ">=18.0" - }, - "peerDependencies": { - "react": "^18.0.0", - "react-dom": "^18.0.0" - } - }, - "node_modules/docusaurus-theme-openapi-docs/node_modules/@docusaurus/theme-common": { - "version": "3.4.0", - "resolved": "https://registry.npmjs.org/@docusaurus/theme-common/-/theme-common-3.4.0.tgz", - "integrity": "sha512-0A27alXuv7ZdCg28oPE8nH/Iz73/IUejVaCazqu9elS4ypjiLhK3KfzdSQBnL/g7YfHSlymZKdiOHEo8fJ0qMA==", - "dependencies": { - "@docusaurus/mdx-loader": "3.4.0", - "@docusaurus/module-type-aliases": "3.4.0", - "@docusaurus/plugin-content-blog": "3.4.0", - "@docusaurus/plugin-content-docs": "3.4.0", - "@docusaurus/plugin-content-pages": "3.4.0", - "@docusaurus/utils": "3.4.0", - "@docusaurus/utils-common": "3.4.0", - "@types/history": "^4.7.11", - "@types/react": "*", - "@types/react-router-config": "*", - "clsx": "^2.0.0", - "parse-numeric-range": "^1.3.0", - "prism-react-renderer": "^2.3.0", - "tslib": "^2.6.0", - "utility-types": "^3.10.0" - }, - "engines": { - "node": ">=18.0" - }, - "peerDependencies": { - "react": "^18.0.0", - "react-dom": "^18.0.0" - } - }, - "node_modules/docusaurus-theme-openapi-docs/node_modules/@docusaurus/theme-common/node_modules/clsx": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/clsx/-/clsx-2.1.1.tgz", - "integrity": "sha512-eYm0QWBtUrBWZWG0d386OGAw16Z995PiOVo2B7bjWSbHedGl5e0ZWaq65kOGgUSNesEIDkB9ISbTg/JK9dhCZA==", + "node_modules/docusaurus-theme-openapi-docs/node_modules/clsx": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/clsx/-/clsx-1.2.1.tgz", + "integrity": "sha512-EcR6r5a8bj6pu3ycsa/E/cKVGuTgZJZdsyUYHOksG/UHIiKfjxzRxYJpyVBwYaQeOvghal9fcc4PidlgzugAQg==", "engines": { "node": ">=6" } }, - "node_modules/docusaurus-theme-openapi-docs/node_modules/@docusaurus/types": { - "version": "3.4.0", - "resolved": "https://registry.npmjs.org/@docusaurus/types/-/types-3.4.0.tgz", - "integrity": "sha512-4jcDO8kXi5Cf9TcyikB/yKmz14f2RZ2qTRerbHAsS+5InE9ZgSLBNLsewtFTcTOXSVcbU3FoGOzcNWAmU1TR0A==", - "dependencies": { - "@mdx-js/mdx": "^3.0.0", - "@types/history": "^4.7.11", - "@types/react": "*", - "commander": "^5.1.0", - "joi": "^17.9.2", - "react-helmet-async": "^1.3.0", - "utility-types": "^3.10.0", - "webpack": "^5.88.1", - "webpack-merge": "^5.9.0" - }, - "peerDependencies": { - "react": "^18.0.0", - "react-dom": "^18.0.0" - } - }, - "node_modules/docusaurus-theme-openapi-docs/node_modules/@docusaurus/utils": { - "version": "3.4.0", - "resolved": "https://registry.npmjs.org/@docusaurus/utils/-/utils-3.4.0.tgz", - "integrity": "sha512-fRwnu3L3nnWaXOgs88BVBmG1yGjcQqZNHG+vInhEa2Sz2oQB+ZjbEMO5Rh9ePFpZ0YDiDUhpaVjwmS+AU2F14g==", - "dependencies": { - "@docusaurus/logger": "3.4.0", - "@docusaurus/utils-common": "3.4.0", - "@svgr/webpack": "^8.1.0", - "escape-string-regexp": "^4.0.0", - "file-loader": "^6.2.0", - "fs-extra": "^11.1.1", - "github-slugger": "^1.5.0", - "globby": "^11.1.0", - "gray-matter": "^4.0.3", - "jiti": "^1.20.0", - "js-yaml": "^4.1.0", - "lodash": "^4.17.21", - "micromatch": "^4.0.5", - "prompts": "^2.4.2", - "resolve-pathname": "^3.0.0", - "shelljs": "^0.8.5", - "tslib": "^2.6.0", - "url-loader": "^4.1.1", - "utility-types": "^3.10.0", - "webpack": "^5.88.1" - }, - "engines": { - "node": ">=18.0" - }, - "peerDependencies": { - "@docusaurus/types": "*" - }, - "peerDependenciesMeta": { - "@docusaurus/types": { - "optional": true - } - } - }, - "node_modules/docusaurus-theme-openapi-docs/node_modules/@docusaurus/utils-common": { - "version": "3.4.0", - "resolved": "https://registry.npmjs.org/@docusaurus/utils-common/-/utils-common-3.4.0.tgz", - "integrity": "sha512-NVx54Wr4rCEKsjOH5QEVvxIqVvm+9kh7q8aYTU5WzUU9/Hctd6aTrcZ3G0Id4zYJ+AeaG5K5qHA4CY5Kcm2iyQ==", - "dependencies": { - "tslib": "^2.6.0" - }, - "engines": { - "node": ">=18.0" - }, - "peerDependencies": { - "@docusaurus/types": "*" - }, - "peerDependenciesMeta": { - "@docusaurus/types": { - "optional": true - } - } - }, - "node_modules/docusaurus-theme-openapi-docs/node_modules/@docusaurus/utils-validation": { - "version": "3.4.0", - "resolved": "https://registry.npmjs.org/@docusaurus/utils-validation/-/utils-validation-3.4.0.tgz", - "integrity": "sha512-hYQ9fM+AXYVTWxJOT1EuNaRnrR2WGpRdLDQG07O8UOpsvCPWUVOeo26Rbm0JWY2sGLfzAb+tvJ62yF+8F+TV0g==", - "dependencies": { - "@docusaurus/logger": "3.4.0", - "@docusaurus/utils": "3.4.0", - "@docusaurus/utils-common": "3.4.0", - "fs-extra": "^11.2.0", - "joi": "^17.9.2", - "js-yaml": "^4.1.0", - "lodash": "^4.17.21", - "tslib": "^2.6.0" - }, - "engines": { - "node": ">=18.0" - } - }, - "node_modules/docusaurus-theme-openapi-docs/node_modules/@svgr/babel-plugin-add-jsx-attribute": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-add-jsx-attribute/-/babel-plugin-add-jsx-attribute-8.0.0.tgz", - "integrity": "sha512-b9MIk7yhdS1pMCZM8VeNfUlSKVRhsHZNMl5O9SfaX0l0t5wjdgu4IDzGB8bpnGBBOjGST3rRFVsaaEtI4W6f7g==", - "engines": { - "node": ">=14" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/gregberge" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/docusaurus-theme-openapi-docs/node_modules/@svgr/babel-plugin-replace-jsx-attribute-value": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-replace-jsx-attribute-value/-/babel-plugin-replace-jsx-attribute-value-8.0.0.tgz", - "integrity": "sha512-KVQ+PtIjb1BuYT3ht8M5KbzWBhdAjjUPdlMtpuw/VjT8coTrItWX6Qafl9+ji831JaJcu6PJNKCV0bp01lBNzQ==", - "engines": { - "node": ">=14" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/gregberge" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/docusaurus-theme-openapi-docs/node_modules/@svgr/babel-plugin-svg-dynamic-title": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-svg-dynamic-title/-/babel-plugin-svg-dynamic-title-8.0.0.tgz", - "integrity": "sha512-omNiKqwjNmOQJ2v6ge4SErBbkooV2aAWwaPFs2vUY7p7GhVkzRkJ00kILXQvRhA6miHnNpXv7MRnnSjdRjK8og==", - "engines": { - "node": ">=14" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/gregberge" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/docusaurus-theme-openapi-docs/node_modules/@svgr/babel-plugin-svg-em-dimensions": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-svg-em-dimensions/-/babel-plugin-svg-em-dimensions-8.0.0.tgz", - "integrity": "sha512-mURHYnu6Iw3UBTbhGwE/vsngtCIbHE43xCRK7kCw4t01xyGqb2Pd+WXekRRoFOBIY29ZoOhUCTEweDMdrjfi9g==", - "engines": { - "node": ">=14" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/gregberge" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/docusaurus-theme-openapi-docs/node_modules/@svgr/babel-plugin-transform-react-native-svg": { - "version": "8.1.0", - "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-transform-react-native-svg/-/babel-plugin-transform-react-native-svg-8.1.0.tgz", - "integrity": "sha512-Tx8T58CHo+7nwJ+EhUwx3LfdNSG9R2OKfaIXXs5soiy5HtgoAEkDay9LIimLOcG8dJQH1wPZp/cnAv6S9CrR1Q==", - "engines": { - "node": ">=14" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/gregberge" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/docusaurus-theme-openapi-docs/node_modules/@svgr/babel-plugin-transform-svg-component": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-transform-svg-component/-/babel-plugin-transform-svg-component-8.0.0.tgz", - "integrity": "sha512-DFx8xa3cZXTdb/k3kfPeaixecQLgKh5NVBMwD0AQxOzcZawK4oo1Jh9LbrcACUivsCA7TLG8eeWgrDXjTMhRmw==", - "engines": { - "node": ">=12" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/gregberge" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/docusaurus-theme-openapi-docs/node_modules/@svgr/babel-preset": { - "version": "8.1.0", - "resolved": "https://registry.npmjs.org/@svgr/babel-preset/-/babel-preset-8.1.0.tgz", - "integrity": "sha512-7EYDbHE7MxHpv4sxvnVPngw5fuR6pw79SkcrILHJ/iMpuKySNCl5W1qcwPEpU+LgyRXOaAFgH0KhwD18wwg6ug==", - "dependencies": { - "@svgr/babel-plugin-add-jsx-attribute": "8.0.0", - "@svgr/babel-plugin-remove-jsx-attribute": "8.0.0", - "@svgr/babel-plugin-remove-jsx-empty-expression": "8.0.0", - "@svgr/babel-plugin-replace-jsx-attribute-value": "8.0.0", - "@svgr/babel-plugin-svg-dynamic-title": "8.0.0", - "@svgr/babel-plugin-svg-em-dimensions": "8.0.0", - "@svgr/babel-plugin-transform-react-native-svg": "8.1.0", - "@svgr/babel-plugin-transform-svg-component": "8.0.0" - }, - "engines": { - "node": ">=14" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/gregberge" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/docusaurus-theme-openapi-docs/node_modules/@svgr/core": { - "version": "8.1.0", - "resolved": "https://registry.npmjs.org/@svgr/core/-/core-8.1.0.tgz", - "integrity": "sha512-8QqtOQT5ACVlmsvKOJNEaWmRPmcojMOzCz4Hs2BGG/toAp/K38LcsMRyLp349glq5AzJbCEeimEoxaX6v/fLrA==", - "dependencies": { - "@babel/core": "^7.21.3", - "@svgr/babel-preset": "8.1.0", - "camelcase": "^6.2.0", - "cosmiconfig": "^8.1.3", - "snake-case": "^3.0.4" - }, - "engines": { - "node": ">=14" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/gregberge" - } - }, - "node_modules/docusaurus-theme-openapi-docs/node_modules/@svgr/hast-util-to-babel-ast": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/@svgr/hast-util-to-babel-ast/-/hast-util-to-babel-ast-8.0.0.tgz", - "integrity": "sha512-EbDKwO9GpfWP4jN9sGdYwPBU0kdomaPIL2Eu4YwmgP+sJeXT+L7bMwJUBnhzfH8Q2qMBqZ4fJwpCyYsAN3mt2Q==", - "dependencies": { - "@babel/types": "^7.21.3", - "entities": "^4.4.0" - }, - "engines": { - "node": ">=14" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/gregberge" - } - }, - "node_modules/docusaurus-theme-openapi-docs/node_modules/@svgr/plugin-jsx": { - "version": "8.1.0", - "resolved": "https://registry.npmjs.org/@svgr/plugin-jsx/-/plugin-jsx-8.1.0.tgz", - "integrity": "sha512-0xiIyBsLlr8quN+WyuxooNW9RJ0Dpr8uOnH/xrCVO8GLUcwHISwj1AG0k+LFzteTkAA0GbX0kj9q6Dk70PTiPA==", - "dependencies": { - "@babel/core": "^7.21.3", - "@svgr/babel-preset": "8.1.0", - "@svgr/hast-util-to-babel-ast": "8.0.0", - "svg-parser": "^2.0.4" - }, - "engines": { - "node": ">=14" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/gregberge" - }, - "peerDependencies": { - "@svgr/core": "*" - } - }, - "node_modules/docusaurus-theme-openapi-docs/node_modules/@svgr/plugin-svgo": { - "version": "8.1.0", - "resolved": "https://registry.npmjs.org/@svgr/plugin-svgo/-/plugin-svgo-8.1.0.tgz", - "integrity": "sha512-Ywtl837OGO9pTLIN/onoWLmDQ4zFUycI1g76vuKGEz6evR/ZTJlJuz3G/fIkb6OVBJ2g0o6CGJzaEjfmEo3AHA==", - "dependencies": { - "cosmiconfig": "^8.1.3", - "deepmerge": "^4.3.1", - "svgo": "^3.0.2" - }, - "engines": { - "node": ">=14" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/gregberge" - }, - "peerDependencies": { - "@svgr/core": "*" - } - }, - "node_modules/docusaurus-theme-openapi-docs/node_modules/@svgr/webpack": { - "version": "8.1.0", - "resolved": "https://registry.npmjs.org/@svgr/webpack/-/webpack-8.1.0.tgz", - "integrity": "sha512-LnhVjMWyMQV9ZmeEy26maJk+8HTIbd59cH4F2MJ439k9DqejRisfFNGAPvRYlKETuh9LrImlS8aKsBgKjMA8WA==", - "dependencies": { - "@babel/core": "^7.21.3", - "@babel/plugin-transform-react-constant-elements": "^7.21.3", - "@babel/preset-env": "^7.20.2", - "@babel/preset-react": "^7.18.6", - "@babel/preset-typescript": "^7.21.0", - "@svgr/core": "8.1.0", - "@svgr/plugin-jsx": "8.1.0", - "@svgr/plugin-svgo": "8.1.0" - }, - "engines": { - "node": ">=14" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/gregberge" - } - }, - "node_modules/docusaurus-theme-openapi-docs/node_modules/@types/hast": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/@types/hast/-/hast-3.0.4.tgz", - "integrity": "sha512-WPs+bbQw5aCj+x6laNGWLH3wviHtoCv/P3+otBhbOhJgG8qtpdAMlTCxLtsTWA7LH1Oh/bFCHsBn0TPS5m30EQ==", - "dependencies": { - "@types/unist": "*" - } - }, - "node_modules/docusaurus-theme-openapi-docs/node_modules/@types/unist": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/@types/unist/-/unist-3.0.2.tgz", - "integrity": "sha512-dqId9J8K/vGi5Zr7oo212BGii5m3q5Hxlkwy3WpYuKPklmBEvsbMYYyLxAQpSffdLl/gdW0XUpKWFvYmyoWCoQ==" - }, - "node_modules/docusaurus-theme-openapi-docs/node_modules/cosmiconfig": { - "version": "8.3.6", - "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-8.3.6.tgz", - "integrity": "sha512-kcZ6+W5QzcJ3P1Mt+83OUv/oHFqZHIx8DuxG6eZ5RGMERoLqp4BuGjhHLYGK+Kf5XVkQvqBSmAy/nGWN3qDgEA==", - "dependencies": { - "import-fresh": "^3.3.0", - "js-yaml": "^4.1.0", - "parse-json": "^5.2.0", - "path-type": "^4.0.0" - }, - "engines": { - "node": ">=14" - }, - "funding": { - "url": "https://github.com/sponsors/d-fischer" - }, - "peerDependencies": { - "typescript": ">=4.9.5" - }, - "peerDependenciesMeta": { - "typescript": { - "optional": true - } - } - }, - "node_modules/docusaurus-theme-openapi-docs/node_modules/css-declaration-sorter": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/css-declaration-sorter/-/css-declaration-sorter-7.2.0.tgz", - "integrity": "sha512-h70rUM+3PNFuaBDTLe8wF/cdWu+dOZmb7pJt8Z2sedYbAcQVQV/tEchueg3GWxwqS0cxtbxmaHEdkNACqcvsow==", - "engines": { - "node": "^14 || ^16 || >=18" - }, - "peerDependencies": { - "postcss": "^8.0.9" - } - }, - "node_modules/docusaurus-theme-openapi-docs/node_modules/css-minimizer-webpack-plugin": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/css-minimizer-webpack-plugin/-/css-minimizer-webpack-plugin-5.0.1.tgz", - "integrity": "sha512-3caImjKFQkS+ws1TGcFn0V1HyDJFq1Euy589JlD6/3rV2kj+w7r5G9WDMgSHvpvXHNZ2calVypZWuEDQd9wfLg==", - "dependencies": { - "@jridgewell/trace-mapping": "^0.3.18", - "cssnano": "^6.0.1", - "jest-worker": "^29.4.3", - "postcss": "^8.4.24", - "schema-utils": "^4.0.1", - "serialize-javascript": "^6.0.1" - }, - "engines": { - "node": ">= 14.15.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" - }, - "peerDependencies": { - "webpack": "^5.0.0" - }, - "peerDependenciesMeta": { - "@parcel/css": { - "optional": true - }, - "@swc/css": { - "optional": true - }, - "clean-css": { - "optional": true - }, - "csso": { - "optional": true - }, - "esbuild": { - "optional": true - }, - "lightningcss": { - "optional": true - } - } - }, - "node_modules/docusaurus-theme-openapi-docs/node_modules/css-select": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/css-select/-/css-select-5.1.0.tgz", - "integrity": "sha512-nwoRF1rvRRnnCqqY7updORDsuqKzqYJ28+oSMaJMMgOauh3fvwHqMS7EZpIPqK8GL+g9mKxF1vP/ZjSeNjEVHg==", - "dependencies": { - "boolbase": "^1.0.0", - "css-what": "^6.1.0", - "domhandler": "^5.0.2", - "domutils": "^3.0.1", - "nth-check": "^2.0.1" - }, - "funding": { - "url": "https://github.com/sponsors/fb55" - } - }, - "node_modules/docusaurus-theme-openapi-docs/node_modules/css-tree": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/css-tree/-/css-tree-2.3.1.tgz", - "integrity": "sha512-6Fv1DV/TYw//QF5IzQdqsNDjx/wc8TrMBZsqjL9eW01tWb7R7k/mq+/VXfJCl7SoD5emsJop9cOByJZfs8hYIw==", - "dependencies": { - "mdn-data": "2.0.30", - "source-map-js": "^1.0.1" - }, - "engines": { - "node": "^10 || ^12.20.0 || ^14.13.0 || >=15.0.0" - } - }, - "node_modules/docusaurus-theme-openapi-docs/node_modules/cssnano": { - "version": "6.1.2", - "resolved": "https://registry.npmjs.org/cssnano/-/cssnano-6.1.2.tgz", - "integrity": "sha512-rYk5UeX7VAM/u0lNqewCdasdtPK81CgX8wJFLEIXHbV2oldWRgJAsZrdhRXkV1NJzA2g850KiFm9mMU2HxNxMA==", - "dependencies": { - "cssnano-preset-default": "^6.1.2", - "lilconfig": "^3.1.1" - }, - "engines": { - "node": "^14 || ^16 || >=18.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/cssnano" - }, - "peerDependencies": { - "postcss": "^8.4.31" - } - }, - "node_modules/docusaurus-theme-openapi-docs/node_modules/cssnano-preset-advanced": { - "version": "6.1.2", - "resolved": "https://registry.npmjs.org/cssnano-preset-advanced/-/cssnano-preset-advanced-6.1.2.tgz", - "integrity": "sha512-Nhao7eD8ph2DoHolEzQs5CfRpiEP0xa1HBdnFZ82kvqdmbwVBUr2r1QuQ4t1pi+D1ZpqpcO4T+wy/7RxzJ/WPQ==", - "dependencies": { - "autoprefixer": "^10.4.19", - "browserslist": "^4.23.0", - "cssnano-preset-default": "^6.1.2", - "postcss-discard-unused": "^6.0.5", - "postcss-merge-idents": "^6.0.3", - "postcss-reduce-idents": "^6.0.3", - "postcss-zindex": "^6.0.2" - }, - "engines": { - "node": "^14 || ^16 || >=18.0" - }, - "peerDependencies": { - "postcss": "^8.4.31" - } - }, - "node_modules/docusaurus-theme-openapi-docs/node_modules/cssnano-preset-default": { - "version": "6.1.2", - "resolved": "https://registry.npmjs.org/cssnano-preset-default/-/cssnano-preset-default-6.1.2.tgz", - "integrity": "sha512-1C0C+eNaeN8OcHQa193aRgYexyJtU8XwbdieEjClw+J9d94E41LwT6ivKH0WT+fYwYWB0Zp3I3IZ7tI/BbUbrg==", - "dependencies": { - "browserslist": "^4.23.0", - "css-declaration-sorter": "^7.2.0", - "cssnano-utils": "^4.0.2", - "postcss-calc": "^9.0.1", - "postcss-colormin": "^6.1.0", - "postcss-convert-values": "^6.1.0", - "postcss-discard-comments": "^6.0.2", - "postcss-discard-duplicates": "^6.0.3", - "postcss-discard-empty": "^6.0.3", - "postcss-discard-overridden": "^6.0.2", - "postcss-merge-longhand": "^6.0.5", - "postcss-merge-rules": "^6.1.1", - "postcss-minify-font-values": "^6.1.0", - "postcss-minify-gradients": "^6.0.3", - "postcss-minify-params": "^6.1.0", - "postcss-minify-selectors": "^6.0.4", - "postcss-normalize-charset": "^6.0.2", - "postcss-normalize-display-values": "^6.0.2", - "postcss-normalize-positions": "^6.0.2", - "postcss-normalize-repeat-style": "^6.0.2", - "postcss-normalize-string": "^6.0.2", - "postcss-normalize-timing-functions": "^6.0.2", - "postcss-normalize-unicode": "^6.1.0", - "postcss-normalize-url": "^6.0.2", - "postcss-normalize-whitespace": "^6.0.2", - "postcss-ordered-values": "^6.0.2", - "postcss-reduce-initial": "^6.1.0", - "postcss-reduce-transforms": "^6.0.2", - "postcss-svgo": "^6.0.3", - "postcss-unique-selectors": "^6.0.4" - }, - "engines": { - "node": "^14 || ^16 || >=18.0" - }, - "peerDependencies": { - "postcss": "^8.4.31" - } - }, - "node_modules/docusaurus-theme-openapi-docs/node_modules/cssnano-utils": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/cssnano-utils/-/cssnano-utils-4.0.2.tgz", - "integrity": "sha512-ZR1jHg+wZ8o4c3zqf1SIUSTIvm/9mU343FMR6Obe/unskbvpGhZOo1J6d/r8D1pzkRQYuwbcH3hToOuoA2G7oQ==", - "engines": { - "node": "^14 || ^16 || >=18.0" - }, - "peerDependencies": { - "postcss": "^8.4.31" - } - }, - "node_modules/docusaurus-theme-openapi-docs/node_modules/csso": { - "version": "5.0.5", - "resolved": "https://registry.npmjs.org/csso/-/csso-5.0.5.tgz", - "integrity": "sha512-0LrrStPOdJj+SPCCrGhzryycLjwcgUSHBtxNA8aIDxf0GLsRh1cKYhB00Gd1lDOS4yGH69+SNn13+TWbVHETFQ==", - "dependencies": { - "css-tree": "~2.2.0" - }, - "engines": { - "node": "^10 || ^12.20.0 || ^14.13.0 || >=15.0.0", - "npm": ">=7.0.0" - } - }, - "node_modules/docusaurus-theme-openapi-docs/node_modules/csso/node_modules/css-tree": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/css-tree/-/css-tree-2.2.1.tgz", - "integrity": "sha512-OA0mILzGc1kCOCSJerOeqDxDQ4HOh+G8NbOJFOTgOCzpw7fCBubk0fEyxp8AgOL/jvLgYA/uV0cMbe43ElF1JA==", - "dependencies": { - "mdn-data": "2.0.28", - "source-map-js": "^1.0.1" - }, - "engines": { - "node": "^10 || ^12.20.0 || ^14.13.0 || >=15.0.0", - "npm": ">=7.0.0" - } - }, - "node_modules/docusaurus-theme-openapi-docs/node_modules/csso/node_modules/mdn-data": { - "version": "2.0.28", - "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.28.tgz", - "integrity": "sha512-aylIc7Z9y4yzHYAJNuESG3hfhC+0Ibp/MAMiaOZgNv4pmEdFyfZhhhny4MNiAfWdBQ1RQ2mfDWmM1x8SvGyp8g==" - }, - "node_modules/docusaurus-theme-openapi-docs/node_modules/dom-serializer": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-2.0.0.tgz", - "integrity": "sha512-wIkAryiqt/nV5EQKqQpo3SToSOV9J0DnbJqwK7Wv/Trc92zIAYZ4FlMu+JPFW1DfGFt81ZTCGgDEabffXeLyJg==", - "dependencies": { - "domelementtype": "^2.3.0", - "domhandler": "^5.0.2", - "entities": "^4.2.0" - }, - "funding": { - "url": "https://github.com/cheeriojs/dom-serializer?sponsor=1" - } - }, - "node_modules/docusaurus-theme-openapi-docs/node_modules/domhandler": { - "version": "5.0.3", - "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-5.0.3.tgz", - "integrity": "sha512-cgwlv/1iFQiFnU96XXgROh8xTeetsnJiDsTc7TYCLFd9+/WNkIqPTxiM/8pSd8VIrhXGTf1Ny1q1hquVqDJB5w==", - "dependencies": { - "domelementtype": "^2.3.0" - }, - "engines": { - "node": ">= 4" - }, - "funding": { - "url": "https://github.com/fb55/domhandler?sponsor=1" - } - }, - "node_modules/docusaurus-theme-openapi-docs/node_modules/domutils": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/domutils/-/domutils-3.1.0.tgz", - "integrity": "sha512-H78uMmQtI2AhgDJjWeQmHwJJ2bLPD3GMmO7Zja/ZZh84wkm+4ut+IUnUdRa8uCGX88DiVx1j6FRe1XfxEgjEZA==", - "dependencies": { - "dom-serializer": "^2.0.0", - "domelementtype": "^2.3.0", - "domhandler": "^5.0.3" - }, - "funding": { - "url": "https://github.com/fb55/domutils?sponsor=1" - } - }, - "node_modules/docusaurus-theme-openapi-docs/node_modules/html-minifier-terser": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/html-minifier-terser/-/html-minifier-terser-7.2.0.tgz", - "integrity": "sha512-tXgn3QfqPIpGl9o+K5tpcj3/MN4SfLtsx2GWwBC3SSd0tXQGyF3gsSqad8loJgKZGM3ZxbYDd5yhiBIdWpmvLA==", - "dependencies": { - "camel-case": "^4.1.2", - "clean-css": "~5.3.2", - "commander": "^10.0.0", - "entities": "^4.4.0", - "param-case": "^3.0.4", - "relateurl": "^0.2.7", - "terser": "^5.15.1" - }, - "bin": { - "html-minifier-terser": "cli.js" - }, - "engines": { - "node": "^14.13.1 || >=16.0.0" - } - }, - "node_modules/docusaurus-theme-openapi-docs/node_modules/html-minifier-terser/node_modules/commander": { - "version": "10.0.1", - "resolved": "https://registry.npmjs.org/commander/-/commander-10.0.1.tgz", - "integrity": "sha512-y4Mg2tXshplEbSGzx7amzPwKKOCGuoSRP/CjEdwwk0FOGlUbq6lKuoyDZTNZkmxHdJtp54hdfY/JUrdL7Xfdug==", - "engines": { - "node": ">=14" - } - }, - "node_modules/docusaurus-theme-openapi-docs/node_modules/lilconfig": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/lilconfig/-/lilconfig-3.1.2.tgz", - "integrity": "sha512-eop+wDAvpItUys0FWkHIKeC9ybYrTGbU41U5K7+bttZZeohvnY7M9dZ5kB21GNWiFT2q1OoPTvncPCgSOVO5ow==", - "engines": { - "node": ">=14" - }, - "funding": { - "url": "https://github.com/sponsors/antonk52" - } - }, - "node_modules/docusaurus-theme-openapi-docs/node_modules/mdn-data": { - "version": "2.0.30", - "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.30.tgz", - "integrity": "sha512-GaqWWShW4kv/G9IEucWScBx9G1/vsFZZJUO+tD26M8J8z3Kw5RDQjaoZe03YAClgeS/SWPOcb4nkFBTEi5DUEA==" - }, - "node_modules/docusaurus-theme-openapi-docs/node_modules/postcss-calc": { - "version": "9.0.1", - "resolved": "https://registry.npmjs.org/postcss-calc/-/postcss-calc-9.0.1.tgz", - "integrity": "sha512-TipgjGyzP5QzEhsOZUaIkeO5mKeMFpebWzRogWG/ysonUlnHcq5aJe0jOjpfzUU8PeSaBQnrE8ehR0QA5vs8PQ==", - "dependencies": { - "postcss-selector-parser": "^6.0.11", - "postcss-value-parser": "^4.2.0" - }, - "engines": { - "node": "^14 || ^16 || >=18.0" - }, - "peerDependencies": { - "postcss": "^8.2.2" - } - }, - "node_modules/docusaurus-theme-openapi-docs/node_modules/postcss-colormin": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/postcss-colormin/-/postcss-colormin-6.1.0.tgz", - "integrity": "sha512-x9yX7DOxeMAR+BgGVnNSAxmAj98NX/YxEMNFP+SDCEeNLb2r3i6Hh1ksMsnW8Ub5SLCpbescQqn9YEbE9554Sw==", - "dependencies": { - "browserslist": "^4.23.0", - "caniuse-api": "^3.0.0", - "colord": "^2.9.3", - "postcss-value-parser": "^4.2.0" - }, - "engines": { - "node": "^14 || ^16 || >=18.0" - }, - "peerDependencies": { - "postcss": "^8.4.31" - } - }, - "node_modules/docusaurus-theme-openapi-docs/node_modules/postcss-convert-values": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/postcss-convert-values/-/postcss-convert-values-6.1.0.tgz", - "integrity": "sha512-zx8IwP/ts9WvUM6NkVSkiU902QZL1bwPhaVaLynPtCsOTqp+ZKbNi+s6XJg3rfqpKGA/oc7Oxk5t8pOQJcwl/w==", - "dependencies": { - "browserslist": "^4.23.0", - "postcss-value-parser": "^4.2.0" - }, - "engines": { - "node": "^14 || ^16 || >=18.0" - }, - "peerDependencies": { - "postcss": "^8.4.31" - } - }, - "node_modules/docusaurus-theme-openapi-docs/node_modules/postcss-discard-comments": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/postcss-discard-comments/-/postcss-discard-comments-6.0.2.tgz", - "integrity": "sha512-65w/uIqhSBBfQmYnG92FO1mWZjJ4GL5b8atm5Yw2UgrwD7HiNiSSNwJor1eCFGzUgYnN/iIknhNRVqjrrpuglw==", - "engines": { - "node": "^14 || ^16 || >=18.0" - }, - "peerDependencies": { - "postcss": "^8.4.31" - } - }, - "node_modules/docusaurus-theme-openapi-docs/node_modules/postcss-discard-duplicates": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/postcss-discard-duplicates/-/postcss-discard-duplicates-6.0.3.tgz", - "integrity": "sha512-+JA0DCvc5XvFAxwx6f/e68gQu/7Z9ud584VLmcgto28eB8FqSFZwtrLwB5Kcp70eIoWP/HXqz4wpo8rD8gpsTw==", - "engines": { - "node": "^14 || ^16 || >=18.0" - }, - "peerDependencies": { - "postcss": "^8.4.31" - } - }, - "node_modules/docusaurus-theme-openapi-docs/node_modules/postcss-discard-empty": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/postcss-discard-empty/-/postcss-discard-empty-6.0.3.tgz", - "integrity": "sha512-znyno9cHKQsK6PtxL5D19Fj9uwSzC2mB74cpT66fhgOadEUPyXFkbgwm5tvc3bt3NAy8ltE5MrghxovZRVnOjQ==", - "engines": { - "node": "^14 || ^16 || >=18.0" - }, - "peerDependencies": { - "postcss": "^8.4.31" - } - }, - "node_modules/docusaurus-theme-openapi-docs/node_modules/postcss-discard-overridden": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/postcss-discard-overridden/-/postcss-discard-overridden-6.0.2.tgz", - "integrity": "sha512-j87xzI4LUggC5zND7KdjsI25APtyMuynXZSujByMaav2roV6OZX+8AaCUcZSWqckZpjAjRyFDdpqybgjFO0HJQ==", - "engines": { - "node": "^14 || ^16 || >=18.0" - }, - "peerDependencies": { - "postcss": "^8.4.31" - } - }, - "node_modules/docusaurus-theme-openapi-docs/node_modules/postcss-discard-unused": { - "version": "6.0.5", - "resolved": "https://registry.npmjs.org/postcss-discard-unused/-/postcss-discard-unused-6.0.5.tgz", - "integrity": "sha512-wHalBlRHkaNnNwfC8z+ppX57VhvS+HWgjW508esjdaEYr3Mx7Gnn2xA4R/CKf5+Z9S5qsqC+Uzh4ueENWwCVUA==", - "dependencies": { - "postcss-selector-parser": "^6.0.16" - }, - "engines": { - "node": "^14 || ^16 || >=18.0" - }, - "peerDependencies": { - "postcss": "^8.4.31" - } - }, - "node_modules/docusaurus-theme-openapi-docs/node_modules/postcss-merge-idents": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/postcss-merge-idents/-/postcss-merge-idents-6.0.3.tgz", - "integrity": "sha512-1oIoAsODUs6IHQZkLQGO15uGEbK3EAl5wi9SS8hs45VgsxQfMnxvt+L+zIr7ifZFIH14cfAeVe2uCTa+SPRa3g==", - "dependencies": { - "cssnano-utils": "^4.0.2", - "postcss-value-parser": "^4.2.0" - }, - "engines": { - "node": "^14 || ^16 || >=18.0" - }, - "peerDependencies": { - "postcss": "^8.4.31" - } - }, - "node_modules/docusaurus-theme-openapi-docs/node_modules/postcss-merge-longhand": { - "version": "6.0.5", - "resolved": "https://registry.npmjs.org/postcss-merge-longhand/-/postcss-merge-longhand-6.0.5.tgz", - "integrity": "sha512-5LOiordeTfi64QhICp07nzzuTDjNSO8g5Ksdibt44d+uvIIAE1oZdRn8y/W5ZtYgRH/lnLDlvi9F8btZcVzu3w==", - "dependencies": { - "postcss-value-parser": "^4.2.0", - "stylehacks": "^6.1.1" - }, - "engines": { - "node": "^14 || ^16 || >=18.0" - }, - "peerDependencies": { - "postcss": "^8.4.31" - } - }, - "node_modules/docusaurus-theme-openapi-docs/node_modules/postcss-merge-rules": { - "version": "6.1.1", - "resolved": "https://registry.npmjs.org/postcss-merge-rules/-/postcss-merge-rules-6.1.1.tgz", - "integrity": "sha512-KOdWF0gju31AQPZiD+2Ar9Qjowz1LTChSjFFbS+e2sFgc4uHOp3ZvVX4sNeTlk0w2O31ecFGgrFzhO0RSWbWwQ==", - "dependencies": { - "browserslist": "^4.23.0", - "caniuse-api": "^3.0.0", - "cssnano-utils": "^4.0.2", - "postcss-selector-parser": "^6.0.16" - }, - "engines": { - "node": "^14 || ^16 || >=18.0" - }, - "peerDependencies": { - "postcss": "^8.4.31" - } - }, - "node_modules/docusaurus-theme-openapi-docs/node_modules/postcss-minify-font-values": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/postcss-minify-font-values/-/postcss-minify-font-values-6.1.0.tgz", - "integrity": "sha512-gklfI/n+9rTh8nYaSJXlCo3nOKqMNkxuGpTn/Qm0gstL3ywTr9/WRKznE+oy6fvfolH6dF+QM4nCo8yPLdvGJg==", - "dependencies": { - "postcss-value-parser": "^4.2.0" - }, - "engines": { - "node": "^14 || ^16 || >=18.0" - }, - "peerDependencies": { - "postcss": "^8.4.31" - } - }, - "node_modules/docusaurus-theme-openapi-docs/node_modules/postcss-minify-gradients": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/postcss-minify-gradients/-/postcss-minify-gradients-6.0.3.tgz", - "integrity": "sha512-4KXAHrYlzF0Rr7uc4VrfwDJ2ajrtNEpNEuLxFgwkhFZ56/7gaE4Nr49nLsQDZyUe+ds+kEhf+YAUolJiYXF8+Q==", - "dependencies": { - "colord": "^2.9.3", - "cssnano-utils": "^4.0.2", - "postcss-value-parser": "^4.2.0" - }, - "engines": { - "node": "^14 || ^16 || >=18.0" - }, - "peerDependencies": { - "postcss": "^8.4.31" - } - }, - "node_modules/docusaurus-theme-openapi-docs/node_modules/postcss-minify-params": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/postcss-minify-params/-/postcss-minify-params-6.1.0.tgz", - "integrity": "sha512-bmSKnDtyyE8ujHQK0RQJDIKhQ20Jq1LYiez54WiaOoBtcSuflfK3Nm596LvbtlFcpipMjgClQGyGr7GAs+H1uA==", - "dependencies": { - "browserslist": "^4.23.0", - "cssnano-utils": "^4.0.2", - "postcss-value-parser": "^4.2.0" - }, - "engines": { - "node": "^14 || ^16 || >=18.0" - }, - "peerDependencies": { - "postcss": "^8.4.31" - } - }, - "node_modules/docusaurus-theme-openapi-docs/node_modules/postcss-minify-selectors": { - "version": "6.0.4", - "resolved": "https://registry.npmjs.org/postcss-minify-selectors/-/postcss-minify-selectors-6.0.4.tgz", - "integrity": "sha512-L8dZSwNLgK7pjTto9PzWRoMbnLq5vsZSTu8+j1P/2GB8qdtGQfn+K1uSvFgYvgh83cbyxT5m43ZZhUMTJDSClQ==", - "dependencies": { - "postcss-selector-parser": "^6.0.16" - }, - "engines": { - "node": "^14 || ^16 || >=18.0" - }, - "peerDependencies": { - "postcss": "^8.4.31" - } - }, - "node_modules/docusaurus-theme-openapi-docs/node_modules/postcss-normalize-charset": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/postcss-normalize-charset/-/postcss-normalize-charset-6.0.2.tgz", - "integrity": "sha512-a8N9czmdnrjPHa3DeFlwqst5eaL5W8jYu3EBbTTkI5FHkfMhFZh1EGbku6jhHhIzTA6tquI2P42NtZ59M/H/kQ==", - "engines": { - "node": "^14 || ^16 || >=18.0" - }, - "peerDependencies": { - "postcss": "^8.4.31" - } - }, - "node_modules/docusaurus-theme-openapi-docs/node_modules/postcss-normalize-display-values": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/postcss-normalize-display-values/-/postcss-normalize-display-values-6.0.2.tgz", - "integrity": "sha512-8H04Mxsb82ON/aAkPeq8kcBbAtI5Q2a64X/mnRRfPXBq7XeogoQvReqxEfc0B4WPq1KimjezNC8flUtC3Qz6jg==", - "dependencies": { - "postcss-value-parser": "^4.2.0" - }, - "engines": { - "node": "^14 || ^16 || >=18.0" - }, - "peerDependencies": { - "postcss": "^8.4.31" - } - }, - "node_modules/docusaurus-theme-openapi-docs/node_modules/postcss-normalize-positions": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/postcss-normalize-positions/-/postcss-normalize-positions-6.0.2.tgz", - "integrity": "sha512-/JFzI441OAB9O7VnLA+RtSNZvQ0NCFZDOtp6QPFo1iIyawyXg0YI3CYM9HBy1WvwCRHnPep/BvI1+dGPKoXx/Q==", - "dependencies": { - "postcss-value-parser": "^4.2.0" - }, - "engines": { - "node": "^14 || ^16 || >=18.0" - }, - "peerDependencies": { - "postcss": "^8.4.31" - } - }, - "node_modules/docusaurus-theme-openapi-docs/node_modules/postcss-normalize-repeat-style": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/postcss-normalize-repeat-style/-/postcss-normalize-repeat-style-6.0.2.tgz", - "integrity": "sha512-YdCgsfHkJ2jEXwR4RR3Tm/iOxSfdRt7jplS6XRh9Js9PyCR/aka/FCb6TuHT2U8gQubbm/mPmF6L7FY9d79VwQ==", - "dependencies": { - "postcss-value-parser": "^4.2.0" - }, - "engines": { - "node": "^14 || ^16 || >=18.0" - }, - "peerDependencies": { - "postcss": "^8.4.31" - } - }, - "node_modules/docusaurus-theme-openapi-docs/node_modules/postcss-normalize-string": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/postcss-normalize-string/-/postcss-normalize-string-6.0.2.tgz", - "integrity": "sha512-vQZIivlxlfqqMp4L9PZsFE4YUkWniziKjQWUtsxUiVsSSPelQydwS8Wwcuw0+83ZjPWNTl02oxlIvXsmmG+CiQ==", - "dependencies": { - "postcss-value-parser": "^4.2.0" - }, - "engines": { - "node": "^14 || ^16 || >=18.0" - }, - "peerDependencies": { - "postcss": "^8.4.31" - } - }, - "node_modules/docusaurus-theme-openapi-docs/node_modules/postcss-normalize-timing-functions": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/postcss-normalize-timing-functions/-/postcss-normalize-timing-functions-6.0.2.tgz", - "integrity": "sha512-a+YrtMox4TBtId/AEwbA03VcJgtyW4dGBizPl7e88cTFULYsprgHWTbfyjSLyHeBcK/Q9JhXkt2ZXiwaVHoMzA==", - "dependencies": { - "postcss-value-parser": "^4.2.0" - }, - "engines": { - "node": "^14 || ^16 || >=18.0" - }, - "peerDependencies": { - "postcss": "^8.4.31" - } - }, - "node_modules/docusaurus-theme-openapi-docs/node_modules/postcss-normalize-unicode": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/postcss-normalize-unicode/-/postcss-normalize-unicode-6.1.0.tgz", - "integrity": "sha512-QVC5TQHsVj33otj8/JD869Ndr5Xcc/+fwRh4HAsFsAeygQQXm+0PySrKbr/8tkDKzW+EVT3QkqZMfFrGiossDg==", - "dependencies": { - "browserslist": "^4.23.0", - "postcss-value-parser": "^4.2.0" - }, - "engines": { - "node": "^14 || ^16 || >=18.0" - }, - "peerDependencies": { - "postcss": "^8.4.31" - } - }, - "node_modules/docusaurus-theme-openapi-docs/node_modules/postcss-normalize-url": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/postcss-normalize-url/-/postcss-normalize-url-6.0.2.tgz", - "integrity": "sha512-kVNcWhCeKAzZ8B4pv/DnrU1wNh458zBNp8dh4y5hhxih5RZQ12QWMuQrDgPRw3LRl8mN9vOVfHl7uhvHYMoXsQ==", - "dependencies": { - "postcss-value-parser": "^4.2.0" - }, - "engines": { - "node": "^14 || ^16 || >=18.0" - }, - "peerDependencies": { - "postcss": "^8.4.31" - } - }, - "node_modules/docusaurus-theme-openapi-docs/node_modules/postcss-normalize-whitespace": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/postcss-normalize-whitespace/-/postcss-normalize-whitespace-6.0.2.tgz", - "integrity": "sha512-sXZ2Nj1icbJOKmdjXVT9pnyHQKiSAyuNQHSgRCUgThn2388Y9cGVDR+E9J9iAYbSbLHI+UUwLVl1Wzco/zgv0Q==", - "dependencies": { - "postcss-value-parser": "^4.2.0" - }, - "engines": { - "node": "^14 || ^16 || >=18.0" - }, - "peerDependencies": { - "postcss": "^8.4.31" - } - }, - "node_modules/docusaurus-theme-openapi-docs/node_modules/postcss-ordered-values": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/postcss-ordered-values/-/postcss-ordered-values-6.0.2.tgz", - "integrity": "sha512-VRZSOB+JU32RsEAQrO94QPkClGPKJEL/Z9PCBImXMhIeK5KAYo6slP/hBYlLgrCjFxyqvn5VC81tycFEDBLG1Q==", - "dependencies": { - "cssnano-utils": "^4.0.2", - "postcss-value-parser": "^4.2.0" - }, - "engines": { - "node": "^14 || ^16 || >=18.0" - }, - "peerDependencies": { - "postcss": "^8.4.31" - } - }, - "node_modules/docusaurus-theme-openapi-docs/node_modules/postcss-reduce-idents": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/postcss-reduce-idents/-/postcss-reduce-idents-6.0.3.tgz", - "integrity": "sha512-G3yCqZDpsNPoQgbDUy3T0E6hqOQ5xigUtBQyrmq3tn2GxlyiL0yyl7H+T8ulQR6kOcHJ9t7/9H4/R2tv8tJbMA==", - "dependencies": { - "postcss-value-parser": "^4.2.0" - }, - "engines": { - "node": "^14 || ^16 || >=18.0" - }, - "peerDependencies": { - "postcss": "^8.4.31" - } - }, - "node_modules/docusaurus-theme-openapi-docs/node_modules/postcss-reduce-initial": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/postcss-reduce-initial/-/postcss-reduce-initial-6.1.0.tgz", - "integrity": "sha512-RarLgBK/CrL1qZags04oKbVbrrVK2wcxhvta3GCxrZO4zveibqbRPmm2VI8sSgCXwoUHEliRSbOfpR0b/VIoiw==", - "dependencies": { - "browserslist": "^4.23.0", - "caniuse-api": "^3.0.0" - }, - "engines": { - "node": "^14 || ^16 || >=18.0" - }, - "peerDependencies": { - "postcss": "^8.4.31" - } - }, - "node_modules/docusaurus-theme-openapi-docs/node_modules/postcss-reduce-transforms": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/postcss-reduce-transforms/-/postcss-reduce-transforms-6.0.2.tgz", - "integrity": "sha512-sB+Ya++3Xj1WaT9+5LOOdirAxP7dJZms3GRcYheSPi1PiTMigsxHAdkrbItHxwYHr4kt1zL7mmcHstgMYT+aiA==", - "dependencies": { - "postcss-value-parser": "^4.2.0" - }, - "engines": { - "node": "^14 || ^16 || >=18.0" - }, - "peerDependencies": { - "postcss": "^8.4.31" - } - }, - "node_modules/docusaurus-theme-openapi-docs/node_modules/postcss-sort-media-queries": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/postcss-sort-media-queries/-/postcss-sort-media-queries-5.2.0.tgz", - "integrity": "sha512-AZ5fDMLD8SldlAYlvi8NIqo0+Z8xnXU2ia0jxmuhxAU+Lqt9K+AlmLNJ/zWEnE9x+Zx3qL3+1K20ATgNOr3fAA==", - "dependencies": { - "sort-css-media-queries": "2.2.0" - }, - "engines": { - "node": ">=14.0.0" - }, - "peerDependencies": { - "postcss": "^8.4.23" - } - }, - "node_modules/docusaurus-theme-openapi-docs/node_modules/postcss-svgo": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/postcss-svgo/-/postcss-svgo-6.0.3.tgz", - "integrity": "sha512-dlrahRmxP22bX6iKEjOM+c8/1p+81asjKT+V5lrgOH944ryx/OHpclnIbGsKVd3uWOXFLYJwCVf0eEkJGvO96g==", - "dependencies": { - "postcss-value-parser": "^4.2.0", - "svgo": "^3.2.0" - }, - "engines": { - "node": "^14 || ^16 || >= 18" - }, - "peerDependencies": { - "postcss": "^8.4.31" - } - }, - "node_modules/docusaurus-theme-openapi-docs/node_modules/postcss-unique-selectors": { - "version": "6.0.4", - "resolved": "https://registry.npmjs.org/postcss-unique-selectors/-/postcss-unique-selectors-6.0.4.tgz", - "integrity": "sha512-K38OCaIrO8+PzpArzkLKB42dSARtC2tmG6PvD4b1o1Q2E9Os8jzfWFfSy/rixsHwohtsDdFtAWGjFVFUdwYaMg==", - "dependencies": { - "postcss-selector-parser": "^6.0.16" - }, - "engines": { - "node": "^14 || ^16 || >=18.0" - }, - "peerDependencies": { - "postcss": "^8.4.31" - } - }, - "node_modules/docusaurus-theme-openapi-docs/node_modules/postcss-zindex": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/postcss-zindex/-/postcss-zindex-6.0.2.tgz", - "integrity": "sha512-5BxW9l1evPB/4ZIc+2GobEBoKC+h8gPGCMi+jxsYvd2x0mjq7wazk6DrP71pStqxE9Foxh5TVnonbWpFZzXaYg==", - "engines": { - "node": "^14 || ^16 || >=18.0" - }, - "peerDependencies": { - "postcss": "^8.4.31" - } - }, "node_modules/docusaurus-theme-openapi-docs/node_modules/react-live": { "version": "4.1.5", "resolved": "https://registry.npmjs.org/react-live/-/react-live-4.1.5.tgz", @@ -11156,73 +7771,6 @@ "react": ">=16.0.0" } }, - "node_modules/docusaurus-theme-openapi-docs/node_modules/react-loadable": { - "name": "@docusaurus/react-loadable", - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/@docusaurus/react-loadable/-/react-loadable-6.0.0.tgz", - "integrity": "sha512-YMMxTUQV/QFSnbgrP3tjDzLHRg7vsbMn8e9HAa8o/1iXoiomo48b7sk/kkmWEuWNDPJVlKSJRB6Y2fHqdJk+SQ==", - "dependencies": { - "@types/react": "*" - }, - "peerDependencies": { - "react": "*" - } - }, - "node_modules/docusaurus-theme-openapi-docs/node_modules/sort-css-media-queries": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/sort-css-media-queries/-/sort-css-media-queries-2.2.0.tgz", - "integrity": "sha512-0xtkGhWCC9MGt/EzgnvbbbKhqWjl1+/rncmhTh5qCpbYguXh6S/qwePfv/JQ8jePXXmqingylxoC49pCkSPIbA==", - "engines": { - "node": ">= 6.3.0" - } - }, - "node_modules/docusaurus-theme-openapi-docs/node_modules/stylehacks": { - "version": "6.1.1", - "resolved": "https://registry.npmjs.org/stylehacks/-/stylehacks-6.1.1.tgz", - "integrity": "sha512-gSTTEQ670cJNoaeIp9KX6lZmm8LJ3jPB5yJmX8Zq/wQxOsAFXV3qjWzHas3YYk1qesuVIyYWWUpZ0vSE/dTSGg==", - "dependencies": { - "browserslist": "^4.23.0", - "postcss-selector-parser": "^6.0.16" - }, - "engines": { - "node": "^14 || ^16 || >=18.0" - }, - "peerDependencies": { - "postcss": "^8.4.31" - } - }, - "node_modules/docusaurus-theme-openapi-docs/node_modules/svgo": { - "version": "3.3.2", - "resolved": "https://registry.npmjs.org/svgo/-/svgo-3.3.2.tgz", - "integrity": "sha512-OoohrmuUlBs8B8o6MB2Aevn+pRIH9zDALSR+6hhqVfa6fRwG/Qw9VUMSMW9VNg2CFc/MTIfabtdOVl9ODIJjpw==", - "dependencies": { - "@trysound/sax": "0.2.0", - "commander": "^7.2.0", - "css-select": "^5.1.0", - "css-tree": "^2.3.1", - "css-what": "^6.1.0", - "csso": "^5.0.5", - "picocolors": "^1.0.0" - }, - "bin": { - "svgo": "bin/svgo" - }, - "engines": { - "node": ">=14.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/svgo" - } - }, - "node_modules/docusaurus-theme-openapi-docs/node_modules/svgo/node_modules/commander": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/commander/-/commander-7.2.0.tgz", - "integrity": "sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw==", - "engines": { - "node": ">= 10" - } - }, "node_modules/docusaurus2-dotenv": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/docusaurus2-dotenv/-/docusaurus2-dotenv-1.4.0.tgz", @@ -14247,11 +10795,14 @@ } }, "node_modules/lilconfig": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/lilconfig/-/lilconfig-2.1.0.tgz", - "integrity": "sha512-utWOt/GHzuUxnLKxB6dk81RoOeoNeHgbrXiuGk4yyF5qlRz+iIVWu56E2fqGHFrXz0QNUhLB/8nKqvRH66JKGQ==", + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/lilconfig/-/lilconfig-3.1.2.tgz", + "integrity": "sha512-eop+wDAvpItUys0FWkHIKeC9ybYrTGbU41U5K7+bttZZeohvnY7M9dZ5kB21GNWiFT2q1OoPTvncPCgSOVO5ow==", "engines": { - "node": ">=10" + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/antonk52" } }, "node_modules/lines-and-columns": { @@ -20316,9 +16867,9 @@ } }, "node_modules/mdn-data": { - "version": "2.0.14", - "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.14.tgz", - "integrity": "sha512-dn6wd0uw5GsdswPFfsgMp5NSB0/aDe6fK94YJV/AJDYXL6HVLWBsxeq7js7Ad+mU2K9LAlwpk6kN2D5mwCPVow==" + "version": "2.0.30", + "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.30.tgz", + "integrity": "sha512-GaqWWShW4kv/G9IEucWScBx9G1/vsFZZJUO+tD26M8J8z3Kw5RDQjaoZe03YAClgeS/SWPOcb4nkFBTEi5DUEA==" }, "node_modules/media-typer": { "version": "0.3.0", @@ -23071,17 +19622,6 @@ "node": ">=0.10.0" } }, - "node_modules/normalize-url": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-6.1.0.tgz", - "integrity": "sha512-DlL+XwOy3NxAQ8xuC0okPgK46iuVNAK01YN7RueYBqqFeGsBjV9XmCAzAdgt+667bCl5kPh9EqKKDwnaPG1I7A==", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/npm-run-path": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.1.tgz", @@ -23912,105 +20452,108 @@ } }, "node_modules/postcss-calc": { - "version": "8.2.4", - "resolved": "https://registry.npmjs.org/postcss-calc/-/postcss-calc-8.2.4.tgz", - "integrity": "sha512-SmWMSJmB8MRnnULldx0lQIyhSNvuDl9HfrZkaqqE/WHAhToYsAvDq+yAsA/kIyINDszOp3Rh0GFoNuH5Ypsm3Q==", + "version": "9.0.1", + "resolved": "https://registry.npmjs.org/postcss-calc/-/postcss-calc-9.0.1.tgz", + "integrity": "sha512-TipgjGyzP5QzEhsOZUaIkeO5mKeMFpebWzRogWG/ysonUlnHcq5aJe0jOjpfzUU8PeSaBQnrE8ehR0QA5vs8PQ==", "dependencies": { - "postcss-selector-parser": "^6.0.9", + "postcss-selector-parser": "^6.0.11", "postcss-value-parser": "^4.2.0" }, + "engines": { + "node": "^14 || ^16 || >=18.0" + }, "peerDependencies": { "postcss": "^8.2.2" } }, "node_modules/postcss-colormin": { - "version": "5.3.1", - "resolved": "https://registry.npmjs.org/postcss-colormin/-/postcss-colormin-5.3.1.tgz", - "integrity": "sha512-UsWQG0AqTFQmpBegeLLc1+c3jIqBNB0zlDGRWR+dQ3pRKJL1oeMzyqmH3o2PIfn9MBdNrVPWhDbT769LxCTLJQ==", + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/postcss-colormin/-/postcss-colormin-6.1.0.tgz", + "integrity": "sha512-x9yX7DOxeMAR+BgGVnNSAxmAj98NX/YxEMNFP+SDCEeNLb2r3i6Hh1ksMsnW8Ub5SLCpbescQqn9YEbE9554Sw==", "dependencies": { - "browserslist": "^4.21.4", + "browserslist": "^4.23.0", "caniuse-api": "^3.0.0", - "colord": "^2.9.1", + "colord": "^2.9.3", "postcss-value-parser": "^4.2.0" }, "engines": { - "node": "^10 || ^12 || >=14.0" + "node": "^14 || ^16 || >=18.0" }, "peerDependencies": { - "postcss": "^8.2.15" + "postcss": "^8.4.31" } }, "node_modules/postcss-convert-values": { - "version": "5.1.3", - "resolved": "https://registry.npmjs.org/postcss-convert-values/-/postcss-convert-values-5.1.3.tgz", - "integrity": "sha512-82pC1xkJZtcJEfiLw6UXnXVXScgtBrjlO5CBmuDQc+dlb88ZYheFsjTn40+zBVi3DkfF7iezO0nJUPLcJK3pvA==", + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/postcss-convert-values/-/postcss-convert-values-6.1.0.tgz", + "integrity": "sha512-zx8IwP/ts9WvUM6NkVSkiU902QZL1bwPhaVaLynPtCsOTqp+ZKbNi+s6XJg3rfqpKGA/oc7Oxk5t8pOQJcwl/w==", "dependencies": { - "browserslist": "^4.21.4", + "browserslist": "^4.23.0", "postcss-value-parser": "^4.2.0" }, "engines": { - "node": "^10 || ^12 || >=14.0" + "node": "^14 || ^16 || >=18.0" }, "peerDependencies": { - "postcss": "^8.2.15" + "postcss": "^8.4.31" } }, "node_modules/postcss-discard-comments": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/postcss-discard-comments/-/postcss-discard-comments-5.1.2.tgz", - "integrity": "sha512-+L8208OVbHVF2UQf1iDmRcbdjJkuBF6IS29yBDSiWUIzpYaAhtNl6JYnYm12FnkeCwQqF5LeklOu6rAqgfBZqQ==", + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/postcss-discard-comments/-/postcss-discard-comments-6.0.2.tgz", + "integrity": "sha512-65w/uIqhSBBfQmYnG92FO1mWZjJ4GL5b8atm5Yw2UgrwD7HiNiSSNwJor1eCFGzUgYnN/iIknhNRVqjrrpuglw==", "engines": { - "node": "^10 || ^12 || >=14.0" + "node": "^14 || ^16 || >=18.0" }, "peerDependencies": { - "postcss": "^8.2.15" + "postcss": "^8.4.31" } }, "node_modules/postcss-discard-duplicates": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/postcss-discard-duplicates/-/postcss-discard-duplicates-5.1.0.tgz", - "integrity": "sha512-zmX3IoSI2aoenxHV6C7plngHWWhUOV3sP1T8y2ifzxzbtnuhk1EdPwm0S1bIUNaJ2eNbWeGLEwzw8huPD67aQw==", + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/postcss-discard-duplicates/-/postcss-discard-duplicates-6.0.3.tgz", + "integrity": "sha512-+JA0DCvc5XvFAxwx6f/e68gQu/7Z9ud584VLmcgto28eB8FqSFZwtrLwB5Kcp70eIoWP/HXqz4wpo8rD8gpsTw==", "engines": { - "node": "^10 || ^12 || >=14.0" + "node": "^14 || ^16 || >=18.0" }, "peerDependencies": { - "postcss": "^8.2.15" + "postcss": "^8.4.31" } }, "node_modules/postcss-discard-empty": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/postcss-discard-empty/-/postcss-discard-empty-5.1.1.tgz", - "integrity": "sha512-zPz4WljiSuLWsI0ir4Mcnr4qQQ5e1Ukc3i7UfE2XcrwKK2LIPIqE5jxMRxO6GbI3cv//ztXDsXwEWT3BHOGh3A==", + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/postcss-discard-empty/-/postcss-discard-empty-6.0.3.tgz", + "integrity": "sha512-znyno9cHKQsK6PtxL5D19Fj9uwSzC2mB74cpT66fhgOadEUPyXFkbgwm5tvc3bt3NAy8ltE5MrghxovZRVnOjQ==", "engines": { - "node": "^10 || ^12 || >=14.0" + "node": "^14 || ^16 || >=18.0" }, "peerDependencies": { - "postcss": "^8.2.15" + "postcss": "^8.4.31" } }, "node_modules/postcss-discard-overridden": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/postcss-discard-overridden/-/postcss-discard-overridden-5.1.0.tgz", - "integrity": "sha512-21nOL7RqWR1kasIVdKs8HNqQJhFxLsyRfAnUDm4Fe4t4mCWL9OJiHvlHPjcd8zc5Myu89b/7wZDnOSjFgeWRtw==", + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/postcss-discard-overridden/-/postcss-discard-overridden-6.0.2.tgz", + "integrity": "sha512-j87xzI4LUggC5zND7KdjsI25APtyMuynXZSujByMaav2roV6OZX+8AaCUcZSWqckZpjAjRyFDdpqybgjFO0HJQ==", "engines": { - "node": "^10 || ^12 || >=14.0" + "node": "^14 || ^16 || >=18.0" }, "peerDependencies": { - "postcss": "^8.2.15" + "postcss": "^8.4.31" } }, "node_modules/postcss-discard-unused": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/postcss-discard-unused/-/postcss-discard-unused-5.1.0.tgz", - "integrity": "sha512-KwLWymI9hbwXmJa0dkrzpRbSJEh0vVUd7r8t0yOGPcfKzyJJxFM8kLyC5Ev9avji6nY95pOp1W6HqIrfT+0VGw==", + "version": "6.0.5", + "resolved": "https://registry.npmjs.org/postcss-discard-unused/-/postcss-discard-unused-6.0.5.tgz", + "integrity": "sha512-wHalBlRHkaNnNwfC8z+ppX57VhvS+HWgjW508esjdaEYr3Mx7Gnn2xA4R/CKf5+Z9S5qsqC+Uzh4ueENWwCVUA==", "dependencies": { - "postcss-selector-parser": "^6.0.5" + "postcss-selector-parser": "^6.0.16" }, "engines": { - "node": "^10 || ^12 || >=14.0" + "node": "^14 || ^16 || >=18.0" }, "peerDependencies": { - "postcss": "^8.2.15" + "postcss": "^8.4.31" } }, "node_modules/postcss-loader": { @@ -24034,136 +20577,111 @@ "webpack": "^5.0.0" } }, - "node_modules/postcss-loader/node_modules/cosmiconfig": { - "version": "8.3.6", - "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-8.3.6.tgz", - "integrity": "sha512-kcZ6+W5QzcJ3P1Mt+83OUv/oHFqZHIx8DuxG6eZ5RGMERoLqp4BuGjhHLYGK+Kf5XVkQvqBSmAy/nGWN3qDgEA==", - "dependencies": { - "import-fresh": "^3.3.0", - "js-yaml": "^4.1.0", - "parse-json": "^5.2.0", - "path-type": "^4.0.0" - }, - "engines": { - "node": ">=14" - }, - "funding": { - "url": "https://github.com/sponsors/d-fischer" - }, - "peerDependencies": { - "typescript": ">=4.9.5" - }, - "peerDependenciesMeta": { - "typescript": { - "optional": true - } - } - }, "node_modules/postcss-merge-idents": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/postcss-merge-idents/-/postcss-merge-idents-5.1.1.tgz", - "integrity": "sha512-pCijL1TREiCoog5nQp7wUe+TUonA2tC2sQ54UGeMmryK3UFGIYKqDyjnqd6RcuI4znFn9hWSLNN8xKE/vWcUQw==", + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/postcss-merge-idents/-/postcss-merge-idents-6.0.3.tgz", + "integrity": "sha512-1oIoAsODUs6IHQZkLQGO15uGEbK3EAl5wi9SS8hs45VgsxQfMnxvt+L+zIr7ifZFIH14cfAeVe2uCTa+SPRa3g==", "dependencies": { - "cssnano-utils": "^3.1.0", + "cssnano-utils": "^4.0.2", "postcss-value-parser": "^4.2.0" }, "engines": { - "node": "^10 || ^12 || >=14.0" + "node": "^14 || ^16 || >=18.0" }, "peerDependencies": { - "postcss": "^8.2.15" + "postcss": "^8.4.31" } }, "node_modules/postcss-merge-longhand": { - "version": "5.1.7", - "resolved": "https://registry.npmjs.org/postcss-merge-longhand/-/postcss-merge-longhand-5.1.7.tgz", - "integrity": "sha512-YCI9gZB+PLNskrK0BB3/2OzPnGhPkBEwmwhfYk1ilBHYVAZB7/tkTHFBAnCrvBBOmeYyMYw3DMjT55SyxMBzjQ==", + "version": "6.0.5", + "resolved": "https://registry.npmjs.org/postcss-merge-longhand/-/postcss-merge-longhand-6.0.5.tgz", + "integrity": "sha512-5LOiordeTfi64QhICp07nzzuTDjNSO8g5Ksdibt44d+uvIIAE1oZdRn8y/W5ZtYgRH/lnLDlvi9F8btZcVzu3w==", "dependencies": { "postcss-value-parser": "^4.2.0", - "stylehacks": "^5.1.1" + "stylehacks": "^6.1.1" }, "engines": { - "node": "^10 || ^12 || >=14.0" + "node": "^14 || ^16 || >=18.0" }, "peerDependencies": { - "postcss": "^8.2.15" + "postcss": "^8.4.31" } }, "node_modules/postcss-merge-rules": { - "version": "5.1.4", - "resolved": "https://registry.npmjs.org/postcss-merge-rules/-/postcss-merge-rules-5.1.4.tgz", - "integrity": "sha512-0R2IuYpgU93y9lhVbO/OylTtKMVcHb67zjWIfCiKR9rWL3GUk1677LAqD/BcHizukdZEjT8Ru3oHRoAYoJy44g==", + "version": "6.1.1", + "resolved": "https://registry.npmjs.org/postcss-merge-rules/-/postcss-merge-rules-6.1.1.tgz", + "integrity": "sha512-KOdWF0gju31AQPZiD+2Ar9Qjowz1LTChSjFFbS+e2sFgc4uHOp3ZvVX4sNeTlk0w2O31ecFGgrFzhO0RSWbWwQ==", "dependencies": { - "browserslist": "^4.21.4", + "browserslist": "^4.23.0", "caniuse-api": "^3.0.0", - "cssnano-utils": "^3.1.0", - "postcss-selector-parser": "^6.0.5" + "cssnano-utils": "^4.0.2", + "postcss-selector-parser": "^6.0.16" }, "engines": { - "node": "^10 || ^12 || >=14.0" + "node": "^14 || ^16 || >=18.0" }, "peerDependencies": { - "postcss": "^8.2.15" + "postcss": "^8.4.31" } }, "node_modules/postcss-minify-font-values": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/postcss-minify-font-values/-/postcss-minify-font-values-5.1.0.tgz", - "integrity": "sha512-el3mYTgx13ZAPPirSVsHqFzl+BBBDrXvbySvPGFnQcTI4iNslrPaFq4muTkLZmKlGk4gyFAYUBMH30+HurREyA==", + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/postcss-minify-font-values/-/postcss-minify-font-values-6.1.0.tgz", + "integrity": "sha512-gklfI/n+9rTh8nYaSJXlCo3nOKqMNkxuGpTn/Qm0gstL3ywTr9/WRKznE+oy6fvfolH6dF+QM4nCo8yPLdvGJg==", "dependencies": { "postcss-value-parser": "^4.2.0" }, "engines": { - "node": "^10 || ^12 || >=14.0" + "node": "^14 || ^16 || >=18.0" }, "peerDependencies": { - "postcss": "^8.2.15" + "postcss": "^8.4.31" } }, "node_modules/postcss-minify-gradients": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/postcss-minify-gradients/-/postcss-minify-gradients-5.1.1.tgz", - "integrity": "sha512-VGvXMTpCEo4qHTNSa9A0a3D+dxGFZCYwR6Jokk+/3oB6flu2/PnPXAh2x7x52EkY5xlIHLm+Le8tJxe/7TNhzw==", + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/postcss-minify-gradients/-/postcss-minify-gradients-6.0.3.tgz", + "integrity": "sha512-4KXAHrYlzF0Rr7uc4VrfwDJ2ajrtNEpNEuLxFgwkhFZ56/7gaE4Nr49nLsQDZyUe+ds+kEhf+YAUolJiYXF8+Q==", "dependencies": { - "colord": "^2.9.1", - "cssnano-utils": "^3.1.0", + "colord": "^2.9.3", + "cssnano-utils": "^4.0.2", "postcss-value-parser": "^4.2.0" }, "engines": { - "node": "^10 || ^12 || >=14.0" + "node": "^14 || ^16 || >=18.0" }, "peerDependencies": { - "postcss": "^8.2.15" + "postcss": "^8.4.31" } }, "node_modules/postcss-minify-params": { - "version": "5.1.4", - "resolved": "https://registry.npmjs.org/postcss-minify-params/-/postcss-minify-params-5.1.4.tgz", - "integrity": "sha512-+mePA3MgdmVmv6g+30rn57USjOGSAyuxUmkfiWpzalZ8aiBkdPYjXWtHuwJGm1v5Ojy0Z0LaSYhHaLJQB0P8Jw==", + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/postcss-minify-params/-/postcss-minify-params-6.1.0.tgz", + "integrity": "sha512-bmSKnDtyyE8ujHQK0RQJDIKhQ20Jq1LYiez54WiaOoBtcSuflfK3Nm596LvbtlFcpipMjgClQGyGr7GAs+H1uA==", "dependencies": { - "browserslist": "^4.21.4", - "cssnano-utils": "^3.1.0", + "browserslist": "^4.23.0", + "cssnano-utils": "^4.0.2", "postcss-value-parser": "^4.2.0" }, "engines": { - "node": "^10 || ^12 || >=14.0" + "node": "^14 || ^16 || >=18.0" }, "peerDependencies": { - "postcss": "^8.2.15" + "postcss": "^8.4.31" } }, "node_modules/postcss-minify-selectors": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/postcss-minify-selectors/-/postcss-minify-selectors-5.2.1.tgz", - "integrity": "sha512-nPJu7OjZJTsVUmPdm2TcaiohIwxP+v8ha9NehQ2ye9szv4orirRU3SDdtUmKH+10nzn0bAyOXZ0UEr7OpvLehg==", + "version": "6.0.4", + "resolved": "https://registry.npmjs.org/postcss-minify-selectors/-/postcss-minify-selectors-6.0.4.tgz", + "integrity": "sha512-L8dZSwNLgK7pjTto9PzWRoMbnLq5vsZSTu8+j1P/2GB8qdtGQfn+K1uSvFgYvgh83cbyxT5m43ZZhUMTJDSClQ==", "dependencies": { - "postcss-selector-parser": "^6.0.5" + "postcss-selector-parser": "^6.0.16" }, "engines": { - "node": "^10 || ^12 || >=14.0" + "node": "^14 || ^16 || >=18.0" }, "peerDependencies": { - "postcss": "^8.2.15" + "postcss": "^8.4.31" } }, "node_modules/postcss-modules-extract-imports": { @@ -24222,186 +20740,185 @@ } }, "node_modules/postcss-normalize-charset": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/postcss-normalize-charset/-/postcss-normalize-charset-5.1.0.tgz", - "integrity": "sha512-mSgUJ+pd/ldRGVx26p2wz9dNZ7ji6Pn8VWBajMXFf8jk7vUoSrZ2lt/wZR7DtlZYKesmZI680qjr2CeFF2fbUg==", + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/postcss-normalize-charset/-/postcss-normalize-charset-6.0.2.tgz", + "integrity": "sha512-a8N9czmdnrjPHa3DeFlwqst5eaL5W8jYu3EBbTTkI5FHkfMhFZh1EGbku6jhHhIzTA6tquI2P42NtZ59M/H/kQ==", "engines": { - "node": "^10 || ^12 || >=14.0" + "node": "^14 || ^16 || >=18.0" }, "peerDependencies": { - "postcss": "^8.2.15" + "postcss": "^8.4.31" } }, "node_modules/postcss-normalize-display-values": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/postcss-normalize-display-values/-/postcss-normalize-display-values-5.1.0.tgz", - "integrity": "sha512-WP4KIM4o2dazQXWmFaqMmcvsKmhdINFblgSeRgn8BJ6vxaMyaJkwAzpPpuvSIoG/rmX3M+IrRZEz2H0glrQNEA==", + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/postcss-normalize-display-values/-/postcss-normalize-display-values-6.0.2.tgz", + "integrity": "sha512-8H04Mxsb82ON/aAkPeq8kcBbAtI5Q2a64X/mnRRfPXBq7XeogoQvReqxEfc0B4WPq1KimjezNC8flUtC3Qz6jg==", "dependencies": { "postcss-value-parser": "^4.2.0" }, "engines": { - "node": "^10 || ^12 || >=14.0" + "node": "^14 || ^16 || >=18.0" }, "peerDependencies": { - "postcss": "^8.2.15" + "postcss": "^8.4.31" } }, "node_modules/postcss-normalize-positions": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/postcss-normalize-positions/-/postcss-normalize-positions-5.1.1.tgz", - "integrity": "sha512-6UpCb0G4eofTCQLFVuI3EVNZzBNPiIKcA1AKVka+31fTVySphr3VUgAIULBhxZkKgwLImhzMR2Bw1ORK+37INg==", + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/postcss-normalize-positions/-/postcss-normalize-positions-6.0.2.tgz", + "integrity": "sha512-/JFzI441OAB9O7VnLA+RtSNZvQ0NCFZDOtp6QPFo1iIyawyXg0YI3CYM9HBy1WvwCRHnPep/BvI1+dGPKoXx/Q==", "dependencies": { "postcss-value-parser": "^4.2.0" }, "engines": { - "node": "^10 || ^12 || >=14.0" + "node": "^14 || ^16 || >=18.0" }, "peerDependencies": { - "postcss": "^8.2.15" + "postcss": "^8.4.31" } }, "node_modules/postcss-normalize-repeat-style": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/postcss-normalize-repeat-style/-/postcss-normalize-repeat-style-5.1.1.tgz", - "integrity": "sha512-mFpLspGWkQtBcWIRFLmewo8aC3ImN2i/J3v8YCFUwDnPu3Xz4rLohDO26lGjwNsQxB3YF0KKRwspGzE2JEuS0g==", + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/postcss-normalize-repeat-style/-/postcss-normalize-repeat-style-6.0.2.tgz", + "integrity": "sha512-YdCgsfHkJ2jEXwR4RR3Tm/iOxSfdRt7jplS6XRh9Js9PyCR/aka/FCb6TuHT2U8gQubbm/mPmF6L7FY9d79VwQ==", "dependencies": { "postcss-value-parser": "^4.2.0" }, "engines": { - "node": "^10 || ^12 || >=14.0" + "node": "^14 || ^16 || >=18.0" }, "peerDependencies": { - "postcss": "^8.2.15" + "postcss": "^8.4.31" } }, "node_modules/postcss-normalize-string": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/postcss-normalize-string/-/postcss-normalize-string-5.1.0.tgz", - "integrity": "sha512-oYiIJOf4T9T1N4i+abeIc7Vgm/xPCGih4bZz5Nm0/ARVJ7K6xrDlLwvwqOydvyL3RHNf8qZk6vo3aatiw/go3w==", + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/postcss-normalize-string/-/postcss-normalize-string-6.0.2.tgz", + "integrity": "sha512-vQZIivlxlfqqMp4L9PZsFE4YUkWniziKjQWUtsxUiVsSSPelQydwS8Wwcuw0+83ZjPWNTl02oxlIvXsmmG+CiQ==", "dependencies": { "postcss-value-parser": "^4.2.0" }, "engines": { - "node": "^10 || ^12 || >=14.0" + "node": "^14 || ^16 || >=18.0" }, "peerDependencies": { - "postcss": "^8.2.15" + "postcss": "^8.4.31" } }, "node_modules/postcss-normalize-timing-functions": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/postcss-normalize-timing-functions/-/postcss-normalize-timing-functions-5.1.0.tgz", - "integrity": "sha512-DOEkzJ4SAXv5xkHl0Wa9cZLF3WCBhF3o1SKVxKQAa+0pYKlueTpCgvkFAHfk+Y64ezX9+nITGrDZeVGgITJXjg==", + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/postcss-normalize-timing-functions/-/postcss-normalize-timing-functions-6.0.2.tgz", + "integrity": "sha512-a+YrtMox4TBtId/AEwbA03VcJgtyW4dGBizPl7e88cTFULYsprgHWTbfyjSLyHeBcK/Q9JhXkt2ZXiwaVHoMzA==", "dependencies": { "postcss-value-parser": "^4.2.0" }, "engines": { - "node": "^10 || ^12 || >=14.0" + "node": "^14 || ^16 || >=18.0" }, "peerDependencies": { - "postcss": "^8.2.15" + "postcss": "^8.4.31" } }, "node_modules/postcss-normalize-unicode": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/postcss-normalize-unicode/-/postcss-normalize-unicode-5.1.1.tgz", - "integrity": "sha512-qnCL5jzkNUmKVhZoENp1mJiGNPcsJCs1aaRmURmeJGES23Z/ajaln+EPTD+rBeNkSryI+2WTdW+lwcVdOikrpA==", + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/postcss-normalize-unicode/-/postcss-normalize-unicode-6.1.0.tgz", + "integrity": "sha512-QVC5TQHsVj33otj8/JD869Ndr5Xcc/+fwRh4HAsFsAeygQQXm+0PySrKbr/8tkDKzW+EVT3QkqZMfFrGiossDg==", "dependencies": { - "browserslist": "^4.21.4", + "browserslist": "^4.23.0", "postcss-value-parser": "^4.2.0" }, "engines": { - "node": "^10 || ^12 || >=14.0" + "node": "^14 || ^16 || >=18.0" }, "peerDependencies": { - "postcss": "^8.2.15" + "postcss": "^8.4.31" } }, "node_modules/postcss-normalize-url": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/postcss-normalize-url/-/postcss-normalize-url-5.1.0.tgz", - "integrity": "sha512-5upGeDO+PVthOxSmds43ZeMeZfKH+/DKgGRD7TElkkyS46JXAUhMzIKiCa7BabPeIy3AQcTkXwVVN7DbqsiCew==", + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/postcss-normalize-url/-/postcss-normalize-url-6.0.2.tgz", + "integrity": "sha512-kVNcWhCeKAzZ8B4pv/DnrU1wNh458zBNp8dh4y5hhxih5RZQ12QWMuQrDgPRw3LRl8mN9vOVfHl7uhvHYMoXsQ==", "dependencies": { - "normalize-url": "^6.0.1", "postcss-value-parser": "^4.2.0" }, "engines": { - "node": "^10 || ^12 || >=14.0" + "node": "^14 || ^16 || >=18.0" }, "peerDependencies": { - "postcss": "^8.2.15" + "postcss": "^8.4.31" } }, "node_modules/postcss-normalize-whitespace": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/postcss-normalize-whitespace/-/postcss-normalize-whitespace-5.1.1.tgz", - "integrity": "sha512-83ZJ4t3NUDETIHTa3uEg6asWjSBYL5EdkVB0sDncx9ERzOKBVJIUeDO9RyA9Zwtig8El1d79HBp0JEi8wvGQnA==", + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/postcss-normalize-whitespace/-/postcss-normalize-whitespace-6.0.2.tgz", + "integrity": "sha512-sXZ2Nj1icbJOKmdjXVT9pnyHQKiSAyuNQHSgRCUgThn2388Y9cGVDR+E9J9iAYbSbLHI+UUwLVl1Wzco/zgv0Q==", "dependencies": { "postcss-value-parser": "^4.2.0" }, "engines": { - "node": "^10 || ^12 || >=14.0" + "node": "^14 || ^16 || >=18.0" }, "peerDependencies": { - "postcss": "^8.2.15" + "postcss": "^8.4.31" } }, "node_modules/postcss-ordered-values": { - "version": "5.1.3", - "resolved": "https://registry.npmjs.org/postcss-ordered-values/-/postcss-ordered-values-5.1.3.tgz", - "integrity": "sha512-9UO79VUhPwEkzbb3RNpqqghc6lcYej1aveQteWY+4POIwlqkYE21HKWaLDF6lWNuqCobEAyTovVhtI32Rbv2RQ==", + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/postcss-ordered-values/-/postcss-ordered-values-6.0.2.tgz", + "integrity": "sha512-VRZSOB+JU32RsEAQrO94QPkClGPKJEL/Z9PCBImXMhIeK5KAYo6slP/hBYlLgrCjFxyqvn5VC81tycFEDBLG1Q==", "dependencies": { - "cssnano-utils": "^3.1.0", + "cssnano-utils": "^4.0.2", "postcss-value-parser": "^4.2.0" }, "engines": { - "node": "^10 || ^12 || >=14.0" + "node": "^14 || ^16 || >=18.0" }, "peerDependencies": { - "postcss": "^8.2.15" + "postcss": "^8.4.31" } }, "node_modules/postcss-reduce-idents": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/postcss-reduce-idents/-/postcss-reduce-idents-5.2.0.tgz", - "integrity": "sha512-BTrLjICoSB6gxbc58D5mdBK8OhXRDqud/zodYfdSi52qvDHdMwk+9kB9xsM8yJThH/sZU5A6QVSmMmaN001gIg==", + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/postcss-reduce-idents/-/postcss-reduce-idents-6.0.3.tgz", + "integrity": "sha512-G3yCqZDpsNPoQgbDUy3T0E6hqOQ5xigUtBQyrmq3tn2GxlyiL0yyl7H+T8ulQR6kOcHJ9t7/9H4/R2tv8tJbMA==", "dependencies": { "postcss-value-parser": "^4.2.0" }, "engines": { - "node": "^10 || ^12 || >=14.0" + "node": "^14 || ^16 || >=18.0" }, "peerDependencies": { - "postcss": "^8.2.15" + "postcss": "^8.4.31" } }, "node_modules/postcss-reduce-initial": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/postcss-reduce-initial/-/postcss-reduce-initial-5.1.2.tgz", - "integrity": "sha512-dE/y2XRaqAi6OvjzD22pjTUQ8eOfc6m/natGHgKFBK9DxFmIm69YmaRVQrGgFlEfc1HePIurY0TmDeROK05rIg==", + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/postcss-reduce-initial/-/postcss-reduce-initial-6.1.0.tgz", + "integrity": "sha512-RarLgBK/CrL1qZags04oKbVbrrVK2wcxhvta3GCxrZO4zveibqbRPmm2VI8sSgCXwoUHEliRSbOfpR0b/VIoiw==", "dependencies": { - "browserslist": "^4.21.4", + "browserslist": "^4.23.0", "caniuse-api": "^3.0.0" }, "engines": { - "node": "^10 || ^12 || >=14.0" + "node": "^14 || ^16 || >=18.0" }, "peerDependencies": { - "postcss": "^8.2.15" + "postcss": "^8.4.31" } }, "node_modules/postcss-reduce-transforms": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/postcss-reduce-transforms/-/postcss-reduce-transforms-5.1.0.tgz", - "integrity": "sha512-2fbdbmgir5AvpW9RLtdONx1QoYG2/EtqpNQbFASDlixBbAYuTcJ0dECwlqNqH7VbaUnEnh8SrxOe2sRIn24XyQ==", + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/postcss-reduce-transforms/-/postcss-reduce-transforms-6.0.2.tgz", + "integrity": "sha512-sB+Ya++3Xj1WaT9+5LOOdirAxP7dJZms3GRcYheSPi1PiTMigsxHAdkrbItHxwYHr4kt1zL7mmcHstgMYT+aiA==", "dependencies": { "postcss-value-parser": "^4.2.0" }, "engines": { - "node": "^10 || ^12 || >=14.0" + "node": "^14 || ^16 || >=18.0" }, "peerDependencies": { - "postcss": "^8.2.15" + "postcss": "^8.4.31" } }, "node_modules/postcss-selector-parser": { @@ -24417,46 +20934,46 @@ } }, "node_modules/postcss-sort-media-queries": { - "version": "4.4.1", - "resolved": "https://registry.npmjs.org/postcss-sort-media-queries/-/postcss-sort-media-queries-4.4.1.tgz", - "integrity": "sha512-QDESFzDDGKgpiIh4GYXsSy6sek2yAwQx1JASl5AxBtU1Lq2JfKBljIPNdil989NcSKRQX1ToiaKphImtBuhXWw==", + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/postcss-sort-media-queries/-/postcss-sort-media-queries-5.2.0.tgz", + "integrity": "sha512-AZ5fDMLD8SldlAYlvi8NIqo0+Z8xnXU2ia0jxmuhxAU+Lqt9K+AlmLNJ/zWEnE9x+Zx3qL3+1K20ATgNOr3fAA==", "dependencies": { - "sort-css-media-queries": "2.1.0" + "sort-css-media-queries": "2.2.0" }, "engines": { - "node": ">=10.0.0" + "node": ">=14.0.0" }, "peerDependencies": { - "postcss": "^8.4.16" + "postcss": "^8.4.23" } }, "node_modules/postcss-svgo": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/postcss-svgo/-/postcss-svgo-5.1.0.tgz", - "integrity": "sha512-D75KsH1zm5ZrHyxPakAxJWtkyXew5qwS70v56exwvw542d9CRtTo78K0WeFxZB4G7JXKKMbEZtZayTGdIky/eA==", + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/postcss-svgo/-/postcss-svgo-6.0.3.tgz", + "integrity": "sha512-dlrahRmxP22bX6iKEjOM+c8/1p+81asjKT+V5lrgOH944ryx/OHpclnIbGsKVd3uWOXFLYJwCVf0eEkJGvO96g==", "dependencies": { "postcss-value-parser": "^4.2.0", - "svgo": "^2.7.0" + "svgo": "^3.2.0" }, "engines": { - "node": "^10 || ^12 || >=14.0" + "node": "^14 || ^16 || >= 18" }, "peerDependencies": { - "postcss": "^8.2.15" + "postcss": "^8.4.31" } }, "node_modules/postcss-unique-selectors": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/postcss-unique-selectors/-/postcss-unique-selectors-5.1.1.tgz", - "integrity": "sha512-5JiODlELrz8L2HwxfPnhOWZYWDxVHWL83ufOv84NrcgipI7TaeRsatAhK4Tr2/ZiYldpK/wBvw5BD3qfaK96GA==", + "version": "6.0.4", + "resolved": "https://registry.npmjs.org/postcss-unique-selectors/-/postcss-unique-selectors-6.0.4.tgz", + "integrity": "sha512-K38OCaIrO8+PzpArzkLKB42dSARtC2tmG6PvD4b1o1Q2E9Os8jzfWFfSy/rixsHwohtsDdFtAWGjFVFUdwYaMg==", "dependencies": { - "postcss-selector-parser": "^6.0.5" + "postcss-selector-parser": "^6.0.16" }, "engines": { - "node": "^10 || ^12 || >=14.0" + "node": "^14 || ^16 || >=18.0" }, "peerDependencies": { - "postcss": "^8.2.15" + "postcss": "^8.4.31" } }, "node_modules/postcss-value-parser": { @@ -24465,14 +20982,14 @@ "integrity": "sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==" }, "node_modules/postcss-zindex": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/postcss-zindex/-/postcss-zindex-5.1.0.tgz", - "integrity": "sha512-fgFMf0OtVSBR1va1JNHYgMxYk73yhn/qb4uQDq1DLGYolz8gHCyr/sesEuGUaYs58E3ZJRcpoGuPVoB7Meiq9A==", + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/postcss-zindex/-/postcss-zindex-6.0.2.tgz", + "integrity": "sha512-5BxW9l1evPB/4ZIc+2GobEBoKC+h8gPGCMi+jxsYvd2x0mjq7wazk6DrP71pStqxE9Foxh5TVnonbWpFZzXaYg==", "engines": { - "node": "^10 || ^12 || >=14.0" + "node": "^14 || ^16 || >=18.0" }, "peerDependencies": { - "postcss": "^8.2.15" + "postcss": "^8.4.31" } }, "node_modules/postman-url-encoder": { @@ -24566,14 +21083,6 @@ "react": ">=16.0.0" } }, - "node_modules/prism-react-renderer/node_modules/clsx": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/clsx/-/clsx-2.1.1.tgz", - "integrity": "sha512-eYm0QWBtUrBWZWG0d386OGAw16Z995PiOVo2B7bjWSbHedGl5e0ZWaq65kOGgUSNesEIDkB9ISbTg/JK9dhCZA==", - "engines": { - "node": ">=6" - } - }, "node_modules/prismjs": { "version": "1.29.0", "resolved": "https://registry.npmjs.org/prismjs/-/prismjs-1.29.0.tgz", @@ -25027,19 +21536,6 @@ "resolved": "https://registry.npmjs.org/react-lifecycles-compat/-/react-lifecycles-compat-3.0.4.tgz", "integrity": "sha512-fBASbA6LnOU9dOU2eW7aQ8xmYBSXUIWr+UmF9b1efZBazGNO+rcXT/icdKnYm2pTwcRylVUYwW7H1PHfLekVzA==" }, - "node_modules/react-loadable": { - "name": "@docusaurus/react-loadable", - "version": "5.5.2", - "resolved": "https://registry.npmjs.org/@docusaurus/react-loadable/-/react-loadable-5.5.2.tgz", - "integrity": "sha512-A3dYjdBGuy0IGT+wyLIGIKLRE+sAk1iNk0f1HjNDysO7u8lhL4N3VEm+FAubmJbAztn94F7MxBTPmnixbiyFdQ==", - "dependencies": { - "@types/react": "*", - "prop-types": "^15.6.2" - }, - "peerDependencies": { - "react": "*" - } - }, "node_modules/react-loadable-ssr-addon-v5-slorber": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/react-loadable-ssr-addon-v5-slorber/-/react-loadable-ssr-addon-v5-slorber-1.0.1.tgz", @@ -25341,6 +21837,14 @@ "react": "^16.8.0 || ^17.0.0-0 || ^18.0.0" } }, + "node_modules/react-tabs/node_modules/clsx": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/clsx/-/clsx-1.2.1.tgz", + "integrity": "sha512-EcR6r5a8bj6pu3ycsa/E/cKVGuTgZJZdsyUYHOksG/UHIiKfjxzRxYJpyVBwYaQeOvghal9fcc4PidlgzugAQg==", + "engines": { + "node": ">=6" + } + }, "node_modules/readable-stream": { "version": "4.4.2", "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-4.4.2.tgz", @@ -27382,12 +23886,6 @@ "npm": ">=5.6.0" } }, - "node_modules/sitemap/node_modules/@types/node": { - "version": "17.0.45", - "resolved": "https://registry.npmjs.org/@types/node/-/node-17.0.45.tgz", - "integrity": "sha512-w+tIMs3rq2afQdsPJlODhoUEKzFP1ayaoyl1CcnwtIlsVe7K7bA1NGm4s3PraqTLlXnbIN84zuBlxBWo1u9BLw==", - "dev": true - }, "node_modules/skin-tone": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/skin-tone/-/skin-tone-2.0.0.tgz", @@ -27435,9 +23933,9 @@ } }, "node_modules/sort-css-media-queries": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/sort-css-media-queries/-/sort-css-media-queries-2.1.0.tgz", - "integrity": "sha512-IeWvo8NkNiY2vVYdPa27MCQiR0MN0M80johAYFVxWWXQ44KU84WNxjslwBHmc/7ZL2ccwkM7/e6S5aiKZXm7jA==", + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/sort-css-media-queries/-/sort-css-media-queries-2.2.0.tgz", + "integrity": "sha512-0xtkGhWCC9MGt/EzgnvbbbKhqWjl1+/rncmhTh5qCpbYguXh6S/qwePfv/JQ8jePXXmqingylxoC49pCkSPIbA==", "engines": { "node": ">= 6.3.0" } @@ -27538,12 +24036,6 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/stable": { - "version": "0.1.8", - "resolved": "https://registry.npmjs.org/stable/-/stable-0.1.8.tgz", - "integrity": "sha512-ji9qxRnOVfcuLDySj9qzhGSEFVobyt1kIOSkj1qZzYLzq7Tos/oUUWvotUPQLlrsidqsK6tBH89Bc9kL5zHA6w==", - "deprecated": "Modern JS already guarantees Array#sort() is a stable sort, so this library is deprecated. See the compatibility table on MDN: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/sort#browser_compatibility" - }, "node_modules/statuses": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz", @@ -27735,18 +24227,18 @@ } }, "node_modules/stylehacks": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/stylehacks/-/stylehacks-5.1.1.tgz", - "integrity": "sha512-sBpcd5Hx7G6seo7b1LkpttvTz7ikD0LlH5RmdcBNb6fFR0Fl7LQwHDFr300q4cwUqi+IYrFGmsIHieMBfnN/Bw==", + "version": "6.1.1", + "resolved": "https://registry.npmjs.org/stylehacks/-/stylehacks-6.1.1.tgz", + "integrity": "sha512-gSTTEQ670cJNoaeIp9KX6lZmm8LJ3jPB5yJmX8Zq/wQxOsAFXV3qjWzHas3YYk1qesuVIyYWWUpZ0vSE/dTSGg==", "dependencies": { - "browserslist": "^4.21.4", - "postcss-selector-parser": "^6.0.4" + "browserslist": "^4.23.0", + "postcss-selector-parser": "^6.0.16" }, "engines": { - "node": "^10 || ^12 || >=14.0" + "node": "^14 || ^16 || >=18.0" }, "peerDependencies": { - "postcss": "^8.2.15" + "postcss": "^8.4.31" } }, "node_modules/stylis": { @@ -27850,23 +24342,27 @@ "integrity": "sha512-e4hG1hRwoOdRb37cIMSgzNsxyzKfayW6VOflrwvR+/bzrkyxY/31WkbgnQpgtrNp1SdpJvpUAGTa/ZoiPNDuRQ==" }, "node_modules/svgo": { - "version": "2.8.0", - "resolved": "https://registry.npmjs.org/svgo/-/svgo-2.8.0.tgz", - "integrity": "sha512-+N/Q9kV1+F+UeWYoSiULYo4xYSDQlTgb+ayMobAXPwMnLvop7oxKMo9OzIrX5x3eS4L4f2UHhc9axXwY8DpChg==", + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/svgo/-/svgo-3.3.2.tgz", + "integrity": "sha512-OoohrmuUlBs8B8o6MB2Aevn+pRIH9zDALSR+6hhqVfa6fRwG/Qw9VUMSMW9VNg2CFc/MTIfabtdOVl9ODIJjpw==", "dependencies": { "@trysound/sax": "0.2.0", "commander": "^7.2.0", - "css-select": "^4.1.3", - "css-tree": "^1.1.3", - "csso": "^4.2.0", - "picocolors": "^1.0.0", - "stable": "^0.1.8" + "css-select": "^5.1.0", + "css-tree": "^2.3.1", + "css-what": "^6.1.0", + "csso": "^5.0.5", + "picocolors": "^1.0.0" }, "bin": { "svgo": "bin/svgo" }, "engines": { - "node": ">=10.13.0" + "node": ">=14.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/svgo" } }, "node_modules/svgo/node_modules/commander": { @@ -27877,6 +24373,61 @@ "node": ">= 10" } }, + "node_modules/svgo/node_modules/css-select": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/css-select/-/css-select-5.1.0.tgz", + "integrity": "sha512-nwoRF1rvRRnnCqqY7updORDsuqKzqYJ28+oSMaJMMgOauh3fvwHqMS7EZpIPqK8GL+g9mKxF1vP/ZjSeNjEVHg==", + "dependencies": { + "boolbase": "^1.0.0", + "css-what": "^6.1.0", + "domhandler": "^5.0.2", + "domutils": "^3.0.1", + "nth-check": "^2.0.1" + }, + "funding": { + "url": "https://github.com/sponsors/fb55" + } + }, + "node_modules/svgo/node_modules/dom-serializer": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-2.0.0.tgz", + "integrity": "sha512-wIkAryiqt/nV5EQKqQpo3SToSOV9J0DnbJqwK7Wv/Trc92zIAYZ4FlMu+JPFW1DfGFt81ZTCGgDEabffXeLyJg==", + "dependencies": { + "domelementtype": "^2.3.0", + "domhandler": "^5.0.2", + "entities": "^4.2.0" + }, + "funding": { + "url": "https://github.com/cheeriojs/dom-serializer?sponsor=1" + } + }, + "node_modules/svgo/node_modules/domhandler": { + "version": "5.0.3", + "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-5.0.3.tgz", + "integrity": "sha512-cgwlv/1iFQiFnU96XXgROh8xTeetsnJiDsTc7TYCLFd9+/WNkIqPTxiM/8pSd8VIrhXGTf1Ny1q1hquVqDJB5w==", + "dependencies": { + "domelementtype": "^2.3.0" + }, + "engines": { + "node": ">= 4" + }, + "funding": { + "url": "https://github.com/fb55/domhandler?sponsor=1" + } + }, + "node_modules/svgo/node_modules/domutils": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/domutils/-/domutils-3.1.0.tgz", + "integrity": "sha512-H78uMmQtI2AhgDJjWeQmHwJJ2bLPD3GMmO7Zja/ZZh84wkm+4ut+IUnUdRa8uCGX88DiVx1j6FRe1XfxEgjEZA==", + "dependencies": { + "dom-serializer": "^2.0.0", + "domelementtype": "^2.3.0", + "domhandler": "^5.0.3" + }, + "funding": { + "url": "https://github.com/fb55/domutils?sponsor=1" + } + }, "node_modules/swagger2openapi": { "version": "7.0.8", "resolved": "https://registry.npmjs.org/swagger2openapi/-/swagger2openapi-7.0.8.tgz", diff --git a/package.json b/package.json index f796dcaa9..f0319320b 100644 --- a/package.json +++ b/package.json @@ -21,10 +21,9 @@ "rebuild-docs": "npm run clean-api-docs-all && npm run gen-api-docs-all" }, "dependencies": { - "@docusaurus/plugin-client-redirects": "3.0.1", - "@docusaurus/plugin-google-tag-manager": "3.0.1", - "@docusaurus/theme-common": "3.0.1", - "@docusaurus/theme-mermaid": "3.0.1", + "@docusaurus/plugin-client-redirects": "3.4.0", + "@docusaurus/plugin-google-tag-manager": "3.4.0", + "@docusaurus/theme-mermaid": "3.4.0", "@fortawesome/fontawesome-svg-core": "^6.5.1", "@fortawesome/pro-duotone-svg-icons": "^6.5.1", "@fortawesome/pro-solid-svg-icons": "^6.5.1", @@ -33,12 +32,12 @@ "@typeform/embed-react": "^1.21.0", "autoprefixer": "^10.4.13", "classnames": "^2.3.2", - "clsx": "^1.1.1", + "clsx": "^2.0.0", "docusaurus-plugin-openapi-docs": "^3.0.0-beta.10", "docusaurus-theme-openapi-docs": "^3.0.0-beta.10", "docusaurus2-dotenv": "^1.4.0", "ldrs": "^1.0.1", - "prism-react-renderer": "^2.1.0", + "prism-react-renderer": "^2.3.0", "react": "^18.2.0", "react-dom": "^18.2.0", "react-markdown": "^8.0.7", @@ -50,10 +49,10 @@ "mermaid": "10.4.0" }, "devDependencies": { - "@docusaurus/core": "3.0.1", - "@docusaurus/types": "3.0.1", - "@docusaurus/module-type-aliases": "3.0.0", - "@docusaurus/preset-classic": "3.0.1", + "@docusaurus/core": "3.4.0", + "@docusaurus/types": "3.4.0", + "@docusaurus/module-type-aliases": "3.4.0", + "@docusaurus/preset-classic": "3.4.0", "husky": "^8.0.2", "prettier": "2.8.0", "pretty-quick": "^3.1.3" diff --git a/src/theme/DocCard/index.js b/src/theme/DocCard/index.js deleted file mode 100644 index 2c2179100..000000000 --- a/src/theme/DocCard/index.js +++ /dev/null @@ -1,101 +0,0 @@ -import React from 'react'; -import clsx from 'clsx'; -import Link from '@docusaurus/Link'; -import { - findFirstCategoryLink, - useDocById, -} from '@docusaurus/theme-common/internal'; -import isInternalUrl from '@docusaurus/isInternalUrl'; -import {translate} from '@docusaurus/Translate'; -import styles from './styles.module.css'; -import {FontAwesomeIcon} from '@fortawesome/react-fontawesome'; -import { - faFolderOpen, - faBook, - faArrowUpRightFromSquare, -} from '@fortawesome/pro-duotone-svg-icons'; - -function CardContainer({href, children}) { - return ( - - {children} - - ); -} -function CardLayout({href, icon, title, description}) { - return ( - -

    - {icon} - {title} -

    - {description && ( -

    - {description} -

    - )} -
    - ); -} -function CardCategory({item}) { - const href = findFirstCategoryLink(item); - // Unexpected: categories that don't have a link have been filtered upfront - if (!href) { - return null; - } - return ( - - } - //icon={icon} - title={item.label} - description={ - item.customProps?.description ?? - translate( - { - message: '{count} items', - id: 'theme.docs.DocCard.categoryDescription', - description: - 'The default description for a category card in the generated index about how many items this category includes', - }, - {count: item.items.length}, - ) - } - /> - ); -} -function CardLink({item}) { - const icon = isInternalUrl(item.href) ? ( - - ) : ( - - ); - const doc = useDocById(item.docId ?? undefined); - return ( - - ); -} -export default function DocCard({item}) { - switch (item.type) { - case 'link': - return ; - case 'category': - return ; - default: - throw new Error(`unknown item type ${JSON.stringify(item)}`); - } -} diff --git a/src/theme/DocCard/styles.module.css b/src/theme/DocCard/styles.module.css deleted file mode 100644 index 3c7257fc8..000000000 --- a/src/theme/DocCard/styles.module.css +++ /dev/null @@ -1,33 +0,0 @@ -.cardContainer { - --ifm-link-color: var(--ifm-color-emphasis-800); - --ifm-link-hover-color: var(--ifm-color-emphasis-700); - --ifm-link-hover-decoration: none; - - box-shadow: 0 1.5px 3px 0 rgb(0 0 0 / 15%); - border: 1px solid var(--ifm-color-emphasis-200); - transition: all var(--ifm-transition-fast) ease; - transition-property: border, box-shadow; - height: 9.5em; -} - -.cardContainer:hover { - border-color: var(--ifm-color-primary); - box-shadow: 0 3px 6px 0 rgb(0 0 0 / 20%); -} - -.cardContainer *:last-child { - margin-bottom: 0; -} - -.cardTitle { - font-size: 1.2rem; -} - -.cardDescription { - font-size: 0.9rem; -} - -.docCardIcon { - margin-right: 0.5em; - color: var(--ifm-color-primary); -} From 88f5e08f47b52fcad1cfbcb0daff834a743d7119 Mon Sep 17 00:00:00 2001 From: darrell-thobe-sp Date: Wed, 3 Jul 2024 13:12:50 -0400 Subject: [PATCH 54/74] adding auth section back --- .../available/access-request-submitted.md | 4 +- .../plugin-developer-guide/chapter-5/index.md | 2 +- package-lock.json | 57 +- package.json | 1 + src/theme/ApiExplorer/Accept/index.tsx | 29 + src/theme/ApiExplorer/Accept/slice.ts | 22 + .../ApiCodeBlock/Container/_Container.scss | 7 + .../ApiCodeBlock/Container/index.tsx | 25 + .../ApiCodeBlock/Content/Element.tsx | 27 + .../ApiCodeBlock/Content/String.tsx | 127 ++ .../ApiCodeBlock/Content/_Content.scss | 91 ++ .../ApiCodeBlock/CopyButton/_CopyButton.scss | 44 + .../ApiCodeBlock/CopyButton/index.tsx | 72 + .../ApiCodeBlock/ExitButton/_ExitButton.scss | 16 + .../ApiCodeBlock/ExitButton/index.tsx | 48 + .../ExpandButton/_ExpandButton.scss | 62 + .../ApiCodeBlock/ExpandButton/index.tsx | 159 ++ .../ApiExplorer/ApiCodeBlock/Line/_Line.scss | 44 + .../ApiExplorer/ApiCodeBlock/Line/index.tsx | 41 + .../WordWrapButton/_WordWrapButton.scss | 10 + .../ApiCodeBlock/WordWrapButton/index.tsx | 47 + src/theme/ApiExplorer/ApiCodeBlock/index.tsx | 38 + .../ApiExplorer/Authorization/auth-types.ts | 23 + src/theme/ApiExplorer/Authorization/index.tsx | 148 ++ src/theme/ApiExplorer/Authorization/slice.ts | 139 ++ src/theme/ApiExplorer/Body/index.tsx | 361 +++++ src/theme/ApiExplorer/Body/json2xml.js | 36 + src/theme/ApiExplorer/Body/slice.ts | 126 ++ .../CodeSnippets/code-snippets-types.ts | 48 + src/theme/ApiExplorer/CodeSnippets/index.tsx | 434 ++++++ .../ApiExplorer/CodeSnippets/languages.json | 1290 +++++++++++++++++ .../ApiExplorer/CodeSnippets/languages.ts | 46 + src/theme/ApiExplorer/CodeTabs/_CodeTabs.scss | 307 ++++ src/theme/ApiExplorer/CodeTabs/index.tsx | 206 +++ src/theme/ApiExplorer/ContentType/index.tsx | 31 + src/theme/ApiExplorer/ContentType/slice.ts | 22 + src/theme/ApiExplorer/Export/index.tsx | 40 + .../FloatingButton/_FloatingButton.scss | 27 + .../ApiExplorer/FloatingButton/index.tsx | 22 + .../FormFileUpload/_FormFileUpload.scss | 72 + .../ApiExplorer/FormFileUpload/index.tsx | 112 ++ src/theme/ApiExplorer/FormItem/_FormItem.scss | 21 + src/theme/ApiExplorer/FormItem/index.tsx | 26 + .../FormMultiSelect/_FormMultiSelect.scss | 30 + .../ApiExplorer/FormMultiSelect/index.tsx | 50 + .../ApiExplorer/FormSelect/_FormSelect.scss | 43 + src/theme/ApiExplorer/FormSelect/index.tsx | 31 + .../FormTextInput/_FormTextInput.scss | 34 + src/theme/ApiExplorer/FormTextInput/index.tsx | 73 + .../ApiExplorer/LiveEditor/_LiveEditor.scss | 15 + src/theme/ApiExplorer/LiveEditor/index.tsx | 105 ++ .../MethodEndpoint/_MethodEndpoint.scss | 22 + .../ApiExplorer/MethodEndpoint/index.tsx | 80 + .../ParamFormItems/ParamArrayFormItem.tsx | 149 ++ .../ParamFormItems/ParamBooleanFormItem.tsx | 57 + .../ParamMultiSelectFormItem.tsx | 79 + .../ParamFormItems/ParamSelectFormItem.tsx | 58 + .../ParamFormItems/ParamTextFormItem.tsx | 31 + .../ParamOptions/_ParamOptions.scss | 123 ++ src/theme/ApiExplorer/ParamOptions/index.tsx | 138 ++ src/theme/ApiExplorer/ParamOptions/slice.ts | 30 + src/theme/ApiExplorer/Request/_Request.scss | 124 ++ src/theme/ApiExplorer/Request/index.tsx | 279 ++++ src/theme/ApiExplorer/Request/makeRequest.ts | 247 ++++ src/theme/ApiExplorer/Response/_Response.scss | 120 ++ src/theme/ApiExplorer/Response/index.tsx | 147 ++ src/theme/ApiExplorer/Response/slice.ts | 45 + .../ApiExplorer/SecuritySchemes/index.tsx | 262 ++++ src/theme/ApiExplorer/Server/_Server.scss | 26 + src/theme/ApiExplorer/Server/index.tsx | 123 ++ src/theme/ApiExplorer/Server/slice.ts | 32 + src/theme/ApiExplorer/buildPostmanRequest.ts | 320 ++++ src/theme/ApiExplorer/index.tsx | 34 + .../ApiExplorer/persistanceMiddleware.ts | 64 + src/theme/ApiExplorer/postman-collection.d.ts | 3 + src/theme/ApiExplorer/react-modal.d.ts | 1 + src/theme/ApiExplorer/storage-utils.ts | 32 + 77 files changed, 7476 insertions(+), 41 deletions(-) create mode 100644 src/theme/ApiExplorer/Accept/index.tsx create mode 100644 src/theme/ApiExplorer/Accept/slice.ts create mode 100644 src/theme/ApiExplorer/ApiCodeBlock/Container/_Container.scss create mode 100644 src/theme/ApiExplorer/ApiCodeBlock/Container/index.tsx create mode 100644 src/theme/ApiExplorer/ApiCodeBlock/Content/Element.tsx create mode 100644 src/theme/ApiExplorer/ApiCodeBlock/Content/String.tsx create mode 100644 src/theme/ApiExplorer/ApiCodeBlock/Content/_Content.scss create mode 100644 src/theme/ApiExplorer/ApiCodeBlock/CopyButton/_CopyButton.scss create mode 100644 src/theme/ApiExplorer/ApiCodeBlock/CopyButton/index.tsx create mode 100644 src/theme/ApiExplorer/ApiCodeBlock/ExitButton/_ExitButton.scss create mode 100644 src/theme/ApiExplorer/ApiCodeBlock/ExitButton/index.tsx create mode 100644 src/theme/ApiExplorer/ApiCodeBlock/ExpandButton/_ExpandButton.scss create mode 100644 src/theme/ApiExplorer/ApiCodeBlock/ExpandButton/index.tsx create mode 100644 src/theme/ApiExplorer/ApiCodeBlock/Line/_Line.scss create mode 100644 src/theme/ApiExplorer/ApiCodeBlock/Line/index.tsx create mode 100644 src/theme/ApiExplorer/ApiCodeBlock/WordWrapButton/_WordWrapButton.scss create mode 100644 src/theme/ApiExplorer/ApiCodeBlock/WordWrapButton/index.tsx create mode 100644 src/theme/ApiExplorer/ApiCodeBlock/index.tsx create mode 100644 src/theme/ApiExplorer/Authorization/auth-types.ts create mode 100644 src/theme/ApiExplorer/Authorization/index.tsx create mode 100644 src/theme/ApiExplorer/Authorization/slice.ts create mode 100644 src/theme/ApiExplorer/Body/index.tsx create mode 100644 src/theme/ApiExplorer/Body/json2xml.js create mode 100644 src/theme/ApiExplorer/Body/slice.ts create mode 100644 src/theme/ApiExplorer/CodeSnippets/code-snippets-types.ts create mode 100644 src/theme/ApiExplorer/CodeSnippets/index.tsx create mode 100644 src/theme/ApiExplorer/CodeSnippets/languages.json create mode 100644 src/theme/ApiExplorer/CodeSnippets/languages.ts create mode 100644 src/theme/ApiExplorer/CodeTabs/_CodeTabs.scss create mode 100644 src/theme/ApiExplorer/CodeTabs/index.tsx create mode 100644 src/theme/ApiExplorer/ContentType/index.tsx create mode 100644 src/theme/ApiExplorer/ContentType/slice.ts create mode 100644 src/theme/ApiExplorer/Export/index.tsx create mode 100644 src/theme/ApiExplorer/FloatingButton/_FloatingButton.scss create mode 100644 src/theme/ApiExplorer/FloatingButton/index.tsx create mode 100644 src/theme/ApiExplorer/FormFileUpload/_FormFileUpload.scss create mode 100644 src/theme/ApiExplorer/FormFileUpload/index.tsx create mode 100644 src/theme/ApiExplorer/FormItem/_FormItem.scss create mode 100644 src/theme/ApiExplorer/FormItem/index.tsx create mode 100644 src/theme/ApiExplorer/FormMultiSelect/_FormMultiSelect.scss create mode 100644 src/theme/ApiExplorer/FormMultiSelect/index.tsx create mode 100644 src/theme/ApiExplorer/FormSelect/_FormSelect.scss create mode 100644 src/theme/ApiExplorer/FormSelect/index.tsx create mode 100644 src/theme/ApiExplorer/FormTextInput/_FormTextInput.scss create mode 100644 src/theme/ApiExplorer/FormTextInput/index.tsx create mode 100644 src/theme/ApiExplorer/LiveEditor/_LiveEditor.scss create mode 100644 src/theme/ApiExplorer/LiveEditor/index.tsx create mode 100644 src/theme/ApiExplorer/MethodEndpoint/_MethodEndpoint.scss create mode 100644 src/theme/ApiExplorer/MethodEndpoint/index.tsx create mode 100644 src/theme/ApiExplorer/ParamOptions/ParamFormItems/ParamArrayFormItem.tsx create mode 100644 src/theme/ApiExplorer/ParamOptions/ParamFormItems/ParamBooleanFormItem.tsx create mode 100644 src/theme/ApiExplorer/ParamOptions/ParamFormItems/ParamMultiSelectFormItem.tsx create mode 100644 src/theme/ApiExplorer/ParamOptions/ParamFormItems/ParamSelectFormItem.tsx create mode 100644 src/theme/ApiExplorer/ParamOptions/ParamFormItems/ParamTextFormItem.tsx create mode 100644 src/theme/ApiExplorer/ParamOptions/_ParamOptions.scss create mode 100644 src/theme/ApiExplorer/ParamOptions/index.tsx create mode 100644 src/theme/ApiExplorer/ParamOptions/slice.ts create mode 100644 src/theme/ApiExplorer/Request/_Request.scss create mode 100644 src/theme/ApiExplorer/Request/index.tsx create mode 100644 src/theme/ApiExplorer/Request/makeRequest.ts create mode 100644 src/theme/ApiExplorer/Response/_Response.scss create mode 100644 src/theme/ApiExplorer/Response/index.tsx create mode 100644 src/theme/ApiExplorer/Response/slice.ts create mode 100644 src/theme/ApiExplorer/SecuritySchemes/index.tsx create mode 100644 src/theme/ApiExplorer/Server/_Server.scss create mode 100644 src/theme/ApiExplorer/Server/index.tsx create mode 100644 src/theme/ApiExplorer/Server/slice.ts create mode 100644 src/theme/ApiExplorer/buildPostmanRequest.ts create mode 100644 src/theme/ApiExplorer/index.tsx create mode 100644 src/theme/ApiExplorer/persistanceMiddleware.ts create mode 100644 src/theme/ApiExplorer/postman-collection.d.ts create mode 100644 src/theme/ApiExplorer/react-modal.d.ts create mode 100644 src/theme/ApiExplorer/storage-utils.ts diff --git a/docs/extensibility/event-triggers/available/access-request-submitted.md b/docs/extensibility/event-triggers/available/access-request-submitted.md index aba01f1a5..fc73881c0 100644 --- a/docs/extensibility/event-triggers/available/access-request-submitted.md +++ b/docs/extensibility/event-triggers/available/access-request-submitted.md @@ -96,11 +96,11 @@ To deny an access request, the subscribing service responds to the event trigger } ``` -:::Warning +:::warning The `approver` does not have to be the name of an existing identity in your ISC tenant. It can be anything you want it to be. However, if you have an active subscription to the [Access Request Decision](./access-request-decision.md) trigger, you **MUST** provide the **username** of an existing identity in your tenant in the `approver` field. If you do not provide the **username** of an existing identity, then your Access Request Decision subscriptions will never be triggered. ::: -:::Warning +:::warning This event trigger interrupts the normal workflow for access requests. Access requests can only proceed if the subscribing service responds within the alotted time by approving the request. If the subscribing service is non-responsive or it is responding with an incorrect payload, access requests will fail after the **Separation of Duties** check. ![AR failed](./img/access-request-preapproval-failure.png) diff --git a/docs/iiq/plugin-developer-guide/chapter-5/index.md b/docs/iiq/plugin-developer-guide/chapter-5/index.md index 6515051a9..57f96b663 100644 --- a/docs/iiq/plugin-developer-guide/chapter-5/index.md +++ b/docs/iiq/plugin-developer-guide/chapter-5/index.md @@ -15,7 +15,7 @@ tags: ['plugin', 'guide', 'identityiq'] Most plugins will have some additional UI component that will display in IdentityIQ. You can use images, CSS files, HTML templates, and JavaScript to provide the interactions and views required by the plugin. Plugins using a `fullPage` element will look for a file called 'page.xhtml' in the build. -:::Note +:::info Any css installed with the plugin will apply to all elements in IdentityIQ. For this reason it is recommended that developers keep their css classes specific to their plugin. diff --git a/package-lock.json b/package-lock.json index c71756972..015cc11b9 100644 --- a/package-lock.json +++ b/package-lock.json @@ -28,6 +28,7 @@ "prism-react-renderer": "^2.3.0", "react": "^18.2.0", "react-dom": "^18.2.0", + "react-live": "^4.0.0", "react-markdown": "^8.0.7", "react-spinners": "^0.13.8", "react-tabs": "^4.3.0" @@ -7733,44 +7734,6 @@ "node": ">=6" } }, - "node_modules/docusaurus-theme-openapi-docs/node_modules/react-live": { - "version": "4.1.5", - "resolved": "https://registry.npmjs.org/react-live/-/react-live-4.1.5.tgz", - "integrity": "sha512-ul3Zwvqvh6KTg8j7xGCT26+c8J9vQ+LFUrZCbrrrzEExuVB/39s1GKG3NsywnL+aGAjpfnUTaVCe7KlKIvVPiw==", - "dependencies": { - "prism-react-renderer": "^2.0.6", - "sucrase": "^3.31.0", - "use-editable": "^2.3.3" - }, - "engines": { - "node": ">= 0.12.0", - "npm": ">= 2.0.0" - }, - "peerDependencies": { - "react": ">=18.0.0", - "react-dom": ">=18.0.0" - } - }, - "node_modules/docusaurus-theme-openapi-docs/node_modules/react-live/node_modules/clsx": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/clsx/-/clsx-2.1.1.tgz", - "integrity": "sha512-eYm0QWBtUrBWZWG0d386OGAw16Z995PiOVo2B7bjWSbHedGl5e0ZWaq65kOGgUSNesEIDkB9ISbTg/JK9dhCZA==", - "engines": { - "node": ">=6" - } - }, - "node_modules/docusaurus-theme-openapi-docs/node_modules/react-live/node_modules/prism-react-renderer": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/prism-react-renderer/-/prism-react-renderer-2.3.1.tgz", - "integrity": "sha512-Rdf+HzBLR7KYjzpJ1rSoxT9ioO85nZngQEoFIhL07XhtJHlCU3SOz0GJ6+qvMyQe0Se+BV3qpe6Yd/NmQF5Juw==", - "dependencies": { - "@types/prismjs": "^1.26.0", - "clsx": "^2.0.0" - }, - "peerDependencies": { - "react": ">=16.0.0" - } - }, "node_modules/docusaurus2-dotenv": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/docusaurus2-dotenv/-/docusaurus2-dotenv-1.4.0.tgz", @@ -21536,6 +21499,24 @@ "resolved": "https://registry.npmjs.org/react-lifecycles-compat/-/react-lifecycles-compat-3.0.4.tgz", "integrity": "sha512-fBASbA6LnOU9dOU2eW7aQ8xmYBSXUIWr+UmF9b1efZBazGNO+rcXT/icdKnYm2pTwcRylVUYwW7H1PHfLekVzA==" }, + "node_modules/react-live": { + "version": "4.1.7", + "resolved": "https://registry.npmjs.org/react-live/-/react-live-4.1.7.tgz", + "integrity": "sha512-NTzl0POOAW3dkp7+QL30duOrIu2Vzf2LHdx4TaQ0BqOAtQcSTKEXujfm9jR2VoCHko0oi35PYp38yKQBXz4mrg==", + "dependencies": { + "prism-react-renderer": "^2.0.6", + "sucrase": "^3.31.0", + "use-editable": "^2.3.3" + }, + "engines": { + "node": ">= 0.12.0", + "npm": ">= 2.0.0" + }, + "peerDependencies": { + "react": ">=18.0.0", + "react-dom": ">=18.0.0" + } + }, "node_modules/react-loadable-ssr-addon-v5-slorber": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/react-loadable-ssr-addon-v5-slorber/-/react-loadable-ssr-addon-v5-slorber-1.0.1.tgz", diff --git a/package.json b/package.json index f0319320b..4d4caa449 100644 --- a/package.json +++ b/package.json @@ -38,6 +38,7 @@ "docusaurus2-dotenv": "^1.4.0", "ldrs": "^1.0.1", "prism-react-renderer": "^2.3.0", + "react-live": "^4.0.0", "react": "^18.2.0", "react-dom": "^18.2.0", "react-markdown": "^8.0.7", diff --git a/src/theme/ApiExplorer/Accept/index.tsx b/src/theme/ApiExplorer/Accept/index.tsx new file mode 100644 index 000000000..a8b06236b --- /dev/null +++ b/src/theme/ApiExplorer/Accept/index.tsx @@ -0,0 +1,29 @@ +import React from "react"; + +import FormItem from "@theme/ApiExplorer/FormItem"; +import FormSelect from "@theme/ApiExplorer/FormSelect"; +import { useTypedDispatch, useTypedSelector } from "@theme/ApiItem/hooks"; + +import { setAccept } from "./slice"; + +function Accept() { + const value = useTypedSelector((state: any) => state.accept.value); + const options = useTypedSelector((state: any) => state.accept.options); + const dispatch = useTypedDispatch(); + + if (options.length <= 1) { + return null; + } + + return ( + + dispatch(setAccept(e.target.value))} + /> + + ); +} + +export default Accept; diff --git a/src/theme/ApiExplorer/Accept/slice.ts b/src/theme/ApiExplorer/Accept/slice.ts new file mode 100644 index 000000000..e60923922 --- /dev/null +++ b/src/theme/ApiExplorer/Accept/slice.ts @@ -0,0 +1,22 @@ +import { createSlice, PayloadAction } from "@reduxjs/toolkit"; + +export interface State { + value: string; + options: string[]; +} + +const initialState: State = {} as any; + +export const slice = createSlice({ + name: "accept", + initialState, + reducers: { + setAccept: (state, action: PayloadAction) => { + state.value = action.payload; + }, + }, +}); + +export const { setAccept } = slice.actions; + +export default slice.reducer; diff --git a/src/theme/ApiExplorer/ApiCodeBlock/Container/_Container.scss b/src/theme/ApiExplorer/ApiCodeBlock/Container/_Container.scss new file mode 100644 index 000000000..8e17c2565 --- /dev/null +++ b/src/theme/ApiExplorer/ApiCodeBlock/Container/_Container.scss @@ -0,0 +1,7 @@ +.openapi-explorer__code-block-container { + height: 100%; + background: var(--prism-background-color); + color: var(--prism-color); + margin-bottom: unset; + box-shadow: var(--ifm-global-shadow-lw); +} diff --git a/src/theme/ApiExplorer/ApiCodeBlock/Container/index.tsx b/src/theme/ApiExplorer/ApiCodeBlock/Container/index.tsx new file mode 100644 index 000000000..006dfcc50 --- /dev/null +++ b/src/theme/ApiExplorer/ApiCodeBlock/Container/index.tsx @@ -0,0 +1,25 @@ +import React, { ComponentProps } from "react"; + +import { ThemeClassNames, usePrismTheme } from "@docusaurus/theme-common"; +import { getPrismCssVariables } from "@docusaurus/theme-common/internal"; +import clsx from "clsx"; + +export default function CodeBlockContainer({ + as: As, + ...props +}: { as: T } & ComponentProps): React.JSX.Element { + const prismTheme = usePrismTheme(); + const prismCssVariables = getPrismCssVariables(prismTheme); + return ( + + ); +} diff --git a/src/theme/ApiExplorer/ApiCodeBlock/Content/Element.tsx b/src/theme/ApiExplorer/ApiCodeBlock/Content/Element.tsx new file mode 100644 index 000000000..54b58f532 --- /dev/null +++ b/src/theme/ApiExplorer/ApiCodeBlock/Content/Element.tsx @@ -0,0 +1,27 @@ +import React from "react"; + +import Container from "@theme/ApiExplorer/ApiCodeBlock/Container"; +import type { Props } from "@theme/CodeBlock/Content/Element"; +import clsx from "clsx"; + +//

    render

    @Deprecated
     public static java.lang.String render(java.lang.Object o)
    -                                           throws java.lang.Exception
    + throws java.lang.Exception
    Deprecated. 
    Throws:
    @@ -493,7 +493,7 @@ public static java.lang.String render(java.lang.Object o)

    parse

    @Deprecated
     public static java.lang.Object parse(java.lang.String json)
    -                                          throws java.lang.Exception
    + throws java.lang.Exception
    Deprecated. 
    Throws:
    diff --git a/static/rule-java-docs/connector/common/Util.html b/static/rule-java-docs/connector/common/Util.html index 046b0d0f1..4a982b961 100644 --- a/static/rule-java-docs/connector/common/Util.html +++ b/static/rule-java-docs/connector/common/Util.html @@ -2,9 +2,9 @@ - + Util - + diff --git a/static/rule-java-docs/connector/common/package-frame.html b/static/rule-java-docs/connector/common/package-frame.html index b0bbf913c..febb10d5b 100644 --- a/static/rule-java-docs/connector/common/package-frame.html +++ b/static/rule-java-docs/connector/common/package-frame.html @@ -2,9 +2,9 @@ - + connector.common - + diff --git a/static/rule-java-docs/connector/common/package-summary.html b/static/rule-java-docs/connector/common/package-summary.html index 4971073a6..08fbe8aa8 100644 --- a/static/rule-java-docs/connector/common/package-summary.html +++ b/static/rule-java-docs/connector/common/package-summary.html @@ -2,9 +2,9 @@ - + connector.common - + diff --git a/static/rule-java-docs/connector/common/package-tree.html b/static/rule-java-docs/connector/common/package-tree.html index bcecd3e83..7b7e2fbf6 100644 --- a/static/rule-java-docs/connector/common/package-tree.html +++ b/static/rule-java-docs/connector/common/package-tree.html @@ -2,9 +2,9 @@ - + connector.common Class Hierarchy - + diff --git a/static/rule-java-docs/constant-values.html b/static/rule-java-docs/constant-values.html index d51d66d4d..ed013151d 100644 --- a/static/rule-java-docs/constant-values.html +++ b/static/rule-java-docs/constant-values.html @@ -2,9 +2,9 @@ - + Constant Field Values - + diff --git a/static/rule-java-docs/deprecated-list.html b/static/rule-java-docs/deprecated-list.html index 2c0561678..db2738030 100644 --- a/static/rule-java-docs/deprecated-list.html +++ b/static/rule-java-docs/deprecated-list.html @@ -2,9 +2,9 @@ - + Deprecated List - + diff --git a/static/rule-java-docs/help-doc.html b/static/rule-java-docs/help-doc.html index 3948d6fdc..c7b097d91 100644 --- a/static/rule-java-docs/help-doc.html +++ b/static/rule-java-docs/help-doc.html @@ -2,9 +2,9 @@ - + API Help - + diff --git a/static/rule-java-docs/index-files/index-1.html b/static/rule-java-docs/index-files/index-1.html index 3e3c4baa8..337fc3ab0 100644 --- a/static/rule-java-docs/index-files/index-1.html +++ b/static/rule-java-docs/index-files/index-1.html @@ -2,9 +2,9 @@ - + A-Index - + @@ -135,6 +135,10 @@
     
    addAssignmentIds(String) - Method in class sailpoint.object.ProvisioningPlan.AbstractRequest
     
    +
    addError(String) - Method in class sailpoint.object.ProvisioningResult
    +
    +
    This method adds the provided string as an error to the ProvisioningResult
    +
    addFilter(Filter) - Method in class sailpoint.object.QueryOptions
     
    addFiltered(ProvisioningPlan.AbstractRequest) - Method in class sailpoint.object.ProvisioningPlan
    @@ -157,6 +161,10 @@
     
    addValues(Object, boolean) - Method in class sailpoint.object.ProvisioningPlan.GenericRequest
     
    +
    addWarning(String) - Method in class sailpoint.object.ProvisioningResult
    +
    +
    This method adds the provided string as a warning to the ProvisioningResult
    +
    and(Filter, Filter) - Static method in class sailpoint.object.Filter
    Combine the given filters with an AND conjunction.
    diff --git a/static/rule-java-docs/index-files/index-10.html b/static/rule-java-docs/index-files/index-10.html index ba72c407f..79cd26f89 100644 --- a/static/rule-java-docs/index-files/index-10.html +++ b/static/rule-java-docs/index-files/index-10.html @@ -2,9 +2,9 @@ - + J-Index - + diff --git a/static/rule-java-docs/index-files/index-11.html b/static/rule-java-docs/index-files/index-11.html index 8c5d84f5b..2e00b03d9 100644 --- a/static/rule-java-docs/index-files/index-11.html +++ b/static/rule-java-docs/index-files/index-11.html @@ -2,9 +2,9 @@ - + L-Index - + diff --git a/static/rule-java-docs/index-files/index-12.html b/static/rule-java-docs/index-files/index-12.html index 44e0cbd7d..4fda4e814 100644 --- a/static/rule-java-docs/index-files/index-12.html +++ b/static/rule-java-docs/index-files/index-12.html @@ -2,9 +2,9 @@ - + M-Index - + diff --git a/static/rule-java-docs/index-files/index-13.html b/static/rule-java-docs/index-files/index-13.html index f136751e2..0eb8d2ac6 100644 --- a/static/rule-java-docs/index-files/index-13.html +++ b/static/rule-java-docs/index-files/index-13.html @@ -2,9 +2,9 @@ - + N-Index - + diff --git a/static/rule-java-docs/index-files/index-14.html b/static/rule-java-docs/index-files/index-14.html index 96b81f23b..ca6763418 100644 --- a/static/rule-java-docs/index-files/index-14.html +++ b/static/rule-java-docs/index-files/index-14.html @@ -2,9 +2,9 @@ - + O-Index - + diff --git a/static/rule-java-docs/index-files/index-15.html b/static/rule-java-docs/index-files/index-15.html index 74f69fd33..82d2f536e 100644 --- a/static/rule-java-docs/index-files/index-15.html +++ b/static/rule-java-docs/index-files/index-15.html @@ -2,9 +2,9 @@ - + P-Index - + diff --git a/static/rule-java-docs/index-files/index-16.html b/static/rule-java-docs/index-files/index-16.html index afe3eaecb..2498bc539 100644 --- a/static/rule-java-docs/index-files/index-16.html +++ b/static/rule-java-docs/index-files/index-16.html @@ -2,9 +2,9 @@ - + Q-Index - + diff --git a/static/rule-java-docs/index-files/index-17.html b/static/rule-java-docs/index-files/index-17.html index 4f8d0e1e5..bebd2aa48 100644 --- a/static/rule-java-docs/index-files/index-17.html +++ b/static/rule-java-docs/index-files/index-17.html @@ -2,9 +2,9 @@ - + R-Index - + diff --git a/static/rule-java-docs/index-files/index-18.html b/static/rule-java-docs/index-files/index-18.html index 466ebcca9..7e740b655 100644 --- a/static/rule-java-docs/index-files/index-18.html +++ b/static/rule-java-docs/index-files/index-18.html @@ -2,9 +2,9 @@ - + S-Index - + diff --git a/static/rule-java-docs/index-files/index-19.html b/static/rule-java-docs/index-files/index-19.html index b8602783e..fa9b0346b 100644 --- a/static/rule-java-docs/index-files/index-19.html +++ b/static/rule-java-docs/index-files/index-19.html @@ -2,9 +2,9 @@ - + T-Index - + diff --git a/static/rule-java-docs/index-files/index-2.html b/static/rule-java-docs/index-files/index-2.html index 289c31999..6e1330630 100644 --- a/static/rule-java-docs/index-files/index-2.html +++ b/static/rule-java-docs/index-files/index-2.html @@ -2,9 +2,9 @@ - + B-Index - + diff --git a/static/rule-java-docs/index-files/index-20.html b/static/rule-java-docs/index-files/index-20.html index fc4e8dbe4..717258f69 100644 --- a/static/rule-java-docs/index-files/index-20.html +++ b/static/rule-java-docs/index-files/index-20.html @@ -2,9 +2,9 @@ - + U-Index - + diff --git a/static/rule-java-docs/index-files/index-21.html b/static/rule-java-docs/index-files/index-21.html index cc65c3836..9ecc50056 100644 --- a/static/rule-java-docs/index-files/index-21.html +++ b/static/rule-java-docs/index-files/index-21.html @@ -2,9 +2,9 @@ - + V-Index - + diff --git a/static/rule-java-docs/index-files/index-22.html b/static/rule-java-docs/index-files/index-22.html index 46761863c..158b06808 100644 --- a/static/rule-java-docs/index-files/index-22.html +++ b/static/rule-java-docs/index-files/index-22.html @@ -2,9 +2,9 @@ - + W-Index - + diff --git a/static/rule-java-docs/index-files/index-23.html b/static/rule-java-docs/index-files/index-23.html index 702e525f1..b61ec2751 100644 --- a/static/rule-java-docs/index-files/index-23.html +++ b/static/rule-java-docs/index-files/index-23.html @@ -2,9 +2,9 @@ - + _-Index - + diff --git a/static/rule-java-docs/index-files/index-3.html b/static/rule-java-docs/index-files/index-3.html index ddae92124..c45b57af4 100644 --- a/static/rule-java-docs/index-files/index-3.html +++ b/static/rule-java-docs/index-files/index-3.html @@ -2,9 +2,9 @@ - + C-Index - + diff --git a/static/rule-java-docs/index-files/index-4.html b/static/rule-java-docs/index-files/index-4.html index 44f6258e4..4d4125e8d 100644 --- a/static/rule-java-docs/index-files/index-4.html +++ b/static/rule-java-docs/index-files/index-4.html @@ -2,9 +2,9 @@ - + D-Index - + diff --git a/static/rule-java-docs/index-files/index-5.html b/static/rule-java-docs/index-files/index-5.html index 30ccf8ea8..dcf7bfa11 100644 --- a/static/rule-java-docs/index-files/index-5.html +++ b/static/rule-java-docs/index-files/index-5.html @@ -2,9 +2,9 @@ - + E-Index - + diff --git a/static/rule-java-docs/index-files/index-6.html b/static/rule-java-docs/index-files/index-6.html index fe40fc860..2c823b4e7 100644 --- a/static/rule-java-docs/index-files/index-6.html +++ b/static/rule-java-docs/index-files/index-6.html @@ -2,9 +2,9 @@ - + F-Index - + diff --git a/static/rule-java-docs/index-files/index-7.html b/static/rule-java-docs/index-files/index-7.html index ea2968bb6..5d44b7409 100644 --- a/static/rule-java-docs/index-files/index-7.html +++ b/static/rule-java-docs/index-files/index-7.html @@ -2,9 +2,9 @@ - + G-Index - + diff --git a/static/rule-java-docs/index-files/index-8.html b/static/rule-java-docs/index-files/index-8.html index 24c3adf66..b2babd0c0 100644 --- a/static/rule-java-docs/index-files/index-8.html +++ b/static/rule-java-docs/index-files/index-8.html @@ -2,9 +2,9 @@ - + H-Index - + diff --git a/static/rule-java-docs/index-files/index-9.html b/static/rule-java-docs/index-files/index-9.html index ddf3b6c95..a4f8eac35 100644 --- a/static/rule-java-docs/index-files/index-9.html +++ b/static/rule-java-docs/index-files/index-9.html @@ -2,9 +2,9 @@ - + I-Index - + diff --git a/static/rule-java-docs/index.html b/static/rule-java-docs/index.html index b8e8c83d7..926ed3fb4 100644 --- a/static/rule-java-docs/index.html +++ b/static/rule-java-docs/index.html @@ -2,7 +2,7 @@ - + Generated Documentation (Untitled) diff --git a/static/rule-java-docs/overview-summary.html b/static/rule-java-docs/overview-summary.html index 35a83aaea..b38203c23 100644 --- a/static/rule-java-docs/overview-summary.html +++ b/static/rule-java-docs/overview-summary.html @@ -2,9 +2,9 @@ - + Overview - + diff --git a/static/rule-java-docs/overview-tree.html b/static/rule-java-docs/overview-tree.html index 992fbc750..7f09937f6 100644 --- a/static/rule-java-docs/overview-tree.html +++ b/static/rule-java-docs/overview-tree.html @@ -2,9 +2,9 @@ - + Class Hierarchy - + @@ -179,15 +179,15 @@ diff --git a/static/rule-java-docs/sailpoint/api/SailPointContext.html b/static/rule-java-docs/sailpoint/api/SailPointContext.html index 04d6af249..4b62d32b0 100644 --- a/static/rule-java-docs/sailpoint/api/SailPointContext.html +++ b/static/rule-java-docs/sailpoint/api/SailPointContext.html @@ -2,9 +2,9 @@ - + SailPointContext - + diff --git a/static/rule-java-docs/sailpoint/api/package-frame.html b/static/rule-java-docs/sailpoint/api/package-frame.html index db2000655..25c180ed1 100644 --- a/static/rule-java-docs/sailpoint/api/package-frame.html +++ b/static/rule-java-docs/sailpoint/api/package-frame.html @@ -2,9 +2,9 @@ - + sailpoint.api - + diff --git a/static/rule-java-docs/sailpoint/api/package-summary.html b/static/rule-java-docs/sailpoint/api/package-summary.html index bbdea3ca5..d5b15614b 100644 --- a/static/rule-java-docs/sailpoint/api/package-summary.html +++ b/static/rule-java-docs/sailpoint/api/package-summary.html @@ -2,9 +2,9 @@ - + sailpoint.api - + diff --git a/static/rule-java-docs/sailpoint/api/package-tree.html b/static/rule-java-docs/sailpoint/api/package-tree.html index d84dbd6c8..58dc0110e 100644 --- a/static/rule-java-docs/sailpoint/api/package-tree.html +++ b/static/rule-java-docs/sailpoint/api/package-tree.html @@ -2,9 +2,9 @@ - + sailpoint.api Class Hierarchy - + diff --git a/static/rule-java-docs/sailpoint/connector/DelimitedFileConnector.html b/static/rule-java-docs/sailpoint/connector/DelimitedFileConnector.html index b03c5d73e..96deea37d 100644 --- a/static/rule-java-docs/sailpoint/connector/DelimitedFileConnector.html +++ b/static/rule-java-docs/sailpoint/connector/DelimitedFileConnector.html @@ -2,9 +2,9 @@ - + DelimitedFileConnector - + diff --git a/static/rule-java-docs/sailpoint/connector/package-frame.html b/static/rule-java-docs/sailpoint/connector/package-frame.html index 8186898b8..9e82b37a2 100644 --- a/static/rule-java-docs/sailpoint/connector/package-frame.html +++ b/static/rule-java-docs/sailpoint/connector/package-frame.html @@ -2,9 +2,9 @@ - + sailpoint.connector - + diff --git a/static/rule-java-docs/sailpoint/connector/package-summary.html b/static/rule-java-docs/sailpoint/connector/package-summary.html index b15fa8231..6a7d26050 100644 --- a/static/rule-java-docs/sailpoint/connector/package-summary.html +++ b/static/rule-java-docs/sailpoint/connector/package-summary.html @@ -2,9 +2,9 @@ - + sailpoint.connector - + diff --git a/static/rule-java-docs/sailpoint/connector/package-tree.html b/static/rule-java-docs/sailpoint/connector/package-tree.html index 2ec7168d1..3d119feda 100644 --- a/static/rule-java-docs/sailpoint/connector/package-tree.html +++ b/static/rule-java-docs/sailpoint/connector/package-tree.html @@ -2,9 +2,9 @@ - + sailpoint.connector Class Hierarchy - + diff --git a/static/rule-java-docs/sailpoint/connector/webservices/Endpoint.html b/static/rule-java-docs/sailpoint/connector/webservices/Endpoint.html index e9d3d498e..46ec89a3f 100644 --- a/static/rule-java-docs/sailpoint/connector/webservices/Endpoint.html +++ b/static/rule-java-docs/sailpoint/connector/webservices/Endpoint.html @@ -2,9 +2,9 @@ - + Endpoint - + diff --git a/static/rule-java-docs/sailpoint/connector/webservices/WebServicesClient.html b/static/rule-java-docs/sailpoint/connector/webservices/WebServicesClient.html index dad4c19f5..675d4a6b1 100644 --- a/static/rule-java-docs/sailpoint/connector/webservices/WebServicesClient.html +++ b/static/rule-java-docs/sailpoint/connector/webservices/WebServicesClient.html @@ -2,9 +2,9 @@ - + WebServicesClient - + diff --git a/static/rule-java-docs/sailpoint/connector/webservices/package-frame.html b/static/rule-java-docs/sailpoint/connector/webservices/package-frame.html index fa1baf365..08901f4b8 100644 --- a/static/rule-java-docs/sailpoint/connector/webservices/package-frame.html +++ b/static/rule-java-docs/sailpoint/connector/webservices/package-frame.html @@ -2,9 +2,9 @@ - + sailpoint.connector.webservices - + diff --git a/static/rule-java-docs/sailpoint/connector/webservices/package-summary.html b/static/rule-java-docs/sailpoint/connector/webservices/package-summary.html index 76cc4ce8e..48a8b0db8 100644 --- a/static/rule-java-docs/sailpoint/connector/webservices/package-summary.html +++ b/static/rule-java-docs/sailpoint/connector/webservices/package-summary.html @@ -2,9 +2,9 @@ - + sailpoint.connector.webservices - + diff --git a/static/rule-java-docs/sailpoint/connector/webservices/package-tree.html b/static/rule-java-docs/sailpoint/connector/webservices/package-tree.html index 3e50addbb..ef64fc07c 100644 --- a/static/rule-java-docs/sailpoint/connector/webservices/package-tree.html +++ b/static/rule-java-docs/sailpoint/connector/webservices/package-tree.html @@ -2,9 +2,9 @@ - + sailpoint.connector.webservices Class Hierarchy - + diff --git a/static/rule-java-docs/sailpoint/object/Application.html b/static/rule-java-docs/sailpoint/object/Application.html index a51e2ec4c..677bc6056 100644 --- a/static/rule-java-docs/sailpoint/object/Application.html +++ b/static/rule-java-docs/sailpoint/object/Application.html @@ -2,9 +2,9 @@ - + Application - + diff --git a/static/rule-java-docs/sailpoint/object/AttributeDefinition.html b/static/rule-java-docs/sailpoint/object/AttributeDefinition.html index 7bbdcb2ce..ddeea97d0 100644 --- a/static/rule-java-docs/sailpoint/object/AttributeDefinition.html +++ b/static/rule-java-docs/sailpoint/object/AttributeDefinition.html @@ -2,9 +2,9 @@ - + AttributeDefinition - + diff --git a/static/rule-java-docs/sailpoint/object/Attributes.html b/static/rule-java-docs/sailpoint/object/Attributes.html index 3c5d82cda..1313ea09e 100644 --- a/static/rule-java-docs/sailpoint/object/Attributes.html +++ b/static/rule-java-docs/sailpoint/object/Attributes.html @@ -2,9 +2,9 @@ - + Attributes - + diff --git a/static/rule-java-docs/sailpoint/object/BaseAttributeDefinition.html b/static/rule-java-docs/sailpoint/object/BaseAttributeDefinition.html index 9a404ae21..40d62bee2 100644 --- a/static/rule-java-docs/sailpoint/object/BaseAttributeDefinition.html +++ b/static/rule-java-docs/sailpoint/object/BaseAttributeDefinition.html @@ -2,9 +2,9 @@ - + BaseAttributeDefinition - + diff --git a/static/rule-java-docs/sailpoint/object/Bundle.html b/static/rule-java-docs/sailpoint/object/Bundle.html index 2de7a7b4d..f9c86c758 100644 --- a/static/rule-java-docs/sailpoint/object/Bundle.html +++ b/static/rule-java-docs/sailpoint/object/Bundle.html @@ -2,9 +2,9 @@ - + Bundle - + diff --git a/static/rule-java-docs/sailpoint/object/Entitlement.html b/static/rule-java-docs/sailpoint/object/Entitlement.html index 1d63467d4..f3f6343f8 100644 --- a/static/rule-java-docs/sailpoint/object/Entitlement.html +++ b/static/rule-java-docs/sailpoint/object/Entitlement.html @@ -2,9 +2,9 @@ - + Entitlement - + diff --git a/static/rule-java-docs/sailpoint/object/Field.html b/static/rule-java-docs/sailpoint/object/Field.html index a824490c5..943c4974d 100644 --- a/static/rule-java-docs/sailpoint/object/Field.html +++ b/static/rule-java-docs/sailpoint/object/Field.html @@ -2,9 +2,9 @@ - + Field - + diff --git a/static/rule-java-docs/sailpoint/object/Filter.BaseFilterVisitor.html b/static/rule-java-docs/sailpoint/object/Filter.BaseFilterVisitor.html index 7951b6a55..0fd81b57e 100644 --- a/static/rule-java-docs/sailpoint/object/Filter.BaseFilterVisitor.html +++ b/static/rule-java-docs/sailpoint/object/Filter.BaseFilterVisitor.html @@ -2,9 +2,9 @@ - + Filter.BaseFilterVisitor - + diff --git a/static/rule-java-docs/sailpoint/object/Filter.BooleanOperation.html b/static/rule-java-docs/sailpoint/object/Filter.BooleanOperation.html index 530fb5d4e..3f992034e 100644 --- a/static/rule-java-docs/sailpoint/object/Filter.BooleanOperation.html +++ b/static/rule-java-docs/sailpoint/object/Filter.BooleanOperation.html @@ -2,9 +2,9 @@ - + Filter.BooleanOperation - + diff --git a/static/rule-java-docs/sailpoint/object/Filter.CompositeFilter.html b/static/rule-java-docs/sailpoint/object/Filter.CompositeFilter.html index b68bc4cdf..665dc701e 100644 --- a/static/rule-java-docs/sailpoint/object/Filter.CompositeFilter.html +++ b/static/rule-java-docs/sailpoint/object/Filter.CompositeFilter.html @@ -2,9 +2,9 @@ - + Filter.CompositeFilter - + diff --git a/static/rule-java-docs/sailpoint/object/Filter.FilterCompiler.IdentitiferLookAhead.html b/static/rule-java-docs/sailpoint/object/Filter.FilterCompiler.IdentitiferLookAhead.html index 0d47cff1f..5e8df7452 100644 --- a/static/rule-java-docs/sailpoint/object/Filter.FilterCompiler.IdentitiferLookAhead.html +++ b/static/rule-java-docs/sailpoint/object/Filter.FilterCompiler.IdentitiferLookAhead.html @@ -2,9 +2,9 @@ - + Filter.FilterCompiler.IdentitiferLookAhead - + diff --git a/static/rule-java-docs/sailpoint/object/Filter.FilterCompiler.html b/static/rule-java-docs/sailpoint/object/Filter.FilterCompiler.html index 4022fe037..558c503cd 100644 --- a/static/rule-java-docs/sailpoint/object/Filter.FilterCompiler.html +++ b/static/rule-java-docs/sailpoint/object/Filter.FilterCompiler.html @@ -2,9 +2,9 @@ - + Filter.FilterCompiler - + diff --git a/static/rule-java-docs/sailpoint/object/Filter.FilterVisitor.html b/static/rule-java-docs/sailpoint/object/Filter.FilterVisitor.html index f6e41a7fe..69c047852 100644 --- a/static/rule-java-docs/sailpoint/object/Filter.FilterVisitor.html +++ b/static/rule-java-docs/sailpoint/object/Filter.FilterVisitor.html @@ -2,9 +2,9 @@ - + Filter.FilterVisitor - + diff --git a/static/rule-java-docs/sailpoint/object/Filter.LeafFilter.html b/static/rule-java-docs/sailpoint/object/Filter.LeafFilter.html index 497d056cf..03246a87b 100644 --- a/static/rule-java-docs/sailpoint/object/Filter.LeafFilter.html +++ b/static/rule-java-docs/sailpoint/object/Filter.LeafFilter.html @@ -2,9 +2,9 @@ - + Filter.LeafFilter - + diff --git a/static/rule-java-docs/sailpoint/object/Filter.LogicalOperation.html b/static/rule-java-docs/sailpoint/object/Filter.LogicalOperation.html index 5d9d3fe02..7d94ba1fc 100644 --- a/static/rule-java-docs/sailpoint/object/Filter.LogicalOperation.html +++ b/static/rule-java-docs/sailpoint/object/Filter.LogicalOperation.html @@ -2,9 +2,9 @@ - + Filter.LogicalOperation - + diff --git a/static/rule-java-docs/sailpoint/object/Filter.MatchMode.html b/static/rule-java-docs/sailpoint/object/Filter.MatchMode.html index be7ef7558..54e21bc3d 100644 --- a/static/rule-java-docs/sailpoint/object/Filter.MatchMode.html +++ b/static/rule-java-docs/sailpoint/object/Filter.MatchMode.html @@ -2,9 +2,9 @@ - + Filter.MatchMode - + diff --git a/static/rule-java-docs/sailpoint/object/Filter.ValueEscapeStyle.html b/static/rule-java-docs/sailpoint/object/Filter.ValueEscapeStyle.html index e7240bed0..0a698cb65 100644 --- a/static/rule-java-docs/sailpoint/object/Filter.ValueEscapeStyle.html +++ b/static/rule-java-docs/sailpoint/object/Filter.ValueEscapeStyle.html @@ -2,9 +2,9 @@ - + Filter.ValueEscapeStyle - + diff --git a/static/rule-java-docs/sailpoint/object/Filter.html b/static/rule-java-docs/sailpoint/object/Filter.html index 4d65dfdbc..b19f97e90 100644 --- a/static/rule-java-docs/sailpoint/object/Filter.html +++ b/static/rule-java-docs/sailpoint/object/Filter.html @@ -2,9 +2,9 @@ - + Filter - + diff --git a/static/rule-java-docs/sailpoint/object/Identity.html b/static/rule-java-docs/sailpoint/object/Identity.html index 4a89f9045..ed2169a97 100644 --- a/static/rule-java-docs/sailpoint/object/Identity.html +++ b/static/rule-java-docs/sailpoint/object/Identity.html @@ -2,9 +2,9 @@ - + Identity - + diff --git a/static/rule-java-docs/sailpoint/object/IntegrationConfig.html b/static/rule-java-docs/sailpoint/object/IntegrationConfig.html index 3a0f104f8..db4987322 100644 --- a/static/rule-java-docs/sailpoint/object/IntegrationConfig.html +++ b/static/rule-java-docs/sailpoint/object/IntegrationConfig.html @@ -2,9 +2,9 @@ - + IntegrationConfig - + diff --git a/static/rule-java-docs/sailpoint/object/Link.html b/static/rule-java-docs/sailpoint/object/Link.html index 00fff9f02..54d65832a 100644 --- a/static/rule-java-docs/sailpoint/object/Link.html +++ b/static/rule-java-docs/sailpoint/object/Link.html @@ -2,9 +2,9 @@ - + Link - + diff --git a/static/rule-java-docs/sailpoint/object/ManagedAttribute.Type.html b/static/rule-java-docs/sailpoint/object/ManagedAttribute.Type.html index e7a028040..80fd5eaed 100644 --- a/static/rule-java-docs/sailpoint/object/ManagedAttribute.Type.html +++ b/static/rule-java-docs/sailpoint/object/ManagedAttribute.Type.html @@ -2,9 +2,9 @@ - + ManagedAttribute.Type - + diff --git a/static/rule-java-docs/sailpoint/object/ManagedAttribute.html b/static/rule-java-docs/sailpoint/object/ManagedAttribute.html index 47642408f..b47d2d891 100644 --- a/static/rule-java-docs/sailpoint/object/ManagedAttribute.html +++ b/static/rule-java-docs/sailpoint/object/ManagedAttribute.html @@ -2,9 +2,9 @@ - + ManagedAttribute - + diff --git a/static/rule-java-docs/sailpoint/object/ProvisioningPlan.AbstractRequest.html b/static/rule-java-docs/sailpoint/object/ProvisioningPlan.AbstractRequest.html index b8eb4c798..289c99667 100644 --- a/static/rule-java-docs/sailpoint/object/ProvisioningPlan.AbstractRequest.html +++ b/static/rule-java-docs/sailpoint/object/ProvisioningPlan.AbstractRequest.html @@ -2,9 +2,9 @@ - + ProvisioningPlan.AbstractRequest - + diff --git a/static/rule-java-docs/sailpoint/object/ProvisioningPlan.AccountRequest.Operation.html b/static/rule-java-docs/sailpoint/object/ProvisioningPlan.AccountRequest.Operation.html index 872eb5487..90d0119aa 100644 --- a/static/rule-java-docs/sailpoint/object/ProvisioningPlan.AccountRequest.Operation.html +++ b/static/rule-java-docs/sailpoint/object/ProvisioningPlan.AccountRequest.Operation.html @@ -2,9 +2,9 @@ - + ProvisioningPlan.AccountRequest.Operation - + diff --git a/static/rule-java-docs/sailpoint/object/ProvisioningPlan.AccountRequest.html b/static/rule-java-docs/sailpoint/object/ProvisioningPlan.AccountRequest.html index 517d3cd90..df015ef0c 100644 --- a/static/rule-java-docs/sailpoint/object/ProvisioningPlan.AccountRequest.html +++ b/static/rule-java-docs/sailpoint/object/ProvisioningPlan.AccountRequest.html @@ -2,9 +2,9 @@ - + ProvisioningPlan.AccountRequest - + diff --git a/static/rule-java-docs/sailpoint/object/ProvisioningPlan.AttributeRequest.html b/static/rule-java-docs/sailpoint/object/ProvisioningPlan.AttributeRequest.html index a886cae9f..b8feea1ba 100644 --- a/static/rule-java-docs/sailpoint/object/ProvisioningPlan.AttributeRequest.html +++ b/static/rule-java-docs/sailpoint/object/ProvisioningPlan.AttributeRequest.html @@ -2,9 +2,9 @@ - + ProvisioningPlan.AttributeRequest - + diff --git a/static/rule-java-docs/sailpoint/object/ProvisioningPlan.GenericRequest.html b/static/rule-java-docs/sailpoint/object/ProvisioningPlan.GenericRequest.html index 551c5f20c..86cd0902c 100644 --- a/static/rule-java-docs/sailpoint/object/ProvisioningPlan.GenericRequest.html +++ b/static/rule-java-docs/sailpoint/object/ProvisioningPlan.GenericRequest.html @@ -2,9 +2,9 @@ - + ProvisioningPlan.GenericRequest - + diff --git a/static/rule-java-docs/sailpoint/object/ProvisioningPlan.ObjectOperation.html b/static/rule-java-docs/sailpoint/object/ProvisioningPlan.ObjectOperation.html index d851fda7e..25d02cf14 100644 --- a/static/rule-java-docs/sailpoint/object/ProvisioningPlan.ObjectOperation.html +++ b/static/rule-java-docs/sailpoint/object/ProvisioningPlan.ObjectOperation.html @@ -2,9 +2,9 @@ - + ProvisioningPlan.ObjectOperation - + diff --git a/static/rule-java-docs/sailpoint/object/ProvisioningPlan.ObjectRequest.html b/static/rule-java-docs/sailpoint/object/ProvisioningPlan.ObjectRequest.html index 57541cf53..f45aa0630 100644 --- a/static/rule-java-docs/sailpoint/object/ProvisioningPlan.ObjectRequest.html +++ b/static/rule-java-docs/sailpoint/object/ProvisioningPlan.ObjectRequest.html @@ -2,9 +2,9 @@ - + ProvisioningPlan.ObjectRequest - + diff --git a/static/rule-java-docs/sailpoint/object/ProvisioningPlan.Operation.html b/static/rule-java-docs/sailpoint/object/ProvisioningPlan.Operation.html index 9c36e2668..f118d7e60 100644 --- a/static/rule-java-docs/sailpoint/object/ProvisioningPlan.Operation.html +++ b/static/rule-java-docs/sailpoint/object/ProvisioningPlan.Operation.html @@ -2,9 +2,9 @@ - + ProvisioningPlan.Operation - + diff --git a/static/rule-java-docs/sailpoint/object/ProvisioningPlan.PermissionRequest.html b/static/rule-java-docs/sailpoint/object/ProvisioningPlan.PermissionRequest.html index 3f7d2833f..3999cda92 100644 --- a/static/rule-java-docs/sailpoint/object/ProvisioningPlan.PermissionRequest.html +++ b/static/rule-java-docs/sailpoint/object/ProvisioningPlan.PermissionRequest.html @@ -2,9 +2,9 @@ - + ProvisioningPlan.PermissionRequest - + diff --git a/static/rule-java-docs/sailpoint/object/ProvisioningPlan.html b/static/rule-java-docs/sailpoint/object/ProvisioningPlan.html index f9f64e327..89c5bcca4 100644 --- a/static/rule-java-docs/sailpoint/object/ProvisioningPlan.html +++ b/static/rule-java-docs/sailpoint/object/ProvisioningPlan.html @@ -2,9 +2,9 @@ - + ProvisioningPlan - + @@ -1740,9 +1740,9 @@ public ProvisioningPlan.Operation op, - java.lang.Object value) + java.lang.String attname, + ProvisioningPlan.Operation op, + java.lang.Object value)
    Deprecated. 
    @@ -1754,8 +1754,8 @@ public void add(java.lang.String appname,

    add

    @Deprecated
     public void add(java.lang.String appname,
    -                            java.lang.String attname,
    -                            java.lang.Object value)
    + java.lang.String attname, + java.lang.Object value)
    Deprecated. 
    @@ -1767,8 +1767,8 @@ public void add(java.lang.String appname,

    remove

    @Deprecated
     public void remove(java.lang.String appname,
    -                               java.lang.String attname,
    -                               java.lang.Object value)
    + java.lang.String attname, + java.lang.Object value)
    Deprecated. 
    @@ -1780,8 +1780,8 @@ public void remove(java.lang.String appname,

    set

    @Deprecated
     public void set(java.lang.String appname,
    -                            java.lang.String attname,
    -                            java.lang.Object value)
    + java.lang.String attname, + java.lang.Object value)
    Deprecated. 
    diff --git a/static/rule-java-docs/sailpoint/object/ProvisioningResult.html b/static/rule-java-docs/sailpoint/object/ProvisioningResult.html index b1e0800f9..0b2d1592b 100644 --- a/static/rule-java-docs/sailpoint/object/ProvisioningResult.html +++ b/static/rule-java-docs/sailpoint/object/ProvisioningResult.html @@ -2,9 +2,9 @@ - + ProvisioningResult - + @@ -18,7 +18,7 @@ catch(err) { } //--> -var methods = {"i0":10,"i1":10,"i2":10,"i3":10,"i4":10}; +var methods = {"i0":10,"i1":10,"i2":10,"i3":10,"i4":10,"i5":10,"i6":10}; var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]}; var altColor = "altColor"; var rowColor = "rowColor"; @@ -177,22 +177,34 @@ extends java.lang.Object Method and Description +void +addError(java.lang.String s) +
    This method adds the provided string as an error to the ProvisioningResult
    + + + +void +addWarning(java.lang.String s) +
    This method adds the provided string as a warning to the ProvisioningResult
    + + + ResourceObject getObject()  - + java.lang.String getStatus()  - + java.lang.String getTargetIntegration()  - + void setStatus(java.lang.String s)  - + void setTargetIntegration(java.lang.String s)  @@ -334,12 +346,40 @@ extends java.lang.Object -
      + + + + +
        +
      • +

        addError

        +
        public void addError(java.lang.String s)
        +
        This method adds the provided string as an error to the ProvisioningResult
        +
        +
        Parameters:
        +
        s - the error message to add to the ProvisioningResult
        +
        +
      • +
      + + + +
        +
      • +

        addWarning

        +
        public void addWarning(java.lang.String s)
        +
        This method adds the provided string as a warning to the ProvisioningResult
        +
        +
        Parameters:
        +
        s - the warning message to add to the ProvisioningResult
        +
        +
      • +
    diff --git a/static/rule-java-docs/sailpoint/object/QueryOptions.Ordering.html b/static/rule-java-docs/sailpoint/object/QueryOptions.Ordering.html index 6dda26140..7a92cb023 100644 --- a/static/rule-java-docs/sailpoint/object/QueryOptions.Ordering.html +++ b/static/rule-java-docs/sailpoint/object/QueryOptions.Ordering.html @@ -2,9 +2,9 @@ - + QueryOptions.Ordering - + diff --git a/static/rule-java-docs/sailpoint/object/QueryOptions.html b/static/rule-java-docs/sailpoint/object/QueryOptions.html index 16ad7847f..c28e17981 100644 --- a/static/rule-java-docs/sailpoint/object/QueryOptions.html +++ b/static/rule-java-docs/sailpoint/object/QueryOptions.html @@ -2,9 +2,9 @@ - + QueryOptions - + diff --git a/static/rule-java-docs/sailpoint/object/ResourceObject.html b/static/rule-java-docs/sailpoint/object/ResourceObject.html index 28b71ddb1..05b246503 100644 --- a/static/rule-java-docs/sailpoint/object/ResourceObject.html +++ b/static/rule-java-docs/sailpoint/object/ResourceObject.html @@ -2,9 +2,9 @@ - + ResourceObject - + diff --git a/static/rule-java-docs/sailpoint/object/RoleAssignment.html b/static/rule-java-docs/sailpoint/object/RoleAssignment.html index 7c1b533c4..9c43f75dc 100644 --- a/static/rule-java-docs/sailpoint/object/RoleAssignment.html +++ b/static/rule-java-docs/sailpoint/object/RoleAssignment.html @@ -2,9 +2,9 @@ - + RoleAssignment - + diff --git a/static/rule-java-docs/sailpoint/object/Schema.html b/static/rule-java-docs/sailpoint/object/Schema.html index e99e89df3..6f9ec1c8a 100644 --- a/static/rule-java-docs/sailpoint/object/Schema.html +++ b/static/rule-java-docs/sailpoint/object/Schema.html @@ -2,9 +2,9 @@ - + Schema - + diff --git a/static/rule-java-docs/sailpoint/object/package-frame.html b/static/rule-java-docs/sailpoint/object/package-frame.html index b84e94549..d5290c493 100644 --- a/static/rule-java-docs/sailpoint/object/package-frame.html +++ b/static/rule-java-docs/sailpoint/object/package-frame.html @@ -2,9 +2,9 @@ - + sailpoint.object - + diff --git a/static/rule-java-docs/sailpoint/object/package-summary.html b/static/rule-java-docs/sailpoint/object/package-summary.html index 63a1c29a6..4bae17aac 100644 --- a/static/rule-java-docs/sailpoint/object/package-summary.html +++ b/static/rule-java-docs/sailpoint/object/package-summary.html @@ -2,9 +2,9 @@ - + sailpoint.object - + diff --git a/static/rule-java-docs/sailpoint/object/package-tree.html b/static/rule-java-docs/sailpoint/object/package-tree.html index 39b8ef75c..6f7ed500d 100644 --- a/static/rule-java-docs/sailpoint/object/package-tree.html +++ b/static/rule-java-docs/sailpoint/object/package-tree.html @@ -2,9 +2,9 @@ - + sailpoint.object Class Hierarchy - + @@ -159,14 +159,14 @@ diff --git a/static/rule-java-docs/sailpoint/rule/Account.html b/static/rule-java-docs/sailpoint/rule/Account.html index 511f7a4c8..244e8efdf 100644 --- a/static/rule-java-docs/sailpoint/rule/Account.html +++ b/static/rule-java-docs/sailpoint/rule/Account.html @@ -2,9 +2,9 @@ - + Account - + diff --git a/static/rule-java-docs/sailpoint/rule/Identity.html b/static/rule-java-docs/sailpoint/rule/Identity.html index 7391e16e3..aa389542b 100644 --- a/static/rule-java-docs/sailpoint/rule/Identity.html +++ b/static/rule-java-docs/sailpoint/rule/Identity.html @@ -2,9 +2,9 @@ - + Identity - + diff --git a/static/rule-java-docs/sailpoint/rule/ManagedAttributeDetails.html b/static/rule-java-docs/sailpoint/rule/ManagedAttributeDetails.html index f22061503..b655a6697 100644 --- a/static/rule-java-docs/sailpoint/rule/ManagedAttributeDetails.html +++ b/static/rule-java-docs/sailpoint/rule/ManagedAttributeDetails.html @@ -2,9 +2,9 @@ - + ManagedAttributeDetails - + diff --git a/static/rule-java-docs/sailpoint/rule/package-frame.html b/static/rule-java-docs/sailpoint/rule/package-frame.html index 1a3d1a4f9..ad27e7875 100644 --- a/static/rule-java-docs/sailpoint/rule/package-frame.html +++ b/static/rule-java-docs/sailpoint/rule/package-frame.html @@ -2,9 +2,9 @@ - + sailpoint.rule - + diff --git a/static/rule-java-docs/sailpoint/rule/package-summary.html b/static/rule-java-docs/sailpoint/rule/package-summary.html index 3f4ed474c..6d473267b 100644 --- a/static/rule-java-docs/sailpoint/rule/package-summary.html +++ b/static/rule-java-docs/sailpoint/rule/package-summary.html @@ -2,9 +2,9 @@ - + sailpoint.rule - + diff --git a/static/rule-java-docs/sailpoint/rule/package-tree.html b/static/rule-java-docs/sailpoint/rule/package-tree.html index 1f9dd9f0e..a84fef113 100644 --- a/static/rule-java-docs/sailpoint/rule/package-tree.html +++ b/static/rule-java-docs/sailpoint/rule/package-tree.html @@ -2,9 +2,9 @@ - + sailpoint.rule Class Hierarchy - + diff --git a/static/rule-java-docs/sailpoint/server/IdnRuleUtil.html b/static/rule-java-docs/sailpoint/server/IdnRuleUtil.html index 98d5800ee..74fdde2bf 100644 --- a/static/rule-java-docs/sailpoint/server/IdnRuleUtil.html +++ b/static/rule-java-docs/sailpoint/server/IdnRuleUtil.html @@ -2,9 +2,9 @@ - + IdnRuleUtil - + diff --git a/static/rule-java-docs/sailpoint/server/package-frame.html b/static/rule-java-docs/sailpoint/server/package-frame.html index 6fc03463c..b933c8b5b 100644 --- a/static/rule-java-docs/sailpoint/server/package-frame.html +++ b/static/rule-java-docs/sailpoint/server/package-frame.html @@ -2,9 +2,9 @@ - + sailpoint.server - + diff --git a/static/rule-java-docs/sailpoint/server/package-summary.html b/static/rule-java-docs/sailpoint/server/package-summary.html index 794fbedfb..bf61a422e 100644 --- a/static/rule-java-docs/sailpoint/server/package-summary.html +++ b/static/rule-java-docs/sailpoint/server/package-summary.html @@ -2,9 +2,9 @@ - + sailpoint.server - + diff --git a/static/rule-java-docs/sailpoint/server/package-tree.html b/static/rule-java-docs/sailpoint/server/package-tree.html index 17bd839f4..0369e80cf 100644 --- a/static/rule-java-docs/sailpoint/server/package-tree.html +++ b/static/rule-java-docs/sailpoint/server/package-tree.html @@ -2,9 +2,9 @@ - + sailpoint.server Class Hierarchy - + diff --git a/static/rule-java-docs/sailpoint/tools/Message.Type.html b/static/rule-java-docs/sailpoint/tools/Message.Type.html index 784ba90c9..86d76c487 100644 --- a/static/rule-java-docs/sailpoint/tools/Message.Type.html +++ b/static/rule-java-docs/sailpoint/tools/Message.Type.html @@ -2,9 +2,9 @@ - + Message.Type - + diff --git a/static/rule-java-docs/sailpoint/tools/Message.html b/static/rule-java-docs/sailpoint/tools/Message.html index 6300d4aee..e07d305b7 100644 --- a/static/rule-java-docs/sailpoint/tools/Message.html +++ b/static/rule-java-docs/sailpoint/tools/Message.html @@ -2,9 +2,9 @@ - + Message - + diff --git a/static/rule-java-docs/sailpoint/tools/package-frame.html b/static/rule-java-docs/sailpoint/tools/package-frame.html index 6b208902f..8736c917b 100644 --- a/static/rule-java-docs/sailpoint/tools/package-frame.html +++ b/static/rule-java-docs/sailpoint/tools/package-frame.html @@ -2,9 +2,9 @@ - + sailpoint.tools - + diff --git a/static/rule-java-docs/sailpoint/tools/package-summary.html b/static/rule-java-docs/sailpoint/tools/package-summary.html index 75c86c424..b4388dd51 100644 --- a/static/rule-java-docs/sailpoint/tools/package-summary.html +++ b/static/rule-java-docs/sailpoint/tools/package-summary.html @@ -2,9 +2,9 @@ - + sailpoint.tools - + diff --git a/static/rule-java-docs/sailpoint/tools/package-tree.html b/static/rule-java-docs/sailpoint/tools/package-tree.html index 49e0eb8d0..c3c5b15f9 100644 --- a/static/rule-java-docs/sailpoint/tools/package-tree.html +++ b/static/rule-java-docs/sailpoint/tools/package-tree.html @@ -2,9 +2,9 @@ - + sailpoint.tools Class Hierarchy - + diff --git a/static/rule-java-docs/serialized-form.html b/static/rule-java-docs/serialized-form.html index 9f654a81e..2f05b02cd 100644 --- a/static/rule-java-docs/serialized-form.html +++ b/static/rule-java-docs/serialized-form.html @@ -2,9 +2,9 @@ - + Serialized Form - + From 679bef01b182ea5b689e26decaae2a0ef84394a6 Mon Sep 17 00:00:00 2001 From: Tyler Mairose Date: Fri, 12 Jul 2024 08:50:18 -0400 Subject: [PATCH 66/74] Fix json code blocks --- docusaurus.config.js | 1 + 1 file changed, 1 insertion(+) diff --git a/docusaurus.config.js b/docusaurus.config.js index ccf8220cf..e61e93897 100644 --- a/docusaurus.config.js +++ b/docusaurus.config.js @@ -98,6 +98,7 @@ const config = { 'bash', 'go', 'python', + 'json' ], }, mermaid: { From 7b7e4708b9a4f05db7de9f1b686d3b6b40b582b9 Mon Sep 17 00:00:00 2001 From: GitHub Action Bot Date: Fri, 12 Jul 2024 18:13:30 +0000 Subject: [PATCH 67/74] Update to rule java docs: 9912286645 --- static/rule-java-docs/allclasses-frame.html | 6 +- static/rule-java-docs/allclasses-noframe.html | 6 +- .../connector/common/JsonUtil.JsonParser.html | 4 +- .../common/JsonUtil.JsonParserBuilder.html | 4 +- .../connector/common/JsonUtil.html | 4 +- .../rule-java-docs/connector/common/Util.html | 4 +- .../connector/common/package-frame.html | 4 +- .../connector/common/package-summary.html | 4 +- .../connector/common/package-tree.html | 4 +- static/rule-java-docs/constant-values.html | 186 +++- static/rule-java-docs/deprecated-list.html | 4 +- static/rule-java-docs/help-doc.html | 4 +- .../rule-java-docs/index-files/index-1.html | 46 +- .../rule-java-docs/index-files/index-10.html | 10 +- .../rule-java-docs/index-files/index-11.html | 4 +- .../rule-java-docs/index-files/index-12.html | 4 +- .../rule-java-docs/index-files/index-13.html | 4 +- .../rule-java-docs/index-files/index-14.html | 6 +- .../rule-java-docs/index-files/index-15.html | 8 +- .../rule-java-docs/index-files/index-16.html | 4 +- .../rule-java-docs/index-files/index-17.html | 4 +- .../rule-java-docs/index-files/index-18.html | 6 +- .../rule-java-docs/index-files/index-19.html | 4 +- .../rule-java-docs/index-files/index-2.html | 4 +- .../rule-java-docs/index-files/index-20.html | 6 +- .../rule-java-docs/index-files/index-21.html | 13 +- .../rule-java-docs/index-files/index-22.html | 4 +- .../rule-java-docs/index-files/index-23.html | 4 +- .../rule-java-docs/index-files/index-3.html | 10 +- .../rule-java-docs/index-files/index-4.html | 4 +- .../rule-java-docs/index-files/index-5.html | 8 +- .../rule-java-docs/index-files/index-6.html | 4 +- .../rule-java-docs/index-files/index-7.html | 14 +- .../rule-java-docs/index-files/index-8.html | 4 +- .../rule-java-docs/index-files/index-9.html | 6 +- static/rule-java-docs/index.html | 2 +- static/rule-java-docs/overview-frame.html | 5 +- static/rule-java-docs/overview-summary.html | 16 +- static/rule-java-docs/overview-tree.html | 7 +- static/rule-java-docs/package-list | 1 + .../sailpoint/api/SailPointContext.html | 4 +- .../sailpoint/api/package-frame.html | 4 +- .../sailpoint/api/package-summary.html | 4 +- .../sailpoint/api/package-tree.html | 4 +- .../connector/DelimitedFileConnector.html | 4 +- .../sailpoint/connector/package-frame.html | 4 +- .../sailpoint/connector/package-summary.html | 8 +- .../sailpoint/connector/package-tree.html | 8 +- .../util/JDBCUtil.ConnectorType.html | 367 +++++++ .../sailpoint/connector/util/JDBCUtil.html | 930 ++++++++++++++++++ .../connector/util/package-frame.html | 24 + .../connector/util/package-summary.html | 155 +++ .../connector/util/package-tree.html | 147 +++ .../connector/webservices/Endpoint.html | 4 +- .../webservices/WebServicesClient.html | 4 +- .../connector/webservices/package-frame.html | 4 +- .../webservices/package-summary.html | 8 +- .../connector/webservices/package-tree.html | 8 +- .../sailpoint/object/Application.html | 4 +- .../sailpoint/object/AttributeDefinition.html | 4 +- .../sailpoint/object/Attributes.html | 4 +- .../object/BaseAttributeDefinition.html | 4 +- .../sailpoint/object/Bundle.html | 4 +- .../sailpoint/object/Entitlement.html | 4 +- .../sailpoint/object/Field.html | 4 +- .../object/Filter.BaseFilterVisitor.html | 4 +- .../object/Filter.BooleanOperation.html | 4 +- .../object/Filter.CompositeFilter.html | 4 +- ...r.FilterCompiler.IdentitiferLookAhead.html | 4 +- .../object/Filter.FilterCompiler.html | 4 +- .../object/Filter.FilterVisitor.html | 4 +- .../sailpoint/object/Filter.LeafFilter.html | 4 +- .../object/Filter.LogicalOperation.html | 4 +- .../sailpoint/object/Filter.MatchMode.html | 4 +- .../object/Filter.ValueEscapeStyle.html | 4 +- .../sailpoint/object/Filter.html | 4 +- .../sailpoint/object/Identity.html | 4 +- .../sailpoint/object/IntegrationConfig.html | 4 +- .../rule-java-docs/sailpoint/object/Link.html | 4 +- .../object/ManagedAttribute.Type.html | 4 +- .../sailpoint/object/ManagedAttribute.html | 4 +- .../ProvisioningPlan.AbstractRequest.html | 4 +- ...isioningPlan.AccountRequest.Operation.html | 4 +- .../ProvisioningPlan.AccountRequest.html | 4 +- .../ProvisioningPlan.AttributeRequest.html | 4 +- .../ProvisioningPlan.GenericRequest.html | 4 +- .../ProvisioningPlan.ObjectOperation.html | 4 +- .../ProvisioningPlan.ObjectRequest.html | 4 +- .../object/ProvisioningPlan.Operation.html | 4 +- .../ProvisioningPlan.PermissionRequest.html | 4 +- .../sailpoint/object/ProvisioningPlan.html | 4 +- .../sailpoint/object/ProvisioningResult.html | 4 +- .../object/QueryOptions.Ordering.html | 4 +- .../sailpoint/object/QueryOptions.html | 4 +- .../sailpoint/object/ResourceObject.html | 4 +- .../sailpoint/object/RoleAssignment.html | 4 +- .../sailpoint/object/Schema.html | 4 +- .../sailpoint/object/package-frame.html | 4 +- .../sailpoint/object/package-summary.html | 4 +- .../sailpoint/object/package-tree.html | 12 +- .../sailpoint/rule/Account.html | 4 +- .../sailpoint/rule/Identity.html | 4 +- .../rule/ManagedAttributeDetails.html | 4 +- .../sailpoint/rule/package-frame.html | 4 +- .../sailpoint/rule/package-summary.html | 4 +- .../sailpoint/rule/package-tree.html | 4 +- .../sailpoint/server/IdnRuleUtil.html | 4 +- .../sailpoint/server/package-frame.html | 4 +- .../sailpoint/server/package-summary.html | 4 +- .../sailpoint/server/package-tree.html | 4 +- .../sailpoint/tools/Message.Type.html | 4 +- .../sailpoint/tools/Message.html | 4 +- .../sailpoint/tools/package-frame.html | 4 +- .../sailpoint/tools/package-summary.html | 4 +- .../sailpoint/tools/package-tree.html | 4 +- static/rule-java-docs/serialized-form.html | 46 +- 116 files changed, 2183 insertions(+), 236 deletions(-) create mode 100644 static/rule-java-docs/sailpoint/connector/util/JDBCUtil.ConnectorType.html create mode 100644 static/rule-java-docs/sailpoint/connector/util/JDBCUtil.html create mode 100644 static/rule-java-docs/sailpoint/connector/util/package-frame.html create mode 100644 static/rule-java-docs/sailpoint/connector/util/package-summary.html create mode 100644 static/rule-java-docs/sailpoint/connector/util/package-tree.html diff --git a/static/rule-java-docs/allclasses-frame.html b/static/rule-java-docs/allclasses-frame.html index 3ab731f66..4a024b8e1 100644 --- a/static/rule-java-docs/allclasses-frame.html +++ b/static/rule-java-docs/allclasses-frame.html @@ -2,9 +2,9 @@ - + All Classes - + @@ -37,6 +37,8 @@
  • Identity
  • IdnRuleUtil
  • IntegrationConfig
  • +
  • JDBCUtil
  • +
  • JDBCUtil.ConnectorType
  • JsonUtil
  • JsonUtil.JsonParser
  • JsonUtil.JsonParserBuilder
  • diff --git a/static/rule-java-docs/allclasses-noframe.html b/static/rule-java-docs/allclasses-noframe.html index f22acce98..031e68df3 100644 --- a/static/rule-java-docs/allclasses-noframe.html +++ b/static/rule-java-docs/allclasses-noframe.html @@ -2,9 +2,9 @@ - + All Classes - + @@ -37,6 +37,8 @@
  • Identity
  • IdnRuleUtil
  • IntegrationConfig
  • +
  • JDBCUtil
  • +
  • JDBCUtil.ConnectorType
  • JsonUtil
  • JsonUtil.JsonParser
  • JsonUtil.JsonParserBuilder
  • diff --git a/static/rule-java-docs/connector/common/JsonUtil.JsonParser.html b/static/rule-java-docs/connector/common/JsonUtil.JsonParser.html index 1d32f2da9..02e1a6b1c 100644 --- a/static/rule-java-docs/connector/common/JsonUtil.JsonParser.html +++ b/static/rule-java-docs/connector/common/JsonUtil.JsonParser.html @@ -2,9 +2,9 @@ - + JsonUtil.JsonParser - + diff --git a/static/rule-java-docs/connector/common/JsonUtil.JsonParserBuilder.html b/static/rule-java-docs/connector/common/JsonUtil.JsonParserBuilder.html index 7455f6873..2af1cf131 100644 --- a/static/rule-java-docs/connector/common/JsonUtil.JsonParserBuilder.html +++ b/static/rule-java-docs/connector/common/JsonUtil.JsonParserBuilder.html @@ -2,9 +2,9 @@ - + JsonUtil.JsonParserBuilder - + diff --git a/static/rule-java-docs/connector/common/JsonUtil.html b/static/rule-java-docs/connector/common/JsonUtil.html index 94bd8e8a8..0bdcd2f4a 100644 --- a/static/rule-java-docs/connector/common/JsonUtil.html +++ b/static/rule-java-docs/connector/common/JsonUtil.html @@ -2,9 +2,9 @@ - + JsonUtil - + diff --git a/static/rule-java-docs/connector/common/Util.html b/static/rule-java-docs/connector/common/Util.html index 4a982b961..b7850b017 100644 --- a/static/rule-java-docs/connector/common/Util.html +++ b/static/rule-java-docs/connector/common/Util.html @@ -2,9 +2,9 @@ - + Util - + diff --git a/static/rule-java-docs/connector/common/package-frame.html b/static/rule-java-docs/connector/common/package-frame.html index febb10d5b..03b0f4221 100644 --- a/static/rule-java-docs/connector/common/package-frame.html +++ b/static/rule-java-docs/connector/common/package-frame.html @@ -2,9 +2,9 @@ - + connector.common - + diff --git a/static/rule-java-docs/connector/common/package-summary.html b/static/rule-java-docs/connector/common/package-summary.html index 08fbe8aa8..d0cef75c4 100644 --- a/static/rule-java-docs/connector/common/package-summary.html +++ b/static/rule-java-docs/connector/common/package-summary.html @@ -2,9 +2,9 @@ - + connector.common - + diff --git a/static/rule-java-docs/connector/common/package-tree.html b/static/rule-java-docs/connector/common/package-tree.html index 7b7e2fbf6..ee40439f2 100644 --- a/static/rule-java-docs/connector/common/package-tree.html +++ b/static/rule-java-docs/connector/common/package-tree.html @@ -2,9 +2,9 @@ - + connector.common Class Hierarchy - + diff --git a/static/rule-java-docs/constant-values.html b/static/rule-java-docs/constant-values.html index ed013151d..c5fa39841 100644 --- a/static/rule-java-docs/constant-values.html +++ b/static/rule-java-docs/constant-values.html @@ -2,9 +2,9 @@ - + Constant Field Values - + @@ -72,11 +72,191 @@

    Constant Field Values

    Contents

    -
    +
    + + +

    sailpoint.connector.*

    + +

    sailpoint.object.*

    diff --git a/static/rule-java-docs/deprecated-list.html b/static/rule-java-docs/deprecated-list.html index db2738030..0b28b75e1 100644 --- a/static/rule-java-docs/deprecated-list.html +++ b/static/rule-java-docs/deprecated-list.html @@ -2,9 +2,9 @@ - + Deprecated List - + diff --git a/static/rule-java-docs/help-doc.html b/static/rule-java-docs/help-doc.html index c7b097d91..6c73870bb 100644 --- a/static/rule-java-docs/help-doc.html +++ b/static/rule-java-docs/help-doc.html @@ -2,9 +2,9 @@ - + API Help - + diff --git a/static/rule-java-docs/index-files/index-1.html b/static/rule-java-docs/index-files/index-1.html index 337fc3ab0..6ba4a8731 100644 --- a/static/rule-java-docs/index-files/index-1.html +++ b/static/rule-java-docs/index-files/index-1.html @@ -2,9 +2,9 @@ - + A-Index - + @@ -183,6 +183,48 @@
    Application() - Constructor for class sailpoint.object.Application
     
    +
    ARG_ARG1 - Static variable in class sailpoint.connector.util.JDBCUtil
    +
     
    +
    ARG_ARG2 - Static variable in class sailpoint.connector.util.JDBCUtil
    +
     
    +
    ARG_ARG3 - Static variable in class sailpoint.connector.util.JDBCUtil
    +
     
    +
    ARG_DATABASE - Static variable in class sailpoint.connector.util.JDBCUtil
    +
     
    +
    ARG_DRIVER_CLASS - Static variable in class sailpoint.connector.util.JDBCUtil
    +
     
    +
    ARG_DRIVER_PREFIX - Static variable in class sailpoint.connector.util.JDBCUtil
    +
     
    +
    ARG_HOST - Static variable in class sailpoint.connector.util.JDBCUtil
    +
     
    +
    ARG_NEWPASSWORD - Static variable in class sailpoint.connector.util.JDBCUtil
    +
     
    +
    ARG_PASSWORD - Static variable in class sailpoint.connector.util.JDBCUtil
    +
     
    +
    ARG_POOL_DISABLE - Static variable in class sailpoint.connector.util.JDBCUtil
    +
     
    +
    ARG_POOL_DISABLE_AUTO_COMMIT - Static variable in class sailpoint.connector.util.JDBCUtil
    +
     
    +
    ARG_POOL_EVICT_IDLE - Static variable in class sailpoint.connector.util.JDBCUtil
    +
     
    +
    ARG_POOL_EVICT_RUNS - Static variable in class sailpoint.connector.util.JDBCUtil
    +
     
    +
    ARG_POOL_MAX_ACTIVE - Static variable in class sailpoint.connector.util.JDBCUtil
    +
     
    +
    ARG_POOL_MAX_IDLE - Static variable in class sailpoint.connector.util.JDBCUtil
    +
     
    +
    ARG_POOL_MAX_WAIT - Static variable in class sailpoint.connector.util.JDBCUtil
    +
     
    +
    ARG_PORT - Static variable in class sailpoint.connector.util.JDBCUtil
    +
     
    +
    ARG_SQL - Static variable in class sailpoint.connector.util.JDBCUtil
    +
     
    +
    ARG_TYPE - Static variable in class sailpoint.connector.util.JDBCUtil
    +
     
    +
    ARG_URL - Static variable in class sailpoint.connector.util.JDBCUtil
    +
     
    +
    ARG_USER - Static variable in class sailpoint.connector.util.JDBCUtil
    +
     
    arrayToList(T[]) - Static method in class connector.common.Util
    Given an array, returns a list.
    diff --git a/static/rule-java-docs/index-files/index-10.html b/static/rule-java-docs/index-files/index-10.html index 79cd26f89..ef5cd2315 100644 --- a/static/rule-java-docs/index-files/index-10.html +++ b/static/rule-java-docs/index-files/index-10.html @@ -2,9 +2,9 @@ - + J-Index - + @@ -73,6 +73,12 @@

    J

    +
    JDBCUtil - Class in sailpoint.connector.util
    +
     
    +
    JDBCUtil() - Constructor for class sailpoint.connector.util.JDBCUtil
    +
     
    +
    JDBCUtil.ConnectorType - Enum in sailpoint.connector.util
    +
     
    join(String, String) - Static method in class sailpoint.object.Filter
    Join the given property to the requested fully-qualified join property.
    diff --git a/static/rule-java-docs/index-files/index-11.html b/static/rule-java-docs/index-files/index-11.html index 2e00b03d9..1c6c08fa1 100644 --- a/static/rule-java-docs/index-files/index-11.html +++ b/static/rule-java-docs/index-files/index-11.html @@ -2,9 +2,9 @@ - + L-Index - + diff --git a/static/rule-java-docs/index-files/index-12.html b/static/rule-java-docs/index-files/index-12.html index 4fda4e814..cbaae8488 100644 --- a/static/rule-java-docs/index-files/index-12.html +++ b/static/rule-java-docs/index-files/index-12.html @@ -2,9 +2,9 @@ - + M-Index - + diff --git a/static/rule-java-docs/index-files/index-13.html b/static/rule-java-docs/index-files/index-13.html index 0eb8d2ac6..bb7558abe 100644 --- a/static/rule-java-docs/index-files/index-13.html +++ b/static/rule-java-docs/index-files/index-13.html @@ -2,9 +2,9 @@ - + N-Index - + diff --git a/static/rule-java-docs/index-files/index-14.html b/static/rule-java-docs/index-files/index-14.html index ca6763418..1ebd64765 100644 --- a/static/rule-java-docs/index-files/index-14.html +++ b/static/rule-java-docs/index-files/index-14.html @@ -2,9 +2,9 @@ - + O-Index - + @@ -97,6 +97,8 @@
    Combine the given filters with an OR conjunction.
    +
    ORACLE_CLOB_HANDLER - Static variable in class sailpoint.connector.util.JDBCUtil
    +
     
    Ordering(String, boolean, boolean) - Constructor for class sailpoint.object.QueryOptions.Ordering
     
    Ordering(String, boolean) - Constructor for class sailpoint.object.QueryOptions.Ordering
    diff --git a/static/rule-java-docs/index-files/index-15.html b/static/rule-java-docs/index-files/index-15.html index 82d2f536e..aa4f4604a 100644 --- a/static/rule-java-docs/index-files/index-15.html +++ b/static/rule-java-docs/index-files/index-15.html @@ -2,9 +2,9 @@ - + P-Index - + @@ -101,6 +101,10 @@
     
    PermissionRequest(ProvisioningPlan.PermissionRequest) - Constructor for class sailpoint.object.ProvisioningPlan.PermissionRequest
     
    +
    POOL_JAR_1 - Static variable in class sailpoint.connector.util.JDBCUtil
    +
     
    +
    POOL_JAR_2 - Static variable in class sailpoint.connector.util.JDBCUtil
    +
     
    PROV_ATTRIBUTE - Static variable in class sailpoint.object.ManagedAttribute
     
    PROV_ATTRIBUTES - Static variable in class sailpoint.object.ManagedAttribute
    diff --git a/static/rule-java-docs/index-files/index-16.html b/static/rule-java-docs/index-files/index-16.html index 2498bc539..db596bbfe 100644 --- a/static/rule-java-docs/index-files/index-16.html +++ b/static/rule-java-docs/index-files/index-16.html @@ -2,9 +2,9 @@ - + Q-Index - + diff --git a/static/rule-java-docs/index-files/index-17.html b/static/rule-java-docs/index-files/index-17.html index bebd2aa48..fa880055a 100644 --- a/static/rule-java-docs/index-files/index-17.html +++ b/static/rule-java-docs/index-files/index-17.html @@ -2,9 +2,9 @@ - + R-Index - + diff --git a/static/rule-java-docs/index-files/index-18.html b/static/rule-java-docs/index-files/index-18.html index 7e740b655..09b6ae474 100644 --- a/static/rule-java-docs/index-files/index-18.html +++ b/static/rule-java-docs/index-files/index-18.html @@ -2,9 +2,9 @@ - + S-Index - + @@ -79,6 +79,8 @@
     
    sailpoint.connector - package sailpoint.connector
     
    +
    sailpoint.connector.util - package sailpoint.connector.util
    +
     
    sailpoint.connector.webservices - package sailpoint.connector.webservices
     
    sailpoint.object - package sailpoint.object
    diff --git a/static/rule-java-docs/index-files/index-19.html b/static/rule-java-docs/index-files/index-19.html index fa9b0346b..4c3d46166 100644 --- a/static/rule-java-docs/index-files/index-19.html +++ b/static/rule-java-docs/index-files/index-19.html @@ -2,9 +2,9 @@ - + T-Index - + diff --git a/static/rule-java-docs/index-files/index-2.html b/static/rule-java-docs/index-files/index-2.html index 6e1330630..017714082 100644 --- a/static/rule-java-docs/index-files/index-2.html +++ b/static/rule-java-docs/index-files/index-2.html @@ -2,9 +2,9 @@ - + B-Index - + diff --git a/static/rule-java-docs/index-files/index-20.html b/static/rule-java-docs/index-files/index-20.html index 717258f69..a980f093d 100644 --- a/static/rule-java-docs/index-files/index-20.html +++ b/static/rule-java-docs/index-files/index-20.html @@ -2,9 +2,9 @@ - + U-Index - + @@ -73,6 +73,8 @@

    U

    +
    useQuoteForScripts(String, String, String, boolean) - Static method in class sailpoint.connector.util.JDBCUtil
    +
     
    Util - Class in connector.common
     
    Util() - Constructor for class connector.common.Util
    diff --git a/static/rule-java-docs/index-files/index-21.html b/static/rule-java-docs/index-files/index-21.html index 9ecc50056..9ea4176cd 100644 --- a/static/rule-java-docs/index-files/index-21.html +++ b/static/rule-java-docs/index-files/index-21.html @@ -2,9 +2,9 @@ - + V-Index - + @@ -73,6 +73,10 @@

    V

    +
    valueOf(String) - Static method in enum sailpoint.connector.util.JDBCUtil.ConnectorType
    +
    +
    Returns the enum constant of this type with the specified name.
    +
    valueOf(String) - Static method in enum sailpoint.object.Filter.BooleanOperation
    Returns the enum constant of this type with the specified name.
    @@ -109,6 +113,11 @@
    Returns the enum constant of this type with the specified name.
    +
    values() - Static method in enum sailpoint.connector.util.JDBCUtil.ConnectorType
    +
    +
    Returns an array containing the constants of this enum type, in +the order they are declared.
    +
    values() - Static method in enum sailpoint.object.Filter.BooleanOperation
    Returns an array containing the constants of this enum type, in diff --git a/static/rule-java-docs/index-files/index-22.html b/static/rule-java-docs/index-files/index-22.html index 158b06808..7fd4cf4e5 100644 --- a/static/rule-java-docs/index-files/index-22.html +++ b/static/rule-java-docs/index-files/index-22.html @@ -2,9 +2,9 @@ - + W-Index - + diff --git a/static/rule-java-docs/index-files/index-23.html b/static/rule-java-docs/index-files/index-23.html index b61ec2751..9d65ef7d2 100644 --- a/static/rule-java-docs/index-files/index-23.html +++ b/static/rule-java-docs/index-files/index-23.html @@ -2,9 +2,9 @@ - + _-Index - + diff --git a/static/rule-java-docs/index-files/index-3.html b/static/rule-java-docs/index-files/index-3.html index c45b57af4..918a804b3 100644 --- a/static/rule-java-docs/index-files/index-3.html +++ b/static/rule-java-docs/index-files/index-3.html @@ -2,9 +2,9 @@ - + C-Index - + @@ -103,6 +103,12 @@
     
    cloneRequestProperties(ProvisioningPlan.AbstractRequest, boolean) - Method in class sailpoint.object.ProvisioningPlan.AbstractRequest
     
    +
    closeConnection(Connection) - Static method in class sailpoint.connector.util.JDBCUtil
    +
     
    +
    closeResult(ResultSet) - Static method in class sailpoint.connector.util.JDBCUtil
    +
     
    +
    closeStatement(Statement) - Static method in class sailpoint.connector.util.JDBCUtil
    +
     
    collapse(boolean) - Method in class sailpoint.object.ProvisioningPlan.AbstractRequest
     
    collapse(boolean) - Method in class sailpoint.object.ProvisioningPlan
    diff --git a/static/rule-java-docs/index-files/index-4.html b/static/rule-java-docs/index-files/index-4.html index 4d4125e8d..ade0a1786 100644 --- a/static/rule-java-docs/index-files/index-4.html +++ b/static/rule-java-docs/index-files/index-4.html @@ -2,9 +2,9 @@ - + D-Index - + diff --git a/static/rule-java-docs/index-files/index-5.html b/static/rule-java-docs/index-files/index-5.html index dcf7bfa11..eae1148aa 100644 --- a/static/rule-java-docs/index-files/index-5.html +++ b/static/rule-java-docs/index-files/index-5.html @@ -2,9 +2,9 @@ - + E-Index - + @@ -105,6 +105,10 @@
    Escapes the following metaCharacters String[] metaCharacters = new String[]{"\\", "^", "$", "{", "}", "[", "]", "(", ")", ".", "*", "+", "?", "|", "<", ">", "-", "&", "%"};
    +
    escapeSpecialCharacter(String, JDBCUtil.ConnectorType) - Static method in class sailpoint.connector.util.JDBCUtil
    +
     
    +
    escapeSpecialCharactor(String, JDBCUtil.ConnectorType) - Static method in class sailpoint.connector.util.JDBCUtil
    +
     
    escapeXmlSpecialChar(String) - Static method in class connector.common.Util
     
    EXEC_STYLE_REQUEST - Static variable in class sailpoint.object.IntegrationConfig
    diff --git a/static/rule-java-docs/index-files/index-6.html b/static/rule-java-docs/index-files/index-6.html index 2c823b4e7..84df5d934 100644 --- a/static/rule-java-docs/index-files/index-6.html +++ b/static/rule-java-docs/index-files/index-6.html @@ -2,9 +2,9 @@ - + F-Index - + diff --git a/static/rule-java-docs/index-files/index-7.html b/static/rule-java-docs/index-files/index-7.html index 5d44b7409..c521c07bc 100644 --- a/static/rule-java-docs/index-files/index-7.html +++ b/static/rule-java-docs/index-files/index-7.html @@ -2,9 +2,9 @@ - + G-Index - + @@ -342,6 +342,12 @@
     
    getComments() - Method in class sailpoint.object.ProvisioningPlan
     
    +
    getConnection(Map) - Static method in class sailpoint.connector.util.JDBCUtil
    +
     
    +
    getConnection(String, String, String, String, String, Properties) - Static method in class sailpoint.connector.util.JDBCUtil
    +
     
    +
    getConnection(String, String, String, String, String) - Static method in class sailpoint.connector.util.JDBCUtil
    +
     
    getContextUrl() - Method in class sailpoint.connector.webservices.Endpoint
    Use this method to get the context url for the particular operation (create user, update user, account aggregation, etc...)
    @@ -724,6 +730,10 @@
    Use this method to get the operation type (Account Aggregation, Group Aggregation, Create Account, etc...) for the particular operation record (create user, update user, account aggregation, etc...)
    +
    getOracleDBTimeZoneDetails(Connection, String, String) - Static method in class sailpoint.connector.util.JDBCUtil
    +
     
    +
    getOracleDBVersionDetails(Connection, String, String) - Static method in class sailpoint.connector.util.JDBCUtil
    +
     
    getOwner() - Method in class sailpoint.object.ManagedAttribute
     
    getParameters() - Method in class sailpoint.tools.Message
    diff --git a/static/rule-java-docs/index-files/index-8.html b/static/rule-java-docs/index-files/index-8.html index b2babd0c0..23b6fd8c4 100644 --- a/static/rule-java-docs/index-files/index-8.html +++ b/static/rule-java-docs/index-files/index-8.html @@ -2,9 +2,9 @@ - + H-Index - + diff --git a/static/rule-java-docs/index-files/index-9.html b/static/rule-java-docs/index-files/index-9.html index a4f8eac35..f4d997ce5 100644 --- a/static/rule-java-docs/index-files/index-9.html +++ b/static/rule-java-docs/index-files/index-9.html @@ -2,9 +2,9 @@ - + I-Index - + @@ -96,6 +96,8 @@
     tags in markdown map to CodeBlocks. They may contain JSX children. When
    +// the children is not a simple string, we just return a styled block without
    +// actually highlighting.
    +export default function CodeBlockJSX({
    +  children,
    +  className,
    +}: Props): React.JSX.Element {
    +  return (
    +    
    +      {children}
    +    
    +  );
    +}
    diff --git a/src/theme/ApiExplorer/ApiCodeBlock/Content/String.tsx b/src/theme/ApiExplorer/ApiCodeBlock/Content/String.tsx
    new file mode 100644
    index 000000000..8c2becbb0
    --- /dev/null
    +++ b/src/theme/ApiExplorer/ApiCodeBlock/Content/String.tsx
    @@ -0,0 +1,127 @@
    +import React from "react";
    +
    +import { useThemeConfig, usePrismTheme } from "@docusaurus/theme-common";
    +import {
    +  parseCodeBlockTitle,
    +  parseLanguage,
    +  parseLines,
    +  containsLineNumbers,
    +  useCodeWordWrap,
    +} from "@docusaurus/theme-common/internal";
    +import Container from "@theme/ApiExplorer/ApiCodeBlock/Container";
    +import CopyButton from "@theme/ApiExplorer/ApiCodeBlock/CopyButton";
    +import ExpandButton from "@theme/ApiExplorer/ApiCodeBlock/ExpandButton";
    +import Line from "@theme/ApiExplorer/ApiCodeBlock/Line";
    +import WordWrapButton from "@theme/ApiExplorer/ApiCodeBlock/WordWrapButton";
    +import type { Props } from "@theme/CodeBlock/Content/String";
    +import clsx from "clsx";
    +import { Highlight, Language } from "prism-react-renderer";
    +
    +export default function CodeBlockString({
    +  children,
    +  className: blockClassName = "",
    +  metastring,
    +  title: titleProp,
    +  showLineNumbers: showLineNumbersProp,
    +  language: languageProp,
    +}: Props): React.JSX.Element {
    +  const {
    +    prism: { defaultLanguage, magicComments },
    +  } = useThemeConfig();
    +  const language =
    +    languageProp ?? parseLanguage(blockClassName) ?? defaultLanguage;
    +  const prismTheme = usePrismTheme();
    +  const wordWrap = useCodeWordWrap();
    +  // We still parse the metastring in case we want to support more syntax in the
    +  // future. Note that MDX doesn't strip quotes when parsing metastring:
    +  // "title=\"xyz\"" => title: "\"xyz\""
    +  const title = parseCodeBlockTitle(metastring) || titleProp;
    +  const { lineClassNames, code } = parseLines(children, {
    +    metastring,
    +    language,
    +    magicComments,
    +  });
    +  const showLineNumbers =
    +    showLineNumbersProp ?? containsLineNumbers(metastring);
    +
    +  return (
    +    
    +      {title && (
    +        
    {title}
    + )} +
    + + {({ className, tokens, getLineProps, getTokenProps }) => ( +
    +              
    +                {tokens.map((line, i) => (
    +                  
    +                ))}
    +              
    +            
    + )} +
    +
    + {(wordWrap.isEnabled || wordWrap.isCodeScrollable) && ( + wordWrap.toggle()} + isEnabled={wordWrap.isEnabled} + /> + )} + + +
    +
    +
    + ); +} diff --git a/src/theme/ApiExplorer/ApiCodeBlock/Content/_Content.scss b/src/theme/ApiExplorer/ApiCodeBlock/Content/_Content.scss new file mode 100644 index 000000000..acc774e11 --- /dev/null +++ b/src/theme/ApiExplorer/ApiCodeBlock/Content/_Content.scss @@ -0,0 +1,91 @@ +.openapi-explorer__code-block-content { + height: 100%; + position: relative; + /* rtl:ignore */ + direction: ltr; + border-radius: inherit; +} + +.openapi-explorer__code-block-title { + border-bottom: 1px solid var(--ifm-color-emphasis-300); + font-size: var(--ifm-code-font-size); + font-weight: 500; + padding: 0.75rem var(--ifm-pre-padding); + border-top-left-radius: inherit; + border-top-right-radius: inherit; +} + +.openapi-explorer__code-block { + height: 100%; + border-radius: var(--ifm-global-radius); + --ifm-pre-background: var(--prism-background-color); + margin: 0; + padding: 0; +} + +.openapi-explorer__code-block-title + + .openapi-explorer__code-block-content + .openapi-explorer__code-block { + border-top-left-radius: 0; + border-top-right-radius: 0; +} + +.openapi-explorer__code-block-standalone { + padding: 0; +} + +.openapi-explorer__code-block-lines { + font: inherit; + /* rtl:ignore */ + float: left; + min-width: 100%; + padding: var(--ifm-pre-padding); +} + +.openapi-explorer__code-block-lines-numbering { + // This causes max-height to unset + // display: table; + padding: var(--ifm-pre-padding) 0; +} + +@media print { + .openapi-explorer__code-block-lines { + white-space: pre-wrap; + } +} + +.openapi-explorer__code-block-btn-group { + display: flex; + column-gap: 0.2rem; + position: absolute; + right: calc(var(--ifm-pre-padding) / 2); + top: calc(var(--ifm-pre-padding) / 2); +} + +.openapi-explorer__code-block-btn-group button { + display: flex; + align-items: center; + background: var(--prism-background-color); + color: var(--prism-color); + border: 1px solid var(--ifm-color-emphasis-300); + border-radius: var(--ifm-global-radius); + padding: 0.4rem; + line-height: 0; + transition: opacity 200ms ease-in-out; + opacity: 0; +} + +.openapi-explorer__code-block-btn-group button:focus-visible, +.openapi-explorer__code-block-btn-group button:hover { + opacity: 1 !important; +} + +.theme-code-block:hover .openapi-explorer__code-block-btn-group button { + opacity: 0.4; +} + +@media screen and (max-width: 996px) { + .openapi-explorer__expand-btn { + display: none !important; + } +} diff --git a/src/theme/ApiExplorer/ApiCodeBlock/CopyButton/_CopyButton.scss b/src/theme/ApiExplorer/ApiCodeBlock/CopyButton/_CopyButton.scss new file mode 100644 index 000000000..e245fe1b1 --- /dev/null +++ b/src/theme/ApiExplorer/ApiCodeBlock/CopyButton/_CopyButton.scss @@ -0,0 +1,44 @@ +.theme-code-block:hover { + .openapi-explorer__code-block-copy-btn--copied { + opacity: 1 !important; + } +} + +.openapi-explorer__code-block-copy-btn-icons { + position: relative; + width: 1.125rem; + height: 1.125rem; +} + +.openapi-explorer__code-block-copy-btn-icon, +.openapi-explorer__code-block-copy-btn-icon--success { + position: absolute; + top: 0; + left: 0; + fill: currentColor; + opacity: inherit; + width: inherit; + height: inherit; + transition: all 0.15s ease; +} + +.openapi-explorer__code-block-copy-btn-icon--success { + top: 50%; + left: 50%; + transform: translate(-50%, -50%) scale(0.33); + opacity: 0; + color: #00d600; +} + +.openapi-explorer__code-block-copy-btn--copied { + .openapi-explorer__code-block-copy-btn-icon { + transform: scale(0.33); + opacity: 0; + } + + .openapi-explorer__code-block-copy-btn-icon--success { + transform: translate(-50%, -50%) scale(1); + opacity: 1; + transition-delay: 0.075s; + } +} diff --git a/src/theme/ApiExplorer/ApiCodeBlock/CopyButton/index.tsx b/src/theme/ApiExplorer/ApiCodeBlock/CopyButton/index.tsx new file mode 100644 index 000000000..34bd37b13 --- /dev/null +++ b/src/theme/ApiExplorer/ApiCodeBlock/CopyButton/index.tsx @@ -0,0 +1,72 @@ +import React, { useCallback, useState, useRef, useEffect } from "react"; + +import { CopyButtonProps } from "@docusaurus/theme-common/internal"; +import { translate } from "@docusaurus/Translate"; +import clsx from "clsx"; +import copy from "copy-text-to-clipboard"; + +export default function CopyButton({ + code, + className, +}: CopyButtonProps): React.JSX.Element { + const [isCopied, setIsCopied] = useState(false); + const copyTimeout = useRef(undefined); + const handleCopyCode = useCallback(() => { + copy(code); + setIsCopied(true); + copyTimeout.current = window.setTimeout(() => { + setIsCopied(false); + }, 1000); + }, [code]); + + useEffect(() => () => window.clearTimeout(copyTimeout.current), []); + + return ( + + ); +} diff --git a/src/theme/ApiExplorer/ApiCodeBlock/ExitButton/_ExitButton.scss b/src/theme/ApiExplorer/ApiCodeBlock/ExitButton/_ExitButton.scss new file mode 100644 index 000000000..4aaf9602f --- /dev/null +++ b/src/theme/ApiExplorer/ApiCodeBlock/ExitButton/_ExitButton.scss @@ -0,0 +1,16 @@ +.openapi-explorer__code-block-exit-btn-icons { + position: relative; + width: 1.125rem; + height: 1.125rem; +} + +.openapi-explorer__code-block-exit-btn-icon { + position: absolute; + top: 0; + left: 0; + fill: currentColor; + opacity: inherit; + width: inherit; + height: inherit; + transition: all 0.15s ease; +} diff --git a/src/theme/ApiExplorer/ApiCodeBlock/ExitButton/index.tsx b/src/theme/ApiExplorer/ApiCodeBlock/ExitButton/index.tsx new file mode 100644 index 000000000..fd175506d --- /dev/null +++ b/src/theme/ApiExplorer/ApiCodeBlock/ExitButton/index.tsx @@ -0,0 +1,48 @@ +import React from "react"; + +import { translate } from "@docusaurus/Translate"; +import clsx from "clsx"; + +export interface Props { + readonly className: string; + readonly handler: () => void; +} + +export default function ExitButton({ + className, + handler, +}: Props): React.JSX.Element { + return ( + + ); +} diff --git a/src/theme/ApiExplorer/ApiCodeBlock/ExpandButton/_ExpandButton.scss b/src/theme/ApiExplorer/ApiCodeBlock/ExpandButton/_ExpandButton.scss new file mode 100644 index 000000000..dcf382795 --- /dev/null +++ b/src/theme/ApiExplorer/ApiCodeBlock/ExpandButton/_ExpandButton.scss @@ -0,0 +1,62 @@ +.openapi-explorer__expand-modal-content { + padding: none; + border: thin solid var(--ifm-toc-border-color); + border-radius: var(--ifm-global-radius); + max-width: 95%; + width: 65vw; + height: 65vh; + overflow: auto; +} + +.openapi-explorer__expand-modal-overlay { + display: flex; + align-items: center; + justify-content: center; + position: fixed; + inset: 0px; + background-color: rgba(0, 0, 0, 0.9); + z-index: 201; +} + +.theme-code-block:hover .openapi-explorer__code-block-expand-btn--copied { + opacity: 1 !important; +} + +.openapi-explorer__code-block-expand-btn-icons { + position: relative; + width: 1.125rem; + height: 1.125rem; +} + +.openapi-explorer__code-block-expand-btn-icon, +.openapi-explorer__code-block-expand-btn-icon--success { + position: absolute; + top: 0; + left: 0; + fill: currentColor; + opacity: inherit; + width: inherit; + height: inherit; + transition: all 0.15s ease; +} + +.openapi-explorer__code-block-expand-btn-icon--success { + top: 50%; + left: 50%; + transform: translate(-50%, -50%) scale(0.33); + opacity: 0; + color: #00d600; +} + +.openapi-explorer__code-block-expand-btn--copied + .openapi-explorer__code-block-expand-btn-icon { + transform: scale(0.33); + opacity: 0; +} + +.openapi-explorer__code-block-expand-btn--copied + .openapi-explorer__code-block-expand-btn-icon--success { + transform: translate(-50%, -50%) scale(1); + opacity: 1; + transition-delay: 0.075s; +} diff --git a/src/theme/ApiExplorer/ApiCodeBlock/ExpandButton/index.tsx b/src/theme/ApiExplorer/ApiCodeBlock/ExpandButton/index.tsx new file mode 100644 index 000000000..79bb81c48 --- /dev/null +++ b/src/theme/ApiExplorer/ApiCodeBlock/ExpandButton/index.tsx @@ -0,0 +1,159 @@ +import React, { useEffect, useState } from "react"; + +import { usePrismTheme } from "@docusaurus/theme-common"; +import { translate } from "@docusaurus/Translate"; +import Container from "@theme/ApiExplorer/ApiCodeBlock/Container"; +import CopyButton from "@theme/ApiExplorer/ApiCodeBlock/CopyButton"; +import ExitButton from "@theme/ApiExplorer/ApiCodeBlock/ExitButton"; +import Line from "@theme/ApiExplorer/ApiCodeBlock/Line"; +import clsx from "clsx"; +import { Highlight, Language } from "prism-react-renderer"; +import Modal from "react-modal"; + +export interface Props { + readonly code: string; + readonly className: string; + readonly language: Language; + readonly showLineNumbers: boolean; + readonly blockClassName: string; + readonly title: string | undefined; + readonly lineClassNames: { [lineIndex: number]: string[] }; +} + +export default function ExpandButton({ + code, + className, + language, + showLineNumbers, + blockClassName, + title, + lineClassNames, +}: Props): React.JSX.Element { + const [isModalOpen, setIsModalOpen] = useState(false); + const prismTheme = usePrismTheme(); + + useEffect(() => { + Modal.setAppElement("body"); + }, []); + + return ( + <> + + setIsModalOpen(false)} + contentLabel="Code Snippet" + > + + {title && ( +
    {title}
    + )} +
    + + {({ className, tokens, getLineProps, getTokenProps }) => ( +
    +                  
    +                    {tokens.map((line, i) => (
    +                      
    +                    ))}
    +                  
    +                
    + )} +
    +
    + + setIsModalOpen(false)} + /> +
    +
    +
    +
    + + ); +} diff --git a/src/theme/ApiExplorer/ApiCodeBlock/Line/_Line.scss b/src/theme/ApiExplorer/ApiCodeBlock/Line/_Line.scss new file mode 100644 index 000000000..10d54df9a --- /dev/null +++ b/src/theme/ApiExplorer/ApiCodeBlock/Line/_Line.scss @@ -0,0 +1,44 @@ +:where(:root) { + --docusaurus-highlighted-code-line-bg: rgb(72 77 91); +} + +:where([data-theme="dark"]) { + --docusaurus-highlighted-code-line-bg: rgb(100 100 100); +} + +.theme-code-block-highlighted-line { + background-color: var(--docusaurus-highlighted-code-line-bg); + display: block; + margin: 0 calc(-1 * var(--ifm-pre-padding)); + padding: 0 var(--ifm-pre-padding); +} + +.openapi-explorer__code-block-code-line { + display: table-row; + counter-increment: line-count; +} + +.openapi-explorer__code-block-code-line-number { + display: table-cell; + text-align: right; + width: 1%; + position: sticky; + left: 0; + padding: 0 var(--ifm-pre-padding); + background: var(--ifm-pre-background); + overflow-wrap: normal; +} + +.openapi-explorer__code-block-code-line-number::before { + content: counter(line-count); + opacity: 0.4; +} + +:global(.theme-code-block-highlighted-line) + .openapi-explorer__code-block-code-line-number::before { + opacity: 0.8; +} + +.openapi-explorer__code-block-code-line-number { + padding-right: var(--ifm-pre-padding); +} diff --git a/src/theme/ApiExplorer/ApiCodeBlock/Line/index.tsx b/src/theme/ApiExplorer/ApiCodeBlock/Line/index.tsx new file mode 100644 index 000000000..73b37725b --- /dev/null +++ b/src/theme/ApiExplorer/ApiCodeBlock/Line/index.tsx @@ -0,0 +1,41 @@ +import React from "react"; + +import { LineProps } from "@docusaurus/theme-common/internal"; +import clsx from "clsx"; + +export default function CodeBlockLine({ + line, + classNames, + showLineNumbers, + getLineProps, + getTokenProps, +}: LineProps): React.JSX.Element { + if (line.length === 1 && line[0].content === "\n") { + line[0].content = ""; + } + const lineProps = getLineProps({ + line, + className: clsx( + classNames, + showLineNumbers && "openapi-explorer__code-block-code-line" + ), + }); + const lineTokens = line.map((token, key) => ( + + )); + return ( + + {showLineNumbers ? ( + <> + + + {lineTokens} + + + ) : ( + lineTokens + )} +
    +
    + ); +} diff --git a/src/theme/ApiExplorer/ApiCodeBlock/WordWrapButton/_WordWrapButton.scss b/src/theme/ApiExplorer/ApiCodeBlock/WordWrapButton/_WordWrapButton.scss new file mode 100644 index 000000000..cf2c8aa9a --- /dev/null +++ b/src/theme/ApiExplorer/ApiCodeBlock/WordWrapButton/_WordWrapButton.scss @@ -0,0 +1,10 @@ +.openapi-explorer__code-block-word-wrap-btn-icon { + width: 1.2rem; + height: 1.2rem; +} + +.openapi-explorer__code-block-word-wrap-btn--enabled { + .openapi-explorer__code-block-word-wrap-btn-icon { + color: var(--ifm-color-primary); + } +} diff --git a/src/theme/ApiExplorer/ApiCodeBlock/WordWrapButton/index.tsx b/src/theme/ApiExplorer/ApiCodeBlock/WordWrapButton/index.tsx new file mode 100644 index 000000000..c0090b36f --- /dev/null +++ b/src/theme/ApiExplorer/ApiCodeBlock/WordWrapButton/index.tsx @@ -0,0 +1,47 @@ +import React from "react"; + +import { translate } from "@docusaurus/Translate"; +import clsx from "clsx"; + +export interface Props { + readonly className?: string; + readonly onClick: React.MouseEventHandler; + readonly isEnabled: boolean; +} + +export default function WordWrapButton({ + className, + onClick, + isEnabled, +}: Props): React.JSX.Element | null { + const title = translate({ + id: "theme.CodeBlock.wordWrapToggle", + message: "Toggle word wrap", + description: + "The title attribute for toggle word wrapping button of code block lines", + }); + return ( + + ); +} diff --git a/src/theme/ApiExplorer/ApiCodeBlock/index.tsx b/src/theme/ApiExplorer/ApiCodeBlock/index.tsx new file mode 100644 index 000000000..3a1a29328 --- /dev/null +++ b/src/theme/ApiExplorer/ApiCodeBlock/index.tsx @@ -0,0 +1,38 @@ +import React, { isValidElement, ReactNode } from "react"; + +import { CodeBlockProps } from "@docusaurus/theme-common/internal"; +import useIsBrowser from "@docusaurus/useIsBrowser"; +import ElementContent from "@theme/ApiExplorer/ApiCodeBlock/Content/Element"; +import StringContent from "@theme/ApiExplorer/ApiCodeBlock/Content/String"; + +/** + * Best attempt to make the children a plain string so it is copyable. If there + * are react elements, we will not be able to copy the content, and it will + * return `children` as-is; otherwise, it concatenates the string children + * together. + */ +function maybeStringifyChildren(children: ReactNode): ReactNode { + if (React.Children.toArray(children).some((el) => isValidElement(el))) { + return children; + } + // The children is now guaranteed to be one/more plain strings + return Array.isArray(children) ? children.join("") : (children as string); +} +export default function ApiCodeBlock({ + children: rawChildren, + ...props +}: CodeBlockProps) { + // The Prism theme on SSR is always the default theme but the site theme can + // be in a different mode. React hydration doesn't update DOM styles that come + // from SSR. Hence force a re-render after mounting to apply the current + // relevant styles. + const isBrowser = useIsBrowser(); + const children = maybeStringifyChildren(rawChildren); + const CodeBlockComp = + typeof children === "string" ? StringContent : ElementContent; + return ( + + {children as string} + + ); +} diff --git a/src/theme/ApiExplorer/Authorization/auth-types.ts b/src/theme/ApiExplorer/Authorization/auth-types.ts new file mode 100644 index 000000000..125d18c9e --- /dev/null +++ b/src/theme/ApiExplorer/Authorization/auth-types.ts @@ -0,0 +1,23 @@ +export function getAuthDataKeys(security: { [key: string]: any }) { + // Bearer Auth + if (security.type === "http" && security.scheme === "bearer") { + return ["token"]; + } + + if (security.type === "oauth2") { + return ["token"]; + } + + // Basic Auth + if (security.type === "http" && security.scheme === "basic") { + return ["username", "password"]; + } + + // API Auth + if (security.type === "apiKey") { + return ["apiKey"]; + } + + // none + return []; +} diff --git a/src/theme/ApiExplorer/Authorization/index.tsx b/src/theme/ApiExplorer/Authorization/index.tsx new file mode 100644 index 000000000..4bd9e9911 --- /dev/null +++ b/src/theme/ApiExplorer/Authorization/index.tsx @@ -0,0 +1,148 @@ +import React from "react"; + +import FormItem from "@theme/ApiExplorer/FormItem"; +import FormSelect from "@theme/ApiExplorer/FormSelect"; +import FormTextInput from "@theme/ApiExplorer/FormTextInput"; +import { useTypedDispatch, useTypedSelector } from "@theme/ApiItem/hooks"; + +import { setAuthData, setSelectedAuth } from "./slice"; + +function Authorization() { + const data = useTypedSelector((state: any) => state.auth.data); + const options = useTypedSelector((state: any) => state.auth.options); + const selected = useTypedSelector((state: any) => state.auth.selected); + + const dispatch = useTypedDispatch(); + + if (selected === undefined) { + return null; + } + + const selectedAuth = options[selected]; + + const optionKeys = Object.keys(options); + + return ( +
    + {optionKeys.length > 1 && ( + + ) => { + dispatch(setSelectedAuth(e.target.value)); + }} + /> + + )} + {selectedAuth.map((a: any) => { + if (a.type === "http" && a.scheme === "bearer") { + return ( + + ) => { + const value = e.target.value; + dispatch( + setAuthData({ + scheme: a.key, + key: "token", + value: value ? value : undefined, + }) + ); + }} + /> + + ); + } + + if (a.type === "oauth2") { + return ( + + ) => { + const value = e.target.value; + dispatch( + setAuthData({ + scheme: a.key, + key: "token", + value: value ? value : undefined, + }) + ); + }} + /> + + ); + } + + if (a.type === "http" && a.scheme === "basic") { + return ( + + + ) => { + const value = e.target.value; + dispatch( + setAuthData({ + scheme: a.key, + key: "username", + value: value ? value : undefined, + }) + ); + }} + /> + + + ) => { + const value = e.target.value; + dispatch( + setAuthData({ + scheme: a.key, + key: "password", + value: value ? value : undefined, + }) + ); + }} + /> + + + ); + } + + if (a.type === "apiKey") { + return ( + + ) => { + const value = e.target.value; + dispatch( + setAuthData({ + scheme: a.key, + key: "apiKey", + value: value ? value : undefined, + }) + ); + }} + /> + + ); + } + + return null; + })} +
    + ); +} + +export default Authorization; diff --git a/src/theme/ApiExplorer/Authorization/slice.ts b/src/theme/ApiExplorer/Authorization/slice.ts new file mode 100644 index 000000000..b071700d5 --- /dev/null +++ b/src/theme/ApiExplorer/Authorization/slice.ts @@ -0,0 +1,139 @@ +import { createSlice, PayloadAction } from "@reduxjs/toolkit"; +import { createStorage, hashArray } from "@theme/ApiExplorer/storage-utils"; +import { + SecurityRequirementObject, + SecuritySchemeObject, +} from "docusaurus-plugin-openapi-docs/src/openapi/types"; +/* eslint-disable import/no-extraneous-dependencies*/ +import { ThemeConfig } from "docusaurus-theme-openapi-docs/src/types"; + +import { getAuthDataKeys } from "./auth-types"; + +// The global definitions +// "securitySchemes": { +// "BearerAuth": { "type": "http", "scheme": "BeAreR" }, +// "BasicAuth": { "type": "http", "scheme": "basic" } +// }, + +// The operation level requirements +// "security": [ +// { "BearerAuth": [] }, +// { "BearerAuth": [], "BasicAuth": [] } +// ], + +// SLICE_STATE +// data: +// BearerAuth: +// token=xxx +// BasicAuth: +// username=xxx +// password=xxx +// +// options: +// "BearerAuth": [{ key: "BearerAuth", scopes: [], ...rest }] +// "BearerAuth and BasicAuth": [{ key: "BearerAuth", scopes: [], ...rest }, { key: "BasicAuth", scopes: [], ...rest }] +// +// selected: "BearerAuth and BasicAuth" + +// LOCAL_STORAGE +// hash(SLICE_STATE.options) -> "BearerAuth and BasicAuth" +// BearerAuth -> { token: xxx } +// BasicAuth -> { username: xxx, password: xxx } + +export function createAuth({ + security, + securitySchemes, + options: opts, +}: { + security?: SecurityRequirementObject[]; + securitySchemes?: { + [key: string]: SecuritySchemeObject; + }; + options?: ThemeConfig["api"]; +}): AuthState { + const storage = createStorage("sessionStorage"); + + let data: AuthState["data"] = {}; + let options: AuthState["options"] = {}; + + for (const option of security ?? []) { + const id = Object.keys(option).join(" and "); + for (const [schemeID, scopes] of Object.entries(option)) { + const scheme = securitySchemes?.[schemeID]; + if (scheme) { + if (options[id] === undefined) { + options[id] = []; + } + const dataKeys = getAuthDataKeys(scheme); + for (const key of dataKeys) { + if (data[schemeID] === undefined) { + data[schemeID] = {}; + } + + let persisted = undefined; + try { + persisted = JSON.parse(storage.getItem(schemeID) ?? "")[key]; + } catch {} + + data[schemeID][key] = persisted; + } + options[id].push({ + ...scheme, + key: schemeID, + scopes, + }); + } + } + } + + let persisted = undefined; + try { + persisted = storage.getItem(hashArray(Object.keys(options))) ?? undefined; + } catch {} + + return { + data, + options, + selected: persisted ?? Object.keys(options)[0], + }; +} + +export type Scheme = { + key: string; + scopes: string[]; +} & SecuritySchemeObject; + +export interface AuthState { + data: { + [scheme: string]: { + [key: string]: string | undefined; + }; + }; + options: { + [key: string]: Scheme[]; + }; + selected?: string; +} + +const initialState: AuthState = {} as any; + +export const slice = createSlice({ + name: "auth", + initialState, + reducers: { + setAuthData: ( + state, + action: PayloadAction<{ scheme: string; key: string; value?: string }> + ) => { + const { scheme, key, value } = action.payload; + state.data[scheme][key] = value; + }, + setSelectedAuth: (state, action: PayloadAction) => { + state.selected = action.payload; + }, + }, +}); + +export const { setAuthData, setSelectedAuth } = slice.actions; + +export default slice.reducer; diff --git a/src/theme/ApiExplorer/Body/index.tsx b/src/theme/ApiExplorer/Body/index.tsx new file mode 100644 index 000000000..98341e9b3 --- /dev/null +++ b/src/theme/ApiExplorer/Body/index.tsx @@ -0,0 +1,361 @@ +import React from "react"; + +import json2xml from "@theme/ApiExplorer/Body/json2xml"; +import FormFileUpload from "@theme/ApiExplorer/FormFileUpload"; +import FormItem from "@theme/ApiExplorer/FormItem"; +import FormSelect from "@theme/ApiExplorer/FormSelect"; +import FormTextInput from "@theme/ApiExplorer/FormTextInput"; +import LiveApp from "@theme/ApiExplorer/LiveEditor"; +import { useTypedDispatch, useTypedSelector } from "@theme/ApiItem/hooks"; +import Markdown from "@theme/Markdown"; +import SchemaTabs from "@theme/SchemaTabs"; +import TabItem from "@theme/TabItem"; +import { RequestBodyObject } from "docusaurus-plugin-openapi-docs/src/openapi/types"; +import format from "xml-formatter"; + +import { + clearFormBodyKey, + clearRawBody, + setFileFormBody, + setFileRawBody, + setStringFormBody, +} from "./slice"; + +export interface Props { + jsonRequestBodyExample: string; + requestBodyMetadata?: RequestBodyObject; + methods?: any; + required?: boolean; +} + +function BodyWrap({ + requestBodyMetadata, + jsonRequestBodyExample, + methods, + required, +}: Props) { + const contentType = useTypedSelector((state: any) => state.contentType.value); + + // NOTE: We used to check if body was required, but opted to always show the request body + // to reduce confusion, see: https://github.com/cloud-annotations/docusaurus-openapi/issues/145 + + // No body + if (contentType === undefined) { + return null; + } + + return ( + + ); +} + +function Body({ + requestBodyMetadata, + jsonRequestBodyExample, + methods, + required, +}: Props) { + const contentType = useTypedSelector((state: any) => state.contentType.value); + const dispatch = useTypedDispatch(); + + // Lot's of possible content-types: + // - application/json + // - application/xml + // - text/plain + // - text/css + // - text/html + // - text/javascript + // - application/javascript + // - multipart/form-data + // - application/x-www-form-urlencoded + // - image/svg+xml;charset=US-ASCII + + // Show editor: + // - application/json + // - application/xml + // - */* + + // Show form: + // - multipart/form-data + // - application/x-www-form-urlencoded + + const schema = requestBodyMetadata?.content?.[contentType]?.schema; + const example = requestBodyMetadata?.content?.[contentType]?.example; + const examples = requestBodyMetadata?.content?.[contentType]?.examples; + + if (schema?.format === "binary") { + return ( + + { + if (file === undefined) { + dispatch(clearRawBody()); + return; + } + dispatch( + setFileRawBody({ + src: `/path/to/${file.name}`, + content: file, + }) + ); + }} + /> + + ); + } + if ( + (contentType === "multipart/form-data" || + contentType === "application/x-www-form-urlencoded") && + schema?.type === "object" + ) { + return ( + +
    + {Object.entries(schema.properties ?? {}).map(([key, val]: any) => { + if (val.format === "binary") { + return ( + + { + if (file === undefined) { + dispatch(clearFormBodyKey(key)); + return; + } + dispatch( + setFileFormBody({ + key: key, + value: { + src: `/path/to/${file.name}`, + content: file, + }, + }) + ); + }} + /> + + ); + } + + if (val.enum) { + return ( + + ) => { + const val = e.target.value; + if (val === "---") { + dispatch(clearFormBodyKey(key)); + } else { + dispatch( + setStringFormBody({ + key: key, + value: val, + }) + ); + } + }} + /> + + ); + } + // TODO: support all the other types. + return ( + + ) => { + dispatch( + setStringFormBody({ key: key, value: e.target.value }) + ); + }} + /> + + ); + })} +
    +
    + ); + } + + let language = "plaintext"; + let defaultBody = ""; //"body content"; + let exampleBody; + let examplesBodies = [] as any; + + if ( + contentType.includes("application/json") || + contentType.endsWith("+json") + ) { + if (jsonRequestBodyExample) { + defaultBody = JSON.stringify(jsonRequestBodyExample, null, 2); + } + if (example) { + exampleBody = JSON.stringify(example, null, 2); + } + if (examples) { + for (const [key, example] of Object.entries(examples)) { + examplesBodies.push({ + label: key, + body: JSON.stringify(example.value, null, 2), + summary: example.summary, + }); + } + } + language = "json"; + } + + if (contentType === "application/xml" || contentType.endsWith("+xml")) { + if (jsonRequestBodyExample) { + try { + defaultBody = format(json2xml(jsonRequestBodyExample, ""), { + indentation: " ", + lineSeparator: "\n", + collapseContent: true, + }); + } catch { + defaultBody = json2xml(jsonRequestBodyExample); + } + } + if (example) { + try { + exampleBody = format(json2xml(example, ""), { + indentation: " ", + lineSeparator: "\n", + collapseContent: true, + }); + } catch { + exampleBody = json2xml(example); + } + } + if (examples) { + for (const [key, example] of Object.entries(examples)) { + let formattedXmlBody; + try { + formattedXmlBody = format(example.value, { + indentation: " ", + lineSeparator: "\n", + collapseContent: true, + }); + } catch { + formattedXmlBody = example.value; + } + examplesBodies.push({ + label: key, + body: formattedXmlBody, + summary: example.summary, + }); + } + } + language = "xml"; + } + + if (exampleBody) { + return ( + + + {/* @ts-ignore */} + + + {defaultBody} + + + {/* @ts-ignore */} + + {example.summary && } + {exampleBody && ( + + {exampleBody} + + )} + + + + ); + } + + if (examplesBodies && examplesBodies.length > 0) { + return ( + + + {/* @ts-ignore */} + + + {defaultBody} + + + {examplesBodies.map((example: any) => { + return ( + // @ts-ignore + + {example.summary && } + {example.body && ( + + {example.body} + + )} + + ); + })} + + + ); + } + + return ( + + + {defaultBody} + + + ); +} + +export default BodyWrap; diff --git a/src/theme/ApiExplorer/Body/json2xml.js b/src/theme/ApiExplorer/Body/json2xml.js new file mode 100644 index 000000000..6092291b0 --- /dev/null +++ b/src/theme/ApiExplorer/Body/json2xml.js @@ -0,0 +1,36 @@ +export default function json2xml(o, tab) { + var toXml = function (v, name, ind) { + var xml = ""; + if (v instanceof Array) { + for (var i = 0, n = v.length; i < n; i++) + xml += ind + toXml(v[i], name, ind + "\t") + "\n"; + } else if (typeof v == "object") { + var hasChild = false; + xml += ind + "<" + name; + for (var m in v) { + if (m.charAt(0) === "@") + xml += " " + m.substr(1) + '="' + v[m].toString() + '"'; + else hasChild = true; + } + xml += hasChild ? ">" : "/>"; + if (hasChild) { + for (var m2 in v) { + if (m2 === "#text") xml += v[m2]; + else if (m2 === "#cdata") xml += ""; + else if (m2.charAt(0) !== "@") xml += toXml(v[m2], m2, ind + "\t"); + } + xml += + (xml.charAt(xml.length - 1) === "\n" ? ind : "") + + ""; + } + } else { + xml += ind + "<" + name + ">" + v.toString() + ""; + } + return xml; + }, + xml = ""; + for (var m3 in o) xml += toXml(o[m3], m3, ""); + return tab ? xml.replace(/\t/g, tab) : xml.replace(/\t|\n/g, ""); +} diff --git a/src/theme/ApiExplorer/Body/slice.ts b/src/theme/ApiExplorer/Body/slice.ts new file mode 100644 index 000000000..f8b3102db --- /dev/null +++ b/src/theme/ApiExplorer/Body/slice.ts @@ -0,0 +1,126 @@ +import { createSlice, PayloadAction } from "@reduxjs/toolkit"; + +export interface FileContent { + type: "file"; + value: { + src: string; + content: Blob; + }; +} + +export interface StringContent { + type: "string"; + value?: string; +} + +export type Content = FileContent | StringContent | undefined; + +export interface FormBody { + type: "form"; + content: { + [key: string]: Content; + }; +} + +export interface RawBody { + type: "raw"; + content: Content; +} + +export interface EmptyBody { + type: "empty"; +} + +export type Body = EmptyBody | FormBody | RawBody; + +export type State = Body; + +const initialState: State = {} as any; + +export const slice = createSlice({ + name: "body", + initialState, + reducers: { + clearRawBody: (_state) => { + return { + type: "empty", + }; + }, + setStringRawBody: (_state, action: PayloadAction) => { + return { + type: "raw", + content: { + type: "string", + value: action.payload, + }, + }; + }, + setFileRawBody: (_state, action: PayloadAction) => { + return { + type: "raw", + content: { + type: "file", + value: action.payload, + }, + }; + }, + clearFormBodyKey: (state, action: PayloadAction) => { + if (state?.type === "form") { + delete state.content[action.payload]; + } + }, + setStringFormBody: ( + state, + action: PayloadAction<{ key: string; value: string }> + ) => { + if (state?.type !== "form") { + return { + type: "form", + content: { + [action.payload.key]: { + type: "string", + value: action.payload.value, + }, + }, + }; + } + state.content[action.payload.key] = { + type: "string", + value: action.payload.value, + }; + return state; + }, + setFileFormBody: ( + state, + action: PayloadAction<{ key: string; value: FileContent["value"] }> + ) => { + if (state?.type !== "form") { + return { + type: "form", + content: { + [action.payload.key]: { + type: "file", + value: action.payload.value, + }, + }, + }; + } + state.content[action.payload.key] = { + type: "file", + value: action.payload.value, + }; + return state; + }, + }, +}); + +export const { + clearRawBody, + setStringRawBody, + setFileRawBody, + clearFormBodyKey, + setStringFormBody, + setFileFormBody, +} = slice.actions; + +export default slice.reducer; diff --git a/src/theme/ApiExplorer/CodeSnippets/code-snippets-types.ts b/src/theme/ApiExplorer/CodeSnippets/code-snippets-types.ts new file mode 100644 index 000000000..01f614217 --- /dev/null +++ b/src/theme/ApiExplorer/CodeSnippets/code-snippets-types.ts @@ -0,0 +1,48 @@ +// https://github.com/github-linguist/linguist/blob/master/lib/linguist/popular.yml +export type CodeSampleLanguage = + | "C" + | "C#" + | "C++" + | "CoffeeScript" + | "CSS" + | "Dart" + | "DM" + | "Elixir" + | "Go" + | "Groovy" + | "HTML" + | "Java" + | "JavaScript" + | "Kotlin" + | "Objective-C" + | "Perl" + | "PHP" + | "PowerShell" + | "Python" + | "Ruby" + | "Rust" + | "Scala" + | "Shell" + | "Swift" + | "TypeScript"; + +export interface Language { + highlight: string; + language: string; + codeSampleLanguage: CodeSampleLanguage; + logoClass: string; + variant: string; + variants: string[]; + options?: { [key: string]: boolean }; + sample?: string; + samples?: string[]; + samplesSources?: string[]; + samplesLabels?: string[]; +} + +// https://redocly.com/docs/api-reference-docs/specification-extensions/x-code-samples +export interface CodeSample { + source: string; + lang: CodeSampleLanguage; + label?: string; +} diff --git a/src/theme/ApiExplorer/CodeSnippets/index.tsx b/src/theme/ApiExplorer/CodeSnippets/index.tsx new file mode 100644 index 000000000..04f74ce87 --- /dev/null +++ b/src/theme/ApiExplorer/CodeSnippets/index.tsx @@ -0,0 +1,434 @@ +import React, { useState, useEffect } from "react"; + +import useDocusaurusContext from "@docusaurus/useDocusaurusContext"; +import codegen from "@paloaltonetworks/postman-code-generators"; +import sdk from "@paloaltonetworks/postman-collection"; +import ApiCodeBlock from "@theme/ApiExplorer/ApiCodeBlock"; +import buildPostmanRequest from "@theme/ApiExplorer/buildPostmanRequest"; +import CodeTabs from "@theme/ApiExplorer/CodeTabs"; +import { useTypedSelector } from "@theme/ApiItem/hooks"; +import merge from "lodash/merge"; + +import { CodeSample, Language } from "./code-snippets-types"; +import { + getCodeSampleSourceFromLanguage, + mergeCodeSampleLanguage, +} from "./languages"; + +export const languageSet: Language[] = [ + { + highlight: "bash", + language: "curl", + codeSampleLanguage: "Shell", + logoClass: "bash", + options: { + longFormat: false, + followRedirect: true, + trimRequestBody: true, + }, + variant: "cURL", + variants: ["curl"], + }, + { + highlight: "python", + language: "python", + codeSampleLanguage: "Python", + logoClass: "python", + options: { + followRedirect: true, + trimRequestBody: true, + }, + variant: "requests", + variants: ["requests", "http.client"], + }, + { + highlight: "go", + language: "go", + codeSampleLanguage: "Go", + logoClass: "go", + options: { + followRedirect: true, + trimRequestBody: true, + }, + variant: "native", + variants: ["native"], + }, + { + highlight: "javascript", + language: "nodejs", + codeSampleLanguage: "JavaScript", + logoClass: "nodejs", + options: { + ES6_enabled: true, + followRedirect: true, + trimRequestBody: true, + }, + variant: "axios", + variants: ["axios", "native"], + }, + { + highlight: "ruby", + language: "ruby", + codeSampleLanguage: "Ruby", + logoClass: "ruby", + options: { + followRedirect: true, + trimRequestBody: true, + }, + variant: "Net::HTTP", + variants: ["net::http"], + }, + { + highlight: "csharp", + language: "csharp", + codeSampleLanguage: "C#", + logoClass: "csharp", + options: { + followRedirect: true, + trimRequestBody: true, + }, + variant: "RestSharp", + variants: ["restsharp", "httpclient"], + }, + { + highlight: "php", + language: "php", + codeSampleLanguage: "PHP", + logoClass: "php", + options: { + followRedirect: true, + trimRequestBody: true, + }, + variant: "cURL", + variants: ["curl", "guzzle", "pecl_http", "http_request2"], + }, + { + highlight: "java", + language: "java", + codeSampleLanguage: "Java", + logoClass: "java", + options: { + followRedirect: true, + trimRequestBody: true, + }, + variant: "OkHttp", + variants: ["okhttp", "unirest"], + }, + { + highlight: "powershell", + language: "powershell", + codeSampleLanguage: "PowerShell", + logoClass: "powershell", + options: { + followRedirect: true, + trimRequestBody: true, + }, + variant: "RestMethod", + variants: ["restmethod"], + }, +]; + +export interface Props { + postman: sdk.Request; + codeSamples: CodeSample[]; +} + +function CodeTab({ children, hidden, className }: any): JSX.Element { + return ( + + ); +} + +function CodeSnippets({ postman, codeSamples }: Props) { + // TODO: match theme for vscode. + + const { siteConfig } = useDocusaurusContext(); + + const contentType = useTypedSelector((state: any) => state.contentType.value); + const accept = useTypedSelector((state: any) => state.accept.value); + const server = useTypedSelector((state: any) => state.server.value); + const body = useTypedSelector((state: any) => state.body); + + const pathParams = useTypedSelector((state: any) => state.params.path); + const queryParams = useTypedSelector((state: any) => state.params.query); + const cookieParams = useTypedSelector((state: any) => state.params.cookie); + const headerParams = useTypedSelector((state: any) => state.params.header); + + const auth = useTypedSelector((state: any) => state.auth); + + // User-defined languages array + // Can override languageSet, change order of langs, override options and variants + const langs = [ + ...((siteConfig?.themeConfig?.languageTabs as Language[] | undefined) ?? + languageSet), + ]; + + // Filter languageSet by user-defined langs + const filteredLanguageSet = languageSet.filter((ls) => { + return langs.some((lang) => { + return lang.language === ls.language; + }); + }); + + // Merge user-defined langs into languageSet + const mergedLangs = mergeCodeSampleLanguage( + merge(filteredLanguageSet, langs), + codeSamples + ); + + // Read defaultLang from localStorage + const defaultLang: Language[] = mergedLangs.filter( + (lang) => + lang.language === localStorage.getItem("docusaurus.tab.code-samples") + ); + const [selectedVariant, setSelectedVariant] = useState(); + const [selectedSample, setSelectedSample] = useState(); + const [language, setLanguage] = useState(() => { + // Return first index if only 1 user-defined language exists + if (mergedLangs.length === 1) { + return mergedLangs[0]; + } + // Fall back to language in localStorage or first user-defined language + return defaultLang[0] ?? mergedLangs[0]; + }); + const [codeText, setCodeText] = useState(""); + const [codeSampleCodeText, setCodeSampleCodeText] = useState< + string | (() => string) + >(() => getCodeSampleSourceFromLanguage(language)); + + useEffect(() => { + if (language && !!language.sample) { + setCodeSampleCodeText(getCodeSampleSourceFromLanguage(language)); + } + + if (language && !!language.options) { + const postmanRequest = buildPostmanRequest(postman, { + queryParams, + pathParams, + cookieParams, + contentType, + accept, + headerParams, + body, + server, + auth, + }); + codegen.convert( + language.language, + language.variant, + postmanRequest, + language.options, + (error: any, snippet: string) => { + if (error) { + return; + } + setCodeText(snippet); + } + ); + } else if (language && !language.options) { + const langSource = mergedLangs.filter( + (lang) => lang.language === language.language + ); + + // Merges user-defined language with default languageSet + // This allows users to define only the minimal properties necessary in languageTabs + // User-defined properties should override languageSet properties + const mergedLanguage = { ...langSource[0], ...language }; + const postmanRequest = buildPostmanRequest(postman, { + queryParams, + pathParams, + cookieParams, + contentType, + accept, + headerParams, + body, + server, + auth, + }); + + codegen.convert( + mergedLanguage.language, + mergedLanguage.variant, + postmanRequest, + mergedLanguage.options, + (error: any, snippet: string) => { + if (error) { + return; + } + setCodeText(snippet); + } + ); + } else { + setCodeText(""); + } + }, [ + accept, + body, + contentType, + cookieParams, + headerParams, + language, + pathParams, + postman, + queryParams, + server, + auth, + mergedLangs, + ]); + // no dependencies was intentionlly set for this particular hook. it's safe as long as if conditions are set + useEffect(function onSelectedVariantUpdate() { + if (selectedVariant && selectedVariant !== language.variant) { + const postmanRequest = buildPostmanRequest(postman, { + queryParams, + pathParams, + cookieParams, + contentType, + accept, + headerParams, + body, + server, + auth, + }); + codegen.convert( + language.language, + selectedVariant, + postmanRequest, + language.options, + (error: any, snippet: string) => { + if (error) { + return; + } + setCodeText(snippet); + } + ); + } + }); + + // no dependencies was intentionlly set for this particular hook. it's safe as long as if conditions are set + // eslint-disable-next-line react-hooks/exhaustive-deps + useEffect(function onSelectedSampleUpdate() { + if ( + language.samples && + language.samplesSources && + selectedSample && + selectedSample !== language.sample + ) { + const sampleIndex = language.samples.findIndex( + (smp) => smp === selectedSample + ); + setCodeSampleCodeText(language.samplesSources[sampleIndex]); + } + }); + + if (language === undefined) { + return null; + } + + return ( + <> + + {mergedLangs.map((lang) => { + return ( + + {lang.samples && ( + + {lang.samples.map((sample, index) => { + return ( + + {/* @ts-ignore */} + + {codeSampleCodeText} + + + ); + })} + + )} + + + {lang.variants.map((variant, index) => { + return ( + + {/* @ts-ignore */} + + {codeText} + + + ); + })} + + + ); + })} + + + ); +} + +export default CodeSnippets; diff --git a/src/theme/ApiExplorer/CodeSnippets/languages.json b/src/theme/ApiExplorer/CodeSnippets/languages.json new file mode 100644 index 000000000..36c345a3b --- /dev/null +++ b/src/theme/ApiExplorer/CodeSnippets/languages.json @@ -0,0 +1,1290 @@ +[ + { + "key": "csharp", + "label": "C#", + "syntax_mode": "csharp", + "variants": [ + { + "key": "RestSharp", + "options": [ + { + "name": "Include boilerplate", + "id": "includeBoilerplate", + "type": "boolean", + "default": false, + "description": "Include class definition and import statements in snippet" + }, + { + "name": "Set indentation count", + "id": "indentCount", + "type": "positiveInteger", + "default": 2, + "description": "Set the number of indentation characters to add per code level" + }, + { + "name": "Set indentation type", + "id": "indentType", + "type": "enum", + "availableOptions": ["Tab", "Space"], + "default": "Space", + "description": "Select the character used to indent lines of code" + }, + { + "name": "Set request timeout", + "id": "requestTimeout", + "type": "positiveInteger", + "default": 0, + "description": "Set number of milliseconds the request should wait for a response before timing out (use 0 for infinity)" + }, + { + "name": "Follow redirects", + "id": "followRedirect", + "type": "boolean", + "default": true, + "description": "Automatically follow HTTP redirects" + }, + { + "name": "Trim request body fields", + "id": "trimRequestBody", + "type": "boolean", + "default": false, + "description": "Remove white space and additional lines that may affect the server's response" + } + ] + } + ] + }, + { + "key": "curl", + "label": "cURL", + "syntax_mode": "powershell", + "variants": [ + { + "key": "cURL", + "options": [ + { + "name": "Generate multiline snippet", + "id": "multiLine", + "type": "boolean", + "default": true, + "description": "Split cURL command across multiple lines" + }, + { + "name": "Use long form options", + "id": "longFormat", + "type": "boolean", + "default": true, + "description": "Use the long form for cURL options (--header instead of -H)" + }, + { + "name": "Line continuation character", + "id": "lineContinuationCharacter", + "availableOptions": ["\\", "^", "`"], + "type": "enum", + "default": "\\", + "description": "Set a character used to mark the continuation of a statement on the next line (generally, \\ for OSX/Linux, ^ for Windows cmd and ` for Powershell)" + }, + { + "name": "Quote Type", + "id": "quoteType", + "availableOptions": ["single", "double"], + "type": "enum", + "default": "single", + "description": "String denoting the quote type to use (single or double) for URL (Use double quotes when running curl in cmd.exe and single quotes for the rest)" + }, + { + "name": "Set request timeout (in seconds)", + "id": "requestTimeoutInSeconds", + "type": "positiveInteger", + "default": 0, + "description": "Set number of seconds the request should wait for a response before timing out (use 0 for infinity)" + }, + { + "name": "Follow redirects", + "id": "followRedirect", + "type": "boolean", + "default": true, + "description": "Automatically follow HTTP redirects" + }, + { + "name": "Trim request body fields", + "id": "trimRequestBody", + "type": "boolean", + "default": false, + "description": "Remove white space and additional lines that may affect the server's response" + }, + { + "name": "Use Silent Mode", + "id": "silent", + "type": "boolean", + "default": false, + "description": "Display the requested data without showing the cURL progress meter or error messages" + } + ] + } + ] + }, + { + "key": "dart", + "label": "Dart", + "syntax_mode": "dart", + "variants": [ + { + "key": "http", + "options": [ + { + "name": "Set indentation count", + "id": "indentCount", + "type": "positiveInteger", + "default": 2, + "description": "Set the number of indentation characters to add per code level" + }, + { + "name": "Set indentation type", + "id": "indentType", + "type": "enum", + "availableOptions": ["Tab", "Space"], + "default": "Space", + "description": "Select the character used to indent lines of code" + }, + { + "name": "Set request timeout", + "id": "requestTimeout", + "type": "positiveInteger", + "default": 0, + "description": "Set number of milliseconds the request should wait for a response before timing out (use 0 for infinity)" + }, + { + "name": "Trim request body fields", + "id": "trimRequestBody", + "type": "boolean", + "default": false, + "description": "Remove white space and additional lines that may affect the server's response" + }, + { + "name": "Include boilerplate", + "id": "includeBoilerplate", + "type": "boolean", + "default": false, + "description": "Include class definition and import statements in snippet" + }, + { + "name": "Follow redirects", + "id": "followRedirect", + "type": "boolean", + "default": true, + "description": "Automatically follow HTTP redirects" + } + ] + } + ] + }, + { + "key": "go", + "label": "Go", + "syntax_mode": "golang", + "variants": [ + { + "key": "Native", + "options": [ + { + "name": "Set indentation count", + "id": "indentCount", + "type": "positiveInteger", + "default": 2, + "description": "Set the number of indentation characters to add per code level" + }, + { + "name": "Set indentation type", + "id": "indentType", + "type": "enum", + "availableOptions": ["Tab", "Space"], + "default": "Space", + "description": "Select the character used to indent lines of code" + }, + { + "name": "Set request timeout", + "id": "requestTimeout", + "type": "positiveInteger", + "default": 0, + "description": "Set number of milliseconds the request should wait for a response before timing out (use 0 for infinity)" + }, + { + "name": "Follow redirects", + "id": "followRedirect", + "type": "boolean", + "default": true, + "description": "Automatically follow HTTP redirects" + }, + { + "name": "Trim request body fields", + "id": "trimRequestBody", + "type": "boolean", + "default": false, + "description": "Remove white space and additional lines that may affect the server's response" + } + ] + } + ] + }, + { + "key": "http", + "label": "HTTP", + "syntax_mode": "text", + "variants": [ + { + "key": "HTTP", + "options": [ + { + "name": "Trim request body fields", + "id": "trimRequestBody", + "type": "boolean", + "default": false, + "description": "Remove white space and additional lines that may affect the server's response" + } + ] + } + ] + }, + { + "key": "java", + "label": "Java", + "syntax_mode": "java", + "variants": [ + { + "key": "OkHttp", + "options": [ + { + "name": "Include boilerplate", + "id": "includeBoilerplate", + "type": "boolean", + "default": false, + "description": "Include class definition and import statements in snippet" + }, + { + "name": "Set indentation count", + "id": "indentCount", + "type": "positiveInteger", + "default": 2, + "description": "Set the number of indentation characters to add per code level" + }, + { + "name": "Set indentation type", + "id": "indentType", + "type": "enum", + "availableOptions": ["Tab", "Space"], + "default": "Space", + "description": "Select the character used to indent lines of code" + }, + { + "name": "Set request timeout", + "id": "requestTimeout", + "type": "positiveInteger", + "default": 0, + "description": "Set number of milliseconds the request should wait for a response before timing out (use 0 for infinity)" + }, + { + "name": "Follow redirects", + "id": "followRedirect", + "type": "boolean", + "default": true, + "description": "Automatically follow HTTP redirects" + }, + { + "name": "Trim request body fields", + "id": "trimRequestBody", + "type": "boolean", + "default": false, + "description": "Remove white space and additional lines that may affect the server's response" + } + ] + }, + { + "key": "Unirest", + "options": [ + { + "name": "Include boilerplate", + "id": "includeBoilerplate", + "type": "boolean", + "default": false, + "description": "Include class definition and import statements in snippet" + }, + { + "name": "Set indentation count", + "id": "indentCount", + "type": "positiveInteger", + "default": 2, + "description": "Set the number of indentation characters to add per code level" + }, + { + "name": "Set indentation type", + "id": "indentType", + "type": "enum", + "availableOptions": ["Tab", "Space"], + "default": "Space", + "description": "Select the character used to indent lines of code" + }, + { + "name": "Set request timeout", + "id": "requestTimeout", + "type": "positiveInteger", + "default": 0, + "description": "Set number of milliseconds the request should wait for a response before timing out (use 0 for infinity)" + }, + { + "name": "Follow redirects", + "id": "followRedirect", + "type": "boolean", + "default": true, + "description": "Automatically follow HTTP redirects" + }, + { + "name": "Trim request body fields", + "id": "trimRequestBody", + "type": "boolean", + "default": false, + "description": "Remove white space and additional lines that may affect the server's response" + } + ] + } + ] + }, + { + "key": "javascript", + "label": "JavaScript", + "syntax_mode": "javascript", + "variants": [ + { + "key": "Fetch", + "options": [ + { + "name": "Set indentation count", + "id": "indentCount", + "type": "positiveInteger", + "default": 2, + "description": "Set the number of indentation characters to add per code level" + }, + { + "name": "Set indentation type", + "id": "indentType", + "type": "enum", + "availableOptions": ["Tab", "Space"], + "default": "Space", + "description": "Select the character used to indent lines of code" + }, + { + "name": "Set request timeout", + "id": "requestTimeout", + "type": "positiveInteger", + "default": 0, + "description": "Set number of milliseconds the request should wait for a response before timing out (use 0 for infinity)" + }, + { + "name": "Follow redirects", + "id": "followRedirect", + "type": "boolean", + "default": true, + "description": "Automatically follow HTTP redirects" + }, + { + "name": "Trim request body fields", + "id": "trimRequestBody", + "type": "boolean", + "default": false, + "description": "Remove white space and additional lines that may affect the server's response" + } + ] + }, + { + "key": "jQuery", + "options": [ + { + "name": "Set indentation count", + "id": "indentCount", + "type": "positiveInteger", + "default": 2, + "description": "Set the number of indentation characters to add per code level" + }, + { + "name": "Set indentation type", + "id": "indentType", + "type": "enum", + "availableOptions": ["Tab", "Space"], + "default": "Space", + "description": "Select the character used to indent lines of code" + }, + { + "name": "Set request timeout", + "id": "requestTimeout", + "type": "positiveInteger", + "default": 0, + "description": "Set number of milliseconds the request should wait for a response before timing out (use 0 for infinity)" + }, + { + "name": "Trim request body fields", + "id": "trimRequestBody", + "type": "boolean", + "default": false, + "description": "Remove white space and additional lines that may affect the server's response" + } + ] + }, + { + "key": "XHR", + "options": [ + { + "name": "Set indentation count", + "id": "indentCount", + "type": "positiveInteger", + "default": 2, + "description": "Set the number of indentation characters to add per code level" + }, + { + "name": "Set indentation type", + "id": "indentType", + "type": "enum", + "availableOptions": ["Tab", "Space"], + "default": "Space", + "description": "Select the character used to indent lines of code" + }, + { + "name": "Set request timeout", + "id": "requestTimeout", + "type": "positiveInteger", + "default": 0, + "description": "Set number of milliseconds the request should wait for a response before timing out (use 0 for infinity)" + }, + { + "name": "Trim request body fields", + "id": "trimRequestBody", + "type": "boolean", + "default": false, + "description": "Remove white space and additional lines that may affect the server's response" + } + ] + } + ] + }, + { + "key": "c", + "label": "C", + "syntax_mode": "c_cpp", + "variants": [ + { + "key": "libcurl", + "options": [ + { + "name": "Include boilerplate", + "id": "includeBoilerplate", + "type": "boolean", + "default": false, + "description": "Include class definition and import statements in snippet" + }, + { + "name": "Protocol", + "id": "protocol", + "type": "enum", + "availableOptions": ["http", "https"], + "default": "https", + "description": "The protocol to be used to make the request" + }, + { + "name": "Set indentation count", + "id": "indentCount", + "type": "positiveInteger", + "default": 2, + "description": "Set the number of indentation characters to add per code level" + }, + { + "name": "Set indentation type", + "id": "indentType", + "type": "enum", + "availableOptions": ["Tab", "Space"], + "default": "Space", + "description": "Select the character used to indent lines of code" + }, + { + "name": "Follow redirects", + "id": "followRedirect", + "type": "boolean", + "default": true, + "description": "Automatically follow HTTP redirects" + }, + { + "name": "Trim request body fields", + "id": "trimRequestBody", + "type": "boolean", + "default": false, + "description": "Remove white space and additional lines that may affect the server's response" + }, + { + "name": "Use curl_mime", + "id": "useMimeType", + "type": "boolean", + "default": true, + "description": "Use curl_mime to send multipart/form-data requests" + }, + { + "name": "Set request timeout", + "id": "requestTimeout", + "type": "positiveInteger", + "default": 0, + "description": "Set number of milliseconds the request should wait for a response before timing out (use 0 for infinity)" + } + ] + } + ] + }, + { + "key": "nodejs", + "label": "NodeJs", + "syntax_mode": "javascript", + "variants": [ + { + "key": "Axios", + "options": [ + { + "name": "Set indentation count", + "id": "indentCount", + "type": "positiveInteger", + "default": 2, + "description": "Set the number of indentation characters to add per code level" + }, + { + "name": "Set indentation type", + "id": "indentType", + "type": "enum", + "availableOptions": ["Tab", "Space"], + "default": "Space", + "description": "Select the character used to indent lines of code" + }, + { + "name": "Set request timeout", + "id": "requestTimeout", + "type": "positiveInteger", + "default": 0, + "description": "Set number of milliseconds the request should wait for a response before timing out (use 0 for infinity)" + }, + { + "name": "Follow redirects", + "id": "followRedirect", + "type": "boolean", + "default": true, + "description": "Automatically follow HTTP redirects" + }, + { + "name": "Trim request body fields", + "id": "trimRequestBody", + "type": "boolean", + "default": false, + "description": "Remove white space and additional lines that may affect the server's response" + }, + { + "name": "Enable ES6 features", + "id": "ES6_enabled", + "type": "boolean", + "default": false, + "description": "Modifies code snippet to incorporate ES6 (EcmaScript) features" + } + ] + }, + { + "key": "Native", + "options": [ + { + "name": "Set indentation count", + "id": "indentCount", + "type": "positiveInteger", + "default": 2, + "description": "Set the number of indentation characters to add per code level" + }, + { + "name": "Set indentation type", + "id": "indentType", + "type": "enum", + "availableOptions": ["Tab", "Space"], + "default": "Space", + "description": "Select the character used to indent lines of code" + }, + { + "name": "Set request timeout", + "id": "requestTimeout", + "type": "positiveInteger", + "default": 0, + "description": "Set number of milliseconds the request should wait for a response before timing out (use 0 for infinity)" + }, + { + "name": "Follow redirects", + "id": "followRedirect", + "type": "boolean", + "default": true, + "description": "Automatically follow HTTP redirects" + }, + { + "name": "Trim request body fields", + "id": "trimRequestBody", + "type": "boolean", + "default": false, + "description": "Remove white space and additional lines that may affect the server's response" + }, + { + "name": "Enable ES6 features", + "id": "ES6_enabled", + "type": "boolean", + "default": false, + "description": "Modifies code snippet to incorporate ES6 (EcmaScript) features" + } + ] + } + ] + }, + { + "key": "objective-c", + "label": "Objective-C", + "syntax_mode": "objectivec", + "variants": [ + { + "key": "NSURLSession", + "options": [ + { + "name": "Set indentation count", + "id": "indentCount", + "type": "positiveInteger", + "default": 2, + "description": "Set the number of indentation characters to add per code level" + }, + { + "name": "Set indentation type", + "id": "indentType", + "type": "enum", + "availableOptions": ["Tab", "Space"], + "default": "Space", + "description": "Select the character used to indent lines of code" + }, + { + "name": "Set request timeout", + "id": "requestTimeout", + "type": "positiveInteger", + "default": 10000, + "description": "Set number of milliseconds the request should wait for a response before timing out (use 0 for infinity)" + }, + { + "name": "Trim request body fields", + "id": "trimRequestBody", + "type": "boolean", + "default": false, + "description": "Remove white space and additional lines that may affect the server's response" + }, + { + "name": "Include boilerplate", + "id": "includeBoilerplate", + "type": "boolean", + "default": false, + "description": "Include class definition and import statements in snippet" + } + ] + } + ] + }, + { + "key": "ocaml", + "label": "OCaml", + "syntax_mode": "ocaml", + "variants": [ + { + "key": "Cohttp", + "options": [ + { + "name": "Set indentation count", + "id": "indentCount", + "type": "positiveInteger", + "default": 2, + "description": "Set the number of indentation characters to add per code level" + }, + { + "name": "Set indentation type", + "id": "indentType", + "type": "enum", + "availableOptions": ["Tab", "Space"], + "default": "Space", + "description": "Select the character used to indent lines of code" + }, + { + "name": "Trim request body fields", + "id": "trimRequestBody", + "type": "boolean", + "default": false, + "description": "Remove white space and additional lines that may affect the server's response" + }, + { + "name": "Set request timeout", + "id": "requestTimeout", + "type": "positiveInteger", + "default": 0, + "description": "Set number of milliseconds the request should wait for a response before timing out (use 0 for infinity)" + }, + { + "name": "Follow redirects", + "id": "followRedirect", + "type": "boolean", + "default": true, + "description": "Automatically follow HTTP redirects" + } + ] + } + ] + }, + { + "key": "php", + "label": "PHP", + "syntax_mode": "php", + "variants": [ + { + "key": "cURL", + "options": [ + { + "name": "Set indentation count", + "id": "indentCount", + "type": "positiveInteger", + "default": 2, + "description": "Set the number of indentation characters to add per code level" + }, + { + "name": "Set indentation type", + "id": "indentType", + "type": "enum", + "availableOptions": ["Tab", "Space"], + "default": "Space", + "description": "Select the character used to indent lines of code" + }, + { + "name": "Set request timeout", + "id": "requestTimeout", + "type": "positiveInteger", + "default": 0, + "description": "Set number of milliseconds the request should wait for a response before timing out (use 0 for infinity)" + }, + { + "name": "Follow redirects", + "id": "followRedirect", + "type": "boolean", + "default": true, + "description": "Automatically follow HTTP redirects" + }, + { + "name": "Trim request body fields", + "id": "trimRequestBody", + "type": "boolean", + "default": false, + "description": "Remove white space and additional lines that may affect the server's response" + } + ] + }, + { + "key": "Guzzle", + "options": [ + { + "name": "Set indentation count", + "id": "indentCount", + "type": "positiveInteger", + "default": 2, + "description": "Set the number of indentation characters to add per code level" + }, + { + "name": "Set indentation type", + "id": "indentType", + "type": "enum", + "availableOptions": ["Tab", "Space"], + "default": "Space", + "description": "Select the character used to indent lines of code" + }, + { + "name": "Trim request body fields", + "id": "trimRequestBody", + "type": "boolean", + "default": false, + "description": "Remove white space and additional lines that may affect the server's response" + }, + { + "name": "Set request timeout", + "id": "requestTimeout", + "type": "positiveInteger", + "default": 0, + "description": "Set number of milliseconds the request should wait for a response before timing out (use 0 for infinity)" + }, + { + "name": "Follow redirects", + "id": "followRedirect", + "type": "boolean", + "default": true, + "description": "Automatically follow HTTP redirects" + }, + { + "name": "Set communication type", + "id": "asyncType", + "type": "enum", + "availableOptions": ["async", "sync"], + "default": "async", + "description": "Set if the requests will be asynchronous or synchronous" + }, + { + "name": "Include boilerplate", + "id": "includeBoilerplate", + "type": "boolean", + "default": false, + "description": "Include class definition and import statements in snippet" + } + ] + }, + { + "key": "HTTP_Request2", + "options": [ + { + "name": "Set indentation count", + "id": "indentCount", + "type": "positiveInteger", + "default": 2, + "description": "Set the number of indentation characters to add per code level" + }, + { + "name": "Set indentation type", + "id": "indentType", + "type": "enum", + "default": "Space", + "availableOptions": ["Tab", "Space"], + "description": "Select the character used to indent lines of code" + }, + { + "name": "Set request timeout", + "id": "requestTimeout", + "type": "positiveInteger", + "default": 0, + "description": "Set number of milliseconds the request should wait for a response before timing out (use 0 for infinity)" + }, + { + "name": "Trim request body fields", + "id": "trimRequestBody", + "type": "boolean", + "default": false, + "description": "Remove white space and additional lines that may affect the server's response" + }, + { + "name": "Follow redirects", + "id": "followRedirect", + "type": "boolean", + "default": true, + "description": "Automatically follow HTTP redirects" + } + ] + }, + { + "key": "pecl_http", + "options": [ + { + "name": "Set indentation count", + "id": "indentCount", + "type": "positiveInteger", + "default": 2, + "description": "Set the number of indentation characters to add per code level" + }, + { + "name": "Set indentation type", + "id": "indentType", + "type": "enum", + "default": "Space", + "availableOptions": ["Tab", "Space"], + "description": "Select the character used to indent lines of code" + }, + { + "name": "Set request timeout", + "id": "requestTimeout", + "type": "positiveInteger", + "default": 0, + "description": "Set number of milliseconds the request should wait for a response before timing out (use 0 for infinity)" + }, + { + "name": "Trim request body fields", + "id": "trimRequestBody", + "type": "boolean", + "default": false, + "description": "Remove white space and additional lines that may affect the server's response" + }, + { + "name": "Follow redirects", + "id": "followRedirect", + "type": "boolean", + "default": true, + "description": "Automatically follow HTTP redirects" + } + ] + } + ] + }, + { + "key": "powershell", + "label": "PowerShell", + "syntax_mode": "powershell", + "variants": [ + { + "key": "RestMethod", + "options": [ + { + "name": "Set request timeout", + "id": "requestTimeout", + "type": "positiveInteger", + "default": 0, + "description": "Set number of milliseconds the request should wait for a response before timing out (use 0 for infinity)" + }, + { + "name": "Follow redirects", + "id": "followRedirect", + "type": "boolean", + "default": true, + "description": "Automatically follow HTTP redirects" + }, + { + "name": "Trim request body fields", + "id": "trimRequestBody", + "type": "boolean", + "default": false, + "description": "Remove white space and additional lines that may affect the server's response" + } + ] + } + ] + }, + { + "key": "python", + "label": "Python", + "syntax_mode": "python", + "variants": [ + { + "key": "http.client", + "options": [ + { + "name": "Set indentation count", + "id": "indentCount", + "type": "positiveInteger", + "default": 2, + "description": "Set the number of indentation characters to add per code level" + }, + { + "name": "Set indentation type", + "id": "indentType", + "type": "enum", + "default": "Space", + "availableOptions": ["Tab", "Space"], + "description": "Select the character used to indent lines of code" + }, + { + "name": "Set request timeout", + "id": "requestTimeout", + "type": "positiveInteger", + "default": 0, + "description": "Set number of milliseconds the request should wait for a response before timing out (use 0 for infinity)" + }, + { + "name": "Trim request body fields", + "id": "trimRequestBody", + "type": "boolean", + "default": false, + "description": "Remove white space and additional lines that may affect the server's response" + } + ] + }, + { + "key": "Requests", + "options": [ + { + "name": "Set indentation count", + "id": "indentCount", + "type": "positiveInteger", + "default": 2, + "description": "Set the number of indentation characters to add per code level" + }, + { + "name": "Set indentation type", + "id": "indentType", + "type": "enum", + "availableOptions": ["Tab", "Space"], + "default": "Space", + "description": "Select the character used to indent lines of code" + }, + { + "name": "Set request timeout", + "id": "requestTimeout", + "type": "positiveInteger", + "default": 0, + "description": "Set number of milliseconds the request should wait for a response before timing out (use 0 for infinity)" + }, + { + "name": "Follow redirects", + "id": "followRedirect", + "type": "boolean", + "default": true, + "description": "Automatically follow HTTP redirects" + }, + { + "name": "Trim request body fields", + "id": "trimRequestBody", + "type": "boolean", + "default": false, + "description": "Remove white space and additional lines that may affect the server's response" + } + ] + } + ] + }, + { + "key": "r", + "label": "R", + "syntax_mode": "r", + "variants": [ + { + "key": "httr", + "options": [ + { + "name": "Set indentation count", + "id": "indentCount", + "type": "positiveInteger", + "default": 2, + "description": "Set the number of indentation characters to add per code level" + }, + { + "name": "Set indentation type", + "id": "indentType", + "type": "enum", + "availableOptions": ["Tab", "Space"], + "default": "Space", + "description": "Select the character used to indent lines of code" + }, + { + "name": "Trim request body fields", + "id": "trimRequestBody", + "type": "boolean", + "default": false, + "description": "Remove white space and additional lines that may affect the server's response" + }, + { + "name": "Set request timeout", + "id": "requestTimeout", + "type": "positiveInteger", + "default": 0, + "description": "Set number of milliseconds the request should wait for a response before timing out (use 0 for infinity)" + } + ] + }, + { + "key": "RCurl", + "options": [ + { + "name": "Set indentation count", + "id": "indentCount", + "type": "positiveInteger", + "default": 2, + "description": "Set the number of indentation characters to add per code level" + }, + { + "name": "Set indentation type", + "id": "indentType", + "type": "enum", + "availableOptions": ["Tab", "Space"], + "default": "Space", + "description": "Select the character used to indent lines of code" + }, + { + "name": "Trim request body fields", + "id": "trimRequestBody", + "type": "boolean", + "default": false, + "description": "Remove white space and additional lines that may affect the server's response" + }, + { + "name": "Set request timeout", + "id": "requestTimeout", + "type": "positiveInteger", + "default": 0, + "description": "Set number of milliseconds the request should wait for a response before timing out (use 0 for infinity)" + }, + { + "name": "Follow redirects", + "id": "followRedirect", + "type": "boolean", + "default": true, + "description": "Automatically follow HTTP redirects" + }, + { + "name": "Ignore warnings", + "id": "ignoreWarnings", + "type": "boolean", + "default": false, + "description": "Ignore warnings from R" + } + ] + } + ] + }, + { + "key": "ruby", + "label": "Ruby", + "syntax_mode": "ruby", + "variants": [ + { + "key": "Net::HTTP", + "options": [ + { + "name": "Set indentation count", + "id": "indentCount", + "type": "positiveInteger", + "default": 2, + "description": "Set the number of indentation characters to add per code level" + }, + { + "name": "Set indentation type", + "id": "indentType", + "type": "enum", + "availableOptions": ["Tab", "Space"], + "default": "Space", + "description": "Select the character used to indent lines of code" + }, + { + "name": "Set request timeout", + "id": "requestTimeout", + "type": "positiveInteger", + "default": 0, + "description": "Set number of milliseconds the request should wait for a response before timing out (use 0 for infinity)" + }, + { + "name": "Follow redirects", + "id": "followRedirect", + "type": "boolean", + "default": true, + "description": "Automatically follow HTTP redirects" + }, + { + "name": "Trim request body fields", + "id": "trimRequestBody", + "type": "boolean", + "default": false, + "description": "Remove white space and additional lines that may affect the server's response" + } + ] + } + ] + }, + { + "key": "shell", + "label": "Shell", + "syntax_mode": "powershell", + "variants": [ + { + "key": "Httpie", + "options": [ + { + "name": "Set request timeout", + "id": "requestTimeout", + "type": "positiveInteger", + "default": 0, + "description": "Set number of milliseconds the request should wait for a response before timing out (use 0 for infinity)" + }, + { + "name": "Follow redirects", + "id": "followRedirect", + "type": "boolean", + "default": true, + "description": "Automatically follow HTTP redirects" + } + ] + }, + { + "key": "wget", + "options": [ + { + "name": "Set indentation count", + "id": "indentCount", + "type": "positiveInteger", + "default": 2, + "description": "Set the number of indentation characters to add per code level" + }, + { + "name": "Set indentation type", + "id": "indentType", + "type": "enum", + "availableOptions": ["Tab", "Space"], + "default": "Space", + "description": "Select the character used to indent lines of code" + }, + { + "name": "Set request timeout", + "id": "requestTimeout", + "type": "positiveInteger", + "default": 0, + "description": "Set number of milliseconds the request should wait for a response before timing out (use 0 for infinity)" + }, + { + "name": "Follow redirects", + "id": "followRedirect", + "type": "boolean", + "default": true, + "description": "Automatically follow HTTP redirects" + }, + { + "name": "Trim request body fields", + "id": "trimRequestBody", + "type": "boolean", + "default": false, + "description": "Remove white space and additional lines that may affect the server's response" + } + ] + } + ] + }, + { + "key": "swift", + "label": "Swift", + "syntax_mode": "swift", + "variants": [ + { + "key": "URLSession", + "options": [ + { + "name": "Set indentation count", + "id": "indentCount", + "type": "positiveInteger", + "default": 2, + "description": "Set the number of indentation characters to add per code level" + }, + { + "name": "Set indentation type", + "id": "indentType", + "type": "enum", + "availableOptions": ["Tab", "Space"], + "default": "Space", + "description": "Select the character used to indent lines of code" + }, + { + "name": "Set request timeout", + "id": "requestTimeout", + "type": "positiveInteger", + "default": 0, + "description": "Set number of milliseconds the request should wait for a response before timing out (use 0 for infinity)" + }, + { + "name": "Trim request body fields", + "id": "trimRequestBody", + "type": "boolean", + "default": false, + "description": "Remove white space and additional lines that may affect the server's response" + }, + { + "name": "Follow redirects", + "id": "followRedirect", + "type": "boolean", + "default": true, + "description": "Automatically follow HTTP redirects" + } + ] + } + ] + } +] diff --git a/src/theme/ApiExplorer/CodeSnippets/languages.ts b/src/theme/ApiExplorer/CodeSnippets/languages.ts new file mode 100644 index 000000000..9f640b3e7 --- /dev/null +++ b/src/theme/ApiExplorer/CodeSnippets/languages.ts @@ -0,0 +1,46 @@ +import { CodeSample, Language } from "./code-snippets-types"; + +export function mergeCodeSampleLanguage( + languages: Language[], + codeSamples: CodeSample[] +): Language[] { + return languages.map((language) => { + const languageCodeSamples = codeSamples.filter( + ({ lang }) => lang === language.codeSampleLanguage + ); + + if (languageCodeSamples.length) { + const samples = languageCodeSamples.map(({ lang }) => lang); + const samplesLabels = languageCodeSamples.map( + ({ label, lang }) => label || lang + ); + const samplesSources = languageCodeSamples.map(({ source }) => source); + + return { + ...language, + sample: samples[0], + samples, + samplesSources, + samplesLabels, + }; + } + + return language; + }); +} + +export function getCodeSampleSourceFromLanguage(language: Language) { + if ( + language && + language.sample && + language.samples && + language.samplesSources + ) { + const sampleIndex = language.samples.findIndex( + (smp) => smp === language.sample + ); + return language.samplesSources[sampleIndex]; + } + + return ""; +} diff --git a/src/theme/ApiExplorer/CodeTabs/_CodeTabs.scss b/src/theme/ApiExplorer/CodeTabs/_CodeTabs.scss new file mode 100644 index 000000000..a734be72e --- /dev/null +++ b/src/theme/ApiExplorer/CodeTabs/_CodeTabs.scss @@ -0,0 +1,307 @@ +:root { + --bash-background-color: transparent; + --bash-border-radius: none; + --code-tab-logo-width: 24px; + --code-tab-logo-height: 24px; +} + +[data-theme="dark"] { + --bash-background-color: lightgrey; + --bash-border-radius: 20px; +} + +.openapi-tabs__code-container { + margin-bottom: 1rem; + + &:not(.openapi-tabs__code-container-inner) { + padding: 1rem; + background-color: var(--ifm-pre-background); + border-radius: var(--ifm-global-radius); + border: 1px solid var(--openapi-explorer-border-color); + box-shadow: + 0 2px 3px hsla(222, 8%, 43%, 0.1), + 0 8px 16px -10px hsla(222, 8%, 43%, 0.2); + transition: 300ms; + + &:hover { + box-shadow: + 0 0 0 2px rgba(38, 53, 61, 0.15), + 0 2px 3px hsla(222, 8%, 43%, 0.15), + 0 16px 16px -10px hsla(222, 8%, 43%, 0.2); + } + } + + .openapi-tabs__code-item { + display: flex; + flex-direction: column-reverse; + flex: 0 0 80px; + align-items: center; + padding: 0.5rem 0 !important; + margin-top: 0 !important; + margin-right: 0.5rem; + border: 1px solid transparent; + transition: 300ms; + + &:not(.active):hover { + border: 1px solid var(--openapi-code-tab-border-color); + } + + &:hover { + background-color: transparent; + } + + span { + padding-top: 0.5rem; + color: var(--ifm-font-color-secondary); + font-size: 10px; + text-transform: uppercase; + } + } +} + +.openapi-tabs__code-list-container { + display: flex; + justify-content: flex-start; + padding: 0.25rem; + padding-bottom: 0.6rem; +} + +.openapi-tabs__code-content { + margin-top: unset !important; +} + +.openapi-explorer__code-block code { + max-height: 200px; + font-size: var(--openapi-explorer-font-size-code); + padding-top: var(--ifm-pre-padding); +} + +body[class="ReactModal__Body--open"] { + .openapi-explorer__code-block code { + max-height: 600px; + } +} + +.openapi-tabs__code-item--variant { + color: var(--ifm-color-secondary); + + &.active { + border-color: var(--ifm-toc-border-color); + } +} + +.openapi-tabs__code-item--variant > span { + padding-top: unset !important; + padding-left: 0.5rem !important; + padding-right: 0.5rem !important; +} + +.openapi-tabs__code-item--sample { + color: var(--ifm-color-secondary); + + &.active { + border-color: var(--ifm-toc-border-color); + } +} + +.openapi-tabs__code-item--sample > span { + padding-top: unset !important; + padding-left: 0.5rem !important; + padding-right: 0.5rem !important; +} + +.openapi-tabs__code-item--python { + color: var(--ifm-color-success); + + &::after { + content: ""; + width: var(--code-tab-logo-width); + height: var(--code-tab-logo-height); + background: url("https://raw.githubusercontent.com/devicons/devicon/master/icons/python/python-original.svg") + no-repeat; + margin-block: auto; + } + + &.active { + box-shadow: 0 0 0 3px var(--openapi-code-tab-shadow-color-python); + border-color: var(--openapi-code-tab-border-color-python); + } +} + +.openapi-tabs__code-item--go { + color: var(--ifm-color-info); + + &::after { + content: ""; + width: var(--code-tab-logo-width); + height: var(--code-tab-logo-height); + background: url("https://raw.githubusercontent.com/devicons/devicon/master/icons/go/go-original-wordmark.svg") + no-repeat; + margin-block: auto; + } + + &.active { + box-shadow: 0 0 0 3px var(--openapi-code-tab-shadow-color-go); + border-color: var(--openapi-code-tab-border-color-go); + } +} + +.openapi-tabs__code-item--javascript { + color: var(--ifm-color-warning); + + &::after { + content: ""; + width: var(--code-tab-logo-width); + height: var(--code-tab-logo-height); + background: url("https://raw.githubusercontent.com/devicons/devicon/master/icons/javascript/javascript-original.svg") + no-repeat; + margin-block: auto; + } + + &.active { + box-shadow: 0 0 0 3px var(--openapi-code-tab-shadow-color-js); + border-color: var(--openapi-code-tab-border-color-js); + } +} + +.openapi-tabs__code-item--bash { + color: var(--ifm-color-danger); + + &::after { + content: ""; + width: var(--code-tab-logo-width); + height: var(--code-tab-logo-height); + background: url("https://raw.githubusercontent.com/devicons/devicon/master/icons/bash/bash-plain.svg") + no-repeat; + margin-block: auto; + background-color: var(--bash-background-color); + border-radius: var(--bash-border-radius); + } + + &.active { + box-shadow: 0 0 0 3px var(--openapi-code-tab-shadow-color-bash); + border-color: var(--ifm-color-danger); + } +} + +.openapi-tabs__code-item--ruby { + color: var(--ifm-color-danger); + + &::after { + content: ""; + width: var(--code-tab-logo-width); + height: var(--code-tab-logo-height); + background: url("https://raw.githubusercontent.com/devicons/devicon/master/icons/ruby/ruby-plain.svg") + no-repeat; + margin-block: auto; + } + + &.active { + box-shadow: 0 0 0 3px var(--openapi-code-tab-shadow-color-ruby); + border-color: var(--openapi-code-tab-border-color-ruby); + } +} + +.openapi-tabs__code-item--csharp { + color: var(--ifm-color-gray-500); + + &::after { + content: ""; + width: var(--code-tab-logo-width); + height: var(--code-tab-logo-height); + background: url("https://raw.githubusercontent.com/devicons/devicon/master/icons/csharp/csharp-original.svg") + no-repeat; + margin-block: auto; + } + + &.active { + box-shadow: 0 0 0 3px var(--openapi-code-tab-shadow-color-csharp); + border-color: var(--openapi-code-tab-border-color-csharp); + } +} + +.openapi-tabs__code-item--nodejs { + color: var(--ifm-color-success); + + &::after { + content: ""; + width: var(--code-tab-logo-width); + height: var(--code-tab-logo-height); + background: url("https://raw.githubusercontent.com/devicons/devicon/master/icons/nodejs/nodejs-original.svg") + no-repeat; + margin-block: auto; + } + + &.active { + box-shadow: 0 0 0 3px var(--opeanpi-code-tab-shadow-color-nodejs); + border-color: var(--openapi-code-tab-border-color-nodejs); + } +} + +.openapi-tabs__code-item--php { + color: var(--ifm-color-gray-500); + + &::after { + content: ""; + width: var(--code-tab-logo-width); + height: var(--code-tab-logo-height); + background: url("https://raw.githubusercontent.com/devicons/devicon/master/icons/php/php-original.svg") + no-repeat; + margin-block: auto; + } + + &.active { + box-shadow: 0 0 0 3px var(--openapi-code-tab-shadow-color-php); + border-color: var(--openapi-code-tab-border-color-php); + } +} + +.openapi-tabs__code-item--java { + color: var(--ifm-color-warning); + + &::after { + content: ""; + width: var(--code-tab-logo-width); + height: var(--code-tab-logo-height); + background: url("https://raw.githubusercontent.com/devicons/devicon/master/icons/java/java-original.svg") + no-repeat; + margin-block: auto; + } + + &.active { + box-shadow: 0 0 0 3px var(--openapi-code-tab-shadow-color-java); + border-color: var(--openapi-code-tab-border-color-java); + } +} + +.openapi-tabs__code-item--powershell { + color: var(--ifm-color-info); + + &::after { + content: ""; + width: var(--code-tab-logo-width); + height: var(--code-tab-logo-height); + background: url("https://raw.githubusercontent.com/devicons/devicon/master/icons/windows8/windows8-original.svg") + no-repeat; + margin-block: auto; + } + + &.active { + box-shadow: 0 0 0 3px var(--opeanpi-code-tab-shadow-color-powershell); + border-color: var(--openapi-code-tab-border-color-powershell); + } +} + +@media only screen and (min-width: 768px) and (max-width: 996px) { + .openapi-tabs__code-list { + justify-content: space-around; + } +} + +.ReactModal__Body--open { + overflow: hidden !important; +} + +.openapi-modal--open { + background-color: rgba(0, 0, 0, 0.7) !important; +} diff --git a/src/theme/ApiExplorer/CodeTabs/index.tsx b/src/theme/ApiExplorer/CodeTabs/index.tsx new file mode 100644 index 000000000..8454b4b85 --- /dev/null +++ b/src/theme/ApiExplorer/CodeTabs/index.tsx @@ -0,0 +1,206 @@ +import React, { cloneElement, ReactElement } from "react"; + +import { + sanitizeTabsChildren, + type TabProps, + useScrollPositionBlocker, + useTabs, +} from "@docusaurus/theme-common/internal"; +import { TabItemProps } from "@docusaurus/theme-common/lib/utils/tabsUtils"; +import useIsBrowser from "@docusaurus/useIsBrowser"; +import { Language } from "@theme/ApiExplorer/CodeSnippets"; +import clsx from "clsx"; + +export interface Props { + action: { + [key: string]: React.Dispatch; + }; + currentLanguage: Language; + languageSet: Language[]; + includeVariant: boolean; +} + +export interface CodeTabsProps extends Props, TabProps { + includeSample?: boolean; +} + +function TabList({ + action, + currentLanguage, + languageSet, + includeVariant, + includeSample, + className, + block, + selectedValue, + selectValue, + tabValues, +}: CodeTabsProps & ReturnType) { + const tabRefs: (HTMLLIElement | null)[] = []; + const { blockElementScrollPositionUntilNextRender } = + useScrollPositionBlocker(); + + const handleTabChange = ( + event: + | React.FocusEvent + | React.MouseEvent + | React.KeyboardEvent + ) => { + const newTab = event.currentTarget; + const newTabIndex = tabRefs.indexOf(newTab); + const newTabValue = tabValues[newTabIndex]!.value; + + if (newTabValue !== selectedValue) { + blockElementScrollPositionUntilNextRender(newTab); + selectValue(newTabValue); + } + + if (action) { + let newLanguage: Language; + if (currentLanguage && includeVariant) { + newLanguage = languageSet.filter( + (lang: Language) => lang.language === currentLanguage + )[0]; + newLanguage.variant = newTabValue; + action.setSelectedVariant(newTabValue.toLowerCase()); + } else if (currentLanguage && includeSample) { + newLanguage = languageSet.filter( + (lang: Language) => lang.language === currentLanguage + )[0]; + newLanguage.sample = newTabValue; + action.setSelectedSample(newTabValue); + } else { + newLanguage = languageSet.filter( + (lang: Language) => lang.language === newTabValue + )[0]; + action.setSelectedVariant(newLanguage.variant.toLowerCase()); + action.setSelectedSample(newLanguage.sample); + } + action.setLanguage(newLanguage); + } + }; + + const handleKeydown = (event: React.KeyboardEvent) => { + let focusElement: HTMLLIElement | null = null; + + switch (event.key) { + case "Enter": { + handleTabChange(event); + break; + } + case "ArrowRight": { + const nextTab = tabRefs.indexOf(event.currentTarget) + 1; + focusElement = tabRefs[nextTab] ?? tabRefs[0]!; + break; + } + case "ArrowLeft": { + const prevTab = tabRefs.indexOf(event.currentTarget) - 1; + focusElement = tabRefs[prevTab] ?? tabRefs[tabRefs.length - 1]!; + break; + } + default: + break; + } + + focusElement?.focus(); + }; + + return ( +
      + {tabValues.map(({ value, label, attributes }) => ( +
    • tabRefs.push(tabControl)} + onKeyDown={handleKeydown} + onClick={handleTabChange} + {...attributes} + className={clsx( + "tabs__item", + "openapi-tabs__code-item", + attributes?.className as string, + { + active: selectedValue === value, + } + )} + > + {label ?? value} +
    • + ))} +
    + ); +} + +function TabContent({ + lazy, + children, + selectedValue, +}: CodeTabsProps & ReturnType): React.JSX.Element | null { + const childTabs = (Array.isArray(children) ? children : [children]).filter( + Boolean + ) as ReactElement[]; + if (lazy) { + const selectedTabItem = childTabs.find( + (tabItem) => tabItem.props.value === selectedValue + ); + if (!selectedTabItem) { + // fail-safe or fail-fast? not sure what's best here + return null; + } + return cloneElement(selectedTabItem, { className: "margin-top--md" }); + } + return ( +
    + {childTabs.map((tabItem, i) => + cloneElement(tabItem, { + key: i, + hidden: tabItem.props.value !== selectedValue, + }) + )} +
    + ); +} + +function TabsComponent(props: CodeTabsProps & Props): React.JSX.Element { + const tabs = useTabs(props); + const { className } = props; + + return ( +
    + + +
    + ); +} + +export default function CodeTabs( + props: CodeTabsProps & Props +): React.JSX.Element { + const isBrowser = useIsBrowser(); + return ( + + {sanitizeTabsChildren(props.children)} + + ); +} diff --git a/src/theme/ApiExplorer/ContentType/index.tsx b/src/theme/ApiExplorer/ContentType/index.tsx new file mode 100644 index 000000000..ecc95b22a --- /dev/null +++ b/src/theme/ApiExplorer/ContentType/index.tsx @@ -0,0 +1,31 @@ +import React from "react"; + +import FormItem from "@theme/ApiExplorer/FormItem"; +import FormSelect from "@theme/ApiExplorer/FormSelect"; +import { useTypedDispatch, useTypedSelector } from "@theme/ApiItem/hooks"; + +import { setContentType } from "./slice"; + +function ContentType() { + const value = useTypedSelector((state: any) => state.contentType.value); + const options = useTypedSelector((state: any) => state.contentType.options); + const dispatch = useTypedDispatch(); + + if (options.length <= 1) { + return null; + } + + return ( + + ) => + dispatch(setContentType(e.target.value)) + } + /> + + ); +} + +export default ContentType; diff --git a/src/theme/ApiExplorer/ContentType/slice.ts b/src/theme/ApiExplorer/ContentType/slice.ts new file mode 100644 index 000000000..b0c3221a0 --- /dev/null +++ b/src/theme/ApiExplorer/ContentType/slice.ts @@ -0,0 +1,22 @@ +import { createSlice, PayloadAction } from "@reduxjs/toolkit"; + +export interface State { + value: string; + options: string[]; +} + +const initialState: State = {} as any; + +export const slice = createSlice({ + name: "contentType", + initialState, + reducers: { + setContentType: (state, action: PayloadAction) => { + state.value = action.payload; + }, + }, +}); + +export const { setContentType } = slice.actions; + +export default slice.reducer; diff --git a/src/theme/ApiExplorer/Export/index.tsx b/src/theme/ApiExplorer/Export/index.tsx new file mode 100644 index 000000000..c8a201028 --- /dev/null +++ b/src/theme/ApiExplorer/Export/index.tsx @@ -0,0 +1,40 @@ +import React from "react"; + +import fileSaver from "file-saver"; + +const saveFile = (url: string) => { + let fileName; + if (url.endsWith("json") || url.endsWith("yaml") || url.endsWith("yml")) { + fileName = url.substring(url.lastIndexOf("/") + 1); + } + fileSaver.saveAs(url, fileName ? fileName : "openapi.txt"); +}; + +function Export({ url, proxy }: any) { + return ( +
    + ); +} + +export default Export; diff --git a/src/theme/ApiExplorer/FloatingButton/_FloatingButton.scss b/src/theme/ApiExplorer/FloatingButton/_FloatingButton.scss new file mode 100644 index 000000000..73c9627ce --- /dev/null +++ b/src/theme/ApiExplorer/FloatingButton/_FloatingButton.scss @@ -0,0 +1,27 @@ +.openapi-explorer__floating-btn { + position: relative; + + button { + position: relative; + background: var(--ifm-color-emphasis-900); + border: none; + border-radius: var(--ifm-global-radius); + color: var(--ifm-color-emphasis-100); + cursor: pointer; + padding: 0.4rem 0.5rem; + opacity: 0; + visibility: hidden; + transition: + opacity 0.2s ease-in-out, + visibility 0.2s ease-in-out, + bottom 0.2s ease-in-out; + position: absolute; + right: calc(var(--ifm-pre-padding) / 2); + } +} +.openapi-explorer__floating-btn:hover button, +.openapi-explorer__floating-btn:focus-visible button, +.openapi-explorer__floating-btn button:focus-visible { + visibility: visible; + opacity: 1; +} diff --git a/src/theme/ApiExplorer/FloatingButton/index.tsx b/src/theme/ApiExplorer/FloatingButton/index.tsx new file mode 100644 index 000000000..c1bef2ea5 --- /dev/null +++ b/src/theme/ApiExplorer/FloatingButton/index.tsx @@ -0,0 +1,22 @@ +import React from "react"; + +export interface Props { + label?: string; + onClick?: React.MouseEventHandler; + children?: React.ReactNode; +} + +function FloatingButton({ label, onClick, children }: Props) { + return ( +
    + {label && ( + + )} + {children} +
    + ); +} + +export default FloatingButton; diff --git a/src/theme/ApiExplorer/FormFileUpload/_FormFileUpload.scss b/src/theme/ApiExplorer/FormFileUpload/_FormFileUpload.scss new file mode 100644 index 000000000..0b0033c3b --- /dev/null +++ b/src/theme/ApiExplorer/FormFileUpload/_FormFileUpload.scss @@ -0,0 +1,72 @@ +.openapi-explorer__dropzone { + display: inline-flex; + align-items: center; + justify-content: center; + cursor: pointer; + border: 2px dashed var(--openapi-monaco-border-color); + background-color: var(--openapi-input-background); + + width: 100%; + border-radius: 4px; + padding: var(--ifm-pre-padding); + font-size: var(--ifm-code-font-size); + + &:hover { + border: 2px dashed var(--ifm-color-primary); + background: linear-gradient( + var(--openapi-dropzone-hover-shim), + var(--openapi-dropzone-hover-shim) + ), + linear-gradient(var(--ifm-color-primary), var(--ifm-color-primary)); + + .openapi-explorer__dropzone-content { + color: var(--ifm-pre-color); + } + } +} + +.openapi-explorer__dropzone-hover { + display: inline-flex; + align-items: center; + justify-content: center; + cursor: pointer; + border: 2px dashed var(--openapi-monaco-border-color); + background-color: var(--openapi-input-background); + width: 100%; + border-radius: 4px; + padding: var(--ifm-pre-padding); + font-size: var(--ifm-code-font-size); + border: 2px dashed var(--ifm-color-primary); + + background: linear-gradient( + var(--openapi-dropzone-hover-shim), + var(--openapi-dropzone-hover-shim) + ), + linear-gradient(var(--ifm-color-primary), var(--ifm-color-primary)); + + .openapi-explorer__dropzone-content { + display: flex; + align-items: center; + justify-content: center; + flex-wrap: wrap; + margin: var(--ifm-pre-padding) 0; + color: var(--ifm-pre-color); + } + + .openapi-explorer__file-name { + margin: 0 calc(var(--ifm-pre-padding) * 1.5); + white-space: nowrap; + overflow: hidden; + text-overflow: ellipsis; + flex: 1; + } +} + +.openapi-explorer__dropzone-content { + display: flex; + align-items: center; + justify-content: center; + flex-wrap: wrap; + margin: var(--ifm-pre-padding) 0; + color: var(--openapi-dropzone-color); +} diff --git a/src/theme/ApiExplorer/FormFileUpload/index.tsx b/src/theme/ApiExplorer/FormFileUpload/index.tsx new file mode 100644 index 000000000..5d5831c44 --- /dev/null +++ b/src/theme/ApiExplorer/FormFileUpload/index.tsx @@ -0,0 +1,112 @@ +import React, { useState } from "react"; + +import FloatingButton from "@theme/ApiExplorer/FloatingButton"; +import MagicDropzone from "react-magic-dropzone"; + +type PreviewFile = { preview: string } & File; + +interface RenderPreviewProps { + file: PreviewFile; +} + +function RenderPreview({ file }: RenderPreviewProps) { + switch (file.type) { + case "image/png": + case "image/jpeg": + case "image/jpg": + case "image/svg+xml": + return ( + + ); + default: + return ( +
    + + + + +
    {file.name}
    +
    + ); + } +} + +export interface Props { + placeholder: string; + onChange?(file?: File): any; +} + +function FormFileUpload({ placeholder, onChange }: Props) { + const [hover, setHover] = useState(false); + const [file, setFile] = useState(); + + function setAndNotifyFile(file?: PreviewFile) { + setFile(file); + onChange?.(file); + } + + function handleDrop(accepted: PreviewFile[]) { + const [file] = accepted; + setAndNotifyFile(file); + setHover(false); + } + + return ( + + setHover(true)} + onDragLeave={() => setHover(false)} + multiple={false} + style={{ marginTop: "calc(var(--ifm-pre-padding) / 2)" }} + > + {file ? ( + <> + + + + ) : ( +
    + {placeholder} +
    + )} +
    +
    + ); +} + +export default FormFileUpload; diff --git a/src/theme/ApiExplorer/FormItem/_FormItem.scss b/src/theme/ApiExplorer/FormItem/_FormItem.scss new file mode 100644 index 000000000..25b59053b --- /dev/null +++ b/src/theme/ApiExplorer/FormItem/_FormItem.scss @@ -0,0 +1,21 @@ +.openapi-explorer__form-item { + padding: var(--openapi-explorer-padding-input); + font-size: var(--openapi-explorer-font-size-input); + + &:first-child { + margin-top: 0; + } + + .required { + color: var(--openapi-required); + } +} + +.openapi-explorer__form-item-body-container { + padding: 0; +} + +.openapi-explorer__form-item-label { + font-family: var(--ifm-font-family-monospace); + font-weight: bold; +} diff --git a/src/theme/ApiExplorer/FormItem/index.tsx b/src/theme/ApiExplorer/FormItem/index.tsx new file mode 100644 index 000000000..992f6c605 --- /dev/null +++ b/src/theme/ApiExplorer/FormItem/index.tsx @@ -0,0 +1,26 @@ +import React from "react"; + +import clsx from "clsx"; + +export interface Props { + label?: string; + type?: string; + required?: boolean | undefined; + children?: React.ReactNode; + className?: string; +} + +function FormItem({ label, type, required, children, className }: Props) { + return ( +
    + {label && ( + + )} + {type && — {type}} + {required && required} +
    {children}
    +
    + ); +} + +export default FormItem; diff --git a/src/theme/ApiExplorer/FormMultiSelect/_FormMultiSelect.scss b/src/theme/ApiExplorer/FormMultiSelect/_FormMultiSelect.scss new file mode 100644 index 000000000..da855e0e9 --- /dev/null +++ b/src/theme/ApiExplorer/FormMultiSelect/_FormMultiSelect.scss @@ -0,0 +1,30 @@ +.openapi-explorer__multi-select-input { + width: 100%; + margin-top: calc(var(--ifm-pre-padding) / 2); + padding: 1rem; + border-radius: 4px; + border: 1px solid transparent; + background-color: var(--openapi-input-background); + outline: none; + font-size: var(--openapi-explorer-font-size-input); + color: var(--ifm-pre-color); + -moz-appearance: none; + -webkit-appearance: none; + appearance: none; + + &:focus { + border: 1px solid var(--openapi-input-border); + } + + &.error { + border: 1px solid var(--ifm-color-danger); + } + + option { + border-radius: 0.25rem; + color: var(--ifm-menu-color); + margin: 0.25rem 0; + padding: var(--ifm-menu-link-padding-vertical) + var(--ifm-menu-link-padding-horizontal); + } +} diff --git a/src/theme/ApiExplorer/FormMultiSelect/index.tsx b/src/theme/ApiExplorer/FormMultiSelect/index.tsx new file mode 100644 index 000000000..7678ab797 --- /dev/null +++ b/src/theme/ApiExplorer/FormMultiSelect/index.tsx @@ -0,0 +1,50 @@ +import React from "react"; + +import clsx from "clsx"; + +export interface Props { + value?: string; + options: string[]; + onChange?: React.ChangeEventHandler; + showErrors?: boolean; +} + +function FormMultiSelect({ value, options, onChange, showErrors }: Props) { + if (options.length === 0) { + return null; + } + + let height; + if (options.length < 6) { + const selectPadding = 12 * 2; + const rawHeight = options.length * 29; + const innerMargins = 4 * options.length - 1; + const outerMargins = 4 * 2; + const mysteryScroll = 1; + height = + rawHeight + innerMargins + outerMargins + selectPadding + mysteryScroll; + } + + return ( + + ); +} + +export default FormMultiSelect; diff --git a/src/theme/ApiExplorer/FormSelect/_FormSelect.scss b/src/theme/ApiExplorer/FormSelect/_FormSelect.scss new file mode 100644 index 000000000..86872613d --- /dev/null +++ b/src/theme/ApiExplorer/FormSelect/_FormSelect.scss @@ -0,0 +1,43 @@ +html[data-theme="dark"] .openapi-explorer__select-input { + margin-top: calc(var(--ifm-pre-padding) / 2); + background-color: var(--openapi-input-background); + border: none; + outline: none; + width: 100%; + color: var(--ifm-pre-color); + + border-radius: 4px; + -moz-appearance: none; + -webkit-appearance: none; + appearance: none; + + background-image: url('data:image/svg+xml;charset=US-ASCII,'); + background-repeat: no-repeat; + background-position: right var(--ifm-pre-padding) top 50%; + background-size: auto auto; +} + +.openapi-explorer__select-input { + width: 100%; + margin-top: calc(var(--ifm-pre-padding) / 2); + padding: var(--openapi-explorer-padding-input); + border: none; + outline: none; + border-radius: 4px; + background-color: var(--openapi-input-background); + font-size: var(--openapi-explorer-font-size-input); + font-family: var(--ifm-font-family-monospace); + color: var(--ifm-pre-color); + -moz-appearance: none; + -webkit-appearance: none; + appearance: none; + + background-image: url('data:image/svg+xml;charset=US-ASCII,'); + background-repeat: no-repeat; + background-position: right var(--ifm-pre-padding) top 50%; + background-size: auto auto; + + &:focus { + box-shadow: inset 0px 0px 0px 2px var(--openapi-input-border); + } +} diff --git a/src/theme/ApiExplorer/FormSelect/index.tsx b/src/theme/ApiExplorer/FormSelect/index.tsx new file mode 100644 index 000000000..f1933674a --- /dev/null +++ b/src/theme/ApiExplorer/FormSelect/index.tsx @@ -0,0 +1,31 @@ +import React from "react"; + +export interface Props { + value?: string; + options?: string[]; + onChange?: React.ChangeEventHandler; +} + +function FormSelect({ value, options, onChange }: Props) { + if (!Array.isArray(options) || options.length === 0) { + return null; + } + + return ( + + ); +} + +export default FormSelect; diff --git a/src/theme/ApiExplorer/FormTextInput/_FormTextInput.scss b/src/theme/ApiExplorer/FormTextInput/_FormTextInput.scss new file mode 100644 index 000000000..8c02e92a9 --- /dev/null +++ b/src/theme/ApiExplorer/FormTextInput/_FormTextInput.scss @@ -0,0 +1,34 @@ +.openapi-explorer__form-item-input { + margin-top: calc(var(--ifm-pre-padding) / 2); + background-color: var(--openapi-input-background); + border: 1px solid transparent; + outline: none; + width: 100%; + color: var(--ifm-pre-color); + padding: var(--openapi-explorer-padding-input); + border-radius: 4px; + + &:hover { + border: 1px solid var(--ifm-toc-border-color); + } + + &:focus { + border: 1px solid var(--ifm-color-primary); + box-shadow: none; + } + + &.error { + border: 1px solid var(--openapi-required); + } +} + +.openapi-explorer__input-error { + font-size: var(--openapi-explorer-font-size-input); + color: var(--openapi-required); + padding-top: var(--openapi-explorer-padding-input); + + &::before { + display: inline; + content: "⚠ "; + } +} diff --git a/src/theme/ApiExplorer/FormTextInput/index.tsx b/src/theme/ApiExplorer/FormTextInput/index.tsx new file mode 100644 index 000000000..e70736e06 --- /dev/null +++ b/src/theme/ApiExplorer/FormTextInput/index.tsx @@ -0,0 +1,73 @@ +// @ts-nocheck +import React from "react"; + +import { ErrorMessage } from "@hookform/error-message"; +import clsx from "clsx"; +import { useFormContext } from "react-hook-form"; + +export interface Props { + value?: string; + placeholder?: string; + password?: boolean; + onChange?: React.ChangeEventHandler; +} + +function FormTextInput({ + isRequired, + value, + placeholder, + password, + onChange, + paramName, +}: Props) { + placeholder = placeholder?.split("\n")[0]; + + const { + register, + formState: { errors }, + } = useFormContext(); + + const showErrorMessage = errors?.[paramName]?.message; + + return ( + <> + {paramName ? ( + + ) : ( + + )} + {showErrorMessage && ( + ( +
    {message}
    + )} + /> + )} + + ); +} + +export default FormTextInput; diff --git a/src/theme/ApiExplorer/LiveEditor/_LiveEditor.scss b/src/theme/ApiExplorer/LiveEditor/_LiveEditor.scss new file mode 100644 index 000000000..9dd7393c0 --- /dev/null +++ b/src/theme/ApiExplorer/LiveEditor/_LiveEditor.scss @@ -0,0 +1,15 @@ +.openapi-explorer__playground-container { + margin-top: 1rem; + margin-bottom: var(--ifm-leading); + border-radius: var(--ifm-global-radius); + box-shadow: var(--ifm-global-shadow-lw); + overflow: auto; + max-height: 500px; +} + +.openapi-explorer__playground-editor { + font: var(--ifm-code-font-size) / var(--ifm-pre-line-height) + var(--ifm-font-family-monospace) !important; + /* rtl:ignore */ + direction: ltr; +} diff --git a/src/theme/ApiExplorer/LiveEditor/index.tsx b/src/theme/ApiExplorer/LiveEditor/index.tsx new file mode 100644 index 000000000..deab9e833 --- /dev/null +++ b/src/theme/ApiExplorer/LiveEditor/index.tsx @@ -0,0 +1,105 @@ +import React, { useEffect, useState } from "react"; + +import { usePrismTheme } from "@docusaurus/theme-common"; +import useIsBrowser from "@docusaurus/useIsBrowser"; +import { ErrorMessage } from "@hookform/error-message"; +import { setStringRawBody } from "@theme/ApiExplorer/Body/slice"; +import clsx from "clsx"; +import { Controller, useFormContext } from "react-hook-form"; +import { LiveProvider, LiveEditor, withLive } from "react-live"; + +function Live({ onEdit, showErrors }: any) { + const isBrowser = useIsBrowser(); + const [editorDisabled, setEditorDisabled] = useState(false); + + return ( +
    setEditorDisabled(false)} + onBlur={() => setEditorDisabled(true)} + > + +
    + ); +} + +const LiveComponent = withLive(Live); + +function App({ + children, + transformCode, + value, + language, + action, + required: isRequired, + ...props +}: any): JSX.Element { + const prismTheme = usePrismTheme(); + const [code, setCode] = React.useState(children); + + useEffect(() => { + action(setStringRawBody(code)); + }, [action, code]); + + const { + control, + formState: { errors }, + } = useFormContext(); + + const showErrorMessage = errors?.requestBody; + + const handleChange = (snippet: string, onChange: any) => { + setCode(snippet); + onChange(snippet); + }; + + return ( +
    + `${code};`)} + theme={prismTheme} + language={language} + {...props} + > + ( + handleChange(e, onChange)} + name={name} + showErrors={showErrorMessage} + /> + )} + /> + {showErrorMessage && ( + ( +
    {message}
    + )} + /> + )} +
    +
    + ); +} + +const LiveApp = withLive(App); +export default LiveApp; diff --git a/src/theme/ApiExplorer/MethodEndpoint/_MethodEndpoint.scss b/src/theme/ApiExplorer/MethodEndpoint/_MethodEndpoint.scss new file mode 100644 index 000000000..9d22e85f0 --- /dev/null +++ b/src/theme/ApiExplorer/MethodEndpoint/_MethodEndpoint.scss @@ -0,0 +1,22 @@ +.openapi__method-endpoint { + display: flex; + align-items: center; + max-width: 100%; + width: fit-content; + padding: 0.65rem; + border: 1px solid var(--ifm-toc-border-color); +} + +.openapi__method-endpoint-path { + margin-bottom: 0; + margin-left: 0.5rem; + font-size: 12px; + font-weight: normal; + font-family: var(--ifm-font-family-monospace); +} + +.openapi__divider { + width: 100%; + margin: 1.5rem 0; + border-bottom: 1px solid var(--ifm-toc-border-color); +} diff --git a/src/theme/ApiExplorer/MethodEndpoint/index.tsx b/src/theme/ApiExplorer/MethodEndpoint/index.tsx new file mode 100644 index 000000000..b797f0641 --- /dev/null +++ b/src/theme/ApiExplorer/MethodEndpoint/index.tsx @@ -0,0 +1,80 @@ +import React from "react"; + +import BrowserOnly from "@docusaurus/BrowserOnly"; + +import { useTypedSelector } from "@theme/ApiItem/hooks"; + +function colorForMethod(method: string) { + switch (method.toLowerCase()) { + case "get": + return "primary"; + case "post": + return "success"; + case "delete": + return "danger"; + case "put": + return "info"; + case "patch": + return "warning"; + case "head": + return "secondary"; + case "event": + return "secondary"; + default: + return undefined; + } +} + +export interface Props { + method: string; + path: string; +} + +function MethodEndpoint({ method, path }: Props) { + let serverValue = useTypedSelector((state: any) => state.server.value); + let serverUrlWithVariables = ""; + + const renderServerUrl = () => { + if (serverValue && serverValue.variables) { + serverUrlWithVariables = serverValue.url.replace(/\/$/, ""); + + Object.keys(serverValue.variables).forEach((variable) => { + serverUrlWithVariables = serverUrlWithVariables.replace( + `{${variable}}`, + serverValue.variables?.[variable].default ?? "" + ); + }); + } + + return ( + + {() => { + if (serverUrlWithVariables.length) { + return serverUrlWithVariables; + } else if (serverValue && serverValue.url) { + return serverValue.url; + } + }} + + ); + }; + + return ( + <> +
    +        
    +          {method === "event" ? "Webhook" : method.toUpperCase()}
    +        {" "}
    +        {method !== "event" && (
    +          

    + {renderServerUrl()} + {`${path.replace(/{([a-z0-9-_]+)}/gi, ":$1")}`} +

    + )} +
    +
    + + ); +} + +export default MethodEndpoint; diff --git a/src/theme/ApiExplorer/ParamOptions/ParamFormItems/ParamArrayFormItem.tsx b/src/theme/ApiExplorer/ParamOptions/ParamFormItems/ParamArrayFormItem.tsx new file mode 100644 index 000000000..c3197dfc3 --- /dev/null +++ b/src/theme/ApiExplorer/ParamOptions/ParamFormItems/ParamArrayFormItem.tsx @@ -0,0 +1,149 @@ +import React, { useEffect, useState } from "react"; + +import { ErrorMessage } from "@hookform/error-message"; +import { nanoid } from "@reduxjs/toolkit"; +import FormSelect from "@theme/ApiExplorer/FormSelect"; +import FormTextInput from "@theme/ApiExplorer/FormTextInput"; +import { Param, setParam } from "@theme/ApiExplorer/ParamOptions/slice"; +import { useTypedDispatch } from "@theme/ApiItem/hooks"; +import { Controller, useFormContext } from "react-hook-form"; + +export interface ParamProps { + param: Param; +} + +function ArrayItem({ + param, + onChange, +}: ParamProps & { onChange(value?: string): any }) { + if (param.schema?.items?.type === "boolean") { + return ( + ) => { + const val = e.target.value; + onChange(val === "---" ? undefined : val); + }} + /> + ); + } + + return ( + ) => { + onChange(e.target.value); + }} + /> + ); +} + +export default function ParamArrayFormItem({ param }: ParamProps) { + const [items, setItems] = useState<{ id: string; value?: string }[]>([]); + const dispatch = useTypedDispatch(); + + const { + control, + formState: { errors }, + } = useFormContext(); + + const showErrorMessage = errors?.paramArray?.message; + + function handleAddItem() { + setItems((i) => [ + ...i, + { + id: nanoid(), + }, + ]); + } + + useEffect(() => { + const values = items + .map((item) => item.value) + .filter((item): item is string => !!item); + + dispatch( + setParam({ + ...param, + value: values.length > 0 ? values : undefined, + }) + ); + // eslint-disable-next-line react-hooks/exhaustive-deps + }, [items]); + + function handleDeleteItem(itemToDelete: { id: string }) { + return () => { + const newItems = items.filter((i) => i.id !== itemToDelete.id); + setItems(newItems); + }; + } + + function handleChangeItem(itemToUpdate: { id: string }, onChange: any) { + return (value: string) => { + const newItems = items.map((i) => { + if (i.id === itemToUpdate.id) { + return { ...i, value: value }; + } + return i; + }); + setItems(newItems); + onChange(newItems); + }; + } + + return ( + <> + ( + <> + {items.map((item) => ( +
    + + +
    + ))} + + + )} + /> + {showErrorMessage && ( + ( +
    {message}
    + )} + /> + )} + + ); +} diff --git a/src/theme/ApiExplorer/ParamOptions/ParamFormItems/ParamBooleanFormItem.tsx b/src/theme/ApiExplorer/ParamOptions/ParamFormItems/ParamBooleanFormItem.tsx new file mode 100644 index 000000000..df898a449 --- /dev/null +++ b/src/theme/ApiExplorer/ParamOptions/ParamFormItems/ParamBooleanFormItem.tsx @@ -0,0 +1,57 @@ +import React from "react"; + +import { ErrorMessage } from "@hookform/error-message"; +import FormSelect from "@theme/ApiExplorer/FormSelect"; +import { Param, setParam } from "@theme/ApiExplorer/ParamOptions/slice"; +import { useTypedDispatch } from "@theme/ApiItem/hooks"; +import { Controller, useFormContext } from "react-hook-form"; + +export interface ParamProps { + param: Param; +} + +export default function ParamBooleanFormItem({ param }: ParamProps) { + const dispatch = useTypedDispatch(); + + const { + control, + formState: { errors }, + } = useFormContext(); + + const showErrorMessage = errors?.paramBoolean; + + return ( + <> + ( + ) => { + const val = e.target.value; + dispatch( + setParam({ + ...param, + value: val === "---" ? undefined : val, + }) + ); + onChange(val); + }} + /> + )} + /> + {showErrorMessage && ( + ( +
    {message}
    + )} + /> + )} + + ); +} diff --git a/src/theme/ApiExplorer/ParamOptions/ParamFormItems/ParamMultiSelectFormItem.tsx b/src/theme/ApiExplorer/ParamOptions/ParamFormItems/ParamMultiSelectFormItem.tsx new file mode 100644 index 000000000..7a70f470d --- /dev/null +++ b/src/theme/ApiExplorer/ParamOptions/ParamFormItems/ParamMultiSelectFormItem.tsx @@ -0,0 +1,79 @@ +import React from "react"; + +import { ErrorMessage } from "@hookform/error-message"; +import FormMultiSelect from "@theme/ApiExplorer/FormMultiSelect"; +import { Param, setParam } from "@theme/ApiExplorer/ParamOptions/slice"; +import { useTypedDispatch, useTypedSelector } from "@theme/ApiItem/hooks"; +import { Controller, useFormContext } from "react-hook-form"; + +export interface ParamProps { + param: Param; +} + +export default function ParamMultiSelectFormItem({ param }: ParamProps) { + const { + control, + formState: { errors }, + } = useFormContext(); + + const showErrorMessage = errors?.paramMultiSelect; + + const dispatch = useTypedDispatch(); + + const options = param.schema?.items?.enum ?? []; + + const pathParams = useTypedSelector((state: any) => state.params.path); + const queryParams = useTypedSelector((state: any) => state.params.query); + const cookieParams = useTypedSelector((state: any) => state.params.cookie); + const headerParams = useTypedSelector((state: any) => state.params.header); + + const paramTypeToWatch = pathParams.length + ? pathParams + : queryParams.length + ? queryParams + : cookieParams.length + ? cookieParams + : headerParams; + + const handleChange = (e: any, onChange: any) => { + const values = Array.prototype.filter + .call(e.target.options, (o) => o.selected) + .map((o) => o.value); + + dispatch( + setParam({ + ...param, + value: values.length > 0 ? values : undefined, + }) + ); + + onChange(paramTypeToWatch); + }; + + return ( + <> + ( + handleChange(e, onChange)} + showErrors={showErrorMessage} + /> + )} + /> + {showErrorMessage && ( + ( +
    {message}
    + )} + /> + )} + + ); +} diff --git a/src/theme/ApiExplorer/ParamOptions/ParamFormItems/ParamSelectFormItem.tsx b/src/theme/ApiExplorer/ParamOptions/ParamFormItems/ParamSelectFormItem.tsx new file mode 100644 index 000000000..ef07502ee --- /dev/null +++ b/src/theme/ApiExplorer/ParamOptions/ParamFormItems/ParamSelectFormItem.tsx @@ -0,0 +1,58 @@ +import React from "react"; + +import { ErrorMessage } from "@hookform/error-message"; +import FormSelect from "@theme/ApiExplorer/FormSelect"; +import { Param, setParam } from "@theme/ApiExplorer/ParamOptions/slice"; +import { useTypedDispatch } from "@theme/ApiItem/hooks"; +import { Controller, useFormContext } from "react-hook-form"; + +export interface ParamProps { + param: Param; +} + +export default function ParamSelectFormItem({ param }: ParamProps) { + const { + control, + formState: { errors }, + } = useFormContext(); + + const showErrorMessage = errors?.paramSelect; + + const dispatch = useTypedDispatch(); + + const options = param.schema?.enum ?? []; + + return ( + <> + ( + ) => { + const val = e.target.value; + dispatch( + setParam({ + ...param, + value: val === "---" ? undefined : val, + }) + ); + onChange(val); + }} + /> + )} + /> + {showErrorMessage && ( + ( +
    {message}
    + )} + /> + )} + + ); +} diff --git a/src/theme/ApiExplorer/ParamOptions/ParamFormItems/ParamTextFormItem.tsx b/src/theme/ApiExplorer/ParamOptions/ParamFormItems/ParamTextFormItem.tsx new file mode 100644 index 000000000..bf4f35e72 --- /dev/null +++ b/src/theme/ApiExplorer/ParamOptions/ParamFormItems/ParamTextFormItem.tsx @@ -0,0 +1,31 @@ +import React from "react"; + +import FormTextInput from "@theme/ApiExplorer/FormTextInput"; +import { Param, setParam } from "@theme/ApiExplorer/ParamOptions/slice"; +import { useTypedDispatch } from "@theme/ApiItem/hooks"; + +export interface ParamProps { + param: Param; +} + +export default function ParamTextFormItem({ param }: ParamProps) { + const dispatch = useTypedDispatch(); + return ( + ) => + dispatch( + setParam({ + ...param, + value: + param.in === "path" || param.in === "query" + ? e.target.value.replace(/\s/g, "%20") + : e.target.value, + }) + ) + } + /> + ); +} diff --git a/src/theme/ApiExplorer/ParamOptions/_ParamOptions.scss b/src/theme/ApiExplorer/ParamOptions/_ParamOptions.scss new file mode 100644 index 000000000..e90d5af2a --- /dev/null +++ b/src/theme/ApiExplorer/ParamOptions/_ParamOptions.scss @@ -0,0 +1,123 @@ +.openapi-explorer__plus-btn--expanded { + transition: transform 0.2s ease; + display: inline-block; + transform: rotate(0deg); + transform-origin: center; + margin-right: 6px; + transform: rotate(45deg); +} + +.openapi-explorer__show-more-btn { + width: 100%; + -webkit-appearance: none; + -moz-appearance: none; + appearance: none; + margin-left: 0.25rem; + margin-bottom: 0.5rem; + padding: 0; + cursor: pointer; + font-size: var(--openapi-explorer-font-size-input); + user-select: none; + white-space: nowrap; + border: 0px solid transparent; + display: block; + background-color: transparent; + color: var(--ifm-color-primary); + text-align: left; + + &:hover { + color: var(--ifm-color-primary-hover); + } + + &:first-child { + margin-top: 0; + } +} + +.openapi-explorer__delete-btn { + -webkit-appearance: none; + -moz-appearance: none; + appearance: none; + + cursor: pointer; + font-size: calc(0.875rem * var(--ifm-button-size-multiplier)); + font-weight: normal; + line-height: 1.5; + + transition-property: color, background, border-color, box-shadow; + transition-duration: 100ms, 100ms, 100ms, + var(--ifm-button-transition-duration); + transition-timing-function: cubic-bezier(0.08, 0.52, 0.52, 1); + + -webkit-user-select: none; + user-select: none; + white-space: nowrap; + + display: flex; + + align-items: center; + justify-content: center; + + padding: 0 12px; + + margin-top: calc(var(--ifm-pre-padding) / 2); + background-color: var(--openapi-input-background); + border: none; + outline: none; + color: var(--ifm-pre-color); + border-radius: 4px; + margin-left: 4px; + + &:focus { + outline: 0; + } + + &:active { + box-shadow: inset 0px 0px 0px 2px var(--openapi-input-border); + } +} + +.openapi-explorer__thin-btn { + -webkit-appearance: none; + -moz-appearance: none; + cursor: pointer; + font-weight: bold; + padding: 0.5rem 1rem; + font-size: 12px; + transition-property: color, background, border-color, box-shadow; + transition-duration: 100ms, 100ms, 100ms, + var(--ifm-button-transition-duration); + transition-timing-function: cubic-bezier(0.08, 0.52, 0.52, 1); + user-select: none; + white-space: nowrap; + background-color: transparent; + color: var(--openapi-input-border); + border: 1px solid var(--openapi-input-border); + border-radius: var(--ifm-pre-border-radius); + margin-top: calc(var(--ifm-pre-padding) / 2); + text-transform: uppercase; + + &:hover { + color: var(--openapi-inverse-color); + background-color: var(--openapi-input-border); + } + + &:focus { + outline: 0; + } + + &:active { + box-shadow: + inset 0 0 0 1px var(--openapi-input-border), + inset 0 0 0 2px var(--openapi-inverse-color); + } +} + +.openapi-explorer__show-options { + visibility: visible; +} + +.openapi-explorer__hide-options { + display: none; + visibility: hidden; +} diff --git a/src/theme/ApiExplorer/ParamOptions/index.tsx b/src/theme/ApiExplorer/ParamOptions/index.tsx new file mode 100644 index 000000000..22eb65846 --- /dev/null +++ b/src/theme/ApiExplorer/ParamOptions/index.tsx @@ -0,0 +1,138 @@ +import React, { useState } from "react"; + +import FormItem from "@theme/ApiExplorer/FormItem"; +import ParamArrayFormItem from "@theme/ApiExplorer/ParamOptions/ParamFormItems/ParamArrayFormItem"; +import ParamBooleanFormItem from "@theme/ApiExplorer/ParamOptions/ParamFormItems/ParamBooleanFormItem"; +import ParamMultiSelectFormItem from "@theme/ApiExplorer/ParamOptions/ParamFormItems/ParamMultiSelectFormItem"; +import ParamSelectFormItem from "@theme/ApiExplorer/ParamOptions/ParamFormItems/ParamSelectFormItem"; +import ParamTextFormItem from "@theme/ApiExplorer/ParamOptions/ParamFormItems/ParamTextFormItem"; +import { useTypedSelector } from "@theme/ApiItem/hooks"; + +import { Param } from "./slice"; + +export interface ParamProps { + param: Param; +} + +function ParamOption({ param }: ParamProps) { + if (param.schema?.type === "array" && param.schema.items?.enum) { + return ; + } + + if (param.schema?.type === "array") { + return ; + } + + if (param.schema?.enum) { + return ; + } + + if (param.schema?.type === "boolean") { + return ; + } + + // integer, number, string, int32, int64, float, double, object, byte, binary, + // date-time, date, password + return ; +} + +function ParamOptionWrapper({ param }: ParamProps) { + return ( + + + + ); +} + +function ParamOptions() { + const [showOptional, setShowOptional] = useState(false); + + const pathParams = useTypedSelector((state: any) => state.params.path); + const queryParams = useTypedSelector((state: any) => state.params.query); + const cookieParams = useTypedSelector((state: any) => state.params.cookie); + const headerParams = useTypedSelector((state: any) => state.params.header); + + const allParams = [ + ...pathParams, + ...queryParams, + ...cookieParams, + ...headerParams, + ]; + + const requiredParams = allParams.filter((p) => p.required); + const optionalParams = allParams.filter((p) => !p.required); + + return ( + <> + {/* Required Parameters */} + {requiredParams.map((param) => ( + + ))} + + {/* Optional Parameters */} + {optionalParams.length > 0 && ( + <> + + +
    + {optionalParams.map((param) => ( + + ))} +
    + + )} + + ); +} + +export default ParamOptions; diff --git a/src/theme/ApiExplorer/ParamOptions/slice.ts b/src/theme/ApiExplorer/ParamOptions/slice.ts new file mode 100644 index 000000000..52c8a72e5 --- /dev/null +++ b/src/theme/ApiExplorer/ParamOptions/slice.ts @@ -0,0 +1,30 @@ +import { createSlice, PayloadAction } from "@reduxjs/toolkit"; +import { ParameterObject } from "docusaurus-plugin-openapi-docs/src/openapi/types"; + +export type Param = ParameterObject & { value?: string[] | string }; + +export interface State { + path: Param[]; + query: Param[]; + header: Param[]; + cookie: Param[]; +} + +const initialState: State = {} as any; + +export const slice = createSlice({ + name: "params", + initialState, + reducers: { + setParam: (state, action: PayloadAction) => { + const newParam = action.payload; + const paramGroup = state[action.payload.in]; + const index = paramGroup.findIndex((p) => p.name === newParam.name); + paramGroup[index] = newParam; + }, + }, +}); + +export const { setParam } = slice.actions; + +export default slice.reducer; diff --git a/src/theme/ApiExplorer/Request/_Request.scss b/src/theme/ApiExplorer/Request/_Request.scss new file mode 100644 index 000000000..80e9f0c42 --- /dev/null +++ b/src/theme/ApiExplorer/Request/_Request.scss @@ -0,0 +1,124 @@ +.openapi-explorer__request-form { + background-color: var(--ifm-pre-background); + border-radius: var(--openapi-card-border-radius); + border: 1px solid var(--openapi-explorer-border-color); + box-shadow: + 0 2px 3px hsla(222, 8%, 43%, 0.1), + 0 8px 16px -10px hsla(222, 8%, 43%, 0.2); + color: var(--ifm-pre-color); + line-height: var(--ifm-pre-line-height); + margin-bottom: var(--ifm-spacing-vertical); + margin-top: 0; + overflow: auto; + transition: 300ms; + + /* hack for view calculation when monaco is hidden */ + position: relative; + + &:empty { + display: none; + } + + &:hover { + box-shadow: + 0 0 0 2px rgba(38, 53, 61, 0.15), + 0 2px 3px hsla(222, 8%, 43%, 0.15), + 0 16px 16px -10px hsla(222, 8%, 43%, 0.2); + } + + .required { + font-size: var(--ifm-code-font-size); + color: var(--openapi-required); + + &.request-body { + padding-left: 0.25rem; + } + } +} + +.openapi-explorer__request-header-container { + display: flex; + justify-content: space-between; + border-bottom: 1px solid var(--openapi-explorer-border-color); + margin: 0; + padding: 0.75rem var(--ifm-pre-padding); + text-transform: uppercase; + font-size: 12px; + font-weight: bold; +} + +.openapi-explorer__expand-details-btn { + &:hover { + cursor: pointer; + } +} + +.openapi-explorer__details-outer-container { + padding: 1rem; +} + +.openapi-explorer__details-container[open] { + .openapi-explorer__details-summary::before { + transform: rotate(180deg); + margin-top: 0.25rem; + } +} + +.openapi-explorer__details-summary { + display: inline-flex; + align-items: center; + padding: 0.35rem 0; + font-size: 14px; + list-style: none; + + &:hover { + cursor: pointer; + } + + &::-webkit-details-marker { + display: none; + } + + &::before { + margin-right: 0.25rem; + margin-bottom: 0.25rem; + margin-top: 0.25rem; + background-image: var(--openapi-explorer-caret-bg); + border: none !important; + transform: rotate(90deg); + content: ""; + height: 1rem; + width: 1rem; + } +} + +.openapi-explorer__request-btn { + border: none; + border-radius: var(--ifm-global-radius); + padding: 0.5rem 1rem; + margin-top: 1rem; + background-color: var(--ifm-color-primary-light); + text-transform: uppercase; + font-weight: bold; + font-size: 12px; + color: white; + cursor: pointer; + transition: 300ms; + + &:hover { + background-color: var(--ifm-color-primary-lightest); + } + + &:active { + background-color: var(--ifm-color-primary-light); + } +} + +// Prevent auto zoom on mobile iOS devices when focusing on input elmenents +@media screen and (-webkit-min-device-pixel-ratio: 0) and (max-device-width: 1024px) { + .prism-code, + select, + input { + font-size: 1rem; + } +} diff --git a/src/theme/ApiExplorer/Request/index.tsx b/src/theme/ApiExplorer/Request/index.tsx new file mode 100644 index 000000000..26b884c92 --- /dev/null +++ b/src/theme/ApiExplorer/Request/index.tsx @@ -0,0 +1,279 @@ +// @ts-nocheck +import React, { useState } from "react"; + +import { useDoc } from "@docusaurus/theme-common/internal"; +import sdk from "@paloaltonetworks/postman-collection"; +import Accept from "@theme/ApiExplorer/Accept"; +import Authorization from "@theme/ApiExplorer/Authorization"; +import Body from "@theme/ApiExplorer/Body"; +import buildPostmanRequest from "@theme/ApiExplorer/buildPostmanRequest"; +import ContentType from "@theme/ApiExplorer/ContentType"; +import ParamOptions from "@theme/ApiExplorer/ParamOptions"; +import { + setResponse, + setCode, + clearCode, + setHeaders, + clearHeaders, +} from "@theme/ApiExplorer/Response/slice"; +import Server from "@theme/ApiExplorer/Server"; +import { useTypedDispatch, useTypedSelector } from "@theme/ApiItem/hooks"; +import { ParameterObject } from "docusaurus-plugin-openapi-docs/src/openapi/types"; +import { ApiItem } from "docusaurus-plugin-openapi-docs/src/types"; +import { FormProvider, useForm } from "react-hook-form"; + +import makeRequest from "./makeRequest"; + +function Request({ item }: { item: NonNullable }) { + const postman = new sdk.Request(item.postman); + const metadata = useDoc(); + const { proxy, hide_send_button: hideSendButton } = metadata.frontMatter; + + const pathParams = useTypedSelector((state: any) => state.params.path); + const queryParams = useTypedSelector((state: any) => state.params.query); + const cookieParams = useTypedSelector((state: any) => state.params.cookie); + const contentType = useTypedSelector((state: any) => state.contentType.value); + const headerParams = useTypedSelector((state: any) => state.params.header); + const body = useTypedSelector((state: any) => state.body); + const accept = useTypedSelector((state: any) => state.accept.value); + const acceptOptions = useTypedDispatch((state: any) => state.accept.options); + const authSelected = useTypedSelector((state: any) => state.auth.selected); + const server = useTypedSelector((state: any) => state.server.value); + const serverOptions = useTypedSelector((state: any) => state.server.options); + const auth = useTypedSelector((state: any) => state.auth); + const dispatch = useTypedDispatch(); + + const [expandAccept, setExpandAccept] = useState(true); + const [expandAuth, setExpandAuth] = useState(true); + const [expandBody, setExpandBody] = useState(true); + const [expandParams, setExpandParams] = useState(true); + const [expandServer, setExpandServer] = useState(true); + + const allParams = [ + ...pathParams, + ...queryParams, + ...cookieParams, + ...headerParams, + ]; + + const postmanRequest = buildPostmanRequest(postman, { + queryParams, + pathParams, + cookieParams, + contentType, + accept, + headerParams, + body, + server, + auth, + }); + + const delay = (ms: number) => + new Promise((resolve) => setTimeout(resolve, ms)); + + const paramsObject = { + path: [] as ParameterObject[], + query: [] as ParameterObject[], + header: [] as ParameterObject[], + cookie: [] as ParameterObject[], + }; + + item.parameters?.forEach( + (param: { in: "path" | "query" | "header" | "cookie" }) => { + const paramType = param.in; + const paramsArray: ParameterObject[] = paramsObject[paramType]; + paramsArray.push(param as ParameterObject); + } + ); + + const methods = useForm({ shouldFocusError: false }); + + const onSubmit = async (data) => { + dispatch(setResponse("Fetching...")); + try { + await delay(1200); + const res = await makeRequest(postmanRequest, proxy, body); + dispatch(setResponse(await res.text())); + dispatch(setCode(res.status)); + res.headers && dispatch(setHeaders(Object.fromEntries(res.headers))); + } catch (e: any) { + console.log(e); + dispatch(setResponse("Connection failed")); + dispatch(clearCode()); + dispatch(clearHeaders()); + } + }; + + const showServerOptions = serverOptions.length > 0; + const showAcceptOptions = acceptOptions.length > 1; + const showRequestBody = contentType !== undefined; + const showRequestButton = item.servers && !hideSendButton; + const showAuth = authSelected !== undefined; + const showParams = allParams.length > 0; + const requestBodyRequired = item.requestBody?.required; + + if ( + !showAcceptOptions && + !showAuth && + !showParams && + !showRequestBody && + !showServerOptions + ) { + return null; + } + + const expandAllDetails = () => { + setExpandAccept(true); + setExpandAuth(true); + setExpandBody(true); + setExpandParams(true); + setExpandServer(true); + }; + + const collapseAllDetails = () => { + setExpandAccept(false); + setExpandAuth(false); + setExpandBody(false); + setExpandParams(false); + setExpandServer(false); + }; + + const allDetailsExpanded = + expandParams && expandBody && expandServer && expandAuth && expandAccept; + + return ( + +
    +
    + Request + {allDetailsExpanded ? ( + + Collapse all + + ) : ( + + Expand all + + )} +
    +
    + {showServerOptions && item.method !== "event" && ( +
    + { + e.preventDefault(); + setExpandServer(!expandServer); + }} + > + Base URL + + +
    + )} + {showAuth && ( +
    + { + e.preventDefault(); + setExpandAuth(!expandAuth); + }} + > + Auth + + +
    + )} + {showParams && ( +
    + { + e.preventDefault(); + setExpandParams(!expandParams); + }} + > + Parameters + + +
    + )} + {showRequestBody && ( +
    + { + e.preventDefault(); + setExpandBody(!expandBody); + }} + > + Body + {requestBodyRequired && ( + +  required + + )} + + <> + + + +
    + )} + {showAcceptOptions && ( +
    + { + e.preventDefault(); + setExpandAccept(!expandAccept); + }} + > + Accept + + +
    + )} + {showRequestButton && item.method !== "event" && ( + + )} +
    +
    +
    + ); +} + +export default Request; diff --git a/src/theme/ApiExplorer/Request/makeRequest.ts b/src/theme/ApiExplorer/Request/makeRequest.ts new file mode 100644 index 000000000..b28c14d56 --- /dev/null +++ b/src/theme/ApiExplorer/Request/makeRequest.ts @@ -0,0 +1,247 @@ +import sdk from "@paloaltonetworks/postman-collection"; +import { Body } from "@theme/ApiExplorer/Body/slice"; + +function fetchWithtimeout( + url: string, + options: RequestInit, + timeout = 5000 +): any { + return Promise.race([ + fetch(url, options), + new Promise((_, reject) => + setTimeout(() => reject(new Error("Request timed out")), timeout) + ), + ]); +} + +async function loadImage(content: Blob): Promise { + return new Promise((accept, reject) => { + const reader = new FileReader(); + + reader.onabort = () => { + console.log("file reading was aborted"); + reject(); + }; + + reader.onerror = () => { + console.log("file reading has failed"); + reject(); + }; + + reader.onload = () => { + // Do whatever you want with the file contents + const binaryStr = reader.result; + accept(binaryStr); + }; + reader.readAsArrayBuffer(content); + }); +} + +async function makeRequest( + request: sdk.Request, + proxy: string | undefined, + _body: Body +) { + const headers = request.toJSON().header; + + let myHeaders = new Headers(); + if (headers) { + headers.forEach((header: any) => { + if (header.key && header.value) { + myHeaders.append(header.key, header.value); + } + }); + } + + // The following code handles multiple files in the same formdata param. + // It removes the form data params where the src property is an array of filepath strings + // Splits that array into different form data params with src set as a single filepath string + // TODO: + // if (request.body && request.body.mode === 'formdata') { + // let formdata = request.body.formdata, + // formdataArray = []; + // formdata.members.forEach((param) => { + // let key = param.key, + // type = param.type, + // disabled = param.disabled, + // contentType = param.contentType; + // // check if type is file or text + // if (type === 'file') { + // // if src is not of type string we check for array(multiple files) + // if (typeof param.src !== 'string') { + // // if src is an array(not empty), iterate over it and add files as separate form fields + // if (Array.isArray(param.src) && param.src.length) { + // param.src.forEach((filePath) => { + // addFormParam( + // formdataArray, + // key, + // param.type, + // filePath, + // disabled, + // contentType + // ); + // }); + // } + // // if src is not an array or string, or is an empty array, add a placeholder for file path(no files case) + // else { + // addFormParam( + // formdataArray, + // key, + // param.type, + // '/path/to/file', + // disabled, + // contentType + // ); + // } + // } + // // if src is string, directly add the param with src as filepath + // else { + // addFormParam( + // formdataArray, + // key, + // param.type, + // param.src, + // disabled, + // contentType + // ); + // } + // } + // // if type is text, directly add it to formdata array + // else { + // addFormParam( + // formdataArray, + // key, + // param.type, + // param.value, + // disabled, + // contentType + // ); + // } + // }); + // request.body.update({ + // mode: 'formdata', + // formdata: formdataArray, + // }); + // } + + const body = request.body?.toJSON(); + + let myBody: RequestInit["body"] = undefined; + if (body !== undefined && Object.keys(body).length > 0) { + switch (body.mode) { + case "urlencoded": { + myBody = new URLSearchParams(); + if (Array.isArray(body.urlencoded)) { + for (const data of body.urlencoded) { + if (data.key && data.value) { + myBody.append(data.key, data.value); + } + } + } + break; + } + case "raw": { + myBody = (body.raw ?? "").toString(); + break; + } + case "formdata": { + // The Content-Type header will be set automatically based on the type of body. + myHeaders.delete("Content-Type"); + + myBody = new FormData(); + if (Array.isArray(request.body.formdata.members)) { + for (const data of request.body.formdata.members) { + if (data.key && data.value.content) { + myBody.append(data.key, data.value.content); + } + // handle generic key-value payload + if (data.key && typeof data.value === "string") { + myBody.append(data.key, data.value); + } + } + } + break; + } + case "file": { + if (_body.type === "raw" && _body.content?.type === "file") { + myBody = await loadImage(_body.content.value.content); + } + break; + } + default: + break; + } + } + + const requestOptions: RequestInit = { + method: request.method, + headers: myHeaders, + body: myBody, + }; + + let finalUrl = request.url.toString(); + if (proxy) { + // Ensure the proxy ends with a slash. + let normalizedProxy = proxy.replace(/\/$/, "") + "/"; + finalUrl = normalizedProxy + request.url.toString(); + } + + return fetchWithtimeout(finalUrl, requestOptions).then((response: any) => { + const contentType = response.headers.get("content-type"); + let fileExtension = ""; + + if (contentType) { + if (contentType.includes("application/pdf")) { + fileExtension = ".pdf"; + } else if (contentType.includes("image/jpeg")) { + fileExtension = ".jpg"; + } else if (contentType.includes("image/png")) { + fileExtension = ".png"; + } else if (contentType.includes("image/gif")) { + fileExtension = ".gif"; + } else if (contentType.includes("image/webp")) { + fileExtension = ".webp"; + } else if (contentType.includes("video/mpeg")) { + fileExtension = ".mpeg"; + } else if (contentType.includes("video/mp4")) { + fileExtension = ".mp4"; + } else if (contentType.includes("audio/mpeg")) { + fileExtension = ".mp3"; + } else if (contentType.includes("audio/ogg")) { + fileExtension = ".ogg"; + } else if (contentType.includes("application/octet-stream")) { + fileExtension = ".bin"; + } else if (contentType.includes("application/zip")) { + fileExtension = ".zip"; + } + + if (fileExtension) { + return response.blob().then((blob: any) => { + const url = window.URL.createObjectURL(blob); + + const link = document.createElement("a"); + link.href = url; + // Now the file name includes the extension + link.setAttribute("download", `file${fileExtension}`); + + // These two lines are necessary to make the link click in Firefox + link.style.display = "none"; + document.body.appendChild(link); + + link.click(); + + // After link is clicked, it's safe to remove it. + setTimeout(() => document.body.removeChild(link), 0); + + return response; + }); + } else { + return response; + } + } + + return response; + }); +} + +export default makeRequest; diff --git a/src/theme/ApiExplorer/Response/_Response.scss b/src/theme/ApiExplorer/Response/_Response.scss new file mode 100644 index 000000000..70b3ec01b --- /dev/null +++ b/src/theme/ApiExplorer/Response/_Response.scss @@ -0,0 +1,120 @@ +.openapi-explorer__response-container { + background-color: var(--ifm-pre-background); + border-radius: var(--openapi-card-border-radius); + border: 1px solid var(--openapi-explorer-border-color); + box-shadow: + 0 2px 3px hsla(222, 8%, 43%, 0.1), + 0 8px 16px -10px hsla(222, 8%, 43%, 0.2); + color: var(--ifm-pre-color); + line-height: var(--ifm-pre-line-height); + margin-bottom: var(--ifm-spacing-vertical); + margin-top: 0; + overflow: auto; + transition: 300ms; + + &:hover { + box-shadow: + 0 0 0 2px rgba(38, 53, 61, 0.15), + 0 2px 3px hsla(222, 8%, 43%, 0.15), + 0 16px 16px -10px hsla(222, 8%, 43%, 0.2); + } + + .openapi-explorer__code-block code { + padding-top: 0; + } +} + +.openapi-explorer__response-title-container { + display: flex; + justify-content: space-between; + border-bottom: 1px solid var(--openapi-explorer-border-color); + margin: 0; + padding: 0.75rem var(--ifm-pre-padding); + text-transform: uppercase; + font-size: 12px; + font-weight: bold; +} + +.openapi-explorer__response-placeholder-message { + font-size: 12px; + padding: 1.25rem; + margin-bottom: 0; + text-align: center; +} + +.openapi-explorer__response-clear-btn { + &:hover { + cursor: pointer; + } +} + +.openapi-explorer__loading-container { + width: 100%; + display: flex; + justify-content: center; +} + +.openapi-response__dot::before { + margin-right: 0.2rem; + margin-bottom: 0.15rem; + content: "⬤"; + color: var(--ifm-color-primary); + font-size: 8px; +} + +.openapi-response__dot--danger::before { + color: var(--ifm-color-danger); +} + +.openapi-response__dot--success::before { + color: var(--ifm-color-success); +} + +.openapi-response__dot--info::before { + color: var(--ifm-color-info); +} + +.openapi-response__status-code { + margin-left: -1rem; +} + +.openapi-response__status-headers { + margin-left: -1rem; +} + +.openapi-response__lds-ring { + display: inline-block; + position: relative; + width: 80px; + height: 80px; +} +.openapi-response__lds-ring div { + box-sizing: border-box; + display: block; + position: absolute; + width: 64px; + height: 64px; + margin: 8px; + border: 5px solid #dfc; + border-radius: 50%; + animation: openapi-response__lds-ring 1.2s cubic-bezier(0.5, 0, 0.5, 1) + infinite; + border-color: var(--ifm-color-primary) transparent transparent transparent; +} +.openapi-response__lds-ring div:nth-child(1) { + animation-delay: -0.45s; +} +.openapi-response__lds-ring div:nth-child(2) { + animation-delay: -0.3s; +} +.openapi-response__lds-ring div:nth-child(3) { + animation-delay: -0.15s; +} +@keyframes openapi-response__lds-ring { + 0% { + transform: rotate(0deg); + } + 100% { + transform: rotate(360deg); + } +} diff --git a/src/theme/ApiExplorer/Response/index.tsx b/src/theme/ApiExplorer/Response/index.tsx new file mode 100644 index 000000000..5ff764cb9 --- /dev/null +++ b/src/theme/ApiExplorer/Response/index.tsx @@ -0,0 +1,147 @@ +import React from "react"; + +import { usePrismTheme } from "@docusaurus/theme-common"; +import { useDoc } from "@docusaurus/theme-common/internal"; +import ApiCodeBlock from "@theme/ApiExplorer/ApiCodeBlock"; +import { useTypedDispatch, useTypedSelector } from "@theme/ApiItem/hooks"; +import SchemaTabs from "@theme/SchemaTabs"; +import TabItem from "@theme/TabItem"; +import clsx from "clsx"; +import { ApiItem } from "docusaurus-plugin-openapi-docs/src/types"; + +import { clearResponse, clearCode, clearHeaders } from "./slice"; + +// TODO: We probably shouldn't attempt to format XML... +function formatXml(xml: string) { + const tab = " "; + let formatted = ""; + let indent = ""; + + xml.split(/>\s* { + if (node.match(/^\/\w/)) { + // decrease indent by one 'tab' + indent = indent.substring(tab.length); + } + formatted += indent + "<" + node + ">\r\n"; + if (node.match(/^]*[^/]$/)) { + // increase indent + indent += tab; + } + }); + return formatted.substring(1, formatted.length - 3); +} + +function Response({ item }: { item: NonNullable }) { + const metadata = useDoc(); + const hideSendButton = metadata.frontMatter.hide_send_button; + const prismTheme = usePrismTheme(); + const code = useTypedSelector((state: any) => state.response.code); + const headers = useTypedSelector((state: any) => state.response.headers); + const response = useTypedSelector((state: any) => state.response.value); + const dispatch = useTypedDispatch(); + const responseStatusClass = + code && + "openapi-response__dot " + + (parseInt(code) >= 400 + ? "openapi-response__dot--danger" + : parseInt(code) >= 200 && parseInt(code) < 300 + ? "openapi-response__dot--success" + : "openapi-response__dot--info"); + + if (!item.servers || hideSendButton) { + return null; + } + + let prettyResponse: string = response; + + if (prettyResponse) { + try { + prettyResponse = JSON.stringify(JSON.parse(response), null, 2); + } catch { + if (response.startsWith("<")) { + prettyResponse = formatXml(response); + } + } + } + + return ( +
    +
    + Response + { + dispatch(clearResponse()); + dispatch(clearCode()); + dispatch(clearHeaders()); + }} + > + Clear + +
    +
    + {code && prettyResponse !== "Fetching..." ? ( + + {/* @ts-ignore */} + + {/* @ts-ignore */} + + {prettyResponse || ( +

    + Click the Send API Request button above and see + the response here! +

    + )} +
    +
    + {/* @ts-ignore */} + + {/* @ts-ignore */} + + {JSON.stringify(headers, undefined, 2)} + + +
    + ) : prettyResponse === "Fetching..." ? ( +
    +
    +
    +
    +
    +
    +
    +
    + ) : ( +

    + Click the Send API Request button above and see the + response here! +

    + )} +
    +
    + ); +} + +export default Response; diff --git a/src/theme/ApiExplorer/Response/slice.ts b/src/theme/ApiExplorer/Response/slice.ts new file mode 100644 index 000000000..d58f0b059 --- /dev/null +++ b/src/theme/ApiExplorer/Response/slice.ts @@ -0,0 +1,45 @@ +import { createSlice, PayloadAction } from "@reduxjs/toolkit"; + +export interface State { + value?: string; + code?: string; + headers?: string; +} + +const initialState: State = {} as any; + +export const slice = createSlice({ + name: "response", + initialState, + reducers: { + setResponse: (state, action: PayloadAction) => { + state.value = action.payload; + }, + setCode: (state, action: PayloadAction) => { + state.code = action.payload; + }, + setHeaders: (state, action: PayloadAction) => { + state.headers = action.payload; + }, + clearResponse: (state) => { + state.value = undefined; + }, + clearCode: (state) => { + state.code = undefined; + }, + clearHeaders: (state) => { + state.headers = undefined; + }, + }, +}); + +export const { + setResponse, + clearResponse, + setCode, + clearCode, + setHeaders, + clearHeaders, +} = slice.actions; + +export default slice.reducer; diff --git a/src/theme/ApiExplorer/SecuritySchemes/index.tsx b/src/theme/ApiExplorer/SecuritySchemes/index.tsx new file mode 100644 index 000000000..816adf96e --- /dev/null +++ b/src/theme/ApiExplorer/SecuritySchemes/index.tsx @@ -0,0 +1,262 @@ +import React from "react"; + +import Link from "@docusaurus/Link"; +import { useTypedSelector } from "@theme/ApiItem/hooks"; + +function SecuritySchemes(props: any) { + const options = useTypedSelector((state: any) => state.auth.options); + const selected = useTypedSelector((state: any) => state.auth.selected); + const infoAuthPath = `/${props.infoPath}#authentication`; + + if (selected === undefined) return null; + + if (options[selected]?.[0]?.type === undefined) { + return null; + } + + const selectedAuth = options[selected]; + return ( +
    + +

    + Authorization: {selectedAuth[0].name ?? selectedAuth[0].type} +

    +
    + {selectedAuth.map((auth: any) => { + const isHttp = auth.type === "http"; + const isApiKey = auth.type === "apiKey"; + const isOauth2 = auth.type === "oauth2"; + const isOpenId = auth.type === "openIdConnect"; + + if (isHttp) { + if (auth.scheme === "bearer") { + const { name, key, type, scopes, ...rest } = auth; + return ( + +
    +                  
    +                    name:{" "}
    +                    {name ?? key}
    +                  
    +                  
    +                    type: 
    +                    {type}
    +                  
    +                  {scopes && scopes.length > 0 && (
    +                    
    +                      scopes: 
    +                      
    +                        {auth.scopes.length > 0 ? auth.scopes.toString() : "[]"}
    +                      
    +                    
    +                  )}
    +                  {Object.keys(rest).map((k, i) => {
    +                    return (
    +                      
    +                        {k}: 
    +                        {typeof rest[k] === "object"
    +                          ? JSON.stringify(rest[k], null, 2)
    +                          : String(rest[k])}
    +                      
    +                    );
    +                  })}
    +                
    +
    + ); + } + if (auth.scheme === "basic") { + const { name, key, type, scopes, ...rest } = auth; + return ( + +
    +                  
    +                    name:{" "}
    +                    {name ?? key}
    +                  
    +                  
    +                    type: 
    +                    {type}
    +                  
    +                  {scopes && scopes.length > 0 && (
    +                    
    +                      scopes: 
    +                      
    +                        {auth.scopes.length > 0 ? auth.scopes.toString() : "[]"}
    +                      
    +                    
    +                  )}
    +                  {Object.keys(rest).map((k, i) => {
    +                    return (
    +                      
    +                        {k}: 
    +                        {typeof rest[k] === "object"
    +                          ? JSON.stringify(rest[k], null, 2)
    +                          : String(rest[k])}
    +                      
    +                    );
    +                  })}
    +                
    +
    + ); + } + return ( + +
    +                
    +                  name:{" "}
    +                  {auth.name ?? auth.key}
    +                
    +                
    +                  type: 
    +                  {auth.type}
    +                
    +                
    +                  in: 
    +                  {auth.in}
    +                
    +              
    +
    + ); + } + + if (isApiKey) { + const { name, key, type, scopes, ...rest } = auth; + return ( + +
    +                
    +                  name:{" "}
    +                  {name ?? key}
    +                
    +                
    +                  type: 
    +                  {type}
    +                
    +                {scopes && scopes.length > 0 && (
    +                  
    +                    scopes: 
    +                    
    +                      {auth.scopes.length > 0 ? auth.scopes.toString() : "[]"}
    +                    
    +                  
    +                )}
    +                {Object.keys(rest).map((k, i) => {
    +                  return (
    +                    
    +                      {k}: 
    +                      {typeof rest[k] === "object"
    +                        ? JSON.stringify(rest[k], null, 2)
    +                        : String(rest[k])}
    +                    
    +                  );
    +                })}
    +              
    +
    + ); + } + + if (isOauth2) { + const { name, key, type, scopes, flows, ...rest } = auth; + return ( + +
    +                
    +                  name:{" "}
    +                  {name ?? key}
    +                
    +                
    +                  type: 
    +                  {type}
    +                
    +                {scopes && scopes.length > 0 && (
    +                  
    +                    scopes: 
    +                    
    +                      {auth.scopes.length > 0 ? auth.scopes.toString() : "[]"}
    +                    
    +                  
    +                )}
    +              
    +
    + ); + } + + if (isOpenId) { + const { name, key, scopes, type, ...rest } = auth; + return ( + +
    +                
    +                  name:{" "}
    +                  {name ?? key}
    +                
    +                
    +                  type: 
    +                  {type}
    +                
    +                {scopes && scopes.length > 0 && (
    +                  
    +                    scopes: 
    +                    
    +                      {auth.scopes.length > 0 ? auth.scopes.toString() : "[]"}
    +                    
    +                  
    +                )}
    +                {Object.keys(rest).map((k, i) => {
    +                  return (
    +                    
    +                      {k}: 
    +                      {typeof rest[k] === "object"
    +                        ? JSON.stringify(rest[k], null, 2)
    +                        : String(rest[k])}
    +                    
    +                  );
    +                })}
    +              
    +
    + ); + } + + return undefined; + })} +
    + ); +} + +export default SecuritySchemes; diff --git a/src/theme/ApiExplorer/Server/_Server.scss b/src/theme/ApiExplorer/Server/_Server.scss new file mode 100644 index 000000000..c6bbb7d70 --- /dev/null +++ b/src/theme/ApiExplorer/Server/_Server.scss @@ -0,0 +1,26 @@ +.openapi-explorer__server-container { + background: var(--openapi-card-background-color); + border-radius: var(--openapi-card-border-radius); + color: var(--ifm-pre-color); + line-height: var(--ifm-pre-line-height); + margin-bottom: var(--ifm-spacing-vertical); + margin-top: 0; + overflow: auto; + + /* hack for view calculation when monaco is hidden */ + position: relative; + + &:empty { + display: none; + } +} + +.openapi-explorer__server-url { + font-size: var(--openapi-explorer-font-size-input); + font-family: var(--ifm-font-family-monospace); +} + +.openapi-explorer__server-description { + padding-left: 0.5rem; + font-weight: var(--ifm-font-weight-bold); +} diff --git a/src/theme/ApiExplorer/Server/index.tsx b/src/theme/ApiExplorer/Server/index.tsx new file mode 100644 index 000000000..210ad9dbf --- /dev/null +++ b/src/theme/ApiExplorer/Server/index.tsx @@ -0,0 +1,123 @@ +import React, { useState } from "react"; + +import FloatingButton from "@theme/ApiExplorer/FloatingButton"; +import FormItem from "@theme/ApiExplorer/FormItem"; +import FormSelect from "@theme/ApiExplorer/FormSelect"; +import FormTextInput from "@theme/ApiExplorer/FormTextInput"; +import { useTypedDispatch, useTypedSelector } from "@theme/ApiItem/hooks"; + +import { setServer, setServerVariable } from "./slice"; + +function Server() { + const [isEditing, setIsEditing] = useState(false); + const value = useTypedSelector((state: any) => state.server.value); + const options = useTypedSelector((state: any) => state.server.options); + const dispatch = useTypedDispatch(); + + if (options.length <= 0) { + return null; + } + + if (options.length < 1 && value?.variables === undefined) { + return null; + } + + if (!value) { + const defaultOption = options[0]; + dispatch(setServer(JSON.stringify(defaultOption))); + } + + // Default to first option when existing server state is mismatched + if (value) { + const urlExists = options.find((s: any) => s.url === value.url); + if (!urlExists) { + const defaultOption = options[0]; + dispatch(setServer(JSON.stringify(defaultOption))); + } + } + + if (!isEditing) { + let url = ""; + if (value) { + url = value.url.replace(/\/$/, ""); + if (value.variables) { + Object.keys(value.variables).forEach((variable) => { + url = url.replace( + `{${variable}}`, + value.variables?.[variable].default ?? "" + ); + }); + } + } + return ( + setIsEditing(true)} label="Edit"> + + + {url} + + + + ); + } + return ( +
    + setIsEditing(false)} label="Hide"> + + s.url)} + onChange={(e: React.ChangeEvent) => { + dispatch( + setServer( + JSON.stringify( + options.filter((s: any) => s.url === e.target.value)[0] + ) + ) + ); + }} + value={value?.url} + /> + + {value?.description} + + + {value?.variables && + Object.keys(value.variables).map((key) => { + if (value.variables?.[key].enum !== undefined) { + return ( + + ) => { + dispatch( + setServerVariable( + JSON.stringify({ key, value: e.target.value }) + ) + ); + }} + value={value?.variables[key].default} + /> + + ); + } + return ( + + ) => { + dispatch( + setServerVariable( + JSON.stringify({ key, value: e.target.value }) + ) + ); + }} + value={value?.variables?.[key].default} + /> + + ); + })} + +
    + ); +} + +export default Server; diff --git a/src/theme/ApiExplorer/Server/slice.ts b/src/theme/ApiExplorer/Server/slice.ts new file mode 100644 index 000000000..9ab618ab8 --- /dev/null +++ b/src/theme/ApiExplorer/Server/slice.ts @@ -0,0 +1,32 @@ +import { createSlice, PayloadAction } from "@reduxjs/toolkit"; +import { ServerObject } from "docusaurus-plugin-openapi-docs/src/openapi/types"; +// TODO: we might want to export this + +export interface State { + value?: ServerObject; + options: ServerObject[]; +} + +const initialState: State = {} as any; + +export const slice = createSlice({ + name: "server", + initialState, + reducers: { + setServer: (state, action: PayloadAction) => { + state.value = state.options.find( + (s) => s.url === JSON.parse(action.payload).url + ); + }, + setServerVariable: (state, action: PayloadAction) => { + if (state.value?.variables) { + const parsedPayload = JSON.parse(action.payload); + state.value.variables[parsedPayload.key].default = parsedPayload.value; + } + }, + }, +}); + +export const { setServer, setServerVariable } = slice.actions; + +export default slice.reducer; diff --git a/src/theme/ApiExplorer/buildPostmanRequest.ts b/src/theme/ApiExplorer/buildPostmanRequest.ts new file mode 100644 index 000000000..952d67976 --- /dev/null +++ b/src/theme/ApiExplorer/buildPostmanRequest.ts @@ -0,0 +1,320 @@ +import sdk from "@paloaltonetworks/postman-collection"; +import { AuthState, Scheme } from "@theme/ApiExplorer/Authorization/slice"; +import { Body, Content } from "@theme/ApiExplorer/Body/slice"; +import { + ParameterObject, + ServerObject, +} from "docusaurus-plugin-openapi-docs/src/openapi/types"; +import cloneDeep from "lodash/cloneDeep"; + +type Param = { + value?: string | string[]; +} & ParameterObject; + +function setQueryParams(postman: sdk.Request, queryParams: Param[]) { + postman.url.query.clear(); + + const qp = queryParams + .map((param) => { + if (!param.value) { + return undefined; + } + + if (Array.isArray(param.value)) { + return new sdk.QueryParam({ + key: param.name, + value: param.value.join(","), + }); + } + + // Parameter allows empty value: "/hello?extended" + if (param.allowEmptyValue) { + if (param.value === "true") { + return new sdk.QueryParam({ + key: param.name, + value: null, + }); + } + return undefined; + } + + return new sdk.QueryParam({ + key: param.name, + value: param.value, + }); + }) + .filter((item): item is sdk.QueryParam => item !== undefined); + + if (qp.length > 0) { + postman.addQueryParams(qp); + } +} + +function setPathParams(postman: sdk.Request, queryParams: Param[]) { + const source = queryParams.map((param) => { + return new sdk.Variable({ + key: param.name, + value: param.value || `:${param.name}`, + }); + }); + postman.url.variables.assimilate(source, false); +} + +function buildCookie(cookieParams: Param[]) { + const cookies = cookieParams + .map((param) => { + if (param.value && !Array.isArray(param.value)) { + return new sdk.Cookie({ + // TODO: Is this right? + path: "", + domain: "", + key: param.name, + value: param.value, + }); + } + return undefined; + }) + .filter((item): item is sdk.Cookie => item !== undefined); + const list = new sdk.CookieList(null, cookies); + return list.toString(); +} + +function setHeaders( + postman: sdk.Request, + contentType: string, + accept: string, + cookie: string, + headerParams: Param[], + other: { key: string; value: string }[] +) { + postman.headers.clear(); + if (contentType) { + postman.addHeader({ key: "Content-Type", value: contentType }); + } + if (accept) { + postman.addHeader({ key: "Accept", value: accept }); + } + headerParams.forEach((param) => { + if (param.value && !Array.isArray(param.value)) { + postman.addHeader({ key: param.name, value: param.value }); + } + }); + + other.forEach((header) => { + postman.addHeader(header); + }); + + if (cookie) { + postman.addHeader({ key: "Cookie", value: cookie }); + } +} + +// TODO: this is all a bit hacky +function setBody(clonedPostman: sdk.Request, body: Body) { + if (clonedPostman.body === undefined) { + return; + } + + if (body.type === "empty") { + clonedPostman.body = undefined; + return; + } + + if (body.type === "raw" && body.content?.type === "file") { + // treat it like file. + clonedPostman.body.mode = "file"; + clonedPostman.body.file = { src: body.content.value.src }; + return; + } + + switch (clonedPostman.body.mode) { + case "raw": { + // check file even though it should already be set from above + if (body.type !== "raw" || body.content?.type === "file") { + clonedPostman.body = undefined; + return; + } + clonedPostman.body.raw = body.content?.value ?? ""; + return; + } + case "formdata": { + clonedPostman.body.formdata?.clear(); + if (body.type !== "form") { + // treat it like raw. + clonedPostman.body.mode = "raw"; + clonedPostman.body.raw = `${body.content?.value}`; + return; + } + const params = Object.entries(body.content) + .filter((entry): entry is [string, NonNullable] => !!entry[1]) + .map(([key, content]) => { + if (content.type === "file") { + return new sdk.FormParam({ key: key, ...content }); + } + return new sdk.FormParam({ key: key, value: content.value }); + }); + clonedPostman.body.formdata?.assimilate(params, false); + return; + } + case "urlencoded": { + clonedPostman.body.urlencoded?.clear(); + if (body.type !== "form") { + // treat it like raw. + clonedPostman.body.mode = "raw"; + clonedPostman.body.raw = `${body.content?.value}`; + return; + } + const params = Object.entries(body.content) + .filter((entry): entry is [string, NonNullable] => !!entry[1]) + .map(([key, content]) => { + if (content.type !== "file" && content.value) { + return new sdk.QueryParam({ key: key, value: content.value }); + } + return undefined; + }) + .filter((item): item is sdk.QueryParam => item !== undefined); + clonedPostman.body.urlencoded?.assimilate(params, false); + return; + } + default: + return; + } +} + +// TODO: finish these types +interface Options { + server?: ServerObject; + queryParams: Param[]; + pathParams: Param[]; + cookieParams: Param[]; + headerParams: Param[]; + contentType: string; + accept: string; + body: Body; + auth: AuthState; +} + +function buildPostmanRequest( + postman: sdk.Request, + { + queryParams, + pathParams, + cookieParams, + contentType, + accept, + headerParams, + body, + server, + auth, + }: Options +) { + const clonedPostman = cloneDeep(postman); + + clonedPostman.url.protocol = undefined; + clonedPostman.url.host = [window.location.origin]; + + if (server) { + let url = server.url.replace(/\/$/, ""); + const variables = server.variables; + if (variables) { + Object.keys(variables).forEach((variable) => { + url = url.replace(`{${variable}}`, variables[variable].default); + }); + } + clonedPostman.url.host = [url]; + } + + setQueryParams(clonedPostman, queryParams); + setPathParams(clonedPostman, pathParams); + + const cookie = buildCookie(cookieParams); + let otherHeaders = []; + + let selectedAuth: Scheme[] = []; + if (auth.selected !== undefined) { + selectedAuth = auth.options[auth.selected]; + } + + for (const a of selectedAuth) { + // Bearer Auth + if (a.type === "http" && a.scheme === "bearer") { + const { token } = auth.data[a.key]; + if (token === undefined) { + otherHeaders.push({ + key: "Authorization", + value: "Bearer ", + }); + continue; + } + otherHeaders.push({ + key: "Authorization", + value: `Bearer ${token}`, + }); + continue; + } + + if (a.type === "oauth2") { + let token; + if (auth.data[a.key]) { + token = auth.data[a.key].token; + } + if (token === undefined) { + otherHeaders.push({ + key: "Authorization", + value: "Bearer ", + }); + continue; + } + otherHeaders.push({ + key: "Authorization", + value: `Bearer ${token}`, + }); + continue; + } + + // Basic Auth + if (a.type === "http" && a.scheme === "basic") { + const { username, password } = auth.data[a.key]; + if (username === undefined || password === undefined) { + continue; + } + otherHeaders.push({ + key: "Authorization", + value: `Basic ${window.btoa(`${username}:${password}`)}`, + }); + continue; + } + + // API Key + if (a.type === "apiKey" && a.in === "header") { + const { apiKey } = auth.data[a.key]; + if (apiKey === undefined) { + otherHeaders.push({ + key: a.name, + value: "", + }); + continue; + } + otherHeaders.push({ + key: a.name, + value: apiKey, + }); + continue; + } + } + + setHeaders( + clonedPostman, + contentType, + accept, + cookie, + headerParams, + otherHeaders + ); + + setBody(clonedPostman, body); + + return clonedPostman; +} + +export default buildPostmanRequest; diff --git a/src/theme/ApiExplorer/index.tsx b/src/theme/ApiExplorer/index.tsx new file mode 100644 index 000000000..b3dfbb817 --- /dev/null +++ b/src/theme/ApiExplorer/index.tsx @@ -0,0 +1,34 @@ +import React from "react"; + +import sdk from "@paloaltonetworks/postman-collection"; +import CodeSnippets from "@theme/ApiExplorer/CodeSnippets"; +import Request from "@theme/ApiExplorer/Request"; +import Response from "@theme/ApiExplorer/Response"; +import { ApiItem } from "docusaurus-plugin-openapi-docs/src/types"; +import SecuritySchemes from "./SecuritySchemes" + +function ApiExplorer({ + item, + infoPath, +}: { + item: NonNullable; + infoPath: string; +}) { + const postman = new sdk.Request(item.postman); + + return ( + <> + + {item.method !== "event" && ( + + )} + + + + ); +} + +export default ApiExplorer; diff --git a/src/theme/ApiExplorer/persistanceMiddleware.ts b/src/theme/ApiExplorer/persistanceMiddleware.ts new file mode 100644 index 000000000..de7dc06db --- /dev/null +++ b/src/theme/ApiExplorer/persistanceMiddleware.ts @@ -0,0 +1,64 @@ +import { Middleware } from "@reduxjs/toolkit"; +import { + setAuthData, + setSelectedAuth, +} from "@theme/ApiExplorer/Authorization/slice"; +import { AppDispatch, RootState } from "@theme/ApiItem/store"; +/* eslint-disable import/no-extraneous-dependencies*/ +import { ThemeConfig } from "docusaurus-theme-openapi-docs/src/types"; + +import { createStorage, hashArray } from "./storage-utils"; + +export function createPersistanceMiddleware(options: ThemeConfig["api"]) { + const persistanceMiddleware: Middleware<{}, RootState, AppDispatch> = + (storeAPI) => (next) => (action) => { + const result = next(action); + + const state = storeAPI.getState(); + + const storage = createStorage("sessionStorage"); + + if (action.type === setAuthData.type) { + for (const [key, value] of Object.entries(state.auth.data)) { + if (Object.values(value as any).filter(Boolean).length > 0) { + storage.setItem(key, JSON.stringify(value)); + } else { + storage.removeItem(key); + } + } + } + + if (action.type === setSelectedAuth.type) { + if (state.auth.selected) { + storage.setItem( + hashArray(Object.keys(state.auth.options)), + state.auth.selected + ); + } + } + + // TODO: determine way to rehydrate without flashing + // if (action.type === "contentType/setContentType") { + // storage.setItem("contentType", action.payload); + // } + + // if (action.type === "accept/setAccept") { + // storage.setItem("accept", action.payload); + // } + + if (action.type === "server/setServer") { + storage.setItem("server", action.payload); + } + + if (action.type === "server/setServerVariable") { + const server = storage.getItem("server") ?? "{}"; + const variables = JSON.parse(action.payload); + let serverObject = JSON.parse(server); + serverObject.variables[variables.key].default = variables.value; + storage.setItem("server", JSON.stringify(serverObject)); + } + + return result; + }; + return persistanceMiddleware; +} diff --git a/src/theme/ApiExplorer/postman-collection.d.ts b/src/theme/ApiExplorer/postman-collection.d.ts new file mode 100644 index 000000000..aa0f758d6 --- /dev/null +++ b/src/theme/ApiExplorer/postman-collection.d.ts @@ -0,0 +1,3 @@ +declare module "@paloaltonetworks/postman-collection" { + export = Request.sdk; +} diff --git a/src/theme/ApiExplorer/react-modal.d.ts b/src/theme/ApiExplorer/react-modal.d.ts new file mode 100644 index 000000000..2ba6abf73 --- /dev/null +++ b/src/theme/ApiExplorer/react-modal.d.ts @@ -0,0 +1 @@ +declare module "react-modal"; diff --git a/src/theme/ApiExplorer/storage-utils.ts b/src/theme/ApiExplorer/storage-utils.ts new file mode 100644 index 000000000..298a59386 --- /dev/null +++ b/src/theme/ApiExplorer/storage-utils.ts @@ -0,0 +1,32 @@ +import crypto from "crypto-js"; + +export function hashArray(arr: string[]) { + function hash(message: string) { + return crypto.SHA1(message).toString(); + } + const hashed = arr.map((item) => hash(item)); + hashed.sort(); + const res = hashed.join(); + return hash(res); +} + +type Persistance = false | "localStorage" | "sessionStorage" | undefined; + +export function createStorage(persistance: Persistance): Storage { + if (persistance === false) { + return { + getItem: () => null, + setItem: () => {}, + clear: () => {}, + key: () => null, + removeItem: () => {}, + length: 0, + }; + } + + if (persistance === "sessionStorage") { + return sessionStorage; + } + + return localStorage; +} From e059cfbd11c12796058c1dbb8df8e34d2092501a Mon Sep 17 00:00:00 2001 From: Tyler Mairose Date: Wed, 3 Jul 2024 16:08:51 -0400 Subject: [PATCH 55/74] Re-swizzle DocCard and NotFound components --- src/theme/DocCard/index.tsx | 145 +++++++++++++++++++++++++++ src/theme/DocCard/styles.module.css | 32 ++++++ src/theme/NotFound/Content/index.tsx | 44 ++++++++ 3 files changed, 221 insertions(+) create mode 100644 src/theme/DocCard/index.tsx create mode 100644 src/theme/DocCard/styles.module.css create mode 100644 src/theme/NotFound/Content/index.tsx diff --git a/src/theme/DocCard/index.tsx b/src/theme/DocCard/index.tsx new file mode 100644 index 000000000..1362384fc --- /dev/null +++ b/src/theme/DocCard/index.tsx @@ -0,0 +1,145 @@ +import React, {type ReactNode} from 'react'; +import clsx from 'clsx'; +import Link from '@docusaurus/Link'; +import { + findFirstSidebarItemLink, + useDocById, +} from '@docusaurus/theme-common/internal'; +import {usePluralForm} from '@docusaurus/theme-common'; +import isInternalUrl from '@docusaurus/isInternalUrl'; +import {translate} from '@docusaurus/Translate'; + +import type {Props} from '@theme/DocCard'; +import Heading from '@theme/Heading'; +import type { + PropSidebarItemCategory, + PropSidebarItemLink, +} from '@docusaurus/plugin-content-docs'; + +import styles from './styles.module.css'; + +import {FontAwesomeIcon} from '@fortawesome/react-fontawesome'; +import { + faFolderOpen, + faBook, + faArrowUpRightFromSquare, +} from '@fortawesome/pro-duotone-svg-icons'; + +function useCategoryItemsPlural() { + const {selectMessage} = usePluralForm(); + return (count: number) => + selectMessage( + count, + translate( + { + message: '1 item|{count} items', + id: 'theme.docs.DocCard.categoryDescription.plurals', + description: + 'The default description for a category card in the generated index about how many items this category includes', + }, + {count}, + ), + ); +} + +function CardContainer({ + href, + children, +}: { + href: string; + children: ReactNode; +}): JSX.Element { + return ( + + {children} + + ); +} + +function CardLayout({ + href, + icon, + title, + description, +}: { + href: string; + icon: ReactNode; + title: string; + description?: string; +}): JSX.Element { + return ( + + + {icon} {title} + + {description && ( +

    + {description} +

    + )} +
    + ); +} + +function CardCategory({ + item, +}: { + item: PropSidebarItemCategory; +}): JSX.Element | null { + const href = findFirstSidebarItemLink(item); + const categoryItemsPlural = useCategoryItemsPlural(); + + // Unexpected: categories that don't have a link have been filtered upfront + if (!href) { + return null; + } + + return ( + + } + title={item.label} + description={item.description ?? categoryItemsPlural(item.items.length)} + /> + ); +} + +function CardLink({item}: {item: PropSidebarItemLink}): JSX.Element { + const icon = isInternalUrl(item.href) ? ( + + ) : ( + + ); + const doc = useDocById(item.docId ?? undefined); + return ( + + ); +} + +export default function DocCard({item}: Props): JSX.Element { + switch (item.type) { + case 'link': + return ; + case 'category': + return ; + default: + throw new Error(`unknown item type ${JSON.stringify(item)}`); + } +} diff --git a/src/theme/DocCard/styles.module.css b/src/theme/DocCard/styles.module.css new file mode 100644 index 000000000..a18029ce4 --- /dev/null +++ b/src/theme/DocCard/styles.module.css @@ -0,0 +1,32 @@ +.cardContainer { + --ifm-link-color: var(--ifm-color-emphasis-800); + --ifm-link-hover-color: var(--ifm-color-emphasis-700); + --ifm-link-hover-decoration: none; + + box-shadow: 0 1.5px 3px 0 rgb(0 0 0 / 15%); + border: 1px solid var(--ifm-color-emphasis-200); + transition: all var(--ifm-transition-fast) ease; + transition-property: border, box-shadow; +} + +.cardContainer:hover { + border-color: var(--ifm-color-primary); + box-shadow: 0 3px 6px 0 rgb(0 0 0 / 20%); +} + +.cardContainer *:last-child { + margin-bottom: 0; +} + +.cardTitle { + font-size: 1.2rem; +} + +.cardDescription { + font-size: 0.8rem; +} + +.docCardIcon { + margin-right: 0.5em; + color: var(--ifm-color-primary); +} \ No newline at end of file diff --git a/src/theme/NotFound/Content/index.tsx b/src/theme/NotFound/Content/index.tsx new file mode 100644 index 000000000..6ba5e6f03 --- /dev/null +++ b/src/theme/NotFound/Content/index.tsx @@ -0,0 +1,44 @@ +import React from 'react'; +import clsx from 'clsx'; +import Translate from '@docusaurus/Translate'; +import type {Props} from '@theme/NotFound/Content'; +import Heading from '@theme/Heading'; +import ThemedImage from '@theme/ThemedImage'; +import useBaseUrl from '@docusaurus/useBaseUrl'; + + +export default function NotFoundContent({className}: Props): JSX.Element { + return ( +
    +
    +
    + + + Page Not Found + + +

    + Our docs and API specifications have recently moved—checkout the + navbar at the top of this page to find their new home. If you + can't find the document you're looking for,{' '} + + let us know + + . +

    + +
    +
    +
    + ); +} From 26dda71696ea9ecd084b448cfb280d40c1833ee2 Mon Sep 17 00:00:00 2001 From: darrell-thobe-sp Date: Wed, 3 Jul 2024 16:40:51 -0400 Subject: [PATCH 56/74] update max old space size --- .github/workflows/infra-deploy.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/infra-deploy.yml b/.github/workflows/infra-deploy.yml index 54de9ec9b..d7d93fc09 100644 --- a/.github/workflows/infra-deploy.yml +++ b/.github/workflows/infra-deploy.yml @@ -79,7 +79,7 @@ jobs: run: | echo "CMS_APP_API_ENDPOINT=$API_GATEWAY_URL" >> .env echo ${{ secrets.NPM_FONTAWESOME_CONFIG }} | base64 -d >> .npmrc - export NODE_OPTIONS="--max_old_space_size=4096" + export NODE_OPTIONS="--max_old_space_size=8192" npm ci --legacy-peer-deps npm run gen-api-docs-all npm run build From ee58c0ea7b7f0fd009bfee403ede299139660c01 Mon Sep 17 00:00:00 2001 From: Tyler Mairose Date: Wed, 3 Jul 2024 23:15:52 -0400 Subject: [PATCH 57/74] Fix build errors --- docs/iiq/plugin-developer-guide/appendix-a/index.md | 2 +- docs/iiq/plugin-developer-guide/chapter-7/index.md | 2 +- docs/tools/community-toolbox/index.md | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/docs/iiq/plugin-developer-guide/appendix-a/index.md b/docs/iiq/plugin-developer-guide/appendix-a/index.md index 68493b559..5f380e6cf 100644 --- a/docs/iiq/plugin-developer-guide/appendix-a/index.md +++ b/docs/iiq/plugin-developer-guide/appendix-a/index.md @@ -40,7 +40,7 @@ The object model for plugins has also changed somewhat. This table maps the old | certificationLevel | certificationLevel | | pluginAccessRight | rightRequired | -Gone in 7.1 is the idea of a plugin configuration model, and a snippet model. Instead, these elements have been rolled into the 'PluginAttributes' map that appears in the 'manifest.xml' file required by each plugin. The 'fullPage' object is now a single entry in the attributes mapping, which only holds the title of the 'fullPage'. Snippets move into a 'List' entry key in the attributes map. For each snippet entry in the 'List', implementers can define a regular expression 'regexPattern' to match against, the 'rightRequired' to see the snippet, and then a list of and that determine the look and action of the snippet. +Gone in 7.1 is the idea of a plugin configuration model, and a snippet model. Instead, these elements have been rolled into the 'PluginAttributes' map that appears in the 'manifest.xml' file required by each plugin. The 'fullPage' object is now a single entry in the attributes mapping, which only holds the title of the 'fullPage'. Snippets move into a 'List' entry key in the attributes map. For each snippet entry in the 'List', implementers can define a regular expression 'regexPattern' to match against, the 'rightRequired' to see the snippet, and then a list of \ and \ that determine the look and action of the snippet. The most readily apparent change in plugin definition going from 7.0 to 7.1 is the location of each setting's plugins. Previously, developers could define a URL to a settings page ('settingsPageTemplateURL') that they could completely customize. In 7.1, in order to support future portability and support, the settings page has been removed, and individual plugin settings have been internalized to the 'manifest.xm'l file. These settings are now defined in a 'Settings' list in the 'PluginAttributes' map. Each element of the list is a 'Setting', which can have the following defined: diff --git a/docs/iiq/plugin-developer-guide/chapter-7/index.md b/docs/iiq/plugin-developer-guide/chapter-7/index.md index 9babfd7c0..8ed129fab 100644 --- a/docs/iiq/plugin-developer-guide/chapter-7/index.md +++ b/docs/iiq/plugin-developer-guide/chapter-7/index.md @@ -49,7 +49,7 @@ An annotation should have at least three parts - **Line 2** - The path or endpoint - this can be parameterized, which is useful for pulling back a single record. The earlier example uses parameterization by adding the variable within {} tags to the end of the URL and also declaring the @PathParam "appName" in the input arguments of the method signature. - **Line 3** - The authorization of the method. The following values are allowed: - **@AllowAll** - Allows anyone to interrogate the endpoint. - - **@RequiredRight("")** - Allows users with the named SPRight to access the endpoint. + - **@RequiredRight("\")** - Allows users with the named SPRight to access the endpoint. - **@SystemAdmin** - System administrator access only. - **@Deferred** - Authorization is deferred to the method. When this option is selected, the implementer must also create an `Authorizer` class that implements the `sailpoint.authorization.Authorize`r interface. The `Authorizer` class should override the `authorize(UserContext)` method of the base `Authorizer` interface. Inside the REST resource method, the author would then call `authorize()`. Here is a simple example: diff --git a/docs/tools/community-toolbox/index.md b/docs/tools/community-toolbox/index.md index bc75bb19b..c223916f7 100644 --- a/docs/tools/community-toolbox/index.md +++ b/docs/tools/community-toolbox/index.md @@ -100,7 +100,7 @@ When you launch the Community Toolbox, it prompts you to provide your tenant inf You must provide this tenant information to be able to log in: - **Tenant**: This is your organization's tenant name. - **Domain**: This is usually 'identitynow'. -- **Base URL**: This is the API URL - it is 'https://{tenant}.{domain}.com', like 'https:acme.identitynow.com', for example. +- **Base URL**: This is the API URL - it is 'https://[tenant].[domain].com', like 'https:acme.identitynow.com', for example. - **Tenant URL**: This is the tenant URL - it is often the same as the API URL. Once you have provided your tenant information, the Community Toolbox prompts you to log in to your tenant the same way you would from the browser. You must provide a password and possibly some additional form of authentication. From 47445ac499eb5b219bf6aca32ea8d74f3f8da9f0 Mon Sep 17 00:00:00 2001 From: Tyler Mairose Date: Thu, 4 Jul 2024 15:48:43 -0400 Subject: [PATCH 58/74] Fix build errors --- .../rules/connector-rules/index.md | 26 +++++++++---------- 1 file changed, 13 insertions(+), 13 deletions(-) diff --git a/docs/extensibility/rules/connector-rules/index.md b/docs/extensibility/rules/connector-rules/index.md index 45634da07..70b50e617 100644 --- a/docs/extensibility/rules/connector-rules/index.md +++ b/docs/extensibility/rules/connector-rules/index.md @@ -40,10 +40,10 @@ Connector Rules are directly editable with the [Connector Rule REST APIs](https: | Name | Path | | --- | --- | | [List Connector Rules](/docs/api/beta/get-connector-rule-list) | `GET /beta/connector-rules/` | -| [Get Connector Rule](/docs/api/beta/get-connector-rule) | `GET /beta/connector-rules/{id}` | +| [Get Connector Rule](/docs/api/beta/get-connector-rule) | `GET /beta/connector-rules/[id]` | | [Create Connector Rule](/docs/api/beta/create-connector-rule) | `POST /beta/connector-rules/` | -| [Update Connector Rule](/docs/api/beta/update-connector-rule) | `PUT /beta/connector-rules/{id}` | -| [Delete Connector Rule](/docs/api/beta/delete-connector-rule) | `DELETE /beta/connector-rules/{id}` | +| [Update Connector Rule](/docs/api/beta/update-connector-rule) | `PUT /beta/connector-rules/[id]` | +| [Delete Connector Rule](/docs/api/beta/delete-connector-rule) | `DELETE /beta/connector-rules/[id]` | | [Validate Connector Rule](/docs/api/beta/validate-connector-rule) | `POST /beta/connector-rules/validate` | SailPoint architectural optimizations have added resiliency and protections against malformed or long-running rules. These APIs also offer built-in protection and checking against potentially harmful code. For more information, see [Rule Code Restrictions](../../rules/index.md#rule-code-restrictions). @@ -99,7 +99,7 @@ For the `PATCH` operations, you must provide an `op` key. For new configurations ### BeforeProvisioning Rule -`PATCH` /v3/sources/{id} +`PATCH` /v3/sources/[id] Content-Type: `application/json-patch+json` @@ -119,7 +119,7 @@ Content-Type: `application/json-patch+json` ### AfterCreate, AfterModify, AfterDelete, BeforeCreate, BeforeModify, BeforeDelete Rules -`PATCH` /v3/sources/{id} +`PATCH` /v3/sources/[id] Content-Type: `application/json-patch+json` @@ -141,7 +141,7 @@ The value key is a list. All available AfterCreate, AfterModify, BeforeCreate, a ### Correlation Rule -`PATCH` /v3/sources/{id} +`PATCH` /v3/sources/[id] Content-Type: `application/json-patch+json` @@ -161,7 +161,7 @@ Content-Type: `application/json-patch+json` ### ManagerCorrelation Rule -`PATCH` /v3/sources/{id} +`PATCH` /v3/sources/[id] Content-Type: `application/json-patch+json` @@ -181,7 +181,7 @@ Content-Type: `application/json-patch+json` ### BuildMap Rule -`PATCH` /v3/sources/{id} +`PATCH` /v3/sources/[id] Content-Type: `application/json-patch+json` @@ -197,7 +197,7 @@ Content-Type: `application/json-patch+json` ### JDBCBuildMap Rule -`PATCH` /v3/sources/{id} +`PATCH` /v3/sources/[id] Content-Type: `application/json-patch+json` @@ -213,7 +213,7 @@ Content-Type: `application/json-patch+json` ### JDBCProvision Rule -`PATCH` /v3/sources/{id} +`PATCH` /v3/sources/[id] Content-Type: `application/json-patch+json` @@ -229,7 +229,7 @@ Content-Type: `application/json-patch+json` ### SAP HR Provisioning Modify Rule -`PATCH` /v3/sources/{id} +`PATCH` /v3/sources/[id] Content-Type: `application/json-patch+json` @@ -245,7 +245,7 @@ Content-Type: `application/json-patch+json` ### WebServiceBeforeOperation Rule -`PATCH` /v3/sources/{id} +`PATCH` /v3/sources/[id] Content-Type: `application/json-patch+json` @@ -263,7 +263,7 @@ _Note: Replace `_`with the index location of operation the way it is configured ### WebServiceAfterOperation Rule -`PATCH` /v3/sources/{id} Content-Type: `application/json-patch+json` +`PATCH` /v3/sources/[id] Content-Type: `application/json-patch+json` _Note: Replace \[\*\] with the index location of the operation the way it is configured on the source. For example, 0, 1, 2, etc. You can use a `GET` call on the source first to verify the index location prior to executing the `PATCH` call to attach the rule._ From 7d0721ed0fd7c2fb20d0ffe3e2f642a54474e26d Mon Sep 17 00:00:00 2001 From: Tyler Mairose Date: Thu, 4 Jul 2024 16:16:12 -0400 Subject: [PATCH 59/74] Fix broken links --- docs/tools/cli/search.md | 2 +- docs/tools/sdk/python/getting-started.md | 4 ++-- docs/tools/sdk/python/index.mdx | 2 +- docs/tools/sdk/python/pagination.md | 2 +- docs/tools/sdk/python/search.md | 6 +++--- 5 files changed, 8 insertions(+), 8 deletions(-) diff --git a/docs/tools/cli/search.md b/docs/tools/cli/search.md index 596554fb9..3e8a5f142 100644 --- a/docs/tools/cli/search.md +++ b/docs/tools/cli/search.md @@ -15,7 +15,7 @@ tags: ['CLI'] Learn how to use the CLI to search your ISC tenant in this guide. -In Identity Security Cloud (ISC), you can search across all the sources connected to your tenant and return virtually any information you have access to. The `search` command allows you to access ISC search functionality within the CLI. For more information about the `search` command, refer to the CLI [Search guide](docs/tools/cli/search). For more information about search in ISC, refer to [Search](docs/api/v3/search). +In Identity Security Cloud (ISC), you can search across all the sources connected to your tenant and return virtually any information you have access to. The `search` command allows you to access ISC search functionality within the CLI. For more information about the `search` command, refer to the CLI [Search guide](./search.md). For more information about search in ISC, refer to [Search](../../api/v3/search). In Identity Security Cloud, you can search all the sources connected to your tenant and return virtually any information you have access to. To learn more about search in Identity Security Cloud, refer to [Search](https://documentation.sailpoint.com/saas/help/search/index.html). diff --git a/docs/tools/sdk/python/getting-started.md b/docs/tools/sdk/python/getting-started.md index 303eda36c..e5c83fa0a 100644 --- a/docs/tools/sdk/python/getting-started.md +++ b/docs/tools/sdk/python/getting-started.md @@ -15,9 +15,9 @@ Once your SDK is installed and configured, you can start accessing the SDK's dif ## List Transforms -One of the most useful functionalities of the Python SDK is the ability to easily access all the [V3 APIs](/idn/api/v3) and [Beta APIs](/idn/api/beta) and implement them in your project. +One of the most useful functionalities of the Python SDK is the ability to easily access all the [V3 APIs](/docs/api/v3) and [Beta APIs](/docs/api/beta) and implement them in your project. -Here is an example of how to use the SDK to get a list of available [transforms](/idn/docs/transforms). This example leverages the [List Transforms endpoint](/idn/api/v3/list-transforms). +Here is an example of how to use the SDK to get a list of available [transforms](/docs/extensibility/transforms). This example leverages the [List Transforms endpoint](/docs/api/v3/list-transforms). Create a file in your project called "sdk.py" and copy this content into it: diff --git a/docs/tools/sdk/python/index.mdx b/docs/tools/sdk/python/index.mdx index f5017cd2b..6a1c955f1 100644 --- a/docs/tools/sdk/python/index.mdx +++ b/docs/tools/sdk/python/index.mdx @@ -19,7 +19,7 @@ You need the following to use the Python SDK: - Python version 3.7 or above. You can download it [here](https://www.python.org/downloads/). You can use `python --version` to check your version. -- Your tenant name in Identity Security Cloud. To learn how to find it, refer to [Getting Started](/idn/api/getting-started#find-your-tenant-name). The SDK will use this tenant name to connect to your Identity Security Cloud instance. +- Your tenant name in Identity Security Cloud. To learn how to find it, refer to [Getting Started](/docs/api/getting-started.md#find-your-tenant-name). The SDK will use this tenant name to connect to your Identity Security Cloud instance. - A PAT with a client secret and ID. To learn how to create one in Identity Security Cloud, refer to [Personal Access Tokens](https://documentation.sailpoint.com/saas/help/common/api_keys.html#generating-a-personal-access-token). The SDK will use this PAT to authenticate with the SailPoint APIs. diff --git a/docs/tools/sdk/python/pagination.md b/docs/tools/sdk/python/pagination.md index 506c1f55e..30ae35b0b 100644 --- a/docs/tools/sdk/python/pagination.md +++ b/docs/tools/sdk/python/pagination.md @@ -11,7 +11,7 @@ slug: /tools/sdk/python/paginate tags: ['SDK'] --- -By default, your requests will return a maximum of 250 records. To return more, you must implement pagination. To learn more about pagination, refer to [Paginating Results](/idn/api/standard-collection-parameters/#paginating-results). +By default, your requests will return a maximum of 250 records. To return more, you must implement pagination. To learn more about pagination, refer to [Paginating Results](/docs/api/standard-collection-parameters/#paginating-results). Here is an example of how to implement pagination with the SDK on line 10: diff --git a/docs/tools/sdk/python/search.md b/docs/tools/sdk/python/search.md index 6451b723a..2cd6a5e39 100644 --- a/docs/tools/sdk/python/search.md +++ b/docs/tools/sdk/python/search.md @@ -11,7 +11,7 @@ slug: /tools/sdk/python/search tags: ['SDK'] --- -One of the most useful functionalities you can access with the Python SDK is Identity Security Cloud's [search functionality](/idn/api/v3/search-post). +One of the most useful functionalities you can access with the Python SDK is Identity Security Cloud's [search functionality](/docs/api/v3/search-post). Here is an example of how you can implement Search, along with pagination. Copy this code into your "sdk.py" file to try it out: @@ -46,9 +46,9 @@ This example returns 1000 identities, 100 per page, and sorts them in descending There are two main ways you can manipulate this example to search for the results you want: -The first way is to change the `indices`, the document types you want to limit your search to. For example, if you add `"access profiles"` to the indices, the SDK will search access profiles too. To see all the indices you can search, refer to the [Search endpoint specification](/idn/api/v3/search-post). +The first way is to change the `indices`, the document types you want to limit your search to. For example, if you add `"access profiles"` to the indices, the SDK will search access profiles too. To see all the indices you can search, refer to the [Search endpoint specification](/docs/api/v3/search-post). The second way is to change the `query`, the value you're searching for. For example, if you change the query to "a*", the search will return all records starting with the letter "a". To learn more about how to build search queries, refer to [Building a Search Query](https://documentation.sailpoint.com/saas/help/search/building-query.html). -You can also change the sorting logic in the brackets next to `sort`. For more information about sorting results, refer to [Sorting Results](/idn/api/standard-collection-parameters/#sorting-results). +You can also change the sorting logic in the brackets next to `sort`. For more information about sorting results, refer to [Sorting Results](/docs/api/standard-collection-parameters/#sorting-results). From 688c4f93a1ad835657e2028559cc4204d390f499 Mon Sep 17 00:00:00 2001 From: Tyler Mairose Date: Thu, 4 Jul 2024 16:29:15 -0400 Subject: [PATCH 60/74] Fix broken links --- docs/tools/sdk/python/getting-started.md | 2 +- docs/tools/sdk/python/pagination.md | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/tools/sdk/python/getting-started.md b/docs/tools/sdk/python/getting-started.md index e5c83fa0a..a547b35d3 100644 --- a/docs/tools/sdk/python/getting-started.md +++ b/docs/tools/sdk/python/getting-started.md @@ -57,7 +57,7 @@ You can use this example as a guide for how to access all the V3 and Beta APIs ( With the same SDK function, you can use query parameters to limit the results of your transforms list to only the results you want. -Refer to the [List Transforms endpoint specification](/idn/api/v3/list-transforms) to view all its query parameters. +Refer to the [List Transforms endpoint specification](/docs/api/v3/list-transforms) to view all its query parameters. Here is an example that uses query parameters to limit the list to no more than 10 transforms that all start with the name "Test": diff --git a/docs/tools/sdk/python/pagination.md b/docs/tools/sdk/python/pagination.md index 30ae35b0b..ceeb5c197 100644 --- a/docs/tools/sdk/python/pagination.md +++ b/docs/tools/sdk/python/pagination.md @@ -44,4 +44,4 @@ The `result_limit` specifies the total number of results you can return, 1000. T You can also provide an `offset` value to specify which record number to start the request on. For example, you can add `offset=11` to start getting accounts from the 12th record, 11, instead of the first, 0. -To find out whether an endpoint supports pagination, refer to its documentation. Any API supporting pagination lists the optional query parameters detailed in [Paginating Results](/idn/api/standard-collection-parameters/#paginating-results). +To find out whether an endpoint supports pagination, refer to its documentation. Any API supporting pagination lists the optional query parameters detailed in [Paginating Results](/docs/api/standard-collection-parameters/#paginating-results). From f38f60547e09f7aee60db213da4d9eae4b55eed9 Mon Sep 17 00:00:00 2001 From: Tyler Mairose Date: Mon, 8 Jul 2024 09:45:39 -0400 Subject: [PATCH 61/74] Add background color to security schemas header --- src/css/custom.css | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/css/custom.css b/src/css/custom.css index fca6c3f14..85d5baf9a 100644 --- a/src/css/custom.css +++ b/src/css/custom.css @@ -547,3 +547,7 @@ div[id^='discourse-comments'] { display: flex; padding-bottom: 2%; } + +.openapi-security__summary-container { + background: var(--ifm-pre-background); +} \ No newline at end of file From 4ca59ee76aee5bd52cd077e915ca50cb38bf8fbf Mon Sep 17 00:00:00 2001 From: GitHub Action Bot Date: Wed, 10 Jul 2024 19:52:19 +0000 Subject: [PATCH 62/74] Automated commit by github action: 9880543327 --- .../historical-identity-access-items.yaml | 85 ++++++++++++++++++- .../AccessItemAccessProfileResponse.yaml | 17 +++- .../beta/schemas/AccessItemAppResponse.yaml | 6 +- .../AccessItemEntitlementResponse.yaml | 17 +++- .../beta/schemas/AccessItemRoleResponse.yaml | 14 ++- 5 files changed, 129 insertions(+), 10 deletions(-) diff --git a/static/api-specs/idn/beta/paths/historical-identity-access-items.yaml b/static/api-specs/idn/beta/paths/historical-identity-access-items.yaml index 81f37d8fe..abea8d0b0 100644 --- a/static/api-specs/idn/beta/paths/historical-identity-access-items.yaml +++ b/static/api-specs/idn/beta/paths/historical-identity-access-items.yaml @@ -18,8 +18,73 @@ get: name: type schema: type: string - description: The type of access item for the identity. If not provided, it defaults to account + description: >- + The type of access item for the identity. If not provided, it defaults to account. + + + Types of access items: **accessProfile, account, app, entitlement, role** example: account + - in: query + name: filters + schema: + type: string + description: >- + Filter results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#filtering-results) + + + Filtering is supported for the following fields and operators: + + + **source**: *eq* + + + **standalone**: *eq* + + + **privileged**: *eq* + + + **attribute**: *eq* + + + **cloudGoverned**: *eq* + example: source eq "DataScienceDataset" + - in: query + name: sorters + schema: + type: string + format: comma-separated + description: >- + Sort results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#sorting-results) + + + Sorting is supported for the following fields: **name, value, standalone, privileged, attribute, source, cloudGoverned, removeDate, nativeIdentity, entitlementCount** + example: name + - in: query + name: query + schema: + type: string + description: >- + This param is used to search if certain fields of the access item contain the string provided. + + + Searching is supported for the following fields depending on the type: + + + Access Profiles: **name, description** + + + Accounts: **name, nativeIdentity** + + + Apps: **name** + + + Entitlements: **name, value, description** + + + Roles: **name, description** + example: "Dr. Arden" responses: '200': description: The list of access items. @@ -41,13 +106,15 @@ get: value: - accessType: accessProfile id: 2c918087763e69d901763e72e97f006f - name: sample sourceName: DataScienceDataset sourceId: 2793o32dwd description: AccessProfile - Workday/Citizenship access displayName: Dr. Arden Rogahn MD entitlementCount: 12 appDisplayName: AppName + removeDate: 2024-07-01T06:00:00.00Z + standalone: false + revocable: true Account: description: An account response @@ -66,6 +133,7 @@ get: - accessType: app id: 2c918087763e69d901763e72e97f006f name: appName + appRoleId: 2c918087763e69d901763e72e97f006f Entitlement: description: An entitlement event @@ -78,7 +146,10 @@ get: sourceName: DataScienceDataset sourceId: 2793o32dwd description: Entitlement - Workday/Citizenship access - displayName: Dr. Arden Rogahn MD + displayName: Dr. Arden Rogahn MD + standalone: true + privileged: false + cloudGoverned: false Role: description: A role response @@ -87,6 +158,8 @@ get: id: 2c918087763e69d901763e72e97f006f name: sample description: Role - Workday/Citizenship access + removeDate: 2024-07-01T06:00:00.00Z + revocable: true '400': $ref: '../../v3/responses/400.yaml' '401': @@ -95,5 +168,9 @@ get: $ref: '../../v3/responses/403.yaml' '404': $ref: '../../v3/responses/404.yaml' + '429': + $ref: '../../v3/responses/429.yaml' '500': - $ref: '../../v3/responses/500.yaml' \ No newline at end of file + $ref: '../../v3/responses/500.yaml' + security: + - UserContextAuth: [ idn:identity-history:read ] \ No newline at end of file diff --git a/static/api-specs/idn/beta/schemas/AccessItemAccessProfileResponse.yaml b/static/api-specs/idn/beta/schemas/AccessItemAccessProfileResponse.yaml index 93ebacf23..ddbcfb5a0 100644 --- a/static/api-specs/idn/beta/schemas/AccessItemAccessProfileResponse.yaml +++ b/static/api-specs/idn/beta/schemas/AccessItemAccessProfileResponse.yaml @@ -35,4 +35,19 @@ properties: appDisplayName: type: string example: AppName - description: the name of app \ No newline at end of file + description: the name of + removeDate: + type: string + example: 2024-07-01T06:00:00.00Z + description: the date the access profile is no longer assigned to the specified identity + standalone: + type: boolean + example: false + description: indicates whether the access profile is standalone + revocable: + type: boolean + example: true + description: indicates whether the access profile is +required: + - standalone + - revocable \ No newline at end of file diff --git a/static/api-specs/idn/beta/schemas/AccessItemAppResponse.yaml b/static/api-specs/idn/beta/schemas/AccessItemAppResponse.yaml index 10d93d90f..6fda71816 100644 --- a/static/api-specs/idn/beta/schemas/AccessItemAppResponse.yaml +++ b/static/api-specs/idn/beta/schemas/AccessItemAppResponse.yaml @@ -11,10 +11,14 @@ properties: displayName: type: string example: Display Name - description: the access profile display name + description: the access item display name sourceName: type: string example: appName description: the associated source name if it exists + appRoleId: + type: string + example: 2c918087763e69d901763e72e97f006f + description: the app role id \ No newline at end of file diff --git a/static/api-specs/idn/beta/schemas/AccessItemEntitlementResponse.yaml b/static/api-specs/idn/beta/schemas/AccessItemEntitlementResponse.yaml index 19be9f523..36d47a8c2 100644 --- a/static/api-specs/idn/beta/schemas/AccessItemEntitlementResponse.yaml +++ b/static/api-specs/idn/beta/schemas/AccessItemEntitlementResponse.yaml @@ -36,4 +36,19 @@ properties: type: string example: Dr. Arden Rogahn MD description: the display name of the identity - \ No newline at end of file + standalone: + type: boolean + example: true + description: indicates whether the entitlement is standalone + privileged: + type: boolean + example: false + description: indicates whether the entitlement is privileged + cloudGoverned: + type: boolean + example: true + description: indicates whether the entitlement is cloud governed +required: + - standalone + - privileged + - cloudGoverned \ No newline at end of file diff --git a/static/api-specs/idn/beta/schemas/AccessItemRoleResponse.yaml b/static/api-specs/idn/beta/schemas/AccessItemRoleResponse.yaml index eda1a9a35..d3685379b 100644 --- a/static/api-specs/idn/beta/schemas/AccessItemRoleResponse.yaml +++ b/static/api-specs/idn/beta/schemas/AccessItemRoleResponse.yaml @@ -19,6 +19,14 @@ properties: sourceName: type: string example: Source Name - description: the associated source name if it exists - - \ No newline at end of file + description: the associated source name if it exists + removeDate: + type: string + example: 2024-07-01T06:00:00.00Z + description: the date the role is no longer assigned to the specified identity + revocable: + type: boolean + example: true + description: indicates whether the role is revocable +required: + - revocable \ No newline at end of file From feb8b0130dcbe9bf2d2cfde091ee00d9270d5899 Mon Sep 17 00:00:00 2001 From: GitHub Action Bot Date: Wed, 10 Jul 2024 20:52:46 +0000 Subject: [PATCH 63/74] Automated commit by github action: 9881292628 --- .../beta/paths/discovered-applications.yaml | 2 +- ...manual-discover-applications-template.yaml | 12 +- .../paths/manual-discover-applications.yaml | 19 +-- .../beta/paths/vendor-connector-mappings.yaml | 2 +- .../ManualDiscoverApplicationsTemplate.yaml | 4 +- static/api-specs/idn/sailpoint-api.beta.yaml | 19 +-- static/api-specs/idn/sailpoint-api.v3.yaml | 13 +- .../idn/v3/paths/discovered-applications.yaml | 61 ++++++++ ...manual-discover-applications-template.yaml | 34 +++++ .../paths/manual-discover-applications.yaml | 34 +++++ .../v3/paths/vendor-connector-mappings.yaml | 143 ++++++++++++++++++ .../schemas/ManualDiscoverApplications.yaml | 12 ++ .../ManualDiscoverApplicationsTemplate.yaml | 10 ++ .../v3/schemas/VendorConnectorMapping.yaml | 81 ++++++++++ 14 files changed, 410 insertions(+), 36 deletions(-) create mode 100644 static/api-specs/idn/v3/paths/discovered-applications.yaml create mode 100644 static/api-specs/idn/v3/paths/manual-discover-applications-template.yaml create mode 100644 static/api-specs/idn/v3/paths/manual-discover-applications.yaml create mode 100644 static/api-specs/idn/v3/paths/vendor-connector-mappings.yaml create mode 100644 static/api-specs/idn/v3/schemas/ManualDiscoverApplications.yaml create mode 100644 static/api-specs/idn/v3/schemas/ManualDiscoverApplicationsTemplate.yaml create mode 100644 static/api-specs/idn/v3/schemas/VendorConnectorMapping.yaml diff --git a/static/api-specs/idn/beta/paths/discovered-applications.yaml b/static/api-specs/idn/beta/paths/discovered-applications.yaml index 4b4ac5a76..5a3332f76 100644 --- a/static/api-specs/idn/beta/paths/discovered-applications.yaml +++ b/static/api-specs/idn/beta/paths/discovered-applications.yaml @@ -1,7 +1,7 @@ get: operationId: getDiscoveredApplications tags: - - Discovered Applications + - Application Discovery summary: Retrieve discovered applications for tenant description: > Fetches a list of applications that have been identified within the environment. This includes details such as application names, discovery dates, potential correlated saas_vendors and related suggested connectors. diff --git a/static/api-specs/idn/beta/paths/manual-discover-applications-template.yaml b/static/api-specs/idn/beta/paths/manual-discover-applications-template.yaml index b43b040b8..8f7a90da2 100644 --- a/static/api-specs/idn/beta/paths/manual-discover-applications-template.yaml +++ b/static/api-specs/idn/beta/paths/manual-discover-applications-template.yaml @@ -1,10 +1,13 @@ get: summary: CSV template download for discovery tags: - - Manual Discover Applications Template + - Application Discovery description: > - Allows the user to download an example CSV file with two columns `application_name` and `domain`. + This endpoint allows the user to download an example CSV file with two columns `application_name` and `description`. The CSV file contains a single row with the values 'Example Application' and 'Example Description'. + + + The downloaded template is specifically designed for use with the `/manual-discover-applications` endpoint. security: - UserContextAuth: - 'idn:application-discovery:read' @@ -15,7 +18,10 @@ get: content: text/csv: schema: - $ref: '../schemas/ManualDiscoverApplicationsTemplate.yaml' + $ref: '../../beta/schemas/ManualDiscoverApplicationsTemplate.yaml' + example: | + application_name,description + Example Application,Example Description '400': $ref: '../../v3/responses/400.yaml' '401': diff --git a/static/api-specs/idn/beta/paths/manual-discover-applications.yaml b/static/api-specs/idn/beta/paths/manual-discover-applications.yaml index 2835ab674..d40a6a670 100644 --- a/static/api-specs/idn/beta/paths/manual-discover-applications.yaml +++ b/static/api-specs/idn/beta/paths/manual-discover-applications.yaml @@ -1,10 +1,11 @@ post: summary: CSV Upload to discover applications tags: - - Manual Discover Applications + - Application Discovery description: >- - This API allows for the upload of a CSV file containing application data to - be manually correlated to potential IDN connector(s). + This endpoint supports uploading a CSV file with application data for manual correlation to specific IDN connectors. + + If a suitable IDN connector is unavailable, the system will recommend generic connectors instead. security: - UserContextAuth: - 'idn:application-discovery:write' @@ -13,20 +14,10 @@ post: content: multipart/form-data: schema: - type: object - properties: - csvFile: - type: string - format: binary - required: - - csvFile + $ref: '../schemas/ManualDiscoverApplications.yaml' responses: '200': description: The CSV has been successfully processed. - content: - multipart/form-data: - schema: - $ref: '../schemas/ManualDiscoverApplications.yaml' '400': $ref: '../../v3/responses/400.yaml' description: > diff --git a/static/api-specs/idn/beta/paths/vendor-connector-mappings.yaml b/static/api-specs/idn/beta/paths/vendor-connector-mappings.yaml index b4f4f5af0..d07e197e9 100644 --- a/static/api-specs/idn/beta/paths/vendor-connector-mappings.yaml +++ b/static/api-specs/idn/beta/paths/vendor-connector-mappings.yaml @@ -4,7 +4,7 @@ get: - 'idn:application-discovery:read' operationId: getVendorConnectorMappings tags: - - Vendor Connector Mappings + - Application Discovery summary: List vendor connector mappings description: > Retrieves a list of mappings between SaaS vendors and IDN connectors, detailing the connections established for correlation. diff --git a/static/api-specs/idn/beta/schemas/ManualDiscoverApplicationsTemplate.yaml b/static/api-specs/idn/beta/schemas/ManualDiscoverApplicationsTemplate.yaml index 68ced4509..9f76fa589 100644 --- a/static/api-specs/idn/beta/schemas/ManualDiscoverApplicationsTemplate.yaml +++ b/static/api-specs/idn/beta/schemas/ManualDiscoverApplicationsTemplate.yaml @@ -4,7 +4,7 @@ properties: type: string description: Name of the example application. example: "Example Application" - domain: + description: type: string - description: Description of the example application's domain. + description: Description of the example application. example: "Example Description" diff --git a/static/api-specs/idn/sailpoint-api.beta.yaml b/static/api-specs/idn/sailpoint-api.beta.yaml index 0c6a80eaa..31b68e1a3 100644 --- a/static/api-specs/idn/sailpoint-api.beta.yaml +++ b/static/api-specs/idn/sailpoint-api.beta.yaml @@ -195,6 +195,9 @@ tags: Administrators can select the source account to view its attributes, entitlements, and the last time the account's password was changed. Refer to [Managing User Accounts](https://documentation.sailpoint.com/saas/help/common/users/user_access.html#managing-user-accounts) for more information about accounts. + - name: Application Discovery + description: | + Use this API to discover applications within your Okta connector and receive connector recommendations by manually uploading application names. - name: Auth Profile description: | Auth Profile - Represents authentication configuration for an Identity Profile. This object gets created when an Identity Profile is created. @@ -324,9 +327,6 @@ tags: For example, an administrator can use the pageId forget-username:user-email to set the custom text for the case when users forget their usernames and must enter their emails. Refer to [Creating Custom Instruction Text](https://documentation.sailpoint.com/saas/help/pwd/pwd_reset.html#creating-custom-instruction-text) for more information about creating custom password instructions. - - name: Discovered Applications - description: | - Use this API to retrieve all the available discovered apps for a given tenant id. - name: Entitlements description: | Use this API to implement and customize entitlement functionality. @@ -470,12 +470,6 @@ tags: description: Read and write operations for managing client data and statuses - name: Managed Clusters description: Operations for accessing and managing client Clusters, including Log Configuration - - name: Manual Discover Applications - description: | - Use this API to manually upload application names to be correlated to an ISC connector. - - name: Manual Discover Applications Template - description: | - Use this API to download the CSV template to send to the application discovery service. - name: MFA Configuration description: Configure and test multifactor authentication (MFA) methods - name: MFA Controller @@ -999,9 +993,6 @@ tags: Use this API to manage metadata about your User Interface. For example you can set the iFrameWhitelist parameter to permit another domain to encapsulate IDN within an iframe or set the usernameEmptyText to change the placeholder text for Username on your tenant's login screen. - - name: Vendor Connector Mappings - description: | - Use this API to manage mappings between various SaaS vendors and Identity Security Cloud (ISC) connectors. - name: Work Items description: | Use this API to implement work item functionality. @@ -1833,10 +1824,10 @@ paths: $ref: "./beta/paths/account-usages.yaml" /access-request-identity-metrics/{identityId}/requested-objects/{requestedObjectId}/type/{type}: $ref: "./beta/paths/access-request-identity-metrics.yaml" - /manual-discover-applications: - $ref: "./beta/paths/manual-discover-applications.yaml" /manual-discover-applications-template: $ref: "./beta/paths/manual-discover-applications-template.yaml" + /manual-discover-applications: + $ref: "./beta/paths/manual-discover-applications.yaml" /discovered-applications: $ref: "./beta/paths/discovered-applications.yaml" /vendor-connector-mappings: diff --git a/static/api-specs/idn/sailpoint-api.v3.yaml b/static/api-specs/idn/sailpoint-api.v3.yaml index e3a5e9aa4..d239aa822 100644 --- a/static/api-specs/idn/sailpoint-api.v3.yaml +++ b/static/api-specs/idn/sailpoint-api.v3.yaml @@ -172,13 +172,16 @@ tags: Administrators can select the source account to view its attributes, entitlements, and the last time the account's password was changed. Refer to [Managing User Accounts](https://documentation.sailpoint.com/saas/help/common/users/user_access.html#managing-user-accounts) for more information about accounts. + - name: Application Discovery + description: | + Use this API to discover applications within your Okta connector and receive connector recommendations by manually uploading application names. - name: Auth Users description: | Use this API to implement user authentication system functionality. With this functionality in place, users can get a user's authentication system details, including their capabilities, and modify those capabilities. The user's capabilities refer to their access to different systems, or authorization, within the tenant, like access to certifications (CERT_ADMIN) or reports (REPORT_ADMIN). These capabilities also determine a user's access to the different APIs. - This API provides users with a way to determine a user's access and make quick and easy changes to that access. + This API provides users with a way to determine a user's access and make quick and easy changes to that access. - name: Branding description: | Use this API to implement and customize branding functionality. @@ -1404,6 +1407,14 @@ paths: $ref: "./v3/paths/source-usages.yaml" /account-usages/{accountId}/summaries: $ref: "./v3/paths/account-usages.yaml" + /manual-discover-applications-template: + $ref: "./v3/paths/manual-discover-applications-template.yaml" + /manual-discover-applications: + $ref: "./v3/paths/manual-discover-applications.yaml" + /discovered-applications: + $ref: "./v3/paths/discovered-applications.yaml" + /vendor-connector-mappings: + $ref: "./v3/paths/vendor-connector-mappings.yaml" security: - UserContextAuth: [] diff --git a/static/api-specs/idn/v3/paths/discovered-applications.yaml b/static/api-specs/idn/v3/paths/discovered-applications.yaml new file mode 100644 index 000000000..5a3332f76 --- /dev/null +++ b/static/api-specs/idn/v3/paths/discovered-applications.yaml @@ -0,0 +1,61 @@ +get: + operationId: getDiscoveredApplications + tags: + - Application Discovery + summary: Retrieve discovered applications for tenant + description: > + Fetches a list of applications that have been identified within the environment. This includes details such as application names, discovery dates, potential correlated saas_vendors and related suggested connectors. + security: + - UserContextAuth: + - 'idn:application-discovery:read' + parameters: + - $ref: '../../v3/parameters/limit.yaml' + - $ref: '../../v3/parameters/offset.yaml' + - in: query + name: filter + schema: + type: string + description: > + Filter results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#filtering-results) + + + Filtering is supported for the following fields and operators: + + + **name**: *eq, sw, co* + + + **description**: *eq, sw, co* + example: name eq "Okta" and description co "Okta" + required: false + style: form + - in: query + name: sorters + schema: + type: string + format: comma-separated + description: >- + Sort results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#sorting-results) + + + Sorting is supported for the following fields: **name, description, discoveredAt, discoverySource** + example: name + responses: + '200': + description: Successfully retrieved list of discovered applications. + content: + application/json: + schema: + type: array + items: + $ref: '../../beta/schemas/DiscoveredApplications.yaml' + '400': + $ref: '../../v3/responses/400.yaml' + '401': + $ref: '../../v3/responses/401.yaml' + '403': + $ref: '../../v3/responses/403.yaml' + '429': + $ref: '../../v3/responses/429.yaml' + '500': + $ref: '../../v3/responses/500.yaml' diff --git a/static/api-specs/idn/v3/paths/manual-discover-applications-template.yaml b/static/api-specs/idn/v3/paths/manual-discover-applications-template.yaml new file mode 100644 index 000000000..c8cdab5c5 --- /dev/null +++ b/static/api-specs/idn/v3/paths/manual-discover-applications-template.yaml @@ -0,0 +1,34 @@ +get: + summary: CSV template download for discovery + tags: + - Application Discovery + description: > + This endpoint allows the user to download an example CSV file with two columns `application_name` and `description`. + The CSV file contains a single row with the values 'Example Application' and 'Example Description'. + + + The downloaded template is specifically designed for use with the `/manual-discover-applications` endpoint. + security: + - UserContextAuth: + - 'idn:application-discovery:read' + operationId: getManualDiscoverApplicationsCsvTemplate + responses: + '200': + description: A CSV file download was successful. + content: + text/csv: + schema: + $ref: '../../v3/schemas/ManualDiscoverApplicationsTemplate.yaml' + example: | + application_name,description + Example Application,Example Description + '400': + $ref: '../../v3/responses/400.yaml' + '401': + $ref: '../../v3/responses/401.yaml' + '403': + $ref: '../../v3/responses/403.yaml' + '429': + $ref: '../../v3/responses/429.yaml' + '500': + $ref: '../../v3/responses/500.yaml' diff --git a/static/api-specs/idn/v3/paths/manual-discover-applications.yaml b/static/api-specs/idn/v3/paths/manual-discover-applications.yaml new file mode 100644 index 000000000..d40a6a670 --- /dev/null +++ b/static/api-specs/idn/v3/paths/manual-discover-applications.yaml @@ -0,0 +1,34 @@ +post: + summary: CSV Upload to discover applications + tags: + - Application Discovery + description: >- + This endpoint supports uploading a CSV file with application data for manual correlation to specific IDN connectors. + + If a suitable IDN connector is unavailable, the system will recommend generic connectors instead. + security: + - UserContextAuth: + - 'idn:application-discovery:write' + operationId: sendManualDiscoverApplicationsCsvTemplate + requestBody: + content: + multipart/form-data: + schema: + $ref: '../schemas/ManualDiscoverApplications.yaml' + responses: + '200': + description: The CSV has been successfully processed. + '400': + $ref: '../../v3/responses/400.yaml' + description: > + Bad request - There was an error with the CSV format or validation + failed (e.g., `application_name` missing). Error message should be + provided in response. + '401': + $ref: '../../v3/responses/401.yaml' + '403': + $ref: '../../v3/responses/403.yaml' + '429': + $ref: '../../v3/responses/429.yaml' + '500': + $ref: '../../v3/responses/500.yaml' diff --git a/static/api-specs/idn/v3/paths/vendor-connector-mappings.yaml b/static/api-specs/idn/v3/paths/vendor-connector-mappings.yaml new file mode 100644 index 000000000..d07e197e9 --- /dev/null +++ b/static/api-specs/idn/v3/paths/vendor-connector-mappings.yaml @@ -0,0 +1,143 @@ +get: + security: + - UserContextAuth: + - 'idn:application-discovery:read' + operationId: getVendorConnectorMappings + tags: + - Application Discovery + summary: List vendor connector mappings + description: > + Retrieves a list of mappings between SaaS vendors and IDN connectors, detailing the connections established for correlation. + responses: + '200': + description: Successfully retrieved list. + content: + application/json: + schema: + type: array + items: + $ref: '../../beta/schemas/VendorConnectorMapping.yaml' + example: + - id: "78733556-9ea3-4f59-bf69-e5cd92b011b4" + vendor: "Example Vendor" + connector: "Example Connector" + createdAt: "2024-03-13T12:56:19.391294Z" + createdBy: "admin" + updatedAt: + Time: "2024-03-14T12:56:19.391294Z" + Valid: true + updatedBy: + String: "user-67891" + Valid: true + deletedAt: + Time: "0001-01-01T00:00:00Z" + Valid: false + deletedBy: + String: "" + Valid: false + - id: "78733556-9ea3-4f59-bf69-e5cd92b011b5" + vendor: "Another Corporation" + connector: "Another Connector" + createdAt: "2024-04-13T11:46:19.391294Z" + createdBy: "admin" + updatedAt: + Time: "0001-01-01T00:00:00Z" + Valid: false + updatedBy: + String: "" + Valid: false + deletedAt: + Time: "0001-01-01T00:00:00Z" + Valid: false + deletedBy: + String: "" + Valid: false + '400': + $ref: '../../v3/responses/400.yaml' + '401': + $ref: '../../v3/responses/401.yaml' + '403': + $ref: '../../v3/responses/403.yaml' + '405': + $ref: '../../v3/responses/405.yaml' + '429': + $ref: '../../v3/responses/429.yaml' + '500': + $ref: '../../v3/responses/500.yaml' + +post: + security: + - UserContextAuth: + - 'idn:application-discovery:write' + operationId: createVendorConnectorMapping + tags: + - Vendor Connector Mappings + summary: Create a vendor connector mapping + description: > + Creates a new mapping between a SaaS vendor and an IDN connector to establish correlation paths. + requestBody: + required: true + content: + application/json: + schema: + $ref: '../../beta/schemas/VendorConnectorMapping.yaml' + responses: + '200': + description: Successfully created a new vendor connector mapping. + content: + application/json: + schema: + $ref: '../../beta/schemas/VendorConnectorMapping.yaml' + '400': + $ref: '../../v3/responses/400.yaml' + '401': + $ref: '../../v3/responses/401.yaml' + '403': + $ref: '../../v3/responses/403.yaml' + '405': + $ref: '../../v3/responses/405.yaml' + '429': + $ref: '../../v3/responses/429.yaml' + '500': + $ref: '../../v3/responses/500.yaml' + +delete: + security: + - UserContextAuth: + - 'idn:application-discovery:write' + operationId: deleteVendorConnectorMapping + tags: + - Vendor Connector Mappings + summary: Delete a vendor connector mapping + description: > + Soft deletes a mapping between a SaaS vendor and an IDN connector, removing the established correlation. + requestBody: + required: true + content: + application/json: + schema: + $ref: '../../beta/schemas/VendorConnectorMapping.yaml' + responses: + '200': + description: Successfully deleted the specified vendor connector mapping. + content: + application/json: + schema: + type: object + properties: + count: + type: integer + description: The number of vendor connector mappings successfully deleted. + example: 1 + '400': + $ref: '../../v3/responses/400.yaml' + '401': + $ref: '../../v3/responses/401.yaml' + '403': + $ref: '../../v3/responses/403.yaml' + '404': + $ref: '../../v3/responses/404.yaml' + '429': + $ref: '../../v3/responses/429.yaml' + '500': + $ref: '../../v3/responses/500.yaml' \ No newline at end of file diff --git a/static/api-specs/idn/v3/schemas/ManualDiscoverApplications.yaml b/static/api-specs/idn/v3/schemas/ManualDiscoverApplications.yaml new file mode 100644 index 000000000..73f8908f6 --- /dev/null +++ b/static/api-specs/idn/v3/schemas/ManualDiscoverApplications.yaml @@ -0,0 +1,12 @@ +type: object +properties: + file: + type: string + format: binary + description: The CSV file to upload containing `application_name` and `description` columns. Each row represents an application to be discovered. + example: |- + application_name,description + "Sample App","This is a sample description for Sample App." + "Another App","Description for Another App." +required: + - file diff --git a/static/api-specs/idn/v3/schemas/ManualDiscoverApplicationsTemplate.yaml b/static/api-specs/idn/v3/schemas/ManualDiscoverApplicationsTemplate.yaml new file mode 100644 index 000000000..2d454420d --- /dev/null +++ b/static/api-specs/idn/v3/schemas/ManualDiscoverApplicationsTemplate.yaml @@ -0,0 +1,10 @@ +type: object +properties: + application_name: + type: string + description: Name of the application. + example: "Example Application" + description: + type: string + description: Description of the application. + example: "Example Description" diff --git a/static/api-specs/idn/v3/schemas/VendorConnectorMapping.yaml b/static/api-specs/idn/v3/schemas/VendorConnectorMapping.yaml new file mode 100644 index 000000000..40b9dc13d --- /dev/null +++ b/static/api-specs/idn/v3/schemas/VendorConnectorMapping.yaml @@ -0,0 +1,81 @@ +type: object +properties: + id: + type: string + description: The unique identifier for the vendor-connector mapping. + example: "78733556-9ea3-4f59-bf69-e5cd92b011b4" + vendor: + type: string + description: The name of the vendor. + example: "Example vendor" + connector: + type: string + description: The name of the connector. + example: "Example connector" + createdAt: + type: string + format: date-time + description: The creation timestamp of the mapping. + example: "2024-03-13T12:56:19.391294Z" + createdBy: + type: string + description: The identifier of the user who created the mapping. + example: "admin" + updatedAt: + type: object + nullable: true + properties: + Time: + type: string + format: date-time + description: The timestamp when the mapping was last updated, represented in ISO 8601 format. + example: "2024-03-14T12:56:19.391294Z" + Valid: + type: boolean + description: A flag indicating if the 'Time' field is set and valid. + default: false + example: true + description: An object representing the nullable timestamp of the last update. + updatedBy: + type: object + nullable: true + properties: + String: + type: string + description: The identifier of the user who last updated the mapping, if available. + example: "user-67891" + Valid: + type: boolean + description: A flag indicating if the 'String' field is set and valid. + default: false + example: true + description: An object representing the nullable identifier of the user who last updated the mapping. + deletedAt: + type: object + nullable: true + properties: + Time: + type: string + format: date-time + description: The timestamp when the mapping was deleted, represented in ISO 8601 format, if applicable. + example: "0001-01-01T00:00:00Z" + Valid: + type: boolean + description: A flag indicating if the 'Time' field is set and valid, i.e., if the mapping has been deleted. + default: false + example: false + description: An object representing the nullable timestamp of when the mapping was deleted. + deletedBy: + type: object + nullable: true + properties: + String: + type: string + description: The identifier of the user who deleted the mapping, if applicable. + example: "" + Valid: + type: boolean + description: A flag indicating if the 'String' field is set and valid, i.e., if the mapping has been deleted. + default: false + example: false + description: An object representing the nullable identifier of the user who deleted the mapping. From 3a89c36c5a4dabd0f1b12f64ca28c2535967cfb5 Mon Sep 17 00:00:00 2001 From: Tyler Mairose Date: Thu, 11 Jul 2024 11:32:16 -0400 Subject: [PATCH 64/74] Fix DocCardList descriptions and DocCardList titles not showing up for Rule items --- .../account_profile_attribute_generator_from_template.md | 2 +- docs/extensibility/rules/cloud-rules/build_map_rule.md | 2 +- src/theme/DocCard/index.tsx | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/docs/extensibility/rules/cloud-rules/account_profile_attribute_generator_from_template.md b/docs/extensibility/rules/cloud-rules/account_profile_attribute_generator_from_template.md index 641d2194f..cad98724a 100644 --- a/docs/extensibility/rules/cloud-rules/account_profile_attribute_generator_from_template.md +++ b/docs/extensibility/rules/cloud-rules/account_profile_attribute_generator_from_template.md @@ -5,7 +5,7 @@ pagination_label: Account Profile Attribute Generator (from Template) sidebar_label: Account Profile Attribute Generator (from Template) sidebar_class_name: accountProfileAttributeGeneratorTemplate keywords: ['cloud', 'rules', 'account profile', 'attribute generator'] -description: This rule generates complex account attribute values during provisioning, e.g. when creating an account. The rule's configuration comes from a template of values. +description: This rule generates complex account attribute values during provisioning, e.g. when creating an account. slug: /extensibility/rules/cloud-rules/account-profile-attribute-generator-template tags: ['Rules'] --- diff --git a/docs/extensibility/rules/cloud-rules/build_map_rule.md b/docs/extensibility/rules/cloud-rules/build_map_rule.md index 0dae8082d..e337ab82c 100644 --- a/docs/extensibility/rules/cloud-rules/build_map_rule.md +++ b/docs/extensibility/rules/cloud-rules/build_map_rule.md @@ -5,7 +5,7 @@ pagination_label: BuildMap Rule sidebar_label: BuildMap Rule sidebar_class_name: buildMapRule keywords: ['cloud', 'rules'] -description: This rule manipulates raw input data provided by the rows and columns in a file and builds a map from the incoming data. +description: This rule manipulates raw input data provided by the rows and columns in a file. slug: /extensibility/rules/cloud-rules/buildmap-rule tags: ['Rules'] --- diff --git a/src/theme/DocCard/index.tsx b/src/theme/DocCard/index.tsx index 1362384fc..aa6b7c44b 100644 --- a/src/theme/DocCard/index.tsx +++ b/src/theme/DocCard/index.tsx @@ -128,7 +128,7 @@ function CardLink({item}: {item: PropSidebarItemLink}): JSX.Element { href={item.href} icon={icon} title={item.label} - description={item.description ?? doc?.description} + description={item.description ?? (doc?.description != " ); } From 9a2e04307b9767657c6614d8288f3f89710be1a4 Mon Sep 17 00:00:00 2001 From: GitHub Action Bot Date: Thu, 11 Jul 2024 18:53:48 +0000 Subject: [PATCH 65/74] Update to rule java docs: 9896943391 --- static/rule-java-docs/allclasses-frame.html | 4 +- static/rule-java-docs/allclasses-noframe.html | 4 +- .../connector/common/JsonUtil.JsonParser.html | 4 +- .../common/JsonUtil.JsonParserBuilder.html | 4 +- .../connector/common/JsonUtil.html | 8 +-- .../rule-java-docs/connector/common/Util.html | 4 +- .../connector/common/package-frame.html | 4 +- .../connector/common/package-summary.html | 4 +- .../connector/common/package-tree.html | 4 +- static/rule-java-docs/constant-values.html | 4 +- static/rule-java-docs/deprecated-list.html | 4 +- static/rule-java-docs/help-doc.html | 4 +- .../rule-java-docs/index-files/index-1.html | 12 +++- .../rule-java-docs/index-files/index-10.html | 4 +- .../rule-java-docs/index-files/index-11.html | 4 +- .../rule-java-docs/index-files/index-12.html | 4 +- .../rule-java-docs/index-files/index-13.html | 4 +- .../rule-java-docs/index-files/index-14.html | 4 +- .../rule-java-docs/index-files/index-15.html | 4 +- .../rule-java-docs/index-files/index-16.html | 4 +- .../rule-java-docs/index-files/index-17.html | 4 +- .../rule-java-docs/index-files/index-18.html | 4 +- .../rule-java-docs/index-files/index-19.html | 4 +- .../rule-java-docs/index-files/index-2.html | 4 +- .../rule-java-docs/index-files/index-20.html | 4 +- .../rule-java-docs/index-files/index-21.html | 4 +- .../rule-java-docs/index-files/index-22.html | 4 +- .../rule-java-docs/index-files/index-23.html | 4 +- .../rule-java-docs/index-files/index-3.html | 4 +- .../rule-java-docs/index-files/index-4.html | 4 +- .../rule-java-docs/index-files/index-5.html | 4 +- .../rule-java-docs/index-files/index-6.html | 4 +- .../rule-java-docs/index-files/index-7.html | 4 +- .../rule-java-docs/index-files/index-8.html | 4 +- .../rule-java-docs/index-files/index-9.html | 4 +- static/rule-java-docs/index.html | 2 +- static/rule-java-docs/overview-frame.html | 4 +- static/rule-java-docs/overview-summary.html | 4 +- static/rule-java-docs/overview-tree.html | 14 ++--- .../sailpoint/api/SailPointContext.html | 4 +- .../sailpoint/api/package-frame.html | 4 +- .../sailpoint/api/package-summary.html | 4 +- .../sailpoint/api/package-tree.html | 4 +- .../connector/DelimitedFileConnector.html | 4 +- .../sailpoint/connector/package-frame.html | 4 +- .../sailpoint/connector/package-summary.html | 4 +- .../sailpoint/connector/package-tree.html | 4 +- .../connector/webservices/Endpoint.html | 4 +- .../webservices/WebServicesClient.html | 4 +- .../connector/webservices/package-frame.html | 4 +- .../webservices/package-summary.html | 4 +- .../connector/webservices/package-tree.html | 4 +- .../sailpoint/object/Application.html | 4 +- .../sailpoint/object/AttributeDefinition.html | 4 +- .../sailpoint/object/Attributes.html | 4 +- .../object/BaseAttributeDefinition.html | 4 +- .../sailpoint/object/Bundle.html | 4 +- .../sailpoint/object/Entitlement.html | 4 +- .../sailpoint/object/Field.html | 4 +- .../object/Filter.BaseFilterVisitor.html | 4 +- .../object/Filter.BooleanOperation.html | 4 +- .../object/Filter.CompositeFilter.html | 4 +- ...r.FilterCompiler.IdentitiferLookAhead.html | 4 +- .../object/Filter.FilterCompiler.html | 4 +- .../object/Filter.FilterVisitor.html | 4 +- .../sailpoint/object/Filter.LeafFilter.html | 4 +- .../object/Filter.LogicalOperation.html | 4 +- .../sailpoint/object/Filter.MatchMode.html | 4 +- .../object/Filter.ValueEscapeStyle.html | 4 +- .../sailpoint/object/Filter.html | 4 +- .../sailpoint/object/Identity.html | 4 +- .../sailpoint/object/IntegrationConfig.html | 4 +- .../rule-java-docs/sailpoint/object/Link.html | 4 +- .../object/ManagedAttribute.Type.html | 4 +- .../sailpoint/object/ManagedAttribute.html | 4 +- .../ProvisioningPlan.AbstractRequest.html | 4 +- ...isioningPlan.AccountRequest.Operation.html | 4 +- .../ProvisioningPlan.AccountRequest.html | 4 +- .../ProvisioningPlan.AttributeRequest.html | 4 +- .../ProvisioningPlan.GenericRequest.html | 4 +- .../ProvisioningPlan.ObjectOperation.html | 4 +- .../ProvisioningPlan.ObjectRequest.html | 4 +- .../object/ProvisioningPlan.Operation.html | 4 +- .../ProvisioningPlan.PermissionRequest.html | 4 +- .../sailpoint/object/ProvisioningPlan.html | 22 ++++---- .../sailpoint/object/ProvisioningResult.html | 56 ++++++++++++++++--- .../object/QueryOptions.Ordering.html | 4 +- .../sailpoint/object/QueryOptions.html | 4 +- .../sailpoint/object/ResourceObject.html | 4 +- .../sailpoint/object/RoleAssignment.html | 4 +- .../sailpoint/object/Schema.html | 4 +- .../sailpoint/object/package-frame.html | 4 +- .../sailpoint/object/package-summary.html | 4 +- .../sailpoint/object/package-tree.html | 14 ++--- .../sailpoint/rule/Account.html | 4 +- .../sailpoint/rule/Identity.html | 4 +- .../rule/ManagedAttributeDetails.html | 4 +- .../sailpoint/rule/package-frame.html | 4 +- .../sailpoint/rule/package-summary.html | 4 +- .../sailpoint/rule/package-tree.html | 4 +- .../sailpoint/server/IdnRuleUtil.html | 4 +- .../sailpoint/server/package-frame.html | 4 +- .../sailpoint/server/package-summary.html | 4 +- .../sailpoint/server/package-tree.html | 4 +- .../sailpoint/tools/Message.Type.html | 4 +- .../sailpoint/tools/Message.html | 4 +- .../sailpoint/tools/package-frame.html | 4 +- .../sailpoint/tools/package-summary.html | 4 +- .../sailpoint/tools/package-tree.html | 4 +- static/rule-java-docs/serialized-form.html | 4 +- 110 files changed, 294 insertions(+), 246 deletions(-) diff --git a/static/rule-java-docs/allclasses-frame.html b/static/rule-java-docs/allclasses-frame.html index 76e7a8276..3ab731f66 100644 --- a/static/rule-java-docs/allclasses-frame.html +++ b/static/rule-java-docs/allclasses-frame.html @@ -2,9 +2,9 @@ - + All Classes - + diff --git a/static/rule-java-docs/allclasses-noframe.html b/static/rule-java-docs/allclasses-noframe.html index ea039cbf5..f22acce98 100644 --- a/static/rule-java-docs/allclasses-noframe.html +++ b/static/rule-java-docs/allclasses-noframe.html @@ -2,9 +2,9 @@ - + All Classes - + diff --git a/static/rule-java-docs/connector/common/JsonUtil.JsonParser.html b/static/rule-java-docs/connector/common/JsonUtil.JsonParser.html index 57d8a17a2..1d32f2da9 100644 --- a/static/rule-java-docs/connector/common/JsonUtil.JsonParser.html +++ b/static/rule-java-docs/connector/common/JsonUtil.JsonParser.html @@ -2,9 +2,9 @@ - + JsonUtil.JsonParser - + diff --git a/static/rule-java-docs/connector/common/JsonUtil.JsonParserBuilder.html b/static/rule-java-docs/connector/common/JsonUtil.JsonParserBuilder.html index e2ec7c50a..7455f6873 100644 --- a/static/rule-java-docs/connector/common/JsonUtil.JsonParserBuilder.html +++ b/static/rule-java-docs/connector/common/JsonUtil.JsonParserBuilder.html @@ -2,9 +2,9 @@ - + JsonUtil.JsonParserBuilder - + diff --git a/static/rule-java-docs/connector/common/JsonUtil.html b/static/rule-java-docs/connector/common/JsonUtil.html index ff7027cd1..94bd8e8a8 100644 --- a/static/rule-java-docs/connector/common/JsonUtil.html +++ b/static/rule-java-docs/connector/common/JsonUtil.html @@ -2,9 +2,9 @@ - + JsonUtil - + @@ -477,7 +477,7 @@ extends java.lang.Object
    info(String, Object...) - Static method in class sailpoint.tools.Message
     
    +
    initializeSession(Connection, int, int, int) - Static method in class sailpoint.connector.util.JDBCUtil
    +
     
    instantiate() - Method in class sailpoint.object.ProvisioningPlan.AbstractRequest
     
    instantiate() - Method in class sailpoint.object.ProvisioningPlan.AccountRequest
    diff --git a/static/rule-java-docs/index.html b/static/rule-java-docs/index.html index 926ed3fb4..a9ed7c561 100644 --- a/static/rule-java-docs/index.html +++ b/static/rule-java-docs/index.html @@ -2,7 +2,7 @@ - + Generated Documentation (Untitled) @@ -16,6 +16,7 @@
  • connector.common
  • sailpoint.api
  • sailpoint.connector
  • +
  • sailpoint.connector.util
  • sailpoint.connector.webservices
  • sailpoint.object
  • sailpoint.rule
  • diff --git a/static/rule-java-docs/overview-summary.html b/static/rule-java-docs/overview-summary.html index b38203c23..293ba8510 100644 --- a/static/rule-java-docs/overview-summary.html +++ b/static/rule-java-docs/overview-summary.html @@ -2,9 +2,9 @@ - + Overview - + @@ -89,22 +89,26 @@   +sailpoint.connector.util +  + + sailpoint.connector.webservices   - + sailpoint.object   - + sailpoint.rule   - + sailpoint.server   - + sailpoint.tools   diff --git a/static/rule-java-docs/overview-tree.html b/static/rule-java-docs/overview-tree.html index 7f09937f6..cd57dc0d0 100644 --- a/static/rule-java-docs/overview-tree.html +++ b/static/rule-java-docs/overview-tree.html @@ -2,9 +2,9 @@ - + Class Hierarchy - + @@ -75,6 +75,7 @@
  • connector.common,
  • sailpoint.api,
  • sailpoint.connector,
  • +
  • sailpoint.connector.util,
  • sailpoint.connector.webservices,
  • sailpoint.object,
  • sailpoint.rule,
  • @@ -146,6 +147,7 @@
  • sailpoint.object.Filter.BaseFilterVisitor (implements sailpoint.object.Filter.FilterVisitor)
  • sailpoint.object.Filter.FilterCompiler
  • sailpoint.object.IntegrationConfig
  • +
  • sailpoint.connector.util.JDBCUtil
  • connector.common.JsonUtil
  • connector.common.JsonUtil.JsonParser
  • connector.common.JsonUtil.JsonParserBuilder
  • @@ -184,6 +186,7 @@
  • sailpoint.object.ProvisioningPlan.AccountRequest.Operation
  • sailpoint.object.ProvisioningPlan.ObjectOperation
  • sailpoint.tools.Message.Type
  • +
  • sailpoint.connector.util.JDBCUtil.ConnectorType
  • sailpoint.object.Filter.ValueEscapeStyle
  • sailpoint.object.Filter.MatchMode
  • sailpoint.object.Filter.LogicalOperation
  • diff --git a/static/rule-java-docs/package-list b/static/rule-java-docs/package-list index b6bbee987..c38fdd9da 100644 --- a/static/rule-java-docs/package-list +++ b/static/rule-java-docs/package-list @@ -1,6 +1,7 @@ connector.common sailpoint.api sailpoint.connector +sailpoint.connector.util sailpoint.connector.webservices sailpoint.object sailpoint.rule diff --git a/static/rule-java-docs/sailpoint/api/SailPointContext.html b/static/rule-java-docs/sailpoint/api/SailPointContext.html index 4b62d32b0..2d211b9ed 100644 --- a/static/rule-java-docs/sailpoint/api/SailPointContext.html +++ b/static/rule-java-docs/sailpoint/api/SailPointContext.html @@ -2,9 +2,9 @@ - + SailPointContext - + diff --git a/static/rule-java-docs/sailpoint/api/package-frame.html b/static/rule-java-docs/sailpoint/api/package-frame.html index 25c180ed1..adbd2deaa 100644 --- a/static/rule-java-docs/sailpoint/api/package-frame.html +++ b/static/rule-java-docs/sailpoint/api/package-frame.html @@ -2,9 +2,9 @@ - + sailpoint.api - + diff --git a/static/rule-java-docs/sailpoint/api/package-summary.html b/static/rule-java-docs/sailpoint/api/package-summary.html index d5b15614b..3a1890cc5 100644 --- a/static/rule-java-docs/sailpoint/api/package-summary.html +++ b/static/rule-java-docs/sailpoint/api/package-summary.html @@ -2,9 +2,9 @@ - + sailpoint.api - + diff --git a/static/rule-java-docs/sailpoint/api/package-tree.html b/static/rule-java-docs/sailpoint/api/package-tree.html index 58dc0110e..23bf3abc4 100644 --- a/static/rule-java-docs/sailpoint/api/package-tree.html +++ b/static/rule-java-docs/sailpoint/api/package-tree.html @@ -2,9 +2,9 @@ - + sailpoint.api Class Hierarchy - + diff --git a/static/rule-java-docs/sailpoint/connector/DelimitedFileConnector.html b/static/rule-java-docs/sailpoint/connector/DelimitedFileConnector.html index 96deea37d..643388192 100644 --- a/static/rule-java-docs/sailpoint/connector/DelimitedFileConnector.html +++ b/static/rule-java-docs/sailpoint/connector/DelimitedFileConnector.html @@ -2,9 +2,9 @@ - + DelimitedFileConnector - + diff --git a/static/rule-java-docs/sailpoint/connector/package-frame.html b/static/rule-java-docs/sailpoint/connector/package-frame.html index 9e82b37a2..d2a94dc6d 100644 --- a/static/rule-java-docs/sailpoint/connector/package-frame.html +++ b/static/rule-java-docs/sailpoint/connector/package-frame.html @@ -2,9 +2,9 @@ - + sailpoint.connector - + diff --git a/static/rule-java-docs/sailpoint/connector/package-summary.html b/static/rule-java-docs/sailpoint/connector/package-summary.html index 6a7d26050..2844cc480 100644 --- a/static/rule-java-docs/sailpoint/connector/package-summary.html +++ b/static/rule-java-docs/sailpoint/connector/package-summary.html @@ -2,9 +2,9 @@ - + sailpoint.connector - + @@ -43,7 +43,7 @@