From 9f0b82c0d5d75fbb958231b9738a056e880564aa Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 13 Jan 2025 20:55:32 +0000 Subject: [PATCH 01/65] Bump docker/build-push-action from 6.10.0 to 6.11.0 Bumps [docker/build-push-action](https://github.com/docker/build-push-action) from 6.10.0 to 6.11.0. - [Release notes](https://github.com/docker/build-push-action/releases) - [Commits](https://github.com/docker/build-push-action/compare/48aba3b46d1b1fec4febb7c5d0c644b249a11355...b32b51a8eda65d6793cd0494a773d4f6bcef32dc) --- updated-dependencies: - dependency-name: docker/build-push-action dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- .github/workflows/docker-publish.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/docker-publish.yml b/.github/workflows/docker-publish.yml index 93ed800bf..99e4b6fbe 100644 --- a/.github/workflows/docker-publish.yml +++ b/.github/workflows/docker-publish.yml @@ -55,7 +55,7 @@ jobs: # Build and push Docker image with Buildx (don't push on PR) # https://github.com/docker/build-push-action - name: Build and push Docker image - uses: docker/build-push-action@48aba3b46d1b1fec4febb7c5d0c644b249a11355 + uses: docker/build-push-action@b32b51a8eda65d6793cd0494a773d4f6bcef32dc with: context: . push: ${{ github.event_name != 'pull_request' }} From 8d0a07e1a8a401740906c345bf43f8d66b22557d Mon Sep 17 00:00:00 2001 From: Lauri Ojansivu Date: Sun, 19 Jan 2025 23:06:23 +0200 Subject: [PATCH 02/65] Updated translations. --- imports/i18n/data/fr.i18n.json | 42 +++++++++++++++++----------------- imports/i18n/data/tr.i18n.json | 12 +++++----- 2 files changed, 27 insertions(+), 27 deletions(-) diff --git a/imports/i18n/data/fr.i18n.json b/imports/i18n/data/fr.i18n.json index 9012324e6..9cf32fbbf 100644 --- a/imports/i18n/data/fr.i18n.json +++ b/imports/i18n/data/fr.i18n.json @@ -107,7 +107,7 @@ "add-label": "Ajouter une étiquette", "add-list": "Ajouter une liste", "add-after-list": "Ajouter après la liste", - "add-members": "Assigner des participants", + "add-members": "Ajouter des participants", "added": "Ajouté le", "addMemberPopup-title": "Participants", "memberPopup-title": "Préférence du participant", @@ -139,7 +139,7 @@ "templates": "Modèles", "template-container": "Conteneur de modèles", "add-template-container": "Ajouter un conteneur de modèles", - "assign-member": "Affecter un participant", + "assign-member": "Attribuer à un participant", "attached": "joint", "attachment": "Pièce jointe", "attachment-delete-pop": "La suppression d'une pièce jointe est définitive. Cela est irréversible.", @@ -199,7 +199,7 @@ "card-edit-labels": "Gérer les étiquettes", "card-edit-members": "Gérer les participants", "card-labels-title": "Modifier les étiquettes de la carte.", - "card-members-title": "Assigner ou supprimer des participants à la carte.", + "card-members-title": "Ajouter ou supprimer des participants du tableau à la carte.", "card-start": "Début", "card-start-on": "Commence le", "cardAttachmentsPopup-title": "Ajouter depuis", @@ -310,7 +310,7 @@ "no-comments": "Aucun commentaire", "no-comments-desc": "Ne peut pas voir les commentaires et les activités.", "worker": "Travailleur", - "worker-desc": "Peut seulement déplacer des cartes, s'assigner à une carte et la commenter.", + "worker-desc": "Peut seulement déplacer des cartes, s'attribuer une carte et la commenter.", "computer": "Ordinateur", "confirm-subtask-delete-popup": "Êtes-vous sûr de vouloir supprimer la sous-tâche ?", "confirm-checklist-delete-popup": "Êtes-vous sûr de vouloir supprimer la check-list ?", @@ -437,8 +437,8 @@ "filter-no-label": "Aucune étiquette", "filter-member-label": "Filtrer par participant", "filter-no-member": "Aucun participant", - "filter-assignee-label": "Filtrer par personne en charge", - "filter-no-assignee": "Pas de personne en charge", + "filter-assignee-label": "Filtrer par intervenant", + "filter-no-assignee": "Pas d'intervenant", "filter-custom-fields-label": "Filtrer par champs personnalisés", "filter-no-custom-fields": "Pas de champs personnalisés", "filter-show-archive": "Montrer les listes archivées", @@ -471,9 +471,9 @@ "import-board-instruction-about-errors": "Si une erreur survient en important le tableau, il se peut que l'import ait fonctionné, et que le tableau se trouve sur la page \"Tous les tableaux\".", "import-json-placeholder": "Collez ici les données JSON valides", "import-csv-placeholder": "Déposez ici vos données valides CSV/TSV", - "import-map-members": "Assigner des participants", - "import-members-map": "Le tableau que vous venez d'importer contient des participants. Veuillez assigner les participants que vous souhaitez importer à vos utilisateurs.", - "import-members-map-note": "Note: les participants ne concordant pas seront assignés à l'utilisateur courant.", + "import-map-members": "Faire correspondre les participants", + "import-members-map": "Le tableau que vous venez d'importer contient des participants. Veuillez faire correspondre les participants que vous souhaitez importer à vos utilisateurs.", + "import-members-map-note": "Note: les participants ne concordant pas seront attribués à l'utilisateur courant.", "import-show-user-mapping": "Contrôler l'assignation des participants", "import-user-select": "Sélectionnez l'utilisateur existant que vous voulez associer à ce participant", "importMapMembersAddPopup-title": "Sélectionner le participant", @@ -581,13 +581,13 @@ "set-wip-limit-value": "Définit une limite maximale au nombre de cartes de cette liste", "setWipLimitPopup-title": "Définir la limite WIP", "shortcut-add-self": "S'ajouter à la carte courante", - "shortcut-assign-self": "Affecter cette carte à vous-même", + "shortcut-assign-self": "S'attribuer cette carte", "shortcut-autocomplete-emoji": "Auto-complétion des emoji", "shortcut-autocomplete-members": "Auto-complétion des participants", "shortcut-clear-filters": "Retirer tous les filtres", "shortcut-close-dialog": "Fermer la boîte de dialogue", "shortcut-filter-my-cards": "Filtrer mes cartes", - "shortcut-filter-my-assigned-cards": "Filtrer mes cartes assignées", + "shortcut-filter-my-assigned-cards": "Filtrer mes cartes attribuées", "shortcut-show-shortcuts": "Afficher cette liste de raccourcis", "shortcut-toggle-filterbar": "Afficher/Masquer la barre latérale des filtres", "shortcut-toggle-searchbar": "Afficher/Masquer la barre latérale de recherche", @@ -610,7 +610,7 @@ "has-spenttime-cards": "A des cartes avec du temps passé", "time": "Temps", "title": "Titre", - "toggle-assignees": "Changer les personnes en charge 1-9 sur les cartes (par ordre d'ajout au tableau)", + "toggle-assignees": "Changer les intervenants 1-9 sur une carte (par ordre d'ajout au tableau)", "toggle-labels": "Afficher/Masquer les étiquettes 1-9 sur les cartes. La sélection multiple ajoute les étiquettes 1-9", "remove-labels-multiselect": "La multi-sélection supprime les étiquettes 1-9", "tracking": "Suivi", @@ -729,7 +729,7 @@ "setCardActionsColorPopup-title": "Choisissez une couleur", "setSwimlaneColorPopup-title": "Choisissez une couleur", "setListColorPopup-title": "Choisissez une couleur", - "assigned-by": "Assigné par", + "assigned-by": "Attribué par", "requested-by": "Demandé par", "card-sorting-by-number": "Tri numérique des cartes", "board-delete-notice": "La suppression est définitive. Vous perdrez toutes les listes, cartes et actions associées à ce tableau.", @@ -928,8 +928,8 @@ "accounts-allowUserDelete": "Autoriser les utilisateurs à supprimer leur compte", "hide-minicard-label-text": "Cacher l'étiquette de la mini-carte", "show-desktop-drag-handles": "Voir les poignées de déplacement du bureau", - "assignee": "Personne en charge", - "cardAssigneesPopup-title": "Personne en charge", + "assignee": "Intervenant", + "cardAssigneesPopup-title": "Intervenant", "addmore-detail": "Ajouter une description plus détaillée", "show-on-card": "Afficher sur la carte", "show-on-minicard": "Afficher sur la mini-carte", @@ -1023,7 +1023,7 @@ "operator-user-abbrev": "@", "operator-member": "participant", "operator-member-abbrev": "m", - "operator-assignee": "personne en charge", + "operator-assignee": "intervenant", "operator-assignee-abbrev": "a", "operator-creator": "créateur", "operator-status": "statut", @@ -1054,7 +1054,7 @@ "predicate-checklist": "check-list", "predicate-start": "début", "predicate-end": "fin", - "predicate-assignee": "personne en charge", + "predicate-assignee": "intervenant", "predicate-member": "participant", "predicate-public": "public", "predicate-private": "privé", @@ -1079,13 +1079,13 @@ "globalSearch-instructions-operator-comment": "`__operator_comment__:` - cartes dont le commentaire contient **.", "globalSearch-instructions-operator-label": "`__operator_label__:` `__operator_label__:` - cartes qui ont une étiquette correspondant à ** ou à **.", "globalSearch-instructions-operator-hash": "`__operator_label_abbrev__` - raccourci pour `__operator_label__:` ou `__operator_label__:`", - "globalSearch-instructions-operator-user": "`__operator_user__:` - cartes où l'utilisateur est *participant* ou est *en charge*.", + "globalSearch-instructions-operator-user": "`__operator_user__:` - cartes où l'utilisateur est *participant* ou *intervenant*.", "globalSearch-instructions-operator-at": "`__operator_user_abbrev__nom` - raccourci pour `__operator_user__:`", "globalSearch-instructions-operator-member": "`__operator_member__:` - cartes pour lesquelles l'utilisateur ** est *participant*", - "globalSearch-instructions-operator-assignee": "`__operator_assignee__:` - cartes *assignées* à l'utilisateur **", + "globalSearch-instructions-operator-assignee": "`__operator_assignee__:` - cartes *attribuées* à l'utilisateur **", "globalSearch-instructions-operator-creator": "`__operator_creator__:` - cartes dont le créateur est **", - "globalSearch-instructions-operator-org": "`__operator_org__:` - cartes appartenant à un tableau assigné à l'organisation **", - "globalSearch-instructions-operator-team": "`__operator_team__:` - cartes appartenant à un tableau assigné à l'équipe **", + "globalSearch-instructions-operator-org": "`__operator_org__:` - cartes appartenant à un tableau attribué à l'organisation **", + "globalSearch-instructions-operator-team": "`__operator_team__:` - cartes appartenant à un tableau attribué à l'équipe **", "globalSearch-instructions-operator-due": "`__operator_due__:` - cartes qui arrive à échéance dans moins de ** jours à partir d'aujourd'hui.\n`__operator_due__:__predicate_overdue__` liste toutes les cartes ayant passé la date d'échéance.", "globalSearch-instructions-operator-created": "`__operator_created__:` - cartes qui ont été créées il y a ** jours ou moins", "globalSearch-instructions-operator-modified": "`__operator_modified__:` - cartes qui ont été modifiées il y a ** jours ou moins", diff --git a/imports/i18n/data/tr.i18n.json b/imports/i18n/data/tr.i18n.json index 18ef7cbe6..97e148dee 100644 --- a/imports/i18n/data/tr.i18n.json +++ b/imports/i18n/data/tr.i18n.json @@ -49,7 +49,7 @@ "activity-archived": "%s Arşive taşındı", "activity-attached": "%s içine %s ekledi", "activity-created": "%s öğesini oluşturdu", - "activity-changedListTitle": "renamed list to %s", + "activity-changedListTitle": "Liste adı %syapıldı", "activity-customfield-created": "%s adlı özel alan yaratıldı", "activity-excluded": "%s içinden %s çıkarttı", "activity-imported": "%s kaynağından %s öğesini %s öğesinin içine taşıdı", @@ -86,10 +86,10 @@ "add-card": "Kart Ekle", "add-card-to-top-of-list": "Listenin Başına Kart Ekle", "add-card-to-bottom-of-list": "Listenin Sonuna Kart Ekle", - "setListWidthPopup-title": "Set Widths", - "set-list-width": "Set Widths", - "set-list-width-value": "Set Min & Max Widths (pixels)", - "list-width-error-message": "List widths must be integers greater than 100", + "setListWidthPopup-title": "Genişlik Ata", + "set-list-width": "Genişlik Ata", + "set-list-width-value": "En Az & En Çok Genişlik (piksel) Ata ", + "list-width-error-message": "Liste genişliği 100'den büyük sayısal bir değer olmalı", "keyboard-shortcuts-enabled": "Keyboard shortcuts enabled. Click to disable.", "keyboard-shortcuts-disabled": "Keyboard shortcuts disabled. Click to enable.", "setSwimlaneHeightPopup-title": "Kulvar Uzunluğunu Ayarla", @@ -300,7 +300,7 @@ "color-white": "beyaz", "color-yellow": "sarı", "unset-color": "Seçilmemiş", - "comments": "Comments", + "comments": "Yorumlar", "comment": "Yorum", "comment-placeholder": "Yorum Yaz", "comment-only": "Sadece yorum", From a6d9bde658bc97991a9ecff66eca573b1d263184 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 20 Jan 2025 20:02:13 +0000 Subject: [PATCH 03/65] Bump docker/build-push-action from 6.11.0 to 6.12.0 Bumps [docker/build-push-action](https://github.com/docker/build-push-action) from 6.11.0 to 6.12.0. - [Release notes](https://github.com/docker/build-push-action/releases) - [Commits](https://github.com/docker/build-push-action/compare/b32b51a8eda65d6793cd0494a773d4f6bcef32dc...67a2d409c0a876cbe6b11854e3e25193efe4e62d) --- updated-dependencies: - dependency-name: docker/build-push-action dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- .github/workflows/docker-publish.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/docker-publish.yml b/.github/workflows/docker-publish.yml index 99e4b6fbe..fc886ede4 100644 --- a/.github/workflows/docker-publish.yml +++ b/.github/workflows/docker-publish.yml @@ -55,7 +55,7 @@ jobs: # Build and push Docker image with Buildx (don't push on PR) # https://github.com/docker/build-push-action - name: Build and push Docker image - uses: docker/build-push-action@b32b51a8eda65d6793cd0494a773d4f6bcef32dc + uses: docker/build-push-action@67a2d409c0a876cbe6b11854e3e25193efe4e62d with: context: . push: ${{ github.event_name != 'pull_request' }} From 261e0aee0f4688b91187021d3019d4512347a000 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 20 Jan 2025 20:02:15 +0000 Subject: [PATCH 04/65] Bump helm/chart-releaser-action from 1.6.0 to 1.7.0 Bumps [helm/chart-releaser-action](https://github.com/helm/chart-releaser-action) from 1.6.0 to 1.7.0. - [Release notes](https://github.com/helm/chart-releaser-action/releases) - [Commits](https://github.com/helm/chart-releaser-action/compare/v1.6.0...v1.7.0) --- updated-dependencies: - dependency-name: helm/chart-releaser-action dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- .github/workflows/release.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index dbe30ccaa..fcdbed26d 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -25,6 +25,6 @@ jobs: git config user.email "$GITHUB_ACTOR@users.noreply.github.com" - name: Run chart-releaser - uses: helm/chart-releaser-action@v1.6.0 + uses: helm/chart-releaser-action@v1.7.0 env: CR_TOKEN: "${{ secrets.GITHUB_TOKEN }}" From de84aa7674dbfd379c391c094f0cfe88e0812f52 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 27 Jan 2025 20:17:17 +0000 Subject: [PATCH 05/65] Bump docker/build-push-action from 6.12.0 to 6.13.0 Bumps [docker/build-push-action](https://github.com/docker/build-push-action) from 6.12.0 to 6.13.0. - [Release notes](https://github.com/docker/build-push-action/releases) - [Commits](https://github.com/docker/build-push-action/compare/67a2d409c0a876cbe6b11854e3e25193efe4e62d...ca877d9245402d1537745e0e356eab47c3520991) --- updated-dependencies: - dependency-name: docker/build-push-action dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- .github/workflows/docker-publish.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/docker-publish.yml b/.github/workflows/docker-publish.yml index fc886ede4..b01711dd8 100644 --- a/.github/workflows/docker-publish.yml +++ b/.github/workflows/docker-publish.yml @@ -55,7 +55,7 @@ jobs: # Build and push Docker image with Buildx (don't push on PR) # https://github.com/docker/build-push-action - name: Build and push Docker image - uses: docker/build-push-action@67a2d409c0a876cbe6b11854e3e25193efe4e62d + uses: docker/build-push-action@ca877d9245402d1537745e0e356eab47c3520991 with: context: . push: ${{ github.event_name != 'pull_request' }} From 16c8a65a1c40d9831b450ba778ca59883f6c87b4 Mon Sep 17 00:00:00 2001 From: Lauri Ojansivu Date: Wed, 29 Jan 2025 10:22:08 +0200 Subject: [PATCH 06/65] Updated ChangeLog. --- CHANGELOG.md | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index c0ea150d0..0983da510 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -15,6 +15,15 @@ Fixing other platforms In Progress. [How to upgrade WeKan](https://github.com/wekan/wekan/issues/4585) +# Upcoming WeKan ® release + +This release adds the following new features: + +- [Helm Chart: Added secretManaged value for enabling or disabling the creation of secret by Helm](https://github.com/wekan/charts/pull/39). + Thanks to salleman33. + +Thanks to above GitHub users for their contributions and translators for their translations. + # v7.80 2025-01-12 WeKan ® release This release fixes the following bugs: From 151aafd114ccf8a0324fd219d9a5012d5507abd8 Mon Sep 17 00:00:00 2001 From: Lauri Ojansivu Date: Wed, 29 Jan 2025 10:23:12 +0200 Subject: [PATCH 07/65] Updated ChangeLog. --- CHANGELOG.md | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 0983da510..6da1c083d 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -22,6 +22,11 @@ This release adds the following new features: - [Helm Chart: Added secretManaged value for enabling or disabling the creation of secret by Helm](https://github.com/wekan/charts/pull/39). Thanks to salleman33. +and adds the following updates: + +- [Updated Docker Actions](https://github.com/wekan/wekan/pull/5670). + Thanks to dependabot. + Thanks to above GitHub users for their contributions and translators for their translations. # v7.80 2025-01-12 WeKan ® release From 0b1e0bd39569175668c195b63dde91bf0e6f1b24 Mon Sep 17 00:00:00 2001 From: Lauri Ojansivu Date: Wed, 29 Jan 2025 13:38:40 +0200 Subject: [PATCH 08/65] Fixed env variable METRICS_ACCEPTED_IP_ADDRESS to be same as at docs. Thanks to salleman33 ! Fixes #5671 --- models/server/metrics.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/models/server/metrics.js b/models/server/metrics.js index f60e678d0..832f607ed 100644 --- a/models/server/metrics.js +++ b/models/server/metrics.js @@ -2,7 +2,7 @@ import { Meteor } from 'meteor/meteor'; import Users from '../users'; function acceptedIpAddress(ipAddress) { - const trustedIpAddress = process.env.WEKAN_METRICS_ACCEPTED_IP_ADDRESS; + const trustedIpAddress = process.env.METRICS_ACCEPTED_IP_ADDRESS; return ( trustedIpAddress !== undefined && trustedIpAddress.split(',').includes(ipAddress) @@ -48,7 +48,7 @@ Meteor.startup(() => { // const ipAddress = req.socket.remoteAddress // } - // List of trusted ip adress will be found in environment variable "WEKAN_METRICS_ACCEPTED_IP_ADDRESS" (separeted with commas) + // List of trusted ip adress will be found in environment variable "METRICS_ACCEPTED_IP_ADDRESS" (separeted with commas) if (acceptedIpAddress(ipAddress)) { let metricsRes = ''; let resCount = 0; From 51bc23dbd92f352607794703eb2d3d76fe268098 Mon Sep 17 00:00:00 2001 From: Lauri Ojansivu Date: Wed, 29 Jan 2025 13:40:34 +0200 Subject: [PATCH 09/65] Updated ChangeLog. --- CHANGELOG.md | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 6da1c083d..b8c2285c3 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -27,6 +27,11 @@ and adds the following updates: - [Updated Docker Actions](https://github.com/wekan/wekan/pull/5670). Thanks to dependabot. +and fixes the following bugs: + +- [Fixed env variable METRICS_ACCEPTED_IP_ADDRESS to be same as at docs](https://github.com/wekan/wekan/commit/0b1e0bd39569175668c195b63dde91bf0e6f1b24). + Thanks to salleman33. + Thanks to above GitHub users for their contributions and translators for their translations. # v7.80 2025-01-12 WeKan ® release From 36a307785369337a788499065f64175971878930 Mon Sep 17 00:00:00 2001 From: Lauri Ojansivu Date: Wed, 29 Jan 2025 14:09:31 +0200 Subject: [PATCH 10/65] Fix misspelling of hours at env variable setting LDAP_BACKGROUND_SYNC_INTERVAL. Thanks to hubermam ! Fixes #5665 --- docker-compose.yml | 8 +++- docker-compose.yml-arm64 | 8 +++- docs/Login/LDAP.md | 42 +++++++++++++++---- .../FOSS/torodb-postgresql/docker-compose.yml | 9 ++++ start-wekan.bat | 3 ++ start-wekan.sh | 3 ++ 6 files changed, 62 insertions(+), 11 deletions(-) diff --git a/docker-compose.yml b/docker-compose.yml index 752b2ad8d..f2e47e168 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -577,10 +577,14 @@ services: # If the sync of the users should be done in the background #- LDAP_BACKGROUND_SYNC=false # - # At which interval does the background task sync. + # LDAP_BACKGROUND_SYNC_INTERVAL : At which interval does the background task sync in milliseconds # The format must be as specified in: # https://bunkat.github.io/later/parsers.html#text - #- LDAP_BACKGROUND_SYNC_INTERVAL=every 1 hour + #- LDAP_BACKGROUND_SYNC_INTERVAL=every 1 hours + # At which interval does the background task sync in milliseconds. + # Leave this unset, so it uses default, and does not crash. + # https://github.com/wekan/wekan/issues/2354#issuecomment-515305722 + - LDAP_BACKGROUND_SYNC_INTERVAL='' # #- LDAP_BACKGROUND_SYNC_KEEP_EXISTANT_USERS_UPDATED=false # diff --git a/docker-compose.yml-arm64 b/docker-compose.yml-arm64 index 85ea0f555..ab0ae56d9 100644 --- a/docker-compose.yml-arm64 +++ b/docker-compose.yml-arm64 @@ -575,10 +575,14 @@ services: # If the sync of the users should be done in the background #- LDAP_BACKGROUND_SYNC=false # - # At which interval does the background task sync. + # LDAP_BACKGROUND_SYNC_INTERVAL : At which interval does the background task sync in milliseconds # The format must be as specified in: # https://bunkat.github.io/later/parsers.html#text - #- LDAP_BACKGROUND_SYNC_INTERVAL=every 1 hour + #- LDAP_BACKGROUND_SYNC_INTERVAL=every 1 hours + # At which interval does the background task sync in milliseconds. + # Leave this unset, so it uses default, and does not crash. + # https://github.com/wekan/wekan/issues/2354#issuecomment-515305722 + - LDAP_BACKGROUND_SYNC_INTERVAL='' # #- LDAP_BACKGROUND_SYNC_KEEP_EXISTANT_USERS_UPDATED=false # diff --git a/docs/Login/LDAP.md b/docs/Login/LDAP.md index ba9d299e0..33f885ea6 100644 --- a/docs/Login/LDAP.md +++ b/docs/Login/LDAP.md @@ -52,7 +52,15 @@ sudo snap set wekan ldap-authentication-userdn='CN=LDAP-User,OU=Service Accounts sudo snap set wekan ldap-authentication-password='' sudo snap set wekan ldap-log-enabled='true' sudo snap set wekan ldap-background-sync='true' -sudo snap set wekan ldap-background-sync-interval='every 1 minute' +# LDAP_BACKGROUND_SYNC_INTERVAL : At which interval does the background task sync in milliseconds +# The format must be as specified in: +# https://bunkat.github.io/later/parsers.html#text +#sudo snap set wekan ldap-background-sync-interval='every 1 hours' +# At which interval does the background task sync in milliseconds. +# If not in use, Leave this unset, so it uses default, and does not crash. +# https://github.com/wekan/wekan/issues/2354#issuecomment-515305722 +#sudo snap set wekan ldap-background-sync-interval='' +sudo snap set wekan ldap-background-sync-interval='every 1 hours' sudo snap set wekan ldap-background-sync-keep-existant-users-updated='true' sudo snap set wekan ldap-background-sync-import-new-users='true' sudo snap set wekan ldap-encryption='false' @@ -100,7 +108,15 @@ snap set wekan ldap-basedn='dc=example,dc=com' snap set wekan ldap-background-sync='true' snap set wekan ldap-background-sync-keep-existant-users-updated='true' snap set wekan ldap-background-sync-import-new-users='true' -snap set wekan ldap-background-sync-interval='Every 1 minute' +# LDAP_BACKGROUND_SYNC_INTERVAL : At which interval does the background task sync in milliseconds +# The format must be as specified in: +# https://bunkat.github.io/later/parsers.html#text +#sudo snap set wekan ldap-background-sync-interval='every 1 hours' +# At which interval does the background task sync in milliseconds. +# If not in use, Leave this unset, so it uses default, and does not crash. +# https://github.com/wekan/wekan/issues/2354#issuecomment-515305722 +#sudo snap set wekan ldap-background-sync-interval='' +snap set wekan ldap-background-sync-interval='every 1 hours' snap set wekan ldap-merge-existing-users='true' snap set wekan ldap-user-search-field='uid' snap set wekan ldap-user-search-filter='(&(objectclass=person))' @@ -121,7 +137,15 @@ sudo snap set wekan ldap-authentication-password='********' sudo snap set wekan ldap-authentication-userdn='cn=admin,dc=*******,dc=lan' sudo snap set wekan ldap-background-sync='true' sudo snap set wekan ldap-background-sync-import-new-users='true' -sudo snap set wekan ldap-background-sync-interval='Every 1 minute' +# LDAP_BACKGROUND_SYNC_INTERVAL : At which interval does the background task sync in milliseconds +# The format must be as specified in: +# https://bunkat.github.io/later/parsers.html#text +#sudo snap set wekan ldap-background-sync-interval='every 1 hours' +# At which interval does the background task sync in milliseconds. +# If not in use, Leave this unset, so it uses default, and does not crash. +# https://github.com/wekan/wekan/issues/2354#issuecomment-515305722 +#sudo snap set wekan ldap-background-sync-interval='' +sudo snap set wekan ldap-background-sync-interval='every 1 hours' sudo snap set wekan ldap-basedn='dc=*****,dc=lan' sudo snap set wekan ldap-email-field='mail' sudo snap set wekan ldap-enable='true' @@ -316,10 +340,14 @@ services: # LDAP_BACKGROUND_SYNC : If the sync of the users should be done in the background # example : LDAP_BACKGROUND_SYNC=true - LDAP_BACKGROUND_SYNC=false - # LDAP_BACKGROUND_SYNC_INTERVAL : At which interval does the background task sync - # example : LDAP_BACKGROUND_SYNC_INTERVAL='every 15 minutes' - # for more info: http://bunkat.github.io/later/parsers.html#text - - LDAP_BACKGROUND_SYNC_INTERVAL='every 1 hour' + # LDAP_BACKGROUND_SYNC_INTERVAL : At which interval does the background task sync in milliseconds + # The format must be as specified in: + # https://bunkat.github.io/later/parsers.html#text + #- LDAP_BACKGROUND_SYNC_INTERVAL=every 1 hours + # At which interval does the background task sync in milliseconds. + # Leave this unset, so it uses default, and does not crash. + # https://github.com/wekan/wekan/issues/2354#issuecomment-515305722 + - LDAP_BACKGROUND_SYNC_INTERVAL='' # LDAP_BACKGROUND_SYNC_KEEP_EXISTANT_USERS_UPDATED : # example : LDAP_BACKGROUND_SYNC_KEEP_EXISTANT_USERS_UPDATED=true - LDAP_BACKGROUND_SYNC_KEEP_EXISTANT_USERS_UPDATED=false diff --git a/docs/Platforms/FOSS/torodb-postgresql/docker-compose.yml b/docs/Platforms/FOSS/torodb-postgresql/docker-compose.yml index fed2910d9..c47b831d1 100644 --- a/docs/Platforms/FOSS/torodb-postgresql/docker-compose.yml +++ b/docs/Platforms/FOSS/torodb-postgresql/docker-compose.yml @@ -520,6 +520,15 @@ services: # https://bunkat.github.io/later/parsers.html#text #- LDAP_BACKGROUND_SYNC_INTERVAL='every 1 hour' # + # LDAP_BACKGROUND_SYNC_INTERVAL : At which interval does the background task sync in milliseconds + # The format must be as specified in: + # https://bunkat.github.io/later/parsers.html#text + #- LDAP_BACKGROUND_SYNC_INTERVAL=every 1 hours + # At which interval does the background task sync in milliseconds. + # Leave this unset, so it uses default, and does not crash. + # https://github.com/wekan/wekan/issues/2354#issuecomment-515305722 + - LDAP_BACKGROUND_SYNC_INTERVAL='' + # # LDAP_BACKGROUND_SYNC_KEEP_EXISTANT_USERS_UPDATED : # example : LDAP_BACKGROUND_SYNC_KEEP_EXISTANT_USERS_UPDATED=true #- LDAP_BACKGROUND_SYNC_KEEP_EXISTANT_USERS_UPDATED=false diff --git a/start-wekan.bat b/start-wekan.bat index 2cf6fa92f..81624601b 100644 --- a/start-wekan.bat +++ b/start-wekan.bat @@ -459,6 +459,9 @@ REM # example : LDAP_BACKGROUND_SYNC=true REM SET LDAP_BACKGROUND_SYNC=false REM # LDAP_BACKGROUND_SYNC_INTERVAL : At which interval does the background task sync in milliseconds +REM # The format must be as specified in: +REM # https://bunkat.github.io/later/parsers.html#text +REM SET LDAP_BACKGROUND_SYNC_INTERVAL=every 1 hours REM # At which interval does the background task sync in milliseconds. REM # Leave this unset, so it uses default, and does not crash. REM # https://github.com/wekan/wekan/issues/2354#issuecomment-515305722 diff --git a/start-wekan.sh b/start-wekan.sh index c67a16bfa..3bf00af06 100755 --- a/start-wekan.sh +++ b/start-wekan.sh @@ -385,6 +385,9 @@ #export LDAP_BACKGROUND_SYNC=false # # LDAP_BACKGROUND_SYNC_INTERVAL : At which interval does the background task sync in milliseconds + # The format must be as specified in: + # https://bunkat.github.io/later/parsers.html#text + #export LDAP_BACKGROUND_SYNC_INTERVAL=every 1 hours # At which interval does the background task sync in milliseconds. # Leave this unset, so it uses default, and does not crash. # https://github.com/wekan/wekan/issues/2354#issuecomment-515305722 From 0c7e12c5e7f322bdbaaa61100e66153dd0b92e4d Mon Sep 17 00:00:00 2001 From: Lauri Ojansivu Date: Wed, 29 Jan 2025 14:13:21 +0200 Subject: [PATCH 11/65] Added Meteor 3.1 learning course to docs. Thanks to producer of learning course ! --- docs/DeveloperDocs/Meteor.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/docs/DeveloperDocs/Meteor.md b/docs/DeveloperDocs/Meteor.md index 8bda65362..7a77196c2 100644 --- a/docs/DeveloperDocs/Meteor.md +++ b/docs/DeveloperDocs/Meteor.md @@ -1,3 +1,7 @@ +## Learning Course: Your First Meteor 3.1 Application + +- https://www.youtube.com/watch?v=aFZzBb2oRi8&list=PLKKckIyt2nF863eP16mvVgWKR4JDyJoKy + ## Meteor 3 Example Code - https://github.com/fredmaiaarantes/simpletasks From d15faa189063725cd2e20e07ecd7609af1f4023c Mon Sep 17 00:00:00 2001 From: Lauri Ojansivu Date: Wed, 29 Jan 2025 14:15:31 +0200 Subject: [PATCH 12/65] Updated ChangeLog. --- CHANGELOG.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index b8c2285c3..7fce1a7d2 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -26,11 +26,15 @@ and adds the following updates: - [Updated Docker Actions](https://github.com/wekan/wekan/pull/5670). Thanks to dependabot. +- [Added Meteor 3.1 learning course to docs](https://github.com/wekan/wekan/commit/0c7e12c5e7f322bdbaaa61100e66153dd0b92e4d). + Thanks to producer of learning course. and fixes the following bugs: - [Fixed env variable METRICS_ACCEPTED_IP_ADDRESS to be same as at docs](https://github.com/wekan/wekan/commit/0b1e0bd39569175668c195b63dde91bf0e6f1b24). Thanks to salleman33. +- [Fixed misspelling of hours at env variable setting LDAP_BACKGROUND_SYNC_INTERVAL](https://github.com/wekan/wekan/commit/36a307785369337a788499065f64175971878930). + Thanks to hubermam. Thanks to above GitHub users for their contributions and translators for their translations. From fd69c7ceb8328e362554856c89d880e9e4690a71 Mon Sep 17 00:00:00 2001 From: Lauri Ojansivu Date: Wed, 5 Feb 2025 04:41:42 +0200 Subject: [PATCH 13/65] Updated ChangeLog. --- CHANGELOG.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 7fce1a7d2..e88c3bdb0 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -35,6 +35,8 @@ and fixes the following bugs: Thanks to salleman33. - [Fixed misspelling of hours at env variable setting LDAP_BACKGROUND_SYNC_INTERVAL](https://github.com/wekan/wekan/commit/36a307785369337a788499065f64175971878930). Thanks to hubermam. +- [Helm Chart: Restore pod security context in deployment](https://github.com/wekan/charts/pull/40). + Thanks to adalinesimonian. Thanks to above GitHub users for their contributions and translators for their translations. From b571f1c9530b899db75bf28a03c18277a9b77cb8 Mon Sep 17 00:00:00 2001 From: Lauri Ojansivu Date: Fri, 7 Feb 2025 16:11:48 +0200 Subject: [PATCH 14/65] Upgraded to MongoDB 6.0.20 at Snap Candidate. Thanks to MongoDB developers! --- snapcraft.yaml | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/snapcraft.yaml b/snapcraft.yaml index 2fb9c44f7..430660c9a 100644 --- a/snapcraft.yaml +++ b/snapcraft.yaml @@ -1,5 +1,5 @@ name: wekan -version: '7.80' +version: '7.81' base: core20 summary: Open Source kanban description: | @@ -65,7 +65,7 @@ apps: parts: mongodb: - source: https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-ubuntu2004-6.0.19.tgz + source: https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-ubuntu2004-6.0.20.tgz plugin: dump stage-packages: - libssl1.1 @@ -170,9 +170,9 @@ parts: # Cleanup mkdir .build cd .build - wget https://github.com/wekan/wekan/releases/download/v7.80/wekan-7.80-amd64.zip - unzip wekan-7.80-amd64.zip - rm wekan-7.80-amd64.zip + wget https://github.com/wekan/wekan/releases/download/v7.81/wekan-7.81-amd64.zip + unzip wekan-7.81-amd64.zip + rm wekan-7.81-amd64.zip cd .. ##cd .build/bundle ##find . -type d -name '*-garbage*' | xargs rm -rf From 3e18f820ea870473dc6718e635df0e8f5bde9863 Mon Sep 17 00:00:00 2001 From: Lauri Ojansivu Date: Fri, 7 Feb 2025 16:13:52 +0200 Subject: [PATCH 15/65] v7.81 --- CHANGELOG.md | 4 +++- Stackerfile.yml | 2 +- docs/Platforms/Propietary/Windows/Offline.md | 8 ++++---- package-lock.json | 2 +- package.json | 2 +- public/api/wekan.html | 6 +++--- public/api/wekan.yml | 2 +- sandstorm-pkgdef.capnp | 2 +- 8 files changed, 15 insertions(+), 13 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index e88c3bdb0..f07aa198b 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -15,7 +15,7 @@ Fixing other platforms In Progress. [How to upgrade WeKan](https://github.com/wekan/wekan/issues/4585) -# Upcoming WeKan ® release +# v7.81 2025-02-07 WeKan ® release This release adds the following new features: @@ -28,6 +28,8 @@ and adds the following updates: Thanks to dependabot. - [Added Meteor 3.1 learning course to docs](https://github.com/wekan/wekan/commit/0c7e12c5e7f322bdbaaa61100e66153dd0b92e4d). Thanks to producer of learning course. +- [Upgraded to MongoDB 6.0.20 at Snap Candidate](https://github.com/wekan/wekan/commit/b571f1c9530b899db75bf28a03c18277a9b77cb8). + Thanks to MongoDB developers. and fixes the following bugs: diff --git a/Stackerfile.yml b/Stackerfile.yml index 4ede19620..382f1587f 100644 --- a/Stackerfile.yml +++ b/Stackerfile.yml @@ -1,5 +1,5 @@ appId: wekan-public/apps/77b94f60-dec9-0136-304e-16ff53095928 -appVersion: "v7.80.0" +appVersion: "v7.81.0" files: userUploads: - README.md diff --git a/docs/Platforms/Propietary/Windows/Offline.md b/docs/Platforms/Propietary/Windows/Offline.md index 446a2930c..0c91e928c 100644 --- a/docs/Platforms/Propietary/Windows/Offline.md +++ b/docs/Platforms/Propietary/Windows/Offline.md @@ -10,19 +10,19 @@ This is without container (without Docker or Snap). Right click and download files 1-4: -1. [wekan-7.80-amd64-windows.zip](https://github.com/wekan/wekan/releases/download/v7.80/wekan-7.80-amd64-windows.zip) +1. [wekan-7.81-amd64-windows.zip](https://github.com/wekan/wekan/releases/download/v7.81/wekan-7.81-amd64-windows.zip) 2. [node.exe](https://nodejs.org/dist/latest-v14.x/win-x64/node.exe) -3. [mongodb-windows-x86_64-6.0.19-signed.msi](https://fastdl.mongodb.org/windows/mongodb-windows-x86_64-6.0.19-signed.msi) +3. [mongodb-windows-x86_64-6.0.20-signed.msi](https://fastdl.mongodb.org/windows/mongodb-windows-x86_64-6.0.20-signed.msi) 4. [start-wekan.bat](https://raw.githubusercontent.com/wekan/wekan/main/start-wekan.bat) 5. Copy files from steps 1-4 with USB stick or DVD to offline Windows computer -6. Double click `mongodb-windows-x86_64-6.0.19-signed.msi` . In installer, uncheck downloading MongoDB compass. +6. Double click `mongodb-windows-x86_64-6.0.20-signed.msi` . In installer, uncheck downloading MongoDB compass. -7. Unzip `wekan-7.80-amd64-windows.zip` , inside it is directory `bundle`, to it copy other files: +7. Unzip `wekan-7.81-amd64-windows.zip` , inside it is directory `bundle`, to it copy other files: ``` bundle (directory) diff --git a/package-lock.json b/package-lock.json index 2dc1f4bca..0cd3d5754 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,6 +1,6 @@ { "name": "wekan", - "version": "v7.80.0", + "version": "v7.81.0", "lockfileVersion": 1, "requires": true, "dependencies": { diff --git a/package.json b/package.json index 23fada81b..ea5d83fc1 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "wekan", - "version": "v7.80.0", + "version": "v7.81.0", "description": "Open-Source kanban", "private": true, "repository": { diff --git a/public/api/wekan.html b/public/api/wekan.html index 4761b490d..842a39efd 100644 --- a/public/api/wekan.html +++ b/public/api/wekan.html @@ -7,7 +7,7 @@ - Wekan REST API v7.80 + Wekan REST API v7.81 @@ -1549,7 +1549,7 @@ var n=this.pipeline.run(e.tokenizer(t)),r=new e.Vector,i=[],o=this._fields.reduc
  • - Wekan REST API v7.80 + Wekan REST API v7.81
  • @@ -2068,7 +2068,7 @@ var n=this.pipeline.run(e.tokenizer(t)),r=new e.Vector,i=[],o=this._fields.reduc
    -

    Wekan REST API v7.80

    +

    Wekan REST API v7.81

    Scroll down for code samples, example requests and responses. Select a language for code samples from the tabs above or the mobile navigation menu.

    diff --git a/public/api/wekan.yml b/public/api/wekan.yml index c4353dc80..54a425d25 100644 --- a/public/api/wekan.yml +++ b/public/api/wekan.yml @@ -1,7 +1,7 @@ swagger: '2.0' info: title: Wekan REST API - version: v7.80 + version: v7.81 description: | The REST API allows you to control and extend Wekan with ease. diff --git a/sandstorm-pkgdef.capnp b/sandstorm-pkgdef.capnp index ecf9ae4aa..fcde8a378 100644 --- a/sandstorm-pkgdef.capnp +++ b/sandstorm-pkgdef.capnp @@ -22,7 +22,7 @@ const pkgdef :Spk.PackageDefinition = ( appTitle = (defaultText = "Wekan"), # The name of the app as it is displayed to the user. - appVersion = 780, + appVersion = 781, # Increment this for every release. appMarketingVersion = (defaultText = "7.80.0~2025-01-12"), From 874abf2c419afffac8acd16c28f1dc649c849d12 Mon Sep 17 00:00:00 2001 From: salleman <37148072+salleman33@users.noreply.github.com> Date: Tue, 11 Feb 2025 12:06:23 +0100 Subject: [PATCH 16/65] Update metrics.js Add possibility to use a token in place of ipaddress to access metrics route --- models/server/metrics.js | 27 ++++++++++++++++++++++++++- 1 file changed, 26 insertions(+), 1 deletion(-) diff --git a/models/server/metrics.js b/models/server/metrics.js index 832f607ed..67f08d499 100644 --- a/models/server/metrics.js +++ b/models/server/metrics.js @@ -9,6 +9,31 @@ function acceptedIpAddress(ipAddress) { ); } +function accessToken(req) { + const valid_token = process.env.METRICS_ACCESS_TOKEN; + let token; + if (req.headers && req.headers.authorization) { + var parts = req.headers.authorization.split(" "); + + if (parts.length === 2) { + var scheme = parts[0]; + var credentials = parts[1]; + + if (/^Bearer$/i.test(scheme)) { + token = credentials; + } + } + } + if (!token && req.query && req.query.access_token) { + token = req.query.access_token; + } + return ( + token !== undefined && + valid_token !== undefined && + token == valid_token + ); +} + const getBoardTitleWithMostActivities = (dateWithXdaysAgo, nbLimit) => { return Promise.await( Activities.rawCollection() @@ -49,7 +74,7 @@ Meteor.startup(() => { // } // List of trusted ip adress will be found in environment variable "METRICS_ACCEPTED_IP_ADDRESS" (separeted with commas) - if (acceptedIpAddress(ipAddress)) { + if (acceptedIpAddress(ipAddress) || (accessToken(req)) { let metricsRes = ''; let resCount = 0; //connected users From 563a508e269be87eb713e2888409525e1ba82001 Mon Sep 17 00:00:00 2001 From: Lauri Ojansivu Date: Tue, 11 Feb 2025 22:12:57 +0200 Subject: [PATCH 17/65] Added missing ) character. Thanks to xet7 ! --- models/server/metrics.js | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/models/server/metrics.js b/models/server/metrics.js index 67f08d499..669bbbf92 100644 --- a/models/server/metrics.js +++ b/models/server/metrics.js @@ -28,7 +28,7 @@ function accessToken(req) { token = req.query.access_token; } return ( - token !== undefined && + token !== undefined && valid_token !== undefined && token == valid_token ); @@ -74,7 +74,7 @@ Meteor.startup(() => { // } // List of trusted ip adress will be found in environment variable "METRICS_ACCEPTED_IP_ADDRESS" (separeted with commas) - if (acceptedIpAddress(ipAddress) || (accessToken(req)) { + if (acceptedIpAddress(ipAddress) || (accessToken(req))) { let metricsRes = ''; let resCount = 0; //connected users @@ -195,12 +195,12 @@ Meteor.startup(() => { metricsRes += '# Top 10 boards with most activities dated 30 days ago\n'; - //Get top 10 table with most activities in current month + //Get top 10 table with most activities in current month const boardTitleWithMostActivities = getBoardTitleWithMostActivities( dateWithXdaysAgo, xdays, ); - + const boardWithMostActivities = boardTitleWithMostActivities.map( (board) => board.lookup[0].title, ); @@ -210,7 +210,7 @@ Meteor.startup(() => { `wekan_top10BoardsWithMostActivities{n="${title}"} ${ index + 1 }` + '\n'; - }); + }); res.writeHead(200); // HTTP status res.end(metricsRes); From c83e83b8b1cedbb5602a5c8a72abbd0c0e131f87 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Sat, 15 Feb 2025 08:58:49 +0000 Subject: [PATCH 18/65] Bump dompurify from 2.5.6 to 3.2.4 Bumps [dompurify](https://github.com/cure53/DOMPurify) from 2.5.6 to 3.2.4. - [Release notes](https://github.com/cure53/DOMPurify/releases) - [Commits](https://github.com/cure53/DOMPurify/compare/2.5.6...3.2.4) --- updated-dependencies: - dependency-name: dompurify dependency-type: direct:production ... Signed-off-by: dependabot[bot] --- package-lock.json | 4378 ++++++++++++++++++++++++++++----------------- package.json | 2 +- 2 files changed, 2742 insertions(+), 1638 deletions(-) diff --git a/package-lock.json b/package-lock.json index 0cd3d5754..4450b2d64 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,22 +1,72 @@ { "name": "wekan", "version": "v7.81.0", - "lockfileVersion": 1, + "lockfileVersion": 3, "requires": true, - "dependencies": { - "@babel/runtime": { + "packages": { + "": { + "version": "v7.81.0", + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.25.0", + "@mapbox/node-pre-gyp": "^1.0.10", + "@rwap/jquery-ui-touch-punch": "^1.0.11", + "@wekanteam/dragscroll": "https://github.com/wekan/dragscroll.git", + "@wekanteam/exceljs": "https://github.com/wekan/exceljs.git", + "@wekanteam/html-to-markdown": "^1.0.2", + "@wekanteam/meteor-globals": "^1.1.4", + "@wekanteam/meteor-reactive-cache": "^1.0.6", + "ajv": "^6.12.6", + "bcryptjs": "^2.4.3", + "bson": "^4.5.2", + "dompurify": "^3.2.4", + "es6-promise": "^4.2.4", + "escape-string-regexp": "^5.0.0", + "fibers": "^5.0.3", + "file-type": "^16.5.4", + "filesize": "^8.0.7", + "i18next": "^21.6.16", + "i18next-sprintf-postprocessor": "^0.2.2", + "jquery": "^3.7.1", + "jquery-ui": "^1.13.3", + "jszip": "^3.7.1", + "ldapjs": "^2.3.3", + "markdown-it": "^12.3.2", + "markdown-it-emoji": "^2.0.0", + "markdown-it-mathjax3": "^4.3.2", + "meteor-accounts-t9n": "^2.6.0", + "meteor-node-stubs": "^1.2.12", + "minio": "^7.1.3", + "moment": "^2.29.4", + "os": "^0.1.2", + "papaparse": "^5.3.1", + "pretty-ms": "^7.0.1", + "qs": "^6.13.0", + "simpl-schema": "^3.4.6", + "source-map-support": "^0.5.20", + "uuid": "^8.3.2" + }, + "devDependencies": { + "flatted": "^3.3.1", + "sinon": "^13.0.2" + } + }, + "node_modules/@babel/runtime": { "version": "7.25.0", "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.25.0.tgz", "integrity": "sha512-7dRy4DwXwtzBrPbZflqxnvfxLF8kdZXPkhymtDeFoFqE6ldzjQFgYTtYIFARcLEYDrqfBfYcZt1WqFxRoyC9Rw==", - "requires": { + "dependencies": { "regenerator-runtime": "^0.14.0" + }, + "engines": { + "node": ">=6.9.0" } }, - "@fast-csv/format": { + "node_modules/@fast-csv/format": { "version": "4.3.5", "resolved": "https://registry.npmjs.org/@fast-csv/format/-/format-4.3.5.tgz", "integrity": "sha512-8iRn6QF3I8Ak78lNAa+Gdl5MJJBM5vRHivFtMRUWINdevNo00K7OXxS2PshawLKTejVwieIlPmK5YlLu6w4u8A==", - "requires": { + "dependencies": { "@types/node": "^14.0.1", "lodash.escaperegexp": "^4.1.2", "lodash.isboolean": "^3.0.3", @@ -25,11 +75,11 @@ "lodash.isnil": "^4.0.0" } }, - "@fast-csv/parse": { + "node_modules/@fast-csv/parse": { "version": "4.3.6", "resolved": "https://registry.npmjs.org/@fast-csv/parse/-/parse-4.3.6.tgz", "integrity": "sha512-uRsLYksqpbDmWaSmzvJcuApSEe38+6NQZBUsuAyMZKqHxH0g1wcJgsKUvN3WC8tewaqFjBMMGrkHmC+T7k8LvA==", - "requires": { + "dependencies": { "@types/node": "^14.0.1", "lodash.escaperegexp": "^4.1.2", "lodash.groupby": "^4.6.0", @@ -39,11 +89,11 @@ "lodash.uniq": "^4.5.0" } }, - "@mapbox/node-pre-gyp": { + "node_modules/@mapbox/node-pre-gyp": { "version": "1.0.11", "resolved": "https://registry.npmjs.org/@mapbox/node-pre-gyp/-/node-pre-gyp-1.0.11.tgz", "integrity": "sha512-Yhlar6v9WQgUp/He7BdgzOz8lqMQ8sU+jkCq7Wx8Myc5YFJLbEe7lgui/V7G1qB1DJykHSGwreceSaD60Y0PUQ==", - "requires": { + "dependencies": { "detect-libc": "^2.0.0", "https-proxy-agent": "^5.0.0", "make-dir": "^3.1.0", @@ -53,69 +103,85 @@ "rimraf": "^3.0.2", "semver": "^7.3.5", "tar": "^6.1.11" + }, + "bin": { + "node-pre-gyp": "bin/node-pre-gyp" } }, - "@rwap/jquery-ui-touch-punch": { + "node_modules/@rwap/jquery-ui-touch-punch": { "version": "1.0.11", "resolved": "https://registry.npmjs.org/@rwap/jquery-ui-touch-punch/-/jquery-ui-touch-punch-1.0.11.tgz", "integrity": "sha512-GFRfHxnl9uH4v4F7E+rtXYbcsDYSas5fqfmKWVy/dfs+BDfLUqClIOL5MZlroDFoL3T9bCbsFMFXULHSL34ZdA==", - "requires": { + "dependencies": { "jquery-ui": ">=1.8" } }, - "@sinonjs/commons": { + "node_modules/@sinonjs/commons": { "version": "1.8.6", "resolved": "https://registry.npmjs.org/@sinonjs/commons/-/commons-1.8.6.tgz", "integrity": "sha512-Ky+XkAkqPZSm3NLBeUng77EBQl3cmeJhITaGHdYH8kjVB+aun3S4XBRti2zt17mtt0mIUDiNxYeoJm6drVvBJQ==", "dev": true, - "requires": { + "dependencies": { "type-detect": "4.0.8" } }, - "@sinonjs/fake-timers": { + "node_modules/@sinonjs/fake-timers": { "version": "9.1.2", "resolved": "https://registry.npmjs.org/@sinonjs/fake-timers/-/fake-timers-9.1.2.tgz", "integrity": "sha512-BPS4ynJW/o92PUR4wgriz2Ud5gpST5vz6GQfMixEDK0Z8ZCUv2M7SkBLykH56T++Xs+8ln9zTGbOvNGIe02/jw==", "dev": true, - "requires": { + "dependencies": { "@sinonjs/commons": "^1.7.0" } }, - "@sinonjs/samsam": { + "node_modules/@sinonjs/samsam": { "version": "6.1.3", "resolved": "https://registry.npmjs.org/@sinonjs/samsam/-/samsam-6.1.3.tgz", "integrity": "sha512-nhOb2dWPeb1sd3IQXL/dVPnKHDOAFfvichtBf4xV00/rU1QbPCQqKMbvIheIjqwVjh7qIgf2AHTHi391yMOMpQ==", "dev": true, - "requires": { + "dependencies": { "@sinonjs/commons": "^1.6.0", "lodash.get": "^4.4.2", "type-detect": "^4.0.8" } }, - "@sinonjs/text-encoding": { + "node_modules/@sinonjs/text-encoding": { "version": "0.7.2", "resolved": "https://registry.npmjs.org/@sinonjs/text-encoding/-/text-encoding-0.7.2.tgz", "integrity": "sha512-sXXKG+uL9IrKqViTtao2Ws6dy0znu9sOaP1di/jKGW1M6VssO8vlpXCQcpZ+jisQ1tTFAC5Jo/EOzFbggBagFQ==", "dev": true }, - "@tokenizer/token": { + "node_modules/@tokenizer/token": { "version": "0.3.0", "resolved": "https://registry.npmjs.org/@tokenizer/token/-/token-0.3.0.tgz", "integrity": "sha512-OvjF+z51L3ov0OyAU0duzsYuvO01PH7x4t6DJx+guahgTnBHkhJdG7soQeTSFLWN3efnHyibZ4Z8l2EuWwJN3A==" }, - "@types/node": { + "node_modules/@types/node": { "version": "14.18.63", "resolved": "https://registry.npmjs.org/@types/node/-/node-14.18.63.tgz", "integrity": "sha512-fAtCfv4jJg+ExtXhvCkCqUKZ+4ok/JQk01qDKhL5BDDoS3AxKXhV5/MAVUZyQnSEd2GT92fkgZl0pz0Q0AzcIQ==" }, - "@wekanteam/dragscroll": { - "version": "git+https://github.com/wekan/dragscroll.git#6ea215c8cdbde9362ecba8ffb72ce9f9fde842d2", - "from": "git+https://github.com/wekan/dragscroll.git" + "node_modules/@types/trusted-types": { + "version": "2.0.7", + "resolved": "https://registry.npmjs.org/@types/trusted-types/-/trusted-types-2.0.7.tgz", + "integrity": "sha512-ScaPdn1dQczgbl0QFTeTOmVHFULt394XJgOQNoyVhZ6r2vLnMLJfBPd53SB52T/3G36VI1/g2MZaX0cwDuXsfw==", + "license": "MIT", + "optional": true }, - "@wekanteam/exceljs": { - "version": "git+https://github.com/wekan/exceljs.git#e0229907e7a81bc3fe6daf4e42b1fdfbecdcb7cb", - "from": "git+https://github.com/wekan/exceljs.git", - "requires": { + "node_modules/@wekanteam/dragscroll": { + "version": "0.0.8", + "resolved": "git+ssh://git@github.com/wekan/dragscroll.git#6ea215c8cdbde9362ecba8ffb72ce9f9fde842d2", + "integrity": "sha512-fpxmJ0A++PiEEUBi6uqnNChKCRwRaQqOMcwnF4W9EtGzCczd8S7iRjCoLtQWAxpWF3n6Ag4IIqifgUYkBVNBYA==", + "engines": { + "node": "*" + } + }, + "node_modules/@wekanteam/exceljs": { + "version": "4.5.0", + "resolved": "git+ssh://git@github.com/wekan/exceljs.git#e0229907e7a81bc3fe6daf4e42b1fdfbecdcb7cb", + "integrity": "sha512-OpbewmMvAU8582TO0wK0nQ/YmkmgeVKOdknnNM9aKr7pKK54pvSRMyC0qydRSVNFsby5BAKfmveABDjuktqkQg==", + "license": "MIT", + "dependencies": { "archiver": "^5.0.0", "dayjs": "^1.8.34", "fast-csv": "^4.3.1", @@ -125,84 +191,100 @@ "tmp": "^0.2.0", "unzipper": "^0.10.11", "uuid": "^8.3.0" + }, + "engines": { + "node": ">=8.3.0" } }, - "@wekanteam/html-to-markdown": { + "node_modules/@wekanteam/html-to-markdown": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/@wekanteam/html-to-markdown/-/html-to-markdown-1.0.2.tgz", "integrity": "sha512-PxeGIu/HMjmL84N2Dj5qp4lFlBP4jV/y6WU/JhDiFPx6gfGEWXgDcc9sShTPNvECtToGAA0SCD6T/k50CMHi8Q==" }, - "@wekanteam/meteor-globals": { + "node_modules/@wekanteam/meteor-globals": { "version": "1.1.4", "resolved": "https://registry.npmjs.org/@wekanteam/meteor-globals/-/meteor-globals-1.1.4.tgz", "integrity": "sha512-zaq+/F+5/aI46JXXcp3LhcYrM+ZQ0aH99BKuFyP0Ie1ACnYPqHqhUwCwScGiauxmMc9abHduC6DJTbxnJGc2QQ==", - "requires": { + "dependencies": { "semver": "^7.5.4" } }, - "@wekanteam/meteor-reactive-cache": { + "node_modules/@wekanteam/meteor-reactive-cache": { "version": "1.0.6", "resolved": "https://registry.npmjs.org/@wekanteam/meteor-reactive-cache/-/meteor-reactive-cache-1.0.6.tgz", "integrity": "sha512-xewS5N2ON5oN1+HWaAZhnSF7oNR/yfcXfSunVxjrCSExu3OzD1JMGK5FTxGYYzN3ShJgWGLSmjw7zL6+gvQxgg==", - "requires": { + "dependencies": { "@wekanteam/meteor-globals": "^1.1.4" } }, - "@zxing/text-encoding": { + "node_modules/@zxing/text-encoding": { "version": "0.9.0", "resolved": "https://registry.npmjs.org/@zxing/text-encoding/-/text-encoding-0.9.0.tgz", "integrity": "sha512-U/4aVJ2mxI0aDNI8Uq0wEhMgY+u4CNtEb0om3+y3+niDAsoTCOB33UF0sxpzqzdqXLqmvc+vZyAt4O8pPdfkwA==", "optional": true }, - "abbrev": { + "node_modules/abbrev": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.1.1.tgz", "integrity": "sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==" }, - "abstract-logging": { + "node_modules/abstract-logging": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/abstract-logging/-/abstract-logging-2.0.1.tgz", "integrity": "sha512-2BjRTZxTPvheOvGbBslFSYOUkr+SjPtOnrLP33f+VIWLzezQpZcqVg7ja3L4dBXmzzgwT+a029jRx5PCi3JuiA==" }, - "agent-base": { + "node_modules/agent-base": { "version": "6.0.2", "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-6.0.2.tgz", "integrity": "sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==", - "requires": { + "dependencies": { "debug": "4" + }, + "engines": { + "node": ">= 6.0.0" } }, - "ajv": { + "node_modules/ajv": { "version": "6.12.6", "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", - "requires": { + "dependencies": { "fast-deep-equal": "^3.1.1", "fast-json-stable-stringify": "^2.0.0", "json-schema-traverse": "^0.4.1", "uri-js": "^4.2.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" } }, - "ansi-colors": { + "node_modules/ansi-colors": { "version": "4.1.3", "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-4.1.3.tgz", - "integrity": "sha512-/6w/C21Pm1A7aZitlI5Ni/2J6FFQN8i1Cvz3kHABAAbw93v/NlvKdVOqz7CCWz/3iv/JplRSEEZ83XION15ovw==" + "integrity": "sha512-/6w/C21Pm1A7aZitlI5Ni/2J6FFQN8i1Cvz3kHABAAbw93v/NlvKdVOqz7CCWz/3iv/JplRSEEZ83XION15ovw==", + "engines": { + "node": ">=6" + } }, - "ansi-regex": { + "node_modules/ansi-regex": { "version": "5.0.1", "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", - "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==" + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "engines": { + "node": ">=8" + } }, - "aproba": { + "node_modules/aproba": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/aproba/-/aproba-2.0.0.tgz", "integrity": "sha512-lYe4Gx7QT+MKGbDsA+Z+he/Wtef0BiwDOlK/XkBrdfsh9J/jPPXbX0tE9x9cl27Tmu5gg3QUbUrQYa/y+KOHPQ==" }, - "archiver": { + "node_modules/archiver": { "version": "5.3.2", "resolved": "https://registry.npmjs.org/archiver/-/archiver-5.3.2.tgz", "integrity": "sha512-+25nxyyznAXF7Nef3y0EbBeqmGZgeN/BxHX29Rs39djAfaFalmQ89SE6CWyDCHzGL0yt/ycBtNOmGTW0FyGWNw==", - "requires": { + "dependencies": { "archiver-utils": "^2.1.0", "async": "^3.2.4", "buffer-crc32": "^0.2.1", @@ -210,13 +292,16 @@ "readdir-glob": "^1.1.2", "tar-stream": "^2.2.0", "zip-stream": "^4.1.0" + }, + "engines": { + "node": ">= 10" } }, - "archiver-utils": { + "node_modules/archiver-utils": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/archiver-utils/-/archiver-utils-2.1.0.tgz", "integrity": "sha512-bEL/yUb/fNNiNTuUz979Z0Yg5L+LzLxGJz8x79lYmR54fmTIb6ob/hNQgkQnIUDWIFjZVQwl9Xs356I6BAMHfw==", - "requires": { + "dependencies": { "glob": "^7.1.4", "graceful-fs": "^4.2.0", "lazystream": "^1.0.0", @@ -228,212 +313,281 @@ "normalize-path": "^3.0.0", "readable-stream": "^2.0.0" }, - "dependencies": { - "readable-stream": { - "version": "2.3.8", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz", - "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", - "requires": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.3", - "isarray": "~1.0.0", - "process-nextick-args": "~2.0.0", - "safe-buffer": "~5.1.1", - "string_decoder": "~1.1.1", - "util-deprecate": "~1.0.1" - } - }, - "safe-buffer": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" - }, - "string_decoder": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", - "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", - "requires": { - "safe-buffer": "~5.1.0" - } - } + "engines": { + "node": ">= 6" } }, - "are-we-there-yet": { + "node_modules/archiver-utils/node_modules/readable-stream": { + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz", + "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", + "dependencies": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + }, + "node_modules/archiver-utils/node_modules/safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" + }, + "node_modules/archiver-utils/node_modules/string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "dependencies": { + "safe-buffer": "~5.1.0" + } + }, + "node_modules/are-we-there-yet": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-2.0.0.tgz", "integrity": "sha512-Ci/qENmwHnsYo9xKIcUJN5LeDKdJ6R1Z1j9V/J5wyq8nh/mYPEpIKJbBZXtZjG04HiK7zV/p6Vs9952MrMeUIw==", - "requires": { + "deprecated": "This package is no longer supported.", + "dependencies": { "delegates": "^1.0.0", "readable-stream": "^3.6.0" + }, + "engines": { + "node": ">=10" } }, - "argparse": { + "node_modules/argparse": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==" }, - "asn1": { + "node_modules/asn1": { "version": "0.2.6", "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.6.tgz", "integrity": "sha512-ix/FxPn0MDjeyJ7i/yoHGFt/EX6LyNbxSEhPPXODPL+KB0VPk86UYfL0lMdy+KCnv+fmvIzySwaK5COwqVbWTQ==", - "requires": { + "dependencies": { "safer-buffer": "~2.1.0" } }, - "assert-plus": { + "node_modules/assert-plus": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", - "integrity": "sha512-NfJ4UzBCcQGLDlQq7nHxH+tv3kyZ0hHQqF5BO6J7tNJeP5do1llPr8dZ8zHonfhAu0PHAdMkSo+8o0wxg9lZWw==" + "integrity": "sha512-NfJ4UzBCcQGLDlQq7nHxH+tv3kyZ0hHQqF5BO6J7tNJeP5do1llPr8dZ8zHonfhAu0PHAdMkSo+8o0wxg9lZWw==", + "engines": { + "node": ">=0.8" + } }, - "async": { + "node_modules/async": { "version": "3.2.5", "resolved": "https://registry.npmjs.org/async/-/async-3.2.5.tgz", "integrity": "sha512-baNZyqaaLhyLVKm/DlvdW051MSgO6b8eVfIezl9E5PqWxFgzLm/wQntEW4zOytVburDEr0JlALEpdOFwvErLsg==" }, - "available-typed-arrays": { + "node_modules/available-typed-arrays": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/available-typed-arrays/-/available-typed-arrays-1.0.5.tgz", - "integrity": "sha512-DMD0KiN46eipeziST1LPP/STfDU0sufISXmjSgvVsoU2tqxctQeASejWcfNtxYKqETM1UxQ8sp2OrSBWpHY6sw==" + "integrity": "sha512-DMD0KiN46eipeziST1LPP/STfDU0sufISXmjSgvVsoU2tqxctQeASejWcfNtxYKqETM1UxQ8sp2OrSBWpHY6sw==", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } }, - "backoff": { + "node_modules/backoff": { "version": "2.5.0", "resolved": "https://registry.npmjs.org/backoff/-/backoff-2.5.0.tgz", "integrity": "sha512-wC5ihrnUXmR2douXmXLCe5O3zg3GKIyvRi/hi58a/XyRxVI+3/yM0PYueQOZXPXQ9pxBislYkw+sF9b7C/RuMA==", - "requires": { + "dependencies": { "precond": "0.2" + }, + "engines": { + "node": ">= 0.6" } }, - "balanced-match": { + "node_modules/balanced-match": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==" }, - "base64-js": { + "node_modules/base64-js": { "version": "1.5.1", "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz", - "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==" + "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] }, - "bcryptjs": { + "node_modules/bcryptjs": { "version": "2.4.3", "resolved": "https://registry.npmjs.org/bcryptjs/-/bcryptjs-2.4.3.tgz", "integrity": "sha512-V/Hy/X9Vt7f3BbPJEi8BdVFMByHi+jNXrYkW3huaybV/kQ0KJg0Y6PkEMbn+zeT+i+SiKZ/HMqJGIIt4LZDqNQ==" }, - "big-integer": { + "node_modules/big-integer": { "version": "1.6.52", "resolved": "https://registry.npmjs.org/big-integer/-/big-integer-1.6.52.tgz", - "integrity": "sha512-QxD8cf2eVqJOOz63z6JIN9BzvVs/dlySa5HGSBH5xtR8dPteIRQnBxxKqkNTiT6jbDTF6jAfrd4oMcND9RGbQg==" + "integrity": "sha512-QxD8cf2eVqJOOz63z6JIN9BzvVs/dlySa5HGSBH5xtR8dPteIRQnBxxKqkNTiT6jbDTF6jAfrd4oMcND9RGbQg==", + "engines": { + "node": ">=0.6" + } }, - "binary": { + "node_modules/binary": { "version": "0.3.0", "resolved": "https://registry.npmjs.org/binary/-/binary-0.3.0.tgz", "integrity": "sha512-D4H1y5KYwpJgK8wk1Cue5LLPgmwHKYSChkbspQg5JtVuR5ulGckxfR62H3AE9UDkdMC8yyXlqYihuz3Aqg2XZg==", - "requires": { + "dependencies": { "buffers": "~0.1.1", "chainsaw": "~0.1.0" + }, + "engines": { + "node": "*" } }, - "bl": { + "node_modules/bl": { "version": "4.1.0", "resolved": "https://registry.npmjs.org/bl/-/bl-4.1.0.tgz", "integrity": "sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w==", - "requires": { + "dependencies": { "buffer": "^5.5.0", "inherits": "^2.0.4", "readable-stream": "^3.4.0" } }, - "block-stream2": { + "node_modules/block-stream2": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/block-stream2/-/block-stream2-2.1.0.tgz", "integrity": "sha512-suhjmLI57Ewpmq00qaygS8UgEq2ly2PCItenIyhMqVjo4t4pGzqMvfgJuX8iWTeSDdfSSqS6j38fL4ToNL7Pfg==", - "requires": { + "dependencies": { "readable-stream": "^3.4.0" } }, - "bluebird": { + "node_modules/bluebird": { "version": "3.4.7", "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.4.7.tgz", "integrity": "sha512-iD3898SR7sWVRHbiQv+sHUtHnMvC1o3nW5rAcqnq3uOn07DSAppZYUkIGslDz6gXC7HfunPe7YVBgoEJASPcHA==" }, - "boolbase": { + "node_modules/boolbase": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/boolbase/-/boolbase-1.0.0.tgz", "integrity": "sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww==" }, - "brace-expansion": { + "node_modules/brace-expansion": { "version": "1.1.11", "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", - "requires": { + "dependencies": { "balanced-match": "^1.0.0", "concat-map": "0.0.1" } }, - "browser-or-node": { + "node_modules/browser-or-node": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/browser-or-node/-/browser-or-node-2.1.1.tgz", "integrity": "sha512-8CVjaLJGuSKMVTxJ2DpBl5XnlNDiT4cQFeuCJJrvJmts9YrTZDizTX7PjC2s6W4x+MBGZeEY6dGMrF04/6Hgqg==" }, - "bson": { + "node_modules/bson": { "version": "4.7.2", "resolved": "https://registry.npmjs.org/bson/-/bson-4.7.2.tgz", "integrity": "sha512-Ry9wCtIZ5kGqkJoi6aD8KjxFZEx78guTQDnpXWiNthsxzrxAK/i8E6pCHAIZTbaEFWcOCvbecMukfK7XUvyLpQ==", - "requires": { + "dependencies": { "buffer": "^5.6.0" + }, + "engines": { + "node": ">=6.9.0" } }, - "buffer": { + "node_modules/buffer": { "version": "5.7.1", "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz", "integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==", - "requires": { + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "dependencies": { "base64-js": "^1.3.1", "ieee754": "^1.1.13" } }, - "buffer-crc32": { + "node_modules/buffer-crc32": { "version": "0.2.13", "resolved": "https://registry.npmjs.org/buffer-crc32/-/buffer-crc32-0.2.13.tgz", - "integrity": "sha512-VO9Ht/+p3SN7SKWqcrgEzjGbRSJYTx+Q1pTQC0wrWqHx0vpJraQ6GtHx8tvcg1rlK1byhU5gccxgOgj7B0TDkQ==" + "integrity": "sha512-VO9Ht/+p3SN7SKWqcrgEzjGbRSJYTx+Q1pTQC0wrWqHx0vpJraQ6GtHx8tvcg1rlK1byhU5gccxgOgj7B0TDkQ==", + "engines": { + "node": "*" + } }, - "buffer-from": { + "node_modules/buffer-from": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz", "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==" }, - "buffer-indexof-polyfill": { + "node_modules/buffer-indexof-polyfill": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/buffer-indexof-polyfill/-/buffer-indexof-polyfill-1.0.2.tgz", - "integrity": "sha512-I7wzHwA3t1/lwXQh+A5PbNvJxgfo5r3xulgpYDB5zckTu/Z9oUK9biouBKQUjEqzaz3HnAT6TYoovmE+GqSf7A==" + "integrity": "sha512-I7wzHwA3t1/lwXQh+A5PbNvJxgfo5r3xulgpYDB5zckTu/Z9oUK9biouBKQUjEqzaz3HnAT6TYoovmE+GqSf7A==", + "engines": { + "node": ">=0.10" + } }, - "buffers": { + "node_modules/buffers": { "version": "0.1.1", "resolved": "https://registry.npmjs.org/buffers/-/buffers-0.1.1.tgz", - "integrity": "sha512-9q/rDEGSb/Qsvv2qvzIzdluL5k7AaJOTrw23z9reQthrbF7is4CtlT0DXyO1oei2DCp4uojjzQ7igaSHp1kAEQ==" + "integrity": "sha512-9q/rDEGSb/Qsvv2qvzIzdluL5k7AaJOTrw23z9reQthrbF7is4CtlT0DXyO1oei2DCp4uojjzQ7igaSHp1kAEQ==", + "engines": { + "node": ">=0.2.0" + } }, - "call-bind": { + "node_modules/call-bind": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.5.tgz", "integrity": "sha512-C3nQxfFZxFRVoJoGKKI8y3MOEo129NQ+FgQ08iye+Mk4zNZZGdjfs06bVTr+DBSlA66Q2VEcMki/cUCP4SercQ==", - "requires": { + "dependencies": { "function-bind": "^1.1.2", "get-intrinsic": "^1.2.1", "set-function-length": "^1.1.1" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "chainsaw": { + "node_modules/chainsaw": { "version": "0.1.0", "resolved": "https://registry.npmjs.org/chainsaw/-/chainsaw-0.1.0.tgz", "integrity": "sha512-75kWfWt6MEKNC8xYXIdRpDehRYY/tNSgwKaJq+dbbDcxORuVrrQ+SEHoWsniVn9XPYfP4gmdWIeDk/4YNp1rNQ==", - "requires": { + "dependencies": { "traverse": ">=0.3.0 <0.4" + }, + "engines": { + "node": "*" } }, - "cheerio": { + "node_modules/cheerio": { "version": "1.0.0-rc.10", "resolved": "https://registry.npmjs.org/cheerio/-/cheerio-1.0.0-rc.10.tgz", "integrity": "sha512-g0J0q/O6mW8z5zxQ3A8E8J1hUgp4SMOvEoW/x84OwyHKe/Zccz83PVT4y5Crcr530FV6NgmKI1qvGTKVl9XXVw==", - "requires": { + "dependencies": { "cheerio-select": "^1.5.0", "dom-serializer": "^1.3.2", "domhandler": "^4.2.0", @@ -441,429 +595,595 @@ "parse5": "^6.0.1", "parse5-htmlparser2-tree-adapter": "^6.0.1", "tslib": "^2.2.0" + }, + "engines": { + "node": ">= 6" + }, + "funding": { + "url": "https://github.com/cheeriojs/cheerio?sponsor=1" } }, - "cheerio-select": { + "node_modules/cheerio-select": { "version": "1.6.0", "resolved": "https://registry.npmjs.org/cheerio-select/-/cheerio-select-1.6.0.tgz", "integrity": "sha512-eq0GdBvxVFbqWgmCm7M3XGs1I8oLy/nExUnh6oLqmBditPO9AqQJrkslDpMun/hZ0yyTs8L0m85OHp4ho6Qm9g==", - "requires": { + "dependencies": { "css-select": "^4.3.0", "css-what": "^6.0.1", "domelementtype": "^2.2.0", "domhandler": "^4.3.1", "domutils": "^2.8.0" + }, + "funding": { + "url": "https://github.com/sponsors/fb55" } }, - "chownr": { + "node_modules/chownr": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/chownr/-/chownr-2.0.0.tgz", - "integrity": "sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ==" + "integrity": "sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ==", + "engines": { + "node": ">=10" + } }, - "clone": { + "node_modules/clone": { "version": "2.1.2", "resolved": "https://registry.npmjs.org/clone/-/clone-2.1.2.tgz", - "integrity": "sha512-3Pe/CF1Nn94hyhIYpjtiLhdCoEoz0DqQ+988E9gmeEdQZlojxnOb74wctFyuwWQHzqyf9X7C7MG8juUpqBJT8w==" + "integrity": "sha512-3Pe/CF1Nn94hyhIYpjtiLhdCoEoz0DqQ+988E9gmeEdQZlojxnOb74wctFyuwWQHzqyf9X7C7MG8juUpqBJT8w==", + "engines": { + "node": ">=0.8" + } }, - "color-support": { + "node_modules/color-support": { "version": "1.1.3", "resolved": "https://registry.npmjs.org/color-support/-/color-support-1.1.3.tgz", - "integrity": "sha512-qiBjkpbMLO/HL68y+lh4q0/O1MZFj2RX6X/KmMa3+gJD3z+WwI1ZzDHysvqHGS3mP6mznPckpXmw1nI9cJjyRg==" + "integrity": "sha512-qiBjkpbMLO/HL68y+lh4q0/O1MZFj2RX6X/KmMa3+gJD3z+WwI1ZzDHysvqHGS3mP6mznPckpXmw1nI9cJjyRg==", + "bin": { + "color-support": "bin.js" + } }, - "commander": { + "node_modules/commander": { "version": "6.2.1", "resolved": "https://registry.npmjs.org/commander/-/commander-6.2.1.tgz", - "integrity": "sha512-U7VdrJFnJgo4xjrHpTzu0yrHPGImdsmD95ZlgYSEajAn2JKzDhDTPG9kBTefmObL2w/ngeZnilk+OV9CG3d7UA==" + "integrity": "sha512-U7VdrJFnJgo4xjrHpTzu0yrHPGImdsmD95ZlgYSEajAn2JKzDhDTPG9kBTefmObL2w/ngeZnilk+OV9CG3d7UA==", + "engines": { + "node": ">= 6" + } }, - "compress-commons": { + "node_modules/compress-commons": { "version": "4.1.2", "resolved": "https://registry.npmjs.org/compress-commons/-/compress-commons-4.1.2.tgz", "integrity": "sha512-D3uMHtGc/fcO1Gt1/L7i1e33VOvD4A9hfQLP+6ewd+BvG/gQ84Yh4oftEhAdjSMgBgwGL+jsppT7JYNpo6MHHg==", - "requires": { + "dependencies": { "buffer-crc32": "^0.2.13", "crc32-stream": "^4.0.2", "normalize-path": "^3.0.0", "readable-stream": "^3.6.0" + }, + "engines": { + "node": ">= 10" } }, - "concat-map": { + "node_modules/concat-map": { "version": "0.0.1", "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==" }, - "console-control-strings": { + "node_modules/console-control-strings": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/console-control-strings/-/console-control-strings-1.1.0.tgz", "integrity": "sha512-ty/fTekppD2fIwRvnZAVdeOiGd1c7YXEixbgJTNzqcxJWKQnjJ/V1bNEEE6hygpM3WjwHFUVK6HTjWSzV4a8sQ==" }, - "core-util-is": { + "node_modules/core-util-is": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.3.tgz", "integrity": "sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==" }, - "crc-32": { + "node_modules/crc-32": { "version": "1.2.2", "resolved": "https://registry.npmjs.org/crc-32/-/crc-32-1.2.2.tgz", - "integrity": "sha512-ROmzCKrTnOwybPcJApAA6WBWij23HVfGVNKqqrZpuyZOHqK2CwHSvpGuyt/UNNvaIjEd8X5IFGp4Mh+Ie1IHJQ==" + "integrity": "sha512-ROmzCKrTnOwybPcJApAA6WBWij23HVfGVNKqqrZpuyZOHqK2CwHSvpGuyt/UNNvaIjEd8X5IFGp4Mh+Ie1IHJQ==", + "bin": { + "crc32": "bin/crc32.njs" + }, + "engines": { + "node": ">=0.8" + } }, - "crc32-stream": { + "node_modules/crc32-stream": { "version": "4.0.3", "resolved": "https://registry.npmjs.org/crc32-stream/-/crc32-stream-4.0.3.tgz", "integrity": "sha512-NT7w2JVU7DFroFdYkeq8cywxrgjPHWkdX1wjpRQXPX5Asews3tA+Ght6lddQO5Mkumffp3X7GEqku3epj2toIw==", - "requires": { + "dependencies": { "crc-32": "^1.2.0", "readable-stream": "^3.4.0" + }, + "engines": { + "node": ">= 10" } }, - "css-select": { + "node_modules/css-select": { "version": "4.3.0", "resolved": "https://registry.npmjs.org/css-select/-/css-select-4.3.0.tgz", "integrity": "sha512-wPpOYtnsVontu2mODhA19JrqWxNsfdatRKd64kmpRbQgh1KtItko5sTnEpPdpSaJszTOhEMlF/RPz28qj4HqhQ==", - "requires": { + "dependencies": { "boolbase": "^1.0.0", "css-what": "^6.0.1", "domhandler": "^4.3.1", "domutils": "^2.8.0", "nth-check": "^2.0.1" + }, + "funding": { + "url": "https://github.com/sponsors/fb55" } }, - "css-what": { + "node_modules/css-what": { "version": "6.1.0", "resolved": "https://registry.npmjs.org/css-what/-/css-what-6.1.0.tgz", - "integrity": "sha512-HTUrgRJ7r4dsZKU6GjmpfRK1O76h97Z8MfS1G0FozR+oF2kG6Vfe8JE6zwrkbxigziPHinCJ+gCPjA9EaBDtRw==" + "integrity": "sha512-HTUrgRJ7r4dsZKU6GjmpfRK1O76h97Z8MfS1G0FozR+oF2kG6Vfe8JE6zwrkbxigziPHinCJ+gCPjA9EaBDtRw==", + "engines": { + "node": ">= 6" + }, + "funding": { + "url": "https://github.com/sponsors/fb55" + } }, - "dayjs": { + "node_modules/dayjs": { "version": "1.11.13", "resolved": "https://registry.npmjs.org/dayjs/-/dayjs-1.11.13.tgz", "integrity": "sha512-oaMBel6gjolK862uaPQOVTA7q3TZhuSvuMQAAglQDOWYO9A91IrAOUJEyKVlqJlHE0vq5p5UXxzdPfMH/x6xNg==" }, - "debug": { + "node_modules/debug": { "version": "4.3.4", "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", - "requires": { + "dependencies": { "ms": "2.1.2" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } } }, - "decode-uri-component": { + "node_modules/decode-uri-component": { "version": "0.2.2", "resolved": "https://registry.npmjs.org/decode-uri-component/-/decode-uri-component-0.2.2.tgz", - "integrity": "sha512-FqUYQ+8o158GyGTrMFJms9qh3CqTKvAqgqsTnkLI8sKu0028orqBhxNMFkFen0zGyg6epACD32pjVk58ngIErQ==" + "integrity": "sha512-FqUYQ+8o158GyGTrMFJms9qh3CqTKvAqgqsTnkLI8sKu0028orqBhxNMFkFen0zGyg6epACD32pjVk58ngIErQ==", + "engines": { + "node": ">=0.10" + } }, - "define-data-property": { + "node_modules/define-data-property": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/define-data-property/-/define-data-property-1.1.1.tgz", "integrity": "sha512-E7uGkTzkk1d0ByLeSc6ZsFS79Axg+m1P/VsgYsxHgiuc3tFSj+MjMIwe90FC4lOAZzNBdY7kkO2P2wKdsQ1vgQ==", - "requires": { + "dependencies": { "get-intrinsic": "^1.2.1", "gopd": "^1.0.1", "has-property-descriptors": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" } }, - "delegates": { + "node_modules/delegates": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/delegates/-/delegates-1.0.0.tgz", "integrity": "sha512-bd2L678uiWATM6m5Z1VzNCErI3jiGzt6HGY8OVICs40JQq/HALfbyNJmp0UDakEY4pMMaN0Ly5om/B1VI/+xfQ==" }, - "detect-libc": { + "node_modules/detect-libc": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-2.0.2.tgz", - "integrity": "sha512-UX6sGumvvqSaXgdKGUsgZWqcUyIXZ/vZTrlRT/iobiKhGL0zL4d3osHj3uqllWJK+i+sixDS/3COVEOFbupFyw==" + "integrity": "sha512-UX6sGumvvqSaXgdKGUsgZWqcUyIXZ/vZTrlRT/iobiKhGL0zL4d3osHj3uqllWJK+i+sixDS/3COVEOFbupFyw==", + "engines": { + "node": ">=8" + } }, - "diff": { + "node_modules/diff": { "version": "5.1.0", "resolved": "https://registry.npmjs.org/diff/-/diff-5.1.0.tgz", "integrity": "sha512-D+mk+qE8VC/PAUrlAU34N+VfXev0ghe5ywmpqrawphmVZc1bEfn56uo9qpyGp1p4xpzOHkSW4ztBd6L7Xx4ACw==", - "dev": true + "dev": true, + "engines": { + "node": ">=0.3.1" + } }, - "dom-serializer": { + "node_modules/dom-serializer": { "version": "1.4.1", "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-1.4.1.tgz", "integrity": "sha512-VHwB3KfrcOOkelEG2ZOfxqLZdfkil8PtJi4P8N2MMXucZq2yLp75ClViUlOVwyoHEDjYU433Aq+5zWP61+RGag==", - "requires": { + "dependencies": { "domelementtype": "^2.0.1", "domhandler": "^4.2.0", "entities": "^2.0.0" + }, + "funding": { + "url": "https://github.com/cheeriojs/dom-serializer?sponsor=1" } }, - "domelementtype": { + "node_modules/domelementtype": { "version": "2.3.0", "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-2.3.0.tgz", - "integrity": "sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw==" + "integrity": "sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/fb55" + } + ] }, - "domhandler": { + "node_modules/domhandler": { "version": "4.3.1", "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-4.3.1.tgz", "integrity": "sha512-GrwoxYN+uWlzO8uhUXRl0P+kHE4GtVPfYzVLcUxPL7KNdHKj66vvlhiweIHqYYXWlw+T8iLMp42Lm67ghw4WMQ==", - "requires": { + "dependencies": { "domelementtype": "^2.2.0" + }, + "engines": { + "node": ">= 4" + }, + "funding": { + "url": "https://github.com/fb55/domhandler?sponsor=1" } }, - "dompurify": { - "version": "2.5.6", - "resolved": "https://registry.npmjs.org/dompurify/-/dompurify-2.5.6.tgz", - "integrity": "sha512-zUTaUBO8pY4+iJMPE1B9XlO2tXVYIcEA4SNGtvDELzTSCQO7RzH+j7S180BmhmJId78lqGU2z19vgVx2Sxs/PQ==" + "node_modules/dompurify": { + "version": "3.2.4", + "resolved": "https://registry.npmjs.org/dompurify/-/dompurify-3.2.4.tgz", + "integrity": "sha512-ysFSFEDVduQpyhzAob/kkuJjf5zWkZD8/A9ywSp1byueyuCfHamrCBa14/Oc2iiB0e51B+NpxSl5gmzn+Ms/mg==", + "license": "(MPL-2.0 OR Apache-2.0)", + "optionalDependencies": { + "@types/trusted-types": "^2.0.7" + } }, - "domutils": { + "node_modules/domutils": { "version": "2.8.0", "resolved": "https://registry.npmjs.org/domutils/-/domutils-2.8.0.tgz", "integrity": "sha512-w96Cjofp72M5IIhpjgobBimYEfoPjx1Vx0BSX9P30WBdZW2WIKU0T1Bd0kz2eNZ9ikjKgHbEyKx8BB6H1L3h3A==", - "requires": { + "dependencies": { "dom-serializer": "^1.0.1", "domelementtype": "^2.2.0", "domhandler": "^4.2.0" + }, + "funding": { + "url": "https://github.com/fb55/domutils?sponsor=1" } }, - "duplexer2": { + "node_modules/duplexer2": { "version": "0.1.4", "resolved": "https://registry.npmjs.org/duplexer2/-/duplexer2-0.1.4.tgz", "integrity": "sha512-asLFVfWWtJ90ZyOUHMqk7/S2w2guQKxUI2itj3d92ADHhxUSbCMGi1f1cBcJ7xM1To+pE/Khbwo1yuNbMEPKeA==", - "requires": { - "readable-stream": "^2.0.2" - }, "dependencies": { - "readable-stream": { - "version": "2.3.8", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz", - "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", - "requires": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.3", - "isarray": "~1.0.0", - "process-nextick-args": "~2.0.0", - "safe-buffer": "~5.1.1", - "string_decoder": "~1.1.1", - "util-deprecate": "~1.0.1" - } - }, - "safe-buffer": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" - }, - "string_decoder": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", - "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", - "requires": { - "safe-buffer": "~5.1.0" - } - } + "readable-stream": "^2.0.2" } }, - "emoji-regex": { + "node_modules/duplexer2/node_modules/readable-stream": { + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz", + "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", + "dependencies": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + }, + "node_modules/duplexer2/node_modules/safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" + }, + "node_modules/duplexer2/node_modules/string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "dependencies": { + "safe-buffer": "~5.1.0" + } + }, + "node_modules/emoji-regex": { "version": "8.0.0", "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==" }, - "end-of-stream": { + "node_modules/end-of-stream": { "version": "1.4.4", "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz", "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==", - "requires": { + "dependencies": { "once": "^1.4.0" } }, - "entities": { + "node_modules/entities": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/entities/-/entities-2.1.0.tgz", - "integrity": "sha512-hCx1oky9PFrJ611mf0ifBLBRW8lUUVRlFolb5gWRfIELabBlbp9xZvrqZLZAs+NxFnbfQoeGd8wDkygjg7U85w==" + "integrity": "sha512-hCx1oky9PFrJ611mf0ifBLBRW8lUUVRlFolb5gWRfIELabBlbp9xZvrqZLZAs+NxFnbfQoeGd8wDkygjg7U85w==", + "funding": { + "url": "https://github.com/fb55/entities?sponsor=1" + } }, - "es-define-property": { + "node_modules/es-define-property": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/es-define-property/-/es-define-property-1.0.0.tgz", "integrity": "sha512-jxayLKShrEqqzJ0eumQbVhTYQM27CfT1T35+gCgDFoL82JLsXqTJ76zv6A0YLOgEnLUMvLzsDsGIrl8NFpT2gQ==", - "requires": { + "dependencies": { "get-intrinsic": "^1.2.4" }, - "dependencies": { - "get-intrinsic": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.4.tgz", - "integrity": "sha512-5uYhsJH8VJBTv7oslg4BznJYhDoRI6waYCxMmCdnTrcCrHA/fCFKoTFz2JKKE0HdDFUF7/oQuhzumXJK7paBRQ==", - "requires": { - "es-errors": "^1.3.0", - "function-bind": "^1.1.2", - "has-proto": "^1.0.1", - "has-symbols": "^1.0.3", - "hasown": "^2.0.0" - } - } + "engines": { + "node": ">= 0.4" } }, - "es-errors": { + "node_modules/es-define-property/node_modules/get-intrinsic": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.4.tgz", + "integrity": "sha512-5uYhsJH8VJBTv7oslg4BznJYhDoRI6waYCxMmCdnTrcCrHA/fCFKoTFz2JKKE0HdDFUF7/oQuhzumXJK7paBRQ==", + "dependencies": { + "es-errors": "^1.3.0", + "function-bind": "^1.1.2", + "has-proto": "^1.0.1", + "has-symbols": "^1.0.3", + "hasown": "^2.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/es-errors": { "version": "1.3.0", "resolved": "https://registry.npmjs.org/es-errors/-/es-errors-1.3.0.tgz", - "integrity": "sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==" + "integrity": "sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==", + "engines": { + "node": ">= 0.4" + } }, - "es6-promise": { + "node_modules/es6-promise": { "version": "4.2.8", "resolved": "https://registry.npmjs.org/es6-promise/-/es6-promise-4.2.8.tgz", "integrity": "sha512-HJDGx5daxeIvxdBxvG2cb9g4tEvwIk3i8+nhX0yGrYmZUzbkdg8QbDevheDB8gd0//uPj4c1EQua8Q+MViT0/w==" }, - "escape-goat": { + "node_modules/escape-goat": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/escape-goat/-/escape-goat-3.0.0.tgz", - "integrity": "sha512-w3PwNZJwRxlp47QGzhuEBldEqVHHhh8/tIPcl6ecf2Bou99cdAt0knihBV0Ecc7CGxYduXVBDheH1K2oADRlvw==" + "integrity": "sha512-w3PwNZJwRxlp47QGzhuEBldEqVHHhh8/tIPcl6ecf2Bou99cdAt0knihBV0Ecc7CGxYduXVBDheH1K2oADRlvw==", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } }, - "escape-string-regexp": { + "node_modules/escape-string-regexp": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-5.0.0.tgz", - "integrity": "sha512-/veY75JbMK4j1yjvuUxuVsiS/hr/4iHs9FTT6cgTexxdE0Ly/glccBAkloH/DofkjRbZU3bnoj38mOmhkZ0lHw==" + "integrity": "sha512-/veY75JbMK4j1yjvuUxuVsiS/hr/4iHs9FTT6cgTexxdE0Ly/glccBAkloH/DofkjRbZU3bnoj38mOmhkZ0lHw==", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } }, - "esm": { + "node_modules/esm": { "version": "3.2.25", "resolved": "https://registry.npmjs.org/esm/-/esm-3.2.25.tgz", - "integrity": "sha512-U1suiZ2oDVWv4zPO56S0NcR5QriEahGtdN2OR6FiOG4WJvcjBVFB0qI4+eKoWFH483PKGuLuu6V8Z4T5g63UVA==" + "integrity": "sha512-U1suiZ2oDVWv4zPO56S0NcR5QriEahGtdN2OR6FiOG4WJvcjBVFB0qI4+eKoWFH483PKGuLuu6V8Z4T5g63UVA==", + "engines": { + "node": ">=6" + } }, - "extsprintf": { + "node_modules/extsprintf": { "version": "1.4.1", "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.4.1.tgz", - "integrity": "sha512-Wrk35e8ydCKDj/ArClo1VrPVmN8zph5V4AtHwIuHhvMXsKf73UT3BOD+azBIW+3wOJ4FhEH7zyaJCFvChjYvMA==" + "integrity": "sha512-Wrk35e8ydCKDj/ArClo1VrPVmN8zph5V4AtHwIuHhvMXsKf73UT3BOD+azBIW+3wOJ4FhEH7zyaJCFvChjYvMA==", + "engines": [ + "node >=0.6.0" + ] }, - "fast-csv": { + "node_modules/fast-csv": { "version": "4.3.6", "resolved": "https://registry.npmjs.org/fast-csv/-/fast-csv-4.3.6.tgz", "integrity": "sha512-2RNSpuwwsJGP0frGsOmTb9oUF+VkFSM4SyLTDgwf2ciHWTarN0lQTC+F2f/t5J9QjW+c65VFIAAu85GsvMIusw==", - "requires": { + "dependencies": { "@fast-csv/format": "4.3.5", "@fast-csv/parse": "4.3.6" + }, + "engines": { + "node": ">=10.0.0" } }, - "fast-deep-equal": { + "node_modules/fast-deep-equal": { "version": "3.1.3", "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==" }, - "fast-json-stable-stringify": { + "node_modules/fast-json-stable-stringify": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==" }, - "fast-xml-parser": { + "node_modules/fast-xml-parser": { "version": "4.4.1", "resolved": "https://registry.npmjs.org/fast-xml-parser/-/fast-xml-parser-4.4.1.tgz", "integrity": "sha512-xkjOecfnKGkSsOwtZ5Pz7Us/T6mrbPQrq0nh+aCO5V9nk5NLWmasAHumTKjiPJPWANe+kAZ84Jc8ooJkzZ88Sw==", - "requires": { + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/NaturalIntelligence" + }, + { + "type": "paypal", + "url": "https://paypal.me/naturalintelligence" + } + ], + "dependencies": { "strnum": "^1.0.5" + }, + "bin": { + "fxparser": "src/cli/cli.js" } }, - "fibers": { + "node_modules/fibers": { "version": "5.0.3", "resolved": "https://registry.npmjs.org/fibers/-/fibers-5.0.3.tgz", "integrity": "sha512-/qYTSoZydQkM21qZpGLDLuCq8c+B8KhuCQ1kLPvnRNhxhVbvrpmH9l2+Lblf5neDuEsY4bfT7LeO553TXQDvJw==", - "requires": { + "hasInstallScript": true, + "dependencies": { "detect-libc": "^1.0.3" }, - "dependencies": { - "detect-libc": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-1.0.3.tgz", - "integrity": "sha512-pGjwhsmsp4kL2RTz08wcOlGN83otlqHeD/Z5T8GXZB+/YcpQ/dgo+lbU8ZsGxV0HIvqqxo9l7mqYwyYMD9bKDg==" - } + "engines": { + "node": ">=10.0.0" } }, - "file-type": { + "node_modules/fibers/node_modules/detect-libc": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-1.0.3.tgz", + "integrity": "sha512-pGjwhsmsp4kL2RTz08wcOlGN83otlqHeD/Z5T8GXZB+/YcpQ/dgo+lbU8ZsGxV0HIvqqxo9l7mqYwyYMD9bKDg==", + "bin": { + "detect-libc": "bin/detect-libc.js" + }, + "engines": { + "node": ">=0.10" + } + }, + "node_modules/file-type": { "version": "16.5.4", "resolved": "https://registry.npmjs.org/file-type/-/file-type-16.5.4.tgz", "integrity": "sha512-/yFHK0aGjFEgDJjEKP0pWCplsPFPhwyfwevf/pVxiN0tmE4L9LmwWxWukdJSHdoCli4VgQLehjJtwQBnqmsKcw==", - "requires": { + "dependencies": { "readable-web-to-node-stream": "^3.0.0", "strtok3": "^6.2.4", "token-types": "^4.1.1" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sindresorhus/file-type?sponsor=1" } }, - "filesize": { + "node_modules/filesize": { "version": "8.0.7", "resolved": "https://registry.npmjs.org/filesize/-/filesize-8.0.7.tgz", - "integrity": "sha512-pjmC+bkIF8XI7fWaH8KxHcZL3DPybs1roSKP4rKDvy20tAWwIObE4+JIseG2byfGKhud5ZnM4YSGKBz7Sh0ndQ==" + "integrity": "sha512-pjmC+bkIF8XI7fWaH8KxHcZL3DPybs1roSKP4rKDvy20tAWwIObE4+JIseG2byfGKhud5ZnM4YSGKBz7Sh0ndQ==", + "engines": { + "node": ">= 0.4.0" + } }, - "filter-obj": { + "node_modules/filter-obj": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/filter-obj/-/filter-obj-1.1.0.tgz", - "integrity": "sha512-8rXg1ZnX7xzy2NGDVkBVaAy+lSlPNwad13BtgSlLuxfIslyt5Vg64U7tFcCt4WS1R0hvtnQybT/IyCkGZ3DpXQ==" + "integrity": "sha512-8rXg1ZnX7xzy2NGDVkBVaAy+lSlPNwad13BtgSlLuxfIslyt5Vg64U7tFcCt4WS1R0hvtnQybT/IyCkGZ3DpXQ==", + "engines": { + "node": ">=0.10.0" + } }, - "flatted": { + "node_modules/flatted": { "version": "3.3.1", "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.3.1.tgz", "integrity": "sha512-X8cqMLLie7KsNUDSdzeN8FYK9rEt4Dt67OsG/DNGnYTSDBG4uFAJFBnUeiV+zCVAvwFy56IjM9sH51jVaEhNxw==", "dev": true }, - "for-each": { + "node_modules/for-each": { "version": "0.3.3", "resolved": "https://registry.npmjs.org/for-each/-/for-each-0.3.3.tgz", "integrity": "sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw==", - "requires": { + "dependencies": { "is-callable": "^1.1.3" } }, - "fs-constants": { + "node_modules/fs-constants": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/fs-constants/-/fs-constants-1.0.0.tgz", "integrity": "sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow==" }, - "fs-minipass": { + "node_modules/fs-minipass": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-2.1.0.tgz", "integrity": "sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg==", - "requires": { + "dependencies": { "minipass": "^3.0.0" }, - "dependencies": { - "minipass": { - "version": "3.3.6", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz", - "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==", - "requires": { - "yallist": "^4.0.0" - } - } + "engines": { + "node": ">= 8" } }, - "fs.realpath": { + "node_modules/fs-minipass/node_modules/minipass": { + "version": "3.3.6", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz", + "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==", + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/fs.realpath": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==" }, - "fstream": { + "node_modules/fstream": { "version": "1.0.12", "resolved": "https://registry.npmjs.org/fstream/-/fstream-1.0.12.tgz", "integrity": "sha512-WvJ193OHa0GHPEL+AycEJgxvBEwyfRkN1vhjca23OaPVMCaLCXTd5qAu82AjTcgP1UJmytkOKb63Ypde7raDIg==", - "requires": { + "deprecated": "This package is no longer supported.", + "dependencies": { "graceful-fs": "^4.1.2", "inherits": "~2.0.0", "mkdirp": ">=0.5 0", "rimraf": "2" }, - "dependencies": { - "mkdirp": { - "version": "0.5.6", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.6.tgz", - "integrity": "sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==", - "requires": { - "minimist": "^1.2.6" - } - }, - "rimraf": { - "version": "2.7.1", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", - "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", - "requires": { - "glob": "^7.1.3" - } - } + "engines": { + "node": ">=0.6" } }, - "function-bind": { + "node_modules/fstream/node_modules/mkdirp": { + "version": "0.5.6", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.6.tgz", + "integrity": "sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==", + "dependencies": { + "minimist": "^1.2.6" + }, + "bin": { + "mkdirp": "bin/cmd.js" + } + }, + "node_modules/fstream/node_modules/rimraf": { + "version": "2.7.1", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", + "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", + "deprecated": "Rimraf versions prior to v4 are no longer supported", + "dependencies": { + "glob": "^7.1.3" + }, + "bin": { + "rimraf": "bin.js" + } + }, + "node_modules/function-bind": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz", - "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==" + "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } }, - "gauge": { + "node_modules/gauge": { "version": "3.0.2", "resolved": "https://registry.npmjs.org/gauge/-/gauge-3.0.2.tgz", "integrity": "sha512-+5J6MS/5XksCuXq++uFRsnUd7Ovu1XenbeuIuNRJxYWjgQbPuFhT14lAvsWfqfAmnwluf1OwMjz39HjfLPci0Q==", - "requires": { + "deprecated": "This package is no longer supported.", + "dependencies": { "aproba": "^1.0.3 || ^2.0.0", "color-support": "^1.1.2", "console-control-strings": "^1.0.0", @@ -873,323 +1193,444 @@ "string-width": "^4.2.3", "strip-ansi": "^6.0.1", "wide-align": "^1.1.2" + }, + "engines": { + "node": ">=10" } }, - "get-intrinsic": { + "node_modules/get-intrinsic": { "version": "1.2.2", "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.2.tgz", "integrity": "sha512-0gSo4ml/0j98Y3lngkFEot/zhiCeWsbYIlZ+uZOVgzLyLaUw7wxUL+nCTP0XJvJg1AXulJRI3UJi8GsbDuxdGA==", - "requires": { + "dependencies": { "function-bind": "^1.1.2", "has-proto": "^1.0.1", "has-symbols": "^1.0.3", "hasown": "^2.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "glob": { + "node_modules/glob": { "version": "7.2.3", "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", - "requires": { + "deprecated": "Glob versions prior to v9 are no longer supported", + "dependencies": { "fs.realpath": "^1.0.0", "inflight": "^1.0.4", "inherits": "2", "minimatch": "^3.1.1", "once": "^1.3.0", "path-is-absolute": "^1.0.0" + }, + "engines": { + "node": "*" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" } }, - "gopd": { + "node_modules/gopd": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.0.1.tgz", "integrity": "sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==", - "requires": { + "dependencies": { "get-intrinsic": "^1.1.3" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "graceful-fs": { + "node_modules/graceful-fs": { "version": "4.2.11", "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz", "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==" }, - "has-flag": { + "node_modules/has-flag": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true + "dev": true, + "engines": { + "node": ">=8" + } }, - "has-property-descriptors": { + "node_modules/has-property-descriptors": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.1.tgz", "integrity": "sha512-VsX8eaIewvas0xnvinAe9bw4WfIeODpGYikiWYLH+dma0Jw6KHYqWiWfhQlgOVK8D6PvjubK5Uc4P0iIhIcNVg==", - "requires": { + "dependencies": { "get-intrinsic": "^1.2.2" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "has-proto": { + "node_modules/has-proto": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/has-proto/-/has-proto-1.0.1.tgz", - "integrity": "sha512-7qE+iP+O+bgF9clE5+UoBFzE65mlBiVj3tKCrlNQ0Ogwm0BjpT/gK4SlLYDMybDh5I3TCTKnPPa0oMG7JDYrhg==" + "integrity": "sha512-7qE+iP+O+bgF9clE5+UoBFzE65mlBiVj3tKCrlNQ0Ogwm0BjpT/gK4SlLYDMybDh5I3TCTKnPPa0oMG7JDYrhg==", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } }, - "has-symbols": { + "node_modules/has-symbols": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz", - "integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==" + "integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } }, - "has-tostringtag": { + "node_modules/has-tostringtag": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.0.tgz", "integrity": "sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ==", - "requires": { + "dependencies": { "has-symbols": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "has-unicode": { + "node_modules/has-unicode": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/has-unicode/-/has-unicode-2.0.1.tgz", "integrity": "sha512-8Rf9Y83NBReMnx0gFzA8JImQACstCYWUplepDa9xprwwtmgEZUF0h/i5xSA625zB/I37EtrswSST6OXxwaaIJQ==" }, - "hasown": { + "node_modules/hasown": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.0.tgz", "integrity": "sha512-vUptKVTpIJhcczKBbgnS+RtcuYMB8+oNzPK2/Hp3hanz8JmpATdmmgLgSaadVREkDm+e2giHwY3ZRkyjSIDDFA==", - "requires": { + "dependencies": { "function-bind": "^1.1.2" + }, + "engines": { + "node": ">= 0.4" } }, - "htmlparser2": { + "node_modules/htmlparser2": { "version": "6.1.0", "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-6.1.0.tgz", "integrity": "sha512-gyyPk6rgonLFEDGoeRgQNaEUvdJ4ktTmmUh/h2t7s+M8oPpIPxgNACWa+6ESR57kXstwqPiCut0V8NRpcwgU7A==", - "requires": { + "funding": [ + "https://github.com/fb55/htmlparser2?sponsor=1", + { + "type": "github", + "url": "https://github.com/sponsors/fb55" + } + ], + "dependencies": { "domelementtype": "^2.0.1", "domhandler": "^4.0.0", "domutils": "^2.5.2", "entities": "^2.0.0" } }, - "https-proxy-agent": { + "node_modules/https-proxy-agent": { "version": "5.0.1", "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.1.tgz", "integrity": "sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA==", - "requires": { + "dependencies": { "agent-base": "6", "debug": "4" + }, + "engines": { + "node": ">= 6" } }, - "i18next": { + "node_modules/i18next": { "version": "21.10.0", "resolved": "https://registry.npmjs.org/i18next/-/i18next-21.10.0.tgz", "integrity": "sha512-YeuIBmFsGjUfO3qBmMOc0rQaun4mIpGKET5WDwvu8lU7gvwpcariZLNtL0Fzj+zazcHUrlXHiptcFhBMFaxzfg==", - "requires": { + "funding": [ + { + "type": "individual", + "url": "https://locize.com" + }, + { + "type": "individual", + "url": "https://locize.com/i18next.html" + }, + { + "type": "individual", + "url": "https://www.i18next.com/how-to/faq#i18next-is-awesome.-how-can-i-support-the-project" + } + ], + "dependencies": { "@babel/runtime": "^7.17.2" } }, - "i18next-sprintf-postprocessor": { + "node_modules/i18next-sprintf-postprocessor": { "version": "0.2.2", "resolved": "https://registry.npmjs.org/i18next-sprintf-postprocessor/-/i18next-sprintf-postprocessor-0.2.2.tgz", "integrity": "sha512-c/IT9xuMyTfJ/3Ds+DPtb0vYVuykbMyGChZ5OGZTzFDV7Kgst1nrNOwdbZ+PkcA5kLXEE3U0RKkNbabj07261w==" }, - "ieee754": { + "node_modules/ieee754": { "version": "1.2.1", "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz", - "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==" + "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] }, - "immediate": { + "node_modules/immediate": { "version": "3.0.6", "resolved": "https://registry.npmjs.org/immediate/-/immediate-3.0.6.tgz", "integrity": "sha512-XXOFtyqDjNDAQxVfYxuF7g9Il/IbWmmlQg2MYKOH8ExIT1qg6xc4zyS3HaEEATgs1btfzxq15ciUiY7gjSXRGQ==" }, - "inflight": { + "node_modules/inflight": { "version": "1.0.6", "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", - "requires": { + "deprecated": "This module is not supported, and leaks memory. Do not use it. Check out lru-cache if you want a good and tested way to coalesce async requests by a key value, which is much more comprehensive and powerful.", + "dependencies": { "once": "^1.3.0", "wrappy": "1" } }, - "inherits": { + "node_modules/inherits": { "version": "2.0.4", "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" }, - "ipaddr.js": { + "node_modules/ipaddr.js": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-2.1.0.tgz", - "integrity": "sha512-LlbxQ7xKzfBusov6UMi4MFpEg0m+mAm9xyNGEduwXMEDuf4WfzB/RZwMVYEd7IKGvh4IUkEXYxtAVu9T3OelJQ==" + "integrity": "sha512-LlbxQ7xKzfBusov6UMi4MFpEg0m+mAm9xyNGEduwXMEDuf4WfzB/RZwMVYEd7IKGvh4IUkEXYxtAVu9T3OelJQ==", + "engines": { + "node": ">= 10" + } }, - "is-arguments": { + "node_modules/is-arguments": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/is-arguments/-/is-arguments-1.1.1.tgz", "integrity": "sha512-8Q7EARjzEnKpt/PCD7e1cgUS0a6X8u5tdSiMqXhojOdoV9TsMsiO+9VLC5vAmO8N7/GmXn7yjR8qnA6bVAEzfA==", - "requires": { + "dependencies": { "call-bind": "^1.0.2", "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "is-callable": { + "node_modules/is-callable": { "version": "1.2.7", "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.7.tgz", - "integrity": "sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==" + "integrity": "sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } }, - "is-fullwidth-code-point": { + "node_modules/is-fullwidth-code-point": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", - "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==" + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "engines": { + "node": ">=8" + } }, - "is-generator-function": { + "node_modules/is-generator-function": { "version": "1.0.10", "resolved": "https://registry.npmjs.org/is-generator-function/-/is-generator-function-1.0.10.tgz", "integrity": "sha512-jsEjy9l3yiXEQ+PsXdmBwEPcOxaXWLspKdplFUVI9vq1iZgIekeC0L167qeu86czQaxed3q/Uzuw0swL0irL8A==", - "requires": { + "dependencies": { "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "is-typed-array": { + "node_modules/is-typed-array": { "version": "1.1.12", "resolved": "https://registry.npmjs.org/is-typed-array/-/is-typed-array-1.1.12.tgz", "integrity": "sha512-Z14TF2JNG8Lss5/HMqt0//T9JeHXttXy5pH/DBU4vi98ozO2btxzq9MwYDZYnKwU8nRsz/+GVFVRDq3DkVuSPg==", - "requires": { + "dependencies": { "which-typed-array": "^1.1.11" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "isarray": { + "node_modules/isarray": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==" }, - "jquery": { + "node_modules/jquery": { "version": "3.7.1", "resolved": "https://registry.npmjs.org/jquery/-/jquery-3.7.1.tgz", "integrity": "sha512-m4avr8yL8kmFN8psrbFFFmB/If14iN5o9nw/NgnnM+kybDJpRsAynV2BsfpTYrTRysYUdADVD7CkUUizgkpLfg==" }, - "jquery-ui": { + "node_modules/jquery-ui": { "version": "1.13.3", "resolved": "https://registry.npmjs.org/jquery-ui/-/jquery-ui-1.13.3.tgz", "integrity": "sha512-D2YJfswSJRh/B8M/zCowDpNFfwsDmtfnMPwjJTyvl+CBqzpYwQ+gFYIbUUlzijy/Qvoy30H1YhoSui4MNYpRwA==", - "requires": { + "dependencies": { "jquery": ">=1.8.0 <4.0.0" } }, - "json-schema-traverse": { + "node_modules/json-schema-traverse": { "version": "0.4.1", "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==" }, - "json-stream": { + "node_modules/json-stream": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/json-stream/-/json-stream-1.0.0.tgz", "integrity": "sha512-H/ZGY0nIAg3QcOwE1QN/rK/Fa7gJn7Ii5obwp6zyPO4xiPNwpIMjqy2gwjBEGqzkF/vSWEIBQCBuN19hYiL6Qg==" }, - "jszip": { + "node_modules/jszip": { "version": "3.10.1", "resolved": "https://registry.npmjs.org/jszip/-/jszip-3.10.1.tgz", "integrity": "sha512-xXDvecyTpGLrqFrvkrUSoxxfJI5AH7U8zxxtVclpsUtMCq4JQ290LY8AW5c7Ggnr/Y/oK+bQMbqK2qmtk3pN4g==", - "requires": { + "dependencies": { "lie": "~3.3.0", "pako": "~1.0.2", "readable-stream": "~2.3.6", "setimmediate": "^1.0.5" - }, - "dependencies": { - "readable-stream": { - "version": "2.3.8", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz", - "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", - "requires": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.3", - "isarray": "~1.0.0", - "process-nextick-args": "~2.0.0", - "safe-buffer": "~5.1.1", - "string_decoder": "~1.1.1", - "util-deprecate": "~1.0.1" - } - }, - "safe-buffer": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" - }, - "string_decoder": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", - "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", - "requires": { - "safe-buffer": "~5.1.0" - } - } } }, - "juice": { + "node_modules/jszip/node_modules/readable-stream": { + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz", + "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", + "dependencies": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + }, + "node_modules/jszip/node_modules/safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" + }, + "node_modules/jszip/node_modules/string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "dependencies": { + "safe-buffer": "~5.1.0" + } + }, + "node_modules/juice": { "version": "8.1.0", "resolved": "https://registry.npmjs.org/juice/-/juice-8.1.0.tgz", "integrity": "sha512-FLzurJrx5Iv1e7CfBSZH68dC04EEvXvvVvPYB7Vx1WAuhCp1ZPIMtqxc+WTWxVkpTIC2Ach/GAv0rQbtGf6YMA==", - "requires": { + "dependencies": { "cheerio": "1.0.0-rc.10", "commander": "^6.1.0", "mensch": "^0.3.4", "slick": "^1.12.2", "web-resource-inliner": "^6.0.1" + }, + "bin": { + "juice": "bin/juice" + }, + "engines": { + "node": ">=10.0.0" } }, - "just-extend": { + "node_modules/just-extend": { "version": "4.2.1", "resolved": "https://registry.npmjs.org/just-extend/-/just-extend-4.2.1.tgz", "integrity": "sha512-g3UB796vUFIY90VIv/WX3L2c8CS2MdWUww3CNrYmqza1Fg0DURc2K/O4YrnklBdQarSJ/y8JnJYDGc+1iumQjg==", "dev": true }, - "lazystream": { + "node_modules/lazystream": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/lazystream/-/lazystream-1.0.1.tgz", "integrity": "sha512-b94GiNHQNy6JNTrt5w6zNyffMrNkXZb3KTkCZJb2V1xaEGCk093vkZ2jk3tpaeP33/OiXC+WvK9AxUebnf5nbw==", - "requires": { + "dependencies": { "readable-stream": "^2.0.5" }, - "dependencies": { - "readable-stream": { - "version": "2.3.8", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz", - "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", - "requires": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.3", - "isarray": "~1.0.0", - "process-nextick-args": "~2.0.0", - "safe-buffer": "~5.1.1", - "string_decoder": "~1.1.1", - "util-deprecate": "~1.0.1" - } - }, - "safe-buffer": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" - }, - "string_decoder": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", - "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", - "requires": { - "safe-buffer": "~5.1.0" - } - } + "engines": { + "node": ">= 0.6.3" } }, - "ldap-filter": { + "node_modules/lazystream/node_modules/readable-stream": { + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz", + "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", + "dependencies": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + }, + "node_modules/lazystream/node_modules/safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" + }, + "node_modules/lazystream/node_modules/string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "dependencies": { + "safe-buffer": "~5.1.0" + } + }, + "node_modules/ldap-filter": { "version": "0.3.3", "resolved": "https://registry.npmjs.org/ldap-filter/-/ldap-filter-0.3.3.tgz", "integrity": "sha512-/tFkx5WIn4HuO+6w9lsfxq4FN3O+fDZeO9Mek8dCD8rTUpqzRa766BOBO7BcGkn3X86m5+cBm1/2S/Shzz7gMg==", - "requires": { + "dependencies": { "assert-plus": "^1.0.0" + }, + "engines": { + "node": ">=0.8" } }, - "ldapjs": { + "node_modules/ldapjs": { "version": "2.3.3", "resolved": "https://registry.npmjs.org/ldapjs/-/ldapjs-2.3.3.tgz", "integrity": "sha512-75QiiLJV/PQqtpH+HGls44dXweviFwQ6SiIK27EqzKQ5jU/7UFrl2E5nLdQ3IYRBzJ/AVFJI66u0MZ0uofKYwg==", - "requires": { + "deprecated": "This package has been decomissioned. See https://github.com/ldapjs/node-ldapjs/blob/8ffd0bc9c149088a10ec4c1ec6a18450f76ad05d/README.md", + "dependencies": { "abstract-logging": "^2.0.0", "asn1": "^0.2.4", "assert-plus": "^1.0.0", @@ -1198,185 +1639,228 @@ "once": "^1.4.0", "vasync": "^2.2.0", "verror": "^1.8.1" + }, + "engines": { + "node": ">=10.13.0" } }, - "lie": { + "node_modules/lie": { "version": "3.3.0", "resolved": "https://registry.npmjs.org/lie/-/lie-3.3.0.tgz", "integrity": "sha512-UaiMJzeWRlEujzAuw5LokY1L5ecNQYZKfmyZ9L7wDHb/p5etKaxXhohBcrw0EYby+G/NA52vRSN4N39dxHAIwQ==", - "requires": { + "dependencies": { "immediate": "~3.0.5" } }, - "linkify-it": { + "node_modules/linkify-it": { "version": "3.0.3", "resolved": "https://registry.npmjs.org/linkify-it/-/linkify-it-3.0.3.tgz", "integrity": "sha512-ynTsyrFSdE5oZ/O9GEf00kPngmOfVwazR5GKDq6EYfhlpFug3J2zybX56a2PRRpc9P+FuSoGNAwjlbDs9jJBPQ==", - "requires": { + "dependencies": { "uc.micro": "^1.0.1" } }, - "listenercount": { + "node_modules/listenercount": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/listenercount/-/listenercount-1.0.1.tgz", "integrity": "sha512-3mk/Zag0+IJxeDrxSgaDPy4zZ3w05PRZeJNnlWhzFz5OkX49J4krc+A8X2d2M69vGMBEX0uyl8M+W+8gH+kBqQ==" }, - "lodash": { + "node_modules/lodash": { "version": "4.17.21", "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==" }, - "lodash.defaults": { + "node_modules/lodash.defaults": { "version": "4.2.0", "resolved": "https://registry.npmjs.org/lodash.defaults/-/lodash.defaults-4.2.0.tgz", "integrity": "sha512-qjxPLHd3r5DnsdGacqOMU6pb/avJzdh9tFX2ymgoZE27BmjXrNy/y4LoaiTeAb+O3gL8AfpJGtqfX/ae2leYYQ==" }, - "lodash.difference": { + "node_modules/lodash.difference": { "version": "4.5.0", "resolved": "https://registry.npmjs.org/lodash.difference/-/lodash.difference-4.5.0.tgz", "integrity": "sha512-dS2j+W26TQ7taQBGN8Lbbq04ssV3emRw4NY58WErlTO29pIqS0HmoT5aJ9+TUQ1N3G+JOZSji4eugsWwGp9yPA==" }, - "lodash.escaperegexp": { + "node_modules/lodash.escaperegexp": { "version": "4.1.2", "resolved": "https://registry.npmjs.org/lodash.escaperegexp/-/lodash.escaperegexp-4.1.2.tgz", "integrity": "sha512-TM9YBvyC84ZxE3rgfefxUWiQKLilstD6k7PTGt6wfbtXF8ixIJLOL3VYyV/z+ZiPLsVxAsKAFVwWlWeb2Y8Yyw==" }, - "lodash.flatten": { + "node_modules/lodash.flatten": { "version": "4.4.0", "resolved": "https://registry.npmjs.org/lodash.flatten/-/lodash.flatten-4.4.0.tgz", "integrity": "sha512-C5N2Z3DgnnKr0LOpv/hKCgKdb7ZZwafIrsesve6lmzvZIRZRGaZ/l6Q8+2W7NaT+ZwO3fFlSCzCzrDCFdJfZ4g==" }, - "lodash.get": { + "node_modules/lodash.get": { "version": "4.4.2", "resolved": "https://registry.npmjs.org/lodash.get/-/lodash.get-4.4.2.tgz", "integrity": "sha512-z+Uw/vLuy6gQe8cfaFWD7p0wVv8fJl3mbzXh33RS+0oW2wvUqiRXiQ69gLWSLpgB5/6sU+r6BlQR0MBILadqTQ==", + "deprecated": "This package is deprecated. Use the optional chaining (?.) operator instead.", "dev": true }, - "lodash.groupby": { + "node_modules/lodash.groupby": { "version": "4.6.0", "resolved": "https://registry.npmjs.org/lodash.groupby/-/lodash.groupby-4.6.0.tgz", "integrity": "sha512-5dcWxm23+VAoz+awKmBaiBvzox8+RqMgFhi7UvX9DHZr2HdxHXM/Wrf8cfKpsW37RNrvtPn6hSwNqurSILbmJw==" }, - "lodash.isboolean": { + "node_modules/lodash.isboolean": { "version": "3.0.3", "resolved": "https://registry.npmjs.org/lodash.isboolean/-/lodash.isboolean-3.0.3.tgz", "integrity": "sha512-Bz5mupy2SVbPHURB98VAcw+aHh4vRV5IPNhILUCsOzRmsTmSQ17jIuqopAentWoehktxGd9e/hbIXq980/1QJg==" }, - "lodash.isequal": { + "node_modules/lodash.isequal": { "version": "4.5.0", "resolved": "https://registry.npmjs.org/lodash.isequal/-/lodash.isequal-4.5.0.tgz", - "integrity": "sha512-pDo3lu8Jhfjqls6GkMgpahsF9kCyayhgykjyLMNFTKWrpVdAQtYyB4muAMWozBB4ig/dtWAmsMxLEI8wuz+DYQ==" + "integrity": "sha512-pDo3lu8Jhfjqls6GkMgpahsF9kCyayhgykjyLMNFTKWrpVdAQtYyB4muAMWozBB4ig/dtWAmsMxLEI8wuz+DYQ==", + "deprecated": "This package is deprecated. Use require('node:util').isDeepStrictEqual instead." }, - "lodash.isfunction": { + "node_modules/lodash.isfunction": { "version": "3.0.9", "resolved": "https://registry.npmjs.org/lodash.isfunction/-/lodash.isfunction-3.0.9.tgz", "integrity": "sha512-AirXNj15uRIMMPihnkInB4i3NHeb4iBtNg9WRWuK2o31S+ePwwNmDPaTL3o7dTJ+VXNZim7rFs4rxN4YU1oUJw==" }, - "lodash.isnil": { + "node_modules/lodash.isnil": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/lodash.isnil/-/lodash.isnil-4.0.0.tgz", "integrity": "sha512-up2Mzq3545mwVnMhTDMdfoG1OurpA/s5t88JmQX809eH3C8491iu2sfKhTfhQtKY78oPNhiaHJUpT/dUDAAtng==" }, - "lodash.isplainobject": { + "node_modules/lodash.isplainobject": { "version": "4.0.6", "resolved": "https://registry.npmjs.org/lodash.isplainobject/-/lodash.isplainobject-4.0.6.tgz", "integrity": "sha512-oSXzaWypCMHkPC3NvBEaPHf0KsA5mvPrOPgQWDsbg8n7orZ290M0BmC/jgRZ4vcJ6DTAhjrsSYgdsW/F+MFOBA==" }, - "lodash.isundefined": { + "node_modules/lodash.isundefined": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/lodash.isundefined/-/lodash.isundefined-3.0.1.tgz", "integrity": "sha512-MXB1is3s899/cD8jheYYE2V9qTHwKvt+npCwpD+1Sxm3Q3cECXCiYHjeHWXNwr6Q0SOBPrYUDxendrO6goVTEA==" }, - "lodash.union": { + "node_modules/lodash.union": { "version": "4.6.0", "resolved": "https://registry.npmjs.org/lodash.union/-/lodash.union-4.6.0.tgz", "integrity": "sha512-c4pB2CdGrGdjMKYLA+XiRDO7Y0PRQbm/Gzg8qMj+QH+pFVAoTp5sBpO0odL3FjoPCGjK96p6qsP+yQoiLoOBcw==" }, - "lodash.uniq": { + "node_modules/lodash.uniq": { "version": "4.5.0", "resolved": "https://registry.npmjs.org/lodash.uniq/-/lodash.uniq-4.5.0.tgz", "integrity": "sha512-xfBaXQd9ryd9dlSDvnvI0lvxfLJlYAZzXomUYzLKtUeOQvOP5piqAWuGtrhWeqaXK9hhoM/iyJc5AV+XfsX3HQ==" }, - "lru-cache": { + "node_modules/lru-cache": { "version": "6.0.0", "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", - "requires": { + "dependencies": { "yallist": "^4.0.0" + }, + "engines": { + "node": ">=10" } }, - "make-dir": { + "node_modules/make-dir": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz", "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==", - "requires": { + "dependencies": { "semver": "^6.0.0" }, - "dependencies": { - "semver": { - "version": "6.3.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", - "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==" - } + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "markdown-it": { + "node_modules/make-dir/node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/markdown-it": { "version": "12.3.2", "resolved": "https://registry.npmjs.org/markdown-it/-/markdown-it-12.3.2.tgz", "integrity": "sha512-TchMembfxfNVpHkbtriWltGWc+m3xszaRD0CZup7GFFhzIgQqxIfn3eGj1yZpfuflzPvfkt611B2Q/Bsk1YnGg==", - "requires": { + "dependencies": { "argparse": "^2.0.1", "entities": "~2.1.0", "linkify-it": "^3.0.1", "mdurl": "^1.0.1", "uc.micro": "^1.0.5" + }, + "bin": { + "markdown-it": "bin/markdown-it.js" } }, - "markdown-it-emoji": { + "node_modules/markdown-it-emoji": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/markdown-it-emoji/-/markdown-it-emoji-2.0.2.tgz", "integrity": "sha512-zLftSaNrKuYl0kR5zm4gxXjHaOI3FAOEaloKmRA5hijmJZvSjmxcokOLlzycb/HXlUFWzXqpIEoyEMCE4i9MvQ==" }, - "markdown-it-mathjax3": { + "node_modules/markdown-it-mathjax3": { "version": "4.3.2", "resolved": "https://registry.npmjs.org/markdown-it-mathjax3/-/markdown-it-mathjax3-4.3.2.tgz", "integrity": "sha512-TX3GW5NjmupgFtMJGRauioMbbkGsOXAAt1DZ/rzzYmTHqzkO1rNAdiMD4NiruurToPApn2kYy76x02QN26qr2w==", - "requires": { + "dependencies": { "juice": "^8.0.0", "mathjax-full": "^3.2.0" } }, - "mathjax-full": { + "node_modules/mathjax-full": { "version": "3.2.2", "resolved": "https://registry.npmjs.org/mathjax-full/-/mathjax-full-3.2.2.tgz", "integrity": "sha512-+LfG9Fik+OuI8SLwsiR02IVdjcnRCy5MufYLi0C3TdMT56L/pjB0alMVGgoWJF8pN9Rc7FESycZB9BMNWIid5w==", - "requires": { + "dependencies": { "esm": "^3.2.25", "mhchemparser": "^4.1.0", "mj-context-menu": "^0.6.1", "speech-rule-engine": "^4.0.6" } }, - "mdurl": { + "node_modules/mdurl": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/mdurl/-/mdurl-1.0.1.tgz", "integrity": "sha512-/sKlQJCBYVY9Ers9hqzKou4H6V5UWc/M59TH2dvkt+84itfnq7uFOMLpOiOS4ujvHP4etln18fmIxA5R5fll0g==" }, - "mensch": { + "node_modules/mensch": { "version": "0.3.4", "resolved": "https://registry.npmjs.org/mensch/-/mensch-0.3.4.tgz", "integrity": "sha512-IAeFvcOnV9V0Yk+bFhYR07O3yNina9ANIN5MoXBKYJ/RLYPurd2d0yw14MDhpr9/momp0WofT1bPUh3hkzdi/g==" }, - "meteor-accounts-t9n": { + "node_modules/meteor-accounts-t9n": { "version": "2.6.0", "resolved": "https://registry.npmjs.org/meteor-accounts-t9n/-/meteor-accounts-t9n-2.6.0.tgz", "integrity": "sha512-SBbbYWvFYvsxHVL+q6ZB8lT3rp2LSvfALD2V52H+MGH2IgJsevy0VtXRkRG0EsUewwOaDTIKBn9DlD8HQ3GSwg==" }, - "meteor-node-stubs": { + "node_modules/meteor-node-stubs": { "version": "1.2.12", "resolved": "https://registry.npmjs.org/meteor-node-stubs/-/meteor-node-stubs-1.2.12.tgz", "integrity": "sha512-mzp3KI2aGNDhFlCVXPd0pfMr2z9A5vl1AqEgV13/z7AgKwcbd2X+ymE6tpSAMkrrQb40PU9PC2B59bCb6XkAaw==", - "requires": { + "bundleDependencies": [ + "@meteorjs/crypto-browserify", + "assert", + "browserify-zlib", + "buffer", + "console-browserify", + "constants-browserify", + "domain-browser", + "events", + "https-browserify", + "os-browserify", + "path-browserify", + "process", + "punycode", + "querystring-es3", + "readable-stream", + "stream-browserify", + "stream-http", + "string_decoder", + "timers-browserify", + "tty-browserify", + "url", + "util", + "vm-browserify" + ], + "dependencies": { "@meteorjs/crypto-browserify": "^3.12.1", "assert": "^2.1.0", "browserify-zlib": "^0.2.0", @@ -1401,825 +1885,1181 @@ "url": "^0.11.4", "util": "^0.12.5", "vm-browserify": "^1.1.2" - }, - "dependencies": { - "@meteorjs/crypto-browserify": { - "version": "3.12.1", - "bundled": true, - "requires": { - "browserify-cipher": "^1.0.1", - "browserify-sign": "^4.2.3", - "create-ecdh": "^4.0.4", - "create-hash": "^1.2.0", - "create-hmac": "^1.1.7", - "diffie-hellman": "^5.0.3", - "hash-base": "~3.0.4", - "inherits": "^2.0.4", - "pbkdf2": "^3.1.2", - "public-encrypt": "^4.0.3", - "randombytes": "^2.1.0", - "randomfill": "^1.0.4" - }, - "dependencies": { - "hash-base": { - "version": "3.0.4", - "bundled": true, - "requires": { - "inherits": "^2.0.1", - "safe-buffer": "^5.0.1" - } - } - } - }, - "asn1.js": { - "version": "4.10.1", - "bundled": true, - "requires": { - "bn.js": "^4.0.0", - "inherits": "^2.0.1", - "minimalistic-assert": "^1.0.0" - }, - "dependencies": { - "bn.js": { - "version": "4.12.0", - "bundled": true - } - } - }, - "assert": { - "version": "2.1.0", - "bundled": true, - "requires": { - "call-bind": "^1.0.2", - "is-nan": "^1.3.2", - "object-is": "^1.1.5", - "object.assign": "^4.1.4", - "util": "^0.12.5" - } - }, - "available-typed-arrays": { - "version": "1.0.5", - "bundled": true - }, - "base64-js": { - "version": "1.5.1", - "bundled": true - }, - "bn.js": { - "version": "5.2.0", - "bundled": true - }, - "brorand": { - "version": "1.1.0", - "bundled": true - }, - "browserify-aes": { - "version": "1.2.0", - "bundled": true, - "requires": { - "buffer-xor": "^1.0.3", - "cipher-base": "^1.0.0", - "create-hash": "^1.1.0", - "evp_bytestokey": "^1.0.3", - "inherits": "^2.0.1", - "safe-buffer": "^5.0.1" - } - }, - "browserify-cipher": { - "version": "1.0.1", - "bundled": true, - "requires": { - "browserify-aes": "^1.0.4", - "browserify-des": "^1.0.0", - "evp_bytestokey": "^1.0.0" - } - }, - "browserify-des": { - "version": "1.0.2", - "bundled": true, - "requires": { - "cipher-base": "^1.0.1", - "des.js": "^1.0.0", - "inherits": "^2.0.1", - "safe-buffer": "^5.1.2" - } - }, - "browserify-rsa": { - "version": "4.1.0", - "bundled": true, - "requires": { - "bn.js": "^5.0.0", - "randombytes": "^2.0.1" - } - }, - "browserify-sign": { - "version": "4.2.3", - "bundled": true, - "requires": { - "bn.js": "^5.2.1", - "browserify-rsa": "^4.1.0", - "create-hash": "^1.2.0", - "create-hmac": "^1.1.7", - "elliptic": "^6.5.5", - "hash-base": "~3.0", - "inherits": "^2.0.4", - "parse-asn1": "^5.1.7", - "readable-stream": "^2.3.8", - "safe-buffer": "^5.2.1" - }, - "dependencies": { - "bn.js": { - "version": "5.2.1", - "bundled": true - }, - "hash-base": { - "version": "3.0.4", - "bundled": true, - "requires": { - "inherits": "^2.0.1", - "safe-buffer": "^5.0.1" - } - }, - "readable-stream": { - "version": "2.3.8", - "bundled": true, - "requires": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.3", - "isarray": "~1.0.0", - "process-nextick-args": "~2.0.0", - "safe-buffer": "~5.1.1", - "string_decoder": "~1.1.1", - "util-deprecate": "~1.0.1" - }, - "dependencies": { - "safe-buffer": { - "version": "5.1.2", - "bundled": true - } - } - }, - "string_decoder": { - "version": "1.1.1", - "bundled": true, - "requires": { - "safe-buffer": "~5.1.0" - }, - "dependencies": { - "safe-buffer": { - "version": "5.1.2", - "bundled": true - } - } - } - } - }, - "browserify-zlib": { - "version": "0.2.0", - "bundled": true, - "requires": { - "pako": "~1.0.5" - } - }, - "buffer": { - "version": "5.7.1", - "bundled": true, - "requires": { - "base64-js": "^1.3.1", - "ieee754": "^1.1.13" - } - }, - "buffer-xor": { - "version": "1.0.3", - "bundled": true - }, - "builtin-status-codes": { - "version": "3.0.0", - "bundled": true - }, - "call-bind": { - "version": "1.0.7", - "bundled": true, - "requires": { - "es-define-property": "^1.0.0", - "es-errors": "^1.3.0", - "function-bind": "^1.1.2", - "get-intrinsic": "^1.2.4", - "set-function-length": "^1.2.1" - } - }, - "cipher-base": { - "version": "1.0.4", - "bundled": true, - "requires": { - "inherits": "^2.0.1", - "safe-buffer": "^5.0.1" - } - }, - "console-browserify": { - "version": "1.2.0", - "bundled": true - }, - "constants-browserify": { - "version": "1.0.0", - "bundled": true - }, - "core-util-is": { - "version": "1.0.3", - "bundled": true - }, - "create-ecdh": { - "version": "4.0.4", - "bundled": true, - "requires": { - "bn.js": "^4.1.0", - "elliptic": "^6.5.3" - }, - "dependencies": { - "bn.js": { - "version": "4.12.0", - "bundled": true - } - } - }, - "create-hash": { - "version": "1.2.0", - "bundled": true, - "requires": { - "cipher-base": "^1.0.1", - "inherits": "^2.0.1", - "md5.js": "^1.3.4", - "ripemd160": "^2.0.1", - "sha.js": "^2.4.0" - } - }, - "create-hmac": { - "version": "1.1.7", - "bundled": true, - "requires": { - "cipher-base": "^1.0.3", - "create-hash": "^1.1.0", - "inherits": "^2.0.1", - "ripemd160": "^2.0.0", - "safe-buffer": "^5.0.1", - "sha.js": "^2.4.8" - } - }, - "define-data-property": { - "version": "1.1.4", - "bundled": true, - "requires": { - "es-define-property": "^1.0.0", - "es-errors": "^1.3.0", - "gopd": "^1.0.1" - } - }, - "define-properties": { - "version": "1.2.1", - "bundled": true, - "requires": { - "define-data-property": "^1.0.1", - "has-property-descriptors": "^1.0.0", - "object-keys": "^1.1.1" - } - }, - "des.js": { - "version": "1.0.1", - "bundled": true, - "requires": { - "inherits": "^2.0.1", - "minimalistic-assert": "^1.0.0" - } - }, - "diffie-hellman": { - "version": "5.0.3", - "bundled": true, - "requires": { - "bn.js": "^4.1.0", - "miller-rabin": "^4.0.0", - "randombytes": "^2.0.0" - }, - "dependencies": { - "bn.js": { - "version": "4.12.0", - "bundled": true - } - } - }, - "domain-browser": { - "version": "4.23.0", - "bundled": true - }, - "elliptic": { - "version": "6.6.0", - "bundled": true, - "requires": { - "bn.js": "^4.11.9", - "brorand": "^1.1.0", - "hash.js": "^1.0.0", - "hmac-drbg": "^1.0.1", - "inherits": "^2.0.4", - "minimalistic-assert": "^1.0.1", - "minimalistic-crypto-utils": "^1.0.1" - }, - "dependencies": { - "bn.js": { - "version": "4.12.0", - "bundled": true - } - } - }, - "es-define-property": { - "version": "1.0.0", - "bundled": true, - "requires": { - "get-intrinsic": "^1.2.4" - } - }, - "es-errors": { - "version": "1.3.0", - "bundled": true - }, - "events": { - "version": "3.3.0", - "bundled": true - }, - "evp_bytestokey": { - "version": "1.0.3", - "bundled": true, - "requires": { - "md5.js": "^1.3.4", - "safe-buffer": "^5.1.1" - } - }, - "for-each": { - "version": "0.3.3", - "bundled": true, - "requires": { - "is-callable": "^1.1.3" - } - }, - "function-bind": { - "version": "1.1.2", - "bundled": true - }, - "get-intrinsic": { - "version": "1.2.4", - "bundled": true, - "requires": { - "es-errors": "^1.3.0", - "function-bind": "^1.1.2", - "has-proto": "^1.0.1", - "has-symbols": "^1.0.3", - "hasown": "^2.0.0" - } - }, - "gopd": { - "version": "1.0.1", - "bundled": true, - "requires": { - "get-intrinsic": "^1.1.3" - } - }, - "has-property-descriptors": { - "version": "1.0.2", - "bundled": true, - "requires": { - "es-define-property": "^1.0.0" - } - }, - "has-proto": { - "version": "1.0.1", - "bundled": true - }, - "has-symbols": { - "version": "1.0.3", - "bundled": true - }, - "has-tostringtag": { - "version": "1.0.0", - "bundled": true, - "requires": { - "has-symbols": "^1.0.2" - } - }, - "hash-base": { - "version": "3.1.0", - "bundled": true, - "requires": { - "inherits": "^2.0.4", - "readable-stream": "^3.6.0", - "safe-buffer": "^5.2.0" - } - }, - "hash.js": { - "version": "1.1.7", - "bundled": true, - "requires": { - "inherits": "^2.0.3", - "minimalistic-assert": "^1.0.1" - } - }, - "hasown": { - "version": "2.0.0", - "bundled": true, - "requires": { - "function-bind": "^1.1.2" - } - }, - "hmac-drbg": { - "version": "1.0.1", - "bundled": true, - "requires": { - "hash.js": "^1.0.3", - "minimalistic-assert": "^1.0.0", - "minimalistic-crypto-utils": "^1.0.1" - } - }, - "https-browserify": { - "version": "1.0.0", - "bundled": true - }, - "ieee754": { - "version": "1.2.1", - "bundled": true - }, - "inherits": { - "version": "2.0.4", - "bundled": true - }, - "is-arguments": { - "version": "1.1.1", - "bundled": true, - "requires": { - "call-bind": "^1.0.2", - "has-tostringtag": "^1.0.0" - } - }, - "is-callable": { - "version": "1.2.7", - "bundled": true - }, - "is-generator-function": { - "version": "1.0.10", - "bundled": true, - "requires": { - "has-tostringtag": "^1.0.0" - } - }, - "is-nan": { - "version": "1.3.2", - "bundled": true, - "requires": { - "call-bind": "^1.0.0", - "define-properties": "^1.1.3" - } - }, - "is-typed-array": { - "version": "1.1.12", - "bundled": true, - "requires": { - "which-typed-array": "^1.1.11" - } - }, - "isarray": { - "version": "1.0.0", - "bundled": true - }, - "md5.js": { - "version": "1.3.5", - "bundled": true, - "requires": { - "hash-base": "^3.0.0", - "inherits": "^2.0.1", - "safe-buffer": "^5.1.2" - } - }, - "miller-rabin": { - "version": "4.0.1", - "bundled": true, - "requires": { - "bn.js": "^4.0.0", - "brorand": "^1.0.1" - }, - "dependencies": { - "bn.js": { - "version": "4.12.0", - "bundled": true - } - } - }, - "minimalistic-assert": { - "version": "1.0.1", - "bundled": true - }, - "minimalistic-crypto-utils": { - "version": "1.0.1", - "bundled": true - }, - "object-inspect": { - "version": "1.13.2", - "bundled": true - }, - "object-is": { - "version": "1.1.5", - "bundled": true, - "requires": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.3" - } - }, - "object-keys": { - "version": "1.1.1", - "bundled": true - }, - "object.assign": { - "version": "4.1.4", - "bundled": true, - "requires": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.4", - "has-symbols": "^1.0.3", - "object-keys": "^1.1.1" - } - }, - "os-browserify": { - "version": "0.3.0", - "bundled": true - }, - "pako": { - "version": "1.0.11", - "bundled": true - }, - "parse-asn1": { - "version": "5.1.7", - "bundled": true, - "requires": { - "asn1.js": "^4.10.1", - "browserify-aes": "^1.2.0", - "evp_bytestokey": "^1.0.3", - "hash-base": "~3.0", - "pbkdf2": "^3.1.2", - "safe-buffer": "^5.2.1" - }, - "dependencies": { - "hash-base": { - "version": "3.0.4", - "bundled": true, - "requires": { - "inherits": "^2.0.1", - "safe-buffer": "^5.0.1" - } - } - } - }, - "path-browserify": { - "version": "1.0.1", - "bundled": true - }, - "pbkdf2": { - "version": "3.1.2", - "bundled": true, - "requires": { - "create-hash": "^1.1.2", - "create-hmac": "^1.1.4", - "ripemd160": "^2.0.1", - "safe-buffer": "^5.0.1", - "sha.js": "^2.4.8" - } - }, - "process": { - "version": "0.11.10", - "bundled": true - }, - "process-nextick-args": { - "version": "2.0.1", - "bundled": true - }, - "public-encrypt": { - "version": "4.0.3", - "bundled": true, - "requires": { - "bn.js": "^4.1.0", - "browserify-rsa": "^4.0.0", - "create-hash": "^1.1.0", - "parse-asn1": "^5.0.0", - "randombytes": "^2.0.1", - "safe-buffer": "^5.1.2" - }, - "dependencies": { - "bn.js": { - "version": "4.12.0", - "bundled": true - } - } - }, - "punycode": { - "version": "1.4.1", - "bundled": true - }, - "qs": { - "version": "6.13.0", - "bundled": true, - "requires": { - "side-channel": "^1.0.6" - } - }, - "querystring-es3": { - "version": "0.2.1", - "bundled": true - }, - "randombytes": { - "version": "2.1.0", - "bundled": true, - "requires": { - "safe-buffer": "^5.1.0" - } - }, - "randomfill": { - "version": "1.0.4", - "bundled": true, - "requires": { - "randombytes": "^2.0.5", - "safe-buffer": "^5.1.0" - } - }, - "readable-stream": { - "version": "3.6.2", - "bundled": true, - "requires": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" - } - }, - "ripemd160": { - "version": "2.0.2", - "bundled": true, - "requires": { - "hash-base": "^3.0.0", - "inherits": "^2.0.1" - } - }, - "safe-buffer": { - "version": "5.2.1", - "bundled": true - }, - "set-function-length": { - "version": "1.2.2", - "bundled": true, - "requires": { - "define-data-property": "^1.1.4", - "es-errors": "^1.3.0", - "function-bind": "^1.1.2", - "get-intrinsic": "^1.2.4", - "gopd": "^1.0.1", - "has-property-descriptors": "^1.0.2" - } - }, - "setimmediate": { - "version": "1.0.5", - "bundled": true - }, - "sha.js": { - "version": "2.4.11", - "bundled": true, - "requires": { - "inherits": "^2.0.1", - "safe-buffer": "^5.0.1" - } - }, - "side-channel": { - "version": "1.0.6", - "bundled": true, - "requires": { - "call-bind": "^1.0.7", - "es-errors": "^1.3.0", - "get-intrinsic": "^1.2.4", - "object-inspect": "^1.13.1" - } - }, - "stream-browserify": { - "version": "3.0.0", - "bundled": true, - "requires": { - "inherits": "~2.0.4", - "readable-stream": "^3.5.0" - } - }, - "stream-http": { - "version": "3.2.0", - "bundled": true, - "requires": { - "builtin-status-codes": "^3.0.0", - "inherits": "^2.0.4", - "readable-stream": "^3.6.0", - "xtend": "^4.0.2" - } - }, - "string_decoder": { - "version": "1.3.0", - "bundled": true, - "requires": { - "safe-buffer": "~5.2.0" - } - }, - "timers-browserify": { - "version": "2.0.12", - "bundled": true, - "requires": { - "setimmediate": "^1.0.4" - } - }, - "tty-browserify": { - "version": "0.0.1", - "bundled": true - }, - "url": { - "version": "0.11.4", - "bundled": true, - "requires": { - "punycode": "^1.4.1", - "qs": "^6.12.3" - } - }, - "util": { - "version": "0.12.5", - "bundled": true, - "requires": { - "inherits": "^2.0.3", - "is-arguments": "^1.0.4", - "is-generator-function": "^1.0.7", - "is-typed-array": "^1.1.3", - "which-typed-array": "^1.1.2" - } - }, - "util-deprecate": { - "version": "1.0.2", - "bundled": true - }, - "vm-browserify": { - "version": "1.1.2", - "bundled": true - }, - "which-typed-array": { - "version": "1.1.13", - "bundled": true, - "requires": { - "available-typed-arrays": "^1.0.5", - "call-bind": "^1.0.4", - "for-each": "^0.3.3", - "gopd": "^1.0.1", - "has-tostringtag": "^1.0.0" - } - }, - "xtend": { - "version": "4.0.2", - "bundled": true - } } }, - "mhchemparser": { + "node_modules/meteor-node-stubs/node_modules/@meteorjs/crypto-browserify": { + "version": "3.12.1", + "integrity": "sha512-ku23zGjNb1XJXPSPlt4QCPetc4s/cPrSahhSF11mFeQff5wBuu7QVVn/MusdHh+l3aKl6L1XMLV+OYLXvNDQ6Q==", + "inBundle": true, + "dependencies": { + "browserify-cipher": "^1.0.1", + "browserify-sign": "^4.2.3", + "create-ecdh": "^4.0.4", + "create-hash": "^1.2.0", + "create-hmac": "^1.1.7", + "diffie-hellman": "^5.0.3", + "hash-base": "~3.0.4", + "inherits": "^2.0.4", + "pbkdf2": "^3.1.2", + "public-encrypt": "^4.0.3", + "randombytes": "^2.1.0", + "randomfill": "^1.0.4" + }, + "engines": { + "node": ">= 0.10" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/meteor-node-stubs/node_modules/@meteorjs/crypto-browserify/node_modules/hash-base": { + "version": "3.0.4", + "integrity": "sha512-EeeoJKjTyt868liAlVmcv2ZsUfGHlE3Q+BICOXcZiwN3osr5Q/zFGYmTJpoIzuaSTAwndFy+GqhEwlU4L3j4Ow==", + "inBundle": true, + "dependencies": { + "inherits": "^2.0.1", + "safe-buffer": "^5.0.1" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/meteor-node-stubs/node_modules/asn1.js": { + "version": "4.10.1", + "integrity": "sha512-p32cOF5q0Zqs9uBiONKYLm6BClCoBCM5O9JfeUSlnQLBTxYdTK+pW+nXflm8UkKd2UYlEbYz5qEi0JuZR9ckSw==", + "inBundle": true, + "dependencies": { + "bn.js": "^4.0.0", + "inherits": "^2.0.1", + "minimalistic-assert": "^1.0.0" + } + }, + "node_modules/meteor-node-stubs/node_modules/asn1.js/node_modules/bn.js": { + "version": "4.12.0", + "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==", + "inBundle": true + }, + "node_modules/meteor-node-stubs/node_modules/assert": { + "version": "2.1.0", + "integrity": "sha512-eLHpSK/Y4nhMJ07gDaAzoX/XAKS8PSaojml3M0DM4JpV1LAi5JOJ/p6H/XWrl8L+DzVEvVCW1z3vWAaB9oTsQw==", + "inBundle": true, + "dependencies": { + "call-bind": "^1.0.2", + "is-nan": "^1.3.2", + "object-is": "^1.1.5", + "object.assign": "^4.1.4", + "util": "^0.12.5" + } + }, + "node_modules/meteor-node-stubs/node_modules/available-typed-arrays": { + "version": "1.0.5", + "integrity": "sha512-DMD0KiN46eipeziST1LPP/STfDU0sufISXmjSgvVsoU2tqxctQeASejWcfNtxYKqETM1UxQ8sp2OrSBWpHY6sw==", + "inBundle": true, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/meteor-node-stubs/node_modules/base64-js": { + "version": "1.5.1", + "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "inBundle": true + }, + "node_modules/meteor-node-stubs/node_modules/bn.js": { + "version": "5.2.0", + "integrity": "sha512-D7iWRBvnZE8ecXiLj/9wbxH7Tk79fAh8IHaTNq1RWRixsS02W+5qS+iE9yq6RYl0asXx5tw0bLhmT5pIfbSquw==", + "inBundle": true + }, + "node_modules/meteor-node-stubs/node_modules/brorand": { + "version": "1.1.0", + "integrity": "sha512-cKV8tMCEpQs4hK/ik71d6LrPOnpkpGBR0wzxqr68g2m/LB2GxVYQroAjMJZRVM1Y4BCjCKc3vAamxSzOY2RP+w==", + "inBundle": true + }, + "node_modules/meteor-node-stubs/node_modules/browserify-aes": { + "version": "1.2.0", + "integrity": "sha512-+7CHXqGuspUn/Sl5aO7Ea0xWGAtETPXNSAjHo48JfLdPWcMng33Xe4znFvQweqc/uzk5zSOI3H52CYnjCfb5hA==", + "inBundle": true, + "dependencies": { + "buffer-xor": "^1.0.3", + "cipher-base": "^1.0.0", + "create-hash": "^1.1.0", + "evp_bytestokey": "^1.0.3", + "inherits": "^2.0.1", + "safe-buffer": "^5.0.1" + } + }, + "node_modules/meteor-node-stubs/node_modules/browserify-cipher": { + "version": "1.0.1", + "integrity": "sha512-sPhkz0ARKbf4rRQt2hTpAHqn47X3llLkUGn+xEJzLjwY8LRs2p0v7ljvI5EyoRO/mexrNunNECisZs+gw2zz1w==", + "inBundle": true, + "dependencies": { + "browserify-aes": "^1.0.4", + "browserify-des": "^1.0.0", + "evp_bytestokey": "^1.0.0" + } + }, + "node_modules/meteor-node-stubs/node_modules/browserify-des": { + "version": "1.0.2", + "integrity": "sha512-BioO1xf3hFwz4kc6iBhI3ieDFompMhrMlnDFC4/0/vd5MokpuAc3R+LYbwTA9A5Yc9pq9UYPqffKpW2ObuwX5A==", + "inBundle": true, + "dependencies": { + "cipher-base": "^1.0.1", + "des.js": "^1.0.0", + "inherits": "^2.0.1", + "safe-buffer": "^5.1.2" + } + }, + "node_modules/meteor-node-stubs/node_modules/browserify-rsa": { + "version": "4.1.0", + "integrity": "sha512-AdEER0Hkspgno2aR97SAf6vi0y0k8NuOpGnVH3O99rcA5Q6sh8QxcngtHuJ6uXwnfAXNM4Gn1Gb7/MV1+Ymbog==", + "inBundle": true, + "dependencies": { + "bn.js": "^5.0.0", + "randombytes": "^2.0.1" + } + }, + "node_modules/meteor-node-stubs/node_modules/browserify-sign": { + "version": "4.2.3", + "integrity": "sha512-JWCZW6SKhfhjJxO8Tyiiy+XYB7cqd2S5/+WeYHsKdNKFlCBhKbblba1A/HN/90YwtxKc8tCErjffZl++UNmGiw==", + "inBundle": true, + "dependencies": { + "bn.js": "^5.2.1", + "browserify-rsa": "^4.1.0", + "create-hash": "^1.2.0", + "create-hmac": "^1.1.7", + "elliptic": "^6.5.5", + "hash-base": "~3.0", + "inherits": "^2.0.4", + "parse-asn1": "^5.1.7", + "readable-stream": "^2.3.8", + "safe-buffer": "^5.2.1" + }, + "engines": { + "node": ">= 0.12" + } + }, + "node_modules/meteor-node-stubs/node_modules/browserify-sign/node_modules/bn.js": { + "version": "5.2.1", + "integrity": "sha512-eXRvHzWyYPBuB4NBy0cmYQjGitUrtqwbvlzP3G6VFnNRbsZQIxQ10PbKKHt8gZ/HW/D/747aDl+QkDqg3KQLMQ==", + "inBundle": true + }, + "node_modules/meteor-node-stubs/node_modules/browserify-sign/node_modules/hash-base": { + "version": "3.0.4", + "integrity": "sha512-EeeoJKjTyt868liAlVmcv2ZsUfGHlE3Q+BICOXcZiwN3osr5Q/zFGYmTJpoIzuaSTAwndFy+GqhEwlU4L3j4Ow==", + "inBundle": true, + "dependencies": { + "inherits": "^2.0.1", + "safe-buffer": "^5.0.1" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/meteor-node-stubs/node_modules/browserify-sign/node_modules/readable-stream": { + "version": "2.3.8", + "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", + "inBundle": true, + "dependencies": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + }, + "node_modules/meteor-node-stubs/node_modules/browserify-sign/node_modules/readable-stream/node_modules/safe-buffer": { + "version": "5.1.2", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", + "inBundle": true + }, + "node_modules/meteor-node-stubs/node_modules/browserify-sign/node_modules/string_decoder": { + "version": "1.1.1", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "inBundle": true, + "dependencies": { + "safe-buffer": "~5.1.0" + } + }, + "node_modules/meteor-node-stubs/node_modules/browserify-sign/node_modules/string_decoder/node_modules/safe-buffer": { + "version": "5.1.2", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", + "inBundle": true + }, + "node_modules/meteor-node-stubs/node_modules/browserify-zlib": { + "version": "0.2.0", + "integrity": "sha512-Z942RysHXmJrhqk88FmKBVq/v5tqmSkDz7p54G/MGyjMnCFFnC79XWNbg+Vta8W6Wb2qtSZTSxIGkJrRpCFEiA==", + "inBundle": true, + "dependencies": { + "pako": "~1.0.5" + } + }, + "node_modules/meteor-node-stubs/node_modules/buffer": { + "version": "5.7.1", + "integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "inBundle": true, + "dependencies": { + "base64-js": "^1.3.1", + "ieee754": "^1.1.13" + } + }, + "node_modules/meteor-node-stubs/node_modules/buffer-xor": { + "version": "1.0.3", + "integrity": "sha512-571s0T7nZWK6vB67HI5dyUF7wXiNcfaPPPTl6zYCNApANjIvYJTg7hlud/+cJpdAhS7dVzqMLmfhfHR3rAcOjQ==", + "inBundle": true + }, + "node_modules/meteor-node-stubs/node_modules/builtin-status-codes": { + "version": "3.0.0", + "integrity": "sha512-HpGFw18DgFWlncDfjTa2rcQ4W88O1mC8e8yZ2AvQY5KDaktSTwo+KRf6nHK6FRI5FyRyb/5T6+TSxfP7QyGsmQ==", + "inBundle": true + }, + "node_modules/meteor-node-stubs/node_modules/call-bind": { + "version": "1.0.7", + "integrity": "sha512-GHTSNSYICQ7scH7sZ+M2rFopRoLh8t2bLSW6BbgrtLsahOIB5iyAVJf9GjWK3cYTDaMj4XdBpM1cA6pIS0Kv2w==", + "inBundle": true, + "dependencies": { + "es-define-property": "^1.0.0", + "es-errors": "^1.3.0", + "function-bind": "^1.1.2", + "get-intrinsic": "^1.2.4", + "set-function-length": "^1.2.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/meteor-node-stubs/node_modules/cipher-base": { + "version": "1.0.4", + "integrity": "sha512-Kkht5ye6ZGmwv40uUDZztayT2ThLQGfnj/T71N/XzeZeo3nf8foyW7zGTsPYkEya3m5f3cAypH+qe7YOrM1U2Q==", + "inBundle": true, + "dependencies": { + "inherits": "^2.0.1", + "safe-buffer": "^5.0.1" + } + }, + "node_modules/meteor-node-stubs/node_modules/console-browserify": { + "version": "1.2.0", + "integrity": "sha512-ZMkYO/LkF17QvCPqM0gxw8yUzigAOZOSWSHg91FH6orS7vcEj5dVZTidN2fQ14yBSdg97RqhSNwLUXInd52OTA==", + "inBundle": true + }, + "node_modules/meteor-node-stubs/node_modules/constants-browserify": { + "version": "1.0.0", + "integrity": "sha512-xFxOwqIzR/e1k1gLiWEophSCMqXcwVHIH7akf7b/vxcUeGunlj3hvZaaqxwHsTgn+IndtkQJgSztIDWeumWJDQ==", + "inBundle": true + }, + "node_modules/meteor-node-stubs/node_modules/core-util-is": { + "version": "1.0.3", + "integrity": "sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==", + "inBundle": true + }, + "node_modules/meteor-node-stubs/node_modules/create-ecdh": { + "version": "4.0.4", + "integrity": "sha512-mf+TCx8wWc9VpuxfP2ht0iSISLZnt0JgWlrOKZiNqyUZWnjIaCIVNQArMHnCZKfEYRg6IM7A+NeJoN8gf/Ws0A==", + "inBundle": true, + "dependencies": { + "bn.js": "^4.1.0", + "elliptic": "^6.5.3" + } + }, + "node_modules/meteor-node-stubs/node_modules/create-ecdh/node_modules/bn.js": { + "version": "4.12.0", + "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==", + "inBundle": true + }, + "node_modules/meteor-node-stubs/node_modules/create-hash": { + "version": "1.2.0", + "integrity": "sha512-z00bCGNHDG8mHAkP7CtT1qVu+bFQUPjYq/4Iv3C3kWjTFV10zIjfSoeqXo9Asws8gwSHDGj/hl2u4OGIjapeCg==", + "inBundle": true, + "dependencies": { + "cipher-base": "^1.0.1", + "inherits": "^2.0.1", + "md5.js": "^1.3.4", + "ripemd160": "^2.0.1", + "sha.js": "^2.4.0" + } + }, + "node_modules/meteor-node-stubs/node_modules/create-hmac": { + "version": "1.1.7", + "integrity": "sha512-MJG9liiZ+ogc4TzUwuvbER1JRdgvUFSB5+VR/g5h82fGaIRWMWddtKBHi7/sVhfjQZ6SehlyhvQYrcYkaUIpLg==", + "inBundle": true, + "dependencies": { + "cipher-base": "^1.0.3", + "create-hash": "^1.1.0", + "inherits": "^2.0.1", + "ripemd160": "^2.0.0", + "safe-buffer": "^5.0.1", + "sha.js": "^2.4.8" + } + }, + "node_modules/meteor-node-stubs/node_modules/define-data-property": { + "version": "1.1.4", + "integrity": "sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==", + "inBundle": true, + "dependencies": { + "es-define-property": "^1.0.0", + "es-errors": "^1.3.0", + "gopd": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/meteor-node-stubs/node_modules/define-properties": { + "version": "1.2.1", + "integrity": "sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg==", + "inBundle": true, + "dependencies": { + "define-data-property": "^1.0.1", + "has-property-descriptors": "^1.0.0", + "object-keys": "^1.1.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/meteor-node-stubs/node_modules/des.js": { + "version": "1.0.1", + "integrity": "sha512-Q0I4pfFrv2VPd34/vfLrFOoRmlYj3OV50i7fskps1jZWK1kApMWWT9G6RRUeYedLcBDIhnSDaUvJMb3AhUlaEA==", + "inBundle": true, + "dependencies": { + "inherits": "^2.0.1", + "minimalistic-assert": "^1.0.0" + } + }, + "node_modules/meteor-node-stubs/node_modules/diffie-hellman": { + "version": "5.0.3", + "integrity": "sha512-kqag/Nl+f3GwyK25fhUMYj81BUOrZ9IuJsjIcDE5icNM9FJHAVm3VcUDxdLPoQtTuUylWm6ZIknYJwwaPxsUzg==", + "inBundle": true, + "dependencies": { + "bn.js": "^4.1.0", + "miller-rabin": "^4.0.0", + "randombytes": "^2.0.0" + } + }, + "node_modules/meteor-node-stubs/node_modules/diffie-hellman/node_modules/bn.js": { + "version": "4.12.0", + "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==", + "inBundle": true + }, + "node_modules/meteor-node-stubs/node_modules/domain-browser": { + "version": "4.23.0", + "integrity": "sha512-ArzcM/II1wCCujdCNyQjXrAFwS4mrLh4C7DZWlaI8mdh7h3BfKdNd3bKXITfl2PT9FtfQqaGvhi1vPRQPimjGA==", + "inBundle": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://bevry.me/fund" + } + }, + "node_modules/meteor-node-stubs/node_modules/elliptic": { + "version": "6.6.0", + "integrity": "sha512-dpwoQcLc/2WLQvJvLRHKZ+f9FgOdjnq11rurqwekGQygGPsYSK29OMMD2WalatiqQ+XGFDglTNixpPfI+lpaAA==", + "inBundle": true, + "dependencies": { + "bn.js": "^4.11.9", + "brorand": "^1.1.0", + "hash.js": "^1.0.0", + "hmac-drbg": "^1.0.1", + "inherits": "^2.0.4", + "minimalistic-assert": "^1.0.1", + "minimalistic-crypto-utils": "^1.0.1" + } + }, + "node_modules/meteor-node-stubs/node_modules/elliptic/node_modules/bn.js": { + "version": "4.12.0", + "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==", + "inBundle": true + }, + "node_modules/meteor-node-stubs/node_modules/es-define-property": { + "version": "1.0.0", + "integrity": "sha512-jxayLKShrEqqzJ0eumQbVhTYQM27CfT1T35+gCgDFoL82JLsXqTJ76zv6A0YLOgEnLUMvLzsDsGIrl8NFpT2gQ==", + "inBundle": true, + "dependencies": { + "get-intrinsic": "^1.2.4" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/meteor-node-stubs/node_modules/es-errors": { + "version": "1.3.0", + "integrity": "sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==", + "inBundle": true, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/meteor-node-stubs/node_modules/events": { + "version": "3.3.0", + "integrity": "sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==", + "inBundle": true, + "engines": { + "node": ">=0.8.x" + } + }, + "node_modules/meteor-node-stubs/node_modules/evp_bytestokey": { + "version": "1.0.3", + "integrity": "sha512-/f2Go4TognH/KvCISP7OUsHn85hT9nUkxxA9BEWxFn+Oj9o8ZNLm/40hdlgSLyuOimsrTKLUMEorQexp/aPQeA==", + "inBundle": true, + "dependencies": { + "md5.js": "^1.3.4", + "safe-buffer": "^5.1.1" + } + }, + "node_modules/meteor-node-stubs/node_modules/for-each": { + "version": "0.3.3", + "integrity": "sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw==", + "inBundle": true, + "dependencies": { + "is-callable": "^1.1.3" + } + }, + "node_modules/meteor-node-stubs/node_modules/function-bind": { + "version": "1.1.2", + "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==", + "inBundle": true, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/meteor-node-stubs/node_modules/get-intrinsic": { + "version": "1.2.4", + "integrity": "sha512-5uYhsJH8VJBTv7oslg4BznJYhDoRI6waYCxMmCdnTrcCrHA/fCFKoTFz2JKKE0HdDFUF7/oQuhzumXJK7paBRQ==", + "inBundle": true, + "dependencies": { + "es-errors": "^1.3.0", + "function-bind": "^1.1.2", + "has-proto": "^1.0.1", + "has-symbols": "^1.0.3", + "hasown": "^2.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/meteor-node-stubs/node_modules/gopd": { + "version": "1.0.1", + "integrity": "sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==", + "inBundle": true, + "dependencies": { + "get-intrinsic": "^1.1.3" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/meteor-node-stubs/node_modules/has-property-descriptors": { + "version": "1.0.2", + "integrity": "sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg==", + "inBundle": true, + "dependencies": { + "es-define-property": "^1.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/meteor-node-stubs/node_modules/has-proto": { + "version": "1.0.1", + "integrity": "sha512-7qE+iP+O+bgF9clE5+UoBFzE65mlBiVj3tKCrlNQ0Ogwm0BjpT/gK4SlLYDMybDh5I3TCTKnPPa0oMG7JDYrhg==", + "inBundle": true, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/meteor-node-stubs/node_modules/has-symbols": { + "version": "1.0.3", + "integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==", + "inBundle": true, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/meteor-node-stubs/node_modules/has-tostringtag": { + "version": "1.0.0", + "integrity": "sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ==", + "inBundle": true, + "dependencies": { + "has-symbols": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/meteor-node-stubs/node_modules/hash-base": { + "version": "3.1.0", + "integrity": "sha512-1nmYp/rhMDiE7AYkDw+lLwlAzz0AntGIe51F3RfFfEqyQ3feY2eI/NcwC6umIQVOASPMsWJLJScWKSSvzL9IVA==", + "inBundle": true, + "dependencies": { + "inherits": "^2.0.4", + "readable-stream": "^3.6.0", + "safe-buffer": "^5.2.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/meteor-node-stubs/node_modules/hash.js": { + "version": "1.1.7", + "integrity": "sha512-taOaskGt4z4SOANNseOviYDvjEJinIkRgmp7LbKP2YTTmVxWBl87s/uzK9r+44BclBSp2X7K1hqeNfz9JbBeXA==", + "inBundle": true, + "dependencies": { + "inherits": "^2.0.3", + "minimalistic-assert": "^1.0.1" + } + }, + "node_modules/meteor-node-stubs/node_modules/hasown": { + "version": "2.0.0", + "integrity": "sha512-vUptKVTpIJhcczKBbgnS+RtcuYMB8+oNzPK2/Hp3hanz8JmpATdmmgLgSaadVREkDm+e2giHwY3ZRkyjSIDDFA==", + "inBundle": true, + "dependencies": { + "function-bind": "^1.1.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/meteor-node-stubs/node_modules/hmac-drbg": { + "version": "1.0.1", + "integrity": "sha512-Tti3gMqLdZfhOQY1Mzf/AanLiqh1WTiJgEj26ZuYQ9fbkLomzGchCws4FyrSd4VkpBfiNhaE1On+lOz894jvXg==", + "inBundle": true, + "dependencies": { + "hash.js": "^1.0.3", + "minimalistic-assert": "^1.0.0", + "minimalistic-crypto-utils": "^1.0.1" + } + }, + "node_modules/meteor-node-stubs/node_modules/https-browserify": { + "version": "1.0.0", + "integrity": "sha512-J+FkSdyD+0mA0N+81tMotaRMfSL9SGi+xpD3T6YApKsc3bGSXJlfXri3VyFOeYkfLRQisDk1W+jIFFKBeUBbBg==", + "inBundle": true + }, + "node_modules/meteor-node-stubs/node_modules/ieee754": { + "version": "1.2.1", + "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "inBundle": true + }, + "node_modules/meteor-node-stubs/node_modules/inherits": { + "version": "2.0.4", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", + "inBundle": true + }, + "node_modules/meteor-node-stubs/node_modules/is-arguments": { + "version": "1.1.1", + "integrity": "sha512-8Q7EARjzEnKpt/PCD7e1cgUS0a6X8u5tdSiMqXhojOdoV9TsMsiO+9VLC5vAmO8N7/GmXn7yjR8qnA6bVAEzfA==", + "inBundle": true, + "dependencies": { + "call-bind": "^1.0.2", + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/meteor-node-stubs/node_modules/is-callable": { + "version": "1.2.7", + "integrity": "sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==", + "inBundle": true, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/meteor-node-stubs/node_modules/is-generator-function": { + "version": "1.0.10", + "integrity": "sha512-jsEjy9l3yiXEQ+PsXdmBwEPcOxaXWLspKdplFUVI9vq1iZgIekeC0L167qeu86czQaxed3q/Uzuw0swL0irL8A==", + "inBundle": true, + "dependencies": { + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/meteor-node-stubs/node_modules/is-nan": { + "version": "1.3.2", + "integrity": "sha512-E+zBKpQ2t6MEo1VsonYmluk9NxGrbzpeeLC2xIViuO2EjU2xsXsBPwTr3Ykv9l08UYEVEdWeRZNouaZqF6RN0w==", + "inBundle": true, + "dependencies": { + "call-bind": "^1.0.0", + "define-properties": "^1.1.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/meteor-node-stubs/node_modules/is-typed-array": { + "version": "1.1.12", + "integrity": "sha512-Z14TF2JNG8Lss5/HMqt0//T9JeHXttXy5pH/DBU4vi98ozO2btxzq9MwYDZYnKwU8nRsz/+GVFVRDq3DkVuSPg==", + "inBundle": true, + "dependencies": { + "which-typed-array": "^1.1.11" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/meteor-node-stubs/node_modules/isarray": { + "version": "1.0.0", + "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==", + "inBundle": true + }, + "node_modules/meteor-node-stubs/node_modules/md5.js": { + "version": "1.3.5", + "integrity": "sha512-xitP+WxNPcTTOgnTJcrhM0xvdPepipPSf3I8EIpGKeFLjt3PlJLIDG3u8EX53ZIubkb+5U2+3rELYpEhHhzdkg==", + "inBundle": true, + "dependencies": { + "hash-base": "^3.0.0", + "inherits": "^2.0.1", + "safe-buffer": "^5.1.2" + } + }, + "node_modules/meteor-node-stubs/node_modules/miller-rabin": { + "version": "4.0.1", + "integrity": "sha512-115fLhvZVqWwHPbClyntxEVfVDfl9DLLTuJvq3g2O/Oxi8AiNouAHvDSzHS0viUJc+V5vm3eq91Xwqn9dp4jRA==", + "inBundle": true, + "dependencies": { + "bn.js": "^4.0.0", + "brorand": "^1.0.1" + }, + "bin": { + "miller-rabin": "bin/miller-rabin" + } + }, + "node_modules/meteor-node-stubs/node_modules/miller-rabin/node_modules/bn.js": { + "version": "4.12.0", + "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==", + "inBundle": true + }, + "node_modules/meteor-node-stubs/node_modules/minimalistic-assert": { + "version": "1.0.1", + "integrity": "sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A==", + "inBundle": true + }, + "node_modules/meteor-node-stubs/node_modules/minimalistic-crypto-utils": { + "version": "1.0.1", + "integrity": "sha512-JIYlbt6g8i5jKfJ3xz7rF0LXmv2TkDxBLUkiBeZ7bAx4GnnNMr8xFpGnOxn6GhTEHx3SjRrZEoU+j04prX1ktg==", + "inBundle": true + }, + "node_modules/meteor-node-stubs/node_modules/object-inspect": { + "version": "1.13.2", + "integrity": "sha512-IRZSRuzJiynemAXPYtPe5BoI/RESNYR7TYm50MC5Mqbd3Jmw5y790sErYw3V6SryFJD64b74qQQs9wn5Bg/k3g==", + "inBundle": true, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/meteor-node-stubs/node_modules/object-is": { + "version": "1.1.5", + "integrity": "sha512-3cyDsyHgtmi7I7DfSSI2LDp6SK2lwvtbg0p0R1e0RvTqF5ceGx+K2dfSjm1bKDMVCFEDAQvy+o8c6a7VujOddw==", + "inBundle": true, + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/meteor-node-stubs/node_modules/object-keys": { + "version": "1.1.1", + "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==", + "inBundle": true, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/meteor-node-stubs/node_modules/object.assign": { + "version": "4.1.4", + "integrity": "sha512-1mxKf0e58bvyjSCtKYY4sRe9itRk3PJpquJOjeIkz885CczcI4IvJJDLPS72oowuSh+pBxUFROpX+TU++hxhZQ==", + "inBundle": true, + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.4", + "has-symbols": "^1.0.3", + "object-keys": "^1.1.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/meteor-node-stubs/node_modules/os-browserify": { + "version": "0.3.0", + "integrity": "sha512-gjcpUc3clBf9+210TRaDWbf+rZZZEshZ+DlXMRCeAjp0xhTrnQsKHypIy1J3d5hKdUzj69t708EHtU8P6bUn0A==", + "inBundle": true + }, + "node_modules/meteor-node-stubs/node_modules/pako": { + "version": "1.0.11", + "integrity": "sha512-4hLB8Py4zZce5s4yd9XzopqwVv/yGNhV1Bl8NTmCq1763HeK2+EwVTv+leGeL13Dnh2wfbqowVPXCIO0z4taYw==", + "inBundle": true + }, + "node_modules/meteor-node-stubs/node_modules/parse-asn1": { + "version": "5.1.7", + "integrity": "sha512-CTM5kuWR3sx9IFamcl5ErfPl6ea/N8IYwiJ+vpeB2g+1iknv7zBl5uPwbMbRVznRVbrNY6lGuDoE5b30grmbqg==", + "inBundle": true, + "dependencies": { + "asn1.js": "^4.10.1", + "browserify-aes": "^1.2.0", + "evp_bytestokey": "^1.0.3", + "hash-base": "~3.0", + "pbkdf2": "^3.1.2", + "safe-buffer": "^5.2.1" + }, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/meteor-node-stubs/node_modules/parse-asn1/node_modules/hash-base": { + "version": "3.0.4", + "integrity": "sha512-EeeoJKjTyt868liAlVmcv2ZsUfGHlE3Q+BICOXcZiwN3osr5Q/zFGYmTJpoIzuaSTAwndFy+GqhEwlU4L3j4Ow==", + "inBundle": true, + "dependencies": { + "inherits": "^2.0.1", + "safe-buffer": "^5.0.1" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/meteor-node-stubs/node_modules/path-browserify": { + "version": "1.0.1", + "integrity": "sha512-b7uo2UCUOYZcnF/3ID0lulOJi/bafxa1xPe7ZPsammBSpjSWQkjNxlt635YGS2MiR9GjvuXCtz2emr3jbsz98g==", + "inBundle": true + }, + "node_modules/meteor-node-stubs/node_modules/pbkdf2": { + "version": "3.1.2", + "integrity": "sha512-iuh7L6jA7JEGu2WxDwtQP1ddOpaJNC4KlDEFfdQajSGgGPNi4OyDc2R7QnbY2bR9QjBVGwgvTdNJZoE7RaxUMA==", + "inBundle": true, + "dependencies": { + "create-hash": "^1.1.2", + "create-hmac": "^1.1.4", + "ripemd160": "^2.0.1", + "safe-buffer": "^5.0.1", + "sha.js": "^2.4.8" + }, + "engines": { + "node": ">=0.12" + } + }, + "node_modules/meteor-node-stubs/node_modules/process": { + "version": "0.11.10", + "integrity": "sha512-cdGef/drWFoydD1JsMzuFf8100nZl+GT+yacc2bEced5f9Rjk4z+WtFUTBu9PhOi9j/jfmBPu0mMEY4wIdAF8A==", + "inBundle": true, + "engines": { + "node": ">= 0.6.0" + } + }, + "node_modules/meteor-node-stubs/node_modules/process-nextick-args": { + "version": "2.0.1", + "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==", + "inBundle": true + }, + "node_modules/meteor-node-stubs/node_modules/public-encrypt": { + "version": "4.0.3", + "integrity": "sha512-zVpa8oKZSz5bTMTFClc1fQOnyyEzpl5ozpi1B5YcvBrdohMjH2rfsBtyXcuNuwjsDIXmBYlF2N5FlJYhR29t8Q==", + "inBundle": true, + "dependencies": { + "bn.js": "^4.1.0", + "browserify-rsa": "^4.0.0", + "create-hash": "^1.1.0", + "parse-asn1": "^5.0.0", + "randombytes": "^2.0.1", + "safe-buffer": "^5.1.2" + } + }, + "node_modules/meteor-node-stubs/node_modules/public-encrypt/node_modules/bn.js": { + "version": "4.12.0", + "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==", + "inBundle": true + }, + "node_modules/meteor-node-stubs/node_modules/punycode": { + "version": "1.4.1", + "integrity": "sha512-jmYNElW7yvO7TV33CjSmvSiE2yco3bV2czu/OzDKdMNVZQWfxCblURLhf+47syQRBntjfLdd/H0egrzIG+oaFQ==", + "inBundle": true + }, + "node_modules/meteor-node-stubs/node_modules/qs": { + "version": "6.13.0", + "integrity": "sha512-+38qI9SOr8tfZ4QmJNplMUxqjbe7LKvvZgWdExBOmd+egZTtjLB67Gu0HRX3u/XOq7UU2Nx6nsjvS16Z9uwfpg==", + "inBundle": true, + "dependencies": { + "side-channel": "^1.0.6" + }, + "engines": { + "node": ">=0.6" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/meteor-node-stubs/node_modules/querystring-es3": { + "version": "0.2.1", + "integrity": "sha512-773xhDQnZBMFobEiztv8LIl70ch5MSF/jUQVlhwFyBILqq96anmoctVIYz+ZRp0qbCKATTn6ev02M3r7Ga5vqA==", + "inBundle": true, + "engines": { + "node": ">=0.4.x" + } + }, + "node_modules/meteor-node-stubs/node_modules/randombytes": { + "version": "2.1.0", + "integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==", + "inBundle": true, + "dependencies": { + "safe-buffer": "^5.1.0" + } + }, + "node_modules/meteor-node-stubs/node_modules/randomfill": { + "version": "1.0.4", + "integrity": "sha512-87lcbR8+MhcWcUiQ+9e+Rwx8MyR2P7qnt15ynUlbm3TU/fjbgz4GsvfSUDTemtCCtVCqb4ZcEFlyPNTh9bBTLw==", + "inBundle": true, + "dependencies": { + "randombytes": "^2.0.5", + "safe-buffer": "^5.1.0" + } + }, + "node_modules/meteor-node-stubs/node_modules/readable-stream": { + "version": "3.6.2", + "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==", + "inBundle": true, + "dependencies": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/meteor-node-stubs/node_modules/ripemd160": { + "version": "2.0.2", + "integrity": "sha512-ii4iagi25WusVoiC4B4lq7pbXfAp3D9v5CwfkY33vffw2+pkDjY1D8GaN7spsxvCSx8dkPqOZCEZyfxcmJG2IA==", + "inBundle": true, + "dependencies": { + "hash-base": "^3.0.0", + "inherits": "^2.0.1" + } + }, + "node_modules/meteor-node-stubs/node_modules/safe-buffer": { + "version": "5.2.1", + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "inBundle": true + }, + "node_modules/meteor-node-stubs/node_modules/set-function-length": { + "version": "1.2.2", + "integrity": "sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg==", + "inBundle": true, + "dependencies": { + "define-data-property": "^1.1.4", + "es-errors": "^1.3.0", + "function-bind": "^1.1.2", + "get-intrinsic": "^1.2.4", + "gopd": "^1.0.1", + "has-property-descriptors": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/meteor-node-stubs/node_modules/setimmediate": { + "version": "1.0.5", + "integrity": "sha512-MATJdZp8sLqDl/68LfQmbP8zKPLQNV6BIZoIgrscFDQ+RsvK/BxeDQOgyxKKoh0y/8h3BqVFnCqQ/gd+reiIXA==", + "inBundle": true + }, + "node_modules/meteor-node-stubs/node_modules/sha.js": { + "version": "2.4.11", + "integrity": "sha512-QMEp5B7cftE7APOjk5Y6xgrbWu+WkLVQwk8JNjZ8nKRciZaByEW6MubieAiToS7+dwvrjGhH8jRXz3MVd0AYqQ==", + "inBundle": true, + "dependencies": { + "inherits": "^2.0.1", + "safe-buffer": "^5.0.1" + }, + "bin": { + "sha.js": "bin.js" + } + }, + "node_modules/meteor-node-stubs/node_modules/side-channel": { + "version": "1.0.6", + "integrity": "sha512-fDW/EZ6Q9RiO8eFG8Hj+7u/oW+XrPTIChwCOM2+th2A6OblDtYYIpve9m+KvI9Z4C9qSEXlaGR6bTEYHReuglA==", + "inBundle": true, + "dependencies": { + "call-bind": "^1.0.7", + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.4", + "object-inspect": "^1.13.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/meteor-node-stubs/node_modules/stream-browserify": { + "version": "3.0.0", + "integrity": "sha512-H73RAHsVBapbim0tU2JwwOiXUj+fikfiaoYAKHF3VJfA0pe2BCzkhAHBlLG6REzE+2WNZcxOXjK7lkso+9euLA==", + "inBundle": true, + "dependencies": { + "inherits": "~2.0.4", + "readable-stream": "^3.5.0" + } + }, + "node_modules/meteor-node-stubs/node_modules/stream-http": { + "version": "3.2.0", + "integrity": "sha512-Oq1bLqisTyK3TSCXpPbT4sdeYNdmyZJv1LxpEm2vu1ZhK89kSE5YXwZc3cWk0MagGaKriBh9mCFbVGtO+vY29A==", + "inBundle": true, + "dependencies": { + "builtin-status-codes": "^3.0.0", + "inherits": "^2.0.4", + "readable-stream": "^3.6.0", + "xtend": "^4.0.2" + } + }, + "node_modules/meteor-node-stubs/node_modules/string_decoder": { + "version": "1.3.0", + "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==", + "inBundle": true, + "dependencies": { + "safe-buffer": "~5.2.0" + } + }, + "node_modules/meteor-node-stubs/node_modules/timers-browserify": { + "version": "2.0.12", + "integrity": "sha512-9phl76Cqm6FhSX9Xe1ZUAMLtm1BLkKj2Qd5ApyWkXzsMRaA7dgr81kf4wJmQf/hAvg8EEyJxDo3du/0KlhPiKQ==", + "inBundle": true, + "dependencies": { + "setimmediate": "^1.0.4" + }, + "engines": { + "node": ">=0.6.0" + } + }, + "node_modules/meteor-node-stubs/node_modules/tty-browserify": { + "version": "0.0.1", + "integrity": "sha512-C3TaO7K81YvjCgQH9Q1S3R3P3BtN3RIM8n+OvX4il1K1zgE8ZhI0op7kClgkxtutIE8hQrcrHBXvIheqKUUCxw==", + "inBundle": true + }, + "node_modules/meteor-node-stubs/node_modules/url": { + "version": "0.11.4", + "integrity": "sha512-oCwdVC7mTuWiPyjLUz/COz5TLk6wgp0RCsN+wHZ2Ekneac9w8uuV0njcbbie2ME+Vs+d6duwmYuR3HgQXs1fOg==", + "inBundle": true, + "dependencies": { + "punycode": "^1.4.1", + "qs": "^6.12.3" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/meteor-node-stubs/node_modules/util": { + "version": "0.12.5", + "integrity": "sha512-kZf/K6hEIrWHI6XqOFUiiMa+79wE/D8Q+NCNAWclkyg3b4d2k7s0QGepNjiABc+aR3N1PAyHL7p6UcLY6LmrnA==", + "inBundle": true, + "dependencies": { + "inherits": "^2.0.3", + "is-arguments": "^1.0.4", + "is-generator-function": "^1.0.7", + "is-typed-array": "^1.1.3", + "which-typed-array": "^1.1.2" + } + }, + "node_modules/meteor-node-stubs/node_modules/util-deprecate": { + "version": "1.0.2", + "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==", + "inBundle": true + }, + "node_modules/meteor-node-stubs/node_modules/vm-browserify": { + "version": "1.1.2", + "integrity": "sha512-2ham8XPWTONajOR0ohOKOHXkm3+gaBmGut3SRuu75xLd/RRaY6vqgh8NBYYk7+RW3u5AtzPQZG8F10LHkl0lAQ==", + "inBundle": true + }, + "node_modules/meteor-node-stubs/node_modules/which-typed-array": { + "version": "1.1.13", + "integrity": "sha512-P5Nra0qjSncduVPEAr7xhoF5guty49ArDTwzJ/yNuPIbZppyRxFQsRCWrocxIY+CnMVG+qfbU2FmDKyvSGClow==", + "inBundle": true, + "dependencies": { + "available-typed-arrays": "^1.0.5", + "call-bind": "^1.0.4", + "for-each": "^0.3.3", + "gopd": "^1.0.1", + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/meteor-node-stubs/node_modules/xtend": { + "version": "4.0.2", + "integrity": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==", + "inBundle": true, + "engines": { + "node": ">=0.4" + } + }, + "node_modules/mhchemparser": { "version": "4.2.1", "resolved": "https://registry.npmjs.org/mhchemparser/-/mhchemparser-4.2.1.tgz", "integrity": "sha512-kYmyrCirqJf3zZ9t/0wGgRZ4/ZJw//VwaRVGA75C4nhE60vtnIzhl9J9ndkX/h6hxSN7pjg/cE0VxbnNM+bnDQ==" }, - "mime": { + "node_modules/mime": { "version": "2.6.0", "resolved": "https://registry.npmjs.org/mime/-/mime-2.6.0.tgz", - "integrity": "sha512-USPkMeET31rOMiarsBNIHZKLGgvKc/LrjofAnBlOttf5ajRvqiRA8QsenbcooctK6d6Ts6aqZXBA+XbkKthiQg==" + "integrity": "sha512-USPkMeET31rOMiarsBNIHZKLGgvKc/LrjofAnBlOttf5ajRvqiRA8QsenbcooctK6d6Ts6aqZXBA+XbkKthiQg==", + "bin": { + "mime": "cli.js" + }, + "engines": { + "node": ">=4.0.0" + } }, - "mime-db": { + "node_modules/mime-db": { "version": "1.52.0", "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", - "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==" + "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==", + "engines": { + "node": ">= 0.6" + } }, - "mime-types": { + "node_modules/mime-types": { "version": "2.1.35", "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", - "requires": { + "dependencies": { "mime-db": "1.52.0" + }, + "engines": { + "node": ">= 0.6" } }, - "minimatch": { + "node_modules/minimatch": { "version": "3.1.2", "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", - "requires": { + "dependencies": { "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" } }, - "minimist": { + "node_modules/minimist": { "version": "1.2.8", "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz", - "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==" + "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } }, - "minio": { + "node_modules/minio": { "version": "7.1.3", "resolved": "https://registry.npmjs.org/minio/-/minio-7.1.3.tgz", "integrity": "sha512-xPrLjWkTT5E7H7VnzOjF//xBp9I40jYB4aWhb2xTFopXXfw+Wo82DDWngdUju7Doy3Wk7R8C4LAgwhLHHnf0wA==", - "requires": { + "dependencies": { "async": "^3.2.4", "block-stream2": "^2.1.0", "browser-or-node": "^2.1.1", @@ -2234,637 +3074,861 @@ "web-encoding": "^1.1.5", "xml": "^1.0.1", "xml2js": "^0.5.0" + }, + "engines": { + "node": "^16 || ^18 || >=20" } }, - "minipass": { + "node_modules/minipass": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/minipass/-/minipass-5.0.0.tgz", - "integrity": "sha512-3FnjYuehv9k6ovOEbyOswadCDPX1piCfhV8ncmYtHOjuPwylVWsghTLo7rabjC3Rx5xD4HDx8Wm1xnMF7S5qFQ==" + "integrity": "sha512-3FnjYuehv9k6ovOEbyOswadCDPX1piCfhV8ncmYtHOjuPwylVWsghTLo7rabjC3Rx5xD4HDx8Wm1xnMF7S5qFQ==", + "engines": { + "node": ">=8" + } }, - "minizlib": { + "node_modules/minizlib": { "version": "2.1.2", "resolved": "https://registry.npmjs.org/minizlib/-/minizlib-2.1.2.tgz", "integrity": "sha512-bAxsR8BVfj60DWXHE3u30oHzfl4G7khkSuPW+qvpd7jFRHm7dLxOjUk1EHACJ/hxLY8phGJ0YhYHZo7jil7Qdg==", - "requires": { + "dependencies": { "minipass": "^3.0.0", "yallist": "^4.0.0" }, - "dependencies": { - "minipass": { - "version": "3.3.6", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz", - "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==", - "requires": { - "yallist": "^4.0.0" - } - } + "engines": { + "node": ">= 8" } }, - "mj-context-menu": { + "node_modules/minizlib/node_modules/minipass": { + "version": "3.3.6", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz", + "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==", + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/mj-context-menu": { "version": "0.6.1", "resolved": "https://registry.npmjs.org/mj-context-menu/-/mj-context-menu-0.6.1.tgz", "integrity": "sha512-7NO5s6n10TIV96d4g2uDpG7ZDpIhMh0QNfGdJw/W47JswFcosz457wqz/b5sAKvl12sxINGFCn80NZHKwxQEXA==" }, - "mkdirp": { + "node_modules/mkdirp": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", - "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==" + "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==", + "bin": { + "mkdirp": "bin/cmd.js" + }, + "engines": { + "node": ">=10" + } }, - "moment": { + "node_modules/moment": { "version": "2.30.1", "resolved": "https://registry.npmjs.org/moment/-/moment-2.30.1.tgz", - "integrity": "sha512-uEmtNhbDOrWPFS+hdjFCBfy9f2YoyzRpwcl+DqpC6taX21FzsTLQVbMV/W7PzNSX6x/bhC1zA3c2UQ5NzH6how==" + "integrity": "sha512-uEmtNhbDOrWPFS+hdjFCBfy9f2YoyzRpwcl+DqpC6taX21FzsTLQVbMV/W7PzNSX6x/bhC1zA3c2UQ5NzH6how==", + "engines": { + "node": "*" + } }, - "mongo-object": { + "node_modules/mongo-object": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/mongo-object/-/mongo-object-3.0.1.tgz", - "integrity": "sha512-EbiwWHvKOF9xhIzuwaqknwPISdkHMipjMs6DiJFicupgBBLEhUs0OOro9MuPkFogB17DZlsV4KJhhxfqZ7ZRMQ==" + "integrity": "sha512-EbiwWHvKOF9xhIzuwaqknwPISdkHMipjMs6DiJFicupgBBLEhUs0OOro9MuPkFogB17DZlsV4KJhhxfqZ7ZRMQ==", + "engines": { + "node": ">=14.16", + "npm": ">=8" + } }, - "ms": { + "node_modules/ms": { "version": "2.1.2", "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" }, - "nise": { + "node_modules/nise": { "version": "5.1.5", "resolved": "https://registry.npmjs.org/nise/-/nise-5.1.5.tgz", "integrity": "sha512-VJuPIfUFaXNRzETTQEEItTOP8Y171ijr+JLq42wHes3DiryR8vT+1TXQW/Rx8JNUhyYYWyIvjXTU6dOhJcs9Nw==", "dev": true, - "requires": { + "dependencies": { "@sinonjs/commons": "^2.0.0", "@sinonjs/fake-timers": "^10.0.2", "@sinonjs/text-encoding": "^0.7.1", "just-extend": "^4.0.2", "path-to-regexp": "^1.7.0" - }, - "dependencies": { - "@sinonjs/commons": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/@sinonjs/commons/-/commons-2.0.0.tgz", - "integrity": "sha512-uLa0j859mMrg2slwQYdO/AkrOfmH+X6LTVmNTS9CqexuE2IvVORIkSpJLqePAbEnKJ77aMmCwr1NUZ57120Xcg==", - "dev": true, - "requires": { - "type-detect": "4.0.8" - } - }, - "@sinonjs/fake-timers": { - "version": "10.3.0", - "resolved": "https://registry.npmjs.org/@sinonjs/fake-timers/-/fake-timers-10.3.0.tgz", - "integrity": "sha512-V4BG07kuYSUkTCSBHG8G8TNhM+F19jXFWnQtzj+we8DrkpSBCee9Z3Ms8yiGer/dlmhe35/Xdgyo3/0rQKg7YA==", - "dev": true, - "requires": { - "@sinonjs/commons": "^3.0.0" - }, - "dependencies": { - "@sinonjs/commons": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/@sinonjs/commons/-/commons-3.0.0.tgz", - "integrity": "sha512-jXBtWAF4vmdNmZgD5FoKsVLv3rPgDnLgPbU84LIJ3otV44vJlDRokVng5v8NFJdCf/da9legHcKaRuZs4L7faA==", - "dev": true, - "requires": { - "type-detect": "4.0.8" - } - } - } - }, - "isarray": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", - "integrity": "sha512-D2S+3GLxWH+uhrNEcoh/fnmYeP8E8/zHl644d/jdA0g2uyXvy3sb0qxotE+ne0LtccHknQzWwZEzhak7oJ0COQ==", - "dev": true - }, - "path-to-regexp": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-1.9.0.tgz", - "integrity": "sha512-xIp7/apCFJuUHdDLWe8O1HIkb0kQrOMb/0u6FXQjemHn/ii5LrIzU6bdECnsiTF/GjZkMEKg1xdiZwNqDYlZ6g==", - "dev": true, - "requires": { - "isarray": "0.0.1" - } - } } }, - "node-fetch": { + "node_modules/nise/node_modules/@sinonjs/commons": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/@sinonjs/commons/-/commons-2.0.0.tgz", + "integrity": "sha512-uLa0j859mMrg2slwQYdO/AkrOfmH+X6LTVmNTS9CqexuE2IvVORIkSpJLqePAbEnKJ77aMmCwr1NUZ57120Xcg==", + "dev": true, + "dependencies": { + "type-detect": "4.0.8" + } + }, + "node_modules/nise/node_modules/@sinonjs/fake-timers": { + "version": "10.3.0", + "resolved": "https://registry.npmjs.org/@sinonjs/fake-timers/-/fake-timers-10.3.0.tgz", + "integrity": "sha512-V4BG07kuYSUkTCSBHG8G8TNhM+F19jXFWnQtzj+we8DrkpSBCee9Z3Ms8yiGer/dlmhe35/Xdgyo3/0rQKg7YA==", + "dev": true, + "dependencies": { + "@sinonjs/commons": "^3.0.0" + } + }, + "node_modules/nise/node_modules/@sinonjs/fake-timers/node_modules/@sinonjs/commons": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@sinonjs/commons/-/commons-3.0.0.tgz", + "integrity": "sha512-jXBtWAF4vmdNmZgD5FoKsVLv3rPgDnLgPbU84LIJ3otV44vJlDRokVng5v8NFJdCf/da9legHcKaRuZs4L7faA==", + "dev": true, + "dependencies": { + "type-detect": "4.0.8" + } + }, + "node_modules/nise/node_modules/isarray": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", + "integrity": "sha512-D2S+3GLxWH+uhrNEcoh/fnmYeP8E8/zHl644d/jdA0g2uyXvy3sb0qxotE+ne0LtccHknQzWwZEzhak7oJ0COQ==", + "dev": true + }, + "node_modules/nise/node_modules/path-to-regexp": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-1.9.0.tgz", + "integrity": "sha512-xIp7/apCFJuUHdDLWe8O1HIkb0kQrOMb/0u6FXQjemHn/ii5LrIzU6bdECnsiTF/GjZkMEKg1xdiZwNqDYlZ6g==", + "dev": true, + "dependencies": { + "isarray": "0.0.1" + } + }, + "node_modules/node-fetch": { "version": "2.7.0", "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.7.0.tgz", "integrity": "sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A==", - "requires": { + "dependencies": { "whatwg-url": "^5.0.0" + }, + "engines": { + "node": "4.x || >=6.0.0" + }, + "peerDependencies": { + "encoding": "^0.1.0" + }, + "peerDependenciesMeta": { + "encoding": { + "optional": true + } } }, - "nopt": { + "node_modules/nopt": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/nopt/-/nopt-5.0.0.tgz", "integrity": "sha512-Tbj67rffqceeLpcRXrT7vKAN8CwfPeIBgM7E6iBkmKLV7bEMwpGgYLGv0jACUsECaa/vuxP0IjEont6umdMgtQ==", - "requires": { + "dependencies": { "abbrev": "1" + }, + "bin": { + "nopt": "bin/nopt.js" + }, + "engines": { + "node": ">=6" } }, - "normalize-path": { + "node_modules/normalize-path": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", - "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==" + "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", + "engines": { + "node": ">=0.10.0" + } }, - "npmlog": { + "node_modules/npmlog": { "version": "5.0.1", "resolved": "https://registry.npmjs.org/npmlog/-/npmlog-5.0.1.tgz", "integrity": "sha512-AqZtDUWOMKs1G/8lwylVjrdYgqA4d9nu8hc+0gzRxlDb1I10+FHBGMXs6aiQHFdCUUlqH99MUMuLfzWDNDtfxw==", - "requires": { + "deprecated": "This package is no longer supported.", + "dependencies": { "are-we-there-yet": "^2.0.0", "console-control-strings": "^1.1.0", "gauge": "^3.0.0", "set-blocking": "^2.0.0" } }, - "nth-check": { + "node_modules/nth-check": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/nth-check/-/nth-check-2.1.1.tgz", "integrity": "sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w==", - "requires": { + "dependencies": { "boolbase": "^1.0.0" + }, + "funding": { + "url": "https://github.com/fb55/nth-check?sponsor=1" } }, - "object-assign": { + "node_modules/object-assign": { "version": "4.1.1", "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", - "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==" + "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==", + "engines": { + "node": ">=0.10.0" + } }, - "object-inspect": { + "node_modules/object-inspect": { "version": "1.13.2", "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.13.2.tgz", - "integrity": "sha512-IRZSRuzJiynemAXPYtPe5BoI/RESNYR7TYm50MC5Mqbd3Jmw5y790sErYw3V6SryFJD64b74qQQs9wn5Bg/k3g==" + "integrity": "sha512-IRZSRuzJiynemAXPYtPe5BoI/RESNYR7TYm50MC5Mqbd3Jmw5y790sErYw3V6SryFJD64b74qQQs9wn5Bg/k3g==", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } }, - "once": { + "node_modules/once": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", - "requires": { + "dependencies": { "wrappy": "1" } }, - "os": { + "node_modules/os": { "version": "0.1.2", "resolved": "https://registry.npmjs.org/os/-/os-0.1.2.tgz", "integrity": "sha512-ZoXJkvAnljwvc56MbvhtKVWmSkzV712k42Is2mA0+0KTSRakq5XXuXpjZjgAt9ctzl51ojhQWakQQpmOvXWfjQ==" }, - "pako": { + "node_modules/pako": { "version": "1.0.11", "resolved": "https://registry.npmjs.org/pako/-/pako-1.0.11.tgz", "integrity": "sha512-4hLB8Py4zZce5s4yd9XzopqwVv/yGNhV1Bl8NTmCq1763HeK2+EwVTv+leGeL13Dnh2wfbqowVPXCIO0z4taYw==" }, - "papaparse": { + "node_modules/papaparse": { "version": "5.4.1", "resolved": "https://registry.npmjs.org/papaparse/-/papaparse-5.4.1.tgz", "integrity": "sha512-HipMsgJkZu8br23pW15uvo6sib6wne/4woLZPlFf3rpDyMe9ywEXUsuD7+6K9PRkJlVT51j/sCOYDKGGS3ZJrw==" }, - "parse-ms": { + "node_modules/parse-ms": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/parse-ms/-/parse-ms-2.1.0.tgz", - "integrity": "sha512-kHt7kzLoS9VBZfUsiKjv43mr91ea+U05EyKkEtqp7vNbHxmaVuEqN7XxeEVnGrMtYOAxGrDElSi96K7EgO1zCA==" + "integrity": "sha512-kHt7kzLoS9VBZfUsiKjv43mr91ea+U05EyKkEtqp7vNbHxmaVuEqN7XxeEVnGrMtYOAxGrDElSi96K7EgO1zCA==", + "engines": { + "node": ">=6" + } }, - "parse5": { + "node_modules/parse5": { "version": "6.0.1", "resolved": "https://registry.npmjs.org/parse5/-/parse5-6.0.1.tgz", "integrity": "sha512-Ofn/CTFzRGTTxwpNEs9PP93gXShHcTq255nzRYSKe8AkVpZY7e1fpmTfOyoIvjP5HG7Z2ZM7VS9PPhQGW2pOpw==" }, - "parse5-htmlparser2-tree-adapter": { + "node_modules/parse5-htmlparser2-tree-adapter": { "version": "6.0.1", "resolved": "https://registry.npmjs.org/parse5-htmlparser2-tree-adapter/-/parse5-htmlparser2-tree-adapter-6.0.1.tgz", "integrity": "sha512-qPuWvbLgvDGilKc5BoicRovlT4MtYT6JfJyBOMDsKoiT+GiuP5qyrPCnR9HcPECIJJmZh5jRndyNThnhhb/vlA==", - "requires": { + "dependencies": { "parse5": "^6.0.1" } }, - "path-is-absolute": { + "node_modules/path-is-absolute": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", - "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==" + "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==", + "engines": { + "node": ">=0.10.0" + } }, - "peek-readable": { + "node_modules/peek-readable": { "version": "4.1.0", "resolved": "https://registry.npmjs.org/peek-readable/-/peek-readable-4.1.0.tgz", - "integrity": "sha512-ZI3LnwUv5nOGbQzD9c2iDG6toheuXSZP5esSHBjopsXH4dg19soufvpUGA3uohi5anFtGb2lhAVdHzH6R/Evvg==" + "integrity": "sha512-ZI3LnwUv5nOGbQzD9c2iDG6toheuXSZP5esSHBjopsXH4dg19soufvpUGA3uohi5anFtGb2lhAVdHzH6R/Evvg==", + "engines": { + "node": ">=8" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/Borewit" + } }, - "precond": { + "node_modules/precond": { "version": "0.2.3", "resolved": "https://registry.npmjs.org/precond/-/precond-0.2.3.tgz", - "integrity": "sha512-QCYG84SgGyGzqJ/vlMsxeXd/pgL/I94ixdNFyh1PusWmTCyVfPJjZ1K1jvHtsbfnXQs2TSkEP2fR7QiMZAnKFQ==" + "integrity": "sha512-QCYG84SgGyGzqJ/vlMsxeXd/pgL/I94ixdNFyh1PusWmTCyVfPJjZ1K1jvHtsbfnXQs2TSkEP2fR7QiMZAnKFQ==", + "engines": { + "node": ">= 0.6" + } }, - "pretty-ms": { + "node_modules/pretty-ms": { "version": "7.0.1", "resolved": "https://registry.npmjs.org/pretty-ms/-/pretty-ms-7.0.1.tgz", "integrity": "sha512-973driJZvxiGOQ5ONsFhOF/DtzPMOMtgC11kCpUrPGMTgqp2q/1gwzCquocrN33is0VZ5GFHXZYMM9l6h67v2Q==", - "requires": { + "dependencies": { "parse-ms": "^2.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "process-nextick-args": { + "node_modules/process-nextick-args": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==" }, - "punycode": { + "node_modules/punycode": { "version": "2.3.1", "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.1.tgz", - "integrity": "sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==" + "integrity": "sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==", + "engines": { + "node": ">=6" + } }, - "qs": { + "node_modules/qs": { "version": "6.13.0", "resolved": "https://registry.npmjs.org/qs/-/qs-6.13.0.tgz", "integrity": "sha512-+38qI9SOr8tfZ4QmJNplMUxqjbe7LKvvZgWdExBOmd+egZTtjLB67Gu0HRX3u/XOq7UU2Nx6nsjvS16Z9uwfpg==", - "requires": { + "dependencies": { "side-channel": "^1.0.6" + }, + "engines": { + "node": ">=0.6" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "query-string": { + "node_modules/query-string": { "version": "7.1.3", "resolved": "https://registry.npmjs.org/query-string/-/query-string-7.1.3.tgz", "integrity": "sha512-hh2WYhq4fi8+b+/2Kg9CEge4fDPvHS534aOOvOZeQ3+Vf2mCFsaFBYj0i+iXcAq6I9Vzp5fjMFBlONvayDC1qg==", - "requires": { + "dependencies": { "decode-uri-component": "^0.2.2", "filter-obj": "^1.1.0", "split-on-first": "^1.0.0", "strict-uri-encode": "^2.0.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "readable-stream": { + "node_modules/readable-stream": { "version": "3.6.2", "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz", "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==", - "requires": { + "dependencies": { "inherits": "^2.0.3", "string_decoder": "^1.1.1", "util-deprecate": "^1.0.1" + }, + "engines": { + "node": ">= 6" } }, - "readable-web-to-node-stream": { + "node_modules/readable-web-to-node-stream": { "version": "3.0.2", "resolved": "https://registry.npmjs.org/readable-web-to-node-stream/-/readable-web-to-node-stream-3.0.2.tgz", "integrity": "sha512-ePeK6cc1EcKLEhJFt/AebMCLL+GgSKhuygrZ/GLaKZYEecIgIECf4UaUuaByiGtzckwR4ain9VzUh95T1exYGw==", - "requires": { + "dependencies": { "readable-stream": "^3.6.0" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/Borewit" } }, - "readdir-glob": { + "node_modules/readdir-glob": { "version": "1.1.3", "resolved": "https://registry.npmjs.org/readdir-glob/-/readdir-glob-1.1.3.tgz", "integrity": "sha512-v05I2k7xN8zXvPD9N+z/uhXPaj0sUFCe2rcWZIpBsqxfP7xXFQ0tipAd/wjj1YxWyWtUS5IDJpOG82JKt2EAVA==", - "requires": { - "minimatch": "^5.1.0" - }, "dependencies": { - "brace-expansion": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", - "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", - "requires": { - "balanced-match": "^1.0.0" - } - }, - "minimatch": { - "version": "5.1.6", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.6.tgz", - "integrity": "sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==", - "requires": { - "brace-expansion": "^2.0.1" - } - } + "minimatch": "^5.1.0" } }, - "regenerator-runtime": { + "node_modules/readdir-glob/node_modules/brace-expansion": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "dependencies": { + "balanced-match": "^1.0.0" + } + }, + "node_modules/readdir-glob/node_modules/minimatch": { + "version": "5.1.6", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.6.tgz", + "integrity": "sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==", + "dependencies": { + "brace-expansion": "^2.0.1" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/regenerator-runtime": { "version": "0.14.1", "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.14.1.tgz", "integrity": "sha512-dYnhHh0nJoMfnkZs6GmmhFknAGRrLznOu5nc9ML+EJxGvrx6H7teuevqVqCuPcPK//3eDrrjQhehXVx9cnkGdw==" }, - "rimraf": { + "node_modules/rimraf": { "version": "3.0.2", "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", - "requires": { + "deprecated": "Rimraf versions prior to v4 are no longer supported", + "dependencies": { "glob": "^7.1.3" + }, + "bin": { + "rimraf": "bin.js" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" } }, - "safe-buffer": { + "node_modules/safe-buffer": { "version": "5.2.1", "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", - "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==" + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] }, - "safer-buffer": { + "node_modules/safer-buffer": { "version": "2.1.2", "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==" }, - "sax": { + "node_modules/sax": { "version": "1.3.0", "resolved": "https://registry.npmjs.org/sax/-/sax-1.3.0.tgz", "integrity": "sha512-0s+oAmw9zLl1V1cS9BtZN7JAd0cW5e0QH4W3LWEK6a4LaLEA2OTpGYWDY+6XasBLtz6wkm3u1xRw95mRuJ59WA==" }, - "saxes": { + "node_modules/saxes": { "version": "5.0.1", "resolved": "https://registry.npmjs.org/saxes/-/saxes-5.0.1.tgz", "integrity": "sha512-5LBh1Tls8c9xgGjw3QrMwETmTMVk0oFgvrFSvWx62llR2hcEInrKNZ2GZCCuuy2lvWrdl5jhbpeqc5hRYKFOcw==", - "requires": { + "dependencies": { "xmlchars": "^2.2.0" + }, + "engines": { + "node": ">=10" } }, - "semver": { + "node_modules/semver": { "version": "7.5.4", "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz", "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==", - "requires": { + "dependencies": { "lru-cache": "^6.0.0" + }, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" } }, - "set-blocking": { + "node_modules/set-blocking": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", "integrity": "sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw==" }, - "set-function-length": { + "node_modules/set-function-length": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/set-function-length/-/set-function-length-1.1.1.tgz", "integrity": "sha512-VoaqjbBJKiWtg4yRcKBQ7g7wnGnLV3M8oLvVWwOk2PdYY6PEFegR1vezXR0tw6fZGF9csVakIRjrJiy2veSBFQ==", - "requires": { + "dependencies": { "define-data-property": "^1.1.1", "get-intrinsic": "^1.2.1", "gopd": "^1.0.1", "has-property-descriptors": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" } }, - "setimmediate": { + "node_modules/setimmediate": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.5.tgz", "integrity": "sha512-MATJdZp8sLqDl/68LfQmbP8zKPLQNV6BIZoIgrscFDQ+RsvK/BxeDQOgyxKKoh0y/8h3BqVFnCqQ/gd+reiIXA==" }, - "side-channel": { + "node_modules/side-channel": { "version": "1.0.6", "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.6.tgz", "integrity": "sha512-fDW/EZ6Q9RiO8eFG8Hj+7u/oW+XrPTIChwCOM2+th2A6OblDtYYIpve9m+KvI9Z4C9qSEXlaGR6bTEYHReuglA==", - "requires": { + "dependencies": { "call-bind": "^1.0.7", "es-errors": "^1.3.0", "get-intrinsic": "^1.2.4", "object-inspect": "^1.13.1" }, - "dependencies": { - "call-bind": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.7.tgz", - "integrity": "sha512-GHTSNSYICQ7scH7sZ+M2rFopRoLh8t2bLSW6BbgrtLsahOIB5iyAVJf9GjWK3cYTDaMj4XdBpM1cA6pIS0Kv2w==", - "requires": { - "es-define-property": "^1.0.0", - "es-errors": "^1.3.0", - "function-bind": "^1.1.2", - "get-intrinsic": "^1.2.4", - "set-function-length": "^1.2.1" - } - }, - "define-data-property": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/define-data-property/-/define-data-property-1.1.4.tgz", - "integrity": "sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==", - "requires": { - "es-define-property": "^1.0.0", - "es-errors": "^1.3.0", - "gopd": "^1.0.1" - } - }, - "get-intrinsic": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.4.tgz", - "integrity": "sha512-5uYhsJH8VJBTv7oslg4BznJYhDoRI6waYCxMmCdnTrcCrHA/fCFKoTFz2JKKE0HdDFUF7/oQuhzumXJK7paBRQ==", - "requires": { - "es-errors": "^1.3.0", - "function-bind": "^1.1.2", - "has-proto": "^1.0.1", - "has-symbols": "^1.0.3", - "hasown": "^2.0.0" - } - }, - "has-property-descriptors": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.2.tgz", - "integrity": "sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg==", - "requires": { - "es-define-property": "^1.0.0" - } - }, - "set-function-length": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/set-function-length/-/set-function-length-1.2.2.tgz", - "integrity": "sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg==", - "requires": { - "define-data-property": "^1.1.4", - "es-errors": "^1.3.0", - "function-bind": "^1.1.2", - "get-intrinsic": "^1.2.4", - "gopd": "^1.0.1", - "has-property-descriptors": "^1.0.2" - } - } + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "signal-exit": { + "node_modules/side-channel/node_modules/call-bind": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.7.tgz", + "integrity": "sha512-GHTSNSYICQ7scH7sZ+M2rFopRoLh8t2bLSW6BbgrtLsahOIB5iyAVJf9GjWK3cYTDaMj4XdBpM1cA6pIS0Kv2w==", + "dependencies": { + "es-define-property": "^1.0.0", + "es-errors": "^1.3.0", + "function-bind": "^1.1.2", + "get-intrinsic": "^1.2.4", + "set-function-length": "^1.2.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/side-channel/node_modules/define-data-property": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/define-data-property/-/define-data-property-1.1.4.tgz", + "integrity": "sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==", + "dependencies": { + "es-define-property": "^1.0.0", + "es-errors": "^1.3.0", + "gopd": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/side-channel/node_modules/get-intrinsic": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.4.tgz", + "integrity": "sha512-5uYhsJH8VJBTv7oslg4BznJYhDoRI6waYCxMmCdnTrcCrHA/fCFKoTFz2JKKE0HdDFUF7/oQuhzumXJK7paBRQ==", + "dependencies": { + "es-errors": "^1.3.0", + "function-bind": "^1.1.2", + "has-proto": "^1.0.1", + "has-symbols": "^1.0.3", + "hasown": "^2.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/side-channel/node_modules/has-property-descriptors": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.2.tgz", + "integrity": "sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg==", + "dependencies": { + "es-define-property": "^1.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/side-channel/node_modules/set-function-length": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/set-function-length/-/set-function-length-1.2.2.tgz", + "integrity": "sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg==", + "dependencies": { + "define-data-property": "^1.1.4", + "es-errors": "^1.3.0", + "function-bind": "^1.1.2", + "get-intrinsic": "^1.2.4", + "gopd": "^1.0.1", + "has-property-descriptors": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/signal-exit": { "version": "3.0.7", "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==" }, - "simpl-schema": { + "node_modules/simpl-schema": { "version": "3.4.6", "resolved": "https://registry.npmjs.org/simpl-schema/-/simpl-schema-3.4.6.tgz", "integrity": "sha512-xgShTrNzktC1TTgizSjyDHrxs0bmZa1b9sso54cL8xwO2OloVhtHjfO73/dAK9OFzUIWCBTpKMpD12JPTgVimA==", - "requires": { + "dependencies": { "clone": "^2.1.2", "mongo-object": "^3.0.1" + }, + "engines": { + "node": ">=14.16", + "npm": ">=8" } }, - "sinon": { + "node_modules/sinon": { "version": "13.0.2", "resolved": "https://registry.npmjs.org/sinon/-/sinon-13.0.2.tgz", "integrity": "sha512-KvOrztAVqzSJWMDoxM4vM+GPys1df2VBoXm+YciyB/OLMamfS3VXh3oGh5WtrAGSzrgczNWFFY22oKb7Fi5eeA==", + "deprecated": "16.1.1", "dev": true, - "requires": { + "dependencies": { "@sinonjs/commons": "^1.8.3", "@sinonjs/fake-timers": "^9.1.2", "@sinonjs/samsam": "^6.1.1", "diff": "^5.0.0", "nise": "^5.1.1", "supports-color": "^7.2.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/sinon" } }, - "slick": { + "node_modules/slick": { "version": "1.12.2", "resolved": "https://registry.npmjs.org/slick/-/slick-1.12.2.tgz", - "integrity": "sha512-4qdtOGcBjral6YIBCWJ0ljFSKNLz9KkhbWtuGvUyRowl1kxfuE1x/Z/aJcaiilpb3do9bl5K7/1h9XC5wWpY/A==" + "integrity": "sha512-4qdtOGcBjral6YIBCWJ0ljFSKNLz9KkhbWtuGvUyRowl1kxfuE1x/Z/aJcaiilpb3do9bl5K7/1h9XC5wWpY/A==", + "engines": { + "node": "*" + } }, - "source-map": { + "node_modules/source-map": { "version": "0.6.1", "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==" + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "engines": { + "node": ">=0.10.0" + } }, - "source-map-support": { + "node_modules/source-map-support": { "version": "0.5.21", "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.21.tgz", "integrity": "sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==", - "requires": { + "dependencies": { "buffer-from": "^1.0.0", "source-map": "^0.6.0" } }, - "speech-rule-engine": { + "node_modules/speech-rule-engine": { "version": "4.0.7", "resolved": "https://registry.npmjs.org/speech-rule-engine/-/speech-rule-engine-4.0.7.tgz", "integrity": "sha512-sJrL3/wHzNwJRLBdf6CjJWIlxC04iYKkyXvYSVsWVOiC2DSkHmxsqOhEeMsBA9XK+CHuNcsdkbFDnoUfAsmp9g==", - "requires": { + "dependencies": { "commander": "9.2.0", "wicked-good-xpath": "1.3.0", "xmldom-sre": "0.1.31" }, - "dependencies": { - "commander": { - "version": "9.2.0", - "resolved": "https://registry.npmjs.org/commander/-/commander-9.2.0.tgz", - "integrity": "sha512-e2i4wANQiSXgnrBlIatyHtP1odfUp0BbV5Y5nEGbxtIrStkEOAAzCUirvLBNXHLr7kwLvJl6V+4V3XV9x7Wd9w==" - } + "bin": { + "sre": "bin/sre" } }, - "split-on-first": { + "node_modules/speech-rule-engine/node_modules/commander": { + "version": "9.2.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-9.2.0.tgz", + "integrity": "sha512-e2i4wANQiSXgnrBlIatyHtP1odfUp0BbV5Y5nEGbxtIrStkEOAAzCUirvLBNXHLr7kwLvJl6V+4V3XV9x7Wd9w==", + "engines": { + "node": "^12.20.0 || >=14" + } + }, + "node_modules/split-on-first": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/split-on-first/-/split-on-first-1.1.0.tgz", - "integrity": "sha512-43ZssAJaMusuKWL8sKUBQXHWOpq8d6CfN/u1p4gUzfJkM05C8rxTmYrkIPTXapZpORA6LkkzcUulJ8FqA7Uudw==" - }, - "strict-uri-encode": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/strict-uri-encode/-/strict-uri-encode-2.0.0.tgz", - "integrity": "sha512-QwiXZgpRcKkhTj2Scnn++4PKtWsH0kpzZ62L2R6c/LUVYv7hVnZqcg2+sMuT6R7Jusu1vviK/MFsu6kNJfWlEQ==" - }, - "string-width": { - "version": "4.2.3", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", - "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", - "requires": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.1" + "integrity": "sha512-43ZssAJaMusuKWL8sKUBQXHWOpq8d6CfN/u1p4gUzfJkM05C8rxTmYrkIPTXapZpORA6LkkzcUulJ8FqA7Uudw==", + "engines": { + "node": ">=6" } }, - "string_decoder": { + "node_modules/strict-uri-encode": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/strict-uri-encode/-/strict-uri-encode-2.0.0.tgz", + "integrity": "sha512-QwiXZgpRcKkhTj2Scnn++4PKtWsH0kpzZ62L2R6c/LUVYv7hVnZqcg2+sMuT6R7Jusu1vviK/MFsu6kNJfWlEQ==", + "engines": { + "node": ">=4" + } + }, + "node_modules/string_decoder": { "version": "1.3.0", "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz", "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==", - "requires": { + "dependencies": { "safe-buffer": "~5.2.0" } }, - "strip-ansi": { + "node_modules/string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/strip-ansi": { "version": "6.0.1", "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", - "requires": { + "dependencies": { "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" } }, - "strnum": { + "node_modules/strnum": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/strnum/-/strnum-1.0.5.tgz", "integrity": "sha512-J8bbNyKKXl5qYcR36TIO8W3mVGVHrmmxsd5PAItGkmyzwJvybiw2IVq5nqd0i4LSNSkB/sx9VHllbfFdr9k1JA==" }, - "strtok3": { + "node_modules/strtok3": { "version": "6.3.0", "resolved": "https://registry.npmjs.org/strtok3/-/strtok3-6.3.0.tgz", "integrity": "sha512-fZtbhtvI9I48xDSywd/somNqgUHl2L2cstmXCCif0itOf96jeW18MBSyrLuNicYQVkvpOxkZtkzujiTJ9LW5Jw==", - "requires": { + "dependencies": { "@tokenizer/token": "^0.3.0", "peek-readable": "^4.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/Borewit" } }, - "supports-color": { + "node_modules/supports-color": { "version": "7.2.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", "dev": true, - "requires": { + "dependencies": { "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" } }, - "tar": { + "node_modules/tar": { "version": "6.2.1", "resolved": "https://registry.npmjs.org/tar/-/tar-6.2.1.tgz", "integrity": "sha512-DZ4yORTwrbTj/7MZYq2w+/ZFdI6OZ/f9SFHR+71gIVUZhOQPHzVCLpvRnPgyaMpfWxxk/4ONva3GQSyNIKRv6A==", - "requires": { + "dependencies": { "chownr": "^2.0.0", "fs-minipass": "^2.0.0", "minipass": "^5.0.0", "minizlib": "^2.1.1", "mkdirp": "^1.0.3", "yallist": "^4.0.0" + }, + "engines": { + "node": ">=10" } }, - "tar-stream": { + "node_modules/tar-stream": { "version": "2.2.0", "resolved": "https://registry.npmjs.org/tar-stream/-/tar-stream-2.2.0.tgz", "integrity": "sha512-ujeqbceABgwMZxEJnk2HDY2DlnUZ+9oEcb1KzTVfYHio0UE6dG71n60d8D2I4qNvleWrrXpmjpt7vZeF1LnMZQ==", - "requires": { + "dependencies": { "bl": "^4.0.3", "end-of-stream": "^1.4.1", "fs-constants": "^1.0.0", "inherits": "^2.0.3", "readable-stream": "^3.1.1" + }, + "engines": { + "node": ">=6" } }, - "through2": { + "node_modules/through2": { "version": "4.0.2", "resolved": "https://registry.npmjs.org/through2/-/through2-4.0.2.tgz", "integrity": "sha512-iOqSav00cVxEEICeD7TjLB1sueEL+81Wpzp2bY17uZjZN0pWZPuo4suZ/61VujxmqSGFfgOcNuTZ85QJwNZQpw==", - "requires": { + "dependencies": { "readable-stream": "3" } }, - "tmp": { + "node_modules/tmp": { "version": "0.2.3", "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.2.3.tgz", - "integrity": "sha512-nZD7m9iCPC5g0pYmcaxogYKggSfLsdxl8of3Q/oIbqCqLLIO9IAF0GWjX1z9NZRHPiXv8Wex4yDCaZsgEw0Y8w==" + "integrity": "sha512-nZD7m9iCPC5g0pYmcaxogYKggSfLsdxl8of3Q/oIbqCqLLIO9IAF0GWjX1z9NZRHPiXv8Wex4yDCaZsgEw0Y8w==", + "engines": { + "node": ">=14.14" + } }, - "token-types": { + "node_modules/token-types": { "version": "4.2.1", "resolved": "https://registry.npmjs.org/token-types/-/token-types-4.2.1.tgz", "integrity": "sha512-6udB24Q737UD/SDsKAHI9FCRP7Bqc9D/MQUV02ORQg5iskjtLJlZJNdN4kKtcdtwCeWIwIHDGaUsTsCCAa8sFQ==", - "requires": { + "dependencies": { "@tokenizer/token": "^0.3.0", "ieee754": "^1.2.1" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/Borewit" } }, - "tr46": { + "node_modules/tr46": { "version": "0.0.3", "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz", "integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==" }, - "traverse": { + "node_modules/traverse": { "version": "0.3.9", "resolved": "https://registry.npmjs.org/traverse/-/traverse-0.3.9.tgz", - "integrity": "sha512-iawgk0hLP3SxGKDfnDJf8wTz4p2qImnyihM5Hh/sGvQ3K37dPi/w8sRhdNIxYA1TwFwc5mDhIJq+O0RsvXBKdQ==" + "integrity": "sha512-iawgk0hLP3SxGKDfnDJf8wTz4p2qImnyihM5Hh/sGvQ3K37dPi/w8sRhdNIxYA1TwFwc5mDhIJq+O0RsvXBKdQ==", + "engines": { + "node": "*" + } }, - "tslib": { + "node_modules/tslib": { "version": "2.6.2", "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.2.tgz", "integrity": "sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==" }, - "type-detect": { + "node_modules/type-detect": { "version": "4.0.8", "resolved": "https://registry.npmjs.org/type-detect/-/type-detect-4.0.8.tgz", "integrity": "sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==", - "dev": true + "dev": true, + "engines": { + "node": ">=4" + } }, - "uc.micro": { + "node_modules/uc.micro": { "version": "1.0.6", "resolved": "https://registry.npmjs.org/uc.micro/-/uc.micro-1.0.6.tgz", "integrity": "sha512-8Y75pvTYkLJW2hWQHXxoqRgV7qb9B+9vFEtidML+7koHUFapnVJAZ6cKs+Qjz5Aw3aZWHMC6u0wJE3At+nSGwA==" }, - "unzipper": { + "node_modules/unzipper": { "version": "0.10.14", "resolved": "https://registry.npmjs.org/unzipper/-/unzipper-0.10.14.tgz", "integrity": "sha512-ti4wZj+0bQTiX2KmKWuwj7lhV+2n//uXEotUmGuQqrbVZSEGFMbI68+c6JCQ8aAmUWYvtHEz2A8K6wXvueR/6g==", - "requires": { + "dependencies": { "big-integer": "^1.6.17", "binary": "~0.3.0", "bluebird": "~3.4.1", @@ -2875,50 +3939,48 @@ "listenercount": "~1.0.1", "readable-stream": "~2.3.6", "setimmediate": "~1.0.4" - }, - "dependencies": { - "readable-stream": { - "version": "2.3.8", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz", - "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", - "requires": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.3", - "isarray": "~1.0.0", - "process-nextick-args": "~2.0.0", - "safe-buffer": "~5.1.1", - "string_decoder": "~1.1.1", - "util-deprecate": "~1.0.1" - } - }, - "safe-buffer": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" - }, - "string_decoder": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", - "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", - "requires": { - "safe-buffer": "~5.1.0" - } - } } }, - "uri-js": { + "node_modules/unzipper/node_modules/readable-stream": { + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz", + "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", + "dependencies": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + }, + "node_modules/unzipper/node_modules/safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" + }, + "node_modules/unzipper/node_modules/string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "dependencies": { + "safe-buffer": "~5.1.0" + } + }, + "node_modules/uri-js": { "version": "4.4.1", "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", - "requires": { + "dependencies": { "punycode": "^2.1.0" } }, - "util": { + "node_modules/util": { "version": "0.12.5", "resolved": "https://registry.npmjs.org/util/-/util-0.12.5.tgz", "integrity": "sha512-kZf/K6hEIrWHI6XqOFUiiMa+79wE/D8Q+NCNAWclkyg3b4d2k7s0QGepNjiABc+aR3N1PAyHL7p6UcLY6LmrnA==", - "requires": { + "dependencies": { "inherits": "^2.0.3", "is-arguments": "^1.0.4", "is-generator-function": "^1.0.7", @@ -2926,77 +3988,90 @@ "which-typed-array": "^1.1.2" } }, - "util-deprecate": { + "node_modules/util-deprecate": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==" }, - "uuid": { + "node_modules/uuid": { "version": "8.3.2", "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz", - "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==" + "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==", + "bin": { + "uuid": "dist/bin/uuid" + } }, - "valid-data-url": { + "node_modules/valid-data-url": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/valid-data-url/-/valid-data-url-3.0.1.tgz", - "integrity": "sha512-jOWVmzVceKlVVdwjNSenT4PbGghU0SBIizAev8ofZVgivk/TVHXSbNL8LP6M3spZvkR9/QolkyJavGSX5Cs0UA==" + "integrity": "sha512-jOWVmzVceKlVVdwjNSenT4PbGghU0SBIizAev8ofZVgivk/TVHXSbNL8LP6M3spZvkR9/QolkyJavGSX5Cs0UA==", + "engines": { + "node": ">=10" + } }, - "vasync": { + "node_modules/vasync": { "version": "2.2.1", "resolved": "https://registry.npmjs.org/vasync/-/vasync-2.2.1.tgz", "integrity": "sha512-Hq72JaTpcTFdWiNA4Y22Amej2GH3BFmBaKPPlDZ4/oC8HNn2ISHLkFrJU4Ds8R3jcUi7oo5Y9jcMHKjES+N9wQ==", - "requires": { - "verror": "1.10.0" - }, + "engines": [ + "node >=0.6.0" + ], "dependencies": { - "core-util-is": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", - "integrity": "sha512-3lqz5YjWTYnW6dlDa5TLaTCcShfar1e40rmcJVwCBJC6mWlFuj0eCHIElmG1g5kyuJ/GD+8Wn4FFCcz4gJPfaQ==" - }, - "verror": { - "version": "1.10.0", - "resolved": "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz", - "integrity": "sha512-ZZKSmDAEFOijERBLkmYfJ+vmk3w+7hOLYDNkRCuRuMJGEmqYNCNLyBBFwWKVMhfwaEF3WOd0Zlw86U/WC/+nYw==", - "requires": { - "assert-plus": "^1.0.0", - "core-util-is": "1.0.2", - "extsprintf": "^1.2.0" - } - } + "verror": "1.10.0" } }, - "verror": { + "node_modules/vasync/node_modules/core-util-is": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", + "integrity": "sha512-3lqz5YjWTYnW6dlDa5TLaTCcShfar1e40rmcJVwCBJC6mWlFuj0eCHIElmG1g5kyuJ/GD+8Wn4FFCcz4gJPfaQ==" + }, + "node_modules/vasync/node_modules/verror": { + "version": "1.10.0", + "resolved": "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz", + "integrity": "sha512-ZZKSmDAEFOijERBLkmYfJ+vmk3w+7hOLYDNkRCuRuMJGEmqYNCNLyBBFwWKVMhfwaEF3WOd0Zlw86U/WC/+nYw==", + "engines": [ + "node >=0.6.0" + ], + "dependencies": { + "assert-plus": "^1.0.0", + "core-util-is": "1.0.2", + "extsprintf": "^1.2.0" + } + }, + "node_modules/verror": { "version": "1.10.1", "resolved": "https://registry.npmjs.org/verror/-/verror-1.10.1.tgz", "integrity": "sha512-veufcmxri4e3XSrT0xwfUR7kguIkaxBeosDg00yDWhk49wdwkSUrvvsm7nc75e1PUyvIeZj6nS8VQRYz2/S4Xg==", - "requires": { + "dependencies": { "assert-plus": "^1.0.0", "core-util-is": "1.0.2", "extsprintf": "^1.2.0" }, - "dependencies": { - "core-util-is": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", - "integrity": "sha512-3lqz5YjWTYnW6dlDa5TLaTCcShfar1e40rmcJVwCBJC6mWlFuj0eCHIElmG1g5kyuJ/GD+8Wn4FFCcz4gJPfaQ==" - } + "engines": { + "node": ">=0.6.0" } }, - "web-encoding": { + "node_modules/verror/node_modules/core-util-is": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", + "integrity": "sha512-3lqz5YjWTYnW6dlDa5TLaTCcShfar1e40rmcJVwCBJC6mWlFuj0eCHIElmG1g5kyuJ/GD+8Wn4FFCcz4gJPfaQ==" + }, + "node_modules/web-encoding": { "version": "1.1.5", "resolved": "https://registry.npmjs.org/web-encoding/-/web-encoding-1.1.5.tgz", "integrity": "sha512-HYLeVCdJ0+lBYV2FvNZmv3HJ2Nt0QYXqZojk3d9FJOLkwnuhzM9tmamh8d7HPM8QqjKH8DeHkFTx+CFlWpZZDA==", - "requires": { - "@zxing/text-encoding": "0.9.0", + "dependencies": { "util": "^0.12.3" + }, + "optionalDependencies": { + "@zxing/text-encoding": "0.9.0" } }, - "web-resource-inliner": { + "node_modules/web-resource-inliner": { "version": "6.0.1", "resolved": "https://registry.npmjs.org/web-resource-inliner/-/web-resource-inliner-6.0.1.tgz", "integrity": "sha512-kfqDxt5dTB1JhqsCUQVFDj0rmY+4HLwGQIsLPbyrsN9y9WV/1oFDSx3BQ4GfCv9X+jVeQ7rouTqwK53rA/7t8A==", - "requires": { + "dependencies": { "ansi-colors": "^4.1.1", "escape-goat": "^3.0.0", "htmlparser2": "^5.0.0", @@ -3004,133 +4079,162 @@ "node-fetch": "^2.6.0", "valid-data-url": "^3.0.0" }, - "dependencies": { - "domhandler": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-3.3.0.tgz", - "integrity": "sha512-J1C5rIANUbuYK+FuFL98650rihynUOEzRLxW+90bKZRWB6A1X1Tf82GxR1qAWLyfNPRvjqfip3Q5tdYlmAa9lA==", - "requires": { - "domelementtype": "^2.0.1" - } - }, - "htmlparser2": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-5.0.1.tgz", - "integrity": "sha512-vKZZra6CSe9qsJzh0BjBGXo8dvzNsq/oGvsjfRdOrrryfeD9UOBEEQdeoqCRmKZchF5h2zOBMQ6YuQ0uRUmdbQ==", - "requires": { - "domelementtype": "^2.0.1", - "domhandler": "^3.3.0", - "domutils": "^2.4.2", - "entities": "^2.0.0" - } - } + "engines": { + "node": ">=10.0.0" } }, - "webidl-conversions": { + "node_modules/web-resource-inliner/node_modules/domhandler": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-3.3.0.tgz", + "integrity": "sha512-J1C5rIANUbuYK+FuFL98650rihynUOEzRLxW+90bKZRWB6A1X1Tf82GxR1qAWLyfNPRvjqfip3Q5tdYlmAa9lA==", + "dependencies": { + "domelementtype": "^2.0.1" + }, + "engines": { + "node": ">= 4" + }, + "funding": { + "url": "https://github.com/fb55/domhandler?sponsor=1" + } + }, + "node_modules/web-resource-inliner/node_modules/htmlparser2": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-5.0.1.tgz", + "integrity": "sha512-vKZZra6CSe9qsJzh0BjBGXo8dvzNsq/oGvsjfRdOrrryfeD9UOBEEQdeoqCRmKZchF5h2zOBMQ6YuQ0uRUmdbQ==", + "dependencies": { + "domelementtype": "^2.0.1", + "domhandler": "^3.3.0", + "domutils": "^2.4.2", + "entities": "^2.0.0" + }, + "funding": { + "url": "https://github.com/fb55/htmlparser2?sponsor=1" + } + }, + "node_modules/webidl-conversions": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz", "integrity": "sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==" }, - "whatwg-url": { + "node_modules/whatwg-url": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz", "integrity": "sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==", - "requires": { + "dependencies": { "tr46": "~0.0.3", "webidl-conversions": "^3.0.0" } }, - "which-typed-array": { + "node_modules/which-typed-array": { "version": "1.1.13", "resolved": "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.13.tgz", "integrity": "sha512-P5Nra0qjSncduVPEAr7xhoF5guty49ArDTwzJ/yNuPIbZppyRxFQsRCWrocxIY+CnMVG+qfbU2FmDKyvSGClow==", - "requires": { + "dependencies": { "available-typed-arrays": "^1.0.5", "call-bind": "^1.0.4", "for-each": "^0.3.3", "gopd": "^1.0.1", "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "wicked-good-xpath": { + "node_modules/wicked-good-xpath": { "version": "1.3.0", "resolved": "https://registry.npmjs.org/wicked-good-xpath/-/wicked-good-xpath-1.3.0.tgz", "integrity": "sha512-Gd9+TUn5nXdwj/hFsPVx5cuHHiF5Bwuc30jZ4+ronF1qHK5O7HD0sgmXWSEgwKquT3ClLoKPVbO6qGwVwLzvAw==" }, - "wide-align": { + "node_modules/wide-align": { "version": "1.1.5", "resolved": "https://registry.npmjs.org/wide-align/-/wide-align-1.1.5.tgz", "integrity": "sha512-eDMORYaPNZ4sQIuuYPDHdQvf4gyCF9rEEV/yPxGfwPkRodwEgiMUUXTx/dex+Me0wxx53S+NgUHaP7y3MGlDmg==", - "requires": { + "dependencies": { "string-width": "^1.0.2 || 2 || 3 || 4" } }, - "wrappy": { + "node_modules/wrappy": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==" }, - "xml": { + "node_modules/xml": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/xml/-/xml-1.0.1.tgz", "integrity": "sha512-huCv9IH9Tcf95zuYCsQraZtWnJvBtLVE0QHMOs8bWyZAFZNDcYjsPq1nEx8jKA9y+Beo9v+7OBPRisQTjinQMw==" }, - "xml2js": { + "node_modules/xml2js": { "version": "0.5.0", "resolved": "https://registry.npmjs.org/xml2js/-/xml2js-0.5.0.tgz", "integrity": "sha512-drPFnkQJik/O+uPKpqSgr22mpuFHqKdbS835iAQrUC73L2F5WkboIRd63ai/2Yg6I1jzifPFKH2NTK+cfglkIA==", - "requires": { + "dependencies": { "sax": ">=0.6.0", "xmlbuilder": "~11.0.0" + }, + "engines": { + "node": ">=4.0.0" } }, - "xmlbuilder": { + "node_modules/xmlbuilder": { "version": "11.0.1", "resolved": "https://registry.npmjs.org/xmlbuilder/-/xmlbuilder-11.0.1.tgz", - "integrity": "sha512-fDlsI/kFEx7gLvbecc0/ohLG50fugQp8ryHzMTuW9vSa1GJ0XYWKnhsUx7oie3G98+r56aTQIUB4kht42R3JvA==" + "integrity": "sha512-fDlsI/kFEx7gLvbecc0/ohLG50fugQp8ryHzMTuW9vSa1GJ0XYWKnhsUx7oie3G98+r56aTQIUB4kht42R3JvA==", + "engines": { + "node": ">=4.0" + } }, - "xmlchars": { + "node_modules/xmlchars": { "version": "2.2.0", "resolved": "https://registry.npmjs.org/xmlchars/-/xmlchars-2.2.0.tgz", "integrity": "sha512-JZnDKK8B0RCDw84FNdDAIpZK+JuJw+s7Lz8nksI7SIuU3UXJJslUthsi+uWBUYOwPFwW7W7PRLRfUKpxjtjFCw==" }, - "xmldom-sre": { + "node_modules/xmldom-sre": { "version": "0.1.31", "resolved": "https://registry.npmjs.org/xmldom-sre/-/xmldom-sre-0.1.31.tgz", - "integrity": "sha512-f9s+fUkX04BxQf+7mMWAp5zk61pciie+fFLC9hX9UVvCeJQfNHRHXpeo5MPcR0EUf57PYLdt+ZO4f3Ipk2oZUw==" + "integrity": "sha512-f9s+fUkX04BxQf+7mMWAp5zk61pciie+fFLC9hX9UVvCeJQfNHRHXpeo5MPcR0EUf57PYLdt+ZO4f3Ipk2oZUw==", + "engines": { + "node": ">=0.1" + } }, - "yallist": { + "node_modules/yallist": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==" }, - "zip-stream": { + "node_modules/zip-stream": { "version": "4.1.1", "resolved": "https://registry.npmjs.org/zip-stream/-/zip-stream-4.1.1.tgz", "integrity": "sha512-9qv4rlDiopXg4E69k+vMHjNN63YFMe9sZMrdlvKnCjlCRWeCBswPPMPUfx+ipsAWq1LXHe70RcbaHdJJpS6hyQ==", - "requires": { + "dependencies": { "archiver-utils": "^3.0.4", "compress-commons": "^4.1.2", "readable-stream": "^3.6.0" }, + "engines": { + "node": ">= 10" + } + }, + "node_modules/zip-stream/node_modules/archiver-utils": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/archiver-utils/-/archiver-utils-3.0.4.tgz", + "integrity": "sha512-KVgf4XQVrTjhyWmx6cte4RxonPLR9onExufI1jhvw/MQ4BB6IsZD5gT8Lq+u/+pRkWna/6JoHpiQioaqFP5Rzw==", "dependencies": { - "archiver-utils": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/archiver-utils/-/archiver-utils-3.0.4.tgz", - "integrity": "sha512-KVgf4XQVrTjhyWmx6cte4RxonPLR9onExufI1jhvw/MQ4BB6IsZD5gT8Lq+u/+pRkWna/6JoHpiQioaqFP5Rzw==", - "requires": { - "glob": "^7.2.3", - "graceful-fs": "^4.2.0", - "lazystream": "^1.0.0", - "lodash.defaults": "^4.2.0", - "lodash.difference": "^4.5.0", - "lodash.flatten": "^4.4.0", - "lodash.isplainobject": "^4.0.6", - "lodash.union": "^4.6.0", - "normalize-path": "^3.0.0", - "readable-stream": "^3.6.0" - } - } + "glob": "^7.2.3", + "graceful-fs": "^4.2.0", + "lazystream": "^1.0.0", + "lodash.defaults": "^4.2.0", + "lodash.difference": "^4.5.0", + "lodash.flatten": "^4.4.0", + "lodash.isplainobject": "^4.0.6", + "lodash.union": "^4.6.0", + "normalize-path": "^3.0.0", + "readable-stream": "^3.6.0" + }, + "engines": { + "node": ">= 10" } } } diff --git a/package.json b/package.json index ea5d83fc1..28cf400a1 100644 --- a/package.json +++ b/package.json @@ -28,7 +28,7 @@ "ajv": "^6.12.6", "bcryptjs": "^2.4.3", "bson": "^4.5.2", - "dompurify": "^2.5.6", + "dompurify": "^3.2.4", "es6-promise": "^4.2.4", "escape-string-regexp": "^5.0.0", "fibers": "^5.0.3", From 148b81262d0d143460e881d645fefa6740aae40d Mon Sep 17 00:00:00 2001 From: Lauri Ojansivu Date: Fri, 21 Feb 2025 21:12:28 +0200 Subject: [PATCH 19/65] Updated requirements at docs. Thanks to mueller-ma ! Fixes #5692 --- docs/FAQ/Requirements.md | 9 +---- docs/Platforms/FOSS/Sandstorm/Sandstorm.md | 44 +++++++++++++++++++++- 2 files changed, 43 insertions(+), 10 deletions(-) diff --git a/docs/FAQ/Requirements.md b/docs/FAQ/Requirements.md index c060964e2..c929bff5e 100644 --- a/docs/FAQ/Requirements.md +++ b/docs/FAQ/Requirements.md @@ -1,8 +1 @@ -Wekan works on x64. There is not yet version for [Raspberry Pi](https://github.com/wekan/wekan/issues/1053). - -Wekan requires MongoDB 3.2.x . For other requirements and versions see [VirtualBox scripts](https://github.com/wekan/wekan-maintainer/tree/master/virtualbox) or [Dockerfile](https://github.com/wekan/wekan/blob/main/Dockerfile). - -Known bugs with other versions: -- Node 6.x: 100% CPU usage. -- MongoDB 3.4.x: Wekan crashes when uploading attachment. -- [Hardened kernel prevents creating new Wekan boards at Sandstorm](https://github.com/wekan/wekan/issues/1398) +WeKan Requiremens are at https://wekan.github.io/install/ \ No newline at end of file diff --git a/docs/Platforms/FOSS/Sandstorm/Sandstorm.md b/docs/Platforms/FOSS/Sandstorm/Sandstorm.md index f01edb0d3..16da6ef70 100644 --- a/docs/Platforms/FOSS/Sandstorm/Sandstorm.md +++ b/docs/Platforms/FOSS/Sandstorm/Sandstorm.md @@ -1,7 +1,12 @@ +- At some cases [Hardened kernel may prevent creating new Wekan boards at Sandstorm](https://github.com/wekan/wekan/issues/1398) + # Sandstorm at Debian and Ubuntu ### Sandstorm CloudFlare DNS settings +Sandstorm works when configured to full domain, with CloudFlare SSL/TLS, with Caddy. +Not subdomain, not sub-url, and not with Let's Encrypt that AFAIK does not support wildcard SSL/TLS. + Source: https://github.com/sandstorm-io/sandstorm/issues/3714#issuecomment-2366866243 For me, it works at CloudFlare DNS using TLS Strict checking and DNS setting clicking to orange cloud icon to make TLS proxy with Origin certificate, that is at /etc/caddy/certs/example.com.pem with above private key and below cert. @@ -13,17 +18,52 @@ DNS records: ``` Caddyfile, proxy to KVM VM that is running Debian and Sandstorm: ``` +# Full domain where Sandstorm login is. Not subdomain. Not sub-url. *.example.com example.com { tls { load /etc/caddy/certs alpn http/1.1 } + # If KVM VM, it's IP address: + #reverse_proxy 123.123.123.123:80 + # Localhost port 81, when not in KVM VM + reverse_proxy 127.0.0.1:81 +} - reverse_proxy 123.123.123.123:80 +blog.somecompany.com { + tls { + load /etc/caddy/certs + alpn http/1.1 + } + # Blog hosted at Sandstorm WordPress + reverse_proxy 127.0.0.1:81 +} + +othercompany.com { + tls { + load /etc/caddy/certs + alpn http/1.1 + } + # Website hosted at Sandstorm Hacker CMS + reverse_proxy 127.0.0.1:81 } ``` -At /opt/sandstorm/sandstorm.conf is domain, http port etc. +If having Sandstorm inside of KVM VM: https://github.com/wekan/wekan/blob/main/docs/Platforms/FOSS/Snap/Many-Snaps-on-LXC.md +At /opt/sandstorm/sandstorm.conf is domain where Sandstorm login is, http port etc. +``` +SERVER_USER=sandstorm +PORT=81 +MONGO_PORT=6081 +BIND_IP=127.0.0.1 +BASE_URL=https://example.com +WILDCARD_HOST=*.example.com +UPDATE_CHANNEL=dev +ALLOW_DEV_ACCOUNTS=false +SMTP_LISTEN_PORT=25 +#SANDCATS_BASE_DOMAIN=sandcats.io +#HTTPS_PORT=443 +``` Some related info at: https://github.com/wekan/wekan/wiki/Caddy-Webserver-Config From 120642f47de656d8f5b5abff278e4c5348ac3250 Mon Sep 17 00:00:00 2001 From: Lauri Ojansivu Date: Fri, 21 Feb 2025 21:22:14 +0200 Subject: [PATCH 20/65] Updated ChangeLog. --- CHANGELOG.md | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index f07aa198b..03d0900be 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -15,6 +15,27 @@ Fixing other platforms In Progress. [How to upgrade WeKan](https://github.com/wekan/wekan/issues/4585) +# Upcoming WeKan ® release + +This release adds the following new features: + +- [Add possibility to use a token in place of ipaddress to access metrics route](https://github.com/wekan/wekan/pull/5682). + Thanks to salleman33. + +and adds the following updates: + +- [Updated dependencies](https://github.com/wekan/wekan/pull/5691). + Thanks to dependabot. +- [Updated requirements at docs](https://github.com/wekan/wekan/commit/148b81262d0d143460e881d645fefa6740aae40d). + Thanks to mueller-ma. + +and fixes the following bugs: + +- [Added missing ) character](https://github.com/wekan/wekan/commit/563a508e269be87eb713e2888409525e1ba82001). + Thanks to xet7. + +Thanks to above GitHub users for their contributions and translators for their translations. + # v7.81 2025-02-07 WeKan ® release This release adds the following new features: From 666ee8403388f7d5e1a30cf0e53bc46a70bf1c40 Mon Sep 17 00:00:00 2001 From: Lauri Ojansivu Date: Sun, 23 Feb 2025 15:55:20 +0200 Subject: [PATCH 21/65] Updated dependencies. Thanks to developes of dependencies " --- package-lock.json | 4342 +++++++++++++++++---------------------------- package.json | 2 +- 2 files changed, 1620 insertions(+), 2724 deletions(-) diff --git a/package-lock.json b/package-lock.json index 4450b2d64..0cd3d5754 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,72 +1,22 @@ { "name": "wekan", "version": "v7.81.0", - "lockfileVersion": 3, + "lockfileVersion": 1, "requires": true, - "packages": { - "": { - "version": "v7.81.0", - "license": "MIT", - "dependencies": { - "@babel/runtime": "^7.25.0", - "@mapbox/node-pre-gyp": "^1.0.10", - "@rwap/jquery-ui-touch-punch": "^1.0.11", - "@wekanteam/dragscroll": "https://github.com/wekan/dragscroll.git", - "@wekanteam/exceljs": "https://github.com/wekan/exceljs.git", - "@wekanteam/html-to-markdown": "^1.0.2", - "@wekanteam/meteor-globals": "^1.1.4", - "@wekanteam/meteor-reactive-cache": "^1.0.6", - "ajv": "^6.12.6", - "bcryptjs": "^2.4.3", - "bson": "^4.5.2", - "dompurify": "^3.2.4", - "es6-promise": "^4.2.4", - "escape-string-regexp": "^5.0.0", - "fibers": "^5.0.3", - "file-type": "^16.5.4", - "filesize": "^8.0.7", - "i18next": "^21.6.16", - "i18next-sprintf-postprocessor": "^0.2.2", - "jquery": "^3.7.1", - "jquery-ui": "^1.13.3", - "jszip": "^3.7.1", - "ldapjs": "^2.3.3", - "markdown-it": "^12.3.2", - "markdown-it-emoji": "^2.0.0", - "markdown-it-mathjax3": "^4.3.2", - "meteor-accounts-t9n": "^2.6.0", - "meteor-node-stubs": "^1.2.12", - "minio": "^7.1.3", - "moment": "^2.29.4", - "os": "^0.1.2", - "papaparse": "^5.3.1", - "pretty-ms": "^7.0.1", - "qs": "^6.13.0", - "simpl-schema": "^3.4.6", - "source-map-support": "^0.5.20", - "uuid": "^8.3.2" - }, - "devDependencies": { - "flatted": "^3.3.1", - "sinon": "^13.0.2" - } - }, - "node_modules/@babel/runtime": { + "dependencies": { + "@babel/runtime": { "version": "7.25.0", "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.25.0.tgz", "integrity": "sha512-7dRy4DwXwtzBrPbZflqxnvfxLF8kdZXPkhymtDeFoFqE6ldzjQFgYTtYIFARcLEYDrqfBfYcZt1WqFxRoyC9Rw==", - "dependencies": { + "requires": { "regenerator-runtime": "^0.14.0" - }, - "engines": { - "node": ">=6.9.0" } }, - "node_modules/@fast-csv/format": { + "@fast-csv/format": { "version": "4.3.5", "resolved": "https://registry.npmjs.org/@fast-csv/format/-/format-4.3.5.tgz", "integrity": "sha512-8iRn6QF3I8Ak78lNAa+Gdl5MJJBM5vRHivFtMRUWINdevNo00K7OXxS2PshawLKTejVwieIlPmK5YlLu6w4u8A==", - "dependencies": { + "requires": { "@types/node": "^14.0.1", "lodash.escaperegexp": "^4.1.2", "lodash.isboolean": "^3.0.3", @@ -75,11 +25,11 @@ "lodash.isnil": "^4.0.0" } }, - "node_modules/@fast-csv/parse": { + "@fast-csv/parse": { "version": "4.3.6", "resolved": "https://registry.npmjs.org/@fast-csv/parse/-/parse-4.3.6.tgz", "integrity": "sha512-uRsLYksqpbDmWaSmzvJcuApSEe38+6NQZBUsuAyMZKqHxH0g1wcJgsKUvN3WC8tewaqFjBMMGrkHmC+T7k8LvA==", - "dependencies": { + "requires": { "@types/node": "^14.0.1", "lodash.escaperegexp": "^4.1.2", "lodash.groupby": "^4.6.0", @@ -89,11 +39,11 @@ "lodash.uniq": "^4.5.0" } }, - "node_modules/@mapbox/node-pre-gyp": { + "@mapbox/node-pre-gyp": { "version": "1.0.11", "resolved": "https://registry.npmjs.org/@mapbox/node-pre-gyp/-/node-pre-gyp-1.0.11.tgz", "integrity": "sha512-Yhlar6v9WQgUp/He7BdgzOz8lqMQ8sU+jkCq7Wx8Myc5YFJLbEe7lgui/V7G1qB1DJykHSGwreceSaD60Y0PUQ==", - "dependencies": { + "requires": { "detect-libc": "^2.0.0", "https-proxy-agent": "^5.0.0", "make-dir": "^3.1.0", @@ -103,85 +53,69 @@ "rimraf": "^3.0.2", "semver": "^7.3.5", "tar": "^6.1.11" - }, - "bin": { - "node-pre-gyp": "bin/node-pre-gyp" } }, - "node_modules/@rwap/jquery-ui-touch-punch": { + "@rwap/jquery-ui-touch-punch": { "version": "1.0.11", "resolved": "https://registry.npmjs.org/@rwap/jquery-ui-touch-punch/-/jquery-ui-touch-punch-1.0.11.tgz", "integrity": "sha512-GFRfHxnl9uH4v4F7E+rtXYbcsDYSas5fqfmKWVy/dfs+BDfLUqClIOL5MZlroDFoL3T9bCbsFMFXULHSL34ZdA==", - "dependencies": { + "requires": { "jquery-ui": ">=1.8" } }, - "node_modules/@sinonjs/commons": { + "@sinonjs/commons": { "version": "1.8.6", "resolved": "https://registry.npmjs.org/@sinonjs/commons/-/commons-1.8.6.tgz", "integrity": "sha512-Ky+XkAkqPZSm3NLBeUng77EBQl3cmeJhITaGHdYH8kjVB+aun3S4XBRti2zt17mtt0mIUDiNxYeoJm6drVvBJQ==", "dev": true, - "dependencies": { + "requires": { "type-detect": "4.0.8" } }, - "node_modules/@sinonjs/fake-timers": { + "@sinonjs/fake-timers": { "version": "9.1.2", "resolved": "https://registry.npmjs.org/@sinonjs/fake-timers/-/fake-timers-9.1.2.tgz", "integrity": "sha512-BPS4ynJW/o92PUR4wgriz2Ud5gpST5vz6GQfMixEDK0Z8ZCUv2M7SkBLykH56T++Xs+8ln9zTGbOvNGIe02/jw==", "dev": true, - "dependencies": { + "requires": { "@sinonjs/commons": "^1.7.0" } }, - "node_modules/@sinonjs/samsam": { + "@sinonjs/samsam": { "version": "6.1.3", "resolved": "https://registry.npmjs.org/@sinonjs/samsam/-/samsam-6.1.3.tgz", "integrity": "sha512-nhOb2dWPeb1sd3IQXL/dVPnKHDOAFfvichtBf4xV00/rU1QbPCQqKMbvIheIjqwVjh7qIgf2AHTHi391yMOMpQ==", "dev": true, - "dependencies": { + "requires": { "@sinonjs/commons": "^1.6.0", "lodash.get": "^4.4.2", "type-detect": "^4.0.8" } }, - "node_modules/@sinonjs/text-encoding": { + "@sinonjs/text-encoding": { "version": "0.7.2", "resolved": "https://registry.npmjs.org/@sinonjs/text-encoding/-/text-encoding-0.7.2.tgz", "integrity": "sha512-sXXKG+uL9IrKqViTtao2Ws6dy0znu9sOaP1di/jKGW1M6VssO8vlpXCQcpZ+jisQ1tTFAC5Jo/EOzFbggBagFQ==", "dev": true }, - "node_modules/@tokenizer/token": { + "@tokenizer/token": { "version": "0.3.0", "resolved": "https://registry.npmjs.org/@tokenizer/token/-/token-0.3.0.tgz", "integrity": "sha512-OvjF+z51L3ov0OyAU0duzsYuvO01PH7x4t6DJx+guahgTnBHkhJdG7soQeTSFLWN3efnHyibZ4Z8l2EuWwJN3A==" }, - "node_modules/@types/node": { + "@types/node": { "version": "14.18.63", "resolved": "https://registry.npmjs.org/@types/node/-/node-14.18.63.tgz", "integrity": "sha512-fAtCfv4jJg+ExtXhvCkCqUKZ+4ok/JQk01qDKhL5BDDoS3AxKXhV5/MAVUZyQnSEd2GT92fkgZl0pz0Q0AzcIQ==" }, - "node_modules/@types/trusted-types": { - "version": "2.0.7", - "resolved": "https://registry.npmjs.org/@types/trusted-types/-/trusted-types-2.0.7.tgz", - "integrity": "sha512-ScaPdn1dQczgbl0QFTeTOmVHFULt394XJgOQNoyVhZ6r2vLnMLJfBPd53SB52T/3G36VI1/g2MZaX0cwDuXsfw==", - "license": "MIT", - "optional": true + "@wekanteam/dragscroll": { + "version": "git+https://github.com/wekan/dragscroll.git#6ea215c8cdbde9362ecba8ffb72ce9f9fde842d2", + "from": "git+https://github.com/wekan/dragscroll.git" }, - "node_modules/@wekanteam/dragscroll": { - "version": "0.0.8", - "resolved": "git+ssh://git@github.com/wekan/dragscroll.git#6ea215c8cdbde9362ecba8ffb72ce9f9fde842d2", - "integrity": "sha512-fpxmJ0A++PiEEUBi6uqnNChKCRwRaQqOMcwnF4W9EtGzCczd8S7iRjCoLtQWAxpWF3n6Ag4IIqifgUYkBVNBYA==", - "engines": { - "node": "*" - } - }, - "node_modules/@wekanteam/exceljs": { - "version": "4.5.0", - "resolved": "git+ssh://git@github.com/wekan/exceljs.git#e0229907e7a81bc3fe6daf4e42b1fdfbecdcb7cb", - "integrity": "sha512-OpbewmMvAU8582TO0wK0nQ/YmkmgeVKOdknnNM9aKr7pKK54pvSRMyC0qydRSVNFsby5BAKfmveABDjuktqkQg==", - "license": "MIT", - "dependencies": { + "@wekanteam/exceljs": { + "version": "git+https://github.com/wekan/exceljs.git#e0229907e7a81bc3fe6daf4e42b1fdfbecdcb7cb", + "from": "git+https://github.com/wekan/exceljs.git", + "requires": { "archiver": "^5.0.0", "dayjs": "^1.8.34", "fast-csv": "^4.3.1", @@ -191,100 +125,84 @@ "tmp": "^0.2.0", "unzipper": "^0.10.11", "uuid": "^8.3.0" - }, - "engines": { - "node": ">=8.3.0" } }, - "node_modules/@wekanteam/html-to-markdown": { + "@wekanteam/html-to-markdown": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/@wekanteam/html-to-markdown/-/html-to-markdown-1.0.2.tgz", "integrity": "sha512-PxeGIu/HMjmL84N2Dj5qp4lFlBP4jV/y6WU/JhDiFPx6gfGEWXgDcc9sShTPNvECtToGAA0SCD6T/k50CMHi8Q==" }, - "node_modules/@wekanteam/meteor-globals": { + "@wekanteam/meteor-globals": { "version": "1.1.4", "resolved": "https://registry.npmjs.org/@wekanteam/meteor-globals/-/meteor-globals-1.1.4.tgz", "integrity": "sha512-zaq+/F+5/aI46JXXcp3LhcYrM+ZQ0aH99BKuFyP0Ie1ACnYPqHqhUwCwScGiauxmMc9abHduC6DJTbxnJGc2QQ==", - "dependencies": { + "requires": { "semver": "^7.5.4" } }, - "node_modules/@wekanteam/meteor-reactive-cache": { + "@wekanteam/meteor-reactive-cache": { "version": "1.0.6", "resolved": "https://registry.npmjs.org/@wekanteam/meteor-reactive-cache/-/meteor-reactive-cache-1.0.6.tgz", "integrity": "sha512-xewS5N2ON5oN1+HWaAZhnSF7oNR/yfcXfSunVxjrCSExu3OzD1JMGK5FTxGYYzN3ShJgWGLSmjw7zL6+gvQxgg==", - "dependencies": { + "requires": { "@wekanteam/meteor-globals": "^1.1.4" } }, - "node_modules/@zxing/text-encoding": { + "@zxing/text-encoding": { "version": "0.9.0", "resolved": "https://registry.npmjs.org/@zxing/text-encoding/-/text-encoding-0.9.0.tgz", "integrity": "sha512-U/4aVJ2mxI0aDNI8Uq0wEhMgY+u4CNtEb0om3+y3+niDAsoTCOB33UF0sxpzqzdqXLqmvc+vZyAt4O8pPdfkwA==", "optional": true }, - "node_modules/abbrev": { + "abbrev": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.1.1.tgz", "integrity": "sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==" }, - "node_modules/abstract-logging": { + "abstract-logging": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/abstract-logging/-/abstract-logging-2.0.1.tgz", "integrity": "sha512-2BjRTZxTPvheOvGbBslFSYOUkr+SjPtOnrLP33f+VIWLzezQpZcqVg7ja3L4dBXmzzgwT+a029jRx5PCi3JuiA==" }, - "node_modules/agent-base": { + "agent-base": { "version": "6.0.2", "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-6.0.2.tgz", "integrity": "sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==", - "dependencies": { + "requires": { "debug": "4" - }, - "engines": { - "node": ">= 6.0.0" } }, - "node_modules/ajv": { + "ajv": { "version": "6.12.6", "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", - "dependencies": { + "requires": { "fast-deep-equal": "^3.1.1", "fast-json-stable-stringify": "^2.0.0", "json-schema-traverse": "^0.4.1", "uri-js": "^4.2.2" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/epoberezkin" } }, - "node_modules/ansi-colors": { + "ansi-colors": { "version": "4.1.3", "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-4.1.3.tgz", - "integrity": "sha512-/6w/C21Pm1A7aZitlI5Ni/2J6FFQN8i1Cvz3kHABAAbw93v/NlvKdVOqz7CCWz/3iv/JplRSEEZ83XION15ovw==", - "engines": { - "node": ">=6" - } + "integrity": "sha512-/6w/C21Pm1A7aZitlI5Ni/2J6FFQN8i1Cvz3kHABAAbw93v/NlvKdVOqz7CCWz/3iv/JplRSEEZ83XION15ovw==" }, - "node_modules/ansi-regex": { + "ansi-regex": { "version": "5.0.1", "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", - "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", - "engines": { - "node": ">=8" - } + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==" }, - "node_modules/aproba": { + "aproba": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/aproba/-/aproba-2.0.0.tgz", "integrity": "sha512-lYe4Gx7QT+MKGbDsA+Z+he/Wtef0BiwDOlK/XkBrdfsh9J/jPPXbX0tE9x9cl27Tmu5gg3QUbUrQYa/y+KOHPQ==" }, - "node_modules/archiver": { + "archiver": { "version": "5.3.2", "resolved": "https://registry.npmjs.org/archiver/-/archiver-5.3.2.tgz", "integrity": "sha512-+25nxyyznAXF7Nef3y0EbBeqmGZgeN/BxHX29Rs39djAfaFalmQ89SE6CWyDCHzGL0yt/ycBtNOmGTW0FyGWNw==", - "dependencies": { + "requires": { "archiver-utils": "^2.1.0", "async": "^3.2.4", "buffer-crc32": "^0.2.1", @@ -292,16 +210,13 @@ "readdir-glob": "^1.1.2", "tar-stream": "^2.2.0", "zip-stream": "^4.1.0" - }, - "engines": { - "node": ">= 10" } }, - "node_modules/archiver-utils": { + "archiver-utils": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/archiver-utils/-/archiver-utils-2.1.0.tgz", "integrity": "sha512-bEL/yUb/fNNiNTuUz979Z0Yg5L+LzLxGJz8x79lYmR54fmTIb6ob/hNQgkQnIUDWIFjZVQwl9Xs356I6BAMHfw==", - "dependencies": { + "requires": { "glob": "^7.1.4", "graceful-fs": "^4.2.0", "lazystream": "^1.0.0", @@ -313,281 +228,212 @@ "normalize-path": "^3.0.0", "readable-stream": "^2.0.0" }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/archiver-utils/node_modules/readable-stream": { - "version": "2.3.8", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz", - "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", "dependencies": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.3", - "isarray": "~1.0.0", - "process-nextick-args": "~2.0.0", - "safe-buffer": "~5.1.1", - "string_decoder": "~1.1.1", - "util-deprecate": "~1.0.1" + "readable-stream": { + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz", + "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", + "requires": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + }, + "safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" + }, + "string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "requires": { + "safe-buffer": "~5.1.0" + } + } } }, - "node_modules/archiver-utils/node_modules/safe-buffer": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" - }, - "node_modules/archiver-utils/node_modules/string_decoder": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", - "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", - "dependencies": { - "safe-buffer": "~5.1.0" - } - }, - "node_modules/are-we-there-yet": { + "are-we-there-yet": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-2.0.0.tgz", "integrity": "sha512-Ci/qENmwHnsYo9xKIcUJN5LeDKdJ6R1Z1j9V/J5wyq8nh/mYPEpIKJbBZXtZjG04HiK7zV/p6Vs9952MrMeUIw==", - "deprecated": "This package is no longer supported.", - "dependencies": { + "requires": { "delegates": "^1.0.0", "readable-stream": "^3.6.0" - }, - "engines": { - "node": ">=10" } }, - "node_modules/argparse": { + "argparse": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==" }, - "node_modules/asn1": { + "asn1": { "version": "0.2.6", "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.6.tgz", "integrity": "sha512-ix/FxPn0MDjeyJ7i/yoHGFt/EX6LyNbxSEhPPXODPL+KB0VPk86UYfL0lMdy+KCnv+fmvIzySwaK5COwqVbWTQ==", - "dependencies": { + "requires": { "safer-buffer": "~2.1.0" } }, - "node_modules/assert-plus": { + "assert-plus": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", - "integrity": "sha512-NfJ4UzBCcQGLDlQq7nHxH+tv3kyZ0hHQqF5BO6J7tNJeP5do1llPr8dZ8zHonfhAu0PHAdMkSo+8o0wxg9lZWw==", - "engines": { - "node": ">=0.8" - } + "integrity": "sha512-NfJ4UzBCcQGLDlQq7nHxH+tv3kyZ0hHQqF5BO6J7tNJeP5do1llPr8dZ8zHonfhAu0PHAdMkSo+8o0wxg9lZWw==" }, - "node_modules/async": { + "async": { "version": "3.2.5", "resolved": "https://registry.npmjs.org/async/-/async-3.2.5.tgz", "integrity": "sha512-baNZyqaaLhyLVKm/DlvdW051MSgO6b8eVfIezl9E5PqWxFgzLm/wQntEW4zOytVburDEr0JlALEpdOFwvErLsg==" }, - "node_modules/available-typed-arrays": { + "available-typed-arrays": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/available-typed-arrays/-/available-typed-arrays-1.0.5.tgz", - "integrity": "sha512-DMD0KiN46eipeziST1LPP/STfDU0sufISXmjSgvVsoU2tqxctQeASejWcfNtxYKqETM1UxQ8sp2OrSBWpHY6sw==", - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } + "integrity": "sha512-DMD0KiN46eipeziST1LPP/STfDU0sufISXmjSgvVsoU2tqxctQeASejWcfNtxYKqETM1UxQ8sp2OrSBWpHY6sw==" }, - "node_modules/backoff": { + "backoff": { "version": "2.5.0", "resolved": "https://registry.npmjs.org/backoff/-/backoff-2.5.0.tgz", "integrity": "sha512-wC5ihrnUXmR2douXmXLCe5O3zg3GKIyvRi/hi58a/XyRxVI+3/yM0PYueQOZXPXQ9pxBislYkw+sF9b7C/RuMA==", - "dependencies": { + "requires": { "precond": "0.2" - }, - "engines": { - "node": ">= 0.6" } }, - "node_modules/balanced-match": { + "balanced-match": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==" }, - "node_modules/base64-js": { + "base64-js": { "version": "1.5.1", "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz", - "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ] + "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==" }, - "node_modules/bcryptjs": { + "bcryptjs": { "version": "2.4.3", "resolved": "https://registry.npmjs.org/bcryptjs/-/bcryptjs-2.4.3.tgz", "integrity": "sha512-V/Hy/X9Vt7f3BbPJEi8BdVFMByHi+jNXrYkW3huaybV/kQ0KJg0Y6PkEMbn+zeT+i+SiKZ/HMqJGIIt4LZDqNQ==" }, - "node_modules/big-integer": { + "big-integer": { "version": "1.6.52", "resolved": "https://registry.npmjs.org/big-integer/-/big-integer-1.6.52.tgz", - "integrity": "sha512-QxD8cf2eVqJOOz63z6JIN9BzvVs/dlySa5HGSBH5xtR8dPteIRQnBxxKqkNTiT6jbDTF6jAfrd4oMcND9RGbQg==", - "engines": { - "node": ">=0.6" - } + "integrity": "sha512-QxD8cf2eVqJOOz63z6JIN9BzvVs/dlySa5HGSBH5xtR8dPteIRQnBxxKqkNTiT6jbDTF6jAfrd4oMcND9RGbQg==" }, - "node_modules/binary": { + "binary": { "version": "0.3.0", "resolved": "https://registry.npmjs.org/binary/-/binary-0.3.0.tgz", "integrity": "sha512-D4H1y5KYwpJgK8wk1Cue5LLPgmwHKYSChkbspQg5JtVuR5ulGckxfR62H3AE9UDkdMC8yyXlqYihuz3Aqg2XZg==", - "dependencies": { + "requires": { "buffers": "~0.1.1", "chainsaw": "~0.1.0" - }, - "engines": { - "node": "*" } }, - "node_modules/bl": { + "bl": { "version": "4.1.0", "resolved": "https://registry.npmjs.org/bl/-/bl-4.1.0.tgz", "integrity": "sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w==", - "dependencies": { + "requires": { "buffer": "^5.5.0", "inherits": "^2.0.4", "readable-stream": "^3.4.0" } }, - "node_modules/block-stream2": { + "block-stream2": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/block-stream2/-/block-stream2-2.1.0.tgz", "integrity": "sha512-suhjmLI57Ewpmq00qaygS8UgEq2ly2PCItenIyhMqVjo4t4pGzqMvfgJuX8iWTeSDdfSSqS6j38fL4ToNL7Pfg==", - "dependencies": { + "requires": { "readable-stream": "^3.4.0" } }, - "node_modules/bluebird": { + "bluebird": { "version": "3.4.7", "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.4.7.tgz", "integrity": "sha512-iD3898SR7sWVRHbiQv+sHUtHnMvC1o3nW5rAcqnq3uOn07DSAppZYUkIGslDz6gXC7HfunPe7YVBgoEJASPcHA==" }, - "node_modules/boolbase": { + "boolbase": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/boolbase/-/boolbase-1.0.0.tgz", "integrity": "sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww==" }, - "node_modules/brace-expansion": { + "brace-expansion": { "version": "1.1.11", "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", - "dependencies": { + "requires": { "balanced-match": "^1.0.0", "concat-map": "0.0.1" } }, - "node_modules/browser-or-node": { + "browser-or-node": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/browser-or-node/-/browser-or-node-2.1.1.tgz", "integrity": "sha512-8CVjaLJGuSKMVTxJ2DpBl5XnlNDiT4cQFeuCJJrvJmts9YrTZDizTX7PjC2s6W4x+MBGZeEY6dGMrF04/6Hgqg==" }, - "node_modules/bson": { + "bson": { "version": "4.7.2", "resolved": "https://registry.npmjs.org/bson/-/bson-4.7.2.tgz", "integrity": "sha512-Ry9wCtIZ5kGqkJoi6aD8KjxFZEx78guTQDnpXWiNthsxzrxAK/i8E6pCHAIZTbaEFWcOCvbecMukfK7XUvyLpQ==", - "dependencies": { + "requires": { "buffer": "^5.6.0" - }, - "engines": { - "node": ">=6.9.0" } }, - "node_modules/buffer": { + "buffer": { "version": "5.7.1", "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz", "integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], - "dependencies": { + "requires": { "base64-js": "^1.3.1", "ieee754": "^1.1.13" } }, - "node_modules/buffer-crc32": { + "buffer-crc32": { "version": "0.2.13", "resolved": "https://registry.npmjs.org/buffer-crc32/-/buffer-crc32-0.2.13.tgz", - "integrity": "sha512-VO9Ht/+p3SN7SKWqcrgEzjGbRSJYTx+Q1pTQC0wrWqHx0vpJraQ6GtHx8tvcg1rlK1byhU5gccxgOgj7B0TDkQ==", - "engines": { - "node": "*" - } + "integrity": "sha512-VO9Ht/+p3SN7SKWqcrgEzjGbRSJYTx+Q1pTQC0wrWqHx0vpJraQ6GtHx8tvcg1rlK1byhU5gccxgOgj7B0TDkQ==" }, - "node_modules/buffer-from": { + "buffer-from": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz", "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==" }, - "node_modules/buffer-indexof-polyfill": { + "buffer-indexof-polyfill": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/buffer-indexof-polyfill/-/buffer-indexof-polyfill-1.0.2.tgz", - "integrity": "sha512-I7wzHwA3t1/lwXQh+A5PbNvJxgfo5r3xulgpYDB5zckTu/Z9oUK9biouBKQUjEqzaz3HnAT6TYoovmE+GqSf7A==", - "engines": { - "node": ">=0.10" - } + "integrity": "sha512-I7wzHwA3t1/lwXQh+A5PbNvJxgfo5r3xulgpYDB5zckTu/Z9oUK9biouBKQUjEqzaz3HnAT6TYoovmE+GqSf7A==" }, - "node_modules/buffers": { + "buffers": { "version": "0.1.1", "resolved": "https://registry.npmjs.org/buffers/-/buffers-0.1.1.tgz", - "integrity": "sha512-9q/rDEGSb/Qsvv2qvzIzdluL5k7AaJOTrw23z9reQthrbF7is4CtlT0DXyO1oei2DCp4uojjzQ7igaSHp1kAEQ==", - "engines": { - "node": ">=0.2.0" - } + "integrity": "sha512-9q/rDEGSb/Qsvv2qvzIzdluL5k7AaJOTrw23z9reQthrbF7is4CtlT0DXyO1oei2DCp4uojjzQ7igaSHp1kAEQ==" }, - "node_modules/call-bind": { + "call-bind": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.5.tgz", "integrity": "sha512-C3nQxfFZxFRVoJoGKKI8y3MOEo129NQ+FgQ08iye+Mk4zNZZGdjfs06bVTr+DBSlA66Q2VEcMki/cUCP4SercQ==", - "dependencies": { + "requires": { "function-bind": "^1.1.2", "get-intrinsic": "^1.2.1", "set-function-length": "^1.1.1" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/chainsaw": { + "chainsaw": { "version": "0.1.0", "resolved": "https://registry.npmjs.org/chainsaw/-/chainsaw-0.1.0.tgz", "integrity": "sha512-75kWfWt6MEKNC8xYXIdRpDehRYY/tNSgwKaJq+dbbDcxORuVrrQ+SEHoWsniVn9XPYfP4gmdWIeDk/4YNp1rNQ==", - "dependencies": { + "requires": { "traverse": ">=0.3.0 <0.4" - }, - "engines": { - "node": "*" } }, - "node_modules/cheerio": { + "cheerio": { "version": "1.0.0-rc.10", "resolved": "https://registry.npmjs.org/cheerio/-/cheerio-1.0.0-rc.10.tgz", "integrity": "sha512-g0J0q/O6mW8z5zxQ3A8E8J1hUgp4SMOvEoW/x84OwyHKe/Zccz83PVT4y5Crcr530FV6NgmKI1qvGTKVl9XXVw==", - "dependencies": { + "requires": { "cheerio-select": "^1.5.0", "dom-serializer": "^1.3.2", "domhandler": "^4.2.0", @@ -595,595 +441,429 @@ "parse5": "^6.0.1", "parse5-htmlparser2-tree-adapter": "^6.0.1", "tslib": "^2.2.0" - }, - "engines": { - "node": ">= 6" - }, - "funding": { - "url": "https://github.com/cheeriojs/cheerio?sponsor=1" } }, - "node_modules/cheerio-select": { + "cheerio-select": { "version": "1.6.0", "resolved": "https://registry.npmjs.org/cheerio-select/-/cheerio-select-1.6.0.tgz", "integrity": "sha512-eq0GdBvxVFbqWgmCm7M3XGs1I8oLy/nExUnh6oLqmBditPO9AqQJrkslDpMun/hZ0yyTs8L0m85OHp4ho6Qm9g==", - "dependencies": { + "requires": { "css-select": "^4.3.0", "css-what": "^6.0.1", "domelementtype": "^2.2.0", "domhandler": "^4.3.1", "domutils": "^2.8.0" - }, - "funding": { - "url": "https://github.com/sponsors/fb55" } }, - "node_modules/chownr": { + "chownr": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/chownr/-/chownr-2.0.0.tgz", - "integrity": "sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ==", - "engines": { - "node": ">=10" - } + "integrity": "sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ==" }, - "node_modules/clone": { + "clone": { "version": "2.1.2", "resolved": "https://registry.npmjs.org/clone/-/clone-2.1.2.tgz", - "integrity": "sha512-3Pe/CF1Nn94hyhIYpjtiLhdCoEoz0DqQ+988E9gmeEdQZlojxnOb74wctFyuwWQHzqyf9X7C7MG8juUpqBJT8w==", - "engines": { - "node": ">=0.8" - } + "integrity": "sha512-3Pe/CF1Nn94hyhIYpjtiLhdCoEoz0DqQ+988E9gmeEdQZlojxnOb74wctFyuwWQHzqyf9X7C7MG8juUpqBJT8w==" }, - "node_modules/color-support": { + "color-support": { "version": "1.1.3", "resolved": "https://registry.npmjs.org/color-support/-/color-support-1.1.3.tgz", - "integrity": "sha512-qiBjkpbMLO/HL68y+lh4q0/O1MZFj2RX6X/KmMa3+gJD3z+WwI1ZzDHysvqHGS3mP6mznPckpXmw1nI9cJjyRg==", - "bin": { - "color-support": "bin.js" - } + "integrity": "sha512-qiBjkpbMLO/HL68y+lh4q0/O1MZFj2RX6X/KmMa3+gJD3z+WwI1ZzDHysvqHGS3mP6mznPckpXmw1nI9cJjyRg==" }, - "node_modules/commander": { + "commander": { "version": "6.2.1", "resolved": "https://registry.npmjs.org/commander/-/commander-6.2.1.tgz", - "integrity": "sha512-U7VdrJFnJgo4xjrHpTzu0yrHPGImdsmD95ZlgYSEajAn2JKzDhDTPG9kBTefmObL2w/ngeZnilk+OV9CG3d7UA==", - "engines": { - "node": ">= 6" - } + "integrity": "sha512-U7VdrJFnJgo4xjrHpTzu0yrHPGImdsmD95ZlgYSEajAn2JKzDhDTPG9kBTefmObL2w/ngeZnilk+OV9CG3d7UA==" }, - "node_modules/compress-commons": { + "compress-commons": { "version": "4.1.2", "resolved": "https://registry.npmjs.org/compress-commons/-/compress-commons-4.1.2.tgz", "integrity": "sha512-D3uMHtGc/fcO1Gt1/L7i1e33VOvD4A9hfQLP+6ewd+BvG/gQ84Yh4oftEhAdjSMgBgwGL+jsppT7JYNpo6MHHg==", - "dependencies": { + "requires": { "buffer-crc32": "^0.2.13", "crc32-stream": "^4.0.2", "normalize-path": "^3.0.0", "readable-stream": "^3.6.0" - }, - "engines": { - "node": ">= 10" } }, - "node_modules/concat-map": { + "concat-map": { "version": "0.0.1", "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==" }, - "node_modules/console-control-strings": { + "console-control-strings": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/console-control-strings/-/console-control-strings-1.1.0.tgz", "integrity": "sha512-ty/fTekppD2fIwRvnZAVdeOiGd1c7YXEixbgJTNzqcxJWKQnjJ/V1bNEEE6hygpM3WjwHFUVK6HTjWSzV4a8sQ==" }, - "node_modules/core-util-is": { + "core-util-is": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.3.tgz", "integrity": "sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==" }, - "node_modules/crc-32": { + "crc-32": { "version": "1.2.2", "resolved": "https://registry.npmjs.org/crc-32/-/crc-32-1.2.2.tgz", - "integrity": "sha512-ROmzCKrTnOwybPcJApAA6WBWij23HVfGVNKqqrZpuyZOHqK2CwHSvpGuyt/UNNvaIjEd8X5IFGp4Mh+Ie1IHJQ==", - "bin": { - "crc32": "bin/crc32.njs" - }, - "engines": { - "node": ">=0.8" - } + "integrity": "sha512-ROmzCKrTnOwybPcJApAA6WBWij23HVfGVNKqqrZpuyZOHqK2CwHSvpGuyt/UNNvaIjEd8X5IFGp4Mh+Ie1IHJQ==" }, - "node_modules/crc32-stream": { + "crc32-stream": { "version": "4.0.3", "resolved": "https://registry.npmjs.org/crc32-stream/-/crc32-stream-4.0.3.tgz", "integrity": "sha512-NT7w2JVU7DFroFdYkeq8cywxrgjPHWkdX1wjpRQXPX5Asews3tA+Ght6lddQO5Mkumffp3X7GEqku3epj2toIw==", - "dependencies": { + "requires": { "crc-32": "^1.2.0", "readable-stream": "^3.4.0" - }, - "engines": { - "node": ">= 10" } }, - "node_modules/css-select": { + "css-select": { "version": "4.3.0", "resolved": "https://registry.npmjs.org/css-select/-/css-select-4.3.0.tgz", "integrity": "sha512-wPpOYtnsVontu2mODhA19JrqWxNsfdatRKd64kmpRbQgh1KtItko5sTnEpPdpSaJszTOhEMlF/RPz28qj4HqhQ==", - "dependencies": { + "requires": { "boolbase": "^1.0.0", "css-what": "^6.0.1", "domhandler": "^4.3.1", "domutils": "^2.8.0", "nth-check": "^2.0.1" - }, - "funding": { - "url": "https://github.com/sponsors/fb55" } }, - "node_modules/css-what": { + "css-what": { "version": "6.1.0", "resolved": "https://registry.npmjs.org/css-what/-/css-what-6.1.0.tgz", - "integrity": "sha512-HTUrgRJ7r4dsZKU6GjmpfRK1O76h97Z8MfS1G0FozR+oF2kG6Vfe8JE6zwrkbxigziPHinCJ+gCPjA9EaBDtRw==", - "engines": { - "node": ">= 6" - }, - "funding": { - "url": "https://github.com/sponsors/fb55" - } + "integrity": "sha512-HTUrgRJ7r4dsZKU6GjmpfRK1O76h97Z8MfS1G0FozR+oF2kG6Vfe8JE6zwrkbxigziPHinCJ+gCPjA9EaBDtRw==" }, - "node_modules/dayjs": { + "dayjs": { "version": "1.11.13", "resolved": "https://registry.npmjs.org/dayjs/-/dayjs-1.11.13.tgz", "integrity": "sha512-oaMBel6gjolK862uaPQOVTA7q3TZhuSvuMQAAglQDOWYO9A91IrAOUJEyKVlqJlHE0vq5p5UXxzdPfMH/x6xNg==" }, - "node_modules/debug": { + "debug": { "version": "4.3.4", "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", - "dependencies": { + "requires": { "ms": "2.1.2" - }, - "engines": { - "node": ">=6.0" - }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } } }, - "node_modules/decode-uri-component": { + "decode-uri-component": { "version": "0.2.2", "resolved": "https://registry.npmjs.org/decode-uri-component/-/decode-uri-component-0.2.2.tgz", - "integrity": "sha512-FqUYQ+8o158GyGTrMFJms9qh3CqTKvAqgqsTnkLI8sKu0028orqBhxNMFkFen0zGyg6epACD32pjVk58ngIErQ==", - "engines": { - "node": ">=0.10" - } + "integrity": "sha512-FqUYQ+8o158GyGTrMFJms9qh3CqTKvAqgqsTnkLI8sKu0028orqBhxNMFkFen0zGyg6epACD32pjVk58ngIErQ==" }, - "node_modules/define-data-property": { + "define-data-property": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/define-data-property/-/define-data-property-1.1.1.tgz", "integrity": "sha512-E7uGkTzkk1d0ByLeSc6ZsFS79Axg+m1P/VsgYsxHgiuc3tFSj+MjMIwe90FC4lOAZzNBdY7kkO2P2wKdsQ1vgQ==", - "dependencies": { + "requires": { "get-intrinsic": "^1.2.1", "gopd": "^1.0.1", "has-property-descriptors": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" } }, - "node_modules/delegates": { + "delegates": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/delegates/-/delegates-1.0.0.tgz", "integrity": "sha512-bd2L678uiWATM6m5Z1VzNCErI3jiGzt6HGY8OVICs40JQq/HALfbyNJmp0UDakEY4pMMaN0Ly5om/B1VI/+xfQ==" }, - "node_modules/detect-libc": { + "detect-libc": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-2.0.2.tgz", - "integrity": "sha512-UX6sGumvvqSaXgdKGUsgZWqcUyIXZ/vZTrlRT/iobiKhGL0zL4d3osHj3uqllWJK+i+sixDS/3COVEOFbupFyw==", - "engines": { - "node": ">=8" - } + "integrity": "sha512-UX6sGumvvqSaXgdKGUsgZWqcUyIXZ/vZTrlRT/iobiKhGL0zL4d3osHj3uqllWJK+i+sixDS/3COVEOFbupFyw==" }, - "node_modules/diff": { + "diff": { "version": "5.1.0", "resolved": "https://registry.npmjs.org/diff/-/diff-5.1.0.tgz", "integrity": "sha512-D+mk+qE8VC/PAUrlAU34N+VfXev0ghe5ywmpqrawphmVZc1bEfn56uo9qpyGp1p4xpzOHkSW4ztBd6L7Xx4ACw==", - "dev": true, - "engines": { - "node": ">=0.3.1" - } + "dev": true }, - "node_modules/dom-serializer": { + "dom-serializer": { "version": "1.4.1", "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-1.4.1.tgz", "integrity": "sha512-VHwB3KfrcOOkelEG2ZOfxqLZdfkil8PtJi4P8N2MMXucZq2yLp75ClViUlOVwyoHEDjYU433Aq+5zWP61+RGag==", - "dependencies": { + "requires": { "domelementtype": "^2.0.1", "domhandler": "^4.2.0", "entities": "^2.0.0" - }, - "funding": { - "url": "https://github.com/cheeriojs/dom-serializer?sponsor=1" } }, - "node_modules/domelementtype": { + "domelementtype": { "version": "2.3.0", "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-2.3.0.tgz", - "integrity": "sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/fb55" - } - ] + "integrity": "sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw==" }, - "node_modules/domhandler": { + "domhandler": { "version": "4.3.1", "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-4.3.1.tgz", "integrity": "sha512-GrwoxYN+uWlzO8uhUXRl0P+kHE4GtVPfYzVLcUxPL7KNdHKj66vvlhiweIHqYYXWlw+T8iLMp42Lm67ghw4WMQ==", - "dependencies": { + "requires": { "domelementtype": "^2.2.0" - }, - "engines": { - "node": ">= 4" - }, - "funding": { - "url": "https://github.com/fb55/domhandler?sponsor=1" } }, - "node_modules/dompurify": { - "version": "3.2.4", - "resolved": "https://registry.npmjs.org/dompurify/-/dompurify-3.2.4.tgz", - "integrity": "sha512-ysFSFEDVduQpyhzAob/kkuJjf5zWkZD8/A9ywSp1byueyuCfHamrCBa14/Oc2iiB0e51B+NpxSl5gmzn+Ms/mg==", - "license": "(MPL-2.0 OR Apache-2.0)", - "optionalDependencies": { - "@types/trusted-types": "^2.0.7" - } + "dompurify": { + "version": "2.5.6", + "resolved": "https://registry.npmjs.org/dompurify/-/dompurify-2.5.6.tgz", + "integrity": "sha512-zUTaUBO8pY4+iJMPE1B9XlO2tXVYIcEA4SNGtvDELzTSCQO7RzH+j7S180BmhmJId78lqGU2z19vgVx2Sxs/PQ==" }, - "node_modules/domutils": { + "domutils": { "version": "2.8.0", "resolved": "https://registry.npmjs.org/domutils/-/domutils-2.8.0.tgz", "integrity": "sha512-w96Cjofp72M5IIhpjgobBimYEfoPjx1Vx0BSX9P30WBdZW2WIKU0T1Bd0kz2eNZ9ikjKgHbEyKx8BB6H1L3h3A==", - "dependencies": { + "requires": { "dom-serializer": "^1.0.1", "domelementtype": "^2.2.0", "domhandler": "^4.2.0" - }, - "funding": { - "url": "https://github.com/fb55/domutils?sponsor=1" } }, - "node_modules/duplexer2": { + "duplexer2": { "version": "0.1.4", "resolved": "https://registry.npmjs.org/duplexer2/-/duplexer2-0.1.4.tgz", "integrity": "sha512-asLFVfWWtJ90ZyOUHMqk7/S2w2guQKxUI2itj3d92ADHhxUSbCMGi1f1cBcJ7xM1To+pE/Khbwo1yuNbMEPKeA==", - "dependencies": { + "requires": { "readable-stream": "^2.0.2" - } - }, - "node_modules/duplexer2/node_modules/readable-stream": { - "version": "2.3.8", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz", - "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", + }, "dependencies": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.3", - "isarray": "~1.0.0", - "process-nextick-args": "~2.0.0", - "safe-buffer": "~5.1.1", - "string_decoder": "~1.1.1", - "util-deprecate": "~1.0.1" + "readable-stream": { + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz", + "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", + "requires": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + }, + "safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" + }, + "string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "requires": { + "safe-buffer": "~5.1.0" + } + } } }, - "node_modules/duplexer2/node_modules/safe-buffer": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" - }, - "node_modules/duplexer2/node_modules/string_decoder": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", - "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", - "dependencies": { - "safe-buffer": "~5.1.0" - } - }, - "node_modules/emoji-regex": { + "emoji-regex": { "version": "8.0.0", "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==" }, - "node_modules/end-of-stream": { + "end-of-stream": { "version": "1.4.4", "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz", "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==", - "dependencies": { + "requires": { "once": "^1.4.0" } }, - "node_modules/entities": { + "entities": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/entities/-/entities-2.1.0.tgz", - "integrity": "sha512-hCx1oky9PFrJ611mf0ifBLBRW8lUUVRlFolb5gWRfIELabBlbp9xZvrqZLZAs+NxFnbfQoeGd8wDkygjg7U85w==", - "funding": { - "url": "https://github.com/fb55/entities?sponsor=1" - } + "integrity": "sha512-hCx1oky9PFrJ611mf0ifBLBRW8lUUVRlFolb5gWRfIELabBlbp9xZvrqZLZAs+NxFnbfQoeGd8wDkygjg7U85w==" }, - "node_modules/es-define-property": { + "es-define-property": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/es-define-property/-/es-define-property-1.0.0.tgz", "integrity": "sha512-jxayLKShrEqqzJ0eumQbVhTYQM27CfT1T35+gCgDFoL82JLsXqTJ76zv6A0YLOgEnLUMvLzsDsGIrl8NFpT2gQ==", - "dependencies": { + "requires": { "get-intrinsic": "^1.2.4" }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/es-define-property/node_modules/get-intrinsic": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.4.tgz", - "integrity": "sha512-5uYhsJH8VJBTv7oslg4BznJYhDoRI6waYCxMmCdnTrcCrHA/fCFKoTFz2JKKE0HdDFUF7/oQuhzumXJK7paBRQ==", "dependencies": { - "es-errors": "^1.3.0", - "function-bind": "^1.1.2", - "has-proto": "^1.0.1", - "has-symbols": "^1.0.3", - "hasown": "^2.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "get-intrinsic": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.4.tgz", + "integrity": "sha512-5uYhsJH8VJBTv7oslg4BznJYhDoRI6waYCxMmCdnTrcCrHA/fCFKoTFz2JKKE0HdDFUF7/oQuhzumXJK7paBRQ==", + "requires": { + "es-errors": "^1.3.0", + "function-bind": "^1.1.2", + "has-proto": "^1.0.1", + "has-symbols": "^1.0.3", + "hasown": "^2.0.0" + } + } } }, - "node_modules/es-errors": { + "es-errors": { "version": "1.3.0", "resolved": "https://registry.npmjs.org/es-errors/-/es-errors-1.3.0.tgz", - "integrity": "sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==", - "engines": { - "node": ">= 0.4" - } + "integrity": "sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==" }, - "node_modules/es6-promise": { + "es6-promise": { "version": "4.2.8", "resolved": "https://registry.npmjs.org/es6-promise/-/es6-promise-4.2.8.tgz", "integrity": "sha512-HJDGx5daxeIvxdBxvG2cb9g4tEvwIk3i8+nhX0yGrYmZUzbkdg8QbDevheDB8gd0//uPj4c1EQua8Q+MViT0/w==" }, - "node_modules/escape-goat": { + "escape-goat": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/escape-goat/-/escape-goat-3.0.0.tgz", - "integrity": "sha512-w3PwNZJwRxlp47QGzhuEBldEqVHHhh8/tIPcl6ecf2Bou99cdAt0knihBV0Ecc7CGxYduXVBDheH1K2oADRlvw==", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } + "integrity": "sha512-w3PwNZJwRxlp47QGzhuEBldEqVHHhh8/tIPcl6ecf2Bou99cdAt0knihBV0Ecc7CGxYduXVBDheH1K2oADRlvw==" }, - "node_modules/escape-string-regexp": { + "escape-string-regexp": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-5.0.0.tgz", - "integrity": "sha512-/veY75JbMK4j1yjvuUxuVsiS/hr/4iHs9FTT6cgTexxdE0Ly/glccBAkloH/DofkjRbZU3bnoj38mOmhkZ0lHw==", - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } + "integrity": "sha512-/veY75JbMK4j1yjvuUxuVsiS/hr/4iHs9FTT6cgTexxdE0Ly/glccBAkloH/DofkjRbZU3bnoj38mOmhkZ0lHw==" }, - "node_modules/esm": { + "esm": { "version": "3.2.25", "resolved": "https://registry.npmjs.org/esm/-/esm-3.2.25.tgz", - "integrity": "sha512-U1suiZ2oDVWv4zPO56S0NcR5QriEahGtdN2OR6FiOG4WJvcjBVFB0qI4+eKoWFH483PKGuLuu6V8Z4T5g63UVA==", - "engines": { - "node": ">=6" - } + "integrity": "sha512-U1suiZ2oDVWv4zPO56S0NcR5QriEahGtdN2OR6FiOG4WJvcjBVFB0qI4+eKoWFH483PKGuLuu6V8Z4T5g63UVA==" }, - "node_modules/extsprintf": { + "extsprintf": { "version": "1.4.1", "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.4.1.tgz", - "integrity": "sha512-Wrk35e8ydCKDj/ArClo1VrPVmN8zph5V4AtHwIuHhvMXsKf73UT3BOD+azBIW+3wOJ4FhEH7zyaJCFvChjYvMA==", - "engines": [ - "node >=0.6.0" - ] + "integrity": "sha512-Wrk35e8ydCKDj/ArClo1VrPVmN8zph5V4AtHwIuHhvMXsKf73UT3BOD+azBIW+3wOJ4FhEH7zyaJCFvChjYvMA==" }, - "node_modules/fast-csv": { + "fast-csv": { "version": "4.3.6", "resolved": "https://registry.npmjs.org/fast-csv/-/fast-csv-4.3.6.tgz", "integrity": "sha512-2RNSpuwwsJGP0frGsOmTb9oUF+VkFSM4SyLTDgwf2ciHWTarN0lQTC+F2f/t5J9QjW+c65VFIAAu85GsvMIusw==", - "dependencies": { + "requires": { "@fast-csv/format": "4.3.5", "@fast-csv/parse": "4.3.6" - }, - "engines": { - "node": ">=10.0.0" } }, - "node_modules/fast-deep-equal": { + "fast-deep-equal": { "version": "3.1.3", "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==" }, - "node_modules/fast-json-stable-stringify": { + "fast-json-stable-stringify": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==" }, - "node_modules/fast-xml-parser": { + "fast-xml-parser": { "version": "4.4.1", "resolved": "https://registry.npmjs.org/fast-xml-parser/-/fast-xml-parser-4.4.1.tgz", "integrity": "sha512-xkjOecfnKGkSsOwtZ5Pz7Us/T6mrbPQrq0nh+aCO5V9nk5NLWmasAHumTKjiPJPWANe+kAZ84Jc8ooJkzZ88Sw==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/NaturalIntelligence" - }, - { - "type": "paypal", - "url": "https://paypal.me/naturalintelligence" - } - ], - "dependencies": { + "requires": { "strnum": "^1.0.5" - }, - "bin": { - "fxparser": "src/cli/cli.js" } }, - "node_modules/fibers": { + "fibers": { "version": "5.0.3", "resolved": "https://registry.npmjs.org/fibers/-/fibers-5.0.3.tgz", "integrity": "sha512-/qYTSoZydQkM21qZpGLDLuCq8c+B8KhuCQ1kLPvnRNhxhVbvrpmH9l2+Lblf5neDuEsY4bfT7LeO553TXQDvJw==", - "hasInstallScript": true, - "dependencies": { + "requires": { "detect-libc": "^1.0.3" }, - "engines": { - "node": ">=10.0.0" + "dependencies": { + "detect-libc": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-1.0.3.tgz", + "integrity": "sha512-pGjwhsmsp4kL2RTz08wcOlGN83otlqHeD/Z5T8GXZB+/YcpQ/dgo+lbU8ZsGxV0HIvqqxo9l7mqYwyYMD9bKDg==" + } } }, - "node_modules/fibers/node_modules/detect-libc": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-1.0.3.tgz", - "integrity": "sha512-pGjwhsmsp4kL2RTz08wcOlGN83otlqHeD/Z5T8GXZB+/YcpQ/dgo+lbU8ZsGxV0HIvqqxo9l7mqYwyYMD9bKDg==", - "bin": { - "detect-libc": "bin/detect-libc.js" - }, - "engines": { - "node": ">=0.10" - } - }, - "node_modules/file-type": { + "file-type": { "version": "16.5.4", "resolved": "https://registry.npmjs.org/file-type/-/file-type-16.5.4.tgz", "integrity": "sha512-/yFHK0aGjFEgDJjEKP0pWCplsPFPhwyfwevf/pVxiN0tmE4L9LmwWxWukdJSHdoCli4VgQLehjJtwQBnqmsKcw==", - "dependencies": { + "requires": { "readable-web-to-node-stream": "^3.0.0", "strtok3": "^6.2.4", "token-types": "^4.1.1" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sindresorhus/file-type?sponsor=1" } }, - "node_modules/filesize": { + "filesize": { "version": "8.0.7", "resolved": "https://registry.npmjs.org/filesize/-/filesize-8.0.7.tgz", - "integrity": "sha512-pjmC+bkIF8XI7fWaH8KxHcZL3DPybs1roSKP4rKDvy20tAWwIObE4+JIseG2byfGKhud5ZnM4YSGKBz7Sh0ndQ==", - "engines": { - "node": ">= 0.4.0" - } + "integrity": "sha512-pjmC+bkIF8XI7fWaH8KxHcZL3DPybs1roSKP4rKDvy20tAWwIObE4+JIseG2byfGKhud5ZnM4YSGKBz7Sh0ndQ==" }, - "node_modules/filter-obj": { + "filter-obj": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/filter-obj/-/filter-obj-1.1.0.tgz", - "integrity": "sha512-8rXg1ZnX7xzy2NGDVkBVaAy+lSlPNwad13BtgSlLuxfIslyt5Vg64U7tFcCt4WS1R0hvtnQybT/IyCkGZ3DpXQ==", - "engines": { - "node": ">=0.10.0" - } + "integrity": "sha512-8rXg1ZnX7xzy2NGDVkBVaAy+lSlPNwad13BtgSlLuxfIslyt5Vg64U7tFcCt4WS1R0hvtnQybT/IyCkGZ3DpXQ==" }, - "node_modules/flatted": { + "flatted": { "version": "3.3.1", "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.3.1.tgz", "integrity": "sha512-X8cqMLLie7KsNUDSdzeN8FYK9rEt4Dt67OsG/DNGnYTSDBG4uFAJFBnUeiV+zCVAvwFy56IjM9sH51jVaEhNxw==", "dev": true }, - "node_modules/for-each": { + "for-each": { "version": "0.3.3", "resolved": "https://registry.npmjs.org/for-each/-/for-each-0.3.3.tgz", "integrity": "sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw==", - "dependencies": { + "requires": { "is-callable": "^1.1.3" } }, - "node_modules/fs-constants": { + "fs-constants": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/fs-constants/-/fs-constants-1.0.0.tgz", "integrity": "sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow==" }, - "node_modules/fs-minipass": { + "fs-minipass": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-2.1.0.tgz", "integrity": "sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg==", - "dependencies": { + "requires": { "minipass": "^3.0.0" }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/fs-minipass/node_modules/minipass": { - "version": "3.3.6", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz", - "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==", "dependencies": { - "yallist": "^4.0.0" - }, - "engines": { - "node": ">=8" + "minipass": { + "version": "3.3.6", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz", + "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==", + "requires": { + "yallist": "^4.0.0" + } + } } }, - "node_modules/fs.realpath": { + "fs.realpath": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==" }, - "node_modules/fstream": { + "fstream": { "version": "1.0.12", "resolved": "https://registry.npmjs.org/fstream/-/fstream-1.0.12.tgz", "integrity": "sha512-WvJ193OHa0GHPEL+AycEJgxvBEwyfRkN1vhjca23OaPVMCaLCXTd5qAu82AjTcgP1UJmytkOKb63Ypde7raDIg==", - "deprecated": "This package is no longer supported.", - "dependencies": { + "requires": { "graceful-fs": "^4.1.2", "inherits": "~2.0.0", "mkdirp": ">=0.5 0", "rimraf": "2" }, - "engines": { - "node": ">=0.6" - } - }, - "node_modules/fstream/node_modules/mkdirp": { - "version": "0.5.6", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.6.tgz", - "integrity": "sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==", "dependencies": { - "minimist": "^1.2.6" - }, - "bin": { - "mkdirp": "bin/cmd.js" + "mkdirp": { + "version": "0.5.6", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.6.tgz", + "integrity": "sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==", + "requires": { + "minimist": "^1.2.6" + } + }, + "rimraf": { + "version": "2.7.1", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", + "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", + "requires": { + "glob": "^7.1.3" + } + } } }, - "node_modules/fstream/node_modules/rimraf": { - "version": "2.7.1", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", - "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", - "deprecated": "Rimraf versions prior to v4 are no longer supported", - "dependencies": { - "glob": "^7.1.3" - }, - "bin": { - "rimraf": "bin.js" - } - }, - "node_modules/function-bind": { + "function-bind": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz", - "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==", - "funding": { - "url": "https://github.com/sponsors/ljharb" - } + "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==" }, - "node_modules/gauge": { + "gauge": { "version": "3.0.2", "resolved": "https://registry.npmjs.org/gauge/-/gauge-3.0.2.tgz", "integrity": "sha512-+5J6MS/5XksCuXq++uFRsnUd7Ovu1XenbeuIuNRJxYWjgQbPuFhT14lAvsWfqfAmnwluf1OwMjz39HjfLPci0Q==", - "deprecated": "This package is no longer supported.", - "dependencies": { + "requires": { "aproba": "^1.0.3 || ^2.0.0", "color-support": "^1.1.2", "console-control-strings": "^1.0.0", @@ -1193,444 +873,323 @@ "string-width": "^4.2.3", "strip-ansi": "^6.0.1", "wide-align": "^1.1.2" - }, - "engines": { - "node": ">=10" } }, - "node_modules/get-intrinsic": { + "get-intrinsic": { "version": "1.2.2", "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.2.tgz", "integrity": "sha512-0gSo4ml/0j98Y3lngkFEot/zhiCeWsbYIlZ+uZOVgzLyLaUw7wxUL+nCTP0XJvJg1AXulJRI3UJi8GsbDuxdGA==", - "dependencies": { + "requires": { "function-bind": "^1.1.2", "has-proto": "^1.0.1", "has-symbols": "^1.0.3", "hasown": "^2.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/glob": { + "glob": { "version": "7.2.3", "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", - "deprecated": "Glob versions prior to v9 are no longer supported", - "dependencies": { + "requires": { "fs.realpath": "^1.0.0", "inflight": "^1.0.4", "inherits": "2", "minimatch": "^3.1.1", "once": "^1.3.0", "path-is-absolute": "^1.0.0" - }, - "engines": { - "node": "*" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" } }, - "node_modules/gopd": { + "gopd": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.0.1.tgz", "integrity": "sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==", - "dependencies": { + "requires": { "get-intrinsic": "^1.1.3" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/graceful-fs": { + "graceful-fs": { "version": "4.2.11", "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz", "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==" }, - "node_modules/has-flag": { + "has-flag": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true, - "engines": { - "node": ">=8" - } + "dev": true }, - "node_modules/has-property-descriptors": { + "has-property-descriptors": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.1.tgz", "integrity": "sha512-VsX8eaIewvas0xnvinAe9bw4WfIeODpGYikiWYLH+dma0Jw6KHYqWiWfhQlgOVK8D6PvjubK5Uc4P0iIhIcNVg==", - "dependencies": { + "requires": { "get-intrinsic": "^1.2.2" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/has-proto": { + "has-proto": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/has-proto/-/has-proto-1.0.1.tgz", - "integrity": "sha512-7qE+iP+O+bgF9clE5+UoBFzE65mlBiVj3tKCrlNQ0Ogwm0BjpT/gK4SlLYDMybDh5I3TCTKnPPa0oMG7JDYrhg==", - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } + "integrity": "sha512-7qE+iP+O+bgF9clE5+UoBFzE65mlBiVj3tKCrlNQ0Ogwm0BjpT/gK4SlLYDMybDh5I3TCTKnPPa0oMG7JDYrhg==" }, - "node_modules/has-symbols": { + "has-symbols": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz", - "integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==", - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } + "integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==" }, - "node_modules/has-tostringtag": { + "has-tostringtag": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.0.tgz", "integrity": "sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ==", - "dependencies": { + "requires": { "has-symbols": "^1.0.2" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/has-unicode": { + "has-unicode": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/has-unicode/-/has-unicode-2.0.1.tgz", "integrity": "sha512-8Rf9Y83NBReMnx0gFzA8JImQACstCYWUplepDa9xprwwtmgEZUF0h/i5xSA625zB/I37EtrswSST6OXxwaaIJQ==" }, - "node_modules/hasown": { + "hasown": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.0.tgz", "integrity": "sha512-vUptKVTpIJhcczKBbgnS+RtcuYMB8+oNzPK2/Hp3hanz8JmpATdmmgLgSaadVREkDm+e2giHwY3ZRkyjSIDDFA==", - "dependencies": { + "requires": { "function-bind": "^1.1.2" - }, - "engines": { - "node": ">= 0.4" } }, - "node_modules/htmlparser2": { + "htmlparser2": { "version": "6.1.0", "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-6.1.0.tgz", "integrity": "sha512-gyyPk6rgonLFEDGoeRgQNaEUvdJ4ktTmmUh/h2t7s+M8oPpIPxgNACWa+6ESR57kXstwqPiCut0V8NRpcwgU7A==", - "funding": [ - "https://github.com/fb55/htmlparser2?sponsor=1", - { - "type": "github", - "url": "https://github.com/sponsors/fb55" - } - ], - "dependencies": { + "requires": { "domelementtype": "^2.0.1", "domhandler": "^4.0.0", "domutils": "^2.5.2", "entities": "^2.0.0" } }, - "node_modules/https-proxy-agent": { + "https-proxy-agent": { "version": "5.0.1", "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.1.tgz", "integrity": "sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA==", - "dependencies": { + "requires": { "agent-base": "6", "debug": "4" - }, - "engines": { - "node": ">= 6" } }, - "node_modules/i18next": { + "i18next": { "version": "21.10.0", "resolved": "https://registry.npmjs.org/i18next/-/i18next-21.10.0.tgz", "integrity": "sha512-YeuIBmFsGjUfO3qBmMOc0rQaun4mIpGKET5WDwvu8lU7gvwpcariZLNtL0Fzj+zazcHUrlXHiptcFhBMFaxzfg==", - "funding": [ - { - "type": "individual", - "url": "https://locize.com" - }, - { - "type": "individual", - "url": "https://locize.com/i18next.html" - }, - { - "type": "individual", - "url": "https://www.i18next.com/how-to/faq#i18next-is-awesome.-how-can-i-support-the-project" - } - ], - "dependencies": { + "requires": { "@babel/runtime": "^7.17.2" } }, - "node_modules/i18next-sprintf-postprocessor": { + "i18next-sprintf-postprocessor": { "version": "0.2.2", "resolved": "https://registry.npmjs.org/i18next-sprintf-postprocessor/-/i18next-sprintf-postprocessor-0.2.2.tgz", "integrity": "sha512-c/IT9xuMyTfJ/3Ds+DPtb0vYVuykbMyGChZ5OGZTzFDV7Kgst1nrNOwdbZ+PkcA5kLXEE3U0RKkNbabj07261w==" }, - "node_modules/ieee754": { + "ieee754": { "version": "1.2.1", "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz", - "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ] + "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==" }, - "node_modules/immediate": { + "immediate": { "version": "3.0.6", "resolved": "https://registry.npmjs.org/immediate/-/immediate-3.0.6.tgz", "integrity": "sha512-XXOFtyqDjNDAQxVfYxuF7g9Il/IbWmmlQg2MYKOH8ExIT1qg6xc4zyS3HaEEATgs1btfzxq15ciUiY7gjSXRGQ==" }, - "node_modules/inflight": { + "inflight": { "version": "1.0.6", "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", - "deprecated": "This module is not supported, and leaks memory. Do not use it. Check out lru-cache if you want a good and tested way to coalesce async requests by a key value, which is much more comprehensive and powerful.", - "dependencies": { + "requires": { "once": "^1.3.0", "wrappy": "1" } }, - "node_modules/inherits": { + "inherits": { "version": "2.0.4", "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" }, - "node_modules/ipaddr.js": { + "ipaddr.js": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-2.1.0.tgz", - "integrity": "sha512-LlbxQ7xKzfBusov6UMi4MFpEg0m+mAm9xyNGEduwXMEDuf4WfzB/RZwMVYEd7IKGvh4IUkEXYxtAVu9T3OelJQ==", - "engines": { - "node": ">= 10" - } + "integrity": "sha512-LlbxQ7xKzfBusov6UMi4MFpEg0m+mAm9xyNGEduwXMEDuf4WfzB/RZwMVYEd7IKGvh4IUkEXYxtAVu9T3OelJQ==" }, - "node_modules/is-arguments": { + "is-arguments": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/is-arguments/-/is-arguments-1.1.1.tgz", "integrity": "sha512-8Q7EARjzEnKpt/PCD7e1cgUS0a6X8u5tdSiMqXhojOdoV9TsMsiO+9VLC5vAmO8N7/GmXn7yjR8qnA6bVAEzfA==", - "dependencies": { + "requires": { "call-bind": "^1.0.2", "has-tostringtag": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/is-callable": { + "is-callable": { "version": "1.2.7", "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.7.tgz", - "integrity": "sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==", - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } + "integrity": "sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==" }, - "node_modules/is-fullwidth-code-point": { + "is-fullwidth-code-point": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", - "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", - "engines": { - "node": ">=8" - } + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==" }, - "node_modules/is-generator-function": { + "is-generator-function": { "version": "1.0.10", "resolved": "https://registry.npmjs.org/is-generator-function/-/is-generator-function-1.0.10.tgz", "integrity": "sha512-jsEjy9l3yiXEQ+PsXdmBwEPcOxaXWLspKdplFUVI9vq1iZgIekeC0L167qeu86czQaxed3q/Uzuw0swL0irL8A==", - "dependencies": { + "requires": { "has-tostringtag": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/is-typed-array": { + "is-typed-array": { "version": "1.1.12", "resolved": "https://registry.npmjs.org/is-typed-array/-/is-typed-array-1.1.12.tgz", "integrity": "sha512-Z14TF2JNG8Lss5/HMqt0//T9JeHXttXy5pH/DBU4vi98ozO2btxzq9MwYDZYnKwU8nRsz/+GVFVRDq3DkVuSPg==", - "dependencies": { + "requires": { "which-typed-array": "^1.1.11" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/isarray": { + "isarray": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==" }, - "node_modules/jquery": { + "jquery": { "version": "3.7.1", "resolved": "https://registry.npmjs.org/jquery/-/jquery-3.7.1.tgz", "integrity": "sha512-m4avr8yL8kmFN8psrbFFFmB/If14iN5o9nw/NgnnM+kybDJpRsAynV2BsfpTYrTRysYUdADVD7CkUUizgkpLfg==" }, - "node_modules/jquery-ui": { + "jquery-ui": { "version": "1.13.3", "resolved": "https://registry.npmjs.org/jquery-ui/-/jquery-ui-1.13.3.tgz", "integrity": "sha512-D2YJfswSJRh/B8M/zCowDpNFfwsDmtfnMPwjJTyvl+CBqzpYwQ+gFYIbUUlzijy/Qvoy30H1YhoSui4MNYpRwA==", - "dependencies": { + "requires": { "jquery": ">=1.8.0 <4.0.0" } }, - "node_modules/json-schema-traverse": { + "json-schema-traverse": { "version": "0.4.1", "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==" }, - "node_modules/json-stream": { + "json-stream": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/json-stream/-/json-stream-1.0.0.tgz", "integrity": "sha512-H/ZGY0nIAg3QcOwE1QN/rK/Fa7gJn7Ii5obwp6zyPO4xiPNwpIMjqy2gwjBEGqzkF/vSWEIBQCBuN19hYiL6Qg==" }, - "node_modules/jszip": { + "jszip": { "version": "3.10.1", "resolved": "https://registry.npmjs.org/jszip/-/jszip-3.10.1.tgz", "integrity": "sha512-xXDvecyTpGLrqFrvkrUSoxxfJI5AH7U8zxxtVclpsUtMCq4JQ290LY8AW5c7Ggnr/Y/oK+bQMbqK2qmtk3pN4g==", - "dependencies": { + "requires": { "lie": "~3.3.0", "pako": "~1.0.2", "readable-stream": "~2.3.6", "setimmediate": "^1.0.5" - } - }, - "node_modules/jszip/node_modules/readable-stream": { - "version": "2.3.8", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz", - "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", + }, "dependencies": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.3", - "isarray": "~1.0.0", - "process-nextick-args": "~2.0.0", - "safe-buffer": "~5.1.1", - "string_decoder": "~1.1.1", - "util-deprecate": "~1.0.1" + "readable-stream": { + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz", + "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", + "requires": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + }, + "safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" + }, + "string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "requires": { + "safe-buffer": "~5.1.0" + } + } } }, - "node_modules/jszip/node_modules/safe-buffer": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" - }, - "node_modules/jszip/node_modules/string_decoder": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", - "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", - "dependencies": { - "safe-buffer": "~5.1.0" - } - }, - "node_modules/juice": { + "juice": { "version": "8.1.0", "resolved": "https://registry.npmjs.org/juice/-/juice-8.1.0.tgz", "integrity": "sha512-FLzurJrx5Iv1e7CfBSZH68dC04EEvXvvVvPYB7Vx1WAuhCp1ZPIMtqxc+WTWxVkpTIC2Ach/GAv0rQbtGf6YMA==", - "dependencies": { + "requires": { "cheerio": "1.0.0-rc.10", "commander": "^6.1.0", "mensch": "^0.3.4", "slick": "^1.12.2", "web-resource-inliner": "^6.0.1" - }, - "bin": { - "juice": "bin/juice" - }, - "engines": { - "node": ">=10.0.0" } }, - "node_modules/just-extend": { + "just-extend": { "version": "4.2.1", "resolved": "https://registry.npmjs.org/just-extend/-/just-extend-4.2.1.tgz", "integrity": "sha512-g3UB796vUFIY90VIv/WX3L2c8CS2MdWUww3CNrYmqza1Fg0DURc2K/O4YrnklBdQarSJ/y8JnJYDGc+1iumQjg==", "dev": true }, - "node_modules/lazystream": { + "lazystream": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/lazystream/-/lazystream-1.0.1.tgz", "integrity": "sha512-b94GiNHQNy6JNTrt5w6zNyffMrNkXZb3KTkCZJb2V1xaEGCk093vkZ2jk3tpaeP33/OiXC+WvK9AxUebnf5nbw==", - "dependencies": { + "requires": { "readable-stream": "^2.0.5" }, - "engines": { - "node": ">= 0.6.3" - } - }, - "node_modules/lazystream/node_modules/readable-stream": { - "version": "2.3.8", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz", - "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", "dependencies": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.3", - "isarray": "~1.0.0", - "process-nextick-args": "~2.0.0", - "safe-buffer": "~5.1.1", - "string_decoder": "~1.1.1", - "util-deprecate": "~1.0.1" + "readable-stream": { + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz", + "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", + "requires": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + }, + "safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" + }, + "string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "requires": { + "safe-buffer": "~5.1.0" + } + } } }, - "node_modules/lazystream/node_modules/safe-buffer": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" - }, - "node_modules/lazystream/node_modules/string_decoder": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", - "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", - "dependencies": { - "safe-buffer": "~5.1.0" - } - }, - "node_modules/ldap-filter": { + "ldap-filter": { "version": "0.3.3", "resolved": "https://registry.npmjs.org/ldap-filter/-/ldap-filter-0.3.3.tgz", "integrity": "sha512-/tFkx5WIn4HuO+6w9lsfxq4FN3O+fDZeO9Mek8dCD8rTUpqzRa766BOBO7BcGkn3X86m5+cBm1/2S/Shzz7gMg==", - "dependencies": { + "requires": { "assert-plus": "^1.0.0" - }, - "engines": { - "node": ">=0.8" } }, - "node_modules/ldapjs": { + "ldapjs": { "version": "2.3.3", "resolved": "https://registry.npmjs.org/ldapjs/-/ldapjs-2.3.3.tgz", "integrity": "sha512-75QiiLJV/PQqtpH+HGls44dXweviFwQ6SiIK27EqzKQ5jU/7UFrl2E5nLdQ3IYRBzJ/AVFJI66u0MZ0uofKYwg==", - "deprecated": "This package has been decomissioned. See https://github.com/ldapjs/node-ldapjs/blob/8ffd0bc9c149088a10ec4c1ec6a18450f76ad05d/README.md", - "dependencies": { + "requires": { "abstract-logging": "^2.0.0", "asn1": "^0.2.4", "assert-plus": "^1.0.0", @@ -1639,228 +1198,185 @@ "once": "^1.4.0", "vasync": "^2.2.0", "verror": "^1.8.1" - }, - "engines": { - "node": ">=10.13.0" } }, - "node_modules/lie": { + "lie": { "version": "3.3.0", "resolved": "https://registry.npmjs.org/lie/-/lie-3.3.0.tgz", "integrity": "sha512-UaiMJzeWRlEujzAuw5LokY1L5ecNQYZKfmyZ9L7wDHb/p5etKaxXhohBcrw0EYby+G/NA52vRSN4N39dxHAIwQ==", - "dependencies": { + "requires": { "immediate": "~3.0.5" } }, - "node_modules/linkify-it": { + "linkify-it": { "version": "3.0.3", "resolved": "https://registry.npmjs.org/linkify-it/-/linkify-it-3.0.3.tgz", "integrity": "sha512-ynTsyrFSdE5oZ/O9GEf00kPngmOfVwazR5GKDq6EYfhlpFug3J2zybX56a2PRRpc9P+FuSoGNAwjlbDs9jJBPQ==", - "dependencies": { + "requires": { "uc.micro": "^1.0.1" } }, - "node_modules/listenercount": { + "listenercount": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/listenercount/-/listenercount-1.0.1.tgz", "integrity": "sha512-3mk/Zag0+IJxeDrxSgaDPy4zZ3w05PRZeJNnlWhzFz5OkX49J4krc+A8X2d2M69vGMBEX0uyl8M+W+8gH+kBqQ==" }, - "node_modules/lodash": { + "lodash": { "version": "4.17.21", "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==" }, - "node_modules/lodash.defaults": { + "lodash.defaults": { "version": "4.2.0", "resolved": "https://registry.npmjs.org/lodash.defaults/-/lodash.defaults-4.2.0.tgz", "integrity": "sha512-qjxPLHd3r5DnsdGacqOMU6pb/avJzdh9tFX2ymgoZE27BmjXrNy/y4LoaiTeAb+O3gL8AfpJGtqfX/ae2leYYQ==" }, - "node_modules/lodash.difference": { + "lodash.difference": { "version": "4.5.0", "resolved": "https://registry.npmjs.org/lodash.difference/-/lodash.difference-4.5.0.tgz", "integrity": "sha512-dS2j+W26TQ7taQBGN8Lbbq04ssV3emRw4NY58WErlTO29pIqS0HmoT5aJ9+TUQ1N3G+JOZSji4eugsWwGp9yPA==" }, - "node_modules/lodash.escaperegexp": { + "lodash.escaperegexp": { "version": "4.1.2", "resolved": "https://registry.npmjs.org/lodash.escaperegexp/-/lodash.escaperegexp-4.1.2.tgz", "integrity": "sha512-TM9YBvyC84ZxE3rgfefxUWiQKLilstD6k7PTGt6wfbtXF8ixIJLOL3VYyV/z+ZiPLsVxAsKAFVwWlWeb2Y8Yyw==" }, - "node_modules/lodash.flatten": { + "lodash.flatten": { "version": "4.4.0", "resolved": "https://registry.npmjs.org/lodash.flatten/-/lodash.flatten-4.4.0.tgz", "integrity": "sha512-C5N2Z3DgnnKr0LOpv/hKCgKdb7ZZwafIrsesve6lmzvZIRZRGaZ/l6Q8+2W7NaT+ZwO3fFlSCzCzrDCFdJfZ4g==" }, - "node_modules/lodash.get": { + "lodash.get": { "version": "4.4.2", "resolved": "https://registry.npmjs.org/lodash.get/-/lodash.get-4.4.2.tgz", "integrity": "sha512-z+Uw/vLuy6gQe8cfaFWD7p0wVv8fJl3mbzXh33RS+0oW2wvUqiRXiQ69gLWSLpgB5/6sU+r6BlQR0MBILadqTQ==", - "deprecated": "This package is deprecated. Use the optional chaining (?.) operator instead.", "dev": true }, - "node_modules/lodash.groupby": { + "lodash.groupby": { "version": "4.6.0", "resolved": "https://registry.npmjs.org/lodash.groupby/-/lodash.groupby-4.6.0.tgz", "integrity": "sha512-5dcWxm23+VAoz+awKmBaiBvzox8+RqMgFhi7UvX9DHZr2HdxHXM/Wrf8cfKpsW37RNrvtPn6hSwNqurSILbmJw==" }, - "node_modules/lodash.isboolean": { + "lodash.isboolean": { "version": "3.0.3", "resolved": "https://registry.npmjs.org/lodash.isboolean/-/lodash.isboolean-3.0.3.tgz", "integrity": "sha512-Bz5mupy2SVbPHURB98VAcw+aHh4vRV5IPNhILUCsOzRmsTmSQ17jIuqopAentWoehktxGd9e/hbIXq980/1QJg==" }, - "node_modules/lodash.isequal": { + "lodash.isequal": { "version": "4.5.0", "resolved": "https://registry.npmjs.org/lodash.isequal/-/lodash.isequal-4.5.0.tgz", - "integrity": "sha512-pDo3lu8Jhfjqls6GkMgpahsF9kCyayhgykjyLMNFTKWrpVdAQtYyB4muAMWozBB4ig/dtWAmsMxLEI8wuz+DYQ==", - "deprecated": "This package is deprecated. Use require('node:util').isDeepStrictEqual instead." + "integrity": "sha512-pDo3lu8Jhfjqls6GkMgpahsF9kCyayhgykjyLMNFTKWrpVdAQtYyB4muAMWozBB4ig/dtWAmsMxLEI8wuz+DYQ==" }, - "node_modules/lodash.isfunction": { + "lodash.isfunction": { "version": "3.0.9", "resolved": "https://registry.npmjs.org/lodash.isfunction/-/lodash.isfunction-3.0.9.tgz", "integrity": "sha512-AirXNj15uRIMMPihnkInB4i3NHeb4iBtNg9WRWuK2o31S+ePwwNmDPaTL3o7dTJ+VXNZim7rFs4rxN4YU1oUJw==" }, - "node_modules/lodash.isnil": { + "lodash.isnil": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/lodash.isnil/-/lodash.isnil-4.0.0.tgz", "integrity": "sha512-up2Mzq3545mwVnMhTDMdfoG1OurpA/s5t88JmQX809eH3C8491iu2sfKhTfhQtKY78oPNhiaHJUpT/dUDAAtng==" }, - "node_modules/lodash.isplainobject": { + "lodash.isplainobject": { "version": "4.0.6", "resolved": "https://registry.npmjs.org/lodash.isplainobject/-/lodash.isplainobject-4.0.6.tgz", "integrity": "sha512-oSXzaWypCMHkPC3NvBEaPHf0KsA5mvPrOPgQWDsbg8n7orZ290M0BmC/jgRZ4vcJ6DTAhjrsSYgdsW/F+MFOBA==" }, - "node_modules/lodash.isundefined": { + "lodash.isundefined": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/lodash.isundefined/-/lodash.isundefined-3.0.1.tgz", "integrity": "sha512-MXB1is3s899/cD8jheYYE2V9qTHwKvt+npCwpD+1Sxm3Q3cECXCiYHjeHWXNwr6Q0SOBPrYUDxendrO6goVTEA==" }, - "node_modules/lodash.union": { + "lodash.union": { "version": "4.6.0", "resolved": "https://registry.npmjs.org/lodash.union/-/lodash.union-4.6.0.tgz", "integrity": "sha512-c4pB2CdGrGdjMKYLA+XiRDO7Y0PRQbm/Gzg8qMj+QH+pFVAoTp5sBpO0odL3FjoPCGjK96p6qsP+yQoiLoOBcw==" }, - "node_modules/lodash.uniq": { + "lodash.uniq": { "version": "4.5.0", "resolved": "https://registry.npmjs.org/lodash.uniq/-/lodash.uniq-4.5.0.tgz", "integrity": "sha512-xfBaXQd9ryd9dlSDvnvI0lvxfLJlYAZzXomUYzLKtUeOQvOP5piqAWuGtrhWeqaXK9hhoM/iyJc5AV+XfsX3HQ==" }, - "node_modules/lru-cache": { + "lru-cache": { "version": "6.0.0", "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", - "dependencies": { + "requires": { "yallist": "^4.0.0" - }, - "engines": { - "node": ">=10" } }, - "node_modules/make-dir": { + "make-dir": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz", "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==", - "dependencies": { + "requires": { "semver": "^6.0.0" }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "dependencies": { + "semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==" + } } }, - "node_modules/make-dir/node_modules/semver": { - "version": "6.3.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", - "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", - "bin": { - "semver": "bin/semver.js" - } - }, - "node_modules/markdown-it": { + "markdown-it": { "version": "12.3.2", "resolved": "https://registry.npmjs.org/markdown-it/-/markdown-it-12.3.2.tgz", "integrity": "sha512-TchMembfxfNVpHkbtriWltGWc+m3xszaRD0CZup7GFFhzIgQqxIfn3eGj1yZpfuflzPvfkt611B2Q/Bsk1YnGg==", - "dependencies": { + "requires": { "argparse": "^2.0.1", "entities": "~2.1.0", "linkify-it": "^3.0.1", "mdurl": "^1.0.1", "uc.micro": "^1.0.5" - }, - "bin": { - "markdown-it": "bin/markdown-it.js" } }, - "node_modules/markdown-it-emoji": { + "markdown-it-emoji": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/markdown-it-emoji/-/markdown-it-emoji-2.0.2.tgz", "integrity": "sha512-zLftSaNrKuYl0kR5zm4gxXjHaOI3FAOEaloKmRA5hijmJZvSjmxcokOLlzycb/HXlUFWzXqpIEoyEMCE4i9MvQ==" }, - "node_modules/markdown-it-mathjax3": { + "markdown-it-mathjax3": { "version": "4.3.2", "resolved": "https://registry.npmjs.org/markdown-it-mathjax3/-/markdown-it-mathjax3-4.3.2.tgz", "integrity": "sha512-TX3GW5NjmupgFtMJGRauioMbbkGsOXAAt1DZ/rzzYmTHqzkO1rNAdiMD4NiruurToPApn2kYy76x02QN26qr2w==", - "dependencies": { + "requires": { "juice": "^8.0.0", "mathjax-full": "^3.2.0" } }, - "node_modules/mathjax-full": { + "mathjax-full": { "version": "3.2.2", "resolved": "https://registry.npmjs.org/mathjax-full/-/mathjax-full-3.2.2.tgz", "integrity": "sha512-+LfG9Fik+OuI8SLwsiR02IVdjcnRCy5MufYLi0C3TdMT56L/pjB0alMVGgoWJF8pN9Rc7FESycZB9BMNWIid5w==", - "dependencies": { + "requires": { "esm": "^3.2.25", "mhchemparser": "^4.1.0", "mj-context-menu": "^0.6.1", "speech-rule-engine": "^4.0.6" } }, - "node_modules/mdurl": { + "mdurl": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/mdurl/-/mdurl-1.0.1.tgz", "integrity": "sha512-/sKlQJCBYVY9Ers9hqzKou4H6V5UWc/M59TH2dvkt+84itfnq7uFOMLpOiOS4ujvHP4etln18fmIxA5R5fll0g==" }, - "node_modules/mensch": { + "mensch": { "version": "0.3.4", "resolved": "https://registry.npmjs.org/mensch/-/mensch-0.3.4.tgz", "integrity": "sha512-IAeFvcOnV9V0Yk+bFhYR07O3yNina9ANIN5MoXBKYJ/RLYPurd2d0yw14MDhpr9/momp0WofT1bPUh3hkzdi/g==" }, - "node_modules/meteor-accounts-t9n": { + "meteor-accounts-t9n": { "version": "2.6.0", "resolved": "https://registry.npmjs.org/meteor-accounts-t9n/-/meteor-accounts-t9n-2.6.0.tgz", "integrity": "sha512-SBbbYWvFYvsxHVL+q6ZB8lT3rp2LSvfALD2V52H+MGH2IgJsevy0VtXRkRG0EsUewwOaDTIKBn9DlD8HQ3GSwg==" }, - "node_modules/meteor-node-stubs": { + "meteor-node-stubs": { "version": "1.2.12", "resolved": "https://registry.npmjs.org/meteor-node-stubs/-/meteor-node-stubs-1.2.12.tgz", "integrity": "sha512-mzp3KI2aGNDhFlCVXPd0pfMr2z9A5vl1AqEgV13/z7AgKwcbd2X+ymE6tpSAMkrrQb40PU9PC2B59bCb6XkAaw==", - "bundleDependencies": [ - "@meteorjs/crypto-browserify", - "assert", - "browserify-zlib", - "buffer", - "console-browserify", - "constants-browserify", - "domain-browser", - "events", - "https-browserify", - "os-browserify", - "path-browserify", - "process", - "punycode", - "querystring-es3", - "readable-stream", - "stream-browserify", - "stream-http", - "string_decoder", - "timers-browserify", - "tty-browserify", - "url", - "util", - "vm-browserify" - ], - "dependencies": { + "requires": { "@meteorjs/crypto-browserify": "^3.12.1", "assert": "^2.1.0", "browserify-zlib": "^0.2.0", @@ -1885,1181 +1401,825 @@ "url": "^0.11.4", "util": "^0.12.5", "vm-browserify": "^1.1.2" - } - }, - "node_modules/meteor-node-stubs/node_modules/@meteorjs/crypto-browserify": { - "version": "3.12.1", - "integrity": "sha512-ku23zGjNb1XJXPSPlt4QCPetc4s/cPrSahhSF11mFeQff5wBuu7QVVn/MusdHh+l3aKl6L1XMLV+OYLXvNDQ6Q==", - "inBundle": true, - "dependencies": { - "browserify-cipher": "^1.0.1", - "browserify-sign": "^4.2.3", - "create-ecdh": "^4.0.4", - "create-hash": "^1.2.0", - "create-hmac": "^1.1.7", - "diffie-hellman": "^5.0.3", - "hash-base": "~3.0.4", - "inherits": "^2.0.4", - "pbkdf2": "^3.1.2", - "public-encrypt": "^4.0.3", - "randombytes": "^2.1.0", - "randomfill": "^1.0.4" }, - "engines": { - "node": ">= 0.10" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/meteor-node-stubs/node_modules/@meteorjs/crypto-browserify/node_modules/hash-base": { - "version": "3.0.4", - "integrity": "sha512-EeeoJKjTyt868liAlVmcv2ZsUfGHlE3Q+BICOXcZiwN3osr5Q/zFGYmTJpoIzuaSTAwndFy+GqhEwlU4L3j4Ow==", - "inBundle": true, "dependencies": { - "inherits": "^2.0.1", - "safe-buffer": "^5.0.1" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/meteor-node-stubs/node_modules/asn1.js": { - "version": "4.10.1", - "integrity": "sha512-p32cOF5q0Zqs9uBiONKYLm6BClCoBCM5O9JfeUSlnQLBTxYdTK+pW+nXflm8UkKd2UYlEbYz5qEi0JuZR9ckSw==", - "inBundle": true, - "dependencies": { - "bn.js": "^4.0.0", - "inherits": "^2.0.1", - "minimalistic-assert": "^1.0.0" - } - }, - "node_modules/meteor-node-stubs/node_modules/asn1.js/node_modules/bn.js": { - "version": "4.12.0", - "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==", - "inBundle": true - }, - "node_modules/meteor-node-stubs/node_modules/assert": { - "version": "2.1.0", - "integrity": "sha512-eLHpSK/Y4nhMJ07gDaAzoX/XAKS8PSaojml3M0DM4JpV1LAi5JOJ/p6H/XWrl8L+DzVEvVCW1z3vWAaB9oTsQw==", - "inBundle": true, - "dependencies": { - "call-bind": "^1.0.2", - "is-nan": "^1.3.2", - "object-is": "^1.1.5", - "object.assign": "^4.1.4", - "util": "^0.12.5" - } - }, - "node_modules/meteor-node-stubs/node_modules/available-typed-arrays": { - "version": "1.0.5", - "integrity": "sha512-DMD0KiN46eipeziST1LPP/STfDU0sufISXmjSgvVsoU2tqxctQeASejWcfNtxYKqETM1UxQ8sp2OrSBWpHY6sw==", - "inBundle": true, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/meteor-node-stubs/node_modules/base64-js": { - "version": "1.5.1", - "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" + "@meteorjs/crypto-browserify": { + "version": "3.12.1", + "bundled": true, + "requires": { + "browserify-cipher": "^1.0.1", + "browserify-sign": "^4.2.3", + "create-ecdh": "^4.0.4", + "create-hash": "^1.2.0", + "create-hmac": "^1.1.7", + "diffie-hellman": "^5.0.3", + "hash-base": "~3.0.4", + "inherits": "^2.0.4", + "pbkdf2": "^3.1.2", + "public-encrypt": "^4.0.3", + "randombytes": "^2.1.0", + "randomfill": "^1.0.4" + }, + "dependencies": { + "hash-base": { + "version": "3.0.4", + "bundled": true, + "requires": { + "inherits": "^2.0.1", + "safe-buffer": "^5.0.1" + } + } + } }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" + "asn1.js": { + "version": "4.10.1", + "bundled": true, + "requires": { + "bn.js": "^4.0.0", + "inherits": "^2.0.1", + "minimalistic-assert": "^1.0.0" + }, + "dependencies": { + "bn.js": { + "version": "4.12.0", + "bundled": true + } + } }, - { - "type": "consulting", - "url": "https://feross.org/support" + "assert": { + "version": "2.1.0", + "bundled": true, + "requires": { + "call-bind": "^1.0.2", + "is-nan": "^1.3.2", + "object-is": "^1.1.5", + "object.assign": "^4.1.4", + "util": "^0.12.5" + } + }, + "available-typed-arrays": { + "version": "1.0.5", + "bundled": true + }, + "base64-js": { + "version": "1.5.1", + "bundled": true + }, + "bn.js": { + "version": "5.2.0", + "bundled": true + }, + "brorand": { + "version": "1.1.0", + "bundled": true + }, + "browserify-aes": { + "version": "1.2.0", + "bundled": true, + "requires": { + "buffer-xor": "^1.0.3", + "cipher-base": "^1.0.0", + "create-hash": "^1.1.0", + "evp_bytestokey": "^1.0.3", + "inherits": "^2.0.1", + "safe-buffer": "^5.0.1" + } + }, + "browserify-cipher": { + "version": "1.0.1", + "bundled": true, + "requires": { + "browserify-aes": "^1.0.4", + "browserify-des": "^1.0.0", + "evp_bytestokey": "^1.0.0" + } + }, + "browserify-des": { + "version": "1.0.2", + "bundled": true, + "requires": { + "cipher-base": "^1.0.1", + "des.js": "^1.0.0", + "inherits": "^2.0.1", + "safe-buffer": "^5.1.2" + } + }, + "browserify-rsa": { + "version": "4.1.0", + "bundled": true, + "requires": { + "bn.js": "^5.0.0", + "randombytes": "^2.0.1" + } + }, + "browserify-sign": { + "version": "4.2.3", + "bundled": true, + "requires": { + "bn.js": "^5.2.1", + "browserify-rsa": "^4.1.0", + "create-hash": "^1.2.0", + "create-hmac": "^1.1.7", + "elliptic": "^6.5.5", + "hash-base": "~3.0", + "inherits": "^2.0.4", + "parse-asn1": "^5.1.7", + "readable-stream": "^2.3.8", + "safe-buffer": "^5.2.1" + }, + "dependencies": { + "bn.js": { + "version": "5.2.1", + "bundled": true + }, + "hash-base": { + "version": "3.0.4", + "bundled": true, + "requires": { + "inherits": "^2.0.1", + "safe-buffer": "^5.0.1" + } + }, + "readable-stream": { + "version": "2.3.8", + "bundled": true, + "requires": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + }, + "dependencies": { + "safe-buffer": { + "version": "5.1.2", + "bundled": true + } + } + }, + "string_decoder": { + "version": "1.1.1", + "bundled": true, + "requires": { + "safe-buffer": "~5.1.0" + }, + "dependencies": { + "safe-buffer": { + "version": "5.1.2", + "bundled": true + } + } + } + } + }, + "browserify-zlib": { + "version": "0.2.0", + "bundled": true, + "requires": { + "pako": "~1.0.5" + } + }, + "buffer": { + "version": "5.7.1", + "bundled": true, + "requires": { + "base64-js": "^1.3.1", + "ieee754": "^1.1.13" + } + }, + "buffer-xor": { + "version": "1.0.3", + "bundled": true + }, + "builtin-status-codes": { + "version": "3.0.0", + "bundled": true + }, + "call-bind": { + "version": "1.0.7", + "bundled": true, + "requires": { + "es-define-property": "^1.0.0", + "es-errors": "^1.3.0", + "function-bind": "^1.1.2", + "get-intrinsic": "^1.2.4", + "set-function-length": "^1.2.1" + } + }, + "cipher-base": { + "version": "1.0.4", + "bundled": true, + "requires": { + "inherits": "^2.0.1", + "safe-buffer": "^5.0.1" + } + }, + "console-browserify": { + "version": "1.2.0", + "bundled": true + }, + "constants-browserify": { + "version": "1.0.0", + "bundled": true + }, + "core-util-is": { + "version": "1.0.3", + "bundled": true + }, + "create-ecdh": { + "version": "4.0.4", + "bundled": true, + "requires": { + "bn.js": "^4.1.0", + "elliptic": "^6.5.3" + }, + "dependencies": { + "bn.js": { + "version": "4.12.0", + "bundled": true + } + } + }, + "create-hash": { + "version": "1.2.0", + "bundled": true, + "requires": { + "cipher-base": "^1.0.1", + "inherits": "^2.0.1", + "md5.js": "^1.3.4", + "ripemd160": "^2.0.1", + "sha.js": "^2.4.0" + } + }, + "create-hmac": { + "version": "1.1.7", + "bundled": true, + "requires": { + "cipher-base": "^1.0.3", + "create-hash": "^1.1.0", + "inherits": "^2.0.1", + "ripemd160": "^2.0.0", + "safe-buffer": "^5.0.1", + "sha.js": "^2.4.8" + } + }, + "define-data-property": { + "version": "1.1.4", + "bundled": true, + "requires": { + "es-define-property": "^1.0.0", + "es-errors": "^1.3.0", + "gopd": "^1.0.1" + } + }, + "define-properties": { + "version": "1.2.1", + "bundled": true, + "requires": { + "define-data-property": "^1.0.1", + "has-property-descriptors": "^1.0.0", + "object-keys": "^1.1.1" + } + }, + "des.js": { + "version": "1.0.1", + "bundled": true, + "requires": { + "inherits": "^2.0.1", + "minimalistic-assert": "^1.0.0" + } + }, + "diffie-hellman": { + "version": "5.0.3", + "bundled": true, + "requires": { + "bn.js": "^4.1.0", + "miller-rabin": "^4.0.0", + "randombytes": "^2.0.0" + }, + "dependencies": { + "bn.js": { + "version": "4.12.0", + "bundled": true + } + } + }, + "domain-browser": { + "version": "4.23.0", + "bundled": true + }, + "elliptic": { + "version": "6.6.0", + "bundled": true, + "requires": { + "bn.js": "^4.11.9", + "brorand": "^1.1.0", + "hash.js": "^1.0.0", + "hmac-drbg": "^1.0.1", + "inherits": "^2.0.4", + "minimalistic-assert": "^1.0.1", + "minimalistic-crypto-utils": "^1.0.1" + }, + "dependencies": { + "bn.js": { + "version": "4.12.0", + "bundled": true + } + } + }, + "es-define-property": { + "version": "1.0.0", + "bundled": true, + "requires": { + "get-intrinsic": "^1.2.4" + } + }, + "es-errors": { + "version": "1.3.0", + "bundled": true + }, + "events": { + "version": "3.3.0", + "bundled": true + }, + "evp_bytestokey": { + "version": "1.0.3", + "bundled": true, + "requires": { + "md5.js": "^1.3.4", + "safe-buffer": "^5.1.1" + } + }, + "for-each": { + "version": "0.3.3", + "bundled": true, + "requires": { + "is-callable": "^1.1.3" + } + }, + "function-bind": { + "version": "1.1.2", + "bundled": true + }, + "get-intrinsic": { + "version": "1.2.4", + "bundled": true, + "requires": { + "es-errors": "^1.3.0", + "function-bind": "^1.1.2", + "has-proto": "^1.0.1", + "has-symbols": "^1.0.3", + "hasown": "^2.0.0" + } + }, + "gopd": { + "version": "1.0.1", + "bundled": true, + "requires": { + "get-intrinsic": "^1.1.3" + } + }, + "has-property-descriptors": { + "version": "1.0.2", + "bundled": true, + "requires": { + "es-define-property": "^1.0.0" + } + }, + "has-proto": { + "version": "1.0.1", + "bundled": true + }, + "has-symbols": { + "version": "1.0.3", + "bundled": true + }, + "has-tostringtag": { + "version": "1.0.0", + "bundled": true, + "requires": { + "has-symbols": "^1.0.2" + } + }, + "hash-base": { + "version": "3.1.0", + "bundled": true, + "requires": { + "inherits": "^2.0.4", + "readable-stream": "^3.6.0", + "safe-buffer": "^5.2.0" + } + }, + "hash.js": { + "version": "1.1.7", + "bundled": true, + "requires": { + "inherits": "^2.0.3", + "minimalistic-assert": "^1.0.1" + } + }, + "hasown": { + "version": "2.0.0", + "bundled": true, + "requires": { + "function-bind": "^1.1.2" + } + }, + "hmac-drbg": { + "version": "1.0.1", + "bundled": true, + "requires": { + "hash.js": "^1.0.3", + "minimalistic-assert": "^1.0.0", + "minimalistic-crypto-utils": "^1.0.1" + } + }, + "https-browserify": { + "version": "1.0.0", + "bundled": true + }, + "ieee754": { + "version": "1.2.1", + "bundled": true + }, + "inherits": { + "version": "2.0.4", + "bundled": true + }, + "is-arguments": { + "version": "1.1.1", + "bundled": true, + "requires": { + "call-bind": "^1.0.2", + "has-tostringtag": "^1.0.0" + } + }, + "is-callable": { + "version": "1.2.7", + "bundled": true + }, + "is-generator-function": { + "version": "1.0.10", + "bundled": true, + "requires": { + "has-tostringtag": "^1.0.0" + } + }, + "is-nan": { + "version": "1.3.2", + "bundled": true, + "requires": { + "call-bind": "^1.0.0", + "define-properties": "^1.1.3" + } + }, + "is-typed-array": { + "version": "1.1.12", + "bundled": true, + "requires": { + "which-typed-array": "^1.1.11" + } + }, + "isarray": { + "version": "1.0.0", + "bundled": true + }, + "md5.js": { + "version": "1.3.5", + "bundled": true, + "requires": { + "hash-base": "^3.0.0", + "inherits": "^2.0.1", + "safe-buffer": "^5.1.2" + } + }, + "miller-rabin": { + "version": "4.0.1", + "bundled": true, + "requires": { + "bn.js": "^4.0.0", + "brorand": "^1.0.1" + }, + "dependencies": { + "bn.js": { + "version": "4.12.0", + "bundled": true + } + } + }, + "minimalistic-assert": { + "version": "1.0.1", + "bundled": true + }, + "minimalistic-crypto-utils": { + "version": "1.0.1", + "bundled": true + }, + "object-inspect": { + "version": "1.13.2", + "bundled": true + }, + "object-is": { + "version": "1.1.5", + "bundled": true, + "requires": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.3" + } + }, + "object-keys": { + "version": "1.1.1", + "bundled": true + }, + "object.assign": { + "version": "4.1.4", + "bundled": true, + "requires": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.4", + "has-symbols": "^1.0.3", + "object-keys": "^1.1.1" + } + }, + "os-browserify": { + "version": "0.3.0", + "bundled": true + }, + "pako": { + "version": "1.0.11", + "bundled": true + }, + "parse-asn1": { + "version": "5.1.7", + "bundled": true, + "requires": { + "asn1.js": "^4.10.1", + "browserify-aes": "^1.2.0", + "evp_bytestokey": "^1.0.3", + "hash-base": "~3.0", + "pbkdf2": "^3.1.2", + "safe-buffer": "^5.2.1" + }, + "dependencies": { + "hash-base": { + "version": "3.0.4", + "bundled": true, + "requires": { + "inherits": "^2.0.1", + "safe-buffer": "^5.0.1" + } + } + } + }, + "path-browserify": { + "version": "1.0.1", + "bundled": true + }, + "pbkdf2": { + "version": "3.1.2", + "bundled": true, + "requires": { + "create-hash": "^1.1.2", + "create-hmac": "^1.1.4", + "ripemd160": "^2.0.1", + "safe-buffer": "^5.0.1", + "sha.js": "^2.4.8" + } + }, + "process": { + "version": "0.11.10", + "bundled": true + }, + "process-nextick-args": { + "version": "2.0.1", + "bundled": true + }, + "public-encrypt": { + "version": "4.0.3", + "bundled": true, + "requires": { + "bn.js": "^4.1.0", + "browserify-rsa": "^4.0.0", + "create-hash": "^1.1.0", + "parse-asn1": "^5.0.0", + "randombytes": "^2.0.1", + "safe-buffer": "^5.1.2" + }, + "dependencies": { + "bn.js": { + "version": "4.12.0", + "bundled": true + } + } + }, + "punycode": { + "version": "1.4.1", + "bundled": true + }, + "qs": { + "version": "6.13.0", + "bundled": true, + "requires": { + "side-channel": "^1.0.6" + } + }, + "querystring-es3": { + "version": "0.2.1", + "bundled": true + }, + "randombytes": { + "version": "2.1.0", + "bundled": true, + "requires": { + "safe-buffer": "^5.1.0" + } + }, + "randomfill": { + "version": "1.0.4", + "bundled": true, + "requires": { + "randombytes": "^2.0.5", + "safe-buffer": "^5.1.0" + } + }, + "readable-stream": { + "version": "3.6.2", + "bundled": true, + "requires": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + } + }, + "ripemd160": { + "version": "2.0.2", + "bundled": true, + "requires": { + "hash-base": "^3.0.0", + "inherits": "^2.0.1" + } + }, + "safe-buffer": { + "version": "5.2.1", + "bundled": true + }, + "set-function-length": { + "version": "1.2.2", + "bundled": true, + "requires": { + "define-data-property": "^1.1.4", + "es-errors": "^1.3.0", + "function-bind": "^1.1.2", + "get-intrinsic": "^1.2.4", + "gopd": "^1.0.1", + "has-property-descriptors": "^1.0.2" + } + }, + "setimmediate": { + "version": "1.0.5", + "bundled": true + }, + "sha.js": { + "version": "2.4.11", + "bundled": true, + "requires": { + "inherits": "^2.0.1", + "safe-buffer": "^5.0.1" + } + }, + "side-channel": { + "version": "1.0.6", + "bundled": true, + "requires": { + "call-bind": "^1.0.7", + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.4", + "object-inspect": "^1.13.1" + } + }, + "stream-browserify": { + "version": "3.0.0", + "bundled": true, + "requires": { + "inherits": "~2.0.4", + "readable-stream": "^3.5.0" + } + }, + "stream-http": { + "version": "3.2.0", + "bundled": true, + "requires": { + "builtin-status-codes": "^3.0.0", + "inherits": "^2.0.4", + "readable-stream": "^3.6.0", + "xtend": "^4.0.2" + } + }, + "string_decoder": { + "version": "1.3.0", + "bundled": true, + "requires": { + "safe-buffer": "~5.2.0" + } + }, + "timers-browserify": { + "version": "2.0.12", + "bundled": true, + "requires": { + "setimmediate": "^1.0.4" + } + }, + "tty-browserify": { + "version": "0.0.1", + "bundled": true + }, + "url": { + "version": "0.11.4", + "bundled": true, + "requires": { + "punycode": "^1.4.1", + "qs": "^6.12.3" + } + }, + "util": { + "version": "0.12.5", + "bundled": true, + "requires": { + "inherits": "^2.0.3", + "is-arguments": "^1.0.4", + "is-generator-function": "^1.0.7", + "is-typed-array": "^1.1.3", + "which-typed-array": "^1.1.2" + } + }, + "util-deprecate": { + "version": "1.0.2", + "bundled": true + }, + "vm-browserify": { + "version": "1.1.2", + "bundled": true + }, + "which-typed-array": { + "version": "1.1.13", + "bundled": true, + "requires": { + "available-typed-arrays": "^1.0.5", + "call-bind": "^1.0.4", + "for-each": "^0.3.3", + "gopd": "^1.0.1", + "has-tostringtag": "^1.0.0" + } + }, + "xtend": { + "version": "4.0.2", + "bundled": true } - ], - "inBundle": true - }, - "node_modules/meteor-node-stubs/node_modules/bn.js": { - "version": "5.2.0", - "integrity": "sha512-D7iWRBvnZE8ecXiLj/9wbxH7Tk79fAh8IHaTNq1RWRixsS02W+5qS+iE9yq6RYl0asXx5tw0bLhmT5pIfbSquw==", - "inBundle": true - }, - "node_modules/meteor-node-stubs/node_modules/brorand": { - "version": "1.1.0", - "integrity": "sha512-cKV8tMCEpQs4hK/ik71d6LrPOnpkpGBR0wzxqr68g2m/LB2GxVYQroAjMJZRVM1Y4BCjCKc3vAamxSzOY2RP+w==", - "inBundle": true - }, - "node_modules/meteor-node-stubs/node_modules/browserify-aes": { - "version": "1.2.0", - "integrity": "sha512-+7CHXqGuspUn/Sl5aO7Ea0xWGAtETPXNSAjHo48JfLdPWcMng33Xe4znFvQweqc/uzk5zSOI3H52CYnjCfb5hA==", - "inBundle": true, - "dependencies": { - "buffer-xor": "^1.0.3", - "cipher-base": "^1.0.0", - "create-hash": "^1.1.0", - "evp_bytestokey": "^1.0.3", - "inherits": "^2.0.1", - "safe-buffer": "^5.0.1" - } - }, - "node_modules/meteor-node-stubs/node_modules/browserify-cipher": { - "version": "1.0.1", - "integrity": "sha512-sPhkz0ARKbf4rRQt2hTpAHqn47X3llLkUGn+xEJzLjwY8LRs2p0v7ljvI5EyoRO/mexrNunNECisZs+gw2zz1w==", - "inBundle": true, - "dependencies": { - "browserify-aes": "^1.0.4", - "browserify-des": "^1.0.0", - "evp_bytestokey": "^1.0.0" - } - }, - "node_modules/meteor-node-stubs/node_modules/browserify-des": { - "version": "1.0.2", - "integrity": "sha512-BioO1xf3hFwz4kc6iBhI3ieDFompMhrMlnDFC4/0/vd5MokpuAc3R+LYbwTA9A5Yc9pq9UYPqffKpW2ObuwX5A==", - "inBundle": true, - "dependencies": { - "cipher-base": "^1.0.1", - "des.js": "^1.0.0", - "inherits": "^2.0.1", - "safe-buffer": "^5.1.2" - } - }, - "node_modules/meteor-node-stubs/node_modules/browserify-rsa": { - "version": "4.1.0", - "integrity": "sha512-AdEER0Hkspgno2aR97SAf6vi0y0k8NuOpGnVH3O99rcA5Q6sh8QxcngtHuJ6uXwnfAXNM4Gn1Gb7/MV1+Ymbog==", - "inBundle": true, - "dependencies": { - "bn.js": "^5.0.0", - "randombytes": "^2.0.1" - } - }, - "node_modules/meteor-node-stubs/node_modules/browserify-sign": { - "version": "4.2.3", - "integrity": "sha512-JWCZW6SKhfhjJxO8Tyiiy+XYB7cqd2S5/+WeYHsKdNKFlCBhKbblba1A/HN/90YwtxKc8tCErjffZl++UNmGiw==", - "inBundle": true, - "dependencies": { - "bn.js": "^5.2.1", - "browserify-rsa": "^4.1.0", - "create-hash": "^1.2.0", - "create-hmac": "^1.1.7", - "elliptic": "^6.5.5", - "hash-base": "~3.0", - "inherits": "^2.0.4", - "parse-asn1": "^5.1.7", - "readable-stream": "^2.3.8", - "safe-buffer": "^5.2.1" - }, - "engines": { - "node": ">= 0.12" - } - }, - "node_modules/meteor-node-stubs/node_modules/browserify-sign/node_modules/bn.js": { - "version": "5.2.1", - "integrity": "sha512-eXRvHzWyYPBuB4NBy0cmYQjGitUrtqwbvlzP3G6VFnNRbsZQIxQ10PbKKHt8gZ/HW/D/747aDl+QkDqg3KQLMQ==", - "inBundle": true - }, - "node_modules/meteor-node-stubs/node_modules/browserify-sign/node_modules/hash-base": { - "version": "3.0.4", - "integrity": "sha512-EeeoJKjTyt868liAlVmcv2ZsUfGHlE3Q+BICOXcZiwN3osr5Q/zFGYmTJpoIzuaSTAwndFy+GqhEwlU4L3j4Ow==", - "inBundle": true, - "dependencies": { - "inherits": "^2.0.1", - "safe-buffer": "^5.0.1" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/meteor-node-stubs/node_modules/browserify-sign/node_modules/readable-stream": { - "version": "2.3.8", - "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", - "inBundle": true, - "dependencies": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.3", - "isarray": "~1.0.0", - "process-nextick-args": "~2.0.0", - "safe-buffer": "~5.1.1", - "string_decoder": "~1.1.1", - "util-deprecate": "~1.0.1" - } - }, - "node_modules/meteor-node-stubs/node_modules/browserify-sign/node_modules/readable-stream/node_modules/safe-buffer": { - "version": "5.1.2", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", - "inBundle": true - }, - "node_modules/meteor-node-stubs/node_modules/browserify-sign/node_modules/string_decoder": { - "version": "1.1.1", - "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", - "inBundle": true, - "dependencies": { - "safe-buffer": "~5.1.0" - } - }, - "node_modules/meteor-node-stubs/node_modules/browserify-sign/node_modules/string_decoder/node_modules/safe-buffer": { - "version": "5.1.2", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", - "inBundle": true - }, - "node_modules/meteor-node-stubs/node_modules/browserify-zlib": { - "version": "0.2.0", - "integrity": "sha512-Z942RysHXmJrhqk88FmKBVq/v5tqmSkDz7p54G/MGyjMnCFFnC79XWNbg+Vta8W6Wb2qtSZTSxIGkJrRpCFEiA==", - "inBundle": true, - "dependencies": { - "pako": "~1.0.5" - } - }, - "node_modules/meteor-node-stubs/node_modules/buffer": { - "version": "5.7.1", - "integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], - "inBundle": true, - "dependencies": { - "base64-js": "^1.3.1", - "ieee754": "^1.1.13" - } - }, - "node_modules/meteor-node-stubs/node_modules/buffer-xor": { - "version": "1.0.3", - "integrity": "sha512-571s0T7nZWK6vB67HI5dyUF7wXiNcfaPPPTl6zYCNApANjIvYJTg7hlud/+cJpdAhS7dVzqMLmfhfHR3rAcOjQ==", - "inBundle": true - }, - "node_modules/meteor-node-stubs/node_modules/builtin-status-codes": { - "version": "3.0.0", - "integrity": "sha512-HpGFw18DgFWlncDfjTa2rcQ4W88O1mC8e8yZ2AvQY5KDaktSTwo+KRf6nHK6FRI5FyRyb/5T6+TSxfP7QyGsmQ==", - "inBundle": true - }, - "node_modules/meteor-node-stubs/node_modules/call-bind": { - "version": "1.0.7", - "integrity": "sha512-GHTSNSYICQ7scH7sZ+M2rFopRoLh8t2bLSW6BbgrtLsahOIB5iyAVJf9GjWK3cYTDaMj4XdBpM1cA6pIS0Kv2w==", - "inBundle": true, - "dependencies": { - "es-define-property": "^1.0.0", - "es-errors": "^1.3.0", - "function-bind": "^1.1.2", - "get-intrinsic": "^1.2.4", - "set-function-length": "^1.2.1" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/meteor-node-stubs/node_modules/cipher-base": { - "version": "1.0.4", - "integrity": "sha512-Kkht5ye6ZGmwv40uUDZztayT2ThLQGfnj/T71N/XzeZeo3nf8foyW7zGTsPYkEya3m5f3cAypH+qe7YOrM1U2Q==", - "inBundle": true, - "dependencies": { - "inherits": "^2.0.1", - "safe-buffer": "^5.0.1" - } - }, - "node_modules/meteor-node-stubs/node_modules/console-browserify": { - "version": "1.2.0", - "integrity": "sha512-ZMkYO/LkF17QvCPqM0gxw8yUzigAOZOSWSHg91FH6orS7vcEj5dVZTidN2fQ14yBSdg97RqhSNwLUXInd52OTA==", - "inBundle": true - }, - "node_modules/meteor-node-stubs/node_modules/constants-browserify": { - "version": "1.0.0", - "integrity": "sha512-xFxOwqIzR/e1k1gLiWEophSCMqXcwVHIH7akf7b/vxcUeGunlj3hvZaaqxwHsTgn+IndtkQJgSztIDWeumWJDQ==", - "inBundle": true - }, - "node_modules/meteor-node-stubs/node_modules/core-util-is": { - "version": "1.0.3", - "integrity": "sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==", - "inBundle": true - }, - "node_modules/meteor-node-stubs/node_modules/create-ecdh": { - "version": "4.0.4", - "integrity": "sha512-mf+TCx8wWc9VpuxfP2ht0iSISLZnt0JgWlrOKZiNqyUZWnjIaCIVNQArMHnCZKfEYRg6IM7A+NeJoN8gf/Ws0A==", - "inBundle": true, - "dependencies": { - "bn.js": "^4.1.0", - "elliptic": "^6.5.3" - } - }, - "node_modules/meteor-node-stubs/node_modules/create-ecdh/node_modules/bn.js": { - "version": "4.12.0", - "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==", - "inBundle": true - }, - "node_modules/meteor-node-stubs/node_modules/create-hash": { - "version": "1.2.0", - "integrity": "sha512-z00bCGNHDG8mHAkP7CtT1qVu+bFQUPjYq/4Iv3C3kWjTFV10zIjfSoeqXo9Asws8gwSHDGj/hl2u4OGIjapeCg==", - "inBundle": true, - "dependencies": { - "cipher-base": "^1.0.1", - "inherits": "^2.0.1", - "md5.js": "^1.3.4", - "ripemd160": "^2.0.1", - "sha.js": "^2.4.0" - } - }, - "node_modules/meteor-node-stubs/node_modules/create-hmac": { - "version": "1.1.7", - "integrity": "sha512-MJG9liiZ+ogc4TzUwuvbER1JRdgvUFSB5+VR/g5h82fGaIRWMWddtKBHi7/sVhfjQZ6SehlyhvQYrcYkaUIpLg==", - "inBundle": true, - "dependencies": { - "cipher-base": "^1.0.3", - "create-hash": "^1.1.0", - "inherits": "^2.0.1", - "ripemd160": "^2.0.0", - "safe-buffer": "^5.0.1", - "sha.js": "^2.4.8" - } - }, - "node_modules/meteor-node-stubs/node_modules/define-data-property": { - "version": "1.1.4", - "integrity": "sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==", - "inBundle": true, - "dependencies": { - "es-define-property": "^1.0.0", - "es-errors": "^1.3.0", - "gopd": "^1.0.1" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/meteor-node-stubs/node_modules/define-properties": { - "version": "1.2.1", - "integrity": "sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg==", - "inBundle": true, - "dependencies": { - "define-data-property": "^1.0.1", - "has-property-descriptors": "^1.0.0", - "object-keys": "^1.1.1" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/meteor-node-stubs/node_modules/des.js": { - "version": "1.0.1", - "integrity": "sha512-Q0I4pfFrv2VPd34/vfLrFOoRmlYj3OV50i7fskps1jZWK1kApMWWT9G6RRUeYedLcBDIhnSDaUvJMb3AhUlaEA==", - "inBundle": true, - "dependencies": { - "inherits": "^2.0.1", - "minimalistic-assert": "^1.0.0" - } - }, - "node_modules/meteor-node-stubs/node_modules/diffie-hellman": { - "version": "5.0.3", - "integrity": "sha512-kqag/Nl+f3GwyK25fhUMYj81BUOrZ9IuJsjIcDE5icNM9FJHAVm3VcUDxdLPoQtTuUylWm6ZIknYJwwaPxsUzg==", - "inBundle": true, - "dependencies": { - "bn.js": "^4.1.0", - "miller-rabin": "^4.0.0", - "randombytes": "^2.0.0" - } - }, - "node_modules/meteor-node-stubs/node_modules/diffie-hellman/node_modules/bn.js": { - "version": "4.12.0", - "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==", - "inBundle": true - }, - "node_modules/meteor-node-stubs/node_modules/domain-browser": { - "version": "4.23.0", - "integrity": "sha512-ArzcM/II1wCCujdCNyQjXrAFwS4mrLh4C7DZWlaI8mdh7h3BfKdNd3bKXITfl2PT9FtfQqaGvhi1vPRQPimjGA==", - "inBundle": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://bevry.me/fund" - } - }, - "node_modules/meteor-node-stubs/node_modules/elliptic": { - "version": "6.6.0", - "integrity": "sha512-dpwoQcLc/2WLQvJvLRHKZ+f9FgOdjnq11rurqwekGQygGPsYSK29OMMD2WalatiqQ+XGFDglTNixpPfI+lpaAA==", - "inBundle": true, - "dependencies": { - "bn.js": "^4.11.9", - "brorand": "^1.1.0", - "hash.js": "^1.0.0", - "hmac-drbg": "^1.0.1", - "inherits": "^2.0.4", - "minimalistic-assert": "^1.0.1", - "minimalistic-crypto-utils": "^1.0.1" - } - }, - "node_modules/meteor-node-stubs/node_modules/elliptic/node_modules/bn.js": { - "version": "4.12.0", - "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==", - "inBundle": true - }, - "node_modules/meteor-node-stubs/node_modules/es-define-property": { - "version": "1.0.0", - "integrity": "sha512-jxayLKShrEqqzJ0eumQbVhTYQM27CfT1T35+gCgDFoL82JLsXqTJ76zv6A0YLOgEnLUMvLzsDsGIrl8NFpT2gQ==", - "inBundle": true, - "dependencies": { - "get-intrinsic": "^1.2.4" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/meteor-node-stubs/node_modules/es-errors": { - "version": "1.3.0", - "integrity": "sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==", - "inBundle": true, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/meteor-node-stubs/node_modules/events": { - "version": "3.3.0", - "integrity": "sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==", - "inBundle": true, - "engines": { - "node": ">=0.8.x" - } - }, - "node_modules/meteor-node-stubs/node_modules/evp_bytestokey": { - "version": "1.0.3", - "integrity": "sha512-/f2Go4TognH/KvCISP7OUsHn85hT9nUkxxA9BEWxFn+Oj9o8ZNLm/40hdlgSLyuOimsrTKLUMEorQexp/aPQeA==", - "inBundle": true, - "dependencies": { - "md5.js": "^1.3.4", - "safe-buffer": "^5.1.1" - } - }, - "node_modules/meteor-node-stubs/node_modules/for-each": { - "version": "0.3.3", - "integrity": "sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw==", - "inBundle": true, - "dependencies": { - "is-callable": "^1.1.3" - } - }, - "node_modules/meteor-node-stubs/node_modules/function-bind": { - "version": "1.1.2", - "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==", - "inBundle": true, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/meteor-node-stubs/node_modules/get-intrinsic": { - "version": "1.2.4", - "integrity": "sha512-5uYhsJH8VJBTv7oslg4BznJYhDoRI6waYCxMmCdnTrcCrHA/fCFKoTFz2JKKE0HdDFUF7/oQuhzumXJK7paBRQ==", - "inBundle": true, - "dependencies": { - "es-errors": "^1.3.0", - "function-bind": "^1.1.2", - "has-proto": "^1.0.1", - "has-symbols": "^1.0.3", - "hasown": "^2.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/meteor-node-stubs/node_modules/gopd": { - "version": "1.0.1", - "integrity": "sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==", - "inBundle": true, - "dependencies": { - "get-intrinsic": "^1.1.3" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/meteor-node-stubs/node_modules/has-property-descriptors": { - "version": "1.0.2", - "integrity": "sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg==", - "inBundle": true, - "dependencies": { - "es-define-property": "^1.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/meteor-node-stubs/node_modules/has-proto": { - "version": "1.0.1", - "integrity": "sha512-7qE+iP+O+bgF9clE5+UoBFzE65mlBiVj3tKCrlNQ0Ogwm0BjpT/gK4SlLYDMybDh5I3TCTKnPPa0oMG7JDYrhg==", - "inBundle": true, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/meteor-node-stubs/node_modules/has-symbols": { - "version": "1.0.3", - "integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==", - "inBundle": true, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/meteor-node-stubs/node_modules/has-tostringtag": { - "version": "1.0.0", - "integrity": "sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ==", - "inBundle": true, - "dependencies": { - "has-symbols": "^1.0.2" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/meteor-node-stubs/node_modules/hash-base": { - "version": "3.1.0", - "integrity": "sha512-1nmYp/rhMDiE7AYkDw+lLwlAzz0AntGIe51F3RfFfEqyQ3feY2eI/NcwC6umIQVOASPMsWJLJScWKSSvzL9IVA==", - "inBundle": true, - "dependencies": { - "inherits": "^2.0.4", - "readable-stream": "^3.6.0", - "safe-buffer": "^5.2.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/meteor-node-stubs/node_modules/hash.js": { - "version": "1.1.7", - "integrity": "sha512-taOaskGt4z4SOANNseOviYDvjEJinIkRgmp7LbKP2YTTmVxWBl87s/uzK9r+44BclBSp2X7K1hqeNfz9JbBeXA==", - "inBundle": true, - "dependencies": { - "inherits": "^2.0.3", - "minimalistic-assert": "^1.0.1" - } - }, - "node_modules/meteor-node-stubs/node_modules/hasown": { - "version": "2.0.0", - "integrity": "sha512-vUptKVTpIJhcczKBbgnS+RtcuYMB8+oNzPK2/Hp3hanz8JmpATdmmgLgSaadVREkDm+e2giHwY3ZRkyjSIDDFA==", - "inBundle": true, - "dependencies": { - "function-bind": "^1.1.2" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/meteor-node-stubs/node_modules/hmac-drbg": { - "version": "1.0.1", - "integrity": "sha512-Tti3gMqLdZfhOQY1Mzf/AanLiqh1WTiJgEj26ZuYQ9fbkLomzGchCws4FyrSd4VkpBfiNhaE1On+lOz894jvXg==", - "inBundle": true, - "dependencies": { - "hash.js": "^1.0.3", - "minimalistic-assert": "^1.0.0", - "minimalistic-crypto-utils": "^1.0.1" - } - }, - "node_modules/meteor-node-stubs/node_modules/https-browserify": { - "version": "1.0.0", - "integrity": "sha512-J+FkSdyD+0mA0N+81tMotaRMfSL9SGi+xpD3T6YApKsc3bGSXJlfXri3VyFOeYkfLRQisDk1W+jIFFKBeUBbBg==", - "inBundle": true - }, - "node_modules/meteor-node-stubs/node_modules/ieee754": { - "version": "1.2.1", - "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], - "inBundle": true - }, - "node_modules/meteor-node-stubs/node_modules/inherits": { - "version": "2.0.4", - "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", - "inBundle": true - }, - "node_modules/meteor-node-stubs/node_modules/is-arguments": { - "version": "1.1.1", - "integrity": "sha512-8Q7EARjzEnKpt/PCD7e1cgUS0a6X8u5tdSiMqXhojOdoV9TsMsiO+9VLC5vAmO8N7/GmXn7yjR8qnA6bVAEzfA==", - "inBundle": true, - "dependencies": { - "call-bind": "^1.0.2", - "has-tostringtag": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/meteor-node-stubs/node_modules/is-callable": { - "version": "1.2.7", - "integrity": "sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==", - "inBundle": true, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/meteor-node-stubs/node_modules/is-generator-function": { - "version": "1.0.10", - "integrity": "sha512-jsEjy9l3yiXEQ+PsXdmBwEPcOxaXWLspKdplFUVI9vq1iZgIekeC0L167qeu86czQaxed3q/Uzuw0swL0irL8A==", - "inBundle": true, - "dependencies": { - "has-tostringtag": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/meteor-node-stubs/node_modules/is-nan": { - "version": "1.3.2", - "integrity": "sha512-E+zBKpQ2t6MEo1VsonYmluk9NxGrbzpeeLC2xIViuO2EjU2xsXsBPwTr3Ykv9l08UYEVEdWeRZNouaZqF6RN0w==", - "inBundle": true, - "dependencies": { - "call-bind": "^1.0.0", - "define-properties": "^1.1.3" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/meteor-node-stubs/node_modules/is-typed-array": { - "version": "1.1.12", - "integrity": "sha512-Z14TF2JNG8Lss5/HMqt0//T9JeHXttXy5pH/DBU4vi98ozO2btxzq9MwYDZYnKwU8nRsz/+GVFVRDq3DkVuSPg==", - "inBundle": true, - "dependencies": { - "which-typed-array": "^1.1.11" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/meteor-node-stubs/node_modules/isarray": { - "version": "1.0.0", - "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==", - "inBundle": true - }, - "node_modules/meteor-node-stubs/node_modules/md5.js": { - "version": "1.3.5", - "integrity": "sha512-xitP+WxNPcTTOgnTJcrhM0xvdPepipPSf3I8EIpGKeFLjt3PlJLIDG3u8EX53ZIubkb+5U2+3rELYpEhHhzdkg==", - "inBundle": true, - "dependencies": { - "hash-base": "^3.0.0", - "inherits": "^2.0.1", - "safe-buffer": "^5.1.2" - } - }, - "node_modules/meteor-node-stubs/node_modules/miller-rabin": { - "version": "4.0.1", - "integrity": "sha512-115fLhvZVqWwHPbClyntxEVfVDfl9DLLTuJvq3g2O/Oxi8AiNouAHvDSzHS0viUJc+V5vm3eq91Xwqn9dp4jRA==", - "inBundle": true, - "dependencies": { - "bn.js": "^4.0.0", - "brorand": "^1.0.1" - }, - "bin": { - "miller-rabin": "bin/miller-rabin" - } - }, - "node_modules/meteor-node-stubs/node_modules/miller-rabin/node_modules/bn.js": { - "version": "4.12.0", - "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==", - "inBundle": true - }, - "node_modules/meteor-node-stubs/node_modules/minimalistic-assert": { - "version": "1.0.1", - "integrity": "sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A==", - "inBundle": true - }, - "node_modules/meteor-node-stubs/node_modules/minimalistic-crypto-utils": { - "version": "1.0.1", - "integrity": "sha512-JIYlbt6g8i5jKfJ3xz7rF0LXmv2TkDxBLUkiBeZ7bAx4GnnNMr8xFpGnOxn6GhTEHx3SjRrZEoU+j04prX1ktg==", - "inBundle": true - }, - "node_modules/meteor-node-stubs/node_modules/object-inspect": { - "version": "1.13.2", - "integrity": "sha512-IRZSRuzJiynemAXPYtPe5BoI/RESNYR7TYm50MC5Mqbd3Jmw5y790sErYw3V6SryFJD64b74qQQs9wn5Bg/k3g==", - "inBundle": true, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/meteor-node-stubs/node_modules/object-is": { - "version": "1.1.5", - "integrity": "sha512-3cyDsyHgtmi7I7DfSSI2LDp6SK2lwvtbg0p0R1e0RvTqF5ceGx+K2dfSjm1bKDMVCFEDAQvy+o8c6a7VujOddw==", - "inBundle": true, - "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.3" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/meteor-node-stubs/node_modules/object-keys": { - "version": "1.1.1", - "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==", - "inBundle": true, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/meteor-node-stubs/node_modules/object.assign": { - "version": "4.1.4", - "integrity": "sha512-1mxKf0e58bvyjSCtKYY4sRe9itRk3PJpquJOjeIkz885CczcI4IvJJDLPS72oowuSh+pBxUFROpX+TU++hxhZQ==", - "inBundle": true, - "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.4", - "has-symbols": "^1.0.3", - "object-keys": "^1.1.1" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/meteor-node-stubs/node_modules/os-browserify": { - "version": "0.3.0", - "integrity": "sha512-gjcpUc3clBf9+210TRaDWbf+rZZZEshZ+DlXMRCeAjp0xhTrnQsKHypIy1J3d5hKdUzj69t708EHtU8P6bUn0A==", - "inBundle": true - }, - "node_modules/meteor-node-stubs/node_modules/pako": { - "version": "1.0.11", - "integrity": "sha512-4hLB8Py4zZce5s4yd9XzopqwVv/yGNhV1Bl8NTmCq1763HeK2+EwVTv+leGeL13Dnh2wfbqowVPXCIO0z4taYw==", - "inBundle": true - }, - "node_modules/meteor-node-stubs/node_modules/parse-asn1": { - "version": "5.1.7", - "integrity": "sha512-CTM5kuWR3sx9IFamcl5ErfPl6ea/N8IYwiJ+vpeB2g+1iknv7zBl5uPwbMbRVznRVbrNY6lGuDoE5b30grmbqg==", - "inBundle": true, - "dependencies": { - "asn1.js": "^4.10.1", - "browserify-aes": "^1.2.0", - "evp_bytestokey": "^1.0.3", - "hash-base": "~3.0", - "pbkdf2": "^3.1.2", - "safe-buffer": "^5.2.1" - }, - "engines": { - "node": ">= 0.10" - } - }, - "node_modules/meteor-node-stubs/node_modules/parse-asn1/node_modules/hash-base": { - "version": "3.0.4", - "integrity": "sha512-EeeoJKjTyt868liAlVmcv2ZsUfGHlE3Q+BICOXcZiwN3osr5Q/zFGYmTJpoIzuaSTAwndFy+GqhEwlU4L3j4Ow==", - "inBundle": true, - "dependencies": { - "inherits": "^2.0.1", - "safe-buffer": "^5.0.1" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/meteor-node-stubs/node_modules/path-browserify": { - "version": "1.0.1", - "integrity": "sha512-b7uo2UCUOYZcnF/3ID0lulOJi/bafxa1xPe7ZPsammBSpjSWQkjNxlt635YGS2MiR9GjvuXCtz2emr3jbsz98g==", - "inBundle": true - }, - "node_modules/meteor-node-stubs/node_modules/pbkdf2": { - "version": "3.1.2", - "integrity": "sha512-iuh7L6jA7JEGu2WxDwtQP1ddOpaJNC4KlDEFfdQajSGgGPNi4OyDc2R7QnbY2bR9QjBVGwgvTdNJZoE7RaxUMA==", - "inBundle": true, - "dependencies": { - "create-hash": "^1.1.2", - "create-hmac": "^1.1.4", - "ripemd160": "^2.0.1", - "safe-buffer": "^5.0.1", - "sha.js": "^2.4.8" - }, - "engines": { - "node": ">=0.12" - } - }, - "node_modules/meteor-node-stubs/node_modules/process": { - "version": "0.11.10", - "integrity": "sha512-cdGef/drWFoydD1JsMzuFf8100nZl+GT+yacc2bEced5f9Rjk4z+WtFUTBu9PhOi9j/jfmBPu0mMEY4wIdAF8A==", - "inBundle": true, - "engines": { - "node": ">= 0.6.0" - } - }, - "node_modules/meteor-node-stubs/node_modules/process-nextick-args": { - "version": "2.0.1", - "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==", - "inBundle": true - }, - "node_modules/meteor-node-stubs/node_modules/public-encrypt": { - "version": "4.0.3", - "integrity": "sha512-zVpa8oKZSz5bTMTFClc1fQOnyyEzpl5ozpi1B5YcvBrdohMjH2rfsBtyXcuNuwjsDIXmBYlF2N5FlJYhR29t8Q==", - "inBundle": true, - "dependencies": { - "bn.js": "^4.1.0", - "browserify-rsa": "^4.0.0", - "create-hash": "^1.1.0", - "parse-asn1": "^5.0.0", - "randombytes": "^2.0.1", - "safe-buffer": "^5.1.2" - } - }, - "node_modules/meteor-node-stubs/node_modules/public-encrypt/node_modules/bn.js": { - "version": "4.12.0", - "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==", - "inBundle": true - }, - "node_modules/meteor-node-stubs/node_modules/punycode": { - "version": "1.4.1", - "integrity": "sha512-jmYNElW7yvO7TV33CjSmvSiE2yco3bV2czu/OzDKdMNVZQWfxCblURLhf+47syQRBntjfLdd/H0egrzIG+oaFQ==", - "inBundle": true - }, - "node_modules/meteor-node-stubs/node_modules/qs": { - "version": "6.13.0", - "integrity": "sha512-+38qI9SOr8tfZ4QmJNplMUxqjbe7LKvvZgWdExBOmd+egZTtjLB67Gu0HRX3u/XOq7UU2Nx6nsjvS16Z9uwfpg==", - "inBundle": true, - "dependencies": { - "side-channel": "^1.0.6" - }, - "engines": { - "node": ">=0.6" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/meteor-node-stubs/node_modules/querystring-es3": { - "version": "0.2.1", - "integrity": "sha512-773xhDQnZBMFobEiztv8LIl70ch5MSF/jUQVlhwFyBILqq96anmoctVIYz+ZRp0qbCKATTn6ev02M3r7Ga5vqA==", - "inBundle": true, - "engines": { - "node": ">=0.4.x" - } - }, - "node_modules/meteor-node-stubs/node_modules/randombytes": { - "version": "2.1.0", - "integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==", - "inBundle": true, - "dependencies": { - "safe-buffer": "^5.1.0" - } - }, - "node_modules/meteor-node-stubs/node_modules/randomfill": { - "version": "1.0.4", - "integrity": "sha512-87lcbR8+MhcWcUiQ+9e+Rwx8MyR2P7qnt15ynUlbm3TU/fjbgz4GsvfSUDTemtCCtVCqb4ZcEFlyPNTh9bBTLw==", - "inBundle": true, - "dependencies": { - "randombytes": "^2.0.5", - "safe-buffer": "^5.1.0" - } - }, - "node_modules/meteor-node-stubs/node_modules/readable-stream": { - "version": "3.6.2", - "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==", - "inBundle": true, - "dependencies": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/meteor-node-stubs/node_modules/ripemd160": { - "version": "2.0.2", - "integrity": "sha512-ii4iagi25WusVoiC4B4lq7pbXfAp3D9v5CwfkY33vffw2+pkDjY1D8GaN7spsxvCSx8dkPqOZCEZyfxcmJG2IA==", - "inBundle": true, - "dependencies": { - "hash-base": "^3.0.0", - "inherits": "^2.0.1" - } - }, - "node_modules/meteor-node-stubs/node_modules/safe-buffer": { - "version": "5.2.1", - "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], - "inBundle": true - }, - "node_modules/meteor-node-stubs/node_modules/set-function-length": { - "version": "1.2.2", - "integrity": "sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg==", - "inBundle": true, - "dependencies": { - "define-data-property": "^1.1.4", - "es-errors": "^1.3.0", - "function-bind": "^1.1.2", - "get-intrinsic": "^1.2.4", - "gopd": "^1.0.1", - "has-property-descriptors": "^1.0.2" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/meteor-node-stubs/node_modules/setimmediate": { - "version": "1.0.5", - "integrity": "sha512-MATJdZp8sLqDl/68LfQmbP8zKPLQNV6BIZoIgrscFDQ+RsvK/BxeDQOgyxKKoh0y/8h3BqVFnCqQ/gd+reiIXA==", - "inBundle": true - }, - "node_modules/meteor-node-stubs/node_modules/sha.js": { - "version": "2.4.11", - "integrity": "sha512-QMEp5B7cftE7APOjk5Y6xgrbWu+WkLVQwk8JNjZ8nKRciZaByEW6MubieAiToS7+dwvrjGhH8jRXz3MVd0AYqQ==", - "inBundle": true, - "dependencies": { - "inherits": "^2.0.1", - "safe-buffer": "^5.0.1" - }, - "bin": { - "sha.js": "bin.js" - } - }, - "node_modules/meteor-node-stubs/node_modules/side-channel": { - "version": "1.0.6", - "integrity": "sha512-fDW/EZ6Q9RiO8eFG8Hj+7u/oW+XrPTIChwCOM2+th2A6OblDtYYIpve9m+KvI9Z4C9qSEXlaGR6bTEYHReuglA==", - "inBundle": true, - "dependencies": { - "call-bind": "^1.0.7", - "es-errors": "^1.3.0", - "get-intrinsic": "^1.2.4", - "object-inspect": "^1.13.1" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/meteor-node-stubs/node_modules/stream-browserify": { - "version": "3.0.0", - "integrity": "sha512-H73RAHsVBapbim0tU2JwwOiXUj+fikfiaoYAKHF3VJfA0pe2BCzkhAHBlLG6REzE+2WNZcxOXjK7lkso+9euLA==", - "inBundle": true, - "dependencies": { - "inherits": "~2.0.4", - "readable-stream": "^3.5.0" - } - }, - "node_modules/meteor-node-stubs/node_modules/stream-http": { - "version": "3.2.0", - "integrity": "sha512-Oq1bLqisTyK3TSCXpPbT4sdeYNdmyZJv1LxpEm2vu1ZhK89kSE5YXwZc3cWk0MagGaKriBh9mCFbVGtO+vY29A==", - "inBundle": true, - "dependencies": { - "builtin-status-codes": "^3.0.0", - "inherits": "^2.0.4", - "readable-stream": "^3.6.0", - "xtend": "^4.0.2" - } - }, - "node_modules/meteor-node-stubs/node_modules/string_decoder": { - "version": "1.3.0", - "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==", - "inBundle": true, - "dependencies": { - "safe-buffer": "~5.2.0" - } - }, - "node_modules/meteor-node-stubs/node_modules/timers-browserify": { - "version": "2.0.12", - "integrity": "sha512-9phl76Cqm6FhSX9Xe1ZUAMLtm1BLkKj2Qd5ApyWkXzsMRaA7dgr81kf4wJmQf/hAvg8EEyJxDo3du/0KlhPiKQ==", - "inBundle": true, - "dependencies": { - "setimmediate": "^1.0.4" - }, - "engines": { - "node": ">=0.6.0" - } - }, - "node_modules/meteor-node-stubs/node_modules/tty-browserify": { - "version": "0.0.1", - "integrity": "sha512-C3TaO7K81YvjCgQH9Q1S3R3P3BtN3RIM8n+OvX4il1K1zgE8ZhI0op7kClgkxtutIE8hQrcrHBXvIheqKUUCxw==", - "inBundle": true - }, - "node_modules/meteor-node-stubs/node_modules/url": { - "version": "0.11.4", - "integrity": "sha512-oCwdVC7mTuWiPyjLUz/COz5TLk6wgp0RCsN+wHZ2Ekneac9w8uuV0njcbbie2ME+Vs+d6duwmYuR3HgQXs1fOg==", - "inBundle": true, - "dependencies": { - "punycode": "^1.4.1", - "qs": "^6.12.3" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/meteor-node-stubs/node_modules/util": { - "version": "0.12.5", - "integrity": "sha512-kZf/K6hEIrWHI6XqOFUiiMa+79wE/D8Q+NCNAWclkyg3b4d2k7s0QGepNjiABc+aR3N1PAyHL7p6UcLY6LmrnA==", - "inBundle": true, - "dependencies": { - "inherits": "^2.0.3", - "is-arguments": "^1.0.4", - "is-generator-function": "^1.0.7", - "is-typed-array": "^1.1.3", - "which-typed-array": "^1.1.2" - } - }, - "node_modules/meteor-node-stubs/node_modules/util-deprecate": { - "version": "1.0.2", - "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==", - "inBundle": true - }, - "node_modules/meteor-node-stubs/node_modules/vm-browserify": { - "version": "1.1.2", - "integrity": "sha512-2ham8XPWTONajOR0ohOKOHXkm3+gaBmGut3SRuu75xLd/RRaY6vqgh8NBYYk7+RW3u5AtzPQZG8F10LHkl0lAQ==", - "inBundle": true - }, - "node_modules/meteor-node-stubs/node_modules/which-typed-array": { - "version": "1.1.13", - "integrity": "sha512-P5Nra0qjSncduVPEAr7xhoF5guty49ArDTwzJ/yNuPIbZppyRxFQsRCWrocxIY+CnMVG+qfbU2FmDKyvSGClow==", - "inBundle": true, - "dependencies": { - "available-typed-arrays": "^1.0.5", - "call-bind": "^1.0.4", - "for-each": "^0.3.3", - "gopd": "^1.0.1", - "has-tostringtag": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/meteor-node-stubs/node_modules/xtend": { - "version": "4.0.2", - "integrity": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==", - "inBundle": true, - "engines": { - "node": ">=0.4" } }, - "node_modules/mhchemparser": { + "mhchemparser": { "version": "4.2.1", "resolved": "https://registry.npmjs.org/mhchemparser/-/mhchemparser-4.2.1.tgz", "integrity": "sha512-kYmyrCirqJf3zZ9t/0wGgRZ4/ZJw//VwaRVGA75C4nhE60vtnIzhl9J9ndkX/h6hxSN7pjg/cE0VxbnNM+bnDQ==" }, - "node_modules/mime": { + "mime": { "version": "2.6.0", "resolved": "https://registry.npmjs.org/mime/-/mime-2.6.0.tgz", - "integrity": "sha512-USPkMeET31rOMiarsBNIHZKLGgvKc/LrjofAnBlOttf5ajRvqiRA8QsenbcooctK6d6Ts6aqZXBA+XbkKthiQg==", - "bin": { - "mime": "cli.js" - }, - "engines": { - "node": ">=4.0.0" - } + "integrity": "sha512-USPkMeET31rOMiarsBNIHZKLGgvKc/LrjofAnBlOttf5ajRvqiRA8QsenbcooctK6d6Ts6aqZXBA+XbkKthiQg==" }, - "node_modules/mime-db": { + "mime-db": { "version": "1.52.0", "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", - "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==", - "engines": { - "node": ">= 0.6" - } + "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==" }, - "node_modules/mime-types": { + "mime-types": { "version": "2.1.35", "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", - "dependencies": { + "requires": { "mime-db": "1.52.0" - }, - "engines": { - "node": ">= 0.6" } }, - "node_modules/minimatch": { + "minimatch": { "version": "3.1.2", "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", - "dependencies": { + "requires": { "brace-expansion": "^1.1.7" - }, - "engines": { - "node": "*" } }, - "node_modules/minimist": { + "minimist": { "version": "1.2.8", "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz", - "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==", - "funding": { - "url": "https://github.com/sponsors/ljharb" - } + "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==" }, - "node_modules/minio": { + "minio": { "version": "7.1.3", "resolved": "https://registry.npmjs.org/minio/-/minio-7.1.3.tgz", "integrity": "sha512-xPrLjWkTT5E7H7VnzOjF//xBp9I40jYB4aWhb2xTFopXXfw+Wo82DDWngdUju7Doy3Wk7R8C4LAgwhLHHnf0wA==", - "dependencies": { + "requires": { "async": "^3.2.4", "block-stream2": "^2.1.0", "browser-or-node": "^2.1.1", @@ -3074,861 +2234,637 @@ "web-encoding": "^1.1.5", "xml": "^1.0.1", "xml2js": "^0.5.0" - }, - "engines": { - "node": "^16 || ^18 || >=20" } }, - "node_modules/minipass": { + "minipass": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/minipass/-/minipass-5.0.0.tgz", - "integrity": "sha512-3FnjYuehv9k6ovOEbyOswadCDPX1piCfhV8ncmYtHOjuPwylVWsghTLo7rabjC3Rx5xD4HDx8Wm1xnMF7S5qFQ==", - "engines": { - "node": ">=8" - } + "integrity": "sha512-3FnjYuehv9k6ovOEbyOswadCDPX1piCfhV8ncmYtHOjuPwylVWsghTLo7rabjC3Rx5xD4HDx8Wm1xnMF7S5qFQ==" }, - "node_modules/minizlib": { + "minizlib": { "version": "2.1.2", "resolved": "https://registry.npmjs.org/minizlib/-/minizlib-2.1.2.tgz", "integrity": "sha512-bAxsR8BVfj60DWXHE3u30oHzfl4G7khkSuPW+qvpd7jFRHm7dLxOjUk1EHACJ/hxLY8phGJ0YhYHZo7jil7Qdg==", - "dependencies": { + "requires": { "minipass": "^3.0.0", "yallist": "^4.0.0" }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/minizlib/node_modules/minipass": { - "version": "3.3.6", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz", - "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==", "dependencies": { - "yallist": "^4.0.0" - }, - "engines": { - "node": ">=8" + "minipass": { + "version": "3.3.6", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz", + "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==", + "requires": { + "yallist": "^4.0.0" + } + } } }, - "node_modules/mj-context-menu": { + "mj-context-menu": { "version": "0.6.1", "resolved": "https://registry.npmjs.org/mj-context-menu/-/mj-context-menu-0.6.1.tgz", "integrity": "sha512-7NO5s6n10TIV96d4g2uDpG7ZDpIhMh0QNfGdJw/W47JswFcosz457wqz/b5sAKvl12sxINGFCn80NZHKwxQEXA==" }, - "node_modules/mkdirp": { + "mkdirp": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", - "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==", - "bin": { - "mkdirp": "bin/cmd.js" - }, - "engines": { - "node": ">=10" - } + "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==" }, - "node_modules/moment": { + "moment": { "version": "2.30.1", "resolved": "https://registry.npmjs.org/moment/-/moment-2.30.1.tgz", - "integrity": "sha512-uEmtNhbDOrWPFS+hdjFCBfy9f2YoyzRpwcl+DqpC6taX21FzsTLQVbMV/W7PzNSX6x/bhC1zA3c2UQ5NzH6how==", - "engines": { - "node": "*" - } + "integrity": "sha512-uEmtNhbDOrWPFS+hdjFCBfy9f2YoyzRpwcl+DqpC6taX21FzsTLQVbMV/W7PzNSX6x/bhC1zA3c2UQ5NzH6how==" }, - "node_modules/mongo-object": { + "mongo-object": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/mongo-object/-/mongo-object-3.0.1.tgz", - "integrity": "sha512-EbiwWHvKOF9xhIzuwaqknwPISdkHMipjMs6DiJFicupgBBLEhUs0OOro9MuPkFogB17DZlsV4KJhhxfqZ7ZRMQ==", - "engines": { - "node": ">=14.16", - "npm": ">=8" - } + "integrity": "sha512-EbiwWHvKOF9xhIzuwaqknwPISdkHMipjMs6DiJFicupgBBLEhUs0OOro9MuPkFogB17DZlsV4KJhhxfqZ7ZRMQ==" }, - "node_modules/ms": { + "ms": { "version": "2.1.2", "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" }, - "node_modules/nise": { + "nise": { "version": "5.1.5", "resolved": "https://registry.npmjs.org/nise/-/nise-5.1.5.tgz", "integrity": "sha512-VJuPIfUFaXNRzETTQEEItTOP8Y171ijr+JLq42wHes3DiryR8vT+1TXQW/Rx8JNUhyYYWyIvjXTU6dOhJcs9Nw==", "dev": true, - "dependencies": { + "requires": { "@sinonjs/commons": "^2.0.0", "@sinonjs/fake-timers": "^10.0.2", "@sinonjs/text-encoding": "^0.7.1", "just-extend": "^4.0.2", "path-to-regexp": "^1.7.0" - } - }, - "node_modules/nise/node_modules/@sinonjs/commons": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/@sinonjs/commons/-/commons-2.0.0.tgz", - "integrity": "sha512-uLa0j859mMrg2slwQYdO/AkrOfmH+X6LTVmNTS9CqexuE2IvVORIkSpJLqePAbEnKJ77aMmCwr1NUZ57120Xcg==", - "dev": true, - "dependencies": { - "type-detect": "4.0.8" - } - }, - "node_modules/nise/node_modules/@sinonjs/fake-timers": { - "version": "10.3.0", - "resolved": "https://registry.npmjs.org/@sinonjs/fake-timers/-/fake-timers-10.3.0.tgz", - "integrity": "sha512-V4BG07kuYSUkTCSBHG8G8TNhM+F19jXFWnQtzj+we8DrkpSBCee9Z3Ms8yiGer/dlmhe35/Xdgyo3/0rQKg7YA==", - "dev": true, - "dependencies": { - "@sinonjs/commons": "^3.0.0" - } - }, - "node_modules/nise/node_modules/@sinonjs/fake-timers/node_modules/@sinonjs/commons": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/@sinonjs/commons/-/commons-3.0.0.tgz", - "integrity": "sha512-jXBtWAF4vmdNmZgD5FoKsVLv3rPgDnLgPbU84LIJ3otV44vJlDRokVng5v8NFJdCf/da9legHcKaRuZs4L7faA==", - "dev": true, - "dependencies": { - "type-detect": "4.0.8" - } - }, - "node_modules/nise/node_modules/isarray": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", - "integrity": "sha512-D2S+3GLxWH+uhrNEcoh/fnmYeP8E8/zHl644d/jdA0g2uyXvy3sb0qxotE+ne0LtccHknQzWwZEzhak7oJ0COQ==", - "dev": true - }, - "node_modules/nise/node_modules/path-to-regexp": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-1.9.0.tgz", - "integrity": "sha512-xIp7/apCFJuUHdDLWe8O1HIkb0kQrOMb/0u6FXQjemHn/ii5LrIzU6bdECnsiTF/GjZkMEKg1xdiZwNqDYlZ6g==", - "dev": true, - "dependencies": { - "isarray": "0.0.1" - } - }, - "node_modules/node-fetch": { - "version": "2.7.0", - "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.7.0.tgz", - "integrity": "sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A==", - "dependencies": { - "whatwg-url": "^5.0.0" }, - "engines": { - "node": "4.x || >=6.0.0" - }, - "peerDependencies": { - "encoding": "^0.1.0" - }, - "peerDependenciesMeta": { - "encoding": { - "optional": true + "dependencies": { + "@sinonjs/commons": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/@sinonjs/commons/-/commons-2.0.0.tgz", + "integrity": "sha512-uLa0j859mMrg2slwQYdO/AkrOfmH+X6LTVmNTS9CqexuE2IvVORIkSpJLqePAbEnKJ77aMmCwr1NUZ57120Xcg==", + "dev": true, + "requires": { + "type-detect": "4.0.8" + } + }, + "@sinonjs/fake-timers": { + "version": "10.3.0", + "resolved": "https://registry.npmjs.org/@sinonjs/fake-timers/-/fake-timers-10.3.0.tgz", + "integrity": "sha512-V4BG07kuYSUkTCSBHG8G8TNhM+F19jXFWnQtzj+we8DrkpSBCee9Z3Ms8yiGer/dlmhe35/Xdgyo3/0rQKg7YA==", + "dev": true, + "requires": { + "@sinonjs/commons": "^3.0.0" + }, + "dependencies": { + "@sinonjs/commons": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@sinonjs/commons/-/commons-3.0.0.tgz", + "integrity": "sha512-jXBtWAF4vmdNmZgD5FoKsVLv3rPgDnLgPbU84LIJ3otV44vJlDRokVng5v8NFJdCf/da9legHcKaRuZs4L7faA==", + "dev": true, + "requires": { + "type-detect": "4.0.8" + } + } + } + }, + "isarray": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", + "integrity": "sha512-D2S+3GLxWH+uhrNEcoh/fnmYeP8E8/zHl644d/jdA0g2uyXvy3sb0qxotE+ne0LtccHknQzWwZEzhak7oJ0COQ==", + "dev": true + }, + "path-to-regexp": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-1.9.0.tgz", + "integrity": "sha512-xIp7/apCFJuUHdDLWe8O1HIkb0kQrOMb/0u6FXQjemHn/ii5LrIzU6bdECnsiTF/GjZkMEKg1xdiZwNqDYlZ6g==", + "dev": true, + "requires": { + "isarray": "0.0.1" + } } } }, - "node_modules/nopt": { + "node-fetch": { + "version": "2.7.0", + "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.7.0.tgz", + "integrity": "sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A==", + "requires": { + "whatwg-url": "^5.0.0" + } + }, + "nopt": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/nopt/-/nopt-5.0.0.tgz", "integrity": "sha512-Tbj67rffqceeLpcRXrT7vKAN8CwfPeIBgM7E6iBkmKLV7bEMwpGgYLGv0jACUsECaa/vuxP0IjEont6umdMgtQ==", - "dependencies": { + "requires": { "abbrev": "1" - }, - "bin": { - "nopt": "bin/nopt.js" - }, - "engines": { - "node": ">=6" } }, - "node_modules/normalize-path": { + "normalize-path": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", - "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", - "engines": { - "node": ">=0.10.0" - } + "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==" }, - "node_modules/npmlog": { + "npmlog": { "version": "5.0.1", "resolved": "https://registry.npmjs.org/npmlog/-/npmlog-5.0.1.tgz", "integrity": "sha512-AqZtDUWOMKs1G/8lwylVjrdYgqA4d9nu8hc+0gzRxlDb1I10+FHBGMXs6aiQHFdCUUlqH99MUMuLfzWDNDtfxw==", - "deprecated": "This package is no longer supported.", - "dependencies": { + "requires": { "are-we-there-yet": "^2.0.0", "console-control-strings": "^1.1.0", "gauge": "^3.0.0", "set-blocking": "^2.0.0" } }, - "node_modules/nth-check": { + "nth-check": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/nth-check/-/nth-check-2.1.1.tgz", "integrity": "sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w==", - "dependencies": { + "requires": { "boolbase": "^1.0.0" - }, - "funding": { - "url": "https://github.com/fb55/nth-check?sponsor=1" } }, - "node_modules/object-assign": { + "object-assign": { "version": "4.1.1", "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", - "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==", - "engines": { - "node": ">=0.10.0" - } + "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==" }, - "node_modules/object-inspect": { + "object-inspect": { "version": "1.13.2", "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.13.2.tgz", - "integrity": "sha512-IRZSRuzJiynemAXPYtPe5BoI/RESNYR7TYm50MC5Mqbd3Jmw5y790sErYw3V6SryFJD64b74qQQs9wn5Bg/k3g==", - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } + "integrity": "sha512-IRZSRuzJiynemAXPYtPe5BoI/RESNYR7TYm50MC5Mqbd3Jmw5y790sErYw3V6SryFJD64b74qQQs9wn5Bg/k3g==" }, - "node_modules/once": { + "once": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", - "dependencies": { + "requires": { "wrappy": "1" } }, - "node_modules/os": { + "os": { "version": "0.1.2", "resolved": "https://registry.npmjs.org/os/-/os-0.1.2.tgz", "integrity": "sha512-ZoXJkvAnljwvc56MbvhtKVWmSkzV712k42Is2mA0+0KTSRakq5XXuXpjZjgAt9ctzl51ojhQWakQQpmOvXWfjQ==" }, - "node_modules/pako": { + "pako": { "version": "1.0.11", "resolved": "https://registry.npmjs.org/pako/-/pako-1.0.11.tgz", "integrity": "sha512-4hLB8Py4zZce5s4yd9XzopqwVv/yGNhV1Bl8NTmCq1763HeK2+EwVTv+leGeL13Dnh2wfbqowVPXCIO0z4taYw==" }, - "node_modules/papaparse": { + "papaparse": { "version": "5.4.1", "resolved": "https://registry.npmjs.org/papaparse/-/papaparse-5.4.1.tgz", "integrity": "sha512-HipMsgJkZu8br23pW15uvo6sib6wne/4woLZPlFf3rpDyMe9ywEXUsuD7+6K9PRkJlVT51j/sCOYDKGGS3ZJrw==" }, - "node_modules/parse-ms": { + "parse-ms": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/parse-ms/-/parse-ms-2.1.0.tgz", - "integrity": "sha512-kHt7kzLoS9VBZfUsiKjv43mr91ea+U05EyKkEtqp7vNbHxmaVuEqN7XxeEVnGrMtYOAxGrDElSi96K7EgO1zCA==", - "engines": { - "node": ">=6" - } + "integrity": "sha512-kHt7kzLoS9VBZfUsiKjv43mr91ea+U05EyKkEtqp7vNbHxmaVuEqN7XxeEVnGrMtYOAxGrDElSi96K7EgO1zCA==" }, - "node_modules/parse5": { + "parse5": { "version": "6.0.1", "resolved": "https://registry.npmjs.org/parse5/-/parse5-6.0.1.tgz", "integrity": "sha512-Ofn/CTFzRGTTxwpNEs9PP93gXShHcTq255nzRYSKe8AkVpZY7e1fpmTfOyoIvjP5HG7Z2ZM7VS9PPhQGW2pOpw==" }, - "node_modules/parse5-htmlparser2-tree-adapter": { + "parse5-htmlparser2-tree-adapter": { "version": "6.0.1", "resolved": "https://registry.npmjs.org/parse5-htmlparser2-tree-adapter/-/parse5-htmlparser2-tree-adapter-6.0.1.tgz", "integrity": "sha512-qPuWvbLgvDGilKc5BoicRovlT4MtYT6JfJyBOMDsKoiT+GiuP5qyrPCnR9HcPECIJJmZh5jRndyNThnhhb/vlA==", - "dependencies": { + "requires": { "parse5": "^6.0.1" } }, - "node_modules/path-is-absolute": { + "path-is-absolute": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", - "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==", - "engines": { - "node": ">=0.10.0" - } + "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==" }, - "node_modules/peek-readable": { + "peek-readable": { "version": "4.1.0", "resolved": "https://registry.npmjs.org/peek-readable/-/peek-readable-4.1.0.tgz", - "integrity": "sha512-ZI3LnwUv5nOGbQzD9c2iDG6toheuXSZP5esSHBjopsXH4dg19soufvpUGA3uohi5anFtGb2lhAVdHzH6R/Evvg==", - "engines": { - "node": ">=8" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/Borewit" - } + "integrity": "sha512-ZI3LnwUv5nOGbQzD9c2iDG6toheuXSZP5esSHBjopsXH4dg19soufvpUGA3uohi5anFtGb2lhAVdHzH6R/Evvg==" }, - "node_modules/precond": { + "precond": { "version": "0.2.3", "resolved": "https://registry.npmjs.org/precond/-/precond-0.2.3.tgz", - "integrity": "sha512-QCYG84SgGyGzqJ/vlMsxeXd/pgL/I94ixdNFyh1PusWmTCyVfPJjZ1K1jvHtsbfnXQs2TSkEP2fR7QiMZAnKFQ==", - "engines": { - "node": ">= 0.6" - } + "integrity": "sha512-QCYG84SgGyGzqJ/vlMsxeXd/pgL/I94ixdNFyh1PusWmTCyVfPJjZ1K1jvHtsbfnXQs2TSkEP2fR7QiMZAnKFQ==" }, - "node_modules/pretty-ms": { + "pretty-ms": { "version": "7.0.1", "resolved": "https://registry.npmjs.org/pretty-ms/-/pretty-ms-7.0.1.tgz", "integrity": "sha512-973driJZvxiGOQ5ONsFhOF/DtzPMOMtgC11kCpUrPGMTgqp2q/1gwzCquocrN33is0VZ5GFHXZYMM9l6h67v2Q==", - "dependencies": { + "requires": { "parse-ms": "^2.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/process-nextick-args": { + "process-nextick-args": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==" }, - "node_modules/punycode": { + "punycode": { "version": "2.3.1", "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.1.tgz", - "integrity": "sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==", - "engines": { - "node": ">=6" - } + "integrity": "sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==" }, - "node_modules/qs": { + "qs": { "version": "6.13.0", "resolved": "https://registry.npmjs.org/qs/-/qs-6.13.0.tgz", "integrity": "sha512-+38qI9SOr8tfZ4QmJNplMUxqjbe7LKvvZgWdExBOmd+egZTtjLB67Gu0HRX3u/XOq7UU2Nx6nsjvS16Z9uwfpg==", - "dependencies": { + "requires": { "side-channel": "^1.0.6" - }, - "engines": { - "node": ">=0.6" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/query-string": { + "query-string": { "version": "7.1.3", "resolved": "https://registry.npmjs.org/query-string/-/query-string-7.1.3.tgz", "integrity": "sha512-hh2WYhq4fi8+b+/2Kg9CEge4fDPvHS534aOOvOZeQ3+Vf2mCFsaFBYj0i+iXcAq6I9Vzp5fjMFBlONvayDC1qg==", - "dependencies": { + "requires": { "decode-uri-component": "^0.2.2", "filter-obj": "^1.1.0", "split-on-first": "^1.0.0", "strict-uri-encode": "^2.0.0" - }, - "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/readable-stream": { + "readable-stream": { "version": "3.6.2", "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz", "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==", - "dependencies": { + "requires": { "inherits": "^2.0.3", "string_decoder": "^1.1.1", "util-deprecate": "^1.0.1" - }, - "engines": { - "node": ">= 6" } }, - "node_modules/readable-web-to-node-stream": { + "readable-web-to-node-stream": { "version": "3.0.2", "resolved": "https://registry.npmjs.org/readable-web-to-node-stream/-/readable-web-to-node-stream-3.0.2.tgz", "integrity": "sha512-ePeK6cc1EcKLEhJFt/AebMCLL+GgSKhuygrZ/GLaKZYEecIgIECf4UaUuaByiGtzckwR4ain9VzUh95T1exYGw==", - "dependencies": { + "requires": { "readable-stream": "^3.6.0" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/Borewit" } }, - "node_modules/readdir-glob": { + "readdir-glob": { "version": "1.1.3", "resolved": "https://registry.npmjs.org/readdir-glob/-/readdir-glob-1.1.3.tgz", "integrity": "sha512-v05I2k7xN8zXvPD9N+z/uhXPaj0sUFCe2rcWZIpBsqxfP7xXFQ0tipAd/wjj1YxWyWtUS5IDJpOG82JKt2EAVA==", - "dependencies": { + "requires": { "minimatch": "^5.1.0" - } - }, - "node_modules/readdir-glob/node_modules/brace-expansion": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", - "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", - "dependencies": { - "balanced-match": "^1.0.0" - } - }, - "node_modules/readdir-glob/node_modules/minimatch": { - "version": "5.1.6", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.6.tgz", - "integrity": "sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==", - "dependencies": { - "brace-expansion": "^2.0.1" }, - "engines": { - "node": ">=10" + "dependencies": { + "brace-expansion": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "requires": { + "balanced-match": "^1.0.0" + } + }, + "minimatch": { + "version": "5.1.6", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.6.tgz", + "integrity": "sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==", + "requires": { + "brace-expansion": "^2.0.1" + } + } } }, - "node_modules/regenerator-runtime": { + "regenerator-runtime": { "version": "0.14.1", "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.14.1.tgz", "integrity": "sha512-dYnhHh0nJoMfnkZs6GmmhFknAGRrLznOu5nc9ML+EJxGvrx6H7teuevqVqCuPcPK//3eDrrjQhehXVx9cnkGdw==" }, - "node_modules/rimraf": { + "rimraf": { "version": "3.0.2", "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", - "deprecated": "Rimraf versions prior to v4 are no longer supported", - "dependencies": { + "requires": { "glob": "^7.1.3" - }, - "bin": { - "rimraf": "bin.js" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" } }, - "node_modules/safe-buffer": { + "safe-buffer": { "version": "5.2.1", "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", - "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ] + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==" }, - "node_modules/safer-buffer": { + "safer-buffer": { "version": "2.1.2", "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==" }, - "node_modules/sax": { + "sax": { "version": "1.3.0", "resolved": "https://registry.npmjs.org/sax/-/sax-1.3.0.tgz", "integrity": "sha512-0s+oAmw9zLl1V1cS9BtZN7JAd0cW5e0QH4W3LWEK6a4LaLEA2OTpGYWDY+6XasBLtz6wkm3u1xRw95mRuJ59WA==" }, - "node_modules/saxes": { + "saxes": { "version": "5.0.1", "resolved": "https://registry.npmjs.org/saxes/-/saxes-5.0.1.tgz", "integrity": "sha512-5LBh1Tls8c9xgGjw3QrMwETmTMVk0oFgvrFSvWx62llR2hcEInrKNZ2GZCCuuy2lvWrdl5jhbpeqc5hRYKFOcw==", - "dependencies": { + "requires": { "xmlchars": "^2.2.0" - }, - "engines": { - "node": ">=10" } }, - "node_modules/semver": { + "semver": { "version": "7.5.4", "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz", "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==", - "dependencies": { + "requires": { "lru-cache": "^6.0.0" - }, - "bin": { - "semver": "bin/semver.js" - }, - "engines": { - "node": ">=10" } }, - "node_modules/set-blocking": { + "set-blocking": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", "integrity": "sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw==" }, - "node_modules/set-function-length": { + "set-function-length": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/set-function-length/-/set-function-length-1.1.1.tgz", "integrity": "sha512-VoaqjbBJKiWtg4yRcKBQ7g7wnGnLV3M8oLvVWwOk2PdYY6PEFegR1vezXR0tw6fZGF9csVakIRjrJiy2veSBFQ==", - "dependencies": { + "requires": { "define-data-property": "^1.1.1", "get-intrinsic": "^1.2.1", "gopd": "^1.0.1", "has-property-descriptors": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" } }, - "node_modules/setimmediate": { + "setimmediate": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.5.tgz", "integrity": "sha512-MATJdZp8sLqDl/68LfQmbP8zKPLQNV6BIZoIgrscFDQ+RsvK/BxeDQOgyxKKoh0y/8h3BqVFnCqQ/gd+reiIXA==" }, - "node_modules/side-channel": { + "side-channel": { "version": "1.0.6", "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.6.tgz", "integrity": "sha512-fDW/EZ6Q9RiO8eFG8Hj+7u/oW+XrPTIChwCOM2+th2A6OblDtYYIpve9m+KvI9Z4C9qSEXlaGR6bTEYHReuglA==", - "dependencies": { + "requires": { "call-bind": "^1.0.7", "es-errors": "^1.3.0", "get-intrinsic": "^1.2.4", "object-inspect": "^1.13.1" }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/side-channel/node_modules/call-bind": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.7.tgz", - "integrity": "sha512-GHTSNSYICQ7scH7sZ+M2rFopRoLh8t2bLSW6BbgrtLsahOIB5iyAVJf9GjWK3cYTDaMj4XdBpM1cA6pIS0Kv2w==", "dependencies": { - "es-define-property": "^1.0.0", - "es-errors": "^1.3.0", - "function-bind": "^1.1.2", - "get-intrinsic": "^1.2.4", - "set-function-length": "^1.2.1" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "call-bind": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.7.tgz", + "integrity": "sha512-GHTSNSYICQ7scH7sZ+M2rFopRoLh8t2bLSW6BbgrtLsahOIB5iyAVJf9GjWK3cYTDaMj4XdBpM1cA6pIS0Kv2w==", + "requires": { + "es-define-property": "^1.0.0", + "es-errors": "^1.3.0", + "function-bind": "^1.1.2", + "get-intrinsic": "^1.2.4", + "set-function-length": "^1.2.1" + } + }, + "define-data-property": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/define-data-property/-/define-data-property-1.1.4.tgz", + "integrity": "sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==", + "requires": { + "es-define-property": "^1.0.0", + "es-errors": "^1.3.0", + "gopd": "^1.0.1" + } + }, + "get-intrinsic": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.4.tgz", + "integrity": "sha512-5uYhsJH8VJBTv7oslg4BznJYhDoRI6waYCxMmCdnTrcCrHA/fCFKoTFz2JKKE0HdDFUF7/oQuhzumXJK7paBRQ==", + "requires": { + "es-errors": "^1.3.0", + "function-bind": "^1.1.2", + "has-proto": "^1.0.1", + "has-symbols": "^1.0.3", + "hasown": "^2.0.0" + } + }, + "has-property-descriptors": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.2.tgz", + "integrity": "sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg==", + "requires": { + "es-define-property": "^1.0.0" + } + }, + "set-function-length": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/set-function-length/-/set-function-length-1.2.2.tgz", + "integrity": "sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg==", + "requires": { + "define-data-property": "^1.1.4", + "es-errors": "^1.3.0", + "function-bind": "^1.1.2", + "get-intrinsic": "^1.2.4", + "gopd": "^1.0.1", + "has-property-descriptors": "^1.0.2" + } + } } }, - "node_modules/side-channel/node_modules/define-data-property": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/define-data-property/-/define-data-property-1.1.4.tgz", - "integrity": "sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==", - "dependencies": { - "es-define-property": "^1.0.0", - "es-errors": "^1.3.0", - "gopd": "^1.0.1" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/side-channel/node_modules/get-intrinsic": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.4.tgz", - "integrity": "sha512-5uYhsJH8VJBTv7oslg4BznJYhDoRI6waYCxMmCdnTrcCrHA/fCFKoTFz2JKKE0HdDFUF7/oQuhzumXJK7paBRQ==", - "dependencies": { - "es-errors": "^1.3.0", - "function-bind": "^1.1.2", - "has-proto": "^1.0.1", - "has-symbols": "^1.0.3", - "hasown": "^2.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/side-channel/node_modules/has-property-descriptors": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.2.tgz", - "integrity": "sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg==", - "dependencies": { - "es-define-property": "^1.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/side-channel/node_modules/set-function-length": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/set-function-length/-/set-function-length-1.2.2.tgz", - "integrity": "sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg==", - "dependencies": { - "define-data-property": "^1.1.4", - "es-errors": "^1.3.0", - "function-bind": "^1.1.2", - "get-intrinsic": "^1.2.4", - "gopd": "^1.0.1", - "has-property-descriptors": "^1.0.2" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/signal-exit": { + "signal-exit": { "version": "3.0.7", "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==" }, - "node_modules/simpl-schema": { + "simpl-schema": { "version": "3.4.6", "resolved": "https://registry.npmjs.org/simpl-schema/-/simpl-schema-3.4.6.tgz", "integrity": "sha512-xgShTrNzktC1TTgizSjyDHrxs0bmZa1b9sso54cL8xwO2OloVhtHjfO73/dAK9OFzUIWCBTpKMpD12JPTgVimA==", - "dependencies": { + "requires": { "clone": "^2.1.2", "mongo-object": "^3.0.1" - }, - "engines": { - "node": ">=14.16", - "npm": ">=8" } }, - "node_modules/sinon": { + "sinon": { "version": "13.0.2", "resolved": "https://registry.npmjs.org/sinon/-/sinon-13.0.2.tgz", "integrity": "sha512-KvOrztAVqzSJWMDoxM4vM+GPys1df2VBoXm+YciyB/OLMamfS3VXh3oGh5WtrAGSzrgczNWFFY22oKb7Fi5eeA==", - "deprecated": "16.1.1", "dev": true, - "dependencies": { + "requires": { "@sinonjs/commons": "^1.8.3", "@sinonjs/fake-timers": "^9.1.2", "@sinonjs/samsam": "^6.1.1", "diff": "^5.0.0", "nise": "^5.1.1", "supports-color": "^7.2.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/sinon" } }, - "node_modules/slick": { + "slick": { "version": "1.12.2", "resolved": "https://registry.npmjs.org/slick/-/slick-1.12.2.tgz", - "integrity": "sha512-4qdtOGcBjral6YIBCWJ0ljFSKNLz9KkhbWtuGvUyRowl1kxfuE1x/Z/aJcaiilpb3do9bl5K7/1h9XC5wWpY/A==", - "engines": { - "node": "*" - } + "integrity": "sha512-4qdtOGcBjral6YIBCWJ0ljFSKNLz9KkhbWtuGvUyRowl1kxfuE1x/Z/aJcaiilpb3do9bl5K7/1h9XC5wWpY/A==" }, - "node_modules/source-map": { + "source-map": { "version": "0.6.1", "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "engines": { - "node": ">=0.10.0" - } + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==" }, - "node_modules/source-map-support": { + "source-map-support": { "version": "0.5.21", "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.21.tgz", "integrity": "sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==", - "dependencies": { + "requires": { "buffer-from": "^1.0.0", "source-map": "^0.6.0" } }, - "node_modules/speech-rule-engine": { + "speech-rule-engine": { "version": "4.0.7", "resolved": "https://registry.npmjs.org/speech-rule-engine/-/speech-rule-engine-4.0.7.tgz", "integrity": "sha512-sJrL3/wHzNwJRLBdf6CjJWIlxC04iYKkyXvYSVsWVOiC2DSkHmxsqOhEeMsBA9XK+CHuNcsdkbFDnoUfAsmp9g==", - "dependencies": { + "requires": { "commander": "9.2.0", "wicked-good-xpath": "1.3.0", "xmldom-sre": "0.1.31" }, - "bin": { - "sre": "bin/sre" + "dependencies": { + "commander": { + "version": "9.2.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-9.2.0.tgz", + "integrity": "sha512-e2i4wANQiSXgnrBlIatyHtP1odfUp0BbV5Y5nEGbxtIrStkEOAAzCUirvLBNXHLr7kwLvJl6V+4V3XV9x7Wd9w==" + } } }, - "node_modules/speech-rule-engine/node_modules/commander": { - "version": "9.2.0", - "resolved": "https://registry.npmjs.org/commander/-/commander-9.2.0.tgz", - "integrity": "sha512-e2i4wANQiSXgnrBlIatyHtP1odfUp0BbV5Y5nEGbxtIrStkEOAAzCUirvLBNXHLr7kwLvJl6V+4V3XV9x7Wd9w==", - "engines": { - "node": "^12.20.0 || >=14" - } - }, - "node_modules/split-on-first": { + "split-on-first": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/split-on-first/-/split-on-first-1.1.0.tgz", - "integrity": "sha512-43ZssAJaMusuKWL8sKUBQXHWOpq8d6CfN/u1p4gUzfJkM05C8rxTmYrkIPTXapZpORA6LkkzcUulJ8FqA7Uudw==", - "engines": { - "node": ">=6" - } + "integrity": "sha512-43ZssAJaMusuKWL8sKUBQXHWOpq8d6CfN/u1p4gUzfJkM05C8rxTmYrkIPTXapZpORA6LkkzcUulJ8FqA7Uudw==" }, - "node_modules/strict-uri-encode": { + "strict-uri-encode": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/strict-uri-encode/-/strict-uri-encode-2.0.0.tgz", - "integrity": "sha512-QwiXZgpRcKkhTj2Scnn++4PKtWsH0kpzZ62L2R6c/LUVYv7hVnZqcg2+sMuT6R7Jusu1vviK/MFsu6kNJfWlEQ==", - "engines": { - "node": ">=4" - } + "integrity": "sha512-QwiXZgpRcKkhTj2Scnn++4PKtWsH0kpzZ62L2R6c/LUVYv7hVnZqcg2+sMuT6R7Jusu1vviK/MFsu6kNJfWlEQ==" }, - "node_modules/string_decoder": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz", - "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==", - "dependencies": { - "safe-buffer": "~5.2.0" - } - }, - "node_modules/string-width": { + "string-width": { "version": "4.2.3", "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", - "dependencies": { + "requires": { "emoji-regex": "^8.0.0", "is-fullwidth-code-point": "^3.0.0", "strip-ansi": "^6.0.1" - }, - "engines": { - "node": ">=8" } }, - "node_modules/strip-ansi": { + "string_decoder": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz", + "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==", + "requires": { + "safe-buffer": "~5.2.0" + } + }, + "strip-ansi": { "version": "6.0.1", "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", - "dependencies": { + "requires": { "ansi-regex": "^5.0.1" - }, - "engines": { - "node": ">=8" } }, - "node_modules/strnum": { + "strnum": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/strnum/-/strnum-1.0.5.tgz", "integrity": "sha512-J8bbNyKKXl5qYcR36TIO8W3mVGVHrmmxsd5PAItGkmyzwJvybiw2IVq5nqd0i4LSNSkB/sx9VHllbfFdr9k1JA==" }, - "node_modules/strtok3": { + "strtok3": { "version": "6.3.0", "resolved": "https://registry.npmjs.org/strtok3/-/strtok3-6.3.0.tgz", "integrity": "sha512-fZtbhtvI9I48xDSywd/somNqgUHl2L2cstmXCCif0itOf96jeW18MBSyrLuNicYQVkvpOxkZtkzujiTJ9LW5Jw==", - "dependencies": { + "requires": { "@tokenizer/token": "^0.3.0", "peek-readable": "^4.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/Borewit" } }, - "node_modules/supports-color": { + "supports-color": { "version": "7.2.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", "dev": true, - "dependencies": { + "requires": { "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" } }, - "node_modules/tar": { + "tar": { "version": "6.2.1", "resolved": "https://registry.npmjs.org/tar/-/tar-6.2.1.tgz", "integrity": "sha512-DZ4yORTwrbTj/7MZYq2w+/ZFdI6OZ/f9SFHR+71gIVUZhOQPHzVCLpvRnPgyaMpfWxxk/4ONva3GQSyNIKRv6A==", - "dependencies": { + "requires": { "chownr": "^2.0.0", "fs-minipass": "^2.0.0", "minipass": "^5.0.0", "minizlib": "^2.1.1", "mkdirp": "^1.0.3", "yallist": "^4.0.0" - }, - "engines": { - "node": ">=10" } }, - "node_modules/tar-stream": { + "tar-stream": { "version": "2.2.0", "resolved": "https://registry.npmjs.org/tar-stream/-/tar-stream-2.2.0.tgz", "integrity": "sha512-ujeqbceABgwMZxEJnk2HDY2DlnUZ+9oEcb1KzTVfYHio0UE6dG71n60d8D2I4qNvleWrrXpmjpt7vZeF1LnMZQ==", - "dependencies": { + "requires": { "bl": "^4.0.3", "end-of-stream": "^1.4.1", "fs-constants": "^1.0.0", "inherits": "^2.0.3", "readable-stream": "^3.1.1" - }, - "engines": { - "node": ">=6" } }, - "node_modules/through2": { + "through2": { "version": "4.0.2", "resolved": "https://registry.npmjs.org/through2/-/through2-4.0.2.tgz", "integrity": "sha512-iOqSav00cVxEEICeD7TjLB1sueEL+81Wpzp2bY17uZjZN0pWZPuo4suZ/61VujxmqSGFfgOcNuTZ85QJwNZQpw==", - "dependencies": { + "requires": { "readable-stream": "3" } }, - "node_modules/tmp": { + "tmp": { "version": "0.2.3", "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.2.3.tgz", - "integrity": "sha512-nZD7m9iCPC5g0pYmcaxogYKggSfLsdxl8of3Q/oIbqCqLLIO9IAF0GWjX1z9NZRHPiXv8Wex4yDCaZsgEw0Y8w==", - "engines": { - "node": ">=14.14" - } + "integrity": "sha512-nZD7m9iCPC5g0pYmcaxogYKggSfLsdxl8of3Q/oIbqCqLLIO9IAF0GWjX1z9NZRHPiXv8Wex4yDCaZsgEw0Y8w==" }, - "node_modules/token-types": { + "token-types": { "version": "4.2.1", "resolved": "https://registry.npmjs.org/token-types/-/token-types-4.2.1.tgz", "integrity": "sha512-6udB24Q737UD/SDsKAHI9FCRP7Bqc9D/MQUV02ORQg5iskjtLJlZJNdN4kKtcdtwCeWIwIHDGaUsTsCCAa8sFQ==", - "dependencies": { + "requires": { "@tokenizer/token": "^0.3.0", "ieee754": "^1.2.1" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/Borewit" } }, - "node_modules/tr46": { + "tr46": { "version": "0.0.3", "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz", "integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==" }, - "node_modules/traverse": { + "traverse": { "version": "0.3.9", "resolved": "https://registry.npmjs.org/traverse/-/traverse-0.3.9.tgz", - "integrity": "sha512-iawgk0hLP3SxGKDfnDJf8wTz4p2qImnyihM5Hh/sGvQ3K37dPi/w8sRhdNIxYA1TwFwc5mDhIJq+O0RsvXBKdQ==", - "engines": { - "node": "*" - } + "integrity": "sha512-iawgk0hLP3SxGKDfnDJf8wTz4p2qImnyihM5Hh/sGvQ3K37dPi/w8sRhdNIxYA1TwFwc5mDhIJq+O0RsvXBKdQ==" }, - "node_modules/tslib": { + "tslib": { "version": "2.6.2", "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.2.tgz", "integrity": "sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==" }, - "node_modules/type-detect": { + "type-detect": { "version": "4.0.8", "resolved": "https://registry.npmjs.org/type-detect/-/type-detect-4.0.8.tgz", "integrity": "sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==", - "dev": true, - "engines": { - "node": ">=4" - } + "dev": true }, - "node_modules/uc.micro": { + "uc.micro": { "version": "1.0.6", "resolved": "https://registry.npmjs.org/uc.micro/-/uc.micro-1.0.6.tgz", "integrity": "sha512-8Y75pvTYkLJW2hWQHXxoqRgV7qb9B+9vFEtidML+7koHUFapnVJAZ6cKs+Qjz5Aw3aZWHMC6u0wJE3At+nSGwA==" }, - "node_modules/unzipper": { + "unzipper": { "version": "0.10.14", "resolved": "https://registry.npmjs.org/unzipper/-/unzipper-0.10.14.tgz", "integrity": "sha512-ti4wZj+0bQTiX2KmKWuwj7lhV+2n//uXEotUmGuQqrbVZSEGFMbI68+c6JCQ8aAmUWYvtHEz2A8K6wXvueR/6g==", - "dependencies": { + "requires": { "big-integer": "^1.6.17", "binary": "~0.3.0", "bluebird": "~3.4.1", @@ -3939,48 +2875,50 @@ "listenercount": "~1.0.1", "readable-stream": "~2.3.6", "setimmediate": "~1.0.4" - } - }, - "node_modules/unzipper/node_modules/readable-stream": { - "version": "2.3.8", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz", - "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", + }, "dependencies": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.3", - "isarray": "~1.0.0", - "process-nextick-args": "~2.0.0", - "safe-buffer": "~5.1.1", - "string_decoder": "~1.1.1", - "util-deprecate": "~1.0.1" + "readable-stream": { + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz", + "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", + "requires": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + }, + "safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" + }, + "string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "requires": { + "safe-buffer": "~5.1.0" + } + } } }, - "node_modules/unzipper/node_modules/safe-buffer": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" - }, - "node_modules/unzipper/node_modules/string_decoder": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", - "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", - "dependencies": { - "safe-buffer": "~5.1.0" - } - }, - "node_modules/uri-js": { + "uri-js": { "version": "4.4.1", "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", - "dependencies": { + "requires": { "punycode": "^2.1.0" } }, - "node_modules/util": { + "util": { "version": "0.12.5", "resolved": "https://registry.npmjs.org/util/-/util-0.12.5.tgz", "integrity": "sha512-kZf/K6hEIrWHI6XqOFUiiMa+79wE/D8Q+NCNAWclkyg3b4d2k7s0QGepNjiABc+aR3N1PAyHL7p6UcLY6LmrnA==", - "dependencies": { + "requires": { "inherits": "^2.0.3", "is-arguments": "^1.0.4", "is-generator-function": "^1.0.7", @@ -3988,90 +2926,77 @@ "which-typed-array": "^1.1.2" } }, - "node_modules/util-deprecate": { + "util-deprecate": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==" }, - "node_modules/uuid": { + "uuid": { "version": "8.3.2", "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz", - "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==", - "bin": { - "uuid": "dist/bin/uuid" - } + "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==" }, - "node_modules/valid-data-url": { + "valid-data-url": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/valid-data-url/-/valid-data-url-3.0.1.tgz", - "integrity": "sha512-jOWVmzVceKlVVdwjNSenT4PbGghU0SBIizAev8ofZVgivk/TVHXSbNL8LP6M3spZvkR9/QolkyJavGSX5Cs0UA==", - "engines": { - "node": ">=10" - } + "integrity": "sha512-jOWVmzVceKlVVdwjNSenT4PbGghU0SBIizAev8ofZVgivk/TVHXSbNL8LP6M3spZvkR9/QolkyJavGSX5Cs0UA==" }, - "node_modules/vasync": { + "vasync": { "version": "2.2.1", "resolved": "https://registry.npmjs.org/vasync/-/vasync-2.2.1.tgz", "integrity": "sha512-Hq72JaTpcTFdWiNA4Y22Amej2GH3BFmBaKPPlDZ4/oC8HNn2ISHLkFrJU4Ds8R3jcUi7oo5Y9jcMHKjES+N9wQ==", - "engines": [ - "node >=0.6.0" - ], - "dependencies": { + "requires": { "verror": "1.10.0" - } - }, - "node_modules/vasync/node_modules/core-util-is": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", - "integrity": "sha512-3lqz5YjWTYnW6dlDa5TLaTCcShfar1e40rmcJVwCBJC6mWlFuj0eCHIElmG1g5kyuJ/GD+8Wn4FFCcz4gJPfaQ==" - }, - "node_modules/vasync/node_modules/verror": { - "version": "1.10.0", - "resolved": "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz", - "integrity": "sha512-ZZKSmDAEFOijERBLkmYfJ+vmk3w+7hOLYDNkRCuRuMJGEmqYNCNLyBBFwWKVMhfwaEF3WOd0Zlw86U/WC/+nYw==", - "engines": [ - "node >=0.6.0" - ], + }, "dependencies": { - "assert-plus": "^1.0.0", - "core-util-is": "1.0.2", - "extsprintf": "^1.2.0" + "core-util-is": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", + "integrity": "sha512-3lqz5YjWTYnW6dlDa5TLaTCcShfar1e40rmcJVwCBJC6mWlFuj0eCHIElmG1g5kyuJ/GD+8Wn4FFCcz4gJPfaQ==" + }, + "verror": { + "version": "1.10.0", + "resolved": "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz", + "integrity": "sha512-ZZKSmDAEFOijERBLkmYfJ+vmk3w+7hOLYDNkRCuRuMJGEmqYNCNLyBBFwWKVMhfwaEF3WOd0Zlw86U/WC/+nYw==", + "requires": { + "assert-plus": "^1.0.0", + "core-util-is": "1.0.2", + "extsprintf": "^1.2.0" + } + } } }, - "node_modules/verror": { + "verror": { "version": "1.10.1", "resolved": "https://registry.npmjs.org/verror/-/verror-1.10.1.tgz", "integrity": "sha512-veufcmxri4e3XSrT0xwfUR7kguIkaxBeosDg00yDWhk49wdwkSUrvvsm7nc75e1PUyvIeZj6nS8VQRYz2/S4Xg==", - "dependencies": { + "requires": { "assert-plus": "^1.0.0", "core-util-is": "1.0.2", "extsprintf": "^1.2.0" }, - "engines": { - "node": ">=0.6.0" + "dependencies": { + "core-util-is": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", + "integrity": "sha512-3lqz5YjWTYnW6dlDa5TLaTCcShfar1e40rmcJVwCBJC6mWlFuj0eCHIElmG1g5kyuJ/GD+8Wn4FFCcz4gJPfaQ==" + } } }, - "node_modules/verror/node_modules/core-util-is": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", - "integrity": "sha512-3lqz5YjWTYnW6dlDa5TLaTCcShfar1e40rmcJVwCBJC6mWlFuj0eCHIElmG1g5kyuJ/GD+8Wn4FFCcz4gJPfaQ==" - }, - "node_modules/web-encoding": { + "web-encoding": { "version": "1.1.5", "resolved": "https://registry.npmjs.org/web-encoding/-/web-encoding-1.1.5.tgz", "integrity": "sha512-HYLeVCdJ0+lBYV2FvNZmv3HJ2Nt0QYXqZojk3d9FJOLkwnuhzM9tmamh8d7HPM8QqjKH8DeHkFTx+CFlWpZZDA==", - "dependencies": { + "requires": { + "@zxing/text-encoding": "0.9.0", "util": "^0.12.3" - }, - "optionalDependencies": { - "@zxing/text-encoding": "0.9.0" } }, - "node_modules/web-resource-inliner": { + "web-resource-inliner": { "version": "6.0.1", "resolved": "https://registry.npmjs.org/web-resource-inliner/-/web-resource-inliner-6.0.1.tgz", "integrity": "sha512-kfqDxt5dTB1JhqsCUQVFDj0rmY+4HLwGQIsLPbyrsN9y9WV/1oFDSx3BQ4GfCv9X+jVeQ7rouTqwK53rA/7t8A==", - "dependencies": { + "requires": { "ansi-colors": "^4.1.1", "escape-goat": "^3.0.0", "htmlparser2": "^5.0.0", @@ -4079,162 +3004,133 @@ "node-fetch": "^2.6.0", "valid-data-url": "^3.0.0" }, - "engines": { - "node": ">=10.0.0" - } - }, - "node_modules/web-resource-inliner/node_modules/domhandler": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-3.3.0.tgz", - "integrity": "sha512-J1C5rIANUbuYK+FuFL98650rihynUOEzRLxW+90bKZRWB6A1X1Tf82GxR1qAWLyfNPRvjqfip3Q5tdYlmAa9lA==", "dependencies": { - "domelementtype": "^2.0.1" - }, - "engines": { - "node": ">= 4" - }, - "funding": { - "url": "https://github.com/fb55/domhandler?sponsor=1" + "domhandler": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-3.3.0.tgz", + "integrity": "sha512-J1C5rIANUbuYK+FuFL98650rihynUOEzRLxW+90bKZRWB6A1X1Tf82GxR1qAWLyfNPRvjqfip3Q5tdYlmAa9lA==", + "requires": { + "domelementtype": "^2.0.1" + } + }, + "htmlparser2": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-5.0.1.tgz", + "integrity": "sha512-vKZZra6CSe9qsJzh0BjBGXo8dvzNsq/oGvsjfRdOrrryfeD9UOBEEQdeoqCRmKZchF5h2zOBMQ6YuQ0uRUmdbQ==", + "requires": { + "domelementtype": "^2.0.1", + "domhandler": "^3.3.0", + "domutils": "^2.4.2", + "entities": "^2.0.0" + } + } } }, - "node_modules/web-resource-inliner/node_modules/htmlparser2": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-5.0.1.tgz", - "integrity": "sha512-vKZZra6CSe9qsJzh0BjBGXo8dvzNsq/oGvsjfRdOrrryfeD9UOBEEQdeoqCRmKZchF5h2zOBMQ6YuQ0uRUmdbQ==", - "dependencies": { - "domelementtype": "^2.0.1", - "domhandler": "^3.3.0", - "domutils": "^2.4.2", - "entities": "^2.0.0" - }, - "funding": { - "url": "https://github.com/fb55/htmlparser2?sponsor=1" - } - }, - "node_modules/webidl-conversions": { + "webidl-conversions": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz", "integrity": "sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==" }, - "node_modules/whatwg-url": { + "whatwg-url": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz", "integrity": "sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==", - "dependencies": { + "requires": { "tr46": "~0.0.3", "webidl-conversions": "^3.0.0" } }, - "node_modules/which-typed-array": { + "which-typed-array": { "version": "1.1.13", "resolved": "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.13.tgz", "integrity": "sha512-P5Nra0qjSncduVPEAr7xhoF5guty49ArDTwzJ/yNuPIbZppyRxFQsRCWrocxIY+CnMVG+qfbU2FmDKyvSGClow==", - "dependencies": { + "requires": { "available-typed-arrays": "^1.0.5", "call-bind": "^1.0.4", "for-each": "^0.3.3", "gopd": "^1.0.1", "has-tostringtag": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/wicked-good-xpath": { + "wicked-good-xpath": { "version": "1.3.0", "resolved": "https://registry.npmjs.org/wicked-good-xpath/-/wicked-good-xpath-1.3.0.tgz", "integrity": "sha512-Gd9+TUn5nXdwj/hFsPVx5cuHHiF5Bwuc30jZ4+ronF1qHK5O7HD0sgmXWSEgwKquT3ClLoKPVbO6qGwVwLzvAw==" }, - "node_modules/wide-align": { + "wide-align": { "version": "1.1.5", "resolved": "https://registry.npmjs.org/wide-align/-/wide-align-1.1.5.tgz", "integrity": "sha512-eDMORYaPNZ4sQIuuYPDHdQvf4gyCF9rEEV/yPxGfwPkRodwEgiMUUXTx/dex+Me0wxx53S+NgUHaP7y3MGlDmg==", - "dependencies": { + "requires": { "string-width": "^1.0.2 || 2 || 3 || 4" } }, - "node_modules/wrappy": { + "wrappy": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==" }, - "node_modules/xml": { + "xml": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/xml/-/xml-1.0.1.tgz", "integrity": "sha512-huCv9IH9Tcf95zuYCsQraZtWnJvBtLVE0QHMOs8bWyZAFZNDcYjsPq1nEx8jKA9y+Beo9v+7OBPRisQTjinQMw==" }, - "node_modules/xml2js": { + "xml2js": { "version": "0.5.0", "resolved": "https://registry.npmjs.org/xml2js/-/xml2js-0.5.0.tgz", "integrity": "sha512-drPFnkQJik/O+uPKpqSgr22mpuFHqKdbS835iAQrUC73L2F5WkboIRd63ai/2Yg6I1jzifPFKH2NTK+cfglkIA==", - "dependencies": { + "requires": { "sax": ">=0.6.0", "xmlbuilder": "~11.0.0" - }, - "engines": { - "node": ">=4.0.0" } }, - "node_modules/xmlbuilder": { + "xmlbuilder": { "version": "11.0.1", "resolved": "https://registry.npmjs.org/xmlbuilder/-/xmlbuilder-11.0.1.tgz", - "integrity": "sha512-fDlsI/kFEx7gLvbecc0/ohLG50fugQp8ryHzMTuW9vSa1GJ0XYWKnhsUx7oie3G98+r56aTQIUB4kht42R3JvA==", - "engines": { - "node": ">=4.0" - } + "integrity": "sha512-fDlsI/kFEx7gLvbecc0/ohLG50fugQp8ryHzMTuW9vSa1GJ0XYWKnhsUx7oie3G98+r56aTQIUB4kht42R3JvA==" }, - "node_modules/xmlchars": { + "xmlchars": { "version": "2.2.0", "resolved": "https://registry.npmjs.org/xmlchars/-/xmlchars-2.2.0.tgz", "integrity": "sha512-JZnDKK8B0RCDw84FNdDAIpZK+JuJw+s7Lz8nksI7SIuU3UXJJslUthsi+uWBUYOwPFwW7W7PRLRfUKpxjtjFCw==" }, - "node_modules/xmldom-sre": { + "xmldom-sre": { "version": "0.1.31", "resolved": "https://registry.npmjs.org/xmldom-sre/-/xmldom-sre-0.1.31.tgz", - "integrity": "sha512-f9s+fUkX04BxQf+7mMWAp5zk61pciie+fFLC9hX9UVvCeJQfNHRHXpeo5MPcR0EUf57PYLdt+ZO4f3Ipk2oZUw==", - "engines": { - "node": ">=0.1" - } + "integrity": "sha512-f9s+fUkX04BxQf+7mMWAp5zk61pciie+fFLC9hX9UVvCeJQfNHRHXpeo5MPcR0EUf57PYLdt+ZO4f3Ipk2oZUw==" }, - "node_modules/yallist": { + "yallist": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==" }, - "node_modules/zip-stream": { + "zip-stream": { "version": "4.1.1", "resolved": "https://registry.npmjs.org/zip-stream/-/zip-stream-4.1.1.tgz", "integrity": "sha512-9qv4rlDiopXg4E69k+vMHjNN63YFMe9sZMrdlvKnCjlCRWeCBswPPMPUfx+ipsAWq1LXHe70RcbaHdJJpS6hyQ==", - "dependencies": { + "requires": { "archiver-utils": "^3.0.4", "compress-commons": "^4.1.2", "readable-stream": "^3.6.0" }, - "engines": { - "node": ">= 10" - } - }, - "node_modules/zip-stream/node_modules/archiver-utils": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/archiver-utils/-/archiver-utils-3.0.4.tgz", - "integrity": "sha512-KVgf4XQVrTjhyWmx6cte4RxonPLR9onExufI1jhvw/MQ4BB6IsZD5gT8Lq+u/+pRkWna/6JoHpiQioaqFP5Rzw==", "dependencies": { - "glob": "^7.2.3", - "graceful-fs": "^4.2.0", - "lazystream": "^1.0.0", - "lodash.defaults": "^4.2.0", - "lodash.difference": "^4.5.0", - "lodash.flatten": "^4.4.0", - "lodash.isplainobject": "^4.0.6", - "lodash.union": "^4.6.0", - "normalize-path": "^3.0.0", - "readable-stream": "^3.6.0" - }, - "engines": { - "node": ">= 10" + "archiver-utils": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/archiver-utils/-/archiver-utils-3.0.4.tgz", + "integrity": "sha512-KVgf4XQVrTjhyWmx6cte4RxonPLR9onExufI1jhvw/MQ4BB6IsZD5gT8Lq+u/+pRkWna/6JoHpiQioaqFP5Rzw==", + "requires": { + "glob": "^7.2.3", + "graceful-fs": "^4.2.0", + "lazystream": "^1.0.0", + "lodash.defaults": "^4.2.0", + "lodash.difference": "^4.5.0", + "lodash.flatten": "^4.4.0", + "lodash.isplainobject": "^4.0.6", + "lodash.union": "^4.6.0", + "normalize-path": "^3.0.0", + "readable-stream": "^3.6.0" + } + } } } } diff --git a/package.json b/package.json index 28cf400a1..ea5d83fc1 100644 --- a/package.json +++ b/package.json @@ -28,7 +28,7 @@ "ajv": "^6.12.6", "bcryptjs": "^2.4.3", "bson": "^4.5.2", - "dompurify": "^3.2.4", + "dompurify": "^2.5.6", "es6-promise": "^4.2.4", "escape-string-regexp": "^5.0.0", "fibers": "^5.0.3", From 18d0fa43275cd2955dd6416213e316ca08a62255 Mon Sep 17 00:00:00 2001 From: Lauri Ojansivu Date: Mon, 24 Feb 2025 14:55:58 +0200 Subject: [PATCH 22/65] Fixed building WeKan. Updated dompurify. Forked Meteor 2.14 version of meteor-node-stubs to update elliptic. Thanks to delopers of depedencies and xet7 ! Fixes #5694 --- package-lock.json | 231 +++++++++++++++------------------------------- package.json | 4 +- 2 files changed, 78 insertions(+), 157 deletions(-) diff --git a/package-lock.json b/package-lock.json index 0cd3d5754..18fa8b3cb 100644 --- a/package-lock.json +++ b/package-lock.json @@ -108,6 +108,12 @@ "resolved": "https://registry.npmjs.org/@types/node/-/node-14.18.63.tgz", "integrity": "sha512-fAtCfv4jJg+ExtXhvCkCqUKZ+4ok/JQk01qDKhL5BDDoS3AxKXhV5/MAVUZyQnSEd2GT92fkgZl0pz0Q0AzcIQ==" }, + "@types/trusted-types": { + "version": "2.0.7", + "resolved": "https://registry.npmjs.org/@types/trusted-types/-/trusted-types-2.0.7.tgz", + "integrity": "sha512-ScaPdn1dQczgbl0QFTeTOmVHFULt394XJgOQNoyVhZ6r2vLnMLJfBPd53SB52T/3G36VI1/g2MZaX0cwDuXsfw==", + "optional": true + }, "@wekanteam/dragscroll": { "version": "git+https://github.com/wekan/dragscroll.git#6ea215c8cdbde9362ecba8ffb72ce9f9fde842d2", "from": "git+https://github.com/wekan/dragscroll.git" @@ -600,9 +606,12 @@ } }, "dompurify": { - "version": "2.5.6", - "resolved": "https://registry.npmjs.org/dompurify/-/dompurify-2.5.6.tgz", - "integrity": "sha512-zUTaUBO8pY4+iJMPE1B9XlO2tXVYIcEA4SNGtvDELzTSCQO7RzH+j7S180BmhmJId78lqGU2z19vgVx2Sxs/PQ==" + "version": "3.2.4", + "resolved": "https://registry.npmjs.org/dompurify/-/dompurify-3.2.4.tgz", + "integrity": "sha512-ysFSFEDVduQpyhzAob/kkuJjf5zWkZD8/A9ywSp1byueyuCfHamrCBa14/Oc2iiB0e51B+NpxSl5gmzn+Ms/mg==", + "requires": { + "@types/trusted-types": "^2.0.7" + } }, "domutils": { "version": "2.8.0", @@ -1373,16 +1382,15 @@ "integrity": "sha512-SBbbYWvFYvsxHVL+q6ZB8lT3rp2LSvfALD2V52H+MGH2IgJsevy0VtXRkRG0EsUewwOaDTIKBn9DlD8HQ3GSwg==" }, "meteor-node-stubs": { - "version": "1.2.12", - "resolved": "https://registry.npmjs.org/meteor-node-stubs/-/meteor-node-stubs-1.2.12.tgz", - "integrity": "sha512-mzp3KI2aGNDhFlCVXPd0pfMr2z9A5vl1AqEgV13/z7AgKwcbd2X+ymE6tpSAMkrrQb40PU9PC2B59bCb6XkAaw==", + "version": "git+https://github.com/wekan/meteor-node-stubs.git#4f2609bc4d9d700ff79424ad4ed8dbf1f06666cb", + "from": "git+https://github.com/wekan/meteor-node-stubs.git", "requires": { - "@meteorjs/crypto-browserify": "^3.12.1", "assert": "^2.1.0", "browserify-zlib": "^0.2.0", "buffer": "^5.7.1", "console-browserify": "^1.2.0", "constants-browserify": "^1.0.0", + "crypto-browserify": "^3.12.0", "domain-browser": "^4.23.0", "elliptic": "^6.6.0", "events": "^3.3.0", @@ -1398,46 +1406,19 @@ "string_decoder": "^1.3.0", "timers-browserify": "^2.0.12", "tty-browserify": "0.0.1", - "url": "^0.11.4", + "url": "^0.11.3", "util": "^0.12.5", "vm-browserify": "^1.1.2" }, "dependencies": { - "@meteorjs/crypto-browserify": { - "version": "3.12.1", - "bundled": true, - "requires": { - "browserify-cipher": "^1.0.1", - "browserify-sign": "^4.2.3", - "create-ecdh": "^4.0.4", - "create-hash": "^1.2.0", - "create-hmac": "^1.1.7", - "diffie-hellman": "^5.0.3", - "hash-base": "~3.0.4", - "inherits": "^2.0.4", - "pbkdf2": "^3.1.2", - "public-encrypt": "^4.0.3", - "randombytes": "^2.1.0", - "randomfill": "^1.0.4" - }, - "dependencies": { - "hash-base": { - "version": "3.0.4", - "bundled": true, - "requires": { - "inherits": "^2.0.1", - "safe-buffer": "^5.0.1" - } - } - } - }, "asn1.js": { - "version": "4.10.1", + "version": "5.4.1", "bundled": true, "requires": { "bn.js": "^4.0.0", "inherits": "^2.0.1", - "minimalistic-assert": "^1.0.0" + "minimalistic-assert": "^1.0.0", + "safer-buffer": "^2.1.0" }, "dependencies": { "bn.js": { @@ -1513,64 +1494,23 @@ } }, "browserify-sign": { - "version": "4.2.3", + "version": "4.2.2", "bundled": true, "requires": { "bn.js": "^5.2.1", "browserify-rsa": "^4.1.0", "create-hash": "^1.2.0", "create-hmac": "^1.1.7", - "elliptic": "^6.5.5", - "hash-base": "~3.0", + "elliptic": "^6.5.4", "inherits": "^2.0.4", - "parse-asn1": "^5.1.7", - "readable-stream": "^2.3.8", + "parse-asn1": "^5.1.6", + "readable-stream": "^3.6.2", "safe-buffer": "^5.2.1" }, "dependencies": { "bn.js": { "version": "5.2.1", "bundled": true - }, - "hash-base": { - "version": "3.0.4", - "bundled": true, - "requires": { - "inherits": "^2.0.1", - "safe-buffer": "^5.0.1" - } - }, - "readable-stream": { - "version": "2.3.8", - "bundled": true, - "requires": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.3", - "isarray": "~1.0.0", - "process-nextick-args": "~2.0.0", - "safe-buffer": "~5.1.1", - "string_decoder": "~1.1.1", - "util-deprecate": "~1.0.1" - }, - "dependencies": { - "safe-buffer": { - "version": "5.1.2", - "bundled": true - } - } - }, - "string_decoder": { - "version": "1.1.1", - "bundled": true, - "requires": { - "safe-buffer": "~5.1.0" - }, - "dependencies": { - "safe-buffer": { - "version": "5.1.2", - "bundled": true - } - } } } }, @@ -1598,14 +1538,12 @@ "bundled": true }, "call-bind": { - "version": "1.0.7", + "version": "1.0.5", "bundled": true, "requires": { - "es-define-property": "^1.0.0", - "es-errors": "^1.3.0", "function-bind": "^1.1.2", - "get-intrinsic": "^1.2.4", - "set-function-length": "^1.2.1" + "get-intrinsic": "^1.2.1", + "set-function-length": "^1.1.1" } }, "cipher-base": { @@ -1624,10 +1562,6 @@ "version": "1.0.0", "bundled": true }, - "core-util-is": { - "version": "1.0.3", - "bundled": true - }, "create-ecdh": { "version": "4.0.4", "bundled": true, @@ -1665,13 +1599,30 @@ "sha.js": "^2.4.8" } }, - "define-data-property": { - "version": "1.1.4", + "crypto-browserify": { + "version": "3.12.0", "bundled": true, "requires": { - "es-define-property": "^1.0.0", - "es-errors": "^1.3.0", - "gopd": "^1.0.1" + "browserify-cipher": "^1.0.0", + "browserify-sign": "^4.0.0", + "create-ecdh": "^4.0.0", + "create-hash": "^1.1.0", + "create-hmac": "^1.1.0", + "diffie-hellman": "^5.0.0", + "inherits": "^2.0.1", + "pbkdf2": "^3.0.3", + "public-encrypt": "^4.0.0", + "randombytes": "^2.0.0", + "randomfill": "^1.0.3" + } + }, + "define-data-property": { + "version": "1.1.1", + "bundled": true, + "requires": { + "get-intrinsic": "^1.2.1", + "gopd": "^1.0.1", + "has-property-descriptors": "^1.0.0" } }, "define-properties": { @@ -1711,7 +1662,7 @@ "bundled": true }, "elliptic": { - "version": "6.6.0", + "version": "6.6.1", "bundled": true, "requires": { "bn.js": "^4.11.9", @@ -1724,22 +1675,11 @@ }, "dependencies": { "bn.js": { - "version": "4.12.0", + "version": "4.12.1", "bundled": true } } }, - "es-define-property": { - "version": "1.0.0", - "bundled": true, - "requires": { - "get-intrinsic": "^1.2.4" - } - }, - "es-errors": { - "version": "1.3.0", - "bundled": true - }, "events": { "version": "3.3.0", "bundled": true @@ -1764,10 +1704,9 @@ "bundled": true }, "get-intrinsic": { - "version": "1.2.4", + "version": "1.2.2", "bundled": true, "requires": { - "es-errors": "^1.3.0", "function-bind": "^1.1.2", "has-proto": "^1.0.1", "has-symbols": "^1.0.3", @@ -1782,10 +1721,10 @@ } }, "has-property-descriptors": { - "version": "1.0.2", + "version": "1.0.1", "bundled": true, "requires": { - "es-define-property": "^1.0.0" + "get-intrinsic": "^1.2.2" } }, "has-proto": { @@ -1882,10 +1821,6 @@ "which-typed-array": "^1.1.11" } }, - "isarray": { - "version": "1.0.0", - "bundled": true - }, "md5.js": { "version": "1.3.5", "bundled": true, @@ -1918,7 +1853,7 @@ "bundled": true }, "object-inspect": { - "version": "1.13.2", + "version": "1.13.1", "bundled": true }, "object-is": { @@ -1952,25 +1887,14 @@ "bundled": true }, "parse-asn1": { - "version": "5.1.7", + "version": "5.1.6", "bundled": true, "requires": { - "asn1.js": "^4.10.1", - "browserify-aes": "^1.2.0", - "evp_bytestokey": "^1.0.3", - "hash-base": "~3.0", - "pbkdf2": "^3.1.2", - "safe-buffer": "^5.2.1" - }, - "dependencies": { - "hash-base": { - "version": "3.0.4", - "bundled": true, - "requires": { - "inherits": "^2.0.1", - "safe-buffer": "^5.0.1" - } - } + "asn1.js": "^5.2.0", + "browserify-aes": "^1.0.0", + "evp_bytestokey": "^1.0.0", + "pbkdf2": "^3.0.3", + "safe-buffer": "^5.1.1" } }, "path-browserify": { @@ -1992,10 +1916,6 @@ "version": "0.11.10", "bundled": true }, - "process-nextick-args": { - "version": "2.0.1", - "bundled": true - }, "public-encrypt": { "version": "4.0.3", "bundled": true, @@ -2019,10 +1939,10 @@ "bundled": true }, "qs": { - "version": "6.13.0", + "version": "6.11.2", "bundled": true, "requires": { - "side-channel": "^1.0.6" + "side-channel": "^1.0.4" } }, "querystring-es3": { @@ -2065,16 +1985,18 @@ "version": "5.2.1", "bundled": true }, + "safer-buffer": { + "version": "2.1.2", + "bundled": true + }, "set-function-length": { - "version": "1.2.2", + "version": "1.1.1", "bundled": true, "requires": { - "define-data-property": "^1.1.4", - "es-errors": "^1.3.0", - "function-bind": "^1.1.2", - "get-intrinsic": "^1.2.4", + "define-data-property": "^1.1.1", + "get-intrinsic": "^1.2.1", "gopd": "^1.0.1", - "has-property-descriptors": "^1.0.2" + "has-property-descriptors": "^1.0.0" } }, "setimmediate": { @@ -2090,13 +2012,12 @@ } }, "side-channel": { - "version": "1.0.6", + "version": "1.0.4", "bundled": true, "requires": { - "call-bind": "^1.0.7", - "es-errors": "^1.3.0", - "get-intrinsic": "^1.2.4", - "object-inspect": "^1.13.1" + "call-bind": "^1.0.0", + "get-intrinsic": "^1.0.2", + "object-inspect": "^1.9.0" } }, "stream-browserify": { @@ -2136,11 +2057,11 @@ "bundled": true }, "url": { - "version": "0.11.4", + "version": "0.11.3", "bundled": true, "requires": { "punycode": "^1.4.1", - "qs": "^6.12.3" + "qs": "^6.11.2" } }, "util": { diff --git a/package.json b/package.json index ea5d83fc1..6265a7565 100644 --- a/package.json +++ b/package.json @@ -28,7 +28,7 @@ "ajv": "^6.12.6", "bcryptjs": "^2.4.3", "bson": "^4.5.2", - "dompurify": "^2.5.6", + "dompurify": "^3.2.4", "es6-promise": "^4.2.4", "escape-string-regexp": "^5.0.0", "fibers": "^5.0.3", @@ -44,7 +44,7 @@ "markdown-it-emoji": "^2.0.0", "markdown-it-mathjax3": "^4.3.2", "meteor-accounts-t9n": "^2.6.0", - "meteor-node-stubs": "^1.2.12", + "meteor-node-stubs": "https://github.com/wekan/meteor-node-stubs.git", "minio": "^7.1.3", "moment": "^2.29.4", "os": "^0.1.2", From 07e9ec0617b69689a91b1e2c65e8eb97ad2b6db7 Mon Sep 17 00:00:00 2001 From: Lauri Ojansivu Date: Mon, 24 Feb 2025 15:12:07 +0200 Subject: [PATCH 23/65] Updated ChangeLog. --- CHANGELOG.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 03d0900be..633ee6fe8 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -28,6 +28,10 @@ and adds the following updates: Thanks to dependabot. - [Updated requirements at docs](https://github.com/wekan/wekan/commit/148b81262d0d143460e881d645fefa6740aae40d). Thanks to mueller-ma. +- [Updated dependencies](https://github.com/wekan/wekan/commit/666ee8403388f7d5e1a30cf0e53bc46a70bf1c40). + Thanks to developes of dependencies. +- [Fixed building WeKan. Updated dompurify. Forked Meteor 2.14 version of meteor-node-stubs to update elliptic](https://github.com/wekan/wekan/commit/18d0fa43275cd2955dd6416213e316ca08a62255). + Thanks to developers of depedencies and xet7. and fixes the following bugs: From edbc8ed92b8a68d6c0ff092275f54e19b50c9d6c Mon Sep 17 00:00:00 2001 From: Lauri Ojansivu Date: Mon, 24 Feb 2025 20:21:33 +0200 Subject: [PATCH 24/65] v7.82 --- CHANGELOG.md | 2 +- Stackerfile.yml | 2 +- docs/Platforms/Propietary/Windows/Offline.md | 4 ++-- package-lock.json | 2 +- package.json | 2 +- public/api/wekan.html | 6 +++--- public/api/wekan.yml | 2 +- sandstorm-pkgdef.capnp | 4 ++-- snapcraft.yaml | 8 ++++---- 9 files changed, 16 insertions(+), 16 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 633ee6fe8..9e928743e 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -15,7 +15,7 @@ Fixing other platforms In Progress. [How to upgrade WeKan](https://github.com/wekan/wekan/issues/4585) -# Upcoming WeKan ® release +# v7.82 2025-02-24 WeKan ® release This release adds the following new features: diff --git a/Stackerfile.yml b/Stackerfile.yml index 382f1587f..3888e7cc3 100644 --- a/Stackerfile.yml +++ b/Stackerfile.yml @@ -1,5 +1,5 @@ appId: wekan-public/apps/77b94f60-dec9-0136-304e-16ff53095928 -appVersion: "v7.81.0" +appVersion: "v7.82.0" files: userUploads: - README.md diff --git a/docs/Platforms/Propietary/Windows/Offline.md b/docs/Platforms/Propietary/Windows/Offline.md index 0c91e928c..0bcee8594 100644 --- a/docs/Platforms/Propietary/Windows/Offline.md +++ b/docs/Platforms/Propietary/Windows/Offline.md @@ -10,7 +10,7 @@ This is without container (without Docker or Snap). Right click and download files 1-4: -1. [wekan-7.81-amd64-windows.zip](https://github.com/wekan/wekan/releases/download/v7.81/wekan-7.81-amd64-windows.zip) +1. [wekan-7.82-amd64-windows.zip](https://github.com/wekan/wekan/releases/download/v7.82/wekan-7.82-amd64-windows.zip) 2. [node.exe](https://nodejs.org/dist/latest-v14.x/win-x64/node.exe) @@ -22,7 +22,7 @@ Right click and download files 1-4: 6. Double click `mongodb-windows-x86_64-6.0.20-signed.msi` . In installer, uncheck downloading MongoDB compass. -7. Unzip `wekan-7.81-amd64-windows.zip` , inside it is directory `bundle`, to it copy other files: +7. Unzip `wekan-7.82-amd64-windows.zip` , inside it is directory `bundle`, to it copy other files: ``` bundle (directory) diff --git a/package-lock.json b/package-lock.json index 18fa8b3cb..760f0b995 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,6 +1,6 @@ { "name": "wekan", - "version": "v7.81.0", + "version": "v7.82.0", "lockfileVersion": 1, "requires": true, "dependencies": { diff --git a/package.json b/package.json index 6265a7565..3065b90f0 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "wekan", - "version": "v7.81.0", + "version": "v7.82.0", "description": "Open-Source kanban", "private": true, "repository": { diff --git a/public/api/wekan.html b/public/api/wekan.html index 842a39efd..cc7361116 100644 --- a/public/api/wekan.html +++ b/public/api/wekan.html @@ -7,7 +7,7 @@ - Wekan REST API v7.81 + Wekan REST API v7.82 @@ -1549,7 +1549,7 @@ var n=this.pipeline.run(e.tokenizer(t)),r=new e.Vector,i=[],o=this._fields.reduc
    • - Wekan REST API v7.81 + Wekan REST API v7.82
    • @@ -2068,7 +2068,7 @@ var n=this.pipeline.run(e.tokenizer(t)),r=new e.Vector,i=[],o=this._fields.reduc
      -

      Wekan REST API v7.81

      +

      Wekan REST API v7.82

      Scroll down for code samples, example requests and responses. Select a language for code samples from the tabs above or the mobile navigation menu.

      diff --git a/public/api/wekan.yml b/public/api/wekan.yml index 54a425d25..29c64faf2 100644 --- a/public/api/wekan.yml +++ b/public/api/wekan.yml @@ -1,7 +1,7 @@ swagger: '2.0' info: title: Wekan REST API - version: v7.81 + version: v7.82 description: | The REST API allows you to control and extend Wekan with ease. diff --git a/sandstorm-pkgdef.capnp b/sandstorm-pkgdef.capnp index fcde8a378..aed75d965 100644 --- a/sandstorm-pkgdef.capnp +++ b/sandstorm-pkgdef.capnp @@ -22,10 +22,10 @@ const pkgdef :Spk.PackageDefinition = ( appTitle = (defaultText = "Wekan"), # The name of the app as it is displayed to the user. - appVersion = 781, + appVersion = 782, # Increment this for every release. - appMarketingVersion = (defaultText = "7.80.0~2025-01-12"), + appMarketingVersion = (defaultText = "7.82.0~2025-02-24"), # Human-readable presentation of the app version. minUpgradableAppVersion = 0, diff --git a/snapcraft.yaml b/snapcraft.yaml index 430660c9a..caa1f35b4 100644 --- a/snapcraft.yaml +++ b/snapcraft.yaml @@ -1,5 +1,5 @@ name: wekan -version: '7.81' +version: '7.82' base: core20 summary: Open Source kanban description: | @@ -170,9 +170,9 @@ parts: # Cleanup mkdir .build cd .build - wget https://github.com/wekan/wekan/releases/download/v7.81/wekan-7.81-amd64.zip - unzip wekan-7.81-amd64.zip - rm wekan-7.81-amd64.zip + wget https://github.com/wekan/wekan/releases/download/v7.82/wekan-7.82-amd64.zip + unzip wekan-7.82-amd64.zip + rm wekan-7.82-amd64.zip cd .. ##cd .build/bundle ##find . -type d -name '*-garbage*' | xargs rm -rf From 0326757399e702b9ac113faa1a3cc380224d22c5 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 24 Feb 2025 21:18:37 +0000 Subject: [PATCH 25/65] Bump docker/build-push-action from 6.13.0 to 6.14.0 Bumps [docker/build-push-action](https://github.com/docker/build-push-action) from 6.13.0 to 6.14.0. - [Release notes](https://github.com/docker/build-push-action/releases) - [Commits](https://github.com/docker/build-push-action/compare/ca877d9245402d1537745e0e356eab47c3520991...0adf9959216b96bec444f325f1e493d4aa344497) --- updated-dependencies: - dependency-name: docker/build-push-action dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- .github/workflows/docker-publish.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/docker-publish.yml b/.github/workflows/docker-publish.yml index b01711dd8..98b8dc013 100644 --- a/.github/workflows/docker-publish.yml +++ b/.github/workflows/docker-publish.yml @@ -55,7 +55,7 @@ jobs: # Build and push Docker image with Buildx (don't push on PR) # https://github.com/docker/build-push-action - name: Build and push Docker image - uses: docker/build-push-action@ca877d9245402d1537745e0e356eab47c3520991 + uses: docker/build-push-action@0adf9959216b96bec444f325f1e493d4aa344497 with: context: . push: ${{ github.event_name != 'pull_request' }} From ef70ed76a2d656a83de17298e5ac5e94be44ad0c Mon Sep 17 00:00:00 2001 From: Lauri Ojansivu Date: Tue, 25 Feb 2025 14:33:06 +0200 Subject: [PATCH 26/65] Updated changelog --- CHANGELOG.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 9e928743e..ef6cd2172 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -17,6 +17,8 @@ Fixing other platforms In Progress. # v7.82 2025-02-24 WeKan ® release +v7.82 Docker version is broken: https://github.com/wekan/wekan/issues/5697 . Snap Candidate works. + This release adds the following new features: - [Add possibility to use a token in place of ipaddress to access metrics route](https://github.com/wekan/wekan/pull/5682). From 6b48f9e2590d421a032ca30ce80764356f98ca90 Mon Sep 17 00:00:00 2001 From: adam-fu Date: Sat, 1 Mar 2025 18:43:34 +0100 Subject: [PATCH 27/65] Adding Development information to readme --- README.md | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/README.md b/README.md index f3758d271..231512512 100644 --- a/README.md +++ b/README.md @@ -107,6 +107,14 @@ that by providing one-click installation on various platforms. We also welcome sponsors for features and bugfixes. By working directly with WeKan ® you get the benefit of active maintenance and new features added by growing WeKan ® developer community. +## Getting Started with Development + +The default branch uses [Meteor 2 with Node.js 14](https://wekan.github.io/install/). + +To contribute, [create a fork](https://github.com/wekan/wekan/wiki/Emoji#2-create-fork-of-httpsgithubcomwekanwekan-at-github-web-page) and run `./rebuild-wekan.sh` (or `./rebuild-wekan.bat` on Windows) as detailed [here](https://github.com/wekan/wekan/wiki/Emoji#3-select-option-1-to-install-dependencies-and-then-enter). Once you're ready, please test your code and [submit a pull request (PR)](https://github.com/wekan/wekan/wiki/Emoji#7-test). + +Please refer to the [developer documentation](https://github.com/wekan/wekan/wiki/Developer-Documentation) for more information. + ## Screenshot [More screenshots at Features page](https://github.com/wekan/wekan/wiki/Features) From bce84a432a7370436cc7ea59388e2c3301be9a53 Mon Sep 17 00:00:00 2001 From: Lauri Ojansivu Date: Sun, 2 Mar 2025 12:03:22 +0200 Subject: [PATCH 28/65] Updated ChangeLog. --- CHANGELOG.md | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index ef6cd2172..4ee5dbe40 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -15,6 +15,15 @@ Fixing other platforms In Progress. [How to upgrade WeKan](https://github.com/wekan/wekan/issues/4585) +# Upcoming WeKan ® release + +This release adds the following updates: + +- [Adding Development information to readme](https://github.com/wekan/wekan/pull/5702). + Thanks to adam-fu. + +Thanks to above GitHub users for their contributions and translators for their translations. + # v7.82 2025-02-24 WeKan ® release v7.82 Docker version is broken: https://github.com/wekan/wekan/issues/5697 . Snap Candidate works. From 6347b40a02b543be9886e73d9077eb65914216fa Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 3 Mar 2025 20:41:20 +0000 Subject: [PATCH 29/65] Bump docker/metadata-action from 5.6.1 to 5.7.0 Bumps [docker/metadata-action](https://github.com/docker/metadata-action) from 5.6.1 to 5.7.0. - [Release notes](https://github.com/docker/metadata-action/releases) - [Commits](https://github.com/docker/metadata-action/compare/369eb591f429131d6889c46b94e711f089e6ca96...902fa8ec7d6ecbf8d84d538b9b233a880e428804) --- updated-dependencies: - dependency-name: docker/metadata-action dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- .github/workflows/docker-publish.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/docker-publish.yml b/.github/workflows/docker-publish.yml index 98b8dc013..2bbb557de 100644 --- a/.github/workflows/docker-publish.yml +++ b/.github/workflows/docker-publish.yml @@ -48,7 +48,7 @@ jobs: # https://github.com/docker/metadata-action - name: Extract Docker metadata id: meta - uses: docker/metadata-action@369eb591f429131d6889c46b94e711f089e6ca96 + uses: docker/metadata-action@902fa8ec7d6ecbf8d84d538b9b233a880e428804 with: images: ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }} From 7f871fdf30cef45420f558596701f38006bcaa70 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 3 Mar 2025 20:41:23 +0000 Subject: [PATCH 30/65] Bump docker/build-push-action from 6.14.0 to 6.15.0 Bumps [docker/build-push-action](https://github.com/docker/build-push-action) from 6.14.0 to 6.15.0. - [Release notes](https://github.com/docker/build-push-action/releases) - [Commits](https://github.com/docker/build-push-action/compare/0adf9959216b96bec444f325f1e493d4aa344497...471d1dc4e07e5cdedd4c2171150001c434f0b7a4) --- updated-dependencies: - dependency-name: docker/build-push-action dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- .github/workflows/docker-publish.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/docker-publish.yml b/.github/workflows/docker-publish.yml index 98b8dc013..c913ede79 100644 --- a/.github/workflows/docker-publish.yml +++ b/.github/workflows/docker-publish.yml @@ -55,7 +55,7 @@ jobs: # Build and push Docker image with Buildx (don't push on PR) # https://github.com/docker/build-push-action - name: Build and push Docker image - uses: docker/build-push-action@0adf9959216b96bec444f325f1e493d4aa344497 + uses: docker/build-push-action@471d1dc4e07e5cdedd4c2171150001c434f0b7a4 with: context: . push: ${{ github.event_name != 'pull_request' }} From 71acd9603eec4d31694ae7b5830a605e64c89898 Mon Sep 17 00:00:00 2001 From: Lauri Ojansivu Date: Thu, 6 Mar 2025 01:52:46 +0200 Subject: [PATCH 31/65] Updated ChangeLog. --- CHANGELOG.md | 3 +++ 1 file changed, 3 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 4ee5dbe40..d9b5a2574 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -21,6 +21,9 @@ This release adds the following updates: - [Adding Development information to readme](https://github.com/wekan/wekan/pull/5702). Thanks to adam-fu. +- Updated GitHub actions. + [Part 1](https://github.com/wekan/wekan/pull/5703), + [Part 2](https://github.com/wekan/wekan/pull/5704). Thanks to above GitHub users for their contributions and translators for their translations. From fc548b426d5e4eb4fb2d1b34cc309b8e4cdaa8bd Mon Sep 17 00:00:00 2001 From: Lauri Ojansivu Date: Sat, 8 Mar 2025 17:45:02 +0200 Subject: [PATCH 32/65] Updated translations. --- imports/i18n/data/ar.i18n.json | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/imports/i18n/data/ar.i18n.json b/imports/i18n/data/ar.i18n.json index aab82bc46..800d0743b 100644 --- a/imports/i18n/data/ar.i18n.json +++ b/imports/i18n/data/ar.i18n.json @@ -411,10 +411,10 @@ "user-can-not-export-card-to-pdf": "User can not export card to PDF", "exportBoardPopup-title": "Export board", "exportCardPopup-title": "Export card", - "sort": "Sort", - "sorted": "Sorted", - "remove-sort": "Remove sort", - "sort-desc": "Click to Sort List", + "sort": "رتب", + "sorted": "مرتبة", + "remove-sort": "إزالة الفرز\n ", + "sort-desc": "انقر لفرز القائمة\n ", "list-sort-by": "Sort the List By:", "list-label-modifiedAt": "Last Access Time", "list-label-title": "Name of the List", @@ -1207,7 +1207,7 @@ "newlineBecomesNewChecklistItem": "Each line of text becomes one of the checklist items", "newLineNewItem": "One line of text = one checklist item", "newlineBecomesNewChecklistItemOriginOrder": "Each line of text becomes one of the checklist items, original order", - "originOrder": "original order", + "originOrder": "النظام الأصلي\n ", "copyChecklist": "Copy Checklist", "copyChecklistPopup-title": "Copy Checklist", "card-show-lists": "Card Show Lists", From 14167b19b9d3053ac420d89cabf0b3381e39c571 Mon Sep 17 00:00:00 2001 From: Firas Saidi Date: Sat, 8 Mar 2025 18:02:03 +0100 Subject: [PATCH 33/65] cards file --- models/cards.js | 36 +++++++++++++++++++++++------------- 1 file changed, 23 insertions(+), 13 deletions(-) diff --git a/models/cards.js b/models/cards.js index 9da59a4e4..5e2f47a2e 100644 --- a/models/cards.js +++ b/models/cards.js @@ -531,20 +531,30 @@ Cards.helpers({ mapCustomFieldsToBoard(boardId) { // Map custom fields to new board return this.customFields.map(cf => { - const oldCf = ReactiveCache.getCustomField(cf._id); - const newCf = ReactiveCache.getCustomField({ - boardIds: boardId, - name: oldCf.name, - type: oldCf.type, - }); - if (newCf) { - cf._id = newCf._id; - } else if (!_.contains(oldCf.boardIds, boardId)) { - oldCf.addBoard(boardId); - } - return cf; + const oldCf = ReactiveCache.getCustomField(cf._id); + + // Check if oldCf is undefined or null + if (!oldCf) { + console.error(`Custom field with ID ${cf._id} not found.`); + return cf; // Skip this field if oldCf is not found + } + + const newCf = ReactiveCache.getCustomField({ + boardIds: boardId, + name: oldCf.name, + type: oldCf.type, + }); + + if (newCf) { + cf._id = newCf._id; + } else if (!_.contains(oldCf.boardIds, boardId)) { + oldCf.addBoard(boardId); + } + + return cf; }); - }, +}, + copy(boardId, swimlaneId, listId) { const oldId = this._id; From 908a5fc60d5d574a36d4bfd496d3a16fd267ae75 Mon Sep 17 00:00:00 2001 From: Lauri Ojansivu Date: Sat, 8 Mar 2025 19:50:00 +0200 Subject: [PATCH 34/65] Comment out error message of non-existing Custom Field. Thanks to xet7 ! Related #5684 --- models/cards.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/models/cards.js b/models/cards.js index 5e2f47a2e..fedef962f 100644 --- a/models/cards.js +++ b/models/cards.js @@ -535,7 +535,7 @@ Cards.helpers({ // Check if oldCf is undefined or null if (!oldCf) { - console.error(`Custom field with ID ${cf._id} not found.`); + //console.error(`Custom field with ID ${cf._id} not found.`); return cf; // Skip this field if oldCf is not found } From b402676079517e463ed291285f69c04126a00975 Mon Sep 17 00:00:00 2001 From: Lauri Ojansivu Date: Sat, 8 Mar 2025 19:51:23 +0200 Subject: [PATCH 35/65] Removed siteurl from manifest to fix browser console error about not matching URL. Thanks to xet7 ! --- public/old-site.webmanifest | 524 ++++++++++++++++++++++++++++++++++++ public/site.webmanifest | 2 - 2 files changed, 524 insertions(+), 2 deletions(-) create mode 100644 public/old-site.webmanifest diff --git a/public/old-site.webmanifest b/public/old-site.webmanifest new file mode 100644 index 000000000..51e25650c --- /dev/null +++ b/public/old-site.webmanifest @@ -0,0 +1,524 @@ +{ + "name": "Wekan", + "short_name": "Wekan", + "icons": [ + { + "src": "svg-etc/wekan-logo-512.svg", + "sizes": "any", + "type": "image/svg" + }, + { + "src": "android-chrome-192x192.png", + "sizes": "192x192", + "type": "image/png" + }, + { + "src": "android-chrome-512x512.png", + "sizes": "512x512", + "type": "image/png" + }, + { + "src": "Square150x150Logo.scale-100.png", + "sizes": "150x150", + "type": "image/png" + }, + { + "src": "Square44x44Logo.scale-100.png", + "sizes": "44x44", + "type": "image/png" + }, + { + "src": "StoreLogo.scale-100.png", + "sizes": "50x50", + "type": "image/png" + }, + { + "src": "maskable_icon.png", + "sizes": "474x474", + "type": "image/png", + "purpose": "maskable" + }, + { + "src": "monochrome-icon-512x512.png", + "sizes": "512x512", + "type": "image/png", + "purpose": "monochrome" + }, + { + "src": "windows11/SmallTile.scale-100.png", + "sizes": "71x71" + }, + { + "src": "windows11/SmallTile.scale-125.png", + "sizes": "89x89" + }, + { + "src": "windows11/SmallTile.scale-150.png", + "sizes": "107x107" + }, + { + "src": "windows11/SmallTile.scale-200.png", + "sizes": "142x142" + }, + { + "src": "windows11/SmallTile.scale-400.png", + "sizes": "284x284" + }, + { + "src": "windows11/Square150x150Logo.scale-100.png", + "sizes": "150x150" + }, + { + "src": "windows11/Square150x150Logo.scale-125.png", + "sizes": "188x188" + }, + { + "src": "windows11/Square150x150Logo.scale-150.png", + "sizes": "225x225" + }, + { + "src": "windows11/Square150x150Logo.scale-200.png", + "sizes": "300x300" + }, + { + "src": "windows11/Square150x150Logo.scale-400.png", + "sizes": "600x600" + }, + { + "src": "windows11/Wide310x150Logo.scale-100.png", + "sizes": "310x150" + }, + { + "src": "windows11/Wide310x150Logo.scale-125.png", + "sizes": "388x188" + }, + { + "src": "windows11/Wide310x150Logo.scale-150.png", + "sizes": "465x225" + }, + { + "src": "windows11/Wide310x150Logo.scale-200.png", + "sizes": "620x300" + }, + { + "src": "windows11/Wide310x150Logo.scale-400.png", + "sizes": "1240x600" + }, + { + "src": "windows11/LargeTile.scale-100.png", + "sizes": "310x310" + }, + { + "src": "windows11/LargeTile.scale-125.png", + "sizes": "388x388" + }, + { + "src": "windows11/LargeTile.scale-150.png", + "sizes": "465x465" + }, + { + "src": "windows11/LargeTile.scale-200.png", + "sizes": "620x620" + }, + { + "src": "windows11/LargeTile.scale-400.png", + "sizes": "1240x1240" + }, + { + "src": "windows11/Square44x44Logo.scale-100.png", + "sizes": "44x44" + }, + { + "src": "windows11/Square44x44Logo.scale-125.png", + "sizes": "55x55" + }, + { + "src": "windows11/Square44x44Logo.scale-150.png", + "sizes": "66x66" + }, + { + "src": "windows11/Square44x44Logo.scale-200.png", + "sizes": "88x88" + }, + { + "src": "windows11/Square44x44Logo.scale-400.png", + "sizes": "176x176" + }, + { + "src": "windows11/StoreLogo.scale-100.png", + "sizes": "50x50" + }, + { + "src": "windows11/StoreLogo.scale-125.png", + "sizes": "63x63" + }, + { + "src": "windows11/StoreLogo.scale-150.png", + "sizes": "75x75" + }, + { + "src": "windows11/StoreLogo.scale-200.png", + "sizes": "100x100" + }, + { + "src": "windows11/StoreLogo.scale-400.png", + "sizes": "200x200" + }, + { + "src": "windows11/SplashScreen.scale-100.png", + "sizes": "620x300" + }, + { + "src": "windows11/SplashScreen.scale-125.png", + "sizes": "775x375" + }, + { + "src": "windows11/SplashScreen.scale-150.png", + "sizes": "930x450" + }, + { + "src": "windows11/SplashScreen.scale-200.png", + "sizes": "1240x600" + }, + { + "src": "windows11/SplashScreen.scale-400.png", + "sizes": "2480x1200" + }, + { + "src": "windows11/Square44x44Logo.targetsize-16.png", + "sizes": "16x16" + }, + { + "src": "windows11/Square44x44Logo.targetsize-20.png", + "sizes": "20x20" + }, + { + "src": "windows11/Square44x44Logo.targetsize-24.png", + "sizes": "24x24" + }, + { + "src": "windows11/Square44x44Logo.targetsize-30.png", + "sizes": "30x30" + }, + { + "src": "windows11/Square44x44Logo.targetsize-32.png", + "sizes": "32x32" + }, + { + "src": "windows11/Square44x44Logo.targetsize-36.png", + "sizes": "36x36" + }, + { + "src": "windows11/Square44x44Logo.targetsize-40.png", + "sizes": "40x40" + }, + { + "src": "windows11/Square44x44Logo.targetsize-44.png", + "sizes": "44x44" + }, + { + "src": "windows11/Square44x44Logo.targetsize-48.png", + "sizes": "48x48" + }, + { + "src": "windows11/Square44x44Logo.targetsize-60.png", + "sizes": "60x60" + }, + { + "src": "windows11/Square44x44Logo.targetsize-64.png", + "sizes": "64x64" + }, + { + "src": "windows11/Square44x44Logo.targetsize-72.png", + "sizes": "72x72" + }, + { + "src": "windows11/Square44x44Logo.targetsize-80.png", + "sizes": "80x80" + }, + { + "src": "windows11/Square44x44Logo.targetsize-96.png", + "sizes": "96x96" + }, + { + "src": "windows11/Square44x44Logo.targetsize-256.png", + "sizes": "256x256" + }, + { + "src": "windows11/Square44x44Logo.altform-unplated_targetsize-16.png", + "sizes": "16x16" + }, + { + "src": "windows11/Square44x44Logo.altform-unplated_targetsize-20.png", + "sizes": "20x20" + }, + { + "src": "windows11/Square44x44Logo.altform-unplated_targetsize-24.png", + "sizes": "24x24" + }, + { + "src": "windows11/Square44x44Logo.altform-unplated_targetsize-30.png", + "sizes": "30x30" + }, + { + "src": "windows11/Square44x44Logo.altform-unplated_targetsize-32.png", + "sizes": "32x32" + }, + { + "src": "windows11/Square44x44Logo.altform-unplated_targetsize-36.png", + "sizes": "36x36" + }, + { + "src": "windows11/Square44x44Logo.altform-unplated_targetsize-40.png", + "sizes": "40x40" + }, + { + "src": "windows11/Square44x44Logo.altform-unplated_targetsize-44.png", + "sizes": "44x44" + }, + { + "src": "windows11/Square44x44Logo.altform-unplated_targetsize-48.png", + "sizes": "48x48" + }, + { + "src": "windows11/Square44x44Logo.altform-unplated_targetsize-60.png", + "sizes": "60x60" + }, + { + "src": "windows11/Square44x44Logo.altform-unplated_targetsize-64.png", + "sizes": "64x64" + }, + { + "src": "windows11/Square44x44Logo.altform-unplated_targetsize-72.png", + "sizes": "72x72" + }, + { + "src": "windows11/Square44x44Logo.altform-unplated_targetsize-80.png", + "sizes": "80x80" + }, + { + "src": "windows11/Square44x44Logo.altform-unplated_targetsize-96.png", + "sizes": "96x96" + }, + { + "src": "windows11/Square44x44Logo.altform-unplated_targetsize-256.png", + "sizes": "256x256" + }, + { + "src": "windows11/Square44x44Logo.altform-lightunplated_targetsize-16.png", + "sizes": "16x16" + }, + { + "src": "windows11/Square44x44Logo.altform-lightunplated_targetsize-20.png", + "sizes": "20x20" + }, + { + "src": "windows11/Square44x44Logo.altform-lightunplated_targetsize-24.png", + "sizes": "24x24" + }, + { + "src": "windows11/Square44x44Logo.altform-lightunplated_targetsize-30.png", + "sizes": "30x30" + }, + { + "src": "windows11/Square44x44Logo.altform-lightunplated_targetsize-32.png", + "sizes": "32x32" + }, + { + "src": "windows11/Square44x44Logo.altform-lightunplated_targetsize-36.png", + "sizes": "36x36" + }, + { + "src": "windows11/Square44x44Logo.altform-lightunplated_targetsize-40.png", + "sizes": "40x40" + }, + { + "src": "windows11/Square44x44Logo.altform-lightunplated_targetsize-44.png", + "sizes": "44x44" + }, + { + "src": "windows11/Square44x44Logo.altform-lightunplated_targetsize-48.png", + "sizes": "48x48" + }, + { + "src": "windows11/Square44x44Logo.altform-lightunplated_targetsize-60.png", + "sizes": "60x60" + }, + { + "src": "windows11/Square44x44Logo.altform-lightunplated_targetsize-64.png", + "sizes": "64x64" + }, + { + "src": "windows11/Square44x44Logo.altform-lightunplated_targetsize-72.png", + "sizes": "72x72" + }, + { + "src": "windows11/Square44x44Logo.altform-lightunplated_targetsize-80.png", + "sizes": "80x80" + }, + { + "src": "windows11/Square44x44Logo.altform-lightunplated_targetsize-96.png", + "sizes": "96x96" + }, + { + "src": "windows11/Square44x44Logo.altform-lightunplated_targetsize-256.png", + "sizes": "256x256" + }, + { + "src": "android/android-launchericon-512-512.png", + "sizes": "512x512" + }, + { + "src": "android/android-launchericon-192-192.png", + "sizes": "192x192" + }, + { + "src": "android/android-launchericon-144-144.png", + "sizes": "144x144" + }, + { + "src": "android/android-launchericon-96-96.png", + "sizes": "96x96" + }, + { + "src": "android/android-launchericon-72-72.png", + "sizes": "72x72" + }, + { + "src": "android/android-launchericon-48-48.png", + "sizes": "48x48" + }, + { + "src": "ios/16.png", + "sizes": "16x16" + }, + { + "src": "ios/20.png", + "sizes": "20x20" + }, + { + "src": "ios/29.png", + "sizes": "29x29" + }, + { + "src": "ios/32.png", + "sizes": "32x32" + }, + { + "src": "ios/40.png", + "sizes": "40x40" + }, + { + "src": "ios/50.png", + "sizes": "50x50" + }, + { + "src": "ios/57.png", + "sizes": "57x57" + }, + { + "src": "ios/58.png", + "sizes": "58x58" + }, + { + "src": "ios/60.png", + "sizes": "60x60" + }, + { + "src": "ios/64.png", + "sizes": "64x64" + }, + { + "src": "ios/72.png", + "sizes": "72x72" + }, + { + "src": "ios/76.png", + "sizes": "76x76" + }, + { + "src": "ios/80.png", + "sizes": "80x80" + }, + { + "src": "ios/87.png", + "sizes": "87x87" + }, + { + "src": "ios/100.png", + "sizes": "100x100" + }, + { + "src": "ios/114.png", + "sizes": "114x114" + }, + { + "src": "ios/120.png", + "sizes": "120x120" + }, + { + "src": "ios/128.png", + "sizes": "128x128" + }, + { + "src": "ios/144.png", + "sizes": "144x144" + }, + { + "src": "ios/152.png", + "sizes": "152x152" + }, + { + "src": "ios/167.png", + "sizes": "167x167" + }, + { + "src": "ios/180.png", + "sizes": "180x180" + }, + { + "src": "ios/192.png", + "sizes": "192x192" + }, + { + "src": "ios/256.png", + "sizes": "256x256" + }, + { + "src": "ios/512.png", + "sizes": "512x512" + }, + { + "src": "ios/1024.png", + "sizes": "1024x1024" + } + ], + "screenshots": [ + { + "src": "screenshot1.webp", + "sizes": "1280x720", + "type": "image/webp" + }, + { + "src": "screenshot2.webp", + "sizes": "1280x720", + "type": "image/webp" + } + ], + "theme_color": "#000000", + "background_color": "#000000", + "start_url": "sign-in", + "display": "standalone", + "orientation": "any", + "categories": [ + "productivity" + ], + "iarc_rating_id": "70d7c4a4-3e5a-4714-a7dc-fa006613ba96", + "description": "Open Source kanban with MIT license", + "dir": "auto", + "scope": "https://boards.wekan.team", + "prefer_related_applications": false, + "display_override": [ + "standalone" + ] +} diff --git a/public/site.webmanifest b/public/site.webmanifest index 51e25650c..beaf2ffbd 100644 --- a/public/site.webmanifest +++ b/public/site.webmanifest @@ -513,10 +513,8 @@ "categories": [ "productivity" ], - "iarc_rating_id": "70d7c4a4-3e5a-4714-a7dc-fa006613ba96", "description": "Open Source kanban with MIT license", "dir": "auto", - "scope": "https://boards.wekan.team", "prefer_related_applications": false, "display_override": [ "standalone" From 345aece0f2a191f3fb449d02f777db9d9be20268 Mon Sep 17 00:00:00 2001 From: Lauri Ojansivu Date: Sat, 8 Mar 2025 19:55:49 +0200 Subject: [PATCH 36/65] Updated ChangeLog. --- CHANGELOG.md | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index d9b5a2574..a4b638c43 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -25,6 +25,11 @@ This release adds the following updates: [Part 1](https://github.com/wekan/wekan/pull/5703), [Part 2](https://github.com/wekan/wekan/pull/5704). +and fixes the following bugs: + +- [Exception while invoking method 'copyCard' TypeError: Cannot read property 'name' of undefined](https://github.com/wekan/wekan/pull/5711). + Thanks to Firas-Git. + Thanks to above GitHub users for their contributions and translators for their translations. # v7.82 2025-02-24 WeKan ® release From 11199b622501418a6728f179a88213c0be6dd0b4 Mon Sep 17 00:00:00 2001 From: Lauri Ojansivu Date: Sat, 8 Mar 2025 19:58:05 +0200 Subject: [PATCH 37/65] Updated ChangeLog. --- CHANGELOG.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index a4b638c43..d30c1a0bb 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -27,8 +27,12 @@ This release adds the following updates: and fixes the following bugs: +- [Removed siteurl from manifest to fix browser console error about not matching URL](https://github.com/wekan/wekan/commit/b402676079517e463ed291285f69c04126a00975). + Thanks to xet7. - [Exception while invoking method 'copyCard' TypeError: Cannot read property 'name' of undefined](https://github.com/wekan/wekan/pull/5711). Thanks to Firas-Git. +- [Comment out error message of non-existing Custom Field](https://github.com/wekan/wekan/commit/908a5fc60d5d574a36d4bfd496d3a16fd267ae75). + Thanks to xet7. Thanks to above GitHub users for their contributions and translators for their translations. From e7462ada12ec8edfd08d6c3b3a97a034211d51eb Mon Sep 17 00:00:00 2001 From: Lauri Ojansivu Date: Sat, 8 Mar 2025 21:09:09 +0200 Subject: [PATCH 38/65] Reverted Docker changes of WeKan v7.68 to get WeKan Docker version working. Thanks to xet7 ! Fixes #5697 --- Dockerfile | 228 +++++++++++++++++++++++++++++++---------------------- 1 file changed, 133 insertions(+), 95 deletions(-) diff --git a/Dockerfile b/Dockerfile index ff920af9d..64a4e921f 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,76 +1,31 @@ -FROM scratch AS downloads - -# Download NodeJS bundle -ADD https://static.meteor.com/dev-bundle-node-os/v14.21.4/node-v14.21.4-linux-x64.tar.gz node.tar.gz - -# Download Meteor bundle -ADD https://static.meteor.com/packages-bootstrap/2.16/meteor-bootstrap-os.linux.x86_64.tar.gz meteor.tar.gz - -FROM ubuntu:24.04 AS build - -# Install node from official archive -RUN --mount=type=bind,from=downloads,source=node.tar.gz,target=node.tar.gz \ - tar xzf node.tar.gz --strip-components=1 --keep-old-files --no-same-owner - -# Install meteor from official archive -RUN --mount=type=bind,from=downloads,source=meteor.tar.gz,target=meteor.tar.gz \ - tar xzf meteor.tar.gz -C $HOME --no-same-owner - -# Update the npm version -RUN npm install -g npm@6.14.17 - -# Install several build dependencies -RUN apt update && \ - apt install --yes --no-install-suggests --no-install-recommends ssh git g++ curl ca-certificates && \ - rm -r /var/lib/apt/lists - -# Change to temporary working directory -WORKDIR /workdir - -# Copy package.json and package-lock.json to install application dependencies -COPY package.json . -COPY package-lock.json . - -# Install build dependencies -RUN $HOME/.meteor/meteor npm install --production - -# Copy meteor application configurations -COPY .meteor .meteor - -# Copy application sources -COPY packages packages -COPY imports imports -COPY config config -COPY models models -COPY public public -COPY server server -COPY client client - -# Build the application -RUN $HOME/.meteor/meteor build --directory /build --allow-superuser - -# Enter server bundle directory -WORKDIR /build/bundle/programs/server - -# Install server dependencies -RUN $HOME/.meteor/meteor npm install --production - -# Enter installation directory of fibers -WORKDIR /build/bundle/programs/server/node_modules/fibers - -# Build fibers integrations -RUN node build.js - -FROM ubuntu:24.04 AS wekan - -# Add metadata to image +FROM ubuntu:24.04 LABEL maintainer="wekan" LABEL org.opencontainers.image.ref.name="ubuntu" LABEL org.opencontainers.image.version="24.04" LABEL org.opencontainers.image.source="https://github.com/wekan/wekan" -# Set default environment variables -ENV WITH_API=true \ +# 2022-04-25: +# - gyp does not yet work with Ubuntu 22.04 ubuntu:rolling, +# so changing to 21.10. https://github.com/wekan/wekan/issues/4488 + +# 2021-09-18: +# - Above Ubuntu base image copied from Docker Hub ubuntu:hirsute-20210825 +# to Quay to avoid Docker Hub rate limits. +ARG DEBIAN_FRONTEND=noninteractive + +ENV BUILD_DEPS="apt-utils gnupg gosu wget bzip2 g++ curl libarchive-tools build-essential git ca-certificates python3" + +ENV \ + DEBUG=false \ + NODE_VERSION=v14.21.4 \ + METEOR_RELEASE=METEOR@2.14 \ + USE_EDGE=false \ + METEOR_EDGE=1.5-beta.17 \ + NPM_VERSION=6.14.17 \ + FIBERS_VERSION=4.0.1 \ + ARCHITECTURE=linux-x64 \ + SRC_PATH=./ \ + WITH_API=true \ RESULTS_PER_PAGE="" \ DEFAULT_BOARD_ID="" \ ACCOUNTS_LOCKOUT_KNOWN_USERS_FAILURES_BEFORE=3 \ @@ -203,36 +158,119 @@ ENV WITH_API=true \ WRITABLE_PATH=/data \ S3="" -# Install node and application sources from build stage -RUN --mount=type=bind,from=downloads,source=node.tar.gz,target=node.tar.gz \ - --mount=type=bind,from=build,source=/build,target=/build \ - # Install NodeJS - tar xzf node.tar.gz --strip-components=1 --keep-old-files --no-same-owner && \ - # Add the wekan user - useradd --uid 999 --user-group --system wekan && \ - # Copy wekan bundle - cp -r /build/bundle /wekan && \ - # Remove the web.browser.legacy platform - rm -r /wekan/programs/web.browser.legacy && \ - # Change ownership of wekan directory - chown wekan:wekan -R /wekan && \ - # Create the data directory - mkdir /data && \ - # Change ownership of data directory - chown wekan:root -R /data +# NODE_OPTIONS="--max_old_space_size=4096" + +#--------------------------------------------- +# == at docker-compose.yml: AUTOLOGIN WITH OIDC/OAUTH2 ==== +# https://github.com/wekan/wekan/wiki/autologin +#- OIDC_REDIRECTION_ENABLED=true +#--------------------------------------------------------------------- + +# Copy the app to the image +COPY ${SRC_PATH} /home/wekan/app + +# Install OS +RUN < Date: Sat, 8 Mar 2025 21:14:12 +0200 Subject: [PATCH 39/65] Updated ChangeLog. --- CHANGELOG.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index d30c1a0bb..814452808 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -33,6 +33,8 @@ and fixes the following bugs: Thanks to Firas-Git. - [Comment out error message of non-existing Custom Field](https://github.com/wekan/wekan/commit/908a5fc60d5d574a36d4bfd496d3a16fd267ae75). Thanks to xet7. +- [Reverted Docker changes of WeKan v7.68 to get WeKan Docker version working](https://github.com/wekan/wekan/commit/e7462ada12ec8edfd08d6c3b3a97a034211d51eb). + Thanks to xet7. Thanks to above GitHub users for their contributions and translators for their translations. From f5f0ba721eb6669a7934a3c49dffb73284021396 Mon Sep 17 00:00:00 2001 From: Lauri Ojansivu Date: Sat, 8 Mar 2025 21:32:37 +0200 Subject: [PATCH 40/65] v7.83 --- CHANGELOG.md | 2 +- Stackerfile.yml | 2 +- docs/DeveloperDocs/Design-Principles.md | 1 + docs/Platforms/Propietary/Windows/Offline.md | 4 ++-- package-lock.json | 2 +- package.json | 2 +- public/api/wekan.html | 6 +++--- public/api/wekan.yml | 2 +- sandstorm-pkgdef.capnp | 4 ++-- snapcraft.yaml | 8 ++++---- 10 files changed, 17 insertions(+), 16 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 814452808..218a0489e 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -15,7 +15,7 @@ Fixing other platforms In Progress. [How to upgrade WeKan](https://github.com/wekan/wekan/issues/4585) -# Upcoming WeKan ® release +# v7.83 2025-03-08 WeKan ® release This release adds the following updates: diff --git a/Stackerfile.yml b/Stackerfile.yml index 3888e7cc3..bf2926648 100644 --- a/Stackerfile.yml +++ b/Stackerfile.yml @@ -1,5 +1,5 @@ appId: wekan-public/apps/77b94f60-dec9-0136-304e-16ff53095928 -appVersion: "v7.82.0" +appVersion: "v7.83.0" files: userUploads: - README.md diff --git a/docs/DeveloperDocs/Design-Principles.md b/docs/DeveloperDocs/Design-Principles.md index 7f9b20bd5..cfca81bab 100644 --- a/docs/DeveloperDocs/Design-Principles.md +++ b/docs/DeveloperDocs/Design-Principles.md @@ -2,6 +2,7 @@ - 2024-08 Design discussion here: https://github.com/wekan/wekan/discussions/5507 - Original WeKan Design: + - Uses WeKan style confirm popups `Popup.afterConfirm(` , translations etc. Please look at existing code to keep same style. - Kanban, the good parts. Like was done when figuring out best design for Swimlanes https://github.com/wekan/wekan/issues/955 - Intuitive, easy to figure out, prevent messing up something https://github.com/wekan/wekan/wiki/Monkey-Proof-Software - Polished UI/UX diff --git a/docs/Platforms/Propietary/Windows/Offline.md b/docs/Platforms/Propietary/Windows/Offline.md index 0bcee8594..0a12add13 100644 --- a/docs/Platforms/Propietary/Windows/Offline.md +++ b/docs/Platforms/Propietary/Windows/Offline.md @@ -10,7 +10,7 @@ This is without container (without Docker or Snap). Right click and download files 1-4: -1. [wekan-7.82-amd64-windows.zip](https://github.com/wekan/wekan/releases/download/v7.82/wekan-7.82-amd64-windows.zip) +1. [wekan-7.83-amd64-windows.zip](https://github.com/wekan/wekan/releases/download/v7.83/wekan-7.83-amd64-windows.zip) 2. [node.exe](https://nodejs.org/dist/latest-v14.x/win-x64/node.exe) @@ -22,7 +22,7 @@ Right click and download files 1-4: 6. Double click `mongodb-windows-x86_64-6.0.20-signed.msi` . In installer, uncheck downloading MongoDB compass. -7. Unzip `wekan-7.82-amd64-windows.zip` , inside it is directory `bundle`, to it copy other files: +7. Unzip `wekan-7.83-amd64-windows.zip` , inside it is directory `bundle`, to it copy other files: ``` bundle (directory) diff --git a/package-lock.json b/package-lock.json index 760f0b995..200421949 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,6 +1,6 @@ { "name": "wekan", - "version": "v7.82.0", + "version": "v7.83.0", "lockfileVersion": 1, "requires": true, "dependencies": { diff --git a/package.json b/package.json index 3065b90f0..41d055f7d 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "wekan", - "version": "v7.82.0", + "version": "v7.83.0", "description": "Open-Source kanban", "private": true, "repository": { diff --git a/public/api/wekan.html b/public/api/wekan.html index cc7361116..083eb9a57 100644 --- a/public/api/wekan.html +++ b/public/api/wekan.html @@ -7,7 +7,7 @@ - Wekan REST API v7.82 + Wekan REST API v7.83 @@ -1549,7 +1549,7 @@ var n=this.pipeline.run(e.tokenizer(t)),r=new e.Vector,i=[],o=this._fields.reduc
      • - Wekan REST API v7.82 + Wekan REST API v7.83
      • @@ -2068,7 +2068,7 @@ var n=this.pipeline.run(e.tokenizer(t)),r=new e.Vector,i=[],o=this._fields.reduc
        -

        Wekan REST API v7.82

        +

        Wekan REST API v7.83

        Scroll down for code samples, example requests and responses. Select a language for code samples from the tabs above or the mobile navigation menu.

        diff --git a/public/api/wekan.yml b/public/api/wekan.yml index 29c64faf2..8879fd584 100644 --- a/public/api/wekan.yml +++ b/public/api/wekan.yml @@ -1,7 +1,7 @@ swagger: '2.0' info: title: Wekan REST API - version: v7.82 + version: v7.83 description: | The REST API allows you to control and extend Wekan with ease. diff --git a/sandstorm-pkgdef.capnp b/sandstorm-pkgdef.capnp index aed75d965..4d5388daa 100644 --- a/sandstorm-pkgdef.capnp +++ b/sandstorm-pkgdef.capnp @@ -22,10 +22,10 @@ const pkgdef :Spk.PackageDefinition = ( appTitle = (defaultText = "Wekan"), # The name of the app as it is displayed to the user. - appVersion = 782, + appVersion = 783, # Increment this for every release. - appMarketingVersion = (defaultText = "7.82.0~2025-02-24"), + appMarketingVersion = (defaultText = "7.83.0~2025-03-08"), # Human-readable presentation of the app version. minUpgradableAppVersion = 0, diff --git a/snapcraft.yaml b/snapcraft.yaml index caa1f35b4..7f518ea5a 100644 --- a/snapcraft.yaml +++ b/snapcraft.yaml @@ -1,5 +1,5 @@ name: wekan -version: '7.82' +version: '7.83' base: core20 summary: Open Source kanban description: | @@ -170,9 +170,9 @@ parts: # Cleanup mkdir .build cd .build - wget https://github.com/wekan/wekan/releases/download/v7.82/wekan-7.82-amd64.zip - unzip wekan-7.82-amd64.zip - rm wekan-7.82-amd64.zip + wget https://github.com/wekan/wekan/releases/download/v7.83/wekan-7.83-amd64.zip + unzip wekan-7.83-amd64.zip + rm wekan-7.83-amd64.zip cd .. ##cd .build/bundle ##find . -type d -name '*-garbage*' | xargs rm -rf From 827ee615c1b0ceae826038e29fbc29821eb10eff Mon Sep 17 00:00:00 2001 From: Rayene123 Date: Sun, 9 Mar 2025 14:12:20 +0000 Subject: [PATCH 41/65] added the start , due , end hour --- client/components/cards/cardDate.js | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/client/components/cards/cardDate.js b/client/components/cards/cardDate.js index 6e093d441..58550792e 100644 --- a/client/components/cards/cardDate.js +++ b/client/components/cards/cardDate.js @@ -322,19 +322,19 @@ CardCustomFieldDate.register('cardCustomFieldDate'); (class extends CardStartDate { showDate() { - return this.date.get().format('L'); + return this.date.get().format('YYYY-MM-DD HH:mm'); } }.register('minicardStartDate')); (class extends CardDueDate { showDate() { - return this.date.get().format('L'); + return this.date.get().format('YYYY-MM-DD HH:mm'); } }.register('minicardDueDate')); (class extends CardEndDate { showDate() { - return this.date.get().format('L'); + return this.date.get().format('YYYY-MM-DD HH:mm'); } }.register('minicardEndDate')); From 6d982cdfd92715438fde74921cc02cc2393506ac Mon Sep 17 00:00:00 2001 From: Rayene123 Date: Sun, 9 Mar 2025 14:15:17 +0000 Subject: [PATCH 42/65] formatted the date when storing it --- client/components/cards/cardDate.js | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/client/components/cards/cardDate.js b/client/components/cards/cardDate.js index 58550792e..5d255614d 100644 --- a/client/components/cards/cardDate.js +++ b/client/components/cards/cardDate.js @@ -11,7 +11,7 @@ import { DatePicker } from '/client/lib/datepicker'; } _storeDate(date) { - this.card.setReceived(date); + this.card.setReceived(moment(date).format('YYYY-MM-DD HH:mm')); } _deleteDate() { @@ -37,7 +37,7 @@ import { DatePicker } from '/client/lib/datepicker'; } _storeDate(date) { - this.card.setStart(date); + this.card.setStart(moment(date).format('YYYY-MM-DD HH:mm')); } _deleteDate() { @@ -60,7 +60,7 @@ import { DatePicker } from '/client/lib/datepicker'; } _storeDate(date) { - this.card.setDue(date); + this.card.setDue(moment(date).format('YYYY-MM-DD HH:mm')); } _deleteDate() { @@ -83,7 +83,7 @@ import { DatePicker } from '/client/lib/datepicker'; } _storeDate(date) { - this.card.setEnd(date); + this.card.setEnd(moment(date).format('YYYY-MM-DD HH:mm')); } _deleteDate() { From cfcf68213491a40b79245234300ecfa4f5ca380b Mon Sep 17 00:00:00 2001 From: Lauri Ojansivu Date: Sun, 9 Mar 2025 19:08:20 +0200 Subject: [PATCH 43/65] Updated ChangeLog. --- CHANGELOG.md | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 218a0489e..bcf05c995 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -15,6 +15,15 @@ Fixing other platforms In Progress. [How to upgrade WeKan](https://github.com/wekan/wekan/issues/4585) +# Upcoming WeKan ® release + +This release adds the following new features: + +- [Time on minicard for Start/End/Due Date](https://github.com/wekan/wekan/pull/5712). + Thanks to Rayene123. + +Thanks to above GitHub users for their contributions and translators for their translations. + # v7.83 2025-03-08 WeKan ® release This release adds the following updates: From c0e4e01deb936653df69b4fd21598ac27cd349a0 Mon Sep 17 00:00:00 2001 From: Lauri Ojansivu Date: Sun, 9 Mar 2025 20:03:42 +0200 Subject: [PATCH 44/65] Added developer docs about Login code. Thanks to xet7 ! Fixes #5714 --- docs/DeveloperDocs/Developer-Documentation.md | 1 + 1 file changed, 1 insertion(+) diff --git a/docs/DeveloperDocs/Developer-Documentation.md b/docs/DeveloperDocs/Developer-Documentation.md index a47769311..7393c06da 100644 --- a/docs/DeveloperDocs/Developer-Documentation.md +++ b/docs/DeveloperDocs/Developer-Documentation.md @@ -6,6 +6,7 @@ Please read the meteor style guide before making any significant contribution. # Stories about how Wekan works, and developing Wekan +- [Login code](https://github.com/wekan/wekan/issues/5714) - https://www.mongodb.com/docs/drivers/node/v3.7/fundamentals/promises/ - [Do not use code formatters like Prettier and ESLint](https://github.com/wekan/wekan/pull/4633#issuecomment-1214214591) - [How realtime board updates work](https://github.com/wekan/wekan/issues/3788#issuecomment-834649553) From 028ec46f468dbbd977cc6996b244dc95842c9570 Mon Sep 17 00:00:00 2001 From: Lauri Ojansivu Date: Sun, 9 Mar 2025 20:05:08 +0200 Subject: [PATCH 45/65] Updated ChangeLog. --- CHANGELOG.md | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index bcf05c995..e03a85024 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -22,6 +22,11 @@ This release adds the following new features: - [Time on minicard for Start/End/Due Date](https://github.com/wekan/wekan/pull/5712). Thanks to Rayene123. +and adds the following updates: + +- [Added developer docs about Login code](https://github.com/wekan/wekan/commit/c0e4e01deb936653df69b4fd21598ac27cd349a0). + Thanks to xet7. + Thanks to above GitHub users for their contributions and translators for their translations. # v7.83 2025-03-08 WeKan ® release From 4510ddda1507bc775b9523d3673adba48d7a8385 Mon Sep 17 00:00:00 2001 From: Lauri Ojansivu Date: Tue, 11 Mar 2025 04:19:45 +0200 Subject: [PATCH 46/65] Fix typo at Shortcuts. Thanks to xet7 ! --- client/lib/keyboard.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/client/lib/keyboard.js b/client/lib/keyboard.js index 9faa163f7..f817e9aa3 100644 --- a/client/lib/keyboard.js +++ b/client/lib/keyboard.js @@ -366,7 +366,7 @@ Template.keyboardShortcuts.helpers({ }, { keys: ['ctrl + alt + number keys 1-9'], - action: 'toggle-asignees' + action: 'toggle-assignees' }, ], }); From f99b7357467097916d0bfb1a26be5ae8355ff2af Mon Sep 17 00:00:00 2001 From: Lauri Ojansivu Date: Tue, 11 Mar 2025 04:23:55 +0200 Subject: [PATCH 47/65] Updated ChangeLog. --- CHANGELOG.md | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index e03a85024..b9d945e97 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -27,6 +27,11 @@ and adds the following updates: - [Added developer docs about Login code](https://github.com/wekan/wekan/commit/c0e4e01deb936653df69b4fd21598ac27cd349a0). Thanks to xet7. +and fixes the following bugs: + +- [Fixed typo at Shortcuts, now became visible translations of assignees visibility 1-9 shortcuts](https://github.com/wekan/wekan/commit/4510ddda1507bc775b9523d3673adba48d7a8385). + Thanks to xet7. + Thanks to above GitHub users for their contributions and translators for their translations. # v7.83 2025-03-08 WeKan ® release From a2911bc9c3bd94ef583388931d2cd354cc8657e3 Mon Sep 17 00:00:00 2001 From: Lauri Ojansivu Date: Sat, 15 Mar 2025 19:32:16 +0200 Subject: [PATCH 48/65] Fixed building OpenAPI docs. Thanks to xet7 ! Fixes #5512 --- openapi/generate_openapi.py | 2 + public/api/wekan.html | 11479 ++++++++++------------------------ releases/rebuild-docs.sh | 10 +- 3 files changed, 3235 insertions(+), 8256 deletions(-) diff --git a/openapi/generate_openapi.py b/openapi/generate_openapi.py index 2398f1d57..83966f5bf 100644 --- a/openapi/generate_openapi.py +++ b/openapi/generate_openapi.py @@ -65,6 +65,8 @@ def get_req_body_elems(obj, elems): elif obj.type in ('LogicalExpression', 'BinaryExpression', 'AssignmentExpression'): get_req_body_elems(obj.left, elems) get_req_body_elems(obj.right, elems) + elif obj.type == 'ChainExpression': + get_req_body_elems(obj.expression, elems) elif obj.type in ('ReturnStatement', 'UnaryExpression'): if obj.argument is not None: get_req_body_elems(obj.argument, elems) diff --git a/public/api/wekan.html b/public/api/wekan.html index 083eb9a57..1548d31a6 100644 --- a/public/api/wekan.html +++ b/public/api/wekan.html @@ -7,7 +7,7 @@ - Wekan REST API v7.83 + Wekan REST API @@ -750,7 +750,6 @@ html, body { border: 1px solid #F7E633; background: linear-gradient(to top left, #F7E633 0%, #F1D32F 100%); } - .content pre, .content blockquote { background-color: #1E2224; color: #fff; @@ -1466,30 +1465,10 @@ Darkula color scheme from the JetBrains family of IDEs var n=this.pipeline.run(e.tokenizer(t)),r=new e.Vector,i=[],o=this._fields.reduce(function(e,t){return e+t.boost},0);return n.some(function(e){return this.tokenStore.has(e)},this)?(n.forEach(function(t,n,s){var a=1/s.length*this._fields.length*o,u=this,c=this.tokenStore.expand(t).reduce(function(n,i){var o=u.corpusTokens.indexOf(i),s=u.idf(i),c=1,l=new e.SortedSet;if(i!==t){var f=Math.max(3,i.length-t.length);c=1/Math.log(f)}return o>-1&&r.insert(o,a*s*c),Object.keys(u.tokenStore.get(i)).forEach(function(e){l.add(e)}),n.union(l)},new e.SortedSet);i.push(c)},this),i.reduce(function(e,t){return e.intersect(t)}).map(function(e){return{ref:e,score:r.similarity(this.documentVector(e))}},this).sort(function(e,t){return t.score-e.score})):[]},e.Index.prototype.documentVector=function(t){for(var n=this.documentStore.get(t),r=n.length,i=new e.Vector,o=0;ot;t+=1)n.push(e[t].listener);return n},r.getListenersAsObject=function(e){var t,n=this.getListeners(e);return n instanceof Array&&(t={},t[e]=n),t||n},r.addListener=function(e,n){var r,i=this.getListenersAsObject(e),o="object"==typeof n;for(r in i)i.hasOwnProperty(r)&&-1===t(i[r],n)&&i[r].push(o?n:{listener:n,once:!1});return this},r.on=n("addListener"),r.addOnceListener=function(e,t){return this.addListener(e,{listener:t,once:!0})},r.once=n("addOnceListener"),r.defineEvent=function(e){return this.getListeners(e),this},r.defineEvents=function(e){for(var t=0;e.length>t;t+=1)this.defineEvent(e[t]);return this},r.removeListener=function(e,n){var r,i,o=this.getListenersAsObject(e);for(i in o)o.hasOwnProperty(i)&&-1!==(r=t(o[i],n))&&o[i].splice(r,1);return this},r.off=n("removeListener"),r.addListeners=function(e,t){return this.manipulateListeners(!1,e,t)},r.removeListeners=function(e,t){return this.manipulateListeners(!0,e,t)},r.manipulateListeners=function(e,t,n){var r,i,o=e?this.removeListener:this.addListener,s=e?this.removeListeners:this.addListeners;if("object"!=typeof t||t instanceof RegExp)for(r=n.length;r--;)o.call(this,t,n[r]);else for(r in t)t.hasOwnProperty(r)&&(i=t[r])&&("function"==typeof i?o.call(this,r,i):s.call(this,r,i));return this},r.removeEvent=function(e){var t,n=typeof e,r=this._getEvents();if("string"===n)delete r[e];else if("object"===n)for(t in r)r.hasOwnProperty(t)&&e.test(t)&&delete r[t];else delete this._events;return this},r.removeAllListeners=n("removeEvent"),r.emitEvent=function(e,t){var n,r,i,o=this.getListenersAsObject(e);for(i in o)if(o.hasOwnProperty(i))for(r=o[i].length;r--;)n=o[i][r],!0===n.once&&this.removeListener(e,n.listener),n.listener.apply(this,t||[])===this._getOnceReturnValue()&&this.removeListener(e,n.listener);return this},r.trigger=n("emitEvent"),r.emit=function(e){var t=Array.prototype.slice.call(arguments,1);return this.emitEvent(e,t)},r.setOnceReturnValue=function(e){return this._onceReturnValue=e,this},r._getOnceReturnValue=function(){return!this.hasOwnProperty("_onceReturnValue")||this._onceReturnValue},r._getEvents=function(){return this._events||(this._events={})},e.noConflict=function(){return i.EventEmitter=o,e},"function"==typeof define&&define.amd?define("eventEmitter/EventEmitter",[],function(){return e}):"object"==typeof module&&module.exports?module.exports=e:this.EventEmitter=e}.call(this),function(e){function t(t){var n=e.event;return n.target=n.target||n.srcElement||t,n}var n=document.documentElement,r=function(){};n.addEventListener?r=function(e,t,n){e.addEventListener(t,n,!1)}:n.attachEvent&&(r=function(e,n,r){e[n+r]=r.handleEvent?function(){var n=t(e);r.handleEvent.call(r,n)}:function(){var n=t(e);r.call(e,n)},e.attachEvent("on"+n,e[n+r])});var i=function(){};n.removeEventListener?i=function(e,t,n){e.removeEventListener(t,n,!1)}:n.detachEvent&&(i=function(e,t,n){e.detachEvent("on"+t,e[t+n]);try{delete e[t+n]}catch(r){e[t+n]=void 0}});var o={bind:r,unbind:i};"function"==typeof define&&define.amd?define("eventie/eventie",o):e.eventie=o}(this),function(e,t){"function"==typeof define&&define.amd?define(["eventEmitter/EventEmitter","eventie/eventie"],function(n,r){return t(e,n,r)}):"object"==typeof exports?module.exports=t(e,require("wolfy87-eventemitter"),require("eventie")):e.imagesLoaded=t(e,e.EventEmitter,e.eventie)}(window,function(e,t,n){function r(e,t){for(var n in t)e[n]=t[n];return e}function i(e){return"[object Array]"===d.call(e)}function o(e){var t=[];if(i(e))t=e;else if("number"==typeof e.length)for(var n=0,r=e.length;r>n;n++)t.push(e[n]);else t.push(e);return t}function s(e,t,n){if(!(this instanceof s))return new s(e,t);"string"==typeof e&&(e=document.querySelectorAll(e)),this.elements=o(e),this.options=r({},this.options),"function"==typeof t?n=t:r(this.options,t),n&&this.on("always",n),this.getImages(),c&&(this.jqDeferred=new c.Deferred);var i=this;setTimeout(function(){i.check()})}function a(e){this.img=e}function u(e){this.src=e,p[e]=this}var c=e.jQuery,l=e.console,f=void 0!==l,d=Object.prototype.toString;s.prototype=new t,s.prototype.options={},s.prototype.getImages=function(){this.images=[];for(var e=0,t=this.elements.length;t>e;e++){var n=this.elements[e];"IMG"===n.nodeName&&this.addImage(n);var r=n.nodeType;if(r&&(1===r||9===r||11===r))for(var i=n.querySelectorAll("img"),o=0,s=i.length;s>o;o++){var a=i[o];this.addImage(a)}}},s.prototype.addImage=function(e){var t=new a(e);this.images.push(t)},s.prototype.check=function(){function e(e,i){return t.options.debug&&f&&l.log("confirm",e,i),t.progress(e),n++,n===r&&t.complete(),!0}var t=this,n=0,r=this.images.length;if(this.hasAnyBroken=!1,!r)return void this.complete();for(var i=0;r>i;i++){var o=this.images[i];o.on("confirm",e),o.check()}},s.prototype.progress=function(e){this.hasAnyBroken=this.hasAnyBroken||!e.isLoaded;var t=this;setTimeout(function(){t.emit("progress",t,e),t.jqDeferred&&t.jqDeferred.notify&&t.jqDeferred.notify(t,e)})},s.prototype.complete=function(){var e=this.hasAnyBroken?"fail":"done";this.isComplete=!0;var t=this;setTimeout(function(){if(t.emit(e,t),t.emit("always",t),t.jqDeferred){var n=t.hasAnyBroken?"reject":"resolve";t.jqDeferred[n](t)}})},c&&(c.fn.imagesLoaded=function(e,t){return new s(this,e,t).jqDeferred.promise(c(this))}),a.prototype=new t,a.prototype.check=function(){var e=p[this.img.src]||new u(this.img.src);if(e.isConfirmed)return void this.confirm(e.isLoaded,"cached was confirmed");if(this.img.complete&&void 0!==this.img.naturalWidth)return void this.confirm(0!==this.img.naturalWidth,"naturalWidth");var t=this;e.on("confirm",function(e,n){return t.confirm(e.isLoaded,n),!0}),e.check()},a.prototype.confirm=function(e,t){this.isLoaded=e,this.emit("confirm",this,t)};var p={};return u.prototype=new t,u.prototype.check=function(){if(!this.isChecked){var e=new Image;n.bind(e,"load",this),n.bind(e,"error",this),e.src=this.src,this.isChecked=!0}},u.prototype.handleEvent=function(e){var t="on"+e.type;this[t]&&this[t](e)},u.prototype.onload=function(e){this.confirm(!0,"onload"),this.unbindProxyEvents(e)},u.prototype.onerror=function(e){this.confirm(!1,"onerror"),this.unbindProxyEvents(e)},u.prototype.confirm=function(e,t){this.isConfirmed=!0,this.isLoaded=e,this.emit("confirm",this,t)},u.prototype.unbindProxyEvents=function(e){n.unbind(e.target,"load",this),n.unbind(e.target,"error",this)},s}),function(){if("ontouchstart"in window){var e,t,n,r,i,o,s={};e=function(e,t){return Math.abs(e[0]-t[0])>5||Math.abs(e[1]-t[1])>5},t=function(e){this.startXY=[e.touches[0].clientX,e.touches[0].clientY],this.threshold=!1},n=function(t){if(this.threshold)return!1;this.threshold=e(this.startXY,[t.touches[0].clientX,t.touches[0].clientY])},r=function(t){if(!this.threshold&&!e(this.startXY,[t.changedTouches[0].clientX,t.changedTouches[0].clientY])){var n=t.changedTouches[0],r=document.createEvent("MouseEvents");r.initMouseEvent("click",!0,!0,window,0,n.screenX,n.screenY,n.clientX,n.clientY,!1,!1,!1,!1,0,null),r.simulated=!0,t.target.dispatchEvent(r)}},i=function(e){var t=Date.now(),n=t-s.time,r=e.clientX,i=e.clientY,a=[Math.abs(s.x-r),Math.abs(s.y-i)],u=o(e.target,"A")||e.target,c=u.nodeName,l="A"===c,f=window.navigator.standalone&&l&&e.target.getAttribute("href");if(s.time=t,s.x=r,s.y=i,(!e.simulated&&(n<500||n<1500&&a[0]<50&&a[1]<50)||f)&&(e.preventDefault(),e.stopPropagation(),!f))return!1;f&&(window.location=u.getAttribute("href")),u&&u.classList&&(u.classList.add("energize-focus"),window.setTimeout(function(){u.classList.remove("energize-focus")},150))},o=function(e,t){for(var n=e;n!==document.body;){if(!n||n.nodeName===t)return n;n=n.parentNode}return null},document.addEventListener("touchstart",t,!1),document.addEventListener("touchmove",n,!1),document.addEventListener("touchend",r,!1),document.addEventListener("click",i,!0)}}(),function(){"use strict";function e(e){if(e&&""!==e){$(".lang-selector a").removeClass("active"),$(".lang-selector a[data-language-name='"+e+"']").addClass("active");for(var t=0;t=1){var e=t(location.search).language;if(e)return e;if(-1!=jQuery.inArray(location.search.substr(1),a))return location.search.substr(1)}return!1}function i(e){var r=t(location.search);return r.language?(r.language=e,n(r)):e}function o(e){if(history){var t=window.location.hash;t&&(t=t.replace(/^#+/,"")),history.pushState({},"","?"+i(e)+"#"+t),localStorage.setItem("language",e)}}function s(t){var n=localStorage.getItem("language");a=t;var i=r();i?(e(i),localStorage.setItem("language",i)):e(null!==n&&-1!=jQuery.inArray(n,a)?n:a[0])}var a=[];window.setupLanguages=s,window.activateLanguage=e,window.getLanguageFromQueryString=r,$(function(){$(".lang-selector a").on("click",function(){var t=$(this).data("language-name");return o(t),e(t),!1})})}(),function(){"use strict";function e(){$("h1, h2").each(function(){var e=$(this),t=e.nextUntil("h1, h2");f.add({id:e.prop("id"),title:e.text(),body:t.text()})}),t()}function t(){f.tokenStore.length>5e3&&(c=300)}function n(){s=$(".content"),a=$(".search-results"),$("#input-search").on("keyup",function(e){!function(){return function(e,t){clearTimeout(l),l=setTimeout(e,t)}}()(function(){r(e)},c)})}function r(e){var t=$("#input-search")[0];if(o(),a.addClass("visible"),27===e.keyCode&&(t.value=""),t.value){var n=f.search(t.value).filter(function(e){return e.score>1e-4});n.length?(a.empty(),$.each(n,function(e,t){var n=document.getElementById(t.ref);a.append("
      • "+$(n).text()+"
      • ")}),i.call(t)):(a.html("
      • "),$(".search-results li").text('No Results Found for "'+t.value+'"'))}else o(),a.removeClass("visible")}function i(){this.value&&s.highlight(this.value,u)}function o(){s.unhighlight(u)}var s,a,u={element:"span",className:"search-highlight"},c=0,l=0,f=new lunr.Index;f.ref("id"),f.field("title",{boost:10}),f.field("body"),f.pipeline.add(lunr.trimmer,lunr.stopWordFilter),$(e),$(n)}(),function(){"use strict";function e(e,i,o,s){var a={},u=0,c=0,l=document.title,f=function(){a={},u=$(document).height(),c=$(window).height(),e.find(i).each(function(){var e=$(this).attr("href");"#"===e[0]&&(a[e]=$(e).offset().top)})},d=function(){var n=$(document).scrollTop()+s;n+c>=u&&(n=u+1e3);var r=null;for(var f in a)(a[f]a[r]||null===r)&&(r=f);n!=s||t||(r=window.location.hash,t=!0);var d=e.find("[href='"+r+"']").first();if(!d.hasClass("active")){e.find(".active").removeClass("active"),e.find(".active-parent").removeClass("active-parent"),d.addClass("active"),d.parents(o).addClass("active").siblings(i).addClass("active-parent"),d.siblings(o).addClass("active"),e.find(o).filter(":not(.active)").slideUp(150),e.find(o).filter(".active").slideDown(150),window.history.replaceState&&window.history.replaceState(null,"",r);var p=d.data("title");void 0!==p&&p.length>0?document.title=p+" – "+l:document.title=l}};!function(){f(),d(),$("#nav-button").click(function(){return $(".toc-wrapper").toggleClass("open"),$("#nav-button").toggleClass("open"),!1}),$(".page-wrapper").click(r),$(".toc-link").click(r),e.find(i).click(function(){setTimeout(function(){d()},0)}),$(window).scroll(n(d,200)),$(window).resize(n(f,200))}(),window.recacheHeights=f,window.refreshToc=d}var t=!1,n=function(e,t){var n=!1;return function(){!1===n&&(setTimeout(function(){e(),n=!1},t),n=!0)}},r=function(){$(".toc-wrapper").removeClass("open"),$("#nav-button").removeClass("open")};window.loadToc=e}(),$(function(){loadToc($("#toc"),".toc-link",".toc-list-h2, .toc-list-h3, .toc-list-h4, .toc-list-h5, .toc-list-h6",10),setupLanguages($("body").data("languages")),$(".content").imagesLoaded(function(){window.recacheHeights(),window.refreshToc()})}),window.onpopstate=function(){activateLanguage(getLanguageFromQueryString())}; - - - - - - - - - - - - - - - - - - - - - + - + NAV @@ -1533,10 +1512,6 @@ var n=this.pipeline.run(e.tokenizer(t)),r=new e.Vector,i=[],o=this._fields.reduc Go - - PHP - -
        @@ -1569,12 +1544,12 @@ var n=this.pipeline.run(e.tokenizer(t)),r=new e.Vector,i=[],o=this._fields.reduc
        • - login + login
        • - register + register
        • @@ -1588,62 +1563,7 @@ var n=this.pipeline.run(e.tokenizer(t)),r=new e.Vector,i=[],o=this._fields.reduc
          • - get_public_boards - -
          • - -
          • - new_board - -
          • - -
          • - get_board - -
          • - -
          • - delete_board - -
          • - -
          • - get_board_attachments - -
          • - -
          • - exportJson - -
          • - -
          • - copy_board - -
          • - -
          • - add_board_label - -
          • - -
          • - set_board_member_permission - -
          • - -
          • - update_board_title - -
          • - -
          • - get_boards_count - -
          • - -
          • - get_boards_from_user + exportJson
          • @@ -1657,22 +1577,22 @@ var n=this.pipeline.run(e.tokenizer(t)),r=new e.Vector,i=[],o=this._fields.reduc
            • - get_all_checklists + get_all_checklists
            • - new_checklist + new_checklist
            • - get_checklist + get_checklist
            • - delete_checklist + delete_checklist
            • @@ -1686,22 +1606,22 @@ var n=this.pipeline.run(e.tokenizer(t)),r=new e.Vector,i=[],o=this._fields.reduc
              • - new_checklist_item + new_checklist_item
              • - get_checklist_item + get_checklist_item
              • - edit_checklist_item + edit_checklist_item
              • - delete_checklist_item + delete_checklist_item
              • @@ -1715,22 +1635,22 @@ var n=this.pipeline.run(e.tokenizer(t)),r=new e.Vector,i=[],o=this._fields.reduc
                • - get_all_comments + get_all_comments
                • - new_comment + new_comment
                • - get_comment + get_comment
                • - delete_comment + delete_comment
                • @@ -1744,52 +1664,52 @@ var n=this.pipeline.run(e.tokenizer(t)),r=new e.Vector,i=[],o=this._fields.reduc
                  • - get_cards_by_custom_field + get_cards_by_custom_field
                  • - get_board_cards_count + get_board_cards_count
                  • - get_all_cards + get_all_cards
                  • - new_card + new_card
                  • - get_card + get_card
                  • - edit_card + edit_card
                  • - delete_card + delete_card
                  • - edit_card_custom_field + edit_card_custom_field
                  • - get_list_cards_count + get_list_cards_count
                  • - get_swimlane_cards + get_swimlane_cards
                  • @@ -1803,42 +1723,42 @@ var n=this.pipeline.run(e.tokenizer(t)),r=new e.Vector,i=[],o=this._fields.reduc
                    • - get_all_custom_fields + get_all_custom_fields
                    • - new_custom_field + new_custom_field
                    • - get_custom_field + get_custom_field
                    • - edit_custom_field + edit_custom_field
                    • - delete_custom_field + delete_custom_field
                    • - add_custom_field_dropdown_items + add_custom_field_dropdown_items
                    • - edit_custom_field_dropdown_item + edit_custom_field_dropdown_item
                    • - delete_custom_field_dropdown_item + delete_custom_field_dropdown_item
                    • @@ -1852,37 +1772,37 @@ var n=this.pipeline.run(e.tokenizer(t)),r=new e.Vector,i=[],o=this._fields.reduc
                      • - get_all_integrations + get_all_integrations
                      • - new_integration + new_integration
                      • - get_integration + get_integration
                      • - edit_integration + edit_integration
                      • - delete_integration + delete_integration
                      • - delete_integration_activities + delete_integration_activities
                      • - new_integration_activities + new_integration_activities
                      • @@ -1896,22 +1816,22 @@ var n=this.pipeline.run(e.tokenizer(t)),r=new e.Vector,i=[],o=this._fields.reduc
                        • - get_all_lists + get_all_lists
                        • - new_list + new_list
                        • - get_list + get_list
                        • - delete_list + delete_list
                        • @@ -1925,27 +1845,27 @@ var n=this.pipeline.run(e.tokenizer(t)),r=new e.Vector,i=[],o=this._fields.reduc
                          • - get_all_swimlanes + get_all_swimlanes
                          • - new_swimlane + new_swimlane
                          • - get_swimlane + get_swimlane
                          • - edit_swimlane + edit_swimlane
                          • - delete_swimlane + delete_swimlane
                          • @@ -1959,97 +1879,72 @@ var n=this.pipeline.run(e.tokenizer(t)),r=new e.Vector,i=[],o=this._fields.reduc
                            • - Boards + CardComments
                            • - BoardsLabels + Cards
                            • - BoardsMembers + CardsVote
                            • - BoardsOrgs + CardsPoker
                            • - BoardsTeams + CardsCustomfields
                            • - CardComments + ChecklistItems
                            • - Cards + Checklists
                            • - CardsVote + CustomFields
                            • - CardsPoker + CustomFieldsSettings
                            • - CardsCustomfields + CustomFieldsSettingsDropdownitems
                            • - ChecklistItems + Integrations
                            • - Checklists + Lists
                            • - CustomFields + ListsWiplimit
                            • - CustomFieldsSettings - -
                            • - -
                            • - CustomFieldsSettingsDropdownitems - -
                            • - -
                            • - Integrations - -
                            • - -
                            • - Lists - -
                            • - -
                            • - ListsWiplimit - -
                            • - -
                            • - Swimlanes + Swimlanes
                            • @@ -2100,28 +1995,47 @@ var n=this.pipeline.run(e.tokenizer(t)),r=new e.Vector,i=[],o=this._fields.reduc
                              # You can also use wget
                               curl -X POST /users/login \
                              -  -H 'Content-Type: application/x-www-form-urlencoded' \
                              -  -H 'Accept: */*'
                              +  -H 'Content-Type: application/x-www-form-urlencoded' \
                              +  -H 'Accept: */*'
                               
                               
                              -
                              POST /users/login HTTP/1.1
                              +
                              POST /users/login HTTP/1.1
                               
                              -Content-Type: application/x-www-form-urlencoded
                              -Accept: */*
                              +Content-Type: application/x-www-form-urlencoded
                              +Accept: */*
                              +
                              +
                              +
                              var headers = {
                              +  'Content-Type':'application/x-www-form-urlencoded',
                              +  'Accept':'*/*'
                               
                              -
                              -
                              const inputBody = '{
                              -  "username": "string",
                              -  "password": "pa$$word"
                              -}';
                              -const headers = {
                              -  'Content-Type':'application/x-www-form-urlencoded',
                              -  'Accept':'*/*'
                               };
                               
                              -fetch('/users/login',
                              +$.ajax({
                              +  url: '/users/login',
                              +  method: 'post',
                              +
                              +  headers: headers,
                              +  success: function(data) {
                              +    console.log(JSON.stringify(data));
                              +  }
                              +})
                              +
                              +
                              +
                              const fetch = require('node-fetch');
                              +const inputBody = '{
                              +  "username": "string",
                              +  "password": "pa$$word"
                              +}';
                              +const headers = {
                              +  'Content-Type':'application/x-www-form-urlencoded',
                              +  'Accept':'*/*'
                              +
                              +};
                              +
                              +fetch('/users/login',
                               {
                              -  method: 'POST',
                              +  method: 'POST',
                                 body: inputBody,
                                 headers: headers
                               })
                              @@ -2132,38 +2046,15 @@ fetch('/users/login',
                               });
                               
                               
                              -
                              const fetch = require('node-fetch');
                              -const inputBody = {
                              -  "username": "string",
                              -  "password": "pa$$word"
                              -};
                              -const headers = {
                              -  'Content-Type':'application/x-www-form-urlencoded',
                              -  'Accept':'*/*'
                              -};
                              -
                              -fetch('/users/login',
                              -{
                              -  method: 'POST',
                              -  body: JSON.stringify(inputBody),
                              -  headers: headers
                              -})
                              -.then(function(res) {
                              -    return res.json();
                              -}).then(function(body) {
                              -    console.log(body);
                              -});
                              -
                              -
                              -
                              require 'rest-client'
                              -require 'json'
                              +
                              require 'rest-client'
                              +require 'json'
                               
                               headers = {
                              -  'Content-Type' => 'application/x-www-form-urlencoded',
                              -  'Accept' => '*/*'
                              +  'Content-Type' => 'application/x-www-form-urlencoded',
                              +  'Accept' => '*/*'
                               }
                               
                              -result = RestClient.post '/users/login',
                              +result = RestClient.post '/users/login',
                                 params: {
                                 }, headers: headers
                               
                              @@ -2172,18 +2063,20 @@ p JSON.parse(result)
                               
                              import requests
                               headers = {
                              -  'Content-Type': 'application/x-www-form-urlencoded',
                              -  'Accept': '*/*'
                              +  'Content-Type': 'application/x-www-form-urlencoded',
                              +  'Accept': '*/*'
                               }
                               
                              -r = requests.post('/users/login', headers = headers)
                              +r = requests.post('/users/login', params={
                               
                              -print(r.json())
                              +}, headers = headers)
                              +
                              +print r.json()
                               
                               
                              -
                              URL obj = new URL("/users/login");
                              +
                              URL obj = new URL("/users/login");
                               HttpURLConnection con = (HttpURLConnection) obj.openConnection();
                              -con.setRequestMethod("POST");
                              +con.setRequestMethod("POST");
                               int responseCode = con.getResponseCode();
                               BufferedReader in = new BufferedReader(
                                   new InputStreamReader(con.getInputStream()));
                              @@ -2199,19 +2092,20 @@ System.out.println(response.toString());
                               
                              package main
                               
                               import (
                              -       "bytes"
                              -       "net/http"
                              +       "bytes"
                              +       "net/http"
                               )
                               
                               func main() {
                               
                                   headers := map[string][]string{
                              -        "Content-Type": []string{"application/x-www-form-urlencoded"},
                              -        "Accept": []string{"*/*"},
                              +        "Content-Type": []string{"application/x-www-form-urlencoded"},
                              +        "Accept": []string{"*/*"},
                              +        
                                   }
                               
                                   data := bytes.NewBuffer([]byte{jsonReq})
                              -    req, err := http.NewRequest("POST", "/users/login", data)
                              +    req, err := http.NewRequest("POST", "/users/login", data)
                                   req.Header = headers
                               
                                   client := &http.Client{}
                              @@ -2219,31 +2113,6 @@ System.out.println(response.toString());
                                   // ...
                               }
                               
                              -
                              -
                               'application/x-www-form-urlencoded',
                              -    'Accept' => '*/*',
                              -);
                              -
                              -$client = new \GuzzleHttp\Client();
                              -
                              -// Define array of request body.
                              -$request_body = array();
                              -
                              -try {
                              -    $response = $client->request('POST','/users/login', array(
                              -        'headers' => $headers,
                              -        'json' => $request_body,
                              -       )
                              -    );
                              -    print_r($response->getBody()->getContents());
                              - }
                              - catch (\GuzzleHttp\Exception\BadResponseException $e) {
                              -    // handle exception or api errors.
                              -    print_r($e->getMessage());
                              - }
                              -
                              - // ...
                              -
                               

                              POST /users/login

                              Login with REST API

                              @@ -2270,7 +2139,7 @@ System.out.println(response.toString()); body body object -true +false none @@ -2400,29 +2269,48 @@ This operation does not require authentication
                              # You can also use wget
                               curl -X POST /users/register \
                              -  -H 'Content-Type: application/x-www-form-urlencoded' \
                              -  -H 'Accept: */*'
                              +  -H 'Content-Type: application/x-www-form-urlencoded' \
                              +  -H 'Accept: */*'
                               
                               
                              -
                              POST /users/register HTTP/1.1
                              +
                              POST /users/register HTTP/1.1
                               
                              -Content-Type: application/x-www-form-urlencoded
                              -Accept: */*
                              +Content-Type: application/x-www-form-urlencoded
                              +Accept: */*
                              +
                              +
                              +
                              var headers = {
                              +  'Content-Type':'application/x-www-form-urlencoded',
                              +  'Accept':'*/*'
                               
                              -
                              -
                              const inputBody = '{
                              -  "username": "string",
                              -  "password": "pa$$word",
                              -  "email": "string"
                              -}';
                              -const headers = {
                              -  'Content-Type':'application/x-www-form-urlencoded',
                              -  'Accept':'*/*'
                               };
                               
                              -fetch('/users/register',
                              +$.ajax({
                              +  url: '/users/register',
                              +  method: 'post',
                              +
                              +  headers: headers,
                              +  success: function(data) {
                              +    console.log(JSON.stringify(data));
                              +  }
                              +})
                              +
                              +
                              +
                              const fetch = require('node-fetch');
                              +const inputBody = '{
                              +  "username": "string",
                              +  "password": "pa$$word",
                              +  "email": "string"
                              +}';
                              +const headers = {
                              +  'Content-Type':'application/x-www-form-urlencoded',
                              +  'Accept':'*/*'
                              +
                              +};
                              +
                              +fetch('/users/register',
                               {
                              -  method: 'POST',
                              +  method: 'POST',
                                 body: inputBody,
                                 headers: headers
                               })
                              @@ -2433,39 +2321,15 @@ fetch('/users/register',
                               });
                               
                               
                              -
                              const fetch = require('node-fetch');
                              -const inputBody = {
                              -  "username": "string",
                              -  "password": "pa$$word",
                              -  "email": "string"
                              -};
                              -const headers = {
                              -  'Content-Type':'application/x-www-form-urlencoded',
                              -  'Accept':'*/*'
                              -};
                              -
                              -fetch('/users/register',
                              -{
                              -  method: 'POST',
                              -  body: JSON.stringify(inputBody),
                              -  headers: headers
                              -})
                              -.then(function(res) {
                              -    return res.json();
                              -}).then(function(body) {
                              -    console.log(body);
                              -});
                              -
                              -
                              -
                              require 'rest-client'
                              -require 'json'
                              +
                              require 'rest-client'
                              +require 'json'
                               
                               headers = {
                              -  'Content-Type' => 'application/x-www-form-urlencoded',
                              -  'Accept' => '*/*'
                              +  'Content-Type' => 'application/x-www-form-urlencoded',
                              +  'Accept' => '*/*'
                               }
                               
                              -result = RestClient.post '/users/register',
                              +result = RestClient.post '/users/register',
                                 params: {
                                 }, headers: headers
                               
                              @@ -2474,18 +2338,20 @@ p JSON.parse(result)
                               
                              import requests
                               headers = {
                              -  'Content-Type': 'application/x-www-form-urlencoded',
                              -  'Accept': '*/*'
                              +  'Content-Type': 'application/x-www-form-urlencoded',
                              +  'Accept': '*/*'
                               }
                               
                              -r = requests.post('/users/register', headers = headers)
                              +r = requests.post('/users/register', params={
                               
                              -print(r.json())
                              +}, headers = headers)
                              +
                              +print r.json()
                               
                               
                              -
                              URL obj = new URL("/users/register");
                              +
                              URL obj = new URL("/users/register");
                               HttpURLConnection con = (HttpURLConnection) obj.openConnection();
                              -con.setRequestMethod("POST");
                              +con.setRequestMethod("POST");
                               int responseCode = con.getResponseCode();
                               BufferedReader in = new BufferedReader(
                                   new InputStreamReader(con.getInputStream()));
                              @@ -2501,19 +2367,20 @@ System.out.println(response.toString());
                               
                              package main
                               
                               import (
                              -       "bytes"
                              -       "net/http"
                              +       "bytes"
                              +       "net/http"
                               )
                               
                               func main() {
                               
                                   headers := map[string][]string{
                              -        "Content-Type": []string{"application/x-www-form-urlencoded"},
                              -        "Accept": []string{"*/*"},
                              +        "Content-Type": []string{"application/x-www-form-urlencoded"},
                              +        "Accept": []string{"*/*"},
                              +        
                                   }
                               
                                   data := bytes.NewBuffer([]byte{jsonReq})
                              -    req, err := http.NewRequest("POST", "/users/register", data)
                              +    req, err := http.NewRequest("POST", "/users/register", data)
                                   req.Header = headers
                               
                                   client := &http.Client{}
                              @@ -2521,31 +2388,6 @@ System.out.println(response.toString());
                                   // ...
                               }
                               
                              -
                              -
                               'application/x-www-form-urlencoded',
                              -    'Accept' => '*/*',
                              -);
                              -
                              -$client = new \GuzzleHttp\Client();
                              -
                              -// Define array of request body.
                              -$request_body = array();
                              -
                              -try {
                              -    $response = $client->request('POST','/users/register', array(
                              -        'headers' => $headers,
                              -        'json' => $request_body,
                              -       )
                              -    );
                              -    print_r($response->getBody()->getContents());
                              - }
                              - catch (\GuzzleHttp\Exception\BadResponseException $e) {
                              -    // handle exception or api errors.
                              -    print_r($e->getMessage());
                              - }
                              -
                              - // ...
                              -
                               

                              POST /users/register

                              Register with REST API

                              @@ -2577,7 +2419,7 @@ System.out.println(response.toString()); body body object -true +false none @@ -2708,1323 +2550,6 @@ System.out.println(response.toString()); This operation does not require authentication

                              Boards

                              -

                              get_public_boards

                              -

                              -
                              -

                              Code samples

                              -
                              -
                              # You can also use wget
                              -curl -X GET /api/boards \
                              -  -H 'Accept: application/json' \
                              -  -H 'Authorization: API_KEY'
                              -
                              -
                              -
                              GET /api/boards HTTP/1.1
                              -
                              -Accept: application/json
                              -
                              -
                              -
                              
                              -const headers = {
                              -  'Accept':'application/json',
                              -  'Authorization':'API_KEY'
                              -};
                              -
                              -fetch('/api/boards',
                              -{
                              -  method: 'GET',
                              -
                              -  headers: headers
                              -})
                              -.then(function(res) {
                              -    return res.json();
                              -}).then(function(body) {
                              -    console.log(body);
                              -});
                              -
                              -
                              -
                              const fetch = require('node-fetch');
                              -
                              -const headers = {
                              -  'Accept':'application/json',
                              -  'Authorization':'API_KEY'
                              -};
                              -
                              -fetch('/api/boards',
                              -{
                              -  method: 'GET',
                              -
                              -  headers: headers
                              -})
                              -.then(function(res) {
                              -    return res.json();
                              -}).then(function(body) {
                              -    console.log(body);
                              -});
                              -
                              -
                              -
                              require 'rest-client'
                              -require 'json'
                              -
                              -headers = {
                              -  'Accept' => 'application/json',
                              -  'Authorization' => 'API_KEY'
                              -}
                              -
                              -result = RestClient.get '/api/boards',
                              -  params: {
                              -  }, headers: headers
                              -
                              -p JSON.parse(result)
                              -
                              -
                              -
                              import requests
                              -headers = {
                              -  'Accept': 'application/json',
                              -  'Authorization': 'API_KEY'
                              -}
                              -
                              -r = requests.get('/api/boards', headers = headers)
                              -
                              -print(r.json())
                              -
                              -
                              -
                              URL obj = new URL("/api/boards");
                              -HttpURLConnection con = (HttpURLConnection) obj.openConnection();
                              -con.setRequestMethod("GET");
                              -int responseCode = con.getResponseCode();
                              -BufferedReader in = new BufferedReader(
                              -    new InputStreamReader(con.getInputStream()));
                              -String inputLine;
                              -StringBuffer response = new StringBuffer();
                              -while ((inputLine = in.readLine()) != null) {
                              -    response.append(inputLine);
                              -}
                              -in.close();
                              -System.out.println(response.toString());
                              -
                              -
                              -
                              package main
                              -
                              -import (
                              -       "bytes"
                              -       "net/http"
                              -)
                              -
                              -func main() {
                              -
                              -    headers := map[string][]string{
                              -        "Accept": []string{"application/json"},
                              -        "Authorization": []string{"API_KEY"},
                              -    }
                              -
                              -    data := bytes.NewBuffer([]byte{jsonReq})
                              -    req, err := http.NewRequest("GET", "/api/boards", data)
                              -    req.Header = headers
                              -
                              -    client := &http.Client{}
                              -    resp, err := client.Do(req)
                              -    // ...
                              -}
                              -
                              -
                              -
                               'application/json',
                              -    'Authorization' => 'API_KEY',
                              -);
                              -
                              -$client = new \GuzzleHttp\Client();
                              -
                              -// Define array of request body.
                              -$request_body = array();
                              -
                              -try {
                              -    $response = $client->request('GET','/api/boards', array(
                              -        'headers' => $headers,
                              -        'json' => $request_body,
                              -       )
                              -    );
                              -    print_r($response->getBody()->getContents());
                              - }
                              - catch (\GuzzleHttp\Exception\BadResponseException $e) {
                              -    // handle exception or api errors.
                              -    print_r($e->getMessage());
                              - }
                              -
                              - // ...
                              -
                              -
                              -

                              GET /api/boards

                              -

                              Get all public boards

                              -
                              -

                              Example responses

                              -
                              -
                              -

                              200 Response

                              -
                              -
                              [
                              -  {
                              -    "_id": "string",
                              -    "title": "string"
                              -  }
                              -]
                              -
                              -

                              Responses

                              - - - - - - - - - - - - - - - - - -
                              StatusMeaningDescriptionSchema
                              200OK200 responseInline
                              -

                              Response Schema

                              -

                              Status Code 200

                              - - - - - - - - - - - - - - - - - - - - - - - - - - -
                              NameTypeRequiredRestrictionsDescription
                              » _idstringfalsenonenone
                              » titlestringfalsenonenone
                              - -

                              new_board

                              -

                              -
                              -

                              Code samples

                              -
                              -
                              # You can also use wget
                              -curl -X POST /api/boards \
                              -  -H 'Content-Type: multipart/form-data' \
                              -  -H 'Accept: application/json' \
                              -  -H 'Authorization: API_KEY'
                              -
                              -
                              -
                              POST /api/boards HTTP/1.1
                              -
                              -Content-Type: multipart/form-data
                              -Accept: application/json
                              -
                              -
                              -
                              const inputBody = '{
                              -  "title": "string",
                              -  "owner": "string",
                              -  "isAdmin": true,
                              -  "isActive": true,
                              -  "isNoComments": true,
                              -  "isCommentOnly": true,
                              -  "isWorker": true,
                              -  "permission": "string",
                              -  "color": "string"
                              -}';
                              -const headers = {
                              -  'Content-Type':'multipart/form-data',
                              -  'Accept':'application/json',
                              -  'Authorization':'API_KEY'
                              -};
                              -
                              -fetch('/api/boards',
                              -{
                              -  method: 'POST',
                              -  body: inputBody,
                              -  headers: headers
                              -})
                              -.then(function(res) {
                              -    return res.json();
                              -}).then(function(body) {
                              -    console.log(body);
                              -});
                              -
                              -
                              -
                              const fetch = require('node-fetch');
                              -const inputBody = {
                              -  "title": "string",
                              -  "owner": "string",
                              -  "isAdmin": true,
                              -  "isActive": true,
                              -  "isNoComments": true,
                              -  "isCommentOnly": true,
                              -  "isWorker": true,
                              -  "permission": "string",
                              -  "color": "string"
                              -};
                              -const headers = {
                              -  'Content-Type':'multipart/form-data',
                              -  'Accept':'application/json',
                              -  'Authorization':'API_KEY'
                              -};
                              -
                              -fetch('/api/boards',
                              -{
                              -  method: 'POST',
                              -  body: JSON.stringify(inputBody),
                              -  headers: headers
                              -})
                              -.then(function(res) {
                              -    return res.json();
                              -}).then(function(body) {
                              -    console.log(body);
                              -});
                              -
                              -
                              -
                              require 'rest-client'
                              -require 'json'
                              -
                              -headers = {
                              -  'Content-Type' => 'multipart/form-data',
                              -  'Accept' => 'application/json',
                              -  'Authorization' => 'API_KEY'
                              -}
                              -
                              -result = RestClient.post '/api/boards',
                              -  params: {
                              -  }, headers: headers
                              -
                              -p JSON.parse(result)
                              -
                              -
                              -
                              import requests
                              -headers = {
                              -  'Content-Type': 'multipart/form-data',
                              -  'Accept': 'application/json',
                              -  'Authorization': 'API_KEY'
                              -}
                              -
                              -r = requests.post('/api/boards', headers = headers)
                              -
                              -print(r.json())
                              -
                              -
                              -
                              URL obj = new URL("/api/boards");
                              -HttpURLConnection con = (HttpURLConnection) obj.openConnection();
                              -con.setRequestMethod("POST");
                              -int responseCode = con.getResponseCode();
                              -BufferedReader in = new BufferedReader(
                              -    new InputStreamReader(con.getInputStream()));
                              -String inputLine;
                              -StringBuffer response = new StringBuffer();
                              -while ((inputLine = in.readLine()) != null) {
                              -    response.append(inputLine);
                              -}
                              -in.close();
                              -System.out.println(response.toString());
                              -
                              -
                              -
                              package main
                              -
                              -import (
                              -       "bytes"
                              -       "net/http"
                              -)
                              -
                              -func main() {
                              -
                              -    headers := map[string][]string{
                              -        "Content-Type": []string{"multipart/form-data"},
                              -        "Accept": []string{"application/json"},
                              -        "Authorization": []string{"API_KEY"},
                              -    }
                              -
                              -    data := bytes.NewBuffer([]byte{jsonReq})
                              -    req, err := http.NewRequest("POST", "/api/boards", data)
                              -    req.Header = headers
                              -
                              -    client := &http.Client{}
                              -    resp, err := client.Do(req)
                              -    // ...
                              -}
                              -
                              -
                              -
                               'multipart/form-data',
                              -    'Accept' => 'application/json',
                              -    'Authorization' => 'API_KEY',
                              -);
                              -
                              -$client = new \GuzzleHttp\Client();
                              -
                              -// Define array of request body.
                              -$request_body = array();
                              -
                              -try {
                              -    $response = $client->request('POST','/api/boards', array(
                              -        'headers' => $headers,
                              -        'json' => $request_body,
                              -       )
                              -    );
                              -    print_r($response->getBody()->getContents());
                              - }
                              - catch (\GuzzleHttp\Exception\BadResponseException $e) {
                              -    // handle exception or api errors.
                              -    print_r($e->getMessage());
                              - }
                              -
                              - // ...
                              -
                              -
                              -

                              POST /api/boards

                              -

                              Create a board

                              -

                              This allows to create a board.

                              -

                              The color has to be chosen between belize, nephritis, pomegranate, -pumpkin, wisteria, moderatepink, strongcyan, -limegreen, midnight, dark, relax, corteza:

                              - Wekan logo -
                              -

                              Body parameter

                              -
                              -
                              title: string
                              -owner: string
                              -isAdmin: true
                              -isActive: true
                              -isNoComments: true
                              -isCommentOnly: true
                              -isWorker: true
                              -permission: string
                              -color: string
                              -
                              -
                              -

                              Parameters

                              - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
                              NameInTypeRequiredDescription
                              bodybodyobjecttruenone
                              » titlebodystringtruethe new title of the board
                              » ownerbodystringtrue"ABCDE12345" <= User ID in Wekan.
                              » isAdminbodybooleanfalseis the owner an admin of the board (default true)
                              » isActivebodybooleanfalseis the board active (default true)
                              » isNoCommentsbodybooleanfalsedisable comments (default false)
                              » isCommentOnlybodybooleanfalseonly enable comments (default false)
                              » isWorkerbodybooleanfalseonly move cards, assign himself to card and comment (default false)
                              » permissionbodystringfalse"private" board <== Set to "public" if you
                              » colorbodystringfalsethe color of the board
                              -

                              Detailed descriptions

                              -

                              » owner: "ABCDE12345" <= User ID in Wekan. -(Not username or email)

                              -

                              » permission: "private" board <== Set to "public" if you -want public Wekan board

                              -
                              -

                              Example responses

                              -
                              -
                              -

                              200 Response

                              -
                              -
                              {
                              -  "_id": "string",
                              -  "defaultSwimlaneId": "string"
                              -}
                              -
                              -

                              Responses

                              - - - - - - - - - - - - - - - - - -
                              StatusMeaningDescriptionSchema
                              200OK200 responseInline
                              -

                              Response Schema

                              -

                              Status Code 200

                              - - - - - - - - - - - - - - - - - - - - - - - - - - -
                              NameTypeRequiredRestrictionsDescription
                              » _idstringfalsenonenone
                              » defaultSwimlaneIdstringfalsenonenone
                              - -

                              get_board

                              -

                              -
                              -

                              Code samples

                              -
                              -
                              # You can also use wget
                              -curl -X GET /api/boards/{board} \
                              -  -H 'Accept: application/json' \
                              -  -H 'Authorization: API_KEY'
                              -
                              -
                              -
                              GET /api/boards/{board} HTTP/1.1
                              -
                              -Accept: application/json
                              -
                              -
                              -
                              
                              -const headers = {
                              -  'Accept':'application/json',
                              -  'Authorization':'API_KEY'
                              -};
                              -
                              -fetch('/api/boards/{board}',
                              -{
                              -  method: 'GET',
                              -
                              -  headers: headers
                              -})
                              -.then(function(res) {
                              -    return res.json();
                              -}).then(function(body) {
                              -    console.log(body);
                              -});
                              -
                              -
                              -
                              const fetch = require('node-fetch');
                              -
                              -const headers = {
                              -  'Accept':'application/json',
                              -  'Authorization':'API_KEY'
                              -};
                              -
                              -fetch('/api/boards/{board}',
                              -{
                              -  method: 'GET',
                              -
                              -  headers: headers
                              -})
                              -.then(function(res) {
                              -    return res.json();
                              -}).then(function(body) {
                              -    console.log(body);
                              -});
                              -
                              -
                              -
                              require 'rest-client'
                              -require 'json'
                              -
                              -headers = {
                              -  'Accept' => 'application/json',
                              -  'Authorization' => 'API_KEY'
                              -}
                              -
                              -result = RestClient.get '/api/boards/{board}',
                              -  params: {
                              -  }, headers: headers
                              -
                              -p JSON.parse(result)
                              -
                              -
                              -
                              import requests
                              -headers = {
                              -  'Accept': 'application/json',
                              -  'Authorization': 'API_KEY'
                              -}
                              -
                              -r = requests.get('/api/boards/{board}', headers = headers)
                              -
                              -print(r.json())
                              -
                              -
                              -
                              URL obj = new URL("/api/boards/{board}");
                              -HttpURLConnection con = (HttpURLConnection) obj.openConnection();
                              -con.setRequestMethod("GET");
                              -int responseCode = con.getResponseCode();
                              -BufferedReader in = new BufferedReader(
                              -    new InputStreamReader(con.getInputStream()));
                              -String inputLine;
                              -StringBuffer response = new StringBuffer();
                              -while ((inputLine = in.readLine()) != null) {
                              -    response.append(inputLine);
                              -}
                              -in.close();
                              -System.out.println(response.toString());
                              -
                              -
                              -
                              package main
                              -
                              -import (
                              -       "bytes"
                              -       "net/http"
                              -)
                              -
                              -func main() {
                              -
                              -    headers := map[string][]string{
                              -        "Accept": []string{"application/json"},
                              -        "Authorization": []string{"API_KEY"},
                              -    }
                              -
                              -    data := bytes.NewBuffer([]byte{jsonReq})
                              -    req, err := http.NewRequest("GET", "/api/boards/{board}", data)
                              -    req.Header = headers
                              -
                              -    client := &http.Client{}
                              -    resp, err := client.Do(req)
                              -    // ...
                              -}
                              -
                              -
                              -
                               'application/json',
                              -    'Authorization' => 'API_KEY',
                              -);
                              -
                              -$client = new \GuzzleHttp\Client();
                              -
                              -// Define array of request body.
                              -$request_body = array();
                              -
                              -try {
                              -    $response = $client->request('GET','/api/boards/{board}', array(
                              -        'headers' => $headers,
                              -        'json' => $request_body,
                              -       )
                              -    );
                              -    print_r($response->getBody()->getContents());
                              - }
                              - catch (\GuzzleHttp\Exception\BadResponseException $e) {
                              -    // handle exception or api errors.
                              -    print_r($e->getMessage());
                              - }
                              -
                              - // ...
                              -
                              -
                              -

                              GET /api/boards/{board}

                              -

                              Get the board with that particular ID

                              -

                              Parameters

                              - - - - - - - - - - - - - - - - - - - -
                              NameInTypeRequiredDescription
                              boardpathstringtruethe ID of the board to retrieve the data
                              -

                              Detailed descriptions

                              -

                              board: the ID of the board to retrieve the data

                              -
                              -

                              Example responses

                              -
                              -
                              -

                              200 Response

                              -
                              -
                              {
                              -  "title": "string",
                              -  "slug": "string",
                              -  "archived": true,
                              -  "archivedAt": "string",
                              -  "createdAt": "string",
                              -  "modifiedAt": "string",
                              -  "stars": 0,
                              -  "labels": [
                              -    {
                              -      "_id": "string",
                              -      "name": "string",
                              -      "color": "white"
                              -    }
                              -  ],
                              -  "members": [
                              -    {
                              -      "userId": "string",
                              -      "isAdmin": true,
                              -      "isActive": true,
                              -      "isNoComments": true,
                              -      "isCommentOnly": true,
                              -      "isWorker": true
                              -    }
                              -  ],
                              -  "permission": "public",
                              -  "orgs": [
                              -    {
                              -      "orgId": "string",
                              -      "orgDisplayName": "string",
                              -      "isActive": true
                              -    }
                              -  ],
                              -  "teams": [
                              -    {
                              -      "teamId": "string",
                              -      "teamDisplayName": "string",
                              -      "isActive": true
                              -    }
                              -  ],
                              -  "color": "belize",
                              -  "backgroundImageURL": "string",
                              -  "allowsCardCounterList": true,
                              -  "allowsBoardMemberList": true,
                              -  "description": "string",
                              -  "subtasksDefaultBoardId": "string",
                              -  "subtasksDefaultListId": "string",
                              -  "dateSettingsDefaultBoardId": "string",
                              -  "dateSettingsDefaultListId": "string",
                              -  "allowsSubtasks": true,
                              -  "allowsAttachments": true,
                              -  "allowsChecklists": true,
                              -  "allowsComments": true,
                              -  "allowsDescriptionTitle": true,
                              -  "allowsDescriptionText": true,
                              -  "allowsDescriptionTextOnMinicard": true,
                              -  "allowsCoverAttachmentOnMinicard": true,
                              -  "allowsBadgeAttachmentOnMinicard": true,
                              -  "allowsCardSortingByNumberOnMinicard": true,
                              -  "allowsCardNumber": true,
                              -  "allowsActivities": true,
                              -  "allowsLabels": true,
                              -  "allowsCreator": true,
                              -  "allowsCreatorOnMinicard": true,
                              -  "allowsAssignee": true,
                              -  "allowsMembers": true,
                              -  "allowsRequestedBy": true,
                              -  "allowsCardSortingByNumber": true,
                              -  "allowsShowLists": true,
                              -  "allowsAssignedBy": true,
                              -  "allowsReceivedDate": true,
                              -  "allowsStartDate": true,
                              -  "allowsEndDate": true,
                              -  "allowsDueDate": true,
                              -  "presentParentTask": "prefix-with-full-path",
                              -  "receivedAt": "string",
                              -  "startAt": "string",
                              -  "dueAt": "string",
                              -  "endAt": "string",
                              -  "spentTime": 0,
                              -  "isOvertime": true,
                              -  "type": "board",
                              -  "sort": 0
                              -}
                              -
                              -

                              Responses

                              - - - - - - - - - - - - - - - - - -
                              StatusMeaningDescriptionSchema
                              200OK200 responseBoards
                              - -

                              delete_board

                              -

                              -
                              -

                              Code samples

                              -
                              -
                              # You can also use wget
                              -curl -X DELETE /api/boards/{board} \
                              -  -H 'Authorization: API_KEY'
                              -
                              -
                              -
                              DELETE /api/boards/{board} HTTP/1.1
                              -
                              -
                              -
                              
                              -const headers = {
                              -  'Authorization':'API_KEY'
                              -};
                              -
                              -fetch('/api/boards/{board}',
                              -{
                              -  method: 'DELETE',
                              -
                              -  headers: headers
                              -})
                              -.then(function(res) {
                              -    return res.json();
                              -}).then(function(body) {
                              -    console.log(body);
                              -});
                              -
                              -
                              -
                              const fetch = require('node-fetch');
                              -
                              -const headers = {
                              -  'Authorization':'API_KEY'
                              -};
                              -
                              -fetch('/api/boards/{board}',
                              -{
                              -  method: 'DELETE',
                              -
                              -  headers: headers
                              -})
                              -.then(function(res) {
                              -    return res.json();
                              -}).then(function(body) {
                              -    console.log(body);
                              -});
                              -
                              -
                              -
                              require 'rest-client'
                              -require 'json'
                              -
                              -headers = {
                              -  'Authorization' => 'API_KEY'
                              -}
                              -
                              -result = RestClient.delete '/api/boards/{board}',
                              -  params: {
                              -  }, headers: headers
                              -
                              -p JSON.parse(result)
                              -
                              -
                              -
                              import requests
                              -headers = {
                              -  'Authorization': 'API_KEY'
                              -}
                              -
                              -r = requests.delete('/api/boards/{board}', headers = headers)
                              -
                              -print(r.json())
                              -
                              -
                              -
                              URL obj = new URL("/api/boards/{board}");
                              -HttpURLConnection con = (HttpURLConnection) obj.openConnection();
                              -con.setRequestMethod("DELETE");
                              -int responseCode = con.getResponseCode();
                              -BufferedReader in = new BufferedReader(
                              -    new InputStreamReader(con.getInputStream()));
                              -String inputLine;
                              -StringBuffer response = new StringBuffer();
                              -while ((inputLine = in.readLine()) != null) {
                              -    response.append(inputLine);
                              -}
                              -in.close();
                              -System.out.println(response.toString());
                              -
                              -
                              -
                              package main
                              -
                              -import (
                              -       "bytes"
                              -       "net/http"
                              -)
                              -
                              -func main() {
                              -
                              -    headers := map[string][]string{
                              -        "Authorization": []string{"API_KEY"},
                              -    }
                              -
                              -    data := bytes.NewBuffer([]byte{jsonReq})
                              -    req, err := http.NewRequest("DELETE", "/api/boards/{board}", data)
                              -    req.Header = headers
                              -
                              -    client := &http.Client{}
                              -    resp, err := client.Do(req)
                              -    // ...
                              -}
                              -
                              -
                              -
                               'API_KEY',
                              -);
                              -
                              -$client = new \GuzzleHttp\Client();
                              -
                              -// Define array of request body.
                              -$request_body = array();
                              -
                              -try {
                              -    $response = $client->request('DELETE','/api/boards/{board}', array(
                              -        'headers' => $headers,
                              -        'json' => $request_body,
                              -       )
                              -    );
                              -    print_r($response->getBody()->getContents());
                              - }
                              - catch (\GuzzleHttp\Exception\BadResponseException $e) {
                              -    // handle exception or api errors.
                              -    print_r($e->getMessage());
                              - }
                              -
                              - // ...
                              -
                              -
                              -

                              DELETE /api/boards/{board}

                              -

                              Delete a board

                              -

                              Parameters

                              - - - - - - - - - - - - - - - - - - - -
                              NameInTypeRequiredDescription
                              boardpathstringtruethe ID of the board
                              -

                              Detailed descriptions

                              -

                              board: the ID of the board

                              -

                              Responses

                              - - - - - - - - - - - - - - - - - -
                              StatusMeaningDescriptionSchema
                              200OK200 responseNone
                              - -

                              get_board_attachments

                              -

                              -
                              -

                              Code samples

                              -
                              -
                              # You can also use wget
                              -curl -X GET /api/boards/{board}/attachments \
                              -  -H 'Accept: application/json' \
                              -  -H 'Authorization: API_KEY'
                              -
                              -
                              -
                              GET /api/boards/{board}/attachments HTTP/1.1
                              -
                              -Accept: application/json
                              -
                              -
                              -
                              
                              -const headers = {
                              -  'Accept':'application/json',
                              -  'Authorization':'API_KEY'
                              -};
                              -
                              -fetch('/api/boards/{board}/attachments',
                              -{
                              -  method: 'GET',
                              -
                              -  headers: headers
                              -})
                              -.then(function(res) {
                              -    return res.json();
                              -}).then(function(body) {
                              -    console.log(body);
                              -});
                              -
                              -
                              -
                              const fetch = require('node-fetch');
                              -
                              -const headers = {
                              -  'Accept':'application/json',
                              -  'Authorization':'API_KEY'
                              -};
                              -
                              -fetch('/api/boards/{board}/attachments',
                              -{
                              -  method: 'GET',
                              -
                              -  headers: headers
                              -})
                              -.then(function(res) {
                              -    return res.json();
                              -}).then(function(body) {
                              -    console.log(body);
                              -});
                              -
                              -
                              -
                              require 'rest-client'
                              -require 'json'
                              -
                              -headers = {
                              -  'Accept' => 'application/json',
                              -  'Authorization' => 'API_KEY'
                              -}
                              -
                              -result = RestClient.get '/api/boards/{board}/attachments',
                              -  params: {
                              -  }, headers: headers
                              -
                              -p JSON.parse(result)
                              -
                              -
                              -
                              import requests
                              -headers = {
                              -  'Accept': 'application/json',
                              -  'Authorization': 'API_KEY'
                              -}
                              -
                              -r = requests.get('/api/boards/{board}/attachments', headers = headers)
                              -
                              -print(r.json())
                              -
                              -
                              -
                              URL obj = new URL("/api/boards/{board}/attachments");
                              -HttpURLConnection con = (HttpURLConnection) obj.openConnection();
                              -con.setRequestMethod("GET");
                              -int responseCode = con.getResponseCode();
                              -BufferedReader in = new BufferedReader(
                              -    new InputStreamReader(con.getInputStream()));
                              -String inputLine;
                              -StringBuffer response = new StringBuffer();
                              -while ((inputLine = in.readLine()) != null) {
                              -    response.append(inputLine);
                              -}
                              -in.close();
                              -System.out.println(response.toString());
                              -
                              -
                              -
                              package main
                              -
                              -import (
                              -       "bytes"
                              -       "net/http"
                              -)
                              -
                              -func main() {
                              -
                              -    headers := map[string][]string{
                              -        "Accept": []string{"application/json"},
                              -        "Authorization": []string{"API_KEY"},
                              -    }
                              -
                              -    data := bytes.NewBuffer([]byte{jsonReq})
                              -    req, err := http.NewRequest("GET", "/api/boards/{board}/attachments", data)
                              -    req.Header = headers
                              -
                              -    client := &http.Client{}
                              -    resp, err := client.Do(req)
                              -    // ...
                              -}
                              -
                              -
                              -
                               'application/json',
                              -    'Authorization' => 'API_KEY',
                              -);
                              -
                              -$client = new \GuzzleHttp\Client();
                              -
                              -// Define array of request body.
                              -$request_body = array();
                              -
                              -try {
                              -    $response = $client->request('GET','/api/boards/{board}/attachments', array(
                              -        'headers' => $headers,
                              -        'json' => $request_body,
                              -       )
                              -    );
                              -    print_r($response->getBody()->getContents());
                              - }
                              - catch (\GuzzleHttp\Exception\BadResponseException $e) {
                              -    // handle exception or api errors.
                              -    print_r($e->getMessage());
                              - }
                              -
                              - // ...
                              -
                              -
                              -

                              GET /api/boards/{board}/attachments

                              -

                              Get the list of attachments of a board

                              -

                              Parameters

                              - - - - - - - - - - - - - - - - - - - -
                              NameInTypeRequiredDescription
                              boardpathstringtruethe board ID
                              -

                              Detailed descriptions

                              -

                              board: the board ID

                              -
                              -

                              Example responses

                              -
                              -
                              -

                              200 Response

                              -
                              -
                              [
                              -  {
                              -    "attachmentId": "string",
                              -    "attachmentName": "string",
                              -    "attachmentType": "string",
                              -    "url": "string",
                              -    "urlDownload": "string",
                              -    "boardId": "string",
                              -    "swimlaneId": "string",
                              -    "listId": "string",
                              -    "cardId": "string"
                              -  }
                              -]
                              -
                              -

                              Responses

                              - - - - - - - - - - - - - - - - - -
                              StatusMeaningDescriptionSchema
                              200OK200 responseInline
                              -

                              Response Schema

                              -

                              Status Code 200

                              - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
                              NameTypeRequiredRestrictionsDescription
                              » attachmentIdstringfalsenonenone
                              » attachmentNamestringfalsenonenone
                              » attachmentTypestringfalsenonenone
                              » urlstringfalsenonenone
                              » urlDownloadstringfalsenonenone
                              » boardIdstringfalsenonenone
                              » swimlaneIdstringfalsenonenone
                              » listIdstringfalsenonenone
                              » cardIdstringfalsenonenone
                              -

                              exportJson

                              @@ -4032,20 +2557,38 @@ UserSecurity
                              # You can also use wget
                               curl -X GET /api/boards/{board}/export \
                              -  -H 'Authorization: API_KEY'
                              +  -H 'Authorization: API_KEY'
                               
                               
                              -
                              GET /api/boards/{board}/export HTTP/1.1
                              +
                              GET /api/boards/{board}/export HTTP/1.1
                              +
                              +
                              +
                              var headers = {
                              +  'Authorization':'API_KEY'
                               
                              -
                              -
                              
                              -const headers = {
                              -  'Authorization':'API_KEY'
                               };
                               
                              -fetch('/api/boards/{board}/export',
                              +$.ajax({
                              +  url: '/api/boards/{board}/export',
                              +  method: 'get',
                              +
                              +  headers: headers,
                              +  success: function(data) {
                              +    console.log(JSON.stringify(data));
                              +  }
                              +})
                              +
                              +
                              +
                              const fetch = require('node-fetch');
                              +
                              +const headers = {
                              +  'Authorization':'API_KEY'
                              +
                              +};
                              +
                              +fetch('/api/boards/{board}/export',
                               {
                              -  method: 'GET',
                              +  method: 'GET',
                               
                                 headers: headers
                               })
                              @@ -4056,33 +2599,14 @@ fetch('/api/boards/{board}/export',
                               });
                               
                               
                              -
                              const fetch = require('node-fetch');
                              -
                              -const headers = {
                              -  'Authorization':'API_KEY'
                              -};
                              -
                              -fetch('/api/boards/{board}/export',
                              -{
                              -  method: 'GET',
                              -
                              -  headers: headers
                              -})
                              -.then(function(res) {
                              -    return res.json();
                              -}).then(function(body) {
                              -    console.log(body);
                              -});
                              -
                              -
                              -
                              require 'rest-client'
                              -require 'json'
                              +
                              require 'rest-client'
                              +require 'json'
                               
                               headers = {
                              -  'Authorization' => 'API_KEY'
                              +  'Authorization' => 'API_KEY'
                               }
                               
                              -result = RestClient.get '/api/boards/{board}/export',
                              +result = RestClient.get '/api/boards/{board}/export',
                                 params: {
                                 }, headers: headers
                               
                              @@ -4091,17 +2615,19 @@ p JSON.parse(result)
                               
                              import requests
                               headers = {
                              -  'Authorization': 'API_KEY'
                              +  'Authorization': 'API_KEY'
                               }
                               
                              -r = requests.get('/api/boards/{board}/export', headers = headers)
                              +r = requests.get('/api/boards/{board}/export', params={
                               
                              -print(r.json())
                              +}, headers = headers)
                              +
                              +print r.json()
                               
                               
                              -
                              URL obj = new URL("/api/boards/{board}/export");
                              +
                              URL obj = new URL("/api/boards/{board}/export");
                               HttpURLConnection con = (HttpURLConnection) obj.openConnection();
                              -con.setRequestMethod("GET");
                              +con.setRequestMethod("GET");
                               int responseCode = con.getResponseCode();
                               BufferedReader in = new BufferedReader(
                                   new InputStreamReader(con.getInputStream()));
                              @@ -4117,18 +2643,19 @@ System.out.println(response.toString());
                               
                              package main
                               
                               import (
                              -       "bytes"
                              -       "net/http"
                              +       "bytes"
                              +       "net/http"
                               )
                               
                               func main() {
                               
                                   headers := map[string][]string{
                              -        "Authorization": []string{"API_KEY"},
                              +        "Authorization": []string{"API_KEY"},
                              +        
                                   }
                               
                                   data := bytes.NewBuffer([]byte{jsonReq})
                              -    req, err := http.NewRequest("GET", "/api/boards/{board}/export", data)
                              +    req, err := http.NewRequest("GET", "/api/boards/{board}/export", data)
                                   req.Header = headers
                               
                                   client := &http.Client{}
                              @@ -4136,30 +2663,6 @@ System.out.println(response.toString());
                                   // ...
                               }
                               
                              -
                              -
                               'API_KEY',
                              -);
                              -
                              -$client = new \GuzzleHttp\Client();
                              -
                              -// Define array of request body.
                              -$request_body = array();
                              -
                              -try {
                              -    $response = $client->request('GET','/api/boards/{board}/export', array(
                              -        'headers' => $headers,
                              -        'json' => $request_body,
                              -       )
                              -    );
                              -    print_r($response->getBody()->getContents());
                              - }
                              - catch (\GuzzleHttp\Exception\BadResponseException $e) {
                              -    // handle exception or api errors.
                              -    print_r($e->getMessage());
                              - }
                              -
                              - // ...
                              -
                               

                              GET /api/boards/{board}/export

                              This route is used to export the board to a json file format.

                              @@ -4188,7 +2691,7 @@ for detailed explanations

                              -

                              Detailed descriptions

                              +

                              Detailed descriptions

                              board: the ID of the board we are exporting

                              Responses

                              @@ -4213,1393 +2716,6 @@ for detailed explanations

                              To perform this operation, you must be authenticated by means of one of the following methods: UserSecurity -

                              copy_board

                              -

                              -
                              -

                              Code samples

                              -
                              -
                              # You can also use wget
                              -curl -X POST /api/boards/{board}/copy \
                              -  -H 'Content-Type: multipart/form-data' \
                              -  -H 'Accept: application/json' \
                              -  -H 'Authorization: API_KEY'
                              -
                              -
                              -
                              POST /api/boards/{board}/copy HTTP/1.1
                              -
                              -Content-Type: multipart/form-data
                              -Accept: application/json
                              -
                              -
                              -
                              const inputBody = '{
                              -  "title": "string"
                              -}';
                              -const headers = {
                              -  'Content-Type':'multipart/form-data',
                              -  'Accept':'application/json',
                              -  'Authorization':'API_KEY'
                              -};
                              -
                              -fetch('/api/boards/{board}/copy',
                              -{
                              -  method: 'POST',
                              -  body: inputBody,
                              -  headers: headers
                              -})
                              -.then(function(res) {
                              -    return res.json();
                              -}).then(function(body) {
                              -    console.log(body);
                              -});
                              -
                              -
                              -
                              const fetch = require('node-fetch');
                              -const inputBody = {
                              -  "title": "string"
                              -};
                              -const headers = {
                              -  'Content-Type':'multipart/form-data',
                              -  'Accept':'application/json',
                              -  'Authorization':'API_KEY'
                              -};
                              -
                              -fetch('/api/boards/{board}/copy',
                              -{
                              -  method: 'POST',
                              -  body: JSON.stringify(inputBody),
                              -  headers: headers
                              -})
                              -.then(function(res) {
                              -    return res.json();
                              -}).then(function(body) {
                              -    console.log(body);
                              -});
                              -
                              -
                              -
                              require 'rest-client'
                              -require 'json'
                              -
                              -headers = {
                              -  'Content-Type' => 'multipart/form-data',
                              -  'Accept' => 'application/json',
                              -  'Authorization' => 'API_KEY'
                              -}
                              -
                              -result = RestClient.post '/api/boards/{board}/copy',
                              -  params: {
                              -  }, headers: headers
                              -
                              -p JSON.parse(result)
                              -
                              -
                              -
                              import requests
                              -headers = {
                              -  'Content-Type': 'multipart/form-data',
                              -  'Accept': 'application/json',
                              -  'Authorization': 'API_KEY'
                              -}
                              -
                              -r = requests.post('/api/boards/{board}/copy', headers = headers)
                              -
                              -print(r.json())
                              -
                              -
                              -
                              URL obj = new URL("/api/boards/{board}/copy");
                              -HttpURLConnection con = (HttpURLConnection) obj.openConnection();
                              -con.setRequestMethod("POST");
                              -int responseCode = con.getResponseCode();
                              -BufferedReader in = new BufferedReader(
                              -    new InputStreamReader(con.getInputStream()));
                              -String inputLine;
                              -StringBuffer response = new StringBuffer();
                              -while ((inputLine = in.readLine()) != null) {
                              -    response.append(inputLine);
                              -}
                              -in.close();
                              -System.out.println(response.toString());
                              -
                              -
                              -
                              package main
                              -
                              -import (
                              -       "bytes"
                              -       "net/http"
                              -)
                              -
                              -func main() {
                              -
                              -    headers := map[string][]string{
                              -        "Content-Type": []string{"multipart/form-data"},
                              -        "Accept": []string{"application/json"},
                              -        "Authorization": []string{"API_KEY"},
                              -    }
                              -
                              -    data := bytes.NewBuffer([]byte{jsonReq})
                              -    req, err := http.NewRequest("POST", "/api/boards/{board}/copy", data)
                              -    req.Header = headers
                              -
                              -    client := &http.Client{}
                              -    resp, err := client.Do(req)
                              -    // ...
                              -}
                              -
                              -
                              -
                               'multipart/form-data',
                              -    'Accept' => 'application/json',
                              -    'Authorization' => 'API_KEY',
                              -);
                              -
                              -$client = new \GuzzleHttp\Client();
                              -
                              -// Define array of request body.
                              -$request_body = array();
                              -
                              -try {
                              -    $response = $client->request('POST','/api/boards/{board}/copy', array(
                              -        'headers' => $headers,
                              -        'json' => $request_body,
                              -       )
                              -    );
                              -    print_r($response->getBody()->getContents());
                              - }
                              - catch (\GuzzleHttp\Exception\BadResponseException $e) {
                              -    // handle exception or api errors.
                              -    print_r($e->getMessage());
                              - }
                              -
                              - // ...
                              -
                              -
                              -

                              POST /api/boards/{board}/copy

                              -

                              Copy a board to a new one

                              -

                              If your are board admin or wekan admin, this copies the -given board to a new one.

                              -
                              -

                              Body parameter

                              -
                              -
                              title: string
                              -
                              -
                              -

                              Parameters

                              -
                              - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
                              NameInTypeRequiredDescription
                              boardpathstringtruethe board
                              bodybodyobjecttruenone
                              » titlebodystringtruethe title of the new board (default to old one)
                              -

                              Detailed descriptions

                              -

                              board: the board

                              -
                              -

                              Example responses

                              -
                              -
                              -

                              200 Response

                              -
                              -
                              "string"
                              -
                              -

                              Responses

                              - - - - - - - - - - - - - - - - - -
                              StatusMeaningDescriptionSchema
                              200OK200 responsestring
                              - -

                              add_board_label

                              -

                              -
                              -

                              Code samples

                              -
                              -
                              # You can also use wget
                              -curl -X PUT /api/boards/{board}/labels \
                              -  -H 'Content-Type: multipart/form-data' \
                              -  -H 'Accept: application/json' \
                              -  -H 'Authorization: API_KEY'
                              -
                              -
                              -
                              PUT /api/boards/{board}/labels HTTP/1.1
                              -
                              -Content-Type: multipart/form-data
                              -Accept: application/json
                              -
                              -
                              -
                              const inputBody = '{
                              -  "label": "string"
                              -}';
                              -const headers = {
                              -  'Content-Type':'multipart/form-data',
                              -  'Accept':'application/json',
                              -  'Authorization':'API_KEY'
                              -};
                              -
                              -fetch('/api/boards/{board}/labels',
                              -{
                              -  method: 'PUT',
                              -  body: inputBody,
                              -  headers: headers
                              -})
                              -.then(function(res) {
                              -    return res.json();
                              -}).then(function(body) {
                              -    console.log(body);
                              -});
                              -
                              -
                              -
                              const fetch = require('node-fetch');
                              -const inputBody = {
                              -  "label": "string"
                              -};
                              -const headers = {
                              -  'Content-Type':'multipart/form-data',
                              -  'Accept':'application/json',
                              -  'Authorization':'API_KEY'
                              -};
                              -
                              -fetch('/api/boards/{board}/labels',
                              -{
                              -  method: 'PUT',
                              -  body: JSON.stringify(inputBody),
                              -  headers: headers
                              -})
                              -.then(function(res) {
                              -    return res.json();
                              -}).then(function(body) {
                              -    console.log(body);
                              -});
                              -
                              -
                              -
                              require 'rest-client'
                              -require 'json'
                              -
                              -headers = {
                              -  'Content-Type' => 'multipart/form-data',
                              -  'Accept' => 'application/json',
                              -  'Authorization' => 'API_KEY'
                              -}
                              -
                              -result = RestClient.put '/api/boards/{board}/labels',
                              -  params: {
                              -  }, headers: headers
                              -
                              -p JSON.parse(result)
                              -
                              -
                              -
                              import requests
                              -headers = {
                              -  'Content-Type': 'multipart/form-data',
                              -  'Accept': 'application/json',
                              -  'Authorization': 'API_KEY'
                              -}
                              -
                              -r = requests.put('/api/boards/{board}/labels', headers = headers)
                              -
                              -print(r.json())
                              -
                              -
                              -
                              URL obj = new URL("/api/boards/{board}/labels");
                              -HttpURLConnection con = (HttpURLConnection) obj.openConnection();
                              -con.setRequestMethod("PUT");
                              -int responseCode = con.getResponseCode();
                              -BufferedReader in = new BufferedReader(
                              -    new InputStreamReader(con.getInputStream()));
                              -String inputLine;
                              -StringBuffer response = new StringBuffer();
                              -while ((inputLine = in.readLine()) != null) {
                              -    response.append(inputLine);
                              -}
                              -in.close();
                              -System.out.println(response.toString());
                              -
                              -
                              -
                              package main
                              -
                              -import (
                              -       "bytes"
                              -       "net/http"
                              -)
                              -
                              -func main() {
                              -
                              -    headers := map[string][]string{
                              -        "Content-Type": []string{"multipart/form-data"},
                              -        "Accept": []string{"application/json"},
                              -        "Authorization": []string{"API_KEY"},
                              -    }
                              -
                              -    data := bytes.NewBuffer([]byte{jsonReq})
                              -    req, err := http.NewRequest("PUT", "/api/boards/{board}/labels", data)
                              -    req.Header = headers
                              -
                              -    client := &http.Client{}
                              -    resp, err := client.Do(req)
                              -    // ...
                              -}
                              -
                              -
                              -
                               'multipart/form-data',
                              -    'Accept' => 'application/json',
                              -    'Authorization' => 'API_KEY',
                              -);
                              -
                              -$client = new \GuzzleHttp\Client();
                              -
                              -// Define array of request body.
                              -$request_body = array();
                              -
                              -try {
                              -    $response = $client->request('PUT','/api/boards/{board}/labels', array(
                              -        'headers' => $headers,
                              -        'json' => $request_body,
                              -       )
                              -    );
                              -    print_r($response->getBody()->getContents());
                              - }
                              - catch (\GuzzleHttp\Exception\BadResponseException $e) {
                              -    // handle exception or api errors.
                              -    print_r($e->getMessage());
                              - }
                              -
                              - // ...
                              -
                              -
                              -

                              PUT /api/boards/{board}/labels

                              -

                              Add a label to a board

                              -

                              If the board doesn't have the name/color label, this function -adds the label to the board.

                              -
                              -

                              Body parameter

                              -
                              -
                              label: string
                              -
                              -
                              -

                              Parameters

                              - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
                              NameInTypeRequiredDescription
                              boardpathstringtruethe board
                              bodybodyobjecttruenone
                              » labelbodystringtruethe label value
                              -

                              Detailed descriptions

                              -

                              board: the board

                              -
                              -

                              Example responses

                              -
                              -
                              -

                              200 Response

                              -
                              -
                              "string"
                              -
                              -

                              Responses

                              - - - - - - - - - - - - - - - - - -
                              StatusMeaningDescriptionSchema
                              200OK200 responsestring
                              - -

                              set_board_member_permission

                              -

                              -
                              -

                              Code samples

                              -
                              -
                              # You can also use wget
                              -curl -X POST /api/boards/{board}/members/{member} \
                              -  -H 'Content-Type: multipart/form-data' \
                              -  -H 'Authorization: API_KEY'
                              -
                              -
                              -
                              POST /api/boards/{board}/members/{member} HTTP/1.1
                              -
                              -Content-Type: multipart/form-data
                              -
                              -
                              -
                              const inputBody = '{
                              -  "isAdmin": true,
                              -  "isNoComments": true,
                              -  "isCommentOnly": true,
                              -  "isWorker": true
                              -}';
                              -const headers = {
                              -  'Content-Type':'multipart/form-data',
                              -  'Authorization':'API_KEY'
                              -};
                              -
                              -fetch('/api/boards/{board}/members/{member}',
                              -{
                              -  method: 'POST',
                              -  body: inputBody,
                              -  headers: headers
                              -})
                              -.then(function(res) {
                              -    return res.json();
                              -}).then(function(body) {
                              -    console.log(body);
                              -});
                              -
                              -
                              -
                              const fetch = require('node-fetch');
                              -const inputBody = {
                              -  "isAdmin": true,
                              -  "isNoComments": true,
                              -  "isCommentOnly": true,
                              -  "isWorker": true
                              -};
                              -const headers = {
                              -  'Content-Type':'multipart/form-data',
                              -  'Authorization':'API_KEY'
                              -};
                              -
                              -fetch('/api/boards/{board}/members/{member}',
                              -{
                              -  method: 'POST',
                              -  body: JSON.stringify(inputBody),
                              -  headers: headers
                              -})
                              -.then(function(res) {
                              -    return res.json();
                              -}).then(function(body) {
                              -    console.log(body);
                              -});
                              -
                              -
                              -
                              require 'rest-client'
                              -require 'json'
                              -
                              -headers = {
                              -  'Content-Type' => 'multipart/form-data',
                              -  'Authorization' => 'API_KEY'
                              -}
                              -
                              -result = RestClient.post '/api/boards/{board}/members/{member}',
                              -  params: {
                              -  }, headers: headers
                              -
                              -p JSON.parse(result)
                              -
                              -
                              -
                              import requests
                              -headers = {
                              -  'Content-Type': 'multipart/form-data',
                              -  'Authorization': 'API_KEY'
                              -}
                              -
                              -r = requests.post('/api/boards/{board}/members/{member}', headers = headers)
                              -
                              -print(r.json())
                              -
                              -
                              -
                              URL obj = new URL("/api/boards/{board}/members/{member}");
                              -HttpURLConnection con = (HttpURLConnection) obj.openConnection();
                              -con.setRequestMethod("POST");
                              -int responseCode = con.getResponseCode();
                              -BufferedReader in = new BufferedReader(
                              -    new InputStreamReader(con.getInputStream()));
                              -String inputLine;
                              -StringBuffer response = new StringBuffer();
                              -while ((inputLine = in.readLine()) != null) {
                              -    response.append(inputLine);
                              -}
                              -in.close();
                              -System.out.println(response.toString());
                              -
                              -
                              -
                              package main
                              -
                              -import (
                              -       "bytes"
                              -       "net/http"
                              -)
                              -
                              -func main() {
                              -
                              -    headers := map[string][]string{
                              -        "Content-Type": []string{"multipart/form-data"},
                              -        "Authorization": []string{"API_KEY"},
                              -    }
                              -
                              -    data := bytes.NewBuffer([]byte{jsonReq})
                              -    req, err := http.NewRequest("POST", "/api/boards/{board}/members/{member}", data)
                              -    req.Header = headers
                              -
                              -    client := &http.Client{}
                              -    resp, err := client.Do(req)
                              -    // ...
                              -}
                              -
                              -
                              -
                               'multipart/form-data',
                              -    'Authorization' => 'API_KEY',
                              -);
                              -
                              -$client = new \GuzzleHttp\Client();
                              -
                              -// Define array of request body.
                              -$request_body = array();
                              -
                              -try {
                              -    $response = $client->request('POST','/api/boards/{board}/members/{member}', array(
                              -        'headers' => $headers,
                              -        'json' => $request_body,
                              -       )
                              -    );
                              -    print_r($response->getBody()->getContents());
                              - }
                              - catch (\GuzzleHttp\Exception\BadResponseException $e) {
                              -    // handle exception or api errors.
                              -    print_r($e->getMessage());
                              - }
                              -
                              - // ...
                              -
                              -
                              -

                              POST /api/boards/{board}/members/{member}

                              -

                              Change the permission of a member of a board

                              -
                              -

                              Body parameter

                              -
                              -
                              isAdmin: true
                              -isNoComments: true
                              -isCommentOnly: true
                              -isWorker: true
                              -
                              -
                              -

                              Parameters

                              - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
                              NameInTypeRequiredDescription
                              boardpathstringtruethe ID of the board that we are changing
                              memberpathstringtruethe ID of the user to change permissions
                              bodybodyobjecttruenone
                              » isAdminbodybooleantrueadmin capability
                              » isNoCommentsbodybooleantrueNoComments capability
                              » isCommentOnlybodybooleantrueCommentsOnly capability
                              » isWorkerbodybooleantrueWorker capability
                              -

                              Detailed descriptions

                              -

                              board: the ID of the board that we are changing

                              -

                              member: the ID of the user to change permissions

                              -

                              Responses

                              - - - - - - - - - - - - - - - - - -
                              StatusMeaningDescriptionSchema
                              200OK200 responseNone
                              - -

                              update_board_title

                              -

                              -
                              -

                              Code samples

                              -
                              -
                              # You can also use wget
                              -curl -X PUT /api/boards/{board}/title \
                              -  -H 'Content-Type: multipart/form-data' \
                              -  -H 'Authorization: API_KEY'
                              -
                              -
                              -
                              PUT /api/boards/{board}/title HTTP/1.1
                              -
                              -Content-Type: multipart/form-data
                              -
                              -
                              -
                              const inputBody = '{
                              -  "title": "string"
                              -}';
                              -const headers = {
                              -  'Content-Type':'multipart/form-data',
                              -  'Authorization':'API_KEY'
                              -};
                              -
                              -fetch('/api/boards/{board}/title',
                              -{
                              -  method: 'PUT',
                              -  body: inputBody,
                              -  headers: headers
                              -})
                              -.then(function(res) {
                              -    return res.json();
                              -}).then(function(body) {
                              -    console.log(body);
                              -});
                              -
                              -
                              -
                              const fetch = require('node-fetch');
                              -const inputBody = {
                              -  "title": "string"
                              -};
                              -const headers = {
                              -  'Content-Type':'multipart/form-data',
                              -  'Authorization':'API_KEY'
                              -};
                              -
                              -fetch('/api/boards/{board}/title',
                              -{
                              -  method: 'PUT',
                              -  body: JSON.stringify(inputBody),
                              -  headers: headers
                              -})
                              -.then(function(res) {
                              -    return res.json();
                              -}).then(function(body) {
                              -    console.log(body);
                              -});
                              -
                              -
                              -
                              require 'rest-client'
                              -require 'json'
                              -
                              -headers = {
                              -  'Content-Type' => 'multipart/form-data',
                              -  'Authorization' => 'API_KEY'
                              -}
                              -
                              -result = RestClient.put '/api/boards/{board}/title',
                              -  params: {
                              -  }, headers: headers
                              -
                              -p JSON.parse(result)
                              -
                              -
                              -
                              import requests
                              -headers = {
                              -  'Content-Type': 'multipart/form-data',
                              -  'Authorization': 'API_KEY'
                              -}
                              -
                              -r = requests.put('/api/boards/{board}/title', headers = headers)
                              -
                              -print(r.json())
                              -
                              -
                              -
                              URL obj = new URL("/api/boards/{board}/title");
                              -HttpURLConnection con = (HttpURLConnection) obj.openConnection();
                              -con.setRequestMethod("PUT");
                              -int responseCode = con.getResponseCode();
                              -BufferedReader in = new BufferedReader(
                              -    new InputStreamReader(con.getInputStream()));
                              -String inputLine;
                              -StringBuffer response = new StringBuffer();
                              -while ((inputLine = in.readLine()) != null) {
                              -    response.append(inputLine);
                              -}
                              -in.close();
                              -System.out.println(response.toString());
                              -
                              -
                              -
                              package main
                              -
                              -import (
                              -       "bytes"
                              -       "net/http"
                              -)
                              -
                              -func main() {
                              -
                              -    headers := map[string][]string{
                              -        "Content-Type": []string{"multipart/form-data"},
                              -        "Authorization": []string{"API_KEY"},
                              -    }
                              -
                              -    data := bytes.NewBuffer([]byte{jsonReq})
                              -    req, err := http.NewRequest("PUT", "/api/boards/{board}/title", data)
                              -    req.Header = headers
                              -
                              -    client := &http.Client{}
                              -    resp, err := client.Do(req)
                              -    // ...
                              -}
                              -
                              -
                              -
                               'multipart/form-data',
                              -    'Authorization' => 'API_KEY',
                              -);
                              -
                              -$client = new \GuzzleHttp\Client();
                              -
                              -// Define array of request body.
                              -$request_body = array();
                              -
                              -try {
                              -    $response = $client->request('PUT','/api/boards/{board}/title', array(
                              -        'headers' => $headers,
                              -        'json' => $request_body,
                              -       )
                              -    );
                              -    print_r($response->getBody()->getContents());
                              - }
                              - catch (\GuzzleHttp\Exception\BadResponseException $e) {
                              -    // handle exception or api errors.
                              -    print_r($e->getMessage());
                              - }
                              -
                              - // ...
                              -
                              -
                              -

                              PUT /api/boards/{board}/title

                              -

                              Update the title of a board

                              -
                              -

                              Body parameter

                              -
                              -
                              title: string
                              -
                              -
                              -

                              Parameters

                              - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
                              NameInTypeRequiredDescription
                              boardpathstringtruethe ID of the board to update
                              bodybodyobjecttruenone
                              » titlebodystringtruethe new title for the board
                              -

                              Detailed descriptions

                              -

                              board: the ID of the board to update

                              -

                              Responses

                              - - - - - - - - - - - - - - - - - -
                              StatusMeaningDescriptionSchema
                              200OK200 responseNone
                              - -

                              get_boards_count

                              -

                              -
                              -

                              Code samples

                              -
                              -
                              # You can also use wget
                              -curl -X GET /api/boards_count \
                              -  -H 'Accept: application/json' \
                              -  -H 'Authorization: API_KEY'
                              -
                              -
                              -
                              GET /api/boards_count HTTP/1.1
                              -
                              -Accept: application/json
                              -
                              -
                              -
                              
                              -const headers = {
                              -  'Accept':'application/json',
                              -  'Authorization':'API_KEY'
                              -};
                              -
                              -fetch('/api/boards_count',
                              -{
                              -  method: 'GET',
                              -
                              -  headers: headers
                              -})
                              -.then(function(res) {
                              -    return res.json();
                              -}).then(function(body) {
                              -    console.log(body);
                              -});
                              -
                              -
                              -
                              const fetch = require('node-fetch');
                              -
                              -const headers = {
                              -  'Accept':'application/json',
                              -  'Authorization':'API_KEY'
                              -};
                              -
                              -fetch('/api/boards_count',
                              -{
                              -  method: 'GET',
                              -
                              -  headers: headers
                              -})
                              -.then(function(res) {
                              -    return res.json();
                              -}).then(function(body) {
                              -    console.log(body);
                              -});
                              -
                              -
                              -
                              require 'rest-client'
                              -require 'json'
                              -
                              -headers = {
                              -  'Accept' => 'application/json',
                              -  'Authorization' => 'API_KEY'
                              -}
                              -
                              -result = RestClient.get '/api/boards_count',
                              -  params: {
                              -  }, headers: headers
                              -
                              -p JSON.parse(result)
                              -
                              -
                              -
                              import requests
                              -headers = {
                              -  'Accept': 'application/json',
                              -  'Authorization': 'API_KEY'
                              -}
                              -
                              -r = requests.get('/api/boards_count', headers = headers)
                              -
                              -print(r.json())
                              -
                              -
                              -
                              URL obj = new URL("/api/boards_count");
                              -HttpURLConnection con = (HttpURLConnection) obj.openConnection();
                              -con.setRequestMethod("GET");
                              -int responseCode = con.getResponseCode();
                              -BufferedReader in = new BufferedReader(
                              -    new InputStreamReader(con.getInputStream()));
                              -String inputLine;
                              -StringBuffer response = new StringBuffer();
                              -while ((inputLine = in.readLine()) != null) {
                              -    response.append(inputLine);
                              -}
                              -in.close();
                              -System.out.println(response.toString());
                              -
                              -
                              -
                              package main
                              -
                              -import (
                              -       "bytes"
                              -       "net/http"
                              -)
                              -
                              -func main() {
                              -
                              -    headers := map[string][]string{
                              -        "Accept": []string{"application/json"},
                              -        "Authorization": []string{"API_KEY"},
                              -    }
                              -
                              -    data := bytes.NewBuffer([]byte{jsonReq})
                              -    req, err := http.NewRequest("GET", "/api/boards_count", data)
                              -    req.Header = headers
                              -
                              -    client := &http.Client{}
                              -    resp, err := client.Do(req)
                              -    // ...
                              -}
                              -
                              -
                              -
                               'application/json',
                              -    'Authorization' => 'API_KEY',
                              -);
                              -
                              -$client = new \GuzzleHttp\Client();
                              -
                              -// Define array of request body.
                              -$request_body = array();
                              -
                              -try {
                              -    $response = $client->request('GET','/api/boards_count', array(
                              -        'headers' => $headers,
                              -        'json' => $request_body,
                              -       )
                              -    );
                              -    print_r($response->getBody()->getContents());
                              - }
                              - catch (\GuzzleHttp\Exception\BadResponseException $e) {
                              -    // handle exception or api errors.
                              -    print_r($e->getMessage());
                              - }
                              -
                              - // ...
                              -
                              -
                              -

                              GET /api/boards_count

                              -

                              Get public and private boards count

                              -
                              -

                              Example responses

                              -
                              -
                              -

                              200 Response

                              -
                              -
                              {
                              -  "private": 0,
                              -  "public": 0
                              -}
                              -
                              -

                              Responses

                              - - - - - - - - - - - - - - - - - -
                              StatusMeaningDescriptionSchema
                              200OK200 responseInline
                              -

                              Response Schema

                              -

                              Status Code 200

                              - - - - - - - - - - - - - - - - - - - - - - - - - - -
                              NameTypeRequiredRestrictionsDescription
                              » privateintegerfalsenonenone
                              » publicintegerfalsenonenone
                              - -

                              get_boards_from_user

                              -

                              -
                              -

                              Code samples

                              -
                              -
                              # You can also use wget
                              -curl -X GET /api/users/{user}/boards \
                              -  -H 'Accept: application/json' \
                              -  -H 'Authorization: API_KEY'
                              -
                              -
                              -
                              GET /api/users/{user}/boards HTTP/1.1
                              -
                              -Accept: application/json
                              -
                              -
                              -
                              
                              -const headers = {
                              -  'Accept':'application/json',
                              -  'Authorization':'API_KEY'
                              -};
                              -
                              -fetch('/api/users/{user}/boards',
                              -{
                              -  method: 'GET',
                              -
                              -  headers: headers
                              -})
                              -.then(function(res) {
                              -    return res.json();
                              -}).then(function(body) {
                              -    console.log(body);
                              -});
                              -
                              -
                              -
                              const fetch = require('node-fetch');
                              -
                              -const headers = {
                              -  'Accept':'application/json',
                              -  'Authorization':'API_KEY'
                              -};
                              -
                              -fetch('/api/users/{user}/boards',
                              -{
                              -  method: 'GET',
                              -
                              -  headers: headers
                              -})
                              -.then(function(res) {
                              -    return res.json();
                              -}).then(function(body) {
                              -    console.log(body);
                              -});
                              -
                              -
                              -
                              require 'rest-client'
                              -require 'json'
                              -
                              -headers = {
                              -  'Accept' => 'application/json',
                              -  'Authorization' => 'API_KEY'
                              -}
                              -
                              -result = RestClient.get '/api/users/{user}/boards',
                              -  params: {
                              -  }, headers: headers
                              -
                              -p JSON.parse(result)
                              -
                              -
                              -
                              import requests
                              -headers = {
                              -  'Accept': 'application/json',
                              -  'Authorization': 'API_KEY'
                              -}
                              -
                              -r = requests.get('/api/users/{user}/boards', headers = headers)
                              -
                              -print(r.json())
                              -
                              -
                              -
                              URL obj = new URL("/api/users/{user}/boards");
                              -HttpURLConnection con = (HttpURLConnection) obj.openConnection();
                              -con.setRequestMethod("GET");
                              -int responseCode = con.getResponseCode();
                              -BufferedReader in = new BufferedReader(
                              -    new InputStreamReader(con.getInputStream()));
                              -String inputLine;
                              -StringBuffer response = new StringBuffer();
                              -while ((inputLine = in.readLine()) != null) {
                              -    response.append(inputLine);
                              -}
                              -in.close();
                              -System.out.println(response.toString());
                              -
                              -
                              -
                              package main
                              -
                              -import (
                              -       "bytes"
                              -       "net/http"
                              -)
                              -
                              -func main() {
                              -
                              -    headers := map[string][]string{
                              -        "Accept": []string{"application/json"},
                              -        "Authorization": []string{"API_KEY"},
                              -    }
                              -
                              -    data := bytes.NewBuffer([]byte{jsonReq})
                              -    req, err := http.NewRequest("GET", "/api/users/{user}/boards", data)
                              -    req.Header = headers
                              -
                              -    client := &http.Client{}
                              -    resp, err := client.Do(req)
                              -    // ...
                              -}
                              -
                              -
                              -
                               'application/json',
                              -    'Authorization' => 'API_KEY',
                              -);
                              -
                              -$client = new \GuzzleHttp\Client();
                              -
                              -// Define array of request body.
                              -$request_body = array();
                              -
                              -try {
                              -    $response = $client->request('GET','/api/users/{user}/boards', array(
                              -        'headers' => $headers,
                              -        'json' => $request_body,
                              -       )
                              -    );
                              -    print_r($response->getBody()->getContents());
                              - }
                              - catch (\GuzzleHttp\Exception\BadResponseException $e) {
                              -    // handle exception or api errors.
                              -    print_r($e->getMessage());
                              - }
                              -
                              - // ...
                              -
                              -
                              -

                              GET /api/users/{user}/boards

                              -

                              Get all boards attached to a user

                              -

                              Parameters

                              - - - - - - - - - - - - - - - - - - - -
                              NameInTypeRequiredDescription
                              userpathstringtruethe ID of the user to retrieve the data
                              -

                              Detailed descriptions

                              -

                              user: the ID of the user to retrieve the data

                              -
                              -

                              Example responses

                              -
                              -
                              -

                              200 Response

                              -
                              -
                              [
                              -  {
                              -    "_id": "string",
                              -    "title": "string"
                              -  }
                              -]
                              -
                              -

                              Responses

                              - - - - - - - - - - - - - - - - - -
                              StatusMeaningDescriptionSchema
                              200OK200 responseInline
                              -

                              Response Schema

                              -

                              Status Code 200

                              - - - - - - - - - - - - - - - - - - - - - - - - - - -
                              NameTypeRequiredRestrictionsDescription
                              » _idstringfalsenonenone
                              » titlestringfalsenonenone
                              -

                              Checklists

                              get_all_checklists

                              @@ -5608,24 +2724,43 @@ UserSecurity
                              # You can also use wget
                               curl -X GET /api/boards/{board}/cards/{card}/checklists \
                              -  -H 'Accept: application/json' \
                              -  -H 'Authorization: API_KEY'
                              +  -H 'Accept: application/json' \
                              +  -H 'Authorization: API_KEY'
                               
                               
                              -
                              GET /api/boards/{board}/cards/{card}/checklists HTTP/1.1
                              +
                              GET /api/boards/{board}/cards/{card}/checklists HTTP/1.1
                               
                              -Accept: application/json
                              +Accept: application/json
                              +
                              +
                              +
                              var headers = {
                              +  'Accept':'application/json',
                              +  'Authorization':'API_KEY'
                               
                              -
                              -
                              
                              -const headers = {
                              -  'Accept':'application/json',
                              -  'Authorization':'API_KEY'
                               };
                               
                              -fetch('/api/boards/{board}/cards/{card}/checklists',
                              +$.ajax({
                              +  url: '/api/boards/{board}/cards/{card}/checklists',
                              +  method: 'get',
                              +
                              +  headers: headers,
                              +  success: function(data) {
                              +    console.log(JSON.stringify(data));
                              +  }
                              +})
                              +
                              +
                              +
                              const fetch = require('node-fetch');
                              +
                              +const headers = {
                              +  'Accept':'application/json',
                              +  'Authorization':'API_KEY'
                              +
                              +};
                              +
                              +fetch('/api/boards/{board}/cards/{card}/checklists',
                               {
                              -  method: 'GET',
                              +  method: 'GET',
                               
                                 headers: headers
                               })
                              @@ -5636,35 +2771,15 @@ fetch('/api/boards/{board}/cards/{card}/checklist
                               });
                               
                               
                              -
                              const fetch = require('node-fetch');
                              -
                              -const headers = {
                              -  'Accept':'application/json',
                              -  'Authorization':'API_KEY'
                              -};
                              -
                              -fetch('/api/boards/{board}/cards/{card}/checklists',
                              -{
                              -  method: 'GET',
                              -
                              -  headers: headers
                              -})
                              -.then(function(res) {
                              -    return res.json();
                              -}).then(function(body) {
                              -    console.log(body);
                              -});
                              -
                              -
                              -
                              require 'rest-client'
                              -require 'json'
                              +
                              require 'rest-client'
                              +require 'json'
                               
                               headers = {
                              -  'Accept' => 'application/json',
                              -  'Authorization' => 'API_KEY'
                              +  'Accept' => 'application/json',
                              +  'Authorization' => 'API_KEY'
                               }
                               
                              -result = RestClient.get '/api/boards/{board}/cards/{card}/checklists',
                              +result = RestClient.get '/api/boards/{board}/cards/{card}/checklists',
                                 params: {
                                 }, headers: headers
                               
                              @@ -5673,18 +2788,20 @@ p JSON.parse(result)
                               
                              import requests
                               headers = {
                              -  'Accept': 'application/json',
                              -  'Authorization': 'API_KEY'
                              +  'Accept': 'application/json',
                              +  'Authorization': 'API_KEY'
                               }
                               
                              -r = requests.get('/api/boards/{board}/cards/{card}/checklists', headers = headers)
                              +r = requests.get('/api/boards/{board}/cards/{card}/checklists', params={
                               
                              -print(r.json())
                              +}, headers = headers)
                              +
                              +print r.json()
                               
                               
                              -
                              URL obj = new URL("/api/boards/{board}/cards/{card}/checklists");
                              +
                              URL obj = new URL("/api/boards/{board}/cards/{card}/checklists");
                               HttpURLConnection con = (HttpURLConnection) obj.openConnection();
                              -con.setRequestMethod("GET");
                              +con.setRequestMethod("GET");
                               int responseCode = con.getResponseCode();
                               BufferedReader in = new BufferedReader(
                                   new InputStreamReader(con.getInputStream()));
                              @@ -5700,19 +2817,20 @@ System.out.println(response.toString());
                               
                              package main
                               
                               import (
                              -       "bytes"
                              -       "net/http"
                              +       "bytes"
                              +       "net/http"
                               )
                               
                               func main() {
                               
                                   headers := map[string][]string{
                              -        "Accept": []string{"application/json"},
                              -        "Authorization": []string{"API_KEY"},
                              +        "Accept": []string{"application/json"},
                              +        "Authorization": []string{"API_KEY"},
                              +        
                                   }
                               
                                   data := bytes.NewBuffer([]byte{jsonReq})
                              -    req, err := http.NewRequest("GET", "/api/boards/{board}/cards/{card}/checklists", data)
                              +    req, err := http.NewRequest("GET", "/api/boards/{board}/cards/{card}/checklists", data)
                                   req.Header = headers
                               
                                   client := &http.Client{}
                              @@ -5720,31 +2838,6 @@ System.out.println(response.toString());
                                   // ...
                               }
                               
                              -
                              -
                               'application/json',
                              -    'Authorization' => 'API_KEY',
                              -);
                              -
                              -$client = new \GuzzleHttp\Client();
                              -
                              -// Define array of request body.
                              -$request_body = array();
                              -
                              -try {
                              -    $response = $client->request('GET','/api/boards/{board}/cards/{card}/checklists', array(
                              -        'headers' => $headers,
                              -        'json' => $request_body,
                              -       )
                              -    );
                              -    print_r($response->getBody()->getContents());
                              - }
                              - catch (\GuzzleHttp\Exception\BadResponseException $e) {
                              -    // handle exception or api errors.
                              -    print_r($e->getMessage());
                              - }
                              -
                              - // ...
                              -
                               

                              GET /api/boards/{board}/cards/{card}/checklists

                              Get the list of checklists attached to a card

                              @@ -5776,7 +2869,7 @@ System.out.println(response.toString()); -

                              Detailed descriptions

                              +

                              Detailed descriptions

                              board: the board ID

                              card: the card ID

                              @@ -5787,8 +2880,8 @@ System.out.println(response.toString());
                              [
                                 {
                              -    "_id": "string",
                              -    "title": "string"
                              +    "_id": "string",
                              +    "title": "string"
                                 }
                               ]
                               
                              @@ -5851,30 +2944,50 @@ UserSecurity
                              # You can also use wget
                               curl -X POST /api/boards/{board}/cards/{card}/checklists \
                              -  -H 'Content-Type: multipart/form-data' \
                              -  -H 'Accept: application/json' \
                              -  -H 'Authorization: API_KEY'
                              +  -H 'Content-Type: multipart/form-data' \
                              +  -H 'Accept: application/json' \
                              +  -H 'Authorization: API_KEY'
                               
                               
                              -
                              POST /api/boards/{board}/cards/{card}/checklists HTTP/1.1
                              +
                              POST /api/boards/{board}/cards/{card}/checklists HTTP/1.1
                               
                               Content-Type: multipart/form-data
                               Accept: application/json
                               
                               
                              -
                              const inputBody = '{
                              -  "title": "string",
                              -  "items": "string"
                              -}';
                              -const headers = {
                              -  'Content-Type':'multipart/form-data',
                              -  'Accept':'application/json',
                              -  'Authorization':'API_KEY'
                              +
                              var headers = {
                              +  'Content-Type':'multipart/form-data',
                              +  'Accept':'application/json',
                              +  'Authorization':'API_KEY'
                              +
                               };
                               
                              -fetch('/api/boards/{board}/cards/{card}/checklists',
                              +$.ajax({
                              +  url: '/api/boards/{board}/cards/{card}/checklists',
                              +  method: 'post',
                              +
                              +  headers: headers,
                              +  success: function(data) {
                              +    console.log(JSON.stringify(data));
                              +  }
                              +})
                              +
                              +
                              +
                              const fetch = require('node-fetch');
                              +const inputBody = '{
                              +  "title": "string",
                              +  "items": "string"
                              +}';
                              +const headers = {
                              +  'Content-Type':'multipart/form-data',
                              +  'Accept':'application/json',
                              +  'Authorization':'API_KEY'
                              +
                              +};
                              +
                              +fetch('/api/boards/{board}/cards/{card}/checklists',
                               {
                              -  method: 'POST',
                              +  method: 'POST',
                                 body: inputBody,
                                 headers: headers
                               })
                              @@ -5885,40 +2998,16 @@ fetch('/api/boards/{board}/cards/{card}/checklist
                               });
                               
                               
                              -
                              const fetch = require('node-fetch');
                              -const inputBody = {
                              -  "title": "string",
                              -  "items": "string"
                              -};
                              -const headers = {
                              -  'Content-Type':'multipart/form-data',
                              -  'Accept':'application/json',
                              -  'Authorization':'API_KEY'
                              -};
                              -
                              -fetch('/api/boards/{board}/cards/{card}/checklists',
                              -{
                              -  method: 'POST',
                              -  body: JSON.stringify(inputBody),
                              -  headers: headers
                              -})
                              -.then(function(res) {
                              -    return res.json();
                              -}).then(function(body) {
                              -    console.log(body);
                              -});
                              -
                              -
                              -
                              require 'rest-client'
                              -require 'json'
                              +
                              require 'rest-client'
                              +require 'json'
                               
                               headers = {
                              -  'Content-Type' => 'multipart/form-data',
                              -  'Accept' => 'application/json',
                              -  'Authorization' => 'API_KEY'
                              +  'Content-Type' => 'multipart/form-data',
                              +  'Accept' => 'application/json',
                              +  'Authorization' => 'API_KEY'
                               }
                               
                              -result = RestClient.post '/api/boards/{board}/cards/{card}/checklists',
                              +result = RestClient.post '/api/boards/{board}/cards/{card}/checklists',
                                 params: {
                                 }, headers: headers
                               
                              @@ -5927,19 +3016,21 @@ p JSON.parse(result)
                               
                              import requests
                               headers = {
                              -  'Content-Type': 'multipart/form-data',
                              -  'Accept': 'application/json',
                              -  'Authorization': 'API_KEY'
                              +  'Content-Type': 'multipart/form-data',
                              +  'Accept': 'application/json',
                              +  'Authorization': 'API_KEY'
                               }
                               
                              -r = requests.post('/api/boards/{board}/cards/{card}/checklists', headers = headers)
                              +r = requests.post('/api/boards/{board}/cards/{card}/checklists', params={
                               
                              -print(r.json())
                              +}, headers = headers)
                              +
                              +print r.json()
                               
                               
                              -
                              URL obj = new URL("/api/boards/{board}/cards/{card}/checklists");
                              +
                              URL obj = new URL("/api/boards/{board}/cards/{card}/checklists");
                               HttpURLConnection con = (HttpURLConnection) obj.openConnection();
                              -con.setRequestMethod("POST");
                              +con.setRequestMethod("POST");
                               int responseCode = con.getResponseCode();
                               BufferedReader in = new BufferedReader(
                                   new InputStreamReader(con.getInputStream()));
                              @@ -5955,20 +3046,21 @@ System.out.println(response.toString());
                               
                              package main
                               
                               import (
                              -       "bytes"
                              -       "net/http"
                              +       "bytes"
                              +       "net/http"
                               )
                               
                               func main() {
                               
                                   headers := map[string][]string{
                              -        "Content-Type": []string{"multipart/form-data"},
                              -        "Accept": []string{"application/json"},
                              -        "Authorization": []string{"API_KEY"},
                              +        "Content-Type": []string{"multipart/form-data"},
                              +        "Accept": []string{"application/json"},
                              +        "Authorization": []string{"API_KEY"},
                              +        
                                   }
                               
                                   data := bytes.NewBuffer([]byte{jsonReq})
                              -    req, err := http.NewRequest("POST", "/api/boards/{board}/cards/{card}/checklists", data)
                              +    req, err := http.NewRequest("POST", "/api/boards/{board}/cards/{card}/checklists", data)
                                   req.Header = headers
                               
                                   client := &http.Client{}
                              @@ -5976,32 +3068,6 @@ System.out.println(response.toString());
                                   // ...
                               }
                               
                              -
                              -
                               'multipart/form-data',
                              -    'Accept' => 'application/json',
                              -    'Authorization' => 'API_KEY',
                              -);
                              -
                              -$client = new \GuzzleHttp\Client();
                              -
                              -// Define array of request body.
                              -$request_body = array();
                              -
                              -try {
                              -    $response = $client->request('POST','/api/boards/{board}/cards/{card}/checklists', array(
                              -        'headers' => $headers,
                              -        'json' => $request_body,
                              -       )
                              -    );
                              -    print_r($response->getBody()->getContents());
                              - }
                              - catch (\GuzzleHttp\Exception\BadResponseException $e) {
                              -    // handle exception or api errors.
                              -    print_r($e->getMessage());
                              - }
                              -
                              - // ...
                              -
                               

                              POST /api/boards/{board}/cards/{card}/checklists

                              create a new checklist

                              @@ -6042,7 +3108,7 @@ System.out.println(response.toString()); body body object -true +false none @@ -6061,7 +3127,7 @@ System.out.println(response.toString()); -

                              Detailed descriptions

                              +

                              Detailed descriptions

                              board: the board ID

                              card: the card ID

                              @@ -6071,7 +3137,7 @@ System.out.println(response.toString());

                              200 Response

                              {
                              -  "_id": "string"
                              +  "_id": "string"
                               }
                               

                              Responses

                              @@ -6126,24 +3192,43 @@ UserSecurity
                              # You can also use wget
                               curl -X GET /api/boards/{board}/cards/{card}/checklists/{checklist} \
                              -  -H 'Accept: application/json' \
                              -  -H 'Authorization: API_KEY'
                              +  -H 'Accept: application/json' \
                              +  -H 'Authorization: API_KEY'
                               
                               
                              -
                              GET /api/boards/{board}/cards/{card}/checklists/{checklist} HTTP/1.1
                              +
                              GET /api/boards/{board}/cards/{card}/checklists/{checklist} HTTP/1.1
                               
                              -Accept: application/json
                              +Accept: application/json
                              +
                              +
                              +
                              var headers = {
                              +  'Accept':'application/json',
                              +  'Authorization':'API_KEY'
                               
                              -
                              -
                              
                              -const headers = {
                              -  'Accept':'application/json',
                              -  'Authorization':'API_KEY'
                               };
                               
                              -fetch('/api/boards/{board}/cards/{card}/checklists/{checklist}',
                              +$.ajax({
                              +  url: '/api/boards/{board}/cards/{card}/checklists/{checklist}',
                              +  method: 'get',
                              +
                              +  headers: headers,
                              +  success: function(data) {
                              +    console.log(JSON.stringify(data));
                              +  }
                              +})
                              +
                              +
                              +
                              const fetch = require('node-fetch');
                              +
                              +const headers = {
                              +  'Accept':'application/json',
                              +  'Authorization':'API_KEY'
                              +
                              +};
                              +
                              +fetch('/api/boards/{board}/cards/{card}/checklists/{checklist}',
                               {
                              -  method: 'GET',
                              +  method: 'GET',
                               
                                 headers: headers
                               })
                              @@ -6154,35 +3239,15 @@ fetch('/api/boards/{board}/cards/{card}/checklist
                               });
                               
                               
                              -
                              const fetch = require('node-fetch');
                              -
                              -const headers = {
                              -  'Accept':'application/json',
                              -  'Authorization':'API_KEY'
                              -};
                              -
                              -fetch('/api/boards/{board}/cards/{card}/checklists/{checklist}',
                              -{
                              -  method: 'GET',
                              -
                              -  headers: headers
                              -})
                              -.then(function(res) {
                              -    return res.json();
                              -}).then(function(body) {
                              -    console.log(body);
                              -});
                              -
                              -
                              -
                              require 'rest-client'
                              -require 'json'
                              +
                              require 'rest-client'
                              +require 'json'
                               
                               headers = {
                              -  'Accept' => 'application/json',
                              -  'Authorization' => 'API_KEY'
                              +  'Accept' => 'application/json',
                              +  'Authorization' => 'API_KEY'
                               }
                               
                              -result = RestClient.get '/api/boards/{board}/cards/{card}/checklists/{checklist}',
                              +result = RestClient.get '/api/boards/{board}/cards/{card}/checklists/{checklist}',
                                 params: {
                                 }, headers: headers
                               
                              @@ -6191,18 +3256,20 @@ p JSON.parse(result)
                               
                              import requests
                               headers = {
                              -  'Accept': 'application/json',
                              -  'Authorization': 'API_KEY'
                              +  'Accept': 'application/json',
                              +  'Authorization': 'API_KEY'
                               }
                               
                              -r = requests.get('/api/boards/{board}/cards/{card}/checklists/{checklist}', headers = headers)
                              +r = requests.get('/api/boards/{board}/cards/{card}/checklists/{checklist}', params={
                               
                              -print(r.json())
                              +}, headers = headers)
                              +
                              +print r.json()
                               
                               
                              -
                              URL obj = new URL("/api/boards/{board}/cards/{card}/checklists/{checklist}");
                              +
                              URL obj = new URL("/api/boards/{board}/cards/{card}/checklists/{checklist}");
                               HttpURLConnection con = (HttpURLConnection) obj.openConnection();
                              -con.setRequestMethod("GET");
                              +con.setRequestMethod("GET");
                               int responseCode = con.getResponseCode();
                               BufferedReader in = new BufferedReader(
                                   new InputStreamReader(con.getInputStream()));
                              @@ -6218,19 +3285,20 @@ System.out.println(response.toString());
                               
                              package main
                               
                               import (
                              -       "bytes"
                              -       "net/http"
                              +       "bytes"
                              +       "net/http"
                               )
                               
                               func main() {
                               
                                   headers := map[string][]string{
                              -        "Accept": []string{"application/json"},
                              -        "Authorization": []string{"API_KEY"},
                              +        "Accept": []string{"application/json"},
                              +        "Authorization": []string{"API_KEY"},
                              +        
                                   }
                               
                                   data := bytes.NewBuffer([]byte{jsonReq})
                              -    req, err := http.NewRequest("GET", "/api/boards/{board}/cards/{card}/checklists/{checklist}", data)
                              +    req, err := http.NewRequest("GET", "/api/boards/{board}/cards/{card}/checklists/{checklist}", data)
                                   req.Header = headers
                               
                                   client := &http.Client{}
                              @@ -6238,31 +3306,6 @@ System.out.println(response.toString());
                                   // ...
                               }
                               
                              -
                              -
                               'application/json',
                              -    'Authorization' => 'API_KEY',
                              -);
                              -
                              -$client = new \GuzzleHttp\Client();
                              -
                              -// Define array of request body.
                              -$request_body = array();
                              -
                              -try {
                              -    $response = $client->request('GET','/api/boards/{board}/cards/{card}/checklists/{checklist}', array(
                              -        'headers' => $headers,
                              -        'json' => $request_body,
                              -       )
                              -    );
                              -    print_r($response->getBody()->getContents());
                              - }
                              - catch (\GuzzleHttp\Exception\BadResponseException $e) {
                              -    // handle exception or api errors.
                              -    print_r($e->getMessage());
                              - }
                              -
                              - // ...
                              -
                               

                              GET /api/boards/{board}/cards/{card}/checklists/{checklist}

                              Get a checklist

                              @@ -6301,7 +3344,7 @@ System.out.println(response.toString()); -

                              Detailed descriptions

                              +

                              Detailed descriptions

                              board: the board ID

                              card: the card ID

                              checklist: the ID of the checklist

                              @@ -6312,16 +3355,16 @@ System.out.println(response.toString());

                              200 Response

                              {
                              -  "cardId": "string",
                              -  "title": "string",
                              -  "finishedAt": "string",
                              -  "createdAt": "string",
                              -  "sort": 0,
                              -  "items": [
                              +  "cardId": "string",
                              +  "title": "string",
                              +  "finishedAt": "string",
                              +  "createdAt": "string",
                              +  "sort": 0,
                              +  "items": [
                                   {
                              -      "_id": "string",
                              -      "title": "string",
                              -      "isFinished": true
                              +      "_id": "string",
                              +      "title": "string",
                              +      "isFinished": true
                                   }
                                 ]
                               }
                              @@ -6434,24 +3477,43 @@ UserSecurity
                               
                               
                              # You can also use wget
                               curl -X DELETE /api/boards/{board}/cards/{card}/checklists/{checklist} \
                              -  -H 'Accept: application/json' \
                              -  -H 'Authorization: API_KEY'
                              +  -H 'Accept: application/json' \
                              +  -H 'Authorization: API_KEY'
                               
                               
                              -
                              DELETE /api/boards/{board}/cards/{card}/checklists/{checklist} HTTP/1.1
                              +
                              DELETE /api/boards/{board}/cards/{card}/checklists/{checklist} HTTP/1.1
                               
                              -Accept: application/json
                              +Accept: application/json
                              +
                              +
                              +
                              var headers = {
                              +  'Accept':'application/json',
                              +  'Authorization':'API_KEY'
                               
                              -
                              -
                              
                              -const headers = {
                              -  'Accept':'application/json',
                              -  'Authorization':'API_KEY'
                               };
                               
                              -fetch('/api/boards/{board}/cards/{card}/checklists/{checklist}',
                              +$.ajax({
                              +  url: '/api/boards/{board}/cards/{card}/checklists/{checklist}',
                              +  method: 'delete',
                              +
                              +  headers: headers,
                              +  success: function(data) {
                              +    console.log(JSON.stringify(data));
                              +  }
                              +})
                              +
                              +
                              +
                              const fetch = require('node-fetch');
                              +
                              +const headers = {
                              +  'Accept':'application/json',
                              +  'Authorization':'API_KEY'
                              +
                              +};
                              +
                              +fetch('/api/boards/{board}/cards/{card}/checklists/{checklist}',
                               {
                              -  method: 'DELETE',
                              +  method: 'DELETE',
                               
                                 headers: headers
                               })
                              @@ -6462,35 +3524,15 @@ fetch('/api/boards/{board}/cards/{card}/checklist
                               });
                               
                               
                              -
                              const fetch = require('node-fetch');
                              -
                              -const headers = {
                              -  'Accept':'application/json',
                              -  'Authorization':'API_KEY'
                              -};
                              -
                              -fetch('/api/boards/{board}/cards/{card}/checklists/{checklist}',
                              -{
                              -  method: 'DELETE',
                              -
                              -  headers: headers
                              -})
                              -.then(function(res) {
                              -    return res.json();
                              -}).then(function(body) {
                              -    console.log(body);
                              -});
                              -
                              -
                              -
                              require 'rest-client'
                              -require 'json'
                              +
                              require 'rest-client'
                              +require 'json'
                               
                               headers = {
                              -  'Accept' => 'application/json',
                              -  'Authorization' => 'API_KEY'
                              +  'Accept' => 'application/json',
                              +  'Authorization' => 'API_KEY'
                               }
                               
                              -result = RestClient.delete '/api/boards/{board}/cards/{card}/checklists/{checklist}',
                              +result = RestClient.delete '/api/boards/{board}/cards/{card}/checklists/{checklist}',
                                 params: {
                                 }, headers: headers
                               
                              @@ -6499,18 +3541,20 @@ p JSON.parse(result)
                               
                              import requests
                               headers = {
                              -  'Accept': 'application/json',
                              -  'Authorization': 'API_KEY'
                              +  'Accept': 'application/json',
                              +  'Authorization': 'API_KEY'
                               }
                               
                              -r = requests.delete('/api/boards/{board}/cards/{card}/checklists/{checklist}', headers = headers)
                              +r = requests.delete('/api/boards/{board}/cards/{card}/checklists/{checklist}', params={
                               
                              -print(r.json())
                              +}, headers = headers)
                              +
                              +print r.json()
                               
                               
                              -
                              URL obj = new URL("/api/boards/{board}/cards/{card}/checklists/{checklist}");
                              +
                              URL obj = new URL("/api/boards/{board}/cards/{card}/checklists/{checklist}");
                               HttpURLConnection con = (HttpURLConnection) obj.openConnection();
                              -con.setRequestMethod("DELETE");
                              +con.setRequestMethod("DELETE");
                               int responseCode = con.getResponseCode();
                               BufferedReader in = new BufferedReader(
                                   new InputStreamReader(con.getInputStream()));
                              @@ -6526,19 +3570,20 @@ System.out.println(response.toString());
                               
                              package main
                               
                               import (
                              -       "bytes"
                              -       "net/http"
                              +       "bytes"
                              +       "net/http"
                               )
                               
                               func main() {
                               
                                   headers := map[string][]string{
                              -        "Accept": []string{"application/json"},
                              -        "Authorization": []string{"API_KEY"},
                              +        "Accept": []string{"application/json"},
                              +        "Authorization": []string{"API_KEY"},
                              +        
                                   }
                               
                                   data := bytes.NewBuffer([]byte{jsonReq})
                              -    req, err := http.NewRequest("DELETE", "/api/boards/{board}/cards/{card}/checklists/{checklist}", data)
                              +    req, err := http.NewRequest("DELETE", "/api/boards/{board}/cards/{card}/checklists/{checklist}", data)
                                   req.Header = headers
                               
                                   client := &http.Client{}
                              @@ -6546,31 +3591,6 @@ System.out.println(response.toString());
                                   // ...
                               }
                               
                              -
                              -
                               'application/json',
                              -    'Authorization' => 'API_KEY',
                              -);
                              -
                              -$client = new \GuzzleHttp\Client();
                              -
                              -// Define array of request body.
                              -$request_body = array();
                              -
                              -try {
                              -    $response = $client->request('DELETE','/api/boards/{board}/cards/{card}/checklists/{checklist}', array(
                              -        'headers' => $headers,
                              -        'json' => $request_body,
                              -       )
                              -    );
                              -    print_r($response->getBody()->getContents());
                              - }
                              - catch (\GuzzleHttp\Exception\BadResponseException $e) {
                              -    // handle exception or api errors.
                              -    print_r($e->getMessage());
                              - }
                              -
                              - // ...
                              -
                               

                              DELETE /api/boards/{board}/cards/{card}/checklists/{checklist}

                              Delete a checklist

                              @@ -6610,7 +3630,7 @@ System.out.println(response.toString()); -

                              Detailed descriptions

                              +

                              Detailed descriptions

                              board: the board ID

                              card: the card ID

                              checklist: the ID of the checklist to remove

                              @@ -6621,7 +3641,7 @@ System.out.println(response.toString());

                              200 Response

                              {
                              -  "_id": "string"
                              +  "_id": "string"
                               }
                               

                              Responses

                              @@ -6677,29 +3697,49 @@ UserSecurity
                              # You can also use wget
                               curl -X POST /api/boards/{board}/cards/{card}/checklists/{checklist}/items \
                              -  -H 'Content-Type: multipart/form-data' \
                              -  -H 'Accept: application/json' \
                              -  -H 'Authorization: API_KEY'
                              +  -H 'Content-Type: multipart/form-data' \
                              +  -H 'Accept: application/json' \
                              +  -H 'Authorization: API_KEY'
                               
                               
                              -
                              POST /api/boards/{board}/cards/{card}/checklists/{checklist}/items HTTP/1.1
                              +
                              POST /api/boards/{board}/cards/{card}/checklists/{checklist}/items HTTP/1.1
                               
                               Content-Type: multipart/form-data
                               Accept: application/json
                               
                               
                              -
                              const inputBody = '{
                              -  "title": "string"
                              -}';
                              -const headers = {
                              -  'Content-Type':'multipart/form-data',
                              -  'Accept':'application/json',
                              -  'Authorization':'API_KEY'
                              +
                              var headers = {
                              +  'Content-Type':'multipart/form-data',
                              +  'Accept':'application/json',
                              +  'Authorization':'API_KEY'
                              +
                               };
                               
                              -fetch('/api/boards/{board}/cards/{card}/checklists/{checklist}/items',
                              +$.ajax({
                              +  url: '/api/boards/{board}/cards/{card}/checklists/{checklist}/items',
                              +  method: 'post',
                              +
                              +  headers: headers,
                              +  success: function(data) {
                              +    console.log(JSON.stringify(data));
                              +  }
                              +})
                              +
                              +
                              +
                              const fetch = require('node-fetch');
                              +const inputBody = '{
                              +  "title": "string"
                              +}';
                              +const headers = {
                              +  'Content-Type':'multipart/form-data',
                              +  'Accept':'application/json',
                              +  'Authorization':'API_KEY'
                              +
                              +};
                              +
                              +fetch('/api/boards/{board}/cards/{card}/checklists/{checklist}/items',
                               {
                              -  method: 'POST',
                              +  method: 'POST',
                                 body: inputBody,
                                 headers: headers
                               })
                              @@ -6710,39 +3750,16 @@ fetch('/api/boards/{board}/cards/{card}/checklist
                               });
                               
                               
                              -
                              const fetch = require('node-fetch');
                              -const inputBody = {
                              -  "title": "string"
                              -};
                              -const headers = {
                              -  'Content-Type':'multipart/form-data',
                              -  'Accept':'application/json',
                              -  'Authorization':'API_KEY'
                              -};
                              -
                              -fetch('/api/boards/{board}/cards/{card}/checklists/{checklist}/items',
                              -{
                              -  method: 'POST',
                              -  body: JSON.stringify(inputBody),
                              -  headers: headers
                              -})
                              -.then(function(res) {
                              -    return res.json();
                              -}).then(function(body) {
                              -    console.log(body);
                              -});
                              -
                              -
                              -
                              require 'rest-client'
                              -require 'json'
                              +
                              require 'rest-client'
                              +require 'json'
                               
                               headers = {
                              -  'Content-Type' => 'multipart/form-data',
                              -  'Accept' => 'application/json',
                              -  'Authorization' => 'API_KEY'
                              +  'Content-Type' => 'multipart/form-data',
                              +  'Accept' => 'application/json',
                              +  'Authorization' => 'API_KEY'
                               }
                               
                              -result = RestClient.post '/api/boards/{board}/cards/{card}/checklists/{checklist}/items',
                              +result = RestClient.post '/api/boards/{board}/cards/{card}/checklists/{checklist}/items',
                                 params: {
                                 }, headers: headers
                               
                              @@ -6751,19 +3768,21 @@ p JSON.parse(result)
                               
                              import requests
                               headers = {
                              -  'Content-Type': 'multipart/form-data',
                              -  'Accept': 'application/json',
                              -  'Authorization': 'API_KEY'
                              +  'Content-Type': 'multipart/form-data',
                              +  'Accept': 'application/json',
                              +  'Authorization': 'API_KEY'
                               }
                               
                              -r = requests.post('/api/boards/{board}/cards/{card}/checklists/{checklist}/items', headers = headers)
                              +r = requests.post('/api/boards/{board}/cards/{card}/checklists/{checklist}/items', params={
                               
                              -print(r.json())
                              +}, headers = headers)
                              +
                              +print r.json()
                               
                               
                              -
                              URL obj = new URL("/api/boards/{board}/cards/{card}/checklists/{checklist}/items");
                              +
                              URL obj = new URL("/api/boards/{board}/cards/{card}/checklists/{checklist}/items");
                               HttpURLConnection con = (HttpURLConnection) obj.openConnection();
                              -con.setRequestMethod("POST");
                              +con.setRequestMethod("POST");
                               int responseCode = con.getResponseCode();
                               BufferedReader in = new BufferedReader(
                                   new InputStreamReader(con.getInputStream()));
                              @@ -6779,20 +3798,21 @@ System.out.println(response.toString());
                               
                              package main
                               
                               import (
                              -       "bytes"
                              -       "net/http"
                              +       "bytes"
                              +       "net/http"
                               )
                               
                               func main() {
                               
                                   headers := map[string][]string{
                              -        "Content-Type": []string{"multipart/form-data"},
                              -        "Accept": []string{"application/json"},
                              -        "Authorization": []string{"API_KEY"},
                              +        "Content-Type": []string{"multipart/form-data"},
                              +        "Accept": []string{"application/json"},
                              +        "Authorization": []string{"API_KEY"},
                              +        
                                   }
                               
                                   data := bytes.NewBuffer([]byte{jsonReq})
                              -    req, err := http.NewRequest("POST", "/api/boards/{board}/cards/{card}/checklists/{checklist}/items", data)
                              +    req, err := http.NewRequest("POST", "/api/boards/{board}/cards/{card}/checklists/{checklist}/items", data)
                                   req.Header = headers
                               
                                   client := &http.Client{}
                              @@ -6800,32 +3820,6 @@ System.out.println(response.toString());
                                   // ...
                               }
                               
                              -
                              -
                               'multipart/form-data',
                              -    'Accept' => 'application/json',
                              -    'Authorization' => 'API_KEY',
                              -);
                              -
                              -$client = new \GuzzleHttp\Client();
                              -
                              -// Define array of request body.
                              -$request_body = array();
                              -
                              -try {
                              -    $response = $client->request('POST','/api/boards/{board}/cards/{card}/checklists/{checklist}/items', array(
                              -        'headers' => $headers,
                              -        'json' => $request_body,
                              -       )
                              -    );
                              -    print_r($response->getBody()->getContents());
                              - }
                              - catch (\GuzzleHttp\Exception\BadResponseException $e) {
                              -    // handle exception or api errors.
                              -    print_r($e->getMessage());
                              - }
                              -
                              - // ...
                              -
                               

                              POST /api/boards/{board}/cards/{card}/checklists/{checklist}/items

                              add a new item to a checklist

                              @@ -6872,7 +3866,7 @@ System.out.println(response.toString()); body body object -true +false none @@ -6884,7 +3878,7 @@ System.out.println(response.toString()); -

                              Detailed descriptions

                              +

                              Detailed descriptions

                              board: the board ID

                              card: the card ID

                              checklist: the ID of the checklist

                              @@ -6895,7 +3889,7 @@ System.out.println(response.toString());

                              200 Response

                              {
                              -  "_id": "string"
                              +  "_id": "string"
                               }
                               

                              Responses

                              @@ -6950,24 +3944,43 @@ UserSecurity
                              # You can also use wget
                               curl -X GET /api/boards/{board}/cards/{card}/checklists/{checklist}/items/{item} \
                              -  -H 'Accept: application/json' \
                              -  -H 'Authorization: API_KEY'
                              +  -H 'Accept: application/json' \
                              +  -H 'Authorization: API_KEY'
                               
                               
                              -
                              GET /api/boards/{board}/cards/{card}/checklists/{checklist}/items/{item} HTTP/1.1
                              +
                              GET /api/boards/{board}/cards/{card}/checklists/{checklist}/items/{item} HTTP/1.1
                               
                              -Accept: application/json
                              +Accept: application/json
                              +
                              +
                              +
                              var headers = {
                              +  'Accept':'application/json',
                              +  'Authorization':'API_KEY'
                               
                              -
                              -
                              
                              -const headers = {
                              -  'Accept':'application/json',
                              -  'Authorization':'API_KEY'
                               };
                               
                              -fetch('/api/boards/{board}/cards/{card}/checklists/{checklist}/items/{item}',
                              +$.ajax({
                              +  url: '/api/boards/{board}/cards/{card}/checklists/{checklist}/items/{item}',
                              +  method: 'get',
                              +
                              +  headers: headers,
                              +  success: function(data) {
                              +    console.log(JSON.stringify(data));
                              +  }
                              +})
                              +
                              +
                              +
                              const fetch = require('node-fetch');
                              +
                              +const headers = {
                              +  'Accept':'application/json',
                              +  'Authorization':'API_KEY'
                              +
                              +};
                              +
                              +fetch('/api/boards/{board}/cards/{card}/checklists/{checklist}/items/{item}',
                               {
                              -  method: 'GET',
                              +  method: 'GET',
                               
                                 headers: headers
                               })
                              @@ -6978,35 +3991,15 @@ fetch('/api/boards/{board}/cards/{card}/checklist
                               });
                               
                               
                              -
                              const fetch = require('node-fetch');
                              -
                              -const headers = {
                              -  'Accept':'application/json',
                              -  'Authorization':'API_KEY'
                              -};
                              -
                              -fetch('/api/boards/{board}/cards/{card}/checklists/{checklist}/items/{item}',
                              -{
                              -  method: 'GET',
                              -
                              -  headers: headers
                              -})
                              -.then(function(res) {
                              -    return res.json();
                              -}).then(function(body) {
                              -    console.log(body);
                              -});
                              -
                              -
                              -
                              require 'rest-client'
                              -require 'json'
                              +
                              require 'rest-client'
                              +require 'json'
                               
                               headers = {
                              -  'Accept' => 'application/json',
                              -  'Authorization' => 'API_KEY'
                              +  'Accept' => 'application/json',
                              +  'Authorization' => 'API_KEY'
                               }
                               
                              -result = RestClient.get '/api/boards/{board}/cards/{card}/checklists/{checklist}/items/{item}',
                              +result = RestClient.get '/api/boards/{board}/cards/{card}/checklists/{checklist}/items/{item}',
                                 params: {
                                 }, headers: headers
                               
                              @@ -7015,18 +4008,20 @@ p JSON.parse(result)
                               
                              import requests
                               headers = {
                              -  'Accept': 'application/json',
                              -  'Authorization': 'API_KEY'
                              +  'Accept': 'application/json',
                              +  'Authorization': 'API_KEY'
                               }
                               
                              -r = requests.get('/api/boards/{board}/cards/{card}/checklists/{checklist}/items/{item}', headers = headers)
                              +r = requests.get('/api/boards/{board}/cards/{card}/checklists/{checklist}/items/{item}', params={
                               
                              -print(r.json())
                              +}, headers = headers)
                              +
                              +print r.json()
                               
                               
                              -
                              URL obj = new URL("/api/boards/{board}/cards/{card}/checklists/{checklist}/items/{item}");
                              +
                              URL obj = new URL("/api/boards/{board}/cards/{card}/checklists/{checklist}/items/{item}");
                               HttpURLConnection con = (HttpURLConnection) obj.openConnection();
                              -con.setRequestMethod("GET");
                              +con.setRequestMethod("GET");
                               int responseCode = con.getResponseCode();
                               BufferedReader in = new BufferedReader(
                                   new InputStreamReader(con.getInputStream()));
                              @@ -7042,19 +4037,20 @@ System.out.println(response.toString());
                               
                              package main
                               
                               import (
                              -       "bytes"
                              -       "net/http"
                              +       "bytes"
                              +       "net/http"
                               )
                               
                               func main() {
                               
                                   headers := map[string][]string{
                              -        "Accept": []string{"application/json"},
                              -        "Authorization": []string{"API_KEY"},
                              +        "Accept": []string{"application/json"},
                              +        "Authorization": []string{"API_KEY"},
                              +        
                                   }
                               
                                   data := bytes.NewBuffer([]byte{jsonReq})
                              -    req, err := http.NewRequest("GET", "/api/boards/{board}/cards/{card}/checklists/{checklist}/items/{item}", data)
                              +    req, err := http.NewRequest("GET", "/api/boards/{board}/cards/{card}/checklists/{checklist}/items/{item}", data)
                                   req.Header = headers
                               
                                   client := &http.Client{}
                              @@ -7062,31 +4058,6 @@ System.out.println(response.toString());
                                   // ...
                               }
                               
                              -
                              -
                               'application/json',
                              -    'Authorization' => 'API_KEY',
                              -);
                              -
                              -$client = new \GuzzleHttp\Client();
                              -
                              -// Define array of request body.
                              -$request_body = array();
                              -
                              -try {
                              -    $response = $client->request('GET','/api/boards/{board}/cards/{card}/checklists/{checklist}/items/{item}', array(
                              -        'headers' => $headers,
                              -        'json' => $request_body,
                              -       )
                              -    );
                              -    print_r($response->getBody()->getContents());
                              - }
                              - catch (\GuzzleHttp\Exception\BadResponseException $e) {
                              -    // handle exception or api errors.
                              -    print_r($e->getMessage());
                              - }
                              -
                              - // ...
                              -
                               

                              GET /api/boards/{board}/cards/{card}/checklists/{checklist}/items/{item}

                              Get a checklist item

                              @@ -7132,7 +4103,7 @@ System.out.println(response.toString()); -

                              Detailed descriptions

                              +

                              Detailed descriptions

                              board: the board ID

                              card: the card ID

                              checklist: the checklist ID

                              @@ -7144,13 +4115,13 @@ System.out.println(response.toString());

                              200 Response

                              {
                              -  "title": "string",
                              -  "sort": 0,
                              -  "isFinished": true,
                              -  "checklistId": "string",
                              -  "cardId": "string",
                              -  "createdAt": "string",
                              -  "modifiedAt": "string"
                              +  "title": "string",
                              +  "sort": 0,
                              +  "isFinished": true,
                              +  "checklistId": "string",
                              +  "cardId": "string",
                              +  "createdAt": "string",
                              +  "modifiedAt": "string"
                               }
                               

                              Responses

                              @@ -7183,30 +4154,50 @@ UserSecurity
                              # You can also use wget
                               curl -X PUT /api/boards/{board}/cards/{card}/checklists/{checklist}/items/{item} \
                              -  -H 'Content-Type: multipart/form-data' \
                              -  -H 'Accept: application/json' \
                              -  -H 'Authorization: API_KEY'
                              +  -H 'Content-Type: multipart/form-data' \
                              +  -H 'Accept: application/json' \
                              +  -H 'Authorization: API_KEY'
                               
                               
                              -
                              PUT /api/boards/{board}/cards/{card}/checklists/{checklist}/items/{item} HTTP/1.1
                              +
                              PUT /api/boards/{board}/cards/{card}/checklists/{checklist}/items/{item} HTTP/1.1
                               
                               Content-Type: multipart/form-data
                               Accept: application/json
                               
                               
                              -
                              const inputBody = '{
                              -  "isFinished": "string",
                              -  "title": "string"
                              -}';
                              -const headers = {
                              -  'Content-Type':'multipart/form-data',
                              -  'Accept':'application/json',
                              -  'Authorization':'API_KEY'
                              +
                              var headers = {
                              +  'Content-Type':'multipart/form-data',
                              +  'Accept':'application/json',
                              +  'Authorization':'API_KEY'
                              +
                               };
                               
                              -fetch('/api/boards/{board}/cards/{card}/checklists/{checklist}/items/{item}',
                              +$.ajax({
                              +  url: '/api/boards/{board}/cards/{card}/checklists/{checklist}/items/{item}',
                              +  method: 'put',
                              +
                              +  headers: headers,
                              +  success: function(data) {
                              +    console.log(JSON.stringify(data));
                              +  }
                              +})
                              +
                              +
                              +
                              const fetch = require('node-fetch');
                              +const inputBody = '{
                              +  "isFinished": "string",
                              +  "title": "string"
                              +}';
                              +const headers = {
                              +  'Content-Type':'multipart/form-data',
                              +  'Accept':'application/json',
                              +  'Authorization':'API_KEY'
                              +
                              +};
                              +
                              +fetch('/api/boards/{board}/cards/{card}/checklists/{checklist}/items/{item}',
                               {
                              -  method: 'PUT',
                              +  method: 'PUT',
                                 body: inputBody,
                                 headers: headers
                               })
                              @@ -7217,40 +4208,16 @@ fetch('/api/boards/{board}/cards/{card}/checklist
                               });
                               
                               
                              -
                              const fetch = require('node-fetch');
                              -const inputBody = {
                              -  "isFinished": "string",
                              -  "title": "string"
                              -};
                              -const headers = {
                              -  'Content-Type':'multipart/form-data',
                              -  'Accept':'application/json',
                              -  'Authorization':'API_KEY'
                              -};
                              -
                              -fetch('/api/boards/{board}/cards/{card}/checklists/{checklist}/items/{item}',
                              -{
                              -  method: 'PUT',
                              -  body: JSON.stringify(inputBody),
                              -  headers: headers
                              -})
                              -.then(function(res) {
                              -    return res.json();
                              -}).then(function(body) {
                              -    console.log(body);
                              -});
                              -
                              -
                              -
                              require 'rest-client'
                              -require 'json'
                              +
                              require 'rest-client'
                              +require 'json'
                               
                               headers = {
                              -  'Content-Type' => 'multipart/form-data',
                              -  'Accept' => 'application/json',
                              -  'Authorization' => 'API_KEY'
                              +  'Content-Type' => 'multipart/form-data',
                              +  'Accept' => 'application/json',
                              +  'Authorization' => 'API_KEY'
                               }
                               
                              -result = RestClient.put '/api/boards/{board}/cards/{card}/checklists/{checklist}/items/{item}',
                              +result = RestClient.put '/api/boards/{board}/cards/{card}/checklists/{checklist}/items/{item}',
                                 params: {
                                 }, headers: headers
                               
                              @@ -7259,19 +4226,21 @@ p JSON.parse(result)
                               
                              import requests
                               headers = {
                              -  'Content-Type': 'multipart/form-data',
                              -  'Accept': 'application/json',
                              -  'Authorization': 'API_KEY'
                              +  'Content-Type': 'multipart/form-data',
                              +  'Accept': 'application/json',
                              +  'Authorization': 'API_KEY'
                               }
                               
                              -r = requests.put('/api/boards/{board}/cards/{card}/checklists/{checklist}/items/{item}', headers = headers)
                              +r = requests.put('/api/boards/{board}/cards/{card}/checklists/{checklist}/items/{item}', params={
                               
                              -print(r.json())
                              +}, headers = headers)
                              +
                              +print r.json()
                               
                               
                              -
                              URL obj = new URL("/api/boards/{board}/cards/{card}/checklists/{checklist}/items/{item}");
                              +
                              URL obj = new URL("/api/boards/{board}/cards/{card}/checklists/{checklist}/items/{item}");
                               HttpURLConnection con = (HttpURLConnection) obj.openConnection();
                              -con.setRequestMethod("PUT");
                              +con.setRequestMethod("PUT");
                               int responseCode = con.getResponseCode();
                               BufferedReader in = new BufferedReader(
                                   new InputStreamReader(con.getInputStream()));
                              @@ -7287,20 +4256,21 @@ System.out.println(response.toString());
                               
                              package main
                               
                               import (
                              -       "bytes"
                              -       "net/http"
                              +       "bytes"
                              +       "net/http"
                               )
                               
                               func main() {
                               
                                   headers := map[string][]string{
                              -        "Content-Type": []string{"multipart/form-data"},
                              -        "Accept": []string{"application/json"},
                              -        "Authorization": []string{"API_KEY"},
                              +        "Content-Type": []string{"multipart/form-data"},
                              +        "Accept": []string{"application/json"},
                              +        "Authorization": []string{"API_KEY"},
                              +        
                                   }
                               
                                   data := bytes.NewBuffer([]byte{jsonReq})
                              -    req, err := http.NewRequest("PUT", "/api/boards/{board}/cards/{card}/checklists/{checklist}/items/{item}", data)
                              +    req, err := http.NewRequest("PUT", "/api/boards/{board}/cards/{card}/checklists/{checklist}/items/{item}", data)
                                   req.Header = headers
                               
                                   client := &http.Client{}
                              @@ -7308,32 +4278,6 @@ System.out.println(response.toString());
                                   // ...
                               }
                               
                              -
                              -
                               'multipart/form-data',
                              -    'Accept' => 'application/json',
                              -    'Authorization' => 'API_KEY',
                              -);
                              -
                              -$client = new \GuzzleHttp\Client();
                              -
                              -// Define array of request body.
                              -$request_body = array();
                              -
                              -try {
                              -    $response = $client->request('PUT','/api/boards/{board}/cards/{card}/checklists/{checklist}/items/{item}', array(
                              -        'headers' => $headers,
                              -        'json' => $request_body,
                              -       )
                              -    );
                              -    print_r($response->getBody()->getContents());
                              - }
                              - catch (\GuzzleHttp\Exception\BadResponseException $e) {
                              -    // handle exception or api errors.
                              -    print_r($e->getMessage());
                              - }
                              -
                              - // ...
                              -
                               

                              PUT /api/boards/{board}/cards/{card}/checklists/{checklist}/items/{item}

                              Edit a checklist item

                              @@ -7407,7 +4351,7 @@ System.out.println(response.toString()); -

                              Detailed descriptions

                              +

                              Detailed descriptions

                              board: the board ID

                              card: the card ID

                              checklist: the checklist ID

                              @@ -7419,7 +4363,7 @@ System.out.println(response.toString());

                              200 Response

                              {
                              -  "_id": "string"
                              +  "_id": "string"
                               }
                               

                              Responses

                              @@ -7474,24 +4418,43 @@ UserSecurity
                              # You can also use wget
                               curl -X DELETE /api/boards/{board}/cards/{card}/checklists/{checklist}/items/{item} \
                              -  -H 'Accept: application/json' \
                              -  -H 'Authorization: API_KEY'
                              +  -H 'Accept: application/json' \
                              +  -H 'Authorization: API_KEY'
                               
                               
                              -
                              DELETE /api/boards/{board}/cards/{card}/checklists/{checklist}/items/{item} HTTP/1.1
                              +
                              DELETE /api/boards/{board}/cards/{card}/checklists/{checklist}/items/{item} HTTP/1.1
                               
                              -Accept: application/json
                              +Accept: application/json
                              +
                              +
                              +
                              var headers = {
                              +  'Accept':'application/json',
                              +  'Authorization':'API_KEY'
                               
                              -
                              -
                              
                              -const headers = {
                              -  'Accept':'application/json',
                              -  'Authorization':'API_KEY'
                               };
                               
                              -fetch('/api/boards/{board}/cards/{card}/checklists/{checklist}/items/{item}',
                              +$.ajax({
                              +  url: '/api/boards/{board}/cards/{card}/checklists/{checklist}/items/{item}',
                              +  method: 'delete',
                              +
                              +  headers: headers,
                              +  success: function(data) {
                              +    console.log(JSON.stringify(data));
                              +  }
                              +})
                              +
                              +
                              +
                              const fetch = require('node-fetch');
                              +
                              +const headers = {
                              +  'Accept':'application/json',
                              +  'Authorization':'API_KEY'
                              +
                              +};
                              +
                              +fetch('/api/boards/{board}/cards/{card}/checklists/{checklist}/items/{item}',
                               {
                              -  method: 'DELETE',
                              +  method: 'DELETE',
                               
                                 headers: headers
                               })
                              @@ -7502,35 +4465,15 @@ fetch('/api/boards/{board}/cards/{card}/checklist
                               });
                               
                               
                              -
                              const fetch = require('node-fetch');
                              -
                              -const headers = {
                              -  'Accept':'application/json',
                              -  'Authorization':'API_KEY'
                              -};
                              -
                              -fetch('/api/boards/{board}/cards/{card}/checklists/{checklist}/items/{item}',
                              -{
                              -  method: 'DELETE',
                              -
                              -  headers: headers
                              -})
                              -.then(function(res) {
                              -    return res.json();
                              -}).then(function(body) {
                              -    console.log(body);
                              -});
                              -
                              -
                              -
                              require 'rest-client'
                              -require 'json'
                              +
                              require 'rest-client'
                              +require 'json'
                               
                               headers = {
                              -  'Accept' => 'application/json',
                              -  'Authorization' => 'API_KEY'
                              +  'Accept' => 'application/json',
                              +  'Authorization' => 'API_KEY'
                               }
                               
                              -result = RestClient.delete '/api/boards/{board}/cards/{card}/checklists/{checklist}/items/{item}',
                              +result = RestClient.delete '/api/boards/{board}/cards/{card}/checklists/{checklist}/items/{item}',
                                 params: {
                                 }, headers: headers
                               
                              @@ -7539,18 +4482,20 @@ p JSON.parse(result)
                               
                              import requests
                               headers = {
                              -  'Accept': 'application/json',
                              -  'Authorization': 'API_KEY'
                              +  'Accept': 'application/json',
                              +  'Authorization': 'API_KEY'
                               }
                               
                              -r = requests.delete('/api/boards/{board}/cards/{card}/checklists/{checklist}/items/{item}', headers = headers)
                              +r = requests.delete('/api/boards/{board}/cards/{card}/checklists/{checklist}/items/{item}', params={
                               
                              -print(r.json())
                              +}, headers = headers)
                              +
                              +print r.json()
                               
                               
                              -
                              URL obj = new URL("/api/boards/{board}/cards/{card}/checklists/{checklist}/items/{item}");
                              +
                              URL obj = new URL("/api/boards/{board}/cards/{card}/checklists/{checklist}/items/{item}");
                               HttpURLConnection con = (HttpURLConnection) obj.openConnection();
                              -con.setRequestMethod("DELETE");
                              +con.setRequestMethod("DELETE");
                               int responseCode = con.getResponseCode();
                               BufferedReader in = new BufferedReader(
                                   new InputStreamReader(con.getInputStream()));
                              @@ -7566,19 +4511,20 @@ System.out.println(response.toString());
                               
                              package main
                               
                               import (
                              -       "bytes"
                              -       "net/http"
                              +       "bytes"
                              +       "net/http"
                               )
                               
                               func main() {
                               
                                   headers := map[string][]string{
                              -        "Accept": []string{"application/json"},
                              -        "Authorization": []string{"API_KEY"},
                              +        "Accept": []string{"application/json"},
                              +        "Authorization": []string{"API_KEY"},
                              +        
                                   }
                               
                                   data := bytes.NewBuffer([]byte{jsonReq})
                              -    req, err := http.NewRequest("DELETE", "/api/boards/{board}/cards/{card}/checklists/{checklist}/items/{item}", data)
                              +    req, err := http.NewRequest("DELETE", "/api/boards/{board}/cards/{card}/checklists/{checklist}/items/{item}", data)
                                   req.Header = headers
                               
                                   client := &http.Client{}
                              @@ -7586,31 +4532,6 @@ System.out.println(response.toString());
                                   // ...
                               }
                               
                              -
                              -
                               'application/json',
                              -    'Authorization' => 'API_KEY',
                              -);
                              -
                              -$client = new \GuzzleHttp\Client();
                              -
                              -// Define array of request body.
                              -$request_body = array();
                              -
                              -try {
                              -    $response = $client->request('DELETE','/api/boards/{board}/cards/{card}/checklists/{checklist}/items/{item}', array(
                              -        'headers' => $headers,
                              -        'json' => $request_body,
                              -       )
                              -    );
                              -    print_r($response->getBody()->getContents());
                              - }
                              - catch (\GuzzleHttp\Exception\BadResponseException $e) {
                              -    // handle exception or api errors.
                              -    print_r($e->getMessage());
                              - }
                              -
                              - // ...
                              -
                               

                              DELETE /api/boards/{board}/cards/{card}/checklists/{checklist}/items/{item}

                              Delete a checklist item

                              @@ -7657,7 +4578,7 @@ System.out.println(response.toString()); -

                              Detailed descriptions

                              +

                              Detailed descriptions

                              board: the board ID

                              card: the card ID

                              checklist: the checklist ID

                              @@ -7669,7 +4590,7 @@ System.out.println(response.toString());

                              200 Response

                              {
                              -  "_id": "string"
                              +  "_id": "string"
                               }
                               

                              Responses

                              @@ -7725,24 +4646,43 @@ UserSecurity
                              # You can also use wget
                               curl -X GET /api/boards/{board}/cards/{card}/comments \
                              -  -H 'Accept: application/json' \
                              -  -H 'Authorization: API_KEY'
                              +  -H 'Accept: application/json' \
                              +  -H 'Authorization: API_KEY'
                               
                               
                              -
                              GET /api/boards/{board}/cards/{card}/comments HTTP/1.1
                              +
                              GET /api/boards/{board}/cards/{card}/comments HTTP/1.1
                               
                              -Accept: application/json
                              +Accept: application/json
                              +
                              +
                              +
                              var headers = {
                              +  'Accept':'application/json',
                              +  'Authorization':'API_KEY'
                               
                              -
                              -
                              
                              -const headers = {
                              -  'Accept':'application/json',
                              -  'Authorization':'API_KEY'
                               };
                               
                              -fetch('/api/boards/{board}/cards/{card}/comments',
                              +$.ajax({
                              +  url: '/api/boards/{board}/cards/{card}/comments',
                              +  method: 'get',
                              +
                              +  headers: headers,
                              +  success: function(data) {
                              +    console.log(JSON.stringify(data));
                              +  }
                              +})
                              +
                              +
                              +
                              const fetch = require('node-fetch');
                              +
                              +const headers = {
                              +  'Accept':'application/json',
                              +  'Authorization':'API_KEY'
                              +
                              +};
                              +
                              +fetch('/api/boards/{board}/cards/{card}/comments',
                               {
                              -  method: 'GET',
                              +  method: 'GET',
                               
                                 headers: headers
                               })
                              @@ -7753,35 +4693,15 @@ fetch('/api/boards/{board}/cards/{card}/comments&
                               });
                               
                               
                              -
                              const fetch = require('node-fetch');
                              -
                              -const headers = {
                              -  'Accept':'application/json',
                              -  'Authorization':'API_KEY'
                              -};
                              -
                              -fetch('/api/boards/{board}/cards/{card}/comments',
                              -{
                              -  method: 'GET',
                              -
                              -  headers: headers
                              -})
                              -.then(function(res) {
                              -    return res.json();
                              -}).then(function(body) {
                              -    console.log(body);
                              -});
                              -
                              -
                              -
                              require 'rest-client'
                              -require 'json'
                              +
                              require 'rest-client'
                              +require 'json'
                               
                               headers = {
                              -  'Accept' => 'application/json',
                              -  'Authorization' => 'API_KEY'
                              +  'Accept' => 'application/json',
                              +  'Authorization' => 'API_KEY'
                               }
                               
                              -result = RestClient.get '/api/boards/{board}/cards/{card}/comments',
                              +result = RestClient.get '/api/boards/{board}/cards/{card}/comments',
                                 params: {
                                 }, headers: headers
                               
                              @@ -7790,18 +4710,20 @@ p JSON.parse(result)
                               
                              import requests
                               headers = {
                              -  'Accept': 'application/json',
                              -  'Authorization': 'API_KEY'
                              +  'Accept': 'application/json',
                              +  'Authorization': 'API_KEY'
                               }
                               
                              -r = requests.get('/api/boards/{board}/cards/{card}/comments', headers = headers)
                              +r = requests.get('/api/boards/{board}/cards/{card}/comments', params={
                               
                              -print(r.json())
                              +}, headers = headers)
                              +
                              +print r.json()
                               
                               
                              -
                              URL obj = new URL("/api/boards/{board}/cards/{card}/comments");
                              +
                              URL obj = new URL("/api/boards/{board}/cards/{card}/comments");
                               HttpURLConnection con = (HttpURLConnection) obj.openConnection();
                              -con.setRequestMethod("GET");
                              +con.setRequestMethod("GET");
                               int responseCode = con.getResponseCode();
                               BufferedReader in = new BufferedReader(
                                   new InputStreamReader(con.getInputStream()));
                              @@ -7817,19 +4739,20 @@ System.out.println(response.toString());
                               
                              package main
                               
                               import (
                              -       "bytes"
                              -       "net/http"
                              +       "bytes"
                              +       "net/http"
                               )
                               
                               func main() {
                               
                                   headers := map[string][]string{
                              -        "Accept": []string{"application/json"},
                              -        "Authorization": []string{"API_KEY"},
                              +        "Accept": []string{"application/json"},
                              +        "Authorization": []string{"API_KEY"},
                              +        
                                   }
                               
                                   data := bytes.NewBuffer([]byte{jsonReq})
                              -    req, err := http.NewRequest("GET", "/api/boards/{board}/cards/{card}/comments", data)
                              +    req, err := http.NewRequest("GET", "/api/boards/{board}/cards/{card}/comments", data)
                                   req.Header = headers
                               
                                   client := &http.Client{}
                              @@ -7837,31 +4760,6 @@ System.out.println(response.toString());
                                   // ...
                               }
                               
                              -
                              -
                               'application/json',
                              -    'Authorization' => 'API_KEY',
                              -);
                              -
                              -$client = new \GuzzleHttp\Client();
                              -
                              -// Define array of request body.
                              -$request_body = array();
                              -
                              -try {
                              -    $response = $client->request('GET','/api/boards/{board}/cards/{card}/comments', array(
                              -        'headers' => $headers,
                              -        'json' => $request_body,
                              -       )
                              -    );
                              -    print_r($response->getBody()->getContents());
                              - }
                              - catch (\GuzzleHttp\Exception\BadResponseException $e) {
                              -    // handle exception or api errors.
                              -    print_r($e->getMessage());
                              - }
                              -
                              - // ...
                              -
                               

                              GET /api/boards/{board}/cards/{card}/comments

                              Get all comments attached to a card

                              @@ -7893,7 +4791,7 @@ System.out.println(response.toString()); -

                              Detailed descriptions

                              +

                              Detailed descriptions

                              board: the board ID of the card

                              card: the ID of the card

                              @@ -7904,9 +4802,9 @@ System.out.println(response.toString());
                              [
                                 {
                              -    "_id": "string",
                              -    "comment": "string",
                              -    "authorId": "string"
                              +    "_id": "string",
                              +    "comment": "string",
                              +    "authorId": "string"
                                 }
                               ]
                               
                              @@ -7976,30 +4874,50 @@ UserSecurity
                              # You can also use wget
                               curl -X POST /api/boards/{board}/cards/{card}/comments \
                              -  -H 'Content-Type: multipart/form-data' \
                              -  -H 'Accept: application/json' \
                              -  -H 'Authorization: API_KEY'
                              +  -H 'Content-Type: multipart/form-data' \
                              +  -H 'Accept: application/json' \
                              +  -H 'Authorization: API_KEY'
                               
                               
                              -
                              POST /api/boards/{board}/cards/{card}/comments HTTP/1.1
                              +
                              POST /api/boards/{board}/cards/{card}/comments HTTP/1.1
                               
                               Content-Type: multipart/form-data
                               Accept: application/json
                               
                               
                              -
                              const inputBody = '{
                              -  "authorId": "string",
                              -  "comment": "string"
                              -}';
                              -const headers = {
                              -  'Content-Type':'multipart/form-data',
                              -  'Accept':'application/json',
                              -  'Authorization':'API_KEY'
                              +
                              var headers = {
                              +  'Content-Type':'multipart/form-data',
                              +  'Accept':'application/json',
                              +  'Authorization':'API_KEY'
                              +
                               };
                               
                              -fetch('/api/boards/{board}/cards/{card}/comments',
                              +$.ajax({
                              +  url: '/api/boards/{board}/cards/{card}/comments',
                              +  method: 'post',
                              +
                              +  headers: headers,
                              +  success: function(data) {
                              +    console.log(JSON.stringify(data));
                              +  }
                              +})
                              +
                              +
                              +
                              const fetch = require('node-fetch');
                              +const inputBody = '{
                              +  "authorId": "string",
                              +  "comment": "string"
                              +}';
                              +const headers = {
                              +  'Content-Type':'multipart/form-data',
                              +  'Accept':'application/json',
                              +  'Authorization':'API_KEY'
                              +
                              +};
                              +
                              +fetch('/api/boards/{board}/cards/{card}/comments',
                               {
                              -  method: 'POST',
                              +  method: 'POST',
                                 body: inputBody,
                                 headers: headers
                               })
                              @@ -8010,40 +4928,16 @@ fetch('/api/boards/{board}/cards/{card}/comments&
                               });
                               
                               
                              -
                              const fetch = require('node-fetch');
                              -const inputBody = {
                              -  "authorId": "string",
                              -  "comment": "string"
                              -};
                              -const headers = {
                              -  'Content-Type':'multipart/form-data',
                              -  'Accept':'application/json',
                              -  'Authorization':'API_KEY'
                              -};
                              -
                              -fetch('/api/boards/{board}/cards/{card}/comments',
                              -{
                              -  method: 'POST',
                              -  body: JSON.stringify(inputBody),
                              -  headers: headers
                              -})
                              -.then(function(res) {
                              -    return res.json();
                              -}).then(function(body) {
                              -    console.log(body);
                              -});
                              -
                              -
                              -
                              require 'rest-client'
                              -require 'json'
                              +
                              require 'rest-client'
                              +require 'json'
                               
                               headers = {
                              -  'Content-Type' => 'multipart/form-data',
                              -  'Accept' => 'application/json',
                              -  'Authorization' => 'API_KEY'
                              +  'Content-Type' => 'multipart/form-data',
                              +  'Accept' => 'application/json',
                              +  'Authorization' => 'API_KEY'
                               }
                               
                              -result = RestClient.post '/api/boards/{board}/cards/{card}/comments',
                              +result = RestClient.post '/api/boards/{board}/cards/{card}/comments',
                                 params: {
                                 }, headers: headers
                               
                              @@ -8052,19 +4946,21 @@ p JSON.parse(result)
                               
                              import requests
                               headers = {
                              -  'Content-Type': 'multipart/form-data',
                              -  'Accept': 'application/json',
                              -  'Authorization': 'API_KEY'
                              +  'Content-Type': 'multipart/form-data',
                              +  'Accept': 'application/json',
                              +  'Authorization': 'API_KEY'
                               }
                               
                              -r = requests.post('/api/boards/{board}/cards/{card}/comments', headers = headers)
                              +r = requests.post('/api/boards/{board}/cards/{card}/comments', params={
                               
                              -print(r.json())
                              +}, headers = headers)
                              +
                              +print r.json()
                               
                               
                              -
                              URL obj = new URL("/api/boards/{board}/cards/{card}/comments");
                              +
                              URL obj = new URL("/api/boards/{board}/cards/{card}/comments");
                               HttpURLConnection con = (HttpURLConnection) obj.openConnection();
                              -con.setRequestMethod("POST");
                              +con.setRequestMethod("POST");
                               int responseCode = con.getResponseCode();
                               BufferedReader in = new BufferedReader(
                                   new InputStreamReader(con.getInputStream()));
                              @@ -8080,20 +4976,21 @@ System.out.println(response.toString());
                               
                              package main
                               
                               import (
                              -       "bytes"
                              -       "net/http"
                              +       "bytes"
                              +       "net/http"
                               )
                               
                               func main() {
                               
                                   headers := map[string][]string{
                              -        "Content-Type": []string{"multipart/form-data"},
                              -        "Accept": []string{"application/json"},
                              -        "Authorization": []string{"API_KEY"},
                              +        "Content-Type": []string{"multipart/form-data"},
                              +        "Accept": []string{"application/json"},
                              +        "Authorization": []string{"API_KEY"},
                              +        
                                   }
                               
                                   data := bytes.NewBuffer([]byte{jsonReq})
                              -    req, err := http.NewRequest("POST", "/api/boards/{board}/cards/{card}/comments", data)
                              +    req, err := http.NewRequest("POST", "/api/boards/{board}/cards/{card}/comments", data)
                                   req.Header = headers
                               
                                   client := &http.Client{}
                              @@ -8101,32 +4998,6 @@ System.out.println(response.toString());
                                   // ...
                               }
                               
                              -
                              -
                               'multipart/form-data',
                              -    'Accept' => 'application/json',
                              -    'Authorization' => 'API_KEY',
                              -);
                              -
                              -$client = new \GuzzleHttp\Client();
                              -
                              -// Define array of request body.
                              -$request_body = array();
                              -
                              -try {
                              -    $response = $client->request('POST','/api/boards/{board}/cards/{card}/comments', array(
                              -        'headers' => $headers,
                              -        'json' => $request_body,
                              -       )
                              -    );
                              -    print_r($response->getBody()->getContents());
                              - }
                              - catch (\GuzzleHttp\Exception\BadResponseException $e) {
                              -    // handle exception or api errors.
                              -    print_r($e->getMessage());
                              - }
                              -
                              - // ...
                              -
                               

                              POST /api/boards/{board}/cards/{card}/comments

                              Add a comment on a card

                              @@ -8167,7 +5038,7 @@ System.out.println(response.toString()); body body object -true +false none @@ -8186,7 +5057,7 @@ System.out.println(response.toString()); -

                              Detailed descriptions

                              +

                              Detailed descriptions

                              board: the board ID of the card

                              card: the ID of the card

                              @@ -8196,7 +5067,7 @@ System.out.println(response.toString());

                              200 Response

                              {
                              -  "_id": "string"
                              +  "_id": "string"
                               }
                               

                              Responses

                              @@ -8251,24 +5122,43 @@ UserSecurity
                              # You can also use wget
                               curl -X GET /api/boards/{board}/cards/{card}/comments/{comment} \
                              -  -H 'Accept: application/json' \
                              -  -H 'Authorization: API_KEY'
                              +  -H 'Accept: application/json' \
                              +  -H 'Authorization: API_KEY'
                               
                               
                              -
                              GET /api/boards/{board}/cards/{card}/comments/{comment} HTTP/1.1
                              +
                              GET /api/boards/{board}/cards/{card}/comments/{comment} HTTP/1.1
                               
                              -Accept: application/json
                              +Accept: application/json
                              +
                              +
                              +
                              var headers = {
                              +  'Accept':'application/json',
                              +  'Authorization':'API_KEY'
                               
                              -
                              -
                              
                              -const headers = {
                              -  'Accept':'application/json',
                              -  'Authorization':'API_KEY'
                               };
                               
                              -fetch('/api/boards/{board}/cards/{card}/comments/{comment}',
                              +$.ajax({
                              +  url: '/api/boards/{board}/cards/{card}/comments/{comment}',
                              +  method: 'get',
                              +
                              +  headers: headers,
                              +  success: function(data) {
                              +    console.log(JSON.stringify(data));
                              +  }
                              +})
                              +
                              +
                              +
                              const fetch = require('node-fetch');
                              +
                              +const headers = {
                              +  'Accept':'application/json',
                              +  'Authorization':'API_KEY'
                              +
                              +};
                              +
                              +fetch('/api/boards/{board}/cards/{card}/comments/{comment}',
                               {
                              -  method: 'GET',
                              +  method: 'GET',
                               
                                 headers: headers
                               })
                              @@ -8279,35 +5169,15 @@ fetch('/api/boards/{board}/cards/{card}/comments/
                               });
                               
                               
                              -
                              const fetch = require('node-fetch');
                              -
                              -const headers = {
                              -  'Accept':'application/json',
                              -  'Authorization':'API_KEY'
                              -};
                              -
                              -fetch('/api/boards/{board}/cards/{card}/comments/{comment}',
                              -{
                              -  method: 'GET',
                              -
                              -  headers: headers
                              -})
                              -.then(function(res) {
                              -    return res.json();
                              -}).then(function(body) {
                              -    console.log(body);
                              -});
                              -
                              -
                              -
                              require 'rest-client'
                              -require 'json'
                              +
                              require 'rest-client'
                              +require 'json'
                               
                               headers = {
                              -  'Accept' => 'application/json',
                              -  'Authorization' => 'API_KEY'
                              +  'Accept' => 'application/json',
                              +  'Authorization' => 'API_KEY'
                               }
                               
                              -result = RestClient.get '/api/boards/{board}/cards/{card}/comments/{comment}',
                              +result = RestClient.get '/api/boards/{board}/cards/{card}/comments/{comment}',
                                 params: {
                                 }, headers: headers
                               
                              @@ -8316,18 +5186,20 @@ p JSON.parse(result)
                               
                              import requests
                               headers = {
                              -  'Accept': 'application/json',
                              -  'Authorization': 'API_KEY'
                              +  'Accept': 'application/json',
                              +  'Authorization': 'API_KEY'
                               }
                               
                              -r = requests.get('/api/boards/{board}/cards/{card}/comments/{comment}', headers = headers)
                              +r = requests.get('/api/boards/{board}/cards/{card}/comments/{comment}', params={
                               
                              -print(r.json())
                              +}, headers = headers)
                              +
                              +print r.json()
                               
                               
                              -
                              URL obj = new URL("/api/boards/{board}/cards/{card}/comments/{comment}");
                              +
                              URL obj = new URL("/api/boards/{board}/cards/{card}/comments/{comment}");
                               HttpURLConnection con = (HttpURLConnection) obj.openConnection();
                              -con.setRequestMethod("GET");
                              +con.setRequestMethod("GET");
                               int responseCode = con.getResponseCode();
                               BufferedReader in = new BufferedReader(
                                   new InputStreamReader(con.getInputStream()));
                              @@ -8343,19 +5215,20 @@ System.out.println(response.toString());
                               
                              package main
                               
                               import (
                              -       "bytes"
                              -       "net/http"
                              +       "bytes"
                              +       "net/http"
                               )
                               
                               func main() {
                               
                                   headers := map[string][]string{
                              -        "Accept": []string{"application/json"},
                              -        "Authorization": []string{"API_KEY"},
                              +        "Accept": []string{"application/json"},
                              +        "Authorization": []string{"API_KEY"},
                              +        
                                   }
                               
                                   data := bytes.NewBuffer([]byte{jsonReq})
                              -    req, err := http.NewRequest("GET", "/api/boards/{board}/cards/{card}/comments/{comment}", data)
                              +    req, err := http.NewRequest("GET", "/api/boards/{board}/cards/{card}/comments/{comment}", data)
                                   req.Header = headers
                               
                                   client := &http.Client{}
                              @@ -8363,31 +5236,6 @@ System.out.println(response.toString());
                                   // ...
                               }
                               
                              -
                              -
                               'application/json',
                              -    'Authorization' => 'API_KEY',
                              -);
                              -
                              -$client = new \GuzzleHttp\Client();
                              -
                              -// Define array of request body.
                              -$request_body = array();
                              -
                              -try {
                              -    $response = $client->request('GET','/api/boards/{board}/cards/{card}/comments/{comment}', array(
                              -        'headers' => $headers,
                              -        'json' => $request_body,
                              -       )
                              -    );
                              -    print_r($response->getBody()->getContents());
                              - }
                              - catch (\GuzzleHttp\Exception\BadResponseException $e) {
                              -    // handle exception or api errors.
                              -    print_r($e->getMessage());
                              - }
                              -
                              - // ...
                              -
                               

                              GET /api/boards/{board}/cards/{card}/comments/{comment}

                              Get a comment on a card

                              @@ -8426,7 +5274,7 @@ System.out.println(response.toString()); -

                              Detailed descriptions

                              +

                              Detailed descriptions

                              board: the board ID of the card

                              card: the ID of the card

                              comment: the ID of the comment to retrieve

                              @@ -8437,12 +5285,12 @@ System.out.println(response.toString());

                              200 Response

                              {
                              -  "boardId": "string",
                              -  "cardId": "string",
                              -  "text": "string",
                              -  "createdAt": "string",
                              -  "modifiedAt": "string",
                              -  "userId": "string"
                              +  "boardId": "string",
                              +  "cardId": "string",
                              +  "text": "string",
                              +  "createdAt": "string",
                              +  "modifiedAt": "string",
                              +  "userId": "string"
                               }
                               

                              Responses

                              @@ -8475,24 +5323,43 @@ UserSecurity
                              # You can also use wget
                               curl -X DELETE /api/boards/{board}/cards/{card}/comments/{comment} \
                              -  -H 'Accept: application/json' \
                              -  -H 'Authorization: API_KEY'
                              +  -H 'Accept: application/json' \
                              +  -H 'Authorization: API_KEY'
                               
                               
                              -
                              DELETE /api/boards/{board}/cards/{card}/comments/{comment} HTTP/1.1
                              +
                              DELETE /api/boards/{board}/cards/{card}/comments/{comment} HTTP/1.1
                               
                              -Accept: application/json
                              +Accept: application/json
                              +
                              +
                              +
                              var headers = {
                              +  'Accept':'application/json',
                              +  'Authorization':'API_KEY'
                               
                              -
                              -
                              
                              -const headers = {
                              -  'Accept':'application/json',
                              -  'Authorization':'API_KEY'
                               };
                               
                              -fetch('/api/boards/{board}/cards/{card}/comments/{comment}',
                              +$.ajax({
                              +  url: '/api/boards/{board}/cards/{card}/comments/{comment}',
                              +  method: 'delete',
                              +
                              +  headers: headers,
                              +  success: function(data) {
                              +    console.log(JSON.stringify(data));
                              +  }
                              +})
                              +
                              +
                              +
                              const fetch = require('node-fetch');
                              +
                              +const headers = {
                              +  'Accept':'application/json',
                              +  'Authorization':'API_KEY'
                              +
                              +};
                              +
                              +fetch('/api/boards/{board}/cards/{card}/comments/{comment}',
                               {
                              -  method: 'DELETE',
                              +  method: 'DELETE',
                               
                                 headers: headers
                               })
                              @@ -8503,35 +5370,15 @@ fetch('/api/boards/{board}/cards/{card}/comments/
                               });
                               
                               
                              -
                              const fetch = require('node-fetch');
                              -
                              -const headers = {
                              -  'Accept':'application/json',
                              -  'Authorization':'API_KEY'
                              -};
                              -
                              -fetch('/api/boards/{board}/cards/{card}/comments/{comment}',
                              -{
                              -  method: 'DELETE',
                              -
                              -  headers: headers
                              -})
                              -.then(function(res) {
                              -    return res.json();
                              -}).then(function(body) {
                              -    console.log(body);
                              -});
                              -
                              -
                              -
                              require 'rest-client'
                              -require 'json'
                              +
                              require 'rest-client'
                              +require 'json'
                               
                               headers = {
                              -  'Accept' => 'application/json',
                              -  'Authorization' => 'API_KEY'
                              +  'Accept' => 'application/json',
                              +  'Authorization' => 'API_KEY'
                               }
                               
                              -result = RestClient.delete '/api/boards/{board}/cards/{card}/comments/{comment}',
                              +result = RestClient.delete '/api/boards/{board}/cards/{card}/comments/{comment}',
                                 params: {
                                 }, headers: headers
                               
                              @@ -8540,18 +5387,20 @@ p JSON.parse(result)
                               
                              import requests
                               headers = {
                              -  'Accept': 'application/json',
                              -  'Authorization': 'API_KEY'
                              +  'Accept': 'application/json',
                              +  'Authorization': 'API_KEY'
                               }
                               
                              -r = requests.delete('/api/boards/{board}/cards/{card}/comments/{comment}', headers = headers)
                              +r = requests.delete('/api/boards/{board}/cards/{card}/comments/{comment}', params={
                               
                              -print(r.json())
                              +}, headers = headers)
                              +
                              +print r.json()
                               
                               
                              -
                              URL obj = new URL("/api/boards/{board}/cards/{card}/comments/{comment}");
                              +
                              URL obj = new URL("/api/boards/{board}/cards/{card}/comments/{comment}");
                               HttpURLConnection con = (HttpURLConnection) obj.openConnection();
                              -con.setRequestMethod("DELETE");
                              +con.setRequestMethod("DELETE");
                               int responseCode = con.getResponseCode();
                               BufferedReader in = new BufferedReader(
                                   new InputStreamReader(con.getInputStream()));
                              @@ -8567,19 +5416,20 @@ System.out.println(response.toString());
                               
                              package main
                               
                               import (
                              -       "bytes"
                              -       "net/http"
                              +       "bytes"
                              +       "net/http"
                               )
                               
                               func main() {
                               
                                   headers := map[string][]string{
                              -        "Accept": []string{"application/json"},
                              -        "Authorization": []string{"API_KEY"},
                              +        "Accept": []string{"application/json"},
                              +        "Authorization": []string{"API_KEY"},
                              +        
                                   }
                               
                                   data := bytes.NewBuffer([]byte{jsonReq})
                              -    req, err := http.NewRequest("DELETE", "/api/boards/{board}/cards/{card}/comments/{comment}", data)
                              +    req, err := http.NewRequest("DELETE", "/api/boards/{board}/cards/{card}/comments/{comment}", data)
                                   req.Header = headers
                               
                                   client := &http.Client{}
                              @@ -8587,31 +5437,6 @@ System.out.println(response.toString());
                                   // ...
                               }
                               
                              -
                              -
                               'application/json',
                              -    'Authorization' => 'API_KEY',
                              -);
                              -
                              -$client = new \GuzzleHttp\Client();
                              -
                              -// Define array of request body.
                              -$request_body = array();
                              -
                              -try {
                              -    $response = $client->request('DELETE','/api/boards/{board}/cards/{card}/comments/{comment}', array(
                              -        'headers' => $headers,
                              -        'json' => $request_body,
                              -       )
                              -    );
                              -    print_r($response->getBody()->getContents());
                              - }
                              - catch (\GuzzleHttp\Exception\BadResponseException $e) {
                              -    // handle exception or api errors.
                              -    print_r($e->getMessage());
                              - }
                              -
                              - // ...
                              -
                               

                              DELETE /api/boards/{board}/cards/{card}/comments/{comment}

                              Delete a comment on a card

                              @@ -8650,7 +5475,7 @@ System.out.println(response.toString()); -

                              Detailed descriptions

                              +

                              Detailed descriptions

                              board: the board ID of the card

                              card: the ID of the card

                              comment: the ID of the comment to delete

                              @@ -8661,7 +5486,7 @@ System.out.println(response.toString());

                              200 Response

                              {
                              -  "_id": "string"
                              +  "_id": "string"
                               }
                               

                              Responses

                              @@ -8717,24 +5542,43 @@ UserSecurity
                              # You can also use wget
                               curl -X GET /api/boards/{board}/cardsByCustomField/{customField}/{customFieldValue} \
                              -  -H 'Accept: application/json' \
                              -  -H 'Authorization: API_KEY'
                              +  -H 'Accept: application/json' \
                              +  -H 'Authorization: API_KEY'
                               
                               
                              -
                              GET /api/boards/{board}/cardsByCustomField/{customField}/{customFieldValue} HTTP/1.1
                              +
                              GET /api/boards/{board}/cardsByCustomField/{customField}/{customFieldValue} HTTP/1.1
                               
                              -Accept: application/json
                              +Accept: application/json
                              +
                              +
                              +
                              var headers = {
                              +  'Accept':'application/json',
                              +  'Authorization':'API_KEY'
                               
                              -
                              -
                              
                              -const headers = {
                              -  'Accept':'application/json',
                              -  'Authorization':'API_KEY'
                               };
                               
                              -fetch('/api/boards/{board}/cardsByCustomField/{customField}/{customFieldValue}',
                              +$.ajax({
                              +  url: '/api/boards/{board}/cardsByCustomField/{customField}/{customFieldValue}',
                              +  method: 'get',
                              +
                              +  headers: headers,
                              +  success: function(data) {
                              +    console.log(JSON.stringify(data));
                              +  }
                              +})
                              +
                              +
                              +
                              const fetch = require('node-fetch');
                              +
                              +const headers = {
                              +  'Accept':'application/json',
                              +  'Authorization':'API_KEY'
                              +
                              +};
                              +
                              +fetch('/api/boards/{board}/cardsByCustomField/{customField}/{customFieldValue}',
                               {
                              -  method: 'GET',
                              +  method: 'GET',
                               
                                 headers: headers
                               })
                              @@ -8745,35 +5589,15 @@ fetch('/api/boards/{board}/cardsByCustomField/{cu
                               });
                               
                               
                              -
                              const fetch = require('node-fetch');
                              -
                              -const headers = {
                              -  'Accept':'application/json',
                              -  'Authorization':'API_KEY'
                              -};
                              -
                              -fetch('/api/boards/{board}/cardsByCustomField/{customField}/{customFieldValue}',
                              -{
                              -  method: 'GET',
                              -
                              -  headers: headers
                              -})
                              -.then(function(res) {
                              -    return res.json();
                              -}).then(function(body) {
                              -    console.log(body);
                              -});
                              -
                              -
                              -
                              require 'rest-client'
                              -require 'json'
                              +
                              require 'rest-client'
                              +require 'json'
                               
                               headers = {
                              -  'Accept' => 'application/json',
                              -  'Authorization' => 'API_KEY'
                              +  'Accept' => 'application/json',
                              +  'Authorization' => 'API_KEY'
                               }
                               
                              -result = RestClient.get '/api/boards/{board}/cardsByCustomField/{customField}/{customFieldValue}',
                              +result = RestClient.get '/api/boards/{board}/cardsByCustomField/{customField}/{customFieldValue}',
                                 params: {
                                 }, headers: headers
                               
                              @@ -8782,18 +5606,20 @@ p JSON.parse(result)
                               
                              import requests
                               headers = {
                              -  'Accept': 'application/json',
                              -  'Authorization': 'API_KEY'
                              +  'Accept': 'application/json',
                              +  'Authorization': 'API_KEY'
                               }
                               
                              -r = requests.get('/api/boards/{board}/cardsByCustomField/{customField}/{customFieldValue}', headers = headers)
                              +r = requests.get('/api/boards/{board}/cardsByCustomField/{customField}/{customFieldValue}', params={
                               
                              -print(r.json())
                              +}, headers = headers)
                              +
                              +print r.json()
                               
                               
                              -
                              URL obj = new URL("/api/boards/{board}/cardsByCustomField/{customField}/{customFieldValue}");
                              +
                              URL obj = new URL("/api/boards/{board}/cardsByCustomField/{customField}/{customFieldValue}");
                               HttpURLConnection con = (HttpURLConnection) obj.openConnection();
                              -con.setRequestMethod("GET");
                              +con.setRequestMethod("GET");
                               int responseCode = con.getResponseCode();
                               BufferedReader in = new BufferedReader(
                                   new InputStreamReader(con.getInputStream()));
                              @@ -8809,19 +5635,20 @@ System.out.println(response.toString());
                               
                              package main
                               
                               import (
                              -       "bytes"
                              -       "net/http"
                              +       "bytes"
                              +       "net/http"
                               )
                               
                               func main() {
                               
                                   headers := map[string][]string{
                              -        "Accept": []string{"application/json"},
                              -        "Authorization": []string{"API_KEY"},
                              +        "Accept": []string{"application/json"},
                              +        "Authorization": []string{"API_KEY"},
                              +        
                                   }
                               
                                   data := bytes.NewBuffer([]byte{jsonReq})
                              -    req, err := http.NewRequest("GET", "/api/boards/{board}/cardsByCustomField/{customField}/{customFieldValue}", data)
                              +    req, err := http.NewRequest("GET", "/api/boards/{board}/cardsByCustomField/{customField}/{customFieldValue}", data)
                                   req.Header = headers
                               
                                   client := &http.Client{}
                              @@ -8829,31 +5656,6 @@ System.out.println(response.toString());
                                   // ...
                               }
                               
                              -
                              -
                               'application/json',
                              -    'Authorization' => 'API_KEY',
                              -);
                              -
                              -$client = new \GuzzleHttp\Client();
                              -
                              -// Define array of request body.
                              -$request_body = array();
                              -
                              -try {
                              -    $response = $client->request('GET','/api/boards/{board}/cardsByCustomField/{customField}/{customFieldValue}', array(
                              -        'headers' => $headers,
                              -        'json' => $request_body,
                              -       )
                              -    );
                              -    print_r($response->getBody()->getContents());
                              - }
                              - catch (\GuzzleHttp\Exception\BadResponseException $e) {
                              -    // handle exception or api errors.
                              -    print_r($e->getMessage());
                              - }
                              -
                              - // ...
                              -
                               

                              GET /api/boards/{board}/cardsByCustomField/{customField}/{customFieldValue}

                              Get all Cards that matchs a value of a specific custom field

                              @@ -8892,7 +5694,7 @@ System.out.println(response.toString()); -

                              Detailed descriptions

                              +

                              Detailed descriptions

                              board: the board ID

                              customField: the list ID

                              customFieldValue: the value to look for

                              @@ -8904,11 +5706,11 @@ System.out.println(response.toString());
                              [
                                 {
                              -    "_id": "string",
                              -    "title": "string",
                              -    "description": "string",
                              -    "listId": "string",
                              -    "swinlaneId": "string"
                              +    "_id": "string",
                              +    "title": "string",
                              +    "description": "string",
                              +    "listId": "string",
                              +    "swinlaneId": "string"
                                 }
                               ]
                               
                              @@ -8992,24 +5794,43 @@ UserSecurity
                              # You can also use wget
                               curl -X GET /api/boards/{board}/cards_count \
                              -  -H 'Accept: application/json' \
                              -  -H 'Authorization: API_KEY'
                              +  -H 'Accept: application/json' \
                              +  -H 'Authorization: API_KEY'
                               
                               
                              -
                              GET /api/boards/{board}/cards_count HTTP/1.1
                              +
                              GET /api/boards/{board}/cards_count HTTP/1.1
                               
                              -Accept: application/json
                              +Accept: application/json
                              +
                              +
                              +
                              var headers = {
                              +  'Accept':'application/json',
                              +  'Authorization':'API_KEY'
                               
                              -
                              -
                              
                              -const headers = {
                              -  'Accept':'application/json',
                              -  'Authorization':'API_KEY'
                               };
                               
                              -fetch('/api/boards/{board}/cards_count',
                              +$.ajax({
                              +  url: '/api/boards/{board}/cards_count',
                              +  method: 'get',
                              +
                              +  headers: headers,
                              +  success: function(data) {
                              +    console.log(JSON.stringify(data));
                              +  }
                              +})
                              +
                              +
                              +
                              const fetch = require('node-fetch');
                              +
                              +const headers = {
                              +  'Accept':'application/json',
                              +  'Authorization':'API_KEY'
                              +
                              +};
                              +
                              +fetch('/api/boards/{board}/cards_count',
                               {
                              -  method: 'GET',
                              +  method: 'GET',
                               
                                 headers: headers
                               })
                              @@ -9020,35 +5841,15 @@ fetch('/api/boards/{board}/cards_count'
                              -
                              const fetch = require('node-fetch');
                              -
                              -const headers = {
                              -  'Accept':'application/json',
                              -  'Authorization':'API_KEY'
                              -};
                              -
                              -fetch('/api/boards/{board}/cards_count',
                              -{
                              -  method: 'GET',
                              -
                              -  headers: headers
                              -})
                              -.then(function(res) {
                              -    return res.json();
                              -}).then(function(body) {
                              -    console.log(body);
                              -});
                              -
                              -
                              -
                              require 'rest-client'
                              -require 'json'
                              +
                              require 'rest-client'
                              +require 'json'
                               
                               headers = {
                              -  'Accept' => 'application/json',
                              -  'Authorization' => 'API_KEY'
                              +  'Accept' => 'application/json',
                              +  'Authorization' => 'API_KEY'
                               }
                               
                              -result = RestClient.get '/api/boards/{board}/cards_count',
                              +result = RestClient.get '/api/boards/{board}/cards_count',
                                 params: {
                                 }, headers: headers
                               
                              @@ -9057,18 +5858,20 @@ p JSON.parse(result)
                               
                              import requests
                               headers = {
                              -  'Accept': 'application/json',
                              -  'Authorization': 'API_KEY'
                              +  'Accept': 'application/json',
                              +  'Authorization': 'API_KEY'
                               }
                               
                              -r = requests.get('/api/boards/{board}/cards_count', headers = headers)
                              +r = requests.get('/api/boards/{board}/cards_count', params={
                               
                              -print(r.json())
                              +}, headers = headers)
                              +
                              +print r.json()
                               
                               
                              -
                              URL obj = new URL("/api/boards/{board}/cards_count");
                              +
                              URL obj = new URL("/api/boards/{board}/cards_count");
                               HttpURLConnection con = (HttpURLConnection) obj.openConnection();
                              -con.setRequestMethod("GET");
                              +con.setRequestMethod("GET");
                               int responseCode = con.getResponseCode();
                               BufferedReader in = new BufferedReader(
                                   new InputStreamReader(con.getInputStream()));
                              @@ -9084,19 +5887,20 @@ System.out.println(response.toString());
                               
                              package main
                               
                               import (
                              -       "bytes"
                              -       "net/http"
                              +       "bytes"
                              +       "net/http"
                               )
                               
                               func main() {
                               
                                   headers := map[string][]string{
                              -        "Accept": []string{"application/json"},
                              -        "Authorization": []string{"API_KEY"},
                              +        "Accept": []string{"application/json"},
                              +        "Authorization": []string{"API_KEY"},
                              +        
                                   }
                               
                                   data := bytes.NewBuffer([]byte{jsonReq})
                              -    req, err := http.NewRequest("GET", "/api/boards/{board}/cards_count", data)
                              +    req, err := http.NewRequest("GET", "/api/boards/{board}/cards_count", data)
                                   req.Header = headers
                               
                                   client := &http.Client{}
                              @@ -9104,31 +5908,6 @@ System.out.println(response.toString());
                                   // ...
                               }
                               
                              -
                              -
                               'application/json',
                              -    'Authorization' => 'API_KEY',
                              -);
                              -
                              -$client = new \GuzzleHttp\Client();
                              -
                              -// Define array of request body.
                              -$request_body = array();
                              -
                              -try {
                              -    $response = $client->request('GET','/api/boards/{board}/cards_count', array(
                              -        'headers' => $headers,
                              -        'json' => $request_body,
                              -       )
                              -    );
                              -    print_r($response->getBody()->getContents());
                              - }
                              - catch (\GuzzleHttp\Exception\BadResponseException $e) {
                              -    // handle exception or api errors.
                              -    print_r($e->getMessage());
                              - }
                              -
                              - // ...
                              -
                               

                              GET /api/boards/{board}/cards_count

                              Get a cards count to a board

                              @@ -9153,7 +5932,7 @@ System.out.println(response.toString()); -

                              Detailed descriptions

                              +

                              Detailed descriptions

                              board: the board ID

                              Example responses

                              @@ -9162,7 +5941,7 @@ System.out.println(response.toString());

                              200 Response

                              {
                              -  "board_cards_count": 0
                              +  "board_cards_count": 0
                               }
                               

                              Responses

                              @@ -9217,24 +5996,43 @@ UserSecurity
                              # You can also use wget
                               curl -X GET /api/boards/{board}/lists/{list}/cards \
                              -  -H 'Accept: application/json' \
                              -  -H 'Authorization: API_KEY'
                              +  -H 'Accept: application/json' \
                              +  -H 'Authorization: API_KEY'
                               
                               
                              -
                              GET /api/boards/{board}/lists/{list}/cards HTTP/1.1
                              +
                              GET /api/boards/{board}/lists/{list}/cards HTTP/1.1
                               
                              -Accept: application/json
                              +Accept: application/json
                              +
                              +
                              +
                              var headers = {
                              +  'Accept':'application/json',
                              +  'Authorization':'API_KEY'
                               
                              -
                              -
                              
                              -const headers = {
                              -  'Accept':'application/json',
                              -  'Authorization':'API_KEY'
                               };
                               
                              -fetch('/api/boards/{board}/lists/{list}/cards',
                              +$.ajax({
                              +  url: '/api/boards/{board}/lists/{list}/cards',
                              +  method: 'get',
                              +
                              +  headers: headers,
                              +  success: function(data) {
                              +    console.log(JSON.stringify(data));
                              +  }
                              +})
                              +
                              +
                              +
                              const fetch = require('node-fetch');
                              +
                              +const headers = {
                              +  'Accept':'application/json',
                              +  'Authorization':'API_KEY'
                              +
                              +};
                              +
                              +fetch('/api/boards/{board}/lists/{list}/cards',
                               {
                              -  method: 'GET',
                              +  method: 'GET',
                               
                                 headers: headers
                               })
                              @@ -9245,35 +6043,15 @@ fetch('/api/boards/{board}/lists/{list}/cards
                               });
                               
                               
                              -
                              const fetch = require('node-fetch');
                              -
                              -const headers = {
                              -  'Accept':'application/json',
                              -  'Authorization':'API_KEY'
                              -};
                              -
                              -fetch('/api/boards/{board}/lists/{list}/cards',
                              -{
                              -  method: 'GET',
                              -
                              -  headers: headers
                              -})
                              -.then(function(res) {
                              -    return res.json();
                              -}).then(function(body) {
                              -    console.log(body);
                              -});
                              -
                              -
                              -
                              require 'rest-client'
                              -require 'json'
                              +
                              require 'rest-client'
                              +require 'json'
                               
                               headers = {
                              -  'Accept' => 'application/json',
                              -  'Authorization' => 'API_KEY'
                              +  'Accept' => 'application/json',
                              +  'Authorization' => 'API_KEY'
                               }
                               
                              -result = RestClient.get '/api/boards/{board}/lists/{list}/cards',
                              +result = RestClient.get '/api/boards/{board}/lists/{list}/cards',
                                 params: {
                                 }, headers: headers
                               
                              @@ -9282,18 +6060,20 @@ p JSON.parse(result)
                               
                              import requests
                               headers = {
                              -  'Accept': 'application/json',
                              -  'Authorization': 'API_KEY'
                              +  'Accept': 'application/json',
                              +  'Authorization': 'API_KEY'
                               }
                               
                              -r = requests.get('/api/boards/{board}/lists/{list}/cards', headers = headers)
                              +r = requests.get('/api/boards/{board}/lists/{list}/cards', params={
                               
                              -print(r.json())
                              +}, headers = headers)
                              +
                              +print r.json()
                               
                               
                              -
                              URL obj = new URL("/api/boards/{board}/lists/{list}/cards");
                              +
                              URL obj = new URL("/api/boards/{board}/lists/{list}/cards");
                               HttpURLConnection con = (HttpURLConnection) obj.openConnection();
                              -con.setRequestMethod("GET");
                              +con.setRequestMethod("GET");
                               int responseCode = con.getResponseCode();
                               BufferedReader in = new BufferedReader(
                                   new InputStreamReader(con.getInputStream()));
                              @@ -9309,19 +6089,20 @@ System.out.println(response.toString());
                               
                              package main
                               
                               import (
                              -       "bytes"
                              -       "net/http"
                              +       "bytes"
                              +       "net/http"
                               )
                               
                               func main() {
                               
                                   headers := map[string][]string{
                              -        "Accept": []string{"application/json"},
                              -        "Authorization": []string{"API_KEY"},
                              +        "Accept": []string{"application/json"},
                              +        "Authorization": []string{"API_KEY"},
                              +        
                                   }
                               
                                   data := bytes.NewBuffer([]byte{jsonReq})
                              -    req, err := http.NewRequest("GET", "/api/boards/{board}/lists/{list}/cards", data)
                              +    req, err := http.NewRequest("GET", "/api/boards/{board}/lists/{list}/cards", data)
                                   req.Header = headers
                               
                                   client := &http.Client{}
                              @@ -9329,31 +6110,6 @@ System.out.println(response.toString());
                                   // ...
                               }
                               
                              -
                              -
                               'application/json',
                              -    'Authorization' => 'API_KEY',
                              -);
                              -
                              -$client = new \GuzzleHttp\Client();
                              -
                              -// Define array of request body.
                              -$request_body = array();
                              -
                              -try {
                              -    $response = $client->request('GET','/api/boards/{board}/lists/{list}/cards', array(
                              -        'headers' => $headers,
                              -        'json' => $request_body,
                              -       )
                              -    );
                              -    print_r($response->getBody()->getContents());
                              - }
                              - catch (\GuzzleHttp\Exception\BadResponseException $e) {
                              -    // handle exception or api errors.
                              -    print_r($e->getMessage());
                              - }
                              -
                              - // ...
                              -
                               

                              GET /api/boards/{board}/lists/{list}/cards

                              Get all Cards attached to a List

                              @@ -9385,7 +6141,7 @@ System.out.println(response.toString()); -

                              Detailed descriptions

                              +

                              Detailed descriptions

                              board: the board ID

                              list: the list ID

                              @@ -9396,9 +6152,9 @@ System.out.println(response.toString());
                              [
                                 {
                              -    "_id": "string",
                              -    "title": "string",
                              -    "description": "string"
                              +    "_id": "string",
                              +    "title": "string",
                              +    "description": "string"
                                 }
                               ]
                               
                              @@ -9468,34 +6224,54 @@ UserSecurity
                              # You can also use wget
                               curl -X POST /api/boards/{board}/lists/{list}/cards \
                              -  -H 'Content-Type: multipart/form-data' \
                              -  -H 'Accept: application/json' \
                              -  -H 'Authorization: API_KEY'
                              +  -H 'Content-Type: multipart/form-data' \
                              +  -H 'Accept: application/json' \
                              +  -H 'Authorization: API_KEY'
                               
                               
                              -
                              POST /api/boards/{board}/lists/{list}/cards HTTP/1.1
                              +
                              POST /api/boards/{board}/lists/{list}/cards HTTP/1.1
                               
                               Content-Type: multipart/form-data
                               Accept: application/json
                               
                               
                              -
                              const inputBody = '{
                              -  "authorId": "string",
                              -  "members": "string",
                              -  "assignees": "string",
                              -  "title": "string",
                              -  "description": "string",
                              -  "swimlaneId": "string"
                              -}';
                              -const headers = {
                              -  'Content-Type':'multipart/form-data',
                              -  'Accept':'application/json',
                              -  'Authorization':'API_KEY'
                              +
                              var headers = {
                              +  'Content-Type':'multipart/form-data',
                              +  'Accept':'application/json',
                              +  'Authorization':'API_KEY'
                              +
                               };
                               
                              -fetch('/api/boards/{board}/lists/{list}/cards',
                              +$.ajax({
                              +  url: '/api/boards/{board}/lists/{list}/cards',
                              +  method: 'post',
                              +
                              +  headers: headers,
                              +  success: function(data) {
                              +    console.log(JSON.stringify(data));
                              +  }
                              +})
                              +
                              +
                              +
                              const fetch = require('node-fetch');
                              +const inputBody = '{
                              +  "authorId": "string",
                              +  "members": "string",
                              +  "assignees": "string",
                              +  "title": "string",
                              +  "description": "string",
                              +  "swimlaneId": "string"
                              +}';
                              +const headers = {
                              +  'Content-Type':'multipart/form-data',
                              +  'Accept':'application/json',
                              +  'Authorization':'API_KEY'
                              +
                              +};
                              +
                              +fetch('/api/boards/{board}/lists/{list}/cards',
                               {
                              -  method: 'POST',
                              +  method: 'POST',
                                 body: inputBody,
                                 headers: headers
                               })
                              @@ -9506,44 +6282,16 @@ fetch('/api/boards/{board}/lists/{list}/cards
                               });
                               
                               
                              -
                              const fetch = require('node-fetch');
                              -const inputBody = {
                              -  "authorId": "string",
                              -  "members": "string",
                              -  "assignees": "string",
                              -  "title": "string",
                              -  "description": "string",
                              -  "swimlaneId": "string"
                              -};
                              -const headers = {
                              -  'Content-Type':'multipart/form-data',
                              -  'Accept':'application/json',
                              -  'Authorization':'API_KEY'
                              -};
                              -
                              -fetch('/api/boards/{board}/lists/{list}/cards',
                              -{
                              -  method: 'POST',
                              -  body: JSON.stringify(inputBody),
                              -  headers: headers
                              -})
                              -.then(function(res) {
                              -    return res.json();
                              -}).then(function(body) {
                              -    console.log(body);
                              -});
                              -
                              -
                              -
                              require 'rest-client'
                              -require 'json'
                              +
                              require 'rest-client'
                              +require 'json'
                               
                               headers = {
                              -  'Content-Type' => 'multipart/form-data',
                              -  'Accept' => 'application/json',
                              -  'Authorization' => 'API_KEY'
                              +  'Content-Type' => 'multipart/form-data',
                              +  'Accept' => 'application/json',
                              +  'Authorization' => 'API_KEY'
                               }
                               
                              -result = RestClient.post '/api/boards/{board}/lists/{list}/cards',
                              +result = RestClient.post '/api/boards/{board}/lists/{list}/cards',
                                 params: {
                                 }, headers: headers
                               
                              @@ -9552,19 +6300,21 @@ p JSON.parse(result)
                               
                              import requests
                               headers = {
                              -  'Content-Type': 'multipart/form-data',
                              -  'Accept': 'application/json',
                              -  'Authorization': 'API_KEY'
                              +  'Content-Type': 'multipart/form-data',
                              +  'Accept': 'application/json',
                              +  'Authorization': 'API_KEY'
                               }
                               
                              -r = requests.post('/api/boards/{board}/lists/{list}/cards', headers = headers)
                              +r = requests.post('/api/boards/{board}/lists/{list}/cards', params={
                               
                              -print(r.json())
                              +}, headers = headers)
                              +
                              +print r.json()
                               
                               
                              -
                              URL obj = new URL("/api/boards/{board}/lists/{list}/cards");
                              +
                              URL obj = new URL("/api/boards/{board}/lists/{list}/cards");
                               HttpURLConnection con = (HttpURLConnection) obj.openConnection();
                              -con.setRequestMethod("POST");
                              +con.setRequestMethod("POST");
                               int responseCode = con.getResponseCode();
                               BufferedReader in = new BufferedReader(
                                   new InputStreamReader(con.getInputStream()));
                              @@ -9580,20 +6330,21 @@ System.out.println(response.toString());
                               
                              package main
                               
                               import (
                              -       "bytes"
                              -       "net/http"
                              +       "bytes"
                              +       "net/http"
                               )
                               
                               func main() {
                               
                                   headers := map[string][]string{
                              -        "Content-Type": []string{"multipart/form-data"},
                              -        "Accept": []string{"application/json"},
                              -        "Authorization": []string{"API_KEY"},
                              +        "Content-Type": []string{"multipart/form-data"},
                              +        "Accept": []string{"application/json"},
                              +        "Authorization": []string{"API_KEY"},
                              +        
                                   }
                               
                                   data := bytes.NewBuffer([]byte{jsonReq})
                              -    req, err := http.NewRequest("POST", "/api/boards/{board}/lists/{list}/cards", data)
                              +    req, err := http.NewRequest("POST", "/api/boards/{board}/lists/{list}/cards", data)
                                   req.Header = headers
                               
                                   client := &http.Client{}
                              @@ -9601,32 +6352,6 @@ System.out.println(response.toString());
                                   // ...
                               }
                               
                              -
                              -
                               'multipart/form-data',
                              -    'Accept' => 'application/json',
                              -    'Authorization' => 'API_KEY',
                              -);
                              -
                              -$client = new \GuzzleHttp\Client();
                              -
                              -// Define array of request body.
                              -$request_body = array();
                              -
                              -try {
                              -    $response = $client->request('POST','/api/boards/{board}/lists/{list}/cards', array(
                              -        'headers' => $headers,
                              -        'json' => $request_body,
                              -       )
                              -    );
                              -    print_r($response->getBody()->getContents());
                              - }
                              - catch (\GuzzleHttp\Exception\BadResponseException $e) {
                              -    // handle exception or api errors.
                              -    print_r($e->getMessage());
                              - }
                              -
                              - // ...
                              -
                               

                              POST /api/boards/{board}/lists/{list}/cards

                              Create a new Card

                              @@ -9671,7 +6396,7 @@ System.out.println(response.toString()); body body object -true +false none @@ -9718,7 +6443,7 @@ System.out.println(response.toString()); -

                              Detailed descriptions

                              +

                              Detailed descriptions

                              board: the board ID of the new card

                              list: the list ID of the new card

                              @@ -9728,7 +6453,7 @@ System.out.println(response.toString());

                              200 Response

                              {
                              -  "_id": "string"
                              +  "_id": "string"
                               }
                               

                              Responses

                              @@ -9783,24 +6508,43 @@ UserSecurity
                              # You can also use wget
                               curl -X GET /api/boards/{board}/lists/{list}/cards/{card} \
                              -  -H 'Accept: application/json' \
                              -  -H 'Authorization: API_KEY'
                              +  -H 'Accept: application/json' \
                              +  -H 'Authorization: API_KEY'
                               
                               
                              -
                              GET /api/boards/{board}/lists/{list}/cards/{card} HTTP/1.1
                              +
                              GET /api/boards/{board}/lists/{list}/cards/{card} HTTP/1.1
                               
                              -Accept: application/json
                              +Accept: application/json
                              +
                              +
                              +
                              var headers = {
                              +  'Accept':'application/json',
                              +  'Authorization':'API_KEY'
                               
                              -
                              -
                              
                              -const headers = {
                              -  'Accept':'application/json',
                              -  'Authorization':'API_KEY'
                               };
                               
                              -fetch('/api/boards/{board}/lists/{list}/cards/{card}',
                              +$.ajax({
                              +  url: '/api/boards/{board}/lists/{list}/cards/{card}',
                              +  method: 'get',
                              +
                              +  headers: headers,
                              +  success: function(data) {
                              +    console.log(JSON.stringify(data));
                              +  }
                              +})
                              +
                              +
                              +
                              const fetch = require('node-fetch');
                              +
                              +const headers = {
                              +  'Accept':'application/json',
                              +  'Authorization':'API_KEY'
                              +
                              +};
                              +
                              +fetch('/api/boards/{board}/lists/{list}/cards/{card}',
                               {
                              -  method: 'GET',
                              +  method: 'GET',
                               
                                 headers: headers
                               })
                              @@ -9811,35 +6555,15 @@ fetch('/api/boards/{board}/lists/{list}/cards/{ca
                               });
                               
                               
                              -
                              const fetch = require('node-fetch');
                              -
                              -const headers = {
                              -  'Accept':'application/json',
                              -  'Authorization':'API_KEY'
                              -};
                              -
                              -fetch('/api/boards/{board}/lists/{list}/cards/{card}',
                              -{
                              -  method: 'GET',
                              -
                              -  headers: headers
                              -})
                              -.then(function(res) {
                              -    return res.json();
                              -}).then(function(body) {
                              -    console.log(body);
                              -});
                              -
                              -
                              -
                              require 'rest-client'
                              -require 'json'
                              +
                              require 'rest-client'
                              +require 'json'
                               
                               headers = {
                              -  'Accept' => 'application/json',
                              -  'Authorization' => 'API_KEY'
                              +  'Accept' => 'application/json',
                              +  'Authorization' => 'API_KEY'
                               }
                               
                              -result = RestClient.get '/api/boards/{board}/lists/{list}/cards/{card}',
                              +result = RestClient.get '/api/boards/{board}/lists/{list}/cards/{card}',
                                 params: {
                                 }, headers: headers
                               
                              @@ -9848,18 +6572,20 @@ p JSON.parse(result)
                               
                              import requests
                               headers = {
                              -  'Accept': 'application/json',
                              -  'Authorization': 'API_KEY'
                              +  'Accept': 'application/json',
                              +  'Authorization': 'API_KEY'
                               }
                               
                              -r = requests.get('/api/boards/{board}/lists/{list}/cards/{card}', headers = headers)
                              +r = requests.get('/api/boards/{board}/lists/{list}/cards/{card}', params={
                               
                              -print(r.json())
                              +}, headers = headers)
                              +
                              +print r.json()
                               
                               
                              -
                              URL obj = new URL("/api/boards/{board}/lists/{list}/cards/{card}");
                              +
                              URL obj = new URL("/api/boards/{board}/lists/{list}/cards/{card}");
                               HttpURLConnection con = (HttpURLConnection) obj.openConnection();
                              -con.setRequestMethod("GET");
                              +con.setRequestMethod("GET");
                               int responseCode = con.getResponseCode();
                               BufferedReader in = new BufferedReader(
                                   new InputStreamReader(con.getInputStream()));
                              @@ -9875,19 +6601,20 @@ System.out.println(response.toString());
                               
                              package main
                               
                               import (
                              -       "bytes"
                              -       "net/http"
                              +       "bytes"
                              +       "net/http"
                               )
                               
                               func main() {
                               
                                   headers := map[string][]string{
                              -        "Accept": []string{"application/json"},
                              -        "Authorization": []string{"API_KEY"},
                              +        "Accept": []string{"application/json"},
                              +        "Authorization": []string{"API_KEY"},
                              +        
                                   }
                               
                                   data := bytes.NewBuffer([]byte{jsonReq})
                              -    req, err := http.NewRequest("GET", "/api/boards/{board}/lists/{list}/cards/{card}", data)
                              +    req, err := http.NewRequest("GET", "/api/boards/{board}/lists/{list}/cards/{card}", data)
                                   req.Header = headers
                               
                                   client := &http.Client{}
                              @@ -9895,31 +6622,6 @@ System.out.println(response.toString());
                                   // ...
                               }
                               
                              -
                              -
                               'application/json',
                              -    'Authorization' => 'API_KEY',
                              -);
                              -
                              -$client = new \GuzzleHttp\Client();
                              -
                              -// Define array of request body.
                              -$request_body = array();
                              -
                              -try {
                              -    $response = $client->request('GET','/api/boards/{board}/lists/{list}/cards/{card}', array(
                              -        'headers' => $headers,
                              -        'json' => $request_body,
                              -       )
                              -    );
                              -    print_r($response->getBody()->getContents());
                              - }
                              - catch (\GuzzleHttp\Exception\BadResponseException $e) {
                              -    // handle exception or api errors.
                              -    print_r($e->getMessage());
                              - }
                              -
                              - // ...
                              -
                               

                              GET /api/boards/{board}/lists/{list}/cards/{card}

                              Get a Card

                              @@ -9958,7 +6660,7 @@ System.out.println(response.toString()); -

                              Detailed descriptions

                              +

                              Detailed descriptions

                              board: the board ID

                              list: the list ID of the card

                              card: the card ID

                              @@ -9969,102 +6671,104 @@ System.out.println(response.toString());

                              200 Response

                              {
                              -  "title": "string",
                              -  "archived": true,
                              -  "archivedAt": "string",
                              -  "parentId": "string",
                              -  "listId": "string",
                              -  "swimlaneId": "string",
                              -  "boardId": "string",
                              -  "coverId": "string",
                              -  "color": "white",
                              -  "createdAt": "string",
                              -  "modifiedAt": "string",
                              -  "customFields": [
                              +  "title": "string",
                              +  "archived": true,
                              +  "archivedAt": "string",
                              +  "parentId": "string",
                              +  "listId": "string",
                              +  "swimlaneId": "string",
                              +  "boardId": "string",
                              +  "coverId": "string",
                              +  "color": "white",
                              +  "createdAt": "string",
                              +  "modifiedAt": "string",
                              +  "customFields": [
                                   {}
                                 ],
                              -  "dateLastActivity": "string",
                              -  "description": "string",
                              -  "requestedBy": "string",
                              -  "assignedBy": "string",
                              -  "labelIds": [
                              -    "string"
                              +  "dateLastActivity": "string",
                              +  "description": "string",
                              +  "requestedBy": "string",
                              +  "assignedBy": "string",
                              +  "labelIds": [
                              +    "string"
                                 ],
                              -  "members": [
                              -    "string"
                              +  "members": [
                              +    "string"
                                 ],
                              -  "assignees": [
                              -    "string"
                              +  "assignees": [
                              +    "string"
                                 ],
                              -  "receivedAt": "string",
                              -  "startAt": "string",
                              -  "dueAt": "string",
                              -  "endAt": "string",
                              -  "spentTime": 0,
                              -  "isOvertime": true,
                              -  "userId": "string",
                              -  "sort": 0,
                              -  "subtaskSort": 0,
                              -  "type": "string",
                              -  "linkedId": "string",
                              -  "vote": {
                              -    "question": "string",
                              -    "positive": [
                              -      "string"
                              +  "receivedAt": "string",
                              +  "startAt": "string",
                              +  "dueAt": "string",
                              +  "endAt": "string",
                              +  "spentTime": 0,
                              +  "isOvertime": true,
                              +  "userId": "string",
                              +  "sort": 0,
                              +  "subtaskSort": 0,
                              +  "type": "string",
                              +  "linkedId": "string",
                              +  "vote": {
                              +    "question": "string",
                              +    "positive": [
                              +      "string"
                                   ],
                              -    "negative": [
                              -      "string"
                              +    "negative": [
                              +      "string"
                                   ],
                              -    "end": "string",
                              -    "public": true,
                              -    "allowNonBoardMembers": true
                              +    "end": "string",
                              +    "public": true,
                              +    "allowNonBoardMembers": true
                                 },
                              -  "poker": {
                              -    "question": true,
                              -    "one": [
                              -      "string"
                              +  "poker": {
                              +    "question": true,
                              +    "one": [
                              +      "string"
                                   ],
                              -    "two": [
                              -      "string"
                              +    "two": [
                              +      "string"
                                   ],
                              -    "three": [
                              -      "string"
                              +    "three": [
                              +      "string"
                                   ],
                              -    "five": [
                              -      "string"
                              +    "five": [
                              +      "string"
                                   ],
                              -    "eight": [
                              -      "string"
                              +    "eight": [
                              +      "string"
                                   ],
                              -    "thirteen": [
                              -      "string"
                              +    "thirteen": [
                              +      "string"
                                   ],
                              -    "twenty": [
                              -      "string"
                              +    "twenty": [
                              +      "string"
                                   ],
                              -    "forty": [
                              -      "string"
                              +    "forty": [
                              +      "string"
                                   ],
                              -    "oneHundred": [
                              -      "string"
                              +    "oneHundred": [
                              +      "string"
                                   ],
                              -    "unsure": [
                              -      "string"
                              +    "unsure": [
                              +      "string"
                                   ],
                              -    "end": "string",
                              -    "allowNonBoardMembers": true,
                              -    "estimation": 0
                              +    "end": "string",
                              +    "allowNonBoardMembers": true,
                              +    "estimation": 0
                                 },
                              -  "targetId_gantt": [
                              -    "string"
                              +  "targetId_gantt": [
                              +    "string"
                                 ],
                              -  "linkType_gantt": [
                              +  "linkType_gantt": [
                                   0
                                 ],
                              -  "linkId_gantt": [
                              -    "string"
                              +  "linkId_gantt": [
                              +    "string"
                                 ],
                              -  "cardNumber": 0
                              +  "cardNumber": 0,
                              +  "showActivities": true,
                              +  "hideFinishedChecklistIfItemsAreHidden": true
                               }
                               

                              Responses

                              @@ -10097,54 +6801,74 @@ UserSecurity
                              # You can also use wget
                               curl -X PUT /api/boards/{board}/lists/{list}/cards/{card} \
                              -  -H 'Content-Type: multipart/form-data' \
                              -  -H 'Accept: application/json' \
                              -  -H 'Authorization: API_KEY'
                              +  -H 'Content-Type: multipart/form-data' \
                              +  -H 'Accept: application/json' \
                              +  -H 'Authorization: API_KEY'
                               
                               
                              -
                              PUT /api/boards/{board}/lists/{list}/cards/{card} HTTP/1.1
                              +
                              PUT /api/boards/{board}/lists/{list}/cards/{card} HTTP/1.1
                               
                               Content-Type: multipart/form-data
                               Accept: application/json
                               
                               
                              -
                              const inputBody = '{
                              -  "newBoardId": "string",
                              -  "newSwimlaneId": "string",
                              -  "newListId": "string",
                              -  "title": "string",
                              -  "sort": "string",
                              -  "parentId": "string",
                              -  "description": "string",
                              -  "color": "string",
                              -  "vote": {},
                              -  "poker": {},
                              -  "labelIds": "string",
                              -  "requestedBy": "string",
                              -  "assignedBy": "string",
                              -  "receivedAt": "string",
                              -  "startAt": "string",
                              -  "dueAt": "string",
                              -  "endAt": "string",
                              -  "spentTime": "string",
                              -  "isOverTime": true,
                              -  "customFields": "string",
                              -  "members": "string",
                              -  "assignees": "string",
                              -  "swimlaneId": "string",
                              -  "listId": "string",
                              -  "authorId": "string",
                              -  "archive": "string"
                              -}';
                              -const headers = {
                              -  'Content-Type':'multipart/form-data',
                              -  'Accept':'application/json',
                              -  'Authorization':'API_KEY'
                              +
                              var headers = {
                              +  'Content-Type':'multipart/form-data',
                              +  'Accept':'application/json',
                              +  'Authorization':'API_KEY'
                              +
                               };
                               
                              -fetch('/api/boards/{board}/lists/{list}/cards/{card}',
                              +$.ajax({
                              +  url: '/api/boards/{board}/lists/{list}/cards/{card}',
                              +  method: 'put',
                              +
                              +  headers: headers,
                              +  success: function(data) {
                              +    console.log(JSON.stringify(data));
                              +  }
                              +})
                              +
                              +
                              +
                              const fetch = require('node-fetch');
                              +const inputBody = '{
                              +  "newBoardId": "string",
                              +  "newSwimlaneId": "string",
                              +  "newListId": "string",
                              +  "title": "string",
                              +  "sort": "string",
                              +  "parentId": "string",
                              +  "description": "string",
                              +  "color": "string",
                              +  "vote": {},
                              +  "poker": {},
                              +  "labelIds": "string",
                              +  "requestedBy": "string",
                              +  "assignedBy": "string",
                              +  "receivedAt": "string",
                              +  "startAt": "string",
                              +  "dueAt": "string",
                              +  "endAt": "string",
                              +  "spentTime": "string",
                              +  "isOverTime": true,
                              +  "customFields": "string",
                              +  "members": "string",
                              +  "assignees": "string",
                              +  "swimlaneId": "string",
                              +  "listId": "string",
                              +  "authorId": "string",
                              +  "archive": "string"
                              +}';
                              +const headers = {
                              +  'Content-Type':'multipart/form-data',
                              +  'Accept':'application/json',
                              +  'Authorization':'API_KEY'
                              +
                              +};
                              +
                              +fetch('/api/boards/{board}/lists/{list}/cards/{card}',
                               {
                              -  method: 'PUT',
                              +  method: 'PUT',
                                 body: inputBody,
                                 headers: headers
                               })
                              @@ -10155,64 +6879,16 @@ fetch('/api/boards/{board}/lists/{list}/cards/{ca
                               });
                               
                               
                              -
                              const fetch = require('node-fetch');
                              -const inputBody = {
                              -  "newBoardId": "string",
                              -  "newSwimlaneId": "string",
                              -  "newListId": "string",
                              -  "title": "string",
                              -  "sort": "string",
                              -  "parentId": "string",
                              -  "description": "string",
                              -  "color": "string",
                              -  "vote": {},
                              -  "poker": {},
                              -  "labelIds": "string",
                              -  "requestedBy": "string",
                              -  "assignedBy": "string",
                              -  "receivedAt": "string",
                              -  "startAt": "string",
                              -  "dueAt": "string",
                              -  "endAt": "string",
                              -  "spentTime": "string",
                              -  "isOverTime": true,
                              -  "customFields": "string",
                              -  "members": "string",
                              -  "assignees": "string",
                              -  "swimlaneId": "string",
                              -  "listId": "string",
                              -  "authorId": "string",
                              -  "archive": "string"
                              -};
                              -const headers = {
                              -  'Content-Type':'multipart/form-data',
                              -  'Accept':'application/json',
                              -  'Authorization':'API_KEY'
                              -};
                              -
                              -fetch('/api/boards/{board}/lists/{list}/cards/{card}',
                              -{
                              -  method: 'PUT',
                              -  body: JSON.stringify(inputBody),
                              -  headers: headers
                              -})
                              -.then(function(res) {
                              -    return res.json();
                              -}).then(function(body) {
                              -    console.log(body);
                              -});
                              -
                              -
                              -
                              require 'rest-client'
                              -require 'json'
                              +
                              require 'rest-client'
                              +require 'json'
                               
                               headers = {
                              -  'Content-Type' => 'multipart/form-data',
                              -  'Accept' => 'application/json',
                              -  'Authorization' => 'API_KEY'
                              +  'Content-Type' => 'multipart/form-data',
                              +  'Accept' => 'application/json',
                              +  'Authorization' => 'API_KEY'
                               }
                               
                              -result = RestClient.put '/api/boards/{board}/lists/{list}/cards/{card}',
                              +result = RestClient.put '/api/boards/{board}/lists/{list}/cards/{card}',
                                 params: {
                                 }, headers: headers
                               
                              @@ -10221,19 +6897,21 @@ p JSON.parse(result)
                               
                              import requests
                               headers = {
                              -  'Content-Type': 'multipart/form-data',
                              -  'Accept': 'application/json',
                              -  'Authorization': 'API_KEY'
                              +  'Content-Type': 'multipart/form-data',
                              +  'Accept': 'application/json',
                              +  'Authorization': 'API_KEY'
                               }
                               
                              -r = requests.put('/api/boards/{board}/lists/{list}/cards/{card}', headers = headers)
                              +r = requests.put('/api/boards/{board}/lists/{list}/cards/{card}', params={
                               
                              -print(r.json())
                              +}, headers = headers)
                              +
                              +print r.json()
                               
                               
                              -
                              URL obj = new URL("/api/boards/{board}/lists/{list}/cards/{card}");
                              +
                              URL obj = new URL("/api/boards/{board}/lists/{list}/cards/{card}");
                               HttpURLConnection con = (HttpURLConnection) obj.openConnection();
                              -con.setRequestMethod("PUT");
                              +con.setRequestMethod("PUT");
                               int responseCode = con.getResponseCode();
                               BufferedReader in = new BufferedReader(
                                   new InputStreamReader(con.getInputStream()));
                              @@ -10249,20 +6927,21 @@ System.out.println(response.toString());
                               
                              package main
                               
                               import (
                              -       "bytes"
                              -       "net/http"
                              +       "bytes"
                              +       "net/http"
                               )
                               
                               func main() {
                               
                                   headers := map[string][]string{
                              -        "Content-Type": []string{"multipart/form-data"},
                              -        "Accept": []string{"application/json"},
                              -        "Authorization": []string{"API_KEY"},
                              +        "Content-Type": []string{"multipart/form-data"},
                              +        "Accept": []string{"application/json"},
                              +        "Authorization": []string{"API_KEY"},
                              +        
                                   }
                               
                                   data := bytes.NewBuffer([]byte{jsonReq})
                              -    req, err := http.NewRequest("PUT", "/api/boards/{board}/lists/{list}/cards/{card}", data)
                              +    req, err := http.NewRequest("PUT", "/api/boards/{board}/lists/{list}/cards/{card}", data)
                                   req.Header = headers
                               
                                   client := &http.Client{}
                              @@ -10270,32 +6949,6 @@ System.out.println(response.toString());
                                   // ...
                               }
                               
                              -
                              -
                               'multipart/form-data',
                              -    'Accept' => 'application/json',
                              -    'Authorization' => 'API_KEY',
                              -);
                              -
                              -$client = new \GuzzleHttp\Client();
                              -
                              -// Define array of request body.
                              -$request_body = array();
                              -
                              -try {
                              -    $response = $client->request('PUT','/api/boards/{board}/lists/{list}/cards/{card}', array(
                              -        'headers' => $headers,
                              -        'json' => $request_body,
                              -       )
                              -    );
                              -    print_r($response->getBody()->getContents());
                              - }
                              - catch (\GuzzleHttp\Exception\BadResponseException $e) {
                              -    // handle exception or api errors.
                              -    print_r($e->getMessage());
                              - }
                              -
                              - // ...
                              -
                               

                              PUT /api/boards/{board}/lists/{list}/cards/{card}

                              Edit Fields in a Card

                              @@ -10318,8 +6971,8 @@ System.out.println(response.toString()); parentId: string description: string color: string -vote: {} -poker: {} +vote: {} +poker: {} labelIds: string requestedBy: string assignedBy: string @@ -10375,7 +7028,7 @@ System.out.println(response.toString()); body body object -true +false none @@ -10562,7 +7215,7 @@ System.out.println(response.toString()); -

                              Detailed descriptions

                              +

                              Detailed descriptions

                              board: the board ID of the card

                              list: the list ID of the card

                              card: the ID of the card

                              @@ -10573,7 +7226,7 @@ System.out.println(response.toString());

                              200 Response

                              {
                              -  "_id": "string"
                              +  "_id": "string"
                               }
                               

                              Responses

                              @@ -10628,24 +7281,43 @@ UserSecurity
                              # You can also use wget
                               curl -X DELETE /api/boards/{board}/lists/{list}/cards/{card} \
                              -  -H 'Accept: application/json' \
                              -  -H 'Authorization: API_KEY'
                              +  -H 'Accept: application/json' \
                              +  -H 'Authorization: API_KEY'
                               
                               
                              -
                              DELETE /api/boards/{board}/lists/{list}/cards/{card} HTTP/1.1
                              +
                              DELETE /api/boards/{board}/lists/{list}/cards/{card} HTTP/1.1
                               
                              -Accept: application/json
                              +Accept: application/json
                              +
                              +
                              +
                              var headers = {
                              +  'Accept':'application/json',
                              +  'Authorization':'API_KEY'
                               
                              -
                              -
                              
                              -const headers = {
                              -  'Accept':'application/json',
                              -  'Authorization':'API_KEY'
                               };
                               
                              -fetch('/api/boards/{board}/lists/{list}/cards/{card}',
                              +$.ajax({
                              +  url: '/api/boards/{board}/lists/{list}/cards/{card}',
                              +  method: 'delete',
                              +
                              +  headers: headers,
                              +  success: function(data) {
                              +    console.log(JSON.stringify(data));
                              +  }
                              +})
                              +
                              +
                              +
                              const fetch = require('node-fetch');
                              +
                              +const headers = {
                              +  'Accept':'application/json',
                              +  'Authorization':'API_KEY'
                              +
                              +};
                              +
                              +fetch('/api/boards/{board}/lists/{list}/cards/{card}',
                               {
                              -  method: 'DELETE',
                              +  method: 'DELETE',
                               
                                 headers: headers
                               })
                              @@ -10656,35 +7328,15 @@ fetch('/api/boards/{board}/lists/{list}/cards/{ca
                               });
                               
                               
                              -
                              const fetch = require('node-fetch');
                              -
                              -const headers = {
                              -  'Accept':'application/json',
                              -  'Authorization':'API_KEY'
                              -};
                              -
                              -fetch('/api/boards/{board}/lists/{list}/cards/{card}',
                              -{
                              -  method: 'DELETE',
                              -
                              -  headers: headers
                              -})
                              -.then(function(res) {
                              -    return res.json();
                              -}).then(function(body) {
                              -    console.log(body);
                              -});
                              -
                              -
                              -
                              require 'rest-client'
                              -require 'json'
                              +
                              require 'rest-client'
                              +require 'json'
                               
                               headers = {
                              -  'Accept' => 'application/json',
                              -  'Authorization' => 'API_KEY'
                              +  'Accept' => 'application/json',
                              +  'Authorization' => 'API_KEY'
                               }
                               
                              -result = RestClient.delete '/api/boards/{board}/lists/{list}/cards/{card}',
                              +result = RestClient.delete '/api/boards/{board}/lists/{list}/cards/{card}',
                                 params: {
                                 }, headers: headers
                               
                              @@ -10693,18 +7345,20 @@ p JSON.parse(result)
                               
                              import requests
                               headers = {
                              -  'Accept': 'application/json',
                              -  'Authorization': 'API_KEY'
                              +  'Accept': 'application/json',
                              +  'Authorization': 'API_KEY'
                               }
                               
                              -r = requests.delete('/api/boards/{board}/lists/{list}/cards/{card}', headers = headers)
                              +r = requests.delete('/api/boards/{board}/lists/{list}/cards/{card}', params={
                               
                              -print(r.json())
                              +}, headers = headers)
                              +
                              +print r.json()
                               
                               
                              -
                              URL obj = new URL("/api/boards/{board}/lists/{list}/cards/{card}");
                              +
                              URL obj = new URL("/api/boards/{board}/lists/{list}/cards/{card}");
                               HttpURLConnection con = (HttpURLConnection) obj.openConnection();
                              -con.setRequestMethod("DELETE");
                              +con.setRequestMethod("DELETE");
                               int responseCode = con.getResponseCode();
                               BufferedReader in = new BufferedReader(
                                   new InputStreamReader(con.getInputStream()));
                              @@ -10720,19 +7374,20 @@ System.out.println(response.toString());
                               
                              package main
                               
                               import (
                              -       "bytes"
                              -       "net/http"
                              +       "bytes"
                              +       "net/http"
                               )
                               
                               func main() {
                               
                                   headers := map[string][]string{
                              -        "Accept": []string{"application/json"},
                              -        "Authorization": []string{"API_KEY"},
                              +        "Accept": []string{"application/json"},
                              +        "Authorization": []string{"API_KEY"},
                              +        
                                   }
                               
                                   data := bytes.NewBuffer([]byte{jsonReq})
                              -    req, err := http.NewRequest("DELETE", "/api/boards/{board}/lists/{list}/cards/{card}", data)
                              +    req, err := http.NewRequest("DELETE", "/api/boards/{board}/lists/{list}/cards/{card}", data)
                                   req.Header = headers
                               
                                   client := &http.Client{}
                              @@ -10740,31 +7395,6 @@ System.out.println(response.toString());
                                   // ...
                               }
                               
                              -
                              -
                               'application/json',
                              -    'Authorization' => 'API_KEY',
                              -);
                              -
                              -$client = new \GuzzleHttp\Client();
                              -
                              -// Define array of request body.
                              -$request_body = array();
                              -
                              -try {
                              -    $response = $client->request('DELETE','/api/boards/{board}/lists/{list}/cards/{card}', array(
                              -        'headers' => $headers,
                              -        'json' => $request_body,
                              -       )
                              -    );
                              -    print_r($response->getBody()->getContents());
                              - }
                              - catch (\GuzzleHttp\Exception\BadResponseException $e) {
                              -    // handle exception or api errors.
                              -    print_r($e->getMessage());
                              - }
                              -
                              - // ...
                              -
                               

                              DELETE /api/boards/{board}/lists/{list}/cards/{card}

                              Delete a card from a board

                              @@ -10805,7 +7435,7 @@ is not put in the recycle bin.

                              -

                              Detailed descriptions

                              +

                              Detailed descriptions

                              board: the board ID of the card

                              list: the list ID of the card

                              card: the ID of the card

                              @@ -10816,7 +7446,7 @@ is not put in the recycle bin.

                              200 Response

                              {
                              -  "_id": "string"
                              +  "_id": "string"
                               }
                               

                              Responses

                              @@ -10871,29 +7501,49 @@ UserSecurity
                              # You can also use wget
                               curl -X POST /api/boards/{board}/lists/{list}/cards/{card}/customFields/{customField} \
                              -  -H 'Content-Type: multipart/form-data' \
                              -  -H 'Accept: application/json' \
                              -  -H 'Authorization: API_KEY'
                              +  -H 'Content-Type: multipart/form-data' \
                              +  -H 'Accept: application/json' \
                              +  -H 'Authorization: API_KEY'
                               
                               
                              -
                              POST /api/boards/{board}/lists/{list}/cards/{card}/customFields/{customField} HTTP/1.1
                              +
                              POST /api/boards/{board}/lists/{list}/cards/{card}/customFields/{customField} HTTP/1.1
                               
                               Content-Type: multipart/form-data
                               Accept: application/json
                               
                               
                              -
                              const inputBody = '{
                              -  "value": "string"
                              -}';
                              -const headers = {
                              -  'Content-Type':'multipart/form-data',
                              -  'Accept':'application/json',
                              -  'Authorization':'API_KEY'
                              +
                              var headers = {
                              +  'Content-Type':'multipart/form-data',
                              +  'Accept':'application/json',
                              +  'Authorization':'API_KEY'
                              +
                               };
                               
                              -fetch('/api/boards/{board}/lists/{list}/cards/{card}/customFields/{customField}',
                              +$.ajax({
                              +  url: '/api/boards/{board}/lists/{list}/cards/{card}/customFields/{customField}',
                              +  method: 'post',
                              +
                              +  headers: headers,
                              +  success: function(data) {
                              +    console.log(JSON.stringify(data));
                              +  }
                              +})
                              +
                              +
                              +
                              const fetch = require('node-fetch');
                              +const inputBody = '{
                              +  "value": "string"
                              +}';
                              +const headers = {
                              +  'Content-Type':'multipart/form-data',
                              +  'Accept':'application/json',
                              +  'Authorization':'API_KEY'
                              +
                              +};
                              +
                              +fetch('/api/boards/{board}/lists/{list}/cards/{card}/customFields/{customField}',
                               {
                              -  method: 'POST',
                              +  method: 'POST',
                                 body: inputBody,
                                 headers: headers
                               })
                              @@ -10904,39 +7554,16 @@ fetch('/api/boards/{board}/lists/{list}/cards/{ca
                               });
                               
                               
                              -
                              const fetch = require('node-fetch');
                              -const inputBody = {
                              -  "value": "string"
                              -};
                              -const headers = {
                              -  'Content-Type':'multipart/form-data',
                              -  'Accept':'application/json',
                              -  'Authorization':'API_KEY'
                              -};
                              -
                              -fetch('/api/boards/{board}/lists/{list}/cards/{card}/customFields/{customField}',
                              -{
                              -  method: 'POST',
                              -  body: JSON.stringify(inputBody),
                              -  headers: headers
                              -})
                              -.then(function(res) {
                              -    return res.json();
                              -}).then(function(body) {
                              -    console.log(body);
                              -});
                              -
                              -
                              -
                              require 'rest-client'
                              -require 'json'
                              +
                              require 'rest-client'
                              +require 'json'
                               
                               headers = {
                              -  'Content-Type' => 'multipart/form-data',
                              -  'Accept' => 'application/json',
                              -  'Authorization' => 'API_KEY'
                              +  'Content-Type' => 'multipart/form-data',
                              +  'Accept' => 'application/json',
                              +  'Authorization' => 'API_KEY'
                               }
                               
                              -result = RestClient.post '/api/boards/{board}/lists/{list}/cards/{card}/customFields/{customField}',
                              +result = RestClient.post '/api/boards/{board}/lists/{list}/cards/{card}/customFields/{customField}',
                                 params: {
                                 }, headers: headers
                               
                              @@ -10945,19 +7572,21 @@ p JSON.parse(result)
                               
                              import requests
                               headers = {
                              -  'Content-Type': 'multipart/form-data',
                              -  'Accept': 'application/json',
                              -  'Authorization': 'API_KEY'
                              +  'Content-Type': 'multipart/form-data',
                              +  'Accept': 'application/json',
                              +  'Authorization': 'API_KEY'
                               }
                               
                              -r = requests.post('/api/boards/{board}/lists/{list}/cards/{card}/customFields/{customField}', headers = headers)
                              +r = requests.post('/api/boards/{board}/lists/{list}/cards/{card}/customFields/{customField}', params={
                               
                              -print(r.json())
                              +}, headers = headers)
                              +
                              +print r.json()
                               
                               
                              -
                              URL obj = new URL("/api/boards/{board}/lists/{list}/cards/{card}/customFields/{customField}");
                              +
                              URL obj = new URL("/api/boards/{board}/lists/{list}/cards/{card}/customFields/{customField}");
                               HttpURLConnection con = (HttpURLConnection) obj.openConnection();
                              -con.setRequestMethod("POST");
                              +con.setRequestMethod("POST");
                               int responseCode = con.getResponseCode();
                               BufferedReader in = new BufferedReader(
                                   new InputStreamReader(con.getInputStream()));
                              @@ -10973,20 +7602,21 @@ System.out.println(response.toString());
                               
                              package main
                               
                               import (
                              -       "bytes"
                              -       "net/http"
                              +       "bytes"
                              +       "net/http"
                               )
                               
                               func main() {
                               
                                   headers := map[string][]string{
                              -        "Content-Type": []string{"multipart/form-data"},
                              -        "Accept": []string{"application/json"},
                              -        "Authorization": []string{"API_KEY"},
                              +        "Content-Type": []string{"multipart/form-data"},
                              +        "Accept": []string{"application/json"},
                              +        "Authorization": []string{"API_KEY"},
                              +        
                                   }
                               
                                   data := bytes.NewBuffer([]byte{jsonReq})
                              -    req, err := http.NewRequest("POST", "/api/boards/{board}/lists/{list}/cards/{card}/customFields/{customField}", data)
                              +    req, err := http.NewRequest("POST", "/api/boards/{board}/lists/{list}/cards/{card}/customFields/{customField}", data)
                                   req.Header = headers
                               
                                   client := &http.Client{}
                              @@ -10994,32 +7624,6 @@ System.out.println(response.toString());
                                   // ...
                               }
                               
                              -
                              -
                               'multipart/form-data',
                              -    'Accept' => 'application/json',
                              -    'Authorization' => 'API_KEY',
                              -);
                              -
                              -$client = new \GuzzleHttp\Client();
                              -
                              -// Define array of request body.
                              -$request_body = array();
                              -
                              -try {
                              -    $response = $client->request('POST','/api/boards/{board}/lists/{list}/cards/{card}/customFields/{customField}', array(
                              -        'headers' => $headers,
                              -        'json' => $request_body,
                              -       )
                              -    );
                              -    print_r($response->getBody()->getContents());
                              - }
                              - catch (\GuzzleHttp\Exception\BadResponseException $e) {
                              -    // handle exception or api errors.
                              -    print_r($e->getMessage());
                              - }
                              -
                              - // ...
                              -
                               

                              POST /api/boards/{board}/lists/{list}/cards/{card}/customFields/{customField}

                              Edit Custom Field in a Card

                              @@ -11074,7 +7678,7 @@ System.out.println(response.toString()); body body object -true +false none @@ -11086,7 +7690,7 @@ System.out.println(response.toString()); -

                              Detailed descriptions

                              +

                              Detailed descriptions

                              board: the board ID of the card

                              list: the list ID of the card

                              card: the ID of the card

                              @@ -11098,8 +7702,8 @@ System.out.println(response.toString());

                              200 Response

                              {
                              -  "_id": "string",
                              -  "customFields": {}
                              +  "_id": "string",
                              +  "customFields": {}
                               }
                               

                              Responses

                              @@ -11161,24 +7765,43 @@ UserSecurity
                              # You can also use wget
                               curl -X GET /api/boards/{board}/lists/{list}/cards_count \
                              -  -H 'Accept: application/json' \
                              -  -H 'Authorization: API_KEY'
                              +  -H 'Accept: application/json' \
                              +  -H 'Authorization: API_KEY'
                               
                               
                              -
                              GET /api/boards/{board}/lists/{list}/cards_count HTTP/1.1
                              +
                              GET /api/boards/{board}/lists/{list}/cards_count HTTP/1.1
                               
                              -Accept: application/json
                              +Accept: application/json
                              +
                              +
                              +
                              var headers = {
                              +  'Accept':'application/json',
                              +  'Authorization':'API_KEY'
                               
                              -
                              -
                              
                              -const headers = {
                              -  'Accept':'application/json',
                              -  'Authorization':'API_KEY'
                               };
                               
                              -fetch('/api/boards/{board}/lists/{list}/cards_count',
                              +$.ajax({
                              +  url: '/api/boards/{board}/lists/{list}/cards_count',
                              +  method: 'get',
                              +
                              +  headers: headers,
                              +  success: function(data) {
                              +    console.log(JSON.stringify(data));
                              +  }
                              +})
                              +
                              +
                              +
                              const fetch = require('node-fetch');
                              +
                              +const headers = {
                              +  'Accept':'application/json',
                              +  'Authorization':'API_KEY'
                              +
                              +};
                              +
                              +fetch('/api/boards/{board}/lists/{list}/cards_count',
                               {
                              -  method: 'GET',
                              +  method: 'GET',
                               
                                 headers: headers
                               })
                              @@ -11189,35 +7812,15 @@ fetch('/api/boards/{board}/lists/{list}/cards_cou
                               });
                               
                               
                              -
                              const fetch = require('node-fetch');
                              -
                              -const headers = {
                              -  'Accept':'application/json',
                              -  'Authorization':'API_KEY'
                              -};
                              -
                              -fetch('/api/boards/{board}/lists/{list}/cards_count',
                              -{
                              -  method: 'GET',
                              -
                              -  headers: headers
                              -})
                              -.then(function(res) {
                              -    return res.json();
                              -}).then(function(body) {
                              -    console.log(body);
                              -});
                              -
                              -
                              -
                              require 'rest-client'
                              -require 'json'
                              +
                              require 'rest-client'
                              +require 'json'
                               
                               headers = {
                              -  'Accept' => 'application/json',
                              -  'Authorization' => 'API_KEY'
                              +  'Accept' => 'application/json',
                              +  'Authorization' => 'API_KEY'
                               }
                               
                              -result = RestClient.get '/api/boards/{board}/lists/{list}/cards_count',
                              +result = RestClient.get '/api/boards/{board}/lists/{list}/cards_count',
                                 params: {
                                 }, headers: headers
                               
                              @@ -11226,18 +7829,20 @@ p JSON.parse(result)
                               
                              import requests
                               headers = {
                              -  'Accept': 'application/json',
                              -  'Authorization': 'API_KEY'
                              +  'Accept': 'application/json',
                              +  'Authorization': 'API_KEY'
                               }
                               
                              -r = requests.get('/api/boards/{board}/lists/{list}/cards_count', headers = headers)
                              +r = requests.get('/api/boards/{board}/lists/{list}/cards_count', params={
                               
                              -print(r.json())
                              +}, headers = headers)
                              +
                              +print r.json()
                               
                               
                              -
                              URL obj = new URL("/api/boards/{board}/lists/{list}/cards_count");
                              +
                              URL obj = new URL("/api/boards/{board}/lists/{list}/cards_count");
                               HttpURLConnection con = (HttpURLConnection) obj.openConnection();
                              -con.setRequestMethod("GET");
                              +con.setRequestMethod("GET");
                               int responseCode = con.getResponseCode();
                               BufferedReader in = new BufferedReader(
                                   new InputStreamReader(con.getInputStream()));
                              @@ -11253,19 +7858,20 @@ System.out.println(response.toString());
                               
                              package main
                               
                               import (
                              -       "bytes"
                              -       "net/http"
                              +       "bytes"
                              +       "net/http"
                               )
                               
                               func main() {
                               
                                   headers := map[string][]string{
                              -        "Accept": []string{"application/json"},
                              -        "Authorization": []string{"API_KEY"},
                              +        "Accept": []string{"application/json"},
                              +        "Authorization": []string{"API_KEY"},
                              +        
                                   }
                               
                                   data := bytes.NewBuffer([]byte{jsonReq})
                              -    req, err := http.NewRequest("GET", "/api/boards/{board}/lists/{list}/cards_count", data)
                              +    req, err := http.NewRequest("GET", "/api/boards/{board}/lists/{list}/cards_count", data)
                                   req.Header = headers
                               
                                   client := &http.Client{}
                              @@ -11273,31 +7879,6 @@ System.out.println(response.toString());
                                   // ...
                               }
                               
                              -
                              -
                               'application/json',
                              -    'Authorization' => 'API_KEY',
                              -);
                              -
                              -$client = new \GuzzleHttp\Client();
                              -
                              -// Define array of request body.
                              -$request_body = array();
                              -
                              -try {
                              -    $response = $client->request('GET','/api/boards/{board}/lists/{list}/cards_count', array(
                              -        'headers' => $headers,
                              -        'json' => $request_body,
                              -       )
                              -    );
                              -    print_r($response->getBody()->getContents());
                              - }
                              - catch (\GuzzleHttp\Exception\BadResponseException $e) {
                              -    // handle exception or api errors.
                              -    print_r($e->getMessage());
                              - }
                              -
                              - // ...
                              -
                               

                              GET /api/boards/{board}/lists/{list}/cards_count

                              Get a cards count to a list

                              @@ -11329,7 +7910,7 @@ System.out.println(response.toString()); -

                              Detailed descriptions

                              +

                              Detailed descriptions

                              board: the board ID

                              list: the List ID

                              @@ -11339,7 +7920,7 @@ System.out.println(response.toString());

                              200 Response

                              {
                              -  "list_cards_count": 0
                              +  "list_cards_count": 0
                               }
                               

                              Responses

                              @@ -11394,24 +7975,43 @@ UserSecurity
                              # You can also use wget
                               curl -X GET /api/boards/{board}/swimlanes/{swimlane}/cards \
                              -  -H 'Accept: application/json' \
                              -  -H 'Authorization: API_KEY'
                              +  -H 'Accept: application/json' \
                              +  -H 'Authorization: API_KEY'
                               
                               
                              -
                              GET /api/boards/{board}/swimlanes/{swimlane}/cards HTTP/1.1
                              +
                              GET /api/boards/{board}/swimlanes/{swimlane}/cards HTTP/1.1
                               
                              -Accept: application/json
                              +Accept: application/json
                              +
                              +
                              +
                              var headers = {
                              +  'Accept':'application/json',
                              +  'Authorization':'API_KEY'
                               
                              -
                              -
                              
                              -const headers = {
                              -  'Accept':'application/json',
                              -  'Authorization':'API_KEY'
                               };
                               
                              -fetch('/api/boards/{board}/swimlanes/{swimlane}/cards',
                              +$.ajax({
                              +  url: '/api/boards/{board}/swimlanes/{swimlane}/cards',
                              +  method: 'get',
                              +
                              +  headers: headers,
                              +  success: function(data) {
                              +    console.log(JSON.stringify(data));
                              +  }
                              +})
                              +
                              +
                              +
                              const fetch = require('node-fetch');
                              +
                              +const headers = {
                              +  'Accept':'application/json',
                              +  'Authorization':'API_KEY'
                              +
                              +};
                              +
                              +fetch('/api/boards/{board}/swimlanes/{swimlane}/cards',
                               {
                              -  method: 'GET',
                              +  method: 'GET',
                               
                                 headers: headers
                               })
                              @@ -11422,35 +8022,15 @@ fetch('/api/boards/{board}/swimlanes/{swimlane}/c
                               });
                               
                               
                              -
                              const fetch = require('node-fetch');
                              -
                              -const headers = {
                              -  'Accept':'application/json',
                              -  'Authorization':'API_KEY'
                              -};
                              -
                              -fetch('/api/boards/{board}/swimlanes/{swimlane}/cards',
                              -{
                              -  method: 'GET',
                              -
                              -  headers: headers
                              -})
                              -.then(function(res) {
                              -    return res.json();
                              -}).then(function(body) {
                              -    console.log(body);
                              -});
                              -
                              -
                              -
                              require 'rest-client'
                              -require 'json'
                              +
                              require 'rest-client'
                              +require 'json'
                               
                               headers = {
                              -  'Accept' => 'application/json',
                              -  'Authorization' => 'API_KEY'
                              +  'Accept' => 'application/json',
                              +  'Authorization' => 'API_KEY'
                               }
                               
                              -result = RestClient.get '/api/boards/{board}/swimlanes/{swimlane}/cards',
                              +result = RestClient.get '/api/boards/{board}/swimlanes/{swimlane}/cards',
                                 params: {
                                 }, headers: headers
                               
                              @@ -11459,18 +8039,20 @@ p JSON.parse(result)
                               
                              import requests
                               headers = {
                              -  'Accept': 'application/json',
                              -  'Authorization': 'API_KEY'
                              +  'Accept': 'application/json',
                              +  'Authorization': 'API_KEY'
                               }
                               
                              -r = requests.get('/api/boards/{board}/swimlanes/{swimlane}/cards', headers = headers)
                              +r = requests.get('/api/boards/{board}/swimlanes/{swimlane}/cards', params={
                               
                              -print(r.json())
                              +}, headers = headers)
                              +
                              +print r.json()
                               
                               
                              -
                              URL obj = new URL("/api/boards/{board}/swimlanes/{swimlane}/cards");
                              +
                              URL obj = new URL("/api/boards/{board}/swimlanes/{swimlane}/cards");
                               HttpURLConnection con = (HttpURLConnection) obj.openConnection();
                              -con.setRequestMethod("GET");
                              +con.setRequestMethod("GET");
                               int responseCode = con.getResponseCode();
                               BufferedReader in = new BufferedReader(
                                   new InputStreamReader(con.getInputStream()));
                              @@ -11486,19 +8068,20 @@ System.out.println(response.toString());
                               
                              package main
                               
                               import (
                              -       "bytes"
                              -       "net/http"
                              +       "bytes"
                              +       "net/http"
                               )
                               
                               func main() {
                               
                                   headers := map[string][]string{
                              -        "Accept": []string{"application/json"},
                              -        "Authorization": []string{"API_KEY"},
                              +        "Accept": []string{"application/json"},
                              +        "Authorization": []string{"API_KEY"},
                              +        
                                   }
                               
                                   data := bytes.NewBuffer([]byte{jsonReq})
                              -    req, err := http.NewRequest("GET", "/api/boards/{board}/swimlanes/{swimlane}/cards", data)
                              +    req, err := http.NewRequest("GET", "/api/boards/{board}/swimlanes/{swimlane}/cards", data)
                                   req.Header = headers
                               
                                   client := &http.Client{}
                              @@ -11506,31 +8089,6 @@ System.out.println(response.toString());
                                   // ...
                               }
                               
                              -
                              -
                               'application/json',
                              -    'Authorization' => 'API_KEY',
                              -);
                              -
                              -$client = new \GuzzleHttp\Client();
                              -
                              -// Define array of request body.
                              -$request_body = array();
                              -
                              -try {
                              -    $response = $client->request('GET','/api/boards/{board}/swimlanes/{swimlane}/cards', array(
                              -        'headers' => $headers,
                              -        'json' => $request_body,
                              -       )
                              -    );
                              -    print_r($response->getBody()->getContents());
                              - }
                              - catch (\GuzzleHttp\Exception\BadResponseException $e) {
                              -    // handle exception or api errors.
                              -    print_r($e->getMessage());
                              - }
                              -
                              - // ...
                              -
                               

                              GET /api/boards/{board}/swimlanes/{swimlane}/cards

                              get all cards attached to a swimlane

                              @@ -11562,7 +8120,7 @@ System.out.println(response.toString()); -

                              Detailed descriptions

                              +

                              Detailed descriptions

                              board: the board ID

                              swimlane: the swimlane ID

                              @@ -11573,10 +8131,10 @@ System.out.println(response.toString());
                              [
                                 {
                              -    "_id": "string",
                              -    "title": "string",
                              -    "description": "string",
                              -    "listId": "string"
                              +    "_id": "string",
                              +    "title": "string",
                              +    "description": "string",
                              +    "listId": "string"
                                 }
                               ]
                               
                              @@ -11654,24 +8212,43 @@ UserSecurity
                              # You can also use wget
                               curl -X GET /api/boards/{board}/custom-fields \
                              -  -H 'Accept: application/json' \
                              -  -H 'Authorization: API_KEY'
                              +  -H 'Accept: application/json' \
                              +  -H 'Authorization: API_KEY'
                               
                               
                              -
                              GET /api/boards/{board}/custom-fields HTTP/1.1
                              +
                              GET /api/boards/{board}/custom-fields HTTP/1.1
                               
                              -Accept: application/json
                              +Accept: application/json
                              +
                              +
                              +
                              var headers = {
                              +  'Accept':'application/json',
                              +  'Authorization':'API_KEY'
                               
                              -
                              -
                              
                              -const headers = {
                              -  'Accept':'application/json',
                              -  'Authorization':'API_KEY'
                               };
                               
                              -fetch('/api/boards/{board}/custom-fields',
                              +$.ajax({
                              +  url: '/api/boards/{board}/custom-fields',
                              +  method: 'get',
                              +
                              +  headers: headers,
                              +  success: function(data) {
                              +    console.log(JSON.stringify(data));
                              +  }
                              +})
                              +
                              +
                              +
                              const fetch = require('node-fetch');
                              +
                              +const headers = {
                              +  'Accept':'application/json',
                              +  'Authorization':'API_KEY'
                              +
                              +};
                              +
                              +fetch('/api/boards/{board}/custom-fields',
                               {
                              -  method: 'GET',
                              +  method: 'GET',
                               
                                 headers: headers
                               })
                              @@ -11682,35 +8259,15 @@ fetch('/api/boards/{board}/custom-fields'
                              -
                              const fetch = require('node-fetch');
                              -
                              -const headers = {
                              -  'Accept':'application/json',
                              -  'Authorization':'API_KEY'
                              -};
                              -
                              -fetch('/api/boards/{board}/custom-fields',
                              -{
                              -  method: 'GET',
                              -
                              -  headers: headers
                              -})
                              -.then(function(res) {
                              -    return res.json();
                              -}).then(function(body) {
                              -    console.log(body);
                              -});
                              -
                              -
                              -
                              require 'rest-client'
                              -require 'json'
                              +
                              require 'rest-client'
                              +require 'json'
                               
                               headers = {
                              -  'Accept' => 'application/json',
                              -  'Authorization' => 'API_KEY'
                              +  'Accept' => 'application/json',
                              +  'Authorization' => 'API_KEY'
                               }
                               
                              -result = RestClient.get '/api/boards/{board}/custom-fields',
                              +result = RestClient.get '/api/boards/{board}/custom-fields',
                                 params: {
                                 }, headers: headers
                               
                              @@ -11719,18 +8276,20 @@ p JSON.parse(result)
                               
                              import requests
                               headers = {
                              -  'Accept': 'application/json',
                              -  'Authorization': 'API_KEY'
                              +  'Accept': 'application/json',
                              +  'Authorization': 'API_KEY'
                               }
                               
                              -r = requests.get('/api/boards/{board}/custom-fields', headers = headers)
                              +r = requests.get('/api/boards/{board}/custom-fields', params={
                               
                              -print(r.json())
                              +}, headers = headers)
                              +
                              +print r.json()
                               
                               
                              -
                              URL obj = new URL("/api/boards/{board}/custom-fields");
                              +
                              URL obj = new URL("/api/boards/{board}/custom-fields");
                               HttpURLConnection con = (HttpURLConnection) obj.openConnection();
                              -con.setRequestMethod("GET");
                              +con.setRequestMethod("GET");
                               int responseCode = con.getResponseCode();
                               BufferedReader in = new BufferedReader(
                                   new InputStreamReader(con.getInputStream()));
                              @@ -11746,19 +8305,20 @@ System.out.println(response.toString());
                               
                              package main
                               
                               import (
                              -       "bytes"
                              -       "net/http"
                              +       "bytes"
                              +       "net/http"
                               )
                               
                               func main() {
                               
                                   headers := map[string][]string{
                              -        "Accept": []string{"application/json"},
                              -        "Authorization": []string{"API_KEY"},
                              +        "Accept": []string{"application/json"},
                              +        "Authorization": []string{"API_KEY"},
                              +        
                                   }
                               
                                   data := bytes.NewBuffer([]byte{jsonReq})
                              -    req, err := http.NewRequest("GET", "/api/boards/{board}/custom-fields", data)
                              +    req, err := http.NewRequest("GET", "/api/boards/{board}/custom-fields", data)
                                   req.Header = headers
                               
                                   client := &http.Client{}
                              @@ -11766,31 +8326,6 @@ System.out.println(response.toString());
                                   // ...
                               }
                               
                              -
                              -
                               'application/json',
                              -    'Authorization' => 'API_KEY',
                              -);
                              -
                              -$client = new \GuzzleHttp\Client();
                              -
                              -// Define array of request body.
                              -$request_body = array();
                              -
                              -try {
                              -    $response = $client->request('GET','/api/boards/{board}/custom-fields', array(
                              -        'headers' => $headers,
                              -        'json' => $request_body,
                              -       )
                              -    );
                              -    print_r($response->getBody()->getContents());
                              - }
                              - catch (\GuzzleHttp\Exception\BadResponseException $e) {
                              -    // handle exception or api errors.
                              -    print_r($e->getMessage());
                              - }
                              -
                              - // ...
                              -
                               

                              GET /api/boards/{board}/custom-fields

                              Get the list of Custom Fields attached to a board

                              @@ -11823,9 +8358,9 @@ System.out.println(response.toString());
                              [
                                 {
                              -    "_id": "string",
                              -    "name": "string",
                              -    "type": "string"
                              +    "_id": "string",
                              +    "name": "string",
                              +    "type": "string"
                                 }
                               ]
                               
                              @@ -11895,36 +8430,56 @@ UserSecurity
                              # You can also use wget
                               curl -X POST /api/boards/{board}/custom-fields \
                              -  -H 'Content-Type: multipart/form-data' \
                              -  -H 'Accept: application/json' \
                              -  -H 'Authorization: API_KEY'
                              +  -H 'Content-Type: multipart/form-data' \
                              +  -H 'Accept: application/json' \
                              +  -H 'Authorization: API_KEY'
                               
                               
                              -
                              POST /api/boards/{board}/custom-fields HTTP/1.1
                              +
                              POST /api/boards/{board}/custom-fields HTTP/1.1
                               
                               Content-Type: multipart/form-data
                               Accept: application/json
                               
                               
                              -
                              const inputBody = '{
                              -  "name": "string",
                              -  "type": "string",
                              -  "settings": "string",
                              -  "showOnCard": true,
                              -  "automaticallyOnCard": true,
                              -  "showLabelOnMiniCard": true,
                              -  "showSumAtTopOfList": true,
                              -  "authorId": "string"
                              -}';
                              -const headers = {
                              -  'Content-Type':'multipart/form-data',
                              -  'Accept':'application/json',
                              -  'Authorization':'API_KEY'
                              +
                              var headers = {
                              +  'Content-Type':'multipart/form-data',
                              +  'Accept':'application/json',
                              +  'Authorization':'API_KEY'
                              +
                               };
                               
                              -fetch('/api/boards/{board}/custom-fields',
                              +$.ajax({
                              +  url: '/api/boards/{board}/custom-fields',
                              +  method: 'post',
                              +
                              +  headers: headers,
                              +  success: function(data) {
                              +    console.log(JSON.stringify(data));
                              +  }
                              +})
                              +
                              +
                              +
                              const fetch = require('node-fetch');
                              +const inputBody = '{
                              +  "name": "string",
                              +  "type": "string",
                              +  "settings": "string",
                              +  "showOnCard": true,
                              +  "automaticallyOnCard": true,
                              +  "showLabelOnMiniCard": true,
                              +  "showSumAtTopOfList": true,
                              +  "authorId": "string"
                              +}';
                              +const headers = {
                              +  'Content-Type':'multipart/form-data',
                              +  'Accept':'application/json',
                              +  'Authorization':'API_KEY'
                              +
                              +};
                              +
                              +fetch('/api/boards/{board}/custom-fields',
                               {
                              -  method: 'POST',
                              +  method: 'POST',
                                 body: inputBody,
                                 headers: headers
                               })
                              @@ -11935,46 +8490,16 @@ fetch('/api/boards/{board}/custom-fields'
                              -
                              const fetch = require('node-fetch');
                              -const inputBody = {
                              -  "name": "string",
                              -  "type": "string",
                              -  "settings": "string",
                              -  "showOnCard": true,
                              -  "automaticallyOnCard": true,
                              -  "showLabelOnMiniCard": true,
                              -  "showSumAtTopOfList": true,
                              -  "authorId": "string"
                              -};
                              -const headers = {
                              -  'Content-Type':'multipart/form-data',
                              -  'Accept':'application/json',
                              -  'Authorization':'API_KEY'
                              -};
                              -
                              -fetch('/api/boards/{board}/custom-fields',
                              -{
                              -  method: 'POST',
                              -  body: JSON.stringify(inputBody),
                              -  headers: headers
                              -})
                              -.then(function(res) {
                              -    return res.json();
                              -}).then(function(body) {
                              -    console.log(body);
                              -});
                              -
                              -
                              -
                              require 'rest-client'
                              -require 'json'
                              +
                              require 'rest-client'
                              +require 'json'
                               
                               headers = {
                              -  'Content-Type' => 'multipart/form-data',
                              -  'Accept' => 'application/json',
                              -  'Authorization' => 'API_KEY'
                              +  'Content-Type' => 'multipart/form-data',
                              +  'Accept' => 'application/json',
                              +  'Authorization' => 'API_KEY'
                               }
                               
                              -result = RestClient.post '/api/boards/{board}/custom-fields',
                              +result = RestClient.post '/api/boards/{board}/custom-fields',
                                 params: {
                                 }, headers: headers
                               
                              @@ -11983,19 +8508,21 @@ p JSON.parse(result)
                               
                              import requests
                               headers = {
                              -  'Content-Type': 'multipart/form-data',
                              -  'Accept': 'application/json',
                              -  'Authorization': 'API_KEY'
                              +  'Content-Type': 'multipart/form-data',
                              +  'Accept': 'application/json',
                              +  'Authorization': 'API_KEY'
                               }
                               
                              -r = requests.post('/api/boards/{board}/custom-fields', headers = headers)
                              +r = requests.post('/api/boards/{board}/custom-fields', params={
                               
                              -print(r.json())
                              +}, headers = headers)
                              +
                              +print r.json()
                               
                               
                              -
                              URL obj = new URL("/api/boards/{board}/custom-fields");
                              +
                              URL obj = new URL("/api/boards/{board}/custom-fields");
                               HttpURLConnection con = (HttpURLConnection) obj.openConnection();
                              -con.setRequestMethod("POST");
                              +con.setRequestMethod("POST");
                               int responseCode = con.getResponseCode();
                               BufferedReader in = new BufferedReader(
                                   new InputStreamReader(con.getInputStream()));
                              @@ -12011,20 +8538,21 @@ System.out.println(response.toString());
                               
                              package main
                               
                               import (
                              -       "bytes"
                              -       "net/http"
                              +       "bytes"
                              +       "net/http"
                               )
                               
                               func main() {
                               
                                   headers := map[string][]string{
                              -        "Content-Type": []string{"multipart/form-data"},
                              -        "Accept": []string{"application/json"},
                              -        "Authorization": []string{"API_KEY"},
                              +        "Content-Type": []string{"multipart/form-data"},
                              +        "Accept": []string{"application/json"},
                              +        "Authorization": []string{"API_KEY"},
                              +        
                                   }
                               
                                   data := bytes.NewBuffer([]byte{jsonReq})
                              -    req, err := http.NewRequest("POST", "/api/boards/{board}/custom-fields", data)
                              +    req, err := http.NewRequest("POST", "/api/boards/{board}/custom-fields", data)
                                   req.Header = headers
                               
                                   client := &http.Client{}
                              @@ -12032,32 +8560,6 @@ System.out.println(response.toString());
                                   // ...
                               }
                               
                              -
                              -
                               'multipart/form-data',
                              -    'Accept' => 'application/json',
                              -    'Authorization' => 'API_KEY',
                              -);
                              -
                              -$client = new \GuzzleHttp\Client();
                              -
                              -// Define array of request body.
                              -$request_body = array();
                              -
                              -try {
                              -    $response = $client->request('POST','/api/boards/{board}/custom-fields', array(
                              -        'headers' => $headers,
                              -        'json' => $request_body,
                              -       )
                              -    );
                              -    print_r($response->getBody()->getContents());
                              - }
                              - catch (\GuzzleHttp\Exception\BadResponseException $e) {
                              -    // handle exception or api errors.
                              -    print_r($e->getMessage());
                              - }
                              -
                              - // ...
                              -
                               

                              POST /api/boards/{board}/custom-fields

                              Create a Custom Field

                              @@ -12097,7 +8599,7 @@ System.out.println(response.toString()); body body object -true +false none @@ -12165,7 +8667,7 @@ System.out.println(response.toString());

                              200 Response

                              {
                              -  "_id": "string"
                              +  "_id": "string"
                               }
                               

                              Responses

                              @@ -12220,24 +8722,43 @@ UserSecurity
                              # You can also use wget
                               curl -X GET /api/boards/{board}/custom-fields/{customField} \
                              -  -H 'Accept: application/json' \
                              -  -H 'Authorization: API_KEY'
                              +  -H 'Accept: application/json' \
                              +  -H 'Authorization: API_KEY'
                               
                               
                              -
                              GET /api/boards/{board}/custom-fields/{customField} HTTP/1.1
                              +
                              GET /api/boards/{board}/custom-fields/{customField} HTTP/1.1
                               
                              -Accept: application/json
                              +Accept: application/json
                              +
                              +
                              +
                              var headers = {
                              +  'Accept':'application/json',
                              +  'Authorization':'API_KEY'
                               
                              -
                              -
                              
                              -const headers = {
                              -  'Accept':'application/json',
                              -  'Authorization':'API_KEY'
                               };
                               
                              -fetch('/api/boards/{board}/custom-fields/{customField}',
                              +$.ajax({
                              +  url: '/api/boards/{board}/custom-fields/{customField}',
                              +  method: 'get',
                              +
                              +  headers: headers,
                              +  success: function(data) {
                              +    console.log(JSON.stringify(data));
                              +  }
                              +})
                              +
                              +
                              +
                              const fetch = require('node-fetch');
                              +
                              +const headers = {
                              +  'Accept':'application/json',
                              +  'Authorization':'API_KEY'
                              +
                              +};
                              +
                              +fetch('/api/boards/{board}/custom-fields/{customField}',
                               {
                              -  method: 'GET',
                              +  method: 'GET',
                               
                                 headers: headers
                               })
                              @@ -12248,35 +8769,15 @@ fetch('/api/boards/{board}/custom-fields/{customF
                               });
                               
                               
                              -
                              const fetch = require('node-fetch');
                              -
                              -const headers = {
                              -  'Accept':'application/json',
                              -  'Authorization':'API_KEY'
                              -};
                              -
                              -fetch('/api/boards/{board}/custom-fields/{customField}',
                              -{
                              -  method: 'GET',
                              -
                              -  headers: headers
                              -})
                              -.then(function(res) {
                              -    return res.json();
                              -}).then(function(body) {
                              -    console.log(body);
                              -});
                              -
                              -
                              -
                              require 'rest-client'
                              -require 'json'
                              +
                              require 'rest-client'
                              +require 'json'
                               
                               headers = {
                              -  'Accept' => 'application/json',
                              -  'Authorization' => 'API_KEY'
                              +  'Accept' => 'application/json',
                              +  'Authorization' => 'API_KEY'
                               }
                               
                              -result = RestClient.get '/api/boards/{board}/custom-fields/{customField}',
                              +result = RestClient.get '/api/boards/{board}/custom-fields/{customField}',
                                 params: {
                                 }, headers: headers
                               
                              @@ -12285,18 +8786,20 @@ p JSON.parse(result)
                               
                              import requests
                               headers = {
                              -  'Accept': 'application/json',
                              -  'Authorization': 'API_KEY'
                              +  'Accept': 'application/json',
                              +  'Authorization': 'API_KEY'
                               }
                               
                              -r = requests.get('/api/boards/{board}/custom-fields/{customField}', headers = headers)
                              +r = requests.get('/api/boards/{board}/custom-fields/{customField}', params={
                               
                              -print(r.json())
                              +}, headers = headers)
                              +
                              +print r.json()
                               
                               
                              -
                              URL obj = new URL("/api/boards/{board}/custom-fields/{customField}");
                              +
                              URL obj = new URL("/api/boards/{board}/custom-fields/{customField}");
                               HttpURLConnection con = (HttpURLConnection) obj.openConnection();
                              -con.setRequestMethod("GET");
                              +con.setRequestMethod("GET");
                               int responseCode = con.getResponseCode();
                               BufferedReader in = new BufferedReader(
                                   new InputStreamReader(con.getInputStream()));
                              @@ -12312,19 +8815,20 @@ System.out.println(response.toString());
                               
                              package main
                               
                               import (
                              -       "bytes"
                              -       "net/http"
                              +       "bytes"
                              +       "net/http"
                               )
                               
                               func main() {
                               
                                   headers := map[string][]string{
                              -        "Accept": []string{"application/json"},
                              -        "Authorization": []string{"API_KEY"},
                              +        "Accept": []string{"application/json"},
                              +        "Authorization": []string{"API_KEY"},
                              +        
                                   }
                               
                                   data := bytes.NewBuffer([]byte{jsonReq})
                              -    req, err := http.NewRequest("GET", "/api/boards/{board}/custom-fields/{customField}", data)
                              +    req, err := http.NewRequest("GET", "/api/boards/{board}/custom-fields/{customField}", data)
                                   req.Header = headers
                               
                                   client := &http.Client{}
                              @@ -12332,31 +8836,6 @@ System.out.println(response.toString());
                                   // ...
                               }
                               
                              -
                              -
                               'application/json',
                              -    'Authorization' => 'API_KEY',
                              -);
                              -
                              -$client = new \GuzzleHttp\Client();
                              -
                              -// Define array of request body.
                              -$request_body = array();
                              -
                              -try {
                              -    $response = $client->request('GET','/api/boards/{board}/custom-fields/{customField}', array(
                              -        'headers' => $headers,
                              -        'json' => $request_body,
                              -       )
                              -    );
                              -    print_r($response->getBody()->getContents());
                              - }
                              - catch (\GuzzleHttp\Exception\BadResponseException $e) {
                              -    // handle exception or api errors.
                              -    print_r($e->getMessage());
                              - }
                              -
                              - // ...
                              -
                               

                              GET /api/boards/{board}/custom-fields/{customField}

                              Get a Custom Fields attached to a board

                              @@ -12388,7 +8867,7 @@ System.out.println(response.toString()); -

                              Detailed descriptions

                              +

                              Detailed descriptions

                              customField: the ID of the custom field

                              Example responses

                              @@ -12398,8 +8877,8 @@ System.out.println(response.toString());
                              [
                                 {
                              -    "_id": "string",
                              -    "boardIds": "string"
                              +    "_id": "string",
                              +    "boardIds": "string"
                                 }
                               ]
                               
                              @@ -12462,36 +8941,56 @@ UserSecurity
                              # You can also use wget
                               curl -X PUT /api/boards/{board}/custom-fields/{customField} \
                              -  -H 'Content-Type: multipart/form-data' \
                              -  -H 'Accept: application/json' \
                              -  -H 'Authorization: API_KEY'
                              +  -H 'Content-Type: multipart/form-data' \
                              +  -H 'Accept: application/json' \
                              +  -H 'Authorization: API_KEY'
                               
                               
                              -
                              PUT /api/boards/{board}/custom-fields/{customField} HTTP/1.1
                              +
                              PUT /api/boards/{board}/custom-fields/{customField} HTTP/1.1
                               
                               Content-Type: multipart/form-data
                               Accept: application/json
                               
                               
                              -
                              const inputBody = '{
                              -  "name": "string",
                              -  "type": "string",
                              -  "settings": "string",
                              -  "showOnCard": true,
                              -  "automaticallyOnCard": true,
                              -  "alwaysOnCard": "string",
                              -  "showLabelOnMiniCard": true,
                              -  "showSumAtTopOfList": true
                              -}';
                              -const headers = {
                              -  'Content-Type':'multipart/form-data',
                              -  'Accept':'application/json',
                              -  'Authorization':'API_KEY'
                              +
                              var headers = {
                              +  'Content-Type':'multipart/form-data',
                              +  'Accept':'application/json',
                              +  'Authorization':'API_KEY'
                              +
                               };
                               
                              -fetch('/api/boards/{board}/custom-fields/{customField}',
                              +$.ajax({
                              +  url: '/api/boards/{board}/custom-fields/{customField}',
                              +  method: 'put',
                              +
                              +  headers: headers,
                              +  success: function(data) {
                              +    console.log(JSON.stringify(data));
                              +  }
                              +})
                              +
                              +
                              +
                              const fetch = require('node-fetch');
                              +const inputBody = '{
                              +  "name": "string",
                              +  "type": "string",
                              +  "settings": "string",
                              +  "showOnCard": true,
                              +  "automaticallyOnCard": true,
                              +  "alwaysOnCard": "string",
                              +  "showLabelOnMiniCard": true,
                              +  "showSumAtTopOfList": true
                              +}';
                              +const headers = {
                              +  'Content-Type':'multipart/form-data',
                              +  'Accept':'application/json',
                              +  'Authorization':'API_KEY'
                              +
                              +};
                              +
                              +fetch('/api/boards/{board}/custom-fields/{customField}',
                               {
                              -  method: 'PUT',
                              +  method: 'PUT',
                                 body: inputBody,
                                 headers: headers
                               })
                              @@ -12502,46 +9001,16 @@ fetch('/api/boards/{board}/custom-fields/{customF
                               });
                               
                               
                              -
                              const fetch = require('node-fetch');
                              -const inputBody = {
                              -  "name": "string",
                              -  "type": "string",
                              -  "settings": "string",
                              -  "showOnCard": true,
                              -  "automaticallyOnCard": true,
                              -  "alwaysOnCard": "string",
                              -  "showLabelOnMiniCard": true,
                              -  "showSumAtTopOfList": true
                              -};
                              -const headers = {
                              -  'Content-Type':'multipart/form-data',
                              -  'Accept':'application/json',
                              -  'Authorization':'API_KEY'
                              -};
                              -
                              -fetch('/api/boards/{board}/custom-fields/{customField}',
                              -{
                              -  method: 'PUT',
                              -  body: JSON.stringify(inputBody),
                              -  headers: headers
                              -})
                              -.then(function(res) {
                              -    return res.json();
                              -}).then(function(body) {
                              -    console.log(body);
                              -});
                              -
                              -
                              -
                              require 'rest-client'
                              -require 'json'
                              +
                              require 'rest-client'
                              +require 'json'
                               
                               headers = {
                              -  'Content-Type' => 'multipart/form-data',
                              -  'Accept' => 'application/json',
                              -  'Authorization' => 'API_KEY'
                              +  'Content-Type' => 'multipart/form-data',
                              +  'Accept' => 'application/json',
                              +  'Authorization' => 'API_KEY'
                               }
                               
                              -result = RestClient.put '/api/boards/{board}/custom-fields/{customField}',
                              +result = RestClient.put '/api/boards/{board}/custom-fields/{customField}',
                                 params: {
                                 }, headers: headers
                               
                              @@ -12550,19 +9019,21 @@ p JSON.parse(result)
                               
                              import requests
                               headers = {
                              -  'Content-Type': 'multipart/form-data',
                              -  'Accept': 'application/json',
                              -  'Authorization': 'API_KEY'
                              +  'Content-Type': 'multipart/form-data',
                              +  'Accept': 'application/json',
                              +  'Authorization': 'API_KEY'
                               }
                               
                              -r = requests.put('/api/boards/{board}/custom-fields/{customField}', headers = headers)
                              +r = requests.put('/api/boards/{board}/custom-fields/{customField}', params={
                               
                              -print(r.json())
                              +}, headers = headers)
                              +
                              +print r.json()
                               
                               
                              -
                              URL obj = new URL("/api/boards/{board}/custom-fields/{customField}");
                              +
                              URL obj = new URL("/api/boards/{board}/custom-fields/{customField}");
                               HttpURLConnection con = (HttpURLConnection) obj.openConnection();
                              -con.setRequestMethod("PUT");
                              +con.setRequestMethod("PUT");
                               int responseCode = con.getResponseCode();
                               BufferedReader in = new BufferedReader(
                                   new InputStreamReader(con.getInputStream()));
                              @@ -12578,20 +9049,21 @@ System.out.println(response.toString());
                               
                              package main
                               
                               import (
                              -       "bytes"
                              -       "net/http"
                              +       "bytes"
                              +       "net/http"
                               )
                               
                               func main() {
                               
                                   headers := map[string][]string{
                              -        "Content-Type": []string{"multipart/form-data"},
                              -        "Accept": []string{"application/json"},
                              -        "Authorization": []string{"API_KEY"},
                              +        "Content-Type": []string{"multipart/form-data"},
                              +        "Accept": []string{"application/json"},
                              +        "Authorization": []string{"API_KEY"},
                              +        
                                   }
                               
                                   data := bytes.NewBuffer([]byte{jsonReq})
                              -    req, err := http.NewRequest("PUT", "/api/boards/{board}/custom-fields/{customField}", data)
                              +    req, err := http.NewRequest("PUT", "/api/boards/{board}/custom-fields/{customField}", data)
                                   req.Header = headers
                               
                                   client := &http.Client{}
                              @@ -12599,32 +9071,6 @@ System.out.println(response.toString());
                                   // ...
                               }
                               
                              -
                              -
                               'multipart/form-data',
                              -    'Accept' => 'application/json',
                              -    'Authorization' => 'API_KEY',
                              -);
                              -
                              -$client = new \GuzzleHttp\Client();
                              -
                              -// Define array of request body.
                              -$request_body = array();
                              -
                              -try {
                              -    $response = $client->request('PUT','/api/boards/{board}/custom-fields/{customField}', array(
                              -        'headers' => $headers,
                              -        'json' => $request_body,
                              -       )
                              -    );
                              -    print_r($response->getBody()->getContents());
                              - }
                              - catch (\GuzzleHttp\Exception\BadResponseException $e) {
                              -    // handle exception or api errors.
                              -    print_r($e->getMessage());
                              - }
                              -
                              - // ...
                              -
                               

                              PUT /api/boards/{board}/custom-fields/{customField}

                              Update a Custom Field

                              @@ -12671,7 +9117,7 @@ System.out.println(response.toString()); body body object -true +false none @@ -12739,7 +9185,7 @@ System.out.println(response.toString());

                              200 Response

                              {
                              -  "_id": "string"
                              +  "_id": "string"
                               }
                               

                              Responses

                              @@ -12794,24 +9240,43 @@ UserSecurity
                              # You can also use wget
                               curl -X DELETE /api/boards/{board}/custom-fields/{customField} \
                              -  -H 'Accept: application/json' \
                              -  -H 'Authorization: API_KEY'
                              +  -H 'Accept: application/json' \
                              +  -H 'Authorization: API_KEY'
                               
                               
                              -
                              DELETE /api/boards/{board}/custom-fields/{customField} HTTP/1.1
                              +
                              DELETE /api/boards/{board}/custom-fields/{customField} HTTP/1.1
                               
                              -Accept: application/json
                              +Accept: application/json
                              +
                              +
                              +
                              var headers = {
                              +  'Accept':'application/json',
                              +  'Authorization':'API_KEY'
                               
                              -
                              -
                              
                              -const headers = {
                              -  'Accept':'application/json',
                              -  'Authorization':'API_KEY'
                               };
                               
                              -fetch('/api/boards/{board}/custom-fields/{customField}',
                              +$.ajax({
                              +  url: '/api/boards/{board}/custom-fields/{customField}',
                              +  method: 'delete',
                              +
                              +  headers: headers,
                              +  success: function(data) {
                              +    console.log(JSON.stringify(data));
                              +  }
                              +})
                              +
                              +
                              +
                              const fetch = require('node-fetch');
                              +
                              +const headers = {
                              +  'Accept':'application/json',
                              +  'Authorization':'API_KEY'
                              +
                              +};
                              +
                              +fetch('/api/boards/{board}/custom-fields/{customField}',
                               {
                              -  method: 'DELETE',
                              +  method: 'DELETE',
                               
                                 headers: headers
                               })
                              @@ -12822,35 +9287,15 @@ fetch('/api/boards/{board}/custom-fields/{customF
                               });
                               
                               
                              -
                              const fetch = require('node-fetch');
                              -
                              -const headers = {
                              -  'Accept':'application/json',
                              -  'Authorization':'API_KEY'
                              -};
                              -
                              -fetch('/api/boards/{board}/custom-fields/{customField}',
                              -{
                              -  method: 'DELETE',
                              -
                              -  headers: headers
                              -})
                              -.then(function(res) {
                              -    return res.json();
                              -}).then(function(body) {
                              -    console.log(body);
                              -});
                              -
                              -
                              -
                              require 'rest-client'
                              -require 'json'
                              +
                              require 'rest-client'
                              +require 'json'
                               
                               headers = {
                              -  'Accept' => 'application/json',
                              -  'Authorization' => 'API_KEY'
                              +  'Accept' => 'application/json',
                              +  'Authorization' => 'API_KEY'
                               }
                               
                              -result = RestClient.delete '/api/boards/{board}/custom-fields/{customField}',
                              +result = RestClient.delete '/api/boards/{board}/custom-fields/{customField}',
                                 params: {
                                 }, headers: headers
                               
                              @@ -12859,18 +9304,20 @@ p JSON.parse(result)
                               
                              import requests
                               headers = {
                              -  'Accept': 'application/json',
                              -  'Authorization': 'API_KEY'
                              +  'Accept': 'application/json',
                              +  'Authorization': 'API_KEY'
                               }
                               
                              -r = requests.delete('/api/boards/{board}/custom-fields/{customField}', headers = headers)
                              +r = requests.delete('/api/boards/{board}/custom-fields/{customField}', params={
                               
                              -print(r.json())
                              +}, headers = headers)
                              +
                              +print r.json()
                               
                               
                              -
                              URL obj = new URL("/api/boards/{board}/custom-fields/{customField}");
                              +
                              URL obj = new URL("/api/boards/{board}/custom-fields/{customField}");
                               HttpURLConnection con = (HttpURLConnection) obj.openConnection();
                              -con.setRequestMethod("DELETE");
                              +con.setRequestMethod("DELETE");
                               int responseCode = con.getResponseCode();
                               BufferedReader in = new BufferedReader(
                                   new InputStreamReader(con.getInputStream()));
                              @@ -12886,19 +9333,20 @@ System.out.println(response.toString());
                               
                              package main
                               
                               import (
                              -       "bytes"
                              -       "net/http"
                              +       "bytes"
                              +       "net/http"
                               )
                               
                               func main() {
                               
                                   headers := map[string][]string{
                              -        "Accept": []string{"application/json"},
                              -        "Authorization": []string{"API_KEY"},
                              +        "Accept": []string{"application/json"},
                              +        "Authorization": []string{"API_KEY"},
                              +        
                                   }
                               
                                   data := bytes.NewBuffer([]byte{jsonReq})
                              -    req, err := http.NewRequest("DELETE", "/api/boards/{board}/custom-fields/{customField}", data)
                              +    req, err := http.NewRequest("DELETE", "/api/boards/{board}/custom-fields/{customField}", data)
                                   req.Header = headers
                               
                                   client := &http.Client{}
                              @@ -12906,31 +9354,6 @@ System.out.println(response.toString());
                                   // ...
                               }
                               
                              -
                              -
                               'application/json',
                              -    'Authorization' => 'API_KEY',
                              -);
                              -
                              -$client = new \GuzzleHttp\Client();
                              -
                              -// Define array of request body.
                              -$request_body = array();
                              -
                              -try {
                              -    $response = $client->request('DELETE','/api/boards/{board}/custom-fields/{customField}', array(
                              -        'headers' => $headers,
                              -        'json' => $request_body,
                              -       )
                              -    );
                              -    print_r($response->getBody()->getContents());
                              - }
                              - catch (\GuzzleHttp\Exception\BadResponseException $e) {
                              -    // handle exception or api errors.
                              -    print_r($e->getMessage());
                              - }
                              -
                              - // ...
                              -
                               

                              DELETE /api/boards/{board}/custom-fields/{customField}

                              Delete a Custom Fields attached to a board

                              @@ -12963,7 +9386,7 @@ System.out.println(response.toString()); -

                              Detailed descriptions

                              +

                              Detailed descriptions

                              customField: the ID of the custom field

                              Example responses

                              @@ -12972,7 +9395,7 @@ System.out.println(response.toString());

                              200 Response

                              {
                              -  "_id": "string"
                              +  "_id": "string"
                               }
                               

                              Responses

                              @@ -13027,29 +9450,49 @@ UserSecurity
                              # You can also use wget
                               curl -X POST /api/boards/{board}/custom-fields/{customField}/dropdown-items \
                              -  -H 'Content-Type: multipart/form-data' \
                              -  -H 'Accept: application/json' \
                              -  -H 'Authorization: API_KEY'
                              +  -H 'Content-Type: multipart/form-data' \
                              +  -H 'Accept: application/json' \
                              +  -H 'Authorization: API_KEY'
                               
                               
                              -
                              POST /api/boards/{board}/custom-fields/{customField}/dropdown-items HTTP/1.1
                              +
                              POST /api/boards/{board}/custom-fields/{customField}/dropdown-items HTTP/1.1
                               
                               Content-Type: multipart/form-data
                               Accept: application/json
                               
                               
                              -
                              const inputBody = '{
                              -  "items": "string"
                              -}';
                              -const headers = {
                              -  'Content-Type':'multipart/form-data',
                              -  'Accept':'application/json',
                              -  'Authorization':'API_KEY'
                              +
                              var headers = {
                              +  'Content-Type':'multipart/form-data',
                              +  'Accept':'application/json',
                              +  'Authorization':'API_KEY'
                              +
                               };
                               
                              -fetch('/api/boards/{board}/custom-fields/{customField}/dropdown-items',
                              +$.ajax({
                              +  url: '/api/boards/{board}/custom-fields/{customField}/dropdown-items',
                              +  method: 'post',
                              +
                              +  headers: headers,
                              +  success: function(data) {
                              +    console.log(JSON.stringify(data));
                              +  }
                              +})
                              +
                              +
                              +
                              const fetch = require('node-fetch');
                              +const inputBody = '{
                              +  "items": "string"
                              +}';
                              +const headers = {
                              +  'Content-Type':'multipart/form-data',
                              +  'Accept':'application/json',
                              +  'Authorization':'API_KEY'
                              +
                              +};
                              +
                              +fetch('/api/boards/{board}/custom-fields/{customField}/dropdown-items',
                               {
                              -  method: 'POST',
                              +  method: 'POST',
                                 body: inputBody,
                                 headers: headers
                               })
                              @@ -13060,39 +9503,16 @@ fetch('/api/boards/{board}/custom-fields/{customF
                               });
                               
                               
                              -
                              const fetch = require('node-fetch');
                              -const inputBody = {
                              -  "items": "string"
                              -};
                              -const headers = {
                              -  'Content-Type':'multipart/form-data',
                              -  'Accept':'application/json',
                              -  'Authorization':'API_KEY'
                              -};
                              -
                              -fetch('/api/boards/{board}/custom-fields/{customField}/dropdown-items',
                              -{
                              -  method: 'POST',
                              -  body: JSON.stringify(inputBody),
                              -  headers: headers
                              -})
                              -.then(function(res) {
                              -    return res.json();
                              -}).then(function(body) {
                              -    console.log(body);
                              -});
                              -
                              -
                              -
                              require 'rest-client'
                              -require 'json'
                              +
                              require 'rest-client'
                              +require 'json'
                               
                               headers = {
                              -  'Content-Type' => 'multipart/form-data',
                              -  'Accept' => 'application/json',
                              -  'Authorization' => 'API_KEY'
                              +  'Content-Type' => 'multipart/form-data',
                              +  'Accept' => 'application/json',
                              +  'Authorization' => 'API_KEY'
                               }
                               
                              -result = RestClient.post '/api/boards/{board}/custom-fields/{customField}/dropdown-items',
                              +result = RestClient.post '/api/boards/{board}/custom-fields/{customField}/dropdown-items',
                                 params: {
                                 }, headers: headers
                               
                              @@ -13101,19 +9521,21 @@ p JSON.parse(result)
                               
                              import requests
                               headers = {
                              -  'Content-Type': 'multipart/form-data',
                              -  'Accept': 'application/json',
                              -  'Authorization': 'API_KEY'
                              +  'Content-Type': 'multipart/form-data',
                              +  'Accept': 'application/json',
                              +  'Authorization': 'API_KEY'
                               }
                               
                              -r = requests.post('/api/boards/{board}/custom-fields/{customField}/dropdown-items', headers = headers)
                              +r = requests.post('/api/boards/{board}/custom-fields/{customField}/dropdown-items', params={
                               
                              -print(r.json())
                              +}, headers = headers)
                              +
                              +print r.json()
                               
                               
                              -
                              URL obj = new URL("/api/boards/{board}/custom-fields/{customField}/dropdown-items");
                              +
                              URL obj = new URL("/api/boards/{board}/custom-fields/{customField}/dropdown-items");
                               HttpURLConnection con = (HttpURLConnection) obj.openConnection();
                              -con.setRequestMethod("POST");
                              +con.setRequestMethod("POST");
                               int responseCode = con.getResponseCode();
                               BufferedReader in = new BufferedReader(
                                   new InputStreamReader(con.getInputStream()));
                              @@ -13129,20 +9551,21 @@ System.out.println(response.toString());
                               
                              package main
                               
                               import (
                              -       "bytes"
                              -       "net/http"
                              +       "bytes"
                              +       "net/http"
                               )
                               
                               func main() {
                               
                                   headers := map[string][]string{
                              -        "Content-Type": []string{"multipart/form-data"},
                              -        "Accept": []string{"application/json"},
                              -        "Authorization": []string{"API_KEY"},
                              +        "Content-Type": []string{"multipart/form-data"},
                              +        "Accept": []string{"application/json"},
                              +        "Authorization": []string{"API_KEY"},
                              +        
                                   }
                               
                                   data := bytes.NewBuffer([]byte{jsonReq})
                              -    req, err := http.NewRequest("POST", "/api/boards/{board}/custom-fields/{customField}/dropdown-items", data)
                              +    req, err := http.NewRequest("POST", "/api/boards/{board}/custom-fields/{customField}/dropdown-items", data)
                                   req.Header = headers
                               
                                   client := &http.Client{}
                              @@ -13150,32 +9573,6 @@ System.out.println(response.toString());
                                   // ...
                               }
                               
                              -
                              -
                               'multipart/form-data',
                              -    'Accept' => 'application/json',
                              -    'Authorization' => 'API_KEY',
                              -);
                              -
                              -$client = new \GuzzleHttp\Client();
                              -
                              -// Define array of request body.
                              -$request_body = array();
                              -
                              -try {
                              -    $response = $client->request('POST','/api/boards/{board}/custom-fields/{customField}/dropdown-items', array(
                              -        'headers' => $headers,
                              -        'json' => $request_body,
                              -       )
                              -    );
                              -    print_r($response->getBody()->getContents());
                              - }
                              - catch (\GuzzleHttp\Exception\BadResponseException $e) {
                              -    // handle exception or api errors.
                              -    print_r($e->getMessage());
                              - }
                              -
                              - // ...
                              -
                               

                              POST /api/boards/{board}/custom-fields/{customField}/dropdown-items

                              Update a Custom Field's dropdown items

                              @@ -13234,7 +9631,7 @@ System.out.println(response.toString());

                              200 Response

                              {
                              -  "_id": "string"
                              +  "_id": "string"
                               }
                               

                              Responses

                              @@ -13289,29 +9686,49 @@ UserSecurity
                              # You can also use wget
                               curl -X PUT /api/boards/{board}/custom-fields/{customField}/dropdown-items/{dropdownItem} \
                              -  -H 'Content-Type: multipart/form-data' \
                              -  -H 'Accept: application/json' \
                              -  -H 'Authorization: API_KEY'
                              +  -H 'Content-Type: multipart/form-data' \
                              +  -H 'Accept: application/json' \
                              +  -H 'Authorization: API_KEY'
                               
                               
                              -
                              PUT /api/boards/{board}/custom-fields/{customField}/dropdown-items/{dropdownItem} HTTP/1.1
                              +
                              PUT /api/boards/{board}/custom-fields/{customField}/dropdown-items/{dropdownItem} HTTP/1.1
                               
                               Content-Type: multipart/form-data
                               Accept: application/json
                               
                               
                              -
                              const inputBody = '{
                              -  "name": "string"
                              -}';
                              -const headers = {
                              -  'Content-Type':'multipart/form-data',
                              -  'Accept':'application/json',
                              -  'Authorization':'API_KEY'
                              +
                              var headers = {
                              +  'Content-Type':'multipart/form-data',
                              +  'Accept':'application/json',
                              +  'Authorization':'API_KEY'
                              +
                               };
                               
                              -fetch('/api/boards/{board}/custom-fields/{customField}/dropdown-items/{dropdownItem}',
                              +$.ajax({
                              +  url: '/api/boards/{board}/custom-fields/{customField}/dropdown-items/{dropdownItem}',
                              +  method: 'put',
                              +
                              +  headers: headers,
                              +  success: function(data) {
                              +    console.log(JSON.stringify(data));
                              +  }
                              +})
                              +
                              +
                              +
                              const fetch = require('node-fetch');
                              +const inputBody = '{
                              +  "name": "string"
                              +}';
                              +const headers = {
                              +  'Content-Type':'multipart/form-data',
                              +  'Accept':'application/json',
                              +  'Authorization':'API_KEY'
                              +
                              +};
                              +
                              +fetch('/api/boards/{board}/custom-fields/{customField}/dropdown-items/{dropdownItem}',
                               {
                              -  method: 'PUT',
                              +  method: 'PUT',
                                 body: inputBody,
                                 headers: headers
                               })
                              @@ -13322,39 +9739,16 @@ fetch('/api/boards/{board}/custom-fields/{customF
                               });
                               
                               
                              -
                              const fetch = require('node-fetch');
                              -const inputBody = {
                              -  "name": "string"
                              -};
                              -const headers = {
                              -  'Content-Type':'multipart/form-data',
                              -  'Accept':'application/json',
                              -  'Authorization':'API_KEY'
                              -};
                              -
                              -fetch('/api/boards/{board}/custom-fields/{customField}/dropdown-items/{dropdownItem}',
                              -{
                              -  method: 'PUT',
                              -  body: JSON.stringify(inputBody),
                              -  headers: headers
                              -})
                              -.then(function(res) {
                              -    return res.json();
                              -}).then(function(body) {
                              -    console.log(body);
                              -});
                              -
                              -
                              -
                              require 'rest-client'
                              -require 'json'
                              +
                              require 'rest-client'
                              +require 'json'
                               
                               headers = {
                              -  'Content-Type' => 'multipart/form-data',
                              -  'Accept' => 'application/json',
                              -  'Authorization' => 'API_KEY'
                              +  'Content-Type' => 'multipart/form-data',
                              +  'Accept' => 'application/json',
                              +  'Authorization' => 'API_KEY'
                               }
                               
                              -result = RestClient.put '/api/boards/{board}/custom-fields/{customField}/dropdown-items/{dropdownItem}',
                              +result = RestClient.put '/api/boards/{board}/custom-fields/{customField}/dropdown-items/{dropdownItem}',
                                 params: {
                                 }, headers: headers
                               
                              @@ -13363,19 +9757,21 @@ p JSON.parse(result)
                               
                              import requests
                               headers = {
                              -  'Content-Type': 'multipart/form-data',
                              -  'Accept': 'application/json',
                              -  'Authorization': 'API_KEY'
                              +  'Content-Type': 'multipart/form-data',
                              +  'Accept': 'application/json',
                              +  'Authorization': 'API_KEY'
                               }
                               
                              -r = requests.put('/api/boards/{board}/custom-fields/{customField}/dropdown-items/{dropdownItem}', headers = headers)
                              +r = requests.put('/api/boards/{board}/custom-fields/{customField}/dropdown-items/{dropdownItem}', params={
                               
                              -print(r.json())
                              +}, headers = headers)
                              +
                              +print r.json()
                               
                               
                              -
                              URL obj = new URL("/api/boards/{board}/custom-fields/{customField}/dropdown-items/{dropdownItem}");
                              +
                              URL obj = new URL("/api/boards/{board}/custom-fields/{customField}/dropdown-items/{dropdownItem}");
                               HttpURLConnection con = (HttpURLConnection) obj.openConnection();
                              -con.setRequestMethod("PUT");
                              +con.setRequestMethod("PUT");
                               int responseCode = con.getResponseCode();
                               BufferedReader in = new BufferedReader(
                                   new InputStreamReader(con.getInputStream()));
                              @@ -13391,20 +9787,21 @@ System.out.println(response.toString());
                               
                              package main
                               
                               import (
                              -       "bytes"
                              -       "net/http"
                              +       "bytes"
                              +       "net/http"
                               )
                               
                               func main() {
                               
                                   headers := map[string][]string{
                              -        "Content-Type": []string{"multipart/form-data"},
                              -        "Accept": []string{"application/json"},
                              -        "Authorization": []string{"API_KEY"},
                              +        "Content-Type": []string{"multipart/form-data"},
                              +        "Accept": []string{"application/json"},
                              +        "Authorization": []string{"API_KEY"},
                              +        
                                   }
                               
                                   data := bytes.NewBuffer([]byte{jsonReq})
                              -    req, err := http.NewRequest("PUT", "/api/boards/{board}/custom-fields/{customField}/dropdown-items/{dropdownItem}", data)
                              +    req, err := http.NewRequest("PUT", "/api/boards/{board}/custom-fields/{customField}/dropdown-items/{dropdownItem}", data)
                                   req.Header = headers
                               
                                   client := &http.Client{}
                              @@ -13412,32 +9809,6 @@ System.out.println(response.toString());
                                   // ...
                               }
                               
                              -
                              -
                               'multipart/form-data',
                              -    'Accept' => 'application/json',
                              -    'Authorization' => 'API_KEY',
                              -);
                              -
                              -$client = new \GuzzleHttp\Client();
                              -
                              -// Define array of request body.
                              -$request_body = array();
                              -
                              -try {
                              -    $response = $client->request('PUT','/api/boards/{board}/custom-fields/{customField}/dropdown-items/{dropdownItem}', array(
                              -        'headers' => $headers,
                              -        'json' => $request_body,
                              -       )
                              -    );
                              -    print_r($response->getBody()->getContents());
                              - }
                              - catch (\GuzzleHttp\Exception\BadResponseException $e) {
                              -    // handle exception or api errors.
                              -    print_r($e->getMessage());
                              - }
                              -
                              - // ...
                              -
                               

                              PUT /api/boards/{board}/custom-fields/{customField}/dropdown-items/{dropdownItem}

                              Update a Custom Field's dropdown item

                              @@ -13484,7 +9855,7 @@ System.out.println(response.toString()); body body object -true +false none @@ -13503,7 +9874,7 @@ System.out.println(response.toString());

                              200 Response

                              {
                              -  "_id": "string"
                              +  "_id": "string"
                               }
                               

                              Responses

                              @@ -13558,24 +9929,43 @@ UserSecurity
                              # You can also use wget
                               curl -X DELETE /api/boards/{board}/custom-fields/{customField}/dropdown-items/{dropdownItem} \
                              -  -H 'Accept: application/json' \
                              -  -H 'Authorization: API_KEY'
                              +  -H 'Accept: application/json' \
                              +  -H 'Authorization: API_KEY'
                               
                               
                              -
                              DELETE /api/boards/{board}/custom-fields/{customField}/dropdown-items/{dropdownItem} HTTP/1.1
                              +
                              DELETE /api/boards/{board}/custom-fields/{customField}/dropdown-items/{dropdownItem} HTTP/1.1
                               
                              -Accept: application/json
                              +Accept: application/json
                              +
                              +
                              +
                              var headers = {
                              +  'Accept':'application/json',
                              +  'Authorization':'API_KEY'
                               
                              -
                              -
                              
                              -const headers = {
                              -  'Accept':'application/json',
                              -  'Authorization':'API_KEY'
                               };
                               
                              -fetch('/api/boards/{board}/custom-fields/{customField}/dropdown-items/{dropdownItem}',
                              +$.ajax({
                              +  url: '/api/boards/{board}/custom-fields/{customField}/dropdown-items/{dropdownItem}',
                              +  method: 'delete',
                              +
                              +  headers: headers,
                              +  success: function(data) {
                              +    console.log(JSON.stringify(data));
                              +  }
                              +})
                              +
                              +
                              +
                              const fetch = require('node-fetch');
                              +
                              +const headers = {
                              +  'Accept':'application/json',
                              +  'Authorization':'API_KEY'
                              +
                              +};
                              +
                              +fetch('/api/boards/{board}/custom-fields/{customField}/dropdown-items/{dropdownItem}',
                               {
                              -  method: 'DELETE',
                              +  method: 'DELETE',
                               
                                 headers: headers
                               })
                              @@ -13586,35 +9976,15 @@ fetch('/api/boards/{board}/custom-fields/{customF
                               });
                               
                               
                              -
                              const fetch = require('node-fetch');
                              -
                              -const headers = {
                              -  'Accept':'application/json',
                              -  'Authorization':'API_KEY'
                              -};
                              -
                              -fetch('/api/boards/{board}/custom-fields/{customField}/dropdown-items/{dropdownItem}',
                              -{
                              -  method: 'DELETE',
                              -
                              -  headers: headers
                              -})
                              -.then(function(res) {
                              -    return res.json();
                              -}).then(function(body) {
                              -    console.log(body);
                              -});
                              -
                              -
                              -
                              require 'rest-client'
                              -require 'json'
                              +
                              require 'rest-client'
                              +require 'json'
                               
                               headers = {
                              -  'Accept' => 'application/json',
                              -  'Authorization' => 'API_KEY'
                              +  'Accept' => 'application/json',
                              +  'Authorization' => 'API_KEY'
                               }
                               
                              -result = RestClient.delete '/api/boards/{board}/custom-fields/{customField}/dropdown-items/{dropdownItem}',
                              +result = RestClient.delete '/api/boards/{board}/custom-fields/{customField}/dropdown-items/{dropdownItem}',
                                 params: {
                                 }, headers: headers
                               
                              @@ -13623,18 +9993,20 @@ p JSON.parse(result)
                               
                              import requests
                               headers = {
                              -  'Accept': 'application/json',
                              -  'Authorization': 'API_KEY'
                              +  'Accept': 'application/json',
                              +  'Authorization': 'API_KEY'
                               }
                               
                              -r = requests.delete('/api/boards/{board}/custom-fields/{customField}/dropdown-items/{dropdownItem}', headers = headers)
                              +r = requests.delete('/api/boards/{board}/custom-fields/{customField}/dropdown-items/{dropdownItem}', params={
                               
                              -print(r.json())
                              +}, headers = headers)
                              +
                              +print r.json()
                               
                               
                              -
                              URL obj = new URL("/api/boards/{board}/custom-fields/{customField}/dropdown-items/{dropdownItem}");
                              +
                              URL obj = new URL("/api/boards/{board}/custom-fields/{customField}/dropdown-items/{dropdownItem}");
                               HttpURLConnection con = (HttpURLConnection) obj.openConnection();
                              -con.setRequestMethod("DELETE");
                              +con.setRequestMethod("DELETE");
                               int responseCode = con.getResponseCode();
                               BufferedReader in = new BufferedReader(
                                   new InputStreamReader(con.getInputStream()));
                              @@ -13650,19 +10022,20 @@ System.out.println(response.toString());
                               
                              package main
                               
                               import (
                              -       "bytes"
                              -       "net/http"
                              +       "bytes"
                              +       "net/http"
                               )
                               
                               func main() {
                               
                                   headers := map[string][]string{
                              -        "Accept": []string{"application/json"},
                              -        "Authorization": []string{"API_KEY"},
                              +        "Accept": []string{"application/json"},
                              +        "Authorization": []string{"API_KEY"},
                              +        
                                   }
                               
                                   data := bytes.NewBuffer([]byte{jsonReq})
                              -    req, err := http.NewRequest("DELETE", "/api/boards/{board}/custom-fields/{customField}/dropdown-items/{dropdownItem}", data)
                              +    req, err := http.NewRequest("DELETE", "/api/boards/{board}/custom-fields/{customField}/dropdown-items/{dropdownItem}", data)
                                   req.Header = headers
                               
                                   client := &http.Client{}
                              @@ -13670,31 +10043,6 @@ System.out.println(response.toString());
                                   // ...
                               }
                               
                              -
                              -
                               'application/json',
                              -    'Authorization' => 'API_KEY',
                              -);
                              -
                              -$client = new \GuzzleHttp\Client();
                              -
                              -// Define array of request body.
                              -$request_body = array();
                              -
                              -try {
                              -    $response = $client->request('DELETE','/api/boards/{board}/custom-fields/{customField}/dropdown-items/{dropdownItem}', array(
                              -        'headers' => $headers,
                              -        'json' => $request_body,
                              -       )
                              -    );
                              -    print_r($response->getBody()->getContents());
                              - }
                              - catch (\GuzzleHttp\Exception\BadResponseException $e) {
                              -    // handle exception or api errors.
                              -    print_r($e->getMessage());
                              - }
                              -
                              - // ...
                              -
                               

                              DELETE /api/boards/{board}/custom-fields/{customField}/dropdown-items/{dropdownItem}

                              Update a Custom Field's dropdown items

                              @@ -13740,7 +10088,7 @@ System.out.println(response.toString());

                              200 Response

                              {
                              -  "_id": "string"
                              +  "_id": "string"
                               }
                               

                              Responses

                              @@ -13796,24 +10144,43 @@ UserSecurity
                              # You can also use wget
                               curl -X GET /api/boards/{board}/integrations \
                              -  -H 'Accept: application/json' \
                              -  -H 'Authorization: API_KEY'
                              +  -H 'Accept: application/json' \
                              +  -H 'Authorization: API_KEY'
                               
                               
                              -
                              GET /api/boards/{board}/integrations HTTP/1.1
                              +
                              GET /api/boards/{board}/integrations HTTP/1.1
                               
                              -Accept: application/json
                              +Accept: application/json
                              +
                              +
                              +
                              var headers = {
                              +  'Accept':'application/json',
                              +  'Authorization':'API_KEY'
                               
                              -
                              -
                              
                              -const headers = {
                              -  'Accept':'application/json',
                              -  'Authorization':'API_KEY'
                               };
                               
                              -fetch('/api/boards/{board}/integrations',
                              +$.ajax({
                              +  url: '/api/boards/{board}/integrations',
                              +  method: 'get',
                              +
                              +  headers: headers,
                              +  success: function(data) {
                              +    console.log(JSON.stringify(data));
                              +  }
                              +})
                              +
                              +
                              +
                              const fetch = require('node-fetch');
                              +
                              +const headers = {
                              +  'Accept':'application/json',
                              +  'Authorization':'API_KEY'
                              +
                              +};
                              +
                              +fetch('/api/boards/{board}/integrations',
                               {
                              -  method: 'GET',
                              +  method: 'GET',
                               
                                 headers: headers
                               })
                              @@ -13824,35 +10191,15 @@ fetch('/api/boards/{board}/integrations'
                              -
                              const fetch = require('node-fetch');
                              -
                              -const headers = {
                              -  'Accept':'application/json',
                              -  'Authorization':'API_KEY'
                              -};
                              -
                              -fetch('/api/boards/{board}/integrations',
                              -{
                              -  method: 'GET',
                              -
                              -  headers: headers
                              -})
                              -.then(function(res) {
                              -    return res.json();
                              -}).then(function(body) {
                              -    console.log(body);
                              -});
                              -
                              -
                              -
                              require 'rest-client'
                              -require 'json'
                              +
                              require 'rest-client'
                              +require 'json'
                               
                               headers = {
                              -  'Accept' => 'application/json',
                              -  'Authorization' => 'API_KEY'
                              +  'Accept' => 'application/json',
                              +  'Authorization' => 'API_KEY'
                               }
                               
                              -result = RestClient.get '/api/boards/{board}/integrations',
                              +result = RestClient.get '/api/boards/{board}/integrations',
                                 params: {
                                 }, headers: headers
                               
                              @@ -13861,18 +10208,20 @@ p JSON.parse(result)
                               
                              import requests
                               headers = {
                              -  'Accept': 'application/json',
                              -  'Authorization': 'API_KEY'
                              +  'Accept': 'application/json',
                              +  'Authorization': 'API_KEY'
                               }
                               
                              -r = requests.get('/api/boards/{board}/integrations', headers = headers)
                              +r = requests.get('/api/boards/{board}/integrations', params={
                               
                              -print(r.json())
                              +}, headers = headers)
                              +
                              +print r.json()
                               
                               
                              -
                              URL obj = new URL("/api/boards/{board}/integrations");
                              +
                              URL obj = new URL("/api/boards/{board}/integrations");
                               HttpURLConnection con = (HttpURLConnection) obj.openConnection();
                              -con.setRequestMethod("GET");
                              +con.setRequestMethod("GET");
                               int responseCode = con.getResponseCode();
                               BufferedReader in = new BufferedReader(
                                   new InputStreamReader(con.getInputStream()));
                              @@ -13888,19 +10237,20 @@ System.out.println(response.toString());
                               
                              package main
                               
                               import (
                              -       "bytes"
                              -       "net/http"
                              +       "bytes"
                              +       "net/http"
                               )
                               
                               func main() {
                               
                                   headers := map[string][]string{
                              -        "Accept": []string{"application/json"},
                              -        "Authorization": []string{"API_KEY"},
                              +        "Accept": []string{"application/json"},
                              +        "Authorization": []string{"API_KEY"},
                              +        
                                   }
                               
                                   data := bytes.NewBuffer([]byte{jsonReq})
                              -    req, err := http.NewRequest("GET", "/api/boards/{board}/integrations", data)
                              +    req, err := http.NewRequest("GET", "/api/boards/{board}/integrations", data)
                                   req.Header = headers
                               
                                   client := &http.Client{}
                              @@ -13908,31 +10258,6 @@ System.out.println(response.toString());
                                   // ...
                               }
                               
                              -
                              -
                               'application/json',
                              -    'Authorization' => 'API_KEY',
                              -);
                              -
                              -$client = new \GuzzleHttp\Client();
                              -
                              -// Define array of request body.
                              -$request_body = array();
                              -
                              -try {
                              -    $response = $client->request('GET','/api/boards/{board}/integrations', array(
                              -        'headers' => $headers,
                              -        'json' => $request_body,
                              -       )
                              -    );
                              -    print_r($response->getBody()->getContents());
                              - }
                              - catch (\GuzzleHttp\Exception\BadResponseException $e) {
                              -    // handle exception or api errors.
                              -    print_r($e->getMessage());
                              - }
                              -
                              - // ...
                              -
                               

                              GET /api/boards/{board}/integrations

                              Get all integrations in board

                              @@ -13957,7 +10282,7 @@ System.out.println(response.toString()); -

                              Detailed descriptions

                              +

                              Detailed descriptions

                              board: the board ID

                              Example responses

                              @@ -13967,18 +10292,18 @@ System.out.println(response.toString());
                              [
                                 {
                              -    "enabled": true,
                              -    "title": "string",
                              -    "type": "string",
                              -    "activities": [
                              -      "string"
                              +    "enabled": true,
                              +    "title": "string",
                              +    "type": "string",
                              +    "activities": [
                              +      "string"
                                   ],
                              -    "url": "string",
                              -    "token": "string",
                              -    "boardId": "string",
                              -    "createdAt": "string",
                              -    "modifiedAt": "string",
                              -    "userId": "string"
                              +    "url": "string",
                              +    "token": "string",
                              +    "boardId": "string",
                              +    "createdAt": "string",
                              +    "modifiedAt": "string",
                              +    "userId": "string"
                                 }
                               ]
                               
                              @@ -14030,7 +10355,7 @@ System.out.println(response.toString()); » title -string¦null +string|null false none name of the integration @@ -14058,7 +10383,7 @@ System.out.println(response.toString()); » token -string¦null +string|null false none token of the integration @@ -14104,29 +10429,49 @@ UserSecurity
                              # You can also use wget
                               curl -X POST /api/boards/{board}/integrations \
                              -  -H 'Content-Type: multipart/form-data' \
                              -  -H 'Accept: application/json' \
                              -  -H 'Authorization: API_KEY'
                              +  -H 'Content-Type: multipart/form-data' \
                              +  -H 'Accept: application/json' \
                              +  -H 'Authorization: API_KEY'
                               
                               
                              -
                              POST /api/boards/{board}/integrations HTTP/1.1
                              +
                              POST /api/boards/{board}/integrations HTTP/1.1
                               
                               Content-Type: multipart/form-data
                               Accept: application/json
                               
                               
                              -
                              const inputBody = '{
                              -  "url": "string"
                              -}';
                              -const headers = {
                              -  'Content-Type':'multipart/form-data',
                              -  'Accept':'application/json',
                              -  'Authorization':'API_KEY'
                              +
                              var headers = {
                              +  'Content-Type':'multipart/form-data',
                              +  'Accept':'application/json',
                              +  'Authorization':'API_KEY'
                              +
                               };
                               
                              -fetch('/api/boards/{board}/integrations',
                              +$.ajax({
                              +  url: '/api/boards/{board}/integrations',
                              +  method: 'post',
                              +
                              +  headers: headers,
                              +  success: function(data) {
                              +    console.log(JSON.stringify(data));
                              +  }
                              +})
                              +
                              +
                              +
                              const fetch = require('node-fetch');
                              +const inputBody = '{
                              +  "url": "string"
                              +}';
                              +const headers = {
                              +  'Content-Type':'multipart/form-data',
                              +  'Accept':'application/json',
                              +  'Authorization':'API_KEY'
                              +
                              +};
                              +
                              +fetch('/api/boards/{board}/integrations',
                               {
                              -  method: 'POST',
                              +  method: 'POST',
                                 body: inputBody,
                                 headers: headers
                               })
                              @@ -14137,39 +10482,16 @@ fetch('/api/boards/{board}/integrations'
                              -
                              const fetch = require('node-fetch');
                              -const inputBody = {
                              -  "url": "string"
                              -};
                              -const headers = {
                              -  'Content-Type':'multipart/form-data',
                              -  'Accept':'application/json',
                              -  'Authorization':'API_KEY'
                              -};
                              -
                              -fetch('/api/boards/{board}/integrations',
                              -{
                              -  method: 'POST',
                              -  body: JSON.stringify(inputBody),
                              -  headers: headers
                              -})
                              -.then(function(res) {
                              -    return res.json();
                              -}).then(function(body) {
                              -    console.log(body);
                              -});
                              -
                              -
                              -
                              require 'rest-client'
                              -require 'json'
                              +
                              require 'rest-client'
                              +require 'json'
                               
                               headers = {
                              -  'Content-Type' => 'multipart/form-data',
                              -  'Accept' => 'application/json',
                              -  'Authorization' => 'API_KEY'
                              +  'Content-Type' => 'multipart/form-data',
                              +  'Accept' => 'application/json',
                              +  'Authorization' => 'API_KEY'
                               }
                               
                              -result = RestClient.post '/api/boards/{board}/integrations',
                              +result = RestClient.post '/api/boards/{board}/integrations',
                                 params: {
                                 }, headers: headers
                               
                              @@ -14178,19 +10500,21 @@ p JSON.parse(result)
                               
                              import requests
                               headers = {
                              -  'Content-Type': 'multipart/form-data',
                              -  'Accept': 'application/json',
                              -  'Authorization': 'API_KEY'
                              +  'Content-Type': 'multipart/form-data',
                              +  'Accept': 'application/json',
                              +  'Authorization': 'API_KEY'
                               }
                               
                              -r = requests.post('/api/boards/{board}/integrations', headers = headers)
                              +r = requests.post('/api/boards/{board}/integrations', params={
                               
                              -print(r.json())
                              +}, headers = headers)
                              +
                              +print r.json()
                               
                               
                              -
                              URL obj = new URL("/api/boards/{board}/integrations");
                              +
                              URL obj = new URL("/api/boards/{board}/integrations");
                               HttpURLConnection con = (HttpURLConnection) obj.openConnection();
                              -con.setRequestMethod("POST");
                              +con.setRequestMethod("POST");
                               int responseCode = con.getResponseCode();
                               BufferedReader in = new BufferedReader(
                                   new InputStreamReader(con.getInputStream()));
                              @@ -14206,20 +10530,21 @@ System.out.println(response.toString());
                               
                              package main
                               
                               import (
                              -       "bytes"
                              -       "net/http"
                              +       "bytes"
                              +       "net/http"
                               )
                               
                               func main() {
                               
                                   headers := map[string][]string{
                              -        "Content-Type": []string{"multipart/form-data"},
                              -        "Accept": []string{"application/json"},
                              -        "Authorization": []string{"API_KEY"},
                              +        "Content-Type": []string{"multipart/form-data"},
                              +        "Accept": []string{"application/json"},
                              +        "Authorization": []string{"API_KEY"},
                              +        
                                   }
                               
                                   data := bytes.NewBuffer([]byte{jsonReq})
                              -    req, err := http.NewRequest("POST", "/api/boards/{board}/integrations", data)
                              +    req, err := http.NewRequest("POST", "/api/boards/{board}/integrations", data)
                                   req.Header = headers
                               
                                   client := &http.Client{}
                              @@ -14227,32 +10552,6 @@ System.out.println(response.toString());
                                   // ...
                               }
                               
                              -
                              -
                               'multipart/form-data',
                              -    'Accept' => 'application/json',
                              -    'Authorization' => 'API_KEY',
                              -);
                              -
                              -$client = new \GuzzleHttp\Client();
                              -
                              -// Define array of request body.
                              -$request_body = array();
                              -
                              -try {
                              -    $response = $client->request('POST','/api/boards/{board}/integrations', array(
                              -        'headers' => $headers,
                              -        'json' => $request_body,
                              -       )
                              -    );
                              -    print_r($response->getBody()->getContents());
                              - }
                              - catch (\GuzzleHttp\Exception\BadResponseException $e) {
                              -    // handle exception or api errors.
                              -    print_r($e->getMessage());
                              - }
                              -
                              - // ...
                              -
                               

                              POST /api/boards/{board}/integrations

                              Create a new integration

                              @@ -14285,7 +10584,7 @@ System.out.println(response.toString()); body body object -true +false none @@ -14297,7 +10596,7 @@ System.out.println(response.toString()); -

                              Detailed descriptions

                              +

                              Detailed descriptions

                              board: the board ID

                              Example responses

                              @@ -14306,7 +10605,7 @@ System.out.println(response.toString());

                              200 Response

                              {
                              -  "_id": "string"
                              +  "_id": "string"
                               }
                               

                              Responses

                              @@ -14361,24 +10660,43 @@ UserSecurity
                              # You can also use wget
                               curl -X GET /api/boards/{board}/integrations/{int} \
                              -  -H 'Accept: application/json' \
                              -  -H 'Authorization: API_KEY'
                              +  -H 'Accept: application/json' \
                              +  -H 'Authorization: API_KEY'
                               
                               
                              -
                              GET /api/boards/{board}/integrations/{int} HTTP/1.1
                              +
                              GET /api/boards/{board}/integrations/{int} HTTP/1.1
                               
                              -Accept: application/json
                              +Accept: application/json
                              +
                              +
                              +
                              var headers = {
                              +  'Accept':'application/json',
                              +  'Authorization':'API_KEY'
                               
                              -
                              -
                              
                              -const headers = {
                              -  'Accept':'application/json',
                              -  'Authorization':'API_KEY'
                               };
                               
                              -fetch('/api/boards/{board}/integrations/{int}',
                              +$.ajax({
                              +  url: '/api/boards/{board}/integrations/{int}',
                              +  method: 'get',
                              +
                              +  headers: headers,
                              +  success: function(data) {
                              +    console.log(JSON.stringify(data));
                              +  }
                              +})
                              +
                              +
                              +
                              const fetch = require('node-fetch');
                              +
                              +const headers = {
                              +  'Accept':'application/json',
                              +  'Authorization':'API_KEY'
                              +
                              +};
                              +
                              +fetch('/api/boards/{board}/integrations/{int}',
                               {
                              -  method: 'GET',
                              +  method: 'GET',
                               
                                 headers: headers
                               })
                              @@ -14389,35 +10707,15 @@ fetch('/api/boards/{board}/integrations/{int}
                               });
                               
                               
                              -
                              const fetch = require('node-fetch');
                              -
                              -const headers = {
                              -  'Accept':'application/json',
                              -  'Authorization':'API_KEY'
                              -};
                              -
                              -fetch('/api/boards/{board}/integrations/{int}',
                              -{
                              -  method: 'GET',
                              -
                              -  headers: headers
                              -})
                              -.then(function(res) {
                              -    return res.json();
                              -}).then(function(body) {
                              -    console.log(body);
                              -});
                              -
                              -
                              -
                              require 'rest-client'
                              -require 'json'
                              +
                              require 'rest-client'
                              +require 'json'
                               
                               headers = {
                              -  'Accept' => 'application/json',
                              -  'Authorization' => 'API_KEY'
                              +  'Accept' => 'application/json',
                              +  'Authorization' => 'API_KEY'
                               }
                               
                              -result = RestClient.get '/api/boards/{board}/integrations/{int}',
                              +result = RestClient.get '/api/boards/{board}/integrations/{int}',
                                 params: {
                                 }, headers: headers
                               
                              @@ -14426,18 +10724,20 @@ p JSON.parse(result)
                               
                              import requests
                               headers = {
                              -  'Accept': 'application/json',
                              -  'Authorization': 'API_KEY'
                              +  'Accept': 'application/json',
                              +  'Authorization': 'API_KEY'
                               }
                               
                              -r = requests.get('/api/boards/{board}/integrations/{int}', headers = headers)
                              +r = requests.get('/api/boards/{board}/integrations/{int}', params={
                               
                              -print(r.json())
                              +}, headers = headers)
                              +
                              +print r.json()
                               
                               
                              -
                              URL obj = new URL("/api/boards/{board}/integrations/{int}");
                              +
                              URL obj = new URL("/api/boards/{board}/integrations/{int}");
                               HttpURLConnection con = (HttpURLConnection) obj.openConnection();
                              -con.setRequestMethod("GET");
                              +con.setRequestMethod("GET");
                               int responseCode = con.getResponseCode();
                               BufferedReader in = new BufferedReader(
                                   new InputStreamReader(con.getInputStream()));
                              @@ -14453,19 +10753,20 @@ System.out.println(response.toString());
                               
                              package main
                               
                               import (
                              -       "bytes"
                              -       "net/http"
                              +       "bytes"
                              +       "net/http"
                               )
                               
                               func main() {
                               
                                   headers := map[string][]string{
                              -        "Accept": []string{"application/json"},
                              -        "Authorization": []string{"API_KEY"},
                              +        "Accept": []string{"application/json"},
                              +        "Authorization": []string{"API_KEY"},
                              +        
                                   }
                               
                                   data := bytes.NewBuffer([]byte{jsonReq})
                              -    req, err := http.NewRequest("GET", "/api/boards/{board}/integrations/{int}", data)
                              +    req, err := http.NewRequest("GET", "/api/boards/{board}/integrations/{int}", data)
                                   req.Header = headers
                               
                                   client := &http.Client{}
                              @@ -14473,31 +10774,6 @@ System.out.println(response.toString());
                                   // ...
                               }
                               
                              -
                              -
                               'application/json',
                              -    'Authorization' => 'API_KEY',
                              -);
                              -
                              -$client = new \GuzzleHttp\Client();
                              -
                              -// Define array of request body.
                              -$request_body = array();
                              -
                              -try {
                              -    $response = $client->request('GET','/api/boards/{board}/integrations/{int}', array(
                              -        'headers' => $headers,
                              -        'json' => $request_body,
                              -       )
                              -    );
                              -    print_r($response->getBody()->getContents());
                              - }
                              - catch (\GuzzleHttp\Exception\BadResponseException $e) {
                              -    // handle exception or api errors.
                              -    print_r($e->getMessage());
                              - }
                              -
                              - // ...
                              -
                               

                              GET /api/boards/{board}/integrations/{int}

                              Get a single integration in board

                              @@ -14529,7 +10805,7 @@ System.out.println(response.toString()); -

                              Detailed descriptions

                              +

                              Detailed descriptions

                              board: the board ID

                              int: the integration ID

                              @@ -14539,18 +10815,18 @@ System.out.println(response.toString());

                              200 Response

                              {
                              -  "enabled": true,
                              -  "title": "string",
                              -  "type": "string",
                              -  "activities": [
                              -    "string"
                              +  "enabled": true,
                              +  "title": "string",
                              +  "type": "string",
                              +  "activities": [
                              +    "string"
                                 ],
                              -  "url": "string",
                              -  "token": "string",
                              -  "boardId": "string",
                              -  "createdAt": "string",
                              -  "modifiedAt": "string",
                              -  "userId": "string"
                              +  "url": "string",
                              +  "token": "string",
                              +  "boardId": "string",
                              +  "createdAt": "string",
                              +  "modifiedAt": "string",
                              +  "userId": "string"
                               }
                               

                              Responses

                              @@ -14583,33 +10859,53 @@ UserSecurity
                              # You can also use wget
                               curl -X PUT /api/boards/{board}/integrations/{int} \
                              -  -H 'Content-Type: multipart/form-data' \
                              -  -H 'Accept: application/json' \
                              -  -H 'Authorization: API_KEY'
                              +  -H 'Content-Type: multipart/form-data' \
                              +  -H 'Accept: application/json' \
                              +  -H 'Authorization: API_KEY'
                               
                               
                              -
                              PUT /api/boards/{board}/integrations/{int} HTTP/1.1
                              +
                              PUT /api/boards/{board}/integrations/{int} HTTP/1.1
                               
                               Content-Type: multipart/form-data
                               Accept: application/json
                               
                               
                              -
                              const inputBody = '{
                              -  "enabled": "string",
                              -  "title": "string",
                              -  "url": "string",
                              -  "token": "string",
                              -  "activities": "string"
                              -}';
                              -const headers = {
                              -  'Content-Type':'multipart/form-data',
                              -  'Accept':'application/json',
                              -  'Authorization':'API_KEY'
                              +
                              var headers = {
                              +  'Content-Type':'multipart/form-data',
                              +  'Accept':'application/json',
                              +  'Authorization':'API_KEY'
                              +
                               };
                               
                              -fetch('/api/boards/{board}/integrations/{int}',
                              +$.ajax({
                              +  url: '/api/boards/{board}/integrations/{int}',
                              +  method: 'put',
                              +
                              +  headers: headers,
                              +  success: function(data) {
                              +    console.log(JSON.stringify(data));
                              +  }
                              +})
                              +
                              +
                              +
                              const fetch = require('node-fetch');
                              +const inputBody = '{
                              +  "enabled": "string",
                              +  "title": "string",
                              +  "url": "string",
                              +  "token": "string",
                              +  "activities": "string"
                              +}';
                              +const headers = {
                              +  'Content-Type':'multipart/form-data',
                              +  'Accept':'application/json',
                              +  'Authorization':'API_KEY'
                              +
                              +};
                              +
                              +fetch('/api/boards/{board}/integrations/{int}',
                               {
                              -  method: 'PUT',
                              +  method: 'PUT',
                                 body: inputBody,
                                 headers: headers
                               })
                              @@ -14620,43 +10916,16 @@ fetch('/api/boards/{board}/integrations/{int}
                               });
                               
                               
                              -
                              const fetch = require('node-fetch');
                              -const inputBody = {
                              -  "enabled": "string",
                              -  "title": "string",
                              -  "url": "string",
                              -  "token": "string",
                              -  "activities": "string"
                              -};
                              -const headers = {
                              -  'Content-Type':'multipart/form-data',
                              -  'Accept':'application/json',
                              -  'Authorization':'API_KEY'
                              -};
                              -
                              -fetch('/api/boards/{board}/integrations/{int}',
                              -{
                              -  method: 'PUT',
                              -  body: JSON.stringify(inputBody),
                              -  headers: headers
                              -})
                              -.then(function(res) {
                              -    return res.json();
                              -}).then(function(body) {
                              -    console.log(body);
                              -});
                              -
                              -
                              -
                              require 'rest-client'
                              -require 'json'
                              +
                              require 'rest-client'
                              +require 'json'
                               
                               headers = {
                              -  'Content-Type' => 'multipart/form-data',
                              -  'Accept' => 'application/json',
                              -  'Authorization' => 'API_KEY'
                              +  'Content-Type' => 'multipart/form-data',
                              +  'Accept' => 'application/json',
                              +  'Authorization' => 'API_KEY'
                               }
                               
                              -result = RestClient.put '/api/boards/{board}/integrations/{int}',
                              +result = RestClient.put '/api/boards/{board}/integrations/{int}',
                                 params: {
                                 }, headers: headers
                               
                              @@ -14665,19 +10934,21 @@ p JSON.parse(result)
                               
                              import requests
                               headers = {
                              -  'Content-Type': 'multipart/form-data',
                              -  'Accept': 'application/json',
                              -  'Authorization': 'API_KEY'
                              +  'Content-Type': 'multipart/form-data',
                              +  'Accept': 'application/json',
                              +  'Authorization': 'API_KEY'
                               }
                               
                              -r = requests.put('/api/boards/{board}/integrations/{int}', headers = headers)
                              +r = requests.put('/api/boards/{board}/integrations/{int}', params={
                               
                              -print(r.json())
                              +}, headers = headers)
                              +
                              +print r.json()
                               
                               
                              -
                              URL obj = new URL("/api/boards/{board}/integrations/{int}");
                              +
                              URL obj = new URL("/api/boards/{board}/integrations/{int}");
                               HttpURLConnection con = (HttpURLConnection) obj.openConnection();
                              -con.setRequestMethod("PUT");
                              +con.setRequestMethod("PUT");
                               int responseCode = con.getResponseCode();
                               BufferedReader in = new BufferedReader(
                                   new InputStreamReader(con.getInputStream()));
                              @@ -14693,20 +10964,21 @@ System.out.println(response.toString());
                               
                              package main
                               
                               import (
                              -       "bytes"
                              -       "net/http"
                              +       "bytes"
                              +       "net/http"
                               )
                               
                               func main() {
                               
                                   headers := map[string][]string{
                              -        "Content-Type": []string{"multipart/form-data"},
                              -        "Accept": []string{"application/json"},
                              -        "Authorization": []string{"API_KEY"},
                              +        "Content-Type": []string{"multipart/form-data"},
                              +        "Accept": []string{"application/json"},
                              +        "Authorization": []string{"API_KEY"},
                              +        
                                   }
                               
                                   data := bytes.NewBuffer([]byte{jsonReq})
                              -    req, err := http.NewRequest("PUT", "/api/boards/{board}/integrations/{int}", data)
                              +    req, err := http.NewRequest("PUT", "/api/boards/{board}/integrations/{int}", data)
                                   req.Header = headers
                               
                                   client := &http.Client{}
                              @@ -14714,32 +10986,6 @@ System.out.println(response.toString());
                                   // ...
                               }
                               
                              -
                              -
                               'multipart/form-data',
                              -    'Accept' => 'application/json',
                              -    'Authorization' => 'API_KEY',
                              -);
                              -
                              -$client = new \GuzzleHttp\Client();
                              -
                              -// Define array of request body.
                              -$request_body = array();
                              -
                              -try {
                              -    $response = $client->request('PUT','/api/boards/{board}/integrations/{int}', array(
                              -        'headers' => $headers,
                              -        'json' => $request_body,
                              -       )
                              -    );
                              -    print_r($response->getBody()->getContents());
                              - }
                              - catch (\GuzzleHttp\Exception\BadResponseException $e) {
                              -    // handle exception or api errors.
                              -    print_r($e->getMessage());
                              - }
                              -
                              - // ...
                              -
                               

                              PUT /api/boards/{board}/integrations/{int}

                              Edit integration data

                              @@ -14823,7 +11069,7 @@ System.out.println(response.toString()); -

                              Detailed descriptions

                              +

                              Detailed descriptions

                              board: the board ID

                              int: the integration ID

                              @@ -14833,7 +11079,7 @@ System.out.println(response.toString());

                              200 Response

                              {
                              -  "_id": "string"
                              +  "_id": "string"
                               }
                               

                              Responses

                              @@ -14888,24 +11134,43 @@ UserSecurity
                              # You can also use wget
                               curl -X DELETE /api/boards/{board}/integrations/{int} \
                              -  -H 'Accept: application/json' \
                              -  -H 'Authorization: API_KEY'
                              +  -H 'Accept: application/json' \
                              +  -H 'Authorization: API_KEY'
                               
                               
                              -
                              DELETE /api/boards/{board}/integrations/{int} HTTP/1.1
                              +
                              DELETE /api/boards/{board}/integrations/{int} HTTP/1.1
                               
                              -Accept: application/json
                              +Accept: application/json
                              +
                              +
                              +
                              var headers = {
                              +  'Accept':'application/json',
                              +  'Authorization':'API_KEY'
                               
                              -
                              -
                              
                              -const headers = {
                              -  'Accept':'application/json',
                              -  'Authorization':'API_KEY'
                               };
                               
                              -fetch('/api/boards/{board}/integrations/{int}',
                              +$.ajax({
                              +  url: '/api/boards/{board}/integrations/{int}',
                              +  method: 'delete',
                              +
                              +  headers: headers,
                              +  success: function(data) {
                              +    console.log(JSON.stringify(data));
                              +  }
                              +})
                              +
                              +
                              +
                              const fetch = require('node-fetch');
                              +
                              +const headers = {
                              +  'Accept':'application/json',
                              +  'Authorization':'API_KEY'
                              +
                              +};
                              +
                              +fetch('/api/boards/{board}/integrations/{int}',
                               {
                              -  method: 'DELETE',
                              +  method: 'DELETE',
                               
                                 headers: headers
                               })
                              @@ -14916,35 +11181,15 @@ fetch('/api/boards/{board}/integrations/{int}
                               });
                               
                               
                              -
                              const fetch = require('node-fetch');
                              -
                              -const headers = {
                              -  'Accept':'application/json',
                              -  'Authorization':'API_KEY'
                              -};
                              -
                              -fetch('/api/boards/{board}/integrations/{int}',
                              -{
                              -  method: 'DELETE',
                              -
                              -  headers: headers
                              -})
                              -.then(function(res) {
                              -    return res.json();
                              -}).then(function(body) {
                              -    console.log(body);
                              -});
                              -
                              -
                              -
                              require 'rest-client'
                              -require 'json'
                              +
                              require 'rest-client'
                              +require 'json'
                               
                               headers = {
                              -  'Accept' => 'application/json',
                              -  'Authorization' => 'API_KEY'
                              +  'Accept' => 'application/json',
                              +  'Authorization' => 'API_KEY'
                               }
                               
                              -result = RestClient.delete '/api/boards/{board}/integrations/{int}',
                              +result = RestClient.delete '/api/boards/{board}/integrations/{int}',
                                 params: {
                                 }, headers: headers
                               
                              @@ -14953,18 +11198,20 @@ p JSON.parse(result)
                               
                              import requests
                               headers = {
                              -  'Accept': 'application/json',
                              -  'Authorization': 'API_KEY'
                              +  'Accept': 'application/json',
                              +  'Authorization': 'API_KEY'
                               }
                               
                              -r = requests.delete('/api/boards/{board}/integrations/{int}', headers = headers)
                              +r = requests.delete('/api/boards/{board}/integrations/{int}', params={
                               
                              -print(r.json())
                              +}, headers = headers)
                              +
                              +print r.json()
                               
                               
                              -
                              URL obj = new URL("/api/boards/{board}/integrations/{int}");
                              +
                              URL obj = new URL("/api/boards/{board}/integrations/{int}");
                               HttpURLConnection con = (HttpURLConnection) obj.openConnection();
                              -con.setRequestMethod("DELETE");
                              +con.setRequestMethod("DELETE");
                               int responseCode = con.getResponseCode();
                               BufferedReader in = new BufferedReader(
                                   new InputStreamReader(con.getInputStream()));
                              @@ -14980,19 +11227,20 @@ System.out.println(response.toString());
                               
                              package main
                               
                               import (
                              -       "bytes"
                              -       "net/http"
                              +       "bytes"
                              +       "net/http"
                               )
                               
                               func main() {
                               
                                   headers := map[string][]string{
                              -        "Accept": []string{"application/json"},
                              -        "Authorization": []string{"API_KEY"},
                              +        "Accept": []string{"application/json"},
                              +        "Authorization": []string{"API_KEY"},
                              +        
                                   }
                               
                                   data := bytes.NewBuffer([]byte{jsonReq})
                              -    req, err := http.NewRequest("DELETE", "/api/boards/{board}/integrations/{int}", data)
                              +    req, err := http.NewRequest("DELETE", "/api/boards/{board}/integrations/{int}", data)
                                   req.Header = headers
                               
                                   client := &http.Client{}
                              @@ -15000,31 +11248,6 @@ System.out.println(response.toString());
                                   // ...
                               }
                               
                              -
                              -
                               'application/json',
                              -    'Authorization' => 'API_KEY',
                              -);
                              -
                              -$client = new \GuzzleHttp\Client();
                              -
                              -// Define array of request body.
                              -$request_body = array();
                              -
                              -try {
                              -    $response = $client->request('DELETE','/api/boards/{board}/integrations/{int}', array(
                              -        'headers' => $headers,
                              -        'json' => $request_body,
                              -       )
                              -    );
                              -    print_r($response->getBody()->getContents());
                              - }
                              - catch (\GuzzleHttp\Exception\BadResponseException $e) {
                              -    // handle exception or api errors.
                              -    print_r($e->getMessage());
                              - }
                              -
                              - // ...
                              -
                               

                              DELETE /api/boards/{board}/integrations/{int}

                              Delete integration

                              @@ -15056,7 +11279,7 @@ System.out.println(response.toString()); -

                              Detailed descriptions

                              +

                              Detailed descriptions

                              board: the board ID

                              int: the integration ID

                              @@ -15066,7 +11289,7 @@ System.out.println(response.toString());

                              200 Response

                              {
                              -  "_id": "string"
                              +  "_id": "string"
                               }
                               

                              Responses

                              @@ -15121,24 +11344,43 @@ UserSecurity
                              # You can also use wget
                               curl -X DELETE /api/boards/{board}/integrations/{int}/activities \
                              -  -H 'Accept: application/json' \
                              -  -H 'Authorization: API_KEY'
                              +  -H 'Accept: application/json' \
                              +  -H 'Authorization: API_KEY'
                               
                               
                              -
                              DELETE /api/boards/{board}/integrations/{int}/activities HTTP/1.1
                              +
                              DELETE /api/boards/{board}/integrations/{int}/activities HTTP/1.1
                               
                              -Accept: application/json
                              +Accept: application/json
                              +
                              +
                              +
                              var headers = {
                              +  'Accept':'application/json',
                              +  'Authorization':'API_KEY'
                               
                              -
                              -
                              
                              -const headers = {
                              -  'Accept':'application/json',
                              -  'Authorization':'API_KEY'
                               };
                               
                              -fetch('/api/boards/{board}/integrations/{int}/activities',
                              +$.ajax({
                              +  url: '/api/boards/{board}/integrations/{int}/activities',
                              +  method: 'delete',
                              +
                              +  headers: headers,
                              +  success: function(data) {
                              +    console.log(JSON.stringify(data));
                              +  }
                              +})
                              +
                              +
                              +
                              const fetch = require('node-fetch');
                              +
                              +const headers = {
                              +  'Accept':'application/json',
                              +  'Authorization':'API_KEY'
                              +
                              +};
                              +
                              +fetch('/api/boards/{board}/integrations/{int}/activities',
                               {
                              -  method: 'DELETE',
                              +  method: 'DELETE',
                               
                                 headers: headers
                               })
                              @@ -15149,35 +11391,15 @@ fetch('/api/boards/{board}/integrations/{int}/act
                               });
                               
                               
                              -
                              const fetch = require('node-fetch');
                              -
                              -const headers = {
                              -  'Accept':'application/json',
                              -  'Authorization':'API_KEY'
                              -};
                              -
                              -fetch('/api/boards/{board}/integrations/{int}/activities',
                              -{
                              -  method: 'DELETE',
                              -
                              -  headers: headers
                              -})
                              -.then(function(res) {
                              -    return res.json();
                              -}).then(function(body) {
                              -    console.log(body);
                              -});
                              -
                              -
                              -
                              require 'rest-client'
                              -require 'json'
                              +
                              require 'rest-client'
                              +require 'json'
                               
                               headers = {
                              -  'Accept' => 'application/json',
                              -  'Authorization' => 'API_KEY'
                              +  'Accept' => 'application/json',
                              +  'Authorization' => 'API_KEY'
                               }
                               
                              -result = RestClient.delete '/api/boards/{board}/integrations/{int}/activities',
                              +result = RestClient.delete '/api/boards/{board}/integrations/{int}/activities',
                                 params: {
                                 }, headers: headers
                               
                              @@ -15186,18 +11408,20 @@ p JSON.parse(result)
                               
                              import requests
                               headers = {
                              -  'Accept': 'application/json',
                              -  'Authorization': 'API_KEY'
                              +  'Accept': 'application/json',
                              +  'Authorization': 'API_KEY'
                               }
                               
                              -r = requests.delete('/api/boards/{board}/integrations/{int}/activities', headers = headers)
                              +r = requests.delete('/api/boards/{board}/integrations/{int}/activities', params={
                               
                              -print(r.json())
                              +}, headers = headers)
                              +
                              +print r.json()
                               
                               
                              -
                              URL obj = new URL("/api/boards/{board}/integrations/{int}/activities");
                              +
                              URL obj = new URL("/api/boards/{board}/integrations/{int}/activities");
                               HttpURLConnection con = (HttpURLConnection) obj.openConnection();
                              -con.setRequestMethod("DELETE");
                              +con.setRequestMethod("DELETE");
                               int responseCode = con.getResponseCode();
                               BufferedReader in = new BufferedReader(
                                   new InputStreamReader(con.getInputStream()));
                              @@ -15213,19 +11437,20 @@ System.out.println(response.toString());
                               
                              package main
                               
                               import (
                              -       "bytes"
                              -       "net/http"
                              +       "bytes"
                              +       "net/http"
                               )
                               
                               func main() {
                               
                                   headers := map[string][]string{
                              -        "Accept": []string{"application/json"},
                              -        "Authorization": []string{"API_KEY"},
                              +        "Accept": []string{"application/json"},
                              +        "Authorization": []string{"API_KEY"},
                              +        
                                   }
                               
                                   data := bytes.NewBuffer([]byte{jsonReq})
                              -    req, err := http.NewRequest("DELETE", "/api/boards/{board}/integrations/{int}/activities", data)
                              +    req, err := http.NewRequest("DELETE", "/api/boards/{board}/integrations/{int}/activities", data)
                                   req.Header = headers
                               
                                   client := &http.Client{}
                              @@ -15233,31 +11458,6 @@ System.out.println(response.toString());
                                   // ...
                               }
                               
                              -
                              -
                               'application/json',
                              -    'Authorization' => 'API_KEY',
                              -);
                              -
                              -$client = new \GuzzleHttp\Client();
                              -
                              -// Define array of request body.
                              -$request_body = array();
                              -
                              -try {
                              -    $response = $client->request('DELETE','/api/boards/{board}/integrations/{int}/activities', array(
                              -        'headers' => $headers,
                              -        'json' => $request_body,
                              -       )
                              -    );
                              -    print_r($response->getBody()->getContents());
                              - }
                              - catch (\GuzzleHttp\Exception\BadResponseException $e) {
                              -    // handle exception or api errors.
                              -    print_r($e->getMessage());
                              - }
                              -
                              - // ...
                              -
                               

                              DELETE /api/boards/{board}/integrations/{int}/activities

                              Delete subscribed activities

                              @@ -15289,7 +11489,7 @@ System.out.println(response.toString()); -

                              Detailed descriptions

                              +

                              Detailed descriptions

                              board: the board ID

                              int: the integration ID

                              @@ -15299,18 +11499,18 @@ System.out.println(response.toString());

                              200 Response

                              {
                              -  "enabled": true,
                              -  "title": "string",
                              -  "type": "string",
                              -  "activities": [
                              -    "string"
                              +  "enabled": true,
                              +  "title": "string",
                              +  "type": "string",
                              +  "activities": [
                              +    "string"
                                 ],
                              -  "url": "string",
                              -  "token": "string",
                              -  "boardId": "string",
                              -  "createdAt": "string",
                              -  "modifiedAt": "string",
                              -  "userId": "string"
                              +  "url": "string",
                              +  "token": "string",
                              +  "boardId": "string",
                              +  "createdAt": "string",
                              +  "modifiedAt": "string",
                              +  "userId": "string"
                               }
                               

                              Responses

                              @@ -15343,29 +11543,49 @@ UserSecurity
                              # You can also use wget
                               curl -X POST /api/boards/{board}/integrations/{int}/activities \
                              -  -H 'Content-Type: multipart/form-data' \
                              -  -H 'Accept: application/json' \
                              -  -H 'Authorization: API_KEY'
                              +  -H 'Content-Type: multipart/form-data' \
                              +  -H 'Accept: application/json' \
                              +  -H 'Authorization: API_KEY'
                               
                               
                              -
                              POST /api/boards/{board}/integrations/{int}/activities HTTP/1.1
                              +
                              POST /api/boards/{board}/integrations/{int}/activities HTTP/1.1
                               
                               Content-Type: multipart/form-data
                               Accept: application/json
                               
                               
                              -
                              const inputBody = '{
                              -  "activities": "string"
                              -}';
                              -const headers = {
                              -  'Content-Type':'multipart/form-data',
                              -  'Accept':'application/json',
                              -  'Authorization':'API_KEY'
                              +
                              var headers = {
                              +  'Content-Type':'multipart/form-data',
                              +  'Accept':'application/json',
                              +  'Authorization':'API_KEY'
                              +
                               };
                               
                              -fetch('/api/boards/{board}/integrations/{int}/activities',
                              +$.ajax({
                              +  url: '/api/boards/{board}/integrations/{int}/activities',
                              +  method: 'post',
                              +
                              +  headers: headers,
                              +  success: function(data) {
                              +    console.log(JSON.stringify(data));
                              +  }
                              +})
                              +
                              +
                              +
                              const fetch = require('node-fetch');
                              +const inputBody = '{
                              +  "activities": "string"
                              +}';
                              +const headers = {
                              +  'Content-Type':'multipart/form-data',
                              +  'Accept':'application/json',
                              +  'Authorization':'API_KEY'
                              +
                              +};
                              +
                              +fetch('/api/boards/{board}/integrations/{int}/activities',
                               {
                              -  method: 'POST',
                              +  method: 'POST',
                                 body: inputBody,
                                 headers: headers
                               })
                              @@ -15376,39 +11596,16 @@ fetch('/api/boards/{board}/integrations/{int}/act
                               });
                               
                               
                              -
                              const fetch = require('node-fetch');
                              -const inputBody = {
                              -  "activities": "string"
                              -};
                              -const headers = {
                              -  'Content-Type':'multipart/form-data',
                              -  'Accept':'application/json',
                              -  'Authorization':'API_KEY'
                              -};
                              -
                              -fetch('/api/boards/{board}/integrations/{int}/activities',
                              -{
                              -  method: 'POST',
                              -  body: JSON.stringify(inputBody),
                              -  headers: headers
                              -})
                              -.then(function(res) {
                              -    return res.json();
                              -}).then(function(body) {
                              -    console.log(body);
                              -});
                              -
                              -
                              -
                              require 'rest-client'
                              -require 'json'
                              +
                              require 'rest-client'
                              +require 'json'
                               
                               headers = {
                              -  'Content-Type' => 'multipart/form-data',
                              -  'Accept' => 'application/json',
                              -  'Authorization' => 'API_KEY'
                              +  'Content-Type' => 'multipart/form-data',
                              +  'Accept' => 'application/json',
                              +  'Authorization' => 'API_KEY'
                               }
                               
                              -result = RestClient.post '/api/boards/{board}/integrations/{int}/activities',
                              +result = RestClient.post '/api/boards/{board}/integrations/{int}/activities',
                                 params: {
                                 }, headers: headers
                               
                              @@ -15417,19 +11614,21 @@ p JSON.parse(result)
                               
                              import requests
                               headers = {
                              -  'Content-Type': 'multipart/form-data',
                              -  'Accept': 'application/json',
                              -  'Authorization': 'API_KEY'
                              +  'Content-Type': 'multipart/form-data',
                              +  'Accept': 'application/json',
                              +  'Authorization': 'API_KEY'
                               }
                               
                              -r = requests.post('/api/boards/{board}/integrations/{int}/activities', headers = headers)
                              +r = requests.post('/api/boards/{board}/integrations/{int}/activities', params={
                               
                              -print(r.json())
                              +}, headers = headers)
                              +
                              +print r.json()
                               
                               
                              -
                              URL obj = new URL("/api/boards/{board}/integrations/{int}/activities");
                              +
                              URL obj = new URL("/api/boards/{board}/integrations/{int}/activities");
                               HttpURLConnection con = (HttpURLConnection) obj.openConnection();
                              -con.setRequestMethod("POST");
                              +con.setRequestMethod("POST");
                               int responseCode = con.getResponseCode();
                               BufferedReader in = new BufferedReader(
                                   new InputStreamReader(con.getInputStream()));
                              @@ -15445,20 +11644,21 @@ System.out.println(response.toString());
                               
                              package main
                               
                               import (
                              -       "bytes"
                              -       "net/http"
                              +       "bytes"
                              +       "net/http"
                               )
                               
                               func main() {
                               
                                   headers := map[string][]string{
                              -        "Content-Type": []string{"multipart/form-data"},
                              -        "Accept": []string{"application/json"},
                              -        "Authorization": []string{"API_KEY"},
                              +        "Content-Type": []string{"multipart/form-data"},
                              +        "Accept": []string{"application/json"},
                              +        "Authorization": []string{"API_KEY"},
                              +        
                                   }
                               
                                   data := bytes.NewBuffer([]byte{jsonReq})
                              -    req, err := http.NewRequest("POST", "/api/boards/{board}/integrations/{int}/activities", data)
                              +    req, err := http.NewRequest("POST", "/api/boards/{board}/integrations/{int}/activities", data)
                                   req.Header = headers
                               
                                   client := &http.Client{}
                              @@ -15466,32 +11666,6 @@ System.out.println(response.toString());
                                   // ...
                               }
                               
                              -
                              -
                               'multipart/form-data',
                              -    'Accept' => 'application/json',
                              -    'Authorization' => 'API_KEY',
                              -);
                              -
                              -$client = new \GuzzleHttp\Client();
                              -
                              -// Define array of request body.
                              -$request_body = array();
                              -
                              -try {
                              -    $response = $client->request('POST','/api/boards/{board}/integrations/{int}/activities', array(
                              -        'headers' => $headers,
                              -        'json' => $request_body,
                              -       )
                              -    );
                              -    print_r($response->getBody()->getContents());
                              - }
                              - catch (\GuzzleHttp\Exception\BadResponseException $e) {
                              -    // handle exception or api errors.
                              -    print_r($e->getMessage());
                              - }
                              -
                              - // ...
                              -
                               

                              POST /api/boards/{board}/integrations/{int}/activities

                              Add subscribed activities

                              @@ -15531,7 +11705,7 @@ System.out.println(response.toString()); body body object -true +false none @@ -15543,7 +11717,7 @@ System.out.println(response.toString()); -

                              Detailed descriptions

                              +

                              Detailed descriptions

                              board: the board ID

                              int: the integration ID

                              @@ -15553,18 +11727,18 @@ System.out.println(response.toString());

                              200 Response

                              {
                              -  "enabled": true,
                              -  "title": "string",
                              -  "type": "string",
                              -  "activities": [
                              -    "string"
                              +  "enabled": true,
                              +  "title": "string",
                              +  "type": "string",
                              +  "activities": [
                              +    "string"
                                 ],
                              -  "url": "string",
                              -  "token": "string",
                              -  "boardId": "string",
                              -  "createdAt": "string",
                              -  "modifiedAt": "string",
                              -  "userId": "string"
                              +  "url": "string",
                              +  "token": "string",
                              +  "boardId": "string",
                              +  "createdAt": "string",
                              +  "modifiedAt": "string",
                              +  "userId": "string"
                               }
                               

                              Responses

                              @@ -15598,24 +11772,43 @@ UserSecurity
                              # You can also use wget
                               curl -X GET /api/boards/{board}/lists \
                              -  -H 'Accept: application/json' \
                              -  -H 'Authorization: API_KEY'
                              +  -H 'Accept: application/json' \
                              +  -H 'Authorization: API_KEY'
                               
                               
                              -
                              GET /api/boards/{board}/lists HTTP/1.1
                              +
                              GET /api/boards/{board}/lists HTTP/1.1
                               
                              -Accept: application/json
                              +Accept: application/json
                              +
                              +
                              +
                              var headers = {
                              +  'Accept':'application/json',
                              +  'Authorization':'API_KEY'
                               
                              -
                              -
                              
                              -const headers = {
                              -  'Accept':'application/json',
                              -  'Authorization':'API_KEY'
                               };
                               
                              -fetch('/api/boards/{board}/lists',
                              +$.ajax({
                              +  url: '/api/boards/{board}/lists',
                              +  method: 'get',
                              +
                              +  headers: headers,
                              +  success: function(data) {
                              +    console.log(JSON.stringify(data));
                              +  }
                              +})
                              +
                              +
                              +
                              const fetch = require('node-fetch');
                              +
                              +const headers = {
                              +  'Accept':'application/json',
                              +  'Authorization':'API_KEY'
                              +
                              +};
                              +
                              +fetch('/api/boards/{board}/lists',
                               {
                              -  method: 'GET',
                              +  method: 'GET',
                               
                                 headers: headers
                               })
                              @@ -15626,35 +11819,15 @@ fetch('/api/boards/{board}/lists',
                               });
                               
                               
                              -
                              const fetch = require('node-fetch');
                              -
                              -const headers = {
                              -  'Accept':'application/json',
                              -  'Authorization':'API_KEY'
                              -};
                              -
                              -fetch('/api/boards/{board}/lists',
                              -{
                              -  method: 'GET',
                              -
                              -  headers: headers
                              -})
                              -.then(function(res) {
                              -    return res.json();
                              -}).then(function(body) {
                              -    console.log(body);
                              -});
                              -
                              -
                              -
                              require 'rest-client'
                              -require 'json'
                              +
                              require 'rest-client'
                              +require 'json'
                               
                               headers = {
                              -  'Accept' => 'application/json',
                              -  'Authorization' => 'API_KEY'
                              +  'Accept' => 'application/json',
                              +  'Authorization' => 'API_KEY'
                               }
                               
                              -result = RestClient.get '/api/boards/{board}/lists',
                              +result = RestClient.get '/api/boards/{board}/lists',
                                 params: {
                                 }, headers: headers
                               
                              @@ -15663,18 +11836,20 @@ p JSON.parse(result)
                               
                              import requests
                               headers = {
                              -  'Accept': 'application/json',
                              -  'Authorization': 'API_KEY'
                              +  'Accept': 'application/json',
                              +  'Authorization': 'API_KEY'
                               }
                               
                              -r = requests.get('/api/boards/{board}/lists', headers = headers)
                              +r = requests.get('/api/boards/{board}/lists', params={
                               
                              -print(r.json())
                              +}, headers = headers)
                              +
                              +print r.json()
                               
                               
                              -
                              URL obj = new URL("/api/boards/{board}/lists");
                              +
                              URL obj = new URL("/api/boards/{board}/lists");
                               HttpURLConnection con = (HttpURLConnection) obj.openConnection();
                              -con.setRequestMethod("GET");
                              +con.setRequestMethod("GET");
                               int responseCode = con.getResponseCode();
                               BufferedReader in = new BufferedReader(
                                   new InputStreamReader(con.getInputStream()));
                              @@ -15690,19 +11865,20 @@ System.out.println(response.toString());
                               
                              package main
                               
                               import (
                              -       "bytes"
                              -       "net/http"
                              +       "bytes"
                              +       "net/http"
                               )
                               
                               func main() {
                               
                                   headers := map[string][]string{
                              -        "Accept": []string{"application/json"},
                              -        "Authorization": []string{"API_KEY"},
                              +        "Accept": []string{"application/json"},
                              +        "Authorization": []string{"API_KEY"},
                              +        
                                   }
                               
                                   data := bytes.NewBuffer([]byte{jsonReq})
                              -    req, err := http.NewRequest("GET", "/api/boards/{board}/lists", data)
                              +    req, err := http.NewRequest("GET", "/api/boards/{board}/lists", data)
                                   req.Header = headers
                               
                                   client := &http.Client{}
                              @@ -15710,31 +11886,6 @@ System.out.println(response.toString());
                                   // ...
                               }
                               
                              -
                              -
                               'application/json',
                              -    'Authorization' => 'API_KEY',
                              -);
                              -
                              -$client = new \GuzzleHttp\Client();
                              -
                              -// Define array of request body.
                              -$request_body = array();
                              -
                              -try {
                              -    $response = $client->request('GET','/api/boards/{board}/lists', array(
                              -        'headers' => $headers,
                              -        'json' => $request_body,
                              -       )
                              -    );
                              -    print_r($response->getBody()->getContents());
                              - }
                              - catch (\GuzzleHttp\Exception\BadResponseException $e) {
                              -    // handle exception or api errors.
                              -    print_r($e->getMessage());
                              - }
                              -
                              - // ...
                              -
                               

                              GET /api/boards/{board}/lists

                              Get the list of Lists attached to a board

                              @@ -15759,7 +11910,7 @@ System.out.println(response.toString()); -

                              Detailed descriptions

                              +

                              Detailed descriptions

                              board: the board ID

                              Example responses

                              @@ -15769,8 +11920,8 @@ System.out.println(response.toString());
                              [
                                 {
                              -    "_id": "string",
                              -    "title": "string"
                              +    "_id": "string",
                              +    "title": "string"
                                 }
                               ]
                               
                              @@ -15833,29 +11984,49 @@ UserSecurity
                              # You can also use wget
                               curl -X POST /api/boards/{board}/lists \
                              -  -H 'Content-Type: multipart/form-data' \
                              -  -H 'Accept: application/json' \
                              -  -H 'Authorization: API_KEY'
                              +  -H 'Content-Type: multipart/form-data' \
                              +  -H 'Accept: application/json' \
                              +  -H 'Authorization: API_KEY'
                               
                               
                              -
                              POST /api/boards/{board}/lists HTTP/1.1
                              +
                              POST /api/boards/{board}/lists HTTP/1.1
                               
                               Content-Type: multipart/form-data
                               Accept: application/json
                               
                               
                              -
                              const inputBody = '{
                              -  "title": "string"
                              -}';
                              -const headers = {
                              -  'Content-Type':'multipart/form-data',
                              -  'Accept':'application/json',
                              -  'Authorization':'API_KEY'
                              +
                              var headers = {
                              +  'Content-Type':'multipart/form-data',
                              +  'Accept':'application/json',
                              +  'Authorization':'API_KEY'
                              +
                               };
                               
                              -fetch('/api/boards/{board}/lists',
                              +$.ajax({
                              +  url: '/api/boards/{board}/lists',
                              +  method: 'post',
                              +
                              +  headers: headers,
                              +  success: function(data) {
                              +    console.log(JSON.stringify(data));
                              +  }
                              +})
                              +
                              +
                              +
                              const fetch = require('node-fetch');
                              +const inputBody = '{
                              +  "title": "string"
                              +}';
                              +const headers = {
                              +  'Content-Type':'multipart/form-data',
                              +  'Accept':'application/json',
                              +  'Authorization':'API_KEY'
                              +
                              +};
                              +
                              +fetch('/api/boards/{board}/lists',
                               {
                              -  method: 'POST',
                              +  method: 'POST',
                                 body: inputBody,
                                 headers: headers
                               })
                              @@ -15866,39 +12037,16 @@ fetch('/api/boards/{board}/lists',
                               });
                               
                               
                              -
                              const fetch = require('node-fetch');
                              -const inputBody = {
                              -  "title": "string"
                              -};
                              -const headers = {
                              -  'Content-Type':'multipart/form-data',
                              -  'Accept':'application/json',
                              -  'Authorization':'API_KEY'
                              -};
                              -
                              -fetch('/api/boards/{board}/lists',
                              -{
                              -  method: 'POST',
                              -  body: JSON.stringify(inputBody),
                              -  headers: headers
                              -})
                              -.then(function(res) {
                              -    return res.json();
                              -}).then(function(body) {
                              -    console.log(body);
                              -});
                              -
                              -
                              -
                              require 'rest-client'
                              -require 'json'
                              +
                              require 'rest-client'
                              +require 'json'
                               
                               headers = {
                              -  'Content-Type' => 'multipart/form-data',
                              -  'Accept' => 'application/json',
                              -  'Authorization' => 'API_KEY'
                              +  'Content-Type' => 'multipart/form-data',
                              +  'Accept' => 'application/json',
                              +  'Authorization' => 'API_KEY'
                               }
                               
                              -result = RestClient.post '/api/boards/{board}/lists',
                              +result = RestClient.post '/api/boards/{board}/lists',
                                 params: {
                                 }, headers: headers
                               
                              @@ -15907,19 +12055,21 @@ p JSON.parse(result)
                               
                              import requests
                               headers = {
                              -  'Content-Type': 'multipart/form-data',
                              -  'Accept': 'application/json',
                              -  'Authorization': 'API_KEY'
                              +  'Content-Type': 'multipart/form-data',
                              +  'Accept': 'application/json',
                              +  'Authorization': 'API_KEY'
                               }
                               
                              -r = requests.post('/api/boards/{board}/lists', headers = headers)
                              +r = requests.post('/api/boards/{board}/lists', params={
                               
                              -print(r.json())
                              +}, headers = headers)
                              +
                              +print r.json()
                               
                               
                              -
                              URL obj = new URL("/api/boards/{board}/lists");
                              +
                              URL obj = new URL("/api/boards/{board}/lists");
                               HttpURLConnection con = (HttpURLConnection) obj.openConnection();
                              -con.setRequestMethod("POST");
                              +con.setRequestMethod("POST");
                               int responseCode = con.getResponseCode();
                               BufferedReader in = new BufferedReader(
                                   new InputStreamReader(con.getInputStream()));
                              @@ -15935,20 +12085,21 @@ System.out.println(response.toString());
                               
                              package main
                               
                               import (
                              -       "bytes"
                              -       "net/http"
                              +       "bytes"
                              +       "net/http"
                               )
                               
                               func main() {
                               
                                   headers := map[string][]string{
                              -        "Content-Type": []string{"multipart/form-data"},
                              -        "Accept": []string{"application/json"},
                              -        "Authorization": []string{"API_KEY"},
                              +        "Content-Type": []string{"multipart/form-data"},
                              +        "Accept": []string{"application/json"},
                              +        "Authorization": []string{"API_KEY"},
                              +        
                                   }
                               
                                   data := bytes.NewBuffer([]byte{jsonReq})
                              -    req, err := http.NewRequest("POST", "/api/boards/{board}/lists", data)
                              +    req, err := http.NewRequest("POST", "/api/boards/{board}/lists", data)
                                   req.Header = headers
                               
                                   client := &http.Client{}
                              @@ -15956,32 +12107,6 @@ System.out.println(response.toString());
                                   // ...
                               }
                               
                              -
                              -
                               'multipart/form-data',
                              -    'Accept' => 'application/json',
                              -    'Authorization' => 'API_KEY',
                              -);
                              -
                              -$client = new \GuzzleHttp\Client();
                              -
                              -// Define array of request body.
                              -$request_body = array();
                              -
                              -try {
                              -    $response = $client->request('POST','/api/boards/{board}/lists', array(
                              -        'headers' => $headers,
                              -        'json' => $request_body,
                              -       )
                              -    );
                              -    print_r($response->getBody()->getContents());
                              - }
                              - catch (\GuzzleHttp\Exception\BadResponseException $e) {
                              -    // handle exception or api errors.
                              -    print_r($e->getMessage());
                              - }
                              -
                              - // ...
                              -
                               

                              POST /api/boards/{board}/lists

                              Add a List to a board

                              @@ -16014,7 +12139,7 @@ System.out.println(response.toString()); body body object -true +false none @@ -16026,7 +12151,7 @@ System.out.println(response.toString()); -

                              Detailed descriptions

                              +

                              Detailed descriptions

                              board: the board ID

                              Example responses

                              @@ -16035,7 +12160,7 @@ System.out.println(response.toString());

                              200 Response

                              {
                              -  "_id": "string"
                              +  "_id": "string"
                               }
                               

                              Responses

                              @@ -16090,24 +12215,43 @@ UserSecurity
                              # You can also use wget
                               curl -X GET /api/boards/{board}/lists/{list} \
                              -  -H 'Accept: application/json' \
                              -  -H 'Authorization: API_KEY'
                              +  -H 'Accept: application/json' \
                              +  -H 'Authorization: API_KEY'
                               
                               
                              -
                              GET /api/boards/{board}/lists/{list} HTTP/1.1
                              +
                              GET /api/boards/{board}/lists/{list} HTTP/1.1
                               
                              -Accept: application/json
                              +Accept: application/json
                              +
                              +
                              +
                              var headers = {
                              +  'Accept':'application/json',
                              +  'Authorization':'API_KEY'
                               
                              -
                              -
                              
                              -const headers = {
                              -  'Accept':'application/json',
                              -  'Authorization':'API_KEY'
                               };
                               
                              -fetch('/api/boards/{board}/lists/{list}',
                              +$.ajax({
                              +  url: '/api/boards/{board}/lists/{list}',
                              +  method: 'get',
                              +
                              +  headers: headers,
                              +  success: function(data) {
                              +    console.log(JSON.stringify(data));
                              +  }
                              +})
                              +
                              +
                              +
                              const fetch = require('node-fetch');
                              +
                              +const headers = {
                              +  'Accept':'application/json',
                              +  'Authorization':'API_KEY'
                              +
                              +};
                              +
                              +fetch('/api/boards/{board}/lists/{list}',
                               {
                              -  method: 'GET',
                              +  method: 'GET',
                               
                                 headers: headers
                               })
                              @@ -16118,35 +12262,15 @@ fetch('/api/boards/{board}/lists/{list}'
                              -
                              const fetch = require('node-fetch');
                              -
                              -const headers = {
                              -  'Accept':'application/json',
                              -  'Authorization':'API_KEY'
                              -};
                              -
                              -fetch('/api/boards/{board}/lists/{list}',
                              -{
                              -  method: 'GET',
                              -
                              -  headers: headers
                              -})
                              -.then(function(res) {
                              -    return res.json();
                              -}).then(function(body) {
                              -    console.log(body);
                              -});
                              -
                              -
                              -
                              require 'rest-client'
                              -require 'json'
                              +
                              require 'rest-client'
                              +require 'json'
                               
                               headers = {
                              -  'Accept' => 'application/json',
                              -  'Authorization' => 'API_KEY'
                              +  'Accept' => 'application/json',
                              +  'Authorization' => 'API_KEY'
                               }
                               
                              -result = RestClient.get '/api/boards/{board}/lists/{list}',
                              +result = RestClient.get '/api/boards/{board}/lists/{list}',
                                 params: {
                                 }, headers: headers
                               
                              @@ -16155,18 +12279,20 @@ p JSON.parse(result)
                               
                              import requests
                               headers = {
                              -  'Accept': 'application/json',
                              -  'Authorization': 'API_KEY'
                              +  'Accept': 'application/json',
                              +  'Authorization': 'API_KEY'
                               }
                               
                              -r = requests.get('/api/boards/{board}/lists/{list}', headers = headers)
                              +r = requests.get('/api/boards/{board}/lists/{list}', params={
                               
                              -print(r.json())
                              +}, headers = headers)
                              +
                              +print r.json()
                               
                               
                              -
                              URL obj = new URL("/api/boards/{board}/lists/{list}");
                              +
                              URL obj = new URL("/api/boards/{board}/lists/{list}");
                               HttpURLConnection con = (HttpURLConnection) obj.openConnection();
                              -con.setRequestMethod("GET");
                              +con.setRequestMethod("GET");
                               int responseCode = con.getResponseCode();
                               BufferedReader in = new BufferedReader(
                                   new InputStreamReader(con.getInputStream()));
                              @@ -16182,19 +12308,20 @@ System.out.println(response.toString());
                               
                              package main
                               
                               import (
                              -       "bytes"
                              -       "net/http"
                              +       "bytes"
                              +       "net/http"
                               )
                               
                               func main() {
                               
                                   headers := map[string][]string{
                              -        "Accept": []string{"application/json"},
                              -        "Authorization": []string{"API_KEY"},
                              +        "Accept": []string{"application/json"},
                              +        "Authorization": []string{"API_KEY"},
                              +        
                                   }
                               
                                   data := bytes.NewBuffer([]byte{jsonReq})
                              -    req, err := http.NewRequest("GET", "/api/boards/{board}/lists/{list}", data)
                              +    req, err := http.NewRequest("GET", "/api/boards/{board}/lists/{list}", data)
                                   req.Header = headers
                               
                                   client := &http.Client{}
                              @@ -16202,31 +12329,6 @@ System.out.println(response.toString());
                                   // ...
                               }
                               
                              -
                              -
                               'application/json',
                              -    'Authorization' => 'API_KEY',
                              -);
                              -
                              -$client = new \GuzzleHttp\Client();
                              -
                              -// Define array of request body.
                              -$request_body = array();
                              -
                              -try {
                              -    $response = $client->request('GET','/api/boards/{board}/lists/{list}', array(
                              -        'headers' => $headers,
                              -        'json' => $request_body,
                              -       )
                              -    );
                              -    print_r($response->getBody()->getContents());
                              - }
                              - catch (\GuzzleHttp\Exception\BadResponseException $e) {
                              -    // handle exception or api errors.
                              -    print_r($e->getMessage());
                              - }
                              -
                              - // ...
                              -
                               

                              GET /api/boards/{board}/lists/{list}

                              Get a List attached to a board

                              @@ -16258,7 +12360,7 @@ System.out.println(response.toString()); -

                              Detailed descriptions

                              +

                              Detailed descriptions

                              board: the board ID

                              list: the List ID

                              @@ -16268,24 +12370,24 @@ System.out.println(response.toString());

                              200 Response

                              {
                              -  "title": "string",
                              -  "starred": true,
                              -  "archived": true,
                              -  "archivedAt": "string",
                              -  "boardId": "string",
                              -  "swimlaneId": "string",
                              -  "createdAt": "string",
                              -  "sort": 0,
                              -  "updatedAt": "string",
                              -  "modifiedAt": "string",
                              -  "wipLimit": {
                              -    "value": 0,
                              -    "enabled": true,
                              -    "soft": true
                              +  "title": "string",
                              +  "starred": true,
                              +  "archived": true,
                              +  "archivedAt": "string",
                              +  "boardId": "string",
                              +  "swimlaneId": "string",
                              +  "createdAt": "string",
                              +  "sort": 0,
                              +  "updatedAt": "string",
                              +  "modifiedAt": "string",
                              +  "wipLimit": {
                              +    "value": 0,
                              +    "enabled": true,
                              +    "soft": true
                                 },
                              -  "color": "white",
                              -  "type": "string",
                              -  "collapsed": true
                              +  "color": "white",
                              +  "type": "string",
                              +  "collapsed": true
                               }
                               

                              Responses

                              @@ -16318,24 +12420,43 @@ UserSecurity
                              # You can also use wget
                               curl -X DELETE /api/boards/{board}/lists/{list} \
                              -  -H 'Accept: application/json' \
                              -  -H 'Authorization: API_KEY'
                              +  -H 'Accept: application/json' \
                              +  -H 'Authorization: API_KEY'
                               
                               
                              -
                              DELETE /api/boards/{board}/lists/{list} HTTP/1.1
                              +
                              DELETE /api/boards/{board}/lists/{list} HTTP/1.1
                               
                              -Accept: application/json
                              +Accept: application/json
                              +
                              +
                              +
                              var headers = {
                              +  'Accept':'application/json',
                              +  'Authorization':'API_KEY'
                               
                              -
                              -
                              
                              -const headers = {
                              -  'Accept':'application/json',
                              -  'Authorization':'API_KEY'
                               };
                               
                              -fetch('/api/boards/{board}/lists/{list}',
                              +$.ajax({
                              +  url: '/api/boards/{board}/lists/{list}',
                              +  method: 'delete',
                              +
                              +  headers: headers,
                              +  success: function(data) {
                              +    console.log(JSON.stringify(data));
                              +  }
                              +})
                              +
                              +
                              +
                              const fetch = require('node-fetch');
                              +
                              +const headers = {
                              +  'Accept':'application/json',
                              +  'Authorization':'API_KEY'
                              +
                              +};
                              +
                              +fetch('/api/boards/{board}/lists/{list}',
                               {
                              -  method: 'DELETE',
                              +  method: 'DELETE',
                               
                                 headers: headers
                               })
                              @@ -16346,35 +12467,15 @@ fetch('/api/boards/{board}/lists/{list}'
                              -
                              const fetch = require('node-fetch');
                              -
                              -const headers = {
                              -  'Accept':'application/json',
                              -  'Authorization':'API_KEY'
                              -};
                              -
                              -fetch('/api/boards/{board}/lists/{list}',
                              -{
                              -  method: 'DELETE',
                              -
                              -  headers: headers
                              -})
                              -.then(function(res) {
                              -    return res.json();
                              -}).then(function(body) {
                              -    console.log(body);
                              -});
                              -
                              -
                              -
                              require 'rest-client'
                              -require 'json'
                              +
                              require 'rest-client'
                              +require 'json'
                               
                               headers = {
                              -  'Accept' => 'application/json',
                              -  'Authorization' => 'API_KEY'
                              +  'Accept' => 'application/json',
                              +  'Authorization' => 'API_KEY'
                               }
                               
                              -result = RestClient.delete '/api/boards/{board}/lists/{list}',
                              +result = RestClient.delete '/api/boards/{board}/lists/{list}',
                                 params: {
                                 }, headers: headers
                               
                              @@ -16383,18 +12484,20 @@ p JSON.parse(result)
                               
                              import requests
                               headers = {
                              -  'Accept': 'application/json',
                              -  'Authorization': 'API_KEY'
                              +  'Accept': 'application/json',
                              +  'Authorization': 'API_KEY'
                               }
                               
                              -r = requests.delete('/api/boards/{board}/lists/{list}', headers = headers)
                              +r = requests.delete('/api/boards/{board}/lists/{list}', params={
                               
                              -print(r.json())
                              +}, headers = headers)
                              +
                              +print r.json()
                               
                               
                              -
                              URL obj = new URL("/api/boards/{board}/lists/{list}");
                              +
                              URL obj = new URL("/api/boards/{board}/lists/{list}");
                               HttpURLConnection con = (HttpURLConnection) obj.openConnection();
                              -con.setRequestMethod("DELETE");
                              +con.setRequestMethod("DELETE");
                               int responseCode = con.getResponseCode();
                               BufferedReader in = new BufferedReader(
                                   new InputStreamReader(con.getInputStream()));
                              @@ -16410,19 +12513,20 @@ System.out.println(response.toString());
                               
                              package main
                               
                               import (
                              -       "bytes"
                              -       "net/http"
                              +       "bytes"
                              +       "net/http"
                               )
                               
                               func main() {
                               
                                   headers := map[string][]string{
                              -        "Accept": []string{"application/json"},
                              -        "Authorization": []string{"API_KEY"},
                              +        "Accept": []string{"application/json"},
                              +        "Authorization": []string{"API_KEY"},
                              +        
                                   }
                               
                                   data := bytes.NewBuffer([]byte{jsonReq})
                              -    req, err := http.NewRequest("DELETE", "/api/boards/{board}/lists/{list}", data)
                              +    req, err := http.NewRequest("DELETE", "/api/boards/{board}/lists/{list}", data)
                                   req.Header = headers
                               
                                   client := &http.Client{}
                              @@ -16430,31 +12534,6 @@ System.out.println(response.toString());
                                   // ...
                               }
                               
                              -
                              -
                               'application/json',
                              -    'Authorization' => 'API_KEY',
                              -);
                              -
                              -$client = new \GuzzleHttp\Client();
                              -
                              -// Define array of request body.
                              -$request_body = array();
                              -
                              -try {
                              -    $response = $client->request('DELETE','/api/boards/{board}/lists/{list}', array(
                              -        'headers' => $headers,
                              -        'json' => $request_body,
                              -       )
                              -    );
                              -    print_r($response->getBody()->getContents());
                              - }
                              - catch (\GuzzleHttp\Exception\BadResponseException $e) {
                              -    // handle exception or api errors.
                              -    print_r($e->getMessage());
                              - }
                              -
                              - // ...
                              -
                               

                              DELETE /api/boards/{board}/lists/{list}

                              Delete a List

                              @@ -16488,7 +12567,7 @@ The list is not put in the recycle bin.

                              -

                              Detailed descriptions

                              +

                              Detailed descriptions

                              board: the board ID

                              list: the ID of the list to remove

                              @@ -16498,7 +12577,7 @@ The list is not put in the recycle bin.

                              200 Response

                              {
                              -  "_id": "string"
                              +  "_id": "string"
                               }
                               

                              Responses

                              @@ -16554,24 +12633,43 @@ UserSecurity
                              # You can also use wget
                               curl -X GET /api/boards/{board}/swimlanes \
                              -  -H 'Accept: application/json' \
                              -  -H 'Authorization: API_KEY'
                              +  -H 'Accept: application/json' \
                              +  -H 'Authorization: API_KEY'
                               
                               
                              -
                              GET /api/boards/{board}/swimlanes HTTP/1.1
                              +
                              GET /api/boards/{board}/swimlanes HTTP/1.1
                               
                              -Accept: application/json
                              +Accept: application/json
                              +
                              +
                              +
                              var headers = {
                              +  'Accept':'application/json',
                              +  'Authorization':'API_KEY'
                               
                              -
                              -
                              
                              -const headers = {
                              -  'Accept':'application/json',
                              -  'Authorization':'API_KEY'
                               };
                               
                              -fetch('/api/boards/{board}/swimlanes',
                              +$.ajax({
                              +  url: '/api/boards/{board}/swimlanes',
                              +  method: 'get',
                              +
                              +  headers: headers,
                              +  success: function(data) {
                              +    console.log(JSON.stringify(data));
                              +  }
                              +})
                              +
                              +
                              +
                              const fetch = require('node-fetch');
                              +
                              +const headers = {
                              +  'Accept':'application/json',
                              +  'Authorization':'API_KEY'
                              +
                              +};
                              +
                              +fetch('/api/boards/{board}/swimlanes',
                               {
                              -  method: 'GET',
                              +  method: 'GET',
                               
                                 headers: headers
                               })
                              @@ -16582,35 +12680,15 @@ fetch('/api/boards/{board}/swimlanes'
                               });
                               
                               
                              -
                              const fetch = require('node-fetch');
                              -
                              -const headers = {
                              -  'Accept':'application/json',
                              -  'Authorization':'API_KEY'
                              -};
                              -
                              -fetch('/api/boards/{board}/swimlanes',
                              -{
                              -  method: 'GET',
                              -
                              -  headers: headers
                              -})
                              -.then(function(res) {
                              -    return res.json();
                              -}).then(function(body) {
                              -    console.log(body);
                              -});
                              -
                              -
                              -
                              require 'rest-client'
                              -require 'json'
                              +
                              require 'rest-client'
                              +require 'json'
                               
                               headers = {
                              -  'Accept' => 'application/json',
                              -  'Authorization' => 'API_KEY'
                              +  'Accept' => 'application/json',
                              +  'Authorization' => 'API_KEY'
                               }
                               
                              -result = RestClient.get '/api/boards/{board}/swimlanes',
                              +result = RestClient.get '/api/boards/{board}/swimlanes',
                                 params: {
                                 }, headers: headers
                               
                              @@ -16619,18 +12697,20 @@ p JSON.parse(result)
                               
                              import requests
                               headers = {
                              -  'Accept': 'application/json',
                              -  'Authorization': 'API_KEY'
                              +  'Accept': 'application/json',
                              +  'Authorization': 'API_KEY'
                               }
                               
                              -r = requests.get('/api/boards/{board}/swimlanes', headers = headers)
                              +r = requests.get('/api/boards/{board}/swimlanes', params={
                               
                              -print(r.json())
                              +}, headers = headers)
                              +
                              +print r.json()
                               
                               
                              -
                              URL obj = new URL("/api/boards/{board}/swimlanes");
                              +
                              URL obj = new URL("/api/boards/{board}/swimlanes");
                               HttpURLConnection con = (HttpURLConnection) obj.openConnection();
                              -con.setRequestMethod("GET");
                              +con.setRequestMethod("GET");
                               int responseCode = con.getResponseCode();
                               BufferedReader in = new BufferedReader(
                                   new InputStreamReader(con.getInputStream()));
                              @@ -16646,19 +12726,20 @@ System.out.println(response.toString());
                               
                              package main
                               
                               import (
                              -       "bytes"
                              -       "net/http"
                              +       "bytes"
                              +       "net/http"
                               )
                               
                               func main() {
                               
                                   headers := map[string][]string{
                              -        "Accept": []string{"application/json"},
                              -        "Authorization": []string{"API_KEY"},
                              +        "Accept": []string{"application/json"},
                              +        "Authorization": []string{"API_KEY"},
                              +        
                                   }
                               
                                   data := bytes.NewBuffer([]byte{jsonReq})
                              -    req, err := http.NewRequest("GET", "/api/boards/{board}/swimlanes", data)
                              +    req, err := http.NewRequest("GET", "/api/boards/{board}/swimlanes", data)
                                   req.Header = headers
                               
                                   client := &http.Client{}
                              @@ -16666,31 +12747,6 @@ System.out.println(response.toString());
                                   // ...
                               }
                               
                              -
                              -
                               'application/json',
                              -    'Authorization' => 'API_KEY',
                              -);
                              -
                              -$client = new \GuzzleHttp\Client();
                              -
                              -// Define array of request body.
                              -$request_body = array();
                              -
                              -try {
                              -    $response = $client->request('GET','/api/boards/{board}/swimlanes', array(
                              -        'headers' => $headers,
                              -        'json' => $request_body,
                              -       )
                              -    );
                              -    print_r($response->getBody()->getContents());
                              - }
                              - catch (\GuzzleHttp\Exception\BadResponseException $e) {
                              -    // handle exception or api errors.
                              -    print_r($e->getMessage());
                              - }
                              -
                              - // ...
                              -
                               

                              GET /api/boards/{board}/swimlanes

                              Get the list of swimlanes attached to a board

                              @@ -16715,7 +12771,7 @@ System.out.println(response.toString()); -

                              Detailed descriptions

                              +

                              Detailed descriptions

                              board: the ID of the board

                              Example responses

                              @@ -16725,8 +12781,8 @@ System.out.println(response.toString());
                              [
                                 {
                              -    "_id": "string",
                              -    "title": "string"
                              +    "_id": "string",
                              +    "title": "string"
                                 }
                               ]
                               
                              @@ -16789,29 +12845,49 @@ UserSecurity
                              # You can also use wget
                               curl -X POST /api/boards/{board}/swimlanes \
                              -  -H 'Content-Type: multipart/form-data' \
                              -  -H 'Accept: application/json' \
                              -  -H 'Authorization: API_KEY'
                              +  -H 'Content-Type: multipart/form-data' \
                              +  -H 'Accept: application/json' \
                              +  -H 'Authorization: API_KEY'
                               
                               
                              -
                              POST /api/boards/{board}/swimlanes HTTP/1.1
                              +
                              POST /api/boards/{board}/swimlanes HTTP/1.1
                               
                               Content-Type: multipart/form-data
                               Accept: application/json
                               
                               
                              -
                              const inputBody = '{
                              -  "title": "string"
                              -}';
                              -const headers = {
                              -  'Content-Type':'multipart/form-data',
                              -  'Accept':'application/json',
                              -  'Authorization':'API_KEY'
                              +
                              var headers = {
                              +  'Content-Type':'multipart/form-data',
                              +  'Accept':'application/json',
                              +  'Authorization':'API_KEY'
                              +
                               };
                               
                              -fetch('/api/boards/{board}/swimlanes',
                              +$.ajax({
                              +  url: '/api/boards/{board}/swimlanes',
                              +  method: 'post',
                              +
                              +  headers: headers,
                              +  success: function(data) {
                              +    console.log(JSON.stringify(data));
                              +  }
                              +})
                              +
                              +
                              +
                              const fetch = require('node-fetch');
                              +const inputBody = '{
                              +  "title": "string"
                              +}';
                              +const headers = {
                              +  'Content-Type':'multipart/form-data',
                              +  'Accept':'application/json',
                              +  'Authorization':'API_KEY'
                              +
                              +};
                              +
                              +fetch('/api/boards/{board}/swimlanes',
                               {
                              -  method: 'POST',
                              +  method: 'POST',
                                 body: inputBody,
                                 headers: headers
                               })
                              @@ -16822,39 +12898,16 @@ fetch('/api/boards/{board}/swimlanes'
                               });
                               
                               
                              -
                              const fetch = require('node-fetch');
                              -const inputBody = {
                              -  "title": "string"
                              -};
                              -const headers = {
                              -  'Content-Type':'multipart/form-data',
                              -  'Accept':'application/json',
                              -  'Authorization':'API_KEY'
                              -};
                              -
                              -fetch('/api/boards/{board}/swimlanes',
                              -{
                              -  method: 'POST',
                              -  body: JSON.stringify(inputBody),
                              -  headers: headers
                              -})
                              -.then(function(res) {
                              -    return res.json();
                              -}).then(function(body) {
                              -    console.log(body);
                              -});
                              -
                              -
                              -
                              require 'rest-client'
                              -require 'json'
                              +
                              require 'rest-client'
                              +require 'json'
                               
                               headers = {
                              -  'Content-Type' => 'multipart/form-data',
                              -  'Accept' => 'application/json',
                              -  'Authorization' => 'API_KEY'
                              +  'Content-Type' => 'multipart/form-data',
                              +  'Accept' => 'application/json',
                              +  'Authorization' => 'API_KEY'
                               }
                               
                              -result = RestClient.post '/api/boards/{board}/swimlanes',
                              +result = RestClient.post '/api/boards/{board}/swimlanes',
                                 params: {
                                 }, headers: headers
                               
                              @@ -16863,19 +12916,21 @@ p JSON.parse(result)
                               
                              import requests
                               headers = {
                              -  'Content-Type': 'multipart/form-data',
                              -  'Accept': 'application/json',
                              -  'Authorization': 'API_KEY'
                              +  'Content-Type': 'multipart/form-data',
                              +  'Accept': 'application/json',
                              +  'Authorization': 'API_KEY'
                               }
                               
                              -r = requests.post('/api/boards/{board}/swimlanes', headers = headers)
                              +r = requests.post('/api/boards/{board}/swimlanes', params={
                               
                              -print(r.json())
                              +}, headers = headers)
                              +
                              +print r.json()
                               
                               
                              -
                              URL obj = new URL("/api/boards/{board}/swimlanes");
                              +
                              URL obj = new URL("/api/boards/{board}/swimlanes");
                               HttpURLConnection con = (HttpURLConnection) obj.openConnection();
                              -con.setRequestMethod("POST");
                              +con.setRequestMethod("POST");
                               int responseCode = con.getResponseCode();
                               BufferedReader in = new BufferedReader(
                                   new InputStreamReader(con.getInputStream()));
                              @@ -16891,20 +12946,21 @@ System.out.println(response.toString());
                               
                              package main
                               
                               import (
                              -       "bytes"
                              -       "net/http"
                              +       "bytes"
                              +       "net/http"
                               )
                               
                               func main() {
                               
                                   headers := map[string][]string{
                              -        "Content-Type": []string{"multipart/form-data"},
                              -        "Accept": []string{"application/json"},
                              -        "Authorization": []string{"API_KEY"},
                              +        "Content-Type": []string{"multipart/form-data"},
                              +        "Accept": []string{"application/json"},
                              +        "Authorization": []string{"API_KEY"},
                              +        
                                   }
                               
                                   data := bytes.NewBuffer([]byte{jsonReq})
                              -    req, err := http.NewRequest("POST", "/api/boards/{board}/swimlanes", data)
                              +    req, err := http.NewRequest("POST", "/api/boards/{board}/swimlanes", data)
                                   req.Header = headers
                               
                                   client := &http.Client{}
                              @@ -16912,32 +12968,6 @@ System.out.println(response.toString());
                                   // ...
                               }
                               
                              -
                              -
                               'multipart/form-data',
                              -    'Accept' => 'application/json',
                              -    'Authorization' => 'API_KEY',
                              -);
                              -
                              -$client = new \GuzzleHttp\Client();
                              -
                              -// Define array of request body.
                              -$request_body = array();
                              -
                              -try {
                              -    $response = $client->request('POST','/api/boards/{board}/swimlanes', array(
                              -        'headers' => $headers,
                              -        'json' => $request_body,
                              -       )
                              -    );
                              -    print_r($response->getBody()->getContents());
                              - }
                              - catch (\GuzzleHttp\Exception\BadResponseException $e) {
                              -    // handle exception or api errors.
                              -    print_r($e->getMessage());
                              - }
                              -
                              - // ...
                              -
                               

                              POST /api/boards/{board}/swimlanes

                              Add a swimlane to a board

                              @@ -16969,8 +12999,8 @@ System.out.println(response.toString()); body body -object -true +new_swimlane +false none @@ -16982,7 +13012,7 @@ System.out.println(response.toString()); -

                              Detailed descriptions

                              +

                              Detailed descriptions

                              board: the ID of the board

                              Example responses

                              @@ -16991,7 +13021,7 @@ System.out.println(response.toString());

                              200 Response

                              {
                              -  "_id": "string"
                              +  "_id": "string"
                               }
                               

                              Responses

                              @@ -17046,24 +13076,43 @@ UserSecurity
                              # You can also use wget
                               curl -X GET /api/boards/{board}/swimlanes/{swimlane} \
                              -  -H 'Accept: application/json' \
                              -  -H 'Authorization: API_KEY'
                              +  -H 'Accept: application/json' \
                              +  -H 'Authorization: API_KEY'
                               
                               
                              -
                              GET /api/boards/{board}/swimlanes/{swimlane} HTTP/1.1
                              +
                              GET /api/boards/{board}/swimlanes/{swimlane} HTTP/1.1
                               
                              -Accept: application/json
                              +Accept: application/json
                              +
                              +
                              +
                              var headers = {
                              +  'Accept':'application/json',
                              +  'Authorization':'API_KEY'
                               
                              -
                              -
                              
                              -const headers = {
                              -  'Accept':'application/json',
                              -  'Authorization':'API_KEY'
                               };
                               
                              -fetch('/api/boards/{board}/swimlanes/{swimlane}',
                              +$.ajax({
                              +  url: '/api/boards/{board}/swimlanes/{swimlane}',
                              +  method: 'get',
                              +
                              +  headers: headers,
                              +  success: function(data) {
                              +    console.log(JSON.stringify(data));
                              +  }
                              +})
                              +
                              +
                              +
                              const fetch = require('node-fetch');
                              +
                              +const headers = {
                              +  'Accept':'application/json',
                              +  'Authorization':'API_KEY'
                              +
                              +};
                              +
                              +fetch('/api/boards/{board}/swimlanes/{swimlane}',
                               {
                              -  method: 'GET',
                              +  method: 'GET',
                               
                                 headers: headers
                               })
                              @@ -17074,35 +13123,15 @@ fetch('/api/boards/{board}/swimlanes/{swimlane}&#
                               });
                               
                               
                              -
                              const fetch = require('node-fetch');
                              -
                              -const headers = {
                              -  'Accept':'application/json',
                              -  'Authorization':'API_KEY'
                              -};
                              -
                              -fetch('/api/boards/{board}/swimlanes/{swimlane}',
                              -{
                              -  method: 'GET',
                              -
                              -  headers: headers
                              -})
                              -.then(function(res) {
                              -    return res.json();
                              -}).then(function(body) {
                              -    console.log(body);
                              -});
                              -
                              -
                              -
                              require 'rest-client'
                              -require 'json'
                              +
                              require 'rest-client'
                              +require 'json'
                               
                               headers = {
                              -  'Accept' => 'application/json',
                              -  'Authorization' => 'API_KEY'
                              +  'Accept' => 'application/json',
                              +  'Authorization' => 'API_KEY'
                               }
                               
                              -result = RestClient.get '/api/boards/{board}/swimlanes/{swimlane}',
                              +result = RestClient.get '/api/boards/{board}/swimlanes/{swimlane}',
                                 params: {
                                 }, headers: headers
                               
                              @@ -17111,18 +13140,20 @@ p JSON.parse(result)
                               
                              import requests
                               headers = {
                              -  'Accept': 'application/json',
                              -  'Authorization': 'API_KEY'
                              +  'Accept': 'application/json',
                              +  'Authorization': 'API_KEY'
                               }
                               
                              -r = requests.get('/api/boards/{board}/swimlanes/{swimlane}', headers = headers)
                              +r = requests.get('/api/boards/{board}/swimlanes/{swimlane}', params={
                               
                              -print(r.json())
                              +}, headers = headers)
                              +
                              +print r.json()
                               
                               
                              -
                              URL obj = new URL("/api/boards/{board}/swimlanes/{swimlane}");
                              +
                              URL obj = new URL("/api/boards/{board}/swimlanes/{swimlane}");
                               HttpURLConnection con = (HttpURLConnection) obj.openConnection();
                              -con.setRequestMethod("GET");
                              +con.setRequestMethod("GET");
                               int responseCode = con.getResponseCode();
                               BufferedReader in = new BufferedReader(
                                   new InputStreamReader(con.getInputStream()));
                              @@ -17138,19 +13169,20 @@ System.out.println(response.toString());
                               
                              package main
                               
                               import (
                              -       "bytes"
                              -       "net/http"
                              +       "bytes"
                              +       "net/http"
                               )
                               
                               func main() {
                               
                                   headers := map[string][]string{
                              -        "Accept": []string{"application/json"},
                              -        "Authorization": []string{"API_KEY"},
                              +        "Accept": []string{"application/json"},
                              +        "Authorization": []string{"API_KEY"},
                              +        
                                   }
                               
                                   data := bytes.NewBuffer([]byte{jsonReq})
                              -    req, err := http.NewRequest("GET", "/api/boards/{board}/swimlanes/{swimlane}", data)
                              +    req, err := http.NewRequest("GET", "/api/boards/{board}/swimlanes/{swimlane}", data)
                                   req.Header = headers
                               
                                   client := &http.Client{}
                              @@ -17158,31 +13190,6 @@ System.out.println(response.toString());
                                   // ...
                               }
                               
                              -
                              -
                               'application/json',
                              -    'Authorization' => 'API_KEY',
                              -);
                              -
                              -$client = new \GuzzleHttp\Client();
                              -
                              -// Define array of request body.
                              -$request_body = array();
                              -
                              -try {
                              -    $response = $client->request('GET','/api/boards/{board}/swimlanes/{swimlane}', array(
                              -        'headers' => $headers,
                              -        'json' => $request_body,
                              -       )
                              -    );
                              -    print_r($response->getBody()->getContents());
                              - }
                              - catch (\GuzzleHttp\Exception\BadResponseException $e) {
                              -    // handle exception or api errors.
                              -    print_r($e->getMessage());
                              - }
                              -
                              - // ...
                              -
                               

                              GET /api/boards/{board}/swimlanes/{swimlane}

                              Get a swimlane

                              @@ -17214,7 +13221,7 @@ System.out.println(response.toString()); -

                              Detailed descriptions

                              +

                              Detailed descriptions

                              board: the ID of the board

                              swimlane: the ID of the swimlane

                              @@ -17224,17 +13231,17 @@ System.out.println(response.toString());

                              200 Response

                              {
                              -  "title": "string",
                              -  "archived": true,
                              -  "archivedAt": "string",
                              -  "boardId": "string",
                              -  "createdAt": "string",
                              -  "sort": 0,
                              -  "color": "white",
                              -  "updatedAt": "string",
                              -  "modifiedAt": "string",
                              -  "type": "string",
                              -  "collapsed": true
                              +  "title": "string",
                              +  "archived": true,
                              +  "archivedAt": "string",
                              +  "boardId": "string",
                              +  "createdAt": "string",
                              +  "sort": 0,
                              +  "color": "white",
                              +  "updatedAt": "string",
                              +  "modifiedAt": "string",
                              +  "type": "string",
                              +  "collapsed": true
                               }
                               

                              Responses

                              @@ -17267,29 +13274,49 @@ UserSecurity
                              # You can also use wget
                               curl -X PUT /api/boards/{board}/swimlanes/{swimlane} \
                              -  -H 'Content-Type: multipart/form-data' \
                              -  -H 'Accept: application/json' \
                              -  -H 'Authorization: API_KEY'
                              +  -H 'Content-Type: multipart/form-data' \
                              +  -H 'Accept: application/json' \
                              +  -H 'Authorization: API_KEY'
                               
                               
                              -
                              PUT /api/boards/{board}/swimlanes/{swimlane} HTTP/1.1
                              +
                              PUT /api/boards/{board}/swimlanes/{swimlane} HTTP/1.1
                               
                               Content-Type: multipart/form-data
                               Accept: application/json
                               
                               
                              -
                              const inputBody = '{
                              -  "title": "string"
                              -}';
                              -const headers = {
                              -  'Content-Type':'multipart/form-data',
                              -  'Accept':'application/json',
                              -  'Authorization':'API_KEY'
                              +
                              var headers = {
                              +  'Content-Type':'multipart/form-data',
                              +  'Accept':'application/json',
                              +  'Authorization':'API_KEY'
                              +
                               };
                               
                              -fetch('/api/boards/{board}/swimlanes/{swimlane}',
                              +$.ajax({
                              +  url: '/api/boards/{board}/swimlanes/{swimlane}',
                              +  method: 'put',
                              +
                              +  headers: headers,
                              +  success: function(data) {
                              +    console.log(JSON.stringify(data));
                              +  }
                              +})
                              +
                              +
                              +
                              const fetch = require('node-fetch');
                              +const inputBody = '{
                              +  "title": "string"
                              +}';
                              +const headers = {
                              +  'Content-Type':'multipart/form-data',
                              +  'Accept':'application/json',
                              +  'Authorization':'API_KEY'
                              +
                              +};
                              +
                              +fetch('/api/boards/{board}/swimlanes/{swimlane}',
                               {
                              -  method: 'PUT',
                              +  method: 'PUT',
                                 body: inputBody,
                                 headers: headers
                               })
                              @@ -17300,39 +13327,16 @@ fetch('/api/boards/{board}/swimlanes/{swimlane}&#
                               });
                               
                               
                              -
                              const fetch = require('node-fetch');
                              -const inputBody = {
                              -  "title": "string"
                              -};
                              -const headers = {
                              -  'Content-Type':'multipart/form-data',
                              -  'Accept':'application/json',
                              -  'Authorization':'API_KEY'
                              -};
                              -
                              -fetch('/api/boards/{board}/swimlanes/{swimlane}',
                              -{
                              -  method: 'PUT',
                              -  body: JSON.stringify(inputBody),
                              -  headers: headers
                              -})
                              -.then(function(res) {
                              -    return res.json();
                              -}).then(function(body) {
                              -    console.log(body);
                              -});
                              -
                              -
                              -
                              require 'rest-client'
                              -require 'json'
                              +
                              require 'rest-client'
                              +require 'json'
                               
                               headers = {
                              -  'Content-Type' => 'multipart/form-data',
                              -  'Accept' => 'application/json',
                              -  'Authorization' => 'API_KEY'
                              +  'Content-Type' => 'multipart/form-data',
                              +  'Accept' => 'application/json',
                              +  'Authorization' => 'API_KEY'
                               }
                               
                              -result = RestClient.put '/api/boards/{board}/swimlanes/{swimlane}',
                              +result = RestClient.put '/api/boards/{board}/swimlanes/{swimlane}',
                                 params: {
                                 }, headers: headers
                               
                              @@ -17341,19 +13345,21 @@ p JSON.parse(result)
                               
                              import requests
                               headers = {
                              -  'Content-Type': 'multipart/form-data',
                              -  'Accept': 'application/json',
                              -  'Authorization': 'API_KEY'
                              +  'Content-Type': 'multipart/form-data',
                              +  'Accept': 'application/json',
                              +  'Authorization': 'API_KEY'
                               }
                               
                              -r = requests.put('/api/boards/{board}/swimlanes/{swimlane}', headers = headers)
                              +r = requests.put('/api/boards/{board}/swimlanes/{swimlane}', params={
                               
                              -print(r.json())
                              +}, headers = headers)
                              +
                              +print r.json()
                               
                               
                              -
                              URL obj = new URL("/api/boards/{board}/swimlanes/{swimlane}");
                              +
                              URL obj = new URL("/api/boards/{board}/swimlanes/{swimlane}");
                               HttpURLConnection con = (HttpURLConnection) obj.openConnection();
                              -con.setRequestMethod("PUT");
                              +con.setRequestMethod("PUT");
                               int responseCode = con.getResponseCode();
                               BufferedReader in = new BufferedReader(
                                   new InputStreamReader(con.getInputStream()));
                              @@ -17369,20 +13375,21 @@ System.out.println(response.toString());
                               
                              package main
                               
                               import (
                              -       "bytes"
                              -       "net/http"
                              +       "bytes"
                              +       "net/http"
                               )
                               
                               func main() {
                               
                                   headers := map[string][]string{
                              -        "Content-Type": []string{"multipart/form-data"},
                              -        "Accept": []string{"application/json"},
                              -        "Authorization": []string{"API_KEY"},
                              +        "Content-Type": []string{"multipart/form-data"},
                              +        "Accept": []string{"application/json"},
                              +        "Authorization": []string{"API_KEY"},
                              +        
                                   }
                               
                                   data := bytes.NewBuffer([]byte{jsonReq})
                              -    req, err := http.NewRequest("PUT", "/api/boards/{board}/swimlanes/{swimlane}", data)
                              +    req, err := http.NewRequest("PUT", "/api/boards/{board}/swimlanes/{swimlane}", data)
                                   req.Header = headers
                               
                                   client := &http.Client{}
                              @@ -17390,32 +13397,6 @@ System.out.println(response.toString());
                                   // ...
                               }
                               
                              -
                              -
                               'multipart/form-data',
                              -    'Accept' => 'application/json',
                              -    'Authorization' => 'API_KEY',
                              -);
                              -
                              -$client = new \GuzzleHttp\Client();
                              -
                              -// Define array of request body.
                              -$request_body = array();
                              -
                              -try {
                              -    $response = $client->request('PUT','/api/boards/{board}/swimlanes/{swimlane}', array(
                              -        'headers' => $headers,
                              -        'json' => $request_body,
                              -       )
                              -    );
                              -    print_r($response->getBody()->getContents());
                              - }
                              - catch (\GuzzleHttp\Exception\BadResponseException $e) {
                              -    // handle exception or api errors.
                              -    print_r($e->getMessage());
                              - }
                              -
                              - // ...
                              -
                               

                              PUT /api/boards/{board}/swimlanes/{swimlane}

                              Edit the title of a swimlane

                              @@ -17454,8 +13435,8 @@ System.out.println(response.toString()); body body -object -true +new_swimlane +false none @@ -17467,7 +13448,7 @@ System.out.println(response.toString()); -

                              Detailed descriptions

                              +

                              Detailed descriptions

                              board: the ID of the board

                              swimlane: the ID of the swimlane to edit

                              @@ -17477,7 +13458,7 @@ System.out.println(response.toString());

                              200 Response

                              {
                              -  "_id": "string"
                              +  "_id": "string"
                               }
                               

                              Responses

                              @@ -17532,24 +13513,43 @@ UserSecurity
                              # You can also use wget
                               curl -X DELETE /api/boards/{board}/swimlanes/{swimlane} \
                              -  -H 'Accept: application/json' \
                              -  -H 'Authorization: API_KEY'
                              +  -H 'Accept: application/json' \
                              +  -H 'Authorization: API_KEY'
                               
                               
                              -
                              DELETE /api/boards/{board}/swimlanes/{swimlane} HTTP/1.1
                              +
                              DELETE /api/boards/{board}/swimlanes/{swimlane} HTTP/1.1
                               
                              -Accept: application/json
                              +Accept: application/json
                              +
                              +
                              +
                              var headers = {
                              +  'Accept':'application/json',
                              +  'Authorization':'API_KEY'
                               
                              -
                              -
                              
                              -const headers = {
                              -  'Accept':'application/json',
                              -  'Authorization':'API_KEY'
                               };
                               
                              -fetch('/api/boards/{board}/swimlanes/{swimlane}',
                              +$.ajax({
                              +  url: '/api/boards/{board}/swimlanes/{swimlane}',
                              +  method: 'delete',
                              +
                              +  headers: headers,
                              +  success: function(data) {
                              +    console.log(JSON.stringify(data));
                              +  }
                              +})
                              +
                              +
                              +
                              const fetch = require('node-fetch');
                              +
                              +const headers = {
                              +  'Accept':'application/json',
                              +  'Authorization':'API_KEY'
                              +
                              +};
                              +
                              +fetch('/api/boards/{board}/swimlanes/{swimlane}',
                               {
                              -  method: 'DELETE',
                              +  method: 'DELETE',
                               
                                 headers: headers
                               })
                              @@ -17560,35 +13560,15 @@ fetch('/api/boards/{board}/swimlanes/{swimlane}&#
                               });
                               
                               
                              -
                              const fetch = require('node-fetch');
                              -
                              -const headers = {
                              -  'Accept':'application/json',
                              -  'Authorization':'API_KEY'
                              -};
                              -
                              -fetch('/api/boards/{board}/swimlanes/{swimlane}',
                              -{
                              -  method: 'DELETE',
                              -
                              -  headers: headers
                              -})
                              -.then(function(res) {
                              -    return res.json();
                              -}).then(function(body) {
                              -    console.log(body);
                              -});
                              -
                              -
                              -
                              require 'rest-client'
                              -require 'json'
                              +
                              require 'rest-client'
                              +require 'json'
                               
                               headers = {
                              -  'Accept' => 'application/json',
                              -  'Authorization' => 'API_KEY'
                              +  'Accept' => 'application/json',
                              +  'Authorization' => 'API_KEY'
                               }
                               
                              -result = RestClient.delete '/api/boards/{board}/swimlanes/{swimlane}',
                              +result = RestClient.delete '/api/boards/{board}/swimlanes/{swimlane}',
                                 params: {
                                 }, headers: headers
                               
                              @@ -17597,18 +13577,20 @@ p JSON.parse(result)
                               
                              import requests
                               headers = {
                              -  'Accept': 'application/json',
                              -  'Authorization': 'API_KEY'
                              +  'Accept': 'application/json',
                              +  'Authorization': 'API_KEY'
                               }
                               
                              -r = requests.delete('/api/boards/{board}/swimlanes/{swimlane}', headers = headers)
                              +r = requests.delete('/api/boards/{board}/swimlanes/{swimlane}', params={
                               
                              -print(r.json())
                              +}, headers = headers)
                              +
                              +print r.json()
                               
                               
                              -
                              URL obj = new URL("/api/boards/{board}/swimlanes/{swimlane}");
                              +
                              URL obj = new URL("/api/boards/{board}/swimlanes/{swimlane}");
                               HttpURLConnection con = (HttpURLConnection) obj.openConnection();
                              -con.setRequestMethod("DELETE");
                              +con.setRequestMethod("DELETE");
                               int responseCode = con.getResponseCode();
                               BufferedReader in = new BufferedReader(
                                   new InputStreamReader(con.getInputStream()));
                              @@ -17624,19 +13606,20 @@ System.out.println(response.toString());
                               
                              package main
                               
                               import (
                              -       "bytes"
                              -       "net/http"
                              +       "bytes"
                              +       "net/http"
                               )
                               
                               func main() {
                               
                                   headers := map[string][]string{
                              -        "Accept": []string{"application/json"},
                              -        "Authorization": []string{"API_KEY"},
                              +        "Accept": []string{"application/json"},
                              +        "Authorization": []string{"API_KEY"},
                              +        
                                   }
                               
                                   data := bytes.NewBuffer([]byte{jsonReq})
                              -    req, err := http.NewRequest("DELETE", "/api/boards/{board}/swimlanes/{swimlane}", data)
                              +    req, err := http.NewRequest("DELETE", "/api/boards/{board}/swimlanes/{swimlane}", data)
                                   req.Header = headers
                               
                                   client := &http.Client{}
                              @@ -17644,31 +13627,6 @@ System.out.println(response.toString());
                                   // ...
                               }
                               
                              -
                              -
                               'application/json',
                              -    'Authorization' => 'API_KEY',
                              -);
                              -
                              -$client = new \GuzzleHttp\Client();
                              -
                              -// Define array of request body.
                              -$request_body = array();
                              -
                              -try {
                              -    $response = $client->request('DELETE','/api/boards/{board}/swimlanes/{swimlane}', array(
                              -        'headers' => $headers,
                              -        'json' => $request_body,
                              -       )
                              -    );
                              -    print_r($response->getBody()->getContents());
                              - }
                              - catch (\GuzzleHttp\Exception\BadResponseException $e) {
                              -    // handle exception or api errors.
                              -    print_r($e->getMessage());
                              - }
                              -
                              - // ...
                              -
                               

                              DELETE /api/boards/{board}/swimlanes/{swimlane}

                              Delete a swimlane

                              @@ -17701,7 +13659,7 @@ System.out.println(response.toString()); -

                              Detailed descriptions

                              +

                              Detailed descriptions

                              board: the ID of the board

                              swimlane: the ID of the swimlane

                              @@ -17711,7 +13669,7 @@ System.out.println(response.toString());

                              200 Response

                              {
                              -  "_id": "string"
                              +  "_id": "string"
                               }
                               

                              Responses

                              @@ -17760,98 +13718,19 @@ To perform this operation, you must be authenticated by means of one of the foll UserSecurity

                              Schemas

                              -

                              Boards

                              -

                              - - -

                              +

                              CardComments

                              +

                              {
                              -  "title": "string",
                              -  "slug": "string",
                              -  "archived": true,
                              -  "archivedAt": "string",
                              -  "createdAt": "string",
                              -  "modifiedAt": "string",
                              -  "stars": 0,
                              -  "labels": [
                              -    {
                              -      "_id": "string",
                              -      "name": "string",
                              -      "color": "white"
                              -    }
                              -  ],
                              -  "members": [
                              -    {
                              -      "userId": "string",
                              -      "isAdmin": true,
                              -      "isActive": true,
                              -      "isNoComments": true,
                              -      "isCommentOnly": true,
                              -      "isWorker": true
                              -    }
                              -  ],
                              -  "permission": "public",
                              -  "orgs": [
                              -    {
                              -      "orgId": "string",
                              -      "orgDisplayName": "string",
                              -      "isActive": true
                              -    }
                              -  ],
                              -  "teams": [
                              -    {
                              -      "teamId": "string",
                              -      "teamDisplayName": "string",
                              -      "isActive": true
                              -    }
                              -  ],
                              -  "color": "belize",
                              -  "backgroundImageURL": "string",
                              -  "allowsCardCounterList": true,
                              -  "allowsBoardMemberList": true,
                              -  "description": "string",
                              -  "subtasksDefaultBoardId": "string",
                              -  "subtasksDefaultListId": "string",
                              -  "dateSettingsDefaultBoardId": "string",
                              -  "dateSettingsDefaultListId": "string",
                              -  "allowsSubtasks": true,
                              -  "allowsAttachments": true,
                              -  "allowsChecklists": true,
                              -  "allowsComments": true,
                              -  "allowsDescriptionTitle": true,
                              -  "allowsDescriptionText": true,
                              -  "allowsDescriptionTextOnMinicard": true,
                              -  "allowsCoverAttachmentOnMinicard": true,
                              -  "allowsBadgeAttachmentOnMinicard": true,
                              -  "allowsCardSortingByNumberOnMinicard": true,
                              -  "allowsCardNumber": true,
                              -  "allowsActivities": true,
                              -  "allowsLabels": true,
                              -  "allowsCreator": true,
                              -  "allowsCreatorOnMinicard": true,
                              -  "allowsAssignee": true,
                              -  "allowsMembers": true,
                              -  "allowsRequestedBy": true,
                              -  "allowsCardSortingByNumber": true,
                              -  "allowsShowLists": true,
                              -  "allowsAssignedBy": true,
                              -  "allowsReceivedDate": true,
                              -  "allowsStartDate": true,
                              -  "allowsEndDate": true,
                              -  "allowsDueDate": true,
                              -  "presentParentTask": "prefix-with-full-path",
                              -  "receivedAt": "string",
                              -  "startAt": "string",
                              -  "dueAt": "string",
                              -  "endAt": "string",
                              -  "spentTime": 0,
                              -  "isOvertime": true,
                              -  "type": "board",
                              -  "sort": 0
                              +  "boardId": "string",
                              +  "cardId": "string",
                              +  "text": "string",
                              +  "createdAt": "string",
                              +  "modifiedAt": "string",
                              +  "userId": "string"
                               }
                               
                               
                              -

                              This is a Board.

                              +

                              A comment on a card

                              Properties

                              @@ -17865,871 +13744,6 @@ UserSecurity - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
                              titlestringtruenoneThe title of the board
                              slugstringtruenoneThe title slugified.
                              archivedbooleantruenoneIs the board archived?
                              archivedAtstring¦nullfalsenoneLatest archiving time of the board
                              createdAtstringtruenoneCreation time of the board
                              modifiedAtstring¦nullfalsenoneLast modification time of the board
                              starsnumbertruenoneHow many stars the board has
                              labels[BoardsLabels]¦nullfalsenoneList of labels attached to a board
                              members[BoardsMembers]truenoneList of members of a board
                              permissionstringtruenonevisibility of the board
                              orgs[BoardsOrgs]¦nullfalsenonethe list of organizations that a board belongs to
                              teams[BoardsTeams]¦nullfalsenonethe list of teams that a board belongs to
                              colorstringtruenoneThe color of the board.
                              backgroundImageURLstring¦nullfalsenoneThe background image URL of the board.
                              allowsCardCounterListbooleantruenoneShow card counter per list
                              allowsBoardMemberListbooleantruenoneShow board member list
                              descriptionstring¦nullfalsenoneThe description of the board
                              subtasksDefaultBoardIdstring¦nullfalsenoneThe default board ID assigned to subtasks.
                              subtasksDefaultListIdstring¦nullfalsenoneThe default List ID assigned to subtasks.
                              dateSettingsDefaultBoardIdstring¦nullfalsenonenone
                              dateSettingsDefaultListIdstring¦nullfalsenonenone
                              allowsSubtasksbooleantruenoneDoes the board allows subtasks?
                              allowsAttachmentsbooleantruenoneDoes the board allows attachments?
                              allowsChecklistsbooleantruenoneDoes the board allows checklists?
                              allowsCommentsbooleantruenoneDoes the board allows comments?
                              allowsDescriptionTitlebooleantruenoneDoes the board allows description title?
                              allowsDescriptionTextbooleantruenoneDoes the board allows description text?
                              allowsDescriptionTextOnMinicardbooleantruenoneDoes the board allows description text on minicard?
                              allowsCoverAttachmentOnMinicardbooleantruenoneDoes the board allows cover attachment on minicard?
                              allowsBadgeAttachmentOnMinicardbooleantruenoneDoes the board allows badge attachment on minicard?
                              allowsCardSortingByNumberOnMinicardbooleantruenoneDoes the board allows card sorting by number on minicard?
                              allowsCardNumberbooleantruenoneDoes the board allows card numbers?
                              allowsActivitiesbooleantruenoneDoes the board allows comments?
                              allowsLabelsbooleantruenoneDoes the board allows labels?
                              allowsCreatorbooleantruenoneDoes the board allow creator?
                              allowsCreatorOnMinicardbooleantruenoneDoes the board allow creator?
                              allowsAssigneebooleantruenoneDoes the board allows assignee?
                              allowsMembersbooleantruenoneDoes the board allows members?
                              allowsRequestedBybooleantruenoneDoes the board allows requested by?
                              allowsCardSortingByNumberbooleantruenoneDoes the board allows card sorting by number?
                              allowsShowListsbooleantruenoneDoes the board allows show lists on the card?
                              allowsAssignedBybooleantruenoneDoes the board allows requested by?
                              allowsReceivedDatebooleantruenoneDoes the board allows received date?
                              allowsStartDatebooleantruenoneDoes the board allows start date?
                              allowsEndDatebooleantruenoneDoes the board allows end date?
                              allowsDueDatebooleantruenoneDoes the board allows due date?
                              presentParentTaskstring¦nullfalsenoneControls how to present the parent task:

                              - prefix-with-full-path: add a prefix with the full path
                              - prefix-with-parent: add a prefisx with the parent name
                              - subtext-with-full-path: add a subtext with the full path
                              - subtext-with-parent: add a subtext with the parent name
                              - no-parent: does not show the parent at all
                              receivedAtstring¦nullfalsenoneDate the card was received
                              startAtstring¦nullfalsenoneStarting date of the board.
                              dueAtstring¦nullfalsenoneDue date of the board.
                              endAtstring¦nullfalsenoneEnd date of the board.
                              spentTimenumber¦nullfalsenoneTime spent in the board.
                              isOvertimeboolean¦nullfalsenoneIs the board overtimed?
                              typestringtruenoneThe type of board
                              possible values: board, template-board, template-container
                              sortnumbertruenoneSort value
                              -

                              Enumerated Values

                              - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
                              PropertyValue
                              permissionpublic
                              permissionprivate
                              colorbelize
                              colornephritis
                              colorpomegranate
                              colorpumpkin
                              colorwisteria
                              colormoderatepink
                              colorstrongcyan
                              colorlimegreen
                              colormidnight
                              colordark
                              colorrelax
                              colorcorteza
                              colorclearblue
                              colornatural
                              colormodern
                              colormoderndark
                              colorexodark
                              colorcleandark
                              colorcleanlight
                              presentParentTaskprefix-with-full-path
                              presentParentTaskprefix-with-parent
                              presentParentTasksubtext-with-full-path
                              presentParentTasksubtext-with-parent
                              presentParentTaskno-parent
                              typeboard
                              typetemplate-board
                              typetemplate-container
                              -

                              BoardsLabels

                              -

                              - - -

                              -
                              {
                              -  "_id": "string",
                              -  "name": "string",
                              -  "color": "white"
                              -}
                              -
                              -
                              -

                              Properties

                              - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
                              NameTypeRequiredRestrictionsDescription
                              _idstringtruenoneUnique id of a label
                              namestringfalsenoneName of a label
                              colorstringtruenonecolor of a label.

                              Can be amongst green, yellow, orange, red, purple,
                              blue, sky, lime, pink, black,
                              silver, peachpuff, crimson, plum, darkgreen,
                              slateblue, magenta, gold, navy, gray,
                              saddlebrown, paleturquoise, mistyrose, indigo
                              -

                              Enumerated Values

                              - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
                              PropertyValue
                              colorwhite
                              colorgreen
                              coloryellow
                              colororange
                              colorred
                              colorpurple
                              colorblue
                              colorsky
                              colorlime
                              colorpink
                              colorblack
                              colorsilver
                              colorpeachpuff
                              colorcrimson
                              colorplum
                              colordarkgreen
                              colorslateblue
                              colormagenta
                              colorgold
                              colornavy
                              colorgray
                              colorsaddlebrown
                              colorpaleturquoise
                              colormistyrose
                              colorindigo
                              -

                              BoardsMembers

                              -

                              - - -

                              -
                              {
                              -  "userId": "string",
                              -  "isAdmin": true,
                              -  "isActive": true,
                              -  "isNoComments": true,
                              -  "isCommentOnly": true,
                              -  "isWorker": true
                              -}
                              -
                              -
                              -

                              Properties

                              - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
                              NameTypeRequiredRestrictionsDescription
                              userIdstringtruenoneThe uniq ID of the member
                              isAdminbooleantruenoneIs the member an admin of the board?
                              isActivebooleantruenoneIs the member active?
                              isNoCommentsbooleanfalsenoneIs the member not allowed to make comments
                              isCommentOnlybooleanfalsenoneIs the member only allowed to comment on the board
                              isWorkerbooleanfalsenoneIs the member only allowed to move card, assign himself to card and comment
                              -

                              BoardsOrgs

                              -

                              - - -

                              -
                              {
                              -  "orgId": "string",
                              -  "orgDisplayName": "string",
                              -  "isActive": true
                              -}
                              -
                              -
                              -

                              Properties

                              - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
                              NameTypeRequiredRestrictionsDescription
                              orgIdstringtruenoneThe uniq ID of the organization
                              orgDisplayNamestringtruenoneThe display name of the organization
                              isActivebooleantruenoneIs the organization active?
                              -

                              BoardsTeams

                              -

                              - - -

                              -
                              {
                              -  "teamId": "string",
                              -  "teamDisplayName": "string",
                              -  "isActive": true
                              -}
                              -
                              -
                              -

                              Properties

                              - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
                              NameTypeRequiredRestrictionsDescription
                              teamIdstringtruenoneThe uniq ID of the team
                              teamDisplayNamestringtruenoneThe display name of the team
                              isActivebooleantruenoneIs the team active?
                              -

                              CardComments

                              -

                              - - -

                              -
                              {
                              -  "boardId": "string",
                              -  "cardId": "string",
                              -  "text": "string",
                              -  "createdAt": "string",
                              -  "modifiedAt": "string",
                              -  "userId": "string"
                              -}
                              -
                              -
                              -

                              A comment on a card

                              -

                              Properties

                              - - - - - - - - - - - - @@ -18773,112 +13787,111 @@ UserSecurity
                              NameTypeRequiredRestrictionsDescription
                              boardId string true
                              -

                              Cards

                              -

                              - - -

                              +

                              Cards

                              +

                              {
                              -  "title": "string",
                              -  "archived": true,
                              -  "archivedAt": "string",
                              -  "parentId": "string",
                              -  "listId": "string",
                              -  "swimlaneId": "string",
                              -  "boardId": "string",
                              -  "coverId": "string",
                              -  "color": "white",
                              -  "createdAt": "string",
                              -  "modifiedAt": "string",
                              -  "customFields": [
                              +  "title": "string",
                              +  "archived": true,
                              +  "archivedAt": "string",
                              +  "parentId": "string",
                              +  "listId": "string",
                              +  "swimlaneId": "string",
                              +  "boardId": "string",
                              +  "coverId": "string",
                              +  "color": "white",
                              +  "createdAt": "string",
                              +  "modifiedAt": "string",
                              +  "customFields": [
                                   {}
                                 ],
                              -  "dateLastActivity": "string",
                              -  "description": "string",
                              -  "requestedBy": "string",
                              -  "assignedBy": "string",
                              -  "labelIds": [
                              -    "string"
                              +  "dateLastActivity": "string",
                              +  "description": "string",
                              +  "requestedBy": "string",
                              +  "assignedBy": "string",
                              +  "labelIds": [
                              +    "string"
                                 ],
                              -  "members": [
                              -    "string"
                              +  "members": [
                              +    "string"
                                 ],
                              -  "assignees": [
                              -    "string"
                              +  "assignees": [
                              +    "string"
                                 ],
                              -  "receivedAt": "string",
                              -  "startAt": "string",
                              -  "dueAt": "string",
                              -  "endAt": "string",
                              -  "spentTime": 0,
                              -  "isOvertime": true,
                              -  "userId": "string",
                              -  "sort": 0,
                              -  "subtaskSort": 0,
                              -  "type": "string",
                              -  "linkedId": "string",
                              -  "vote": {
                              -    "question": "string",
                              -    "positive": [
                              -      "string"
                              +  "receivedAt": "string",
                              +  "startAt": "string",
                              +  "dueAt": "string",
                              +  "endAt": "string",
                              +  "spentTime": 0,
                              +  "isOvertime": true,
                              +  "userId": "string",
                              +  "sort": 0,
                              +  "subtaskSort": 0,
                              +  "type": "string",
                              +  "linkedId": "string",
                              +  "vote": {
                              +    "question": "string",
                              +    "positive": [
                              +      "string"
                                   ],
                              -    "negative": [
                              -      "string"
                              +    "negative": [
                              +      "string"
                                   ],
                              -    "end": "string",
                              -    "public": true,
                              -    "allowNonBoardMembers": true
                              +    "end": "string",
                              +    "public": true,
                              +    "allowNonBoardMembers": true
                                 },
                              -  "poker": {
                              -    "question": true,
                              -    "one": [
                              -      "string"
                              +  "poker": {
                              +    "question": true,
                              +    "one": [
                              +      "string"
                                   ],
                              -    "two": [
                              -      "string"
                              +    "two": [
                              +      "string"
                                   ],
                              -    "three": [
                              -      "string"
                              +    "three": [
                              +      "string"
                                   ],
                              -    "five": [
                              -      "string"
                              +    "five": [
                              +      "string"
                                   ],
                              -    "eight": [
                              -      "string"
                              +    "eight": [
                              +      "string"
                                   ],
                              -    "thirteen": [
                              -      "string"
                              +    "thirteen": [
                              +      "string"
                                   ],
                              -    "twenty": [
                              -      "string"
                              +    "twenty": [
                              +      "string"
                                   ],
                              -    "forty": [
                              -      "string"
                              +    "forty": [
                              +      "string"
                                   ],
                              -    "oneHundred": [
                              -      "string"
                              +    "oneHundred": [
                              +      "string"
                                   ],
                              -    "unsure": [
                              -      "string"
                              +    "unsure": [
                              +      "string"
                                   ],
                              -    "end": "string",
                              -    "allowNonBoardMembers": true,
                              -    "estimation": 0
                              +    "end": "string",
                              +    "allowNonBoardMembers": true,
                              +    "estimation": 0
                                 },
                              -  "targetId_gantt": [
                              -    "string"
                              +  "targetId_gantt": [
                              +    "string"
                                 ],
                              -  "linkType_gantt": [
                              +  "linkType_gantt": [
                                   0
                                 ],
                              -  "linkId_gantt": [
                              -    "string"
                              +  "linkId_gantt": [
                              +    "string"
                                 ],
                              -  "cardNumber": 0
                              +  "cardNumber": 0,
                              +  "showActivities": true,
                              +  "hideFinishedChecklistIfItemsAreHidden": true
                               }
                               
                               
                              -

                              Properties

                              +

                              Properties

                              @@ -18892,7 +13905,7 @@ UserSecurity - + @@ -18906,21 +13919,21 @@ UserSecurity - + - + - + @@ -18934,21 +13947,21 @@ UserSecurity - + - + - + @@ -18969,7 +13982,7 @@ UserSecurity - + @@ -18983,84 +13996,84 @@ UserSecurity - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -19074,14 +14087,14 @@ UserSecurity - + - + @@ -19095,7 +14108,7 @@ UserSecurity - + @@ -19105,46 +14118,60 @@ UserSecurity - + - + - + - + - + - + - + + + + + + + + + + + + + + +
                              titlestring¦nullstring|null false none the title of the card
                              archivedAtstring¦nullstring|null false none latest archiving date
                              parentIdstring¦nullstring|null false none ID of the parent card
                              listIdstring¦nullstring|null false none List ID where the card is
                              boardIdstring¦nullstring|null false none Board ID of the card
                              coverIdstring¦nullstring|null false none Cover ID of the card
                              colorstring¦nullstring|null false none none
                              customFields[CardsCustomfields]¦null[CardsCustomfields]|null false none list of custom fields
                              descriptionstring¦nullstring|null false none description of the card
                              requestedBystring¦nullstring|null false none who requested the card (ID of the user)
                              assignedBystring¦nullstring|null false none who assigned the card (ID of the user)
                              labelIds[string]¦null[string]|null false none list of labels ID the card has
                              members[string]¦null[string]|null false none list of members (user IDs)
                              assignees[string]¦null[string]|null false nonewho is assignee of the card (user ID),
                              maximum one ID of assignee in array.
                              who is assignee of the card (user ID), maximum one ID of assignee in array.
                              receivedAtstring¦nullstring|null false none Date the card was received
                              startAtstring¦nullstring|null false none Date the card was started to be worked on
                              dueAtstring¦nullstring|null false none Date the card is due
                              endAtstring¦nullstring|null false none Date the card ended
                              spentTimenumber¦nullnumber|null false none How much time has been spent on this
                              isOvertimeboolean¦nullboolean|null false none is the card over time?
                              sortnumber¦nullnumber|null false none Sort value
                              subtaskSortnumber¦nullnumber|null false none subtask sort value
                              linkedIdstring¦nullstring|null false none ID of the linked cardCardsVote false nonenonevote object, see below
                              poker CardsPoker false nonenonepoker object, see below
                              targetId_gantt[string]¦null[string]|null false none ID of card which is the child link in gantt view
                              linkType_gantt[number]¦null[number]|null false none ID of card which is the parent link in gantt view
                              linkId_gantt[string]¦null[string]|null false none ID of card which is the parent link in gantt view
                              cardNumbernumber¦nullnumber|null false noneA boardwise sequentially increasing number that is assigned
                              to every newly created card
                              A boardwise sequentially increasing number that is assigned to every newly created card
                              showActivitiesbooleantruenonenone
                              hideFinishedChecklistIfItemsAreHiddenboolean|nullfalsenonehide completed checklist?
                              -

                              Enumerated Values

                              +

                              Enumerated Values

                              @@ -19255,26 +14282,23 @@ UserSecurity
                              -

                              CardsVote

                              -

                              - - -

                              +

                              CardsVote

                              +

                              {
                              -  "question": "string",
                              -  "positive": [
                              -    "string"
                              +  "question": "string",
                              +  "positive": [
                              +    "string"
                                 ],
                              -  "negative": [
                              -    "string"
                              +  "negative": [
                              +    "string"
                                 ],
                              -  "end": "string",
                              -  "public": true,
                              -  "allowNonBoardMembers": true
                              +  "end": "string",
                              +  "public": true,
                              +  "allowNonBoardMembers": true
                               }
                               
                               
                              -

                              Properties

                              +

                              Properties

                              @@ -19330,50 +14354,47 @@ UserSecurity
                              -

                              CardsPoker

                              -

                              - - -

                              +

                              CardsPoker

                              +

                              {
                              -  "question": true,
                              -  "one": [
                              -    "string"
                              +  "question": true,
                              +  "one": [
                              +    "string"
                                 ],
                              -  "two": [
                              -    "string"
                              +  "two": [
                              +    "string"
                                 ],
                              -  "three": [
                              -    "string"
                              +  "three": [
                              +    "string"
                                 ],
                              -  "five": [
                              -    "string"
                              +  "five": [
                              +    "string"
                                 ],
                              -  "eight": [
                              -    "string"
                              +  "eight": [
                              +    "string"
                                 ],
                              -  "thirteen": [
                              -    "string"
                              +  "thirteen": [
                              +    "string"
                                 ],
                              -  "twenty": [
                              -    "string"
                              +  "twenty": [
                              +    "string"
                                 ],
                              -  "forty": [
                              -    "string"
                              +  "forty": [
                              +    "string"
                                 ],
                              -  "oneHundred": [
                              -    "string"
                              +  "oneHundred": [
                              +    "string"
                                 ],
                              -  "unsure": [
                              -    "string"
                              +  "unsure": [
                              +    "string"
                                 ],
                              -  "end": "string",
                              -  "allowNonBoardMembers": true,
                              -  "estimation": 0
                              +  "end": "string",
                              +  "allowNonBoardMembers": true,
                              +  "estimation": 0
                               }
                               
                               
                              -

                              Properties

                              +

                              Properties

                              @@ -19485,34 +14506,28 @@ UserSecurity
                              -

                              CardsCustomfields

                              -

                              - - -

                              +

                              CardsCustomfields

                              +

                              {}
                               
                               
                              -

                              Properties

                              +

                              Properties

                              None

                              -

                              ChecklistItems

                              -

                              - - -

                              +

                              ChecklistItems

                              +

                              {
                              -  "title": "string",
                              -  "sort": 0,
                              -  "isFinished": true,
                              -  "checklistId": "string",
                              -  "cardId": "string",
                              -  "createdAt": "string",
                              -  "modifiedAt": "string"
                              +  "title": "string",
                              +  "sort": 0,
                              +  "isFinished": true,
                              +  "checklistId": "string",
                              +  "cardId": "string",
                              +  "createdAt": "string",
                              +  "modifiedAt": "string"
                               }
                               
                               
                              -

                              An item in a checklist

                              -

                              Properties

                              +

                              An item in a checklist

                              +

                              Properties

                              @@ -19561,7 +14576,7 @@ UserSecurity - + @@ -19575,24 +14590,22 @@ UserSecurity
                              createdAtstring¦nullstring|null false none none
                              -

                              Checklists

                              -

                              - - -

                              +

                              Checklists

                              +

                              {
                              -  "cardId": "string",
                              -  "title": "string",
                              -  "finishedAt": "string",
                              -  "showAtMinicard": true,
                              -  "createdAt": "string",
                              -  "modifiedAt": "string",
                              -  "sort": 0
                              +  "cardId": "string",
                              +  "title": "string",
                              +  "finishedAt": "string",
                              +  "createdAt": "string",
                              +  "modifiedAt": "string",
                              +  "sort": 0,
                              +  "hideCheckedChecklistItems": true,
                              +  "hideAllChecklistItems": true
                               }
                               
                               
                              -

                              A Checklist

                              -

                              Properties

                              +

                              A Checklist

                              +

                              Properties

                              @@ -19620,19 +14633,12 @@ UserSecurity - + - - - - - - - @@ -19653,39 +14659,50 @@ UserSecurity + + + + + + + + + + + + + +
                              finishedAtstring¦nullstring|null false none When was the checklist finished
                              showAtMinicardboolean¦nullfalsenoneShow at minicard. Default: false.
                              createdAt string truenone sorting value of the checklist
                              hideCheckedChecklistItemsboolean|nullfalsenonehide the checked checklist-items?
                              hideAllChecklistItemsboolean|nullfalsenonehide all checklist items ?
                              -

                              CustomFields

                              -

                              - - -

                              +

                              CustomFields

                              +

                              {
                              -  "boardIds": [
                              -    "string"
                              +  "boardIds": [
                              +    "string"
                                 ],
                              -  "name": "string",
                              -  "type": "text",
                              -  "settings": {
                              -    "currencyCode": "string",
                              -    "dropdownItems": [
                              +  "name": "string",
                              +  "type": "text",
                              +  "settings": {
                              +    "currencyCode": "string",
                              +    "dropdownItems": [
                                     {}
                                   ],
                              -    "stringtemplateFormat": "string",
                              -    "stringtemplateSeparator": "string"
                              +    "stringtemplateFormat": "string",
                              +    "stringtemplateSeparator": "string"
                                 },
                              -  "showOnCard": true,
                              -  "automaticallyOnCard": true,
                              -  "alwaysOnCard": true,
                              -  "showLabelOnMiniCard": true,
                              -  "showSumAtTopOfList": true,
                              -  "createdAt": "string",
                              -  "modifiedAt": "string"
                              +  "showOnCard": true,
                              +  "automaticallyOnCard": true,
                              +  "alwaysOnCard": true,
                              +  "showLabelOnMiniCard": true,
                              +  "showSumAtTopOfList": true,
                              +  "createdAt": "string",
                              +  "modifiedAt": "string"
                               }
                               
                               
                              -

                              A custom field on a card in the board

                              -

                              Properties

                              +

                              A custom field on a card in the board

                              +

                              Properties

                              @@ -19723,7 +14740,7 @@ UserSecurity - + @@ -19762,7 +14779,7 @@ UserSecurity - + @@ -19776,7 +14793,7 @@ UserSecurity
                              CustomFieldsSettings true nonenonesettings of the custom field
                              showOnCard
                              createdAtstring¦nullstring|null false none none
                              -

                              Enumerated Values

                              +

                              Enumerated Values

                              @@ -19815,22 +14832,19 @@ UserSecurity
                              -

                              CustomFieldsSettings

                              -

                              - - -

                              +

                              CustomFieldsSettings

                              +

                              {
                              -  "currencyCode": "string",
                              -  "dropdownItems": [
                              +  "currencyCode": "string",
                              +  "dropdownItems": [
                                   {}
                                 ],
                              -  "stringtemplateFormat": "string",
                              -  "stringtemplateSeparator": "string"
                              +  "stringtemplateFormat": "string",
                              +  "stringtemplateSeparator": "string"
                               }
                               
                               
                              -

                              Properties

                              +

                              Properties

                              @@ -19872,39 +14886,33 @@ UserSecurity
                              -

                              CustomFieldsSettingsDropdownitems

                              -

                              - - -

                              +

                              CustomFieldsSettingsDropdownitems

                              +

                              {}
                               
                               
                              -

                              Properties

                              +

                              Properties

                              None

                              -

                              Integrations

                              -

                              - - -

                              +

                              Integrations

                              +

                              {
                              -  "enabled": true,
                              -  "title": "string",
                              -  "type": "string",
                              -  "activities": [
                              -    "string"
                              +  "enabled": true,
                              +  "title": "string",
                              +  "type": "string",
                              +  "activities": [
                              +    "string"
                                 ],
                              -  "url": "string",
                              -  "token": "string",
                              -  "boardId": "string",
                              -  "createdAt": "string",
                              -  "modifiedAt": "string",
                              -  "userId": "string"
                              +  "url": "string",
                              +  "token": "string",
                              +  "boardId": "string",
                              +  "createdAt": "string",
                              +  "modifiedAt": "string",
                              +  "userId": "string"
                               }
                               
                               
                              -

                              Integration with third-party applications

                              -

                              Properties

                              +

                              Integration with third-party applications

                              +

                              Properties

                              @@ -19925,7 +14933,7 @@ UserSecurity - + @@ -19953,7 +14961,7 @@ UserSecurity - + @@ -19988,35 +14996,32 @@ UserSecurity
                              titlestring¦nullstring|null false none name of the integration
                              tokenstring¦nullstring|null false none token of the integration
                              -

                              Lists

                              -

                              - - -

                              +

                              Lists

                              +

                              {
                              -  "title": "string",
                              -  "starred": true,
                              -  "archived": true,
                              -  "archivedAt": "string",
                              -  "boardId": "string",
                              -  "swimlaneId": "string",
                              -  "createdAt": "string",
                              -  "sort": 0,
                              -  "updatedAt": "string",
                              -  "modifiedAt": "string",
                              -  "wipLimit": {
                              -    "value": 0,
                              -    "enabled": true,
                              -    "soft": true
                              +  "title": "string",
                              +  "starred": true,
                              +  "archived": true,
                              +  "archivedAt": "string",
                              +  "boardId": "string",
                              +  "swimlaneId": "string",
                              +  "createdAt": "string",
                              +  "sort": 0,
                              +  "updatedAt": "string",
                              +  "modifiedAt": "string",
                              +  "wipLimit": {
                              +    "value": 0,
                              +    "enabled": true,
                              +    "soft": true
                                 },
                              -  "color": "white",
                              -  "type": "string",
                              -  "collapsed": true
                              +  "color": "white",
                              +  "type": "string",
                              +  "collapsed": true
                               }
                               
                               
                              -

                              A list (column) in the Wekan board.

                              -

                              Properties

                              +

                              A list (column) in the Wekan board.

                              +

                              Properties

                              @@ -20037,10 +15042,10 @@ UserSecurity - + - + @@ -20051,7 +15056,7 @@ UserSecurity - + @@ -20079,14 +15084,14 @@ UserSecurity - + - + @@ -20103,11 +15108,11 @@ UserSecurity - + - + @@ -20128,7 +15133,7 @@ UserSecurity
                              starredboolean¦nullboolean|null false noneif a list is stared
                              then we put it on the top
                              if a list is stared then we put it on the top
                              archived
                              archivedAtstring¦nullstring|null false none latest archiving date
                              sortnumber¦nullnumber|null false none is the list sorted
                              updatedAtstring¦nullstring|null false none last update of the listListsWiplimit false nonenoneWIP object, see below
                              colorstring¦nullstring|null false none the color of the list
                              -

                              Enumerated Values

                              +

                              Enumerated Values

                              @@ -20239,19 +15244,16 @@ UserSecurity
                              -

                              ListsWiplimit

                              -

                              - - -

                              +

                              ListsWiplimit

                              +

                              {
                              -  "value": 0,
                              -  "enabled": true,
                              -  "soft": true
                              +  "value": 0,
                              +  "enabled": true,
                              +  "soft": true
                               }
                               
                               
                              -

                              Properties

                              +

                              Properties

                              @@ -20286,28 +15288,25 @@ UserSecurity
                              -

                              Swimlanes

                              -

                              - - -

                              +

                              Swimlanes

                              +

                              {
                              -  "title": "string",
                              -  "archived": true,
                              -  "archivedAt": "string",
                              -  "boardId": "string",
                              -  "createdAt": "string",
                              -  "sort": 0,
                              -  "color": "white",
                              -  "updatedAt": "string",
                              -  "modifiedAt": "string",
                              -  "type": "string",
                              -  "collapsed": true
                              +  "title": "string",
                              +  "archived": true,
                              +  "archivedAt": "string",
                              +  "boardId": "string",
                              +  "createdAt": "string",
                              +  "sort": 0,
                              +  "color": "white",
                              +  "updatedAt": "string",
                              +  "modifiedAt": "string",
                              +  "type": "string",
                              +  "collapsed": true
                               }
                               
                               
                              -

                              A swimlane is an line in the kaban board.

                              -

                              Properties

                              +

                              A swimlane is an line in the kaban board.

                              +

                              Properties

                              @@ -20335,7 +15334,7 @@ UserSecurity - + @@ -20356,21 +15355,21 @@ UserSecurity - + - + - + @@ -20398,7 +15397,7 @@ UserSecurity
                              archivedAtstring¦nullstring|null false none latest archiving date of the swimlane
                              sortnumber¦nullnumber|null false none the sort value of the swimlane
                              colorstring¦nullstring|null false none the color of the swimlane
                              updatedAtstring¦nullstring|null false none when was the swimlane last edited
                              -

                              Enumerated Values

                              +

                              Enumerated Values

                              @@ -20509,27 +15508,7 @@ UserSecurity
                              - - - - - - - - - - - - - - - - - - - - - +
        @@ -20567,10 +15546,6 @@ UserSecurity Go - - PHP - -
      diff --git a/releases/rebuild-docs.sh b/releases/rebuild-docs.sh index 273422723..5121a66e1 100755 --- a/releases/rebuild-docs.sh +++ b/releases/rebuild-docs.sh @@ -15,7 +15,8 @@ fi if [ ! -d ~/python/esprima-python ]; then sudo apt-get -y install python3-pip python3-swagger-spec-validator python3-wheel python3-setuptools - sudo npm install -g api2html + # Install older version of api2html that works with Node.js 14 + sudo npm install -g api2html@0.3.0 || sudo npm install -g swagger-ui-watcher (mkdir -p ~/python && cd ~/python && git clone --depth 1 -b master https://github.com/Kronuz/esprima-python) (cd ~/python/esprima-python && git fetch origin pull/20/head:delete_fix && git checkout delete_fix && sudo python3 setup.py install --record files.txt) #(cd ~/python/esprima-python && git fetch origin pull/20/head:delete_fix && git checkout delete_fix && sudo pip3 install .) @@ -38,10 +39,11 @@ if [ ! -d public/api ]; then mkdir -p public/api fi -# 4) Generate docs. -#python3 ./openapi/generate_openapi.py --release $(git describe --tags --abbrev=0) > ./public/api/wekan.yml +# 4) Generate docs with api2html or fallback to swagger-ui-watcher python3 ./openapi/generate_openapi.py --release v$1 > ./public/api/wekan.yml -api2html -c ./public/logo-header.png -o ./public/api/wekan.html ./public/api/wekan.yml +if ! api2html -c ./public/logo-header.png -o ./public/api/wekan.html ./public/api/wekan.yml; then + swagger-ui-watcher ./public/api/wekan.yml -p 8080 +fi # Copy docs to bundle #cp -pR ./public/api ~/repos/wekan/.build/bundle/programs/web.browser/app/ From 14070599376311e795fa4c83b27f891d6490294b Mon Sep 17 00:00:00 2001 From: Lauri Ojansivu Date: Sat, 15 Mar 2025 19:33:49 +0200 Subject: [PATCH 49/65] Updated ChangeLog. --- CHANGELOG.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index b9d945e97..eec225e81 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -31,6 +31,8 @@ and fixes the following bugs: - [Fixed typo at Shortcuts, now became visible translations of assignees visibility 1-9 shortcuts](https://github.com/wekan/wekan/commit/4510ddda1507bc775b9523d3673adba48d7a8385). Thanks to xet7. +- [Fixed building OpenAPI docs](https://github.com/wekan/wekan/commit/a2911bc9c3bd94ef583388931d2cd354cc8657e3). + Thanks to xet7. Thanks to above GitHub users for their contributions and translators for their translations. From 8e7a5e8cb5c0b40fdb0505636492d4634a02ae82 Mon Sep 17 00:00:00 2001 From: Lauri Ojansivu Date: Sat, 15 Mar 2025 22:31:43 +0200 Subject: [PATCH 50/65] Updated translations. --- imports/i18n/data/eu.i18n.json | 14 +++++++------- imports/i18n/data/uk-UA.i18n.json | 6 +++--- imports/i18n/data/uk.i18n.json | 30 +++++++++++++++--------------- 3 files changed, 25 insertions(+), 25 deletions(-) diff --git a/imports/i18n/data/eu.i18n.json b/imports/i18n/data/eu.i18n.json index 1ef44f7d3..791c52b6e 100644 --- a/imports/i18n/data/eu.i18n.json +++ b/imports/i18n/data/eu.i18n.json @@ -90,8 +90,8 @@ "set-list-width": "Ezarri zabalerak", "set-list-width-value": "Ezarri gutxieneko eta gehieneko zabalerak (pixel)", "list-width-error-message": "Zerrenden zabalerak 100 baino handiagoak izan behar dira", - "keyboard-shortcuts-enabled": "Keyboard shortcuts enabled. Click to disable.", - "keyboard-shortcuts-disabled": "Keyboard shortcuts disabled. Click to enable.", + "keyboard-shortcuts-enabled": "Laster-teklak gaituta. Egin klik desgaitzeko.", + "keyboard-shortcuts-disabled": "Laster-teklak desgaituta. Egin klik gaitzeko.", "setSwimlaneHeightPopup-title": "Errailaren altuera ezarri", "set-swimlane-height": "Errailaren altuera ezarri", "set-swimlane-height-value": "Errailaren altuera (pixelak)", @@ -266,9 +266,9 @@ "checklists": "Kontrol-zerrendak", "click-to-star": "Egin klik arbel honi izarra jartzeko", "click-to-unstar": "Egin klik arbel honi izarra kentzeko", - "click-to-enable-auto-width": "Auto list width disabled. Click to enable.", - "click-to-disable-auto-width": "Auto list width enabled. Click to disable.", - "auto-list-width": "Auto list width", + "click-to-enable-auto-width": "Zerrenda zabalera automatikoa desgaituta dago. Egin klik gaitzeko.", + "click-to-disable-auto-width": "Zerrenda zabalera automatikoa gaituta dago. Egin klik desgaitzeko.", + "auto-list-width": "Zerrenda zabalera automatikoa", "clipboard": "Kopiatu eta itsatsi edo arrastatu eta jaregin", "close": "Itxi", "close-board": "Itxi arbela", @@ -383,7 +383,7 @@ "email-sent": "E-posta bidali da", "email-verifyEmail-subject": "Egiaztatu __siteName__ guneko zure e-posta helbidea.", "email-verifyEmail-text": "Kaixo __user__,\n\nZure e-posta kontua egiaztatzeko, egin klik beheko loturan.\n\n__url__\n\nEskerrik asko.", - "enable-vertical-scrollbars": "Enable vertical scrollbars", + "enable-vertical-scrollbars": "Gaitu korritze barra bertikalak", "enable-wip-limit": "WIP muga gaitu", "error-board-doesNotExist": "Arbel hau ez da existitzen", "error-board-notAdmin": "Arbel honetako kudeatzailea izan behar zara hori egin ahal izateko", @@ -1257,7 +1257,7 @@ "text": "Testua", "translation-text": "itzulpenaren testua", "show-subtasks-field": "azpi-zereginen eremua bezala", - "show-week-of-year": "Show week of year (ISO 8601)", + "show-week-of-year": "Erakutsi rrteko aste zenbakia (ISO 8601)", "convert-to-markdown": "Bihurtu markdown-era", "import-board-zip": "Gehitu taula JSON fitxategiak dituen .zip fitxategia eta eranskinak dituzten taularen izenen azpidirektorioak", "collapse": "Tolestu", diff --git a/imports/i18n/data/uk-UA.i18n.json b/imports/i18n/data/uk-UA.i18n.json index 6b1e8460c..8f94712ff 100644 --- a/imports/i18n/data/uk-UA.i18n.json +++ b/imports/i18n/data/uk-UA.i18n.json @@ -383,7 +383,7 @@ "email-sent": "Email відправлений", "email-verifyEmail-subject": "Підтвердіть вашу email адресу на __siteName__", "email-verifyEmail-text": "Привіт __user__,\n\nЩоб підтвердити ваш акаунт email, просто натисніть на посилання нижче.\n\n__url__\n\nДякуємо.", - "enable-vertical-scrollbars": "Enable vertical scrollbars", + "enable-vertical-scrollbars": "Увімкнути вертикальні скроллбари", "enable-wip-limit": "Увімкнути ліміт WIP", "error-board-doesNotExist": "Ця дошка не існує", "error-board-notAdmin": "Вам потрібно бути адміністратором цієї дошки, щоб зробити це", @@ -610,7 +610,7 @@ "has-spenttime-cards": "Має картки з витраченим часом", "time": "Час", "title": "Назва", - "toggle-assignees": "Toggle assignees 1-9 for card (By order of addition to board).", + "toggle-assignees": "Перемикання призначень 1-9 для картки (за порядком додавання на дошку)", "toggle-labels": "Перемкнути мітки 1-9 для картки. Мультивибір додає мітки 1-9", "remove-labels-multiselect": "Мультивибір видаляє мітки 1-9", "tracking": "Відстеження", @@ -1257,7 +1257,7 @@ "text": "Текст", "translation-text": "Перекласти текст", "show-subtasks-field": "Показати поле підзавдань", - "show-week-of-year": "Show week of year (ISO 8601)", + "show-week-of-year": "Показати тиждень року (ISO 8601)", "convert-to-markdown": "Конвертувати в Markdown", "import-board-zip": "Додати файл .zip, який містить файли JSON дошки та підкаталоги з назвами дошок і вкладеннями", "collapse": "Згорнути", diff --git a/imports/i18n/data/uk.i18n.json b/imports/i18n/data/uk.i18n.json index a3cfa1730..396f77407 100644 --- a/imports/i18n/data/uk.i18n.json +++ b/imports/i18n/data/uk.i18n.json @@ -86,12 +86,12 @@ "add-card": "Додати картку", "add-card-to-top-of-list": "Додати картку на початок списку", "add-card-to-bottom-of-list": "Додати картку у кінець списку", - "setListWidthPopup-title": "Set Widths", - "set-list-width": "Set Widths", - "set-list-width-value": "Set Min & Max Widths (pixels)", - "list-width-error-message": "List widths must be integers greater than 100", - "keyboard-shortcuts-enabled": "Keyboard shortcuts enabled. Click to disable.", - "keyboard-shortcuts-disabled": "Keyboard shortcuts disabled. Click to enable.", + "setListWidthPopup-title": "Встановити ширину", + "set-list-width": "Встановити ширину", + "set-list-width-value": "Встановити мін. та макс. ширину (у пікселях)", + "list-width-error-message": "Ширина списку має бути цілим числом, більшим за 100", + "keyboard-shortcuts-enabled": "Комбінації клавіш увімкнено. Натисніть, щоб вимкнути.", + "keyboard-shortcuts-disabled": "Комбінації клавіш вимкнено. Натисніть, щоб увімкнути.", "setSwimlaneHeightPopup-title": "Встановити довжину доріжки", "set-swimlane-height": "Встановити довжину доріжки", "set-swimlane-height-value": "Висота доріжки (у пікселях)", @@ -266,9 +266,9 @@ "checklists": "Контрольні списки", "click-to-star": "Натисніть, щоб відзначити цю дошку зірочкою.", "click-to-unstar": "Натисніть, щоб видалити зірочку з цієї дошки.", - "click-to-enable-auto-width": "Auto list width disabled. Click to enable.", - "click-to-disable-auto-width": "Auto list width enabled. Click to disable.", - "auto-list-width": "Auto list width", + "click-to-enable-auto-width": "Автоматична ширина списку вимкнена. Натисніть, щоб увімкнути.", + "click-to-disable-auto-width": "Автоматична ширина списку увімкнена. Натисніть, щоб вимкнути.", + "auto-list-width": "Автоматична ширина списку", "clipboard": "Буфер обміну або перетягнути і відпустити", "close": "Закрити", "close-board": "Закрити дошку", @@ -383,7 +383,7 @@ "email-sent": "Email відправлений", "email-verifyEmail-subject": "Підтвердіть вашу email адресу на __siteName__", "email-verifyEmail-text": "Привіт __user__,\n\nЩоб підтвердити ваш акаунт email, просто натисніть на посилання нижче.\n\n__url__\n\nДякуємо.", - "enable-vertical-scrollbars": "Enable vertical scrollbars", + "enable-vertical-scrollbars": "Увімкнути вертикальні скроллбари", "enable-wip-limit": "Увімкнути ліміт WIP", "error-board-doesNotExist": "Ця дошка не існує", "error-board-notAdmin": "Вам потрібно бути адміністратором цієї дошки, щоб зробити це", @@ -610,7 +610,7 @@ "has-spenttime-cards": "Має картки з витраченим часом", "time": "Час", "title": "Назва", - "toggle-assignees": "Toggle assignees 1-9 for card (By order of addition to board).", + "toggle-assignees": "Перемикання призначень 1-9 для картки (за порядком додавання на дошку)", "toggle-labels": "Перемкнути мітки 1-9 для картки. Мультивибір додає мітки 1-9", "remove-labels-multiselect": "Мультивибір видаляє мітки 1-9", "tracking": "Відстеження", @@ -1257,7 +1257,7 @@ "text": "Текст", "translation-text": "Перекласти текст", "show-subtasks-field": "Показати поле підзавдань", - "show-week-of-year": "Show week of year (ISO 8601)", + "show-week-of-year": "Показати тиждень року (ISO 8601)", "convert-to-markdown": "Конвертувати в Markdown", "import-board-zip": "Додати файл .zip, який містить файли JSON дошки та підкаталоги з назвами дошок і вкладеннями", "collapse": "Згорнути", @@ -1266,7 +1266,7 @@ "hideAllChecklistItems": "Приховати всі пункти чек-листа", "support": "Підтримка", "supportPopup-title": "Підтримка", - "accessibility-page-enabled": "Accessibility page enabled", - "accessibility-title": "Accessibility topic", - "accessibility-content": "Accessibility content" + "accessibility-page-enabled": "Увімкнено сторінку доступності", + "accessibility-title": "Тема доступності", + "accessibility-content": "Доступність контенту" } From 19153ca489c51b2fe51a50436ea8ec04566efc8e Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 17 Mar 2025 21:00:44 +0000 Subject: [PATCH 51/65] Bump docker/login-action from 3.3.0 to 3.4.0 Bumps [docker/login-action](https://github.com/docker/login-action) from 3.3.0 to 3.4.0. - [Release notes](https://github.com/docker/login-action/releases) - [Commits](https://github.com/docker/login-action/compare/9780b0c442fbb1117ed29e0efdff1e18412f7567...74a5d142397b4f367a81961eba4e8cd7edddf772) --- updated-dependencies: - dependency-name: docker/login-action dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- .github/workflows/docker-publish.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/docker-publish.yml b/.github/workflows/docker-publish.yml index 8b3e12d12..173603b2c 100644 --- a/.github/workflows/docker-publish.yml +++ b/.github/workflows/docker-publish.yml @@ -38,7 +38,7 @@ jobs: # https://github.com/docker/login-action - name: Log into registry ${{ env.REGISTRY }} if: github.event_name != 'pull_request' - uses: docker/login-action@9780b0c442fbb1117ed29e0efdff1e18412f7567 + uses: docker/login-action@74a5d142397b4f367a81961eba4e8cd7edddf772 with: registry: ${{ env.REGISTRY }} username: ${{ github.actor }} From bb6ac70f63b6f3568b7c943417c698615936a956 Mon Sep 17 00:00:00 2001 From: Lauri Ojansivu Date: Sat, 22 Mar 2025 21:26:41 +0200 Subject: [PATCH 52/65] Updated dependencies. Thanks to developers of dependencies ! --- package-lock.json | 6 +++--- package.json | 2 +- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/package-lock.json b/package-lock.json index 200421949..3adc42d3a 100644 --- a/package-lock.json +++ b/package-lock.json @@ -5,9 +5,9 @@ "requires": true, "dependencies": { "@babel/runtime": { - "version": "7.25.0", - "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.25.0.tgz", - "integrity": "sha512-7dRy4DwXwtzBrPbZflqxnvfxLF8kdZXPkhymtDeFoFqE6ldzjQFgYTtYIFARcLEYDrqfBfYcZt1WqFxRoyC9Rw==", + "version": "7.26.10", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.26.10.tgz", + "integrity": "sha512-2WJMeRQPHKSPemqk/awGrAiuFfzBmOIPXKizAsVhWH9YJqLZ0H+HS4c8loHGgW6utJ3E/ejXQUsiGaQy2NZ9Fw==", "requires": { "regenerator-runtime": "^0.14.0" } diff --git a/package.json b/package.json index 41d055f7d..dcfdaba2a 100644 --- a/package.json +++ b/package.json @@ -17,7 +17,7 @@ "sinon": "^13.0.2" }, "dependencies": { - "@babel/runtime": "^7.25.0", + "@babel/runtime": "^7.26.10", "@mapbox/node-pre-gyp": "^1.0.10", "@rwap/jquery-ui-touch-punch": "^1.0.11", "@wekanteam/dragscroll": "https://github.com/wekan/dragscroll.git", From d0c7bf65a4b0505883c5ed1e8e102c266c92f282 Mon Sep 17 00:00:00 2001 From: Lauri Ojansivu Date: Sat, 22 Mar 2025 21:30:53 +0200 Subject: [PATCH 53/65] Updated ChangeLog. --- CHANGELOG.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index eec225e81..2ab1ee57f 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -26,6 +26,10 @@ and adds the following updates: - [Added developer docs about Login code](https://github.com/wekan/wekan/commit/c0e4e01deb936653df69b4fd21598ac27cd349a0). Thanks to xet7. +- Updated dependencies. + [Part 1](https://github.com/wekan/wekan/pull/5718), + [Part 2](https://github.com/wekan/wekan/commit/bb6ac70f63b6f3568b7c943417c698615936a956). + Thanks to developers of dependencies. and fixes the following bugs: From ad3cc9c087d5916faa07653023dc19e82b738356 Mon Sep 17 00:00:00 2001 From: Lauri Ojansivu Date: Sat, 22 Mar 2025 21:39:15 +0200 Subject: [PATCH 54/65] Updated translations. --- imports/i18n/data/eo.i18n.json | 4 +- imports/i18n/data/es.i18n.json | 264 +++++++++++++++--------------- imports/i18n/data/ms-MY.i18n.json | 186 ++++++++++----------- 3 files changed, 227 insertions(+), 227 deletions(-) diff --git a/imports/i18n/data/eo.i18n.json b/imports/i18n/data/eo.i18n.json index 4d11696da..d55f385c1 100644 --- a/imports/i18n/data/eo.i18n.json +++ b/imports/i18n/data/eo.i18n.json @@ -300,7 +300,7 @@ "color-white": "white", "color-yellow": "flava", "unset-color": "Unset", - "comments": "Comments", + "comments": "Komentoj", "comment": "Komento", "comment-placeholder": "Write Comment", "comment-only": "Comment only", @@ -1253,7 +1253,7 @@ "newTranslationPopup-title": "New custom translation string", "editTranslationPopup-title": "Edit custom translation string", "settingsTranslationPopup-title": "Delete this custom translation string?", - "translation": "Translation", + "translation": "Traduko", "text": "Teksto", "translation-text": "Translation text", "show-subtasks-field": "Show subtasks field", diff --git a/imports/i18n/data/es.i18n.json b/imports/i18n/data/es.i18n.json index 88b6a4029..4f879845e 100644 --- a/imports/i18n/data/es.i18n.json +++ b/imports/i18n/data/es.i18n.json @@ -49,7 +49,7 @@ "activity-archived": "%s se ha archivado", "activity-attached": "adjuntado(s) %s a %s", "activity-created": "ha creado %s", - "activity-changedListTitle": "renamed list to %s", + "activity-changedListTitle": "lista renombrada como %s", "activity-customfield-created": "creó el campo personalizado %s", "activity-excluded": "ha excluido %s de %s", "activity-imported": "ha importado %s en %s desde %s", @@ -86,27 +86,27 @@ "add-card": "Añadir una tarjeta", "add-card-to-top-of-list": "Subir la tarjeta al principio de la lista", "add-card-to-bottom-of-list": "Bajar la tarjeta al final de la lista", - "setListWidthPopup-title": "Set Widths", - "set-list-width": "Set Widths", - "set-list-width-value": "Set Min & Max Widths (pixels)", - "list-width-error-message": "List widths must be integers greater than 100", - "keyboard-shortcuts-enabled": "Keyboard shortcuts enabled. Click to disable.", - "keyboard-shortcuts-disabled": "Keyboard shortcuts disabled. Click to enable.", - "setSwimlaneHeightPopup-title": "Set Swimlane Height", - "set-swimlane-height": "Set Swimlane Height", - "set-swimlane-height-value": "Swimlane Height (pixels)", - "swimlane-height-error-message": "Swimlane height must be a positive integer", + "setListWidthPopup-title": "Ajustar anchuras", + "set-list-width": "Ajustar anchuras", + "set-list-width-value": "Establecer anchos mín. y máx. (píxeles)", + "list-width-error-message": "Las anchuras de las listas deben ser enteros mayores de 100", + "keyboard-shortcuts-enabled": "Atajos de teclado habilitados. Haz clic para deshabilitarlos.", + "keyboard-shortcuts-disabled": "Atajos de teclado deshabilitados. Haz clic para habilitarlos.", + "setSwimlaneHeightPopup-title": "Ajustar la altura del carril", + "set-swimlane-height": "Ajustar la altura del carril", + "set-swimlane-height-value": "Altura de carril (píxeles)", + "swimlane-height-error-message": "La altura de carril debe ser un entero positivo", "add-swimlane": "Añadir un carril de flujo", "add-subtask": "Añadir subtarea", "add-checklist": "Añadir una lista de verificación", "add-checklist-item": "Añadir un elemento a la lista de verificación", - "close-add-checklist-item": "Close add an item to checklist form", - "close-edit-checklist-item": "Close edit an item to checklist form", + "close-add-checklist-item": "Cerrar el formulario para añadir un elemento a la lista de verificación", + "close-edit-checklist-item": "Cerrar el formulario de edición de un elemento de la lista de verificación", "convertChecklistItemToCardPopup-title": "Convertir en tarjeta", - "add-cover": "Add cover image to minicard", + "add-cover": "Añadir imagen de portada a la minitarjeta", "add-label": "Añadir una etiqueta", "add-list": "Añadir una lista", - "add-after-list": "Add After List", + "add-after-list": "Añadir después de la lista", "add-members": "Añadir miembros", "added": "Añadida el", "addMemberPopup-title": "Miembros", @@ -120,7 +120,7 @@ "and-n-other-card": "y __count__ tarjeta más", "and-n-other-card_plural": "y otras __count__ tarjetas", "apply": "Aplicar", - "app-is-offline": "Cargando, espera por favor. Refrescar esta página causará pérdida de datos. Si la carga no funciona, por favor comprueba que el servidor no se ha parado.", + "app-is-offline": "Cargando, espera por favor. Refrescar esta página causará la pérdida de datos. Si la carga no funciona, por favor comprueba que el servidor no se ha parado.", "app-try-reconnect": "Intente reconectar.", "archive": "Archivar", "archive-all": "Archivar todo", @@ -149,10 +149,10 @@ "avatar-too-big": "El avatar es demasiado grande (__size__ máx)", "back": "Atrás", "board-change-color": "Cambiar el color", - "board-change-background-image": "Change Background Image", - "board-background-image-url": "Background Image URL", - "add-background-image": "Add Background Image", - "remove-background-image": "Remove Background Image", + "board-change-background-image": "Cambiar imagen de fondo", + "board-background-image-url": "URL de la imagen de fondo", + "add-background-image": "Añadir imagen de fondo", + "remove-background-image": "Quitar imagen de fondo", "show-at-all-boards-page" : "Mostrar todos los tableros", "board-info-on-my-boards" : "Configuración de todos los tableros", "boardInfoOnMyBoardsPopup-title" : "Configuración de todos los tableros", @@ -163,11 +163,11 @@ "board-not-found": "Tablero no encontrado", "board-private-info": "Este tablero será privado.", "board-public-info": "Este tablero será público.", - "board-drag-drop-reorder-or-click-open": "Mueve y posiciona para reordenar los iconos de los tableros. Click en el icono del tablero para abrirlo", + "board-drag-drop-reorder-or-click-open": "Arrastra y suelta para reordenar los iconos del tablero. Click en el icono del tablero para abrirlo", "boardChangeColorPopup-title": "Cambiar el fondo del tablero", - "boardChangeBackgroundImagePopup-title": "Change Background Image", + "boardChangeBackgroundImagePopup-title": "Cambiar imagen de fondo", "allBoardsChangeColorPopup-title": "Cambiar el color", - "allBoardsChangeBackgroundImagePopup-title": "Change Background Image", + "allBoardsChangeBackgroundImagePopup-title": "Cambiar imagen de fondo", "boardChangeTitlePopup-title": "Renombrar el tablero", "boardChangeVisibilityPopup-title": "Cambiar visibilidad", "boardChangeWatchPopup-title": "Cambiar vigilancia", @@ -217,10 +217,10 @@ "vote-against": "contrarios", "deleteVotePopup-title": "¿Borrar voto?", "vote-delete-pop": "El Borrado es permanente. Perderá todas las acciones asociadas con este voto.", - "cardStartPlanningPokerPopup-title": "Comenzar una Planning Poker", - "card-edit-planning-poker": "Editar la planificación del Poker", - "editPokerEndDatePopup-title": "Cambiar la fecha final para la planificación del Poker", - "poker-question": "Planificación del Poker", + "cardStartPlanningPokerPopup-title": "Comenzar un Planning Poker", + "card-edit-planning-poker": "Editar el Planning Poker", + "editPokerEndDatePopup-title": "Cambiar la fecha final de voto del Planning Poker", + "poker-question": "Planning Poker", "poker-one": "1", "poker-two": "2", "poker-three": "3", @@ -236,8 +236,8 @@ "poker-result-who": "¿Quien?", "poker-replay": "Reproducir", "set-estimation": "Fijar estimación", - "deletePokerPopup-title": "¿Borrar el póquer de planificación?", - "poker-delete-pop": "El borrado es permanente. Perderás todas las acciones asociadas a este póker de planificación.", + "deletePokerPopup-title": "¿Borrar el Planning Poker?", + "poker-delete-pop": "El borrado es permanente. Perderás todas las acciones asociadas a este Planning Poker.", "cardDeletePopup-title": "¿Eliminar la tarjeta?", "cardArchivePopup-title": "¿Archivar tarjeta?", "cardDetailsActionsPopup-title": "Acciones de la tarjeta", @@ -266,9 +266,9 @@ "checklists": "Lista de verificación", "click-to-star": "Haz clic para destacar este tablero.", "click-to-unstar": "Haz clic para dejar de destacar este tablero.", - "click-to-enable-auto-width": "Auto list width disabled. Click to enable.", - "click-to-disable-auto-width": "Auto list width enabled. Click to disable.", - "auto-list-width": "Auto list width", + "click-to-enable-auto-width": "Ancho de lista automático deshabilitado. Haz clic para habilitarlo.", + "click-to-disable-auto-width": "Ancho de lista automático habilitado. Haz clic para deshabilitarlo.", + "auto-list-width": "Ancho de lista automático", "clipboard": "el portapapeles o con arrastrar y soltar", "close": "Cerrar", "close-board": "Cerrar el tablero", @@ -300,7 +300,7 @@ "color-white": "blanco", "color-yellow": "amarilla", "unset-color": "Desmarcar", - "comments": "Comments", + "comments": "Comentarios", "comment": "Comentar", "comment-placeholder": "Escribir comentario", "comment-only": "Sólo comentarios", @@ -313,7 +313,7 @@ "worker-desc": "Solo puede mover tarjetas, asignarse a la tarjeta y comentar.", "computer": "el ordenador", "confirm-subtask-delete-popup": "¿Seguro que quieres eliminar la subtarea?", - "confirm-checklist-delete-popup": "¿Está seguro de que quiere eliminar la lista de tareas?", + "confirm-checklist-delete-popup": "¿Está seguro de querer eliminar la lista de tareas?", "subtaskDeletePopup-title": "¿Borrar subtarea?", "checklistDeletePopup-title": "¿Borrar la lista de tareas?", "copy-card-link-to-clipboard": "Copiar el enlace de la tarjeta al portapapeles", @@ -338,7 +338,7 @@ "custom-field-date": "Fecha", "custom-field-dropdown": "Lista desplegable", "custom-field-dropdown-none": "(nada)", - "custom-field-dropdown-options": "Opciones de la lista", + "custom-field-dropdown-options": "Opciones de listas", "custom-field-dropdown-options-placeholder": "Pulsa Intro para añadir más opciones", "custom-field-dropdown-unknown": "(desconocido)", "custom-field-number": "Número", @@ -383,7 +383,7 @@ "email-sent": "Correo enviado", "email-verifyEmail-subject": "Verifica tu dirección de correo en __siteName__", "email-verifyEmail-text": "Hola __user__,\n\nPara verificar tu cuenta de correo electrónico, haz clic en el siguiente enlace.\n\n__url__\n\nGracias.", - "enable-vertical-scrollbars": "Enable vertical scrollbars", + "enable-vertical-scrollbars": "Habilitar barras de desplazamiento verticales", "enable-wip-limit": "Habilitar el límite del trabajo en proceso", "error-board-doesNotExist": "El tablero no existe", "error-board-notAdmin": "Es necesario ser administrador de este tablero para hacer eso", @@ -414,7 +414,7 @@ "sort": "Ordenar", "sorted": "Ordenado", "remove-sort": "Eliminar el ordenamiento", - "sort-desc": "Click para ordenar la lista", + "sort-desc": "Clic para ordenar la lista", "list-sort-by": "Ordenar la lista por:", "list-label-modifiedAt": "Hora de último acceso", "list-label-title": "Nombre de la lista", @@ -451,7 +451,7 @@ "advanced-filter-description": "El filtrado avanzado permite escribir una cadena que contiene los siguientes operadores: == != <= >= && || ( ) Se utiliza un espacio como separador entre los operadores. Se pueden filtrar todos los campos personalizados escribiendo sus nombres y valores. Por ejemplo: Campo1 == Valor1. Nota: Si los campos o valores contienen espacios, deben encapsularse entre comillas simples. Por ejemplo: 'Campo 1' == 'Valor 1'. Para omitir los caracteres de control único (' \\\\/), se usa \\\\. Por ejemplo: Campo1 = I\\\\'m. También se pueden combinar múltiples condiciones. Por ejemplo: C1 == V1 || C1 == V2. Normalmente todos los operadores se interpretan de izquierda a derecha. Se puede cambiar el orden colocando paréntesis. Por ejemplo: C1 == V1 && ( C2 == V2 || C2 == V3 ). También se puede buscar en campos de texto usando expresiones regulares: C1 == /Tes.*/i", "fullname": "Nombre completo", "header-logo-title": "Volver a tu página de tableros", - "show-activities": "Show Activities", + "show-activities": "Mostrar actividades", "headerBarCreateBoardPopup-title": "Crear tablero", "home": "Inicio", "import": "Importar", @@ -500,7 +500,7 @@ "list-move-cards": "Mover todas las tarjetas de esta lista", "list-select-cards": "Seleccionar todas las tarjetas de esta lista", "set-color-list": "Cambiar el color", - "listActionPopup-title": "Acciones de la lista", + "listActionPopup-title": "Acciones de listas", "settingsUserPopup-title": "Preferencias de usuario", "settingsTeamPopup-title": "Configuración del Equipo", "settingsOrgPopup-title": "Configuración de la Organización", @@ -510,7 +510,7 @@ "listImportCardsTsvPopup-title": "Importar CSV/TSV", "listMorePopup-title": "Más", "link-list": "Enlazar a esta lista", - "list-delete-pop": "Todas las acciones serán eliminadas del historial de actividades y no se podrá recuperar la lista. Esta acción no puede deshacerse.", + "list-delete-pop": "Se eliminarán todas las acciones del historial de actividades y no se podrá volver a abrir la lista. Esta acción no puede deshacerse.", "list-delete-suggest-archive": "Puedes mover una lista al Archivo para quitarla del tablero y preservar la actividad.", "lists": "Listas", "swimlanes": "Carriles", @@ -540,7 +540,7 @@ "normal": "Normal", "normal-desc": "Puedes ver y editar tarjetas. No puedes cambiar la configuración.", "not-accepted-yet": "La invitación no ha sido aceptada aún", - "notify-participate": "Receive updates to any cards you participate as creator or member", + "notify-participate": "Recibir actualizaciones de cualquier tarjeta en la que participes como creador o miembro", "notify-watch": "Recibir actuaizaciones de cualquier tablero, lista o tarjeta que estés vigilando", "optional": "opcional", "or": "o", @@ -558,7 +558,7 @@ "public": "Público", "public-desc": "Este tablero es público. Es visible para cualquiera a través del enlace, y se mostrará en los buscadores como Google. Sólo las personas añadidas al tablero pueden editarlo.", "quick-access-description": "Destaca un tablero para añadir un acceso directo en esta barra.", - "remove-cover": "Remove cover image from minicard", + "remove-cover": "Quitar imagen de portada de la minitarjeta", "remove-from-board": "Desvincular del tablero", "remove-label": "Eliminar la etiqueta", "listDeletePopup-title": "¿Eliminar la lista?", @@ -580,14 +580,14 @@ "select-board": "Seleccionar tablero", "set-wip-limit-value": "Cambiar el límite para el número máximo de tareas en esta lista.", "setWipLimitPopup-title": "Establecer el límite del trabajo en proceso", - "shortcut-add-self": "Add yourself to current card", + "shortcut-add-self": "Añadirte a ti mismo a la tarjeta actual", "shortcut-assign-self": "Asignarte a ti mismo a la tarjeta actual", "shortcut-autocomplete-emoji": "Autocompletar emoji", "shortcut-autocomplete-members": "Autocompletar miembros", "shortcut-clear-filters": "Limpiar todos los filtros", "shortcut-close-dialog": "Cerrar el cuadro de diálogo", "shortcut-filter-my-cards": "Filtrar mis tarjetas", - "shortcut-filter-my-assigned-cards": "Filter my assigned cards", + "shortcut-filter-my-assigned-cards": "Filtrar mis tarjetas asignadas", "shortcut-show-shortcuts": "Mostrar esta lista de atajos", "shortcut-toggle-filterbar": "Conmutar la barra lateral del filtro", "shortcut-toggle-searchbar": "Conmutar la barra lateral de búsqueda", @@ -604,13 +604,13 @@ "this-board": "este tablero", "this-card": "esta tarjeta", "spent-time-hours": "Tiempo consumido (horas)", - "overtime-hours": "Tiempo excesivo (horas)", + "overtime-hours": "Horas extras", "overtime": "Tiempo excesivo", "has-overtime-cards": "Hay tarjetas con el tiempo excedido", "has-spenttime-cards": "Se ha excedido el tiempo de las tarjetas", "time": "Hora", "title": "Título", - "toggle-assignees": "Toggle assignees 1-9 for card (By order of addition to board).", + "toggle-assignees": "Alternar asignados 1-9 para la tarjeta (por orden de adición al tablero).", "toggle-labels": "Alterna las etiquetas 1-9 para la tarjeta. La selección múltiple añade las etiquetas 1-9", "remove-labels-multiselect": "La selección múltiple elimina las etiquetas 1-9", "tracking": "Siguiendo", @@ -624,12 +624,12 @@ "uploaded-avatar": "Avatar cargado", "custom-top-left-corner-logo-image-url": "Personalizar la URL del logotipo en la esquina superior izquierda", "custom-top-left-corner-logo-link-url": "Personalizar el enlace del logotipo de la esquina superior izquierda", - "custom-top-left-corner-logo-height": "Custom Top Left Corner Logo Height. Default: 27", + "custom-top-left-corner-logo-height": "Altura personalizada del logo de la esquina superior izquierda. Por defecto: 27", "custom-login-logo-image-url": "Custom Login Logo Image URL", "custom-login-logo-link-url": "Custom Login Logo Link URL", - "custom-help-link-url": "Custom Help Link URL", + "custom-help-link-url": "Enlace URL de ayuda personalizada", "text-below-custom-login-logo": "Text below Custom Login Logo", - "automatic-linked-url-schemes": "Custom URL Schemes which should automatically be clickable. One URL Scheme per line", + "automatic-linked-url-schemes": "Esquemas de URL personalizados que deberían ser clicables automáticamente. Un esquema de URL por línea.", "username": "Nombre de usuario", "import-usernames": "Importar Usuarios", "view-it": "Verla", @@ -656,7 +656,7 @@ "disable-forgot-password": "Disable Forgot Password", "invite": "Invitar", "invite-people": "Invitar a personas", - "to-boards": "A el(los) tablero(s)", + "to-boards": "Al (A los) tablero(s)", "email-addresses": "Direcciones de correo electrónico", "smtp-host-description": "Dirección del servidor SMTP para gestionar tus correos", "smtp-port-description": "Puerto usado por el servidor SMTP para mandar correos", @@ -731,7 +731,7 @@ "setListColorPopup-title": "Elegir un color", "assigned-by": "Asignado por", "requested-by": "Solicitado por", - "card-sorting-by-number": "Card sorting by number", + "card-sorting-by-number": "Orden de tarjetas por número", "board-delete-notice": "Se eliminarán todas las listas, tarjetas y acciones asociadas a este tablero. Esta acción no puede deshacerse.", "delete-board-confirm-popup": "Se eliminarán todas las listas, tarjetas, etiquetas y actividades, y no podrás recuperar los contenidos del tablero. Esta acción no puede deshacerse.", "boardDeletePopup-title": "¿Eliminar el tablero?", @@ -742,7 +742,7 @@ "queue": "Cola", "subtask-settings": "Preferencias de las subtareas", "card-settings": "Preferencias de la tarjeta", - "minicard-settings": "Minicard Settings", + "minicard-settings": "Configuración de minitarjeta", "boardSubtaskSettingsPopup-title": "Preferencias de las subtareas del tablero", "boardCardSettingsPopup-title": "Preferencias de la tarjeta", "boardMinicardSettingsPopup-title": "Minicard Settings", @@ -750,9 +750,9 @@ "deposit-subtasks-list": "Lista de destino para subtareas depositadas aquí:", "show-parent-in-minicard": "Mostrar el padre en una minitarjeta:", "description-on-minicard": "Description on minicard", - "cover-attachment-on-minicard": "Cover image on minicard", - "badge-attachment-on-minicard": "Count of attachments on minicard", - "card-sorting-by-number-on-minicard": "Card sorting by number on minicard", + "cover-attachment-on-minicard": "Imagen de portada de la minitarjeta", + "badge-attachment-on-minicard": "Contador de adjuntos en la minitarjeta", + "card-sorting-by-number-on-minicard": "Orden de tarjetas por número de minitarjeta", "prefix-with-full-path": "Prefijo con ruta completa", "prefix-with-parent": "Prefijo con el padre", "subtext-with-full-path": "Subtexto con ruta completa", @@ -786,7 +786,7 @@ "r-added-to": "Añadido a", "r-removed-from": "eliminado de", "r-the-board": "el tablero", - "r-list": "la lista", + "r-list": "lista", "set-filter": "Filtrar", "r-moved-to": "Movido a", "r-moved-from": "Movido desde", @@ -861,12 +861,12 @@ "r-d-remove-checklist": "Eliminar lista de verificación", "r-by": "por", "r-add-checklist": "Añadir una lista de verificación", - "r-with-items": "con items", + "r-with-items": "con elementos", "r-items-list": "item1,item2,item3", "r-add-swimlane": "Agregar el carril", "r-swimlane-name": "nombre del carril", "r-board-note": "Nota: deje un campo vacío para que coincida con todos los valores posibles", - "r-checklist-note": "Nota: los ítems de la lista tienen que escribirse como valores separados por coma.", + "r-checklist-note": "Nota: los elementos de la lista tienen que escribirse como valores separados por coma.", "r-when-a-card-is-moved": "Cuando una tarjeta es movida a otra lista", "r-set": "Cambiar", "r-update": "Actualizar", @@ -877,7 +877,7 @@ "r-df-received-at": "recibido", "r-to-current-datetime": "a la fecha/hora actual", "r-remove-value-from": "Eliminar el valor de", - "r-link-card": "Link card to", + "r-link-card": "Enlazar tarjeta a", "ldap": "LDAP", "oauth2": "OAuth2", "cas": "CAS", @@ -890,7 +890,7 @@ "hide-board-member-list": "Hide board member list on All Boards", "add-custom-html-after-body-start": "Añade HTML personalizado después de ", "add-custom-html-before-body-end": "Añade HTML personalizado después de ", - "error-undefined": "Algo no está bien", + "error-undefined": "Algo ha salido mal", "error-ldap-login": "Ocurrió un error al intentar acceder", "display-authentication-method": "Mostrar el método de autenticación", "oidc-button-text": "Customize the OIDC button text", @@ -916,15 +916,15 @@ "almostdue": "está próxima la hora de vencimiento actual %s", "pastdue": "se sobrepasó la hora de vencimiento actual%s", "duenow": "la hora de vencimiento actual %s es hoy", - "act-newDue": "__list__/__card__ tiene una 1ra notificación de vencimiento [__board__]", + "act-newDue": "__list__/__card__ tiene una primera notificación de vencimiento [__board__]", "act-withDue": "__list__/__card__ notificaciones de vencimiento [__board__]", "act-almostdue": "se ha notificado que el vencimiento actual (__timeValue__) de __card__ está próximo", "act-pastdue": "se ha notificado que el vencimiento actual (__timeValue__) de __card__ se sobrepasó", "act-duenow": "se ha notificado que el vencimiento actual (__timeValue__) de __card__ es ahora", "act-atUserComment": "Se te mencionó en [__board__] __list__/__card__", - "delete-user-confirm-popup": "¿Seguro que quieres eliminar esta cuenta? Esta acción no puede deshacerse.", - "delete-team-confirm-popup": "Are you sure you want to delete this team? There is no undo.", - "delete-org-confirm-popup": "Are you sure you want to delete this organization? There is no undo.", + "delete-user-confirm-popup": "¿Estás seguro de querer eliminar esta cuenta? Esta acción no puede deshacerse.", + "delete-team-confirm-popup": "¿Estás seguro de querer eliminar este equipo? Esta acción no puede deshacerse", + "delete-org-confirm-popup": "¿Estás seguro de querer eliminar esta organización? Esta acción no puede deshacerse.", "accounts-allowUserDelete": "Permitir a los usuarios eliminar su cuenta", "hide-minicard-label-text": "Ocultar el texto de la etiqueta de la minitarjeta", "show-desktop-drag-handles": "Mostrar los controles de arrastre del escritorio", @@ -966,7 +966,7 @@ "delete-linked-card-before-this-card": "No puede borrar esta tarjeta antes de borrar la tarjeta enlazada que tiene", "delete-linked-cards-before-this-list": "No puede borrar esta lista antes de borrar las tarjetas enlazadas que apuntan a tarjetas en esta lista", "hide-checked-items": "Ocultar elementos marcados", - "hide-finished-checklist": "Hide finished checklist", + "hide-finished-checklist": "Esconder la lista de tareas finalizada", "task": "Tarea", "create-task": "Crear Tarea", "ok": "Vale", @@ -974,7 +974,7 @@ "teams": "Equipos", "displayName": "Mostrar Nombre", "shortName": "Nombre Corto", - "autoAddUsersWithDomainName": "Automatically add users with the domain name", + "autoAddUsersWithDomainName": "Añadir automáticamente usuarios con el nombre del dominio", "website": "Sitio web", "person": "Persona", "my-cards": "Mis Tarjetas", @@ -998,13 +998,13 @@ "dueCardsViewChange-choice-all-description": "Shows all incomplete cards with a *Due* date from boards for which the user has permission.", "broken-cards": "Tarjetas Rotas", "board-title-not-found": "Tablero '%s' no encontrado.", - "swimlane-title-not-found": "Swimlane '%s' not found.", + "swimlane-title-not-found": "Carril '%s' no encontrado.", "list-title-not-found": "Lista '%s' no encontrada.", "label-not-found": "Etiqueta '%s' no encontrada.", "label-color-not-found": "Label color %s not found.", "user-username-not-found": "Usuario '%s' no encontrado.", "comment-not-found": "Card with comment containing text '%s' not found.", - "org-name-not-found": "Organization '%s' not found.", + "org-name-not-found": "Organización '%s' no encontrada.", "team-name-not-found": "Team '%s' not found.", "globalSearch-title": "Buscar todas las tarjetas", "no-cards-found": "Ninguna tarjeta encontrada", @@ -1013,9 +1013,9 @@ "n-n-of-n-cards-found": "__start__-__end__ of __total__ Cards Found", "operator-board": "tablero", "operator-board-abbrev": "b", - "operator-swimlane": "swimlane", + "operator-swimlane": "carril", "operator-swimlane-abbrev": "s", - "operator-list": "la lista", + "operator-list": "lista", "operator-list-abbrev": "l", "operator-label": "etiqueta", "operator-label-abbrev": "#", @@ -1041,7 +1041,7 @@ "predicate-open": "abierto", "predicate-ended": "finalizó", "predicate-all": "todo", - "predicate-overdue": "overdue", + "predicate-overdue": "atrasado", "predicate-week": "semana", "predicate-month": "mes", "predicate-quarter": "cuarto", @@ -1064,45 +1064,45 @@ "operator-number-expected": "operator __operator__ expected a number, got '__value__'", "operator-sort-invalid": "sort of '%s' is invalid", "operator-status-invalid": "'%s' no es un estado válido", - "operator-has-invalid": "%s is not a valid existence check", + "operator-has-invalid": "%s no es una comprobación de existencia válida", "operator-limit-invalid": "%s no es un límite válido. El límite ha de ser un entero positivo.", "operator-debug-invalid": "%s is not a valid debug predicate", "next-page": "Página Siguiente", "previous-page": "Página Anterior", "heading-notes": "Notas", - "globalSearch-instructions-heading": "Buscar instrucciones.", - "globalSearch-instructions-description": "Searches can include operators to refine the search. Operators are specified by writing the operator name and value separated by a colon. For example, an operator specification of `list:Blocked` would limit the search to cards that are contained in a list named *Blocked*. If the value contains spaces or special characters it must be enclosed in quotation marks (e.g. `__operator_list__:\"To Review\"`).", + "globalSearch-instructions-heading": "Instrucciones de búsqueda", + "globalSearch-instructions-description": "Se pueden usar operadores para refinar la búsqueda. Los operadores se especifican escribiendo el nombre del operador y su valor separado por dos puntos. Por ejemplo, especificar `lista:Bloqueada` limitaría la búsqueda a tarjetas que conengan una lista llamada *Bloqueada*. Si el valor contiene espacios o caracteres especiales, debe escribirse entre comillas (por ejemplo: `__operator_list__:\"To Review\"`).", "globalSearch-instructions-operators": "Operadores disponibles:", - "globalSearch-instructions-operator-board": "`__operator_board__:` - cards in boards matching the specified *<title>*", + "globalSearch-instructions-operator-board": "`__operator_board__:<title>` - tarjetas en tableros que coincidan con *<title>*", "globalSearch-instructions-operator-list": "`__operator_list__:<title>` - cards in lists matching the specified *<title>*", "globalSearch-instructions-operator-swimlane": "`__operator_swimlane__:<title>` - cards in swimlanes matching the specified *<title>*", - "globalSearch-instructions-operator-comment": "`__operator_comment__:<text>` - cards with a comment containing *<text>*.", + "globalSearch-instructions-operator-comment": "`__operator_comment__:<text>` - tarjetas con comentarios que contengan *<text>*.", "globalSearch-instructions-operator-label": "`__operator_label__:<color>` `__operator_label__:<name>` - cards that have a label matching *<color>* or *<name>", - "globalSearch-instructions-operator-hash": "`__operator_label_abbrev__<name|color>` - shorthand for `__operator_label__:<color>` or `__operator_label__:<name>`", + "globalSearch-instructions-operator-hash": "`__operator_label_abbrev__<name|color>` - abreviatura para `__operator_label__:<color>` o `__operator_label__:<name>`", "globalSearch-instructions-operator-user": "`__operator_user__:<username>` - cards where *<username>* is a *member* or *assignee*", - "globalSearch-instructions-operator-at": "`__operator_user_abbrev__username` - shorthand for `user:<username>`", + "globalSearch-instructions-operator-at": "`__operator_user_abbrev__username` - abreviatura para `user:<username>`", "globalSearch-instructions-operator-member": "`__operator_member__:<username>` - cards where *<username>* is a *member*", "globalSearch-instructions-operator-assignee": "`__operator_assignee__:<username>` - cards where *<username>* is an *assignee*", - "globalSearch-instructions-operator-creator": "`__operator_creator__:<username>` - cards where *<username>* is the card's creator", + "globalSearch-instructions-operator-creator": "`__operator_creator__:<username>` - tarjetas donde *<username>* es el creador de la tarjeta", "globalSearch-instructions-operator-org": "`__operator_org__:<display name|short name>` - cards belonging to a board assigned to organization *<name>*", - "globalSearch-instructions-operator-team": "`__operator_team__:<display name|short name>` - cards belonging to a board assigned to team *<name>*", - "globalSearch-instructions-operator-due": "`__operator_due__:<n>` - cards which are due up to *<n>* days from now. `__operator_due__:__predicate_overdue__ lists all cards past their due date.", + "globalSearch-instructions-operator-team": "`__operator_team__:<display name|short name>` - las tarjetas pertenecientes al tablero asignadas al equipo *<name>*", + "globalSearch-instructions-operator-due": "`__operator_due__:<n>` - tarjetas que vencen dentro de *<n>* days. `__operator_due__:__predicate_overdue__ lista todas las tarjetas que han vencido.", "globalSearch-instructions-operator-created": "`__operator_created__:<n>` - cards which were created *<n>* days ago or less", "globalSearch-instructions-operator-modified": "`__operator_modified__:<n>` - cards which were modified *<n>* days ago or less", - "globalSearch-instructions-operator-status": "`__operator_status__:<status>` - where *<status>* is one of the following:", + "globalSearch-instructions-operator-status": "`__operator_status__:<status>` - donde *<status>* puede ser uno de los siguientes:", "globalSearch-instructions-status-archived": "`__predicate_archived__` - archived cards", - "globalSearch-instructions-status-all": "`__predicate_all__` - all archived and unarchived cards", + "globalSearch-instructions-status-all": "`__predicate_all__` - todas las tarjetas archivadas o no archivadas", "globalSearch-instructions-status-ended": "`__predicate_ended__` - cards with an end date", "globalSearch-instructions-status-public": "`__predicate_public__` - cards only in public boards", - "globalSearch-instructions-status-private": "`__predicate_private__` - cards only in private boards", - "globalSearch-instructions-operator-has": "`__operator_has__:<field>` - where *<field>* is one of `__predicate_attachment__`, `__predicate_checklist__`, `__predicate_description__`, `__predicate_start__`, `__predicate_due__`, `__predicate_end__`, `__predicate_assignee__` or `__predicate_member__`. Placing a `-` in front of *<field>* searches for the absence of a value in that field (e.g. `has:-due` searches for cards without a due date).", - "globalSearch-instructions-operator-sort": "`__operator_sort__:<sort-name>` - where *<sort-name>* is one of `__predicate_due__`, `__predicate_created__` or `__predicate_modified__`. For a descending sort, place a `-` in front of the sort name.", - "globalSearch-instructions-operator-limit": "`__operator_limit__:<n>` - where *<n>* is a positive integer expressing the number of cards to be displayed per page.", - "globalSearch-instructions-notes-1": "Múltiple operadores pueden ser seleccionados.", - "globalSearch-instructions-notes-2": "Similar operators are *OR*ed together. Cards that match any of the conditions will be returned.\n`__operator_list__:Available __operator_list__:Blocked` would return cards contained in any list named *Blocked* or *Available*.", - "globalSearch-instructions-notes-3": "Differing operators are *AND*ed together. Only cards that match all of the differing operators are returned. `__operator_list__:Available __operator_label__:red` returns only cards in the list *Available* with a *red* label.", + "globalSearch-instructions-status-private": "`__predicate_private__` - solo tarjetas de tableros privados", + "globalSearch-instructions-operator-has": "`__operator_has__:<field>` - donde *<field>* puede ser `__predicate_attachment__`, `__predicate_checklist__`, `__predicate_description__`, `__predicate_start__`, `__predicate_due__`, `__predicate_end__`, `__predicate_assignee__` o `__predicate_member__`. Colocando un `-` delante de *<field>* busca la ausencia del valor en ese campo (por ejemplo, `has:-due` busca tarjetas sin fecha de vencimiento).", + "globalSearch-instructions-operator-sort": "`__operator_sort__:<sort-name>` - donde *<sort-name>* puede ser `__predicate_due__`, `__predicate_created__` o `__predicate_modified__`. Para ordenar descendentemente, coloca un `-` delante del tipo de orden.", + "globalSearch-instructions-operator-limit": "`__operator_limit__:<n>` - donde *<n>* es un entero positivo que expresa el número de tarjetas que se mostrarán por página.", + "globalSearch-instructions-notes-1": "Se pueden especificar múltiples operadores.", + "globalSearch-instructions-notes-2": "Múltiples condiciones de operadores parecidos se tratan internamente con el operador lógico OR. Es decir, la búsqueda devolverá las tarjetas que coincidan con alguna de las condiciones:\n`__operator_list__:Disponible __operator_list__:Bloqueada` devolverá tarjetas contenidas en cualquier lista nombrada *Bloqueada* o *Disponible*.", + "globalSearch-instructions-notes-3": "Múltiples condiciones de operadores distintos se tratan internamente con el operador lógico AND. Es decir, la búsqueda devolverá las tarjetas que coincidan con TODAS las condiciones:\n`__operator_list__:Disponible __operator_label__:rojo` devuelve sólo las tarjetas en la lista *Disponible* con una etiqueta *roja*.", "globalSearch-instructions-notes-3-2": "Days can be specified as a positive or negative integer or using `__predicate_week__`, `__predicate_month__`, `__predicate_quarter__` or `__predicate_year__` for the current period.", - "globalSearch-instructions-notes-4": "La búsqueda de texto distingue entre mayúsculas y minúsculas.", + "globalSearch-instructions-notes-4": "Las búsquedas de texto no distinguen entre mayúsculas y minúsculas.", "globalSearch-instructions-notes-5": "Por defecto no se buscan las tarjetas archivadas.", "link-to-search": "Enlazar a esta búsqueda", "excel-font": "Arial", @@ -1111,32 +1111,32 @@ "label-names": "Nombres de las etiquetas", "archived-at": "archivado el", "sort-cards": "Ordenar tarjetas", - "sort-is-on": "Sort is on", + "sort-is-on": "Ordenamiento activado", "cardsSortPopup-title": "Ordenar tarjetas", "due-date": "Fecha de Vencimiento", "server-error": "Error del Servidor", - "server-error-troubleshooting": "Please submit the error generated by the server.\nFor a snap installation, run: `sudo snap logs wekan.wekan`\nFor a Docker installation, run: `sudo docker logs wekan-app`", + "server-error-troubleshooting": "Por favor, envíe el error generado por el servidor.\nPara la instalación con snap, ejecute: `sudo snap logs wekan.wekan`\nPara la instalación con docker, ejecute: `sudo docker logs wekan-app`", "title-alphabetically": "Título (Alfabéticamente)", "created-at-newest-first": "Creación (Nuevos Primero)", "created-at-oldest-first": "Creación (Antiguos Primero)", "links-heading": "Enlaces", - "hide-activities-of-all-boards": "Don't show the board activities on all boards", - "now-activities-of-all-boards-are-hidden": "Now all activities of all boards are hidden", + "hide-activities-of-all-boards": "No mostrar las actividades del tablero en todos los tableros", + "now-activities-of-all-boards-are-hidden": "Todas las actividades de todos los tableros están ahora ocultas", "move-swimlane": "Move Swimlane", "moveSwimlanePopup-title": "Move Swimlane", - "custom-field-stringtemplate": "String Template", + "custom-field-stringtemplate": "Plantilla de cadenas", "custom-field-stringtemplate-format": "Format (use %{value} as placeholder)", "custom-field-stringtemplate-separator": "Separator (use or   for a space)", "custom-field-stringtemplate-item-placeholder": "Pulsa intro para añadir más elementos", "creator": "Creador", - "creator-on-minicard": "Creator on minicard", + "creator-on-minicard": "Creador en minitarjeta", "filesReportTitle": "Informe sobre los archivos", "reports": "Informes", "rulesReportTitle": "Informe sobre las Reglas", "boardsReportTitle": "Informe sobre los Tableros", "cardsReportTitle": "Informe sobre las Tarjetas", "copy-swimlane": "Copy Swimlane", - "copySwimlanePopup-title": "Copy Swimlane", + "copySwimlanePopup-title": "Copiar carril", "display-card-creator": "Mostrar Creador de la Tarjeta", "wait-spinner": "Wait Spinner", "Bounce": "Bounce Wait Spinner", @@ -1150,7 +1150,7 @@ "maximize-card": "Maximizar Tarjeta", "minimize-card": "Minimizar Tarjeta", "delete-org-warning-message": "Can not delete this organization, there is at least one user that belongs to it", - "delete-team-warning-message": "Can not delete this team, there is at least one user that belongs to it", + "delete-team-warning-message": "No se puede eliminar este equipo, hay al menos un usuario que pertenece a este equipo.", "subject": "Asunto", "details": "Detalles", "carbon-copy": "Carbon Copy (Cc:)", @@ -1175,9 +1175,9 @@ "remove-btn": "Eliminar", "filter-card-title-label": "Filtrar por el título de la tarjeta", "invite-people-success": "Invitation to register sent with success", - "invite-people-error": "Error while sending invitation to register", + "invite-people-error": "Error al enviar la invitación para registrarse", "can-invite-if-same-mailDomainName": "Email domain name", - "to-create-teams-contact-admin": "To create teams, please contact the administrator.", + "to-create-teams-contact-admin": "Para crear equipos, por favor contacte con el administrador.", "Node_heap_total_heap_size": "Node heap: total heap size", "Node_heap_total_heap_size_executable": "Node heap: total heap size executable", "Node_heap_total_physical_size": "Node heap: total physical size", @@ -1195,7 +1195,7 @@ "Node_memory_usage_external": "Node memory usage: external", "add-organizations": "Añadir organizaciones", "add-organizations-label": "Added organizations are displayed below:", - "remove-organization-from-board": "Are you sure you want to remove this organization from this board ?", + "remove-organization-from-board": "¿Estás seguro de querer quitar esta organización del tablero?", "to-create-organizations-contact-admin": "Para crear organizaciones, póngase en contacto con el administrador.", "custom-legal-notice-link-url": "URL personalizada de la página de aviso legal", "acceptance_of_our_legalNotice": "Al continuar, usted acepta nuestra", @@ -1204,25 +1204,25 @@ "checklistActionsPopup-title": "Acciones de la Lista de Tareas", "moveChecklist": "Mover Lista de Tareas", "moveChecklistPopup-title": "Mover Lista de Tareas", - "newlineBecomesNewChecklistItem": "Each line of text becomes one of the checklist items", - "newLineNewItem": "One line of text = one checklist item", - "newlineBecomesNewChecklistItemOriginOrder": "Each line of text becomes one of the checklist items, original order", - "originOrder": "original order", + "newlineBecomesNewChecklistItem": "Cada línea de texto se convierte en un nuevo elemento de la lista de verificación", + "newLineNewItem": "Una línea de texto = un elemento de la lista de verificación", + "newlineBecomesNewChecklistItemOriginOrder": "Cada línea de texto se convierte en un nuevo elemento de la lista de verificación, orden original", + "originOrder": "orden original", "copyChecklist": "Copiar Lista de Tareas", "copyChecklistPopup-title": "Copiar Lista de Tareas", "card-show-lists": "Mostrar Listas de Tarjetas", "subtaskActionsPopup-title": "Acciones de la Subtarea", "attachmentActionsPopup-title": "Acciones de Adhesión", "attachment-move-storage-fs": "Mover el archivo adjunto al sistema de archivos", - "attachment-move-storage-gridfs": "Move attachment to GridFS", + "attachment-move-storage-gridfs": "Mover adjunto a GridFS", "attachment-move-storage-s3": "Move attachment to S3", "attachment-move": "Mover el Adjunto", "move-all-attachments-to-fs": "Mover todos los archivos adjuntos al sistema de archivos", - "move-all-attachments-to-gridfs": "Move all attachments to GridFS", + "move-all-attachments-to-gridfs": "Mover todos los adjuntos a GridFS", "move-all-attachments-to-s3": "Move all attachments to S3", - "move-all-attachments-of-board-to-fs": "Move all attachments of board to filesystem", + "move-all-attachments-of-board-to-fs": "Mover todos los adjuntos del tablero al sistema de archivos", "move-all-attachments-of-board-to-gridfs": "Move all attachments of board to GridFS", - "move-all-attachments-of-board-to-s3": "Move all attachments of board to S3", + "move-all-attachments-of-board-to-s3": "Mover todos los adjuntos del tablero a S3", "path": "Ruta", "version-name": "Nombre de la versión", "size": "Tamaño", @@ -1234,7 +1234,7 @@ "remaining_time": "Tiempo restante", "speed": "Velocidad", "progress": "Progreso", - "password-again": "Password (again)", + "password-again": "Contraseña (repetir)", "if-you-already-have-an-account": "If you already have an account", "register": "Register", "forgot-password": "Forgot password", @@ -1246,27 +1246,27 @@ "max-avatar-filesize": "Máximo tamaño de archivo de avatar en bytes:", "allowed-avatar-filetypes": "Tipos de archivo permitidos para el avatar:", "invalid-file": "Si el nombre de archivo no es válido, la carga o el cambio de nombre es cancelado.", - "preview-pdf-not-supported": "Your device does not support previewing PDF. Try downloading instead.", - "drag-board": "Drag board", - "translation-number": "The number of custom translation strings is:", - "delete-translation-confirm-popup": "Are you sure you want to delete this custom translation string? There is no undo.", - "newTranslationPopup-title": "New custom translation string", - "editTranslationPopup-title": "Edit custom translation string", - "settingsTranslationPopup-title": "Delete this custom translation string?", - "translation": "Translation", + "preview-pdf-not-supported": "Tu dispositivo no permite previsualizar PDF. Intenta descargarlo.", + "drag-board": "Arrastrar tablero", + "translation-number": "El número de cadenas de traducción personalizadas es:", + "delete-translation-confirm-popup": "¿Estás seguro de querer eliminar esta cadena de traducción personalizada? Esta acción no puede deshacerse.", + "newTranslationPopup-title": "Nueva cadena de traducción personalizada", + "editTranslationPopup-title": "Editar cadena de traducción personalizada", + "settingsTranslationPopup-title": "¿Borrar esta cadena de traducción personalizada?", + "translation": "Traducción", "text": "Texto", - "translation-text": "Translation text", - "show-subtasks-field": "Show subtasks field", - "show-week-of-year": "Show week of year (ISO 8601)", - "convert-to-markdown": "Convert to markdown", - "import-board-zip": "Add .zip file that has board JSON files, and board name subdirectories with attachments", + "translation-text": "Texto de traducción", + "show-subtasks-field": "Mostrar campo de subtareas", + "show-week-of-year": "Mostrar semana del año (ISO 8601)", + "convert-to-markdown": "Convertir en Markdown", + "import-board-zip": "Añadir archivo .zip que contenga los archivos JSON del tablero y los nombres de las subcarpetas con adjuntos del tablero", "collapse": "Contraer", - "uncollapse": "Uncollapse", - "hideCheckedChecklistItems": "Hide checked checklist items", - "hideAllChecklistItems": "Hide all checklist items", - "support": "Support", - "supportPopup-title": "Support", - "accessibility-page-enabled": "Accessibility page enabled", - "accessibility-title": "Accessibility topic", - "accessibility-content": "Accessibility content" + "uncollapse": "Expandir", + "hideCheckedChecklistItems": "Ocultar elementos marcados de la lista de verificación", + "hideAllChecklistItems": "Ocultar todos los elementos de la lista de verificación", + "support": "Soporte", + "supportPopup-title": "Soporte", + "accessibility-page-enabled": "Página de accesibilidad habilitada", + "accessibility-title": "Temas de accesibilidad", + "accessibility-content": "Contenido de accesibilidad" } diff --git a/imports/i18n/data/ms-MY.i18n.json b/imports/i18n/data/ms-MY.i18n.json index 821c0ba00..487628b10 100644 --- a/imports/i18n/data/ms-MY.i18n.json +++ b/imports/i18n/data/ms-MY.i18n.json @@ -1,5 +1,5 @@ { - "accept": "Accept", + "accept": "Terima", "act-activity-notify": "Activity Notification", "act-addAttachment": "added attachment __attachment__ to card __card__ at list __list__ at swimlane __swimlane__ at board __board__", "act-deleteAttachment": "deleted attachment __attachment__ at card __card__ at list __list__ at swimlane __swimlane__ at board __board__", @@ -49,7 +49,7 @@ "activity-archived": "%s moved to Archive", "activity-attached": "attached %s to %s", "activity-created": "created %s", - "activity-changedListTitle": "renamed list to %s", + "activity-changedListTitle": "Namakan semula senarai kepada %s", "activity-customfield-created": "created custom field %s", "activity-excluded": "excluded %s from %s", "activity-imported": "imported %s into %s from %s", @@ -86,9 +86,9 @@ "add-card": "Add Card", "add-card-to-top-of-list": "Add Card to Top of List", "add-card-to-bottom-of-list": "Add Card to Bottom of List", - "setListWidthPopup-title": "Set Widths", - "set-list-width": "Set Widths", - "set-list-width-value": "Set Min & Max Widths (pixels)", + "setListWidthPopup-title": "Tetapkan Lebar", + "set-list-width": "Tetapkan Lebar", + "set-list-width-value": "Tetapkan lebar minimum dan maksimum (piksel)", "list-width-error-message": "List widths must be integers greater than 100", "keyboard-shortcuts-enabled": "Keyboard shortcuts enabled. Click to disable.", "keyboard-shortcuts-disabled": "Keyboard shortcuts disabled. Click to enable.", @@ -105,20 +105,20 @@ "convertChecklistItemToCardPopup-title": "Convert to Card", "add-cover": "Add cover image to minicard", "add-label": "Add Label", - "add-list": "Add List", + "add-list": "Tambah Senarai", "add-after-list": "Add After List", - "add-members": "Add Members", - "added": "Added", - "addMemberPopup-title": "Members", - "memberPopup-title": "Member Settings", - "admin": "Admin", + "add-members": "Tambah Ahli", + "added": "Ditambah", + "addMemberPopup-title": "Ahli-ahli", + "memberPopup-title": "Tetapan Ahli", + "admin": "Pentadbir", "admin-desc": "Can view and edit cards, remove members, and change settings for the board.", - "admin-announcement": "Announcement", + "admin-announcement": "Pengumuman", "admin-announcement-active": "Active System-Wide Announcement", - "admin-announcement-title": "Announcement from Administrator", - "all-boards": "All Boards", - "and-n-other-card": "And __count__ other card", - "and-n-other-card_plural": "And __count__ other cards", + "admin-announcement-title": "Pengumuman dari Pentadbir", + "all-boards": "Semua Papan", + "and-n-other-card": "Dan __count__ kad lain", + "and-n-other-card_plural": "Dan __count__ kad-kad lain", "apply": "Apply", "app-is-offline": "Loading, please wait. Refreshing the page will cause data loss. If loading does not work, please check that server has not stopped.", "app-try-reconnect": "Try to reconnect.", @@ -451,7 +451,7 @@ "advanced-filter-description": "Advanced Filter allows to write a string containing following operators: == != <= >= && || ( ) A space is used as a separator between the Operators. You can filter for all Custom Fields by typing their names and values. For Example: Field1 == Value1. Note: If fields or values contains spaces, you need to encapsulate them into single quotes. For Example: 'Field 1' == 'Value 1'. For single control characters (' \\\\/) to be skipped, you can use \\\\. For example: Field1 == I\\\\'m. Also you can combine multiple conditions. For Example: F1 == V1 || F1 == V2. Normally all operators are interpreted from left to right. You can change the order by placing brackets. For Example: F1 == V1 && ( F2 == V2 || F2 == V3 ). Also you can search text fields using regex: F1 == /Tes.*/i", "fullname": "Full Name", "header-logo-title": "Go back to your boards page.", - "show-activities": "Show Activities", + "show-activities": "Tunjukkan Aktiviti", "headerBarCreateBoardPopup-title": "Create Board", "home": "Home", "import": "Import", @@ -972,20 +972,20 @@ "ok": "OK", "organizations": "Organizations", "teams": "Teams", - "displayName": "Display Name", - "shortName": "Short Name", + "displayName": "Nama Paparan", + "shortName": "Nama Ringkas", "autoAddUsersWithDomainName": "Automatically add users with the domain name", - "website": "Website", + "website": "Laman Sesawang", "person": "Person", - "my-cards": "My Cards", - "card": "Card", - "list": "List", - "board": "Board", + "my-cards": "Kad Saya", + "card": "Kad", + "list": "Senarai", + "board": "Papan", "context-separator": "/", "myCardsViewChange-title": "My Cards View", "myCardsViewChangePopup-title": "My Cards View", - "myCardsViewChange-choice-boards": "Boards", - "myCardsViewChange-choice-table": "Table", + "myCardsViewChange-choice-boards": "Papan", + "myCardsViewChange-choice-table": "Jadual", "myCardsSortChange-title": "My Cards Sort", "myCardsSortChangePopup-title": "My Cards Sort", "myCardsSortChange-choice-board": "By Board", @@ -993,8 +993,8 @@ "dueCards-title": "Due Cards", "dueCardsViewChange-title": "Due Cards View", "dueCardsViewChangePopup-title": "Due Cards View", - "dueCardsViewChange-choice-me": "Me", - "dueCardsViewChange-choice-all": "All Users", + "dueCardsViewChange-choice-me": "Saya", + "dueCardsViewChange-choice-all": "Semua Pengguna", "dueCardsViewChange-choice-all-description": "Shows all incomplete cards with a *Due* date from boards for which the user has permission.", "broken-cards": "Broken Cards", "board-title-not-found": "Board '%s' not found.", @@ -1004,27 +1004,27 @@ "label-color-not-found": "Label color %s not found.", "user-username-not-found": "Username '%s' not found.", "comment-not-found": "Card with comment containing text '%s' not found.", - "org-name-not-found": "Organization '%s' not found.", - "team-name-not-found": "Team '%s' not found.", - "globalSearch-title": "Search All Boards", - "no-cards-found": "No Cards Found", - "one-card-found": "One Card Found", - "n-cards-found": "%s Cards Found", + "org-name-not-found": "Organisasi '%s' tidak ditemui.", + "team-name-not-found": "Pasukan '%s' tidak ditemui.", + "globalSearch-title": "Cari di Semua Papan", + "no-cards-found": "Tiada Kad Ditemui", + "one-card-found": "Satu Kad Ditemui", + "n-cards-found": "%s Kad Ditemui", "n-n-of-n-cards-found": "__start__-__end__ of __total__ Cards Found", - "operator-board": "board", - "operator-board-abbrev": "b", + "operator-board": "papan", + "operator-board-abbrev": "p", "operator-swimlane": "swimlane", "operator-swimlane-abbrev": "s", - "operator-list": "list", - "operator-list-abbrev": "l", + "operator-list": "senarai", + "operator-list-abbrev": "s", "operator-label": "label", "operator-label-abbrev": "#", - "operator-user": "user", + "operator-user": "pengguna", "operator-user-abbrev": "@", - "operator-member": "member", - "operator-member-abbrev": "m", - "operator-assignee": "assignee", - "operator-assignee-abbrev": "a", + "operator-member": "ahli", + "operator-member-abbrev": "a", + "operator-assignee": "pemberi tugas", + "operator-assignee-abbrev": "pt", "operator-creator": "creator", "operator-status": "status", "operator-due": "due", @@ -1033,31 +1033,31 @@ "operator-sort": "sort", "operator-comment": "comment", "operator-has": "has", - "operator-limit": "limit", + "operator-limit": "had", "operator-debug": "debug", "operator-org": "org", "operator-team": "team", "predicate-archived": "archived", "predicate-open": "open", "predicate-ended": "ended", - "predicate-all": "all", + "predicate-all": "semua", "predicate-overdue": "overdue", - "predicate-week": "week", - "predicate-month": "month", - "predicate-quarter": "quarter", - "predicate-year": "year", + "predicate-week": "minggu", + "predicate-month": "bulan", + "predicate-quarter": "suku", + "predicate-year": "tahun", "predicate-due": "due", "predicate-modified": "modified", "predicate-created": "created", "predicate-attachment": "attachment", - "predicate-description": "description", + "predicate-description": "huraian", "predicate-checklist": "checklist", - "predicate-start": "start", - "predicate-end": "end", + "predicate-start": "mula", + "predicate-end": "akhir", "predicate-assignee": "assignee", "predicate-member": "member", - "predicate-public": "public", - "predicate-private": "private", + "predicate-public": "umum", + "predicate-private": "peribadi", "predicate-selector": "selector", "predicate-projection": "projection", "operator-unknown-error": "%s is not an operator", @@ -1067,10 +1067,10 @@ "operator-has-invalid": "%s is not a valid existence check", "operator-limit-invalid": "%s is not a valid limit. Limit should be a positive integer.", "operator-debug-invalid": "%s is not a valid debug predicate", - "next-page": "Next Page", - "previous-page": "Previous Page", - "heading-notes": "Notes", - "globalSearch-instructions-heading": "Search Instructions", + "next-page": "Halaman Seterusnya", + "previous-page": "Halaman Sebelumnya", + "heading-notes": "Nota-nota", + "globalSearch-instructions-heading": "Cari arahan", "globalSearch-instructions-description": "Searches can include operators to refine the search. Operators are specified by writing the operator name and value separated by a colon. For example, an operator specification of `list:Blocked` would limit the search to cards that are contained in a list named *Blocked*. If the value contains spaces or special characters it must be enclosed in quotation marks (e.g. `__operator_list__:\"To Review\"`).", "globalSearch-instructions-operators": "Available operators:", "globalSearch-instructions-operator-board": "`__operator_board__:<title>` - cards in boards matching the specified *<title>*", @@ -1106,7 +1106,7 @@ "globalSearch-instructions-notes-5": "By default archived cards are not searched.", "link-to-search": "Link to this search", "excel-font": "Arial", - "number": "Number", + "number": "Nombor", "label-colors": "Label Colors", "label-names": "Label Names", "archived-at": "archived at", @@ -1128,8 +1128,8 @@ "custom-field-stringtemplate-format": "Format (use %{value} as placeholder)", "custom-field-stringtemplate-separator": "Separator (use or   for a space)", "custom-field-stringtemplate-item-placeholder": "Press enter to add more items", - "creator": "Creator", - "creator-on-minicard": "Creator on minicard", + "creator": "Pencipta", + "creator-on-minicard": "Pencipta pada kad mini", "filesReportTitle": "Files Report", "reports": "Reports", "rulesReportTitle": "Rules Report", @@ -1152,27 +1152,27 @@ "delete-org-warning-message": "Can not delete this organization, there is at least one user that belongs to it", "delete-team-warning-message": "Can not delete this team, there is at least one user that belongs to it", "subject": "Subject", - "details": "Details", + "details": "Maklumat", "carbon-copy": "Carbon Copy (Cc:)", - "ticket": "Ticket", - "tickets": "Tickets", - "ticket-number": "Ticket Number", - "open": "Open", + "ticket": "Tiket", + "tickets": "Tiket-tiket", + "ticket-number": "Nombor Tiket", + "open": "Dibuka", "pending": "Pending", - "closed": "Closed", - "resolved": "Resolved", - "cancelled": "Cancelled", - "history": "History", + "closed": "Ditutup", + "resolved": "Selesai", + "cancelled": "Batalkan", + "history": "Sejarah", "request": "Request", "requests": "Requests", "help-request": "Help Request", "editCardSortOrderPopup-title": "Change Sorting", - "cardDetailsPopup-title": "Card Details", - "add-teams": "Add teams", + "cardDetailsPopup-title": "Maklumat Kad", + "add-teams": "Tambahkan Kumpulan", "add-teams-label": "Added teams are displayed below:", "remove-team-from-table": "Are you sure you want to remove this team from the board ?", - "confirm-btn": "Confirm", - "remove-btn": "Remove", + "confirm-btn": "Sahkan", + "remove-btn": "Hapus", "filter-card-title-label": "Filter by card title", "invite-people-success": "Invitation to register sent with success", "invite-people-error": "Error while sending invitation to register", @@ -1200,14 +1200,14 @@ "custom-legal-notice-link-url": "Custom legal notice page URL", "acceptance_of_our_legalNotice": "By continuing, you accept our", "legalNotice": "legal notice", - "copied": "Copied!", + "copied": "Disalin!", "checklistActionsPopup-title": "Checklist Actions", "moveChecklist": "Move Checklist", "moveChecklistPopup-title": "Move Checklist", "newlineBecomesNewChecklistItem": "Each line of text becomes one of the checklist items", "newLineNewItem": "One line of text = one checklist item", "newlineBecomesNewChecklistItemOriginOrder": "Each line of text becomes one of the checklist items, original order", - "originOrder": "original order", + "originOrder": "aturan asal", "copyChecklist": "Copy Checklist", "copyChecklistPopup-title": "Copy Checklist", "card-show-lists": "Card Show Lists", @@ -1223,21 +1223,21 @@ "move-all-attachments-of-board-to-fs": "Move all attachments of board to filesystem", "move-all-attachments-of-board-to-gridfs": "Move all attachments of board to GridFS", "move-all-attachments-of-board-to-s3": "Move all attachments of board to S3", - "path": "Path", - "version-name": "Version-Name", - "size": "Size", - "storage": "Storage", - "action": "Action", - "board-title": "Board Title", - "attachmentRenamePopup-title": "Rename", - "uploading": "Uploading", - "remaining_time": "Remaining time", + "path": "Haluan", + "version-name": "Versi-Nama", + "size": "Saiz", + "storage": "Simpanan", + "action": "Tindakan", + "board-title": "Tajuk Papan", + "attachmentRenamePopup-title": "Namakan Semula", + "uploading": "Memuat Naik", + "remaining_time": "Masa yang tersisa", "speed": "Speed", - "progress": "Progress", - "password-again": "Password (again)", - "if-you-already-have-an-account": "If you already have an account", - "register": "Register", - "forgot-password": "Forgot password", + "progress": "Perkembangan", + "password-again": "Kata laluan (semula)", + "if-you-already-have-an-account": "Jika anda sudah mempunyai akaun", + "register": "Daftar", + "forgot-password": "Lupa kata laluan", "minicardDetailsActionsPopup-title": "Card Details", "Mongo_sessions_count": "Mongo sessions count", "change-visibility": "Change Visibility", @@ -1253,9 +1253,9 @@ "newTranslationPopup-title": "New custom translation string", "editTranslationPopup-title": "Edit custom translation string", "settingsTranslationPopup-title": "Delete this custom translation string?", - "translation": "Translation", - "text": "Text", - "translation-text": "Translation text", + "translation": "Terjemahan", + "text": "Teks", + "translation-text": "Teks terjemahan", "show-subtasks-field": "Show subtasks field", "show-week-of-year": "Show week of year (ISO 8601)", "convert-to-markdown": "Convert to markdown", From d96a1a5c9e3bac60a666e69875154574502bd521 Mon Sep 17 00:00:00 2001 From: Lauri Ojansivu <x@xet7.org> Date: Sun, 23 Mar 2025 17:33:57 +0200 Subject: [PATCH 55/65] v7.84 --- CHANGELOG.md | 2 +- Stackerfile.yml | 2 +- docs/Features/Multiline.md | 23 ++++++++++++++++++++ docs/Login/SAML.md | 20 ++++++++++++++++- docs/Platforms/Propietary/Windows/Offline.md | 4 ++-- docs/_Sidebar.md | 1 + package-lock.json | 2 +- package.json | 2 +- public/api/wekan.html | 4 ++-- public/api/wekan.yml | 2 +- sandstorm-pkgdef.capnp | 4 ++-- snapcraft.yaml | 8 +++---- 12 files changed, 58 insertions(+), 16 deletions(-) create mode 100644 docs/Features/Multiline.md diff --git a/CHANGELOG.md b/CHANGELOG.md index 2ab1ee57f..808d37362 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -15,7 +15,7 @@ Fixing other platforms In Progress. [How to upgrade WeKan](https://github.com/wekan/wekan/issues/4585) -# Upcoming WeKan ® release +# v7.84 2025-03-23 WeKan ® release This release adds the following new features: diff --git a/Stackerfile.yml b/Stackerfile.yml index bf2926648..257145fd9 100644 --- a/Stackerfile.yml +++ b/Stackerfile.yml @@ -1,5 +1,5 @@ appId: wekan-public/apps/77b94f60-dec9-0136-304e-16ff53095928 -appVersion: "v7.83.0" +appVersion: "v7.84.0" files: userUploads: - README.md diff --git a/docs/Features/Multiline.md b/docs/Features/Multiline.md new file mode 100644 index 000000000..d5aab1c15 --- /dev/null +++ b/docs/Features/Multiline.md @@ -0,0 +1,23 @@ +## Multiple lines to Checklist + +1. Click Add new Checklist +2. Click Add new Checklist Item +3. Toggle `One line of text = one checklist item` +4. Paste multiple lines of text +5. Click Save + +<img src="https://wekan.github.io/multiline/multiline1.png" width="60%" alt="Multiple lines to Checklist" /> + +## Card ☰ Menu / Copy Checklist Template to Many Cards + +<img src="https://wekan.github.io/multiline/multiline2.png" width="60%" alt="Checklist Template to Many Cards 1" /> + +## Edit titles and descriptions of Many Cards +``` +[ {"title": "First card title", "description":"First card description"}, +{"title":"Second card title","description":"Second card description"}, +{"title":"Last card title","description":"Last card description"} ] +``` + +<img src="https://wekan.github.io/multiline/multiline3.png" width="60%" alt="Checklist Template to Many Cards 2" /> + diff --git a/docs/Login/SAML.md b/docs/Login/SAML.md index f6fe2a4d7..7b4c60a8c 100644 --- a/docs/Login/SAML.md +++ b/docs/Login/SAML.md @@ -46,4 +46,22 @@ Wekan clientside code is at `wekan/client/components/main/layouts.*` Wekan serverside code is at: - `wekan/server/authentication.js` at bottom -- `wekan/packages/meteor-accounts-saml/*` \ No newline at end of file +- `wekan/packages/meteor-accounts-saml/*` + +## Gitea + +- https://github.com/crewjam/saml +- https://github.com/go-gitea/gitea/pull/29403 +- https://docs.gitea.com/enterprise/features/saml-auth + +## Laravel + +- https://github.com/24Slides/laravel-saml2 + +## ruby-saml/omniauth/RoR: Sign in as anyone: Bypassing SAML SSO authentication with parser differentials + +- https://github.blog/security/sign-in-as-anyone-bypassing-saml-sso-authentication-with-parser-differentials/ +- https://news.ycombinator.com/item?id=43349634 +- https://github.com/github/securitylab + + diff --git a/docs/Platforms/Propietary/Windows/Offline.md b/docs/Platforms/Propietary/Windows/Offline.md index 0a12add13..41808d969 100644 --- a/docs/Platforms/Propietary/Windows/Offline.md +++ b/docs/Platforms/Propietary/Windows/Offline.md @@ -10,7 +10,7 @@ This is without container (without Docker or Snap). Right click and download files 1-4: -1. [wekan-7.83-amd64-windows.zip](https://github.com/wekan/wekan/releases/download/v7.83/wekan-7.83-amd64-windows.zip) +1. [wekan-7.84-amd64-windows.zip](https://github.com/wekan/wekan/releases/download/v7.84/wekan-7.84-amd64-windows.zip) 2. [node.exe](https://nodejs.org/dist/latest-v14.x/win-x64/node.exe) @@ -22,7 +22,7 @@ Right click and download files 1-4: 6. Double click `mongodb-windows-x86_64-6.0.20-signed.msi` . In installer, uncheck downloading MongoDB compass. -7. Unzip `wekan-7.83-amd64-windows.zip` , inside it is directory `bundle`, to it copy other files: +7. Unzip `wekan-7.84-amd64-windows.zip` , inside it is directory `bundle`, to it copy other files: ``` bundle (directory) diff --git a/docs/_Sidebar.md b/docs/_Sidebar.md index 2a105c814..a527809b4 100644 --- a/docs/_Sidebar.md +++ b/docs/_Sidebar.md @@ -129,6 +129,7 @@ # <a name="Features"></a>Features +* [Multiline](Multiline) * [Linked Cards](Linked-Cards) * [Drag Drop](https://github.com/wekan/wekan/wiki/Drag-Drop) on Mobile and Desktop * [Rclone: Store attachments to cloud storage like S3, MinIO, etc](Rclone) diff --git a/package-lock.json b/package-lock.json index 3adc42d3a..ef43cf5d4 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,6 +1,6 @@ { "name": "wekan", - "version": "v7.83.0", + "version": "v7.84.0", "lockfileVersion": 1, "requires": true, "dependencies": { diff --git a/package.json b/package.json index dcfdaba2a..7b8196d20 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "wekan", - "version": "v7.83.0", + "version": "v7.84.0", "description": "Open-Source kanban", "private": true, "repository": { diff --git a/public/api/wekan.html b/public/api/wekan.html index 1548d31a6..d73fec650 100644 --- a/public/api/wekan.html +++ b/public/api/wekan.html @@ -1524,7 +1524,7 @@ var n=this.pipeline.run(e.tokenizer(t)),r=new e.Vector,i=[],o=this._fields.reduc <ul class="toc-list-h1"> <li> - <a href="#wekan-rest-api" class="toc-h1 toc-link" data-title="Wekan REST API v7.83">Wekan REST API v7.83</a> + <a href="#wekan-rest-api" class="toc-h1 toc-link" data-title="Wekan REST API v7.84">Wekan REST API v7.84</a> </li> @@ -1963,7 +1963,7 @@ var n=this.pipeline.run(e.tokenizer(t)),r=new e.Vector,i=[],o=this._fields.reduc <div class="page-wrapper"> <div class="dark-box"></div> <div class="content"> - <h1 id="wekan-rest-api">Wekan REST API v7.83</h1> + <h1 id="wekan-rest-api">Wekan REST API v7.84</h1> <blockquote> <p>Scroll down for code samples, example requests and responses. Select a language for code samples from the tabs above or the mobile navigation menu.</p> </blockquote> diff --git a/public/api/wekan.yml b/public/api/wekan.yml index 8879fd584..9fd90b2cc 100644 --- a/public/api/wekan.yml +++ b/public/api/wekan.yml @@ -1,7 +1,7 @@ swagger: '2.0' info: title: Wekan REST API - version: v7.83 + version: v7.84 description: | The REST API allows you to control and extend Wekan with ease. diff --git a/sandstorm-pkgdef.capnp b/sandstorm-pkgdef.capnp index 4d5388daa..e94fe5d03 100644 --- a/sandstorm-pkgdef.capnp +++ b/sandstorm-pkgdef.capnp @@ -22,10 +22,10 @@ const pkgdef :Spk.PackageDefinition = ( appTitle = (defaultText = "Wekan"), # The name of the app as it is displayed to the user. - appVersion = 783, + appVersion = 784, # Increment this for every release. - appMarketingVersion = (defaultText = "7.83.0~2025-03-08"), + appMarketingVersion = (defaultText = "7.84.0~2025-03-23"), # Human-readable presentation of the app version. minUpgradableAppVersion = 0, diff --git a/snapcraft.yaml b/snapcraft.yaml index 7f518ea5a..d61c73bb0 100644 --- a/snapcraft.yaml +++ b/snapcraft.yaml @@ -1,5 +1,5 @@ name: wekan -version: '7.83' +version: '7.84' base: core20 summary: Open Source kanban description: | @@ -170,9 +170,9 @@ parts: # Cleanup mkdir .build cd .build - wget https://github.com/wekan/wekan/releases/download/v7.83/wekan-7.83-amd64.zip - unzip wekan-7.83-amd64.zip - rm wekan-7.83-amd64.zip + wget https://github.com/wekan/wekan/releases/download/v7.84/wekan-7.84-amd64.zip + unzip wekan-7.84-amd64.zip + rm wekan-7.84-amd64.zip cd .. ##cd .build/bundle ##find . -type d -name '*-garbage*' | xargs rm -rf From f09f5bd737360c75731ddfb785c1bfff1dcdee60 Mon Sep 17 00:00:00 2001 From: Lauri Ojansivu <x@xet7.org> Date: Sat, 29 Mar 2025 21:35:45 +0200 Subject: [PATCH 56/65] Updated translations. --- imports/i18n/data/br.i18n.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/imports/i18n/data/br.i18n.json b/imports/i18n/data/br.i18n.json index 9ee08f252..695b21cc7 100644 --- a/imports/i18n/data/br.i18n.json +++ b/imports/i18n/data/br.i18n.json @@ -319,7 +319,7 @@ "copy-card-link-to-clipboard": "Copy card link to clipboard", "copy-text-to-clipboard": "Copy text to clipboard", "linkCardPopup-title": "Link Card", - "searchElementPopup-title": "Search", + "searchElementPopup-title": "Klask", "copyCardPopup-title": "Copy Card", "copyManyCardsPopup-title": "Copy Template to Many Cards", "copyManyCardsPopup-instructions": "Destination Card Titles and Descriptions in this JSON format", @@ -572,7 +572,7 @@ "rescue-card-description": "Show rescue dialogue before closing for unsaved card descriptions", "rescue-card-description-dialogue": "Overwrite current card description with your changes?", "save": "Save", - "search": "Search", + "search": "Klask", "rules": "Rules", "search-cards": "Search from card/list titles, descriptions and custom fields on this board", "search-example": "Write text you search and press Enter", From db5346fc5c7407160f381c0fcf4a87204206ed55 Mon Sep 17 00:00:00 2001 From: Lauri Ojansivu <x@xet7.org> Date: Mon, 31 Mar 2025 21:38:06 +0300 Subject: [PATCH 57/65] Update Browser-compatibility-matrix.md --- docs/Browsers/Browser-compatibility-matrix.md | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/docs/Browsers/Browser-compatibility-matrix.md b/docs/Browsers/Browser-compatibility-matrix.md index d1f3c4b68..b316a6b4f 100644 --- a/docs/Browsers/Browser-compatibility-matrix.md +++ b/docs/Browsers/Browser-compatibility-matrix.md @@ -10,6 +10,7 @@ There edit Browser-compatibility-matrix.md and attach it with .txt extension or Browser | [PWA](PWA) | Mobile | Desktop | OS ------- | ----| ------ | ------- | ------- Safari | iOS Yes | iOS Newest | Newest | iOS, macOS +Iris | No | No | Newest | [Iris browser news](https://www.riscosopen.org/forum/forums/1/topics/19545), Download [RISC OS Direct](https://www.riscosdev.com/direct/) for Raspberry Pi etc. [Other versions of RISC OS for many ARM CPU devices](https://www.riscosopen.org/content/downloads) do not have Iris browser yet, but there could be some way to transfer Iris browser files from RISC OS Direct. ## Firefox based @@ -17,10 +18,8 @@ Any telemetry at any Firefox based browser can be additionally most locked down Browser | [PWA](PWA) | Mobile | Desktop | OS ------- | ----| ------ | ------- | ------- -[Mypal](https://releases.wekan.team/mypal/) | No | No | Newest | For 32bit ReactOS/WinXP/Win7/etc [issue](https://github.com/wekan/wekan/issues/3132), Other 32bit browsers probably not +[Mypal](https://github.com/reactosapps/apps/releases/download/0.01/mypal-27.9.4.win32.installer.exe) | No | No | Newest | For 32bit ReactOS/WinXP/Win7/etc [issue](https://github.com/wekan/wekan/issues/3132) Firefox | Android Yes | Android Newest | Newest | Win/Mac/Linux/BSD/RasPi. [Haiku](https://discuss.haiku-os.org/t/progress-on-porting-firefox/13493/143) not tested yet - [HN](https://news.ycombinator.com/item?id=41214762). -Morph Browser | No | Yes | Yes | [Ubuntu Touch](https://ubports.com) (based on Ubuntu 16.04) on PinePhone, OnePlus 3, [RasPi3](https://ci.ubports.com/job/rootfs/job/rootfs-rpi/) (not RasPi4 yet). Works best with bluetooth or USB mouse and keyboard. [Repo](https://gitlab.com/ubports/development/core/morph-browser) -[OpenStore App](https://open-store.io/app/wekan.wekanteam) | Yes | Yes | Yes | Based on [Wekan PWA](https://boards.wekan.team/b/D2SzJKZDS4Z48yeQH/wekan-open-source-kanban-board-with-mit-license/s7SkzYviC2e963FkT), [Ubuntu Touch](https://ubports.com) app at [OpenStore](https://open-store.io/app/wekan.wekanteam) using Morph browser with Wekan demo & development server https://boards.wekan.team . Tested on [RasPi3](https://ci.ubports.com/job/rootfs/job/rootfs-rpi/). PWA URL is configured here https://github.com/wekan/wekan-openstore/blob/master/wekan.desktop#L3 [Waterfox](https://www.waterfox.net) | No | No | Yes | Win/Mac/Linux, more private than Firefox, no tracking. [Repo](https://github.com/BrowserWorks/Waterfox) [Floorp](https://floorp.app) | No | No | Yes | [Win/Mac/Linux](https://github.com/Floorp-Projects/Floorp/releases), more private than Firefox, [Repo](https://github.com/Floorp-Projects/Floorp) [Mercury](https://thorium.rocks/mercury) | No | No | Yes | [Win/Linux](https://github.com/Alex313031/Mercury/releases), more private than Firefox, [Repo](https://github.com/Alex313031/Mercury) @@ -38,6 +37,8 @@ Brave | Android Yes | Android Newest | Newest | Win/Mac/Linux/RasPi Vivaldi | Android Yes | Android Newest | Newest | Win/Mac/Linux Opera | Android Yes | Android Newest | Newest | Win/Mac/Linux Credge, Chromium Edge | Android Yes | Android | Newest | Win/Mac/Linux/Mobile +Morph Browser | No | Yes | Yes | [Ubuntu Touch](https://ubports.com) based on Ubuntu 16.04 and 20.04 at all Ubuntu Touch devices, [RasPi3](https://ci.ubports.com/job/rootfs/job/rootfs-rpi/) (not RasPi4 yet). [Repo](https://gitlab.com/ubports/development/core/morph-browser) +[OpenStore App](https://open-store.io/app/wekan.wekanteam) | Yes | Yes | Yes | [Ubuntu Touch](https://ubports.com) app at [OpenStore](https://open-store.io/app/wekan.wekanteam) using Morph browser with Wekan demo & development server https://boards.wekan.team . App source code for Ubuntu 16.04 at https://github.com/wekan/wekan-openstore and Ubuntu 20.04 at https://github.com/wekan/wekan-openstore2 [Microsoft Store App](https://www.microsoft.com/fi-fi/p/wekan/9p2mrxvd087r#activetab=pivot:overviewtab) | Yes | Yes | Yes | At Microsoft Store of Windows 10/11 desktop, made with [PWABuilder](https://www.pwabuilder.com/). Based on [Wekan PWA](https://boards.wekan.team/b/D2SzJKZDS4Z48yeQH/wekan-open-source-kanban-board-with-mit-license/s7SkzYviC2e963FkT), changed app from EdgeHTML to Credge based with Wekan demo & development server https://boards.wekan.team [Android Play Store App](https://play.google.com/store/apps/details?id=team.wekan.boards.twa) | Yes | Yes | Yes | Based on [Wekan PWA](https://boards.wekan.team/b/D2SzJKZDS4Z48yeQH/wekan-open-source-kanban-board-with-mit-license/s7SkzYviC2e963FkT), made with [PWABuilder](https://www.pwabuilder.com/), uses Android Chrome browser with Wekan demo & development server https://boards.wekan.team [Thorium](https://thorium.rocks) | No | Yes | Yes | [Win/Win7/Mac/Linux/Android/RasPi](https://thorium.rocks), speed optimized From 05d1736f5f21e93e83b2e25029c6cab6c5106398 Mon Sep 17 00:00:00 2001 From: Lauri Ojansivu <x@xet7.org> Date: Mon, 31 Mar 2025 21:45:22 +0300 Subject: [PATCH 58/65] Update Browser-compatibility-matrix.md --- docs/Browsers/Browser-compatibility-matrix.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/docs/Browsers/Browser-compatibility-matrix.md b/docs/Browsers/Browser-compatibility-matrix.md index b316a6b4f..ddfd499e1 100644 --- a/docs/Browsers/Browser-compatibility-matrix.md +++ b/docs/Browsers/Browser-compatibility-matrix.md @@ -19,7 +19,7 @@ Any telemetry at any Firefox based browser can be additionally most locked down Browser | [PWA](PWA) | Mobile | Desktop | OS ------- | ----| ------ | ------- | ------- [Mypal](https://github.com/reactosapps/apps/releases/download/0.01/mypal-27.9.4.win32.installer.exe) | No | No | Newest | For 32bit ReactOS/WinXP/Win7/etc [issue](https://github.com/wekan/wekan/issues/3132) -Firefox | Android Yes | Android Newest | Newest | Win/Mac/Linux/BSD/RasPi. [Haiku](https://discuss.haiku-os.org/t/progress-on-porting-firefox/13493/143) not tested yet - [HN](https://news.ycombinator.com/item?id=41214762). +Firefox | No | Newest | Newest | iOS/Android/Win/Mac/Linux/BSD/RasPi. At iOS uses Safari engine, elsewhere Firefox engine. [Haiku](https://discuss.haiku-os.org/t/progress-on-porting-firefox/13493/143) not tested yet - [HN](https://news.ycombinator.com/item?id=41214762). [Waterfox](https://www.waterfox.net) | No | No | Yes | Win/Mac/Linux, more private than Firefox, no tracking. [Repo](https://github.com/BrowserWorks/Waterfox) [Floorp](https://floorp.app) | No | No | Yes | [Win/Mac/Linux](https://github.com/Floorp-Projects/Floorp/releases), more private than Firefox, [Repo](https://github.com/Floorp-Projects/Floorp) [Mercury](https://thorium.rocks/mercury) | No | No | Yes | [Win/Linux](https://github.com/Alex313031/Mercury/releases), more private than Firefox, [Repo](https://github.com/Alex313031/Mercury) @@ -61,7 +61,7 @@ Internet Explorer | No | No | No | No | No - Apache 2.0 or MIT license - Repo: https://github.com/versotile-org/verso -## Ladybird based, not tested yet: +## Ladybird based, not yet compatible with WeKan - BSD-2-Clause license - Website: https://ladybird.org @@ -77,7 +77,7 @@ Benefits: ## Desktop app with Meteor -https://forums.meteor.com/t/desktop-electron-meteor-app-with-todesktop/60904 +- https://forums.meteor.com/t/desktop-electron-meteor-app-with-todesktop/60904 ## Optional Payments From 2de9b94b01444f4f291e71c1f4b01bbd9b433fc1 Mon Sep 17 00:00:00 2001 From: Lauri Ojansivu <x@xet7.org> Date: Mon, 31 Mar 2025 21:50:47 +0300 Subject: [PATCH 59/65] Updated ChangeLog. --- CHANGELOG.md | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 808d37362..495be0185 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -15,6 +15,17 @@ Fixing other platforms In Progress. [How to upgrade WeKan](https://github.com/wekan/wekan/issues/4585) +# Upcoming WeKan ® release + +This release adds the following updates: + +- Updated Browser compatibility matrix, adding Iris browser at RISC OS Direct, and fixing links. + [Part1](https://github.com/wekan/wekan/commit/db5346fc5c7407160f381c0fcf4a87204206ed55), + [Part2](https://github.com/wekan/wekan/commit/05d1736f5f21e93e83b2e25029c6cab6c5106398). + Thanks to xet7. + +Thanks to above GitHub users for their contributions and translators for their translations. + # v7.84 2025-03-23 WeKan ® release This release adds the following new features: From 23bac7355997ec96a4d3fd206acb1161f0d05112 Mon Sep 17 00:00:00 2001 From: Lauri Ojansivu <x@xet7.org> Date: Sat, 5 Apr 2025 17:39:29 +0300 Subject: [PATCH 60/65] Updated translations. --- imports/i18n/data/es.i18n.json | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/imports/i18n/data/es.i18n.json b/imports/i18n/data/es.i18n.json index 4f879845e..ab1b60637 100644 --- a/imports/i18n/data/es.i18n.json +++ b/imports/i18n/data/es.i18n.json @@ -16,9 +16,9 @@ "act-uncheckedItem": "desmarcado el elemento __checklistItem__ de la lista de verificación __checklist__ de la tarjeta __card__ de la lista __list__ del carril __swimlane__ del tablero __board__", "act-completeChecklist": "completada la lista de verificación __checklist__ de la tarjeta __card__ de la lista __list__ del carril __swimlane__ del tablero __board__", "act-uncompleteChecklist": "no completada la lista de verificación __checklist__ de la tarjeta __card__ de la lista __list__ del carril __swimlane__ del tablero __board__", - "act-addComment": "comentario en la tarjeta__card__: __comment__ de la lista __list__ del carril __swimlane__ del tablero __board__", - "act-editComment": "comentario editado en la tarjeta __card__: __comment__ de la lista __list__ del carril __swimlane__ del tablero __board__", - "act-deleteComment": "comentario eliminado en la tarjeta __card__: __comment__ de la lista __list__ del carril __swimlane__ del tablero __board__", + "act-addComment": "ha comentado en la tarjeta__card__: __comment__ de la lista __list__ del carril __swimlane__ del tablero __board__", + "act-editComment": "ha editado la tarjeta __card__: __comment__ de la lista __list__ del carril __swimlane__ del tablero __board__", + "act-deleteComment": "ha borrado el comentario en la tarjeta __card__: __comment__ de la lista __list__ del carril __swimlane__ del tablero __board__", "act-createBoard": "creó el tablero __board__", "act-createSwimlane": "creó el carril de flujo __swimlane__ en el tablero __board__", "act-createCard": "creada la tarjeta __card__ de la lista __list__ del carril __swimlane__ del tablero __board__", From 01950cc796697fa201ac9e4376cb204d308e8181 Mon Sep 17 00:00:00 2001 From: Lauri Ojansivu <x@xet7.org> Date: Mon, 21 Apr 2025 16:07:43 +0300 Subject: [PATCH 61/65] Fix board sidebar menu doesn't open in mobile. Thanks to mimZD and xet7 ! Fixes #5736 --- client/components/sidebar/sidebar.css | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/client/components/sidebar/sidebar.css b/client/components/sidebar/sidebar.css index 7877be8e8..7dffd8256 100644 --- a/client/components/sidebar/sidebar.css +++ b/client/components/sidebar/sidebar.css @@ -177,7 +177,7 @@ @media screen and (max-width: 800px) { .board-sidebar { width: 100%; - right: -100%; + left: 0; } .board-sidebar .sidebar-content .hide-btn { width: 40px; From b7e76fcfa16e09004cda921e5ed74ba583b5308a Mon Sep 17 00:00:00 2001 From: Lauri Ojansivu <x@xet7.org> Date: Mon, 21 Apr 2025 16:10:24 +0300 Subject: [PATCH 62/65] Updated ChangeLog. --- CHANGELOG.md | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 495be0185..a43e096f7 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -24,6 +24,11 @@ This release adds the following updates: [Part2](https://github.com/wekan/wekan/commit/05d1736f5f21e93e83b2e25029c6cab6c5106398). Thanks to xet7. +and fixes the following bugs: + +- [Fix board sidebar menu doesn't open in mobile](https://github.com/wekan/wekan/commit/01950cc796697fa201ac9e4376cb204d308e8181). + Thanks to mimZD and xet7. + Thanks to above GitHub users for their contributions and translators for their translations. # v7.84 2025-03-23 WeKan ® release From b4b442f8a898bdb4db27c3c134ea140201cf2163 Mon Sep 17 00:00:00 2001 From: Lauri Ojansivu <x@xet7.org> Date: Mon, 21 Apr 2025 16:13:56 +0300 Subject: [PATCH 63/65] Updated translations. --- imports/i18n/data/ca@valencia.i18n.json | 1272 +++++++++++++++++++++++ imports/i18n/data/en_SG.i18n.json | 1272 +++++++++++++++++++++++ 2 files changed, 2544 insertions(+) create mode 100644 imports/i18n/data/ca@valencia.i18n.json create mode 100644 imports/i18n/data/en_SG.i18n.json diff --git a/imports/i18n/data/ca@valencia.i18n.json b/imports/i18n/data/ca@valencia.i18n.json new file mode 100644 index 000000000..614494d0c --- /dev/null +++ b/imports/i18n/data/ca@valencia.i18n.json @@ -0,0 +1,1272 @@ +{ + "accept": "Acceptar", + "act-activity-notify": "Notificació d'activitat", + "act-addAttachment": "added attachment __attachment__ to card __card__ at list __list__ at swimlane __swimlane__ at board __board__", + "act-deleteAttachment": "deleted attachment __attachment__ at card __card__ at list __list__ at swimlane __swimlane__ at board __board__", + "act-addSubtask": "added subtask __subtask__ to card __card__ at list __list__ at swimlane __swimlane__ at board __board__", + "act-addLabel": "Added label __label__ to card __card__ at list __list__ at swimlane __swimlane__ at board __board__", + "act-addedLabel": "Added label __label__ to card __card__ at list __list__ at swimlane __swimlane__ at board __board__", + "act-removeLabel": "Removed label __label__ from card __card__ at list __list__ at swimlane __swimlane__ at board __board__", + "act-removedLabel": "Removed label __label__ from card __card__ at list __list__ at swimlane __swimlane__ at board __board__", + "act-addChecklist": "added checklist __checklist__ to card __card__ at list __list__ at swimlane __swimlane__ at board __board__", + "act-addChecklistItem": "added checklist item __checklistItem__ to checklist __checklist__ at card __card__ at list __list__ at swimlane __swimlane__ at board __board__", + "act-removeChecklist": "removed checklist __checklist__ from card __card__ at list __list__ at swimlane __swimlane__ at board __board__", + "act-removeChecklistItem": "removed checklist item __checklistItem__ from checklist __checkList__ at card __card__ at list __list__ at swimlane __swimlane__ at board __board__", + "act-checkedItem": "checked __checklistItem__ of checklist __checklist__ at card __card__ at list __list__ at swimlane __swimlane__ at board __board__", + "act-uncheckedItem": "unchecked __checklistItem__ of checklist __checklist__ at card __card__ at list __list__ at swimlane __swimlane__ at board __board__", + "act-completeChecklist": "completed checklist __checklist__ at card __card__ at list __list__ at swimlane __swimlane__ at board __board__", + "act-uncompleteChecklist": "uncompleted checklist __checklist__ at card __card__ at list __list__ at swimlane __swimlane__ at board __board__", + "act-addComment": "commented on card __card__: __comment__ at list __list__ at swimlane __swimlane__ at board __board__", + "act-editComment": "edited comment on card __card__: __comment__ at list __list__ at swimlane __swimlane__ at board __board__", + "act-deleteComment": "deleted comment on card __card__: __comment__ at list __list__ at swimlane __swimlane__ at board __board__", + "act-createBoard": "tauler creat __board__", + "act-createSwimlane": "created swimlane __swimlane__ to board __board__", + "act-createCard": "created card __card__ to list __list__ at swimlane __swimlane__ at board __board__", + "act-createCustomField": "created custom field __customField__ at board __board__", + "act-deleteCustomField": "deleted custom field __customField__ at board __board__", + "act-setCustomField": "edited custom field __customField__: __customFieldValue__ at card __card__ at list __list__ at swimlane __swimlane__ at board __board__", + "act-createList": "added list __list__ to board __board__", + "act-addBoardMember": "added member __member__ to board __board__", + "act-archivedBoard": "Board __board__ moved to Archive", + "act-archivedCard": "Card __card__ at list __list__ at swimlane __swimlane__ at board __board__ moved to Archive", + "act-archivedList": "List __list__ at swimlane __swimlane__ at board __board__ moved to Archive", + "act-archivedSwimlane": "Swimlane __swimlane__ at board __board__ moved to Archive", + "act-importBoard": "imported board __board__", + "act-importCard": "imported card __card__ to list __list__ at swimlane __swimlane__ at board __board__", + "act-importList": "imported list __list__ to swimlane __swimlane__ at board __board__", + "act-joinMember": "added member __member__ to card __card__ at list __list__ at swimlane __swimlane__ at board __board__", + "act-moveCard": "moved card __card__ at board __board__ from list __oldList__ at swimlane __oldSwimlane__ to list __list__ at swimlane __swimlane__", + "act-moveCardToOtherBoard": "moved card __card__ from list __oldList__ at swimlane __oldSwimlane__ at board __oldBoard__ to list __list__ at swimlane __swimlane__ at board __board__", + "act-removeBoardMember": "removed member __member__ from board __board__", + "act-restoredCard": "restored card __card__ to list __list__ at swimlane __swimlane__ at board __board__", + "act-unjoinMember": "removed member __member__ from card __card__ at list __list__ at swimlane __swimlane__ at board __board__", + "act-withBoardTitle": "__board__", + "act-withCardTitle": "[__board__] __card__", + "actions": "Actions", + "activities": "Activities", + "activity": "Activity", + "activity-added": "added %s to %s", + "activity-archived": "%s moved to Archive", + "activity-attached": "attached %s to %s", + "activity-created": "created %s", + "activity-changedListTitle": "renamed list to %s", + "activity-customfield-created": "created custom field %s", + "activity-excluded": "excluded %s from %s", + "activity-imported": "imported %s into %s from %s", + "activity-imported-board": "imported %s from %s", + "activity-joined": "joined %s", + "activity-moved": "moved %s from %s to %s", + "activity-on": "on %s", + "activity-removed": "removed %s from %s", + "activity-sent": "sent %s to %s", + "activity-unjoined": "unjoined %s", + "activity-subtask-added": "added subtask to %s", + "activity-checked-item": "checked %s in checklist %s of %s", + "activity-unchecked-item": "unchecked %s in checklist %s of %s", + "activity-checklist-added": "added checklist to %s", + "activity-checklist-removed": "removed a checklist from %s", + "activity-checklist-completed": "completed checklist %s of %s", + "activity-checklist-uncompleted": "uncompleted the checklist %s of %s", + "activity-checklist-item-added": "added checklist item to '%s' in %s", + "activity-checklist-item-removed": "removed a checklist item from '%s' in %s", + "add": "Add", + "activity-checked-item-card": "checked %s in checklist %s", + "activity-unchecked-item-card": "unchecked %s in checklist %s", + "activity-checklist-completed-card": "completed checklist __checklist__ at card __card__ at list __list__ at swimlane __swimlane__ at board __board__", + "activity-checklist-uncompleted-card": "uncompleted the checklist %s", + "activity-editComment": "edited comment %s", + "activity-deleteComment": "deleted comment %s", + "activity-receivedDate": "edited received date to %s of %s", + "activity-startDate": "edited start date to %s of %s", + "activity-dueDate": "edited due date to %s of %s", + "activity-endDate": "edited end date to %s of %s", + "add-attachment": "Add Attachment", + "add-board": "Add Board", + "add-template": "Add Template", + "add-card": "Add Card", + "add-card-to-top-of-list": "Add Card to Top of List", + "add-card-to-bottom-of-list": "Add Card to Bottom of List", + "setListWidthPopup-title": "Set Widths", + "set-list-width": "Set Widths", + "set-list-width-value": "Set Min & Max Widths (pixels)", + "list-width-error-message": "List widths must be integers greater than 100", + "keyboard-shortcuts-enabled": "Keyboard shortcuts enabled. Click to disable.", + "keyboard-shortcuts-disabled": "Keyboard shortcuts disabled. Click to enable.", + "setSwimlaneHeightPopup-title": "Set Swimlane Height", + "set-swimlane-height": "Set Swimlane Height", + "set-swimlane-height-value": "Swimlane Height (pixels)", + "swimlane-height-error-message": "Swimlane height must be a positive integer", + "add-swimlane": "Add Swimlane", + "add-subtask": "Add Subtask", + "add-checklist": "Add Checklist", + "add-checklist-item": "Add an item to checklist", + "close-add-checklist-item": "Close add an item to checklist form", + "close-edit-checklist-item": "Close edit an item to checklist form", + "convertChecklistItemToCardPopup-title": "Convert to Card", + "add-cover": "Add cover image to minicard", + "add-label": "Add Label", + "add-list": "Add List", + "add-after-list": "Add After List", + "add-members": "Add Members", + "added": "Added", + "addMemberPopup-title": "Members", + "memberPopup-title": "Member Settings", + "admin": "Admin", + "admin-desc": "Can view and edit cards, remove members, and change settings for the board.", + "admin-announcement": "Announcement", + "admin-announcement-active": "Active System-Wide Announcement", + "admin-announcement-title": "Announcement from Administrator", + "all-boards": "All Boards", + "and-n-other-card": "And __count__ other card", + "and-n-other-card_plural": "And __count__ other cards", + "apply": "Apply", + "app-is-offline": "Loading, please wait. Refreshing the page will cause data loss. If loading does not work, please check that server has not stopped.", + "app-try-reconnect": "Try to reconnect.", + "archive": "Move to Archive", + "archive-all": "Move All to Archive", + "archive-board": "Move Board to Archive", + "archive-card": "Move Card to Archive", + "archive-list": "Move List to Archive", + "archive-swimlane": "Move Swimlane to Archive", + "archive-selection": "Move selection to Archive", + "archiveBoardPopup-title": "Move Board to Archive?", + "archived-items": "Archive", + "archived-boards": "Boards in Archive", + "restore-board": "Restore Board", + "no-archived-boards": "No Boards in Archive.", + "archives": "Archive", + "template": "Template", + "templates": "Templates", + "template-container": "Template Container", + "add-template-container": "Add Template Container", + "assign-member": "Assign member", + "attached": "attached", + "attachment": "Attachment", + "attachment-delete-pop": "Deleting an attachment is permanent. There is no undo.", + "attachmentDeletePopup-title": "Delete Attachment?", + "attachments": "Attachments", + "auto-watch": "Automatically watch boards when they are created", + "avatar-too-big": "The avatar is too large (__size__ max)", + "back": "Back", + "board-change-color": "Change color", + "board-change-background-image": "Change Background Image", + "board-background-image-url": "Background Image URL", + "add-background-image": "Add Background Image", + "remove-background-image": "Remove Background Image", + "show-at-all-boards-page" : "Show at All Boards page", + "board-info-on-my-boards" : "All Boards Settings", + "boardInfoOnMyBoardsPopup-title" : "All Boards Settings", + "boardInfoOnMyBoards-title": "All Boards Settings", + "show-card-counter-per-list": "Show card count per list", + "show-board_members-avatar": "Show Board members avatars", + "board-nb-stars": "%s stars", + "board-not-found": "Board not found", + "board-private-info": "This board will be <strong>private</strong>.", + "board-public-info": "This board will be <strong>public</strong>.", + "board-drag-drop-reorder-or-click-open": "Drag and drop to reorder board icons. Click board icon to open board.", + "boardChangeColorPopup-title": "Change Board Background", + "boardChangeBackgroundImagePopup-title": "Change Background Image", + "allBoardsChangeColorPopup-title": "Change color", + "allBoardsChangeBackgroundImagePopup-title": "Change Background Image", + "boardChangeTitlePopup-title": "Rename Board", + "boardChangeVisibilityPopup-title": "Change Visibility", + "boardChangeWatchPopup-title": "Change Watch", + "boardMenuPopup-title": "Board Settings", + "allBoardsMenuPopup-title": "Settings", + "boardChangeViewPopup-title": "Board View", + "boards": "Boards", + "board-view": "Board View", + "board-view-cal": "Calendar", + "board-view-swimlanes": "Swimlanes", + "board-view-collapse": "Collapse", + "board-view-gantt": "Gantt", + "board-view-lists": "Lists", + "bucket-example": "Like “Bucket List” for example", + "cancel": "Cancel", + "card-archived": "This card is moved to Archive.", + "board-archived": "This board is moved to Archive.", + "card-comments-title": "This card has %s comment.", + "card-delete-notice": "Deleting is permanent. You will lose all actions associated with this card.", + "card-delete-pop": "All actions will be removed from the activity feed and you won't be able to re-open the card. There is no undo.", + "card-delete-suggest-archive": "You can move a card to Archive to remove it from the board and preserve the activity.", + "card-archive-pop": "Card will not be visible at this list after archiving card.", + "card-archive-suggest-cancel": "You can later restore card from Archive.", + "card-due": "Due", + "card-due-on": "Due on", + "card-spent": "Spent Time", + "card-edit-attachments": "Edit attachments", + "card-edit-custom-fields": "Edit custom fields", + "card-edit-labels": "Edit labels", + "card-edit-members": "Edit members", + "card-labels-title": "Change the labels for the card.", + "card-members-title": "Add or remove members of the board from the card.", + "card-start": "Start", + "card-start-on": "Starts on", + "cardAttachmentsPopup-title": "Attach From", + "cardCustomField-datePopup-title": "Change date", + "cardCustomFieldsPopup-title": "Edit custom fields", + "cardStartVotingPopup-title": "Start a vote", + "positiveVoteMembersPopup-title": "Proponents", + "negativeVoteMembersPopup-title": "Opponents", + "card-edit-voting": "Edit voting", + "editVoteEndDatePopup-title": "Change vote end date", + "allowNonBoardMembers": "Allow all logged in users", + "vote-question": "Voting question", + "vote-public": "Show who voted what", + "vote-for-it": "for it", + "vote-against": "against", + "deleteVotePopup-title": "Delete vote?", + "vote-delete-pop": "Deleting is permanent. You will lose all actions associated with this vote.", + "cardStartPlanningPokerPopup-title": "Start a Planning Poker", + "card-edit-planning-poker": "Edit Planning Poker", + "editPokerEndDatePopup-title": "Change Planning Poker vote end date", + "poker-question": "Planning Poker", + "poker-one": "1", + "poker-two": "2", + "poker-three": "3", + "poker-five": "5", + "poker-eight": "8", + "poker-thirteen": "13", + "poker-twenty": "20", + "poker-forty": "40", + "poker-oneHundred": "100", + "poker-unsure": "?", + "poker-finish": "Finish", + "poker-result-votes": "Votes", + "poker-result-who": "Who", + "poker-replay": "Replay", + "set-estimation": "Set Estimation", + "deletePokerPopup-title": "Delete planning poker?", + "poker-delete-pop": "Deleting is permanent. You will lose all actions associated with this planning poker.", + "cardDeletePopup-title": "Delete Card?", + "cardArchivePopup-title": "Archive Card?", + "cardDetailsActionsPopup-title": "Card Actions", + "cardLabelsPopup-title": "Labels", + "cardMembersPopup-title": "Members", + "cardMorePopup-title": "More", + "cardTemplatePopup-title": "Create template", + "cards": "Cards", + "cards-count": "Cards", + "cards-count-one": "Card", + "casSignIn": "Sign In with CAS", + "cardType-card": "Card", + "cardType-linkedCard": "Linked Card", + "cardType-linkedBoard": "Linked Board", + "change": "Change", + "change-avatar": "Change Avatar", + "change-password": "Change Password", + "change-permissions": "Change permissions", + "change-settings": "Change Settings", + "changeAvatarPopup-title": "Change Avatar", + "changeLanguagePopup-title": "Change Language", + "changePasswordPopup-title": "Change Password", + "changePermissionsPopup-title": "Change Permissions", + "changeSettingsPopup-title": "Change Settings", + "subtasks": "Subtasks", + "checklists": "Checklists", + "click-to-star": "Click to star this board.", + "click-to-unstar": "Click to unstar this board.", + "click-to-enable-auto-width": "Auto list width disabled. Click to enable.", + "click-to-disable-auto-width": "Auto list width enabled. Click to disable.", + "auto-list-width": "Auto list width", + "clipboard": "Clipboard or drag & drop", + "close": "Close", + "close-board": "Close Board", + "close-board-pop": "You will be able to restore the board by clicking the “Archive” button from the home header.", + "close-card": "Close Card", + "color-black": "black", + "color-blue": "blue", + "color-crimson": "crimson", + "color-darkgreen": "darkgreen", + "color-gold": "gold", + "color-gray": "gray", + "color-green": "green", + "color-indigo": "indigo", + "color-lime": "lime", + "color-magenta": "magenta", + "color-mistyrose": "mistyrose", + "color-navy": "navy", + "color-orange": "orange", + "color-paleturquoise": "paleturquoise", + "color-peachpuff": "peachpuff", + "color-pink": "pink", + "color-plum": "plum", + "color-purple": "purple", + "color-red": "red", + "color-saddlebrown": "saddlebrown", + "color-silver": "silver", + "color-sky": "sky", + "color-slateblue": "slateblue", + "color-white": "white", + "color-yellow": "yellow", + "unset-color": "Unset", + "comments": "Comments", + "comment": "Comment", + "comment-placeholder": "Write Comment", + "comment-only": "Comment only", + "comment-only-desc": "Can comment on cards only.", + "comment-delete": "Are you sure you want to delete the comment?", + "deleteCommentPopup-title": "Delete comment?", + "no-comments": "No comments", + "no-comments-desc": "Can not see comments and activities.", + "worker": "Worker", + "worker-desc": "Can only move cards, assign itself to card and comment.", + "computer": "Computer", + "confirm-subtask-delete-popup": "Are you sure you want to delete subtask?", + "confirm-checklist-delete-popup": "Are you sure you want to delete the checklist?", + "subtaskDeletePopup-title": "Delete Subtask?", + "checklistDeletePopup-title": "Delete Checklist?", + "copy-card-link-to-clipboard": "Copy card link to clipboard", + "copy-text-to-clipboard": "Copy text to clipboard", + "linkCardPopup-title": "Link Card", + "searchElementPopup-title": "Search", + "copyCardPopup-title": "Copy Card", + "copyManyCardsPopup-title": "Copy Template to Many Cards", + "copyManyCardsPopup-instructions": "Destination Card Titles and Descriptions in this JSON format", + "copyManyCardsPopup-format": "[ {\"title\": \"First card title\", \"description\":\"First card description\"}, {\"title\":\"Second card title\",\"description\":\"Second card description\"},{\"title\":\"Last card title\",\"description\":\"Last card description\"} ]", + "create": "Create", + "createBoardPopup-title": "Create Board", + "chooseBoardSourcePopup-title": "Import board", + "createLabelPopup-title": "Create Label", + "createCustomField": "Create Field", + "createCustomFieldPopup-title": "Create Field", + "current": "current", + "custom-field-delete-pop": "There is no undo. This will remove this custom field from all cards and destroy its history.", + "custom-field-checkbox": "Checkbox", + "custom-field-currency": "Currency", + "custom-field-currency-option": "Currency Code", + "custom-field-date": "Date", + "custom-field-dropdown": "Dropdown List", + "custom-field-dropdown-none": "(none)", + "custom-field-dropdown-options": "List Options", + "custom-field-dropdown-options-placeholder": "Press enter to add more options", + "custom-field-dropdown-unknown": "(unknown)", + "custom-field-number": "Number", + "custom-field-text": "Text", + "custom-fields": "Custom Fields", + "date": "Date", + "decline": "Decline", + "default-avatar": "Default avatar", + "delete": "Delete", + "deleteCustomFieldPopup-title": "Delete Custom Field?", + "deleteLabelPopup-title": "Delete Label?", + "description": "Description", + "disambiguateMultiLabelPopup-title": "Disambiguate Label Action", + "disambiguateMultiMemberPopup-title": "Disambiguate Member Action", + "discard": "Discard", + "done": "Done", + "download": "Download", + "edit": "Edit", + "edit-avatar": "Change Avatar", + "edit-profile": "Edit Profile", + "edit-wip-limit": "Edit WIP Limit", + "soft-wip-limit": "Soft WIP Limit", + "editCardStartDatePopup-title": "Change start date", + "editCardDueDatePopup-title": "Change due date", + "editCustomFieldPopup-title": "Edit Field", + "addReactionPopup-title": "Add reaction", + "editCardSpentTimePopup-title": "Change spent time", + "editLabelPopup-title": "Change Label", + "editNotificationPopup-title": "Edit Notification", + "editProfilePopup-title": "Edit Profile", + "email": "Email", + "email-enrollAccount-subject": "An account created for you on __siteName__", + "email-enrollAccount-text": "Hello __user__,\n\nTo start using the service, simply click the link below.\n\n__url__\n\nThanks.", + "email-fail": "Sending email failed", + "email-fail-text": "Error trying to send email", + "email-invalid": "Invalid email", + "email-invite": "Invite via Email", + "email-invite-subject": "__inviter__ sent you an invitation", + "email-invite-text": "Dear __user__,\n\n__inviter__ invites you to join board \"__board__\" for collaborations.\n\nPlease follow the link below:\n\n__url__\n\nThanks.", + "email-resetPassword-subject": "Reset your password on __siteName__", + "email-resetPassword-text": "Hello __user__,\n\nTo reset your password, simply click the link below.\n\n__url__\n\nThanks.", + "email-sent": "Email sent", + "email-verifyEmail-subject": "Verify your email address on __siteName__", + "email-verifyEmail-text": "Hello __user__,\n\nTo verify your account email, simply click the link below.\n\n__url__\n\nThanks.", + "enable-vertical-scrollbars": "Enable vertical scrollbars", + "enable-wip-limit": "Enable WIP Limit", + "error-board-doesNotExist": "This board does not exist", + "error-board-notAdmin": "You need to be admin of this board to do that", + "error-board-notAMember": "You need to be a member of this board to do that", + "error-json-malformed": "Your text is not valid JSON", + "error-json-schema": "Your JSON data does not include the proper information in the correct format", + "error-csv-schema": "Your CSV(Comma Separated Values)/TSV (Tab Separated Values) does not include the proper information in the correct format ", + "error-list-doesNotExist": "This list does not exist", + "error-user-doesNotExist": "This user does not exist", + "error-user-notAllowSelf": "You can not invite yourself", + "error-user-notCreated": "This user is not created", + "error-username-taken": "This username is already taken", + "error-orgname-taken": "This organization name is already taken", + "error-teamname-taken": "This team name is already taken", + "error-email-taken": "Email has already been taken", + "export-board": "Export board", + "export-board-json": "Export board to JSON", + "export-board-csv": "Export board to CSV", + "export-board-tsv": "Export board to TSV", + "export-board-excel": "Export board to Excel", + "user-can-not-export-excel": "User can not export Excel", + "export-board-html": "Export board to HTML", + "export-card": "Export card", + "export-card-pdf": "Export card to PDF", + "user-can-not-export-card-to-pdf": "User can not export card to PDF", + "exportBoardPopup-title": "Export board", + "exportCardPopup-title": "Export card", + "sort": "Sort", + "sorted": "Sorted", + "remove-sort": "Remove sort", + "sort-desc": "Click to Sort List", + "list-sort-by": "Sort the List By:", + "list-label-modifiedAt": "Last Access Time", + "list-label-title": "Name of the List", + "list-label-sort": "Your Manual Order", + "list-label-short-modifiedAt": "(L)", + "list-label-short-title": "(N)", + "list-label-short-sort": "(M)", + "filter": "Filter", + "filter-cards": "Filter Cards or Lists", + "filter-dates-label": "Filter by date", + "filter-no-due-date": "No due date", + "filter-overdue": "Overdue", + "filter-due-today": "Due today", + "filter-due-this-week": "Due this week", + "filter-due-next-week": "Due next week", + "filter-due-tomorrow": "Due tomorrow", + "list-filter-label": "Filter List by Title", + "filter-clear": "Clear filter", + "filter-labels-label": "Filter by label", + "filter-no-label": "No label", + "filter-member-label": "Filter by member", + "filter-no-member": "No member", + "filter-assignee-label": "Filter by assignee", + "filter-no-assignee": "No assignee", + "filter-custom-fields-label": "Filter by Custom Fields", + "filter-no-custom-fields": "No Custom Fields", + "filter-show-archive": "Show archived lists", + "filter-hide-empty": "Hide empty lists", + "filter-on": "Filter is on", + "filter-on-desc": "You are filtering cards on this board. Click here to edit filter.", + "filter-to-selection": "Filter to selection", + "other-filters-label": "Other Filters", + "advanced-filter-label": "Advanced Filter", + "advanced-filter-description": "Advanced Filter allows to write a string containing following operators: == != <= >= && || ( ) A space is used as a separator between the Operators. You can filter for all Custom Fields by typing their names and values. For Example: Field1 == Value1. Note: If fields or values contains spaces, you need to encapsulate them into single quotes. For Example: 'Field 1' == 'Value 1'. For single control characters (' \\/) to be skipped, you can use \\. For example: Field1 == I\\'m. Also you can combine multiple conditions. For Example: F1 == V1 || F1 == V2. Normally all operators are interpreted from left to right. You can change the order by placing brackets. For Example: F1 == V1 && ( F2 == V2 || F2 == V3 ). Also you can search text fields using regex: F1 == /Tes.*/i", + "fullname": "Full Name", + "header-logo-title": "Go back to your boards page.", + "show-activities": "Show Activities", + "headerBarCreateBoardPopup-title": "Create Board", + "home": "Home", + "import": "Import", + "impersonate-user": "Impersonate user", + "link": "Link", + "import-board": "import board", + "import-board-c": "Import board", + "import-board-title-trello": "Import board from Trello", + "import-board-title-wekan": "Import board from previous export", + "import-board-title-csv": "Import board from CSV/TSV", + "from-trello": "From Trello", + "from-wekan": "From previous export", + "from-csv": "From CSV/TSV", + "import-board-instruction-trello": "In your Trello board, go to 'Menu', then 'More', 'Print and Export', 'Export JSON', and copy the resulting text.", + "import-board-instruction-csv": "Paste in your Comma Separated Values(CSV)/ Tab Separated Values (TSV) .", + "import-board-instruction-wekan": "In your board, go to 'Menu', then 'Export board', and copy the text in the downloaded file.", + "import-board-instruction-about-errors": "If you get errors when importing board, sometimes importing still works, and board is at All Boards page.", + "import-json-placeholder": "Paste your valid JSON data here", + "import-csv-placeholder": "Paste your valid CSV/TSV data here", + "import-map-members": "Map members", + "import-members-map": "Your imported board has some members. Please map the members you want to import to your users", + "import-members-map-note": "Note: Unmapped members will be assigned to the current user.", + "import-show-user-mapping": "Review members mapping", + "import-user-select": "Pick your existing user you want to use as this member", + "importMapMembersAddPopup-title": "Select member", + "info": "Version", + "initials": "Initials", + "invalid-date": "Invalid date", + "invalid-time": "Invalid time", + "invalid-user": "Invalid user", + "joined": "joined", + "just-invited": "You are just invited to this board", + "keyboard-shortcuts": "Keyboard shortcuts", + "label-create": "Create Label", + "label-default": "%s label (default)", + "label-delete-pop": "There is no undo. This will remove this label from all cards and destroy its history.", + "labels": "Labels", + "language": "Language", + "last-admin-desc": "You can’t change roles because there must be at least one admin.", + "leave-board": "Leave Board", + "leave-board-pop": "Are you sure you want to leave __boardTitle__? You will be removed from all cards on this board.", + "leaveBoardPopup-title": "Leave Board ?", + "link-card": "Link to this card", + "list-archive-cards": "Move all cards in this list to Archive", + "list-archive-cards-pop": "This will remove all the cards in this list from the board. To view cards in Archive and bring them back to the board, click “Menu” > “Archive”.", + "list-move-cards": "Move all cards in this list", + "list-select-cards": "Select all cards in this list", + "set-color-list": "Set Color", + "listActionPopup-title": "List Actions", + "settingsUserPopup-title": "User Settings", + "settingsTeamPopup-title": "Team Settings", + "settingsOrgPopup-title": "Organization Settings", + "swimlaneActionPopup-title": "Swimlane Actions", + "swimlaneAddPopup-title": "Add a Swimlane below", + "listImportCardPopup-title": "Import a Trello card", + "listImportCardsTsvPopup-title": "Import Excel CSV/TSV", + "listMorePopup-title": "More", + "link-list": "Link to this list", + "list-delete-pop": "All actions will be removed from the activity feed and you won't be able to recover the list. There is no undo.", + "list-delete-suggest-archive": "You can move a list to Archive to remove it from the board and preserve the activity.", + "lists": "Lists", + "swimlanes": "Swimlanes", + "log-out": "Log Out", + "log-in": "Log In", + "loginPopup-title": "Log In", + "memberMenuPopup-title": "Member Settings", + "members": "Members", + "menu": "Menu", + "move-selection": "Move selection", + "moveCardPopup-title": "Move Card", + "moveCardToBottom-title": "Move to Bottom", + "moveCardToTop-title": "Move to Top", + "moveSelectionPopup-title": "Move selection", + "multi-selection": "Multi-Selection", + "multi-selection-label": "Set label for selection", + "multi-selection-member": "Set member for selection", + "multi-selection-on": "Multi-Selection is on", + "muted": "Muted", + "muted-info": "You will never be notified of any changes in this board", + "my-boards": "My Boards", + "name": "Name", + "no-archived-cards": "No cards in Archive.", + "no-archived-lists": "No lists in Archive.", + "no-archived-swimlanes": "No swimlanes in Archive.", + "no-results": "No results", + "normal": "Normal", + "normal-desc": "Can view and edit cards. Can't change settings.", + "not-accepted-yet": "Invitation not accepted yet", + "notify-participate": "Receive updates to any cards you participate as creator or member", + "notify-watch": "Receive updates to any boards, lists, or cards you’re watching", + "optional": "optional", + "or": "or", + "page-maybe-private": "This page may be private. You may be able to view it by <a href='%s'>logging in</a>.", + "page-not-found": "Page not found.", + "password": "Password", + "paste-or-dragdrop": "to paste, or drag & drop image file to it (image only)", + "participating": "Participating", + "preview": "Preview", + "previewAttachedImagePopup-title": "Preview", + "previewClipboardImagePopup-title": "Preview", + "private": "Private", + "private-desc": "This board is private. Only people added to the board can view and edit it.", + "profile": "Profile", + "public": "Public", + "public-desc": "This board is public. It's visible to anyone with the link and will show up in search engines like Google. Only people added to the board can edit.", + "quick-access-description": "Star a board to add a shortcut in this bar.", + "remove-cover": "Remove cover image from minicard", + "remove-from-board": "Remove from Board", + "remove-label": "Remove Label", + "listDeletePopup-title": "Delete List ?", + "remove-member": "Remove Member", + "remove-member-from-card": "Remove from Card", + "remove-member-pop": "Remove __name__ (__username__) from __boardTitle__? The member will be removed from all cards on this board. They will receive a notification.", + "removeMemberPopup-title": "Remove Member?", + "rename": "Rename", + "rename-board": "Rename Board", + "restore": "Restore", + "rescue-card-description": "Show rescue dialogue before closing for unsaved card descriptions", + "rescue-card-description-dialogue": "Overwrite current card description with your changes?", + "save": "Save", + "search": "Search", + "rules": "Rules", + "search-cards": "Search from card/list titles, descriptions and custom fields on this board", + "search-example": "Write text you search and press Enter", + "select-color": "Select Color", + "select-board": "Select Board", + "set-wip-limit-value": "Set a limit for the maximum number of tasks in this list", + "setWipLimitPopup-title": "Set WIP Limit", + "shortcut-add-self": "Add yourself to current card", + "shortcut-assign-self": "Assign yourself to current card", + "shortcut-autocomplete-emoji": "Autocomplete emoji", + "shortcut-autocomplete-members": "Autocomplete members", + "shortcut-clear-filters": "Clear all filters", + "shortcut-close-dialog": "Close Dialog", + "shortcut-filter-my-cards": "Filter my cards", + "shortcut-filter-my-assigned-cards": "Filter my assigned cards", + "shortcut-show-shortcuts": "Bring up this shortcuts list", + "shortcut-toggle-filterbar": "Toggle Filter Sidebar", + "shortcut-toggle-searchbar": "Toggle Search Sidebar", + "shortcut-toggle-sidebar": "Toggle Board Sidebar", + "show-cards-minimum-count": "Show cards count if list contains more than", + "sidebar-open": "Open Sidebar", + "sidebar-close": "Close Sidebar", + "signupPopup-title": "Create an Account", + "star-board-title": "Click to star this board. It will show up at top of your boards list.", + "starred-boards": "Starred Boards", + "starred-boards-description": "Starred boards show up at the top of your boards list.", + "subscribe": "Subscribe", + "team": "Team", + "this-board": "this board", + "this-card": "this card", + "spent-time-hours": "Spent time (hours)", + "overtime-hours": "Overtime (hours)", + "overtime": "Overtime", + "has-overtime-cards": "Has overtime cards", + "has-spenttime-cards": "Has spent time cards", + "time": "Time", + "title": "Title", + "toggle-assignees": "Toggle assignees 1-9 for card (By order of addition to board).", + "toggle-labels": "Toggle labels 1-9 for card. Multi-Selection adds labels 1-9", + "remove-labels-multiselect": "Multi-Selection removes labels 1-9", + "tracking": "Tracking", + "tracking-info": "You will be notified of any changes to those cards you are involved as creator or member.", + "type": "Type", + "unassign-member": "Unassign member", + "unsaved-description": "You have an unsaved description.", + "unwatch": "Unwatch", + "upload": "Upload", + "upload-avatar": "Upload an avatar", + "uploaded-avatar": "Uploaded an avatar", + "custom-top-left-corner-logo-image-url": "Custom Top Left Corner Logo Image URL", + "custom-top-left-corner-logo-link-url": "Custom Top Left Corner Logo Link URL", + "custom-top-left-corner-logo-height": "Custom Top Left Corner Logo Height. Default: 27", + "custom-login-logo-image-url": "Custom Login Logo Image URL", + "custom-login-logo-link-url": "Custom Login Logo Link URL", + "custom-help-link-url": "Custom Help Link URL", + "text-below-custom-login-logo": "Text below Custom Login Logo", + "automatic-linked-url-schemes": "Custom URL Schemes which should automatically be clickable. One URL Scheme per line", + "username": "Username", + "import-usernames": "Import Usernames", + "view-it": "View it", + "warn-list-archived": "warning: this card is in an list at Archive", + "watch": "Watch", + "watching": "Watching", + "watching-info": "You will be notified of any change in this board", + "welcome-board": "Welcome Board", + "welcome-swimlane": "Milestone 1", + "welcome-list1": "Basics", + "welcome-list2": "Advanced", + "card-templates-swimlane": "Card Templates", + "list-templates-swimlane": "List Templates", + "board-templates-swimlane": "Board Templates", + "what-to-do": "What do you want to do?", + "wipLimitErrorPopup-title": "Invalid WIP Limit", + "wipLimitErrorPopup-dialog-pt1": "The number of tasks in this list is higher than the WIP limit you've defined.", + "wipLimitErrorPopup-dialog-pt2": "Please move some tasks out of this list, or set a higher WIP limit.", + "admin-panel": "Admin Panel", + "settings": "Settings", + "people": "People", + "registration": "Registration", + "disable-self-registration": "Disable Self-Registration", + "disable-forgot-password": "Disable Forgot Password", + "invite": "Invite", + "invite-people": "Invite People", + "to-boards": "To board(s)", + "email-addresses": "Email Addresses", + "smtp-host-description": "The address of the SMTP server that handles your emails.", + "smtp-port-description": "The port your SMTP server uses for outgoing emails.", + "smtp-tls-description": "Enable TLS support for SMTP server", + "smtp-host": "SMTP Host", + "smtp-port": "SMTP Port", + "smtp-username": "Username", + "smtp-password": "Password", + "smtp-tls": "TLS support", + "send-from": "From", + "send-smtp-test": "Send a test email to yourself", + "invitation-code": "Invitation Code", + "email-invite-register-subject": "__inviter__ sent you an invitation", + "email-invite-register-text": "Dear __user__,\n\n__inviter__ invites you to kanban board for collaborations.\n\nPlease follow the link below:\n__url__\n\nAnd your invitation code is: __icode__\n\nThanks.", + "email-smtp-test-subject": "SMTP Test Email", + "email-smtp-test-text": "You have successfully sent an email", + "error-invitation-code-not-exist": "Invitation code doesn't exist", + "error-notAuthorized": "You are not authorized to view this page.", + "webhook-title": "Webhook Name", + "webhook-token": "Token (Optional for Authentication)", + "outgoing-webhooks": "Outgoing Webhooks", + "bidirectional-webhooks": "Two-Way Webhooks", + "outgoingWebhooksPopup-title": "Outgoing Webhooks", + "boardCardTitlePopup-title": "Card Title Filter", + "disable-webhook": "Disable This Webhook", + "global-webhook": "Global Webhooks", + "new-outgoing-webhook": "New Outgoing Webhook", + "no-name": "(Unknown)", + "Node_version": "Node version", + "Meteor_version": "Meteor version", + "MongoDB_version": "MongoDB version", + "MongoDB_storage_engine": "MongoDB storage engine", + "MongoDB_Oplog_enabled": "MongoDB Oplog enabled", + "OS_Arch": "OS Arch", + "OS_Cpus": "OS CPU Count", + "OS_Freemem": "OS Free Memory", + "OS_Loadavg": "OS Load Average", + "OS_Platform": "OS Platform", + "OS_Release": "OS Release", + "OS_Totalmem": "OS Total Memory", + "OS_Type": "OS Type", + "OS_Uptime": "OS Uptime", + "days": "days", + "hours": "hours", + "minutes": "minutes", + "seconds": "seconds", + "show-field-on-card": "Show this field on card", + "automatically-field-on-card": "Add field to new cards", + "always-field-on-card": "Add field to all cards", + "showLabel-field-on-card": "Show field label on minicard", + "showSum-field-on-list": "Show sum of fields at top of list", + "yes": "Yes", + "no": "No", + "accounts": "Accounts", + "accounts-allowEmailChange": "Allow Email Change", + "accounts-allowUserNameChange": "Allow Username Change", + "tableVisibilityMode-allowPrivateOnly": "Boards visibility: Allow private boards only", + "tableVisibilityMode" : "Boards visibility", + "createdAt": "Created at", + "modifiedAt": "Modified at", + "verified": "Verified", + "active": "Active", + "card-received": "Received", + "card-received-on": "Received on", + "card-end": "End", + "card-end-on": "Ends on", + "editCardReceivedDatePopup-title": "Change received date", + "editCardEndDatePopup-title": "Change end date", + "setCardColorPopup-title": "Set color", + "setCardActionsColorPopup-title": "Choose a color", + "setSwimlaneColorPopup-title": "Choose a color", + "setListColorPopup-title": "Choose a color", + "assigned-by": "Assigned By", + "requested-by": "Requested By", + "card-sorting-by-number": "Card sorting by number", + "board-delete-notice": "Deleting is permanent. You will lose all lists, cards and actions associated with this board.", + "delete-board-confirm-popup": "All lists, cards, labels, and activities will be deleted and you won't be able to recover the board contents. There is no undo.", + "boardDeletePopup-title": "Delete Board?", + "delete-board": "Delete Board", + "default-subtasks-board": "Subtasks for __board__ board", + "default": "Default", + "defaultdefault": "Default", + "queue": "Queue", + "subtask-settings": "Subtasks Settings", + "card-settings": "Card Settings", + "minicard-settings": "Minicard Settings", + "boardSubtaskSettingsPopup-title": "Board Subtasks Settings", + "boardCardSettingsPopup-title": "Card Settings", + "boardMinicardSettingsPopup-title": "Minicard Settings", + "deposit-subtasks-board": "Deposit subtasks to this board:", + "deposit-subtasks-list": "Landing list for subtasks deposited here:", + "show-parent-in-minicard": "Show parent in minicard:", + "description-on-minicard": "Description on minicard", + "cover-attachment-on-minicard": "Cover image on minicard", + "badge-attachment-on-minicard": "Count of attachments on minicard", + "card-sorting-by-number-on-minicard": "Card sorting by number on minicard", + "prefix-with-full-path": "Prefix with full path", + "prefix-with-parent": "Prefix with parent", + "subtext-with-full-path": "Subtext with full path", + "subtext-with-parent": "Subtext with parent", + "change-card-parent": "Change card's parent", + "parent-card": "Parent card", + "source-board": "Source board", + "no-parent": "Don't show parent", + "activity-added-label": "added label '%s' to %s", + "activity-removed-label": "removed label '%s' from %s", + "activity-delete-attach": "deleted an attachment from %s", + "activity-added-label-card": "added label '%s'", + "activity-removed-label-card": "removed label '%s'", + "activity-delete-attach-card": "deleted an attachment", + "activity-set-customfield": "set custom field '%s' to '%s' in %s", + "activity-unset-customfield": "unset custom field '%s' in %s", + "r-rule": "Rule", + "r-add-trigger": "Add trigger", + "r-add-action": "Add action", + "r-board-rules": "Board rules", + "r-add-rule": "Add rule", + "r-view-rule": "View rule", + "r-delete-rule": "Delete rule", + "r-new-rule-name": "New rule title", + "r-no-rules": "No rules", + "r-trigger": "Trigger", + "r-action": "Action", + "r-when-a-card": "When a card", + "r-is": "is", + "r-is-moved": "is moved", + "r-added-to": "Added to", + "r-removed-from": "Removed from", + "r-the-board": "the board", + "r-list": "list", + "set-filter": "Set Filter", + "r-moved-to": "Moved to", + "r-moved-from": "Moved from", + "r-archived": "Moved to Archive", + "r-unarchived": "Restored from Archive", + "r-a-card": "a card", + "r-when-a-label-is": "When a label is", + "r-when-the-label": "When the label", + "r-list-name": "list name", + "r-when-a-member": "When a member is", + "r-when-the-member": "When the member", + "r-name": "name", + "r-when-a-attach": "When an attachment", + "r-when-a-checklist": "When a checklist is", + "r-when-the-checklist": "When the checklist", + "r-completed": "Completed", + "r-made-incomplete": "Made incomplete", + "r-when-a-item": "When a checklist item is", + "r-when-the-item": "When the checklist item", + "r-checked": "Checked", + "r-unchecked": "Unchecked", + "r-move-card-to": "Move card to", + "r-top-of": "Top of", + "r-bottom-of": "Bottom of", + "r-its-list": "its list", + "r-archive": "Move to Archive", + "r-unarchive": "Restore from Archive", + "r-card": "card", + "r-add": "Add", + "r-remove": "Remove", + "r-label": "label", + "r-member": "member", + "r-remove-all": "Remove all members from the card", + "r-set-color": "Set color to", + "r-checklist": "checklist", + "r-check-all": "Check all", + "r-uncheck-all": "Uncheck all", + "r-items-check": "items of checklist", + "r-check": "Check", + "r-uncheck": "Uncheck", + "r-item": "item", + "r-of-checklist": "of checklist", + "r-send-email": "Send an email", + "r-to": "to", + "r-of": "of", + "r-subject": "subject", + "r-rule-details": "Rule details", + "r-d-move-to-top-gen": "Move card to top of its list", + "r-d-move-to-top-spec": "Move card to top of list", + "r-d-move-to-bottom-gen": "Move card to bottom of its list", + "r-d-move-to-bottom-spec": "Move card to bottom of list", + "r-d-send-email": "Send email", + "r-d-send-email-to": "to", + "r-d-send-email-subject": "subject", + "r-d-send-email-message": "message", + "r-d-archive": "Move card to Archive", + "r-d-unarchive": "Restore card from Archive", + "r-d-add-label": "Add label", + "r-d-remove-label": "Remove label", + "r-create-card": "Create new card", + "r-in-list": "in list", + "r-in-swimlane": "in swimlane", + "r-d-add-member": "Add member", + "r-d-remove-member": "Remove member", + "r-d-remove-all-member": "Remove all member", + "r-d-check-all": "Check all items of a list", + "r-d-uncheck-all": "Uncheck all items of a list", + "r-d-check-one": "Check item", + "r-d-uncheck-one": "Uncheck item", + "r-d-check-of-list": "of checklist", + "r-d-add-checklist": "Add checklist", + "r-d-remove-checklist": "Remove checklist", + "r-by": "by", + "r-add-checklist": "Add checklist", + "r-with-items": "with items", + "r-items-list": "item1,item2,item3", + "r-add-swimlane": "Add swimlane", + "r-swimlane-name": "swimlane name", + "r-board-note": "Note: leave a field empty to match every possible value. ", + "r-checklist-note": "Note: checklist's items have to be written as comma separated values.", + "r-when-a-card-is-moved": "When a card is moved to another list", + "r-set": "Set", + "r-update": "Update", + "r-datefield": "date field", + "r-df-start-at": "start", + "r-df-due-at": "due", + "r-df-end-at": "end", + "r-df-received-at": "received", + "r-to-current-datetime": "to current date/time", + "r-remove-value-from": "Remove value from", + "r-link-card": "Link card to", + "ldap": "LDAP", + "oauth2": "OAuth2", + "cas": "CAS", + "authentication-method": "Authentication method", + "authentication-type": "Authentication type", + "custom-product-name": "Custom Product Name", + "layout": "Layout", + "hide-logo": "Hide Logo", + "hide-card-counter-list": "Hide card counter list on All Boards", + "hide-board-member-list": "Hide board member list on All Boards", + "add-custom-html-after-body-start": "Add Custom HTML after <body> start", + "add-custom-html-before-body-end": "Add Custom HTML before </body> end", + "error-undefined": "Something went wrong", + "error-ldap-login": "An error occurred while trying to login", + "display-authentication-method": "Display Authentication Method", + "oidc-button-text": "Customize the OIDC button text", + "default-authentication-method": "Default Authentication Method", + "duplicate-board": "Duplicate Board", + "org-number": "The number of organizations is: ", + "team-number": "The number of teams is: ", + "people-number": "The number of people is: ", + "swimlaneDeletePopup-title": "Delete Swimlane ?", + "swimlane-delete-pop": "All actions will be removed from the activity feed and you won't be able to recover the swimlane. There is no undo.", + "restore-all": "Restore all", + "delete-all": "Delete all", + "loading": "Loading, please wait.", + "previous_as": "last time was", + "act-a-dueAt": "modified due time to \nWhen: __timeValue__\nWhere: __card__\n previous due was __timeOldValue__", + "act-a-endAt": "modified ending time to __timeValue__ from (__timeOldValue__)", + "act-a-startAt": "modified starting time to __timeValue__ from (__timeOldValue__)", + "act-a-receivedAt": "modified received time to __timeValue__ from (__timeOldValue__)", + "a-dueAt": "modified due time to be", + "a-endAt": "modified ending time to be", + "a-startAt": "modified starting time to be", + "a-receivedAt": "modified received time to be", + "almostdue": "current due time %s is approaching", + "pastdue": "current due time %s is past", + "duenow": "current due time %s is today", + "act-newDue": "__list__/__card__ has 1st due reminder [__board__]", + "act-withDue": "__list__/__card__ due reminders [__board__]", + "act-almostdue": "was reminding the current due (__timeValue__) of __card__ is approaching", + "act-pastdue": "was reminding the current due (__timeValue__) of __card__ is past", + "act-duenow": "was reminding the current due (__timeValue__) of __card__ is now", + "act-atUserComment": "You were mentioned in [__board__] __list__/__card__", + "delete-user-confirm-popup": "Are you sure you want to delete this account? There is no undo.", + "delete-team-confirm-popup": "Are you sure you want to delete this team? There is no undo.", + "delete-org-confirm-popup": "Are you sure you want to delete this organization? There is no undo.", + "accounts-allowUserDelete": "Allow users to self delete their account", + "hide-minicard-label-text": "Hide minicard label text", + "show-desktop-drag-handles": "Show desktop drag handles", + "assignee": "Assignee", + "cardAssigneesPopup-title": "Assignee", + "addmore-detail": "Add a more detailed description", + "show-on-card": "Show on Card", + "show-on-minicard": "Show on Minicard", + "new": "New", + "editOrgPopup-title": "Edit Organization", + "newOrgPopup-title": "New Organization", + "editTeamPopup-title": "Edit Team", + "newTeamPopup-title": "New Team", + "editUserPopup-title": "Edit User", + "newUserPopup-title": "New User", + "notifications": "Notifications", + "help": "Help", + "view-all": "View All", + "filter-by-unread": "Filter by Unread", + "mark-all-as-read": "Mark all as read", + "remove-all-read": "Remove all read", + "allow-rename": "Allow Rename", + "allowRenamePopup-title": "Allow Rename", + "start-day-of-week": "Set day of the week start", + "monday": "Monday", + "tuesday": "Tuesday", + "wednesday": "Wednesday", + "thursday": "Thursday", + "friday": "Friday", + "saturday": "Saturday", + "sunday": "Sunday", + "status": "Status", + "swimlane": "Swimlane", + "owner": "Owner", + "last-modified-at": "Last modified at", + "last-activity": "Last activity", + "voting": "Voting", + "archived": "Archived", + "delete-linked-card-before-this-card": "You can not delete this card before first deleting linked card that has", + "delete-linked-cards-before-this-list": "You can not delete this list before first deleting linked cards that are pointing to cards in this list", + "hide-checked-items": "Hide checked items", + "hide-finished-checklist": "Hide finished checklist", + "task": "Task", + "create-task": "Create Task", + "ok": "OK", + "organizations": "Organizations", + "teams": "Teams", + "displayName": "Display Name", + "shortName": "Short Name", + "autoAddUsersWithDomainName": "Automatically add users with the domain name", + "website": "Website", + "person": "Person", + "my-cards": "My Cards", + "card": "Card", + "list": "List", + "board": "Board", + "context-separator": "/", + "myCardsViewChange-title": "My Cards View", + "myCardsViewChangePopup-title": "My Cards View", + "myCardsViewChange-choice-boards": "Boards", + "myCardsViewChange-choice-table": "Table", + "myCardsSortChange-title": "My Cards Sort", + "myCardsSortChangePopup-title": "My Cards Sort", + "myCardsSortChange-choice-board": "By Board", + "myCardsSortChange-choice-dueat": "By Due Date", + "dueCards-title": "Due Cards", + "dueCardsViewChange-title": "Due Cards View", + "dueCardsViewChangePopup-title": "Due Cards View", + "dueCardsViewChange-choice-me": "Me", + "dueCardsViewChange-choice-all": "All Users", + "dueCardsViewChange-choice-all-description": "Shows all incomplete cards with a *Due* date from boards for which the user has permission.", + "broken-cards": "Broken Cards", + "board-title-not-found": "Board '%s' not found.", + "swimlane-title-not-found": "Swimlane '%s' not found.", + "list-title-not-found": "List '%s' not found.", + "label-not-found": "Label '%s' not found.", + "label-color-not-found": "Label color %s not found.", + "user-username-not-found": "Username '%s' not found.", + "comment-not-found": "Card with comment containing text '%s' not found.", + "org-name-not-found": "Organization '%s' not found.", + "team-name-not-found": "Team '%s' not found.", + "globalSearch-title": "Search All Boards", + "no-cards-found": "No Cards Found", + "one-card-found": "One Card Found", + "n-cards-found": "%s Cards Found", + "n-n-of-n-cards-found": "__start__-__end__ of __total__ Cards Found", + "operator-board": "board", + "operator-board-abbrev": "b", + "operator-swimlane": "swimlane", + "operator-swimlane-abbrev": "s", + "operator-list": "list", + "operator-list-abbrev": "l", + "operator-label": "label", + "operator-label-abbrev": "#", + "operator-user": "user", + "operator-user-abbrev": "@", + "operator-member": "member", + "operator-member-abbrev": "m", + "operator-assignee": "assignee", + "operator-assignee-abbrev": "a", + "operator-creator": "creator", + "operator-status": "status", + "operator-due": "due", + "operator-created": "created", + "operator-modified": "modified", + "operator-sort": "sort", + "operator-comment": "comment", + "operator-has": "has", + "operator-limit": "limit", + "operator-debug": "debug", + "operator-org": "org", + "operator-team": "team", + "predicate-archived": "archived", + "predicate-open": "open", + "predicate-ended": "ended", + "predicate-all": "all", + "predicate-overdue": "overdue", + "predicate-week": "week", + "predicate-month": "month", + "predicate-quarter": "quarter", + "predicate-year": "year", + "predicate-due": "due", + "predicate-modified": "modified", + "predicate-created": "created", + "predicate-attachment": "attachment", + "predicate-description": "description", + "predicate-checklist": "checklist", + "predicate-start": "start", + "predicate-end": "end", + "predicate-assignee": "assignee", + "predicate-member": "member", + "predicate-public": "public", + "predicate-private": "private", + "predicate-selector": "selector", + "predicate-projection": "projection", + "operator-unknown-error": "%s is not an operator", + "operator-number-expected": "operator __operator__ expected a number, got '__value__'", + "operator-sort-invalid": "sort of '%s' is invalid", + "operator-status-invalid": "'%s' is not a valid status", + "operator-has-invalid": "%s is not a valid existence check", + "operator-limit-invalid": "%s is not a valid limit. Limit should be a positive integer.", + "operator-debug-invalid": "%s is not a valid debug predicate", + "next-page": "Next Page", + "previous-page": "Previous Page", + "heading-notes": "Notes", + "globalSearch-instructions-heading": "Search Instructions", + "globalSearch-instructions-description": "Searches can include operators to refine the search. Operators are specified by writing the operator name and value separated by a colon. For example, an operator specification of `list:Blocked` would limit the search to cards that are contained in a list named *Blocked*. If the value contains spaces or special characters it must be enclosed in quotation marks (e.g. `__operator_list__:\"To Review\"`).", + "globalSearch-instructions-operators": "Available operators:", + "globalSearch-instructions-operator-board": "`__operator_board__:<title>` - cards in boards matching the specified *<title>*", + "globalSearch-instructions-operator-list": "`__operator_list__:<title>` - cards in lists matching the specified *<title>*", + "globalSearch-instructions-operator-swimlane": "`__operator_swimlane__:<title>` - cards in swimlanes matching the specified *<title>*", + "globalSearch-instructions-operator-comment": "`__operator_comment__:<text>` - cards with a comment containing *<text>*.", + "globalSearch-instructions-operator-label": "`__operator_label__:<color>` `__operator_label__:<name>` - cards that have a label matching *<color>* or *<name>", + "globalSearch-instructions-operator-hash": "`__operator_label_abbrev__<name|color>` - shorthand for `__operator_label__:<color>` or `__operator_label__:<name>`", + "globalSearch-instructions-operator-user": "`__operator_user__:<username>` - cards where *<username>* is a *member* or *assignee*", + "globalSearch-instructions-operator-at": "`__operator_user_abbrev__username` - shorthand for `user:<username>`", + "globalSearch-instructions-operator-member": "`__operator_member__:<username>` - cards where *<username>* is a *member*", + "globalSearch-instructions-operator-assignee": "`__operator_assignee__:<username>` - cards where *<username>* is an *assignee*", + "globalSearch-instructions-operator-creator": "`__operator_creator__:<username>` - cards where *<username>* is the card's creator", + "globalSearch-instructions-operator-org": "`__operator_org__:<display name|short name>` - cards belonging to a board assigned to organization *<name>*", + "globalSearch-instructions-operator-team": "`__operator_team__:<display name|short name>` - cards belonging to a board assigned to team *<name>*", + "globalSearch-instructions-operator-due": "`__operator_due__:<n>` - cards which are due up to *<n>* days from now. `__operator_due__:__predicate_overdue__ lists all cards past their due date.", + "globalSearch-instructions-operator-created": "`__operator_created__:<n>` - cards which were created *<n>* days ago or less", + "globalSearch-instructions-operator-modified": "`__operator_modified__:<n>` - cards which were modified *<n>* days ago or less", + "globalSearch-instructions-operator-status": "`__operator_status__:<status>` - where *<status>* is one of the following:", + "globalSearch-instructions-status-archived": "`__predicate_archived__` - archived cards", + "globalSearch-instructions-status-all": "`__predicate_all__` - all archived and unarchived cards", + "globalSearch-instructions-status-ended": "`__predicate_ended__` - cards with an end date", + "globalSearch-instructions-status-public": "`__predicate_public__` - cards only in public boards", + "globalSearch-instructions-status-private": "`__predicate_private__` - cards only in private boards", + "globalSearch-instructions-operator-has": "`__operator_has__:<field>` - where *<field>* is one of `__predicate_attachment__`, `__predicate_checklist__`, `__predicate_description__`, `__predicate_start__`, `__predicate_due__`, `__predicate_end__`, `__predicate_assignee__` or `__predicate_member__`. Placing a `-` in front of *<field>* searches for the absence of a value in that field (e.g. `has:-due` searches for cards without a due date).", + "globalSearch-instructions-operator-sort": "`__operator_sort__:<sort-name>` - where *<sort-name>* is one of `__predicate_due__`, `__predicate_created__` or `__predicate_modified__`. For a descending sort, place a `-` in front of the sort name.", + "globalSearch-instructions-operator-limit": "`__operator_limit__:<n>` - where *<n>* is a positive integer expressing the number of cards to be displayed per page.", + "globalSearch-instructions-notes-1": "Multiple operators may be specified.", + "globalSearch-instructions-notes-2": "Similar operators are *OR*ed together. Cards that match any of the conditions will be returned.\n`__operator_list__:Available __operator_list__:Blocked` would return cards contained in any list named *Blocked* or *Available*.", + "globalSearch-instructions-notes-3": "Differing operators are *AND*ed together. Only cards that match all of the differing operators are returned. `__operator_list__:Available __operator_label__:red` returns only cards in the list *Available* with a *red* label.", + "globalSearch-instructions-notes-3-2": "Days can be specified as a positive or negative integer or using `__predicate_week__`, `__predicate_month__`, `__predicate_quarter__` or `__predicate_year__` for the current period.", + "globalSearch-instructions-notes-4": "Text searches are case insensitive.", + "globalSearch-instructions-notes-5": "By default archived cards are not searched.", + "link-to-search": "Link to this search", + "excel-font": "Arial", + "number": "Number", + "label-colors": "Label Colors", + "label-names": "Label Names", + "archived-at": "archived at", + "sort-cards": "Sort Cards", + "sort-is-on": "Sort is on", + "cardsSortPopup-title": "Sort Cards", + "due-date": "Due Date", + "server-error": "Server Error", + "server-error-troubleshooting": "Please submit the error generated by the server.\nFor a snap installation, run: `sudo snap logs wekan.wekan`\nFor a Docker installation, run: `sudo docker logs wekan-app`", + "title-alphabetically": "Title (Alphabetically)", + "created-at-newest-first": "Created At (Newest First)", + "created-at-oldest-first": "Created At (Oldest First)", + "links-heading": "Links", + "hide-activities-of-all-boards": "Don't show the board activities on all boards", + "now-activities-of-all-boards-are-hidden": "Now all activities of all boards are hidden", + "move-swimlane": "Move Swimlane", + "moveSwimlanePopup-title": "Move Swimlane", + "custom-field-stringtemplate": "String Template", + "custom-field-stringtemplate-format": "Format (use %{value} as placeholder)", + "custom-field-stringtemplate-separator": "Separator (use or   for a space)", + "custom-field-stringtemplate-item-placeholder": "Press enter to add more items", + "creator": "Creator", + "creator-on-minicard": "Creator on minicard", + "filesReportTitle": "Files Report", + "reports": "Reports", + "rulesReportTitle": "Rules Report", + "boardsReportTitle": "Boards Report", + "cardsReportTitle": "Cards Report", + "copy-swimlane": "Copy Swimlane", + "copySwimlanePopup-title": "Copy Swimlane", + "display-card-creator": "Display Card Creator", + "wait-spinner": "Wait Spinner", + "Bounce": "Bounce Wait Spinner", + "Cube": "Cube Wait Spinner", + "Cube-Grid": "Cube-Grid Wait Spinner", + "Dot": "Dot Wait Spinner", + "Double-Bounce": "Double Bounce Wait Spinner", + "Rotateplane": "Rotateplane Wait Spinner", + "Scaleout": "Scaleout Wait Spinner", + "Wave": "Wave Wait Spinner", + "maximize-card": "Maximize Card", + "minimize-card": "Minimize Card", + "delete-org-warning-message": "Can not delete this organization, there is at least one user that belongs to it", + "delete-team-warning-message": "Can not delete this team, there is at least one user that belongs to it", + "subject": "Subject", + "details": "Details", + "carbon-copy": "Carbon Copy (Cc:)", + "ticket": "Ticket", + "tickets": "Tickets", + "ticket-number": "Ticket Number", + "open": "Open", + "pending": "Pending", + "closed": "Closed", + "resolved": "Resolved", + "cancelled": "Cancelled", + "history": "History", + "request": "Request", + "requests": "Requests", + "help-request": "Help Request", + "editCardSortOrderPopup-title": "Change Sorting", + "cardDetailsPopup-title": "Card Details", + "add-teams": "Add teams", + "add-teams-label": "Added teams are displayed below:", + "remove-team-from-table": "Are you sure you want to remove this team from the board ?", + "confirm-btn": "Confirm", + "remove-btn": "Remove", + "filter-card-title-label": "Filter by card title", + "invite-people-success": "Invitation to register sent with success", + "invite-people-error": "Error while sending invitation to register", + "can-invite-if-same-mailDomainName": "Email domain name", + "to-create-teams-contact-admin": "To create teams, please contact the administrator.", + "Node_heap_total_heap_size": "Node heap: total heap size", + "Node_heap_total_heap_size_executable": "Node heap: total heap size executable", + "Node_heap_total_physical_size": "Node heap: total physical size", + "Node_heap_total_available_size": "Node heap: total available size", + "Node_heap_used_heap_size": "Node heap: used heap size", + "Node_heap_heap_size_limit": "Node heap: heap size limit", + "Node_heap_malloced_memory": "Node heap: malloced memory", + "Node_heap_peak_malloced_memory": "Node heap: peak malloced memory", + "Node_heap_does_zap_garbage": "Node heap: does zap garbage", + "Node_heap_number_of_native_contexts": "Node heap: number of native contexts", + "Node_heap_number_of_detached_contexts": "Node heap: number of detached contexts", + "Node_memory_usage_rss": "Node memory usage: resident set size", + "Node_memory_usage_heap_total": "Node memory usage: total size of the allocated heap", + "Node_memory_usage_heap_used": "Node memory usage: actual memory used", + "Node_memory_usage_external": "Node memory usage: external", + "add-organizations": "Add organizations", + "add-organizations-label": "Added organizations are displayed below:", + "remove-organization-from-board": "Are you sure you want to remove this organization from this board ?", + "to-create-organizations-contact-admin": "To create organizations, please contact administrator.", + "custom-legal-notice-link-url": "Custom legal notice page URL", + "acceptance_of_our_legalNotice": "By continuing, you accept our", + "legalNotice": "legal notice", + "copied": "Copied!", + "checklistActionsPopup-title": "Checklist Actions", + "moveChecklist": "Move Checklist", + "moveChecklistPopup-title": "Move Checklist", + "newlineBecomesNewChecklistItem": "Each line of text becomes one of the checklist items", + "newLineNewItem": "One line of text = one checklist item", + "newlineBecomesNewChecklistItemOriginOrder": "Each line of text becomes one of the checklist items, original order", + "originOrder": "original order", + "copyChecklist": "Copy Checklist", + "copyChecklistPopup-title": "Copy Checklist", + "card-show-lists": "Card Show Lists", + "subtaskActionsPopup-title": "Subtask Actions", + "attachmentActionsPopup-title": "Attachment Actions", + "attachment-move-storage-fs": "Move attachment to filesystem", + "attachment-move-storage-gridfs": "Move attachment to GridFS", + "attachment-move-storage-s3": "Move attachment to S3", + "attachment-move": "Move Attachment", + "move-all-attachments-to-fs": "Move all attachments to filesystem", + "move-all-attachments-to-gridfs": "Move all attachments to GridFS", + "move-all-attachments-to-s3": "Move all attachments to S3", + "move-all-attachments-of-board-to-fs": "Move all attachments of board to filesystem", + "move-all-attachments-of-board-to-gridfs": "Move all attachments of board to GridFS", + "move-all-attachments-of-board-to-s3": "Move all attachments of board to S3", + "path": "Path", + "version-name": "Version-Name", + "size": "Size", + "storage": "Storage", + "action": "Action", + "board-title": "Board Title", + "attachmentRenamePopup-title": "Rename", + "uploading": "Uploading", + "remaining_time": "Remaining time", + "speed": "Speed", + "progress": "Progress", + "password-again": "Password (again)", + "if-you-already-have-an-account": "If you already have an account", + "register": "Register", + "forgot-password": "Forgot password", + "minicardDetailsActionsPopup-title": "Card Details", + "Mongo_sessions_count": "Mongo sessions count", + "change-visibility": "Change Visibility", + "max-upload-filesize": "Max upload filesize in bytes:", + "allowed-upload-filetypes": "Allowed upload filetypes:", + "max-avatar-filesize": "Max avatar filesize in bytes:", + "allowed-avatar-filetypes": "Allowed avatar filetypes:", + "invalid-file": "If filename is invalid, upload or rename is cancelled.", + "preview-pdf-not-supported": "Your device does not support previewing PDF. Try downloading instead.", + "drag-board": "Drag board", + "translation-number": "The number of custom translation strings is:", + "delete-translation-confirm-popup": "Are you sure you want to delete this custom translation string? There is no undo.", + "newTranslationPopup-title": "New custom translation string", + "editTranslationPopup-title": "Edit custom translation string", + "settingsTranslationPopup-title": "Delete this custom translation string?", + "translation": "Translation", + "text": "Text", + "translation-text": "Translation text", + "show-subtasks-field": "Show subtasks field", + "show-week-of-year": "Show week of year (ISO 8601)", + "convert-to-markdown": "Convert to markdown", + "import-board-zip": "Add .zip file that has board JSON files, and board name subdirectories with attachments", + "collapse": "Collapse", + "uncollapse": "Uncollapse", + "hideCheckedChecklistItems": "Hide checked checklist items", + "hideAllChecklistItems": "Hide all checklist items", + "support": "Support", + "supportPopup-title": "Support", + "accessibility-page-enabled": "Accessibility page enabled", + "accessibility-title": "Accessibility topic", + "accessibility-content": "Accessibility content" +} diff --git a/imports/i18n/data/en_SG.i18n.json b/imports/i18n/data/en_SG.i18n.json new file mode 100644 index 000000000..78b62d375 --- /dev/null +++ b/imports/i18n/data/en_SG.i18n.json @@ -0,0 +1,1272 @@ +{ + "accept": "Accept", + "act-activity-notify": "Activity Notification", + "act-addAttachment": "added attachment __attachment__ to card __card__ at list __list__ at swimlane __swimlane__ at board __board__", + "act-deleteAttachment": "deleted attachment __attachment__ at card __card__ at list __list__ at swimlane __swimlane__ at board __board__", + "act-addSubtask": "added subtask __subtask__ to card __card__ at list __list__ at swimlane __swimlane__ at board __board__", + "act-addLabel": "Added label __label__ to card __card__ at list __list__ at swimlane __swimlane__ at board __board__", + "act-addedLabel": "Added label __label__ to card __card__ at list __list__ at swimlane __swimlane__ at board __board__", + "act-removeLabel": "Removed label __label__ from card __card__ at list __list__ at swimlane __swimlane__ at board __board__", + "act-removedLabel": "Removed label __label__ from card __card__ at list __list__ at swimlane __swimlane__ at board __board__", + "act-addChecklist": "added checklist __checklist__ to card __card__ at list __list__ at swimlane __swimlane__ at board __board__", + "act-addChecklistItem": "added checklist item __checklistItem__ to checklist __checklist__ at card __card__ at list __list__ at swimlane __swimlane__ at board __board__", + "act-removeChecklist": "removed checklist __checklist__ from card __card__ at list __list__ at swimlane __swimlane__ at board __board__", + "act-removeChecklistItem": "removed checklist item __checklistItem__ from checklist __checkList__ at card __card__ at list __list__ at swimlane __swimlane__ at board __board__", + "act-checkedItem": "checked __checklistItem__ of checklist __checklist__ at card __card__ at list __list__ at swimlane __swimlane__ at board __board__", + "act-uncheckedItem": "unchecked __checklistItem__ of checklist __checklist__ at card __card__ at list __list__ at swimlane __swimlane__ at board __board__", + "act-completeChecklist": "completed checklist __checklist__ at card __card__ at list __list__ at swimlane __swimlane__ at board __board__", + "act-uncompleteChecklist": "uncompleted checklist __checklist__ at card __card__ at list __list__ at swimlane __swimlane__ at board __board__", + "act-addComment": "commented on card __card__: __comment__ at list __list__ at swimlane __swimlane__ at board __board__", + "act-editComment": "edited comment on card __card__: __comment__ at list __list__ at swimlane __swimlane__ at board __board__", + "act-deleteComment": "deleted comment on card __card__: __comment__ at list __list__ at swimlane __swimlane__ at board __board__", + "act-createBoard": "created board __board__", + "act-createSwimlane": "created swimlane __swimlane__ to board __board__", + "act-createCard": "created card __card__ to list __list__ at swimlane __swimlane__ at board __board__", + "act-createCustomField": "created custom field __customField__ at board __board__", + "act-deleteCustomField": "deleted custom field __customField__ at board __board__", + "act-setCustomField": "edited custom field __customField__: __customFieldValue__ at card __card__ at list __list__ at swimlane __swimlane__ at board __board__", + "act-createList": "added list __list__ to board __board__", + "act-addBoardMember": "added member __member__ to board __board__", + "act-archivedBoard": "Board __board__ moved to Archive", + "act-archivedCard": "Card __card__ at list __list__ at swimlane __swimlane__ at board __board__ moved to Archive", + "act-archivedList": "List __list__ at swimlane __swimlane__ at board __board__ moved to Archive", + "act-archivedSwimlane": "Swimlane __swimlane__ at board __board__ moved to Archive", + "act-importBoard": "imported board __board__", + "act-importCard": "imported card __card__ to list __list__ at swimlane __swimlane__ at board __board__", + "act-importList": "imported list __list__ to swimlane __swimlane__ at board __board__", + "act-joinMember": "added member __member__ to card __card__ at list __list__ at swimlane __swimlane__ at board __board__", + "act-moveCard": "moved card __card__ at board __board__ from list __oldList__ at swimlane __oldSwimlane__ to list __list__ at swimlane __swimlane__", + "act-moveCardToOtherBoard": "moved card __card__ from list __oldList__ at swimlane __oldSwimlane__ at board __oldBoard__ to list __list__ at swimlane __swimlane__ at board __board__", + "act-removeBoardMember": "removed member __member__ from board __board__", + "act-restoredCard": "restored card __card__ to list __list__ at swimlane __swimlane__ at board __board__", + "act-unjoinMember": "removed member __member__ from card __card__ at list __list__ at swimlane __swimlane__ at board __board__", + "act-withBoardTitle": "__board__", + "act-withCardTitle": "[__board__] __card__", + "actions": "Actions", + "activities": "Activities", + "activity": "Activity", + "activity-added": "added %s to %s", + "activity-archived": "%s moved to Archive", + "activity-attached": "attached %s to %s", + "activity-created": "created %s", + "activity-changedListTitle": "renamed list to %s", + "activity-customfield-created": "created custom field %s", + "activity-excluded": "excluded %s from %s", + "activity-imported": "imported %s into %s from %s", + "activity-imported-board": "imported %s from %s", + "activity-joined": "joined %s", + "activity-moved": "moved %s from %s to %s", + "activity-on": "on %s", + "activity-removed": "removed %s from %s", + "activity-sent": "sent %s to %s", + "activity-unjoined": "unjoined %s", + "activity-subtask-added": "added subtask to %s", + "activity-checked-item": "checked %s in checklist %s of %s", + "activity-unchecked-item": "unchecked %s in checklist %s of %s", + "activity-checklist-added": "added checklist to %s", + "activity-checklist-removed": "removed a checklist from %s", + "activity-checklist-completed": "completed checklist %s of %s", + "activity-checklist-uncompleted": "uncompleted the checklist %s of %s", + "activity-checklist-item-added": "added checklist item to '%s' in %s", + "activity-checklist-item-removed": "removed a checklist item from '%s' in %s", + "add": "Add", + "activity-checked-item-card": "checked %s in checklist %s", + "activity-unchecked-item-card": "unchecked %s in checklist %s", + "activity-checklist-completed-card": "completed checklist __checklist__ at card __card__ at list __list__ at swimlane __swimlane__ at board __board__", + "activity-checklist-uncompleted-card": "uncompleted the checklist %s", + "activity-editComment": "edited comment %s", + "activity-deleteComment": "deleted comment %s", + "activity-receivedDate": "edited received date to %s of %s", + "activity-startDate": "edited start date to %s of %s", + "activity-dueDate": "edited due date to %s of %s", + "activity-endDate": "edited end date to %s of %s", + "add-attachment": "Add Attachment", + "add-board": "Add Board", + "add-template": "Add Template", + "add-card": "Add Card", + "add-card-to-top-of-list": "Add Card to Top of List", + "add-card-to-bottom-of-list": "Add Card to Bottom of List", + "setListWidthPopup-title": "Set Widths", + "set-list-width": "Set Widths", + "set-list-width-value": "Set Min & Max Widths (pixels)", + "list-width-error-message": "List widths must be integers greater than 100", + "keyboard-shortcuts-enabled": "Keyboard shortcuts enabled. Click to disable.", + "keyboard-shortcuts-disabled": "Keyboard shortcuts disabled. Click to enable.", + "setSwimlaneHeightPopup-title": "Set Swimlane Height", + "set-swimlane-height": "Set Swimlane Height", + "set-swimlane-height-value": "Swimlane Height (pixels)", + "swimlane-height-error-message": "Swimlane height must be a positive integer", + "add-swimlane": "Add Swimlane", + "add-subtask": "Add Subtask", + "add-checklist": "Add Checklist", + "add-checklist-item": "Add an item to checklist", + "close-add-checklist-item": "Close add an item to checklist form", + "close-edit-checklist-item": "Close edit an item to checklist form", + "convertChecklistItemToCardPopup-title": "Convert to Card", + "add-cover": "Add cover image to minicard", + "add-label": "Add Label", + "add-list": "Add List", + "add-after-list": "Add After List", + "add-members": "Add Members", + "added": "Added", + "addMemberPopup-title": "Members", + "memberPopup-title": "Member Settings", + "admin": "Admin", + "admin-desc": "Can view and edit cards, remove members, and change settings for the board.", + "admin-announcement": "Announcement", + "admin-announcement-active": "Active System-Wide Announcement", + "admin-announcement-title": "Announcement from Administrator", + "all-boards": "All Boards", + "and-n-other-card": "And __count__ other card", + "and-n-other-card_plural": "And __count__ other cards", + "apply": "Apply", + "app-is-offline": "Loading, please wait. Refreshing the page will cause data loss. If loading does not work, please check that server has not stopped.", + "app-try-reconnect": "Try to reconnect.", + "archive": "Move to Archive", + "archive-all": "Move All to Archive", + "archive-board": "Move Board to Archive", + "archive-card": "Move Card to Archive", + "archive-list": "Move List to Archive", + "archive-swimlane": "Move Swimlane to Archive", + "archive-selection": "Move selection to Archive", + "archiveBoardPopup-title": "Move Board to Archive?", + "archived-items": "Archive", + "archived-boards": "Boards in Archive", + "restore-board": "Restore Board", + "no-archived-boards": "No Boards in Archive.", + "archives": "Archive", + "template": "Template", + "templates": "Templates", + "template-container": "Template Container", + "add-template-container": "Add Template Container", + "assign-member": "Assign member", + "attached": "attached", + "attachment": "Attachment", + "attachment-delete-pop": "Deleting an attachment is permanent. There is no undo.", + "attachmentDeletePopup-title": "Delete Attachment?", + "attachments": "Attachments", + "auto-watch": "Automatically watch boards when they are created", + "avatar-too-big": "The avatar is too large (__size__ max)", + "back": "Back", + "board-change-color": "Change color", + "board-change-background-image": "Change Background Image", + "board-background-image-url": "Background Image URL", + "add-background-image": "Add Background Image", + "remove-background-image": "Remove Background Image", + "show-at-all-boards-page" : "Show at All Boards page", + "board-info-on-my-boards" : "All Boards Settings", + "boardInfoOnMyBoardsPopup-title" : "All Boards Settings", + "boardInfoOnMyBoards-title": "All Boards Settings", + "show-card-counter-per-list": "Show card count per list", + "show-board_members-avatar": "Show Board members avatars", + "board-nb-stars": "%s stars", + "board-not-found": "Board not found", + "board-private-info": "This board will be <strong>private</strong>.", + "board-public-info": "This board will be <strong>public</strong>.", + "board-drag-drop-reorder-or-click-open": "Drag and drop to reorder board icons. Click board icon to open board.", + "boardChangeColorPopup-title": "Change Board Background", + "boardChangeBackgroundImagePopup-title": "Change Background Image", + "allBoardsChangeColorPopup-title": "Change color", + "allBoardsChangeBackgroundImagePopup-title": "Change Background Image", + "boardChangeTitlePopup-title": "Rename Board", + "boardChangeVisibilityPopup-title": "Change Visibility", + "boardChangeWatchPopup-title": "Change Watch", + "boardMenuPopup-title": "Board Settings", + "allBoardsMenuPopup-title": "Settings", + "boardChangeViewPopup-title": "Board View", + "boards": "Boards", + "board-view": "Board View", + "board-view-cal": "Calendar", + "board-view-swimlanes": "Swimlanes", + "board-view-collapse": "Collapse", + "board-view-gantt": "Gantt", + "board-view-lists": "Lists", + "bucket-example": "Like “Bucket List” for example", + "cancel": "Cancel", + "card-archived": "This card is moved to Archive.", + "board-archived": "This board is moved to Archive.", + "card-comments-title": "This card has %s comment.", + "card-delete-notice": "Deleting is permanent. You will lose all actions associated with this card.", + "card-delete-pop": "All actions will be removed from the activity feed and you won't be able to re-open the card. There is no undo.", + "card-delete-suggest-archive": "You can move a card to Archive to remove it from the board and preserve the activity.", + "card-archive-pop": "Card will not be visible at this list after archiving card.", + "card-archive-suggest-cancel": "You can later restore card from Archive.", + "card-due": "Due", + "card-due-on": "Due on", + "card-spent": "Spent Time", + "card-edit-attachments": "Edit attachments", + "card-edit-custom-fields": "Edit custom fields", + "card-edit-labels": "Edit labels", + "card-edit-members": "Edit members", + "card-labels-title": "Change the labels for the card.", + "card-members-title": "Add or remove members of the board from the card.", + "card-start": "Start", + "card-start-on": "Starts on", + "cardAttachmentsPopup-title": "Attach From", + "cardCustomField-datePopup-title": "Change date", + "cardCustomFieldsPopup-title": "Edit custom fields", + "cardStartVotingPopup-title": "Start a vote", + "positiveVoteMembersPopup-title": "Proponents", + "negativeVoteMembersPopup-title": "Opponents", + "card-edit-voting": "Edit voting", + "editVoteEndDatePopup-title": "Change vote end date", + "allowNonBoardMembers": "Allow all logged in users", + "vote-question": "Voting question", + "vote-public": "Show who voted what", + "vote-for-it": "for it", + "vote-against": "against", + "deleteVotePopup-title": "Delete vote?", + "vote-delete-pop": "Deleting is permanent. You will lose all actions associated with this vote.", + "cardStartPlanningPokerPopup-title": "Start a Planning Poker", + "card-edit-planning-poker": "Edit Planning Poker", + "editPokerEndDatePopup-title": "Change Planning Poker vote end date", + "poker-question": "Planning Poker", + "poker-one": "1", + "poker-two": "2", + "poker-three": "3", + "poker-five": "5", + "poker-eight": "8", + "poker-thirteen": "13", + "poker-twenty": "20", + "poker-forty": "40", + "poker-oneHundred": "100", + "poker-unsure": "?", + "poker-finish": "Finish", + "poker-result-votes": "Votes", + "poker-result-who": "Who", + "poker-replay": "Replay", + "set-estimation": "Set Estimation", + "deletePokerPopup-title": "Delete planning poker?", + "poker-delete-pop": "Deleting is permanent. You will lose all actions associated with this planning poker.", + "cardDeletePopup-title": "Delete Card?", + "cardArchivePopup-title": "Archive Card?", + "cardDetailsActionsPopup-title": "Card Actions", + "cardLabelsPopup-title": "Labels", + "cardMembersPopup-title": "Members", + "cardMorePopup-title": "More", + "cardTemplatePopup-title": "Create template", + "cards": "Cards", + "cards-count": "Cards", + "cards-count-one": "Card", + "casSignIn": "Sign In with CAS", + "cardType-card": "Card", + "cardType-linkedCard": "Linked Card", + "cardType-linkedBoard": "Linked Board", + "change": "Change", + "change-avatar": "Change Avatar", + "change-password": "Change Password", + "change-permissions": "Change permissions", + "change-settings": "Change Settings", + "changeAvatarPopup-title": "Change Avatar", + "changeLanguagePopup-title": "Change Language", + "changePasswordPopup-title": "Change Password", + "changePermissionsPopup-title": "Change Permissions", + "changeSettingsPopup-title": "Change Settings", + "subtasks": "Subtasks", + "checklists": "Checklists", + "click-to-star": "Click to star this board.", + "click-to-unstar": "Click to unstar this board.", + "click-to-enable-auto-width": "Auto list width disabled. Click to enable.", + "click-to-disable-auto-width": "Auto list width enabled. Click to disable.", + "auto-list-width": "Auto list width", + "clipboard": "Clipboard or drag & drop", + "close": "Close", + "close-board": "Close Board", + "close-board-pop": "You will be able to restore the board by clicking the “Archive” button from the home header.", + "close-card": "Close Card", + "color-black": "black", + "color-blue": "blue", + "color-crimson": "crimson", + "color-darkgreen": "darkgreen", + "color-gold": "gold", + "color-gray": "gray", + "color-green": "green", + "color-indigo": "indigo", + "color-lime": "lime", + "color-magenta": "magenta", + "color-mistyrose": "mistyrose", + "color-navy": "navy", + "color-orange": "orange", + "color-paleturquoise": "paleturquoise", + "color-peachpuff": "peachpuff", + "color-pink": "pink", + "color-plum": "plum", + "color-purple": "purple", + "color-red": "red", + "color-saddlebrown": "saddlebrown", + "color-silver": "silver", + "color-sky": "sky", + "color-slateblue": "slateblue", + "color-white": "white", + "color-yellow": "yellow", + "unset-color": "Unset", + "comments": "Comments", + "comment": "Comment", + "comment-placeholder": "Write Comment", + "comment-only": "Comment only", + "comment-only-desc": "Can comment on cards only.", + "comment-delete": "Are you sure you want to delete the comment?", + "deleteCommentPopup-title": "Delete comment?", + "no-comments": "No comments", + "no-comments-desc": "Can not see comments and activities.", + "worker": "Worker", + "worker-desc": "Can only move cards, assign itself to card and comment.", + "computer": "Computer", + "confirm-subtask-delete-popup": "Are you sure you want to delete subtask?", + "confirm-checklist-delete-popup": "Are you sure you want to delete the checklist?", + "subtaskDeletePopup-title": "Delete Subtask?", + "checklistDeletePopup-title": "Delete Checklist?", + "copy-card-link-to-clipboard": "Copy card link to clipboard", + "copy-text-to-clipboard": "Copy text to clipboard", + "linkCardPopup-title": "Link Card", + "searchElementPopup-title": "Search", + "copyCardPopup-title": "Copy Card", + "copyManyCardsPopup-title": "Copy Template to Many Cards", + "copyManyCardsPopup-instructions": "Destination Card Titles and Descriptions in this JSON format", + "copyManyCardsPopup-format": "[ {\"title\": \"First card title\", \"description\":\"First card description\"}, {\"title\":\"Second card title\",\"description\":\"Second card description\"},{\"title\":\"Last card title\",\"description\":\"Last card description\"} ]", + "create": "Create", + "createBoardPopup-title": "Create Board", + "chooseBoardSourcePopup-title": "Import board", + "createLabelPopup-title": "Create Label", + "createCustomField": "Create Field", + "createCustomFieldPopup-title": "Create Field", + "current": "current", + "custom-field-delete-pop": "There is no undo. This will remove this custom field from all cards and destroy its history.", + "custom-field-checkbox": "Checkbox", + "custom-field-currency": "Currency", + "custom-field-currency-option": "Currency Code", + "custom-field-date": "Date", + "custom-field-dropdown": "Dropdown List", + "custom-field-dropdown-none": "(none)", + "custom-field-dropdown-options": "List Options", + "custom-field-dropdown-options-placeholder": "Press enter to add more options", + "custom-field-dropdown-unknown": "(unknown)", + "custom-field-number": "Number", + "custom-field-text": "Text", + "custom-fields": "Custom Fields", + "date": "Date", + "decline": "Decline", + "default-avatar": "Default avatar", + "delete": "Delete", + "deleteCustomFieldPopup-title": "Delete Custom Field?", + "deleteLabelPopup-title": "Delete Label?", + "description": "Description", + "disambiguateMultiLabelPopup-title": "Disambiguate Label Action", + "disambiguateMultiMemberPopup-title": "Disambiguate Member Action", + "discard": "Discard", + "done": "Done", + "download": "Download", + "edit": "Edit", + "edit-avatar": "Change Avatar", + "edit-profile": "Edit Profile", + "edit-wip-limit": "Edit WIP Limit", + "soft-wip-limit": "Soft WIP Limit", + "editCardStartDatePopup-title": "Change start date", + "editCardDueDatePopup-title": "Change due date", + "editCustomFieldPopup-title": "Edit Field", + "addReactionPopup-title": "Add reaction", + "editCardSpentTimePopup-title": "Change spent time", + "editLabelPopup-title": "Change Label", + "editNotificationPopup-title": "Edit Notification", + "editProfilePopup-title": "Edit Profile", + "email": "Email", + "email-enrollAccount-subject": "An account created for you on __siteName__", + "email-enrollAccount-text": "Hello __user__,\n\nTo start using the service, simply click the link below.\n\n__url__\n\nThanks.", + "email-fail": "Sending email failed", + "email-fail-text": "Error trying to send email", + "email-invalid": "Invalid email", + "email-invite": "Invite via Email", + "email-invite-subject": "__inviter__ sent you an invitation", + "email-invite-text": "Dear __user__,\n\n__inviter__ invites you to join board \"__board__\" for collaborations.\n\nPlease follow the link below:\n\n__url__\n\nThanks.", + "email-resetPassword-subject": "Reset your password on __siteName__", + "email-resetPassword-text": "Hello __user__,\n\nTo reset your password, simply click the link below.\n\n__url__\n\nThanks.", + "email-sent": "Email sent", + "email-verifyEmail-subject": "Verify your email address on __siteName__", + "email-verifyEmail-text": "Hello __user__,\n\nTo verify your account email, simply click the link below.\n\n__url__\n\nThanks.", + "enable-vertical-scrollbars": "Enable vertical scrollbars", + "enable-wip-limit": "Enable WIP Limit", + "error-board-doesNotExist": "This board does not exist", + "error-board-notAdmin": "You need to be admin of this board to do that", + "error-board-notAMember": "You need to be a member of this board to do that", + "error-json-malformed": "Your text is not valid JSON", + "error-json-schema": "Your JSON data does not include the proper information in the correct format", + "error-csv-schema": "Your CSV(Comma Separated Values)/TSV (Tab Separated Values) does not include the proper information in the correct format ", + "error-list-doesNotExist": "This list does not exist", + "error-user-doesNotExist": "This user does not exist", + "error-user-notAllowSelf": "You can not invite yourself", + "error-user-notCreated": "This user is not created", + "error-username-taken": "This username is already taken", + "error-orgname-taken": "This organization name is already taken", + "error-teamname-taken": "This team name is already taken", + "error-email-taken": "Email has already been taken", + "export-board": "Export board", + "export-board-json": "Export board to JSON", + "export-board-csv": "Export board to CSV", + "export-board-tsv": "Export board to TSV", + "export-board-excel": "Export board to Excel", + "user-can-not-export-excel": "User can not export Excel", + "export-board-html": "Export board to HTML", + "export-card": "Export card", + "export-card-pdf": "Export card to PDF", + "user-can-not-export-card-to-pdf": "User can not export card to PDF", + "exportBoardPopup-title": "Export board", + "exportCardPopup-title": "Export card", + "sort": "Sort", + "sorted": "Sorted", + "remove-sort": "Remove sort", + "sort-desc": "Click to Sort List", + "list-sort-by": "Sort the List By:", + "list-label-modifiedAt": "Last Access Time", + "list-label-title": "Name of the List", + "list-label-sort": "Your Manual Order", + "list-label-short-modifiedAt": "(L)", + "list-label-short-title": "(N)", + "list-label-short-sort": "(M)", + "filter": "Filter", + "filter-cards": "Filter Cards or Lists", + "filter-dates-label": "Filter by date", + "filter-no-due-date": "No due date", + "filter-overdue": "Overdue", + "filter-due-today": "Due today", + "filter-due-this-week": "Due this week", + "filter-due-next-week": "Due next week", + "filter-due-tomorrow": "Due tomorrow", + "list-filter-label": "Filter List by Title", + "filter-clear": "Clear filter", + "filter-labels-label": "Filter by label", + "filter-no-label": "No label", + "filter-member-label": "Filter by member", + "filter-no-member": "No member", + "filter-assignee-label": "Filter by assignee", + "filter-no-assignee": "No assignee", + "filter-custom-fields-label": "Filter by Custom Fields", + "filter-no-custom-fields": "No Custom Fields", + "filter-show-archive": "Show archived lists", + "filter-hide-empty": "Hide empty lists", + "filter-on": "Filter is on", + "filter-on-desc": "You are filtering cards on this board. Click here to edit filter.", + "filter-to-selection": "Filter to selection", + "other-filters-label": "Other Filters", + "advanced-filter-label": "Advanced Filter", + "advanced-filter-description": "Advanced Filter allows to write a string containing following operators: == != <= >= && || ( ) A space is used as a separator between the Operators. You can filter for all Custom Fields by typing their names and values. For Example: Field1 == Value1. Note: If fields or values contains spaces, you need to encapsulate them into single quotes. For Example: 'Field 1' == 'Value 1'. For single control characters (' \\/) to be skipped, you can use \\. For example: Field1 == I\\'m. Also you can combine multiple conditions. For Example: F1 == V1 || F1 == V2. Normally all operators are interpreted from left to right. You can change the order by placing brackets. For Example: F1 == V1 && ( F2 == V2 || F2 == V3 ). Also you can search text fields using regex: F1 == /Tes.*/i", + "fullname": "Full Name", + "header-logo-title": "Go back to your boards page.", + "show-activities": "Show Activities", + "headerBarCreateBoardPopup-title": "Create Board", + "home": "Home", + "import": "Import", + "impersonate-user": "Impersonate user", + "link": "Link", + "import-board": "import board", + "import-board-c": "Import board", + "import-board-title-trello": "Import board from Trello", + "import-board-title-wekan": "Import board from previous export", + "import-board-title-csv": "Import board from CSV/TSV", + "from-trello": "From Trello", + "from-wekan": "From previous export", + "from-csv": "From CSV/TSV", + "import-board-instruction-trello": "In your Trello board, go to 'Menu', then 'More', 'Print and Export', 'Export JSON', and copy the resulting text.", + "import-board-instruction-csv": "Paste in your Comma Separated Values(CSV)/ Tab Separated Values (TSV) .", + "import-board-instruction-wekan": "In your board, go to 'Menu', then 'Export board', and copy the text in the downloaded file.", + "import-board-instruction-about-errors": "If you get errors when importing board, sometimes importing still works, and board is at All Boards page.", + "import-json-placeholder": "Paste your valid JSON data here", + "import-csv-placeholder": "Paste your valid CSV/TSV data here", + "import-map-members": "Map members", + "import-members-map": "Your imported board has some members. Please map the members you want to import to your users", + "import-members-map-note": "Note: Unmapped members will be assigned to the current user.", + "import-show-user-mapping": "Review members mapping", + "import-user-select": "Pick your existing user you want to use as this member", + "importMapMembersAddPopup-title": "Select member", + "info": "Version", + "initials": "Initials", + "invalid-date": "Invalid date", + "invalid-time": "Invalid time", + "invalid-user": "Invalid user", + "joined": "joined", + "just-invited": "You are just invited to this board", + "keyboard-shortcuts": "Keyboard shortcuts", + "label-create": "Create Label", + "label-default": "%s label (default)", + "label-delete-pop": "There is no undo. This will remove this label from all cards and destroy its history.", + "labels": "Labels", + "language": "Language", + "last-admin-desc": "You can’t change roles because there must be at least one admin.", + "leave-board": "Leave Board", + "leave-board-pop": "Are you sure you want to leave __boardTitle__? You will be removed from all cards on this board.", + "leaveBoardPopup-title": "Leave Board ?", + "link-card": "Link to this card", + "list-archive-cards": "Move all cards in this list to Archive", + "list-archive-cards-pop": "This will remove all the cards in this list from the board. To view cards in Archive and bring them back to the board, click “Menu” > “Archive”.", + "list-move-cards": "Move all cards in this list", + "list-select-cards": "Select all cards in this list", + "set-color-list": "Set Color", + "listActionPopup-title": "List Actions", + "settingsUserPopup-title": "User Settings", + "settingsTeamPopup-title": "Team Settings", + "settingsOrgPopup-title": "Organization Settings", + "swimlaneActionPopup-title": "Swimlane Actions", + "swimlaneAddPopup-title": "Add a Swimlane below", + "listImportCardPopup-title": "Import a Trello card", + "listImportCardsTsvPopup-title": "Import Excel CSV/TSV", + "listMorePopup-title": "More", + "link-list": "Link to this list", + "list-delete-pop": "All actions will be removed from the activity feed and you won't be able to recover the list. There is no undo.", + "list-delete-suggest-archive": "You can move a list to Archive to remove it from the board and preserve the activity.", + "lists": "Lists", + "swimlanes": "Swimlanes", + "log-out": "Log Out", + "log-in": "Log In", + "loginPopup-title": "Log In", + "memberMenuPopup-title": "Member Settings", + "members": "Members", + "menu": "Menu", + "move-selection": "Move selection", + "moveCardPopup-title": "Move Card", + "moveCardToBottom-title": "Move to Bottom", + "moveCardToTop-title": "Move to Top", + "moveSelectionPopup-title": "Move selection", + "multi-selection": "Multi-Selection", + "multi-selection-label": "Set label for selection", + "multi-selection-member": "Set member for selection", + "multi-selection-on": "Multi-Selection is on", + "muted": "Muted", + "muted-info": "You will never be notified of any changes in this board", + "my-boards": "My Boards", + "name": "Name", + "no-archived-cards": "No cards in Archive.", + "no-archived-lists": "No lists in Archive.", + "no-archived-swimlanes": "No swimlanes in Archive.", + "no-results": "No results", + "normal": "Normal", + "normal-desc": "Can view and edit cards. Can't change settings.", + "not-accepted-yet": "Invitation not accepted yet", + "notify-participate": "Receive updates to any cards you participate as creator or member", + "notify-watch": "Receive updates to any boards, lists, or cards you’re watching", + "optional": "optional", + "or": "or", + "page-maybe-private": "This page may be private. You may be able to view it by <a href='%s'>logging in</a>.", + "page-not-found": "Page not found.", + "password": "Password", + "paste-or-dragdrop": "to paste, or drag & drop image file to it (image only)", + "participating": "Participating", + "preview": "Preview", + "previewAttachedImagePopup-title": "Preview", + "previewClipboardImagePopup-title": "Preview", + "private": "Private", + "private-desc": "This board is private. Only people added to the board can view and edit it.", + "profile": "Profile", + "public": "Public", + "public-desc": "This board is public. It's visible to anyone with the link and will show up in search engines like Google. Only people added to the board can edit.", + "quick-access-description": "Star a board to add a shortcut in this bar.", + "remove-cover": "Remove cover image from minicard", + "remove-from-board": "Remove from Board", + "remove-label": "Remove Label", + "listDeletePopup-title": "Delete List ?", + "remove-member": "Remove Member", + "remove-member-from-card": "Remove from Card", + "remove-member-pop": "Remove __name__ (__username__) from __boardTitle__? The member will be removed from all cards on this board. They will receive a notification.", + "removeMemberPopup-title": "Remove Member?", + "rename": "Rename", + "rename-board": "Rename Board", + "restore": "Restore", + "rescue-card-description": "Show rescue dialogue before closing for unsaved card descriptions", + "rescue-card-description-dialogue": "Overwrite current card description with your changes?", + "save": "Save", + "search": "Search", + "rules": "Rules", + "search-cards": "Search from card/list titles, descriptions and custom fields on this board", + "search-example": "Write text you search and press Enter", + "select-color": "Select Color", + "select-board": "Select Board", + "set-wip-limit-value": "Set a limit for the maximum number of tasks in this list", + "setWipLimitPopup-title": "Set WIP Limit", + "shortcut-add-self": "Add yourself to current card", + "shortcut-assign-self": "Assign yourself to current card", + "shortcut-autocomplete-emoji": "Autocomplete emoji", + "shortcut-autocomplete-members": "Autocomplete members", + "shortcut-clear-filters": "Clear all filters", + "shortcut-close-dialog": "Close Dialog", + "shortcut-filter-my-cards": "Filter my cards", + "shortcut-filter-my-assigned-cards": "Filter my assigned cards", + "shortcut-show-shortcuts": "Bring up this shortcuts list", + "shortcut-toggle-filterbar": "Toggle Filter Sidebar", + "shortcut-toggle-searchbar": "Toggle Search Sidebar", + "shortcut-toggle-sidebar": "Toggle Board Sidebar", + "show-cards-minimum-count": "Show cards count if list contains more than", + "sidebar-open": "Open Sidebar", + "sidebar-close": "Close Sidebar", + "signupPopup-title": "Create an Account", + "star-board-title": "Click to star this board. It will show up at top of your boards list.", + "starred-boards": "Starred Boards", + "starred-boards-description": "Starred boards show up at the top of your boards list.", + "subscribe": "Subscribe", + "team": "Team", + "this-board": "this board", + "this-card": "this card", + "spent-time-hours": "Spent time (hours)", + "overtime-hours": "Overtime (hours)", + "overtime": "Overtime", + "has-overtime-cards": "Has overtime cards", + "has-spenttime-cards": "Has spent time cards", + "time": "Time", + "title": "Title", + "toggle-assignees": "Toggle assignees 1-9 for card (By order of addition to board).", + "toggle-labels": "Toggle labels 1-9 for card. Multi-Selection adds labels 1-9", + "remove-labels-multiselect": "Multi-Selection removes labels 1-9", + "tracking": "Tracking", + "tracking-info": "You will be notified of any changes to those cards you are involved as creator or member.", + "type": "Type", + "unassign-member": "Unassign member", + "unsaved-description": "You have an unsaved description.", + "unwatch": "Unwatch", + "upload": "Upload", + "upload-avatar": "Upload an avatar", + "uploaded-avatar": "Uploaded an avatar", + "custom-top-left-corner-logo-image-url": "Custom Top Left Corner Logo Image URL", + "custom-top-left-corner-logo-link-url": "Custom Top Left Corner Logo Link URL", + "custom-top-left-corner-logo-height": "Custom Top Left Corner Logo Height. Default: 27", + "custom-login-logo-image-url": "Custom Login Logo Image URL", + "custom-login-logo-link-url": "Custom Login Logo Link URL", + "custom-help-link-url": "Custom Help Link URL", + "text-below-custom-login-logo": "Text below Custom Login Logo", + "automatic-linked-url-schemes": "Custom URL Schemes which should automatically be clickable. One URL Scheme per line", + "username": "Username", + "import-usernames": "Import Usernames", + "view-it": "View it", + "warn-list-archived": "warning: this card is in an list at Archive", + "watch": "Watch", + "watching": "Watching", + "watching-info": "You will be notified of any change in this board", + "welcome-board": "Welcome Board", + "welcome-swimlane": "Milestone 1", + "welcome-list1": "Basics", + "welcome-list2": "Advanced", + "card-templates-swimlane": "Card Templates", + "list-templates-swimlane": "List Templates", + "board-templates-swimlane": "Board Templates", + "what-to-do": "What do you want to do?", + "wipLimitErrorPopup-title": "Invalid WIP Limit", + "wipLimitErrorPopup-dialog-pt1": "The number of tasks in this list is higher than the WIP limit you've defined.", + "wipLimitErrorPopup-dialog-pt2": "Please move some tasks out of this list, or set a higher WIP limit.", + "admin-panel": "Admin Panel", + "settings": "Settings", + "people": "People", + "registration": "Registration", + "disable-self-registration": "Disable Self-Registration", + "disable-forgot-password": "Disable Forgot Password", + "invite": "Invite", + "invite-people": "Invite People", + "to-boards": "To board(s)", + "email-addresses": "Email Addresses", + "smtp-host-description": "The address of the SMTP server that handles your emails.", + "smtp-port-description": "The port your SMTP server uses for outgoing emails.", + "smtp-tls-description": "Enable TLS support for SMTP server", + "smtp-host": "SMTP Host", + "smtp-port": "SMTP Port", + "smtp-username": "Username", + "smtp-password": "Password", + "smtp-tls": "TLS support", + "send-from": "From", + "send-smtp-test": "Send a test email to yourself", + "invitation-code": "Invitation Code", + "email-invite-register-subject": "__inviter__ sent you an invitation", + "email-invite-register-text": "Dear __user__,\n\n__inviter__ invites you to kanban board for collaborations.\n\nPlease follow the link below:\n__url__\n\nAnd your invitation code is: __icode__\n\nThanks.", + "email-smtp-test-subject": "SMTP Test Email", + "email-smtp-test-text": "You have successfully sent an email", + "error-invitation-code-not-exist": "Invitation code doesn't exist", + "error-notAuthorized": "You are not authorized to view this page.", + "webhook-title": "Webhook Name", + "webhook-token": "Token (Optional for Authentication)", + "outgoing-webhooks": "Outgoing Webhooks", + "bidirectional-webhooks": "Two-Way Webhooks", + "outgoingWebhooksPopup-title": "Outgoing Webhooks", + "boardCardTitlePopup-title": "Card Title Filter", + "disable-webhook": "Disable This Webhook", + "global-webhook": "Global Webhooks", + "new-outgoing-webhook": "New Outgoing Webhook", + "no-name": "(Unknown)", + "Node_version": "Node version", + "Meteor_version": "Meteor version", + "MongoDB_version": "MongoDB version", + "MongoDB_storage_engine": "MongoDB storage engine", + "MongoDB_Oplog_enabled": "MongoDB Oplog enabled", + "OS_Arch": "OS Arch", + "OS_Cpus": "OS CPU Count", + "OS_Freemem": "OS Free Memory", + "OS_Loadavg": "OS Load Average", + "OS_Platform": "OS Platform", + "OS_Release": "OS Release", + "OS_Totalmem": "OS Total Memory", + "OS_Type": "OS Type", + "OS_Uptime": "OS Uptime", + "days": "days", + "hours": "hours", + "minutes": "minutes", + "seconds": "seconds", + "show-field-on-card": "Show this field on card", + "automatically-field-on-card": "Add field to new cards", + "always-field-on-card": "Add field to all cards", + "showLabel-field-on-card": "Show field label on minicard", + "showSum-field-on-list": "Show sum of fields at top of list", + "yes": "Yes", + "no": "No", + "accounts": "Accounts", + "accounts-allowEmailChange": "Allow Email Change", + "accounts-allowUserNameChange": "Allow Username Change", + "tableVisibilityMode-allowPrivateOnly": "Boards visibility: Allow private boards only", + "tableVisibilityMode" : "Boards visibility", + "createdAt": "Created at", + "modifiedAt": "Modified at", + "verified": "Verified", + "active": "Active", + "card-received": "Received", + "card-received-on": "Received on", + "card-end": "End", + "card-end-on": "Ends on", + "editCardReceivedDatePopup-title": "Change received date", + "editCardEndDatePopup-title": "Change end date", + "setCardColorPopup-title": "Set color", + "setCardActionsColorPopup-title": "Choose a color", + "setSwimlaneColorPopup-title": "Choose a color", + "setListColorPopup-title": "Choose a color", + "assigned-by": "Assigned By", + "requested-by": "Requested By", + "card-sorting-by-number": "Card sorting by number", + "board-delete-notice": "Deleting is permanent. You will lose all lists, cards and actions associated with this board.", + "delete-board-confirm-popup": "All lists, cards, labels, and activities will be deleted and you won't be able to recover the board contents. There is no undo.", + "boardDeletePopup-title": "Delete Board?", + "delete-board": "Delete Board", + "default-subtasks-board": "Subtasks for __board__ board", + "default": "Default", + "defaultdefault": "Default", + "queue": "Queue", + "subtask-settings": "Subtasks Settings", + "card-settings": "Card Settings", + "minicard-settings": "Minicard Settings", + "boardSubtaskSettingsPopup-title": "Board Subtasks Settings", + "boardCardSettingsPopup-title": "Card Settings", + "boardMinicardSettingsPopup-title": "Minicard Settings", + "deposit-subtasks-board": "Deposit subtasks to this board:", + "deposit-subtasks-list": "Landing list for subtasks deposited here:", + "show-parent-in-minicard": "Show parent in minicard:", + "description-on-minicard": "Description on minicard", + "cover-attachment-on-minicard": "Cover image on minicard", + "badge-attachment-on-minicard": "Count of attachments on minicard", + "card-sorting-by-number-on-minicard": "Card sorting by number on minicard", + "prefix-with-full-path": "Prefix with full path", + "prefix-with-parent": "Prefix with parent", + "subtext-with-full-path": "Subtext with full path", + "subtext-with-parent": "Subtext with parent", + "change-card-parent": "Change card's parent", + "parent-card": "Parent card", + "source-board": "Source board", + "no-parent": "Don't show parent", + "activity-added-label": "added label '%s' to %s", + "activity-removed-label": "removed label '%s' from %s", + "activity-delete-attach": "deleted an attachment from %s", + "activity-added-label-card": "added label '%s'", + "activity-removed-label-card": "removed label '%s'", + "activity-delete-attach-card": "deleted an attachment", + "activity-set-customfield": "set custom field '%s' to '%s' in %s", + "activity-unset-customfield": "unset custom field '%s' in %s", + "r-rule": "Rule", + "r-add-trigger": "Add trigger", + "r-add-action": "Add action", + "r-board-rules": "Board rules", + "r-add-rule": "Add rule", + "r-view-rule": "View rule", + "r-delete-rule": "Delete rule", + "r-new-rule-name": "New rule title", + "r-no-rules": "No rules", + "r-trigger": "Trigger", + "r-action": "Action", + "r-when-a-card": "When a card", + "r-is": "is", + "r-is-moved": "is moved", + "r-added-to": "Added to", + "r-removed-from": "Removed from", + "r-the-board": "the board", + "r-list": "list", + "set-filter": "Set Filter", + "r-moved-to": "Moved to", + "r-moved-from": "Moved from", + "r-archived": "Moved to Archive", + "r-unarchived": "Restored from Archive", + "r-a-card": "a card", + "r-when-a-label-is": "When a label is", + "r-when-the-label": "When the label", + "r-list-name": "list name", + "r-when-a-member": "When a member is", + "r-when-the-member": "When the member", + "r-name": "name", + "r-when-a-attach": "When an attachment", + "r-when-a-checklist": "When a checklist is", + "r-when-the-checklist": "When the checklist", + "r-completed": "Completed", + "r-made-incomplete": "Made incomplete", + "r-when-a-item": "When a checklist item is", + "r-when-the-item": "When the checklist item", + "r-checked": "Checked", + "r-unchecked": "Unchecked", + "r-move-card-to": "Move card to", + "r-top-of": "Top of", + "r-bottom-of": "Bottom of", + "r-its-list": "its list", + "r-archive": "Move to Archive", + "r-unarchive": "Restore from Archive", + "r-card": "card", + "r-add": "Add", + "r-remove": "Remove", + "r-label": "label", + "r-member": "member", + "r-remove-all": "Remove all members from the card", + "r-set-color": "Set color to", + "r-checklist": "checklist", + "r-check-all": "Check all", + "r-uncheck-all": "Uncheck all", + "r-items-check": "items of checklist", + "r-check": "Check", + "r-uncheck": "Uncheck", + "r-item": "item", + "r-of-checklist": "of checklist", + "r-send-email": "Send an email", + "r-to": "to", + "r-of": "of", + "r-subject": "subject", + "r-rule-details": "Rule details", + "r-d-move-to-top-gen": "Move card to top of its list", + "r-d-move-to-top-spec": "Move card to top of list", + "r-d-move-to-bottom-gen": "Move card to bottom of its list", + "r-d-move-to-bottom-spec": "Move card to bottom of list", + "r-d-send-email": "Send email", + "r-d-send-email-to": "to", + "r-d-send-email-subject": "subject", + "r-d-send-email-message": "message", + "r-d-archive": "Move card to Archive", + "r-d-unarchive": "Restore card from Archive", + "r-d-add-label": "Add label", + "r-d-remove-label": "Remove label", + "r-create-card": "Create new card", + "r-in-list": "in list", + "r-in-swimlane": "in swimlane", + "r-d-add-member": "Add member", + "r-d-remove-member": "Remove member", + "r-d-remove-all-member": "Remove all member", + "r-d-check-all": "Check all items of a list", + "r-d-uncheck-all": "Uncheck all items of a list", + "r-d-check-one": "Check item", + "r-d-uncheck-one": "Uncheck item", + "r-d-check-of-list": "of checklist", + "r-d-add-checklist": "Add checklist", + "r-d-remove-checklist": "Remove checklist", + "r-by": "by", + "r-add-checklist": "Add checklist", + "r-with-items": "with items", + "r-items-list": "item1,item2,item3", + "r-add-swimlane": "Add swimlane", + "r-swimlane-name": "swimlane name", + "r-board-note": "Note: leave a field empty to match every possible value. ", + "r-checklist-note": "Note: checklist's items have to be written as comma separated values.", + "r-when-a-card-is-moved": "When a card is moved to another list", + "r-set": "Set", + "r-update": "Update", + "r-datefield": "date field", + "r-df-start-at": "start", + "r-df-due-at": "due", + "r-df-end-at": "end", + "r-df-received-at": "received", + "r-to-current-datetime": "to current date/time", + "r-remove-value-from": "Remove value from", + "r-link-card": "Link card to", + "ldap": "LDAP", + "oauth2": "OAuth2", + "cas": "CAS", + "authentication-method": "Authentication method", + "authentication-type": "Authentication type", + "custom-product-name": "Custom Product Name", + "layout": "Layout", + "hide-logo": "Hide Logo", + "hide-card-counter-list": "Hide card counter list on All Boards", + "hide-board-member-list": "Hide board member list on All Boards", + "add-custom-html-after-body-start": "Add Custom HTML after <body> start", + "add-custom-html-before-body-end": "Add Custom HTML before </body> end", + "error-undefined": "Something went wrong", + "error-ldap-login": "An error occurred while trying to login", + "display-authentication-method": "Display Authentication Method", + "oidc-button-text": "Customize the OIDC button text", + "default-authentication-method": "Default Authentication Method", + "duplicate-board": "Duplicate Board", + "org-number": "The number of organizations is: ", + "team-number": "The number of teams is: ", + "people-number": "The number of people is: ", + "swimlaneDeletePopup-title": "Delete Swimlane ?", + "swimlane-delete-pop": "All actions will be removed from the activity feed and you won't be able to recover the swimlane. There is no undo.", + "restore-all": "Restore all", + "delete-all": "Delete all", + "loading": "Loading, please wait.", + "previous_as": "last time was", + "act-a-dueAt": "modified due time to \nWhen: __timeValue__\nWhere: __card__\n previous due was __timeOldValue__", + "act-a-endAt": "modified ending time to __timeValue__ from (__timeOldValue__)", + "act-a-startAt": "modified starting time to __timeValue__ from (__timeOldValue__)", + "act-a-receivedAt": "modified received time to __timeValue__ from (__timeOldValue__)", + "a-dueAt": "modified due time to be", + "a-endAt": "modified ending time to be", + "a-startAt": "modified starting time to be", + "a-receivedAt": "modified received time to be", + "almostdue": "current due time %s is approaching", + "pastdue": "current due time %s is past", + "duenow": "current due time %s is today", + "act-newDue": "__list__/__card__ has 1st due reminder [__board__]", + "act-withDue": "__list__/__card__ due reminders [__board__]", + "act-almostdue": "was reminding the current due (__timeValue__) of __card__ is approaching", + "act-pastdue": "was reminding the current due (__timeValue__) of __card__ is past", + "act-duenow": "was reminding the current due (__timeValue__) of __card__ is now", + "act-atUserComment": "You were mentioned in [__board__] __list__/__card__", + "delete-user-confirm-popup": "Are you sure you want to delete this account? There is no undo.", + "delete-team-confirm-popup": "Are you sure you want to delete this team? There is no undo.", + "delete-org-confirm-popup": "Are you sure you want to delete this organization? There is no undo.", + "accounts-allowUserDelete": "Allow users to self delete their account", + "hide-minicard-label-text": "Hide minicard label text", + "show-desktop-drag-handles": "Show desktop drag handles", + "assignee": "Assignee", + "cardAssigneesPopup-title": "Assignee", + "addmore-detail": "Add a more detailed description", + "show-on-card": "Show on Card", + "show-on-minicard": "Show on Minicard", + "new": "New", + "editOrgPopup-title": "Edit Organization", + "newOrgPopup-title": "New Organization", + "editTeamPopup-title": "Edit Team", + "newTeamPopup-title": "New Team", + "editUserPopup-title": "Edit User", + "newUserPopup-title": "New User", + "notifications": "Notifications", + "help": "Help", + "view-all": "View All", + "filter-by-unread": "Filter by Unread", + "mark-all-as-read": "Mark all as read", + "remove-all-read": "Remove all read", + "allow-rename": "Allow Rename", + "allowRenamePopup-title": "Allow Rename", + "start-day-of-week": "Set day of the week start", + "monday": "Monday", + "tuesday": "Tuesday", + "wednesday": "Wednesday", + "thursday": "Thursday", + "friday": "Friday", + "saturday": "Saturday", + "sunday": "Sunday", + "status": "Status", + "swimlane": "Swimlane", + "owner": "Owner", + "last-modified-at": "Last modified at", + "last-activity": "Last activity", + "voting": "Voting", + "archived": "Archived", + "delete-linked-card-before-this-card": "You can not delete this card before first deleting linked card that has", + "delete-linked-cards-before-this-list": "You can not delete this list before first deleting linked cards that are pointing to cards in this list", + "hide-checked-items": "Hide checked items", + "hide-finished-checklist": "Hide finished checklist", + "task": "Task", + "create-task": "Create Task", + "ok": "OK", + "organizations": "Organizations", + "teams": "Teams", + "displayName": "Display Name", + "shortName": "Short Name", + "autoAddUsersWithDomainName": "Automatically add users with the domain name", + "website": "Website", + "person": "Person", + "my-cards": "My Cards", + "card": "Card", + "list": "List", + "board": "Board", + "context-separator": "/", + "myCardsViewChange-title": "My Cards View", + "myCardsViewChangePopup-title": "My Cards View", + "myCardsViewChange-choice-boards": "Boards", + "myCardsViewChange-choice-table": "Table", + "myCardsSortChange-title": "My Cards Sort", + "myCardsSortChangePopup-title": "My Cards Sort", + "myCardsSortChange-choice-board": "By Board", + "myCardsSortChange-choice-dueat": "By Due Date", + "dueCards-title": "Due Cards", + "dueCardsViewChange-title": "Due Cards View", + "dueCardsViewChangePopup-title": "Due Cards View", + "dueCardsViewChange-choice-me": "Me", + "dueCardsViewChange-choice-all": "All Users", + "dueCardsViewChange-choice-all-description": "Shows all incomplete cards with a *Due* date from boards for which the user has permission.", + "broken-cards": "Broken Cards", + "board-title-not-found": "Board '%s' not found.", + "swimlane-title-not-found": "Swimlane '%s' not found.", + "list-title-not-found": "List '%s' not found.", + "label-not-found": "Label '%s' not found.", + "label-color-not-found": "Label color %s not found.", + "user-username-not-found": "Username '%s' not found.", + "comment-not-found": "Card with comment containing text '%s' not found.", + "org-name-not-found": "Organization '%s' not found.", + "team-name-not-found": "Team '%s' not found.", + "globalSearch-title": "Search All Boards", + "no-cards-found": "No Cards Found", + "one-card-found": "One Card Found", + "n-cards-found": "%s Cards Found", + "n-n-of-n-cards-found": "__start__-__end__ of __total__ Cards Found", + "operator-board": "board", + "operator-board-abbrev": "b", + "operator-swimlane": "swimlane", + "operator-swimlane-abbrev": "s", + "operator-list": "list", + "operator-list-abbrev": "l", + "operator-label": "label", + "operator-label-abbrev": "#", + "operator-user": "user", + "operator-user-abbrev": "@", + "operator-member": "member", + "operator-member-abbrev": "m", + "operator-assignee": "assignee", + "operator-assignee-abbrev": "a", + "operator-creator": "creator", + "operator-status": "status", + "operator-due": "due", + "operator-created": "created", + "operator-modified": "modified", + "operator-sort": "sort", + "operator-comment": "comment", + "operator-has": "has", + "operator-limit": "limit", + "operator-debug": "debug", + "operator-org": "org", + "operator-team": "team", + "predicate-archived": "archived", + "predicate-open": "open", + "predicate-ended": "ended", + "predicate-all": "all", + "predicate-overdue": "overdue", + "predicate-week": "week", + "predicate-month": "month", + "predicate-quarter": "quarter", + "predicate-year": "year", + "predicate-due": "due", + "predicate-modified": "modified", + "predicate-created": "created", + "predicate-attachment": "attachment", + "predicate-description": "description", + "predicate-checklist": "checklist", + "predicate-start": "start", + "predicate-end": "end", + "predicate-assignee": "assignee", + "predicate-member": "member", + "predicate-public": "public", + "predicate-private": "private", + "predicate-selector": "selector", + "predicate-projection": "projection", + "operator-unknown-error": "%s is not an operator", + "operator-number-expected": "operator __operator__ expected a number, got '__value__'", + "operator-sort-invalid": "sort of '%s' is invalid", + "operator-status-invalid": "'%s' is not a valid status", + "operator-has-invalid": "%s is not a valid existence check", + "operator-limit-invalid": "%s is not a valid limit. Limit should be a positive integer.", + "operator-debug-invalid": "%s is not a valid debug predicate", + "next-page": "Next Page", + "previous-page": "Previous Page", + "heading-notes": "Notes", + "globalSearch-instructions-heading": "Search Instructions", + "globalSearch-instructions-description": "Searches can include operators to refine the search. Operators are specified by writing the operator name and value separated by a colon. For example, an operator specification of `list:Blocked` would limit the search to cards that are contained in a list named *Blocked*. If the value contains spaces or special characters it must be enclosed in quotation marks (e.g. `__operator_list__:\"To Review\"`).", + "globalSearch-instructions-operators": "Available operators:", + "globalSearch-instructions-operator-board": "`__operator_board__:<title>` - cards in boards matching the specified *<title>*", + "globalSearch-instructions-operator-list": "`__operator_list__:<title>` - cards in lists matching the specified *<title>*", + "globalSearch-instructions-operator-swimlane": "`__operator_swimlane__:<title>` - cards in swimlanes matching the specified *<title>*", + "globalSearch-instructions-operator-comment": "`__operator_comment__:<text>` - cards with a comment containing *<text>*.", + "globalSearch-instructions-operator-label": "`__operator_label__:<color>` `__operator_label__:<name>` - cards that have a label matching *<color>* or *<name>", + "globalSearch-instructions-operator-hash": "`__operator_label_abbrev__<name|color>` - shorthand for `__operator_label__:<color>` or `__operator_label__:<name>`", + "globalSearch-instructions-operator-user": "`__operator_user__:<username>` - cards where *<username>* is a *member* or *assignee*", + "globalSearch-instructions-operator-at": "`__operator_user_abbrev__username` - shorthand for `user:<username>`", + "globalSearch-instructions-operator-member": "`__operator_member__:<username>` - cards where *<username>* is a *member*", + "globalSearch-instructions-operator-assignee": "`__operator_assignee__:<username>` - cards where *<username>* is an *assignee*", + "globalSearch-instructions-operator-creator": "`__operator_creator__:<username>` - cards where *<username>* is the card's creator", + "globalSearch-instructions-operator-org": "`__operator_org__:<display name|short name>` - cards belonging to a board assigned to organization *<name>*", + "globalSearch-instructions-operator-team": "`__operator_team__:<display name|short name>` - cards belonging to a board assigned to team *<name>*", + "globalSearch-instructions-operator-due": "`__operator_due__:<n>` - cards which are due up to *<n>* days from now. `__operator_due__:__predicate_overdue__ lists all cards past their due date.", + "globalSearch-instructions-operator-created": "`__operator_created__:<n>` - cards which were created *<n>* days ago or less", + "globalSearch-instructions-operator-modified": "`__operator_modified__:<n>` - cards which were modified *<n>* days ago or less", + "globalSearch-instructions-operator-status": "`__operator_status__:<status>` - where *<status>* is one of the following:", + "globalSearch-instructions-status-archived": "`__predicate_archived__` - archived cards", + "globalSearch-instructions-status-all": "`__predicate_all__` - all archived and unarchived cards", + "globalSearch-instructions-status-ended": "`__predicate_ended__` - cards with an end date", + "globalSearch-instructions-status-public": "`__predicate_public__` - cards only in public boards", + "globalSearch-instructions-status-private": "`__predicate_private__` - cards only in private boards", + "globalSearch-instructions-operator-has": "`__operator_has__:<field>` - where *<field>* is one of `__predicate_attachment__`, `__predicate_checklist__`, `__predicate_description__`, `__predicate_start__`, `__predicate_due__`, `__predicate_end__`, `__predicate_assignee__` or `__predicate_member__`. Placing a `-` in front of *<field>* searches for the absence of a value in that field (e.g. `has:-due` searches for cards without a due date).", + "globalSearch-instructions-operator-sort": "`__operator_sort__:<sort-name>` - where *<sort-name>* is one of `__predicate_due__`, `__predicate_created__` or `__predicate_modified__`. For a descending sort, place a `-` in front of the sort name.", + "globalSearch-instructions-operator-limit": "`__operator_limit__:<n>` - where *<n>* is a positive integer expressing the number of cards to be displayed per page.", + "globalSearch-instructions-notes-1": "Multiple operators may be specified.", + "globalSearch-instructions-notes-2": "Similar operators are *OR*ed together. Cards that match any of the conditions will be returned.\n`__operator_list__:Available __operator_list__:Blocked` would return cards contained in any list named *Blocked* or *Available*.", + "globalSearch-instructions-notes-3": "Differing operators are *AND*ed together. Only cards that match all of the differing operators are returned. `__operator_list__:Available __operator_label__:red` returns only cards in the list *Available* with a *red* label.", + "globalSearch-instructions-notes-3-2": "Days can be specified as a positive or negative integer or using `__predicate_week__`, `__predicate_month__`, `__predicate_quarter__` or `__predicate_year__` for the current period.", + "globalSearch-instructions-notes-4": "Text searches are case insensitive.", + "globalSearch-instructions-notes-5": "By default archived cards are not searched.", + "link-to-search": "Link to this search", + "excel-font": "Arial", + "number": "Number", + "label-colors": "Label Colors", + "label-names": "Label Names", + "archived-at": "archived at", + "sort-cards": "Sort Cards", + "sort-is-on": "Sort is on", + "cardsSortPopup-title": "Sort Cards", + "due-date": "Due Date", + "server-error": "Server Error", + "server-error-troubleshooting": "Please submit the error generated by the server.\nFor a snap installation, run: `sudo snap logs wekan.wekan`\nFor a Docker installation, run: `sudo docker logs wekan-app`", + "title-alphabetically": "Title (Alphabetically)", + "created-at-newest-first": "Created At (Newest First)", + "created-at-oldest-first": "Created At (Oldest First)", + "links-heading": "Links", + "hide-activities-of-all-boards": "Don't show the board activities on all boards", + "now-activities-of-all-boards-are-hidden": "Now all activities of all boards are hidden", + "move-swimlane": "Move Swimlane", + "moveSwimlanePopup-title": "Move Swimlane", + "custom-field-stringtemplate": "String Template", + "custom-field-stringtemplate-format": "Format (use %{value} as placeholder)", + "custom-field-stringtemplate-separator": "Separator (use or   for a space)", + "custom-field-stringtemplate-item-placeholder": "Press enter to add more items", + "creator": "Creator", + "creator-on-minicard": "Creator on minicard", + "filesReportTitle": "Files Report", + "reports": "Reports", + "rulesReportTitle": "Rules Report", + "boardsReportTitle": "Boards Report", + "cardsReportTitle": "Cards Report", + "copy-swimlane": "Copy Swimlane", + "copySwimlanePopup-title": "Copy Swimlane", + "display-card-creator": "Display Card Creator", + "wait-spinner": "Wait Spinner", + "Bounce": "Bounce Wait Spinner", + "Cube": "Cube Wait Spinner", + "Cube-Grid": "Cube-Grid Wait Spinner", + "Dot": "Dot Wait Spinner", + "Double-Bounce": "Double Bounce Wait Spinner", + "Rotateplane": "Rotateplane Wait Spinner", + "Scaleout": "Scaleout Wait Spinner", + "Wave": "Wave Wait Spinner", + "maximize-card": "Maximize Card", + "minimize-card": "Minimize Card", + "delete-org-warning-message": "Can not delete this organization, there is at least one user that belongs to it", + "delete-team-warning-message": "Can not delete this team, there is at least one user that belongs to it", + "subject": "Subject", + "details": "Details", + "carbon-copy": "Carbon Copy (Cc:)", + "ticket": "Ticket", + "tickets": "Tickets", + "ticket-number": "Ticket Number", + "open": "Open", + "pending": "Pending", + "closed": "Closed", + "resolved": "Resolved", + "cancelled": "Cancelled", + "history": "History", + "request": "Request", + "requests": "Requests", + "help-request": "Help Request", + "editCardSortOrderPopup-title": "Change Sorting", + "cardDetailsPopup-title": "Card Details", + "add-teams": "Add teams", + "add-teams-label": "Added teams are displayed below:", + "remove-team-from-table": "Are you sure you want to remove this team from the board ?", + "confirm-btn": "Confirm", + "remove-btn": "Remove", + "filter-card-title-label": "Filter by card title", + "invite-people-success": "Invitation to register sent with success", + "invite-people-error": "Error while sending invitation to register", + "can-invite-if-same-mailDomainName": "Email domain name", + "to-create-teams-contact-admin": "To create teams, please contact the administrator.", + "Node_heap_total_heap_size": "Node heap: total heap size", + "Node_heap_total_heap_size_executable": "Node heap: total heap size executable", + "Node_heap_total_physical_size": "Node heap: total physical size", + "Node_heap_total_available_size": "Node heap: total available size", + "Node_heap_used_heap_size": "Node heap: used heap size", + "Node_heap_heap_size_limit": "Node heap: heap size limit", + "Node_heap_malloced_memory": "Node heap: malloced memory", + "Node_heap_peak_malloced_memory": "Node heap: peak malloced memory", + "Node_heap_does_zap_garbage": "Node heap: does zap garbage", + "Node_heap_number_of_native_contexts": "Node heap: number of native contexts", + "Node_heap_number_of_detached_contexts": "Node heap: number of detached contexts", + "Node_memory_usage_rss": "Node memory usage: resident set size", + "Node_memory_usage_heap_total": "Node memory usage: total size of the allocated heap", + "Node_memory_usage_heap_used": "Node memory usage: actual memory used", + "Node_memory_usage_external": "Node memory usage: external", + "add-organizations": "Add organizations", + "add-organizations-label": "Added organizations are displayed below:", + "remove-organization-from-board": "Are you sure you want to remove this organization from this board ?", + "to-create-organizations-contact-admin": "To create organizations, please contact administrator.", + "custom-legal-notice-link-url": "Custom legal notice page URL", + "acceptance_of_our_legalNotice": "By continuing, you accept our", + "legalNotice": "legal notice", + "copied": "Copied!", + "checklistActionsPopup-title": "Checklist Actions", + "moveChecklist": "Move Checklist", + "moveChecklistPopup-title": "Move Checklist", + "newlineBecomesNewChecklistItem": "Each line of text becomes one of the checklist items", + "newLineNewItem": "One line of text = one checklist item", + "newlineBecomesNewChecklistItemOriginOrder": "Each line of text becomes one of the checklist items, original order", + "originOrder": "original order", + "copyChecklist": "Copy Checklist", + "copyChecklistPopup-title": "Copy Checklist", + "card-show-lists": "Card Show Lists", + "subtaskActionsPopup-title": "Subtask Actions", + "attachmentActionsPopup-title": "Attachment Actions", + "attachment-move-storage-fs": "Move attachment to filesystem", + "attachment-move-storage-gridfs": "Move attachment to GridFS", + "attachment-move-storage-s3": "Move attachment to S3", + "attachment-move": "Move Attachment", + "move-all-attachments-to-fs": "Move all attachments to filesystem", + "move-all-attachments-to-gridfs": "Move all attachments to GridFS", + "move-all-attachments-to-s3": "Move all attachments to S3", + "move-all-attachments-of-board-to-fs": "Move all attachments of board to filesystem", + "move-all-attachments-of-board-to-gridfs": "Move all attachments of board to GridFS", + "move-all-attachments-of-board-to-s3": "Move all attachments of board to S3", + "path": "Path", + "version-name": "Version-Name", + "size": "Size", + "storage": "Storage", + "action": "Action", + "board-title": "Board Title", + "attachmentRenamePopup-title": "Rename", + "uploading": "Uploading", + "remaining_time": "Remaining time", + "speed": "Speed", + "progress": "Progress", + "password-again": "Password (again)", + "if-you-already-have-an-account": "If you already have an account", + "register": "Register", + "forgot-password": "Forgot password", + "minicardDetailsActionsPopup-title": "Card Details", + "Mongo_sessions_count": "Mongo sessions count", + "change-visibility": "Change Visibility", + "max-upload-filesize": "Max upload filesize in bytes:", + "allowed-upload-filetypes": "Allowed upload filetypes:", + "max-avatar-filesize": "Max avatar filesize in bytes:", + "allowed-avatar-filetypes": "Allowed avatar filetypes:", + "invalid-file": "If filename is invalid, upload or rename is cancelled.", + "preview-pdf-not-supported": "Your device does not support previewing PDF. Try downloading instead.", + "drag-board": "Drag board", + "translation-number": "The number of custom translation strings is:", + "delete-translation-confirm-popup": "Are you sure you want to delete this custom translation string? There is no undo.", + "newTranslationPopup-title": "New custom translation string", + "editTranslationPopup-title": "Edit custom translation string", + "settingsTranslationPopup-title": "Delete this custom translation string?", + "translation": "Translation", + "text": "Text", + "translation-text": "Translation text", + "show-subtasks-field": "Show subtasks field", + "show-week-of-year": "Show week of year (ISO 8601)", + "convert-to-markdown": "Convert to markdown", + "import-board-zip": "Add .zip file that has board JSON files, and board name subdirectories with attachments", + "collapse": "Collapse", + "uncollapse": "Uncollapse", + "hideCheckedChecklistItems": "Hide checked checklist items", + "hideAllChecklistItems": "Hide all checklist items", + "support": "Support", + "supportPopup-title": "Support", + "accessibility-page-enabled": "Accessibility page enabled", + "accessibility-title": "Accessibility topic", + "accessibility-content": "Accessibility content" +} From c1a4250bd2e26be5549704234a3cfb5306120352 Mon Sep 17 00:00:00 2001 From: Lauri Ojansivu <x@xet7.org> Date: Mon, 21 Apr 2025 16:28:41 +0300 Subject: [PATCH 64/65] Updated to MongoDB 6.0.22. Thanks to MongoDB developers ! --- docs/Platforms/Propietary/Windows/Offline.md | 8 ++++---- snapcraft.yaml | 10 +++++----- 2 files changed, 9 insertions(+), 9 deletions(-) diff --git a/docs/Platforms/Propietary/Windows/Offline.md b/docs/Platforms/Propietary/Windows/Offline.md index 41808d969..d8f1dab8e 100644 --- a/docs/Platforms/Propietary/Windows/Offline.md +++ b/docs/Platforms/Propietary/Windows/Offline.md @@ -10,19 +10,19 @@ This is without container (without Docker or Snap). Right click and download files 1-4: -1. [wekan-7.84-amd64-windows.zip](https://github.com/wekan/wekan/releases/download/v7.84/wekan-7.84-amd64-windows.zip) +1. [wekan-7.85-amd64-windows.zip](https://github.com/wekan/wekan/releases/download/v7.85/wekan-7.85-amd64-windows.zip) 2. [node.exe](https://nodejs.org/dist/latest-v14.x/win-x64/node.exe) -3. [mongodb-windows-x86_64-6.0.20-signed.msi](https://fastdl.mongodb.org/windows/mongodb-windows-x86_64-6.0.20-signed.msi) +3. [mongodb-windows-x86_64-6.0.22-signed.msi](https://fastdl.mongodb.org/windows/mongodb-windows-x86_64-6.0.22-signed.msi) 4. [start-wekan.bat](https://raw.githubusercontent.com/wekan/wekan/main/start-wekan.bat) 5. Copy files from steps 1-4 with USB stick or DVD to offline Windows computer -6. Double click `mongodb-windows-x86_64-6.0.20-signed.msi` . In installer, uncheck downloading MongoDB compass. +6. Double click `mongodb-windows-x86_64-6.0.22-signed.msi` . In installer, uncheck downloading MongoDB compass. -7. Unzip `wekan-7.84-amd64-windows.zip` , inside it is directory `bundle`, to it copy other files: +7. Unzip `wekan-7.85-amd64-windows.zip` , inside it is directory `bundle`, to it copy other files: ``` bundle (directory) diff --git a/snapcraft.yaml b/snapcraft.yaml index d61c73bb0..a347c6a81 100644 --- a/snapcraft.yaml +++ b/snapcraft.yaml @@ -1,5 +1,5 @@ name: wekan -version: '7.84' +version: '7.85' base: core20 summary: Open Source kanban description: | @@ -65,7 +65,7 @@ apps: parts: mongodb: - source: https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-ubuntu2004-6.0.20.tgz + source: https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-ubuntu2004-6.0.22.tgz plugin: dump stage-packages: - libssl1.1 @@ -170,9 +170,9 @@ parts: # Cleanup mkdir .build cd .build - wget https://github.com/wekan/wekan/releases/download/v7.84/wekan-7.84-amd64.zip - unzip wekan-7.84-amd64.zip - rm wekan-7.84-amd64.zip + wget https://github.com/wekan/wekan/releases/download/v7.85/wekan-7.85-amd64.zip + unzip wekan-7.85-amd64.zip + rm wekan-7.85-amd64.zip cd .. ##cd .build/bundle ##find . -type d -name '*-garbage*' | xargs rm -rf From 8af719d39e71a2f978a0fab80d31d8ead2006de5 Mon Sep 17 00:00:00 2001 From: Lauri Ojansivu <x@xet7.org> Date: Mon, 21 Apr 2025 16:30:58 +0300 Subject: [PATCH 65/65] v7.85 --- CHANGELOG.md | 4 +++- Stackerfile.yml | 2 +- package-lock.json | 2 +- package.json | 2 +- public/api/wekan.html | 4 ++-- public/api/wekan.yml | 2 +- sandstorm-pkgdef.capnp | 4 ++-- 7 files changed, 11 insertions(+), 9 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index a43e096f7..c5a3f0602 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -15,7 +15,7 @@ Fixing other platforms In Progress. [How to upgrade WeKan](https://github.com/wekan/wekan/issues/4585) -# Upcoming WeKan ® release +# v7.85 2025-04-21 WeKan ® release This release adds the following updates: @@ -23,6 +23,8 @@ This release adds the following updates: [Part1](https://github.com/wekan/wekan/commit/db5346fc5c7407160f381c0fcf4a87204206ed55), [Part2](https://github.com/wekan/wekan/commit/05d1736f5f21e93e83b2e25029c6cab6c5106398). Thanks to xet7. +- [Updated to MongoDB 6.0.22](https://github.com/wekan/wekan/commit/c1a4250bd2e26be5549704234a3cfb5306120352). + Thanks to MongoDB developers. and fixes the following bugs: diff --git a/Stackerfile.yml b/Stackerfile.yml index 257145fd9..cf0c6adc8 100644 --- a/Stackerfile.yml +++ b/Stackerfile.yml @@ -1,5 +1,5 @@ appId: wekan-public/apps/77b94f60-dec9-0136-304e-16ff53095928 -appVersion: "v7.84.0" +appVersion: "v7.85.0" files: userUploads: - README.md diff --git a/package-lock.json b/package-lock.json index ef43cf5d4..a4d80b265 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,6 +1,6 @@ { "name": "wekan", - "version": "v7.84.0", + "version": "v7.85.0", "lockfileVersion": 1, "requires": true, "dependencies": { diff --git a/package.json b/package.json index 7b8196d20..c76a0203d 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "wekan", - "version": "v7.84.0", + "version": "v7.85.0", "description": "Open-Source kanban", "private": true, "repository": { diff --git a/public/api/wekan.html b/public/api/wekan.html index d73fec650..791ee91ed 100644 --- a/public/api/wekan.html +++ b/public/api/wekan.html @@ -1524,7 +1524,7 @@ var n=this.pipeline.run(e.tokenizer(t)),r=new e.Vector,i=[],o=this._fields.reduc <ul class="toc-list-h1"> <li> - <a href="#wekan-rest-api" class="toc-h1 toc-link" data-title="Wekan REST API v7.84">Wekan REST API v7.84</a> + <a href="#wekan-rest-api" class="toc-h1 toc-link" data-title="Wekan REST API v7.85">Wekan REST API v7.85</a> </li> @@ -1963,7 +1963,7 @@ var n=this.pipeline.run(e.tokenizer(t)),r=new e.Vector,i=[],o=this._fields.reduc <div class="page-wrapper"> <div class="dark-box"></div> <div class="content"> - <h1 id="wekan-rest-api">Wekan REST API v7.84</h1> + <h1 id="wekan-rest-api">Wekan REST API v7.85</h1> <blockquote> <p>Scroll down for code samples, example requests and responses. Select a language for code samples from the tabs above or the mobile navigation menu.</p> </blockquote> diff --git a/public/api/wekan.yml b/public/api/wekan.yml index 9fd90b2cc..928580ccc 100644 --- a/public/api/wekan.yml +++ b/public/api/wekan.yml @@ -1,7 +1,7 @@ swagger: '2.0' info: title: Wekan REST API - version: v7.84 + version: v7.85 description: | The REST API allows you to control and extend Wekan with ease. diff --git a/sandstorm-pkgdef.capnp b/sandstorm-pkgdef.capnp index e94fe5d03..77eacc64d 100644 --- a/sandstorm-pkgdef.capnp +++ b/sandstorm-pkgdef.capnp @@ -22,10 +22,10 @@ const pkgdef :Spk.PackageDefinition = ( appTitle = (defaultText = "Wekan"), # The name of the app as it is displayed to the user. - appVersion = 784, + appVersion = 785, # Increment this for every release. - appMarketingVersion = (defaultText = "7.84.0~2025-03-23"), + appMarketingVersion = (defaultText = "7.85.0~2025-04-21"), # Human-readable presentation of the app version. minUpgradableAppVersion = 0,