From 0c56665636e58c9e848ed57a0934abdb9aeb6114 Mon Sep 17 00:00:00 2001 From: Ivan P <2119240+i5okie@users.noreply.github.com> Date: Mon, 7 Oct 2024 09:11:19 -0700 Subject: [PATCH 01/31] Do not specify existing secret for postgresql chart Signed-off-by: Ivan P <2119240+i5okie@users.noreply.github.com> --- charts/traction/values.yaml | 9 --------- 1 file changed, 9 deletions(-) diff --git a/charts/traction/values.yaml b/charts/traction/values.yaml index 99c401673..21feb8f7f 100644 --- a/charts/traction/values.yaml +++ b/charts/traction/values.yaml @@ -863,15 +863,6 @@ postgresql: ## @param postgresql.auth.enablePostgresUser Assign a password to the "postgres" admin user. Otherwise, remote access will be blocked for this user ## enablePostgresUser: true - ## @param postgresql.auth.existingSecret Name of existing secret to use for PostgreSQL credentials. `postgresql.auth.postgresPassword`, `postgresql.auth.password`, and `postgresql.auth.replicationPassword` will be ignored and picked up from this secret. The secret might also contains the key `ldap-password` if LDAP is enabled. `ldap.bind_password` will be ignored and picked from this secret in this case. - ## - existingSecret: '{{ include "global.fullname" . }}' - ## @param postgresql.auth.secretKeys.adminPasswordKey Name of key in existing secret to use for PostgreSQL credentials. Only used when `auth.existingSecret` is set. - ## @param postgresql.auth.secretKeys.userPasswordKey Name of key in existing secret to use for PostgreSQL credentials. Only used when `auth.existingSecret` is set. - ## - secretKeys: - adminPasswordKey: admin-password - userPasswordKey: database-password ## @param postgresql.auth.database Name for a custom database to create ## database: traction From c71dfbd0385b74e24946de6919740b0af2271085 Mon Sep 17 00:00:00 2001 From: Ivan P <2119240+i5okie@users.noreply.github.com> Date: Mon, 7 Oct 2024 09:12:01 -0700 Subject: [PATCH 02/31] Do not create database secret Signed-off-by: Ivan P <2119240+i5okie@users.noreply.github.com> --- charts/traction/templates/_helpers.tpl | 9 --------- .../templates/acapy/database_secret.yaml | 16 ---------------- 2 files changed, 25 deletions(-) delete mode 100644 charts/traction/templates/acapy/database_secret.yaml diff --git a/charts/traction/templates/_helpers.tpl b/charts/traction/templates/_helpers.tpl index 1094943f6..c318f6ca8 100755 --- a/charts/traction/templates/_helpers.tpl +++ b/charts/traction/templates/_helpers.tpl @@ -79,15 +79,6 @@ it randomly. {{- end -}} {{- end }} -{{/* -Return true if a database secret should be created -*/}} -{{- define "acapy.database.createSecret" -}} -{{- if not .Values.acapy.walletStorageCredentials.existingSecret -}} -{{- true -}} -{{- end -}} -{{- end -}} - {{/* Return true if a api secret should be created */}} diff --git a/charts/traction/templates/acapy/database_secret.yaml b/charts/traction/templates/acapy/database_secret.yaml deleted file mode 100644 index 21f37877e..000000000 --- a/charts/traction/templates/acapy/database_secret.yaml +++ /dev/null @@ -1,16 +0,0 @@ -{{- if (include "acapy.database.createSecret" .) -}} -apiVersion: v1 -kind: Secret -metadata: - annotations: - "helm.sh/resource-policy": keep - name: {{ template "acapy.database.secret.name" . }} - labels: - {{- include "common.selectorLabels" . | nindent 4 }} - namespace: {{ .Release.Namespace }} -type: Opaque -data: - admin-password: {{ include "getOrGeneratePass" (dict "Namespace" .Release.Namespace "Kind" "Secret" "Name" (include "acapy.database.secret.name" .) "Key" (include "acapy.database.adminPasswordKey" .)) }} - database-user: {{ .Values.acapy.walletStorageCredentials.account | b64enc }} - database-password: {{ include "getOrGeneratePass" (dict "Namespace" .Release.Namespace "Kind" "Secret" "Name" (include "acapy.database.secret.name" .) "Key" (include "acapy.database.userPasswordKey" .)) }} -{{- end -}} From adb7d3d42468a51e62b54985d3539c7c61240d5e Mon Sep 17 00:00:00 2001 From: Ivan P <2119240+i5okie@users.noreply.github.com> Date: Mon, 7 Oct 2024 09:28:50 -0700 Subject: [PATCH 03/31] Update values Signed-off-by: Ivan P <2119240+i5okie@users.noreply.github.com> --- charts/traction/values.yaml | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/charts/traction/values.yaml b/charts/traction/values.yaml index 21feb8f7f..ff67d8b0a 100644 --- a/charts/traction/values.yaml +++ b/charts/traction/values.yaml @@ -1,6 +1,6 @@ -## @param nameOverride +## @param nameOverride String to override the helm chart name, second part of the prefix nameOverride: "" -## @param fullnameOverride +## @param fullnameOverride String to fully override the helm chart name, full prefix. *Must be provided if using a custom release name.* fullnameOverride: "" ## @param ingressSuffix Domain suffix to be used for default hostpaths in ingress ingressSuffix: -dev.example.com @@ -173,8 +173,8 @@ acapy: ## @param acapy.walletStorageCredentials.admin_account Database account with CREATEDB role used to create additional databases per wallet. ## @param acapy.walletStorageCredentials.admin_password Database password for admin account. ## @param acapy.walletStorageCredentials.existingSecret Name of an existing secret containing database user, password, and admin password. - ## @param acapy.walletStorageCredentials.secretKeys.adminPasswordKey Key in existing secret containing admin password. - ## @param acapy.walletStorageCredentials.secretKeys.userPasswordKey Key in existing secret containing password . + ## @param acapy.walletStorageCredentials.secretKeys.adminPasswordKey Key in existing secret containing admin account password. + ## @param acapy.walletStorageCredentials.secretKeys.userPasswordKey Key in existing secret containing account password. ## walletStorageCredentials: json: '' @@ -182,8 +182,8 @@ acapy: admin_account: postgres existingSecret: "" secretKeys: - adminPasswordKey: admin-password - userPasswordKey: database-password + adminPasswordKey: postgres-password + userPasswordKey: password ## @section Acapy Plugins ## ## Specify the plugins to enable. From 569e9dfe4ce5612411da02b6c585d165e11b7325 Mon Sep 17 00:00:00 2001 From: Ivan P <2119240+i5okie@users.noreply.github.com> Date: Mon, 7 Oct 2024 09:28:57 -0700 Subject: [PATCH 04/31] Update Readme Signed-off-by: Ivan P <2119240+i5okie@users.noreply.github.com> --- charts/traction/README.md | 32 ++++++++++++++++++-------------- 1 file changed, 18 insertions(+), 14 deletions(-) diff --git a/charts/traction/README.md b/charts/traction/README.md index 350ead8f1..3a43e10d6 100644 --- a/charts/traction/README.md +++ b/charts/traction/README.md @@ -52,6 +52,12 @@ kubectl delete secret,pvc --selector "app.kubernetes.io/instance"=my-release ## Parameters +| Name | Description | Value | +| ------------------ | -------------------------------------------------------------------------------------------------------------- | ------------------ | +| `nameOverride` | String to override the helm chart name, second part of the prefix | '""' | +| `fullnameOverride` | String to fully override the helm chart name, full prefix. ***Must be set when using a custom release name.*** | '""' | +| `ingressSuffix` | Domain suffix to be used for default hostpaths in ingress | `-dev.example.com` | + ### Acapy Configuration | Name | Description | Value | @@ -126,14 +132,16 @@ kubectl delete secret,pvc --selector "app.kubernetes.io/instance"=my-release ### Wallet Storage Credentials -| Name | Description | Value | -| ----------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ---------- | -| `acapy.walletStorageCredentials.json` | Raw json with database credentials. Overrides all other values including postgres subchart values. e.g.: '{"account":"postgres","password":"mysecretpassword","admin_account":"postgres","admin_password":"mysecretpassword"}' | `""` | -| `acapy.walletStorageCredentials.account` | Database account name. | `""` | -| `acapy.walletStorageCredentials.password` | Database password. | `""` | -| `acapy.walletStorageCredentials.admin_account` | Database account with CREATEDB role used to create additional databases per wallet. | `postgres` | -| `acapy.walletStorageCredentials.admin_password` | Database password for admin account. | `""` | -| `acapy.walletStorageCredentials.existingSecret` | Name of an existing secret containing 'database-user', 'database-password', 'admin-password' keys. | `""` | +| Name | Description | Value | +| ------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------- | +| `acapy.walletStorageCredentials.json` | Raw json with database credentials. Overrides all other values including postgres subchart values. e.g.: '{"account":"postgres","password":"mysecretpassword","admin_account":"postgres","admin_password":"mysecretpassword"}' | `""` | +| `acapy.walletStorageCredentials.account` | Database account name. | `""` | +| `acapy.walletStorageCredentials.password` | Database password. | `""` | +| `acapy.walletStorageCredentials.admin_account` | Database account with CREATEDB role used to create additional databases per wallet. | `postgres` | +| `acapy.walletStorageCredentials.admin_password` | Database password for admin account. | `""` | +| `acapy.walletStorageCredentials.existingSecret` | Name of an existing secret containing database user, password, and admin password. | `""` | +| `acapy.walletStorageCredentials.secretKeys.adminPasswordKey` | Key in existing secret containing admin account password. | `postgres-password` | +| `acapy.walletStorageCredentials.secretKeys.userPasswordKey` | Key in existing secret containing account password. | `password` | ### Acapy Plugins @@ -326,7 +334,7 @@ kubectl delete secret,pvc --selector "app.kubernetes.io/instance"=my-release | `ui.oidc.extraQueryParams` | OIDC client login additional parameters | `{}` | | `ui.smtp.server` | SMTP server | `""` | | `ui.smtp.port` | SMTP port | `25` | -| `ui.smtp.secure` | if true the connection will use TLS when connecting to server. If false (the default) then TLS is used if server supports the STARTTLS extension. In most cases set this value to true if you are connecting to port 465. For port 587 or 25 keep it false | `false` | +| `ui.smtp.secure` | If true the connection will use TLS when connecting to server. If false (the default) then TLS is used if server supports the STARTTLS extension. In most cases set this value to true if you are connecting to port 465. For port 587 or 25 keep it false | `false` | | `ui.smtp.user` | SMTP user (Requires setting `ui.existingSecret` with the name of a secret containing `SERVER_SMTP_PASSWORD`) | `""` | | `ui.smtp.senderAddress` | SMTP sender address | `""` | | `ui.smtp.innkeeperInbox` | innkeeper notification inbox | `""` | @@ -387,9 +395,6 @@ kubectl delete secret,pvc --selector "app.kubernetes.io/instance"=my-release | `postgresql.fullnameOverride` | When overriding fullnameOverride, you must override this to match. | `""` | | `postgresql.architecture` | PostgreSQL architecture (`standalone` or `replication`) | `standalone` | | `postgresql.auth.enablePostgresUser` | Assign a password to the "postgres" admin user. Otherwise, remote access will be blocked for this user | `true` | -| `postgresql.auth.existingSecret` | Name of existing secret to use for PostgreSQL credentials. `postgresql.auth.postgresPassword`, `postgresql.auth.password`, and `postgresql.auth.replicationPassword` will be ignored and picked up from this secret. The secret might also contains the key `ldap-password` if LDAP is enabled. `ldap.bind_password` will be ignored and picked from this secret in this case. | `{{ include "global.fullname" . }}` | -| `postgresql.auth.secretKeys.adminPasswordKey` | Name of key in existing secret to use for PostgreSQL credentials. Only used when `auth.existingSecret` is set. | `admin-password` | -| `postgresql.auth.secretKeys.userPasswordKey` | Name of key in existing secret to use for PostgreSQL credentials. Only used when `auth.existingSecret` is set. | `database-password` | | `postgresql.auth.database` | Name for a custom database to create | `traction` | | `postgresql.auth.username` | Name for a custom user to create | `acapy` | | `postgresql.primary.persistence.enabled` | Enable PostgreSQL Primary data persistence using PVC | `true` | @@ -401,8 +406,7 @@ kubectl delete secret,pvc --selector "app.kubernetes.io/instance"=my-release | `postgresql.primary.resources.requests.memory` | The requested memory for the PostgreSQL Primary containers | `1300Mi` | | `postgresql.primary.resources.requests.cpu` | The requested cpu for the PostgreSQL Primary containers | `300m` | | `postgresql.primary.service.ports.postgresql` | PostgreSQL service port | `5432` | -| `postgresql.primary.extendedConfiguration` | Extended PostgreSQL Primary configuration (appended to main or default configuration) | `max_connections = 500 | -| ` | +| `postgresql.primary.extendedConfiguration` | Extended PostgreSQL Primary configuration (appended to main or default configuration) | `max_connections = 500` | | `postgresql-ha.enabled` | Deploy HA PostgreSQL chart. Not currently supported, provided for future use. | `false` | ## Maintainers From e50880aa823e3a9c33717bd943317a6bfe809af7 Mon Sep 17 00:00:00 2001 From: Ivan P <2119240+i5okie@users.noreply.github.com> Date: Mon, 7 Oct 2024 09:59:39 -0700 Subject: [PATCH 05/31] Do not hard code values Signed-off-by: Ivan P <2119240+i5okie@users.noreply.github.com> --- charts/traction/templates/_helpers.tpl | 26 +++++++++----------------- 1 file changed, 9 insertions(+), 17 deletions(-) diff --git a/charts/traction/templates/_helpers.tpl b/charts/traction/templates/_helpers.tpl index c318f6ca8..531d5d3b5 100755 --- a/charts/traction/templates/_helpers.tpl +++ b/charts/traction/templates/_helpers.tpl @@ -122,14 +122,10 @@ We truncate at 63 chars because some Kubernetes name fields are limited to this Get the admin-password key. */}} {{- define "acapy.database.adminPasswordKey" -}} -{{- if .Values.acapy.walletStorageCredentials.existingSecret -}} - {{- if .Values.acapy.walletStorageCredentials.secretKeys.adminPasswordKey -}} - {{- printf "%s" (tpl .Values.acapy.walletStorageCredentials.secretKeys.adminPasswordKey $) -}} - {{- else if .Values.postgresql.auth.secretKeys.adminPasswordKey -}} - {{- printf "%s" (tpl .Values.postgresql.auth.secretKeys.adminPasswordKey $) -}} - {{- end -}} -{{- else -}} - {{- "admin-password" -}} +{{- if .Values.acapy.walletStorageCredentials.secretKeys.adminPasswordKey -}} + {{- printf "%s" (tpl .Values.acapy.walletStorageCredentials.secretKeys.adminPasswordKey $) -}} +{{- else if .Values.postgresql.auth.secretKeys.adminPasswordKey -}} + {{- printf "%s" (tpl .Values.postgresql.auth.secretKeys.adminPasswordKey $) -}} {{- end -}} {{- end -}} @@ -137,16 +133,12 @@ Get the admin-password key. Get the user-password key. */}} {{- define "acapy.database.userPasswordKey" -}} -{{- if .Values.acapy.walletStorageCredentials.existingSecret -}} - {{- if or (empty .Values.acapy.walletStorageCredentials.account) (eq .Values.acapy.walletStorageCredentials.account "postgres") -}} - {{- printf "%s" (include "acapy.database.adminPasswordKey" .) -}} - {{- else -}} - {{- if .Values.acapy.walletStorageCredentials.secretKeys.userPasswordKey -}} - {{- printf "%s" (tpl .Values.acapy.walletStorageCredentials.secretKeys.userPasswordKey $) -}} - {{- end -}} - {{- end -}} +{{- if or (empty .Values.acapy.walletStorageCredentials.account) (eq .Values.acapy.walletStorageCredentials.account "postgres") -}} + {{- printf "%s" (include "acapy.database.adminPasswordKey" .) -}} {{- else -}} - {{- "database-password" -}} + {{- if .Values.acapy.walletStorageCredentials.secretKeys.userPasswordKey -}} + {{- printf "%s" (tpl .Values.acapy.walletStorageCredentials.secretKeys.userPasswordKey $) -}} + {{- end -}} {{- end -}} {{- end -}} From 70ea1cdb831f16da5b89e8875723b0299944aed0 Mon Sep 17 00:00:00 2001 From: Ivan P <2119240+i5okie@users.noreply.github.com> Date: Wed, 9 Oct 2024 07:20:27 -0700 Subject: [PATCH 06/31] Update language Signed-off-by: Ivan P <2119240+i5okie@users.noreply.github.com> --- charts/traction/README.md | 10 +++++----- charts/traction/values.yaml | 2 +- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/charts/traction/README.md b/charts/traction/README.md index 3a43e10d6..4e190c718 100644 --- a/charts/traction/README.md +++ b/charts/traction/README.md @@ -52,11 +52,11 @@ kubectl delete secret,pvc --selector "app.kubernetes.io/instance"=my-release ## Parameters -| Name | Description | Value | -| ------------------ | -------------------------------------------------------------------------------------------------------------- | ------------------ | -| `nameOverride` | String to override the helm chart name, second part of the prefix | '""' | -| `fullnameOverride` | String to fully override the helm chart name, full prefix. ***Must be set when using a custom release name.*** | '""' | -| `ingressSuffix` | Domain suffix to be used for default hostpaths in ingress | `-dev.example.com` | +| Name | Description | Value | +| ------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------ | +| `nameOverride` | String to override the helm chart name, second part of the prefix | '""' | +| `fullnameOverride` | String to fully override the helm chart name, full prefix. ***Must be set when using a custom release name that does not include the word traction.*** | '""' | +| `ingressSuffix` | Domain suffix to be used for default hostpaths in ingress | `-dev.example.com` | ### Acapy Configuration diff --git a/charts/traction/values.yaml b/charts/traction/values.yaml index ff67d8b0a..9b0ed6d62 100644 --- a/charts/traction/values.yaml +++ b/charts/traction/values.yaml @@ -1,6 +1,6 @@ ## @param nameOverride String to override the helm chart name, second part of the prefix nameOverride: "" -## @param fullnameOverride String to fully override the helm chart name, full prefix. *Must be provided if using a custom release name.* +## @param fullnameOverride String to fully override the helm chart name, full prefix. *Must be provided if using a custom release name that does not include the word traction.* fullnameOverride: "" ## @param ingressSuffix Domain suffix to be used for default hostpaths in ingress ingressSuffix: -dev.example.com From ea48b2325932aac18ffa03f2268ffc144190cb36 Mon Sep 17 00:00:00 2001 From: Ivan P <2119240+i5okie@users.noreply.github.com> Date: Wed, 9 Oct 2024 12:01:02 -0700 Subject: [PATCH 07/31] update documentation Signed-off-by: Ivan P <2119240+i5okie@users.noreply.github.com> --- charts/traction/README.md | 38 ++++++++++++++++++------------------- charts/traction/values.yaml | 4 ++-- 2 files changed, 21 insertions(+), 21 deletions(-) diff --git a/charts/traction/README.md b/charts/traction/README.md index 4e190c718..3f7b756fc 100644 --- a/charts/traction/README.md +++ b/charts/traction/README.md @@ -389,25 +389,25 @@ kubectl delete secret,pvc --selector "app.kubernetes.io/instance"=my-release ### PostgreSQL parameters -| Name | Description | Value | -| ----------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ----------------------------------- | -| `postgresql.enabled` | Deploy Bitnami PostgreSQL chart. | `true` | -| `postgresql.fullnameOverride` | When overriding fullnameOverride, you must override this to match. | `""` | -| `postgresql.architecture` | PostgreSQL architecture (`standalone` or `replication`) | `standalone` | -| `postgresql.auth.enablePostgresUser` | Assign a password to the "postgres" admin user. Otherwise, remote access will be blocked for this user | `true` | -| `postgresql.auth.database` | Name for a custom database to create | `traction` | -| `postgresql.auth.username` | Name for a custom user to create | `acapy` | -| `postgresql.primary.persistence.enabled` | Enable PostgreSQL Primary data persistence using PVC | `true` | -| `postgresql.primary.persistence.size` | PVC Storage Request for PostgreSQL volume | `1Gi` | -| `postgresql.primary.containerSecurityContext.enabled` | Enable container security context | `false` | -| `postgresql.primary.podSecurityContext.enabled` | Enable security context | `false` | -| `postgresql.primary.resources.limits.memory` | The memory limit for the PostgreSQL Primary containers | `2600Mi` | -| `postgresql.primary.resources.limits.cpu` | The cpu limit for the PostgreSQL Primary containers | `600m` | -| `postgresql.primary.resources.requests.memory` | The requested memory for the PostgreSQL Primary containers | `1300Mi` | -| `postgresql.primary.resources.requests.cpu` | The requested cpu for the PostgreSQL Primary containers | `300m` | -| `postgresql.primary.service.ports.postgresql` | PostgreSQL service port | `5432` | -| `postgresql.primary.extendedConfiguration` | Extended PostgreSQL Primary configuration (appended to main or default configuration) | `max_connections = 500` | -| `postgresql-ha.enabled` | Deploy HA PostgreSQL chart. Not currently supported, provided for future use. | `false` | +| Name | Description | Value | +| ----------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------- | +| `postgresql.enabled` | Deploy Bitnami PostgreSQL chart. | `true` | +| `postgresql.fullnameOverride` | When overriding fullnameOverride, you must override this to match. | `""` | +| `postgresql.architecture` | PostgreSQL architecture (`standalone` or `replication`) | `standalone` | +| `postgresql.auth.enablePostgresUser` | Assign a password to the "postgres" admin user. Otherwise, remote access will be blocked for this user. Not recommended for production deployment. | `true` | +| `postgresql.auth.database` | Name for a custom database to create | `traction` | +| `postgresql.auth.username` | Name for a custom user to create | `acapy` | +| `postgresql.primary.persistence.enabled` | Enable PostgreSQL Primary data persistence using PVC | `true` | +| `postgresql.primary.persistence.size` | PVC Storage Request for PostgreSQL volume | `1Gi` | +| `postgresql.primary.containerSecurityContext.enabled` | Enable container security context | `false` | +| `postgresql.primary.podSecurityContext.enabled` | Enable security context | `false` | +| `postgresql.primary.resources.limits.memory` | The memory limit for the PostgreSQL Primary containers | `2600Mi` | +| `postgresql.primary.resources.limits.cpu` | The cpu limit for the PostgreSQL Primary containers | `600m` | +| `postgresql.primary.resources.requests.memory` | The requested memory for the PostgreSQL Primary containers | `1300Mi` | +| `postgresql.primary.resources.requests.cpu` | The requested cpu for the PostgreSQL Primary containers | `300m` | +| `postgresql.primary.service.ports.postgresql` | PostgreSQL service port | `5432` | +| `postgresql.primary.extendedConfiguration` | Extended PostgreSQL Primary configuration (appended to main or default configuration) | `max_connections = 500` | +| `postgresql-ha.enabled` | Deploy HA PostgreSQL chart. Not currently supported, provided for future use. | `false` | ## Maintainers diff --git a/charts/traction/values.yaml b/charts/traction/values.yaml index 9b0ed6d62..6c063afe0 100644 --- a/charts/traction/values.yaml +++ b/charts/traction/values.yaml @@ -860,12 +860,12 @@ postgresql: ## ref: https://github.com/bitnami/containers/tree/main/bitnami/postgresql#creating-a-database-user-on-first-run ## auth: - ## @param postgresql.auth.enablePostgresUser Assign a password to the "postgres" admin user. Otherwise, remote access will be blocked for this user + ## @param postgresql.auth.enablePostgresUser Assign a password to the "postgres" admin user. Otherwise, remote access will be blocked for this user. Not recommended for production deployment. ## enablePostgresUser: true ## @param postgresql.auth.database Name for a custom database to create ## - database: traction + database: askar-wallet ## @param postgresql.auth.username Name for a custom user to create ## username: acapy From cd35af9094ba6d4a5dd279503905a265adc7c174 Mon Sep 17 00:00:00 2001 From: Ivan P <2119240+i5okie@users.noreply.github.com> Date: Wed, 9 Oct 2024 12:02:35 -0700 Subject: [PATCH 08/31] bump chart version Signed-off-by: Ivan P <2119240+i5okie@users.noreply.github.com> --- charts/traction/Chart.yaml | 2 +- charts/traction/README.md | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/charts/traction/Chart.yaml b/charts/traction/Chart.yaml index 53d4e178a..d95daba9f 100644 --- a/charts/traction/Chart.yaml +++ b/charts/traction/Chart.yaml @@ -2,7 +2,7 @@ apiVersion: v2 name: traction description: The Traction service allows organizations to verify, hold, and issue verifiable credentials. The Traction Tenant UI allows tenants to manage their agent. type: application -version: 0.3.3 +version: 0.3.4 appVersion: 0.5.1 home: "https://github.com/bcgov/traction" sources: ["https://github.com/bcgov/traction"] diff --git a/charts/traction/README.md b/charts/traction/README.md index 3f7b756fc..cead9cd71 100644 --- a/charts/traction/README.md +++ b/charts/traction/README.md @@ -1,6 +1,6 @@ # Traction -![version: 0.3.3](https://img.shields.io/badge/Version-0.3.3-informational?style=flat-square) ![Type: application](https://img.shields.io/badge/Type-application-informational?style=flat-square) ![AppVersion: 0.5.1](https://img.shields.io/badge/AppVersion-0.5.1-informational?style=flat-square) +![version: 0.3.4](https://img.shields.io/badge/Version-0.3.4-informational?style=flat-square) ![Type: application](https://img.shields.io/badge/Type-application-informational?style=flat-square) ![AppVersion: 0.5.1](https://img.shields.io/badge/AppVersion-0.5.1-informational?style=flat-square) The Traction service allows organizations to verify, hold, and issue verifiable credentials. From 02e1e8ab0746bd1579ef263b1c1054e2fc498f56 Mon Sep 17 00:00:00 2001 From: Lucas ONeil Date: Fri, 18 Oct 2024 13:21:01 -0700 Subject: [PATCH 09/31] Alter Aries doc refs Signed-off-by: Lucas ONeil --- README.md | 6 +++--- docs/README.md | 6 +++--- docs/traction-anoncreds-workshop.md | 4 ++-- plugins/README.md | 4 ++-- scripts/README.md | 2 +- 5 files changed, 11 insertions(+), 11 deletions(-) diff --git a/README.md b/README.md index ad49bc57f..7ad9c46b2 100644 --- a/README.md +++ b/README.md @@ -19,7 +19,7 @@ ## What is Traction? -Traction is a digital wallet solution comprised of plugins layered on top of Hyperledger Aries Cloud Agent Python (ACA-Py) and streamlines the process of sending and receiving digital credentials for governments and organizations. +Traction is a digital wallet solution comprised of plugins layered on top of OpenWallet Foundation ACA-Py and streamlines the process of sending and receiving digital credentials for governments and organizations. Its open-source foundation makes it easy to integrate digital trust technology into existing lines of business applications, without having to stand up, maintain and manage an instance of ACA-Py themselves. Future functionality could include machine-readable governance and more. @@ -43,7 +43,7 @@ Establish your own Traction tenant in a B.C. Government sandbox to issue, hold, Traction makes it easier to integrate digital trust technology into existing line of business applications. - **API-first Architecture**: Traction is designed with an API-first architecture, this RESTful API allows for integration into existing line-of-business applications already being used by organizations, the Tenant user interface is built on this API to enable adoption prior to integration and for low-use functions. -- **Enhanced Interoperability**: Hyperledger Aries makes Traction more broadly compatible with existing technologies used by governments and organizations around the world. +- **Enhanced Interoperability**: OWF ACA-Py makes Traction more broadly compatible with existing technologies used by governments and organizations around the world. - **Multi-tenancy**: Rather than having multiple digital tools to integrate with organizations, one scalable instance of Traction can be used to participate in the digital trust ecosystem, control all connections, and more easily share data. - **Higher Scalability**: Traction is open-source technology, encouraging collaborative refinement, faster release, and higher scalability. @@ -111,4 +111,4 @@ Traction is licensed under Apache License 2.0 which can be reviewed [here](./LIC ## Engage with the community Connect with others -- for Aries discussion see the Hyperlerger Aries Github [participation section](https://github.com/hyperledger/aries#project-participation) +- for ACA-Py discussion see the OWF ACA-Py Github [for links to discussion forums](https://github.com/openwallet-foundation/acapy?tab=readme-ov-file#troubleshooting) diff --git a/docs/README.md b/docs/README.md index 07438c538..244937216 100644 --- a/docs/README.md +++ b/docs/README.md @@ -1,17 +1,17 @@ # Traction Documentation and Resources -## A Traction Sandbox Hyperledger Aries/AnonCreds Workshop +## A Traction Sandbox ACA-Py/AnonCreds Workshop This workshop contains a sequence of labs demonstrating issuing, receiving, holding, requesting, presenting, and verifying AnonCreds Verifiable Credentials--no technical experience required! The labs take about 20 minutes for complete. New developers expecting to build an Issuer or Verifier with -[Traction] or [Aries Cloud Agent Python] will find this a great place to +[Traction] or [ACA-Py] will find this a great place to start--with developer-oriented "Next Steps" suggested at the end of the Workshop. [Traction]: https://digital.gov.bc.ca/digital-trust/technical-resources/traction/ -[Aries Cloud Agent Python]: https://aca-py.org +[ACA-Py]: https://aca-py.org ## Basic Architecture Overview See [traction flow chart](assets/traction-flow-chart-1600x900-12162022.pdf) diff --git a/docs/traction-anoncreds-workshop.md b/docs/traction-anoncreds-workshop.md index 8bc47ff67..e68083129 100644 --- a/docs/traction-anoncreds-workshop.md +++ b/docs/traction-anoncreds-workshop.md @@ -1,3 +1,3 @@ -# A Traction Sandbox Hyperledger Aries/AnonCreds Workshop +# A Traction Sandbox ACA-Py/AnonCreds Workshop -Find the Traction AnonCreds workshop in its new home at [Hyperledger Aries ACA-Py Docs](https://aca-py.org/latest/demo/ACA-Py-Workshop/). +Find the Traction AnonCreds workshop in its new home at [ACA-Py Docs](https://aca-py.org/latest/demo/ACA-Py-Workshop/). diff --git a/plugins/README.md b/plugins/README.md index e4eb256cf..891efd58b 100644 --- a/plugins/README.md +++ b/plugins/README.md @@ -1,8 +1,8 @@ # Traction Aca-Py Plugins -Traction is a set of plugins that facilitate multi-tenant management within [Aca-Py](https://github.com/hyperledger/aries-cloudagent-python). Some of the plugins ([basicmessage_storage](./basicmessage_storage/README.md), [connection_update](./connection_update/README.md) and [multitenant_provider](./multitenant_provider/README.md)) can be used independently from Traction. +Traction is a set of plugins that facilitate multi-tenant management within [Aca-Py](https://github.com/openwallet-foundation/acapy). Some of the plugins ([basicmessage_storage](./basicmessage_storage/README.md), [connection_update](./connection_update/README.md) and [multitenant_provider](./multitenant_provider/README.md)) can be used independently from Traction. ### Developing Aca-Py Plugins -Please refer to [Getting Started Aries Development: Plugins](https://github.com/hyperledger/aries-cloudagent-python/blob/45c832658245747a3366735f6179362d127bae02/docs/GettingStartedAriesDev/PlugIns.md) for an in depth look at how to build Aca-Py plugins and how they operate within Aca-Py. +Please refer to [Features: Plugins](https://github.com/openwallet-foundation/acapy/blob/main/docs/features/PlugIns.md) for an in depth look at how to build Aca-Py plugins and how they operate within Aca-Py. diff --git a/scripts/README.md b/scripts/README.md index f3a806815..fc6233803 100644 --- a/scripts/README.md +++ b/scripts/README.md @@ -29,7 +29,7 @@ Currently this setup has dependencies on BCovrin Test Ledger and a registered en Also, there are longer term goals for moving the plugins to separate repositories and allowing teams to pull them in and configure their own Aca-Py images as needed. Currently, we are pulling the plugins in as source and building a custom image. For local development, the build of this image is included in the `docker compose build` command. Once the Aca-py + plugin image is built (tagged: `traction:plugins-acapy`), that image is pulled into another that we use to run an [ngrok](https://ngrok.com) script for external access to our agent (see [services/aca-py](../services/aca-py). This is not what we are doing in production, but we are doing it here (for now). #### traction:plugins-acapy -This image is based on [ghcr.io/hyperledger/aries-cloudagent-python:py3.9-0.12.1](https://github.com/hyperledger/aries-cloudagent-python/releases/tag/0.12.1) and this is where we pull in the [traction plugins](../plugins) and build out the image see [Dockerfile](../plugins/docker/Dockerfile) +This image is based on [ghcr.io/openwallet-foundation/acapy-agent:py3.12-1.1.0](https://github.com/openwallet-foundation/acapy/releases/tag/1.1.0) and this is where we pull in the [traction plugins](../plugins) and build out the image see [Dockerfile](../plugins/docker/Dockerfile) The plugins are built using the base plugins [pyproject.toml](../plugins/pyproject.toml) which pulls in each plugin as source. Simply adding new plugin directories to the file system and adding to the dockerfile will not be enough, they must be dependencies in the `plugins/pyproject.toml`. From db1a685393d7c3bbc99047203227ed344c971870 Mon Sep 17 00:00:00 2001 From: Lucas ONeil Date: Fri, 18 Oct 2024 13:44:21 -0700 Subject: [PATCH 10/31] Update images and packages to OWF 1.1.0 Signed-off-by: Lucas ONeil --- plugins/docker/Dockerfile | 12 +- plugins/pyproject.toml | 2 +- plugins/traction_innkeeper/poetry.lock | 356 +++++++++++----------- plugins/traction_innkeeper/pyproject.toml | 4 +- scripts/docker-compose.yml | 4 +- 5 files changed, 181 insertions(+), 197 deletions(-) diff --git a/plugins/docker/Dockerfile b/plugins/docker/Dockerfile index 68c1c3d3b..a45466849 100644 --- a/plugins/docker/Dockerfile +++ b/plugins/docker/Dockerfile @@ -1,4 +1,4 @@ -FROM ghcr.io/hyperledger/aries-cloudagent-python:py3.12-1.0.1 AS base +FROM ghcr.io/openwallet-foundation/acapy-agent:py3.12-1.1.0 AS base # Install and Configure Poetry USER root @@ -24,16 +24,16 @@ RUN poetry install --only main RUN ln -s $(poetry env info -p)/lib/python3.6/site-packages site-packages -FROM ghcr.io/hyperledger/aries-cloudagent-python:py3.12-1.0.1 +FROM ghcr.io/openwallet-foundation/acapy-agent:py3.12-1.1.0 COPY --from=base --chown=aries:aries /home/aries/.venv /home/aries/.venv ENV PATH="/home/aries/.venv/bin:$PATH" COPY --chown=aries:aries docker/default.yml ./ COPY --chown=aries:aries traction_innkeeper/traction_innkeeper traction_plugins/traction_innkeeper -RUN pip install git+https://github.com/hyperledger/aries-acapy-plugins@1.0.1#subdirectory=basicmessage_storage -RUN pip install git+https://github.com/hyperledger/aries-acapy-plugins@1.0.1#subdirectory=connection_update -RUN pip install git+https://github.com/hyperledger/aries-acapy-plugins@1.0.1#subdirectory=multitenant_provider -RUN pip install git+https://github.com/hyperledger/aries-acapy-plugins@1.0.1#subdirectory=rpc +RUN pip install git+https://github.com/openwallet-foundation/acapy-plugins@1.1.0#subdirectory=basicmessage_storage +RUN pip install git+https://github.com/openwallet-foundation/acapy-plugins@1.1.0#subdirectory=connection_update +RUN pip install git+https://github.com/openwallet-foundation/acapy-plugins@1.1.0#subdirectory=multitenant_provider +RUN pip install git+https://github.com/openwallet-foundation/acapy-plugins@1.1.0#subdirectory=rpc ENTRYPOINT ["/bin/bash", "-c", "aca-py \"$@\"", "--"] diff --git a/plugins/pyproject.toml b/plugins/pyproject.toml index eae275bff..2c2ce4781 100644 --- a/plugins/pyproject.toml +++ b/plugins/pyproject.toml @@ -9,7 +9,7 @@ readme = "README.md" [tool.poetry.dependencies] python = "^3.12" -aries-cloudagent = { version = "1.0.1" } +acapy-agent = { version = "1.1.0" } python-dateutil = "^2.8.2" typing-extensions = "4.8.0" traction-innkeeper = {path = "./traction_innkeeper", develop = true} diff --git a/plugins/traction_innkeeper/poetry.lock b/plugins/traction_innkeeper/poetry.lock index 4dba981eb..33ca5a94b 100644 --- a/plugins/traction_innkeeper/poetry.lock +++ b/plugins/traction_innkeeper/poetry.lock @@ -1,5 +1,56 @@ # This file is automatically @generated by Poetry 1.8.3 and should not be changed by hand. +[[package]] +name = "acapy-agent" +version = "1.1.0" +description = "(ACA-Py) A Cloud Agent Python is a foundation for building decentralized identity applications and services running in non-mobile environments." +optional = false +python-versions = "<4.0,>=3.12" +files = [ + {file = "acapy_agent-1.1.0-py3-none-any.whl", hash = "sha256:e18c1c2d781122a909a4c4afa9f29872f5ba14505b6880544801f3d17ff86407"}, + {file = "acapy_agent-1.1.0.tar.gz", hash = "sha256:0912f62bb66416241e87986d9854ab3c9eaadeeb02d53dbccc0045187445656b"}, +] + +[package.dependencies] +aiohttp = ">=3.10.5,<3.11.0" +aiohttp-apispec-acapy = ">=3.0.2,<3.1.0" +aiohttp-cors = ">=0.7.0,<0.8.0" +apispec = ">=6.6.0,<7.0.0" +async-timeout = ">=4.0.2,<4.1.0" +base58 = ">=2.1.0,<2.2.0" +canonicaljson = ">=2.0.0,<3.0.0" +ConfigArgParse = ">=1.7,<1.8" +deepmerge = ">=0.3.0,<0.4.0" +did-peer-2 = ">=0.1.2,<0.2.0" +did-peer-4 = ">=0.1.4,<0.2.0" +ecdsa = ">=0.19.0,<0.20.0" +jsonpath-ng = "1.6.1" +Markdown = ">=3.7,<3.8" +markupsafe = "2.1.5" +marshmallow = ">=3.22.0,<3.23.0" +nest_asyncio = ">=1.6.0,<1.7.0" +packaging = ">=23.2,<23.3" +portalocker = ">=2.10.1,<2.11.0" +prompt_toolkit = ">=2.0.9,<2.1.0" +pydid = ">=0.5.1,<0.6.0" +pyjwt = ">=2.9.0,<2.10.0" +pyld = ">=2.0.4,<3.0.0" +pynacl = ">=1.5.0,<1.6.0" +python-dateutil = ">=2.8.1,<2.9.0" +python-json-logger = ">=2.0.7,<2.1.0" +pyyaml = ">=6.0.2,<6.1.0" +qrcode = {version = ">=6.1,<7.0", extras = ["pil"]} +requests = ">=2.32.3,<2.33.0" +rlp = "4.0.1" +sd-jwt = ">=0.10.3,<0.11.0" +unflatten = ">=0.2,<0.3" +uuid_utils = ">=0.9.0,<0.10.0" + +[package.extras] +askar = ["anoncreds (==0.2.0)", "aries-askar (>=0.3.2,<0.4.0)", "indy-credx (>=1.1.1,<1.2.0)", "indy-vdr (>=0.4.0,<0.5.0)"] +bbs = ["ursa-bbs-signatures (>=1.0.1,<1.1.0)"] +didcommv2 = ["didcomm-messaging (>=0.1.1a0,<0.2.0)"] + [[package]] name = "aiohappyeyeballs" version = "2.4.3" @@ -212,57 +263,6 @@ marshmallow = ["marshmallow (>=3.18.0)"] tests = ["apispec[marshmallow,yaml]", "openapi-spec-validator (==0.7.1)", "pytest"] yaml = ["PyYAML (>=3.10)"] -[[package]] -name = "aries-cloudagent" -version = "1.0.1" -description = "Hyperledger Aries Cloud Agent Python (ACA-Py) is a foundation for building decentralized identity applications and services running in non-mobile environments." -optional = false -python-versions = "<4.0,>=3.12" -files = [ - {file = "aries_cloudagent-1.0.1-py3-none-any.whl", hash = "sha256:081970c001b03c7f5e43500e8ed059cecb8099c6a31fc668c1eed5da746390af"}, - {file = "aries_cloudagent-1.0.1.tar.gz", hash = "sha256:680d5970ee0f49afc5b3d39cb8969b351e0df1fa02e6e6d8695cbd3c3206f694"}, -] - -[package.dependencies] -aiohttp = ">=3.10.5,<3.11.0" -aiohttp-apispec-acapy = ">=3.0.2,<3.1.0" -aiohttp-cors = ">=0.7.0,<0.8.0" -apispec = ">=6.6.0,<7.0.0" -async-timeout = ">=4.0.2,<4.1.0" -base58 = ">=2.1.0,<2.2.0" -canonicaljson = ">=2.0.0,<3.0.0" -ConfigArgParse = ">=1.7,<1.8" -deepmerge = ">=0.3.0,<0.4.0" -did-peer-2 = ">=0.1.2,<0.2.0" -did-peer-4 = ">=0.1.4,<0.2.0" -ecdsa = ">=0.19.0,<0.20.0" -jsonpath-ng = "1.6.1" -Markdown = ">=3.7,<3.8" -markupsafe = "2.1.5" -marshmallow = ">=3.22.0,<3.23.0" -nest_asyncio = ">=1.6.0,<1.7.0" -packaging = ">=23.2,<23.3" -portalocker = ">=2.10.1,<2.11.0" -prompt_toolkit = ">=2.0.9,<2.1.0" -pydid = ">=0.5.1,<0.6.0" -pyjwt = ">=2.9.0,<2.10.0" -pyld = ">=2.0.4,<3.0.0" -pynacl = ">=1.5.0,<1.6.0" -python-dateutil = ">=2.8.1,<2.9.0" -python-json-logger = ">=2.0.7,<2.1.0" -pyyaml = ">=6.0.2,<6.1.0" -qrcode = {version = ">=6.1,<7.0", extras = ["pil"]} -requests = ">=2.32.3,<2.33.0" -rlp = "4.0.1" -sd-jwt = ">=0.10.3,<0.11.0" -unflatten = ">=0.2,<0.3" -uuid_utils = ">=0.9.0,<0.10.0" - -[package.extras] -askar = ["anoncreds (==0.2.0)", "aries-askar (>=0.3.2,<0.4.0)", "indy-credx (>=1.1.1,<1.2.0)", "indy-vdr (>=0.4.0,<0.5.0)"] -bbs = ["ursa-bbs-signatures (>=1.0.1,<1.1.0)"] -didcommv2 = ["didcomm-messaging (>=0.1.1a0,<0.2.0)"] - [[package]] name = "async-timeout" version = "4.0.3" @@ -659,38 +659,38 @@ yaml = ["PyYAML"] [[package]] name = "cryptography" -version = "43.0.1" +version = "43.0.3" description = "cryptography is a package which provides cryptographic recipes and primitives to Python developers." optional = false python-versions = ">=3.7" files = [ - {file = "cryptography-43.0.1-cp37-abi3-macosx_10_9_universal2.whl", hash = "sha256:8385d98f6a3bf8bb2d65a73e17ed87a3ba84f6991c155691c51112075f9ffc5d"}, - {file = "cryptography-43.0.1-cp37-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:27e613d7077ac613e399270253259d9d53872aaf657471473ebfc9a52935c062"}, - {file = "cryptography-43.0.1-cp37-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:68aaecc4178e90719e95298515979814bda0cbada1256a4485414860bd7ab962"}, - {file = "cryptography-43.0.1-cp37-abi3-manylinux_2_28_aarch64.whl", hash = "sha256:de41fd81a41e53267cb020bb3a7212861da53a7d39f863585d13ea11049cf277"}, - {file = "cryptography-43.0.1-cp37-abi3-manylinux_2_28_x86_64.whl", hash = "sha256:f98bf604c82c416bc829e490c700ca1553eafdf2912a91e23a79d97d9801372a"}, - {file = "cryptography-43.0.1-cp37-abi3-musllinux_1_2_aarch64.whl", hash = "sha256:61ec41068b7b74268fa86e3e9e12b9f0c21fcf65434571dbb13d954bceb08042"}, - {file = "cryptography-43.0.1-cp37-abi3-musllinux_1_2_x86_64.whl", hash = "sha256:014f58110f53237ace6a408b5beb6c427b64e084eb451ef25a28308270086494"}, - {file = "cryptography-43.0.1-cp37-abi3-win32.whl", hash = "sha256:2bd51274dcd59f09dd952afb696bf9c61a7a49dfc764c04dd33ef7a6b502a1e2"}, - {file = "cryptography-43.0.1-cp37-abi3-win_amd64.whl", hash = "sha256:666ae11966643886c2987b3b721899d250855718d6d9ce41b521252a17985f4d"}, - {file = "cryptography-43.0.1-cp39-abi3-macosx_10_9_universal2.whl", hash = "sha256:ac119bb76b9faa00f48128b7f5679e1d8d437365c5d26f1c2c3f0da4ce1b553d"}, - {file = "cryptography-43.0.1-cp39-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:1bbcce1a551e262dfbafb6e6252f1ae36a248e615ca44ba302df077a846a8806"}, - {file = "cryptography-43.0.1-cp39-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:58d4e9129985185a06d849aa6df265bdd5a74ca6e1b736a77959b498e0505b85"}, - {file = "cryptography-43.0.1-cp39-abi3-manylinux_2_28_aarch64.whl", hash = "sha256:d03a475165f3134f773d1388aeb19c2d25ba88b6a9733c5c590b9ff7bbfa2e0c"}, - {file = "cryptography-43.0.1-cp39-abi3-manylinux_2_28_x86_64.whl", hash = "sha256:511f4273808ab590912a93ddb4e3914dfd8a388fed883361b02dea3791f292e1"}, - {file = "cryptography-43.0.1-cp39-abi3-musllinux_1_2_aarch64.whl", hash = "sha256:80eda8b3e173f0f247f711eef62be51b599b5d425c429b5d4ca6a05e9e856baa"}, - {file = "cryptography-43.0.1-cp39-abi3-musllinux_1_2_x86_64.whl", hash = "sha256:38926c50cff6f533f8a2dae3d7f19541432610d114a70808f0926d5aaa7121e4"}, - {file = "cryptography-43.0.1-cp39-abi3-win32.whl", hash = "sha256:a575913fb06e05e6b4b814d7f7468c2c660e8bb16d8d5a1faf9b33ccc569dd47"}, - {file = "cryptography-43.0.1-cp39-abi3-win_amd64.whl", hash = "sha256:d75601ad10b059ec832e78823b348bfa1a59f6b8d545db3a24fd44362a1564cb"}, - {file = "cryptography-43.0.1-pp310-pypy310_pp73-macosx_10_9_x86_64.whl", hash = "sha256:ea25acb556320250756e53f9e20a4177515f012c9eaea17eb7587a8c4d8ae034"}, - {file = "cryptography-43.0.1-pp310-pypy310_pp73-manylinux_2_28_aarch64.whl", hash = "sha256:c1332724be35d23a854994ff0b66530119500b6053d0bd3363265f7e5e77288d"}, - {file = "cryptography-43.0.1-pp310-pypy310_pp73-manylinux_2_28_x86_64.whl", hash = "sha256:fba1007b3ef89946dbbb515aeeb41e30203b004f0b4b00e5e16078b518563289"}, - {file = "cryptography-43.0.1-pp310-pypy310_pp73-win_amd64.whl", hash = "sha256:5b43d1ea6b378b54a1dc99dd8a2b5be47658fe9a7ce0a58ff0b55f4b43ef2b84"}, - {file = "cryptography-43.0.1-pp39-pypy39_pp73-macosx_10_9_x86_64.whl", hash = "sha256:88cce104c36870d70c49c7c8fd22885875d950d9ee6ab54df2745f83ba0dc365"}, - {file = "cryptography-43.0.1-pp39-pypy39_pp73-manylinux_2_28_aarch64.whl", hash = "sha256:9d3cdb25fa98afdd3d0892d132b8d7139e2c087da1712041f6b762e4f807cc96"}, - {file = "cryptography-43.0.1-pp39-pypy39_pp73-manylinux_2_28_x86_64.whl", hash = "sha256:e710bf40870f4db63c3d7d929aa9e09e4e7ee219e703f949ec4073b4294f6172"}, - {file = "cryptography-43.0.1-pp39-pypy39_pp73-win_amd64.whl", hash = "sha256:7c05650fe8023c5ed0d46793d4b7d7e6cd9c04e68eabe5b0aeea836e37bdcec2"}, - {file = "cryptography-43.0.1.tar.gz", hash = "sha256:203e92a75716d8cfb491dc47c79e17d0d9207ccffcbcb35f598fbe463ae3444d"}, + {file = "cryptography-43.0.3-cp37-abi3-macosx_10_9_universal2.whl", hash = "sha256:bf7a1932ac4176486eab36a19ed4c0492da5d97123f1406cf15e41b05e787d2e"}, + {file = "cryptography-43.0.3-cp37-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:63efa177ff54aec6e1c0aefaa1a241232dcd37413835a9b674b6e3f0ae2bfd3e"}, + {file = "cryptography-43.0.3-cp37-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:7e1ce50266f4f70bf41a2c6dc4358afadae90e2a1e5342d3c08883df1675374f"}, + {file = "cryptography-43.0.3-cp37-abi3-manylinux_2_28_aarch64.whl", hash = "sha256:443c4a81bb10daed9a8f334365fe52542771f25aedaf889fd323a853ce7377d6"}, + {file = "cryptography-43.0.3-cp37-abi3-manylinux_2_28_x86_64.whl", hash = "sha256:74f57f24754fe349223792466a709f8e0c093205ff0dca557af51072ff47ab18"}, + {file = "cryptography-43.0.3-cp37-abi3-musllinux_1_2_aarch64.whl", hash = "sha256:9762ea51a8fc2a88b70cf2995e5675b38d93bf36bd67d91721c309df184f49bd"}, + {file = "cryptography-43.0.3-cp37-abi3-musllinux_1_2_x86_64.whl", hash = "sha256:81ef806b1fef6b06dcebad789f988d3b37ccaee225695cf3e07648eee0fc6b73"}, + {file = "cryptography-43.0.3-cp37-abi3-win32.whl", hash = "sha256:cbeb489927bd7af4aa98d4b261af9a5bc025bd87f0e3547e11584be9e9427be2"}, + {file = "cryptography-43.0.3-cp37-abi3-win_amd64.whl", hash = "sha256:f46304d6f0c6ab8e52770addfa2fc41e6629495548862279641972b6215451cd"}, + {file = "cryptography-43.0.3-cp39-abi3-macosx_10_9_universal2.whl", hash = "sha256:8ac43ae87929a5982f5948ceda07001ee5e83227fd69cf55b109144938d96984"}, + {file = "cryptography-43.0.3-cp39-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:846da004a5804145a5f441b8530b4bf35afbf7da70f82409f151695b127213d5"}, + {file = "cryptography-43.0.3-cp39-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:0f996e7268af62598f2fc1204afa98a3b5712313a55c4c9d434aef49cadc91d4"}, + {file = "cryptography-43.0.3-cp39-abi3-manylinux_2_28_aarch64.whl", hash = "sha256:f7b178f11ed3664fd0e995a47ed2b5ff0a12d893e41dd0494f406d1cf555cab7"}, + {file = "cryptography-43.0.3-cp39-abi3-manylinux_2_28_x86_64.whl", hash = "sha256:c2e6fc39c4ab499049df3bdf567f768a723a5e8464816e8f009f121a5a9f4405"}, + {file = "cryptography-43.0.3-cp39-abi3-musllinux_1_2_aarch64.whl", hash = "sha256:e1be4655c7ef6e1bbe6b5d0403526601323420bcf414598955968c9ef3eb7d16"}, + {file = "cryptography-43.0.3-cp39-abi3-musllinux_1_2_x86_64.whl", hash = "sha256:df6b6c6d742395dd77a23ea3728ab62f98379eff8fb61be2744d4679ab678f73"}, + {file = "cryptography-43.0.3-cp39-abi3-win32.whl", hash = "sha256:d56e96520b1020449bbace2b78b603442e7e378a9b3bd68de65c782db1507995"}, + {file = "cryptography-43.0.3-cp39-abi3-win_amd64.whl", hash = "sha256:0c580952eef9bf68c4747774cde7ec1d85a6e61de97281f2dba83c7d2c806362"}, + {file = "cryptography-43.0.3-pp310-pypy310_pp73-macosx_10_9_x86_64.whl", hash = "sha256:d03b5621a135bffecad2c73e9f4deb1a0f977b9a8ffe6f8e002bf6c9d07b918c"}, + {file = "cryptography-43.0.3-pp310-pypy310_pp73-manylinux_2_28_aarch64.whl", hash = "sha256:a2a431ee15799d6db9fe80c82b055bae5a752bef645bba795e8e52687c69efe3"}, + {file = "cryptography-43.0.3-pp310-pypy310_pp73-manylinux_2_28_x86_64.whl", hash = "sha256:281c945d0e28c92ca5e5930664c1cefd85efe80e5c0d2bc58dd63383fda29f83"}, + {file = "cryptography-43.0.3-pp310-pypy310_pp73-win_amd64.whl", hash = "sha256:f18c716be16bc1fea8e95def49edf46b82fccaa88587a45f8dc0ff6ab5d8e0a7"}, + {file = "cryptography-43.0.3-pp39-pypy39_pp73-macosx_10_9_x86_64.whl", hash = "sha256:4a02ded6cd4f0a5562a8887df8b3bd14e822a90f97ac5e544c162899bc467664"}, + {file = "cryptography-43.0.3-pp39-pypy39_pp73-manylinux_2_28_aarch64.whl", hash = "sha256:53a583b6637ab4c4e3591a15bc9db855b8d9dee9a669b550f311480acab6eb08"}, + {file = "cryptography-43.0.3-pp39-pypy39_pp73-manylinux_2_28_x86_64.whl", hash = "sha256:1ec0bcf7e17c0c5669d881b1cd38c4972fade441b27bda1051665faaa89bdcaa"}, + {file = "cryptography-43.0.3-pp39-pypy39_pp73-win_amd64.whl", hash = "sha256:2ce6fae5bdad59577b44e4dfed356944fbf1d925269114c28be377692643b4ff"}, + {file = "cryptography-43.0.3.tar.gz", hash = "sha256:315b9001266a492a6ff443b61238f956b214dbec9910a081ba5b6646a055a805"}, ] [package.dependencies] @@ -703,7 +703,7 @@ nox = ["nox"] pep8test = ["check-sdist", "click", "mypy", "ruff"] sdist = ["build"] ssh = ["bcrypt (>=3.1.5)"] -test = ["certifi", "cryptography-vectors (==43.0.1)", "pretend", "pytest (>=6.2.0)", "pytest-benchmark", "pytest-cov", "pytest-xdist"] +test = ["certifi", "cryptography-vectors (==43.0.3)", "pretend", "pytest (>=6.2.0)", "pytest-benchmark", "pytest-cov", "pytest-xdist"] test-randomorder = ["pytest-randomly"] [[package]] @@ -1544,7 +1544,7 @@ files = [ [[package]] name = "multitenant-provider" version = "0.1.0" -description = " (Supported aries-cloudagent version: 1.0.1) " +description = " (Supported acapy-agent version: 1.1.0) " optional = false python-versions = "^3.12" files = [] @@ -1556,13 +1556,13 @@ mergedeep = "^1.3.4" python-dateutil = "^2.8.2" [package.extras] -aca-py = ["aries-cloudagent (>=1.0.0,<1.1.0)"] +aca-py = ["acapy-agent (>=1.1.0,<1.2.0)"] [package.source] type = "git" -url = "https://github.com/hyperledger/aries-acapy-plugins" -reference = "1.0.1" -resolved_reference = "e01ef5604315dbef4154cac51371abece59ddb1c" +url = "https://github.com/openwallet-foundation/acapy-plugins" +reference = "1.1.0" +resolved_reference = "df158801a72d390bdfd690d135239a6fa0101535" subdirectory = "multitenant_provider" [[package]] @@ -2588,109 +2588,93 @@ tests = ["Django (>=2.2.0)", "Flask (>=0.12.5)", "aiohttp (>=3.0.8)", "bottle (> [[package]] name = "yarl" -version = "1.15.2" +version = "1.15.5" description = "Yet another URL library" optional = false -python-versions = ">=3.8" +python-versions = ">=3.9" files = [ - {file = "yarl-1.15.2-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:e4ee8b8639070ff246ad3649294336b06db37a94bdea0d09ea491603e0be73b8"}, - {file = "yarl-1.15.2-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:a7cf963a357c5f00cb55b1955df8bbe68d2f2f65de065160a1c26b85a1e44172"}, - {file = "yarl-1.15.2-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:43ebdcc120e2ca679dba01a779333a8ea76b50547b55e812b8b92818d604662c"}, - {file = "yarl-1.15.2-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:3433da95b51a75692dcf6cc8117a31410447c75a9a8187888f02ad45c0a86c50"}, - {file = "yarl-1.15.2-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:38d0124fa992dbacd0c48b1b755d3ee0a9f924f427f95b0ef376556a24debf01"}, - {file = "yarl-1.15.2-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:ded1b1803151dd0f20a8945508786d57c2f97a50289b16f2629f85433e546d47"}, - {file = "yarl-1.15.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ace4cad790f3bf872c082366c9edd7f8f8f77afe3992b134cfc810332206884f"}, - {file = "yarl-1.15.2-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:c77494a2f2282d9bbbbcab7c227a4d1b4bb829875c96251f66fb5f3bae4fb053"}, - {file = "yarl-1.15.2-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:b7f227ca6db5a9fda0a2b935a2ea34a7267589ffc63c8045f0e4edb8d8dcf956"}, - {file = "yarl-1.15.2-cp310-cp310-musllinux_1_2_armv7l.whl", hash = "sha256:31561a5b4d8dbef1559b3600b045607cf804bae040f64b5f5bca77da38084a8a"}, - {file = "yarl-1.15.2-cp310-cp310-musllinux_1_2_i686.whl", hash = "sha256:3e52474256a7db9dcf3c5f4ca0b300fdea6c21cca0148c8891d03a025649d935"}, - {file = "yarl-1.15.2-cp310-cp310-musllinux_1_2_ppc64le.whl", hash = "sha256:0e1af74a9529a1137c67c887ed9cde62cff53aa4d84a3adbec329f9ec47a3936"}, - {file = "yarl-1.15.2-cp310-cp310-musllinux_1_2_s390x.whl", hash = "sha256:15c87339490100c63472a76d87fe7097a0835c705eb5ae79fd96e343473629ed"}, - {file = "yarl-1.15.2-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:74abb8709ea54cc483c4fb57fb17bb66f8e0f04438cff6ded322074dbd17c7ec"}, - {file = "yarl-1.15.2-cp310-cp310-win32.whl", hash = "sha256:ffd591e22b22f9cb48e472529db6a47203c41c2c5911ff0a52e85723196c0d75"}, - {file = "yarl-1.15.2-cp310-cp310-win_amd64.whl", hash = "sha256:1695497bb2a02a6de60064c9f077a4ae9c25c73624e0d43e3aa9d16d983073c2"}, - {file = "yarl-1.15.2-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:9fcda20b2de7042cc35cf911702fa3d8311bd40055a14446c1e62403684afdc5"}, - {file = "yarl-1.15.2-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:0545de8c688fbbf3088f9e8b801157923be4bf8e7b03e97c2ecd4dfa39e48e0e"}, - {file = "yarl-1.15.2-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:fbda058a9a68bec347962595f50546a8a4a34fd7b0654a7b9697917dc2bf810d"}, - {file = "yarl-1.15.2-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d1ac2bc069f4a458634c26b101c2341b18da85cb96afe0015990507efec2e417"}, - {file = "yarl-1.15.2-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:cd126498171f752dd85737ab1544329a4520c53eed3997f9b08aefbafb1cc53b"}, - {file = "yarl-1.15.2-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:3db817b4e95eb05c362e3b45dafe7144b18603e1211f4a5b36eb9522ecc62bcf"}, - {file = "yarl-1.15.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:076b1ed2ac819933895b1a000904f62d615fe4533a5cf3e052ff9a1da560575c"}, - {file = "yarl-1.15.2-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:f8cfd847e6b9ecf9f2f2531c8427035f291ec286c0a4944b0a9fce58c6446046"}, - {file = "yarl-1.15.2-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:32b66be100ac5739065496c74c4b7f3015cef792c3174982809274d7e51b3e04"}, - {file = "yarl-1.15.2-cp311-cp311-musllinux_1_2_armv7l.whl", hash = "sha256:34a2d76a1984cac04ff8b1bfc939ec9dc0914821264d4a9c8fd0ed6aa8d4cfd2"}, - {file = "yarl-1.15.2-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:0afad2cd484908f472c8fe2e8ef499facee54a0a6978be0e0cff67b1254fd747"}, - {file = "yarl-1.15.2-cp311-cp311-musllinux_1_2_ppc64le.whl", hash = "sha256:c68e820879ff39992c7f148113b46efcd6ec765a4865581f2902b3c43a5f4bbb"}, - {file = "yarl-1.15.2-cp311-cp311-musllinux_1_2_s390x.whl", hash = "sha256:98f68df80ec6ca3015186b2677c208c096d646ef37bbf8b49764ab4a38183931"}, - {file = "yarl-1.15.2-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:3c56ec1eacd0a5d35b8a29f468659c47f4fe61b2cab948ca756c39b7617f0aa5"}, - {file = "yarl-1.15.2-cp311-cp311-win32.whl", hash = "sha256:eedc3f247ee7b3808ea07205f3e7d7879bc19ad3e6222195cd5fbf9988853e4d"}, - {file = "yarl-1.15.2-cp311-cp311-win_amd64.whl", hash = "sha256:0ccaa1bc98751fbfcf53dc8dfdb90d96e98838010fc254180dd6707a6e8bb179"}, - {file = "yarl-1.15.2-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:82d5161e8cb8f36ec778fd7ac4d740415d84030f5b9ef8fe4da54784a1f46c94"}, - {file = "yarl-1.15.2-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:fa2bea05ff0a8fb4d8124498e00e02398f06d23cdadd0fe027d84a3f7afde31e"}, - {file = "yarl-1.15.2-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:99e12d2bf587b44deb74e0d6170fec37adb489964dbca656ec41a7cd8f2ff178"}, - {file = "yarl-1.15.2-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:243fbbbf003754fe41b5bdf10ce1e7f80bcc70732b5b54222c124d6b4c2ab31c"}, - {file = "yarl-1.15.2-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:856b7f1a7b98a8c31823285786bd566cf06226ac4f38b3ef462f593c608a9bd6"}, - {file = "yarl-1.15.2-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:553dad9af802a9ad1a6525e7528152a015b85fb8dbf764ebfc755c695f488367"}, - {file = "yarl-1.15.2-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:30c3ff305f6e06650a761c4393666f77384f1cc6c5c0251965d6bfa5fbc88f7f"}, - {file = "yarl-1.15.2-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:353665775be69bbfc6d54c8d134bfc533e332149faeddd631b0bc79df0897f46"}, - {file = "yarl-1.15.2-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:f4fe99ce44128c71233d0d72152db31ca119711dfc5f2c82385ad611d8d7f897"}, - {file = "yarl-1.15.2-cp312-cp312-musllinux_1_2_armv7l.whl", hash = "sha256:9c1e3ff4b89cdd2e1a24c214f141e848b9e0451f08d7d4963cb4108d4d798f1f"}, - {file = "yarl-1.15.2-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:711bdfae4e699a6d4f371137cbe9e740dc958530cb920eb6f43ff9551e17cfbc"}, - {file = "yarl-1.15.2-cp312-cp312-musllinux_1_2_ppc64le.whl", hash = "sha256:4388c72174868884f76affcdd3656544c426407e0043c89b684d22fb265e04a5"}, - {file = "yarl-1.15.2-cp312-cp312-musllinux_1_2_s390x.whl", hash = "sha256:f0e1844ad47c7bd5d6fa784f1d4accc5f4168b48999303a868fe0f8597bde715"}, - {file = "yarl-1.15.2-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:a5cafb02cf097a82d74403f7e0b6b9df3ffbfe8edf9415ea816314711764a27b"}, - {file = "yarl-1.15.2-cp312-cp312-win32.whl", hash = "sha256:156ececdf636143f508770bf8a3a0498de64da5abd890c7dbb42ca9e3b6c05b8"}, - {file = "yarl-1.15.2-cp312-cp312-win_amd64.whl", hash = "sha256:435aca062444a7f0c884861d2e3ea79883bd1cd19d0a381928b69ae1b85bc51d"}, - {file = "yarl-1.15.2-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:416f2e3beaeae81e2f7a45dc711258be5bdc79c940a9a270b266c0bec038fb84"}, - {file = "yarl-1.15.2-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:173563f3696124372831007e3d4b9821746964a95968628f7075d9231ac6bb33"}, - {file = "yarl-1.15.2-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:9ce2e0f6123a60bd1a7f5ae3b2c49b240c12c132847f17aa990b841a417598a2"}, - {file = "yarl-1.15.2-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:eaea112aed589131f73d50d570a6864728bd7c0c66ef6c9154ed7b59f24da611"}, - {file = "yarl-1.15.2-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:e4ca3b9f370f218cc2a0309542cab8d0acdfd66667e7c37d04d617012485f904"}, - {file = "yarl-1.15.2-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:23ec1d3c31882b2a8a69c801ef58ebf7bae2553211ebbddf04235be275a38548"}, - {file = "yarl-1.15.2-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:75119badf45f7183e10e348edff5a76a94dc19ba9287d94001ff05e81475967b"}, - {file = "yarl-1.15.2-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:78e6fdc976ec966b99e4daa3812fac0274cc28cd2b24b0d92462e2e5ef90d368"}, - {file = "yarl-1.15.2-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:8657d3f37f781d987037f9cc20bbc8b40425fa14380c87da0cb8dfce7c92d0fb"}, - {file = "yarl-1.15.2-cp313-cp313-musllinux_1_2_armv7l.whl", hash = "sha256:93bed8a8084544c6efe8856c362af08a23e959340c87a95687fdbe9c9f280c8b"}, - {file = "yarl-1.15.2-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:69d5856d526802cbda768d3e6246cd0d77450fa2a4bc2ea0ea14f0d972c2894b"}, - {file = "yarl-1.15.2-cp313-cp313-musllinux_1_2_ppc64le.whl", hash = "sha256:ccad2800dfdff34392448c4bf834be124f10a5bc102f254521d931c1c53c455a"}, - {file = "yarl-1.15.2-cp313-cp313-musllinux_1_2_s390x.whl", hash = "sha256:a880372e2e5dbb9258a4e8ff43f13888039abb9dd6d515f28611c54361bc5644"}, - {file = "yarl-1.15.2-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:c998d0558805860503bc3a595994895ca0f7835e00668dadc673bbf7f5fbfcbe"}, - {file = "yarl-1.15.2-cp313-cp313-win32.whl", hash = "sha256:533a28754e7f7439f217550a497bb026c54072dbe16402b183fdbca2431935a9"}, - {file = "yarl-1.15.2-cp313-cp313-win_amd64.whl", hash = "sha256:5838f2b79dc8f96fdc44077c9e4e2e33d7089b10788464609df788eb97d03aad"}, - {file = "yarl-1.15.2-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:fbbb63bed5fcd70cd3dd23a087cd78e4675fb5a2963b8af53f945cbbca79ae16"}, - {file = "yarl-1.15.2-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:e2e93b88ecc8f74074012e18d679fb2e9c746f2a56f79cd5e2b1afcf2a8a786b"}, - {file = "yarl-1.15.2-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:af8ff8d7dc07ce873f643de6dfbcd45dc3db2c87462e5c387267197f59e6d776"}, - {file = "yarl-1.15.2-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:66f629632220a4e7858b58e4857927dd01a850a4cef2fb4044c8662787165cf7"}, - {file = "yarl-1.15.2-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:833547179c31f9bec39b49601d282d6f0ea1633620701288934c5f66d88c3e50"}, - {file = "yarl-1.15.2-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:2aa738e0282be54eede1e3f36b81f1e46aee7ec7602aa563e81e0e8d7b67963f"}, - {file = "yarl-1.15.2-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9a13a07532e8e1c4a5a3afff0ca4553da23409fad65def1b71186fb867eeae8d"}, - {file = "yarl-1.15.2-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:c45817e3e6972109d1a2c65091504a537e257bc3c885b4e78a95baa96df6a3f8"}, - {file = "yarl-1.15.2-cp38-cp38-musllinux_1_2_aarch64.whl", hash = "sha256:670eb11325ed3a6209339974b276811867defe52f4188fe18dc49855774fa9cf"}, - {file = "yarl-1.15.2-cp38-cp38-musllinux_1_2_armv7l.whl", hash = "sha256:d417a4f6943112fae3924bae2af7112562285848d9bcee737fc4ff7cbd450e6c"}, - {file = "yarl-1.15.2-cp38-cp38-musllinux_1_2_i686.whl", hash = "sha256:bc8936d06cd53fddd4892677d65e98af514c8d78c79864f418bbf78a4a2edde4"}, - {file = "yarl-1.15.2-cp38-cp38-musllinux_1_2_ppc64le.whl", hash = "sha256:954dde77c404084c2544e572f342aef384240b3e434e06cecc71597e95fd1ce7"}, - {file = "yarl-1.15.2-cp38-cp38-musllinux_1_2_s390x.whl", hash = "sha256:5bc0df728e4def5e15a754521e8882ba5a5121bd6b5a3a0ff7efda5d6558ab3d"}, - {file = "yarl-1.15.2-cp38-cp38-musllinux_1_2_x86_64.whl", hash = "sha256:b71862a652f50babab4a43a487f157d26b464b1dedbcc0afda02fd64f3809d04"}, - {file = "yarl-1.15.2-cp38-cp38-win32.whl", hash = "sha256:63eab904f8630aed5a68f2d0aeab565dcfc595dc1bf0b91b71d9ddd43dea3aea"}, - {file = "yarl-1.15.2-cp38-cp38-win_amd64.whl", hash = "sha256:2cf441c4b6e538ba0d2591574f95d3fdd33f1efafa864faa077d9636ecc0c4e9"}, - {file = "yarl-1.15.2-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:a32d58f4b521bb98b2c0aa9da407f8bd57ca81f34362bcb090e4a79e9924fefc"}, - {file = "yarl-1.15.2-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:766dcc00b943c089349d4060b935c76281f6be225e39994c2ccec3a2a36ad627"}, - {file = "yarl-1.15.2-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:bed1b5dbf90bad3bfc19439258c97873eab453c71d8b6869c136346acfe497e7"}, - {file = "yarl-1.15.2-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ed20a4bdc635f36cb19e630bfc644181dd075839b6fc84cac51c0f381ac472e2"}, - {file = "yarl-1.15.2-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:d538df442c0d9665664ab6dd5fccd0110fa3b364914f9c85b3ef9b7b2e157980"}, - {file = "yarl-1.15.2-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:28c6cf1d92edf936ceedc7afa61b07e9d78a27b15244aa46bbcd534c7458ee1b"}, - {file = "yarl-1.15.2-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ce44217ad99ffad8027d2fde0269ae368c86db66ea0571c62a000798d69401fb"}, - {file = "yarl-1.15.2-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:b47a6000a7e833ebfe5886b56a31cb2ff12120b1efd4578a6fcc38df16cc77bd"}, - {file = "yarl-1.15.2-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:e52f77a0cd246086afde8815039f3e16f8d2be51786c0a39b57104c563c5cbb0"}, - {file = "yarl-1.15.2-cp39-cp39-musllinux_1_2_armv7l.whl", hash = "sha256:f9ca0e6ce7774dc7830dc0cc4bb6b3eec769db667f230e7c770a628c1aa5681b"}, - {file = "yarl-1.15.2-cp39-cp39-musllinux_1_2_i686.whl", hash = "sha256:136f9db0f53c0206db38b8cd0c985c78ded5fd596c9a86ce5c0b92afb91c3a19"}, - {file = "yarl-1.15.2-cp39-cp39-musllinux_1_2_ppc64le.whl", hash = "sha256:173866d9f7409c0fb514cf6e78952e65816600cb888c68b37b41147349fe0057"}, - {file = "yarl-1.15.2-cp39-cp39-musllinux_1_2_s390x.whl", hash = "sha256:6e840553c9c494a35e449a987ca2c4f8372668ee954a03a9a9685075228e5036"}, - {file = "yarl-1.15.2-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:458c0c65802d816a6b955cf3603186de79e8fdb46d4f19abaec4ef0a906f50a7"}, - {file = "yarl-1.15.2-cp39-cp39-win32.whl", hash = "sha256:5b48388ded01f6f2429a8c55012bdbd1c2a0c3735b3e73e221649e524c34a58d"}, - {file = "yarl-1.15.2-cp39-cp39-win_amd64.whl", hash = "sha256:81dadafb3aa124f86dc267a2168f71bbd2bfb163663661ab0038f6e4b8edb810"}, - {file = "yarl-1.15.2-py3-none-any.whl", hash = "sha256:0d3105efab7c5c091609abacad33afff33bdff0035bece164c98bcf5a85ef90a"}, - {file = "yarl-1.15.2.tar.gz", hash = "sha256:a39c36f4218a5bb668b4f06874d676d35a035ee668e6e7e3538835c703634b84"}, + {file = "yarl-1.15.5-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:b6c57972a406ea0f61e3f28f2b3a780fb71fbe1d82d267afe5a2f889a83ee7e7"}, + {file = "yarl-1.15.5-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:5c3ac5bdcc1375c8ee52784adf94edbce37c471dd2100a117cfef56fe8dbc2b4"}, + {file = "yarl-1.15.5-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:68d21d0563d82aaf46163eac529adac301b20be3181b8a2811f7bd5615466055"}, + {file = "yarl-1.15.5-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a7d317fb80bc17ed4b34a9aad8b80cef34bea0993654f3e8566daf323def7ef9"}, + {file = "yarl-1.15.5-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:ed9c72d5361cfd5af5ccadffa8f8077f4929640e1f938aa0f4b92c5a24996ac5"}, + {file = "yarl-1.15.5-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:bb707859218e8335447b210f41a755e7b1367c33e87add884128bba144694a7f"}, + {file = "yarl-1.15.5-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6563394492c96cb57f4dff0c69c63d2b28b5469c59c66f35a1e6451583cd0ab4"}, + {file = "yarl-1.15.5-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:9c2d1109c8d92059314cc34dd8f0a31f74b720dc140744923ed7ca228bf9b491"}, + {file = "yarl-1.15.5-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:8fc727f0fb388debc771eaa7091c092bd2e8b6b4741b73354b8efadcf96d6031"}, + {file = "yarl-1.15.5-cp310-cp310-musllinux_1_2_armv7l.whl", hash = "sha256:94189746c5ad62e1014a16298130e696fe593d031d442ef135fb7787b7a1f820"}, + {file = "yarl-1.15.5-cp310-cp310-musllinux_1_2_i686.whl", hash = "sha256:b06d8b05d0fafef204d635a4711283ddbf19c7c0facdc61b4b775f6e47e2d4be"}, + {file = "yarl-1.15.5-cp310-cp310-musllinux_1_2_ppc64le.whl", hash = "sha256:de6917946dc6bc237d4b354e38aa13a232e0c7948fdbdb160edee3862e9d735f"}, + {file = "yarl-1.15.5-cp310-cp310-musllinux_1_2_s390x.whl", hash = "sha256:34816f1d833433a16c4832562a050b0a60eac53dcb71b2032e6ebff82d74b6a7"}, + {file = "yarl-1.15.5-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:19e2a4b2935f95fad0949f420514c5d862f5f18058fbbfd8854f496a97d9fd87"}, + {file = "yarl-1.15.5-cp310-cp310-win32.whl", hash = "sha256:30ca64521f1a96b72886dd9e8652f16eab11891b4572dcfcfc1ad6d6ccb27abd"}, + {file = "yarl-1.15.5-cp310-cp310-win_amd64.whl", hash = "sha256:86648c53b10c53db8b967a75fb41e0c89dbec7398f6525e34af2b6c456bb0ac0"}, + {file = "yarl-1.15.5-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:e652aa9f8dfa808bc5b2da4d1f4e286cf1d640570fdfa72ffc0c1d16ba114651"}, + {file = "yarl-1.15.5-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:21050b6cd569980fe20ceeab4baeb900d3f7247270475e42bafe117416a5496c"}, + {file = "yarl-1.15.5-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:18940191ec9a83bbfe63eea61c3e9d12474bb910d5613bce8fa46e84a80b75b2"}, + {file = "yarl-1.15.5-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a082dc948045606f62dca0228ab24f13737180b253378d6443f5b2b9ef8beefe"}, + {file = "yarl-1.15.5-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:0a843e692f9d5402b3455653f4607dc521de2385f01c5cad7ba4a87c46e2ea8d"}, + {file = "yarl-1.15.5-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:5093a453176a4fad4f9c3006f507cf300546190bb3e27944275a37cfd6323a65"}, + {file = "yarl-1.15.5-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:2597a589859b94d0a5e2f5d30fee95081867926e57cb751f8b44a7dd92da4e79"}, + {file = "yarl-1.15.5-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:1f5a1ca6eaabfe62718b87eac06d9a47b30cf92ffa065fee9196d3ecd24a3cf1"}, + {file = "yarl-1.15.5-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:4ac83b307cc4b8907345b52994055c6c3c2601ceb6fcb94c5ed6a93c6b4e8257"}, + {file = "yarl-1.15.5-cp311-cp311-musllinux_1_2_armv7l.whl", hash = "sha256:325e2beb2cd8654b276e7686a3cd203628dd3fe32d5c616e632bc35a2901fb16"}, + {file = "yarl-1.15.5-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:75d04ba8ed335042328086e643e01165e0c24598216f72da709b375930ae3bdb"}, + {file = "yarl-1.15.5-cp311-cp311-musllinux_1_2_ppc64le.whl", hash = "sha256:7abd7d15aedb3961a967cc65f8144dbbca42e3626a21c5f4f29919cf43eeafb9"}, + {file = "yarl-1.15.5-cp311-cp311-musllinux_1_2_s390x.whl", hash = "sha256:294c742a273f44511f14b03a9e06b66094dcdf4bbb75a5e23fead548fd5310ae"}, + {file = "yarl-1.15.5-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:63d46606b20f80a6476f1044bab78e1a69c2e0747f174583e2f12fc70bad2170"}, + {file = "yarl-1.15.5-cp311-cp311-win32.whl", hash = "sha256:b1217102a455e3ac9ac293081093f21f0183e978c7692171ff669fee5296fa28"}, + {file = "yarl-1.15.5-cp311-cp311-win_amd64.whl", hash = "sha256:5848500b6a01497560969e8c3a7eb1b2570853c74a0ca6f67ebaf6064106c49b"}, + {file = "yarl-1.15.5-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:d3309ee667f2d9c7ac9ecf44620d6b274bfdd8065b8c5019ff6795dd887b8fed"}, + {file = "yarl-1.15.5-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:96ce879799fee124d241ea3b84448378f638e290c49493d00b706f3fd57ec22b"}, + {file = "yarl-1.15.5-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:c884dfa56b050f718ea3cbbfd972e29a6f07f63a7449b10d9a20d64f7eec92e2"}, + {file = "yarl-1.15.5-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:0327081978fe186c3390dd4f73f95f825d0bb9c74967e22c2a1a87735974d8f5"}, + {file = "yarl-1.15.5-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:524b3bb7dff320e305bc979c65eddc0342548c56ea9241502f907853fe53c408"}, + {file = "yarl-1.15.5-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:fd56de8b645421ff09c993fdb0ee9c5a3b50d290a8f55793b500d99b34d0c1ce"}, + {file = "yarl-1.15.5-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:c166ad987265bb343be58cdf4fbc4478cc1d81f2246d2be9a15f94393b269faa"}, + {file = "yarl-1.15.5-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:d56980374a10c74255fcea6ebcfb0aeca7166d212ee9fd7e823ddef35fb62ad0"}, + {file = "yarl-1.15.5-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:cbf36099a9b407e1456dbf55844743a98603fcba32d2a46fb3a698d926facf1b"}, + {file = "yarl-1.15.5-cp312-cp312-musllinux_1_2_armv7l.whl", hash = "sha256:d7fa4b033e2f267e37aabcc36949fa89f9f1716a723395912147f9cf3fb437c7"}, + {file = "yarl-1.15.5-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:bb129f77ddaea2d8e6e00417b8d907448de3407af4eddacca0a515574ad71493"}, + {file = "yarl-1.15.5-cp312-cp312-musllinux_1_2_ppc64le.whl", hash = "sha256:68e837b3edfcd037f9706157e7cb8efda832de6248c7d9e893e2638356dfae5d"}, + {file = "yarl-1.15.5-cp312-cp312-musllinux_1_2_s390x.whl", hash = "sha256:5b8af4165e097ff84d9bbb97bb4f4d7f71b9c1c9565a2d0e27d93e5f92dae220"}, + {file = "yarl-1.15.5-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:70d074d5a96e0954fe6db81ff356f4361397da1cda3f7c127fc0902f671a087e"}, + {file = "yarl-1.15.5-cp312-cp312-win32.whl", hash = "sha256:362da97ad4360e4ef1dd24ccdd3bceb18332da7f40026a42f49b7edd686e31c3"}, + {file = "yarl-1.15.5-cp312-cp312-win_amd64.whl", hash = "sha256:9aa054d97033beac9cb9b19b7c0b8784b85b12cd17879087ca6bffba57884e02"}, + {file = "yarl-1.15.5-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:5fadcf532fd9f6cbad71485ef8c2462dd9a91d3efc72ca01eb0970792c92552a"}, + {file = "yarl-1.15.5-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:8b7dd6983c81523f9de0ae6334c3b7a3cb33283936e0525f80c4f713f54a9bb6"}, + {file = "yarl-1.15.5-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:fcfd663dc88465ebe41c7c938bdc91c4b01cda96a0d64bf38fd66c1877323771"}, + {file = "yarl-1.15.5-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:cd529e637cd23204bd82072f6637cff7af2516ad2c132e8f3342cbc84871f7d1"}, + {file = "yarl-1.15.5-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:3b30f13fac56598474071a4f1ecd66c78fdaf2f8619042d7ca135f72dbb348cf"}, + {file = "yarl-1.15.5-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:44088ec0be82fba118ed29b6b429f80bf295297727adae4c257ac297e01e8bcd"}, + {file = "yarl-1.15.5-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:607683991bab8607e5158cd290dd8fdaa613442aeab802fe1c237d3a3eee7358"}, + {file = "yarl-1.15.5-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:da48cdff56b01ea4282a6d04b83b07a2088351a4a3ff7aacc1e7e9b6b04b90b9"}, + {file = "yarl-1.15.5-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:9162ea117ce8bad8ebc95b7376b4135988acd888d2cf4702f8281e3c11f8b81f"}, + {file = "yarl-1.15.5-cp313-cp313-musllinux_1_2_armv7l.whl", hash = "sha256:e8aa19c39cb20bfb16f0266df175a6004943122cf20707fbf0cacc21f6468a25"}, + {file = "yarl-1.15.5-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:5d6be369488d503c8edc14e2f63d71ab2a607041ad216a8ad444fa18e8dea792"}, + {file = "yarl-1.15.5-cp313-cp313-musllinux_1_2_ppc64le.whl", hash = "sha256:6e2c674cfe4c03ad7a4d536b1f808221f0d11a360486b4b032d2557c0bd633ad"}, + {file = "yarl-1.15.5-cp313-cp313-musllinux_1_2_s390x.whl", hash = "sha256:041bafaa82b77fd4ec2826d42a55461ec86d999adf7ed9644eef7e8a9febb366"}, + {file = "yarl-1.15.5-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:2eeb9ba53c055740cd282ae9d34eb7970d65e73a46f15adec4b0c1b0f2e55cc2"}, + {file = "yarl-1.15.5-cp313-cp313-win32.whl", hash = "sha256:73143dd279e641543da52c55652ad7b4c7c5f79e797f124f58f04cc060f14271"}, + {file = "yarl-1.15.5-cp313-cp313-win_amd64.whl", hash = "sha256:94ab1185900f43760d5487c8e49f5f1a66f864e36092f282f1813597479b9dfa"}, + {file = "yarl-1.15.5-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:6b3d2767bd64c62909ea33525b954ba05c8f9726bfdf2141d175da4e344f19ae"}, + {file = "yarl-1.15.5-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:44359c52af9c383e5107f3b6301446fc8269599721fa42fafb2afb5f31a42dcb"}, + {file = "yarl-1.15.5-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:6493da9ba5c551978c679ab04856c2cf8f79c316e8ec8c503460a135705edc3b"}, + {file = "yarl-1.15.5-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:1a6b6e95bc621c11cf9ff21012173337e789f2461ebc3b4e5bf65c74ef69adb8"}, + {file = "yarl-1.15.5-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:7983290ede3aaa2c9620879530849532529b4dcbf5b12a0b6a91163a773eadb9"}, + {file = "yarl-1.15.5-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:07a4b53abe85813c538b9cdbb02909ebe3734e3af466a587df516e960d500cc8"}, + {file = "yarl-1.15.5-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:5882faa2a6e684f65ee44f18c701768749a950cbd5e72db452fc07805f6bdec0"}, + {file = "yarl-1.15.5-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:e27861251d9c094f641d39a8a78dd2371fb9a252ea2f689d1ad353a31d46a0bc"}, + {file = "yarl-1.15.5-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:8669a110f655c9eb22f16fb68a7d4942020aeaa09f1def584a80183e3e89953c"}, + {file = "yarl-1.15.5-cp39-cp39-musllinux_1_2_armv7l.whl", hash = "sha256:10bfe0bef4cf5ea0383886beda004071faadedf2647048b9f876664284c5b60d"}, + {file = "yarl-1.15.5-cp39-cp39-musllinux_1_2_i686.whl", hash = "sha256:f7de0d4b6b4d8a77e422eb54d765255c0ec6883ee03b8fd537101633948619d7"}, + {file = "yarl-1.15.5-cp39-cp39-musllinux_1_2_ppc64le.whl", hash = "sha256:00bb3a559d7bd006a5302ecd7e409916939106a8cdbe31f4eb5e5b9ffcca57ea"}, + {file = "yarl-1.15.5-cp39-cp39-musllinux_1_2_s390x.whl", hash = "sha256:06ec070a2d71415f90dbe9d70af3158e7da97a128519dba2d1581156ee27fb92"}, + {file = "yarl-1.15.5-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:b997a806846c00d1f41d6a251803732837771b2091bead7566f68820e317bfe7"}, + {file = "yarl-1.15.5-cp39-cp39-win32.whl", hash = "sha256:7825506fbee4055265528ec3532a8197ff26fc53d4978917a4c8ddbb4c1667d7"}, + {file = "yarl-1.15.5-cp39-cp39-win_amd64.whl", hash = "sha256:71730658be0b5de7c570a9795d7404c577b2313c1db370407092c66f70e04ccb"}, + {file = "yarl-1.15.5-py3-none-any.whl", hash = "sha256:625f31d6650829fba4030b4e7bdb2d69e41510dddfa29a1da27076c199521757"}, + {file = "yarl-1.15.5.tar.gz", hash = "sha256:8249147ee81c1cf4d1dc6f26ba28a1b9d92751529f83c308ad02164bb93abd0d"}, ] [package.dependencies] @@ -2701,4 +2685,4 @@ propcache = ">=0.2.0" [metadata] lock-version = "2.0" python-versions = "^3.12" -content-hash = "79380265a61ebff6f2c41bc5b555bb7d5e4a298f27873cc45534dad2d2c6f4d3" +content-hash = "cae6f9912964545780f3f6cc2a2a333c493d7a4244933aefb34c045a210c65b9" diff --git a/plugins/traction_innkeeper/pyproject.toml b/plugins/traction_innkeeper/pyproject.toml index 2bf4bb8cd..23dd2f816 100644 --- a/plugins/traction_innkeeper/pyproject.toml +++ b/plugins/traction_innkeeper/pyproject.toml @@ -9,13 +9,13 @@ packages = [{include = "traction_innkeeper"}] [tool.poetry.dependencies] python = "^3.12" -aries-cloudagent = { version = "1.0.1" } +acapy-agent = { version = "1.1.0" } python-dateutil = "^2.8.2" bcrypt = "^4.2.0" mergedeep = "^1.3.4" typing-extensions = "4.8.0" anoncreds = "^0.2.0" -multitenant-provider = {git = "https://github.com/hyperledger/aries-acapy-plugins", rev = "1.0.1", subdirectory = "multitenant_provider"} +multitenant-provider = {git = "https://github.com/openwallet-foundation/acapy-plugins", rev = "1.1.0", subdirectory = "multitenant_provider"} [tool.poetry.dev-dependencies] black = "^24.10.0" diff --git a/scripts/docker-compose.yml b/scripts/docker-compose.yml index eea3a92d7..da362f699 100755 --- a/scripts/docker-compose.yml +++ b/scripts/docker-compose.yml @@ -163,7 +163,7 @@ services: - host.docker.internal:host-gateway endorser-agent: - image: ghcr.io/hyperledger/aries-cloudagent-python:py3.12-1.0.1 + image: ghcr.io/openwallet-foundation/acapy-agent:py3.12-1.1.0 depends_on: endorser-db: condition: service_healthy @@ -205,7 +205,7 @@ services: - host.docker.internal:host-gateway endorser-agent-1: - image: ghcr.io/hyperledger/aries-cloudagent-python:py3.12-1.0.1 + image: ghcr.io/openwallet-foundation/acapy-agent:py3.12-1.1.0 depends_on: endorser-db: condition: service_healthy From 41680b70460111f4ec4a2a141405ecdc2f91cb04 Mon Sep 17 00:00:00 2001 From: Lucas ONeil Date: Fri, 18 Oct 2024 14:31:20 -0700 Subject: [PATCH 11/31] Change imports to acapy_agent for OWF switch Signed-off-by: Lucas ONeil --- .../traction_innkeeper/v1_0/__init__.py | 8 +++---- .../v1_0/connections/__init__.py | 8 +++---- .../v1_0/connections/routes.py | 12 +++++----- .../v1_0/creddef_storage/__init__.py | 8 +++---- .../creddef_storage_service.py | 8 +++---- .../v1_0/creddef_storage/models.py | 4 ++-- .../v1_0/creddef_storage/routes.py | 10 ++++---- .../v1_0/endorser/__init__.py | 8 +++---- .../endorser/endorser_connection_service.py | 12 +++++----- .../v1_0/endorser/routes.py | 18 +++++++------- .../v1_0/innkeeper/__init__.py | 16 ++++++------- .../v1_0/innkeeper/models.py | 10 ++++---- .../v1_0/innkeeper/routes.py | 24 +++++++++---------- .../v1_0/innkeeper/tenant_manager.py | 14 +++++------ .../v1_0/innkeeper/utils.py | 4 ++-- .../traction_innkeeper/v1_0/oca/__init__.py | 16 ++++++------- .../traction_innkeeper/v1_0/oca/models.py | 4 ++-- .../v1_0/oca/oca_service.py | 12 +++++----- .../traction_innkeeper/v1_0/oca/routes.py | 12 +++++----- .../traction_innkeeper/v1_0/routes.py | 2 +- .../v1_0/schema_storage/__init__.py | 8 +++---- .../v1_0/schema_storage/models.py | 4 ++-- .../v1_0/schema_storage/routes.py | 10 ++++---- .../schema_storage/schema_storage_service.py | 18 +++++++------- .../v1_0/tenant/__init__.py | 10 ++++---- .../v1_0/tenant/holder_revocation_service.py | 10 ++++---- .../traction_innkeeper/v1_0/tenant/routes.py | 20 ++++++++-------- scripts/endorser-acapy-args.yml | 2 +- 28 files changed, 146 insertions(+), 146 deletions(-) diff --git a/plugins/traction_innkeeper/traction_innkeeper/v1_0/__init__.py b/plugins/traction_innkeeper/traction_innkeeper/v1_0/__init__.py index 779bfebcf..0d8784910 100644 --- a/plugins/traction_innkeeper/traction_innkeeper/v1_0/__init__.py +++ b/plugins/traction_innkeeper/traction_innkeeper/v1_0/__init__.py @@ -1,12 +1,12 @@ import logging -from aries_cloudagent.config.injection_context import InjectionContext +from acapy_agent.config.injection_context import InjectionContext -from aries_cloudagent.core.event_bus import EventBus -from aries_cloudagent.core.plugin_registry import PluginRegistry -from aries_cloudagent.core.protocol_registry import ProtocolRegistry +from acapy_agent.core.event_bus import EventBus +from acapy_agent.core.plugin_registry import PluginRegistry +from acapy_agent.core.protocol_registry import ProtocolRegistry from . import ( schema_storage, diff --git a/plugins/traction_innkeeper/traction_innkeeper/v1_0/connections/__init__.py b/plugins/traction_innkeeper/traction_innkeeper/v1_0/connections/__init__.py index fd84ad0ec..f390b6e8e 100644 --- a/plugins/traction_innkeeper/traction_innkeeper/v1_0/connections/__init__.py +++ b/plugins/traction_innkeeper/traction_innkeeper/v1_0/connections/__init__.py @@ -1,9 +1,9 @@ import logging -from aries_cloudagent.config.injection_context import InjectionContext -from aries_cloudagent.core.event_bus import EventBus -from aries_cloudagent.core.plugin_registry import PluginRegistry -from aries_cloudagent.core.protocol_registry import ProtocolRegistry +from acapy_agent.config.injection_context import InjectionContext +from acapy_agent.core.event_bus import EventBus +from acapy_agent.core.plugin_registry import PluginRegistry +from acapy_agent.core.protocol_registry import ProtocolRegistry LOGGER = logging.getLogger(__name__) diff --git a/plugins/traction_innkeeper/traction_innkeeper/v1_0/connections/routes.py b/plugins/traction_innkeeper/traction_innkeeper/v1_0/connections/routes.py index b7e1c434d..0b44034a0 100644 --- a/plugins/traction_innkeeper/traction_innkeeper/v1_0/connections/routes.py +++ b/plugins/traction_innkeeper/traction_innkeeper/v1_0/connections/routes.py @@ -2,13 +2,13 @@ from aiohttp import web from aiohttp_apispec import docs, match_info_schema, response_schema -from aries_cloudagent.admin.decorators.auth import tenant_authentication -from aries_cloudagent.admin.request_context import AdminRequestContext -from aries_cloudagent.connections.models.conn_record import ConnRecord -from aries_cloudagent.messaging.models.base import BaseModelError -from aries_cloudagent.protocols.connections.v1_0.routes import ( +from acapy_agent.admin.decorators.auth import tenant_authentication +from acapy_agent.admin.request_context import AdminRequestContext +from acapy_agent.connections.models.conn_record import ConnRecord +from acapy_agent.messaging.models.base import BaseModelError +from acapy_agent.protocols.connections.v1_0.routes import ( ConnectionsConnIdMatchInfoSchema, InvitationResultSchema) -from aries_cloudagent.storage.error import StorageNotFoundError +from acapy_agent.storage.error import StorageNotFoundError LOGGER = logging.getLogger(__name__) diff --git a/plugins/traction_innkeeper/traction_innkeeper/v1_0/creddef_storage/__init__.py b/plugins/traction_innkeeper/traction_innkeeper/v1_0/creddef_storage/__init__.py index cdfca8b4b..6e97b3133 100644 --- a/plugins/traction_innkeeper/traction_innkeeper/v1_0/creddef_storage/__init__.py +++ b/plugins/traction_innkeeper/traction_innkeeper/v1_0/creddef_storage/__init__.py @@ -1,10 +1,10 @@ import logging -from aries_cloudagent.config.injection_context import InjectionContext -from aries_cloudagent.core.event_bus import EventBus -from aries_cloudagent.core.plugin_registry import PluginRegistry +from acapy_agent.config.injection_context import InjectionContext +from acapy_agent.core.event_bus import EventBus +from acapy_agent.core.plugin_registry import PluginRegistry -from aries_cloudagent.core.protocol_registry import ProtocolRegistry +from acapy_agent.core.protocol_registry import ProtocolRegistry from .creddef_storage_service import CredDefStorageService, subscribe diff --git a/plugins/traction_innkeeper/traction_innkeeper/v1_0/creddef_storage/creddef_storage_service.py b/plugins/traction_innkeeper/traction_innkeeper/v1_0/creddef_storage/creddef_storage_service.py index bce212ca4..1c2be2516 100644 --- a/plugins/traction_innkeeper/traction_innkeeper/v1_0/creddef_storage/creddef_storage_service.py +++ b/plugins/traction_innkeeper/traction_innkeeper/v1_0/creddef_storage/creddef_storage_service.py @@ -1,13 +1,13 @@ import logging from typing import Optional -from aries_cloudagent.core.event_bus import EventBus, Event -from aries_cloudagent.core.profile import Profile -from aries_cloudagent.storage.error import StorageNotFoundError +from acapy_agent.core.event_bus import EventBus, Event +from acapy_agent.core.profile import Profile +from acapy_agent.storage.error import StorageNotFoundError from .models import CredDefStorageRecord -from aries_cloudagent.messaging.credential_definitions.util import ( +from acapy_agent.messaging.credential_definitions.util import ( EVENT_LISTENER_PATTERN as CREDDEF_EVENT_LISTENER_PATTERN, ) diff --git a/plugins/traction_innkeeper/traction_innkeeper/v1_0/creddef_storage/models.py b/plugins/traction_innkeeper/traction_innkeeper/v1_0/creddef_storage/models.py index 1868efefb..e8de23de3 100644 --- a/plugins/traction_innkeeper/traction_innkeeper/v1_0/creddef_storage/models.py +++ b/plugins/traction_innkeeper/traction_innkeeper/v1_0/creddef_storage/models.py @@ -1,7 +1,7 @@ from typing import Optional -from aries_cloudagent.messaging.models.base_record import BaseRecord, BaseRecordSchema -from aries_cloudagent.messaging.valid import ( +from acapy_agent.messaging.models.base_record import BaseRecord, BaseRecordSchema +from acapy_agent.messaging.valid import ( INDY_SCHEMA_ID_VALIDATE, INDY_SCHEMA_ID_EXAMPLE, INDY_REV_REG_SIZE_VALIDATE, diff --git a/plugins/traction_innkeeper/traction_innkeeper/v1_0/creddef_storage/routes.py b/plugins/traction_innkeeper/traction_innkeeper/v1_0/creddef_storage/routes.py index caf765b69..9b2c8421d 100644 --- a/plugins/traction_innkeeper/traction_innkeeper/v1_0/creddef_storage/routes.py +++ b/plugins/traction_innkeeper/traction_innkeeper/v1_0/creddef_storage/routes.py @@ -3,13 +3,13 @@ from aiohttp import web from aiohttp_apispec import docs, response_schema, match_info_schema -from aries_cloudagent.admin.request_context import AdminRequestContext +from acapy_agent.admin.request_context import AdminRequestContext -from aries_cloudagent.messaging.models.base import BaseModelError -from aries_cloudagent.messaging.models.openapi import OpenAPISchema +from acapy_agent.messaging.models.base import BaseModelError +from acapy_agent.messaging.models.openapi import OpenAPISchema -from aries_cloudagent.storage.error import StorageNotFoundError, StorageError -from aries_cloudagent.admin.decorators.auth import tenant_authentication +from acapy_agent.storage.error import StorageNotFoundError, StorageError +from acapy_agent.admin.decorators.auth import tenant_authentication from marshmallow import fields diff --git a/plugins/traction_innkeeper/traction_innkeeper/v1_0/endorser/__init__.py b/plugins/traction_innkeeper/traction_innkeeper/v1_0/endorser/__init__.py index f261deb7e..fa0e8a4b2 100644 --- a/plugins/traction_innkeeper/traction_innkeeper/v1_0/endorser/__init__.py +++ b/plugins/traction_innkeeper/traction_innkeeper/v1_0/endorser/__init__.py @@ -1,9 +1,9 @@ import logging -from aries_cloudagent.config.injection_context import InjectionContext -from aries_cloudagent.core.event_bus import EventBus -from aries_cloudagent.core.plugin_registry import PluginRegistry -from aries_cloudagent.core.protocol_registry import ProtocolRegistry +from acapy_agent.config.injection_context import InjectionContext +from acapy_agent.core.event_bus import EventBus +from acapy_agent.core.plugin_registry import PluginRegistry +from acapy_agent.core.protocol_registry import ProtocolRegistry from .endorser_connection_service import ( EndorserConnectionService, diff --git a/plugins/traction_innkeeper/traction_innkeeper/v1_0/endorser/endorser_connection_service.py b/plugins/traction_innkeeper/traction_innkeeper/v1_0/endorser/endorser_connection_service.py index 7fbd6b22d..48784c1a4 100644 --- a/plugins/traction_innkeeper/traction_innkeeper/v1_0/endorser/endorser_connection_service.py +++ b/plugins/traction_innkeeper/traction_innkeeper/v1_0/endorser/endorser_connection_service.py @@ -1,12 +1,12 @@ import logging import re -from aries_cloudagent.config.injector import Injector -from aries_cloudagent.connections.models.conn_record import ConnRecord -from aries_cloudagent.core.event_bus import Event, EventBus -from aries_cloudagent.core.profile import Profile -from aries_cloudagent.protocols.didexchange.v1_0.manager import DIDXManager -from aries_cloudagent.protocols.endorse_transaction.v1_0.manager import ( +from acapy_agent.config.injector import Injector +from acapy_agent.connections.models.conn_record import ConnRecord +from acapy_agent.core.event_bus import Event, EventBus +from acapy_agent.core.profile import Profile +from acapy_agent.protocols.didexchange.v1_0.manager import DIDXManager +from acapy_agent.protocols.endorse_transaction.v1_0.manager import ( TransactionManager, ) diff --git a/plugins/traction_innkeeper/traction_innkeeper/v1_0/endorser/routes.py b/plugins/traction_innkeeper/traction_innkeeper/v1_0/endorser/routes.py index 9543e5166..b168f58ba 100644 --- a/plugins/traction_innkeeper/traction_innkeeper/v1_0/endorser/routes.py +++ b/plugins/traction_innkeeper/traction_innkeeper/v1_0/endorser/routes.py @@ -3,18 +3,18 @@ from aiohttp import web from aiohttp_apispec import docs, response_schema, request_schema -from aries_cloudagent.admin.request_context import AdminRequestContext -from aries_cloudagent.connections.models.conn_record import ConnRecordSchema -from aries_cloudagent.messaging.models.base import BaseModelError -from aries_cloudagent.messaging.models.openapi import OpenAPISchema -from aries_cloudagent.protocols.didexchange.v1_0.manager import DIDXManagerError -from aries_cloudagent.protocols.endorse_transaction.v1_0.routes import ( +from acapy_agent.admin.request_context import AdminRequestContext +from acapy_agent.connections.models.conn_record import ConnRecordSchema +from acapy_agent.messaging.models.base import BaseModelError +from acapy_agent.messaging.models.openapi import OpenAPISchema +from acapy_agent.protocols.didexchange.v1_0.manager import DIDXManagerError +from acapy_agent.protocols.endorse_transaction.v1_0.routes import ( EndorserInfoSchema, ) -from aries_cloudagent.storage.error import StorageNotFoundError, StorageError -from aries_cloudagent.wallet.error import WalletError -from aries_cloudagent.admin.decorators.auth import tenant_authentication +from acapy_agent.storage.error import StorageNotFoundError, StorageError +from acapy_agent.wallet.error import WalletError +from acapy_agent.admin.decorators.auth import tenant_authentication from marshmallow import fields from .endorser_connection_service import EndorserConnectionService diff --git a/plugins/traction_innkeeper/traction_innkeeper/v1_0/innkeeper/__init__.py b/plugins/traction_innkeeper/traction_innkeeper/v1_0/innkeeper/__init__.py index b4d899797..f5ba178be 100644 --- a/plugins/traction_innkeeper/traction_innkeeper/v1_0/innkeeper/__init__.py +++ b/plugins/traction_innkeeper/traction_innkeeper/v1_0/innkeeper/__init__.py @@ -1,14 +1,14 @@ import logging import re -from aries_cloudagent.config.injection_context import InjectionContext -from aries_cloudagent.connections.models.conn_record import ConnRecord - -from aries_cloudagent.core.event_bus import EventBus, Event -from aries_cloudagent.core.plugin_registry import PluginRegistry -from aries_cloudagent.core.profile import Profile -from aries_cloudagent.core.protocol_registry import ProtocolRegistry -from aries_cloudagent.core.util import STARTUP_EVENT_PATTERN +from acapy_agent.config.injection_context import InjectionContext +from acapy_agent.connections.models.conn_record import ConnRecord + +from acapy_agent.core.event_bus import EventBus, Event +from acapy_agent.core.plugin_registry import PluginRegistry +from acapy_agent.core.profile import Profile +from acapy_agent.core.protocol_registry import ProtocolRegistry +from acapy_agent.core.util import STARTUP_EVENT_PATTERN from .config import get_config from .tenant_manager import TenantManager diff --git a/plugins/traction_innkeeper/traction_innkeeper/v1_0/innkeeper/models.py b/plugins/traction_innkeeper/traction_innkeeper/v1_0/innkeeper/models.py index d414ee6ab..a8b1eeff4 100644 --- a/plugins/traction_innkeeper/traction_innkeeper/v1_0/innkeeper/models.py +++ b/plugins/traction_innkeeper/traction_innkeeper/v1_0/innkeeper/models.py @@ -3,11 +3,11 @@ from datetime import datetime, timezone from typing import Optional, Union, List -from aries_cloudagent.core.profile import ProfileSession -from aries_cloudagent.messaging.models.base_record import BaseRecord, BaseRecordSchema -from aries_cloudagent.messaging.util import datetime_to_str, str_to_datetime -from aries_cloudagent.messaging.valid import UUIDFour -from aries_cloudagent.storage.error import StorageDuplicateError, StorageNotFoundError +from acapy_agent.core.profile import ProfileSession +from acapy_agent.messaging.models.base_record import BaseRecord, BaseRecordSchema +from acapy_agent.messaging.util import datetime_to_str, str_to_datetime +from acapy_agent.messaging.valid import UUIDFour +from acapy_agent.storage.error import StorageDuplicateError, StorageNotFoundError from marshmallow import fields, EXCLUDE, validate ENDORSER_LEDGER_CONFIG_EXAMPLE = { diff --git a/plugins/traction_innkeeper/traction_innkeeper/v1_0/innkeeper/routes.py b/plugins/traction_innkeeper/traction_innkeeper/v1_0/innkeeper/routes.py index dd5e28e7a..dc29a7653 100644 --- a/plugins/traction_innkeeper/traction_innkeeper/v1_0/innkeeper/routes.py +++ b/plugins/traction_innkeeper/traction_innkeeper/v1_0/innkeeper/routes.py @@ -10,21 +10,21 @@ response_schema, use_kwargs, ) -from aries_cloudagent.admin.request_context import AdminRequestContext -from aries_cloudagent.admin.routes import AdminConfigSchema -from aries_cloudagent.messaging.models.base import BaseModelError -from aries_cloudagent.messaging.models.openapi import OpenAPISchema -from aries_cloudagent.messaging.valid import JSONWebToken, UUIDFour -from aries_cloudagent.multitenant.admin.routes import ( +from acapy_agent.admin.request_context import AdminRequestContext +from acapy_agent.admin.routes import AdminConfigSchema +from acapy_agent.messaging.models.base import BaseModelError +from acapy_agent.messaging.models.openapi import OpenAPISchema +from acapy_agent.messaging.valid import JSONWebToken, UUIDFour +from acapy_agent.multitenant.admin.routes import ( CreateWalletTokenRequestSchema, CreateWalletTokenResponseSchema, ) -from aries_cloudagent.multitenant.base import BaseMultitenantManager -from aries_cloudagent.multitenant.error import WalletKeyMissingError -from aries_cloudagent.storage.error import StorageError, StorageNotFoundError -from aries_cloudagent.version import __version__ -from aries_cloudagent.wallet.error import WalletSettingsError -from aries_cloudagent.wallet.models.wallet_record import WalletRecord +from acapy_agent.multitenant.base import BaseMultitenantManager +from acapy_agent.multitenant.error import WalletKeyMissingError +from acapy_agent.storage.error import StorageError, StorageNotFoundError +from acapy_agent.version import __version__ +from acapy_agent.wallet.error import WalletSettingsError +from acapy_agent.wallet.models.wallet_record import WalletRecord from multitenant_provider.v1_0.routes import plugin_wallet_create_token from marshmallow import fields, validate diff --git a/plugins/traction_innkeeper/traction_innkeeper/v1_0/innkeeper/tenant_manager.py b/plugins/traction_innkeeper/traction_innkeeper/v1_0/innkeeper/tenant_manager.py index 87cbc341e..a838d56a8 100644 --- a/plugins/traction_innkeeper/traction_innkeeper/v1_0/innkeeper/tenant_manager.py +++ b/plugins/traction_innkeeper/traction_innkeeper/v1_0/innkeeper/tenant_manager.py @@ -3,16 +3,16 @@ import logging from typing import List, Optional -from aries_cloudagent.core.error import BaseError -from aries_cloudagent.core.profile import Profile -from aries_cloudagent.messaging.models.base import BaseModelError -from aries_cloudagent.multitenant.base import BaseMultitenantManager +from acapy_agent.core.error import BaseError +from acapy_agent.core.profile import Profile +from acapy_agent.messaging.models.base import BaseModelError +from acapy_agent.multitenant.base import BaseMultitenantManager -# from aries_cloudagent.ledger.multiple_ledger.base_manager import ( +# from acapy_agent.ledger.multiple_ledger.base_manager import ( # BaseMultipleLedgerManager, # ) -from aries_cloudagent.storage.error import StorageError, StorageNotFoundError -from aries_cloudagent.wallet.models.wallet_record import WalletRecord +from acapy_agent.storage.error import StorageError, StorageNotFoundError +from acapy_agent.wallet.models.wallet_record import WalletRecord from .config import TractionInnkeeperConfig, InnkeeperWalletConfig, ReservationConfig from .models import TenantAuthenticationApiRecord, TenantRecord, ReservationRecord diff --git a/plugins/traction_innkeeper/traction_innkeeper/v1_0/innkeeper/utils.py b/plugins/traction_innkeeper/traction_innkeeper/v1_0/innkeeper/utils.py index 065cb010f..1775a104a 100644 --- a/plugins/traction_innkeeper/traction_innkeeper/v1_0/innkeeper/utils.py +++ b/plugins/traction_innkeeper/traction_innkeeper/v1_0/innkeeper/utils.py @@ -3,8 +3,8 @@ import uuid from datetime import datetime, timedelta -from aries_cloudagent.core.profile import Profile -from aries_cloudagent.messaging.models.openapi import OpenAPISchema +from acapy_agent.core.profile import Profile +from acapy_agent.messaging.models.openapi import OpenAPISchema from marshmallow import fields from .models import ReservationRecord, TenantAuthenticationApiRecord, TenantRecord diff --git a/plugins/traction_innkeeper/traction_innkeeper/v1_0/oca/__init__.py b/plugins/traction_innkeeper/traction_innkeeper/v1_0/oca/__init__.py index 23c3ef5a5..30e6cb8b9 100644 --- a/plugins/traction_innkeeper/traction_innkeeper/v1_0/oca/__init__.py +++ b/plugins/traction_innkeeper/traction_innkeeper/v1_0/oca/__init__.py @@ -1,13 +1,13 @@ import logging -from aries_cloudagent.admin.base_server import BaseAdminServer -from aries_cloudagent.admin.server import AdminServer -from aries_cloudagent.config.injection_context import InjectionContext -from aries_cloudagent.core.event_bus import EventBus, Event -from aries_cloudagent.core.plugin_registry import PluginRegistry -from aries_cloudagent.core.profile import Profile -from aries_cloudagent.core.protocol_registry import ProtocolRegistry -from aries_cloudagent.core.util import STARTUP_EVENT_PATTERN +from acapy_agent.admin.base_server import BaseAdminServer +from acapy_agent.admin.server import AdminServer +from acapy_agent.config.injection_context import InjectionContext +from acapy_agent.core.event_bus import EventBus, Event +from acapy_agent.core.plugin_registry import PluginRegistry +from acapy_agent.core.profile import Profile +from acapy_agent.core.protocol_registry import ProtocolRegistry +from acapy_agent.core.util import STARTUP_EVENT_PATTERN from .oca_service import OcaService diff --git a/plugins/traction_innkeeper/traction_innkeeper/v1_0/oca/models.py b/plugins/traction_innkeeper/traction_innkeeper/v1_0/oca/models.py index 89a16d909..970f92168 100644 --- a/plugins/traction_innkeeper/traction_innkeeper/v1_0/oca/models.py +++ b/plugins/traction_innkeeper/traction_innkeeper/v1_0/oca/models.py @@ -1,7 +1,7 @@ from typing import Optional -from aries_cloudagent.messaging.models.base_record import BaseRecord, BaseRecordSchema -from aries_cloudagent.messaging.valid import ( +from acapy_agent.messaging.models.base_record import BaseRecord, BaseRecordSchema +from acapy_agent.messaging.valid import ( INDY_SCHEMA_ID_VALIDATE, INDY_SCHEMA_ID_EXAMPLE, INDY_CRED_DEF_ID_VALIDATE, diff --git a/plugins/traction_innkeeper/traction_innkeeper/v1_0/oca/oca_service.py b/plugins/traction_innkeeper/traction_innkeeper/v1_0/oca/oca_service.py index 4015836d6..d4e31a0e0 100644 --- a/plugins/traction_innkeeper/traction_innkeeper/v1_0/oca/oca_service.py +++ b/plugins/traction_innkeeper/traction_innkeeper/v1_0/oca/oca_service.py @@ -1,12 +1,12 @@ import logging from typing import Optional -from aries_cloudagent.core.error import BaseError -from aries_cloudagent.core.profile import Profile -from aries_cloudagent.storage.error import StorageDuplicateError, StorageNotFoundError -from aries_cloudagent.wallet.base import BaseWallet -from aries_cloudagent.wallet.did_info import DIDInfo -from aries_cloudagent.wallet.error import WalletError +from acapy_agent.core.error import BaseError +from acapy_agent.core.profile import Profile +from acapy_agent.storage.error import StorageDuplicateError, StorageNotFoundError +from acapy_agent.wallet.base import BaseWallet +from acapy_agent.wallet.did_info import DIDInfo +from acapy_agent.wallet.error import WalletError from marshmallow import ValidationError from .models import OcaRecord diff --git a/plugins/traction_innkeeper/traction_innkeeper/v1_0/oca/routes.py b/plugins/traction_innkeeper/traction_innkeeper/v1_0/oca/routes.py index 464173491..af440c493 100644 --- a/plugins/traction_innkeeper/traction_innkeeper/v1_0/oca/routes.py +++ b/plugins/traction_innkeeper/traction_innkeeper/v1_0/oca/routes.py @@ -9,18 +9,18 @@ querystring_schema, match_info_schema, ) -from aries_cloudagent.admin.request_context import AdminRequestContext -from aries_cloudagent.messaging.models.base import BaseModelError -from aries_cloudagent.messaging.models.openapi import OpenAPISchema -from aries_cloudagent.messaging.valid import ( +from acapy_agent.admin.request_context import AdminRequestContext +from acapy_agent.messaging.models.base import BaseModelError +from acapy_agent.messaging.models.openapi import OpenAPISchema +from acapy_agent.messaging.valid import ( INDY_SCHEMA_ID_EXAMPLE, INDY_SCHEMA_ID_VALIDATE, INDY_CRED_DEF_ID_EXAMPLE, INDY_CRED_DEF_ID_VALIDATE, UUIDFour, ) -from aries_cloudagent.storage.error import StorageNotFoundError, StorageError -from aries_cloudagent.admin.decorators.auth import tenant_authentication +from acapy_agent.storage.error import StorageNotFoundError, StorageError +from acapy_agent.admin.decorators.auth import tenant_authentication from marshmallow import fields, ValidationError from . import OcaService diff --git a/plugins/traction_innkeeper/traction_innkeeper/v1_0/routes.py b/plugins/traction_innkeeper/traction_innkeeper/v1_0/routes.py index cfcf91f0a..d791c0ec2 100644 --- a/plugins/traction_innkeeper/traction_innkeeper/v1_0/routes.py +++ b/plugins/traction_innkeeper/traction_innkeeper/v1_0/routes.py @@ -1,7 +1,7 @@ import logging from aiohttp import web -from aries_cloudagent.utils.classloader import ClassLoader +from acapy_agent.utils.classloader import ClassLoader from . import MODULES diff --git a/plugins/traction_innkeeper/traction_innkeeper/v1_0/schema_storage/__init__.py b/plugins/traction_innkeeper/traction_innkeeper/v1_0/schema_storage/__init__.py index 6d14931d2..08df3abcc 100644 --- a/plugins/traction_innkeeper/traction_innkeeper/v1_0/schema_storage/__init__.py +++ b/plugins/traction_innkeeper/traction_innkeeper/v1_0/schema_storage/__init__.py @@ -1,9 +1,9 @@ import logging -from aries_cloudagent.config.injection_context import InjectionContext -from aries_cloudagent.core.event_bus import EventBus -from aries_cloudagent.core.plugin_registry import PluginRegistry -from aries_cloudagent.core.protocol_registry import ProtocolRegistry +from acapy_agent.config.injection_context import InjectionContext +from acapy_agent.core.event_bus import EventBus +from acapy_agent.core.plugin_registry import PluginRegistry +from acapy_agent.core.protocol_registry import ProtocolRegistry from .schema_storage_service import SchemaStorageService, subscribe diff --git a/plugins/traction_innkeeper/traction_innkeeper/v1_0/schema_storage/models.py b/plugins/traction_innkeeper/traction_innkeeper/v1_0/schema_storage/models.py index 2cde3c33f..14dc4537f 100644 --- a/plugins/traction_innkeeper/traction_innkeeper/v1_0/schema_storage/models.py +++ b/plugins/traction_innkeeper/traction_innkeeper/v1_0/schema_storage/models.py @@ -1,7 +1,7 @@ from typing import Optional -from aries_cloudagent.messaging.models.base_record import BaseRecord, BaseRecordSchema -from aries_cloudagent.messaging.valid import ( +from acapy_agent.messaging.models.base_record import BaseRecord, BaseRecordSchema +from acapy_agent.messaging.valid import ( INDY_SCHEMA_ID_EXAMPLE, INDY_SCHEMA_ID_VALIDATE, ) diff --git a/plugins/traction_innkeeper/traction_innkeeper/v1_0/schema_storage/routes.py b/plugins/traction_innkeeper/traction_innkeeper/v1_0/schema_storage/routes.py index fdcd17874..48aeb8771 100644 --- a/plugins/traction_innkeeper/traction_innkeeper/v1_0/schema_storage/routes.py +++ b/plugins/traction_innkeeper/traction_innkeeper/v1_0/schema_storage/routes.py @@ -3,13 +3,13 @@ from aiohttp import web from aiohttp_apispec import docs, response_schema, match_info_schema, request_schema -from aries_cloudagent.admin.request_context import AdminRequestContext +from acapy_agent.admin.request_context import AdminRequestContext -from aries_cloudagent.messaging.models.base import BaseModelError -from aries_cloudagent.messaging.models.openapi import OpenAPISchema -from aries_cloudagent.admin.decorators.auth import tenant_authentication +from acapy_agent.messaging.models.base import BaseModelError +from acapy_agent.messaging.models.openapi import OpenAPISchema +from acapy_agent.admin.decorators.auth import tenant_authentication -from aries_cloudagent.storage.error import StorageNotFoundError, StorageError +from acapy_agent.storage.error import StorageNotFoundError, StorageError from marshmallow import fields from .models import SchemaStorageRecordSchema diff --git a/plugins/traction_innkeeper/traction_innkeeper/v1_0/schema_storage/schema_storage_service.py b/plugins/traction_innkeeper/traction_innkeeper/v1_0/schema_storage/schema_storage_service.py index aa051ac9b..9b0d32e4d 100644 --- a/plugins/traction_innkeeper/traction_innkeeper/v1_0/schema_storage/schema_storage_service.py +++ b/plugins/traction_innkeeper/traction_innkeeper/v1_0/schema_storage/schema_storage_service.py @@ -1,20 +1,20 @@ import logging from typing import Optional -from aries_cloudagent.core.event_bus import Event, EventBus -from aries_cloudagent.core.profile import Profile -from aries_cloudagent.ledger.error import LedgerError -from aries_cloudagent.ledger.multiple_ledger.ledger_requests_executor import ( +from acapy_agent.core.event_bus import Event, EventBus +from acapy_agent.core.profile import Profile +from acapy_agent.ledger.error import LedgerError +from acapy_agent.ledger.multiple_ledger.ledger_requests_executor import ( IndyLedgerRequestsExecutor, GET_SCHEMA, ) -from aries_cloudagent.messaging.schemas.util import SCHEMA_SENT_RECORD_TYPE -from aries_cloudagent.multitenant.base import BaseMultitenantManager -from aries_cloudagent.storage.base import BaseStorage -from aries_cloudagent.storage.error import StorageNotFoundError +from acapy_agent.messaging.schemas.util import SCHEMA_SENT_RECORD_TYPE +from acapy_agent.multitenant.base import BaseMultitenantManager +from acapy_agent.storage.base import BaseStorage +from acapy_agent.storage.error import StorageNotFoundError from .models import SchemaStorageRecord -from aries_cloudagent.messaging.schemas.util import ( +from acapy_agent.messaging.schemas.util import ( EVENT_LISTENER_PATTERN as SCHEMAS_EVENT_LISTENER_PATTERN, ) diff --git a/plugins/traction_innkeeper/traction_innkeeper/v1_0/tenant/__init__.py b/plugins/traction_innkeeper/traction_innkeeper/v1_0/tenant/__init__.py index 7bd017f3f..1ebc257fe 100644 --- a/plugins/traction_innkeeper/traction_innkeeper/v1_0/tenant/__init__.py +++ b/plugins/traction_innkeeper/traction_innkeeper/v1_0/tenant/__init__.py @@ -1,11 +1,11 @@ from contextvars import ContextVar import logging -from aries_cloudagent.config.injection_context import InjectionContext -from aries_cloudagent.core.event_bus import EventBus -from aries_cloudagent.core.plugin_registry import PluginRegistry -from aries_cloudagent.core.protocol_registry import ProtocolRegistry -from aries_cloudagent.config.logging import TimedRotatingFileMultiProcessHandler +from acapy_agent.config.injection_context import InjectionContext +from acapy_agent.core.event_bus import EventBus +from acapy_agent.core.plugin_registry import PluginRegistry +from acapy_agent.core.protocol_registry import ProtocolRegistry +from acapy_agent.config.logging import TimedRotatingFileMultiProcessHandler from pythonjsonlogger import jsonlogger diff --git a/plugins/traction_innkeeper/traction_innkeeper/v1_0/tenant/holder_revocation_service.py b/plugins/traction_innkeeper/traction_innkeeper/v1_0/tenant/holder_revocation_service.py index 56d87323e..8e75a7f9a 100644 --- a/plugins/traction_innkeeper/traction_innkeeper/v1_0/tenant/holder_revocation_service.py +++ b/plugins/traction_innkeeper/traction_innkeeper/v1_0/tenant/holder_revocation_service.py @@ -1,11 +1,11 @@ import logging import re -from aries_cloudagent.core.event_bus import EventBus, Event -from aries_cloudagent.core.profile import Profile -from aries_cloudagent.messaging.models.base import BaseModelError -from aries_cloudagent.protocols.issue_credential.v1_0 import V10CredentialExchange -from aries_cloudagent.storage.error import StorageError, StorageNotFoundError +from acapy_agent.core.event_bus import EventBus, Event +from acapy_agent.core.profile import Profile +from acapy_agent.messaging.models.base import BaseModelError +from acapy_agent.protocols.issue_credential.v1_0 import V10CredentialExchange +from acapy_agent.storage.error import StorageError, StorageNotFoundError LOGGER = logging.getLogger(__name__) REVOCATION_NOTIFICATION_EVENT_PATTERN = re.compile( diff --git a/plugins/traction_innkeeper/traction_innkeeper/v1_0/tenant/routes.py b/plugins/traction_innkeeper/traction_innkeeper/v1_0/tenant/routes.py index 5d34b1c97..1d1f345d7 100644 --- a/plugins/traction_innkeeper/traction_innkeeper/v1_0/tenant/routes.py +++ b/plugins/traction_innkeeper/traction_innkeeper/v1_0/tenant/routes.py @@ -8,23 +8,23 @@ response_schema, request_schema, ) -from aries_cloudagent.admin.request_context import AdminRequestContext -from aries_cloudagent.admin.routes import AdminConfigSchema -from aries_cloudagent.messaging.models.openapi import OpenAPISchema -from aries_cloudagent.multitenant.admin.routes import ( +from acapy_agent.admin.request_context import AdminRequestContext +from acapy_agent.admin.routes import AdminConfigSchema +from acapy_agent.messaging.models.openapi import OpenAPISchema +from acapy_agent.multitenant.admin.routes import ( format_wallet_record, UpdateWalletRequestSchema, get_extra_settings_dict_per_tenant, ) -from aries_cloudagent.multitenant.base import BaseMultitenantManager -from aries_cloudagent.storage.error import StorageNotFoundError -from aries_cloudagent.version import __version__ -from aries_cloudagent.wallet.models.wallet_record import ( +from acapy_agent.multitenant.base import BaseMultitenantManager +from acapy_agent.storage.error import StorageNotFoundError +from acapy_agent.version import __version__ +from acapy_agent.wallet.models.wallet_record import ( WalletRecordSchema, WalletRecord, ) -from aries_cloudagent.admin import server -from aries_cloudagent.admin.decorators.auth import tenant_authentication +from acapy_agent.admin import server +from acapy_agent.admin.decorators.auth import tenant_authentication from marshmallow import fields, validate from ..innkeeper.routes import ( diff --git a/scripts/endorser-acapy-args.yml b/scripts/endorser-acapy-args.yml index a172b38c6..986ce9e25 100755 --- a/scripts/endorser-acapy-args.yml +++ b/scripts/endorser-acapy-args.yml @@ -5,7 +5,7 @@ auto-ping-connection: true auto-provision: true monitor-ping: true public-invites: true -plugin: 'aries_cloudagent.messaging.jsonld' +plugin: 'acapy_agent.messaging.jsonld' outbound-transport: http log-level: info endorser-protocol-role: endorser From 32dea496ae9681b52259bdbaaffb012b2d87070e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Emiliano=20Su=C3=B1=C3=A9?= Date: Tue, 29 Oct 2024 12:33:22 -0700 Subject: [PATCH 12/31] Prepare 1.0.0 release (#1422) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Emiliano Suñé --- charts/traction/Chart.yaml | 2 +- charts/traction/README.md | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/charts/traction/Chart.yaml b/charts/traction/Chart.yaml index d95daba9f..0b79bf8c2 100644 --- a/charts/traction/Chart.yaml +++ b/charts/traction/Chart.yaml @@ -3,7 +3,7 @@ name: traction description: The Traction service allows organizations to verify, hold, and issue verifiable credentials. The Traction Tenant UI allows tenants to manage their agent. type: application version: 0.3.4 -appVersion: 0.5.1 +appVersion: 1.0.0 home: "https://github.com/bcgov/traction" sources: ["https://github.com/bcgov/traction"] icon: "https://github.com/bcgov/traction/raw/main/docs/assets/readme-logo.png" diff --git a/charts/traction/README.md b/charts/traction/README.md index a4bd89807..bdede5c51 100644 --- a/charts/traction/README.md +++ b/charts/traction/README.md @@ -1,6 +1,6 @@ # Traction -![version: 0.3.4](https://img.shields.io/badge/Version-0.3.4-informational?style=flat-square) ![Type: application](https://img.shields.io/badge/Type-application-informational?style=flat-square) ![AppVersion: 0.5.1](https://img.shields.io/badge/AppVersion-0.5.1-informational?style=flat-square) +![version: 0.3.4](https://img.shields.io/badge/Version-0.3.4-informational?style=flat-square) ![Type: application](https://img.shields.io/badge/Type-application-informational?style=flat-square) ![AppVersion: 1.0.0](https://img.shields.io/badge/AppVersion-1.0.0-informational?style=flat-square) The Traction service allows organizations to verify, hold, and issue verifiable credentials. From 81f5cbcf52337c8c0f3c7c3af0b4c2577a7f9fab Mon Sep 17 00:00:00 2001 From: Gavin Jaeger-Freeborn Date: Mon, 21 Oct 2024 13:52:41 -0700 Subject: [PATCH 13/31] identify and display which ledgers are read only Signed-off-by: Gavin Jaeger-Freeborn --- .../components/profile/issuance/Endorser.vue | 14 ++- .../profile/issuance/EndorserConnect.vue | 11 -- .../components/profile/issuance/Issuance.vue | 4 +- .../frontend/src/plugins/i18n/locales/en.json | 1 + .../frontend/src/store/tenantStore.ts | 110 +++++++++++++++++- 5 files changed, 123 insertions(+), 17 deletions(-) diff --git a/services/tenant-ui/frontend/src/components/profile/issuance/Endorser.vue b/services/tenant-ui/frontend/src/components/profile/issuance/Endorser.vue index 85a1be591..e21c4c92a 100644 --- a/services/tenant-ui/frontend/src/components/profile/issuance/Endorser.vue +++ b/services/tenant-ui/frontend/src/components/profile/issuance/Endorser.vue @@ -38,6 +38,13 @@ + + +
@@ -84,13 +91,14 @@ import EndorserConnect from './EndorserConnect.vue'; const configStore = useConfigStore(); const tenantStore = useTenantStore(); const { config } = storeToRefs(configStore); -const { endorserConnection, endorserInfo, tenantConfig, loading } = +const { endorserConnection, endorserInfo, tenantConfig, loading, serverConfig} = storeToRefs(tenantStore); -const endorserList = tenantConfig.value.connect_to_endorser.map( +const endorserList = serverConfig.value.config["ledger.ledger_config_list"].map( (config: any) => ({ - ledger_id: config.ledger_id, + ledger_id: config.id, endorser_alias: config.endorser_alias, + read_only: config.read_only, }) ); diff --git a/services/tenant-ui/frontend/src/components/profile/issuance/EndorserConnect.vue b/services/tenant-ui/frontend/src/components/profile/issuance/EndorserConnect.vue index 17f336edd..ce0066286 100644 --- a/services/tenant-ui/frontend/src/components/profile/issuance/EndorserConnect.vue +++ b/services/tenant-ui/frontend/src/components/profile/issuance/EndorserConnect.vue @@ -15,17 +15,6 @@ text @click="switchLedger($event)" /> -
-
{{ $t('common.endorser') }}
+
{{ $t('common.ledgers') }}
@@ -49,6 +49,7 @@ import { useTenantStore } from '@/store'; import { storeToRefs } from 'pinia'; // Other Components import Endorser from './Endorser.vue'; +import ReadOnlyLedger from './ReadOnlyLedger.vue'; import PublicDid from './PublicDid.vue'; import TaaAcceptance from './TaaAcceptance.vue'; import { useToast } from 'vue-toastification'; @@ -69,6 +70,7 @@ const errLoading = ref(false); const loadIssuer = async () => { try { await Promise.all([ + tenantStore.getServerConfig(), tenantStore.getIssuanceStatus(), tenantStore.getWalletcDids(), tenantStore.getTransactions(), diff --git a/services/tenant-ui/frontend/src/plugins/i18n/locales/en.json b/services/tenant-ui/frontend/src/plugins/i18n/locales/en.json index 3374d377a..b97bd6844 100644 --- a/services/tenant-ui/frontend/src/plugins/i18n/locales/en.json +++ b/services/tenant-ui/frontend/src/plugins/i18n/locales/en.json @@ -67,6 +67,7 @@ "hideSuspended": "Hide Suspended", "invitationUrl": "Invitation URL", "json": "JSON", + "ledgers": "Ledgers", "loading": "Loading data. Please wait...", "logout": "Logout", "name": "Name", diff --git a/services/tenant-ui/frontend/src/store/tenantStore.ts b/services/tenant-ui/frontend/src/store/tenantStore.ts index f0ff39e99..2a18fe961 100644 --- a/services/tenant-ui/frontend/src/store/tenantStore.ts +++ b/services/tenant-ui/frontend/src/store/tenantStore.ts @@ -27,6 +27,111 @@ import { useTokenStore } from './tokenStore'; import { fetchItem } from './utils/fetchItem'; import { fetchList } from './utils'; +interface ServerConfig { + config: { + debug: { + auto_respond_credential_request: boolean; + auto_respond_presentation_proposal: boolean; + auto_store_credential: boolean; + auto_verify_presentation: boolean; + auto_accept_invites: boolean; + auto_accept_requests: boolean; + auto_respond_messages: boolean; + monitor_ping: boolean; + }; + external_plugins: Array; + plugin_config: { + multitenant_provider: { + manager: { + class_name: string; + always_check_provided_wallet_key: boolean; + }; + errors: { + on_unneeded_wallet_key: boolean; + }; + token_expiry: { + units: string; + amount: number; + }; + }; + traction_innkeeper: { + reservation: { + auto_approve: boolean; + expiry_minutes: number; + auto_issuer: boolean; + }; + }; + basicmessage_storage: { + wallet_enabled: boolean; + }; + }; + default_endpoint: string; + additional_endpoints: Array; + tails_server_base_url: string; + tails_server_upload_url: string; + revocation: { + notify: boolean; + monitor_notification: boolean; + anoncreds_legacy_support: string; + }; + ledger: { + ledger_config_list: Array<{ + id: string; + is_production: boolean; + is_write: boolean; + genesis_transactions: string; + keepalive: number; + read_only: boolean; + socks_proxy: any; + pool_name: string; + endorser_alias: string; + endorser_did: string; + }>; + keepalive: number; + read_only: boolean; + write_ledger: 'bcovrin-test'; + }; + log: { level: string }; + auto_ping_connection: boolean; + trace: { + target: string; + tag: string; + label: string; + }; + preserve_exchange_records: boolean; + emit_new_didcomm_prefix: boolean; + emit_new_didcomm_mime_type: boolean; + auto_provision: boolean; + transport: { + inbound_configs: Array>; + 'transport.outbound_configs': ['http']; + enable_undelivered_queue: boolean; + max_message_size: number; + max_outbound_retry: number; + ws: { timeout_interval: number }; + }; + wallet: { type: string }; + multitenant: { + enabled: boolean; + admin_enabled: boolean; + wallet_type: string; + base_wallet_routes: Array; + }; + endorser: { + author: boolean; + endorser: boolean; + auto_endorse: boolean; + auto_write: boolean; + auto_create_rev_reg: boolean; + auto_promote_author_did: boolean; + auto_request: boolean; + endorser_alias: string; + endorser_public_did: string; + }; + version: string; + }; +} + export const useTenantStore = defineStore('tenant', () => { // state const tenant: any = ref(null); @@ -38,7 +143,7 @@ export const useTenantStore = defineStore('tenant', () => { const publicDid: any = ref(null); const writeLedger: any = ref(null); const publicDidRegistrationProgress: Ref = ref(''); - const serverConfig: any = ref(null); + const serverConfig: Ref = ref(null); const taa: Ref = ref(null); const tenantConfig: any = ref(null); const tenantWallet: any = ref(null); @@ -115,13 +220,14 @@ export const useTenantStore = defineStore('tenant', () => { } async function getServerConfig() { - loading.value = true; + // loading.value = true; serverConfig.value = await fetchItem( API_PATH.TENANT_SERVER_CONFIG, '', error, ref(false) ); + // loading.value = false; } async function getIssuanceStatus() { From 8c9af181c15c8035829af87440c9ca7694edaa75 Mon Sep 17 00:00:00 2001 From: Gavin Jaeger-Freeborn Date: Mon, 21 Oct 2024 15:34:45 -0700 Subject: [PATCH 14/31] fixed type errors and linting issues Signed-off-by: Gavin Jaeger-Freeborn --- .../frontend/public/forms/reservation.json | 2 +- .../frontend/src/components/about/Acapy.vue | 7 ++-- .../components/profile/issuance/Endorser.vue | 42 ++++++++++++++----- .../frontend/src/plugins/i18n/locales/fr.json | 2 +- .../frontend/src/plugins/i18n/locales/ja.json | 2 +- .../frontend/src/store/tenantStore.ts | 35 ++++++++-------- 6 files changed, 55 insertions(+), 35 deletions(-) diff --git a/services/tenant-ui/frontend/public/forms/reservation.json b/services/tenant-ui/frontend/public/forms/reservation.json index 72aba3eca..aa19227eb 100644 --- a/services/tenant-ui/frontend/public/forms/reservation.json +++ b/services/tenant-ui/frontend/public/forms/reservation.json @@ -35,4 +35,4 @@ } ] } -} \ No newline at end of file +} diff --git a/services/tenant-ui/frontend/src/components/about/Acapy.vue b/services/tenant-ui/frontend/src/components/about/Acapy.vue index d48ad0e1b..70d8c4821 100644 --- a/services/tenant-ui/frontend/src/components/about/Acapy.vue +++ b/services/tenant-ui/frontend/src/components/about/Acapy.vue @@ -23,7 +23,7 @@ diff --git a/services/tenant-ui/frontend/src/components/profile/issuance/Endorser.vue b/services/tenant-ui/frontend/src/components/profile/issuance/Endorser.vue index e21c4c92a..110d1bef0 100644 --- a/services/tenant-ui/frontend/src/components/profile/issuance/Endorser.vue +++ b/services/tenant-ui/frontend/src/components/profile/issuance/Endorser.vue @@ -38,10 +38,22 @@ - + @@ -91,16 +103,24 @@ import EndorserConnect from './EndorserConnect.vue'; const configStore = useConfigStore(); const tenantStore = useTenantStore(); const { config } = storeToRefs(configStore); -const { endorserConnection, endorserInfo, tenantConfig, loading, serverConfig} = - storeToRefs(tenantStore); +const { + endorserConnection, + endorserInfo, + tenantConfig, + loading, + serverConfig, +} = storeToRefs(tenantStore); -const endorserList = serverConfig.value.config["ledger.ledger_config_list"].map( - (config: any) => ({ - ledger_id: config.id, - endorser_alias: config.endorser_alias, - read_only: config.read_only, - }) -); +const endorserList = + 'config' in serverConfig.value + ? serverConfig.value.config['ledger.ledger_config_list'].map( + (config: any) => ({ + ledger_id: config.id, + endorser_alias: config.endorser_alias, + read_only: config.read_only, + }) + ) + : []; // Allowed to connect to endorser and register DID? const canBecomeIssuer = computed( diff --git a/services/tenant-ui/frontend/src/plugins/i18n/locales/fr.json b/services/tenant-ui/frontend/src/plugins/i18n/locales/fr.json index 0104f002c..8eaf08970 100644 --- a/services/tenant-ui/frontend/src/plugins/i18n/locales/fr.json +++ b/services/tenant-ui/frontend/src/plugins/i18n/locales/fr.json @@ -577,4 +577,4 @@ "verification": "Verification ", "verifications": "Verifications " } -} \ No newline at end of file +} diff --git a/services/tenant-ui/frontend/src/plugins/i18n/locales/ja.json b/services/tenant-ui/frontend/src/plugins/i18n/locales/ja.json index 591893f0f..bbea576d3 100644 --- a/services/tenant-ui/frontend/src/plugins/i18n/locales/ja.json +++ b/services/tenant-ui/frontend/src/plugins/i18n/locales/ja.json @@ -577,4 +577,4 @@ "verification": "Verification ", "verifications": "Verifications " } -} \ No newline at end of file +} diff --git a/services/tenant-ui/frontend/src/store/tenantStore.ts b/services/tenant-ui/frontend/src/store/tenantStore.ts index 2a18fe961..69aaee395 100644 --- a/services/tenant-ui/frontend/src/store/tenantStore.ts +++ b/services/tenant-ui/frontend/src/store/tenantStore.ts @@ -74,23 +74,21 @@ interface ServerConfig { monitor_notification: boolean; anoncreds_legacy_support: string; }; - ledger: { - ledger_config_list: Array<{ - id: string; - is_production: boolean; - is_write: boolean; - genesis_transactions: string; - keepalive: number; - read_only: boolean; - socks_proxy: any; - pool_name: string; - endorser_alias: string; - endorser_did: string; - }>; + 'ledger.ledger_config_list': Array<{ + id: string; + is_production: boolean; + is_write: boolean; + genesis_transactions: string; keepalive: number; read_only: boolean; - write_ledger: 'bcovrin-test'; - }; + socks_proxy: any; + pool_name: string; + endorser_alias: string; + endorser_did: string; + }>; + 'ledger.keepalive': number; + 'ledger.read_only': boolean; + 'ledger.write_ledger': string; log: { level: string }; auto_ping_connection: boolean; trace: { @@ -128,7 +126,7 @@ interface ServerConfig { endorser_alias: string; endorser_public_did: string; }; - version: string; + version: string | undefined; }; } @@ -143,7 +141,7 @@ export const useTenantStore = defineStore('tenant', () => { const publicDid: any = ref(null); const writeLedger: any = ref(null); const publicDidRegistrationProgress: Ref = ref(''); - const serverConfig: Ref = ref(null); + const serverConfig: Ref = ref({}); const taa: Ref = ref(null); const tenantConfig: any = ref(null); const tenantWallet: any = ref(null); @@ -221,12 +219,13 @@ export const useTenantStore = defineStore('tenant', () => { async function getServerConfig() { // loading.value = true; - serverConfig.value = await fetchItem( + const val = await fetchItem( API_PATH.TENANT_SERVER_CONFIG, '', error, ref(false) ); + if (val != null) serverConfig.value = val; // loading.value = false; } From a9d29dac59b9aab91a558f58e57c36ff2c709db1 Mon Sep 17 00:00:00 2001 From: Gavin Jaeger-Freeborn Date: Thu, 24 Oct 2024 15:12:35 -0700 Subject: [PATCH 15/31] Correct verified to read_only Signed-off-by: Gavin Jaeger-Freeborn --- .../src/components/profile/issuance/Endorser.vue | 16 +++++++--------- 1 file changed, 7 insertions(+), 9 deletions(-) diff --git a/services/tenant-ui/frontend/src/components/profile/issuance/Endorser.vue b/services/tenant-ui/frontend/src/components/profile/issuance/Endorser.vue index 110d1bef0..c3f438a79 100644 --- a/services/tenant-ui/frontend/src/components/profile/issuance/Endorser.vue +++ b/services/tenant-ui/frontend/src/components/profile/issuance/Endorser.vue @@ -46,15 +46,13 @@ style="min-width: 6rem" > From ec65143fee8cf2527d6eeb47777bfd641c27eefa Mon Sep 17 00:00:00 2001 From: Gavin Jaeger-Freeborn Date: Thu, 24 Oct 2024 15:35:27 -0700 Subject: [PATCH 16/31] Try using the is_write value Signed-off-by: Gavin Jaeger-Freeborn --- .../frontend/src/components/profile/issuance/Endorser.vue | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/services/tenant-ui/frontend/src/components/profile/issuance/Endorser.vue b/services/tenant-ui/frontend/src/components/profile/issuance/Endorser.vue index c3f438a79..cfdc7a89d 100644 --- a/services/tenant-ui/frontend/src/components/profile/issuance/Endorser.vue +++ b/services/tenant-ui/frontend/src/components/profile/issuance/Endorser.vue @@ -40,7 +40,7 @@ @@ -115,7 +115,7 @@ const endorserList = (config: any) => ({ ledger_id: config.id, endorser_alias: config.endorser_alias, - read_only: config.read_only, + is_write: config.is_write, }) ) : []; From 1af96550ee9bc24fd2ec7996ef9b226c40e415d5 Mon Sep 17 00:00:00 2001 From: Gavin Jaeger-Freeborn Date: Fri, 25 Oct 2024 12:52:23 -0700 Subject: [PATCH 17/31] Prevent connecting to read only ledgers Signed-off-by: Gavin Jaeger-Freeborn --- .../src/components/profile/issuance/Endorser.vue | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/services/tenant-ui/frontend/src/components/profile/issuance/Endorser.vue b/services/tenant-ui/frontend/src/components/profile/issuance/Endorser.vue index cfdc7a89d..238cd2daa 100644 --- a/services/tenant-ui/frontend/src/components/profile/issuance/Endorser.vue +++ b/services/tenant-ui/frontend/src/components/profile/issuance/Endorser.vue @@ -15,7 +15,9 @@ @@ -41,7 +43,7 @@ @@ -49,8 +51,8 @@ @@ -115,7 +117,7 @@ const endorserList = (config: any) => ({ ledger_id: config.id, endorser_alias: config.endorser_alias, - is_write: config.is_write, + is_write: !config.is_write, }) ) : []; From 4cb26404cc7a17805534f3b306ec2ca63802884a Mon Sep 17 00:00:00 2001 From: Gavin Jaeger-Freeborn Date: Fri, 25 Oct 2024 14:40:04 -0700 Subject: [PATCH 18/31] flip the accidental negation Signed-off-by: Gavin Jaeger-Freeborn --- .../frontend/src/components/profile/issuance/Endorser.vue | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/services/tenant-ui/frontend/src/components/profile/issuance/Endorser.vue b/services/tenant-ui/frontend/src/components/profile/issuance/Endorser.vue index 238cd2daa..1b0567bcc 100644 --- a/services/tenant-ui/frontend/src/components/profile/issuance/Endorser.vue +++ b/services/tenant-ui/frontend/src/components/profile/issuance/Endorser.vue @@ -117,7 +117,7 @@ const endorserList = (config: any) => ({ ledger_id: config.id, endorser_alias: config.endorser_alias, - is_write: !config.is_write, + is_write: config.is_write, }) ) : []; From a193e79a1cf6b60ecacad7cd5cae5d5cec3cfdfb Mon Sep 17 00:00:00 2001 From: Gavin Jaeger-Freeborn Date: Tue, 29 Oct 2024 13:29:44 -0700 Subject: [PATCH 19/31] relocate ServerConfig to types/index Signed-off-by: Gavin Jaeger-Freeborn --- .../frontend/src/store/tenantStore.ts | 104 +----------------- .../tenant-ui/frontend/src/types/index.ts | 103 +++++++++++++++++ 2 files changed, 104 insertions(+), 103 deletions(-) diff --git a/services/tenant-ui/frontend/src/store/tenantStore.ts b/services/tenant-ui/frontend/src/store/tenantStore.ts index 69aaee395..73a299631 100644 --- a/services/tenant-ui/frontend/src/store/tenantStore.ts +++ b/services/tenant-ui/frontend/src/store/tenantStore.ts @@ -4,6 +4,7 @@ import { EndorserInfo, TransactionRecord, } from '@/types/acapyApi/acapyInterface'; +import { ServerConfig } from '@/types/index'; interface TransactionRecordEx extends TransactionRecord { meta_data?: { [key: string]: any; @@ -27,109 +28,6 @@ import { useTokenStore } from './tokenStore'; import { fetchItem } from './utils/fetchItem'; import { fetchList } from './utils'; -interface ServerConfig { - config: { - debug: { - auto_respond_credential_request: boolean; - auto_respond_presentation_proposal: boolean; - auto_store_credential: boolean; - auto_verify_presentation: boolean; - auto_accept_invites: boolean; - auto_accept_requests: boolean; - auto_respond_messages: boolean; - monitor_ping: boolean; - }; - external_plugins: Array; - plugin_config: { - multitenant_provider: { - manager: { - class_name: string; - always_check_provided_wallet_key: boolean; - }; - errors: { - on_unneeded_wallet_key: boolean; - }; - token_expiry: { - units: string; - amount: number; - }; - }; - traction_innkeeper: { - reservation: { - auto_approve: boolean; - expiry_minutes: number; - auto_issuer: boolean; - }; - }; - basicmessage_storage: { - wallet_enabled: boolean; - }; - }; - default_endpoint: string; - additional_endpoints: Array; - tails_server_base_url: string; - tails_server_upload_url: string; - revocation: { - notify: boolean; - monitor_notification: boolean; - anoncreds_legacy_support: string; - }; - 'ledger.ledger_config_list': Array<{ - id: string; - is_production: boolean; - is_write: boolean; - genesis_transactions: string; - keepalive: number; - read_only: boolean; - socks_proxy: any; - pool_name: string; - endorser_alias: string; - endorser_did: string; - }>; - 'ledger.keepalive': number; - 'ledger.read_only': boolean; - 'ledger.write_ledger': string; - log: { level: string }; - auto_ping_connection: boolean; - trace: { - target: string; - tag: string; - label: string; - }; - preserve_exchange_records: boolean; - emit_new_didcomm_prefix: boolean; - emit_new_didcomm_mime_type: boolean; - auto_provision: boolean; - transport: { - inbound_configs: Array>; - 'transport.outbound_configs': ['http']; - enable_undelivered_queue: boolean; - max_message_size: number; - max_outbound_retry: number; - ws: { timeout_interval: number }; - }; - wallet: { type: string }; - multitenant: { - enabled: boolean; - admin_enabled: boolean; - wallet_type: string; - base_wallet_routes: Array; - }; - endorser: { - author: boolean; - endorser: boolean; - auto_endorse: boolean; - auto_write: boolean; - auto_create_rev_reg: boolean; - auto_promote_author_did: boolean; - auto_request: boolean; - endorser_alias: string; - endorser_public_did: string; - }; - version: string | undefined; - }; -} - export const useTenantStore = defineStore('tenant', () => { // state const tenant: any = ref(null); diff --git a/services/tenant-ui/frontend/src/types/index.ts b/services/tenant-ui/frontend/src/types/index.ts index 2af2769a0..ae166e9f6 100644 --- a/services/tenant-ui/frontend/src/types/index.ts +++ b/services/tenant-ui/frontend/src/types/index.ts @@ -48,3 +48,106 @@ export interface ExtendedV20CredExRecordByFormat }; }; } + +export interface ServerConfig { + config: { + debug: { + auto_respond_credential_request: boolean; + auto_respond_presentation_proposal: boolean; + auto_store_credential: boolean; + auto_verify_presentation: boolean; + auto_accept_invites: boolean; + auto_accept_requests: boolean; + auto_respond_messages: boolean; + monitor_ping: boolean; + }; + external_plugins: Array; + plugin_config: { + multitenant_provider: { + manager: { + class_name: string; + always_check_provided_wallet_key: boolean; + }; + errors: { + on_unneeded_wallet_key: boolean; + }; + token_expiry: { + units: string; + amount: number; + }; + }; + traction_innkeeper: { + reservation: { + auto_approve: boolean; + expiry_minutes: number; + auto_issuer: boolean; + }; + }; + basicmessage_storage: { + wallet_enabled: boolean; + }; + }; + default_endpoint: string; + additional_endpoints: Array; + tails_server_base_url: string; + tails_server_upload_url: string; + revocation: { + notify: boolean; + monitor_notification: boolean; + anoncreds_legacy_support: string; + }; + 'ledger.ledger_config_list': Array<{ + id: string; + is_production: boolean; + is_write: boolean; + genesis_transactions: string; + keepalive: number; + read_only: boolean; + socks_proxy: any; + pool_name: string; + endorser_alias: string; + endorser_did: string; + }>; + 'ledger.keepalive': number; + 'ledger.read_only': boolean; + 'ledger.write_ledger': string; + log: { level: string }; + auto_ping_connection: boolean; + trace: { + target: string; + tag: string; + label: string; + }; + preserve_exchange_records: boolean; + emit_new_didcomm_prefix: boolean; + emit_new_didcomm_mime_type: boolean; + auto_provision: boolean; + transport: { + inbound_configs: Array>; + 'transport.outbound_configs': ['http']; + enable_undelivered_queue: boolean; + max_message_size: number; + max_outbound_retry: number; + ws: { timeout_interval: number }; + }; + wallet: { type: string }; + multitenant: { + enabled: boolean; + admin_enabled: boolean; + wallet_type: string; + base_wallet_routes: Array; + }; + endorser: { + author: boolean; + endorser: boolean; + auto_endorse: boolean; + auto_write: boolean; + auto_create_rev_reg: boolean; + auto_promote_author_did: boolean; + auto_request: boolean; + endorser_alias: string; + endorser_public_did: string; + }; + version: string | undefined; + }; +} From a0dd29d4407b8139d9985b64d657cde5da5bf3e9 Mon Sep 17 00:00:00 2001 From: Lucas O'Neil Date: Thu, 31 Oct 2024 11:48:15 -0700 Subject: [PATCH 20/31] Tenant UI dependency updates (#1425) Dependency updates Signed-off-by: Lucas ONeil --- services/tenant-ui/frontend/package-lock.json | 600 ++++++++---------- services/tenant-ui/frontend/package.json | 24 +- services/tenant-ui/package-lock.json | 312 +++++---- services/tenant-ui/package.json | 16 +- services/tenant-ui/src/index.ts | 2 +- services/tenant-ui/src/routes/router.ts | 6 +- 6 files changed, 440 insertions(+), 520 deletions(-) diff --git a/services/tenant-ui/frontend/package-lock.json b/services/tenant-ui/frontend/package-lock.json index 4e29f863f..42061302e 100644 --- a/services/tenant-ui/frontend/package-lock.json +++ b/services/tenant-ui/frontend/package-lock.json @@ -9,21 +9,21 @@ "version": "1.0.0", "dependencies": { "@intlify/unplugin-vue-i18n": "^4.0.0", - "@jsonforms/vue": "^3.4.0", - "@jsonforms/vue-vanilla": "^3.4.0", + "@jsonforms/vue": "^3.4.1", + "@jsonforms/vue-vanilla": "^3.4.1", "@vuelidate/core": "^2.0.3", "@vuelidate/validators": "^2.0.4", "axios": "^1.7.7", "date-fns": "^4.1.0", "dompurify": "^3.1.7", - "json-editor-vue": "^0.17.2", + "json-editor-vue": "^0.17.3", "marked": "^14.1.3", "oidc-client-ts": "^3.1.0", - "pinia": "^2.2.4", + "pinia": "^2.2.5", "primeflex": "^3.3.1", "primeicons": "^7.0.0", "primevue": "^3.53.0", - "qrcode.vue": "^3.5.0", + "qrcode.vue": "^3.5.1", "vue": "^3.5.12", "vue-i18n": "^9.13.1", "vue-json-pretty": "^2.4.0", @@ -37,23 +37,23 @@ "@typescript-eslint/eslint-plugin": "^7.18.0", "@typescript-eslint/parser": "^7.18.0", "@vitejs/plugin-vue": "^5.1.4", - "@vitest/coverage-v8": "^2.1.3", + "@vitest/coverage-v8": "^2.1.4", "@vue/eslint-config-prettier": "^9.0.0", "@vue/eslint-config-typescript": "^13.0.0", "@vue/test-utils": "^2.4.6", "eslint": "^8.57.0", "eslint-plugin-prettier": "^5.2.1", - "eslint-plugin-vue": "^9.29.0", + "eslint-plugin-vue": "^9.30.0", "flat": "^6.0.1", "glob": "^11.0.0", "jsdom": "^25.0.1", - "msw": "^2.4.11", + "msw": "^2.6.0", "prettier": "^3.3.3", - "sass": "^1.79.5", + "sass": "^1.80.5", "typescript": "^5.6.3", - "vite": "^5.4.9", - "vitest": "^2.1.3", - "vue-tsc": "^2.1.6", + "vite": "^5.4.10", + "vitest": "^2.1.4", + "vue-tsc": "^2.1.10", "whatwg-fetch": "^3.6.20" } }, @@ -174,9 +174,9 @@ } }, "node_modules/@codemirror/autocomplete": { - "version": "6.18.1", - "resolved": "https://registry.npmjs.org/@codemirror/autocomplete/-/autocomplete-6.18.1.tgz", - "integrity": "sha512-iWHdj/B1ethnHRTwZj+C1obmmuCzquH29EbcKr0qIjA9NfDeBDJ7vs+WOHsFeLeflE4o+dHfYndJloMKHUkWUA==", + "version": "6.18.2", + "resolved": "https://registry.npmjs.org/@codemirror/autocomplete/-/autocomplete-6.18.2.tgz", + "integrity": "sha512-wJGylKtMFR/Ds6Gh01+OovXE/pncPiKZNNBKuC39pKnH+XK5d9+WsNqcrdxPjFPFTigRBqse0rfxw9UxrfyhPg==", "license": "MIT", "dependencies": { "@codemirror/language": "^6.0.0", @@ -192,9 +192,9 @@ } }, "node_modules/@codemirror/commands": { - "version": "6.7.0", - "resolved": "https://registry.npmjs.org/@codemirror/commands/-/commands-6.7.0.tgz", - "integrity": "sha512-+cduIZ2KbesDhbykV02K25A5xIVrquSPz4UxxYBemRlAT2aW8dhwUgLDwej7q/RJUHKk4nALYcR1puecDvbdqw==", + "version": "6.7.1", + "resolved": "https://registry.npmjs.org/@codemirror/commands/-/commands-6.7.1.tgz", + "integrity": "sha512-llTrboQYw5H4THfhN4U3qCnSZ1SOJ60ohhz+SzU0ADGtwlc533DtklQP0vSFaQuCPDn3BPpOd1GbbnUtwNjsrw==", "license": "MIT", "dependencies": { "@codemirror/language": "^6.0.0", @@ -798,34 +798,34 @@ "dev": true }, "node_modules/@inquirer/confirm": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/@inquirer/confirm/-/confirm-3.2.0.tgz", - "integrity": "sha512-oOIwPs0Dvq5220Z8lGL/6LHRTEr9TgLHmiI99Rj1PJ1p1czTys+olrgBqZk4E2qC0YTzeHprxSQmoHioVdJ7Lw==", + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/@inquirer/confirm/-/confirm-5.0.1.tgz", + "integrity": "sha512-6ycMm7k7NUApiMGfVc32yIPp28iPKxhGRMqoNDiUjq2RyTAkbs5Fx0TdzBqhabcKvniDdAAvHCmsRjnNfTsogw==", "dev": true, "license": "MIT", "dependencies": { - "@inquirer/core": "^9.1.0", - "@inquirer/type": "^1.5.3" + "@inquirer/core": "^10.0.1", + "@inquirer/type": "^3.0.0" }, "engines": { "node": ">=18" + }, + "peerDependencies": { + "@types/node": ">=18" } }, "node_modules/@inquirer/core": { - "version": "9.2.1", - "resolved": "https://registry.npmjs.org/@inquirer/core/-/core-9.2.1.tgz", - "integrity": "sha512-F2VBt7W/mwqEU4bL0RnHNZmC/OxzNx9cOYxHqnXX3MP6ruYvZUZAW9imgN9+h/uBT/oP8Gh888J2OZSbjSeWcg==", + "version": "10.0.1", + "resolved": "https://registry.npmjs.org/@inquirer/core/-/core-10.0.1.tgz", + "integrity": "sha512-KKTgjViBQUi3AAssqjUFMnMO3CM3qwCHvePV9EW+zTKGKafFGFF01sc1yOIYjLJ7QU52G/FbzKc+c01WLzXmVQ==", "dev": true, "license": "MIT", "dependencies": { - "@inquirer/figures": "^1.0.6", - "@inquirer/type": "^2.0.0", - "@types/mute-stream": "^0.0.4", - "@types/node": "^22.5.5", - "@types/wrap-ansi": "^3.0.0", + "@inquirer/figures": "^1.0.7", + "@inquirer/type": "^3.0.0", "ansi-escapes": "^4.3.2", "cli-width": "^4.1.0", - "mute-stream": "^1.0.0", + "mute-stream": "^2.0.0", "signal-exit": "^4.1.0", "strip-ansi": "^6.0.1", "wrap-ansi": "^6.2.0", @@ -835,19 +835,6 @@ "node": ">=18" } }, - "node_modules/@inquirer/core/node_modules/@inquirer/type": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/@inquirer/type/-/type-2.0.0.tgz", - "integrity": "sha512-XvJRx+2KR3YXyYtPUUy+qd9i7p+GO9Ko6VIIpWlBrpWwXDv8WLFeHTxz35CfQFUiBMLXlGHhGzys7lqit9gWag==", - "dev": true, - "license": "MIT", - "dependencies": { - "mute-stream": "^1.0.0" - }, - "engines": { - "node": ">=18" - } - }, "node_modules/@inquirer/core/node_modules/emoji-regex": { "version": "8.0.0", "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", @@ -896,16 +883,16 @@ } }, "node_modules/@inquirer/type": { - "version": "1.5.5", - "resolved": "https://registry.npmjs.org/@inquirer/type/-/type-1.5.5.tgz", - "integrity": "sha512-MzICLu4yS7V8AA61sANROZ9vT1H3ooca5dSmI1FjZkzq7o/koMsRfQSzRtFo+F3Ao4Sf1C0bpLKejpKB/+j6MA==", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@inquirer/type/-/type-3.0.0.tgz", + "integrity": "sha512-YYykfbw/lefC7yKj7nanzQXILM7r3suIvyFlCcMskc99axmsSewXWkAfXKwMbgxL76iAFVmRwmYdwNZNc8gjog==", "dev": true, "license": "MIT", - "dependencies": { - "mute-stream": "^1.0.0" - }, "engines": { "node": ">=18" + }, + "peerDependencies": { + "@types/node": ">=18" } }, "node_modules/@intlify/bundle-utils": { @@ -1277,9 +1264,9 @@ } }, "node_modules/@jsonforms/core": { - "version": "3.4.0", - "resolved": "https://registry.npmjs.org/@jsonforms/core/-/core-3.4.0.tgz", - "integrity": "sha512-jeU98XLru6G2WVGmJqG19W2rmSLX4im/gOWbptTzQJYj8tS38cqDoYcIRuBmAQYASj2ogJDHQnDgIXARSL8vJA==", + "version": "3.4.1", + "resolved": "https://registry.npmjs.org/@jsonforms/core/-/core-3.4.1.tgz", + "integrity": "sha512-4p0fu2g4HfjHu8LFAL2d78O+9okyyVU4wvKHAEXnM39Rv9Opj5Ih6OF4/xXwld8169ri5aJSLISi+/Bsc6Xc4g==", "license": "MIT", "peer": true, "dependencies": { @@ -1312,29 +1299,29 @@ "peer": true }, "node_modules/@jsonforms/vue": { - "version": "3.4.0", - "resolved": "https://registry.npmjs.org/@jsonforms/vue/-/vue-3.4.0.tgz", - "integrity": "sha512-pSfxvlXLSZafkbVbHRTlBdh9/9L/bAJx5pj8TiJkPREWAOOE0dc8Cp+xPTKYNGv87F0apzUEJmY1fHtsG42Uig==", + "version": "3.4.1", + "resolved": "https://registry.npmjs.org/@jsonforms/vue/-/vue-3.4.1.tgz", + "integrity": "sha512-r/DhVgQG/ZKSYO1LPGn6Osk2mwz8CT+8J9tvdRAX4y2PXpBWTiO/ee/cn8xW8Ixuv9M2F3IuPqzcnnr6dOcRZA==", "license": "MIT", "dependencies": { "lodash": "^4.17.21" }, "peerDependencies": { - "@jsonforms/core": "3.4.0", + "@jsonforms/core": "3.4.1", "vue": "^3.2.26" } }, "node_modules/@jsonforms/vue-vanilla": { - "version": "3.4.0", - "resolved": "https://registry.npmjs.org/@jsonforms/vue-vanilla/-/vue-vanilla-3.4.0.tgz", - "integrity": "sha512-dP/LFOmFWZ7WS0X9N5rT7MsVfIT7BaqEIPaM2+vvD9jBvxdCHvEgdV7V7XruhpZ8pxQ6IsxzQILD2JyYhpgGTA==", + "version": "3.4.1", + "resolved": "https://registry.npmjs.org/@jsonforms/vue-vanilla/-/vue-vanilla-3.4.1.tgz", + "integrity": "sha512-pxW368wSWkfsSIMbivCXQ2Nq4rbBRC73XFTNG0C4EJJ06DS7efsgT9ERjNDG4r6JsTsMPN/n0AM33LhoQXZD9w==", "license": "MIT", "dependencies": { "lodash": "^4.17.21" }, "peerDependencies": { - "@jsonforms/core": "3.4.0", - "@jsonforms/vue": "3.4.0", + "@jsonforms/core": "3.4.1", + "@jsonforms/vue": "3.4.1", "vue": "^3.2.26" } }, @@ -1348,9 +1335,9 @@ } }, "node_modules/@lezer/common": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/@lezer/common/-/common-1.2.2.tgz", - "integrity": "sha512-Z+R3hN6kXbgBWAuejUNPihylAL1Z5CaFqnIe0nTX8Ej+XlIy3EGtXxn6WtLMO+os2hRkQvm2yvaGMYliUzlJaw==", + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/@lezer/common/-/common-1.2.3.tgz", + "integrity": "sha512-w7ojc8ejBqr2REPsWxJjrMFsA/ysDCFICn8zEOR9mrqzOu2amhITYuLD8ag6XZf0CFXDrhKqw7+tW8cX66NaDA==", "license": "MIT" }, "node_modules/@lezer/highlight": { @@ -1383,9 +1370,9 @@ } }, "node_modules/@mswjs/interceptors": { - "version": "0.35.9", - "resolved": "https://registry.npmjs.org/@mswjs/interceptors/-/interceptors-0.35.9.tgz", - "integrity": "sha512-SSnyl/4ni/2ViHKkiZb8eajA/eN1DNFaHjhGiLUdZvDz6PKF4COSf/17xqSz64nOo2Ia29SA6B2KNCsyCbVmaQ==", + "version": "0.36.6", + "resolved": "https://registry.npmjs.org/@mswjs/interceptors/-/interceptors-0.36.6.tgz", + "integrity": "sha512-issnYydStyH0wPEeU7CMwfO7kI668ffVtzKRMRS7H7BliOYuPuwEZxh9dwiXV+oeHBxT5SXT0wPwV8T7V2PJUA==", "dev": true, "license": "MIT", "dependencies": { @@ -2090,22 +2077,13 @@ "integrity": "sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==", "peer": true }, - "node_modules/@types/mute-stream": { - "version": "0.0.4", - "resolved": "https://registry.npmjs.org/@types/mute-stream/-/mute-stream-0.0.4.tgz", - "integrity": "sha512-CPM9nzrCPPJHQNA9keH9CVkVI+WR5kMa+7XEs5jcGQ0VoAGnLv242w8lIVgwAEfmE4oufJRaTc9PNLQl0ioAow==", - "dev": true, - "license": "MIT", - "dependencies": { - "@types/node": "*" - } - }, "node_modules/@types/node": { "version": "22.7.5", "resolved": "https://registry.npmjs.org/@types/node/-/node-22.7.5.tgz", "integrity": "sha512-jML7s2NAzMWc//QSJ1a3prpk78cOPchGvXJsC3C6R6PSMoooztvRVQEz89gmBTBY1SPMaqo5teB4uNHPdetShQ==", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "undici-types": "~6.19.2" } @@ -2130,13 +2108,6 @@ "integrity": "sha512-NfQ4gyz38SL8sDNrSixxU2Os1a5xcdFxipAFxYEuLUlvU2uDwS4NUpsImcf1//SlWItCVMMLiylsxbmNMToV/g==", "dev": true }, - "node_modules/@types/wrap-ansi": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/@types/wrap-ansi/-/wrap-ansi-3.0.0.tgz", - "integrity": "sha512-ltIpx+kM7g/MLRZfkbL7EsCEjfzCcScLpkg37eXEtx5kmrAKBkTJwd1GIAjDSL8wTpM6Hzn5YO4pSb91BEwu1g==", - "dev": true, - "license": "MIT" - }, "node_modules/@typescript-eslint/eslint-plugin": { "version": "7.18.0", "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-7.18.0.tgz", @@ -2367,21 +2338,21 @@ } }, "node_modules/@vitest/coverage-v8": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/@vitest/coverage-v8/-/coverage-v8-2.1.3.tgz", - "integrity": "sha512-2OJ3c7UPoFSmBZwqD2VEkUw6A/tzPF0LmW0ZZhhB8PFxuc+9IBG/FaSM+RLEenc7ljzFvGN+G0nGQoZnh7sy2A==", + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/@vitest/coverage-v8/-/coverage-v8-2.1.4.tgz", + "integrity": "sha512-FPKQuJfR6VTfcNMcGpqInmtJuVXFSCd9HQltYncfR01AzXhLucMEtQ5SinPdZxsT5x/5BK7I5qFJ5/ApGCmyTQ==", "dev": true, "license": "MIT", "dependencies": { "@ampproject/remapping": "^2.3.0", "@bcoe/v8-coverage": "^0.2.3", - "debug": "^4.3.6", + "debug": "^4.3.7", "istanbul-lib-coverage": "^3.2.2", "istanbul-lib-report": "^3.0.1", "istanbul-lib-source-maps": "^5.0.6", "istanbul-reports": "^3.1.7", - "magic-string": "^0.30.11", - "magicast": "^0.3.4", + "magic-string": "^0.30.12", + "magicast": "^0.3.5", "std-env": "^3.7.0", "test-exclude": "^7.0.1", "tinyrainbow": "^1.2.0" @@ -2390,8 +2361,8 @@ "url": "https://opencollective.com/vitest" }, "peerDependencies": { - "@vitest/browser": "2.1.3", - "vitest": "2.1.3" + "@vitest/browser": "2.1.4", + "vitest": "2.1.4" }, "peerDependenciesMeta": { "@vitest/browser": { @@ -2400,15 +2371,15 @@ } }, "node_modules/@vitest/expect": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/@vitest/expect/-/expect-2.1.3.tgz", - "integrity": "sha512-SNBoPubeCJhZ48agjXruCI57DvxcsivVDdWz+SSsmjTT4QN/DfHk3zB/xKsJqMs26bLZ/pNRLnCf0j679i0uWQ==", + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/@vitest/expect/-/expect-2.1.4.tgz", + "integrity": "sha512-DOETT0Oh1avie/D/o2sgMHGrzYUFFo3zqESB2Hn70z6QB1HrS2IQ9z5DfyTqU8sg4Bpu13zZe9V4+UTNQlUeQA==", "dev": true, "license": "MIT", "dependencies": { - "@vitest/spy": "2.1.3", - "@vitest/utils": "2.1.3", - "chai": "^5.1.1", + "@vitest/spy": "2.1.4", + "@vitest/utils": "2.1.4", + "chai": "^5.1.2", "tinyrainbow": "^1.2.0" }, "funding": { @@ -2416,22 +2387,21 @@ } }, "node_modules/@vitest/mocker": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/@vitest/mocker/-/mocker-2.1.3.tgz", - "integrity": "sha512-eSpdY/eJDuOvuTA3ASzCjdithHa+GIF1L4PqtEELl6Qa3XafdMLBpBlZCIUCX2J+Q6sNmjmxtosAG62fK4BlqQ==", + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/@vitest/mocker/-/mocker-2.1.4.tgz", + "integrity": "sha512-Ky/O1Lc0QBbutJdW0rqLeFNbuLEyS+mIPiNdlVlp2/yhJ0SbyYqObS5IHdhferJud8MbbwMnexg4jordE5cCoQ==", "dev": true, "license": "MIT", "dependencies": { - "@vitest/spy": "2.1.3", + "@vitest/spy": "2.1.4", "estree-walker": "^3.0.3", - "magic-string": "^0.30.11" + "magic-string": "^0.30.12" }, "funding": { "url": "https://opencollective.com/vitest" }, "peerDependencies": { - "@vitest/spy": "2.1.3", - "msw": "^2.3.5", + "msw": "^2.4.9", "vite": "^5.0.0" }, "peerDependenciesMeta": { @@ -2454,9 +2424,9 @@ } }, "node_modules/@vitest/pretty-format": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/@vitest/pretty-format/-/pretty-format-2.1.3.tgz", - "integrity": "sha512-XH1XdtoLZCpqV59KRbPrIhFCOO0hErxrQCMcvnQete3Vibb9UeIOX02uFPfVn3Z9ZXsq78etlfyhnkmIZSzIwQ==", + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/@vitest/pretty-format/-/pretty-format-2.1.4.tgz", + "integrity": "sha512-L95zIAkEuTDbUX1IsjRl+vyBSLh3PwLLgKpghl37aCK9Jvw0iP+wKwIFhfjdUtA2myLgjrG6VU6JCFLv8q/3Ww==", "dev": true, "license": "MIT", "dependencies": { @@ -2467,13 +2437,13 @@ } }, "node_modules/@vitest/runner": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/@vitest/runner/-/runner-2.1.3.tgz", - "integrity": "sha512-JGzpWqmFJ4fq5ZKHtVO3Xuy1iF2rHGV4d/pdzgkYHm1+gOzNZtqjvyiaDGJytRyMU54qkxpNzCx+PErzJ1/JqQ==", + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/@vitest/runner/-/runner-2.1.4.tgz", + "integrity": "sha512-sKRautINI9XICAMl2bjxQM8VfCMTB0EbsBc/EDFA57V6UQevEKY/TOPOF5nzcvCALltiLfXWbq4MaAwWx/YxIA==", "dev": true, "license": "MIT", "dependencies": { - "@vitest/utils": "2.1.3", + "@vitest/utils": "2.1.4", "pathe": "^1.1.2" }, "funding": { @@ -2481,14 +2451,14 @@ } }, "node_modules/@vitest/snapshot": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/@vitest/snapshot/-/snapshot-2.1.3.tgz", - "integrity": "sha512-qWC2mWc7VAXmjAkEKxrScWHWFyCQx/cmiZtuGqMi+WwqQJ2iURsVY4ZfAK6dVo6K2smKRU6l3BPwqEBvhnpQGg==", + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/@vitest/snapshot/-/snapshot-2.1.4.tgz", + "integrity": "sha512-3Kab14fn/5QZRog5BPj6Rs8dc4B+mim27XaKWFWHWA87R56AKjHTGcBFKpvZKDzC4u5Wd0w/qKsUIio3KzWW4Q==", "dev": true, "license": "MIT", "dependencies": { - "@vitest/pretty-format": "2.1.3", - "magic-string": "^0.30.11", + "@vitest/pretty-format": "2.1.4", + "magic-string": "^0.30.12", "pathe": "^1.1.2" }, "funding": { @@ -2496,27 +2466,27 @@ } }, "node_modules/@vitest/spy": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/@vitest/spy/-/spy-2.1.3.tgz", - "integrity": "sha512-Nb2UzbcUswzeSP7JksMDaqsI43Sj5+Kry6ry6jQJT4b5gAK+NS9NED6mDb8FlMRCX8m5guaHCDZmqYMMWRy5nQ==", + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/@vitest/spy/-/spy-2.1.4.tgz", + "integrity": "sha512-4JOxa+UAizJgpZfaCPKK2smq9d8mmjZVPMt2kOsg/R8QkoRzydHH1qHxIYNvr1zlEaFj4SXiaaJWxq/LPLKaLg==", "dev": true, "license": "MIT", "dependencies": { - "tinyspy": "^3.0.0" + "tinyspy": "^3.0.2" }, "funding": { "url": "https://opencollective.com/vitest" } }, "node_modules/@vitest/utils": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/@vitest/utils/-/utils-2.1.3.tgz", - "integrity": "sha512-xpiVfDSg1RrYT0tX6czgerkpcKFmFOF/gCr30+Mve5V2kewCy4Prn1/NDMSRwaSmT7PRaOF83wu+bEtsY1wrvA==", + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/@vitest/utils/-/utils-2.1.4.tgz", + "integrity": "sha512-MXDnZn0Awl2S86PSNIim5PWXgIAx8CIkzu35mBdSApUip6RFOGXBCf3YFyeEu8n1IHk4bWD46DeYFu9mQlFIRg==", "dev": true, "license": "MIT", "dependencies": { - "@vitest/pretty-format": "2.1.3", - "loupe": "^3.1.1", + "@vitest/pretty-format": "2.1.4", + "loupe": "^3.1.2", "tinyrainbow": "^1.2.0" }, "funding": { @@ -2524,30 +2494,30 @@ } }, "node_modules/@volar/language-core": { - "version": "2.4.5", - "resolved": "https://registry.npmjs.org/@volar/language-core/-/language-core-2.4.5.tgz", - "integrity": "sha512-F4tA0DCO5Q1F5mScHmca0umsi2ufKULAnMOVBfMsZdT4myhVl4WdKRwCaKcfOkIEuyrAVvtq1ESBdZ+rSyLVww==", + "version": "2.4.8", + "resolved": "https://registry.npmjs.org/@volar/language-core/-/language-core-2.4.8.tgz", + "integrity": "sha512-K/GxMOXGq997bO00cdFhTNuR85xPxj0BEEAy+BaqqayTmy9Tmhfgmq2wpJcVspRhcwfgPoE2/mEJa26emUhG/g==", "dev": true, "license": "MIT", "dependencies": { - "@volar/source-map": "2.4.5" + "@volar/source-map": "2.4.8" } }, "node_modules/@volar/source-map": { - "version": "2.4.5", - "resolved": "https://registry.npmjs.org/@volar/source-map/-/source-map-2.4.5.tgz", - "integrity": "sha512-varwD7RaKE2J/Z+Zu6j3mNNJbNT394qIxXwdvz/4ao/vxOfyClZpSDtLKkwWmecinkOVos5+PWkWraelfMLfpw==", + "version": "2.4.8", + "resolved": "https://registry.npmjs.org/@volar/source-map/-/source-map-2.4.8.tgz", + "integrity": "sha512-jeWJBkC/WivdelMwxKkpFL811uH/jJ1kVxa+c7OvG48DXc3VrP7pplSWPP2W1dLMqBxD+awRlg55FQQfiup4cA==", "dev": true, "license": "MIT" }, "node_modules/@volar/typescript": { - "version": "2.4.5", - "resolved": "https://registry.npmjs.org/@volar/typescript/-/typescript-2.4.5.tgz", - "integrity": "sha512-mcT1mHvLljAEtHviVcBuOyAwwMKz1ibXTi5uYtP/pf4XxoAzpdkQ+Br2IC0NPCvLCbjPZmbf3I0udndkfB1CDg==", + "version": "2.4.8", + "resolved": "https://registry.npmjs.org/@volar/typescript/-/typescript-2.4.8.tgz", + "integrity": "sha512-6xkIYJ5xxghVBhVywMoPMidDDAFT1OoQeXwa27HSgJ6AiIKRe61RXLoik+14Z7r0JvnblXVsjsRLmCr42SGzqg==", "dev": true, "license": "MIT", "dependencies": { - "@volar/language-core": "2.4.5", + "@volar/language-core": "2.4.8", "path-browserify": "^1.0.1", "vscode-uri": "^3.0.8" } @@ -2658,17 +2628,17 @@ } }, "node_modules/@vue/language-core": { - "version": "2.1.6", - "resolved": "https://registry.npmjs.org/@vue/language-core/-/language-core-2.1.6.tgz", - "integrity": "sha512-MW569cSky9R/ooKMh6xa2g1D0AtRKbL56k83dzus/bx//RDJk24RHWkMzbAlXjMdDNyxAaagKPRquBIxkxlCkg==", + "version": "2.1.10", + "resolved": "https://registry.npmjs.org/@vue/language-core/-/language-core-2.1.10.tgz", + "integrity": "sha512-DAI289d0K3AB5TUG3xDp9OuQ71CnrujQwJrQnfuZDwo6eGNf0UoRlPuaVNO+Zrn65PC3j0oB2i7mNmVPggeGeQ==", "dev": true, "license": "MIT", "dependencies": { - "@volar/language-core": "~2.4.1", - "@vue/compiler-dom": "^3.4.0", + "@volar/language-core": "~2.4.8", + "@vue/compiler-dom": "^3.5.0", "@vue/compiler-vue2": "^2.7.16", - "@vue/shared": "^3.4.0", - "computeds": "^0.0.1", + "@vue/shared": "^3.5.0", + "alien-signals": "^0.2.0", "minimatch": "^9.0.3", "muggle-string": "^0.4.1", "path-browserify": "^1.0.1" @@ -2877,6 +2847,15 @@ "acorn": "^6.0.0 || ^7.0.0 || ^8.0.0" } }, + "node_modules/acorn-typescript": { + "version": "1.4.13", + "resolved": "https://registry.npmjs.org/acorn-typescript/-/acorn-typescript-1.4.13.tgz", + "integrity": "sha512-xsc9Xv0xlVfwp2o7sQ+GCQ1PgbkdcpWdTzrwXxO3xDMTAywVS3oXVOcOHuRjAPkS4P9b+yc/qNF15460v+jp4Q==", + "license": "MIT", + "peerDependencies": { + "acorn": ">=8.9.0" + } + }, "node_modules/agent-base": { "version": "7.1.1", "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-7.1.1.tgz", @@ -2944,6 +2923,13 @@ "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", "peer": true }, + "node_modules/alien-signals": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/alien-signals/-/alien-signals-0.2.0.tgz", + "integrity": "sha512-StlonZhBBrsPPwrDjiPAiVTf/rolxffLxVPT60Qv/t88BZ81BvUVzHgGqEFvJ1ii8HXtm1+zU2Icr59tfWEcag==", + "dev": true, + "license": "MIT" + }, "node_modules/ansi-escapes": { "version": "4.3.2", "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.2.tgz", @@ -3128,9 +3114,9 @@ } }, "node_modules/chai": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/chai/-/chai-5.1.1.tgz", - "integrity": "sha512-pT1ZgP8rPNqUgieVaEY+ryQr6Q4HXNg8Ei9UnLUrjN4IA7dvQC5JB+/kxVcPNDHyBcc/26CXPkbNzq3qwrOEKA==", + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/chai/-/chai-5.1.2.tgz", + "integrity": "sha512-aGtmf24DW6MLHHG5gCx4zaI3uBq3KRtxeVs0DjFH6Z0rDNbsvTxFASFvdj79pxjxZ8/5u3PIiN3IwEIQkiiuPw==", "dev": true, "license": "MIT", "dependencies": { @@ -3272,28 +3258,6 @@ "url": "https://github.com/chalk/wrap-ansi?sponsor=1" } }, - "node_modules/code-red": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/code-red/-/code-red-1.0.4.tgz", - "integrity": "sha512-7qJWqItLA8/VPVlKJlFXU+NBlo/qyfs39aJcuMT/2ere32ZqvF5OSxgdM5xOfJJ7O429gg2HM47y8v9P+9wrNw==", - "license": "MIT", - "dependencies": { - "@jridgewell/sourcemap-codec": "^1.4.15", - "@types/estree": "^1.0.1", - "acorn": "^8.10.0", - "estree-walker": "^3.0.3", - "periscopic": "^3.1.0" - } - }, - "node_modules/code-red/node_modules/estree-walker": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-3.0.3.tgz", - "integrity": "sha512-7RUKfXgSMMkzt6ZuXmqapOurLGPPfgj6l9uRZ7lRGolvk0y2yocc35LdcxKC5PQZdn2DMqioAQ2NoWcrTKmm6g==", - "license": "MIT", - "dependencies": { - "@types/estree": "^1.0.0" - } - }, "node_modules/codemirror-wrapped-line-indent": { "version": "1.0.8", "resolved": "https://registry.npmjs.org/codemirror-wrapped-line-indent/-/codemirror-wrapped-line-indent-1.0.8.tgz", @@ -3343,13 +3307,6 @@ "node": ">=14" } }, - "node_modules/computeds": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/computeds/-/computeds-0.0.1.tgz", - "integrity": "sha512-7CEBgcMjVmitjYo5q8JTJVra6X5mQ20uTThdK+0kR7UEaDrAWEQcRiBtWJzga4eRpP6afNwwLsX2SET2JhVB1Q==", - "dev": true, - "license": "MIT" - }, "node_modules/concat-map": { "version": "0.0.1", "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", @@ -3402,19 +3359,6 @@ "node": ">= 8" } }, - "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==", - "license": "MIT", - "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/cssesc": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-3.0.0.tgz", @@ -3833,9 +3777,9 @@ } }, "node_modules/eslint-plugin-vue": { - "version": "9.29.0", - "resolved": "https://registry.npmjs.org/eslint-plugin-vue/-/eslint-plugin-vue-9.29.0.tgz", - "integrity": "sha512-hamyjrBhNH6Li6R1h1VF9KHfshJlKgKEg3ARbGTn72CMNDSMhWbgC7NdkRDEh25AFW+4SDATzyNM+3gWuZii8g==", + "version": "9.30.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-vue/-/eslint-plugin-vue-9.30.0.tgz", + "integrity": "sha512-CyqlRgShvljFkOeYK8wN5frh/OGTvkj1S7wlr2Q2pUvwq+X5VYiLd6ZjujpgSgLnys2W8qrBLkXQ41SUYaoPIQ==", "dev": true, "license": "MIT", "dependencies": { @@ -3905,6 +3849,12 @@ "url": "https://opencollective.com/eslint" } }, + "node_modules/esm-env": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/esm-env/-/esm-env-1.1.4.tgz", + "integrity": "sha512-oO82nKPHKkzIj/hbtuDYy/JHqBHFlMIW36SDiPCVsj87ntDLcWN+sJ1erdVryd4NxODacFTsdrIE3b7IamqbOg==", + "license": "MIT" + }, "node_modules/espree": { "version": "9.6.1", "resolved": "https://registry.npmjs.org/espree/-/espree-9.6.1.tgz", @@ -3946,6 +3896,16 @@ "node": ">=0.10" } }, + "node_modules/esrap": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/esrap/-/esrap-1.2.2.tgz", + "integrity": "sha512-F2pSJklxx1BlQIQgooczXCPHmcWpn6EsP5oo73LQfonG9fIlIENQ8vMmfGXeojP9MrkzUNAfyU5vdFlR9shHAw==", + "license": "MIT", + "dependencies": { + "@jridgewell/sourcemap-codec": "^1.4.15", + "@types/estree": "^1.0.1" + } + }, "node_modules/esrecurse": { "version": "4.3.0", "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz", @@ -3979,6 +3939,16 @@ "node": ">=0.10.0" } }, + "node_modules/expect-type": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/expect-type/-/expect-type-1.1.0.tgz", + "integrity": "sha512-bFi65yM+xZgk+u/KRIpekdSYkTB5W1pEf0Lt8Q8Msh7b+eQ7LXVtIB1Bkm4fvclDEL1b2CZkMhv2mOeF8tMdkA==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": ">=12.0.0" + } + }, "node_modules/fast-deep-equal": { "version": "3.1.3", "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", @@ -4750,13 +4720,13 @@ } }, "node_modules/json-editor-vue": { - "version": "0.17.2", - "resolved": "https://registry.npmjs.org/json-editor-vue/-/json-editor-vue-0.17.2.tgz", - "integrity": "sha512-P38IvEwQJe4IHFpZe1YG2CWOK6pCjeHmPu2tLs01IiV0kz8QBoHYC7N5ZORlGTL4tQFVOosmnI1gjXztywHtig==", + "version": "0.17.3", + "resolved": "https://registry.npmjs.org/json-editor-vue/-/json-editor-vue-0.17.3.tgz", + "integrity": "sha512-MVpD3TInIlruq9ye/J3XmYHTH+pqfyW0E1GVUV2ug5M0X/19zGslJ+FgeikDflvTVUxhVuCEnc9spMYmPj5Lyw==", "hasInstallScript": true, "license": "MIT", "dependencies": { - "vanilla-jsoneditor": "^1.0.7", + "vanilla-jsoneditor": "^2.0.0", "vue-demi": "^0.14.10" }, "peerDependencies": { @@ -4842,9 +4812,9 @@ } }, "node_modules/jsonpath-plus": { - "version": "10.0.0", - "resolved": "https://registry.npmjs.org/jsonpath-plus/-/jsonpath-plus-10.0.0.tgz", - "integrity": "sha512-v7j76HGp/ibKlXYeZ7UrfCLSNDaBWuJMA0GaMjA4sZJtCtY89qgPyToDDcl2zdeHh4B5q/B3g2pQdW76fOg/dA==", + "version": "10.1.0", + "resolved": "https://registry.npmjs.org/jsonpath-plus/-/jsonpath-plus-10.1.0.tgz", + "integrity": "sha512-gHfV1IYqH8uJHYVTs8BJX1XKy2/rR93+f8QQi0xhx95aCiXn1ettYAd5T+7FU6wfqyDoX/wy0pm/fL3jOKJ9Lg==", "license": "MIT", "dependencies": { "@jsep-plugin/assignment": "^1.2.1", @@ -4860,9 +4830,9 @@ } }, "node_modules/jsonrepair": { - "version": "3.8.1", - "resolved": "https://registry.npmjs.org/jsonrepair/-/jsonrepair-3.8.1.tgz", - "integrity": "sha512-5wnjaO53EJOhfLFY92nvBz2B9gqF9ql/D4HKUb1WOSBaqtVcAifFfmurblnhCJn/ySqKFA8U3n7nhGMAu/hEjQ==", + "version": "3.9.0", + "resolved": "https://registry.npmjs.org/jsonrepair/-/jsonrepair-3.9.0.tgz", + "integrity": "sha512-gC8z8NP6gEh/9DwDFl8G8nr6KSxdUQBhjTyCq+aZy1mT8DxZf9/V1947MztjLDCdnsn8VjoXj0b2R4HGJdEo7A==", "license": "ISC", "bin": { "jsonrepair": "bin/cli.js" @@ -4944,22 +4914,23 @@ } }, "node_modules/magic-string": { - "version": "0.30.11", - "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.30.11.tgz", - "integrity": "sha512-+Wri9p0QHMy+545hKww7YAu5NyzF8iomPL/RQazugQ9+Ez4Ic3mERMd8ZTX5rfK944j+560ZJi8iAwgak1Ac7A==", + "version": "0.30.12", + "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.30.12.tgz", + "integrity": "sha512-Ea8I3sQMVXr8JhN4z+H/d8zwo+tYDgHE9+5G4Wnrwhs0gaK9fXTKx0Tw5Xwsd/bCPTTZNRAdpyzvoeORe9LYpw==", "license": "MIT", "dependencies": { "@jridgewell/sourcemap-codec": "^1.5.0" } }, "node_modules/magicast": { - "version": "0.3.4", - "resolved": "https://registry.npmjs.org/magicast/-/magicast-0.3.4.tgz", - "integrity": "sha512-TyDF/Pn36bBji9rWKHlZe+PZb6Mx5V8IHCSxk7X4aljM4e/vyDvZZYwHewdVaqiA0nb3ghfHU/6AUpDxWoER2Q==", + "version": "0.3.5", + "resolved": "https://registry.npmjs.org/magicast/-/magicast-0.3.5.tgz", + "integrity": "sha512-L0WhttDl+2BOsybvEOLK7fW3UA0OQ0IQ2d6Zl2x/a6vVRs3bAY0ECOSHHeL5jD+SbOpOCUEi0y1DgHEn9Qn1AQ==", "dev": true, + "license": "MIT", "dependencies": { - "@babel/parser": "^7.24.4", - "@babel/types": "^7.24.0", + "@babel/parser": "^7.25.4", + "@babel/types": "^7.25.4", "source-map-js": "^1.2.0" } }, @@ -4990,12 +4961,6 @@ "node": ">= 18" } }, - "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==", - "license": "CC0-1.0" - }, "node_modules/memoize-one": { "version": "6.0.0", "resolved": "https://registry.npmjs.org/memoize-one/-/memoize-one-6.0.0.tgz", @@ -5082,9 +5047,9 @@ "license": "MIT" }, "node_modules/msw": { - "version": "2.4.11", - "resolved": "https://registry.npmjs.org/msw/-/msw-2.4.11.tgz", - "integrity": "sha512-TVEw9NOPTc6ufOQLJ53234S9NBRxQbu7xFMxs+OCP43JQcNEIOKiZHxEm2nDzYIrwccoIhUxUf8wr99SukD76A==", + "version": "2.6.0", + "resolved": "https://registry.npmjs.org/msw/-/msw-2.6.0.tgz", + "integrity": "sha512-n3tx2w0MZ3H4pxY0ozrQ4sNPzK/dGtlr2cIIyuEsgq2Bhy4wvcW6ZH2w/gXM9+MEUY6HC1fWhqtcXDxVZr5Jxw==", "dev": true, "hasInstallScript": true, "license": "MIT", @@ -5092,8 +5057,9 @@ "@bundled-es-modules/cookie": "^2.0.0", "@bundled-es-modules/statuses": "^1.0.1", "@bundled-es-modules/tough-cookie": "^0.1.6", - "@inquirer/confirm": "^3.0.0", - "@mswjs/interceptors": "^0.35.8", + "@inquirer/confirm": "^5.0.0", + "@mswjs/interceptors": "^0.36.5", + "@open-draft/deferred-promise": "^2.2.0", "@open-draft/until": "^2.1.0", "@types/cookie": "^0.6.0", "@types/statuses": "^2.0.4", @@ -5146,13 +5112,13 @@ "license": "MIT" }, "node_modules/mute-stream": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-1.0.0.tgz", - "integrity": "sha512-avsJQhyd+680gKXyG/sQc0nXaC6rBkPOfyHYcFb9+hdkqQkR9bdnkJ0AMZhke0oesPqIO+mFFJ+IdBc7mst4IA==", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-2.0.0.tgz", + "integrity": "sha512-WWdIxpyjEn+FhQJQQv9aQAYlHoNVdzIzUySNV1gHUPDSdZJ3yZn7pAAbQcV7B56Mvu881q9FZV+0Vx2xC44VWA==", "dev": true, "license": "ISC", "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + "node": "^18.17.0 || >=20.5.0" } }, "node_modules/nanoid": { @@ -5417,26 +5383,6 @@ "node": ">= 14.16" } }, - "node_modules/periscopic": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/periscopic/-/periscopic-3.1.0.tgz", - "integrity": "sha512-vKiQ8RRtkl9P+r/+oefh25C3fhybptkHKCZSPlcXiJux2tJF55GnEj3BVn4A5gKfq9NWWXXrxkHBwVPUfH0opw==", - "license": "MIT", - "dependencies": { - "@types/estree": "^1.0.0", - "estree-walker": "^3.0.0", - "is-reference": "^3.0.0" - } - }, - "node_modules/periscopic/node_modules/estree-walker": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-3.0.3.tgz", - "integrity": "sha512-7RUKfXgSMMkzt6ZuXmqapOurLGPPfgj6l9uRZ7lRGolvk0y2yocc35LdcxKC5PQZdn2DMqioAQ2NoWcrTKmm6g==", - "license": "MIT", - "dependencies": { - "@types/estree": "^1.0.0" - } - }, "node_modules/picocolors": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.1.0.tgz", @@ -5455,9 +5401,9 @@ } }, "node_modules/pinia": { - "version": "2.2.4", - "resolved": "https://registry.npmjs.org/pinia/-/pinia-2.2.4.tgz", - "integrity": "sha512-K7ZhpMY9iJ9ShTC0cR2+PnxdQRuwVIsXDO/WIEV/RnMC/vmSoKDTKW/exNQYPI+4ij10UjXqdNiEHwn47McANQ==", + "version": "2.2.5", + "resolved": "https://registry.npmjs.org/pinia/-/pinia-2.2.5.tgz", + "integrity": "sha512-T4PEQ4uFv2KIRC8A1Y3k1ceQGTDtxtd7nngYGu1IJUUSpuQoYfGq7w7rOc+f5YN1vx3mEs2NjjtN2IFbNS7jqA==", "license": "MIT", "dependencies": { "@vue/devtools-api": "^6.6.3", @@ -5469,7 +5415,7 @@ "peerDependencies": { "@vue/composition-api": "^1.4.0", "typescript": ">=4.4.4", - "vue": "^2.6.14 || ^3.3.0" + "vue": "^2.6.14 || ^3.5.11" }, "peerDependenciesMeta": { "@vue/composition-api": { @@ -5639,9 +5585,9 @@ } }, "node_modules/qrcode.vue": { - "version": "3.5.0", - "resolved": "https://registry.npmjs.org/qrcode.vue/-/qrcode.vue-3.5.0.tgz", - "integrity": "sha512-lQE9DrozLmApXSS6ueKIfLGZYgjAqmsEQsdw3I4Tg7WnNapS0BEPhcZZCUIMS0aMMLsn+VXVeEwdoD0i0oJXgg==", + "version": "3.5.1", + "resolved": "https://registry.npmjs.org/qrcode.vue/-/qrcode.vue-3.5.1.tgz", + "integrity": "sha512-Mek5hpUgYP2KsRW4mnyPMUttknuXSe37UorUzymYi3rr/74rV0aTvejl2gF2phrxwAEm6zhpSvkGzIxftxj5Tg==", "license": "MIT", "peerDependencies": { "vue": "^3.0.0" @@ -5840,9 +5786,9 @@ "dev": true }, "node_modules/sass": { - "version": "1.79.5", - "resolved": "https://registry.npmjs.org/sass/-/sass-1.79.5.tgz", - "integrity": "sha512-W1h5kp6bdhqFh2tk3DsI771MoEJjvrSY/2ihJRJS4pjIyfJCw0nTsxqhnrUzaLMOJjFchj8rOvraI/YUVjtx5g==", + "version": "1.80.5", + "resolved": "https://registry.npmjs.org/sass/-/sass-1.80.5.tgz", + "integrity": "sha512-TQd2aoQl/+zsxRMEDSxVdpPIqeq9UFc6pr7PzkugiTx3VYCFPUaa3P4RrBQsqok4PO200Vkz0vXQBNlg7W907g==", "license": "MIT", "dependencies": { "@parcel/watcher": "^2.4.1", @@ -6129,37 +6075,27 @@ } }, "node_modules/svelte": { - "version": "4.2.19", - "resolved": "https://registry.npmjs.org/svelte/-/svelte-4.2.19.tgz", - "integrity": "sha512-IY1rnGr6izd10B0A8LqsBfmlT5OILVuZ7XsI0vdGPEvuonFV7NYEUK4dAkm9Zg2q0Um92kYjTpS1CAP3Nh/KWw==", + "version": "5.1.5", + "resolved": "https://registry.npmjs.org/svelte/-/svelte-5.1.5.tgz", + "integrity": "sha512-AyYondx6wS0g8mmBMfwJVnOYYBswjBv6L4bc99awfbET2KozWvVwxe8NSN7fhx7Pgr7pOfOXIv7K8+Impc0OoQ==", "license": "MIT", "dependencies": { - "@ampproject/remapping": "^2.2.1", - "@jridgewell/sourcemap-codec": "^1.4.15", - "@jridgewell/trace-mapping": "^0.3.18", - "@types/estree": "^1.0.1", - "acorn": "^8.9.0", - "aria-query": "^5.3.0", - "axobject-query": "^4.0.0", - "code-red": "^1.0.3", - "css-tree": "^2.3.1", - "estree-walker": "^3.0.3", - "is-reference": "^3.0.1", + "@ampproject/remapping": "^2.3.0", + "@jridgewell/sourcemap-codec": "^1.5.0", + "@types/estree": "^1.0.5", + "acorn": "^8.12.1", + "acorn-typescript": "^1.4.13", + "aria-query": "^5.3.1", + "axobject-query": "^4.1.0", + "esm-env": "^1.0.0", + "esrap": "^1.2.2", + "is-reference": "^3.0.2", "locate-character": "^3.0.0", - "magic-string": "^0.30.4", - "periscopic": "^3.1.0" + "magic-string": "^0.30.11", + "zimmerframe": "^1.1.2" }, "engines": { - "node": ">=16" - } - }, - "node_modules/svelte/node_modules/estree-walker": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-3.0.3.tgz", - "integrity": "sha512-7RUKfXgSMMkzt6ZuXmqapOurLGPPfgj6l9uRZ7lRGolvk0y2yocc35LdcxKC5PQZdn2DMqioAQ2NoWcrTKmm6g==", - "license": "MIT", - "dependencies": { - "@types/estree": "^1.0.0" + "node": ">=18" } }, "node_modules/symbol-tree": { @@ -6302,9 +6238,9 @@ "license": "MIT" }, "node_modules/tinyexec": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/tinyexec/-/tinyexec-0.3.0.tgz", - "integrity": "sha512-tVGE0mVJPGb0chKhqmsoosjsS+qUnJVGJpZgsHYQcGoPlG3B51R3PouqTgEGH2Dc9jjFyOqOpix6ZHNMXp1FZg==", + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/tinyexec/-/tinyexec-0.3.1.tgz", + "integrity": "sha512-WiCJLEECkO18gwqIp6+hJg0//p23HXp4S+gGtAKu3mI2F2/sXC4FvHvXvB0zJVVaTPhx1/tOwdbRsa1sOBIKqQ==", "dev": true, "license": "MIT" }, @@ -6472,7 +6408,8 @@ "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-6.19.8.tgz", "integrity": "sha512-ve2KP6f/JnbPBFyobGHuerC9g1FYGn/F8n1LWTwNxCEzd6IfqTwUQcNXgEtmmQ6DlRrC1hrSrBnCZPokRrDHjw==", "dev": true, - "license": "MIT" + "license": "MIT", + "peer": true }, "node_modules/universalify": { "version": "0.2.0", @@ -6521,13 +6458,13 @@ "dev": true }, "node_modules/vanilla-jsoneditor": { - "version": "1.0.8", - "resolved": "https://registry.npmjs.org/vanilla-jsoneditor/-/vanilla-jsoneditor-1.0.8.tgz", - "integrity": "sha512-5tKODR6J3IbGoMeBv4DEEU/Dlam4bPunOarIJKfrd5xs4bUife59Lp8Psjf86Y8OAM9mvxkrwR275XsBnvtO9A==", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/vanilla-jsoneditor/-/vanilla-jsoneditor-2.0.0.tgz", + "integrity": "sha512-EkI9Qjf4Kf3yWXSW8GUBIR/mnZsVUh37jddYKF4KcaFETqScZnYbRM9FNWrhTzFp5n8bX2j34Tknze9sDCrzPg==", "license": "ISC", "dependencies": { "@codemirror/autocomplete": "^6.18.1", - "@codemirror/commands": "^6.7.0", + "@codemirror/commands": "^6.7.1", "@codemirror/lang-json": "^6.0.1", "@codemirror/language": "^6.10.3", "@codemirror/lint": "^6.8.2", @@ -6545,13 +6482,13 @@ "immutable-json-patch": "^6.0.1", "jmespath": "^0.16.0", "json-source-map": "^0.6.1", - "jsonpath-plus": "^9.0.0 || ^10.0.0", - "jsonrepair": "^3.8.1", + "jsonpath-plus": "^9.0.0 || ^10.1.0", + "jsonrepair": "^3.9.0", "lodash-es": "^4.17.21", "memoize-one": "^6.0.0", "natural-compare-lite": "^1.4.0", - "sass": "^1.79.5", - "svelte": "^4.0.0", + "sass": "^1.80.4", + "svelte": "^3.54.0 || ^4.0.0 || ^5.0.0", "vanilla-picker": "^2.12.3" } }, @@ -6587,9 +6524,9 @@ } }, "node_modules/vite": { - "version": "5.4.9", - "resolved": "https://registry.npmjs.org/vite/-/vite-5.4.9.tgz", - "integrity": "sha512-20OVpJHh0PAM0oSOELa5GaZNWeDjcAvQjGXy2Uyr+Tp+/D2/Hdz6NLgpJLsarPTA2QJ6v8mX2P1ZfbsSKvdMkg==", + "version": "5.4.10", + "resolved": "https://registry.npmjs.org/vite/-/vite-5.4.10.tgz", + "integrity": "sha512-1hvaPshuPUtxeQ0hsVH3Mud0ZanOLwVTneA1EgbAM5LhaZEqyPWGRQ7BtaMvUrTDeEaC8pxtj6a6jku3x4z6SQ==", "dev": true, "license": "MIT", "dependencies": { @@ -6647,14 +6584,14 @@ } }, "node_modules/vite-node": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/vite-node/-/vite-node-2.1.3.tgz", - "integrity": "sha512-I1JadzO+xYX887S39Do+paRePCKoiDrWRRjp9kkG5he0t7RXNvPAJPCQSJqbGN4uCrFFeS3Kj3sLqY8NMYBEdA==", + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/vite-node/-/vite-node-2.1.4.tgz", + "integrity": "sha512-kqa9v+oi4HwkG6g8ufRnb5AeplcRw8jUF6/7/Qz1qRQOXHImG8YnLbB+LLszENwFnoBl9xIf9nVdCFzNd7GQEg==", "dev": true, "license": "MIT", "dependencies": { "cac": "^6.7.14", - "debug": "^4.3.6", + "debug": "^4.3.7", "pathe": "^1.1.2", "vite": "^5.0.0" }, @@ -6669,30 +6606,31 @@ } }, "node_modules/vitest": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/vitest/-/vitest-2.1.3.tgz", - "integrity": "sha512-Zrxbg/WiIvUP2uEzelDNTXmEMJXuzJ1kCpbDvaKByFA9MNeO95V+7r/3ti0qzJzrxdyuUw5VduN7k+D3VmVOSA==", - "dev": true, - "license": "MIT", - "dependencies": { - "@vitest/expect": "2.1.3", - "@vitest/mocker": "2.1.3", - "@vitest/pretty-format": "^2.1.3", - "@vitest/runner": "2.1.3", - "@vitest/snapshot": "2.1.3", - "@vitest/spy": "2.1.3", - "@vitest/utils": "2.1.3", - "chai": "^5.1.1", - "debug": "^4.3.6", - "magic-string": "^0.30.11", + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/vitest/-/vitest-2.1.4.tgz", + "integrity": "sha512-eDjxbVAJw1UJJCHr5xr/xM86Zx+YxIEXGAR+bmnEID7z9qWfoxpHw0zdobz+TQAFOLT+nEXz3+gx6nUJ7RgmlQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@vitest/expect": "2.1.4", + "@vitest/mocker": "2.1.4", + "@vitest/pretty-format": "^2.1.4", + "@vitest/runner": "2.1.4", + "@vitest/snapshot": "2.1.4", + "@vitest/spy": "2.1.4", + "@vitest/utils": "2.1.4", + "chai": "^5.1.2", + "debug": "^4.3.7", + "expect-type": "^1.1.0", + "magic-string": "^0.30.12", "pathe": "^1.1.2", "std-env": "^3.7.0", "tinybench": "^2.9.0", - "tinyexec": "^0.3.0", - "tinypool": "^1.0.0", + "tinyexec": "^0.3.1", + "tinypool": "^1.0.1", "tinyrainbow": "^1.2.0", "vite": "^5.0.0", - "vite-node": "2.1.3", + "vite-node": "2.1.4", "why-is-node-running": "^2.3.0" }, "bin": { @@ -6707,8 +6645,8 @@ "peerDependencies": { "@edge-runtime/vm": "*", "@types/node": "^18.0.0 || >=20.0.0", - "@vitest/browser": "2.1.3", - "@vitest/ui": "2.1.3", + "@vitest/browser": "2.1.4", + "@vitest/ui": "2.1.4", "happy-dom": "*", "jsdom": "*" }, @@ -6891,14 +6829,14 @@ } }, "node_modules/vue-tsc": { - "version": "2.1.6", - "resolved": "https://registry.npmjs.org/vue-tsc/-/vue-tsc-2.1.6.tgz", - "integrity": "sha512-f98dyZp5FOukcYmbFpuSCJ4Z0vHSOSmxGttZJCsFeX0M4w/Rsq0s4uKXjcSRsZqsRgQa6z7SfuO+y0HVICE57Q==", + "version": "2.1.10", + "resolved": "https://registry.npmjs.org/vue-tsc/-/vue-tsc-2.1.10.tgz", + "integrity": "sha512-RBNSfaaRHcN5uqVqJSZh++Gy/YUzryuv9u1aFWhsammDJXNtUiJMNoJ747lZcQ68wUQFx6E73y4FY3D8E7FGMA==", "dev": true, "license": "MIT", "dependencies": { - "@volar/typescript": "~2.4.1", - "@vue/language-core": "2.1.6", + "@volar/typescript": "~2.4.8", + "@vue/language-core": "2.1.10", "semver": "^7.5.4" }, "bin": { @@ -7286,6 +7224,12 @@ "funding": { "url": "https://github.com/sponsors/sindresorhus" } + }, + "node_modules/zimmerframe": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/zimmerframe/-/zimmerframe-1.1.2.tgz", + "integrity": "sha512-rAbqEGa8ovJy4pyBxZM70hg4pE6gDgaQ0Sl9M3enG3I0d6H4XSAM3GeNGLKnsBpuijUow064sf7ww1nutC5/3w==", + "license": "MIT" } } } diff --git a/services/tenant-ui/frontend/package.json b/services/tenant-ui/frontend/package.json index 84d602b94..94e799ca1 100644 --- a/services/tenant-ui/frontend/package.json +++ b/services/tenant-ui/frontend/package.json @@ -17,21 +17,21 @@ }, "dependencies": { "@intlify/unplugin-vue-i18n": "^4.0.0", - "@jsonforms/vue": "^3.4.0", - "@jsonforms/vue-vanilla": "^3.4.0", + "@jsonforms/vue": "^3.4.1", + "@jsonforms/vue-vanilla": "^3.4.1", "@vuelidate/core": "^2.0.3", "@vuelidate/validators": "^2.0.4", "axios": "^1.7.7", "date-fns": "^4.1.0", "dompurify": "^3.1.7", - "json-editor-vue": "^0.17.2", + "json-editor-vue": "^0.17.3", "marked": "^14.1.3", "oidc-client-ts": "^3.1.0", - "pinia": "^2.2.4", + "pinia": "^2.2.5", "primeflex": "^3.3.1", "primeicons": "^7.0.0", "primevue": "^3.53.0", - "qrcode.vue": "^3.5.0", + "qrcode.vue": "^3.5.1", "vue": "^3.5.12", "vue-i18n": "^9.13.1", "vue-json-pretty": "^2.4.0", @@ -45,23 +45,23 @@ "@typescript-eslint/eslint-plugin": "^7.18.0", "@typescript-eslint/parser": "^7.18.0", "@vitejs/plugin-vue": "^5.1.4", - "@vitest/coverage-v8": "^2.1.3", + "@vitest/coverage-v8": "^2.1.4", "@vue/eslint-config-prettier": "^9.0.0", "@vue/eslint-config-typescript": "^13.0.0", "@vue/test-utils": "^2.4.6", "eslint": "^8.57.0", "eslint-plugin-prettier": "^5.2.1", - "eslint-plugin-vue": "^9.29.0", + "eslint-plugin-vue": "^9.30.0", "flat": "^6.0.1", "glob": "^11.0.0", "jsdom": "^25.0.1", - "msw": "^2.4.11", + "msw": "^2.6.0", "prettier": "^3.3.3", - "sass": "^1.79.5", + "sass": "^1.80.5", "typescript": "^5.6.3", - "vite": "^5.4.9", - "vitest": "^2.1.3", - "vue-tsc": "^2.1.6", + "vite": "^5.4.10", + "vitest": "^2.1.4", + "vue-tsc": "^2.1.10", "whatwg-fetch": "^3.6.20" } } diff --git a/services/tenant-ui/package-lock.json b/services/tenant-ui/package-lock.json index 4ca5d97a4..f4fc7ff57 100644 --- a/services/tenant-ui/package-lock.json +++ b/services/tenant-ui/package-lock.json @@ -1,12 +1,12 @@ { "name": "tenant-ui", - "version": "0.5.2", + "version": "1.0.0", "lockfileVersion": 2, "requires": true, "packages": { "": { "name": "tenant-ui", - "version": "0.5.2", + "version": "1.0.0", "license": "ISC", "dependencies": { "axios": "^1.7.7", @@ -14,28 +14,28 @@ "connect-history-api-fallback": "^2.0.0", "cors": "^2.8.5", "eta": "^3.5.0", - "express": "^4.21.0", + "express": "^4.21.1", "express-oauth-jwt": "^2.0.2", "express-validator": "^7.2.0", "jose": "^5.8.0", - "nodemailer": "^6.9.15" + "nodemailer": "^6.9.16" }, "devDependencies": { "@types/config": "^3.3.5", "@types/connect-history-api-fallback": "^1.5.4", "@types/cors": "^2.8.17", - "@types/express": "^4.17.21", - "@types/jest": "^29.5.13", - "@types/node": "^22.7.2", + "@types/express": "^5.0.0", + "@types/jest": "^29.5.14", + "@types/node": "^22.8.5", "@types/nodemailer": "^6.4.16", - "@typescript-eslint/eslint-plugin": "^8.7.0", - "@typescript-eslint/parser": "^8.7.0", + "@typescript-eslint/eslint-plugin": "^8.12.2", + "@typescript-eslint/parser": "^8.12.2", "eslint": "^8.57.0", "jest": "^29.7.0", "rimraf": "^6.0.1", "ts-jest": "^29.2.5", "ts-node-dev": "^2.0.0", - "typescript": "^5.6.2" + "typescript": "^5.6.3" } }, "node_modules/@aashutoshrathi/word-wrap": { @@ -1704,14 +1704,14 @@ } }, "node_modules/@types/express": { - "version": "4.17.21", - "resolved": "https://registry.npmjs.org/@types/express/-/express-4.17.21.tgz", - "integrity": "sha512-ejlPM315qwLpaQlQDTjPdsUFSc6ZsP4AN6AlWnogPjQ7CVi7PYF3YVz+CY3jE2pwYf7E/7HlDAN0rV2GxTG0HQ==", + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/@types/express/-/express-5.0.0.tgz", + "integrity": "sha512-DvZriSMehGHL1ZNLzi6MidnsDhUZM/x2pRdDIKdwbUNqqwHxMlRdkxtn6/EPKyqKpHqTl/4nRZsRNLpZxZRpPQ==", "dev": true, "license": "MIT", "dependencies": { "@types/body-parser": "*", - "@types/express-serve-static-core": "^4.17.33", + "@types/express-serve-static-core": "^5.0.0", "@types/qs": "*", "@types/serve-static": "*" } @@ -1729,19 +1729,6 @@ "@types/send": "*" } }, - "node_modules/@types/express/node_modules/@types/express-serve-static-core": { - "version": "4.19.6", - "resolved": "https://registry.npmjs.org/@types/express-serve-static-core/-/express-serve-static-core-4.19.6.tgz", - "integrity": "sha512-N4LZ2xG7DatVqhCZzOGb1Yi5lMbXSZcmdLDe9EzSndPV2HpWYWzRbaerl2n27irrm94EPpprqa8KpskPT085+A==", - "dev": true, - "license": "MIT", - "dependencies": { - "@types/node": "*", - "@types/qs": "*", - "@types/range-parser": "*", - "@types/send": "*" - } - }, "node_modules/@types/graceful-fs": { "version": "4.1.6", "resolved": "https://registry.npmjs.org/@types/graceful-fs/-/graceful-fs-4.1.6.tgz", @@ -1776,9 +1763,9 @@ } }, "node_modules/@types/jest": { - "version": "29.5.13", - "resolved": "https://registry.npmjs.org/@types/jest/-/jest-29.5.13.tgz", - "integrity": "sha512-wd+MVEZCHt23V0/L642O5APvspWply/rGY5BcW4SUETo2UzPU3Z26qr8jC2qxpimI2jjx9h7+2cj2FwIr01bXg==", + "version": "29.5.14", + "resolved": "https://registry.npmjs.org/@types/jest/-/jest-29.5.14.tgz", + "integrity": "sha512-ZN+4sdnLUbo8EVvVc2ao0GFW6oVrQRPn4K2lglySj7APvSrgzxHiNNK99us4WDMi57xxA2yggblIAMNhXOotLQ==", "dev": true, "license": "MIT", "dependencies": { @@ -1793,13 +1780,13 @@ "dev": true }, "node_modules/@types/node": { - "version": "22.7.2", - "resolved": "https://registry.npmjs.org/@types/node/-/node-22.7.2.tgz", - "integrity": "sha512-866lXSrpGpgyHBZUa2m9YNWqHDjjM0aBTJlNtYaGEw4rqY/dcD7deRVTbBBAJelfA7oaGDbNftXF/TL/A6RgoA==", + "version": "22.8.5", + "resolved": "https://registry.npmjs.org/@types/node/-/node-22.8.5.tgz", + "integrity": "sha512-5iYk6AMPtsMbkZqCO1UGF9W5L38twq11S2pYWkybGHH2ogPUvXWNlQqJBzuEZWKj/WRH+QTeiv6ySWqJtvIEgA==", "dev": true, "license": "MIT", "dependencies": { - "undici-types": "~6.19.2" + "undici-types": "~6.19.8" } }, "node_modules/@types/nodemailer": { @@ -1879,17 +1866,17 @@ "dev": true }, "node_modules/@typescript-eslint/eslint-plugin": { - "version": "8.7.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-8.7.0.tgz", - "integrity": "sha512-RIHOoznhA3CCfSTFiB6kBGLQtB/sox+pJ6jeFu6FxJvqL8qRxq/FfGO/UhsGgQM9oGdXkV4xUgli+dt26biB6A==", + "version": "8.12.2", + "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-8.12.2.tgz", + "integrity": "sha512-gQxbxM8mcxBwaEmWdtLCIGLfixBMHhQjBqR8sVWNTPpcj45WlYL2IObS/DNMLH1DBP0n8qz+aiiLTGfopPEebw==", "dev": true, "license": "MIT", "dependencies": { "@eslint-community/regexpp": "^4.10.0", - "@typescript-eslint/scope-manager": "8.7.0", - "@typescript-eslint/type-utils": "8.7.0", - "@typescript-eslint/utils": "8.7.0", - "@typescript-eslint/visitor-keys": "8.7.0", + "@typescript-eslint/scope-manager": "8.12.2", + "@typescript-eslint/type-utils": "8.12.2", + "@typescript-eslint/utils": "8.12.2", + "@typescript-eslint/visitor-keys": "8.12.2", "graphemer": "^1.4.0", "ignore": "^5.3.1", "natural-compare": "^1.4.0", @@ -1913,16 +1900,16 @@ } }, "node_modules/@typescript-eslint/parser": { - "version": "8.7.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-8.7.0.tgz", - "integrity": "sha512-lN0btVpj2unxHlNYLI//BQ7nzbMJYBVQX5+pbNXvGYazdlgYonMn4AhhHifQ+J4fGRYA/m1DjaQjx+fDetqBOQ==", + "version": "8.12.2", + "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-8.12.2.tgz", + "integrity": "sha512-MrvlXNfGPLH3Z+r7Tk+Z5moZAc0dzdVjTgUgwsdGweH7lydysQsnSww3nAmsq8blFuRD5VRlAr9YdEFw3e6PBw==", "dev": true, "license": "BSD-2-Clause", "dependencies": { - "@typescript-eslint/scope-manager": "8.7.0", - "@typescript-eslint/types": "8.7.0", - "@typescript-eslint/typescript-estree": "8.7.0", - "@typescript-eslint/visitor-keys": "8.7.0", + "@typescript-eslint/scope-manager": "8.12.2", + "@typescript-eslint/types": "8.12.2", + "@typescript-eslint/typescript-estree": "8.12.2", + "@typescript-eslint/visitor-keys": "8.12.2", "debug": "^4.3.4" }, "engines": { @@ -1967,14 +1954,14 @@ "license": "MIT" }, "node_modules/@typescript-eslint/scope-manager": { - "version": "8.7.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-8.7.0.tgz", - "integrity": "sha512-87rC0k3ZlDOuz82zzXRtQ7Akv3GKhHs0ti4YcbAJtaomllXoSO8hi7Ix3ccEvCd824dy9aIX+j3d2UMAfCtVpg==", + "version": "8.12.2", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-8.12.2.tgz", + "integrity": "sha512-gPLpLtrj9aMHOvxJkSbDBmbRuYdtiEbnvO25bCMza3DhMjTQw0u7Y1M+YR5JPbMsXXnSPuCf5hfq0nEkQDL/JQ==", "dev": true, "license": "MIT", "dependencies": { - "@typescript-eslint/types": "8.7.0", - "@typescript-eslint/visitor-keys": "8.7.0" + "@typescript-eslint/types": "8.12.2", + "@typescript-eslint/visitor-keys": "8.12.2" }, "engines": { "node": "^18.18.0 || ^20.9.0 || >=21.1.0" @@ -1985,14 +1972,14 @@ } }, "node_modules/@typescript-eslint/type-utils": { - "version": "8.7.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-8.7.0.tgz", - "integrity": "sha512-tl0N0Mj3hMSkEYhLkjREp54OSb/FI6qyCzfiiclvJvOqre6hsZTGSnHtmFLDU8TIM62G7ygEa1bI08lcuRwEnQ==", + "version": "8.12.2", + "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-8.12.2.tgz", + "integrity": "sha512-bwuU4TAogPI+1q/IJSKuD4shBLc/d2vGcRT588q+jzayQyjVK2X6v/fbR4InY2U2sgf8MEvVCqEWUzYzgBNcGQ==", "dev": true, "license": "MIT", "dependencies": { - "@typescript-eslint/typescript-estree": "8.7.0", - "@typescript-eslint/utils": "8.7.0", + "@typescript-eslint/typescript-estree": "8.12.2", + "@typescript-eslint/utils": "8.12.2", "debug": "^4.3.4", "ts-api-utils": "^1.3.0" }, @@ -2035,9 +2022,9 @@ "license": "MIT" }, "node_modules/@typescript-eslint/types": { - "version": "8.7.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-8.7.0.tgz", - "integrity": "sha512-LLt4BLHFwSfASHSF2K29SZ+ZCsbQOM+LuarPjRUuHm+Qd09hSe3GCeaQbcCr+Mik+0QFRmep/FyZBO6fJ64U3w==", + "version": "8.12.2", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-8.12.2.tgz", + "integrity": "sha512-VwDwMF1SZ7wPBUZwmMdnDJ6sIFk4K4s+ALKLP6aIQsISkPv8jhiw65sAK6SuWODN/ix+m+HgbYDkH+zLjrzvOA==", "dev": true, "license": "MIT", "engines": { @@ -2049,14 +2036,14 @@ } }, "node_modules/@typescript-eslint/typescript-estree": { - "version": "8.7.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-8.7.0.tgz", - "integrity": "sha512-MC8nmcGHsmfAKxwnluTQpNqceniT8SteVwd2voYlmiSWGOtjvGXdPl17dYu2797GVscK30Z04WRM28CrKS9WOg==", + "version": "8.12.2", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-8.12.2.tgz", + "integrity": "sha512-mME5MDwGe30Pq9zKPvyduyU86PH7aixwqYR2grTglAdB+AN8xXQ1vFGpYaUSJ5o5P/5znsSBeNcs5g5/2aQwow==", "dev": true, "license": "BSD-2-Clause", "dependencies": { - "@typescript-eslint/types": "8.7.0", - "@typescript-eslint/visitor-keys": "8.7.0", + "@typescript-eslint/types": "8.12.2", + "@typescript-eslint/visitor-keys": "8.12.2", "debug": "^4.3.4", "fast-glob": "^3.3.2", "is-glob": "^4.0.3", @@ -2129,16 +2116,16 @@ "license": "MIT" }, "node_modules/@typescript-eslint/utils": { - "version": "8.7.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-8.7.0.tgz", - "integrity": "sha512-ZbdUdwsl2X/s3CiyAu3gOlfQzpbuG3nTWKPoIvAu1pu5r8viiJvv2NPN2AqArL35NCYtw/lrPPfM4gxrMLNLPw==", + "version": "8.12.2", + "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-8.12.2.tgz", + "integrity": "sha512-UTTuDIX3fkfAz6iSVa5rTuSfWIYZ6ATtEocQ/umkRSyC9O919lbZ8dcH7mysshrCdrAM03skJOEYaBugxN+M6A==", "dev": true, "license": "MIT", "dependencies": { "@eslint-community/eslint-utils": "^4.4.0", - "@typescript-eslint/scope-manager": "8.7.0", - "@typescript-eslint/types": "8.7.0", - "@typescript-eslint/typescript-estree": "8.7.0" + "@typescript-eslint/scope-manager": "8.12.2", + "@typescript-eslint/types": "8.12.2", + "@typescript-eslint/typescript-estree": "8.12.2" }, "engines": { "node": "^18.18.0 || ^20.9.0 || >=21.1.0" @@ -2152,13 +2139,13 @@ } }, "node_modules/@typescript-eslint/visitor-keys": { - "version": "8.7.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-8.7.0.tgz", - "integrity": "sha512-b1tx0orFCCh/THWPQa2ZwWzvOeyzzp36vkJYOpVg0u8UVOIsfVrnuC9FqAw9gRKn+rG2VmWQ/zDJZzkxUnj/XQ==", + "version": "8.12.2", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-8.12.2.tgz", + "integrity": "sha512-PChz8UaKQAVNHghsHcPyx1OMHoFRUEA7rJSK/mDhdq85bk+PLsUHUBqTQTFt18VJZbmxBovM65fezlheQRsSDA==", "dev": true, "license": "MIT", "dependencies": { - "@typescript-eslint/types": "8.7.0", + "@typescript-eslint/types": "8.12.2", "eslint-visitor-keys": "^3.4.3" }, "engines": { @@ -2793,9 +2780,10 @@ "dev": true }, "node_modules/cookie": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.6.0.tgz", - "integrity": "sha512-U71cyTamuh1CRNCfpGY6to28lxvNwPG4Guz/EVjgf3Jmzv0vlDp1atT9eS5dDjMYHucpHbWns6Lwf3BKz6svdw==", + "version": "0.7.1", + "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.7.1.tgz", + "integrity": "sha512-6DnInpx7SJ2AK3+CTUE/ZM0vWTUboZCegxhC2xiIydHR9jNuTAASBrfEpHhiGOZw/nX51bHt6YQl8jsGo4y/0w==", + "license": "MIT", "engines": { "node": ">= 0.6" } @@ -3365,9 +3353,9 @@ } }, "node_modules/express": { - "version": "4.21.0", - "resolved": "https://registry.npmjs.org/express/-/express-4.21.0.tgz", - "integrity": "sha512-VqcNGcj/Id5ZT1LZ/cfihi3ttTn+NJmkli2eZADigjq29qTlWi/hAQ43t/VLPq8+UX06FCEx3ByOYet6ZFblng==", + "version": "4.21.1", + "resolved": "https://registry.npmjs.org/express/-/express-4.21.1.tgz", + "integrity": "sha512-YSFlK1Ee0/GC8QaO91tHcDxJiE/X4FbpAyQWkxAvG6AXCuR65YzK8ua6D9hvi/TzUfZMpc+BwuM1IPw8fmQBiQ==", "license": "MIT", "dependencies": { "accepts": "~1.3.8", @@ -3375,7 +3363,7 @@ "body-parser": "1.20.3", "content-disposition": "0.5.4", "content-type": "~1.0.4", - "cookie": "0.6.0", + "cookie": "0.7.1", "cookie-signature": "1.0.6", "debug": "2.6.9", "depd": "2.0.0", @@ -5211,9 +5199,9 @@ "dev": true }, "node_modules/nodemailer": { - "version": "6.9.15", - "resolved": "https://registry.npmjs.org/nodemailer/-/nodemailer-6.9.15.tgz", - "integrity": "sha512-AHf04ySLC6CIfuRtRiEYtGEXgRfa6INgWGluDhnxTZhHSKvrBu7lc1VVchQ0d8nPc4cFaZoPq8vkyNoZr0TpGQ==", + "version": "6.9.16", + "resolved": "https://registry.npmjs.org/nodemailer/-/nodemailer-6.9.16.tgz", + "integrity": "sha512-psAuZdTIRN08HKVd/E8ObdV6NO7NTBY3KsC30F7M4H1OnmLCUNaS56FpYxyb26zWLSyYF9Ozch9KYHhHegsiOQ==", "license": "MIT-0", "engines": { "node": ">=6.0.0" @@ -6506,9 +6494,9 @@ } }, "node_modules/typescript": { - "version": "5.6.2", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.6.2.tgz", - "integrity": "sha512-NW8ByodCSNCwZeghjN3o+JX5OFH0Ojg6sadjEKY4huZ52TqbJTJnDo5+Tw98lSy63NZvi4n+ez5m2u5d4PkZyw==", + "version": "5.6.3", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.6.3.tgz", + "integrity": "sha512-hjcS1mhfuyi4WW8IWtjP7brDrG2cuDZukyrYrSauoXGNgx0S7zceP07adYkJycEr56BOUTNPzbInooiN3fn1qw==", "dev": true, "license": "Apache-2.0", "bin": { @@ -8088,29 +8076,15 @@ } }, "@types/express": { - "version": "4.17.21", - "resolved": "https://registry.npmjs.org/@types/express/-/express-4.17.21.tgz", - "integrity": "sha512-ejlPM315qwLpaQlQDTjPdsUFSc6ZsP4AN6AlWnogPjQ7CVi7PYF3YVz+CY3jE2pwYf7E/7HlDAN0rV2GxTG0HQ==", + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/@types/express/-/express-5.0.0.tgz", + "integrity": "sha512-DvZriSMehGHL1ZNLzi6MidnsDhUZM/x2pRdDIKdwbUNqqwHxMlRdkxtn6/EPKyqKpHqTl/4nRZsRNLpZxZRpPQ==", "dev": true, "requires": { "@types/body-parser": "*", - "@types/express-serve-static-core": "^4.17.33", + "@types/express-serve-static-core": "^5.0.0", "@types/qs": "*", "@types/serve-static": "*" - }, - "dependencies": { - "@types/express-serve-static-core": { - "version": "4.19.6", - "resolved": "https://registry.npmjs.org/@types/express-serve-static-core/-/express-serve-static-core-4.19.6.tgz", - "integrity": "sha512-N4LZ2xG7DatVqhCZzOGb1Yi5lMbXSZcmdLDe9EzSndPV2HpWYWzRbaerl2n27irrm94EPpprqa8KpskPT085+A==", - "dev": true, - "requires": { - "@types/node": "*", - "@types/qs": "*", - "@types/range-parser": "*", - "@types/send": "*" - } - } } }, "@types/express-serve-static-core": { @@ -8159,9 +8133,9 @@ } }, "@types/jest": { - "version": "29.5.13", - "resolved": "https://registry.npmjs.org/@types/jest/-/jest-29.5.13.tgz", - "integrity": "sha512-wd+MVEZCHt23V0/L642O5APvspWply/rGY5BcW4SUETo2UzPU3Z26qr8jC2qxpimI2jjx9h7+2cj2FwIr01bXg==", + "version": "29.5.14", + "resolved": "https://registry.npmjs.org/@types/jest/-/jest-29.5.14.tgz", + "integrity": "sha512-ZN+4sdnLUbo8EVvVc2ao0GFW6oVrQRPn4K2lglySj7APvSrgzxHiNNK99us4WDMi57xxA2yggblIAMNhXOotLQ==", "dev": true, "requires": { "expect": "^29.0.0", @@ -8175,12 +8149,12 @@ "dev": true }, "@types/node": { - "version": "22.7.2", - "resolved": "https://registry.npmjs.org/@types/node/-/node-22.7.2.tgz", - "integrity": "sha512-866lXSrpGpgyHBZUa2m9YNWqHDjjM0aBTJlNtYaGEw4rqY/dcD7deRVTbBBAJelfA7oaGDbNftXF/TL/A6RgoA==", + "version": "22.8.5", + "resolved": "https://registry.npmjs.org/@types/node/-/node-22.8.5.tgz", + "integrity": "sha512-5iYk6AMPtsMbkZqCO1UGF9W5L38twq11S2pYWkybGHH2ogPUvXWNlQqJBzuEZWKj/WRH+QTeiv6ySWqJtvIEgA==", "dev": true, "requires": { - "undici-types": "~6.19.2" + "undici-types": "~6.19.8" } }, "@types/nodemailer": { @@ -8258,16 +8232,16 @@ "dev": true }, "@typescript-eslint/eslint-plugin": { - "version": "8.7.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-8.7.0.tgz", - "integrity": "sha512-RIHOoznhA3CCfSTFiB6kBGLQtB/sox+pJ6jeFu6FxJvqL8qRxq/FfGO/UhsGgQM9oGdXkV4xUgli+dt26biB6A==", + "version": "8.12.2", + "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-8.12.2.tgz", + "integrity": "sha512-gQxbxM8mcxBwaEmWdtLCIGLfixBMHhQjBqR8sVWNTPpcj45WlYL2IObS/DNMLH1DBP0n8qz+aiiLTGfopPEebw==", "dev": true, "requires": { "@eslint-community/regexpp": "^4.10.0", - "@typescript-eslint/scope-manager": "8.7.0", - "@typescript-eslint/type-utils": "8.7.0", - "@typescript-eslint/utils": "8.7.0", - "@typescript-eslint/visitor-keys": "8.7.0", + "@typescript-eslint/scope-manager": "8.12.2", + "@typescript-eslint/type-utils": "8.12.2", + "@typescript-eslint/utils": "8.12.2", + "@typescript-eslint/visitor-keys": "8.12.2", "graphemer": "^1.4.0", "ignore": "^5.3.1", "natural-compare": "^1.4.0", @@ -8275,15 +8249,15 @@ } }, "@typescript-eslint/parser": { - "version": "8.7.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-8.7.0.tgz", - "integrity": "sha512-lN0btVpj2unxHlNYLI//BQ7nzbMJYBVQX5+pbNXvGYazdlgYonMn4AhhHifQ+J4fGRYA/m1DjaQjx+fDetqBOQ==", + "version": "8.12.2", + "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-8.12.2.tgz", + "integrity": "sha512-MrvlXNfGPLH3Z+r7Tk+Z5moZAc0dzdVjTgUgwsdGweH7lydysQsnSww3nAmsq8blFuRD5VRlAr9YdEFw3e6PBw==", "dev": true, "requires": { - "@typescript-eslint/scope-manager": "8.7.0", - "@typescript-eslint/types": "8.7.0", - "@typescript-eslint/typescript-estree": "8.7.0", - "@typescript-eslint/visitor-keys": "8.7.0", + "@typescript-eslint/scope-manager": "8.12.2", + "@typescript-eslint/types": "8.12.2", + "@typescript-eslint/typescript-estree": "8.12.2", + "@typescript-eslint/visitor-keys": "8.12.2", "debug": "^4.3.4" }, "dependencies": { @@ -8305,23 +8279,23 @@ } }, "@typescript-eslint/scope-manager": { - "version": "8.7.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-8.7.0.tgz", - "integrity": "sha512-87rC0k3ZlDOuz82zzXRtQ7Akv3GKhHs0ti4YcbAJtaomllXoSO8hi7Ix3ccEvCd824dy9aIX+j3d2UMAfCtVpg==", + "version": "8.12.2", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-8.12.2.tgz", + "integrity": "sha512-gPLpLtrj9aMHOvxJkSbDBmbRuYdtiEbnvO25bCMza3DhMjTQw0u7Y1M+YR5JPbMsXXnSPuCf5hfq0nEkQDL/JQ==", "dev": true, "requires": { - "@typescript-eslint/types": "8.7.0", - "@typescript-eslint/visitor-keys": "8.7.0" + "@typescript-eslint/types": "8.12.2", + "@typescript-eslint/visitor-keys": "8.12.2" } }, "@typescript-eslint/type-utils": { - "version": "8.7.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-8.7.0.tgz", - "integrity": "sha512-tl0N0Mj3hMSkEYhLkjREp54OSb/FI6qyCzfiiclvJvOqre6hsZTGSnHtmFLDU8TIM62G7ygEa1bI08lcuRwEnQ==", + "version": "8.12.2", + "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-8.12.2.tgz", + "integrity": "sha512-bwuU4TAogPI+1q/IJSKuD4shBLc/d2vGcRT588q+jzayQyjVK2X6v/fbR4InY2U2sgf8MEvVCqEWUzYzgBNcGQ==", "dev": true, "requires": { - "@typescript-eslint/typescript-estree": "8.7.0", - "@typescript-eslint/utils": "8.7.0", + "@typescript-eslint/typescript-estree": "8.12.2", + "@typescript-eslint/utils": "8.12.2", "debug": "^4.3.4", "ts-api-utils": "^1.3.0" }, @@ -8344,19 +8318,19 @@ } }, "@typescript-eslint/types": { - "version": "8.7.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-8.7.0.tgz", - "integrity": "sha512-LLt4BLHFwSfASHSF2K29SZ+ZCsbQOM+LuarPjRUuHm+Qd09hSe3GCeaQbcCr+Mik+0QFRmep/FyZBO6fJ64U3w==", + "version": "8.12.2", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-8.12.2.tgz", + "integrity": "sha512-VwDwMF1SZ7wPBUZwmMdnDJ6sIFk4K4s+ALKLP6aIQsISkPv8jhiw65sAK6SuWODN/ix+m+HgbYDkH+zLjrzvOA==", "dev": true }, "@typescript-eslint/typescript-estree": { - "version": "8.7.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-8.7.0.tgz", - "integrity": "sha512-MC8nmcGHsmfAKxwnluTQpNqceniT8SteVwd2voYlmiSWGOtjvGXdPl17dYu2797GVscK30Z04WRM28CrKS9WOg==", + "version": "8.12.2", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-8.12.2.tgz", + "integrity": "sha512-mME5MDwGe30Pq9zKPvyduyU86PH7aixwqYR2grTglAdB+AN8xXQ1vFGpYaUSJ5o5P/5znsSBeNcs5g5/2aQwow==", "dev": true, "requires": { - "@typescript-eslint/types": "8.7.0", - "@typescript-eslint/visitor-keys": "8.7.0", + "@typescript-eslint/types": "8.12.2", + "@typescript-eslint/visitor-keys": "8.12.2", "debug": "^4.3.4", "fast-glob": "^3.3.2", "is-glob": "^4.0.3", @@ -8401,24 +8375,24 @@ } }, "@typescript-eslint/utils": { - "version": "8.7.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-8.7.0.tgz", - "integrity": "sha512-ZbdUdwsl2X/s3CiyAu3gOlfQzpbuG3nTWKPoIvAu1pu5r8viiJvv2NPN2AqArL35NCYtw/lrPPfM4gxrMLNLPw==", + "version": "8.12.2", + "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-8.12.2.tgz", + "integrity": "sha512-UTTuDIX3fkfAz6iSVa5rTuSfWIYZ6ATtEocQ/umkRSyC9O919lbZ8dcH7mysshrCdrAM03skJOEYaBugxN+M6A==", "dev": true, "requires": { "@eslint-community/eslint-utils": "^4.4.0", - "@typescript-eslint/scope-manager": "8.7.0", - "@typescript-eslint/types": "8.7.0", - "@typescript-eslint/typescript-estree": "8.7.0" + "@typescript-eslint/scope-manager": "8.12.2", + "@typescript-eslint/types": "8.12.2", + "@typescript-eslint/typescript-estree": "8.12.2" } }, "@typescript-eslint/visitor-keys": { - "version": "8.7.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-8.7.0.tgz", - "integrity": "sha512-b1tx0orFCCh/THWPQa2ZwWzvOeyzzp36vkJYOpVg0u8UVOIsfVrnuC9FqAw9gRKn+rG2VmWQ/zDJZzkxUnj/XQ==", + "version": "8.12.2", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-8.12.2.tgz", + "integrity": "sha512-PChz8UaKQAVNHghsHcPyx1OMHoFRUEA7rJSK/mDhdq85bk+PLsUHUBqTQTFt18VJZbmxBovM65fezlheQRsSDA==", "dev": true, "requires": { - "@typescript-eslint/types": "8.7.0", + "@typescript-eslint/types": "8.12.2", "eslint-visitor-keys": "^3.4.3" } }, @@ -8868,9 +8842,9 @@ "dev": true }, "cookie": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.6.0.tgz", - "integrity": "sha512-U71cyTamuh1CRNCfpGY6to28lxvNwPG4Guz/EVjgf3Jmzv0vlDp1atT9eS5dDjMYHucpHbWns6Lwf3BKz6svdw==" + "version": "0.7.1", + "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.7.1.tgz", + "integrity": "sha512-6DnInpx7SJ2AK3+CTUE/ZM0vWTUboZCegxhC2xiIydHR9jNuTAASBrfEpHhiGOZw/nX51bHt6YQl8jsGo4y/0w==" }, "cookie-signature": { "version": "1.0.6", @@ -9270,16 +9244,16 @@ } }, "express": { - "version": "4.21.0", - "resolved": "https://registry.npmjs.org/express/-/express-4.21.0.tgz", - "integrity": "sha512-VqcNGcj/Id5ZT1LZ/cfihi3ttTn+NJmkli2eZADigjq29qTlWi/hAQ43t/VLPq8+UX06FCEx3ByOYet6ZFblng==", + "version": "4.21.1", + "resolved": "https://registry.npmjs.org/express/-/express-4.21.1.tgz", + "integrity": "sha512-YSFlK1Ee0/GC8QaO91tHcDxJiE/X4FbpAyQWkxAvG6AXCuR65YzK8ua6D9hvi/TzUfZMpc+BwuM1IPw8fmQBiQ==", "requires": { "accepts": "~1.3.8", "array-flatten": "1.1.1", "body-parser": "1.20.3", "content-disposition": "0.5.4", "content-type": "~1.0.4", - "cookie": "0.6.0", + "cookie": "0.7.1", "cookie-signature": "1.0.6", "debug": "2.6.9", "depd": "2.0.0", @@ -10639,9 +10613,9 @@ "dev": true }, "nodemailer": { - "version": "6.9.15", - "resolved": "https://registry.npmjs.org/nodemailer/-/nodemailer-6.9.15.tgz", - "integrity": "sha512-AHf04ySLC6CIfuRtRiEYtGEXgRfa6INgWGluDhnxTZhHSKvrBu7lc1VVchQ0d8nPc4cFaZoPq8vkyNoZr0TpGQ==" + "version": "6.9.16", + "resolved": "https://registry.npmjs.org/nodemailer/-/nodemailer-6.9.16.tgz", + "integrity": "sha512-psAuZdTIRN08HKVd/E8ObdV6NO7NTBY3KsC30F7M4H1OnmLCUNaS56FpYxyb26zWLSyYF9Ozch9KYHhHegsiOQ==" }, "normalize-path": { "version": "3.0.0", @@ -11502,9 +11476,9 @@ } }, "typescript": { - "version": "5.6.2", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.6.2.tgz", - "integrity": "sha512-NW8ByodCSNCwZeghjN3o+JX5OFH0Ojg6sadjEKY4huZ52TqbJTJnDo5+Tw98lSy63NZvi4n+ez5m2u5d4PkZyw==", + "version": "5.6.3", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.6.3.tgz", + "integrity": "sha512-hjcS1mhfuyi4WW8IWtjP7brDrG2cuDZukyrYrSauoXGNgx0S7zceP07adYkJycEr56BOUTNPzbInooiN3fn1qw==", "dev": true }, "undici-types": { diff --git a/services/tenant-ui/package.json b/services/tenant-ui/package.json index 3c0287afa..5a7f674bd 100644 --- a/services/tenant-ui/package.json +++ b/services/tenant-ui/package.json @@ -20,27 +20,27 @@ "connect-history-api-fallback": "^2.0.0", "cors": "^2.8.5", "eta": "^3.5.0", - "express": "^4.21.0", + "express": "^4.21.1", "express-oauth-jwt": "^2.0.2", "express-validator": "^7.2.0", "jose": "^5.8.0", - "nodemailer": "^6.9.15" + "nodemailer": "^6.9.16" }, "devDependencies": { "@types/config": "^3.3.5", "@types/connect-history-api-fallback": "^1.5.4", "@types/cors": "^2.8.17", - "@types/express": "^4.17.21", - "@types/jest": "^29.5.13", - "@types/node": "^22.7.2", + "@types/express": "^5.0.0", + "@types/jest": "^29.5.14", + "@types/node": "^22.8.5", "@types/nodemailer": "^6.4.16", - "@typescript-eslint/eslint-plugin": "^8.7.0", - "@typescript-eslint/parser": "^8.7.0", + "@typescript-eslint/eslint-plugin": "^8.12.2", + "@typescript-eslint/parser": "^8.12.2", "eslint": "^8.57.0", "jest": "^29.7.0", "rimraf": "^6.0.1", "ts-jest": "^29.2.5", "ts-node-dev": "^2.0.0", - "typescript": "^5.6.2" + "typescript": "^5.6.3" } } diff --git a/services/tenant-ui/src/index.ts b/services/tenant-ui/src/index.ts index f85869197..3924104d6 100644 --- a/services/tenant-ui/src/index.ts +++ b/services/tenant-ui/src/index.ts @@ -49,5 +49,5 @@ app.use("/config", (_, res, next) => { app.use(APIROOT, router); app.listen(PORT, () => { - console.log(`Listening on port ${PORT}`); + console.log(`Listening on port ${PORT}, apiroot: ${APIROOT}`); }); diff --git a/services/tenant-ui/src/routes/router.ts b/services/tenant-ui/src/routes/router.ts index 2a453f2de..5ad8d455f 100644 --- a/services/tenant-ui/src/routes/router.ts +++ b/services/tenant-ui/src/routes/router.ts @@ -73,7 +73,8 @@ router.post( try { const errors = validationResult(req); if (!errors.isEmpty()) { - return res.status(422).json({ errors: errors.array() }); + res.status(422).json({ errors: errors.array() }); + return; } const result = await emailComponent.sendConfirmationEmail(req); @@ -92,7 +93,8 @@ router.post( try { const errors = validationResult(req); if (!errors.isEmpty()) { - return res.status(422).json({ errors: errors.array() }); + res.status(422).json({ errors: errors.array() }); + return } const result = await emailComponent.sendStatusEmail(req); From 93370bd2ed701217016ed209e29ad27782a55fe4 Mon Sep 17 00:00:00 2001 From: Ivan P <2119240+i5okie@users.noreply.github.com> Date: Mon, 4 Nov 2024 11:39:42 -0800 Subject: [PATCH 21/31] Deprecate provisions for postgresql-ha Signed-off-by: Ivan P <2119240+i5okie@users.noreply.github.com> --- charts/traction/README.md | 1 - charts/traction/templates/_helpers.tpl | 12 ++++-------- charts/traction/values.yaml | 4 ---- 3 files changed, 4 insertions(+), 13 deletions(-) diff --git a/charts/traction/README.md b/charts/traction/README.md index bdede5c51..6a972fd88 100644 --- a/charts/traction/README.md +++ b/charts/traction/README.md @@ -414,7 +414,6 @@ kubectl delete secret,pvc --selector "app.kubernetes.io/instance"=my-release | `postgresql.primary.resources.requests.cpu` | The requested cpu for the PostgreSQL Primary containers | `300m` | | `postgresql.primary.service.ports.postgresql` | PostgreSQL service port | `5432` | | `postgresql.primary.extendedConfiguration` | Extended PostgreSQL Primary configuration (appended to main or default configuration) | `max_connections = 500` | -| `postgresql-ha.enabled` | Deploy HA PostgreSQL chart. Not currently supported, provided for future use. | `false` | ## Maintainers diff --git a/charts/traction/templates/_helpers.tpl b/charts/traction/templates/_helpers.tpl index ff7c2d639..5eed95d4c 100755 --- a/charts/traction/templates/_helpers.tpl +++ b/charts/traction/templates/_helpers.tpl @@ -324,16 +324,14 @@ Create a default fully qualified app name for the postgres requirement. Generate acapy wallet storage config */}} {{- define "acapy.walletStorageConfig" -}} -{{- if and .Values.acapy.walletStorageConfig (not .Values.postgresql.enabled) (not (index .Values "postgresql-ha" "enabled")) -}} +{{- if and .Values.acapy.walletStorageConfig (not .Values.postgresql.enabled) -}} {{- if .Values.acapy.walletStorageConfig.json -}} {{- .Values.acapy.walletStorageConfig.json -}} {{- else -}} '{"url":"{{ .Values.acapy.walletStorageConfig.url }}","max_connections":"{{ .Values.acapy.walletStorageConfig.max_connection | default 10 }}", "wallet_scheme":"{{ .Values.acapy.walletStorageConfig.wallet_scheme }}"}' {{- end -}} -{{- else if and .Values.postgresql.enabled ( not ( index .Values "postgresql-ha" "enabled") ) -}} +{{- else if .Values.postgresql.enabled -}} '{"url":"{{ include "global.postgresql.fullname" . }}:{{ .Values.postgresql.primary.service.ports.postgresql }}","max_connections":"{{ .Values.acapy.walletStorageConfig.max_connections }}", "wallet_scheme":"{{ .Values.acapy.walletStorageConfig.wallet_scheme }}"}' -{{- else if and ( index .Values "postgresql-ha" "enabled" ) ( not .Values.postgresql.enabled ) -}} -'{"url":"{{ include "global.postgresql-ha.fullname" . }}:{{ index .Values "postgresql-ha" "service" "ports" "postgresql" }}","max_connections":"5", "wallet_scheme":"{{ .Values.acapy.walletScheme }}"}' {{- else -}} '' {{ end }} @@ -343,16 +341,14 @@ Generate acapy wallet storage config Generate acapy wallet storage credentials */}} {{- define "acapy.walletStorageCredentials" -}} -{{- if and .Values.acapy.walletStorageCredentials (not .Values.postgresql.enabled) (not (index .Values "postgresql-ha" "enabled")) -}} +{{- if and .Values.acapy.walletStorageCredentials (not .Values.postgresql.enabled) -}} {{- if .Values.acapy.walletStorageCredentials.json -}} {{- .Values.acapy.walletStorageCredentials.json -}} {{- else -}} '{"account":"{{ .Values.acapy.walletStorageCredentials.account | default "acapy" }}","password":"$(POSTGRES_PASSWORD)", "admin_account":"{{ .Values.acapy.walletStorageCredentials.admin_account }}", "admin_password":"$(POSTGRES_POSTGRES_PASSWORD)"}' {{- end -}} -{{- else if and .Values.postgresql.enabled ( not ( index .Values "postgresql-ha" "enabled") ) -}} +{{- else if .Values.postgresql.enabled -}} '{"account":"{{ .Values.postgresql.auth.username }}","password":"$(POSTGRES_PASSWORD)", "admin_account":"{{ .Values.acapy.walletStorageCredentials.admin_account }}", "admin_password":"$(POSTGRES_POSTGRES_PASSWORD)"}' -{{- else if and ( index .Values "postgresql-ha" "enabled" ) ( not .Values.postgresql.enabled ) -}} -'{"account":"{{ .Values.acapy.walletStorageCredentials.account | default "acapy" }}","password":"$(POSTGRES_PASSWORD)", "admin_account":"{{ .Values.acapy.walletStorageCredentials.admin_account }}", "admin_password":"$(POSTGRES_POSTGRES_PASSWORD)"}' {{- end -}} {{- end -}} diff --git a/charts/traction/values.yaml b/charts/traction/values.yaml index 09829a0de..709cef6c8 100644 --- a/charts/traction/values.yaml +++ b/charts/traction/values.yaml @@ -928,7 +928,3 @@ postgresql: ## extendedConfiguration: | max_connections = 500 - -## @param postgresql-ha.enabled Deploy HA PostgreSQL chart. Not currently supported, provided for future use. -postgresql-ha: - enabled: false From 480ef58c059866895418186427beecc68410c84a Mon Sep 17 00:00:00 2001 From: Ivan P <2119240+i5okie@users.noreply.github.com> Date: Mon, 4 Nov 2024 13:27:36 -0800 Subject: [PATCH 22/31] Remove postgresql.auth.database setting Signed-off-by: Ivan P <2119240+i5okie@users.noreply.github.com> --- charts/traction/README.md | 1 - charts/traction/values.yaml | 3 --- 2 files changed, 4 deletions(-) diff --git a/charts/traction/README.md b/charts/traction/README.md index 6a972fd88..cb2826b92 100644 --- a/charts/traction/README.md +++ b/charts/traction/README.md @@ -402,7 +402,6 @@ kubectl delete secret,pvc --selector "app.kubernetes.io/instance"=my-release | `postgresql.fullnameOverride` | When overriding fullnameOverride, you must override this to match. | `""` | | `postgresql.architecture` | PostgreSQL architecture (`standalone` or `replication`) | `standalone` | | `postgresql.auth.enablePostgresUser` | Assign a password to the "postgres" admin user. Otherwise, remote access will be blocked for this user. Not recommended for production deployment. | `true` | -| `postgresql.auth.database` | Name for a custom database to create | `traction` | | `postgresql.auth.username` | Name for a custom user to create | `acapy` | | `postgresql.primary.persistence.enabled` | Enable PostgreSQL Primary data persistence using PVC | `true` | | `postgresql.primary.persistence.size` | PVC Storage Request for PostgreSQL volume | `1Gi` | diff --git a/charts/traction/values.yaml b/charts/traction/values.yaml index 709cef6c8..c42923aef 100644 --- a/charts/traction/values.yaml +++ b/charts/traction/values.yaml @@ -874,9 +874,6 @@ postgresql: ## @param postgresql.auth.enablePostgresUser Assign a password to the "postgres" admin user. Otherwise, remote access will be blocked for this user. Not recommended for production deployment. ## enablePostgresUser: true - ## @param postgresql.auth.database Name for a custom database to create - ## - database: askar-wallet ## @param postgresql.auth.username Name for a custom user to create ## username: acapy From a0ad523a01af9d7ec07d7f618e6312b0b6760955 Mon Sep 17 00:00:00 2001 From: Ivan P <2119240+i5okie@users.noreply.github.com> Date: Mon, 4 Nov 2024 13:29:28 -0800 Subject: [PATCH 23/31] bump chart version Signed-off-by: Ivan P <2119240+i5okie@users.noreply.github.com> --- charts/traction/Chart.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/charts/traction/Chart.yaml b/charts/traction/Chart.yaml index 0b79bf8c2..0916410a3 100644 --- a/charts/traction/Chart.yaml +++ b/charts/traction/Chart.yaml @@ -2,7 +2,7 @@ apiVersion: v2 name: traction description: The Traction service allows organizations to verify, hold, and issue verifiable credentials. The Traction Tenant UI allows tenants to manage their agent. type: application -version: 0.3.4 +version: 0.3.5 appVersion: 1.0.0 home: "https://github.com/bcgov/traction" sources: ["https://github.com/bcgov/traction"] From 18be711956e07986a6c145c9fdc4aef7666de769 Mon Sep 17 00:00:00 2001 From: Lucas O'Neil Date: Wed, 6 Nov 2024 09:57:13 -0800 Subject: [PATCH 24/31] Update argfiles for PRs for DB name and tails (#1426) adjust pr argfile Signed-off-by: Lucas ONeil --- deploy/traction/values-pr.yaml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/deploy/traction/values-pr.yaml b/deploy/traction/values-pr.yaml index ca1be5c2e..2666a8b8d 100644 --- a/deploy/traction/values-pr.yaml +++ b/deploy/traction/values-pr.yaml @@ -11,7 +11,8 @@ acapy: walletkey: "change-me" tenantid: "innkeeper" argfile.yml: - wallet-name: default + tails-server-base-url: https://tails-dev.vonx.io + tails-server-upload-url: https://tails-dev.vonx.io ledgers.yml: - id: bcovrin-test is_production: true From b6d3155011b21a89d62f02d443d1ec47e276d2e3 Mon Sep 17 00:00:00 2001 From: Lucas ONeil Date: Tue, 12 Nov 2024 16:38:28 -0800 Subject: [PATCH 25/31] Add middleware instead of library, update libs Signed-off-by: Lucas ONeil --- services/tenant-ui/package-lock.json | 235 ++++++++---------- services/tenant-ui/package.json | 9 +- .../src/middleware/oidcMiddleware.ts | 33 +++ services/tenant-ui/src/routes/router.ts | 9 +- .../test/middleware/oidcMiddleware.spec.ts | 68 +++++ 5 files changed, 207 insertions(+), 147 deletions(-) create mode 100644 services/tenant-ui/src/middleware/oidcMiddleware.ts create mode 100644 services/tenant-ui/test/middleware/oidcMiddleware.spec.ts diff --git a/services/tenant-ui/package-lock.json b/services/tenant-ui/package-lock.json index f4fc7ff57..7c62707d7 100644 --- a/services/tenant-ui/package-lock.json +++ b/services/tenant-ui/package-lock.json @@ -15,9 +15,8 @@ "cors": "^2.8.5", "eta": "^3.5.0", "express": "^4.21.1", - "express-oauth-jwt": "^2.0.2", "express-validator": "^7.2.0", - "jose": "^5.8.0", + "jose": "^5.9.6", "nodemailer": "^6.9.16" }, "devDependencies": { @@ -26,10 +25,10 @@ "@types/cors": "^2.8.17", "@types/express": "^5.0.0", "@types/jest": "^29.5.14", - "@types/node": "^22.8.5", + "@types/node": "^22.9.0", "@types/nodemailer": "^6.4.16", - "@typescript-eslint/eslint-plugin": "^8.12.2", - "@typescript-eslint/parser": "^8.12.2", + "@typescript-eslint/eslint-plugin": "^8.14.0", + "@typescript-eslint/parser": "^8.14.0", "eslint": "^8.57.0", "jest": "^29.7.0", "rimraf": "^6.0.1", @@ -1780,9 +1779,9 @@ "dev": true }, "node_modules/@types/node": { - "version": "22.8.5", - "resolved": "https://registry.npmjs.org/@types/node/-/node-22.8.5.tgz", - "integrity": "sha512-5iYk6AMPtsMbkZqCO1UGF9W5L38twq11S2pYWkybGHH2ogPUvXWNlQqJBzuEZWKj/WRH+QTeiv6ySWqJtvIEgA==", + "version": "22.9.0", + "resolved": "https://registry.npmjs.org/@types/node/-/node-22.9.0.tgz", + "integrity": "sha512-vuyHg81vvWA1Z1ELfvLko2c8f34gyA0zaic0+Rllc5lbCnbSyuvb2Oxpm6TAUAC/2xZN3QGqxBNggD1nNR2AfQ==", "dev": true, "license": "MIT", "dependencies": { @@ -1866,17 +1865,17 @@ "dev": true }, "node_modules/@typescript-eslint/eslint-plugin": { - "version": "8.12.2", - "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-8.12.2.tgz", - "integrity": "sha512-gQxbxM8mcxBwaEmWdtLCIGLfixBMHhQjBqR8sVWNTPpcj45WlYL2IObS/DNMLH1DBP0n8qz+aiiLTGfopPEebw==", + "version": "8.14.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-8.14.0.tgz", + "integrity": "sha512-tqp8H7UWFaZj0yNO6bycd5YjMwxa6wIHOLZvWPkidwbgLCsBMetQoGj7DPuAlWa2yGO3H48xmPwjhsSPPCGU5w==", "dev": true, "license": "MIT", "dependencies": { "@eslint-community/regexpp": "^4.10.0", - "@typescript-eslint/scope-manager": "8.12.2", - "@typescript-eslint/type-utils": "8.12.2", - "@typescript-eslint/utils": "8.12.2", - "@typescript-eslint/visitor-keys": "8.12.2", + "@typescript-eslint/scope-manager": "8.14.0", + "@typescript-eslint/type-utils": "8.14.0", + "@typescript-eslint/utils": "8.14.0", + "@typescript-eslint/visitor-keys": "8.14.0", "graphemer": "^1.4.0", "ignore": "^5.3.1", "natural-compare": "^1.4.0", @@ -1900,16 +1899,16 @@ } }, "node_modules/@typescript-eslint/parser": { - "version": "8.12.2", - "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-8.12.2.tgz", - "integrity": "sha512-MrvlXNfGPLH3Z+r7Tk+Z5moZAc0dzdVjTgUgwsdGweH7lydysQsnSww3nAmsq8blFuRD5VRlAr9YdEFw3e6PBw==", + "version": "8.14.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-8.14.0.tgz", + "integrity": "sha512-2p82Yn9juUJq0XynBXtFCyrBDb6/dJombnz6vbo6mgQEtWHfvHbQuEa9kAOVIt1c9YFwi7H6WxtPj1kg+80+RA==", "dev": true, "license": "BSD-2-Clause", "dependencies": { - "@typescript-eslint/scope-manager": "8.12.2", - "@typescript-eslint/types": "8.12.2", - "@typescript-eslint/typescript-estree": "8.12.2", - "@typescript-eslint/visitor-keys": "8.12.2", + "@typescript-eslint/scope-manager": "8.14.0", + "@typescript-eslint/types": "8.14.0", + "@typescript-eslint/typescript-estree": "8.14.0", + "@typescript-eslint/visitor-keys": "8.14.0", "debug": "^4.3.4" }, "engines": { @@ -1954,14 +1953,14 @@ "license": "MIT" }, "node_modules/@typescript-eslint/scope-manager": { - "version": "8.12.2", - "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-8.12.2.tgz", - "integrity": "sha512-gPLpLtrj9aMHOvxJkSbDBmbRuYdtiEbnvO25bCMza3DhMjTQw0u7Y1M+YR5JPbMsXXnSPuCf5hfq0nEkQDL/JQ==", + "version": "8.14.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-8.14.0.tgz", + "integrity": "sha512-aBbBrnW9ARIDn92Zbo7rguLnqQ/pOrUguVpbUwzOhkFg2npFDwTgPGqFqE0H5feXcOoJOfX3SxlJaKEVtq54dw==", "dev": true, "license": "MIT", "dependencies": { - "@typescript-eslint/types": "8.12.2", - "@typescript-eslint/visitor-keys": "8.12.2" + "@typescript-eslint/types": "8.14.0", + "@typescript-eslint/visitor-keys": "8.14.0" }, "engines": { "node": "^18.18.0 || ^20.9.0 || >=21.1.0" @@ -1972,14 +1971,14 @@ } }, "node_modules/@typescript-eslint/type-utils": { - "version": "8.12.2", - "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-8.12.2.tgz", - "integrity": "sha512-bwuU4TAogPI+1q/IJSKuD4shBLc/d2vGcRT588q+jzayQyjVK2X6v/fbR4InY2U2sgf8MEvVCqEWUzYzgBNcGQ==", + "version": "8.14.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-8.14.0.tgz", + "integrity": "sha512-Xcz9qOtZuGusVOH5Uk07NGs39wrKkf3AxlkK79RBK6aJC1l03CobXjJbwBPSidetAOV+5rEVuiT1VSBUOAsanQ==", "dev": true, "license": "MIT", "dependencies": { - "@typescript-eslint/typescript-estree": "8.12.2", - "@typescript-eslint/utils": "8.12.2", + "@typescript-eslint/typescript-estree": "8.14.0", + "@typescript-eslint/utils": "8.14.0", "debug": "^4.3.4", "ts-api-utils": "^1.3.0" }, @@ -2022,9 +2021,9 @@ "license": "MIT" }, "node_modules/@typescript-eslint/types": { - "version": "8.12.2", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-8.12.2.tgz", - "integrity": "sha512-VwDwMF1SZ7wPBUZwmMdnDJ6sIFk4K4s+ALKLP6aIQsISkPv8jhiw65sAK6SuWODN/ix+m+HgbYDkH+zLjrzvOA==", + "version": "8.14.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-8.14.0.tgz", + "integrity": "sha512-yjeB9fnO/opvLJFAsPNYlKPnEM8+z4og09Pk504dkqonT02AyL5Z9SSqlE0XqezS93v6CXn49VHvB2G7XSsl0g==", "dev": true, "license": "MIT", "engines": { @@ -2036,14 +2035,14 @@ } }, "node_modules/@typescript-eslint/typescript-estree": { - "version": "8.12.2", - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-8.12.2.tgz", - "integrity": "sha512-mME5MDwGe30Pq9zKPvyduyU86PH7aixwqYR2grTglAdB+AN8xXQ1vFGpYaUSJ5o5P/5znsSBeNcs5g5/2aQwow==", + "version": "8.14.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-8.14.0.tgz", + "integrity": "sha512-OPXPLYKGZi9XS/49rdaCbR5j/S14HazviBlUQFvSKz3npr3NikF+mrgK7CFVur6XEt95DZp/cmke9d5i3vtVnQ==", "dev": true, "license": "BSD-2-Clause", "dependencies": { - "@typescript-eslint/types": "8.12.2", - "@typescript-eslint/visitor-keys": "8.12.2", + "@typescript-eslint/types": "8.14.0", + "@typescript-eslint/visitor-keys": "8.14.0", "debug": "^4.3.4", "fast-glob": "^3.3.2", "is-glob": "^4.0.3", @@ -2116,16 +2115,16 @@ "license": "MIT" }, "node_modules/@typescript-eslint/utils": { - "version": "8.12.2", - "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-8.12.2.tgz", - "integrity": "sha512-UTTuDIX3fkfAz6iSVa5rTuSfWIYZ6ATtEocQ/umkRSyC9O919lbZ8dcH7mysshrCdrAM03skJOEYaBugxN+M6A==", + "version": "8.14.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-8.14.0.tgz", + "integrity": "sha512-OGqj6uB8THhrHj0Fk27DcHPojW7zKwKkPmHXHvQ58pLYp4hy8CSUdTKykKeh+5vFqTTVmjz0zCOOPKRovdsgHA==", "dev": true, "license": "MIT", "dependencies": { "@eslint-community/eslint-utils": "^4.4.0", - "@typescript-eslint/scope-manager": "8.12.2", - "@typescript-eslint/types": "8.12.2", - "@typescript-eslint/typescript-estree": "8.12.2" + "@typescript-eslint/scope-manager": "8.14.0", + "@typescript-eslint/types": "8.14.0", + "@typescript-eslint/typescript-estree": "8.14.0" }, "engines": { "node": "^18.18.0 || ^20.9.0 || >=21.1.0" @@ -2139,13 +2138,13 @@ } }, "node_modules/@typescript-eslint/visitor-keys": { - "version": "8.12.2", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-8.12.2.tgz", - "integrity": "sha512-PChz8UaKQAVNHghsHcPyx1OMHoFRUEA7rJSK/mDhdq85bk+PLsUHUBqTQTFt18VJZbmxBovM65fezlheQRsSDA==", + "version": "8.14.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-8.14.0.tgz", + "integrity": "sha512-vG0XZo8AdTH9OE6VFRwAZldNc7qtJ/6NLGWak+BtENuEUXGZgFpihILPiBvKXvJ2nFu27XNGC6rKiwuaoMbYzQ==", "dev": true, "license": "MIT", "dependencies": { - "@typescript-eslint/types": "8.12.2", + "@typescript-eslint/types": "8.14.0", "eslint-visitor-keys": "^3.4.3" }, "engines": { @@ -3394,25 +3393,6 @@ "node": ">= 0.10.0" } }, - "node_modules/express-oauth-jwt": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/express-oauth-jwt/-/express-oauth-jwt-2.0.2.tgz", - "integrity": "sha512-dgu6IBM2nOmvbFP0dCBrQKuiVZf24cCOR2CKoW2seJ/4PJWlI36+dZBB3vOOFmgNd6URvpdIFE8g5b/qaR+tXA==", - "dependencies": { - "jose": "^4.14.4" - }, - "engines": { - "node": ">=10.13.0" - } - }, - "node_modules/express-oauth-jwt/node_modules/jose": { - "version": "4.15.5", - "resolved": "https://registry.npmjs.org/jose/-/jose-4.15.5.tgz", - "integrity": "sha512-jc7BFxgKPKi94uOvEmzlSWFFe2+vASyXaKUpdQKatWAESU2MWjDfFf0fdfc83CDKcA5QecabZeNLyfhe3yKNkg==", - "funding": { - "url": "https://github.com/sponsors/panva" - } - }, "node_modules/express-validator": { "version": "7.2.0", "resolved": "https://registry.npmjs.org/express-validator/-/express-validator-7.2.0.tgz", @@ -4850,9 +4830,9 @@ } }, "node_modules/jose": { - "version": "5.8.0", - "resolved": "https://registry.npmjs.org/jose/-/jose-5.8.0.tgz", - "integrity": "sha512-E7CqYpL/t7MMnfGnK/eg416OsFCVUrU/Y3Vwe7QjKhu/BkS1Ms455+2xsqZQVN57/U2MHMBvEb5SrmAZWAIntA==", + "version": "5.9.6", + "resolved": "https://registry.npmjs.org/jose/-/jose-5.9.6.tgz", + "integrity": "sha512-AMlnetc9+CV9asI19zHmrgS/WYsWUwCn2R7RzlbJWD7F9eWYUTGyBmU9o6PxngtLGOiDGPRu+Uc4fhKzbpteZQ==", "license": "MIT", "funding": { "url": "https://github.com/sponsors/panva" @@ -8149,9 +8129,9 @@ "dev": true }, "@types/node": { - "version": "22.8.5", - "resolved": "https://registry.npmjs.org/@types/node/-/node-22.8.5.tgz", - "integrity": "sha512-5iYk6AMPtsMbkZqCO1UGF9W5L38twq11S2pYWkybGHH2ogPUvXWNlQqJBzuEZWKj/WRH+QTeiv6ySWqJtvIEgA==", + "version": "22.9.0", + "resolved": "https://registry.npmjs.org/@types/node/-/node-22.9.0.tgz", + "integrity": "sha512-vuyHg81vvWA1Z1ELfvLko2c8f34gyA0zaic0+Rllc5lbCnbSyuvb2Oxpm6TAUAC/2xZN3QGqxBNggD1nNR2AfQ==", "dev": true, "requires": { "undici-types": "~6.19.8" @@ -8232,16 +8212,16 @@ "dev": true }, "@typescript-eslint/eslint-plugin": { - "version": "8.12.2", - "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-8.12.2.tgz", - "integrity": "sha512-gQxbxM8mcxBwaEmWdtLCIGLfixBMHhQjBqR8sVWNTPpcj45WlYL2IObS/DNMLH1DBP0n8qz+aiiLTGfopPEebw==", + "version": "8.14.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-8.14.0.tgz", + "integrity": "sha512-tqp8H7UWFaZj0yNO6bycd5YjMwxa6wIHOLZvWPkidwbgLCsBMetQoGj7DPuAlWa2yGO3H48xmPwjhsSPPCGU5w==", "dev": true, "requires": { "@eslint-community/regexpp": "^4.10.0", - "@typescript-eslint/scope-manager": "8.12.2", - "@typescript-eslint/type-utils": "8.12.2", - "@typescript-eslint/utils": "8.12.2", - "@typescript-eslint/visitor-keys": "8.12.2", + "@typescript-eslint/scope-manager": "8.14.0", + "@typescript-eslint/type-utils": "8.14.0", + "@typescript-eslint/utils": "8.14.0", + "@typescript-eslint/visitor-keys": "8.14.0", "graphemer": "^1.4.0", "ignore": "^5.3.1", "natural-compare": "^1.4.0", @@ -8249,15 +8229,15 @@ } }, "@typescript-eslint/parser": { - "version": "8.12.2", - "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-8.12.2.tgz", - "integrity": "sha512-MrvlXNfGPLH3Z+r7Tk+Z5moZAc0dzdVjTgUgwsdGweH7lydysQsnSww3nAmsq8blFuRD5VRlAr9YdEFw3e6PBw==", + "version": "8.14.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-8.14.0.tgz", + "integrity": "sha512-2p82Yn9juUJq0XynBXtFCyrBDb6/dJombnz6vbo6mgQEtWHfvHbQuEa9kAOVIt1c9YFwi7H6WxtPj1kg+80+RA==", "dev": true, "requires": { - "@typescript-eslint/scope-manager": "8.12.2", - "@typescript-eslint/types": "8.12.2", - "@typescript-eslint/typescript-estree": "8.12.2", - "@typescript-eslint/visitor-keys": "8.12.2", + "@typescript-eslint/scope-manager": "8.14.0", + "@typescript-eslint/types": "8.14.0", + "@typescript-eslint/typescript-estree": "8.14.0", + "@typescript-eslint/visitor-keys": "8.14.0", "debug": "^4.3.4" }, "dependencies": { @@ -8279,23 +8259,23 @@ } }, "@typescript-eslint/scope-manager": { - "version": "8.12.2", - "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-8.12.2.tgz", - "integrity": "sha512-gPLpLtrj9aMHOvxJkSbDBmbRuYdtiEbnvO25bCMza3DhMjTQw0u7Y1M+YR5JPbMsXXnSPuCf5hfq0nEkQDL/JQ==", + "version": "8.14.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-8.14.0.tgz", + "integrity": "sha512-aBbBrnW9ARIDn92Zbo7rguLnqQ/pOrUguVpbUwzOhkFg2npFDwTgPGqFqE0H5feXcOoJOfX3SxlJaKEVtq54dw==", "dev": true, "requires": { - "@typescript-eslint/types": "8.12.2", - "@typescript-eslint/visitor-keys": "8.12.2" + "@typescript-eslint/types": "8.14.0", + "@typescript-eslint/visitor-keys": "8.14.0" } }, "@typescript-eslint/type-utils": { - "version": "8.12.2", - "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-8.12.2.tgz", - "integrity": "sha512-bwuU4TAogPI+1q/IJSKuD4shBLc/d2vGcRT588q+jzayQyjVK2X6v/fbR4InY2U2sgf8MEvVCqEWUzYzgBNcGQ==", + "version": "8.14.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-8.14.0.tgz", + "integrity": "sha512-Xcz9qOtZuGusVOH5Uk07NGs39wrKkf3AxlkK79RBK6aJC1l03CobXjJbwBPSidetAOV+5rEVuiT1VSBUOAsanQ==", "dev": true, "requires": { - "@typescript-eslint/typescript-estree": "8.12.2", - "@typescript-eslint/utils": "8.12.2", + "@typescript-eslint/typescript-estree": "8.14.0", + "@typescript-eslint/utils": "8.14.0", "debug": "^4.3.4", "ts-api-utils": "^1.3.0" }, @@ -8318,19 +8298,19 @@ } }, "@typescript-eslint/types": { - "version": "8.12.2", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-8.12.2.tgz", - "integrity": "sha512-VwDwMF1SZ7wPBUZwmMdnDJ6sIFk4K4s+ALKLP6aIQsISkPv8jhiw65sAK6SuWODN/ix+m+HgbYDkH+zLjrzvOA==", + "version": "8.14.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-8.14.0.tgz", + "integrity": "sha512-yjeB9fnO/opvLJFAsPNYlKPnEM8+z4og09Pk504dkqonT02AyL5Z9SSqlE0XqezS93v6CXn49VHvB2G7XSsl0g==", "dev": true }, "@typescript-eslint/typescript-estree": { - "version": "8.12.2", - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-8.12.2.tgz", - "integrity": "sha512-mME5MDwGe30Pq9zKPvyduyU86PH7aixwqYR2grTglAdB+AN8xXQ1vFGpYaUSJ5o5P/5znsSBeNcs5g5/2aQwow==", + "version": "8.14.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-8.14.0.tgz", + "integrity": "sha512-OPXPLYKGZi9XS/49rdaCbR5j/S14HazviBlUQFvSKz3npr3NikF+mrgK7CFVur6XEt95DZp/cmke9d5i3vtVnQ==", "dev": true, "requires": { - "@typescript-eslint/types": "8.12.2", - "@typescript-eslint/visitor-keys": "8.12.2", + "@typescript-eslint/types": "8.14.0", + "@typescript-eslint/visitor-keys": "8.14.0", "debug": "^4.3.4", "fast-glob": "^3.3.2", "is-glob": "^4.0.3", @@ -8375,24 +8355,24 @@ } }, "@typescript-eslint/utils": { - "version": "8.12.2", - "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-8.12.2.tgz", - "integrity": "sha512-UTTuDIX3fkfAz6iSVa5rTuSfWIYZ6ATtEocQ/umkRSyC9O919lbZ8dcH7mysshrCdrAM03skJOEYaBugxN+M6A==", + "version": "8.14.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-8.14.0.tgz", + "integrity": "sha512-OGqj6uB8THhrHj0Fk27DcHPojW7zKwKkPmHXHvQ58pLYp4hy8CSUdTKykKeh+5vFqTTVmjz0zCOOPKRovdsgHA==", "dev": true, "requires": { "@eslint-community/eslint-utils": "^4.4.0", - "@typescript-eslint/scope-manager": "8.12.2", - "@typescript-eslint/types": "8.12.2", - "@typescript-eslint/typescript-estree": "8.12.2" + "@typescript-eslint/scope-manager": "8.14.0", + "@typescript-eslint/types": "8.14.0", + "@typescript-eslint/typescript-estree": "8.14.0" } }, "@typescript-eslint/visitor-keys": { - "version": "8.12.2", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-8.12.2.tgz", - "integrity": "sha512-PChz8UaKQAVNHghsHcPyx1OMHoFRUEA7rJSK/mDhdq85bk+PLsUHUBqTQTFt18VJZbmxBovM65fezlheQRsSDA==", + "version": "8.14.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-8.14.0.tgz", + "integrity": "sha512-vG0XZo8AdTH9OE6VFRwAZldNc7qtJ/6NLGWak+BtENuEUXGZgFpihILPiBvKXvJ2nFu27XNGC6rKiwuaoMbYzQ==", "dev": true, "requires": { - "@typescript-eslint/types": "8.12.2", + "@typescript-eslint/types": "8.14.0", "eslint-visitor-keys": "^3.4.3" } }, @@ -9281,21 +9261,6 @@ "vary": "~1.1.2" } }, - "express-oauth-jwt": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/express-oauth-jwt/-/express-oauth-jwt-2.0.2.tgz", - "integrity": "sha512-dgu6IBM2nOmvbFP0dCBrQKuiVZf24cCOR2CKoW2seJ/4PJWlI36+dZBB3vOOFmgNd6URvpdIFE8g5b/qaR+tXA==", - "requires": { - "jose": "^4.14.4" - }, - "dependencies": { - "jose": { - "version": "4.15.5", - "resolved": "https://registry.npmjs.org/jose/-/jose-4.15.5.tgz", - "integrity": "sha512-jc7BFxgKPKi94uOvEmzlSWFFe2+vASyXaKUpdQKatWAESU2MWjDfFf0fdfc83CDKcA5QecabZeNLyfhe3yKNkg==" - } - } - }, "express-validator": { "version": "7.2.0", "resolved": "https://registry.npmjs.org/express-validator/-/express-validator-7.2.0.tgz", @@ -10355,9 +10320,9 @@ } }, "jose": { - "version": "5.8.0", - "resolved": "https://registry.npmjs.org/jose/-/jose-5.8.0.tgz", - "integrity": "sha512-E7CqYpL/t7MMnfGnK/eg416OsFCVUrU/Y3Vwe7QjKhu/BkS1Ms455+2xsqZQVN57/U2MHMBvEb5SrmAZWAIntA==" + "version": "5.9.6", + "resolved": "https://registry.npmjs.org/jose/-/jose-5.9.6.tgz", + "integrity": "sha512-AMlnetc9+CV9asI19zHmrgS/WYsWUwCn2R7RzlbJWD7F9eWYUTGyBmU9o6PxngtLGOiDGPRu+Uc4fhKzbpteZQ==" }, "js-tokens": { "version": "4.0.0", diff --git a/services/tenant-ui/package.json b/services/tenant-ui/package.json index 5a7f674bd..421b182b8 100644 --- a/services/tenant-ui/package.json +++ b/services/tenant-ui/package.json @@ -21,9 +21,8 @@ "cors": "^2.8.5", "eta": "^3.5.0", "express": "^4.21.1", - "express-oauth-jwt": "^2.0.2", "express-validator": "^7.2.0", - "jose": "^5.8.0", + "jose": "^5.9.6", "nodemailer": "^6.9.16" }, "devDependencies": { @@ -32,10 +31,10 @@ "@types/cors": "^2.8.17", "@types/express": "^5.0.0", "@types/jest": "^29.5.14", - "@types/node": "^22.8.5", + "@types/node": "^22.9.0", "@types/nodemailer": "^6.4.16", - "@typescript-eslint/eslint-plugin": "^8.12.2", - "@typescript-eslint/parser": "^8.12.2", + "@typescript-eslint/eslint-plugin": "^8.14.0", + "@typescript-eslint/parser": "^8.14.0", "eslint": "^8.57.0", "jest": "^29.7.0", "rimraf": "^6.0.1", diff --git a/services/tenant-ui/src/middleware/oidcMiddleware.ts b/services/tenant-ui/src/middleware/oidcMiddleware.ts new file mode 100644 index 000000000..39706bd39 --- /dev/null +++ b/services/tenant-ui/src/middleware/oidcMiddleware.ts @@ -0,0 +1,33 @@ +import { createRemoteJWKSet, jwtVerify, JWTPayload } from "jose"; +import config from "config"; +import { Request, Response, NextFunction } from "express"; + +// Extend Express Request to include claims +interface AuthenticatedRequest extends Request { + claims?: JWTPayload; +} + +const jwksUri = new URL(config.get("server.oidc.jwksUri")); +const jwks = createRemoteJWKSet(jwksUri); + +const oidcMiddleware = async ( + req: AuthenticatedRequest, + res: Response, + next: NextFunction +) => { + const authHeader = req.headers.authorization; + if (!authHeader || !authHeader.startsWith("Bearer ")) { + res.status(401).json({ message: "Unauthorized" }); + return; + } + const token = authHeader.split(" ")[1]; + try { + const { payload } = await jwtVerify(token, jwks); + req.claims = payload; + next(); + } catch (error) { + res.status(401).json({ message: "Invalid token", error }); + } +}; + +export default oidcMiddleware; diff --git a/services/tenant-ui/src/routes/router.ts b/services/tenant-ui/src/routes/router.ts index 5ad8d455f..e67d332ca 100644 --- a/services/tenant-ui/src/routes/router.ts +++ b/services/tenant-ui/src/routes/router.ts @@ -6,14 +6,9 @@ import express, { Request, Response } from "express"; import config from "config"; import * as emailComponent from "../components/email"; import * as innkeeperComponent from "../components/innkeeper"; -import { secure } from "express-oauth-jwt"; import { body, validationResult } from "express-validator"; -import { createRemoteJWKSet } from "jose"; import { NextFunction } from "express"; - -const jwksService = createRemoteJWKSet( - new URL(config.get("server.oidc.jwksUri")) -); +import oidcMiddleware from "../middleware/oidcMiddleware"; export const router = express.Router(); @@ -22,7 +17,7 @@ router.use(express.json()); // For the secured innkeepr OIDC login request to verify the token and get a token from Traction router.get( "/innkeeperLogin", - secure(jwksService), + oidcMiddleware, async (req: any, res: Response, next: NextFunction) => { try { // Validate JWT from OIDC login before moving on diff --git a/services/tenant-ui/test/middleware/oidcMiddleware.spec.ts b/services/tenant-ui/test/middleware/oidcMiddleware.spec.ts new file mode 100644 index 000000000..6a69a5050 --- /dev/null +++ b/services/tenant-ui/test/middleware/oidcMiddleware.spec.ts @@ -0,0 +1,68 @@ +import { Request, Response, NextFunction } from "express"; +import oidcMiddleware from "../../src/middleware/oidcMiddleware"; +import { jwtVerify } from "jose"; + +jest.mock("config", () => ({ + get: jest.fn().mockReturnValue("http://example.com/.well-known/jwks.json"), + })); +jest.mock("jose", () => ({ + createRemoteJWKSet: jest.fn(), + jwtVerify: jest.fn(), +})); + +interface AuthenticatedRequest extends Request { + claims?: Record; +} + +describe("oidcMiddleware", () => { + let req: Partial; + let res: Partial; + let next: NextFunction; + + beforeEach(() => { + req = { + headers: {}, + }; + res = { + status: jest.fn().mockReturnThis(), + json: jest.fn(), + }; + next = jest.fn(); + }); + + it("should return 401 if no authorization header is present", async () => { + await oidcMiddleware(req as Request, res as Response, next); + + expect(res.status).toHaveBeenCalledWith(401); + expect(res.json).toHaveBeenCalledWith({ message: "Unauthorized" }); + }); + + it("should return 401 if authorization header does not start with 'Bearer '", async () => { + req.headers!.authorization = "Basic abcdef"; + + await oidcMiddleware(req as Request, res as Response, next); + + expect(res.status).toHaveBeenCalledWith(401); + expect(res.json).toHaveBeenCalledWith({ message: "Unauthorized" }); + }); + + it("should return 401 if token is invalid", async () => { + req.headers!.authorization = "Bearer invalidtoken"; + (jwtVerify as jest.Mock).mockRejectedValue(new Error("Invalid token")); + + await oidcMiddleware(req as Request, res as Response, next); + + expect(res.status).toHaveBeenCalledWith(401); + expect(res.json).toHaveBeenCalledWith({ message: "Invalid token", error: expect.any(Error) }); + }); + + it("should call next if token is valid", async () => { + req.headers!.authorization = "Bearer validtoken"; + (jwtVerify as jest.Mock).mockResolvedValue({ payload: { sub: "123" } }); + + await oidcMiddleware(req as AuthenticatedRequest, res as Response, next); + + expect(req.claims).toEqual({ sub: "123" }); + expect(next).toHaveBeenCalled(); + }); +}); \ No newline at end of file From 3f933b69682eb66aeb397f6e7e7f902eb04a1f77 Mon Sep 17 00:00:00 2001 From: Lucas ONeil Date: Tue, 12 Nov 2024 16:44:02 -0800 Subject: [PATCH 26/31] Frontend library updates Signed-off-by: Lucas ONeil --- services/tenant-ui/frontend/package-lock.json | 117 ++++++++++-------- services/tenant-ui/frontend/package.json | 20 +-- .../src/components/profile/SettingsForm.vue | 2 +- .../components/profile/issuance/Issuance.vue | 1 - .../components/profile/issuance/ReviewTaa.vue | 1 - 5 files changed, 73 insertions(+), 68 deletions(-) diff --git a/services/tenant-ui/frontend/package-lock.json b/services/tenant-ui/frontend/package-lock.json index 42061302e..0fc4ee5cd 100644 --- a/services/tenant-ui/frontend/package-lock.json +++ b/services/tenant-ui/frontend/package-lock.json @@ -15,15 +15,15 @@ "@vuelidate/validators": "^2.0.4", "axios": "^1.7.7", "date-fns": "^4.1.0", - "dompurify": "^3.1.7", + "dompurify": "^3.2.0", "json-editor-vue": "^0.17.3", - "marked": "^14.1.3", + "marked": "^15.0.0", "oidc-client-ts": "^3.1.0", - "pinia": "^2.2.5", + "pinia": "^2.2.6", "primeflex": "^3.3.1", "primeicons": "^7.0.0", "primevue": "^3.53.0", - "qrcode.vue": "^3.5.1", + "qrcode.vue": "^3.6.0", "vue": "^3.5.12", "vue-i18n": "^9.13.1", "vue-json-pretty": "^2.4.0", @@ -32,26 +32,26 @@ }, "devDependencies": { "@intlify/eslint-plugin-vue-i18n": "^3.0.0", - "@pinia/testing": "^0.1.6", + "@pinia/testing": "^0.1.7", "@types/dompurify": "^3.0.5", "@typescript-eslint/eslint-plugin": "^7.18.0", "@typescript-eslint/parser": "^7.18.0", - "@vitejs/plugin-vue": "^5.1.4", + "@vitejs/plugin-vue": "^5.1.5", "@vitest/coverage-v8": "^2.1.4", "@vue/eslint-config-prettier": "^9.0.0", "@vue/eslint-config-typescript": "^13.0.0", "@vue/test-utils": "^2.4.6", "eslint": "^8.57.0", "eslint-plugin-prettier": "^5.2.1", - "eslint-plugin-vue": "^9.30.0", + "eslint-plugin-vue": "^9.31.0", "flat": "^6.0.1", "glob": "^11.0.0", "jsdom": "^25.0.1", - "msw": "^2.6.0", + "msw": "^2.6.4", "prettier": "^3.3.3", - "sass": "^1.80.5", + "sass": "^1.80.7", "typescript": "^5.6.3", - "vite": "^5.4.10", + "vite": "^5.4.11", "vitest": "^2.1.4", "vue-tsc": "^2.1.10", "whatwg-fetch": "^3.6.20" @@ -143,13 +143,13 @@ "dev": true }, "node_modules/@bundled-es-modules/cookie": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/@bundled-es-modules/cookie/-/cookie-2.0.0.tgz", - "integrity": "sha512-Or6YHg/kamKHpxULAdSqhGqnWFneIXu1NKvvfBBzKGwpVsYuFIQ5aBPHDnnoR3ghW1nvSkALd+EF9iMtY7Vjxw==", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/@bundled-es-modules/cookie/-/cookie-2.0.1.tgz", + "integrity": "sha512-8o+5fRPLNbjbdGRRmJj3h6Hh1AQJf2dk3qQ/5ZFb+PXkRNiSoMGGUKlsgLfrxneb72axVJyIYji64E2+nNfYyw==", "dev": true, "license": "ISC", "dependencies": { - "cookie": "^0.5.0" + "cookie": "^0.7.2" } }, "node_modules/@bundled-es-modules/statuses": { @@ -1455,6 +1455,7 @@ "resolved": "https://registry.npmjs.org/@parcel/watcher/-/watcher-2.4.1.tgz", "integrity": "sha512-HNjmfLQEVRZmHRET336f20H/8kOozUGwk7yajvsonjNxbj2wBTK1WsQuHkD5yYh9RxFGL2EyDHryOihOwUoKDA==", "license": "MIT", + "optional": true, "dependencies": { "detect-libc": "^1.0.3", "is-glob": "^4.0.3", @@ -1724,9 +1725,9 @@ } }, "node_modules/@pinia/testing": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/@pinia/testing/-/testing-0.1.6.tgz", - "integrity": "sha512-Q40s3kpjXpjmcnc61l84wyG83yVmkBi5rRdSoPpwQoRfSnNKKr52XjFFt6hP8iBxehYS9NR+D57T1uzgnEVPHg==", + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/@pinia/testing/-/testing-0.1.7.tgz", + "integrity": "sha512-xcDq6Ry/kNhZ5bsUMl7DeoFXwdume1NYzDggCiDUDKoPQ6Mo0eH9VU7bJvBtlurqe6byAntWoX5IhVFqWzRz/Q==", "dev": true, "license": "MIT", "dependencies": { @@ -1736,7 +1737,7 @@ "url": "https://github.com/sponsors/posva" }, "peerDependencies": { - "pinia": ">=2.2.3" + "pinia": ">=2.2.6" } }, "node_modules/@pinia/testing/node_modules/vue-demi": { @@ -2324,9 +2325,9 @@ "dev": true }, "node_modules/@vitejs/plugin-vue": { - "version": "5.1.4", - "resolved": "https://registry.npmjs.org/@vitejs/plugin-vue/-/plugin-vue-5.1.4.tgz", - "integrity": "sha512-N2XSI2n3sQqp5w7Y/AN/L2XDjBIRGqXko+eDp42sydYSBeJuSm5a1sLf8zakmo8u7tA8NmBgoDLA1HeOESjp9A==", + "version": "5.1.5", + "resolved": "https://registry.npmjs.org/@vitejs/plugin-vue/-/plugin-vue-5.1.5.tgz", + "integrity": "sha512-dlnib73G05CDBAUR/YpuZcQQ47fpjihnnNouAAqN62z+oqSsWJ+kh52GRzIxpkgFG3q11eXK7Di7RMmoCwISZA==", "dev": true, "license": "MIT", "engines": { @@ -2594,6 +2595,7 @@ "resolved": "https://registry.npmjs.org/@vue/eslint-config-prettier/-/eslint-config-prettier-9.0.0.tgz", "integrity": "sha512-z1ZIAAUS9pKzo/ANEfd2sO+v2IUalz7cM/cTLOZ7vRFOPk5/xuRKQteOu1DErFLAh/lYGXMVZ0IfYKlyInuDVg==", "dev": true, + "license": "MIT", "dependencies": { "eslint-config-prettier": "^9.0.0", "eslint-plugin-prettier": "^5.0.0" @@ -3330,9 +3332,9 @@ } }, "node_modules/cookie": { - "version": "0.5.0", - "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.5.0.tgz", - "integrity": "sha512-YZ3GUyn/o8gfKJlnlX7g7xq4gyO6OSuhGPKaaGssGB2qgDUS0gPgtTvoyZLTt9Ab6dC4hfc9dV5arkvc/OCmrw==", + "version": "0.7.2", + "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.7.2.tgz", + "integrity": "sha512-yki5XnKuf750l50uGTllt6kKILY4nQ1eNIQatoXEByZ5dWgnKqbnqmTrBE5B4N7lrMJKQ2ytWMiTO2o0v6Ew/w==", "dev": true, "license": "MIT", "engines": { @@ -3472,6 +3474,7 @@ "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-1.0.3.tgz", "integrity": "sha512-pGjwhsmsp4kL2RTz08wcOlGN83otlqHeD/Z5T8GXZB+/YcpQ/dgo+lbU8ZsGxV0HIvqqxo9l7mqYwyYMD9bKDg==", "license": "Apache-2.0", + "optional": true, "bin": { "detect-libc": "bin/detect-libc.js" }, @@ -3513,9 +3516,9 @@ } }, "node_modules/dompurify": { - "version": "3.1.7", - "resolved": "https://registry.npmjs.org/dompurify/-/dompurify-3.1.7.tgz", - "integrity": "sha512-VaTstWtsneJY8xzy7DekmYWEOZcmzIe3Qb3zPd4STve1OBTa+e+WmS1ITQec1fZYXI3HCsOZZiSMpG6oxoWMWQ==", + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/dompurify/-/dompurify-3.2.0.tgz", + "integrity": "sha512-AMdOzK44oFWqHEi0wpOqix/fUNY707OmoeFDnbi3Q5I8uOpy21ufUA5cDJPr0bosxrflOVD/H2DMSvuGKJGfmQ==", "license": "(MPL-2.0 OR Apache-2.0)" }, "node_modules/eastasianwidth": { @@ -3777,9 +3780,9 @@ } }, "node_modules/eslint-plugin-vue": { - "version": "9.30.0", - "resolved": "https://registry.npmjs.org/eslint-plugin-vue/-/eslint-plugin-vue-9.30.0.tgz", - "integrity": "sha512-CyqlRgShvljFkOeYK8wN5frh/OGTvkj1S7wlr2Q2pUvwq+X5VYiLd6ZjujpgSgLnys2W8qrBLkXQ41SUYaoPIQ==", + "version": "9.31.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-vue/-/eslint-plugin-vue-9.31.0.tgz", + "integrity": "sha512-aYMUCgivhz1o4tLkRHj5oq9YgYPM4/EJc0M7TAKRLCUA5OYxRLAhYEVD2nLtTwLyixEFI+/QXSvKU9ESZFgqjQ==", "dev": true, "license": "MIT", "dependencies": { @@ -4349,9 +4352,10 @@ } }, "node_modules/immutable": { - "version": "4.3.2", - "resolved": "https://registry.npmjs.org/immutable/-/immutable-4.3.2.tgz", - "integrity": "sha512-oGXzbEDem9OOpDWZu88jGiYCvIsLHMvGw+8OXlpsvTFvIQplQbjg1B1cvKg8f7Hoch6+NGjpPsH1Fr+Mc2D1aA==" + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/immutable/-/immutable-5.0.2.tgz", + "integrity": "sha512-1NU7hWZDkV7hJ4PJ9dur9gTNQ4ePNPN4k9/0YhwjzykTi/+3Q5pF93YU5QoVj8BuOnhLgaY8gs0U2pj4kSYVcw==", + "license": "MIT" }, "node_modules/immutable-json-patch": { "version": "6.0.1", @@ -4950,9 +4954,9 @@ } }, "node_modules/marked": { - "version": "14.1.3", - "resolved": "https://registry.npmjs.org/marked/-/marked-14.1.3.tgz", - "integrity": "sha512-ZibJqTULGlt9g5k4VMARAktMAjXoVnnr+Y3aCqW1oDftcV4BA3UmrBifzXoZyenHRk75csiPu9iwsTj4VNBT0g==", + "version": "15.0.0", + "resolved": "https://registry.npmjs.org/marked/-/marked-15.0.0.tgz", + "integrity": "sha512-0mouKmBROJv/WSHJBPZZyYofUgawMChnD5je/g+aOBXsHDjb/IsnTQj7mnhQZu+qPJmRQ0ecX3mLGEUm3BgwYA==", "license": "MIT", "bin": { "marked": "bin/marked.js" @@ -5047,14 +5051,14 @@ "license": "MIT" }, "node_modules/msw": { - "version": "2.6.0", - "resolved": "https://registry.npmjs.org/msw/-/msw-2.6.0.tgz", - "integrity": "sha512-n3tx2w0MZ3H4pxY0ozrQ4sNPzK/dGtlr2cIIyuEsgq2Bhy4wvcW6ZH2w/gXM9+MEUY6HC1fWhqtcXDxVZr5Jxw==", + "version": "2.6.4", + "resolved": "https://registry.npmjs.org/msw/-/msw-2.6.4.tgz", + "integrity": "sha512-Pm4LmWQeytDsNCR+A7gt39XAdtH6zQb6jnIKRig0FlvYOn8eksn3s1nXxUfz5KYUjbckof7Z4p2ewzgffPoCbg==", "dev": true, "hasInstallScript": true, "license": "MIT", "dependencies": { - "@bundled-es-modules/cookie": "^2.0.0", + "@bundled-es-modules/cookie": "^2.0.1", "@bundled-es-modules/statuses": "^1.0.1", "@bundled-es-modules/tough-cookie": "^0.1.6", "@inquirer/confirm": "^5.0.0", @@ -5154,7 +5158,8 @@ "version": "7.1.1", "resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-7.1.1.tgz", "integrity": "sha512-5m3bsyrjFWE1xf7nz7YXdN4udnVtXK6/Yfgn5qnahL6bCkf2yKt4k3nuTKAtT4r3IG8JNR2ncsIMdZuAzJjHQQ==", - "license": "MIT" + "license": "MIT", + "optional": true }, "node_modules/nopt": { "version": "6.0.0", @@ -5401,9 +5406,9 @@ } }, "node_modules/pinia": { - "version": "2.2.5", - "resolved": "https://registry.npmjs.org/pinia/-/pinia-2.2.5.tgz", - "integrity": "sha512-T4PEQ4uFv2KIRC8A1Y3k1ceQGTDtxtd7nngYGu1IJUUSpuQoYfGq7w7rOc+f5YN1vx3mEs2NjjtN2IFbNS7jqA==", + "version": "2.2.6", + "resolved": "https://registry.npmjs.org/pinia/-/pinia-2.2.6.tgz", + "integrity": "sha512-vIsR8JkDN5Ga2vAxqOE2cJj4VtsHnzpR1Fz30kClxlh0yCHfec6uoMeM3e/ddqmwFUejK3NlrcQa/shnpyT4hA==", "license": "MIT", "dependencies": { "@vue/devtools-api": "^6.6.3", @@ -5585,9 +5590,9 @@ } }, "node_modules/qrcode.vue": { - "version": "3.5.1", - "resolved": "https://registry.npmjs.org/qrcode.vue/-/qrcode.vue-3.5.1.tgz", - "integrity": "sha512-Mek5hpUgYP2KsRW4mnyPMUttknuXSe37UorUzymYi3rr/74rV0aTvejl2gF2phrxwAEm6zhpSvkGzIxftxj5Tg==", + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/qrcode.vue/-/qrcode.vue-3.6.0.tgz", + "integrity": "sha512-vQcl2fyHYHMjDO1GguCldJxepq2izQjBkDEEu9NENgfVKP6mv/e2SU62WbqYHGwTgWXLhxZ1NCD1dAZKHQq1fg==", "license": "MIT", "peerDependencies": { "vue": "^3.0.0" @@ -5786,14 +5791,13 @@ "dev": true }, "node_modules/sass": { - "version": "1.80.5", - "resolved": "https://registry.npmjs.org/sass/-/sass-1.80.5.tgz", - "integrity": "sha512-TQd2aoQl/+zsxRMEDSxVdpPIqeq9UFc6pr7PzkugiTx3VYCFPUaa3P4RrBQsqok4PO200Vkz0vXQBNlg7W907g==", + "version": "1.80.7", + "resolved": "https://registry.npmjs.org/sass/-/sass-1.80.7.tgz", + "integrity": "sha512-MVWvN0u5meytrSjsU7AWsbhoXi1sc58zADXFllfZzbsBT1GHjjar6JwBINYPRrkx/zqnQ6uqbQuHgE95O+C+eQ==", "license": "MIT", "dependencies": { - "@parcel/watcher": "^2.4.1", "chokidar": "^4.0.0", - "immutable": "^4.0.0", + "immutable": "^5.0.2", "source-map-js": ">=0.6.2 <2.0.0" }, "bin": { @@ -5801,6 +5805,9 @@ }, "engines": { "node": ">=14.0.0" + }, + "optionalDependencies": { + "@parcel/watcher": "^2.4.1" } }, "node_modules/sass/node_modules/chokidar": { @@ -6524,9 +6531,9 @@ } }, "node_modules/vite": { - "version": "5.4.10", - "resolved": "https://registry.npmjs.org/vite/-/vite-5.4.10.tgz", - "integrity": "sha512-1hvaPshuPUtxeQ0hsVH3Mud0ZanOLwVTneA1EgbAM5LhaZEqyPWGRQ7BtaMvUrTDeEaC8pxtj6a6jku3x4z6SQ==", + "version": "5.4.11", + "resolved": "https://registry.npmjs.org/vite/-/vite-5.4.11.tgz", + "integrity": "sha512-c7jFQRklXua0mTzneGW9QVyxFjUgwcihC4bXEtujIo2ouWCe1Ajt/amn2PCxYnhYfd5k09JX3SB7OYWFKYqj8Q==", "dev": true, "license": "MIT", "dependencies": { diff --git a/services/tenant-ui/frontend/package.json b/services/tenant-ui/frontend/package.json index 94e799ca1..fe1d73264 100644 --- a/services/tenant-ui/frontend/package.json +++ b/services/tenant-ui/frontend/package.json @@ -23,15 +23,15 @@ "@vuelidate/validators": "^2.0.4", "axios": "^1.7.7", "date-fns": "^4.1.0", - "dompurify": "^3.1.7", + "dompurify": "^3.2.0", "json-editor-vue": "^0.17.3", - "marked": "^14.1.3", + "marked": "^15.0.0", "oidc-client-ts": "^3.1.0", - "pinia": "^2.2.5", + "pinia": "^2.2.6", "primeflex": "^3.3.1", "primeicons": "^7.0.0", "primevue": "^3.53.0", - "qrcode.vue": "^3.5.1", + "qrcode.vue": "^3.6.0", "vue": "^3.5.12", "vue-i18n": "^9.13.1", "vue-json-pretty": "^2.4.0", @@ -40,26 +40,26 @@ }, "devDependencies": { "@intlify/eslint-plugin-vue-i18n": "^3.0.0", - "@pinia/testing": "^0.1.6", + "@pinia/testing": "^0.1.7", "@types/dompurify": "^3.0.5", "@typescript-eslint/eslint-plugin": "^7.18.0", "@typescript-eslint/parser": "^7.18.0", - "@vitejs/plugin-vue": "^5.1.4", + "@vitejs/plugin-vue": "^5.1.5", "@vitest/coverage-v8": "^2.1.4", "@vue/eslint-config-prettier": "^9.0.0", "@vue/eslint-config-typescript": "^13.0.0", "@vue/test-utils": "^2.4.6", "eslint": "^8.57.0", "eslint-plugin-prettier": "^5.2.1", - "eslint-plugin-vue": "^9.30.0", + "eslint-plugin-vue": "^9.31.0", "flat": "^6.0.1", "glob": "^11.0.0", "jsdom": "^25.0.1", - "msw": "^2.6.0", + "msw": "^2.6.4", "prettier": "^3.3.3", - "sass": "^1.80.5", + "sass": "^1.80.7", "typescript": "^5.6.3", - "vite": "^5.4.10", + "vite": "^5.4.11", "vitest": "^2.1.4", "vue-tsc": "^2.1.10", "whatwg-fetch": "^3.6.20" diff --git a/services/tenant-ui/frontend/src/components/profile/SettingsForm.vue b/services/tenant-ui/frontend/src/components/profile/SettingsForm.vue index c38acc877..2ca2b0b51 100644 --- a/services/tenant-ui/frontend/src/components/profile/SettingsForm.vue +++ b/services/tenant-ui/frontend/src/components/profile/SettingsForm.vue @@ -371,7 +371,7 @@