From 2d814c08288b0e0585605a848ac6d0ea8455d374 Mon Sep 17 00:00:00 2001 From: Guillaume Leibfried Date: Fri, 10 Jan 2025 18:15:07 +0100 Subject: [PATCH 001/658] implement most for collections --- package-lock.json | 44 +++-- package.json | 8 +- src/app/pages/home/home.component.ts | 7 + src/assets/i18n/en.json | 1 + src/assets/i18n/fr.json | 1 + .../default/article-default.component.html | 6 +- .../default/article-default.component.ts | 7 + src/core/components/article/i18n/en.json | 1 + src/core/components/article/i18n/fr.json | 1 + .../components/navbar/navbar.component.html | 2 +- .../components/navbar/navbar.component.ts | 3 + .../features/collections/add-to-collection.ts | 78 +++++++++ .../collections/collections.component.html | 40 +++++ .../collections/collections.component.ts | 45 +++++ .../features/collections/create-collection.ts | 62 +++++++ src/core/features/collections/i18n/en.json | 12 ++ src/core/features/collections/i18n/fr.json | 12 ++ .../collections/manage-collections.ts | 165 ++++++++++++++++++ 18 files changed, 470 insertions(+), 25 deletions(-) create mode 100644 src/core/features/collections/add-to-collection.ts create mode 100644 src/core/features/collections/collections.component.html create mode 100644 src/core/features/collections/collections.component.ts create mode 100644 src/core/features/collections/create-collection.ts create mode 100644 src/core/features/collections/i18n/en.json create mode 100644 src/core/features/collections/i18n/fr.json create mode 100644 src/core/features/collections/manage-collections.ts diff --git a/package-lock.json b/package-lock.json index fd5036a2..3ff3bd9f 100644 --- a/package-lock.json +++ b/package-lock.json @@ -8,7 +8,7 @@ "name": "sinequa-mint", "version": "0.0.0", "dependencies": { - "@angular-architects/ngrx-toolkit": "^0.3.1", + "@angular-architects/ngrx-toolkit": "^18.1.1", "@angular-eslint/schematics": "^18.3.1", "@angular/animations": "^18.2.5", "@angular/cdk": "^18.0.1", @@ -22,11 +22,11 @@ "@jsverse/transloco": "^7.4.2", "@jsverse/transloco-messageformat": "^7.0.1", "@microsoft/signalr": "^7.0.14", - "@ngrx/signals": "^17.1.1", - "@ngrx/store": "^17.1.1", + "@ngrx/signals": "^18.1.1", + "@ngrx/store": "^18.1.1", "@popperjs/core": "^2.11.8", "@sinequa/atomic": "^0.0.61", - "@sinequa/atomic-angular": "^0.0.140", + "@sinequa/atomic-angular": "^0.0.146", "@tanstack/angular-query-experimental": "^5.40.0", "@types/node": "^16.18.11", "clsx": "^2.1.0", @@ -77,14 +77,20 @@ } }, "node_modules/@angular-architects/ngrx-toolkit": { - "version": "0.3.1", - "resolved": "https://npm.sinequa.com:4873/@angular-architects/ngrx-toolkit/-/ngrx-toolkit-0.3.1.tgz", - "integrity": "sha512-jIuXcyI+bsDFMm/zm7HwCPcX2XMJ7DcjcPZD2WmsMyyYerI0/YO6PIP9hUD10oSqlmt/O0BkrqluBAmq6tHKug==", + "version": "18.1.1", + "resolved": "https://npm.sinequa.com/@angular-architects/ngrx-toolkit/-/ngrx-toolkit-18.1.1.tgz", + "integrity": "sha512-0tYPUaFOHFNGc+2xzAh9OKREyQ+Gi5bASzY/mGbG6TQUg68aWdBTTGFv0lLTMKymIfx/6ZCTWILjZR7BQrfKgg==", "dependencies": { "tslib": "^2.3.0" }, "peerDependencies": { - "@ngrx/signals": "^17.0.0" + "@ngrx/signals": ">=18.1.0 <=18.1.1", + "@ngrx/store": ">=18.0.0" + }, + "peerDependenciesMeta": { + "@ngrx/store": { + "optional": true + } } }, "node_modules/@angular-devkit/architect": { @@ -3706,14 +3712,14 @@ ] }, "node_modules/@ngrx/signals": { - "version": "17.2.0", - "resolved": "https://npm.sinequa.com:4873/@ngrx/signals/-/signals-17.2.0.tgz", - "integrity": "sha512-tkkxifeOVPOhpTqbHyK1WOx4qz49HLR/h0vhaa/MRGRIZoOR/6gR4KB3hbC8FD3FdnuNqOgOZ2lGsTfWPB/6BQ==", + "version": "18.1.1", + "resolved": "https://npm.sinequa.com/@ngrx/signals/-/signals-18.1.1.tgz", + "integrity": "sha512-7AaFp4VrzYhnDHlF15VZAMvp067zIC5arRRRMV+i+oi95sQVDXezpj74KTIguwRbZ3FU+GKGzFCNrwgYvginSg==", "dependencies": { "tslib": "^2.3.0" }, "peerDependencies": { - "@angular/core": "^17.0.0", + "@angular/core": "^18.0.0", "rxjs": "^6.5.3 || ^7.4.0" }, "peerDependenciesMeta": { @@ -3723,14 +3729,14 @@ } }, "node_modules/@ngrx/store": { - "version": "17.2.0", - "resolved": "https://npm.sinequa.com:4873/@ngrx/store/-/store-17.2.0.tgz", - "integrity": "sha512-7wKgZ59B/6yQSvvsU0DQXipDqpkAXv7LwcXLD5Ww7nvqN0fQoRPThMh4+Wv55DCJhE0bQc1NEMciLA47uRt7Wg==", + "version": "18.1.1", + "resolved": "https://npm.sinequa.com/@ngrx/store/-/store-18.1.1.tgz", + "integrity": "sha512-K0v1akJ2sEnIeb1AUA064+ksgRgbMgVG9HbSsLBxENbFjK2ZvKRxo1bpOw6WHW9+hyDTlhZGl7+gUtjmo3497g==", "dependencies": { "tslib": "^2.0.0" }, "peerDependencies": { - "@angular/core": "^17.0.0", + "@angular/core": "^18.0.0", "rxjs": "^6.5.3 || ^7.5.0" } }, @@ -4265,9 +4271,9 @@ "integrity": "sha512-1PoyKTU4kOlZYPKmIbJ8iqDL7a9wglBpZuHnvi3o7jMJBCCqbXTCwURsmVoqaf7IU7MpnbSfH2yeTV1cVBdoBg==" }, "node_modules/@sinequa/atomic-angular": { - "version": "0.0.140", - "resolved": "https://npm.sinequa.com/@sinequa/atomic-angular/-/atomic-angular-0.0.140.tgz", - "integrity": "sha512-gXXWTjNHE7XRNxOlEaE6bOtPot09pptw+wz3h1fWFKQKk3wyGzEKYfuzQKGrFo2djsOGSoylJLOVqGe+u0/0uA==", + "version": "0.0.146", + "resolved": "https://npm.sinequa.com/@sinequa/atomic-angular/-/atomic-angular-0.0.146.tgz", + "integrity": "sha512-8fZ6Ta2/KrSs/4Sva3u6e7twCGcoOl/ARhuW20dq0d+LjAoMIRBYFssDwbkWM33yVASeeX7Dyrvsc/Ze3AGWzQ==", "dependencies": { "tslib": "^2.3.0" }, diff --git a/package.json b/package.json index d8004217..eec807b5 100644 --- a/package.json +++ b/package.json @@ -16,7 +16,7 @@ }, "private": true, "dependencies": { - "@angular-architects/ngrx-toolkit": "^0.3.1", + "@angular-architects/ngrx-toolkit": "^18.1.1", "@angular-eslint/schematics": "^18.3.1", "@angular/animations": "^18.2.5", "@angular/cdk": "^18.0.1", @@ -30,11 +30,11 @@ "@jsverse/transloco": "^7.4.2", "@jsverse/transloco-messageformat": "^7.0.1", "@microsoft/signalr": "^7.0.14", - "@ngrx/signals": "^17.1.1", - "@ngrx/store": "^17.1.1", + "@ngrx/signals": "^18.1.1", + "@ngrx/store": "^18.1.1", "@popperjs/core": "^2.11.8", "@sinequa/atomic": "^0.0.61", - "@sinequa/atomic-angular": "^0.0.140", + "@sinequa/atomic-angular": "^0.0.146", "@tanstack/angular-query-experimental": "^5.40.0", "@types/node": "^16.18.11", "clsx": "^2.1.0", diff --git a/src/app/pages/home/home.component.ts b/src/app/pages/home/home.component.ts index 18ef7514..2c6795be 100644 --- a/src/app/pages/home/home.component.ts +++ b/src/app/pages/home/home.component.ts @@ -12,6 +12,7 @@ import { BookmarksListComponent } from '@/core/features/bookmarks/list/bookmarks import { RecentSearchesComponent } from '@/core/features/recent-searches/recent-searches.component'; import { SavedSearchesComponent } from '@/core/features/saved-searches/saved-searches.component'; import { UserMenuComponent } from '@/core/features/user-menu/user-menu'; +import { CollectionsComponent } from '@/core/features/collections/collections.component'; type HomeTab = { @@ -40,6 +41,12 @@ const homeFeatures: HomeTab[] = [ iconClass: 'fa-regular fa-bookmark', label: 'My bookmark', component: BookmarksListComponent + }, + { + name: 'baskets', + iconClass: 'fa-regular fa-inbox', + label: 'My collections', + component: CollectionsComponent } ]; diff --git a/src/assets/i18n/en.json b/src/assets/i18n/en.json index 838603d0..3fa72450 100644 --- a/src/assets/i18n/en.json +++ b/src/assets/i18n/en.json @@ -28,6 +28,7 @@ "matters": "Matters", "collaborators": "Collaborators", "clear": "Clear", + "create": "Create", "msg#sort": { "relevance": "Relevance", "date": "Date", diff --git a/src/assets/i18n/fr.json b/src/assets/i18n/fr.json index b2de4903..060157f6 100644 --- a/src/assets/i18n/fr.json +++ b/src/assets/i18n/fr.json @@ -28,6 +28,7 @@ "matters": "Concepts", "collaborators": "Collaborateurs", "clear": "Effacer", + "create": "Créer", "msg#sort": { "relevance": "Pertinence", "date": "Date", diff --git a/src/core/components/article/default/article-default.component.html b/src/core/components/article/default/article-default.component.html index 9908321d..2de8853b 100644 --- a/src/core/components/article/default/article-default.component.html +++ b/src/core/components/article/default/article-default.component.html @@ -28,6 +28,9 @@
  • {{ 'article.editLabels' | transloco }}
  • +
  • + {{ 'article.addToCollection' | transloco }} +
  • } @@ -65,4 +68,5 @@ - \ No newline at end of file + + \ No newline at end of file diff --git a/src/core/components/article/default/article-default.component.ts b/src/core/components/article/default/article-default.component.ts index a104a6f1..7b350684 100644 --- a/src/core/components/article/default/article-default.component.ts +++ b/src/core/components/article/default/article-default.component.ts @@ -11,6 +11,7 @@ import { HashMap, provideTranslocoScope, Translation, TranslocoPipe } from '@jsv import { LegacyFilter } from '@sinequa/atomic'; import { SourceIconComponent } from '../../source-icon/source-icon.component'; import { MissingTermsComponent } from '../missing-terms/missing-terms.component'; +import { AddToCollectionDialog } from '@/core/features/collections/add-to-collection'; type Tab = 'attachments' | 'similars'; @@ -31,6 +32,7 @@ const loader = ['en', 'fr'].reduce((acc, lang) => { DropdownComponent, TranslocoPipe, EditLabelsComponent, + AddToCollectionDialog, MissingTermsComponent ], templateUrl: './article-default.component.html', @@ -53,6 +55,7 @@ export class ArticleDefaultComponent extends BaseArticle implements OnDestroy { labelService = inject(LabelService); readonly editLabelsDialog = viewChild(EditLabelsComponent); + readonly addToCollectionDialog = viewChild(AddToCollectionDialog); showBookmark = signal(false); showBookmarkOutputSubscription = inject(ShowBookmarkDirective)?.showBookmark.subscribe((value) => { @@ -111,4 +114,8 @@ export class ArticleDefaultComponent extends BaseArticle implements OnDestroy { editLabels(): void { this.editLabelsDialog()?.showModal(); } + + addToCollection(): void { + this.addToCollectionDialog()?.showModal(); + } } diff --git a/src/core/components/article/i18n/en.json b/src/core/components/article/i18n/en.json index 80dc2462..ef31ea85 100644 --- a/src/core/components/article/i18n/en.json +++ b/src/core/components/article/i18n/en.json @@ -1,6 +1,7 @@ { "openMenu": "Open article menu", "editLabels": "Edit labels", + "addToCollection": "Add to collection", "missingTerms": "Missing terms:", "mustInclude": "Must include:" } \ No newline at end of file diff --git a/src/core/components/article/i18n/fr.json b/src/core/components/article/i18n/fr.json index 16fca503..bc8b79d4 100644 --- a/src/core/components/article/i18n/fr.json +++ b/src/core/components/article/i18n/fr.json @@ -1,6 +1,7 @@ { "openMenu": "Ouvrir le menu de l'article", "editLabels": "Editer les labels", + "addToCollection": "Ajouter à une collection", "missingTerms": "Termes manquants:", "mustInclude": "Doit inclure:" } \ No newline at end of file diff --git a/src/core/components/navbar/navbar.component.html b/src/core/components/navbar/navbar.component.html index 0c2ea094..5f1c35f7 100644 --- a/src/core/components/navbar/navbar.component.html +++ b/src/core/components/navbar/navbar.component.html @@ -21,7 +21,7 @@ @for (menu of menus; track $index) {
  • @if (menu.component) { - + diff --git a/src/core/components/navbar/navbar.component.ts b/src/core/components/navbar/navbar.component.ts index ed6f4ed5..63571ea6 100644 --- a/src/core/components/navbar/navbar.component.ts +++ b/src/core/components/navbar/navbar.component.ts @@ -14,10 +14,12 @@ import { SyslangPipe } from '@/core/pipes/syslang'; import { AutocompleteComponent, Suggestion } from '../search-input/autocomplete/autocomplete.component'; import { SearchInputComponent } from '../search-input/search-input.component'; +import { CollectionsComponent } from '@/core/features/collections/collections.component'; type NavbarMenu = { display: string; iconClass: string; + keepOnMouseLeave?: boolean; component?: Type; }; @@ -62,6 +64,7 @@ export class NavbarComponent implements OnDestroy { protected readonly menus: NavbarMenu[] = [ { display: 'Recent queries', iconClass: 'far fa-clock-rotate-left', component: RecentSearchesComponent }, { display: 'Bookmarks', iconClass: 'far fa-bookmark', component: BookmarksListComponent }, + { display: 'Collections', iconClass: 'far fa-inbox', component: CollectionsComponent, keepOnMouseLeave: true }, { display: 'Saved queries', iconClass: 'far fa-star', component: SavedSearchesComponent } ]; diff --git a/src/core/features/collections/add-to-collection.ts b/src/core/features/collections/add-to-collection.ts new file mode 100644 index 00000000..bb76bfd5 --- /dev/null +++ b/src/core/features/collections/add-to-collection.ts @@ -0,0 +1,78 @@ +import { Component, computed, ElementRef, inject, input, signal, viewChild } from "@angular/core"; +import { FormsModule } from "@angular/forms"; +import { HashMap, provideTranslocoScope, Translation, TranslocoPipe } from "@jsverse/transloco"; +import { Article } from "@sinequa/atomic"; +import { Basket, UserSettingsStore } from "@sinequa/atomic-angular"; + +const loader = ['en', 'fr'].reduce((acc, lang) => { + acc[lang] = () => import(`./i18n/${lang}.json`); + return acc; +}, {} as HashMap<() => Promise>) + +@Component({ + selector: 'add-to-collection-dialog', + standalone: true, + imports: [FormsModule, TranslocoPipe], + providers: [provideTranslocoScope({ scope: "collection", loader })], + template: ` + +
    +

    {{ 'collection.addToCollection' | transloco }}

    +
    + +
      + @for (collection of collections(); track $index) { +
    • + + {{ collection.name }} +
    • + } + + @empty { +
    • + {{ 'collection.noCollections' | transloco }} +
    • + } +
    + +
    + +
    +
    +
    +` +}) +export class AddToCollectionDialog { + + readonly article = input.required
    (); + private readonly userSettingsStore = inject(UserSettingsStore); + readonly dialog = viewChild('dialog'); + protected collections = computed(() => this.userSettingsStore.baskets()); + + showModal() { + this.dialog()!.nativeElement.showModal(); + } + + containsArticle(collection: Basket): boolean { + return (collection.ids || []).some(id => id === this.article().id) + } + + async addToCollection(collection: Basket, collectionIndex: number): Promise { + if (this.containsArticle(collection)) { // remove it + const index = collection.ids!.indexOf(this.article().id); + collection.ids!.splice(index, 1); + } else { // add it + if (!collection.ids) collection.ids = []; + collection.ids!.push(this.article().id); + } + await this.userSettingsStore.updateBasket(collection, collectionIndex); + } +} \ No newline at end of file diff --git a/src/core/features/collections/collections.component.html b/src/core/features/collections/collections.component.html new file mode 100644 index 00000000..36afab92 --- /dev/null +++ b/src/core/features/collections/collections.component.html @@ -0,0 +1,40 @@ +
      + @for (collection of collections(); track $index) { +
    • + {{ collection.name }} +
    • + } + + @empty { +
    • + {{ 'collection.noCollections' | transloco }} +
    • + } +
    • + + +
    • +
    + + + \ No newline at end of file diff --git a/src/core/features/collections/collections.component.ts b/src/core/features/collections/collections.component.ts new file mode 100644 index 00000000..548e84ec --- /dev/null +++ b/src/core/features/collections/collections.component.ts @@ -0,0 +1,45 @@ +import { Component, computed, inject, viewChild } from '@angular/core'; +import { Router } from '@angular/router'; +import { HashMap, provideTranslocoScope, Translation, TranslocoPipe } from '@jsverse/transloco'; +import { Basket, buildQuery, DrawerStackService, QueryParamsStore, QueryService, UserSettingsStore } from '@sinequa/atomic-angular'; +import { CreateCollectionDialog } from "./create-collection"; +import { ManageCollectionsDialog } from "./manage-collections"; + +const loader = ['en', 'fr'].reduce((acc, lang) => { + acc[lang] = () => import(`./i18n/${lang}.json`); + return acc; +}, {} as HashMap<() => Promise>) + +@Component({ + selector: 'app-collections', + standalone: true, + imports: [TranslocoPipe, CreateCollectionDialog, ManageCollectionsDialog], + templateUrl: './collections.component.html', + providers: [provideTranslocoScope({ scope: 'collection', loader })] +}) +export class CollectionsComponent { + private readonly queryParamsStore = inject(QueryParamsStore); + private readonly queryService = inject(QueryService); + private readonly userSettingsStore = inject(UserSettingsStore); + private readonly drawerStack = inject(DrawerStackService); + private readonly router = inject(Router); + + protected collections = computed(() => this.userSettingsStore.baskets()); + + readonly createCollectionDialog = viewChild(CreateCollectionDialog); + readonly manageCollectionsDialog = viewChild(ManageCollectionsDialog); + + onClick(collection: Basket): void { + console.log('collection', collection) + /* this.drawerStack.closeAll(); + this.router.navigate(['/search'], { queryParams: { basket: collection.name } }); */ + } + + createCollection(): void { + this.createCollectionDialog()?.showModal(); + } + + manageCollections(): void { + this.manageCollectionsDialog()?.showModal(); + } +} diff --git a/src/core/features/collections/create-collection.ts b/src/core/features/collections/create-collection.ts new file mode 100644 index 00000000..6c7b65ba --- /dev/null +++ b/src/core/features/collections/create-collection.ts @@ -0,0 +1,62 @@ +import { Component, ElementRef, inject, signal, viewChild } from "@angular/core"; +import { FormsModule } from "@angular/forms"; +import { HashMap, provideTranslocoScope, Translation, TranslocoPipe } from "@jsverse/transloco"; +import { UserSettingsStore } from "@sinequa/atomic-angular"; + +const loader = ['en', 'fr'].reduce((acc, lang) => { + acc[lang] = () => import(`./i18n/${lang}.json`); + return acc; +}, {} as HashMap<() => Promise>) + +@Component({ + selector: 'create-collection-dialog', + standalone: true, + imports: [FormsModule, TranslocoPipe], + providers: [provideTranslocoScope({ scope: "collection", loader })], + template: ` + +
    +

    {{ 'collection.createCollection' | transloco }}

    +
    + + + +
    + + +
    +
    +
    +` +}) +export class CreateCollectionDialog { + private readonly userSettingsStore = inject(UserSettingsStore); + readonly dialog = viewChild('dialog'); + collectionName = signal(''); + + showModal() { + this.dialog()!.nativeElement.showModal(); + } + + async create(): Promise { + if (!this.collectionName()) return; + await this.userSettingsStore.createBasket({ name: this.collectionName() }); + this.dialog()!.nativeElement.close(); + } +} \ No newline at end of file diff --git a/src/core/features/collections/i18n/en.json b/src/core/features/collections/i18n/en.json new file mode 100644 index 00000000..8481ab15 --- /dev/null +++ b/src/core/features/collections/i18n/en.json @@ -0,0 +1,12 @@ +{ + "createCollection": "Create Collection", + "manageCollections": "Manage Collections", + "reorderCollections": "Reorder", + "addToCollection": "Add to Collection", + "noCollections": "No collections yet", + "collectionName": "Collection name", + "save": "Save", + "create": "Create", + "cancel": "Cancel", + "close": "Close" +} diff --git a/src/core/features/collections/i18n/fr.json b/src/core/features/collections/i18n/fr.json new file mode 100644 index 00000000..0f275ed8 --- /dev/null +++ b/src/core/features/collections/i18n/fr.json @@ -0,0 +1,12 @@ +{ + "createCollection": "Créer une Collection", + "manageCollections": "Gérer les Collections", + "reorderCollections": "Réorganiser", + "addToCollection": "Ajouter à une Collection", + "noCollections": "Aucune collection", + "collectionName": "Nom de collection", + "save": "Enregistrer", + "create": "Créer", + "cancel": "Annuler", + "close": "Fermer" +} diff --git a/src/core/features/collections/manage-collections.ts b/src/core/features/collections/manage-collections.ts new file mode 100644 index 00000000..5138ea80 --- /dev/null +++ b/src/core/features/collections/manage-collections.ts @@ -0,0 +1,165 @@ +import { Component, effect, ElementRef, inject, input, signal, viewChild } from "@angular/core"; +import { FormsModule } from "@angular/forms"; +import { HashMap, provideTranslocoScope, Translation, TranslocoPipe } from "@jsverse/transloco"; +import { Basket, UserSettingsStore } from "@sinequa/atomic-angular"; +import {CdkDragDrop, DragDropModule} from "@angular/cdk/drag-drop"; + +const loader = ['en', 'fr'].reduce((acc, lang) => { + acc[lang] = () => import(`./i18n/${lang}.json`); + return acc; +}, {} as HashMap<() => Promise>) + +@Component({ + selector: 'manage-collections-dialog', + standalone: true, + imports: [FormsModule, TranslocoPipe, DragDropModule], + providers: [provideTranslocoScope({ scope: "collection", loader })], + template: ` + +
    +

    {{ 'collection.manageCollections' | transloco }} {{modifiedIndex()}}

    +
    + + + +
      + @for (collection of tmpCollections; track $index) { +
    • + @if (modifiedIndex() === undefined || modifiedIndex() !== $index) { + {{ collection.name }} + } @else { +
      + + + +
      + } + @if (!reordering()) { + + } @else { + + } +
    • + } +
    + +
    + + +
    +
    +
    +` +}) +export class ManageCollectionsDialog { + collections = input.required(); + + private readonly userSettingsStore = inject(UserSettingsStore); + readonly dialog = viewChild('dialog'); + collectionName = signal(''); + modifiedIndex = signal(undefined); + reordering = signal(false); + + tmpCollections: Basket[]; + + constructor() { + effect(() => { + this.tmpCollections = this.collections().map(c => Object.assign({}, c)); + }); + } + + showModal() { + this.dialog()!.nativeElement.showModal(); + } + + reorder(): void { + this.reordering.set(!this.reordering()); + } + + dropped(drop: CdkDragDrop) { + if (drop.currentIndex === drop.previousIndex) { + return; + } + this.tmpCollections.splice(drop.currentIndex, 0, this.tmpCollections.splice(drop.previousIndex, 1)[0]); + } + + onClick(collection: Basket, index: number): void { + if (this.reordering() || this.modifiedIndex() === index) return; + + this.collectionName.set(collection.name); + this.modifiedIndex.set(index); + } + + validateRename(): void { + const collection = this.tmpCollections[this.modifiedIndex()!]; + collection.name = this.collectionName(); + this.modifiedIndex.set(undefined); + } + + cancelRename(): void { + this.modifiedIndex.set(undefined); + } + + async save(): Promise { + await this.userSettingsStore.updateBaskets(this.tmpCollections); + this.reordering.set(false); + this.dialog()!.nativeElement.close(); + } + + async deleteCollection(index: number): Promise { + await this.userSettingsStore.deleteBasket(index); + } + + async create(): Promise { + if (!this.collectionName()) return; + await this.userSettingsStore.createBasket({ name: this.collectionName() }); + this.dialog()!.nativeElement.close(); + } +} \ No newline at end of file From 8190210288656ccf18670b778013da0df44e82bb Mon Sep 17 00:00:00 2001 From: Guillaume Leibfried Date: Wed, 15 Jan 2025 14:20:33 +0100 Subject: [PATCH 002/658] improve ux --- .../collections/collections.component.ts | 15 +++++- .../collections/manage-collections.ts | 48 +++++++------------ 2 files changed, 31 insertions(+), 32 deletions(-) diff --git a/src/core/features/collections/collections.component.ts b/src/core/features/collections/collections.component.ts index 548e84ec..2b3f9a89 100644 --- a/src/core/features/collections/collections.component.ts +++ b/src/core/features/collections/collections.component.ts @@ -4,6 +4,7 @@ import { HashMap, provideTranslocoScope, Translation, TranslocoPipe } from '@jsv import { Basket, buildQuery, DrawerStackService, QueryParamsStore, QueryService, UserSettingsStore } from '@sinequa/atomic-angular'; import { CreateCollectionDialog } from "./create-collection"; import { ManageCollectionsDialog } from "./manage-collections"; +import { Query } from '@sinequa/atomic'; const loader = ['en', 'fr'].reduce((acc, lang) => { acc[lang] = () => import(`./i18n/${lang}.json`); @@ -29,10 +30,20 @@ export class CollectionsComponent { readonly createCollectionDialog = viewChild(CreateCollectionDialog); readonly manageCollectionsDialog = viewChild(ManageCollectionsDialog); + query: Query; + + constructor() { + this.query = buildQuery(); + } + onClick(collection: Basket): void { console.log('collection', collection) - /* this.drawerStack.closeAll(); - this.router.navigate(['/search'], { queryParams: { basket: collection.name } }); */ + this.drawerStack.closeAll(); + this.query.basket = collection.name; + this.queryService.search(this.query, false).subscribe((result) => { + console.log('search', result) + }); + /* this.router.navigate(['/search'], { queryParams: { basket: collection.name } }); */ } createCollection(): void { diff --git a/src/core/features/collections/manage-collections.ts b/src/core/features/collections/manage-collections.ts index 5138ea80..ba6050fa 100644 --- a/src/core/features/collections/manage-collections.ts +++ b/src/core/features/collections/manage-collections.ts @@ -20,11 +20,11 @@ const loader = ['en', 'fr'].reduce((acc, lang) => { class="z-backdrop w-full max-w-md p-4 rounded-lg border border-neutral-200 shadow-2xl" #dialog>
    -

    {{ 'collection.manageCollections' | transloco }} {{modifiedIndex()}}

    +

    {{ 'collection.manageCollections' | transloco }}


      @@ -37,9 +37,15 @@ const loader = ['en', 'fr'].reduce((acc, lang) => { > @if (modifiedIndex() === undefined || modifiedIndex() !== $index) { {{ collection.name }} + @if (!reordering()) { + + } @else { + + } } @else {
      { [attr.placeholder]="'collection.collectionName' | transloco" [ngModel]="collectionName()" (ngModelChange)="collectionName.set($event)" + (blur)="onBlur()" /> - -
      } - @if (!reordering()) { - - } @else { - - } }
    @@ -103,6 +89,7 @@ export class ManageCollectionsDialog { private readonly userSettingsStore = inject(UserSettingsStore); readonly dialog = viewChild('dialog'); + readonly renameInput = viewChild('renameInput'); collectionName = signal(''); modifiedIndex = signal(undefined); reordering = signal(false); @@ -135,15 +122,16 @@ export class ManageCollectionsDialog { this.collectionName.set(collection.name); this.modifiedIndex.set(index); + setTimeout(() => { + this.renameInput()?.nativeElement.focus(); + }); } - validateRename(): void { - const collection = this.tmpCollections[this.modifiedIndex()!]; - collection.name = this.collectionName(); - this.modifiedIndex.set(undefined); - } - - cancelRename(): void { + onBlur(): void { + if (this.collectionName()) { + const collection = this.tmpCollections[this.modifiedIndex()!]; + collection.name = this.collectionName(); + } this.modifiedIndex.set(undefined); } From ff00845ddacb4489d6807a1ad4b83435f329a13d Mon Sep 17 00:00:00 2001 From: Guillaume Leibfried Date: Wed, 15 Jan 2025 16:05:13 +0100 Subject: [PATCH 003/658] add basket to the search query params handling --- src/app/pages/search/search.abstract.ts | 11 +++++++---- .../features/collections/collections.component.ts | 13 +++---------- 2 files changed, 10 insertions(+), 14 deletions(-) diff --git a/src/app/pages/search/search.abstract.ts b/src/app/pages/search/search.abstract.ts index d2b650a5..0d607917 100644 --- a/src/app/pages/search/search.abstract.ts +++ b/src/app/pages/search/search.abstract.ts @@ -15,6 +15,7 @@ type QP = { s?: string; // sort name t?: string; // tab name q?: string; // query text + b?: string; // basket } @Component({ @@ -47,7 +48,7 @@ export abstract class SearchBase implements OnDestroy { // track the query params store changes keys = computed(() => { const state = getState(this.queryParamsStore) - const r = { tab: state.tab, text: state.text, filters: state.filters, sort: state.sort }; + const r = { tab: state.tab, text: state.text, filters: state.filters, sort: state.sort, basket: state.basket }; return r; }); @@ -67,6 +68,7 @@ export abstract class SearchBase implements OnDestroy { // input url bindings q = input(); // text t = input(); // tab + b = input(); // basket s = input(); // sort f = input(); // filters queryName = input(); // query param @@ -78,7 +80,7 @@ export abstract class SearchBase implements OnDestroy { queryFn: ({ pageParam }) => { const q = this.queryParamsStore.getQuery(); - const query = { ...q, page: pageParam, tab: this.t() } as Query; + const query = { ...q, page: pageParam, tab: this.t(), basket: this.b() } as Query; // Add the current search to the user settings when the text is not empty if(query.text && query.text !== '') { @@ -115,7 +117,7 @@ export abstract class SearchBase implements OnDestroy { // This allows Browser back/forward to work correctly effect(() => { const filters = this.f() ? JSON.parse(this.f() ?? '') : []; // Parse the filters from the query params - this.queryParamsStore.patch({ text: this.q(), tab: this.t(), sort: this.s(), filters, name: this.queryName() }); + this.queryParamsStore.patch({ text: this.q(), tab: this.t(), basket: this.b(), sort: this.s(), filters, name: this.queryName() }); }, { allowSignalWrites: true }); // Update the URL with the query params @@ -123,13 +125,14 @@ export abstract class SearchBase implements OnDestroy { const key = this.keys(); const queryParams: QP = {}; - const { text, filters = [], page, sort, tab } = getState(this.queryParamsStore); + const { text, filters = [], page, sort, tab, basket } = getState(this.queryParamsStore); queryParams.f = filters.length > 0 ? JSON.stringify(filters) : undefined; queryParams.p = page; queryParams.s = sort; queryParams.t = tab; queryParams.q = text; + queryParams.b = basket; this.router.navigate([], { relativeTo: this.route, queryParamsHandling: 'merge', queryParams, state: { } }); }) diff --git a/src/core/features/collections/collections.component.ts b/src/core/features/collections/collections.component.ts index 2b3f9a89..ffc9d442 100644 --- a/src/core/features/collections/collections.component.ts +++ b/src/core/features/collections/collections.component.ts @@ -1,7 +1,7 @@ import { Component, computed, inject, viewChild } from '@angular/core'; import { Router } from '@angular/router'; import { HashMap, provideTranslocoScope, Translation, TranslocoPipe } from '@jsverse/transloco'; -import { Basket, buildQuery, DrawerStackService, QueryParamsStore, QueryService, UserSettingsStore } from '@sinequa/atomic-angular'; +import { Basket, buildQuery, DrawerStackService, UserSettingsStore } from '@sinequa/atomic-angular'; import { CreateCollectionDialog } from "./create-collection"; import { ManageCollectionsDialog } from "./manage-collections"; import { Query } from '@sinequa/atomic'; @@ -19,8 +19,6 @@ const loader = ['en', 'fr'].reduce((acc, lang) => { providers: [provideTranslocoScope({ scope: 'collection', loader })] }) export class CollectionsComponent { - private readonly queryParamsStore = inject(QueryParamsStore); - private readonly queryService = inject(QueryService); private readonly userSettingsStore = inject(UserSettingsStore); private readonly drawerStack = inject(DrawerStackService); private readonly router = inject(Router); @@ -34,16 +32,11 @@ export class CollectionsComponent { constructor() { this.query = buildQuery(); - } + } onClick(collection: Basket): void { - console.log('collection', collection) this.drawerStack.closeAll(); - this.query.basket = collection.name; - this.queryService.search(this.query, false).subscribe((result) => { - console.log('search', result) - }); - /* this.router.navigate(['/search'], { queryParams: { basket: collection.name } }); */ + this.router.navigate(['/search'], { queryParams: { b: collection.name } }); } createCollection(): void { From 52222d744c43c94ccb18525aff658579a935ba6c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Lo=C3=AFc=20Juillet?= Date: Wed, 15 Jan 2025 17:38:25 +0100 Subject: [PATCH 004/658] =?UTF-8?q?=F0=9F=8F=97=EF=B8=8F=20up=20ngrx=20and?= =?UTF-8?q?=20atomic=20libs?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit remove @angular/cdk dep --- package-lock.json | 73 ++++++++++++++++++++--------------------------- package.json | 11 ++++--- src/styles.scss | 2 -- 3 files changed, 36 insertions(+), 50 deletions(-) diff --git a/package-lock.json b/package-lock.json index fd5036a2..e450e185 100644 --- a/package-lock.json +++ b/package-lock.json @@ -8,10 +8,9 @@ "name": "sinequa-mint", "version": "0.0.0", "dependencies": { - "@angular-architects/ngrx-toolkit": "^0.3.1", + "@angular-architects/ngrx-toolkit": "^18.1.1", "@angular-eslint/schematics": "^18.3.1", "@angular/animations": "^18.2.5", - "@angular/cdk": "^18.0.1", "@angular/common": "^18.2.5", "@angular/compiler": "^18.2.5", "@angular/core": "^18.2.5", @@ -22,11 +21,11 @@ "@jsverse/transloco": "^7.4.2", "@jsverse/transloco-messageformat": "^7.0.1", "@microsoft/signalr": "^7.0.14", - "@ngrx/signals": "^17.1.1", - "@ngrx/store": "^17.1.1", + "@ngrx/signals": "^18.1.1", + "@ngrx/store": "^18.1.1", "@popperjs/core": "^2.11.8", - "@sinequa/atomic": "^0.0.61", - "@sinequa/atomic-angular": "^0.0.140", + "@sinequa/atomic": "^0.0.62", + "@sinequa/atomic-angular": "^0.0.147", "@tanstack/angular-query-experimental": "^5.40.0", "@types/node": "^16.18.11", "clsx": "^2.1.0", @@ -77,14 +76,20 @@ } }, "node_modules/@angular-architects/ngrx-toolkit": { - "version": "0.3.1", - "resolved": "https://npm.sinequa.com:4873/@angular-architects/ngrx-toolkit/-/ngrx-toolkit-0.3.1.tgz", - "integrity": "sha512-jIuXcyI+bsDFMm/zm7HwCPcX2XMJ7DcjcPZD2WmsMyyYerI0/YO6PIP9hUD10oSqlmt/O0BkrqluBAmq6tHKug==", + "version": "18.1.1", + "resolved": "https://npm.sinequa.com/@angular-architects/ngrx-toolkit/-/ngrx-toolkit-18.1.1.tgz", + "integrity": "sha512-0tYPUaFOHFNGc+2xzAh9OKREyQ+Gi5bASzY/mGbG6TQUg68aWdBTTGFv0lLTMKymIfx/6ZCTWILjZR7BQrfKgg==", "dependencies": { "tslib": "^2.3.0" }, "peerDependencies": { - "@ngrx/signals": "^17.0.0" + "@ngrx/signals": ">=18.1.0 <=18.1.1", + "@ngrx/store": ">=18.0.0" + }, + "peerDependenciesMeta": { + "@ngrx/store": { + "optional": true + } } }, "node_modules/@angular-devkit/architect": { @@ -566,22 +571,6 @@ } } }, - "node_modules/@angular/cdk": { - "version": "18.0.1", - "resolved": "https://npm.sinequa.com:4873/@angular/cdk/-/cdk-18.0.1.tgz", - "integrity": "sha512-2fCqX1sz5cM+LncO6ak4EU2ZBm8MWitv5V53go3Iz5dOVOdrvysBt8smEkWZ4nvEKkFYHEPpQo0YlxEWbuTEmA==", - "dependencies": { - "tslib": "^2.3.0" - }, - "optionalDependencies": { - "parse5": "^7.1.2" - }, - "peerDependencies": { - "@angular/common": "^18.0.0 || ^19.0.0", - "@angular/core": "^18.0.0 || ^19.0.0", - "rxjs": "^6.5.3 || ^7.4.0" - } - }, "node_modules/@angular/cli": { "version": "18.2.5", "resolved": "https://npm.sinequa.com/@angular/cli/-/cli-18.2.5.tgz", @@ -3706,14 +3695,14 @@ ] }, "node_modules/@ngrx/signals": { - "version": "17.2.0", - "resolved": "https://npm.sinequa.com:4873/@ngrx/signals/-/signals-17.2.0.tgz", - "integrity": "sha512-tkkxifeOVPOhpTqbHyK1WOx4qz49HLR/h0vhaa/MRGRIZoOR/6gR4KB3hbC8FD3FdnuNqOgOZ2lGsTfWPB/6BQ==", + "version": "18.1.1", + "resolved": "https://npm.sinequa.com/@ngrx/signals/-/signals-18.1.1.tgz", + "integrity": "sha512-7AaFp4VrzYhnDHlF15VZAMvp067zIC5arRRRMV+i+oi95sQVDXezpj74KTIguwRbZ3FU+GKGzFCNrwgYvginSg==", "dependencies": { "tslib": "^2.3.0" }, "peerDependencies": { - "@angular/core": "^17.0.0", + "@angular/core": "^18.0.0", "rxjs": "^6.5.3 || ^7.4.0" }, "peerDependenciesMeta": { @@ -3723,14 +3712,14 @@ } }, "node_modules/@ngrx/store": { - "version": "17.2.0", - "resolved": "https://npm.sinequa.com:4873/@ngrx/store/-/store-17.2.0.tgz", - "integrity": "sha512-7wKgZ59B/6yQSvvsU0DQXipDqpkAXv7LwcXLD5Ww7nvqN0fQoRPThMh4+Wv55DCJhE0bQc1NEMciLA47uRt7Wg==", + "version": "18.1.1", + "resolved": "https://npm.sinequa.com/@ngrx/store/-/store-18.1.1.tgz", + "integrity": "sha512-K0v1akJ2sEnIeb1AUA064+ksgRgbMgVG9HbSsLBxENbFjK2ZvKRxo1bpOw6WHW9+hyDTlhZGl7+gUtjmo3497g==", "dependencies": { "tslib": "^2.0.0" }, "peerDependencies": { - "@angular/core": "^17.0.0", + "@angular/core": "^18.0.0", "rxjs": "^6.5.3 || ^7.5.0" } }, @@ -4260,14 +4249,14 @@ } }, "node_modules/@sinequa/atomic": { - "version": "0.0.61", - "resolved": "https://npm.sinequa.com/@sinequa/atomic/-/atomic-0.0.61.tgz", - "integrity": "sha512-1PoyKTU4kOlZYPKmIbJ8iqDL7a9wglBpZuHnvi3o7jMJBCCqbXTCwURsmVoqaf7IU7MpnbSfH2yeTV1cVBdoBg==" + "version": "0.0.62", + "resolved": "https://npm.sinequa.com/@sinequa/atomic/-/atomic-0.0.62.tgz", + "integrity": "sha512-+3V988P8xqDXeWKS04oK4dAXiX5BGhtm/VhbNtA3r/JiiV1tWOFfMkhfQMaIa0dZ67M9v0TBu6FiZ/XMtIZDSQ==" }, "node_modules/@sinequa/atomic-angular": { - "version": "0.0.140", - "resolved": "https://npm.sinequa.com/@sinequa/atomic-angular/-/atomic-angular-0.0.140.tgz", - "integrity": "sha512-gXXWTjNHE7XRNxOlEaE6bOtPot09pptw+wz3h1fWFKQKk3wyGzEKYfuzQKGrFo2djsOGSoylJLOVqGe+u0/0uA==", + "version": "0.0.147", + "resolved": "https://npm.sinequa.com/@sinequa/atomic-angular/-/atomic-angular-0.0.147.tgz", + "integrity": "sha512-hevIFGG/2olQYJEeHpWGXgQ5TeDZPoAyRIc0Ob0GQwaQ0ZAvWRMt+BISJG1yNwtuEHfQQIHsSA7ioXahD9i0pg==", "dependencies": { "tslib": "^2.3.0" }, @@ -6377,7 +6366,7 @@ "version": "4.5.0", "resolved": "https://npm.sinequa.com:4873/entities/-/entities-4.5.0.tgz", "integrity": "sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==", - "devOptional": true, + "dev": true, "engines": { "node": ">=0.12" }, @@ -9770,7 +9759,7 @@ "version": "7.1.2", "resolved": "https://npm.sinequa.com:4873/parse5/-/parse5-7.1.2.tgz", "integrity": "sha512-Czj1WaSVpaoj0wbhMzLmWD69anp2WH7FXMB9n1Sy8/ZFF9jolSQVMu1Ij5WIyGmcBmhk7EOndpO4mIpihVqAXw==", - "devOptional": true, + "dev": true, "dependencies": { "entities": "^4.4.0" }, diff --git a/package.json b/package.json index d8004217..38e7b6e7 100644 --- a/package.json +++ b/package.json @@ -16,10 +16,9 @@ }, "private": true, "dependencies": { - "@angular-architects/ngrx-toolkit": "^0.3.1", + "@angular-architects/ngrx-toolkit": "^18.1.1", "@angular-eslint/schematics": "^18.3.1", "@angular/animations": "^18.2.5", - "@angular/cdk": "^18.0.1", "@angular/common": "^18.2.5", "@angular/compiler": "^18.2.5", "@angular/core": "^18.2.5", @@ -30,11 +29,11 @@ "@jsverse/transloco": "^7.4.2", "@jsverse/transloco-messageformat": "^7.0.1", "@microsoft/signalr": "^7.0.14", - "@ngrx/signals": "^17.1.1", - "@ngrx/store": "^17.1.1", + "@ngrx/signals": "^18.1.1", + "@ngrx/store": "^18.1.1", "@popperjs/core": "^2.11.8", - "@sinequa/atomic": "^0.0.61", - "@sinequa/atomic-angular": "^0.0.140", + "@sinequa/atomic": "^0.0.62", + "@sinequa/atomic-angular": "^0.0.147", "@tanstack/angular-query-experimental": "^5.40.0", "@types/node": "^16.18.11", "clsx": "^2.1.0", diff --git a/src/styles.scss b/src/styles.scss index f962bd48..fc632327 100644 --- a/src/styles.scss +++ b/src/styles.scss @@ -1,5 +1,3 @@ -@import '@angular/cdk/overlay-prebuilt.css'; - /* You can add global styles to this file, and also import other style files */ @tailwind base; @tailwind components; From e207d19ab0e9bc475a0a6c2a674e008dea471704 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Lo=C3=AFc=20Juillet?= Date: Wed, 15 Jan 2025 17:38:31 +0100 Subject: [PATCH 005/658] =?UTF-8?q?=F0=9F=93=96=20add=20overflow=20manager?= =?UTF-8?q?=20directive=20doc?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../directives/overflow-manager.md | 85 +++++++++++++++++++ 1 file changed, 85 insertions(+) create mode 100644 docusaurus/docs/atomic-angular/directives/overflow-manager.md diff --git a/docusaurus/docs/atomic-angular/directives/overflow-manager.md b/docusaurus/docs/atomic-angular/directives/overflow-manager.md new file mode 100644 index 00000000..cc053050 --- /dev/null +++ b/docusaurus/docs/atomic-angular/directives/overflow-manager.md @@ -0,0 +1,85 @@ +--- +title: OverflowManager +--- + +## Overview +Directive that handles a list of elements and manages the overflow of the list. It listens to the resize event and emits a the number of elements that can be displayed in the list to a stop element. + +3 directives are available: +- `overflowManager`: The directive that manages the overflow of the list. +- `overflowItem`: The directive that represents an item in the list. +- `overflowStop`: The directive that represents the stop marker in the list. + +Both `overflowItem` and `overflowStop` are required to be used with the `overflowManager` directive and useless without the manager, they're used to calculate the overflow using the highest item `getBoundingClientRect().right` and the stop marker left values. + +You can define a `target` to be used as the container of the list, this is useful when your host's component is the container the list (see usage section for example). If no target is defined, the directive will use its host's component as the container. + +You can define a `margin` to be added to the calculation of the overflow, this is useful when you have a margin between the items and the stop marker. + +:::info +Default `margin` is `4px` +::: + +:::warning +The `overflowManager` directive cannot be used inside the `hostDirectives` array of a component as it needs access to the DOM, see usage section for example. +::: + +You can listen to `count` output to get the number of items that can fit before the stop marker. + +### Usage + +#### Basic +```ts title="some-component.ts" +@Component({ + ... + template: ` +
    +
      + @for (item of [1, 2, 3, 4, 5]) { +
    • {{ item }}
    • + } +
    + +
    +
    + ` +}) +export class SomeComponent { + onCount(count: number) { + console.log(count); + } +} +``` + +#### Host element is the list +```ts title="some-component.ts" +@Component({ + ... + template: ` + +
      + @for (item of [1, 2, 3, 4, 5]) { +
    • {{ item }}
    • + } +
    + +
    +
    + ` +}) +export class SomeComponent { + readonly el = inject(ElementRef); + + onCount(count: number) { + console.log(count); + } +} +``` + +:::note +`ng-container` here is used as a middleware for the container element and won't be rendered in the DOM. +::: \ No newline at end of file From 5f9ec2cd288bb2faead902e69cb991f77c35a94c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Lo=C3=AFc=20Juillet?= Date: Wed, 15 Jan 2025 17:39:05 +0100 Subject: [PATCH 006/658] =?UTF-8?q?=E2=99=BB=EF=B8=8F=20typo?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/app/app.routes.ts | 18 ++++++++---------- .../pages/search/all/search-all.component.html | 7 ++++--- .../pages/search/all/search-all.component.ts | 2 +- src/app/pages/search/search.component.ts | 1 - 4 files changed, 13 insertions(+), 15 deletions(-) diff --git a/src/app/app.routes.ts b/src/app/app.routes.ts index 18461a67..11fbadf0 100644 --- a/src/app/app.routes.ts +++ b/src/app/app.routes.ts @@ -1,22 +1,20 @@ import { Data, Route } from '@angular/router'; -import { AuthGuard } from '@sinequa/atomic-angular'; +import { AuthGuard, InitializationGuard, queryNameResolver } from '@sinequa/atomic-angular'; +import { ErrorComponent } from '@/core/components/error/error.component'; import { LoadingComponent } from '@/core/components/loading/loading.component'; import { LoginComponent } from '@/core/features/login/login.component'; + import { HomeComponent } from './pages/home/home.component'; import { SearchComponent } from './pages/search/search.component'; -import { InitializationGuard, queryNameResolver } from '@sinequa/atomic-angular'; - -import { ErrorComponent } from '@/core/components/error/error.component'; - // Extended types to add custom properties to routes type ExtendedData = Data & { - queryName?: string; // name of the query defined in the admin - display?: string; // the label you want to display in the interface - wsQueryTab?: string; // the name of the "tab" associated with the query you want to use - icon?: string; // the icon you want to associate with the label in the interface + queryName?: string; // name of the query defined in the admin + display?: string; // the label you want to display in the interface + wsQueryTab?: string; // the name of the "tab" associated with the query you want to use + icon?: string; // the icon you want to associate with the label in the interface [key: string | symbol]: any; // all the "custom" parameters you want } type ExtendedRoute = Route & { @@ -31,7 +29,7 @@ export const routes: ExtendedRoutes = [ { path: 'home', component: HomeComponent, canActivate: [AuthGuard(), InitializationGuard()], resolve: { queryName: queryNameResolver } }, { path: 'search', component: SearchComponent, canActivate: [AuthGuard(), InitializationGuard()], resolve: { queryName: queryNameResolver }, - children: [ + children: [ { path: 'all', component: LoadingComponent }, { path: '**', redirectTo: 'all', pathMatch: 'full' } ] diff --git a/src/app/pages/search/all/search-all.component.html b/src/app/pages/search/all/search-all.component.html index e33f5f68..4b4b44a3 100644 --- a/src/app/pages/search/all/search-all.component.html +++ b/src/app/pages/search/all/search-all.component.html @@ -1,5 +1,5 @@
    - @if(query.isPending()){ + @if (query.isPending()) {
    @@ -12,9 +12,10 @@
    } - @else if (query.isSuccess()){ + @else if (query.isSuccess()) { } + @@ -41,7 +42,7 @@
      - @for(page of query.data()?.pages; track page) { + @for (page of query.data()?.pages; track page) { @for (article of page.records; track article.id + $index) {
    • @if (article.docformat) { diff --git a/src/app/pages/search/all/search-all.component.ts b/src/app/pages/search/all/search-all.component.ts index 1b5492e3..09cbc1bf 100644 --- a/src/app/pages/search/all/search-all.component.ts +++ b/src/app/pages/search/all/search-all.component.ts @@ -25,7 +25,7 @@ type R = Result & { nextPage?: number, previousPage?: number }; InfinityScrollDirective, SponsoredResultsComponent, FiltersListComponent -], + ], templateUrl: './search-all.component.html', styleUrl: './search-all.component.scss', host: { diff --git a/src/app/pages/search/search.component.ts b/src/app/pages/search/search.component.ts index c7155c1f..147045e4 100644 --- a/src/app/pages/search/search.component.ts +++ b/src/app/pages/search/search.component.ts @@ -1,7 +1,6 @@ import { Component } from '@angular/core'; import { RouterOutlet } from '@angular/router'; - import { NavbarComponent } from '@/core/components/navbar/navbar.component'; @Component({ From 0402f0035f7ada208f935f042f4f916b0d7f1296 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Lo=C3=AFc=20Juillet?= Date: Wed, 15 Jan 2025 17:39:18 +0100 Subject: [PATCH 007/658] =?UTF-8?q?=E2=99=BB=EF=B8=8F=20migrate=20filter?= =?UTF-8?q?=20list=20to=20overflow=20manager?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../filters/filters-list.component.ts | 104 +++++++++--------- 1 file changed, 49 insertions(+), 55 deletions(-) diff --git a/src/core/components/filters/filters-list.component.ts b/src/core/components/filters/filters-list.component.ts index 2631209e..34f2c026 100644 --- a/src/core/components/filters/filters-list.component.ts +++ b/src/core/components/filters/filters-list.component.ts @@ -1,9 +1,9 @@ -import { afterNextRender, Component, computed, effect, ElementRef, inject, signal, viewChild, viewChildren } from "@angular/core"; +import { Component, computed, effect, ElementRef, inject, signal, viewChild, viewChildren } from "@angular/core"; import { ActivatedRoute } from "@angular/router"; import { HashMap, provideTranslocoScope, Translation } from "@jsverse/transloco"; import { getState } from "@ngrx/signals"; -import { AggregationsStore, AppStore, cn, QueryParamsStore } from "@sinequa/atomic-angular"; +import { AggregationsStore, AppStore, cn, OverflowItemDirective, OverflowManagerDirective, OverflowStopDirective, QueryParamsStore } from "@sinequa/atomic-angular"; import { FilterButtonComponent } from "./buttons/filter-button.component"; import { FilterDateButtonComponent } from "./buttons/filter-date-button.component"; @@ -18,38 +18,55 @@ const loader = ['en', 'fr'].reduce((acc, lang) => { @Component({ selector: "filters-list, FiltersList", standalone: true, - imports: [FiltersMoreButtonComponent, FilterButtonComponent, FilterDateButtonComponent], + imports: [ + FiltersMoreButtonComponent, + FilterButtonComponent, + FilterDateButtonComponent, + OverflowManagerDirective, + OverflowItemDirective, + OverflowStopDirective + ], providers: [provideTranslocoScope({ scope: 'filters', loader })], template: ` - @if (hasFilters()) { - - } - - @if(hasAggregations()) { - - - @for(filter of filters(); track $index) { - - } - - @if(hasMoreFilters()) { - - } - } + + @if (hasFilters()) { + + } + + @if (hasAggregations()) { + + + @for (filter of filters(); track $index) { + + } + + @if (hasMoreFilters()) { + + } + @else { +
      + } + } +
      `, host: { "role": "list", "aria-label": "Filters list", - }, + } }) export class FiltersListComponent { cn = cn; @@ -63,6 +80,7 @@ export class FiltersListComponent { appStore = inject(AppStore); aggregationsStore = inject(AggregationsStore); queryParamsStore = inject(QueryParamsStore); + el = inject(ElementRef); filters = signal([]); moreFilterCount = signal(this.filtersCount); @@ -93,27 +111,16 @@ export class FiltersListComponent { filterDate = { name: "#date", column: "modified", count: 0, isTree: false, disabled: false, hidden: false }; - resizeObserver = new ResizeObserver(() => this.adjustFiltersCount()); - - constructor(private el: ElementRef) { - afterNextRender(() => { - this.resizeObserver.observe(this.el.nativeElement); - }); - - this.adjustFiltersCount(); - + constructor() { effect(() => { // set filters according to the route and the authorized filters with default values - const authorizedFilters = this.appStore.getAuthorizedFilters(this.route) .filter(f => f.name !== "Modified") .map(f => f.column) .toSpliced(this.filtersCount); this.filters.set(authorizedFilters); - this.adjustFiltersCount(); }, { allowSignalWrites: true }); - } /** @@ -133,20 +140,7 @@ export class FiltersListComponent { * to the total number of filters. * */ - adjustFiltersCount(): void { - if (this.filters().length) { - const moreFiltersRect = this.moreFilterElement()?.nativeElement.getBoundingClientRect(); - const dropdownsRects = this.dropdownElements().map(el => el.nativeElement.getBoundingClientRect()); - - let index = 0; - dropdownsRects.forEach(r => { - if ((r.right + 2) <= moreFiltersRect?.left!) index++; - }); - this.moreFilterCount.set(index > this.filtersCount ? this.filtersCount : index); - } - else { - this.moreFilterCount.set(this.filtersCount); - } + adjustFiltersCount(count: number): void { + this.moreFilterCount.set(count > this.filtersCount ? this.filtersCount : count); } - } \ No newline at end of file From c929ebb83a1d6f809ac65324a88c53ca552be962 Mon Sep 17 00:00:00 2001 From: Guillaume Leibfried Date: Thu, 16 Jan 2025 09:28:47 +0100 Subject: [PATCH 008/658] update atomic angular version --- package-lock.json | 8 ++++---- package.json | 2 +- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/package-lock.json b/package-lock.json index 3ff3bd9f..5fb7ad2c 100644 --- a/package-lock.json +++ b/package-lock.json @@ -26,7 +26,7 @@ "@ngrx/store": "^18.1.1", "@popperjs/core": "^2.11.8", "@sinequa/atomic": "^0.0.61", - "@sinequa/atomic-angular": "^0.0.146", + "@sinequa/atomic-angular": "^0.0.148", "@tanstack/angular-query-experimental": "^5.40.0", "@types/node": "^16.18.11", "clsx": "^2.1.0", @@ -4271,9 +4271,9 @@ "integrity": "sha512-1PoyKTU4kOlZYPKmIbJ8iqDL7a9wglBpZuHnvi3o7jMJBCCqbXTCwURsmVoqaf7IU7MpnbSfH2yeTV1cVBdoBg==" }, "node_modules/@sinequa/atomic-angular": { - "version": "0.0.146", - "resolved": "https://npm.sinequa.com/@sinequa/atomic-angular/-/atomic-angular-0.0.146.tgz", - "integrity": "sha512-8fZ6Ta2/KrSs/4Sva3u6e7twCGcoOl/ARhuW20dq0d+LjAoMIRBYFssDwbkWM33yVASeeX7Dyrvsc/Ze3AGWzQ==", + "version": "0.0.148", + "resolved": "https://npm.sinequa.com/@sinequa/atomic-angular/-/atomic-angular-0.0.148.tgz", + "integrity": "sha512-xLIKdhfq+7Vz6S1zaAUp67G8e76n83ais9/Uw1eQAv7IBTMwrlir/ysqC8Cb4FYygbWkfR211Yd2bT93km8R4g==", "dependencies": { "tslib": "^2.3.0" }, diff --git a/package.json b/package.json index eec807b5..db92d70d 100644 --- a/package.json +++ b/package.json @@ -34,7 +34,7 @@ "@ngrx/store": "^18.1.1", "@popperjs/core": "^2.11.8", "@sinequa/atomic": "^0.0.61", - "@sinequa/atomic-angular": "^0.0.146", + "@sinequa/atomic-angular": "^0.0.148", "@tanstack/angular-query-experimental": "^5.40.0", "@types/node": "^16.18.11", "clsx": "^2.1.0", From c5ae4fb51000ed59fe1568f35ce32a7fbcc5ac66 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Lo=C3=AFc=20Juillet?= Date: Thu, 16 Jan 2025 18:01:20 +0100 Subject: [PATCH 009/658] =?UTF-8?q?=F0=9F=8F=97=EF=B8=8F=20up=20atomic?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- package-lock.json | 23 ++++++++--------------- package.json | 4 ++-- 2 files changed, 10 insertions(+), 17 deletions(-) diff --git a/package-lock.json b/package-lock.json index e450e185..b8786104 100644 --- a/package-lock.json +++ b/package-lock.json @@ -24,8 +24,8 @@ "@ngrx/signals": "^18.1.1", "@ngrx/store": "^18.1.1", "@popperjs/core": "^2.11.8", - "@sinequa/atomic": "^0.0.62", - "@sinequa/atomic-angular": "^0.0.147", + "@sinequa/atomic": "^0.0.63", + "@sinequa/atomic-angular": "^0.0.149", "@tanstack/angular-query-experimental": "^5.40.0", "@types/node": "^16.18.11", "clsx": "^2.1.0", @@ -4249,23 +4249,16 @@ } }, "node_modules/@sinequa/atomic": { - "version": "0.0.62", - "resolved": "https://npm.sinequa.com/@sinequa/atomic/-/atomic-0.0.62.tgz", - "integrity": "sha512-+3V988P8xqDXeWKS04oK4dAXiX5BGhtm/VhbNtA3r/JiiV1tWOFfMkhfQMaIa0dZ67M9v0TBu6FiZ/XMtIZDSQ==" + "version": "0.0.63", + "resolved": "https://npm.sinequa.com/@sinequa/atomic/-/atomic-0.0.63.tgz", + "integrity": "sha512-YCyy36VWCa86mbMx9kfwYV/TKOaaWQY6IDXfSaMy6y4peMS8PTiLh485xLdwK1HAPGk3DXKfLZSW3eJMUYUxTw==" }, "node_modules/@sinequa/atomic-angular": { - "version": "0.0.147", - "resolved": "https://npm.sinequa.com/@sinequa/atomic-angular/-/atomic-angular-0.0.147.tgz", - "integrity": "sha512-hevIFGG/2olQYJEeHpWGXgQ5TeDZPoAyRIc0Ob0GQwaQ0ZAvWRMt+BISJG1yNwtuEHfQQIHsSA7ioXahD9i0pg==", + "version": "0.0.149", + "resolved": "https://npm.sinequa.com/@sinequa/atomic-angular/-/atomic-angular-0.0.149.tgz", + "integrity": "sha512-N0fDvtKDCLepBeWK3UrtJIXzNujDXgYMQNgjZynmOFqIjMXAGBZKb3qudPf0Xw+IhFjwT8wH52PipYmLTJLKPQ==", "dependencies": { "tslib": "^2.3.0" - }, - "peerDependencies": { - "@angular/common": "^17.0.0", - "@angular/core": "^17.0.0", - "@floating-ui/dom": "^1.6.3", - "clsx": "^2.1.0", - "tailwind-merge": "^2.2.2" } }, "node_modules/@tanstack/angular-query-experimental": { diff --git a/package.json b/package.json index 38e7b6e7..ae301816 100644 --- a/package.json +++ b/package.json @@ -32,8 +32,8 @@ "@ngrx/signals": "^18.1.1", "@ngrx/store": "^18.1.1", "@popperjs/core": "^2.11.8", - "@sinequa/atomic": "^0.0.62", - "@sinequa/atomic-angular": "^0.0.147", + "@sinequa/atomic": "^0.0.63", + "@sinequa/atomic-angular": "^0.0.149", "@tanstack/angular-query-experimental": "^5.40.0", "@types/node": "^16.18.11", "clsx": "^2.1.0", From 42a7d9cd5045945fd9124dea3a413d1b6146b20e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Lo=C3=AFc=20Juillet?= Date: Thu, 16 Jan 2025 18:01:36 +0100 Subject: [PATCH 010/658] =?UTF-8?q?=E2=99=BB=EF=B8=8F=20sort=20and=20add?= =?UTF-8?q?=20common=20translations?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/assets/i18n/en.json | 69 +++++++++++++++++++++-------------------- src/assets/i18n/fr.json | 69 +++++++++++++++++++++-------------------- 2 files changed, 70 insertions(+), 68 deletions(-) diff --git a/src/assets/i18n/en.json b/src/assets/i18n/en.json index 838603d0..a5eecd08 100644 --- a/src/assets/i18n/en.json +++ b/src/assets/i18n/en.json @@ -1,51 +1,52 @@ { + "back": "Back", + "bookmarks": "Bookmarks", "cancel": "Cancel", + "clear": "Clear", + "collaborators": "Collaborators", "delete": "Delete", + "documents": "Documents", "domain": "Domain", - "username": "Username", - "loadMore": "Load more", - "nextPage": "Next page", - "previousPage": "Previous page", + "email": "Email", + "extracts": "Extracts", + "from": "From", + "labels": "Labels", + "lastUpdatedBy": "Last updated by", + "lastUpdatedOn": "Last updated on", "loading": "Loading", + "loadMore": "Load more", + "location": "Location", "login": "Login", - "email": "Email", - "password": "Password", "logout": "Logout", - "back": "Back", + "matters": "Matters", + "more": "More", + "nextPage": "Next page", "open": "Open", - "location": "Location", - "lastUpdatedBy": "Last updated by", - "lastUpdatedOn": "Last updated on", - "labels": "Labels", - "type": "Type", - "from": "From", - "to": "To", - "search": "Search", + "password": "Password", + "previewUnavailable": "Sorry, preview is not available for this file.", + "previousPage": "Previous page", "recentSearches": "Recent searches", "savedSearches": "Saved searches", - "bookmarks": "Bookmarks", - "documents": "Documents", - "matters": "Matters", - "collaborators": "Collaborators", - "clear": "Clear", - "msg#sort": { - "relevance": "Relevance", - "date": "Date", - "filename": "Filename", - "title": "Title" - }, - "msg#results": { - "results_all_tab": "All Results", - "results_text_tab": "Text" - }, + "search": "Search", + "to": "To", + "type": "Type", + "username": "Username", "msg#column": { "authors": "Authors", + "companies": "Companies", "documentlanguages": "Languages", - "sizes": "Sizes", "geos": "Places", "persons": "People", - "companies": "Companies" + "sizes": "Sizes" }, - "extracts": "Extracts", - "previewUnavailable": "Sorry, preview is not available for this file." + "msg#results": { + "results_all_tab": "All Results", + "results_text_tab": "Text" + }, + "msg#sort": { + "date": "Date", + "filename": "Filename", + "relevance": "Relevance", + "title": "Title" + } } diff --git a/src/assets/i18n/fr.json b/src/assets/i18n/fr.json index b2de4903..2cb5472d 100644 --- a/src/assets/i18n/fr.json +++ b/src/assets/i18n/fr.json @@ -1,51 +1,52 @@ { + "back": "Retour", + "bookmarks": "Marque-pages", "cancel": "Annuler", + "clear": "Effacer", + "collaborators": "Collaborateurs", "delete": "Supprimer", + "documents": "Documents", "domain": "Domaine", - "username": "Nom d'utilisateur", - "loadMore": "Charger plus", - "nextPage": "Page suivante", - "previousPage": "Page précédente", + "email": "Email", + "extracts": "Extraits", + "from": "De", + "labels": "Libellés", + "lastUpdatedBy": "Dernière mise à jour par", + "lastUpdatedOn": "Dernière mise à jour le", "loading": "Chargement", + "loadMore": "Charger plus", + "location": "Emplacement", "login": "Connexion", - "email": "Email", - "password": "Mot de passe", "logout": "Déconnexion", - "back": "Retour", + "matters": "Concepts", + "more": "Plus", + "nextPage": "Page suivante", "open": "Ouvrir", - "location": "Emplacement", - "lastUpdatedBy": "Dernière mise à jour par", - "lastUpdatedOn": "Dernière mise à jour le", - "labels": "Libellés", - "type": "Type", - "from": "De", - "to": "A", - "search": "Rechercher", + "password": "Mot de passe", + "previewUnavailable": "Désolé, la prévisualisation n'est pas disponible pour ce fichier.", + "previousPage": "Page précédente", "recentSearches": "Recherches récentes", "savedSearches": "Recherches sauvegardées", - "bookmarks": "Marque-pages", - "documents": "Documents", - "matters": "Concepts", - "collaborators": "Collaborateurs", - "clear": "Effacer", - "msg#sort": { - "relevance": "Pertinence", - "date": "Date", - "filename": "Nom de fichier", - "title": "Titre" - }, - "msg#results": { - "results_all_tab": "Tous", - "results_text_tab": "Texte" - }, + "search": "Rechercher", + "to": "A", + "type": "Type", + "username": "Nom d'utilisateur", "msg#column": { "authors": "Auteurs", + "companies": "Sociétés", "documentlanguages": "Langues", - "sizes": "Tailles", "geos": "Lieux", "persons": "Personnes", - "companies": "Sociétés" + "sizes": "Tailles" }, - "extracts": "Extraits", - "previewUnavailable": "Désolé, la prévisualisation n'est pas disponible pour ce fichier." + "msg#results": { + "results_all_tab": "Tous", + "results_text_tab": "Texte" + }, + "msg#sort": { + "date": "Date", + "filename": "Nom de fichier", + "relevance": "Pertinence", + "title": "Titre" + } } From 613e6e20ede396960ab8c45997b88a4d9cf3b62a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Lo=C3=AFc=20Juillet?= Date: Thu, 16 Jan 2025 18:02:23 +0100 Subject: [PATCH 011/658] =?UTF-8?q?=E2=9C=A8=20use=20new=20overflow-manage?= =?UTF-8?q?r=20directive=20to=20handle=20tab=20and=20filter=20list?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../filters/filters-list.component.ts | 19 ++++- .../components/navbar/navbar.component.html | 73 +++++++++++++++---- .../components/navbar/navbar.component.ts | 43 ++++++++--- 3 files changed, 106 insertions(+), 29 deletions(-) diff --git a/src/core/components/filters/filters-list.component.ts b/src/core/components/filters/filters-list.component.ts index 34f2c026..83e24649 100644 --- a/src/core/components/filters/filters-list.component.ts +++ b/src/core/components/filters/filters-list.component.ts @@ -1,10 +1,11 @@ -import { Component, computed, effect, ElementRef, inject, signal, viewChild, viewChildren } from "@angular/core"; +import { Component, computed, effect, ElementRef, inject, OnDestroy, signal, viewChild, viewChildren } from "@angular/core"; import { ActivatedRoute } from "@angular/router"; -import { HashMap, provideTranslocoScope, Translation } from "@jsverse/transloco"; +import { HashMap, provideTranslocoScope, Translation, TranslocoService } from "@jsverse/transloco"; import { getState } from "@ngrx/signals"; import { AggregationsStore, AppStore, cn, OverflowItemDirective, OverflowManagerDirective, OverflowStopDirective, QueryParamsStore } from "@sinequa/atomic-angular"; +import { debounceTime, Subscription } from "rxjs"; import { FilterButtonComponent } from "./buttons/filter-button.component"; import { FilterDateButtonComponent } from "./buttons/filter-date-button.component"; import { FiltersMoreButtonComponent } from "./buttons/filters-more-button.component"; @@ -68,11 +69,12 @@ const loader = ['en', 'fr'].reduce((acc, lang) => { "aria-label": "Filters list", } }) -export class FiltersListComponent { +export class FiltersListComponent implements OnDestroy { cn = cn; moreFilterElement = viewChild(FiltersMoreButtonComponent); dropdownElements = viewChildren(FilterButtonComponent); + readonly overflowManager = viewChild(OverflowManagerDirective); filtersCount = inject(FILTERS_BREAKPOINT); @@ -81,6 +83,7 @@ export class FiltersListComponent { aggregationsStore = inject(AggregationsStore); queryParamsStore = inject(QueryParamsStore); el = inject(ElementRef); + readonly transloco = inject(TranslocoService); filters = signal([]); moreFilterCount = signal(this.filtersCount); @@ -111,6 +114,8 @@ export class FiltersListComponent { filterDate = { name: "#date", column: "modified", count: 0, isTree: false, disabled: false, hidden: false }; + private readonly sub = new Subscription(); + constructor() { effect(() => { // set filters according to the route and the authorized filters with default values @@ -121,6 +126,14 @@ export class FiltersListComponent { this.filters.set(authorizedFilters); }, { allowSignalWrites: true }); + + this.sub.add( + this.transloco.events$.pipe(debounceTime(100)).subscribe(() => this.overflowManager()?.countItems()) + ); + } + + ngOnDestroy(): void { + this.sub.unsubscribe(); } /** diff --git a/src/core/components/navbar/navbar.component.html b/src/core/components/navbar/navbar.component.html index 0c2ea094..a2337398 100644 --- a/src/core/components/navbar/navbar.component.html +++ b/src/core/components/navbar/navbar.component.html @@ -43,19 +43,64 @@
    • - + +
    diff --git a/src/core/components/navbar/navbar.component.ts b/src/core/components/navbar/navbar.component.ts index ed6f4ed5..de59960e 100644 --- a/src/core/components/navbar/navbar.component.ts +++ b/src/core/components/navbar/navbar.component.ts @@ -1,10 +1,10 @@ -import { AsyncPipe, CommonModule, NgClass } from '@angular/common'; -import { Component, OnDestroy, Type, inject, signal, viewChild } from '@angular/core'; +import { AsyncPipe, CommonModule } from '@angular/common'; +import { Component, computed, inject, OnDestroy, signal, Type, viewChild } from '@angular/core'; import { Router, RouterLink, RouterLinkActive } from '@angular/router'; -import { TranslocoPipe } from '@jsverse/transloco'; -import { Subscription } from 'rxjs'; +import { TranslocoPipe, TranslocoService } from '@jsverse/transloco'; +import { debounceTime, Subscription } from 'rxjs'; -import { AutocompleteService, DrawerStackService, DropdownComponent, NavigationService, QueryParamsStore, SavedSearchesService } from '@sinequa/atomic-angular'; +import { AutocompleteService, DrawerStackService, DropdownComponent, NavigationService, OverflowItemDirective, OverflowManagerDirective, OverflowStopDirective, QueryParamsStore, SavedSearchesService } from '@sinequa/atomic-angular'; import { BookmarksListComponent } from '@/core/features/bookmarks/list/bookmarks-list.component'; import { RecentSearchesComponent } from '@/core/features/recent-searches/recent-searches.component'; @@ -45,7 +45,10 @@ type NavbarTab = { UserMenuComponent, DropdownComponent, TranslocoPipe, - SyslangPipe + SyslangPipe, + OverflowManagerDirective, + OverflowItemDirective, + OverflowStopDirective ], host: { 'class': 'layout-search', @@ -53,11 +56,12 @@ type NavbarTab = { } }) export class NavbarComponent implements OnDestroy { - readonly drawerOpened = signal(false); - readonly searchInput = viewChild(SearchInputComponent); + readonly overflowManager = viewChild(OverflowManagerDirective); - protected readonly searchText = signal(''); + readonly drawerOpened = signal(false); + readonly searchText = signal(''); + readonly visibleTabCount = signal(undefined); protected readonly menus: NavbarMenu[] = [ { display: 'Recent queries', iconClass: 'far fa-clock-rotate-left', component: RecentSearchesComponent }, @@ -67,6 +71,7 @@ export class NavbarComponent implements OnDestroy { protected readonly navigationService = inject(NavigationService); + private readonly transloco = inject(TranslocoService); private readonly router = inject(Router); private readonly drawerStack = inject(DrawerStackService); private readonly savedSearchesService = inject(SavedSearchesService); @@ -76,7 +81,9 @@ export class NavbarComponent implements OnDestroy { private readonly sub = new Subscription(); // create tabs from the search routes - protected readonly tabs: NavbarTab[] = this.router.config.find(item => item.path === "search")?.children?.filter(c => c.path !== "**") + readonly tabs = computed(() => this.router.config + .find(item => item.path === "search")?.children + ?.filter(c => c.path !== "**") .map(child => ({ display: child.data?.['display'] || child.path, name: child.data?.['wsQueryTab'] || child.path, @@ -84,13 +91,24 @@ export class NavbarComponent implements OnDestroy { routerLink: `${child.path}`, iconClass: child.data?.['iconClass'], queryName: child.data?.['queryName'] - }) as NavbarTab) ?? []; - + }) as NavbarTab) ?? [] + ); + readonly moreTabs = computed(() => this.tabs().slice(this.visibleTabCount())); constructor() { this.sub.add( this.drawerStack.isOpened.subscribe(state => this.drawerOpened.set(state)) ); + + // register to transloco events to update the overflow manager when translations are loaded + // otherwise the overflow manager will count size of items without text + this.sub.add( + this.transloco.events$.pipe( + debounceTime(100) + ).subscribe(() => { + this.overflowManager()?.countItems(); + }) + ); } ngOnDestroy(): void { @@ -132,6 +150,7 @@ export class NavbarComponent implements OnDestroy { /** * Occurs when the search input is updated by the user and debounced by the system + * * @param text The debounced text */ protected debounced(text: string): void { From dd741f6857f3520c4a55eb55192d297d9cb9cd9d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Lo=C3=AFc=20Juillet?= Date: Thu, 16 Jan 2025 18:05:37 +0100 Subject: [PATCH 012/658] =?UTF-8?q?=F0=9F=93=96=20update=20doc?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../directives/overflow-manager.md | 51 +++++++++++++++++-- 1 file changed, 46 insertions(+), 5 deletions(-) diff --git a/docusaurus/docs/atomic-angular/directives/overflow-manager.md b/docusaurus/docs/atomic-angular/directives/overflow-manager.md index cc053050..0b47aec2 100644 --- a/docusaurus/docs/atomic-angular/directives/overflow-manager.md +++ b/docusaurus/docs/atomic-angular/directives/overflow-manager.md @@ -2,7 +2,7 @@ title: OverflowManager --- -## Overview +# Overview Directive that handles a list of elements and manages the overflow of the list. It listens to the resize event and emits a the number of elements that can be displayed in the list to a stop element. 3 directives are available: @@ -26,9 +26,14 @@ The `overflowManager` directive cannot be used inside the `hostDirectives` array You can listen to `count` output to get the number of items that can fit before the stop marker. -### Usage +:::warning +If you use this directive with text translated with **Transloco**, see dedicated usage section for utility function. +::: + +# Usage + +## Basic -#### Basic ```ts title="some-component.ts" @Component({ ... @@ -51,7 +56,8 @@ export class SomeComponent { } ``` -#### Host element is the list +## Host element is the list + ```ts title="some-component.ts" @Component({ ... @@ -82,4 +88,39 @@ export class SomeComponent { :::note `ng-container` here is used as a middleware for the container element and won't be rendered in the DOM. -::: \ No newline at end of file +::: + +## Use with translated field with **Transloco** + +```ts title="some-component.ts" +@Component({ + ... +}) +export class SomeComponent implements OnDestroy { + readonly overflowManager = viewChild(OverflowManagerDirective); + + readonly transloco = inject(TranslocoService); + + private readonly sub = new Subscription(); + + constructor() { + // register to transloco events to update the overflow manager when translations are loaded + // otherwise the overflow manager will count size of items without text + this.sub.add( + this.transloco.events$.pipe( + debounceTime(250) + ).subscribe(() => { + this.overflowManager()?.countItems(); + }) + ); + } + + ngOnDestroy(): void { + this.sub.unsubscribe(); + } +} +``` + +:::note +**Transloco** emits several events when translations are loaded, we debounce the event to avoid multiple calls to the `countItems` method. +::: From 61a7b0da32648f17c39223a50641f2c2bf36619a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Lo=C3=AFc=20Juillet?= Date: Mon, 20 Jan 2025 10:33:01 +0100 Subject: [PATCH 013/658] =?UTF-8?q?=F0=9F=8F=97=EF=B8=8F=20@angular/cdk=20?= =?UTF-8?q?for=20drag=20n=20drop?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- package-lock.json | 21 +++++++++++++++++++-- package.json | 1 + 2 files changed, 20 insertions(+), 2 deletions(-) diff --git a/package-lock.json b/package-lock.json index b8786104..998313a0 100644 --- a/package-lock.json +++ b/package-lock.json @@ -11,6 +11,7 @@ "@angular-architects/ngrx-toolkit": "^18.1.1", "@angular-eslint/schematics": "^18.3.1", "@angular/animations": "^18.2.5", + "@angular/cdk": "^19.1.0", "@angular/common": "^18.2.5", "@angular/compiler": "^18.2.5", "@angular/core": "^18.2.5", @@ -571,6 +572,22 @@ } } }, + "node_modules/@angular/cdk": { + "version": "19.1.0", + "resolved": "https://npm.sinequa.com/@angular/cdk/-/cdk-19.1.0.tgz", + "integrity": "sha512-h7VSaMA/vFHb7u1bwoHKl3L3mZLIcXNZw6v7Nei9ITfEo1PfSKbrYhleeqpNikzE+LxNDKJrbZtpAckSYHblmA==", + "dependencies": { + "tslib": "^2.3.0" + }, + "optionalDependencies": { + "parse5": "^7.1.2" + }, + "peerDependencies": { + "@angular/common": "^19.0.0 || ^20.0.0", + "@angular/core": "^19.0.0 || ^20.0.0", + "rxjs": "^6.5.3 || ^7.4.0" + } + }, "node_modules/@angular/cli": { "version": "18.2.5", "resolved": "https://npm.sinequa.com/@angular/cli/-/cli-18.2.5.tgz", @@ -6359,7 +6376,7 @@ "version": "4.5.0", "resolved": "https://npm.sinequa.com:4873/entities/-/entities-4.5.0.tgz", "integrity": "sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==", - "dev": true, + "devOptional": true, "engines": { "node": ">=0.12" }, @@ -9752,7 +9769,7 @@ "version": "7.1.2", "resolved": "https://npm.sinequa.com:4873/parse5/-/parse5-7.1.2.tgz", "integrity": "sha512-Czj1WaSVpaoj0wbhMzLmWD69anp2WH7FXMB9n1Sy8/ZFF9jolSQVMu1Ij5WIyGmcBmhk7EOndpO4mIpihVqAXw==", - "dev": true, + "devOptional": true, "dependencies": { "entities": "^4.4.0" }, diff --git a/package.json b/package.json index ae301816..ca6d2b70 100644 --- a/package.json +++ b/package.json @@ -19,6 +19,7 @@ "@angular-architects/ngrx-toolkit": "^18.1.1", "@angular-eslint/schematics": "^18.3.1", "@angular/animations": "^18.2.5", + "@angular/cdk": "^19.1.0", "@angular/common": "^18.2.5", "@angular/compiler": "^18.2.5", "@angular/core": "^18.2.5", From a6a7d76bf6865ced4a061a3e8e24fc9a9b50a828 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Lo=C3=AFc=20Juillet?= Date: Mon, 20 Jan 2025 15:25:04 +0100 Subject: [PATCH 014/658] =?UTF-8?q?=E2=9C=A8=20add=20no=20result=20panel?= =?UTF-8?q?=20component?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../search/all/search-all.component.html | 4 +-- .../pages/search/all/search-all.component.ts | 5 +++- .../components/no-result-panel/i18n/en.json | 5 ++++ .../components/no-result-panel/i18n/fr.json | 5 ++++ .../no-result-panel.component.ts | 30 +++++++++++++++++++ 5 files changed, 46 insertions(+), 3 deletions(-) create mode 100644 src/core/components/no-result-panel/i18n/en.json create mode 100644 src/core/components/no-result-panel/i18n/fr.json create mode 100644 src/core/components/no-result-panel/no-result-panel.component.ts diff --git a/src/app/pages/search/all/search-all.component.html b/src/app/pages/search/all/search-all.component.html index 4b4b44a3..22e9d7b4 100644 --- a/src/app/pages/search/all/search-all.component.html +++ b/src/app/pages/search/all/search-all.component.html @@ -51,8 +51,8 @@
  • } @empty { -
  • - No result for "{{ keys().text }}" +
  • +
  • } } diff --git a/src/app/pages/search/all/search-all.component.ts b/src/app/pages/search/all/search-all.component.ts index 09cbc1bf..1fd3c887 100644 --- a/src/app/pages/search/all/search-all.component.ts +++ b/src/app/pages/search/all/search-all.component.ts @@ -7,9 +7,11 @@ import { InfinityScrollDirective } from '@sinequa/atomic-angular'; import { getComponentsForDocumentType } from '@/app/registry/document-type-registry'; import { ArticleDefaultSkeletonComponent } from '@/core/components/article/default-skeleton/article-default-skeleton.component'; import { FiltersListComponent } from "@/core/components/filters/filters-list.component"; +import { NoResultPanelComponent } from "@/core/components/no-result-panel/no-result-panel.component"; import { SponsoredResultsComponent } from "@/core/components/sponsored-results/sponsored-results.component"; import { DidYouMeanComponent } from '@/core/features/did-you-mean/did-you-mean.component'; import { SortSelectorComponent, SortingChoice } from '@/core/features/sort-selector/sort-selector.component'; + import { SearchBase } from '../search.abstract'; type R = Result & { nextPage?: number, previousPage?: number }; @@ -24,7 +26,8 @@ type R = Result & { nextPage?: number, previousPage?: number }; DidYouMeanComponent, InfinityScrollDirective, SponsoredResultsComponent, - FiltersListComponent + FiltersListComponent, + NoResultPanelComponent ], templateUrl: './search-all.component.html', styleUrl: './search-all.component.scss', diff --git a/src/core/components/no-result-panel/i18n/en.json b/src/core/components/no-result-panel/i18n/en.json new file mode 100644 index 00000000..d873d266 --- /dev/null +++ b/src/core/components/no-result-panel/i18n/en.json @@ -0,0 +1,5 @@ +{ + "noResult": "We couldn't find relevant documents that match your search query!", + "noResultAssistance": "If you need assistance, contact your administrator.", + "noResultSuggestion": "Consider using keywords that are likely to be present on the relevant pages. For instance, try \"travel policy US \" instead of \"How much can I spend for a lunch in New Jersey?\"." +} diff --git a/src/core/components/no-result-panel/i18n/fr.json b/src/core/components/no-result-panel/i18n/fr.json new file mode 100644 index 00000000..86bed6dc --- /dev/null +++ b/src/core/components/no-result-panel/i18n/fr.json @@ -0,0 +1,5 @@ +{ + "noResult": "Nous n'avons pas trouvé de documents pertinents correspondant à votre requête de recherche !", + "noResultAssistance": "Si vous avez besoin d'aide, contactez votre administrateur.", + "noResultSuggestion": "Envisagez d'utiliser des mots-clés susceptibles d'être présents sur les pages pertinentes. Par exemple, essayez \"politique de voyage US\" au lieu de \"Combien puis-je dépenser pour un déjeuner dans le New Jersey ?\"." +} diff --git a/src/core/components/no-result-panel/no-result-panel.component.ts b/src/core/components/no-result-panel/no-result-panel.component.ts new file mode 100644 index 00000000..1afdf637 --- /dev/null +++ b/src/core/components/no-result-panel/no-result-panel.component.ts @@ -0,0 +1,30 @@ +import { Component } from '@angular/core'; +import { HashMap, provideTranslocoScope, Translation, TranslocoPipe } from '@jsverse/transloco'; + +const loader = ['en', 'fr'].reduce((acc, lang) => { + acc[lang] = () => import(`./i18n/${lang}.json`); + return acc; +}, {} as HashMap<() => Promise>); + +@Component({ + selector: 'NoResultPanel', + standalone: true, + imports: [TranslocoPipe], + providers: [provideTranslocoScope({ scope: 'noResult', loader })], + template: ` +
    + +

    {{ 'noResult.noResult' | transloco }}

    +
    + +

    {{ 'noResult.noResultSuggestion' | transloco }}

    + +
    + +

    {{ 'noResult.noResultAssistance' | transloco }}

    + `, + host: { + 'class': 'p-4 flex flex-col gap-2 bg-gray-100 rounded-md' + } +}) +export class NoResultPanelComponent {} From 01e791f6d0d9e8beba2515bd55d39251b5ffc5c0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Lo=C3=AFc=20Juillet?= Date: Mon, 20 Jan 2025 17:39:36 +0100 Subject: [PATCH 015/658] =?UTF-8?q?=E2=9C=A8=20add=20verbose=20flag=20in?= =?UTF-8?q?=20environment?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- package-lock.json | 10 +++++----- package.json | 2 +- .../drawer-stack/drawer-stack.component.ts | 3 ++- src/environments/env.model.ts | 1 + src/environments/environment.production.ts | 3 ++- src/environments/environment.ts | 1 + src/main.ts | 17 ++++++++++------- 7 files changed, 22 insertions(+), 15 deletions(-) diff --git a/package-lock.json b/package-lock.json index 998313a0..f9304623 100644 --- a/package-lock.json +++ b/package-lock.json @@ -25,7 +25,7 @@ "@ngrx/signals": "^18.1.1", "@ngrx/store": "^18.1.1", "@popperjs/core": "^2.11.8", - "@sinequa/atomic": "^0.0.63", + "@sinequa/atomic": "^0.0.65", "@sinequa/atomic-angular": "^0.0.149", "@tanstack/angular-query-experimental": "^5.40.0", "@types/node": "^16.18.11", @@ -4266,14 +4266,14 @@ } }, "node_modules/@sinequa/atomic": { - "version": "0.0.63", - "resolved": "https://npm.sinequa.com/@sinequa/atomic/-/atomic-0.0.63.tgz", - "integrity": "sha512-YCyy36VWCa86mbMx9kfwYV/TKOaaWQY6IDXfSaMy6y4peMS8PTiLh485xLdwK1HAPGk3DXKfLZSW3eJMUYUxTw==" + "version": "0.0.65", + "resolved": "https://npm.sinequa.com/@sinequa/atomic/-/atomic-0.0.65.tgz", + "integrity": "sha512-MO67dAv7u192/44ErIuPlj9/XQZ/x3wRjlBuM7bagAG/nEB9bHCnl/B2x40606wcZXOdTO+M6n2pL40Y4WHnMA==" }, "node_modules/@sinequa/atomic-angular": { "version": "0.0.149", "resolved": "https://npm.sinequa.com/@sinequa/atomic-angular/-/atomic-angular-0.0.149.tgz", - "integrity": "sha512-N0fDvtKDCLepBeWK3UrtJIXzNujDXgYMQNgjZynmOFqIjMXAGBZKb3qudPf0Xw+IhFjwT8wH52PipYmLTJLKPQ==", + "integrity": "sha512-elHpcqdCpFpDjJeQocK/3lZpDiwaDzMkhNPIVJ6McTdqvzg8sBc6i52gYlfaudmjH25UA/3ALjurwn4N4QVnDQ==", "dependencies": { "tslib": "^2.3.0" } diff --git a/package.json b/package.json index ca6d2b70..f70b6d88 100644 --- a/package.json +++ b/package.json @@ -33,7 +33,7 @@ "@ngrx/signals": "^18.1.1", "@ngrx/store": "^18.1.1", "@popperjs/core": "^2.11.8", - "@sinequa/atomic": "^0.0.63", + "@sinequa/atomic": "^0.0.65", "@sinequa/atomic-angular": "^0.0.149", "@tanstack/angular-query-experimental": "^5.40.0", "@types/node": "^16.18.11", diff --git a/src/core/components/drawer/drawer-stack/drawer-stack.component.ts b/src/core/components/drawer/drawer-stack/drawer-stack.component.ts index bfd778db..cc172d53 100644 --- a/src/core/components/drawer/drawer-stack/drawer-stack.component.ts +++ b/src/core/components/drawer/drawer-stack/drawer-stack.component.ts @@ -1,6 +1,7 @@ import { Component, ComponentRef, HostBinding, OnDestroy, ViewContainerRef, inject } from '@angular/core'; import { Subscription } from 'rxjs'; +import { globalConfig } from '@sinequa/atomic'; import { DrawerStackService, SelectionHistoryService } from '@sinequa/atomic-angular'; import { DrawerComponent } from '../drawer.component'; @@ -83,7 +84,7 @@ export class DrawerStackComponent implements OnDestroy { private openTopDrawer(index: number): void { if (this.drawers.length >= DRAWER_STACK_MAX_COUNT) { - console.log('Drawer stack is full'); + if (globalConfig.verbose) console.log('Drawer stack is full'); this.shiftDrawer(); } diff --git a/src/environments/env.model.ts b/src/environments/env.model.ts index 2b03dcec..e48618d0 100644 --- a/src/environments/env.model.ts +++ b/src/environments/env.model.ts @@ -2,4 +2,5 @@ import { AppGlobalConfig } from "@sinequa/atomic"; export type Environment = AppGlobalConfig & { production: boolean; + verbose: boolean; } \ No newline at end of file diff --git a/src/environments/environment.production.ts b/src/environments/environment.production.ts index 826809d6..487d3e02 100644 --- a/src/environments/environment.production.ts +++ b/src/environments/environment.production.ts @@ -1,5 +1,6 @@ import { Environment } from "./env.model"; export const environment: Environment = { - production: true + production: true, + verbose: false }; \ No newline at end of file diff --git a/src/environments/environment.ts b/src/environments/environment.ts index 34798caf..ef62db4b 100644 --- a/src/environments/environment.ts +++ b/src/environments/environment.ts @@ -2,6 +2,7 @@ import { Environment } from "./env.model"; export const environment: Environment = { production: false, + verbose: false, app: 'training', autoOAuthProvider: 'identity-dev' } \ No newline at end of file diff --git a/src/main.ts b/src/main.ts index d23c82a8..6193a742 100644 --- a/src/main.ts +++ b/src/main.ts @@ -1,13 +1,14 @@ import { bootstrapApplication } from '@angular/platform-browser'; -import { setGlobalConfig } from '@sinequa/atomic'; -import { AppComponent } from './app/app.component'; -import { appConfig } from './app/app.config'; -import { environment } from './environments/environment'; - import { focusGroupKeyUX, hiddenKeyUX, hotkeyKeyUX, jumpKeyUX, pressKeyUX, startKeyUX } from 'keyux'; + +import { globalConfig, setGlobalConfig } from '@sinequa/atomic'; import atomicAngular from "../node_modules/@sinequa/atomic-angular/package.json"; import atomic from "../node_modules/@sinequa/atomic/package.json"; +import { AppComponent } from './app/app.component'; +import { appConfig } from './app/app.config'; +import { environment } from './environments/environment'; + setGlobalConfig(environment); /** @@ -23,8 +24,10 @@ startKeyUX(window, [ bootstrapApplication(AppComponent, appConfig) .then(() => { - console.log("atomic", atomic.version); - console.log("atomic-angular", atomicAngular.version); + if (globalConfig.verbose) { + console.log("atomic", atomic.version); + console.log("atomic-angular", atomicAngular.version); + } }) .catch((err) => { console.error("bootstrapApplication error:", err); From d52ed3070019ceabc2b79840bdeaffc88e43c2ef Mon Sep 17 00:00:00 2001 From: Guillaume Leibfried Date: Thu, 23 Jan 2025 13:37:01 +0100 Subject: [PATCH 016/658] add entities to the preview advanced search --- package-lock.json | 6430 ++++++++++------- .../advanced-search.component.html | 27 + .../advanced-search.component.ts | 6 +- .../preview/drawer-preview.component.ts | 8 +- 4 files changed, 3671 insertions(+), 2800 deletions(-) diff --git a/package-lock.json b/package-lock.json index 998313a0..9e600899 100644 --- a/package-lock.json +++ b/package-lock.json @@ -53,9 +53,10 @@ }, "node_modules/@alloc/quick-lru": { "version": "5.2.0", - "resolved": "https://npm.sinequa.com:4873/@alloc/quick-lru/-/quick-lru-5.2.0.tgz", + "resolved": "https://npm.sinequa.com/@alloc/quick-lru/-/quick-lru-5.2.0.tgz", "integrity": "sha512-UrcABB+4bUrFABwbluTIBErXwvbsU/V7TZWfmbgJfbkwiBuziS9gxdODUyuiecfdGQ85jglMW6juS3+z5TsKLw==", "dev": true, + "license": "MIT", "engines": { "node": ">=10" }, @@ -65,9 +66,10 @@ }, "node_modules/@ampproject/remapping": { "version": "2.3.0", - "resolved": "https://npm.sinequa.com:4873/@ampproject/remapping/-/remapping-2.3.0.tgz", + "resolved": "https://npm.sinequa.com/@ampproject/remapping/-/remapping-2.3.0.tgz", "integrity": "sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw==", "dev": true, + "license": "Apache-2.0", "dependencies": { "@jridgewell/gen-mapping": "^0.3.5", "@jridgewell/trace-mapping": "^0.3.24" @@ -80,6 +82,7 @@ "version": "18.1.1", "resolved": "https://npm.sinequa.com/@angular-architects/ngrx-toolkit/-/ngrx-toolkit-18.1.1.tgz", "integrity": "sha512-0tYPUaFOHFNGc+2xzAh9OKREyQ+Gi5bASzY/mGbG6TQUg68aWdBTTGFv0lLTMKymIfx/6ZCTWILjZR7BQrfKgg==", + "license": "MIT", "dependencies": { "tslib": "^2.3.0" }, @@ -94,12 +97,13 @@ } }, "node_modules/@angular-devkit/architect": { - "version": "0.1802.5", - "resolved": "https://npm.sinequa.com/@angular-devkit/architect/-/architect-0.1802.5.tgz", - "integrity": "sha512-c7sVoW85Yqj7IYvNKxtNSGS5I7gWpORorg/xxLZX3OkHWXDrwYbb5LN/2p5/Aytxyb0aXl4o5fFOu6CUwcaLUw==", + "version": "0.1802.12", + "resolved": "https://npm.sinequa.com/@angular-devkit/architect/-/architect-0.1802.12.tgz", + "integrity": "sha512-bepVb2/GtJppYKaeW8yTGE6egmoWZ7zagFDsmBdbF+BYp+HmeoPsclARcdryBPVq68zedyTRdvhWSUTbw1AYuw==", "dev": true, + "license": "MIT", "dependencies": { - "@angular-devkit/core": "18.2.5", + "@angular-devkit/core": "18.2.12", "rxjs": "7.8.1" }, "engines": { @@ -109,16 +113,17 @@ } }, "node_modules/@angular-devkit/build-angular": { - "version": "18.2.11", - "resolved": "https://npm.sinequa.com/@angular-devkit/build-angular/-/build-angular-18.2.11.tgz", - "integrity": "sha512-09Ln3NAdlMw/wMLgnwYU5VgWV5TPBEHolZUIvE9D8b6SFWBCowk3B3RWeAMgg7Peuf9SKwqQHBz2b1C7RTP/8g==", + "version": "18.2.12", + "resolved": "https://npm.sinequa.com/@angular-devkit/build-angular/-/build-angular-18.2.12.tgz", + "integrity": "sha512-quVUi7eqTq9OHumQFNl9Y8t2opm8miu4rlYnuF6rbujmmBDvdUvR6trFChueRczl2p5HWqTOr6NPoDGQm8AyNw==", "dev": true, + "license": "MIT", "dependencies": { "@ampproject/remapping": "2.3.0", - "@angular-devkit/architect": "0.1802.11", - "@angular-devkit/build-webpack": "0.1802.11", - "@angular-devkit/core": "18.2.11", - "@angular/build": "18.2.11", + "@angular-devkit/architect": "0.1802.12", + "@angular-devkit/build-webpack": "0.1802.12", + "@angular-devkit/core": "18.2.12", + "@angular/build": "18.2.12", "@babel/core": "7.25.2", "@babel/generator": "7.25.0", "@babel/helper-annotate-as-pure": "7.24.7", @@ -129,7 +134,7 @@ "@babel/preset-env": "7.25.3", "@babel/runtime": "7.25.0", "@discoveryjs/json-ext": "0.6.1", - "@ngtools/webpack": "18.2.11", + "@ngtools/webpack": "18.2.12", "@vitejs/plugin-basic-ssl": "1.1.0", "ansi-colors": "4.1.3", "autoprefixer": "10.4.20", @@ -236,55 +241,50 @@ } } }, - "node_modules/@angular-devkit/build-angular/node_modules/@angular-devkit/architect": { - "version": "0.1802.11", - "resolved": "https://npm.sinequa.com/@angular-devkit/architect/-/architect-0.1802.11.tgz", - "integrity": "sha512-p+XIc/j51aI83ExNdeZwvkm1F4wkuKMGUUoj0MVUUi5E6NoiMlXYm6uU8+HbRvPBzGy5+3KOiGp3Fks0UmDSAA==", + "node_modules/@angular-devkit/build-angular/node_modules/postcss": { + "version": "8.4.41", + "resolved": "https://npm.sinequa.com/postcss/-/postcss-8.4.41.tgz", + "integrity": "sha512-TesUflQ0WKZqAvg52PWL6kHgLKP6xB6heTOdoYM0Wt2UHyxNa4K25EZZMgKns3BH1RLVbZCREPpLY0rhnNoHVQ==", "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/postcss" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", "dependencies": { - "@angular-devkit/core": "18.2.11", - "rxjs": "7.8.1" + "nanoid": "^3.3.7", + "picocolors": "^1.0.1", + "source-map-js": "^1.2.0" }, "engines": { - "node": "^18.19.1 || ^20.11.1 || >=22.0.0", - "npm": "^6.11.0 || ^7.5.6 || >=8.0.0", - "yarn": ">= 1.13.0" + "node": "^10 || ^12 || >=14" } }, - "node_modules/@angular-devkit/build-angular/node_modules/@angular-devkit/core": { - "version": "18.2.11", - "resolved": "https://npm.sinequa.com/@angular-devkit/core/-/core-18.2.11.tgz", - "integrity": "sha512-H9P1shRGigORWJHUY2BRa2YurT+DVminrhuaYHsbhXBRsPmgB2Dx/30YLTnC1s5XmR9QIRUCsg/d3kyT1wd5Zg==", + "node_modules/@angular-devkit/build-angular/node_modules/tslib": { + "version": "2.6.3", + "resolved": "https://npm.sinequa.com/tslib/-/tslib-2.6.3.tgz", + "integrity": "sha512-xNvxJEOUiWPGhUuUdQgAJPKOOJfGnIyKySOc09XkKsgdUV/3E2zvwZYdejjmRgPCgcym1juLH3226yA7sEFJKQ==", "dev": true, - "dependencies": { - "ajv": "8.17.1", - "ajv-formats": "3.0.1", - "jsonc-parser": "3.3.1", - "picomatch": "4.0.2", - "rxjs": "7.8.1", - "source-map": "0.7.4" - }, - "engines": { - "node": "^18.19.1 || ^20.11.1 || >=22.0.0", - "npm": "^6.11.0 || ^7.5.6 || >=8.0.0", - "yarn": ">= 1.13.0" - }, - "peerDependencies": { - "chokidar": "^3.5.2" - }, - "peerDependenciesMeta": { - "chokidar": { - "optional": true - } - } + "license": "0BSD" }, "node_modules/@angular-devkit/build-webpack": { - "version": "0.1802.11", - "resolved": "https://npm.sinequa.com/@angular-devkit/build-webpack/-/build-webpack-0.1802.11.tgz", - "integrity": "sha512-G76rNsyn1iQk7qjyr+K4rnDzfalmEswmwXQorypSDGaHYzIDY1SZXMoP4225WMq5fJNBOJrk82FA0PSfnPE+zQ==", + "version": "0.1802.12", + "resolved": "https://npm.sinequa.com/@angular-devkit/build-webpack/-/build-webpack-0.1802.12.tgz", + "integrity": "sha512-0Z3fdbZVRnjYWE2/VYyfy+uieY+6YZyEp4ylzklVkc+fmLNsnz4Zw6cK1LzzcBqAwKIyh1IdW20Cg7o8b0sONA==", "dev": true, + "license": "MIT", "dependencies": { - "@angular-devkit/architect": "0.1802.11", + "@angular-devkit/architect": "0.1802.12", "rxjs": "7.8.1" }, "engines": { @@ -297,53 +297,11 @@ "webpack-dev-server": "^5.0.2" } }, - "node_modules/@angular-devkit/build-webpack/node_modules/@angular-devkit/architect": { - "version": "0.1802.11", - "resolved": "https://npm.sinequa.com/@angular-devkit/architect/-/architect-0.1802.11.tgz", - "integrity": "sha512-p+XIc/j51aI83ExNdeZwvkm1F4wkuKMGUUoj0MVUUi5E6NoiMlXYm6uU8+HbRvPBzGy5+3KOiGp3Fks0UmDSAA==", - "dev": true, - "dependencies": { - "@angular-devkit/core": "18.2.11", - "rxjs": "7.8.1" - }, - "engines": { - "node": "^18.19.1 || ^20.11.1 || >=22.0.0", - "npm": "^6.11.0 || ^7.5.6 || >=8.0.0", - "yarn": ">= 1.13.0" - } - }, - "node_modules/@angular-devkit/build-webpack/node_modules/@angular-devkit/core": { - "version": "18.2.11", - "resolved": "https://npm.sinequa.com/@angular-devkit/core/-/core-18.2.11.tgz", - "integrity": "sha512-H9P1shRGigORWJHUY2BRa2YurT+DVminrhuaYHsbhXBRsPmgB2Dx/30YLTnC1s5XmR9QIRUCsg/d3kyT1wd5Zg==", - "dev": true, - "dependencies": { - "ajv": "8.17.1", - "ajv-formats": "3.0.1", - "jsonc-parser": "3.3.1", - "picomatch": "4.0.2", - "rxjs": "7.8.1", - "source-map": "0.7.4" - }, - "engines": { - "node": "^18.19.1 || ^20.11.1 || >=22.0.0", - "npm": "^6.11.0 || ^7.5.6 || >=8.0.0", - "yarn": ">= 1.13.0" - }, - "peerDependencies": { - "chokidar": "^3.5.2" - }, - "peerDependenciesMeta": { - "chokidar": { - "optional": true - } - } - }, "node_modules/@angular-devkit/core": { - "version": "18.2.5", - "resolved": "https://npm.sinequa.com/@angular-devkit/core/-/core-18.2.5.tgz", - "integrity": "sha512-r9TumPlJ8PvA2+yz4sp+bUHgtznaVKzhvXTN5qL1k4YP8LJ7iZWMR2FOP+HjukHZOTsenzmV9pszbogabqwoZQ==", - "dev": true, + "version": "18.2.12", + "resolved": "https://npm.sinequa.com/@angular-devkit/core/-/core-18.2.12.tgz", + "integrity": "sha512-NtB6ypsaDyPE6/fqWOdfTmACs+yK5RqfH5tStEzWFeeDsIEDYKsJ06ypuRep7qTjYus5Rmttk0Ds+cFgz8JdUQ==", + "license": "MIT", "dependencies": { "ajv": "8.17.1", "ajv-formats": "3.0.1", @@ -367,12 +325,12 @@ } }, "node_modules/@angular-devkit/schematics": { - "version": "18.2.5", - "resolved": "https://npm.sinequa.com/@angular-devkit/schematics/-/schematics-18.2.5.tgz", - "integrity": "sha512-NUmz2UQ1Xl4cf4j1AgkwIfsCjBzAPgfeC3IBrD29hSOBE1Y3j6auqjBkvw50v6mbSPxESND995Xy13HpK1Xflw==", - "dev": true, + "version": "18.2.12", + "resolved": "https://npm.sinequa.com/@angular-devkit/schematics/-/schematics-18.2.12.tgz", + "integrity": "sha512-mMea9txHbnCX5lXLHlo0RAgfhFHDio45/jMsREM2PA8UtVf2S8ltXz7ZwUrUyMQRv8vaSfn4ijDstF4hDMnRgQ==", + "license": "MIT", "dependencies": { - "@angular-devkit/core": "18.2.5", + "@angular-devkit/core": "18.2.12", "jsonc-parser": "3.3.1", "magic-string": "0.30.11", "ora": "5.4.1", @@ -385,17 +343,19 @@ } }, "node_modules/@angular-eslint/bundled-angular-compiler": { - "version": "18.3.1", - "resolved": "https://npm.sinequa.com/@angular-eslint/bundled-angular-compiler/-/bundled-angular-compiler-18.3.1.tgz", - "integrity": "sha512-sikmkjfsXPpPTku1aQkQ1MNNEKGBgGGRvUN/WeNS9dhCJ4dxU3O7dZctt1aQWj+W3nbuUtDiimAWF5fZHGFE2Q==" + "version": "18.4.3", + "resolved": "https://npm.sinequa.com/@angular-eslint/bundled-angular-compiler/-/bundled-angular-compiler-18.4.3.tgz", + "integrity": "sha512-zdrA8mR98X+U4YgHzUKmivRU+PxzwOL/j8G7eTOvBuq8GPzsP+hvak+tyxlgeGm9HsvpFj9ERHLtJ0xDUPs8fg==", + "license": "MIT" }, "node_modules/@angular-eslint/eslint-plugin": { - "version": "18.3.1", - "resolved": "https://npm.sinequa.com/@angular-eslint/eslint-plugin/-/eslint-plugin-18.3.1.tgz", - "integrity": "sha512-MP4Nm+SHboF8KdnN0KpPEGAaTTzDLPm3+S/4W3Mg8onqWCyadyd4mActh9mK/pvCj8TVlb/SW1zeTtdMYhwonw==", + "version": "18.4.3", + "resolved": "https://npm.sinequa.com/@angular-eslint/eslint-plugin/-/eslint-plugin-18.4.3.tgz", + "integrity": "sha512-AyJbupiwTBR81P6T59v+aULEnPpZBCBxL2S5QFWfAhNCwWhcof4GihvdK2Z87yhvzDGeAzUFSWl/beJfeFa+PA==", + "license": "MIT", "dependencies": { - "@angular-eslint/bundled-angular-compiler": "18.3.1", - "@angular-eslint/utils": "18.3.1" + "@angular-eslint/bundled-angular-compiler": "18.4.3", + "@angular-eslint/utils": "18.4.3" }, "peerDependencies": { "@typescript-eslint/utils": "^7.11.0 || ^8.0.0", @@ -404,43 +364,45 @@ } }, "node_modules/@angular-eslint/eslint-plugin-template": { - "version": "18.3.1", - "resolved": "https://npm.sinequa.com/@angular-eslint/eslint-plugin-template/-/eslint-plugin-template-18.3.1.tgz", - "integrity": "sha512-hBJ3+f7VSidvrtYaXH7Vp0sWvblA9jLK2c6uQzhYGWdEDUcTg7g7VI9ThW39WvMbHqkyzNE4PPOynK69cBEDGg==", - "dependencies": { - "@angular-eslint/bundled-angular-compiler": "18.3.1", - "@angular-eslint/utils": "18.3.1", - "aria-query": "5.3.0", + "version": "18.4.3", + "resolved": "https://npm.sinequa.com/@angular-eslint/eslint-plugin-template/-/eslint-plugin-template-18.4.3.tgz", + "integrity": "sha512-ijGlX2N01ayMXTpeQivOA31AszO8OEbu9ZQUCxnu9AyMMhxyi2q50bujRChAvN9YXQfdQtbxuajxV6+aiWb5BQ==", + "license": "MIT", + "dependencies": { + "@angular-eslint/bundled-angular-compiler": "18.4.3", + "@angular-eslint/utils": "18.4.3", + "aria-query": "5.3.2", "axobject-query": "4.1.0" }, "peerDependencies": { + "@typescript-eslint/types": "^7.11.0 || ^8.0.0", "@typescript-eslint/utils": "^7.11.0 || ^8.0.0", "eslint": "^8.57.0 || ^9.0.0", "typescript": "*" } }, "node_modules/@angular-eslint/schematics": { - "version": "18.3.1", - "resolved": "https://npm.sinequa.com/@angular-eslint/schematics/-/schematics-18.3.1.tgz", - "integrity": "sha512-BTsQHDu7LjvXannJTb5BqMPCFIHRNN94eRyb60VfjJxB/ZFtsbAQDFFOi5lEZsRsd4mBeUMuL9mW4IMcPtUQ9Q==", + "version": "18.4.3", + "resolved": "https://npm.sinequa.com/@angular-eslint/schematics/-/schematics-18.4.3.tgz", + "integrity": "sha512-D5maKn5e6n58+8n7jLFLD4g+RGPOPeDSsvPc1sqial5tEKLxAJQJS9WZ28oef3bhkob6C60D+1H0mMmEEVvyVA==", + "license": "MIT", "dependencies": { - "@angular-eslint/eslint-plugin": "18.3.1", - "@angular-eslint/eslint-plugin-template": "18.3.1", - "ignore": "5.3.2", + "@angular-devkit/core": ">= 18.0.0 < 19.0.0", + "@angular-devkit/schematics": ">= 18.0.0 < 19.0.0", + "@angular-eslint/eslint-plugin": "18.4.3", + "@angular-eslint/eslint-plugin-template": "18.4.3", + "ignore": "6.0.2", "semver": "7.6.3", "strip-json-comments": "3.1.1" - }, - "peerDependencies": { - "@angular-devkit/core": ">= 18.0.0 < 19.0.0", - "@angular-devkit/schematics": ">= 18.0.0 < 19.0.0" } }, "node_modules/@angular-eslint/utils": { - "version": "18.3.1", - "resolved": "https://npm.sinequa.com/@angular-eslint/utils/-/utils-18.3.1.tgz", - "integrity": "sha512-sd9niZI7h9H2FQ7OLiQsLFBhjhRQTASh+Q0+4+hyjv9idbSHBJli8Gsi2fqj9zhtMKpAZFTrWzuLUpubJ9UYbA==", + "version": "18.4.3", + "resolved": "https://npm.sinequa.com/@angular-eslint/utils/-/utils-18.4.3.tgz", + "integrity": "sha512-w0bJ9+ELAEiPBSTPPm9bvDngfu1d8JbzUhvs2vU+z7sIz/HMwUZT5S4naypj2kNN0gZYGYrW0lt+HIbW87zTAQ==", + "license": "MIT", "dependencies": { - "@angular-eslint/bundled-angular-compiler": "18.3.1" + "@angular-eslint/bundled-angular-compiler": "18.4.3" }, "peerDependencies": { "@typescript-eslint/utils": "^7.11.0 || ^8.0.0", @@ -449,9 +411,10 @@ } }, "node_modules/@angular/animations": { - "version": "18.2.5", - "resolved": "https://npm.sinequa.com/@angular/animations/-/animations-18.2.5.tgz", - "integrity": "sha512-IlXtW/Nj48ZzjHUzH1TykZcSR64ScJx39T3IHnjV2z/bVATzZ36JGoadQHdqpJNKBodYJNgtJCGLCbgAvGWY2g==", + "version": "18.2.13", + "resolved": "https://npm.sinequa.com/@angular/animations/-/animations-18.2.13.tgz", + "integrity": "sha512-rG5J5Ek5Hg+Tz2NjkNOaG6PupiNK/lPfophXpsR1t/nWujqnMWX2krahD/i6kgD+jNWNKCJCYSOVvCx/BHOtKA==", + "license": "MIT", "dependencies": { "tslib": "^2.3.0" }, @@ -459,17 +422,18 @@ "node": "^18.19.1 || ^20.11.1 || >=22.0.0" }, "peerDependencies": { - "@angular/core": "18.2.5" + "@angular/core": "18.2.13" } }, "node_modules/@angular/build": { - "version": "18.2.11", - "resolved": "https://npm.sinequa.com/@angular/build/-/build-18.2.11.tgz", - "integrity": "sha512-AgirvSCmqUKiDE3C0rl3JA68OkOqQWDKUvjqRHXCkhxldLVOVoeIl87+jBYK/v9gcmk+K+ju+5wbGEfu1FjhiQ==", + "version": "18.2.12", + "resolved": "https://npm.sinequa.com/@angular/build/-/build-18.2.12.tgz", + "integrity": "sha512-4Ohz+OSILoL+cCAQ4UTiCT5v6pctu3fXNoNpTEUK46OmxELk9jDITO5rNyNS7TxBn9wY69kjX5VcDf7MenquFQ==", "dev": true, + "license": "MIT", "dependencies": { "@ampproject/remapping": "2.3.0", - "@angular-devkit/architect": "0.1802.11", + "@angular-devkit/architect": "0.1802.12", "@babel/core": "7.25.2", "@babel/helper-annotate-as-pure": "7.24.7", "@babel/helper-split-export-declaration": "7.24.7", @@ -530,52 +494,11 @@ } } }, - "node_modules/@angular/build/node_modules/@angular-devkit/architect": { - "version": "0.1802.11", - "resolved": "https://npm.sinequa.com/@angular-devkit/architect/-/architect-0.1802.11.tgz", - "integrity": "sha512-p+XIc/j51aI83ExNdeZwvkm1F4wkuKMGUUoj0MVUUi5E6NoiMlXYm6uU8+HbRvPBzGy5+3KOiGp3Fks0UmDSAA==", - "dev": true, - "dependencies": { - "@angular-devkit/core": "18.2.11", - "rxjs": "7.8.1" - }, - "engines": { - "node": "^18.19.1 || ^20.11.1 || >=22.0.0", - "npm": "^6.11.0 || ^7.5.6 || >=8.0.0", - "yarn": ">= 1.13.0" - } - }, - "node_modules/@angular/build/node_modules/@angular-devkit/core": { - "version": "18.2.11", - "resolved": "https://npm.sinequa.com/@angular-devkit/core/-/core-18.2.11.tgz", - "integrity": "sha512-H9P1shRGigORWJHUY2BRa2YurT+DVminrhuaYHsbhXBRsPmgB2Dx/30YLTnC1s5XmR9QIRUCsg/d3kyT1wd5Zg==", - "dev": true, - "dependencies": { - "ajv": "8.17.1", - "ajv-formats": "3.0.1", - "jsonc-parser": "3.3.1", - "picomatch": "4.0.2", - "rxjs": "7.8.1", - "source-map": "0.7.4" - }, - "engines": { - "node": "^18.19.1 || ^20.11.1 || >=22.0.0", - "npm": "^6.11.0 || ^7.5.6 || >=8.0.0", - "yarn": ">= 1.13.0" - }, - "peerDependencies": { - "chokidar": "^3.5.2" - }, - "peerDependenciesMeta": { - "chokidar": { - "optional": true - } - } - }, "node_modules/@angular/cdk": { - "version": "19.1.0", - "resolved": "https://npm.sinequa.com/@angular/cdk/-/cdk-19.1.0.tgz", - "integrity": "sha512-h7VSaMA/vFHb7u1bwoHKl3L3mZLIcXNZw6v7Nei9ITfEo1PfSKbrYhleeqpNikzE+LxNDKJrbZtpAckSYHblmA==", + "version": "19.1.1", + "resolved": "https://npm.sinequa.com/@angular/cdk/-/cdk-19.1.1.tgz", + "integrity": "sha512-MmfNB9iANuDN1TS+HL8uKqA3/7pdVeCRN+HdAcfqFrcqZmSUUSlYWy8PXqymmyeXxoSwt9p4I/6R0By03VoCMw==", + "license": "MIT", "dependencies": { "tslib": "^2.3.0" }, @@ -589,17 +512,18 @@ } }, "node_modules/@angular/cli": { - "version": "18.2.5", - "resolved": "https://npm.sinequa.com/@angular/cli/-/cli-18.2.5.tgz", - "integrity": "sha512-97uNs0HsOdnMaTlNJKFjIBUXw0wz43uYvSSKmIpBt7eq1LaPLju1G/qpDIHx2YwhMClPrXXrW2H/xdvqZiIw+w==", + "version": "18.2.12", + "resolved": "https://npm.sinequa.com/@angular/cli/-/cli-18.2.12.tgz", + "integrity": "sha512-xhuZ/b7IhqNw1MgXf+arWf4x+GfUSt/IwbdWU4+CO8A7h0Y46zQywouP/KUK3cMQZfVdHdciTBvlpF3vFacA6Q==", "dev": true, + "license": "MIT", "dependencies": { - "@angular-devkit/architect": "0.1802.5", - "@angular-devkit/core": "18.2.5", - "@angular-devkit/schematics": "18.2.5", + "@angular-devkit/architect": "0.1802.12", + "@angular-devkit/core": "18.2.12", + "@angular-devkit/schematics": "18.2.12", "@inquirer/prompts": "5.3.8", "@listr2/prompt-adapter-inquirer": "2.0.15", - "@schematics/angular": "18.2.5", + "@schematics/angular": "18.2.12", "@yarnpkg/lockfile": "1.1.0", "ini": "4.1.3", "jsonc-parser": "3.3.1", @@ -622,9 +546,10 @@ } }, "node_modules/@angular/common": { - "version": "18.2.5", - "resolved": "https://npm.sinequa.com/@angular/common/-/common-18.2.5.tgz", - "integrity": "sha512-m+KJrtbFXTE36jP/po6UAMeUR/enQxRHpVGLCRcIcE7VWVH1ZcOvoW1yqh2A6k+KxWXeajlq/Z04nnMhcoxMRw==", + "version": "18.2.13", + "resolved": "https://npm.sinequa.com/@angular/common/-/common-18.2.13.tgz", + "integrity": "sha512-4ZqrNp1PoZo7VNvW+sbSc2CB2axP1sCH2wXl8B0wdjsj8JY1hF1OhuugwhpAHtGxqewed2kCXayE+ZJqSTV4jw==", + "license": "MIT", "dependencies": { "tslib": "^2.3.0" }, @@ -632,14 +557,15 @@ "node": "^18.19.1 || ^20.11.1 || >=22.0.0" }, "peerDependencies": { - "@angular/core": "18.2.5", + "@angular/core": "18.2.13", "rxjs": "^6.5.3 || ^7.4.0" } }, "node_modules/@angular/compiler": { - "version": "18.2.5", - "resolved": "https://npm.sinequa.com/@angular/compiler/-/compiler-18.2.5.tgz", - "integrity": "sha512-vcqe9x4dGGAnMfPhEpcZyiSVgAiqJeK80LqP1vWoAmBR+HeOqAilSv6SflcLAtuTzwgzMMAvD2T+SMCgUvaqww==", + "version": "18.2.13", + "resolved": "https://npm.sinequa.com/@angular/compiler/-/compiler-18.2.13.tgz", + "integrity": "sha512-TzWcrkopyjFF+WeDr2cRe8CcHjU72KfYV3Sm2TkBkcXrkYX5sDjGWrBGrG3hRB4e4okqchrOCvm1MiTdy2vKMA==", + "license": "MIT", "dependencies": { "tslib": "^2.3.0" }, @@ -647,7 +573,7 @@ "node": "^18.19.1 || ^20.11.1 || >=22.0.0" }, "peerDependencies": { - "@angular/core": "18.2.5" + "@angular/core": "18.2.13" }, "peerDependenciesMeta": { "@angular/core": { @@ -656,14 +582,15 @@ } }, "node_modules/@angular/compiler-cli": { - "version": "18.2.5", - "resolved": "https://npm.sinequa.com/@angular/compiler-cli/-/compiler-cli-18.2.5.tgz", - "integrity": "sha512-CCCtZobUTUfId/RTYtuDCw5R1oK0w65hdAUMRP1MdGmd8bb8DKJA86u1QCWwozL3rbXlIIX4ognQ6urQ43k/Gw==", + "version": "18.2.13", + "resolved": "https://npm.sinequa.com/@angular/compiler-cli/-/compiler-cli-18.2.13.tgz", + "integrity": "sha512-DBSh4AQwkiJDSiVvJATRmjxf6wyUs9pwQLgaFdSlfuTRO+sdb0J2z1r3BYm8t0IqdoyXzdZq2YCH43EmyvD71g==", "dev": true, + "license": "MIT", "dependencies": { "@babel/core": "7.25.2", "@jridgewell/sourcemap-codec": "^1.4.14", - "chokidar": "^3.0.0", + "chokidar": "^4.0.0", "convert-source-map": "^1.5.1", "reflect-metadata": "^0.2.0", "semver": "^7.0.0", @@ -679,14 +606,15 @@ "node": "^18.19.1 || ^20.11.1 || >=22.0.0" }, "peerDependencies": { - "@angular/compiler": "18.2.5", + "@angular/compiler": "18.2.13", "typescript": ">=5.4 <5.6" } }, "node_modules/@angular/core": { - "version": "18.2.5", - "resolved": "https://npm.sinequa.com/@angular/core/-/core-18.2.5.tgz", - "integrity": "sha512-5BLVc5gXxzanQkADNS9WPsor3vNF5nQcyIHBi5VScErwM5vVZ7ATH1iZwaOg1ykDEVTFVhKDwD0X1aaqGDbhmQ==", + "version": "18.2.13", + "resolved": "https://npm.sinequa.com/@angular/core/-/core-18.2.13.tgz", + "integrity": "sha512-8mbWHMgO95OuFV1Ejy4oKmbe9NOJ3WazQf/f7wks8Bck7pcihd0IKhlPBNjFllbF5o+04EYSwFhEtvEgjMDClA==", + "license": "MIT", "dependencies": { "tslib": "^2.3.0" }, @@ -699,9 +627,10 @@ } }, "node_modules/@angular/forms": { - "version": "18.2.5", - "resolved": "https://npm.sinequa.com/@angular/forms/-/forms-18.2.5.tgz", - "integrity": "sha512-ohKeH+EZCCIyGSiFYlraWLzssGAZc13P92cuYpXB62322PkcA5u0IT72mML9JWGKRqF2zteVsw4koWHVxXM5mA==", + "version": "18.2.13", + "resolved": "https://npm.sinequa.com/@angular/forms/-/forms-18.2.13.tgz", + "integrity": "sha512-A67D867fu3DSBhdLWWZl/F5pr7v2+dRM2u3U7ZJ0ewh4a+sv+0yqWdJW+a8xIoiHxS+btGEJL2qAKJiH+MCFfg==", + "license": "MIT", "dependencies": { "tslib": "^2.3.0" }, @@ -709,16 +638,17 @@ "node": "^18.19.1 || ^20.11.1 || >=22.0.0" }, "peerDependencies": { - "@angular/common": "18.2.5", - "@angular/core": "18.2.5", - "@angular/platform-browser": "18.2.5", + "@angular/common": "18.2.13", + "@angular/core": "18.2.13", + "@angular/platform-browser": "18.2.13", "rxjs": "^6.5.3 || ^7.4.0" } }, "node_modules/@angular/platform-browser": { - "version": "18.2.5", - "resolved": "https://npm.sinequa.com/@angular/platform-browser/-/platform-browser-18.2.5.tgz", - "integrity": "sha512-PoX9idwnOpTJBlujzZ2nFGOsmCnZzOH7uNSWIR7trdoq0b1AFXfrxlCQ36qWamk7bbhJI4H28L8YTmKew/nXDA==", + "version": "18.2.13", + "resolved": "https://npm.sinequa.com/@angular/platform-browser/-/platform-browser-18.2.13.tgz", + "integrity": "sha512-tu7ZzY6qD3ATdWFzcTcsAKe7M6cJeWbT/4/bF9unyGO3XBPcNYDKoiz10+7ap2PUd0fmPwvuvTvSNJiFEBnB8Q==", + "license": "MIT", "dependencies": { "tslib": "^2.3.0" }, @@ -726,9 +656,9 @@ "node": "^18.19.1 || ^20.11.1 || >=22.0.0" }, "peerDependencies": { - "@angular/animations": "18.2.5", - "@angular/common": "18.2.5", - "@angular/core": "18.2.5" + "@angular/animations": "18.2.13", + "@angular/common": "18.2.13", + "@angular/core": "18.2.13" }, "peerDependenciesMeta": { "@angular/animations": { @@ -737,9 +667,10 @@ } }, "node_modules/@angular/platform-browser-dynamic": { - "version": "18.2.5", - "resolved": "https://npm.sinequa.com/@angular/platform-browser-dynamic/-/platform-browser-dynamic-18.2.5.tgz", - "integrity": "sha512-5u0IuAt1r5e2u2vSKhp3phnaf6hH89B/q7GErfPse1sdDfNI6wHVppxai28PAfAj9gwooJun6MjFWhJFLzS44A==", + "version": "18.2.13", + "resolved": "https://npm.sinequa.com/@angular/platform-browser-dynamic/-/platform-browser-dynamic-18.2.13.tgz", + "integrity": "sha512-kbQCf9+8EpuJC7buBxhSiwBtXvjAwAKh6MznD6zd2pyCYqfY6gfRCZQRtK59IfgVtKmEONWI9grEyNIRoTmqJg==", + "license": "MIT", "dependencies": { "tslib": "^2.3.0" }, @@ -747,16 +678,17 @@ "node": "^18.19.1 || ^20.11.1 || >=22.0.0" }, "peerDependencies": { - "@angular/common": "18.2.5", - "@angular/compiler": "18.2.5", - "@angular/core": "18.2.5", - "@angular/platform-browser": "18.2.5" + "@angular/common": "18.2.13", + "@angular/compiler": "18.2.13", + "@angular/core": "18.2.13", + "@angular/platform-browser": "18.2.13" } }, "node_modules/@angular/router": { - "version": "18.2.5", - "resolved": "https://npm.sinequa.com/@angular/router/-/router-18.2.5.tgz", - "integrity": "sha512-OjZV1PTiSwT0ytmR0ykveLYzs4uQWf0EuIclZmWqM/bb8Q4P+gJl7/sya05nGnZsj6nHGOL0e/LhSZ3N+5p6qg==", + "version": "18.2.13", + "resolved": "https://npm.sinequa.com/@angular/router/-/router-18.2.13.tgz", + "integrity": "sha512-VKmfgi/r/CkyBq9nChQ/ptmfu0JT/8ONnLVJ5H+SkFLRYJcIRyHLKjRihMCyVm6xM5yktOdCaW73NTQrFz7+bg==", + "license": "MIT", "dependencies": { "tslib": "^2.3.0" }, @@ -764,18 +696,20 @@ "node": "^18.19.1 || ^20.11.1 || >=22.0.0" }, "peerDependencies": { - "@angular/common": "18.2.5", - "@angular/core": "18.2.5", - "@angular/platform-browser": "18.2.5", + "@angular/common": "18.2.13", + "@angular/core": "18.2.13", + "@angular/platform-browser": "18.2.13", "rxjs": "^6.5.3 || ^7.4.0" } }, "node_modules/@babel/code-frame": { - "version": "7.24.7", - "resolved": "https://npm.sinequa.com/@babel/code-frame/-/code-frame-7.24.7.tgz", - "integrity": "sha512-BcYH1CVJBO9tvyIZ2jVeXgSIMvGZ2FDRvDdOIVQyuklNKSsx+eppDEBq/g47Ayw+RqNFE+URvOShmf+f/qwAlA==", + "version": "7.26.2", + "resolved": "https://npm.sinequa.com/@babel/code-frame/-/code-frame-7.26.2.tgz", + "integrity": "sha512-RJlIHRueQgwWitWgF8OdFYGZX328Ax5BCemNGlqHfplnRT9ESi8JkFlvaVYbS+UubVY6dpv87Fs2u5M29iNFVQ==", + "license": "MIT", "dependencies": { - "@babel/highlight": "^7.24.7", + "@babel/helper-validator-identifier": "^7.25.9", + "js-tokens": "^4.0.0", "picocolors": "^1.0.0" }, "engines": { @@ -783,10 +717,11 @@ } }, "node_modules/@babel/compat-data": { - "version": "7.25.4", - "resolved": "https://npm.sinequa.com/@babel/compat-data/-/compat-data-7.25.4.tgz", - "integrity": "sha512-+LGRog6RAsCJrrrg/IO6LGmpphNe5DiK30dGjCoxxeGv49B10/3XYGxPsAwrDlMFcFEvdAUavDT8r9k/hSyQqQ==", + "version": "7.26.5", + "resolved": "https://npm.sinequa.com/@babel/compat-data/-/compat-data-7.26.5.tgz", + "integrity": "sha512-XvcZi1KWf88RVbF9wn8MN6tYFloU5qX8KjuF3E1PVBmJ9eypXfs4GRiJwLuTZL0iSnJUKn1BFPa5BPZZJyFzPg==", "dev": true, + "license": "MIT", "engines": { "node": ">=6.9.0" } @@ -796,6 +731,7 @@ "resolved": "https://npm.sinequa.com/@babel/core/-/core-7.25.2.tgz", "integrity": "sha512-BBt3opiCOxUr9euZ5/ro/Xv8/V7yJ5bjYMqG/C1YAo8MIKAnumZalCN+msbci3Pigy4lIQfPUpfMM27HMGaYEA==", "dev": true, + "license": "MIT", "dependencies": { "@ampproject/remapping": "^2.2.0", "@babel/code-frame": "^7.24.7", @@ -825,13 +761,15 @@ "version": "2.0.0", "resolved": "https://npm.sinequa.com/convert-source-map/-/convert-source-map-2.0.0.tgz", "integrity": "sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/@babel/core/node_modules/semver": { "version": "6.3.1", "resolved": "https://npm.sinequa.com/semver/-/semver-6.3.1.tgz", "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", "dev": true, + "license": "ISC", "bin": { "semver": "bin/semver.js" } @@ -841,6 +779,7 @@ "resolved": "https://npm.sinequa.com/@babel/generator/-/generator-7.25.0.tgz", "integrity": "sha512-3LEEcj3PVW8pW2R1SR1M89g/qrYk/m/mB/tLqn7dn4sbBUQyTqnlod+II2U4dqiGtUmkcnAmkMDralTFZttRiw==", "dev": true, + "license": "MIT", "dependencies": { "@babel/types": "^7.25.0", "@jridgewell/gen-mapping": "^0.3.5", @@ -856,6 +795,7 @@ "resolved": "https://npm.sinequa.com/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.24.7.tgz", "integrity": "sha512-BaDeOonYvhdKw+JoMVkAixAAJzG2jVPIwWoKBPdYuY9b452e2rPuI9QPYh3KpofZ3pW2akOmwZLOiOsHMiqRAg==", "dev": true, + "license": "MIT", "dependencies": { "@babel/types": "^7.24.7" }, @@ -863,28 +803,16 @@ "node": ">=6.9.0" } }, - "node_modules/@babel/helper-builder-binary-assignment-operator-visitor": { - "version": "7.24.7", - "resolved": "https://npm.sinequa.com/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.24.7.tgz", - "integrity": "sha512-xZeCVVdwb4MsDBkkyZ64tReWYrLRHlMN72vP7Bdm3OUOuyFZExhsHUUnuWnm2/XOlAJzR0LfPpB56WXZn0X/lA==", - "dev": true, - "dependencies": { - "@babel/traverse": "^7.24.7", - "@babel/types": "^7.24.7" - }, - "engines": { - "node": ">=6.9.0" - } - }, "node_modules/@babel/helper-compilation-targets": { - "version": "7.25.2", - "resolved": "https://npm.sinequa.com/@babel/helper-compilation-targets/-/helper-compilation-targets-7.25.2.tgz", - "integrity": "sha512-U2U5LsSaZ7TAt3cfaymQ8WHh0pxvdHoEk6HVpaexxixjyEquMh0L0YNJNM6CTGKMXV1iksi0iZkGw4AcFkPaaw==", + "version": "7.26.5", + "resolved": "https://npm.sinequa.com/@babel/helper-compilation-targets/-/helper-compilation-targets-7.26.5.tgz", + "integrity": "sha512-IXuyn5EkouFJscIDuFF5EsiSolseme1s0CZB+QxVugqJLYmKdxI1VfIBOst0SUu4rnk2Z7kqTwmoO1lp3HIfnA==", "dev": true, + "license": "MIT", "dependencies": { - "@babel/compat-data": "^7.25.2", - "@babel/helper-validator-option": "^7.24.8", - "browserslist": "^4.23.1", + "@babel/compat-data": "^7.26.5", + "@babel/helper-validator-option": "^7.25.9", + "browserslist": "^4.24.0", "lru-cache": "^5.1.1", "semver": "^6.3.1" }, @@ -897,22 +825,24 @@ "resolved": "https://npm.sinequa.com/semver/-/semver-6.3.1.tgz", "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", "dev": true, + "license": "ISC", "bin": { "semver": "bin/semver.js" } }, "node_modules/@babel/helper-create-class-features-plugin": { - "version": "7.25.4", - "resolved": "https://npm.sinequa.com/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.25.4.tgz", - "integrity": "sha512-ro/bFs3/84MDgDmMwbcHgDa8/E6J3QKNTk4xJJnVeFtGE+tL0K26E3pNxhYz2b67fJpt7Aphw5XcploKXuCvCQ==", - "dev": true, - "dependencies": { - "@babel/helper-annotate-as-pure": "^7.24.7", - "@babel/helper-member-expression-to-functions": "^7.24.8", - "@babel/helper-optimise-call-expression": "^7.24.7", - "@babel/helper-replace-supers": "^7.25.0", - "@babel/helper-skip-transparent-expression-wrappers": "^7.24.7", - "@babel/traverse": "^7.25.4", + "version": "7.25.9", + "resolved": "https://npm.sinequa.com/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.25.9.tgz", + "integrity": "sha512-UTZQMvt0d/rSz6KI+qdu7GQze5TIajwTS++GUozlw8VBJDEOAqSXwm1WvmYEZwqdqSGQshRocPDqrt4HBZB3fQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.25.9", + "@babel/helper-member-expression-to-functions": "^7.25.9", + "@babel/helper-optimise-call-expression": "^7.25.9", + "@babel/helper-replace-supers": "^7.25.9", + "@babel/helper-skip-transparent-expression-wrappers": "^7.25.9", + "@babel/traverse": "^7.25.9", "semver": "^6.3.1" }, "engines": { @@ -922,23 +852,38 @@ "@babel/core": "^7.0.0" } }, + "node_modules/@babel/helper-create-class-features-plugin/node_modules/@babel/helper-annotate-as-pure": { + "version": "7.25.9", + "resolved": "https://npm.sinequa.com/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.25.9.tgz", + "integrity": "sha512-gv7320KBUFJz1RnylIg5WWYPRXKZ884AGkYpgpWW02TH66Dl+HaC1t1CKd0z3R4b6hdYEcmrNZHUmfCP+1u3/g==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/types": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + } + }, "node_modules/@babel/helper-create-class-features-plugin/node_modules/semver": { "version": "6.3.1", "resolved": "https://npm.sinequa.com/semver/-/semver-6.3.1.tgz", "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", "dev": true, + "license": "ISC", "bin": { "semver": "bin/semver.js" } }, "node_modules/@babel/helper-create-regexp-features-plugin": { - "version": "7.25.2", - "resolved": "https://npm.sinequa.com/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.25.2.tgz", - "integrity": "sha512-+wqVGP+DFmqwFD3EH6TMTfUNeqDehV3E/dl+Sd54eaXqm17tEUNbEIn4sVivVowbvUpOtIGxdo3GoXyDH9N/9g==", + "version": "7.26.3", + "resolved": "https://npm.sinequa.com/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.26.3.tgz", + "integrity": "sha512-G7ZRb40uUgdKOQqPLjfD12ZmGA54PzqDFUv2BKImnC9QIfGhIHKvVML0oN8IUiDq4iRqpq74ABpvOaerfWdong==", "dev": true, + "license": "MIT", "dependencies": { - "@babel/helper-annotate-as-pure": "^7.24.7", - "regexpu-core": "^5.3.1", + "@babel/helper-annotate-as-pure": "^7.25.9", + "regexpu-core": "^6.2.0", "semver": "^6.3.1" }, "engines": { @@ -948,20 +893,35 @@ "@babel/core": "^7.0.0" } }, + "node_modules/@babel/helper-create-regexp-features-plugin/node_modules/@babel/helper-annotate-as-pure": { + "version": "7.25.9", + "resolved": "https://npm.sinequa.com/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.25.9.tgz", + "integrity": "sha512-gv7320KBUFJz1RnylIg5WWYPRXKZ884AGkYpgpWW02TH66Dl+HaC1t1CKd0z3R4b6hdYEcmrNZHUmfCP+1u3/g==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/types": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + } + }, "node_modules/@babel/helper-create-regexp-features-plugin/node_modules/semver": { "version": "6.3.1", "resolved": "https://npm.sinequa.com/semver/-/semver-6.3.1.tgz", "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", "dev": true, + "license": "ISC", "bin": { "semver": "bin/semver.js" } }, "node_modules/@babel/helper-define-polyfill-provider": { - "version": "0.6.2", - "resolved": "https://npm.sinequa.com/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.6.2.tgz", - "integrity": "sha512-LV76g+C502biUK6AyZ3LK10vDpDyCzZnhZFXkH1L75zHPj68+qc8Zfpx2th+gzwA2MzyK+1g/3EPl62yFnVttQ==", + "version": "0.6.3", + "resolved": "https://npm.sinequa.com/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.6.3.tgz", + "integrity": "sha512-HK7Bi+Hj6H+VTHA3ZvBis7V/6hu9QuTrnMXNybfUf2iiuU/N97I8VjB+KbhFF8Rld/Lx5MzoCwPCpPjfK+n8Cg==", "dev": true, + "license": "MIT", "dependencies": { "@babel/helper-compilation-targets": "^7.22.6", "@babel/helper-plugin-utils": "^7.22.5", @@ -974,41 +934,43 @@ } }, "node_modules/@babel/helper-member-expression-to-functions": { - "version": "7.24.8", - "resolved": "https://npm.sinequa.com/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.24.8.tgz", - "integrity": "sha512-LABppdt+Lp/RlBxqrh4qgf1oEH/WxdzQNDJIu5gC/W1GyvPVrOBiItmmM8wan2fm4oYqFuFfkXmlGpLQhPY8CA==", + "version": "7.25.9", + "resolved": "https://npm.sinequa.com/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.25.9.tgz", + "integrity": "sha512-wbfdZ9w5vk0C0oyHqAJbc62+vet5prjj01jjJ8sKn3j9h3MQQlflEdXYvuqRWjHnM12coDEqiC1IRCi0U/EKwQ==", "dev": true, + "license": "MIT", "dependencies": { - "@babel/traverse": "^7.24.8", - "@babel/types": "^7.24.8" + "@babel/traverse": "^7.25.9", + "@babel/types": "^7.25.9" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-module-imports": { - "version": "7.24.7", - "resolved": "https://npm.sinequa.com/@babel/helper-module-imports/-/helper-module-imports-7.24.7.tgz", - "integrity": "sha512-8AyH3C+74cgCVVXow/myrynrAGv+nTVg5vKu2nZph9x7RcRwzmh0VFallJuFTZ9mx6u4eSdXZfcOzSqTUm0HCA==", + "version": "7.25.9", + "resolved": "https://npm.sinequa.com/@babel/helper-module-imports/-/helper-module-imports-7.25.9.tgz", + "integrity": "sha512-tnUA4RsrmflIM6W6RFTLFSXITtl0wKjgpnLgXyowocVPrbYrLUXSBXDgTs8BlbmIzIdlBySRQjINYs2BAkiLtw==", "dev": true, + "license": "MIT", "dependencies": { - "@babel/traverse": "^7.24.7", - "@babel/types": "^7.24.7" + "@babel/traverse": "^7.25.9", + "@babel/types": "^7.25.9" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-module-transforms": { - "version": "7.25.2", - "resolved": "https://npm.sinequa.com/@babel/helper-module-transforms/-/helper-module-transforms-7.25.2.tgz", - "integrity": "sha512-BjyRAbix6j/wv83ftcVJmBt72QtHI56C7JXZoG2xATiLpmoC7dpd8WnkikExHDVPpi/3qCmO6WY1EaXOluiecQ==", + "version": "7.26.0", + "resolved": "https://npm.sinequa.com/@babel/helper-module-transforms/-/helper-module-transforms-7.26.0.tgz", + "integrity": "sha512-xO+xu6B5K2czEnQye6BHA7DolFFmS3LB7stHZFaOLb1pAwO1HWLS8fXA+eh0A2yIvltPVmx3eNNDBJA2SLHXFw==", "dev": true, + "license": "MIT", "dependencies": { - "@babel/helper-module-imports": "^7.24.7", - "@babel/helper-simple-access": "^7.24.7", - "@babel/helper-validator-identifier": "^7.24.7", - "@babel/traverse": "^7.25.2" + "@babel/helper-module-imports": "^7.25.9", + "@babel/helper-validator-identifier": "^7.25.9", + "@babel/traverse": "^7.25.9" }, "engines": { "node": ">=6.9.0" @@ -1018,35 +980,38 @@ } }, "node_modules/@babel/helper-optimise-call-expression": { - "version": "7.24.7", - "resolved": "https://npm.sinequa.com/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.24.7.tgz", - "integrity": "sha512-jKiTsW2xmWwxT1ixIdfXUZp+P5yURx2suzLZr5Hi64rURpDYdMW0pv+Uf17EYk2Rd428Lx4tLsnjGJzYKDM/6A==", + "version": "7.25.9", + "resolved": "https://npm.sinequa.com/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.25.9.tgz", + "integrity": "sha512-FIpuNaz5ow8VyrYcnXQTDRGvV6tTjkNtCK/RYNDXGSLlUD6cBuQTSw43CShGxjvfBTfcUA/r6UhUCbtYqkhcuQ==", "dev": true, + "license": "MIT", "dependencies": { - "@babel/types": "^7.24.7" + "@babel/types": "^7.25.9" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-plugin-utils": { - "version": "7.24.8", - "resolved": "https://npm.sinequa.com/@babel/helper-plugin-utils/-/helper-plugin-utils-7.24.8.tgz", - "integrity": "sha512-FFWx5142D8h2Mgr/iPVGH5G7w6jDn4jUSpZTyDnQO0Yn7Ks2Kuz6Pci8H6MPCoUJegd/UZQ3tAvfLCxQSnWWwg==", + "version": "7.26.5", + "resolved": "https://npm.sinequa.com/@babel/helper-plugin-utils/-/helper-plugin-utils-7.26.5.tgz", + "integrity": "sha512-RS+jZcRdZdRFzMyr+wcsaqOmld1/EqTghfaBGQQd/WnRdzdlvSZ//kF7U8VQTxf1ynZ4cjUcYgjVGx13ewNPMg==", "dev": true, + "license": "MIT", "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-remap-async-to-generator": { - "version": "7.25.0", - "resolved": "https://npm.sinequa.com/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.25.0.tgz", - "integrity": "sha512-NhavI2eWEIz/H9dbrG0TuOicDhNexze43i5z7lEqwYm0WEZVTwnPpA0EafUTP7+6/W79HWIP2cTe3Z5NiSTVpw==", + "version": "7.25.9", + "resolved": "https://npm.sinequa.com/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.25.9.tgz", + "integrity": "sha512-IZtukuUeBbhgOcaW2s06OXTzVNJR0ybm4W5xC1opWFFJMZbwRj5LCk+ByYH7WdZPZTt8KnFwA8pvjN2yqcPlgw==", "dev": true, + "license": "MIT", "dependencies": { - "@babel/helper-annotate-as-pure": "^7.24.7", - "@babel/helper-wrap-function": "^7.25.0", - "@babel/traverse": "^7.25.0" + "@babel/helper-annotate-as-pure": "^7.25.9", + "@babel/helper-wrap-function": "^7.25.9", + "@babel/traverse": "^7.25.9" }, "engines": { "node": ">=6.9.0" @@ -1055,44 +1020,46 @@ "@babel/core": "^7.0.0" } }, - "node_modules/@babel/helper-replace-supers": { - "version": "7.25.0", - "resolved": "https://npm.sinequa.com/@babel/helper-replace-supers/-/helper-replace-supers-7.25.0.tgz", - "integrity": "sha512-q688zIvQVYtZu+i2PsdIu/uWGRpfxzr5WESsfpShfZECkO+d2o+WROWezCi/Q6kJ0tfPa5+pUGUlfx2HhrA3Bg==", + "node_modules/@babel/helper-remap-async-to-generator/node_modules/@babel/helper-annotate-as-pure": { + "version": "7.25.9", + "resolved": "https://npm.sinequa.com/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.25.9.tgz", + "integrity": "sha512-gv7320KBUFJz1RnylIg5WWYPRXKZ884AGkYpgpWW02TH66Dl+HaC1t1CKd0z3R4b6hdYEcmrNZHUmfCP+1u3/g==", "dev": true, + "license": "MIT", "dependencies": { - "@babel/helper-member-expression-to-functions": "^7.24.8", - "@babel/helper-optimise-call-expression": "^7.24.7", - "@babel/traverse": "^7.25.0" + "@babel/types": "^7.25.9" }, "engines": { "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0" } }, - "node_modules/@babel/helper-simple-access": { - "version": "7.24.7", - "resolved": "https://npm.sinequa.com/@babel/helper-simple-access/-/helper-simple-access-7.24.7.tgz", - "integrity": "sha512-zBAIvbCMh5Ts+b86r/CjU+4XGYIs+R1j951gxI3KmmxBMhCg4oQMsv6ZXQ64XOm/cvzfU1FmoCyt6+owc5QMYg==", + "node_modules/@babel/helper-replace-supers": { + "version": "7.26.5", + "resolved": "https://npm.sinequa.com/@babel/helper-replace-supers/-/helper-replace-supers-7.26.5.tgz", + "integrity": "sha512-bJ6iIVdYX1YooY2X7w1q6VITt+LnUILtNk7zT78ykuwStx8BauCzxvFqFaHjOpW1bVnSUM1PN1f0p5P21wHxvg==", "dev": true, + "license": "MIT", "dependencies": { - "@babel/traverse": "^7.24.7", - "@babel/types": "^7.24.7" + "@babel/helper-member-expression-to-functions": "^7.25.9", + "@babel/helper-optimise-call-expression": "^7.25.9", + "@babel/traverse": "^7.26.5" }, "engines": { "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" } }, "node_modules/@babel/helper-skip-transparent-expression-wrappers": { - "version": "7.24.7", - "resolved": "https://npm.sinequa.com/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.24.7.tgz", - "integrity": "sha512-IO+DLT3LQUElMbpzlatRASEyQtfhSE0+m465v++3jyyXeBTBUjtVZg28/gHeV5mrTJqvEKhKroBGAvhW+qPHiQ==", + "version": "7.25.9", + "resolved": "https://npm.sinequa.com/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.25.9.tgz", + "integrity": "sha512-K4Du3BFa3gvyhzgPcntrkDgZzQaq6uozzcpGbOO1OEJaI+EJdqWIMTLgFgQf6lrfiDFo5FU+BxKepI9RmZqahA==", "dev": true, + "license": "MIT", "dependencies": { - "@babel/traverse": "^7.24.7", - "@babel/types": "^7.24.7" + "@babel/traverse": "^7.25.9", + "@babel/types": "^7.25.9" }, "engines": { "node": ">=6.9.0" @@ -1103,6 +1070,7 @@ "resolved": "https://npm.sinequa.com/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.24.7.tgz", "integrity": "sha512-oy5V7pD+UvfkEATUKvIjvIAH/xCzfsFVw7ygW2SI6NClZzquT+mwdTfgfdbUiceh6iQO0CHtCPsyze/MZ2YbAA==", "dev": true, + "license": "MIT", "dependencies": { "@babel/types": "^7.24.7" }, @@ -1111,79 +1079,71 @@ } }, "node_modules/@babel/helper-string-parser": { - "version": "7.24.8", - "resolved": "https://npm.sinequa.com/@babel/helper-string-parser/-/helper-string-parser-7.24.8.tgz", - "integrity": "sha512-pO9KhhRcuUyGnJWwyEgnRJTSIZHiT+vMD0kPeD+so0l7mxkMT19g3pjY9GTnHySck/hDzq+dtW/4VgnMkippsQ==", + "version": "7.25.9", + "resolved": "https://npm.sinequa.com/@babel/helper-string-parser/-/helper-string-parser-7.25.9.tgz", + "integrity": "sha512-4A/SCr/2KLd5jrtOMFzaKjVtAei3+2r/NChoBNoZ3EyP/+GlhoaEGoWOZUmFmoITP7zOJyHIMm+DYRd8o3PvHA==", "dev": true, + "license": "MIT", "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-validator-identifier": { - "version": "7.24.7", - "resolved": "https://npm.sinequa.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.24.7.tgz", - "integrity": "sha512-rR+PBcQ1SMQDDyF6X0wxtG8QyLCgUB0eRAGguqRLfkCA87l7yAP7ehq8SNj96OOGTO8OBV70KhuFYcIkHXOg0w==", + "version": "7.25.9", + "resolved": "https://npm.sinequa.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.25.9.tgz", + "integrity": "sha512-Ed61U6XJc3CVRfkERJWDz4dJwKe7iLmmJsbOGu9wSloNSFttHV0I8g6UAgb7qnK5ly5bGLPd4oXZlxCdANBOWQ==", + "license": "MIT", "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-validator-option": { - "version": "7.24.8", - "resolved": "https://npm.sinequa.com/@babel/helper-validator-option/-/helper-validator-option-7.24.8.tgz", - "integrity": "sha512-xb8t9tD1MHLungh/AIoWYN+gVHaB9kwlu8gffXGSt3FFEIT7RjS+xWbc2vUD1UTZdIpKj/ab3rdqJ7ufngyi2Q==", + "version": "7.25.9", + "resolved": "https://npm.sinequa.com/@babel/helper-validator-option/-/helper-validator-option-7.25.9.tgz", + "integrity": "sha512-e/zv1co8pp55dNdEcCynfj9X7nyUKUXoUEwfXqaZt0omVOmDe9oOTdKStH4GmAw6zxMFs50ZayuMfHDKlO7Tfw==", "dev": true, + "license": "MIT", "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-wrap-function": { - "version": "7.25.0", - "resolved": "https://npm.sinequa.com/@babel/helper-wrap-function/-/helper-wrap-function-7.25.0.tgz", - "integrity": "sha512-s6Q1ebqutSiZnEjaofc/UKDyC4SbzV5n5SrA2Gq8UawLycr3i04f1dX4OzoQVnexm6aOCh37SQNYlJ/8Ku+PMQ==", + "version": "7.25.9", + "resolved": "https://npm.sinequa.com/@babel/helper-wrap-function/-/helper-wrap-function-7.25.9.tgz", + "integrity": "sha512-ETzz9UTjQSTmw39GboatdymDq4XIQbR8ySgVrylRhPOFpsd+JrKHIuF0de7GCWmem+T4uC5z7EZguod7Wj4A4g==", "dev": true, + "license": "MIT", "dependencies": { - "@babel/template": "^7.25.0", - "@babel/traverse": "^7.25.0", - "@babel/types": "^7.25.0" + "@babel/template": "^7.25.9", + "@babel/traverse": "^7.25.9", + "@babel/types": "^7.25.9" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helpers": { - "version": "7.25.6", - "resolved": "https://npm.sinequa.com/@babel/helpers/-/helpers-7.25.6.tgz", - "integrity": "sha512-Xg0tn4HcfTijTwfDwYlvVCl43V6h4KyVVX2aEm4qdO/PC6L2YvzLHFdmxhoeSA3eslcE6+ZVXHgWwopXYLNq4Q==", + "version": "7.26.0", + "resolved": "https://npm.sinequa.com/@babel/helpers/-/helpers-7.26.0.tgz", + "integrity": "sha512-tbhNuIxNcVb21pInl3ZSjksLCvgdZy9KwJ8brv993QtIVKJBBkYXz4q4ZbAv31GdnC+R90np23L5FbEBlthAEw==", "dev": true, + "license": "MIT", "dependencies": { - "@babel/template": "^7.25.0", - "@babel/types": "^7.25.6" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/highlight": { - "version": "7.24.7", - "resolved": "https://npm.sinequa.com/@babel/highlight/-/highlight-7.24.7.tgz", - "integrity": "sha512-EStJpq4OuY8xYfhGVXngigBJRWxftKX9ksiGDnmlY3o7B/V7KIAc9X4oiK87uPJSc/vs5L869bem5fhZa8caZw==", - "dependencies": { - "@babel/helper-validator-identifier": "^7.24.7", - "chalk": "^2.4.2", - "js-tokens": "^4.0.0", - "picocolors": "^1.0.0" + "@babel/template": "^7.25.9", + "@babel/types": "^7.26.0" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/parser": { - "version": "7.25.6", - "resolved": "https://npm.sinequa.com/@babel/parser/-/parser-7.25.6.tgz", - "integrity": "sha512-trGdfBdbD0l1ZPmcJ83eNxB9rbEax4ALFTF7fN386TMYbeCQbyme5cOEXQhbGXKebwGaB/J52w1mrklMcbgy6Q==", + "version": "7.26.5", + "resolved": "https://npm.sinequa.com/@babel/parser/-/parser-7.26.5.tgz", + "integrity": "sha512-SRJ4jYmXRqV1/Xc+TIVG84WjHBXKlxO9sHQnA2Pf12QQEAp1LOh6kDzNHXcUnbH1QI0FDoPPVOt+vyUDucxpaw==", "dev": true, + "license": "MIT", "dependencies": { - "@babel/types": "^7.25.6" + "@babel/types": "^7.26.5" }, "bin": { "parser": "bin/babel-parser.js" @@ -1193,13 +1153,14 @@ } }, "node_modules/@babel/plugin-bugfix-firefox-class-in-computed-class-key": { - "version": "7.25.3", - "resolved": "https://npm.sinequa.com/@babel/plugin-bugfix-firefox-class-in-computed-class-key/-/plugin-bugfix-firefox-class-in-computed-class-key-7.25.3.tgz", - "integrity": "sha512-wUrcsxZg6rqBXG05HG1FPYgsP6EvwF4WpBbxIpWIIYnH8wG0gzx3yZY3dtEHas4sTAOGkbTsc9EGPxwff8lRoA==", + "version": "7.25.9", + "resolved": "https://npm.sinequa.com/@babel/plugin-bugfix-firefox-class-in-computed-class-key/-/plugin-bugfix-firefox-class-in-computed-class-key-7.25.9.tgz", + "integrity": "sha512-ZkRyVkThtxQ/J6nv3JFYv1RYY+JT5BvU0y3k5bWrmuG4woXypRa4PXmm9RhOwodRkYFWqC0C0cqcJ4OqR7kW+g==", "dev": true, + "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.24.8", - "@babel/traverse": "^7.25.3" + "@babel/helper-plugin-utils": "^7.25.9", + "@babel/traverse": "^7.25.9" }, "engines": { "node": ">=6.9.0" @@ -1209,12 +1170,13 @@ } }, "node_modules/@babel/plugin-bugfix-safari-class-field-initializer-scope": { - "version": "7.25.0", - "resolved": "https://npm.sinequa.com/@babel/plugin-bugfix-safari-class-field-initializer-scope/-/plugin-bugfix-safari-class-field-initializer-scope-7.25.0.tgz", - "integrity": "sha512-Bm4bH2qsX880b/3ziJ8KD711LT7z4u8CFudmjqle65AZj/HNUFhEf90dqYv6O86buWvSBmeQDjv0Tn2aF/bIBA==", + "version": "7.25.9", + "resolved": "https://npm.sinequa.com/@babel/plugin-bugfix-safari-class-field-initializer-scope/-/plugin-bugfix-safari-class-field-initializer-scope-7.25.9.tgz", + "integrity": "sha512-MrGRLZxLD/Zjj0gdU15dfs+HH/OXvnw/U4jJD8vpcP2CJQapPEv1IWwjc/qMg7ItBlPwSv1hRBbb7LeuANdcnw==", "dev": true, + "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.24.8" + "@babel/helper-plugin-utils": "^7.25.9" }, "engines": { "node": ">=6.9.0" @@ -1224,12 +1186,13 @@ } }, "node_modules/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": { - "version": "7.25.0", - "resolved": "https://npm.sinequa.com/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression/-/plugin-bugfix-safari-id-destructuring-collision-in-function-expression-7.25.0.tgz", - "integrity": "sha512-lXwdNZtTmeVOOFtwM/WDe7yg1PL8sYhRk/XH0FzbR2HDQ0xC+EnQ/JHeoMYSavtU115tnUk0q9CDyq8si+LMAA==", + "version": "7.25.9", + "resolved": "https://npm.sinequa.com/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression/-/plugin-bugfix-safari-id-destructuring-collision-in-function-expression-7.25.9.tgz", + "integrity": "sha512-2qUwwfAFpJLZqxd02YW9btUCZHl+RFvdDkNfZwaIJrvB8Tesjsk8pEQkTvGwZXLqXUx/2oyY3ySRhm6HOXuCug==", "dev": true, + "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.24.8" + "@babel/helper-plugin-utils": "^7.25.9" }, "engines": { "node": ">=6.9.0" @@ -1239,14 +1202,15 @@ } }, "node_modules/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": { - "version": "7.24.7", - "resolved": "https://npm.sinequa.com/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.24.7.tgz", - "integrity": "sha512-+izXIbke1T33mY4MSNnrqhPXDz01WYhEf3yF5NbnUtkiNnm+XBZJl3kNfoK6NKmYlz/D07+l2GWVK/QfDkNCuQ==", + "version": "7.25.9", + "resolved": "https://npm.sinequa.com/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.25.9.tgz", + "integrity": "sha512-6xWgLZTJXwilVjlnV7ospI3xi+sl8lN8rXXbBD6vYn3UYDlGsag8wrZkKcSI8G6KgqKP7vNFaDgeDnfAABq61g==", "dev": true, + "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.24.7", - "@babel/helper-skip-transparent-expression-wrappers": "^7.24.7", - "@babel/plugin-transform-optional-chaining": "^7.24.7" + "@babel/helper-plugin-utils": "^7.25.9", + "@babel/helper-skip-transparent-expression-wrappers": "^7.25.9", + "@babel/plugin-transform-optional-chaining": "^7.25.9" }, "engines": { "node": ">=6.9.0" @@ -1256,13 +1220,14 @@ } }, "node_modules/@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly": { - "version": "7.25.0", - "resolved": "https://npm.sinequa.com/@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly/-/plugin-bugfix-v8-static-class-fields-redefine-readonly-7.25.0.tgz", - "integrity": "sha512-tggFrk1AIShG/RUQbEwt2Tr/E+ObkfwrPjR6BjbRvsx24+PSjK8zrq0GWPNCjo8qpRx4DuJzlcvWJqlm+0h3kw==", + "version": "7.25.9", + "resolved": "https://npm.sinequa.com/@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly/-/plugin-bugfix-v8-static-class-fields-redefine-readonly-7.25.9.tgz", + "integrity": "sha512-aLnMXYPnzwwqhYSCyXfKkIkYgJ8zv9RK+roo9DkTXz38ynIhd9XCbN08s3MGvqL2MYGVUGdRQLL/JqBIeJhJBg==", "dev": true, + "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.24.8", - "@babel/traverse": "^7.25.0" + "@babel/helper-plugin-utils": "^7.25.9", + "@babel/traverse": "^7.25.9" }, "engines": { "node": ">=6.9.0" @@ -1276,6 +1241,7 @@ "resolved": "https://npm.sinequa.com/@babel/plugin-proposal-private-property-in-object/-/plugin-proposal-private-property-in-object-7.21.0-placeholder-for-preset-env.2.tgz", "integrity": "sha512-SOSkfJDddaM7mak6cPEpswyTRnuRltl429hMraQEglW+OkovnCzsiszTmsrlY//qLFjCpQDFRvjdm2wA5pPm9w==", "dev": true, + "license": "MIT", "engines": { "node": ">=6.9.0" }, @@ -1288,6 +1254,7 @@ "resolved": "https://npm.sinequa.com/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.8.4.tgz", "integrity": "sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==", "dev": true, + "license": "MIT", "dependencies": { "@babel/helper-plugin-utils": "^7.8.0" }, @@ -1300,6 +1267,7 @@ "resolved": "https://npm.sinequa.com/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.12.13.tgz", "integrity": "sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA==", "dev": true, + "license": "MIT", "dependencies": { "@babel/helper-plugin-utils": "^7.12.13" }, @@ -1312,6 +1280,7 @@ "resolved": "https://npm.sinequa.com/@babel/plugin-syntax-class-static-block/-/plugin-syntax-class-static-block-7.14.5.tgz", "integrity": "sha512-b+YyPmr6ldyNnM6sqYeMWE+bgJcJpO6yS4QD7ymxgH34GBPNDM/THBh8iunyvKIZztiwLH4CJZ0RxTk9emgpjw==", "dev": true, + "license": "MIT", "dependencies": { "@babel/helper-plugin-utils": "^7.14.5" }, @@ -1327,6 +1296,7 @@ "resolved": "https://npm.sinequa.com/@babel/plugin-syntax-dynamic-import/-/plugin-syntax-dynamic-import-7.8.3.tgz", "integrity": "sha512-5gdGbFon+PszYzqs83S3E5mpi7/y/8M9eC90MRTZfduQOYW76ig6SOSPNe41IG5LoP3FGBn2N0RjVDSQiS94kQ==", "dev": true, + "license": "MIT", "dependencies": { "@babel/helper-plugin-utils": "^7.8.0" }, @@ -1339,6 +1309,7 @@ "resolved": "https://npm.sinequa.com/@babel/plugin-syntax-export-namespace-from/-/plugin-syntax-export-namespace-from-7.8.3.tgz", "integrity": "sha512-MXf5laXo6c1IbEbegDmzGPwGNTsHZmEy6QGznu5Sh2UCWvueywb2ee+CCE4zQiZstxU9BMoQO9i6zUFSY0Kj0Q==", "dev": true, + "license": "MIT", "dependencies": { "@babel/helper-plugin-utils": "^7.8.3" }, @@ -1347,12 +1318,13 @@ } }, "node_modules/@babel/plugin-syntax-import-assertions": { - "version": "7.25.6", - "resolved": "https://npm.sinequa.com/@babel/plugin-syntax-import-assertions/-/plugin-syntax-import-assertions-7.25.6.tgz", - "integrity": "sha512-aABl0jHw9bZ2karQ/uUD6XP4u0SG22SJrOHFoL6XB1R7dTovOP4TzTlsxOYC5yQ1pdscVK2JTUnF6QL3ARoAiQ==", + "version": "7.26.0", + "resolved": "https://npm.sinequa.com/@babel/plugin-syntax-import-assertions/-/plugin-syntax-import-assertions-7.26.0.tgz", + "integrity": "sha512-QCWT5Hh830hK5EQa7XzuqIkQU9tT/whqbDz7kuaZMHFl1inRRg7JnuAEOQ0Ur0QUl0NufCk1msK2BeY79Aj/eg==", "dev": true, + "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.24.8" + "@babel/helper-plugin-utils": "^7.25.9" }, "engines": { "node": ">=6.9.0" @@ -1366,6 +1338,7 @@ "resolved": "https://npm.sinequa.com/@babel/plugin-syntax-import-attributes/-/plugin-syntax-import-attributes-7.24.7.tgz", "integrity": "sha512-hbX+lKKeUMGihnK8nvKqmXBInriT3GVjzXKFriV3YC6APGxMbP8RZNFwy91+hocLXq90Mta+HshoB31802bb8A==", "dev": true, + "license": "MIT", "dependencies": { "@babel/helper-plugin-utils": "^7.24.7" }, @@ -1381,6 +1354,7 @@ "resolved": "https://npm.sinequa.com/@babel/plugin-syntax-import-meta/-/plugin-syntax-import-meta-7.10.4.tgz", "integrity": "sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g==", "dev": true, + "license": "MIT", "dependencies": { "@babel/helper-plugin-utils": "^7.10.4" }, @@ -1393,6 +1367,7 @@ "resolved": "https://npm.sinequa.com/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.8.3.tgz", "integrity": "sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==", "dev": true, + "license": "MIT", "dependencies": { "@babel/helper-plugin-utils": "^7.8.0" }, @@ -1405,6 +1380,7 @@ "resolved": "https://npm.sinequa.com/@babel/plugin-syntax-logical-assignment-operators/-/plugin-syntax-logical-assignment-operators-7.10.4.tgz", "integrity": "sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig==", "dev": true, + "license": "MIT", "dependencies": { "@babel/helper-plugin-utils": "^7.10.4" }, @@ -1417,6 +1393,7 @@ "resolved": "https://npm.sinequa.com/@babel/plugin-syntax-nullish-coalescing-operator/-/plugin-syntax-nullish-coalescing-operator-7.8.3.tgz", "integrity": "sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ==", "dev": true, + "license": "MIT", "dependencies": { "@babel/helper-plugin-utils": "^7.8.0" }, @@ -1429,6 +1406,7 @@ "resolved": "https://npm.sinequa.com/@babel/plugin-syntax-numeric-separator/-/plugin-syntax-numeric-separator-7.10.4.tgz", "integrity": "sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug==", "dev": true, + "license": "MIT", "dependencies": { "@babel/helper-plugin-utils": "^7.10.4" }, @@ -1441,6 +1419,7 @@ "resolved": "https://npm.sinequa.com/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.8.3.tgz", "integrity": "sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==", "dev": true, + "license": "MIT", "dependencies": { "@babel/helper-plugin-utils": "^7.8.0" }, @@ -1453,6 +1432,7 @@ "resolved": "https://npm.sinequa.com/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.8.3.tgz", "integrity": "sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==", "dev": true, + "license": "MIT", "dependencies": { "@babel/helper-plugin-utils": "^7.8.0" }, @@ -1465,6 +1445,7 @@ "resolved": "https://npm.sinequa.com/@babel/plugin-syntax-optional-chaining/-/plugin-syntax-optional-chaining-7.8.3.tgz", "integrity": "sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==", "dev": true, + "license": "MIT", "dependencies": { "@babel/helper-plugin-utils": "^7.8.0" }, @@ -1477,6 +1458,7 @@ "resolved": "https://npm.sinequa.com/@babel/plugin-syntax-private-property-in-object/-/plugin-syntax-private-property-in-object-7.14.5.tgz", "integrity": "sha512-0wVnp9dxJ72ZUJDV27ZfbSj6iHLoytYZmh3rFcxNnvsJF3ktkzLDZPy/mA17HGsaQT3/DQsWYX1f1QGWkCoVUg==", "dev": true, + "license": "MIT", "dependencies": { "@babel/helper-plugin-utils": "^7.14.5" }, @@ -1492,6 +1474,7 @@ "resolved": "https://npm.sinequa.com/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.14.5.tgz", "integrity": "sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw==", "dev": true, + "license": "MIT", "dependencies": { "@babel/helper-plugin-utils": "^7.14.5" }, @@ -1507,6 +1490,7 @@ "resolved": "https://npm.sinequa.com/@babel/plugin-syntax-unicode-sets-regex/-/plugin-syntax-unicode-sets-regex-7.18.6.tgz", "integrity": "sha512-727YkEAPwSIQTv5im8QHz3upqp92JTWhidIC81Tdx4VJYIte/VndKf1qKrfnnhPLiPghStWfvC/iFaMCQu7Nqg==", "dev": true, + "license": "MIT", "dependencies": { "@babel/helper-create-regexp-features-plugin": "^7.18.6", "@babel/helper-plugin-utils": "^7.18.6" @@ -1519,12 +1503,13 @@ } }, "node_modules/@babel/plugin-transform-arrow-functions": { - "version": "7.24.7", - "resolved": "https://npm.sinequa.com/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.24.7.tgz", - "integrity": "sha512-Dt9LQs6iEY++gXUwY03DNFat5C2NbO48jj+j/bSAz6b3HgPs39qcPiYt77fDObIcFwj3/C2ICX9YMwGflUoSHQ==", + "version": "7.25.9", + "resolved": "https://npm.sinequa.com/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.25.9.tgz", + "integrity": "sha512-6jmooXYIwn9ca5/RylZADJ+EnSxVUS5sjeJ9UPk6RWRzXCmOJCy6dqItPJFpw2cuCangPK4OYr5uhGKcmrm5Qg==", "dev": true, + "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.24.7" + "@babel/helper-plugin-utils": "^7.25.9" }, "engines": { "node": ">=6.9.0" @@ -1538,6 +1523,7 @@ "resolved": "https://npm.sinequa.com/@babel/plugin-transform-async-generator-functions/-/plugin-transform-async-generator-functions-7.25.0.tgz", "integrity": "sha512-uaIi2FdqzjpAMvVqvB51S42oC2JEVgh0LDsGfZVDysWE8LrJtQC2jvKmOqEYThKyB7bDEb7BP1GYWDm7tABA0Q==", "dev": true, + "license": "MIT", "dependencies": { "@babel/helper-plugin-utils": "^7.24.8", "@babel/helper-remap-async-to-generator": "^7.25.0", @@ -1556,6 +1542,7 @@ "resolved": "https://npm.sinequa.com/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.24.7.tgz", "integrity": "sha512-SQY01PcJfmQ+4Ash7NE+rpbLFbmqA2GPIgqzxfFTL4t1FKRq4zTms/7htKpoCUI9OcFYgzqfmCdH53s6/jn5fA==", "dev": true, + "license": "MIT", "dependencies": { "@babel/helper-module-imports": "^7.24.7", "@babel/helper-plugin-utils": "^7.24.7", @@ -1569,12 +1556,13 @@ } }, "node_modules/@babel/plugin-transform-block-scoped-functions": { - "version": "7.24.7", - "resolved": "https://npm.sinequa.com/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.24.7.tgz", - "integrity": "sha512-yO7RAz6EsVQDaBH18IDJcMB1HnrUn2FJ/Jslc/WtPPWcjhpUJXU/rjbwmluzp7v/ZzWcEhTMXELnnsz8djWDwQ==", + "version": "7.26.5", + "resolved": "https://npm.sinequa.com/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.26.5.tgz", + "integrity": "sha512-chuTSY+hq09+/f5lMj8ZSYgCFpppV2CbYrhNFJ1BFoXpiWPnnAb7R0MqrafCpN8E1+YRrtM1MXZHJdIx8B6rMQ==", "dev": true, + "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.24.7" + "@babel/helper-plugin-utils": "^7.26.5" }, "engines": { "node": ">=6.9.0" @@ -1584,12 +1572,13 @@ } }, "node_modules/@babel/plugin-transform-block-scoping": { - "version": "7.25.0", - "resolved": "https://npm.sinequa.com/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.25.0.tgz", - "integrity": "sha512-yBQjYoOjXlFv9nlXb3f1casSHOZkWr29NX+zChVanLg5Nc157CrbEX9D7hxxtTpuFy7Q0YzmmWfJxzvps4kXrQ==", + "version": "7.25.9", + "resolved": "https://npm.sinequa.com/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.25.9.tgz", + "integrity": "sha512-1F05O7AYjymAtqbsFETboN1NvBdcnzMerO+zlMyJBEz6WkMdejvGWw9p05iTSjC85RLlBseHHQpYaM4gzJkBGg==", "dev": true, + "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.24.8" + "@babel/helper-plugin-utils": "^7.25.9" }, "engines": { "node": ">=6.9.0" @@ -1599,13 +1588,14 @@ } }, "node_modules/@babel/plugin-transform-class-properties": { - "version": "7.25.4", - "resolved": "https://npm.sinequa.com/@babel/plugin-transform-class-properties/-/plugin-transform-class-properties-7.25.4.tgz", - "integrity": "sha512-nZeZHyCWPfjkdU5pA/uHiTaDAFUEqkpzf1YoQT2NeSynCGYq9rxfyI3XpQbfx/a0hSnFH6TGlEXvae5Vi7GD8g==", + "version": "7.25.9", + "resolved": "https://npm.sinequa.com/@babel/plugin-transform-class-properties/-/plugin-transform-class-properties-7.25.9.tgz", + "integrity": "sha512-bbMAII8GRSkcd0h0b4X+36GksxuheLFjP65ul9w6C3KgAamI3JqErNgSrosX6ZPj+Mpim5VvEbawXxJCyEUV3Q==", "dev": true, + "license": "MIT", "dependencies": { - "@babel/helper-create-class-features-plugin": "^7.25.4", - "@babel/helper-plugin-utils": "^7.24.8" + "@babel/helper-create-class-features-plugin": "^7.25.9", + "@babel/helper-plugin-utils": "^7.25.9" }, "engines": { "node": ">=6.9.0" @@ -1615,14 +1605,14 @@ } }, "node_modules/@babel/plugin-transform-class-static-block": { - "version": "7.24.7", - "resolved": "https://npm.sinequa.com/@babel/plugin-transform-class-static-block/-/plugin-transform-class-static-block-7.24.7.tgz", - "integrity": "sha512-HMXK3WbBPpZQufbMG4B46A90PkuuhN9vBCb5T8+VAHqvAqvcLi+2cKoukcpmUYkszLhScU3l1iudhrks3DggRQ==", + "version": "7.26.0", + "resolved": "https://npm.sinequa.com/@babel/plugin-transform-class-static-block/-/plugin-transform-class-static-block-7.26.0.tgz", + "integrity": "sha512-6J2APTs7BDDm+UMqP1useWqhcRAXo0WIoVj26N7kPFB6S73Lgvyka4KTZYIxtgYXiN5HTyRObA72N2iu628iTQ==", "dev": true, + "license": "MIT", "dependencies": { - "@babel/helper-create-class-features-plugin": "^7.24.7", - "@babel/helper-plugin-utils": "^7.24.7", - "@babel/plugin-syntax-class-static-block": "^7.14.5" + "@babel/helper-create-class-features-plugin": "^7.25.9", + "@babel/helper-plugin-utils": "^7.25.9" }, "engines": { "node": ">=6.9.0" @@ -1632,16 +1622,17 @@ } }, "node_modules/@babel/plugin-transform-classes": { - "version": "7.25.4", - "resolved": "https://npm.sinequa.com/@babel/plugin-transform-classes/-/plugin-transform-classes-7.25.4.tgz", - "integrity": "sha512-oexUfaQle2pF/b6E0dwsxQtAol9TLSO88kQvym6HHBWFliV2lGdrPieX+WgMRLSJDVzdYywk7jXbLPuO2KLTLg==", + "version": "7.25.9", + "resolved": "https://npm.sinequa.com/@babel/plugin-transform-classes/-/plugin-transform-classes-7.25.9.tgz", + "integrity": "sha512-mD8APIXmseE7oZvZgGABDyM34GUmK45Um2TXiBUt7PnuAxrgoSVf123qUzPxEr/+/BHrRn5NMZCdE2m/1F8DGg==", "dev": true, + "license": "MIT", "dependencies": { - "@babel/helper-annotate-as-pure": "^7.24.7", - "@babel/helper-compilation-targets": "^7.25.2", - "@babel/helper-plugin-utils": "^7.24.8", - "@babel/helper-replace-supers": "^7.25.0", - "@babel/traverse": "^7.25.4", + "@babel/helper-annotate-as-pure": "^7.25.9", + "@babel/helper-compilation-targets": "^7.25.9", + "@babel/helper-plugin-utils": "^7.25.9", + "@babel/helper-replace-supers": "^7.25.9", + "@babel/traverse": "^7.25.9", "globals": "^11.1.0" }, "engines": { @@ -1651,14 +1642,28 @@ "@babel/core": "^7.0.0-0" } }, + "node_modules/@babel/plugin-transform-classes/node_modules/@babel/helper-annotate-as-pure": { + "version": "7.25.9", + "resolved": "https://npm.sinequa.com/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.25.9.tgz", + "integrity": "sha512-gv7320KBUFJz1RnylIg5WWYPRXKZ884AGkYpgpWW02TH66Dl+HaC1t1CKd0z3R4b6hdYEcmrNZHUmfCP+1u3/g==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/types": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + } + }, "node_modules/@babel/plugin-transform-computed-properties": { - "version": "7.24.7", - "resolved": "https://npm.sinequa.com/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.24.7.tgz", - "integrity": "sha512-25cS7v+707Gu6Ds2oY6tCkUwsJ9YIDbggd9+cu9jzzDgiNq7hR/8dkzxWfKWnTic26vsI3EsCXNd4iEB6e8esQ==", + "version": "7.25.9", + "resolved": "https://npm.sinequa.com/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.25.9.tgz", + "integrity": "sha512-HnBegGqXZR12xbcTHlJ9HGxw1OniltT26J5YpfruGqtUHlz/xKf/G2ak9e+t0rVqrjXa9WOhvYPz1ERfMj23AA==", "dev": true, + "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.24.7", - "@babel/template": "^7.24.7" + "@babel/helper-plugin-utils": "^7.25.9", + "@babel/template": "^7.25.9" }, "engines": { "node": ">=6.9.0" @@ -1668,12 +1673,13 @@ } }, "node_modules/@babel/plugin-transform-destructuring": { - "version": "7.24.8", - "resolved": "https://npm.sinequa.com/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.24.8.tgz", - "integrity": "sha512-36e87mfY8TnRxc7yc6M9g9gOB7rKgSahqkIKwLpz4Ppk2+zC2Cy1is0uwtuSG6AE4zlTOUa+7JGz9jCJGLqQFQ==", + "version": "7.25.9", + "resolved": "https://npm.sinequa.com/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.25.9.tgz", + "integrity": "sha512-WkCGb/3ZxXepmMiX101nnGiU+1CAdut8oHyEOHxkKuS1qKpU2SMXE2uSvfz8PBuLd49V6LEsbtyPhWC7fnkgvQ==", "dev": true, + "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.24.8" + "@babel/helper-plugin-utils": "^7.25.9" }, "engines": { "node": ">=6.9.0" @@ -1683,13 +1689,14 @@ } }, "node_modules/@babel/plugin-transform-dotall-regex": { - "version": "7.24.7", - "resolved": "https://npm.sinequa.com/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.24.7.tgz", - "integrity": "sha512-ZOA3W+1RRTSWvyqcMJDLqbchh7U4NRGqwRfFSVbOLS/ePIP4vHB5e8T8eXcuqyN1QkgKyj5wuW0lcS85v4CrSw==", + "version": "7.25.9", + "resolved": "https://npm.sinequa.com/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.25.9.tgz", + "integrity": "sha512-t7ZQ7g5trIgSRYhI9pIJtRl64KHotutUJsh4Eze5l7olJv+mRSg4/MmbZ0tv1eeqRbdvo/+trvJD/Oc5DmW2cA==", "dev": true, + "license": "MIT", "dependencies": { - "@babel/helper-create-regexp-features-plugin": "^7.24.7", - "@babel/helper-plugin-utils": "^7.24.7" + "@babel/helper-create-regexp-features-plugin": "^7.25.9", + "@babel/helper-plugin-utils": "^7.25.9" }, "engines": { "node": ">=6.9.0" @@ -1699,12 +1706,13 @@ } }, "node_modules/@babel/plugin-transform-duplicate-keys": { - "version": "7.24.7", - "resolved": "https://npm.sinequa.com/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.24.7.tgz", - "integrity": "sha512-JdYfXyCRihAe46jUIliuL2/s0x0wObgwwiGxw/UbgJBr20gQBThrokO4nYKgWkD7uBaqM7+9x5TU7NkExZJyzw==", + "version": "7.25.9", + "resolved": "https://npm.sinequa.com/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.25.9.tgz", + "integrity": "sha512-LZxhJ6dvBb/f3x8xwWIuyiAHy56nrRG3PeYTpBkkzkYRRQ6tJLu68lEF5VIqMUZiAV7a8+Tb78nEoMCMcqjXBw==", "dev": true, + "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.24.7" + "@babel/helper-plugin-utils": "^7.25.9" }, "engines": { "node": ">=6.9.0" @@ -1714,13 +1722,14 @@ } }, "node_modules/@babel/plugin-transform-duplicate-named-capturing-groups-regex": { - "version": "7.25.0", - "resolved": "https://npm.sinequa.com/@babel/plugin-transform-duplicate-named-capturing-groups-regex/-/plugin-transform-duplicate-named-capturing-groups-regex-7.25.0.tgz", - "integrity": "sha512-YLpb4LlYSc3sCUa35un84poXoraOiQucUTTu8X1j18JV+gNa8E0nyUf/CjZ171IRGr4jEguF+vzJU66QZhn29g==", + "version": "7.25.9", + "resolved": "https://npm.sinequa.com/@babel/plugin-transform-duplicate-named-capturing-groups-regex/-/plugin-transform-duplicate-named-capturing-groups-regex-7.25.9.tgz", + "integrity": "sha512-0UfuJS0EsXbRvKnwcLjFtJy/Sxc5J5jhLHnFhy7u4zih97Hz6tJkLU+O+FMMrNZrosUPxDi6sYxJ/EA8jDiAog==", "dev": true, + "license": "MIT", "dependencies": { - "@babel/helper-create-regexp-features-plugin": "^7.25.0", - "@babel/helper-plugin-utils": "^7.24.8" + "@babel/helper-create-regexp-features-plugin": "^7.25.9", + "@babel/helper-plugin-utils": "^7.25.9" }, "engines": { "node": ">=6.9.0" @@ -1730,13 +1739,13 @@ } }, "node_modules/@babel/plugin-transform-dynamic-import": { - "version": "7.24.7", - "resolved": "https://npm.sinequa.com/@babel/plugin-transform-dynamic-import/-/plugin-transform-dynamic-import-7.24.7.tgz", - "integrity": "sha512-sc3X26PhZQDb3JhORmakcbvkeInvxz+A8oda99lj7J60QRuPZvNAk9wQlTBS1ZynelDrDmTU4pw1tyc5d5ZMUg==", + "version": "7.25.9", + "resolved": "https://npm.sinequa.com/@babel/plugin-transform-dynamic-import/-/plugin-transform-dynamic-import-7.25.9.tgz", + "integrity": "sha512-GCggjexbmSLaFhqsojeugBpeaRIgWNTcgKVq/0qIteFEqY2A+b9QidYadrWlnbWQUrW5fn+mCvf3tr7OeBFTyg==", "dev": true, + "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.24.7", - "@babel/plugin-syntax-dynamic-import": "^7.8.3" + "@babel/helper-plugin-utils": "^7.25.9" }, "engines": { "node": ">=6.9.0" @@ -1746,13 +1755,13 @@ } }, "node_modules/@babel/plugin-transform-exponentiation-operator": { - "version": "7.24.7", - "resolved": "https://npm.sinequa.com/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.24.7.tgz", - "integrity": "sha512-Rqe/vSc9OYgDajNIK35u7ot+KeCoetqQYFXM4Epf7M7ez3lWlOjrDjrwMei6caCVhfdw+mIKD4cgdGNy5JQotQ==", + "version": "7.26.3", + "resolved": "https://npm.sinequa.com/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.26.3.tgz", + "integrity": "sha512-7CAHcQ58z2chuXPWblnn1K6rLDnDWieghSOEmqQsrBenH0P9InCUtOJYD89pvngljmZlJcz3fcmgYsXFNGa1ZQ==", "dev": true, + "license": "MIT", "dependencies": { - "@babel/helper-builder-binary-assignment-operator-visitor": "^7.24.7", - "@babel/helper-plugin-utils": "^7.24.7" + "@babel/helper-plugin-utils": "^7.25.9" }, "engines": { "node": ">=6.9.0" @@ -1762,13 +1771,13 @@ } }, "node_modules/@babel/plugin-transform-export-namespace-from": { - "version": "7.24.7", - "resolved": "https://npm.sinequa.com/@babel/plugin-transform-export-namespace-from/-/plugin-transform-export-namespace-from-7.24.7.tgz", - "integrity": "sha512-v0K9uNYsPL3oXZ/7F9NNIbAj2jv1whUEtyA6aujhekLs56R++JDQuzRcP2/z4WX5Vg/c5lE9uWZA0/iUoFhLTA==", + "version": "7.25.9", + "resolved": "https://npm.sinequa.com/@babel/plugin-transform-export-namespace-from/-/plugin-transform-export-namespace-from-7.25.9.tgz", + "integrity": "sha512-2NsEz+CxzJIVOPx2o9UsW1rXLqtChtLoVnwYHHiB04wS5sgn7mrV45fWMBX0Kk+ub9uXytVYfNP2HjbVbCB3Ww==", "dev": true, + "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.24.7", - "@babel/plugin-syntax-export-namespace-from": "^7.8.3" + "@babel/helper-plugin-utils": "^7.25.9" }, "engines": { "node": ">=6.9.0" @@ -1778,13 +1787,14 @@ } }, "node_modules/@babel/plugin-transform-for-of": { - "version": "7.24.7", - "resolved": "https://npm.sinequa.com/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.24.7.tgz", - "integrity": "sha512-wo9ogrDG1ITTTBsy46oGiN1dS9A7MROBTcYsfS8DtsImMkHk9JXJ3EWQM6X2SUw4x80uGPlwj0o00Uoc6nEE3g==", + "version": "7.25.9", + "resolved": "https://npm.sinequa.com/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.25.9.tgz", + "integrity": "sha512-LqHxduHoaGELJl2uhImHwRQudhCM50pT46rIBNvtT/Oql3nqiS3wOwP+5ten7NpYSXrrVLgtZU3DZmPtWZo16A==", "dev": true, + "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.24.7", - "@babel/helper-skip-transparent-expression-wrappers": "^7.24.7" + "@babel/helper-plugin-utils": "^7.25.9", + "@babel/helper-skip-transparent-expression-wrappers": "^7.25.9" }, "engines": { "node": ">=6.9.0" @@ -1794,14 +1804,15 @@ } }, "node_modules/@babel/plugin-transform-function-name": { - "version": "7.25.1", - "resolved": "https://npm.sinequa.com/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.25.1.tgz", - "integrity": "sha512-TVVJVdW9RKMNgJJlLtHsKDTydjZAbwIsn6ySBPQaEAUU5+gVvlJt/9nRmqVbsV/IBanRjzWoaAQKLoamWVOUuA==", + "version": "7.25.9", + "resolved": "https://npm.sinequa.com/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.25.9.tgz", + "integrity": "sha512-8lP+Yxjv14Vc5MuWBpJsoUCd3hD6V9DgBon2FVYL4jJgbnVQ9fTgYmonchzZJOVNgzEgbxp4OwAf6xz6M/14XA==", "dev": true, + "license": "MIT", "dependencies": { - "@babel/helper-compilation-targets": "^7.24.8", - "@babel/helper-plugin-utils": "^7.24.8", - "@babel/traverse": "^7.25.1" + "@babel/helper-compilation-targets": "^7.25.9", + "@babel/helper-plugin-utils": "^7.25.9", + "@babel/traverse": "^7.25.9" }, "engines": { "node": ">=6.9.0" @@ -1811,13 +1822,13 @@ } }, "node_modules/@babel/plugin-transform-json-strings": { - "version": "7.24.7", - "resolved": "https://npm.sinequa.com/@babel/plugin-transform-json-strings/-/plugin-transform-json-strings-7.24.7.tgz", - "integrity": "sha512-2yFnBGDvRuxAaE/f0vfBKvtnvvqU8tGpMHqMNpTN2oWMKIR3NqFkjaAgGwawhqK/pIN2T3XdjGPdaG0vDhOBGw==", + "version": "7.25.9", + "resolved": "https://npm.sinequa.com/@babel/plugin-transform-json-strings/-/plugin-transform-json-strings-7.25.9.tgz", + "integrity": "sha512-xoTMk0WXceiiIvsaquQQUaLLXSW1KJ159KP87VilruQm0LNNGxWzahxSS6T6i4Zg3ezp4vA4zuwiNUR53qmQAw==", "dev": true, + "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.24.7", - "@babel/plugin-syntax-json-strings": "^7.8.3" + "@babel/helper-plugin-utils": "^7.25.9" }, "engines": { "node": ">=6.9.0" @@ -1827,12 +1838,13 @@ } }, "node_modules/@babel/plugin-transform-literals": { - "version": "7.25.2", - "resolved": "https://npm.sinequa.com/@babel/plugin-transform-literals/-/plugin-transform-literals-7.25.2.tgz", - "integrity": "sha512-HQI+HcTbm9ur3Z2DkO+jgESMAMcYLuN/A7NRw9juzxAezN9AvqvUTnpKP/9kkYANz6u7dFlAyOu44ejuGySlfw==", + "version": "7.25.9", + "resolved": "https://npm.sinequa.com/@babel/plugin-transform-literals/-/plugin-transform-literals-7.25.9.tgz", + "integrity": "sha512-9N7+2lFziW8W9pBl2TzaNht3+pgMIRP74zizeCSrtnSKVdUl8mAjjOP2OOVQAfZ881P2cNjDj1uAMEdeD50nuQ==", "dev": true, + "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.24.8" + "@babel/helper-plugin-utils": "^7.25.9" }, "engines": { "node": ">=6.9.0" @@ -1842,13 +1854,13 @@ } }, "node_modules/@babel/plugin-transform-logical-assignment-operators": { - "version": "7.24.7", - "resolved": "https://npm.sinequa.com/@babel/plugin-transform-logical-assignment-operators/-/plugin-transform-logical-assignment-operators-7.24.7.tgz", - "integrity": "sha512-4D2tpwlQ1odXmTEIFWy9ELJcZHqrStlzK/dAOWYyxX3zT0iXQB6banjgeOJQXzEc4S0E0a5A+hahxPaEFYftsw==", + "version": "7.25.9", + "resolved": "https://npm.sinequa.com/@babel/plugin-transform-logical-assignment-operators/-/plugin-transform-logical-assignment-operators-7.25.9.tgz", + "integrity": "sha512-wI4wRAzGko551Y8eVf6iOY9EouIDTtPb0ByZx+ktDGHwv6bHFimrgJM/2T021txPZ2s4c7bqvHbd+vXG6K948Q==", "dev": true, + "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.24.7", - "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4" + "@babel/helper-plugin-utils": "^7.25.9" }, "engines": { "node": ">=6.9.0" @@ -1858,12 +1870,13 @@ } }, "node_modules/@babel/plugin-transform-member-expression-literals": { - "version": "7.24.7", - "resolved": "https://npm.sinequa.com/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.24.7.tgz", - "integrity": "sha512-T/hRC1uqrzXMKLQ6UCwMT85S3EvqaBXDGf0FaMf4446Qx9vKwlghvee0+uuZcDUCZU5RuNi4781UQ7R308zzBw==", + "version": "7.25.9", + "resolved": "https://npm.sinequa.com/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.25.9.tgz", + "integrity": "sha512-PYazBVfofCQkkMzh2P6IdIUaCEWni3iYEerAsRWuVd8+jlM1S9S9cz1dF9hIzyoZ8IA3+OwVYIp9v9e+GbgZhA==", "dev": true, + "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.24.7" + "@babel/helper-plugin-utils": "^7.25.9" }, "engines": { "node": ">=6.9.0" @@ -1873,13 +1886,14 @@ } }, "node_modules/@babel/plugin-transform-modules-amd": { - "version": "7.24.7", - "resolved": "https://npm.sinequa.com/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.24.7.tgz", - "integrity": "sha512-9+pB1qxV3vs/8Hdmz/CulFB8w2tuu6EB94JZFsjdqxQokwGa9Unap7Bo2gGBGIvPmDIVvQrom7r5m/TCDMURhg==", + "version": "7.25.9", + "resolved": "https://npm.sinequa.com/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.25.9.tgz", + "integrity": "sha512-g5T11tnI36jVClQlMlt4qKDLlWnG5pP9CSM4GhdRciTNMRgkfpo5cR6b4rGIOYPgRRuFAvwjPQ/Yk+ql4dyhbw==", "dev": true, + "license": "MIT", "dependencies": { - "@babel/helper-module-transforms": "^7.24.7", - "@babel/helper-plugin-utils": "^7.24.7" + "@babel/helper-module-transforms": "^7.25.9", + "@babel/helper-plugin-utils": "^7.25.9" }, "engines": { "node": ">=6.9.0" @@ -1889,14 +1903,14 @@ } }, "node_modules/@babel/plugin-transform-modules-commonjs": { - "version": "7.24.8", - "resolved": "https://npm.sinequa.com/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.24.8.tgz", - "integrity": "sha512-WHsk9H8XxRs3JXKWFiqtQebdh9b/pTk4EgueygFzYlTKAg0Ud985mSevdNjdXdFBATSKVJGQXP1tv6aGbssLKA==", + "version": "7.26.3", + "resolved": "https://npm.sinequa.com/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.26.3.tgz", + "integrity": "sha512-MgR55l4q9KddUDITEzEFYn5ZsGDXMSsU9E+kh7fjRXTIC3RHqfCo8RPRbyReYJh44HQ/yomFkqbOFohXvDCiIQ==", "dev": true, + "license": "MIT", "dependencies": { - "@babel/helper-module-transforms": "^7.24.8", - "@babel/helper-plugin-utils": "^7.24.8", - "@babel/helper-simple-access": "^7.24.7" + "@babel/helper-module-transforms": "^7.26.0", + "@babel/helper-plugin-utils": "^7.25.9" }, "engines": { "node": ">=6.9.0" @@ -1906,15 +1920,16 @@ } }, "node_modules/@babel/plugin-transform-modules-systemjs": { - "version": "7.25.0", - "resolved": "https://npm.sinequa.com/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.25.0.tgz", - "integrity": "sha512-YPJfjQPDXxyQWg/0+jHKj1llnY5f/R6a0p/vP4lPymxLu7Lvl4k2WMitqi08yxwQcCVUUdG9LCUj4TNEgAp3Jw==", + "version": "7.25.9", + "resolved": "https://npm.sinequa.com/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.25.9.tgz", + "integrity": "sha512-hyss7iIlH/zLHaehT+xwiymtPOpsiwIIRlCAOwBB04ta5Tt+lNItADdlXw3jAWZ96VJ2jlhl/c+PNIQPKNfvcA==", "dev": true, + "license": "MIT", "dependencies": { - "@babel/helper-module-transforms": "^7.25.0", - "@babel/helper-plugin-utils": "^7.24.8", - "@babel/helper-validator-identifier": "^7.24.7", - "@babel/traverse": "^7.25.0" + "@babel/helper-module-transforms": "^7.25.9", + "@babel/helper-plugin-utils": "^7.25.9", + "@babel/helper-validator-identifier": "^7.25.9", + "@babel/traverse": "^7.25.9" }, "engines": { "node": ">=6.9.0" @@ -1924,13 +1939,14 @@ } }, "node_modules/@babel/plugin-transform-modules-umd": { - "version": "7.24.7", - "resolved": "https://npm.sinequa.com/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.24.7.tgz", - "integrity": "sha512-3aytQvqJ/h9z4g8AsKPLvD4Zqi2qT+L3j7XoFFu1XBlZWEl2/1kWnhmAbxpLgPrHSY0M6UA02jyTiwUVtiKR6A==", + "version": "7.25.9", + "resolved": "https://npm.sinequa.com/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.25.9.tgz", + "integrity": "sha512-bS9MVObUgE7ww36HEfwe6g9WakQ0KF07mQF74uuXdkoziUPfKyu/nIm663kz//e5O1nPInPFx36z7WJmJ4yNEw==", "dev": true, + "license": "MIT", "dependencies": { - "@babel/helper-module-transforms": "^7.24.7", - "@babel/helper-plugin-utils": "^7.24.7" + "@babel/helper-module-transforms": "^7.25.9", + "@babel/helper-plugin-utils": "^7.25.9" }, "engines": { "node": ">=6.9.0" @@ -1940,13 +1956,14 @@ } }, "node_modules/@babel/plugin-transform-named-capturing-groups-regex": { - "version": "7.24.7", - "resolved": "https://npm.sinequa.com/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.24.7.tgz", - "integrity": "sha512-/jr7h/EWeJtk1U/uz2jlsCioHkZk1JJZVcc8oQsJ1dUlaJD83f4/6Zeh2aHt9BIFokHIsSeDfhUmju0+1GPd6g==", + "version": "7.25.9", + "resolved": "https://npm.sinequa.com/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.25.9.tgz", + "integrity": "sha512-oqB6WHdKTGl3q/ItQhpLSnWWOpjUJLsOCLVyeFgeTktkBSCiurvPOsyt93gibI9CmuKvTUEtWmG5VhZD+5T/KA==", "dev": true, + "license": "MIT", "dependencies": { - "@babel/helper-create-regexp-features-plugin": "^7.24.7", - "@babel/helper-plugin-utils": "^7.24.7" + "@babel/helper-create-regexp-features-plugin": "^7.25.9", + "@babel/helper-plugin-utils": "^7.25.9" }, "engines": { "node": ">=6.9.0" @@ -1956,12 +1973,13 @@ } }, "node_modules/@babel/plugin-transform-new-target": { - "version": "7.24.7", - "resolved": "https://npm.sinequa.com/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.24.7.tgz", - "integrity": "sha512-RNKwfRIXg4Ls/8mMTza5oPF5RkOW8Wy/WgMAp1/F1yZ8mMbtwXW+HDoJiOsagWrAhI5f57Vncrmr9XeT4CVapA==", + "version": "7.25.9", + "resolved": "https://npm.sinequa.com/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.25.9.tgz", + "integrity": "sha512-U/3p8X1yCSoKyUj2eOBIx3FOn6pElFOKvAAGf8HTtItuPyB+ZeOqfn+mvTtg9ZlOAjsPdK3ayQEjqHjU/yLeVQ==", "dev": true, + "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.24.7" + "@babel/helper-plugin-utils": "^7.25.9" }, "engines": { "node": ">=6.9.0" @@ -1971,13 +1989,13 @@ } }, "node_modules/@babel/plugin-transform-nullish-coalescing-operator": { - "version": "7.24.7", - "resolved": "https://npm.sinequa.com/@babel/plugin-transform-nullish-coalescing-operator/-/plugin-transform-nullish-coalescing-operator-7.24.7.tgz", - "integrity": "sha512-Ts7xQVk1OEocqzm8rHMXHlxvsfZ0cEF2yomUqpKENHWMF4zKk175Y4q8H5knJes6PgYad50uuRmt3UJuhBw8pQ==", + "version": "7.26.6", + "resolved": "https://npm.sinequa.com/@babel/plugin-transform-nullish-coalescing-operator/-/plugin-transform-nullish-coalescing-operator-7.26.6.tgz", + "integrity": "sha512-CKW8Vu+uUZneQCPtXmSBUC6NCAUdya26hWCElAWh5mVSlSRsmiCPUUDKb3Z0szng1hiAJa098Hkhg9o4SE35Qw==", "dev": true, + "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.24.7", - "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3" + "@babel/helper-plugin-utils": "^7.26.5" }, "engines": { "node": ">=6.9.0" @@ -1987,13 +2005,13 @@ } }, "node_modules/@babel/plugin-transform-numeric-separator": { - "version": "7.24.7", - "resolved": "https://npm.sinequa.com/@babel/plugin-transform-numeric-separator/-/plugin-transform-numeric-separator-7.24.7.tgz", - "integrity": "sha512-e6q1TiVUzvH9KRvicuxdBTUj4AdKSRwzIyFFnfnezpCfP2/7Qmbb8qbU2j7GODbl4JMkblitCQjKYUaX/qkkwA==", + "version": "7.25.9", + "resolved": "https://npm.sinequa.com/@babel/plugin-transform-numeric-separator/-/plugin-transform-numeric-separator-7.25.9.tgz", + "integrity": "sha512-TlprrJ1GBZ3r6s96Yq8gEQv82s8/5HnCVHtEJScUj90thHQbwe+E5MLhi2bbNHBEJuzrvltXSru+BUxHDoog7Q==", "dev": true, + "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.24.7", - "@babel/plugin-syntax-numeric-separator": "^7.10.4" + "@babel/helper-plugin-utils": "^7.25.9" }, "engines": { "node": ">=6.9.0" @@ -2003,15 +2021,15 @@ } }, "node_modules/@babel/plugin-transform-object-rest-spread": { - "version": "7.24.7", - "resolved": "https://npm.sinequa.com/@babel/plugin-transform-object-rest-spread/-/plugin-transform-object-rest-spread-7.24.7.tgz", - "integrity": "sha512-4QrHAr0aXQCEFni2q4DqKLD31n2DL+RxcwnNjDFkSG0eNQ/xCavnRkfCUjsyqGC2OviNJvZOF/mQqZBw7i2C5Q==", + "version": "7.25.9", + "resolved": "https://npm.sinequa.com/@babel/plugin-transform-object-rest-spread/-/plugin-transform-object-rest-spread-7.25.9.tgz", + "integrity": "sha512-fSaXafEE9CVHPweLYw4J0emp1t8zYTXyzN3UuG+lylqkvYd7RMrsOQ8TYx5RF231be0vqtFC6jnx3UmpJmKBYg==", "dev": true, + "license": "MIT", "dependencies": { - "@babel/helper-compilation-targets": "^7.24.7", - "@babel/helper-plugin-utils": "^7.24.7", - "@babel/plugin-syntax-object-rest-spread": "^7.8.3", - "@babel/plugin-transform-parameters": "^7.24.7" + "@babel/helper-compilation-targets": "^7.25.9", + "@babel/helper-plugin-utils": "^7.25.9", + "@babel/plugin-transform-parameters": "^7.25.9" }, "engines": { "node": ">=6.9.0" @@ -2021,13 +2039,14 @@ } }, "node_modules/@babel/plugin-transform-object-super": { - "version": "7.24.7", - "resolved": "https://npm.sinequa.com/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.24.7.tgz", - "integrity": "sha512-A/vVLwN6lBrMFmMDmPPz0jnE6ZGx7Jq7d6sT/Ev4H65RER6pZ+kczlf1DthF5N0qaPHBsI7UXiE8Zy66nmAovg==", + "version": "7.25.9", + "resolved": "https://npm.sinequa.com/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.25.9.tgz", + "integrity": "sha512-Kj/Gh+Rw2RNLbCK1VAWj2U48yxxqL2x0k10nPtSdRa0O2xnHXalD0s+o1A6a0W43gJ00ANo38jxkQreckOzv5A==", "dev": true, + "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.24.7", - "@babel/helper-replace-supers": "^7.24.7" + "@babel/helper-plugin-utils": "^7.25.9", + "@babel/helper-replace-supers": "^7.25.9" }, "engines": { "node": ">=6.9.0" @@ -2037,13 +2056,13 @@ } }, "node_modules/@babel/plugin-transform-optional-catch-binding": { - "version": "7.24.7", - "resolved": "https://npm.sinequa.com/@babel/plugin-transform-optional-catch-binding/-/plugin-transform-optional-catch-binding-7.24.7.tgz", - "integrity": "sha512-uLEndKqP5BfBbC/5jTwPxLh9kqPWWgzN/f8w6UwAIirAEqiIVJWWY312X72Eub09g5KF9+Zn7+hT7sDxmhRuKA==", + "version": "7.25.9", + "resolved": "https://npm.sinequa.com/@babel/plugin-transform-optional-catch-binding/-/plugin-transform-optional-catch-binding-7.25.9.tgz", + "integrity": "sha512-qM/6m6hQZzDcZF3onzIhZeDHDO43bkNNlOX0i8n3lR6zLbu0GN2d8qfM/IERJZYauhAHSLHy39NF0Ctdvcid7g==", "dev": true, + "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.24.7", - "@babel/plugin-syntax-optional-catch-binding": "^7.8.3" + "@babel/helper-plugin-utils": "^7.25.9" }, "engines": { "node": ">=6.9.0" @@ -2053,14 +2072,14 @@ } }, "node_modules/@babel/plugin-transform-optional-chaining": { - "version": "7.24.8", - "resolved": "https://npm.sinequa.com/@babel/plugin-transform-optional-chaining/-/plugin-transform-optional-chaining-7.24.8.tgz", - "integrity": "sha512-5cTOLSMs9eypEy8JUVvIKOu6NgvbJMnpG62VpIHrTmROdQ+L5mDAaI40g25k5vXti55JWNX5jCkq3HZxXBQANw==", + "version": "7.25.9", + "resolved": "https://npm.sinequa.com/@babel/plugin-transform-optional-chaining/-/plugin-transform-optional-chaining-7.25.9.tgz", + "integrity": "sha512-6AvV0FsLULbpnXeBjrY4dmWF8F7gf8QnvTEoO/wX/5xm/xE1Xo8oPuD3MPS+KS9f9XBEAWN7X1aWr4z9HdOr7A==", "dev": true, + "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.24.8", - "@babel/helper-skip-transparent-expression-wrappers": "^7.24.7", - "@babel/plugin-syntax-optional-chaining": "^7.8.3" + "@babel/helper-plugin-utils": "^7.25.9", + "@babel/helper-skip-transparent-expression-wrappers": "^7.25.9" }, "engines": { "node": ">=6.9.0" @@ -2070,12 +2089,13 @@ } }, "node_modules/@babel/plugin-transform-parameters": { - "version": "7.24.7", - "resolved": "https://npm.sinequa.com/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.24.7.tgz", - "integrity": "sha512-yGWW5Rr+sQOhK0Ot8hjDJuxU3XLRQGflvT4lhlSY0DFvdb3TwKaY26CJzHtYllU0vT9j58hc37ndFPsqT1SrzA==", + "version": "7.25.9", + "resolved": "https://npm.sinequa.com/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.25.9.tgz", + "integrity": "sha512-wzz6MKwpnshBAiRmn4jR8LYz/g8Ksg0o80XmwZDlordjwEk9SxBzTWC7F5ef1jhbrbOW2DJ5J6ayRukrJmnr0g==", "dev": true, + "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.24.7" + "@babel/helper-plugin-utils": "^7.25.9" }, "engines": { "node": ">=6.9.0" @@ -2085,13 +2105,14 @@ } }, "node_modules/@babel/plugin-transform-private-methods": { - "version": "7.25.4", - "resolved": "https://npm.sinequa.com/@babel/plugin-transform-private-methods/-/plugin-transform-private-methods-7.25.4.tgz", - "integrity": "sha512-ao8BG7E2b/URaUQGqN3Tlsg+M3KlHY6rJ1O1gXAEUnZoyNQnvKyH87Kfg+FoxSeyWUB8ISZZsC91C44ZuBFytw==", + "version": "7.25.9", + "resolved": "https://npm.sinequa.com/@babel/plugin-transform-private-methods/-/plugin-transform-private-methods-7.25.9.tgz", + "integrity": "sha512-D/JUozNpQLAPUVusvqMxyvjzllRaF8/nSrP1s2YGQT/W4LHK4xxsMcHjhOGTS01mp9Hda8nswb+FblLdJornQw==", "dev": true, + "license": "MIT", "dependencies": { - "@babel/helper-create-class-features-plugin": "^7.25.4", - "@babel/helper-plugin-utils": "^7.24.8" + "@babel/helper-create-class-features-plugin": "^7.25.9", + "@babel/helper-plugin-utils": "^7.25.9" }, "engines": { "node": ">=6.9.0" @@ -2101,15 +2122,15 @@ } }, "node_modules/@babel/plugin-transform-private-property-in-object": { - "version": "7.24.7", - "resolved": "https://npm.sinequa.com/@babel/plugin-transform-private-property-in-object/-/plugin-transform-private-property-in-object-7.24.7.tgz", - "integrity": "sha512-9z76mxwnwFxMyxZWEgdgECQglF2Q7cFLm0kMf8pGwt+GSJsY0cONKj/UuO4bOH0w/uAel3ekS4ra5CEAyJRmDA==", + "version": "7.25.9", + "resolved": "https://npm.sinequa.com/@babel/plugin-transform-private-property-in-object/-/plugin-transform-private-property-in-object-7.25.9.tgz", + "integrity": "sha512-Evf3kcMqzXA3xfYJmZ9Pg1OvKdtqsDMSWBDzZOPLvHiTt36E75jLDQo5w1gtRU95Q4E5PDttrTf25Fw8d/uWLw==", "dev": true, + "license": "MIT", "dependencies": { - "@babel/helper-annotate-as-pure": "^7.24.7", - "@babel/helper-create-class-features-plugin": "^7.24.7", - "@babel/helper-plugin-utils": "^7.24.7", - "@babel/plugin-syntax-private-property-in-object": "^7.14.5" + "@babel/helper-annotate-as-pure": "^7.25.9", + "@babel/helper-create-class-features-plugin": "^7.25.9", + "@babel/helper-plugin-utils": "^7.25.9" }, "engines": { "node": ">=6.9.0" @@ -2118,13 +2139,27 @@ "@babel/core": "^7.0.0-0" } }, + "node_modules/@babel/plugin-transform-private-property-in-object/node_modules/@babel/helper-annotate-as-pure": { + "version": "7.25.9", + "resolved": "https://npm.sinequa.com/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.25.9.tgz", + "integrity": "sha512-gv7320KBUFJz1RnylIg5WWYPRXKZ884AGkYpgpWW02TH66Dl+HaC1t1CKd0z3R4b6hdYEcmrNZHUmfCP+1u3/g==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/types": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + } + }, "node_modules/@babel/plugin-transform-property-literals": { - "version": "7.24.7", - "resolved": "https://npm.sinequa.com/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.24.7.tgz", - "integrity": "sha512-EMi4MLQSHfd2nrCqQEWxFdha2gBCqU4ZcCng4WBGZ5CJL4bBRW0ptdqqDdeirGZcpALazVVNJqRmsO8/+oNCBA==", + "version": "7.25.9", + "resolved": "https://npm.sinequa.com/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.25.9.tgz", + "integrity": "sha512-IvIUeV5KrS/VPavfSM/Iu+RE6llrHrYIKY1yfCzyO/lMXHQ+p7uGhonmGVisv6tSBSVgWzMBohTcvkC9vQcQFA==", "dev": true, + "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.24.7" + "@babel/helper-plugin-utils": "^7.25.9" }, "engines": { "node": ">=6.9.0" @@ -2134,12 +2169,13 @@ } }, "node_modules/@babel/plugin-transform-regenerator": { - "version": "7.24.7", - "resolved": "https://npm.sinequa.com/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.24.7.tgz", - "integrity": "sha512-lq3fvXPdimDrlg6LWBoqj+r/DEWgONuwjuOuQCSYgRroXDH/IdM1C0IZf59fL5cHLpjEH/O6opIRBbqv7ELnuA==", + "version": "7.25.9", + "resolved": "https://npm.sinequa.com/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.25.9.tgz", + "integrity": "sha512-vwDcDNsgMPDGP0nMqzahDWE5/MLcX8sv96+wfX7as7LoF/kr97Bo/7fI00lXY4wUXYfVmwIIyG80fGZ1uvt2qg==", "dev": true, + "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.24.7", + "@babel/helper-plugin-utils": "^7.25.9", "regenerator-transform": "^0.15.2" }, "engines": { @@ -2150,12 +2186,13 @@ } }, "node_modules/@babel/plugin-transform-reserved-words": { - "version": "7.24.7", - "resolved": "https://npm.sinequa.com/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.24.7.tgz", - "integrity": "sha512-0DUq0pHcPKbjFZCfTss/pGkYMfy3vFWydkUBd9r0GHpIyfs2eCDENvqadMycRS9wZCXR41wucAfJHJmwA0UmoQ==", + "version": "7.25.9", + "resolved": "https://npm.sinequa.com/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.25.9.tgz", + "integrity": "sha512-7DL7DKYjn5Su++4RXu8puKZm2XBPHyjWLUidaPEkCUBbE7IPcsrkRHggAOOKydH1dASWdcUBxrkOGNxUv5P3Jg==", "dev": true, + "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.24.7" + "@babel/helper-plugin-utils": "^7.25.9" }, "engines": { "node": ">=6.9.0" @@ -2169,6 +2206,7 @@ "resolved": "https://npm.sinequa.com/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.24.7.tgz", "integrity": "sha512-YqXjrk4C+a1kZjewqt+Mmu2UuV1s07y8kqcUf4qYLnoqemhR4gRQikhdAhSVJioMjVTu6Mo6pAbaypEA3jY6fw==", "dev": true, + "license": "MIT", "dependencies": { "@babel/helper-module-imports": "^7.24.7", "@babel/helper-plugin-utils": "^7.24.7", @@ -2189,17 +2227,19 @@ "resolved": "https://npm.sinequa.com/semver/-/semver-6.3.1.tgz", "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", "dev": true, + "license": "ISC", "bin": { "semver": "bin/semver.js" } }, "node_modules/@babel/plugin-transform-shorthand-properties": { - "version": "7.24.7", - "resolved": "https://npm.sinequa.com/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.24.7.tgz", - "integrity": "sha512-KsDsevZMDsigzbA09+vacnLpmPH4aWjcZjXdyFKGzpplxhbeB4wYtury3vglQkg6KM/xEPKt73eCjPPf1PgXBA==", + "version": "7.25.9", + "resolved": "https://npm.sinequa.com/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.25.9.tgz", + "integrity": "sha512-MUv6t0FhO5qHnS/W8XCbHmiRWOphNufpE1IVxhK5kuN3Td9FT1x4rx4K42s3RYdMXCXpfWkGSbCSd0Z64xA7Ng==", "dev": true, + "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.24.7" + "@babel/helper-plugin-utils": "^7.25.9" }, "engines": { "node": ">=6.9.0" @@ -2209,13 +2249,14 @@ } }, "node_modules/@babel/plugin-transform-spread": { - "version": "7.24.7", - "resolved": "https://npm.sinequa.com/@babel/plugin-transform-spread/-/plugin-transform-spread-7.24.7.tgz", - "integrity": "sha512-x96oO0I09dgMDxJaANcRyD4ellXFLLiWhuwDxKZX5g2rWP1bTPkBSwCYv96VDXVT1bD9aPj8tppr5ITIh8hBng==", + "version": "7.25.9", + "resolved": "https://npm.sinequa.com/@babel/plugin-transform-spread/-/plugin-transform-spread-7.25.9.tgz", + "integrity": "sha512-oNknIB0TbURU5pqJFVbOOFspVlrpVwo2H1+HUIsVDvp5VauGGDP1ZEvO8Nn5xyMEs3dakajOxlmkNW7kNgSm6A==", "dev": true, + "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.24.7", - "@babel/helper-skip-transparent-expression-wrappers": "^7.24.7" + "@babel/helper-plugin-utils": "^7.25.9", + "@babel/helper-skip-transparent-expression-wrappers": "^7.25.9" }, "engines": { "node": ">=6.9.0" @@ -2225,12 +2266,13 @@ } }, "node_modules/@babel/plugin-transform-sticky-regex": { - "version": "7.24.7", - "resolved": "https://npm.sinequa.com/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.24.7.tgz", - "integrity": "sha512-kHPSIJc9v24zEml5geKg9Mjx5ULpfncj0wRpYtxbvKyTtHCYDkVE3aHQ03FrpEo4gEe2vrJJS1Y9CJTaThA52g==", + "version": "7.25.9", + "resolved": "https://npm.sinequa.com/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.25.9.tgz", + "integrity": "sha512-WqBUSgeVwucYDP9U/xNRQam7xV8W5Zf+6Eo7T2SRVUFlhRiMNFdFz58u0KZmCVVqs2i7SHgpRnAhzRNmKfi2uA==", "dev": true, + "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.24.7" + "@babel/helper-plugin-utils": "^7.25.9" }, "engines": { "node": ">=6.9.0" @@ -2240,12 +2282,13 @@ } }, "node_modules/@babel/plugin-transform-template-literals": { - "version": "7.24.7", - "resolved": "https://npm.sinequa.com/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.24.7.tgz", - "integrity": "sha512-AfDTQmClklHCOLxtGoP7HkeMw56k1/bTQjwsfhL6pppo/M4TOBSq+jjBUBLmV/4oeFg4GWMavIl44ZeCtmmZTw==", + "version": "7.25.9", + "resolved": "https://npm.sinequa.com/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.25.9.tgz", + "integrity": "sha512-o97AE4syN71M/lxrCtQByzphAdlYluKPDBzDVzMmfCobUjjhAryZV0AIpRPrxN0eAkxXO6ZLEScmt+PNhj2OTw==", "dev": true, + "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.24.7" + "@babel/helper-plugin-utils": "^7.25.9" }, "engines": { "node": ">=6.9.0" @@ -2255,12 +2298,13 @@ } }, "node_modules/@babel/plugin-transform-typeof-symbol": { - "version": "7.24.8", - "resolved": "https://npm.sinequa.com/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.24.8.tgz", - "integrity": "sha512-adNTUpDCVnmAE58VEqKlAA6ZBlNkMnWD0ZcW76lyNFN3MJniyGFZfNwERVk8Ap56MCnXztmDr19T4mPTztcuaw==", + "version": "7.25.9", + "resolved": "https://npm.sinequa.com/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.25.9.tgz", + "integrity": "sha512-v61XqUMiueJROUv66BVIOi0Fv/CUuZuZMl5NkRoCVxLAnMexZ0A3kMe7vvZ0nulxMuMp0Mk6S5hNh48yki08ZA==", "dev": true, + "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.24.8" + "@babel/helper-plugin-utils": "^7.25.9" }, "engines": { "node": ">=6.9.0" @@ -2270,12 +2314,13 @@ } }, "node_modules/@babel/plugin-transform-unicode-escapes": { - "version": "7.24.7", - "resolved": "https://npm.sinequa.com/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.24.7.tgz", - "integrity": "sha512-U3ap1gm5+4edc2Q/P+9VrBNhGkfnf+8ZqppY71Bo/pzZmXhhLdqgaUl6cuB07O1+AQJtCLfaOmswiNbSQ9ivhw==", + "version": "7.25.9", + "resolved": "https://npm.sinequa.com/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.25.9.tgz", + "integrity": "sha512-s5EDrE6bW97LtxOcGj1Khcx5AaXwiMmi4toFWRDP9/y0Woo6pXC+iyPu/KuhKtfSrNFd7jJB+/fkOtZy6aIC6Q==", "dev": true, + "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.24.7" + "@babel/helper-plugin-utils": "^7.25.9" }, "engines": { "node": ">=6.9.0" @@ -2285,13 +2330,14 @@ } }, "node_modules/@babel/plugin-transform-unicode-property-regex": { - "version": "7.24.7", - "resolved": "https://npm.sinequa.com/@babel/plugin-transform-unicode-property-regex/-/plugin-transform-unicode-property-regex-7.24.7.tgz", - "integrity": "sha512-uH2O4OV5M9FZYQrwc7NdVmMxQJOCCzFeYudlZSzUAHRFeOujQefa92E74TQDVskNHCzOXoigEuoyzHDhaEaK5w==", + "version": "7.25.9", + "resolved": "https://npm.sinequa.com/@babel/plugin-transform-unicode-property-regex/-/plugin-transform-unicode-property-regex-7.25.9.tgz", + "integrity": "sha512-Jt2d8Ga+QwRluxRQ307Vlxa6dMrYEMZCgGxoPR8V52rxPyldHu3hdlHspxaqYmE7oID5+kB+UKUB/eWS+DkkWg==", "dev": true, + "license": "MIT", "dependencies": { - "@babel/helper-create-regexp-features-plugin": "^7.24.7", - "@babel/helper-plugin-utils": "^7.24.7" + "@babel/helper-create-regexp-features-plugin": "^7.25.9", + "@babel/helper-plugin-utils": "^7.25.9" }, "engines": { "node": ">=6.9.0" @@ -2301,13 +2347,14 @@ } }, "node_modules/@babel/plugin-transform-unicode-regex": { - "version": "7.24.7", - "resolved": "https://npm.sinequa.com/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.24.7.tgz", - "integrity": "sha512-hlQ96MBZSAXUq7ltkjtu3FJCCSMx/j629ns3hA3pXnBXjanNP0LHi+JpPeA81zaWgVK1VGH95Xuy7u0RyQ8kMg==", + "version": "7.25.9", + "resolved": "https://npm.sinequa.com/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.25.9.tgz", + "integrity": "sha512-yoxstj7Rg9dlNn9UQxzk4fcNivwv4nUYz7fYXBaKxvw/lnmPuOm/ikoELygbYq68Bls3D/D+NBPHiLwZdZZ4HA==", "dev": true, + "license": "MIT", "dependencies": { - "@babel/helper-create-regexp-features-plugin": "^7.24.7", - "@babel/helper-plugin-utils": "^7.24.7" + "@babel/helper-create-regexp-features-plugin": "^7.25.9", + "@babel/helper-plugin-utils": "^7.25.9" }, "engines": { "node": ">=6.9.0" @@ -2317,13 +2364,14 @@ } }, "node_modules/@babel/plugin-transform-unicode-sets-regex": { - "version": "7.25.4", - "resolved": "https://npm.sinequa.com/@babel/plugin-transform-unicode-sets-regex/-/plugin-transform-unicode-sets-regex-7.25.4.tgz", - "integrity": "sha512-qesBxiWkgN1Q+31xUE9RcMk79eOXXDCv6tfyGMRSs4RGlioSg2WVyQAm07k726cSE56pa+Kb0y9epX2qaXzTvA==", + "version": "7.25.9", + "resolved": "https://npm.sinequa.com/@babel/plugin-transform-unicode-sets-regex/-/plugin-transform-unicode-sets-regex-7.25.9.tgz", + "integrity": "sha512-8BYqO3GeVNHtx69fdPshN3fnzUNLrWdHhk/icSwigksJGczKSizZ+Z6SBCxTs723Fr5VSNorTIK7a+R2tISvwQ==", "dev": true, + "license": "MIT", "dependencies": { - "@babel/helper-create-regexp-features-plugin": "^7.25.2", - "@babel/helper-plugin-utils": "^7.24.8" + "@babel/helper-create-regexp-features-plugin": "^7.25.9", + "@babel/helper-plugin-utils": "^7.25.9" }, "engines": { "node": ">=6.9.0" @@ -2337,6 +2385,7 @@ "resolved": "https://npm.sinequa.com/@babel/preset-env/-/preset-env-7.25.3.tgz", "integrity": "sha512-QsYW7UeAaXvLPX9tdVliMJE7MD7M6MLYVTovRTIwhoYQVFHR1rM4wO8wqAezYi3/BpSD+NzVCZ69R6smWiIi8g==", "dev": true, + "license": "MIT", "dependencies": { "@babel/compat-data": "^7.25.2", "@babel/helper-compilation-targets": "^7.25.2", @@ -2434,6 +2483,7 @@ "resolved": "https://npm.sinequa.com/semver/-/semver-6.3.1.tgz", "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", "dev": true, + "license": "ISC", "bin": { "semver": "bin/semver.js" } @@ -2443,6 +2493,7 @@ "resolved": "https://npm.sinequa.com/@babel/preset-modules/-/preset-modules-0.1.6-no-external-plugins.tgz", "integrity": "sha512-HrcgcIESLm9aIR842yhJ5RWan/gebQUJ6E/E5+rf0y9o6oj7w0Br+sWuL6kEQ/o/AdfvR1Je9jG18/gnpwjEyA==", "dev": true, + "license": "MIT", "dependencies": { "@babel/helper-plugin-utils": "^7.0.0", "@babel/types": "^7.4.4", @@ -2452,17 +2503,12 @@ "@babel/core": "^7.0.0-0 || ^8.0.0-0 <8.0.0" } }, - "node_modules/@babel/regjsgen": { - "version": "0.8.0", - "resolved": "https://npm.sinequa.com/@babel/regjsgen/-/regjsgen-0.8.0.tgz", - "integrity": "sha512-x/rqGMdzj+fWZvCOYForTghzbtqPDZ5gPwaoNGHdgDfF2QA/XZbCBp4Moo5scrkAMPhB7z26XM/AaHuIJdgauA==", - "dev": true - }, "node_modules/@babel/runtime": { "version": "7.25.0", "resolved": "https://npm.sinequa.com/@babel/runtime/-/runtime-7.25.0.tgz", "integrity": "sha512-7dRy4DwXwtzBrPbZflqxnvfxLF8kdZXPkhymtDeFoFqE6ldzjQFgYTtYIFARcLEYDrqfBfYcZt1WqFxRoyC9Rw==", "dev": true, + "license": "MIT", "dependencies": { "regenerator-runtime": "^0.14.0" }, @@ -2471,30 +2517,32 @@ } }, "node_modules/@babel/template": { - "version": "7.25.0", - "resolved": "https://npm.sinequa.com/@babel/template/-/template-7.25.0.tgz", - "integrity": "sha512-aOOgh1/5XzKvg1jvVz7AVrx2piJ2XBi227DHmbY6y+bM9H2FlN+IfecYu4Xl0cNiiVejlsCri89LUsbj8vJD9Q==", + "version": "7.25.9", + "resolved": "https://npm.sinequa.com/@babel/template/-/template-7.25.9.tgz", + "integrity": "sha512-9DGttpmPvIxBb/2uwpVo3dqJ+O6RooAFOS+lB+xDqoE2PVCE8nfoHMdZLpfCQRLwvohzXISPZcgxt80xLfsuwg==", "dev": true, + "license": "MIT", "dependencies": { - "@babel/code-frame": "^7.24.7", - "@babel/parser": "^7.25.0", - "@babel/types": "^7.25.0" + "@babel/code-frame": "^7.25.9", + "@babel/parser": "^7.25.9", + "@babel/types": "^7.25.9" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/traverse": { - "version": "7.25.6", - "resolved": "https://npm.sinequa.com/@babel/traverse/-/traverse-7.25.6.tgz", - "integrity": "sha512-9Vrcx5ZW6UwK5tvqsj0nGpp/XzqthkT0dqIc9g1AdtygFToNtTF67XzYS//dm+SAK9cp3B9R4ZO/46p63SCjlQ==", + "version": "7.26.5", + "resolved": "https://npm.sinequa.com/@babel/traverse/-/traverse-7.26.5.tgz", + "integrity": "sha512-rkOSPOw+AXbgtwUga3U4u8RpoK9FEFWBNAlTpcnkLFjL5CT+oyHNuUUC/xx6XefEJ16r38r8Bc/lfp6rYuHeJQ==", "dev": true, + "license": "MIT", "dependencies": { - "@babel/code-frame": "^7.24.7", - "@babel/generator": "^7.25.6", - "@babel/parser": "^7.25.6", - "@babel/template": "^7.25.0", - "@babel/types": "^7.25.6", + "@babel/code-frame": "^7.26.2", + "@babel/generator": "^7.26.5", + "@babel/parser": "^7.26.5", + "@babel/template": "^7.25.9", + "@babel/types": "^7.26.5", "debug": "^4.3.1", "globals": "^11.1.0" }, @@ -2503,29 +2551,44 @@ } }, "node_modules/@babel/traverse/node_modules/@babel/generator": { - "version": "7.25.6", - "resolved": "https://npm.sinequa.com/@babel/generator/-/generator-7.25.6.tgz", - "integrity": "sha512-VPC82gr1seXOpkjAAKoLhP50vx4vGNlF4msF64dSFq1P8RfB+QAuJWGHPXXPc8QyfVWwwB/TNNU4+ayZmHNbZw==", + "version": "7.26.5", + "resolved": "https://npm.sinequa.com/@babel/generator/-/generator-7.26.5.tgz", + "integrity": "sha512-2caSP6fN9I7HOe6nqhtft7V4g7/V/gfDsC3Ag4W7kEzzvRGKqiv0pu0HogPiZ3KaVSoNDhUws6IJjDjpfmYIXw==", "dev": true, + "license": "MIT", "dependencies": { - "@babel/types": "^7.25.6", + "@babel/parser": "^7.26.5", + "@babel/types": "^7.26.5", "@jridgewell/gen-mapping": "^0.3.5", "@jridgewell/trace-mapping": "^0.3.25", - "jsesc": "^2.5.1" + "jsesc": "^3.0.2" }, "engines": { "node": ">=6.9.0" } }, + "node_modules/@babel/traverse/node_modules/jsesc": { + "version": "3.1.0", + "resolved": "https://npm.sinequa.com/jsesc/-/jsesc-3.1.0.tgz", + "integrity": "sha512-/sM3dO2FOzXjKQhJuo0Q173wf2KOo8t4I8vHy6lF9poUp7bKT0/NHE8fPX23PwfhnykfqnC2xRxOnVw5XuGIaA==", + "dev": true, + "license": "MIT", + "bin": { + "jsesc": "bin/jsesc" + }, + "engines": { + "node": ">=6" + } + }, "node_modules/@babel/types": { - "version": "7.25.6", - "resolved": "https://npm.sinequa.com/@babel/types/-/types-7.25.6.tgz", - "integrity": "sha512-/l42B1qxpG6RdfYf343Uw1vmDjeNhneUXtzhojE7pDgfpEypmRhI6j1kr17XCVv4Cgl9HdAiQY2x0GwKm7rWCw==", + "version": "7.26.5", + "resolved": "https://npm.sinequa.com/@babel/types/-/types-7.26.5.tgz", + "integrity": "sha512-L6mZmwFDK6Cjh1nRCLXpa6no13ZIioJDz7mdkzHv399pThrTa/k0nUlNaenOeh2kWu/iaOQYElEpKPUswUa9Vg==", "dev": true, + "license": "MIT", "dependencies": { - "@babel/helper-string-parser": "^7.24.8", - "@babel/helper-validator-identifier": "^7.24.7", - "to-fast-properties": "^2.0.0" + "@babel/helper-string-parser": "^7.25.9", + "@babel/helper-validator-identifier": "^7.25.9" }, "engines": { "node": ">=6.9.0" @@ -2536,6 +2599,7 @@ "resolved": "https://npm.sinequa.com/@discoveryjs/json-ext/-/json-ext-0.6.1.tgz", "integrity": "sha512-boghen8F0Q8D+0/Q1/1r6DUEieUJ8w2a1gIknExMSHBsJFOr2+0KUfHiVYBvucPwl3+RU5PFBK833FjFCh3BhA==", "dev": true, + "license": "MIT", "engines": { "node": ">=14.17.0" } @@ -2548,6 +2612,7 @@ "ppc64" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "aix" @@ -2564,6 +2629,7 @@ "arm" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "android" @@ -2580,6 +2646,7 @@ "arm64" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "android" @@ -2596,6 +2663,7 @@ "x64" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "android" @@ -2612,6 +2680,7 @@ "arm64" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "darwin" @@ -2628,6 +2697,7 @@ "x64" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "darwin" @@ -2644,6 +2714,7 @@ "arm64" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "freebsd" @@ -2660,6 +2731,7 @@ "x64" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "freebsd" @@ -2676,6 +2748,7 @@ "arm" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "linux" @@ -2692,6 +2765,7 @@ "arm64" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "linux" @@ -2708,6 +2782,7 @@ "ia32" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "linux" @@ -2724,6 +2799,7 @@ "loong64" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "linux" @@ -2740,6 +2816,7 @@ "mips64el" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "linux" @@ -2756,6 +2833,7 @@ "ppc64" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "linux" @@ -2772,6 +2850,7 @@ "riscv64" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "linux" @@ -2788,6 +2867,7 @@ "s390x" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "linux" @@ -2804,6 +2884,7 @@ "x64" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "linux" @@ -2820,6 +2901,7 @@ "x64" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "netbsd" @@ -2836,6 +2918,7 @@ "arm64" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "openbsd" @@ -2852,6 +2935,7 @@ "x64" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "openbsd" @@ -2868,6 +2952,7 @@ "x64" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "sunos" @@ -2884,6 +2969,7 @@ "arm64" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "win32" @@ -2900,6 +2986,7 @@ "ia32" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "win32" @@ -2916,6 +3003,7 @@ "x64" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "win32" @@ -2925,35 +3013,39 @@ } }, "node_modules/@floating-ui/core": { - "version": "1.6.2", - "resolved": "https://npm.sinequa.com:4873/@floating-ui/core/-/core-1.6.2.tgz", - "integrity": "sha512-+2XpQV9LLZeanU4ZevzRnGFg2neDeKHgFLjP6YLW+tly0IvrhqT4u8enLGjLH3qeh85g19xY5rsAusfwTdn5lg==", + "version": "1.6.9", + "resolved": "https://npm.sinequa.com/@floating-ui/core/-/core-1.6.9.tgz", + "integrity": "sha512-uMXCuQ3BItDUbAMhIXw7UPXRfAlOAvZzdK9BWpE60MCn+Svt3aLn9jsPTi/WNGlRUu2uI0v5S7JiIUsbsvh3fw==", "dev": true, + "license": "MIT", "dependencies": { - "@floating-ui/utils": "^0.2.0" + "@floating-ui/utils": "^0.2.9" } }, "node_modules/@floating-ui/dom": { - "version": "1.6.5", - "resolved": "https://npm.sinequa.com:4873/@floating-ui/dom/-/dom-1.6.5.tgz", - "integrity": "sha512-Nsdud2X65Dz+1RHjAIP0t8z5e2ff/IRbei6BqFrl1urT8sDVzM1HMQ+R0XcU5ceRfyO3I6ayeqIfh+6Wb8LGTw==", + "version": "1.6.13", + "resolved": "https://npm.sinequa.com/@floating-ui/dom/-/dom-1.6.13.tgz", + "integrity": "sha512-umqzocjDgNRGTuO7Q8CU32dkHkECqI8ZdMZ5Swb6QAM0t5rnlrN3lGo1hdpscRd3WS8T6DKYK4ephgIH9iRh3w==", "dev": true, + "license": "MIT", "dependencies": { - "@floating-ui/core": "^1.0.0", - "@floating-ui/utils": "^0.2.0" + "@floating-ui/core": "^1.6.0", + "@floating-ui/utils": "^0.2.9" } }, "node_modules/@floating-ui/utils": { - "version": "0.2.2", - "resolved": "https://npm.sinequa.com:4873/@floating-ui/utils/-/utils-0.2.2.tgz", - "integrity": "sha512-J4yDIIthosAsRZ5CPYP/jQvUAQtlZTTD/4suA08/FEnlxqW3sKS9iAhgsa9VYLZ6vDHn/ixJgIqRQPotoBjxIw==", - "dev": true + "version": "0.2.9", + "resolved": "https://npm.sinequa.com/@floating-ui/utils/-/utils-0.2.9.tgz", + "integrity": "sha512-MDWhGtE+eHw5JW7lq4qhc5yRLS11ERl1c7Z6Xd0a58DozHES6EnNNwUWbMiG4J9Cgj053Bhk8zvlhFYKVhULwg==", + "dev": true, + "license": "MIT" }, "node_modules/@inquirer/checkbox": { "version": "2.5.0", "resolved": "https://npm.sinequa.com/@inquirer/checkbox/-/checkbox-2.5.0.tgz", "integrity": "sha512-sMgdETOfi2dUHT8r7TT1BTKOwNvdDGFDXYWtQ2J69SvlYNntk9I/gJe7r5yvMwwsuKnYbuRs3pNhx4tgNck5aA==", "dev": true, + "license": "MIT", "dependencies": { "@inquirer/core": "^9.1.0", "@inquirer/figures": "^1.0.5", @@ -2970,6 +3062,7 @@ "resolved": "https://npm.sinequa.com/@inquirer/confirm/-/confirm-3.1.22.tgz", "integrity": "sha512-gsAKIOWBm2Q87CDfs9fEo7wJT3fwWIJfnDGMn9Qy74gBnNFOACDNfhUzovubbJjWnKLGBln7/NcSmZwj5DuEXg==", "dev": true, + "license": "MIT", "dependencies": { "@inquirer/core": "^9.0.10", "@inquirer/type": "^1.5.2" @@ -2983,6 +3076,7 @@ "resolved": "https://npm.sinequa.com/@inquirer/core/-/core-9.2.1.tgz", "integrity": "sha512-F2VBt7W/mwqEU4bL0RnHNZmC/OxzNx9cOYxHqnXX3MP6ruYvZUZAW9imgN9+h/uBT/oP8Gh888J2OZSbjSeWcg==", "dev": true, + "license": "MIT", "dependencies": { "@inquirer/figures": "^1.0.6", "@inquirer/type": "^2.0.0", @@ -3006,6 +3100,7 @@ "resolved": "https://npm.sinequa.com/@inquirer/type/-/type-2.0.0.tgz", "integrity": "sha512-XvJRx+2KR3YXyYtPUUy+qd9i7p+GO9Ko6VIIpWlBrpWwXDv8WLFeHTxz35CfQFUiBMLXlGHhGzys7lqit9gWag==", "dev": true, + "license": "MIT", "dependencies": { "mute-stream": "^1.0.0" }, @@ -3014,12 +3109,13 @@ } }, "node_modules/@inquirer/core/node_modules/@types/node": { - "version": "22.7.0", - "resolved": "https://npm.sinequa.com/@types/node/-/node-22.7.0.tgz", - "integrity": "sha512-MOdOibwBs6KW1vfqz2uKMlxq5xAfAZ98SZjO8e3XnAbFnTJtAspqhWk7hrdSAs9/Y14ZWMiy7/MxMUzAOadYEw==", + "version": "22.10.9", + "resolved": "https://npm.sinequa.com/@types/node/-/node-22.10.9.tgz", + "integrity": "sha512-Ir6hwgsKyNESl/gLOcEz3krR4CBGgliDqBQ2ma4wIhEx0w+xnoeTq3tdrNw15kU3SxogDjOgv9sqdtLW8mIHaw==", "dev": true, + "license": "MIT", "dependencies": { - "undici-types": "~6.19.2" + "undici-types": "~6.20.0" } }, "node_modules/@inquirer/editor": { @@ -3027,6 +3123,7 @@ "resolved": "https://npm.sinequa.com/@inquirer/editor/-/editor-2.2.0.tgz", "integrity": "sha512-9KHOpJ+dIL5SZli8lJ6xdaYLPPzB8xB9GZItg39MBybzhxA16vxmszmQFrRwbOA918WA2rvu8xhDEg/p6LXKbw==", "dev": true, + "license": "MIT", "dependencies": { "@inquirer/core": "^9.1.0", "@inquirer/type": "^1.5.3", @@ -3041,6 +3138,7 @@ "resolved": "https://npm.sinequa.com/@inquirer/expand/-/expand-2.3.0.tgz", "integrity": "sha512-qnJsUcOGCSG1e5DTOErmv2BPQqrtT6uzqn1vI/aYGiPKq+FgslGZmtdnXbhuI7IlT7OByDoEEqdnhUnVR2hhLw==", "dev": true, + "license": "MIT", "dependencies": { "@inquirer/core": "^9.1.0", "@inquirer/type": "^1.5.3", @@ -3051,10 +3149,11 @@ } }, "node_modules/@inquirer/figures": { - "version": "1.0.6", - "resolved": "https://npm.sinequa.com/@inquirer/figures/-/figures-1.0.6.tgz", - "integrity": "sha512-yfZzps3Cso2UbM7WlxKwZQh2Hs6plrbjs1QnzQDZhK2DgyCo6D8AaHps9olkNcUFlcYERMqU3uJSp1gmy3s/qQ==", + "version": "1.0.9", + "resolved": "https://npm.sinequa.com/@inquirer/figures/-/figures-1.0.9.tgz", + "integrity": "sha512-BXvGj0ehzrngHTPTDqUoDT3NXL8U0RxUk2zJm2A66RhCEIWdtU1v6GuUqNAgArW4PQ9CinqIWyHdQgdwOj06zQ==", "dev": true, + "license": "MIT", "engines": { "node": ">=18" } @@ -3064,6 +3163,7 @@ "resolved": "https://npm.sinequa.com/@inquirer/input/-/input-2.3.0.tgz", "integrity": "sha512-XfnpCStx2xgh1LIRqPXrTNEEByqQWoxsWYzNRSEUxJ5c6EQlhMogJ3vHKu8aXuTacebtaZzMAHwEL0kAflKOBw==", "dev": true, + "license": "MIT", "dependencies": { "@inquirer/core": "^9.1.0", "@inquirer/type": "^1.5.3" @@ -3077,6 +3177,7 @@ "resolved": "https://npm.sinequa.com/@inquirer/number/-/number-1.1.0.tgz", "integrity": "sha512-ilUnia/GZUtfSZy3YEErXLJ2Sljo/mf9fiKc08n18DdwdmDbOzRcTv65H1jjDvlsAuvdFXf4Sa/aL7iw/NanVA==", "dev": true, + "license": "MIT", "dependencies": { "@inquirer/core": "^9.1.0", "@inquirer/type": "^1.5.3" @@ -3090,6 +3191,7 @@ "resolved": "https://npm.sinequa.com/@inquirer/password/-/password-2.2.0.tgz", "integrity": "sha512-5otqIpgsPYIshqhgtEwSspBQE40etouR8VIxzpJkv9i0dVHIpyhiivbkH9/dGiMLdyamT54YRdGJLfl8TFnLHg==", "dev": true, + "license": "MIT", "dependencies": { "@inquirer/core": "^9.1.0", "@inquirer/type": "^1.5.3", @@ -3104,6 +3206,7 @@ "resolved": "https://npm.sinequa.com/@inquirer/prompts/-/prompts-5.3.8.tgz", "integrity": "sha512-b2BudQY/Si4Y2a0PdZZL6BeJtl8llgeZa7U2j47aaJSCeAl1e4UI7y8a9bSkO3o/ZbZrgT5muy/34JbsjfIWxA==", "dev": true, + "license": "MIT", "dependencies": { "@inquirer/checkbox": "^2.4.7", "@inquirer/confirm": "^3.1.22", @@ -3125,6 +3228,7 @@ "resolved": "https://npm.sinequa.com/@inquirer/rawlist/-/rawlist-2.3.0.tgz", "integrity": "sha512-zzfNuINhFF7OLAtGHfhwOW2TlYJyli7lOUoJUXw/uyklcwalV6WRXBXtFIicN8rTRK1XTiPWB4UY+YuW8dsnLQ==", "dev": true, + "license": "MIT", "dependencies": { "@inquirer/core": "^9.1.0", "@inquirer/type": "^1.5.3", @@ -3139,6 +3243,7 @@ "resolved": "https://npm.sinequa.com/@inquirer/search/-/search-1.1.0.tgz", "integrity": "sha512-h+/5LSj51dx7hp5xOn4QFnUaKeARwUCLs6mIhtkJ0JYPBLmEYjdHSYh7I6GrLg9LwpJ3xeX0FZgAG1q0QdCpVQ==", "dev": true, + "license": "MIT", "dependencies": { "@inquirer/core": "^9.1.0", "@inquirer/figures": "^1.0.5", @@ -3154,6 +3259,7 @@ "resolved": "https://npm.sinequa.com/@inquirer/select/-/select-2.5.0.tgz", "integrity": "sha512-YmDobTItPP3WcEI86GvPo+T2sRHkxxOq/kXmsBjHS5BVXUgvgZ5AfJjkvQvZr03T81NnI3KrrRuMzeuYUQRFOA==", "dev": true, + "license": "MIT", "dependencies": { "@inquirer/core": "^9.1.0", "@inquirer/figures": "^1.0.5", @@ -3170,6 +3276,7 @@ "resolved": "https://npm.sinequa.com/@inquirer/type/-/type-1.5.5.tgz", "integrity": "sha512-MzICLu4yS7V8AA61sANROZ9vT1H3ooca5dSmI1FjZkzq7o/koMsRfQSzRtFo+F3Ao4Sf1C0bpLKejpKB/+j6MA==", "dev": true, + "license": "MIT", "dependencies": { "mute-stream": "^1.0.0" }, @@ -3179,8 +3286,9 @@ }, "node_modules/@isaacs/cliui": { "version": "8.0.2", - "resolved": "https://npm.sinequa.com:4873/@isaacs/cliui/-/cliui-8.0.2.tgz", + "resolved": "https://npm.sinequa.com/@isaacs/cliui/-/cliui-8.0.2.tgz", "integrity": "sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==", + "license": "ISC", "dependencies": { "string-width": "^5.1.2", "string-width-cjs": "npm:string-width@^4.2.0", @@ -3194,9 +3302,10 @@ } }, "node_modules/@isaacs/cliui/node_modules/ansi-regex": { - "version": "6.0.1", - "resolved": "https://npm.sinequa.com:4873/ansi-regex/-/ansi-regex-6.0.1.tgz", - "integrity": "sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==", + "version": "6.1.0", + "resolved": "https://npm.sinequa.com/ansi-regex/-/ansi-regex-6.1.0.tgz", + "integrity": "sha512-7HSX4QQb4CspciLpVFwyRe79O3xsIZDDLER21kERQ71oaPodF8jL725AgJMFAYbooIqolJoRLuM81SpeUkpkvA==", + "license": "MIT", "engines": { "node": ">=12" }, @@ -3206,8 +3315,9 @@ }, "node_modules/@isaacs/cliui/node_modules/ansi-styles": { "version": "6.2.1", - "resolved": "https://npm.sinequa.com:4873/ansi-styles/-/ansi-styles-6.2.1.tgz", + "resolved": "https://npm.sinequa.com/ansi-styles/-/ansi-styles-6.2.1.tgz", "integrity": "sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==", + "license": "MIT", "engines": { "node": ">=12" }, @@ -3215,31 +3325,11 @@ "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, - "node_modules/@isaacs/cliui/node_modules/emoji-regex": { - "version": "9.2.2", - "resolved": "https://npm.sinequa.com:4873/emoji-regex/-/emoji-regex-9.2.2.tgz", - "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==" - }, - "node_modules/@isaacs/cliui/node_modules/string-width": { - "version": "5.1.2", - "resolved": "https://npm.sinequa.com:4873/string-width/-/string-width-5.1.2.tgz", - "integrity": "sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==", - "dependencies": { - "eastasianwidth": "^0.2.0", - "emoji-regex": "^9.2.2", - "strip-ansi": "^7.0.1" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/@isaacs/cliui/node_modules/strip-ansi": { "version": "7.1.0", - "resolved": "https://npm.sinequa.com:4873/strip-ansi/-/strip-ansi-7.1.0.tgz", + "resolved": "https://npm.sinequa.com/strip-ansi/-/strip-ansi-7.1.0.tgz", "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==", + "license": "MIT", "dependencies": { "ansi-regex": "^6.0.1" }, @@ -3252,8 +3342,9 @@ }, "node_modules/@isaacs/cliui/node_modules/wrap-ansi": { "version": "8.1.0", - "resolved": "https://npm.sinequa.com:4873/wrap-ansi/-/wrap-ansi-8.1.0.tgz", + "resolved": "https://npm.sinequa.com/wrap-ansi/-/wrap-ansi-8.1.0.tgz", "integrity": "sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==", + "license": "MIT", "dependencies": { "ansi-styles": "^6.1.0", "string-width": "^5.0.1", @@ -3271,15 +3362,17 @@ "resolved": "https://npm.sinequa.com/@istanbuljs/schema/-/schema-0.1.3.tgz", "integrity": "sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA==", "dev": true, + "license": "MIT", "engines": { "node": ">=8" } }, "node_modules/@jridgewell/gen-mapping": { - "version": "0.3.5", - "resolved": "https://npm.sinequa.com:4873/@jridgewell/gen-mapping/-/gen-mapping-0.3.5.tgz", - "integrity": "sha512-IzL8ZoEDIBRWEzlCcRhOaCupYyN5gdIK+Q6fbFdPDg6HqX6jpkItn7DFIpW9LQzXG6Df9sA7+OKnq0qlz/GaQg==", + "version": "0.3.8", + "resolved": "https://npm.sinequa.com/@jridgewell/gen-mapping/-/gen-mapping-0.3.8.tgz", + "integrity": "sha512-imAbBGkb+ebQyxKgzv5Hu2nmROxoDOXHh80evxdoXNOrvAnVx7zimzc1Oo5h9RlfV4vPXaE2iM5pOFbvOCClWA==", "dev": true, + "license": "MIT", "dependencies": { "@jridgewell/set-array": "^1.2.1", "@jridgewell/sourcemap-codec": "^1.4.10", @@ -3291,18 +3384,20 @@ }, "node_modules/@jridgewell/resolve-uri": { "version": "3.1.2", - "resolved": "https://npm.sinequa.com:4873/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz", + "resolved": "https://npm.sinequa.com/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz", "integrity": "sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==", "dev": true, + "license": "MIT", "engines": { "node": ">=6.0.0" } }, "node_modules/@jridgewell/set-array": { "version": "1.2.1", - "resolved": "https://npm.sinequa.com:4873/@jridgewell/set-array/-/set-array-1.2.1.tgz", + "resolved": "https://npm.sinequa.com/@jridgewell/set-array/-/set-array-1.2.1.tgz", "integrity": "sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A==", "dev": true, + "license": "MIT", "engines": { "node": ">=6.0.0" } @@ -3312,6 +3407,7 @@ "resolved": "https://npm.sinequa.com/@jridgewell/source-map/-/source-map-0.3.6.tgz", "integrity": "sha512-1ZJTZebgqllO79ue2bm3rIGud/bOe0pP5BjSRCRxxYkEZS8STV7zN84UBbiYu7jy+eCKSnVIUgoWWE/tt+shMQ==", "dev": true, + "license": "MIT", "dependencies": { "@jridgewell/gen-mapping": "^0.3.5", "@jridgewell/trace-mapping": "^0.3.25" @@ -3321,13 +3417,14 @@ "version": "1.5.0", "resolved": "https://npm.sinequa.com/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.0.tgz", "integrity": "sha512-gv3ZRaISU3fjPAgNsriBRqGWQL6quFx04YMPW/zD8XMLsU32mhCCbfbO6KZFLjvYpCZ8zyDEgqsgf+PwPaM7GQ==", - "dev": true + "license": "MIT" }, "node_modules/@jridgewell/trace-mapping": { "version": "0.3.25", - "resolved": "https://npm.sinequa.com:4873/@jridgewell/trace-mapping/-/trace-mapping-0.3.25.tgz", + "resolved": "https://npm.sinequa.com/@jridgewell/trace-mapping/-/trace-mapping-0.3.25.tgz", "integrity": "sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==", "dev": true, + "license": "MIT", "dependencies": { "@jridgewell/resolve-uri": "^3.1.0", "@jridgewell/sourcemap-codec": "^1.4.14" @@ -3335,9 +3432,10 @@ }, "node_modules/@jsonjoy.com/base64": { "version": "1.1.2", - "resolved": "https://npm.sinequa.com:4873/@jsonjoy.com/base64/-/base64-1.1.2.tgz", + "resolved": "https://npm.sinequa.com/@jsonjoy.com/base64/-/base64-1.1.2.tgz", "integrity": "sha512-q6XAnWQDIMA3+FTiOYajoYqySkO+JSat0ytXGSuRdq9uXE7o92gzuQwQM14xaCRlBLGq3v5miDGC4vkVTn54xA==", "dev": true, + "license": "Apache-2.0", "engines": { "node": ">=10.0" }, @@ -3350,10 +3448,11 @@ } }, "node_modules/@jsonjoy.com/json-pack": { - "version": "1.0.4", - "resolved": "https://npm.sinequa.com:4873/@jsonjoy.com/json-pack/-/json-pack-1.0.4.tgz", - "integrity": "sha512-aOcSN4MeAtFROysrbqG137b7gaDDSmVrl5mpo6sT/w+kcXpWnzhMjmY/Fh/sDx26NBxyIE7MB1seqLeCAzy9Sg==", + "version": "1.1.1", + "resolved": "https://npm.sinequa.com/@jsonjoy.com/json-pack/-/json-pack-1.1.1.tgz", + "integrity": "sha512-osjeBqMJ2lb/j/M8NCPjs1ylqWIcTRTycIhVB5pt6LgzgeRSb0YRZ7j9RfA8wIUrsr/medIuhVyonXRZWLyfdw==", "dev": true, + "license": "Apache-2.0", "dependencies": { "@jsonjoy.com/base64": "^1.1.1", "@jsonjoy.com/util": "^1.1.2", @@ -3372,10 +3471,11 @@ } }, "node_modules/@jsonjoy.com/util": { - "version": "1.1.3", - "resolved": "https://npm.sinequa.com:4873/@jsonjoy.com/util/-/util-1.1.3.tgz", - "integrity": "sha512-g//kkF4kOwUjemValCtOc/xiYzmwMRmWq3Bn+YnzOzuZLHq2PpMOxxIayN3cKbo7Ko2Np65t6D9H81IvXbXhqg==", + "version": "1.5.0", + "resolved": "https://npm.sinequa.com/@jsonjoy.com/util/-/util-1.5.0.tgz", + "integrity": "sha512-ojoNsrIuPI9g6o8UxhraZQSyF2ByJanAY4cTFbc8Mf2AXEF4aQRGY1dJxyJpuyav8r9FGflEt/Ff3u5Nt6YMPA==", "dev": true, + "license": "Apache-2.0", "engines": { "node": ">=10.0" }, @@ -3388,12 +3488,12 @@ } }, "node_modules/@jsverse/transloco": { - "version": "7.4.2", - "resolved": "https://npm.sinequa.com:4873/@jsverse/transloco/-/transloco-7.4.2.tgz", - "integrity": "sha512-PtlaZvriUnvMcpuvAh8H+hAJnxf542NnI/wIYoGTa3x0tgdFHFDtiZZC0Duvr5Dn6rXfV4sMeuSE9IbariMU1w==", + "version": "7.5.1", + "resolved": "https://npm.sinequa.com/@jsverse/transloco/-/transloco-7.5.1.tgz", + "integrity": "sha512-2GtJKFKmwvw7ygkf51kNMNJ1PSiepvDIqgFM1Sl8aX6if/kZ4/FNKVz0t64QP2JHUU16I2Le05In7IbiRE7ZrQ==", + "license": "MIT", "dependencies": { "@jsverse/transloco-utils": "^7.0.0", - "flat": "6.0.1", "fs-extra": "^11.0.0", "glob": "^10.0.0", "lodash.kebabcase": "^4.1.1", @@ -3407,8 +3507,9 @@ }, "node_modules/@jsverse/transloco-messageformat": { "version": "7.0.1", - "resolved": "https://npm.sinequa.com:4873/@jsverse/transloco-messageformat/-/transloco-messageformat-7.0.1.tgz", + "resolved": "https://npm.sinequa.com/@jsverse/transloco-messageformat/-/transloco-messageformat-7.0.1.tgz", "integrity": "sha512-yhTizhEUD/omY40UWqQkQwRP9O7RxPkYB2QZlpgGu0IqS1RqNhmLX+j5MJLePZzpH3n9zfx+rkPM+oqfDsKBSg==", + "license": "MIT", "dependencies": { "@messageformat/core": "^3.0.0", "tslib": "^2.2.0" @@ -3420,9 +3521,10 @@ } }, "node_modules/@jsverse/transloco-utils": { - "version": "7.0.1", - "resolved": "https://npm.sinequa.com:4873/@jsverse/transloco-utils/-/transloco-utils-7.0.1.tgz", - "integrity": "sha512-Oxs2F5z5UREp2Jgp5KiB8V/VJ6jr1mVIWLJ/UFa3fmIo+4iszHBemgek3QoZaLG7DPUMR2xBWYNzKlGbZCTlMw==", + "version": "7.0.2", + "resolved": "https://npm.sinequa.com/@jsverse/transloco-utils/-/transloco-utils-7.0.2.tgz", + "integrity": "sha512-zud1M68mMC/Pu6irEba+Z2SzmwmmPzUPnBzMKlcGdIhzUe1z41cqQutK1M0QaQpY4h4yhumXcNaY/Ot6piv6QQ==", + "license": "MIT", "dependencies": { "cosmiconfig": "^8.1.3", "tslib": "^2.3.0" @@ -3431,69 +3533,19 @@ "node": ">=16" } }, - "node_modules/@jsverse/transloco-utils/node_modules/argparse": { - "version": "2.0.1", - "resolved": "https://npm.sinequa.com:4873/argparse/-/argparse-2.0.1.tgz", - "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==" - }, - "node_modules/@jsverse/transloco-utils/node_modules/cosmiconfig": { - "version": "8.3.6", - "resolved": "https://npm.sinequa.com:4873/cosmiconfig/-/cosmiconfig-8.3.6.tgz", - "integrity": "sha512-kcZ6+W5QzcJ3P1Mt+83OUv/oHFqZHIx8DuxG6eZ5RGMERoLqp4BuGjhHLYGK+Kf5XVkQvqBSmAy/nGWN3qDgEA==", - "dependencies": { - "import-fresh": "^3.3.0", - "js-yaml": "^4.1.0", - "parse-json": "^5.2.0", - "path-type": "^4.0.0" - }, - "engines": { - "node": ">=14" - }, - "funding": { - "url": "https://github.com/sponsors/d-fischer" - }, - "peerDependencies": { - "typescript": ">=4.9.5" - }, - "peerDependenciesMeta": { - "typescript": { - "optional": true - } - } - }, - "node_modules/@jsverse/transloco-utils/node_modules/js-yaml": { - "version": "4.1.0", - "resolved": "https://npm.sinequa.com:4873/js-yaml/-/js-yaml-4.1.0.tgz", - "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", - "dependencies": { - "argparse": "^2.0.1" - }, - "bin": { - "js-yaml": "bin/js-yaml.js" - } - }, - "node_modules/@jsverse/transloco/node_modules/flat": { - "version": "6.0.1", - "resolved": "https://npm.sinequa.com:4873/flat/-/flat-6.0.1.tgz", - "integrity": "sha512-/3FfIa8mbrg3xE7+wAhWeV+bd7L2Mof+xtZb5dRDKZ+wDvYJK4WDYeIOuOhre5Yv5aQObZrlbRmk3RTSiuQBtw==", - "bin": { - "flat": "cli.js" - }, - "engines": { - "node": ">=18" - } - }, "node_modules/@leichtgewicht/ip-codec": { "version": "2.0.5", - "resolved": "https://npm.sinequa.com:4873/@leichtgewicht/ip-codec/-/ip-codec-2.0.5.tgz", + "resolved": "https://npm.sinequa.com/@leichtgewicht/ip-codec/-/ip-codec-2.0.5.tgz", "integrity": "sha512-Vo+PSpZG2/fmgmiNzYK9qWRh8h/CHrwD0mo1h1DzL4yzHNSfWYujGTYsWGreD000gcgmZ7K4Ys6Tx9TxtsKdDw==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/@listr2/prompt-adapter-inquirer": { "version": "2.0.15", "resolved": "https://npm.sinequa.com/@listr2/prompt-adapter-inquirer/-/prompt-adapter-inquirer-2.0.15.tgz", "integrity": "sha512-MZrGem/Ujjd4cPTLYDfCZK2iKKeiO/8OX13S6jqxldLs0Prf2aGqVlJ77nMBqMv7fzqgXEgjrNHLXcKR8l9lOg==", "dev": true, + "license": "MIT", "dependencies": { "@inquirer/type": "^1.5.1" }, @@ -3512,6 +3564,7 @@ "arm64" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "darwin" @@ -3525,6 +3578,7 @@ "x64" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "darwin" @@ -3538,6 +3592,7 @@ "arm" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "linux" @@ -3551,6 +3606,7 @@ "arm64" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "linux" @@ -3564,6 +3620,7 @@ "x64" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "linux" @@ -3577,15 +3634,17 @@ "x64" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "win32" ] }, "node_modules/@messageformat/core": { - "version": "3.3.0", - "resolved": "https://npm.sinequa.com:4873/@messageformat/core/-/core-3.3.0.tgz", - "integrity": "sha512-YcXd3remTDdeMxAlbvW6oV9d/01/DZ8DHUFwSttO3LMzIZj3iO0NRw+u1xlsNNORFI+u0EQzD52ZX3+Udi0T3g==", + "version": "3.4.0", + "resolved": "https://npm.sinequa.com/@messageformat/core/-/core-3.4.0.tgz", + "integrity": "sha512-NgCFubFFIdMWJGN5WuQhHCNmzk7QgiVfrViFxcS99j7F5dDS5EP6raR54I+2ydhe4+5/XTn/YIEppFaqqVWHsw==", + "license": "MIT", "dependencies": { "@messageformat/date-skeleton": "^1.0.0", "@messageformat/number-skeleton": "^1.0.0", @@ -3596,35 +3655,40 @@ } }, "node_modules/@messageformat/date-skeleton": { - "version": "1.0.1", - "resolved": "https://npm.sinequa.com:4873/@messageformat/date-skeleton/-/date-skeleton-1.0.1.tgz", - "integrity": "sha512-jPXy8fg+WMPIgmGjxSlnGJn68h/2InfT0TNSkVx0IGXgp4ynnvYkbZ51dGWmGySEK+pBiYUttbQdu5XEqX5CRg==" + "version": "1.1.0", + "resolved": "https://npm.sinequa.com/@messageformat/date-skeleton/-/date-skeleton-1.1.0.tgz", + "integrity": "sha512-rmGAfB1tIPER+gh3p/RgA+PVeRE/gxuQ2w4snFWPF5xtb5mbWR7Cbw7wCOftcUypbD6HVoxrVdyyghPm3WzP5A==", + "license": "MIT" }, "node_modules/@messageformat/number-skeleton": { "version": "1.2.0", - "resolved": "https://npm.sinequa.com:4873/@messageformat/number-skeleton/-/number-skeleton-1.2.0.tgz", - "integrity": "sha512-xsgwcL7J7WhlHJ3RNbaVgssaIwcEyFkBqxHdcdaiJzwTZAWEOD8BuUFxnxV9k5S0qHN3v/KzUpq0IUpjH1seRg==" + "resolved": "https://npm.sinequa.com/@messageformat/number-skeleton/-/number-skeleton-1.2.0.tgz", + "integrity": "sha512-xsgwcL7J7WhlHJ3RNbaVgssaIwcEyFkBqxHdcdaiJzwTZAWEOD8BuUFxnxV9k5S0qHN3v/KzUpq0IUpjH1seRg==", + "license": "MIT" }, "node_modules/@messageformat/parser": { - "version": "5.1.0", - "resolved": "https://npm.sinequa.com:4873/@messageformat/parser/-/parser-5.1.0.tgz", - "integrity": "sha512-jKlkls3Gewgw6qMjKZ9SFfHUpdzEVdovKFtW1qRhJ3WI4FW5R/NnGDqr8SDGz+krWDO3ki94boMmQvGke1HwUQ==", + "version": "5.1.1", + "resolved": "https://npm.sinequa.com/@messageformat/parser/-/parser-5.1.1.tgz", + "integrity": "sha512-3p0YRGCcTUCYvBKLIxtDDyrJ0YijGIwrTRu1DT8gIviIDZru8H23+FkY6MJBzM1n9n20CiM4VeDYuBsrrwnLjg==", + "license": "MIT", "dependencies": { "moo": "^0.5.1" } }, "node_modules/@messageformat/runtime": { "version": "3.0.1", - "resolved": "https://npm.sinequa.com:4873/@messageformat/runtime/-/runtime-3.0.1.tgz", + "resolved": "https://npm.sinequa.com/@messageformat/runtime/-/runtime-3.0.1.tgz", "integrity": "sha512-6RU5ol2lDtO8bD9Yxe6CZkl0DArdv0qkuoZC+ZwowU+cdRlVE1157wjCmlA5Rsf1Xc/brACnsZa5PZpEDfTFFg==", + "license": "MIT", "dependencies": { "make-plural": "^7.0.0" } }, "node_modules/@microsoft/signalr": { "version": "7.0.14", - "resolved": "https://npm.sinequa.com:4873/@microsoft/signalr/-/signalr-7.0.14.tgz", + "resolved": "https://npm.sinequa.com/@microsoft/signalr/-/signalr-7.0.14.tgz", "integrity": "sha512-dnS7gSJF5LxByZwJaj82+F1K755ya7ttPT+JnSeCBef3sL8p8FBkHePXphK8NSuOquIb7vsphXWa28A+L2SPpw==", + "license": "MIT", "dependencies": { "abort-controller": "^3.0.0", "eventsource": "^2.0.2", @@ -3641,6 +3705,7 @@ "arm64" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "darwin" @@ -3654,6 +3719,7 @@ "x64" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "darwin" @@ -3667,6 +3733,7 @@ "arm" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "linux" @@ -3680,6 +3747,7 @@ "arm64" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "linux" @@ -3693,6 +3761,7 @@ "x64" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "linux" @@ -3706,6 +3775,7 @@ "x64" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "win32" @@ -3715,6 +3785,7 @@ "version": "18.1.1", "resolved": "https://npm.sinequa.com/@ngrx/signals/-/signals-18.1.1.tgz", "integrity": "sha512-7AaFp4VrzYhnDHlF15VZAMvp067zIC5arRRRMV+i+oi95sQVDXezpj74KTIguwRbZ3FU+GKGzFCNrwgYvginSg==", + "license": "MIT", "dependencies": { "tslib": "^2.3.0" }, @@ -3732,6 +3803,7 @@ "version": "18.1.1", "resolved": "https://npm.sinequa.com/@ngrx/store/-/store-18.1.1.tgz", "integrity": "sha512-K0v1akJ2sEnIeb1AUA064+ksgRgbMgVG9HbSsLBxENbFjK2ZvKRxo1bpOw6WHW9+hyDTlhZGl7+gUtjmo3497g==", + "license": "MIT", "dependencies": { "tslib": "^2.0.0" }, @@ -3741,10 +3813,11 @@ } }, "node_modules/@ngtools/webpack": { - "version": "18.2.11", - "resolved": "https://npm.sinequa.com/@ngtools/webpack/-/webpack-18.2.11.tgz", - "integrity": "sha512-iTdUGJ5O7yMm1DyCzyoMDMxBJ68emUSSXPWbQzEEdcqmtifRebn+VAq4vHN8OmtGM1mtuKeLEsbiZP8ywrw7Ug==", + "version": "18.2.12", + "resolved": "https://npm.sinequa.com/@ngtools/webpack/-/webpack-18.2.12.tgz", + "integrity": "sha512-FFJAwtWbtpncMOVNuULPBwFJB7GSjiUwO93eGTzRp8O4EPQ8lCQeFbezQm/NP34+T0+GBLGzPSuQT+muob8YKw==", "dev": true, + "license": "MIT", "engines": { "node": "^18.19.1 || ^20.11.1 || >=22.0.0", "npm": "^6.11.0 || ^7.5.6 || >=8.0.0", @@ -3758,9 +3831,10 @@ }, "node_modules/@nodelib/fs.scandir": { "version": "2.1.5", - "resolved": "https://npm.sinequa.com:4873/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", + "resolved": "https://npm.sinequa.com/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", "dev": true, + "license": "MIT", "dependencies": { "@nodelib/fs.stat": "2.0.5", "run-parallel": "^1.1.9" @@ -3771,18 +3845,20 @@ }, "node_modules/@nodelib/fs.stat": { "version": "2.0.5", - "resolved": "https://npm.sinequa.com:4873/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", + "resolved": "https://npm.sinequa.com/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", "dev": true, + "license": "MIT", "engines": { "node": ">= 8" } }, "node_modules/@nodelib/fs.walk": { "version": "1.2.8", - "resolved": "https://npm.sinequa.com:4873/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", + "resolved": "https://npm.sinequa.com/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", "dev": true, + "license": "MIT", "dependencies": { "@nodelib/fs.scandir": "2.1.5", "fastq": "^1.6.0" @@ -3793,9 +3869,10 @@ }, "node_modules/@npmcli/agent": { "version": "2.2.2", - "resolved": "https://npm.sinequa.com:4873/@npmcli/agent/-/agent-2.2.2.tgz", + "resolved": "https://npm.sinequa.com/@npmcli/agent/-/agent-2.2.2.tgz", "integrity": "sha512-OrcNPXdpSl9UX7qPVRWbmWMCSXrcDa2M9DvrbOTj7ao1S4PlqVFYv9/yLKMkrJKZ/V5A/kDBC690or307i26Og==", "dev": true, + "license": "ISC", "dependencies": { "agent-base": "^7.1.0", "http-proxy-agent": "^7.0.0", @@ -3808,19 +3885,18 @@ } }, "node_modules/@npmcli/agent/node_modules/lru-cache": { - "version": "10.2.2", - "resolved": "https://npm.sinequa.com:4873/lru-cache/-/lru-cache-10.2.2.tgz", - "integrity": "sha512-9hp3Vp2/hFQUiIwKo8XCeFVnrg8Pk3TYNPIR7tJADKi5YfcF7vEaK7avFHTlSy3kOKYaJQaalfEo6YuXdceBOQ==", + "version": "10.4.3", + "resolved": "https://npm.sinequa.com/lru-cache/-/lru-cache-10.4.3.tgz", + "integrity": "sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==", "dev": true, - "engines": { - "node": "14 || >=16.14" - } + "license": "ISC" }, "node_modules/@npmcli/fs": { "version": "3.1.1", - "resolved": "https://npm.sinequa.com:4873/@npmcli/fs/-/fs-3.1.1.tgz", + "resolved": "https://npm.sinequa.com/@npmcli/fs/-/fs-3.1.1.tgz", "integrity": "sha512-q9CRWjpHCMIh5sVyefoD1cA7PkvILqCZsnSOEUUivORLjxCO/Irmue2DprETiNgEqktDBZaM1Bi+jrarx1XdCg==", "dev": true, + "license": "ISC", "dependencies": { "semver": "^7.3.5" }, @@ -3829,12 +3905,14 @@ } }, "node_modules/@npmcli/git": { - "version": "5.0.7", - "resolved": "https://npm.sinequa.com:4873/@npmcli/git/-/git-5.0.7.tgz", - "integrity": "sha512-WaOVvto604d5IpdCRV2KjQu8PzkfE96d50CQGKgywXh2GxXmDeUO5EWcBC4V57uFyrNqx83+MewuJh3WTR3xPA==", + "version": "5.0.8", + "resolved": "https://npm.sinequa.com/@npmcli/git/-/git-5.0.8.tgz", + "integrity": "sha512-liASfw5cqhjNW9UFd+ruwwdEf/lbOAQjLL2XY2dFW/bkJheXDYZgOyul/4gVvEV4BWkTXjYGmDqMw9uegdbJNQ==", "dev": true, + "license": "ISC", "dependencies": { "@npmcli/promise-spawn": "^7.0.0", + "ini": "^4.1.3", "lru-cache": "^10.0.1", "npm-pick-manifest": "^9.0.0", "proc-log": "^4.0.0", @@ -3847,20 +3925,45 @@ "node": "^16.14.0 || >=18.0.0" } }, + "node_modules/@npmcli/git/node_modules/isexe": { + "version": "3.1.1", + "resolved": "https://npm.sinequa.com/isexe/-/isexe-3.1.1.tgz", + "integrity": "sha512-LpB/54B+/2J5hqQ7imZHfdU31OlgQqx7ZicVlkm9kzg9/w8GKLEcFfJl/t7DCEDueOyBAD6zCCwTO6Fzs0NoEQ==", + "dev": true, + "license": "ISC", + "engines": { + "node": ">=16" + } + }, "node_modules/@npmcli/git/node_modules/lru-cache": { - "version": "10.2.2", - "resolved": "https://npm.sinequa.com:4873/lru-cache/-/lru-cache-10.2.2.tgz", - "integrity": "sha512-9hp3Vp2/hFQUiIwKo8XCeFVnrg8Pk3TYNPIR7tJADKi5YfcF7vEaK7avFHTlSy3kOKYaJQaalfEo6YuXdceBOQ==", + "version": "10.4.3", + "resolved": "https://npm.sinequa.com/lru-cache/-/lru-cache-10.4.3.tgz", + "integrity": "sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==", + "dev": true, + "license": "ISC" + }, + "node_modules/@npmcli/git/node_modules/which": { + "version": "4.0.0", + "resolved": "https://npm.sinequa.com/which/-/which-4.0.0.tgz", + "integrity": "sha512-GlaYyEb07DPxYCKhKzplCWBJtvxZcZMrL+4UkrTSJHHPyZU4mYYTv3qaOe77H7EODLSSopAUFAc6W8U4yqvscg==", "dev": true, + "license": "ISC", + "dependencies": { + "isexe": "^3.1.1" + }, + "bin": { + "node-which": "bin/which.js" + }, "engines": { - "node": "14 || >=16.14" + "node": "^16.13.0 || >=18.0.0" } }, "node_modules/@npmcli/installed-package-contents": { "version": "2.1.0", - "resolved": "https://npm.sinequa.com:4873/@npmcli/installed-package-contents/-/installed-package-contents-2.1.0.tgz", + "resolved": "https://npm.sinequa.com/@npmcli/installed-package-contents/-/installed-package-contents-2.1.0.tgz", "integrity": "sha512-c8UuGLeZpm69BryRykLuKRyKFZYJsZSCT4aVY5ds4omyZqJ172ApzgfKJ5eV/r3HgLdUYgFVe54KSFVjKoe27w==", "dev": true, + "license": "ISC", "dependencies": { "npm-bundled": "^3.0.0", "npm-normalize-package-bin": "^3.0.0" @@ -3874,18 +3977,20 @@ }, "node_modules/@npmcli/node-gyp": { "version": "3.0.0", - "resolved": "https://npm.sinequa.com:4873/@npmcli/node-gyp/-/node-gyp-3.0.0.tgz", + "resolved": "https://npm.sinequa.com/@npmcli/node-gyp/-/node-gyp-3.0.0.tgz", "integrity": "sha512-gp8pRXC2oOxu0DUE1/M3bYtb1b3/DbJ5aM113+XJBgfXdussRAsX0YOrOhdd8WvnAR6auDBvJomGAkLKA5ydxA==", "dev": true, + "license": "ISC", "engines": { "node": "^14.17.0 || ^16.13.0 || >=18.0.0" } }, "node_modules/@npmcli/package-json": { - "version": "5.2.0", - "resolved": "https://npm.sinequa.com:4873/@npmcli/package-json/-/package-json-5.2.0.tgz", - "integrity": "sha512-qe/kiqqkW0AGtvBjL8TJKZk/eBBSpnJkUWvHdQ9jM2lKHXRYYJuyNpJPlJw3c8QjC2ow6NZYiLExhUaeJelbxQ==", + "version": "5.2.1", + "resolved": "https://npm.sinequa.com/@npmcli/package-json/-/package-json-5.2.1.tgz", + "integrity": "sha512-f7zYC6kQautXHvNbLEWgD/uGu1+xCn9izgqBfgItWSx22U0ZDekxN08A1vM8cTxj/cRVe0Q94Ode+tdoYmIOOQ==", "dev": true, + "license": "ISC", "dependencies": { "@npmcli/git": "^5.0.0", "glob": "^10.2.2", @@ -3901,9 +4006,10 @@ }, "node_modules/@npmcli/promise-spawn": { "version": "7.0.2", - "resolved": "https://npm.sinequa.com:4873/@npmcli/promise-spawn/-/promise-spawn-7.0.2.tgz", + "resolved": "https://npm.sinequa.com/@npmcli/promise-spawn/-/promise-spawn-7.0.2.tgz", "integrity": "sha512-xhfYPXoV5Dy4UkY0D+v2KkwvnDfiA/8Mt3sWCGI/hM03NsYIH8ZaG6QzS9x7pje5vHZBZJ2v6VRFVTWACnqcmQ==", "dev": true, + "license": "ISC", "dependencies": { "which": "^4.0.0" }, @@ -3911,20 +4017,48 @@ "node": "^16.14.0 || >=18.0.0" } }, + "node_modules/@npmcli/promise-spawn/node_modules/isexe": { + "version": "3.1.1", + "resolved": "https://npm.sinequa.com/isexe/-/isexe-3.1.1.tgz", + "integrity": "sha512-LpB/54B+/2J5hqQ7imZHfdU31OlgQqx7ZicVlkm9kzg9/w8GKLEcFfJl/t7DCEDueOyBAD6zCCwTO6Fzs0NoEQ==", + "dev": true, + "license": "ISC", + "engines": { + "node": ">=16" + } + }, + "node_modules/@npmcli/promise-spawn/node_modules/which": { + "version": "4.0.0", + "resolved": "https://npm.sinequa.com/which/-/which-4.0.0.tgz", + "integrity": "sha512-GlaYyEb07DPxYCKhKzplCWBJtvxZcZMrL+4UkrTSJHHPyZU4mYYTv3qaOe77H7EODLSSopAUFAc6W8U4yqvscg==", + "dev": true, + "license": "ISC", + "dependencies": { + "isexe": "^3.1.1" + }, + "bin": { + "node-which": "bin/which.js" + }, + "engines": { + "node": "^16.13.0 || >=18.0.0" + } + }, "node_modules/@npmcli/redact": { - "version": "2.0.0", - "resolved": "https://npm.sinequa.com:4873/@npmcli/redact/-/redact-2.0.0.tgz", - "integrity": "sha512-SEjCPAVHWYUIQR+Yn03kJmrJjZDtJLYpj300m3HV9OTRZNpC5YpbMsM3eTkECyT4aWj8lDr9WeY6TWefpubtYQ==", + "version": "2.0.1", + "resolved": "https://npm.sinequa.com/@npmcli/redact/-/redact-2.0.1.tgz", + "integrity": "sha512-YgsR5jCQZhVmTJvjduTOIHph0L73pK8xwMVaDY0PatySqVM9AZj93jpoXYSJqfHFxFkN9dmqTw6OiqExsS3LPw==", "dev": true, + "license": "ISC", "engines": { "node": "^16.14.0 || >=18.0.0" } }, "node_modules/@npmcli/run-script": { "version": "8.1.0", - "resolved": "https://npm.sinequa.com:4873/@npmcli/run-script/-/run-script-8.1.0.tgz", + "resolved": "https://npm.sinequa.com/@npmcli/run-script/-/run-script-8.1.0.tgz", "integrity": "sha512-y7efHHwghQfk28G2z3tlZ67pLG0XdfYbcVG26r7YIXALRsrVQcTq4/tdenSmdOrEsNahIYA/eh8aEVROWGFUDg==", "dev": true, + "license": "ISC", "dependencies": { "@npmcli/node-gyp": "^3.0.0", "@npmcli/package-json": "^5.0.0", @@ -3937,10 +4071,37 @@ "node": "^16.14.0 || >=18.0.0" } }, + "node_modules/@npmcli/run-script/node_modules/isexe": { + "version": "3.1.1", + "resolved": "https://npm.sinequa.com/isexe/-/isexe-3.1.1.tgz", + "integrity": "sha512-LpB/54B+/2J5hqQ7imZHfdU31OlgQqx7ZicVlkm9kzg9/w8GKLEcFfJl/t7DCEDueOyBAD6zCCwTO6Fzs0NoEQ==", + "dev": true, + "license": "ISC", + "engines": { + "node": ">=16" + } + }, + "node_modules/@npmcli/run-script/node_modules/which": { + "version": "4.0.0", + "resolved": "https://npm.sinequa.com/which/-/which-4.0.0.tgz", + "integrity": "sha512-GlaYyEb07DPxYCKhKzplCWBJtvxZcZMrL+4UkrTSJHHPyZU4mYYTv3qaOe77H7EODLSSopAUFAc6W8U4yqvscg==", + "dev": true, + "license": "ISC", + "dependencies": { + "isexe": "^3.1.1" + }, + "bin": { + "node-which": "bin/which.js" + }, + "engines": { + "node": "^16.13.0 || >=18.0.0" + } + }, "node_modules/@pkgjs/parseargs": { "version": "0.11.0", - "resolved": "https://npm.sinequa.com:4873/@pkgjs/parseargs/-/parseargs-0.11.0.tgz", + "resolved": "https://npm.sinequa.com/@pkgjs/parseargs/-/parseargs-0.11.0.tgz", "integrity": "sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==", + "license": "MIT", "optional": true, "engines": { "node": ">=14" @@ -3948,8 +4109,9 @@ }, "node_modules/@popperjs/core": { "version": "2.11.8", - "resolved": "https://npm.sinequa.com:4873/@popperjs/core/-/core-2.11.8.tgz", + "resolved": "https://npm.sinequa.com/@popperjs/core/-/core-2.11.8.tgz", "integrity": "sha512-P1st0aksCrn9sGZhp8GMYwBnQsbvAWsZAX44oXNNvLHGqAOcoVxmjZiohstwQ7SqKnbR47akdNi+uleWD8+g6A==", + "license": "MIT", "funding": { "type": "opencollective", "url": "https://opencollective.com/popperjs" @@ -3963,6 +4125,7 @@ "arm" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "android" @@ -3976,6 +4139,7 @@ "arm64" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "android" @@ -3989,6 +4153,7 @@ "arm64" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "darwin" @@ -4002,6 +4167,7 @@ "x64" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "darwin" @@ -4015,6 +4181,7 @@ "arm" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "linux" @@ -4028,6 +4195,7 @@ "arm" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "linux" @@ -4041,6 +4209,7 @@ "arm64" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "linux" @@ -4054,6 +4223,7 @@ "arm64" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "linux" @@ -4067,6 +4237,7 @@ "ppc64" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "linux" @@ -4080,6 +4251,7 @@ "riscv64" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "linux" @@ -4093,6 +4265,7 @@ "s390x" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "linux" @@ -4106,6 +4279,7 @@ "x64" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "linux" @@ -4119,6 +4293,7 @@ "x64" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "linux" @@ -4132,6 +4307,7 @@ "arm64" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "win32" @@ -4145,6 +4321,7 @@ "ia32" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "win32" @@ -4158,19 +4335,21 @@ "x64" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "win32" ] }, "node_modules/@schematics/angular": { - "version": "18.2.5", - "resolved": "https://npm.sinequa.com/@schematics/angular/-/angular-18.2.5.tgz", - "integrity": "sha512-tBXhk9OGT4U6VsBNbuCNl2ITDOF3NYdGrEieIHU+lHSkpJNGZUIGxCgXCETXkmXDq1pe4wFZSKelWjeqYDfX0g==", + "version": "18.2.12", + "resolved": "https://npm.sinequa.com/@schematics/angular/-/angular-18.2.12.tgz", + "integrity": "sha512-sIoeipsisK5eTLW3XuNZYcal83AfslBbgI7LnV+3VrXwpasKPGHwo2ZdwhCd2IXAkuJ02Iyu7MyV0aQRM9i/3g==", "dev": true, + "license": "MIT", "dependencies": { - "@angular-devkit/core": "18.2.5", - "@angular-devkit/schematics": "18.2.5", + "@angular-devkit/core": "18.2.12", + "@angular-devkit/schematics": "18.2.12", "jsonc-parser": "3.3.1" }, "engines": { @@ -4181,9 +4360,10 @@ }, "node_modules/@sigstore/bundle": { "version": "2.3.2", - "resolved": "https://npm.sinequa.com:4873/@sigstore/bundle/-/bundle-2.3.2.tgz", + "resolved": "https://npm.sinequa.com/@sigstore/bundle/-/bundle-2.3.2.tgz", "integrity": "sha512-wueKWDk70QixNLB363yHc2D2ItTgYiMTdPwK8D9dKQMR3ZQ0c35IxP5xnwQ8cNLoCgCRcHf14kE+CLIvNX1zmA==", "dev": true, + "license": "Apache-2.0", "dependencies": { "@sigstore/protobuf-specs": "^0.3.2" }, @@ -4193,27 +4373,30 @@ }, "node_modules/@sigstore/core": { "version": "1.1.0", - "resolved": "https://npm.sinequa.com:4873/@sigstore/core/-/core-1.1.0.tgz", + "resolved": "https://npm.sinequa.com/@sigstore/core/-/core-1.1.0.tgz", "integrity": "sha512-JzBqdVIyqm2FRQCulY6nbQzMpJJpSiJ8XXWMhtOX9eKgaXXpfNOF53lzQEjIydlStnd/eFtuC1dW4VYdD93oRg==", "dev": true, + "license": "Apache-2.0", "engines": { "node": "^16.14.0 || >=18.0.0" } }, "node_modules/@sigstore/protobuf-specs": { - "version": "0.3.2", - "resolved": "https://npm.sinequa.com:4873/@sigstore/protobuf-specs/-/protobuf-specs-0.3.2.tgz", - "integrity": "sha512-c6B0ehIWxMI8wiS/bj6rHMPqeFvngFV7cDU/MY+B16P9Z3Mp9k8L93eYZ7BYzSickzuqAQqAq0V956b3Ju6mLw==", + "version": "0.3.3", + "resolved": "https://npm.sinequa.com/@sigstore/protobuf-specs/-/protobuf-specs-0.3.3.tgz", + "integrity": "sha512-RpacQhBlwpBWd7KEJsRKcBQalbV28fvkxwTOJIqhIuDysMMaJW47V4OqW30iJB9uRpqOSxxEAQFdr8tTattReQ==", "dev": true, + "license": "Apache-2.0", "engines": { - "node": "^16.14.0 || >=18.0.0" + "node": "^18.17.0 || >=20.5.0" } }, "node_modules/@sigstore/sign": { "version": "2.3.2", - "resolved": "https://npm.sinequa.com:4873/@sigstore/sign/-/sign-2.3.2.tgz", + "resolved": "https://npm.sinequa.com/@sigstore/sign/-/sign-2.3.2.tgz", "integrity": "sha512-5Vz5dPVuunIIvC5vBb0APwo7qKA4G9yM48kPWJT+OEERs40md5GoUR1yedwpekWZ4m0Hhw44m6zU+ObsON+iDA==", "dev": true, + "license": "Apache-2.0", "dependencies": { "@sigstore/bundle": "^2.3.2", "@sigstore/core": "^1.0.0", @@ -4228,9 +4411,10 @@ }, "node_modules/@sigstore/tuf": { "version": "2.3.4", - "resolved": "https://npm.sinequa.com:4873/@sigstore/tuf/-/tuf-2.3.4.tgz", + "resolved": "https://npm.sinequa.com/@sigstore/tuf/-/tuf-2.3.4.tgz", "integrity": "sha512-44vtsveTPUpqhm9NCrbU8CWLe3Vck2HO1PNLw7RIajbB7xhtn5RBPm1VNSCMwqGYHhDsBJG8gDF0q4lgydsJvw==", "dev": true, + "license": "Apache-2.0", "dependencies": { "@sigstore/protobuf-specs": "^0.3.2", "tuf-js": "^2.2.1" @@ -4241,9 +4425,10 @@ }, "node_modules/@sigstore/verify": { "version": "1.2.1", - "resolved": "https://npm.sinequa.com:4873/@sigstore/verify/-/verify-1.2.1.tgz", + "resolved": "https://npm.sinequa.com/@sigstore/verify/-/verify-1.2.1.tgz", "integrity": "sha512-8iKx79/F73DKbGfRf7+t4dqrc0bRr0thdPrxAtCKWRm/F0tG71i6O1rvlnScncJLLBZHn3h8M3c1BSUAb9yu8g==", "dev": true, + "license": "Apache-2.0", "dependencies": { "@sigstore/bundle": "^2.3.2", "@sigstore/core": "^1.1.0", @@ -4258,6 +4443,7 @@ "resolved": "https://npm.sinequa.com/@sindresorhus/merge-streams/-/merge-streams-2.3.0.tgz", "integrity": "sha512-LtoMMhxAlorcGhmFYI+LhPgbPZCkgP6ra1YL604EeF6U98pLlQ3iWIGMdWSC+vWmPBWBNgmDBAhnAobLROJmwg==", "dev": true, + "license": "MIT", "engines": { "node": ">=18" }, @@ -4273,18 +4459,19 @@ "node_modules/@sinequa/atomic-angular": { "version": "0.0.149", "resolved": "https://npm.sinequa.com/@sinequa/atomic-angular/-/atomic-angular-0.0.149.tgz", - "integrity": "sha512-N0fDvtKDCLepBeWK3UrtJIXzNujDXgYMQNgjZynmOFqIjMXAGBZKb3qudPf0Xw+IhFjwT8wH52PipYmLTJLKPQ==", + "integrity": "sha512-y0AQ4aZytIh0Ubmm2QTmfFd8jed2lzY7KtOtmFmO1lyvOseMOldCTWyL59iSithUJJFCXna4Roslzmpl4c0mGw==", "dependencies": { "tslib": "^2.3.0" } }, "node_modules/@tanstack/angular-query-experimental": { - "version": "5.40.1", - "resolved": "https://npm.sinequa.com:4873/@tanstack/angular-query-experimental/-/angular-query-experimental-5.40.1.tgz", - "integrity": "sha512-TfS+EeVT9580+HqprA+GTYCoYmnAF2Lv8/jFDT6RVbvcFmqG4g3ka/ac6VkFEnZK05huJP2caxGukG9A8CUyYg==", + "version": "5.64.2", + "resolved": "https://npm.sinequa.com/@tanstack/angular-query-experimental/-/angular-query-experimental-5.64.2.tgz", + "integrity": "sha512-MUwEg1FzF1rqw2CSliF1fhStQGnYmn5uDhia6E2F6RSO+8fOyCx8l3Cwtk1vRkQgWB7rh9/FJZoD2ej23ioKZQ==", + "license": "MIT", "dependencies": { - "@tanstack/query-core": "5.40.0", - "tslib": "^2.6.2" + "@tanstack/query-core": "5.64.2", + "@tanstack/query-devtools": "5.64.2" }, "funding": { "type": "github", @@ -4296,9 +4483,20 @@ } }, "node_modules/@tanstack/query-core": { - "version": "5.40.0", - "resolved": "https://npm.sinequa.com:4873/@tanstack/query-core/-/query-core-5.40.0.tgz", - "integrity": "sha512-eD8K8jsOIq0Z5u/QbvOmfvKKE/XC39jA7yv4hgpl/1SRiU+J8QCIwgM/mEHuunQsL87dcvnHqSVLmf9pD4CiaA==", + "version": "5.64.2", + "resolved": "https://npm.sinequa.com/@tanstack/query-core/-/query-core-5.64.2.tgz", + "integrity": "sha512-hdO8SZpWXoADNTWXV9We8CwTkXU88OVWRBcsiFrk7xJQnhm6WRlweDzMD+uH+GnuieTBVSML6xFa17C2cNV8+g==", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/tannerlinsley" + } + }, + "node_modules/@tanstack/query-devtools": { + "version": "5.64.2", + "resolved": "https://npm.sinequa.com/@tanstack/query-devtools/-/query-devtools-5.64.2.tgz", + "integrity": "sha512-3DautR5UpVZdk/qNIhioZVF7g8fdQZ1U98sBEEk4Tzz3tihSBNMPgwlP40nzgbPEDBIrn/j/oyyvNBVSo083Vw==", + "license": "MIT", "funding": { "type": "github", "url": "https://github.com/sponsors/tannerlinsley" @@ -4306,18 +4504,20 @@ }, "node_modules/@tufjs/canonical-json": { "version": "2.0.0", - "resolved": "https://npm.sinequa.com:4873/@tufjs/canonical-json/-/canonical-json-2.0.0.tgz", + "resolved": "https://npm.sinequa.com/@tufjs/canonical-json/-/canonical-json-2.0.0.tgz", "integrity": "sha512-yVtV8zsdo8qFHe+/3kw81dSLyF7D576A5cCFCi4X7B39tWT7SekaEFUnvnWJHz+9qO7qJTah1JbrDjWKqFtdWA==", "dev": true, + "license": "MIT", "engines": { "node": "^16.14.0 || >=18.0.0" } }, "node_modules/@tufjs/models": { "version": "2.0.1", - "resolved": "https://npm.sinequa.com:4873/@tufjs/models/-/models-2.0.1.tgz", + "resolved": "https://npm.sinequa.com/@tufjs/models/-/models-2.0.1.tgz", "integrity": "sha512-92F7/SFyufn4DXsha9+QfKnN03JGqtMFMXgSHbZOo8JG59WkTni7UzAouNQDf7AuP9OAMxVOPQcqG3sB7w+kkg==", "dev": true, + "license": "MIT", "dependencies": { "@tufjs/canonical-json": "2.0.0", "minimatch": "^9.0.4" @@ -4328,9 +4528,10 @@ }, "node_modules/@types/body-parser": { "version": "1.19.5", - "resolved": "https://npm.sinequa.com:4873/@types/body-parser/-/body-parser-1.19.5.tgz", + "resolved": "https://npm.sinequa.com/@types/body-parser/-/body-parser-1.19.5.tgz", "integrity": "sha512-fB3Zu92ucau0iQ0JMCFQE7b/dv8Ot07NI3KaZIkIUNXq82k4eBAqUaneXfleGY9JWskeS9y+u0nXMyspcuQrCg==", "dev": true, + "license": "MIT", "dependencies": { "@types/connect": "*", "@types/node": "*" @@ -4338,27 +4539,30 @@ }, "node_modules/@types/bonjour": { "version": "3.5.13", - "resolved": "https://npm.sinequa.com:4873/@types/bonjour/-/bonjour-3.5.13.tgz", + "resolved": "https://npm.sinequa.com/@types/bonjour/-/bonjour-3.5.13.tgz", "integrity": "sha512-z9fJ5Im06zvUL548KvYNecEVlA7cVDkGUi6kZusb04mpyEFKCIZJvloCcmpmLaIahDpOQGHaHmG6imtPMmPXGQ==", "dev": true, + "license": "MIT", "dependencies": { "@types/node": "*" } }, "node_modules/@types/connect": { "version": "3.4.38", - "resolved": "https://npm.sinequa.com:4873/@types/connect/-/connect-3.4.38.tgz", + "resolved": "https://npm.sinequa.com/@types/connect/-/connect-3.4.38.tgz", "integrity": "sha512-K6uROf1LD88uDQqJCktA4yzL1YYAK6NgfsI0v/mTgyPKWsX1CnJ0XPSDhViejru1GcRkLWb8RlzFYJRqGUbaug==", "dev": true, + "license": "MIT", "dependencies": { "@types/node": "*" } }, "node_modules/@types/connect-history-api-fallback": { "version": "1.5.4", - "resolved": "https://npm.sinequa.com:4873/@types/connect-history-api-fallback/-/connect-history-api-fallback-1.5.4.tgz", + "resolved": "https://npm.sinequa.com/@types/connect-history-api-fallback/-/connect-history-api-fallback-1.5.4.tgz", "integrity": "sha512-n6Cr2xS1h4uAulPRdlw6Jl6s1oG8KrVilPN2yUITEs+K48EzMJJ3W1xy8K5eWuFvjp3R74AOIGSmp2UfBJ8HFw==", "dev": true, + "license": "MIT", "dependencies": { "@types/express-serve-static-core": "*", "@types/node": "*" @@ -4368,13 +4572,15 @@ "version": "1.0.5", "resolved": "https://npm.sinequa.com/@types/estree/-/estree-1.0.5.tgz", "integrity": "sha512-/kYRxGDLWzHOB7q+wtSUQlFrtcdUccpfy+X+9iMBpHK8QLLhx2wIPYuS5DYtR9Wa/YlZAbIovy7qVdB1Aq6Lyw==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/@types/express": { "version": "4.17.21", - "resolved": "https://npm.sinequa.com:4873/@types/express/-/express-4.17.21.tgz", + "resolved": "https://npm.sinequa.com/@types/express/-/express-4.17.21.tgz", "integrity": "sha512-ejlPM315qwLpaQlQDTjPdsUFSc6ZsP4AN6AlWnogPjQ7CVi7PYF3YVz+CY3jE2pwYf7E/7HlDAN0rV2GxTG0HQ==", "dev": true, + "license": "MIT", "dependencies": { "@types/body-parser": "*", "@types/express-serve-static-core": "^4.17.33", @@ -4383,10 +4589,24 @@ } }, "node_modules/@types/express-serve-static-core": { - "version": "4.19.3", - "resolved": "https://npm.sinequa.com:4873/@types/express-serve-static-core/-/express-serve-static-core-4.19.3.tgz", - "integrity": "sha512-KOzM7MhcBFlmnlr/fzISFF5vGWVSvN6fTd4T+ExOt08bA/dA5kpSzY52nMsI1KDFmUREpJelPYyuslLRSjjgCg==", + "version": "5.0.5", + "resolved": "https://npm.sinequa.com/@types/express-serve-static-core/-/express-serve-static-core-5.0.5.tgz", + "integrity": "sha512-GLZPrd9ckqEBFMcVM/qRFAP0Hg3qiVEojgEFsx/N/zKXsBzbGF6z5FBDpZ0+Xhp1xr+qRZYjfGr1cWHB9oFHSA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/node": "*", + "@types/qs": "*", + "@types/range-parser": "*", + "@types/send": "*" + } + }, + "node_modules/@types/express/node_modules/@types/express-serve-static-core": { + "version": "4.19.6", + "resolved": "https://npm.sinequa.com/@types/express-serve-static-core/-/express-serve-static-core-4.19.6.tgz", + "integrity": "sha512-N4LZ2xG7DatVqhCZzOGb1Yi5lMbXSZcmdLDe9EzSndPV2HpWYWzRbaerl2n27irrm94EPpprqa8KpskPT085+A==", "dev": true, + "license": "MIT", "dependencies": { "@types/node": "*", "@types/qs": "*", @@ -4396,77 +4616,88 @@ }, "node_modules/@types/http-errors": { "version": "2.0.4", - "resolved": "https://npm.sinequa.com:4873/@types/http-errors/-/http-errors-2.0.4.tgz", + "resolved": "https://npm.sinequa.com/@types/http-errors/-/http-errors-2.0.4.tgz", "integrity": "sha512-D0CFMMtydbJAegzOyHjtiKPLlvnm3iTZyZRSZoLq2mRhDdmLfIWOCYPfQJ4cu2erKghU++QvjcUjp/5h7hESpA==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/@types/http-proxy": { "version": "1.17.15", "resolved": "https://npm.sinequa.com/@types/http-proxy/-/http-proxy-1.17.15.tgz", "integrity": "sha512-25g5atgiVNTIv0LBDTg1H74Hvayx0ajtJPLLcYE3whFv75J0pWNtOBzaXJQgDTmrX1bx5U9YC2w/n65BN1HwRQ==", "dev": true, + "license": "MIT", "dependencies": { "@types/node": "*" } }, "node_modules/@types/json-schema": { "version": "7.0.15", - "resolved": "https://npm.sinequa.com:4873/@types/json-schema/-/json-schema-7.0.15.tgz", + "resolved": "https://npm.sinequa.com/@types/json-schema/-/json-schema-7.0.15.tgz", "integrity": "sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/@types/mime": { "version": "1.3.5", - "resolved": "https://npm.sinequa.com:4873/@types/mime/-/mime-1.3.5.tgz", + "resolved": "https://npm.sinequa.com/@types/mime/-/mime-1.3.5.tgz", "integrity": "sha512-/pyBZWSLD2n0dcHE3hq8s8ZvcETHtEuF+3E7XVt0Ig2nvsVQXdghHVcEkIWjy9A0wKfTn97a/PSDYohKIlnP/w==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/@types/mute-stream": { "version": "0.0.4", "resolved": "https://npm.sinequa.com/@types/mute-stream/-/mute-stream-0.0.4.tgz", "integrity": "sha512-CPM9nzrCPPJHQNA9keH9CVkVI+WR5kMa+7XEs5jcGQ0VoAGnLv242w8lIVgwAEfmE4oufJRaTc9PNLQl0ioAow==", "dev": true, + "license": "MIT", "dependencies": { "@types/node": "*" } }, "node_modules/@types/node": { - "version": "16.18.98", - "resolved": "https://npm.sinequa.com:4873/@types/node/-/node-16.18.98.tgz", - "integrity": "sha512-fpiC20NvLpTLAzo3oVBKIqBGR6Fx/8oAK/SSf7G+fydnXMY1x4x9RZ6sBXhqKlCU21g2QapUsbLlhv3+a7wS+Q==" + "version": "16.18.125", + "resolved": "https://npm.sinequa.com/@types/node/-/node-16.18.125.tgz", + "integrity": "sha512-w7U5ojboSPfZP4zD98d+/cjcN2BDW6lKH2M0ubipt8L8vUC7qUAC6ENKGSJL4tEktH2Saw2K4y1uwSjyRGKMhw==", + "license": "MIT" }, "node_modules/@types/node-forge": { "version": "1.3.11", - "resolved": "https://npm.sinequa.com:4873/@types/node-forge/-/node-forge-1.3.11.tgz", + "resolved": "https://npm.sinequa.com/@types/node-forge/-/node-forge-1.3.11.tgz", "integrity": "sha512-FQx220y22OKNTqaByeBGqHWYz4cl94tpcxeFdvBo3wjG6XPBuZ0BNgNZRV5J5TFmmcsJ4IzsLkmGRiQbnYsBEQ==", "dev": true, + "license": "MIT", "dependencies": { "@types/node": "*" } }, "node_modules/@types/qs": { - "version": "6.9.15", - "resolved": "https://npm.sinequa.com:4873/@types/qs/-/qs-6.9.15.tgz", - "integrity": "sha512-uXHQKES6DQKKCLh441Xv/dwxOq1TVS3JPUMlEqoEglvlhR6Mxnlew/Xq/LRVHpLyk7iK3zODe1qYHIMltO7XGg==", - "dev": true + "version": "6.9.18", + "resolved": "https://npm.sinequa.com/@types/qs/-/qs-6.9.18.tgz", + "integrity": "sha512-kK7dgTYDyGqS+e2Q4aK9X3D7q234CIZ1Bv0q/7Z5IwRDoADNU81xXJK/YVyLbLTZCoIwUoDoffFeF+p/eIklAA==", + "dev": true, + "license": "MIT" }, "node_modules/@types/range-parser": { "version": "1.2.7", - "resolved": "https://npm.sinequa.com:4873/@types/range-parser/-/range-parser-1.2.7.tgz", + "resolved": "https://npm.sinequa.com/@types/range-parser/-/range-parser-1.2.7.tgz", "integrity": "sha512-hKormJbkJqzQGhziax5PItDUTMAM9uE2XXQmM37dyd4hVM+5aVl7oVxMVUiVQn2oCQFN/LKCZdvSM0pFRqbSmQ==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/@types/retry": { "version": "0.12.2", - "resolved": "https://npm.sinequa.com:4873/@types/retry/-/retry-0.12.2.tgz", + "resolved": "https://npm.sinequa.com/@types/retry/-/retry-0.12.2.tgz", "integrity": "sha512-XISRgDJ2Tc5q4TRqvgJtzsRkFYNJzZrhTdtMoGVBttwzzQJkPnS3WWTFc7kuDRoPtPakl+T+OfdEUjYJj7Jbow==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/@types/send": { "version": "0.17.4", - "resolved": "https://npm.sinequa.com:4873/@types/send/-/send-0.17.4.tgz", + "resolved": "https://npm.sinequa.com/@types/send/-/send-0.17.4.tgz", "integrity": "sha512-x2EM6TJOybec7c52BX0ZspPodMsQUd5L6PRwOunVyVUhXiBSKf3AezDL8Dgvgt5o0UfKNfuA0eMLr2wLT4AiBA==", "dev": true, + "license": "MIT", "dependencies": { "@types/mime": "^1", "@types/node": "*" @@ -4474,18 +4705,20 @@ }, "node_modules/@types/serve-index": { "version": "1.9.4", - "resolved": "https://npm.sinequa.com:4873/@types/serve-index/-/serve-index-1.9.4.tgz", + "resolved": "https://npm.sinequa.com/@types/serve-index/-/serve-index-1.9.4.tgz", "integrity": "sha512-qLpGZ/c2fhSs5gnYsQxtDEq3Oy8SXPClIXkW5ghvAvsNuVSA8k+gCONcUCS/UjLEYvYps+e8uBtfgXgvhwfNug==", "dev": true, + "license": "MIT", "dependencies": { "@types/express": "*" } }, "node_modules/@types/serve-static": { "version": "1.15.7", - "resolved": "https://npm.sinequa.com:4873/@types/serve-static/-/serve-static-1.15.7.tgz", + "resolved": "https://npm.sinequa.com/@types/serve-static/-/serve-static-1.15.7.tgz", "integrity": "sha512-W8Ym+h8nhuRwaKPaDw34QUkwsGi6Rc4yYqvKFo5rm2FUEhCFbzVWrxXUxuKK8TASjWsysJY0nsmNCGhCOIsrOw==", "dev": true, + "license": "MIT", "dependencies": { "@types/http-errors": "*", "@types/node": "*", @@ -4494,30 +4727,34 @@ }, "node_modules/@types/sockjs": { "version": "0.3.36", - "resolved": "https://npm.sinequa.com:4873/@types/sockjs/-/sockjs-0.3.36.tgz", + "resolved": "https://npm.sinequa.com/@types/sockjs/-/sockjs-0.3.36.tgz", "integrity": "sha512-MK9V6NzAS1+Ud7JV9lJLFqW85VbC9dq3LmwZCuBe4wBDgKC0Kj/jd8Xl+nSviU+Qc3+m7umHHyHg//2KSa0a0Q==", "dev": true, + "license": "MIT", "dependencies": { "@types/node": "*" } }, "node_modules/@types/unist": { - "version": "2.0.10", - "resolved": "https://npm.sinequa.com:4873/@types/unist/-/unist-2.0.10.tgz", - "integrity": "sha512-IfYcSBWE3hLpBg8+X2SEa8LVkJdJEkT2Ese2aaLs3ptGdVtABxndrMaxuFlQ1qdFf9Q5rDvDpxI3WwgvKFAsQA==", - "dev": true + "version": "2.0.11", + "resolved": "https://npm.sinequa.com/@types/unist/-/unist-2.0.11.tgz", + "integrity": "sha512-CmBKiL6NNo/OqgmMn95Fk9Whlp2mtvIv+KNpQKN2F4SjvrEesubTRWGYSg+BnWZOnlCaSTU1sMpsBOzgbYhnsA==", + "dev": true, + "license": "MIT" }, "node_modules/@types/wrap-ansi": { "version": "3.0.0", "resolved": "https://npm.sinequa.com/@types/wrap-ansi/-/wrap-ansi-3.0.0.tgz", "integrity": "sha512-ltIpx+kM7g/MLRZfkbL7EsCEjfzCcScLpkg37eXEtx5kmrAKBkTJwd1GIAjDSL8wTpM6Hzn5YO4pSb91BEwu1g==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/@types/ws": { - "version": "8.5.10", - "resolved": "https://npm.sinequa.com:4873/@types/ws/-/ws-8.5.10.tgz", - "integrity": "sha512-vmQSUcfalpIq0R9q7uTo2lXs6eGIpt9wtnLdMv9LVpIjCA/+ufZRozlVoVelIYixx1ugCBKDhn89vnsEGOCx9A==", + "version": "8.5.13", + "resolved": "https://npm.sinequa.com/@types/ws/-/ws-8.5.13.tgz", + "integrity": "sha512-osM/gWBTPKgHV8XkTunnegTRIsvF6owmf5w+JtAfOw472dptdm0dlGv4xCt6GwQRcC2XVOvvRE/0bAoQcL2QkA==", "dev": true, + "license": "MIT", "dependencies": { "@types/node": "*" } @@ -4527,6 +4764,7 @@ "resolved": "https://npm.sinequa.com/@vitejs/plugin-basic-ssl/-/plugin-basic-ssl-1.1.0.tgz", "integrity": "sha512-wO4Dk/rm8u7RNhOf95ZzcEmC9rYOncYgvq4z3duaJrCgjN8BxAnDVyndanfcJZ0O6XZzHz6Q0hTimxTg8Y9g/A==", "dev": true, + "license": "MIT", "engines": { "node": ">=14.6.0" }, @@ -4535,148 +4773,163 @@ } }, "node_modules/@webassemblyjs/ast": { - "version": "1.12.1", - "resolved": "https://npm.sinequa.com/@webassemblyjs/ast/-/ast-1.12.1.tgz", - "integrity": "sha512-EKfMUOPRRUTy5UII4qJDGPpqfwjOmZ5jeGFwid9mnoqIFK+e0vqoi1qH56JpmZSzEL53jKnNzScdmftJyG5xWg==", + "version": "1.14.1", + "resolved": "https://npm.sinequa.com/@webassemblyjs/ast/-/ast-1.14.1.tgz", + "integrity": "sha512-nuBEDgQfm1ccRp/8bCQrx1frohyufl4JlbMMZ4P1wpeOfDhF6FQkxZJ1b/e+PLwr6X1Nhw6OLme5usuBWYBvuQ==", "dev": true, + "license": "MIT", "dependencies": { - "@webassemblyjs/helper-numbers": "1.11.6", - "@webassemblyjs/helper-wasm-bytecode": "1.11.6" + "@webassemblyjs/helper-numbers": "1.13.2", + "@webassemblyjs/helper-wasm-bytecode": "1.13.2" } }, "node_modules/@webassemblyjs/floating-point-hex-parser": { - "version": "1.11.6", - "resolved": "https://npm.sinequa.com/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.11.6.tgz", - "integrity": "sha512-ejAj9hfRJ2XMsNHk/v6Fu2dGS+i4UaXBXGemOfQ/JfQ6mdQg/WXtwleQRLLS4OvfDhv8rYnVwH27YJLMyYsxhw==", - "dev": true + "version": "1.13.2", + "resolved": "https://npm.sinequa.com/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.13.2.tgz", + "integrity": "sha512-6oXyTOzbKxGH4steLbLNOu71Oj+C8Lg34n6CqRvqfS2O71BxY6ByfMDRhBytzknj9yGUPVJ1qIKhRlAwO1AovA==", + "dev": true, + "license": "MIT" }, "node_modules/@webassemblyjs/helper-api-error": { - "version": "1.11.6", - "resolved": "https://npm.sinequa.com/@webassemblyjs/helper-api-error/-/helper-api-error-1.11.6.tgz", - "integrity": "sha512-o0YkoP4pVu4rN8aTJgAyj9hC2Sv5UlkzCHhxqWj8butaLvnpdc2jOwh4ewE6CX0txSfLn/UYaV/pheS2Txg//Q==", - "dev": true + "version": "1.13.2", + "resolved": "https://npm.sinequa.com/@webassemblyjs/helper-api-error/-/helper-api-error-1.13.2.tgz", + "integrity": "sha512-U56GMYxy4ZQCbDZd6JuvvNV/WFildOjsaWD3Tzzvmw/mas3cXzRJPMjP83JqEsgSbyrmaGjBfDtV7KDXV9UzFQ==", + "dev": true, + "license": "MIT" }, "node_modules/@webassemblyjs/helper-buffer": { - "version": "1.12.1", - "resolved": "https://npm.sinequa.com/@webassemblyjs/helper-buffer/-/helper-buffer-1.12.1.tgz", - "integrity": "sha512-nzJwQw99DNDKr9BVCOZcLuJJUlqkJh+kVzVl6Fmq/tI5ZtEyWT1KZMyOXltXLZJmDtvLCDgwsyrkohEtopTXCw==", - "dev": true + "version": "1.14.1", + "resolved": "https://npm.sinequa.com/@webassemblyjs/helper-buffer/-/helper-buffer-1.14.1.tgz", + "integrity": "sha512-jyH7wtcHiKssDtFPRB+iQdxlDf96m0E39yb0k5uJVhFGleZFoNw1c4aeIcVUPPbXUVJ94wwnMOAqUHyzoEPVMA==", + "dev": true, + "license": "MIT" }, "node_modules/@webassemblyjs/helper-numbers": { - "version": "1.11.6", - "resolved": "https://npm.sinequa.com/@webassemblyjs/helper-numbers/-/helper-numbers-1.11.6.tgz", - "integrity": "sha512-vUIhZ8LZoIWHBohiEObxVm6hwP034jwmc9kuq5GdHZH0wiLVLIPcMCdpJzG4C11cHoQ25TFIQj9kaVADVX7N3g==", + "version": "1.13.2", + "resolved": "https://npm.sinequa.com/@webassemblyjs/helper-numbers/-/helper-numbers-1.13.2.tgz", + "integrity": "sha512-FE8aCmS5Q6eQYcV3gI35O4J789wlQA+7JrqTTpJqn5emA4U2hvwJmvFRC0HODS+3Ye6WioDklgd6scJ3+PLnEA==", "dev": true, + "license": "MIT", "dependencies": { - "@webassemblyjs/floating-point-hex-parser": "1.11.6", - "@webassemblyjs/helper-api-error": "1.11.6", + "@webassemblyjs/floating-point-hex-parser": "1.13.2", + "@webassemblyjs/helper-api-error": "1.13.2", "@xtuc/long": "4.2.2" } }, "node_modules/@webassemblyjs/helper-wasm-bytecode": { - "version": "1.11.6", - "resolved": "https://npm.sinequa.com/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.11.6.tgz", - "integrity": "sha512-sFFHKwcmBprO9e7Icf0+gddyWYDViL8bpPjJJl0WHxCdETktXdmtWLGVzoHbqUcY4Be1LkNfwTmXOJUFZYSJdA==", - "dev": true + "version": "1.13.2", + "resolved": "https://npm.sinequa.com/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.13.2.tgz", + "integrity": "sha512-3QbLKy93F0EAIXLh0ogEVR6rOubA9AoZ+WRYhNbFyuB70j3dRdwH9g+qXhLAO0kiYGlg3TxDV+I4rQTr/YNXkA==", + "dev": true, + "license": "MIT" }, "node_modules/@webassemblyjs/helper-wasm-section": { - "version": "1.12.1", - "resolved": "https://npm.sinequa.com/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.12.1.tgz", - "integrity": "sha512-Jif4vfB6FJlUlSbgEMHUyk1j234GTNG9dBJ4XJdOySoj518Xj0oGsNi59cUQF4RRMS9ouBUxDDdyBVfPTypa5g==", + "version": "1.14.1", + "resolved": "https://npm.sinequa.com/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.14.1.tgz", + "integrity": "sha512-ds5mXEqTJ6oxRoqjhWDU83OgzAYjwsCV8Lo/N+oRsNDmx/ZDpqalmrtgOMkHwxsG0iI//3BwWAErYRHtgn0dZw==", "dev": true, + "license": "MIT", "dependencies": { - "@webassemblyjs/ast": "1.12.1", - "@webassemblyjs/helper-buffer": "1.12.1", - "@webassemblyjs/helper-wasm-bytecode": "1.11.6", - "@webassemblyjs/wasm-gen": "1.12.1" + "@webassemblyjs/ast": "1.14.1", + "@webassemblyjs/helper-buffer": "1.14.1", + "@webassemblyjs/helper-wasm-bytecode": "1.13.2", + "@webassemblyjs/wasm-gen": "1.14.1" } }, "node_modules/@webassemblyjs/ieee754": { - "version": "1.11.6", - "resolved": "https://npm.sinequa.com/@webassemblyjs/ieee754/-/ieee754-1.11.6.tgz", - "integrity": "sha512-LM4p2csPNvbij6U1f19v6WR56QZ8JcHg3QIJTlSwzFcmx6WSORicYj6I63f9yU1kEUtrpG+kjkiIAkevHpDXrg==", + "version": "1.13.2", + "resolved": "https://npm.sinequa.com/@webassemblyjs/ieee754/-/ieee754-1.13.2.tgz", + "integrity": "sha512-4LtOzh58S/5lX4ITKxnAK2USuNEvpdVV9AlgGQb8rJDHaLeHciwG4zlGr0j/SNWlr7x3vO1lDEsuePvtcDNCkw==", "dev": true, + "license": "MIT", "dependencies": { "@xtuc/ieee754": "^1.2.0" } }, "node_modules/@webassemblyjs/leb128": { - "version": "1.11.6", - "resolved": "https://npm.sinequa.com/@webassemblyjs/leb128/-/leb128-1.11.6.tgz", - "integrity": "sha512-m7a0FhE67DQXgouf1tbN5XQcdWoNgaAuoULHIfGFIEVKA6tu/edls6XnIlkmS6FrXAquJRPni3ZZKjw6FSPjPQ==", + "version": "1.13.2", + "resolved": "https://npm.sinequa.com/@webassemblyjs/leb128/-/leb128-1.13.2.tgz", + "integrity": "sha512-Lde1oNoIdzVzdkNEAWZ1dZ5orIbff80YPdHx20mrHwHrVNNTjNr8E3xz9BdpcGqRQbAEa+fkrCb+fRFTl/6sQw==", "dev": true, + "license": "Apache-2.0", "dependencies": { "@xtuc/long": "4.2.2" } }, "node_modules/@webassemblyjs/utf8": { - "version": "1.11.6", - "resolved": "https://npm.sinequa.com/@webassemblyjs/utf8/-/utf8-1.11.6.tgz", - "integrity": "sha512-vtXf2wTQ3+up9Zsg8sa2yWiQpzSsMyXj0qViVP6xKGCUT8p8YJ6HqI7l5eCnWx1T/FYdsv07HQs2wTFbbof/RA==", - "dev": true + "version": "1.13.2", + "resolved": "https://npm.sinequa.com/@webassemblyjs/utf8/-/utf8-1.13.2.tgz", + "integrity": "sha512-3NQWGjKTASY1xV5m7Hr0iPeXD9+RDobLll3T9d2AO+g3my8xy5peVyjSag4I50mR1bBSN/Ct12lo+R9tJk0NZQ==", + "dev": true, + "license": "MIT" }, "node_modules/@webassemblyjs/wasm-edit": { - "version": "1.12.1", - "resolved": "https://npm.sinequa.com/@webassemblyjs/wasm-edit/-/wasm-edit-1.12.1.tgz", - "integrity": "sha512-1DuwbVvADvS5mGnXbE+c9NfA8QRcZ6iKquqjjmR10k6o+zzsRVesil54DKexiowcFCPdr/Q0qaMgB01+SQ1u6g==", + "version": "1.14.1", + "resolved": "https://npm.sinequa.com/@webassemblyjs/wasm-edit/-/wasm-edit-1.14.1.tgz", + "integrity": "sha512-RNJUIQH/J8iA/1NzlE4N7KtyZNHi3w7at7hDjvRNm5rcUXa00z1vRz3glZoULfJ5mpvYhLybmVcwcjGrC1pRrQ==", "dev": true, + "license": "MIT", "dependencies": { - "@webassemblyjs/ast": "1.12.1", - "@webassemblyjs/helper-buffer": "1.12.1", - "@webassemblyjs/helper-wasm-bytecode": "1.11.6", - "@webassemblyjs/helper-wasm-section": "1.12.1", - "@webassemblyjs/wasm-gen": "1.12.1", - "@webassemblyjs/wasm-opt": "1.12.1", - "@webassemblyjs/wasm-parser": "1.12.1", - "@webassemblyjs/wast-printer": "1.12.1" + "@webassemblyjs/ast": "1.14.1", + "@webassemblyjs/helper-buffer": "1.14.1", + "@webassemblyjs/helper-wasm-bytecode": "1.13.2", + "@webassemblyjs/helper-wasm-section": "1.14.1", + "@webassemblyjs/wasm-gen": "1.14.1", + "@webassemblyjs/wasm-opt": "1.14.1", + "@webassemblyjs/wasm-parser": "1.14.1", + "@webassemblyjs/wast-printer": "1.14.1" } }, "node_modules/@webassemblyjs/wasm-gen": { - "version": "1.12.1", - "resolved": "https://npm.sinequa.com/@webassemblyjs/wasm-gen/-/wasm-gen-1.12.1.tgz", - "integrity": "sha512-TDq4Ojh9fcohAw6OIMXqiIcTq5KUXTGRkVxbSo1hQnSy6lAM5GSdfwWeSxpAo0YzgsgF182E/U0mDNhuA0tW7w==", + "version": "1.14.1", + "resolved": "https://npm.sinequa.com/@webassemblyjs/wasm-gen/-/wasm-gen-1.14.1.tgz", + "integrity": "sha512-AmomSIjP8ZbfGQhumkNvgC33AY7qtMCXnN6bL2u2Js4gVCg8fp735aEiMSBbDR7UQIj90n4wKAFUSEd0QN2Ukg==", "dev": true, + "license": "MIT", "dependencies": { - "@webassemblyjs/ast": "1.12.1", - "@webassemblyjs/helper-wasm-bytecode": "1.11.6", - "@webassemblyjs/ieee754": "1.11.6", - "@webassemblyjs/leb128": "1.11.6", - "@webassemblyjs/utf8": "1.11.6" + "@webassemblyjs/ast": "1.14.1", + "@webassemblyjs/helper-wasm-bytecode": "1.13.2", + "@webassemblyjs/ieee754": "1.13.2", + "@webassemblyjs/leb128": "1.13.2", + "@webassemblyjs/utf8": "1.13.2" } }, "node_modules/@webassemblyjs/wasm-opt": { - "version": "1.12.1", - "resolved": "https://npm.sinequa.com/@webassemblyjs/wasm-opt/-/wasm-opt-1.12.1.tgz", - "integrity": "sha512-Jg99j/2gG2iaz3hijw857AVYekZe2SAskcqlWIZXjji5WStnOpVoat3gQfT/Q5tb2djnCjBtMocY/Su1GfxPBg==", + "version": "1.14.1", + "resolved": "https://npm.sinequa.com/@webassemblyjs/wasm-opt/-/wasm-opt-1.14.1.tgz", + "integrity": "sha512-PTcKLUNvBqnY2U6E5bdOQcSM+oVP/PmrDY9NzowJjislEjwP/C4an2303MCVS2Mg9d3AJpIGdUFIQQWbPds0Sw==", "dev": true, + "license": "MIT", "dependencies": { - "@webassemblyjs/ast": "1.12.1", - "@webassemblyjs/helper-buffer": "1.12.1", - "@webassemblyjs/wasm-gen": "1.12.1", - "@webassemblyjs/wasm-parser": "1.12.1" + "@webassemblyjs/ast": "1.14.1", + "@webassemblyjs/helper-buffer": "1.14.1", + "@webassemblyjs/wasm-gen": "1.14.1", + "@webassemblyjs/wasm-parser": "1.14.1" } }, "node_modules/@webassemblyjs/wasm-parser": { - "version": "1.12.1", - "resolved": "https://npm.sinequa.com/@webassemblyjs/wasm-parser/-/wasm-parser-1.12.1.tgz", - "integrity": "sha512-xikIi7c2FHXysxXe3COrVUPSheuBtpcfhbpFj4gmu7KRLYOzANztwUU0IbsqvMqzuNK2+glRGWCEqZo1WCLyAQ==", + "version": "1.14.1", + "resolved": "https://npm.sinequa.com/@webassemblyjs/wasm-parser/-/wasm-parser-1.14.1.tgz", + "integrity": "sha512-JLBl+KZ0R5qB7mCnud/yyX08jWFw5MsoalJ1pQ4EdFlgj9VdXKGuENGsiCIjegI1W7p91rUlcB/LB5yRJKNTcQ==", "dev": true, + "license": "MIT", "dependencies": { - "@webassemblyjs/ast": "1.12.1", - "@webassemblyjs/helper-api-error": "1.11.6", - "@webassemblyjs/helper-wasm-bytecode": "1.11.6", - "@webassemblyjs/ieee754": "1.11.6", - "@webassemblyjs/leb128": "1.11.6", - "@webassemblyjs/utf8": "1.11.6" + "@webassemblyjs/ast": "1.14.1", + "@webassemblyjs/helper-api-error": "1.13.2", + "@webassemblyjs/helper-wasm-bytecode": "1.13.2", + "@webassemblyjs/ieee754": "1.13.2", + "@webassemblyjs/leb128": "1.13.2", + "@webassemblyjs/utf8": "1.13.2" } }, "node_modules/@webassemblyjs/wast-printer": { - "version": "1.12.1", - "resolved": "https://npm.sinequa.com/@webassemblyjs/wast-printer/-/wast-printer-1.12.1.tgz", - "integrity": "sha512-+X4WAlOisVWQMikjbcvY2e0rwPsKQ9F688lksZhBcPycBBuii3O7m8FACbDMWDojpAqvjIncrG8J0XHKyQfVeA==", + "version": "1.14.1", + "resolved": "https://npm.sinequa.com/@webassemblyjs/wast-printer/-/wast-printer-1.14.1.tgz", + "integrity": "sha512-kPSSXE6De1XOR820C90RIo2ogvZG+c3KiHzqUoO/F34Y2shGzesfqv7o57xrxovZJH/MetF5UjroJ/R/3isoiw==", "dev": true, + "license": "MIT", "dependencies": { - "@webassemblyjs/ast": "1.12.1", + "@webassemblyjs/ast": "1.14.1", "@xtuc/long": "4.2.2" } }, @@ -4684,33 +4937,38 @@ "version": "1.2.0", "resolved": "https://npm.sinequa.com/@xtuc/ieee754/-/ieee754-1.2.0.tgz", "integrity": "sha512-DX8nKgqcGwsc0eJSqYt5lwP4DH5FlHnmuWWBRy7X0NcaGR0ZtuyeESgMwTYVEtxmsNGY+qit4QYT/MIYTOTPeA==", - "dev": true + "dev": true, + "license": "BSD-3-Clause" }, "node_modules/@xtuc/long": { "version": "4.2.2", "resolved": "https://npm.sinequa.com/@xtuc/long/-/long-4.2.2.tgz", "integrity": "sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ==", - "dev": true + "dev": true, + "license": "Apache-2.0" }, "node_modules/@yarnpkg/lockfile": { "version": "1.1.0", - "resolved": "https://npm.sinequa.com:4873/@yarnpkg/lockfile/-/lockfile-1.1.0.tgz", + "resolved": "https://npm.sinequa.com/@yarnpkg/lockfile/-/lockfile-1.1.0.tgz", "integrity": "sha512-GpSwvyXOcOOlV70vbnzjj4fW5xW/FdUF6nQEt1ENy7m4ZCczi1+/buVUPAqmGfqznsORNFzUMjctTIp8a9tuCQ==", - "dev": true + "dev": true, + "license": "BSD-2-Clause" }, "node_modules/abbrev": { "version": "2.0.0", - "resolved": "https://npm.sinequa.com:4873/abbrev/-/abbrev-2.0.0.tgz", + "resolved": "https://npm.sinequa.com/abbrev/-/abbrev-2.0.0.tgz", "integrity": "sha512-6/mh1E2u2YgEsCHdY0Yx5oW+61gZU+1vXaoiHHrpKeuRNNgFvS+/jrwHiQhB5apAf5oB7UB7E19ol2R2LKH8hQ==", "dev": true, + "license": "ISC", "engines": { "node": "^14.17.0 || ^16.13.0 || >=18.0.0" } }, "node_modules/abort-controller": { "version": "3.0.0", - "resolved": "https://npm.sinequa.com:4873/abort-controller/-/abort-controller-3.0.0.tgz", + "resolved": "https://npm.sinequa.com/abort-controller/-/abort-controller-3.0.0.tgz", "integrity": "sha512-h8lQ8tacZYnR3vNQTgibj+tODHI5/+l06Au2Pcriv/Gmet0eaj4TwWH41sO9wnHDiQsEj19q0drzdWdeAHtweg==", + "license": "MIT", "dependencies": { "event-target-shim": "^5.0.0" }, @@ -4720,9 +4978,10 @@ }, "node_modules/accepts": { "version": "1.3.8", - "resolved": "https://npm.sinequa.com:4873/accepts/-/accepts-1.3.8.tgz", + "resolved": "https://npm.sinequa.com/accepts/-/accepts-1.3.8.tgz", "integrity": "sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==", "dev": true, + "license": "MIT", "dependencies": { "mime-types": "~2.1.34", "negotiator": "0.6.3" @@ -4731,11 +4990,22 @@ "node": ">= 0.6" } }, + "node_modules/accepts/node_modules/negotiator": { + "version": "0.6.3", + "resolved": "https://npm.sinequa.com/negotiator/-/negotiator-0.6.3.tgz", + "integrity": "sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, "node_modules/acorn": { - "version": "8.12.1", - "resolved": "https://npm.sinequa.com/acorn/-/acorn-8.12.1.tgz", - "integrity": "sha512-tcpGyI9zbizT9JbV6oYE477V6mTlXvvi0T0G3SNIYE2apm/G5huBa1+K89VGeovbg+jycCrfhl3ADxErOuO6Jg==", + "version": "8.14.0", + "resolved": "https://npm.sinequa.com/acorn/-/acorn-8.14.0.tgz", + "integrity": "sha512-cl669nCJTZBsL97OF4kUQm5g5hC2uihk0NxY3WENAC0TYdILVkAyHymAntgxGkl7K+t0cXIrH5siy5S4XkFycA==", "dev": true, + "license": "MIT", "bin": { "acorn": "bin/acorn" }, @@ -4748,15 +5018,17 @@ "resolved": "https://npm.sinequa.com/acorn-import-attributes/-/acorn-import-attributes-1.9.5.tgz", "integrity": "sha512-n02Vykv5uA3eHGM/Z2dQrcD56kL8TyDb2p1+0P83PClMnC/nc+anbQRhIOWnSq4Ke/KvDPrY3C9hDtC/A3eHnQ==", "dev": true, + "license": "MIT", "peerDependencies": { "acorn": "^8" } }, "node_modules/adjust-sourcemap-loader": { "version": "4.0.0", - "resolved": "https://npm.sinequa.com:4873/adjust-sourcemap-loader/-/adjust-sourcemap-loader-4.0.0.tgz", + "resolved": "https://npm.sinequa.com/adjust-sourcemap-loader/-/adjust-sourcemap-loader-4.0.0.tgz", "integrity": "sha512-OXwN5b9pCUXNQHJpwwD2qP40byEmSgzj8B4ydSN0uMNYWiFmJ6x6KwUllMmfk8Rwu/HJDFR7U8ubsWBoN0Xp0A==", "dev": true, + "license": "MIT", "dependencies": { "loader-utils": "^2.0.0", "regex-parser": "^2.2.11" @@ -4767,9 +5039,10 @@ }, "node_modules/adjust-sourcemap-loader/node_modules/loader-utils": { "version": "2.0.4", - "resolved": "https://npm.sinequa.com:4873/loader-utils/-/loader-utils-2.0.4.tgz", + "resolved": "https://npm.sinequa.com/loader-utils/-/loader-utils-2.0.4.tgz", "integrity": "sha512-xXqpXoINfFhgua9xiqD8fPFHgkoq1mmmpE92WlDbm9rNRd/EbRb+Gqf908T2DMfuHjjJlksiK2RbHVOdD/MqSw==", "dev": true, + "license": "MIT", "dependencies": { "big.js": "^5.2.2", "emojis-list": "^3.0.0", @@ -4780,22 +5053,21 @@ } }, "node_modules/agent-base": { - "version": "7.1.1", - "resolved": "https://npm.sinequa.com:4873/agent-base/-/agent-base-7.1.1.tgz", - "integrity": "sha512-H0TSyFNDMomMNJQBn8wFV5YC/2eJ+VXECwOadZJT554xP6cODZHPX3H9QMQECxvrgiSOP1pHjy1sMWQVYJOUOA==", + "version": "7.1.3", + "resolved": "https://npm.sinequa.com/agent-base/-/agent-base-7.1.3.tgz", + "integrity": "sha512-jRR5wdylq8CkOe6hei19GGZnxM6rBGwFl3Bg0YItGDimvjGtAvdZk4Pu6Cl4u4Igsws4a1fd1Vq3ezrhn4KmFw==", "dev": true, - "dependencies": { - "debug": "^4.3.4" - }, + "license": "MIT", "engines": { "node": ">= 14" } }, "node_modules/aggregate-error": { "version": "3.1.0", - "resolved": "https://npm.sinequa.com:4873/aggregate-error/-/aggregate-error-3.1.0.tgz", + "resolved": "https://npm.sinequa.com/aggregate-error/-/aggregate-error-3.1.0.tgz", "integrity": "sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA==", "dev": true, + "license": "MIT", "dependencies": { "clean-stack": "^2.0.0", "indent-string": "^4.0.0" @@ -4808,7 +5080,7 @@ "version": "8.17.1", "resolved": "https://npm.sinequa.com/ajv/-/ajv-8.17.1.tgz", "integrity": "sha512-B/gBuNg5SiMTrPkC+A2+cW0RszwxYmn6VYxB/inlBStS5nx6xHIt/ehKRhIMhqusl7a8LjQoZnjCs5vhwxOQ1g==", - "dev": true, + "license": "MIT", "dependencies": { "fast-deep-equal": "^3.1.3", "fast-uri": "^3.0.1", @@ -4824,7 +5096,7 @@ "version": "3.0.1", "resolved": "https://npm.sinequa.com/ajv-formats/-/ajv-formats-3.0.1.tgz", "integrity": "sha512-8iUql50EUR+uUcdRQ3HDqa6EVyo3docL8g5WJ3FNcWmu62IbkGUue/pEyLBW8VGKKucTPgqeks4fIU1DA4yowQ==", - "dev": true, + "license": "MIT", "dependencies": { "ajv": "^8.0.0" }, @@ -4839,9 +5111,10 @@ }, "node_modules/ajv-keywords": { "version": "5.1.0", - "resolved": "https://npm.sinequa.com:4873/ajv-keywords/-/ajv-keywords-5.1.0.tgz", + "resolved": "https://npm.sinequa.com/ajv-keywords/-/ajv-keywords-5.1.0.tgz", "integrity": "sha512-YCS/JNFAUyr5vAuhk1DWm1CBxRHW9LbJ2ozWeemrIqpbsqKjHVxYPyi5GC0rjZIT5JxJ3virVTS8wk4i/Z+krw==", "dev": true, + "license": "MIT", "dependencies": { "fast-deep-equal": "^3.1.3" }, @@ -4851,9 +5124,10 @@ }, "node_modules/ansi-colors": { "version": "4.1.3", - "resolved": "https://npm.sinequa.com:4873/ansi-colors/-/ansi-colors-4.1.3.tgz", + "resolved": "https://npm.sinequa.com/ansi-colors/-/ansi-colors-4.1.3.tgz", "integrity": "sha512-/6w/C21Pm1A7aZitlI5Ni/2J6FFQN8i1Cvz3kHABAAbw93v/NlvKdVOqz7CCWz/3iv/JplRSEEZ83XION15ovw==", "dev": true, + "license": "MIT", "engines": { "node": ">=6" } @@ -4863,6 +5137,7 @@ "resolved": "https://npm.sinequa.com/ansi-escapes/-/ansi-escapes-4.3.2.tgz", "integrity": "sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==", "dev": true, + "license": "MIT", "dependencies": { "type-fest": "^0.21.3" }, @@ -4875,46 +5150,54 @@ }, "node_modules/ansi-html-community": { "version": "0.0.8", - "resolved": "https://npm.sinequa.com:4873/ansi-html-community/-/ansi-html-community-0.0.8.tgz", + "resolved": "https://npm.sinequa.com/ansi-html-community/-/ansi-html-community-0.0.8.tgz", "integrity": "sha512-1APHAyr3+PCamwNw3bXCPp4HFLONZt/yIH0sZp0/469KWNTEy+qN5jQ3GVX6DMZ1UXAi34yVwtTeaG/HpBuuzw==", "dev": true, "engines": [ "node >= 0.8.0" ], + "license": "Apache-2.0", "bin": { "ansi-html": "bin/ansi-html" } }, "node_modules/ansi-regex": { "version": "5.0.1", - "resolved": "https://npm.sinequa.com:4873/ansi-regex/-/ansi-regex-5.0.1.tgz", + "resolved": "https://npm.sinequa.com/ansi-regex/-/ansi-regex-5.0.1.tgz", "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "license": "MIT", "engines": { "node": ">=8" } }, "node_modules/ansi-styles": { - "version": "3.2.1", - "resolved": "https://npm.sinequa.com/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "version": "4.3.0", + "resolved": "https://npm.sinequa.com/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "license": "MIT", "dependencies": { - "color-convert": "^1.9.0" + "color-convert": "^2.0.1" }, "engines": { - "node": ">=4" - } + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } }, "node_modules/any-promise": { "version": "1.3.0", - "resolved": "https://npm.sinequa.com:4873/any-promise/-/any-promise-1.3.0.tgz", + "resolved": "https://npm.sinequa.com/any-promise/-/any-promise-1.3.0.tgz", "integrity": "sha512-7UvmKalWRt1wgjL1RrGxoSJW/0QZFIegpeGvZG9kjp8vrRu55XTHbwnqq2GpXm9uLbcuhxm3IqX9OB4MZR1b2A==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/anymatch": { "version": "3.1.3", - "resolved": "https://npm.sinequa.com:4873/anymatch/-/anymatch-3.1.3.tgz", + "resolved": "https://npm.sinequa.com/anymatch/-/anymatch-3.1.3.tgz", "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==", "dev": true, + "license": "ISC", "dependencies": { "normalize-path": "^3.0.0", "picomatch": "^2.0.4" @@ -4925,9 +5208,10 @@ }, "node_modules/anymatch/node_modules/picomatch": { "version": "2.3.1", - "resolved": "https://npm.sinequa.com:4873/picomatch/-/picomatch-2.3.1.tgz", + "resolved": "https://npm.sinequa.com/picomatch/-/picomatch-2.3.1.tgz", "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", "dev": true, + "license": "MIT", "engines": { "node": ">=8.6" }, @@ -4937,23 +5221,32 @@ }, "node_modules/arg": { "version": "5.0.2", - "resolved": "https://npm.sinequa.com:4873/arg/-/arg-5.0.2.tgz", + "resolved": "https://npm.sinequa.com/arg/-/arg-5.0.2.tgz", "integrity": "sha512-PYjyFOLKQ9y57JvQ6QLo8dAgNqswh8M1RMJYdQduT6xbWSgK36P/Z/v+p888pM69jMMfS8Xd8F6I1kQ/I9HUGg==", - "dev": true + "dev": true, + "license": "MIT" + }, + "node_modules/argparse": { + "version": "2.0.1", + "resolved": "https://npm.sinequa.com/argparse/-/argparse-2.0.1.tgz", + "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", + "license": "Python-2.0" }, "node_modules/aria-query": { - "version": "5.3.0", - "resolved": "https://npm.sinequa.com/aria-query/-/aria-query-5.3.0.tgz", - "integrity": "sha512-b0P0sZPKtyu8HkeRAfCq0IfURZK+SuwMjY1UXGBU27wpAiTwQAIlq56IbIO+ytk/JjS1fMR14ee5WBBfKi5J6A==", - "dependencies": { - "dequal": "^2.0.3" + "version": "5.3.2", + "resolved": "https://npm.sinequa.com/aria-query/-/aria-query-5.3.2.tgz", + "integrity": "sha512-COROpnaoap1E2F000S62r6A60uHZnmlvomhfyT2DlTcrY1OrBKn2UhH7qn5wTC9zMvD0AY7csdPSNwKP+7WiQw==", + "license": "Apache-2.0", + "engines": { + "node": ">= 0.4" } }, "node_modules/array-flatten": { "version": "1.1.1", - "resolved": "https://npm.sinequa.com:4873/array-flatten/-/array-flatten-1.1.1.tgz", + "resolved": "https://npm.sinequa.com/array-flatten/-/array-flatten-1.1.1.tgz", "integrity": "sha1-ml9pkFGx5wczKPKgCJaLZOopVdI=", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/autoprefixer": { "version": "10.4.20", @@ -4974,6 +5267,7 @@ "url": "https://github.com/sponsors/ai" } ], + "license": "MIT", "dependencies": { "browserslist": "^4.23.3", "caniuse-lite": "^1.0.30001646", @@ -4996,15 +5290,17 @@ "version": "4.1.0", "resolved": "https://npm.sinequa.com/axobject-query/-/axobject-query-4.1.0.tgz", "integrity": "sha512-qIj0G9wZbMGNLjLmg1PT6v2mE9AH2zlnADJD/2tC6E00hgmhUOfEB6greHPAfLRSufHqROIUTkw6E+M3lH0PTQ==", + "license": "Apache-2.0", "engines": { "node": ">= 0.4" } }, "node_modules/babel-loader": { "version": "9.1.3", - "resolved": "https://npm.sinequa.com:4873/babel-loader/-/babel-loader-9.1.3.tgz", + "resolved": "https://npm.sinequa.com/babel-loader/-/babel-loader-9.1.3.tgz", "integrity": "sha512-xG3ST4DglodGf8qSwv0MdeWLhrDsw/32QMdTO5T1ZIp9gQur0HkCyFs7Awskr10JKXFXwpAhiCuYX5oGXnRGbw==", "dev": true, + "license": "MIT", "dependencies": { "find-cache-dir": "^4.0.0", "schema-utils": "^4.0.0" @@ -5018,13 +5314,14 @@ } }, "node_modules/babel-plugin-polyfill-corejs2": { - "version": "0.4.11", - "resolved": "https://npm.sinequa.com/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.4.11.tgz", - "integrity": "sha512-sMEJ27L0gRHShOh5G54uAAPaiCOygY/5ratXuiyb2G46FmlSpc9eFCzYVyDiPxfNbwzA7mYahmjQc5q+CZQ09Q==", + "version": "0.4.12", + "resolved": "https://npm.sinequa.com/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.4.12.tgz", + "integrity": "sha512-CPWT6BwvhrTO2d8QVorhTCQw9Y43zOu7G9HigcfxvepOU6b8o3tcWad6oVgZIsZCTt42FFv97aA7ZJsbM4+8og==", "dev": true, + "license": "MIT", "dependencies": { "@babel/compat-data": "^7.22.6", - "@babel/helper-define-polyfill-provider": "^0.6.2", + "@babel/helper-define-polyfill-provider": "^0.6.3", "semver": "^6.3.1" }, "peerDependencies": { @@ -5036,6 +5333,7 @@ "resolved": "https://npm.sinequa.com/semver/-/semver-6.3.1.tgz", "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", "dev": true, + "license": "ISC", "bin": { "semver": "bin/semver.js" } @@ -5045,6 +5343,7 @@ "resolved": "https://npm.sinequa.com/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.10.6.tgz", "integrity": "sha512-b37+KR2i/khY5sKmWNVQAnitvquQbNdWy6lJdsr0kmquCKEEUgMKK4SboVM3HtfnZilfjr4MMQ7vY58FVWDtIA==", "dev": true, + "license": "MIT", "dependencies": { "@babel/helper-define-polyfill-provider": "^0.6.2", "core-js-compat": "^3.38.0" @@ -5054,12 +5353,13 @@ } }, "node_modules/babel-plugin-polyfill-regenerator": { - "version": "0.6.2", - "resolved": "https://npm.sinequa.com/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.6.2.tgz", - "integrity": "sha512-2R25rQZWP63nGwaAswvDazbPXfrM3HwVoBXK6HcqeKrSrL/JqcC/rDcf95l4r7LXLyxDXc8uQDa064GubtCABg==", + "version": "0.6.3", + "resolved": "https://npm.sinequa.com/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.6.3.tgz", + "integrity": "sha512-LiWSbl4CRSIa5x/JAU6jZiG9eit9w6mz+yVMFwDE83LAWvt0AfGBoZ7HS/mkhrKuh2ZlzfVZYKoLjXdqw6Yt7Q==", "dev": true, + "license": "MIT", "dependencies": { - "@babel/helper-define-polyfill-provider": "^0.6.2" + "@babel/helper-define-polyfill-provider": "^0.6.3" }, "peerDependencies": { "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" @@ -5067,12 +5367,13 @@ }, "node_modules/balanced-match": { "version": "1.0.2", - "resolved": "https://npm.sinequa.com:4873/balanced-match/-/balanced-match-1.0.2.tgz", - "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==" + "resolved": "https://npm.sinequa.com/balanced-match/-/balanced-match-1.0.2.tgz", + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", + "license": "MIT" }, "node_modules/base64-js": { "version": "1.5.1", - "resolved": "https://npm.sinequa.com:4873/base64-js/-/base64-js-1.5.1.tgz", + "resolved": "https://npm.sinequa.com/base64-js/-/base64-js-1.5.1.tgz", "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==", "funding": [ { @@ -5087,28 +5388,32 @@ "type": "consulting", "url": "https://feross.org/support" } - ] + ], + "license": "MIT" }, "node_modules/batch": { "version": "0.6.1", - "resolved": "https://npm.sinequa.com:4873/batch/-/batch-0.6.1.tgz", + "resolved": "https://npm.sinequa.com/batch/-/batch-0.6.1.tgz", "integrity": "sha1-3DQxT05nkxgJP8dgJyUl+UvyXBY=", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/big.js": { "version": "5.2.2", - "resolved": "https://npm.sinequa.com:4873/big.js/-/big.js-5.2.2.tgz", + "resolved": "https://npm.sinequa.com/big.js/-/big.js-5.2.2.tgz", "integrity": "sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ==", "dev": true, + "license": "MIT", "engines": { "node": "*" } }, "node_modules/binary-extensions": { "version": "2.3.0", - "resolved": "https://npm.sinequa.com:4873/binary-extensions/-/binary-extensions-2.3.0.tgz", + "resolved": "https://npm.sinequa.com/binary-extensions/-/binary-extensions-2.3.0.tgz", "integrity": "sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw==", "dev": true, + "license": "MIT", "engines": { "node": ">=8" }, @@ -5118,8 +5423,9 @@ }, "node_modules/bl": { "version": "4.1.0", - "resolved": "https://npm.sinequa.com:4873/bl/-/bl-4.1.0.tgz", + "resolved": "https://npm.sinequa.com/bl/-/bl-4.1.0.tgz", "integrity": "sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w==", + "license": "MIT", "dependencies": { "buffer": "^5.5.0", "inherits": "^2.0.4", @@ -5131,6 +5437,7 @@ "resolved": "https://npm.sinequa.com/body-parser/-/body-parser-1.20.3.tgz", "integrity": "sha512-7rAxByjUMqQ3/bHJy7D6OGXvx/MMc4IqBn/X0fcM1QUcAItpZrBEYhWGem+tzXH90c+G01ypMcYJBO9Y30203g==", "dev": true, + "license": "MIT", "dependencies": { "bytes": "3.1.2", "content-type": "~1.0.5", @@ -5150,20 +5457,12 @@ "npm": "1.2.8000 || >= 1.4.16" } }, - "node_modules/body-parser/node_modules/bytes": { - "version": "3.1.2", - "resolved": "https://npm.sinequa.com/bytes/-/bytes-3.1.2.tgz", - "integrity": "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==", - "dev": true, - "engines": { - "node": ">= 0.8" - } - }, "node_modules/body-parser/node_modules/debug": { "version": "2.6.9", "resolved": "https://npm.sinequa.com/debug/-/debug-2.6.9.tgz", "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", "dev": true, + "license": "MIT", "dependencies": { "ms": "2.0.0" } @@ -5172,13 +5471,15 @@ "version": "2.0.0", "resolved": "https://npm.sinequa.com/ms/-/ms-2.0.0.tgz", "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/bonjour-service": { - "version": "1.2.1", - "resolved": "https://npm.sinequa.com:4873/bonjour-service/-/bonjour-service-1.2.1.tgz", - "integrity": "sha512-oSzCS2zV14bh2kji6vNe7vrpJYCHGvcZnlffFQ1MEoX/WOeQ/teD8SYWKR942OI3INjq8OMNJlbPK5LLLUxFDw==", + "version": "1.3.0", + "resolved": "https://npm.sinequa.com/bonjour-service/-/bonjour-service-1.3.0.tgz", + "integrity": "sha512-3YuAUiSkWykd+2Azjgyxei8OWf8thdn8AITIog2M4UICzoqfjlqr64WIjEXZllf/W6vK1goqleSR6brGomxQqA==", "dev": true, + "license": "MIT", "dependencies": { "fast-deep-equal": "^3.1.3", "multicast-dns": "^7.2.5" @@ -5188,21 +5489,24 @@ "version": "1.0.0", "resolved": "https://npm.sinequa.com/boolbase/-/boolbase-1.0.0.tgz", "integrity": "sha1-aN/1++YMUes3cl6p4+0xDcwed24=", - "dev": true + "dev": true, + "license": "ISC" }, "node_modules/brace-expansion": { "version": "2.0.1", - "resolved": "https://npm.sinequa.com:4873/brace-expansion/-/brace-expansion-2.0.1.tgz", + "resolved": "https://npm.sinequa.com/brace-expansion/-/brace-expansion-2.0.1.tgz", "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "license": "MIT", "dependencies": { "balanced-match": "^1.0.0" } }, "node_modules/braces": { "version": "3.0.3", - "resolved": "https://npm.sinequa.com:4873/braces/-/braces-3.0.3.tgz", + "resolved": "https://npm.sinequa.com/braces/-/braces-3.0.3.tgz", "integrity": "sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==", "dev": true, + "license": "MIT", "dependencies": { "fill-range": "^7.1.1" }, @@ -5211,9 +5515,9 @@ } }, "node_modules/browserslist": { - "version": "4.24.0", - "resolved": "https://npm.sinequa.com/browserslist/-/browserslist-4.24.0.tgz", - "integrity": "sha512-Rmb62sR1Zpjql25eSanFGEhAxcFwfA1K0GuQcLoaJBAcENegrQut3hYdhXFF1obQfiDyqIW/cLM5HSJ/9k884A==", + "version": "4.24.4", + "resolved": "https://npm.sinequa.com/browserslist/-/browserslist-4.24.4.tgz", + "integrity": "sha512-KDi1Ny1gSePi1vm0q4oxSF8b4DR44GF4BbmS2YdhPLOEqd8pDviZOGH/GsmRwoWJ2+5Lr085X7naowMwKHDG1A==", "dev": true, "funding": [ { @@ -5229,11 +5533,12 @@ "url": "https://github.com/sponsors/ai" } ], + "license": "MIT", "dependencies": { - "caniuse-lite": "^1.0.30001663", - "electron-to-chromium": "^1.5.28", - "node-releases": "^2.0.18", - "update-browserslist-db": "^1.1.0" + "caniuse-lite": "^1.0.30001688", + "electron-to-chromium": "^1.5.73", + "node-releases": "^2.0.19", + "update-browserslist-db": "^1.1.1" }, "bin": { "browserslist": "cli.js" @@ -5244,7 +5549,7 @@ }, "node_modules/buffer": { "version": "5.7.1", - "resolved": "https://npm.sinequa.com:4873/buffer/-/buffer-5.7.1.tgz", + "resolved": "https://npm.sinequa.com/buffer/-/buffer-5.7.1.tgz", "integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==", "funding": [ { @@ -5260,6 +5565,7 @@ "url": "https://feross.org/support" } ], + "license": "MIT", "dependencies": { "base64-js": "^1.3.1", "ieee754": "^1.1.13" @@ -5267,15 +5573,17 @@ }, "node_modules/buffer-from": { "version": "1.1.2", - "resolved": "https://npm.sinequa.com:4873/buffer-from/-/buffer-from-1.1.2.tgz", + "resolved": "https://npm.sinequa.com/buffer-from/-/buffer-from-1.1.2.tgz", "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/bundle-name": { "version": "4.1.0", - "resolved": "https://npm.sinequa.com:4873/bundle-name/-/bundle-name-4.1.0.tgz", + "resolved": "https://npm.sinequa.com/bundle-name/-/bundle-name-4.1.0.tgz", "integrity": "sha512-tjwM5exMg6BGRI+kNmTntNsvdZS1X8BFYS6tnJ2hdH0kVxM6/eVZ2xy+FqStSWvYmtfFMDLIxurorHwDKfDz5Q==", "dev": true, + "license": "MIT", "dependencies": { "run-applescript": "^7.0.0" }, @@ -5287,19 +5595,21 @@ } }, "node_modules/bytes": { - "version": "3.0.0", - "resolved": "https://npm.sinequa.com:4873/bytes/-/bytes-3.0.0.tgz", - "integrity": "sha1-0ygVQE1olpn4Wk6k+odV3ROpYEg=", + "version": "3.1.2", + "resolved": "https://npm.sinequa.com/bytes/-/bytes-3.1.2.tgz", + "integrity": "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==", "dev": true, + "license": "MIT", "engines": { "node": ">= 0.8" } }, "node_modules/cacache": { - "version": "18.0.3", - "resolved": "https://npm.sinequa.com:4873/cacache/-/cacache-18.0.3.tgz", - "integrity": "sha512-qXCd4rh6I07cnDqh8V48/94Tc/WSfj+o3Gn6NZ0aZovS255bUx8O13uKxRFd2eWG0xgsco7+YItQNPaa5E85hg==", + "version": "18.0.4", + "resolved": "https://npm.sinequa.com/cacache/-/cacache-18.0.4.tgz", + "integrity": "sha512-B+L5iIa9mgcjLbliir2th36yEwPftrzteHYujzsx3dFP/31GCHcIeS8f5MGd80odLOjaOvSpU3EEAmRQptkxLQ==", "dev": true, + "license": "ISC", "dependencies": { "@npmcli/fs": "^3.1.0", "fs-minipass": "^3.0.0", @@ -5319,25 +5629,35 @@ } }, "node_modules/cacache/node_modules/lru-cache": { - "version": "10.2.2", - "resolved": "https://npm.sinequa.com:4873/lru-cache/-/lru-cache-10.2.2.tgz", - "integrity": "sha512-9hp3Vp2/hFQUiIwKo8XCeFVnrg8Pk3TYNPIR7tJADKi5YfcF7vEaK7avFHTlSy3kOKYaJQaalfEo6YuXdceBOQ==", + "version": "10.4.3", + "resolved": "https://npm.sinequa.com/lru-cache/-/lru-cache-10.4.3.tgz", + "integrity": "sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==", + "dev": true, + "license": "ISC" + }, + "node_modules/call-bind-apply-helpers": { + "version": "1.0.1", + "resolved": "https://npm.sinequa.com/call-bind-apply-helpers/-/call-bind-apply-helpers-1.0.1.tgz", + "integrity": "sha512-BhYE+WDaywFg2TBWYNXAE+8B1ATnThNBqXHP5nQu0jWJdVvY2hvkpyB3qOmtmDePiS5/BDQ8wASEWGMWRG148g==", "dev": true, + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0", + "function-bind": "^1.1.2" + }, "engines": { - "node": "14 || >=16.14" + "node": ">= 0.4" } }, - "node_modules/call-bind": { - "version": "1.0.7", - "resolved": "https://npm.sinequa.com/call-bind/-/call-bind-1.0.7.tgz", - "integrity": "sha512-GHTSNSYICQ7scH7sZ+M2rFopRoLh8t2bLSW6BbgrtLsahOIB5iyAVJf9GjWK3cYTDaMj4XdBpM1cA6pIS0Kv2w==", + "node_modules/call-bound": { + "version": "1.0.3", + "resolved": "https://npm.sinequa.com/call-bound/-/call-bound-1.0.3.tgz", + "integrity": "sha512-YTd+6wGlNlPxSuri7Y6X8tY2dmm12UMH66RpKMhiX6rsk5wXXnYgbUcOt8kiS31/AjfoTOvCsE+w8nZQLQnzHA==", "dev": true, + "license": "MIT", "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" + "call-bind-apply-helpers": "^1.0.1", + "get-intrinsic": "^1.2.6" }, "engines": { "node": ">= 0.4" @@ -5348,25 +5668,27 @@ }, "node_modules/callsites": { "version": "3.1.0", - "resolved": "https://npm.sinequa.com:4873/callsites/-/callsites-3.1.0.tgz", + "resolved": "https://npm.sinequa.com/callsites/-/callsites-3.1.0.tgz", "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", + "license": "MIT", "engines": { "node": ">=6" } }, "node_modules/camelcase-css": { "version": "2.0.1", - "resolved": "https://npm.sinequa.com:4873/camelcase-css/-/camelcase-css-2.0.1.tgz", + "resolved": "https://npm.sinequa.com/camelcase-css/-/camelcase-css-2.0.1.tgz", "integrity": "sha512-QOSvevhslijgYwRx6Rv7zKdMF8lbRmx+uQGx2+vDc+KI/eBnsy9kit5aj23AgGu3pa4t9AgwbnXWqS+iOY+2aA==", "dev": true, + "license": "MIT", "engines": { "node": ">= 6" } }, "node_modules/caniuse-lite": { - "version": "1.0.30001663", - "resolved": "https://npm.sinequa.com/caniuse-lite/-/caniuse-lite-1.0.30001663.tgz", - "integrity": "sha512-o9C3X27GLKbLeTYZ6HBOLU1tsAcBZsLis28wrVzddShCS16RujjHp9GDHKZqrB3meE0YjhawvMFsGb/igqiPzA==", + "version": "1.0.30001695", + "resolved": "https://npm.sinequa.com/caniuse-lite/-/caniuse-lite-1.0.30001695.tgz", + "integrity": "sha512-vHyLade6wTgI2u1ec3WQBxv+2BrTERV28UXQu9LO6lZ9pYeMk34vjXFLOxo1A4UBA8XTL4njRQZdno/yYaSmWw==", "dev": true, "funding": [ { @@ -5381,56 +5703,54 @@ "type": "github", "url": "https://github.com/sponsors/ai" } - ] + ], + "license": "CC-BY-4.0" }, "node_modules/chalk": { - "version": "2.4.2", - "resolved": "https://npm.sinequa.com/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "version": "4.1.2", + "resolved": "https://npm.sinequa.com/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "license": "MIT", "dependencies": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" }, "engines": { - "node": ">=4" + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" } }, "node_modules/chardet": { "version": "0.7.0", "resolved": "https://npm.sinequa.com/chardet/-/chardet-0.7.0.tgz", "integrity": "sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/chokidar": { - "version": "3.6.0", - "resolved": "https://npm.sinequa.com:4873/chokidar/-/chokidar-3.6.0.tgz", - "integrity": "sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==", + "version": "4.0.3", + "resolved": "https://npm.sinequa.com/chokidar/-/chokidar-4.0.3.tgz", + "integrity": "sha512-Qgzu8kfBvo+cA4962jnP1KkS6Dop5NS6g7R5LFYJr4b8Ub94PPQXUksCw9PvXoeXPRRddRNC5C1JQUR2SMGtnA==", "dev": true, + "license": "MIT", "dependencies": { - "anymatch": "~3.1.2", - "braces": "~3.0.2", - "glob-parent": "~5.1.2", - "is-binary-path": "~2.1.0", - "is-glob": "~4.0.1", - "normalize-path": "~3.0.0", - "readdirp": "~3.6.0" + "readdirp": "^4.0.1" }, "engines": { - "node": ">= 8.10.0" + "node": ">= 14.16.0" }, "funding": { "url": "https://paulmillr.com/funding/" - }, - "optionalDependencies": { - "fsevents": "~2.3.2" } }, "node_modules/chownr": { "version": "2.0.0", - "resolved": "https://npm.sinequa.com:4873/chownr/-/chownr-2.0.0.tgz", + "resolved": "https://npm.sinequa.com/chownr/-/chownr-2.0.0.tgz", "integrity": "sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ==", "dev": true, + "license": "ISC", "engines": { "node": ">=10" } @@ -5440,34 +5760,42 @@ "resolved": "https://npm.sinequa.com/chrome-trace-event/-/chrome-trace-event-1.0.4.tgz", "integrity": "sha512-rNjApaLzuwaOTjCiT8lSDdGN1APCiqkChLMJxJPWLunPAt5fy8xgU9/jNOchV84wfIxrA0lRQB7oCT8jrn/wrQ==", "dev": true, + "license": "MIT", "engines": { "node": ">=6.0" } }, "node_modules/clean-stack": { "version": "2.2.0", - "resolved": "https://npm.sinequa.com:4873/clean-stack/-/clean-stack-2.2.0.tgz", + "resolved": "https://npm.sinequa.com/clean-stack/-/clean-stack-2.2.0.tgz", "integrity": "sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A==", "dev": true, + "license": "MIT", "engines": { "node": ">=6" } }, "node_modules/cli-cursor": { - "version": "3.1.0", - "resolved": "https://npm.sinequa.com:4873/cli-cursor/-/cli-cursor-3.1.0.tgz", - "integrity": "sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw==", + "version": "5.0.0", + "resolved": "https://npm.sinequa.com/cli-cursor/-/cli-cursor-5.0.0.tgz", + "integrity": "sha512-aCj4O5wKyszjMmDT4tZj93kxyydN/K5zPWSCe6/0AV/AA1pqe5ZBIw0a2ZfPQV7lL5/yb5HsUreJ6UFAF1tEQw==", + "dev": true, + "license": "MIT", "dependencies": { - "restore-cursor": "^3.1.0" + "restore-cursor": "^5.0.0" }, "engines": { - "node": ">=8" + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/cli-spinners": { "version": "2.9.2", - "resolved": "https://npm.sinequa.com:4873/cli-spinners/-/cli-spinners-2.9.2.tgz", + "resolved": "https://npm.sinequa.com/cli-spinners/-/cli-spinners-2.9.2.tgz", "integrity": "sha512-ywqV+5MmyL4E7ybXgKys4DugZbX0FC6LnwrhjuykIjnK9k8OQacQ7axGKnjDXWNhns0xot3bZI5h55H8yo9cJg==", + "license": "MIT", "engines": { "node": ">=6" }, @@ -5480,6 +5808,7 @@ "resolved": "https://npm.sinequa.com/cli-truncate/-/cli-truncate-4.0.0.tgz", "integrity": "sha512-nPdaFdQ0h/GEigbPClz11D0v/ZJEwxmeVZGeMo3Z5StPtUTkA9o1lD6QwoirYiSDzbcwn2XcjwmCp68W1IS4TA==", "dev": true, + "license": "MIT", "dependencies": { "slice-ansi": "^5.0.0", "string-width": "^7.0.0" @@ -5496,6 +5825,7 @@ "resolved": "https://npm.sinequa.com/ansi-regex/-/ansi-regex-6.1.0.tgz", "integrity": "sha512-7HSX4QQb4CspciLpVFwyRe79O3xsIZDDLER21kERQ71oaPodF8jL725AgJMFAYbooIqolJoRLuM81SpeUkpkvA==", "dev": true, + "license": "MIT", "engines": { "node": ">=12" }, @@ -5507,13 +5837,15 @@ "version": "10.4.0", "resolved": "https://npm.sinequa.com/emoji-regex/-/emoji-regex-10.4.0.tgz", "integrity": "sha512-EC+0oUMY1Rqm4O6LLrgjtYDvcVYTy7chDnM4Q7030tP4Kwj3u/pR6gP9ygnp2CJMK5Gq+9Q2oqmrFJAz01DXjw==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/cli-truncate/node_modules/string-width": { "version": "7.2.0", "resolved": "https://npm.sinequa.com/string-width/-/string-width-7.2.0.tgz", "integrity": "sha512-tsaTIkKW9b4N+AEj+SVA+WhJzV7/zMhcSu78mLKWSk7cXMOSHsBKFWUs0fWwq8QyK3MgJBQRX6Gbi4kYbdvGkQ==", "dev": true, + "license": "MIT", "dependencies": { "emoji-regex": "^10.3.0", "get-east-asian-width": "^1.0.0", @@ -5531,6 +5863,7 @@ "resolved": "https://npm.sinequa.com/strip-ansi/-/strip-ansi-7.1.0.tgz", "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==", "dev": true, + "license": "MIT", "dependencies": { "ansi-regex": "^6.0.1" }, @@ -5546,14 +5879,16 @@ "resolved": "https://npm.sinequa.com/cli-width/-/cli-width-4.1.0.tgz", "integrity": "sha512-ouuZd4/dm2Sw5Gmqy6bGyNNNe1qt9RpmxveLSO7KcgsTnU7RXfsw+/bukWGo1abgBiMAic068rclZsO4IWmmxQ==", "dev": true, + "license": "ISC", "engines": { "node": ">= 12" } }, "node_modules/cliui": { "version": "8.0.1", - "resolved": "https://npm.sinequa.com:4873/cliui/-/cliui-8.0.1.tgz", + "resolved": "https://npm.sinequa.com/cliui/-/cliui-8.0.1.tgz", "integrity": "sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==", + "license": "ISC", "dependencies": { "string-width": "^4.2.0", "strip-ansi": "^6.0.1", @@ -5563,40 +5898,40 @@ "node": ">=12" } }, - "node_modules/cliui/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://npm.sinequa.com:4873/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dependencies": { - "color-convert": "^2.0.1" - }, + "node_modules/cliui/node_modules/emoji-regex": { + "version": "8.0.0", + "resolved": "https://npm.sinequa.com/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "license": "MIT" + }, + "node_modules/cliui/node_modules/is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://npm.sinequa.com/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "license": "MIT", "engines": { "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, - "node_modules/cliui/node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://npm.sinequa.com:4873/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "node_modules/cliui/node_modules/string-width": { + "version": "4.2.3", + "resolved": "https://npm.sinequa.com/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "license": "MIT", "dependencies": { - "color-name": "~1.1.4" + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" }, "engines": { - "node": ">=7.0.0" + "node": ">=8" } }, - "node_modules/cliui/node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://npm.sinequa.com:4873/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" - }, "node_modules/cliui/node_modules/wrap-ansi": { "version": "7.0.0", - "resolved": "https://npm.sinequa.com:4873/wrap-ansi/-/wrap-ansi-7.0.0.tgz", + "resolved": "https://npm.sinequa.com/wrap-ansi/-/wrap-ansi-7.0.0.tgz", "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", + "license": "MIT", "dependencies": { "ansi-styles": "^4.0.0", "string-width": "^4.1.0", @@ -5611,8 +5946,9 @@ }, "node_modules/clone": { "version": "1.0.4", - "resolved": "https://npm.sinequa.com:4873/clone/-/clone-1.0.4.tgz", + "resolved": "https://npm.sinequa.com/clone/-/clone-1.0.4.tgz", "integrity": "sha1-2jCcwmPfFZlMaIypAheco8fNfH4=", + "license": "MIT", "engines": { "node": ">=0.8" } @@ -5622,6 +5958,7 @@ "resolved": "https://npm.sinequa.com/clone-deep/-/clone-deep-4.0.1.tgz", "integrity": "sha512-neHB9xuzh/wk0dIHweyAXv2aPGZIVk3pLMe+/RNzINf17fe0OG96QroktYAUm7SM1PBnzTabaLboqqxDyMU+SQ==", "dev": true, + "license": "MIT", "dependencies": { "is-plain-object": "^2.0.4", "kind-of": "^6.0.2", @@ -5631,53 +5968,76 @@ "node": ">=6" } }, + "node_modules/clone-deep/node_modules/is-plain-object": { + "version": "2.0.4", + "resolved": "https://npm.sinequa.com/is-plain-object/-/is-plain-object-2.0.4.tgz", + "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", + "dev": true, + "license": "MIT", + "dependencies": { + "isobject": "^3.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/clsx": { "version": "2.1.1", - "resolved": "https://npm.sinequa.com:4873/clsx/-/clsx-2.1.1.tgz", + "resolved": "https://npm.sinequa.com/clsx/-/clsx-2.1.1.tgz", "integrity": "sha512-eYm0QWBtUrBWZWG0d386OGAw16Z995PiOVo2B7bjWSbHedGl5e0ZWaq65kOGgUSNesEIDkB9ISbTg/JK9dhCZA==", + "license": "MIT", "engines": { "node": ">=6" } }, "node_modules/color-convert": { - "version": "1.9.3", - "resolved": "https://npm.sinequa.com/color-convert/-/color-convert-1.9.3.tgz", - "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "version": "2.0.1", + "resolved": "https://npm.sinequa.com/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "license": "MIT", "dependencies": { - "color-name": "1.1.3" + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" } }, "node_modules/color-name": { - "version": "1.1.3", - "resolved": "https://npm.sinequa.com/color-name/-/color-name-1.1.3.tgz", - "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=" + "version": "1.1.4", + "resolved": "https://npm.sinequa.com/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "license": "MIT" }, "node_modules/colorette": { "version": "2.0.20", - "resolved": "https://npm.sinequa.com:4873/colorette/-/colorette-2.0.20.tgz", + "resolved": "https://npm.sinequa.com/colorette/-/colorette-2.0.20.tgz", "integrity": "sha512-IfEDxwoWIjkeXL1eXcDiow4UbKjhLdq6/EuSVR9GMN7KVH3r9gQ83e73hsz1Nd1T3ijd5xv1wcWRYO+D6kCI2w==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/commander": { "version": "4.1.1", - "resolved": "https://npm.sinequa.com:4873/commander/-/commander-4.1.1.tgz", + "resolved": "https://npm.sinequa.com/commander/-/commander-4.1.1.tgz", "integrity": "sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==", "dev": true, + "license": "MIT", "engines": { "node": ">= 6" } }, "node_modules/common-path-prefix": { "version": "3.0.0", - "resolved": "https://npm.sinequa.com:4873/common-path-prefix/-/common-path-prefix-3.0.0.tgz", + "resolved": "https://npm.sinequa.com/common-path-prefix/-/common-path-prefix-3.0.0.tgz", "integrity": "sha512-QE33hToZseCH3jS0qN96O/bSh3kaw/h+Tq7ngyY9eWDUnTlTNUyqfqvCXioLe5Na5jFsL78ra/wuBU4iuEgd4w==", - "dev": true + "dev": true, + "license": "ISC" }, "node_modules/compressible": { "version": "2.0.18", - "resolved": "https://npm.sinequa.com:4873/compressible/-/compressible-2.0.18.tgz", + "resolved": "https://npm.sinequa.com/compressible/-/compressible-2.0.18.tgz", "integrity": "sha512-AF3r7P5dWxL8MxyITRMlORQNaOA2IkAFaTr4k7BUumjPtRpGDTZpl0Pb1XCO6JeDCBdp126Cgs9sMxqSjgYyRg==", "dev": true, + "license": "MIT", "dependencies": { "mime-db": ">= 1.43.0 < 2" }, @@ -5686,17 +6046,18 @@ } }, "node_modules/compression": { - "version": "1.7.4", - "resolved": "https://npm.sinequa.com:4873/compression/-/compression-1.7.4.tgz", - "integrity": "sha512-jaSIDzP9pZVS4ZfQ+TzvtiWhdpFhE2RDHz8QJkpX9SIpLq88VueF5jJw6t+6CUQcAoA6t+x89MLrWAqpfDE8iQ==", + "version": "1.7.5", + "resolved": "https://npm.sinequa.com/compression/-/compression-1.7.5.tgz", + "integrity": "sha512-bQJ0YRck5ak3LgtnpKkiabX5pNF7tMUh1BSy2ZBOTh0Dim0BUu6aPPwByIns6/A5Prh8PufSPerMDUklpzes2Q==", "dev": true, + "license": "MIT", "dependencies": { - "accepts": "~1.3.5", - "bytes": "3.0.0", - "compressible": "~2.0.16", + "bytes": "3.1.2", + "compressible": "~2.0.18", "debug": "2.6.9", + "negotiator": "~0.6.4", "on-headers": "~1.0.2", - "safe-buffer": "5.1.2", + "safe-buffer": "5.2.1", "vary": "~1.1.2" }, "engines": { @@ -5705,39 +6066,37 @@ }, "node_modules/compression/node_modules/debug": { "version": "2.6.9", - "resolved": "https://npm.sinequa.com:4873/debug/-/debug-2.6.9.tgz", + "resolved": "https://npm.sinequa.com/debug/-/debug-2.6.9.tgz", "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", "dev": true, + "license": "MIT", "dependencies": { "ms": "2.0.0" } }, "node_modules/compression/node_modules/ms": { "version": "2.0.0", - "resolved": "https://npm.sinequa.com:4873/ms/-/ms-2.0.0.tgz", + "resolved": "https://npm.sinequa.com/ms/-/ms-2.0.0.tgz", "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", - "dev": true - }, - "node_modules/compression/node_modules/safe-buffer": { - "version": "5.1.2", - "resolved": "https://npm.sinequa.com:4873/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/connect-history-api-fallback": { "version": "2.0.0", - "resolved": "https://npm.sinequa.com:4873/connect-history-api-fallback/-/connect-history-api-fallback-2.0.0.tgz", + "resolved": "https://npm.sinequa.com/connect-history-api-fallback/-/connect-history-api-fallback-2.0.0.tgz", "integrity": "sha512-U73+6lQFmfiNPrYbXqr6kZ1i1wiRqXnp2nhMsINseWXO8lDau0LGEffJ8kQi4EjLZympVgRdvqjAgiZ1tgzDDA==", "dev": true, + "license": "MIT", "engines": { "node": ">=0.8" } }, "node_modules/content-disposition": { "version": "0.5.4", - "resolved": "https://npm.sinequa.com:4873/content-disposition/-/content-disposition-0.5.4.tgz", + "resolved": "https://npm.sinequa.com/content-disposition/-/content-disposition-0.5.4.tgz", "integrity": "sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ==", "dev": true, + "license": "MIT", "dependencies": { "safe-buffer": "5.2.1" }, @@ -5750,36 +6109,41 @@ "resolved": "https://npm.sinequa.com/content-type/-/content-type-1.0.5.tgz", "integrity": "sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA==", "dev": true, + "license": "MIT", "engines": { "node": ">= 0.6" } }, "node_modules/convert-source-map": { "version": "1.9.0", - "resolved": "https://npm.sinequa.com:4873/convert-source-map/-/convert-source-map-1.9.0.tgz", + "resolved": "https://npm.sinequa.com/convert-source-map/-/convert-source-map-1.9.0.tgz", "integrity": "sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/cookie": { "version": "0.7.1", "resolved": "https://npm.sinequa.com/cookie/-/cookie-0.7.1.tgz", "integrity": "sha512-6DnInpx7SJ2AK3+CTUE/ZM0vWTUboZCegxhC2xiIydHR9jNuTAASBrfEpHhiGOZw/nX51bHt6YQl8jsGo4y/0w==", "dev": true, + "license": "MIT", "engines": { "node": ">= 0.6" } }, "node_modules/cookie-signature": { "version": "1.0.6", - "resolved": "https://npm.sinequa.com:4873/cookie-signature/-/cookie-signature-1.0.6.tgz", + "resolved": "https://npm.sinequa.com/cookie-signature/-/cookie-signature-1.0.6.tgz", "integrity": "sha1-4wOogrNCzD7oylE6eZmXNNqzriw=", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/copy-anything": { "version": "2.0.6", - "resolved": "https://npm.sinequa.com:4873/copy-anything/-/copy-anything-2.0.6.tgz", + "resolved": "https://npm.sinequa.com/copy-anything/-/copy-anything-2.0.6.tgz", "integrity": "sha512-1j20GZTsvKNkc4BY3NpMOM8tt///wY3FpIzozTOFO2ffuZcV61nojHXVKIy3WM+7ADCy5FVhdZYHYDdgTU0yJw==", "dev": true, + "license": "MIT", "dependencies": { "is-what": "^3.14.1" }, @@ -5792,6 +6156,7 @@ "resolved": "https://npm.sinequa.com/copy-webpack-plugin/-/copy-webpack-plugin-12.0.2.tgz", "integrity": "sha512-SNwdBeHyII+rWvee/bTnAYyO8vfVdcSTud4EIb6jcZ8inLeWucJE0DnxXQBjlQ5zlteuuvooGQy3LIyGxhvlOA==", "dev": true, + "license": "MIT", "dependencies": { "fast-glob": "^3.3.2", "glob-parent": "^6.0.1", @@ -5811,25 +6176,14 @@ "webpack": "^5.1.0" } }, - "node_modules/copy-webpack-plugin/node_modules/glob-parent": { - "version": "6.0.2", - "resolved": "https://npm.sinequa.com/glob-parent/-/glob-parent-6.0.2.tgz", - "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==", - "dev": true, - "dependencies": { - "is-glob": "^4.0.3" - }, - "engines": { - "node": ">=10.13.0" - } - }, "node_modules/core-js-compat": { - "version": "3.38.1", - "resolved": "https://npm.sinequa.com/core-js-compat/-/core-js-compat-3.38.1.tgz", - "integrity": "sha512-JRH6gfXxGmrzF3tZ57lFx97YARxCXPaMzPo6jELZhv88pBH5VXpQ+y0znKGlFnzuaihqhLbefxSJxWJMPtfDzw==", + "version": "3.40.0", + "resolved": "https://npm.sinequa.com/core-js-compat/-/core-js-compat-3.40.0.tgz", + "integrity": "sha512-0XEDpr5y5mijvw8Lbc6E5AkjrHfp7eEoPlu36SWeAbcL8fn1G1ANe8DBlo2XoNN89oVpxWwOjYIPVzR4ZvsKCQ==", "dev": true, + "license": "MIT", "dependencies": { - "browserslist": "^4.23.3" + "browserslist": "^4.24.3" }, "funding": { "type": "opencollective", @@ -5838,20 +6192,21 @@ }, "node_modules/core-util-is": { "version": "1.0.3", - "resolved": "https://npm.sinequa.com:4873/core-util-is/-/core-util-is-1.0.3.tgz", + "resolved": "https://npm.sinequa.com/core-util-is/-/core-util-is-1.0.3.tgz", "integrity": "sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/cosmiconfig": { - "version": "9.0.0", - "resolved": "https://npm.sinequa.com:4873/cosmiconfig/-/cosmiconfig-9.0.0.tgz", - "integrity": "sha512-itvL5h8RETACmOTFc4UfIyB2RfEHi71Ax6E/PivVxq9NseKbOWpeyHEOIbmAw1rs8Ak0VursQNww7lf7YtUwzg==", - "dev": true, + "version": "8.3.6", + "resolved": "https://npm.sinequa.com/cosmiconfig/-/cosmiconfig-8.3.6.tgz", + "integrity": "sha512-kcZ6+W5QzcJ3P1Mt+83OUv/oHFqZHIx8DuxG6eZ5RGMERoLqp4BuGjhHLYGK+Kf5XVkQvqBSmAy/nGWN3qDgEA==", + "license": "MIT", "dependencies": { - "env-paths": "^2.2.1", "import-fresh": "^3.3.0", "js-yaml": "^4.1.0", - "parse-json": "^5.2.0" + "parse-json": "^5.2.0", + "path-type": "^4.0.0" }, "engines": { "node": ">=14" @@ -5868,29 +6223,12 @@ } } }, - "node_modules/cosmiconfig/node_modules/argparse": { - "version": "2.0.1", - "resolved": "https://npm.sinequa.com:4873/argparse/-/argparse-2.0.1.tgz", - "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", - "dev": true - }, - "node_modules/cosmiconfig/node_modules/js-yaml": { - "version": "4.1.0", - "resolved": "https://npm.sinequa.com:4873/js-yaml/-/js-yaml-4.1.0.tgz", - "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", - "dev": true, - "dependencies": { - "argparse": "^2.0.1" - }, - "bin": { - "js-yaml": "bin/js-yaml.js" - } - }, "node_modules/critters": { "version": "0.0.24", "resolved": "https://npm.sinequa.com/critters/-/critters-0.0.24.tgz", "integrity": "sha512-Oyqew0FGM0wYUSNqR0L6AteO5MpMoUU0rhKRieXeiKs+PmRTxiJMyaunYB2KF6fQ3dzChXKCpbFOEJx3OQ1v/Q==", "dev": true, + "license": "Apache-2.0", "dependencies": { "chalk": "^4.1.0", "css-select": "^5.1.0", @@ -5901,157 +6239,71 @@ "postcss-media-query-parser": "^0.2.3" } }, - "node_modules/critters/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://npm.sinequa.com/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, + "node_modules/cross-spawn": { + "version": "7.0.6", + "resolved": "https://npm.sinequa.com/cross-spawn/-/cross-spawn-7.0.6.tgz", + "integrity": "sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==", + "license": "MIT", "dependencies": { - "color-convert": "^2.0.1" + "path-key": "^3.1.0", + "shebang-command": "^2.0.0", + "which": "^2.0.1" }, "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" + "node": ">= 8" } }, - "node_modules/critters/node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://npm.sinequa.com/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "node_modules/css-loader": { + "version": "7.1.2", + "resolved": "https://npm.sinequa.com/css-loader/-/css-loader-7.1.2.tgz", + "integrity": "sha512-6WvYYn7l/XEGN8Xu2vWFt9nVzrCn39vKyTEFf/ExEyoksJjjSZV/0/35XPlMbpnr6VGhZIUg5yJrL8tGfes/FA==", "dev": true, + "license": "MIT", "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" + "icss-utils": "^5.1.0", + "postcss": "^8.4.33", + "postcss-modules-extract-imports": "^3.1.0", + "postcss-modules-local-by-default": "^4.0.5", + "postcss-modules-scope": "^3.2.0", + "postcss-modules-values": "^4.0.0", + "postcss-value-parser": "^4.2.0", + "semver": "^7.5.4" }, "engines": { - "node": ">=10" + "node": ">= 18.12.0" }, "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "@rspack/core": "0.x || 1.x", + "webpack": "^5.27.0" + }, + "peerDependenciesMeta": { + "@rspack/core": { + "optional": true + }, + "webpack": { + "optional": true + } } }, - "node_modules/critters/node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://npm.sinequa.com/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "node_modules/css-select": { + "version": "5.1.0", + "resolved": "https://npm.sinequa.com/css-select/-/css-select-5.1.0.tgz", + "integrity": "sha512-nwoRF1rvRRnnCqqY7updORDsuqKzqYJ28+oSMaJMMgOauh3fvwHqMS7EZpIPqK8GL+g9mKxF1vP/ZjSeNjEVHg==", "dev": true, + "license": "BSD-2-Clause", "dependencies": { - "color-name": "~1.1.4" + "boolbase": "^1.0.0", + "css-what": "^6.1.0", + "domhandler": "^5.0.2", + "domutils": "^3.0.1", + "nth-check": "^2.0.1" }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/critters/node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://npm.sinequa.com/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - }, - "node_modules/critters/node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://npm.sinequa.com/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/critters/node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://npm.sinequa.com/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/cross-spawn": { - "version": "7.0.6", - "resolved": "https://npm.sinequa.com/cross-spawn/-/cross-spawn-7.0.6.tgz", - "integrity": "sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==", - "dependencies": { - "path-key": "^3.1.0", - "shebang-command": "^2.0.0", - "which": "^2.0.1" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/cross-spawn/node_modules/isexe": { - "version": "2.0.0", - "resolved": "https://npm.sinequa.com:4873/isexe/-/isexe-2.0.0.tgz", - "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=" - }, - "node_modules/cross-spawn/node_modules/which": { - "version": "2.0.2", - "resolved": "https://npm.sinequa.com:4873/which/-/which-2.0.2.tgz", - "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", - "dependencies": { - "isexe": "^2.0.0" - }, - "bin": { - "node-which": "bin/node-which" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/css-loader": { - "version": "7.1.2", - "resolved": "https://npm.sinequa.com/css-loader/-/css-loader-7.1.2.tgz", - "integrity": "sha512-6WvYYn7l/XEGN8Xu2vWFt9nVzrCn39vKyTEFf/ExEyoksJjjSZV/0/35XPlMbpnr6VGhZIUg5yJrL8tGfes/FA==", - "dev": true, - "dependencies": { - "icss-utils": "^5.1.0", - "postcss": "^8.4.33", - "postcss-modules-extract-imports": "^3.1.0", - "postcss-modules-local-by-default": "^4.0.5", - "postcss-modules-scope": "^3.2.0", - "postcss-modules-values": "^4.0.0", - "postcss-value-parser": "^4.2.0", - "semver": "^7.5.4" - }, - "engines": { - "node": ">= 18.12.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" - }, - "peerDependencies": { - "@rspack/core": "0.x || 1.x", - "webpack": "^5.27.0" - }, - "peerDependenciesMeta": { - "@rspack/core": { - "optional": true - }, - "webpack": { - "optional": true - } - } - }, - "node_modules/css-select": { - "version": "5.1.0", - "resolved": "https://npm.sinequa.com/css-select/-/css-select-5.1.0.tgz", - "integrity": "sha512-nwoRF1rvRRnnCqqY7updORDsuqKzqYJ28+oSMaJMMgOauh3fvwHqMS7EZpIPqK8GL+g9mKxF1vP/ZjSeNjEVHg==", - "dev": true, - "dependencies": { - "boolbase": "^1.0.0", - "css-what": "^6.1.0", - "domhandler": "^5.0.2", - "domutils": "^3.0.1", - "nth-check": "^2.0.1" - }, - "funding": { - "url": "https://github.com/sponsors/fb55" + "funding": { + "url": "https://github.com/sponsors/fb55" } }, "node_modules/css-what": { @@ -6059,6 +6311,7 @@ "resolved": "https://npm.sinequa.com/css-what/-/css-what-6.1.0.tgz", "integrity": "sha512-HTUrgRJ7r4dsZKU6GjmpfRK1O76h97Z8MfS1G0FozR+oF2kG6Vfe8JE6zwrkbxigziPHinCJ+gCPjA9EaBDtRw==", "dev": true, + "license": "BSD-2-Clause", "engines": { "node": ">= 6" }, @@ -6068,9 +6321,10 @@ }, "node_modules/cssesc": { "version": "3.0.0", - "resolved": "https://npm.sinequa.com:4873/cssesc/-/cssesc-3.0.0.tgz", + "resolved": "https://npm.sinequa.com/cssesc/-/cssesc-3.0.0.tgz", "integrity": "sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==", "dev": true, + "license": "MIT", "bin": { "cssesc": "bin/cssesc" }, @@ -6079,10 +6333,11 @@ } }, "node_modules/debug": { - "version": "4.3.7", - "resolved": "https://npm.sinequa.com/debug/-/debug-4.3.7.tgz", - "integrity": "sha512-Er2nc/H7RrMXZBFCEim6TCmMk02Z8vLC2Rbi1KEBggpo0fS6l0S1nnapwmIi3yW/+GOJap1Krg4w0Hg80oCqgQ==", + "version": "4.4.0", + "resolved": "https://npm.sinequa.com/debug/-/debug-4.4.0.tgz", + "integrity": "sha512-6WTZ/IxCY/T6BALoZHaE4ctp9xm+Z5kY/pzYaCHRFeyVhojxlrm+46y68HA6hr0TcwEssoxNiDEUJQjfPZ/RYA==", "dev": true, + "license": "MIT", "dependencies": { "ms": "^2.1.3" }, @@ -6097,9 +6352,10 @@ }, "node_modules/default-browser": { "version": "5.2.1", - "resolved": "https://npm.sinequa.com:4873/default-browser/-/default-browser-5.2.1.tgz", + "resolved": "https://npm.sinequa.com/default-browser/-/default-browser-5.2.1.tgz", "integrity": "sha512-WY/3TUME0x3KPYdRRxEJJvXRHV4PyPoUsxtZa78lwItwRQRHhd2U9xOscaT/YTf8uCXIAjeJOFBVEh/7FtD8Xg==", "dev": true, + "license": "MIT", "dependencies": { "bundle-name": "^4.1.0", "default-browser-id": "^5.0.0" @@ -6113,9 +6369,10 @@ }, "node_modules/default-browser-id": { "version": "5.0.0", - "resolved": "https://npm.sinequa.com:4873/default-browser-id/-/default-browser-id-5.0.0.tgz", + "resolved": "https://npm.sinequa.com/default-browser-id/-/default-browser-id-5.0.0.tgz", "integrity": "sha512-A6p/pu/6fyBcA1TRz/GqWYPViplrftcW2gZC9q79ngNCKAeR/X3gcEdXQHl4KNXV+3wgIJ1CPkJQ3IHM6lcsyA==", "dev": true, + "license": "MIT", "engines": { "node": ">=18" }, @@ -6125,9 +6382,10 @@ }, "node_modules/default-gateway": { "version": "6.0.3", - "resolved": "https://npm.sinequa.com:4873/default-gateway/-/default-gateway-6.0.3.tgz", + "resolved": "https://npm.sinequa.com/default-gateway/-/default-gateway-6.0.3.tgz", "integrity": "sha512-fwSOJsbbNzZ/CUFpqFBqYfYNLj1NbMPm8MMCIzHjC83iSJRBEGmDUxU+WP661BaBQImeC2yHwXtz+P/O9o+XEg==", "dev": true, + "license": "BSD-2-Clause", "dependencies": { "execa": "^5.0.0" }, @@ -6137,8 +6395,9 @@ }, "node_modules/defaults": { "version": "1.0.4", - "resolved": "https://npm.sinequa.com:4873/defaults/-/defaults-1.0.4.tgz", + "resolved": "https://npm.sinequa.com/defaults/-/defaults-1.0.4.tgz", "integrity": "sha512-eFuaLoy/Rxalv2kr+lqMlUnrDWV+3j4pljOIJgLIhI058IQfWJ7vXhyEIHu+HtC738klGALYxOKDO0bQP3tg8A==", + "license": "MIT", "dependencies": { "clone": "^1.0.2" }, @@ -6146,28 +6405,12 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/define-data-property": { - "version": "1.1.4", - "resolved": "https://npm.sinequa.com/define-data-property/-/define-data-property-1.1.4.tgz", - "integrity": "sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==", - "dev": 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/define-lazy-prop": { "version": "3.0.0", "resolved": "https://npm.sinequa.com/define-lazy-prop/-/define-lazy-prop-3.0.0.tgz", "integrity": "sha512-N+MeXYoqr3pOgn8xfyRPREN7gHakLYjhsHhWGT3fWAiL4IkAt0iDw14QiiEm2bE30c5XX5q0FtAA3CK5f9/BUg==", "dev": true, + "license": "MIT", "engines": { "node": ">=12" }, @@ -6180,23 +6423,17 @@ "resolved": "https://npm.sinequa.com/depd/-/depd-2.0.0.tgz", "integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==", "dev": true, + "license": "MIT", "engines": { "node": ">= 0.8" } }, - "node_modules/dequal": { - "version": "2.0.3", - "resolved": "https://npm.sinequa.com/dequal/-/dequal-2.0.3.tgz", - "integrity": "sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA==", - "engines": { - "node": ">=6" - } - }, "node_modules/destroy": { "version": "1.2.0", "resolved": "https://npm.sinequa.com/destroy/-/destroy-1.2.0.tgz", "integrity": "sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==", "dev": true, + "license": "MIT", "engines": { "node": ">= 0.8", "npm": "1.2.8000 || >= 1.4.16" @@ -6207,33 +6444,38 @@ "resolved": "https://npm.sinequa.com/detect-libc/-/detect-libc-2.0.3.tgz", "integrity": "sha512-bwy0MGW55bG41VqxxypOsdSdGqLwXPI/focwgTYCFMbdUiBAxLg9CFzG08sz2aqzknwiX7Hkl0bQENjg8iLByw==", "dev": true, + "license": "Apache-2.0", "engines": { "node": ">=8" } }, "node_modules/detect-node": { "version": "2.1.0", - "resolved": "https://npm.sinequa.com:4873/detect-node/-/detect-node-2.1.0.tgz", + "resolved": "https://npm.sinequa.com/detect-node/-/detect-node-2.1.0.tgz", "integrity": "sha512-T0NIuQpnTvFDATNuHN5roPwSBG83rFsuO+MXXH9/3N1eFbn4wcPjttvjMLEPWJ0RGUYgQE7cGgS3tNxbqCGM7g==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/didyoumean": { "version": "1.2.2", - "resolved": "https://npm.sinequa.com:4873/didyoumean/-/didyoumean-1.2.2.tgz", + "resolved": "https://npm.sinequa.com/didyoumean/-/didyoumean-1.2.2.tgz", "integrity": "sha512-gxtyfqMg7GKyhQmb056K7M3xszy/myH8w+B4RT+QXBQsvAOdc3XymqDDPHx1BgPgsdAA5SIifona89YtRATDzw==", - "dev": true + "dev": true, + "license": "Apache-2.0" }, "node_modules/dlv": { "version": "1.1.3", - "resolved": "https://npm.sinequa.com:4873/dlv/-/dlv-1.1.3.tgz", + "resolved": "https://npm.sinequa.com/dlv/-/dlv-1.1.3.tgz", "integrity": "sha512-+HlytyjlPKnIG8XuRG8WvmBP8xs8P71y+SKKS6ZXWoEgLuePxtDoUEiH7WkdePWrQ5JBpE6aoVqfZfJUQkjXwA==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/dns-packet": { "version": "5.6.1", - "resolved": "https://npm.sinequa.com:4873/dns-packet/-/dns-packet-5.6.1.tgz", + "resolved": "https://npm.sinequa.com/dns-packet/-/dns-packet-5.6.1.tgz", "integrity": "sha512-l4gcSouhcgIKRvyy99RNVOgxXiicE+2jZoNmaNmZ6JXiGajBOJAesk1OBlJuM5k2c+eudGdLxDqXuPCKIj6kpw==", "dev": true, + "license": "MIT", "dependencies": { "@leichtgewicht/ip-codec": "^2.0.1" }, @@ -6246,6 +6488,7 @@ "resolved": "https://npm.sinequa.com/dom-serializer/-/dom-serializer-2.0.0.tgz", "integrity": "sha512-wIkAryiqt/nV5EQKqQpo3SToSOV9J0DnbJqwK7Wv/Trc92zIAYZ4FlMu+JPFW1DfGFt81ZTCGgDEabffXeLyJg==", "dev": true, + "license": "MIT", "dependencies": { "domelementtype": "^2.3.0", "domhandler": "^5.0.2", @@ -6265,13 +6508,15 @@ "type": "github", "url": "https://github.com/sponsors/fb55" } - ] + ], + "license": "BSD-2-Clause" }, "node_modules/domhandler": { "version": "5.0.3", "resolved": "https://npm.sinequa.com/domhandler/-/domhandler-5.0.3.tgz", "integrity": "sha512-cgwlv/1iFQiFnU96XXgROh8xTeetsnJiDsTc7TYCLFd9+/WNkIqPTxiM/8pSd8VIrhXGTf1Ny1q1hquVqDJB5w==", "dev": true, + "license": "BSD-2-Clause", "dependencies": { "domelementtype": "^2.3.0" }, @@ -6283,10 +6528,11 @@ } }, "node_modules/domutils": { - "version": "3.1.0", - "resolved": "https://npm.sinequa.com/domutils/-/domutils-3.1.0.tgz", - "integrity": "sha512-H78uMmQtI2AhgDJjWeQmHwJJ2bLPD3GMmO7Zja/ZZh84wkm+4ut+IUnUdRa8uCGX88DiVx1j6FRe1XfxEgjEZA==", + "version": "3.2.2", + "resolved": "https://npm.sinequa.com/domutils/-/domutils-3.2.2.tgz", + "integrity": "sha512-6kZKyUajlDuqlHKVX1w7gyslj9MPIXzIFiz/rGu35uC1wMi+kMhQwGhl4lt9unC9Vb9INnY9Z3/ZA3+FhASLaw==", "dev": true, + "license": "BSD-2-Clause", "dependencies": { "dom-serializer": "^2.0.0", "domelementtype": "^2.3.0", @@ -6296,33 +6542,53 @@ "url": "https://github.com/fb55/domutils?sponsor=1" } }, + "node_modules/dunder-proto": { + "version": "1.0.1", + "resolved": "https://npm.sinequa.com/dunder-proto/-/dunder-proto-1.0.1.tgz", + "integrity": "sha512-KIN/nDJBQRcXw0MLVhZE9iQHmG68qAVIBg9CqmUYjmQIhgij9U5MFvrqkUL5FbtyyzZuOeOt0zdeRe4UY7ct+A==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind-apply-helpers": "^1.0.1", + "es-errors": "^1.3.0", + "gopd": "^1.2.0" + }, + "engines": { + "node": ">= 0.4" + } + }, "node_modules/eastasianwidth": { "version": "0.2.0", - "resolved": "https://npm.sinequa.com:4873/eastasianwidth/-/eastasianwidth-0.2.0.tgz", - "integrity": "sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==" + "resolved": "https://npm.sinequa.com/eastasianwidth/-/eastasianwidth-0.2.0.tgz", + "integrity": "sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==", + "license": "MIT" }, "node_modules/ee-first": { "version": "1.1.1", - "resolved": "https://npm.sinequa.com:4873/ee-first/-/ee-first-1.1.1.tgz", + "resolved": "https://npm.sinequa.com/ee-first/-/ee-first-1.1.1.tgz", "integrity": "sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0=", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/electron-to-chromium": { - "version": "1.5.28", - "resolved": "https://npm.sinequa.com/electron-to-chromium/-/electron-to-chromium-1.5.28.tgz", - "integrity": "sha512-VufdJl+rzaKZoYVUijN13QcXVF5dWPZANeFTLNy+OSpHdDL5ynXTF35+60RSBbaQYB1ae723lQXHCrf4pyLsMw==", - "dev": true + "version": "1.5.86", + "resolved": "https://npm.sinequa.com/electron-to-chromium/-/electron-to-chromium-1.5.86.tgz", + "integrity": "sha512-/D7GAAaCRBQFBBcop6SfAAGH37djtpWkOuYhyAajw0l5vsfeSsUQYxaFPwr1c/mC/flARCDdKFo5gpFqNI+18w==", + "dev": true, + "license": "ISC" }, "node_modules/emoji-regex": { - "version": "8.0.0", - "resolved": "https://npm.sinequa.com:4873/emoji-regex/-/emoji-regex-8.0.0.tgz", - "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==" + "version": "9.2.2", + "resolved": "https://npm.sinequa.com/emoji-regex/-/emoji-regex-9.2.2.tgz", + "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==", + "license": "MIT" }, "node_modules/emojis-list": { "version": "3.0.0", - "resolved": "https://npm.sinequa.com:4873/emojis-list/-/emojis-list-3.0.0.tgz", + "resolved": "https://npm.sinequa.com/emojis-list/-/emojis-list-3.0.0.tgz", "integrity": "sha512-/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q==", "dev": true, + "license": "MIT", "engines": { "node": ">= 4" } @@ -6332,15 +6598,17 @@ "resolved": "https://npm.sinequa.com/encodeurl/-/encodeurl-2.0.0.tgz", "integrity": "sha512-Q0n9HRi4m6JuGIV1eFlmvJB7ZEVxu93IrMyiMsGC0lrMJMWzRgx6WGquyfQgZVb31vhGgXnfmPNNXmxnOkRBrg==", "dev": true, + "license": "MIT", "engines": { "node": ">= 0.8" } }, "node_modules/encoding": { "version": "0.1.13", - "resolved": "https://npm.sinequa.com:4873/encoding/-/encoding-0.1.13.tgz", + "resolved": "https://npm.sinequa.com/encoding/-/encoding-0.1.13.tgz", "integrity": "sha512-ETBauow1T35Y/WZMkio9jiM0Z5xjHHmJ4XmjZOq1l/dXz3lr2sRn87nJy20RupqSh1F2m3HHPSp8ShIPQJrJ3A==", "dev": true, + "license": "MIT", "optional": true, "dependencies": { "iconv-lite": "^0.6.2" @@ -6348,9 +6616,10 @@ }, "node_modules/encoding/node_modules/iconv-lite": { "version": "0.6.3", - "resolved": "https://npm.sinequa.com:4873/iconv-lite/-/iconv-lite-0.6.3.tgz", + "resolved": "https://npm.sinequa.com/iconv-lite/-/iconv-lite-0.6.3.tgz", "integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==", "dev": true, + "license": "MIT", "optional": true, "dependencies": { "safer-buffer": ">= 2.1.2 < 3.0.0" @@ -6360,10 +6629,11 @@ } }, "node_modules/enhanced-resolve": { - "version": "5.17.1", - "resolved": "https://npm.sinequa.com/enhanced-resolve/-/enhanced-resolve-5.17.1.tgz", - "integrity": "sha512-LMHl3dXhTcfv8gM4kEzIUeTQ+7fpdA0l2tUf34BddXPkz2A5xJ5L/Pchd5BL6rdccM9QGvu0sWZzK1Z1t4wwyg==", + "version": "5.18.0", + "resolved": "https://npm.sinequa.com/enhanced-resolve/-/enhanced-resolve-5.18.0.tgz", + "integrity": "sha512-0/r0MySGYG8YqlayBZ6MuCfECmHFdJ5qyPh8s8wa5Hnm6SaFLSK1VYCbj+NKp090Nm1caZhD+QTnmxO7esYGyQ==", "dev": true, + "license": "MIT", "dependencies": { "graceful-fs": "^4.2.4", "tapable": "^2.2.0" @@ -6374,9 +6644,10 @@ }, "node_modules/entities": { "version": "4.5.0", - "resolved": "https://npm.sinequa.com:4873/entities/-/entities-4.5.0.tgz", + "resolved": "https://npm.sinequa.com/entities/-/entities-4.5.0.tgz", "integrity": "sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==", "devOptional": true, + "license": "BSD-2-Clause", "engines": { "node": ">=0.12" }, @@ -6386,9 +6657,10 @@ }, "node_modules/env-paths": { "version": "2.2.1", - "resolved": "https://npm.sinequa.com:4873/env-paths/-/env-paths-2.2.1.tgz", + "resolved": "https://npm.sinequa.com/env-paths/-/env-paths-2.2.1.tgz", "integrity": "sha512-+h1lkLKhZMTYjog1VEpJNG7NZJWcuc2DDk/qsqSTRRCOXiLjeQ1d1/udrUGhqMxUgAlwKNZ0cf2uqan5GLuS2A==", "dev": true, + "license": "MIT", "engines": { "node": ">=6" } @@ -6398,6 +6670,7 @@ "resolved": "https://npm.sinequa.com/environment/-/environment-1.1.0.tgz", "integrity": "sha512-xUtoPkMggbz0MPyPiIWr1Kp4aeWJjDZ6SMvURhimjdZgsRuDplF5/s9hcgGhyXMhs+6vpnuoiZ2kFiu3FMnS8Q==", "dev": true, + "license": "MIT", "engines": { "node": ">=18" }, @@ -6407,15 +6680,17 @@ }, "node_modules/err-code": { "version": "2.0.3", - "resolved": "https://npm.sinequa.com:4873/err-code/-/err-code-2.0.3.tgz", + "resolved": "https://npm.sinequa.com/err-code/-/err-code-2.0.3.tgz", "integrity": "sha512-2bmlRpNKBxT/CRmPOlyISQpNj+qSeYvcym/uT0Jx2bMOlKLtSy1ZmLuVxSEKKyor/N5yhvp/ZiG1oE3DEYMSFA==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/errno": { "version": "0.1.8", - "resolved": "https://npm.sinequa.com:4873/errno/-/errno-0.1.8.tgz", + "resolved": "https://npm.sinequa.com/errno/-/errno-0.1.8.tgz", "integrity": "sha512-dJ6oBr5SQ1VSd9qkk7ByRgb/1SH4JZjCHSW/mr63/QcXO9zLVxvJ6Oy13nio03rxpSnVDDjFor75SjVeZWPW/A==", "dev": true, + "license": "MIT", "optional": true, "dependencies": { "prr": "~1.0.1" @@ -6426,20 +6701,19 @@ }, "node_modules/error-ex": { "version": "1.3.2", - "resolved": "https://npm.sinequa.com:4873/error-ex/-/error-ex-1.3.2.tgz", + "resolved": "https://npm.sinequa.com/error-ex/-/error-ex-1.3.2.tgz", "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==", + "license": "MIT", "dependencies": { "is-arrayish": "^0.2.1" } }, "node_modules/es-define-property": { - "version": "1.0.0", - "resolved": "https://npm.sinequa.com/es-define-property/-/es-define-property-1.0.0.tgz", - "integrity": "sha512-jxayLKShrEqqzJ0eumQbVhTYQM27CfT1T35+gCgDFoL82JLsXqTJ76zv6A0YLOgEnLUMvLzsDsGIrl8NFpT2gQ==", + "version": "1.0.1", + "resolved": "https://npm.sinequa.com/es-define-property/-/es-define-property-1.0.1.tgz", + "integrity": "sha512-e3nRfgfUZ4rNGL232gUgX06QNyyez04KdjFrF+LTRoOXmrOgFKDg4BCdsjW8EnT69eqdYGmRpJwiPVYNrCaW3g==", "dev": true, - "dependencies": { - "get-intrinsic": "^1.2.4" - }, + "license": "MIT", "engines": { "node": ">= 0.4" } @@ -6449,15 +6723,30 @@ "resolved": "https://npm.sinequa.com/es-errors/-/es-errors-1.3.0.tgz", "integrity": "sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==", "dev": true, + "license": "MIT", "engines": { "node": ">= 0.4" } }, "node_modules/es-module-lexer": { - "version": "1.5.4", - "resolved": "https://npm.sinequa.com/es-module-lexer/-/es-module-lexer-1.5.4.tgz", - "integrity": "sha512-MVNK56NiMrOwitFB7cqDwq0CQutbw+0BvLshJSse0MUNU+y1FC3bUS/AQg7oUng+/wKrrki7JfmwtVHkVfPLlw==", - "dev": true + "version": "1.6.0", + "resolved": "https://npm.sinequa.com/es-module-lexer/-/es-module-lexer-1.6.0.tgz", + "integrity": "sha512-qqnD1yMU6tk/jnaMosogGySTZP8YtUgAffA9nMN+E/rjxcfRQ6IEk7IiozUjgxKoFHBGjTLnrHB/YC45r/59EQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/es-object-atoms": { + "version": "1.1.1", + "resolved": "https://npm.sinequa.com/es-object-atoms/-/es-object-atoms-1.1.1.tgz", + "integrity": "sha512-FGgH2h8zKNim9ljj7dankFPcICIK9Cp5bm+c2gQSYePhpaG5+esrLODihIorn+Pe6FGJzWhXQotPv73jTaldXA==", + "dev": true, + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0" + }, + "engines": { + "node": ">= 0.4" + } }, "node_modules/esbuild": { "version": "0.23.0", @@ -6465,6 +6754,7 @@ "integrity": "sha512-1lvV17H2bMYda/WaFb2jLPeHU3zml2k4/yagNMG8Q/YtfMjCwEUZa2eXXMgZTVSL5q1n4H7sQ0X6CdJDqqeCFA==", "dev": true, "hasInstallScript": true, + "license": "MIT", "bin": { "esbuild": "bin/esbuild" }, @@ -6503,6 +6793,7 @@ "resolved": "https://npm.sinequa.com/esbuild-wasm/-/esbuild-wasm-0.23.0.tgz", "integrity": "sha512-6jP8UmWy6R6TUUV8bMuC3ZyZ6lZKI56x0tkxyCIqWwRRJ/DgeQKneh/Oid5EoGoPFLrGNkz47ZEtWAYuiY/u9g==", "dev": true, + "license": "MIT", "bin": { "esbuild": "bin/esbuild" }, @@ -6511,32 +6802,27 @@ } }, "node_modules/escalade": { - "version": "3.1.2", - "resolved": "https://npm.sinequa.com:4873/escalade/-/escalade-3.1.2.tgz", - "integrity": "sha512-ErCHMCae19vR8vQGe50xIsVomy19rg6gFu3+r3jkEO46suLMWBksvVyoGgQV+jOfl84ZSOSlmv6Gxa89PmTGmA==", + "version": "3.2.0", + "resolved": "https://npm.sinequa.com/escalade/-/escalade-3.2.0.tgz", + "integrity": "sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==", + "license": "MIT", "engines": { "node": ">=6" } }, "node_modules/escape-html": { "version": "1.0.3", - "resolved": "https://npm.sinequa.com:4873/escape-html/-/escape-html-1.0.3.tgz", + "resolved": "https://npm.sinequa.com/escape-html/-/escape-html-1.0.3.tgz", "integrity": "sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg=", - "dev": true - }, - "node_modules/escape-string-regexp": { - "version": "1.0.5", - "resolved": "https://npm.sinequa.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", - "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=", - "engines": { - "node": ">=0.8.0" - } + "dev": true, + "license": "MIT" }, "node_modules/eslint-scope": { "version": "5.1.1", "resolved": "https://npm.sinequa.com/eslint-scope/-/eslint-scope-5.1.1.tgz", "integrity": "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==", "dev": true, + "license": "BSD-2-Clause", "dependencies": { "esrecurse": "^4.3.0", "estraverse": "^4.1.1" @@ -6550,6 +6836,7 @@ "resolved": "https://npm.sinequa.com/esrecurse/-/esrecurse-4.3.0.tgz", "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", "dev": true, + "license": "BSD-2-Clause", "dependencies": { "estraverse": "^5.2.0" }, @@ -6562,6 +6849,7 @@ "resolved": "https://npm.sinequa.com/estraverse/-/estraverse-5.3.0.tgz", "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", "dev": true, + "license": "BSD-2-Clause", "engines": { "node": ">=4.0" } @@ -6571,6 +6859,7 @@ "resolved": "https://npm.sinequa.com/estraverse/-/estraverse-4.3.0.tgz", "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==", "dev": true, + "license": "BSD-2-Clause", "engines": { "node": ">=4.0" } @@ -6580,6 +6869,7 @@ "resolved": "https://npm.sinequa.com/esutils/-/esutils-2.0.3.tgz", "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", "dev": true, + "license": "BSD-2-Clause", "engines": { "node": ">=0.10.0" } @@ -6589,46 +6879,52 @@ "resolved": "https://npm.sinequa.com/etag/-/etag-1.8.1.tgz", "integrity": "sha1-Qa4u62XvpiJorr/qg6x9eSmbCIc=", "dev": true, + "license": "MIT", "engines": { "node": ">= 0.6" } }, "node_modules/event-target-shim": { "version": "5.0.1", - "resolved": "https://npm.sinequa.com:4873/event-target-shim/-/event-target-shim-5.0.1.tgz", + "resolved": "https://npm.sinequa.com/event-target-shim/-/event-target-shim-5.0.1.tgz", "integrity": "sha512-i/2XbnSz/uxRCU6+NdVJgKWDTM427+MqYbkQzD321DuCQJUqOuJKIA0IM2+W2xtYHdKOmZ4dR6fExsd4SXL+WQ==", + "license": "MIT", "engines": { "node": ">=6" } }, "node_modules/eventemitter3": { "version": "4.0.7", - "resolved": "https://npm.sinequa.com:4873/eventemitter3/-/eventemitter3-4.0.7.tgz", + "resolved": "https://npm.sinequa.com/eventemitter3/-/eventemitter3-4.0.7.tgz", "integrity": "sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/events": { "version": "3.3.0", "resolved": "https://npm.sinequa.com/events/-/events-3.3.0.tgz", "integrity": "sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==", "dev": true, + "license": "MIT", "engines": { "node": ">=0.8.x" } }, "node_modules/eventsource": { "version": "2.0.2", - "resolved": "https://npm.sinequa.com:4873/eventsource/-/eventsource-2.0.2.tgz", + "resolved": "https://npm.sinequa.com/eventsource/-/eventsource-2.0.2.tgz", "integrity": "sha512-IzUmBGPR3+oUG9dUeXynyNmf91/3zUSJg1lCktzKw47OXuhco54U3r9B7O4XX+Rb1Itm9OZ2b0RkTs10bICOxA==", + "license": "MIT", "engines": { "node": ">=12.0.0" } }, "node_modules/execa": { "version": "5.1.1", - "resolved": "https://npm.sinequa.com:4873/execa/-/execa-5.1.1.tgz", + "resolved": "https://npm.sinequa.com/execa/-/execa-5.1.1.tgz", "integrity": "sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==", "dev": true, + "license": "MIT", "dependencies": { "cross-spawn": "^7.0.3", "get-stream": "^6.0.0", @@ -6647,23 +6943,42 @@ "url": "https://github.com/sindresorhus/execa?sponsor=1" } }, + "node_modules/execa/node_modules/onetime": { + "version": "5.1.2", + "resolved": "https://npm.sinequa.com/onetime/-/onetime-5.1.2.tgz", + "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==", + "dev": true, + "license": "MIT", + "dependencies": { + "mimic-fn": "^2.1.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/execa/node_modules/signal-exit": { "version": "3.0.7", - "resolved": "https://npm.sinequa.com:4873/signal-exit/-/signal-exit-3.0.7.tgz", + "resolved": "https://npm.sinequa.com/signal-exit/-/signal-exit-3.0.7.tgz", "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==", - "dev": true + "dev": true, + "license": "ISC" }, "node_modules/exponential-backoff": { "version": "3.1.1", - "resolved": "https://npm.sinequa.com:4873/exponential-backoff/-/exponential-backoff-3.1.1.tgz", + "resolved": "https://npm.sinequa.com/exponential-backoff/-/exponential-backoff-3.1.1.tgz", "integrity": "sha512-dX7e/LHVJ6W3DE1MHWi9S1EYzDESENfLrYohG2G++ovZrYOkm4Knwa0mc1cn84xJOR4KEU0WSchhLbd0UklbHw==", - "dev": true + "dev": true, + "license": "Apache-2.0" }, "node_modules/express": { - "version": "4.21.1", - "resolved": "https://npm.sinequa.com/express/-/express-4.21.1.tgz", - "integrity": "sha512-YSFlK1Ee0/GC8QaO91tHcDxJiE/X4FbpAyQWkxAvG6AXCuR65YzK8ua6D9hvi/TzUfZMpc+BwuM1IPw8fmQBiQ==", + "version": "4.21.2", + "resolved": "https://npm.sinequa.com/express/-/express-4.21.2.tgz", + "integrity": "sha512-28HqgMZAmih1Czt9ny7qr6ek2qddF4FclbMzwhCREB6OFfH+rXAnuNCwo1/wFvrtbgsQDb4kSbX9de9lFbrXnA==", "dev": true, + "license": "MIT", "dependencies": { "accepts": "~1.3.8", "array-flatten": "1.1.1", @@ -6684,7 +6999,7 @@ "methods": "~1.1.2", "on-finished": "2.4.1", "parseurl": "~1.3.3", - "path-to-regexp": "0.1.10", + "path-to-regexp": "0.1.12", "proxy-addr": "~2.0.7", "qs": "6.13.0", "range-parser": "~1.2.1", @@ -6699,28 +7014,35 @@ }, "engines": { "node": ">= 0.10.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/express" } }, "node_modules/express/node_modules/debug": { "version": "2.6.9", - "resolved": "https://npm.sinequa.com:4873/debug/-/debug-2.6.9.tgz", + "resolved": "https://npm.sinequa.com/debug/-/debug-2.6.9.tgz", "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", "dev": true, + "license": "MIT", "dependencies": { "ms": "2.0.0" } }, "node_modules/express/node_modules/ms": { "version": "2.0.0", - "resolved": "https://npm.sinequa.com:4873/ms/-/ms-2.0.0.tgz", + "resolved": "https://npm.sinequa.com/ms/-/ms-2.0.0.tgz", "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/external-editor": { "version": "3.1.0", "resolved": "https://npm.sinequa.com/external-editor/-/external-editor-3.1.0.tgz", "integrity": "sha512-hMQ4CX1p1izmuLYyZqLMO/qGNw10wSv9QDCPfzXfyFrOaCSSoRfqE1Kf1s5an66J5JZC62NewG+mK49jOCtQew==", "dev": true, + "license": "MIT", "dependencies": { "chardet": "^0.7.0", "iconv-lite": "^0.4.24", @@ -6732,15 +7054,16 @@ }, "node_modules/fast-deep-equal": { "version": "3.1.3", - "resolved": "https://npm.sinequa.com:4873/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", + "resolved": "https://npm.sinequa.com/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", - "dev": true + "license": "MIT" }, "node_modules/fast-glob": { "version": "3.3.2", - "resolved": "https://npm.sinequa.com:4873/fast-glob/-/fast-glob-3.3.2.tgz", + "resolved": "https://npm.sinequa.com/fast-glob/-/fast-glob-3.3.2.tgz", "integrity": "sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow==", "dev": true, + "license": "MIT", "dependencies": { "@nodelib/fs.stat": "^2.0.2", "@nodelib/fs.walk": "^1.2.3", @@ -6752,32 +7075,58 @@ "node": ">=8.6.0" } }, + "node_modules/fast-glob/node_modules/glob-parent": { + "version": "5.1.2", + "resolved": "https://npm.sinequa.com/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "dev": true, + "license": "ISC", + "dependencies": { + "is-glob": "^4.0.1" + }, + "engines": { + "node": ">= 6" + } + }, "node_modules/fast-json-stable-stringify": { "version": "2.1.0", "resolved": "https://npm.sinequa.com/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/fast-uri": { - "version": "3.0.1", - "resolved": "https://npm.sinequa.com/fast-uri/-/fast-uri-3.0.1.tgz", - "integrity": "sha512-MWipKbbYiYI0UC7cl8m/i/IWTqfC8YXsqjzybjddLsFjStroQzsHXkc73JutMvBiXmOvapk+axIl79ig5t55Bw==", - "dev": true + "version": "3.0.6", + "resolved": "https://npm.sinequa.com/fast-uri/-/fast-uri-3.0.6.tgz", + "integrity": "sha512-Atfo14OibSv5wAp4VWNsFYE1AchQRTv9cBGWET4pZWHzYshFSS9NQI6I57rdKn9croWVMbYFbLhJ+yJvmZIIHw==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/fastify" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/fastify" + } + ], + "license": "BSD-3-Clause" }, "node_modules/fastq": { - "version": "1.17.1", - "resolved": "https://npm.sinequa.com:4873/fastq/-/fastq-1.17.1.tgz", - "integrity": "sha512-sRVD3lWVIXWg6By68ZN7vho9a1pQcN/WBFaAAsDDFzlJjvoGx0P8z7V1t72grFJfJhu3YPZBuu25f7Kaw2jN1w==", + "version": "1.18.0", + "resolved": "https://npm.sinequa.com/fastq/-/fastq-1.18.0.tgz", + "integrity": "sha512-QKHXPW0hD8g4UET03SdOdunzSouc9N4AuHdsX8XNcTsuz+yYFILVNIX4l9yHABMhiEI9Db0JTTIpu0wB+Y1QQw==", "dev": true, + "license": "ISC", "dependencies": { "reusify": "^1.0.4" } }, "node_modules/faye-websocket": { "version": "0.11.4", - "resolved": "https://npm.sinequa.com:4873/faye-websocket/-/faye-websocket-0.11.4.tgz", + "resolved": "https://npm.sinequa.com/faye-websocket/-/faye-websocket-0.11.4.tgz", "integrity": "sha512-CzbClwlXAuiRQAlUyfqPgvPoNKTckTPGfwZV4ZdAhVcP2lh9KUxJg2b5GkE7XbjKQ3YJnQ9z6D9ntLAlB+tP8g==", "dev": true, + "license": "Apache-2.0", "dependencies": { "websocket-driver": ">=0.5.1" }, @@ -6787,8 +7136,9 @@ }, "node_modules/fetch-cookie": { "version": "2.2.0", - "resolved": "https://npm.sinequa.com:4873/fetch-cookie/-/fetch-cookie-2.2.0.tgz", + "resolved": "https://npm.sinequa.com/fetch-cookie/-/fetch-cookie-2.2.0.tgz", "integrity": "sha512-h9AgfjURuCgA2+2ISl8GbavpUdR+WGAM2McW/ovn4tVccegp8ZqCKWSBR8uRdM8dDNlx5WdKRWxBYUwteLDCNQ==", + "license": "Unlicense", "dependencies": { "set-cookie-parser": "^2.4.8", "tough-cookie": "^4.0.0" @@ -6796,9 +7146,10 @@ }, "node_modules/fill-range": { "version": "7.1.1", - "resolved": "https://npm.sinequa.com:4873/fill-range/-/fill-range-7.1.1.tgz", + "resolved": "https://npm.sinequa.com/fill-range/-/fill-range-7.1.1.tgz", "integrity": "sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==", "dev": true, + "license": "MIT", "dependencies": { "to-regex-range": "^5.0.1" }, @@ -6811,6 +7162,7 @@ "resolved": "https://npm.sinequa.com/finalhandler/-/finalhandler-1.3.1.tgz", "integrity": "sha512-6BN9trH7bp3qvnrRyzsBz+g3lZxTNZTbVO2EV1CS0WIcDbawYVdYvGflME/9QP0h0pYlCDBCTjYa9nZzMDpyxQ==", "dev": true, + "license": "MIT", "dependencies": { "debug": "2.6.9", "encodeurl": "~2.0.0", @@ -6829,6 +7181,7 @@ "resolved": "https://npm.sinequa.com/debug/-/debug-2.6.9.tgz", "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", "dev": true, + "license": "MIT", "dependencies": { "ms": "2.0.0" } @@ -6837,13 +7190,15 @@ "version": "2.0.0", "resolved": "https://npm.sinequa.com/ms/-/ms-2.0.0.tgz", "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/find-cache-dir": { "version": "4.0.0", - "resolved": "https://npm.sinequa.com:4873/find-cache-dir/-/find-cache-dir-4.0.0.tgz", + "resolved": "https://npm.sinequa.com/find-cache-dir/-/find-cache-dir-4.0.0.tgz", "integrity": "sha512-9ZonPT4ZAK4a+1pUPVPZJapbi7O5qbbJPdYw/NOQWZZbVLdDTYM3A4R9z/DpAM08IDaFGsvPgiGZ82WEwUDWjg==", "dev": true, + "license": "MIT", "dependencies": { "common-path-prefix": "^3.0.0", "pkg-dir": "^7.0.0" @@ -6855,19 +7210,37 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/find-up": { + "version": "6.3.0", + "resolved": "https://npm.sinequa.com/find-up/-/find-up-6.3.0.tgz", + "integrity": "sha512-v2ZsoEuVHYy8ZIlYqwPe/39Cy+cFDzp4dXPaxNvkEuouymu+2Jbz0PxpKarJHYJTmv2HWT3O382qY8l4jMWthw==", + "dev": true, + "license": "MIT", + "dependencies": { + "locate-path": "^7.1.0", + "path-exists": "^5.0.0" + }, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/flat": { "version": "5.0.2", "resolved": "https://npm.sinequa.com/flat/-/flat-5.0.2.tgz", "integrity": "sha512-b6suED+5/3rTpUBdG1gupIl8MPFCAMA0QXwmljLhvCUKcUvdE4gWky9zpuGCcXHOsz4J9wPGNWq6OKpmIzz3hQ==", "dev": true, + "license": "BSD-3-Clause", "bin": { "flat": "cli.js" } }, "node_modules/follow-redirects": { - "version": "1.15.6", - "resolved": "https://npm.sinequa.com:4873/follow-redirects/-/follow-redirects-1.15.6.tgz", - "integrity": "sha512-wWN62YITEaOpSK584EZXJafH1AGpO8RVgElfkuXbTOrPX4fIfOyEpW/CsiNd8JdYrAoOvafRTOEnvsO++qCqFA==", + "version": "1.15.9", + "resolved": "https://npm.sinequa.com/follow-redirects/-/follow-redirects-1.15.9.tgz", + "integrity": "sha512-gew4GsXizNgdoRyqmyfMHyAmXsZDk6mHkSxZFCzW9gwlbtOW44CDtYavM+y+72qD/Vq2l550kMF52DT8fOLJqQ==", "dev": true, "funding": [ { @@ -6875,6 +7248,7 @@ "url": "https://github.com/sponsors/RubenVerborgh" } ], + "license": "MIT", "engines": { "node": ">=4.0" }, @@ -6885,9 +7259,10 @@ } }, "node_modules/foreground-child": { - "version": "3.1.1", - "resolved": "https://npm.sinequa.com:4873/foreground-child/-/foreground-child-3.1.1.tgz", - "integrity": "sha512-TMKDUnIte6bfb5nWv7V/caI169OHgvwjb7V4WkeUvbQQdjr5rWKqHFiKWb/fcOwB+CzBT+qbWjvj+DVwRskpIg==", + "version": "3.3.0", + "resolved": "https://npm.sinequa.com/foreground-child/-/foreground-child-3.3.0.tgz", + "integrity": "sha512-Ld2g8rrAyMYFXBhEqMz8ZAHBi4J4uS1i/CxGMDnjyFWddMXLVcDp051DZfu+t7+ab7Wv6SMqpWmyFIj5UbfFvg==", + "license": "ISC", "dependencies": { "cross-spawn": "^7.0.0", "signal-exit": "^4.0.1" @@ -6901,18 +7276,20 @@ }, "node_modules/forwarded": { "version": "0.2.0", - "resolved": "https://npm.sinequa.com:4873/forwarded/-/forwarded-0.2.0.tgz", + "resolved": "https://npm.sinequa.com/forwarded/-/forwarded-0.2.0.tgz", "integrity": "sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==", "dev": true, + "license": "MIT", "engines": { "node": ">= 0.6" } }, "node_modules/fraction.js": { "version": "4.3.7", - "resolved": "https://npm.sinequa.com:4873/fraction.js/-/fraction.js-4.3.7.tgz", + "resolved": "https://npm.sinequa.com/fraction.js/-/fraction.js-4.3.7.tgz", "integrity": "sha512-ZsDfxO51wGAXREY55a7la9LScWpwv9RxIrYABrlvOFBlH/ShPnrtsXeuUIfXKKOVicNxQ+o8JTbJvjS4M89yew==", "dev": true, + "license": "MIT", "engines": { "node": "*" }, @@ -6926,14 +7303,16 @@ "resolved": "https://npm.sinequa.com/fresh/-/fresh-0.5.2.tgz", "integrity": "sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac=", "dev": true, + "license": "MIT", "engines": { "node": ">= 0.6" } }, "node_modules/fs-extra": { - "version": "11.2.0", - "resolved": "https://npm.sinequa.com:4873/fs-extra/-/fs-extra-11.2.0.tgz", - "integrity": "sha512-PmDi3uwK5nFuXh7XDTlVnS17xJS7vW36is2+w3xcv8SVxiB4NyATf4ctkVY5bkSjX0Y4nbvZCq1/EjtEyr9ktw==", + "version": "11.3.0", + "resolved": "https://npm.sinequa.com/fs-extra/-/fs-extra-11.3.0.tgz", + "integrity": "sha512-Z4XaCL6dUDHfP/jT25jJKMmtxvuwbkrD1vNSMFlo9lNLY2c5FHYSQgHPRZUjAB26TpDEoW9HCOgplrdbaPV/ew==", + "license": "MIT", "dependencies": { "graceful-fs": "^4.2.0", "jsonfile": "^6.0.1", @@ -6943,19 +7322,12 @@ "node": ">=14.14" } }, - "node_modules/fs-extra/node_modules/universalify": { - "version": "2.0.1", - "resolved": "https://npm.sinequa.com:4873/universalify/-/universalify-2.0.1.tgz", - "integrity": "sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==", - "engines": { - "node": ">= 10.0.0" - } - }, "node_modules/fs-minipass": { "version": "3.0.3", - "resolved": "https://npm.sinequa.com:4873/fs-minipass/-/fs-minipass-3.0.3.tgz", + "resolved": "https://npm.sinequa.com/fs-minipass/-/fs-minipass-3.0.3.tgz", "integrity": "sha512-XUBA9XClHbnJWSfBzjkm6RvPsyg3sryZt06BEQoXcF7EK/xpGaQYJgQKDJSUH5SGZ76Y7pFx1QBnXz09rU5Fbw==", "dev": true, + "license": "ISC", "dependencies": { "minipass": "^7.0.3" }, @@ -6965,15 +7337,17 @@ }, "node_modules/fs.realpath": { "version": "1.0.0", - "resolved": "https://npm.sinequa.com:4873/fs.realpath/-/fs.realpath-1.0.0.tgz", - "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=" + "resolved": "https://npm.sinequa.com/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=", + "license": "ISC" }, "node_modules/fsevents": { "version": "2.3.3", - "resolved": "https://npm.sinequa.com:4873/fsevents/-/fsevents-2.3.3.tgz", + "resolved": "https://npm.sinequa.com/fsevents/-/fsevents-2.3.3.tgz", "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", "dev": true, "hasInstallScript": true, + "license": "MIT", "optional": true, "os": [ "darwin" @@ -6984,9 +7358,10 @@ }, "node_modules/function-bind": { "version": "1.1.2", - "resolved": "https://npm.sinequa.com:4873/function-bind/-/function-bind-1.1.2.tgz", + "resolved": "https://npm.sinequa.com/function-bind/-/function-bind-1.1.2.tgz", "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==", "dev": true, + "license": "MIT", "funding": { "url": "https://github.com/sponsors/ljharb" } @@ -6996,23 +7371,26 @@ "resolved": "https://npm.sinequa.com/gensync/-/gensync-1.0.0-beta.2.tgz", "integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==", "dev": true, + "license": "MIT", "engines": { "node": ">=6.9.0" } }, "node_modules/get-caller-file": { "version": "2.0.5", - "resolved": "https://npm.sinequa.com:4873/get-caller-file/-/get-caller-file-2.0.5.tgz", + "resolved": "https://npm.sinequa.com/get-caller-file/-/get-caller-file-2.0.5.tgz", "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", + "license": "ISC", "engines": { "node": "6.* || 8.* || >= 10.*" } }, "node_modules/get-east-asian-width": { - "version": "1.2.0", - "resolved": "https://npm.sinequa.com/get-east-asian-width/-/get-east-asian-width-1.2.0.tgz", - "integrity": "sha512-2nk+7SIVb14QrgXFHcm84tD4bKQz0RxPuMT8Ag5KPOq7J5fEmAg0UbXdTOSHqNuHSU28k55qnceesxXRZGzKWA==", + "version": "1.3.0", + "resolved": "https://npm.sinequa.com/get-east-asian-width/-/get-east-asian-width-1.3.0.tgz", + "integrity": "sha512-vpeMIQKxczTD/0s2CdEWHcb0eeJe6TFjxb+J5xgX7hScxqrGuyjmv4c1D4A/gelKfyox0gJJwIHF+fLjeaM8kQ==", "dev": true, + "license": "MIT", "engines": { "node": ">=18" }, @@ -7021,16 +7399,22 @@ } }, "node_modules/get-intrinsic": { - "version": "1.2.4", - "resolved": "https://npm.sinequa.com/get-intrinsic/-/get-intrinsic-1.2.4.tgz", - "integrity": "sha512-5uYhsJH8VJBTv7oslg4BznJYhDoRI6waYCxMmCdnTrcCrHA/fCFKoTFz2JKKE0HdDFUF7/oQuhzumXJK7paBRQ==", + "version": "1.2.7", + "resolved": "https://npm.sinequa.com/get-intrinsic/-/get-intrinsic-1.2.7.tgz", + "integrity": "sha512-VW6Pxhsrk0KAOqs3WEd0klDiF/+V7gQOpAvY1jVU/LHmaD/kQO4523aiJuikX/QAKYiW6x8Jh+RJej1almdtCA==", "dev": true, + "license": "MIT", "dependencies": { + "call-bind-apply-helpers": "^1.0.1", + "es-define-property": "^1.0.1", "es-errors": "^1.3.0", + "es-object-atoms": "^1.0.0", "function-bind": "^1.1.2", - "has-proto": "^1.0.1", - "has-symbols": "^1.0.3", - "hasown": "^2.0.0" + "get-proto": "^1.0.0", + "gopd": "^1.2.0", + "has-symbols": "^1.1.0", + "hasown": "^2.0.2", + "math-intrinsics": "^1.1.0" }, "engines": { "node": ">= 0.4" @@ -7039,11 +7423,26 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/get-proto": { + "version": "1.0.1", + "resolved": "https://npm.sinequa.com/get-proto/-/get-proto-1.0.1.tgz", + "integrity": "sha512-sTSfBjoXBp89JvIKIefqw7U2CCebsc74kiY6awiGogKtoSGbgjYE/G/+l9sF3MWFPNc9IcoOC4ODfKHfxFmp0g==", + "dev": true, + "license": "MIT", + "dependencies": { + "dunder-proto": "^1.0.1", + "es-object-atoms": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + } + }, "node_modules/get-stream": { "version": "6.0.1", - "resolved": "https://npm.sinequa.com:4873/get-stream/-/get-stream-6.0.1.tgz", + "resolved": "https://npm.sinequa.com/get-stream/-/get-stream-6.0.1.tgz", "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==", "dev": true, + "license": "MIT", "engines": { "node": ">=10" }, @@ -7052,49 +7451,51 @@ } }, "node_modules/glob": { - "version": "10.4.1", - "resolved": "https://npm.sinequa.com:4873/glob/-/glob-10.4.1.tgz", - "integrity": "sha512-2jelhlq3E4ho74ZyVLN03oKdAZVUa6UDZzFLVH1H7dnoax+y9qyaq8zBkfDIggjniU19z0wU18y16jMB2eyVIw==", + "version": "10.4.5", + "resolved": "https://npm.sinequa.com/glob/-/glob-10.4.5.tgz", + "integrity": "sha512-7Bv8RF0k6xjo7d4A/PxYLbUCfb6c+Vpd2/mB2yRDlew7Jb5hEXiCD9ibfO7wpk8i4sevK6DFny9h7EYbM3/sHg==", + "license": "ISC", "dependencies": { "foreground-child": "^3.1.0", "jackspeak": "^3.1.2", "minimatch": "^9.0.4", "minipass": "^7.1.2", + "package-json-from-dist": "^1.0.0", "path-scurry": "^1.11.1" }, "bin": { "glob": "dist/esm/bin.mjs" }, - "engines": { - "node": ">=16 || 14 >=14.18" - }, "funding": { "url": "https://github.com/sponsors/isaacs" } }, "node_modules/glob-parent": { - "version": "5.1.2", - "resolved": "https://npm.sinequa.com:4873/glob-parent/-/glob-parent-5.1.2.tgz", - "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "version": "6.0.2", + "resolved": "https://npm.sinequa.com/glob-parent/-/glob-parent-6.0.2.tgz", + "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==", "dev": true, + "license": "ISC", "dependencies": { - "is-glob": "^4.0.1" + "is-glob": "^4.0.3" }, "engines": { - "node": ">= 6" + "node": ">=10.13.0" } }, "node_modules/glob-to-regexp": { "version": "0.4.1", "resolved": "https://npm.sinequa.com/glob-to-regexp/-/glob-to-regexp-0.4.1.tgz", "integrity": "sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw==", - "dev": true + "dev": true, + "license": "BSD-2-Clause" }, "node_modules/globals": { "version": "11.12.0", "resolved": "https://npm.sinequa.com/globals/-/globals-11.12.0.tgz", "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==", "dev": true, + "license": "MIT", "engines": { "node": ">=4" } @@ -7104,6 +7505,7 @@ "resolved": "https://npm.sinequa.com/globby/-/globby-14.0.2.tgz", "integrity": "sha512-s3Fq41ZVh7vbbe2PN3nrW7yC7U7MFVc5c98/iTl9c2GawNMKx/J648KQRW6WKkuU8GIbbh2IXfIRQjOZnXcTnw==", "dev": true, + "license": "MIT", "dependencies": { "@sindresorhus/merge-streams": "^2.1.0", "fast-glob": "^3.3.2", @@ -7119,11 +7521,22 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/globby/node_modules/ignore": { + "version": "5.3.2", + "resolved": "https://npm.sinequa.com/ignore/-/ignore-5.3.2.tgz", + "integrity": "sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 4" + } + }, "node_modules/globby/node_modules/path-type": { "version": "5.0.0", "resolved": "https://npm.sinequa.com/path-type/-/path-type-5.0.0.tgz", "integrity": "sha512-5HviZNaZcfqP95rwpv+1HDgUamezbqdSYTyzjTvwtJSnIH+3vnbmWsItli8OFEndS984VT55M3jduxZbX351gg==", "dev": true, + "license": "MIT", "engines": { "node": ">=12" }, @@ -7132,12 +7545,13 @@ } }, "node_modules/gopd": { - "version": "1.0.1", - "resolved": "https://npm.sinequa.com/gopd/-/gopd-1.0.1.tgz", - "integrity": "sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==", + "version": "1.2.0", + "resolved": "https://npm.sinequa.com/gopd/-/gopd-1.2.0.tgz", + "integrity": "sha512-ZUKRh6/kUFoAiTAtTYPZJ3hw9wNxx+BIBOijnlG9PnrJsCcSjs1wyyD6vJpaYtgnzDrKYRSqf3OO6Rfa93xsRg==", "dev": true, - "dependencies": { - "get-intrinsic": "^1.1.3" + "license": "MIT", + "engines": { + "node": ">= 0.4" }, "funding": { "url": "https://github.com/sponsors/ljharb" @@ -7145,52 +7559,32 @@ }, "node_modules/graceful-fs": { "version": "4.2.11", - "resolved": "https://npm.sinequa.com:4873/graceful-fs/-/graceful-fs-4.2.11.tgz", - "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==" + "resolved": "https://npm.sinequa.com/graceful-fs/-/graceful-fs-4.2.11.tgz", + "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==", + "license": "ISC" }, "node_modules/handle-thing": { "version": "2.0.1", - "resolved": "https://npm.sinequa.com:4873/handle-thing/-/handle-thing-2.0.1.tgz", + "resolved": "https://npm.sinequa.com/handle-thing/-/handle-thing-2.0.1.tgz", "integrity": "sha512-9Qn4yBxelxoh2Ow62nP+Ka/kMnOXRi8BXnRaUwezLNhqelnN49xKz4F/dPP8OYLxLxq6JDtZb2i9XznUQbNPTg==", - "dev": true - }, - "node_modules/has-flag": { - "version": "3.0.0", - "resolved": "https://npm.sinequa.com/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", - "engines": { - "node": ">=4" - } - }, - "node_modules/has-property-descriptors": { - "version": "1.0.2", - "resolved": "https://npm.sinequa.com/has-property-descriptors/-/has-property-descriptors-1.0.2.tgz", - "integrity": "sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg==", "dev": true, - "dependencies": { - "es-define-property": "^1.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } + "license": "MIT" }, - "node_modules/has-proto": { - "version": "1.0.3", - "resolved": "https://npm.sinequa.com/has-proto/-/has-proto-1.0.3.tgz", - "integrity": "sha512-SJ1amZAJUiZS+PhsVLf5tGydlaVB8EdFpaSO4gmiUKUOxk8qzn5AIy4ZeJUmh22znIdk/uMAUT2pl3FxzVUH+Q==", - "dev": true, + "node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://npm.sinequa.com/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "license": "MIT", "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "node": ">=8" } }, "node_modules/has-symbols": { - "version": "1.0.3", - "resolved": "https://npm.sinequa.com/has-symbols/-/has-symbols-1.0.3.tgz", - "integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==", + "version": "1.1.0", + "resolved": "https://npm.sinequa.com/has-symbols/-/has-symbols-1.1.0.tgz", + "integrity": "sha512-1cDNdwJ2Jaohmb3sg4OmKaMBwuC48sYni5HUw2DvsC8LjGTLK9h+eb1X6RyuOHe4hT0ULCW68iomhjUoKUqlPQ==", "dev": true, + "license": "MIT", "engines": { "node": ">= 0.4" }, @@ -7200,9 +7594,10 @@ }, "node_modules/hasown": { "version": "2.0.2", - "resolved": "https://npm.sinequa.com:4873/hasown/-/hasown-2.0.2.tgz", + "resolved": "https://npm.sinequa.com/hasown/-/hasown-2.0.2.tgz", "integrity": "sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==", "dev": true, + "license": "MIT", "dependencies": { "function-bind": "^1.1.2" }, @@ -7212,8 +7607,9 @@ }, "node_modules/highlight-words": { "version": "1.2.2", - "resolved": "https://npm.sinequa.com:4873/highlight-words/-/highlight-words-1.2.2.tgz", + "resolved": "https://npm.sinequa.com/highlight-words/-/highlight-words-1.2.2.tgz", "integrity": "sha512-Mf4xfPXYm8Ay1wTibCrHpNWeR2nUMynMVFkXCi4mbl+TEgmNOe+I4hV7W3OCZcSvzGL6kupaqpfHOemliMTGxQ==", + "license": "MIT", "engines": { "node": ">= 16", "npm": ">= 8" @@ -7221,9 +7617,10 @@ }, "node_modules/hosted-git-info": { "version": "7.0.2", - "resolved": "https://npm.sinequa.com:4873/hosted-git-info/-/hosted-git-info-7.0.2.tgz", + "resolved": "https://npm.sinequa.com/hosted-git-info/-/hosted-git-info-7.0.2.tgz", "integrity": "sha512-puUZAUKT5m8Zzvs72XWy3HtvVbTWljRE66cP60bxJzAqf2DgICo7lYTY2IHUmLnNpjYvw5bvmoHvPc0QO2a62w==", "dev": true, + "license": "ISC", "dependencies": { "lru-cache": "^10.0.1" }, @@ -7232,19 +7629,18 @@ } }, "node_modules/hosted-git-info/node_modules/lru-cache": { - "version": "10.2.2", - "resolved": "https://npm.sinequa.com:4873/lru-cache/-/lru-cache-10.2.2.tgz", - "integrity": "sha512-9hp3Vp2/hFQUiIwKo8XCeFVnrg8Pk3TYNPIR7tJADKi5YfcF7vEaK7avFHTlSy3kOKYaJQaalfEo6YuXdceBOQ==", + "version": "10.4.3", + "resolved": "https://npm.sinequa.com/lru-cache/-/lru-cache-10.4.3.tgz", + "integrity": "sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==", "dev": true, - "engines": { - "node": "14 || >=16.14" - } + "license": "ISC" }, "node_modules/hpack.js": { "version": "2.1.6", - "resolved": "https://npm.sinequa.com:4873/hpack.js/-/hpack.js-2.1.6.tgz", + "resolved": "https://npm.sinequa.com/hpack.js/-/hpack.js-2.1.6.tgz", "integrity": "sha1-h3dMCUnlE/QuhFdbPEVoH63ioLI=", "dev": true, + "license": "MIT", "dependencies": { "inherits": "^2.0.1", "obuf": "^1.0.0", @@ -7254,9 +7650,10 @@ }, "node_modules/hpack.js/node_modules/readable-stream": { "version": "2.3.8", - "resolved": "https://npm.sinequa.com:4873/readable-stream/-/readable-stream-2.3.8.tgz", + "resolved": "https://npm.sinequa.com/readable-stream/-/readable-stream-2.3.8.tgz", "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", "dev": true, + "license": "MIT", "dependencies": { "core-util-is": "~1.0.0", "inherits": "~2.0.3", @@ -7269,22 +7666,24 @@ }, "node_modules/hpack.js/node_modules/safe-buffer": { "version": "5.1.2", - "resolved": "https://npm.sinequa.com:4873/safe-buffer/-/safe-buffer-5.1.2.tgz", + "resolved": "https://npm.sinequa.com/safe-buffer/-/safe-buffer-5.1.2.tgz", "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/hpack.js/node_modules/string_decoder": { "version": "1.1.1", - "resolved": "https://npm.sinequa.com:4873/string_decoder/-/string_decoder-1.1.1.tgz", + "resolved": "https://npm.sinequa.com/string_decoder/-/string_decoder-1.1.1.tgz", "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", "dev": true, + "license": "MIT", "dependencies": { "safe-buffer": "~5.1.0" } }, "node_modules/html-entities": { "version": "2.5.2", - "resolved": "https://npm.sinequa.com:4873/html-entities/-/html-entities-2.5.2.tgz", + "resolved": "https://npm.sinequa.com/html-entities/-/html-entities-2.5.2.tgz", "integrity": "sha512-K//PSRMQk4FZ78Kyau+mZurHn3FH0Vwr+H36eE0rPbeYkRRi9YxceYPhuN60UwWorxyKHhqoAJl2OFKa4BVtaA==", "dev": true, "funding": [ @@ -7296,7 +7695,8 @@ "type": "patreon", "url": "https://patreon.com/mdevils" } - ] + ], + "license": "MIT" }, "node_modules/htmlparser2": { "version": "8.0.2", @@ -7310,6 +7710,7 @@ "url": "https://github.com/sponsors/fb55" } ], + "license": "MIT", "dependencies": { "domelementtype": "^2.3.0", "domhandler": "^5.0.3", @@ -7319,21 +7720,24 @@ }, "node_modules/http-cache-semantics": { "version": "4.1.1", - "resolved": "https://npm.sinequa.com:4873/http-cache-semantics/-/http-cache-semantics-4.1.1.tgz", + "resolved": "https://npm.sinequa.com/http-cache-semantics/-/http-cache-semantics-4.1.1.tgz", "integrity": "sha512-er295DKPVsV82j5kw1Gjt+ADA/XYHsajl82cGNQG2eyoPkvgUhX+nDIyelzhIWbbsXP39EHcI6l5tYs2FYqYXQ==", - "dev": true + "dev": true, + "license": "BSD-2-Clause" }, "node_modules/http-deceiver": { "version": "1.2.7", - "resolved": "https://npm.sinequa.com:4873/http-deceiver/-/http-deceiver-1.2.7.tgz", + "resolved": "https://npm.sinequa.com/http-deceiver/-/http-deceiver-1.2.7.tgz", "integrity": "sha1-+nFolEq5pRnTN8sL7HKE3D5yPYc=", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/http-errors": { "version": "2.0.0", "resolved": "https://npm.sinequa.com/http-errors/-/http-errors-2.0.0.tgz", "integrity": "sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==", "dev": true, + "license": "MIT", "dependencies": { "depd": "2.0.0", "inherits": "2.0.4", @@ -7346,16 +7750,18 @@ } }, "node_modules/http-parser-js": { - "version": "0.5.8", - "resolved": "https://npm.sinequa.com:4873/http-parser-js/-/http-parser-js-0.5.8.tgz", - "integrity": "sha512-SGeBX54F94Wgu5RH3X5jsDtf4eHyRogWX1XGT3b4HuW3tQPM4AaBzoUji/4AAJNXCEOWZ5O0DgZmJw1947gD5Q==", - "dev": true + "version": "0.5.9", + "resolved": "https://npm.sinequa.com/http-parser-js/-/http-parser-js-0.5.9.tgz", + "integrity": "sha512-n1XsPy3rXVxlqxVioEWdC+0+M+SQw0DpJynwtOPo1X+ZlvdzTLtDBIJJlDQTnwZIFJrZSzSGmIOUdP8tu+SgLw==", + "dev": true, + "license": "MIT" }, "node_modules/http-proxy": { "version": "1.18.1", - "resolved": "https://npm.sinequa.com:4873/http-proxy/-/http-proxy-1.18.1.tgz", + "resolved": "https://npm.sinequa.com/http-proxy/-/http-proxy-1.18.1.tgz", "integrity": "sha512-7mz/721AbnJwIVbnaSv1Cz3Am0ZLT/UBwkC92VlxhXv/k/BBQfM2fXElQNC27BVGr0uwUpplYPQM9LnaBMR5NQ==", "dev": true, + "license": "MIT", "dependencies": { "eventemitter3": "^4.0.0", "follow-redirects": "^1.0.0", @@ -7367,9 +7773,10 @@ }, "node_modules/http-proxy-agent": { "version": "7.0.2", - "resolved": "https://npm.sinequa.com:4873/http-proxy-agent/-/http-proxy-agent-7.0.2.tgz", + "resolved": "https://npm.sinequa.com/http-proxy-agent/-/http-proxy-agent-7.0.2.tgz", "integrity": "sha512-T1gkAiYYDWYx3V5Bmyu7HcfcvL7mUrTWiM6yOfa3PIphViJ/gFPbvidQ+veqSOHci/PxBcDabeUNCzpOODJZig==", "dev": true, + "license": "MIT", "dependencies": { "agent-base": "^7.1.0", "debug": "^4.3.4" @@ -7383,6 +7790,7 @@ "resolved": "https://npm.sinequa.com/http-proxy-middleware/-/http-proxy-middleware-3.0.3.tgz", "integrity": "sha512-usY0HG5nyDUwtqpiZdETNbmKtw3QQ1jwYFZ9wi5iHzX2BcILwQKtYDJPo7XHTsu5Z0B2Hj3W9NNnbd+AjFWjqg==", "dev": true, + "license": "MIT", "dependencies": { "@types/http-proxy": "^1.17.15", "debug": "^4.3.6", @@ -7395,20 +7803,12 @@ "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/http-proxy-middleware/node_modules/is-plain-object": { - "version": "5.0.0", - "resolved": "https://npm.sinequa.com/is-plain-object/-/is-plain-object-5.0.0.tgz", - "integrity": "sha512-VRSzKkbMm5jMDoKLbltAkFQ5Qr7VDiTFGXxYFXXowVj387GeGNOCsOH6Msy00SGZ3Fp84b1Naa1psqgcCIEP5Q==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/https-proxy-agent": { "version": "7.0.5", "resolved": "https://npm.sinequa.com/https-proxy-agent/-/https-proxy-agent-7.0.5.tgz", "integrity": "sha512-1e4Wqeblerz+tMKPIq2EMGiiWW1dIjZOksyHWSUm1rmuvw/how9hBHZ38lAGj5ID4Ik6EdkOw7NmWPy6LAwalw==", "dev": true, + "license": "MIT", "dependencies": { "agent-base": "^7.0.2", "debug": "4" @@ -7419,27 +7819,30 @@ }, "node_modules/human-signals": { "version": "2.1.0", - "resolved": "https://npm.sinequa.com:4873/human-signals/-/human-signals-2.1.0.tgz", + "resolved": "https://npm.sinequa.com/human-signals/-/human-signals-2.1.0.tgz", "integrity": "sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==", "dev": true, + "license": "Apache-2.0", "engines": { "node": ">=10.17.0" } }, "node_modules/hyperdyperid": { "version": "1.2.0", - "resolved": "https://npm.sinequa.com:4873/hyperdyperid/-/hyperdyperid-1.2.0.tgz", + "resolved": "https://npm.sinequa.com/hyperdyperid/-/hyperdyperid-1.2.0.tgz", "integrity": "sha512-Y93lCzHYgGWdrJ66yIktxiaGULYc6oGiABxhcO5AufBeOyoIdZF7bIfLaOrbM0iGIOXQQgxxRrFEnb+Y6w1n4A==", "dev": true, + "license": "MIT", "engines": { "node": ">=10.18" } }, "node_modules/iconv-lite": { "version": "0.4.24", - "resolved": "https://npm.sinequa.com:4873/iconv-lite/-/iconv-lite-0.4.24.tgz", + "resolved": "https://npm.sinequa.com/iconv-lite/-/iconv-lite-0.4.24.tgz", "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", "dev": true, + "license": "MIT", "dependencies": { "safer-buffer": ">= 2.1.2 < 3" }, @@ -7452,6 +7855,7 @@ "resolved": "https://npm.sinequa.com/icss-utils/-/icss-utils-5.1.0.tgz", "integrity": "sha512-soFhflCVWLfRNOPU3iv5Z9VUdT44xFRbzjLsEzSr5AQmgqPMTHdU3PMT1Cf1ssx8fLNJDA1juftYl+PUcv3MqA==", "dev": true, + "license": "ISC", "engines": { "node": "^10 || ^12 || >= 14" }, @@ -7461,7 +7865,7 @@ }, "node_modules/ieee754": { "version": "1.2.1", - "resolved": "https://npm.sinequa.com:4873/ieee754/-/ieee754-1.2.1.tgz", + "resolved": "https://npm.sinequa.com/ieee754/-/ieee754-1.2.1.tgz", "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==", "funding": [ { @@ -7476,21 +7880,24 @@ "type": "consulting", "url": "https://feross.org/support" } - ] + ], + "license": "BSD-3-Clause" }, "node_modules/ignore": { - "version": "5.3.2", - "resolved": "https://npm.sinequa.com/ignore/-/ignore-5.3.2.tgz", - "integrity": "sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g==", + "version": "6.0.2", + "resolved": "https://npm.sinequa.com/ignore/-/ignore-6.0.2.tgz", + "integrity": "sha512-InwqeHHN2XpumIkMvpl/DCJVrAHgCsG5+cn1XlnLWGwtZBm8QJfSusItfrwx81CTp5agNZqpKU2J/ccC5nGT4A==", + "license": "MIT", "engines": { "node": ">= 4" } }, "node_modules/ignore-walk": { "version": "6.0.5", - "resolved": "https://npm.sinequa.com:4873/ignore-walk/-/ignore-walk-6.0.5.tgz", + "resolved": "https://npm.sinequa.com/ignore-walk/-/ignore-walk-6.0.5.tgz", "integrity": "sha512-VuuG0wCnjhnylG1ABXT3dAuIpTNDs/G8jlpmwXY03fXoXy/8ZK8/T+hMzt8L4WnrLCJgdybqgPagnF/f97cg3A==", "dev": true, + "license": "ISC", "dependencies": { "minimatch": "^9.0.0" }, @@ -7500,9 +7907,10 @@ }, "node_modules/image-size": { "version": "0.5.5", - "resolved": "https://npm.sinequa.com:4873/image-size/-/image-size-0.5.5.tgz", + "resolved": "https://npm.sinequa.com/image-size/-/image-size-0.5.5.tgz", "integrity": "sha1-Cd/Uq50g4p6xw+gLiZA3jfnjy5w=", "dev": true, + "license": "MIT", "optional": true, "bin": { "image-size": "bin/image-size.js" @@ -7515,12 +7923,14 @@ "version": "4.3.7", "resolved": "https://npm.sinequa.com/immutable/-/immutable-4.3.7.tgz", "integrity": "sha512-1hqclzwYwjRDFLjcFxOM5AYkkG0rpFPpr1RLPMEuGczoS7YA8gLhy8SWXYRAA/XwfEHpfo3cw5JGioS32fnMRw==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/import-fresh": { "version": "3.3.0", - "resolved": "https://npm.sinequa.com:4873/import-fresh/-/import-fresh-3.3.0.tgz", + "resolved": "https://npm.sinequa.com/import-fresh/-/import-fresh-3.3.0.tgz", "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==", + "license": "MIT", "dependencies": { "parent-module": "^1.0.0", "resolve-from": "^4.0.0" @@ -7532,36 +7942,31 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/import-fresh/node_modules/resolve-from": { - "version": "4.0.0", - "resolved": "https://npm.sinequa.com:4873/resolve-from/-/resolve-from-4.0.0.tgz", - "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", - "engines": { - "node": ">=4" - } - }, "node_modules/imurmurhash": { "version": "0.1.4", - "resolved": "https://npm.sinequa.com:4873/imurmurhash/-/imurmurhash-0.1.4.tgz", + "resolved": "https://npm.sinequa.com/imurmurhash/-/imurmurhash-0.1.4.tgz", "integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o=", "dev": true, + "license": "MIT", "engines": { "node": ">=0.8.19" } }, "node_modules/indent-string": { "version": "4.0.0", - "resolved": "https://npm.sinequa.com:4873/indent-string/-/indent-string-4.0.0.tgz", + "resolved": "https://npm.sinequa.com/indent-string/-/indent-string-4.0.0.tgz", "integrity": "sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==", "dev": true, + "license": "MIT", "engines": { "node": ">=8" } }, "node_modules/inflight": { "version": "1.0.6", - "resolved": "https://npm.sinequa.com:4873/inflight/-/inflight-1.0.6.tgz", + "resolved": "https://npm.sinequa.com/inflight/-/inflight-1.0.6.tgz", "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", + "license": "ISC", "dependencies": { "once": "^1.3.0", "wrappy": "1" @@ -7569,23 +7974,26 @@ }, "node_modules/inherits": { "version": "2.0.4", - "resolved": "https://npm.sinequa.com:4873/inherits/-/inherits-2.0.4.tgz", - "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" + "resolved": "https://npm.sinequa.com/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", + "license": "ISC" }, "node_modules/ini": { "version": "4.1.3", "resolved": "https://npm.sinequa.com/ini/-/ini-4.1.3.tgz", "integrity": "sha512-X7rqawQBvfdjS10YU1y1YVreA3SsLrW9dX2CewP2EbBJM4ypVNLDkO5y04gejPwKIY9lR+7r9gn3rFPt/kmWFg==", "dev": true, + "license": "ISC", "engines": { "node": "^14.17.0 || ^16.13.0 || >=18.0.0" } }, "node_modules/ip-address": { "version": "9.0.5", - "resolved": "https://npm.sinequa.com:4873/ip-address/-/ip-address-9.0.5.tgz", + "resolved": "https://npm.sinequa.com/ip-address/-/ip-address-9.0.5.tgz", "integrity": "sha512-zHtQzGojZXTwZTHQqra+ETKd4Sn3vgi7uBmlPoXVWZqYvuKmtI0l/VZTjqGmJY9x88GGOaZ9+G9ES8hC4T4X8g==", "dev": true, + "license": "MIT", "dependencies": { "jsbn": "1.1.0", "sprintf-js": "^1.1.3" @@ -7594,31 +8002,28 @@ "node": ">= 12" } }, - "node_modules/ip-address/node_modules/sprintf-js": { - "version": "1.1.3", - "resolved": "https://npm.sinequa.com:4873/sprintf-js/-/sprintf-js-1.1.3.tgz", - "integrity": "sha512-Oo+0REFV59/rz3gfJNKQiBlwfHaSESl1pcGyABQsnnIfWOFt6JNj5gCog2U6MLZ//IGYD+nA8nI+mTShREReaA==", - "dev": true - }, "node_modules/ipaddr.js": { "version": "2.2.0", - "resolved": "https://npm.sinequa.com:4873/ipaddr.js/-/ipaddr.js-2.2.0.tgz", + "resolved": "https://npm.sinequa.com/ipaddr.js/-/ipaddr.js-2.2.0.tgz", "integrity": "sha512-Ag3wB2o37wslZS19hZqorUnrnzSkpOVy+IiiDEiTqNubEYpYuHWIf6K4psgN2ZWKExS4xhVCrRVfb/wfW8fWJA==", "dev": true, + "license": "MIT", "engines": { "node": ">= 10" } }, "node_modules/is-arrayish": { "version": "0.2.1", - "resolved": "https://npm.sinequa.com:4873/is-arrayish/-/is-arrayish-0.2.1.tgz", - "integrity": "sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0=" + "resolved": "https://npm.sinequa.com/is-arrayish/-/is-arrayish-0.2.1.tgz", + "integrity": "sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0=", + "license": "MIT" }, "node_modules/is-binary-path": { "version": "2.1.0", - "resolved": "https://npm.sinequa.com:4873/is-binary-path/-/is-binary-path-2.1.0.tgz", + "resolved": "https://npm.sinequa.com/is-binary-path/-/is-binary-path-2.1.0.tgz", "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", "dev": true, + "license": "MIT", "dependencies": { "binary-extensions": "^2.0.0" }, @@ -7627,39 +8032,66 @@ } }, "node_modules/is-core-module": { - "version": "2.13.1", - "resolved": "https://npm.sinequa.com:4873/is-core-module/-/is-core-module-2.13.1.tgz", - "integrity": "sha512-hHrIjvZsftOsvKSn2TRYl63zvxsgE0K+0mYMoH6gD4omR5IWB2KynivBQczo3+wF1cCkjzvptnI9Q0sPU66ilw==", + "version": "2.16.1", + "resolved": "https://npm.sinequa.com/is-core-module/-/is-core-module-2.16.1.tgz", + "integrity": "sha512-UfoeMA6fIJ8wTYFEUjelnaGI67v6+N7qXJEvQuIGa99l4xsCruSYOVSQ0uPANn4dAzm8lkYPaKLrrijLq7x23w==", "dev": true, + "license": "MIT", "dependencies": { - "hasown": "^2.0.0" + "hasown": "^2.0.2" + }, + "engines": { + "node": ">= 0.4" }, "funding": { "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/is-docker": { + "version": "3.0.0", + "resolved": "https://npm.sinequa.com/is-docker/-/is-docker-3.0.0.tgz", + "integrity": "sha512-eljcgEDlEns/7AXFosB5K/2nCM4P7FQPkGc/DWLy5rmFEWvZayGrik1d9/QIY5nJ4f9YsVvBkA6kJpHn9rISdQ==", + "dev": true, + "license": "MIT", + "bin": { + "is-docker": "cli.js" + }, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/is-extglob": { "version": "2.1.1", - "resolved": "https://npm.sinequa.com:4873/is-extglob/-/is-extglob-2.1.1.tgz", + "resolved": "https://npm.sinequa.com/is-extglob/-/is-extglob-2.1.1.tgz", "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=", "dev": true, + "license": "MIT", "engines": { "node": ">=0.10.0" } }, "node_modules/is-fullwidth-code-point": { - "version": "3.0.0", - "resolved": "https://npm.sinequa.com:4873/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", - "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "version": "4.0.0", + "resolved": "https://npm.sinequa.com/is-fullwidth-code-point/-/is-fullwidth-code-point-4.0.0.tgz", + "integrity": "sha512-O4L094N2/dZ7xqVdrXhh9r1KODPJpFms8B5sGdJLPy664AgvXsreZUyCQQNItZRDlYug4xStLjNp/sz3HvBowQ==", + "dev": true, + "license": "MIT", "engines": { - "node": ">=8" + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/is-glob": { "version": "4.0.3", - "resolved": "https://npm.sinequa.com:4873/is-glob/-/is-glob-4.0.3.tgz", + "resolved": "https://npm.sinequa.com/is-glob/-/is-glob-4.0.3.tgz", "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", "dev": true, + "license": "MIT", "dependencies": { "is-extglob": "^2.1.1" }, @@ -7669,9 +8101,10 @@ }, "node_modules/is-inside-container": { "version": "1.0.0", - "resolved": "https://npm.sinequa.com:4873/is-inside-container/-/is-inside-container-1.0.0.tgz", + "resolved": "https://npm.sinequa.com/is-inside-container/-/is-inside-container-1.0.0.tgz", "integrity": "sha512-KIYLCCJghfHZxqjYBE7rEy0OBuTd5xCHS7tHVgvCLkx7StIoaxwNW3hCALgEUjFfeRk+MG/Qxmp/vtETEF3tRA==", "dev": true, + "license": "MIT", "dependencies": { "is-docker": "^3.0.0" }, @@ -7685,40 +8118,28 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/is-inside-container/node_modules/is-docker": { - "version": "3.0.0", - "resolved": "https://npm.sinequa.com:4873/is-docker/-/is-docker-3.0.0.tgz", - "integrity": "sha512-eljcgEDlEns/7AXFosB5K/2nCM4P7FQPkGc/DWLy5rmFEWvZayGrik1d9/QIY5nJ4f9YsVvBkA6kJpHn9rISdQ==", - "dev": true, - "bin": { - "is-docker": "cli.js" - }, - "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/is-interactive": { "version": "1.0.0", - "resolved": "https://npm.sinequa.com:4873/is-interactive/-/is-interactive-1.0.0.tgz", + "resolved": "https://npm.sinequa.com/is-interactive/-/is-interactive-1.0.0.tgz", "integrity": "sha512-2HvIEKRoqS62guEC+qBjpvRubdX910WCMuJTZ+I9yvqKU2/12eSL549HMwtabb4oupdj2sMP50k+XJfB/8JE6w==", + "license": "MIT", "engines": { "node": ">=8" } }, "node_modules/is-lambda": { "version": "1.0.1", - "resolved": "https://npm.sinequa.com:4873/is-lambda/-/is-lambda-1.0.1.tgz", + "resolved": "https://npm.sinequa.com/is-lambda/-/is-lambda-1.0.1.tgz", "integrity": "sha1-PZh3iZ5qU+/AFgUEzeFfgubwYdU=", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/is-network-error": { "version": "1.1.0", - "resolved": "https://npm.sinequa.com:4873/is-network-error/-/is-network-error-1.1.0.tgz", + "resolved": "https://npm.sinequa.com/is-network-error/-/is-network-error-1.1.0.tgz", "integrity": "sha512-tUdRRAnhT+OtCZR/LxZelH/C7QtjtFrTu5tXCA8pl55eTUElUHT+GPYV8MBMBvea/j+NxQqVt3LbWMRir7Gx9g==", "dev": true, + "license": "MIT", "engines": { "node": ">=16" }, @@ -7728,18 +8149,20 @@ }, "node_modules/is-number": { "version": "7.0.0", - "resolved": "https://npm.sinequa.com:4873/is-number/-/is-number-7.0.0.tgz", + "resolved": "https://npm.sinequa.com/is-number/-/is-number-7.0.0.tgz", "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", "dev": true, + "license": "MIT", "engines": { "node": ">=0.12.0" } }, "node_modules/is-plain-obj": { "version": "3.0.0", - "resolved": "https://npm.sinequa.com:4873/is-plain-obj/-/is-plain-obj-3.0.0.tgz", + "resolved": "https://npm.sinequa.com/is-plain-obj/-/is-plain-obj-3.0.0.tgz", "integrity": "sha512-gwsOE28k+23GP1B6vFl1oVh/WOzmawBrKwo5Ev6wMKzPkaXaCDIQKzLnvsA42DRlbVTWorkgTKIviAKCWkfUwA==", "dev": true, + "license": "MIT", "engines": { "node": ">=10" }, @@ -7748,22 +8171,21 @@ } }, "node_modules/is-plain-object": { - "version": "2.0.4", - "resolved": "https://npm.sinequa.com/is-plain-object/-/is-plain-object-2.0.4.tgz", - "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", + "version": "5.0.0", + "resolved": "https://npm.sinequa.com/is-plain-object/-/is-plain-object-5.0.0.tgz", + "integrity": "sha512-VRSzKkbMm5jMDoKLbltAkFQ5Qr7VDiTFGXxYFXXowVj387GeGNOCsOH6Msy00SGZ3Fp84b1Naa1psqgcCIEP5Q==", "dev": true, - "dependencies": { - "isobject": "^3.0.1" - }, + "license": "MIT", "engines": { "node": ">=0.10.0" } }, "node_modules/is-stream": { "version": "2.0.1", - "resolved": "https://npm.sinequa.com:4873/is-stream/-/is-stream-2.0.1.tgz", + "resolved": "https://npm.sinequa.com/is-stream/-/is-stream-2.0.1.tgz", "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==", "dev": true, + "license": "MIT", "engines": { "node": ">=8" }, @@ -7773,8 +8195,9 @@ }, "node_modules/is-unicode-supported": { "version": "0.1.0", - "resolved": "https://npm.sinequa.com:4873/is-unicode-supported/-/is-unicode-supported-0.1.0.tgz", + "resolved": "https://npm.sinequa.com/is-unicode-supported/-/is-unicode-supported-0.1.0.tgz", "integrity": "sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw==", + "license": "MIT", "engines": { "node": ">=10" }, @@ -7784,15 +8207,17 @@ }, "node_modules/is-what": { "version": "3.14.1", - "resolved": "https://npm.sinequa.com:4873/is-what/-/is-what-3.14.1.tgz", + "resolved": "https://npm.sinequa.com/is-what/-/is-what-3.14.1.tgz", "integrity": "sha512-sNxgpk9793nzSs7bA6JQJGeIuRBQhAaNGG77kzYQgMkrID+lS6SlK07K5LaptscDlSaIgH+GPFzf+d75FVxozA==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/is-wsl": { "version": "3.1.0", "resolved": "https://npm.sinequa.com/is-wsl/-/is-wsl-3.1.0.tgz", "integrity": "sha512-UcVfVfaK4Sc4m7X3dUSoHoozQGBEFeDC+zVo06t98xe8CzHSZZBekNXH+tu0NalHolcJ/QAGqS46Hef7QXBIMw==", "dev": true, + "license": "MIT", "dependencies": { "is-inside-container": "^1.0.0" }, @@ -7805,24 +8230,23 @@ }, "node_modules/isarray": { "version": "1.0.0", - "resolved": "https://npm.sinequa.com:4873/isarray/-/isarray-1.0.0.tgz", + "resolved": "https://npm.sinequa.com/isarray/-/isarray-1.0.0.tgz", "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/isexe": { - "version": "3.1.1", - "resolved": "https://npm.sinequa.com:4873/isexe/-/isexe-3.1.1.tgz", - "integrity": "sha512-LpB/54B+/2J5hqQ7imZHfdU31OlgQqx7ZicVlkm9kzg9/w8GKLEcFfJl/t7DCEDueOyBAD6zCCwTO6Fzs0NoEQ==", - "dev": true, - "engines": { - "node": ">=16" - } + "version": "2.0.0", + "resolved": "https://npm.sinequa.com/isexe/-/isexe-2.0.0.tgz", + "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=", + "license": "ISC" }, "node_modules/isobject": { "version": "3.0.1", "resolved": "https://npm.sinequa.com/isobject/-/isobject-3.0.1.tgz", "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", "dev": true, + "license": "MIT", "engines": { "node": ">=0.10.0" } @@ -7832,6 +8256,7 @@ "resolved": "https://npm.sinequa.com/istanbul-lib-coverage/-/istanbul-lib-coverage-3.2.2.tgz", "integrity": "sha512-O8dpsF+r0WV/8MNRKfnmrtCWhuKjxrq2w+jpzBL5UZKTi2LeVWnWOmWRxFlesJONmc+wLAGvKQZEOanko0LFTg==", "dev": true, + "license": "BSD-3-Clause", "engines": { "node": ">=8" } @@ -7841,6 +8266,7 @@ "resolved": "https://npm.sinequa.com/istanbul-lib-instrument/-/istanbul-lib-instrument-6.0.3.tgz", "integrity": "sha512-Vtgk7L/R2JHyyGW07spoFlB8/lpjiOLTjMdms6AFMraYt3BaJauod/NGrfnVG/y4Ix1JEuMRPDPEj2ua+zz1/Q==", "dev": true, + "license": "BSD-3-Clause", "dependencies": { "@babel/core": "^7.23.9", "@babel/parser": "^7.23.9", @@ -7853,15 +8279,13 @@ } }, "node_modules/jackspeak": { - "version": "3.3.0", - "resolved": "https://npm.sinequa.com:4873/jackspeak/-/jackspeak-3.3.0.tgz", - "integrity": "sha512-glPiBfKguqA7v8JsXO3iLjJWZ9FV1vNpoI0I9hI9Mnk5yetO9uPLSpiCEmiVijAssv2f54HpvtzvAHfhPieiDQ==", + "version": "3.4.3", + "resolved": "https://npm.sinequa.com/jackspeak/-/jackspeak-3.4.3.tgz", + "integrity": "sha512-OGlZQpz2yfahA/Rd1Y8Cd9SIEsqvXkLVoSw/cgwhnhFMDbsQFeZYoJJ7bIZBS9BcamUW96asq/npPWugM+RQBw==", + "license": "BlueOak-1.0.0", "dependencies": { "@isaacs/cliui": "^8.0.2" }, - "engines": { - "node": ">=14" - }, "funding": { "url": "https://github.com/sponsors/isaacs" }, @@ -7874,6 +8298,7 @@ "resolved": "https://npm.sinequa.com/jest-worker/-/jest-worker-27.5.1.tgz", "integrity": "sha512-7vuh85V5cdDofPyxn58nrPjBktZo0u9x1g8WtjQol+jZDaE+fhN+cIvTj11GndBnMnyfrUOG1sZQxCdjKh+DKg==", "dev": true, + "license": "MIT", "dependencies": { "@types/node": "*", "merge-stream": "^2.0.0", @@ -7883,20 +8308,12 @@ "node": ">= 10.13.0" } }, - "node_modules/jest-worker/node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://npm.sinequa.com/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true, - "engines": { - "node": ">=8" - } - }, "node_modules/jest-worker/node_modules/supports-color": { "version": "8.1.1", "resolved": "https://npm.sinequa.com/supports-color/-/supports-color-8.1.1.tgz", "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", "dev": true, + "license": "MIT", "dependencies": { "has-flag": "^4.0.0" }, @@ -7908,10 +8325,11 @@ } }, "node_modules/jiti": { - "version": "1.21.1", - "resolved": "https://npm.sinequa.com:4873/jiti/-/jiti-1.21.1.tgz", - "integrity": "sha512-KMXpzEJMsOFyRj6ZpDTnnlJrdr9umUY+eut5vlRvjVixohitnRFIRTFw9MEu9zPlBxTHZo6xD5ftKYiQZuJYQw==", + "version": "1.21.7", + "resolved": "https://npm.sinequa.com/jiti/-/jiti-1.21.7.tgz", + "integrity": "sha512-/imKNG4EbWNrVjoNC/1H5/9GFy+tqjGBHCaSsN+P2RnPqjsLmv6UD3Ej+Kj8nBWaRAwyk7kK5ZUc+OEatnTR3A==", "dev": true, + "license": "MIT", "bin": { "jiti": "bin/jiti.js" } @@ -7919,19 +8337,34 @@ "node_modules/js-tokens": { "version": "4.0.0", "resolved": "https://npm.sinequa.com/js-tokens/-/js-tokens-4.0.0.tgz", - "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==" + "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", + "license": "MIT" + }, + "node_modules/js-yaml": { + "version": "4.1.0", + "resolved": "https://npm.sinequa.com/js-yaml/-/js-yaml-4.1.0.tgz", + "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", + "license": "MIT", + "dependencies": { + "argparse": "^2.0.1" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" + } }, "node_modules/jsbn": { "version": "1.1.0", - "resolved": "https://npm.sinequa.com:4873/jsbn/-/jsbn-1.1.0.tgz", + "resolved": "https://npm.sinequa.com/jsbn/-/jsbn-1.1.0.tgz", "integrity": "sha1-sBMHyym2GKHtJux56RH4A8TaAEA=", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/jsesc": { "version": "2.5.2", "resolved": "https://npm.sinequa.com/jsesc/-/jsesc-2.5.2.tgz", "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==", "dev": true, + "license": "MIT", "bin": { "jsesc": "bin/jsesc" }, @@ -7941,24 +8374,26 @@ }, "node_modules/json-parse-even-better-errors": { "version": "3.0.2", - "resolved": "https://npm.sinequa.com:4873/json-parse-even-better-errors/-/json-parse-even-better-errors-3.0.2.tgz", + "resolved": "https://npm.sinequa.com/json-parse-even-better-errors/-/json-parse-even-better-errors-3.0.2.tgz", "integrity": "sha512-fi0NG4bPjCHunUJffmLd0gxssIgkNmArMvis4iNah6Owg1MCJjWhEcDLmsK6iGkJq3tHwbDkTlce70/tmXN4cQ==", "dev": true, + "license": "MIT", "engines": { "node": "^14.17.0 || ^16.13.0 || >=18.0.0" } }, "node_modules/json-schema-traverse": { "version": "1.0.0", - "resolved": "https://npm.sinequa.com:4873/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", + "resolved": "https://npm.sinequa.com/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", - "dev": true + "license": "MIT" }, "node_modules/json5": { "version": "2.2.3", - "resolved": "https://npm.sinequa.com:4873/json5/-/json5-2.2.3.tgz", + "resolved": "https://npm.sinequa.com/json5/-/json5-2.2.3.tgz", "integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==", "dev": true, + "license": "MIT", "bin": { "json5": "lib/cli.js" }, @@ -7970,12 +8405,13 @@ "version": "3.3.1", "resolved": "https://npm.sinequa.com/jsonc-parser/-/jsonc-parser-3.3.1.tgz", "integrity": "sha512-HUgH65KyejrUFPvHFPbqOY0rsFip3Bo5wb4ngvdi1EpCYWUQDC5V+Y7mZws+DLkr4M//zQJoanu1SP+87Dv1oQ==", - "dev": true + "license": "MIT" }, "node_modules/jsonfile": { "version": "6.1.0", - "resolved": "https://npm.sinequa.com:4873/jsonfile/-/jsonfile-6.1.0.tgz", + "resolved": "https://npm.sinequa.com/jsonfile/-/jsonfile-6.1.0.tgz", "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==", + "license": "MIT", "dependencies": { "universalify": "^2.0.0" }, @@ -7983,42 +8419,37 @@ "graceful-fs": "^4.1.6" } }, - "node_modules/jsonfile/node_modules/universalify": { - "version": "2.0.1", - "resolved": "https://npm.sinequa.com:4873/universalify/-/universalify-2.0.1.tgz", - "integrity": "sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==", - "engines": { - "node": ">= 10.0.0" - } - }, "node_modules/jsonparse": { "version": "1.3.1", - "resolved": "https://npm.sinequa.com:4873/jsonparse/-/jsonparse-1.3.1.tgz", + "resolved": "https://npm.sinequa.com/jsonparse/-/jsonparse-1.3.1.tgz", "integrity": "sha1-P02uSpH6wxX3EGL4UhzCOfE2YoA=", "dev": true, "engines": [ "node >= 0.2.0" - ] + ], + "license": "MIT" }, "node_modules/karma-source-map-support": { "version": "1.4.0", - "resolved": "https://npm.sinequa.com:4873/karma-source-map-support/-/karma-source-map-support-1.4.0.tgz", + "resolved": "https://npm.sinequa.com/karma-source-map-support/-/karma-source-map-support-1.4.0.tgz", "integrity": "sha512-RsBECncGO17KAoJCYXjv+ckIz+Ii9NCi+9enk+rq6XC81ezYkb4/RHE6CTXdA7IOJqoF3wcaLfVG0CPmE5ca6A==", "dev": true, + "license": "MIT", "dependencies": { "source-map-support": "^0.5.5" } }, "node_modules/keyux": { - "version": "0.8.2", - "resolved": "https://npm.sinequa.com/keyux/-/keyux-0.8.2.tgz", - "integrity": "sha512-1R7JtEidclmM3l6HsLJln0O1gtz6+O25BnbULMQ7xgXgFi25kez2192ikwRM5ULN9ECbLtzSdOI7As2foaWnfA==", + "version": "0.8.3", + "resolved": "https://npm.sinequa.com/keyux/-/keyux-0.8.3.tgz", + "integrity": "sha512-eHut6xidU0Ts4o2pnuPZuCqYVV0tvzH3RYNfk2OICDj5wFWkskW1knlyn6fcBNFd/6/57URJ+XsR9HZ/FfYwjQ==", "funding": [ { "type": "github", "url": "https://github.com/sponsors/ai" } ], + "license": "MIT", "engines": { "node": "^18.0.0 || >=20.0.0" } @@ -8028,15 +8459,17 @@ "resolved": "https://npm.sinequa.com/kind-of/-/kind-of-6.0.3.tgz", "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", "dev": true, + "license": "MIT", "engines": { "node": ">=0.10.0" } }, "node_modules/launch-editor": { - "version": "2.6.1", - "resolved": "https://npm.sinequa.com:4873/launch-editor/-/launch-editor-2.6.1.tgz", - "integrity": "sha512-eB/uXmFVpY4zezmGp5XtU21kwo7GBbKB+EQ+UZeWtGb9yAM5xt/Evk+lYH3eRNAtId+ej4u7TYPFZ07w4s7rRw==", + "version": "2.9.1", + "resolved": "https://npm.sinequa.com/launch-editor/-/launch-editor-2.9.1.tgz", + "integrity": "sha512-Gcnl4Bd+hRO9P9icCP/RVVT2o8SFlPXofuCxvA2SaZuH45whSvf5p8x5oih5ftLiVhEI4sp5xDY+R+b3zJBh5w==", "dev": true, + "license": "MIT", "dependencies": { "picocolors": "^1.0.0", "shell-quote": "^1.8.1" @@ -8044,9 +8477,10 @@ }, "node_modules/less": { "version": "4.2.0", - "resolved": "https://npm.sinequa.com:4873/less/-/less-4.2.0.tgz", + "resolved": "https://npm.sinequa.com/less/-/less-4.2.0.tgz", "integrity": "sha512-P3b3HJDBtSzsXUl0im2L7gTO5Ubg8mEN6G8qoTS77iXxXX4Hvu4Qj540PZDvQ8V6DmX6iXo98k7Md0Cm1PrLaA==", "dev": true, + "license": "Apache-2.0", "dependencies": { "copy-anything": "^2.0.1", "parse-node-version": "^1.0.1", @@ -8070,9 +8504,10 @@ }, "node_modules/less-loader": { "version": "12.2.0", - "resolved": "https://npm.sinequa.com:4873/less-loader/-/less-loader-12.2.0.tgz", + "resolved": "https://npm.sinequa.com/less-loader/-/less-loader-12.2.0.tgz", "integrity": "sha512-MYUxjSQSBUQmowc0l5nPieOYwMzGPUaTzB6inNW/bdPEG9zOL3eAAD1Qw5ZxSPk7we5dMojHwNODYMV1hq4EVg==", "dev": true, + "license": "MIT", "engines": { "node": ">= 18.12.0" }, @@ -8096,9 +8531,10 @@ }, "node_modules/less/node_modules/source-map": { "version": "0.6.1", - "resolved": "https://npm.sinequa.com:4873/source-map/-/source-map-0.6.1.tgz", + "resolved": "https://npm.sinequa.com/source-map/-/source-map-0.6.1.tgz", "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", "dev": true, + "license": "BSD-3-Clause", "optional": true, "engines": { "node": ">=0.10.0" @@ -8106,9 +8542,10 @@ }, "node_modules/license-webpack-plugin": { "version": "4.0.2", - "resolved": "https://npm.sinequa.com:4873/license-webpack-plugin/-/license-webpack-plugin-4.0.2.tgz", + "resolved": "https://npm.sinequa.com/license-webpack-plugin/-/license-webpack-plugin-4.0.2.tgz", "integrity": "sha512-771TFWFD70G1wLTC4oU2Cw4qvtmNrIw+wRvBtn+okgHl7slJVi7zfNcdmqDL72BojM30VNJ2UHylr1o77U37Jw==", "dev": true, + "license": "ISC", "dependencies": { "webpack-sources": "^3.0.0" }, @@ -8122,24 +8559,30 @@ } }, "node_modules/lilconfig": { - "version": "2.1.0", - "resolved": "https://npm.sinequa.com:4873/lilconfig/-/lilconfig-2.1.0.tgz", - "integrity": "sha512-utWOt/GHzuUxnLKxB6dk81RoOeoNeHgbrXiuGk4yyF5qlRz+iIVWu56E2fqGHFrXz0QNUhLB/8nKqvRH66JKGQ==", + "version": "3.1.3", + "resolved": "https://npm.sinequa.com/lilconfig/-/lilconfig-3.1.3.tgz", + "integrity": "sha512-/vlFKAoH5Cgt3Ie+JLhRbwOsCQePABiU3tJ1egGvyQ+33R/vcwM2Zl2QR/LzjsBeItPt3oSVXapn+m4nQDvpzw==", "dev": true, + "license": "MIT", "engines": { - "node": ">=10" + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/antonk52" } }, "node_modules/lines-and-columns": { "version": "1.2.4", - "resolved": "https://npm.sinequa.com:4873/lines-and-columns/-/lines-and-columns-1.2.4.tgz", - "integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==" + "resolved": "https://npm.sinequa.com/lines-and-columns/-/lines-and-columns-1.2.4.tgz", + "integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==", + "license": "MIT" }, "node_modules/listr2": { "version": "8.2.4", "resolved": "https://npm.sinequa.com/listr2/-/listr2-8.2.4.tgz", "integrity": "sha512-opevsywziHd3zHCVQGAj8zu+Z3yHNkkoYhWIGnq54RrCVwLz0MozotJEDnKsIBLvkfLGN6BLOyAeRrYI0pKA4g==", "dev": true, + "license": "MIT", "dependencies": { "cli-truncate": "^4.0.0", "colorette": "^2.0.20", @@ -8157,6 +8600,7 @@ "resolved": "https://npm.sinequa.com/ansi-regex/-/ansi-regex-6.1.0.tgz", "integrity": "sha512-7HSX4QQb4CspciLpVFwyRe79O3xsIZDDLER21kERQ71oaPodF8jL725AgJMFAYbooIqolJoRLuM81SpeUkpkvA==", "dev": true, + "license": "MIT", "engines": { "node": ">=12" }, @@ -8169,6 +8613,7 @@ "resolved": "https://npm.sinequa.com/ansi-styles/-/ansi-styles-6.2.1.tgz", "integrity": "sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==", "dev": true, + "license": "MIT", "engines": { "node": ">=12" }, @@ -8180,19 +8625,22 @@ "version": "10.4.0", "resolved": "https://npm.sinequa.com/emoji-regex/-/emoji-regex-10.4.0.tgz", "integrity": "sha512-EC+0oUMY1Rqm4O6LLrgjtYDvcVYTy7chDnM4Q7030tP4Kwj3u/pR6gP9ygnp2CJMK5Gq+9Q2oqmrFJAz01DXjw==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/listr2/node_modules/eventemitter3": { "version": "5.0.1", "resolved": "https://npm.sinequa.com/eventemitter3/-/eventemitter3-5.0.1.tgz", "integrity": "sha512-GWkBvjiSZK87ELrYOSESUYeVIc9mvLLf/nXalMOS5dYrgZq9o5OVkbZAVM06CVxYsCwH9BDZFPlQTlPA1j4ahA==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/listr2/node_modules/string-width": { "version": "7.2.0", "resolved": "https://npm.sinequa.com/string-width/-/string-width-7.2.0.tgz", "integrity": "sha512-tsaTIkKW9b4N+AEj+SVA+WhJzV7/zMhcSu78mLKWSk7cXMOSHsBKFWUs0fWwq8QyK3MgJBQRX6Gbi4kYbdvGkQ==", "dev": true, + "license": "MIT", "dependencies": { "emoji-regex": "^10.3.0", "get-east-asian-width": "^1.0.0", @@ -8210,6 +8658,7 @@ "resolved": "https://npm.sinequa.com/strip-ansi/-/strip-ansi-7.1.0.tgz", "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==", "dev": true, + "license": "MIT", "dependencies": { "ansi-regex": "^6.0.1" }, @@ -8225,6 +8674,7 @@ "resolved": "https://npm.sinequa.com/wrap-ansi/-/wrap-ansi-9.0.0.tgz", "integrity": "sha512-G8ura3S+3Z2G+mkgNRq8dqaFZAuxfsxpBB8OCTGRTCtp+l/v9nbFNmCUP1BZMts3G1142MsZfn6eeUKrr4PD1Q==", "dev": true, + "license": "MIT", "dependencies": { "ansi-styles": "^6.2.1", "string-width": "^7.0.0", @@ -8243,6 +8693,7 @@ "integrity": "sha512-UGe+BbaSUQtAMZobTb4nHvFMrmvuAQKSeaqAX2meTEQjfsbpl5sxdHD8T72OnwD4GU9uwNhYXIVe4QGs8N9Zyw==", "dev": true, "hasInstallScript": true, + "license": "MIT", "dependencies": { "msgpackr": "^1.10.2", "node-addon-api": "^6.1.0", @@ -8267,6 +8718,7 @@ "resolved": "https://npm.sinequa.com/loader-runner/-/loader-runner-4.3.0.tgz", "integrity": "sha512-3R/1M+yS3j5ou80Me59j7F9IMs4PXs3VqRrm0TU3AbKPxlmpoY1TNscJV/oGJXo8qCatFGTfDbY6W6ipGOYXfg==", "dev": true, + "license": "MIT", "engines": { "node": ">=6.11.5" } @@ -8276,25 +8728,45 @@ "resolved": "https://npm.sinequa.com/loader-utils/-/loader-utils-3.3.1.tgz", "integrity": "sha512-FMJTLMXfCLMLfJxcX9PFqX5qD88Z5MRGaZCVzfuqeZSPsyiBzs+pahDQjbIWz2QIzPZz0NX9Zy4FX3lmK6YHIg==", "dev": true, + "license": "MIT", "engines": { "node": ">= 12.13.0" } }, + "node_modules/locate-path": { + "version": "7.2.0", + "resolved": "https://npm.sinequa.com/locate-path/-/locate-path-7.2.0.tgz", + "integrity": "sha512-gvVijfZvn7R+2qyPX8mAuKcFGDf6Nc61GdvGafQsHL0sBIxfKzA+usWn4GFC/bk+QdwPUD4kWFJLhElipq+0VA==", + "dev": true, + "license": "MIT", + "dependencies": { + "p-locate": "^6.0.0" + }, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/lodash.debounce": { "version": "4.0.8", "resolved": "https://npm.sinequa.com/lodash.debounce/-/lodash.debounce-4.0.8.tgz", "integrity": "sha1-gteb/zCmfEAF/9XiUVMArZyk168=", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/lodash.kebabcase": { "version": "4.1.1", - "resolved": "https://npm.sinequa.com:4873/lodash.kebabcase/-/lodash.kebabcase-4.1.1.tgz", - "integrity": "sha512-N8XRTIMMqqDgSy4VLKPnJ/+hpGZN+PHQiJnSenYqPaVV/NCqEogTnAdZLQiGKhxX+JCs8waWq2t1XHWKOmlY8g==" + "resolved": "https://npm.sinequa.com/lodash.kebabcase/-/lodash.kebabcase-4.1.1.tgz", + "integrity": "sha512-N8XRTIMMqqDgSy4VLKPnJ/+hpGZN+PHQiJnSenYqPaVV/NCqEogTnAdZLQiGKhxX+JCs8waWq2t1XHWKOmlY8g==", + "license": "MIT" }, "node_modules/log-symbols": { "version": "4.1.0", - "resolved": "https://npm.sinequa.com:4873/log-symbols/-/log-symbols-4.1.0.tgz", + "resolved": "https://npm.sinequa.com/log-symbols/-/log-symbols-4.1.0.tgz", "integrity": "sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg==", + "license": "MIT", "dependencies": { "chalk": "^4.1.0", "is-unicode-supported": "^0.1.0" @@ -8306,75 +8778,12 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/log-symbols/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://npm.sinequa.com:4873/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/log-symbols/node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://npm.sinequa.com:4873/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, - "node_modules/log-symbols/node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://npm.sinequa.com:4873/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/log-symbols/node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://npm.sinequa.com:4873/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" - }, - "node_modules/log-symbols/node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://npm.sinequa.com:4873/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "engines": { - "node": ">=8" - } - }, - "node_modules/log-symbols/node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://npm.sinequa.com:4873/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, "node_modules/log-update": { "version": "6.1.0", "resolved": "https://npm.sinequa.com/log-update/-/log-update-6.1.0.tgz", "integrity": "sha512-9ie8ItPR6tjY5uYJh8K/Zrv/RMZ5VOlOWvtZdEHYSTFKZfIBPQa9tOAEeAWhd+AnIneLJ22w5fjOYtoutpWq5w==", "dev": true, + "license": "MIT", "dependencies": { "ansi-escapes": "^7.0.0", "cli-cursor": "^5.0.0", @@ -8394,6 +8803,7 @@ "resolved": "https://npm.sinequa.com/ansi-escapes/-/ansi-escapes-7.0.0.tgz", "integrity": "sha512-GdYO7a61mR0fOlAsvC9/rIHf7L96sBc6dEWzeOu+KAea5bZyQRPIpojrVoI4AXGJS/ycu/fBTdLrUkA4ODrvjw==", "dev": true, + "license": "MIT", "dependencies": { "environment": "^1.0.0" }, @@ -8409,6 +8819,7 @@ "resolved": "https://npm.sinequa.com/ansi-regex/-/ansi-regex-6.1.0.tgz", "integrity": "sha512-7HSX4QQb4CspciLpVFwyRe79O3xsIZDDLER21kERQ71oaPodF8jL725AgJMFAYbooIqolJoRLuM81SpeUkpkvA==", "dev": true, + "license": "MIT", "engines": { "node": ">=12" }, @@ -8421,6 +8832,7 @@ "resolved": "https://npm.sinequa.com/ansi-styles/-/ansi-styles-6.2.1.tgz", "integrity": "sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==", "dev": true, + "license": "MIT", "engines": { "node": ">=12" }, @@ -8428,32 +8840,19 @@ "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, - "node_modules/log-update/node_modules/cli-cursor": { - "version": "5.0.0", - "resolved": "https://npm.sinequa.com/cli-cursor/-/cli-cursor-5.0.0.tgz", - "integrity": "sha512-aCj4O5wKyszjMmDT4tZj93kxyydN/K5zPWSCe6/0AV/AA1pqe5ZBIw0a2ZfPQV7lL5/yb5HsUreJ6UFAF1tEQw==", - "dev": true, - "dependencies": { - "restore-cursor": "^5.0.0" - }, - "engines": { - "node": ">=18" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/log-update/node_modules/emoji-regex": { "version": "10.4.0", "resolved": "https://npm.sinequa.com/emoji-regex/-/emoji-regex-10.4.0.tgz", "integrity": "sha512-EC+0oUMY1Rqm4O6LLrgjtYDvcVYTy7chDnM4Q7030tP4Kwj3u/pR6gP9ygnp2CJMK5Gq+9Q2oqmrFJAz01DXjw==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/log-update/node_modules/is-fullwidth-code-point": { "version": "5.0.0", "resolved": "https://npm.sinequa.com/is-fullwidth-code-point/-/is-fullwidth-code-point-5.0.0.tgz", "integrity": "sha512-OVa3u9kkBbw7b8Xw5F9P+D/T9X+Z4+JruYVNapTjPYZYUznQ5YfWeFkOj606XYYW8yugTfC8Pj0hYqvi4ryAhA==", "dev": true, + "license": "MIT", "dependencies": { "get-east-asian-width": "^1.0.0" }, @@ -8464,51 +8863,21 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/log-update/node_modules/onetime": { - "version": "7.0.0", - "resolved": "https://npm.sinequa.com/onetime/-/onetime-7.0.0.tgz", - "integrity": "sha512-VXJjc87FScF88uafS3JllDgvAm+c/Slfz06lorj2uAY34rlUu0Nt+v8wreiImcrgAjjIHp1rXpTDlLOGw29WwQ==", + "node_modules/log-update/node_modules/slice-ansi": { + "version": "7.1.0", + "resolved": "https://npm.sinequa.com/slice-ansi/-/slice-ansi-7.1.0.tgz", + "integrity": "sha512-bSiSngZ/jWeX93BqeIAbImyTbEihizcwNjFoRUIY/T1wWQsfsm2Vw1agPKylXvQTU7iASGdHhyqRlqQzfz+Htg==", "dev": true, + "license": "MIT", "dependencies": { - "mimic-function": "^5.0.0" + "ansi-styles": "^6.2.1", + "is-fullwidth-code-point": "^5.0.0" }, "engines": { "node": ">=18" }, "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/log-update/node_modules/restore-cursor": { - "version": "5.1.0", - "resolved": "https://npm.sinequa.com/restore-cursor/-/restore-cursor-5.1.0.tgz", - "integrity": "sha512-oMA2dcrw6u0YfxJQXm342bFKX/E4sG9rbTzO9ptUcR/e8A33cHuvStiYOwH7fszkZlZ1z/ta9AAoPk2F4qIOHA==", - "dev": true, - "dependencies": { - "onetime": "^7.0.0", - "signal-exit": "^4.1.0" - }, - "engines": { - "node": ">=18" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/log-update/node_modules/slice-ansi": { - "version": "7.1.0", - "resolved": "https://npm.sinequa.com/slice-ansi/-/slice-ansi-7.1.0.tgz", - "integrity": "sha512-bSiSngZ/jWeX93BqeIAbImyTbEihizcwNjFoRUIY/T1wWQsfsm2Vw1agPKylXvQTU7iASGdHhyqRlqQzfz+Htg==", - "dev": true, - "dependencies": { - "ansi-styles": "^6.2.1", - "is-fullwidth-code-point": "^5.0.0" - }, - "engines": { - "node": ">=18" - }, - "funding": { - "url": "https://github.com/chalk/slice-ansi?sponsor=1" + "url": "https://github.com/chalk/slice-ansi?sponsor=1" } }, "node_modules/log-update/node_modules/string-width": { @@ -8516,6 +8885,7 @@ "resolved": "https://npm.sinequa.com/string-width/-/string-width-7.2.0.tgz", "integrity": "sha512-tsaTIkKW9b4N+AEj+SVA+WhJzV7/zMhcSu78mLKWSk7cXMOSHsBKFWUs0fWwq8QyK3MgJBQRX6Gbi4kYbdvGkQ==", "dev": true, + "license": "MIT", "dependencies": { "emoji-regex": "^10.3.0", "get-east-asian-width": "^1.0.0", @@ -8533,6 +8903,7 @@ "resolved": "https://npm.sinequa.com/strip-ansi/-/strip-ansi-7.1.0.tgz", "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==", "dev": true, + "license": "MIT", "dependencies": { "ansi-regex": "^6.0.1" }, @@ -8548,6 +8919,7 @@ "resolved": "https://npm.sinequa.com/wrap-ansi/-/wrap-ansi-9.0.0.tgz", "integrity": "sha512-G8ura3S+3Z2G+mkgNRq8dqaFZAuxfsxpBB8OCTGRTCtp+l/v9nbFNmCUP1BZMts3G1142MsZfn6eeUKrr4PD1Q==", "dev": true, + "license": "MIT", "dependencies": { "ansi-styles": "^6.2.1", "string-width": "^7.0.0", @@ -8565,6 +8937,7 @@ "resolved": "https://npm.sinequa.com/lru-cache/-/lru-cache-5.1.1.tgz", "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", "dev": true, + "license": "ISC", "dependencies": { "yallist": "^3.0.2" } @@ -8573,16 +8946,17 @@ "version": "0.30.11", "resolved": "https://npm.sinequa.com/magic-string/-/magic-string-0.30.11.tgz", "integrity": "sha512-+Wri9p0QHMy+545hKww7YAu5NyzF8iomPL/RQazugQ9+Ez4Ic3mERMd8ZTX5rfK944j+560ZJi8iAwgak1Ac7A==", - "dev": true, + "license": "MIT", "dependencies": { "@jridgewell/sourcemap-codec": "^1.5.0" } }, "node_modules/make-dir": { "version": "2.1.0", - "resolved": "https://npm.sinequa.com:4873/make-dir/-/make-dir-2.1.0.tgz", + "resolved": "https://npm.sinequa.com/make-dir/-/make-dir-2.1.0.tgz", "integrity": "sha512-LS9X+dc8KLxXCb8dni79fLIIUA5VyZoyjSMCwTluaXA0o27cCK0bhXkpgw+sTXVpPy/lSO57ilRixqk0vDmtRA==", "dev": true, + "license": "MIT", "optional": true, "dependencies": { "pify": "^4.0.1", @@ -8594,9 +8968,10 @@ }, "node_modules/make-dir/node_modules/semver": { "version": "5.7.2", - "resolved": "https://npm.sinequa.com:4873/semver/-/semver-5.7.2.tgz", + "resolved": "https://npm.sinequa.com/semver/-/semver-5.7.2.tgz", "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==", "dev": true, + "license": "ISC", "optional": true, "bin": { "semver": "bin/semver" @@ -8604,9 +8979,10 @@ }, "node_modules/make-fetch-happen": { "version": "13.0.1", - "resolved": "https://npm.sinequa.com:4873/make-fetch-happen/-/make-fetch-happen-13.0.1.tgz", + "resolved": "https://npm.sinequa.com/make-fetch-happen/-/make-fetch-happen-13.0.1.tgz", "integrity": "sha512-cKTUFc/rbKUd/9meOvgrpJ2WrNzymt6jfRDdwg5UCnVzv9dTpEj9JS5m3wtziXVCjluIXyL8pcaukYqezIzZQA==", "dev": true, + "license": "ISC", "dependencies": { "@npmcli/agent": "^2.0.0", "cacache": "^18.0.0", @@ -8627,27 +9003,40 @@ }, "node_modules/make-plural": { "version": "7.4.0", - "resolved": "https://npm.sinequa.com:4873/make-plural/-/make-plural-7.4.0.tgz", - "integrity": "sha512-4/gC9KVNTV6pvYg2gFeQYTW3mWaoJt7WZE5vrp1KnQDgW92JtYZnzmZT81oj/dUTqAIu0ufI2x3dkgu3bB1tYg==" + "resolved": "https://npm.sinequa.com/make-plural/-/make-plural-7.4.0.tgz", + "integrity": "sha512-4/gC9KVNTV6pvYg2gFeQYTW3mWaoJt7WZE5vrp1KnQDgW92JtYZnzmZT81oj/dUTqAIu0ufI2x3dkgu3bB1tYg==", + "license": "Unicode-DFS-2016" + }, + "node_modules/math-intrinsics": { + "version": "1.1.0", + "resolved": "https://npm.sinequa.com/math-intrinsics/-/math-intrinsics-1.1.0.tgz", + "integrity": "sha512-/IXtbwEk5HTPyEwyKX6hGkYXxM9nbj64B+ilVJnC/R6B0pH5G4V3b0pVbL7DBj4tkhBAppbQUlf6F6Xl9LHu1g==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + } }, "node_modules/media-typer": { "version": "0.3.0", "resolved": "https://npm.sinequa.com/media-typer/-/media-typer-0.3.0.tgz", "integrity": "sha1-hxDXrwqmJvj/+hzgAWhUUmMlV0g=", "dev": true, + "license": "MIT", "engines": { "node": ">= 0.6" } }, "node_modules/memfs": { - "version": "4.9.2", - "resolved": "https://npm.sinequa.com:4873/memfs/-/memfs-4.9.2.tgz", - "integrity": "sha512-f16coDZlTG1jskq3mxarwB+fGRrd0uXWt+o1WIhRfOwbXQZqUDsTVxQBFK9JjRQHblg8eAG2JSbprDXKjc7ijQ==", + "version": "4.17.0", + "resolved": "https://npm.sinequa.com/memfs/-/memfs-4.17.0.tgz", + "integrity": "sha512-4eirfZ7thblFmqFjywlTmuWVSvccHAJbn1r8qQLzmTO11qcqpohOjmY2mFce6x7x7WtskzRqApPD0hv+Oa74jg==", "dev": true, + "license": "Apache-2.0", "dependencies": { "@jsonjoy.com/json-pack": "^1.0.3", - "@jsonjoy.com/util": "^1.1.2", - "sonic-forest": "^1.0.0", + "@jsonjoy.com/util": "^1.3.0", + "tree-dump": "^1.0.1", "tslib": "^2.0.0" }, "engines": { @@ -8663,30 +9052,34 @@ "resolved": "https://npm.sinequa.com/merge-descriptors/-/merge-descriptors-1.0.3.tgz", "integrity": "sha512-gaNvAS7TZ897/rVaZ0nMtAyxNyi/pdbjbAwUpFQpN70GqnVfOiXpeUUMKRBmzXaSQ8DdTX4/0ms62r2K+hE6mQ==", "dev": true, + "license": "MIT", "funding": { "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/merge-stream": { "version": "2.0.0", - "resolved": "https://npm.sinequa.com:4873/merge-stream/-/merge-stream-2.0.0.tgz", + "resolved": "https://npm.sinequa.com/merge-stream/-/merge-stream-2.0.0.tgz", "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/merge2": { "version": "1.4.1", - "resolved": "https://npm.sinequa.com:4873/merge2/-/merge2-1.4.1.tgz", + "resolved": "https://npm.sinequa.com/merge2/-/merge2-1.4.1.tgz", "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", "dev": true, + "license": "MIT", "engines": { "node": ">= 8" } }, "node_modules/methods": { "version": "1.1.2", - "resolved": "https://npm.sinequa.com:4873/methods/-/methods-1.1.2.tgz", + "resolved": "https://npm.sinequa.com/methods/-/methods-1.1.2.tgz", "integrity": "sha1-VSmk1nZUE07cxSZmVoNbD4Ua/O4=", "dev": true, + "license": "MIT", "engines": { "node": ">= 0.6" } @@ -8696,6 +9089,7 @@ "resolved": "https://npm.sinequa.com/micromatch/-/micromatch-4.0.8.tgz", "integrity": "sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==", "dev": true, + "license": "MIT", "dependencies": { "braces": "^3.0.3", "picomatch": "^2.3.1" @@ -8706,9 +9100,10 @@ }, "node_modules/micromatch/node_modules/picomatch": { "version": "2.3.1", - "resolved": "https://npm.sinequa.com:4873/picomatch/-/picomatch-2.3.1.tgz", + "resolved": "https://npm.sinequa.com/picomatch/-/picomatch-2.3.1.tgz", "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", "dev": true, + "license": "MIT", "engines": { "node": ">=8.6" }, @@ -8718,9 +9113,10 @@ }, "node_modules/mime": { "version": "1.6.0", - "resolved": "https://npm.sinequa.com:4873/mime/-/mime-1.6.0.tgz", + "resolved": "https://npm.sinequa.com/mime/-/mime-1.6.0.tgz", "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==", "dev": true, + "license": "MIT", "bin": { "mime": "cli.js" }, @@ -8730,18 +9126,20 @@ }, "node_modules/mime-db": { "version": "1.52.0", - "resolved": "https://npm.sinequa.com:4873/mime-db/-/mime-db-1.52.0.tgz", + "resolved": "https://npm.sinequa.com/mime-db/-/mime-db-1.52.0.tgz", "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==", "dev": true, + "license": "MIT", "engines": { "node": ">= 0.6" } }, "node_modules/mime-types": { "version": "2.1.35", - "resolved": "https://npm.sinequa.com:4873/mime-types/-/mime-types-2.1.35.tgz", + "resolved": "https://npm.sinequa.com/mime-types/-/mime-types-2.1.35.tgz", "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", "dev": true, + "license": "MIT", "dependencies": { "mime-db": "1.52.0" }, @@ -8751,8 +9149,9 @@ }, "node_modules/mimic-fn": { "version": "2.1.0", - "resolved": "https://npm.sinequa.com:4873/mimic-fn/-/mimic-fn-2.1.0.tgz", + "resolved": "https://npm.sinequa.com/mimic-fn/-/mimic-fn-2.1.0.tgz", "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==", + "license": "MIT", "engines": { "node": ">=6" } @@ -8762,6 +9161,7 @@ "resolved": "https://npm.sinequa.com/mimic-function/-/mimic-function-5.0.1.tgz", "integrity": "sha512-VP79XUPxV2CigYP3jWwAUFSku2aKqBH7uTAapFWCBqutsbmDo96KY5o8uh6U+/YSIn5OxJnXp73beVkpqMIGhA==", "dev": true, + "license": "MIT", "engines": { "node": ">=18" }, @@ -8771,9 +9171,10 @@ }, "node_modules/mini-css-extract-plugin": { "version": "2.9.0", - "resolved": "https://npm.sinequa.com:4873/mini-css-extract-plugin/-/mini-css-extract-plugin-2.9.0.tgz", + "resolved": "https://npm.sinequa.com/mini-css-extract-plugin/-/mini-css-extract-plugin-2.9.0.tgz", "integrity": "sha512-Zs1YsZVfemekSZG+44vBsYTLQORkPMwnlv+aehcxK/NLKC+EGhDB39/YePYYqx/sTk6NnYpuqikhSn7+JIevTA==", "dev": true, + "license": "MIT", "dependencies": { "schema-utils": "^4.0.0", "tapable": "^2.2.1" @@ -8791,14 +9192,16 @@ }, "node_modules/minimalistic-assert": { "version": "1.0.1", - "resolved": "https://npm.sinequa.com:4873/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz", + "resolved": "https://npm.sinequa.com/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz", "integrity": "sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A==", - "dev": true + "dev": true, + "license": "ISC" }, "node_modules/minimatch": { - "version": "9.0.4", - "resolved": "https://npm.sinequa.com:4873/minimatch/-/minimatch-9.0.4.tgz", - "integrity": "sha512-KqWh+VchfxcMNRAJjj2tnsSJdNbHsVgnkBhTNrW7AjVo6OvLtxw8zfT9oLw1JSohlFzJ8jCoTgaoXvJ+kHt6fw==", + "version": "9.0.5", + "resolved": "https://npm.sinequa.com/minimatch/-/minimatch-9.0.5.tgz", + "integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==", + "license": "ISC", "dependencies": { "brace-expansion": "^2.0.1" }, @@ -8811,17 +9214,19 @@ }, "node_modules/minipass": { "version": "7.1.2", - "resolved": "https://npm.sinequa.com:4873/minipass/-/minipass-7.1.2.tgz", + "resolved": "https://npm.sinequa.com/minipass/-/minipass-7.1.2.tgz", "integrity": "sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==", + "license": "ISC", "engines": { "node": ">=16 || 14 >=14.17" } }, "node_modules/minipass-collect": { "version": "2.0.1", - "resolved": "https://npm.sinequa.com:4873/minipass-collect/-/minipass-collect-2.0.1.tgz", + "resolved": "https://npm.sinequa.com/minipass-collect/-/minipass-collect-2.0.1.tgz", "integrity": "sha512-D7V8PO9oaz7PWGLbCACuI1qEOsq7UKfLotx/C0Aet43fCUB/wfQ7DYeq2oR/svFJGYDHPr38SHATeaj/ZoKHKw==", "dev": true, + "license": "ISC", "dependencies": { "minipass": "^7.0.3" }, @@ -8831,9 +9236,10 @@ }, "node_modules/minipass-fetch": { "version": "3.0.5", - "resolved": "https://npm.sinequa.com:4873/minipass-fetch/-/minipass-fetch-3.0.5.tgz", + "resolved": "https://npm.sinequa.com/minipass-fetch/-/minipass-fetch-3.0.5.tgz", "integrity": "sha512-2N8elDQAtSnFV0Dk7gt15KHsS0Fyz6CbYZ360h0WTYV1Ty46li3rAXVOQj1THMNLdmrD9Vt5pBPtWtVkpwGBqg==", "dev": true, + "license": "MIT", "dependencies": { "minipass": "^7.0.3", "minipass-sized": "^1.0.3", @@ -8848,9 +9254,10 @@ }, "node_modules/minipass-flush": { "version": "1.0.5", - "resolved": "https://npm.sinequa.com:4873/minipass-flush/-/minipass-flush-1.0.5.tgz", + "resolved": "https://npm.sinequa.com/minipass-flush/-/minipass-flush-1.0.5.tgz", "integrity": "sha512-JmQSYYpPUqX5Jyn1mXaRwOda1uQ8HP5KAT/oDSLCzt1BYRhQU0/hDtsB1ufZfEEzMZ9aAVmsBw8+FWsIXlClWw==", "dev": true, + "license": "ISC", "dependencies": { "minipass": "^3.0.0" }, @@ -8860,9 +9267,10 @@ }, "node_modules/minipass-flush/node_modules/minipass": { "version": "3.3.6", - "resolved": "https://npm.sinequa.com:4873/minipass/-/minipass-3.3.6.tgz", + "resolved": "https://npm.sinequa.com/minipass/-/minipass-3.3.6.tgz", "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==", "dev": true, + "license": "ISC", "dependencies": { "yallist": "^4.0.0" }, @@ -8872,43 +9280,17 @@ }, "node_modules/minipass-flush/node_modules/yallist": { "version": "4.0.0", - "resolved": "https://npm.sinequa.com:4873/yallist/-/yallist-4.0.0.tgz", + "resolved": "https://npm.sinequa.com/yallist/-/yallist-4.0.0.tgz", "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", - "dev": true - }, - "node_modules/minipass-json-stream": { - "version": "1.0.1", - "resolved": "https://npm.sinequa.com:4873/minipass-json-stream/-/minipass-json-stream-1.0.1.tgz", - "integrity": "sha512-ODqY18UZt/I8k+b7rl2AENgbWE8IDYam+undIJONvigAz8KR5GWblsFTEfQs0WODsjbSXWlm+JHEv8Gr6Tfdbg==", - "dev": true, - "dependencies": { - "jsonparse": "^1.3.1", - "minipass": "^3.0.0" - } - }, - "node_modules/minipass-json-stream/node_modules/minipass": { - "version": "3.3.6", - "resolved": "https://npm.sinequa.com:4873/minipass/-/minipass-3.3.6.tgz", - "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==", "dev": true, - "dependencies": { - "yallist": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/minipass-json-stream/node_modules/yallist": { - "version": "4.0.0", - "resolved": "https://npm.sinequa.com:4873/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", - "dev": true + "license": "ISC" }, "node_modules/minipass-pipeline": { "version": "1.2.4", - "resolved": "https://npm.sinequa.com:4873/minipass-pipeline/-/minipass-pipeline-1.2.4.tgz", + "resolved": "https://npm.sinequa.com/minipass-pipeline/-/minipass-pipeline-1.2.4.tgz", "integrity": "sha512-xuIq7cIOt09RPRJ19gdi4b+RiNvDFYe5JH+ggNvBqGqpQXcru3PcRmOZuHBKWK1Txf9+cQ+HMVN4d6z46LZP7A==", "dev": true, + "license": "ISC", "dependencies": { "minipass": "^3.0.0" }, @@ -8918,9 +9300,10 @@ }, "node_modules/minipass-pipeline/node_modules/minipass": { "version": "3.3.6", - "resolved": "https://npm.sinequa.com:4873/minipass/-/minipass-3.3.6.tgz", + "resolved": "https://npm.sinequa.com/minipass/-/minipass-3.3.6.tgz", "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==", "dev": true, + "license": "ISC", "dependencies": { "yallist": "^4.0.0" }, @@ -8930,15 +9313,17 @@ }, "node_modules/minipass-pipeline/node_modules/yallist": { "version": "4.0.0", - "resolved": "https://npm.sinequa.com:4873/yallist/-/yallist-4.0.0.tgz", + "resolved": "https://npm.sinequa.com/yallist/-/yallist-4.0.0.tgz", "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", - "dev": true + "dev": true, + "license": "ISC" }, "node_modules/minipass-sized": { "version": "1.0.3", - "resolved": "https://npm.sinequa.com:4873/minipass-sized/-/minipass-sized-1.0.3.tgz", + "resolved": "https://npm.sinequa.com/minipass-sized/-/minipass-sized-1.0.3.tgz", "integrity": "sha512-MbkQQ2CTiBMlA2Dm/5cY+9SWFEN8pzzOXi6rlM5Xxq0Yqbda5ZQy9sU75a673FE9ZK0Zsbr6Y5iP6u9nktfg2g==", "dev": true, + "license": "ISC", "dependencies": { "minipass": "^3.0.0" }, @@ -8948,9 +9333,10 @@ }, "node_modules/minipass-sized/node_modules/minipass": { "version": "3.3.6", - "resolved": "https://npm.sinequa.com:4873/minipass/-/minipass-3.3.6.tgz", + "resolved": "https://npm.sinequa.com/minipass/-/minipass-3.3.6.tgz", "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==", "dev": true, + "license": "ISC", "dependencies": { "yallist": "^4.0.0" }, @@ -8960,15 +9346,17 @@ }, "node_modules/minipass-sized/node_modules/yallist": { "version": "4.0.0", - "resolved": "https://npm.sinequa.com:4873/yallist/-/yallist-4.0.0.tgz", + "resolved": "https://npm.sinequa.com/yallist/-/yallist-4.0.0.tgz", "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", - "dev": true + "dev": true, + "license": "ISC" }, "node_modules/minizlib": { "version": "2.1.2", - "resolved": "https://npm.sinequa.com:4873/minizlib/-/minizlib-2.1.2.tgz", + "resolved": "https://npm.sinequa.com/minizlib/-/minizlib-2.1.2.tgz", "integrity": "sha512-bAxsR8BVfj60DWXHE3u30oHzfl4G7khkSuPW+qvpd7jFRHm7dLxOjUk1EHACJ/hxLY8phGJ0YhYHZo7jil7Qdg==", "dev": true, + "license": "MIT", "dependencies": { "minipass": "^3.0.0", "yallist": "^4.0.0" @@ -8979,9 +9367,10 @@ }, "node_modules/minizlib/node_modules/minipass": { "version": "3.3.6", - "resolved": "https://npm.sinequa.com:4873/minipass/-/minipass-3.3.6.tgz", + "resolved": "https://npm.sinequa.com/minipass/-/minipass-3.3.6.tgz", "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==", "dev": true, + "license": "ISC", "dependencies": { "yallist": "^4.0.0" }, @@ -8991,15 +9380,17 @@ }, "node_modules/minizlib/node_modules/yallist": { "version": "4.0.0", - "resolved": "https://npm.sinequa.com:4873/yallist/-/yallist-4.0.0.tgz", + "resolved": "https://npm.sinequa.com/yallist/-/yallist-4.0.0.tgz", "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", - "dev": true + "dev": true, + "license": "ISC" }, "node_modules/mkdirp": { "version": "1.0.4", - "resolved": "https://npm.sinequa.com:4873/mkdirp/-/mkdirp-1.0.4.tgz", + "resolved": "https://npm.sinequa.com/mkdirp/-/mkdirp-1.0.4.tgz", "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==", "dev": true, + "license": "MIT", "bin": { "mkdirp": "bin/cmd.js" }, @@ -9009,14 +9400,16 @@ }, "node_modules/moo": { "version": "0.5.2", - "resolved": "https://npm.sinequa.com:4873/moo/-/moo-0.5.2.tgz", - "integrity": "sha512-iSAJLHYKnX41mKcJKjqvnAN9sf0LMDTXDEvFv+ffuRR9a1MIuXLjMNL6EsnDHSkKLTWNqQQ5uo61P4EbU4NU+Q==" + "resolved": "https://npm.sinequa.com/moo/-/moo-0.5.2.tgz", + "integrity": "sha512-iSAJLHYKnX41mKcJKjqvnAN9sf0LMDTXDEvFv+ffuRR9a1MIuXLjMNL6EsnDHSkKLTWNqQQ5uo61P4EbU4NU+Q==", + "license": "BSD-3-Clause" }, "node_modules/mrmime": { "version": "2.0.0", "resolved": "https://npm.sinequa.com/mrmime/-/mrmime-2.0.0.tgz", "integrity": "sha512-eu38+hdgojoyq63s+yTpN4XMBdt5l8HhMhc4VKLO9KM5caLIBvUm4thi7fFaxyTmCKeNnXZ5pAlBwCUnhA09uw==", "dev": true, + "license": "MIT", "engines": { "node": ">=10" } @@ -9025,13 +9418,15 @@ "version": "2.1.3", "resolved": "https://npm.sinequa.com/ms/-/ms-2.1.3.tgz", "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/msgpackr": { "version": "1.11.2", "resolved": "https://npm.sinequa.com/msgpackr/-/msgpackr-1.11.2.tgz", "integrity": "sha512-F9UngXRlPyWCDEASDpTf6c9uNhGPTqnTeLVt7bN+bU1eajoR/8V9ys2BRaV5C/e5ihE6sJ9uPIKaYt6bFuO32g==", "dev": true, + "license": "MIT", "optionalDependencies": { "msgpackr-extract": "^3.0.2" } @@ -9042,6 +9437,7 @@ "integrity": "sha512-P0efT1C9jIdVRefqjzOQ9Xml57zpOXnIuS+csaB4MdZbTdmGDLo8XhzBG1N7aO11gKDDkJvBLULeFTo46wwreA==", "dev": true, "hasInstallScript": true, + "license": "MIT", "optional": true, "dependencies": { "node-gyp-build-optional-packages": "5.2.2" @@ -9060,9 +9456,10 @@ }, "node_modules/multicast-dns": { "version": "7.2.5", - "resolved": "https://npm.sinequa.com:4873/multicast-dns/-/multicast-dns-7.2.5.tgz", + "resolved": "https://npm.sinequa.com/multicast-dns/-/multicast-dns-7.2.5.tgz", "integrity": "sha512-2eznPJP8z2BFLX50tf0LuODrpINqP1RVIm/CObbTcBRITQgmC/TjcREF1NeTBzIcR5XO/ukWo+YHOjBbFwIupg==", "dev": true, + "license": "MIT", "dependencies": { "dns-packet": "^5.2.2", "thunky": "^1.0.2" @@ -9076,15 +9473,17 @@ "resolved": "https://npm.sinequa.com/mute-stream/-/mute-stream-1.0.0.tgz", "integrity": "sha512-avsJQhyd+680gKXyG/sQc0nXaC6rBkPOfyHYcFb9+hdkqQkR9bdnkJ0AMZhke0oesPqIO+mFFJ+IdBc7mst4IA==", "dev": true, + "license": "ISC", "engines": { "node": "^14.17.0 || ^16.13.0 || >=18.0.0" } }, "node_modules/mz": { "version": "2.7.0", - "resolved": "https://npm.sinequa.com:4873/mz/-/mz-2.7.0.tgz", + "resolved": "https://npm.sinequa.com/mz/-/mz-2.7.0.tgz", "integrity": "sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q==", "dev": true, + "license": "MIT", "dependencies": { "any-promise": "^1.0.0", "object-assign": "^4.0.1", @@ -9092,9 +9491,9 @@ } }, "node_modules/nanoid": { - "version": "3.3.7", - "resolved": "https://npm.sinequa.com:4873/nanoid/-/nanoid-3.3.7.tgz", - "integrity": "sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g==", + "version": "3.3.8", + "resolved": "https://npm.sinequa.com/nanoid/-/nanoid-3.3.8.tgz", + "integrity": "sha512-WNLf5Sd8oZxOm+TzppcYk8gVOgP+l58xNy58D0nbUnOxOWRWvlcCV4kUF7ltmI6PsrLl/BgKEyS4mqsGChFN0w==", "dev": true, "funding": [ { @@ -9102,6 +9501,7 @@ "url": "https://github.com/sponsors/ai" } ], + "license": "MIT", "bin": { "nanoid": "bin/nanoid.cjs" }, @@ -9111,9 +9511,10 @@ }, "node_modules/needle": { "version": "3.3.1", - "resolved": "https://npm.sinequa.com:4873/needle/-/needle-3.3.1.tgz", + "resolved": "https://npm.sinequa.com/needle/-/needle-3.3.1.tgz", "integrity": "sha512-6k0YULvhpw+RoLNiQCRKOl09Rv1dPLr8hHnVjHqdolKwDrdNyk+Hmrthi4lIGPPz3r39dLx0hsF5s40sZ3Us4Q==", "dev": true, + "license": "MIT", "optional": true, "dependencies": { "iconv-lite": "^0.6.3", @@ -9128,9 +9529,10 @@ }, "node_modules/needle/node_modules/iconv-lite": { "version": "0.6.3", - "resolved": "https://npm.sinequa.com:4873/iconv-lite/-/iconv-lite-0.6.3.tgz", + "resolved": "https://npm.sinequa.com/iconv-lite/-/iconv-lite-0.6.3.tgz", "integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==", "dev": true, + "license": "MIT", "optional": true, "dependencies": { "safer-buffer": ">= 2.1.2 < 3.0.0" @@ -9140,10 +9542,11 @@ } }, "node_modules/negotiator": { - "version": "0.6.3", - "resolved": "https://npm.sinequa.com:4873/negotiator/-/negotiator-0.6.3.tgz", - "integrity": "sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==", + "version": "0.6.4", + "resolved": "https://npm.sinequa.com/negotiator/-/negotiator-0.6.4.tgz", + "integrity": "sha512-myRT3DiWPHqho5PrJaIRyaMv2kgYf0mUVgBNOYMuCH5Ki1yEiQaf/ZJuQ62nvpc44wL5WDbTX7yGJi1Neevw8w==", "dev": true, + "license": "MIT", "engines": { "node": ">= 0.6" } @@ -9152,12 +9555,14 @@ "version": "2.6.2", "resolved": "https://npm.sinequa.com/neo-async/-/neo-async-2.6.2.tgz", "integrity": "sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/ngx-sonner": { "version": "1.0.0", - "resolved": "https://npm.sinequa.com:4873/ngx-sonner/-/ngx-sonner-1.0.0.tgz", + "resolved": "https://npm.sinequa.com/ngx-sonner/-/ngx-sonner-1.0.0.tgz", "integrity": "sha512-eymqTMVGrQAm0R9b+/koA+cymyTmE86q0giZI611apEwH3MDdIB6wEDwqc4DPSQ+AQJlgBz4vJxTFCOY+lXCzQ==", + "license": "MIT", "dependencies": { "tslib": "^2.3.0" }, @@ -9172,6 +9577,7 @@ "integrity": "sha512-px/KnJAJZf5RuBGcfD+Sp2pAKq0ytz8j+1NehvgIGFkvtvFrDM3T8E4x/JJODXK9WZow8RRGrbA9QQ3hs+pDhA==", "dev": true, "hasInstallScript": true, + "license": "MIT", "optional": true, "os": [ "!win32" @@ -9186,18 +9592,21 @@ "resolved": "https://npm.sinequa.com/node-addon-api/-/node-addon-api-3.2.1.tgz", "integrity": "sha512-mmcei9JghVNDYydghQmeDX8KoAm0FAiYyIcUt/N4nhyAipB17pllZQDOJD2fotxABnt4Mdz+dKTO7eftLg4d0A==", "dev": true, + "license": "MIT", "optional": true }, "node_modules/node-addon-api": { "version": "6.1.0", "resolved": "https://npm.sinequa.com/node-addon-api/-/node-addon-api-6.1.0.tgz", "integrity": "sha512-+eawOlIgy680F0kBzPUNFhMZGtJ1YmqM6l4+Crf4IkImjYrO/mqPwRMh352g23uIaQKFItcQ64I7KMaJxHgAVA==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/node-fetch": { "version": "2.7.0", - "resolved": "https://npm.sinequa.com:4873/node-fetch/-/node-fetch-2.7.0.tgz", + "resolved": "https://npm.sinequa.com/node-fetch/-/node-fetch-2.7.0.tgz", "integrity": "sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A==", + "license": "MIT", "dependencies": { "whatwg-url": "^5.0.0" }, @@ -9215,18 +9624,20 @@ }, "node_modules/node-forge": { "version": "1.3.1", - "resolved": "https://npm.sinequa.com:4873/node-forge/-/node-forge-1.3.1.tgz", + "resolved": "https://npm.sinequa.com/node-forge/-/node-forge-1.3.1.tgz", "integrity": "sha512-dPEtOeMvF9VMcYV/1Wb8CPoVAXtp6MKMlcbAt4ddqmGqUJ6fQZFXkNZNkNlfevtNkGtaSoXf/vNNNSvgrdXwtA==", "dev": true, + "license": "(BSD-3-Clause OR GPL-2.0)", "engines": { "node": ">= 6.13.0" } }, "node_modules/node-gyp": { - "version": "10.1.0", - "resolved": "https://npm.sinequa.com:4873/node-gyp/-/node-gyp-10.1.0.tgz", - "integrity": "sha512-B4J5M1cABxPc5PwfjhbV5hoy2DP9p8lFXASnEN6hugXOa61416tnTZ29x9sSwAd0o99XNIcpvDDy1swAExsVKA==", + "version": "10.3.1", + "resolved": "https://npm.sinequa.com/node-gyp/-/node-gyp-10.3.1.tgz", + "integrity": "sha512-Pp3nFHBThHzVtNY7U6JfPjvT/DTE8+o/4xKsLQtBoU+j2HLsGlhcfzflAoUreaJbNmYnX+LlLi0qjV8kpyO6xQ==", "dev": true, + "license": "MIT", "dependencies": { "env-paths": "^2.2.0", "exponential-backoff": "^3.1.1", @@ -9234,9 +9645,9 @@ "graceful-fs": "^4.2.6", "make-fetch-happen": "^13.0.0", "nopt": "^7.0.0", - "proc-log": "^3.0.0", + "proc-log": "^4.1.0", "semver": "^7.3.5", - "tar": "^6.1.2", + "tar": "^6.2.1", "which": "^4.0.0" }, "bin": { @@ -9247,10 +9658,11 @@ } }, "node_modules/node-gyp-build": { - "version": "4.8.2", - "resolved": "https://npm.sinequa.com/node-gyp-build/-/node-gyp-build-4.8.2.tgz", - "integrity": "sha512-IRUxE4BVsHWXkV/SFOut4qTlagw2aM8T5/vnTsmrHJvVoKueJHRc/JaFND7QDDc61kLYUJ6qlZM3sqTSyx2dTw==", + "version": "4.8.4", + "resolved": "https://npm.sinequa.com/node-gyp-build/-/node-gyp-build-4.8.4.tgz", + "integrity": "sha512-LA4ZjwlnUblHVgq0oBF3Jl/6h/Nvs5fzBLwdEF4nuxnFdsfajde4WfxtJr3CaiH+F6ewcIB/q4jQ4UzPyid+CQ==", "dev": true, + "license": "MIT", "optional": true, "bin": { "node-gyp-build": "bin.js", @@ -9263,6 +9675,7 @@ "resolved": "https://npm.sinequa.com/node-gyp-build-optional-packages/-/node-gyp-build-optional-packages-5.2.2.tgz", "integrity": "sha512-s+w+rBWnpTMwSFbaE0UXsRlg7hU4FjekKU4eyAih5T8nJuNZT1nNsskXpxmeqSK9UzkBl6UgRlnKc8hz8IEqOw==", "dev": true, + "license": "MIT", "dependencies": { "detect-libc": "^2.0.1" }, @@ -9272,26 +9685,45 @@ "node-gyp-build-optional-packages-test": "build-test.js" } }, - "node_modules/node-gyp/node_modules/proc-log": { - "version": "3.0.0", - "resolved": "https://npm.sinequa.com:4873/proc-log/-/proc-log-3.0.0.tgz", - "integrity": "sha512-++Vn7NS4Xf9NacaU9Xq3URUuqZETPsf8L4j5/ckhaRYsfPeRyzGw+iDjFhV/Jr3uNmTvvddEJFWh5R1gRgUH8A==", + "node_modules/node-gyp/node_modules/isexe": { + "version": "3.1.1", + "resolved": "https://npm.sinequa.com/isexe/-/isexe-3.1.1.tgz", + "integrity": "sha512-LpB/54B+/2J5hqQ7imZHfdU31OlgQqx7ZicVlkm9kzg9/w8GKLEcFfJl/t7DCEDueOyBAD6zCCwTO6Fzs0NoEQ==", "dev": true, + "license": "ISC", "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + "node": ">=16" + } + }, + "node_modules/node-gyp/node_modules/which": { + "version": "4.0.0", + "resolved": "https://npm.sinequa.com/which/-/which-4.0.0.tgz", + "integrity": "sha512-GlaYyEb07DPxYCKhKzplCWBJtvxZcZMrL+4UkrTSJHHPyZU4mYYTv3qaOe77H7EODLSSopAUFAc6W8U4yqvscg==", + "dev": true, + "license": "ISC", + "dependencies": { + "isexe": "^3.1.1" + }, + "bin": { + "node-which": "bin/which.js" + }, + "engines": { + "node": "^16.13.0 || >=18.0.0" } }, "node_modules/node-releases": { - "version": "2.0.18", - "resolved": "https://npm.sinequa.com/node-releases/-/node-releases-2.0.18.tgz", - "integrity": "sha512-d9VeXT4SJ7ZeOqGX6R5EM022wpL+eWPooLI+5UpWn2jCT1aosUQEhQP214x33Wkwx3JQMvIm+tIoVOdodFS40g==", - "dev": true + "version": "2.0.19", + "resolved": "https://npm.sinequa.com/node-releases/-/node-releases-2.0.19.tgz", + "integrity": "sha512-xxOWJsBKtzAq7DY0J+DTzuz58K8e7sJbdgwkbMWQe8UYB6ekmsQ45q0M/tJDsGaZmbC+l7n57UV8Hl5tHxO9uw==", + "dev": true, + "license": "MIT" }, "node_modules/nopt": { "version": "7.2.1", - "resolved": "https://npm.sinequa.com:4873/nopt/-/nopt-7.2.1.tgz", + "resolved": "https://npm.sinequa.com/nopt/-/nopt-7.2.1.tgz", "integrity": "sha512-taM24ViiimT/XntxbPyJQzCG+p4EKOpgD3mxFwW38mGjVUrfERQOeY4EDHjdnptttfHuHQXFx+lTP08Q+mLa/w==", "dev": true, + "license": "ISC", "dependencies": { "abbrev": "^2.0.0" }, @@ -9303,13 +9735,13 @@ } }, "node_modules/normalize-package-data": { - "version": "6.0.1", - "resolved": "https://npm.sinequa.com:4873/normalize-package-data/-/normalize-package-data-6.0.1.tgz", - "integrity": "sha512-6rvCfeRW+OEZagAB4lMLSNuTNYZWLVtKccK79VSTf//yTY5VOCgcpH80O+bZK8Neps7pUnd5G+QlMg1yV/2iZQ==", + "version": "6.0.2", + "resolved": "https://npm.sinequa.com/normalize-package-data/-/normalize-package-data-6.0.2.tgz", + "integrity": "sha512-V6gygoYb/5EmNI+MEGrWkC+e6+Rr7mTmfHrxDbLzxQogBkgzo76rkok0Am6thgSF7Mv2nLOajAJj5vDJZEFn7g==", "dev": true, + "license": "BSD-2-Clause", "dependencies": { "hosted-git-info": "^7.0.0", - "is-core-module": "^2.8.1", "semver": "^7.3.5", "validate-npm-package-license": "^3.0.4" }, @@ -9319,27 +9751,30 @@ }, "node_modules/normalize-path": { "version": "3.0.0", - "resolved": "https://npm.sinequa.com:4873/normalize-path/-/normalize-path-3.0.0.tgz", + "resolved": "https://npm.sinequa.com/normalize-path/-/normalize-path-3.0.0.tgz", "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", "dev": true, + "license": "MIT", "engines": { "node": ">=0.10.0" } }, "node_modules/normalize-range": { "version": "0.1.2", - "resolved": "https://npm.sinequa.com:4873/normalize-range/-/normalize-range-0.1.2.tgz", + "resolved": "https://npm.sinequa.com/normalize-range/-/normalize-range-0.1.2.tgz", "integrity": "sha1-LRDAa9/TEuqXd2laTShDlFa3WUI=", "dev": true, + "license": "MIT", "engines": { "node": ">=0.10.0" } }, "node_modules/npm-bundled": { "version": "3.0.1", - "resolved": "https://npm.sinequa.com:4873/npm-bundled/-/npm-bundled-3.0.1.tgz", + "resolved": "https://npm.sinequa.com/npm-bundled/-/npm-bundled-3.0.1.tgz", "integrity": "sha512-+AvaheE/ww1JEwRHOrn4WHNzOxGtVp+adrg2AeZS/7KuxGUYFuBta98wYpfHBbJp6Tg6j1NKSEVHNcfZzJHQwQ==", "dev": true, + "license": "ISC", "dependencies": { "npm-normalize-package-bin": "^3.0.0" }, @@ -9349,9 +9784,10 @@ }, "node_modules/npm-install-checks": { "version": "6.3.0", - "resolved": "https://npm.sinequa.com:4873/npm-install-checks/-/npm-install-checks-6.3.0.tgz", + "resolved": "https://npm.sinequa.com/npm-install-checks/-/npm-install-checks-6.3.0.tgz", "integrity": "sha512-W29RiK/xtpCGqn6f3ixfRYGk+zRyr+Ew9F2E20BfXxT5/euLdA/Nm7fO7OeTGuAmTs30cpgInyJ0cYe708YTZw==", "dev": true, + "license": "BSD-2-Clause", "dependencies": { "semver": "^7.1.1" }, @@ -9361,9 +9797,10 @@ }, "node_modules/npm-normalize-package-bin": { "version": "3.0.1", - "resolved": "https://npm.sinequa.com:4873/npm-normalize-package-bin/-/npm-normalize-package-bin-3.0.1.tgz", + "resolved": "https://npm.sinequa.com/npm-normalize-package-bin/-/npm-normalize-package-bin-3.0.1.tgz", "integrity": "sha512-dMxCf+zZ+3zeQZXKxmyuCKlIDPGuv8EF940xbkC4kQVDTtqoh6rJFO+JTKSA6/Rwi0getWmtuy4Itup0AMcaDQ==", "dev": true, + "license": "ISC", "engines": { "node": "^14.17.0 || ^16.13.0 || >=18.0.0" } @@ -9373,6 +9810,7 @@ "resolved": "https://npm.sinequa.com/npm-package-arg/-/npm-package-arg-11.0.3.tgz", "integrity": "sha512-sHGJy8sOC1YraBywpzQlIKBE4pBbGbiF95U6Auspzyem956E0+FtDtsx1ZxlOJkQCZ1AFXAY/yuvtFYrOxF+Bw==", "dev": true, + "license": "ISC", "dependencies": { "hosted-git-info": "^7.0.0", "proc-log": "^4.0.0", @@ -9385,9 +9823,10 @@ }, "node_modules/npm-packlist": { "version": "8.0.2", - "resolved": "https://npm.sinequa.com:4873/npm-packlist/-/npm-packlist-8.0.2.tgz", + "resolved": "https://npm.sinequa.com/npm-packlist/-/npm-packlist-8.0.2.tgz", "integrity": "sha512-shYrPFIS/JLP4oQmAwDyk5HcyysKW8/JLTEA32S0Z5TzvpaeeX2yMFfoK1fjEBnCBvVyIB/Jj/GBFdm0wsgzbA==", "dev": true, + "license": "ISC", "dependencies": { "ignore-walk": "^6.0.4" }, @@ -9400,6 +9839,7 @@ "resolved": "https://npm.sinequa.com/npm-pick-manifest/-/npm-pick-manifest-9.1.0.tgz", "integrity": "sha512-nkc+3pIIhqHVQr085X9d2JzPzLyjzQS96zbruppqC9aZRm/x8xx6xhI98gHtsfELP2bE+loHq8ZaHFHhe+NauA==", "dev": true, + "license": "ISC", "dependencies": { "npm-install-checks": "^6.0.0", "npm-normalize-package-bin": "^3.0.0", @@ -9411,16 +9851,17 @@ } }, "node_modules/npm-registry-fetch": { - "version": "17.0.1", - "resolved": "https://npm.sinequa.com:4873/npm-registry-fetch/-/npm-registry-fetch-17.0.1.tgz", - "integrity": "sha512-fLu9MTdZTlJAHUek/VLklE6EpIiP3VZpTiuN7OOMCt2Sd67NCpSEetMaxHHEZiZxllp8ZLsUpvbEszqTFEc+wA==", + "version": "17.1.0", + "resolved": "https://npm.sinequa.com/npm-registry-fetch/-/npm-registry-fetch-17.1.0.tgz", + "integrity": "sha512-5+bKQRH0J1xG1uZ1zMNvxW0VEyoNWgJpY9UDuluPFLKDfJ9u2JmmjmTJV1srBGQOROfdBMiVvnH2Zvpbm+xkVA==", "dev": true, + "license": "ISC", "dependencies": { "@npmcli/redact": "^2.0.0", + "jsonparse": "^1.3.1", "make-fetch-happen": "^13.0.0", "minipass": "^7.0.2", "minipass-fetch": "^3.0.0", - "minipass-json-stream": "^1.0.1", "minizlib": "^2.1.2", "npm-package-arg": "^11.0.0", "proc-log": "^4.0.0" @@ -9431,9 +9872,10 @@ }, "node_modules/npm-run-path": { "version": "4.0.1", - "resolved": "https://npm.sinequa.com:4873/npm-run-path/-/npm-run-path-4.0.1.tgz", + "resolved": "https://npm.sinequa.com/npm-run-path/-/npm-run-path-4.0.1.tgz", "integrity": "sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==", "dev": true, + "license": "MIT", "dependencies": { "path-key": "^3.0.0" }, @@ -9446,6 +9888,7 @@ "resolved": "https://npm.sinequa.com/nth-check/-/nth-check-2.1.1.tgz", "integrity": "sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w==", "dev": true, + "license": "BSD-2-Clause", "dependencies": { "boolbase": "^1.0.0" }, @@ -9455,27 +9898,30 @@ }, "node_modules/object-assign": { "version": "4.1.1", - "resolved": "https://npm.sinequa.com:4873/object-assign/-/object-assign-4.1.1.tgz", + "resolved": "https://npm.sinequa.com/object-assign/-/object-assign-4.1.1.tgz", "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=", "dev": true, + "license": "MIT", "engines": { "node": ">=0.10.0" } }, "node_modules/object-hash": { "version": "3.0.0", - "resolved": "https://npm.sinequa.com:4873/object-hash/-/object-hash-3.0.0.tgz", + "resolved": "https://npm.sinequa.com/object-hash/-/object-hash-3.0.0.tgz", "integrity": "sha512-RSn9F68PjH9HqtltsSnqYC1XXoWe9Bju5+213R98cNGttag9q9yAOTzdbsqvIa7aNm5WffBZFpWYr2aWrklWAw==", "dev": true, + "license": "MIT", "engines": { "node": ">= 6" } }, "node_modules/object-inspect": { - "version": "1.13.2", - "resolved": "https://npm.sinequa.com/object-inspect/-/object-inspect-1.13.2.tgz", - "integrity": "sha512-IRZSRuzJiynemAXPYtPe5BoI/RESNYR7TYm50MC5Mqbd3Jmw5y790sErYw3V6SryFJD64b74qQQs9wn5Bg/k3g==", + "version": "1.13.3", + "resolved": "https://npm.sinequa.com/object-inspect/-/object-inspect-1.13.3.tgz", + "integrity": "sha512-kDCGIbxkDSXE3euJZZXzc6to7fCrKHNI/hSRQnRuQ+BWjFNzZwiFF8fj/6o2t2G9/jTj8PSIYTfCLelLZEeRpA==", "dev": true, + "license": "MIT", "engines": { "node": ">= 0.4" }, @@ -9485,15 +9931,17 @@ }, "node_modules/obuf": { "version": "1.1.2", - "resolved": "https://npm.sinequa.com:4873/obuf/-/obuf-1.1.2.tgz", + "resolved": "https://npm.sinequa.com/obuf/-/obuf-1.1.2.tgz", "integrity": "sha512-PX1wu0AmAdPqOL1mWhqmlOd8kOIZQwGZw6rh7uby9fTc5lhaOWFLX3I6R1hrF9k3zUY40e6igsLGkDXK92LJNg==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/on-finished": { "version": "2.4.1", - "resolved": "https://npm.sinequa.com:4873/on-finished/-/on-finished-2.4.1.tgz", + "resolved": "https://npm.sinequa.com/on-finished/-/on-finished-2.4.1.tgz", "integrity": "sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==", "dev": true, + "license": "MIT", "dependencies": { "ee-first": "1.1.1" }, @@ -9503,30 +9951,34 @@ }, "node_modules/on-headers": { "version": "1.0.2", - "resolved": "https://npm.sinequa.com:4873/on-headers/-/on-headers-1.0.2.tgz", + "resolved": "https://npm.sinequa.com/on-headers/-/on-headers-1.0.2.tgz", "integrity": "sha512-pZAE+FJLoyITytdqK0U5s+FIpjN0JP3OzFi/u8Rx+EV5/W+JTWGXG8xFzevE7AjBfDqHv/8vL8qQsIhHnqRkrA==", "dev": true, + "license": "MIT", "engines": { "node": ">= 0.8" } }, "node_modules/once": { "version": "1.4.0", - "resolved": "https://npm.sinequa.com:4873/once/-/once-1.4.0.tgz", + "resolved": "https://npm.sinequa.com/once/-/once-1.4.0.tgz", "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", + "license": "ISC", "dependencies": { "wrappy": "1" } }, "node_modules/onetime": { - "version": "5.1.2", - "resolved": "https://npm.sinequa.com:4873/onetime/-/onetime-5.1.2.tgz", - "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==", + "version": "7.0.0", + "resolved": "https://npm.sinequa.com/onetime/-/onetime-7.0.0.tgz", + "integrity": "sha512-VXJjc87FScF88uafS3JllDgvAm+c/Slfz06lorj2uAY34rlUu0Nt+v8wreiImcrgAjjIHp1rXpTDlLOGw29WwQ==", + "dev": true, + "license": "MIT", "dependencies": { - "mimic-fn": "^2.1.0" + "mimic-function": "^5.0.0" }, "engines": { - "node": ">=6" + "node": ">=18" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" @@ -9537,6 +9989,7 @@ "resolved": "https://npm.sinequa.com/open/-/open-10.1.0.tgz", "integrity": "sha512-mnkeQ1qP5Ue2wd+aivTD3NHd/lZ96Lu0jgf0pwktLPtx6cTZiH7tyeGRRHs0zX0rbrahXPnXlUnbeXyaBBuIaw==", "dev": true, + "license": "MIT", "dependencies": { "default-browser": "^5.2.1", "define-lazy-prop": "^3.0.0", @@ -9552,8 +10005,9 @@ }, "node_modules/ora": { "version": "5.4.1", - "resolved": "https://npm.sinequa.com:4873/ora/-/ora-5.4.1.tgz", + "resolved": "https://npm.sinequa.com/ora/-/ora-5.4.1.tgz", "integrity": "sha512-5b6Y85tPxZZ7QytO+BQzysW31HJku27cRIlkbAXaNx+BdcVi+LlRFmVXzeF6a7JCwJpyw5c4b+YSVImQIrBpuQ==", + "license": "MIT", "dependencies": { "bl": "^4.1.0", "chalk": "^4.1.0", @@ -9572,90 +10026,107 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/ora/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://npm.sinequa.com:4873/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "node_modules/ora/node_modules/cli-cursor": { + "version": "3.1.0", + "resolved": "https://npm.sinequa.com/cli-cursor/-/cli-cursor-3.1.0.tgz", + "integrity": "sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw==", + "license": "MIT", "dependencies": { - "color-convert": "^2.0.1" + "restore-cursor": "^3.1.0" }, "engines": { "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, - "node_modules/ora/node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://npm.sinequa.com:4873/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "node_modules/ora/node_modules/onetime": { + "version": "5.1.2", + "resolved": "https://npm.sinequa.com/onetime/-/onetime-5.1.2.tgz", + "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==", + "license": "MIT", "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" + "mimic-fn": "^2.1.0" }, "engines": { - "node": ">=10" + "node": ">=6" }, "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/ora/node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://npm.sinequa.com:4873/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "node_modules/ora/node_modules/restore-cursor": { + "version": "3.1.0", + "resolved": "https://npm.sinequa.com/restore-cursor/-/restore-cursor-3.1.0.tgz", + "integrity": "sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA==", + "license": "MIT", "dependencies": { - "color-name": "~1.1.4" + "onetime": "^5.1.0", + "signal-exit": "^3.0.2" }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/ora/node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://npm.sinequa.com:4873/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" - }, - "node_modules/ora/node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://npm.sinequa.com:4873/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", "engines": { "node": ">=8" } }, - "node_modules/ora/node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://npm.sinequa.com:4873/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } + "node_modules/ora/node_modules/signal-exit": { + "version": "3.0.7", + "resolved": "https://npm.sinequa.com/signal-exit/-/signal-exit-3.0.7.tgz", + "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==", + "license": "ISC" }, "node_modules/ordered-binary": { "version": "1.5.3", "resolved": "https://npm.sinequa.com/ordered-binary/-/ordered-binary-1.5.3.tgz", "integrity": "sha512-oGFr3T+pYdTGJ+YFEILMpS3es+GiIbs9h/XQrclBXUtd44ey7XwfsMzM31f64I1SQOawDoDr/D823kNCADI8TA==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/os-tmpdir": { "version": "1.0.2", "resolved": "https://npm.sinequa.com/os-tmpdir/-/os-tmpdir-1.0.2.tgz", "integrity": "sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ=", "dev": true, + "license": "MIT", "engines": { "node": ">=0.10.0" } }, + "node_modules/p-limit": { + "version": "4.0.0", + "resolved": "https://npm.sinequa.com/p-limit/-/p-limit-4.0.0.tgz", + "integrity": "sha512-5b0R4txpzjPWVw/cXXUResoD4hb6U/x9BH08L7nw+GN1sezDzPdxeRvpc9c433fZhBan/wusjbCsqwqm4EIBIQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "yocto-queue": "^1.0.0" + }, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/p-locate": { + "version": "6.0.0", + "resolved": "https://npm.sinequa.com/p-locate/-/p-locate-6.0.0.tgz", + "integrity": "sha512-wPrq66Llhl7/4AGC6I+cqxT07LhXvWL08LNXz1fENOw0Ap4sRZZ/gZpTTJ5jpurzzzfS2W/Ge9BY3LgLjCShcw==", + "dev": true, + "license": "MIT", + "dependencies": { + "p-limit": "^4.0.0" + }, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/p-map": { "version": "4.0.0", - "resolved": "https://npm.sinequa.com:4873/p-map/-/p-map-4.0.0.tgz", + "resolved": "https://npm.sinequa.com/p-map/-/p-map-4.0.0.tgz", "integrity": "sha512-/bjOqmgETBYB5BoEeGVea8dmvHb2m9GLy1E9W43yeyfP6QQCZGFNa+XRceJEuDB6zqr+gKpIAmlLebMpykw/MQ==", "dev": true, + "license": "MIT", "dependencies": { "aggregate-error": "^3.0.0" }, @@ -9667,10 +10138,11 @@ } }, "node_modules/p-retry": { - "version": "6.2.0", - "resolved": "https://npm.sinequa.com:4873/p-retry/-/p-retry-6.2.0.tgz", - "integrity": "sha512-JA6nkq6hKyWLLasXQXUrO4z8BUZGUt/LjlJxx8Gb2+2ntodU/SS63YZ8b0LUTbQ8ZB9iwOfhEPhg4ykKnn2KsA==", + "version": "6.2.1", + "resolved": "https://npm.sinequa.com/p-retry/-/p-retry-6.2.1.tgz", + "integrity": "sha512-hEt02O4hUct5wtwg4H4KcWgDdm+l1bOaEy/hWzd8xtXB9BqxTWBBhb+2ImAtH4Cv4rPjV76xN3Zumqk3k3AhhQ==", "dev": true, + "license": "MIT", "dependencies": { "@types/retry": "0.12.2", "is-network-error": "^1.0.0", @@ -9685,18 +10157,26 @@ }, "node_modules/p-retry/node_modules/retry": { "version": "0.13.1", - "resolved": "https://npm.sinequa.com:4873/retry/-/retry-0.13.1.tgz", + "resolved": "https://npm.sinequa.com/retry/-/retry-0.13.1.tgz", "integrity": "sha512-XQBQ3I8W1Cge0Seh+6gjj03LbmRFWuoszgK9ooCpwYIrhhoO80pfq4cUkU5DkknwfOfFteRwlZ56PYOGYyFWdg==", "dev": true, + "license": "MIT", "engines": { "node": ">= 4" } }, + "node_modules/package-json-from-dist": { + "version": "1.0.1", + "resolved": "https://npm.sinequa.com/package-json-from-dist/-/package-json-from-dist-1.0.1.tgz", + "integrity": "sha512-UEZIS3/by4OC8vL3P2dTXRETpebLI2NiI5vIrjaD/5UtrkFX/tNbwjTSRAGC/+7CAo2pIcBaRgWmcBBHcsaCIw==", + "license": "BlueOak-1.0.0" + }, "node_modules/pacote": { "version": "18.0.6", - "resolved": "https://npm.sinequa.com:4873/pacote/-/pacote-18.0.6.tgz", + "resolved": "https://npm.sinequa.com/pacote/-/pacote-18.0.6.tgz", "integrity": "sha512-+eK3G27SMwsB8kLIuj4h1FUhHtwiEUo21Tw8wNjmvdlpOEr613edv+8FUsTj/4F/VN5ywGE19X18N7CC2EJk6A==", "dev": true, + "license": "ISC", "dependencies": { "@npmcli/git": "^5.0.0", "@npmcli/installed-package-contents": "^2.0.1", @@ -9725,8 +10205,9 @@ }, "node_modules/parent-module": { "version": "1.0.1", - "resolved": "https://npm.sinequa.com:4873/parent-module/-/parent-module-1.0.1.tgz", + "resolved": "https://npm.sinequa.com/parent-module/-/parent-module-1.0.1.tgz", "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==", + "license": "MIT", "dependencies": { "callsites": "^3.0.0" }, @@ -9736,8 +10217,9 @@ }, "node_modules/parse-json": { "version": "5.2.0", - "resolved": "https://npm.sinequa.com:4873/parse-json/-/parse-json-5.2.0.tgz", + "resolved": "https://npm.sinequa.com/parse-json/-/parse-json-5.2.0.tgz", "integrity": "sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==", + "license": "MIT", "dependencies": { "@babel/code-frame": "^7.0.0", "error-ex": "^1.3.1", @@ -9753,25 +10235,28 @@ }, "node_modules/parse-json/node_modules/json-parse-even-better-errors": { "version": "2.3.1", - "resolved": "https://npm.sinequa.com:4873/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz", - "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==" + "resolved": "https://npm.sinequa.com/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz", + "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==", + "license": "MIT" }, "node_modules/parse-node-version": { "version": "1.0.1", - "resolved": "https://npm.sinequa.com:4873/parse-node-version/-/parse-node-version-1.0.1.tgz", + "resolved": "https://npm.sinequa.com/parse-node-version/-/parse-node-version-1.0.1.tgz", "integrity": "sha512-3YHlOa/JgH6Mnpr05jP9eDG254US9ek25LyIxZlDItp2iJtwyaXQb57lBYLdT3MowkUFYEV2XXNAYIPlESvJlA==", "dev": true, + "license": "MIT", "engines": { "node": ">= 0.10" } }, "node_modules/parse5": { - "version": "7.1.2", - "resolved": "https://npm.sinequa.com:4873/parse5/-/parse5-7.1.2.tgz", - "integrity": "sha512-Czj1WaSVpaoj0wbhMzLmWD69anp2WH7FXMB9n1Sy8/ZFF9jolSQVMu1Ij5WIyGmcBmhk7EOndpO4mIpihVqAXw==", + "version": "7.2.1", + "resolved": "https://npm.sinequa.com/parse5/-/parse5-7.2.1.tgz", + "integrity": "sha512-BuBYQYlv1ckiPdQi/ohiivi9Sagc9JG+Ozs0r7b/0iK3sKmrb0b9FdWdBbOdx6hBCM/F9Ir82ofnBhtZOjCRPQ==", "devOptional": true, + "license": "MIT", "dependencies": { - "entities": "^4.4.0" + "entities": "^4.5.0" }, "funding": { "url": "https://github.com/inikulin/parse5?sponsor=1" @@ -9782,6 +10267,7 @@ "resolved": "https://npm.sinequa.com/parse5-html-rewriting-stream/-/parse5-html-rewriting-stream-7.0.0.tgz", "integrity": "sha512-mazCyGWkmCRWDI15Zp+UiCqMp/0dgEmkZRvhlsqqKYr4SsVm/TvnSpD9fCvqCA2zoWJcfRym846ejWBBHRiYEg==", "dev": true, + "license": "MIT", "dependencies": { "entities": "^4.3.0", "parse5": "^7.0.0", @@ -9796,6 +10282,7 @@ "resolved": "https://npm.sinequa.com/parse5-sax-parser/-/parse5-sax-parser-7.0.0.tgz", "integrity": "sha512-5A+v2SNsq8T6/mG3ahcz8ZtQ0OUFTatxPbeidoMB7tkJSGDY3tdfl4MHovtLQHkEn5CGxijNWRQHhRQ6IRpXKg==", "dev": true, + "license": "MIT", "dependencies": { "parse5": "^7.0.0" }, @@ -9805,31 +10292,45 @@ }, "node_modules/parseurl": { "version": "1.3.3", - "resolved": "https://npm.sinequa.com:4873/parseurl/-/parseurl-1.3.3.tgz", + "resolved": "https://npm.sinequa.com/parseurl/-/parseurl-1.3.3.tgz", "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==", "dev": true, + "license": "MIT", "engines": { "node": ">= 0.8" } }, + "node_modules/path-exists": { + "version": "5.0.0", + "resolved": "https://npm.sinequa.com/path-exists/-/path-exists-5.0.0.tgz", + "integrity": "sha512-RjhtfwJOxzcFmNOi6ltcbcu4Iu+FL3zEj83dk4kAS+fVpTxXLO1b38RvJgT/0QwvV/L3aY9TAnyv0EOqW4GoMQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + } + }, "node_modules/path-key": { "version": "3.1.1", - "resolved": "https://npm.sinequa.com:4873/path-key/-/path-key-3.1.1.tgz", + "resolved": "https://npm.sinequa.com/path-key/-/path-key-3.1.1.tgz", "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", + "license": "MIT", "engines": { "node": ">=8" } }, "node_modules/path-parse": { "version": "1.0.7", - "resolved": "https://npm.sinequa.com:4873/path-parse/-/path-parse-1.0.7.tgz", + "resolved": "https://npm.sinequa.com/path-parse/-/path-parse-1.0.7.tgz", "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/path-scurry": { "version": "1.11.1", - "resolved": "https://npm.sinequa.com:4873/path-scurry/-/path-scurry-1.11.1.tgz", + "resolved": "https://npm.sinequa.com/path-scurry/-/path-scurry-1.11.1.tgz", "integrity": "sha512-Xa4Nw17FS9ApQFJ9umLiJS4orGjm7ZzwUrwamcGQuHSzDyth9boKDaycYdDcZDuqYATXw4HFXgaqWTctW/v1HA==", + "license": "BlueOak-1.0.0", "dependencies": { "lru-cache": "^10.2.0", "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0" @@ -9842,37 +10343,38 @@ } }, "node_modules/path-scurry/node_modules/lru-cache": { - "version": "10.2.2", - "resolved": "https://npm.sinequa.com:4873/lru-cache/-/lru-cache-10.2.2.tgz", - "integrity": "sha512-9hp3Vp2/hFQUiIwKo8XCeFVnrg8Pk3TYNPIR7tJADKi5YfcF7vEaK7avFHTlSy3kOKYaJQaalfEo6YuXdceBOQ==", - "engines": { - "node": "14 || >=16.14" - } + "version": "10.4.3", + "resolved": "https://npm.sinequa.com/lru-cache/-/lru-cache-10.4.3.tgz", + "integrity": "sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==", + "license": "ISC" }, "node_modules/path-to-regexp": { - "version": "0.1.10", - "resolved": "https://npm.sinequa.com/path-to-regexp/-/path-to-regexp-0.1.10.tgz", - "integrity": "sha512-7lf7qcQidTku0Gu3YDPc8DJ1q7OOucfa/BSsIwjuh56VU7katFvuM8hULfkwB3Fns/rsVF7PwPKVw1sl5KQS9w==", - "dev": true + "version": "0.1.12", + "resolved": "https://npm.sinequa.com/path-to-regexp/-/path-to-regexp-0.1.12.tgz", + "integrity": "sha512-RA1GjUVMnvYFxuqovrEqZoxxW5NUZqbwKtYz/Tt7nXerk0LbLblQmrsgdeOxV5SFHf0UDggjS/bSeOZwt1pmEQ==", + "dev": true, + "license": "MIT" }, "node_modules/path-type": { "version": "4.0.0", - "resolved": "https://npm.sinequa.com:4873/path-type/-/path-type-4.0.0.tgz", + "resolved": "https://npm.sinequa.com/path-type/-/path-type-4.0.0.tgz", "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==", + "license": "MIT", "engines": { "node": ">=8" } }, "node_modules/picocolors": { - "version": "1.1.0", - "resolved": "https://npm.sinequa.com/picocolors/-/picocolors-1.1.0.tgz", - "integrity": "sha512-TQ92mBOW0l3LeMeyLV6mzy/kWr8lkd/hp3mTg7wYK7zJhuBStmGMBG0BdeDZS/dZx1IukaX6Bk11zcln25o1Aw==" + "version": "1.1.1", + "resolved": "https://npm.sinequa.com/picocolors/-/picocolors-1.1.1.tgz", + "integrity": "sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==", + "license": "ISC" }, "node_modules/picomatch": { "version": "4.0.2", - "resolved": "https://npm.sinequa.com:4873/picomatch/-/picomatch-4.0.2.tgz", + "resolved": "https://npm.sinequa.com/picomatch/-/picomatch-4.0.2.tgz", "integrity": "sha512-M7BAV6Rlcy5u+m6oPhAPFgJTzAioX/6B0DxyvDlo9l8+T3nLKbrczg2WLUyzd45L8RqfUMyGPzekbMvX2Ldkwg==", - "dev": true, + "license": "MIT", "engines": { "node": ">=12" }, @@ -9882,9 +10384,10 @@ }, "node_modules/pify": { "version": "4.0.1", - "resolved": "https://npm.sinequa.com:4873/pify/-/pify-4.0.1.tgz", + "resolved": "https://npm.sinequa.com/pify/-/pify-4.0.1.tgz", "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==", "dev": true, + "license": "MIT", "optional": true, "engines": { "node": ">=6" @@ -9892,9 +10395,10 @@ }, "node_modules/pirates": { "version": "4.0.6", - "resolved": "https://npm.sinequa.com:4873/pirates/-/pirates-4.0.6.tgz", + "resolved": "https://npm.sinequa.com/pirates/-/pirates-4.0.6.tgz", "integrity": "sha512-saLsH7WeYYPiD25LDuLRRY/i+6HaPYr6G1OUlN39otzkSTxKnubR9RTxS3/Kk50s1g2JTgFwWQDQyplC5/SHZg==", "dev": true, + "license": "MIT", "engines": { "node": ">= 6" } @@ -9904,15 +10408,17 @@ "resolved": "https://npm.sinequa.com/piscina/-/piscina-4.6.1.tgz", "integrity": "sha512-z30AwWGtQE+Apr+2WBZensP2lIvwoaMcOPkQlIEmSGMJNUvaYACylPYrQM6wSdUNJlnDVMSpLv7xTMJqlVshOA==", "dev": true, + "license": "MIT", "optionalDependencies": { "nice-napi": "^1.0.2" } }, "node_modules/pkg-dir": { "version": "7.0.0", - "resolved": "https://npm.sinequa.com:4873/pkg-dir/-/pkg-dir-7.0.0.tgz", + "resolved": "https://npm.sinequa.com/pkg-dir/-/pkg-dir-7.0.0.tgz", "integrity": "sha512-Ie9z/WINcxxLp27BKOCHGde4ITq9UklYKDzVo1nhk5sqGEXU3FpkwP5GM2voTGJkGd9B3Otl+Q4uwSOeSUtOBA==", "dev": true, + "license": "MIT", "dependencies": { "find-up": "^6.3.0" }, @@ -9923,143 +10429,76 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/pkg-dir/node_modules/find-up": { - "version": "6.3.0", - "resolved": "https://npm.sinequa.com:4873/find-up/-/find-up-6.3.0.tgz", - "integrity": "sha512-v2ZsoEuVHYy8ZIlYqwPe/39Cy+cFDzp4dXPaxNvkEuouymu+2Jbz0PxpKarJHYJTmv2HWT3O382qY8l4jMWthw==", + "node_modules/postcss": { + "version": "8.5.1", + "resolved": "https://npm.sinequa.com/postcss/-/postcss-8.5.1.tgz", + "integrity": "sha512-6oz2beyjc5VMn/KV1pPw8fliQkhBXrVn1Z3TVyqZxU8kZpzEKhBdmCFqI6ZbmGtamQvQGuU1sgPTk8ZrXDD7jQ==", "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/postcss" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", "dependencies": { - "locate-path": "^7.1.0", - "path-exists": "^5.0.0" + "nanoid": "^3.3.8", + "picocolors": "^1.1.1", + "source-map-js": "^1.2.1" }, "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "node": "^10 || ^12 || >=14" } }, - "node_modules/pkg-dir/node_modules/locate-path": { - "version": "7.2.0", - "resolved": "https://npm.sinequa.com:4873/locate-path/-/locate-path-7.2.0.tgz", - "integrity": "sha512-gvVijfZvn7R+2qyPX8mAuKcFGDf6Nc61GdvGafQsHL0sBIxfKzA+usWn4GFC/bk+QdwPUD4kWFJLhElipq+0VA==", + "node_modules/postcss-import": { + "version": "15.1.0", + "resolved": "https://npm.sinequa.com/postcss-import/-/postcss-import-15.1.0.tgz", + "integrity": "sha512-hpr+J05B2FVYUAXHeK1YyI267J/dDDhMU6B6civm8hSY1jYJnBXxzKDKDswzJmtLHryrjhnDjqqp/49t8FALew==", "dev": true, + "license": "MIT", "dependencies": { - "p-locate": "^6.0.0" + "postcss-value-parser": "^4.0.0", + "read-cache": "^1.0.0", + "resolve": "^1.1.7" }, "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + "node": ">=14.0.0" }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "peerDependencies": { + "postcss": "^8.0.0" } }, - "node_modules/pkg-dir/node_modules/p-limit": { - "version": "4.0.0", - "resolved": "https://npm.sinequa.com:4873/p-limit/-/p-limit-4.0.0.tgz", - "integrity": "sha512-5b0R4txpzjPWVw/cXXUResoD4hb6U/x9BH08L7nw+GN1sezDzPdxeRvpc9c433fZhBan/wusjbCsqwqm4EIBIQ==", + "node_modules/postcss-js": { + "version": "4.0.1", + "resolved": "https://npm.sinequa.com/postcss-js/-/postcss-js-4.0.1.tgz", + "integrity": "sha512-dDLF8pEO191hJMtlHFPRa8xsizHaM82MLfNkUHdUtVEV3tgTp5oj+8qbEqYM57SLfc74KSbw//4SeJma2LRVIw==", "dev": true, + "license": "MIT", "dependencies": { - "yocto-queue": "^1.0.0" + "camelcase-css": "^2.0.1" }, "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + "node": "^12 || ^14 || >= 16" }, "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/pkg-dir/node_modules/p-locate": { - "version": "6.0.0", - "resolved": "https://npm.sinequa.com:4873/p-locate/-/p-locate-6.0.0.tgz", - "integrity": "sha512-wPrq66Llhl7/4AGC6I+cqxT07LhXvWL08LNXz1fENOw0Ap4sRZZ/gZpTTJ5jpurzzzfS2W/Ge9BY3LgLjCShcw==", - "dev": true, - "dependencies": { - "p-limit": "^4.0.0" - }, - "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/pkg-dir/node_modules/path-exists": { - "version": "5.0.0", - "resolved": "https://npm.sinequa.com:4873/path-exists/-/path-exists-5.0.0.tgz", - "integrity": "sha512-RjhtfwJOxzcFmNOi6ltcbcu4Iu+FL3zEj83dk4kAS+fVpTxXLO1b38RvJgT/0QwvV/L3aY9TAnyv0EOqW4GoMQ==", - "dev": true, - "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" - } - }, - "node_modules/postcss": { - "version": "8.4.41", - "resolved": "https://npm.sinequa.com/postcss/-/postcss-8.4.41.tgz", - "integrity": "sha512-TesUflQ0WKZqAvg52PWL6kHgLKP6xB6heTOdoYM0Wt2UHyxNa4K25EZZMgKns3BH1RLVbZCREPpLY0rhnNoHVQ==", - "dev": true, - "funding": [ - { - "type": "opencollective", - "url": "https://opencollective.com/postcss/" - }, - { - "type": "tidelift", - "url": "https://tidelift.com/funding/github/npm/postcss" - }, - { - "type": "github", - "url": "https://github.com/sponsors/ai" - } - ], - "dependencies": { - "nanoid": "^3.3.7", - "picocolors": "^1.0.1", - "source-map-js": "^1.2.0" - }, - "engines": { - "node": "^10 || ^12 || >=14" - } - }, - "node_modules/postcss-import": { - "version": "15.1.0", - "resolved": "https://npm.sinequa.com:4873/postcss-import/-/postcss-import-15.1.0.tgz", - "integrity": "sha512-hpr+J05B2FVYUAXHeK1YyI267J/dDDhMU6B6civm8hSY1jYJnBXxzKDKDswzJmtLHryrjhnDjqqp/49t8FALew==", - "dev": true, - "dependencies": { - "postcss-value-parser": "^4.0.0", - "read-cache": "^1.0.0", - "resolve": "^1.1.7" - }, - "engines": { - "node": ">=14.0.0" - }, - "peerDependencies": { - "postcss": "^8.0.0" - } - }, - "node_modules/postcss-js": { - "version": "4.0.1", - "resolved": "https://npm.sinequa.com:4873/postcss-js/-/postcss-js-4.0.1.tgz", - "integrity": "sha512-dDLF8pEO191hJMtlHFPRa8xsizHaM82MLfNkUHdUtVEV3tgTp5oj+8qbEqYM57SLfc74KSbw//4SeJma2LRVIw==", - "dev": true, - "dependencies": { - "camelcase-css": "^2.0.1" - }, - "engines": { - "node": "^12 || ^14 || >= 16" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/postcss/" - }, - "peerDependencies": { - "postcss": "^8.4.21" + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + "peerDependencies": { + "postcss": "^8.4.21" } }, "node_modules/postcss-load-config": { "version": "4.0.2", - "resolved": "https://npm.sinequa.com:4873/postcss-load-config/-/postcss-load-config-4.0.2.tgz", + "resolved": "https://npm.sinequa.com/postcss-load-config/-/postcss-load-config-4.0.2.tgz", "integrity": "sha512-bSVhyJGL00wMVoPUzAVAnbEoWyqRxkjv64tUl427SKnPrENtq6hJwUojroMz2VB+Q1edmi4IfrAPpami5VVgMQ==", "dev": true, "funding": [ @@ -10072,6 +10511,7 @@ "url": "https://github.com/sponsors/ai" } ], + "license": "MIT", "dependencies": { "lilconfig": "^3.0.0", "yaml": "^2.3.4" @@ -10092,23 +10532,12 @@ } } }, - "node_modules/postcss-load-config/node_modules/lilconfig": { - "version": "3.1.1", - "resolved": "https://npm.sinequa.com:4873/lilconfig/-/lilconfig-3.1.1.tgz", - "integrity": "sha512-O18pf7nyvHTckunPWCV1XUNXU1piu01y2b7ATJ0ppkUkk8ocqVWBrYjJBCwHDjD/ZWcfyrA0P4gKhzWGi5EINQ==", - "dev": true, - "engines": { - "node": ">=14" - }, - "funding": { - "url": "https://github.com/sponsors/antonk52" - } - }, "node_modules/postcss-loader": { "version": "8.1.1", - "resolved": "https://npm.sinequa.com:4873/postcss-loader/-/postcss-loader-8.1.1.tgz", + "resolved": "https://npm.sinequa.com/postcss-loader/-/postcss-loader-8.1.1.tgz", "integrity": "sha512-0IeqyAsG6tYiDRCYKQJLAmgQr47DX6N7sFSWvQxt6AcupX8DIdmykuk/o/tx0Lze3ErGHJEp5OSRxrelC6+NdQ==", "dev": true, + "license": "MIT", "dependencies": { "cosmiconfig": "^9.0.0", "jiti": "^1.20.0", @@ -10135,17 +10564,46 @@ } } }, + "node_modules/postcss-loader/node_modules/cosmiconfig": { + "version": "9.0.0", + "resolved": "https://npm.sinequa.com/cosmiconfig/-/cosmiconfig-9.0.0.tgz", + "integrity": "sha512-itvL5h8RETACmOTFc4UfIyB2RfEHi71Ax6E/PivVxq9NseKbOWpeyHEOIbmAw1rs8Ak0VursQNww7lf7YtUwzg==", + "dev": true, + "license": "MIT", + "dependencies": { + "env-paths": "^2.2.1", + "import-fresh": "^3.3.0", + "js-yaml": "^4.1.0", + "parse-json": "^5.2.0" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/d-fischer" + }, + "peerDependencies": { + "typescript": ">=4.9.5" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, "node_modules/postcss-media-query-parser": { "version": "0.2.3", "resolved": "https://npm.sinequa.com/postcss-media-query-parser/-/postcss-media-query-parser-0.2.3.tgz", "integrity": "sha512-3sOlxmbKcSHMjlUXQZKQ06jOswE7oVkXPxmZdoB1r5l0q6gTFTQSHxNxOrCccElbW7dxNytifNEo8qidX2Vsig==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/postcss-modules-extract-imports": { "version": "3.1.0", "resolved": "https://npm.sinequa.com/postcss-modules-extract-imports/-/postcss-modules-extract-imports-3.1.0.tgz", "integrity": "sha512-k3kNe0aNFQDAZGbin48pL2VNidTF0w4/eASDsxlyspobzU3wZQLOGj7L9gfRe0Jo9/4uud09DsjFNH7winGv8Q==", "dev": true, + "license": "ISC", "engines": { "node": "^10 || ^12 || >= 14" }, @@ -10154,13 +10612,14 @@ } }, "node_modules/postcss-modules-local-by-default": { - "version": "4.0.5", - "resolved": "https://npm.sinequa.com/postcss-modules-local-by-default/-/postcss-modules-local-by-default-4.0.5.tgz", - "integrity": "sha512-6MieY7sIfTK0hYfafw1OMEG+2bg8Q1ocHCpoWLqOKj3JXlKu4G7btkmM/B7lFubYkYWmRSPLZi5chid63ZaZYw==", + "version": "4.2.0", + "resolved": "https://npm.sinequa.com/postcss-modules-local-by-default/-/postcss-modules-local-by-default-4.2.0.tgz", + "integrity": "sha512-5kcJm/zk+GJDSfw+V/42fJ5fhjL5YbFDl8nVdXkJPLLW+Vf9mTD5Xe0wqIaDnLuL2U6cDNpTr+UQ+v2HWIBhzw==", "dev": true, + "license": "MIT", "dependencies": { "icss-utils": "^5.0.0", - "postcss-selector-parser": "^6.0.2", + "postcss-selector-parser": "^7.0.0", "postcss-value-parser": "^4.1.0" }, "engines": { @@ -10171,12 +10630,13 @@ } }, "node_modules/postcss-modules-scope": { - "version": "3.2.0", - "resolved": "https://npm.sinequa.com/postcss-modules-scope/-/postcss-modules-scope-3.2.0.tgz", - "integrity": "sha512-oq+g1ssrsZOsx9M96c5w8laRmvEu9C3adDSjI8oTcbfkrTE8hx/zfyobUoWIxaKPO8bt6S62kxpw5GqypEw1QQ==", + "version": "3.2.1", + "resolved": "https://npm.sinequa.com/postcss-modules-scope/-/postcss-modules-scope-3.2.1.tgz", + "integrity": "sha512-m9jZstCVaqGjTAuny8MdgE88scJnCiQSlSrOWcTQgM2t32UBe+MUmFSO5t7VMSfAf/FJKImAxBav8ooCHJXCJA==", "dev": true, + "license": "ISC", "dependencies": { - "postcss-selector-parser": "^6.0.4" + "postcss-selector-parser": "^7.0.0" }, "engines": { "node": "^10 || ^12 || >= 14" @@ -10190,6 +10650,7 @@ "resolved": "https://npm.sinequa.com/postcss-modules-values/-/postcss-modules-values-4.0.0.tgz", "integrity": "sha512-RDxHkAiEGI78gS2ofyvCsu7iycRv7oqw5xMWn9iMoR0N/7mf9D50ecQqUo5BZ9Zh2vH4bCUR/ktCqbB9m8vJjQ==", "dev": true, + "license": "ISC", "dependencies": { "icss-utils": "^5.0.0" }, @@ -10201,29 +10662,51 @@ } }, "node_modules/postcss-nested": { - "version": "6.0.1", - "resolved": "https://npm.sinequa.com:4873/postcss-nested/-/postcss-nested-6.0.1.tgz", - "integrity": "sha512-mEp4xPMi5bSWiMbsgoPfcP74lsWLHkQbZc3sY+jWYd65CUwXrUaTp0fmNpa01ZcETKlIgUdFN/MpS2xZtqL9dQ==", + "version": "6.2.0", + "resolved": "https://npm.sinequa.com/postcss-nested/-/postcss-nested-6.2.0.tgz", + "integrity": "sha512-HQbt28KulC5AJzG+cZtj9kvKB93CFCdLvog1WFLf1D+xmMvPGlBstkpTEZfK5+AN9hfJocyBFCNiqyS48bpgzQ==", "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", "dependencies": { - "postcss-selector-parser": "^6.0.11" + "postcss-selector-parser": "^6.1.1" }, "engines": { "node": ">=12.0" }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/postcss/" - }, "peerDependencies": { "postcss": "^8.2.14" } }, + "node_modules/postcss-nested/node_modules/postcss-selector-parser": { + "version": "6.1.2", + "resolved": "https://npm.sinequa.com/postcss-selector-parser/-/postcss-selector-parser-6.1.2.tgz", + "integrity": "sha512-Q8qQfPiZ+THO/3ZrOrO0cJJKfpYCagtMUkXbnEfmgUjwXg6z/WBeOyS9APBBPCTSiDV+s4SwQGu8yFsiMRIudg==", + "dev": true, + "license": "MIT", + "dependencies": { + "cssesc": "^3.0.0", + "util-deprecate": "^1.0.2" + }, + "engines": { + "node": ">=4" + } + }, "node_modules/postcss-selector-parser": { - "version": "6.1.0", - "resolved": "https://npm.sinequa.com:4873/postcss-selector-parser/-/postcss-selector-parser-6.1.0.tgz", - "integrity": "sha512-UMz42UD0UY0EApS0ZL9o1XnLhSTtvvvLe5Dc2H2O56fvRZi+KulDyf5ctDhhtYJBGKStV2FL1fy6253cmLgqVQ==", + "version": "7.0.0", + "resolved": "https://npm.sinequa.com/postcss-selector-parser/-/postcss-selector-parser-7.0.0.tgz", + "integrity": "sha512-9RbEr1Y7FFfptd/1eEdntyjMwLeghW1bHX9GWjXo19vx4ytPQhANltvVxDggzJl7mnWM+dX28kb6cyS/4iQjlQ==", "dev": true, + "license": "MIT", "dependencies": { "cssesc": "^3.0.0", "util-deprecate": "^1.0.2" @@ -10234,36 +10717,41 @@ }, "node_modules/postcss-value-parser": { "version": "4.2.0", - "resolved": "https://npm.sinequa.com:4873/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz", + "resolved": "https://npm.sinequa.com/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz", "integrity": "sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/proc-log": { "version": "4.2.0", - "resolved": "https://npm.sinequa.com:4873/proc-log/-/proc-log-4.2.0.tgz", + "resolved": "https://npm.sinequa.com/proc-log/-/proc-log-4.2.0.tgz", "integrity": "sha512-g8+OnU/L2v+wyiVK+D5fA34J7EH8jZ8DDlvwhRCMxmMj7UCBvxiO1mGeN+36JXIKF4zevU4kRBd8lVgG9vLelA==", "dev": true, + "license": "ISC", "engines": { "node": "^14.17.0 || ^16.13.0 || >=18.0.0" } }, "node_modules/process-nextick-args": { "version": "2.0.1", - "resolved": "https://npm.sinequa.com:4873/process-nextick-args/-/process-nextick-args-2.0.1.tgz", + "resolved": "https://npm.sinequa.com/process-nextick-args/-/process-nextick-args-2.0.1.tgz", "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/promise-inflight": { "version": "1.0.1", - "resolved": "https://npm.sinequa.com:4873/promise-inflight/-/promise-inflight-1.0.1.tgz", + "resolved": "https://npm.sinequa.com/promise-inflight/-/promise-inflight-1.0.1.tgz", "integrity": "sha1-mEcocL8igTL8vdhoEputEsPAKeM=", - "dev": true + "dev": true, + "license": "ISC" }, "node_modules/promise-retry": { "version": "2.0.1", - "resolved": "https://npm.sinequa.com:4873/promise-retry/-/promise-retry-2.0.1.tgz", + "resolved": "https://npm.sinequa.com/promise-retry/-/promise-retry-2.0.1.tgz", "integrity": "sha512-y+WKFlBR8BGXnsNlIHFGPZmyDf3DFMoLhaflAnyZgV6rG6xu+JwesTo2Q9R6XwYmtmwAFCkAk3e35jEdoeh/3g==", "dev": true, + "license": "MIT", "dependencies": { "err-code": "^2.0.2", "retry": "^0.12.0" @@ -10274,9 +10762,10 @@ }, "node_modules/proxy-addr": { "version": "2.0.7", - "resolved": "https://npm.sinequa.com:4873/proxy-addr/-/proxy-addr-2.0.7.tgz", + "resolved": "https://npm.sinequa.com/proxy-addr/-/proxy-addr-2.0.7.tgz", "integrity": "sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==", "dev": true, + "license": "MIT", "dependencies": { "forwarded": "0.2.0", "ipaddr.js": "1.9.1" @@ -10287,29 +10776,39 @@ }, "node_modules/proxy-addr/node_modules/ipaddr.js": { "version": "1.9.1", - "resolved": "https://npm.sinequa.com:4873/ipaddr.js/-/ipaddr.js-1.9.1.tgz", + "resolved": "https://npm.sinequa.com/ipaddr.js/-/ipaddr.js-1.9.1.tgz", "integrity": "sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==", "dev": true, + "license": "MIT", "engines": { "node": ">= 0.10" } }, "node_modules/prr": { "version": "1.0.1", - "resolved": "https://npm.sinequa.com:4873/prr/-/prr-1.0.1.tgz", + "resolved": "https://npm.sinequa.com/prr/-/prr-1.0.1.tgz", "integrity": "sha1-0/wRS6BplaRexok/SEzrHXj19HY=", "dev": true, + "license": "MIT", "optional": true }, "node_modules/psl": { - "version": "1.9.0", - "resolved": "https://npm.sinequa.com:4873/psl/-/psl-1.9.0.tgz", - "integrity": "sha512-E/ZsdU4HLs/68gYzgGTkMicWTLPdAftJLfJFlLUAAKZGkStNU72sZjT66SnMDVOfOWY/YAoiD7Jxa9iHvngcag==" + "version": "1.15.0", + "resolved": "https://npm.sinequa.com/psl/-/psl-1.15.0.tgz", + "integrity": "sha512-JZd3gMVBAVQkSs6HdNZo9Sdo0LNcQeMNP3CozBJb3JYC/QUYZTnKxP+f8oWRX4rHP5EurWxqAHTSwUCjlNKa1w==", + "license": "MIT", + "dependencies": { + "punycode": "^2.3.1" + }, + "funding": { + "url": "https://github.com/sponsors/lupomontero" + } }, "node_modules/punycode": { "version": "2.3.1", - "resolved": "https://npm.sinequa.com:4873/punycode/-/punycode-2.3.1.tgz", + "resolved": "https://npm.sinequa.com/punycode/-/punycode-2.3.1.tgz", "integrity": "sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==", + "license": "MIT", "engines": { "node": ">=6" } @@ -10319,6 +10818,7 @@ "resolved": "https://npm.sinequa.com/qs/-/qs-6.13.0.tgz", "integrity": "sha512-+38qI9SOr8tfZ4QmJNplMUxqjbe7LKvvZgWdExBOmd+egZTtjLB67Gu0HRX3u/XOq7UU2Nx6nsjvS16Z9uwfpg==", "dev": true, + "license": "BSD-3-Clause", "dependencies": { "side-channel": "^1.0.6" }, @@ -10331,12 +10831,13 @@ }, "node_modules/querystringify": { "version": "2.2.0", - "resolved": "https://npm.sinequa.com:4873/querystringify/-/querystringify-2.2.0.tgz", - "integrity": "sha512-FIqgj2EUvTa7R50u0rGsyTftzjYmv/a3hO345bZNrqabNqjtgiDMgmo4mkUjd+nzU5oF3dClKqFIPUKybUyqoQ==" + "resolved": "https://npm.sinequa.com/querystringify/-/querystringify-2.2.0.tgz", + "integrity": "sha512-FIqgj2EUvTa7R50u0rGsyTftzjYmv/a3hO345bZNrqabNqjtgiDMgmo4mkUjd+nzU5oF3dClKqFIPUKybUyqoQ==", + "license": "MIT" }, "node_modules/queue-microtask": { "version": "1.2.3", - "resolved": "https://npm.sinequa.com:4873/queue-microtask/-/queue-microtask-1.2.3.tgz", + "resolved": "https://npm.sinequa.com/queue-microtask/-/queue-microtask-1.2.3.tgz", "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", "dev": true, "funding": [ @@ -10352,22 +10853,25 @@ "type": "consulting", "url": "https://feross.org/support" } - ] + ], + "license": "MIT" }, "node_modules/randombytes": { "version": "2.1.0", "resolved": "https://npm.sinequa.com/randombytes/-/randombytes-2.1.0.tgz", "integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==", "dev": true, + "license": "MIT", "dependencies": { "safe-buffer": "^5.1.0" } }, "node_modules/range-parser": { "version": "1.2.1", - "resolved": "https://npm.sinequa.com:4873/range-parser/-/range-parser-1.2.1.tgz", + "resolved": "https://npm.sinequa.com/range-parser/-/range-parser-1.2.1.tgz", "integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==", "dev": true, + "license": "MIT", "engines": { "node": ">= 0.6" } @@ -10377,6 +10881,7 @@ "resolved": "https://npm.sinequa.com/raw-body/-/raw-body-2.5.2.tgz", "integrity": "sha512-8zGqypfENjCIqGhgXToC8aB2r7YrBX+AQAfIPs/Mlk+BtPTztOvTS01NRW/3Eh60J+a48lt8qsCzirQ6loCVfA==", "dev": true, + "license": "MIT", "dependencies": { "bytes": "3.1.2", "http-errors": "2.0.0", @@ -10387,37 +10892,31 @@ "node": ">= 0.8" } }, - "node_modules/raw-body/node_modules/bytes": { - "version": "3.1.2", - "resolved": "https://npm.sinequa.com/bytes/-/bytes-3.1.2.tgz", - "integrity": "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==", - "dev": true, - "engines": { - "node": ">= 0.8" - } - }, "node_modules/read-cache": { "version": "1.0.0", - "resolved": "https://npm.sinequa.com:4873/read-cache/-/read-cache-1.0.0.tgz", + "resolved": "https://npm.sinequa.com/read-cache/-/read-cache-1.0.0.tgz", "integrity": "sha1-5mTvMRYRZsl1HNvo28+GtftY93Q=", "dev": true, + "license": "MIT", "dependencies": { "pify": "^2.3.0" } }, "node_modules/read-cache/node_modules/pify": { "version": "2.3.0", - "resolved": "https://npm.sinequa.com:4873/pify/-/pify-2.3.0.tgz", + "resolved": "https://npm.sinequa.com/pify/-/pify-2.3.0.tgz", "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=", "dev": true, + "license": "MIT", "engines": { "node": ">=0.10.0" } }, "node_modules/readable-stream": { "version": "3.6.2", - "resolved": "https://npm.sinequa.com:4873/readable-stream/-/readable-stream-3.6.2.tgz", + "resolved": "https://npm.sinequa.com/readable-stream/-/readable-stream-3.6.2.tgz", "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==", + "license": "MIT", "dependencies": { "inherits": "^2.0.3", "string_decoder": "^1.1.1", @@ -10428,46 +10927,39 @@ } }, "node_modules/readdirp": { - "version": "3.6.0", - "resolved": "https://npm.sinequa.com:4873/readdirp/-/readdirp-3.6.0.tgz", - "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", - "dev": true, - "dependencies": { - "picomatch": "^2.2.1" - }, - "engines": { - "node": ">=8.10.0" - } - }, - "node_modules/readdirp/node_modules/picomatch": { - "version": "2.3.1", - "resolved": "https://npm.sinequa.com:4873/picomatch/-/picomatch-2.3.1.tgz", - "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", + "version": "4.1.1", + "resolved": "https://npm.sinequa.com/readdirp/-/readdirp-4.1.1.tgz", + "integrity": "sha512-h80JrZu/MHUZCyHu5ciuoI0+WxsCxzxJTILn6Fs8rxSnFPh+UVHYfeIxK1nVGugMqkfC4vJcBOYbkfkwYK0+gw==", "dev": true, + "license": "MIT", "engines": { - "node": ">=8.6" + "node": ">= 14.18.0" }, "funding": { - "url": "https://github.com/sponsors/jonschlinkert" + "type": "individual", + "url": "https://paulmillr.com/funding/" } }, "node_modules/reflect-metadata": { "version": "0.2.2", - "resolved": "https://npm.sinequa.com:4873/reflect-metadata/-/reflect-metadata-0.2.2.tgz", + "resolved": "https://npm.sinequa.com/reflect-metadata/-/reflect-metadata-0.2.2.tgz", "integrity": "sha512-urBwgfrvVP/eAyXx4hluJivBKzuEbSQs9rKWCrCkbSxNv8mxPcUZKeuoF3Uy4mJl3Lwprp6yy5/39VWigZ4K6Q==", - "dev": true + "dev": true, + "license": "Apache-2.0" }, "node_modules/regenerate": { "version": "1.4.2", "resolved": "https://npm.sinequa.com/regenerate/-/regenerate-1.4.2.tgz", "integrity": "sha512-zrceR/XhGYU/d/opr2EKO7aRHUeiBI8qjtfHqADTwZd6Szfy16la6kqD0MIUs5z5hx6AaKa+PixpPrR289+I0A==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/regenerate-unicode-properties": { "version": "10.2.0", "resolved": "https://npm.sinequa.com/regenerate-unicode-properties/-/regenerate-unicode-properties-10.2.0.tgz", "integrity": "sha512-DqHn3DwbmmPVzeKj9woBadqmXxLvQoQIwu7nopMc72ztvxVmVk2SBhSnx67zuye5TP+lJsb/TBQsjLKhnDf3MA==", "dev": true, + "license": "MIT", "dependencies": { "regenerate": "^1.4.2" }, @@ -10477,35 +10969,39 @@ }, "node_modules/regenerator-runtime": { "version": "0.14.1", - "resolved": "https://npm.sinequa.com:4873/regenerator-runtime/-/regenerator-runtime-0.14.1.tgz", + "resolved": "https://npm.sinequa.com/regenerator-runtime/-/regenerator-runtime-0.14.1.tgz", "integrity": "sha512-dYnhHh0nJoMfnkZs6GmmhFknAGRrLznOu5nc9ML+EJxGvrx6H7teuevqVqCuPcPK//3eDrrjQhehXVx9cnkGdw==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/regenerator-transform": { "version": "0.15.2", "resolved": "https://npm.sinequa.com/regenerator-transform/-/regenerator-transform-0.15.2.tgz", "integrity": "sha512-hfMp2BoF0qOk3uc5V20ALGDS2ddjQaLrdl7xrGXvAIow7qeWRM2VA2HuCHkUKk9slq3VwEwLNK3DFBqDfPGYtg==", "dev": true, + "license": "MIT", "dependencies": { "@babel/runtime": "^7.8.4" } }, "node_modules/regex-parser": { "version": "2.3.0", - "resolved": "https://npm.sinequa.com:4873/regex-parser/-/regex-parser-2.3.0.tgz", + "resolved": "https://npm.sinequa.com/regex-parser/-/regex-parser-2.3.0.tgz", "integrity": "sha512-TVILVSz2jY5D47F4mA4MppkBrafEaiUWJO/TcZHEIuI13AqoZMkK1WMA4Om1YkYbTx+9Ki1/tSUXbceyr9saRg==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/regexpu-core": { - "version": "5.3.2", - "resolved": "https://npm.sinequa.com/regexpu-core/-/regexpu-core-5.3.2.tgz", - "integrity": "sha512-RAM5FlZz+Lhmo7db9L298p2vHP5ZywrVXmVXpmAD9GuL5MPH6t9ROw1iA/wfHkQ76Qe7AaPF0nGuim96/IrQMQ==", + "version": "6.2.0", + "resolved": "https://npm.sinequa.com/regexpu-core/-/regexpu-core-6.2.0.tgz", + "integrity": "sha512-H66BPQMrv+V16t8xtmq+UC0CBpiTBA60V8ibS1QVReIp8T1z8hwFxqcGzm9K6lgsN7sB5edVH8a+ze6Fqm4weA==", "dev": true, + "license": "MIT", "dependencies": { - "@babel/regjsgen": "^0.8.0", "regenerate": "^1.4.2", - "regenerate-unicode-properties": "^10.1.0", - "regjsparser": "^0.9.1", + "regenerate-unicode-properties": "^10.2.0", + "regjsgen": "^0.8.0", + "regjsparser": "^0.12.0", "unicode-match-property-ecmascript": "^2.0.0", "unicode-match-property-value-ecmascript": "^2.1.0" }, @@ -10513,31 +11009,44 @@ "node": ">=4" } }, + "node_modules/regjsgen": { + "version": "0.8.0", + "resolved": "https://npm.sinequa.com/regjsgen/-/regjsgen-0.8.0.tgz", + "integrity": "sha512-RvwtGe3d7LvWiDQXeQw8p5asZUmfU1G/l6WbUXeHta7Y2PEIvBTwH6E2EfmYUK8pxcxEdEmaomqyp0vZZ7C+3Q==", + "dev": true, + "license": "MIT" + }, "node_modules/regjsparser": { - "version": "0.9.1", - "resolved": "https://npm.sinequa.com/regjsparser/-/regjsparser-0.9.1.tgz", - "integrity": "sha512-dQUtn90WanSNl+7mQKcXAgZxvUe7Z0SqXlgzv0za4LwiUhyzBC58yQO3liFoUgu8GiJVInAhJjkj1N0EtQ5nkQ==", + "version": "0.12.0", + "resolved": "https://npm.sinequa.com/regjsparser/-/regjsparser-0.12.0.tgz", + "integrity": "sha512-cnE+y8bz4NhMjISKbgeVJtqNbtf5QpjZP+Bslo+UqkIt9QPnX9q095eiRRASJG1/tz6dlNr6Z5NsBiWYokp6EQ==", "dev": true, + "license": "BSD-2-Clause", "dependencies": { - "jsesc": "~0.5.0" + "jsesc": "~3.0.2" }, "bin": { "regjsparser": "bin/parser" } }, "node_modules/regjsparser/node_modules/jsesc": { - "version": "0.5.0", - "resolved": "https://npm.sinequa.com/jsesc/-/jsesc-0.5.0.tgz", - "integrity": "sha1-597mbjXW/Bb3EP6R1c9p9w8IkR0=", + "version": "3.0.2", + "resolved": "https://npm.sinequa.com/jsesc/-/jsesc-3.0.2.tgz", + "integrity": "sha512-xKqzzWXDttJuOcawBt4KnKHHIf5oQ/Cxax+0PWFG+DFDgHNAdi+TXECADI+RYiFUMmx8792xsMbbgXj4CwnP4g==", "dev": true, + "license": "MIT", "bin": { "jsesc": "bin/jsesc" + }, + "engines": { + "node": ">=6" } }, "node_modules/replace-in-file": { "version": "7.2.0", - "resolved": "https://npm.sinequa.com:4873/replace-in-file/-/replace-in-file-7.2.0.tgz", + "resolved": "https://npm.sinequa.com/replace-in-file/-/replace-in-file-7.2.0.tgz", "integrity": "sha512-CiLXVop3o8/h2Kd1PwKPPimmS9wUV0Ki6Fl8+1ITD35nB3Gl/PrW5IONpTE0AXk0z4v8WYcpEpdeZqMXvSnWpg==", + "license": "MIT", "dependencies": { "chalk": "^4.1.2", "glob": "^8.1.0", @@ -10550,55 +11059,11 @@ "node": ">=10" } }, - "node_modules/replace-in-file/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://npm.sinequa.com:4873/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/replace-in-file/node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://npm.sinequa.com:4873/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, - "node_modules/replace-in-file/node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://npm.sinequa.com:4873/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/replace-in-file/node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://npm.sinequa.com:4873/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" - }, "node_modules/replace-in-file/node_modules/glob": { "version": "8.1.0", - "resolved": "https://npm.sinequa.com:4873/glob/-/glob-8.1.0.tgz", + "resolved": "https://npm.sinequa.com/glob/-/glob-8.1.0.tgz", "integrity": "sha512-r8hpEjiQEYlF2QU0df3dS+nxxSIreXQS1qRhMJM0Q5NDdR386C7jb7Hwwod8Fgiuex+k0GFjgft18yvxm5XoCQ==", + "license": "ISC", "dependencies": { "fs.realpath": "^1.0.0", "inflight": "^1.0.4", @@ -10613,18 +11078,11 @@ "url": "https://github.com/sponsors/isaacs" } }, - "node_modules/replace-in-file/node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://npm.sinequa.com:4873/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "engines": { - "node": ">=8" - } - }, "node_modules/replace-in-file/node_modules/minimatch": { "version": "5.1.6", - "resolved": "https://npm.sinequa.com:4873/minimatch/-/minimatch-5.1.6.tgz", + "resolved": "https://npm.sinequa.com/minimatch/-/minimatch-5.1.6.tgz", "integrity": "sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==", + "license": "ISC", "dependencies": { "brace-expansion": "^2.0.1" }, @@ -10632,44 +11090,36 @@ "node": ">=10" } }, - "node_modules/replace-in-file/node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://npm.sinequa.com:4873/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, "node_modules/require-directory": { "version": "2.1.1", - "resolved": "https://npm.sinequa.com:4873/require-directory/-/require-directory-2.1.1.tgz", + "resolved": "https://npm.sinequa.com/require-directory/-/require-directory-2.1.1.tgz", "integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I=", + "license": "MIT", "engines": { "node": ">=0.10.0" } }, "node_modules/require-from-string": { "version": "2.0.2", - "resolved": "https://npm.sinequa.com:4873/require-from-string/-/require-from-string-2.0.2.tgz", + "resolved": "https://npm.sinequa.com/require-from-string/-/require-from-string-2.0.2.tgz", "integrity": "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==", - "dev": true, + "license": "MIT", "engines": { "node": ">=0.10.0" } }, "node_modules/requires-port": { "version": "1.0.0", - "resolved": "https://npm.sinequa.com:4873/requires-port/-/requires-port-1.0.0.tgz", - "integrity": "sha1-kl0mAdOaxIXgkc8NpcbmlNw9yv8=" + "resolved": "https://npm.sinequa.com/requires-port/-/requires-port-1.0.0.tgz", + "integrity": "sha1-kl0mAdOaxIXgkc8NpcbmlNw9yv8=", + "license": "MIT" }, "node_modules/resolve": { "version": "1.22.8", - "resolved": "https://npm.sinequa.com:4873/resolve/-/resolve-1.22.8.tgz", + "resolved": "https://npm.sinequa.com/resolve/-/resolve-1.22.8.tgz", "integrity": "sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==", "dev": true, + "license": "MIT", "dependencies": { "is-core-module": "^2.13.0", "path-parse": "^1.0.7", @@ -10682,11 +11132,21 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/resolve-from": { + "version": "4.0.0", + "resolved": "https://npm.sinequa.com/resolve-from/-/resolve-from-4.0.0.tgz", + "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", + "license": "MIT", + "engines": { + "node": ">=4" + } + }, "node_modules/resolve-url-loader": { "version": "5.0.0", - "resolved": "https://npm.sinequa.com:4873/resolve-url-loader/-/resolve-url-loader-5.0.0.tgz", + "resolved": "https://npm.sinequa.com/resolve-url-loader/-/resolve-url-loader-5.0.0.tgz", "integrity": "sha512-uZtduh8/8srhBoMx//5bwqjQ+rfYOUq8zC9NrMUGtjBiGTtFJM42s58/36+hTqeqINcnYe08Nj3LkK9lW4N8Xg==", "dev": true, + "license": "MIT", "dependencies": { "adjust-sourcemap-loader": "^4.0.0", "convert-source-map": "^1.7.0", @@ -10700,9 +11160,10 @@ }, "node_modules/resolve-url-loader/node_modules/loader-utils": { "version": "2.0.4", - "resolved": "https://npm.sinequa.com:4873/loader-utils/-/loader-utils-2.0.4.tgz", + "resolved": "https://npm.sinequa.com/loader-utils/-/loader-utils-2.0.4.tgz", "integrity": "sha512-xXqpXoINfFhgua9xiqD8fPFHgkoq1mmmpE92WlDbm9rNRd/EbRb+Gqf908T2DMfuHjjJlksiK2RbHVOdD/MqSw==", "dev": true, + "license": "MIT", "dependencies": { "big.js": "^5.2.2", "emojis-list": "^3.0.0", @@ -10714,44 +11175,47 @@ }, "node_modules/resolve-url-loader/node_modules/source-map": { "version": "0.6.1", - "resolved": "https://npm.sinequa.com:4873/source-map/-/source-map-0.6.1.tgz", + "resolved": "https://npm.sinequa.com/source-map/-/source-map-0.6.1.tgz", "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", "dev": true, + "license": "BSD-3-Clause", "engines": { "node": ">=0.10.0" } }, "node_modules/restore-cursor": { - "version": "3.1.0", - "resolved": "https://npm.sinequa.com:4873/restore-cursor/-/restore-cursor-3.1.0.tgz", - "integrity": "sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA==", + "version": "5.1.0", + "resolved": "https://npm.sinequa.com/restore-cursor/-/restore-cursor-5.1.0.tgz", + "integrity": "sha512-oMA2dcrw6u0YfxJQXm342bFKX/E4sG9rbTzO9ptUcR/e8A33cHuvStiYOwH7fszkZlZ1z/ta9AAoPk2F4qIOHA==", + "dev": true, + "license": "MIT", "dependencies": { - "onetime": "^5.1.0", - "signal-exit": "^3.0.2" + "onetime": "^7.0.0", + "signal-exit": "^4.1.0" }, "engines": { - "node": ">=8" + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/restore-cursor/node_modules/signal-exit": { - "version": "3.0.7", - "resolved": "https://npm.sinequa.com:4873/signal-exit/-/signal-exit-3.0.7.tgz", - "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==" - }, "node_modules/retry": { "version": "0.12.0", - "resolved": "https://npm.sinequa.com:4873/retry/-/retry-0.12.0.tgz", + "resolved": "https://npm.sinequa.com/retry/-/retry-0.12.0.tgz", "integrity": "sha1-G0KmJmoh8HQh0bC1S33BZ7AcATs=", "dev": true, + "license": "MIT", "engines": { "node": ">= 4" } }, "node_modules/reusify": { "version": "1.0.4", - "resolved": "https://npm.sinequa.com:4873/reusify/-/reusify-1.0.4.tgz", + "resolved": "https://npm.sinequa.com/reusify/-/reusify-1.0.4.tgz", "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==", "dev": true, + "license": "MIT", "engines": { "iojs": ">=1.0.0", "node": ">=0.10.0" @@ -10761,22 +11225,21 @@ "version": "1.4.1", "resolved": "https://npm.sinequa.com/rfdc/-/rfdc-1.4.1.tgz", "integrity": "sha512-q1b3N5QkRUWUl7iyylaaj3kOpIT0N2i9MqIEQXP73GVsN9cw3fdx8X63cEmWhJGi2PPCF23Ijp7ktmd39rawIA==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/rimraf": { - "version": "5.0.7", - "resolved": "https://npm.sinequa.com:4873/rimraf/-/rimraf-5.0.7.tgz", - "integrity": "sha512-nV6YcJo5wbLW77m+8KjH8aB/7/rxQy9SZ0HY5shnwULfS+9nmTtVXAJET5NdZmCzA4fPI/Hm1wo/Po/4mopOdg==", + "version": "5.0.10", + "resolved": "https://npm.sinequa.com/rimraf/-/rimraf-5.0.10.tgz", + "integrity": "sha512-l0OE8wL34P4nJH/H2ffoaniAokM2qSmrtXHmlpvYr5AVVX8msAyW0l8NVJFDxlSK4u3Uh/f41cQheDVdnYijwQ==", "dev": true, + "license": "ISC", "dependencies": { "glob": "^10.3.7" }, "bin": { "rimraf": "dist/esm/bin.mjs" }, - "engines": { - "node": ">=14.18" - }, "funding": { "url": "https://github.com/sponsors/isaacs" } @@ -10786,6 +11249,7 @@ "resolved": "https://npm.sinequa.com/rollup/-/rollup-4.22.4.tgz", "integrity": "sha512-vD8HJ5raRcWOyymsR6Z3o6+RzfEPCnVLMFJ6vRslO1jt4LO6dUo5Qnpg7y4RkZFM2DMe3WUirkI5c16onjrc6A==", "dev": true, + "license": "MIT", "dependencies": { "@types/estree": "1.0.5" }, @@ -10818,9 +11282,10 @@ }, "node_modules/run-applescript": { "version": "7.0.0", - "resolved": "https://npm.sinequa.com:4873/run-applescript/-/run-applescript-7.0.0.tgz", + "resolved": "https://npm.sinequa.com/run-applescript/-/run-applescript-7.0.0.tgz", "integrity": "sha512-9by4Ij99JUr/MCFBUkDKLWK3G9HVXmabKz9U5MlIAIuvuzkiOicRYs8XJLxX+xahD+mLiiCYDqF9dKAgtzKP1A==", "dev": true, + "license": "MIT", "engines": { "node": ">=18" }, @@ -10830,7 +11295,7 @@ }, "node_modules/run-parallel": { "version": "1.2.0", - "resolved": "https://npm.sinequa.com:4873/run-parallel/-/run-parallel-1.2.0.tgz", + "resolved": "https://npm.sinequa.com/run-parallel/-/run-parallel-1.2.0.tgz", "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", "dev": true, "funding": [ @@ -10847,21 +11312,23 @@ "url": "https://feross.org/support" } ], + "license": "MIT", "dependencies": { "queue-microtask": "^1.2.2" } }, "node_modules/rxjs": { "version": "7.8.1", - "resolved": "https://npm.sinequa.com:4873/rxjs/-/rxjs-7.8.1.tgz", + "resolved": "https://npm.sinequa.com/rxjs/-/rxjs-7.8.1.tgz", "integrity": "sha512-AA3TVj+0A2iuIoQkWEK/tqFjBq2j+6PO6Y0zJcvzLAFhEFIO3HL0vls9hWLncZbAAbK0mar7oZ4V079I/qPMxg==", + "license": "Apache-2.0", "dependencies": { "tslib": "^2.1.0" } }, "node_modules/safe-buffer": { "version": "5.2.1", - "resolved": "https://npm.sinequa.com:4873/safe-buffer/-/safe-buffer-5.2.1.tgz", + "resolved": "https://npm.sinequa.com/safe-buffer/-/safe-buffer-5.2.1.tgz", "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", "funding": [ { @@ -10876,24 +11343,28 @@ "type": "consulting", "url": "https://feross.org/support" } - ] + ], + "license": "MIT" }, "node_modules/safe-identifier": { "version": "0.4.2", - "resolved": "https://npm.sinequa.com:4873/safe-identifier/-/safe-identifier-0.4.2.tgz", - "integrity": "sha512-6pNbSMW6OhAi9j+N8V+U715yBQsaWJ7eyEUaOrawX+isg5ZxhUlV1NipNtgaKHmFGiABwt+ZF04Ii+3Xjkg+8w==" + "resolved": "https://npm.sinequa.com/safe-identifier/-/safe-identifier-0.4.2.tgz", + "integrity": "sha512-6pNbSMW6OhAi9j+N8V+U715yBQsaWJ7eyEUaOrawX+isg5ZxhUlV1NipNtgaKHmFGiABwt+ZF04Ii+3Xjkg+8w==", + "license": "ISC" }, "node_modules/safer-buffer": { "version": "2.1.2", - "resolved": "https://npm.sinequa.com:4873/safer-buffer/-/safer-buffer-2.1.2.tgz", + "resolved": "https://npm.sinequa.com/safer-buffer/-/safer-buffer-2.1.2.tgz", "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/sass": { "version": "1.77.6", "resolved": "https://npm.sinequa.com/sass/-/sass-1.77.6.tgz", "integrity": "sha512-ByXE1oLD79GVq9Ht1PeHWCPMPB8XHpBuz1r85oByKHjZY6qV6rWnQovQzXJXuQ/XyE1Oj3iPk3lo28uzaRA2/Q==", "dev": true, + "license": "MIT", "dependencies": { "chokidar": ">=3.0.0 <4.0.0", "immutable": "^4.0.0", @@ -10911,6 +11382,7 @@ "resolved": "https://npm.sinequa.com/sass-loader/-/sass-loader-16.0.0.tgz", "integrity": "sha512-n13Z+3rU9A177dk4888czcVFiC8CL9dii4qpXWUg3YIIgZEvi9TCFKjOQcbK0kJM7DJu9VucrZFddvNfYCPwtw==", "dev": true, + "license": "MIT", "dependencies": { "neo-async": "^2.6.2" }, @@ -10946,18 +11418,84 @@ } } }, + "node_modules/sass/node_modules/chokidar": { + "version": "3.6.0", + "resolved": "https://npm.sinequa.com/chokidar/-/chokidar-3.6.0.tgz", + "integrity": "sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==", + "dev": true, + "license": "MIT", + "dependencies": { + "anymatch": "~3.1.2", + "braces": "~3.0.2", + "glob-parent": "~5.1.2", + "is-binary-path": "~2.1.0", + "is-glob": "~4.0.1", + "normalize-path": "~3.0.0", + "readdirp": "~3.6.0" + }, + "engines": { + "node": ">= 8.10.0" + }, + "funding": { + "url": "https://paulmillr.com/funding/" + }, + "optionalDependencies": { + "fsevents": "~2.3.2" + } + }, + "node_modules/sass/node_modules/glob-parent": { + "version": "5.1.2", + "resolved": "https://npm.sinequa.com/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "dev": true, + "license": "ISC", + "dependencies": { + "is-glob": "^4.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/sass/node_modules/picomatch": { + "version": "2.3.1", + "resolved": "https://npm.sinequa.com/picomatch/-/picomatch-2.3.1.tgz", + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8.6" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/sass/node_modules/readdirp": { + "version": "3.6.0", + "resolved": "https://npm.sinequa.com/readdirp/-/readdirp-3.6.0.tgz", + "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", + "dev": true, + "license": "MIT", + "dependencies": { + "picomatch": "^2.2.1" + }, + "engines": { + "node": ">=8.10.0" + } + }, "node_modules/sax": { "version": "1.4.1", - "resolved": "https://npm.sinequa.com:4873/sax/-/sax-1.4.1.tgz", + "resolved": "https://npm.sinequa.com/sax/-/sax-1.4.1.tgz", "integrity": "sha512-+aWOz7yVScEGoKNd4PA10LZ8sk0A/z5+nXQG5giUO5rprX9jgYsTdov9qCchZiPIZezbZH+jRut8nPodFAX4Jg==", "dev": true, + "license": "ISC", "optional": true }, "node_modules/schema-utils": { - "version": "4.2.0", - "resolved": "https://npm.sinequa.com:4873/schema-utils/-/schema-utils-4.2.0.tgz", - "integrity": "sha512-L0jRsrPpjdckP3oPug3/VxNKt2trR8TcabrM6FOAAlvC/9Phcmm+cuAgTlxBqdBR1WJx7Naj9WHw+aOmheSVbw==", + "version": "4.3.0", + "resolved": "https://npm.sinequa.com/schema-utils/-/schema-utils-4.3.0.tgz", + "integrity": "sha512-Gf9qqc58SpCA/xdziiHz35F4GNIWYWZrEshUc/G/r5BnLph6xpKuLeoJoQuj5WfBIx/eQLf+hmVPYHaxJu7V2g==", "dev": true, + "license": "MIT", "dependencies": { "@types/json-schema": "^7.0.9", "ajv": "^8.9.0", @@ -10965,7 +11503,7 @@ "ajv-keywords": "^5.1.0" }, "engines": { - "node": ">= 12.13.0" + "node": ">= 10.13.0" }, "funding": { "type": "opencollective", @@ -10974,9 +11512,10 @@ }, "node_modules/schema-utils/node_modules/ajv-formats": { "version": "2.1.1", - "resolved": "https://npm.sinequa.com:4873/ajv-formats/-/ajv-formats-2.1.1.tgz", + "resolved": "https://npm.sinequa.com/ajv-formats/-/ajv-formats-2.1.1.tgz", "integrity": "sha512-Wx0Kx52hxE7C18hkMEggYlEifqWZtYaRgouJor+WMdPnQyEK13vgEWyVNup7SoeeoLMsr4kf5h6dOW11I15MUA==", "dev": true, + "license": "MIT", "dependencies": { "ajv": "^8.0.0" }, @@ -10991,15 +11530,17 @@ }, "node_modules/select-hose": { "version": "2.0.0", - "resolved": "https://npm.sinequa.com:4873/select-hose/-/select-hose-2.0.0.tgz", + "resolved": "https://npm.sinequa.com/select-hose/-/select-hose-2.0.0.tgz", "integrity": "sha1-Yl2GWPhlr0Psliv8N2o3NZpJlMo=", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/selfsigned": { "version": "2.4.1", - "resolved": "https://npm.sinequa.com:4873/selfsigned/-/selfsigned-2.4.1.tgz", + "resolved": "https://npm.sinequa.com/selfsigned/-/selfsigned-2.4.1.tgz", "integrity": "sha512-th5B4L2U+eGLq1TVh7zNRGBapioSORUeymIydxgFpwww9d2qyKvtuPU2jJuHvYAwwqi2Y596QBL3eEqcPEYL8Q==", "dev": true, + "license": "MIT", "dependencies": { "@types/node-forge": "^1.3.0", "node-forge": "^1" @@ -11012,6 +11553,7 @@ "version": "7.6.3", "resolved": "https://npm.sinequa.com/semver/-/semver-7.6.3.tgz", "integrity": "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==", + "license": "ISC", "bin": { "semver": "bin/semver.js" }, @@ -11024,6 +11566,7 @@ "resolved": "https://npm.sinequa.com/send/-/send-0.19.0.tgz", "integrity": "sha512-dW41u5VfLXu8SJh5bwRmyYUbAoSB3c9uQh6L8h/KtsFREPWpbX1lrljJo186Jc4nmci/sGUZ9a0a0J2zgfq2hw==", "dev": true, + "license": "MIT", "dependencies": { "debug": "2.6.9", "depd": "2.0.0", @@ -11048,6 +11591,7 @@ "resolved": "https://npm.sinequa.com/debug/-/debug-2.6.9.tgz", "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", "dev": true, + "license": "MIT", "dependencies": { "ms": "2.0.0" } @@ -11056,13 +11600,15 @@ "version": "2.0.0", "resolved": "https://npm.sinequa.com/ms/-/ms-2.0.0.tgz", "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/send/node_modules/encodeurl": { "version": "1.0.2", "resolved": "https://npm.sinequa.com/encodeurl/-/encodeurl-1.0.2.tgz", "integrity": "sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k=", "dev": true, + "license": "MIT", "engines": { "node": ">= 0.8" } @@ -11072,15 +11618,17 @@ "resolved": "https://npm.sinequa.com/serialize-javascript/-/serialize-javascript-6.0.2.tgz", "integrity": "sha512-Saa1xPByTTq2gdeFZYLLo+RFE35NHZkAbqZeWNd3BpzppeVisAqpDjcp8dyf6uIvEqJRd46jemmyA4iFIeVk8g==", "dev": true, + "license": "BSD-3-Clause", "dependencies": { "randombytes": "^2.1.0" } }, "node_modules/serve-index": { "version": "1.9.1", - "resolved": "https://npm.sinequa.com:4873/serve-index/-/serve-index-1.9.1.tgz", + "resolved": "https://npm.sinequa.com/serve-index/-/serve-index-1.9.1.tgz", "integrity": "sha1-03aNabHn2C5c4FD/9bRTvqEqkjk=", "dev": true, + "license": "MIT", "dependencies": { "accepts": "~1.3.4", "batch": "0.6.1", @@ -11096,27 +11644,30 @@ }, "node_modules/serve-index/node_modules/debug": { "version": "2.6.9", - "resolved": "https://npm.sinequa.com:4873/debug/-/debug-2.6.9.tgz", + "resolved": "https://npm.sinequa.com/debug/-/debug-2.6.9.tgz", "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", "dev": true, + "license": "MIT", "dependencies": { "ms": "2.0.0" } }, "node_modules/serve-index/node_modules/depd": { "version": "1.1.2", - "resolved": "https://npm.sinequa.com:4873/depd/-/depd-1.1.2.tgz", + "resolved": "https://npm.sinequa.com/depd/-/depd-1.1.2.tgz", "integrity": "sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak=", "dev": true, + "license": "MIT", "engines": { "node": ">= 0.6" } }, "node_modules/serve-index/node_modules/http-errors": { "version": "1.6.3", - "resolved": "https://npm.sinequa.com:4873/http-errors/-/http-errors-1.6.3.tgz", + "resolved": "https://npm.sinequa.com/http-errors/-/http-errors-1.6.3.tgz", "integrity": "sha1-i1VoC7S+KDoLW/TqLjhYC+HZMg0=", "dev": true, + "license": "MIT", "dependencies": { "depd": "~1.1.2", "inherits": "2.0.3", @@ -11129,27 +11680,31 @@ }, "node_modules/serve-index/node_modules/inherits": { "version": "2.0.3", - "resolved": "https://npm.sinequa.com:4873/inherits/-/inherits-2.0.3.tgz", + "resolved": "https://npm.sinequa.com/inherits/-/inherits-2.0.3.tgz", "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=", - "dev": true + "dev": true, + "license": "ISC" }, "node_modules/serve-index/node_modules/ms": { "version": "2.0.0", - "resolved": "https://npm.sinequa.com:4873/ms/-/ms-2.0.0.tgz", + "resolved": "https://npm.sinequa.com/ms/-/ms-2.0.0.tgz", "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/serve-index/node_modules/setprototypeof": { "version": "1.1.0", - "resolved": "https://npm.sinequa.com:4873/setprototypeof/-/setprototypeof-1.1.0.tgz", + "resolved": "https://npm.sinequa.com/setprototypeof/-/setprototypeof-1.1.0.tgz", "integrity": "sha512-BvE/TwpZX4FXExxOxZyRGQQv651MSwmWKZGqvmPcRIjDqWub67kTKuIMx43cZZrS/cBBzwBcNDWoFxt2XEFIpQ==", - "dev": true + "dev": true, + "license": "ISC" }, "node_modules/serve-index/node_modules/statuses": { "version": "1.5.0", - "resolved": "https://npm.sinequa.com:4873/statuses/-/statuses-1.5.0.tgz", + "resolved": "https://npm.sinequa.com/statuses/-/statuses-1.5.0.tgz", "integrity": "sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow=", "dev": true, + "license": "MIT", "engines": { "node": ">= 0.6" } @@ -11159,6 +11714,7 @@ "resolved": "https://npm.sinequa.com/serve-static/-/serve-static-1.16.2.tgz", "integrity": "sha512-VqpjJZKadQB/PEbEwvFdO43Ax5dFBZ2UECszz8bQ7pi7wt//PWe1P6MN7eCnjsatYtBT6EuiClbjSWP2WrIoTw==", "dev": true, + "license": "MIT", "dependencies": { "encodeurl": "~2.0.0", "escape-html": "~1.0.3", @@ -11170,38 +11726,24 @@ } }, "node_modules/set-cookie-parser": { - "version": "2.6.0", - "resolved": "https://npm.sinequa.com:4873/set-cookie-parser/-/set-cookie-parser-2.6.0.tgz", - "integrity": "sha512-RVnVQxTXuerk653XfuliOxBP81Sf0+qfQE73LIYKcyMYHG94AuH0kgrQpRDuTZnSmjpysHmzxJXKNfa6PjFhyQ==" - }, - "node_modules/set-function-length": { - "version": "1.2.2", - "resolved": "https://npm.sinequa.com/set-function-length/-/set-function-length-1.2.2.tgz", - "integrity": "sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg==", - "dev": 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" - } + "version": "2.7.1", + "resolved": "https://npm.sinequa.com/set-cookie-parser/-/set-cookie-parser-2.7.1.tgz", + "integrity": "sha512-IOc8uWeOZgnb3ptbCURJWNjWUPcO3ZnTTdzsurqERrP6nPyv+paC55vJM0LpOlT2ne+Ix+9+CRG1MNLlyZ4GjQ==", + "license": "MIT" }, "node_modules/setprototypeof": { "version": "1.2.0", "resolved": "https://npm.sinequa.com/setprototypeof/-/setprototypeof-1.2.0.tgz", "integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==", - "dev": true + "dev": true, + "license": "ISC" }, "node_modules/shallow-clone": { "version": "3.0.1", "resolved": "https://npm.sinequa.com/shallow-clone/-/shallow-clone-3.0.1.tgz", "integrity": "sha512-/6KqX+GVUdqPuPPd2LxDDxzX6CAbjJehAAOKlNpqqUpAqPM6HeL8f+o3a+JsyGjn2lv0WY8UsTgUJjU9Ok55NA==", "dev": true, + "license": "MIT", "dependencies": { "kind-of": "^6.0.2" }, @@ -11211,8 +11753,9 @@ }, "node_modules/shebang-command": { "version": "2.0.0", - "resolved": "https://npm.sinequa.com:4873/shebang-command/-/shebang-command-2.0.0.tgz", + "resolved": "https://npm.sinequa.com/shebang-command/-/shebang-command-2.0.0.tgz", "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", + "license": "MIT", "dependencies": { "shebang-regex": "^3.0.0" }, @@ -11222,31 +11765,94 @@ }, "node_modules/shebang-regex": { "version": "3.0.0", - "resolved": "https://npm.sinequa.com:4873/shebang-regex/-/shebang-regex-3.0.0.tgz", + "resolved": "https://npm.sinequa.com/shebang-regex/-/shebang-regex-3.0.0.tgz", "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", + "license": "MIT", "engines": { "node": ">=8" } }, "node_modules/shell-quote": { - "version": "1.8.1", - "resolved": "https://npm.sinequa.com:4873/shell-quote/-/shell-quote-1.8.1.tgz", - "integrity": "sha512-6j1W9l1iAs/4xYBI1SYOVZyFcCis9b4KCLQ8fgAGG07QvzaRLVVRQvAy85yNmmZSjYjg4MWh4gNvlPujU/5LpA==", + "version": "1.8.2", + "resolved": "https://npm.sinequa.com/shell-quote/-/shell-quote-1.8.2.tgz", + "integrity": "sha512-AzqKpGKjrj7EM6rKVQEPpB288oCfnrEIuyoT9cyF4nmGa7V8Zk6f7RRqYisX8X9m+Q7bd632aZW4ky7EhbQztA==", "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, "funding": { "url": "https://github.com/sponsors/ljharb" } }, "node_modules/side-channel": { - "version": "1.0.6", - "resolved": "https://npm.sinequa.com/side-channel/-/side-channel-1.0.6.tgz", - "integrity": "sha512-fDW/EZ6Q9RiO8eFG8Hj+7u/oW+XrPTIChwCOM2+th2A6OblDtYYIpve9m+KvI9Z4C9qSEXlaGR6bTEYHReuglA==", + "version": "1.1.0", + "resolved": "https://npm.sinequa.com/side-channel/-/side-channel-1.1.0.tgz", + "integrity": "sha512-ZX99e6tRweoUXqR+VBrslhda51Nh5MTQwou5tnUDgbtyM0dBgmhEDtWGP/xbKn6hqfPRHujUNwz5fy/wbbhnpw==", + "dev": true, + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0", + "object-inspect": "^1.13.3", + "side-channel-list": "^1.0.0", + "side-channel-map": "^1.0.1", + "side-channel-weakmap": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/side-channel-list": { + "version": "1.0.0", + "resolved": "https://npm.sinequa.com/side-channel-list/-/side-channel-list-1.0.0.tgz", + "integrity": "sha512-FCLHtRD/gnpCiCHEiJLOwdmFP+wzCmDEkc9y7NsYxeF4u7Btsn1ZuwgwJGxImImHicJArLP4R0yX4c2KCrMrTA==", + "dev": true, + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0", + "object-inspect": "^1.13.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/side-channel-map": { + "version": "1.0.1", + "resolved": "https://npm.sinequa.com/side-channel-map/-/side-channel-map-1.0.1.tgz", + "integrity": "sha512-VCjCNfgMsby3tTdo02nbjtM/ewra6jPHmpThenkTYh8pG9ucZ/1P8So4u4FGBek/BjpOVsDCMoLA/iuBKIFXRA==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.2", + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.5", + "object-inspect": "^1.13.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/side-channel-weakmap": { + "version": "1.0.2", + "resolved": "https://npm.sinequa.com/side-channel-weakmap/-/side-channel-weakmap-1.0.2.tgz", + "integrity": "sha512-WPS/HvHQTYnHisLo9McqBHOJk2FkHO/tlpvldyrnem4aeQp4hai3gythswg6p01oSoTl58rcpiFAjF2br2Ak2A==", "dev": true, + "license": "MIT", "dependencies": { - "call-bind": "^1.0.7", + "call-bound": "^1.0.2", "es-errors": "^1.3.0", - "get-intrinsic": "^1.2.4", - "object-inspect": "^1.13.1" + "get-intrinsic": "^1.2.5", + "object-inspect": "^1.13.3", + "side-channel-map": "^1.0.1" }, "engines": { "node": ">= 0.4" @@ -11257,8 +11863,9 @@ }, "node_modules/signal-exit": { "version": "4.1.0", - "resolved": "https://npm.sinequa.com:4873/signal-exit/-/signal-exit-4.1.0.tgz", + "resolved": "https://npm.sinequa.com/signal-exit/-/signal-exit-4.1.0.tgz", "integrity": "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==", + "license": "ISC", "engines": { "node": ">=14" }, @@ -11268,9 +11875,10 @@ }, "node_modules/sigstore": { "version": "2.3.1", - "resolved": "https://npm.sinequa.com:4873/sigstore/-/sigstore-2.3.1.tgz", + "resolved": "https://npm.sinequa.com/sigstore/-/sigstore-2.3.1.tgz", "integrity": "sha512-8G+/XDU8wNsJOQS5ysDVO0Etg9/2uA5gR9l4ZwijjlwxBcrU6RPfwi2+jJmbP+Ap1Hlp/nVAaEO4Fj22/SL2gQ==", "dev": true, + "license": "Apache-2.0", "dependencies": { "@sigstore/bundle": "^2.3.2", "@sigstore/core": "^1.0.0", @@ -11288,6 +11896,7 @@ "resolved": "https://npm.sinequa.com/slash/-/slash-5.1.0.tgz", "integrity": "sha512-ZA6oR3T/pEyuqwMgAKT0/hAv8oAXckzbkmR0UkUosQ+Mc4RxGoJkRmwHgHufaenlyAgE1Mxgpdcrf75y6XcnDg==", "dev": true, + "license": "MIT", "engines": { "node": ">=14.16" }, @@ -11300,6 +11909,7 @@ "resolved": "https://npm.sinequa.com/slice-ansi/-/slice-ansi-5.0.0.tgz", "integrity": "sha512-FC+lgizVPfie0kkhqUScwRu1O/lF6NOgJmlCgK+/LYxDCTk8sGelYaHDhFcDN+Sn3Cv+3VSa4Byeo+IMCzpMgQ==", "dev": true, + "license": "MIT", "dependencies": { "ansi-styles": "^6.0.0", "is-fullwidth-code-point": "^4.0.0" @@ -11316,6 +11926,7 @@ "resolved": "https://npm.sinequa.com/ansi-styles/-/ansi-styles-6.2.1.tgz", "integrity": "sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==", "dev": true, + "license": "MIT", "engines": { "node": ">=12" }, @@ -11323,23 +11934,12 @@ "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, - "node_modules/slice-ansi/node_modules/is-fullwidth-code-point": { - "version": "4.0.0", - "resolved": "https://npm.sinequa.com/is-fullwidth-code-point/-/is-fullwidth-code-point-4.0.0.tgz", - "integrity": "sha512-O4L094N2/dZ7xqVdrXhh9r1KODPJpFms8B5sGdJLPy664AgvXsreZUyCQQNItZRDlYug4xStLjNp/sz3HvBowQ==", - "dev": true, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/smart-buffer": { "version": "4.2.0", - "resolved": "https://npm.sinequa.com:4873/smart-buffer/-/smart-buffer-4.2.0.tgz", + "resolved": "https://npm.sinequa.com/smart-buffer/-/smart-buffer-4.2.0.tgz", "integrity": "sha512-94hK0Hh8rPqQl2xXc3HsaBoOXKV20MToPkcXvwbISWLEs+64sBq5kFgn2kJDHb1Pry9yrP0dxrCI9RRci7RXKg==", "dev": true, + "license": "MIT", "engines": { "node": ">= 6.0.0", "npm": ">= 3.0.0" @@ -11347,9 +11947,10 @@ }, "node_modules/sockjs": { "version": "0.3.24", - "resolved": "https://npm.sinequa.com:4873/sockjs/-/sockjs-0.3.24.tgz", + "resolved": "https://npm.sinequa.com/sockjs/-/sockjs-0.3.24.tgz", "integrity": "sha512-GJgLTZ7vYb/JtPSSZ10hsOYIvEYsjbNU+zPdIHcUaWVNUEPivzxku31865sSSud0Da0W4lEeOPlmw93zLQchuQ==", "dev": true, + "license": "MIT", "dependencies": { "faye-websocket": "^0.11.3", "uuid": "^8.3.2", @@ -11358,9 +11959,10 @@ }, "node_modules/socks": { "version": "2.8.3", - "resolved": "https://npm.sinequa.com:4873/socks/-/socks-2.8.3.tgz", + "resolved": "https://npm.sinequa.com/socks/-/socks-2.8.3.tgz", "integrity": "sha512-l5x7VUUWbjVFbafGLxPWkYsHIhEvmF85tbIeFZWc8ZPtoMyybuEhL7Jye/ooC4/d48FgOjSJXgsF/AJPYCW8Zw==", "dev": true, + "license": "MIT", "dependencies": { "ip-address": "^9.0.5", "smart-buffer": "^4.2.0" @@ -11371,43 +11973,25 @@ } }, "node_modules/socks-proxy-agent": { - "version": "8.0.3", - "resolved": "https://npm.sinequa.com:4873/socks-proxy-agent/-/socks-proxy-agent-8.0.3.tgz", - "integrity": "sha512-VNegTZKhuGq5vSD6XNKlbqWhyt/40CgoEw8XxD6dhnm8Jq9IEa3nIa4HwnM8XOqU0CdB0BwWVXusqiFXfHB3+A==", + "version": "8.0.5", + "resolved": "https://npm.sinequa.com/socks-proxy-agent/-/socks-proxy-agent-8.0.5.tgz", + "integrity": "sha512-HehCEsotFqbPW9sJ8WVYB6UbmIMv7kUUORIF2Nncq4VQvBfNBLibW9YZR5dlYCSUhwcD628pRllm7n+E+YTzJw==", "dev": true, + "license": "MIT", "dependencies": { - "agent-base": "^7.1.1", + "agent-base": "^7.1.2", "debug": "^4.3.4", - "socks": "^2.7.1" + "socks": "^2.8.3" }, "engines": { "node": ">= 14" } }, - "node_modules/sonic-forest": { - "version": "1.0.3", - "resolved": "https://npm.sinequa.com:4873/sonic-forest/-/sonic-forest-1.0.3.tgz", - "integrity": "sha512-dtwajos6IWMEWXdEbW1IkEkyL2gztCAgDplRIX+OT5aRKnEd5e7r7YCxRgXZdhRP1FBdOBf8axeTPhzDv8T4wQ==", - "dev": true, - "dependencies": { - "tree-dump": "^1.0.0" - }, - "engines": { - "node": ">=10.0" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/streamich" - }, - "peerDependencies": { - "tslib": "2" - } - }, "node_modules/source-map": { "version": "0.7.4", "resolved": "https://npm.sinequa.com/source-map/-/source-map-0.7.4.tgz", "integrity": "sha512-l3BikUxvPOcn5E74dZiq5BGsTb5yEwhaTSzccU6t4sDOH8NWJCstKO5QT2CvtFoK6F0saL7p9xHAqHOlCPJygA==", - "dev": true, + "license": "BSD-3-Clause", "engines": { "node": ">= 8" } @@ -11417,15 +12001,17 @@ "resolved": "https://npm.sinequa.com/source-map-js/-/source-map-js-1.2.1.tgz", "integrity": "sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==", "dev": true, + "license": "BSD-3-Clause", "engines": { "node": ">=0.10.0" } }, "node_modules/source-map-loader": { "version": "5.0.0", - "resolved": "https://npm.sinequa.com:4873/source-map-loader/-/source-map-loader-5.0.0.tgz", + "resolved": "https://npm.sinequa.com/source-map-loader/-/source-map-loader-5.0.0.tgz", "integrity": "sha512-k2Dur7CbSLcAH73sBcIkV5xjPV4SzqO1NJ7+XaQl8if3VODDUj3FNchNGpqgJSKbvUfJuhVdv8K2Eu8/TNl2eA==", "dev": true, + "license": "MIT", "dependencies": { "iconv-lite": "^0.6.3", "source-map-js": "^1.0.2" @@ -11443,9 +12029,10 @@ }, "node_modules/source-map-loader/node_modules/iconv-lite": { "version": "0.6.3", - "resolved": "https://npm.sinequa.com:4873/iconv-lite/-/iconv-lite-0.6.3.tgz", + "resolved": "https://npm.sinequa.com/iconv-lite/-/iconv-lite-0.6.3.tgz", "integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==", "dev": true, + "license": "MIT", "dependencies": { "safer-buffer": ">= 2.1.2 < 3.0.0" }, @@ -11455,9 +12042,10 @@ }, "node_modules/source-map-support": { "version": "0.5.21", - "resolved": "https://npm.sinequa.com:4873/source-map-support/-/source-map-support-0.5.21.tgz", + "resolved": "https://npm.sinequa.com/source-map-support/-/source-map-support-0.5.21.tgz", "integrity": "sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==", "dev": true, + "license": "MIT", "dependencies": { "buffer-from": "^1.0.0", "source-map": "^0.6.0" @@ -11465,18 +12053,20 @@ }, "node_modules/source-map-support/node_modules/source-map": { "version": "0.6.1", - "resolved": "https://npm.sinequa.com:4873/source-map/-/source-map-0.6.1.tgz", + "resolved": "https://npm.sinequa.com/source-map/-/source-map-0.6.1.tgz", "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", "dev": true, + "license": "BSD-3-Clause", "engines": { "node": ">=0.10.0" } }, "node_modules/spdx-correct": { "version": "3.2.0", - "resolved": "https://npm.sinequa.com:4873/spdx-correct/-/spdx-correct-3.2.0.tgz", + "resolved": "https://npm.sinequa.com/spdx-correct/-/spdx-correct-3.2.0.tgz", "integrity": "sha512-kN9dJbvnySHULIluDHy32WHRUu3Og7B9sbY7tsFLctQkIqnMh3hErYgdMjTYuqmcXX+lK5T1lnUt3G7zNswmZA==", "dev": true, + "license": "Apache-2.0", "dependencies": { "spdx-expression-parse": "^3.0.0", "spdx-license-ids": "^3.0.0" @@ -11484,31 +12074,35 @@ }, "node_modules/spdx-exceptions": { "version": "2.5.0", - "resolved": "https://npm.sinequa.com:4873/spdx-exceptions/-/spdx-exceptions-2.5.0.tgz", + "resolved": "https://npm.sinequa.com/spdx-exceptions/-/spdx-exceptions-2.5.0.tgz", "integrity": "sha512-PiU42r+xO4UbUS1buo3LPJkjlO7430Xn5SVAhdpzzsPHsjbYVflnnFdATgabnLude+Cqu25p6N+g2lw/PFsa4w==", - "dev": true + "dev": true, + "license": "CC-BY-3.0" }, "node_modules/spdx-expression-parse": { "version": "3.0.1", - "resolved": "https://npm.sinequa.com:4873/spdx-expression-parse/-/spdx-expression-parse-3.0.1.tgz", + "resolved": "https://npm.sinequa.com/spdx-expression-parse/-/spdx-expression-parse-3.0.1.tgz", "integrity": "sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==", "dev": true, + "license": "MIT", "dependencies": { "spdx-exceptions": "^2.1.0", "spdx-license-ids": "^3.0.0" } }, "node_modules/spdx-license-ids": { - "version": "3.0.18", - "resolved": "https://npm.sinequa.com:4873/spdx-license-ids/-/spdx-license-ids-3.0.18.tgz", - "integrity": "sha512-xxRs31BqRYHwiMzudOrpSiHtZ8i/GeionCBDSilhYRj+9gIcI8wCZTlXZKu9vZIVqViP3dcp9qE5G6AlIaD+TQ==", - "dev": true + "version": "3.0.21", + "resolved": "https://npm.sinequa.com/spdx-license-ids/-/spdx-license-ids-3.0.21.tgz", + "integrity": "sha512-Bvg/8F5XephndSK3JffaRqdT+gyhfqIPwDHpX80tJrF8QQRYMo8sNMeaZ2Dp5+jhwKnUmIOyFFQfHRkjJm5nXg==", + "dev": true, + "license": "CC0-1.0" }, "node_modules/spdy": { "version": "4.0.2", - "resolved": "https://npm.sinequa.com:4873/spdy/-/spdy-4.0.2.tgz", + "resolved": "https://npm.sinequa.com/spdy/-/spdy-4.0.2.tgz", "integrity": "sha512-r46gZQZQV+Kl9oItvl1JZZqJKGr+oEkB08A6BzkiR7593/7IbtuncXHd2YoYeTsG4157ZssMu9KYvUHLcjcDoA==", "dev": true, + "license": "MIT", "dependencies": { "debug": "^4.1.0", "handle-thing": "^2.0.0", @@ -11522,9 +12116,10 @@ }, "node_modules/spdy-transport": { "version": "3.0.0", - "resolved": "https://npm.sinequa.com:4873/spdy-transport/-/spdy-transport-3.0.0.tgz", + "resolved": "https://npm.sinequa.com/spdy-transport/-/spdy-transport-3.0.0.tgz", "integrity": "sha512-hsLVFE5SjA6TCisWeJXFKniGGOpBgMLmerfO2aCyCU5s7nJ/rpAepqmFifv/GCbSbueEeAJJnmSQ2rKC/g8Fcw==", "dev": true, + "license": "MIT", "dependencies": { "debug": "^4.1.0", "detect-node": "^2.0.4", @@ -11534,11 +12129,19 @@ "wbuf": "^1.7.3" } }, + "node_modules/sprintf-js": { + "version": "1.1.3", + "resolved": "https://npm.sinequa.com/sprintf-js/-/sprintf-js-1.1.3.tgz", + "integrity": "sha512-Oo+0REFV59/rz3gfJNKQiBlwfHaSESl1pcGyABQsnnIfWOFt6JNj5gCog2U6MLZ//IGYD+nA8nI+mTShREReaA==", + "dev": true, + "license": "BSD-3-Clause" + }, "node_modules/ssri": { "version": "10.0.6", - "resolved": "https://npm.sinequa.com:4873/ssri/-/ssri-10.0.6.tgz", + "resolved": "https://npm.sinequa.com/ssri/-/ssri-10.0.6.tgz", "integrity": "sha512-MGrFH9Z4NP9Iyhqn16sDtBpRRNJ0Y2hNa6D65h736fVSaPCHr4DM4sWUNvVaSuC+0OBGhwsrydQwmgfg5LncqQ==", "dev": true, + "license": "ISC", "dependencies": { "minipass": "^7.0.3" }, @@ -11551,36 +12154,43 @@ "resolved": "https://npm.sinequa.com/statuses/-/statuses-2.0.1.tgz", "integrity": "sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==", "dev": true, + "license": "MIT", "engines": { "node": ">= 0.8" } }, "node_modules/string_decoder": { "version": "1.3.0", - "resolved": "https://npm.sinequa.com:4873/string_decoder/-/string_decoder-1.3.0.tgz", + "resolved": "https://npm.sinequa.com/string_decoder/-/string_decoder-1.3.0.tgz", "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==", + "license": "MIT", "dependencies": { "safe-buffer": "~5.2.0" } }, "node_modules/string-width": { - "version": "4.2.3", - "resolved": "https://npm.sinequa.com:4873/string-width/-/string-width-4.2.3.tgz", - "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "version": "5.1.2", + "resolved": "https://npm.sinequa.com/string-width/-/string-width-5.1.2.tgz", + "integrity": "sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==", + "license": "MIT", "dependencies": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.1" + "eastasianwidth": "^0.2.0", + "emoji-regex": "^9.2.2", + "strip-ansi": "^7.0.1" }, "engines": { - "node": ">=8" + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/string-width-cjs": { "name": "string-width", "version": "4.2.3", - "resolved": "https://npm.sinequa.com:4873/string-width/-/string-width-4.2.3.tgz", + "resolved": "https://npm.sinequa.com/string-width/-/string-width-4.2.3.tgz", "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "license": "MIT", "dependencies": { "emoji-regex": "^8.0.0", "is-fullwidth-code-point": "^3.0.0", @@ -11590,10 +12200,53 @@ "node": ">=8" } }, + "node_modules/string-width-cjs/node_modules/emoji-regex": { + "version": "8.0.0", + "resolved": "https://npm.sinequa.com/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "license": "MIT" + }, + "node_modules/string-width-cjs/node_modules/is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://npm.sinequa.com/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/string-width/node_modules/ansi-regex": { + "version": "6.1.0", + "resolved": "https://npm.sinequa.com/ansi-regex/-/ansi-regex-6.1.0.tgz", + "integrity": "sha512-7HSX4QQb4CspciLpVFwyRe79O3xsIZDDLER21kERQ71oaPodF8jL725AgJMFAYbooIqolJoRLuM81SpeUkpkvA==", + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-regex?sponsor=1" + } + }, + "node_modules/string-width/node_modules/strip-ansi": { + "version": "7.1.0", + "resolved": "https://npm.sinequa.com/strip-ansi/-/strip-ansi-7.1.0.tgz", + "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==", + "license": "MIT", + "dependencies": { + "ansi-regex": "^6.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/strip-ansi?sponsor=1" + } + }, "node_modules/strip-ansi": { "version": "6.0.1", - "resolved": "https://npm.sinequa.com:4873/strip-ansi/-/strip-ansi-6.0.1.tgz", + "resolved": "https://npm.sinequa.com/strip-ansi/-/strip-ansi-6.0.1.tgz", "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "license": "MIT", "dependencies": { "ansi-regex": "^5.0.1" }, @@ -11604,8 +12257,9 @@ "node_modules/strip-ansi-cjs": { "name": "strip-ansi", "version": "6.0.1", - "resolved": "https://npm.sinequa.com:4873/strip-ansi/-/strip-ansi-6.0.1.tgz", + "resolved": "https://npm.sinequa.com/strip-ansi/-/strip-ansi-6.0.1.tgz", "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "license": "MIT", "dependencies": { "ansi-regex": "^5.0.1" }, @@ -11615,9 +12269,10 @@ }, "node_modules/strip-final-newline": { "version": "2.0.0", - "resolved": "https://npm.sinequa.com:4873/strip-final-newline/-/strip-final-newline-2.0.0.tgz", + "resolved": "https://npm.sinequa.com/strip-final-newline/-/strip-final-newline-2.0.0.tgz", "integrity": "sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==", "dev": true, + "license": "MIT", "engines": { "node": ">=6" } @@ -11626,6 +12281,7 @@ "version": "3.1.1", "resolved": "https://npm.sinequa.com/strip-json-comments/-/strip-json-comments-3.1.1.tgz", "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", + "license": "MIT", "engines": { "node": ">=8" }, @@ -11635,9 +12291,10 @@ }, "node_modules/sucrase": { "version": "3.35.0", - "resolved": "https://npm.sinequa.com:4873/sucrase/-/sucrase-3.35.0.tgz", + "resolved": "https://npm.sinequa.com/sucrase/-/sucrase-3.35.0.tgz", "integrity": "sha512-8EbVDiu9iN/nESwxeSxDKe0dunta1GOlHufmSSXxMD2z2/tMZpDMpvXQGsc+ajGo8y2uYUmixaSRUc/QPoQ0GA==", "dev": true, + "license": "MIT", "dependencies": { "@jridgewell/gen-mapping": "^0.3.2", "commander": "^4.0.0", @@ -11656,21 +12313,23 @@ } }, "node_modules/supports-color": { - "version": "5.5.0", - "resolved": "https://npm.sinequa.com/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "version": "7.2.0", + "resolved": "https://npm.sinequa.com/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "license": "MIT", "dependencies": { - "has-flag": "^3.0.0" + "has-flag": "^4.0.0" }, "engines": { - "node": ">=4" + "node": ">=8" } }, "node_modules/supports-preserve-symlinks-flag": { "version": "1.0.0", - "resolved": "https://npm.sinequa.com:4873/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", + "resolved": "https://npm.sinequa.com/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", "dev": true, + "license": "MIT", "engines": { "node": ">= 0.4" }, @@ -11680,89 +12339,157 @@ }, "node_modules/symbol-observable": { "version": "4.0.0", - "resolved": "https://npm.sinequa.com:4873/symbol-observable/-/symbol-observable-4.0.0.tgz", + "resolved": "https://npm.sinequa.com/symbol-observable/-/symbol-observable-4.0.0.tgz", "integrity": "sha512-b19dMThMV4HVFynSAM1++gBHAbk2Tc/osgLIBZMKsyqh34jb2e8Os7T6ZW/Bt3pJFdBTd2JwAnAAEQV7rSNvcQ==", "dev": true, + "license": "MIT", "engines": { "node": ">=0.10" } }, "node_modules/tailwind-merge": { - "version": "2.3.0", - "resolved": "https://npm.sinequa.com:4873/tailwind-merge/-/tailwind-merge-2.3.0.tgz", - "integrity": "sha512-vkYrLpIP+lgR0tQCG6AP7zZXCTLc1Lnv/CCRT3BqJ9CZ3ui2++GPaGb1x/ILsINIMSYqqvrpqjUFsMNLlW99EA==", + "version": "2.6.0", + "resolved": "https://npm.sinequa.com/tailwind-merge/-/tailwind-merge-2.6.0.tgz", + "integrity": "sha512-P+Vu1qXfzediirmHOC3xKGAYeZtPcV9g76X+xg2FD4tYgR71ewMA35Y3sCz3zhiN/dwefRpJX0yBcgwi1fXNQA==", "dev": true, - "dependencies": { - "@babel/runtime": "^7.24.1" - }, + "license": "MIT", "funding": { "type": "github", "url": "https://github.com/sponsors/dcastil" } }, "node_modules/tailwindcss": { - "version": "3.4.3", - "resolved": "https://npm.sinequa.com:4873/tailwindcss/-/tailwindcss-3.4.3.tgz", - "integrity": "sha512-U7sxQk/n397Bmx4JHbJx/iSOOv5G+II3f1kpLpY2QeUv5DcPdcTsYLlusZfq1NthHS1c1cZoyFmmkex1rzke0A==", + "version": "3.4.17", + "resolved": "https://npm.sinequa.com/tailwindcss/-/tailwindcss-3.4.17.tgz", + "integrity": "sha512-w33E2aCvSDP0tW9RZuNXadXlkHXqFzSkQew/aIa2i/Sj8fThxwovwlXHSPXTbAHwEIhBFXAedUhP2tueAKP8Og==", "dev": true, + "license": "MIT", "dependencies": { "@alloc/quick-lru": "^5.2.0", "arg": "^5.0.2", - "chokidar": "^3.5.3", + "chokidar": "^3.6.0", "didyoumean": "^1.2.2", "dlv": "^1.1.3", - "fast-glob": "^3.3.0", + "fast-glob": "^3.3.2", "glob-parent": "^6.0.2", "is-glob": "^4.0.3", - "jiti": "^1.21.0", - "lilconfig": "^2.1.0", - "micromatch": "^4.0.5", + "jiti": "^1.21.6", + "lilconfig": "^3.1.3", + "micromatch": "^4.0.8", "normalize-path": "^3.0.0", "object-hash": "^3.0.0", - "picocolors": "^1.0.0", - "postcss": "^8.4.23", + "picocolors": "^1.1.1", + "postcss": "^8.4.47", "postcss-import": "^15.1.0", "postcss-js": "^4.0.1", - "postcss-load-config": "^4.0.1", - "postcss-nested": "^6.0.1", - "postcss-selector-parser": "^6.0.11", - "resolve": "^1.22.2", - "sucrase": "^3.32.0" + "postcss-load-config": "^4.0.2", + "postcss-nested": "^6.2.0", + "postcss-selector-parser": "^6.1.2", + "resolve": "^1.22.8", + "sucrase": "^3.35.0" }, "bin": { "tailwind": "lib/cli.js", "tailwindcss": "lib/cli.js" }, "engines": { - "node": ">=14.0.0" + "node": ">=14.0.0" + } + }, + "node_modules/tailwindcss/node_modules/chokidar": { + "version": "3.6.0", + "resolved": "https://npm.sinequa.com/chokidar/-/chokidar-3.6.0.tgz", + "integrity": "sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==", + "dev": true, + "license": "MIT", + "dependencies": { + "anymatch": "~3.1.2", + "braces": "~3.0.2", + "glob-parent": "~5.1.2", + "is-binary-path": "~2.1.0", + "is-glob": "~4.0.1", + "normalize-path": "~3.0.0", + "readdirp": "~3.6.0" + }, + "engines": { + "node": ">= 8.10.0" + }, + "funding": { + "url": "https://paulmillr.com/funding/" + }, + "optionalDependencies": { + "fsevents": "~2.3.2" + } + }, + "node_modules/tailwindcss/node_modules/chokidar/node_modules/glob-parent": { + "version": "5.1.2", + "resolved": "https://npm.sinequa.com/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "dev": true, + "license": "ISC", + "dependencies": { + "is-glob": "^4.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/tailwindcss/node_modules/picomatch": { + "version": "2.3.1", + "resolved": "https://npm.sinequa.com/picomatch/-/picomatch-2.3.1.tgz", + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8.6" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/tailwindcss/node_modules/postcss-selector-parser": { + "version": "6.1.2", + "resolved": "https://npm.sinequa.com/postcss-selector-parser/-/postcss-selector-parser-6.1.2.tgz", + "integrity": "sha512-Q8qQfPiZ+THO/3ZrOrO0cJJKfpYCagtMUkXbnEfmgUjwXg6z/WBeOyS9APBBPCTSiDV+s4SwQGu8yFsiMRIudg==", + "dev": true, + "license": "MIT", + "dependencies": { + "cssesc": "^3.0.0", + "util-deprecate": "^1.0.2" + }, + "engines": { + "node": ">=4" } }, - "node_modules/tailwindcss/node_modules/glob-parent": { - "version": "6.0.2", - "resolved": "https://npm.sinequa.com:4873/glob-parent/-/glob-parent-6.0.2.tgz", - "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==", + "node_modules/tailwindcss/node_modules/readdirp": { + "version": "3.6.0", + "resolved": "https://npm.sinequa.com/readdirp/-/readdirp-3.6.0.tgz", + "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", "dev": true, + "license": "MIT", "dependencies": { - "is-glob": "^4.0.3" + "picomatch": "^2.2.1" }, "engines": { - "node": ">=10.13.0" + "node": ">=8.10.0" } }, "node_modules/tapable": { "version": "2.2.1", - "resolved": "https://npm.sinequa.com:4873/tapable/-/tapable-2.2.1.tgz", + "resolved": "https://npm.sinequa.com/tapable/-/tapable-2.2.1.tgz", "integrity": "sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ==", "dev": true, + "license": "MIT", "engines": { "node": ">=6" } }, "node_modules/tar": { "version": "6.2.1", - "resolved": "https://npm.sinequa.com:4873/tar/-/tar-6.2.1.tgz", + "resolved": "https://npm.sinequa.com/tar/-/tar-6.2.1.tgz", "integrity": "sha512-DZ4yORTwrbTj/7MZYq2w+/ZFdI6OZ/f9SFHR+71gIVUZhOQPHzVCLpvRnPgyaMpfWxxk/4ONva3GQSyNIKRv6A==", "dev": true, + "license": "ISC", "dependencies": { "chownr": "^2.0.0", "fs-minipass": "^2.0.0", @@ -11777,9 +12504,10 @@ }, "node_modules/tar/node_modules/fs-minipass": { "version": "2.1.0", - "resolved": "https://npm.sinequa.com:4873/fs-minipass/-/fs-minipass-2.1.0.tgz", + "resolved": "https://npm.sinequa.com/fs-minipass/-/fs-minipass-2.1.0.tgz", "integrity": "sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg==", "dev": true, + "license": "ISC", "dependencies": { "minipass": "^3.0.0" }, @@ -11789,9 +12517,10 @@ }, "node_modules/tar/node_modules/fs-minipass/node_modules/minipass": { "version": "3.3.6", - "resolved": "https://npm.sinequa.com:4873/minipass/-/minipass-3.3.6.tgz", + "resolved": "https://npm.sinequa.com/minipass/-/minipass-3.3.6.tgz", "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==", "dev": true, + "license": "ISC", "dependencies": { "yallist": "^4.0.0" }, @@ -11801,24 +12530,27 @@ }, "node_modules/tar/node_modules/minipass": { "version": "5.0.0", - "resolved": "https://npm.sinequa.com:4873/minipass/-/minipass-5.0.0.tgz", + "resolved": "https://npm.sinequa.com/minipass/-/minipass-5.0.0.tgz", "integrity": "sha512-3FnjYuehv9k6ovOEbyOswadCDPX1piCfhV8ncmYtHOjuPwylVWsghTLo7rabjC3Rx5xD4HDx8Wm1xnMF7S5qFQ==", "dev": true, + "license": "ISC", "engines": { "node": ">=8" } }, "node_modules/tar/node_modules/yallist": { "version": "4.0.0", - "resolved": "https://npm.sinequa.com:4873/yallist/-/yallist-4.0.0.tgz", + "resolved": "https://npm.sinequa.com/yallist/-/yallist-4.0.0.tgz", "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", - "dev": true + "dev": true, + "license": "ISC" }, "node_modules/terser": { "version": "5.31.6", "resolved": "https://npm.sinequa.com/terser/-/terser-5.31.6.tgz", "integrity": "sha512-PQ4DAriWzKj+qgehQ7LK5bQqCFNMmlhjR2PFFLuqGCpuCAauxemVBWwWOxo3UIwWQx8+Pr61Df++r76wDmkQBg==", "dev": true, + "license": "BSD-2-Clause", "dependencies": { "@jridgewell/source-map": "^0.3.3", "acorn": "^8.8.2", @@ -11833,16 +12565,17 @@ } }, "node_modules/terser-webpack-plugin": { - "version": "5.3.10", - "resolved": "https://npm.sinequa.com/terser-webpack-plugin/-/terser-webpack-plugin-5.3.10.tgz", - "integrity": "sha512-BKFPWlPDndPs+NGGCr1U59t0XScL5317Y0UReNrHaw9/FwhPENlq6bfgs+4yPfyP51vqC1bQ4rp1EfXW5ZSH9w==", + "version": "5.3.11", + "resolved": "https://npm.sinequa.com/terser-webpack-plugin/-/terser-webpack-plugin-5.3.11.tgz", + "integrity": "sha512-RVCsMfuD0+cTt3EwX8hSl2Ks56EbFHWmhluwcqoPKtBnfjiT6olaq7PRIRfhyU8nnC2MrnDrBLfrD/RGE+cVXQ==", "dev": true, + "license": "MIT", "dependencies": { - "@jridgewell/trace-mapping": "^0.3.20", + "@jridgewell/trace-mapping": "^0.3.25", "jest-worker": "^27.4.5", - "schema-utils": "^3.1.1", - "serialize-javascript": "^6.0.1", - "terser": "^5.26.0" + "schema-utils": "^4.3.0", + "serialize-javascript": "^6.0.2", + "terser": "^5.31.1" }, "engines": { "node": ">= 10.13.0" @@ -11866,75 +12599,29 @@ } } }, - "node_modules/terser-webpack-plugin/node_modules/ajv": { - "version": "6.12.6", - "resolved": "https://npm.sinequa.com/ajv/-/ajv-6.12.6.tgz", - "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", - "dev": true, - "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" - } - }, - "node_modules/terser-webpack-plugin/node_modules/ajv-keywords": { - "version": "3.5.2", - "resolved": "https://npm.sinequa.com/ajv-keywords/-/ajv-keywords-3.5.2.tgz", - "integrity": "sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==", - "dev": true, - "peerDependencies": { - "ajv": "^6.9.1" - } - }, - "node_modules/terser-webpack-plugin/node_modules/json-schema-traverse": { - "version": "0.4.1", - "resolved": "https://npm.sinequa.com/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", - "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", - "dev": true - }, - "node_modules/terser-webpack-plugin/node_modules/schema-utils": { - "version": "3.3.0", - "resolved": "https://npm.sinequa.com/schema-utils/-/schema-utils-3.3.0.tgz", - "integrity": "sha512-pN/yOAvcC+5rQ5nERGuwrjLlYvLTbCibnZ1I7B1LaiAz9BRBlE9GMgE/eqV30P7aJQUf7Ddimy/RsbYO/GrVGg==", - "dev": true, - "dependencies": { - "@types/json-schema": "^7.0.8", - "ajv": "^6.12.5", - "ajv-keywords": "^3.5.2" - }, - "engines": { - "node": ">= 10.13.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" - } - }, "node_modules/terser/node_modules/commander": { "version": "2.20.3", "resolved": "https://npm.sinequa.com/commander/-/commander-2.20.3.tgz", "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/thenify": { "version": "3.3.1", - "resolved": "https://npm.sinequa.com:4873/thenify/-/thenify-3.3.1.tgz", + "resolved": "https://npm.sinequa.com/thenify/-/thenify-3.3.1.tgz", "integrity": "sha512-RVZSIV5IG10Hk3enotrhvz0T9em6cyHBLkH/YAZuKqd8hRkKhSfCGIcP2KUY0EPxndzANBmNllzWPwak+bheSw==", "dev": true, + "license": "MIT", "dependencies": { "any-promise": "^1.0.0" } }, "node_modules/thenify-all": { "version": "1.6.0", - "resolved": "https://npm.sinequa.com:4873/thenify-all/-/thenify-all-1.6.0.tgz", + "resolved": "https://npm.sinequa.com/thenify-all/-/thenify-all-1.6.0.tgz", "integrity": "sha512-RNxQH/qI8/t3thXJDwcstUO4zeqo64+Uy/+sNVRBx4Xn2OX+OZ9oP+iJnNFqplFra2ZUVeKCSa2oVWi3T4uVmA==", "dev": true, + "license": "MIT", "dependencies": { "thenify": ">= 3.1.0 < 4" }, @@ -11944,9 +12631,10 @@ }, "node_modules/thingies": { "version": "1.21.0", - "resolved": "https://npm.sinequa.com:4873/thingies/-/thingies-1.21.0.tgz", + "resolved": "https://npm.sinequa.com/thingies/-/thingies-1.21.0.tgz", "integrity": "sha512-hsqsJsFMsV+aD4s3CWKk85ep/3I9XzYV/IXaSouJMYIoDlgyi11cBhsqYe9/geRfB0YIikBQg6raRaM+nIMP9g==", "dev": true, + "license": "Unlicense", "engines": { "node": ">=10.18" }, @@ -11956,15 +12644,17 @@ }, "node_modules/thunky": { "version": "1.1.0", - "resolved": "https://npm.sinequa.com:4873/thunky/-/thunky-1.1.0.tgz", + "resolved": "https://npm.sinequa.com/thunky/-/thunky-1.1.0.tgz", "integrity": "sha512-eHY7nBftgThBqOyHGVN+l8gF0BucP09fMo0oO/Lb0w1OF80dJv+lDVpXG60WMQvkcxAkNybKsrEIE3ZtKGmPrA==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/tmp": { "version": "0.0.33", "resolved": "https://npm.sinequa.com/tmp/-/tmp-0.0.33.tgz", "integrity": "sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==", "dev": true, + "license": "MIT", "dependencies": { "os-tmpdir": "~1.0.2" }, @@ -11972,20 +12662,12 @@ "node": ">=0.6.0" } }, - "node_modules/to-fast-properties": { - "version": "2.0.0", - "resolved": "https://npm.sinequa.com/to-fast-properties/-/to-fast-properties-2.0.0.tgz", - "integrity": "sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4=", - "dev": true, - "engines": { - "node": ">=4" - } - }, "node_modules/to-regex-range": { "version": "5.0.1", - "resolved": "https://npm.sinequa.com:4873/to-regex-range/-/to-regex-range-5.0.1.tgz", + "resolved": "https://npm.sinequa.com/to-regex-range/-/to-regex-range-5.0.1.tgz", "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", "dev": true, + "license": "MIT", "dependencies": { "is-number": "^7.0.0" }, @@ -11998,13 +12680,14 @@ "resolved": "https://npm.sinequa.com/toidentifier/-/toidentifier-1.0.1.tgz", "integrity": "sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==", "dev": true, + "license": "MIT", "engines": { "node": ">=0.6" } }, "node_modules/toolkit": { "version": "0.0.1", - "resolved": "https://npm.sinequa.com:4873/toolkit/-/toolkit-0.0.1.tgz", + "resolved": "https://npm.sinequa.com/toolkit/-/toolkit-0.0.1.tgz", "integrity": "sha512-Rv4LbhbW9FmCBpi6uayyvdNBlYyZLCkfMvP3KAW9Ot0nc8Tomw2vtJIeMDN2cpEwiyfjbKyGNcNGGFld9arTug==", "dependencies": { "tslib": "^2.3.0" @@ -12016,8 +12699,9 @@ }, "node_modules/tough-cookie": { "version": "4.1.4", - "resolved": "https://npm.sinequa.com:4873/tough-cookie/-/tough-cookie-4.1.4.tgz", + "resolved": "https://npm.sinequa.com/tough-cookie/-/tough-cookie-4.1.4.tgz", "integrity": "sha512-Loo5UUvLD9ScZ6jh8beX1T6sO1w2/MpCRpEP7V280GKMVUQ0Jzar2U3UJPsrdbziLEMMhu3Ujnq//rhiFuIeag==", + "license": "BSD-3-Clause", "dependencies": { "psl": "^1.1.33", "punycode": "^2.1.1", @@ -12028,16 +12712,27 @@ "node": ">=6" } }, + "node_modules/tough-cookie/node_modules/universalify": { + "version": "0.2.0", + "resolved": "https://npm.sinequa.com/universalify/-/universalify-0.2.0.tgz", + "integrity": "sha512-CJ1QgKmNg3CwvAv/kOFmtnEN05f0D/cn9QntgNOQlQF9dgvVTHj3t+8JPdjqawCHk7V/KA+fbUqzZ9XWhcqPUg==", + "license": "MIT", + "engines": { + "node": ">= 4.0.0" + } + }, "node_modules/tr46": { "version": "0.0.3", - "resolved": "https://npm.sinequa.com:4873/tr46/-/tr46-0.0.3.tgz", - "integrity": "sha1-gYT9NH2snNwYWZLzpmIuFLnZq2o=" + "resolved": "https://npm.sinequa.com/tr46/-/tr46-0.0.3.tgz", + "integrity": "sha1-gYT9NH2snNwYWZLzpmIuFLnZq2o=", + "license": "MIT" }, "node_modules/tree-dump": { - "version": "1.0.1", - "resolved": "https://npm.sinequa.com:4873/tree-dump/-/tree-dump-1.0.1.tgz", - "integrity": "sha512-WCkcRBVPSlHHq1dc/px9iOfqklvzCbdRwvlNfxGZsrHqf6aZttfPrd7DJTt6oR10dwUfpFFQeVTkPbBIZxX/YA==", + "version": "1.0.2", + "resolved": "https://npm.sinequa.com/tree-dump/-/tree-dump-1.0.2.tgz", + "integrity": "sha512-dpev9ABuLWdEubk+cIaI9cHwRNNDjkBBLXTwI4UCUFdQ5xXKqNXoK4FEciw/vxf+NQ7Cb7sGUyeUtORvHIdRXQ==", "dev": true, + "license": "Apache-2.0", "engines": { "node": ">=10.0" }, @@ -12051,29 +12746,33 @@ }, "node_modules/tree-kill": { "version": "1.2.2", - "resolved": "https://npm.sinequa.com:4873/tree-kill/-/tree-kill-1.2.2.tgz", + "resolved": "https://npm.sinequa.com/tree-kill/-/tree-kill-1.2.2.tgz", "integrity": "sha512-L0Orpi8qGpRG//Nd+H90vFB+3iHnue1zSSGmNOOCh1GLJ7rUKVwV2HvijphGQS2UmhUZewS9VgvxYIdgr+fG1A==", "dev": true, + "license": "MIT", "bin": { "tree-kill": "cli.js" } }, "node_modules/ts-interface-checker": { "version": "0.1.13", - "resolved": "https://npm.sinequa.com:4873/ts-interface-checker/-/ts-interface-checker-0.1.13.tgz", + "resolved": "https://npm.sinequa.com/ts-interface-checker/-/ts-interface-checker-0.1.13.tgz", "integrity": "sha512-Y/arvbn+rrz3JCKl9C4kVNfTfSm2/mEp5FSz5EsZSANGPSlQrpRI5M4PKF+mJnE52jOO90PnPSc3Ur3bTQw0gA==", - "dev": true + "dev": true, + "license": "Apache-2.0" }, "node_modules/tslib": { - "version": "2.6.3", - "resolved": "https://npm.sinequa.com:4873/tslib/-/tslib-2.6.3.tgz", - "integrity": "sha512-xNvxJEOUiWPGhUuUdQgAJPKOOJfGnIyKySOc09XkKsgdUV/3E2zvwZYdejjmRgPCgcym1juLH3226yA7sEFJKQ==" + "version": "2.8.1", + "resolved": "https://npm.sinequa.com/tslib/-/tslib-2.8.1.tgz", + "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==", + "license": "0BSD" }, "node_modules/tuf-js": { "version": "2.2.1", - "resolved": "https://npm.sinequa.com:4873/tuf-js/-/tuf-js-2.2.1.tgz", + "resolved": "https://npm.sinequa.com/tuf-js/-/tuf-js-2.2.1.tgz", "integrity": "sha512-GwIJau9XaA8nLVbUXsN3IlFi7WmQ48gBUrl3FTkkL/XLu/POhBzfmX9hd33FNMX1qAsfl6ozO1iMmW9NC8YniA==", "dev": true, + "license": "MIT", "dependencies": { "@tufjs/models": "2.0.1", "debug": "^4.3.4", @@ -12088,6 +12787,7 @@ "resolved": "https://npm.sinequa.com/type-fest/-/type-fest-0.21.3.tgz", "integrity": "sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==", "dev": true, + "license": "(MIT OR CC0-1.0)", "engines": { "node": ">=10" }, @@ -12100,6 +12800,7 @@ "resolved": "https://npm.sinequa.com/type-is/-/type-is-1.6.18.tgz", "integrity": "sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==", "dev": true, + "license": "MIT", "dependencies": { "media-typer": "0.3.0", "mime-types": "~2.1.24" @@ -12110,15 +12811,17 @@ }, "node_modules/typed-assert": { "version": "1.0.9", - "resolved": "https://npm.sinequa.com:4873/typed-assert/-/typed-assert-1.0.9.tgz", + "resolved": "https://npm.sinequa.com/typed-assert/-/typed-assert-1.0.9.tgz", "integrity": "sha512-KNNZtayBCtmnNmbo5mG47p1XsCyrx6iVqomjcZnec/1Y5GGARaxPs6r49RnSPeUP3YjNYiU9sQHAtY4BBvnZwg==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/typescript": { "version": "5.4.5", - "resolved": "https://npm.sinequa.com:4873/typescript/-/typescript-5.4.5.tgz", + "resolved": "https://npm.sinequa.com/typescript/-/typescript-5.4.5.tgz", "integrity": "sha512-vcI4UpRgg81oIRUFwR0WSIHKt11nJ7SAVlYNIu+QpqeyXP+gpQJy/Z4+F0aGxSE4MqwjyXvW/TzgkLAx2AGHwQ==", "dev": true, + "license": "Apache-2.0", "bin": { "tsc": "bin/tsc", "tsserver": "bin/tsserver" @@ -12128,16 +12831,18 @@ } }, "node_modules/undici-types": { - "version": "6.19.8", - "resolved": "https://npm.sinequa.com/undici-types/-/undici-types-6.19.8.tgz", - "integrity": "sha512-ve2KP6f/JnbPBFyobGHuerC9g1FYGn/F8n1LWTwNxCEzd6IfqTwUQcNXgEtmmQ6DlRrC1hrSrBnCZPokRrDHjw==", - "dev": true + "version": "6.20.0", + "resolved": "https://npm.sinequa.com/undici-types/-/undici-types-6.20.0.tgz", + "integrity": "sha512-Ny6QZ2Nju20vw1SRHe3d9jVu6gJ+4e3+MMpqu7pqE5HT6WsTSlce++GQmK5UXS8mzV8DSYHrQH+Xrf2jVcuKNg==", + "dev": true, + "license": "MIT" }, "node_modules/unicode-canonical-property-names-ecmascript": { "version": "2.0.1", "resolved": "https://npm.sinequa.com/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-2.0.1.tgz", "integrity": "sha512-dA8WbNeb2a6oQzAQ55YlT5vQAWGV9WXOsi3SskE3bcCdM0P4SDd+24zS/OCacdRq5BkdsRj9q3Pg6YyQoxIGqg==", "dev": true, + "license": "MIT", "engines": { "node": ">=4" } @@ -12147,6 +12852,7 @@ "resolved": "https://npm.sinequa.com/unicode-match-property-ecmascript/-/unicode-match-property-ecmascript-2.0.0.tgz", "integrity": "sha512-5kaZCrbp5mmbz5ulBkDkbY0SsPOjKqVS35VpL9ulMPfSl0J0Xsm+9Evphv9CoIZFwre7aJoa94AY6seMKGVN5Q==", "dev": true, + "license": "MIT", "dependencies": { "unicode-canonical-property-names-ecmascript": "^2.0.0", "unicode-property-aliases-ecmascript": "^2.0.0" @@ -12160,6 +12866,7 @@ "resolved": "https://npm.sinequa.com/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-2.2.0.tgz", "integrity": "sha512-4IehN3V/+kkr5YeSSDDQG8QLqO26XpL2XP3GQtqwlT/QYSECAwFztxVHjlbh0+gjJ3XmNLS0zDsbgs9jWKExLg==", "dev": true, + "license": "MIT", "engines": { "node": ">=4" } @@ -12169,6 +12876,7 @@ "resolved": "https://npm.sinequa.com/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-2.1.0.tgz", "integrity": "sha512-6t3foTQI9qne+OZoVQB/8x8rk2k1eVy1gRXhV3oFQ5T6R1dqQ1xtin3XqSlx3+ATBkliTaR/hHyJBm+LVPNM8w==", "dev": true, + "license": "MIT", "engines": { "node": ">=4" } @@ -12178,6 +12886,7 @@ "resolved": "https://npm.sinequa.com/unicorn-magic/-/unicorn-magic-0.1.0.tgz", "integrity": "sha512-lRfVq8fE8gz6QMBuDM6a+LO3IAzTi05H6gCVaUpir2E1Rwpo4ZUog45KpNXKC/Mn3Yb9UDuHumeFTo9iV/D9FQ==", "dev": true, + "license": "MIT", "engines": { "node": ">=18" }, @@ -12187,9 +12896,10 @@ }, "node_modules/unique-filename": { "version": "3.0.0", - "resolved": "https://npm.sinequa.com:4873/unique-filename/-/unique-filename-3.0.0.tgz", + "resolved": "https://npm.sinequa.com/unique-filename/-/unique-filename-3.0.0.tgz", "integrity": "sha512-afXhuC55wkAmZ0P18QsVE6kp8JaxrEokN2HGIoIVv2ijHQd419H0+6EigAFcIzXeMIkcIkNBpB3L/DXB3cTS/g==", "dev": true, + "license": "ISC", "dependencies": { "unique-slug": "^4.0.0" }, @@ -12199,9 +12909,10 @@ }, "node_modules/unique-slug": { "version": "4.0.0", - "resolved": "https://npm.sinequa.com:4873/unique-slug/-/unique-slug-4.0.0.tgz", + "resolved": "https://npm.sinequa.com/unique-slug/-/unique-slug-4.0.0.tgz", "integrity": "sha512-WrcA6AyEfqDX5bWige/4NQfPZMtASNVxdmWR76WESYQVAACSgWcR6e9i0mofqqBxYFtL4oAxPIptY73/0YE1DQ==", "dev": true, + "license": "ISC", "dependencies": { "imurmurhash": "^0.1.4" }, @@ -12210,11 +12921,12 @@ } }, "node_modules/universalify": { - "version": "0.2.0", - "resolved": "https://npm.sinequa.com:4873/universalify/-/universalify-0.2.0.tgz", - "integrity": "sha512-CJ1QgKmNg3CwvAv/kOFmtnEN05f0D/cn9QntgNOQlQF9dgvVTHj3t+8JPdjqawCHk7V/KA+fbUqzZ9XWhcqPUg==", + "version": "2.0.1", + "resolved": "https://npm.sinequa.com/universalify/-/universalify-2.0.1.tgz", + "integrity": "sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==", + "license": "MIT", "engines": { - "node": ">= 4.0.0" + "node": ">= 10.0.0" } }, "node_modules/unpipe": { @@ -12222,14 +12934,15 @@ "resolved": "https://npm.sinequa.com/unpipe/-/unpipe-1.0.0.tgz", "integrity": "sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw=", "dev": true, + "license": "MIT", "engines": { "node": ">= 0.8" } }, "node_modules/update-browserslist-db": { - "version": "1.1.0", - "resolved": "https://npm.sinequa.com/update-browserslist-db/-/update-browserslist-db-1.1.0.tgz", - "integrity": "sha512-EdRAaAyk2cUE1wOf2DkEhzxqOQvFOoRJFNS6NeyJ01Gp2beMRpBAINjM2iDXE3KCuKhwnvHIQCJm6ThL2Z+HzQ==", + "version": "1.1.2", + "resolved": "https://npm.sinequa.com/update-browserslist-db/-/update-browserslist-db-1.1.2.tgz", + "integrity": "sha512-PPypAm5qvlD7XMZC3BujecnaOxwhrtoFR+Dqkk5Aa/6DssiH0ibKoketaj9w8LP7Bont1rYeoV5plxD7RTEPRg==", "dev": true, "funding": [ { @@ -12245,9 +12958,10 @@ "url": "https://github.com/sponsors/ai" } ], + "license": "MIT", "dependencies": { - "escalade": "^3.1.2", - "picocolors": "^1.0.1" + "escalade": "^3.2.0", + "picocolors": "^1.1.1" }, "bin": { "update-browserslist-db": "cli.js" @@ -12261,14 +12975,16 @@ "resolved": "https://npm.sinequa.com/uri-js/-/uri-js-4.4.1.tgz", "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", "dev": true, + "license": "BSD-2-Clause", "dependencies": { "punycode": "^2.1.0" } }, "node_modules/url-parse": { "version": "1.5.10", - "resolved": "https://npm.sinequa.com:4873/url-parse/-/url-parse-1.5.10.tgz", + "resolved": "https://npm.sinequa.com/url-parse/-/url-parse-1.5.10.tgz", "integrity": "sha512-WypcfiRhfeUP9vvF0j6rw0J3hrWrw6iZv3+22h6iRMJ/8z1Tj6XfLP4DsUix5MhMPnXpiHDoKyoZ/bdCkwBCiQ==", + "license": "MIT", "dependencies": { "querystringify": "^2.1.1", "requires-port": "^1.0.0" @@ -12276,32 +12992,36 @@ }, "node_modules/util-deprecate": { "version": "1.0.2", - "resolved": "https://npm.sinequa.com:4873/util-deprecate/-/util-deprecate-1.0.2.tgz", - "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=" + "resolved": "https://npm.sinequa.com/util-deprecate/-/util-deprecate-1.0.2.tgz", + "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=", + "license": "MIT" }, "node_modules/utils-merge": { "version": "1.0.1", - "resolved": "https://npm.sinequa.com:4873/utils-merge/-/utils-merge-1.0.1.tgz", + "resolved": "https://npm.sinequa.com/utils-merge/-/utils-merge-1.0.1.tgz", "integrity": "sha1-n5VxD1CiZ5R7LMwSR0HBAoQn5xM=", "dev": true, + "license": "MIT", "engines": { "node": ">= 0.4.0" } }, "node_modules/uuid": { "version": "8.3.2", - "resolved": "https://npm.sinequa.com:4873/uuid/-/uuid-8.3.2.tgz", + "resolved": "https://npm.sinequa.com/uuid/-/uuid-8.3.2.tgz", "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==", "dev": true, + "license": "MIT", "bin": { "uuid": "dist/bin/uuid" } }, "node_modules/validate-npm-package-license": { "version": "3.0.4", - "resolved": "https://npm.sinequa.com:4873/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz", + "resolved": "https://npm.sinequa.com/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz", "integrity": "sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==", "dev": true, + "license": "Apache-2.0", "dependencies": { "spdx-correct": "^3.0.0", "spdx-expression-parse": "^3.0.0" @@ -12309,18 +13029,20 @@ }, "node_modules/validate-npm-package-name": { "version": "5.0.1", - "resolved": "https://npm.sinequa.com:4873/validate-npm-package-name/-/validate-npm-package-name-5.0.1.tgz", + "resolved": "https://npm.sinequa.com/validate-npm-package-name/-/validate-npm-package-name-5.0.1.tgz", "integrity": "sha512-OljLrQ9SQdOUqTaQxqL5dEfZWrXExyyWsozYlAWFawPVNuD83igl7uJD2RTkNMbniIYgt8l81eCJGIdQF7avLQ==", "dev": true, + "license": "ISC", "engines": { "node": "^14.17.0 || ^16.13.0 || >=18.0.0" } }, "node_modules/vary": { "version": "1.1.2", - "resolved": "https://npm.sinequa.com:4873/vary/-/vary-1.1.2.tgz", + "resolved": "https://npm.sinequa.com/vary/-/vary-1.1.2.tgz", "integrity": "sha1-IpnwLG3tMNSllhsLn3RSShj2NPw=", "dev": true, + "license": "MIT", "engines": { "node": ">= 0.8" } @@ -12330,6 +13052,7 @@ "resolved": "https://npm.sinequa.com/vite/-/vite-5.4.6.tgz", "integrity": "sha512-IeL5f8OO5nylsgzd9tq4qD2QqI0k2CQLGrWD0rCN0EQJZpBK5vJAx0I+GDkMOXxQX/OfFHMuLIx6ddAxGX/k+Q==", "dev": true, + "license": "MIT", "dependencies": { "esbuild": "^0.21.3", "postcss": "^8.4.43", @@ -12392,6 +13115,7 @@ "ppc64" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "aix" @@ -12408,6 +13132,7 @@ "arm" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "android" @@ -12424,6 +13149,7 @@ "arm64" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "android" @@ -12440,6 +13166,7 @@ "x64" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "android" @@ -12456,6 +13183,7 @@ "arm64" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "darwin" @@ -12472,6 +13200,7 @@ "x64" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "darwin" @@ -12488,6 +13217,7 @@ "arm64" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "freebsd" @@ -12504,6 +13234,7 @@ "x64" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "freebsd" @@ -12520,6 +13251,7 @@ "arm" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "linux" @@ -12536,6 +13268,7 @@ "arm64" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "linux" @@ -12552,6 +13285,7 @@ "ia32" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "linux" @@ -12568,6 +13302,7 @@ "loong64" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "linux" @@ -12584,6 +13319,7 @@ "mips64el" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "linux" @@ -12600,6 +13336,7 @@ "ppc64" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "linux" @@ -12616,6 +13353,7 @@ "riscv64" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "linux" @@ -12632,6 +13370,7 @@ "s390x" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "linux" @@ -12648,6 +13387,7 @@ "x64" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "linux" @@ -12664,6 +13404,7 @@ "x64" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "netbsd" @@ -12680,6 +13421,7 @@ "x64" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "openbsd" @@ -12696,6 +13438,7 @@ "x64" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "sunos" @@ -12712,6 +13455,7 @@ "arm64" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "win32" @@ -12728,6 +13472,7 @@ "ia32" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "win32" @@ -12744,6 +13489,7 @@ "x64" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "win32" @@ -12758,6 +13504,7 @@ "integrity": "sha512-mg3OPMV4hXywwpoDxu3Qda5xCKQi+vCTZq8S9J/EpkhB2HzKXq4SNFZE3+NK93JYxc8VMSep+lOUSC/RVKaBqw==", "dev": true, "hasInstallScript": true, + "license": "MIT", "bin": { "esbuild": "bin/esbuild" }, @@ -12790,39 +13537,12 @@ "@esbuild/win32-x64": "0.21.5" } }, - "node_modules/vite/node_modules/postcss": { - "version": "8.4.47", - "resolved": "https://npm.sinequa.com/postcss/-/postcss-8.4.47.tgz", - "integrity": "sha512-56rxCq7G/XfB4EkXq9Egn5GCqugWvDFjafDOThIdMBsI15iqPqR5r15TfSr1YPYeEI19YeaXMCbY6u88Y76GLQ==", - "dev": true, - "funding": [ - { - "type": "opencollective", - "url": "https://opencollective.com/postcss/" - }, - { - "type": "tidelift", - "url": "https://tidelift.com/funding/github/npm/postcss" - }, - { - "type": "github", - "url": "https://github.com/sponsors/ai" - } - ], - "dependencies": { - "nanoid": "^3.3.7", - "picocolors": "^1.1.0", - "source-map-js": "^1.2.1" - }, - "engines": { - "node": "^10 || ^12 || >=14" - } - }, "node_modules/watchpack": { "version": "2.4.1", "resolved": "https://npm.sinequa.com/watchpack/-/watchpack-2.4.1.tgz", "integrity": "sha512-8wrBCMtVhqcXP2Sup1ctSkga6uc2Bx0IIvKyT7yTFier5AXHooSI+QyQQAtTb7+E0IUCCKyTFmXqdqgum2XWGg==", "dev": true, + "license": "MIT", "dependencies": { "glob-to-regexp": "^0.4.1", "graceful-fs": "^4.1.2" @@ -12833,17 +13553,19 @@ }, "node_modules/wbuf": { "version": "1.7.3", - "resolved": "https://npm.sinequa.com:4873/wbuf/-/wbuf-1.7.3.tgz", + "resolved": "https://npm.sinequa.com/wbuf/-/wbuf-1.7.3.tgz", "integrity": "sha512-O84QOnr0icsbFGLS0O3bI5FswxzRr8/gHwWkDlQFskhSPryQXvrTMxjxGP4+iWYoauLoBvfDpkrOauZ+0iZpDA==", "dev": true, + "license": "MIT", "dependencies": { "minimalistic-assert": "^1.0.0" } }, "node_modules/wcwidth": { "version": "1.0.1", - "resolved": "https://npm.sinequa.com:4873/wcwidth/-/wcwidth-1.0.1.tgz", + "resolved": "https://npm.sinequa.com/wcwidth/-/wcwidth-1.0.1.tgz", "integrity": "sha1-8LDc+RW8X/FSivrbLA4XtTLaL+g=", + "license": "MIT", "dependencies": { "defaults": "^1.0.3" } @@ -12852,18 +13574,21 @@ "version": "1.2.2", "resolved": "https://npm.sinequa.com/weak-lru-cache/-/weak-lru-cache-1.2.2.tgz", "integrity": "sha512-DEAoo25RfSYMuTGc9vPJzZcZullwIqRDSI9LOy+fkCJPi6hykCnfKaXTuPBDuXAUcqHXyOgFtHNp/kB2FjYHbw==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/webidl-conversions": { "version": "3.0.1", - "resolved": "https://npm.sinequa.com:4873/webidl-conversions/-/webidl-conversions-3.0.1.tgz", - "integrity": "sha1-JFNCdeKnvGvnvIZhHMFq4KVlSHE=" + "resolved": "https://npm.sinequa.com/webidl-conversions/-/webidl-conversions-3.0.1.tgz", + "integrity": "sha1-JFNCdeKnvGvnvIZhHMFq4KVlSHE=", + "license": "BSD-2-Clause" }, "node_modules/webpack": { "version": "5.94.0", "resolved": "https://npm.sinequa.com/webpack/-/webpack-5.94.0.tgz", "integrity": "sha512-KcsGn50VT+06JH/iunZJedYGUJS5FGjow8wb9c0v5n1Om8O1g4L6LjtfxwlXIATopoQu+vOXXa7gYisWxCoPyg==", "dev": true, + "license": "MIT", "dependencies": { "@types/estree": "^1.0.5", "@webassemblyjs/ast": "^1.12.1", @@ -12910,6 +13635,7 @@ "resolved": "https://npm.sinequa.com/webpack-dev-middleware/-/webpack-dev-middleware-7.4.2.tgz", "integrity": "sha512-xOO8n6eggxnwYpy1NlzUKpvrjfJTvae5/D6WOK0S2LSo7vjmo5gCM1DbLUmFqrMTJP+W/0YZNctm7jasWvLuBA==", "dev": true, + "license": "MIT", "dependencies": { "colorette": "^2.0.10", "memfs": "^4.6.0", @@ -12936,9 +13662,10 @@ }, "node_modules/webpack-dev-server": { "version": "5.0.4", - "resolved": "https://npm.sinequa.com:4873/webpack-dev-server/-/webpack-dev-server-5.0.4.tgz", + "resolved": "https://npm.sinequa.com/webpack-dev-server/-/webpack-dev-server-5.0.4.tgz", "integrity": "sha512-dljXhUgx3HqKP2d8J/fUMvhxGhzjeNVarDLcbO/EWMSgRizDkxHQDZQaLFL5VJY9tRBj2Gz+rvCEYYvhbqPHNA==", "dev": true, + "license": "MIT", "dependencies": { "@types/bonjour": "^3.5.13", "@types/connect-history-api-fallback": "^1.5.4", @@ -12993,11 +13720,50 @@ } } }, + "node_modules/webpack-dev-server/node_modules/chokidar": { + "version": "3.6.0", + "resolved": "https://npm.sinequa.com/chokidar/-/chokidar-3.6.0.tgz", + "integrity": "sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==", + "dev": true, + "license": "MIT", + "dependencies": { + "anymatch": "~3.1.2", + "braces": "~3.0.2", + "glob-parent": "~5.1.2", + "is-binary-path": "~2.1.0", + "is-glob": "~4.0.1", + "normalize-path": "~3.0.0", + "readdirp": "~3.6.0" + }, + "engines": { + "node": ">= 8.10.0" + }, + "funding": { + "url": "https://paulmillr.com/funding/" + }, + "optionalDependencies": { + "fsevents": "~2.3.2" + } + }, + "node_modules/webpack-dev-server/node_modules/glob-parent": { + "version": "5.1.2", + "resolved": "https://npm.sinequa.com/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "dev": true, + "license": "ISC", + "dependencies": { + "is-glob": "^4.0.1" + }, + "engines": { + "node": ">= 6" + } + }, "node_modules/webpack-dev-server/node_modules/http-proxy-middleware": { "version": "2.0.7", "resolved": "https://npm.sinequa.com/http-proxy-middleware/-/http-proxy-middleware-2.0.7.tgz", "integrity": "sha512-fgVY8AV7qU7z/MmXJ/rxwbrtQH4jBQ9m7kp3llF0liB7glmFeVZFBepQb32T3y8n8k2+AEYuMPCpinYW+/CuRA==", "dev": true, + "license": "MIT", "dependencies": { "@types/http-proxy": "^1.17.8", "http-proxy": "^1.18.1", @@ -13017,11 +13783,38 @@ } } }, + "node_modules/webpack-dev-server/node_modules/picomatch": { + "version": "2.3.1", + "resolved": "https://npm.sinequa.com/picomatch/-/picomatch-2.3.1.tgz", + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8.6" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/webpack-dev-server/node_modules/readdirp": { + "version": "3.6.0", + "resolved": "https://npm.sinequa.com/readdirp/-/readdirp-3.6.0.tgz", + "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", + "dev": true, + "license": "MIT", + "dependencies": { + "picomatch": "^2.2.1" + }, + "engines": { + "node": ">=8.10.0" + } + }, "node_modules/webpack-dev-server/node_modules/ws": { "version": "8.18.0", "resolved": "https://npm.sinequa.com/ws/-/ws-8.18.0.tgz", "integrity": "sha512-8VbfWfHLbbwu3+N6OKsOMpBdT4kXPDDB9cJk2bJ6mh9ucxdlnNvH1e+roYkKmN9Nxw2yjz7VzeO9oOz2zJ04Pw==", "dev": true, + "license": "MIT", "engines": { "node": ">=10.0.0" }, @@ -13043,6 +13836,7 @@ "resolved": "https://npm.sinequa.com/webpack-merge/-/webpack-merge-6.0.1.tgz", "integrity": "sha512-hXXvrjtx2PLYx4qruKl+kyRSLc52V+cCvMxRjmKwoA+CBbbF5GfIBtR6kCvl0fYGqTUPKB+1ktVmTHqMOzgCBg==", "dev": true, + "license": "MIT", "dependencies": { "clone-deep": "^4.0.1", "flat": "^5.0.2", @@ -13054,18 +13848,20 @@ }, "node_modules/webpack-sources": { "version": "3.2.3", - "resolved": "https://npm.sinequa.com:4873/webpack-sources/-/webpack-sources-3.2.3.tgz", + "resolved": "https://npm.sinequa.com/webpack-sources/-/webpack-sources-3.2.3.tgz", "integrity": "sha512-/DyMEOrDgLKKIG0fmvtz+4dUX/3Ghozwgm6iPp8KRhvn+eQf9+Q7GWxVNMk3+uCPWfdXYC4ExGBckIXdFEfH1w==", "dev": true, + "license": "MIT", "engines": { "node": ">=10.13.0" } }, "node_modules/webpack-subresource-integrity": { "version": "5.1.0", - "resolved": "https://npm.sinequa.com:4873/webpack-subresource-integrity/-/webpack-subresource-integrity-5.1.0.tgz", + "resolved": "https://npm.sinequa.com/webpack-subresource-integrity/-/webpack-subresource-integrity-5.1.0.tgz", "integrity": "sha512-sacXoX+xd8r4WKsy9MvH/q/vBtEHr86cpImXwyg74pFIpERKt6FmB8cXpeuh0ZLgclOlHI4Wcll7+R5L02xk9Q==", "dev": true, + "license": "MIT", "dependencies": { "typed-assert": "^1.0.8" }, @@ -13087,6 +13883,7 @@ "resolved": "https://npm.sinequa.com/ajv/-/ajv-6.12.6.tgz", "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", "dev": true, + "license": "MIT", "dependencies": { "fast-deep-equal": "^3.1.1", "fast-json-stable-stringify": "^2.0.0", @@ -13103,6 +13900,7 @@ "resolved": "https://npm.sinequa.com/ajv-keywords/-/ajv-keywords-3.5.2.tgz", "integrity": "sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==", "dev": true, + "license": "MIT", "peerDependencies": { "ajv": "^6.9.1" } @@ -13111,19 +13909,22 @@ "version": "2.3.1", "resolved": "https://npm.sinequa.com/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz", "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/webpack/node_modules/json-schema-traverse": { "version": "0.4.1", "resolved": "https://npm.sinequa.com/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/webpack/node_modules/schema-utils": { "version": "3.3.0", "resolved": "https://npm.sinequa.com/schema-utils/-/schema-utils-3.3.0.tgz", "integrity": "sha512-pN/yOAvcC+5rQ5nERGuwrjLlYvLTbCibnZ1I7B1LaiAz9BRBlE9GMgE/eqV30P7aJQUf7Ddimy/RsbYO/GrVGg==", "dev": true, + "license": "MIT", "dependencies": { "@types/json-schema": "^7.0.8", "ajv": "^6.12.5", @@ -13139,9 +13940,10 @@ }, "node_modules/websocket-driver": { "version": "0.7.4", - "resolved": "https://npm.sinequa.com:4873/websocket-driver/-/websocket-driver-0.7.4.tgz", + "resolved": "https://npm.sinequa.com/websocket-driver/-/websocket-driver-0.7.4.tgz", "integrity": "sha512-b17KeDIQVjvb0ssuSDF2cYXSg2iztliJ4B9WdsuB6J952qCPKmnVq4DyW5motImXHDC1cBT/1UezrJVsKw5zjg==", "dev": true, + "license": "Apache-2.0", "dependencies": { "http-parser-js": ">=0.5.1", "safe-buffer": ">=5.1.0", @@ -13153,48 +13955,52 @@ }, "node_modules/websocket-extensions": { "version": "0.1.4", - "resolved": "https://npm.sinequa.com:4873/websocket-extensions/-/websocket-extensions-0.1.4.tgz", + "resolved": "https://npm.sinequa.com/websocket-extensions/-/websocket-extensions-0.1.4.tgz", "integrity": "sha512-OqedPIGOfsDlo31UNwYbCFMSaO9m9G/0faIHj5/dZFDMFqPTcx6UwqyOy3COEaEOg/9VsGIpdqn62W5KhoKSpg==", "dev": true, + "license": "Apache-2.0", "engines": { "node": ">=0.8.0" } }, "node_modules/whatwg-url": { "version": "5.0.0", - "resolved": "https://npm.sinequa.com:4873/whatwg-url/-/whatwg-url-5.0.0.tgz", + "resolved": "https://npm.sinequa.com/whatwg-url/-/whatwg-url-5.0.0.tgz", "integrity": "sha1-lmRU6HZUYuN2RNNib2dCzotwll0=", + "license": "MIT", "dependencies": { "tr46": "~0.0.3", "webidl-conversions": "^3.0.0" } }, "node_modules/which": { - "version": "4.0.0", - "resolved": "https://npm.sinequa.com:4873/which/-/which-4.0.0.tgz", - "integrity": "sha512-GlaYyEb07DPxYCKhKzplCWBJtvxZcZMrL+4UkrTSJHHPyZU4mYYTv3qaOe77H7EODLSSopAUFAc6W8U4yqvscg==", - "dev": true, + "version": "2.0.2", + "resolved": "https://npm.sinequa.com/which/-/which-2.0.2.tgz", + "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", + "license": "ISC", "dependencies": { - "isexe": "^3.1.1" + "isexe": "^2.0.0" }, "bin": { - "node-which": "bin/which.js" + "node-which": "bin/node-which" }, "engines": { - "node": "^16.13.0 || >=18.0.0" + "node": ">= 8" } }, "node_modules/wildcard": { "version": "2.0.1", "resolved": "https://npm.sinequa.com/wildcard/-/wildcard-2.0.1.tgz", "integrity": "sha512-CC1bOL87PIWSBhDcTrdeLo6eGT7mCFtrg0uIJtqJUFyK+eJnzl8A1niH56uu7KMa5XFrtiV+AQuHO3n7DsHnLQ==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/wrap-ansi": { "version": "6.2.0", "resolved": "https://npm.sinequa.com/wrap-ansi/-/wrap-ansi-6.2.0.tgz", "integrity": "sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==", "dev": true, + "license": "MIT", "dependencies": { "ansi-styles": "^4.0.0", "string-width": "^4.1.0", @@ -13207,8 +14013,9 @@ "node_modules/wrap-ansi-cjs": { "name": "wrap-ansi", "version": "7.0.0", - "resolved": "https://npm.sinequa.com:4873/wrap-ansi/-/wrap-ansi-7.0.0.tgz", + "resolved": "https://npm.sinequa.com/wrap-ansi/-/wrap-ansi-7.0.0.tgz", "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", + "license": "MIT", "dependencies": { "ansi-styles": "^4.0.0", "string-width": "^4.1.0", @@ -13221,78 +14028,78 @@ "url": "https://github.com/chalk/wrap-ansi?sponsor=1" } }, - "node_modules/wrap-ansi-cjs/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://npm.sinequa.com:4873/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dependencies": { - "color-convert": "^2.0.1" - }, + "node_modules/wrap-ansi-cjs/node_modules/emoji-regex": { + "version": "8.0.0", + "resolved": "https://npm.sinequa.com/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "license": "MIT" + }, + "node_modules/wrap-ansi-cjs/node_modules/is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://npm.sinequa.com/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "license": "MIT", "engines": { "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, - "node_modules/wrap-ansi-cjs/node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://npm.sinequa.com:4873/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "node_modules/wrap-ansi-cjs/node_modules/string-width": { + "version": "4.2.3", + "resolved": "https://npm.sinequa.com/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "license": "MIT", "dependencies": { - "color-name": "~1.1.4" + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" }, "engines": { - "node": ">=7.0.0" + "node": ">=8" } }, - "node_modules/wrap-ansi-cjs/node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://npm.sinequa.com:4873/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" + "node_modules/wrap-ansi/node_modules/emoji-regex": { + "version": "8.0.0", + "resolved": "https://npm.sinequa.com/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "dev": true, + "license": "MIT" }, - "node_modules/wrap-ansi/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://npm.sinequa.com/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "node_modules/wrap-ansi/node_modules/is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://npm.sinequa.com/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", "dev": true, - "dependencies": { - "color-convert": "^2.0.1" - }, + "license": "MIT", "engines": { "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, - "node_modules/wrap-ansi/node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://npm.sinequa.com/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "node_modules/wrap-ansi/node_modules/string-width": { + "version": "4.2.3", + "resolved": "https://npm.sinequa.com/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", "dev": true, + "license": "MIT", "dependencies": { - "color-name": "~1.1.4" + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" }, "engines": { - "node": ">=7.0.0" + "node": ">=8" } }, - "node_modules/wrap-ansi/node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://npm.sinequa.com/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - }, "node_modules/wrappy": { "version": "1.0.2", - "resolved": "https://npm.sinequa.com:4873/wrappy/-/wrappy-1.0.2.tgz", - "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=" + "resolved": "https://npm.sinequa.com/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=", + "license": "ISC" }, "node_modules/ws": { "version": "7.5.10", "resolved": "https://npm.sinequa.com/ws/-/ws-7.5.10.tgz", "integrity": "sha512-+dbF1tHwZpXcbOJdVOkzLDxZP1ailvSxM6ZweXTegylPny803bFhA+vqBYw4s31NSAk4S2Qz+AKXK9a4wkdjcQ==", + "license": "MIT", "engines": { "node": ">=8.3.0" }, @@ -13311,8 +14118,9 @@ }, "node_modules/y18n": { "version": "5.0.8", - "resolved": "https://npm.sinequa.com:4873/y18n/-/y18n-5.0.8.tgz", + "resolved": "https://npm.sinequa.com/y18n/-/y18n-5.0.8.tgz", "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==", + "license": "ISC", "engines": { "node": ">=10" } @@ -13321,13 +14129,15 @@ "version": "3.1.1", "resolved": "https://npm.sinequa.com/yallist/-/yallist-3.1.1.tgz", "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==", - "dev": true + "dev": true, + "license": "ISC" }, "node_modules/yaml": { - "version": "2.4.3", - "resolved": "https://npm.sinequa.com:4873/yaml/-/yaml-2.4.3.tgz", - "integrity": "sha512-sntgmxj8o7DE7g/Qi60cqpLBA3HG3STcDA0kO+WfB05jEKhZMbY7umNm2rBpQvsmZ16/lPXCJGW2672dgOUkrg==", + "version": "2.7.0", + "resolved": "https://npm.sinequa.com/yaml/-/yaml-2.7.0.tgz", + "integrity": "sha512-+hSoy/QHluxmC9kCIJyL/uyFmLmc+e5CFR5Wa+bpIhIj85LVb9ZH2nVnqrHoSvKogwODv0ClqZkmiSSaIH5LTA==", "dev": true, + "license": "ISC", "bin": { "yaml": "bin.mjs" }, @@ -13337,8 +14147,9 @@ }, "node_modules/yargs": { "version": "17.7.2", - "resolved": "https://npm.sinequa.com:4873/yargs/-/yargs-17.7.2.tgz", + "resolved": "https://npm.sinequa.com/yargs/-/yargs-17.7.2.tgz", "integrity": "sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==", + "license": "MIT", "dependencies": { "cliui": "^8.0.1", "escalade": "^3.1.1", @@ -13354,17 +14165,48 @@ }, "node_modules/yargs-parser": { "version": "21.1.1", - "resolved": "https://npm.sinequa.com:4873/yargs-parser/-/yargs-parser-21.1.1.tgz", + "resolved": "https://npm.sinequa.com/yargs-parser/-/yargs-parser-21.1.1.tgz", "integrity": "sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==", + "license": "ISC", "engines": { "node": ">=12" } }, + "node_modules/yargs/node_modules/emoji-regex": { + "version": "8.0.0", + "resolved": "https://npm.sinequa.com/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "license": "MIT" + }, + "node_modules/yargs/node_modules/is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://npm.sinequa.com/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/yargs/node_modules/string-width": { + "version": "4.2.3", + "resolved": "https://npm.sinequa.com/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "license": "MIT", + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, "node_modules/yocto-queue": { - "version": "1.0.0", - "resolved": "https://npm.sinequa.com:4873/yocto-queue/-/yocto-queue-1.0.0.tgz", - "integrity": "sha512-9bnSc/HEW2uRy67wc+T8UwauLuPJVn28jb+GtJY16iiKWyvmYJRXVT4UamsAEGQfPohgr2q4Tq0sQbQlxTfi1g==", + "version": "1.1.1", + "resolved": "https://npm.sinequa.com/yocto-queue/-/yocto-queue-1.1.1.tgz", + "integrity": "sha512-b4JR1PFR10y1mKjhHY9LaGo6tmrgjit7hxVIeAmyMw3jegXR4dhYqLaQF5zMXZxY7tLpMyJeLjr1C4rLmkVe8g==", "dev": true, + "license": "MIT", "engines": { "node": ">=12.20" }, @@ -13377,6 +14219,7 @@ "resolved": "https://npm.sinequa.com/yoctocolors-cjs/-/yoctocolors-cjs-2.1.2.tgz", "integrity": "sha512-cYVsTjKl8b+FrnidjibDWskAv7UKOfcwaVZdp/it9n1s9fU3IkgDbhdIRKCW4JDsAlECJY0ytoVPT3sK6kideA==", "dev": true, + "license": "MIT", "engines": { "node": ">=18" }, @@ -13387,7 +14230,8 @@ "node_modules/zone.js": { "version": "0.14.10", "resolved": "https://npm.sinequa.com/zone.js/-/zone.js-0.14.10.tgz", - "integrity": "sha512-YGAhaO7J5ywOXW6InXNlLmfU194F8lVgu7bRntUF3TiG8Y3nBK0x1UJJuHUP/e8IyihkjCYqhCScpSwnlaSRkQ==" + "integrity": "sha512-YGAhaO7J5ywOXW6InXNlLmfU194F8lVgu7bRntUF3TiG8Y3nBK0x1UJJuHUP/e8IyihkjCYqhCScpSwnlaSRkQ==", + "license": "MIT" } } } diff --git a/src/core/components/drawer/advanced-search/advanced-search.component.html b/src/core/components/drawer/advanced-search/advanced-search.component.html index fe3df3ec..e184762b 100644 --- a/src/core/components/drawer/advanced-search/advanced-search.component.html +++ b/src/core/components/drawer/advanced-search/advanced-search.component.html @@ -115,6 +115,33 @@ } } + + @if ((article().geo ?? []).length > 0) { + + } + + @if ((article().company ?? []).length > 0) { + + } + + @if ((article().person ?? []).length > 0) { + + } } diff --git a/src/core/components/drawer/advanced-search/advanced-search.component.ts b/src/core/components/drawer/advanced-search/advanced-search.component.ts index 2c40b3e5..d6d57cde 100644 --- a/src/core/components/drawer/advanced-search/advanced-search.component.ts +++ b/src/core/components/drawer/advanced-search/advanced-search.component.ts @@ -5,8 +5,8 @@ import { HashMap, Translation, TranslocoPipe, provideTranslocoScope } from '@jsv import { getState } from '@ngrx/signals'; import { Subscription } from 'rxjs'; -import { Article, CCWebService } from '@sinequa/atomic'; -import { AppStore, ApplicationStore, ArticleMetadata, MetadataComponent, PreviewService, SelectionStore } from '@sinequa/atomic-angular'; +import { CCWebService } from '@sinequa/atomic'; +import { AppStore, ApplicationStore, ArticleMetadata, PreviewArticle, MetadataComponent, PreviewService, SelectionStore } from '@sinequa/atomic-angular'; interface MetadataNavigation { index: number; @@ -45,7 +45,7 @@ const loader = ['en', 'fr'].reduce((acc, lang) => { providers: [provideTranslocoScope({ scope: 'drawers', loader })] }) export class AdvancedSearchComponent implements OnDestroy { - public readonly article = input.required
    (); + public readonly article = input.required(); public readonly labels = inject(AppStore).getLabels(); private readonly applicationStore = inject(ApplicationStore); diff --git a/src/core/components/drawer/preview/drawer-preview.component.ts b/src/core/components/drawer/preview/drawer-preview.component.ts index 197fe642..07d04c5a 100644 --- a/src/core/components/drawer/preview/drawer-preview.component.ts +++ b/src/core/components/drawer/preview/drawer-preview.component.ts @@ -1,11 +1,11 @@ import { AsyncPipe, NgClass, NgComponentOutlet } from '@angular/common'; import { Component, Inject, InjectionToken, OnDestroy, OnInit, computed, effect, inject, input, signal, untracked } from '@angular/core'; import { getState } from '@ngrx/signals'; -import { BehaviorSubject, firstValueFrom } from 'rxjs'; +import { firstValueFrom } from 'rxjs'; -import { Article, CCApp, PreviewData } from '@sinequa/atomic'; +import { CCApp, PreviewData } from '@sinequa/atomic'; -import { AppStore, PreviewService, QueryParamsStore, SelectionStore } from '@sinequa/atomic-angular'; +import { AppStore, PreviewArticle, PreviewService, QueryParamsStore, SelectionStore } from '@sinequa/atomic-angular'; import { PreviewDefaultComponent } from '@/core/components/preview/default/preview-default.component'; import { PreviewSlideComponent } from '@/core/components/preview/slide/preview-slide.component'; @@ -56,7 +56,7 @@ export class DrawerPreviewComponent extends DrawerComponent implements OnInit, O public readonly articleId = input.required(); public readonly previewData = signal(undefined); - public readonly article = computed(() => this.previewData()?.record as Article); + public readonly article = computed(() => this.previewData()?.record as PreviewArticle); public readonly inputs = computed(() => ({ previewData: this.previewData() })); public readonly previewType = computed(() => { From c2cd97824700e7a2e33b47934bf43dde9c6ef1f8 Mon Sep 17 00:00:00 2001 From: Guillaume Leibfried Date: Thu, 23 Jan 2025 13:44:53 +0100 Subject: [PATCH 017/658] use proper transloco labels --- .../drawer/advanced-search/advanced-search.component.html | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/core/components/drawer/advanced-search/advanced-search.component.html b/src/core/components/drawer/advanced-search/advanced-search.component.html index e184762b..91143a52 100644 --- a/src/core/components/drawer/advanced-search/advanced-search.component.html +++ b/src/core/components/drawer/advanced-search/advanced-search.component.html @@ -119,7 +119,7 @@ @if ((article().geo ?? []).length > 0) { @@ -128,7 +128,7 @@ @if ((article().company ?? []).length > 0) { @@ -137,7 +137,7 @@ @if ((article().person ?? []).length > 0) { @@ -150,7 +150,7 @@

    - {{ name }} + {{ name | transloco }}

    From a4add470feccc6125fac307ebdce27dfc6ce0f52 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Lo=C3=AFc=20Juillet?= Date: Thu, 23 Jan 2025 13:45:48 +0100 Subject: [PATCH 018/658] =?UTF-8?q?=E2=99=BB=EF=B8=8F=20rework=20of=20verb?= =?UTF-8?q?ose=20flag?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- package-lock.json | 10 +++++----- package.json | 2 +- .../drawer/drawer-stack/drawer-stack.component.ts | 3 +-- src/environments/env.model.ts | 1 - src/environments/environment.production.ts | 3 +-- src/environments/environment.ts | 1 - src/main.ts | 10 +++++----- 7 files changed, 13 insertions(+), 17 deletions(-) diff --git a/package-lock.json b/package-lock.json index f9304623..49a7a6cc 100644 --- a/package-lock.json +++ b/package-lock.json @@ -26,7 +26,7 @@ "@ngrx/store": "^18.1.1", "@popperjs/core": "^2.11.8", "@sinequa/atomic": "^0.0.65", - "@sinequa/atomic-angular": "^0.0.149", + "@sinequa/atomic-angular": "^0.0.150", "@tanstack/angular-query-experimental": "^5.40.0", "@types/node": "^16.18.11", "clsx": "^2.1.0", @@ -4268,12 +4268,12 @@ "node_modules/@sinequa/atomic": { "version": "0.0.65", "resolved": "https://npm.sinequa.com/@sinequa/atomic/-/atomic-0.0.65.tgz", - "integrity": "sha512-MO67dAv7u192/44ErIuPlj9/XQZ/x3wRjlBuM7bagAG/nEB9bHCnl/B2x40606wcZXOdTO+M6n2pL40Y4WHnMA==" + "integrity": "sha512-plKSQ6sYehrsmN6J38urunMJEPY65vICADehqRPtBLP+wW8cet4GoNWkR1S/xlYB4We1/PUerv1c9kogWickxw==" }, "node_modules/@sinequa/atomic-angular": { - "version": "0.0.149", - "resolved": "https://npm.sinequa.com/@sinequa/atomic-angular/-/atomic-angular-0.0.149.tgz", - "integrity": "sha512-elHpcqdCpFpDjJeQocK/3lZpDiwaDzMkhNPIVJ6McTdqvzg8sBc6i52gYlfaudmjH25UA/3ALjurwn4N4QVnDQ==", + "version": "0.0.150", + "resolved": "https://npm.sinequa.com/@sinequa/atomic-angular/-/atomic-angular-0.0.150.tgz", + "integrity": "sha512-1fBEDaHqLfLck2ruPM+d3RMOYYXp/uDniB4BllyT+QV2imQp5fiCBC9IpnSuxfoPtWqStwekM5guJ/36RsKBnw==", "dependencies": { "tslib": "^2.3.0" } diff --git a/package.json b/package.json index f70b6d88..c3b85a60 100644 --- a/package.json +++ b/package.json @@ -34,7 +34,7 @@ "@ngrx/store": "^18.1.1", "@popperjs/core": "^2.11.8", "@sinequa/atomic": "^0.0.65", - "@sinequa/atomic-angular": "^0.0.149", + "@sinequa/atomic-angular": "^0.0.150", "@tanstack/angular-query-experimental": "^5.40.0", "@types/node": "^16.18.11", "clsx": "^2.1.0", diff --git a/src/core/components/drawer/drawer-stack/drawer-stack.component.ts b/src/core/components/drawer/drawer-stack/drawer-stack.component.ts index cc172d53..bfd778db 100644 --- a/src/core/components/drawer/drawer-stack/drawer-stack.component.ts +++ b/src/core/components/drawer/drawer-stack/drawer-stack.component.ts @@ -1,7 +1,6 @@ import { Component, ComponentRef, HostBinding, OnDestroy, ViewContainerRef, inject } from '@angular/core'; import { Subscription } from 'rxjs'; -import { globalConfig } from '@sinequa/atomic'; import { DrawerStackService, SelectionHistoryService } from '@sinequa/atomic-angular'; import { DrawerComponent } from '../drawer.component'; @@ -84,7 +83,7 @@ export class DrawerStackComponent implements OnDestroy { private openTopDrawer(index: number): void { if (this.drawers.length >= DRAWER_STACK_MAX_COUNT) { - if (globalConfig.verbose) console.log('Drawer stack is full'); + console.log('Drawer stack is full'); this.shiftDrawer(); } diff --git a/src/environments/env.model.ts b/src/environments/env.model.ts index e48618d0..2b03dcec 100644 --- a/src/environments/env.model.ts +++ b/src/environments/env.model.ts @@ -2,5 +2,4 @@ import { AppGlobalConfig } from "@sinequa/atomic"; export type Environment = AppGlobalConfig & { production: boolean; - verbose: boolean; } \ No newline at end of file diff --git a/src/environments/environment.production.ts b/src/environments/environment.production.ts index 487d3e02..826809d6 100644 --- a/src/environments/environment.production.ts +++ b/src/environments/environment.production.ts @@ -1,6 +1,5 @@ import { Environment } from "./env.model"; export const environment: Environment = { - production: true, - verbose: false + production: true }; \ No newline at end of file diff --git a/src/environments/environment.ts b/src/environments/environment.ts index ef62db4b..34798caf 100644 --- a/src/environments/environment.ts +++ b/src/environments/environment.ts @@ -2,7 +2,6 @@ import { Environment } from "./env.model"; export const environment: Environment = { production: false, - verbose: false, app: 'training', autoOAuthProvider: 'identity-dev' } \ No newline at end of file diff --git a/src/main.ts b/src/main.ts index 6193a742..e700478a 100644 --- a/src/main.ts +++ b/src/main.ts @@ -1,7 +1,7 @@ import { bootstrapApplication } from '@angular/platform-browser'; import { focusGroupKeyUX, hiddenKeyUX, hotkeyKeyUX, jumpKeyUX, pressKeyUX, startKeyUX } from 'keyux'; -import { globalConfig, setGlobalConfig } from '@sinequa/atomic'; +import { applyConsoleLogLevels, setGlobalConfig } from '@sinequa/atomic'; import atomicAngular from "../node_modules/@sinequa/atomic-angular/package.json"; import atomic from "../node_modules/@sinequa/atomic/package.json"; @@ -11,6 +11,8 @@ import { environment } from './environments/environment'; setGlobalConfig(environment); +applyConsoleLogLevels(); + /** * keyux configuration */ @@ -24,10 +26,8 @@ startKeyUX(window, [ bootstrapApplication(AppComponent, appConfig) .then(() => { - if (globalConfig.verbose) { - console.log("atomic", atomic.version); - console.log("atomic-angular", atomicAngular.version); - } + console.info("atomic", atomic.version); + console.info("atomic-angular", atomicAngular.version); }) .catch((err) => { console.error("bootstrapApplication error:", err); From c5d291d049faef81382dde25b3805fd4de446962 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Lo=C3=AFc=20Juillet?= Date: Fri, 24 Jan 2025 12:13:36 +0100 Subject: [PATCH 019/658] =?UTF-8?q?=F0=9F=8F=97=EF=B8=8F=20up:atomic?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- package-lock.json | 16 ++++++++-------- package.json | 4 ++-- 2 files changed, 10 insertions(+), 10 deletions(-) diff --git a/package-lock.json b/package-lock.json index 998313a0..49a7a6cc 100644 --- a/package-lock.json +++ b/package-lock.json @@ -25,8 +25,8 @@ "@ngrx/signals": "^18.1.1", "@ngrx/store": "^18.1.1", "@popperjs/core": "^2.11.8", - "@sinequa/atomic": "^0.0.63", - "@sinequa/atomic-angular": "^0.0.149", + "@sinequa/atomic": "^0.0.65", + "@sinequa/atomic-angular": "^0.0.150", "@tanstack/angular-query-experimental": "^5.40.0", "@types/node": "^16.18.11", "clsx": "^2.1.0", @@ -4266,14 +4266,14 @@ } }, "node_modules/@sinequa/atomic": { - "version": "0.0.63", - "resolved": "https://npm.sinequa.com/@sinequa/atomic/-/atomic-0.0.63.tgz", - "integrity": "sha512-YCyy36VWCa86mbMx9kfwYV/TKOaaWQY6IDXfSaMy6y4peMS8PTiLh485xLdwK1HAPGk3DXKfLZSW3eJMUYUxTw==" + "version": "0.0.65", + "resolved": "https://npm.sinequa.com/@sinequa/atomic/-/atomic-0.0.65.tgz", + "integrity": "sha512-plKSQ6sYehrsmN6J38urunMJEPY65vICADehqRPtBLP+wW8cet4GoNWkR1S/xlYB4We1/PUerv1c9kogWickxw==" }, "node_modules/@sinequa/atomic-angular": { - "version": "0.0.149", - "resolved": "https://npm.sinequa.com/@sinequa/atomic-angular/-/atomic-angular-0.0.149.tgz", - "integrity": "sha512-N0fDvtKDCLepBeWK3UrtJIXzNujDXgYMQNgjZynmOFqIjMXAGBZKb3qudPf0Xw+IhFjwT8wH52PipYmLTJLKPQ==", + "version": "0.0.150", + "resolved": "https://npm.sinequa.com/@sinequa/atomic-angular/-/atomic-angular-0.0.150.tgz", + "integrity": "sha512-1fBEDaHqLfLck2ruPM+d3RMOYYXp/uDniB4BllyT+QV2imQp5fiCBC9IpnSuxfoPtWqStwekM5guJ/36RsKBnw==", "dependencies": { "tslib": "^2.3.0" } diff --git a/package.json b/package.json index ca6d2b70..c3b85a60 100644 --- a/package.json +++ b/package.json @@ -33,8 +33,8 @@ "@ngrx/signals": "^18.1.1", "@ngrx/store": "^18.1.1", "@popperjs/core": "^2.11.8", - "@sinequa/atomic": "^0.0.63", - "@sinequa/atomic-angular": "^0.0.149", + "@sinequa/atomic": "^0.0.65", + "@sinequa/atomic-angular": "^0.0.150", "@tanstack/angular-query-experimental": "^5.40.0", "@types/node": "^16.18.11", "clsx": "^2.1.0", From 839afb96b767006bb72b8ea6da40f594c37e8c83 Mon Sep 17 00:00:00 2001 From: Guillaume Leibfried Date: Fri, 24 Jan 2025 15:55:20 +0100 Subject: [PATCH 020/658] make bookmarks and saved searches icons black --- src/core/features/bookmarks/list/bookmarks-list.component.html | 2 +- src/core/features/saved-searches/saved-searches.component.html | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/core/features/bookmarks/list/bookmarks-list.component.html b/src/core/features/bookmarks/list/bookmarks-list.component.html index 81ab3364..73ee92af 100644 --- a/src/core/features/bookmarks/list/bookmarks-list.component.html +++ b/src/core/features/bookmarks/list/bookmarks-list.component.html @@ -6,7 +6,7 @@ (click)="onClick(bookmark)" (keydown.enter)="onClick(bookmark)" > - +

    {{ bookmark.label }}

    diff --git a/src/core/features/saved-searches/saved-searches.component.html b/src/core/features/saved-searches/saved-searches.component.html index cc92c546..1eb17523 100644 --- a/src/core/features/saved-searches/saved-searches.component.html +++ b/src/core/features/saved-searches/saved-searches.component.html @@ -6,7 +6,7 @@ (click)="onClick(search)" (keydown.enter)="onClick(search)" > - +

    {{ search.label }}

    From d00b3febb685e5e034e8c3eaf3048a466144f580 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Lo=C3=AFc=20Juillet?= Date: Mon, 27 Jan 2025 16:10:17 +0100 Subject: [PATCH 021/658] =?UTF-8?q?=F0=9F=9B=A0=EF=B8=8F=20add=20start=20d?= =?UTF-8?q?ocs=20commands?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- package.json | 2 ++ 1 file changed, 2 insertions(+) diff --git a/package.json b/package.json index c3b85a60..61a8d3a1 100644 --- a/package.json +++ b/package.json @@ -5,11 +5,13 @@ "ng": "ng", "start": "ng serve --ssl=true --proxy-config=proxy.conf.json", "start:local": "ng serve --ssl=true --proxy-config=proxy.conf.local.json", + "start:docs": "cd docusaurus && npm start", "build": "ng build", "watch": "ng build --watch --configuration development", "test": "ng test", "lint": "ng lint", "up:atomic": "npm i @sinequa/atomic@latest @sinequa/atomic-angular@latest", + "docs:start": "npm run start:docs", "docs:ci": "cd docusaurus && npm ci", "docs:build": "cd docusaurus && npm run build", "docs:build-internal": "cd docusaurus && npm run build-internal" From 4ed8eebcd41b8b33ccfa159bc4cfdd654cf635be Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Lo=C3=AFc=20Juillet?= Date: Mon, 27 Jan 2025 16:10:34 +0100 Subject: [PATCH 022/658] =?UTF-8?q?=F0=9F=93=96=20add=20docs=20for=20log?= =?UTF-8?q?=20levels?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../docs/atomic-angular/utils/log-levels.md | 29 +++++++++ docusaurus/docs/atomic/log-levels.md | 60 +++++++++++++++++++ docusaurus/sidebars.js | 1 + 3 files changed, 90 insertions(+) create mode 100644 docusaurus/docs/atomic-angular/utils/log-levels.md create mode 100644 docusaurus/docs/atomic/log-levels.md diff --git a/docusaurus/docs/atomic-angular/utils/log-levels.md b/docusaurus/docs/atomic-angular/utils/log-levels.md new file mode 100644 index 00000000..5c4d5cef --- /dev/null +++ b/docusaurus/docs/atomic-angular/utils/log-levels.md @@ -0,0 +1,29 @@ +--- +title: Log levels +--- + +# Introduction + +Log levels uses `@sinequa/atomic-js` log levels and provides a Angular function to provide it at application bootstrap. + +See [atomic log levels](/atomic/log-levels) for more information. + +:::info +You can use the basic `atomic-js` function or the Angular function for your application, they do the exact same thing. +::: + +## Usage + +Use the `withConsoleLogLevels` function to apply the log levels to the console. + +```ts title="main.ts" +// ... imports +import { applyConsoleLogLevels } from "@sinequa/atomic"; + +// ... +bootstrapApplication(AppComponent, appConfig) + .then(withConsoleLogLevels) + .catch( + //... + ); +``` diff --git a/docusaurus/docs/atomic/log-levels.md b/docusaurus/docs/atomic/log-levels.md new file mode 100644 index 00000000..c1e970a1 --- /dev/null +++ b/docusaurus/docs/atomic/log-levels.md @@ -0,0 +1,60 @@ +--- +title: Log levels +--- + +# Introduction + +Log levels allows user to see different levels of logs in the console, by setting a level you imply more restrictive levels with it. + +The log levels, from less to most restrictive, are: + - `all`: you'll see every messages from the application + - `debug`: you'll see debug messages and above, should be used for development purposes + - `log`: you'll see log messages and above + - `info`: you'll see info messages and above, ie. application or component mode, package versions, etc. + - `warn`: you'll see warn messages and above, ie. configuration issues with fallback values, third party license duration reminder, etc. + - `error`: you'll see only error messages, ie. missing required configuration, failed to login, etc. + - `none`: you won't see **any** messages from the application + +:::info +If no log level is defined, the default will be used, default log level is `log`. +::: + +:::warning +Log levels works by overriding the default `window.console` object, and therefor, you **need to call setup functions** to make it work, even with no arguments. +That means you'll see log levels applied **from the moment** you call the setup function, and not before. +::: + + +## Usage + +You can set a log level at the start up of the application by calling `applyConsoleLogLevels()`. +The log level is defined in the `globalConfig` object. As it's evaluated on each `console` call, you can change its value at any time. + + +```ts title="console.ts" +export enum LogLevel { + 'all' = 0, + 'debug', // 1 + 'log', // 2 + 'info', // 3 + 'warn', // 4 + 'error', // 5 + 'none' // 6 +}; +``` + +```ts title="global.config.ts" +export type AppGlobalConfig = { + //... + logLevel?: LogLevel +} +``` + +```ts title="main.ts" +// ... imports +import { environment } from './environments/environment'; + +// ... +setGlobalConfig(environment); +applyConsoleLogLevels(); // log level is applied from this line +``` diff --git a/docusaurus/sidebars.js b/docusaurus/sidebars.js index bdb055c3..b2f411c9 100644 --- a/docusaurus/sidebars.js +++ b/docusaurus/sidebars.js @@ -47,6 +47,7 @@ const sidebars = { "atomic/authentication", "atomic/helpers", "atomic/audit", + "atomic/log-levels" ], }, { From f0785edb37c2826f26b69aa44966c4fd35c533f9 Mon Sep 17 00:00:00 2001 From: Guillaume Leibfried Date: Wed, 29 Jan 2025 12:44:46 +0100 Subject: [PATCH 023/658] refactor entities highlights --- .../advanced-search.component.html | 32 +++---------------- .../advanced-search.component.ts | 6 ++-- .../preview/drawer-preview.component.ts | 6 ++-- 3 files changed, 10 insertions(+), 34 deletions(-) diff --git a/src/core/components/drawer/advanced-search/advanced-search.component.html b/src/core/components/drawer/advanced-search/advanced-search.component.html index 91143a52..427faafc 100644 --- a/src/core/components/drawer/advanced-search/advanced-search.component.html +++ b/src/core/components/drawer/advanced-search/advanced-search.component.html @@ -111,36 +111,12 @@ - @for (highlight of previewHighlights(); track $index) { - - } - } - - @if ((article().geo ?? []).length > 0) { - } - @if ((article().company ?? []).length > 0) { - - } - - @if ((article().person ?? []).length > 0) { - + @for (highlight of previewHighlights(); track $index) { + @if (highlight.metadata) { + + } } } diff --git a/src/core/components/drawer/advanced-search/advanced-search.component.ts b/src/core/components/drawer/advanced-search/advanced-search.component.ts index d6d57cde..2c40b3e5 100644 --- a/src/core/components/drawer/advanced-search/advanced-search.component.ts +++ b/src/core/components/drawer/advanced-search/advanced-search.component.ts @@ -5,8 +5,8 @@ import { HashMap, Translation, TranslocoPipe, provideTranslocoScope } from '@jsv import { getState } from '@ngrx/signals'; import { Subscription } from 'rxjs'; -import { CCWebService } from '@sinequa/atomic'; -import { AppStore, ApplicationStore, ArticleMetadata, PreviewArticle, MetadataComponent, PreviewService, SelectionStore } from '@sinequa/atomic-angular'; +import { Article, CCWebService } from '@sinequa/atomic'; +import { AppStore, ApplicationStore, ArticleMetadata, MetadataComponent, PreviewService, SelectionStore } from '@sinequa/atomic-angular'; interface MetadataNavigation { index: number; @@ -45,7 +45,7 @@ const loader = ['en', 'fr'].reduce((acc, lang) => { providers: [provideTranslocoScope({ scope: 'drawers', loader })] }) export class AdvancedSearchComponent implements OnDestroy { - public readonly article = input.required(); + public readonly article = input.required
    (); public readonly labels = inject(AppStore).getLabels(); private readonly applicationStore = inject(ApplicationStore); diff --git a/src/core/components/drawer/preview/drawer-preview.component.ts b/src/core/components/drawer/preview/drawer-preview.component.ts index 07d04c5a..5c40d466 100644 --- a/src/core/components/drawer/preview/drawer-preview.component.ts +++ b/src/core/components/drawer/preview/drawer-preview.component.ts @@ -3,9 +3,9 @@ import { Component, Inject, InjectionToken, OnDestroy, OnInit, computed, effect, import { getState } from '@ngrx/signals'; import { firstValueFrom } from 'rxjs'; -import { CCApp, PreviewData } from '@sinequa/atomic'; +import { CCApp, PreviewData, Article } from '@sinequa/atomic'; -import { AppStore, PreviewArticle, PreviewService, QueryParamsStore, SelectionStore } from '@sinequa/atomic-angular'; +import { AppStore, PreviewService, QueryParamsStore, SelectionStore } from '@sinequa/atomic-angular'; import { PreviewDefaultComponent } from '@/core/components/preview/default/preview-default.component'; import { PreviewSlideComponent } from '@/core/components/preview/slide/preview-slide.component'; @@ -56,7 +56,7 @@ export class DrawerPreviewComponent extends DrawerComponent implements OnInit, O public readonly articleId = input.required(); public readonly previewData = signal(undefined); - public readonly article = computed(() => this.previewData()?.record as PreviewArticle); + public readonly article = computed(() => this.previewData()?.record as Article); public readonly inputs = computed(() => ({ previewData: this.previewData() })); public readonly previewType = computed(() => { From efebd684c7d5d7d34757bde5bc6a2fcebd47070e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Lo=C3=AFc=20Juillet?= Date: Wed, 29 Jan 2025 15:50:57 +0100 Subject: [PATCH 024/658] WIP: overflow in document locator --- package-lock.json | 16 +-- package.json | 6 +- .../document-locator.component.ts | 117 ++++++++++++++++++ .../default/preview-default.component.html | 33 +---- .../default/preview-default.component.ts | 31 +---- .../source-icon/source-icon.component.ts | 2 +- 6 files changed, 138 insertions(+), 67 deletions(-) create mode 100644 src/core/components/document-locator/document-locator.component.ts diff --git a/package-lock.json b/package-lock.json index 998313a0..49a7a6cc 100644 --- a/package-lock.json +++ b/package-lock.json @@ -25,8 +25,8 @@ "@ngrx/signals": "^18.1.1", "@ngrx/store": "^18.1.1", "@popperjs/core": "^2.11.8", - "@sinequa/atomic": "^0.0.63", - "@sinequa/atomic-angular": "^0.0.149", + "@sinequa/atomic": "^0.0.65", + "@sinequa/atomic-angular": "^0.0.150", "@tanstack/angular-query-experimental": "^5.40.0", "@types/node": "^16.18.11", "clsx": "^2.1.0", @@ -4266,14 +4266,14 @@ } }, "node_modules/@sinequa/atomic": { - "version": "0.0.63", - "resolved": "https://npm.sinequa.com/@sinequa/atomic/-/atomic-0.0.63.tgz", - "integrity": "sha512-YCyy36VWCa86mbMx9kfwYV/TKOaaWQY6IDXfSaMy6y4peMS8PTiLh485xLdwK1HAPGk3DXKfLZSW3eJMUYUxTw==" + "version": "0.0.65", + "resolved": "https://npm.sinequa.com/@sinequa/atomic/-/atomic-0.0.65.tgz", + "integrity": "sha512-plKSQ6sYehrsmN6J38urunMJEPY65vICADehqRPtBLP+wW8cet4GoNWkR1S/xlYB4We1/PUerv1c9kogWickxw==" }, "node_modules/@sinequa/atomic-angular": { - "version": "0.0.149", - "resolved": "https://npm.sinequa.com/@sinequa/atomic-angular/-/atomic-angular-0.0.149.tgz", - "integrity": "sha512-N0fDvtKDCLepBeWK3UrtJIXzNujDXgYMQNgjZynmOFqIjMXAGBZKb3qudPf0Xw+IhFjwT8wH52PipYmLTJLKPQ==", + "version": "0.0.150", + "resolved": "https://npm.sinequa.com/@sinequa/atomic-angular/-/atomic-angular-0.0.150.tgz", + "integrity": "sha512-1fBEDaHqLfLck2ruPM+d3RMOYYXp/uDniB4BllyT+QV2imQp5fiCBC9IpnSuxfoPtWqStwekM5guJ/36RsKBnw==", "dependencies": { "tslib": "^2.3.0" } diff --git a/package.json b/package.json index ca6d2b70..61a8d3a1 100644 --- a/package.json +++ b/package.json @@ -5,11 +5,13 @@ "ng": "ng", "start": "ng serve --ssl=true --proxy-config=proxy.conf.json", "start:local": "ng serve --ssl=true --proxy-config=proxy.conf.local.json", + "start:docs": "cd docusaurus && npm start", "build": "ng build", "watch": "ng build --watch --configuration development", "test": "ng test", "lint": "ng lint", "up:atomic": "npm i @sinequa/atomic@latest @sinequa/atomic-angular@latest", + "docs:start": "npm run start:docs", "docs:ci": "cd docusaurus && npm ci", "docs:build": "cd docusaurus && npm run build", "docs:build-internal": "cd docusaurus && npm run build-internal" @@ -33,8 +35,8 @@ "@ngrx/signals": "^18.1.1", "@ngrx/store": "^18.1.1", "@popperjs/core": "^2.11.8", - "@sinequa/atomic": "^0.0.63", - "@sinequa/atomic-angular": "^0.0.149", + "@sinequa/atomic": "^0.0.65", + "@sinequa/atomic-angular": "^0.0.150", "@tanstack/angular-query-experimental": "^5.40.0", "@types/node": "^16.18.11", "clsx": "^2.1.0", diff --git a/src/core/components/document-locator/document-locator.component.ts b/src/core/components/document-locator/document-locator.component.ts new file mode 100644 index 00000000..047b894d --- /dev/null +++ b/src/core/components/document-locator/document-locator.component.ts @@ -0,0 +1,117 @@ +import { afterNextRender, Component, effect, ElementRef, inject, input, signal, untracked } from '@angular/core'; +import { Router } from '@angular/router'; +import { getState } from '@ngrx/signals'; + +import { Article, LegacyFilter } from '@sinequa/atomic'; +import { DropdownComponent, QueryParamsStore } from '@sinequa/atomic-angular'; + +import { SourceIconComponent } from "../source-icon/source-icon.component"; + +@Component({ + selector: 'DocumentLocator', + standalone: true, + imports: [SourceIconComponent, DropdownComponent], + template: ` + + + @for (segment of locationSegments(); track $index) { + + +
    + {{ segment }} +
    + } + + @if (moreSegments().length > 0) { + + + + + +
    + @for (segment of locationSegments().slice(0, -1); track $index) { + + + @if (locationSegments().length > 1 && !$last) { + + } + } +
    +
    + } + `, + host: { + class: 'flex grow gap-2 overflow-hidden border border-pink-500' + } +}) +export class DocumentLocatorComponent { + readonly article = input.required
    (); + + readonly el = inject(ElementRef); + readonly router = inject(Router); + readonly queryParamStore = inject(QueryParamsStore); + + readonly locationSegments = signal([]); + readonly moreSegments = signal([]); + + readonly resizeObserver = new ResizeObserver(() => this.resized()); + + constructor() { + this.resizeObserver.observe(this.el.nativeElement); + afterNextRender({ write: () => this.resized() }); + + effect(() => { + const article = this.article(); + untracked(() => this.locationSegments.set(article.treepath[0]?.split('/').slice(1, -1) ?? [])); + }) + } + + resized(): void { + console.log('resized', this.el.nativeElement.scrollWidth, this.el.nativeElement.clientWidth); + if (this.el.nativeElement.scrollWidth <= this.el.nativeElement.clientWidth) return; + + debugger; + console.log('overflow'); + let lastSegment: string | undefined; + + this.locationSegments.update((arr) => { + lastSegment = arr.pop(); + return arr; + }); + + if (!lastSegment) return; + + this.moreSegments.update((arr) => { + arr.unshift(lastSegment!); + return arr; + }); + + console.log(this.locationSegments(), this.moreSegments()); + } + + navigateToSegment(index: number): void { + let currentFilter = this.queryParamStore.getFilter('Treepath'); + + currentFilter ??= { field: 'treepath', operator: 'in' } as LegacyFilter; + currentFilter.values ??= []; + currentFilter.values.push(`/${this.locationSegments().slice(0, index + 1).join('/')}/*`); + + this.queryParamStore.updateFilter(currentFilter); + + const { filters } = getState(this.queryParamStore); + + this.router.navigate([], { queryParams: { f: JSON.stringify(filters) }, queryParamsHandling: 'merge' }); + } +} diff --git a/src/core/components/preview/default/preview-default.component.html b/src/core/components/preview/default/preview-default.component.html index cecd9cb9..dc917b10 100644 --- a/src/core/components/preview/default/preview-default.component.html +++ b/src/core/components/preview/default/preview-default.component.html @@ -27,35 +27,8 @@ {{ 'location' | transloco }} - - - - - - @if (locationSegments().length > 1) { - - - -
    - @for (segment of locationSegments().slice(0, -1); track $index) { - - - @if (locationSegments().length > 1 && !$last) { - - } - } -
    -
    - } - - - - {{ locationSegments().at(-1) }} + + @@ -124,7 +97,7 @@ } - @if(loading()) { + @if (loading()) {
    diff --git a/src/core/components/preview/default/preview-default.component.ts b/src/core/components/preview/default/preview-default.component.ts index 8d57b542..62183898 100644 --- a/src/core/components/preview/default/preview-default.component.ts +++ b/src/core/components/preview/default/preview-default.component.ts @@ -1,17 +1,16 @@ import { NgClass } from '@angular/common'; import { ChangeDetectorRef, Component, ElementRef, computed, effect, inject, signal, viewChild } from '@angular/core'; import { DomSanitizer } from '@angular/platform-browser'; -import { Router } from '@angular/router'; import { TranslocoPipe } from '@jsverse/transloco'; import { getState } from '@ngrx/signals'; import { Article as A, LegacyFilter } from '@sinequa/atomic'; -import { AppStore, DropdownComponent, MetadataComponent, PreviewService, QueryParamsStore, SearchService, SelectionStore } from '@sinequa/atomic-angular'; +import { AppStore, MetadataComponent, PreviewService, QueryParamsStore, SearchService, SelectionStore } from '@sinequa/atomic-angular'; +import { TranslocoDateImpurePipe } from '@/core/pipes/transloco-date.pipe'; import { BasePreview } from '@/core/registry/base-preview'; -import { TranslocoDateImpurePipe } from '@/core/pipes/transloco-date.pipe'; -import { SourceIconComponent } from '../../source-icon/source-icon.component'; +import { DocumentLocatorComponent } from "../../document-locator/document-locator.component"; import { PreviewActionsComponent } from '../actions/preview-actions'; import { PreviewNavbarComponent } from '../navbar/preview-navbar.component'; @@ -27,11 +26,10 @@ type Article = A & { PreviewNavbarComponent, MetadataComponent, PreviewActionsComponent, - SourceIconComponent, TranslocoPipe, TranslocoDateImpurePipe, - DropdownComponent, - ], + DocumentLocatorComponent +], templateUrl: './preview-default.component.html', // eslint-disable-next-line @angular-eslint/no-host-metadata-property host: { @@ -60,7 +58,6 @@ export class PreviewDefaultComponent extends BasePreview { protected readonly queryParamStore = inject(QueryParamsStore); protected readonly selectionStore = inject(SelectionStore); protected readonly searchService = inject(SearchService); - protected readonly router = inject(Router); protected readonly cdr = inject(ChangeDetectorRef); readonly headerCollapsed = signal(false); @@ -104,24 +101,6 @@ export class PreviewDefaultComponent extends BasePreview { }, { allowSignalWrites: true }); } - navigateToSegment(index: number): void { - let currentFilter = this.queryParamStore.getFilter('Treepath'); - - if (!currentFilter) - currentFilter = { field: 'treepath', operator: 'in' } as LegacyFilter; - - if (!currentFilter.values) - currentFilter.values = []; - - currentFilter.values.push(`/${this.locationSegments().slice(0, index + 1).join('/')}/*`); - - this.queryParamStore.updateFilter(currentFilter); - - const { filters } = getState(this.queryParamStore); - - this.router.navigate([], { queryParams: { f: JSON.stringify(filters) }, queryParamsHandling: 'merge' }); - } - /** * Handles the event when the preview component is loaded. * diff --git a/src/core/components/source-icon/source-icon.component.ts b/src/core/components/source-icon/source-icon.component.ts index ba42a40e..63600e04 100644 --- a/src/core/components/source-icon/source-icon.component.ts +++ b/src/core/components/source-icon/source-icon.component.ts @@ -9,7 +9,7 @@ const loader = ['en', 'fr'].reduce((acc, lang) => { }, {} as HashMap<() => Promise>) @Component({ - selector: 'app-source-icon', + selector: 'app-source-icon, SourceIcon', standalone: true, imports: [TranslocoPipe], templateUrl: './source-icon.component.html', From 2f83cadea9d96c245286b16c3c85b316b1aecdb7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Lo=C3=AFc=20Juillet?= Date: Wed, 29 Jan 2025 16:51:50 +0100 Subject: [PATCH 025/658] WIP: setup recent searches --- src/app/app.routes.ts | 2 + .../recent-searches.component.ts | 34 +++++++++++++ src/assets/i18n/en.json | 1 + src/assets/i18n/fr.json | 1 + .../components/navbar/navbar.component.html | 7 ++- .../components/navbar/navbar.component.ts | 7 +-- .../recent-search.component.ts | 4 +- .../recent-searches.component.html | 22 --------- .../recent-searches.component.scss | 3 -- .../recent-searches.component.ts | 49 +++++++++++++++++-- 10 files changed, 95 insertions(+), 35 deletions(-) create mode 100644 src/app/pages/recent-searches/recent-searches.component.ts delete mode 100644 src/core/features/recent-searches/recent-searches.component.html delete mode 100644 src/core/features/recent-searches/recent-searches.component.scss diff --git a/src/app/app.routes.ts b/src/app/app.routes.ts index 11fbadf0..13ad1ac9 100644 --- a/src/app/app.routes.ts +++ b/src/app/app.routes.ts @@ -7,6 +7,7 @@ import { LoadingComponent } from '@/core/components/loading/loading.component'; import { LoginComponent } from '@/core/features/login/login.component'; import { HomeComponent } from './pages/home/home.component'; +import { RecentSearchesComponent } from './pages/recent-searches/recent-searches.component'; import { SearchComponent } from './pages/search/search.component'; // Extended types to add custom properties to routes @@ -27,6 +28,7 @@ export const routes: ExtendedRoutes = [ { path: 'login', component: LoginComponent }, { path: 'logout', component: LoginComponent }, { path: 'home', component: HomeComponent, canActivate: [AuthGuard(), InitializationGuard()], resolve: { queryName: queryNameResolver } }, + { path: 'recent-searches', component: RecentSearchesComponent, canActivate: [AuthGuard(), InitializationGuard()], resolve: { queryName: queryNameResolver } }, { path: 'search', component: SearchComponent, canActivate: [AuthGuard(), InitializationGuard()], resolve: { queryName: queryNameResolver }, children: [ diff --git a/src/app/pages/recent-searches/recent-searches.component.ts b/src/app/pages/recent-searches/recent-searches.component.ts new file mode 100644 index 00000000..d1f83c43 --- /dev/null +++ b/src/app/pages/recent-searches/recent-searches.component.ts @@ -0,0 +1,34 @@ +import { Component, effect, inject } from '@angular/core'; +import { UserSettingsStore } from '@sinequa/atomic-angular'; +import { NavbarComponent } from "../../../core/components/navbar/navbar.component"; + +@Component({ + selector: 'app-recent-searches', + standalone: true, + imports: [NavbarComponent], + template: ` + + + + `, + styles: `` +}) +export class RecentSearchesComponent { + readonly userSettingsStore = inject(UserSettingsStore); + + constructor() { + effect(() => { + console.log(this.userSettingsStore.recentSearches()); + }); + } +} diff --git a/src/assets/i18n/en.json b/src/assets/i18n/en.json index 3425fe0a..c142bda1 100644 --- a/src/assets/i18n/en.json +++ b/src/assets/i18n/en.json @@ -29,6 +29,7 @@ "recentSearches": "Recent searches", "savedSearches": "Saved searches", "search": "Search", + "seeMore": "See more", "to": "To", "type": "Type", "username": "Username", diff --git a/src/assets/i18n/fr.json b/src/assets/i18n/fr.json index ceee266b..e69c2166 100644 --- a/src/assets/i18n/fr.json +++ b/src/assets/i18n/fr.json @@ -29,6 +29,7 @@ "recentSearches": "Recherches récentes", "savedSearches": "Recherches sauvegardées", "search": "Rechercher", + "seeMore": "Voir plus", "to": "A", "type": "Type", "username": "Nom d'utilisateur", diff --git a/src/core/components/navbar/navbar.component.html b/src/core/components/navbar/navbar.component.html index 60ecdc2e..734282a4 100644 --- a/src/core/components/navbar/navbar.component.html +++ b/src/core/components/navbar/navbar.component.html @@ -20,7 +20,12 @@ @for (menu of menus; track $index) {
  • - @if (menu.component) { + @if (menu.routerLink === router.url) { + + } + @else if (menu.component) { -} \ No newline at end of file diff --git a/src/core/features/recent-searches/recent-searches.component.scss b/src/core/features/recent-searches/recent-searches.component.scss deleted file mode 100644 index 354d466c..00000000 --- a/src/core/features/recent-searches/recent-searches.component.scss +++ /dev/null @@ -1,3 +0,0 @@ -:host { - scrollbar-width: thin; -} \ No newline at end of file diff --git a/src/core/features/recent-searches/recent-searches.component.ts b/src/core/features/recent-searches/recent-searches.component.ts index 8f6ad4b2..7a75d955 100644 --- a/src/core/features/recent-searches/recent-searches.component.ts +++ b/src/core/features/recent-searches/recent-searches.component.ts @@ -1,9 +1,11 @@ import { Component, computed, inject, signal } from '@angular/core'; +import { RouterModule } from '@angular/router'; import { HashMap, provideTranslocoScope, Translation, TranslocoPipe, TranslocoService } from '@jsverse/transloco'; import { toast } from 'ngx-sonner'; import { getRelativeDate } from '@sinequa/atomic'; import { RecentSearch, UserSettingsStore } from '@sinequa/atomic-angular'; + import { RecentSearchComponent } from "./recent-search.component"; const loader = ['en', 'fr'].reduce((acc, lang) => { @@ -11,16 +13,55 @@ const loader = ['en', 'fr'].reduce((acc, lang) => { return acc; }, {} as HashMap<() => Promise>); -const RECENT_SEARCHES_ITEMS_PER_PAGE = 5; +const RECENT_SEARCHES_ITEMS_PER_PAGE = 10; @Component({ - selector: 'app-recent-searches, RecentSearches', + selector: 'RecentSearches', standalone: true, - imports: [TranslocoPipe, RecentSearchComponent], - templateUrl: './recent-searches.component.html', + imports: [RouterModule, TranslocoPipe, RecentSearchComponent], + template: ` +
      + @for (recentSearch of paginatedRecentSearches(); track $index) { + + } + + @empty { +
    • + {{ 'recentSearches.noRecentSearches' | transloco }} +
    • + } +
    + +
    + @if (hasMore()) { + + } + + + {{ 'seeMore' | transloco }} + +
    + `, host: { class: 'block max-h-[460px]' }, + styles: ` + :host { + scrollbar-width: thin; + } + `, providers: [provideTranslocoScope({ scope: 'recent-searches', loader })] }) export class RecentSearchesComponent { From fe0aa46c510470e498345f59b45eae2c9675b7cf Mon Sep 17 00:00:00 2001 From: Guillaume Leibfried Date: Fri, 31 Jan 2025 11:40:17 +0100 Subject: [PATCH 026/658] refactoring --- .../components/drawer/preview/drawer-preview.component.ts | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/src/core/components/drawer/preview/drawer-preview.component.ts b/src/core/components/drawer/preview/drawer-preview.component.ts index 5c40d466..aaf8725d 100644 --- a/src/core/components/drawer/preview/drawer-preview.component.ts +++ b/src/core/components/drawer/preview/drawer-preview.component.ts @@ -3,12 +3,10 @@ import { Component, Inject, InjectionToken, OnDestroy, OnInit, computed, effect, import { getState } from '@ngrx/signals'; import { firstValueFrom } from 'rxjs'; -import { CCApp, PreviewData, Article } from '@sinequa/atomic'; +import { Article, CCApp, PreviewData } from '@sinequa/atomic'; import { AppStore, PreviewService, QueryParamsStore, SelectionStore } from '@sinequa/atomic-angular'; -import { PreviewDefaultComponent } from '@/core/components/preview/default/preview-default.component'; -import { PreviewSlideComponent } from '@/core/components/preview/slide/preview-slide.component'; import { getComponentsForDocumentType } from '@/app/registry/document-type-registry'; import { AdvancedSearchComponent } from '../advanced-search/advanced-search.component'; import { DrawerComponent } from '../drawer.component'; From 022ca208a7dd4808e22770c94f17389ff615bf1b Mon Sep 17 00:00:00 2001 From: TOME Olivier Date: Fri, 31 Jan 2025 13:58:37 +0100 Subject: [PATCH 027/658] =?UTF-8?q?=F0=9F=A9=B9=20#noJiraCheck=20(autocomp?= =?UTF-8?q?lete)=20add=20error=20handling=20to=20autocomplete=20suggestion?= =?UTF-8?q?s?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../search-input/autocomplete/autocomplete.component.ts | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/src/core/components/search-input/autocomplete/autocomplete.component.ts b/src/core/components/search-input/autocomplete/autocomplete.component.ts index 86293e52..157a482f 100644 --- a/src/core/components/search-input/autocomplete/autocomplete.component.ts +++ b/src/core/components/search-input/autocomplete/autocomplete.component.ts @@ -3,7 +3,7 @@ import { Component, computed, inject, input, output, signal } from '@angular/cor import { toObservable, toSignal } from '@angular/core/rxjs-interop'; import { EventManager } from '@angular/platform-browser'; import { HashMap, Translation, TranslocoPipe, provideTranslocoScope } from '@jsverse/transloco'; -import { combineLatest, map, of, switchMap } from 'rxjs'; +import { combineLatest, map, of, switchMap, catchError } from 'rxjs'; import { Suggestion as SuggestionBasic } from '@sinequa/atomic'; import { AppStore, AuditService, AutocompleteService, HighlightWordPipe, UserSettingsStore } from '@sinequa/atomic-angular'; @@ -53,7 +53,10 @@ export class AutocompleteComponent { return combineLatest([ fromUserSettings, - this.autocompleteService.getFromSuggestQueriesForText(testText) + this.autocompleteService.getFromSuggestQueriesForText(testText).pipe(catchError(error => { + console.error(error); + return of([]); + })) ]); }), map(items => items.flat(2)), From 0af8b6fefdedf6b3b7f843b177427953d2768c0f Mon Sep 17 00:00:00 2001 From: TOME Olivier Date: Mon, 3 Feb 2025 12:11:22 +0100 Subject: [PATCH 028/658] =?UTF-8?q?=F0=9F=A9=B9=20ES-25644=20#done=20updat?= =?UTF-8?q?e=20translations=20and=20fix=20autocomplete=20display?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit for concepts and people --- src/assets/i18n/en.json | 31 ++++++++++--------- src/assets/i18n/fr.json | 31 ++++++++++--------- .../autocomplete/autocomplete.component.html | 12 +++---- 3 files changed, 40 insertions(+), 34 deletions(-) diff --git a/src/assets/i18n/en.json b/src/assets/i18n/en.json index 3425fe0a..d88af34e 100644 --- a/src/assets/i18n/en.json +++ b/src/assets/i18n/en.json @@ -4,6 +4,7 @@ "cancel": "Cancel", "clear": "Clear", "collaborators": "Collaborators", + "concepts": "Concepts", "create": "Create", "delete": "Delete", "documents": "Documents", @@ -14,24 +15,13 @@ "labels": "Labels", "lastUpdatedBy": "Last updated by", "lastUpdatedOn": "Last updated on", - "loading": "Loading", "loadMore": "Load more", + "loading": "Loading", "location": "Location", "login": "Login", "logout": "Logout", "matters": "Matters", "more": "More", - "nextPage": "Next page", - "open": "Open", - "password": "Password", - "previewUnavailable": "Sorry, preview is not available for this file.", - "previousPage": "Previous page", - "recentSearches": "Recent searches", - "savedSearches": "Saved searches", - "search": "Search", - "to": "To", - "type": "Type", - "username": "Username", "msg#column": { "authors": "Authors", "companies": "Companies", @@ -49,5 +39,18 @@ "filename": "Filename", "relevance": "Relevance", "title": "Title" - } -} + }, + "nextPage": "Next page", + "open": "Open", + "password": "Password", + "people": "People", + "previewUnavailable": "Sorry, preview is not available for this file.", + "previousPage": "Previous page", + "recentSearches": "Recent searches", + "savedSearches": "Saved searches", + "search": "Search", + "title": "Title", + "to": "To", + "type": "Type", + "username": "Username" +} \ No newline at end of file diff --git a/src/assets/i18n/fr.json b/src/assets/i18n/fr.json index ceee266b..7c59278a 100644 --- a/src/assets/i18n/fr.json +++ b/src/assets/i18n/fr.json @@ -4,6 +4,7 @@ "cancel": "Annuler", "clear": "Effacer", "collaborators": "Collaborateurs", + "concepts": "Concepts", "create": "Créer", "delete": "Supprimer", "documents": "Documents", @@ -14,24 +15,13 @@ "labels": "Libellés", "lastUpdatedBy": "Dernière mise à jour par", "lastUpdatedOn": "Dernière mise à jour le", - "loading": "Chargement", "loadMore": "Charger plus", + "loading": "Chargement", "location": "Emplacement", "login": "Connexion", "logout": "Déconnexion", "matters": "Concepts", "more": "Plus", - "nextPage": "Page suivante", - "open": "Ouvrir", - "password": "Mot de passe", - "previewUnavailable": "Désolé, la prévisualisation n'est pas disponible pour ce fichier.", - "previousPage": "Page précédente", - "recentSearches": "Recherches récentes", - "savedSearches": "Recherches sauvegardées", - "search": "Rechercher", - "to": "A", - "type": "Type", - "username": "Nom d'utilisateur", "msg#column": { "authors": "Auteurs", "companies": "Sociétés", @@ -49,5 +39,18 @@ "filename": "Nom de fichier", "relevance": "Pertinence", "title": "Titre" - } -} + }, + "nextPage": "Page suivante", + "open": "Ouvrir", + "password": "Mot de passe", + "people": "Personnes", + "previewUnavailable": "Désolé, la prévisualisation n'est pas disponible pour ce fichier.", + "previousPage": "Page précédente", + "recentSearches": "Recherches récentes", + "savedSearches": "Recherches sauvegardées", + "search": "Rechercher", + "title": "Titre", + "to": "A", + "type": "Type", + "username": "Nom d'utilisateur" +} \ No newline at end of file diff --git a/src/core/components/search-input/autocomplete/autocomplete.component.html b/src/core/components/search-input/autocomplete/autocomplete.component.html index d8747e5c..91293941 100644 --- a/src/core/components/search-input/autocomplete/autocomplete.component.html +++ b/src/core/components/search-input/autocomplete/autocomplete.component.html @@ -2,7 +2,7 @@
      @for (item of items(); track $index) { @if (item.$isDivider) { @@ -22,18 +22,18 @@ {{ 'bookmarks' | transloco }} } @case('title') { - {{ 'documents' | transloco }} + {{ 'title' | transloco }} } @case('concepts') { - {{ 'matters' | transloco }} + {{ 'concepts' | transloco }} } @case('people') { - {{ 'collaborators' | transloco }} + {{ 'people' | transloco }} } } } - + @else {
    • } @default { } } - +

      @for(chunk of item.display! | highlightWord:text():10; track $index ) { {{ chunk.text }} From 83682783d58529063f125f1268898359e5dcefb1 Mon Sep 17 00:00:00 2001 From: TOME Olivier Date: Mon, 3 Feb 2025 14:20:46 +0100 Subject: [PATCH 029/658] =?UTF-8?q?=F0=9F=92=84=20#nojiraCheck=20add=20Pre?= =?UTF-8?q?ttier=20configuration=20and=20Husky=20pre-commit=20hook=20for?= =?UTF-8?q?=20linting?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .husky/pre-commit | 1 + .prettierrc | 15 ++ package-lock.json | 436 +++++++++++++++++++++++++++++++++++++++++++++- package.json | 15 +- 4 files changed, 463 insertions(+), 4 deletions(-) create mode 100644 .husky/pre-commit create mode 100644 .prettierrc diff --git a/.husky/pre-commit b/.husky/pre-commit new file mode 100644 index 00000000..c27d8893 --- /dev/null +++ b/.husky/pre-commit @@ -0,0 +1 @@ +lint-staged diff --git a/.prettierrc b/.prettierrc new file mode 100644 index 00000000..16239786 --- /dev/null +++ b/.prettierrc @@ -0,0 +1,15 @@ +{ + "plugins": [ + "prettier-plugin-tailwindcss", + "prettier-plugin-package" + ], + "tabWidth": 2, + "useTabs": false, + "singleQuote": true, + "semi": true, + "bracketSpacing": true, + "arrowParens": "avoid", + "trailingComma": "none", + "bracketSameLine": true, + "printWidth": 130 +} \ No newline at end of file diff --git a/package-lock.json b/package-lock.json index b438c796..dd9db55a 100644 --- a/package-lock.json +++ b/package-lock.json @@ -45,7 +45,12 @@ "@floating-ui/dom": "^1.6.3", "@types/unist": "^2.0.7", "autoprefixer": "^10.4.16", + "husky": "^9.1.7", + "lint-staged": "^15.4.1", "postcss": "^8.4.32", + "prettier": "^3.4.2", + "prettier-plugin-package": "^1.4.0", + "prettier-plugin-tailwindcss": "^0.6.10", "tailwind-merge": "^2.2.2", "tailwindcss": "^3.4.1", "typescript": "~5.4.2" @@ -7827,6 +7832,21 @@ "node": ">=10.17.0" } }, + "node_modules/husky": { + "version": "9.1.7", + "resolved": "https://npm.sinequa.com/husky/-/husky-9.1.7.tgz", + "integrity": "sha512-5gs5ytaNjBrh5Ow3zrvdUUY+0VxIuWVL4i9irt6friV+BqdCfmV11CQTWMiBYWHbXhco+J1kHfTOUkePhCDvMA==", + "dev": true, + "bin": { + "husky": "bin.js" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/typicode" + } + }, "node_modules/hyperdyperid": { "version": "1.2.0", "resolved": "https://npm.sinequa.com/hyperdyperid/-/hyperdyperid-1.2.0.tgz", @@ -8577,6 +8597,290 @@ "integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==", "license": "MIT" }, + "node_modules/lint-staged": { + "version": "15.4.1", + "resolved": "https://npm.sinequa.com/lint-staged/-/lint-staged-15.4.1.tgz", + "integrity": "sha512-P8yJuVRyLrm5KxCtFx+gjI5Bil+wO7wnTl7C3bXhvtTaAFGirzeB24++D0wGoUwxrUKecNiehemgCob9YL39NA==", + "dev": true, + "dependencies": { + "chalk": "~5.4.1", + "commander": "~12.1.0", + "debug": "~4.4.0", + "execa": "~8.0.1", + "lilconfig": "~3.1.3", + "listr2": "~8.2.5", + "micromatch": "~4.0.8", + "pidtree": "~0.6.0", + "string-argv": "~0.3.2", + "yaml": "~2.6.1" + }, + "bin": { + "lint-staged": "bin/lint-staged.js" + }, + "engines": { + "node": ">=18.12.0" + }, + "funding": { + "url": "https://opencollective.com/lint-staged" + } + }, + "node_modules/lint-staged/node_modules/ansi-regex": { + "version": "6.1.0", + "resolved": "https://npm.sinequa.com/ansi-regex/-/ansi-regex-6.1.0.tgz", + "integrity": "sha512-7HSX4QQb4CspciLpVFwyRe79O3xsIZDDLER21kERQ71oaPodF8jL725AgJMFAYbooIqolJoRLuM81SpeUkpkvA==", + "dev": true, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-regex?sponsor=1" + } + }, + "node_modules/lint-staged/node_modules/ansi-styles": { + "version": "6.2.1", + "resolved": "https://npm.sinequa.com/ansi-styles/-/ansi-styles-6.2.1.tgz", + "integrity": "sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==", + "dev": true, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/lint-staged/node_modules/chalk": { + "version": "5.4.1", + "resolved": "https://npm.sinequa.com/chalk/-/chalk-5.4.1.tgz", + "integrity": "sha512-zgVZuo2WcZgfUEmsn6eO3kINexW8RAE4maiQ8QNs8CtpPCSyMiYsULR3HQYkm3w8FIA3SberyMJMSldGsW+U3w==", + "dev": true, + "engines": { + "node": "^12.17.0 || ^14.13 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/lint-staged/node_modules/commander": { + "version": "12.1.0", + "resolved": "https://npm.sinequa.com/commander/-/commander-12.1.0.tgz", + "integrity": "sha512-Vw8qHK3bZM9y/P10u3Vib8o/DdkvA2OtPtZvD871QKjy74Wj1WSKFILMPRPSdUSx5RFK1arlJzEtA4PkFgnbuA==", + "dev": true, + "engines": { + "node": ">=18" + } + }, + "node_modules/lint-staged/node_modules/emoji-regex": { + "version": "10.4.0", + "resolved": "https://npm.sinequa.com/emoji-regex/-/emoji-regex-10.4.0.tgz", + "integrity": "sha512-EC+0oUMY1Rqm4O6LLrgjtYDvcVYTy7chDnM4Q7030tP4Kwj3u/pR6gP9ygnp2CJMK5Gq+9Q2oqmrFJAz01DXjw==", + "dev": true + }, + "node_modules/lint-staged/node_modules/eventemitter3": { + "version": "5.0.1", + "resolved": "https://npm.sinequa.com/eventemitter3/-/eventemitter3-5.0.1.tgz", + "integrity": "sha512-GWkBvjiSZK87ELrYOSESUYeVIc9mvLLf/nXalMOS5dYrgZq9o5OVkbZAVM06CVxYsCwH9BDZFPlQTlPA1j4ahA==", + "dev": true + }, + "node_modules/lint-staged/node_modules/execa": { + "version": "8.0.1", + "resolved": "https://npm.sinequa.com/execa/-/execa-8.0.1.tgz", + "integrity": "sha512-VyhnebXciFV2DESc+p6B+y0LjSm0krU4OgJN44qFAhBY0TJ+1V61tYD2+wHusZ6F9n5K+vl8k0sTy7PEfV4qpg==", + "dev": true, + "dependencies": { + "cross-spawn": "^7.0.3", + "get-stream": "^8.0.1", + "human-signals": "^5.0.0", + "is-stream": "^3.0.0", + "merge-stream": "^2.0.0", + "npm-run-path": "^5.1.0", + "onetime": "^6.0.0", + "signal-exit": "^4.1.0", + "strip-final-newline": "^3.0.0" + }, + "engines": { + "node": ">=16.17" + }, + "funding": { + "url": "https://github.com/sindresorhus/execa?sponsor=1" + } + }, + "node_modules/lint-staged/node_modules/get-stream": { + "version": "8.0.1", + "resolved": "https://npm.sinequa.com/get-stream/-/get-stream-8.0.1.tgz", + "integrity": "sha512-VaUJspBffn/LMCJVoMvSAdmscJyS1auj5Zulnn5UoYcY531UWmdwhRWkcGKnGU93m5HSXP9LP2usOryrBtQowA==", + "dev": true, + "engines": { + "node": ">=16" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/lint-staged/node_modules/human-signals": { + "version": "5.0.0", + "resolved": "https://npm.sinequa.com/human-signals/-/human-signals-5.0.0.tgz", + "integrity": "sha512-AXcZb6vzzrFAUE61HnN4mpLqd/cSIwNQjtNWR0euPm6y0iqx3G4gOXaIDdtdDwZmhwe82LA6+zinmW4UBWVePQ==", + "dev": true, + "engines": { + "node": ">=16.17.0" + } + }, + "node_modules/lint-staged/node_modules/is-stream": { + "version": "3.0.0", + "resolved": "https://npm.sinequa.com/is-stream/-/is-stream-3.0.0.tgz", + "integrity": "sha512-LnQR4bZ9IADDRSkvpqMGvt/tEJWclzklNgSw48V5EAaAeDd6qGvN8ei6k5p0tvxSR171VmGyHuTiAOfxAbr8kA==", + "dev": true, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/lint-staged/node_modules/lilconfig": { + "version": "3.1.3", + "resolved": "https://npm.sinequa.com/lilconfig/-/lilconfig-3.1.3.tgz", + "integrity": "sha512-/vlFKAoH5Cgt3Ie+JLhRbwOsCQePABiU3tJ1egGvyQ+33R/vcwM2Zl2QR/LzjsBeItPt3oSVXapn+m4nQDvpzw==", + "dev": true, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/antonk52" + } + }, + "node_modules/lint-staged/node_modules/listr2": { + "version": "8.2.5", + "resolved": "https://npm.sinequa.com/listr2/-/listr2-8.2.5.tgz", + "integrity": "sha512-iyAZCeyD+c1gPyE9qpFu8af0Y+MRtmKOncdGoA2S5EY8iFq99dmmvkNnHiWo+pj0s7yH7l3KPIgee77tKpXPWQ==", + "dev": true, + "dependencies": { + "cli-truncate": "^4.0.0", + "colorette": "^2.0.20", + "eventemitter3": "^5.0.1", + "log-update": "^6.1.0", + "rfdc": "^1.4.1", + "wrap-ansi": "^9.0.0" + }, + "engines": { + "node": ">=18.0.0" + } + }, + "node_modules/lint-staged/node_modules/mimic-fn": { + "version": "4.0.0", + "resolved": "https://npm.sinequa.com/mimic-fn/-/mimic-fn-4.0.0.tgz", + "integrity": "sha512-vqiC06CuhBTUdZH+RYl8sFrL096vA45Ok5ISO6sE/Mr1jRbGH4Csnhi8f3wKVl7x8mO4Au7Ir9D3Oyv1VYMFJw==", + "dev": true, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/lint-staged/node_modules/npm-run-path": { + "version": "5.3.0", + "resolved": "https://npm.sinequa.com/npm-run-path/-/npm-run-path-5.3.0.tgz", + "integrity": "sha512-ppwTtiJZq0O/ai0z7yfudtBpWIoxM8yE6nHi1X47eFR2EWORqfbu6CnPlNsjeN683eT0qG6H/Pyf9fCcvjnnnQ==", + "dev": true, + "dependencies": { + "path-key": "^4.0.0" + }, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/lint-staged/node_modules/onetime": { + "version": "6.0.0", + "resolved": "https://npm.sinequa.com/onetime/-/onetime-6.0.0.tgz", + "integrity": "sha512-1FlR+gjXK7X+AsAHso35MnyN5KqGwJRi/31ft6x0M194ht7S+rWAvd7PHss9xSKMzE0asv1pyIHaJYq+BbacAQ==", + "dev": true, + "dependencies": { + "mimic-fn": "^4.0.0" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/lint-staged/node_modules/path-key": { + "version": "4.0.0", + "resolved": "https://npm.sinequa.com/path-key/-/path-key-4.0.0.tgz", + "integrity": "sha512-haREypq7xkM7ErfgIyA0z+Bj4AGKlMSdlQE2jvJo6huWD1EdkKYV+G/T4nq0YEF2vgTT8kqMFKo1uHn950r4SQ==", + "dev": true, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/lint-staged/node_modules/string-width": { + "version": "7.2.0", + "resolved": "https://npm.sinequa.com/string-width/-/string-width-7.2.0.tgz", + "integrity": "sha512-tsaTIkKW9b4N+AEj+SVA+WhJzV7/zMhcSu78mLKWSk7cXMOSHsBKFWUs0fWwq8QyK3MgJBQRX6Gbi4kYbdvGkQ==", + "dev": true, + "dependencies": { + "emoji-regex": "^10.3.0", + "get-east-asian-width": "^1.0.0", + "strip-ansi": "^7.1.0" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/lint-staged/node_modules/strip-ansi": { + "version": "7.1.0", + "resolved": "https://npm.sinequa.com/strip-ansi/-/strip-ansi-7.1.0.tgz", + "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==", + "dev": true, + "dependencies": { + "ansi-regex": "^6.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/strip-ansi?sponsor=1" + } + }, + "node_modules/lint-staged/node_modules/strip-final-newline": { + "version": "3.0.0", + "resolved": "https://npm.sinequa.com/strip-final-newline/-/strip-final-newline-3.0.0.tgz", + "integrity": "sha512-dOESqjYr96iWYylGObzd39EuNTa5VJxyvVAEm5Jnh7KGo75V43Hk1odPQkNDyXNmUR6k+gEiDVXnjB8HJ3crXw==", + "dev": true, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/lint-staged/node_modules/wrap-ansi": { + "version": "9.0.0", + "resolved": "https://npm.sinequa.com/wrap-ansi/-/wrap-ansi-9.0.0.tgz", + "integrity": "sha512-G8ura3S+3Z2G+mkgNRq8dqaFZAuxfsxpBB8OCTGRTCtp+l/v9nbFNmCUP1BZMts3G1142MsZfn6eeUKrr4PD1Q==", + "dev": true, + "dependencies": { + "ansi-styles": "^6.2.1", + "string-width": "^7.0.0", + "strip-ansi": "^7.1.0" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + } + }, "node_modules/listr2": { "version": "8.2.4", "resolved": "https://npm.sinequa.com/listr2/-/listr2-8.2.4.tgz", @@ -10382,6 +10686,18 @@ "url": "https://github.com/sponsors/jonschlinkert" } }, + "node_modules/pidtree": { + "version": "0.6.0", + "resolved": "https://npm.sinequa.com/pidtree/-/pidtree-0.6.0.tgz", + "integrity": "sha512-eG2dWTVw5bzqGRztnHExczNxt5VGsE6OwTeCG3fdUf9KBsZzO3R5OIIIzWR+iZA0NtZ+RDVdaoE2dK1cn6jH4g==", + "dev": true, + "bin": { + "pidtree": "bin/pidtree.js" + }, + "engines": { + "node": ">=0.10" + } + }, "node_modules/pify": { "version": "4.0.1", "resolved": "https://npm.sinequa.com/pify/-/pify-4.0.1.tgz", @@ -10722,6 +11038,111 @@ "dev": true, "license": "MIT" }, + "node_modules/prettier": { + "version": "3.4.2", + "resolved": "https://npm.sinequa.com/prettier/-/prettier-3.4.2.tgz", + "integrity": "sha512-e9MewbtFo+Fevyuxn/4rrcDAaq0IYxPGLvObpQjiZBMAzB9IGmzlnG9RZy3FFas+eBMu2vA0CszMeduow5dIuQ==", + "dev": true, + "bin": { + "prettier": "bin/prettier.cjs" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/prettier/prettier?sponsor=1" + } + }, + "node_modules/prettier-plugin-package": { + "version": "1.4.0", + "resolved": "https://npm.sinequa.com/prettier-plugin-package/-/prettier-plugin-package-1.4.0.tgz", + "integrity": "sha512-jy8UjgHadyznzWfunyjPQPqE2Y92TVF3Q0O829X6pk/ARoKn0vtSu+mtKIsmikZYb2N50mV6vRIqCf19XdOdIg==", + "dev": true, + "engines": { + "node": ">=10.13.0" + }, + "peerDependencies": { + "prettier": "^2.0.0 || ^3.0.0" + } + }, + "node_modules/prettier-plugin-tailwindcss": { + "version": "0.6.10", + "resolved": "https://npm.sinequa.com/prettier-plugin-tailwindcss/-/prettier-plugin-tailwindcss-0.6.10.tgz", + "integrity": "sha512-ndj2WLDaMzACnr1gAYZiZZLs5ZdOeBYgOsbBmHj3nvW/6q8h8PymsXiEnKvj/9qgCCAoHyvLOisoQdIcsDvIgw==", + "dev": true, + "engines": { + "node": ">=14.21.3" + }, + "peerDependencies": { + "@ianvs/prettier-plugin-sort-imports": "*", + "@prettier/plugin-pug": "*", + "@shopify/prettier-plugin-liquid": "*", + "@trivago/prettier-plugin-sort-imports": "*", + "@zackad/prettier-plugin-twig": "*", + "prettier": "^3.0", + "prettier-plugin-astro": "*", + "prettier-plugin-css-order": "*", + "prettier-plugin-import-sort": "*", + "prettier-plugin-jsdoc": "*", + "prettier-plugin-marko": "*", + "prettier-plugin-multiline-arrays": "*", + "prettier-plugin-organize-attributes": "*", + "prettier-plugin-organize-imports": "*", + "prettier-plugin-sort-imports": "*", + "prettier-plugin-style-order": "*", + "prettier-plugin-svelte": "*" + }, + "peerDependenciesMeta": { + "@ianvs/prettier-plugin-sort-imports": { + "optional": true + }, + "@prettier/plugin-pug": { + "optional": true + }, + "@shopify/prettier-plugin-liquid": { + "optional": true + }, + "@trivago/prettier-plugin-sort-imports": { + "optional": true + }, + "@zackad/prettier-plugin-twig": { + "optional": true + }, + "prettier-plugin-astro": { + "optional": true + }, + "prettier-plugin-css-order": { + "optional": true + }, + "prettier-plugin-import-sort": { + "optional": true + }, + "prettier-plugin-jsdoc": { + "optional": true + }, + "prettier-plugin-marko": { + "optional": true + }, + "prettier-plugin-multiline-arrays": { + "optional": true + }, + "prettier-plugin-organize-attributes": { + "optional": true + }, + "prettier-plugin-organize-imports": { + "optional": true + }, + "prettier-plugin-sort-imports": { + "optional": true + }, + "prettier-plugin-style-order": { + "optional": true + }, + "prettier-plugin-svelte": { + "optional": true + } + } + }, "node_modules/proc-log": { "version": "4.2.0", "resolved": "https://npm.sinequa.com/proc-log/-/proc-log-4.2.0.tgz", @@ -12168,6 +12589,15 @@ "safe-buffer": "~5.2.0" } }, + "node_modules/string-argv": { + "version": "0.3.2", + "resolved": "https://npm.sinequa.com/string-argv/-/string-argv-0.3.2.tgz", + "integrity": "sha512-aqD2Q0144Z+/RqG52NeHEkZauTAUWJO8c6yTftGJKO3Tja5tUgIfmIl6kExvhtxSDP7fXB6DvzkfMpCd/F3G+Q==", + "dev": true, + "engines": { + "node": ">=0.6.19" + } + }, "node_modules/string-width": { "version": "5.1.2", "resolved": "https://npm.sinequa.com/string-width/-/string-width-5.1.2.tgz", @@ -14133,9 +14563,9 @@ "license": "ISC" }, "node_modules/yaml": { - "version": "2.7.0", - "resolved": "https://npm.sinequa.com/yaml/-/yaml-2.7.0.tgz", - "integrity": "sha512-+hSoy/QHluxmC9kCIJyL/uyFmLmc+e5CFR5Wa+bpIhIj85LVb9ZH2nVnqrHoSvKogwODv0ClqZkmiSSaIH5LTA==", + "version": "2.6.1", + "resolved": "https://npm.sinequa.com/yaml/-/yaml-2.6.1.tgz", + "integrity": "sha512-7r0XPzioN/Q9kXBro/XPnA6kznR73DHq+GXh5ON7ZozRO6aMjbmiBuKste2wslTFkC5d1dw0GooOCepZXJ2SAg==", "dev": true, "license": "ISC", "bin": { diff --git a/package.json b/package.json index 61a8d3a1..e2d12f63 100644 --- a/package.json +++ b/package.json @@ -14,7 +14,15 @@ "docs:start": "npm run start:docs", "docs:ci": "cd docusaurus && npm ci", "docs:build": "cd docusaurus && npm run build", - "docs:build-internal": "cd docusaurus && npm run build-internal" + "docs:build-internal": "cd docusaurus && npm run build-internal", + "prettier:check": "prettier --config .prettierrc --check src/**/*.{ts,html,scss,json}", + "prettier:write": "prettier --config .prettierrc --write src/**/*.{ts,html,scss,json}", + "prepare": "husky" + }, + "lint-staged": { + "src/**/*.{ts,html,scss,json}": [ + "npm run prettier:write" + ] }, "private": true, "dependencies": { @@ -55,7 +63,12 @@ "@floating-ui/dom": "^1.6.3", "@types/unist": "^2.0.7", "autoprefixer": "^10.4.16", + "husky": "^9.1.7", + "lint-staged": "^15.4.1", "postcss": "^8.4.32", + "prettier": "^3.4.2", + "prettier-plugin-package": "^1.4.0", + "prettier-plugin-tailwindcss": "^0.6.10", "tailwind-merge": "^2.2.2", "tailwindcss": "^3.4.1", "typescript": "~5.4.2" From 158770821fbfeb74ddb179de5744c293b9384f63 Mon Sep 17 00:00:00 2001 From: "Olivier.T" Date: Mon, 3 Feb 2025 15:30:39 +0100 Subject: [PATCH 030/658] Update .prettierrc --- .prettierrc | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.prettierrc b/.prettierrc index 16239786..4993e468 100644 --- a/.prettierrc +++ b/.prettierrc @@ -11,5 +11,5 @@ "arrowParens": "avoid", "trailingComma": "none", "bracketSameLine": true, - "printWidth": 130 -} \ No newline at end of file + "printWidth": 160 +} From 6e8d265c7766fd52a8f345cd969a144a91684c1a Mon Sep 17 00:00:00 2001 From: TOME Olivier Date: Mon, 3 Feb 2025 17:59:48 +0100 Subject: [PATCH 031/658] =?UTF-8?q?=F0=9F=92=84=20#noJiraCheck=20apply=20f?= =?UTF-8?q?ormatting?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/app/app.component.html | 14 +- src/app/app.component.ts | 22 +- src/app/app.config.ts | 52 +-- src/app/app.routes.ts | 21 +- src/app/pages/home/home.component.html | 60 ++- src/app/pages/home/home.component.ts | 35 +- .../search/all/search-all.component.html | 45 +-- .../pages/search/all/search-all.component.ts | 15 +- src/app/pages/search/search.abstract.ts | 379 +++++++++--------- src/app/pages/search/search.component.ts | 2 +- src/app/registry/document-type-registry.ts | 18 +- src/app/transloco-loader.ts | 8 +- src/assets/error.html | 220 +++++----- src/assets/i18n/en.json | 2 +- src/assets/i18n/fr.json | 2 +- .../article-default-skeleton.component.html | 24 +- .../article-default-skeleton.component.ts | 2 +- .../default/article-default.component.html | 58 +-- .../default/article-default.component.scss | 4 +- .../default/article-default.component.ts | 54 ++- src/core/components/article/i18n/en.json | 2 +- src/core/components/article/i18n/fr.json | 2 +- .../missing-terms.component.html | 28 +- .../missing-terms/missing-terms.component.ts | 35 +- .../article-slide-skeleton.component.html | 10 +- .../article-slide-skeleton.component.scss | 7 - .../article-slide-skeleton.component.ts | 6 +- .../slide/article-slide.component.html | 27 +- .../article/slide/article-slide.component.ts | 24 +- .../advanced-search.component.html | 91 ++--- .../advanced-search.component.ts | 61 ++- .../drawer/backdrop/backdrop.component.ts | 73 ++-- .../drawer-stack/drawer-stack.component.ts | 56 ++- .../components/drawer/drawer.component.scss | 22 +- .../components/drawer/drawer.component.ts | 9 +- src/core/components/drawer/drawer.service.ts | 2 +- src/core/components/drawer/i18n/en.json | 2 +- src/core/components/drawer/i18n/fr.json | 2 +- .../preview/drawer-preview.component.html | 24 +- .../preview/drawer-preview.component.ts | 18 +- src/core/components/error/error.component.ts | 83 ++-- .../aggregation-row.component.html | 85 ++-- .../aggregation/aggregation-row.component.ts | 134 ++++--- .../aggregation/aggregation.component.html | 70 ++-- .../aggregation/aggregation.component.ts | 191 +++++---- .../buttons/filter-button.component.ts | 190 +++++---- .../buttons/filter-date-button.component.ts | 158 ++++---- .../buttons/filters-more-button.component.ts | 104 ++--- .../filters/date/date.component.html | 132 +++--- .../components/filters/date/date.component.ts | 51 ++- .../filters/filters-list.component.ts | 319 +++++++-------- src/core/components/filters/filters.models.ts | 30 +- src/core/components/filters/i18n/en.json | 2 +- .../filters/more/filters-more.component.ts | 274 ++++++------- .../components/loading/loading.component.ts | 129 +++--- .../components/navbar/navbar.component.html | 66 +-- .../components/navbar/navbar.component.scss | 2 +- .../components/navbar/navbar.component.ts | 53 ++- .../no-result-panel.component.ts | 17 +- .../components/pagination/pager.component.ts | 165 ++++---- .../preview/actions/preview-actions.ts | 235 ++++++----- .../default/preview-default.component.html | 125 +++--- .../default/preview-default.component.ts | 57 +-- .../navbar/preview-navbar.component.html | 42 +- .../navbar/preview-navbar.component.ts | 18 +- .../slide/preview-slide.component.html | 145 +++---- .../preview/slide/preview-slide.component.ts | 20 +- .../autocomplete/autocomplete.component.html | 79 ++-- .../autocomplete/autocomplete.component.ts | 67 ++-- .../search-input/search-input.component.html | 58 ++- .../search-input/search-input.component.scss | 4 +- .../search-input/search-input.component.ts | 42 +- .../source-icon/source-icon.component.html | 10 +- .../source-icon/source-icon.component.ts | 41 +- .../sponsored-results.component.html | 21 +- .../sponsored-results.component.ts | 31 +- .../button/bookmark-button.component.html | 2 +- .../button/bookmark-button.component.ts | 21 +- .../list/bookmarks-list.component.html | 35 +- .../list/bookmarks-list.component.scss | 2 +- .../list/bookmarks-list.component.ts | 21 +- .../features/collections/add-to-collection.ts | 93 +++-- .../collections/collections.component.html | 65 ++- .../collections/collections.component.ts | 17 +- .../features/collections/create-collection.ts | 75 ++-- .../collections/manage-collections.ts | 150 ++++--- src/core/features/dialog/i18n/en.json | 6 +- .../features/dialog/labels/edit-labels.ts | 105 +++-- .../features/dialog/labels/labels-form.ts | 321 ++++++++------- src/core/features/dialog/override-user.ts | 249 ++++++------ .../features/dialog/reset-user-settings.ts | 115 +++--- .../did-you-mean/did-you-mean.component.html | 6 +- .../did-you-mean/did-you-mean.component.ts | 31 +- src/core/features/login/login.component.html | 112 ++---- src/core/features/login/login.component.ts | 319 ++++++++------- .../recent-search.component.ts | 148 ++++--- .../recent-searches.component.html | 15 +- .../recent-searches.component.scss | 2 +- .../recent-searches.component.ts | 15 +- .../saved-searches.component.html | 27 +- .../saved-searches.component.scss | 2 +- .../saved-searches.component.ts | 63 +-- .../sort-selector.component.html | 22 +- .../sort-selector/sort-selector.component.ts | 13 +- .../features/user-menu/help-folder-options.ts | 62 ++- src/core/features/user-menu/user-menu.html | 155 +++++-- src/core/features/user-menu/user-menu.ts | 63 +-- src/core/pipes/operator.ts | 10 +- src/core/pipes/syslang.ts | 15 +- src/core/pipes/transloco-date.pipe.ts | 4 +- src/core/registry/base-article.ts | 10 +- src/core/registry/base-preview.ts | 8 +- src/environments/env.model.ts | 4 +- src/environments/environment.production.ts | 4 +- src/environments/environment.ts | 4 +- src/index.html | 28 +- src/main.ts | 24 +- src/styles.scss | 30 +- src/styles/checkbox.scss | 10 +- src/styles/collapse.scss | 20 +- src/styles/design-system/design-system.scss | 4 +- src/styles/design-system/dividers.scss | 6 +- src/styles/design-system/lists.scss | 7 +- src/styles/layouts.scss | 2 +- src/styles/radio.scss | 10 +- tailwind.config.js | 7 +- 126 files changed, 3600 insertions(+), 3727 deletions(-) delete mode 100644 src/core/components/article/slide-skeleton/article-slide-skeleton.component.scss diff --git a/src/app/app.component.html b/src/app/app.component.html index 501264a3..68a1af47 100644 --- a/src/app/app.component.html +++ b/src/app/app.component.html @@ -1,7 +1,7 @@ - - - - - - - \ No newline at end of file + + + + + + + diff --git a/src/app/app.component.ts b/src/app/app.component.ts index bb7c84b2..2d6ca746 100644 --- a/src/app/app.component.ts +++ b/src/app/app.component.ts @@ -10,7 +10,6 @@ import { ApplicationService, UserSettingsStore } from '@sinequa/atomic-angular'; import { BackdropComponent } from '@/core/components/drawer/backdrop/backdrop.component'; import { DrawerStackComponent } from '@/core/components/drawer/drawer-stack/drawer-stack.component'; - @Component({ selector: 'app-root', standalone: true, @@ -32,22 +31,20 @@ export class AppComponent { // Login and initialize the application when the user is logged in const { useCredentials } = globalConfig; - const success = await this.applicationService.autoLogin().catch((err) => { - console.warn("An error occured while logging in (app component)", err); + const success = await this.applicationService.autoLogin().catch(err => { + console.warn('An error occured while logging in (app component)', err); if (useCredentials) { this.router.navigate(['login']); - } - else if (err instanceof Response) { + } else if (err instanceof Response) { if (err.status === 401 || err.status === 403) { - toast.error("You are not authorized to access this page"); + toast.error('You are not authorized to access this page'); } if (err.status === 500) { - toast.error("An error 500 occured while processing your request"); + toast.error('An error 500 occured while processing your request'); this.router.navigate(['error'], { skipLocationChange: true }); } - } - else { - toast.error("An error occured while processing your request"); + } else { + toast.error('An error occured while processing your request'); this.router.navigate(['error'], { skipLocationChange: true }); } }); @@ -58,14 +55,13 @@ export class AppComponent { this.router.navigate(['/']); } } else { - console.warn("An error occured while logging in (app component) after auto login"); + console.warn('An error occured while logging in (app component) after auto login'); this.router.navigate(['error'], { skipLocationChange: true }); } } private setupApplicationLanguage() { - if (this.userSettingsStore.language?.() === undefined) - this.userSettingsStore.updateLanguage('en'); + if (this.userSettingsStore.language?.() === undefined) this.userSettingsStore.updateLanguage('en'); this.transloco.setActiveLang(this.userSettingsStore.language?.() ?? 'en'); } diff --git a/src/app/app.config.ts b/src/app/app.config.ts index 7e909942..df5049f7 100644 --- a/src/app/app.config.ts +++ b/src/app/app.config.ts @@ -4,10 +4,18 @@ import localeFr from '@angular/common/locales/fr'; import { APP_INITIALIZER, ApplicationConfig, LOCALE_ID, isDevMode, provideExperimentalZonelessChangeDetection } from '@angular/core'; import { provideAnimations } from '@angular/platform-browser/animations'; import { provideRouter, withComponentInputBinding, withHashLocation } from '@angular/router'; -import { QueryClient, provideAngularQuery } from '@tanstack/angular-query-experimental'; - -import { AGGREGATIONS_NAMES, AGGREGATIONS_NAMES_PRESET_DEFAULT, HIGHLIGHTS, ROUTE_COMPONENTS, auditInterceptorFn, authInterceptorFn, bodyInterceptorFn, errorInterceptorFn } from '@sinequa/atomic-angular'; +import { QueryClient, provideTanStackQuery } from '@tanstack/angular-query-experimental'; +import { + AGGREGATIONS_NAMES, + AGGREGATIONS_NAMES_PRESET_DEFAULT, + HIGHLIGHTS, + ROUTE_COMPONENTS, + auditInterceptorFn, + authInterceptorFn, + bodyInterceptorFn, + errorInterceptorFn +} from '@sinequa/atomic-angular'; import { appInitializerFn } from '@sinequa/atomic'; import { toastInterceptorFn } from '@sinequa/atomic-angular'; @@ -57,7 +65,9 @@ export const appConfig: ApplicationConfig = { { provide: APP_INITIALIZER, useFactory: () => appInitializerFn, multi: true }, { provide: LOCALE_ID, useValue: 'fr-FR' }, { provide: HIGHLIGHTS, useValue: PREVIEW_HIGHLIGHTS }, - { provide: ROUTE_COMPONENTS, useValue: [ + { + provide: ROUTE_COMPONENTS, + useValue: [ { path: 'search', component: SearchComponent, @@ -65,30 +75,26 @@ export const appConfig: ApplicationConfig = { }, { path: 'all', - component: SearchAllComponent, + component: SearchAllComponent } ] }, - { provide: AGGREGATIONS_NAMES, useValue: [...AGGREGATIONS_NAMES_PRESET_DEFAULT, "Money"] }, + { provide: AGGREGATIONS_NAMES, useValue: [...AGGREGATIONS_NAMES_PRESET_DEFAULT, 'Money'] }, provideRouter(routes, withHashLocation(), withComponentInputBinding()), - provideHttpClient(withInterceptors([ - bodyInterceptorFn, - authInterceptorFn, - auditInterceptorFn, - errorInterceptorFn, - toastInterceptorFn - ])), - provideAngularQuery(new QueryClient({ - defaultOptions: { - queries: { - refetchOnWindowFocus: false, - gcTime: 0, - retry(failureCount, error) { - return false; + provideHttpClient(withInterceptors([bodyInterceptorFn, authInterceptorFn, auditInterceptorFn, errorInterceptorFn, toastInterceptorFn])), + provideTanStackQuery( + new QueryClient({ + defaultOptions: { + queries: { + refetchOnWindowFocus: false, + gcTime: 0, + retry() { + return false; + } } } - } - })), + }) + ), provideTransloco({ config: { availableLangs: ['en', 'fr'], @@ -102,7 +108,7 @@ export const appConfig: ApplicationConfig = { useFallbackTranslation: true } }, - loader: TranslocoHttpLoader, + loader: TranslocoHttpLoader }), provideTranslocoMessageformat() ] diff --git a/src/app/app.routes.ts b/src/app/app.routes.ts index 11fbadf0..5e2f563c 100644 --- a/src/app/app.routes.ts +++ b/src/app/app.routes.ts @@ -11,16 +11,16 @@ import { SearchComponent } from './pages/search/search.component'; // Extended types to add custom properties to routes type ExtendedData = Data & { - queryName?: string; // name of the query defined in the admin - display?: string; // the label you want to display in the interface - wsQueryTab?: string; // the name of the "tab" associated with the query you want to use - icon?: string; // the icon you want to associate with the label in the interface - [key: string | symbol]: any; // all the "custom" parameters you want -} + queryName?: string; // name of the query defined in the admin + display?: string; // the label you want to display in the interface + wsQueryTab?: string; // the name of the "tab" associated with the query you want to use + icon?: string; // the icon you want to associate with the label in the interface + [key: string | symbol]: any; // all the "custom" parameters you want +}; type ExtendedRoute = Route & { data?: ExtendedData; children?: ExtendedRoutes; -} +}; type ExtendedRoutes = ExtendedRoute[]; export const routes: ExtendedRoutes = [ @@ -28,7 +28,10 @@ export const routes: ExtendedRoutes = [ { path: 'logout', component: LoginComponent }, { path: 'home', component: HomeComponent, canActivate: [AuthGuard(), InitializationGuard()], resolve: { queryName: queryNameResolver } }, { - path: 'search', component: SearchComponent, canActivate: [AuthGuard(), InitializationGuard()], resolve: { queryName: queryNameResolver }, + path: 'search', + component: SearchComponent, + canActivate: [AuthGuard(), InitializationGuard()], + resolve: { queryName: queryNameResolver }, children: [ { path: 'all', component: LoadingComponent }, { path: '**', redirectTo: 'all', pathMatch: 'full' } @@ -37,4 +40,4 @@ export const routes: ExtendedRoutes = [ { path: 'loading', component: LoadingComponent }, { path: 'error', component: ErrorComponent }, { path: '**', redirectTo: 'home', pathMatch: 'full' } -]; \ No newline at end of file +]; diff --git a/src/app/pages/home/home.component.html b/src/app/pages/home/home.component.html index e402554b..30ae9152 100644 --- a/src/app/pages/home/home.component.html +++ b/src/app/pages/home/home.component.html @@ -1,51 +1,39 @@ - -

      -
      - Sinequa logo + +
      +
      + Sinequa logo
      -
      - - +
      + + -
      +
      @for (tab of tabs(); track tab.label) { -
    • - -
    • +
    • + +
    • }
    • -
      +
      @for (tab of tabs(); track tab.label) { -
      - -
      +
      + +
      }
      diff --git a/src/app/pages/home/home.component.ts b/src/app/pages/home/home.component.ts index 2c6795be..9e950071 100644 --- a/src/app/pages/home/home.component.ts +++ b/src/app/pages/home/home.component.ts @@ -14,14 +14,13 @@ import { SavedSearchesComponent } from '@/core/features/saved-searches/saved-sea import { UserMenuComponent } from '@/core/features/user-menu/user-menu'; import { CollectionsComponent } from '@/core/features/collections/collections.component'; - type HomeTab = { name: string; iconClass: string; label: string; component: Type; disabled?: boolean; -} +}; const homeFeatures: HomeTab[] = [ { @@ -55,16 +54,9 @@ const homeFeatures: HomeTab[] = [ standalone: true, templateUrl: './home.component.html', host: { - "class": "layout-search h-screen" + class: 'layout-search h-screen' }, - imports: [ - NgClass, - NgComponentOutlet, - SearchInputComponent, - AutocompleteComponent, - UserMenuComponent, - TranslocoPipe - ], + imports: [NgClass, NgComponentOutlet, SearchInputComponent, AutocompleteComponent, UserMenuComponent, TranslocoPipe] }) export class HomeComponent implements OnInit, OnDestroy { @HostBinding('attr.drawer-opened') public drawerOpened: boolean = false; @@ -89,26 +81,25 @@ export class HomeComponent implements OnInit, OnDestroy { defaultUserFeatures = { bookmarks: true, recentSearches: true, - savedSearches: true, - } + savedSearches: true + }; readonly translateService = inject(TranslocoService); constructor() { // react to tab changes - effect(() => { - this.selectedTabId.set(this.tabs().findIndex((tab) => !tab.disabled)); - }, { allowSignalWrites: true }); - - this.sub.add( - this.drawerStack.isOpened.subscribe(state => this.drawerOpened = state) + effect( + () => { + this.selectedTabId.set(this.tabs().findIndex(tab => !tab.disabled)); + }, + { allowSignalWrites: true } ); + this.sub.add(this.drawerStack.isOpened.subscribe(state => (this.drawerOpened = state))); + this.sub.add( // on navigation, close all tabs - this.router.events - .pipe(filter(event => event.type === EventType.NavigationStart)) - .subscribe(() => this.drawerStack.closeAll()) + this.router.events.pipe(filter(event => event.type === EventType.NavigationStart)).subscribe(() => this.drawerStack.closeAll()) ); } diff --git a/src/app/pages/search/all/search-all.component.html b/src/app/pages/search/all/search-all.component.html index 22e9d7b4..fd318365 100644 --- a/src/app/pages/search/all/search-all.component.html +++ b/src/app/pages/search/all/search-all.component.html @@ -1,47 +1,41 @@ -
      +
      @if (query.isPending()) { -
      +
      -
      -
      -
      -
      -
      +
      +
      +
      +
      +
      -
      +
      - } - @else if (query.isSuccess()) { - + } @else if (query.isSuccess()) { + } - + @if (query.isPending()) { -
      -
      +
      +
      -
        +
        - } - @else if (query.isSuccess() && query.data()?.pages) { + } @else if (query.isSuccess() && query.data()?.pages) { -
        - +
        +
        -
          +
            @for (page of query.data()?.pages; track page) { @for (article of page.records; track article.id + $index) {
          • @@ -49,8 +43,7 @@ }
          • - } - @empty { + } @empty {
          • diff --git a/src/app/pages/search/all/search-all.component.ts b/src/app/pages/search/all/search-all.component.ts index 1fd3c887..87acbcf7 100644 --- a/src/app/pages/search/all/search-all.component.ts +++ b/src/app/pages/search/all/search-all.component.ts @@ -6,15 +6,15 @@ import { InfinityScrollDirective } from '@sinequa/atomic-angular'; import { getComponentsForDocumentType } from '@/app/registry/document-type-registry'; import { ArticleDefaultSkeletonComponent } from '@/core/components/article/default-skeleton/article-default-skeleton.component'; -import { FiltersListComponent } from "@/core/components/filters/filters-list.component"; -import { NoResultPanelComponent } from "@/core/components/no-result-panel/no-result-panel.component"; -import { SponsoredResultsComponent } from "@/core/components/sponsored-results/sponsored-results.component"; +import { FiltersListComponent } from '@/core/components/filters/filters-list.component'; +import { NoResultPanelComponent } from '@/core/components/no-result-panel/no-result-panel.component'; +import { SponsoredResultsComponent } from '@/core/components/sponsored-results/sponsored-results.component'; import { DidYouMeanComponent } from '@/core/features/did-you-mean/did-you-mean.component'; import { SortSelectorComponent, SortingChoice } from '@/core/features/sort-selector/sort-selector.component'; import { SearchBase } from '../search.abstract'; -type R = Result & { nextPage?: number, previousPage?: number }; +type R = Result & { nextPage?: number; previousPage?: number }; @Component({ selector: 'app-search-all', @@ -37,22 +37,19 @@ type R = Result & { nextPage?: number, previousPage?: number }; }) export class SearchAllComponent extends SearchBase { @HostBinding('attr.drawer-opened') - - onSort(sort: SortingChoice): void { this.queryParamsStore.patch({ sort: sort.name }); this.searchService.search([], { audit: { - type: "Search_Sort", + type: 'Search_Sort', detail: { sort: sort.name, - orderByClause: sort.orderByClause, + orderByClause: sort.orderByClause } } }); } - getArticleType(docType: string): Type { return getComponentsForDocumentType(docType).articleComponent; } diff --git a/src/app/pages/search/search.abstract.ts b/src/app/pages/search/search.abstract.ts index 0d607917..69758c6a 100644 --- a/src/app/pages/search/search.abstract.ts +++ b/src/app/pages/search/search.abstract.ts @@ -1,184 +1,195 @@ -import { Component, computed, effect, HostBinding, inject, input, OnDestroy, signal } from "@angular/core"; -import { ActivatedRoute, Router } from "@angular/router"; -import { getState } from "@ngrx/signals"; -import { injectInfiniteQuery } from "@tanstack/angular-query-experimental"; -import { lastValueFrom, map, Subscription, tap } from "rxjs"; - -import { Aggregation, Article, Query, QueryParams, Result } from "@sinequa/atomic"; -import { AggregationsStore, DrawerStackService, PrincipalStore, QueryParamsStore, SearchService, SelectionService, UserSettingsStore } from "@sinequa/atomic-angular"; - - -type R = Result & { nextPage?: number, previousPage?: number }; -type QP = { - f?: string; // filters list - p?: number; // page number - s?: string; // sort name - t?: string; // tab name - q?: string; // query text - b?: string; // basket -} - -@Component({ - template: '' -}) -export abstract class SearchBase implements OnDestroy { - @HostBinding('attr.drawer-opened') - public drawerOpened: boolean = false; - - protected readonly result = signal(undefined); - protected readonly queryText = signal(''); - protected readonly assistantCollapsed = signal(true); - - protected readonly searchService = inject(SearchService); - protected readonly drawerStack = inject(DrawerStackService); - protected readonly selectionService = inject(SelectionService); - - protected readonly aggregationsStore = inject(AggregationsStore); - protected readonly queryParamsStore = inject(QueryParamsStore); - protected readonly principalStore = inject(PrincipalStore); - protected readonly usersettingsStore = inject(UserSettingsStore); - - protected readonly router = inject(Router); - protected readonly route = inject(ActivatedRoute); - - protected aggregations: Aggregation[]; - - protected readonly sub = new Subscription(); - - // track the query params store changes - keys = computed(() => { - const state = getState(this.queryParamsStore) - const r = { tab: state.tab, text: state.text, filters: state.filters, sort: state.sort, basket: state.basket }; - return r; - }); - - // get the id from the query params store to open the drawer with the preview of the article - id = computed(() => { - const state = getState(this.queryParamsStore); - return state.id; - }); - - // the query must be retriggered when the user override is active - userOverrideActive = computed(() => { - const state = getState(this.principalStore); - return state.userOverrideActive; - }); - - - // input url bindings - q = input(); // text - t = input(); // tab - b = input(); // basket - s = input(); // sort - f = input(); // filters - queryName = input(); // query param - - - // tanstack query - query = injectInfiniteQuery(() => ({ - queryKey: [`search-${this.t()}`, this.keys(), this.userOverrideActive()], - queryFn: ({ pageParam }) => { - const q = this.queryParamsStore.getQuery(); - - const query = { ...q, page: pageParam, tab: this.t(), basket: this.b() } as Query; - - // Add the current search to the user settings when the text is not empty - if(query.text && query.text !== '') { - this.usersettingsStore.addCurrentSearch(query as QueryParams); - } - - return lastValueFrom(this.searchService.getResult(query).pipe( - tap(() => this.queryText.set(this.keys().text ?? '')), - map(result => { - return this.updateArticleType(result); - }), - map(result => { - // If the id is set, open the drawer with the preview of the article - const id = this.id(); - if (id) { - result.records?.forEach(article => { - if (article.id === id) { - this.selectionService.setCurrentArticle(article); - this.drawerStack.open(); - } - }); - } - return result; - }) - )); - }, - initialPageParam: 1, - getPreviousPageParam: (firstPage) => (firstPage.previousPage ?? undefined), - getNextPageParam: (lastPage) => (lastPage.nextPage ?? undefined), - })); - - constructor() { - // Update the query params store with the filters from the query params - // This allows Browser back/forward to work correctly - effect(() => { - const filters = this.f() ? JSON.parse(this.f() ?? '') : []; // Parse the filters from the query params - this.queryParamsStore.patch({ text: this.q(), tab: this.t(), basket: this.b(), sort: this.s(), filters, name: this.queryName() }); - }, { allowSignalWrites: true }); - - // Update the URL with the query params - effect(() => { - const key = this.keys(); - - const queryParams: QP = {}; - const { text, filters = [], page, sort, tab, basket } = getState(this.queryParamsStore); - - queryParams.f = filters.length > 0 ? JSON.stringify(filters) : undefined; - queryParams.p = page; - queryParams.s = sort; - queryParams.t = tab; - queryParams.q = text; - queryParams.b = basket; - - this.router.navigate([], { relativeTo: this.route, queryParamsHandling: 'merge', queryParams, state: { } }); - }) - - // Make Result object available to children and update aggregations store - effect(() => { - this.query.isSuccess(); - - const result = this.query.data()?.pages[0]; - - if (!result) return; - - this.result.set(result); - - // Update the aggregations store with the new aggregations - this.aggregationsStore.update(result.aggregations); - }, { allowSignalWrites: true }); - - this.sub.add( - this.drawerStack.isOpened.subscribe(state => this.drawerOpened = state) - ); - } - - ngOnDestroy(): void { - this.sub.unsubscribe(); - this.aggregationsStore.clear(); - } - - nextPage() { - this.query.fetchNextPage(); - } - - /** - * Updates the article type for each record in the result. - * - * This method maps over the `records` array in the `result` object and updates each - * `article` by adding a `value` property set to the `article.title` and a `type` property - * set to `'default'`. The updated `result` object is then returned. - * - * @param {Result} result - The result object containing an array of records to be updated. - * @returns {Result} The updated result object with modified article records. - */ - protected updateArticleType(result: Result) { - result.records?.map((article: Article) => { - return { ...article, value: article.title, type: 'default' }; - }); - return result; - } -} \ No newline at end of file +import { Component, computed, effect, HostBinding, inject, input, OnDestroy, signal } from '@angular/core'; +import { ActivatedRoute, Router } from '@angular/router'; +import { getState } from '@ngrx/signals'; +import { injectInfiniteQuery } from '@tanstack/angular-query-experimental'; +import { lastValueFrom, map, Subscription, tap } from 'rxjs'; + +import { Aggregation, Article, Query, QueryParams, Result } from '@sinequa/atomic'; +import { + AggregationsStore, + DrawerStackService, + PrincipalStore, + QueryParamsStore, + SearchService, + SelectionService, + UserSettingsStore +} from '@sinequa/atomic-angular'; + +type R = Result & { nextPage?: number; previousPage?: number }; +type QP = { + f?: string; // filters list + p?: number; // page number + s?: string; // sort name + t?: string; // tab name + q?: string; // query text + b?: string; // basket +}; + +@Component({ + template: '' +}) +export abstract class SearchBase implements OnDestroy { + @HostBinding('attr.drawer-opened') + public drawerOpened: boolean = false; + + protected readonly result = signal(undefined); + protected readonly queryText = signal(''); + protected readonly assistantCollapsed = signal(true); + + protected readonly searchService = inject(SearchService); + protected readonly drawerStack = inject(DrawerStackService); + protected readonly selectionService = inject(SelectionService); + + protected readonly aggregationsStore = inject(AggregationsStore); + protected readonly queryParamsStore = inject(QueryParamsStore); + protected readonly principalStore = inject(PrincipalStore); + protected readonly usersettingsStore = inject(UserSettingsStore); + + protected readonly router = inject(Router); + protected readonly route = inject(ActivatedRoute); + + protected aggregations: Aggregation[]; + + protected readonly sub = new Subscription(); + + // track the query params store changes + keys = computed(() => { + const state = getState(this.queryParamsStore); + const r = { tab: state.tab, text: state.text, filters: state.filters, sort: state.sort, basket: state.basket }; + return r; + }); + + // get the id from the query params store to open the drawer with the preview of the article + id = computed(() => { + const state = getState(this.queryParamsStore); + return state.id; + }); + + // the query must be retriggered when the user override is active + userOverrideActive = computed(() => { + const state = getState(this.principalStore); + return state.userOverrideActive; + }); + + // input url bindings + q = input(); // text + t = input(); // tab + b = input(); // basket + s = input(); // sort + f = input(); // filters + queryName = input(); // query param + + // tanstack query + query = injectInfiniteQuery(() => ({ + queryKey: [`search-${this.t()}`, this.keys(), this.userOverrideActive()], + queryFn: ({ pageParam }) => { + const q = this.queryParamsStore.getQuery(); + + const query = { ...q, page: pageParam, tab: this.t(), basket: this.b() } as Query; + + // Add the current search to the user settings when the text is not empty + if (query.text && query.text !== '') { + this.usersettingsStore.addCurrentSearch(query as QueryParams); + } + + return lastValueFrom( + this.searchService.getResult(query).pipe( + tap(() => this.queryText.set(this.keys().text ?? '')), + map(result => { + return this.updateArticleType(result); + }), + map(result => { + // If the id is set, open the drawer with the preview of the article + const id = this.id(); + if (id) { + result.records?.forEach(article => { + if (article.id === id) { + this.selectionService.setCurrentArticle(article); + this.drawerStack.open(); + } + }); + } + return result; + }) + ) + ); + }, + initialPageParam: 1, + getPreviousPageParam: firstPage => firstPage.previousPage ?? undefined, + getNextPageParam: lastPage => lastPage.nextPage ?? undefined + })); + + constructor() { + // Update the query params store with the filters from the query params + // This allows Browser back/forward to work correctly + effect( + () => { + const filters = this.f() ? JSON.parse(this.f() ?? '') : []; // Parse the filters from the query params + this.queryParamsStore.patch({ text: this.q(), tab: this.t(), basket: this.b(), sort: this.s(), filters, name: this.queryName() }); + }, + { allowSignalWrites: true } + ); + + // Update the URL with the query params + effect(() => { + const key = this.keys(); + + const queryParams: QP = {}; + const { text, filters = [], page, sort, tab, basket } = getState(this.queryParamsStore); + + queryParams.f = filters.length > 0 ? JSON.stringify(filters) : undefined; + queryParams.p = page; + queryParams.s = sort; + queryParams.t = tab; + queryParams.q = text; + queryParams.b = basket; + + this.router.navigate([], { relativeTo: this.route, queryParamsHandling: 'merge', queryParams, state: {} }); + }); + + // Make Result object available to children and update aggregations store + effect( + () => { + this.query.isSuccess(); + + const result = this.query.data()?.pages[0]; + + if (!result) return; + + this.result.set(result); + + // Update the aggregations store with the new aggregations + this.aggregationsStore.update(result.aggregations); + }, + { allowSignalWrites: true } + ); + + this.sub.add(this.drawerStack.isOpened.subscribe(state => (this.drawerOpened = state))); + } + + ngOnDestroy(): void { + this.sub.unsubscribe(); + this.aggregationsStore.clear(); + } + + nextPage() { + this.query.fetchNextPage(); + } + + /** + * Updates the article type for each record in the result. + * + * This method maps over the `records` array in the `result` object and updates each + * `article` by adding a `value` property set to the `article.title` and a `type` property + * set to `'default'`. The updated `result` object is then returned. + * + * @param {Result} result - The result object containing an array of records to be updated. + * @returns {Result} The updated result object with modified article records. + */ + protected updateArticleType(result: Result) { + result.records?.map((article: Article) => { + return { ...article, value: article.title, type: 'default' }; + }); + return result; + } +} diff --git a/src/app/pages/search/search.component.ts b/src/app/pages/search/search.component.ts index 147045e4..4b7cafcc 100644 --- a/src/app/pages/search/search.component.ts +++ b/src/app/pages/search/search.component.ts @@ -12,4 +12,4 @@ import { NavbarComponent } from '@/core/components/navbar/navbar.component'; class: 'flex flex-col h-full w-full' } }) -export class SearchComponent { } +export class SearchComponent {} diff --git a/src/app/registry/document-type-registry.ts b/src/app/registry/document-type-registry.ts index 66dccd92..13a6fc2d 100644 --- a/src/app/registry/document-type-registry.ts +++ b/src/app/registry/document-type-registry.ts @@ -1,11 +1,11 @@ -import { Type } from "@angular/core"; +import { Type } from '@angular/core'; -import { Article } from "@sinequa/atomic"; +import { Article } from '@sinequa/atomic'; -import { ArticleDefaultComponent } from "@/core/components/article/default/article-default.component"; -import { ArticleSlideComponent } from "@/core/components/article/slide/article-slide.component"; -import { PreviewDefaultComponent } from "@/core/components/preview/default/preview-default.component"; -import { PreviewSlideComponent } from "@/core/components/preview/slide/preview-slide.component"; +import { ArticleDefaultComponent } from '@/core/components/article/default/article-default.component'; +import { ArticleSlideComponent } from '@/core/components/article/slide/article-slide.component'; +import { PreviewDefaultComponent } from '@/core/components/preview/default/preview-default.component'; +import { PreviewSlideComponent } from '@/core/components/preview/slide/preview-slide.component'; // Define the default document type, should be linked to default article and preview components // This document type is used when the document type is not recognized @@ -18,7 +18,7 @@ export type DocumentTypeMap = { documentType: string; articleComponent: Type; previewComponent: Type; -} +}; // Define the mapping between document types and components // Keep it sorted by docType length in descending order so @@ -44,10 +44,10 @@ export function getComponentsForArticle(article: Article): DocumentTypeMap { export function getComponentsForDocumentType(documentType?: string): DocumentTypeMap { if (documentType) { - const type = documentTypeMap.find((dtm) => dtm.documentType === documentType); + const type = documentTypeMap.find(dtm => dtm.documentType === documentType); if (type) return type; } - return documentTypeMap.find((dtm) => dtm.documentType === DEFAULT_DOCUMENT_TYPE)!; + return documentTypeMap.find(dtm => dtm.documentType === DEFAULT_DOCUMENT_TYPE)!; } diff --git a/src/app/transloco-loader.ts b/src/app/transloco-loader.ts index 6250d46b..da2065d4 100644 --- a/src/app/transloco-loader.ts +++ b/src/app/transloco-loader.ts @@ -1,9 +1,9 @@ -import { HttpClient } from "@angular/common/http"; -import { inject, Injectable } from "@angular/core"; -import { Translation, TranslocoLoader } from "@jsverse/transloco"; +import { HttpClient } from '@angular/common/http'; +import { inject, Injectable } from '@angular/core'; +import { Translation, TranslocoLoader } from '@jsverse/transloco'; @Injectable({ - providedIn: 'root', + providedIn: 'root' }) export class TranslocoHttpLoader implements TranslocoLoader { private http = inject(HttpClient); diff --git a/src/assets/error.html b/src/assets/error.html index 390a4382..bf678603 100644 --- a/src/assets/error.html +++ b/src/assets/error.html @@ -1,98 +1,122 @@ - - - - - Error - - - - -
            - -

            Oops! Something went wrong

            -

            We apologize for the inconvenience.

            - - -

            -
            - - - \ No newline at end of file + + + + + Error + + + + +
            + + + + + +

            Oops! Something went wrong

            +

            We apologize for the inconvenience.

            + + +

            +
            + + + diff --git a/src/assets/i18n/en.json b/src/assets/i18n/en.json index d88af34e..15ea8230 100644 --- a/src/assets/i18n/en.json +++ b/src/assets/i18n/en.json @@ -53,4 +53,4 @@ "to": "To", "type": "Type", "username": "Username" -} \ No newline at end of file +} diff --git a/src/assets/i18n/fr.json b/src/assets/i18n/fr.json index 7c59278a..fee71d65 100644 --- a/src/assets/i18n/fr.json +++ b/src/assets/i18n/fr.json @@ -53,4 +53,4 @@ "to": "A", "type": "Type", "username": "Nom d'utilisateur" -} \ No newline at end of file +} diff --git a/src/core/components/article/default-skeleton/article-default-skeleton.component.html b/src/core/components/article/default-skeleton/article-default-skeleton.component.html index 37d4e6b6..dd1bc56d 100644 --- a/src/core/components/article/default-skeleton/article-default-skeleton.component.html +++ b/src/core/components/article/default-skeleton/article-default-skeleton.component.html @@ -1,25 +1,25 @@
            -
            +
            -
            +
            -
            -
            -
            -
            +
            +
            +
            +
            -
            -
            +
            +
            -
            -
            -
            +
            +
            +
            -
            \ No newline at end of file +
            diff --git a/src/core/components/article/default-skeleton/article-default-skeleton.component.ts b/src/core/components/article/default-skeleton/article-default-skeleton.component.ts index f08078f9..804efbf5 100644 --- a/src/core/components/article/default-skeleton/article-default-skeleton.component.ts +++ b/src/core/components/article/default-skeleton/article-default-skeleton.component.ts @@ -8,4 +8,4 @@ import { SkeletonDirective } from 'toolkit'; templateUrl: './article-default-skeleton.component.html', styleUrl: './article-default-skeleton.component.scss' }) -export class ArticleDefaultSkeletonComponent { } +export class ArticleDefaultSkeletonComponent {} diff --git a/src/core/components/article/default/article-default.component.html b/src/core/components/article/default/article-default.component.html index 2de8853b..d15da198 100644 --- a/src/core/components/article/default/article-default.component.html +++ b/src/core/components/article/default/article-default.component.html @@ -1,14 +1,14 @@ -
            +
            -
            - +
            +
            -
            -

            {{ article().title }}

            +
            +

            {{ article().title }}

            @if (showBookmark()) { @@ -17,43 +17,44 @@
            @if (hasLabelsAccess()) { -
            -
            +
            @if (docformatMetadata()) { -
            - {{ docformatMetadata() }} -
            +
            + {{ docformatMetadata() }} +
            } -
            - @if ((article().authors || { authors: ['']}).length > 0) { - {{ article().authors[0] }} +
            + @if ((article().authors || { authors: [''] }).length > 0) { + {{ article().authors[0] }} } @if (article().modified) { -

            - - {{ article()!.modified!.split(" ")[0] | translocoDate : "mediumDate" }} -

            +

            + + {{ article()!.modified!.split(' ')[0] | translocoDate: 'mediumDate' }} +

            }
            @@ -64,9 +65,8 @@
      -
  • - \ No newline at end of file + diff --git a/src/core/components/article/default/article-default.component.scss b/src/core/components/article/default/article-default.component.scss index 17ce5a25..7889dfa9 100644 --- a/src/core/components/article/default/article-default.component.scss +++ b/src/core/components/article/default/article-default.component.scss @@ -11,7 +11,7 @@ div.tab-container { } .similar-documents li { - margin-left: theme("spacing.2"); + margin-left: theme('spacing.2'); } .article-extract { @@ -22,4 +22,4 @@ div.tab-container { ::ng-deep .matchlocations { font-weight: 700; -} \ No newline at end of file +} diff --git a/src/core/components/article/default/article-default.component.ts b/src/core/components/article/default/article-default.component.ts index 7b350684..ffb3eb71 100644 --- a/src/core/components/article/default/article-default.component.ts +++ b/src/core/components/article/default/article-default.component.ts @@ -2,7 +2,17 @@ import { BookmarkButtonComponent } from '@/core/features/bookmarks/button/bookma import { Component, computed, inject, OnDestroy, signal, viewChild } from '@angular/core'; import { getState } from '@ngrx/signals'; -import { ApplicationStore, AppStore, DropdownComponent, LabelService, QueryParamsStore, SearchService, SelectArticleOnClickDirective, SelectionStore, ShowBookmarkDirective } from '@sinequa/atomic-angular'; +import { + ApplicationStore, + AppStore, + DropdownComponent, + LabelService, + QueryParamsStore, + SearchService, + SelectArticleOnClickDirective, + SelectionStore, + ShowBookmarkDirective +} from '@sinequa/atomic-angular'; import { EditLabelsComponent } from '@/core/features/dialog/labels/edit-labels'; import { TranslocoDateImpurePipe } from '@/core/pipes/transloco-date.pipe'; @@ -17,10 +27,13 @@ type Tab = 'attachments' | 'similars'; const HIDDEN_METADATA = ['web', 'htm', 'html', 'xhtm', 'xhtml', 'mht', 'mhtml', 'mht', 'aspx', 'page']; -const loader = ['en', 'fr'].reduce((acc, lang) => { - acc[lang] = () => import(`../i18n/${lang}.json`); - return acc; -}, {} as HashMap<() => Promise>); +const loader = ['en', 'fr'].reduce( + (acc, lang) => { + acc[lang] = () => import(`../i18n/${lang}.json`); + return acc; + }, + {} as HashMap<() => Promise> +); @Component({ selector: 'app-article-default', @@ -34,16 +47,19 @@ const loader = ['en', 'fr'].reduce((acc, lang) => { EditLabelsComponent, AddToCollectionDialog, MissingTermsComponent -], + ], templateUrl: './article-default.component.html', styleUrl: './article-default.component.scss', - hostDirectives: [{ - directive: SelectArticleOnClickDirective, - inputs: ['article', 'strategy'] - }, { - directive: ShowBookmarkDirective, - inputs: ['article'] - }], + hostDirectives: [ + { + directive: SelectArticleOnClickDirective, + inputs: ['article', 'strategy'] + }, + { + directive: ShowBookmarkDirective, + inputs: ['article'] + } + ], providers: [provideTranslocoScope({ scope: 'article', loader })] }) export class ArticleDefaultComponent extends BaseArticle implements OnDestroy { @@ -58,7 +74,7 @@ export class ArticleDefaultComponent extends BaseArticle implements OnDestroy { readonly addToCollectionDialog = viewChild(AddToCollectionDialog); showBookmark = signal(false); - showBookmarkOutputSubscription = inject(ShowBookmarkDirective)?.showBookmark.subscribe((value) => { + showBookmarkOutputSubscription = inject(ShowBookmarkDirective)?.showBookmark.subscribe(value => { this.showBookmark.set(value); }); @@ -67,19 +83,17 @@ export class ArticleDefaultComponent extends BaseArticle implements OnDestroy { protected extract = computed(() => { if (!this.article().matchingpassages) return this.article().relevantExtracts; - const topPassage = this.article().matchingpassages!.passages.sort((a, b) => a.score > b.score ? -1 : 1)[0]; + const topPassage = this.article().matchingpassages!.passages.sort((a, b) => (a.score > b.score ? -1 : 1))[0]; return topPassage.highlightedText; - }) + }); protected showTab = signal(false); protected currentTab: Tab = 'attachments'; protected docformatMetadata = computed(() => { - if (this.article().docformat && !HIDDEN_METADATA.includes(this.article().docformat.toLowerCase())) - return this.article().docformat; + if (this.article().docformat && !HIDDEN_METADATA.includes(this.article().docformat.toLowerCase())) return this.article().docformat; - if (this.article().doctype && !HIDDEN_METADATA.includes(this.article().doctype!.toLowerCase())) - return this.article().doctype; + if (this.article().doctype && !HIDDEN_METADATA.includes(this.article().doctype!.toLowerCase())) return this.article().doctype; return undefined; }); diff --git a/src/core/components/article/i18n/en.json b/src/core/components/article/i18n/en.json index ef31ea85..ecd7fb30 100644 --- a/src/core/components/article/i18n/en.json +++ b/src/core/components/article/i18n/en.json @@ -4,4 +4,4 @@ "addToCollection": "Add to collection", "missingTerms": "Missing terms:", "mustInclude": "Must include:" -} \ No newline at end of file +} diff --git a/src/core/components/article/i18n/fr.json b/src/core/components/article/i18n/fr.json index bc8b79d4..34264037 100644 --- a/src/core/components/article/i18n/fr.json +++ b/src/core/components/article/i18n/fr.json @@ -4,4 +4,4 @@ "addToCollection": "Ajouter à une collection", "missingTerms": "Termes manquants:", "mustInclude": "Doit inclure:" -} \ No newline at end of file +} diff --git a/src/core/components/article/missing-terms/missing-terms.component.html b/src/core/components/article/missing-terms/missing-terms.component.html index 1324e933..1cc3d1b8 100644 --- a/src/core/components/article/missing-terms/missing-terms.component.html +++ b/src/core/components/article/missing-terms/missing-terms.component.html @@ -1,15 +1,15 @@ @if ((missingTerms() || []).length > 0) { - {{ 'article.missingTerms' | transloco }} - - @for (term of missingTerms(); track $index) { - {{term.value}} - } - - | - {{ 'article.mustInclude' | transloco }} - - @for (term of missingTerms(); track $index) { - {{ term.value }} - } - -} \ No newline at end of file + {{ 'article.missingTerms' | transloco }} + + @for (term of missingTerms(); track $index) { + {{ term.value }} + } + + | + {{ 'article.mustInclude' | transloco }} + + @for (term of missingTerms(); track $index) { + {{ term.value }} + } + +} diff --git a/src/core/components/article/missing-terms/missing-terms.component.ts b/src/core/components/article/missing-terms/missing-terms.component.ts index bb1a0bce..6a500449 100644 --- a/src/core/components/article/missing-terms/missing-terms.component.ts +++ b/src/core/components/article/missing-terms/missing-terms.component.ts @@ -4,10 +4,13 @@ import { HashMap, provideTranslocoScope, Translation, TranslocoPipe } from '@jsv import { Article } from '@sinequa/atomic'; import { QueryParamsStore, SearchService } from '@sinequa/atomic-angular'; -const loader = ['en', 'fr'].reduce((acc, lang) => { - acc[lang] = () => import(`../i18n/${lang}.json`); - return acc; -}, {} as HashMap<() => Promise>); +const loader = ['en', 'fr'].reduce( + (acc, lang) => { + acc[lang] = () => import(`../i18n/${lang}.json`); + return acc; + }, + {} as HashMap<() => Promise> +); @Component({ selector: 'missing-terms', @@ -16,9 +19,9 @@ const loader = ['en', 'fr'].reduce((acc, lang) => { templateUrl: './missing-terms.component.html', providers: [provideTranslocoScope({ scope: 'article', loader })], styles: ` -.term { - text-decoration-line: line-through; -} + .term { + text-decoration-line: line-through; + } ` }) export class MissingTermsComponent { @@ -30,12 +33,14 @@ export class MissingTermsComponent { public missingTerms = computed(() => { const query = this.queryParamsStore.getQuery(); - return this.article().termspresence?.filter(tp => tp.presence === 'missing').map(tp => { - const text = (query.text || '').replace(new RegExp(`\\b${tp.term}\\b`, 'gi'), ""); - return ({ - value: tp.term, - queryParams: { q: `${text}+[${tp.term}]` } - }) - }); - }) + return this.article() + .termspresence?.filter(tp => tp.presence === 'missing') + .map(tp => { + const text = (query.text || '').replace(new RegExp(`\\b${tp.term}\\b`, 'gi'), ''); + return { + value: tp.term, + queryParams: { q: `${text}+[${tp.term}]` } + }; + }); + }); } diff --git a/src/core/components/article/slide-skeleton/article-slide-skeleton.component.html b/src/core/components/article/slide-skeleton/article-slide-skeleton.component.html index f421a141..2220cc53 100644 --- a/src/core/components/article/slide-skeleton/article-slide-skeleton.component.html +++ b/src/core/components/article/slide-skeleton/article-slide-skeleton.component.html @@ -1,6 +1,6 @@ -
    +
    -
    -
    -
    -
    \ No newline at end of file +
    +
    +
    +
    diff --git a/src/core/components/article/slide-skeleton/article-slide-skeleton.component.scss b/src/core/components/article/slide-skeleton/article-slide-skeleton.component.scss deleted file mode 100644 index 0d51fec6..00000000 --- a/src/core/components/article/slide-skeleton/article-slide-skeleton.component.scss +++ /dev/null @@ -1,7 +0,0 @@ -:host { - @apply article flex-col p-0 pointer-events-none; -} - -div[stkSkeleton] { - @apply bg-fixed; -} diff --git a/src/core/components/article/slide-skeleton/article-slide-skeleton.component.ts b/src/core/components/article/slide-skeleton/article-slide-skeleton.component.ts index b2ef13cb..a40f57f2 100644 --- a/src/core/components/article/slide-skeleton/article-slide-skeleton.component.ts +++ b/src/core/components/article/slide-skeleton/article-slide-skeleton.component.ts @@ -6,6 +6,8 @@ import { SkeletonDirective } from 'toolkit'; standalone: true, imports: [SkeletonDirective], templateUrl: './article-slide-skeleton.component.html', - styleUrl: './article-slide-skeleton.component.scss' + host: { + class: 'article pointer-events-none flex-col p-0' + } }) -export class ArticleSlideSkeletonComponent { } +export class ArticleSlideSkeletonComponent {} diff --git a/src/core/components/article/slide/article-slide.component.html b/src/core/components/article/slide/article-slide.component.html index 0ca502c6..11672f1e 100644 --- a/src/core/components/article/slide/article-slide.component.html +++ b/src/core/components/article/slide/article-slide.component.html @@ -1,40 +1,35 @@ -
    +
    @if (article().thumbnailUrl && !thumbnailFailed()) { -
    - +
    +
    } -
    -
    -

    {{ article().title }}

    +
    +

    {{ article().title }}

    @if (showBookmark()) { }
    -
    -
    - @if ((article().authors || { authors: ['']}).length > 0) { -

    +

    +
    + @if ((article().authors || { authors: [''] }).length > 0) { +

    {{ article().authors[0] }}

    } @if (article().modified) { -

    +

    - {{ article()!.modified!.split(" ")[0] | translocoDate : "mediumDate" }} + {{ article()!.modified!.split(' ')[0] | translocoDate: 'mediumDate' }}

    }
    diff --git a/src/core/components/article/slide/article-slide.component.ts b/src/core/components/article/slide/article-slide.component.ts index ac4f090a..492db75d 100644 --- a/src/core/components/article/slide/article-slide.component.ts +++ b/src/core/components/article/slide/article-slide.component.ts @@ -1,35 +1,35 @@ -import { DatePipe } from '@angular/common'; import { Component, OnDestroy, computed, inject, signal } from '@angular/core'; import { getState } from '@ngrx/signals'; import { SelectArticleOnClickDirective, SelectionStore, ShowBookmarkDirective } from '@sinequa/atomic-angular'; -import { StopPropagationDirective } from 'toolkit'; import { BookmarkButtonComponent } from '@/core/features/bookmarks/button/bookmark-button.component'; import { TranslocoDateImpurePipe } from '@/core/pipes/transloco-date.pipe'; import { BaseArticle } from '@/core/registry/base-article'; - @Component({ selector: 'app-article-slide', standalone: true, - imports: [DatePipe, StopPropagationDirective, BookmarkButtonComponent, TranslocoDateImpurePipe], + imports: [BookmarkButtonComponent, TranslocoDateImpurePipe], templateUrl: './article-slide.component.html', // eslint-disable-next-line @angular-eslint/no-host-metadata-property host: { '[class.selected]': 'selected()' }, - hostDirectives: [{ - directive: SelectArticleOnClickDirective, - inputs: ['article', 'strategy'] - }, { - directive: ShowBookmarkDirective, - inputs: ['article'] - }] + hostDirectives: [ + { + directive: SelectArticleOnClickDirective, + inputs: ['article', 'strategy'] + }, + { + directive: ShowBookmarkDirective, + inputs: ['article'] + } + ] }) export class ArticleSlideComponent extends BaseArticle implements OnDestroy { selectionStore = inject(SelectionStore); - showBookmarkOutputSubscription = inject(ShowBookmarkDirective)?.showBookmark.subscribe((value) => { + showBookmarkOutputSubscription = inject(ShowBookmarkDirective)?.showBookmark.subscribe(value => { this.showBookmark.set(value); }); diff --git a/src/core/components/drawer/advanced-search/advanced-search.component.html b/src/core/components/drawer/advanced-search/advanced-search.component.html index 427faafc..e0b2c843 100644 --- a/src/core/components/drawer/advanced-search/advanced-search.component.html +++ b/src/core/components/drawer/advanced-search/advanced-search.component.html @@ -1,50 +1,42 @@ @if (article()) { -
    -
    +
    +
    -
    + class="group flex rounded focus-within:outline focus-within:outline-1 focus-within:outline-primary hover:outline hover:outline-1 [&:not(:focus-within)]:hover:outline-neutral-300"> +
    + (keydown.enter)="executeSearch()" /> @if (input() !== '') { - }
    -
    - -

    +

    + +

    {{ 'extracts' | transloco }}

    @@ -52,27 +44,19 @@
    - @if(loading()) { -
    + @if (loading()) { +
    - } - @else { + } @else {
      @for (extract of extracts(); track $index) { -
    • -

      +
    • +

    • -
    • - } - - @empty { +
    • + } @empty {
    • {{ 'drawers.noRelevantExtracts' | transloco }}
    • }
    @@ -80,9 +64,9 @@
    @if (hasLabels()) { -
    - -

    +

    + +

    {{ 'labels' | transloco }}

    @@ -93,24 +77,15 @@
    • - +
    • - +
    - } @for (highlight of previewHighlights(); track $index) { @@ -122,9 +97,9 @@ } -
    - -

    +

    + +

    {{ name | transloco }}

    @@ -135,19 +110,17 @@
      @for (data of metadata; track $index) { -
    • +
    • {{ data.display }}

      @if (hovering() === data.value) { - + {{ hoverIndex() }} / {{ data.count }} - - } - - @else { + + } @else { {{ data.count }} }

      @@ -156,4 +129,4 @@
    - \ No newline at end of file + diff --git a/src/core/components/drawer/advanced-search/advanced-search.component.ts b/src/core/components/drawer/advanced-search/advanced-search.component.ts index 2c40b3e5..0865444a 100644 --- a/src/core/components/drawer/advanced-search/advanced-search.component.ts +++ b/src/core/components/drawer/advanced-search/advanced-search.component.ts @@ -14,34 +14,34 @@ interface MetadataNavigation { } type PreviewWebService = CCWebService & { - highlights?: string, -} + highlights?: string; +}; -const loader = ['en', 'fr'].reduce((acc, lang) => { - acc[lang] = () => import(`../i18n/${lang}.json`); - return acc; -}, {} as HashMap<() => Promise>); +const loader = ['en', 'fr'].reduce( + (acc, lang) => { + acc[lang] = () => import(`../i18n/${lang}.json`); + return acc; + }, + {} as HashMap<() => Promise> +); @Component({ selector: 'app-advanced-search', standalone: true, templateUrl: './advanced-search.component.html', - styles: [` - :host { - // disable default max-height for panel - --panel-max-height: none; - } - /* Hides cancel button from input that as type='search' */ - input[type="search"]::-webkit-search-cancel-button { - -webkit-appearance: none; - } - `], - imports: [ - NgTemplateOutlet, - FormsModule, - MetadataComponent, - TranslocoPipe + styles: [ + ` + :host { + // disable default max-height for panel + --panel-max-height: none; + } + /* Hides cancel button from input that as type='search' */ + input[type='search']::-webkit-search-cancel-button { + -webkit-appearance: none; + } + ` ], + imports: [NgTemplateOutlet, FormsModule, MetadataComponent, TranslocoPipe], providers: [provideTranslocoScope({ scope: 'drawers', loader })] }) export class AdvancedSearchComponent implements OnDestroy { @@ -59,11 +59,12 @@ export class AdvancedSearchComponent implements OnDestroy { if (!this.article()) return []; - return this.applicationStore.getExtracts(this.article()!.id) + return this.applicationStore.getExtracts(this.article()!.id); }); protected readonly previewHighlights = computed(() => { - const highlights = (this.appStore.getWebServiceByType('preview') as PreviewWebService)?.highlights?.split(',') + const highlights = (this.appStore.getWebServiceByType('preview') as PreviewWebService)?.highlights + ?.split(',') .filter(h => h !== 'extractslocations' && h !== 'matchlocations' && h !== 'matchingpassages'); return highlights?.map(highlight => ({ @@ -75,7 +76,7 @@ export class AdvancedSearchComponent implements OnDestroy { public navigation = signal(undefined); public hovering = signal(undefined); - public hoverIndex = computed(() => this.navigation()?.value === this.hovering() ? this.navigation()!.index : 0); + public hoverIndex = computed(() => (this.navigation()?.value === this.hovering() ? this.navigation()!.index : 0)); public readonly hasLabels = computed(() => { const article: any = this.article(); // required as any otherwise the lines below won't compile @@ -89,7 +90,7 @@ export class AdvancedSearchComponent implements OnDestroy { constructor() { this.subscription = this.previewService.events.subscribe(event => { - switch(event) { + switch (event) { case 'fetching': this.loading.set(true); break; @@ -101,7 +102,7 @@ export class AdvancedSearchComponent implements OnDestroy { } ngOnDestroy(): void { - if(this.subscription){ + if (this.subscription) { this.subscription.unsubscribe(); } } @@ -119,9 +120,7 @@ export class AdvancedSearchComponent implements OnDestroy { } navigateNext(entity: string, data: ArticleMetadata) { - const index = this.navigation()?.value === data.value - ? this.navigation()!.index < data.count! ? this.navigation()!.index + 1 : 1 - : 1; + const index = this.navigation()?.value === data.value ? (this.navigation()!.index < data.count! ? this.navigation()!.index + 1 : 1) : 1; this.navigation.set({ value: data.value, @@ -135,9 +134,7 @@ export class AdvancedSearchComponent implements OnDestroy { } navigatePrev(entity: string, data: ArticleMetadata) { - const index = this.navigation()?.value === data.value - ? this.navigation()!.index <= 1 ? data.count! : this.navigation()!.index - 1 - : data.count!; + const index = this.navigation()?.value === data.value ? (this.navigation()!.index <= 1 ? data.count! : this.navigation()!.index - 1) : data.count!; this.navigation.set({ value: data.value, diff --git a/src/core/components/drawer/backdrop/backdrop.component.ts b/src/core/components/drawer/backdrop/backdrop.component.ts index e66f346e..090e8ed1 100644 --- a/src/core/components/drawer/backdrop/backdrop.component.ts +++ b/src/core/components/drawer/backdrop/backdrop.component.ts @@ -7,46 +7,49 @@ import { BackdropService } from './backdrop.service'; standalone: true, imports: [], template: ``, - styles: [` - :host { - --backdrop-animation-duration: 250ms; + host: { + class: 'z-backdrop bg-backdrop absolute bottom-0 left-0 right-0 top-0 hidden select-none' + }, + styles: [ + ` + :host { + --backdrop-animation-duration: 250ms; - @apply absolute hidden top-0 bottom-0 left-0 right-0 bg-backdrop select-none; + animation: hide-backdrop var(--backdrop-animation-duration, 250ms) ease-out; - z-index: theme('zIndex.backdrop'); - - animation: hide-backdrop var(--backdrop-animation-duration, 250ms) ease-out; - - &[backdrop-visible="true"] { - @apply block; - animation: show-backdrop var(--backdrop-animation-duration, 250ms) ease-out; - } - - @keyframes show-backdrop { - 0% { - @apply opacity-0 hidden; - } - 1% { - @apply block; + &[backdrop-visible='true'] { + display: block; + animation: show-backdrop var(--backdrop-animation-duration, 250ms) ease-out; } - 100% { - @apply opacity-100; - } - } - @keyframes hide-backdrop { - 0% { - @apply block opacity-100; + @keyframes show-backdrop { + 0% { + display: none; + opacity: 0; + } + 1% { + display: block; + } + 100% { + opacity: 1; + } } - 99% { - @apply opacity-0; - } - 100% { - @apply hidden; + + @keyframes hide-backdrop { + 0% { + display: block; + opacity: 1; + } + 99% { + opacity: 0; + } + 100% { + display: none; + } } } - } - `] + ` + ] }) export class BackdropComponent implements OnDestroy { @HostBinding('attr.backdrop-visible') @@ -56,9 +59,7 @@ export class BackdropComponent implements OnDestroy { private readonly sub = new Subscription(); constructor() { - this.sub.add( - this.backdrop.isVisible.subscribe(state => this.backdropVisible = state) - ); + this.sub.add(this.backdrop.isVisible.subscribe(state => (this.backdropVisible = state))); } ngOnDestroy(): void { diff --git a/src/core/components/drawer/drawer-stack/drawer-stack.component.ts b/src/core/components/drawer/drawer-stack/drawer-stack.component.ts index bfd778db..162b9417 100644 --- a/src/core/components/drawer/drawer-stack/drawer-stack.component.ts +++ b/src/core/components/drawer/drawer-stack/drawer-stack.component.ts @@ -13,24 +13,26 @@ const DRAWER_STACK_MAX_COUNT = 3; standalone: true, imports: [], template: ``, - styles: [` - :host { - position: absolute; - top: 50%; - right: 0; + styles: [ + ` + :host { + position: absolute; + top: 50%; + right: 0; - --drawer-width: 46; - --drawer-subdrawer-width: 400px; + --drawer-width: 46; + --drawer-subdrawer-width: 400px; - z-index: theme('zIndex.drawer'); + z-index: theme('zIndex.drawer'); - transition: right 300ms linear; + transition: right 300ms linear; - &[drawer-opened="true"] { - right: calc(1% * var(--drawer-width)); + &[drawer-opened='true'] { + right: calc(1% * var(--drawer-width)); + } } - } - `] + ` + ] }) export class DrawerStackComponent implements OnDestroy { @HostBinding('attr.drawer-opened') @@ -43,35 +45,27 @@ export class DrawerStackComponent implements OnDestroy { protected readonly selectionHistory$ = this.selectionHistory.selectionHistoryEvent; protected readonly drawers: ComponentRef[] = []; - get drawersLength() { return this.drawers.length; } + get drawersLength() { + return this.drawers.length; + } protected readonly subscriptions = new Subscription(); constructor() { - this.subscriptions.add( - this.drawerStackService.isOpened.subscribe((state) => this.drawerOpened = state) - ); + this.subscriptions.add(this.drawerStackService.isOpened.subscribe(state => (this.drawerOpened = state))); this.subscriptions.add( - this.selectionHistory$.subscribe((event) => { + this.selectionHistory$.subscribe(event => { if (event !== 'new') return; this.openTopDrawer(this.selectionHistory.getCurrentSelectionIndex()); }) ); - this.subscriptions.add( - this.drawerStackService.toggleTopDrawerExtension$.subscribe(() => this.toggleTopDrawerExtension()) - ); - this.subscriptions.add( - this.drawerStackService.forceTopDrawerCollapse$.subscribe(() => this.collapseTopDrawer()) - ); - this.subscriptions.add( - this.drawerStackService.closeTopDrawer$.subscribe(() => this.closeTopDrawer()) - ); - this.subscriptions.add( - this.drawerStackService.closeAllDrawers$.subscribe(() => this.closeAllDrawers()) - ); + this.subscriptions.add(this.drawerStackService.toggleTopDrawerExtension$.subscribe(() => this.toggleTopDrawerExtension())); + this.subscriptions.add(this.drawerStackService.forceTopDrawerCollapse$.subscribe(() => this.collapseTopDrawer())); + this.subscriptions.add(this.drawerStackService.closeTopDrawer$.subscribe(() => this.closeTopDrawer())); + this.subscriptions.add(this.drawerStackService.closeAllDrawers$.subscribe(() => this.closeAllDrawers())); } protected toggleAssistant(): void { @@ -103,7 +97,7 @@ export class DrawerStackComponent implements OnDestroy { private closeAllDrawers(): void { this.closeAndDestroyDrawer(this.drawers.pop()); - this.drawers.forEach((drawer) => drawer.destroy()); + this.drawers.forEach(drawer => drawer.destroy()); this.drawers.length = 0; } diff --git a/src/core/components/drawer/drawer.component.scss b/src/core/components/drawer/drawer.component.scss index 9d717558..2d2c14b3 100644 --- a/src/core/components/drawer/drawer.component.scss +++ b/src/core/components/drawer/drawer.component.scss @@ -6,29 +6,31 @@ height: 100%; top: 0; - @apply justify-end -right-full; + right: -100%; + justify-content: flex-end; /* Makes drawer x% the size of the screen + space for subdrawer */ - width: calc( - 100vw / 100 * var(--drawer-width) + var(--drawer-subdrawer-width) - ); + width: calc(100vw / 100 * var(--drawer-width) + var(--drawer-subdrawer-width)); z-index: theme('zIndex.drawer'); grid-template-columns: 0 1fr var(--drawer-subdrawer-width); - transition: right 300ms ease-in-out, transform 300ms ease-in-out; + transition: + right 300ms ease-in-out, + transform 300ms ease-in-out; - &[drawer-opened="true"] { - @apply -right-[var(--drawer-subdrawer-width)]; + &[drawer-opened='true'] { + right: calc(var(--drawer-subdrawer-width) * -1); box-shadow: var(--drawer-box-shadow); } - &[drawer-extended="true"] { - @apply w-screen right-0; + &[drawer-extended='true'] { + right: 0; + width: 100vw; grid-template-columns: 1fr calc(var(--drawer-width) * 1%) var(--drawer-subdrawer-width); box-shadow: unset; } -} \ No newline at end of file +} diff --git a/src/core/components/drawer/drawer.component.ts b/src/core/components/drawer/drawer.component.ts index 79d03769..8f62937a 100644 --- a/src/core/components/drawer/drawer.component.ts +++ b/src/core/components/drawer/drawer.component.ts @@ -14,8 +14,8 @@ import { DrawerService } from './drawer.service'; providers: [DrawerService], template: ``, styleUrl: './drawer.component.scss', - host : { - '[attr.drawer-opened]' : 'drawerOpened()', + host: { + '[attr.drawer-opened]': 'drawerOpened()', '[attr.drawer-extended]': 'drawerExtended()' } }) @@ -30,8 +30,8 @@ export class DrawerComponent implements OnInit, OnDestroy { public mouseMove(event: MouseEvent): void { if (!this.isSliding) return; - const min = window.innerWidth * 3 / 100; - const max = window.innerWidth * 46 / 100; + const min = (window.innerWidth * 3) / 100; + const max = (window.innerWidth * 46) / 100; const width = Math.min(Math.max(event.clientX, min), max); this.drawerGridTemplateColumns = `${width}px minmax(min-content, 1fr) var(--drawer-subdrawer-width)`; @@ -54,7 +54,6 @@ export class DrawerComponent implements OnInit, OnDestroy { drawerHandle = viewChild('drawerHandle'); - public readonly drawer = inject(DrawerService); protected readonly element = inject(ElementRef); diff --git a/src/core/components/drawer/drawer.service.ts b/src/core/components/drawer/drawer.service.ts index 606d306d..621e2125 100644 --- a/src/core/components/drawer/drawer.service.ts +++ b/src/core/components/drawer/drawer.service.ts @@ -4,7 +4,7 @@ import { BehaviorSubject } from 'rxjs'; import { BackdropService } from './backdrop/backdrop.service'; export type ArticleTypeMap = { - articleType: "default"; + articleType: 'default'; previewComponentType: Type; articleComponentType: Type; articleLightComponentType: Type; diff --git a/src/core/components/drawer/i18n/en.json b/src/core/components/drawer/i18n/en.json index 840eaabd..923ea2b8 100644 --- a/src/core/components/drawer/i18n/en.json +++ b/src/core/components/drawer/i18n/en.json @@ -1,4 +1,4 @@ { "inputPlaceholder": "Search in document", "noRelevantExtracts": "No relevant extracts found." -} \ No newline at end of file +} diff --git a/src/core/components/drawer/i18n/fr.json b/src/core/components/drawer/i18n/fr.json index 19205f33..b30a4d61 100644 --- a/src/core/components/drawer/i18n/fr.json +++ b/src/core/components/drawer/i18n/fr.json @@ -1,4 +1,4 @@ { "inputPlaceholder": "Rechercher dans le document", "noRelevantExtracts": "Aucun extrait trouvé." -} \ No newline at end of file +} diff --git a/src/core/components/drawer/preview/drawer-preview.component.html b/src/core/components/drawer/preview/drawer-preview.component.html index 386d45e1..de7834fb 100644 --- a/src/core/components/drawer/preview/drawer-preview.component.html +++ b/src/core/components/drawer/preview/drawer-preview.component.html @@ -1,15 +1,10 @@ -
    +
    + class="fixed h-full w-[5px] select-none hover:cursor-ew-resize hover:bg-orange-300" + [ngClass]="{ hidden: (drawer.isExtended | async) === false }">
    @if (previewType()) { @@ -17,12 +12,9 @@
    @if (article()) { -
    -
    - +
    +
    + +
    -
    -} \ No newline at end of file +} diff --git a/src/core/components/drawer/preview/drawer-preview.component.ts b/src/core/components/drawer/preview/drawer-preview.component.ts index aaf8725d..4ed2b564 100644 --- a/src/core/components/drawer/preview/drawer-preview.component.ts +++ b/src/core/components/drawer/preview/drawer-preview.component.ts @@ -23,17 +23,12 @@ const GLOBAL_QUERY_NAME = new InjectionToken('GLOBAL_QUERY_NAME', { return array[0].name; } -}) +}); @Component({ selector: 'app-drawer-preview', standalone: true, - imports: [ - NgClass, - NgComponentOutlet, - AsyncPipe, - AdvancedSearchComponent - ], + imports: [NgClass, NgComponentOutlet, AsyncPipe, AdvancedSearchComponent], providers: [DrawerService, PreviewService], templateUrl: './drawer-preview.component.html', styleUrls: ['../drawer.component.scss'] @@ -61,8 +56,7 @@ export class DrawerPreviewComponent extends DrawerComponent implements OnInit, O if (!this.article()?.docformat) return undefined; return getComponentsForDocumentType(this.article()?.docformat || '').previewComponent; - }) - + }); constructor(@Inject(GLOBAL_QUERY_NAME) private readonly globalQueryName: string) { super(); @@ -73,8 +67,8 @@ export class DrawerPreviewComponent extends DrawerComponent implements OnInit, O untracked(async () => { const state = getState(this.selectionStore); - const previewData = await firstValueFrom(this.previewService.preview - ( + const previewData = await firstValueFrom( + this.previewService.preview( articleId, { name: this.globalQueryName, @@ -86,12 +80,10 @@ export class DrawerPreviewComponent extends DrawerComponent implements OnInit, O this.previewData.set(previewData); }); - }); } override ngOnDestroy(): void { this.previewService.close(this.articleId(), { name: this.globalQueryName }); } - } diff --git a/src/core/components/error/error.component.ts b/src/core/components/error/error.component.ts index ad5f2c9f..71c45802 100644 --- a/src/core/components/error/error.component.ts +++ b/src/core/components/error/error.component.ts @@ -1,27 +1,56 @@ -import { Component, inject } from "@angular/core"; -import { Router } from "@angular/router"; - -@Component({ - standalone: true, - imports: [], - template: ` -
    - -

    Oops! Something went wrong

    -

    We apologize for the inconvenience.

    -
    - -
    -
    - ` - }) -export class ErrorComponent { - router = inject(Router); - - reload() { - this.router.navigate(['/']).then(() => window.location.reload()); - } -} \ No newline at end of file +import { Component, inject } from '@angular/core'; +import { Router } from '@angular/router'; + +@Component({ + standalone: true, + imports: [], + template: ` +
    + + + + + +

    Oops! Something went wrong

    +

    We apologize for the inconvenience.

    +
    + +
    +
    + ` +}) +export class ErrorComponent { + router = inject(Router); + + reload() { + this.router.navigate(['/']).then(() => window.location.reload()); + } +} diff --git a/src/core/components/filters/aggregation/aggregation-row.component.html b/src/core/components/filters/aggregation/aggregation-row.component.html index 1403e132..6b8f9d20 100644 --- a/src/core/components/filters/aggregation/aggregation-row.component.html +++ b/src/core/components/filters/aggregation/aggregation-row.component.html @@ -1,44 +1,41 @@ - - - - - - - @if (node().icon) { - - } - - {{ name() | syslang }} - - -@if(node().hasChildren && node().$opened) { - @for(item of node().items; track $index) { - - } -} + + + + + + @if (node().icon) { + + } + + {{ name() | syslang }} + + +@if (node().hasChildren && node().$opened) { + @for (item of node().items; track $index) { + + } +} diff --git a/src/core/components/filters/aggregation/aggregation-row.component.ts b/src/core/components/filters/aggregation/aggregation-row.component.ts index 2baa347b..429af0d5 100644 --- a/src/core/components/filters/aggregation/aggregation-row.component.ts +++ b/src/core/components/filters/aggregation/aggregation-row.component.ts @@ -1,65 +1,69 @@ -import { NgClass } from "@angular/common"; -import { Component, EventEmitter, HostBinding, Output, computed, input } from "@angular/core"; - -import { AggregationListItem, cn } from "@sinequa/atomic-angular"; - -import { SyslangPipe } from "@/core/pipes/syslang"; - -@Component({ - selector: "aggregation-row, AggregationRow", - standalone: true, - imports: [NgClass, SyslangPipe], - templateUrl: "./aggregation-row.component.html", - styles: ` - :host { - display: block; - user-select: none; - } - :host a { - padding-left: calc((1rem * var(--level))) - } - :host:has(input:checked) { - color: theme('colors.primary'); - } - ` -}) -export class AggregationRowComponent { - cn = cn; - @HostBinding("attr.disabled") get disabled() { return this.node().count === 0 ? "disabled" : null } - - @Output() onSelect = new EventEmitter(); - @Output() onOpen = new EventEmitter(); - - node = input.required(); - - @HostBinding("class.selected") get selected() { return this.node().$selected } - - name = computed(() => { - const value = this.node().display || this.node().value; - return typeof value === 'string' ? value : `${value}`; - }) - - select(e: Event, item: AggregationListItem) { - e.stopImmediatePropagation(); - item.$selected = !item.$selected; - - this.onSelect.emit(item); - } - - open(e: Event, node: AggregationListItem) { - // fetch aggregation items - e.preventDefault(); - e.stopImmediatePropagation(); - - if(node.items && node.$opened === true) { - node.$opened = false; - return; - } - if(node.items && (!node.$opened)) { - node.$opened = true; - return; - } - - this.onOpen.emit(node); - } -} \ No newline at end of file +import { NgClass } from '@angular/common'; +import { Component, EventEmitter, HostBinding, Output, computed, input } from '@angular/core'; + +import { AggregationListItem, cn } from '@sinequa/atomic-angular'; + +import { SyslangPipe } from '@/core/pipes/syslang'; + +@Component({ + selector: 'aggregation-row, AggregationRow', + standalone: true, + imports: [NgClass, SyslangPipe], + templateUrl: './aggregation-row.component.html', + styles: ` + :host { + display: block; + user-select: none; + } + :host a { + padding-left: calc((1rem * var(--level))); + } + :host:has(input:checked) { + color: theme('colors.primary'); + } + ` +}) +export class AggregationRowComponent { + cn = cn; + @HostBinding('attr.disabled') get disabled() { + return this.node().count === 0 ? 'disabled' : null; + } + + @Output() onSelect = new EventEmitter(); + @Output() onOpen = new EventEmitter(); + + node = input.required(); + + @HostBinding('class.selected') get selected() { + return this.node().$selected; + } + + name = computed(() => { + const value = this.node().display || this.node().value; + return typeof value === 'string' ? value : `${value}`; + }); + + select(e: Event, item: AggregationListItem) { + e.stopImmediatePropagation(); + item.$selected = !item.$selected; + + this.onSelect.emit(item); + } + + open(e: Event, node: AggregationListItem) { + // fetch aggregation items + e.preventDefault(); + e.stopImmediatePropagation(); + + if (node.items && node.$opened === true) { + node.$opened = false; + return; + } + if (node.items && !node.$opened) { + node.$opened = true; + return; + } + + this.onOpen.emit(node); + } +} diff --git a/src/core/components/filters/aggregation/aggregation.component.html b/src/core/components/filters/aggregation/aggregation.component.html index 7cd7d670..a0ee0720 100644 --- a/src/core/components/filters/aggregation/aggregation.component.html +++ b/src/core/components/filters/aggregation/aggregation.component.html @@ -1,63 +1,55 @@
    - - @if(!headless()) { - + @if (!headless()) { + @if (aggregation()?.icon) { } - {{ aggregation()?.display | syslang | transloco}} + {{ aggregation()?.display | syslang | transloco }} - @if(hasFilters()) { - - } - @if(selectionCount()) { - - } - + @if (hasFilters()) { + + } + @if (selectionCount()) { + + } + } - @if( searchable() ) { -
    + @if (searchable()) { +
    + (ngModelChange)="searchText.set($event)" />
    } -
      +
        @for (item of items(); track $index) { }
      -
    @if (aggregation()?.$hasMore) { - } diff --git a/src/core/components/filters/aggregation/aggregation.component.ts b/src/core/components/filters/aggregation/aggregation.component.ts index 8d48b90d..eec0487c 100644 --- a/src/core/components/filters/aggregation/aggregation.component.ts +++ b/src/core/components/filters/aggregation/aggregation.component.ts @@ -4,19 +4,40 @@ import { TranslocoPipe } from '@jsverse/transloco'; import { getState } from '@ngrx/signals'; import { firstValueFrom } from 'rxjs'; -import { Aggregation, AggregationItem, fetchDataset, fetchSuggestField, FieldValue, LegacyFilter, Query, Suggestion, suggestionsToTreeAggregationNodes, TreeAggregation, TreeAggregationNode } from '@sinequa/atomic'; -import { AggregationListItem, AggregationsService, AggregationsStore, AppStore, buildQuery, CFilter, CFilterItem, debouncedSignal, QueryParamsStore, SearchService } from '@sinequa/atomic-angular'; +import { + Aggregation, + AggregationItem, + fetchSuggestField, + FieldValue, + LegacyFilter, + Query, + Suggestion, + suggestionsToTreeAggregationNodes, + TreeAggregation, + TreeAggregationNode +} from '@sinequa/atomic'; +import { + AggregationListItem, + AggregationsService, + AggregationsStore, + AppStore, + buildQuery, + CFilter, + CFilterItem, + debouncedSignal, + QueryParamsStore, + SearchService +} from '@sinequa/atomic-angular'; import { SyslangPipe } from '@/core/pipes/syslang'; -import { AggregationRowComponent } from "./aggregation-row.component"; - +import { AggregationRowComponent } from './aggregation-row.component'; export type AggEx = Aggregation & { display?: string; icon?: string; hidden?: boolean; -} +}; export type AggregationTitle = { label: string; @@ -27,16 +48,18 @@ export type AggregationTitle = { selector: 'Aggregation', standalone: true, templateUrl: './aggregation.component.html', - styles: [` - :host { - display: block; - } + styles: [ + ` + :host { + display: block; + } - .data-list { - scrollbar-width: thin; - } - `], - imports: [FormsModule, ReactiveFormsModule, AggregationRowComponent, SyslangPipe, TranslocoPipe], + .data-list { + scrollbar-width: thin; + } + ` + ], + imports: [FormsModule, ReactiveFormsModule, AggregationRowComponent, SyslangPipe, TranslocoPipe] }) export class AggregationComponent { cdr = inject(ChangeDetectorRef); @@ -49,7 +72,6 @@ export class AggregationComponent { /* services */ aggregationsService = inject(AggregationsService); - /** * The `name` property is a required input that can be either a string or null. * By default, it represents the name of the aggregation column. @@ -65,7 +87,7 @@ export class AggregationComponent { * * Default is "name" */ - kind = input<"column" | "name">("name"); + kind = input<'column' | 'name'>('name'); /** * A boolean flag indicating whether the component should operate in headless mode. @@ -87,8 +109,8 @@ export class AggregationComponent { if (this.name() !== null) { return this.processAggregation(); } - return null - }) + return null; + }); /* items of the aggretions */ items = computed(() => { @@ -99,7 +121,7 @@ export class AggregationComponent { return this.aggregation()?.items as AggregationListItem[]; } return []; - }) + }); /* whether the aggregation has filters */ hasFilters = computed(() => { @@ -107,7 +129,7 @@ export class AggregationComponent { const allItems = this.getFlattenTreeItems(); return !!allItems.some(item => item.$selected); } - return !!(this.items().some(item => item.$selected)); + return !!this.items().some(item => item.$selected); }); /* search feature */ @@ -135,7 +157,6 @@ export class AggregationComponent { $selected: false, items: [] })); - }); query: Query; @@ -145,22 +166,28 @@ export class AggregationComponent { const q = this.queryParamsStore.getQuery(); - effect(async () => { - if (this.debouncedSearchText() === '' || this.aggregation() === null) { - this.suggests.set(undefined); - return; - } - - const suggests = await fetchSuggestField(this.debouncedSearchText(), [this.aggregation()!.column]); - this.suggests.set(suggests); - }, { allowSignalWrites: true }); - - effect(() => { - if (this.aggregation() === null) return; + effect( + async () => { + if (this.debouncedSearchText() === '' || this.aggregation() === null) { + this.suggests.set(undefined); + return; + } - const count = this.countSelected(this.aggregation()!.items as AggregationListItem[]); - this.selectionCount.set(count); - }, { allowSignalWrites: true }); + const suggests = await fetchSuggestField(this.debouncedSearchText(), [this.aggregation()!.column]); + this.suggests.set(suggests); + }, + { allowSignalWrites: true } + ); + + effect( + () => { + if (this.aggregation() === null) return; + + const count = this.countSelected(this.aggregation()!.items as AggregationListItem[]); + this.selectionCount.set(count); + }, + { allowSignalWrites: true } + ); } protected processAggregation(): AggEx | null | undefined { @@ -168,7 +195,7 @@ export class AggregationComponent { if (!agg) return null; - const { items = [], display = agg.name, icon, hidden } = this.appStore.getAggregationCustomization(agg.column) as CFilter || {}; + const { items = [], display = agg.name, icon, hidden } = (this.appStore.getAggregationCustomization(agg.column) as CFilter) || {}; agg.display = display; agg.icon = icon; agg.hidden = hidden; @@ -178,13 +205,12 @@ export class AggregationComponent { const flattenedValues = this.flattenFilters(filters); if (agg.isTree) { - const selectedAgg = agg.items.map( item => this.selectNode(item as TreeAggregationNode, flattenedValues)); - const openedAgg = selectedAgg.map( item => this.openParentNodes(item as TreeAggregationNode, flattenedValues)); + const selectedAgg = agg.items.map(item => this.selectNode(item as TreeAggregationNode, flattenedValues)); + const openedAgg = selectedAgg.map(item => this.openParentNodes(item as TreeAggregationNode, flattenedValues)); agg.items = openedAgg; } (agg.items as AggregationListItem[]).forEach((item: AggregationListItem) => { - if (!agg.isTree) { const valueToSearch = agg.valuesAreExpressions ? item.display : item.value; item.$selected = flattenedValues.includes(valueToSearch ?? '') || false; @@ -209,10 +235,10 @@ export class AggregationComponent { node.$selected = true; } if (node.items) { - node.items = node.items.map((item) => this.selectNode(item, path)); + node.items = node.items.map(item => this.selectNode(item, path)); } return node; - }; + } /** * Recursively opens parent nodes in a tree structure if any of their child nodes are selected or opened. @@ -223,20 +249,20 @@ export class AggregationComponent { */ private openParentNodes(node: TreeAggregationNode, path: string[]): TreeAggregationNode { if (node.items) { - node.items = node.items.map((item) => this.openParentNodes(item, path)); + node.items = node.items.map(item => this.openParentNodes(item, path)); } if (node.items && node.items.some(item => item.$selected || item.$opened)) { node.$opened = true; } return node; - }; + } /** - * Clears the current filter for the aggregation column. - * - * This method updates the filter in the `queryParamsStore` by setting the display value - * of the current aggregation column to an empty string. - */ + * Clears the current filter for the aggregation column. + * + * This method updates the filter in the `queryParamsStore` by setting the display value + * of the current aggregation column to an empty string. + */ clear() { this.queryParamsStore.removeFilter(this.aggregation()?.column); } @@ -260,17 +286,27 @@ export class AggregationComponent { // if aggregation not a distribution, we need to merge the filters into a single filter with an in operator // with the values of the filters if (this.aggregation()?.isDistribution) { - this.queryParamsStore.updateFilter({ operator: 'or', filters, name: this.aggregation()?.name, field: this.aggregation()?.column, display } as LegacyFilter); - } - else { + this.queryParamsStore.updateFilter({ + operator: 'or', + filters, + name: this.aggregation()?.name, + field: this.aggregation()?.column, + display + } as LegacyFilter); + } else { const values = filters.map(filter => filter.value); - this.queryParamsStore.updateFilter({ operator: 'in', name: this.aggregation()?.name, field: this.aggregation()?.column, values, display, filters } as LegacyFilter); + this.queryParamsStore.updateFilter({ + operator: 'in', + name: this.aggregation()?.name, + field: this.aggregation()?.column, + values, + display, + filters + } as LegacyFilter); } - } - else if (filters.length === 1) { + } else if (filters.length === 1) { this.queryParamsStore.updateFilter(filters[0]); - } - else { + } else { this.clear(); } @@ -279,7 +315,7 @@ export class AggregationComponent { loadMore(): void { const q = this.queryParamsStore.getQuery(); - this.aggregationsService.loadMore(q, this.aggregation() as Aggregation).subscribe((aggregation) => { + this.aggregationsService.loadMore(q, this.aggregation() as Aggregation).subscribe(aggregation => { this.aggregationsStore.updateAggregation(aggregation); }); } @@ -305,8 +341,7 @@ export class AggregationComponent { select(item: AggregationListItem) { if (item.$selected) { this.selectionCount.set(this.selectionCount() + 1); - } - else { + } else { this.selectionCount.set(this.selectionCount() - 1); } } @@ -340,11 +375,11 @@ export class AggregationComponent { const name = this.aggregation()?.name; const items = this.getFlattenTreeItems() .filter(item => item.$selected) - .map((item) => `/${item.$path}/*` || ''); + .map(item => `/${item.$path}/*` || ''); if (items.length === 0) return []; - const filter = { operator: "in", name, field, values: items, display: items[0] }; + const filter = { operator: 'in', name, field, values: items, display: items[0] }; return [filter] as LegacyFilter[]; } @@ -377,7 +412,7 @@ export class AggregationComponent { }; const searchItems = flattenItems(this.searchedItems() || []); - const items = flattenItems(this.aggregation()?.items as TreeAggregationNode[] || []); + const items = flattenItems((this.aggregation()?.items as TreeAggregationNode[]) || []); const flattenedTreeItems = [...searchItems, ...items]; return flattenedTreeItems; } @@ -407,7 +442,7 @@ export class AggregationComponent { if (this.aggregation()?.isDistribution) { const res = (item.value as string).match(/.*\:\(?([><=\d\-\.AND ]+)\)?/); if (res?.[1]) { - const expr = res?.[1].split(" AND "); + const expr = res?.[1].split(' AND '); const filters = expr.map(e => { const operator: 'gte' | 'lt' = e.indexOf('>=') !== -1 ? 'gte' : 'lt'; let value: FieldValue = e.substring(e.indexOf(' ') + 1); @@ -416,16 +451,15 @@ export class AggregationComponent { if (filters.length === 2) { return { operator: 'and', filters, display: filters[0].display || filters[0].value, field, name } as LegacyFilter; - } - else if (filters.length === 1) { + } else if (filters.length === 1) { return { ...filters[0], field, name } as LegacyFilter; } - throw new Error("Failed to parse distribution expression"); + throw new Error('Failed to parse distribution expression'); } } - if (typeof item.value === "string") { - return { name, field, value: item.value, operator: "contains", display: item.display } as LegacyFilter; + if (typeof item.value === 'string') { + return { name, field, value: item.value, operator: 'contains', display: item.display } as LegacyFilter; } return { name, field, value: item.value as string | number | boolean, display: item.display } as LegacyFilter; } @@ -438,8 +472,7 @@ export class AggregationComponent { if (filter.value) { flattenedValues.push(filter.value); - if (filter.display) - flattenedValues.push(filter.display); + if (filter.display) flattenedValues.push(filter.display); // we handle "values" field for trees } else if (filter.values) { flattenedValues.push(...filter.values); @@ -455,14 +488,14 @@ export class AggregationComponent { } /** - * Counts the number of selected items in a nested list of `AggregationListItem`. - * - * This method recursively traverses the provided list of items and their nested items, - * counting how many of them have the `$selected` property set to `true`. - * - * @param items - The list of `AggregationListItem` to count selected items from. - * @returns The total number of selected items. - */ + * Counts the number of selected items in a nested list of `AggregationListItem`. + * + * This method recursively traverses the provided list of items and their nested items, + * counting how many of them have the `$selected` property set to `true`. + * + * @param items - The list of `AggregationListItem` to count selected items from. + * @returns The total number of selected items. + */ protected countSelected(items: AggregationListItem[]): number { if (!items) return 0; diff --git a/src/core/components/filters/buttons/filter-button.component.ts b/src/core/components/filters/buttons/filter-button.component.ts index 2abfe4f8..7b500572 100644 --- a/src/core/components/filters/buttons/filter-button.component.ts +++ b/src/core/components/filters/buttons/filter-button.component.ts @@ -1,98 +1,92 @@ -import { NgClass } from "@angular/common"; -import { Component, effect, ElementRef, inject, input, signal } from "@angular/core"; -import { TranslocoPipe } from "@jsverse/transloco"; - -import { AggregationsStore, AppStore, cn, DropdownComponent, QueryParamsStore } from "@sinequa/atomic-angular"; - -import { SyslangPipe } from "../../../pipes/syslang"; -import { AggregationComponent } from "../aggregation/aggregation.component"; -import { CFilterEx } from "../filters.models"; - -@Component({ - selector: 'filter-button, FilterButton', - standalone: true, - imports: [NgClass, DropdownComponent, TranslocoPipe, AggregationComponent, SyslangPipe], - template: ` - - - - -` - , host: { - '[class.hidden]': 'filter().hidden', - } -}) -export class FilterButtonComponent { - cn = cn; - - nativeElement = inject(ElementRef).nativeElement; - - column = input.required(); - filter = signal({ - name: '', - icon: '', - column: '', - display: '', - isTree: false, - count: 0, - hidden: false, - disabled: false - }); - - aggregationsStore = inject(AggregationsStore); - queryParamsStore = inject(QueryParamsStore); - appStore = inject(AppStore); - - constructor() { - effect(() => { - const agg = this.aggregationsStore.getAggregation(this.column(), 'column'); - const f = this.queryParamsStore.getFilter(agg?.name); - const count = f?.count || 0; - - if (!agg) return; - - const { icon, hidden = false } = this.appStore.getAggregationCustomization(this.column()) || {}; - const { display = agg?.isTree ? undefined : f?.display } = this.appStore.getAggregationCustomization(this.column()) || {}; - - const r = { - name: agg?.name, - column: this.column(), - icon, - hidden, - display, - isTree: agg?.isTree || false, - count, - disabled: !agg?.items || agg.items?.length === 0 ? true : false, - }; - - this.filter.set(r); - - }, { allowSignalWrites: true }); - } -} \ No newline at end of file +import { NgClass } from '@angular/common'; +import { Component, effect, ElementRef, inject, input, signal } from '@angular/core'; +import { TranslocoPipe } from '@jsverse/transloco'; + +import { AggregationsStore, AppStore, cn, DropdownComponent, QueryParamsStore } from '@sinequa/atomic-angular'; + +import { SyslangPipe } from '../../../pipes/syslang'; +import { AggregationComponent } from '../aggregation/aggregation.component'; +import { CFilterEx } from '../filters.models'; + +@Component({ + selector: 'filter-button, FilterButton', + standalone: true, + imports: [NgClass, DropdownComponent, TranslocoPipe, AggregationComponent, SyslangPipe], + template: ` + + + + + `, + host: { + '[class.hidden]': 'filter().hidden' + } +}) +export class FilterButtonComponent { + cn = cn; + + nativeElement = inject(ElementRef).nativeElement; + + column = input.required(); + filter = signal({ + name: '', + icon: '', + column: '', + display: '', + isTree: false, + count: 0, + hidden: false, + disabled: false + }); + + aggregationsStore = inject(AggregationsStore); + queryParamsStore = inject(QueryParamsStore); + appStore = inject(AppStore); + + constructor() { + effect( + () => { + const agg = this.aggregationsStore.getAggregation(this.column(), 'column'); + const f = this.queryParamsStore.getFilter(agg?.name); + const count = f?.count || 0; + + if (!agg) return; + + const { icon, hidden = false } = this.appStore.getAggregationCustomization(this.column()) || {}; + const { display = agg?.isTree ? undefined : f?.display } = this.appStore.getAggregationCustomization(this.column()) || {}; + + const r = { + name: agg?.name, + column: this.column(), + icon, + hidden, + display, + isTree: agg?.isTree || false, + count, + disabled: !agg?.items || agg.items?.length === 0 ? true : false + }; + + this.filter.set(r); + }, + { allowSignalWrites: true } + ); + } +} diff --git a/src/core/components/filters/buttons/filter-date-button.component.ts b/src/core/components/filters/buttons/filter-date-button.component.ts index 1edd1a46..b78d7554 100644 --- a/src/core/components/filters/buttons/filter-date-button.component.ts +++ b/src/core/components/filters/buttons/filter-date-button.component.ts @@ -1,81 +1,77 @@ -import { NgClass } from "@angular/common"; -import { Component, effect, inject, signal } from "@angular/core"; -import { TranslocoPipe } from "@jsverse/transloco"; -import { cn, DropdownComponent, QueryParamsStore } from "@sinequa/atomic-angular"; -import { CFilterEx } from "../filters.models"; -import { DateComponent } from "../date/date.component"; -import { OperatorPipe } from "../../../pipes/operator"; -import { SyslangPipe } from "../../../pipes/syslang"; - -@Component({ - selector: 'filter-date-button, FilterDateButton', - standalone: true, - imports: [NgClass, DropdownComponent, TranslocoPipe, DateComponent, OperatorPipe, SyslangPipe], - template: ` - - - - - - - ` -}) export class FilterDateButtonComponent { - cn = cn; - - queryParamsStore = inject(QueryParamsStore); - - filter = signal({ - name: "Modified", - column: "modified", - display: "Date", - icon: 'far fa-calendar-day', - count: 0, - isTree: false, - disabled: false, - hidden: false, - }); - - constructor() { - - effect(() => { - const filter = this.queryParamsStore.getFilter("modified"); - this.filter.update( f => { - f.count = filter?.count || 0; - f.legacyFilter = filter || undefined; - return f; - }) - }, {allowSignalWrites: true}); - } - -} +import { NgClass } from '@angular/common'; +import { Component, effect, inject, signal } from '@angular/core'; +import { TranslocoPipe } from '@jsverse/transloco'; +import { cn, DropdownComponent, QueryParamsStore } from '@sinequa/atomic-angular'; +import { CFilterEx } from '../filters.models'; +import { DateComponent } from '../date/date.component'; +import { OperatorPipe } from '../../../pipes/operator'; +import { SyslangPipe } from '../../../pipes/syslang'; + +@Component({ + selector: 'filter-date-button, FilterDateButton', + standalone: true, + imports: [NgClass, DropdownComponent, TranslocoPipe, DateComponent, OperatorPipe, SyslangPipe], + template: ` + + + + + + ` +}) +export class FilterDateButtonComponent { + cn = cn; + + queryParamsStore = inject(QueryParamsStore); + + filter = signal({ + name: 'Modified', + column: 'modified', + display: 'Date', + icon: 'far fa-calendar-day', + count: 0, + isTree: false, + disabled: false, + hidden: false + }); + + constructor() { + effect( + () => { + const filter = this.queryParamsStore.getFilter('modified'); + this.filter.update(f => { + f.count = filter?.count || 0; + f.legacyFilter = filter || undefined; + return f; + }); + }, + { allowSignalWrites: true } + ); + } +} diff --git a/src/core/components/filters/buttons/filters-more-button.component.ts b/src/core/components/filters/buttons/filters-more-button.component.ts index 6b175939..11c2b572 100644 --- a/src/core/components/filters/buttons/filters-more-button.component.ts +++ b/src/core/components/filters/buttons/filters-more-button.component.ts @@ -1,51 +1,53 @@ -import { Component, computed, effect, ElementRef, inject, input, signal } from "@angular/core"; -import { TranslocoPipe } from "@jsverse/transloco"; -import { AppStore, DropdownComponent, QueryParamsStore } from "@sinequa/atomic-angular"; -import { FiltersMoreComponent } from "../more/filters-more.component"; -import { ActivatedRoute } from "@angular/router"; - -@Component({ - selector: 'filters-more-button, FiltersMoreButton', - standalone: true, - imports: [DropdownComponent, TranslocoPipe, FiltersMoreComponent], - template: ` - - - - - - `, -}) export class FiltersMoreButtonComponent { - route = inject(ActivatedRoute); - appStore = inject(AppStore); - queryParamsStore = inject(QueryParamsStore); - nativeElement = inject(ElementRef).nativeElement; - - count = input(2); - - totalFiltersCount = computed(() => { - const count = this.count(); - - const authorizedFilters = this.appStore.getAuthorizedFilters(this.route) - .filter(f => f.name !== "Modified") - .filter(f => f.column !== "modified") - .map(f => f.column) - .toSpliced(0, count); - - const total = authorizedFilters.reduce((acc, filter) => { - const f = this.queryParamsStore.getFilter(filter); - acc += f?.count || 0; - return acc; - }, 0); - return total; - }); -} +import { Component, computed, effect, ElementRef, inject, input, signal } from '@angular/core'; +import { TranslocoPipe } from '@jsverse/transloco'; +import { AppStore, DropdownComponent, QueryParamsStore } from '@sinequa/atomic-angular'; +import { FiltersMoreComponent } from '../more/filters-more.component'; +import { ActivatedRoute } from '@angular/router'; + +@Component({ + selector: 'filters-more-button, FiltersMoreButton', + standalone: true, + imports: [DropdownComponent, TranslocoPipe, FiltersMoreComponent], + template: ` + + + + + + ` +}) +export class FiltersMoreButtonComponent { + route = inject(ActivatedRoute); + appStore = inject(AppStore); + queryParamsStore = inject(QueryParamsStore); + nativeElement = inject(ElementRef).nativeElement; + + count = input(2); + + totalFiltersCount = computed(() => { + const count = this.count(); + + const authorizedFilters = this.appStore + .getAuthorizedFilters(this.route) + .filter(f => f.name !== 'Modified') + .filter(f => f.column !== 'modified') + .map(f => f.column) + .toSpliced(0, count); + + const total = authorizedFilters.reduce((acc, filter) => { + const f = this.queryParamsStore.getFilter(filter); + acc += f?.count || 0; + return acc; + }, 0); + return total; + }); +} diff --git a/src/core/components/filters/date/date.component.html b/src/core/components/filters/date/date.component.html index a14b906e..960198bc 100644 --- a/src/core/components/filters/date/date.component.html +++ b/src/core/components/filters/date/date.component.html @@ -1,6 +1,6 @@
    - + + + }
    diff --git a/src/core/components/filters/date/date.component.ts b/src/core/components/filters/date/date.component.ts index 59c10306..96829b42 100644 --- a/src/core/components/filters/date/date.component.ts +++ b/src/core/components/filters/date/date.component.ts @@ -26,7 +26,7 @@ import { AggEx, AggregationComponent, AggregationTitle } from '../aggregation/ag * * @public */ -export const FILTER_DATE_ALLOW_CUSTOM_RANGE = new InjectionToken("date allow custom range", { factory: () => true }); +export const FILTER_DATE_ALLOW_CUSTOM_RANGE = new InjectionToken('date allow custom range', { factory: () => true }); type DateFilter = { label?: string; @@ -36,12 +36,15 @@ type DateFilter = { display?: string; disabled?: boolean; hidden?: boolean; -} +}; -const loader = ['en', 'fr'].reduce((acc, lang) => { - acc[lang] = () => import(`../i18n/${lang}.json`); - return acc; -}, {} as HashMap<() => Promise>); +const loader = ['en', 'fr'].reduce( + (acc, lang) => { + acc[lang] = () => import(`../i18n/${lang}.json`); + return acc; + }, + {} as HashMap<() => Promise> +); @Component({ selector: 'date-filter,DateFilter', @@ -64,8 +67,8 @@ export class DateComponent extends AggregationComponent { readonly displayEmptyDistributionIntervals = input(false); readonly allowCustomRange = inject(FILTER_DATE_ALLOW_CUSTOM_RANGE); - protected readonly dateOptions = computed( - () => translateAggregationToDateOptions(this.aggregation() as Aggregation, this.displayEmptyDistributionIntervals()) + protected readonly dateOptions = computed(() => + translateAggregationToDateOptions(this.aggregation() as Aggregation, this.displayEmptyDistributionIntervals()) ); protected readonly form = new FormGroup({ @@ -89,11 +92,9 @@ export class DateComponent extends AggregationComponent { // apply current date filter from queryParamsStore effect(() => { this.updateForm(this.queryParamsStore.getFilter(this.aggregation()!.column) as LegacyFilter); - }) + }); - this.subscription.add( - this.form.valueChanges.subscribe(() => this.hasFilter.set(true)) - ); + this.subscription.add(this.form.valueChanges.subscribe(() => this.hasFilter.set(true))); } protected override processAggregation(): AggEx | null | undefined { @@ -114,10 +115,9 @@ export class DateComponent extends AggregationComponent { from: null, to: null } - }) + }); - if (notify) - this.queryParamsStore.updateFilter({ field: this.aggregation()!.column, display: '' }); + if (notify) this.queryParamsStore.updateFilter({ field: this.aggregation()!.column, display: '' }); } private updateForm(filter: LegacyFilter | undefined): void { @@ -127,19 +127,19 @@ export class DateComponent extends AggregationComponent { } const { operator, value } = filter; - const code = this.dateOptions().find((option: DateFilter) => option.operator === operator && option.value === value)?.display ?? "custom-range"; + const code = this.dateOptions().find((option: DateFilter) => option.operator === operator && option.value === value)?.display ?? 'custom-range'; let from, to; if (code === 'custom-range') { switch (operator) { - case ('lte'): + case 'lte': to = filter.value; break; - case ('gte'): + case 'gte': from = filter.value; break; - case ('between'): + case 'between': from = filter.start; to = filter.end; break; @@ -149,8 +149,8 @@ export class DateComponent extends AggregationComponent { const formValue = { option: code, customRange: { - from: (code === 'custom-range') ? from ?? null : null, - to: (code === 'custom-range') ? to ?? null : null + from: code === 'custom-range' ? (from ?? null) : null, + to: code === 'custom-range' ? (to ?? null) : null } }; @@ -171,8 +171,7 @@ export class DateComponent extends AggregationComponent { filters: dateOption?.filters, value: dateOption?.value }; - } - else if (value.customRange) { + } else if (value.customRange) { // if to is null, operator is gte // if from is null, operator is lte // if both are not null, operator is between @@ -185,12 +184,10 @@ export class DateComponent extends AggregationComponent { filter.operator = 'between'; filter.start = value.customRange.from; filter.end = value.customRange.to; - } - else if (value.customRange.from) { + } else if (value.customRange.from) { filter.operator = 'gte'; filter.value = value.customRange.from; - } - else if (value.customRange.to) { + } else if (value.customRange.to) { filter.operator = 'lte'; filter.value = value.customRange.to; } diff --git a/src/core/components/filters/filters-list.component.ts b/src/core/components/filters/filters-list.component.ts index 83e24649..cbdfd92f 100644 --- a/src/core/components/filters/filters-list.component.ts +++ b/src/core/components/filters/filters-list.component.ts @@ -1,159 +1,160 @@ -import { Component, computed, effect, ElementRef, inject, OnDestroy, signal, viewChild, viewChildren } from "@angular/core"; -import { ActivatedRoute } from "@angular/router"; -import { HashMap, provideTranslocoScope, Translation, TranslocoService } from "@jsverse/transloco"; -import { getState } from "@ngrx/signals"; - -import { AggregationsStore, AppStore, cn, OverflowItemDirective, OverflowManagerDirective, OverflowStopDirective, QueryParamsStore } from "@sinequa/atomic-angular"; - -import { debounceTime, Subscription } from "rxjs"; -import { FilterButtonComponent } from "./buttons/filter-button.component"; -import { FilterDateButtonComponent } from "./buttons/filter-date-button.component"; -import { FiltersMoreButtonComponent } from "./buttons/filters-more-button.component"; -import { FILTERS_BREAKPOINT } from "./filters.models"; - -const loader = ['en', 'fr'].reduce((acc, lang) => { - acc[lang] = () => import(`./i18n/${lang}.json`); - return acc; -}, {} as HashMap<() => Promise>); - -@Component({ - selector: "filters-list, FiltersList", - standalone: true, - imports: [ - FiltersMoreButtonComponent, - FilterButtonComponent, - FilterDateButtonComponent, - OverflowManagerDirective, - OverflowItemDirective, - OverflowStopDirective - ], - providers: [provideTranslocoScope({ scope: 'filters', loader })], - template: ` - - @if (hasFilters()) { - - } - - @if (hasAggregations()) { - - - @for (filter of filters(); track $index) { - - } - - @if (hasMoreFilters()) { - - } - @else { -
    - } - } -
    - `, - host: { - "role": "list", - "aria-label": "Filters list", - } -}) -export class FiltersListComponent implements OnDestroy { - cn = cn; - - moreFilterElement = viewChild(FiltersMoreButtonComponent); - dropdownElements = viewChildren(FilterButtonComponent); - readonly overflowManager = viewChild(OverflowManagerDirective); - - filtersCount = inject(FILTERS_BREAKPOINT); - - route = inject(ActivatedRoute) - appStore = inject(AppStore); - aggregationsStore = inject(AggregationsStore); - queryParamsStore = inject(QueryParamsStore); - el = inject(ElementRef); - readonly transloco = inject(TranslocoService); - - filters = signal([]); - moreFilterCount = signal(this.filtersCount); - - hasFilters = computed(() => { - // when the query parameters store updates, update the hasFilters signal - // to show or hide the clear filters button - const state = getState(this.queryParamsStore); - return Array.isArray(state.filters) && state.filters.length > 0; - }); - - hasAggregations = computed(() => { - if (this.aggregationsStore.aggregations()) return this.aggregationsStore.aggregations().length > 0; - return false; - }); - - hasMoreFilters = computed(() => { - // more filters button is hidden by default - // to show the filters button, aggregations MUST contains items - const moreFiltersAggregations = this.appStore.getAuthorizedFilters(this.route) - .filter(f => f.name !== "Modified") - .map(f => f.column) - .toSpliced(0, this.filtersCount) - .map(column => this.aggregationsStore.getAggregation(column, "column")); - - return moreFiltersAggregations.some(agg => agg?.items && agg.items.length > 0); - }) - - filterDate = { name: "#date", column: "modified", count: 0, isTree: false, disabled: false, hidden: false }; - - private readonly sub = new Subscription(); - - constructor() { - effect(() => { - // set filters according to the route and the authorized filters with default values - const authorizedFilters = this.appStore.getAuthorizedFilters(this.route) - .filter(f => f.name !== "Modified") - .map(f => f.column) - .toSpliced(this.filtersCount); - - this.filters.set(authorizedFilters); - }, { allowSignalWrites: true }); - - this.sub.add( - this.transloco.events$.pipe(debounceTime(100)).subscribe(() => this.overflowManager()?.countItems()) - ); - } - - ngOnDestroy(): void { - this.sub.unsubscribe(); - } - - /** - * Clears all filters by invoking the clearFilters method on the queryParamsStore. - * This method is typically used to reset the filter state to its default values. - */ - clearFilters(): void { - this.queryParamsStore.clearFilters(); - } - - /** - * Adjusts the count of filters that can be displayed before the "more filters" option is shown. - * - * This method calculates the number of filter dropdowns that can fit in the available space - * before the "more filters" button. It updates the `moreFilterCount` property with the number - * of filters that can be displayed. If no filters are present, it sets the `moreFilterCount` - * to the total number of filters. - * - */ - adjustFiltersCount(count: number): void { - this.moreFilterCount.set(count > this.filtersCount ? this.filtersCount : count); - } -} \ No newline at end of file +import { Component, computed, effect, ElementRef, inject, OnDestroy, signal, viewChild, viewChildren } from '@angular/core'; +import { ActivatedRoute } from '@angular/router'; +import { HashMap, provideTranslocoScope, Translation, TranslocoService } from '@jsverse/transloco'; +import { getState } from '@ngrx/signals'; + +import { + AggregationsStore, + AppStore, + cn, + OverflowItemDirective, + OverflowManagerDirective, + OverflowStopDirective, + QueryParamsStore +} from '@sinequa/atomic-angular'; + +import { debounceTime, Subscription } from 'rxjs'; +import { FilterButtonComponent } from './buttons/filter-button.component'; +import { FilterDateButtonComponent } from './buttons/filter-date-button.component'; +import { FiltersMoreButtonComponent } from './buttons/filters-more-button.component'; +import { FILTERS_BREAKPOINT } from './filters.models'; + +const loader = ['en', 'fr'].reduce( + (acc, lang) => { + acc[lang] = () => import(`./i18n/${lang}.json`); + return acc; + }, + {} as HashMap<() => Promise> +); + +@Component({ + selector: 'filters-list, FiltersList', + standalone: true, + imports: [ + FiltersMoreButtonComponent, + FilterButtonComponent, + FilterDateButtonComponent, + OverflowManagerDirective, + OverflowItemDirective, + OverflowStopDirective + ], + providers: [provideTranslocoScope({ scope: 'filters', loader })], + template: ` + + @if (hasFilters()) { + + } + + @if (hasAggregations()) { + + + @for (filter of filters(); track $index) { + + } + + @if (hasMoreFilters()) { + + } @else { +
    + } + } +
    + `, + host: { + role: 'list', + 'aria-label': 'Filters list' + } +}) +export class FiltersListComponent implements OnDestroy { + cn = cn; + + moreFilterElement = viewChild(FiltersMoreButtonComponent); + dropdownElements = viewChildren(FilterButtonComponent); + readonly overflowManager = viewChild(OverflowManagerDirective); + + filtersCount = inject(FILTERS_BREAKPOINT); + + route = inject(ActivatedRoute); + appStore = inject(AppStore); + aggregationsStore = inject(AggregationsStore); + queryParamsStore = inject(QueryParamsStore); + el = inject(ElementRef); + readonly transloco = inject(TranslocoService); + + filters = signal([]); + moreFilterCount = signal(this.filtersCount); + + hasFilters = computed(() => { + // when the query parameters store updates, update the hasFilters signal + // to show or hide the clear filters button + const state = getState(this.queryParamsStore); + return Array.isArray(state.filters) && state.filters.length > 0; + }); + + hasAggregations = computed(() => { + if (this.aggregationsStore.aggregations()) return this.aggregationsStore.aggregations().length > 0; + return false; + }); + + hasMoreFilters = computed(() => { + // more filters button is hidden by default + // to show the filters button, aggregations MUST contains items + const moreFiltersAggregations = this.appStore + .getAuthorizedFilters(this.route) + .filter(f => f.name !== 'Modified') + .map(f => f.column) + .toSpliced(0, this.filtersCount) + .map(column => this.aggregationsStore.getAggregation(column, 'column')); + + return moreFiltersAggregations.some(agg => agg?.items && agg.items.length > 0); + }); + + filterDate = { name: '#date', column: 'modified', count: 0, isTree: false, disabled: false, hidden: false }; + + private readonly sub = new Subscription(); + + constructor() { + effect( + () => { + // set filters according to the route and the authorized filters with default values + const authorizedFilters = this.appStore + .getAuthorizedFilters(this.route) + .filter(f => f.name !== 'Modified') + .map(f => f.column) + .toSpliced(this.filtersCount); + + this.filters.set(authorizedFilters); + }, + { allowSignalWrites: true } + ); + + this.sub.add(this.transloco.events$.pipe(debounceTime(100)).subscribe(() => this.overflowManager()?.countItems())); + } + + ngOnDestroy(): void { + this.sub.unsubscribe(); + } + + /** + * Clears all filters by invoking the clearFilters method on the queryParamsStore. + * This method is typically used to reset the filter state to its default values. + */ + clearFilters(): void { + this.queryParamsStore.clearFilters(); + } + + /** + * Adjusts the count of filters that can be displayed before the "more filters" option is shown. + * + * This method calculates the number of filter dropdowns that can fit in the available space + * before the "more filters" button. It updates the `moreFilterCount` property with the number + * of filters that can be displayed. If no filters are present, it sets the `moreFilterCount` + * to the total number of filters. + * + */ + adjustFiltersCount(count: number): void { + this.moreFilterCount.set(count > this.filtersCount ? this.filtersCount : count); + } +} diff --git a/src/core/components/filters/filters.models.ts b/src/core/components/filters/filters.models.ts index 9de479ac..78bb9e65 100644 --- a/src/core/components/filters/filters.models.ts +++ b/src/core/components/filters/filters.models.ts @@ -1,15 +1,15 @@ -import { InjectionToken } from "@angular/core"; -import { LegacyFilter } from "@sinequa/atomic"; - -import { CFilter } from "@sinequa/atomic-angular"; - -export type CFilterEx = CFilter & { - name: string; - count: number; - isTree: boolean; - disabled: boolean; - hidden: boolean; - legacyFilter?: LegacyFilter; -}; - -export const FILTERS_BREAKPOINT = new InjectionToken("FILTERS_BREAKPOINT", { factory: () => 5 }); +import { InjectionToken } from '@angular/core'; +import { LegacyFilter } from '@sinequa/atomic'; + +import { CFilter } from '@sinequa/atomic-angular'; + +export type CFilterEx = CFilter & { + name: string; + count: number; + isTree: boolean; + disabled: boolean; + hidden: boolean; + legacyFilter?: LegacyFilter; +}; + +export const FILTERS_BREAKPOINT = new InjectionToken('FILTERS_BREAKPOINT', { factory: () => 5 }); diff --git a/src/core/components/filters/i18n/en.json b/src/core/components/filters/i18n/en.json index 40f6b314..86773164 100644 --- a/src/core/components/filters/i18n/en.json +++ b/src/core/components/filters/i18n/en.json @@ -6,4 +6,4 @@ "moreFilters": "More filters", "noFiltersAvailable": "No filters available", "openFilter": "Open{filter, select, other { {filter} } undefined { filter } }" -} \ No newline at end of file +} diff --git a/src/core/components/filters/more/filters-more.component.ts b/src/core/components/filters/more/filters-more.component.ts index 3e83f982..c041fb8a 100644 --- a/src/core/components/filters/more/filters-more.component.ts +++ b/src/core/components/filters/more/filters-more.component.ts @@ -1,144 +1,130 @@ -import { Component, effect, inject, input, signal } from "@angular/core"; -import { ActivatedRoute } from "@angular/router"; -import { TranslocoPipe } from "@jsverse/transloco"; -import { AggregationsStore, AppStore, CFilter, cn, QueryParamsStore } from "@sinequa/atomic-angular"; -import { AggregationComponent } from "../aggregation/aggregation.component"; -import { CFilterEx } from "../filters.models"; - -@Component({ - selector: 'filters-more, FiltersMore', - standalone: true, - imports: [AggregationComponent, TranslocoPipe], - template: ` - @for(filter of filters(); track $index) { -
  • - - - -
    - - - - - {{ filter.display || filter.name | transloco }} - @if(filter.count > 0) { - - - {{ filter.count }} - - } - - - @if(agg.selectionCount()) { - - } -
    - -
  • - } - `, - host: { - "class": "divide-y", - }, - styles: [` - :host { - scrollbar-width: none; - } - `] -}) export class FiltersMoreComponent { - cn = cn; - count = input(2); - - route = inject(ActivatedRoute) - appStore = inject(AppStore); - aggregationsStore = inject(AggregationsStore); - queryParamsStore = inject(QueryParamsStore); - - - filters = signal([]); - - constructor() { - - effect(() => { - const count = this.count(); - - const authorizedFilters = this.appStore.getAuthorizedFilters(this.route) - .filter(f => f.name !== "Modified") - .map(f => f.column) - .toSpliced(0, count); - - const f = authorizedFilters.map(filter => { - const { icon, hidden = false } = this.appStore.getAggregationCustomization(filter) as CFilter || {}; - return ({ - name: filter, - column: filter, - icon, - count: 0, - isTree: false, - disabled: false, - hidden, - }) - }) - - this.filters.set(f); - this.updateFilters(); - }, { allowSignalWrites: true }); - - } - - clearFilter(field: string) { - this.queryParamsStore.removeFilter(field); - } - - updateFilters() { - this.filters.update( filters => { - return filters.map(filter => { - const agg = this.aggregationsStore.getAggregation(filter.column, "column"); - const f = this.queryParamsStore.getFilter(agg?.name); - const count = f?.count || 0; - - const { display = agg?.isTree ? undefined : filter.display } = this.appStore.getAggregationCustomization(filter.column) as CFilter || {}; - - return {...filter, - name: agg?.name || filter.name, - display, - isTree: agg?.isTree || false, - count, - disabled: !agg?.items || agg.items?.length === 0 ? true : false - }; - }) - }); - } -} \ No newline at end of file +import { Component, effect, inject, input, signal } from '@angular/core'; +import { ActivatedRoute } from '@angular/router'; +import { TranslocoPipe } from '@jsverse/transloco'; +import { AggregationsStore, AppStore, CFilter, cn, QueryParamsStore } from '@sinequa/atomic-angular'; +import { AggregationComponent } from '../aggregation/aggregation.component'; +import { CFilterEx } from '../filters.models'; + +@Component({ + selector: 'filters-more, FiltersMore', + standalone: true, + imports: [AggregationComponent, TranslocoPipe], + template: ` + @for (filter of filters(); track $index) { +
  • + + + +
    + + + + + {{ filter.display || filter.name | transloco }} + @if (filter.count > 0) { + + + {{ filter.count }} + + } + + + @if (agg.selectionCount()) { + + } +
    + +
  • + } + `, + host: { + class: 'divide-y' + }, + styles: [ + ` + :host { + scrollbar-width: none; + } + ` + ] +}) +export class FiltersMoreComponent { + cn = cn; + count = input(2); + + route = inject(ActivatedRoute); + appStore = inject(AppStore); + aggregationsStore = inject(AggregationsStore); + queryParamsStore = inject(QueryParamsStore); + + filters = signal([]); + + constructor() { + effect( + () => { + const count = this.count(); + + const authorizedFilters = this.appStore + .getAuthorizedFilters(this.route) + .filter(f => f.name !== 'Modified') + .map(f => f.column) + .toSpliced(0, count); + + const f = authorizedFilters.map(filter => { + const { icon, hidden = false } = (this.appStore.getAggregationCustomization(filter) as CFilter) || {}; + return { + name: filter, + column: filter, + icon, + count: 0, + isTree: false, + disabled: false, + hidden + }; + }); + + this.filters.set(f); + this.updateFilters(); + }, + { allowSignalWrites: true } + ); + } + + clearFilter(field: string) { + this.queryParamsStore.removeFilter(field); + } + + updateFilters() { + this.filters.update(filters => { + return filters.map(filter => { + const agg = this.aggregationsStore.getAggregation(filter.column, 'column'); + const f = this.queryParamsStore.getFilter(agg?.name); + const count = f?.count || 0; + + const { display = agg?.isTree ? undefined : filter.display } = (this.appStore.getAggregationCustomization(filter.column) as CFilter) || {}; + + return { + ...filter, + name: agg?.name || filter.name, + display, + isTree: agg?.isTree || false, + count, + disabled: !agg?.items || agg.items?.length === 0 ? true : false + }; + }); + }); + } +} diff --git a/src/core/components/loading/loading.component.ts b/src/core/components/loading/loading.component.ts index d8c5b765..8b948220 100644 --- a/src/core/components/loading/loading.component.ts +++ b/src/core/components/loading/loading.component.ts @@ -1,11 +1,11 @@ -import { Component, computed, effect, inject } from "@angular/core"; -import { ActivatedRoute, Router } from "@angular/router"; -import { getState } from "@ngrx/signals"; +import { Component, computed, effect, inject } from '@angular/core'; +import { ActivatedRoute, Router } from '@angular/router'; +import { getState } from '@ngrx/signals'; -import { ApplicationStore, QueryParamsStore } from "@sinequa/atomic-angular"; +import { ApplicationStore, QueryParamsStore } from '@sinequa/atomic-angular'; @Component({ - selector: "app-wait", + selector: 'app-wait', standalone: true, imports: [], template: ` @@ -15,20 +15,21 @@ import { ApplicationStore, QueryParamsStore } from "@sinequa/atomic-angular";
    `, - styles: [` - .loader { - --w: 96px; - --h: 96px; + styles: [ + ` + .loader { + --w: 96px; + --h: 96px; - transform: rotateZ(45deg); - perspective: 1000px; - border-radius: 50%; - width: var(--w); - height: var(--h); - color: #0040bf; /* Sinequa blue */ - } - .loader:before, - .loader:after { + transform: rotateZ(45deg); + perspective: 1000px; + border-radius: 50%; + width: var(--w); + height: var(--h); + color: #0040bf; /* Sinequa blue */ + } + .loader:before, + .loader:after { content: ''; display: block; position: absolute; @@ -41,60 +42,61 @@ import { ApplicationStore, QueryParamsStore } from "@sinequa/atomic-angular"; animation: 1s spin linear infinite; } .loader:after { - color: #FF854a; /* Sinequa orange */ + color: #ff854a; /* Sinequa orange */ transform: rotateY(70deg); - animation-delay: .4s; + animation-delay: 0.4s; } - @keyframes rotate { - 0% { - transform: translate(-50%, -50%) rotateZ(0deg); - } - 100% { - transform: translate(-50%, -50%) rotateZ(360deg); + @keyframes rotate { + 0% { + transform: translate(-50%, -50%) rotateZ(0deg); + } + 100% { + transform: translate(-50%, -50%) rotateZ(360deg); + } } - } - @keyframes rotateccw { - 0% { - transform: translate(-50%, -50%) rotate(0deg); + @keyframes rotateccw { + 0% { + transform: translate(-50%, -50%) rotate(0deg); + } + 100% { + transform: translate(-50%, -50%) rotate(-360deg); + } } - 100% { - transform: translate(-50%, -50%) rotate(-360deg); - } - } - @keyframes spin { - 0%, - 100% { - box-shadow: .4em 0px 0 0px currentcolor; - } - 12% { - box-shadow: .4em .4em 0 0 currentcolor; - } - 25% { - box-shadow: 0 .4em 0 0px currentcolor; + @keyframes spin { + 0%, + 100% { + box-shadow: 0.4em 0px 0 0px currentcolor; + } + 12% { + box-shadow: 0.4em 0.4em 0 0 currentcolor; + } + 25% { + box-shadow: 0 0.4em 0 0px currentcolor; + } + 37% { + box-shadow: -0.4em 0.4em 0 0 currentcolor; + } + 50% { + box-shadow: -0.4em 0 0 0 currentcolor; + } + 62% { + box-shadow: -0.4em -0.4em 0 0 currentcolor; + } + 75% { + box-shadow: 0px -0.4em 0 0 currentcolor; + } + 87% { + box-shadow: 0.4em -0.4em 0 0 currentcolor; + } } - 37% { - box-shadow: -.4em .4em 0 0 currentcolor; - } - 50% { - box-shadow: -.4em 0 0 0 currentcolor; - } - 62% { - box-shadow: -.4em -.4em 0 0 currentcolor; - } - 75% { - box-shadow: 0px -.4em 0 0 currentcolor; - } - 87% { - box-shadow: .4em -.4em 0 0 currentcolor; - } - } - `] + ` + ] }) export class LoadingComponent { - protected readonly state = computed(() => getState(this.application)) + protected readonly state = computed(() => getState(this.application)); private readonly application = inject(ApplicationStore); private readonly queryParamsStore = inject(QueryParamsStore); @@ -112,9 +114,8 @@ export class LoadingComponent { // ! we need to set the query params from the url once only this.queryParamsStore.setFromUrl(url); - }, 700); } - }) + }); } } diff --git a/src/core/components/navbar/navbar.component.html b/src/core/components/navbar/navbar.component.html index 60ecdc2e..66b0ca00 100644 --- a/src/core/components/navbar/navbar.component.html +++ b/src/core/components/navbar/navbar.component.html @@ -1,37 +1,27 @@ - -
    - - +
    + +
    - + @for (menu of menus; track $index) {
  • @if (menu.component) { - + -
  • }
  • - +
  • -
    +
    @if (moreTabs().length > 0) { - - - -
    diff --git a/src/core/components/navbar/navbar.component.scss b/src/core/components/navbar/navbar.component.scss index 77e99050..c23e7b8d 100644 --- a/src/core/components/navbar/navbar.component.scss +++ b/src/core/components/navbar/navbar.component.scss @@ -17,7 +17,7 @@ * When the `drawer-opened` attribute is set to `true` on the parent element, * the `#navbar-logo` element will have an opacity of 0 and a transition of 0.2s ease-out. */ - &[drawer-opened="true"] #navbar-logo { + &[drawer-opened='true'] #navbar-logo { opacity: 0; transition: 0.2s ease-out; } diff --git a/src/core/components/navbar/navbar.component.ts b/src/core/components/navbar/navbar.component.ts index 57e53eec..5d14b3d1 100644 --- a/src/core/components/navbar/navbar.component.ts +++ b/src/core/components/navbar/navbar.component.ts @@ -4,7 +4,17 @@ import { Router, RouterLink, RouterLinkActive } from '@angular/router'; import { TranslocoPipe, TranslocoService } from '@jsverse/transloco'; import { debounceTime, Subscription } from 'rxjs'; -import { AutocompleteService, DrawerStackService, DropdownComponent, NavigationService, OverflowItemDirective, OverflowManagerDirective, OverflowStopDirective, QueryParamsStore, SavedSearchesService } from '@sinequa/atomic-angular'; +import { + AutocompleteService, + DrawerStackService, + DropdownComponent, + NavigationService, + OverflowItemDirective, + OverflowManagerDirective, + OverflowStopDirective, + QueryParamsStore, + SavedSearchesService +} from '@sinequa/atomic-angular'; import { BookmarksListComponent } from '@/core/features/bookmarks/list/bookmarks-list.component'; import { RecentSearchesComponent } from '@/core/features/recent-searches/recent-searches.component'; @@ -30,7 +40,7 @@ type NavbarTab = { iconClass: string; routerLink: string; queryName?: string; -} +}; @Component({ selector: 'app-navbar', @@ -53,7 +63,7 @@ type NavbarTab = { OverflowStopDirective ], host: { - 'class': 'layout-search', + class: 'layout-search', '[attr.drawer-opened]': 'drawerOpened()' } }) @@ -84,31 +94,32 @@ export class NavbarComponent implements OnDestroy { private readonly sub = new Subscription(); // create tabs from the search routes - readonly tabs = computed(() => this.router.config - .find(item => item.path === "search")?.children - ?.filter(c => c.path !== "**") - .map(child => ({ - display: child.data?.['display'] || child.path, - name: child.data?.['wsQueryTab'] || child.path, - path: child.path, - routerLink: `${child.path}`, - iconClass: child.data?.['iconClass'], - queryName: child.data?.['queryName'] - }) as NavbarTab) ?? [] + readonly tabs = computed( + () => + this.router.config + .find(item => item.path === 'search') + ?.children?.filter(c => c.path !== '**') + .map( + child => + ({ + display: child.data?.['display'] || child.path, + name: child.data?.['wsQueryTab'] || child.path, + path: child.path, + routerLink: `${child.path}`, + iconClass: child.data?.['iconClass'], + queryName: child.data?.['queryName'] + }) as NavbarTab + ) ?? [] ); readonly moreTabs = computed(() => this.tabs().slice(this.visibleTabCount())); constructor() { - this.sub.add( - this.drawerStack.isOpened.subscribe(state => this.drawerOpened.set(state)) - ); + this.sub.add(this.drawerStack.isOpened.subscribe(state => this.drawerOpened.set(state))); // register to transloco events to update the overflow manager when translations are loaded // otherwise the overflow manager will count size of items without text this.sub.add( - this.transloco.events$.pipe( - debounceTime(100) - ).subscribe(() => { + this.transloco.events$.pipe(debounceTime(100)).subscribe(() => { this.overflowManager()?.countItems(); }) ); @@ -153,7 +164,7 @@ export class NavbarComponent implements OnDestroy { /** * Occurs when the search input is updated by the user and debounced by the system - * + * * @param text The debounced text */ protected debounced(text: string): void { diff --git a/src/core/components/no-result-panel/no-result-panel.component.ts b/src/core/components/no-result-panel/no-result-panel.component.ts index 1afdf637..3eea78ec 100644 --- a/src/core/components/no-result-panel/no-result-panel.component.ts +++ b/src/core/components/no-result-panel/no-result-panel.component.ts @@ -1,10 +1,13 @@ import { Component } from '@angular/core'; import { HashMap, provideTranslocoScope, Translation, TranslocoPipe } from '@jsverse/transloco'; -const loader = ['en', 'fr'].reduce((acc, lang) => { - acc[lang] = () => import(`./i18n/${lang}.json`); - return acc; -}, {} as HashMap<() => Promise>); +const loader = ['en', 'fr'].reduce( + (acc, lang) => { + acc[lang] = () => import(`./i18n/${lang}.json`); + return acc; + }, + {} as HashMap<() => Promise> +); @Component({ selector: 'NoResultPanel', @@ -12,19 +15,19 @@ const loader = ['en', 'fr'].reduce((acc, lang) => { imports: [TranslocoPipe], providers: [provideTranslocoScope({ scope: 'noResult', loader })], template: ` -
    +

    {{ 'noResult.noResult' | transloco }}

    {{ 'noResult.noResultSuggestion' | transloco }}

    -
    +

    {{ 'noResult.noResultAssistance' | transloco }}

    `, host: { - 'class': 'p-4 flex flex-col gap-2 bg-gray-100 rounded-md' + class: 'p-4 flex flex-col gap-2 bg-gray-100 rounded-md' } }) export class NoResultPanelComponent {} diff --git a/src/core/components/pagination/pager.component.ts b/src/core/components/pagination/pager.component.ts index 4232dcbc..b6f505d0 100644 --- a/src/core/components/pagination/pager.component.ts +++ b/src/core/components/pagination/pager.component.ts @@ -1,96 +1,69 @@ -import { Component, computed, effect, inject, input, signal } from "@angular/core"; -import { TranslocoPipe } from "@jsverse/transloco"; - -import { SearchService } from "@sinequa/atomic-angular"; - -export type PageConfiguration = { - page: number; - rowCount: number; - pageSize: number; -} - -@Component({ - selector: 'app-pager', - standalone: true, - imports: [TranslocoPipe], - template: ` -
    - @if ((hasPages() && page() > 1) || (!hasPages() && page() > 1)) { - - } - - @if (hasPages()) { - - } -
    - ` -}) -export class PagerComponent { - public readonly configuration = input.required(); - - protected readonly page = signal(0); - protected readonly hasPages = computed(() => { - const {page, pageSize, rowCount} = this.configuration(); - return (page * pageSize) < rowCount; - }); - - private readonly searchService = inject(SearchService); - - constructor() { - effect(() => { - this.page.set(this.configuration().page); - }, { allowSignalWrites: true }); - } - - public nextPage(): void { - this.page.set(this.page() + 1); - this.searchService.gotoPage(this.page()); - } - - public previousPage(): void { - this.page.set(this.page() - 1); - this.searchService.gotoPage(this.page()); - } -} \ No newline at end of file +import { Component, computed, effect, inject, input, signal } from '@angular/core'; +import { TranslocoPipe } from '@jsverse/transloco'; + +import { SearchService } from '@sinequa/atomic-angular'; + +export type PageConfiguration = { + page: number; + rowCount: number; + pageSize: number; +}; + +@Component({ + selector: 'app-pager', + standalone: true, + imports: [TranslocoPipe], + template: ` +
    + @if ((hasPages() && page() > 1) || (!hasPages() && page() > 1)) { + + } + + @if (hasPages()) { + + } +
    + ` +}) +export class PagerComponent { + public readonly configuration = input.required(); + + protected readonly page = signal(0); + protected readonly hasPages = computed(() => { + const { page, pageSize, rowCount } = this.configuration(); + return page * pageSize < rowCount; + }); + + private readonly searchService = inject(SearchService); + + constructor() { + effect( + () => { + this.page.set(this.configuration().page); + }, + { allowSignalWrites: true } + ); + } + + public nextPage(): void { + this.page.set(this.page() + 1); + this.searchService.gotoPage(this.page()); + } + + public previousPage(): void { + this.page.set(this.page() - 1); + this.searchService.gotoPage(this.page()); + } +} diff --git a/src/core/components/preview/actions/preview-actions.ts b/src/core/components/preview/actions/preview-actions.ts index b9c55188..060a4404 100644 --- a/src/core/components/preview/actions/preview-actions.ts +++ b/src/core/components/preview/actions/preview-actions.ts @@ -1,123 +1,112 @@ -import { Component, inject, signal } from "@angular/core"; -import { HashMap, Translation, TranslocoPipe, provideTranslocoScope } from "@jsverse/transloco"; - -import { PreviewService } from "@sinequa/atomic-angular"; - -const loader = ['en', 'fr'].reduce((acc, lang) => { - acc[lang] = () => import(`../i18n/${lang}.json`); - return acc; -}, {} as HashMap<() => Promise>); - -@Component({ - selector: "preview-actions", - standalone: true, - imports: [TranslocoPipe], - providers: [provideTranslocoScope({ scope: "preview", loader })], - template: ` - - - - - @if (extracts()) { - - } - @else { - - } - - @if (entities()) { - - } - @else { - - } - `, -}) -export class PreviewActionsComponent { - protected readonly extracts = signal(true); - protected readonly entities = signal(false); - - private readonly previewService = inject(PreviewService); - - constructor() { - window.addEventListener('message', (event: MessageEvent) => { - const message = event.data; - if (message.type === 'selected-position') { - this.extracts.set(false); - this.entities.set(false); - this.previewService.toggle(this.extracts(), this.entities()); - } - - if (message.type === 'ready'){ - this.previewService.toggle(this.extracts(), this.entities()); - } - }); - } - - public zoomIn(): void { - this.previewService.zoomIn(); - } - - public zoomOut(): void { - this.previewService.zoomOut(); - } - - toggleExtracts() { - const value = !this.extracts(); - this.extracts.set(value); - if (value === true) { - this.entities.set(false); - } - this.previewService.toggle(this.extracts(), this.entities()); - this.previewService.sendMessage({ action: 'unselect' }); - } - - toggleEntities() { - const value = !this.entities(); - this.entities.set(value); - if (value === true) { - this.extracts.set(false); - } - this.previewService.toggle(this.extracts(), this.entities()); - this.previewService.sendMessage({ action: 'unselect' }); - } -} \ No newline at end of file +import { Component, inject, signal } from '@angular/core'; +import { HashMap, Translation, TranslocoPipe, provideTranslocoScope } from '@jsverse/transloco'; + +import { PreviewService } from '@sinequa/atomic-angular'; + +const loader = ['en', 'fr'].reduce( + (acc, lang) => { + acc[lang] = () => import(`../i18n/${lang}.json`); + return acc; + }, + {} as HashMap<() => Promise> +); + +@Component({ + selector: 'preview-actions', + standalone: true, + imports: [TranslocoPipe], + providers: [provideTranslocoScope({ scope: 'preview', loader })], + template: ` + + + + + @if (extracts()) { + + } @else { + + } + + @if (entities()) { + + } @else { + + } + ` +}) +export class PreviewActionsComponent { + protected readonly extracts = signal(true); + protected readonly entities = signal(false); + + private readonly previewService = inject(PreviewService); + + constructor() { + window.addEventListener('message', (event: MessageEvent) => { + const message = event.data; + if (message.type === 'selected-position') { + this.extracts.set(false); + this.entities.set(false); + this.previewService.toggle(this.extracts(), this.entities()); + } + + if (message.type === 'ready') { + this.previewService.toggle(this.extracts(), this.entities()); + } + }); + } + + public zoomIn(): void { + this.previewService.zoomIn(); + } + + public zoomOut(): void { + this.previewService.zoomOut(); + } + + toggleExtracts() { + const value = !this.extracts(); + this.extracts.set(value); + if (value === true) { + this.entities.set(false); + } + this.previewService.toggle(this.extracts(), this.entities()); + this.previewService.sendMessage({ action: 'unselect' }); + } + + toggleEntities() { + const value = !this.entities(); + this.entities.set(value); + if (value === true) { + this.extracts.set(false); + } + this.previewService.toggle(this.extracts(), this.entities()); + this.previewService.sendMessage({ action: 'unselect' }); + } +} diff --git a/src/core/components/preview/default/preview-default.component.html b/src/core/components/preview/default/preview-default.component.html index cecd9cb9..5abe573b 100644 --- a/src/core/components/preview/default/preview-default.component.html +++ b/src/core/components/preview/default/preview-default.component.html @@ -1,25 +1,17 @@ - + -
    +
    @if (previewData() && article()) { -
    +
    - -

    + +

    {{ article().title }}

    @@ -34,14 +26,11 @@ @if (locationSegments().length > 1) { - + -
    +
    @for (segment of locationSegments().slice(0, -1); track $index) { - @@ -64,11 +53,7 @@ {{ 'lastUpdatedBy' | transloco }} - + } @@ -78,59 +63,56 @@ {{ 'lastUpdatedOn' | transloco }} -

    {{ article()!.modified | translocoDate : "mediumDate" }}

    +

    {{ article()!.modified | translocoDate: 'mediumDate' }}

    } @if (hasLabels()) { + + {{ 'labels' | transloco }} + + + + + + + + } + - {{ 'labels' | transloco }} + {{ 'type' | transloco }} - + - - + metadata="docformat" + (onMetadataClick)="onMetadataClick($event)" /> - - } - - - {{ 'type' | transloco }} - - - - - - -
    + + +
    } - @if(loading()) { -
    -
    + @if (loading()) { +
    +
    } @if (canLoadIframe()) { -
    +
    + [attr.aria-label]="'preview.documentPreview' | transloco">
    - } @else if (previewUrlError()) { -
    -

    -
    - {{ 'previewUnavailable' | transloco }} -

    -
    - } + } @else if (previewUrlError()) { +
    +

    +
    + {{ 'previewUnavailable' | transloco }} +

    +
    + }
    diff --git a/src/core/components/preview/default/preview-default.component.ts b/src/core/components/preview/default/preview-default.component.ts index 8d57b542..dd0c45b7 100644 --- a/src/core/components/preview/default/preview-default.component.ts +++ b/src/core/components/preview/default/preview-default.component.ts @@ -30,7 +30,7 @@ type Article = A & { SourceIconComponent, TranslocoPipe, TranslocoDateImpurePipe, - DropdownComponent, + DropdownComponent ], templateUrl: './preview-default.component.html', // eslint-disable-next-line @angular-eslint/no-host-metadata-property @@ -44,9 +44,9 @@ export class PreviewDefaultComponent extends BasePreview { public readonly article = computed(() => this.previewData()?.record as Article); public readonly previewUrl = computed(() => - this.previewData()?.documentCachedContentUrl ? - this.sanitizer.bypassSecurityTrustResourceUrl(window.location.origin + this.previewData().documentCachedContentUrl) : - undefined + this.previewData()?.documentCachedContentUrl + ? this.sanitizer.bypassSecurityTrustResourceUrl(window.location.origin + this.previewData().documentCachedContentUrl) + : undefined ); public labels = inject(AppStore).getLabels(); @@ -86,34 +86,39 @@ export class PreviewDefaultComponent extends BasePreview { this.previewService.setPreviewData(this.previewData()); }); - effect(async () => { - if (!this.previewUrl()) return; - - try { - this.loading.set(true); - this.cdr.detectChanges(); - const response = await fetch(window.location.origin + this.previewData().documentCachedContentUrl); - this.canLoadIframe.set(response.status === 200); - this.previewUrlError.set(response.status !== 200); - } catch (e) { - this.canLoadIframe.set(false); - this.previewUrlError.set(true); - } finally { - this.loading.set(false); - } - }, { allowSignalWrites: true }); + effect( + async () => { + if (!this.previewUrl()) return; + + try { + this.loading.set(true); + this.cdr.detectChanges(); + const response = await fetch(window.location.origin + this.previewData().documentCachedContentUrl); + this.canLoadIframe.set(response.status === 200); + this.previewUrlError.set(response.status !== 200); + } catch (e) { + this.canLoadIframe.set(false); + this.previewUrlError.set(true); + } finally { + this.loading.set(false); + } + }, + { allowSignalWrites: true } + ); } navigateToSegment(index: number): void { let currentFilter = this.queryParamStore.getFilter('Treepath'); - if (!currentFilter) - currentFilter = { field: 'treepath', operator: 'in' } as LegacyFilter; + if (!currentFilter) currentFilter = { field: 'treepath', operator: 'in' } as LegacyFilter; - if (!currentFilter.values) - currentFilter.values = []; + if (!currentFilter.values) currentFilter.values = []; - currentFilter.values.push(`/${this.locationSegments().slice(0, index + 1).join('/')}/*`); + currentFilter.values.push( + `/${this.locationSegments() + .slice(0, index + 1) + .join('/')}/*` + ); this.queryParamStore.updateFilter(currentFilter); @@ -144,7 +149,7 @@ export class PreviewDefaultComponent extends BasePreview { * @param field field to filter on * @param value value from the filter */ - onMetadataClick({ field, value }: { field: string, value: string }): void { + onMetadataClick({ field, value }: { field: string; value: string }): void { let filter: LegacyFilter = { field, value }; this.queryParamStore.updateFilter(filter); } diff --git a/src/core/components/preview/navbar/preview-navbar.component.html b/src/core/components/preview/navbar/preview-navbar.component.html index 260e265c..595708e2 100644 --- a/src/core/components/preview/navbar/preview-navbar.component.html +++ b/src/core/components/preview/navbar/preview-navbar.component.html @@ -1,33 +1,22 @@ - +
  • -
  • -
  • +
  • @if (navConfig.showOpenButton) {
  • -
  • -
  • +
  • } @if (canBookmark()) { @@ -38,29 +27,20 @@ @if (hasExternalLink()) {
  • -
  • } @if (navConfig.showSearchButton && article()) { -
  • +
  • @if (isExtended()) { - } - @else { + } @else {
  • @@ -48,14 +32,11 @@ @if (locationSegments().length > 1) { - + -
    +
    @for (segment of locationSegments().slice(0, -1); track $index) { - @@ -78,11 +59,7 @@ {{ 'lastUpdatedBy' | transloco }} - + } @@ -92,67 +69,57 @@ {{ 'lastUpdatedOn' | transloco }} -

    {{ article()!.modified | translocoDate : "mediumDate" }}

    +

    {{ article()!.modified | translocoDate: 'mediumDate' }}

    } @if (hasLabels()) { - - {{ 'labels' | transloco }} + + {{ 'labels' | transloco }} - - + + + + + + } + + + {{ 'type' | transloco }} + + + className="cursor-pointer" + metadata="docformat" + (onMetadataClick)="onMetadataClick($event)" /> - + + +
    + +
    + @if (previewUrl() && canLoadIframe()) { + + + + } @else if (previewUrlError()) { +
    +

    +
    + {{ 'previewUnavailable' | transloco }} +

    +
    } - - - {{ 'type' | transloco }} - - - - - - -
    - -
    - @if (previewUrl() && canLoadIframe()) { - - - - } @else if (previewUrlError()) { -
    -

    -
    - {{ 'previewUnavailable' | transloco }} -

    -
    - } -
    -
    -} \ No newline at end of file +
    +
    +} diff --git a/src/core/components/preview/slide/preview-slide.component.ts b/src/core/components/preview/slide/preview-slide.component.ts index d86d486e..2c656344 100644 --- a/src/core/components/preview/slide/preview-slide.component.ts +++ b/src/core/components/preview/slide/preview-slide.component.ts @@ -45,9 +45,9 @@ export class PreviewSlideComponent extends BasePreview implements OnDestroy { public readonly article = computed(() => this.previewData()?.record as Article); public readonly previewUrl = computed(() => - this.previewData()?.documentCachedContentUrl ? - this.sanitizer.bypassSecurityTrustResourceUrl(window.location.origin + this.previewData().documentCachedContentUrl) : - undefined + this.previewData()?.documentCachedContentUrl + ? this.sanitizer.bypassSecurityTrustResourceUrl(window.location.origin + this.previewData().documentCachedContentUrl) + : undefined ); thumbnailFailed = signal(false); @@ -106,13 +106,15 @@ export class PreviewSlideComponent extends BasePreview implements OnDestroy { navigateToSegment(index: number): void { let currentFilter = this.queryParamStore.getFilter('Treepath'); - if (!currentFilter) - currentFilter = { field: 'treepath', operator: 'in' } as LegacyFilter; + if (!currentFilter) currentFilter = { field: 'treepath', operator: 'in' } as LegacyFilter; - if (!currentFilter.values) - currentFilter.values = []; + if (!currentFilter.values) currentFilter.values = []; - currentFilter.values.push(`/${this.locationSegments().slice(0, index + 1).join('/')}/*`); + currentFilter.values.push( + `/${this.locationSegments() + .slice(0, index + 1) + .join('/')}/*` + ); this.queryParamStore.updateFilter(currentFilter); @@ -126,7 +128,7 @@ export class PreviewSlideComponent extends BasePreview implements OnDestroy { * @param field field to filter on * @param value value from the filter */ - onMetadataClick({ field, value }: { field: string, value: string }): void { + onMetadataClick({ field, value }: { field: string; value: string }): void { let filter: LegacyFilter = { field, value }; this.queryParamStore.updateFilter(filter); } diff --git a/src/core/components/search-input/autocomplete/autocomplete.component.html b/src/core/components/search-input/autocomplete/autocomplete.component.html index 91293941..7b5ac8f5 100644 --- a/src/core/components/search-input/autocomplete/autocomplete.component.html +++ b/src/core/components/search-input/autocomplete/autocomplete.component.html @@ -1,73 +1,78 @@ @if (items()) {
      + role="listbox"> @for (item of items(); track $index) { @if (item.$isDivider) { - - } - - @else if (!item.display) { - + } @else if (!item.display) { + - } - - @else { -
    • + } @else { +
    • + (click)="itemClicked(item)"> @switch (item.category) { - @case('recent-search') { } - @case('saved-search') { } - @case('bookmark') { } - @case('full-text') { } - @case('title') { } - @case('concepts') { } - @case('people') { } - @default { } + @case ('recent-search') { + + } + @case ('saved-search') { + + } + @case ('bookmark') { + + } + @case ('full-text') { + + } + @case ('title') { + + } + @case ('concepts') { + + } + @case ('people') { + + } + @default { + + } } -

      - @for(chunk of item.display! | highlightWord:text():10; track $index ) { +

      + @for (chunk of item.display! | highlightWord: text() : 10; track $index) { {{ chunk.text }} }

    • } - } - - @empty { + } @empty { {{ 'searchInput.noSuggestions' | transloco }} diff --git a/src/core/components/search-input/autocomplete/autocomplete.component.ts b/src/core/components/search-input/autocomplete/autocomplete.component.ts index 157a482f..3d496aca 100644 --- a/src/core/components/search-input/autocomplete/autocomplete.component.ts +++ b/src/core/components/search-input/autocomplete/autocomplete.component.ts @@ -12,15 +12,18 @@ import { SearchInputComponent } from '../search-input.component'; export type Suggestion = Partial & { $isDivider: boolean; -} +}; const titledSections = ['title', 'concepts', 'people', 'bookmark', 'recent-search', 'saved-search']; const autocompleteCategories = ['full-text', 'recent-search', 'saved-search', 'bookmark', 'title', 'concepts', 'people']; -const loader = ['en', 'fr'].reduce((acc, lang) => { - acc[lang] = () => import(`../i18n/${lang}.json`); - return acc; -}, {} as HashMap<() => Promise>) +const loader = ['en', 'fr'].reduce( + (acc, lang) => { + acc[lang] = () => import(`../i18n/${lang}.json`); + return acc; + }, + {} as HashMap<() => Promise> +); @Component({ selector: 'app-autocomplete', @@ -43,28 +46,31 @@ export class AutocompleteComponent { autocomplete = computed(() => this.appStore.customizationJson()?.autocomplete); readonly items = toSignal( - combineLatest([toObservable(this.text), toObservable(this.wasSearchClicked)]) - .pipe( - switchMap(([testText]) => { - const fromUserSettings = of(this.autocompleteService.getFromUserSettingsForText(testText, this.autocomplete() ?? 3)); + combineLatest([toObservable(this.text), toObservable(this.wasSearchClicked)]).pipe( + switchMap(([testText]) => { + const fromUserSettings = of(this.autocompleteService.getFromUserSettingsForText(testText, this.autocomplete() ?? 3)); - if (!testText) - return fromUserSettings; + if (!testText) return fromUserSettings; - return combineLatest([ - fromUserSettings, - this.autocompleteService.getFromSuggestQueriesForText(testText).pipe(catchError(error => { + return combineLatest([ + fromUserSettings, + this.autocompleteService.getFromSuggestQueriesForText(testText).pipe( + catchError(error => { console.error(error); return of([]); - })) - ]); - }), - map(items => items.flat(2)), - // order the items to have full-text, recent search and saved search at the beginning - map(items => items.sort((a, b) => { + }) + ) + ]); + }), + map(items => items.flat(2)), + // order the items to have full-text, recent search and saved search at the beginning + map(items => + items.sort((a, b) => { return autocompleteCategories.indexOf(a.category) - autocompleteCategories.indexOf(b.category); - })), - map((items) => items.reduce((acc, curr) => { + }) + ), + map(items => + items.reduce((acc, curr) => { if (acc.length > 0) { const last = acc.at(-1); @@ -80,19 +86,24 @@ export class AutocompleteComponent { acc.push({ ...curr, $isDivider: false }); return acc; - }, [])) - )); - - constructor({ el: { nativeElement } }: SearchInputComponent, private eventManager: EventManager) { + }, []) + ) + ) + ); + + constructor( + { el: { nativeElement } }: SearchInputComponent, + private eventManager: EventManager + ) { this.eventManager.addEventListener(nativeElement, 'click', () => this.wasSearchClicked.set(true)); } public itemClicked(item: Suggestion): void { this.auditService.notify({ - type: "Search_Autocomplete", + type: 'Search_Autocomplete', detail: { display: item.display, - category: item.category, + category: item.category } }); this.onClick.emit(item); diff --git a/src/core/components/search-input/search-input.component.html b/src/core/components/search-input/search-input.component.html index 221a484c..c38aa3d2 100644 --- a/src/core/components/search-input/search-input.component.html +++ b/src/core/components/search-input/search-input.component.html @@ -1,30 +1,22 @@
      -
      + class="group relative flex h-8 grow rounded focus-within:z-[1001] focus-within:rounded-b-none focus-within:outline-primary hover:outline hover:outline-1 [&:not(:focus-within)]:hover:outline-neutral-300"> +
      @if (showSave() && input() !== '') { - + } + (click)="inputClicked()" /> @if (input() !== '') { - + } @if (input() !== '' && allowChatDrawer()) { @@ -64,13 +53,12 @@
      diff --git a/src/core/components/search-input/search-input.component.scss b/src/core/components/search-input/search-input.component.scss index c7c7f697..0d9c1071 100644 --- a/src/core/components/search-input/search-input.component.scss +++ b/src/core/components/search-input/search-input.component.scss @@ -1,11 +1,11 @@ :host { /* Hides cancel button from input that as type='search' */ - input[type="search"]::-webkit-search-cancel-button { + input[type='search']::-webkit-search-cancel-button { -webkit-appearance: none; } border-radius: theme('borderRadius.DEFAULT'); - + &:has([popover]:popover-open) { z-index: 5000; box-shadow: 0 0 0 max(100vh, 100vw) rgba(0, 0, 0, 0.3); diff --git a/src/core/components/search-input/search-input.component.ts b/src/core/components/search-input/search-input.component.ts index 9cc250aa..811c46ee 100644 --- a/src/core/components/search-input/search-input.component.ts +++ b/src/core/components/search-input/search-input.component.ts @@ -9,10 +9,13 @@ import { toast } from 'ngx-sonner'; const DEBOUNCE_DELAY = 300; -const loader = ['en', 'fr'].reduce((acc, lang) => { - acc[lang] = () => import(`./i18n/${lang}.json`); - return acc; -}, {} as HashMap<() => Promise>) +const loader = ['en', 'fr'].reduce( + (acc, lang) => { + acc[lang] = () => import(`./i18n/${lang}.json`); + return acc; + }, + {} as HashMap<() => Promise> +); @Component({ selector: 'app-search-input', @@ -52,7 +55,6 @@ export class SearchInputComponent { return this.appStore.allowEmptySearch(queryName); }); - // el is the ElementRef of the component, it is injected by Angular and used by the AutoComplete component constructor(public readonly el: ElementRef) { effect(() => { @@ -60,20 +62,24 @@ export class SearchInputComponent { this.debounced.emit(value); }); + effect( + () => { + const { data } = getState(this.appStore); + const { features = { allowChatDrawer: false } } = data as CJson; - effect(() => { - const { data } = getState(this.appStore); - const { features = { allowChatDrawer: false } } = data as CJson; - - this.allowChatDrawer.set(features.allowChatDrawer); - }, { allowSignalWrites: true }) + this.allowChatDrawer.set(features.allowChatDrawer); + }, + { allowSignalWrites: true } + ); // first time the component is created, we set the input value from the query params - effect(() => { - const { text } = getState(this.queryParamsStore); - this.setInput(text); - }, { allowSignalWrites: true }) - + effect( + () => { + const { text } = getState(this.queryParamsStore); + this.setInput(text); + }, + { allowSignalWrites: true } + ); } public closeAutocompletePopover(): void { @@ -99,7 +105,7 @@ export class SearchInputComponent { protected emitText(): void { if (this.allowEmptySearch() === false && this.input() === '') { const message = this.translocoService.translate('searchInput.allowEmptySearch'); - toast.info(message) + toast.info(message); return; } @@ -133,7 +139,7 @@ export class SearchInputComponent { protected onKeyDown(e: KeyboardEvent): void { if (e.key === 'Enter') { this.emitText(); - } else if(this.input() !== ''){ + } else if (this.input() !== '') { this.popoverElement().showPopover(); } } diff --git a/src/core/components/source-icon/source-icon.component.html b/src/core/components/source-icon/source-icon.component.html index a1460a52..a10bd846 100644 --- a/src/core/components/source-icon/source-icon.component.html +++ b/src/core/components/source-icon/source-icon.component.html @@ -1,11 +1,5 @@ @if (iconDetails()?.iconPath) { - + } @else { - + } diff --git a/src/core/components/source-icon/source-icon.component.ts b/src/core/components/source-icon/source-icon.component.ts index ba42a40e..58bd2be9 100644 --- a/src/core/components/source-icon/source-icon.component.ts +++ b/src/core/components/source-icon/source-icon.component.ts @@ -3,10 +3,13 @@ import { HashMap, Translation, TranslocoPipe, provideTranslocoScope } from '@jsv import { AppStore, CSources } from '@sinequa/atomic-angular'; -const loader = ['en', 'fr'].reduce((acc, lang) => { - acc[lang] = () => import(`./i18n/${lang}.json`); - return acc; -}, {} as HashMap<() => Promise>) +const loader = ['en', 'fr'].reduce( + (acc, lang) => { + acc[lang] = () => import(`./i18n/${lang}.json`); + return acc; + }, + {} as HashMap<() => Promise> +); @Component({ selector: 'app-source-icon', @@ -21,35 +24,35 @@ export class SourceIconComponent { private readonly appStore = inject(AppStore); - readonly iconDetails = computed((): { iconClass: string, iconPath?: string } | undefined => { + readonly iconDetails = computed((): { iconClass: string; iconPath?: string } | undefined => { const [collection] = this.collection() || []; const connector = (this.connector() ?? '').toLocaleLowerCase(); if (!collection) return undefined; const src = this.appStore.sources() as CSources; - const name = collection.split("/")[1].toLocaleLowerCase(); + const name = collection.split('/')[1].toLocaleLowerCase(); - const defaultIconClass = "far fa-file"; + const defaultIconClass = 'far fa-file'; - if(Array.isArray(src)) { + if (Array.isArray(src)) { const { icon: iconClass = defaultIconClass } = src.find((source: { name: string }) => source.name.toLocaleLowerCase() === name) || {}; - return ({ iconClass }); + return { iconClass }; } - if(src.collection && Object.keys(src.collection as {}).includes(collection.toLocaleLowerCase())){ - const { iconClass = defaultIconClass, iconPath} = src?.collection?.[collection.toLocaleLowerCase()]; - return ({ iconClass, iconPath }); + if (src.collection && Object.keys(src.collection as {}).includes(collection.toLocaleLowerCase())) { + const { iconClass = defaultIconClass, iconPath } = src?.collection?.[collection.toLocaleLowerCase()]; + return { iconClass, iconPath }; } - if(src.source && Object.keys(src.source as {}).includes(name)){ - const { iconClass = defaultIconClass, iconPath} = src?.source?.[name.toLocaleLowerCase()]; - return ({ iconClass, iconPath }); + if (src.source && Object.keys(src.source as {}).includes(name)) { + const { iconClass = defaultIconClass, iconPath } = src?.source?.[name.toLocaleLowerCase()]; + return { iconClass, iconPath }; } - if(src.connector && Object.keys(src.connector as {}).includes(connector)){ - const { iconClass = defaultIconClass, iconPath} = src?.connector?.[connector.toLocaleLowerCase()]; - return ({ iconClass, iconPath }); + if (src.connector && Object.keys(src.connector as {}).includes(connector)) { + const { iconClass = defaultIconClass, iconPath } = src?.connector?.[connector.toLocaleLowerCase()]; + return { iconClass, iconPath }; } return { iconClass: defaultIconClass }; - }) + }); } diff --git a/src/core/components/sponsored-results/sponsored-results.component.html b/src/core/components/sponsored-results/sponsored-results.component.html index b8d1ca7f..e8306aff 100644 --- a/src/core/components/sponsored-results/sponsored-results.component.html +++ b/src/core/components/sponsored-results/sponsored-results.component.html @@ -1,10 +1,13 @@ @if (sponsoredResults()?.length) { - @for (link of sponsoredResults(); track $index) { - - - {{link.title}} - - - } -} \ No newline at end of file + @for (link of sponsoredResults(); track $index) { + + + {{ link.title }} + + + } +} diff --git a/src/core/components/sponsored-results/sponsored-results.component.ts b/src/core/components/sponsored-results/sponsored-results.component.ts index 791d5725..933b8eda 100644 --- a/src/core/components/sponsored-results/sponsored-results.component.ts +++ b/src/core/components/sponsored-results/sponsored-results.component.ts @@ -1,31 +1,30 @@ -import { Component, computed, effect, inject, signal, untracked } from "@angular/core"; -import { getState } from "@ngrx/signals"; -import { CCApp, fetchSponsoredLinks, LinkResult } from "@sinequa/atomic"; -import { AppStore, QueryParamsStore } from "@sinequa/atomic-angular"; +import { Component, computed, effect, inject, signal, untracked } from '@angular/core'; +import { getState } from '@ngrx/signals'; +import { CCApp, fetchSponsoredLinks, LinkResult } from '@sinequa/atomic'; +import { AppStore, QueryParamsStore } from '@sinequa/atomic-angular'; @Component({ - selector: "app-sponsored-results", + selector: 'app-sponsored-results', standalone: true, templateUrl: './sponsored-results.component.html', styles: ` -.promoted-badge { - visibility: hidden; -} + .promoted-badge { + visibility: hidden; + } -a:hover .promoted-badge { - visibility: visible; -} + a:hover .promoted-badge { + visibility: visible; + } ` }) export class SponsoredResultsComponent { - appStore = inject(AppStore); queryParamStore = inject(QueryParamsStore); sponsoredLinks = computed(() => { const { sponsoredLinks } = getState(this.appStore) as CCApp; return sponsoredLinks; - }) + }); readonly sponsoredResults = signal(undefined); constructor() { @@ -33,10 +32,10 @@ export class SponsoredResultsComponent { untracked(async () => { if (this.sponsoredLinks()) { const query = this.queryParamStore.getQuery(); - const links = await fetchSponsoredLinks(this.sponsoredLinks(), query) || []; + const links = (await fetchSponsoredLinks(this.sponsoredLinks(), query)) || []; this.sponsoredResults.set(links.slice(0, 3)); } - }) + }); }); } -} \ No newline at end of file +} diff --git a/src/core/features/bookmarks/button/bookmark-button.component.html b/src/core/features/bookmarks/button/bookmark-button.component.html index 40306960..f008237e 100644 --- a/src/core/features/bookmarks/button/bookmark-button.component.html +++ b/src/core/features/bookmarks/button/bookmark-button.component.html @@ -1,5 +1,5 @@ - } - - @empty { -
    • + } @empty { +
    • {{ 'bookmark.noBookmarks' | transloco }}
    • } @@ -44,11 +40,10 @@ @if (hasMore()) { -} \ No newline at end of file +} diff --git a/src/core/features/bookmarks/list/bookmarks-list.component.scss b/src/core/features/bookmarks/list/bookmarks-list.component.scss index 354d466c..595cf6ed 100644 --- a/src/core/features/bookmarks/list/bookmarks-list.component.scss +++ b/src/core/features/bookmarks/list/bookmarks-list.component.scss @@ -1,3 +1,3 @@ :host { scrollbar-width: thin; -} \ No newline at end of file +} diff --git a/src/core/features/bookmarks/list/bookmarks-list.component.ts b/src/core/features/bookmarks/list/bookmarks-list.component.ts index caf0be31..4ce5af8c 100644 --- a/src/core/features/bookmarks/list/bookmarks-list.component.ts +++ b/src/core/features/bookmarks/list/bookmarks-list.component.ts @@ -7,10 +7,13 @@ import { Bookmark, DrawerStackService, QueryService, UserSettingsStore } from '@ const BOOKMARKS_ITEMS_PER_PAGE = 5; -const loader = ['en', 'fr'].reduce((acc, lang) => { - acc[lang] = () => import(`../i18n/${lang}.json`); - return acc; -}, {} as HashMap<() => Promise>) +const loader = ['en', 'fr'].reduce( + (acc, lang) => { + acc[lang] = () => import(`../i18n/${lang}.json`); + return acc; + }, + {} as HashMap<() => Promise> +); @Component({ selector: 'app-bookmarks-list', @@ -34,9 +37,7 @@ export class BookmarksListComponent { public paginatedBookmarks = computed(() => this.bookmarks().slice(0, this.range())); public hasMore = computed(() => this.bookmarks().length > 0 && this.range() < this.bookmarks().length); - public onClick(bookmark: Bookmark): void { - // if the bookmark was created before the queryName was added, don't try to open it if (!bookmark.queryName) { toast.warning('This bookmark is outdated and cannot be opened', { description: 'No query name!', duration: 2000 }); @@ -46,11 +47,11 @@ export class BookmarksListComponent { const query: Partial = { name: bookmark.queryName, filters: { - field: "id", + field: 'id', value: bookmark.id } as LegacyFilter - } - this.queryService.search(query, false).subscribe((result) => { + }; + this.queryService.search(query, false).subscribe(result => { if (!result.records || result.records.length === 0) { toast.warning('This bookmark is outdated and cannot be opened', { description: 'no record found!', duration: 2000 }); return; @@ -69,4 +70,4 @@ export class BookmarksListComponent { e.stopPropagation(); this.range.set(this.range() + BOOKMARKS_ITEMS_PER_PAGE); } -} \ No newline at end of file +} diff --git a/src/core/features/collections/add-to-collection.ts b/src/core/features/collections/add-to-collection.ts index bb76bfd5..477498de 100644 --- a/src/core/features/collections/add-to-collection.ts +++ b/src/core/features/collections/add-to-collection.ts @@ -1,57 +1,54 @@ -import { Component, computed, ElementRef, inject, input, signal, viewChild } from "@angular/core"; -import { FormsModule } from "@angular/forms"; -import { HashMap, provideTranslocoScope, Translation, TranslocoPipe } from "@jsverse/transloco"; -import { Article } from "@sinequa/atomic"; -import { Basket, UserSettingsStore } from "@sinequa/atomic-angular"; +import { Component, computed, ElementRef, inject, input, viewChild } from '@angular/core'; +import { FormsModule } from '@angular/forms'; +import { HashMap, provideTranslocoScope, Translation, TranslocoPipe } from '@jsverse/transloco'; +import { Article } from '@sinequa/atomic'; +import { Basket, UserSettingsStore } from '@sinequa/atomic-angular'; -const loader = ['en', 'fr'].reduce((acc, lang) => { - acc[lang] = () => import(`./i18n/${lang}.json`); - return acc; -}, {} as HashMap<() => Promise>) +const loader = ['en', 'fr'].reduce( + (acc, lang) => { + acc[lang] = () => import(`./i18n/${lang}.json`); + return acc; + }, + {} as HashMap<() => Promise> +); @Component({ selector: 'add-to-collection-dialog', standalone: true, imports: [FormsModule, TranslocoPipe], - providers: [provideTranslocoScope({ scope: "collection", loader })], + providers: [provideTranslocoScope({ scope: 'collection', loader })], template: ` - -
      -

      {{ 'collection.addToCollection' | transloco }}

      -
      + +
      +

      {{ 'collection.addToCollection' | transloco }}

      +
      -
        - @for (collection of collections(); track $index) { -
      • - - {{ collection.name }} -
      • - } - - @empty { -
      • - {{ 'collection.noCollections' | transloco }} -
      • - } -
      +
        + @for (collection of collections(); track $index) { +
      • + + {{ collection.name }} +
      • + } @empty { +
      • + {{ 'collection.noCollections' | transloco }} +
      • + } +
      -
      - -
      -
      -
      -` +
      + +
      +
      +
      + ` }) export class AddToCollectionDialog { - readonly article = input.required
      (); private readonly userSettingsStore = inject(UserSettingsStore); readonly dialog = viewChild('dialog'); @@ -62,17 +59,19 @@ export class AddToCollectionDialog { } containsArticle(collection: Basket): boolean { - return (collection.ids || []).some(id => id === this.article().id) + return (collection.ids || []).some(id => id === this.article().id); } async addToCollection(collection: Basket, collectionIndex: number): Promise { - if (this.containsArticle(collection)) { // remove it + if (this.containsArticle(collection)) { + // remove it const index = collection.ids!.indexOf(this.article().id); collection.ids!.splice(index, 1); - } else { // add it + } else { + // add it if (!collection.ids) collection.ids = []; collection.ids!.push(this.article().id); } await this.userSettingsStore.updateBasket(collection, collectionIndex); } -} \ No newline at end of file +} diff --git a/src/core/features/collections/collections.component.html b/src/core/features/collections/collections.component.html index 36afab92..3a045bc7 100644 --- a/src/core/features/collections/collections.component.html +++ b/src/core/features/collections/collections.component.html @@ -1,40 +1,35 @@
        - @for (collection of collections(); track $index) { -
      • - {{ collection.name }} -
      • - } - - @empty { -
      • - {{ 'collection.noCollections' | transloco }} -
      • - } -
      • - - + @for (collection of collections(); track $index) { +
      • + {{ collection.name }}
      • + } @empty { +
      • + {{ 'collection.noCollections' | transloco }} +
      • + } +
      • + + +
      - \ No newline at end of file + diff --git a/src/core/features/collections/collections.component.ts b/src/core/features/collections/collections.component.ts index ffc9d442..c2b9e1da 100644 --- a/src/core/features/collections/collections.component.ts +++ b/src/core/features/collections/collections.component.ts @@ -2,14 +2,17 @@ import { Component, computed, inject, viewChild } from '@angular/core'; import { Router } from '@angular/router'; import { HashMap, provideTranslocoScope, Translation, TranslocoPipe } from '@jsverse/transloco'; import { Basket, buildQuery, DrawerStackService, UserSettingsStore } from '@sinequa/atomic-angular'; -import { CreateCollectionDialog } from "./create-collection"; -import { ManageCollectionsDialog } from "./manage-collections"; +import { CreateCollectionDialog } from './create-collection'; +import { ManageCollectionsDialog } from './manage-collections'; import { Query } from '@sinequa/atomic'; -const loader = ['en', 'fr'].reduce((acc, lang) => { - acc[lang] = () => import(`./i18n/${lang}.json`); - return acc; -}, {} as HashMap<() => Promise>) +const loader = ['en', 'fr'].reduce( + (acc, lang) => { + acc[lang] = () => import(`./i18n/${lang}.json`); + return acc; + }, + {} as HashMap<() => Promise> +); @Component({ selector: 'app-collections', @@ -32,7 +35,7 @@ export class CollectionsComponent { constructor() { this.query = buildQuery(); - } + } onClick(collection: Basket): void { this.drawerStack.closeAll(); diff --git a/src/core/features/collections/create-collection.ts b/src/core/features/collections/create-collection.ts index 6c7b65ba..7e3c910c 100644 --- a/src/core/features/collections/create-collection.ts +++ b/src/core/features/collections/create-collection.ts @@ -1,49 +1,48 @@ -import { Component, ElementRef, inject, signal, viewChild } from "@angular/core"; -import { FormsModule } from "@angular/forms"; -import { HashMap, provideTranslocoScope, Translation, TranslocoPipe } from "@jsverse/transloco"; -import { UserSettingsStore } from "@sinequa/atomic-angular"; +import { Component, ElementRef, inject, signal, viewChild } from '@angular/core'; +import { FormsModule } from '@angular/forms'; +import { HashMap, provideTranslocoScope, Translation, TranslocoPipe } from '@jsverse/transloco'; +import { UserSettingsStore } from '@sinequa/atomic-angular'; -const loader = ['en', 'fr'].reduce((acc, lang) => { - acc[lang] = () => import(`./i18n/${lang}.json`); - return acc; -}, {} as HashMap<() => Promise>) +const loader = ['en', 'fr'].reduce( + (acc, lang) => { + acc[lang] = () => import(`./i18n/${lang}.json`); + return acc; + }, + {} as HashMap<() => Promise> +); @Component({ selector: 'create-collection-dialog', standalone: true, imports: [FormsModule, TranslocoPipe], - providers: [provideTranslocoScope({ scope: "collection", loader })], + providers: [provideTranslocoScope({ scope: 'collection', loader })], template: ` - -
      -

      {{ 'collection.createCollection' | transloco }}

      -
      + +
      +

      {{ 'collection.createCollection' | transloco }}

      +
      - + -
      - - -
      -
      -
      -` +
      + + +
      +
      +
      + ` }) export class CreateCollectionDialog { private readonly userSettingsStore = inject(UserSettingsStore); @@ -59,4 +58,4 @@ export class CreateCollectionDialog { await this.userSettingsStore.createBasket({ name: this.collectionName() }); this.dialog()!.nativeElement.close(); } -} \ No newline at end of file +} diff --git a/src/core/features/collections/manage-collections.ts b/src/core/features/collections/manage-collections.ts index ba6050fa..80d779d0 100644 --- a/src/core/features/collections/manage-collections.ts +++ b/src/core/features/collections/manage-collections.ts @@ -1,88 +1,76 @@ -import { Component, effect, ElementRef, inject, input, signal, viewChild } from "@angular/core"; -import { FormsModule } from "@angular/forms"; -import { HashMap, provideTranslocoScope, Translation, TranslocoPipe } from "@jsverse/transloco"; -import { Basket, UserSettingsStore } from "@sinequa/atomic-angular"; -import {CdkDragDrop, DragDropModule} from "@angular/cdk/drag-drop"; - -const loader = ['en', 'fr'].reduce((acc, lang) => { - acc[lang] = () => import(`./i18n/${lang}.json`); - return acc; -}, {} as HashMap<() => Promise>) +import { Component, effect, ElementRef, inject, input, signal, viewChild } from '@angular/core'; +import { FormsModule } from '@angular/forms'; +import { HashMap, provideTranslocoScope, Translation, TranslocoPipe } from '@jsverse/transloco'; +import { Basket, UserSettingsStore } from '@sinequa/atomic-angular'; +import { CdkDragDrop, DragDropModule } from '@angular/cdk/drag-drop'; + +const loader = ['en', 'fr'].reduce( + (acc, lang) => { + acc[lang] = () => import(`./i18n/${lang}.json`); + return acc; + }, + {} as HashMap<() => Promise> +); @Component({ selector: 'manage-collections-dialog', standalone: true, imports: [FormsModule, TranslocoPipe, DragDropModule], - providers: [provideTranslocoScope({ scope: "collection", loader })], + providers: [provideTranslocoScope({ scope: 'collection', loader })], template: ` - -
      -

      {{ 'collection.manageCollections' | transloco }}

      -
      - - - -
        - @for (collection of tmpCollections; track $index) { -
      • - @if (modifiedIndex() === undefined || modifiedIndex() !== $index) { - {{ collection.name }} - @if (!reordering()) { - - } @else { - - } - } @else { -
        - -
        + +
        +

        {{ 'collection.manageCollections' | transloco }}

        +
        + + + +
          + @for (collection of tmpCollections; track $index) { +
        • + @if (modifiedIndex() === undefined || modifiedIndex() !== $index) { + {{ collection.name }} + @if (!reordering()) { + + } @else { + + } + } @else { +
          + +
          + } +
        • } - - } -
        - -
        - - -
        -
        -
        -` +
      + +
      + + +
      +
      +
      + ` }) export class ManageCollectionsDialog { collections = input.required(); @@ -111,8 +99,8 @@ export class ManageCollectionsDialog { } dropped(drop: CdkDragDrop) { - if (drop.currentIndex === drop.previousIndex) { - return; + if (drop.currentIndex === drop.previousIndex) { + return; } this.tmpCollections.splice(drop.currentIndex, 0, this.tmpCollections.splice(drop.previousIndex, 1)[0]); } @@ -150,4 +138,4 @@ export class ManageCollectionsDialog { await this.userSettingsStore.createBasket({ name: this.collectionName() }); this.dialog()!.nativeElement.close(); } -} \ No newline at end of file +} diff --git a/src/core/features/dialog/i18n/en.json b/src/core/features/dialog/i18n/en.json index 1aa2a36e..2f487203 100644 --- a/src/core/features/dialog/i18n/en.json +++ b/src/core/features/dialog/i18n/en.json @@ -6,9 +6,9 @@ "override": "Override" }, "resetUserSettings": { - "title": "Reset User Settings", - "message": "You are about to reset ALL your user data (recent queries, collections, alerts, preferences, etc.). Do you want to continue?", - "success": "User settings have been reset successfully." + "title": "Reset User Settings", + "message": "You are about to reset ALL your user data (recent queries, collections, alerts, preferences, etc.). Do you want to continue?", + "success": "User settings have been reset successfully." }, "editLabels": { "title": "Add / Edit labels", diff --git a/src/core/features/dialog/labels/edit-labels.ts b/src/core/features/dialog/labels/edit-labels.ts index 4cafc0c7..cf2f182c 100644 --- a/src/core/features/dialog/labels/edit-labels.ts +++ b/src/core/features/dialog/labels/edit-labels.ts @@ -1,70 +1,65 @@ -import { Component, ElementRef, inject, input, OnDestroy, signal, viewChild } from "@angular/core"; -import { FormsModule } from "@angular/forms"; -import { HashMap, provideTranslocoScope, Translation, TranslocoPipe } from "@jsverse/transloco"; -import { Subscription } from "rxjs"; +import { Component, ElementRef, inject, input, OnDestroy, signal, viewChild } from '@angular/core'; +import { FormsModule } from '@angular/forms'; +import { HashMap, provideTranslocoScope, Translation, TranslocoPipe } from '@jsverse/transloco'; +import { Subscription } from 'rxjs'; -import { Article } from "@sinequa/atomic"; -import { LabelsConfig, LabelService } from "@sinequa/atomic-angular"; +import { Article } from '@sinequa/atomic'; +import { LabelsConfig, LabelService } from '@sinequa/atomic-angular'; -import { LabelsFormComponent } from "./labels-form"; +import { LabelsFormComponent } from './labels-form'; -const loader = ['en', 'fr'].reduce((acc, lang) => { - acc[lang] = () => import(`../i18n/${lang}.json`); - return acc; -}, {} as HashMap<() => Promise>) +const loader = ['en', 'fr'].reduce( + (acc, lang) => { + acc[lang] = () => import(`../i18n/${lang}.json`); + return acc; + }, + {} as HashMap<() => Promise> +); @Component({ selector: 'edit-labels-dialog', standalone: true, imports: [FormsModule, TranslocoPipe, LabelsFormComponent], - providers: [provideTranslocoScope({ scope: "dialog", loader })], + providers: [provideTranslocoScope({ scope: 'dialog', loader })], template: ` - -
      -

      {{ 'dialog.editLabels.title' | transloco }}

      -
      + +
      +

      {{ 'dialog.editLabels.title' | transloco }}

      +
      -
      - INFO{{'dialog.editLabels.info' | transloco}} -
      +
      + INFO{{ 'dialog.editLabels.info' | transloco }} +
      - @if (!!labelsConfig()?.publicLabelsField) { -
      -

      {{'dialog.editLabels.publicLabels' | transloco}}

      - @if (labelsConfig()!.allowPublicLabelsCreation) { - + @if (!!labelsConfig()?.publicLabelsField) { +
      +

      {{ 'dialog.editLabels.publicLabels' | transloco }}

      + @if (labelsConfig()!.allowPublicLabelsCreation) { + + } +
      + } + @if (!!labelsConfig()?.privateLabelsField) { +
      +

      {{ 'dialog.editLabels.privateLabels' | transloco }}

      + +
      } -
      - } - @if (!!labelsConfig()?.privateLabelsField) { -
      -

      {{'dialog.editLabels.privateLabels' | transloco}}

      - -
      - } -
      - -
      -
      -
      -` +
      + +
      +
      +
      + ` }) export class EditLabelsComponent implements OnDestroy { - public readonly article = input.required
      (); labelService = inject(LabelService); @@ -77,12 +72,10 @@ export class EditLabelsComponent implements OnDestroy { showModal() { this.dialog()!.nativeElement.showModal(); - this.subscriptions.add( - this.labelService.getLabelsConfig().subscribe(config => this.labelsConfig.set(config)) - ); + this.subscriptions.add(this.labelService.getLabelsConfig().subscribe(config => this.labelsConfig.set(config))); } ngOnDestroy(): void { this.subscriptions.unsubscribe(); } -} \ No newline at end of file +} diff --git a/src/core/features/dialog/labels/labels-form.ts b/src/core/features/dialog/labels/labels-form.ts index 1981fa28..3ae351e9 100644 --- a/src/core/features/dialog/labels/labels-form.ts +++ b/src/core/features/dialog/labels/labels-form.ts @@ -1,164 +1,157 @@ -import { NgStyle } from "@angular/common"; -import { afterRender, Component, computed, effect, ElementRef, input, signal, viewChild } from "@angular/core"; -import { FormsModule } from "@angular/forms"; -import { TranslocoPipe } from "@jsverse/transloco"; -import { Article, fetchLabels, guid, labels } from "@sinequa/atomic"; -import { debouncedSignal } from "@sinequa/atomic-angular"; - -const DEBOUNCE_DELAY = 300; - -@Component({ - selector: 'labels-form', - standalone: true, - imports: [FormsModule, NgStyle, TranslocoPipe], - template: ` -
      - -
      - -
      -
      -
      - @for (label of labels(); track $index) { - - {{ label }} - @if(allowModification()) { - - } - - } -
      - `, - styles: ` - .anchor { - &:has(.popover:popover-open) { - z-index: 5000; - border-radius: theme('borderRadius.DEFAULT') theme('borderRadius.DEFAULT') 0 0; - } - - .popover::backdrop { - background-color: transparent; - backdrop-filter: none; - } - } - - .popover { - /* Select Firefox */ - @supports (-moz-appearance: none) { - margin: calc(33.3333333333vh + 30px) 25vw; - width: 50vw; - } - - /* Select Safari */ - @supports (background: -webkit-named-image(i)) { - margin: calc(33.3333333333vh + 30px) 25vw; - width: 50vw; - } - - width: anchor-size(width); - top: anchor(bottom); - left: anchor(left); - padding: 0; - border-radius: 6px; - } - `, -}) -export class LabelsFormComponent { - article = input.required
      (); - isPublic = input(false); - allowModification = input(false); - labelsField = input(); - - anchor = signal(`--${guid()}`); - suggestedLabels = signal([]); - - labelInput = signal(''); - debouncedLabelInput = debouncedSignal(this.labelInput, DEBOUNCE_DELAY); - - popover = viewChild('LabelsPopover'); - popoverElement = computed(() => this.popover()?.nativeElement); - - labels = signal([]); - - constructor(){ - afterRender(() => { - this.popoverElement().style.positionAnchor = this.anchor(); - }); - - effect(() => { - this.labels.set(this.article()[this.labelsField()! as keyof Article] as string[] || []); - }, {allowSignalWrites: true}); - - effect(() => { - this.fetchLabels(this.debouncedLabelInput(), this.isPublic()); - }); - } - - itemClicked(label: string) { - this.addLabel(label, this.isPublic()); - } - - onInputClick() { - if(this.suggestedLabels().length === 0) return; - this.popoverElement().showPopover(); - } - - onKeyDown(event: KeyboardEvent) { - if(event.key === 'Enter') { - this.addLabel(this.labelInput(), this.isPublic()); - } - } - - async fetchLabels(text: string, isPublic: boolean) { - const labels = await fetchLabels(text, isPublic); - const unappliedLabels = labels.filter(label => !this.labels().some(l => l === label)); - this.suggestedLabels.set(unappliedLabels); - labels.length ? this.popoverElement().showPopover() : this.popoverElement().hidePopover(); - } - - async addLabel(label: string, isPublic: boolean) { - const l = this.labels(); - this.labels.set([...l, label]); - await labels.add([label], [this.article().id], isPublic); - this.labelInput.set(''); - this.suggestedLabels.set([]); - } - - async removeLabel(label: string, isPublic: boolean) { - this.labels.set(this.labels().filter(l => l !== label)); - await labels.remove([label], [this.article().id], isPublic); - } - -} \ No newline at end of file +import { NgStyle } from '@angular/common'; +import { afterRender, Component, computed, effect, ElementRef, input, signal, viewChild } from '@angular/core'; +import { FormsModule } from '@angular/forms'; +import { TranslocoPipe } from '@jsverse/transloco'; +import { Article, fetchLabels, guid, labels } from '@sinequa/atomic'; +import { debouncedSignal } from '@sinequa/atomic-angular'; + +const DEBOUNCE_DELAY = 300; + +@Component({ + selector: 'labels-form', + standalone: true, + imports: [FormsModule, NgStyle, TranslocoPipe], + template: ` +
      + +
      + +
      +
      +
      + @for (label of labels(); track $index) { + + {{ label }} + @if (allowModification()) { + + } + + } +
      + `, + styles: ` + .anchor { + &:has(.popover:popover-open) { + z-index: 5000; + border-radius: theme('borderRadius.DEFAULT') theme('borderRadius.DEFAULT') 0 0; + } + + .popover::backdrop { + background-color: transparent; + backdrop-filter: none; + } + } + + .popover { + /* Select Firefox */ + @supports (-moz-appearance: none) { + margin: calc(33.3333333333vh + 30px) 25vw; + width: 50vw; + } + + /* Select Safari */ + @supports (background: -webkit-named-image(i)) { + margin: calc(33.3333333333vh + 30px) 25vw; + width: 50vw; + } + + width: anchor-size(width); + top: anchor(bottom); + left: anchor(left); + padding: 0; + border-radius: 6px; + } + ` +}) +export class LabelsFormComponent { + article = input.required
      (); + isPublic = input(false); + allowModification = input(false); + labelsField = input(); + + anchor = signal(`--${guid()}`); + suggestedLabels = signal([]); + + labelInput = signal(''); + debouncedLabelInput = debouncedSignal(this.labelInput, DEBOUNCE_DELAY); + + popover = viewChild('LabelsPopover'); + popoverElement = computed(() => this.popover()?.nativeElement); + + labels = signal([]); + + constructor() { + afterRender(() => { + this.popoverElement().style.positionAnchor = this.anchor(); + }); + + effect( + () => { + this.labels.set((this.article()[this.labelsField()! as keyof Article] as string[]) || []); + }, + { allowSignalWrites: true } + ); + + effect(() => { + this.fetchLabels(this.debouncedLabelInput(), this.isPublic()); + }); + } + + itemClicked(label: string) { + this.addLabel(label, this.isPublic()); + } + + onInputClick() { + if (this.suggestedLabels().length === 0) return; + this.popoverElement().showPopover(); + } + + onKeyDown(event: KeyboardEvent) { + if (event.key === 'Enter') { + this.addLabel(this.labelInput(), this.isPublic()); + } + } + + async fetchLabels(text: string, isPublic: boolean) { + const labels = await fetchLabels(text, isPublic); + const unappliedLabels = labels.filter(label => !this.labels().some(l => l === label)); + this.suggestedLabels.set(unappliedLabels); + labels.length ? this.popoverElement().showPopover() : this.popoverElement().hidePopover(); + } + + async addLabel(label: string, isPublic: boolean) { + const l = this.labels(); + this.labels.set([...l, label]); + await labels.add([label], [this.article().id], isPublic); + this.labelInput.set(''); + this.suggestedLabels.set([]); + } + + async removeLabel(label: string, isPublic: boolean) { + this.labels.set(this.labels().filter(l => l !== label)); + await labels.remove([label], [this.article().id], isPublic); + } +} diff --git a/src/core/features/dialog/override-user.ts b/src/core/features/dialog/override-user.ts index e397c750..eb656856 100644 --- a/src/core/features/dialog/override-user.ts +++ b/src/core/features/dialog/override-user.ts @@ -1,124 +1,125 @@ -import { Component, ElementRef, inject, model, viewChild } from "@angular/core"; -import { FormsModule } from "@angular/forms"; -import { HashMap, provideTranslocoScope, Translation, TranslocoPipe } from "@jsverse/transloco"; -import { getState } from "@ngrx/signals"; -import { toast } from "ngx-sonner"; - -import { globalConfig, login, setGlobalConfig } from "@sinequa/atomic"; -import { ApplicationService, PrincipalStore } from "@sinequa/atomic-angular"; - -const loader = ['en', 'fr'].reduce((acc, lang) => { - acc[lang] = () => import(`./i18n/${lang}.json`); - return acc; -}, {} as HashMap<() => Promise>) - -@Component({ - selector: 'override-user-dialog', - standalone: true, - imports: [FormsModule, TranslocoPipe], - providers: [provideTranslocoScope({ scope: "dialog", loader })], - template: ` - -
      -

      {{ 'dialog.overrideUser.title' | transloco }}

      -
      - - - - - -
      - - - -
      -
      -
      -` -}) -export class OverrideUserDialogComponent { - readonly dialog = viewChild('dialog'); - - private readonly appService = inject(ApplicationService); - private readonly principalStore = inject(PrincipalStore); - - readonly overrideUser = model<{ username: string; domain: string }>({ username: '', domain: '' }); - - showModal() { - this.dialog()!.nativeElement.showModal(); - } - - override() { - if (!!this.overrideUser().domain && !!this.overrideUser().username) { - this.handleOverrideUser(this.overrideUser().username, this.overrideUser().domain); - this.dialog()!.nativeElement.close(); - } - } - - handleOverrideUser(username?: string, domain?: string) { - const { useSSO } = globalConfig - - if (username === undefined || domain === undefined) { - setGlobalConfig({ userOverrideActive: false, userOverride: undefined }); - } - else { - setGlobalConfig({ userOverrideActive: true, userOverride: { username, domain } }); - } - - // Login with the new user - if (useSSO) { - - this.appService.init().then(() => { - const { fullName } = getState(this.principalStore).principal; - toast(`Welcome back ${fullName}!`, { duration: 2000 }); - }).catch(error => { - toast.error('An error occured while overriding (SSO - intialize)', { duration: 2000 }); - setGlobalConfig({ userOverrideActive: false, userOverride: undefined }); - }); - - } else { - login().then(value => { - if (value) { - this.appService.init().then(() => { - const { fullName } = getState(this.principalStore).principal; - toast(`Welcome back ${fullName}!`, { duration: 2000 }); - }).catch(error => { - toast.error('An error occured while overriding (initialize)', { duration: 2000 }); - setGlobalConfig({ userOverrideActive: false, userOverride: undefined }); - }); - } - }).catch(error => { - toast.error('An error occured while overriding (login)', { duration: 2000 }); - setGlobalConfig({ userOverrideActive: false, userOverride: undefined }); - }); - - } - - } -} \ No newline at end of file +import { Component, ElementRef, inject, model, viewChild } from '@angular/core'; +import { FormsModule } from '@angular/forms'; +import { HashMap, provideTranslocoScope, Translation, TranslocoPipe } from '@jsverse/transloco'; +import { getState } from '@ngrx/signals'; +import { toast } from 'ngx-sonner'; + +import { globalConfig, login, setGlobalConfig } from '@sinequa/atomic'; +import { ApplicationService, PrincipalStore } from '@sinequa/atomic-angular'; + +const loader = ['en', 'fr'].reduce( + (acc, lang) => { + acc[lang] = () => import(`./i18n/${lang}.json`); + return acc; + }, + {} as HashMap<() => Promise> +); + +@Component({ + selector: 'override-user-dialog', + standalone: true, + imports: [FormsModule, TranslocoPipe], + providers: [provideTranslocoScope({ scope: 'dialog', loader })], + template: ` + +
      +

      {{ 'dialog.overrideUser.title' | transloco }}

      +
      + + + + + +
      + + + +
      +
      +
      + ` +}) +export class OverrideUserDialogComponent { + readonly dialog = viewChild('dialog'); + + private readonly appService = inject(ApplicationService); + private readonly principalStore = inject(PrincipalStore); + + readonly overrideUser = model<{ username: string; domain: string }>({ username: '', domain: '' }); + + showModal() { + this.dialog()!.nativeElement.showModal(); + } + + override() { + if (!!this.overrideUser().domain && !!this.overrideUser().username) { + this.handleOverrideUser(this.overrideUser().username, this.overrideUser().domain); + this.dialog()!.nativeElement.close(); + } + } + + handleOverrideUser(username?: string, domain?: string) { + const { useSSO } = globalConfig; + + if (username === undefined || domain === undefined) { + setGlobalConfig({ userOverrideActive: false, userOverride: undefined }); + } else { + setGlobalConfig({ userOverrideActive: true, userOverride: { username, domain } }); + } + + // Login with the new user + if (useSSO) { + this.appService + .init() + .then(() => { + const { fullName } = getState(this.principalStore).principal; + toast(`Welcome back ${fullName}!`, { duration: 2000 }); + }) + .catch(error => { + toast.error('An error occured while overriding (SSO - intialize)', { duration: 2000 }); + setGlobalConfig({ userOverrideActive: false, userOverride: undefined }); + }); + } else { + login() + .then(value => { + if (value) { + this.appService + .init() + .then(() => { + const { fullName } = getState(this.principalStore).principal; + toast(`Welcome back ${fullName}!`, { duration: 2000 }); + }) + .catch(error => { + toast.error('An error occured while overriding (initialize)', { duration: 2000 }); + setGlobalConfig({ userOverrideActive: false, userOverride: undefined }); + }); + } + }) + .catch(error => { + toast.error('An error occured while overriding (login)', { duration: 2000 }); + setGlobalConfig({ userOverrideActive: false, userOverride: undefined }); + }); + } + } +} diff --git a/src/core/features/dialog/reset-user-settings.ts b/src/core/features/dialog/reset-user-settings.ts index 37f59764..4d94393d 100644 --- a/src/core/features/dialog/reset-user-settings.ts +++ b/src/core/features/dialog/reset-user-settings.ts @@ -1,58 +1,57 @@ -import { Component, ElementRef, inject, viewChild } from "@angular/core"; -import { FormsModule } from "@angular/forms"; -import { HashMap, provideTranslocoScope, Translation, TranslocoPipe, TranslocoService } from "@jsverse/transloco"; -import { UserSettingsStore } from "@sinequa/atomic-angular"; -import { toast } from "ngx-sonner"; - -const loader = ['en', 'fr'].reduce((acc, lang) => { - acc[lang] = () => import(`./i18n/${lang}.json`); - return acc; -}, {} as HashMap<() => Promise>) - -@Component({ - selector: 'reset-user-settings-dialog', - standalone: true, - imports: [FormsModule, TranslocoPipe], - providers: [provideTranslocoScope({ scope: "dialog", loader })], - template: ` - -
      -

      {{ 'dialog.resetUserSettings.title' | transloco }}

      -
      -

      {{ 'dialog.resetUserSettings.message' | transloco }}

      - -
      - - - -
      -
      -
      -` -}) -export class ResetUserSettingsDialogComponent { - readonly dialog = viewChild('dialog'); - - private readonly userSettingsStore = inject(UserSettingsStore); - private readonly translocoService = inject(TranslocoService); - - showModal() { - this.dialog()!.nativeElement.showModal(); - } - - handleResetUserSettings() { - this.dialog()!.nativeElement.close(); - this.userSettingsStore.reset().then(() => { - const message = this.translocoService.translate('dialog.resetUserSettings.success'); - toast.success(message, { duration: 2000 }); - }); - } - -} \ No newline at end of file +import { Component, ElementRef, inject, viewChild } from '@angular/core'; +import { FormsModule } from '@angular/forms'; +import { HashMap, provideTranslocoScope, Translation, TranslocoPipe, TranslocoService } from '@jsverse/transloco'; +import { UserSettingsStore } from '@sinequa/atomic-angular'; +import { toast } from 'ngx-sonner'; + +const loader = ['en', 'fr'].reduce( + (acc, lang) => { + acc[lang] = () => import(`./i18n/${lang}.json`); + return acc; + }, + {} as HashMap<() => Promise> +); + +@Component({ + selector: 'reset-user-settings-dialog', + standalone: true, + imports: [FormsModule, TranslocoPipe], + providers: [provideTranslocoScope({ scope: 'dialog', loader })], + template: ` + +
      +

      {{ 'dialog.resetUserSettings.title' | transloco }}

      +
      +

      {{ 'dialog.resetUserSettings.message' | transloco }}

      + +
      + + + +
      +
      +
      + ` +}) +export class ResetUserSettingsDialogComponent { + readonly dialog = viewChild('dialog'); + + private readonly userSettingsStore = inject(UserSettingsStore); + private readonly translocoService = inject(TranslocoService); + + showModal() { + this.dialog()!.nativeElement.showModal(); + } + + handleResetUserSettings() { + this.dialog()!.nativeElement.close(); + this.userSettingsStore.reset().then(() => { + const message = this.translocoService.translate('dialog.resetUserSettings.success'); + toast.success(message, { duration: 2000 }); + }); + } +} diff --git a/src/core/features/did-you-mean/did-you-mean.component.html b/src/core/features/did-you-mean/did-you-mean.component.html index 187d535f..67aca376 100644 --- a/src/core/features/did-you-mean/did-you-mean.component.html +++ b/src/core/features/did-you-mean/did-you-mean.component.html @@ -9,7 +9,7 @@ @case ('correct') {

      {{ 'didYouMean.showingResultsFor' | transloco }} - {{ correction() }} + {{ correction() }} . {{ 'didYouMean.searchInsteadFor' | transloco }} {{ original() }} @@ -21,7 +21,7 @@ {{ original() }} and - {{ correction() }} + {{ correction() }}

      } -} \ No newline at end of file +} diff --git a/src/core/features/did-you-mean/did-you-mean.component.ts b/src/core/features/did-you-mean/did-you-mean.component.ts index 9484c4f5..484abda4 100644 --- a/src/core/features/did-you-mean/did-you-mean.component.ts +++ b/src/core/features/did-you-mean/did-you-mean.component.ts @@ -5,21 +5,26 @@ import { HashMap, Translation, TranslocoPipe, provideTranslocoScope } from '@jsv import { Result } from '@sinequa/atomic'; import { QueryParamsStore } from '@sinequa/atomic-angular'; -const loader = ['en', 'fr'].reduce((acc, lang) => { - acc[lang] = () => import(`./i18n/${lang}.json`); - return acc; -}, {} as HashMap<() => Promise>) +const loader = ['en', 'fr'].reduce( + (acc, lang) => { + acc[lang] = () => import(`./i18n/${lang}.json`); + return acc; + }, + {} as HashMap<() => Promise> +); @Component({ selector: 'app-did-you-mean', standalone: true, imports: [RouterModule, TranslocoPipe], templateUrl: './did-you-mean.component.html', - styles: [` - :host { - display: block; - } - `], + styles: [ + ` + :host { + display: block; + } + ` + ], providers: [provideTranslocoScope({ scope: 'did-you-mean', loader })] }) export class DidYouMeanComponent { @@ -33,12 +38,12 @@ export class DidYouMeanComponent { private readonly queryParamsStore = inject(QueryParamsStore); selectCorrected(): void { - this.queryParamsStore.patch({ spellingCorrectionMode: "dymonly", text: this.correction()! }); - this.router.navigate([], { queryParamsHandling: 'merge', queryParams: { c: "dymonly", q: this.correction() } }) + this.queryParamsStore.patch({ spellingCorrectionMode: 'dymonly', text: this.correction()! }); + this.router.navigate([], { queryParamsHandling: 'merge', queryParams: { c: 'dymonly', q: this.correction() } }); } selectOriginal(): void { - this.queryParamsStore.patch({ spellingCorrectionMode: "dymonly" }); - this.router.navigate([], { queryParamsHandling: 'merge', queryParams: { c: "dymonly", q: this.original() } }) + this.queryParamsStore.patch({ spellingCorrectionMode: 'dymonly' }); + this.router.navigate([], { queryParamsHandling: 'merge', queryParams: { c: 'dymonly', q: this.original() } }); } } diff --git a/src/core/features/login/login.component.html b/src/core/features/login/login.component.html index 7dd7e862..876751f8 100644 --- a/src/core/features/login/login.component.html +++ b/src/core/features/login/login.component.html @@ -1,4 +1,4 @@ -
      +
      + xml:space="preserve"> - @if(authenticated()) { -

      - Welcome back, {{ user()?.fullName }} -

      -

      You are logged in

      + @if (authenticated()) { +

      Welcome back, {{ user()?.fullName }}

      +

      You are logged in

      }
      - @if(!authenticated()){ + @if (!authenticated()) {
      - @if(!config.autoOAuthProvider && !config.autoSAMLProvider) { + @if (!config.autoOAuthProvider && !config.autoSAMLProvider) {
      - + + (keydown.enter)="handleLoginWithCredentials()" />
      - +
      + (keydown.enter)="handleLoginWithCredentials()" />
      - } - @else { + } @else { }
      - } - @else { + } @else { + class="hover:bg-slate/90 btn-primary inline-flex h-10 w-full items-center justify-center whitespace-nowrap rounded-md bg-black px-4 py-2 text-sm font-medium text-white ring-offset-slate-400 transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50" + type="submit"> + {{ 'login.disconnect' | transloco }} + {{ 'login.back' | transloco }} + class="border-input mt-2 inline-flex h-10 w-full items-center justify-center whitespace-nowrap rounded-md border px-4 py-2 text-sm font-medium ring-offset-slate-400 transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50" + >{{ 'login.back' | transloco }} }
      -
      \ No newline at end of file +
      diff --git a/src/core/features/login/login.component.ts b/src/core/features/login/login.component.ts index e487e1e7..9dc083fe 100644 --- a/src/core/features/login/login.component.ts +++ b/src/core/features/login/login.component.ts @@ -1,156 +1,163 @@ -import { Component, OnDestroy, computed, effect, inject, signal } from '@angular/core'; -import { FormsModule } from '@angular/forms'; -import { ActivatedRoute, Router, RouterModule } from '@angular/router'; -import { HashMap, Translation, TranslocoPipe, TranslocoService, provideTranslocoScope } from '@jsverse/transloco'; -import { toast } from 'ngx-sonner'; -import { Subscription, fromEvent } from 'rxjs'; - -import { Credentials, Principal, globalConfig, isAuthenticated, login, logout } from '@sinequa/atomic'; -import { ApplicationService, PrincipalService } from '@sinequa/atomic-angular'; - -const loader = ['en', 'fr'].reduce((acc, lang) => { - acc[lang] = () => import(`./i18n/${lang}.json`); - return acc; -}, {} as HashMap<() => Promise>) - -/** - * Represents the LoginComponent class, which is responsible for handling the login functionality. - * This component is used to authenticate users and manage the user's authentication status. - */ -@Component({ - selector: 'sq-login', - standalone: true, - imports: [RouterModule, FormsModule, TranslocoPipe], - templateUrl: "./login.component.html", - styles: [` - :host { - min-height: 100vh; - display: flex; - justify-content: center; - align-items: center; - padding: 2rem; - } - .btn-primary { - background-color: black; - color: white; - } - `], - providers: [provideTranslocoScope({ scope: "login", loader })] -}) -export class LoginComponent implements OnDestroy { - - config = globalConfig; - - /** - * Represents the user credentials for login. - */ - credentials = signal({ username: '', password: '' }) - - readonly authenticated = signal(false); - readonly user = signal(null); - readonly returnUrl = signal(null); - - private readonly router = inject(Router); - private readonly route = inject(ActivatedRoute); - private readonly principalService = inject(PrincipalService); - protected readonly appService = inject(ApplicationService); - private readonly translocoService = inject(TranslocoService); - - - - private sub = new Subscription(); - - /** - * Indicates whether the login credentials are valid. - * Returns true if both the username and password are non-empty, otherwise false. - */ - valid = computed(() => this.credentials().username.length > 0 && this.credentials().password.length > 0); - - constructor() { - this.authenticated.set(isAuthenticated()); - - effect(() => { - if (this.authenticated()) { - this.sub.add(this.principalService.getPrincipal().subscribe((principal) => this.user.set(principal))) - } - }) - - effect(() => { - if (this.returnUrl() !== null) { - const [url] = this.returnUrl() || ["/"]; - this.router.navigateByUrl(url); - } - }) - - this.sub.add(fromEvent(document, 'authenticated').subscribe((event) => { - const response = event as CustomEvent; - this.authenticated.set(response.detail.authenticated); - const url = this.route.snapshot.queryParams['returnUrl'] || null; - - if (url !== null) { - this.returnUrl.set([url]); - } - - if (isAuthenticated()) { - if (url !== null) { - this.router.navigateByUrl(url); - } else { - this.router.navigateByUrl("/"); - } - } - })); - } - - ngOnDestroy(): void { - this.sub.unsubscribe(); - } - - /** - * Updates the credentials with the provided values. - * @param credentials - An object containing the username and password. - */ - updateCredentials(credentials: { username?: string, password?: string }) { - this.credentials.update(v => ({ ...v, ...credentials })); - } - - async handleLogout() { - await logout(); - this.authenticated.set(false); - } - - /** - * Handles the login process without credentials. - * This method calls the login function asynchronously. - */ - async handleLogin() { - login().catch((error) => { - { - console.warn("An error occurred while logging in", error); - this.router.navigate(['error']) - } - }); - } - - /** - * Handles the login process with credentials. - * Calls the login function with the provided credentials and handles any errors that occur. - */ - async handleLoginWithCredentials() { - if (!this.valid()) return; - - this.appService.autoLogin({credentials: this.credentials()}).then((value) => { - this.router.navigateByUrl(this.route.snapshot.queryParams['returnUrl'] || '/'); - }).catch((e) => { - if (e instanceof Error) { - console.error(e.message); - } - if (e instanceof Response) { - console.error(e.statusText); - } - if (e.status === 401 && e instanceof Response === false) { - const message = this.translocoService.translate('login.invalidCredentials'); - toast.error(message, { duration: 2000 }); - } - }); - } -} +import { Component, OnDestroy, computed, effect, inject, signal } from '@angular/core'; +import { FormsModule } from '@angular/forms'; +import { ActivatedRoute, Router, RouterModule } from '@angular/router'; +import { HashMap, Translation, TranslocoPipe, TranslocoService, provideTranslocoScope } from '@jsverse/transloco'; +import { toast } from 'ngx-sonner'; +import { Subscription, fromEvent } from 'rxjs'; + +import { Credentials, Principal, globalConfig, isAuthenticated, login, logout } from '@sinequa/atomic'; +import { ApplicationService, PrincipalService } from '@sinequa/atomic-angular'; + +const loader = ['en', 'fr'].reduce( + (acc, lang) => { + acc[lang] = () => import(`./i18n/${lang}.json`); + return acc; + }, + {} as HashMap<() => Promise> +); + +/** + * Represents the LoginComponent class, which is responsible for handling the login functionality. + * This component is used to authenticate users and manage the user's authentication status. + */ +@Component({ + selector: 'sq-login', + standalone: true, + imports: [RouterModule, FormsModule, TranslocoPipe], + templateUrl: './login.component.html', + styles: [ + ` + :host { + min-height: 100vh; + display: flex; + justify-content: center; + align-items: center; + padding: 2rem; + } + .btn-primary { + background-color: black; + color: white; + } + ` + ], + providers: [provideTranslocoScope({ scope: 'login', loader })] +}) +export class LoginComponent implements OnDestroy { + config = globalConfig; + + /** + * Represents the user credentials for login. + */ + credentials = signal({ username: '', password: '' }); + + readonly authenticated = signal(false); + readonly user = signal(null); + readonly returnUrl = signal(null); + + private readonly router = inject(Router); + private readonly route = inject(ActivatedRoute); + private readonly principalService = inject(PrincipalService); + protected readonly appService = inject(ApplicationService); + private readonly translocoService = inject(TranslocoService); + + private sub = new Subscription(); + + /** + * Indicates whether the login credentials are valid. + * Returns true if both the username and password are non-empty, otherwise false. + */ + valid = computed(() => this.credentials().username.length > 0 && this.credentials().password.length > 0); + + constructor() { + this.authenticated.set(isAuthenticated()); + + effect(() => { + if (this.authenticated()) { + this.sub.add(this.principalService.getPrincipal().subscribe(principal => this.user.set(principal))); + } + }); + + effect(() => { + if (this.returnUrl() !== null) { + const [url] = this.returnUrl() || ['/']; + this.router.navigateByUrl(url); + } + }); + + this.sub.add( + fromEvent(document, 'authenticated').subscribe(event => { + const response = event as CustomEvent; + this.authenticated.set(response.detail.authenticated); + const url = this.route.snapshot.queryParams['returnUrl'] || null; + + if (url !== null) { + this.returnUrl.set([url]); + } + + if (isAuthenticated()) { + if (url !== null) { + this.router.navigateByUrl(url); + } else { + this.router.navigateByUrl('/'); + } + } + }) + ); + } + + ngOnDestroy(): void { + this.sub.unsubscribe(); + } + + /** + * Updates the credentials with the provided values. + * @param credentials - An object containing the username and password. + */ + updateCredentials(credentials: { username?: string; password?: string }) { + this.credentials.update(v => ({ ...v, ...credentials })); + } + + async handleLogout() { + await logout(); + this.authenticated.set(false); + } + + /** + * Handles the login process without credentials. + * This method calls the login function asynchronously. + */ + async handleLogin() { + login().catch(error => { + { + console.warn('An error occurred while logging in', error); + this.router.navigate(['error']); + } + }); + } + + /** + * Handles the login process with credentials. + * Calls the login function with the provided credentials and handles any errors that occur. + */ + async handleLoginWithCredentials() { + if (!this.valid()) return; + + this.appService + .autoLogin({ credentials: this.credentials() }) + .then(value => { + this.router.navigateByUrl(this.route.snapshot.queryParams['returnUrl'] || '/'); + }) + .catch(e => { + if (e instanceof Error) { + console.error(e.message); + } + if (e instanceof Response) { + console.error(e.statusText); + } + if (e.status === 401 && e instanceof Response === false) { + const message = this.translocoService.translate('login.invalidCredentials'); + toast.error(message, { duration: 2000 }); + } + }); + } +} diff --git a/src/core/features/recent-searches/recent-search.component.ts b/src/core/features/recent-searches/recent-search.component.ts index 24e03532..a37f158a 100644 --- a/src/core/features/recent-searches/recent-search.component.ts +++ b/src/core/features/recent-searches/recent-search.component.ts @@ -1,75 +1,73 @@ -import { Component, computed, inject, input, output } from "@angular/core"; -import { Router, RouterLink } from "@angular/router"; -import { TranslocoPipe, TranslocoService } from "@jsverse/transloco"; -import { getRelativeDate, QueryParams } from "@sinequa/atomic"; -import { RecentSearch } from "@sinequa/atomic-angular"; - -@Component({ - selector: 'RecentSearch', - standalone: true, - imports: [RouterLink, TranslocoPipe], - template: ` -
    • - - -

      {{ recentSearch().display || recentSearch().label }}

      - - @if ((recentSearch().filterCount ?? 0) > 0) { - - } - - @if (recentSearch().date) { -

      - {{ getRelativeDate(transloco.getActiveLang(), recentSearch().date) }} -

      - } - - -
    • -` -}) -export class RecentSearchComponent { - protected readonly getRelativeDate = getRelativeDate; - - remove = output(); - - recentSearch = input.required(); - queryParams = computed(() => { - const { text, filters = [], tab, page, queryName } = this.recentSearch().queryParams || {} as QueryParams; - - const queryParams = { - q: text, - f: filters.length > 0 ? JSON.stringify(filters) : undefined, - t: tab, - p: page, - queryName - }; - return queryParams; - }); - - protected readonly transloco = inject(TranslocoService); - private readonly router = inject(Router); - - - onKeyDown() { - // this.queryParamsStore.setFromUrl(queryParams); - this.router.navigate([this.recentSearch().path], { queryParams: this.queryParams() }); - } -} \ No newline at end of file +import { Component, computed, inject, input, output } from '@angular/core'; +import { Router, RouterLink } from '@angular/router'; +import { TranslocoPipe, TranslocoService } from '@jsverse/transloco'; +import { getRelativeDate, QueryParams } from '@sinequa/atomic'; +import { RecentSearch } from '@sinequa/atomic-angular'; + +@Component({ + selector: 'RecentSearch', + standalone: true, + imports: [RouterLink, TranslocoPipe], + template: ` +
    • + + +

      {{ recentSearch().display || recentSearch().label }}

      + + @if ((recentSearch().filterCount ?? 0) > 0) { + + } + + @if (recentSearch().date) { +

      + {{ getRelativeDate(transloco.getActiveLang(), recentSearch().date) }} +

      + } + + +
    • + ` +}) +export class RecentSearchComponent { + protected readonly getRelativeDate = getRelativeDate; + + remove = output(); + + recentSearch = input.required(); + queryParams = computed(() => { + const { text, filters = [], tab, page, queryName } = this.recentSearch().queryParams || ({} as QueryParams); + + const queryParams = { + q: text, + f: filters.length > 0 ? JSON.stringify(filters) : undefined, + t: tab, + p: page, + queryName + }; + return queryParams; + }); + + protected readonly transloco = inject(TranslocoService); + private readonly router = inject(Router); + + onKeyDown() { + // this.queryParamsStore.setFromUrl(queryParams); + this.router.navigate([this.recentSearch().path], { queryParams: this.queryParams() }); + } +} diff --git a/src/core/features/recent-searches/recent-searches.component.html b/src/core/features/recent-searches/recent-searches.component.html index b1a28c61..2168fe90 100644 --- a/src/core/features/recent-searches/recent-searches.component.html +++ b/src/core/features/recent-searches/recent-searches.component.html @@ -1,22 +1,15 @@
        @for (recentSearch of paginatedRecentSearches(); track $index) { - } - - @empty { -
      • + } @empty { +
      • {{ 'recentSearches.noRecentSearches' | transloco }}
      • }
      @if (hasMore()) { - -} \ No newline at end of file +} diff --git a/src/core/features/recent-searches/recent-searches.component.scss b/src/core/features/recent-searches/recent-searches.component.scss index 354d466c..595cf6ed 100644 --- a/src/core/features/recent-searches/recent-searches.component.scss +++ b/src/core/features/recent-searches/recent-searches.component.scss @@ -1,3 +1,3 @@ :host { scrollbar-width: thin; -} \ No newline at end of file +} diff --git a/src/core/features/recent-searches/recent-searches.component.ts b/src/core/features/recent-searches/recent-searches.component.ts index 8f6ad4b2..6c6ab256 100644 --- a/src/core/features/recent-searches/recent-searches.component.ts +++ b/src/core/features/recent-searches/recent-searches.component.ts @@ -4,12 +4,15 @@ import { toast } from 'ngx-sonner'; import { getRelativeDate } from '@sinequa/atomic'; import { RecentSearch, UserSettingsStore } from '@sinequa/atomic-angular'; -import { RecentSearchComponent } from "./recent-search.component"; +import { RecentSearchComponent } from './recent-search.component'; -const loader = ['en', 'fr'].reduce((acc, lang) => { - acc[lang] = () => import(`./i18n/${lang}.json`); - return acc; -}, {} as HashMap<() => Promise>); +const loader = ['en', 'fr'].reduce( + (acc, lang) => { + acc[lang] = () => import(`./i18n/${lang}.json`); + return acc; + }, + {} as HashMap<() => Promise> +); const RECENT_SEARCHES_ITEMS_PER_PAGE = 5; @@ -49,4 +52,4 @@ export class RecentSearchesComponent { e.stopPropagation(); this.range.set(this.range() + RECENT_SEARCHES_ITEMS_PER_PAGE); } -} \ No newline at end of file +} diff --git a/src/core/features/saved-searches/saved-searches.component.html b/src/core/features/saved-searches/saved-searches.component.html index 1eb17523..e0b2ea4b 100644 --- a/src/core/features/saved-searches/saved-searches.component.html +++ b/src/core/features/saved-searches/saved-searches.component.html @@ -1,11 +1,10 @@
        @for (search of paginatedSearches(); track $index) {
      • + (keydown.enter)="onClick(search)">

        {{ search.label }}

        @@ -14,42 +13,34 @@ } @if (search.date) { -

        +

        {{ getRelativeDate(transloco.getActiveLang(), search.date) }}

        }
      • - } - - @empty { -
      • + } @empty { +
      • {{ 'savedSearches.noSavedSearches' | transloco }}
      • }
      @if (hasMore()) { - } diff --git a/src/core/features/saved-searches/saved-searches.component.scss b/src/core/features/saved-searches/saved-searches.component.scss index 354d466c..595cf6ed 100644 --- a/src/core/features/saved-searches/saved-searches.component.scss +++ b/src/core/features/saved-searches/saved-searches.component.scss @@ -1,3 +1,3 @@ :host { scrollbar-width: thin; -} \ No newline at end of file +} diff --git a/src/core/features/saved-searches/saved-searches.component.ts b/src/core/features/saved-searches/saved-searches.component.ts index 5d532b50..8f6f9d9e 100644 --- a/src/core/features/saved-searches/saved-searches.component.ts +++ b/src/core/features/saved-searches/saved-searches.component.ts @@ -7,7 +7,6 @@ import { toast } from 'ngx-sonner'; import { SavedSearch as S, SavedSearchesService } from '@sinequa/atomic-angular'; import { getQueryParamsFromUrl, getRelativeDate, QueryParams } from '@sinequa/atomic'; -import { StopPropagationDirective } from 'toolkit'; const SAVED_SEARCHES_ITEMS_PER_PAGE = 5; @@ -16,18 +15,20 @@ type SavedSearch = S & { filterCount?: number; date?: string; queryParams?: QueryParams; -} - -const loader = ['en', 'fr'].reduce((acc, lang) => { - acc[lang] = () => import(`./i18n/${lang}.json`); - return acc; -}, {} as HashMap<() => Promise>); +}; +const loader = ['en', 'fr'].reduce( + (acc, lang) => { + acc[lang] = () => import(`./i18n/${lang}.json`); + return acc; + }, + {} as HashMap<() => Promise> +); @Component({ selector: 'app-saved-searches', standalone: true, - imports: [NgClass, StopPropagationDirective, TranslocoPipe], + imports: [NgClass, TranslocoPipe], templateUrl: './saved-searches.component.html', styleUrl: './saved-searches.component.scss', // eslint-disable-next-line @angular-eslint/no-host-metadata-property @@ -49,34 +50,36 @@ export class SavedSearchesComponent { protected readonly transloco = inject(TranslocoService); constructor() { - effect(() => { - const savedSearches = this.savedSearchesService.getSavedSearches(); - - this.savedSearches.set( - (savedSearches || []).reduce((acc, savedSearch) => { - const queryParams = getQueryParamsFromUrl(savedSearch.url); - - acc.push( - Object.assign(savedSearch, { - label: queryParams?.text || '', - filterCount: queryParams?.filters?.length || 0, - queryParams - }) - ); - - return acc; - }, [] as SavedSearch[]) - ); - }, { allowSignalWrites: true }); + effect( + () => { + const savedSearches = this.savedSearchesService.getSavedSearches(); + + this.savedSearches.set( + (savedSearches || []).reduce((acc, savedSearch) => { + const queryParams = getQueryParamsFromUrl(savedSearch.url); + + acc.push( + Object.assign(savedSearch, { + label: queryParams?.text || '', + filterCount: queryParams?.filters?.length || 0, + queryParams + }) + ); + + return acc; + }, [] as SavedSearch[]) + ); + }, + { allowSignalWrites: true } + ); } public onClick(savedSearch: SavedSearch): void { const queryParams = { q: savedSearch.queryParams?.text - } as { q: string, f?: string }; + } as { q: string; f?: string }; - if (savedSearch.queryParams?.filters && savedSearch.queryParams?.filters?.length > 0) - queryParams.f = JSON.stringify(savedSearch.queryParams?.filters); + if (savedSearch.queryParams?.filters && savedSearch.queryParams?.filters?.length > 0) queryParams.f = JSON.stringify(savedSearch.queryParams?.filters); this.router.navigate([savedSearch.queryParams?.path], { queryParams }); } diff --git a/src/core/features/sort-selector/sort-selector.component.html b/src/core/features/sort-selector/sort-selector.component.html index b5bf42ad..481b88eb 100644 --- a/src/core/features/sort-selector/sort-selector.component.html +++ b/src/core/features/sort-selector/sort-selector.component.html @@ -1,27 +1,19 @@ - -
    -@if (hasMore()) { - + } + - {{ 'loadMore' | transloco }} - -} + [attr.title]="'seeMore' | transloco" + [routerLink]="['/bookmarks']" + > + {{ 'seeMore' | transloco }} + + diff --git a/src/core/features/bookmarks/list/bookmarks-list.component.ts b/src/core/features/bookmarks/list/bookmarks-list.component.ts index 4ce5af8c..6e203e21 100644 --- a/src/core/features/bookmarks/list/bookmarks-list.component.ts +++ b/src/core/features/bookmarks/list/bookmarks-list.component.ts @@ -4,8 +4,9 @@ import { toast } from 'ngx-sonner'; import { LegacyFilter, Query } from '@sinequa/atomic'; import { Bookmark, DrawerStackService, QueryService, UserSettingsStore } from '@sinequa/atomic-angular'; +import { RouterModule } from '@angular/router'; -const BOOKMARKS_ITEMS_PER_PAGE = 5; +const BOOKMARKS_ITEMS_PER_PAGE = 10; const loader = ['en', 'fr'].reduce( (acc, lang) => { @@ -16,9 +17,9 @@ const loader = ['en', 'fr'].reduce( ); @Component({ - selector: 'app-bookmarks-list', - standalone: true, - imports: [TranslocoPipe], + selector: 'BookmarksList', + standalone: true, + imports: [TranslocoPipe, RouterModule], templateUrl: './bookmarks-list.component.html', styleUrl: './bookmarks-list.component.scss', // eslint-disable-next-line @angular-eslint/no-host-metadata-property From afebfcf34dee52dd90c33c9f6942055380f216d1 Mon Sep 17 00:00:00 2001 From: Leibfried Date: Mon, 10 Feb 2025 08:51:33 +0100 Subject: [PATCH 044/658] ES-25347 #done update preview zooming to try remaining at the same spot (#165) * update preview zooming to try remaining at the same spot --- src/assets/preview.js | 30 +++++++++++++++++++++--------- 1 file changed, 21 insertions(+), 9 deletions(-) diff --git a/src/assets/preview.js b/src/assets/preview.js index bd2ac2e8..5ce23615 100644 --- a/src/assets/preview.js +++ b/src/assets/preview.js @@ -56,17 +56,18 @@ document.addEventListener("DOMContentLoaded", function () { init(event.origin, data.highlights); createWorker(data.appname); break; - case 'get-html':{ + case 'get-html': + { const html = getHtml(data.ids); returnMessage('get-html-results', html); break; - } + } case "get-html-webworker": - { - const html = getHtml(data.ids); - worker.postMessage({ id: data.id, extracts: html, previewData: data.previewData }); - break; - } + { + const html = getHtml(data.ids); + worker.postMessage({ id: data.id, extracts: html, previewData: data.previewData }); + break; + } case "get-text": getText(data.ids); break; @@ -87,15 +88,26 @@ document.addEventListener("DOMContentLoaded", function () { case "zoom-in": var factor = parseFloat(rs.getPropertyValue("--factor")); var max = Math.min(3, factor + 0.2); - r.style.setProperty("--factor", max); + zoom(max); break; case "zoom-out": var factor = parseFloat(rs.getPropertyValue("--factor")); var min = Math.max(0.2, factor - 0.2); - r.style.setProperty("--factor", min); + zoom(min); break; } } + function zoom(value) { + const elts = r.querySelectorAll('p'); + const firstVisibleElt = Array.from(elts).find(elt => { + const { top, bottom } = elt.getBoundingClientRect() + return bottom > 0 && top < window.innerHeight; + }); + r.style.setProperty("--factor", value); + if (firstVisibleElt) { + firstVisibleElt.scrollIntoView(); + } + } function returnMessage(type, data) { parent.postMessage( { type: type, data: data, url: window.location.href }, From a48d48278a02dc0390f1903702e3af9fcd7c7380 Mon Sep 17 00:00:00 2001 From: TOME Olivier Date: Mon, 10 Feb 2025 09:03:12 +0100 Subject: [PATCH 045/658] .prettierignore for vendor files Add js and css file in the prettier configuration Apply prettier configuration to all files --- .prettierignore | 2 + package.json | 4 +- .../pages/bookmarks/bookmarks.component.html | 67 +++-- .../pages/bookmarks/bookmarks.component.ts | 8 +- src/assets/preview.css | 10 +- src/assets/preview.js | 258 ++++++++---------- src/assets/worker.js | 131 +++++---- .../list/bookmarks-list.component.html | 14 +- .../list/bookmarks-list.component.ts | 2 +- src/polyfills.js | 2 +- 10 files changed, 231 insertions(+), 267 deletions(-) create mode 100644 .prettierignore diff --git a/.prettierignore b/.prettierignore new file mode 100644 index 00000000..f35ebf87 --- /dev/null +++ b/.prettierignore @@ -0,0 +1,2 @@ +# Ignore vendored files +src/assets/vendors/**/* \ No newline at end of file diff --git a/package.json b/package.json index 7867bf3e..98576e81 100644 --- a/package.json +++ b/package.json @@ -15,8 +15,8 @@ "docs:ci": "cd docusaurus && npm ci", "docs:build": "cd docusaurus && npm run build", "docs:build-internal": "cd docusaurus && npm run build-internal", - "prettier:check": "prettier --config .prettierrc --check src/**/*.{ts,html,scss,json}", - "prettier:write": "prettier --config .prettierrc --write src/**/*.{ts,html,scss,json}", + "prettier:check": "prettier --config .prettierrc --check src/**/*.{js,ts,html,scss,css,json}", + "prettier:write": "prettier --config .prettierrc --write src/**/*.{js,ts,html,scss,css,json}", "prepare": "husky" }, "lint-staged": { diff --git a/src/app/pages/bookmarks/bookmarks.component.html b/src/app/pages/bookmarks/bookmarks.component.html index d4d6d614..86bf3c91 100644 --- a/src/app/pages/bookmarks/bookmarks.component.html +++ b/src/app/pages/bookmarks/bookmarks.component.html @@ -1,40 +1,37 @@ + diff --git a/src/app/pages/bookmarks/bookmarks.component.ts b/src/app/pages/bookmarks/bookmarks.component.ts index a87f11ab..55d4f79e 100644 --- a/src/app/pages/bookmarks/bookmarks.component.ts +++ b/src/app/pages/bookmarks/bookmarks.component.ts @@ -32,9 +32,7 @@ export class BookmarksComponent { private readonly sub = new Subscription(); constructor() { - this.sub.add( - this.drawerStack.isOpened.subscribe(state => this.drawerOpened.set(state)) - ); + this.sub.add(this.drawerStack.isOpened.subscribe(state => this.drawerOpened.set(state))); effect(() => { if (this.bookmarks().length) { @@ -49,7 +47,7 @@ export class BookmarksComponent { const query: Partial = { name: bookmark.queryName, filters: { - field: "id", + field: 'id', value: bookmark.id } as LegacyFilter }; @@ -69,4 +67,4 @@ export class BookmarksComponent { this.userSettingsStore.unbookmark(bookmark.id); toast.success('Bookmark removed', { duration: 2000 }); } -} +} diff --git a/src/assets/preview.css b/src/assets/preview.css index d53d2018..b0360110 100644 --- a/src/assets/preview.css +++ b/src/assets/preview.css @@ -47,7 +47,9 @@ body.bd { background-color: #eee; } body.bd > div.ph { - box-shadow: 0 4px 8px #0003, 0 6px 20px #00000030; + box-shadow: + 0 4px 8px #0003, + 0 6px 20px #00000030; } body.bd > div:not(.ph, .phe) { margin: 24px; @@ -56,7 +58,9 @@ body.bd > div:not(.ph, .phe) { body.bd > div:not(.ph, .phe) > img { background-color: #fff; border: 1px solid lightgrey; - box-shadow: 0 4px 8px #0003, 0 6px 20px #00000030; + box-shadow: + 0 4px 8px #0003, + 0 6px 20px #00000030; margin-bottom: 16px; margin-right: 16px; } @@ -72,4 +76,4 @@ body { width: calc(99% / var(--factor)); border: 0; transform-origin: 0 0; -} \ No newline at end of file +} diff --git a/src/assets/preview.js b/src/assets/preview.js index 5ce23615..2602e948 100644 --- a/src/assets/preview.js +++ b/src/assets/preview.js @@ -1,47 +1,41 @@ -document.addEventListener("DOMContentLoaded", function () { - var TRUSTED_ORIGINS = [ - "http://localhost:4200", - "https://localhost:4200", - window.origin, - ]; - var parentOrigin = "*"; +document.addEventListener('DOMContentLoaded', function () { + var TRUSTED_ORIGINS = ['http://localhost:4200', 'https://localhost:4200', window.origin]; + var parentOrigin = '*'; var styleElement; - var r = document.querySelector("body"); + var r = document.querySelector('body'); var rs = getComputedStyle(r); var passageHighlighter; setSvgBackgroundPositionAndSize(); - window.addEventListener("message", receiveMessage); - returnMessage("ready"); + window.addEventListener('message', receiveMessage); + returnMessage('ready'); var worker; function createWorker(appname) { - if (!appname) console.error("appname is required"); + if (!appname) console.error('appname is required'); if (window.Worker) { - console.log("Web Worker is supported"); + console.log('Web Worker is supported'); // Utilise une URL absolue pour le fichier worker.js - const path = (window.origin.includes("localhost")) - ?`${window.origin}/assets/worker.js` - :`${window.origin}/app/${appname}/assets/worker.js` + const path = window.origin.includes('localhost') ? `${window.origin}/assets/worker.js` : `${window.origin}/app/${appname}/assets/worker.js`; worker = new Worker(path); worker.onmessage = function (event) { window.parent.postMessage( { - type: "get-html-results-webworker", + type: 'get-html-results-webworker', data: event.data, - url: window.location.href, + url: window.location.href }, parentOrigin ); }; worker.onerror = function (error) { - console.error("Error from worker:", error); + console.error('Error from worker:', error); }; } } @@ -52,46 +46,44 @@ document.addEventListener("DOMContentLoaded", function () { } var data = event.data; switch (data.action) { - case "init": + case 'init': init(event.origin, data.highlights); createWorker(data.appname); break; - case 'get-html': - { - const html = getHtml(data.ids); - returnMessage('get-html-results', html); - break; - } - case "get-html-webworker": - { - const html = getHtml(data.ids); - worker.postMessage({ id: data.id, extracts: html, previewData: data.previewData }); - break; - } - case "get-text": + case 'get-html': { + const html = getHtml(data.ids); + returnMessage('get-html-results', html); + break; + } + case 'get-html-webworker': { + const html = getHtml(data.ids); + worker.postMessage({ id: data.id, extracts: html, previewData: data.previewData }); + break; + } + case 'get-text': getText(data.ids); break; - case "get-positions": + case 'get-positions': getPositions(data.highlight); break; - case "highlight": + case 'highlight': highlight(data.highlights); break; - case "select": + case 'select': select(data.id, data.usePassageHighlighter); break; - case "unselect": + case 'unselect': unselect(); break; - case "paging": + case 'paging': break; - case "zoom-in": - var factor = parseFloat(rs.getPropertyValue("--factor")); + case 'zoom-in': + var factor = parseFloat(rs.getPropertyValue('--factor')); var max = Math.min(3, factor + 0.2); zoom(max); break; - case "zoom-out": - var factor = parseFloat(rs.getPropertyValue("--factor")); + case 'zoom-out': + var factor = parseFloat(rs.getPropertyValue('--factor')); var min = Math.max(0.2, factor - 0.2); zoom(min); break; @@ -100,39 +92,36 @@ document.addEventListener("DOMContentLoaded", function () { function zoom(value) { const elts = r.querySelectorAll('p'); const firstVisibleElt = Array.from(elts).find(elt => { - const { top, bottom } = elt.getBoundingClientRect() + const { top, bottom } = elt.getBoundingClientRect(); return bottom > 0 && top < window.innerHeight; }); - r.style.setProperty("--factor", value); - if (firstVisibleElt) { - firstVisibleElt.scrollIntoView(); - } + r.style.setProperty('--factor', value); + if (firstVisibleElt) { + firstVisibleElt.scrollIntoView(); + } } function returnMessage(type, data) { - parent.postMessage( - { type: type, data: data, url: window.location.href }, - parentOrigin - ); + parent.postMessage({ type: type, data: data, url: window.location.href }, parentOrigin); } function init(origin, highlights) { parentOrigin = origin; - styleElement = document.createElement("style"); + styleElement = document.createElement('style'); document.head.appendChild(styleElement); - passageHighlighter = document.createElement("div"); - passageHighlighter.id = "sq-passage-highlighter"; - passageHighlighter.style.position = "absolute"; - passageHighlighter.style.display = "none"; + passageHighlighter = document.createElement('div'); + passageHighlighter.id = 'sq-passage-highlighter'; + passageHighlighter.style.position = 'absolute'; + passageHighlighter.style.display = 'none'; document.body.appendChild(passageHighlighter); - document.addEventListener("mouseup", function () { + document.addEventListener('mouseup', function () { return setTimeout(function () { return onMouseUp(); }); }); - document.addEventListener("mousemove", function (e) { + document.addEventListener('mousemove', function (e) { return onMouseMove(e); }); - window.addEventListener("scroll", function () { - return returnMessage("scroll", { x: window.scrollX, y: window.scrollY }); + window.addEventListener('scroll', function () { + return returnMessage('scroll', { x: window.scrollX, y: window.scrollY }); }); if (highlights) { highlight(highlights); @@ -150,18 +139,18 @@ document.addEventListener("DOMContentLoaded", function () { .map(function (highlight) { return ` span.${highlight.name} { - color: ${highlight.color || "black"}; - background-color: ${highlight.bgColor || "yellow"}; + color: ${highlight.color || 'black'}; + background-color: ${highlight.bgColor || 'yellow'}; } tspan.${highlight.name} { - fill: ${highlight.color || "black"}; + fill: ${highlight.color || 'black'}; } rect.${highlight.name} { - fill: ${highlight.bgColor || "yellow"}; + fill: ${highlight.bgColor || 'yellow'}; } `; }) - .join(""); + .join(''); } function select(id, usePassageHighlighter) { if (usePassageHighlighter === void 0) { @@ -174,21 +163,18 @@ document.addEventListener("DOMContentLoaded", function () { return box.width && box.height; }); (visibleElements[0] || elements[0]).scrollIntoView({ - block: "center", - behavior: "auto", + block: 'center', + behavior: 'auto' }); if (usePassageHighlighter) { selectPassage(visibleElements); } else { selectHighlight(elements); } - returnMessage( - "selected-position", - getVerticalPositions(visibleElements)[0] - ); + returnMessage('selected-position', getVerticalPositions(visibleElements)[0]); } function selectPassage(elements) { - passageHighlighter.style.display = "none"; + passageHighlighter.style.display = 'none'; var box = getBoundingBox(elements); if (box) { var margin = 4; @@ -196,28 +182,28 @@ document.addEventListener("DOMContentLoaded", function () { var top_1 = Math.max(0, box.top - margin); var right = box.right + margin; var bottom = box.bottom + margin; - passageHighlighter.style.left = "".concat(window.scrollX + left, "px"); - passageHighlighter.style.top = "".concat(window.scrollY + top_1, "px"); - passageHighlighter.style.width = right - left + "px"; - passageHighlighter.style.height = bottom - top_1 + "px"; - passageHighlighter.style.display = "block"; + passageHighlighter.style.left = ''.concat(window.scrollX + left, 'px'); + passageHighlighter.style.top = ''.concat(window.scrollY + top_1, 'px'); + passageHighlighter.style.width = right - left + 'px'; + passageHighlighter.style.height = bottom - top_1 + 'px'; + passageHighlighter.style.display = 'block'; } } function selectPassage2(elements) { - passageHighlighter.style.display = "none"; + passageHighlighter.style.display = 'none'; - elements[0].style.position = "relative"; - elements[0].style.display = "inline-block"; + elements[0].style.position = 'relative'; + elements[0].style.display = 'inline-block'; elements[0].append(passageHighlighter); // const rect = getBoundingBox(elements) // console.log("rect", rect); passageHighlighter.style.top = 0; passageHighlighter.style.left = 0; - passageHighlighter.style.width = "100%"; - passageHighlighter.style.height = "100%"; - passageHighlighter.style.zIndex = "1"; - passageHighlighter.style.display = "block"; // var box = getBoundingBox(elements); + passageHighlighter.style.width = '100%'; + passageHighlighter.style.height = '100%'; + passageHighlighter.style.zIndex = '1'; + passageHighlighter.style.display = 'block'; // var box = getBoundingBox(elements); } function selectHighlight(elements) { @@ -227,21 +213,21 @@ document.addEventListener("DOMContentLoaded", function () { if (el instanceof SVGElement) { selectHighlightSVG(el, first, last); } else { - el.classList.add("sq-current"); - if (first) el.classList.add("sq-first"); - if (last) el.classList.add("sq-last"); + el.classList.add('sq-current'); + if (first) el.classList.add('sq-first'); + if (last) el.classList.add('sq-last'); } }); } function unselect() { - removeAllClasses("sq-current"); - removeAllClasses("sq-first"); - removeAllClasses("sq-last"); - removeAllElements("svg line.sq-svg"); - passageHighlighter.style.display = "none"; + removeAllClasses('sq-current'); + removeAllClasses('sq-first'); + removeAllClasses('sq-last'); + removeAllElements('svg line.sq-svg'); + passageHighlighter.style.display = 'none'; } function getHtml(ids) { - if(!ids) return []; + if (!ids) return []; var data = ids.map(function (id) { return getHighlightHtmlById(id); }); @@ -251,49 +237,45 @@ document.addEventListener("DOMContentLoaded", function () { var data = ids.map(function (id) { return getHighlightTextById(id); }); - returnMessage("get-text-results", data); + returnMessage('get-text-results', data); } function getPositions(highlight) { - var allHighlights = Array.from( - document.querySelectorAll( - "span.".concat(highlight, ",tspan.").concat(highlight) - ) - ); + var allHighlights = Array.from(document.querySelectorAll('span.'.concat(highlight, ',tspan.').concat(highlight))); var data = getVerticalPositions(allHighlights); - returnMessage("get-positions-results", data); + returnMessage('get-positions-results', data); } function onMouseUp() { var selection = document.getSelection(); - var selectedText = selection ? selection.toString().trim() : ""; + var selectedText = selection ? selection.toString().trim() : ''; if (selection && selectedText) { var range = selection.getRangeAt(0); var position = range.getBoundingClientRect(); - returnMessage("text-selection", { + returnMessage('text-selection', { selectedText: selectedText, - position: position, + position: position }); } else { - returnMessage("text-selection"); + returnMessage('text-selection'); } } var currentId; function onMouseMove(event) { var el = event.target; - if (el.attributes["data-entity-display"] && el.id !== currentId) { + if (el.attributes['data-entity-display'] && el.id !== currentId) { currentId = el.id; - returnMessage("highlight-hover", { + returnMessage('highlight-hover', { id: el.id, - position: el.getBoundingClientRect(), + position: el.getBoundingClientRect() }); } else if (currentId && el.id !== currentId) { currentId = undefined; - returnMessage("highlight-hover"); + returnMessage('highlight-hover'); } } function setSvgBackgroundPositionAndSize() { - document.querySelectorAll("svg").forEach(function (svg) { - svg.querySelectorAll("tspan").forEach(function (tspan) { - var bgId = tspan.getAttribute("data-entity-background"); + document.querySelectorAll('svg').forEach(function (svg) { + svg.querySelectorAll('tspan').forEach(function (tspan) { + var bgId = tspan.getAttribute('data-entity-background'); if (bgId) { var rect = document.getElementById(bgId); if (rect) { @@ -314,15 +296,15 @@ document.addEventListener("DOMContentLoaded", function () { var deltaY = 2 * scaleY; var firstCharRect = tspan.getExtentOfChar(0); var tspanWidth = tspan.getComputedTextLength(); - rect.setAttribute("x", String(firstCharRect.x - deltaX)); - rect.setAttribute("y", String(firstCharRect.y - deltaY)); - rect.setAttribute("width", String(tspanWidth + 2 * deltaX)); - rect.setAttribute("height", String(textBoxSVG.height + 2 * deltaY)); - var valueTransform = text.getAttribute("transform"); - if (valueTransform) rect.setAttribute("transform", valueTransform); + rect.setAttribute('x', String(firstCharRect.x - deltaX)); + rect.setAttribute('y', String(firstCharRect.y - deltaY)); + rect.setAttribute('width', String(tspanWidth + 2 * deltaX)); + rect.setAttribute('height', String(textBoxSVG.height + 2 * deltaY)); + var valueTransform = text.getAttribute('transform'); + if (valueTransform) rect.setAttribute('transform', valueTransform); } function selectHighlightSVG(elt, isFirst, isLast) { - var bgId = elt.getAttribute("data-entity-background"); + var bgId = elt.getAttribute('data-entity-background'); if (!bgId) return; var rect = document.querySelector(bgId); if (!rect) return; @@ -333,47 +315,43 @@ document.addEventListener("DOMContentLoaded", function () { var bottom = rectPosition.y + rectPosition.height; var left = rectPosition.x; var right = rectPosition.x + rectPosition.width; - var valueTransform = rect.getAttribute("transform"); + var valueTransform = rect.getAttribute('transform'); addSvgLine(group, left, top_2, right, top_2, valueTransform); addSvgLine(group, left, bottom, right, bottom, valueTransform); if (isFirst) addSvgLine(group, left, top_2, left, bottom, valueTransform); - if (isLast) - addSvgLine(group, right, top_2, right, bottom, valueTransform); + if (isLast) addSvgLine(group, right, top_2, right, bottom, valueTransform); } } function addSvgLine(group, x1, y1, x2, y2, transform) { - var line = document.createElementNS("http://www.w3.org/2000/svg", "line"); - line.setAttribute("class", "sq-svg"); - line.setAttribute("x1", String(x1)); - line.setAttribute("y1", String(y1)); - line.setAttribute("x2", String(x2)); - line.setAttribute("y2", String(y2)); - if (transform) line.setAttribute("transform", transform); + var line = document.createElementNS('http://www.w3.org/2000/svg', 'line'); + line.setAttribute('class', 'sq-svg'); + line.setAttribute('x1', String(x1)); + line.setAttribute('y1', String(y1)); + line.setAttribute('x2', String(x2)); + line.setAttribute('y2', String(y2)); + if (transform) line.setAttribute('transform', transform); group.appendChild(line); } function getElementsById(id) { - return document.querySelectorAll("#".concat(id)); + return document.querySelectorAll('#'.concat(id)); } function getHighlightTextById(id) { - var text = ""; + var text = ''; getElementsById(id).forEach(function (n) { - return (text += n.textContent + " "); + return (text += n.textContent + ' '); }); return text; } function getHighlightHtmlById(id) { - var html = ""; + var html = ''; getElementsById(id).forEach(function (n) { - return (html += n.innerHTML + " "); + return (html += n.innerHTML + ' '); }); return html; } function getVerticalPositions(elements) { var offset = -document.documentElement.getBoundingClientRect().top; - var docHeight = Math.max( - document.documentElement.scrollHeight, - window.innerHeight - ); + var docHeight = Math.max(document.documentElement.scrollHeight, window.innerHeight); var groups = new Map(); for (var _i = 0, elements_1 = elements; _i < elements_1.length; _i++) { var el = elements_1[_i]; @@ -398,14 +376,14 @@ document.addEventListener("DOMContentLoaded", function () { .map(function (e) { return e.textContent; }) - .join(" "); - var type = id.substring(0, id.lastIndexOf("_")); + .join(' '); + var type = id.substring(0, id.lastIndexOf('_')); positions.push({ id: id, type: type, top: top_3, height: height, - text: text, + text: text }); } } @@ -449,7 +427,7 @@ document.addEventListener("DOMContentLoaded", function () { return new DOMRect(left, top, right - left, bottom - top); } function removeAllClasses(classname) { - var selected = document.querySelectorAll(".".concat(classname)); + var selected = document.querySelectorAll('.'.concat(classname)); selected.forEach(function (el) { return el.classList.remove(classname); }); diff --git a/src/assets/worker.js b/src/assets/worker.js index 041ba187..2bf2d8cb 100644 --- a/src/assets/worker.js +++ b/src/assets/worker.js @@ -1,68 +1,63 @@ -self.addEventListener("message", function (event) { - // Perform some computation or task - let result = getAllExtracts(event.data); - - // Send the result back to the main script - self.postMessage(result); -}); - -self.addEventListener("error", function (error) { - console.error("Error in worker:", error); -}); - -function getAllExtracts({ id, extracts, previewData }) { - // id : is the id of the record - // extracts : contains the html of extracts in chronological order - // data : contains the preview data of the record - - // when data is undefined, it means that the preview data is not available - // in this case, we return an empty array of extracts - if (!previewData) { - return; - } - - const type = previewData?.highlightsPerCategory?.["matchingpassages"]?.values.length - ? "matchingpassages" - : "extractslocations"; - - // extracts contains the html of extracts in chronological order - // locations contains the list of start positions sorted by score - const locations = - previewData.highlightsPerCategory[type]?.values[0]?.locations || []; - - // first extract all the extracts locations - let extractslocations = locations.map(function (l, relevanceIndex) { - return { - startIndex: l.start, - relevanceIndex, - }; - }); - - // sort them by start index - extractslocations.sort((a, b) => a.startIndex - b.startIndex); - - // then extract the text of each extract - extractslocations = extractslocations.map(function (ex, textIndex) { - return Object.assign(ex, { - textIndex: textIndex, - text: extracts[textIndex] || "", - id: `${type}_${textIndex}`, - }); - }); - - // remove empty extracts - const _extracts = extractslocations.filter( - (item) => item.text.trim().length > 0 - ); - - // finally sort them by relevance index - _extracts.sort((a, b) => a.relevanceIndex - b.relevanceIndex); - - // this is from DedicatedWorkerGlobalScope ( because of that we have postMessage and onmessage methods ) - // and it can't see methods of this class - // @ts-expect-error worker can't see methods of this class - return ({ - id, - extracts: _extracts, - }); -} +self.addEventListener('message', function (event) { + // Perform some computation or task + let result = getAllExtracts(event.data); + + // Send the result back to the main script + self.postMessage(result); +}); + +self.addEventListener('error', function (error) { + console.error('Error in worker:', error); +}); + +function getAllExtracts({ id, extracts, previewData }) { + // id : is the id of the record + // extracts : contains the html of extracts in chronological order + // data : contains the preview data of the record + + // when data is undefined, it means that the preview data is not available + // in this case, we return an empty array of extracts + if (!previewData) { + return; + } + + const type = previewData?.highlightsPerCategory?.['matchingpassages']?.values.length ? 'matchingpassages' : 'extractslocations'; + + // extracts contains the html of extracts in chronological order + // locations contains the list of start positions sorted by score + const locations = previewData.highlightsPerCategory[type]?.values[0]?.locations || []; + + // first extract all the extracts locations + let extractslocations = locations.map(function (l, relevanceIndex) { + return { + startIndex: l.start, + relevanceIndex + }; + }); + + // sort them by start index + extractslocations.sort((a, b) => a.startIndex - b.startIndex); + + // then extract the text of each extract + extractslocations = extractslocations.map(function (ex, textIndex) { + return Object.assign(ex, { + textIndex: textIndex, + text: extracts[textIndex] || '', + id: `${type}_${textIndex}` + }); + }); + + // remove empty extracts + const _extracts = extractslocations.filter(item => item.text.trim().length > 0); + + // finally sort them by relevance index + _extracts.sort((a, b) => a.relevanceIndex - b.relevanceIndex); + + // this is from DedicatedWorkerGlobalScope ( because of that we have postMessage and onmessage methods ) + // and it can't see methods of this class + // @ts-expect-error worker can't see methods of this class + return { + id, + extracts: _extracts + }; +} diff --git a/src/core/features/bookmarks/list/bookmarks-list.component.html b/src/core/features/bookmarks/list/bookmarks-list.component.html index baa0d8c1..9f9d5c14 100644 --- a/src/core/features/bookmarks/list/bookmarks-list.component.html +++ b/src/core/features/bookmarks/list/bookmarks-list.component.html @@ -40,21 +40,11 @@
    @if (hasMore()) { - } - + {{ 'seeMore' | transloco }}
    diff --git a/src/core/features/bookmarks/list/bookmarks-list.component.ts b/src/core/features/bookmarks/list/bookmarks-list.component.ts index 6e203e21..b5b89b6e 100644 --- a/src/core/features/bookmarks/list/bookmarks-list.component.ts +++ b/src/core/features/bookmarks/list/bookmarks-list.component.ts @@ -18,7 +18,7 @@ const loader = ['en', 'fr'].reduce( @Component({ selector: 'BookmarksList', - standalone: true, + standalone: true, imports: [TranslocoPipe, RouterModule], templateUrl: './bookmarks-list.component.html', styleUrl: './bookmarks-list.component.scss', diff --git a/src/polyfills.js b/src/polyfills.js index 2aae0d71..f684d9ee 100644 --- a/src/polyfills.js +++ b/src/polyfills.js @@ -1 +1 @@ -window.global = window; \ No newline at end of file +window.global = window; From 28550700ce9c7c9241e8d48358867792d7e624e6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Lo=C3=AFc=20Juillet?= Date: Tue, 11 Feb 2025 18:17:12 +0100 Subject: [PATCH 046/658] force commit --- package-lock.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package-lock.json b/package-lock.json index 1ee7cd49..493e0b6b 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,4 +1,4 @@ -{ +{ "name": "sinequa-mint", "version": "0.0.0", "lockfileVersion": 3, From 737efcfb7965194bfd8858c5aea1809c06959174 Mon Sep 17 00:00:00 2001 From: Guillaume Leibfried Date: Wed, 12 Feb 2025 15:53:40 +0100 Subject: [PATCH 047/658] add alerts features --- src/assets/i18n/en.json | 2 + src/assets/i18n/fr.json | 2 + .../components/navbar/navbar.component.ts | 4 +- src/core/features/alerts/alert-form.ts | 221 ++++++++++++++++++ .../alerts/alerts/alerts.component.html | 38 +++ .../alerts/alerts/alerts.component.ts | 70 ++++++ src/core/features/alerts/i18n/en.json | 22 ++ src/core/features/alerts/i18n/fr.json | 22 ++ 8 files changed, 380 insertions(+), 1 deletion(-) create mode 100644 src/core/features/alerts/alert-form.ts create mode 100644 src/core/features/alerts/alerts/alerts.component.html create mode 100644 src/core/features/alerts/alerts/alerts.component.ts create mode 100644 src/core/features/alerts/i18n/en.json create mode 100644 src/core/features/alerts/i18n/fr.json diff --git a/src/assets/i18n/en.json b/src/assets/i18n/en.json index 9e514652..f9056e30 100644 --- a/src/assets/i18n/en.json +++ b/src/assets/i18n/en.json @@ -5,6 +5,8 @@ "clear": "Clear", "collaborators": "Collaborators", "concepts": "Concepts", + "save": "Save", + "confirm": "Confirm", "create": "Create", "delete": "Delete", "documents": "Documents", diff --git a/src/assets/i18n/fr.json b/src/assets/i18n/fr.json index d2d513e2..83c00e22 100644 --- a/src/assets/i18n/fr.json +++ b/src/assets/i18n/fr.json @@ -5,6 +5,8 @@ "clear": "Effacer", "collaborators": "Collaborateurs", "concepts": "Concepts", + "save": "Sauvegarder", + "confirm": "Confirmer", "create": "Créer", "delete": "Supprimer", "documents": "Documents", diff --git a/src/core/components/navbar/navbar.component.ts b/src/core/components/navbar/navbar.component.ts index 5d14b3d1..ad69aa04 100644 --- a/src/core/components/navbar/navbar.component.ts +++ b/src/core/components/navbar/navbar.component.ts @@ -25,6 +25,7 @@ import { SyslangPipe } from '@/core/pipes/syslang'; import { AutocompleteComponent, Suggestion } from '../search-input/autocomplete/autocomplete.component'; import { SearchInputComponent } from '../search-input/search-input.component'; import { CollectionsComponent } from '@/core/features/collections/collections.component'; +import { AlertsComponent } from '@/core/features/alerts/alerts/alerts.component'; type NavbarMenu = { display: string; @@ -79,7 +80,8 @@ export class NavbarComponent implements OnDestroy { { display: 'Recent queries', iconClass: 'far fa-clock-rotate-left', component: RecentSearchesComponent }, { display: 'Bookmarks', iconClass: 'far fa-bookmark', component: BookmarksListComponent }, { display: 'Collections', iconClass: 'far fa-inbox', component: CollectionsComponent, keepOnMouseLeave: true }, - { display: 'Saved queries', iconClass: 'far fa-star', component: SavedSearchesComponent } + { display: 'Saved queries', iconClass: 'far fa-star', component: SavedSearchesComponent }, + { display: 'Alerts', iconClass: 'far fa-bell', component: AlertsComponent } ]; protected readonly navigationService = inject(NavigationService); diff --git a/src/core/features/alerts/alert-form.ts b/src/core/features/alerts/alert-form.ts new file mode 100644 index 00000000..0df32c41 --- /dev/null +++ b/src/core/features/alerts/alert-form.ts @@ -0,0 +1,221 @@ +import { Component, computed, ElementRef, inject, signal, viewChild } from '@angular/core'; +import { FormsModule } from '@angular/forms'; +import { HashMap, provideTranslocoScope, Translation, TranslocoPipe, TranslocoService } from '@jsverse/transloco'; +import { Alert, QueryParamsStore, QueryService, UserSettingsStore } from '@sinequa/atomic-angular'; +import { toast } from 'ngx-sonner'; +import { firstValueFrom } from 'rxjs'; + +const loader = ['en', 'fr'].reduce( + (acc, lang) => { + acc[lang] = () => import(`./i18n/${lang}.json`); + return acc; + }, + {} as HashMap<() => Promise> +); + +@Component({ + selector: 'alert-form-dialog', + standalone: true, + imports: [FormsModule, TranslocoPipe], + providers: [provideTranslocoScope({ scope: 'alert', loader })], + template: ` + +
    +

    {{ 'alert.createAlert' | transloco }}

    +
    + + + + + +
    + @for (day of weekdays; track $index) { +
    + + +
    + } +
    + + + +
    + + +
    + +
    + @if (alert) { + + } + @if (canUpdateQuery()) { + + } + + +
    +
    +
    + `, + styles: ` + .weekdays-grid { + display: grid; + grid-template-columns: repeat(auto-fill, minmax(100px, 1fr)); + } + ` +}) +export class AlertFormDialog { + private readonly queryService = inject(QueryService); + private readonly queryParamsStore = inject(QueryParamsStore); + private readonly userSettingsStore = inject(UserSettingsStore); + private readonly transloco = inject(TranslocoService); + readonly dialog = viewChild('dialog'); + + frequencies = [Alert.Frequency.Daily, Alert.Frequency.Hourly, Alert.Frequency.Immediate]; + frequency = Alert.Frequency; + weekdays = [ + { key: 'monday', value: Alert.Days.Monday }, + { key: 'tuesday', value: Alert.Days.Tuesday }, + { key: 'wednesday', value: Alert.Days.Wednesday }, + { key: 'thursday', value: Alert.Days.Thursday }, + { key: 'friday', value: Alert.Days.Friday }, + { key: 'saturday', value: Alert.Days.Saturday }, + { key: 'sunday', value: Alert.Days.Sunday } + ]; + + index?: number; + alert?: Alert; + + alertName = signal(''); + alertFrequency = signal(Alert.Frequency.Daily); + alertDays = signal(Alert.Days.None); + alertTimes = signal('9:00'); + alertActive = signal(true); + canUpdateQuery = signal(false); + + invalidForm = computed(() => !this.alertName() || !this.alertTimes()); + + async showModal(index?: number) { + this.index = index; + + if (index !== undefined) { + this.alert = this.userSettingsStore.alerts()[index]; + if (this.alert) { + this.alertName.set(this.alert.name); + this.alertFrequency.set(this.alert.frequency); + this.alertDays.set(this.alert.days); + this.alertTimes.set(this.alert.times); + this.alertActive.set(this.alert.active); + + const q = this.queryParamsStore.getQuery(); + const response = await firstValueFrom(this.queryService.search(q, false)); + this.canUpdateQuery.set(response.records?.length > 0); + } + } else { + this.alertName.set(''); + this.alertFrequency.set(Alert.Frequency.Daily); + this.alertDays.set(Alert.Days.None); + this.alertTimes.set('9:00'); + this.alertActive.set(true); + } + + this.dialog()!.nativeElement.showModal(); + } + + async confirm(): Promise { + if (this.alert) { + this.update(); + } else { + this.create(); + } + this.dialog()!.nativeElement.close(); + } + + private async create(): Promise { + const alert: Alert = { + name: this.alertName(), + description: '', + timezone: Intl.DateTimeFormat().resolvedOptions().timeZone, + query: this.queryParamsStore.getQuery(), + frequency: this.alertFrequency(), + days: this.alertDays(), + interval: 1, + index: 1, + times: this.alertTimes(), + active: this.alertActive(), + combine: true, + respectTabSelection: false + }; + + this.userSettingsStore.createAlert(alert); + } + + private async update(): Promise { + this.alert!.name = this.alertName(); + this.alert!.frequency = this.alertFrequency(); + this.alert!.days = this.alertDays(); + this.alert!.times = this.alertTimes(); + this.alert!.active = this.alertActive(); + + this.userSettingsStore.updateAlert(this.alert!, this.index!); + } + + dayChecked(day: Alert.Days): boolean { + return (this.alertDays() & day) !== 0; + } + + dayChange(event: Event, day: Alert.Days) { + const input = event.target as HTMLInputElement; + if (input.checked) { + this.alertDays.set(this.alertDays() | day); + } else { + this.alertDays.set(this.alertDays() & ~day); + } + } + + updateQuery() { + this.alert!.query = this.queryParamsStore.getQuery(); + this.userSettingsStore.updateAlert(this.alert!, this.index!); + toast.success(this.transloco.translate('alert.queryUpdated'), { duration: 2000 }); + } + + execute() { + const q = this.alert!.query; + const filters = Array.isArray(q.filters) ? q.filters : undefined; + this.queryParamsStore.patch({ text: q.text, tab: q.tab, basket: q.basket, sort: q.sort, filters, name: q.name }); + this.dialog()!.nativeElement.close(); + } +} diff --git a/src/core/features/alerts/alerts/alerts.component.html b/src/core/features/alerts/alerts/alerts.component.html new file mode 100644 index 00000000..3fee78a7 --- /dev/null +++ b/src/core/features/alerts/alerts/alerts.component.html @@ -0,0 +1,38 @@ +
      + @for (alert of tmpAlerts; track $index) { +
    • + + {{ alert.name }} + + @if (!reordering()) { + + } @else { + + } +
    • + } @empty { +
    • + {{ 'alert.noAlerts' | transloco }} +
    • + } +
    • + + +
    • +
    + + diff --git a/src/core/features/alerts/alerts/alerts.component.ts b/src/core/features/alerts/alerts/alerts.component.ts new file mode 100644 index 00000000..778e52a1 --- /dev/null +++ b/src/core/features/alerts/alerts/alerts.component.ts @@ -0,0 +1,70 @@ +import { Component, computed, effect, inject, signal, viewChild } from '@angular/core'; +import { HashMap, provideTranslocoScope, Translation, TranslocoPipe } from '@jsverse/transloco'; +import { Alert, buildQuery, UserSettingsStore } from '@sinequa/atomic-angular'; +import { Query } from '@sinequa/atomic'; +import { AlertFormDialog } from '../alert-form'; +import { CdkDragDrop, DragDropModule } from '@angular/cdk/drag-drop'; + +const loader = ['en', 'fr'].reduce( + (acc, lang) => { + acc[lang] = () => import(`../i18n/${lang}.json`); + return acc; + }, + {} as HashMap<() => Promise> +); + +@Component({ + selector: 'Alerts', + standalone: true, + imports: [TranslocoPipe, AlertFormDialog, DragDropModule], + templateUrl: './alerts.component.html', + providers: [provideTranslocoScope({ scope: 'alert', loader })] +}) +export class AlertsComponent { + private readonly userSettingsStore = inject(UserSettingsStore); + + readonly alertFormDialog = viewChild(AlertFormDialog); + + reordering = signal(false); + protected alerts = computed(() => this.userSettingsStore.alerts()); + + tmpAlerts: Alert[]; + query: Query; + + constructor() { + this.query = buildQuery(); + + effect(() => { + this.tmpAlerts = this.alerts().map(a => Object.assign({}, a)); + }); + } + + onClick(index: number): void { + this.alertFormDialog()?.showModal(index); + } + + createAlert(): void { + this.alertFormDialog()?.showModal(); + } + + deleteAlert(event: Event, index: number) { + event.stopPropagation(); + this.userSettingsStore.deleteAlert(index); + } + + async reorder() { + if (this.reordering()) { + await this.userSettingsStore.updateAlerts(this.tmpAlerts); + this.reordering.set(false); + } else { + this.reordering.set(true); + } + } + + dropped(drop: CdkDragDrop) { + if (drop.currentIndex === drop.previousIndex) { + return; + } + this.tmpAlerts.splice(drop.currentIndex, 0, this.tmpAlerts.splice(drop.previousIndex, 1)[0]); + } +} diff --git a/src/core/features/alerts/i18n/en.json b/src/core/features/alerts/i18n/en.json new file mode 100644 index 00000000..54200bc8 --- /dev/null +++ b/src/core/features/alerts/i18n/en.json @@ -0,0 +1,22 @@ +{ + "createAlert": "Create Alert", + "manageAlerts": "Manage Alerts", + "alertName": "Alert name", + "alertFrequency": "Frequency", + "alertDays": "Days", + "alertHours": "Hours", + "alertActive": "Active", + "noAlerts": "No alerts yet", + "execute": "Execute the request", + "updateQuery": "Update query", + "queryUpdated": "Query successfully updated", + "weekdays": { + "monday": "Monday", + "tuesday": "Tuesday", + "wednesday": "Wednesday", + "thursday": "Thursday", + "friday": "Friday", + "saturday": "Saturday", + "sunday": "Sunday" + } +} diff --git a/src/core/features/alerts/i18n/fr.json b/src/core/features/alerts/i18n/fr.json new file mode 100644 index 00000000..b4367f3b --- /dev/null +++ b/src/core/features/alerts/i18n/fr.json @@ -0,0 +1,22 @@ +{ + "createAlert": "Créer une alerte", + "manageAlerts": "Gérer les Alertes", + "alertName": "Nom de l'alerte", + "alertFrequency": "Fréquence", + "alertDays": "Jours", + "alertHours": "Horaires", + "alertActive": "Active", + "noAlerts": "Aucune alerte", + "execute": "Exécuter la requête", + "updateQuery": "Mettre à jour la requête", + "queryUpdated": "Requête mise à jour avec succès", + "weekdays": { + "monday": "Lundi", + "tuesday": "Mardi", + "wednesday": "Mercredi", + "thursday": "Jeudi", + "friday": "Vendredi", + "saturday": "Samedi", + "sunday": "Dimanche" + } +} From 2ec68c49a99bbdd179cc30fcb82a5fe96df2d270 Mon Sep 17 00:00:00 2001 From: Guillaume Leibfried Date: Thu, 13 Feb 2025 13:54:09 +0100 Subject: [PATCH 048/658] fix bookmark query if none set + add seemore translation --- src/app/pages/bookmarks/bookmarks.component.ts | 2 ++ src/assets/i18n/en.json | 1 + src/assets/i18n/fr.json | 1 + 3 files changed, 4 insertions(+) diff --git a/src/app/pages/bookmarks/bookmarks.component.ts b/src/app/pages/bookmarks/bookmarks.component.ts index 55d4f79e..902ccefd 100644 --- a/src/app/pages/bookmarks/bookmarks.component.ts +++ b/src/app/pages/bookmarks/bookmarks.component.ts @@ -44,6 +44,8 @@ export class BookmarksComponent { public async loadBookmarks(): Promise { const list: BookmarkArticle[] = []; this.bookmarks().forEach(async bookmark => { + if (!bookmark.queryName) return; + const query: Partial = { name: bookmark.queryName, filters: { diff --git a/src/assets/i18n/en.json b/src/assets/i18n/en.json index 39ea3d6a..3310003d 100644 --- a/src/assets/i18n/en.json +++ b/src/assets/i18n/en.json @@ -19,6 +19,7 @@ "lastUpdatedBy": "Last updated by", "lastUpdatedOn": "Last updated on", "loadMore": "Load more", + "seeMore": "See more", "loading": "Loading", "location": "Location", "login": "Login", diff --git a/src/assets/i18n/fr.json b/src/assets/i18n/fr.json index dbc98c1a..8a5e6be2 100644 --- a/src/assets/i18n/fr.json +++ b/src/assets/i18n/fr.json @@ -19,6 +19,7 @@ "lastUpdatedBy": "Dernière mise à jour par", "lastUpdatedOn": "Dernière mise à jour le", "loadMore": "Charger plus", + "seeMore": "Voir plus", "loading": "Chargement", "location": "Emplacement", "login": "Connexion", From 4c81b16e33722de8c8b74f42cbbfe064fddc5bb0 Mon Sep 17 00:00:00 2001 From: Guillaume Leibfried Date: Thu, 13 Feb 2025 15:59:57 +0100 Subject: [PATCH 049/658] hide autocomplete on input clearing as focus is removed --- src/core/components/search-input/search-input.component.ts | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/core/components/search-input/search-input.component.ts b/src/core/components/search-input/search-input.component.ts index 811c46ee..68893632 100644 --- a/src/core/components/search-input/search-input.component.ts +++ b/src/core/components/search-input/search-input.component.ts @@ -118,6 +118,8 @@ export class SearchInputComponent { if (this.allowEmptySearch()) { this.validated.emit(''); + } else { + this.popoverElement().hidePopover(); } } From ae17c988bb2b42d53b58de9517df31700affe0eb Mon Sep 17 00:00:00 2001 From: TOME Olivier Date: Mon, 17 Feb 2025 18:41:50 +0100 Subject: [PATCH 050/658] ES-28842 #done third-party vulnerabilities esbuild: 0.25.0 --- package-lock.json | 646 +++++++++------------------------------------- package.json | 3 + 2 files changed, 120 insertions(+), 529 deletions(-) diff --git a/package-lock.json b/package-lock.json index 54e08e5b..9fc0219a 100644 --- a/package-lock.json +++ b/package-lock.json @@ -2598,9 +2598,9 @@ } }, "node_modules/@esbuild/aix-ppc64": { - "version": "0.23.0", - "resolved": "https://npm.sinequa.com/@esbuild/aix-ppc64/-/aix-ppc64-0.23.0.tgz", - "integrity": "sha512-3sG8Zwa5fMcA9bgqB8AfWPQ+HFke6uD3h1s3RIwUNK8EG7a4buxvuFTs3j1IMs2NXAk9F30C/FF4vxRgQCcmoQ==", + "version": "0.25.0", + "resolved": "https://npm.sinequa.com/@esbuild/aix-ppc64/-/aix-ppc64-0.25.0.tgz", + "integrity": "sha512-O7vun9Sf8DFjH2UtqK8Ku3LkquL9SZL8OLY1T5NZkA34+wG3OQF7cl4Ql8vdNzM6fzBbYfLaiRLIOZ+2FOCgBQ==", "cpu": [ "ppc64" ], @@ -2615,9 +2615,9 @@ } }, "node_modules/@esbuild/android-arm": { - "version": "0.23.0", - "resolved": "https://npm.sinequa.com/@esbuild/android-arm/-/android-arm-0.23.0.tgz", - "integrity": "sha512-+KuOHTKKyIKgEEqKbGTK8W7mPp+hKinbMBeEnNzjJGyFcWsfrXjSTNluJHCY1RqhxFurdD8uNXQDei7qDlR6+g==", + "version": "0.25.0", + "resolved": "https://npm.sinequa.com/@esbuild/android-arm/-/android-arm-0.25.0.tgz", + "integrity": "sha512-PTyWCYYiU0+1eJKmw21lWtC+d08JDZPQ5g+kFyxP0V+es6VPPSUhM6zk8iImp2jbV6GwjX4pap0JFbUQN65X1g==", "cpu": [ "arm" ], @@ -2632,9 +2632,9 @@ } }, "node_modules/@esbuild/android-arm64": { - "version": "0.23.0", - "resolved": "https://npm.sinequa.com/@esbuild/android-arm64/-/android-arm64-0.23.0.tgz", - "integrity": "sha512-EuHFUYkAVfU4qBdyivULuu03FhJO4IJN9PGuABGrFy4vUuzk91P2d+npxHcFdpUnfYKy0PuV+n6bKIpHOB3prQ==", + "version": "0.25.0", + "resolved": "https://npm.sinequa.com/@esbuild/android-arm64/-/android-arm64-0.25.0.tgz", + "integrity": "sha512-grvv8WncGjDSyUBjN9yHXNt+cq0snxXbDxy5pJtzMKGmmpPxeAmAhWxXI+01lU5rwZomDgD3kJwulEnhTRUd6g==", "cpu": [ "arm64" ], @@ -2649,9 +2649,9 @@ } }, "node_modules/@esbuild/android-x64": { - "version": "0.23.0", - "resolved": "https://npm.sinequa.com/@esbuild/android-x64/-/android-x64-0.23.0.tgz", - "integrity": "sha512-WRrmKidLoKDl56LsbBMhzTTBxrsVwTKdNbKDalbEZr0tcsBgCLbEtoNthOW6PX942YiYq8HzEnb4yWQMLQuipQ==", + "version": "0.25.0", + "resolved": "https://npm.sinequa.com/@esbuild/android-x64/-/android-x64-0.25.0.tgz", + "integrity": "sha512-m/ix7SfKG5buCnxasr52+LI78SQ+wgdENi9CqyCXwjVR2X4Jkz+BpC3le3AoBPYTC9NHklwngVXvbJ9/Akhrfg==", "cpu": [ "x64" ], @@ -2666,9 +2666,9 @@ } }, "node_modules/@esbuild/darwin-arm64": { - "version": "0.23.0", - "resolved": "https://npm.sinequa.com/@esbuild/darwin-arm64/-/darwin-arm64-0.23.0.tgz", - "integrity": "sha512-YLntie/IdS31H54Ogdn+v50NuoWF5BDkEUFpiOChVa9UnKpftgwzZRrI4J132ETIi+D8n6xh9IviFV3eXdxfow==", + "version": "0.25.0", + "resolved": "https://npm.sinequa.com/@esbuild/darwin-arm64/-/darwin-arm64-0.25.0.tgz", + "integrity": "sha512-mVwdUb5SRkPayVadIOI78K7aAnPamoeFR2bT5nszFUZ9P8UpK4ratOdYbZZXYSqPKMHfS1wdHCJk1P1EZpRdvw==", "cpu": [ "arm64" ], @@ -2683,9 +2683,9 @@ } }, "node_modules/@esbuild/darwin-x64": { - "version": "0.23.0", - "resolved": "https://npm.sinequa.com/@esbuild/darwin-x64/-/darwin-x64-0.23.0.tgz", - "integrity": "sha512-IMQ6eme4AfznElesHUPDZ+teuGwoRmVuuixu7sv92ZkdQcPbsNHzutd+rAfaBKo8YK3IrBEi9SLLKWJdEvJniQ==", + "version": "0.25.0", + "resolved": "https://npm.sinequa.com/@esbuild/darwin-x64/-/darwin-x64-0.25.0.tgz", + "integrity": "sha512-DgDaYsPWFTS4S3nWpFcMn/33ZZwAAeAFKNHNa1QN0rI4pUjgqf0f7ONmXf6d22tqTY+H9FNdgeaAa+YIFUn2Rg==", "cpu": [ "x64" ], @@ -2700,9 +2700,9 @@ } }, "node_modules/@esbuild/freebsd-arm64": { - "version": "0.23.0", - "resolved": "https://npm.sinequa.com/@esbuild/freebsd-arm64/-/freebsd-arm64-0.23.0.tgz", - "integrity": "sha512-0muYWCng5vqaxobq6LB3YNtevDFSAZGlgtLoAc81PjUfiFz36n4KMpwhtAd4he8ToSI3TGyuhyx5xmiWNYZFyw==", + "version": "0.25.0", + "resolved": "https://npm.sinequa.com/@esbuild/freebsd-arm64/-/freebsd-arm64-0.25.0.tgz", + "integrity": "sha512-VN4ocxy6dxefN1MepBx/iD1dH5K8qNtNe227I0mnTRjry8tj5MRk4zprLEdG8WPyAPb93/e4pSgi1SoHdgOa4w==", "cpu": [ "arm64" ], @@ -2717,9 +2717,9 @@ } }, "node_modules/@esbuild/freebsd-x64": { - "version": "0.23.0", - "resolved": "https://npm.sinequa.com/@esbuild/freebsd-x64/-/freebsd-x64-0.23.0.tgz", - "integrity": "sha512-XKDVu8IsD0/q3foBzsXGt/KjD/yTKBCIwOHE1XwiXmrRwrX6Hbnd5Eqn/WvDekddK21tfszBSrE/WMaZh+1buQ==", + "version": "0.25.0", + "resolved": "https://npm.sinequa.com/@esbuild/freebsd-x64/-/freebsd-x64-0.25.0.tgz", + "integrity": "sha512-mrSgt7lCh07FY+hDD1TxiTyIHyttn6vnjesnPoVDNmDfOmggTLXRv8Id5fNZey1gl/V2dyVK1VXXqVsQIiAk+A==", "cpu": [ "x64" ], @@ -2734,9 +2734,9 @@ } }, "node_modules/@esbuild/linux-arm": { - "version": "0.23.0", - "resolved": "https://npm.sinequa.com/@esbuild/linux-arm/-/linux-arm-0.23.0.tgz", - "integrity": "sha512-SEELSTEtOFu5LPykzA395Mc+54RMg1EUgXP+iw2SJ72+ooMwVsgfuwXo5Fn0wXNgWZsTVHwY2cg4Vi/bOD88qw==", + "version": "0.25.0", + "resolved": "https://npm.sinequa.com/@esbuild/linux-arm/-/linux-arm-0.25.0.tgz", + "integrity": "sha512-vkB3IYj2IDo3g9xX7HqhPYxVkNQe8qTK55fraQyTzTX/fxaDtXiEnavv9geOsonh2Fd2RMB+i5cbhu2zMNWJwg==", "cpu": [ "arm" ], @@ -2751,9 +2751,9 @@ } }, "node_modules/@esbuild/linux-arm64": { - "version": "0.23.0", - "resolved": "https://npm.sinequa.com/@esbuild/linux-arm64/-/linux-arm64-0.23.0.tgz", - "integrity": "sha512-j1t5iG8jE7BhonbsEg5d9qOYcVZv/Rv6tghaXM/Ug9xahM0nX/H2gfu6X6z11QRTMT6+aywOMA8TDkhPo8aCGw==", + "version": "0.25.0", + "resolved": "https://npm.sinequa.com/@esbuild/linux-arm64/-/linux-arm64-0.25.0.tgz", + "integrity": "sha512-9QAQjTWNDM/Vk2bgBl17yWuZxZNQIF0OUUuPZRKoDtqF2k4EtYbpyiG5/Dk7nqeK6kIJWPYldkOcBqjXjrUlmg==", "cpu": [ "arm64" ], @@ -2768,9 +2768,9 @@ } }, "node_modules/@esbuild/linux-ia32": { - "version": "0.23.0", - "resolved": "https://npm.sinequa.com/@esbuild/linux-ia32/-/linux-ia32-0.23.0.tgz", - "integrity": "sha512-P7O5Tkh2NbgIm2R6x1zGJJsnacDzTFcRWZyTTMgFdVit6E98LTxO+v8LCCLWRvPrjdzXHx9FEOA8oAZPyApWUA==", + "version": "0.25.0", + "resolved": "https://npm.sinequa.com/@esbuild/linux-ia32/-/linux-ia32-0.25.0.tgz", + "integrity": "sha512-43ET5bHbphBegyeqLb7I1eYn2P/JYGNmzzdidq/w0T8E2SsYL1U6un2NFROFRg1JZLTzdCoRomg8Rvf9M6W6Gg==", "cpu": [ "ia32" ], @@ -2785,9 +2785,9 @@ } }, "node_modules/@esbuild/linux-loong64": { - "version": "0.23.0", - "resolved": "https://npm.sinequa.com/@esbuild/linux-loong64/-/linux-loong64-0.23.0.tgz", - "integrity": "sha512-InQwepswq6urikQiIC/kkx412fqUZudBO4SYKu0N+tGhXRWUqAx+Q+341tFV6QdBifpjYgUndV1hhMq3WeJi7A==", + "version": "0.25.0", + "resolved": "https://npm.sinequa.com/@esbuild/linux-loong64/-/linux-loong64-0.25.0.tgz", + "integrity": "sha512-fC95c/xyNFueMhClxJmeRIj2yrSMdDfmqJnyOY4ZqsALkDrrKJfIg5NTMSzVBr5YW1jf+l7/cndBfP3MSDpoHw==", "cpu": [ "loong64" ], @@ -2802,9 +2802,9 @@ } }, "node_modules/@esbuild/linux-mips64el": { - "version": "0.23.0", - "resolved": "https://npm.sinequa.com/@esbuild/linux-mips64el/-/linux-mips64el-0.23.0.tgz", - "integrity": "sha512-J9rflLtqdYrxHv2FqXE2i1ELgNjT+JFURt/uDMoPQLcjWQA5wDKgQA4t/dTqGa88ZVECKaD0TctwsUfHbVoi4w==", + "version": "0.25.0", + "resolved": "https://npm.sinequa.com/@esbuild/linux-mips64el/-/linux-mips64el-0.25.0.tgz", + "integrity": "sha512-nkAMFju7KDW73T1DdH7glcyIptm95a7Le8irTQNO/qtkoyypZAnjchQgooFUDQhNAy4iu08N79W4T4pMBwhPwQ==", "cpu": [ "mips64el" ], @@ -2819,9 +2819,9 @@ } }, "node_modules/@esbuild/linux-ppc64": { - "version": "0.23.0", - "resolved": "https://npm.sinequa.com/@esbuild/linux-ppc64/-/linux-ppc64-0.23.0.tgz", - "integrity": "sha512-cShCXtEOVc5GxU0fM+dsFD10qZ5UpcQ8AM22bYj0u/yaAykWnqXJDpd77ublcX6vdDsWLuweeuSNZk4yUxZwtw==", + "version": "0.25.0", + "resolved": "https://npm.sinequa.com/@esbuild/linux-ppc64/-/linux-ppc64-0.25.0.tgz", + "integrity": "sha512-NhyOejdhRGS8Iwv+KKR2zTq2PpysF9XqY+Zk77vQHqNbo/PwZCzB5/h7VGuREZm1fixhs4Q/qWRSi5zmAiO4Fw==", "cpu": [ "ppc64" ], @@ -2836,9 +2836,9 @@ } }, "node_modules/@esbuild/linux-riscv64": { - "version": "0.23.0", - "resolved": "https://npm.sinequa.com/@esbuild/linux-riscv64/-/linux-riscv64-0.23.0.tgz", - "integrity": "sha512-HEtaN7Y5UB4tZPeQmgz/UhzoEyYftbMXrBCUjINGjh3uil+rB/QzzpMshz3cNUxqXN7Vr93zzVtpIDL99t9aRw==", + "version": "0.25.0", + "resolved": "https://npm.sinequa.com/@esbuild/linux-riscv64/-/linux-riscv64-0.25.0.tgz", + "integrity": "sha512-5S/rbP5OY+GHLC5qXp1y/Mx//e92L1YDqkiBbO9TQOvuFXM+iDqUNG5XopAnXoRH3FjIUDkeGcY1cgNvnXp/kA==", "cpu": [ "riscv64" ], @@ -2853,9 +2853,9 @@ } }, "node_modules/@esbuild/linux-s390x": { - "version": "0.23.0", - "resolved": "https://npm.sinequa.com/@esbuild/linux-s390x/-/linux-s390x-0.23.0.tgz", - "integrity": "sha512-WDi3+NVAuyjg/Wxi+o5KPqRbZY0QhI9TjrEEm+8dmpY9Xir8+HE/HNx2JoLckhKbFopW0RdO2D72w8trZOV+Wg==", + "version": "0.25.0", + "resolved": "https://npm.sinequa.com/@esbuild/linux-s390x/-/linux-s390x-0.25.0.tgz", + "integrity": "sha512-XM2BFsEBz0Fw37V0zU4CXfcfuACMrppsMFKdYY2WuTS3yi8O1nFOhil/xhKTmE1nPmVyvQJjJivgDT+xh8pXJA==", "cpu": [ "s390x" ], @@ -2870,9 +2870,9 @@ } }, "node_modules/@esbuild/linux-x64": { - "version": "0.23.0", - "resolved": "https://npm.sinequa.com/@esbuild/linux-x64/-/linux-x64-0.23.0.tgz", - "integrity": "sha512-a3pMQhUEJkITgAw6e0bWA+F+vFtCciMjW/LPtoj99MhVt+Mfb6bbL9hu2wmTZgNd994qTAEw+U/r6k3qHWWaOQ==", + "version": "0.25.0", + "resolved": "https://npm.sinequa.com/@esbuild/linux-x64/-/linux-x64-0.25.0.tgz", + "integrity": "sha512-9yl91rHw/cpwMCNytUDxwj2XjFpxML0y9HAOH9pNVQDpQrBxHy01Dx+vaMu0N1CKa/RzBD2hB4u//nfc+Sd3Cw==", "cpu": [ "x64" ], @@ -2886,10 +2886,27 @@ "node": ">=18" } }, + "node_modules/@esbuild/netbsd-arm64": { + "version": "0.25.0", + "resolved": "https://npm.sinequa.com/@esbuild/netbsd-arm64/-/netbsd-arm64-0.25.0.tgz", + "integrity": "sha512-RuG4PSMPFfrkH6UwCAqBzauBWTygTvb1nxWasEJooGSJ/NwRw7b2HOwyRTQIU97Hq37l3npXoZGYMy3b3xYvPw==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "netbsd" + ], + "engines": { + "node": ">=18" + } + }, "node_modules/@esbuild/netbsd-x64": { - "version": "0.23.0", - "resolved": "https://npm.sinequa.com/@esbuild/netbsd-x64/-/netbsd-x64-0.23.0.tgz", - "integrity": "sha512-cRK+YDem7lFTs2Q5nEv/HHc4LnrfBCbH5+JHu6wm2eP+d8OZNoSMYgPZJq78vqQ9g+9+nMuIsAO7skzphRXHyw==", + "version": "0.25.0", + "resolved": "https://npm.sinequa.com/@esbuild/netbsd-x64/-/netbsd-x64-0.25.0.tgz", + "integrity": "sha512-jl+qisSB5jk01N5f7sPCsBENCOlPiS/xptD5yxOx2oqQfyourJwIKLRA2yqWdifj3owQZCL2sn6o08dBzZGQzA==", "cpu": [ "x64" ], @@ -2904,9 +2921,9 @@ } }, "node_modules/@esbuild/openbsd-arm64": { - "version": "0.23.0", - "resolved": "https://npm.sinequa.com/@esbuild/openbsd-arm64/-/openbsd-arm64-0.23.0.tgz", - "integrity": "sha512-suXjq53gERueVWu0OKxzWqk7NxiUWSUlrxoZK7usiF50C6ipColGR5qie2496iKGYNLhDZkPxBI3erbnYkU0rQ==", + "version": "0.25.0", + "resolved": "https://npm.sinequa.com/@esbuild/openbsd-arm64/-/openbsd-arm64-0.25.0.tgz", + "integrity": "sha512-21sUNbq2r84YE+SJDfaQRvdgznTD8Xc0oc3p3iW/a1EVWeNj/SdUCbm5U0itZPQYRuRTW20fPMWMpcrciH2EJw==", "cpu": [ "arm64" ], @@ -2921,9 +2938,9 @@ } }, "node_modules/@esbuild/openbsd-x64": { - "version": "0.23.0", - "resolved": "https://npm.sinequa.com/@esbuild/openbsd-x64/-/openbsd-x64-0.23.0.tgz", - "integrity": "sha512-6p3nHpby0DM/v15IFKMjAaayFhqnXV52aEmv1whZHX56pdkK+MEaLoQWj+H42ssFarP1PcomVhbsR4pkz09qBg==", + "version": "0.25.0", + "resolved": "https://npm.sinequa.com/@esbuild/openbsd-x64/-/openbsd-x64-0.25.0.tgz", + "integrity": "sha512-2gwwriSMPcCFRlPlKx3zLQhfN/2WjJ2NSlg5TKLQOJdV0mSxIcYNTMhk3H3ulL/cak+Xj0lY1Ym9ysDV1igceg==", "cpu": [ "x64" ], @@ -2938,9 +2955,9 @@ } }, "node_modules/@esbuild/sunos-x64": { - "version": "0.23.0", - "resolved": "https://npm.sinequa.com/@esbuild/sunos-x64/-/sunos-x64-0.23.0.tgz", - "integrity": "sha512-BFelBGfrBwk6LVrmFzCq1u1dZbG4zy/Kp93w2+y83Q5UGYF1d8sCzeLI9NXjKyujjBBniQa8R8PzLFAUrSM9OA==", + "version": "0.25.0", + "resolved": "https://npm.sinequa.com/@esbuild/sunos-x64/-/sunos-x64-0.25.0.tgz", + "integrity": "sha512-bxI7ThgLzPrPz484/S9jLlvUAHYMzy6I0XiU1ZMeAEOBcS0VePBFxh1JjTQt3Xiat5b6Oh4x7UC7IwKQKIJRIg==", "cpu": [ "x64" ], @@ -2955,9 +2972,9 @@ } }, "node_modules/@esbuild/win32-arm64": { - "version": "0.23.0", - "resolved": "https://npm.sinequa.com/@esbuild/win32-arm64/-/win32-arm64-0.23.0.tgz", - "integrity": "sha512-lY6AC8p4Cnb7xYHuIxQ6iYPe6MfO2CC43XXKo9nBXDb35krYt7KGhQnOkRGar5psxYkircpCqfbNDB4uJbS2jQ==", + "version": "0.25.0", + "resolved": "https://npm.sinequa.com/@esbuild/win32-arm64/-/win32-arm64-0.25.0.tgz", + "integrity": "sha512-ZUAc2YK6JW89xTbXvftxdnYy3m4iHIkDtK3CLce8wg8M2L+YZhIvO1DKpxrd0Yr59AeNNkTiic9YLf6FTtXWMw==", "cpu": [ "arm64" ], @@ -2972,9 +2989,9 @@ } }, "node_modules/@esbuild/win32-ia32": { - "version": "0.23.0", - "resolved": "https://npm.sinequa.com/@esbuild/win32-ia32/-/win32-ia32-0.23.0.tgz", - "integrity": "sha512-7L1bHlOTcO4ByvI7OXVI5pNN6HSu6pUQq9yodga8izeuB1KcT2UkHaH6118QJwopExPn0rMHIseCTx1CRo/uNA==", + "version": "0.25.0", + "resolved": "https://npm.sinequa.com/@esbuild/win32-ia32/-/win32-ia32-0.25.0.tgz", + "integrity": "sha512-eSNxISBu8XweVEWG31/JzjkIGbGIJN/TrRoiSVZwZ6pkC6VX4Im/WV2cz559/TXLcYbcrDN8JtKgd9DJVIo8GA==", "cpu": [ "ia32" ], @@ -2989,9 +3006,9 @@ } }, "node_modules/@esbuild/win32-x64": { - "version": "0.23.0", - "resolved": "https://npm.sinequa.com/@esbuild/win32-x64/-/win32-x64-0.23.0.tgz", - "integrity": "sha512-Arm+WgUFLUATuoxCJcahGuk6Yj9Pzxd6l11Zb/2aAuv5kWWvvfhLFo2fni4uSK5vzlUdCGZ/BdV5tH8klj8p8g==", + "version": "0.25.0", + "resolved": "https://npm.sinequa.com/@esbuild/win32-x64/-/win32-x64-0.25.0.tgz", + "integrity": "sha512-ZENoHJBxA20C2zFzh6AI4fT6RraMzjYw4xKWemRTRmRVtN9c5DcH9r/f2ihEkMjOW5eGgrwCslG/+Y/3bL+DHQ==", "cpu": [ "x64" ], @@ -6749,9 +6766,9 @@ } }, "node_modules/esbuild": { - "version": "0.23.0", - "resolved": "https://npm.sinequa.com/esbuild/-/esbuild-0.23.0.tgz", - "integrity": "sha512-1lvV17H2bMYda/WaFb2jLPeHU3zml2k4/yagNMG8Q/YtfMjCwEUZa2eXXMgZTVSL5q1n4H7sQ0X6CdJDqqeCFA==", + "version": "0.25.0", + "resolved": "https://npm.sinequa.com/esbuild/-/esbuild-0.25.0.tgz", + "integrity": "sha512-BXq5mqc8ltbaN34cDqWuYKyNhX8D/Z0J1xdtdQ8UcIIIyJyz+ZMKUt58tF3SrZ85jcfN/PZYhjR5uDQAYNVbuw==", "dev": true, "hasInstallScript": true, "license": "MIT", @@ -6762,30 +6779,31 @@ "node": ">=18" }, "optionalDependencies": { - "@esbuild/aix-ppc64": "0.23.0", - "@esbuild/android-arm": "0.23.0", - "@esbuild/android-arm64": "0.23.0", - "@esbuild/android-x64": "0.23.0", - "@esbuild/darwin-arm64": "0.23.0", - "@esbuild/darwin-x64": "0.23.0", - "@esbuild/freebsd-arm64": "0.23.0", - "@esbuild/freebsd-x64": "0.23.0", - "@esbuild/linux-arm": "0.23.0", - "@esbuild/linux-arm64": "0.23.0", - "@esbuild/linux-ia32": "0.23.0", - "@esbuild/linux-loong64": "0.23.0", - "@esbuild/linux-mips64el": "0.23.0", - "@esbuild/linux-ppc64": "0.23.0", - "@esbuild/linux-riscv64": "0.23.0", - "@esbuild/linux-s390x": "0.23.0", - "@esbuild/linux-x64": "0.23.0", - "@esbuild/netbsd-x64": "0.23.0", - "@esbuild/openbsd-arm64": "0.23.0", - "@esbuild/openbsd-x64": "0.23.0", - "@esbuild/sunos-x64": "0.23.0", - "@esbuild/win32-arm64": "0.23.0", - "@esbuild/win32-ia32": "0.23.0", - "@esbuild/win32-x64": "0.23.0" + "@esbuild/aix-ppc64": "0.25.0", + "@esbuild/android-arm": "0.25.0", + "@esbuild/android-arm64": "0.25.0", + "@esbuild/android-x64": "0.25.0", + "@esbuild/darwin-arm64": "0.25.0", + "@esbuild/darwin-x64": "0.25.0", + "@esbuild/freebsd-arm64": "0.25.0", + "@esbuild/freebsd-x64": "0.25.0", + "@esbuild/linux-arm": "0.25.0", + "@esbuild/linux-arm64": "0.25.0", + "@esbuild/linux-ia32": "0.25.0", + "@esbuild/linux-loong64": "0.25.0", + "@esbuild/linux-mips64el": "0.25.0", + "@esbuild/linux-ppc64": "0.25.0", + "@esbuild/linux-riscv64": "0.25.0", + "@esbuild/linux-s390x": "0.25.0", + "@esbuild/linux-x64": "0.25.0", + "@esbuild/netbsd-arm64": "0.25.0", + "@esbuild/netbsd-x64": "0.25.0", + "@esbuild/openbsd-arm64": "0.25.0", + "@esbuild/openbsd-x64": "0.25.0", + "@esbuild/sunos-x64": "0.25.0", + "@esbuild/win32-arm64": "0.25.0", + "@esbuild/win32-ia32": "0.25.0", + "@esbuild/win32-x64": "0.25.0" } }, "node_modules/esbuild-wasm": { @@ -13107,436 +13125,6 @@ } } }, - "node_modules/vite/node_modules/@esbuild/aix-ppc64": { - "version": "0.21.5", - "resolved": "https://npm.sinequa.com/@esbuild/aix-ppc64/-/aix-ppc64-0.21.5.tgz", - "integrity": "sha512-1SDgH6ZSPTlggy1yI6+Dbkiz8xzpHJEVAlF/AM1tHPLsf5STom9rwtjE4hKAF20FfXXNTFqEYXyJNWh1GiZedQ==", - "cpu": [ - "ppc64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "aix" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/vite/node_modules/@esbuild/android-arm": { - "version": "0.21.5", - "resolved": "https://npm.sinequa.com/@esbuild/android-arm/-/android-arm-0.21.5.tgz", - "integrity": "sha512-vCPvzSjpPHEi1siZdlvAlsPxXl7WbOVUBBAowWug4rJHb68Ox8KualB+1ocNvT5fjv6wpkX6o/iEpbDrf68zcg==", - "cpu": [ - "arm" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "android" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/vite/node_modules/@esbuild/android-arm64": { - "version": "0.21.5", - "resolved": "https://npm.sinequa.com/@esbuild/android-arm64/-/android-arm64-0.21.5.tgz", - "integrity": "sha512-c0uX9VAUBQ7dTDCjq+wdyGLowMdtR/GoC2U5IYk/7D1H1JYC0qseD7+11iMP2mRLN9RcCMRcjC4YMclCzGwS/A==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "android" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/vite/node_modules/@esbuild/android-x64": { - "version": "0.21.5", - "resolved": "https://npm.sinequa.com/@esbuild/android-x64/-/android-x64-0.21.5.tgz", - "integrity": "sha512-D7aPRUUNHRBwHxzxRvp856rjUHRFW1SdQATKXH2hqA0kAZb1hKmi02OpYRacl0TxIGz/ZmXWlbZgjwWYaCakTA==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "android" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/vite/node_modules/@esbuild/darwin-arm64": { - "version": "0.21.5", - "resolved": "https://npm.sinequa.com/@esbuild/darwin-arm64/-/darwin-arm64-0.21.5.tgz", - "integrity": "sha512-DwqXqZyuk5AiWWf3UfLiRDJ5EDd49zg6O9wclZ7kUMv2WRFr4HKjXp/5t8JZ11QbQfUS6/cRCKGwYhtNAY88kQ==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/vite/node_modules/@esbuild/darwin-x64": { - "version": "0.21.5", - "resolved": "https://npm.sinequa.com/@esbuild/darwin-x64/-/darwin-x64-0.21.5.tgz", - "integrity": "sha512-se/JjF8NlmKVG4kNIuyWMV/22ZaerB+qaSi5MdrXtd6R08kvs2qCN4C09miupktDitvh8jRFflwGFBQcxZRjbw==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/vite/node_modules/@esbuild/freebsd-arm64": { - "version": "0.21.5", - "resolved": "https://npm.sinequa.com/@esbuild/freebsd-arm64/-/freebsd-arm64-0.21.5.tgz", - "integrity": "sha512-5JcRxxRDUJLX8JXp/wcBCy3pENnCgBR9bN6JsY4OmhfUtIHe3ZW0mawA7+RDAcMLrMIZaf03NlQiX9DGyB8h4g==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "freebsd" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/vite/node_modules/@esbuild/freebsd-x64": { - "version": "0.21.5", - "resolved": "https://npm.sinequa.com/@esbuild/freebsd-x64/-/freebsd-x64-0.21.5.tgz", - "integrity": "sha512-J95kNBj1zkbMXtHVH29bBriQygMXqoVQOQYA+ISs0/2l3T9/kj42ow2mpqerRBxDJnmkUDCaQT/dfNXWX/ZZCQ==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "freebsd" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/vite/node_modules/@esbuild/linux-arm": { - "version": "0.21.5", - "resolved": "https://npm.sinequa.com/@esbuild/linux-arm/-/linux-arm-0.21.5.tgz", - "integrity": "sha512-bPb5AHZtbeNGjCKVZ9UGqGwo8EUu4cLq68E95A53KlxAPRmUyYv2D6F0uUI65XisGOL1hBP5mTronbgo+0bFcA==", - "cpu": [ - "arm" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/vite/node_modules/@esbuild/linux-arm64": { - "version": "0.21.5", - "resolved": "https://npm.sinequa.com/@esbuild/linux-arm64/-/linux-arm64-0.21.5.tgz", - "integrity": "sha512-ibKvmyYzKsBeX8d8I7MH/TMfWDXBF3db4qM6sy+7re0YXya+K1cem3on9XgdT2EQGMu4hQyZhan7TeQ8XkGp4Q==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/vite/node_modules/@esbuild/linux-ia32": { - "version": "0.21.5", - "resolved": "https://npm.sinequa.com/@esbuild/linux-ia32/-/linux-ia32-0.21.5.tgz", - "integrity": "sha512-YvjXDqLRqPDl2dvRODYmmhz4rPeVKYvppfGYKSNGdyZkA01046pLWyRKKI3ax8fbJoK5QbxblURkwK/MWY18Tg==", - "cpu": [ - "ia32" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/vite/node_modules/@esbuild/linux-loong64": { - "version": "0.21.5", - "resolved": "https://npm.sinequa.com/@esbuild/linux-loong64/-/linux-loong64-0.21.5.tgz", - "integrity": "sha512-uHf1BmMG8qEvzdrzAqg2SIG/02+4/DHB6a9Kbya0XDvwDEKCoC8ZRWI5JJvNdUjtciBGFQ5PuBlpEOXQj+JQSg==", - "cpu": [ - "loong64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/vite/node_modules/@esbuild/linux-mips64el": { - "version": "0.21.5", - "resolved": "https://npm.sinequa.com/@esbuild/linux-mips64el/-/linux-mips64el-0.21.5.tgz", - "integrity": "sha512-IajOmO+KJK23bj52dFSNCMsz1QP1DqM6cwLUv3W1QwyxkyIWecfafnI555fvSGqEKwjMXVLokcV5ygHW5b3Jbg==", - "cpu": [ - "mips64el" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/vite/node_modules/@esbuild/linux-ppc64": { - "version": "0.21.5", - "resolved": "https://npm.sinequa.com/@esbuild/linux-ppc64/-/linux-ppc64-0.21.5.tgz", - "integrity": "sha512-1hHV/Z4OEfMwpLO8rp7CvlhBDnjsC3CttJXIhBi+5Aj5r+MBvy4egg7wCbe//hSsT+RvDAG7s81tAvpL2XAE4w==", - "cpu": [ - "ppc64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/vite/node_modules/@esbuild/linux-riscv64": { - "version": "0.21.5", - "resolved": "https://npm.sinequa.com/@esbuild/linux-riscv64/-/linux-riscv64-0.21.5.tgz", - "integrity": "sha512-2HdXDMd9GMgTGrPWnJzP2ALSokE/0O5HhTUvWIbD3YdjME8JwvSCnNGBnTThKGEB91OZhzrJ4qIIxk/SBmyDDA==", - "cpu": [ - "riscv64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/vite/node_modules/@esbuild/linux-s390x": { - "version": "0.21.5", - "resolved": "https://npm.sinequa.com/@esbuild/linux-s390x/-/linux-s390x-0.21.5.tgz", - "integrity": "sha512-zus5sxzqBJD3eXxwvjN1yQkRepANgxE9lgOW2qLnmr8ikMTphkjgXu1HR01K4FJg8h1kEEDAqDcZQtbrRnB41A==", - "cpu": [ - "s390x" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/vite/node_modules/@esbuild/linux-x64": { - "version": "0.21.5", - "resolved": "https://npm.sinequa.com/@esbuild/linux-x64/-/linux-x64-0.21.5.tgz", - "integrity": "sha512-1rYdTpyv03iycF1+BhzrzQJCdOuAOtaqHTWJZCWvijKD2N5Xu0TtVC8/+1faWqcP9iBCWOmjmhoH94dH82BxPQ==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/vite/node_modules/@esbuild/netbsd-x64": { - "version": "0.21.5", - "resolved": "https://npm.sinequa.com/@esbuild/netbsd-x64/-/netbsd-x64-0.21.5.tgz", - "integrity": "sha512-Woi2MXzXjMULccIwMnLciyZH4nCIMpWQAs049KEeMvOcNADVxo0UBIQPfSmxB3CWKedngg7sWZdLvLczpe0tLg==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "netbsd" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/vite/node_modules/@esbuild/openbsd-x64": { - "version": "0.21.5", - "resolved": "https://npm.sinequa.com/@esbuild/openbsd-x64/-/openbsd-x64-0.21.5.tgz", - "integrity": "sha512-HLNNw99xsvx12lFBUwoT8EVCsSvRNDVxNpjZ7bPn947b8gJPzeHWyNVhFsaerc0n3TsbOINvRP2byTZ5LKezow==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "openbsd" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/vite/node_modules/@esbuild/sunos-x64": { - "version": "0.21.5", - "resolved": "https://npm.sinequa.com/@esbuild/sunos-x64/-/sunos-x64-0.21.5.tgz", - "integrity": "sha512-6+gjmFpfy0BHU5Tpptkuh8+uw3mnrvgs+dSPQXQOv3ekbordwnzTVEb4qnIvQcYXq6gzkyTnoZ9dZG+D4garKg==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "sunos" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/vite/node_modules/@esbuild/win32-arm64": { - "version": "0.21.5", - "resolved": "https://npm.sinequa.com/@esbuild/win32-arm64/-/win32-arm64-0.21.5.tgz", - "integrity": "sha512-Z0gOTd75VvXqyq7nsl93zwahcTROgqvuAcYDUr+vOv8uHhNSKROyU961kgtCD1e95IqPKSQKH7tBTslnS3tA8A==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/vite/node_modules/@esbuild/win32-ia32": { - "version": "0.21.5", - "resolved": "https://npm.sinequa.com/@esbuild/win32-ia32/-/win32-ia32-0.21.5.tgz", - "integrity": "sha512-SWXFF1CL2RVNMaVs+BBClwtfZSvDgtL//G/smwAc5oVK/UPu2Gu9tIaRgFmYFFKrmg3SyAjSrElf0TiJ1v8fYA==", - "cpu": [ - "ia32" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/vite/node_modules/@esbuild/win32-x64": { - "version": "0.21.5", - "resolved": "https://npm.sinequa.com/@esbuild/win32-x64/-/win32-x64-0.21.5.tgz", - "integrity": "sha512-tQd/1efJuzPC6rCFwEvLtci/xNFcTZknmXs98FYDfGE4wP9ClFV98nyKrzJKVPMhdDnjzLhdUyMX4PsQAPjwIw==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/vite/node_modules/esbuild": { - "version": "0.21.5", - "resolved": "https://npm.sinequa.com/esbuild/-/esbuild-0.21.5.tgz", - "integrity": "sha512-mg3OPMV4hXywwpoDxu3Qda5xCKQi+vCTZq8S9J/EpkhB2HzKXq4SNFZE3+NK93JYxc8VMSep+lOUSC/RVKaBqw==", - "dev": true, - "hasInstallScript": true, - "license": "MIT", - "bin": { - "esbuild": "bin/esbuild" - }, - "engines": { - "node": ">=12" - }, - "optionalDependencies": { - "@esbuild/aix-ppc64": "0.21.5", - "@esbuild/android-arm": "0.21.5", - "@esbuild/android-arm64": "0.21.5", - "@esbuild/android-x64": "0.21.5", - "@esbuild/darwin-arm64": "0.21.5", - "@esbuild/darwin-x64": "0.21.5", - "@esbuild/freebsd-arm64": "0.21.5", - "@esbuild/freebsd-x64": "0.21.5", - "@esbuild/linux-arm": "0.21.5", - "@esbuild/linux-arm64": "0.21.5", - "@esbuild/linux-ia32": "0.21.5", - "@esbuild/linux-loong64": "0.21.5", - "@esbuild/linux-mips64el": "0.21.5", - "@esbuild/linux-ppc64": "0.21.5", - "@esbuild/linux-riscv64": "0.21.5", - "@esbuild/linux-s390x": "0.21.5", - "@esbuild/linux-x64": "0.21.5", - "@esbuild/netbsd-x64": "0.21.5", - "@esbuild/openbsd-x64": "0.21.5", - "@esbuild/sunos-x64": "0.21.5", - "@esbuild/win32-arm64": "0.21.5", - "@esbuild/win32-ia32": "0.21.5", - "@esbuild/win32-x64": "0.21.5" - } - }, "node_modules/watchpack": { "version": "2.4.1", "resolved": "https://npm.sinequa.com/watchpack/-/watchpack-2.4.1.tgz", diff --git a/package.json b/package.json index 3281a4ee..406d3698 100644 --- a/package.json +++ b/package.json @@ -43,6 +43,9 @@ "tslib": "^2.3.0", "zone.js": "~0.14.10" }, + "overrides": { + "esbuild": "0.25.0" + }, "devDependencies": { "@angular-devkit/build-angular": "^18.2.5", "@angular/cli": "^18.2.5", From e9ce690b4a5a500d015e790bf75e06074a2e2eb0 Mon Sep 17 00:00:00 2001 From: TOME Olivier Date: Tue, 18 Feb 2025 15:27:32 +0100 Subject: [PATCH 051/658] #noJiraCheck apply prettier configuration on commit only on the staged files --- package.json | 26 +++++++++++++------------- 1 file changed, 13 insertions(+), 13 deletions(-) diff --git a/package.json b/package.json index 80531cae..76547c33 100644 --- a/package.json +++ b/package.json @@ -2,26 +2,26 @@ "name": "sinequa-mint", "version": "0.0.0", "scripts": { - "ng": "ng", - "start": "ng serve --ssl=true --proxy-config=proxy.conf.json", - "start:local": "ng serve --ssl=true --proxy-config=proxy.conf.local.json", - "start:docs": "cd docusaurus && npm start", "build": "ng build", - "watch": "ng build --watch --configuration development", - "test": "ng test", - "lint": "ng lint", - "up:atomic": "npm i @sinequa/atomic@latest @sinequa/atomic-angular@latest", - "docs:start": "npm run start:docs", - "docs:ci": "cd docusaurus && npm ci", "docs:build": "cd docusaurus && npm run build", "docs:build-internal": "cd docusaurus && npm run build-internal", + "docs:ci": "cd docusaurus && npm ci", + "docs:start": "npm run start:docs", + "lint": "ng lint", + "ng": "ng", + "prepare": "husky", "prettier:check": "prettier --config .prettierrc --check src/**/*.{js,ts,html,scss,css,json}", "prettier:write": "prettier --config .prettierrc --write src/**/*.{js,ts,html,scss,css,json}", - "prepare": "husky" + "start": "ng serve --ssl=true --proxy-config=proxy.conf.json", + "start:docs": "cd docusaurus && npm start", + "start:local": "ng serve --ssl=true --proxy-config=proxy.conf.local.json", + "test": "ng test", + "up:atomic": "npm i @sinequa/atomic@latest @sinequa/atomic-angular@latest", + "watch": "ng build --watch --configuration development" }, "lint-staged": { - "src/**/*.{ts,html,scss,json}": [ - "npm run prettier:write" + "*.{js,ts,html,scss,css,json}": [ + "prettier --write" ] }, "private": true, From 14e099458c6101740ebad1934a1d686c4ac4eb13 Mon Sep 17 00:00:00 2001 From: Guillaume Leibfried Date: Thu, 20 Feb 2025 09:45:03 +0100 Subject: [PATCH 052/658] make improvements to collections --- src/app/pages/home/home.component.html | 2 +- src/app/pages/home/home.component.ts | 4 +- .../features/collections/add-to-collection.ts | 53 ++++++++++- .../collections/collections.component.html | 40 +++++---- .../collections/collections.component.ts | 13 ++- .../features/collections/delete-collection.ts | 61 +++++++++++++ src/core/features/collections/i18n/en.json | 4 + src/core/features/collections/i18n/fr.json | 3 + .../collections/manage-collections.ts | 89 +++++++++++++------ 9 files changed, 219 insertions(+), 50 deletions(-) create mode 100644 src/core/features/collections/delete-collection.ts diff --git a/src/app/pages/home/home.component.html b/src/app/pages/home/home.component.html index 30ae9152..e60d97ea 100644 --- a/src/app/pages/home/home.component.html +++ b/src/app/pages/home/home.component.html @@ -32,7 +32,7 @@
    @for (tab of tabs(); track tab.label) {
    - +
    }
    diff --git a/src/app/pages/home/home.component.ts b/src/app/pages/home/home.component.ts index 9e950071..b5e81356 100644 --- a/src/app/pages/home/home.component.ts +++ b/src/app/pages/home/home.component.ts @@ -19,6 +19,7 @@ type HomeTab = { iconClass: string; label: string; component: Type; + inputs?: any; disabled?: boolean; }; @@ -45,7 +46,8 @@ const homeFeatures: HomeTab[] = [ name: 'baskets', iconClass: 'fa-regular fa-inbox', label: 'My collections', - component: CollectionsComponent + component: CollectionsComponent, + inputs: { showButtons: false } } ]; diff --git a/src/core/features/collections/add-to-collection.ts b/src/core/features/collections/add-to-collection.ts index 477498de..1e22a687 100644 --- a/src/core/features/collections/add-to-collection.ts +++ b/src/core/features/collections/add-to-collection.ts @@ -1,4 +1,4 @@ -import { Component, computed, ElementRef, inject, input, viewChild } from '@angular/core'; +import { Component, computed, ElementRef, inject, input, signal, viewChild } from '@angular/core'; import { FormsModule } from '@angular/forms'; import { HashMap, provideTranslocoScope, Translation, TranslocoPipe } from '@jsverse/transloco'; import { Article } from '@sinequa/atomic'; @@ -29,7 +29,11 @@ const loader = ['en', 'fr'].reduce( class="group flex h-10 cursor-pointer items-center gap-2 rounded px-3 py-2 hover:bg-secondary hover:text-primary focus:bg-secondary focus:text-primary focus:outline-none" tabindex="0" (click)="addToCollection(collection, $index)"> - + @if (containsArticle(collection)) { + + } @else { + + } {{ collection.name }} } @empty { @@ -37,9 +41,35 @@ const loader = ['en', 'fr'].reduce( {{ 'collection.noCollections' | transloco }} } + @if (creating()) { +
  • +
    + +
    +
  • + }
    + @@ -51,8 +81,11 @@ const loader = ['en', 'fr'].reduce( export class AddToCollectionDialog { readonly article = input.required
    (); private readonly userSettingsStore = inject(UserSettingsStore); + readonly createInput = viewChild('createInput'); readonly dialog = viewChild('dialog'); protected collections = computed(() => this.userSettingsStore.baskets()); + newCollectionName = signal(''); + creating = signal(false); showModal() { this.dialog()!.nativeElement.showModal(); @@ -62,6 +95,13 @@ export class AddToCollectionDialog { return (collection.ids || []).some(id => id === this.article().id); } + onCreate(): void { + if (this.creating()) return this.creating.set(false); + + this.creating.set(true); + this.createInput()?.nativeElement.focus(); + } + async addToCollection(collection: Basket, collectionIndex: number): Promise { if (this.containsArticle(collection)) { // remove it @@ -74,4 +114,13 @@ export class AddToCollectionDialog { } await this.userSettingsStore.updateBasket(collection, collectionIndex); } + + onBlurCreate(): void { + if (this.newCollectionName()) { + const collection: Basket = { name: this.newCollectionName() }; + this.userSettingsStore.createBasket(collection); + this.newCollectionName.set(''); + this.creating.set(false); + } + } } diff --git a/src/core/features/collections/collections.component.html b/src/core/features/collections/collections.component.html index 3a045bc7..c9a30fa5 100644 --- a/src/core/features/collections/collections.component.html +++ b/src/core/features/collections/collections.component.html @@ -5,31 +5,35 @@ tabindex="0" (click)="onClick(collection)" (keydown.enter)="onClick(collection)"> - {{ collection.name }} + {{ collection.name }} + + } @empty {
  • {{ 'collection.noCollections' | transloco }}
  • } -
  • - - -
  • + @if (showButtons()) { +
  • + +
  • + } + diff --git a/src/core/features/collections/collections.component.ts b/src/core/features/collections/collections.component.ts index c2b9e1da..c10d1f5b 100644 --- a/src/core/features/collections/collections.component.ts +++ b/src/core/features/collections/collections.component.ts @@ -1,10 +1,11 @@ -import { Component, computed, inject, viewChild } from '@angular/core'; +import { Component, computed, inject, input, viewChild } from '@angular/core'; import { Router } from '@angular/router'; import { HashMap, provideTranslocoScope, Translation, TranslocoPipe } from '@jsverse/transloco'; import { Basket, buildQuery, DrawerStackService, UserSettingsStore } from '@sinequa/atomic-angular'; import { CreateCollectionDialog } from './create-collection'; import { ManageCollectionsDialog } from './manage-collections'; import { Query } from '@sinequa/atomic'; +import { DeleteCollectionDialog } from './delete-collection'; const loader = ['en', 'fr'].reduce( (acc, lang) => { @@ -17,11 +18,13 @@ const loader = ['en', 'fr'].reduce( @Component({ selector: 'app-collections', standalone: true, - imports: [TranslocoPipe, CreateCollectionDialog, ManageCollectionsDialog], + imports: [TranslocoPipe, CreateCollectionDialog, ManageCollectionsDialog, DeleteCollectionDialog], templateUrl: './collections.component.html', providers: [provideTranslocoScope({ scope: 'collection', loader })] }) export class CollectionsComponent { + showButtons = input(true); + private readonly userSettingsStore = inject(UserSettingsStore); private readonly drawerStack = inject(DrawerStackService); private readonly router = inject(Router); @@ -30,6 +33,7 @@ export class CollectionsComponent { readonly createCollectionDialog = viewChild(CreateCollectionDialog); readonly manageCollectionsDialog = viewChild(ManageCollectionsDialog); + readonly deleteCollectionDialog = viewChild(DeleteCollectionDialog); query: Query; @@ -42,6 +46,11 @@ export class CollectionsComponent { this.router.navigate(['/search'], { queryParams: { b: collection.name } }); } + public onDelete(collection: Basket, index: number, e: Event) { + e.stopPropagation(); + this.deleteCollectionDialog()?.showModal(collection, index); + } + createCollection(): void { this.createCollectionDialog()?.showModal(); } diff --git a/src/core/features/collections/delete-collection.ts b/src/core/features/collections/delete-collection.ts new file mode 100644 index 00000000..84687953 --- /dev/null +++ b/src/core/features/collections/delete-collection.ts @@ -0,0 +1,61 @@ +import { Component, ElementRef, inject, signal, viewChild } from '@angular/core'; +import { FormsModule } from '@angular/forms'; +import { HashMap, provideTranslocoScope, Translation, TranslocoPipe, TranslocoService } from '@jsverse/transloco'; +import { Basket, UserSettingsStore } from '@sinequa/atomic-angular'; +import { toast } from 'ngx-sonner'; + +const loader = ['en', 'fr'].reduce( + (acc, lang) => { + acc[lang] = () => import(`./i18n/${lang}.json`); + return acc; + }, + {} as HashMap<() => Promise> +); + +@Component({ + selector: 'delete-collection-dialog', + standalone: true, + imports: [FormsModule, TranslocoPipe], + providers: [provideTranslocoScope({ scope: 'collection', loader })], + template: ` + +
    +

    {{ 'collection.deleteCollection' | transloco }}

    +
    +

    {{ 'collection.confirmDelete' | transloco }} {{ collection()?.name }}?

    + +
    + + + +
    +
    +
    + ` +}) +export class DeleteCollectionDialog { + readonly dialog = viewChild('dialog'); + + private readonly userSettingsStore = inject(UserSettingsStore); + private readonly translocoService = inject(TranslocoService); + + collection = signal(undefined); + index = signal(undefined); + + showModal(collection: Basket, index: number) { + this.collection.set(collection); + this.index.set(index); + this.dialog()!.nativeElement.showModal(); + } + + async deleteCollection(): Promise { + this.dialog()!.nativeElement.close(); + await this.userSettingsStore.deleteBasket(this.index()!); + const message = this.translocoService.translate('collection.deleted'); + toast.success(message, { duration: 2000 }); + } +} diff --git a/src/core/features/collections/i18n/en.json b/src/core/features/collections/i18n/en.json index 8481ab15..caced6df 100644 --- a/src/core/features/collections/i18n/en.json +++ b/src/core/features/collections/i18n/en.json @@ -5,6 +5,10 @@ "addToCollection": "Add to Collection", "noCollections": "No collections yet", "collectionName": "Collection name", + "deleteCollection": "Delete collection", + "confirmDelete": "Are you sure you want to delete the collection", + "deleted": "Collection successfully deleted", + "cancelCreation": "Cancel Creation", "save": "Save", "create": "Create", "cancel": "Cancel", diff --git a/src/core/features/collections/i18n/fr.json b/src/core/features/collections/i18n/fr.json index 0f275ed8..20e354b0 100644 --- a/src/core/features/collections/i18n/fr.json +++ b/src/core/features/collections/i18n/fr.json @@ -5,6 +5,9 @@ "addToCollection": "Ajouter à une Collection", "noCollections": "Aucune collection", "collectionName": "Nom de collection", + "confirmDelete": "Êtes-vous sûr de vouloir supprimer la collection", + "deleted": "Collection supprimée avec succès", + "cancelCreation": "Annuler la création", "save": "Enregistrer", "create": "Créer", "cancel": "Annuler", diff --git a/src/core/features/collections/manage-collections.ts b/src/core/features/collections/manage-collections.ts index 80d779d0..651ad1f2 100644 --- a/src/core/features/collections/manage-collections.ts +++ b/src/core/features/collections/manage-collections.ts @@ -3,6 +3,7 @@ import { FormsModule } from '@angular/forms'; import { HashMap, provideTranslocoScope, Translation, TranslocoPipe } from '@jsverse/transloco'; import { Basket, UserSettingsStore } from '@sinequa/atomic-angular'; import { CdkDragDrop, DragDropModule } from '@angular/cdk/drag-drop'; +import { DeleteCollectionDialog } from './delete-collection'; const loader = ['en', 'fr'].reduce( (acc, lang) => { @@ -15,7 +16,7 @@ const loader = ['en', 'fr'].reduce( @Component({ selector: 'manage-collections-dialog', standalone: true, - imports: [FormsModule, TranslocoPipe, DragDropModule], + imports: [FormsModule, TranslocoPipe, DragDropModule, DeleteCollectionDialog], providers: [provideTranslocoScope({ scope: 'collection', loader })], template: ` @@ -23,11 +24,7 @@ const loader = ['en', 'fr'].reduce(

    {{ 'collection.manageCollections' | transloco }}


    - - -
      +
        @for (collection of tmpCollections; track $index) {
      • @if (modifiedIndex() === undefined || modifiedIndex() !== $index) { + {{ collection.name }} - @if (!reordering()) { - - } @else { - - } + + } @else {
        } + @if (creating()) { +
      • +
        + +
        +
      • + }
      - -
    + + ` }) export class ManageCollectionsDialog { @@ -78,9 +98,13 @@ export class ManageCollectionsDialog { private readonly userSettingsStore = inject(UserSettingsStore); readonly dialog = viewChild('dialog'); readonly renameInput = viewChild('renameInput'); + readonly createInput = viewChild('createInput'); collectionName = signal(''); + newCollectionName = signal(''); + creating = signal(false); modifiedIndex = signal(undefined); - reordering = signal(false); + + readonly deleteCollectionDialog = viewChild(DeleteCollectionDialog); tmpCollections: Basket[]; @@ -94,19 +118,16 @@ export class ManageCollectionsDialog { this.dialog()!.nativeElement.showModal(); } - reorder(): void { - this.reordering.set(!this.reordering()); - } - dropped(drop: CdkDragDrop) { if (drop.currentIndex === drop.previousIndex) { return; } this.tmpCollections.splice(drop.currentIndex, 0, this.tmpCollections.splice(drop.previousIndex, 1)[0]); + this.save(); } onClick(collection: Basket, index: number): void { - if (this.reordering() || this.modifiedIndex() === index) return; + if (this.modifiedIndex() === index) return; this.collectionName.set(collection.name); this.modifiedIndex.set(index); @@ -115,27 +136,43 @@ export class ManageCollectionsDialog { }); } + onCreate(): void { + if (this.creating()) return this.creating.set(false); + + this.creating.set(true); + this.createInput()?.nativeElement.focus(); + } + onBlur(): void { + let modifiedName = false; if (this.collectionName()) { const collection = this.tmpCollections[this.modifiedIndex()!]; + modifiedName = collection.name !== this.collectionName(); collection.name = this.collectionName(); } this.modifiedIndex.set(undefined); + if (modifiedName) this.save(); + } + + onBlurCreate(): void { + if (this.newCollectionName()) { + const collection: Basket = { name: this.newCollectionName() }; + this.userSettingsStore.createBasket(collection); + this.newCollectionName.set(''); + this.creating.set(false); + } } async save(): Promise { await this.userSettingsStore.updateBaskets(this.tmpCollections); - this.reordering.set(false); - this.dialog()!.nativeElement.close(); } - async deleteCollection(index: number): Promise { - await this.userSettingsStore.deleteBasket(index); + deleteCollection(collection: Basket, index: number) { + this.deleteCollectionDialog()?.showModal(collection, index); } async create(): Promise { if (!this.collectionName()) return; await this.userSettingsStore.createBasket({ name: this.collectionName() }); - this.dialog()!.nativeElement.close(); } } From efe994a8dd838ed122f800fcfda9b8c455d13119 Mon Sep 17 00:00:00 2001 From: Guillaume Leibfried Date: Thu, 20 Feb 2025 10:07:48 +0100 Subject: [PATCH 053/658] remove create collection dialog --- .../collections/collections.component.html | 1 - .../collections/collections.component.ts | 8 +-- .../features/collections/create-collection.ts | 61 ------------------- 3 files changed, 1 insertion(+), 69 deletions(-) delete mode 100644 src/core/features/collections/create-collection.ts diff --git a/src/core/features/collections/collections.component.html b/src/core/features/collections/collections.component.html index c9a30fa5..abf1473d 100644 --- a/src/core/features/collections/collections.component.html +++ b/src/core/features/collections/collections.component.html @@ -34,6 +34,5 @@ } - diff --git a/src/core/features/collections/collections.component.ts b/src/core/features/collections/collections.component.ts index c10d1f5b..e1b696d7 100644 --- a/src/core/features/collections/collections.component.ts +++ b/src/core/features/collections/collections.component.ts @@ -2,7 +2,6 @@ import { Component, computed, inject, input, viewChild } from '@angular/core'; import { Router } from '@angular/router'; import { HashMap, provideTranslocoScope, Translation, TranslocoPipe } from '@jsverse/transloco'; import { Basket, buildQuery, DrawerStackService, UserSettingsStore } from '@sinequa/atomic-angular'; -import { CreateCollectionDialog } from './create-collection'; import { ManageCollectionsDialog } from './manage-collections'; import { Query } from '@sinequa/atomic'; import { DeleteCollectionDialog } from './delete-collection'; @@ -18,7 +17,7 @@ const loader = ['en', 'fr'].reduce( @Component({ selector: 'app-collections', standalone: true, - imports: [TranslocoPipe, CreateCollectionDialog, ManageCollectionsDialog, DeleteCollectionDialog], + imports: [TranslocoPipe, ManageCollectionsDialog, DeleteCollectionDialog], templateUrl: './collections.component.html', providers: [provideTranslocoScope({ scope: 'collection', loader })] }) @@ -31,7 +30,6 @@ export class CollectionsComponent { protected collections = computed(() => this.userSettingsStore.baskets()); - readonly createCollectionDialog = viewChild(CreateCollectionDialog); readonly manageCollectionsDialog = viewChild(ManageCollectionsDialog); readonly deleteCollectionDialog = viewChild(DeleteCollectionDialog); @@ -51,10 +49,6 @@ export class CollectionsComponent { this.deleteCollectionDialog()?.showModal(collection, index); } - createCollection(): void { - this.createCollectionDialog()?.showModal(); - } - manageCollections(): void { this.manageCollectionsDialog()?.showModal(); } diff --git a/src/core/features/collections/create-collection.ts b/src/core/features/collections/create-collection.ts deleted file mode 100644 index 7e3c910c..00000000 --- a/src/core/features/collections/create-collection.ts +++ /dev/null @@ -1,61 +0,0 @@ -import { Component, ElementRef, inject, signal, viewChild } from '@angular/core'; -import { FormsModule } from '@angular/forms'; -import { HashMap, provideTranslocoScope, Translation, TranslocoPipe } from '@jsverse/transloco'; -import { UserSettingsStore } from '@sinequa/atomic-angular'; - -const loader = ['en', 'fr'].reduce( - (acc, lang) => { - acc[lang] = () => import(`./i18n/${lang}.json`); - return acc; - }, - {} as HashMap<() => Promise> -); - -@Component({ - selector: 'create-collection-dialog', - standalone: true, - imports: [FormsModule, TranslocoPipe], - providers: [provideTranslocoScope({ scope: 'collection', loader })], - template: ` - -
    -

    {{ 'collection.createCollection' | transloco }}

    -
    - - - -
    - - -
    -
    -
    - ` -}) -export class CreateCollectionDialog { - private readonly userSettingsStore = inject(UserSettingsStore); - readonly dialog = viewChild('dialog'); - collectionName = signal(''); - - showModal() { - this.dialog()!.nativeElement.showModal(); - } - - async create(): Promise { - if (!this.collectionName()) return; - await this.userSettingsStore.createBasket({ name: this.collectionName() }); - this.dialog()!.nativeElement.close(); - } -} From a2de4fb99ef4c7b56e62267d9f09a0610bceb2d5 Mon Sep 17 00:00:00 2001 From: Guillaume Leibfried Date: Thu, 20 Feb 2025 16:02:58 +0100 Subject: [PATCH 054/658] display properly the star if we are on a saved search --- .../search-input/search-input.component.html | 6 +++- .../search-input/search-input.component.ts | 36 ++++++++++++++++++- 2 files changed, 40 insertions(+), 2 deletions(-) diff --git a/src/core/components/search-input/search-input.component.html b/src/core/components/search-input/search-input.component.html index c38aa3d2..f0cd5ee0 100644 --- a/src/core/components/search-input/search-input.component.html +++ b/src/core/components/search-input/search-input.component.html @@ -9,7 +9,11 @@ [attr.aria-label]="'searchInput.saveSearch' | transloco" (click)="saveQuery()" (keydown.enter)="saveQuery()"> - + @if (isSavedSearch()) { + + } @else { + + } } diff --git a/src/core/components/search-input/search-input.component.ts b/src/core/components/search-input/search-input.component.ts index 68893632..082eb84e 100644 --- a/src/core/components/search-input/search-input.component.ts +++ b/src/core/components/search-input/search-input.component.ts @@ -4,7 +4,7 @@ import { FormsModule } from '@angular/forms'; import { ActivatedRoute } from '@angular/router'; import { HashMap, Translation, TranslocoPipe, TranslocoService, provideTranslocoScope } from '@jsverse/transloco'; import { getState } from '@ngrx/signals'; -import { AppStore, AutocompleteService, CJson, debouncedSignal, DrawerStackService, QueryParamsStore } from '@sinequa/atomic-angular'; +import { AppStore, AutocompleteService, CJson, debouncedSignal, DrawerStackService, QueryParamsStore, UserSettingsStore } from '@sinequa/atomic-angular'; import { toast } from 'ngx-sonner'; const DEBOUNCE_DELAY = 300; @@ -37,6 +37,7 @@ export class SearchInputComponent { protected readonly autocompleteService = inject(AutocompleteService); private readonly drawerStack = inject(DrawerStackService); protected readonly queryParamsStore = inject(QueryParamsStore); + protected readonly userSettingsStore = inject(UserSettingsStore); private readonly appStore = inject(AppStore); private readonly route = inject(ActivatedRoute); private readonly translocoService = inject(TranslocoService); @@ -55,6 +56,39 @@ export class SearchInputComponent { return this.appStore.allowEmptySearch(queryName); }); + /** Returns true if the current search (current input() + filters) is in the saved searches */ + protected isSavedSearch = computed(() => { + const params = getState(this.queryParamsStore); // to watch params update + const savedSearches = this.userSettingsStore.savedSearches(); + const url = window.location.hash.substring(1); + const filtersSplit = url.split('f='); + const filters = filtersSplit.length > 1 ? JSON.parse(decodeURIComponent(filtersSplit[1].split('&')[0]))[0] : undefined; + const display = this.input(); + + // returns true if a save search matches the display and filters + return savedSearches.some(search => { + const searchFiltersSplit = search.url.split('f='); + const searchFilters = searchFiltersSplit.length > 1 ? JSON.parse(decodeURIComponent(searchFiltersSplit[1].split('&')[0]))[0] : undefined; + + // if one of them has filters and not the other one + if ((filters && !searchFilters) || (!filters && searchFilters)) return false; + + if (filters && searchFilters) { + const filtersKeys = Object.keys(filters).sort(); + const searchFiltersKeys = Object.keys(searchFilters).sort(); + const similarKeys = JSON.stringify(filtersKeys) === JSON.stringify(searchFiltersKeys); + + if (!similarKeys) return false; // if one of them has different keys + + for (const key of filtersKeys) { + if (filters[key] !== searchFilters[key]) return false; // if any value is different + } + } + + return search.display === display; // lastly, if the text is similar + }); + }); + // el is the ElementRef of the component, it is injected by Angular and used by the AutoComplete component constructor(public readonly el: ElementRef) { effect(() => { From 7c2824da660f1578168626f44c9c9ec36662331d Mon Sep 17 00:00:00 2001 From: Guillaume Leibfried Date: Fri, 21 Feb 2025 13:57:40 +0100 Subject: [PATCH 055/658] add some search results feedback buttons --- .../search/all/search-all.component.html | 3 +- .../pages/search/all/search-all.component.ts | 4 +- .../features/search-feedback/i18n/en.json | 5 ++ .../features/search-feedback/i18n/fr.json | 5 ++ .../search-feedback.component.html | 17 +++++ .../search-feedback.component.ts | 65 +++++++++++++++++++ 6 files changed, 97 insertions(+), 2 deletions(-) create mode 100644 src/core/features/search-feedback/i18n/en.json create mode 100644 src/core/features/search-feedback/i18n/fr.json create mode 100644 src/core/features/search-feedback/search-feedback.component.html create mode 100644 src/core/features/search-feedback/search-feedback.component.ts diff --git a/src/app/pages/search/all/search-all.component.html b/src/app/pages/search/all/search-all.component.html index fd318365..1ee4b2f8 100644 --- a/src/app/pages/search/all/search-all.component.html +++ b/src/app/pages/search/all/search-all.component.html @@ -32,7 +32,8 @@ } @else if (query.isSuccess() && query.data()?.pages) {
    - + +
      diff --git a/src/app/pages/search/all/search-all.component.ts b/src/app/pages/search/all/search-all.component.ts index 87acbcf7..e8445544 100644 --- a/src/app/pages/search/all/search-all.component.ts +++ b/src/app/pages/search/all/search-all.component.ts @@ -13,6 +13,7 @@ import { DidYouMeanComponent } from '@/core/features/did-you-mean/did-you-mean.c import { SortSelectorComponent, SortingChoice } from '@/core/features/sort-selector/sort-selector.component'; import { SearchBase } from '../search.abstract'; +import { SearchFeedbackComponent } from '@/core/features/search-feedback/search-feedback.component'; type R = Result & { nextPage?: number; previousPage?: number }; @@ -27,7 +28,8 @@ type R = Result & { nextPage?: number; previousPage?: number }; InfinityScrollDirective, SponsoredResultsComponent, FiltersListComponent, - NoResultPanelComponent + NoResultPanelComponent, + SearchFeedbackComponent ], templateUrl: './search-all.component.html', styleUrl: './search-all.component.scss', diff --git a/src/core/features/search-feedback/i18n/en.json b/src/core/features/search-feedback/i18n/en.json new file mode 100644 index 00000000..17eed66e --- /dev/null +++ b/src/core/features/search-feedback/i18n/en.json @@ -0,0 +1,5 @@ +{ + "like": "Like result", + "dislike": "Dislike result", + "feedbackSuccess": "Feedback successfully sent" +} diff --git a/src/core/features/search-feedback/i18n/fr.json b/src/core/features/search-feedback/i18n/fr.json new file mode 100644 index 00000000..98018be1 --- /dev/null +++ b/src/core/features/search-feedback/i18n/fr.json @@ -0,0 +1,5 @@ +{ + "like": "Aimer le résultat", + "dislike": "N'aime pas le résultat", + "feedbackSuccess": "Avis envoyé avec succès" +} diff --git a/src/core/features/search-feedback/search-feedback.component.html b/src/core/features/search-feedback/search-feedback.component.html new file mode 100644 index 00000000..f2c6da9b --- /dev/null +++ b/src/core/features/search-feedback/search-feedback.component.html @@ -0,0 +1,17 @@ +
      + + + +
      diff --git a/src/core/features/search-feedback/search-feedback.component.ts b/src/core/features/search-feedback/search-feedback.component.ts new file mode 100644 index 00000000..319c26b8 --- /dev/null +++ b/src/core/features/search-feedback/search-feedback.component.ts @@ -0,0 +1,65 @@ +import { Component, inject, input, signal } from '@angular/core'; +import { HashMap, provideTranslocoScope, Translation, TranslocoService } from '@jsverse/transloco'; +import { getState } from '@ngrx/signals'; +import { AuditService, QueryParamsStore } from '@sinequa/atomic-angular'; +import { Article, Result } from '@sinequa/atomic'; +import { toast } from 'ngx-sonner'; + +const loader = ['en', 'fr'].reduce( + (acc, lang) => { + acc[lang] = () => import(`./i18n/${lang}.json`); + return acc; + }, + {} as HashMap<() => Promise> +); + +@Component({ + selector: 'search-feedback', + standalone: true, + imports: [], + providers: [provideTranslocoScope({ scope: 'searchFeedback', loader })], + templateUrl: './search-feedback.component.html' +}) +export class SearchFeedbackComponent { + pages = input.required(); + readonly auditService = inject(AuditService); + protected readonly queryParamsStore = inject(QueryParamsStore); + private readonly transloco = inject(TranslocoService); + + liked = signal(false); + disliked = signal(false); + + like(): void { + const state = getState(this.queryParamsStore); + const articles: string[] = []; + if (this.pages() && this.pages().length) { + this.pages().forEach((page: Result) => { + articles.push(...page.records.map(r => r.id)); + }); + } + const detail = { query: state, records: articles }; + this.auditService.notify({ + type: 'Search_Like', + detail + }); + this.liked.set(true); + toast.success(this.transloco.translate('searchFeedback.feedbackSuccess'), { duration: 2000 }); + } + + dislike(): void { + const state = getState(this.queryParamsStore); + const articles: string[] = []; + if (this.pages() && this.pages().length) { + this.pages().forEach((page: Result) => { + articles.push(...page.records.map(r => r.id)); + }); + } + const detail = { query: state, records: articles }; + this.auditService.notify({ + type: 'Search_Disike', + detail + }); + this.disliked.set(true); + toast.success(this.transloco.translate('searchFeedback.feedbackSuccess'), { duration: 2000 }); + } +} From d0c585367ff42c5e5701339cd07395307df4db15 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Lo=C3=AFc=20Juillet?= Date: Tue, 25 Feb 2025 16:59:02 +0100 Subject: [PATCH 056/658] =?UTF-8?q?=E2=99=BB=EF=B8=8F=20remove=20toolkit?= =?UTF-8?q?=20dependency?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- package-lock.json | 15 +------ package.json | 1 - .../search/all/search-all.component.html | 6 +-- .../article-default-skeleton.component.html | 25 ----------- .../article-default-skeleton.component.scss | 7 ---- .../article-default-skeleton.component.ts | 42 ++++++++++++++++--- .../article-slide-skeleton.component.html | 6 --- .../article-slide-skeleton.component.ts | 13 ++++-- src/styles.scss | 4 -- 9 files changed, 50 insertions(+), 69 deletions(-) delete mode 100644 src/core/components/article/default-skeleton/article-default-skeleton.component.html delete mode 100644 src/core/components/article/default-skeleton/article-default-skeleton.component.scss delete mode 100644 src/core/components/article/slide-skeleton/article-slide-skeleton.component.html diff --git a/package-lock.json b/package-lock.json index 67e2f64e..dbd813e5 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,4 +1,4 @@ -{ +{ "name": "sinequa-mint", "version": "0.0.0", "lockfileVersion": 3, @@ -34,7 +34,6 @@ "keyux": "^0.8.2", "ngx-sonner": "^1.0.0", "rxjs": "~7.8.0", - "toolkit": "^0.0.1", "tslib": "^2.3.0", "zone.js": "~0.14.10" }, @@ -13156,18 +13155,6 @@ "node": ">=0.6" } }, - "node_modules/toolkit": { - "version": "0.0.1", - "resolved": "https://npm.sinequa.com/toolkit/-/toolkit-0.0.1.tgz", - "integrity": "sha512-Rv4LbhbW9FmCBpi6uayyvdNBlYyZLCkfMvP3KAW9Ot0nc8Tomw2vtJIeMDN2cpEwiyfjbKyGNcNGGFld9arTug==", - "dependencies": { - "tslib": "^2.3.0" - }, - "peerDependencies": { - "@angular/common": "^17.0.0", - "@angular/core": "^17.0.0" - } - }, "node_modules/tough-cookie": { "version": "4.1.4", "resolved": "https://npm.sinequa.com/tough-cookie/-/tough-cookie-4.1.4.tgz", diff --git a/package.json b/package.json index 76547c33..a0fb5a12 100644 --- a/package.json +++ b/package.json @@ -52,7 +52,6 @@ "keyux": "^0.8.2", "ngx-sonner": "^1.0.0", "rxjs": "~7.8.0", - "toolkit": "^0.0.1", "tslib": "^2.3.0", "zone.js": "~0.14.10" }, diff --git a/src/app/pages/search/all/search-all.component.html b/src/app/pages/search/all/search-all.component.html index fd318365..07491e87 100644 --- a/src/app/pages/search/all/search-all.component.html +++ b/src/app/pages/search/all/search-all.component.html @@ -25,9 +25,9 @@
        -
      • -
      • -
      • +
      • +
      • +
      } @else if (query.isSuccess() && query.data()?.pages) { diff --git a/src/core/components/article/default-skeleton/article-default-skeleton.component.html b/src/core/components/article/default-skeleton/article-default-skeleton.component.html deleted file mode 100644 index dd1bc56d..00000000 --- a/src/core/components/article/default-skeleton/article-default-skeleton.component.html +++ /dev/null @@ -1,25 +0,0 @@ -
      - -
      -
      -
      - -
      -
      -
      -
      -
      -
      -
      - -
      -
      -
      -
      - -
      -
      -
      -
      -
      -
      diff --git a/src/core/components/article/default-skeleton/article-default-skeleton.component.scss b/src/core/components/article/default-skeleton/article-default-skeleton.component.scss deleted file mode 100644 index b93d1bee..00000000 --- a/src/core/components/article/default-skeleton/article-default-skeleton.component.scss +++ /dev/null @@ -1,7 +0,0 @@ -:host { - @apply article pointer-events-none; -} - -div[stkSkeleton] { - @apply bg-fixed; -} diff --git a/src/core/components/article/default-skeleton/article-default-skeleton.component.ts b/src/core/components/article/default-skeleton/article-default-skeleton.component.ts index 804efbf5..3b0bfd72 100644 --- a/src/core/components/article/default-skeleton/article-default-skeleton.component.ts +++ b/src/core/components/article/default-skeleton/article-default-skeleton.component.ts @@ -1,11 +1,43 @@ import { Component } from '@angular/core'; -import { SkeletonDirective } from 'toolkit'; @Component({ - selector: 'app-article-default-skeleton', + selector: 'app-article-default-skeleton, ArticleDefaultSkeleton', standalone: true, - imports: [SkeletonDirective], - templateUrl: './article-default-skeleton.component.html', - styleUrl: './article-default-skeleton.component.scss' + template: ` +
      + +
      +
      +
      + +
      +
      +
      +
      +
      +
      +
      + +
      +
      +
      +
      + +
      +
      +
      +
      +
      +
      + `, + styles: ` + :host { + @apply article pointer-events-none; + } + + div[stkSkeleton] { + @apply bg-fixed; + } + ` }) export class ArticleDefaultSkeletonComponent {} diff --git a/src/core/components/article/slide-skeleton/article-slide-skeleton.component.html b/src/core/components/article/slide-skeleton/article-slide-skeleton.component.html deleted file mode 100644 index 2220cc53..00000000 --- a/src/core/components/article/slide-skeleton/article-slide-skeleton.component.html +++ /dev/null @@ -1,6 +0,0 @@ -
      - -
      -
      -
      -
      diff --git a/src/core/components/article/slide-skeleton/article-slide-skeleton.component.ts b/src/core/components/article/slide-skeleton/article-slide-skeleton.component.ts index a40f57f2..d53b1c22 100644 --- a/src/core/components/article/slide-skeleton/article-slide-skeleton.component.ts +++ b/src/core/components/article/slide-skeleton/article-slide-skeleton.component.ts @@ -1,11 +1,16 @@ import { Component } from '@angular/core'; -import { SkeletonDirective } from 'toolkit'; @Component({ - selector: 'app-article-slide-skeleton', + selector: 'app-article-slide-skeleton, ArticleSlideSkeleton', standalone: true, - imports: [SkeletonDirective], - templateUrl: './article-slide-skeleton.component.html', + template: ` +
      + +
      +
      +
      +
      + `, host: { class: 'article pointer-events-none flex-col p-0' } diff --git a/src/styles.scss b/src/styles.scss index 84201532..19dc7c7a 100644 --- a/src/styles.scss +++ b/src/styles.scss @@ -5,10 +5,6 @@ /* @import "../node_modules/@sinequa/atomic-angular/assets/tailwind.css"; */ -@import '../node_modules/toolkit/styles/keyframes.css'; -@import '../node_modules/toolkit/styles/panel.css'; -@import '../node_modules/toolkit/styles/skeleton.css'; - @import './styles/layouts.scss'; @import './styles/box-shadows.scss'; @import './styles/colors.scss'; From bf4a9d5d78c03710f7f4a4e162a97bd60d044265 Mon Sep 17 00:00:00 2001 From: TOME Olivier Date: Wed, 26 Feb 2025 17:57:26 +0100 Subject: [PATCH 057/658] #noJiraCheck design system integration removed useless css use of tailwindcss variants --- .prettierrc | 1 + .vscode/launch.json | 168 +- .vscode/tasks.json | 42 - package-lock.json | 28557 ++++++++-------- package.json | 156 +- src/app/app.component.ts | 137 +- src/app/app.config.ts | 240 +- src/app/app.routes.ts | 94 +- src/app/pages/home/home.component.ts | 274 +- .../search/all/search-all.component.html | 118 +- .../search/all/search-all.component.scss | 3 - .../pages/search/all/search-all.component.ts | 123 +- src/app/pages/search/search.abstract.ts | 388 +- .../default/article-default.component.html | 140 +- .../default/article-default.component.ts | 279 +- .../slide/article-slide.component.html | 78 +- .../article/slide/article-slide.component.ts | 89 +- .../document-locator.component.ts | 294 +- .../advanced-search.component.html | 324 +- .../advanced-search.component.ts | 343 +- .../aggregation-row.component.html | 90 +- .../aggregation/aggregation-row.component.ts | 130 +- .../aggregation/aggregation.component.html | 110 +- .../aggregation/aggregation.component.ts | 1017 +- .../buttons/filter-button.component.ts | 208 +- .../date-button.component.ts} | 158 +- .../filters/date/date.component.html | 199 +- .../components/filters/date/date.component.ts | 400 +- ....component.ts => filters-bar.component.ts} | 322 +- .../more-button.component.ts} | 108 +- ...rs-more.component.ts => more.component.ts} | 262 +- .../components/navbar/navbar.component.html | 178 +- .../components/navbar/navbar.component.ts | 377 +- .../preview/actions/preview-actions.ts | 219 +- .../default/preview-default.component.html | 207 +- .../default/preview-default.component.ts | 248 +- .../navbar/preview-navbar.component.html | 108 +- .../navbar/preview-navbar.component.scss | 0 .../navbar/preview-navbar.component.ts | 159 +- .../slide/preview-slide.component.html | 250 +- .../preview/slide/preview-slide.component.ts | 276 +- .../autocomplete/autocomplete.component.html | 154 +- .../autocomplete/autocomplete.component.ts | 237 +- .../search-input/search-input.component.html | 149 +- .../search-input/search-input.component.ts | 368 +- .../alerts/{alert-form.ts => alert.dialog.ts} | 474 +- src/core/features/alerts/alerts.html | 23 + .../{alerts/alerts.component.ts => alerts.ts} | 155 +- .../alerts/alerts/alerts.component.html | 38 - ...button.component.ts => bookmark-button.ts} | 110 +- src/core/features/bookmarks/bookmarks.html | 48 + ...okmarks-list.component.ts => bookmarks.ts} | 164 +- .../button/bookmark-button.component.html | 7 - .../list/bookmarks-list.component.html | 50 - .../list/bookmarks-list.component.scss | 3 - ...ollection.ts => collections-add.dialog.ts} | 267 +- ...ection.ts => collections-delete.dialog.ts} | 142 +- ...ctions.ts => collections-manage.dialog.ts} | 391 +- .../collections/collections.component.html | 38 - .../features/collections/collections.html | 35 + ...ollections.component.ts => collections.ts} | 123 +- .../features/{dialog => dialogs}/i18n/en.json | 34 +- .../features/{dialog => dialogs}/i18n/fr.json | 34 +- .../override-user.dialog.ts} | 269 +- .../reset-user-settings.dialog.ts} | 133 +- .../did-you-mean/did-you-mean.component.html | 27 - .../features/did-you-mean/did-you-mean.html | 23 + ...-you-mean.component.ts => did-you-mean.ts} | 98 +- src/core/features/labels/i18n/en.json | 10 + src/core/features/labels/i18n/fr.json | 10 + .../labels-edit.dialog.ts} | 182 +- .../{dialog => }/labels/labels-form.ts | 314 +- ...t-search.component.ts => recent-search.ts} | 38 +- ...arches.component.ts => recent-searches.ts} | 191 +- .../saved-searches.component.html | 46 - .../saved-searches.component.scss | 3 - .../saved-searches/saved-searches.html | 44 + ...earches.component.ts => saved-searches.ts} | 207 +- ...ck.component.html => search-feedback.html} | 34 +- ...edback.component.ts => search-feedback.ts} | 130 +- .../features/{login => sign-in}/i18n/en.json | 24 +- .../features/{login => sign-in}/i18n/fr.json | 28 +- .../sign-in.html} | 320 +- .../login.component.ts => sign-in/sign-in.ts} | 326 +- .../sort-selector.component.html | 19 - .../sort-selector.component.scss | 0 .../features/sort-selector/sort-selector.html | 15 + ...selector.component.ts => sort-selector.ts} | 135 +- src/core/features/user-menu/user-menu.html | 227 +- src/core/features/user-menu/user-menu.ts | 240 +- src/core/registry/base-article.ts | 19 - src/core/registry/base-preview.ts | 16 - src/styles.scss | 129 +- tailwind-plugin/{article.js => article.cjs} | 0 tailwind-plugin/{avatar.js => avatar.cjs} | 1 - tailwind-plugin/{button.js => button.cjs} | 0 tailwind-plugin/{dropdown.js => dropdown.cjs} | 0 tailwind-plugin/{pill.js => pill.cjs} | 0 tailwind-plugin/{tab.js => tab.cjs} | 0 tailwind.config.js | 178 +- 100 files changed, 21770 insertions(+), 21584 deletions(-) delete mode 100644 .vscode/tasks.json delete mode 100644 src/app/pages/search/all/search-all.component.scss rename src/core/components/filters/{buttons/filter-date-button.component.ts => date/date-button.component.ts} (62%) rename src/core/components/filters/{filters-list.component.ts => filters-bar.component.ts} (85%) rename src/core/components/filters/{buttons/filters-more-button.component.ts => more/more-button.component.ts} (60%) rename src/core/components/filters/more/{filters-more.component.ts => more.component.ts} (88%) delete mode 100644 src/core/components/preview/navbar/preview-navbar.component.scss rename src/core/features/alerts/{alert-form.ts => alert.dialog.ts} (80%) create mode 100644 src/core/features/alerts/alerts.html rename src/core/features/alerts/{alerts/alerts.component.ts => alerts.ts} (59%) delete mode 100644 src/core/features/alerts/alerts/alerts.component.html rename src/core/features/bookmarks/{button/bookmark-button.component.ts => bookmark-button.ts} (71%) create mode 100644 src/core/features/bookmarks/bookmarks.html rename src/core/features/bookmarks/{list/bookmarks-list.component.ts => bookmarks.ts} (71%) delete mode 100644 src/core/features/bookmarks/button/bookmark-button.component.html delete mode 100644 src/core/features/bookmarks/list/bookmarks-list.component.html delete mode 100644 src/core/features/bookmarks/list/bookmarks-list.component.scss rename src/core/features/collections/{add-to-collection.ts => collections-add.dialog.ts} (75%) rename src/core/features/collections/{delete-collection.ts => collections-delete.dialog.ts} (55%) rename src/core/features/collections/{manage-collections.ts => collections-manage.dialog.ts} (58%) delete mode 100644 src/core/features/collections/collections.component.html create mode 100644 src/core/features/collections/collections.html rename src/core/features/collections/{collections.component.ts => collections.ts} (65%) rename src/core/features/{dialog => dialogs}/i18n/en.json (61%) rename src/core/features/{dialog => dialogs}/i18n/fr.json (62%) rename src/core/features/{dialog/override-user.ts => dialogs/override-user.dialog.ts} (75%) rename src/core/features/{dialog/reset-user-settings.ts => dialogs/reset-user-settings.dialog.ts} (50%) delete mode 100644 src/core/features/did-you-mean/did-you-mean.component.html create mode 100644 src/core/features/did-you-mean/did-you-mean.html rename src/core/features/did-you-mean/{did-you-mean.component.ts => did-you-mean.ts} (95%) create mode 100644 src/core/features/labels/i18n/en.json create mode 100644 src/core/features/labels/i18n/fr.json rename src/core/features/{dialog/labels/edit-labels.ts => labels/labels-edit.dialog.ts} (68%) rename src/core/features/{dialog => }/labels/labels-form.ts (96%) rename src/core/features/recent-searches/{recent-search.component.ts => recent-search.ts} (59%) rename src/core/features/recent-searches/{recent-searches.component.ts => recent-searches.ts} (67%) delete mode 100644 src/core/features/saved-searches/saved-searches.component.html delete mode 100644 src/core/features/saved-searches/saved-searches.component.scss create mode 100644 src/core/features/saved-searches/saved-searches.html rename src/core/features/saved-searches/{saved-searches.component.ts => saved-searches.ts} (82%) rename src/core/features/search-feedback/{search-feedback.component.html => search-feedback.html} (66%) rename src/core/features/search-feedback/{search-feedback.component.ts => search-feedback.ts} (93%) rename src/core/features/{login => sign-in}/i18n/en.json (96%) rename src/core/features/{login => sign-in}/i18n/fr.json (97%) rename src/core/features/{login/login.component.html => sign-in/sign-in.html} (62%) rename src/core/features/{login/login.component.ts => sign-in/sign-in.ts} (96%) delete mode 100644 src/core/features/sort-selector/sort-selector.component.html delete mode 100644 src/core/features/sort-selector/sort-selector.component.scss create mode 100644 src/core/features/sort-selector/sort-selector.html rename src/core/features/sort-selector/{sort-selector.component.ts => sort-selector.ts} (85%) delete mode 100644 src/core/registry/base-article.ts delete mode 100644 src/core/registry/base-preview.ts rename tailwind-plugin/{article.js => article.cjs} (100%) rename tailwind-plugin/{avatar.js => avatar.cjs} (90%) rename tailwind-plugin/{button.js => button.cjs} (100%) rename tailwind-plugin/{dropdown.js => dropdown.cjs} (100%) rename tailwind-plugin/{pill.js => pill.cjs} (100%) rename tailwind-plugin/{tab.js => tab.cjs} (100%) diff --git a/.prettierrc b/.prettierrc index 75107be7..3fefcaa4 100644 --- a/.prettierrc +++ b/.prettierrc @@ -3,6 +3,7 @@ "prettier-plugin-tailwindcss", "prettier-plugin-package" ], + "tailwindFunctions": ["tv"], "tabWidth": 2, "useTabs": false, "singleQuote": true, diff --git a/.vscode/launch.json b/.vscode/launch.json index 976f640c..afea751a 100644 --- a/.vscode/launch.json +++ b/.vscode/launch.json @@ -1,84 +1,84 @@ -{ - // Use IntelliSense to learn about possible attributes. - // Hover to view descriptions of existing attributes. - // For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387 - "version": "0.2.0", - "configurations": [ - { - "name": "Attach Edge", - "request": "attach", - "port": 9223, - "type": "msedge", - "urlFilter": "https://localhost:4200/*", - "webRoot": "${workspaceFolder}", - "sourceMapPathOverrides": { - "meteor://💻app/*": "${workspaceFolder}/*", - "webpack:///./~/*": "${workspaceFolder}/node_modules/*", - "webpack://?:*/*": "${workspaceFolder}/*" - } - }, - { - "name": "Launch Chrome Canary", - "request": "launch", - "runtimeExecutable": "canary", - "port": 9222, - "type": "chrome", - "url": "https://localhost:4200", - "webRoot": "${workspaceFolder}", - "sourceMapPathOverrides": { - "meteor://💻app/*": "${workspaceFolder}/*", - "webpack:///./~/*": "${workspaceFolder}/node_modules/*", - "webpack://?:*/*": "${workspaceFolder}/*" - } - }, - { - "name": "Launch Chrome", - "request": "launch", - "port": 9222, - "type": "chrome", - "url": "https://localhost:4200", - "webRoot": "${workspaceFolder}", - "sourceMapPathOverrides": { - "meteor://💻app/*": "${workspaceFolder}/*", - "webpack:///./~/*": "${workspaceFolder}/node_modules/*", - "webpack://?:*/*": "${workspaceFolder}/*" - } - }, - { - "name": "Attach to Chrome", - "port": 9223, - "request": "attach", - "type": "chrome", - "urlFilter": "http://localhost:4200/*", - "webRoot": "${workspaceFolder}", - "sourceMapPathOverrides": { - "webpack:///./*": "${workspaceFolder}/*" - } - }, - { - "name": "Attach to Storybook", - "port": 9223, - "request": "attach", - "type": "chrome", - "urlFilter": "https://localhost:6006/*", - "webRoot": "${workspaceFolder}", - "sourceMapPathOverrides": { - "webpack:///./*": "${workspaceFolder}/*" - } - }, - { - "name": "Attach to Karma", - "port": 9222, - "request": "attach", - "type": "chrome", - "address": "localhost", - "restart": true, - "timeout": 600000, - "sourceMaps": true, - "webRoot": "${workspaceFolder}", - "pathMapping": { - "/_karma_webpack_/": "${workspaceFolder}" - } - } - ] -} +{ + // Use IntelliSense to learn about possible attributes. + // Hover to view descriptions of existing attributes. + // For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387 + "version": "0.2.0", + "configurations": [ + { + "name": "Attach Edge", + "request": "attach", + "port": 9223, + "type": "msedge", + "urlFilter": "https://localhost:4200/*", + "webRoot": "${workspaceFolder}", + "sourceMapPathOverrides": { + "meteor://💻app/*": "${workspaceFolder}/*", + "webpack:///./~/*": "${workspaceFolder}/node_modules/*", + "webpack://?:*/*": "${workspaceFolder}/*" + } + }, + { + "name": "Launch Chrome Canary", + "request": "launch", + "runtimeExecutable": "canary", + "port": 9222, + "type": "chrome", + "url": "https://localhost:4200", + "webRoot": "${workspaceFolder}", + "sourceMapPathOverrides": { + "meteor://💻app/*": "${workspaceFolder}/*", + "webpack:///./~/*": "${workspaceFolder}/node_modules/*", + "webpack://?:*/*": "${workspaceFolder}/*" + } + }, + { + "name": "Launch Chrome", + "request": "launch", + "port": 9222, + "type": "chrome", + "url": "https://localhost:4200", + "webRoot": "${workspaceFolder}", + "sourceMapPathOverrides": { + "meteor://💻app/*": "${workspaceFolder}/*", + "webpack:///./~/*": "${workspaceFolder}/node_modules/*", + "webpack://?:*/*": "${workspaceFolder}/*" + } + }, + { + "name": "Attach to Chrome", + "port": 9223, + "request": "attach", + "type": "chrome", + "urlFilter": "https://localhost:4200/*", + "webRoot": "${workspaceFolder}", + "sourceMapPathOverrides": { + "webpack:///./*": "${workspaceFolder}/*" + } + }, + { + "name": "Attach to Storybook", + "port": 9223, + "request": "attach", + "type": "chrome", + "urlFilter": "https://localhost:6006/*", + "webRoot": "${workspaceFolder}", + "sourceMapPathOverrides": { + "webpack:///./*": "${workspaceFolder}/*" + } + }, + { + "name": "Attach to Karma", + "port": 9222, + "request": "attach", + "type": "chrome", + "address": "localhost", + "restart": true, + "timeout": 600000, + "sourceMaps": true, + "webRoot": "${workspaceFolder}", + "pathMapping": { + "/_karma_webpack_/": "${workspaceFolder}" + } + } + ] +} diff --git a/.vscode/tasks.json b/.vscode/tasks.json deleted file mode 100644 index a298b5bd..00000000 --- a/.vscode/tasks.json +++ /dev/null @@ -1,42 +0,0 @@ -{ - // For more information, visit: https://go.microsoft.com/fwlink/?LinkId=733558 - "version": "2.0.0", - "tasks": [ - { - "type": "npm", - "script": "start", - "isBackground": true, - "problemMatcher": { - "owner": "typescript", - "pattern": "$tsc", - "background": { - "activeOnStart": true, - "beginsPattern": { - "regexp": "(.*?)" - }, - "endsPattern": { - "regexp": "bundle generation complete" - } - } - } - }, - { - "type": "npm", - "script": "test", - "isBackground": true, - "problemMatcher": { - "owner": "typescript", - "pattern": "$tsc", - "background": { - "activeOnStart": true, - "beginsPattern": { - "regexp": "(.*?)" - }, - "endsPattern": { - "regexp": "bundle generation complete" - } - } - } - } - ] -} diff --git a/package-lock.json b/package-lock.json index dbd813e5..a35f3831 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,14265 +1,14292 @@ -{ - "name": "sinequa-mint", - "version": "0.0.0", - "lockfileVersion": 3, - "requires": true, - "packages": { - "": { - "name": "sinequa-mint", - "version": "0.0.0", - "dependencies": { - "@angular-architects/ngrx-toolkit": "^18.1.1", - "@angular-eslint/schematics": "^18.3.1", - "@angular/animations": "^18.2.5", - "@angular/cdk": "^19.1.0", - "@angular/common": "^18.2.5", - "@angular/compiler": "^18.2.5", - "@angular/core": "^18.2.5", - "@angular/forms": "^18.2.5", - "@angular/platform-browser": "^18.2.5", - "@angular/platform-browser-dynamic": "^18.2.5", - "@angular/router": "^18.2.5", - "@jsverse/transloco": "^7.4.2", - "@jsverse/transloco-messageformat": "^7.0.1", - "@microsoft/signalr": "^7.0.14", - "@ngrx/signals": "^18.1.1", - "@ngrx/store": "^18.1.1", - "@popperjs/core": "^2.11.8", - "@sinequa/atomic": "^0.0.72", - "@sinequa/atomic-angular": "^0.0.152", - "@tanstack/angular-query-experimental": "^5.40.0", - "@types/node": "^16.18.11", - "clsx": "^2.1.0", - "highlight-words": "^1.2.2", - "keyux": "^0.8.2", - "ngx-sonner": "^1.0.0", - "rxjs": "~7.8.0", - "tslib": "^2.3.0", - "zone.js": "~0.14.10" - }, - "devDependencies": { - "@angular-devkit/build-angular": "^18.2.5", - "@angular/cli": "^18.2.5", - "@angular/compiler-cli": "^18.2.5", - "@floating-ui/dom": "^1.6.3", - "@types/unist": "^2.0.7", - "autoprefixer": "^10.4.16", - "husky": "^9.1.7", - "lint-staged": "^15.4.1", - "postcss": "^8.4.32", - "prettier": "^3.4.2", - "prettier-plugin-package": "^1.4.0", - "prettier-plugin-tailwindcss": "^0.6.10", - "tailwind-merge": "^2.2.2", - "tailwindcss": "^3.4.1", - "typescript": "~5.4.2" - } - }, - "node_modules/@alloc/quick-lru": { - "version": "5.2.0", - "resolved": "https://npm.sinequa.com/@alloc/quick-lru/-/quick-lru-5.2.0.tgz", - "integrity": "sha512-UrcABB+4bUrFABwbluTIBErXwvbsU/V7TZWfmbgJfbkwiBuziS9gxdODUyuiecfdGQ85jglMW6juS3+z5TsKLw==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/@ampproject/remapping": { - "version": "2.3.0", - "resolved": "https://npm.sinequa.com/@ampproject/remapping/-/remapping-2.3.0.tgz", - "integrity": "sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw==", - "dev": true, - "license": "Apache-2.0", - "dependencies": { - "@jridgewell/gen-mapping": "^0.3.5", - "@jridgewell/trace-mapping": "^0.3.24" - }, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/@angular-architects/ngrx-toolkit": { - "version": "18.1.1", - "resolved": "https://npm.sinequa.com/@angular-architects/ngrx-toolkit/-/ngrx-toolkit-18.1.1.tgz", - "integrity": "sha512-0tYPUaFOHFNGc+2xzAh9OKREyQ+Gi5bASzY/mGbG6TQUg68aWdBTTGFv0lLTMKymIfx/6ZCTWILjZR7BQrfKgg==", - "license": "MIT", - "dependencies": { - "tslib": "^2.3.0" - }, - "peerDependencies": { - "@ngrx/signals": ">=18.1.0 <=18.1.1", - "@ngrx/store": ">=18.0.0" - }, - "peerDependenciesMeta": { - "@ngrx/store": { - "optional": true - } - } - }, - "node_modules/@angular-devkit/architect": { - "version": "0.1802.14", - "resolved": "https://npm.sinequa.com/@angular-devkit/architect/-/architect-0.1802.14.tgz", - "integrity": "sha512-eplaGCXSlPwf1f4XwyzsYTd8/lJ0/Adm6XsODsBxvkZlIpLcps80/h2lH5MVJpoDREzIFu1BweDpYCoNK5yYZg==", - "dev": true, - "license": "MIT", - "dependencies": { - "@angular-devkit/core": "18.2.14", - "rxjs": "7.8.1" - }, - "engines": { - "node": "^18.19.1 || ^20.11.1 || >=22.0.0", - "npm": "^6.11.0 || ^7.5.6 || >=8.0.0", - "yarn": ">= 1.13.0" - } - }, - "node_modules/@angular-devkit/build-angular": { - "version": "18.2.14", - "resolved": "https://npm.sinequa.com/@angular-devkit/build-angular/-/build-angular-18.2.14.tgz", - "integrity": "sha512-ycie4OhvNv8eNVqvq46pCIf6kB50xbMOdnAVqmlj+BaQjWbGjUQPjAmp4VGqeDZZ/lW82xkfTmJZxc6pYp7YdQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "@ampproject/remapping": "2.3.0", - "@angular-devkit/architect": "0.1802.14", - "@angular-devkit/build-webpack": "0.1802.14", - "@angular-devkit/core": "18.2.14", - "@angular/build": "18.2.14", - "@babel/core": "7.25.2", - "@babel/generator": "7.25.0", - "@babel/helper-annotate-as-pure": "7.24.7", - "@babel/helper-split-export-declaration": "7.24.7", - "@babel/plugin-transform-async-generator-functions": "7.25.0", - "@babel/plugin-transform-async-to-generator": "7.24.7", - "@babel/plugin-transform-runtime": "7.24.7", - "@babel/preset-env": "7.25.3", - "@babel/runtime": "7.25.0", - "@discoveryjs/json-ext": "0.6.1", - "@ngtools/webpack": "18.2.14", - "@vitejs/plugin-basic-ssl": "1.1.0", - "ansi-colors": "4.1.3", - "autoprefixer": "10.4.20", - "babel-loader": "9.1.3", - "browserslist": "^4.21.5", - "copy-webpack-plugin": "12.0.2", - "critters": "0.0.24", - "css-loader": "7.1.2", - "esbuild-wasm": "0.23.0", - "fast-glob": "3.3.2", - "http-proxy-middleware": "3.0.3", - "https-proxy-agent": "7.0.5", - "istanbul-lib-instrument": "6.0.3", - "jsonc-parser": "3.3.1", - "karma-source-map-support": "1.4.0", - "less": "4.2.0", - "less-loader": "12.2.0", - "license-webpack-plugin": "4.0.2", - "loader-utils": "3.3.1", - "magic-string": "0.30.11", - "mini-css-extract-plugin": "2.9.0", - "mrmime": "2.0.0", - "open": "10.1.0", - "ora": "5.4.1", - "parse5-html-rewriting-stream": "7.0.0", - "picomatch": "4.0.2", - "piscina": "4.6.1", - "postcss": "8.4.41", - "postcss-loader": "8.1.1", - "resolve-url-loader": "5.0.0", - "rxjs": "7.8.1", - "sass": "1.77.6", - "sass-loader": "16.0.0", - "semver": "7.6.3", - "source-map-loader": "5.0.0", - "source-map-support": "0.5.21", - "terser": "5.31.6", - "tree-kill": "1.2.2", - "tslib": "2.6.3", - "watchpack": "2.4.1", - "webpack": "5.94.0", - "webpack-dev-middleware": "7.4.2", - "webpack-dev-server": "5.0.4", - "webpack-merge": "6.0.1", - "webpack-subresource-integrity": "5.1.0" - }, - "engines": { - "node": "^18.19.1 || ^20.11.1 || >=22.0.0", - "npm": "^6.11.0 || ^7.5.6 || >=8.0.0", - "yarn": ">= 1.13.0" - }, - "optionalDependencies": { - "esbuild": "0.23.0" - }, - "peerDependencies": { - "@angular/compiler-cli": "^18.0.0", - "@angular/localize": "^18.0.0", - "@angular/platform-server": "^18.0.0", - "@angular/service-worker": "^18.0.0", - "@web/test-runner": "^0.18.0", - "browser-sync": "^3.0.2", - "jest": "^29.5.0", - "jest-environment-jsdom": "^29.5.0", - "karma": "^6.3.0", - "ng-packagr": "^18.0.0", - "protractor": "^7.0.0", - "tailwindcss": "^2.0.0 || ^3.0.0", - "typescript": ">=5.4 <5.6" - }, - "peerDependenciesMeta": { - "@angular/localize": { - "optional": true - }, - "@angular/platform-server": { - "optional": true - }, - "@angular/service-worker": { - "optional": true - }, - "@web/test-runner": { - "optional": true - }, - "browser-sync": { - "optional": true - }, - "jest": { - "optional": true - }, - "jest-environment-jsdom": { - "optional": true - }, - "karma": { - "optional": true - }, - "ng-packagr": { - "optional": true - }, - "protractor": { - "optional": true - }, - "tailwindcss": { - "optional": true - } - } - }, - "node_modules/@angular-devkit/build-angular/node_modules/postcss": { - "version": "8.4.41", - "resolved": "https://npm.sinequa.com/postcss/-/postcss-8.4.41.tgz", - "integrity": "sha512-TesUflQ0WKZqAvg52PWL6kHgLKP6xB6heTOdoYM0Wt2UHyxNa4K25EZZMgKns3BH1RLVbZCREPpLY0rhnNoHVQ==", - "dev": true, - "funding": [ - { - "type": "opencollective", - "url": "https://opencollective.com/postcss/" - }, - { - "type": "tidelift", - "url": "https://tidelift.com/funding/github/npm/postcss" - }, - { - "type": "github", - "url": "https://github.com/sponsors/ai" - } - ], - "license": "MIT", - "dependencies": { - "nanoid": "^3.3.7", - "picocolors": "^1.0.1", - "source-map-js": "^1.2.0" - }, - "engines": { - "node": "^10 || ^12 || >=14" - } - }, - "node_modules/@angular-devkit/build-angular/node_modules/tslib": { - "version": "2.6.3", - "resolved": "https://npm.sinequa.com/tslib/-/tslib-2.6.3.tgz", - "integrity": "sha512-xNvxJEOUiWPGhUuUdQgAJPKOOJfGnIyKySOc09XkKsgdUV/3E2zvwZYdejjmRgPCgcym1juLH3226yA7sEFJKQ==", - "dev": true, - "license": "0BSD" - }, - "node_modules/@angular-devkit/build-webpack": { - "version": "0.1802.14", - "resolved": "https://npm.sinequa.com/@angular-devkit/build-webpack/-/build-webpack-0.1802.14.tgz", - "integrity": "sha512-cccne0SG4BaQHsKRRZCi/wMLJ7yFXrwvE8w+Kug3HdpJJoyH3FeG386EQuca/azslQlK+c5g4ywSZdXeNkGazA==", - "dev": true, - "license": "MIT", - "dependencies": { - "@angular-devkit/architect": "0.1802.14", - "rxjs": "7.8.1" - }, - "engines": { - "node": "^18.19.1 || ^20.11.1 || >=22.0.0", - "npm": "^6.11.0 || ^7.5.6 || >=8.0.0", - "yarn": ">= 1.13.0" - }, - "peerDependencies": { - "webpack": "^5.30.0", - "webpack-dev-server": "^5.0.2" - } - }, - "node_modules/@angular-devkit/core": { - "version": "18.2.14", - "resolved": "https://npm.sinequa.com/@angular-devkit/core/-/core-18.2.14.tgz", - "integrity": "sha512-UGIGOjXuOyCW+5S4tINu7e6LOu738CmTw3h7Ui1I8OzdTIYJcYJrei8sgrwDwOYADRal+p0MeMlnykH3TM5XBA==", - "license": "MIT", - "dependencies": { - "ajv": "8.17.1", - "ajv-formats": "3.0.1", - "jsonc-parser": "3.3.1", - "picomatch": "4.0.2", - "rxjs": "7.8.1", - "source-map": "0.7.4" - }, - "engines": { - "node": "^18.19.1 || ^20.11.1 || >=22.0.0", - "npm": "^6.11.0 || ^7.5.6 || >=8.0.0", - "yarn": ">= 1.13.0" - }, - "peerDependencies": { - "chokidar": "^3.5.2" - }, - "peerDependenciesMeta": { - "chokidar": { - "optional": true - } - } - }, - "node_modules/@angular-devkit/schematics": { - "version": "18.2.14", - "resolved": "https://npm.sinequa.com/@angular-devkit/schematics/-/schematics-18.2.14.tgz", - "integrity": "sha512-mukjZIHHB7gWratq8fZwUq5WZ+1bF4feG/idXr1wgQ+/FqWjs2PP7HDesHVcPymmRulpTyCpB7TNB1O1fgnCpA==", - "license": "MIT", - "dependencies": { - "@angular-devkit/core": "18.2.14", - "jsonc-parser": "3.3.1", - "magic-string": "0.30.11", - "ora": "5.4.1", - "rxjs": "7.8.1" - }, - "engines": { - "node": "^18.19.1 || ^20.11.1 || >=22.0.0", - "npm": "^6.11.0 || ^7.5.6 || >=8.0.0", - "yarn": ">= 1.13.0" - } - }, - "node_modules/@angular-eslint/bundled-angular-compiler": { - "version": "18.4.3", - "resolved": "https://npm.sinequa.com/@angular-eslint/bundled-angular-compiler/-/bundled-angular-compiler-18.4.3.tgz", - "integrity": "sha512-zdrA8mR98X+U4YgHzUKmivRU+PxzwOL/j8G7eTOvBuq8GPzsP+hvak+tyxlgeGm9HsvpFj9ERHLtJ0xDUPs8fg==", - "license": "MIT" - }, - "node_modules/@angular-eslint/eslint-plugin": { - "version": "18.4.3", - "resolved": "https://npm.sinequa.com/@angular-eslint/eslint-plugin/-/eslint-plugin-18.4.3.tgz", - "integrity": "sha512-AyJbupiwTBR81P6T59v+aULEnPpZBCBxL2S5QFWfAhNCwWhcof4GihvdK2Z87yhvzDGeAzUFSWl/beJfeFa+PA==", - "license": "MIT", - "dependencies": { - "@angular-eslint/bundled-angular-compiler": "18.4.3", - "@angular-eslint/utils": "18.4.3" - }, - "peerDependencies": { - "@typescript-eslint/utils": "^7.11.0 || ^8.0.0", - "eslint": "^8.57.0 || ^9.0.0", - "typescript": "*" - } - }, - "node_modules/@angular-eslint/eslint-plugin-template": { - "version": "18.4.3", - "resolved": "https://npm.sinequa.com/@angular-eslint/eslint-plugin-template/-/eslint-plugin-template-18.4.3.tgz", - "integrity": "sha512-ijGlX2N01ayMXTpeQivOA31AszO8OEbu9ZQUCxnu9AyMMhxyi2q50bujRChAvN9YXQfdQtbxuajxV6+aiWb5BQ==", - "license": "MIT", - "dependencies": { - "@angular-eslint/bundled-angular-compiler": "18.4.3", - "@angular-eslint/utils": "18.4.3", - "aria-query": "5.3.2", - "axobject-query": "4.1.0" - }, - "peerDependencies": { - "@typescript-eslint/types": "^7.11.0 || ^8.0.0", - "@typescript-eslint/utils": "^7.11.0 || ^8.0.0", - "eslint": "^8.57.0 || ^9.0.0", - "typescript": "*" - } - }, - "node_modules/@angular-eslint/schematics": { - "version": "18.4.3", - "resolved": "https://npm.sinequa.com/@angular-eslint/schematics/-/schematics-18.4.3.tgz", - "integrity": "sha512-D5maKn5e6n58+8n7jLFLD4g+RGPOPeDSsvPc1sqial5tEKLxAJQJS9WZ28oef3bhkob6C60D+1H0mMmEEVvyVA==", - "license": "MIT", - "dependencies": { - "@angular-devkit/core": ">= 18.0.0 < 19.0.0", - "@angular-devkit/schematics": ">= 18.0.0 < 19.0.0", - "@angular-eslint/eslint-plugin": "18.4.3", - "@angular-eslint/eslint-plugin-template": "18.4.3", - "ignore": "6.0.2", - "semver": "7.6.3", - "strip-json-comments": "3.1.1" - } - }, - "node_modules/@angular-eslint/utils": { - "version": "18.4.3", - "resolved": "https://npm.sinequa.com/@angular-eslint/utils/-/utils-18.4.3.tgz", - "integrity": "sha512-w0bJ9+ELAEiPBSTPPm9bvDngfu1d8JbzUhvs2vU+z7sIz/HMwUZT5S4naypj2kNN0gZYGYrW0lt+HIbW87zTAQ==", - "license": "MIT", - "dependencies": { - "@angular-eslint/bundled-angular-compiler": "18.4.3" - }, - "peerDependencies": { - "@typescript-eslint/utils": "^7.11.0 || ^8.0.0", - "eslint": "^8.57.0 || ^9.0.0", - "typescript": "*" - } - }, - "node_modules/@angular/animations": { - "version": "18.2.13", - "resolved": "https://npm.sinequa.com/@angular/animations/-/animations-18.2.13.tgz", - "integrity": "sha512-rG5J5Ek5Hg+Tz2NjkNOaG6PupiNK/lPfophXpsR1t/nWujqnMWX2krahD/i6kgD+jNWNKCJCYSOVvCx/BHOtKA==", - "license": "MIT", - "dependencies": { - "tslib": "^2.3.0" - }, - "engines": { - "node": "^18.19.1 || ^20.11.1 || >=22.0.0" - }, - "peerDependencies": { - "@angular/core": "18.2.13" - } - }, - "node_modules/@angular/build": { - "version": "18.2.14", - "resolved": "https://npm.sinequa.com/@angular/build/-/build-18.2.14.tgz", - "integrity": "sha512-9g24Oe/ZLULacW3hEpRCjSZIJPJTzN5BeFbA27epSV5NsrQOoeUGsEpRs90Zmt6eReO0fW1BGshWRoZtpSedcw==", - "dev": true, - "license": "MIT", - "dependencies": { - "@ampproject/remapping": "2.3.0", - "@angular-devkit/architect": "0.1802.14", - "@babel/core": "7.25.2", - "@babel/helper-annotate-as-pure": "7.24.7", - "@babel/helper-split-export-declaration": "7.24.7", - "@babel/plugin-syntax-import-attributes": "7.24.7", - "@inquirer/confirm": "3.1.22", - "@vitejs/plugin-basic-ssl": "1.1.0", - "browserslist": "^4.23.0", - "critters": "0.0.24", - "esbuild": "0.23.0", - "fast-glob": "3.3.2", - "https-proxy-agent": "7.0.5", - "listr2": "8.2.4", - "lmdb": "3.0.13", - "magic-string": "0.30.11", - "mrmime": "2.0.0", - "parse5-html-rewriting-stream": "7.0.0", - "picomatch": "4.0.2", - "piscina": "4.6.1", - "rollup": "4.22.4", - "sass": "1.77.6", - "semver": "7.6.3", - "vite": "5.4.14", - "watchpack": "2.4.1" - }, - "engines": { - "node": "^18.19.1 || ^20.11.1 || >=22.0.0", - "npm": "^6.11.0 || ^7.5.6 || >=8.0.0", - "yarn": ">= 1.13.0" - }, - "peerDependencies": { - "@angular/compiler-cli": "^18.0.0", - "@angular/localize": "^18.0.0", - "@angular/platform-server": "^18.0.0", - "@angular/service-worker": "^18.0.0", - "less": "^4.2.0", - "postcss": "^8.4.0", - "tailwindcss": "^2.0.0 || ^3.0.0", - "typescript": ">=5.4 <5.6" - }, - "peerDependenciesMeta": { - "@angular/localize": { - "optional": true - }, - "@angular/platform-server": { - "optional": true - }, - "@angular/service-worker": { - "optional": true - }, - "less": { - "optional": true - }, - "postcss": { - "optional": true - }, - "tailwindcss": { - "optional": true - } - } - }, - "node_modules/@angular/cdk": { - "version": "19.1.3", - "resolved": "https://npm.sinequa.com/@angular/cdk/-/cdk-19.1.3.tgz", - "integrity": "sha512-A8d1V4AU2ZcNnEEwAUp4W1uYdT7EKHZM0PGicVhLyeetwYrpHiLoPioD7sw89TlPuJcd6mS7xV6AnXQ8peOoXg==", - "license": "MIT", - "dependencies": { - "tslib": "^2.3.0" - }, - "optionalDependencies": { - "parse5": "^7.1.2" - }, - "peerDependencies": { - "@angular/common": "^19.0.0 || ^20.0.0", - "@angular/core": "^19.0.0 || ^20.0.0", - "rxjs": "^6.5.3 || ^7.4.0" - } - }, - "node_modules/@angular/cli": { - "version": "18.2.14", - "resolved": "https://npm.sinequa.com/@angular/cli/-/cli-18.2.14.tgz", - "integrity": "sha512-kWgRRQtJPkr8iwN7DMbTi3sXOnv7H5QhbU/GgD3nNX3D8YCSPmnby4PAE/P3wn7FsIK9JsSchsCt7MZ37Urh9A==", - "dev": true, - "license": "MIT", - "dependencies": { - "@angular-devkit/architect": "0.1802.14", - "@angular-devkit/core": "18.2.14", - "@angular-devkit/schematics": "18.2.14", - "@inquirer/prompts": "5.3.8", - "@listr2/prompt-adapter-inquirer": "2.0.15", - "@schematics/angular": "18.2.14", - "@yarnpkg/lockfile": "1.1.0", - "ini": "4.1.3", - "jsonc-parser": "3.3.1", - "listr2": "8.2.4", - "npm-package-arg": "11.0.3", - "npm-pick-manifest": "9.1.0", - "pacote": "18.0.6", - "resolve": "1.22.8", - "semver": "7.6.3", - "symbol-observable": "4.0.0", - "yargs": "17.7.2" - }, - "bin": { - "ng": "bin/ng.js" - }, - "engines": { - "node": "^18.19.1 || ^20.11.1 || >=22.0.0", - "npm": "^6.11.0 || ^7.5.6 || >=8.0.0", - "yarn": ">= 1.13.0" - } - }, - "node_modules/@angular/common": { - "version": "18.2.13", - "resolved": "https://npm.sinequa.com/@angular/common/-/common-18.2.13.tgz", - "integrity": "sha512-4ZqrNp1PoZo7VNvW+sbSc2CB2axP1sCH2wXl8B0wdjsj8JY1hF1OhuugwhpAHtGxqewed2kCXayE+ZJqSTV4jw==", - "license": "MIT", - "dependencies": { - "tslib": "^2.3.0" - }, - "engines": { - "node": "^18.19.1 || ^20.11.1 || >=22.0.0" - }, - "peerDependencies": { - "@angular/core": "18.2.13", - "rxjs": "^6.5.3 || ^7.4.0" - } - }, - "node_modules/@angular/compiler": { - "version": "18.2.13", - "resolved": "https://npm.sinequa.com/@angular/compiler/-/compiler-18.2.13.tgz", - "integrity": "sha512-TzWcrkopyjFF+WeDr2cRe8CcHjU72KfYV3Sm2TkBkcXrkYX5sDjGWrBGrG3hRB4e4okqchrOCvm1MiTdy2vKMA==", - "license": "MIT", - "dependencies": { - "tslib": "^2.3.0" - }, - "engines": { - "node": "^18.19.1 || ^20.11.1 || >=22.0.0" - }, - "peerDependencies": { - "@angular/core": "18.2.13" - }, - "peerDependenciesMeta": { - "@angular/core": { - "optional": true - } - } - }, - "node_modules/@angular/compiler-cli": { - "version": "18.2.13", - "resolved": "https://npm.sinequa.com/@angular/compiler-cli/-/compiler-cli-18.2.13.tgz", - "integrity": "sha512-DBSh4AQwkiJDSiVvJATRmjxf6wyUs9pwQLgaFdSlfuTRO+sdb0J2z1r3BYm8t0IqdoyXzdZq2YCH43EmyvD71g==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/core": "7.25.2", - "@jridgewell/sourcemap-codec": "^1.4.14", - "chokidar": "^4.0.0", - "convert-source-map": "^1.5.1", - "reflect-metadata": "^0.2.0", - "semver": "^7.0.0", - "tslib": "^2.3.0", - "yargs": "^17.2.1" - }, - "bin": { - "ng-xi18n": "bundles/src/bin/ng_xi18n.js", - "ngc": "bundles/src/bin/ngc.js", - "ngcc": "bundles/ngcc/index.js" - }, - "engines": { - "node": "^18.19.1 || ^20.11.1 || >=22.0.0" - }, - "peerDependencies": { - "@angular/compiler": "18.2.13", - "typescript": ">=5.4 <5.6" - } - }, - "node_modules/@angular/core": { - "version": "18.2.13", - "resolved": "https://npm.sinequa.com/@angular/core/-/core-18.2.13.tgz", - "integrity": "sha512-8mbWHMgO95OuFV1Ejy4oKmbe9NOJ3WazQf/f7wks8Bck7pcihd0IKhlPBNjFllbF5o+04EYSwFhEtvEgjMDClA==", - "license": "MIT", - "dependencies": { - "tslib": "^2.3.0" - }, - "engines": { - "node": "^18.19.1 || ^20.11.1 || >=22.0.0" - }, - "peerDependencies": { - "rxjs": "^6.5.3 || ^7.4.0", - "zone.js": "~0.14.10" - } - }, - "node_modules/@angular/forms": { - "version": "18.2.13", - "resolved": "https://npm.sinequa.com/@angular/forms/-/forms-18.2.13.tgz", - "integrity": "sha512-A67D867fu3DSBhdLWWZl/F5pr7v2+dRM2u3U7ZJ0ewh4a+sv+0yqWdJW+a8xIoiHxS+btGEJL2qAKJiH+MCFfg==", - "license": "MIT", - "dependencies": { - "tslib": "^2.3.0" - }, - "engines": { - "node": "^18.19.1 || ^20.11.1 || >=22.0.0" - }, - "peerDependencies": { - "@angular/common": "18.2.13", - "@angular/core": "18.2.13", - "@angular/platform-browser": "18.2.13", - "rxjs": "^6.5.3 || ^7.4.0" - } - }, - "node_modules/@angular/platform-browser": { - "version": "18.2.13", - "resolved": "https://npm.sinequa.com/@angular/platform-browser/-/platform-browser-18.2.13.tgz", - "integrity": "sha512-tu7ZzY6qD3ATdWFzcTcsAKe7M6cJeWbT/4/bF9unyGO3XBPcNYDKoiz10+7ap2PUd0fmPwvuvTvSNJiFEBnB8Q==", - "license": "MIT", - "dependencies": { - "tslib": "^2.3.0" - }, - "engines": { - "node": "^18.19.1 || ^20.11.1 || >=22.0.0" - }, - "peerDependencies": { - "@angular/animations": "18.2.13", - "@angular/common": "18.2.13", - "@angular/core": "18.2.13" - }, - "peerDependenciesMeta": { - "@angular/animations": { - "optional": true - } - } - }, - "node_modules/@angular/platform-browser-dynamic": { - "version": "18.2.13", - "resolved": "https://npm.sinequa.com/@angular/platform-browser-dynamic/-/platform-browser-dynamic-18.2.13.tgz", - "integrity": "sha512-kbQCf9+8EpuJC7buBxhSiwBtXvjAwAKh6MznD6zd2pyCYqfY6gfRCZQRtK59IfgVtKmEONWI9grEyNIRoTmqJg==", - "license": "MIT", - "dependencies": { - "tslib": "^2.3.0" - }, - "engines": { - "node": "^18.19.1 || ^20.11.1 || >=22.0.0" - }, - "peerDependencies": { - "@angular/common": "18.2.13", - "@angular/compiler": "18.2.13", - "@angular/core": "18.2.13", - "@angular/platform-browser": "18.2.13" - } - }, - "node_modules/@angular/router": { - "version": "18.2.13", - "resolved": "https://npm.sinequa.com/@angular/router/-/router-18.2.13.tgz", - "integrity": "sha512-VKmfgi/r/CkyBq9nChQ/ptmfu0JT/8ONnLVJ5H+SkFLRYJcIRyHLKjRihMCyVm6xM5yktOdCaW73NTQrFz7+bg==", - "license": "MIT", - "dependencies": { - "tslib": "^2.3.0" - }, - "engines": { - "node": "^18.19.1 || ^20.11.1 || >=22.0.0" - }, - "peerDependencies": { - "@angular/common": "18.2.13", - "@angular/core": "18.2.13", - "@angular/platform-browser": "18.2.13", - "rxjs": "^6.5.3 || ^7.4.0" - } - }, - "node_modules/@babel/code-frame": { - "version": "7.26.2", - "resolved": "https://npm.sinequa.com/@babel/code-frame/-/code-frame-7.26.2.tgz", - "integrity": "sha512-RJlIHRueQgwWitWgF8OdFYGZX328Ax5BCemNGlqHfplnRT9ESi8JkFlvaVYbS+UubVY6dpv87Fs2u5M29iNFVQ==", - "license": "MIT", - "dependencies": { - "@babel/helper-validator-identifier": "^7.25.9", - "js-tokens": "^4.0.0", - "picocolors": "^1.0.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/compat-data": { - "version": "7.26.5", - "resolved": "https://npm.sinequa.com/@babel/compat-data/-/compat-data-7.26.5.tgz", - "integrity": "sha512-XvcZi1KWf88RVbF9wn8MN6tYFloU5qX8KjuF3E1PVBmJ9eypXfs4GRiJwLuTZL0iSnJUKn1BFPa5BPZZJyFzPg==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/core": { - "version": "7.25.2", - "resolved": "https://npm.sinequa.com/@babel/core/-/core-7.25.2.tgz", - "integrity": "sha512-BBt3opiCOxUr9euZ5/ro/Xv8/V7yJ5bjYMqG/C1YAo8MIKAnumZalCN+msbci3Pigy4lIQfPUpfMM27HMGaYEA==", - "dev": true, - "license": "MIT", - "dependencies": { - "@ampproject/remapping": "^2.2.0", - "@babel/code-frame": "^7.24.7", - "@babel/generator": "^7.25.0", - "@babel/helper-compilation-targets": "^7.25.2", - "@babel/helper-module-transforms": "^7.25.2", - "@babel/helpers": "^7.25.0", - "@babel/parser": "^7.25.0", - "@babel/template": "^7.25.0", - "@babel/traverse": "^7.25.2", - "@babel/types": "^7.25.2", - "convert-source-map": "^2.0.0", - "debug": "^4.1.0", - "gensync": "^1.0.0-beta.2", - "json5": "^2.2.3", - "semver": "^6.3.1" - }, - "engines": { - "node": ">=6.9.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/babel" - } - }, - "node_modules/@babel/core/node_modules/convert-source-map": { - "version": "2.0.0", - "resolved": "https://npm.sinequa.com/convert-source-map/-/convert-source-map-2.0.0.tgz", - "integrity": "sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==", - "dev": true, - "license": "MIT" - }, - "node_modules/@babel/core/node_modules/semver": { - "version": "6.3.1", - "resolved": "https://npm.sinequa.com/semver/-/semver-6.3.1.tgz", - "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", - "dev": true, - "license": "ISC", - "bin": { - "semver": "bin/semver.js" - } - }, - "node_modules/@babel/generator": { - "version": "7.25.0", - "resolved": "https://npm.sinequa.com/@babel/generator/-/generator-7.25.0.tgz", - "integrity": "sha512-3LEEcj3PVW8pW2R1SR1M89g/qrYk/m/mB/tLqn7dn4sbBUQyTqnlod+II2U4dqiGtUmkcnAmkMDralTFZttRiw==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/types": "^7.25.0", - "@jridgewell/gen-mapping": "^0.3.5", - "@jridgewell/trace-mapping": "^0.3.25", - "jsesc": "^2.5.1" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-annotate-as-pure": { - "version": "7.24.7", - "resolved": "https://npm.sinequa.com/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.24.7.tgz", - "integrity": "sha512-BaDeOonYvhdKw+JoMVkAixAAJzG2jVPIwWoKBPdYuY9b452e2rPuI9QPYh3KpofZ3pW2akOmwZLOiOsHMiqRAg==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/types": "^7.24.7" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-compilation-targets": { - "version": "7.26.5", - "resolved": "https://npm.sinequa.com/@babel/helper-compilation-targets/-/helper-compilation-targets-7.26.5.tgz", - "integrity": "sha512-IXuyn5EkouFJscIDuFF5EsiSolseme1s0CZB+QxVugqJLYmKdxI1VfIBOst0SUu4rnk2Z7kqTwmoO1lp3HIfnA==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/compat-data": "^7.26.5", - "@babel/helper-validator-option": "^7.25.9", - "browserslist": "^4.24.0", - "lru-cache": "^5.1.1", - "semver": "^6.3.1" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-compilation-targets/node_modules/semver": { - "version": "6.3.1", - "resolved": "https://npm.sinequa.com/semver/-/semver-6.3.1.tgz", - "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", - "dev": true, - "license": "ISC", - "bin": { - "semver": "bin/semver.js" - } - }, - "node_modules/@babel/helper-create-class-features-plugin": { - "version": "7.25.9", - "resolved": "https://npm.sinequa.com/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.25.9.tgz", - "integrity": "sha512-UTZQMvt0d/rSz6KI+qdu7GQze5TIajwTS++GUozlw8VBJDEOAqSXwm1WvmYEZwqdqSGQshRocPDqrt4HBZB3fQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-annotate-as-pure": "^7.25.9", - "@babel/helper-member-expression-to-functions": "^7.25.9", - "@babel/helper-optimise-call-expression": "^7.25.9", - "@babel/helper-replace-supers": "^7.25.9", - "@babel/helper-skip-transparent-expression-wrappers": "^7.25.9", - "@babel/traverse": "^7.25.9", - "semver": "^6.3.1" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0" - } - }, - "node_modules/@babel/helper-create-class-features-plugin/node_modules/@babel/helper-annotate-as-pure": { - "version": "7.25.9", - "resolved": "https://npm.sinequa.com/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.25.9.tgz", - "integrity": "sha512-gv7320KBUFJz1RnylIg5WWYPRXKZ884AGkYpgpWW02TH66Dl+HaC1t1CKd0z3R4b6hdYEcmrNZHUmfCP+1u3/g==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/types": "^7.25.9" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-create-class-features-plugin/node_modules/semver": { - "version": "6.3.1", - "resolved": "https://npm.sinequa.com/semver/-/semver-6.3.1.tgz", - "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", - "dev": true, - "license": "ISC", - "bin": { - "semver": "bin/semver.js" - } - }, - "node_modules/@babel/helper-create-regexp-features-plugin": { - "version": "7.26.3", - "resolved": "https://npm.sinequa.com/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.26.3.tgz", - "integrity": "sha512-G7ZRb40uUgdKOQqPLjfD12ZmGA54PzqDFUv2BKImnC9QIfGhIHKvVML0oN8IUiDq4iRqpq74ABpvOaerfWdong==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-annotate-as-pure": "^7.25.9", - "regexpu-core": "^6.2.0", - "semver": "^6.3.1" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0" - } - }, - "node_modules/@babel/helper-create-regexp-features-plugin/node_modules/@babel/helper-annotate-as-pure": { - "version": "7.25.9", - "resolved": "https://npm.sinequa.com/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.25.9.tgz", - "integrity": "sha512-gv7320KBUFJz1RnylIg5WWYPRXKZ884AGkYpgpWW02TH66Dl+HaC1t1CKd0z3R4b6hdYEcmrNZHUmfCP+1u3/g==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/types": "^7.25.9" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-create-regexp-features-plugin/node_modules/semver": { - "version": "6.3.1", - "resolved": "https://npm.sinequa.com/semver/-/semver-6.3.1.tgz", - "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", - "dev": true, - "license": "ISC", - "bin": { - "semver": "bin/semver.js" - } - }, - "node_modules/@babel/helper-define-polyfill-provider": { - "version": "0.6.3", - "resolved": "https://npm.sinequa.com/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.6.3.tgz", - "integrity": "sha512-HK7Bi+Hj6H+VTHA3ZvBis7V/6hu9QuTrnMXNybfUf2iiuU/N97I8VjB+KbhFF8Rld/Lx5MzoCwPCpPjfK+n8Cg==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-compilation-targets": "^7.22.6", - "@babel/helper-plugin-utils": "^7.22.5", - "debug": "^4.1.1", - "lodash.debounce": "^4.0.8", - "resolve": "^1.14.2" - }, - "peerDependencies": { - "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" - } - }, - "node_modules/@babel/helper-member-expression-to-functions": { - "version": "7.25.9", - "resolved": "https://npm.sinequa.com/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.25.9.tgz", - "integrity": "sha512-wbfdZ9w5vk0C0oyHqAJbc62+vet5prjj01jjJ8sKn3j9h3MQQlflEdXYvuqRWjHnM12coDEqiC1IRCi0U/EKwQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/traverse": "^7.25.9", - "@babel/types": "^7.25.9" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-module-imports": { - "version": "7.25.9", - "resolved": "https://npm.sinequa.com/@babel/helper-module-imports/-/helper-module-imports-7.25.9.tgz", - "integrity": "sha512-tnUA4RsrmflIM6W6RFTLFSXITtl0wKjgpnLgXyowocVPrbYrLUXSBXDgTs8BlbmIzIdlBySRQjINYs2BAkiLtw==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/traverse": "^7.25.9", - "@babel/types": "^7.25.9" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-module-transforms": { - "version": "7.26.0", - "resolved": "https://npm.sinequa.com/@babel/helper-module-transforms/-/helper-module-transforms-7.26.0.tgz", - "integrity": "sha512-xO+xu6B5K2czEnQye6BHA7DolFFmS3LB7stHZFaOLb1pAwO1HWLS8fXA+eh0A2yIvltPVmx3eNNDBJA2SLHXFw==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-module-imports": "^7.25.9", - "@babel/helper-validator-identifier": "^7.25.9", - "@babel/traverse": "^7.25.9" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0" - } - }, - "node_modules/@babel/helper-optimise-call-expression": { - "version": "7.25.9", - "resolved": "https://npm.sinequa.com/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.25.9.tgz", - "integrity": "sha512-FIpuNaz5ow8VyrYcnXQTDRGvV6tTjkNtCK/RYNDXGSLlUD6cBuQTSw43CShGxjvfBTfcUA/r6UhUCbtYqkhcuQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/types": "^7.25.9" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-plugin-utils": { - "version": "7.26.5", - "resolved": "https://npm.sinequa.com/@babel/helper-plugin-utils/-/helper-plugin-utils-7.26.5.tgz", - "integrity": "sha512-RS+jZcRdZdRFzMyr+wcsaqOmld1/EqTghfaBGQQd/WnRdzdlvSZ//kF7U8VQTxf1ynZ4cjUcYgjVGx13ewNPMg==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-remap-async-to-generator": { - "version": "7.25.9", - "resolved": "https://npm.sinequa.com/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.25.9.tgz", - "integrity": "sha512-IZtukuUeBbhgOcaW2s06OXTzVNJR0ybm4W5xC1opWFFJMZbwRj5LCk+ByYH7WdZPZTt8KnFwA8pvjN2yqcPlgw==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-annotate-as-pure": "^7.25.9", - "@babel/helper-wrap-function": "^7.25.9", - "@babel/traverse": "^7.25.9" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0" - } - }, - "node_modules/@babel/helper-remap-async-to-generator/node_modules/@babel/helper-annotate-as-pure": { - "version": "7.25.9", - "resolved": "https://npm.sinequa.com/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.25.9.tgz", - "integrity": "sha512-gv7320KBUFJz1RnylIg5WWYPRXKZ884AGkYpgpWW02TH66Dl+HaC1t1CKd0z3R4b6hdYEcmrNZHUmfCP+1u3/g==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/types": "^7.25.9" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-replace-supers": { - "version": "7.26.5", - "resolved": "https://npm.sinequa.com/@babel/helper-replace-supers/-/helper-replace-supers-7.26.5.tgz", - "integrity": "sha512-bJ6iIVdYX1YooY2X7w1q6VITt+LnUILtNk7zT78ykuwStx8BauCzxvFqFaHjOpW1bVnSUM1PN1f0p5P21wHxvg==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-member-expression-to-functions": "^7.25.9", - "@babel/helper-optimise-call-expression": "^7.25.9", - "@babel/traverse": "^7.26.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0" - } - }, - "node_modules/@babel/helper-skip-transparent-expression-wrappers": { - "version": "7.25.9", - "resolved": "https://npm.sinequa.com/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.25.9.tgz", - "integrity": "sha512-K4Du3BFa3gvyhzgPcntrkDgZzQaq6uozzcpGbOO1OEJaI+EJdqWIMTLgFgQf6lrfiDFo5FU+BxKepI9RmZqahA==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/traverse": "^7.25.9", - "@babel/types": "^7.25.9" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-split-export-declaration": { - "version": "7.24.7", - "resolved": "https://npm.sinequa.com/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.24.7.tgz", - "integrity": "sha512-oy5V7pD+UvfkEATUKvIjvIAH/xCzfsFVw7ygW2SI6NClZzquT+mwdTfgfdbUiceh6iQO0CHtCPsyze/MZ2YbAA==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/types": "^7.24.7" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-string-parser": { - "version": "7.25.9", - "resolved": "https://npm.sinequa.com/@babel/helper-string-parser/-/helper-string-parser-7.25.9.tgz", - "integrity": "sha512-4A/SCr/2KLd5jrtOMFzaKjVtAei3+2r/NChoBNoZ3EyP/+GlhoaEGoWOZUmFmoITP7zOJyHIMm+DYRd8o3PvHA==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-validator-identifier": { - "version": "7.25.9", - "resolved": "https://npm.sinequa.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.25.9.tgz", - "integrity": "sha512-Ed61U6XJc3CVRfkERJWDz4dJwKe7iLmmJsbOGu9wSloNSFttHV0I8g6UAgb7qnK5ly5bGLPd4oXZlxCdANBOWQ==", - "license": "MIT", - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-validator-option": { - "version": "7.25.9", - "resolved": "https://npm.sinequa.com/@babel/helper-validator-option/-/helper-validator-option-7.25.9.tgz", - "integrity": "sha512-e/zv1co8pp55dNdEcCynfj9X7nyUKUXoUEwfXqaZt0omVOmDe9oOTdKStH4GmAw6zxMFs50ZayuMfHDKlO7Tfw==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-wrap-function": { - "version": "7.25.9", - "resolved": "https://npm.sinequa.com/@babel/helper-wrap-function/-/helper-wrap-function-7.25.9.tgz", - "integrity": "sha512-ETzz9UTjQSTmw39GboatdymDq4XIQbR8ySgVrylRhPOFpsd+JrKHIuF0de7GCWmem+T4uC5z7EZguod7Wj4A4g==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/template": "^7.25.9", - "@babel/traverse": "^7.25.9", - "@babel/types": "^7.25.9" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helpers": { - "version": "7.26.7", - "resolved": "https://npm.sinequa.com/@babel/helpers/-/helpers-7.26.7.tgz", - "integrity": "sha512-8NHiL98vsi0mbPQmYAGWwfcFaOy4j2HY49fXJCfuDcdE7fMIsH9a7GdaeXpIBsbT7307WU8KCMp5pUVDNL4f9A==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/template": "^7.25.9", - "@babel/types": "^7.26.7" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/parser": { - "version": "7.26.7", - "resolved": "https://npm.sinequa.com/@babel/parser/-/parser-7.26.7.tgz", - "integrity": "sha512-kEvgGGgEjRUutvdVvZhbn/BxVt+5VSpwXz1j3WYXQbXDo8KzFOPNG2GQbdAiNq8g6wn1yKk7C/qrke03a84V+w==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/types": "^7.26.7" - }, - "bin": { - "parser": "bin/babel-parser.js" - }, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/@babel/plugin-bugfix-firefox-class-in-computed-class-key": { - "version": "7.25.9", - "resolved": "https://npm.sinequa.com/@babel/plugin-bugfix-firefox-class-in-computed-class-key/-/plugin-bugfix-firefox-class-in-computed-class-key-7.25.9.tgz", - "integrity": "sha512-ZkRyVkThtxQ/J6nv3JFYv1RYY+JT5BvU0y3k5bWrmuG4woXypRa4PXmm9RhOwodRkYFWqC0C0cqcJ4OqR7kW+g==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.25.9", - "@babel/traverse": "^7.25.9" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0" - } - }, - "node_modules/@babel/plugin-bugfix-safari-class-field-initializer-scope": { - "version": "7.25.9", - "resolved": "https://npm.sinequa.com/@babel/plugin-bugfix-safari-class-field-initializer-scope/-/plugin-bugfix-safari-class-field-initializer-scope-7.25.9.tgz", - "integrity": "sha512-MrGRLZxLD/Zjj0gdU15dfs+HH/OXvnw/U4jJD8vpcP2CJQapPEv1IWwjc/qMg7ItBlPwSv1hRBbb7LeuANdcnw==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.25.9" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0" - } - }, - "node_modules/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": { - "version": "7.25.9", - "resolved": "https://npm.sinequa.com/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression/-/plugin-bugfix-safari-id-destructuring-collision-in-function-expression-7.25.9.tgz", - "integrity": "sha512-2qUwwfAFpJLZqxd02YW9btUCZHl+RFvdDkNfZwaIJrvB8Tesjsk8pEQkTvGwZXLqXUx/2oyY3ySRhm6HOXuCug==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.25.9" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0" - } - }, - "node_modules/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": { - "version": "7.25.9", - "resolved": "https://npm.sinequa.com/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.25.9.tgz", - "integrity": "sha512-6xWgLZTJXwilVjlnV7ospI3xi+sl8lN8rXXbBD6vYn3UYDlGsag8wrZkKcSI8G6KgqKP7vNFaDgeDnfAABq61g==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.25.9", - "@babel/helper-skip-transparent-expression-wrappers": "^7.25.9", - "@babel/plugin-transform-optional-chaining": "^7.25.9" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.13.0" - } - }, - "node_modules/@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly": { - "version": "7.25.9", - "resolved": "https://npm.sinequa.com/@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly/-/plugin-bugfix-v8-static-class-fields-redefine-readonly-7.25.9.tgz", - "integrity": "sha512-aLnMXYPnzwwqhYSCyXfKkIkYgJ8zv9RK+roo9DkTXz38ynIhd9XCbN08s3MGvqL2MYGVUGdRQLL/JqBIeJhJBg==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.25.9", - "@babel/traverse": "^7.25.9" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0" - } - }, - "node_modules/@babel/plugin-proposal-private-property-in-object": { - "version": "7.21.0-placeholder-for-preset-env.2", - "resolved": "https://npm.sinequa.com/@babel/plugin-proposal-private-property-in-object/-/plugin-proposal-private-property-in-object-7.21.0-placeholder-for-preset-env.2.tgz", - "integrity": "sha512-SOSkfJDddaM7mak6cPEpswyTRnuRltl429hMraQEglW+OkovnCzsiszTmsrlY//qLFjCpQDFRvjdm2wA5pPm9w==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-async-generators": { - "version": "7.8.4", - "resolved": "https://npm.sinequa.com/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.8.4.tgz", - "integrity": "sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.8.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-class-properties": { - "version": "7.12.13", - "resolved": "https://npm.sinequa.com/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.12.13.tgz", - "integrity": "sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.12.13" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-class-static-block": { - "version": "7.14.5", - "resolved": "https://npm.sinequa.com/@babel/plugin-syntax-class-static-block/-/plugin-syntax-class-static-block-7.14.5.tgz", - "integrity": "sha512-b+YyPmr6ldyNnM6sqYeMWE+bgJcJpO6yS4QD7ymxgH34GBPNDM/THBh8iunyvKIZztiwLH4CJZ0RxTk9emgpjw==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.14.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-dynamic-import": { - "version": "7.8.3", - "resolved": "https://npm.sinequa.com/@babel/plugin-syntax-dynamic-import/-/plugin-syntax-dynamic-import-7.8.3.tgz", - "integrity": "sha512-5gdGbFon+PszYzqs83S3E5mpi7/y/8M9eC90MRTZfduQOYW76ig6SOSPNe41IG5LoP3FGBn2N0RjVDSQiS94kQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.8.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-export-namespace-from": { - "version": "7.8.3", - "resolved": "https://npm.sinequa.com/@babel/plugin-syntax-export-namespace-from/-/plugin-syntax-export-namespace-from-7.8.3.tgz", - "integrity": "sha512-MXf5laXo6c1IbEbegDmzGPwGNTsHZmEy6QGznu5Sh2UCWvueywb2ee+CCE4zQiZstxU9BMoQO9i6zUFSY0Kj0Q==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.8.3" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-import-assertions": { - "version": "7.26.0", - "resolved": "https://npm.sinequa.com/@babel/plugin-syntax-import-assertions/-/plugin-syntax-import-assertions-7.26.0.tgz", - "integrity": "sha512-QCWT5Hh830hK5EQa7XzuqIkQU9tT/whqbDz7kuaZMHFl1inRRg7JnuAEOQ0Ur0QUl0NufCk1msK2BeY79Aj/eg==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.25.9" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-import-attributes": { - "version": "7.24.7", - "resolved": "https://npm.sinequa.com/@babel/plugin-syntax-import-attributes/-/plugin-syntax-import-attributes-7.24.7.tgz", - "integrity": "sha512-hbX+lKKeUMGihnK8nvKqmXBInriT3GVjzXKFriV3YC6APGxMbP8RZNFwy91+hocLXq90Mta+HshoB31802bb8A==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.24.7" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-import-meta": { - "version": "7.10.4", - "resolved": "https://npm.sinequa.com/@babel/plugin-syntax-import-meta/-/plugin-syntax-import-meta-7.10.4.tgz", - "integrity": "sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.10.4" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-json-strings": { - "version": "7.8.3", - "resolved": "https://npm.sinequa.com/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.8.3.tgz", - "integrity": "sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.8.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-logical-assignment-operators": { - "version": "7.10.4", - "resolved": "https://npm.sinequa.com/@babel/plugin-syntax-logical-assignment-operators/-/plugin-syntax-logical-assignment-operators-7.10.4.tgz", - "integrity": "sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.10.4" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-nullish-coalescing-operator": { - "version": "7.8.3", - "resolved": "https://npm.sinequa.com/@babel/plugin-syntax-nullish-coalescing-operator/-/plugin-syntax-nullish-coalescing-operator-7.8.3.tgz", - "integrity": "sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.8.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-numeric-separator": { - "version": "7.10.4", - "resolved": "https://npm.sinequa.com/@babel/plugin-syntax-numeric-separator/-/plugin-syntax-numeric-separator-7.10.4.tgz", - "integrity": "sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.10.4" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-object-rest-spread": { - "version": "7.8.3", - "resolved": "https://npm.sinequa.com/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.8.3.tgz", - "integrity": "sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.8.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-optional-catch-binding": { - "version": "7.8.3", - "resolved": "https://npm.sinequa.com/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.8.3.tgz", - "integrity": "sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.8.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-optional-chaining": { - "version": "7.8.3", - "resolved": "https://npm.sinequa.com/@babel/plugin-syntax-optional-chaining/-/plugin-syntax-optional-chaining-7.8.3.tgz", - "integrity": "sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.8.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-private-property-in-object": { - "version": "7.14.5", - "resolved": "https://npm.sinequa.com/@babel/plugin-syntax-private-property-in-object/-/plugin-syntax-private-property-in-object-7.14.5.tgz", - "integrity": "sha512-0wVnp9dxJ72ZUJDV27ZfbSj6iHLoytYZmh3rFcxNnvsJF3ktkzLDZPy/mA17HGsaQT3/DQsWYX1f1QGWkCoVUg==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.14.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-top-level-await": { - "version": "7.14.5", - "resolved": "https://npm.sinequa.com/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.14.5.tgz", - "integrity": "sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.14.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-unicode-sets-regex": { - "version": "7.18.6", - "resolved": "https://npm.sinequa.com/@babel/plugin-syntax-unicode-sets-regex/-/plugin-syntax-unicode-sets-regex-7.18.6.tgz", - "integrity": "sha512-727YkEAPwSIQTv5im8QHz3upqp92JTWhidIC81Tdx4VJYIte/VndKf1qKrfnnhPLiPghStWfvC/iFaMCQu7Nqg==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-create-regexp-features-plugin": "^7.18.6", - "@babel/helper-plugin-utils": "^7.18.6" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0" - } - }, - "node_modules/@babel/plugin-transform-arrow-functions": { - "version": "7.25.9", - "resolved": "https://npm.sinequa.com/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.25.9.tgz", - "integrity": "sha512-6jmooXYIwn9ca5/RylZADJ+EnSxVUS5sjeJ9UPk6RWRzXCmOJCy6dqItPJFpw2cuCangPK4OYr5uhGKcmrm5Qg==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.25.9" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-async-generator-functions": { - "version": "7.25.0", - "resolved": "https://npm.sinequa.com/@babel/plugin-transform-async-generator-functions/-/plugin-transform-async-generator-functions-7.25.0.tgz", - "integrity": "sha512-uaIi2FdqzjpAMvVqvB51S42oC2JEVgh0LDsGfZVDysWE8LrJtQC2jvKmOqEYThKyB7bDEb7BP1GYWDm7tABA0Q==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.24.8", - "@babel/helper-remap-async-to-generator": "^7.25.0", - "@babel/plugin-syntax-async-generators": "^7.8.4", - "@babel/traverse": "^7.25.0" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-async-to-generator": { - "version": "7.24.7", - "resolved": "https://npm.sinequa.com/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.24.7.tgz", - "integrity": "sha512-SQY01PcJfmQ+4Ash7NE+rpbLFbmqA2GPIgqzxfFTL4t1FKRq4zTms/7htKpoCUI9OcFYgzqfmCdH53s6/jn5fA==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-module-imports": "^7.24.7", - "@babel/helper-plugin-utils": "^7.24.7", - "@babel/helper-remap-async-to-generator": "^7.24.7" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-block-scoped-functions": { - "version": "7.26.5", - "resolved": "https://npm.sinequa.com/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.26.5.tgz", - "integrity": "sha512-chuTSY+hq09+/f5lMj8ZSYgCFpppV2CbYrhNFJ1BFoXpiWPnnAb7R0MqrafCpN8E1+YRrtM1MXZHJdIx8B6rMQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.26.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-block-scoping": { - "version": "7.25.9", - "resolved": "https://npm.sinequa.com/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.25.9.tgz", - "integrity": "sha512-1F05O7AYjymAtqbsFETboN1NvBdcnzMerO+zlMyJBEz6WkMdejvGWw9p05iTSjC85RLlBseHHQpYaM4gzJkBGg==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.25.9" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-class-properties": { - "version": "7.25.9", - "resolved": "https://npm.sinequa.com/@babel/plugin-transform-class-properties/-/plugin-transform-class-properties-7.25.9.tgz", - "integrity": "sha512-bbMAII8GRSkcd0h0b4X+36GksxuheLFjP65ul9w6C3KgAamI3JqErNgSrosX6ZPj+Mpim5VvEbawXxJCyEUV3Q==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-create-class-features-plugin": "^7.25.9", - "@babel/helper-plugin-utils": "^7.25.9" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-class-static-block": { - "version": "7.26.0", - "resolved": "https://npm.sinequa.com/@babel/plugin-transform-class-static-block/-/plugin-transform-class-static-block-7.26.0.tgz", - "integrity": "sha512-6J2APTs7BDDm+UMqP1useWqhcRAXo0WIoVj26N7kPFB6S73Lgvyka4KTZYIxtgYXiN5HTyRObA72N2iu628iTQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-create-class-features-plugin": "^7.25.9", - "@babel/helper-plugin-utils": "^7.25.9" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.12.0" - } - }, - "node_modules/@babel/plugin-transform-classes": { - "version": "7.25.9", - "resolved": "https://npm.sinequa.com/@babel/plugin-transform-classes/-/plugin-transform-classes-7.25.9.tgz", - "integrity": "sha512-mD8APIXmseE7oZvZgGABDyM34GUmK45Um2TXiBUt7PnuAxrgoSVf123qUzPxEr/+/BHrRn5NMZCdE2m/1F8DGg==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-annotate-as-pure": "^7.25.9", - "@babel/helper-compilation-targets": "^7.25.9", - "@babel/helper-plugin-utils": "^7.25.9", - "@babel/helper-replace-supers": "^7.25.9", - "@babel/traverse": "^7.25.9", - "globals": "^11.1.0" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-classes/node_modules/@babel/helper-annotate-as-pure": { - "version": "7.25.9", - "resolved": "https://npm.sinequa.com/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.25.9.tgz", - "integrity": "sha512-gv7320KBUFJz1RnylIg5WWYPRXKZ884AGkYpgpWW02TH66Dl+HaC1t1CKd0z3R4b6hdYEcmrNZHUmfCP+1u3/g==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/types": "^7.25.9" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/plugin-transform-computed-properties": { - "version": "7.25.9", - "resolved": "https://npm.sinequa.com/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.25.9.tgz", - "integrity": "sha512-HnBegGqXZR12xbcTHlJ9HGxw1OniltT26J5YpfruGqtUHlz/xKf/G2ak9e+t0rVqrjXa9WOhvYPz1ERfMj23AA==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.25.9", - "@babel/template": "^7.25.9" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-destructuring": { - "version": "7.25.9", - "resolved": "https://npm.sinequa.com/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.25.9.tgz", - "integrity": "sha512-WkCGb/3ZxXepmMiX101nnGiU+1CAdut8oHyEOHxkKuS1qKpU2SMXE2uSvfz8PBuLd49V6LEsbtyPhWC7fnkgvQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.25.9" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-dotall-regex": { - "version": "7.25.9", - "resolved": "https://npm.sinequa.com/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.25.9.tgz", - "integrity": "sha512-t7ZQ7g5trIgSRYhI9pIJtRl64KHotutUJsh4Eze5l7olJv+mRSg4/MmbZ0tv1eeqRbdvo/+trvJD/Oc5DmW2cA==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-create-regexp-features-plugin": "^7.25.9", - "@babel/helper-plugin-utils": "^7.25.9" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-duplicate-keys": { - "version": "7.25.9", - "resolved": "https://npm.sinequa.com/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.25.9.tgz", - "integrity": "sha512-LZxhJ6dvBb/f3x8xwWIuyiAHy56nrRG3PeYTpBkkzkYRRQ6tJLu68lEF5VIqMUZiAV7a8+Tb78nEoMCMcqjXBw==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.25.9" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-duplicate-named-capturing-groups-regex": { - "version": "7.25.9", - "resolved": "https://npm.sinequa.com/@babel/plugin-transform-duplicate-named-capturing-groups-regex/-/plugin-transform-duplicate-named-capturing-groups-regex-7.25.9.tgz", - "integrity": "sha512-0UfuJS0EsXbRvKnwcLjFtJy/Sxc5J5jhLHnFhy7u4zih97Hz6tJkLU+O+FMMrNZrosUPxDi6sYxJ/EA8jDiAog==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-create-regexp-features-plugin": "^7.25.9", - "@babel/helper-plugin-utils": "^7.25.9" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0" - } - }, - "node_modules/@babel/plugin-transform-dynamic-import": { - "version": "7.25.9", - "resolved": "https://npm.sinequa.com/@babel/plugin-transform-dynamic-import/-/plugin-transform-dynamic-import-7.25.9.tgz", - "integrity": "sha512-GCggjexbmSLaFhqsojeugBpeaRIgWNTcgKVq/0qIteFEqY2A+b9QidYadrWlnbWQUrW5fn+mCvf3tr7OeBFTyg==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.25.9" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-exponentiation-operator": { - "version": "7.26.3", - "resolved": "https://npm.sinequa.com/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.26.3.tgz", - "integrity": "sha512-7CAHcQ58z2chuXPWblnn1K6rLDnDWieghSOEmqQsrBenH0P9InCUtOJYD89pvngljmZlJcz3fcmgYsXFNGa1ZQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.25.9" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-export-namespace-from": { - "version": "7.25.9", - "resolved": "https://npm.sinequa.com/@babel/plugin-transform-export-namespace-from/-/plugin-transform-export-namespace-from-7.25.9.tgz", - "integrity": "sha512-2NsEz+CxzJIVOPx2o9UsW1rXLqtChtLoVnwYHHiB04wS5sgn7mrV45fWMBX0Kk+ub9uXytVYfNP2HjbVbCB3Ww==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.25.9" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-for-of": { - "version": "7.25.9", - "resolved": "https://npm.sinequa.com/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.25.9.tgz", - "integrity": "sha512-LqHxduHoaGELJl2uhImHwRQudhCM50pT46rIBNvtT/Oql3nqiS3wOwP+5ten7NpYSXrrVLgtZU3DZmPtWZo16A==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.25.9", - "@babel/helper-skip-transparent-expression-wrappers": "^7.25.9" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-function-name": { - "version": "7.25.9", - "resolved": "https://npm.sinequa.com/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.25.9.tgz", - "integrity": "sha512-8lP+Yxjv14Vc5MuWBpJsoUCd3hD6V9DgBon2FVYL4jJgbnVQ9fTgYmonchzZJOVNgzEgbxp4OwAf6xz6M/14XA==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-compilation-targets": "^7.25.9", - "@babel/helper-plugin-utils": "^7.25.9", - "@babel/traverse": "^7.25.9" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-json-strings": { - "version": "7.25.9", - "resolved": "https://npm.sinequa.com/@babel/plugin-transform-json-strings/-/plugin-transform-json-strings-7.25.9.tgz", - "integrity": "sha512-xoTMk0WXceiiIvsaquQQUaLLXSW1KJ159KP87VilruQm0LNNGxWzahxSS6T6i4Zg3ezp4vA4zuwiNUR53qmQAw==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.25.9" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-literals": { - "version": "7.25.9", - "resolved": "https://npm.sinequa.com/@babel/plugin-transform-literals/-/plugin-transform-literals-7.25.9.tgz", - "integrity": "sha512-9N7+2lFziW8W9pBl2TzaNht3+pgMIRP74zizeCSrtnSKVdUl8mAjjOP2OOVQAfZ881P2cNjDj1uAMEdeD50nuQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.25.9" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-logical-assignment-operators": { - "version": "7.25.9", - "resolved": "https://npm.sinequa.com/@babel/plugin-transform-logical-assignment-operators/-/plugin-transform-logical-assignment-operators-7.25.9.tgz", - "integrity": "sha512-wI4wRAzGko551Y8eVf6iOY9EouIDTtPb0ByZx+ktDGHwv6bHFimrgJM/2T021txPZ2s4c7bqvHbd+vXG6K948Q==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.25.9" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-member-expression-literals": { - "version": "7.25.9", - "resolved": "https://npm.sinequa.com/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.25.9.tgz", - "integrity": "sha512-PYazBVfofCQkkMzh2P6IdIUaCEWni3iYEerAsRWuVd8+jlM1S9S9cz1dF9hIzyoZ8IA3+OwVYIp9v9e+GbgZhA==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.25.9" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-modules-amd": { - "version": "7.25.9", - "resolved": "https://npm.sinequa.com/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.25.9.tgz", - "integrity": "sha512-g5T11tnI36jVClQlMlt4qKDLlWnG5pP9CSM4GhdRciTNMRgkfpo5cR6b4rGIOYPgRRuFAvwjPQ/Yk+ql4dyhbw==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-module-transforms": "^7.25.9", - "@babel/helper-plugin-utils": "^7.25.9" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-modules-commonjs": { - "version": "7.26.3", - "resolved": "https://npm.sinequa.com/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.26.3.tgz", - "integrity": "sha512-MgR55l4q9KddUDITEzEFYn5ZsGDXMSsU9E+kh7fjRXTIC3RHqfCo8RPRbyReYJh44HQ/yomFkqbOFohXvDCiIQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-module-transforms": "^7.26.0", - "@babel/helper-plugin-utils": "^7.25.9" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-modules-systemjs": { - "version": "7.25.9", - "resolved": "https://npm.sinequa.com/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.25.9.tgz", - "integrity": "sha512-hyss7iIlH/zLHaehT+xwiymtPOpsiwIIRlCAOwBB04ta5Tt+lNItADdlXw3jAWZ96VJ2jlhl/c+PNIQPKNfvcA==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-module-transforms": "^7.25.9", - "@babel/helper-plugin-utils": "^7.25.9", - "@babel/helper-validator-identifier": "^7.25.9", - "@babel/traverse": "^7.25.9" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-modules-umd": { - "version": "7.25.9", - "resolved": "https://npm.sinequa.com/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.25.9.tgz", - "integrity": "sha512-bS9MVObUgE7ww36HEfwe6g9WakQ0KF07mQF74uuXdkoziUPfKyu/nIm663kz//e5O1nPInPFx36z7WJmJ4yNEw==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-module-transforms": "^7.25.9", - "@babel/helper-plugin-utils": "^7.25.9" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-named-capturing-groups-regex": { - "version": "7.25.9", - "resolved": "https://npm.sinequa.com/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.25.9.tgz", - "integrity": "sha512-oqB6WHdKTGl3q/ItQhpLSnWWOpjUJLsOCLVyeFgeTktkBSCiurvPOsyt93gibI9CmuKvTUEtWmG5VhZD+5T/KA==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-create-regexp-features-plugin": "^7.25.9", - "@babel/helper-plugin-utils": "^7.25.9" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0" - } - }, - "node_modules/@babel/plugin-transform-new-target": { - "version": "7.25.9", - "resolved": "https://npm.sinequa.com/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.25.9.tgz", - "integrity": "sha512-U/3p8X1yCSoKyUj2eOBIx3FOn6pElFOKvAAGf8HTtItuPyB+ZeOqfn+mvTtg9ZlOAjsPdK3ayQEjqHjU/yLeVQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.25.9" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-nullish-coalescing-operator": { - "version": "7.26.6", - "resolved": "https://npm.sinequa.com/@babel/plugin-transform-nullish-coalescing-operator/-/plugin-transform-nullish-coalescing-operator-7.26.6.tgz", - "integrity": "sha512-CKW8Vu+uUZneQCPtXmSBUC6NCAUdya26hWCElAWh5mVSlSRsmiCPUUDKb3Z0szng1hiAJa098Hkhg9o4SE35Qw==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.26.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-numeric-separator": { - "version": "7.25.9", - "resolved": "https://npm.sinequa.com/@babel/plugin-transform-numeric-separator/-/plugin-transform-numeric-separator-7.25.9.tgz", - "integrity": "sha512-TlprrJ1GBZ3r6s96Yq8gEQv82s8/5HnCVHtEJScUj90thHQbwe+E5MLhi2bbNHBEJuzrvltXSru+BUxHDoog7Q==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.25.9" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-object-rest-spread": { - "version": "7.25.9", - "resolved": "https://npm.sinequa.com/@babel/plugin-transform-object-rest-spread/-/plugin-transform-object-rest-spread-7.25.9.tgz", - "integrity": "sha512-fSaXafEE9CVHPweLYw4J0emp1t8zYTXyzN3UuG+lylqkvYd7RMrsOQ8TYx5RF231be0vqtFC6jnx3UmpJmKBYg==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-compilation-targets": "^7.25.9", - "@babel/helper-plugin-utils": "^7.25.9", - "@babel/plugin-transform-parameters": "^7.25.9" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-object-super": { - "version": "7.25.9", - "resolved": "https://npm.sinequa.com/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.25.9.tgz", - "integrity": "sha512-Kj/Gh+Rw2RNLbCK1VAWj2U48yxxqL2x0k10nPtSdRa0O2xnHXalD0s+o1A6a0W43gJ00ANo38jxkQreckOzv5A==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.25.9", - "@babel/helper-replace-supers": "^7.25.9" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-optional-catch-binding": { - "version": "7.25.9", - "resolved": "https://npm.sinequa.com/@babel/plugin-transform-optional-catch-binding/-/plugin-transform-optional-catch-binding-7.25.9.tgz", - "integrity": "sha512-qM/6m6hQZzDcZF3onzIhZeDHDO43bkNNlOX0i8n3lR6zLbu0GN2d8qfM/IERJZYauhAHSLHy39NF0Ctdvcid7g==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.25.9" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-optional-chaining": { - "version": "7.25.9", - "resolved": "https://npm.sinequa.com/@babel/plugin-transform-optional-chaining/-/plugin-transform-optional-chaining-7.25.9.tgz", - "integrity": "sha512-6AvV0FsLULbpnXeBjrY4dmWF8F7gf8QnvTEoO/wX/5xm/xE1Xo8oPuD3MPS+KS9f9XBEAWN7X1aWr4z9HdOr7A==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.25.9", - "@babel/helper-skip-transparent-expression-wrappers": "^7.25.9" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-parameters": { - "version": "7.25.9", - "resolved": "https://npm.sinequa.com/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.25.9.tgz", - "integrity": "sha512-wzz6MKwpnshBAiRmn4jR8LYz/g8Ksg0o80XmwZDlordjwEk9SxBzTWC7F5ef1jhbrbOW2DJ5J6ayRukrJmnr0g==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.25.9" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-private-methods": { - "version": "7.25.9", - "resolved": "https://npm.sinequa.com/@babel/plugin-transform-private-methods/-/plugin-transform-private-methods-7.25.9.tgz", - "integrity": "sha512-D/JUozNpQLAPUVusvqMxyvjzllRaF8/nSrP1s2YGQT/W4LHK4xxsMcHjhOGTS01mp9Hda8nswb+FblLdJornQw==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-create-class-features-plugin": "^7.25.9", - "@babel/helper-plugin-utils": "^7.25.9" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-private-property-in-object": { - "version": "7.25.9", - "resolved": "https://npm.sinequa.com/@babel/plugin-transform-private-property-in-object/-/plugin-transform-private-property-in-object-7.25.9.tgz", - "integrity": "sha512-Evf3kcMqzXA3xfYJmZ9Pg1OvKdtqsDMSWBDzZOPLvHiTt36E75jLDQo5w1gtRU95Q4E5PDttrTf25Fw8d/uWLw==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-annotate-as-pure": "^7.25.9", - "@babel/helper-create-class-features-plugin": "^7.25.9", - "@babel/helper-plugin-utils": "^7.25.9" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-private-property-in-object/node_modules/@babel/helper-annotate-as-pure": { - "version": "7.25.9", - "resolved": "https://npm.sinequa.com/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.25.9.tgz", - "integrity": "sha512-gv7320KBUFJz1RnylIg5WWYPRXKZ884AGkYpgpWW02TH66Dl+HaC1t1CKd0z3R4b6hdYEcmrNZHUmfCP+1u3/g==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/types": "^7.25.9" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/plugin-transform-property-literals": { - "version": "7.25.9", - "resolved": "https://npm.sinequa.com/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.25.9.tgz", - "integrity": "sha512-IvIUeV5KrS/VPavfSM/Iu+RE6llrHrYIKY1yfCzyO/lMXHQ+p7uGhonmGVisv6tSBSVgWzMBohTcvkC9vQcQFA==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.25.9" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-regenerator": { - "version": "7.25.9", - "resolved": "https://npm.sinequa.com/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.25.9.tgz", - "integrity": "sha512-vwDcDNsgMPDGP0nMqzahDWE5/MLcX8sv96+wfX7as7LoF/kr97Bo/7fI00lXY4wUXYfVmwIIyG80fGZ1uvt2qg==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.25.9", - "regenerator-transform": "^0.15.2" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-reserved-words": { - "version": "7.25.9", - "resolved": "https://npm.sinequa.com/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.25.9.tgz", - "integrity": "sha512-7DL7DKYjn5Su++4RXu8puKZm2XBPHyjWLUidaPEkCUBbE7IPcsrkRHggAOOKydH1dASWdcUBxrkOGNxUv5P3Jg==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.25.9" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-runtime": { - "version": "7.24.7", - "resolved": "https://npm.sinequa.com/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.24.7.tgz", - "integrity": "sha512-YqXjrk4C+a1kZjewqt+Mmu2UuV1s07y8kqcUf4qYLnoqemhR4gRQikhdAhSVJioMjVTu6Mo6pAbaypEA3jY6fw==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-module-imports": "^7.24.7", - "@babel/helper-plugin-utils": "^7.24.7", - "babel-plugin-polyfill-corejs2": "^0.4.10", - "babel-plugin-polyfill-corejs3": "^0.10.1", - "babel-plugin-polyfill-regenerator": "^0.6.1", - "semver": "^6.3.1" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-runtime/node_modules/semver": { - "version": "6.3.1", - "resolved": "https://npm.sinequa.com/semver/-/semver-6.3.1.tgz", - "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", - "dev": true, - "license": "ISC", - "bin": { - "semver": "bin/semver.js" - } - }, - "node_modules/@babel/plugin-transform-shorthand-properties": { - "version": "7.25.9", - "resolved": "https://npm.sinequa.com/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.25.9.tgz", - "integrity": "sha512-MUv6t0FhO5qHnS/W8XCbHmiRWOphNufpE1IVxhK5kuN3Td9FT1x4rx4K42s3RYdMXCXpfWkGSbCSd0Z64xA7Ng==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.25.9" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-spread": { - "version": "7.25.9", - "resolved": "https://npm.sinequa.com/@babel/plugin-transform-spread/-/plugin-transform-spread-7.25.9.tgz", - "integrity": "sha512-oNknIB0TbURU5pqJFVbOOFspVlrpVwo2H1+HUIsVDvp5VauGGDP1ZEvO8Nn5xyMEs3dakajOxlmkNW7kNgSm6A==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.25.9", - "@babel/helper-skip-transparent-expression-wrappers": "^7.25.9" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-sticky-regex": { - "version": "7.25.9", - "resolved": "https://npm.sinequa.com/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.25.9.tgz", - "integrity": "sha512-WqBUSgeVwucYDP9U/xNRQam7xV8W5Zf+6Eo7T2SRVUFlhRiMNFdFz58u0KZmCVVqs2i7SHgpRnAhzRNmKfi2uA==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.25.9" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-template-literals": { - "version": "7.25.9", - "resolved": "https://npm.sinequa.com/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.25.9.tgz", - "integrity": "sha512-o97AE4syN71M/lxrCtQByzphAdlYluKPDBzDVzMmfCobUjjhAryZV0AIpRPrxN0eAkxXO6ZLEScmt+PNhj2OTw==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.25.9" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-typeof-symbol": { - "version": "7.26.7", - "resolved": "https://npm.sinequa.com/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.26.7.tgz", - "integrity": "sha512-jfoTXXZTgGg36BmhqT3cAYK5qkmqvJpvNrPhaK/52Vgjhw4Rq29s9UqpWWV0D6yuRmgiFH/BUVlkl96zJWqnaw==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.26.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-unicode-escapes": { - "version": "7.25.9", - "resolved": "https://npm.sinequa.com/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.25.9.tgz", - "integrity": "sha512-s5EDrE6bW97LtxOcGj1Khcx5AaXwiMmi4toFWRDP9/y0Woo6pXC+iyPu/KuhKtfSrNFd7jJB+/fkOtZy6aIC6Q==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.25.9" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-unicode-property-regex": { - "version": "7.25.9", - "resolved": "https://npm.sinequa.com/@babel/plugin-transform-unicode-property-regex/-/plugin-transform-unicode-property-regex-7.25.9.tgz", - "integrity": "sha512-Jt2d8Ga+QwRluxRQ307Vlxa6dMrYEMZCgGxoPR8V52rxPyldHu3hdlHspxaqYmE7oID5+kB+UKUB/eWS+DkkWg==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-create-regexp-features-plugin": "^7.25.9", - "@babel/helper-plugin-utils": "^7.25.9" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-unicode-regex": { - "version": "7.25.9", - "resolved": "https://npm.sinequa.com/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.25.9.tgz", - "integrity": "sha512-yoxstj7Rg9dlNn9UQxzk4fcNivwv4nUYz7fYXBaKxvw/lnmPuOm/ikoELygbYq68Bls3D/D+NBPHiLwZdZZ4HA==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-create-regexp-features-plugin": "^7.25.9", - "@babel/helper-plugin-utils": "^7.25.9" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-unicode-sets-regex": { - "version": "7.25.9", - "resolved": "https://npm.sinequa.com/@babel/plugin-transform-unicode-sets-regex/-/plugin-transform-unicode-sets-regex-7.25.9.tgz", - "integrity": "sha512-8BYqO3GeVNHtx69fdPshN3fnzUNLrWdHhk/icSwigksJGczKSizZ+Z6SBCxTs723Fr5VSNorTIK7a+R2tISvwQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-create-regexp-features-plugin": "^7.25.9", - "@babel/helper-plugin-utils": "^7.25.9" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0" - } - }, - "node_modules/@babel/preset-env": { - "version": "7.25.3", - "resolved": "https://npm.sinequa.com/@babel/preset-env/-/preset-env-7.25.3.tgz", - "integrity": "sha512-QsYW7UeAaXvLPX9tdVliMJE7MD7M6MLYVTovRTIwhoYQVFHR1rM4wO8wqAezYi3/BpSD+NzVCZ69R6smWiIi8g==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/compat-data": "^7.25.2", - "@babel/helper-compilation-targets": "^7.25.2", - "@babel/helper-plugin-utils": "^7.24.8", - "@babel/helper-validator-option": "^7.24.8", - "@babel/plugin-bugfix-firefox-class-in-computed-class-key": "^7.25.3", - "@babel/plugin-bugfix-safari-class-field-initializer-scope": "^7.25.0", - "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": "^7.25.0", - "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": "^7.24.7", - "@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly": "^7.25.0", - "@babel/plugin-proposal-private-property-in-object": "7.21.0-placeholder-for-preset-env.2", - "@babel/plugin-syntax-async-generators": "^7.8.4", - "@babel/plugin-syntax-class-properties": "^7.12.13", - "@babel/plugin-syntax-class-static-block": "^7.14.5", - "@babel/plugin-syntax-dynamic-import": "^7.8.3", - "@babel/plugin-syntax-export-namespace-from": "^7.8.3", - "@babel/plugin-syntax-import-assertions": "^7.24.7", - "@babel/plugin-syntax-import-attributes": "^7.24.7", - "@babel/plugin-syntax-import-meta": "^7.10.4", - "@babel/plugin-syntax-json-strings": "^7.8.3", - "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4", - "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3", - "@babel/plugin-syntax-numeric-separator": "^7.10.4", - "@babel/plugin-syntax-object-rest-spread": "^7.8.3", - "@babel/plugin-syntax-optional-catch-binding": "^7.8.3", - "@babel/plugin-syntax-optional-chaining": "^7.8.3", - "@babel/plugin-syntax-private-property-in-object": "^7.14.5", - "@babel/plugin-syntax-top-level-await": "^7.14.5", - "@babel/plugin-syntax-unicode-sets-regex": "^7.18.6", - "@babel/plugin-transform-arrow-functions": "^7.24.7", - "@babel/plugin-transform-async-generator-functions": "^7.25.0", - "@babel/plugin-transform-async-to-generator": "^7.24.7", - "@babel/plugin-transform-block-scoped-functions": "^7.24.7", - "@babel/plugin-transform-block-scoping": "^7.25.0", - "@babel/plugin-transform-class-properties": "^7.24.7", - "@babel/plugin-transform-class-static-block": "^7.24.7", - "@babel/plugin-transform-classes": "^7.25.0", - "@babel/plugin-transform-computed-properties": "^7.24.7", - "@babel/plugin-transform-destructuring": "^7.24.8", - "@babel/plugin-transform-dotall-regex": "^7.24.7", - "@babel/plugin-transform-duplicate-keys": "^7.24.7", - "@babel/plugin-transform-duplicate-named-capturing-groups-regex": "^7.25.0", - "@babel/plugin-transform-dynamic-import": "^7.24.7", - "@babel/plugin-transform-exponentiation-operator": "^7.24.7", - "@babel/plugin-transform-export-namespace-from": "^7.24.7", - "@babel/plugin-transform-for-of": "^7.24.7", - "@babel/plugin-transform-function-name": "^7.25.1", - "@babel/plugin-transform-json-strings": "^7.24.7", - "@babel/plugin-transform-literals": "^7.25.2", - "@babel/plugin-transform-logical-assignment-operators": "^7.24.7", - "@babel/plugin-transform-member-expression-literals": "^7.24.7", - "@babel/plugin-transform-modules-amd": "^7.24.7", - "@babel/plugin-transform-modules-commonjs": "^7.24.8", - "@babel/plugin-transform-modules-systemjs": "^7.25.0", - "@babel/plugin-transform-modules-umd": "^7.24.7", - "@babel/plugin-transform-named-capturing-groups-regex": "^7.24.7", - "@babel/plugin-transform-new-target": "^7.24.7", - "@babel/plugin-transform-nullish-coalescing-operator": "^7.24.7", - "@babel/plugin-transform-numeric-separator": "^7.24.7", - "@babel/plugin-transform-object-rest-spread": "^7.24.7", - "@babel/plugin-transform-object-super": "^7.24.7", - "@babel/plugin-transform-optional-catch-binding": "^7.24.7", - "@babel/plugin-transform-optional-chaining": "^7.24.8", - "@babel/plugin-transform-parameters": "^7.24.7", - "@babel/plugin-transform-private-methods": "^7.24.7", - "@babel/plugin-transform-private-property-in-object": "^7.24.7", - "@babel/plugin-transform-property-literals": "^7.24.7", - "@babel/plugin-transform-regenerator": "^7.24.7", - "@babel/plugin-transform-reserved-words": "^7.24.7", - "@babel/plugin-transform-shorthand-properties": "^7.24.7", - "@babel/plugin-transform-spread": "^7.24.7", - "@babel/plugin-transform-sticky-regex": "^7.24.7", - "@babel/plugin-transform-template-literals": "^7.24.7", - "@babel/plugin-transform-typeof-symbol": "^7.24.8", - "@babel/plugin-transform-unicode-escapes": "^7.24.7", - "@babel/plugin-transform-unicode-property-regex": "^7.24.7", - "@babel/plugin-transform-unicode-regex": "^7.24.7", - "@babel/plugin-transform-unicode-sets-regex": "^7.24.7", - "@babel/preset-modules": "0.1.6-no-external-plugins", - "babel-plugin-polyfill-corejs2": "^0.4.10", - "babel-plugin-polyfill-corejs3": "^0.10.4", - "babel-plugin-polyfill-regenerator": "^0.6.1", - "core-js-compat": "^3.37.1", - "semver": "^6.3.1" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/preset-env/node_modules/semver": { - "version": "6.3.1", - "resolved": "https://npm.sinequa.com/semver/-/semver-6.3.1.tgz", - "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", - "dev": true, - "license": "ISC", - "bin": { - "semver": "bin/semver.js" - } - }, - "node_modules/@babel/preset-modules": { - "version": "0.1.6-no-external-plugins", - "resolved": "https://npm.sinequa.com/@babel/preset-modules/-/preset-modules-0.1.6-no-external-plugins.tgz", - "integrity": "sha512-HrcgcIESLm9aIR842yhJ5RWan/gebQUJ6E/E5+rf0y9o6oj7w0Br+sWuL6kEQ/o/AdfvR1Je9jG18/gnpwjEyA==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.0.0", - "@babel/types": "^7.4.4", - "esutils": "^2.0.2" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0 || ^8.0.0-0 <8.0.0" - } - }, - "node_modules/@babel/runtime": { - "version": "7.25.0", - "resolved": "https://npm.sinequa.com/@babel/runtime/-/runtime-7.25.0.tgz", - "integrity": "sha512-7dRy4DwXwtzBrPbZflqxnvfxLF8kdZXPkhymtDeFoFqE6ldzjQFgYTtYIFARcLEYDrqfBfYcZt1WqFxRoyC9Rw==", - "dev": true, - "license": "MIT", - "dependencies": { - "regenerator-runtime": "^0.14.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/template": { - "version": "7.25.9", - "resolved": "https://npm.sinequa.com/@babel/template/-/template-7.25.9.tgz", - "integrity": "sha512-9DGttpmPvIxBb/2uwpVo3dqJ+O6RooAFOS+lB+xDqoE2PVCE8nfoHMdZLpfCQRLwvohzXISPZcgxt80xLfsuwg==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/code-frame": "^7.25.9", - "@babel/parser": "^7.25.9", - "@babel/types": "^7.25.9" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/traverse": { - "version": "7.26.7", - "resolved": "https://npm.sinequa.com/@babel/traverse/-/traverse-7.26.7.tgz", - "integrity": "sha512-1x1sgeyRLC3r5fQOM0/xtQKsYjyxmFjaOrLJNtZ81inNjyJHGIolTULPiSc/2qe1/qfpFLisLQYFnnZl7QoedA==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/code-frame": "^7.26.2", - "@babel/generator": "^7.26.5", - "@babel/parser": "^7.26.7", - "@babel/template": "^7.25.9", - "@babel/types": "^7.26.7", - "debug": "^4.3.1", - "globals": "^11.1.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/traverse/node_modules/@babel/generator": { - "version": "7.26.5", - "resolved": "https://npm.sinequa.com/@babel/generator/-/generator-7.26.5.tgz", - "integrity": "sha512-2caSP6fN9I7HOe6nqhtft7V4g7/V/gfDsC3Ag4W7kEzzvRGKqiv0pu0HogPiZ3KaVSoNDhUws6IJjDjpfmYIXw==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/parser": "^7.26.5", - "@babel/types": "^7.26.5", - "@jridgewell/gen-mapping": "^0.3.5", - "@jridgewell/trace-mapping": "^0.3.25", - "jsesc": "^3.0.2" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/traverse/node_modules/jsesc": { - "version": "3.1.0", - "resolved": "https://npm.sinequa.com/jsesc/-/jsesc-3.1.0.tgz", - "integrity": "sha512-/sM3dO2FOzXjKQhJuo0Q173wf2KOo8t4I8vHy6lF9poUp7bKT0/NHE8fPX23PwfhnykfqnC2xRxOnVw5XuGIaA==", - "dev": true, - "license": "MIT", - "bin": { - "jsesc": "bin/jsesc" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/@babel/types": { - "version": "7.26.7", - "resolved": "https://npm.sinequa.com/@babel/types/-/types-7.26.7.tgz", - "integrity": "sha512-t8kDRGrKXyp6+tjUh7hw2RLyclsW4TRoRvRHtSyAX9Bb5ldlFh+90YAYY6awRXrlB4G5G2izNeGySpATlFzmOg==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-string-parser": "^7.25.9", - "@babel/helper-validator-identifier": "^7.25.9" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@discoveryjs/json-ext": { - "version": "0.6.1", - "resolved": "https://npm.sinequa.com/@discoveryjs/json-ext/-/json-ext-0.6.1.tgz", - "integrity": "sha512-boghen8F0Q8D+0/Q1/1r6DUEieUJ8w2a1gIknExMSHBsJFOr2+0KUfHiVYBvucPwl3+RU5PFBK833FjFCh3BhA==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=14.17.0" - } - }, - "node_modules/@esbuild/aix-ppc64": { - "version": "0.25.0", - "resolved": "https://npm.sinequa.com/@esbuild/aix-ppc64/-/aix-ppc64-0.25.0.tgz", - "integrity": "sha512-O7vun9Sf8DFjH2UtqK8Ku3LkquL9SZL8OLY1T5NZkA34+wG3OQF7cl4Ql8vdNzM6fzBbYfLaiRLIOZ+2FOCgBQ==", - "cpu": [ - "ppc64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "aix" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/android-arm": { - "version": "0.25.0", - "resolved": "https://npm.sinequa.com/@esbuild/android-arm/-/android-arm-0.25.0.tgz", - "integrity": "sha512-PTyWCYYiU0+1eJKmw21lWtC+d08JDZPQ5g+kFyxP0V+es6VPPSUhM6zk8iImp2jbV6GwjX4pap0JFbUQN65X1g==", - "cpu": [ - "arm" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "android" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/android-arm64": { - "version": "0.25.0", - "resolved": "https://npm.sinequa.com/@esbuild/android-arm64/-/android-arm64-0.25.0.tgz", - "integrity": "sha512-grvv8WncGjDSyUBjN9yHXNt+cq0snxXbDxy5pJtzMKGmmpPxeAmAhWxXI+01lU5rwZomDgD3kJwulEnhTRUd6g==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "android" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/android-x64": { - "version": "0.25.0", - "resolved": "https://npm.sinequa.com/@esbuild/android-x64/-/android-x64-0.25.0.tgz", - "integrity": "sha512-m/ix7SfKG5buCnxasr52+LI78SQ+wgdENi9CqyCXwjVR2X4Jkz+BpC3le3AoBPYTC9NHklwngVXvbJ9/Akhrfg==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "android" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/darwin-arm64": { - "version": "0.25.0", - "resolved": "https://npm.sinequa.com/@esbuild/darwin-arm64/-/darwin-arm64-0.25.0.tgz", - "integrity": "sha512-mVwdUb5SRkPayVadIOI78K7aAnPamoeFR2bT5nszFUZ9P8UpK4ratOdYbZZXYSqPKMHfS1wdHCJk1P1EZpRdvw==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/darwin-x64": { - "version": "0.25.0", - "resolved": "https://npm.sinequa.com/@esbuild/darwin-x64/-/darwin-x64-0.25.0.tgz", - "integrity": "sha512-DgDaYsPWFTS4S3nWpFcMn/33ZZwAAeAFKNHNa1QN0rI4pUjgqf0f7ONmXf6d22tqTY+H9FNdgeaAa+YIFUn2Rg==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/freebsd-arm64": { - "version": "0.25.0", - "resolved": "https://npm.sinequa.com/@esbuild/freebsd-arm64/-/freebsd-arm64-0.25.0.tgz", - "integrity": "sha512-VN4ocxy6dxefN1MepBx/iD1dH5K8qNtNe227I0mnTRjry8tj5MRk4zprLEdG8WPyAPb93/e4pSgi1SoHdgOa4w==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "freebsd" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/freebsd-x64": { - "version": "0.25.0", - "resolved": "https://npm.sinequa.com/@esbuild/freebsd-x64/-/freebsd-x64-0.25.0.tgz", - "integrity": "sha512-mrSgt7lCh07FY+hDD1TxiTyIHyttn6vnjesnPoVDNmDfOmggTLXRv8Id5fNZey1gl/V2dyVK1VXXqVsQIiAk+A==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "freebsd" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/linux-arm": { - "version": "0.25.0", - "resolved": "https://npm.sinequa.com/@esbuild/linux-arm/-/linux-arm-0.25.0.tgz", - "integrity": "sha512-vkB3IYj2IDo3g9xX7HqhPYxVkNQe8qTK55fraQyTzTX/fxaDtXiEnavv9geOsonh2Fd2RMB+i5cbhu2zMNWJwg==", - "cpu": [ - "arm" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/linux-arm64": { - "version": "0.25.0", - "resolved": "https://npm.sinequa.com/@esbuild/linux-arm64/-/linux-arm64-0.25.0.tgz", - "integrity": "sha512-9QAQjTWNDM/Vk2bgBl17yWuZxZNQIF0OUUuPZRKoDtqF2k4EtYbpyiG5/Dk7nqeK6kIJWPYldkOcBqjXjrUlmg==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/linux-ia32": { - "version": "0.25.0", - "resolved": "https://npm.sinequa.com/@esbuild/linux-ia32/-/linux-ia32-0.25.0.tgz", - "integrity": "sha512-43ET5bHbphBegyeqLb7I1eYn2P/JYGNmzzdidq/w0T8E2SsYL1U6un2NFROFRg1JZLTzdCoRomg8Rvf9M6W6Gg==", - "cpu": [ - "ia32" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/linux-loong64": { - "version": "0.25.0", - "resolved": "https://npm.sinequa.com/@esbuild/linux-loong64/-/linux-loong64-0.25.0.tgz", - "integrity": "sha512-fC95c/xyNFueMhClxJmeRIj2yrSMdDfmqJnyOY4ZqsALkDrrKJfIg5NTMSzVBr5YW1jf+l7/cndBfP3MSDpoHw==", - "cpu": [ - "loong64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/linux-mips64el": { - "version": "0.25.0", - "resolved": "https://npm.sinequa.com/@esbuild/linux-mips64el/-/linux-mips64el-0.25.0.tgz", - "integrity": "sha512-nkAMFju7KDW73T1DdH7glcyIptm95a7Le8irTQNO/qtkoyypZAnjchQgooFUDQhNAy4iu08N79W4T4pMBwhPwQ==", - "cpu": [ - "mips64el" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/linux-ppc64": { - "version": "0.25.0", - "resolved": "https://npm.sinequa.com/@esbuild/linux-ppc64/-/linux-ppc64-0.25.0.tgz", - "integrity": "sha512-NhyOejdhRGS8Iwv+KKR2zTq2PpysF9XqY+Zk77vQHqNbo/PwZCzB5/h7VGuREZm1fixhs4Q/qWRSi5zmAiO4Fw==", - "cpu": [ - "ppc64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/linux-riscv64": { - "version": "0.25.0", - "resolved": "https://npm.sinequa.com/@esbuild/linux-riscv64/-/linux-riscv64-0.25.0.tgz", - "integrity": "sha512-5S/rbP5OY+GHLC5qXp1y/Mx//e92L1YDqkiBbO9TQOvuFXM+iDqUNG5XopAnXoRH3FjIUDkeGcY1cgNvnXp/kA==", - "cpu": [ - "riscv64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/linux-s390x": { - "version": "0.25.0", - "resolved": "https://npm.sinequa.com/@esbuild/linux-s390x/-/linux-s390x-0.25.0.tgz", - "integrity": "sha512-XM2BFsEBz0Fw37V0zU4CXfcfuACMrppsMFKdYY2WuTS3yi8O1nFOhil/xhKTmE1nPmVyvQJjJivgDT+xh8pXJA==", - "cpu": [ - "s390x" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/linux-x64": { - "version": "0.25.0", - "resolved": "https://npm.sinequa.com/@esbuild/linux-x64/-/linux-x64-0.25.0.tgz", - "integrity": "sha512-9yl91rHw/cpwMCNytUDxwj2XjFpxML0y9HAOH9pNVQDpQrBxHy01Dx+vaMu0N1CKa/RzBD2hB4u//nfc+Sd3Cw==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/netbsd-arm64": { - "version": "0.25.0", - "resolved": "https://npm.sinequa.com/@esbuild/netbsd-arm64/-/netbsd-arm64-0.25.0.tgz", - "integrity": "sha512-RuG4PSMPFfrkH6UwCAqBzauBWTygTvb1nxWasEJooGSJ/NwRw7b2HOwyRTQIU97Hq37l3npXoZGYMy3b3xYvPw==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "netbsd" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/netbsd-x64": { - "version": "0.25.0", - "resolved": "https://npm.sinequa.com/@esbuild/netbsd-x64/-/netbsd-x64-0.25.0.tgz", - "integrity": "sha512-jl+qisSB5jk01N5f7sPCsBENCOlPiS/xptD5yxOx2oqQfyourJwIKLRA2yqWdifj3owQZCL2sn6o08dBzZGQzA==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "netbsd" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/openbsd-arm64": { - "version": "0.25.0", - "resolved": "https://npm.sinequa.com/@esbuild/openbsd-arm64/-/openbsd-arm64-0.25.0.tgz", - "integrity": "sha512-21sUNbq2r84YE+SJDfaQRvdgznTD8Xc0oc3p3iW/a1EVWeNj/SdUCbm5U0itZPQYRuRTW20fPMWMpcrciH2EJw==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "openbsd" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/openbsd-x64": { - "version": "0.25.0", - "resolved": "https://npm.sinequa.com/@esbuild/openbsd-x64/-/openbsd-x64-0.25.0.tgz", - "integrity": "sha512-2gwwriSMPcCFRlPlKx3zLQhfN/2WjJ2NSlg5TKLQOJdV0mSxIcYNTMhk3H3ulL/cak+Xj0lY1Ym9ysDV1igceg==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "openbsd" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/sunos-x64": { - "version": "0.25.0", - "resolved": "https://npm.sinequa.com/@esbuild/sunos-x64/-/sunos-x64-0.25.0.tgz", - "integrity": "sha512-bxI7ThgLzPrPz484/S9jLlvUAHYMzy6I0XiU1ZMeAEOBcS0VePBFxh1JjTQt3Xiat5b6Oh4x7UC7IwKQKIJRIg==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "sunos" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/win32-arm64": { - "version": "0.25.0", - "resolved": "https://npm.sinequa.com/@esbuild/win32-arm64/-/win32-arm64-0.25.0.tgz", - "integrity": "sha512-ZUAc2YK6JW89xTbXvftxdnYy3m4iHIkDtK3CLce8wg8M2L+YZhIvO1DKpxrd0Yr59AeNNkTiic9YLf6FTtXWMw==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/win32-ia32": { - "version": "0.25.0", - "resolved": "https://npm.sinequa.com/@esbuild/win32-ia32/-/win32-ia32-0.25.0.tgz", - "integrity": "sha512-eSNxISBu8XweVEWG31/JzjkIGbGIJN/TrRoiSVZwZ6pkC6VX4Im/WV2cz559/TXLcYbcrDN8JtKgd9DJVIo8GA==", - "cpu": [ - "ia32" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/win32-x64": { - "version": "0.25.0", - "resolved": "https://npm.sinequa.com/@esbuild/win32-x64/-/win32-x64-0.25.0.tgz", - "integrity": "sha512-ZENoHJBxA20C2zFzh6AI4fT6RraMzjYw4xKWemRTRmRVtN9c5DcH9r/f2ihEkMjOW5eGgrwCslG/+Y/3bL+DHQ==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@floating-ui/core": { - "version": "1.6.9", - "resolved": "https://npm.sinequa.com/@floating-ui/core/-/core-1.6.9.tgz", - "integrity": "sha512-uMXCuQ3BItDUbAMhIXw7UPXRfAlOAvZzdK9BWpE60MCn+Svt3aLn9jsPTi/WNGlRUu2uI0v5S7JiIUsbsvh3fw==", - "dev": true, - "license": "MIT", - "dependencies": { - "@floating-ui/utils": "^0.2.9" - } - }, - "node_modules/@floating-ui/dom": { - "version": "1.6.13", - "resolved": "https://npm.sinequa.com/@floating-ui/dom/-/dom-1.6.13.tgz", - "integrity": "sha512-umqzocjDgNRGTuO7Q8CU32dkHkECqI8ZdMZ5Swb6QAM0t5rnlrN3lGo1hdpscRd3WS8T6DKYK4ephgIH9iRh3w==", - "dev": true, - "license": "MIT", - "dependencies": { - "@floating-ui/core": "^1.6.0", - "@floating-ui/utils": "^0.2.9" - } - }, - "node_modules/@floating-ui/utils": { - "version": "0.2.9", - "resolved": "https://npm.sinequa.com/@floating-ui/utils/-/utils-0.2.9.tgz", - "integrity": "sha512-MDWhGtE+eHw5JW7lq4qhc5yRLS11ERl1c7Z6Xd0a58DozHES6EnNNwUWbMiG4J9Cgj053Bhk8zvlhFYKVhULwg==", - "dev": true, - "license": "MIT" - }, - "node_modules/@inquirer/checkbox": { - "version": "2.5.0", - "resolved": "https://npm.sinequa.com/@inquirer/checkbox/-/checkbox-2.5.0.tgz", - "integrity": "sha512-sMgdETOfi2dUHT8r7TT1BTKOwNvdDGFDXYWtQ2J69SvlYNntk9I/gJe7r5yvMwwsuKnYbuRs3pNhx4tgNck5aA==", - "dev": true, - "license": "MIT", - "dependencies": { - "@inquirer/core": "^9.1.0", - "@inquirer/figures": "^1.0.5", - "@inquirer/type": "^1.5.3", - "ansi-escapes": "^4.3.2", - "yoctocolors-cjs": "^2.1.2" - }, - "engines": { - "node": ">=18" - } - }, - "node_modules/@inquirer/confirm": { - "version": "3.1.22", - "resolved": "https://npm.sinequa.com/@inquirer/confirm/-/confirm-3.1.22.tgz", - "integrity": "sha512-gsAKIOWBm2Q87CDfs9fEo7wJT3fwWIJfnDGMn9Qy74gBnNFOACDNfhUzovubbJjWnKLGBln7/NcSmZwj5DuEXg==", - "dev": true, - "license": "MIT", - "dependencies": { - "@inquirer/core": "^9.0.10", - "@inquirer/type": "^1.5.2" - }, - "engines": { - "node": ">=18" - } - }, - "node_modules/@inquirer/core": { - "version": "9.2.1", - "resolved": "https://npm.sinequa.com/@inquirer/core/-/core-9.2.1.tgz", - "integrity": "sha512-F2VBt7W/mwqEU4bL0RnHNZmC/OxzNx9cOYxHqnXX3MP6ruYvZUZAW9imgN9+h/uBT/oP8Gh888J2OZSbjSeWcg==", - "dev": true, - "license": "MIT", - "dependencies": { - "@inquirer/figures": "^1.0.6", - "@inquirer/type": "^2.0.0", - "@types/mute-stream": "^0.0.4", - "@types/node": "^22.5.5", - "@types/wrap-ansi": "^3.0.0", - "ansi-escapes": "^4.3.2", - "cli-width": "^4.1.0", - "mute-stream": "^1.0.0", - "signal-exit": "^4.1.0", - "strip-ansi": "^6.0.1", - "wrap-ansi": "^6.2.0", - "yoctocolors-cjs": "^2.1.2" - }, - "engines": { - "node": ">=18" - } - }, - "node_modules/@inquirer/core/node_modules/@inquirer/type": { - "version": "2.0.0", - "resolved": "https://npm.sinequa.com/@inquirer/type/-/type-2.0.0.tgz", - "integrity": "sha512-XvJRx+2KR3YXyYtPUUy+qd9i7p+GO9Ko6VIIpWlBrpWwXDv8WLFeHTxz35CfQFUiBMLXlGHhGzys7lqit9gWag==", - "dev": true, - "license": "MIT", - "dependencies": { - "mute-stream": "^1.0.0" - }, - "engines": { - "node": ">=18" - } - }, - "node_modules/@inquirer/core/node_modules/@types/node": { - "version": "22.13.1", - "resolved": "https://npm.sinequa.com/@types/node/-/node-22.13.1.tgz", - "integrity": "sha512-jK8uzQlrvXqEU91UxiK5J7pKHyzgnI1Qnl0QDHIgVGuolJhRb9EEl28Cj9b3rGR8B2lhFCtvIm5os8lFnO/1Ew==", - "dev": true, - "license": "MIT", - "dependencies": { - "undici-types": "~6.20.0" - } - }, - "node_modules/@inquirer/editor": { - "version": "2.2.0", - "resolved": "https://npm.sinequa.com/@inquirer/editor/-/editor-2.2.0.tgz", - "integrity": "sha512-9KHOpJ+dIL5SZli8lJ6xdaYLPPzB8xB9GZItg39MBybzhxA16vxmszmQFrRwbOA918WA2rvu8xhDEg/p6LXKbw==", - "dev": true, - "license": "MIT", - "dependencies": { - "@inquirer/core": "^9.1.0", - "@inquirer/type": "^1.5.3", - "external-editor": "^3.1.0" - }, - "engines": { - "node": ">=18" - } - }, - "node_modules/@inquirer/expand": { - "version": "2.3.0", - "resolved": "https://npm.sinequa.com/@inquirer/expand/-/expand-2.3.0.tgz", - "integrity": "sha512-qnJsUcOGCSG1e5DTOErmv2BPQqrtT6uzqn1vI/aYGiPKq+FgslGZmtdnXbhuI7IlT7OByDoEEqdnhUnVR2hhLw==", - "dev": true, - "license": "MIT", - "dependencies": { - "@inquirer/core": "^9.1.0", - "@inquirer/type": "^1.5.3", - "yoctocolors-cjs": "^2.1.2" - }, - "engines": { - "node": ">=18" - } - }, - "node_modules/@inquirer/figures": { - "version": "1.0.10", - "resolved": "https://npm.sinequa.com/@inquirer/figures/-/figures-1.0.10.tgz", - "integrity": "sha512-Ey6176gZmeqZuY/W/nZiUyvmb1/qInjcpiZjXWi6nON+nxJpD1bxtSoBxNliGISae32n6OwbY+TSXPZ1CfS4bw==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=18" - } - }, - "node_modules/@inquirer/input": { - "version": "2.3.0", - "resolved": "https://npm.sinequa.com/@inquirer/input/-/input-2.3.0.tgz", - "integrity": "sha512-XfnpCStx2xgh1LIRqPXrTNEEByqQWoxsWYzNRSEUxJ5c6EQlhMogJ3vHKu8aXuTacebtaZzMAHwEL0kAflKOBw==", - "dev": true, - "license": "MIT", - "dependencies": { - "@inquirer/core": "^9.1.0", - "@inquirer/type": "^1.5.3" - }, - "engines": { - "node": ">=18" - } - }, - "node_modules/@inquirer/number": { - "version": "1.1.0", - "resolved": "https://npm.sinequa.com/@inquirer/number/-/number-1.1.0.tgz", - "integrity": "sha512-ilUnia/GZUtfSZy3YEErXLJ2Sljo/mf9fiKc08n18DdwdmDbOzRcTv65H1jjDvlsAuvdFXf4Sa/aL7iw/NanVA==", - "dev": true, - "license": "MIT", - "dependencies": { - "@inquirer/core": "^9.1.0", - "@inquirer/type": "^1.5.3" - }, - "engines": { - "node": ">=18" - } - }, - "node_modules/@inquirer/password": { - "version": "2.2.0", - "resolved": "https://npm.sinequa.com/@inquirer/password/-/password-2.2.0.tgz", - "integrity": "sha512-5otqIpgsPYIshqhgtEwSspBQE40etouR8VIxzpJkv9i0dVHIpyhiivbkH9/dGiMLdyamT54YRdGJLfl8TFnLHg==", - "dev": true, - "license": "MIT", - "dependencies": { - "@inquirer/core": "^9.1.0", - "@inquirer/type": "^1.5.3", - "ansi-escapes": "^4.3.2" - }, - "engines": { - "node": ">=18" - } - }, - "node_modules/@inquirer/prompts": { - "version": "5.3.8", - "resolved": "https://npm.sinequa.com/@inquirer/prompts/-/prompts-5.3.8.tgz", - "integrity": "sha512-b2BudQY/Si4Y2a0PdZZL6BeJtl8llgeZa7U2j47aaJSCeAl1e4UI7y8a9bSkO3o/ZbZrgT5muy/34JbsjfIWxA==", - "dev": true, - "license": "MIT", - "dependencies": { - "@inquirer/checkbox": "^2.4.7", - "@inquirer/confirm": "^3.1.22", - "@inquirer/editor": "^2.1.22", - "@inquirer/expand": "^2.1.22", - "@inquirer/input": "^2.2.9", - "@inquirer/number": "^1.0.10", - "@inquirer/password": "^2.1.22", - "@inquirer/rawlist": "^2.2.4", - "@inquirer/search": "^1.0.7", - "@inquirer/select": "^2.4.7" - }, - "engines": { - "node": ">=18" - } - }, - "node_modules/@inquirer/rawlist": { - "version": "2.3.0", - "resolved": "https://npm.sinequa.com/@inquirer/rawlist/-/rawlist-2.3.0.tgz", - "integrity": "sha512-zzfNuINhFF7OLAtGHfhwOW2TlYJyli7lOUoJUXw/uyklcwalV6WRXBXtFIicN8rTRK1XTiPWB4UY+YuW8dsnLQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "@inquirer/core": "^9.1.0", - "@inquirer/type": "^1.5.3", - "yoctocolors-cjs": "^2.1.2" - }, - "engines": { - "node": ">=18" - } - }, - "node_modules/@inquirer/search": { - "version": "1.1.0", - "resolved": "https://npm.sinequa.com/@inquirer/search/-/search-1.1.0.tgz", - "integrity": "sha512-h+/5LSj51dx7hp5xOn4QFnUaKeARwUCLs6mIhtkJ0JYPBLmEYjdHSYh7I6GrLg9LwpJ3xeX0FZgAG1q0QdCpVQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "@inquirer/core": "^9.1.0", - "@inquirer/figures": "^1.0.5", - "@inquirer/type": "^1.5.3", - "yoctocolors-cjs": "^2.1.2" - }, - "engines": { - "node": ">=18" - } - }, - "node_modules/@inquirer/select": { - "version": "2.5.0", - "resolved": "https://npm.sinequa.com/@inquirer/select/-/select-2.5.0.tgz", - "integrity": "sha512-YmDobTItPP3WcEI86GvPo+T2sRHkxxOq/kXmsBjHS5BVXUgvgZ5AfJjkvQvZr03T81NnI3KrrRuMzeuYUQRFOA==", - "dev": true, - "license": "MIT", - "dependencies": { - "@inquirer/core": "^9.1.0", - "@inquirer/figures": "^1.0.5", - "@inquirer/type": "^1.5.3", - "ansi-escapes": "^4.3.2", - "yoctocolors-cjs": "^2.1.2" - }, - "engines": { - "node": ">=18" - } - }, - "node_modules/@inquirer/type": { - "version": "1.5.5", - "resolved": "https://npm.sinequa.com/@inquirer/type/-/type-1.5.5.tgz", - "integrity": "sha512-MzICLu4yS7V8AA61sANROZ9vT1H3ooca5dSmI1FjZkzq7o/koMsRfQSzRtFo+F3Ao4Sf1C0bpLKejpKB/+j6MA==", - "dev": true, - "license": "MIT", - "dependencies": { - "mute-stream": "^1.0.0" - }, - "engines": { - "node": ">=18" - } - }, - "node_modules/@isaacs/cliui": { - "version": "8.0.2", - "resolved": "https://npm.sinequa.com/@isaacs/cliui/-/cliui-8.0.2.tgz", - "integrity": "sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==", - "license": "ISC", - "dependencies": { - "string-width": "^5.1.2", - "string-width-cjs": "npm:string-width@^4.2.0", - "strip-ansi": "^7.0.1", - "strip-ansi-cjs": "npm:strip-ansi@^6.0.1", - "wrap-ansi": "^8.1.0", - "wrap-ansi-cjs": "npm:wrap-ansi@^7.0.0" - }, - "engines": { - "node": ">=12" - } - }, - "node_modules/@isaacs/cliui/node_modules/ansi-regex": { - "version": "6.1.0", - "resolved": "https://npm.sinequa.com/ansi-regex/-/ansi-regex-6.1.0.tgz", - "integrity": "sha512-7HSX4QQb4CspciLpVFwyRe79O3xsIZDDLER21kERQ71oaPodF8jL725AgJMFAYbooIqolJoRLuM81SpeUkpkvA==", - "license": "MIT", - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/chalk/ansi-regex?sponsor=1" - } - }, - "node_modules/@isaacs/cliui/node_modules/ansi-styles": { - "version": "6.2.1", - "resolved": "https://npm.sinequa.com/ansi-styles/-/ansi-styles-6.2.1.tgz", - "integrity": "sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==", - "license": "MIT", - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/@isaacs/cliui/node_modules/strip-ansi": { - "version": "7.1.0", - "resolved": "https://npm.sinequa.com/strip-ansi/-/strip-ansi-7.1.0.tgz", - "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==", - "license": "MIT", - "dependencies": { - "ansi-regex": "^6.0.1" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/chalk/strip-ansi?sponsor=1" - } - }, - "node_modules/@isaacs/cliui/node_modules/wrap-ansi": { - "version": "8.1.0", - "resolved": "https://npm.sinequa.com/wrap-ansi/-/wrap-ansi-8.1.0.tgz", - "integrity": "sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==", - "license": "MIT", - "dependencies": { - "ansi-styles": "^6.1.0", - "string-width": "^5.0.1", - "strip-ansi": "^7.0.1" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/chalk/wrap-ansi?sponsor=1" - } - }, - "node_modules/@istanbuljs/schema": { - "version": "0.1.3", - "resolved": "https://npm.sinequa.com/@istanbuljs/schema/-/schema-0.1.3.tgz", - "integrity": "sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/@jridgewell/gen-mapping": { - "version": "0.3.8", - "resolved": "https://npm.sinequa.com/@jridgewell/gen-mapping/-/gen-mapping-0.3.8.tgz", - "integrity": "sha512-imAbBGkb+ebQyxKgzv5Hu2nmROxoDOXHh80evxdoXNOrvAnVx7zimzc1Oo5h9RlfV4vPXaE2iM5pOFbvOCClWA==", - "dev": true, - "license": "MIT", - "dependencies": { - "@jridgewell/set-array": "^1.2.1", - "@jridgewell/sourcemap-codec": "^1.4.10", - "@jridgewell/trace-mapping": "^0.3.24" - }, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/@jridgewell/resolve-uri": { - "version": "3.1.2", - "resolved": "https://npm.sinequa.com/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz", - "integrity": "sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/@jridgewell/set-array": { - "version": "1.2.1", - "resolved": "https://npm.sinequa.com/@jridgewell/set-array/-/set-array-1.2.1.tgz", - "integrity": "sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/@jridgewell/source-map": { - "version": "0.3.6", - "resolved": "https://npm.sinequa.com/@jridgewell/source-map/-/source-map-0.3.6.tgz", - "integrity": "sha512-1ZJTZebgqllO79ue2bm3rIGud/bOe0pP5BjSRCRxxYkEZS8STV7zN84UBbiYu7jy+eCKSnVIUgoWWE/tt+shMQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "@jridgewell/gen-mapping": "^0.3.5", - "@jridgewell/trace-mapping": "^0.3.25" - } - }, - "node_modules/@jridgewell/sourcemap-codec": { - "version": "1.5.0", - "resolved": "https://npm.sinequa.com/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.0.tgz", - "integrity": "sha512-gv3ZRaISU3fjPAgNsriBRqGWQL6quFx04YMPW/zD8XMLsU32mhCCbfbO6KZFLjvYpCZ8zyDEgqsgf+PwPaM7GQ==", - "license": "MIT" - }, - "node_modules/@jridgewell/trace-mapping": { - "version": "0.3.25", - "resolved": "https://npm.sinequa.com/@jridgewell/trace-mapping/-/trace-mapping-0.3.25.tgz", - "integrity": "sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "@jridgewell/resolve-uri": "^3.1.0", - "@jridgewell/sourcemap-codec": "^1.4.14" - } - }, - "node_modules/@jsonjoy.com/base64": { - "version": "1.1.2", - "resolved": "https://npm.sinequa.com/@jsonjoy.com/base64/-/base64-1.1.2.tgz", - "integrity": "sha512-q6XAnWQDIMA3+FTiOYajoYqySkO+JSat0ytXGSuRdq9uXE7o92gzuQwQM14xaCRlBLGq3v5miDGC4vkVTn54xA==", - "dev": true, - "license": "Apache-2.0", - "engines": { - "node": ">=10.0" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/streamich" - }, - "peerDependencies": { - "tslib": "2" - } - }, - "node_modules/@jsonjoy.com/json-pack": { - "version": "1.1.1", - "resolved": "https://npm.sinequa.com/@jsonjoy.com/json-pack/-/json-pack-1.1.1.tgz", - "integrity": "sha512-osjeBqMJ2lb/j/M8NCPjs1ylqWIcTRTycIhVB5pt6LgzgeRSb0YRZ7j9RfA8wIUrsr/medIuhVyonXRZWLyfdw==", - "dev": true, - "license": "Apache-2.0", - "dependencies": { - "@jsonjoy.com/base64": "^1.1.1", - "@jsonjoy.com/util": "^1.1.2", - "hyperdyperid": "^1.2.0", - "thingies": "^1.20.0" - }, - "engines": { - "node": ">=10.0" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/streamich" - }, - "peerDependencies": { - "tslib": "2" - } - }, - "node_modules/@jsonjoy.com/util": { - "version": "1.5.0", - "resolved": "https://npm.sinequa.com/@jsonjoy.com/util/-/util-1.5.0.tgz", - "integrity": "sha512-ojoNsrIuPI9g6o8UxhraZQSyF2ByJanAY4cTFbc8Mf2AXEF4aQRGY1dJxyJpuyav8r9FGflEt/Ff3u5Nt6YMPA==", - "dev": true, - "license": "Apache-2.0", - "engines": { - "node": ">=10.0" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/streamich" - }, - "peerDependencies": { - "tslib": "2" - } - }, - "node_modules/@jsverse/transloco": { - "version": "7.5.1", - "resolved": "https://npm.sinequa.com/@jsverse/transloco/-/transloco-7.5.1.tgz", - "integrity": "sha512-2GtJKFKmwvw7ygkf51kNMNJ1PSiepvDIqgFM1Sl8aX6if/kZ4/FNKVz0t64QP2JHUU16I2Le05In7IbiRE7ZrQ==", - "license": "MIT", - "dependencies": { - "@jsverse/transloco-utils": "^7.0.0", - "fs-extra": "^11.0.0", - "glob": "^10.0.0", - "lodash.kebabcase": "^4.1.1", - "ora": "^5.4.1", - "replace-in-file": "^7.0.1", - "tslib": "^2.2.0" - }, - "peerDependencies": { - "@angular/core": ">=16.0.0" - } - }, - "node_modules/@jsverse/transloco-messageformat": { - "version": "7.0.1", - "resolved": "https://npm.sinequa.com/@jsverse/transloco-messageformat/-/transloco-messageformat-7.0.1.tgz", - "integrity": "sha512-yhTizhEUD/omY40UWqQkQwRP9O7RxPkYB2QZlpgGu0IqS1RqNhmLX+j5MJLePZzpH3n9zfx+rkPM+oqfDsKBSg==", - "license": "MIT", - "dependencies": { - "@messageformat/core": "^3.0.0", - "tslib": "^2.2.0" - }, - "peerDependencies": { - "@angular/core": ">=16.0.0", - "@jsverse/transloco": ">=7.0.0", - "rxjs": ">=6.0.0" - } - }, - "node_modules/@jsverse/transloco-utils": { - "version": "7.0.2", - "resolved": "https://npm.sinequa.com/@jsverse/transloco-utils/-/transloco-utils-7.0.2.tgz", - "integrity": "sha512-zud1M68mMC/Pu6irEba+Z2SzmwmmPzUPnBzMKlcGdIhzUe1z41cqQutK1M0QaQpY4h4yhumXcNaY/Ot6piv6QQ==", - "license": "MIT", - "dependencies": { - "cosmiconfig": "^8.1.3", - "tslib": "^2.3.0" - }, - "engines": { - "node": ">=16" - } - }, - "node_modules/@leichtgewicht/ip-codec": { - "version": "2.0.5", - "resolved": "https://npm.sinequa.com/@leichtgewicht/ip-codec/-/ip-codec-2.0.5.tgz", - "integrity": "sha512-Vo+PSpZG2/fmgmiNzYK9qWRh8h/CHrwD0mo1h1DzL4yzHNSfWYujGTYsWGreD000gcgmZ7K4Ys6Tx9TxtsKdDw==", - "dev": true, - "license": "MIT" - }, - "node_modules/@listr2/prompt-adapter-inquirer": { - "version": "2.0.15", - "resolved": "https://npm.sinequa.com/@listr2/prompt-adapter-inquirer/-/prompt-adapter-inquirer-2.0.15.tgz", - "integrity": "sha512-MZrGem/Ujjd4cPTLYDfCZK2iKKeiO/8OX13S6jqxldLs0Prf2aGqVlJ77nMBqMv7fzqgXEgjrNHLXcKR8l9lOg==", - "dev": true, - "license": "MIT", - "dependencies": { - "@inquirer/type": "^1.5.1" - }, - "engines": { - "node": ">=18.0.0" - }, - "peerDependencies": { - "@inquirer/prompts": ">= 3 < 6" - } - }, - "node_modules/@lmdb/lmdb-darwin-arm64": { - "version": "3.0.13", - "resolved": "https://npm.sinequa.com/@lmdb/lmdb-darwin-arm64/-/lmdb-darwin-arm64-3.0.13.tgz", - "integrity": "sha512-uiKPB0Fv6WEEOZjruu9a6wnW/8jrjzlZbxXscMB8kuCJ1k6kHpcBnuvaAWcqhbI7rqX5GKziwWEdD+wi2gNLfA==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "darwin" - ] - }, - "node_modules/@lmdb/lmdb-darwin-x64": { - "version": "3.0.13", - "resolved": "https://npm.sinequa.com/@lmdb/lmdb-darwin-x64/-/lmdb-darwin-x64-3.0.13.tgz", - "integrity": "sha512-bEVIIfK5mSQoG1R19qA+fJOvCB+0wVGGnXHT3smchBVahYBdlPn2OsZZKzlHWfb1E+PhLBmYfqB5zQXFP7hJig==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "darwin" - ] - }, - "node_modules/@lmdb/lmdb-linux-arm": { - "version": "3.0.13", - "resolved": "https://npm.sinequa.com/@lmdb/lmdb-linux-arm/-/lmdb-linux-arm-3.0.13.tgz", - "integrity": "sha512-Yml1KlMzOnXj/tnW7yX8U78iAzTk39aILYvCPbqeewAq1kSzl+w59k/fiVkTBfvDi/oW/5YRxL+Fq+Y1Fr1r2Q==", - "cpu": [ - "arm" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/@lmdb/lmdb-linux-arm64": { - "version": "3.0.13", - "resolved": "https://npm.sinequa.com/@lmdb/lmdb-linux-arm64/-/lmdb-linux-arm64-3.0.13.tgz", - "integrity": "sha512-afbVrsMgZ9dUTNUchFpj5VkmJRxvht/u335jUJ7o23YTbNbnpmXif3VKQGCtnjSh+CZaqm6N3CPG8KO3zwyZ1Q==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/@lmdb/lmdb-linux-x64": { - "version": "3.0.13", - "resolved": "https://npm.sinequa.com/@lmdb/lmdb-linux-x64/-/lmdb-linux-x64-3.0.13.tgz", - "integrity": "sha512-vOtxu0xC0SLdQ2WRXg8Qgd8T32ak4SPqk5zjItRszrJk2BdeXqfGxBJbP7o4aOvSPSmSSv46Lr1EP4HXU8v7Kg==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/@lmdb/lmdb-win32-x64": { - "version": "3.0.13", - "resolved": "https://npm.sinequa.com/@lmdb/lmdb-win32-x64/-/lmdb-win32-x64-3.0.13.tgz", - "integrity": "sha512-UCrMJQY/gJnOl3XgbWRZZUvGGBuKy6i0YNSptgMzHBjs+QYDYR1Mt/RLTOPy4fzzves65O1EDmlL//OzEqoLlA==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "win32" - ] - }, - "node_modules/@messageformat/core": { - "version": "3.4.0", - "resolved": "https://npm.sinequa.com/@messageformat/core/-/core-3.4.0.tgz", - "integrity": "sha512-NgCFubFFIdMWJGN5WuQhHCNmzk7QgiVfrViFxcS99j7F5dDS5EP6raR54I+2ydhe4+5/XTn/YIEppFaqqVWHsw==", - "license": "MIT", - "dependencies": { - "@messageformat/date-skeleton": "^1.0.0", - "@messageformat/number-skeleton": "^1.0.0", - "@messageformat/parser": "^5.1.0", - "@messageformat/runtime": "^3.0.1", - "make-plural": "^7.0.0", - "safe-identifier": "^0.4.1" - } - }, - "node_modules/@messageformat/date-skeleton": { - "version": "1.1.0", - "resolved": "https://npm.sinequa.com/@messageformat/date-skeleton/-/date-skeleton-1.1.0.tgz", - "integrity": "sha512-rmGAfB1tIPER+gh3p/RgA+PVeRE/gxuQ2w4snFWPF5xtb5mbWR7Cbw7wCOftcUypbD6HVoxrVdyyghPm3WzP5A==", - "license": "MIT" - }, - "node_modules/@messageformat/number-skeleton": { - "version": "1.2.0", - "resolved": "https://npm.sinequa.com/@messageformat/number-skeleton/-/number-skeleton-1.2.0.tgz", - "integrity": "sha512-xsgwcL7J7WhlHJ3RNbaVgssaIwcEyFkBqxHdcdaiJzwTZAWEOD8BuUFxnxV9k5S0qHN3v/KzUpq0IUpjH1seRg==", - "license": "MIT" - }, - "node_modules/@messageformat/parser": { - "version": "5.1.1", - "resolved": "https://npm.sinequa.com/@messageformat/parser/-/parser-5.1.1.tgz", - "integrity": "sha512-3p0YRGCcTUCYvBKLIxtDDyrJ0YijGIwrTRu1DT8gIviIDZru8H23+FkY6MJBzM1n9n20CiM4VeDYuBsrrwnLjg==", - "license": "MIT", - "dependencies": { - "moo": "^0.5.1" - } - }, - "node_modules/@messageformat/runtime": { - "version": "3.0.1", - "resolved": "https://npm.sinequa.com/@messageformat/runtime/-/runtime-3.0.1.tgz", - "integrity": "sha512-6RU5ol2lDtO8bD9Yxe6CZkl0DArdv0qkuoZC+ZwowU+cdRlVE1157wjCmlA5Rsf1Xc/brACnsZa5PZpEDfTFFg==", - "license": "MIT", - "dependencies": { - "make-plural": "^7.0.0" - } - }, - "node_modules/@microsoft/signalr": { - "version": "7.0.14", - "resolved": "https://npm.sinequa.com/@microsoft/signalr/-/signalr-7.0.14.tgz", - "integrity": "sha512-dnS7gSJF5LxByZwJaj82+F1K755ya7ttPT+JnSeCBef3sL8p8FBkHePXphK8NSuOquIb7vsphXWa28A+L2SPpw==", - "license": "MIT", - "dependencies": { - "abort-controller": "^3.0.0", - "eventsource": "^2.0.2", - "fetch-cookie": "^2.0.3", - "node-fetch": "^2.6.7", - "ws": "^7.4.5" - } - }, - "node_modules/@msgpackr-extract/msgpackr-extract-darwin-arm64": { - "version": "3.0.3", - "resolved": "https://npm.sinequa.com/@msgpackr-extract/msgpackr-extract-darwin-arm64/-/msgpackr-extract-darwin-arm64-3.0.3.tgz", - "integrity": "sha512-QZHtlVgbAdy2zAqNA9Gu1UpIuI8Xvsd1v8ic6B2pZmeFnFcMWiPLfWXh7TVw4eGEZ/C9TH281KwhVoeQUKbyjw==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "darwin" - ] - }, - "node_modules/@msgpackr-extract/msgpackr-extract-darwin-x64": { - "version": "3.0.3", - "resolved": "https://npm.sinequa.com/@msgpackr-extract/msgpackr-extract-darwin-x64/-/msgpackr-extract-darwin-x64-3.0.3.tgz", - "integrity": "sha512-mdzd3AVzYKuUmiWOQ8GNhl64/IoFGol569zNRdkLReh6LRLHOXxU4U8eq0JwaD8iFHdVGqSy4IjFL4reoWCDFw==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "darwin" - ] - }, - "node_modules/@msgpackr-extract/msgpackr-extract-linux-arm": { - "version": "3.0.3", - "resolved": "https://npm.sinequa.com/@msgpackr-extract/msgpackr-extract-linux-arm/-/msgpackr-extract-linux-arm-3.0.3.tgz", - "integrity": "sha512-fg0uy/dG/nZEXfYilKoRe7yALaNmHoYeIoJuJ7KJ+YyU2bvY8vPv27f7UKhGRpY6euFYqEVhxCFZgAUNQBM3nw==", - "cpu": [ - "arm" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/@msgpackr-extract/msgpackr-extract-linux-arm64": { - "version": "3.0.3", - "resolved": "https://npm.sinequa.com/@msgpackr-extract/msgpackr-extract-linux-arm64/-/msgpackr-extract-linux-arm64-3.0.3.tgz", - "integrity": "sha512-YxQL+ax0XqBJDZiKimS2XQaf+2wDGVa1enVRGzEvLLVFeqa5kx2bWbtcSXgsxjQB7nRqqIGFIcLteF/sHeVtQg==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/@msgpackr-extract/msgpackr-extract-linux-x64": { - "version": "3.0.3", - "resolved": "https://npm.sinequa.com/@msgpackr-extract/msgpackr-extract-linux-x64/-/msgpackr-extract-linux-x64-3.0.3.tgz", - "integrity": "sha512-cvwNfbP07pKUfq1uH+S6KJ7dT9K8WOE4ZiAcsrSes+UY55E/0jLYc+vq+DO7jlmqRb5zAggExKm0H7O/CBaesg==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/@msgpackr-extract/msgpackr-extract-win32-x64": { - "version": "3.0.3", - "resolved": "https://npm.sinequa.com/@msgpackr-extract/msgpackr-extract-win32-x64/-/msgpackr-extract-win32-x64-3.0.3.tgz", - "integrity": "sha512-x0fWaQtYp4E6sktbsdAqnehxDgEc/VwM7uLsRCYWaiGu0ykYdZPiS8zCWdnjHwyiumousxfBm4SO31eXqwEZhQ==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "win32" - ] - }, - "node_modules/@ngrx/signals": { - "version": "18.1.1", - "resolved": "https://npm.sinequa.com/@ngrx/signals/-/signals-18.1.1.tgz", - "integrity": "sha512-7AaFp4VrzYhnDHlF15VZAMvp067zIC5arRRRMV+i+oi95sQVDXezpj74KTIguwRbZ3FU+GKGzFCNrwgYvginSg==", - "license": "MIT", - "dependencies": { - "tslib": "^2.3.0" - }, - "peerDependencies": { - "@angular/core": "^18.0.0", - "rxjs": "^6.5.3 || ^7.4.0" - }, - "peerDependenciesMeta": { - "rxjs": { - "optional": true - } - } - }, - "node_modules/@ngrx/store": { - "version": "18.1.1", - "resolved": "https://npm.sinequa.com/@ngrx/store/-/store-18.1.1.tgz", - "integrity": "sha512-K0v1akJ2sEnIeb1AUA064+ksgRgbMgVG9HbSsLBxENbFjK2ZvKRxo1bpOw6WHW9+hyDTlhZGl7+gUtjmo3497g==", - "license": "MIT", - "dependencies": { - "tslib": "^2.0.0" - }, - "peerDependencies": { - "@angular/core": "^18.0.0", - "rxjs": "^6.5.3 || ^7.5.0" - } - }, - "node_modules/@ngtools/webpack": { - "version": "18.2.14", - "resolved": "https://npm.sinequa.com/@ngtools/webpack/-/webpack-18.2.14.tgz", - "integrity": "sha512-rT+Y4WR8QTVsijtb+YRqHcPTpd1ZiwRbklQXRTxU0YGFHpxpi+bhjmY8FjpPoAtdPO1Lg3l3KIZPZa0thG0FNg==", - "dev": true, - "license": "MIT", - "engines": { - "node": "^18.19.1 || ^20.11.1 || >=22.0.0", - "npm": "^6.11.0 || ^7.5.6 || >=8.0.0", - "yarn": ">= 1.13.0" - }, - "peerDependencies": { - "@angular/compiler-cli": "^18.0.0", - "typescript": ">=5.4 <5.6", - "webpack": "^5.54.0" - } - }, - "node_modules/@nodelib/fs.scandir": { - "version": "2.1.5", - "resolved": "https://npm.sinequa.com/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", - "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", - "dev": true, - "license": "MIT", - "dependencies": { - "@nodelib/fs.stat": "2.0.5", - "run-parallel": "^1.1.9" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/@nodelib/fs.stat": { - "version": "2.0.5", - "resolved": "https://npm.sinequa.com/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", - "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 8" - } - }, - "node_modules/@nodelib/fs.walk": { - "version": "1.2.8", - "resolved": "https://npm.sinequa.com/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", - "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", - "dev": true, - "license": "MIT", - "dependencies": { - "@nodelib/fs.scandir": "2.1.5", - "fastq": "^1.6.0" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/@npmcli/agent": { - "version": "2.2.2", - "resolved": "https://npm.sinequa.com/@npmcli/agent/-/agent-2.2.2.tgz", - "integrity": "sha512-OrcNPXdpSl9UX7qPVRWbmWMCSXrcDa2M9DvrbOTj7ao1S4PlqVFYv9/yLKMkrJKZ/V5A/kDBC690or307i26Og==", - "dev": true, - "license": "ISC", - "dependencies": { - "agent-base": "^7.1.0", - "http-proxy-agent": "^7.0.0", - "https-proxy-agent": "^7.0.1", - "lru-cache": "^10.0.1", - "socks-proxy-agent": "^8.0.3" - }, - "engines": { - "node": "^16.14.0 || >=18.0.0" - } - }, - "node_modules/@npmcli/agent/node_modules/lru-cache": { - "version": "10.4.3", - "resolved": "https://npm.sinequa.com/lru-cache/-/lru-cache-10.4.3.tgz", - "integrity": "sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==", - "dev": true, - "license": "ISC" - }, - "node_modules/@npmcli/fs": { - "version": "3.1.1", - "resolved": "https://npm.sinequa.com/@npmcli/fs/-/fs-3.1.1.tgz", - "integrity": "sha512-q9CRWjpHCMIh5sVyefoD1cA7PkvILqCZsnSOEUUivORLjxCO/Irmue2DprETiNgEqktDBZaM1Bi+jrarx1XdCg==", - "dev": true, - "license": "ISC", - "dependencies": { - "semver": "^7.3.5" - }, - "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" - } - }, - "node_modules/@npmcli/git": { - "version": "5.0.8", - "resolved": "https://npm.sinequa.com/@npmcli/git/-/git-5.0.8.tgz", - "integrity": "sha512-liASfw5cqhjNW9UFd+ruwwdEf/lbOAQjLL2XY2dFW/bkJheXDYZgOyul/4gVvEV4BWkTXjYGmDqMw9uegdbJNQ==", - "dev": true, - "license": "ISC", - "dependencies": { - "@npmcli/promise-spawn": "^7.0.0", - "ini": "^4.1.3", - "lru-cache": "^10.0.1", - "npm-pick-manifest": "^9.0.0", - "proc-log": "^4.0.0", - "promise-inflight": "^1.0.1", - "promise-retry": "^2.0.1", - "semver": "^7.3.5", - "which": "^4.0.0" - }, - "engines": { - "node": "^16.14.0 || >=18.0.0" - } - }, - "node_modules/@npmcli/git/node_modules/isexe": { - "version": "3.1.1", - "resolved": "https://npm.sinequa.com/isexe/-/isexe-3.1.1.tgz", - "integrity": "sha512-LpB/54B+/2J5hqQ7imZHfdU31OlgQqx7ZicVlkm9kzg9/w8GKLEcFfJl/t7DCEDueOyBAD6zCCwTO6Fzs0NoEQ==", - "dev": true, - "license": "ISC", - "engines": { - "node": ">=16" - } - }, - "node_modules/@npmcli/git/node_modules/lru-cache": { - "version": "10.4.3", - "resolved": "https://npm.sinequa.com/lru-cache/-/lru-cache-10.4.3.tgz", - "integrity": "sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==", - "dev": true, - "license": "ISC" - }, - "node_modules/@npmcli/git/node_modules/which": { - "version": "4.0.0", - "resolved": "https://npm.sinequa.com/which/-/which-4.0.0.tgz", - "integrity": "sha512-GlaYyEb07DPxYCKhKzplCWBJtvxZcZMrL+4UkrTSJHHPyZU4mYYTv3qaOe77H7EODLSSopAUFAc6W8U4yqvscg==", - "dev": true, - "license": "ISC", - "dependencies": { - "isexe": "^3.1.1" - }, - "bin": { - "node-which": "bin/which.js" - }, - "engines": { - "node": "^16.13.0 || >=18.0.0" - } - }, - "node_modules/@npmcli/installed-package-contents": { - "version": "2.1.0", - "resolved": "https://npm.sinequa.com/@npmcli/installed-package-contents/-/installed-package-contents-2.1.0.tgz", - "integrity": "sha512-c8UuGLeZpm69BryRykLuKRyKFZYJsZSCT4aVY5ds4omyZqJ172ApzgfKJ5eV/r3HgLdUYgFVe54KSFVjKoe27w==", - "dev": true, - "license": "ISC", - "dependencies": { - "npm-bundled": "^3.0.0", - "npm-normalize-package-bin": "^3.0.0" - }, - "bin": { - "installed-package-contents": "bin/index.js" - }, - "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" - } - }, - "node_modules/@npmcli/node-gyp": { - "version": "3.0.0", - "resolved": "https://npm.sinequa.com/@npmcli/node-gyp/-/node-gyp-3.0.0.tgz", - "integrity": "sha512-gp8pRXC2oOxu0DUE1/M3bYtb1b3/DbJ5aM113+XJBgfXdussRAsX0YOrOhdd8WvnAR6auDBvJomGAkLKA5ydxA==", - "dev": true, - "license": "ISC", - "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" - } - }, - "node_modules/@npmcli/package-json": { - "version": "5.2.1", - "resolved": "https://npm.sinequa.com/@npmcli/package-json/-/package-json-5.2.1.tgz", - "integrity": "sha512-f7zYC6kQautXHvNbLEWgD/uGu1+xCn9izgqBfgItWSx22U0ZDekxN08A1vM8cTxj/cRVe0Q94Ode+tdoYmIOOQ==", - "dev": true, - "license": "ISC", - "dependencies": { - "@npmcli/git": "^5.0.0", - "glob": "^10.2.2", - "hosted-git-info": "^7.0.0", - "json-parse-even-better-errors": "^3.0.0", - "normalize-package-data": "^6.0.0", - "proc-log": "^4.0.0", - "semver": "^7.5.3" - }, - "engines": { - "node": "^16.14.0 || >=18.0.0" - } - }, - "node_modules/@npmcli/promise-spawn": { - "version": "7.0.2", - "resolved": "https://npm.sinequa.com/@npmcli/promise-spawn/-/promise-spawn-7.0.2.tgz", - "integrity": "sha512-xhfYPXoV5Dy4UkY0D+v2KkwvnDfiA/8Mt3sWCGI/hM03NsYIH8ZaG6QzS9x7pje5vHZBZJ2v6VRFVTWACnqcmQ==", - "dev": true, - "license": "ISC", - "dependencies": { - "which": "^4.0.0" - }, - "engines": { - "node": "^16.14.0 || >=18.0.0" - } - }, - "node_modules/@npmcli/promise-spawn/node_modules/isexe": { - "version": "3.1.1", - "resolved": "https://npm.sinequa.com/isexe/-/isexe-3.1.1.tgz", - "integrity": "sha512-LpB/54B+/2J5hqQ7imZHfdU31OlgQqx7ZicVlkm9kzg9/w8GKLEcFfJl/t7DCEDueOyBAD6zCCwTO6Fzs0NoEQ==", - "dev": true, - "license": "ISC", - "engines": { - "node": ">=16" - } - }, - "node_modules/@npmcli/promise-spawn/node_modules/which": { - "version": "4.0.0", - "resolved": "https://npm.sinequa.com/which/-/which-4.0.0.tgz", - "integrity": "sha512-GlaYyEb07DPxYCKhKzplCWBJtvxZcZMrL+4UkrTSJHHPyZU4mYYTv3qaOe77H7EODLSSopAUFAc6W8U4yqvscg==", - "dev": true, - "license": "ISC", - "dependencies": { - "isexe": "^3.1.1" - }, - "bin": { - "node-which": "bin/which.js" - }, - "engines": { - "node": "^16.13.0 || >=18.0.0" - } - }, - "node_modules/@npmcli/redact": { - "version": "2.0.1", - "resolved": "https://npm.sinequa.com/@npmcli/redact/-/redact-2.0.1.tgz", - "integrity": "sha512-YgsR5jCQZhVmTJvjduTOIHph0L73pK8xwMVaDY0PatySqVM9AZj93jpoXYSJqfHFxFkN9dmqTw6OiqExsS3LPw==", - "dev": true, - "license": "ISC", - "engines": { - "node": "^16.14.0 || >=18.0.0" - } - }, - "node_modules/@npmcli/run-script": { - "version": "8.1.0", - "resolved": "https://npm.sinequa.com/@npmcli/run-script/-/run-script-8.1.0.tgz", - "integrity": "sha512-y7efHHwghQfk28G2z3tlZ67pLG0XdfYbcVG26r7YIXALRsrVQcTq4/tdenSmdOrEsNahIYA/eh8aEVROWGFUDg==", - "dev": true, - "license": "ISC", - "dependencies": { - "@npmcli/node-gyp": "^3.0.0", - "@npmcli/package-json": "^5.0.0", - "@npmcli/promise-spawn": "^7.0.0", - "node-gyp": "^10.0.0", - "proc-log": "^4.0.0", - "which": "^4.0.0" - }, - "engines": { - "node": "^16.14.0 || >=18.0.0" - } - }, - "node_modules/@npmcli/run-script/node_modules/isexe": { - "version": "3.1.1", - "resolved": "https://npm.sinequa.com/isexe/-/isexe-3.1.1.tgz", - "integrity": "sha512-LpB/54B+/2J5hqQ7imZHfdU31OlgQqx7ZicVlkm9kzg9/w8GKLEcFfJl/t7DCEDueOyBAD6zCCwTO6Fzs0NoEQ==", - "dev": true, - "license": "ISC", - "engines": { - "node": ">=16" - } - }, - "node_modules/@npmcli/run-script/node_modules/which": { - "version": "4.0.0", - "resolved": "https://npm.sinequa.com/which/-/which-4.0.0.tgz", - "integrity": "sha512-GlaYyEb07DPxYCKhKzplCWBJtvxZcZMrL+4UkrTSJHHPyZU4mYYTv3qaOe77H7EODLSSopAUFAc6W8U4yqvscg==", - "dev": true, - "license": "ISC", - "dependencies": { - "isexe": "^3.1.1" - }, - "bin": { - "node-which": "bin/which.js" - }, - "engines": { - "node": "^16.13.0 || >=18.0.0" - } - }, - "node_modules/@pkgjs/parseargs": { - "version": "0.11.0", - "resolved": "https://npm.sinequa.com/@pkgjs/parseargs/-/parseargs-0.11.0.tgz", - "integrity": "sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==", - "license": "MIT", - "optional": true, - "engines": { - "node": ">=14" - } - }, - "node_modules/@popperjs/core": { - "version": "2.11.8", - "resolved": "https://npm.sinequa.com/@popperjs/core/-/core-2.11.8.tgz", - "integrity": "sha512-P1st0aksCrn9sGZhp8GMYwBnQsbvAWsZAX44oXNNvLHGqAOcoVxmjZiohstwQ7SqKnbR47akdNi+uleWD8+g6A==", - "license": "MIT", - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/popperjs" - } - }, - "node_modules/@rollup/rollup-android-arm-eabi": { - "version": "4.22.4", - "resolved": "https://npm.sinequa.com/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.22.4.tgz", - "integrity": "sha512-Fxamp4aEZnfPOcGA8KSNEohV8hX7zVHOemC8jVBoBUHu5zpJK/Eu3uJwt6BMgy9fkvzxDaurgj96F/NiLukF2w==", - "cpu": [ - "arm" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "android" - ] - }, - "node_modules/@rollup/rollup-android-arm64": { - "version": "4.22.4", - "resolved": "https://npm.sinequa.com/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.22.4.tgz", - "integrity": "sha512-VXoK5UMrgECLYaMuGuVTOx5kcuap1Jm8g/M83RnCHBKOqvPPmROFJGQaZhGccnsFtfXQ3XYa4/jMCJvZnbJBdA==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "android" - ] - }, - "node_modules/@rollup/rollup-darwin-arm64": { - "version": "4.22.4", - "resolved": "https://npm.sinequa.com/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.22.4.tgz", - "integrity": "sha512-xMM9ORBqu81jyMKCDP+SZDhnX2QEVQzTcC6G18KlTQEzWK8r/oNZtKuZaCcHhnsa6fEeOBionoyl5JsAbE/36Q==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "darwin" - ] - }, - "node_modules/@rollup/rollup-darwin-x64": { - "version": "4.22.4", - "resolved": "https://npm.sinequa.com/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.22.4.tgz", - "integrity": "sha512-aJJyYKQwbHuhTUrjWjxEvGnNNBCnmpHDvrb8JFDbeSH3m2XdHcxDd3jthAzvmoI8w/kSjd2y0udT+4okADsZIw==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "darwin" - ] - }, - "node_modules/@rollup/rollup-linux-arm-gnueabihf": { - "version": "4.22.4", - "resolved": "https://npm.sinequa.com/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.22.4.tgz", - "integrity": "sha512-j63YtCIRAzbO+gC2L9dWXRh5BFetsv0j0va0Wi9epXDgU/XUi5dJKo4USTttVyK7fGw2nPWK0PbAvyliz50SCQ==", - "cpu": [ - "arm" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/@rollup/rollup-linux-arm-musleabihf": { - "version": "4.22.4", - "resolved": "https://npm.sinequa.com/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.22.4.tgz", - "integrity": "sha512-dJnWUgwWBX1YBRsuKKMOlXCzh2Wu1mlHzv20TpqEsfdZLb3WoJW2kIEsGwLkroYf24IrPAvOT/ZQ2OYMV6vlrg==", - "cpu": [ - "arm" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/@rollup/rollup-linux-arm64-gnu": { - "version": "4.22.4", - "resolved": "https://npm.sinequa.com/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.22.4.tgz", - "integrity": "sha512-AdPRoNi3NKVLolCN/Sp4F4N1d98c4SBnHMKoLuiG6RXgoZ4sllseuGioszumnPGmPM2O7qaAX/IJdeDU8f26Aw==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/@rollup/rollup-linux-arm64-musl": { - "version": "4.22.4", - "resolved": "https://npm.sinequa.com/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.22.4.tgz", - "integrity": "sha512-Gl0AxBtDg8uoAn5CCqQDMqAx22Wx22pjDOjBdmG0VIWX3qUBHzYmOKh8KXHL4UpogfJ14G4wk16EQogF+v8hmA==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/@rollup/rollup-linux-powerpc64le-gnu": { - "version": "4.22.4", - "resolved": "https://npm.sinequa.com/@rollup/rollup-linux-powerpc64le-gnu/-/rollup-linux-powerpc64le-gnu-4.22.4.tgz", - "integrity": "sha512-3aVCK9xfWW1oGQpTsYJJPF6bfpWfhbRnhdlyhak2ZiyFLDaayz0EP5j9V1RVLAAxlmWKTDfS9wyRyY3hvhPoOg==", - "cpu": [ - "ppc64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/@rollup/rollup-linux-riscv64-gnu": { - "version": "4.22.4", - "resolved": "https://npm.sinequa.com/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.22.4.tgz", - "integrity": "sha512-ePYIir6VYnhgv2C5Xe9u+ico4t8sZWXschR6fMgoPUK31yQu7hTEJb7bCqivHECwIClJfKgE7zYsh1qTP3WHUA==", - "cpu": [ - "riscv64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/@rollup/rollup-linux-s390x-gnu": { - "version": "4.22.4", - "resolved": "https://npm.sinequa.com/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.22.4.tgz", - "integrity": "sha512-GqFJ9wLlbB9daxhVlrTe61vJtEY99/xB3C8e4ULVsVfflcpmR6c8UZXjtkMA6FhNONhj2eA5Tk9uAVw5orEs4Q==", - "cpu": [ - "s390x" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/@rollup/rollup-linux-x64-gnu": { - "version": "4.22.4", - "resolved": "https://npm.sinequa.com/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.22.4.tgz", - "integrity": "sha512-87v0ol2sH9GE3cLQLNEy0K/R0pz1nvg76o8M5nhMR0+Q+BBGLnb35P0fVz4CQxHYXaAOhE8HhlkaZfsdUOlHwg==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/@rollup/rollup-linux-x64-musl": { - "version": "4.22.4", - "resolved": "https://npm.sinequa.com/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.22.4.tgz", - "integrity": "sha512-UV6FZMUgePDZrFjrNGIWzDo/vABebuXBhJEqrHxrGiU6HikPy0Z3LfdtciIttEUQfuDdCn8fqh7wiFJjCNwO+g==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/@rollup/rollup-win32-arm64-msvc": { - "version": "4.22.4", - "resolved": "https://npm.sinequa.com/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.22.4.tgz", - "integrity": "sha512-BjI+NVVEGAXjGWYHz/vv0pBqfGoUH0IGZ0cICTn7kB9PyjrATSkX+8WkguNjWoj2qSr1im/+tTGRaY+4/PdcQw==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "win32" - ] - }, - "node_modules/@rollup/rollup-win32-ia32-msvc": { - "version": "4.22.4", - "resolved": "https://npm.sinequa.com/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.22.4.tgz", - "integrity": "sha512-SiWG/1TuUdPvYmzmYnmd3IEifzR61Tragkbx9D3+R8mzQqDBz8v+BvZNDlkiTtI9T15KYZhP0ehn3Dld4n9J5g==", - "cpu": [ - "ia32" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "win32" - ] - }, - "node_modules/@rollup/rollup-win32-x64-msvc": { - "version": "4.22.4", - "resolved": "https://npm.sinequa.com/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.22.4.tgz", - "integrity": "sha512-j8pPKp53/lq9lMXN57S8cFz0MynJk8OWNuUnXct/9KCpKU7DgU3bYMJhwWmcqC0UU29p8Lr0/7KEVcaM6bf47Q==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "win32" - ] - }, - "node_modules/@schematics/angular": { - "version": "18.2.14", - "resolved": "https://npm.sinequa.com/@schematics/angular/-/angular-18.2.14.tgz", - "integrity": "sha512-CHh6ew2Az71UlvVcnYeuMEwjwkZqR7y/9ebLzFRvczC71ZL8qPVBpBTVGbCpGBd54VEbCZVWRxBQoZZ5LP/aBw==", - "dev": true, - "license": "MIT", - "dependencies": { - "@angular-devkit/core": "18.2.14", - "@angular-devkit/schematics": "18.2.14", - "jsonc-parser": "3.3.1" - }, - "engines": { - "node": "^18.19.1 || ^20.11.1 || >=22.0.0", - "npm": "^6.11.0 || ^7.5.6 || >=8.0.0", - "yarn": ">= 1.13.0" - } - }, - "node_modules/@sigstore/bundle": { - "version": "2.3.2", - "resolved": "https://npm.sinequa.com/@sigstore/bundle/-/bundle-2.3.2.tgz", - "integrity": "sha512-wueKWDk70QixNLB363yHc2D2ItTgYiMTdPwK8D9dKQMR3ZQ0c35IxP5xnwQ8cNLoCgCRcHf14kE+CLIvNX1zmA==", - "dev": true, - "license": "Apache-2.0", - "dependencies": { - "@sigstore/protobuf-specs": "^0.3.2" - }, - "engines": { - "node": "^16.14.0 || >=18.0.0" - } - }, - "node_modules/@sigstore/core": { - "version": "1.1.0", - "resolved": "https://npm.sinequa.com/@sigstore/core/-/core-1.1.0.tgz", - "integrity": "sha512-JzBqdVIyqm2FRQCulY6nbQzMpJJpSiJ8XXWMhtOX9eKgaXXpfNOF53lzQEjIydlStnd/eFtuC1dW4VYdD93oRg==", - "dev": true, - "license": "Apache-2.0", - "engines": { - "node": "^16.14.0 || >=18.0.0" - } - }, - "node_modules/@sigstore/protobuf-specs": { - "version": "0.3.3", - "resolved": "https://npm.sinequa.com/@sigstore/protobuf-specs/-/protobuf-specs-0.3.3.tgz", - "integrity": "sha512-RpacQhBlwpBWd7KEJsRKcBQalbV28fvkxwTOJIqhIuDysMMaJW47V4OqW30iJB9uRpqOSxxEAQFdr8tTattReQ==", - "dev": true, - "license": "Apache-2.0", - "engines": { - "node": "^18.17.0 || >=20.5.0" - } - }, - "node_modules/@sigstore/sign": { - "version": "2.3.2", - "resolved": "https://npm.sinequa.com/@sigstore/sign/-/sign-2.3.2.tgz", - "integrity": "sha512-5Vz5dPVuunIIvC5vBb0APwo7qKA4G9yM48kPWJT+OEERs40md5GoUR1yedwpekWZ4m0Hhw44m6zU+ObsON+iDA==", - "dev": true, - "license": "Apache-2.0", - "dependencies": { - "@sigstore/bundle": "^2.3.2", - "@sigstore/core": "^1.0.0", - "@sigstore/protobuf-specs": "^0.3.2", - "make-fetch-happen": "^13.0.1", - "proc-log": "^4.2.0", - "promise-retry": "^2.0.1" - }, - "engines": { - "node": "^16.14.0 || >=18.0.0" - } - }, - "node_modules/@sigstore/tuf": { - "version": "2.3.4", - "resolved": "https://npm.sinequa.com/@sigstore/tuf/-/tuf-2.3.4.tgz", - "integrity": "sha512-44vtsveTPUpqhm9NCrbU8CWLe3Vck2HO1PNLw7RIajbB7xhtn5RBPm1VNSCMwqGYHhDsBJG8gDF0q4lgydsJvw==", - "dev": true, - "license": "Apache-2.0", - "dependencies": { - "@sigstore/protobuf-specs": "^0.3.2", - "tuf-js": "^2.2.1" - }, - "engines": { - "node": "^16.14.0 || >=18.0.0" - } - }, - "node_modules/@sigstore/verify": { - "version": "1.2.1", - "resolved": "https://npm.sinequa.com/@sigstore/verify/-/verify-1.2.1.tgz", - "integrity": "sha512-8iKx79/F73DKbGfRf7+t4dqrc0bRr0thdPrxAtCKWRm/F0tG71i6O1rvlnScncJLLBZHn3h8M3c1BSUAb9yu8g==", - "dev": true, - "license": "Apache-2.0", - "dependencies": { - "@sigstore/bundle": "^2.3.2", - "@sigstore/core": "^1.1.0", - "@sigstore/protobuf-specs": "^0.3.2" - }, - "engines": { - "node": "^16.14.0 || >=18.0.0" - } - }, - "node_modules/@sindresorhus/merge-streams": { - "version": "2.3.0", - "resolved": "https://npm.sinequa.com/@sindresorhus/merge-streams/-/merge-streams-2.3.0.tgz", - "integrity": "sha512-LtoMMhxAlorcGhmFYI+LhPgbPZCkgP6ra1YL604EeF6U98pLlQ3iWIGMdWSC+vWmPBWBNgmDBAhnAobLROJmwg==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=18" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/@sinequa/atomic": { - "version": "0.0.72", - "resolved": "https://npm.sinequa.com/@sinequa/atomic/-/atomic-0.0.72.tgz", - "integrity": "sha512-DYmjhJ8PrXW0WhkGg5o/FP9oUoGDXXAgyUkkcXr9RzbO1AANg9EFBiKMVfFEckYasRhCuijYhWMbWkXNLjWx/g==" - }, - "node_modules/@sinequa/atomic-angular": { - "version": "0.0.152", - "resolved": "https://npm.sinequa.com/@sinequa/atomic-angular/-/atomic-angular-0.0.152.tgz", - "integrity": "sha512-YvUSay8WdCGZASLL5tqyGnvm5nUQ1mLgj06UOhAFPnNRdqqN1yMhrrn9vDG9PHyCJZRL0FQXrJkStv7DmZ2m0Q==", - "dependencies": { - "tslib": "^2.3.0" - } - }, - "node_modules/@tanstack/angular-query-experimental": { - "version": "5.66.0", - "resolved": "https://npm.sinequa.com/@tanstack/angular-query-experimental/-/angular-query-experimental-5.66.0.tgz", - "integrity": "sha512-wECwAbsIQWXiKXNOjvAWeyw44KZJ/q0hWdWUy4SV3vp8eFW3f0LvAlkuLvUSA8jdcC5NvO2VO8T/gLRE9YjArg==", - "license": "MIT", - "dependencies": { - "@tanstack/query-core": "5.66.0", - "@tanstack/query-devtools": "5.65.0" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/tannerlinsley" - }, - "peerDependencies": { - "@angular/common": ">=16.0.0", - "@angular/core": ">=16.0.0" - } - }, - "node_modules/@tanstack/query-core": { - "version": "5.66.0", - "resolved": "https://npm.sinequa.com/@tanstack/query-core/-/query-core-5.66.0.tgz", - "integrity": "sha512-J+JeBtthiKxrpzUu7rfIPDzhscXF2p5zE/hVdrqkACBP8Yu0M96mwJ5m/8cPPYQE9aRNvXztXHlNwIh4FEeMZw==", - "license": "MIT", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/tannerlinsley" - } - }, - "node_modules/@tanstack/query-devtools": { - "version": "5.65.0", - "resolved": "https://npm.sinequa.com/@tanstack/query-devtools/-/query-devtools-5.65.0.tgz", - "integrity": "sha512-g5y7zc07U9D3esMdqUfTEVu9kMHoIaVBsD0+M3LPdAdD710RpTcLiNvJY1JkYXqkq9+NV+CQoemVNpQPBXVsJg==", - "license": "MIT", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/tannerlinsley" - } - }, - "node_modules/@tufjs/canonical-json": { - "version": "2.0.0", - "resolved": "https://npm.sinequa.com/@tufjs/canonical-json/-/canonical-json-2.0.0.tgz", - "integrity": "sha512-yVtV8zsdo8qFHe+/3kw81dSLyF7D576A5cCFCi4X7B39tWT7SekaEFUnvnWJHz+9qO7qJTah1JbrDjWKqFtdWA==", - "dev": true, - "license": "MIT", - "engines": { - "node": "^16.14.0 || >=18.0.0" - } - }, - "node_modules/@tufjs/models": { - "version": "2.0.1", - "resolved": "https://npm.sinequa.com/@tufjs/models/-/models-2.0.1.tgz", - "integrity": "sha512-92F7/SFyufn4DXsha9+QfKnN03JGqtMFMXgSHbZOo8JG59WkTni7UzAouNQDf7AuP9OAMxVOPQcqG3sB7w+kkg==", - "dev": true, - "license": "MIT", - "dependencies": { - "@tufjs/canonical-json": "2.0.0", - "minimatch": "^9.0.4" - }, - "engines": { - "node": "^16.14.0 || >=18.0.0" - } - }, - "node_modules/@types/body-parser": { - "version": "1.19.5", - "resolved": "https://npm.sinequa.com/@types/body-parser/-/body-parser-1.19.5.tgz", - "integrity": "sha512-fB3Zu92ucau0iQ0JMCFQE7b/dv8Ot07NI3KaZIkIUNXq82k4eBAqUaneXfleGY9JWskeS9y+u0nXMyspcuQrCg==", - "dev": true, - "license": "MIT", - "dependencies": { - "@types/connect": "*", - "@types/node": "*" - } - }, - "node_modules/@types/bonjour": { - "version": "3.5.13", - "resolved": "https://npm.sinequa.com/@types/bonjour/-/bonjour-3.5.13.tgz", - "integrity": "sha512-z9fJ5Im06zvUL548KvYNecEVlA7cVDkGUi6kZusb04mpyEFKCIZJvloCcmpmLaIahDpOQGHaHmG6imtPMmPXGQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "@types/node": "*" - } - }, - "node_modules/@types/connect": { - "version": "3.4.38", - "resolved": "https://npm.sinequa.com/@types/connect/-/connect-3.4.38.tgz", - "integrity": "sha512-K6uROf1LD88uDQqJCktA4yzL1YYAK6NgfsI0v/mTgyPKWsX1CnJ0XPSDhViejru1GcRkLWb8RlzFYJRqGUbaug==", - "dev": true, - "license": "MIT", - "dependencies": { - "@types/node": "*" - } - }, - "node_modules/@types/connect-history-api-fallback": { - "version": "1.5.4", - "resolved": "https://npm.sinequa.com/@types/connect-history-api-fallback/-/connect-history-api-fallback-1.5.4.tgz", - "integrity": "sha512-n6Cr2xS1h4uAulPRdlw6Jl6s1oG8KrVilPN2yUITEs+K48EzMJJ3W1xy8K5eWuFvjp3R74AOIGSmp2UfBJ8HFw==", - "dev": true, - "license": "MIT", - "dependencies": { - "@types/express-serve-static-core": "*", - "@types/node": "*" - } - }, - "node_modules/@types/estree": { - "version": "1.0.5", - "resolved": "https://npm.sinequa.com/@types/estree/-/estree-1.0.5.tgz", - "integrity": "sha512-/kYRxGDLWzHOB7q+wtSUQlFrtcdUccpfy+X+9iMBpHK8QLLhx2wIPYuS5DYtR9Wa/YlZAbIovy7qVdB1Aq6Lyw==", - "dev": true, - "license": "MIT" - }, - "node_modules/@types/express": { - "version": "4.17.21", - "resolved": "https://npm.sinequa.com/@types/express/-/express-4.17.21.tgz", - "integrity": "sha512-ejlPM315qwLpaQlQDTjPdsUFSc6ZsP4AN6AlWnogPjQ7CVi7PYF3YVz+CY3jE2pwYf7E/7HlDAN0rV2GxTG0HQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "@types/body-parser": "*", - "@types/express-serve-static-core": "^4.17.33", - "@types/qs": "*", - "@types/serve-static": "*" - } - }, - "node_modules/@types/express-serve-static-core": { - "version": "5.0.6", - "resolved": "https://npm.sinequa.com/@types/express-serve-static-core/-/express-serve-static-core-5.0.6.tgz", - "integrity": "sha512-3xhRnjJPkULekpSzgtoNYYcTWgEZkp4myc+Saevii5JPnHNvHMRlBSHDbs7Bh1iPPoVTERHEZXyhyLbMEsExsA==", - "dev": true, - "license": "MIT", - "dependencies": { - "@types/node": "*", - "@types/qs": "*", - "@types/range-parser": "*", - "@types/send": "*" - } - }, - "node_modules/@types/express/node_modules/@types/express-serve-static-core": { - "version": "4.19.6", - "resolved": "https://npm.sinequa.com/@types/express-serve-static-core/-/express-serve-static-core-4.19.6.tgz", - "integrity": "sha512-N4LZ2xG7DatVqhCZzOGb1Yi5lMbXSZcmdLDe9EzSndPV2HpWYWzRbaerl2n27irrm94EPpprqa8KpskPT085+A==", - "dev": true, - "license": "MIT", - "dependencies": { - "@types/node": "*", - "@types/qs": "*", - "@types/range-parser": "*", - "@types/send": "*" - } - }, - "node_modules/@types/http-errors": { - "version": "2.0.4", - "resolved": "https://npm.sinequa.com/@types/http-errors/-/http-errors-2.0.4.tgz", - "integrity": "sha512-D0CFMMtydbJAegzOyHjtiKPLlvnm3iTZyZRSZoLq2mRhDdmLfIWOCYPfQJ4cu2erKghU++QvjcUjp/5h7hESpA==", - "dev": true, - "license": "MIT" - }, - "node_modules/@types/http-proxy": { - "version": "1.17.16", - "resolved": "https://npm.sinequa.com/@types/http-proxy/-/http-proxy-1.17.16.tgz", - "integrity": "sha512-sdWoUajOB1cd0A8cRRQ1cfyWNbmFKLAqBB89Y8x5iYyG/mkJHc0YUH8pdWBy2omi9qtCpiIgGjuwO0dQST2l5w==", - "dev": true, - "license": "MIT", - "dependencies": { - "@types/node": "*" - } - }, - "node_modules/@types/json-schema": { - "version": "7.0.15", - "resolved": "https://npm.sinequa.com/@types/json-schema/-/json-schema-7.0.15.tgz", - "integrity": "sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==", - "dev": true, - "license": "MIT" - }, - "node_modules/@types/mime": { - "version": "1.3.5", - "resolved": "https://npm.sinequa.com/@types/mime/-/mime-1.3.5.tgz", - "integrity": "sha512-/pyBZWSLD2n0dcHE3hq8s8ZvcETHtEuF+3E7XVt0Ig2nvsVQXdghHVcEkIWjy9A0wKfTn97a/PSDYohKIlnP/w==", - "dev": true, - "license": "MIT" - }, - "node_modules/@types/mute-stream": { - "version": "0.0.4", - "resolved": "https://npm.sinequa.com/@types/mute-stream/-/mute-stream-0.0.4.tgz", - "integrity": "sha512-CPM9nzrCPPJHQNA9keH9CVkVI+WR5kMa+7XEs5jcGQ0VoAGnLv242w8lIVgwAEfmE4oufJRaTc9PNLQl0ioAow==", - "dev": true, - "license": "MIT", - "dependencies": { - "@types/node": "*" - } - }, - "node_modules/@types/node": { - "version": "16.18.126", - "resolved": "https://npm.sinequa.com/@types/node/-/node-16.18.126.tgz", - "integrity": "sha512-OTcgaiwfGFBKacvfwuHzzn1KLxH/er8mluiy8/uM3sGXHaRe73RrSIj01jow9t4kJEW633Ov+cOexXeiApTyAw==", - "license": "MIT" - }, - "node_modules/@types/node-forge": { - "version": "1.3.11", - "resolved": "https://npm.sinequa.com/@types/node-forge/-/node-forge-1.3.11.tgz", - "integrity": "sha512-FQx220y22OKNTqaByeBGqHWYz4cl94tpcxeFdvBo3wjG6XPBuZ0BNgNZRV5J5TFmmcsJ4IzsLkmGRiQbnYsBEQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "@types/node": "*" - } - }, - "node_modules/@types/qs": { - "version": "6.9.18", - "resolved": "https://npm.sinequa.com/@types/qs/-/qs-6.9.18.tgz", - "integrity": "sha512-kK7dgTYDyGqS+e2Q4aK9X3D7q234CIZ1Bv0q/7Z5IwRDoADNU81xXJK/YVyLbLTZCoIwUoDoffFeF+p/eIklAA==", - "dev": true, - "license": "MIT" - }, - "node_modules/@types/range-parser": { - "version": "1.2.7", - "resolved": "https://npm.sinequa.com/@types/range-parser/-/range-parser-1.2.7.tgz", - "integrity": "sha512-hKormJbkJqzQGhziax5PItDUTMAM9uE2XXQmM37dyd4hVM+5aVl7oVxMVUiVQn2oCQFN/LKCZdvSM0pFRqbSmQ==", - "dev": true, - "license": "MIT" - }, - "node_modules/@types/retry": { - "version": "0.12.2", - "resolved": "https://npm.sinequa.com/@types/retry/-/retry-0.12.2.tgz", - "integrity": "sha512-XISRgDJ2Tc5q4TRqvgJtzsRkFYNJzZrhTdtMoGVBttwzzQJkPnS3WWTFc7kuDRoPtPakl+T+OfdEUjYJj7Jbow==", - "dev": true, - "license": "MIT" - }, - "node_modules/@types/send": { - "version": "0.17.4", - "resolved": "https://npm.sinequa.com/@types/send/-/send-0.17.4.tgz", - "integrity": "sha512-x2EM6TJOybec7c52BX0ZspPodMsQUd5L6PRwOunVyVUhXiBSKf3AezDL8Dgvgt5o0UfKNfuA0eMLr2wLT4AiBA==", - "dev": true, - "license": "MIT", - "dependencies": { - "@types/mime": "^1", - "@types/node": "*" - } - }, - "node_modules/@types/serve-index": { - "version": "1.9.4", - "resolved": "https://npm.sinequa.com/@types/serve-index/-/serve-index-1.9.4.tgz", - "integrity": "sha512-qLpGZ/c2fhSs5gnYsQxtDEq3Oy8SXPClIXkW5ghvAvsNuVSA8k+gCONcUCS/UjLEYvYps+e8uBtfgXgvhwfNug==", - "dev": true, - "license": "MIT", - "dependencies": { - "@types/express": "*" - } - }, - "node_modules/@types/serve-static": { - "version": "1.15.7", - "resolved": "https://npm.sinequa.com/@types/serve-static/-/serve-static-1.15.7.tgz", - "integrity": "sha512-W8Ym+h8nhuRwaKPaDw34QUkwsGi6Rc4yYqvKFo5rm2FUEhCFbzVWrxXUxuKK8TASjWsysJY0nsmNCGhCOIsrOw==", - "dev": true, - "license": "MIT", - "dependencies": { - "@types/http-errors": "*", - "@types/node": "*", - "@types/send": "*" - } - }, - "node_modules/@types/sockjs": { - "version": "0.3.36", - "resolved": "https://npm.sinequa.com/@types/sockjs/-/sockjs-0.3.36.tgz", - "integrity": "sha512-MK9V6NzAS1+Ud7JV9lJLFqW85VbC9dq3LmwZCuBe4wBDgKC0Kj/jd8Xl+nSviU+Qc3+m7umHHyHg//2KSa0a0Q==", - "dev": true, - "license": "MIT", - "dependencies": { - "@types/node": "*" - } - }, - "node_modules/@types/unist": { - "version": "2.0.11", - "resolved": "https://npm.sinequa.com/@types/unist/-/unist-2.0.11.tgz", - "integrity": "sha512-CmBKiL6NNo/OqgmMn95Fk9Whlp2mtvIv+KNpQKN2F4SjvrEesubTRWGYSg+BnWZOnlCaSTU1sMpsBOzgbYhnsA==", - "dev": true, - "license": "MIT" - }, - "node_modules/@types/wrap-ansi": { - "version": "3.0.0", - "resolved": "https://npm.sinequa.com/@types/wrap-ansi/-/wrap-ansi-3.0.0.tgz", - "integrity": "sha512-ltIpx+kM7g/MLRZfkbL7EsCEjfzCcScLpkg37eXEtx5kmrAKBkTJwd1GIAjDSL8wTpM6Hzn5YO4pSb91BEwu1g==", - "dev": true, - "license": "MIT" - }, - "node_modules/@types/ws": { - "version": "8.5.14", - "resolved": "https://npm.sinequa.com/@types/ws/-/ws-8.5.14.tgz", - "integrity": "sha512-bd/YFLW+URhBzMXurx7lWByOu+xzU9+kb3RboOteXYDfW+tr+JZa99OyNmPINEGB/ahzKrEuc8rcv4gnpJmxTw==", - "dev": true, - "license": "MIT", - "dependencies": { - "@types/node": "*" - } - }, - "node_modules/@vitejs/plugin-basic-ssl": { - "version": "1.1.0", - "resolved": "https://npm.sinequa.com/@vitejs/plugin-basic-ssl/-/plugin-basic-ssl-1.1.0.tgz", - "integrity": "sha512-wO4Dk/rm8u7RNhOf95ZzcEmC9rYOncYgvq4z3duaJrCgjN8BxAnDVyndanfcJZ0O6XZzHz6Q0hTimxTg8Y9g/A==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=14.6.0" - }, - "peerDependencies": { - "vite": "^3.0.0 || ^4.0.0 || ^5.0.0" - } - }, - "node_modules/@webassemblyjs/ast": { - "version": "1.14.1", - "resolved": "https://npm.sinequa.com/@webassemblyjs/ast/-/ast-1.14.1.tgz", - "integrity": "sha512-nuBEDgQfm1ccRp/8bCQrx1frohyufl4JlbMMZ4P1wpeOfDhF6FQkxZJ1b/e+PLwr6X1Nhw6OLme5usuBWYBvuQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "@webassemblyjs/helper-numbers": "1.13.2", - "@webassemblyjs/helper-wasm-bytecode": "1.13.2" - } - }, - "node_modules/@webassemblyjs/floating-point-hex-parser": { - "version": "1.13.2", - "resolved": "https://npm.sinequa.com/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.13.2.tgz", - "integrity": "sha512-6oXyTOzbKxGH4steLbLNOu71Oj+C8Lg34n6CqRvqfS2O71BxY6ByfMDRhBytzknj9yGUPVJ1qIKhRlAwO1AovA==", - "dev": true, - "license": "MIT" - }, - "node_modules/@webassemblyjs/helper-api-error": { - "version": "1.13.2", - "resolved": "https://npm.sinequa.com/@webassemblyjs/helper-api-error/-/helper-api-error-1.13.2.tgz", - "integrity": "sha512-U56GMYxy4ZQCbDZd6JuvvNV/WFildOjsaWD3Tzzvmw/mas3cXzRJPMjP83JqEsgSbyrmaGjBfDtV7KDXV9UzFQ==", - "dev": true, - "license": "MIT" - }, - "node_modules/@webassemblyjs/helper-buffer": { - "version": "1.14.1", - "resolved": "https://npm.sinequa.com/@webassemblyjs/helper-buffer/-/helper-buffer-1.14.1.tgz", - "integrity": "sha512-jyH7wtcHiKssDtFPRB+iQdxlDf96m0E39yb0k5uJVhFGleZFoNw1c4aeIcVUPPbXUVJ94wwnMOAqUHyzoEPVMA==", - "dev": true, - "license": "MIT" - }, - "node_modules/@webassemblyjs/helper-numbers": { - "version": "1.13.2", - "resolved": "https://npm.sinequa.com/@webassemblyjs/helper-numbers/-/helper-numbers-1.13.2.tgz", - "integrity": "sha512-FE8aCmS5Q6eQYcV3gI35O4J789wlQA+7JrqTTpJqn5emA4U2hvwJmvFRC0HODS+3Ye6WioDklgd6scJ3+PLnEA==", - "dev": true, - "license": "MIT", - "dependencies": { - "@webassemblyjs/floating-point-hex-parser": "1.13.2", - "@webassemblyjs/helper-api-error": "1.13.2", - "@xtuc/long": "4.2.2" - } - }, - "node_modules/@webassemblyjs/helper-wasm-bytecode": { - "version": "1.13.2", - "resolved": "https://npm.sinequa.com/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.13.2.tgz", - "integrity": "sha512-3QbLKy93F0EAIXLh0ogEVR6rOubA9AoZ+WRYhNbFyuB70j3dRdwH9g+qXhLAO0kiYGlg3TxDV+I4rQTr/YNXkA==", - "dev": true, - "license": "MIT" - }, - "node_modules/@webassemblyjs/helper-wasm-section": { - "version": "1.14.1", - "resolved": "https://npm.sinequa.com/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.14.1.tgz", - "integrity": "sha512-ds5mXEqTJ6oxRoqjhWDU83OgzAYjwsCV8Lo/N+oRsNDmx/ZDpqalmrtgOMkHwxsG0iI//3BwWAErYRHtgn0dZw==", - "dev": true, - "license": "MIT", - "dependencies": { - "@webassemblyjs/ast": "1.14.1", - "@webassemblyjs/helper-buffer": "1.14.1", - "@webassemblyjs/helper-wasm-bytecode": "1.13.2", - "@webassemblyjs/wasm-gen": "1.14.1" - } - }, - "node_modules/@webassemblyjs/ieee754": { - "version": "1.13.2", - "resolved": "https://npm.sinequa.com/@webassemblyjs/ieee754/-/ieee754-1.13.2.tgz", - "integrity": "sha512-4LtOzh58S/5lX4ITKxnAK2USuNEvpdVV9AlgGQb8rJDHaLeHciwG4zlGr0j/SNWlr7x3vO1lDEsuePvtcDNCkw==", - "dev": true, - "license": "MIT", - "dependencies": { - "@xtuc/ieee754": "^1.2.0" - } - }, - "node_modules/@webassemblyjs/leb128": { - "version": "1.13.2", - "resolved": "https://npm.sinequa.com/@webassemblyjs/leb128/-/leb128-1.13.2.tgz", - "integrity": "sha512-Lde1oNoIdzVzdkNEAWZ1dZ5orIbff80YPdHx20mrHwHrVNNTjNr8E3xz9BdpcGqRQbAEa+fkrCb+fRFTl/6sQw==", - "dev": true, - "license": "Apache-2.0", - "dependencies": { - "@xtuc/long": "4.2.2" - } - }, - "node_modules/@webassemblyjs/utf8": { - "version": "1.13.2", - "resolved": "https://npm.sinequa.com/@webassemblyjs/utf8/-/utf8-1.13.2.tgz", - "integrity": "sha512-3NQWGjKTASY1xV5m7Hr0iPeXD9+RDobLll3T9d2AO+g3my8xy5peVyjSag4I50mR1bBSN/Ct12lo+R9tJk0NZQ==", - "dev": true, - "license": "MIT" - }, - "node_modules/@webassemblyjs/wasm-edit": { - "version": "1.14.1", - "resolved": "https://npm.sinequa.com/@webassemblyjs/wasm-edit/-/wasm-edit-1.14.1.tgz", - "integrity": "sha512-RNJUIQH/J8iA/1NzlE4N7KtyZNHi3w7at7hDjvRNm5rcUXa00z1vRz3glZoULfJ5mpvYhLybmVcwcjGrC1pRrQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "@webassemblyjs/ast": "1.14.1", - "@webassemblyjs/helper-buffer": "1.14.1", - "@webassemblyjs/helper-wasm-bytecode": "1.13.2", - "@webassemblyjs/helper-wasm-section": "1.14.1", - "@webassemblyjs/wasm-gen": "1.14.1", - "@webassemblyjs/wasm-opt": "1.14.1", - "@webassemblyjs/wasm-parser": "1.14.1", - "@webassemblyjs/wast-printer": "1.14.1" - } - }, - "node_modules/@webassemblyjs/wasm-gen": { - "version": "1.14.1", - "resolved": "https://npm.sinequa.com/@webassemblyjs/wasm-gen/-/wasm-gen-1.14.1.tgz", - "integrity": "sha512-AmomSIjP8ZbfGQhumkNvgC33AY7qtMCXnN6bL2u2Js4gVCg8fp735aEiMSBbDR7UQIj90n4wKAFUSEd0QN2Ukg==", - "dev": true, - "license": "MIT", - "dependencies": { - "@webassemblyjs/ast": "1.14.1", - "@webassemblyjs/helper-wasm-bytecode": "1.13.2", - "@webassemblyjs/ieee754": "1.13.2", - "@webassemblyjs/leb128": "1.13.2", - "@webassemblyjs/utf8": "1.13.2" - } - }, - "node_modules/@webassemblyjs/wasm-opt": { - "version": "1.14.1", - "resolved": "https://npm.sinequa.com/@webassemblyjs/wasm-opt/-/wasm-opt-1.14.1.tgz", - "integrity": "sha512-PTcKLUNvBqnY2U6E5bdOQcSM+oVP/PmrDY9NzowJjislEjwP/C4an2303MCVS2Mg9d3AJpIGdUFIQQWbPds0Sw==", - "dev": true, - "license": "MIT", - "dependencies": { - "@webassemblyjs/ast": "1.14.1", - "@webassemblyjs/helper-buffer": "1.14.1", - "@webassemblyjs/wasm-gen": "1.14.1", - "@webassemblyjs/wasm-parser": "1.14.1" - } - }, - "node_modules/@webassemblyjs/wasm-parser": { - "version": "1.14.1", - "resolved": "https://npm.sinequa.com/@webassemblyjs/wasm-parser/-/wasm-parser-1.14.1.tgz", - "integrity": "sha512-JLBl+KZ0R5qB7mCnud/yyX08jWFw5MsoalJ1pQ4EdFlgj9VdXKGuENGsiCIjegI1W7p91rUlcB/LB5yRJKNTcQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "@webassemblyjs/ast": "1.14.1", - "@webassemblyjs/helper-api-error": "1.13.2", - "@webassemblyjs/helper-wasm-bytecode": "1.13.2", - "@webassemblyjs/ieee754": "1.13.2", - "@webassemblyjs/leb128": "1.13.2", - "@webassemblyjs/utf8": "1.13.2" - } - }, - "node_modules/@webassemblyjs/wast-printer": { - "version": "1.14.1", - "resolved": "https://npm.sinequa.com/@webassemblyjs/wast-printer/-/wast-printer-1.14.1.tgz", - "integrity": "sha512-kPSSXE6De1XOR820C90RIo2ogvZG+c3KiHzqUoO/F34Y2shGzesfqv7o57xrxovZJH/MetF5UjroJ/R/3isoiw==", - "dev": true, - "license": "MIT", - "dependencies": { - "@webassemblyjs/ast": "1.14.1", - "@xtuc/long": "4.2.2" - } - }, - "node_modules/@xtuc/ieee754": { - "version": "1.2.0", - "resolved": "https://npm.sinequa.com/@xtuc/ieee754/-/ieee754-1.2.0.tgz", - "integrity": "sha512-DX8nKgqcGwsc0eJSqYt5lwP4DH5FlHnmuWWBRy7X0NcaGR0ZtuyeESgMwTYVEtxmsNGY+qit4QYT/MIYTOTPeA==", - "dev": true, - "license": "BSD-3-Clause" - }, - "node_modules/@xtuc/long": { - "version": "4.2.2", - "resolved": "https://npm.sinequa.com/@xtuc/long/-/long-4.2.2.tgz", - "integrity": "sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ==", - "dev": true, - "license": "Apache-2.0" - }, - "node_modules/@yarnpkg/lockfile": { - "version": "1.1.0", - "resolved": "https://npm.sinequa.com/@yarnpkg/lockfile/-/lockfile-1.1.0.tgz", - "integrity": "sha512-GpSwvyXOcOOlV70vbnzjj4fW5xW/FdUF6nQEt1ENy7m4ZCczi1+/buVUPAqmGfqznsORNFzUMjctTIp8a9tuCQ==", - "dev": true, - "license": "BSD-2-Clause" - }, - "node_modules/abbrev": { - "version": "2.0.0", - "resolved": "https://npm.sinequa.com/abbrev/-/abbrev-2.0.0.tgz", - "integrity": "sha512-6/mh1E2u2YgEsCHdY0Yx5oW+61gZU+1vXaoiHHrpKeuRNNgFvS+/jrwHiQhB5apAf5oB7UB7E19ol2R2LKH8hQ==", - "dev": true, - "license": "ISC", - "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" - } - }, - "node_modules/abort-controller": { - "version": "3.0.0", - "resolved": "https://npm.sinequa.com/abort-controller/-/abort-controller-3.0.0.tgz", - "integrity": "sha512-h8lQ8tacZYnR3vNQTgibj+tODHI5/+l06Au2Pcriv/Gmet0eaj4TwWH41sO9wnHDiQsEj19q0drzdWdeAHtweg==", - "license": "MIT", - "dependencies": { - "event-target-shim": "^5.0.0" - }, - "engines": { - "node": ">=6.5" - } - }, - "node_modules/accepts": { - "version": "1.3.8", - "resolved": "https://npm.sinequa.com/accepts/-/accepts-1.3.8.tgz", - "integrity": "sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==", - "dev": true, - "license": "MIT", - "dependencies": { - "mime-types": "~2.1.34", - "negotiator": "0.6.3" - }, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/accepts/node_modules/negotiator": { - "version": "0.6.3", - "resolved": "https://npm.sinequa.com/negotiator/-/negotiator-0.6.3.tgz", - "integrity": "sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/acorn": { - "version": "8.14.0", - "resolved": "https://npm.sinequa.com/acorn/-/acorn-8.14.0.tgz", - "integrity": "sha512-cl669nCJTZBsL97OF4kUQm5g5hC2uihk0NxY3WENAC0TYdILVkAyHymAntgxGkl7K+t0cXIrH5siy5S4XkFycA==", - "dev": true, - "license": "MIT", - "bin": { - "acorn": "bin/acorn" - }, - "engines": { - "node": ">=0.4.0" - } - }, - "node_modules/acorn-import-attributes": { - "version": "1.9.5", - "resolved": "https://npm.sinequa.com/acorn-import-attributes/-/acorn-import-attributes-1.9.5.tgz", - "integrity": "sha512-n02Vykv5uA3eHGM/Z2dQrcD56kL8TyDb2p1+0P83PClMnC/nc+anbQRhIOWnSq4Ke/KvDPrY3C9hDtC/A3eHnQ==", - "dev": true, - "license": "MIT", - "peerDependencies": { - "acorn": "^8" - } - }, - "node_modules/adjust-sourcemap-loader": { - "version": "4.0.0", - "resolved": "https://npm.sinequa.com/adjust-sourcemap-loader/-/adjust-sourcemap-loader-4.0.0.tgz", - "integrity": "sha512-OXwN5b9pCUXNQHJpwwD2qP40byEmSgzj8B4ydSN0uMNYWiFmJ6x6KwUllMmfk8Rwu/HJDFR7U8ubsWBoN0Xp0A==", - "dev": true, - "license": "MIT", - "dependencies": { - "loader-utils": "^2.0.0", - "regex-parser": "^2.2.11" - }, - "engines": { - "node": ">=8.9" - } - }, - "node_modules/adjust-sourcemap-loader/node_modules/loader-utils": { - "version": "2.0.4", - "resolved": "https://npm.sinequa.com/loader-utils/-/loader-utils-2.0.4.tgz", - "integrity": "sha512-xXqpXoINfFhgua9xiqD8fPFHgkoq1mmmpE92WlDbm9rNRd/EbRb+Gqf908T2DMfuHjjJlksiK2RbHVOdD/MqSw==", - "dev": true, - "license": "MIT", - "dependencies": { - "big.js": "^5.2.2", - "emojis-list": "^3.0.0", - "json5": "^2.1.2" - }, - "engines": { - "node": ">=8.9.0" - } - }, - "node_modules/agent-base": { - "version": "7.1.3", - "resolved": "https://npm.sinequa.com/agent-base/-/agent-base-7.1.3.tgz", - "integrity": "sha512-jRR5wdylq8CkOe6hei19GGZnxM6rBGwFl3Bg0YItGDimvjGtAvdZk4Pu6Cl4u4Igsws4a1fd1Vq3ezrhn4KmFw==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 14" - } - }, - "node_modules/aggregate-error": { - "version": "3.1.0", - "resolved": "https://npm.sinequa.com/aggregate-error/-/aggregate-error-3.1.0.tgz", - "integrity": "sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA==", - "dev": true, - "license": "MIT", - "dependencies": { - "clean-stack": "^2.0.0", - "indent-string": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/ajv": { - "version": "8.17.1", - "resolved": "https://npm.sinequa.com/ajv/-/ajv-8.17.1.tgz", - "integrity": "sha512-B/gBuNg5SiMTrPkC+A2+cW0RszwxYmn6VYxB/inlBStS5nx6xHIt/ehKRhIMhqusl7a8LjQoZnjCs5vhwxOQ1g==", - "license": "MIT", - "dependencies": { - "fast-deep-equal": "^3.1.3", - "fast-uri": "^3.0.1", - "json-schema-traverse": "^1.0.0", - "require-from-string": "^2.0.2" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/epoberezkin" - } - }, - "node_modules/ajv-formats": { - "version": "3.0.1", - "resolved": "https://npm.sinequa.com/ajv-formats/-/ajv-formats-3.0.1.tgz", - "integrity": "sha512-8iUql50EUR+uUcdRQ3HDqa6EVyo3docL8g5WJ3FNcWmu62IbkGUue/pEyLBW8VGKKucTPgqeks4fIU1DA4yowQ==", - "license": "MIT", - "dependencies": { - "ajv": "^8.0.0" - }, - "peerDependencies": { - "ajv": "^8.0.0" - }, - "peerDependenciesMeta": { - "ajv": { - "optional": true - } - } - }, - "node_modules/ajv-keywords": { - "version": "5.1.0", - "resolved": "https://npm.sinequa.com/ajv-keywords/-/ajv-keywords-5.1.0.tgz", - "integrity": "sha512-YCS/JNFAUyr5vAuhk1DWm1CBxRHW9LbJ2ozWeemrIqpbsqKjHVxYPyi5GC0rjZIT5JxJ3virVTS8wk4i/Z+krw==", - "dev": true, - "license": "MIT", - "dependencies": { - "fast-deep-equal": "^3.1.3" - }, - "peerDependencies": { - "ajv": "^8.8.2" - } - }, - "node_modules/ansi-colors": { - "version": "4.1.3", - "resolved": "https://npm.sinequa.com/ansi-colors/-/ansi-colors-4.1.3.tgz", - "integrity": "sha512-/6w/C21Pm1A7aZitlI5Ni/2J6FFQN8i1Cvz3kHABAAbw93v/NlvKdVOqz7CCWz/3iv/JplRSEEZ83XION15ovw==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=6" - } - }, - "node_modules/ansi-escapes": { - "version": "4.3.2", - "resolved": "https://npm.sinequa.com/ansi-escapes/-/ansi-escapes-4.3.2.tgz", - "integrity": "sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "type-fest": "^0.21.3" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/ansi-html-community": { - "version": "0.0.8", - "resolved": "https://npm.sinequa.com/ansi-html-community/-/ansi-html-community-0.0.8.tgz", - "integrity": "sha512-1APHAyr3+PCamwNw3bXCPp4HFLONZt/yIH0sZp0/469KWNTEy+qN5jQ3GVX6DMZ1UXAi34yVwtTeaG/HpBuuzw==", - "dev": true, - "engines": [ - "node >= 0.8.0" - ], - "license": "Apache-2.0", - "bin": { - "ansi-html": "bin/ansi-html" - } - }, - "node_modules/ansi-regex": { - "version": "5.0.1", - "resolved": "https://npm.sinequa.com/ansi-regex/-/ansi-regex-5.0.1.tgz", - "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://npm.sinequa.com/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "license": "MIT", - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/any-promise": { - "version": "1.3.0", - "resolved": "https://npm.sinequa.com/any-promise/-/any-promise-1.3.0.tgz", - "integrity": "sha512-7UvmKalWRt1wgjL1RrGxoSJW/0QZFIegpeGvZG9kjp8vrRu55XTHbwnqq2GpXm9uLbcuhxm3IqX9OB4MZR1b2A==", - "dev": true, - "license": "MIT" - }, - "node_modules/anymatch": { - "version": "3.1.3", - "resolved": "https://npm.sinequa.com/anymatch/-/anymatch-3.1.3.tgz", - "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==", - "dev": true, - "license": "ISC", - "dependencies": { - "normalize-path": "^3.0.0", - "picomatch": "^2.0.4" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/anymatch/node_modules/picomatch": { - "version": "2.3.1", - "resolved": "https://npm.sinequa.com/picomatch/-/picomatch-2.3.1.tgz", - "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8.6" - }, - "funding": { - "url": "https://github.com/sponsors/jonschlinkert" - } - }, - "node_modules/arg": { - "version": "5.0.2", - "resolved": "https://npm.sinequa.com/arg/-/arg-5.0.2.tgz", - "integrity": "sha512-PYjyFOLKQ9y57JvQ6QLo8dAgNqswh8M1RMJYdQduT6xbWSgK36P/Z/v+p888pM69jMMfS8Xd8F6I1kQ/I9HUGg==", - "dev": true, - "license": "MIT" - }, - "node_modules/argparse": { - "version": "2.0.1", - "resolved": "https://npm.sinequa.com/argparse/-/argparse-2.0.1.tgz", - "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", - "license": "Python-2.0" - }, - "node_modules/aria-query": { - "version": "5.3.2", - "resolved": "https://npm.sinequa.com/aria-query/-/aria-query-5.3.2.tgz", - "integrity": "sha512-COROpnaoap1E2F000S62r6A60uHZnmlvomhfyT2DlTcrY1OrBKn2UhH7qn5wTC9zMvD0AY7csdPSNwKP+7WiQw==", - "license": "Apache-2.0", - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/array-flatten": { - "version": "1.1.1", - "resolved": "https://npm.sinequa.com/array-flatten/-/array-flatten-1.1.1.tgz", - "integrity": "sha1-ml9pkFGx5wczKPKgCJaLZOopVdI=", - "dev": true, - "license": "MIT" - }, - "node_modules/autoprefixer": { - "version": "10.4.20", - "resolved": "https://npm.sinequa.com/autoprefixer/-/autoprefixer-10.4.20.tgz", - "integrity": "sha512-XY25y5xSv/wEoqzDyXXME4AFfkZI0P23z6Fs3YgymDnKJkCGOnkL0iTxCa85UTqaSgfcqyf3UA6+c7wUvx/16g==", - "dev": true, - "funding": [ - { - "type": "opencollective", - "url": "https://opencollective.com/postcss/" - }, - { - "type": "tidelift", - "url": "https://tidelift.com/funding/github/npm/autoprefixer" - }, - { - "type": "github", - "url": "https://github.com/sponsors/ai" - } - ], - "license": "MIT", - "dependencies": { - "browserslist": "^4.23.3", - "caniuse-lite": "^1.0.30001646", - "fraction.js": "^4.3.7", - "normalize-range": "^0.1.2", - "picocolors": "^1.0.1", - "postcss-value-parser": "^4.2.0" - }, - "bin": { - "autoprefixer": "bin/autoprefixer" - }, - "engines": { - "node": "^10 || ^12 || >=14" - }, - "peerDependencies": { - "postcss": "^8.1.0" - } - }, - "node_modules/axobject-query": { - "version": "4.1.0", - "resolved": "https://npm.sinequa.com/axobject-query/-/axobject-query-4.1.0.tgz", - "integrity": "sha512-qIj0G9wZbMGNLjLmg1PT6v2mE9AH2zlnADJD/2tC6E00hgmhUOfEB6greHPAfLRSufHqROIUTkw6E+M3lH0PTQ==", - "license": "Apache-2.0", - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/babel-loader": { - "version": "9.1.3", - "resolved": "https://npm.sinequa.com/babel-loader/-/babel-loader-9.1.3.tgz", - "integrity": "sha512-xG3ST4DglodGf8qSwv0MdeWLhrDsw/32QMdTO5T1ZIp9gQur0HkCyFs7Awskr10JKXFXwpAhiCuYX5oGXnRGbw==", - "dev": true, - "license": "MIT", - "dependencies": { - "find-cache-dir": "^4.0.0", - "schema-utils": "^4.0.0" - }, - "engines": { - "node": ">= 14.15.0" - }, - "peerDependencies": { - "@babel/core": "^7.12.0", - "webpack": ">=5" - } - }, - "node_modules/babel-plugin-polyfill-corejs2": { - "version": "0.4.12", - "resolved": "https://npm.sinequa.com/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.4.12.tgz", - "integrity": "sha512-CPWT6BwvhrTO2d8QVorhTCQw9Y43zOu7G9HigcfxvepOU6b8o3tcWad6oVgZIsZCTt42FFv97aA7ZJsbM4+8og==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/compat-data": "^7.22.6", - "@babel/helper-define-polyfill-provider": "^0.6.3", - "semver": "^6.3.1" - }, - "peerDependencies": { - "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" - } - }, - "node_modules/babel-plugin-polyfill-corejs2/node_modules/semver": { - "version": "6.3.1", - "resolved": "https://npm.sinequa.com/semver/-/semver-6.3.1.tgz", - "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", - "dev": true, - "license": "ISC", - "bin": { - "semver": "bin/semver.js" - } - }, - "node_modules/babel-plugin-polyfill-corejs3": { - "version": "0.10.6", - "resolved": "https://npm.sinequa.com/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.10.6.tgz", - "integrity": "sha512-b37+KR2i/khY5sKmWNVQAnitvquQbNdWy6lJdsr0kmquCKEEUgMKK4SboVM3HtfnZilfjr4MMQ7vY58FVWDtIA==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-define-polyfill-provider": "^0.6.2", - "core-js-compat": "^3.38.0" - }, - "peerDependencies": { - "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" - } - }, - "node_modules/babel-plugin-polyfill-regenerator": { - "version": "0.6.3", - "resolved": "https://npm.sinequa.com/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.6.3.tgz", - "integrity": "sha512-LiWSbl4CRSIa5x/JAU6jZiG9eit9w6mz+yVMFwDE83LAWvt0AfGBoZ7HS/mkhrKuh2ZlzfVZYKoLjXdqw6Yt7Q==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-define-polyfill-provider": "^0.6.3" - }, - "peerDependencies": { - "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" - } - }, - "node_modules/balanced-match": { - "version": "1.0.2", - "resolved": "https://npm.sinequa.com/balanced-match/-/balanced-match-1.0.2.tgz", - "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", - "license": "MIT" - }, - "node_modules/base64-js": { - "version": "1.5.1", - "resolved": "https://npm.sinequa.com/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" - } - ], - "license": "MIT" - }, - "node_modules/batch": { - "version": "0.6.1", - "resolved": "https://npm.sinequa.com/batch/-/batch-0.6.1.tgz", - "integrity": "sha1-3DQxT05nkxgJP8dgJyUl+UvyXBY=", - "dev": true, - "license": "MIT" - }, - "node_modules/big.js": { - "version": "5.2.2", - "resolved": "https://npm.sinequa.com/big.js/-/big.js-5.2.2.tgz", - "integrity": "sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ==", - "dev": true, - "license": "MIT", - "engines": { - "node": "*" - } - }, - "node_modules/binary-extensions": { - "version": "2.3.0", - "resolved": "https://npm.sinequa.com/binary-extensions/-/binary-extensions-2.3.0.tgz", - "integrity": "sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/bl": { - "version": "4.1.0", - "resolved": "https://npm.sinequa.com/bl/-/bl-4.1.0.tgz", - "integrity": "sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w==", - "license": "MIT", - "dependencies": { - "buffer": "^5.5.0", - "inherits": "^2.0.4", - "readable-stream": "^3.4.0" - } - }, - "node_modules/body-parser": { - "version": "1.20.3", - "resolved": "https://npm.sinequa.com/body-parser/-/body-parser-1.20.3.tgz", - "integrity": "sha512-7rAxByjUMqQ3/bHJy7D6OGXvx/MMc4IqBn/X0fcM1QUcAItpZrBEYhWGem+tzXH90c+G01ypMcYJBO9Y30203g==", - "dev": true, - "license": "MIT", - "dependencies": { - "bytes": "3.1.2", - "content-type": "~1.0.5", - "debug": "2.6.9", - "depd": "2.0.0", - "destroy": "1.2.0", - "http-errors": "2.0.0", - "iconv-lite": "0.4.24", - "on-finished": "2.4.1", - "qs": "6.13.0", - "raw-body": "2.5.2", - "type-is": "~1.6.18", - "unpipe": "1.0.0" - }, - "engines": { - "node": ">= 0.8", - "npm": "1.2.8000 || >= 1.4.16" - } - }, - "node_modules/body-parser/node_modules/debug": { - "version": "2.6.9", - "resolved": "https://npm.sinequa.com/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dev": true, - "license": "MIT", - "dependencies": { - "ms": "2.0.0" - } - }, - "node_modules/body-parser/node_modules/ms": { - "version": "2.0.0", - "resolved": "https://npm.sinequa.com/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", - "dev": true, - "license": "MIT" - }, - "node_modules/bonjour-service": { - "version": "1.3.0", - "resolved": "https://npm.sinequa.com/bonjour-service/-/bonjour-service-1.3.0.tgz", - "integrity": "sha512-3YuAUiSkWykd+2Azjgyxei8OWf8thdn8AITIog2M4UICzoqfjlqr64WIjEXZllf/W6vK1goqleSR6brGomxQqA==", - "dev": true, - "license": "MIT", - "dependencies": { - "fast-deep-equal": "^3.1.3", - "multicast-dns": "^7.2.5" - } - }, - "node_modules/boolbase": { - "version": "1.0.0", - "resolved": "https://npm.sinequa.com/boolbase/-/boolbase-1.0.0.tgz", - "integrity": "sha1-aN/1++YMUes3cl6p4+0xDcwed24=", - "dev": true, - "license": "ISC" - }, - "node_modules/brace-expansion": { - "version": "2.0.1", - "resolved": "https://npm.sinequa.com/brace-expansion/-/brace-expansion-2.0.1.tgz", - "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", - "license": "MIT", - "dependencies": { - "balanced-match": "^1.0.0" - } - }, - "node_modules/braces": { - "version": "3.0.3", - "resolved": "https://npm.sinequa.com/braces/-/braces-3.0.3.tgz", - "integrity": "sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==", - "dev": true, - "license": "MIT", - "dependencies": { - "fill-range": "^7.1.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/browserslist": { - "version": "4.24.4", - "resolved": "https://npm.sinequa.com/browserslist/-/browserslist-4.24.4.tgz", - "integrity": "sha512-KDi1Ny1gSePi1vm0q4oxSF8b4DR44GF4BbmS2YdhPLOEqd8pDviZOGH/GsmRwoWJ2+5Lr085X7naowMwKHDG1A==", - "dev": true, - "funding": [ - { - "type": "opencollective", - "url": "https://opencollective.com/browserslist" - }, - { - "type": "tidelift", - "url": "https://tidelift.com/funding/github/npm/browserslist" - }, - { - "type": "github", - "url": "https://github.com/sponsors/ai" - } - ], - "license": "MIT", - "dependencies": { - "caniuse-lite": "^1.0.30001688", - "electron-to-chromium": "^1.5.73", - "node-releases": "^2.0.19", - "update-browserslist-db": "^1.1.1" - }, - "bin": { - "browserslist": "cli.js" - }, - "engines": { - "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7" - } - }, - "node_modules/buffer": { - "version": "5.7.1", - "resolved": "https://npm.sinequa.com/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" - } - ], - "license": "MIT", - "dependencies": { - "base64-js": "^1.3.1", - "ieee754": "^1.1.13" - } - }, - "node_modules/buffer-from": { - "version": "1.1.2", - "resolved": "https://npm.sinequa.com/buffer-from/-/buffer-from-1.1.2.tgz", - "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==", - "dev": true, - "license": "MIT" - }, - "node_modules/bundle-name": { - "version": "4.1.0", - "resolved": "https://npm.sinequa.com/bundle-name/-/bundle-name-4.1.0.tgz", - "integrity": "sha512-tjwM5exMg6BGRI+kNmTntNsvdZS1X8BFYS6tnJ2hdH0kVxM6/eVZ2xy+FqStSWvYmtfFMDLIxurorHwDKfDz5Q==", - "dev": true, - "license": "MIT", - "dependencies": { - "run-applescript": "^7.0.0" - }, - "engines": { - "node": ">=18" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/bytes": { - "version": "3.1.2", - "resolved": "https://npm.sinequa.com/bytes/-/bytes-3.1.2.tgz", - "integrity": "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/cacache": { - "version": "18.0.4", - "resolved": "https://npm.sinequa.com/cacache/-/cacache-18.0.4.tgz", - "integrity": "sha512-B+L5iIa9mgcjLbliir2th36yEwPftrzteHYujzsx3dFP/31GCHcIeS8f5MGd80odLOjaOvSpU3EEAmRQptkxLQ==", - "dev": true, - "license": "ISC", - "dependencies": { - "@npmcli/fs": "^3.1.0", - "fs-minipass": "^3.0.0", - "glob": "^10.2.2", - "lru-cache": "^10.0.1", - "minipass": "^7.0.3", - "minipass-collect": "^2.0.1", - "minipass-flush": "^1.0.5", - "minipass-pipeline": "^1.2.4", - "p-map": "^4.0.0", - "ssri": "^10.0.0", - "tar": "^6.1.11", - "unique-filename": "^3.0.0" - }, - "engines": { - "node": "^16.14.0 || >=18.0.0" - } - }, - "node_modules/cacache/node_modules/lru-cache": { - "version": "10.4.3", - "resolved": "https://npm.sinequa.com/lru-cache/-/lru-cache-10.4.3.tgz", - "integrity": "sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==", - "dev": true, - "license": "ISC" - }, - "node_modules/call-bind-apply-helpers": { - "version": "1.0.1", - "resolved": "https://npm.sinequa.com/call-bind-apply-helpers/-/call-bind-apply-helpers-1.0.1.tgz", - "integrity": "sha512-BhYE+WDaywFg2TBWYNXAE+8B1ATnThNBqXHP5nQu0jWJdVvY2hvkpyB3qOmtmDePiS5/BDQ8wASEWGMWRG148g==", - "dev": true, - "license": "MIT", - "dependencies": { - "es-errors": "^1.3.0", - "function-bind": "^1.1.2" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/call-bound": { - "version": "1.0.3", - "resolved": "https://npm.sinequa.com/call-bound/-/call-bound-1.0.3.tgz", - "integrity": "sha512-YTd+6wGlNlPxSuri7Y6X8tY2dmm12UMH66RpKMhiX6rsk5wXXnYgbUcOt8kiS31/AjfoTOvCsE+w8nZQLQnzHA==", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bind-apply-helpers": "^1.0.1", - "get-intrinsic": "^1.2.6" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/callsites": { - "version": "3.1.0", - "resolved": "https://npm.sinequa.com/callsites/-/callsites-3.1.0.tgz", - "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", - "license": "MIT", - "engines": { - "node": ">=6" - } - }, - "node_modules/camelcase-css": { - "version": "2.0.1", - "resolved": "https://npm.sinequa.com/camelcase-css/-/camelcase-css-2.0.1.tgz", - "integrity": "sha512-QOSvevhslijgYwRx6Rv7zKdMF8lbRmx+uQGx2+vDc+KI/eBnsy9kit5aj23AgGu3pa4t9AgwbnXWqS+iOY+2aA==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 6" - } - }, - "node_modules/caniuse-lite": { - "version": "1.0.30001698", - "resolved": "https://npm.sinequa.com/caniuse-lite/-/caniuse-lite-1.0.30001698.tgz", - "integrity": "sha512-xJ3km2oiG/MbNU8G6zIq6XRZ6HtAOVXsbOrP/blGazi52kc5Yy7b6sDA5O+FbROzRrV7BSTllLHuNvmawYUJjw==", - "dev": true, - "funding": [ - { - "type": "opencollective", - "url": "https://opencollective.com/browserslist" - }, - { - "type": "tidelift", - "url": "https://tidelift.com/funding/github/npm/caniuse-lite" - }, - { - "type": "github", - "url": "https://github.com/sponsors/ai" - } - ], - "license": "CC-BY-4.0" - }, - "node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://npm.sinequa.com/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "license": "MIT", - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, - "node_modules/chardet": { - "version": "0.7.0", - "resolved": "https://npm.sinequa.com/chardet/-/chardet-0.7.0.tgz", - "integrity": "sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA==", - "dev": true, - "license": "MIT" - }, - "node_modules/chokidar": { - "version": "4.0.3", - "resolved": "https://npm.sinequa.com/chokidar/-/chokidar-4.0.3.tgz", - "integrity": "sha512-Qgzu8kfBvo+cA4962jnP1KkS6Dop5NS6g7R5LFYJr4b8Ub94PPQXUksCw9PvXoeXPRRddRNC5C1JQUR2SMGtnA==", - "dev": true, - "license": "MIT", - "dependencies": { - "readdirp": "^4.0.1" - }, - "engines": { - "node": ">= 14.16.0" - }, - "funding": { - "url": "https://paulmillr.com/funding/" - } - }, - "node_modules/chownr": { - "version": "2.0.0", - "resolved": "https://npm.sinequa.com/chownr/-/chownr-2.0.0.tgz", - "integrity": "sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ==", - "dev": true, - "license": "ISC", - "engines": { - "node": ">=10" - } - }, - "node_modules/chrome-trace-event": { - "version": "1.0.4", - "resolved": "https://npm.sinequa.com/chrome-trace-event/-/chrome-trace-event-1.0.4.tgz", - "integrity": "sha512-rNjApaLzuwaOTjCiT8lSDdGN1APCiqkChLMJxJPWLunPAt5fy8xgU9/jNOchV84wfIxrA0lRQB7oCT8jrn/wrQ==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=6.0" - } - }, - "node_modules/clean-stack": { - "version": "2.2.0", - "resolved": "https://npm.sinequa.com/clean-stack/-/clean-stack-2.2.0.tgz", - "integrity": "sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=6" - } - }, - "node_modules/cli-cursor": { - "version": "5.0.0", - "resolved": "https://npm.sinequa.com/cli-cursor/-/cli-cursor-5.0.0.tgz", - "integrity": "sha512-aCj4O5wKyszjMmDT4tZj93kxyydN/K5zPWSCe6/0AV/AA1pqe5ZBIw0a2ZfPQV7lL5/yb5HsUreJ6UFAF1tEQw==", - "dev": true, - "license": "MIT", - "dependencies": { - "restore-cursor": "^5.0.0" - }, - "engines": { - "node": ">=18" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/cli-spinners": { - "version": "2.9.2", - "resolved": "https://npm.sinequa.com/cli-spinners/-/cli-spinners-2.9.2.tgz", - "integrity": "sha512-ywqV+5MmyL4E7ybXgKys4DugZbX0FC6LnwrhjuykIjnK9k8OQacQ7axGKnjDXWNhns0xot3bZI5h55H8yo9cJg==", - "license": "MIT", - "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/cli-truncate": { - "version": "4.0.0", - "resolved": "https://npm.sinequa.com/cli-truncate/-/cli-truncate-4.0.0.tgz", - "integrity": "sha512-nPdaFdQ0h/GEigbPClz11D0v/ZJEwxmeVZGeMo3Z5StPtUTkA9o1lD6QwoirYiSDzbcwn2XcjwmCp68W1IS4TA==", - "dev": true, - "license": "MIT", - "dependencies": { - "slice-ansi": "^5.0.0", - "string-width": "^7.0.0" - }, - "engines": { - "node": ">=18" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/cli-truncate/node_modules/ansi-regex": { - "version": "6.1.0", - "resolved": "https://npm.sinequa.com/ansi-regex/-/ansi-regex-6.1.0.tgz", - "integrity": "sha512-7HSX4QQb4CspciLpVFwyRe79O3xsIZDDLER21kERQ71oaPodF8jL725AgJMFAYbooIqolJoRLuM81SpeUkpkvA==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/chalk/ansi-regex?sponsor=1" - } - }, - "node_modules/cli-truncate/node_modules/emoji-regex": { - "version": "10.4.0", - "resolved": "https://npm.sinequa.com/emoji-regex/-/emoji-regex-10.4.0.tgz", - "integrity": "sha512-EC+0oUMY1Rqm4O6LLrgjtYDvcVYTy7chDnM4Q7030tP4Kwj3u/pR6gP9ygnp2CJMK5Gq+9Q2oqmrFJAz01DXjw==", - "dev": true, - "license": "MIT" - }, - "node_modules/cli-truncate/node_modules/string-width": { - "version": "7.2.0", - "resolved": "https://npm.sinequa.com/string-width/-/string-width-7.2.0.tgz", - "integrity": "sha512-tsaTIkKW9b4N+AEj+SVA+WhJzV7/zMhcSu78mLKWSk7cXMOSHsBKFWUs0fWwq8QyK3MgJBQRX6Gbi4kYbdvGkQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "emoji-regex": "^10.3.0", - "get-east-asian-width": "^1.0.0", - "strip-ansi": "^7.1.0" - }, - "engines": { - "node": ">=18" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/cli-truncate/node_modules/strip-ansi": { - "version": "7.1.0", - "resolved": "https://npm.sinequa.com/strip-ansi/-/strip-ansi-7.1.0.tgz", - "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "ansi-regex": "^6.0.1" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/chalk/strip-ansi?sponsor=1" - } - }, - "node_modules/cli-width": { - "version": "4.1.0", - "resolved": "https://npm.sinequa.com/cli-width/-/cli-width-4.1.0.tgz", - "integrity": "sha512-ouuZd4/dm2Sw5Gmqy6bGyNNNe1qt9RpmxveLSO7KcgsTnU7RXfsw+/bukWGo1abgBiMAic068rclZsO4IWmmxQ==", - "dev": true, - "license": "ISC", - "engines": { - "node": ">= 12" - } - }, - "node_modules/cliui": { - "version": "8.0.1", - "resolved": "https://npm.sinequa.com/cliui/-/cliui-8.0.1.tgz", - "integrity": "sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==", - "license": "ISC", - "dependencies": { - "string-width": "^4.2.0", - "strip-ansi": "^6.0.1", - "wrap-ansi": "^7.0.0" - }, - "engines": { - "node": ">=12" - } - }, - "node_modules/cliui/node_modules/emoji-regex": { - "version": "8.0.0", - "resolved": "https://npm.sinequa.com/emoji-regex/-/emoji-regex-8.0.0.tgz", - "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", - "license": "MIT" - }, - "node_modules/cliui/node_modules/is-fullwidth-code-point": { - "version": "3.0.0", - "resolved": "https://npm.sinequa.com/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", - "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/cliui/node_modules/string-width": { - "version": "4.2.3", - "resolved": "https://npm.sinequa.com/string-width/-/string-width-4.2.3.tgz", - "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", - "license": "MIT", - "dependencies": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/cliui/node_modules/wrap-ansi": { - "version": "7.0.0", - "resolved": "https://npm.sinequa.com/wrap-ansi/-/wrap-ansi-7.0.0.tgz", - "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", - "license": "MIT", - "dependencies": { - "ansi-styles": "^4.0.0", - "string-width": "^4.1.0", - "strip-ansi": "^6.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/wrap-ansi?sponsor=1" - } - }, - "node_modules/clone": { - "version": "1.0.4", - "resolved": "https://npm.sinequa.com/clone/-/clone-1.0.4.tgz", - "integrity": "sha1-2jCcwmPfFZlMaIypAheco8fNfH4=", - "license": "MIT", - "engines": { - "node": ">=0.8" - } - }, - "node_modules/clone-deep": { - "version": "4.0.1", - "resolved": "https://npm.sinequa.com/clone-deep/-/clone-deep-4.0.1.tgz", - "integrity": "sha512-neHB9xuzh/wk0dIHweyAXv2aPGZIVk3pLMe+/RNzINf17fe0OG96QroktYAUm7SM1PBnzTabaLboqqxDyMU+SQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "is-plain-object": "^2.0.4", - "kind-of": "^6.0.2", - "shallow-clone": "^3.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/clone-deep/node_modules/is-plain-object": { - "version": "2.0.4", - "resolved": "https://npm.sinequa.com/is-plain-object/-/is-plain-object-2.0.4.tgz", - "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", - "dev": true, - "license": "MIT", - "dependencies": { - "isobject": "^3.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/clsx": { - "version": "2.1.1", - "resolved": "https://npm.sinequa.com/clsx/-/clsx-2.1.1.tgz", - "integrity": "sha512-eYm0QWBtUrBWZWG0d386OGAw16Z995PiOVo2B7bjWSbHedGl5e0ZWaq65kOGgUSNesEIDkB9ISbTg/JK9dhCZA==", - "license": "MIT", - "engines": { - "node": ">=6" - } - }, - "node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://npm.sinequa.com/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "license": "MIT", - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://npm.sinequa.com/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "license": "MIT" - }, - "node_modules/colorette": { - "version": "2.0.20", - "resolved": "https://npm.sinequa.com/colorette/-/colorette-2.0.20.tgz", - "integrity": "sha512-IfEDxwoWIjkeXL1eXcDiow4UbKjhLdq6/EuSVR9GMN7KVH3r9gQ83e73hsz1Nd1T3ijd5xv1wcWRYO+D6kCI2w==", - "dev": true, - "license": "MIT" - }, - "node_modules/commander": { - "version": "13.1.0", - "resolved": "https://npm.sinequa.com/commander/-/commander-13.1.0.tgz", - "integrity": "sha512-/rFeCpNJQbhSZjGVwO9RFV3xPqbnERS8MmIQzCtD/zl6gpJuV/bMLuN92oG3F7d8oDEHHRrujSXNUr8fpjntKw==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=18" - } - }, - "node_modules/common-path-prefix": { - "version": "3.0.0", - "resolved": "https://npm.sinequa.com/common-path-prefix/-/common-path-prefix-3.0.0.tgz", - "integrity": "sha512-QE33hToZseCH3jS0qN96O/bSh3kaw/h+Tq7ngyY9eWDUnTlTNUyqfqvCXioLe5Na5jFsL78ra/wuBU4iuEgd4w==", - "dev": true, - "license": "ISC" - }, - "node_modules/compressible": { - "version": "2.0.18", - "resolved": "https://npm.sinequa.com/compressible/-/compressible-2.0.18.tgz", - "integrity": "sha512-AF3r7P5dWxL8MxyITRMlORQNaOA2IkAFaTr4k7BUumjPtRpGDTZpl0Pb1XCO6JeDCBdp126Cgs9sMxqSjgYyRg==", - "dev": true, - "license": "MIT", - "dependencies": { - "mime-db": ">= 1.43.0 < 2" - }, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/compression": { - "version": "1.7.5", - "resolved": "https://npm.sinequa.com/compression/-/compression-1.7.5.tgz", - "integrity": "sha512-bQJ0YRck5ak3LgtnpKkiabX5pNF7tMUh1BSy2ZBOTh0Dim0BUu6aPPwByIns6/A5Prh8PufSPerMDUklpzes2Q==", - "dev": true, - "license": "MIT", - "dependencies": { - "bytes": "3.1.2", - "compressible": "~2.0.18", - "debug": "2.6.9", - "negotiator": "~0.6.4", - "on-headers": "~1.0.2", - "safe-buffer": "5.2.1", - "vary": "~1.1.2" - }, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/compression/node_modules/debug": { - "version": "2.6.9", - "resolved": "https://npm.sinequa.com/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dev": true, - "license": "MIT", - "dependencies": { - "ms": "2.0.0" - } - }, - "node_modules/compression/node_modules/ms": { - "version": "2.0.0", - "resolved": "https://npm.sinequa.com/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", - "dev": true, - "license": "MIT" - }, - "node_modules/connect-history-api-fallback": { - "version": "2.0.0", - "resolved": "https://npm.sinequa.com/connect-history-api-fallback/-/connect-history-api-fallback-2.0.0.tgz", - "integrity": "sha512-U73+6lQFmfiNPrYbXqr6kZ1i1wiRqXnp2nhMsINseWXO8lDau0LGEffJ8kQi4EjLZympVgRdvqjAgiZ1tgzDDA==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.8" - } - }, - "node_modules/content-disposition": { - "version": "0.5.4", - "resolved": "https://npm.sinequa.com/content-disposition/-/content-disposition-0.5.4.tgz", - "integrity": "sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "safe-buffer": "5.2.1" - }, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/content-type": { - "version": "1.0.5", - "resolved": "https://npm.sinequa.com/content-type/-/content-type-1.0.5.tgz", - "integrity": "sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/convert-source-map": { - "version": "1.9.0", - "resolved": "https://npm.sinequa.com/convert-source-map/-/convert-source-map-1.9.0.tgz", - "integrity": "sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A==", - "dev": true, - "license": "MIT" - }, - "node_modules/cookie": { - "version": "0.7.1", - "resolved": "https://npm.sinequa.com/cookie/-/cookie-0.7.1.tgz", - "integrity": "sha512-6DnInpx7SJ2AK3+CTUE/ZM0vWTUboZCegxhC2xiIydHR9jNuTAASBrfEpHhiGOZw/nX51bHt6YQl8jsGo4y/0w==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/cookie-signature": { - "version": "1.0.6", - "resolved": "https://npm.sinequa.com/cookie-signature/-/cookie-signature-1.0.6.tgz", - "integrity": "sha1-4wOogrNCzD7oylE6eZmXNNqzriw=", - "dev": true, - "license": "MIT" - }, - "node_modules/copy-anything": { - "version": "2.0.6", - "resolved": "https://npm.sinequa.com/copy-anything/-/copy-anything-2.0.6.tgz", - "integrity": "sha512-1j20GZTsvKNkc4BY3NpMOM8tt///wY3FpIzozTOFO2ffuZcV61nojHXVKIy3WM+7ADCy5FVhdZYHYDdgTU0yJw==", - "dev": true, - "license": "MIT", - "dependencies": { - "is-what": "^3.14.1" - }, - "funding": { - "url": "https://github.com/sponsors/mesqueeb" - } - }, - "node_modules/copy-webpack-plugin": { - "version": "12.0.2", - "resolved": "https://npm.sinequa.com/copy-webpack-plugin/-/copy-webpack-plugin-12.0.2.tgz", - "integrity": "sha512-SNwdBeHyII+rWvee/bTnAYyO8vfVdcSTud4EIb6jcZ8inLeWucJE0DnxXQBjlQ5zlteuuvooGQy3LIyGxhvlOA==", - "dev": true, - "license": "MIT", - "dependencies": { - "fast-glob": "^3.3.2", - "glob-parent": "^6.0.1", - "globby": "^14.0.0", - "normalize-path": "^3.0.0", - "schema-utils": "^4.2.0", - "serialize-javascript": "^6.0.2" - }, - "engines": { - "node": ">= 18.12.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" - }, - "peerDependencies": { - "webpack": "^5.1.0" - } - }, - "node_modules/core-js-compat": { - "version": "3.40.0", - "resolved": "https://npm.sinequa.com/core-js-compat/-/core-js-compat-3.40.0.tgz", - "integrity": "sha512-0XEDpr5y5mijvw8Lbc6E5AkjrHfp7eEoPlu36SWeAbcL8fn1G1ANe8DBlo2XoNN89oVpxWwOjYIPVzR4ZvsKCQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "browserslist": "^4.24.3" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/core-js" - } - }, - "node_modules/core-util-is": { - "version": "1.0.3", - "resolved": "https://npm.sinequa.com/core-util-is/-/core-util-is-1.0.3.tgz", - "integrity": "sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==", - "dev": true, - "license": "MIT" - }, - "node_modules/cosmiconfig": { - "version": "8.3.6", - "resolved": "https://npm.sinequa.com/cosmiconfig/-/cosmiconfig-8.3.6.tgz", - "integrity": "sha512-kcZ6+W5QzcJ3P1Mt+83OUv/oHFqZHIx8DuxG6eZ5RGMERoLqp4BuGjhHLYGK+Kf5XVkQvqBSmAy/nGWN3qDgEA==", - "license": "MIT", - "dependencies": { - "import-fresh": "^3.3.0", - "js-yaml": "^4.1.0", - "parse-json": "^5.2.0", - "path-type": "^4.0.0" - }, - "engines": { - "node": ">=14" - }, - "funding": { - "url": "https://github.com/sponsors/d-fischer" - }, - "peerDependencies": { - "typescript": ">=4.9.5" - }, - "peerDependenciesMeta": { - "typescript": { - "optional": true - } - } - }, - "node_modules/critters": { - "version": "0.0.24", - "resolved": "https://npm.sinequa.com/critters/-/critters-0.0.24.tgz", - "integrity": "sha512-Oyqew0FGM0wYUSNqR0L6AteO5MpMoUU0rhKRieXeiKs+PmRTxiJMyaunYB2KF6fQ3dzChXKCpbFOEJx3OQ1v/Q==", - "dev": true, - "license": "Apache-2.0", - "dependencies": { - "chalk": "^4.1.0", - "css-select": "^5.1.0", - "dom-serializer": "^2.0.0", - "domhandler": "^5.0.2", - "htmlparser2": "^8.0.2", - "postcss": "^8.4.23", - "postcss-media-query-parser": "^0.2.3" - } - }, - "node_modules/cross-spawn": { - "version": "7.0.6", - "resolved": "https://npm.sinequa.com/cross-spawn/-/cross-spawn-7.0.6.tgz", - "integrity": "sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==", - "license": "MIT", - "dependencies": { - "path-key": "^3.1.0", - "shebang-command": "^2.0.0", - "which": "^2.0.1" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/css-loader": { - "version": "7.1.2", - "resolved": "https://npm.sinequa.com/css-loader/-/css-loader-7.1.2.tgz", - "integrity": "sha512-6WvYYn7l/XEGN8Xu2vWFt9nVzrCn39vKyTEFf/ExEyoksJjjSZV/0/35XPlMbpnr6VGhZIUg5yJrL8tGfes/FA==", - "dev": true, - "license": "MIT", - "dependencies": { - "icss-utils": "^5.1.0", - "postcss": "^8.4.33", - "postcss-modules-extract-imports": "^3.1.0", - "postcss-modules-local-by-default": "^4.0.5", - "postcss-modules-scope": "^3.2.0", - "postcss-modules-values": "^4.0.0", - "postcss-value-parser": "^4.2.0", - "semver": "^7.5.4" - }, - "engines": { - "node": ">= 18.12.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" - }, - "peerDependencies": { - "@rspack/core": "0.x || 1.x", - "webpack": "^5.27.0" - }, - "peerDependenciesMeta": { - "@rspack/core": { - "optional": true - }, - "webpack": { - "optional": true - } - } - }, - "node_modules/css-select": { - "version": "5.1.0", - "resolved": "https://npm.sinequa.com/css-select/-/css-select-5.1.0.tgz", - "integrity": "sha512-nwoRF1rvRRnnCqqY7updORDsuqKzqYJ28+oSMaJMMgOauh3fvwHqMS7EZpIPqK8GL+g9mKxF1vP/ZjSeNjEVHg==", - "dev": true, - "license": "BSD-2-Clause", - "dependencies": { - "boolbase": "^1.0.0", - "css-what": "^6.1.0", - "domhandler": "^5.0.2", - "domutils": "^3.0.1", - "nth-check": "^2.0.1" - }, - "funding": { - "url": "https://github.com/sponsors/fb55" - } - }, - "node_modules/css-what": { - "version": "6.1.0", - "resolved": "https://npm.sinequa.com/css-what/-/css-what-6.1.0.tgz", - "integrity": "sha512-HTUrgRJ7r4dsZKU6GjmpfRK1O76h97Z8MfS1G0FozR+oF2kG6Vfe8JE6zwrkbxigziPHinCJ+gCPjA9EaBDtRw==", - "dev": true, - "license": "BSD-2-Clause", - "engines": { - "node": ">= 6" - }, - "funding": { - "url": "https://github.com/sponsors/fb55" - } - }, - "node_modules/cssesc": { - "version": "3.0.0", - "resolved": "https://npm.sinequa.com/cssesc/-/cssesc-3.0.0.tgz", - "integrity": "sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==", - "dev": true, - "license": "MIT", - "bin": { - "cssesc": "bin/cssesc" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/debug": { - "version": "4.4.0", - "resolved": "https://npm.sinequa.com/debug/-/debug-4.4.0.tgz", - "integrity": "sha512-6WTZ/IxCY/T6BALoZHaE4ctp9xm+Z5kY/pzYaCHRFeyVhojxlrm+46y68HA6hr0TcwEssoxNiDEUJQjfPZ/RYA==", - "dev": true, - "license": "MIT", - "dependencies": { - "ms": "^2.1.3" - }, - "engines": { - "node": ">=6.0" - }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } - } - }, - "node_modules/default-browser": { - "version": "5.2.1", - "resolved": "https://npm.sinequa.com/default-browser/-/default-browser-5.2.1.tgz", - "integrity": "sha512-WY/3TUME0x3KPYdRRxEJJvXRHV4PyPoUsxtZa78lwItwRQRHhd2U9xOscaT/YTf8uCXIAjeJOFBVEh/7FtD8Xg==", - "dev": true, - "license": "MIT", - "dependencies": { - "bundle-name": "^4.1.0", - "default-browser-id": "^5.0.0" - }, - "engines": { - "node": ">=18" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/default-browser-id": { - "version": "5.0.0", - "resolved": "https://npm.sinequa.com/default-browser-id/-/default-browser-id-5.0.0.tgz", - "integrity": "sha512-A6p/pu/6fyBcA1TRz/GqWYPViplrftcW2gZC9q79ngNCKAeR/X3gcEdXQHl4KNXV+3wgIJ1CPkJQ3IHM6lcsyA==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=18" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/default-gateway": { - "version": "6.0.3", - "resolved": "https://npm.sinequa.com/default-gateway/-/default-gateway-6.0.3.tgz", - "integrity": "sha512-fwSOJsbbNzZ/CUFpqFBqYfYNLj1NbMPm8MMCIzHjC83iSJRBEGmDUxU+WP661BaBQImeC2yHwXtz+P/O9o+XEg==", - "dev": true, - "license": "BSD-2-Clause", - "dependencies": { - "execa": "^5.0.0" - }, - "engines": { - "node": ">= 10" - } - }, - "node_modules/default-gateway/node_modules/execa": { - "version": "5.1.1", - "resolved": "https://npm.sinequa.com/execa/-/execa-5.1.1.tgz", - "integrity": "sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==", - "dev": true, - "license": "MIT", - "dependencies": { - "cross-spawn": "^7.0.3", - "get-stream": "^6.0.0", - "human-signals": "^2.1.0", - "is-stream": "^2.0.0", - "merge-stream": "^2.0.0", - "npm-run-path": "^4.0.1", - "onetime": "^5.1.2", - "signal-exit": "^3.0.3", - "strip-final-newline": "^2.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sindresorhus/execa?sponsor=1" - } - }, - "node_modules/default-gateway/node_modules/get-stream": { - "version": "6.0.1", - "resolved": "https://npm.sinequa.com/get-stream/-/get-stream-6.0.1.tgz", - "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/default-gateway/node_modules/human-signals": { - "version": "2.1.0", - "resolved": "https://npm.sinequa.com/human-signals/-/human-signals-2.1.0.tgz", - "integrity": "sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==", - "dev": true, - "license": "Apache-2.0", - "engines": { - "node": ">=10.17.0" - } - }, - "node_modules/default-gateway/node_modules/is-stream": { - "version": "2.0.1", - "resolved": "https://npm.sinequa.com/is-stream/-/is-stream-2.0.1.tgz", - "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/default-gateway/node_modules/mimic-fn": { - "version": "2.1.0", - "resolved": "https://npm.sinequa.com/mimic-fn/-/mimic-fn-2.1.0.tgz", - "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=6" - } - }, - "node_modules/default-gateway/node_modules/npm-run-path": { - "version": "4.0.1", - "resolved": "https://npm.sinequa.com/npm-run-path/-/npm-run-path-4.0.1.tgz", - "integrity": "sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==", - "dev": true, - "license": "MIT", - "dependencies": { - "path-key": "^3.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/default-gateway/node_modules/onetime": { - "version": "5.1.2", - "resolved": "https://npm.sinequa.com/onetime/-/onetime-5.1.2.tgz", - "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==", - "dev": true, - "license": "MIT", - "dependencies": { - "mimic-fn": "^2.1.0" - }, - "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/default-gateway/node_modules/signal-exit": { - "version": "3.0.7", - "resolved": "https://npm.sinequa.com/signal-exit/-/signal-exit-3.0.7.tgz", - "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==", - "dev": true, - "license": "ISC" - }, - "node_modules/default-gateway/node_modules/strip-final-newline": { - "version": "2.0.0", - "resolved": "https://npm.sinequa.com/strip-final-newline/-/strip-final-newline-2.0.0.tgz", - "integrity": "sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=6" - } - }, - "node_modules/defaults": { - "version": "1.0.4", - "resolved": "https://npm.sinequa.com/defaults/-/defaults-1.0.4.tgz", - "integrity": "sha512-eFuaLoy/Rxalv2kr+lqMlUnrDWV+3j4pljOIJgLIhI058IQfWJ7vXhyEIHu+HtC738klGALYxOKDO0bQP3tg8A==", - "license": "MIT", - "dependencies": { - "clone": "^1.0.2" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/define-lazy-prop": { - "version": "3.0.0", - "resolved": "https://npm.sinequa.com/define-lazy-prop/-/define-lazy-prop-3.0.0.tgz", - "integrity": "sha512-N+MeXYoqr3pOgn8xfyRPREN7gHakLYjhsHhWGT3fWAiL4IkAt0iDw14QiiEm2bE30c5XX5q0FtAA3CK5f9/BUg==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/depd": { - "version": "2.0.0", - "resolved": "https://npm.sinequa.com/depd/-/depd-2.0.0.tgz", - "integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/destroy": { - "version": "1.2.0", - "resolved": "https://npm.sinequa.com/destroy/-/destroy-1.2.0.tgz", - "integrity": "sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 0.8", - "npm": "1.2.8000 || >= 1.4.16" - } - }, - "node_modules/detect-libc": { - "version": "2.0.3", - "resolved": "https://npm.sinequa.com/detect-libc/-/detect-libc-2.0.3.tgz", - "integrity": "sha512-bwy0MGW55bG41VqxxypOsdSdGqLwXPI/focwgTYCFMbdUiBAxLg9CFzG08sz2aqzknwiX7Hkl0bQENjg8iLByw==", - "dev": true, - "license": "Apache-2.0", - "engines": { - "node": ">=8" - } - }, - "node_modules/detect-node": { - "version": "2.1.0", - "resolved": "https://npm.sinequa.com/detect-node/-/detect-node-2.1.0.tgz", - "integrity": "sha512-T0NIuQpnTvFDATNuHN5roPwSBG83rFsuO+MXXH9/3N1eFbn4wcPjttvjMLEPWJ0RGUYgQE7cGgS3tNxbqCGM7g==", - "dev": true, - "license": "MIT" - }, - "node_modules/didyoumean": { - "version": "1.2.2", - "resolved": "https://npm.sinequa.com/didyoumean/-/didyoumean-1.2.2.tgz", - "integrity": "sha512-gxtyfqMg7GKyhQmb056K7M3xszy/myH8w+B4RT+QXBQsvAOdc3XymqDDPHx1BgPgsdAA5SIifona89YtRATDzw==", - "dev": true, - "license": "Apache-2.0" - }, - "node_modules/dlv": { - "version": "1.1.3", - "resolved": "https://npm.sinequa.com/dlv/-/dlv-1.1.3.tgz", - "integrity": "sha512-+HlytyjlPKnIG8XuRG8WvmBP8xs8P71y+SKKS6ZXWoEgLuePxtDoUEiH7WkdePWrQ5JBpE6aoVqfZfJUQkjXwA==", - "dev": true, - "license": "MIT" - }, - "node_modules/dns-packet": { - "version": "5.6.1", - "resolved": "https://npm.sinequa.com/dns-packet/-/dns-packet-5.6.1.tgz", - "integrity": "sha512-l4gcSouhcgIKRvyy99RNVOgxXiicE+2jZoNmaNmZ6JXiGajBOJAesk1OBlJuM5k2c+eudGdLxDqXuPCKIj6kpw==", - "dev": true, - "license": "MIT", - "dependencies": { - "@leichtgewicht/ip-codec": "^2.0.1" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/dom-serializer": { - "version": "2.0.0", - "resolved": "https://npm.sinequa.com/dom-serializer/-/dom-serializer-2.0.0.tgz", - "integrity": "sha512-wIkAryiqt/nV5EQKqQpo3SToSOV9J0DnbJqwK7Wv/Trc92zIAYZ4FlMu+JPFW1DfGFt81ZTCGgDEabffXeLyJg==", - "dev": true, - "license": "MIT", - "dependencies": { - "domelementtype": "^2.3.0", - "domhandler": "^5.0.2", - "entities": "^4.2.0" - }, - "funding": { - "url": "https://github.com/cheeriojs/dom-serializer?sponsor=1" - } - }, - "node_modules/domelementtype": { - "version": "2.3.0", - "resolved": "https://npm.sinequa.com/domelementtype/-/domelementtype-2.3.0.tgz", - "integrity": "sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/fb55" - } - ], - "license": "BSD-2-Clause" - }, - "node_modules/domhandler": { - "version": "5.0.3", - "resolved": "https://npm.sinequa.com/domhandler/-/domhandler-5.0.3.tgz", - "integrity": "sha512-cgwlv/1iFQiFnU96XXgROh8xTeetsnJiDsTc7TYCLFd9+/WNkIqPTxiM/8pSd8VIrhXGTf1Ny1q1hquVqDJB5w==", - "dev": true, - "license": "BSD-2-Clause", - "dependencies": { - "domelementtype": "^2.3.0" - }, - "engines": { - "node": ">= 4" - }, - "funding": { - "url": "https://github.com/fb55/domhandler?sponsor=1" - } - }, - "node_modules/domutils": { - "version": "3.2.2", - "resolved": "https://npm.sinequa.com/domutils/-/domutils-3.2.2.tgz", - "integrity": "sha512-6kZKyUajlDuqlHKVX1w7gyslj9MPIXzIFiz/rGu35uC1wMi+kMhQwGhl4lt9unC9Vb9INnY9Z3/ZA3+FhASLaw==", - "dev": true, - "license": "BSD-2-Clause", - "dependencies": { - "dom-serializer": "^2.0.0", - "domelementtype": "^2.3.0", - "domhandler": "^5.0.3" - }, - "funding": { - "url": "https://github.com/fb55/domutils?sponsor=1" - } - }, - "node_modules/dunder-proto": { - "version": "1.0.1", - "resolved": "https://npm.sinequa.com/dunder-proto/-/dunder-proto-1.0.1.tgz", - "integrity": "sha512-KIN/nDJBQRcXw0MLVhZE9iQHmG68qAVIBg9CqmUYjmQIhgij9U5MFvrqkUL5FbtyyzZuOeOt0zdeRe4UY7ct+A==", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bind-apply-helpers": "^1.0.1", - "es-errors": "^1.3.0", - "gopd": "^1.2.0" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/eastasianwidth": { - "version": "0.2.0", - "resolved": "https://npm.sinequa.com/eastasianwidth/-/eastasianwidth-0.2.0.tgz", - "integrity": "sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==", - "license": "MIT" - }, - "node_modules/ee-first": { - "version": "1.1.1", - "resolved": "https://npm.sinequa.com/ee-first/-/ee-first-1.1.1.tgz", - "integrity": "sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0=", - "dev": true, - "license": "MIT" - }, - "node_modules/electron-to-chromium": { - "version": "1.5.96", - "resolved": "https://npm.sinequa.com/electron-to-chromium/-/electron-to-chromium-1.5.96.tgz", - "integrity": "sha512-8AJUW6dh75Fm/ny8+kZKJzI1pgoE8bKLZlzDU2W1ENd+DXKJrx7I7l9hb8UWR4ojlnb5OlixMt00QWiYJoVw1w==", - "dev": true, - "license": "ISC" - }, - "node_modules/emoji-regex": { - "version": "9.2.2", - "resolved": "https://npm.sinequa.com/emoji-regex/-/emoji-regex-9.2.2.tgz", - "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==", - "license": "MIT" - }, - "node_modules/emojis-list": { - "version": "3.0.0", - "resolved": "https://npm.sinequa.com/emojis-list/-/emojis-list-3.0.0.tgz", - "integrity": "sha512-/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 4" - } - }, - "node_modules/encodeurl": { - "version": "2.0.0", - "resolved": "https://npm.sinequa.com/encodeurl/-/encodeurl-2.0.0.tgz", - "integrity": "sha512-Q0n9HRi4m6JuGIV1eFlmvJB7ZEVxu93IrMyiMsGC0lrMJMWzRgx6WGquyfQgZVb31vhGgXnfmPNNXmxnOkRBrg==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/encoding": { - "version": "0.1.13", - "resolved": "https://npm.sinequa.com/encoding/-/encoding-0.1.13.tgz", - "integrity": "sha512-ETBauow1T35Y/WZMkio9jiM0Z5xjHHmJ4XmjZOq1l/dXz3lr2sRn87nJy20RupqSh1F2m3HHPSp8ShIPQJrJ3A==", - "dev": true, - "license": "MIT", - "optional": true, - "dependencies": { - "iconv-lite": "^0.6.2" - } - }, - "node_modules/encoding/node_modules/iconv-lite": { - "version": "0.6.3", - "resolved": "https://npm.sinequa.com/iconv-lite/-/iconv-lite-0.6.3.tgz", - "integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==", - "dev": true, - "license": "MIT", - "optional": true, - "dependencies": { - "safer-buffer": ">= 2.1.2 < 3.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/enhanced-resolve": { - "version": "5.18.1", - "resolved": "https://npm.sinequa.com/enhanced-resolve/-/enhanced-resolve-5.18.1.tgz", - "integrity": "sha512-ZSW3ma5GkcQBIpwZTSRAI8N71Uuwgs93IezB7mf7R60tC8ZbJideoDNKjHn2O9KIlx6rkGTTEk1xUCK2E1Y2Yg==", - "dev": true, - "license": "MIT", - "dependencies": { - "graceful-fs": "^4.2.4", - "tapable": "^2.2.0" - }, - "engines": { - "node": ">=10.13.0" - } - }, - "node_modules/entities": { - "version": "4.5.0", - "resolved": "https://npm.sinequa.com/entities/-/entities-4.5.0.tgz", - "integrity": "sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==", - "devOptional": true, - "license": "BSD-2-Clause", - "engines": { - "node": ">=0.12" - }, - "funding": { - "url": "https://github.com/fb55/entities?sponsor=1" - } - }, - "node_modules/env-paths": { - "version": "2.2.1", - "resolved": "https://npm.sinequa.com/env-paths/-/env-paths-2.2.1.tgz", - "integrity": "sha512-+h1lkLKhZMTYjog1VEpJNG7NZJWcuc2DDk/qsqSTRRCOXiLjeQ1d1/udrUGhqMxUgAlwKNZ0cf2uqan5GLuS2A==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=6" - } - }, - "node_modules/environment": { - "version": "1.1.0", - "resolved": "https://npm.sinequa.com/environment/-/environment-1.1.0.tgz", - "integrity": "sha512-xUtoPkMggbz0MPyPiIWr1Kp4aeWJjDZ6SMvURhimjdZgsRuDplF5/s9hcgGhyXMhs+6vpnuoiZ2kFiu3FMnS8Q==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=18" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/err-code": { - "version": "2.0.3", - "resolved": "https://npm.sinequa.com/err-code/-/err-code-2.0.3.tgz", - "integrity": "sha512-2bmlRpNKBxT/CRmPOlyISQpNj+qSeYvcym/uT0Jx2bMOlKLtSy1ZmLuVxSEKKyor/N5yhvp/ZiG1oE3DEYMSFA==", - "dev": true, - "license": "MIT" - }, - "node_modules/errno": { - "version": "0.1.8", - "resolved": "https://npm.sinequa.com/errno/-/errno-0.1.8.tgz", - "integrity": "sha512-dJ6oBr5SQ1VSd9qkk7ByRgb/1SH4JZjCHSW/mr63/QcXO9zLVxvJ6Oy13nio03rxpSnVDDjFor75SjVeZWPW/A==", - "dev": true, - "license": "MIT", - "optional": true, - "dependencies": { - "prr": "~1.0.1" - }, - "bin": { - "errno": "cli.js" - } - }, - "node_modules/error-ex": { - "version": "1.3.2", - "resolved": "https://npm.sinequa.com/error-ex/-/error-ex-1.3.2.tgz", - "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==", - "license": "MIT", - "dependencies": { - "is-arrayish": "^0.2.1" - } - }, - "node_modules/es-define-property": { - "version": "1.0.1", - "resolved": "https://npm.sinequa.com/es-define-property/-/es-define-property-1.0.1.tgz", - "integrity": "sha512-e3nRfgfUZ4rNGL232gUgX06QNyyez04KdjFrF+LTRoOXmrOgFKDg4BCdsjW8EnT69eqdYGmRpJwiPVYNrCaW3g==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/es-errors": { - "version": "1.3.0", - "resolved": "https://npm.sinequa.com/es-errors/-/es-errors-1.3.0.tgz", - "integrity": "sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/es-module-lexer": { - "version": "1.6.0", - "resolved": "https://npm.sinequa.com/es-module-lexer/-/es-module-lexer-1.6.0.tgz", - "integrity": "sha512-qqnD1yMU6tk/jnaMosogGySTZP8YtUgAffA9nMN+E/rjxcfRQ6IEk7IiozUjgxKoFHBGjTLnrHB/YC45r/59EQ==", - "dev": true, - "license": "MIT" - }, - "node_modules/es-object-atoms": { - "version": "1.1.1", - "resolved": "https://npm.sinequa.com/es-object-atoms/-/es-object-atoms-1.1.1.tgz", - "integrity": "sha512-FGgH2h8zKNim9ljj7dankFPcICIK9Cp5bm+c2gQSYePhpaG5+esrLODihIorn+Pe6FGJzWhXQotPv73jTaldXA==", - "dev": true, - "license": "MIT", - "dependencies": { - "es-errors": "^1.3.0" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/esbuild": { - "version": "0.25.0", - "resolved": "https://npm.sinequa.com/esbuild/-/esbuild-0.25.0.tgz", - "integrity": "sha512-BXq5mqc8ltbaN34cDqWuYKyNhX8D/Z0J1xdtdQ8UcIIIyJyz+ZMKUt58tF3SrZ85jcfN/PZYhjR5uDQAYNVbuw==", - "dev": true, - "hasInstallScript": true, - "license": "MIT", - "bin": { - "esbuild": "bin/esbuild" - }, - "engines": { - "node": ">=18" - }, - "optionalDependencies": { - "@esbuild/aix-ppc64": "0.25.0", - "@esbuild/android-arm": "0.25.0", - "@esbuild/android-arm64": "0.25.0", - "@esbuild/android-x64": "0.25.0", - "@esbuild/darwin-arm64": "0.25.0", - "@esbuild/darwin-x64": "0.25.0", - "@esbuild/freebsd-arm64": "0.25.0", - "@esbuild/freebsd-x64": "0.25.0", - "@esbuild/linux-arm": "0.25.0", - "@esbuild/linux-arm64": "0.25.0", - "@esbuild/linux-ia32": "0.25.0", - "@esbuild/linux-loong64": "0.25.0", - "@esbuild/linux-mips64el": "0.25.0", - "@esbuild/linux-ppc64": "0.25.0", - "@esbuild/linux-riscv64": "0.25.0", - "@esbuild/linux-s390x": "0.25.0", - "@esbuild/linux-x64": "0.25.0", - "@esbuild/netbsd-arm64": "0.25.0", - "@esbuild/netbsd-x64": "0.25.0", - "@esbuild/openbsd-arm64": "0.25.0", - "@esbuild/openbsd-x64": "0.25.0", - "@esbuild/sunos-x64": "0.25.0", - "@esbuild/win32-arm64": "0.25.0", - "@esbuild/win32-ia32": "0.25.0", - "@esbuild/win32-x64": "0.25.0" - } - }, - "node_modules/esbuild-wasm": { - "version": "0.23.0", - "resolved": "https://npm.sinequa.com/esbuild-wasm/-/esbuild-wasm-0.23.0.tgz", - "integrity": "sha512-6jP8UmWy6R6TUUV8bMuC3ZyZ6lZKI56x0tkxyCIqWwRRJ/DgeQKneh/Oid5EoGoPFLrGNkz47ZEtWAYuiY/u9g==", - "dev": true, - "license": "MIT", - "bin": { - "esbuild": "bin/esbuild" - }, - "engines": { - "node": ">=18" - } - }, - "node_modules/escalade": { - "version": "3.2.0", - "resolved": "https://npm.sinequa.com/escalade/-/escalade-3.2.0.tgz", - "integrity": "sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==", - "license": "MIT", - "engines": { - "node": ">=6" - } - }, - "node_modules/escape-html": { - "version": "1.0.3", - "resolved": "https://npm.sinequa.com/escape-html/-/escape-html-1.0.3.tgz", - "integrity": "sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg=", - "dev": true, - "license": "MIT" - }, - "node_modules/eslint-scope": { - "version": "5.1.1", - "resolved": "https://npm.sinequa.com/eslint-scope/-/eslint-scope-5.1.1.tgz", - "integrity": "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==", - "dev": true, - "license": "BSD-2-Clause", - "dependencies": { - "esrecurse": "^4.3.0", - "estraverse": "^4.1.1" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/esrecurse": { - "version": "4.3.0", - "resolved": "https://npm.sinequa.com/esrecurse/-/esrecurse-4.3.0.tgz", - "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", - "dev": true, - "license": "BSD-2-Clause", - "dependencies": { - "estraverse": "^5.2.0" - }, - "engines": { - "node": ">=4.0" - } - }, - "node_modules/esrecurse/node_modules/estraverse": { - "version": "5.3.0", - "resolved": "https://npm.sinequa.com/estraverse/-/estraverse-5.3.0.tgz", - "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", - "dev": true, - "license": "BSD-2-Clause", - "engines": { - "node": ">=4.0" - } - }, - "node_modules/estraverse": { - "version": "4.3.0", - "resolved": "https://npm.sinequa.com/estraverse/-/estraverse-4.3.0.tgz", - "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==", - "dev": true, - "license": "BSD-2-Clause", - "engines": { - "node": ">=4.0" - } - }, - "node_modules/esutils": { - "version": "2.0.3", - "resolved": "https://npm.sinequa.com/esutils/-/esutils-2.0.3.tgz", - "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", - "dev": true, - "license": "BSD-2-Clause", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/etag": { - "version": "1.8.1", - "resolved": "https://npm.sinequa.com/etag/-/etag-1.8.1.tgz", - "integrity": "sha1-Qa4u62XvpiJorr/qg6x9eSmbCIc=", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/event-target-shim": { - "version": "5.0.1", - "resolved": "https://npm.sinequa.com/event-target-shim/-/event-target-shim-5.0.1.tgz", - "integrity": "sha512-i/2XbnSz/uxRCU6+NdVJgKWDTM427+MqYbkQzD321DuCQJUqOuJKIA0IM2+W2xtYHdKOmZ4dR6fExsd4SXL+WQ==", - "license": "MIT", - "engines": { - "node": ">=6" - } - }, - "node_modules/eventemitter3": { - "version": "4.0.7", - "resolved": "https://npm.sinequa.com/eventemitter3/-/eventemitter3-4.0.7.tgz", - "integrity": "sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw==", - "dev": true, - "license": "MIT" - }, - "node_modules/events": { - "version": "3.3.0", - "resolved": "https://npm.sinequa.com/events/-/events-3.3.0.tgz", - "integrity": "sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.8.x" - } - }, - "node_modules/eventsource": { - "version": "2.0.2", - "resolved": "https://npm.sinequa.com/eventsource/-/eventsource-2.0.2.tgz", - "integrity": "sha512-IzUmBGPR3+oUG9dUeXynyNmf91/3zUSJg1lCktzKw47OXuhco54U3r9B7O4XX+Rb1Itm9OZ2b0RkTs10bICOxA==", - "license": "MIT", - "engines": { - "node": ">=12.0.0" - } - }, - "node_modules/execa": { - "version": "8.0.1", - "resolved": "https://npm.sinequa.com/execa/-/execa-8.0.1.tgz", - "integrity": "sha512-VyhnebXciFV2DESc+p6B+y0LjSm0krU4OgJN44qFAhBY0TJ+1V61tYD2+wHusZ6F9n5K+vl8k0sTy7PEfV4qpg==", - "dev": true, - "license": "MIT", - "dependencies": { - "cross-spawn": "^7.0.3", - "get-stream": "^8.0.1", - "human-signals": "^5.0.0", - "is-stream": "^3.0.0", - "merge-stream": "^2.0.0", - "npm-run-path": "^5.1.0", - "onetime": "^6.0.0", - "signal-exit": "^4.1.0", - "strip-final-newline": "^3.0.0" - }, - "engines": { - "node": ">=16.17" - }, - "funding": { - "url": "https://github.com/sindresorhus/execa?sponsor=1" - } - }, - "node_modules/exponential-backoff": { - "version": "3.1.2", - "resolved": "https://npm.sinequa.com/exponential-backoff/-/exponential-backoff-3.1.2.tgz", - "integrity": "sha512-8QxYTVXUkuy7fIIoitQkPwGonB8F3Zj8eEO8Sqg9Zv/bkI7RJAzowee4gr81Hak/dUTpA2Z7VfQgoijjPNlUZA==", - "dev": true, - "license": "Apache-2.0" - }, - "node_modules/express": { - "version": "4.21.2", - "resolved": "https://npm.sinequa.com/express/-/express-4.21.2.tgz", - "integrity": "sha512-28HqgMZAmih1Czt9ny7qr6ek2qddF4FclbMzwhCREB6OFfH+rXAnuNCwo1/wFvrtbgsQDb4kSbX9de9lFbrXnA==", - "dev": true, - "license": "MIT", - "dependencies": { - "accepts": "~1.3.8", - "array-flatten": "1.1.1", - "body-parser": "1.20.3", - "content-disposition": "0.5.4", - "content-type": "~1.0.4", - "cookie": "0.7.1", - "cookie-signature": "1.0.6", - "debug": "2.6.9", - "depd": "2.0.0", - "encodeurl": "~2.0.0", - "escape-html": "~1.0.3", - "etag": "~1.8.1", - "finalhandler": "1.3.1", - "fresh": "0.5.2", - "http-errors": "2.0.0", - "merge-descriptors": "1.0.3", - "methods": "~1.1.2", - "on-finished": "2.4.1", - "parseurl": "~1.3.3", - "path-to-regexp": "0.1.12", - "proxy-addr": "~2.0.7", - "qs": "6.13.0", - "range-parser": "~1.2.1", - "safe-buffer": "5.2.1", - "send": "0.19.0", - "serve-static": "1.16.2", - "setprototypeof": "1.2.0", - "statuses": "2.0.1", - "type-is": "~1.6.18", - "utils-merge": "1.0.1", - "vary": "~1.1.2" - }, - "engines": { - "node": ">= 0.10.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/express" - } - }, - "node_modules/express/node_modules/debug": { - "version": "2.6.9", - "resolved": "https://npm.sinequa.com/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dev": true, - "license": "MIT", - "dependencies": { - "ms": "2.0.0" - } - }, - "node_modules/express/node_modules/ms": { - "version": "2.0.0", - "resolved": "https://npm.sinequa.com/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", - "dev": true, - "license": "MIT" - }, - "node_modules/external-editor": { - "version": "3.1.0", - "resolved": "https://npm.sinequa.com/external-editor/-/external-editor-3.1.0.tgz", - "integrity": "sha512-hMQ4CX1p1izmuLYyZqLMO/qGNw10wSv9QDCPfzXfyFrOaCSSoRfqE1Kf1s5an66J5JZC62NewG+mK49jOCtQew==", - "dev": true, - "license": "MIT", - "dependencies": { - "chardet": "^0.7.0", - "iconv-lite": "^0.4.24", - "tmp": "^0.0.33" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/fast-deep-equal": { - "version": "3.1.3", - "resolved": "https://npm.sinequa.com/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", - "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", - "license": "MIT" - }, - "node_modules/fast-glob": { - "version": "3.3.2", - "resolved": "https://npm.sinequa.com/fast-glob/-/fast-glob-3.3.2.tgz", - "integrity": "sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow==", - "dev": true, - "license": "MIT", - "dependencies": { - "@nodelib/fs.stat": "^2.0.2", - "@nodelib/fs.walk": "^1.2.3", - "glob-parent": "^5.1.2", - "merge2": "^1.3.0", - "micromatch": "^4.0.4" - }, - "engines": { - "node": ">=8.6.0" - } - }, - "node_modules/fast-glob/node_modules/glob-parent": { - "version": "5.1.2", - "resolved": "https://npm.sinequa.com/glob-parent/-/glob-parent-5.1.2.tgz", - "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", - "dev": true, - "license": "ISC", - "dependencies": { - "is-glob": "^4.0.1" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/fast-json-stable-stringify": { - "version": "2.1.0", - "resolved": "https://npm.sinequa.com/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", - "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==", - "dev": true, - "license": "MIT" - }, - "node_modules/fast-uri": { - "version": "3.0.6", - "resolved": "https://npm.sinequa.com/fast-uri/-/fast-uri-3.0.6.tgz", - "integrity": "sha512-Atfo14OibSv5wAp4VWNsFYE1AchQRTv9cBGWET4pZWHzYshFSS9NQI6I57rdKn9croWVMbYFbLhJ+yJvmZIIHw==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/fastify" - }, - { - "type": "opencollective", - "url": "https://opencollective.com/fastify" - } - ], - "license": "BSD-3-Clause" - }, - "node_modules/fastq": { - "version": "1.19.0", - "resolved": "https://npm.sinequa.com/fastq/-/fastq-1.19.0.tgz", - "integrity": "sha512-7SFSRCNjBQIZH/xZR3iy5iQYR8aGBE0h3VG6/cwlbrpdciNYBMotQav8c1XI3HjHH+NikUpP53nPdlZSdWmFzA==", - "dev": true, - "license": "ISC", - "dependencies": { - "reusify": "^1.0.4" - } - }, - "node_modules/faye-websocket": { - "version": "0.11.4", - "resolved": "https://npm.sinequa.com/faye-websocket/-/faye-websocket-0.11.4.tgz", - "integrity": "sha512-CzbClwlXAuiRQAlUyfqPgvPoNKTckTPGfwZV4ZdAhVcP2lh9KUxJg2b5GkE7XbjKQ3YJnQ9z6D9ntLAlB+tP8g==", - "dev": true, - "license": "Apache-2.0", - "dependencies": { - "websocket-driver": ">=0.5.1" - }, - "engines": { - "node": ">=0.8.0" - } - }, - "node_modules/fetch-cookie": { - "version": "2.2.0", - "resolved": "https://npm.sinequa.com/fetch-cookie/-/fetch-cookie-2.2.0.tgz", - "integrity": "sha512-h9AgfjURuCgA2+2ISl8GbavpUdR+WGAM2McW/ovn4tVccegp8ZqCKWSBR8uRdM8dDNlx5WdKRWxBYUwteLDCNQ==", - "license": "Unlicense", - "dependencies": { - "set-cookie-parser": "^2.4.8", - "tough-cookie": "^4.0.0" - } - }, - "node_modules/fill-range": { - "version": "7.1.1", - "resolved": "https://npm.sinequa.com/fill-range/-/fill-range-7.1.1.tgz", - "integrity": "sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==", - "dev": true, - "license": "MIT", - "dependencies": { - "to-regex-range": "^5.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/finalhandler": { - "version": "1.3.1", - "resolved": "https://npm.sinequa.com/finalhandler/-/finalhandler-1.3.1.tgz", - "integrity": "sha512-6BN9trH7bp3qvnrRyzsBz+g3lZxTNZTbVO2EV1CS0WIcDbawYVdYvGflME/9QP0h0pYlCDBCTjYa9nZzMDpyxQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "debug": "2.6.9", - "encodeurl": "~2.0.0", - "escape-html": "~1.0.3", - "on-finished": "2.4.1", - "parseurl": "~1.3.3", - "statuses": "2.0.1", - "unpipe": "~1.0.0" - }, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/finalhandler/node_modules/debug": { - "version": "2.6.9", - "resolved": "https://npm.sinequa.com/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dev": true, - "license": "MIT", - "dependencies": { - "ms": "2.0.0" - } - }, - "node_modules/finalhandler/node_modules/ms": { - "version": "2.0.0", - "resolved": "https://npm.sinequa.com/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", - "dev": true, - "license": "MIT" - }, - "node_modules/find-cache-dir": { - "version": "4.0.0", - "resolved": "https://npm.sinequa.com/find-cache-dir/-/find-cache-dir-4.0.0.tgz", - "integrity": "sha512-9ZonPT4ZAK4a+1pUPVPZJapbi7O5qbbJPdYw/NOQWZZbVLdDTYM3A4R9z/DpAM08IDaFGsvPgiGZ82WEwUDWjg==", - "dev": true, - "license": "MIT", - "dependencies": { - "common-path-prefix": "^3.0.0", - "pkg-dir": "^7.0.0" - }, - "engines": { - "node": ">=14.16" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/find-up": { - "version": "6.3.0", - "resolved": "https://npm.sinequa.com/find-up/-/find-up-6.3.0.tgz", - "integrity": "sha512-v2ZsoEuVHYy8ZIlYqwPe/39Cy+cFDzp4dXPaxNvkEuouymu+2Jbz0PxpKarJHYJTmv2HWT3O382qY8l4jMWthw==", - "dev": true, - "license": "MIT", - "dependencies": { - "locate-path": "^7.1.0", - "path-exists": "^5.0.0" - }, - "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/flat": { - "version": "5.0.2", - "resolved": "https://npm.sinequa.com/flat/-/flat-5.0.2.tgz", - "integrity": "sha512-b6suED+5/3rTpUBdG1gupIl8MPFCAMA0QXwmljLhvCUKcUvdE4gWky9zpuGCcXHOsz4J9wPGNWq6OKpmIzz3hQ==", - "dev": true, - "license": "BSD-3-Clause", - "bin": { - "flat": "cli.js" - } - }, - "node_modules/follow-redirects": { - "version": "1.15.9", - "resolved": "https://npm.sinequa.com/follow-redirects/-/follow-redirects-1.15.9.tgz", - "integrity": "sha512-gew4GsXizNgdoRyqmyfMHyAmXsZDk6mHkSxZFCzW9gwlbtOW44CDtYavM+y+72qD/Vq2l550kMF52DT8fOLJqQ==", - "dev": true, - "funding": [ - { - "type": "individual", - "url": "https://github.com/sponsors/RubenVerborgh" - } - ], - "license": "MIT", - "engines": { - "node": ">=4.0" - }, - "peerDependenciesMeta": { - "debug": { - "optional": true - } - } - }, - "node_modules/foreground-child": { - "version": "3.3.0", - "resolved": "https://npm.sinequa.com/foreground-child/-/foreground-child-3.3.0.tgz", - "integrity": "sha512-Ld2g8rrAyMYFXBhEqMz8ZAHBi4J4uS1i/CxGMDnjyFWddMXLVcDp051DZfu+t7+ab7Wv6SMqpWmyFIj5UbfFvg==", - "license": "ISC", - "dependencies": { - "cross-spawn": "^7.0.0", - "signal-exit": "^4.0.1" - }, - "engines": { - "node": ">=14" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/forwarded": { - "version": "0.2.0", - "resolved": "https://npm.sinequa.com/forwarded/-/forwarded-0.2.0.tgz", - "integrity": "sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/fraction.js": { - "version": "4.3.7", - "resolved": "https://npm.sinequa.com/fraction.js/-/fraction.js-4.3.7.tgz", - "integrity": "sha512-ZsDfxO51wGAXREY55a7la9LScWpwv9RxIrYABrlvOFBlH/ShPnrtsXeuUIfXKKOVicNxQ+o8JTbJvjS4M89yew==", - "dev": true, - "license": "MIT", - "engines": { - "node": "*" - }, - "funding": { - "type": "patreon", - "url": "https://github.com/sponsors/rawify" - } - }, - "node_modules/fresh": { - "version": "0.5.2", - "resolved": "https://npm.sinequa.com/fresh/-/fresh-0.5.2.tgz", - "integrity": "sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac=", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/fs-extra": { - "version": "11.3.0", - "resolved": "https://npm.sinequa.com/fs-extra/-/fs-extra-11.3.0.tgz", - "integrity": "sha512-Z4XaCL6dUDHfP/jT25jJKMmtxvuwbkrD1vNSMFlo9lNLY2c5FHYSQgHPRZUjAB26TpDEoW9HCOgplrdbaPV/ew==", - "license": "MIT", - "dependencies": { - "graceful-fs": "^4.2.0", - "jsonfile": "^6.0.1", - "universalify": "^2.0.0" - }, - "engines": { - "node": ">=14.14" - } - }, - "node_modules/fs-minipass": { - "version": "3.0.3", - "resolved": "https://npm.sinequa.com/fs-minipass/-/fs-minipass-3.0.3.tgz", - "integrity": "sha512-XUBA9XClHbnJWSfBzjkm6RvPsyg3sryZt06BEQoXcF7EK/xpGaQYJgQKDJSUH5SGZ76Y7pFx1QBnXz09rU5Fbw==", - "dev": true, - "license": "ISC", - "dependencies": { - "minipass": "^7.0.3" - }, - "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" - } - }, - "node_modules/fs.realpath": { - "version": "1.0.0", - "resolved": "https://npm.sinequa.com/fs.realpath/-/fs.realpath-1.0.0.tgz", - "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=", - "license": "ISC" - }, - "node_modules/fsevents": { - "version": "2.3.3", - "resolved": "https://npm.sinequa.com/fsevents/-/fsevents-2.3.3.tgz", - "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", - "dev": true, - "hasInstallScript": true, - "license": "MIT", - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": "^8.16.0 || ^10.6.0 || >=11.0.0" - } - }, - "node_modules/function-bind": { - "version": "1.1.2", - "resolved": "https://npm.sinequa.com/function-bind/-/function-bind-1.1.2.tgz", - "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==", - "dev": true, - "license": "MIT", - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/gensync": { - "version": "1.0.0-beta.2", - "resolved": "https://npm.sinequa.com/gensync/-/gensync-1.0.0-beta.2.tgz", - "integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/get-caller-file": { - "version": "2.0.5", - "resolved": "https://npm.sinequa.com/get-caller-file/-/get-caller-file-2.0.5.tgz", - "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", - "license": "ISC", - "engines": { - "node": "6.* || 8.* || >= 10.*" - } - }, - "node_modules/get-east-asian-width": { - "version": "1.3.0", - "resolved": "https://npm.sinequa.com/get-east-asian-width/-/get-east-asian-width-1.3.0.tgz", - "integrity": "sha512-vpeMIQKxczTD/0s2CdEWHcb0eeJe6TFjxb+J5xgX7hScxqrGuyjmv4c1D4A/gelKfyox0gJJwIHF+fLjeaM8kQ==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=18" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/get-intrinsic": { - "version": "1.2.7", - "resolved": "https://npm.sinequa.com/get-intrinsic/-/get-intrinsic-1.2.7.tgz", - "integrity": "sha512-VW6Pxhsrk0KAOqs3WEd0klDiF/+V7gQOpAvY1jVU/LHmaD/kQO4523aiJuikX/QAKYiW6x8Jh+RJej1almdtCA==", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bind-apply-helpers": "^1.0.1", - "es-define-property": "^1.0.1", - "es-errors": "^1.3.0", - "es-object-atoms": "^1.0.0", - "function-bind": "^1.1.2", - "get-proto": "^1.0.0", - "gopd": "^1.2.0", - "has-symbols": "^1.1.0", - "hasown": "^2.0.2", - "math-intrinsics": "^1.1.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/get-proto": { - "version": "1.0.1", - "resolved": "https://npm.sinequa.com/get-proto/-/get-proto-1.0.1.tgz", - "integrity": "sha512-sTSfBjoXBp89JvIKIefqw7U2CCebsc74kiY6awiGogKtoSGbgjYE/G/+l9sF3MWFPNc9IcoOC4ODfKHfxFmp0g==", - "dev": true, - "license": "MIT", - "dependencies": { - "dunder-proto": "^1.0.1", - "es-object-atoms": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/get-stream": { - "version": "8.0.1", - "resolved": "https://npm.sinequa.com/get-stream/-/get-stream-8.0.1.tgz", - "integrity": "sha512-VaUJspBffn/LMCJVoMvSAdmscJyS1auj5Zulnn5UoYcY531UWmdwhRWkcGKnGU93m5HSXP9LP2usOryrBtQowA==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=16" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/glob": { - "version": "10.4.5", - "resolved": "https://npm.sinequa.com/glob/-/glob-10.4.5.tgz", - "integrity": "sha512-7Bv8RF0k6xjo7d4A/PxYLbUCfb6c+Vpd2/mB2yRDlew7Jb5hEXiCD9ibfO7wpk8i4sevK6DFny9h7EYbM3/sHg==", - "license": "ISC", - "dependencies": { - "foreground-child": "^3.1.0", - "jackspeak": "^3.1.2", - "minimatch": "^9.0.4", - "minipass": "^7.1.2", - "package-json-from-dist": "^1.0.0", - "path-scurry": "^1.11.1" - }, - "bin": { - "glob": "dist/esm/bin.mjs" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/glob-parent": { - "version": "6.0.2", - "resolved": "https://npm.sinequa.com/glob-parent/-/glob-parent-6.0.2.tgz", - "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==", - "dev": true, - "license": "ISC", - "dependencies": { - "is-glob": "^4.0.3" - }, - "engines": { - "node": ">=10.13.0" - } - }, - "node_modules/glob-to-regexp": { - "version": "0.4.1", - "resolved": "https://npm.sinequa.com/glob-to-regexp/-/glob-to-regexp-0.4.1.tgz", - "integrity": "sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw==", - "dev": true, - "license": "BSD-2-Clause" - }, - "node_modules/globals": { - "version": "11.12.0", - "resolved": "https://npm.sinequa.com/globals/-/globals-11.12.0.tgz", - "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=4" - } - }, - "node_modules/globby": { - "version": "14.0.2", - "resolved": "https://npm.sinequa.com/globby/-/globby-14.0.2.tgz", - "integrity": "sha512-s3Fq41ZVh7vbbe2PN3nrW7yC7U7MFVc5c98/iTl9c2GawNMKx/J648KQRW6WKkuU8GIbbh2IXfIRQjOZnXcTnw==", - "dev": true, - "license": "MIT", - "dependencies": { - "@sindresorhus/merge-streams": "^2.1.0", - "fast-glob": "^3.3.2", - "ignore": "^5.2.4", - "path-type": "^5.0.0", - "slash": "^5.1.0", - "unicorn-magic": "^0.1.0" - }, - "engines": { - "node": ">=18" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/globby/node_modules/ignore": { - "version": "5.3.2", - "resolved": "https://npm.sinequa.com/ignore/-/ignore-5.3.2.tgz", - "integrity": "sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 4" - } - }, - "node_modules/globby/node_modules/path-type": { - "version": "5.0.0", - "resolved": "https://npm.sinequa.com/path-type/-/path-type-5.0.0.tgz", - "integrity": "sha512-5HviZNaZcfqP95rwpv+1HDgUamezbqdSYTyzjTvwtJSnIH+3vnbmWsItli8OFEndS984VT55M3jduxZbX351gg==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/gopd": { - "version": "1.2.0", - "resolved": "https://npm.sinequa.com/gopd/-/gopd-1.2.0.tgz", - "integrity": "sha512-ZUKRh6/kUFoAiTAtTYPZJ3hw9wNxx+BIBOijnlG9PnrJsCcSjs1wyyD6vJpaYtgnzDrKYRSqf3OO6Rfa93xsRg==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/graceful-fs": { - "version": "4.2.11", - "resolved": "https://npm.sinequa.com/graceful-fs/-/graceful-fs-4.2.11.tgz", - "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==", - "license": "ISC" - }, - "node_modules/handle-thing": { - "version": "2.0.1", - "resolved": "https://npm.sinequa.com/handle-thing/-/handle-thing-2.0.1.tgz", - "integrity": "sha512-9Qn4yBxelxoh2Ow62nP+Ka/kMnOXRi8BXnRaUwezLNhqelnN49xKz4F/dPP8OYLxLxq6JDtZb2i9XznUQbNPTg==", - "dev": true, - "license": "MIT" - }, - "node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://npm.sinequa.com/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/has-symbols": { - "version": "1.1.0", - "resolved": "https://npm.sinequa.com/has-symbols/-/has-symbols-1.1.0.tgz", - "integrity": "sha512-1cDNdwJ2Jaohmb3sg4OmKaMBwuC48sYni5HUw2DvsC8LjGTLK9h+eb1X6RyuOHe4hT0ULCW68iomhjUoKUqlPQ==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/hasown": { - "version": "2.0.2", - "resolved": "https://npm.sinequa.com/hasown/-/hasown-2.0.2.tgz", - "integrity": "sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "function-bind": "^1.1.2" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/highlight-words": { - "version": "1.2.2", - "resolved": "https://npm.sinequa.com/highlight-words/-/highlight-words-1.2.2.tgz", - "integrity": "sha512-Mf4xfPXYm8Ay1wTibCrHpNWeR2nUMynMVFkXCi4mbl+TEgmNOe+I4hV7W3OCZcSvzGL6kupaqpfHOemliMTGxQ==", - "license": "MIT", - "engines": { - "node": ">= 16", - "npm": ">= 8" - } - }, - "node_modules/hosted-git-info": { - "version": "7.0.2", - "resolved": "https://npm.sinequa.com/hosted-git-info/-/hosted-git-info-7.0.2.tgz", - "integrity": "sha512-puUZAUKT5m8Zzvs72XWy3HtvVbTWljRE66cP60bxJzAqf2DgICo7lYTY2IHUmLnNpjYvw5bvmoHvPc0QO2a62w==", - "dev": true, - "license": "ISC", - "dependencies": { - "lru-cache": "^10.0.1" - }, - "engines": { - "node": "^16.14.0 || >=18.0.0" - } - }, - "node_modules/hosted-git-info/node_modules/lru-cache": { - "version": "10.4.3", - "resolved": "https://npm.sinequa.com/lru-cache/-/lru-cache-10.4.3.tgz", - "integrity": "sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==", - "dev": true, - "license": "ISC" - }, - "node_modules/hpack.js": { - "version": "2.1.6", - "resolved": "https://npm.sinequa.com/hpack.js/-/hpack.js-2.1.6.tgz", - "integrity": "sha1-h3dMCUnlE/QuhFdbPEVoH63ioLI=", - "dev": true, - "license": "MIT", - "dependencies": { - "inherits": "^2.0.1", - "obuf": "^1.0.0", - "readable-stream": "^2.0.1", - "wbuf": "^1.1.0" - } - }, - "node_modules/hpack.js/node_modules/readable-stream": { - "version": "2.3.8", - "resolved": "https://npm.sinequa.com/readable-stream/-/readable-stream-2.3.8.tgz", - "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", - "dev": true, - "license": "MIT", - "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/hpack.js/node_modules/safe-buffer": { - "version": "5.1.2", - "resolved": "https://npm.sinequa.com/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", - "dev": true, - "license": "MIT" - }, - "node_modules/hpack.js/node_modules/string_decoder": { - "version": "1.1.1", - "resolved": "https://npm.sinequa.com/string_decoder/-/string_decoder-1.1.1.tgz", - "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", - "dev": true, - "license": "MIT", - "dependencies": { - "safe-buffer": "~5.1.0" - } - }, - "node_modules/html-entities": { - "version": "2.5.2", - "resolved": "https://npm.sinequa.com/html-entities/-/html-entities-2.5.2.tgz", - "integrity": "sha512-K//PSRMQk4FZ78Kyau+mZurHn3FH0Vwr+H36eE0rPbeYkRRi9YxceYPhuN60UwWorxyKHhqoAJl2OFKa4BVtaA==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/mdevils" - }, - { - "type": "patreon", - "url": "https://patreon.com/mdevils" - } - ], - "license": "MIT" - }, - "node_modules/htmlparser2": { - "version": "8.0.2", - "resolved": "https://npm.sinequa.com/htmlparser2/-/htmlparser2-8.0.2.tgz", - "integrity": "sha512-GYdjWKDkbRLkZ5geuHs5NY1puJ+PXwP7+fHPRz06Eirsb9ugf6d8kkXav6ADhcODhFFPMIXyxkxSuMf3D6NCFA==", - "dev": true, - "funding": [ - "https://github.com/fb55/htmlparser2?sponsor=1", - { - "type": "github", - "url": "https://github.com/sponsors/fb55" - } - ], - "license": "MIT", - "dependencies": { - "domelementtype": "^2.3.0", - "domhandler": "^5.0.3", - "domutils": "^3.0.1", - "entities": "^4.4.0" - } - }, - "node_modules/http-cache-semantics": { - "version": "4.1.1", - "resolved": "https://npm.sinequa.com/http-cache-semantics/-/http-cache-semantics-4.1.1.tgz", - "integrity": "sha512-er295DKPVsV82j5kw1Gjt+ADA/XYHsajl82cGNQG2eyoPkvgUhX+nDIyelzhIWbbsXP39EHcI6l5tYs2FYqYXQ==", - "dev": true, - "license": "BSD-2-Clause" - }, - "node_modules/http-deceiver": { - "version": "1.2.7", - "resolved": "https://npm.sinequa.com/http-deceiver/-/http-deceiver-1.2.7.tgz", - "integrity": "sha1-+nFolEq5pRnTN8sL7HKE3D5yPYc=", - "dev": true, - "license": "MIT" - }, - "node_modules/http-errors": { - "version": "2.0.0", - "resolved": "https://npm.sinequa.com/http-errors/-/http-errors-2.0.0.tgz", - "integrity": "sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "depd": "2.0.0", - "inherits": "2.0.4", - "setprototypeof": "1.2.0", - "statuses": "2.0.1", - "toidentifier": "1.0.1" - }, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/http-parser-js": { - "version": "0.5.9", - "resolved": "https://npm.sinequa.com/http-parser-js/-/http-parser-js-0.5.9.tgz", - "integrity": "sha512-n1XsPy3rXVxlqxVioEWdC+0+M+SQw0DpJynwtOPo1X+ZlvdzTLtDBIJJlDQTnwZIFJrZSzSGmIOUdP8tu+SgLw==", - "dev": true, - "license": "MIT" - }, - "node_modules/http-proxy": { - "version": "1.18.1", - "resolved": "https://npm.sinequa.com/http-proxy/-/http-proxy-1.18.1.tgz", - "integrity": "sha512-7mz/721AbnJwIVbnaSv1Cz3Am0ZLT/UBwkC92VlxhXv/k/BBQfM2fXElQNC27BVGr0uwUpplYPQM9LnaBMR5NQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "eventemitter3": "^4.0.0", - "follow-redirects": "^1.0.0", - "requires-port": "^1.0.0" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/http-proxy-agent": { - "version": "7.0.2", - "resolved": "https://npm.sinequa.com/http-proxy-agent/-/http-proxy-agent-7.0.2.tgz", - "integrity": "sha512-T1gkAiYYDWYx3V5Bmyu7HcfcvL7mUrTWiM6yOfa3PIphViJ/gFPbvidQ+veqSOHci/PxBcDabeUNCzpOODJZig==", - "dev": true, - "license": "MIT", - "dependencies": { - "agent-base": "^7.1.0", - "debug": "^4.3.4" - }, - "engines": { - "node": ">= 14" - } - }, - "node_modules/http-proxy-middleware": { - "version": "3.0.3", - "resolved": "https://npm.sinequa.com/http-proxy-middleware/-/http-proxy-middleware-3.0.3.tgz", - "integrity": "sha512-usY0HG5nyDUwtqpiZdETNbmKtw3QQ1jwYFZ9wi5iHzX2BcILwQKtYDJPo7XHTsu5Z0B2Hj3W9NNnbd+AjFWjqg==", - "dev": true, - "license": "MIT", - "dependencies": { - "@types/http-proxy": "^1.17.15", - "debug": "^4.3.6", - "http-proxy": "^1.18.1", - "is-glob": "^4.0.3", - "is-plain-object": "^5.0.0", - "micromatch": "^4.0.8" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/https-proxy-agent": { - "version": "7.0.5", - "resolved": "https://npm.sinequa.com/https-proxy-agent/-/https-proxy-agent-7.0.5.tgz", - "integrity": "sha512-1e4Wqeblerz+tMKPIq2EMGiiWW1dIjZOksyHWSUm1rmuvw/how9hBHZ38lAGj5ID4Ik6EdkOw7NmWPy6LAwalw==", - "dev": true, - "license": "MIT", - "dependencies": { - "agent-base": "^7.0.2", - "debug": "4" - }, - "engines": { - "node": ">= 14" - } - }, - "node_modules/human-signals": { - "version": "5.0.0", - "resolved": "https://npm.sinequa.com/human-signals/-/human-signals-5.0.0.tgz", - "integrity": "sha512-AXcZb6vzzrFAUE61HnN4mpLqd/cSIwNQjtNWR0euPm6y0iqx3G4gOXaIDdtdDwZmhwe82LA6+zinmW4UBWVePQ==", - "dev": true, - "license": "Apache-2.0", - "engines": { - "node": ">=16.17.0" - } - }, - "node_modules/husky": { - "version": "9.1.7", - "resolved": "https://npm.sinequa.com/husky/-/husky-9.1.7.tgz", - "integrity": "sha512-5gs5ytaNjBrh5Ow3zrvdUUY+0VxIuWVL4i9irt6friV+BqdCfmV11CQTWMiBYWHbXhco+J1kHfTOUkePhCDvMA==", - "dev": true, - "license": "MIT", - "bin": { - "husky": "bin.js" - }, - "engines": { - "node": ">=18" - }, - "funding": { - "url": "https://github.com/sponsors/typicode" - } - }, - "node_modules/hyperdyperid": { - "version": "1.2.0", - "resolved": "https://npm.sinequa.com/hyperdyperid/-/hyperdyperid-1.2.0.tgz", - "integrity": "sha512-Y93lCzHYgGWdrJ66yIktxiaGULYc6oGiABxhcO5AufBeOyoIdZF7bIfLaOrbM0iGIOXQQgxxRrFEnb+Y6w1n4A==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=10.18" - } - }, - "node_modules/iconv-lite": { - "version": "0.4.24", - "resolved": "https://npm.sinequa.com/iconv-lite/-/iconv-lite-0.4.24.tgz", - "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", - "dev": true, - "license": "MIT", - "dependencies": { - "safer-buffer": ">= 2.1.2 < 3" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/icss-utils": { - "version": "5.1.0", - "resolved": "https://npm.sinequa.com/icss-utils/-/icss-utils-5.1.0.tgz", - "integrity": "sha512-soFhflCVWLfRNOPU3iv5Z9VUdT44xFRbzjLsEzSr5AQmgqPMTHdU3PMT1Cf1ssx8fLNJDA1juftYl+PUcv3MqA==", - "dev": true, - "license": "ISC", - "engines": { - "node": "^10 || ^12 || >= 14" - }, - "peerDependencies": { - "postcss": "^8.1.0" - } - }, - "node_modules/ieee754": { - "version": "1.2.1", - "resolved": "https://npm.sinequa.com/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" - } - ], - "license": "BSD-3-Clause" - }, - "node_modules/ignore": { - "version": "6.0.2", - "resolved": "https://npm.sinequa.com/ignore/-/ignore-6.0.2.tgz", - "integrity": "sha512-InwqeHHN2XpumIkMvpl/DCJVrAHgCsG5+cn1XlnLWGwtZBm8QJfSusItfrwx81CTp5agNZqpKU2J/ccC5nGT4A==", - "license": "MIT", - "engines": { - "node": ">= 4" - } - }, - "node_modules/ignore-walk": { - "version": "6.0.5", - "resolved": "https://npm.sinequa.com/ignore-walk/-/ignore-walk-6.0.5.tgz", - "integrity": "sha512-VuuG0wCnjhnylG1ABXT3dAuIpTNDs/G8jlpmwXY03fXoXy/8ZK8/T+hMzt8L4WnrLCJgdybqgPagnF/f97cg3A==", - "dev": true, - "license": "ISC", - "dependencies": { - "minimatch": "^9.0.0" - }, - "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" - } - }, - "node_modules/image-size": { - "version": "0.5.5", - "resolved": "https://npm.sinequa.com/image-size/-/image-size-0.5.5.tgz", - "integrity": "sha1-Cd/Uq50g4p6xw+gLiZA3jfnjy5w=", - "dev": true, - "license": "MIT", - "optional": true, - "bin": { - "image-size": "bin/image-size.js" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/immutable": { - "version": "4.3.7", - "resolved": "https://npm.sinequa.com/immutable/-/immutable-4.3.7.tgz", - "integrity": "sha512-1hqclzwYwjRDFLjcFxOM5AYkkG0rpFPpr1RLPMEuGczoS7YA8gLhy8SWXYRAA/XwfEHpfo3cw5JGioS32fnMRw==", - "dev": true, - "license": "MIT" - }, - "node_modules/import-fresh": { - "version": "3.3.1", - "resolved": "https://npm.sinequa.com/import-fresh/-/import-fresh-3.3.1.tgz", - "integrity": "sha512-TR3KfrTZTYLPB6jUjfx6MF9WcWrHL9su5TObK4ZkYgBdWKPOFoSoQIdEuTuR82pmtxH2spWG9h6etwfr1pLBqQ==", - "license": "MIT", - "dependencies": { - "parent-module": "^1.0.0", - "resolve-from": "^4.0.0" - }, - "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/imurmurhash": { - "version": "0.1.4", - "resolved": "https://npm.sinequa.com/imurmurhash/-/imurmurhash-0.1.4.tgz", - "integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o=", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.8.19" - } - }, - "node_modules/indent-string": { - "version": "4.0.0", - "resolved": "https://npm.sinequa.com/indent-string/-/indent-string-4.0.0.tgz", - "integrity": "sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/inflight": { - "version": "1.0.6", - "resolved": "https://npm.sinequa.com/inflight/-/inflight-1.0.6.tgz", - "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", - "license": "ISC", - "dependencies": { - "once": "^1.3.0", - "wrappy": "1" - } - }, - "node_modules/inherits": { - "version": "2.0.4", - "resolved": "https://npm.sinequa.com/inherits/-/inherits-2.0.4.tgz", - "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", - "license": "ISC" - }, - "node_modules/ini": { - "version": "4.1.3", - "resolved": "https://npm.sinequa.com/ini/-/ini-4.1.3.tgz", - "integrity": "sha512-X7rqawQBvfdjS10YU1y1YVreA3SsLrW9dX2CewP2EbBJM4ypVNLDkO5y04gejPwKIY9lR+7r9gn3rFPt/kmWFg==", - "dev": true, - "license": "ISC", - "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" - } - }, - "node_modules/ip-address": { - "version": "9.0.5", - "resolved": "https://npm.sinequa.com/ip-address/-/ip-address-9.0.5.tgz", - "integrity": "sha512-zHtQzGojZXTwZTHQqra+ETKd4Sn3vgi7uBmlPoXVWZqYvuKmtI0l/VZTjqGmJY9x88GGOaZ9+G9ES8hC4T4X8g==", - "dev": true, - "license": "MIT", - "dependencies": { - "jsbn": "1.1.0", - "sprintf-js": "^1.1.3" - }, - "engines": { - "node": ">= 12" - } - }, - "node_modules/ipaddr.js": { - "version": "2.2.0", - "resolved": "https://npm.sinequa.com/ipaddr.js/-/ipaddr.js-2.2.0.tgz", - "integrity": "sha512-Ag3wB2o37wslZS19hZqorUnrnzSkpOVy+IiiDEiTqNubEYpYuHWIf6K4psgN2ZWKExS4xhVCrRVfb/wfW8fWJA==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 10" - } - }, - "node_modules/is-arrayish": { - "version": "0.2.1", - "resolved": "https://npm.sinequa.com/is-arrayish/-/is-arrayish-0.2.1.tgz", - "integrity": "sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0=", - "license": "MIT" - }, - "node_modules/is-binary-path": { - "version": "2.1.0", - "resolved": "https://npm.sinequa.com/is-binary-path/-/is-binary-path-2.1.0.tgz", - "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", - "dev": true, - "license": "MIT", - "dependencies": { - "binary-extensions": "^2.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/is-core-module": { - "version": "2.16.1", - "resolved": "https://npm.sinequa.com/is-core-module/-/is-core-module-2.16.1.tgz", - "integrity": "sha512-UfoeMA6fIJ8wTYFEUjelnaGI67v6+N7qXJEvQuIGa99l4xsCruSYOVSQ0uPANn4dAzm8lkYPaKLrrijLq7x23w==", - "dev": true, - "license": "MIT", - "dependencies": { - "hasown": "^2.0.2" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-docker": { - "version": "3.0.0", - "resolved": "https://npm.sinequa.com/is-docker/-/is-docker-3.0.0.tgz", - "integrity": "sha512-eljcgEDlEns/7AXFosB5K/2nCM4P7FQPkGc/DWLy5rmFEWvZayGrik1d9/QIY5nJ4f9YsVvBkA6kJpHn9rISdQ==", - "dev": true, - "license": "MIT", - "bin": { - "is-docker": "cli.js" - }, - "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/is-extglob": { - "version": "2.1.1", - "resolved": "https://npm.sinequa.com/is-extglob/-/is-extglob-2.1.1.tgz", - "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-fullwidth-code-point": { - "version": "4.0.0", - "resolved": "https://npm.sinequa.com/is-fullwidth-code-point/-/is-fullwidth-code-point-4.0.0.tgz", - "integrity": "sha512-O4L094N2/dZ7xqVdrXhh9r1KODPJpFms8B5sGdJLPy664AgvXsreZUyCQQNItZRDlYug4xStLjNp/sz3HvBowQ==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/is-glob": { - "version": "4.0.3", - "resolved": "https://npm.sinequa.com/is-glob/-/is-glob-4.0.3.tgz", - "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", - "dev": true, - "license": "MIT", - "dependencies": { - "is-extglob": "^2.1.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-inside-container": { - "version": "1.0.0", - "resolved": "https://npm.sinequa.com/is-inside-container/-/is-inside-container-1.0.0.tgz", - "integrity": "sha512-KIYLCCJghfHZxqjYBE7rEy0OBuTd5xCHS7tHVgvCLkx7StIoaxwNW3hCALgEUjFfeRk+MG/Qxmp/vtETEF3tRA==", - "dev": true, - "license": "MIT", - "dependencies": { - "is-docker": "^3.0.0" - }, - "bin": { - "is-inside-container": "cli.js" - }, - "engines": { - "node": ">=14.16" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/is-interactive": { - "version": "1.0.0", - "resolved": "https://npm.sinequa.com/is-interactive/-/is-interactive-1.0.0.tgz", - "integrity": "sha512-2HvIEKRoqS62guEC+qBjpvRubdX910WCMuJTZ+I9yvqKU2/12eSL549HMwtabb4oupdj2sMP50k+XJfB/8JE6w==", - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/is-lambda": { - "version": "1.0.1", - "resolved": "https://npm.sinequa.com/is-lambda/-/is-lambda-1.0.1.tgz", - "integrity": "sha1-PZh3iZ5qU+/AFgUEzeFfgubwYdU=", - "dev": true, - "license": "MIT" - }, - "node_modules/is-network-error": { - "version": "1.1.0", - "resolved": "https://npm.sinequa.com/is-network-error/-/is-network-error-1.1.0.tgz", - "integrity": "sha512-tUdRRAnhT+OtCZR/LxZelH/C7QtjtFrTu5tXCA8pl55eTUElUHT+GPYV8MBMBvea/j+NxQqVt3LbWMRir7Gx9g==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=16" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/is-number": { - "version": "7.0.0", - "resolved": "https://npm.sinequa.com/is-number/-/is-number-7.0.0.tgz", - "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.12.0" - } - }, - "node_modules/is-plain-obj": { - "version": "3.0.0", - "resolved": "https://npm.sinequa.com/is-plain-obj/-/is-plain-obj-3.0.0.tgz", - "integrity": "sha512-gwsOE28k+23GP1B6vFl1oVh/WOzmawBrKwo5Ev6wMKzPkaXaCDIQKzLnvsA42DRlbVTWorkgTKIviAKCWkfUwA==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/is-plain-object": { - "version": "5.0.0", - "resolved": "https://npm.sinequa.com/is-plain-object/-/is-plain-object-5.0.0.tgz", - "integrity": "sha512-VRSzKkbMm5jMDoKLbltAkFQ5Qr7VDiTFGXxYFXXowVj387GeGNOCsOH6Msy00SGZ3Fp84b1Naa1psqgcCIEP5Q==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-stream": { - "version": "3.0.0", - "resolved": "https://npm.sinequa.com/is-stream/-/is-stream-3.0.0.tgz", - "integrity": "sha512-LnQR4bZ9IADDRSkvpqMGvt/tEJWclzklNgSw48V5EAaAeDd6qGvN8ei6k5p0tvxSR171VmGyHuTiAOfxAbr8kA==", - "dev": true, - "license": "MIT", - "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/is-unicode-supported": { - "version": "0.1.0", - "resolved": "https://npm.sinequa.com/is-unicode-supported/-/is-unicode-supported-0.1.0.tgz", - "integrity": "sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw==", - "license": "MIT", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/is-what": { - "version": "3.14.1", - "resolved": "https://npm.sinequa.com/is-what/-/is-what-3.14.1.tgz", - "integrity": "sha512-sNxgpk9793nzSs7bA6JQJGeIuRBQhAaNGG77kzYQgMkrID+lS6SlK07K5LaptscDlSaIgH+GPFzf+d75FVxozA==", - "dev": true, - "license": "MIT" - }, - "node_modules/is-wsl": { - "version": "3.1.0", - "resolved": "https://npm.sinequa.com/is-wsl/-/is-wsl-3.1.0.tgz", - "integrity": "sha512-UcVfVfaK4Sc4m7X3dUSoHoozQGBEFeDC+zVo06t98xe8CzHSZZBekNXH+tu0NalHolcJ/QAGqS46Hef7QXBIMw==", - "dev": true, - "license": "MIT", - "dependencies": { - "is-inside-container": "^1.0.0" - }, - "engines": { - "node": ">=16" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/isarray": { - "version": "1.0.0", - "resolved": "https://npm.sinequa.com/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=", - "dev": true, - "license": "MIT" - }, - "node_modules/isexe": { - "version": "2.0.0", - "resolved": "https://npm.sinequa.com/isexe/-/isexe-2.0.0.tgz", - "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=", - "license": "ISC" - }, - "node_modules/isobject": { - "version": "3.0.1", - "resolved": "https://npm.sinequa.com/isobject/-/isobject-3.0.1.tgz", - "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/istanbul-lib-coverage": { - "version": "3.2.2", - "resolved": "https://npm.sinequa.com/istanbul-lib-coverage/-/istanbul-lib-coverage-3.2.2.tgz", - "integrity": "sha512-O8dpsF+r0WV/8MNRKfnmrtCWhuKjxrq2w+jpzBL5UZKTi2LeVWnWOmWRxFlesJONmc+wLAGvKQZEOanko0LFTg==", - "dev": true, - "license": "BSD-3-Clause", - "engines": { - "node": ">=8" - } - }, - "node_modules/istanbul-lib-instrument": { - "version": "6.0.3", - "resolved": "https://npm.sinequa.com/istanbul-lib-instrument/-/istanbul-lib-instrument-6.0.3.tgz", - "integrity": "sha512-Vtgk7L/R2JHyyGW07spoFlB8/lpjiOLTjMdms6AFMraYt3BaJauod/NGrfnVG/y4Ix1JEuMRPDPEj2ua+zz1/Q==", - "dev": true, - "license": "BSD-3-Clause", - "dependencies": { - "@babel/core": "^7.23.9", - "@babel/parser": "^7.23.9", - "@istanbuljs/schema": "^0.1.3", - "istanbul-lib-coverage": "^3.2.0", - "semver": "^7.5.4" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/jackspeak": { - "version": "3.4.3", - "resolved": "https://npm.sinequa.com/jackspeak/-/jackspeak-3.4.3.tgz", - "integrity": "sha512-OGlZQpz2yfahA/Rd1Y8Cd9SIEsqvXkLVoSw/cgwhnhFMDbsQFeZYoJJ7bIZBS9BcamUW96asq/npPWugM+RQBw==", - "license": "BlueOak-1.0.0", - "dependencies": { - "@isaacs/cliui": "^8.0.2" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - }, - "optionalDependencies": { - "@pkgjs/parseargs": "^0.11.0" - } - }, - "node_modules/jest-worker": { - "version": "27.5.1", - "resolved": "https://npm.sinequa.com/jest-worker/-/jest-worker-27.5.1.tgz", - "integrity": "sha512-7vuh85V5cdDofPyxn58nrPjBktZo0u9x1g8WtjQol+jZDaE+fhN+cIvTj11GndBnMnyfrUOG1sZQxCdjKh+DKg==", - "dev": true, - "license": "MIT", - "dependencies": { - "@types/node": "*", - "merge-stream": "^2.0.0", - "supports-color": "^8.0.0" - }, - "engines": { - "node": ">= 10.13.0" - } - }, - "node_modules/jest-worker/node_modules/supports-color": { - "version": "8.1.1", - "resolved": "https://npm.sinequa.com/supports-color/-/supports-color-8.1.1.tgz", - "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", - "dev": true, - "license": "MIT", - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/supports-color?sponsor=1" - } - }, - "node_modules/jiti": { - "version": "1.21.7", - "resolved": "https://npm.sinequa.com/jiti/-/jiti-1.21.7.tgz", - "integrity": "sha512-/imKNG4EbWNrVjoNC/1H5/9GFy+tqjGBHCaSsN+P2RnPqjsLmv6UD3Ej+Kj8nBWaRAwyk7kK5ZUc+OEatnTR3A==", - "dev": true, - "license": "MIT", - "bin": { - "jiti": "bin/jiti.js" - } - }, - "node_modules/js-tokens": { - "version": "4.0.0", - "resolved": "https://npm.sinequa.com/js-tokens/-/js-tokens-4.0.0.tgz", - "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", - "license": "MIT" - }, - "node_modules/js-yaml": { - "version": "4.1.0", - "resolved": "https://npm.sinequa.com/js-yaml/-/js-yaml-4.1.0.tgz", - "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", - "license": "MIT", - "dependencies": { - "argparse": "^2.0.1" - }, - "bin": { - "js-yaml": "bin/js-yaml.js" - } - }, - "node_modules/jsbn": { - "version": "1.1.0", - "resolved": "https://npm.sinequa.com/jsbn/-/jsbn-1.1.0.tgz", - "integrity": "sha1-sBMHyym2GKHtJux56RH4A8TaAEA=", - "dev": true, - "license": "MIT" - }, - "node_modules/jsesc": { - "version": "2.5.2", - "resolved": "https://npm.sinequa.com/jsesc/-/jsesc-2.5.2.tgz", - "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==", - "dev": true, - "license": "MIT", - "bin": { - "jsesc": "bin/jsesc" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/json-parse-even-better-errors": { - "version": "3.0.2", - "resolved": "https://npm.sinequa.com/json-parse-even-better-errors/-/json-parse-even-better-errors-3.0.2.tgz", - "integrity": "sha512-fi0NG4bPjCHunUJffmLd0gxssIgkNmArMvis4iNah6Owg1MCJjWhEcDLmsK6iGkJq3tHwbDkTlce70/tmXN4cQ==", - "dev": true, - "license": "MIT", - "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" - } - }, - "node_modules/json-schema-traverse": { - "version": "1.0.0", - "resolved": "https://npm.sinequa.com/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", - "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", - "license": "MIT" - }, - "node_modules/json5": { - "version": "2.2.3", - "resolved": "https://npm.sinequa.com/json5/-/json5-2.2.3.tgz", - "integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==", - "dev": true, - "license": "MIT", - "bin": { - "json5": "lib/cli.js" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/jsonc-parser": { - "version": "3.3.1", - "resolved": "https://npm.sinequa.com/jsonc-parser/-/jsonc-parser-3.3.1.tgz", - "integrity": "sha512-HUgH65KyejrUFPvHFPbqOY0rsFip3Bo5wb4ngvdi1EpCYWUQDC5V+Y7mZws+DLkr4M//zQJoanu1SP+87Dv1oQ==", - "license": "MIT" - }, - "node_modules/jsonfile": { - "version": "6.1.0", - "resolved": "https://npm.sinequa.com/jsonfile/-/jsonfile-6.1.0.tgz", - "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==", - "license": "MIT", - "dependencies": { - "universalify": "^2.0.0" - }, - "optionalDependencies": { - "graceful-fs": "^4.1.6" - } - }, - "node_modules/jsonparse": { - "version": "1.3.1", - "resolved": "https://npm.sinequa.com/jsonparse/-/jsonparse-1.3.1.tgz", - "integrity": "sha1-P02uSpH6wxX3EGL4UhzCOfE2YoA=", - "dev": true, - "engines": [ - "node >= 0.2.0" - ], - "license": "MIT" - }, - "node_modules/karma-source-map-support": { - "version": "1.4.0", - "resolved": "https://npm.sinequa.com/karma-source-map-support/-/karma-source-map-support-1.4.0.tgz", - "integrity": "sha512-RsBECncGO17KAoJCYXjv+ckIz+Ii9NCi+9enk+rq6XC81ezYkb4/RHE6CTXdA7IOJqoF3wcaLfVG0CPmE5ca6A==", - "dev": true, - "license": "MIT", - "dependencies": { - "source-map-support": "^0.5.5" - } - }, - "node_modules/keyux": { - "version": "0.8.3", - "resolved": "https://npm.sinequa.com/keyux/-/keyux-0.8.3.tgz", - "integrity": "sha512-eHut6xidU0Ts4o2pnuPZuCqYVV0tvzH3RYNfk2OICDj5wFWkskW1knlyn6fcBNFd/6/57URJ+XsR9HZ/FfYwjQ==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/ai" - } - ], - "license": "MIT", - "engines": { - "node": "^18.0.0 || >=20.0.0" - } - }, - "node_modules/kind-of": { - "version": "6.0.3", - "resolved": "https://npm.sinequa.com/kind-of/-/kind-of-6.0.3.tgz", - "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/launch-editor": { - "version": "2.9.1", - "resolved": "https://npm.sinequa.com/launch-editor/-/launch-editor-2.9.1.tgz", - "integrity": "sha512-Gcnl4Bd+hRO9P9icCP/RVVT2o8SFlPXofuCxvA2SaZuH45whSvf5p8x5oih5ftLiVhEI4sp5xDY+R+b3zJBh5w==", - "dev": true, - "license": "MIT", - "dependencies": { - "picocolors": "^1.0.0", - "shell-quote": "^1.8.1" - } - }, - "node_modules/less": { - "version": "4.2.0", - "resolved": "https://npm.sinequa.com/less/-/less-4.2.0.tgz", - "integrity": "sha512-P3b3HJDBtSzsXUl0im2L7gTO5Ubg8mEN6G8qoTS77iXxXX4Hvu4Qj540PZDvQ8V6DmX6iXo98k7Md0Cm1PrLaA==", - "dev": true, - "license": "Apache-2.0", - "dependencies": { - "copy-anything": "^2.0.1", - "parse-node-version": "^1.0.1", - "tslib": "^2.3.0" - }, - "bin": { - "lessc": "bin/lessc" - }, - "engines": { - "node": ">=6" - }, - "optionalDependencies": { - "errno": "^0.1.1", - "graceful-fs": "^4.1.2", - "image-size": "~0.5.0", - "make-dir": "^2.1.0", - "mime": "^1.4.1", - "needle": "^3.1.0", - "source-map": "~0.6.0" - } - }, - "node_modules/less-loader": { - "version": "12.2.0", - "resolved": "https://npm.sinequa.com/less-loader/-/less-loader-12.2.0.tgz", - "integrity": "sha512-MYUxjSQSBUQmowc0l5nPieOYwMzGPUaTzB6inNW/bdPEG9zOL3eAAD1Qw5ZxSPk7we5dMojHwNODYMV1hq4EVg==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 18.12.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" - }, - "peerDependencies": { - "@rspack/core": "0.x || 1.x", - "less": "^3.5.0 || ^4.0.0", - "webpack": "^5.0.0" - }, - "peerDependenciesMeta": { - "@rspack/core": { - "optional": true - }, - "webpack": { - "optional": true - } - } - }, - "node_modules/less/node_modules/source-map": { - "version": "0.6.1", - "resolved": "https://npm.sinequa.com/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true, - "license": "BSD-3-Clause", - "optional": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/license-webpack-plugin": { - "version": "4.0.2", - "resolved": "https://npm.sinequa.com/license-webpack-plugin/-/license-webpack-plugin-4.0.2.tgz", - "integrity": "sha512-771TFWFD70G1wLTC4oU2Cw4qvtmNrIw+wRvBtn+okgHl7slJVi7zfNcdmqDL72BojM30VNJ2UHylr1o77U37Jw==", - "dev": true, - "license": "ISC", - "dependencies": { - "webpack-sources": "^3.0.0" - }, - "peerDependenciesMeta": { - "webpack": { - "optional": true - }, - "webpack-sources": { - "optional": true - } - } - }, - "node_modules/lilconfig": { - "version": "3.1.3", - "resolved": "https://npm.sinequa.com/lilconfig/-/lilconfig-3.1.3.tgz", - "integrity": "sha512-/vlFKAoH5Cgt3Ie+JLhRbwOsCQePABiU3tJ1egGvyQ+33R/vcwM2Zl2QR/LzjsBeItPt3oSVXapn+m4nQDvpzw==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=14" - }, - "funding": { - "url": "https://github.com/sponsors/antonk52" - } - }, - "node_modules/lines-and-columns": { - "version": "1.2.4", - "resolved": "https://npm.sinequa.com/lines-and-columns/-/lines-and-columns-1.2.4.tgz", - "integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==", - "license": "MIT" - }, - "node_modules/lint-staged": { - "version": "15.4.3", - "resolved": "https://npm.sinequa.com/lint-staged/-/lint-staged-15.4.3.tgz", - "integrity": "sha512-FoH1vOeouNh1pw+90S+cnuoFwRfUD9ijY2GKy5h7HS3OR7JVir2N2xrsa0+Twc1B7cW72L+88geG5cW4wIhn7g==", - "dev": true, - "license": "MIT", - "dependencies": { - "chalk": "^5.4.1", - "commander": "^13.1.0", - "debug": "^4.4.0", - "execa": "^8.0.1", - "lilconfig": "^3.1.3", - "listr2": "^8.2.5", - "micromatch": "^4.0.8", - "pidtree": "^0.6.0", - "string-argv": "^0.3.2", - "yaml": "^2.7.0" - }, - "bin": { - "lint-staged": "bin/lint-staged.js" - }, - "engines": { - "node": ">=18.12.0" - }, - "funding": { - "url": "https://opencollective.com/lint-staged" - } - }, - "node_modules/lint-staged/node_modules/ansi-regex": { - "version": "6.1.0", - "resolved": "https://npm.sinequa.com/ansi-regex/-/ansi-regex-6.1.0.tgz", - "integrity": "sha512-7HSX4QQb4CspciLpVFwyRe79O3xsIZDDLER21kERQ71oaPodF8jL725AgJMFAYbooIqolJoRLuM81SpeUkpkvA==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/chalk/ansi-regex?sponsor=1" - } - }, - "node_modules/lint-staged/node_modules/ansi-styles": { - "version": "6.2.1", - "resolved": "https://npm.sinequa.com/ansi-styles/-/ansi-styles-6.2.1.tgz", - "integrity": "sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/lint-staged/node_modules/chalk": { - "version": "5.4.1", - "resolved": "https://npm.sinequa.com/chalk/-/chalk-5.4.1.tgz", - "integrity": "sha512-zgVZuo2WcZgfUEmsn6eO3kINexW8RAE4maiQ8QNs8CtpPCSyMiYsULR3HQYkm3w8FIA3SberyMJMSldGsW+U3w==", - "dev": true, - "license": "MIT", - "engines": { - "node": "^12.17.0 || ^14.13 || >=16.0.0" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, - "node_modules/lint-staged/node_modules/emoji-regex": { - "version": "10.4.0", - "resolved": "https://npm.sinequa.com/emoji-regex/-/emoji-regex-10.4.0.tgz", - "integrity": "sha512-EC+0oUMY1Rqm4O6LLrgjtYDvcVYTy7chDnM4Q7030tP4Kwj3u/pR6gP9ygnp2CJMK5Gq+9Q2oqmrFJAz01DXjw==", - "dev": true, - "license": "MIT" - }, - "node_modules/lint-staged/node_modules/eventemitter3": { - "version": "5.0.1", - "resolved": "https://npm.sinequa.com/eventemitter3/-/eventemitter3-5.0.1.tgz", - "integrity": "sha512-GWkBvjiSZK87ELrYOSESUYeVIc9mvLLf/nXalMOS5dYrgZq9o5OVkbZAVM06CVxYsCwH9BDZFPlQTlPA1j4ahA==", - "dev": true, - "license": "MIT" - }, - "node_modules/lint-staged/node_modules/listr2": { - "version": "8.2.5", - "resolved": "https://npm.sinequa.com/listr2/-/listr2-8.2.5.tgz", - "integrity": "sha512-iyAZCeyD+c1gPyE9qpFu8af0Y+MRtmKOncdGoA2S5EY8iFq99dmmvkNnHiWo+pj0s7yH7l3KPIgee77tKpXPWQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "cli-truncate": "^4.0.0", - "colorette": "^2.0.20", - "eventemitter3": "^5.0.1", - "log-update": "^6.1.0", - "rfdc": "^1.4.1", - "wrap-ansi": "^9.0.0" - }, - "engines": { - "node": ">=18.0.0" - } - }, - "node_modules/lint-staged/node_modules/string-width": { - "version": "7.2.0", - "resolved": "https://npm.sinequa.com/string-width/-/string-width-7.2.0.tgz", - "integrity": "sha512-tsaTIkKW9b4N+AEj+SVA+WhJzV7/zMhcSu78mLKWSk7cXMOSHsBKFWUs0fWwq8QyK3MgJBQRX6Gbi4kYbdvGkQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "emoji-regex": "^10.3.0", - "get-east-asian-width": "^1.0.0", - "strip-ansi": "^7.1.0" - }, - "engines": { - "node": ">=18" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/lint-staged/node_modules/strip-ansi": { - "version": "7.1.0", - "resolved": "https://npm.sinequa.com/strip-ansi/-/strip-ansi-7.1.0.tgz", - "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "ansi-regex": "^6.0.1" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/chalk/strip-ansi?sponsor=1" - } - }, - "node_modules/lint-staged/node_modules/wrap-ansi": { - "version": "9.0.0", - "resolved": "https://npm.sinequa.com/wrap-ansi/-/wrap-ansi-9.0.0.tgz", - "integrity": "sha512-G8ura3S+3Z2G+mkgNRq8dqaFZAuxfsxpBB8OCTGRTCtp+l/v9nbFNmCUP1BZMts3G1142MsZfn6eeUKrr4PD1Q==", - "dev": true, - "license": "MIT", - "dependencies": { - "ansi-styles": "^6.2.1", - "string-width": "^7.0.0", - "strip-ansi": "^7.1.0" - }, - "engines": { - "node": ">=18" - }, - "funding": { - "url": "https://github.com/chalk/wrap-ansi?sponsor=1" - } - }, - "node_modules/listr2": { - "version": "8.2.4", - "resolved": "https://npm.sinequa.com/listr2/-/listr2-8.2.4.tgz", - "integrity": "sha512-opevsywziHd3zHCVQGAj8zu+Z3yHNkkoYhWIGnq54RrCVwLz0MozotJEDnKsIBLvkfLGN6BLOyAeRrYI0pKA4g==", - "dev": true, - "license": "MIT", - "dependencies": { - "cli-truncate": "^4.0.0", - "colorette": "^2.0.20", - "eventemitter3": "^5.0.1", - "log-update": "^6.1.0", - "rfdc": "^1.4.1", - "wrap-ansi": "^9.0.0" - }, - "engines": { - "node": ">=18.0.0" - } - }, - "node_modules/listr2/node_modules/ansi-regex": { - "version": "6.1.0", - "resolved": "https://npm.sinequa.com/ansi-regex/-/ansi-regex-6.1.0.tgz", - "integrity": "sha512-7HSX4QQb4CspciLpVFwyRe79O3xsIZDDLER21kERQ71oaPodF8jL725AgJMFAYbooIqolJoRLuM81SpeUkpkvA==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/chalk/ansi-regex?sponsor=1" - } - }, - "node_modules/listr2/node_modules/ansi-styles": { - "version": "6.2.1", - "resolved": "https://npm.sinequa.com/ansi-styles/-/ansi-styles-6.2.1.tgz", - "integrity": "sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/listr2/node_modules/emoji-regex": { - "version": "10.4.0", - "resolved": "https://npm.sinequa.com/emoji-regex/-/emoji-regex-10.4.0.tgz", - "integrity": "sha512-EC+0oUMY1Rqm4O6LLrgjtYDvcVYTy7chDnM4Q7030tP4Kwj3u/pR6gP9ygnp2CJMK5Gq+9Q2oqmrFJAz01DXjw==", - "dev": true, - "license": "MIT" - }, - "node_modules/listr2/node_modules/eventemitter3": { - "version": "5.0.1", - "resolved": "https://npm.sinequa.com/eventemitter3/-/eventemitter3-5.0.1.tgz", - "integrity": "sha512-GWkBvjiSZK87ELrYOSESUYeVIc9mvLLf/nXalMOS5dYrgZq9o5OVkbZAVM06CVxYsCwH9BDZFPlQTlPA1j4ahA==", - "dev": true, - "license": "MIT" - }, - "node_modules/listr2/node_modules/string-width": { - "version": "7.2.0", - "resolved": "https://npm.sinequa.com/string-width/-/string-width-7.2.0.tgz", - "integrity": "sha512-tsaTIkKW9b4N+AEj+SVA+WhJzV7/zMhcSu78mLKWSk7cXMOSHsBKFWUs0fWwq8QyK3MgJBQRX6Gbi4kYbdvGkQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "emoji-regex": "^10.3.0", - "get-east-asian-width": "^1.0.0", - "strip-ansi": "^7.1.0" - }, - "engines": { - "node": ">=18" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/listr2/node_modules/strip-ansi": { - "version": "7.1.0", - "resolved": "https://npm.sinequa.com/strip-ansi/-/strip-ansi-7.1.0.tgz", - "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "ansi-regex": "^6.0.1" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/chalk/strip-ansi?sponsor=1" - } - }, - "node_modules/listr2/node_modules/wrap-ansi": { - "version": "9.0.0", - "resolved": "https://npm.sinequa.com/wrap-ansi/-/wrap-ansi-9.0.0.tgz", - "integrity": "sha512-G8ura3S+3Z2G+mkgNRq8dqaFZAuxfsxpBB8OCTGRTCtp+l/v9nbFNmCUP1BZMts3G1142MsZfn6eeUKrr4PD1Q==", - "dev": true, - "license": "MIT", - "dependencies": { - "ansi-styles": "^6.2.1", - "string-width": "^7.0.0", - "strip-ansi": "^7.1.0" - }, - "engines": { - "node": ">=18" - }, - "funding": { - "url": "https://github.com/chalk/wrap-ansi?sponsor=1" - } - }, - "node_modules/lmdb": { - "version": "3.0.13", - "resolved": "https://npm.sinequa.com/lmdb/-/lmdb-3.0.13.tgz", - "integrity": "sha512-UGe+BbaSUQtAMZobTb4nHvFMrmvuAQKSeaqAX2meTEQjfsbpl5sxdHD8T72OnwD4GU9uwNhYXIVe4QGs8N9Zyw==", - "dev": true, - "hasInstallScript": true, - "license": "MIT", - "dependencies": { - "msgpackr": "^1.10.2", - "node-addon-api": "^6.1.0", - "node-gyp-build-optional-packages": "5.2.2", - "ordered-binary": "^1.4.1", - "weak-lru-cache": "^1.2.2" - }, - "bin": { - "download-lmdb-prebuilds": "bin/download-prebuilds.js" - }, - "optionalDependencies": { - "@lmdb/lmdb-darwin-arm64": "3.0.13", - "@lmdb/lmdb-darwin-x64": "3.0.13", - "@lmdb/lmdb-linux-arm": "3.0.13", - "@lmdb/lmdb-linux-arm64": "3.0.13", - "@lmdb/lmdb-linux-x64": "3.0.13", - "@lmdb/lmdb-win32-x64": "3.0.13" - } - }, - "node_modules/loader-runner": { - "version": "4.3.0", - "resolved": "https://npm.sinequa.com/loader-runner/-/loader-runner-4.3.0.tgz", - "integrity": "sha512-3R/1M+yS3j5ou80Me59j7F9IMs4PXs3VqRrm0TU3AbKPxlmpoY1TNscJV/oGJXo8qCatFGTfDbY6W6ipGOYXfg==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=6.11.5" - } - }, - "node_modules/loader-utils": { - "version": "3.3.1", - "resolved": "https://npm.sinequa.com/loader-utils/-/loader-utils-3.3.1.tgz", - "integrity": "sha512-FMJTLMXfCLMLfJxcX9PFqX5qD88Z5MRGaZCVzfuqeZSPsyiBzs+pahDQjbIWz2QIzPZz0NX9Zy4FX3lmK6YHIg==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 12.13.0" - } - }, - "node_modules/locate-path": { - "version": "7.2.0", - "resolved": "https://npm.sinequa.com/locate-path/-/locate-path-7.2.0.tgz", - "integrity": "sha512-gvVijfZvn7R+2qyPX8mAuKcFGDf6Nc61GdvGafQsHL0sBIxfKzA+usWn4GFC/bk+QdwPUD4kWFJLhElipq+0VA==", - "dev": true, - "license": "MIT", - "dependencies": { - "p-locate": "^6.0.0" - }, - "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/lodash.debounce": { - "version": "4.0.8", - "resolved": "https://npm.sinequa.com/lodash.debounce/-/lodash.debounce-4.0.8.tgz", - "integrity": "sha1-gteb/zCmfEAF/9XiUVMArZyk168=", - "dev": true, - "license": "MIT" - }, - "node_modules/lodash.kebabcase": { - "version": "4.1.1", - "resolved": "https://npm.sinequa.com/lodash.kebabcase/-/lodash.kebabcase-4.1.1.tgz", - "integrity": "sha512-N8XRTIMMqqDgSy4VLKPnJ/+hpGZN+PHQiJnSenYqPaVV/NCqEogTnAdZLQiGKhxX+JCs8waWq2t1XHWKOmlY8g==", - "license": "MIT" - }, - "node_modules/log-symbols": { - "version": "4.1.0", - "resolved": "https://npm.sinequa.com/log-symbols/-/log-symbols-4.1.0.tgz", - "integrity": "sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg==", - "license": "MIT", - "dependencies": { - "chalk": "^4.1.0", - "is-unicode-supported": "^0.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/log-update": { - "version": "6.1.0", - "resolved": "https://npm.sinequa.com/log-update/-/log-update-6.1.0.tgz", - "integrity": "sha512-9ie8ItPR6tjY5uYJh8K/Zrv/RMZ5VOlOWvtZdEHYSTFKZfIBPQa9tOAEeAWhd+AnIneLJ22w5fjOYtoutpWq5w==", - "dev": true, - "license": "MIT", - "dependencies": { - "ansi-escapes": "^7.0.0", - "cli-cursor": "^5.0.0", - "slice-ansi": "^7.1.0", - "strip-ansi": "^7.1.0", - "wrap-ansi": "^9.0.0" - }, - "engines": { - "node": ">=18" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/log-update/node_modules/ansi-escapes": { - "version": "7.0.0", - "resolved": "https://npm.sinequa.com/ansi-escapes/-/ansi-escapes-7.0.0.tgz", - "integrity": "sha512-GdYO7a61mR0fOlAsvC9/rIHf7L96sBc6dEWzeOu+KAea5bZyQRPIpojrVoI4AXGJS/ycu/fBTdLrUkA4ODrvjw==", - "dev": true, - "license": "MIT", - "dependencies": { - "environment": "^1.0.0" - }, - "engines": { - "node": ">=18" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/log-update/node_modules/ansi-regex": { - "version": "6.1.0", - "resolved": "https://npm.sinequa.com/ansi-regex/-/ansi-regex-6.1.0.tgz", - "integrity": "sha512-7HSX4QQb4CspciLpVFwyRe79O3xsIZDDLER21kERQ71oaPodF8jL725AgJMFAYbooIqolJoRLuM81SpeUkpkvA==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/chalk/ansi-regex?sponsor=1" - } - }, - "node_modules/log-update/node_modules/ansi-styles": { - "version": "6.2.1", - "resolved": "https://npm.sinequa.com/ansi-styles/-/ansi-styles-6.2.1.tgz", - "integrity": "sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/log-update/node_modules/emoji-regex": { - "version": "10.4.0", - "resolved": "https://npm.sinequa.com/emoji-regex/-/emoji-regex-10.4.0.tgz", - "integrity": "sha512-EC+0oUMY1Rqm4O6LLrgjtYDvcVYTy7chDnM4Q7030tP4Kwj3u/pR6gP9ygnp2CJMK5Gq+9Q2oqmrFJAz01DXjw==", - "dev": true, - "license": "MIT" - }, - "node_modules/log-update/node_modules/is-fullwidth-code-point": { - "version": "5.0.0", - "resolved": "https://npm.sinequa.com/is-fullwidth-code-point/-/is-fullwidth-code-point-5.0.0.tgz", - "integrity": "sha512-OVa3u9kkBbw7b8Xw5F9P+D/T9X+Z4+JruYVNapTjPYZYUznQ5YfWeFkOj606XYYW8yugTfC8Pj0hYqvi4ryAhA==", - "dev": true, - "license": "MIT", - "dependencies": { - "get-east-asian-width": "^1.0.0" - }, - "engines": { - "node": ">=18" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/log-update/node_modules/slice-ansi": { - "version": "7.1.0", - "resolved": "https://npm.sinequa.com/slice-ansi/-/slice-ansi-7.1.0.tgz", - "integrity": "sha512-bSiSngZ/jWeX93BqeIAbImyTbEihizcwNjFoRUIY/T1wWQsfsm2Vw1agPKylXvQTU7iASGdHhyqRlqQzfz+Htg==", - "dev": true, - "license": "MIT", - "dependencies": { - "ansi-styles": "^6.2.1", - "is-fullwidth-code-point": "^5.0.0" - }, - "engines": { - "node": ">=18" - }, - "funding": { - "url": "https://github.com/chalk/slice-ansi?sponsor=1" - } - }, - "node_modules/log-update/node_modules/string-width": { - "version": "7.2.0", - "resolved": "https://npm.sinequa.com/string-width/-/string-width-7.2.0.tgz", - "integrity": "sha512-tsaTIkKW9b4N+AEj+SVA+WhJzV7/zMhcSu78mLKWSk7cXMOSHsBKFWUs0fWwq8QyK3MgJBQRX6Gbi4kYbdvGkQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "emoji-regex": "^10.3.0", - "get-east-asian-width": "^1.0.0", - "strip-ansi": "^7.1.0" - }, - "engines": { - "node": ">=18" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/log-update/node_modules/strip-ansi": { - "version": "7.1.0", - "resolved": "https://npm.sinequa.com/strip-ansi/-/strip-ansi-7.1.0.tgz", - "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "ansi-regex": "^6.0.1" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/chalk/strip-ansi?sponsor=1" - } - }, - "node_modules/log-update/node_modules/wrap-ansi": { - "version": "9.0.0", - "resolved": "https://npm.sinequa.com/wrap-ansi/-/wrap-ansi-9.0.0.tgz", - "integrity": "sha512-G8ura3S+3Z2G+mkgNRq8dqaFZAuxfsxpBB8OCTGRTCtp+l/v9nbFNmCUP1BZMts3G1142MsZfn6eeUKrr4PD1Q==", - "dev": true, - "license": "MIT", - "dependencies": { - "ansi-styles": "^6.2.1", - "string-width": "^7.0.0", - "strip-ansi": "^7.1.0" - }, - "engines": { - "node": ">=18" - }, - "funding": { - "url": "https://github.com/chalk/wrap-ansi?sponsor=1" - } - }, - "node_modules/lru-cache": { - "version": "5.1.1", - "resolved": "https://npm.sinequa.com/lru-cache/-/lru-cache-5.1.1.tgz", - "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", - "dev": true, - "license": "ISC", - "dependencies": { - "yallist": "^3.0.2" - } - }, - "node_modules/magic-string": { - "version": "0.30.11", - "resolved": "https://npm.sinequa.com/magic-string/-/magic-string-0.30.11.tgz", - "integrity": "sha512-+Wri9p0QHMy+545hKww7YAu5NyzF8iomPL/RQazugQ9+Ez4Ic3mERMd8ZTX5rfK944j+560ZJi8iAwgak1Ac7A==", - "license": "MIT", - "dependencies": { - "@jridgewell/sourcemap-codec": "^1.5.0" - } - }, - "node_modules/make-dir": { - "version": "2.1.0", - "resolved": "https://npm.sinequa.com/make-dir/-/make-dir-2.1.0.tgz", - "integrity": "sha512-LS9X+dc8KLxXCb8dni79fLIIUA5VyZoyjSMCwTluaXA0o27cCK0bhXkpgw+sTXVpPy/lSO57ilRixqk0vDmtRA==", - "dev": true, - "license": "MIT", - "optional": true, - "dependencies": { - "pify": "^4.0.1", - "semver": "^5.6.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/make-dir/node_modules/semver": { - "version": "5.7.2", - "resolved": "https://npm.sinequa.com/semver/-/semver-5.7.2.tgz", - "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==", - "dev": true, - "license": "ISC", - "optional": true, - "bin": { - "semver": "bin/semver" - } - }, - "node_modules/make-fetch-happen": { - "version": "13.0.1", - "resolved": "https://npm.sinequa.com/make-fetch-happen/-/make-fetch-happen-13.0.1.tgz", - "integrity": "sha512-cKTUFc/rbKUd/9meOvgrpJ2WrNzymt6jfRDdwg5UCnVzv9dTpEj9JS5m3wtziXVCjluIXyL8pcaukYqezIzZQA==", - "dev": true, - "license": "ISC", - "dependencies": { - "@npmcli/agent": "^2.0.0", - "cacache": "^18.0.0", - "http-cache-semantics": "^4.1.1", - "is-lambda": "^1.0.1", - "minipass": "^7.0.2", - "minipass-fetch": "^3.0.0", - "minipass-flush": "^1.0.5", - "minipass-pipeline": "^1.2.4", - "negotiator": "^0.6.3", - "proc-log": "^4.2.0", - "promise-retry": "^2.0.1", - "ssri": "^10.0.0" - }, - "engines": { - "node": "^16.14.0 || >=18.0.0" - } - }, - "node_modules/make-plural": { - "version": "7.4.0", - "resolved": "https://npm.sinequa.com/make-plural/-/make-plural-7.4.0.tgz", - "integrity": "sha512-4/gC9KVNTV6pvYg2gFeQYTW3mWaoJt7WZE5vrp1KnQDgW92JtYZnzmZT81oj/dUTqAIu0ufI2x3dkgu3bB1tYg==", - "license": "Unicode-DFS-2016" - }, - "node_modules/math-intrinsics": { - "version": "1.1.0", - "resolved": "https://npm.sinequa.com/math-intrinsics/-/math-intrinsics-1.1.0.tgz", - "integrity": "sha512-/IXtbwEk5HTPyEwyKX6hGkYXxM9nbj64B+ilVJnC/R6B0pH5G4V3b0pVbL7DBj4tkhBAppbQUlf6F6Xl9LHu1g==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/media-typer": { - "version": "0.3.0", - "resolved": "https://npm.sinequa.com/media-typer/-/media-typer-0.3.0.tgz", - "integrity": "sha1-hxDXrwqmJvj/+hzgAWhUUmMlV0g=", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/memfs": { - "version": "4.17.0", - "resolved": "https://npm.sinequa.com/memfs/-/memfs-4.17.0.tgz", - "integrity": "sha512-4eirfZ7thblFmqFjywlTmuWVSvccHAJbn1r8qQLzmTO11qcqpohOjmY2mFce6x7x7WtskzRqApPD0hv+Oa74jg==", - "dev": true, - "license": "Apache-2.0", - "dependencies": { - "@jsonjoy.com/json-pack": "^1.0.3", - "@jsonjoy.com/util": "^1.3.0", - "tree-dump": "^1.0.1", - "tslib": "^2.0.0" - }, - "engines": { - "node": ">= 4.0.0" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/streamich" - } - }, - "node_modules/merge-descriptors": { - "version": "1.0.3", - "resolved": "https://npm.sinequa.com/merge-descriptors/-/merge-descriptors-1.0.3.tgz", - "integrity": "sha512-gaNvAS7TZ897/rVaZ0nMtAyxNyi/pdbjbAwUpFQpN70GqnVfOiXpeUUMKRBmzXaSQ8DdTX4/0ms62r2K+hE6mQ==", - "dev": true, - "license": "MIT", - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/merge-stream": { - "version": "2.0.0", - "resolved": "https://npm.sinequa.com/merge-stream/-/merge-stream-2.0.0.tgz", - "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==", - "dev": true, - "license": "MIT" - }, - "node_modules/merge2": { - "version": "1.4.1", - "resolved": "https://npm.sinequa.com/merge2/-/merge2-1.4.1.tgz", - "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 8" - } - }, - "node_modules/methods": { - "version": "1.1.2", - "resolved": "https://npm.sinequa.com/methods/-/methods-1.1.2.tgz", - "integrity": "sha1-VSmk1nZUE07cxSZmVoNbD4Ua/O4=", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/micromatch": { - "version": "4.0.8", - "resolved": "https://npm.sinequa.com/micromatch/-/micromatch-4.0.8.tgz", - "integrity": "sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==", - "dev": true, - "license": "MIT", - "dependencies": { - "braces": "^3.0.3", - "picomatch": "^2.3.1" - }, - "engines": { - "node": ">=8.6" - } - }, - "node_modules/micromatch/node_modules/picomatch": { - "version": "2.3.1", - "resolved": "https://npm.sinequa.com/picomatch/-/picomatch-2.3.1.tgz", - "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8.6" - }, - "funding": { - "url": "https://github.com/sponsors/jonschlinkert" - } - }, - "node_modules/mime": { - "version": "1.6.0", - "resolved": "https://npm.sinequa.com/mime/-/mime-1.6.0.tgz", - "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==", - "dev": true, - "license": "MIT", - "bin": { - "mime": "cli.js" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/mime-db": { - "version": "1.52.0", - "resolved": "https://npm.sinequa.com/mime-db/-/mime-db-1.52.0.tgz", - "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/mime-types": { - "version": "2.1.35", - "resolved": "https://npm.sinequa.com/mime-types/-/mime-types-2.1.35.tgz", - "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", - "dev": true, - "license": "MIT", - "dependencies": { - "mime-db": "1.52.0" - }, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/mimic-fn": { - "version": "4.0.0", - "resolved": "https://npm.sinequa.com/mimic-fn/-/mimic-fn-4.0.0.tgz", - "integrity": "sha512-vqiC06CuhBTUdZH+RYl8sFrL096vA45Ok5ISO6sE/Mr1jRbGH4Csnhi8f3wKVl7x8mO4Au7Ir9D3Oyv1VYMFJw==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/mimic-function": { - "version": "5.0.1", - "resolved": "https://npm.sinequa.com/mimic-function/-/mimic-function-5.0.1.tgz", - "integrity": "sha512-VP79XUPxV2CigYP3jWwAUFSku2aKqBH7uTAapFWCBqutsbmDo96KY5o8uh6U+/YSIn5OxJnXp73beVkpqMIGhA==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=18" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/mini-css-extract-plugin": { - "version": "2.9.0", - "resolved": "https://npm.sinequa.com/mini-css-extract-plugin/-/mini-css-extract-plugin-2.9.0.tgz", - "integrity": "sha512-Zs1YsZVfemekSZG+44vBsYTLQORkPMwnlv+aehcxK/NLKC+EGhDB39/YePYYqx/sTk6NnYpuqikhSn7+JIevTA==", - "dev": true, - "license": "MIT", - "dependencies": { - "schema-utils": "^4.0.0", - "tapable": "^2.2.1" - }, - "engines": { - "node": ">= 12.13.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" - }, - "peerDependencies": { - "webpack": "^5.0.0" - } - }, - "node_modules/minimalistic-assert": { - "version": "1.0.1", - "resolved": "https://npm.sinequa.com/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz", - "integrity": "sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A==", - "dev": true, - "license": "ISC" - }, - "node_modules/minimatch": { - "version": "9.0.5", - "resolved": "https://npm.sinequa.com/minimatch/-/minimatch-9.0.5.tgz", - "integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==", - "license": "ISC", - "dependencies": { - "brace-expansion": "^2.0.1" - }, - "engines": { - "node": ">=16 || 14 >=14.17" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/minipass": { - "version": "7.1.2", - "resolved": "https://npm.sinequa.com/minipass/-/minipass-7.1.2.tgz", - "integrity": "sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==", - "license": "ISC", - "engines": { - "node": ">=16 || 14 >=14.17" - } - }, - "node_modules/minipass-collect": { - "version": "2.0.1", - "resolved": "https://npm.sinequa.com/minipass-collect/-/minipass-collect-2.0.1.tgz", - "integrity": "sha512-D7V8PO9oaz7PWGLbCACuI1qEOsq7UKfLotx/C0Aet43fCUB/wfQ7DYeq2oR/svFJGYDHPr38SHATeaj/ZoKHKw==", - "dev": true, - "license": "ISC", - "dependencies": { - "minipass": "^7.0.3" - }, - "engines": { - "node": ">=16 || 14 >=14.17" - } - }, - "node_modules/minipass-fetch": { - "version": "3.0.5", - "resolved": "https://npm.sinequa.com/minipass-fetch/-/minipass-fetch-3.0.5.tgz", - "integrity": "sha512-2N8elDQAtSnFV0Dk7gt15KHsS0Fyz6CbYZ360h0WTYV1Ty46li3rAXVOQj1THMNLdmrD9Vt5pBPtWtVkpwGBqg==", - "dev": true, - "license": "MIT", - "dependencies": { - "minipass": "^7.0.3", - "minipass-sized": "^1.0.3", - "minizlib": "^2.1.2" - }, - "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" - }, - "optionalDependencies": { - "encoding": "^0.1.13" - } - }, - "node_modules/minipass-flush": { - "version": "1.0.5", - "resolved": "https://npm.sinequa.com/minipass-flush/-/minipass-flush-1.0.5.tgz", - "integrity": "sha512-JmQSYYpPUqX5Jyn1mXaRwOda1uQ8HP5KAT/oDSLCzt1BYRhQU0/hDtsB1ufZfEEzMZ9aAVmsBw8+FWsIXlClWw==", - "dev": true, - "license": "ISC", - "dependencies": { - "minipass": "^3.0.0" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/minipass-flush/node_modules/minipass": { - "version": "3.3.6", - "resolved": "https://npm.sinequa.com/minipass/-/minipass-3.3.6.tgz", - "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==", - "dev": true, - "license": "ISC", - "dependencies": { - "yallist": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/minipass-flush/node_modules/yallist": { - "version": "4.0.0", - "resolved": "https://npm.sinequa.com/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", - "dev": true, - "license": "ISC" - }, - "node_modules/minipass-pipeline": { - "version": "1.2.4", - "resolved": "https://npm.sinequa.com/minipass-pipeline/-/minipass-pipeline-1.2.4.tgz", - "integrity": "sha512-xuIq7cIOt09RPRJ19gdi4b+RiNvDFYe5JH+ggNvBqGqpQXcru3PcRmOZuHBKWK1Txf9+cQ+HMVN4d6z46LZP7A==", - "dev": true, - "license": "ISC", - "dependencies": { - "minipass": "^3.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/minipass-pipeline/node_modules/minipass": { - "version": "3.3.6", - "resolved": "https://npm.sinequa.com/minipass/-/minipass-3.3.6.tgz", - "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==", - "dev": true, - "license": "ISC", - "dependencies": { - "yallist": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/minipass-pipeline/node_modules/yallist": { - "version": "4.0.0", - "resolved": "https://npm.sinequa.com/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", - "dev": true, - "license": "ISC" - }, - "node_modules/minipass-sized": { - "version": "1.0.3", - "resolved": "https://npm.sinequa.com/minipass-sized/-/minipass-sized-1.0.3.tgz", - "integrity": "sha512-MbkQQ2CTiBMlA2Dm/5cY+9SWFEN8pzzOXi6rlM5Xxq0Yqbda5ZQy9sU75a673FE9ZK0Zsbr6Y5iP6u9nktfg2g==", - "dev": true, - "license": "ISC", - "dependencies": { - "minipass": "^3.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/minipass-sized/node_modules/minipass": { - "version": "3.3.6", - "resolved": "https://npm.sinequa.com/minipass/-/minipass-3.3.6.tgz", - "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==", - "dev": true, - "license": "ISC", - "dependencies": { - "yallist": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/minipass-sized/node_modules/yallist": { - "version": "4.0.0", - "resolved": "https://npm.sinequa.com/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", - "dev": true, - "license": "ISC" - }, - "node_modules/minizlib": { - "version": "2.1.2", - "resolved": "https://npm.sinequa.com/minizlib/-/minizlib-2.1.2.tgz", - "integrity": "sha512-bAxsR8BVfj60DWXHE3u30oHzfl4G7khkSuPW+qvpd7jFRHm7dLxOjUk1EHACJ/hxLY8phGJ0YhYHZo7jil7Qdg==", - "dev": true, - "license": "MIT", - "dependencies": { - "minipass": "^3.0.0", - "yallist": "^4.0.0" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/minizlib/node_modules/minipass": { - "version": "3.3.6", - "resolved": "https://npm.sinequa.com/minipass/-/minipass-3.3.6.tgz", - "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==", - "dev": true, - "license": "ISC", - "dependencies": { - "yallist": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/minizlib/node_modules/yallist": { - "version": "4.0.0", - "resolved": "https://npm.sinequa.com/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", - "dev": true, - "license": "ISC" - }, - "node_modules/mkdirp": { - "version": "1.0.4", - "resolved": "https://npm.sinequa.com/mkdirp/-/mkdirp-1.0.4.tgz", - "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==", - "dev": true, - "license": "MIT", - "bin": { - "mkdirp": "bin/cmd.js" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/moo": { - "version": "0.5.2", - "resolved": "https://npm.sinequa.com/moo/-/moo-0.5.2.tgz", - "integrity": "sha512-iSAJLHYKnX41mKcJKjqvnAN9sf0LMDTXDEvFv+ffuRR9a1MIuXLjMNL6EsnDHSkKLTWNqQQ5uo61P4EbU4NU+Q==", - "license": "BSD-3-Clause" - }, - "node_modules/mrmime": { - "version": "2.0.0", - "resolved": "https://npm.sinequa.com/mrmime/-/mrmime-2.0.0.tgz", - "integrity": "sha512-eu38+hdgojoyq63s+yTpN4XMBdt5l8HhMhc4VKLO9KM5caLIBvUm4thi7fFaxyTmCKeNnXZ5pAlBwCUnhA09uw==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=10" - } - }, - "node_modules/ms": { - "version": "2.1.3", - "resolved": "https://npm.sinequa.com/ms/-/ms-2.1.3.tgz", - "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", - "dev": true, - "license": "MIT" - }, - "node_modules/msgpackr": { - "version": "1.11.2", - "resolved": "https://npm.sinequa.com/msgpackr/-/msgpackr-1.11.2.tgz", - "integrity": "sha512-F9UngXRlPyWCDEASDpTf6c9uNhGPTqnTeLVt7bN+bU1eajoR/8V9ys2BRaV5C/e5ihE6sJ9uPIKaYt6bFuO32g==", - "dev": true, - "license": "MIT", - "optionalDependencies": { - "msgpackr-extract": "^3.0.2" - } - }, - "node_modules/msgpackr-extract": { - "version": "3.0.3", - "resolved": "https://npm.sinequa.com/msgpackr-extract/-/msgpackr-extract-3.0.3.tgz", - "integrity": "sha512-P0efT1C9jIdVRefqjzOQ9Xml57zpOXnIuS+csaB4MdZbTdmGDLo8XhzBG1N7aO11gKDDkJvBLULeFTo46wwreA==", - "dev": true, - "hasInstallScript": true, - "license": "MIT", - "optional": true, - "dependencies": { - "node-gyp-build-optional-packages": "5.2.2" - }, - "bin": { - "download-msgpackr-prebuilds": "bin/download-prebuilds.js" - }, - "optionalDependencies": { - "@msgpackr-extract/msgpackr-extract-darwin-arm64": "3.0.3", - "@msgpackr-extract/msgpackr-extract-darwin-x64": "3.0.3", - "@msgpackr-extract/msgpackr-extract-linux-arm": "3.0.3", - "@msgpackr-extract/msgpackr-extract-linux-arm64": "3.0.3", - "@msgpackr-extract/msgpackr-extract-linux-x64": "3.0.3", - "@msgpackr-extract/msgpackr-extract-win32-x64": "3.0.3" - } - }, - "node_modules/multicast-dns": { - "version": "7.2.5", - "resolved": "https://npm.sinequa.com/multicast-dns/-/multicast-dns-7.2.5.tgz", - "integrity": "sha512-2eznPJP8z2BFLX50tf0LuODrpINqP1RVIm/CObbTcBRITQgmC/TjcREF1NeTBzIcR5XO/ukWo+YHOjBbFwIupg==", - "dev": true, - "license": "MIT", - "dependencies": { - "dns-packet": "^5.2.2", - "thunky": "^1.0.2" - }, - "bin": { - "multicast-dns": "cli.js" - } - }, - "node_modules/mute-stream": { - "version": "1.0.0", - "resolved": "https://npm.sinequa.com/mute-stream/-/mute-stream-1.0.0.tgz", - "integrity": "sha512-avsJQhyd+680gKXyG/sQc0nXaC6rBkPOfyHYcFb9+hdkqQkR9bdnkJ0AMZhke0oesPqIO+mFFJ+IdBc7mst4IA==", - "dev": true, - "license": "ISC", - "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" - } - }, - "node_modules/mz": { - "version": "2.7.0", - "resolved": "https://npm.sinequa.com/mz/-/mz-2.7.0.tgz", - "integrity": "sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q==", - "dev": true, - "license": "MIT", - "dependencies": { - "any-promise": "^1.0.0", - "object-assign": "^4.0.1", - "thenify-all": "^1.0.0" - } - }, - "node_modules/nanoid": { - "version": "3.3.8", - "resolved": "https://npm.sinequa.com/nanoid/-/nanoid-3.3.8.tgz", - "integrity": "sha512-WNLf5Sd8oZxOm+TzppcYk8gVOgP+l58xNy58D0nbUnOxOWRWvlcCV4kUF7ltmI6PsrLl/BgKEyS4mqsGChFN0w==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/ai" - } - ], - "license": "MIT", - "bin": { - "nanoid": "bin/nanoid.cjs" - }, - "engines": { - "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" - } - }, - "node_modules/needle": { - "version": "3.3.1", - "resolved": "https://npm.sinequa.com/needle/-/needle-3.3.1.tgz", - "integrity": "sha512-6k0YULvhpw+RoLNiQCRKOl09Rv1dPLr8hHnVjHqdolKwDrdNyk+Hmrthi4lIGPPz3r39dLx0hsF5s40sZ3Us4Q==", - "dev": true, - "license": "MIT", - "optional": true, - "dependencies": { - "iconv-lite": "^0.6.3", - "sax": "^1.2.4" - }, - "bin": { - "needle": "bin/needle" - }, - "engines": { - "node": ">= 4.4.x" - } - }, - "node_modules/needle/node_modules/iconv-lite": { - "version": "0.6.3", - "resolved": "https://npm.sinequa.com/iconv-lite/-/iconv-lite-0.6.3.tgz", - "integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==", - "dev": true, - "license": "MIT", - "optional": true, - "dependencies": { - "safer-buffer": ">= 2.1.2 < 3.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/negotiator": { - "version": "0.6.4", - "resolved": "https://npm.sinequa.com/negotiator/-/negotiator-0.6.4.tgz", - "integrity": "sha512-myRT3DiWPHqho5PrJaIRyaMv2kgYf0mUVgBNOYMuCH5Ki1yEiQaf/ZJuQ62nvpc44wL5WDbTX7yGJi1Neevw8w==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/neo-async": { - "version": "2.6.2", - "resolved": "https://npm.sinequa.com/neo-async/-/neo-async-2.6.2.tgz", - "integrity": "sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==", - "dev": true, - "license": "MIT" - }, - "node_modules/ngx-sonner": { - "version": "1.0.0", - "resolved": "https://npm.sinequa.com/ngx-sonner/-/ngx-sonner-1.0.0.tgz", - "integrity": "sha512-eymqTMVGrQAm0R9b+/koA+cymyTmE86q0giZI611apEwH3MDdIB6wEDwqc4DPSQ+AQJlgBz4vJxTFCOY+lXCzQ==", - "license": "MIT", - "dependencies": { - "tslib": "^2.3.0" - }, - "peerDependencies": { - "@angular/common": ">=17.3.0", - "@angular/core": ">=17.3.0" - } - }, - "node_modules/nice-napi": { - "version": "1.0.2", - "resolved": "https://npm.sinequa.com/nice-napi/-/nice-napi-1.0.2.tgz", - "integrity": "sha512-px/KnJAJZf5RuBGcfD+Sp2pAKq0ytz8j+1NehvgIGFkvtvFrDM3T8E4x/JJODXK9WZow8RRGrbA9QQ3hs+pDhA==", - "dev": true, - "hasInstallScript": true, - "license": "MIT", - "optional": true, - "os": [ - "!win32" - ], - "dependencies": { - "node-addon-api": "^3.0.0", - "node-gyp-build": "^4.2.2" - } - }, - "node_modules/nice-napi/node_modules/node-addon-api": { - "version": "3.2.1", - "resolved": "https://npm.sinequa.com/node-addon-api/-/node-addon-api-3.2.1.tgz", - "integrity": "sha512-mmcei9JghVNDYydghQmeDX8KoAm0FAiYyIcUt/N4nhyAipB17pllZQDOJD2fotxABnt4Mdz+dKTO7eftLg4d0A==", - "dev": true, - "license": "MIT", - "optional": true - }, - "node_modules/node-addon-api": { - "version": "6.1.0", - "resolved": "https://npm.sinequa.com/node-addon-api/-/node-addon-api-6.1.0.tgz", - "integrity": "sha512-+eawOlIgy680F0kBzPUNFhMZGtJ1YmqM6l4+Crf4IkImjYrO/mqPwRMh352g23uIaQKFItcQ64I7KMaJxHgAVA==", - "dev": true, - "license": "MIT" - }, - "node_modules/node-fetch": { - "version": "2.7.0", - "resolved": "https://npm.sinequa.com/node-fetch/-/node-fetch-2.7.0.tgz", - "integrity": "sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A==", - "license": "MIT", - "dependencies": { - "whatwg-url": "^5.0.0" - }, - "engines": { - "node": "4.x || >=6.0.0" - }, - "peerDependencies": { - "encoding": "^0.1.0" - }, - "peerDependenciesMeta": { - "encoding": { - "optional": true - } - } - }, - "node_modules/node-forge": { - "version": "1.3.1", - "resolved": "https://npm.sinequa.com/node-forge/-/node-forge-1.3.1.tgz", - "integrity": "sha512-dPEtOeMvF9VMcYV/1Wb8CPoVAXtp6MKMlcbAt4ddqmGqUJ6fQZFXkNZNkNlfevtNkGtaSoXf/vNNNSvgrdXwtA==", - "dev": true, - "license": "(BSD-3-Clause OR GPL-2.0)", - "engines": { - "node": ">= 6.13.0" - } - }, - "node_modules/node-gyp": { - "version": "10.3.1", - "resolved": "https://npm.sinequa.com/node-gyp/-/node-gyp-10.3.1.tgz", - "integrity": "sha512-Pp3nFHBThHzVtNY7U6JfPjvT/DTE8+o/4xKsLQtBoU+j2HLsGlhcfzflAoUreaJbNmYnX+LlLi0qjV8kpyO6xQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "env-paths": "^2.2.0", - "exponential-backoff": "^3.1.1", - "glob": "^10.3.10", - "graceful-fs": "^4.2.6", - "make-fetch-happen": "^13.0.0", - "nopt": "^7.0.0", - "proc-log": "^4.1.0", - "semver": "^7.3.5", - "tar": "^6.2.1", - "which": "^4.0.0" - }, - "bin": { - "node-gyp": "bin/node-gyp.js" - }, - "engines": { - "node": "^16.14.0 || >=18.0.0" - } - }, - "node_modules/node-gyp-build": { - "version": "4.8.4", - "resolved": "https://npm.sinequa.com/node-gyp-build/-/node-gyp-build-4.8.4.tgz", - "integrity": "sha512-LA4ZjwlnUblHVgq0oBF3Jl/6h/Nvs5fzBLwdEF4nuxnFdsfajde4WfxtJr3CaiH+F6ewcIB/q4jQ4UzPyid+CQ==", - "dev": true, - "license": "MIT", - "optional": true, - "bin": { - "node-gyp-build": "bin.js", - "node-gyp-build-optional": "optional.js", - "node-gyp-build-test": "build-test.js" - } - }, - "node_modules/node-gyp-build-optional-packages": { - "version": "5.2.2", - "resolved": "https://npm.sinequa.com/node-gyp-build-optional-packages/-/node-gyp-build-optional-packages-5.2.2.tgz", - "integrity": "sha512-s+w+rBWnpTMwSFbaE0UXsRlg7hU4FjekKU4eyAih5T8nJuNZT1nNsskXpxmeqSK9UzkBl6UgRlnKc8hz8IEqOw==", - "dev": true, - "license": "MIT", - "dependencies": { - "detect-libc": "^2.0.1" - }, - "bin": { - "node-gyp-build-optional-packages": "bin.js", - "node-gyp-build-optional-packages-optional": "optional.js", - "node-gyp-build-optional-packages-test": "build-test.js" - } - }, - "node_modules/node-gyp/node_modules/isexe": { - "version": "3.1.1", - "resolved": "https://npm.sinequa.com/isexe/-/isexe-3.1.1.tgz", - "integrity": "sha512-LpB/54B+/2J5hqQ7imZHfdU31OlgQqx7ZicVlkm9kzg9/w8GKLEcFfJl/t7DCEDueOyBAD6zCCwTO6Fzs0NoEQ==", - "dev": true, - "license": "ISC", - "engines": { - "node": ">=16" - } - }, - "node_modules/node-gyp/node_modules/which": { - "version": "4.0.0", - "resolved": "https://npm.sinequa.com/which/-/which-4.0.0.tgz", - "integrity": "sha512-GlaYyEb07DPxYCKhKzplCWBJtvxZcZMrL+4UkrTSJHHPyZU4mYYTv3qaOe77H7EODLSSopAUFAc6W8U4yqvscg==", - "dev": true, - "license": "ISC", - "dependencies": { - "isexe": "^3.1.1" - }, - "bin": { - "node-which": "bin/which.js" - }, - "engines": { - "node": "^16.13.0 || >=18.0.0" - } - }, - "node_modules/node-releases": { - "version": "2.0.19", - "resolved": "https://npm.sinequa.com/node-releases/-/node-releases-2.0.19.tgz", - "integrity": "sha512-xxOWJsBKtzAq7DY0J+DTzuz58K8e7sJbdgwkbMWQe8UYB6ekmsQ45q0M/tJDsGaZmbC+l7n57UV8Hl5tHxO9uw==", - "dev": true, - "license": "MIT" - }, - "node_modules/nopt": { - "version": "7.2.1", - "resolved": "https://npm.sinequa.com/nopt/-/nopt-7.2.1.tgz", - "integrity": "sha512-taM24ViiimT/XntxbPyJQzCG+p4EKOpgD3mxFwW38mGjVUrfERQOeY4EDHjdnptttfHuHQXFx+lTP08Q+mLa/w==", - "dev": true, - "license": "ISC", - "dependencies": { - "abbrev": "^2.0.0" - }, - "bin": { - "nopt": "bin/nopt.js" - }, - "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" - } - }, - "node_modules/normalize-package-data": { - "version": "6.0.2", - "resolved": "https://npm.sinequa.com/normalize-package-data/-/normalize-package-data-6.0.2.tgz", - "integrity": "sha512-V6gygoYb/5EmNI+MEGrWkC+e6+Rr7mTmfHrxDbLzxQogBkgzo76rkok0Am6thgSF7Mv2nLOajAJj5vDJZEFn7g==", - "dev": true, - "license": "BSD-2-Clause", - "dependencies": { - "hosted-git-info": "^7.0.0", - "semver": "^7.3.5", - "validate-npm-package-license": "^3.0.4" - }, - "engines": { - "node": "^16.14.0 || >=18.0.0" - } - }, - "node_modules/normalize-path": { - "version": "3.0.0", - "resolved": "https://npm.sinequa.com/normalize-path/-/normalize-path-3.0.0.tgz", - "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/normalize-range": { - "version": "0.1.2", - "resolved": "https://npm.sinequa.com/normalize-range/-/normalize-range-0.1.2.tgz", - "integrity": "sha1-LRDAa9/TEuqXd2laTShDlFa3WUI=", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/npm-bundled": { - "version": "3.0.1", - "resolved": "https://npm.sinequa.com/npm-bundled/-/npm-bundled-3.0.1.tgz", - "integrity": "sha512-+AvaheE/ww1JEwRHOrn4WHNzOxGtVp+adrg2AeZS/7KuxGUYFuBta98wYpfHBbJp6Tg6j1NKSEVHNcfZzJHQwQ==", - "dev": true, - "license": "ISC", - "dependencies": { - "npm-normalize-package-bin": "^3.0.0" - }, - "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" - } - }, - "node_modules/npm-install-checks": { - "version": "6.3.0", - "resolved": "https://npm.sinequa.com/npm-install-checks/-/npm-install-checks-6.3.0.tgz", - "integrity": "sha512-W29RiK/xtpCGqn6f3ixfRYGk+zRyr+Ew9F2E20BfXxT5/euLdA/Nm7fO7OeTGuAmTs30cpgInyJ0cYe708YTZw==", - "dev": true, - "license": "BSD-2-Clause", - "dependencies": { - "semver": "^7.1.1" - }, - "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" - } - }, - "node_modules/npm-normalize-package-bin": { - "version": "3.0.1", - "resolved": "https://npm.sinequa.com/npm-normalize-package-bin/-/npm-normalize-package-bin-3.0.1.tgz", - "integrity": "sha512-dMxCf+zZ+3zeQZXKxmyuCKlIDPGuv8EF940xbkC4kQVDTtqoh6rJFO+JTKSA6/Rwi0getWmtuy4Itup0AMcaDQ==", - "dev": true, - "license": "ISC", - "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" - } - }, - "node_modules/npm-package-arg": { - "version": "11.0.3", - "resolved": "https://npm.sinequa.com/npm-package-arg/-/npm-package-arg-11.0.3.tgz", - "integrity": "sha512-sHGJy8sOC1YraBywpzQlIKBE4pBbGbiF95U6Auspzyem956E0+FtDtsx1ZxlOJkQCZ1AFXAY/yuvtFYrOxF+Bw==", - "dev": true, - "license": "ISC", - "dependencies": { - "hosted-git-info": "^7.0.0", - "proc-log": "^4.0.0", - "semver": "^7.3.5", - "validate-npm-package-name": "^5.0.0" - }, - "engines": { - "node": "^16.14.0 || >=18.0.0" - } - }, - "node_modules/npm-packlist": { - "version": "8.0.2", - "resolved": "https://npm.sinequa.com/npm-packlist/-/npm-packlist-8.0.2.tgz", - "integrity": "sha512-shYrPFIS/JLP4oQmAwDyk5HcyysKW8/JLTEA32S0Z5TzvpaeeX2yMFfoK1fjEBnCBvVyIB/Jj/GBFdm0wsgzbA==", - "dev": true, - "license": "ISC", - "dependencies": { - "ignore-walk": "^6.0.4" - }, - "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" - } - }, - "node_modules/npm-pick-manifest": { - "version": "9.1.0", - "resolved": "https://npm.sinequa.com/npm-pick-manifest/-/npm-pick-manifest-9.1.0.tgz", - "integrity": "sha512-nkc+3pIIhqHVQr085X9d2JzPzLyjzQS96zbruppqC9aZRm/x8xx6xhI98gHtsfELP2bE+loHq8ZaHFHhe+NauA==", - "dev": true, - "license": "ISC", - "dependencies": { - "npm-install-checks": "^6.0.0", - "npm-normalize-package-bin": "^3.0.0", - "npm-package-arg": "^11.0.0", - "semver": "^7.3.5" - }, - "engines": { - "node": "^16.14.0 || >=18.0.0" - } - }, - "node_modules/npm-registry-fetch": { - "version": "17.1.0", - "resolved": "https://npm.sinequa.com/npm-registry-fetch/-/npm-registry-fetch-17.1.0.tgz", - "integrity": "sha512-5+bKQRH0J1xG1uZ1zMNvxW0VEyoNWgJpY9UDuluPFLKDfJ9u2JmmjmTJV1srBGQOROfdBMiVvnH2Zvpbm+xkVA==", - "dev": true, - "license": "ISC", - "dependencies": { - "@npmcli/redact": "^2.0.0", - "jsonparse": "^1.3.1", - "make-fetch-happen": "^13.0.0", - "minipass": "^7.0.2", - "minipass-fetch": "^3.0.0", - "minizlib": "^2.1.2", - "npm-package-arg": "^11.0.0", - "proc-log": "^4.0.0" - }, - "engines": { - "node": "^16.14.0 || >=18.0.0" - } - }, - "node_modules/npm-run-path": { - "version": "5.3.0", - "resolved": "https://npm.sinequa.com/npm-run-path/-/npm-run-path-5.3.0.tgz", - "integrity": "sha512-ppwTtiJZq0O/ai0z7yfudtBpWIoxM8yE6nHi1X47eFR2EWORqfbu6CnPlNsjeN683eT0qG6H/Pyf9fCcvjnnnQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "path-key": "^4.0.0" - }, - "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/npm-run-path/node_modules/path-key": { - "version": "4.0.0", - "resolved": "https://npm.sinequa.com/path-key/-/path-key-4.0.0.tgz", - "integrity": "sha512-haREypq7xkM7ErfgIyA0z+Bj4AGKlMSdlQE2jvJo6huWD1EdkKYV+G/T4nq0YEF2vgTT8kqMFKo1uHn950r4SQ==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/nth-check": { - "version": "2.1.1", - "resolved": "https://npm.sinequa.com/nth-check/-/nth-check-2.1.1.tgz", - "integrity": "sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w==", - "dev": true, - "license": "BSD-2-Clause", - "dependencies": { - "boolbase": "^1.0.0" - }, - "funding": { - "url": "https://github.com/fb55/nth-check?sponsor=1" - } - }, - "node_modules/object-assign": { - "version": "4.1.1", - "resolved": "https://npm.sinequa.com/object-assign/-/object-assign-4.1.1.tgz", - "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/object-hash": { - "version": "3.0.0", - "resolved": "https://npm.sinequa.com/object-hash/-/object-hash-3.0.0.tgz", - "integrity": "sha512-RSn9F68PjH9HqtltsSnqYC1XXoWe9Bju5+213R98cNGttag9q9yAOTzdbsqvIa7aNm5WffBZFpWYr2aWrklWAw==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 6" - } - }, - "node_modules/object-inspect": { - "version": "1.13.4", - "resolved": "https://npm.sinequa.com/object-inspect/-/object-inspect-1.13.4.tgz", - "integrity": "sha512-W67iLl4J2EXEGTbfeHCffrjDfitvLANg0UlX3wFUUSTx92KXRFegMHUVgSqE+wvhAbi4WqjGg9czysTV2Epbew==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/obuf": { - "version": "1.1.2", - "resolved": "https://npm.sinequa.com/obuf/-/obuf-1.1.2.tgz", - "integrity": "sha512-PX1wu0AmAdPqOL1mWhqmlOd8kOIZQwGZw6rh7uby9fTc5lhaOWFLX3I6R1hrF9k3zUY40e6igsLGkDXK92LJNg==", - "dev": true, - "license": "MIT" - }, - "node_modules/on-finished": { - "version": "2.4.1", - "resolved": "https://npm.sinequa.com/on-finished/-/on-finished-2.4.1.tgz", - "integrity": "sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==", - "dev": true, - "license": "MIT", - "dependencies": { - "ee-first": "1.1.1" - }, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/on-headers": { - "version": "1.0.2", - "resolved": "https://npm.sinequa.com/on-headers/-/on-headers-1.0.2.tgz", - "integrity": "sha512-pZAE+FJLoyITytdqK0U5s+FIpjN0JP3OzFi/u8Rx+EV5/W+JTWGXG8xFzevE7AjBfDqHv/8vL8qQsIhHnqRkrA==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/once": { - "version": "1.4.0", - "resolved": "https://npm.sinequa.com/once/-/once-1.4.0.tgz", - "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", - "license": "ISC", - "dependencies": { - "wrappy": "1" - } - }, - "node_modules/onetime": { - "version": "6.0.0", - "resolved": "https://npm.sinequa.com/onetime/-/onetime-6.0.0.tgz", - "integrity": "sha512-1FlR+gjXK7X+AsAHso35MnyN5KqGwJRi/31ft6x0M194ht7S+rWAvd7PHss9xSKMzE0asv1pyIHaJYq+BbacAQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "mimic-fn": "^4.0.0" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/open": { - "version": "10.1.0", - "resolved": "https://npm.sinequa.com/open/-/open-10.1.0.tgz", - "integrity": "sha512-mnkeQ1qP5Ue2wd+aivTD3NHd/lZ96Lu0jgf0pwktLPtx6cTZiH7tyeGRRHs0zX0rbrahXPnXlUnbeXyaBBuIaw==", - "dev": true, - "license": "MIT", - "dependencies": { - "default-browser": "^5.2.1", - "define-lazy-prop": "^3.0.0", - "is-inside-container": "^1.0.0", - "is-wsl": "^3.1.0" - }, - "engines": { - "node": ">=18" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/ora": { - "version": "5.4.1", - "resolved": "https://npm.sinequa.com/ora/-/ora-5.4.1.tgz", - "integrity": "sha512-5b6Y85tPxZZ7QytO+BQzysW31HJku27cRIlkbAXaNx+BdcVi+LlRFmVXzeF6a7JCwJpyw5c4b+YSVImQIrBpuQ==", - "license": "MIT", - "dependencies": { - "bl": "^4.1.0", - "chalk": "^4.1.0", - "cli-cursor": "^3.1.0", - "cli-spinners": "^2.5.0", - "is-interactive": "^1.0.0", - "is-unicode-supported": "^0.1.0", - "log-symbols": "^4.1.0", - "strip-ansi": "^6.0.0", - "wcwidth": "^1.0.1" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/ora/node_modules/cli-cursor": { - "version": "3.1.0", - "resolved": "https://npm.sinequa.com/cli-cursor/-/cli-cursor-3.1.0.tgz", - "integrity": "sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw==", - "license": "MIT", - "dependencies": { - "restore-cursor": "^3.1.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/ora/node_modules/mimic-fn": { - "version": "2.1.0", - "resolved": "https://npm.sinequa.com/mimic-fn/-/mimic-fn-2.1.0.tgz", - "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==", - "license": "MIT", - "engines": { - "node": ">=6" - } - }, - "node_modules/ora/node_modules/onetime": { - "version": "5.1.2", - "resolved": "https://npm.sinequa.com/onetime/-/onetime-5.1.2.tgz", - "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==", - "license": "MIT", - "dependencies": { - "mimic-fn": "^2.1.0" - }, - "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/ora/node_modules/restore-cursor": { - "version": "3.1.0", - "resolved": "https://npm.sinequa.com/restore-cursor/-/restore-cursor-3.1.0.tgz", - "integrity": "sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA==", - "license": "MIT", - "dependencies": { - "onetime": "^5.1.0", - "signal-exit": "^3.0.2" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/ora/node_modules/signal-exit": { - "version": "3.0.7", - "resolved": "https://npm.sinequa.com/signal-exit/-/signal-exit-3.0.7.tgz", - "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==", - "license": "ISC" - }, - "node_modules/ordered-binary": { - "version": "1.5.3", - "resolved": "https://npm.sinequa.com/ordered-binary/-/ordered-binary-1.5.3.tgz", - "integrity": "sha512-oGFr3T+pYdTGJ+YFEILMpS3es+GiIbs9h/XQrclBXUtd44ey7XwfsMzM31f64I1SQOawDoDr/D823kNCADI8TA==", - "dev": true, - "license": "MIT" - }, - "node_modules/os-tmpdir": { - "version": "1.0.2", - "resolved": "https://npm.sinequa.com/os-tmpdir/-/os-tmpdir-1.0.2.tgz", - "integrity": "sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ=", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/p-limit": { - "version": "4.0.0", - "resolved": "https://npm.sinequa.com/p-limit/-/p-limit-4.0.0.tgz", - "integrity": "sha512-5b0R4txpzjPWVw/cXXUResoD4hb6U/x9BH08L7nw+GN1sezDzPdxeRvpc9c433fZhBan/wusjbCsqwqm4EIBIQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "yocto-queue": "^1.0.0" - }, - "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/p-locate": { - "version": "6.0.0", - "resolved": "https://npm.sinequa.com/p-locate/-/p-locate-6.0.0.tgz", - "integrity": "sha512-wPrq66Llhl7/4AGC6I+cqxT07LhXvWL08LNXz1fENOw0Ap4sRZZ/gZpTTJ5jpurzzzfS2W/Ge9BY3LgLjCShcw==", - "dev": true, - "license": "MIT", - "dependencies": { - "p-limit": "^4.0.0" - }, - "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/p-map": { - "version": "4.0.0", - "resolved": "https://npm.sinequa.com/p-map/-/p-map-4.0.0.tgz", - "integrity": "sha512-/bjOqmgETBYB5BoEeGVea8dmvHb2m9GLy1E9W43yeyfP6QQCZGFNa+XRceJEuDB6zqr+gKpIAmlLebMpykw/MQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "aggregate-error": "^3.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/p-retry": { - "version": "6.2.1", - "resolved": "https://npm.sinequa.com/p-retry/-/p-retry-6.2.1.tgz", - "integrity": "sha512-hEt02O4hUct5wtwg4H4KcWgDdm+l1bOaEy/hWzd8xtXB9BqxTWBBhb+2ImAtH4Cv4rPjV76xN3Zumqk3k3AhhQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "@types/retry": "0.12.2", - "is-network-error": "^1.0.0", - "retry": "^0.13.1" - }, - "engines": { - "node": ">=16.17" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/p-retry/node_modules/retry": { - "version": "0.13.1", - "resolved": "https://npm.sinequa.com/retry/-/retry-0.13.1.tgz", - "integrity": "sha512-XQBQ3I8W1Cge0Seh+6gjj03LbmRFWuoszgK9ooCpwYIrhhoO80pfq4cUkU5DkknwfOfFteRwlZ56PYOGYyFWdg==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 4" - } - }, - "node_modules/package-json-from-dist": { - "version": "1.0.1", - "resolved": "https://npm.sinequa.com/package-json-from-dist/-/package-json-from-dist-1.0.1.tgz", - "integrity": "sha512-UEZIS3/by4OC8vL3P2dTXRETpebLI2NiI5vIrjaD/5UtrkFX/tNbwjTSRAGC/+7CAo2pIcBaRgWmcBBHcsaCIw==", - "license": "BlueOak-1.0.0" - }, - "node_modules/pacote": { - "version": "18.0.6", - "resolved": "https://npm.sinequa.com/pacote/-/pacote-18.0.6.tgz", - "integrity": "sha512-+eK3G27SMwsB8kLIuj4h1FUhHtwiEUo21Tw8wNjmvdlpOEr613edv+8FUsTj/4F/VN5ywGE19X18N7CC2EJk6A==", - "dev": true, - "license": "ISC", - "dependencies": { - "@npmcli/git": "^5.0.0", - "@npmcli/installed-package-contents": "^2.0.1", - "@npmcli/package-json": "^5.1.0", - "@npmcli/promise-spawn": "^7.0.0", - "@npmcli/run-script": "^8.0.0", - "cacache": "^18.0.0", - "fs-minipass": "^3.0.0", - "minipass": "^7.0.2", - "npm-package-arg": "^11.0.0", - "npm-packlist": "^8.0.0", - "npm-pick-manifest": "^9.0.0", - "npm-registry-fetch": "^17.0.0", - "proc-log": "^4.0.0", - "promise-retry": "^2.0.1", - "sigstore": "^2.2.0", - "ssri": "^10.0.0", - "tar": "^6.1.11" - }, - "bin": { - "pacote": "bin/index.js" - }, - "engines": { - "node": "^16.14.0 || >=18.0.0" - } - }, - "node_modules/parent-module": { - "version": "1.0.1", - "resolved": "https://npm.sinequa.com/parent-module/-/parent-module-1.0.1.tgz", - "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==", - "license": "MIT", - "dependencies": { - "callsites": "^3.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/parse-json": { - "version": "5.2.0", - "resolved": "https://npm.sinequa.com/parse-json/-/parse-json-5.2.0.tgz", - "integrity": "sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==", - "license": "MIT", - "dependencies": { - "@babel/code-frame": "^7.0.0", - "error-ex": "^1.3.1", - "json-parse-even-better-errors": "^2.3.0", - "lines-and-columns": "^1.1.6" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/parse-json/node_modules/json-parse-even-better-errors": { - "version": "2.3.1", - "resolved": "https://npm.sinequa.com/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz", - "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==", - "license": "MIT" - }, - "node_modules/parse-node-version": { - "version": "1.0.1", - "resolved": "https://npm.sinequa.com/parse-node-version/-/parse-node-version-1.0.1.tgz", - "integrity": "sha512-3YHlOa/JgH6Mnpr05jP9eDG254US9ek25LyIxZlDItp2iJtwyaXQb57lBYLdT3MowkUFYEV2XXNAYIPlESvJlA==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 0.10" - } - }, - "node_modules/parse5": { - "version": "7.2.1", - "resolved": "https://npm.sinequa.com/parse5/-/parse5-7.2.1.tgz", - "integrity": "sha512-BuBYQYlv1ckiPdQi/ohiivi9Sagc9JG+Ozs0r7b/0iK3sKmrb0b9FdWdBbOdx6hBCM/F9Ir82ofnBhtZOjCRPQ==", - "devOptional": true, - "license": "MIT", - "dependencies": { - "entities": "^4.5.0" - }, - "funding": { - "url": "https://github.com/inikulin/parse5?sponsor=1" - } - }, - "node_modules/parse5-html-rewriting-stream": { - "version": "7.0.0", - "resolved": "https://npm.sinequa.com/parse5-html-rewriting-stream/-/parse5-html-rewriting-stream-7.0.0.tgz", - "integrity": "sha512-mazCyGWkmCRWDI15Zp+UiCqMp/0dgEmkZRvhlsqqKYr4SsVm/TvnSpD9fCvqCA2zoWJcfRym846ejWBBHRiYEg==", - "dev": true, - "license": "MIT", - "dependencies": { - "entities": "^4.3.0", - "parse5": "^7.0.0", - "parse5-sax-parser": "^7.0.0" - }, - "funding": { - "url": "https://github.com/inikulin/parse5?sponsor=1" - } - }, - "node_modules/parse5-sax-parser": { - "version": "7.0.0", - "resolved": "https://npm.sinequa.com/parse5-sax-parser/-/parse5-sax-parser-7.0.0.tgz", - "integrity": "sha512-5A+v2SNsq8T6/mG3ahcz8ZtQ0OUFTatxPbeidoMB7tkJSGDY3tdfl4MHovtLQHkEn5CGxijNWRQHhRQ6IRpXKg==", - "dev": true, - "license": "MIT", - "dependencies": { - "parse5": "^7.0.0" - }, - "funding": { - "url": "https://github.com/inikulin/parse5?sponsor=1" - } - }, - "node_modules/parseurl": { - "version": "1.3.3", - "resolved": "https://npm.sinequa.com/parseurl/-/parseurl-1.3.3.tgz", - "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/path-exists": { - "version": "5.0.0", - "resolved": "https://npm.sinequa.com/path-exists/-/path-exists-5.0.0.tgz", - "integrity": "sha512-RjhtfwJOxzcFmNOi6ltcbcu4Iu+FL3zEj83dk4kAS+fVpTxXLO1b38RvJgT/0QwvV/L3aY9TAnyv0EOqW4GoMQ==", - "dev": true, - "license": "MIT", - "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" - } - }, - "node_modules/path-key": { - "version": "3.1.1", - "resolved": "https://npm.sinequa.com/path-key/-/path-key-3.1.1.tgz", - "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/path-parse": { - "version": "1.0.7", - "resolved": "https://npm.sinequa.com/path-parse/-/path-parse-1.0.7.tgz", - "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", - "dev": true, - "license": "MIT" - }, - "node_modules/path-scurry": { - "version": "1.11.1", - "resolved": "https://npm.sinequa.com/path-scurry/-/path-scurry-1.11.1.tgz", - "integrity": "sha512-Xa4Nw17FS9ApQFJ9umLiJS4orGjm7ZzwUrwamcGQuHSzDyth9boKDaycYdDcZDuqYATXw4HFXgaqWTctW/v1HA==", - "license": "BlueOak-1.0.0", - "dependencies": { - "lru-cache": "^10.2.0", - "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0" - }, - "engines": { - "node": ">=16 || 14 >=14.18" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/path-scurry/node_modules/lru-cache": { - "version": "10.4.3", - "resolved": "https://npm.sinequa.com/lru-cache/-/lru-cache-10.4.3.tgz", - "integrity": "sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==", - "license": "ISC" - }, - "node_modules/path-to-regexp": { - "version": "0.1.12", - "resolved": "https://npm.sinequa.com/path-to-regexp/-/path-to-regexp-0.1.12.tgz", - "integrity": "sha512-RA1GjUVMnvYFxuqovrEqZoxxW5NUZqbwKtYz/Tt7nXerk0LbLblQmrsgdeOxV5SFHf0UDggjS/bSeOZwt1pmEQ==", - "dev": true, - "license": "MIT" - }, - "node_modules/path-type": { - "version": "4.0.0", - "resolved": "https://npm.sinequa.com/path-type/-/path-type-4.0.0.tgz", - "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==", - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/picocolors": { - "version": "1.1.1", - "resolved": "https://npm.sinequa.com/picocolors/-/picocolors-1.1.1.tgz", - "integrity": "sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==", - "license": "ISC" - }, - "node_modules/picomatch": { - "version": "4.0.2", - "resolved": "https://npm.sinequa.com/picomatch/-/picomatch-4.0.2.tgz", - "integrity": "sha512-M7BAV6Rlcy5u+m6oPhAPFgJTzAioX/6B0DxyvDlo9l8+T3nLKbrczg2WLUyzd45L8RqfUMyGPzekbMvX2Ldkwg==", - "license": "MIT", - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/jonschlinkert" - } - }, - "node_modules/pidtree": { - "version": "0.6.0", - "resolved": "https://npm.sinequa.com/pidtree/-/pidtree-0.6.0.tgz", - "integrity": "sha512-eG2dWTVw5bzqGRztnHExczNxt5VGsE6OwTeCG3fdUf9KBsZzO3R5OIIIzWR+iZA0NtZ+RDVdaoE2dK1cn6jH4g==", - "dev": true, - "license": "MIT", - "bin": { - "pidtree": "bin/pidtree.js" - }, - "engines": { - "node": ">=0.10" - } - }, - "node_modules/pify": { - "version": "4.0.1", - "resolved": "https://npm.sinequa.com/pify/-/pify-4.0.1.tgz", - "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==", - "dev": true, - "license": "MIT", - "optional": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/pirates": { - "version": "4.0.6", - "resolved": "https://npm.sinequa.com/pirates/-/pirates-4.0.6.tgz", - "integrity": "sha512-saLsH7WeYYPiD25LDuLRRY/i+6HaPYr6G1OUlN39otzkSTxKnubR9RTxS3/Kk50s1g2JTgFwWQDQyplC5/SHZg==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 6" - } - }, - "node_modules/piscina": { - "version": "4.6.1", - "resolved": "https://npm.sinequa.com/piscina/-/piscina-4.6.1.tgz", - "integrity": "sha512-z30AwWGtQE+Apr+2WBZensP2lIvwoaMcOPkQlIEmSGMJNUvaYACylPYrQM6wSdUNJlnDVMSpLv7xTMJqlVshOA==", - "dev": true, - "license": "MIT", - "optionalDependencies": { - "nice-napi": "^1.0.2" - } - }, - "node_modules/pkg-dir": { - "version": "7.0.0", - "resolved": "https://npm.sinequa.com/pkg-dir/-/pkg-dir-7.0.0.tgz", - "integrity": "sha512-Ie9z/WINcxxLp27BKOCHGde4ITq9UklYKDzVo1nhk5sqGEXU3FpkwP5GM2voTGJkGd9B3Otl+Q4uwSOeSUtOBA==", - "dev": true, - "license": "MIT", - "dependencies": { - "find-up": "^6.3.0" - }, - "engines": { - "node": ">=14.16" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/postcss": { - "version": "8.5.1", - "resolved": "https://npm.sinequa.com/postcss/-/postcss-8.5.1.tgz", - "integrity": "sha512-6oz2beyjc5VMn/KV1pPw8fliQkhBXrVn1Z3TVyqZxU8kZpzEKhBdmCFqI6ZbmGtamQvQGuU1sgPTk8ZrXDD7jQ==", - "dev": true, - "funding": [ - { - "type": "opencollective", - "url": "https://opencollective.com/postcss/" - }, - { - "type": "tidelift", - "url": "https://tidelift.com/funding/github/npm/postcss" - }, - { - "type": "github", - "url": "https://github.com/sponsors/ai" - } - ], - "license": "MIT", - "dependencies": { - "nanoid": "^3.3.8", - "picocolors": "^1.1.1", - "source-map-js": "^1.2.1" - }, - "engines": { - "node": "^10 || ^12 || >=14" - } - }, - "node_modules/postcss-import": { - "version": "15.1.0", - "resolved": "https://npm.sinequa.com/postcss-import/-/postcss-import-15.1.0.tgz", - "integrity": "sha512-hpr+J05B2FVYUAXHeK1YyI267J/dDDhMU6B6civm8hSY1jYJnBXxzKDKDswzJmtLHryrjhnDjqqp/49t8FALew==", - "dev": true, - "license": "MIT", - "dependencies": { - "postcss-value-parser": "^4.0.0", - "read-cache": "^1.0.0", - "resolve": "^1.1.7" - }, - "engines": { - "node": ">=14.0.0" - }, - "peerDependencies": { - "postcss": "^8.0.0" - } - }, - "node_modules/postcss-js": { - "version": "4.0.1", - "resolved": "https://npm.sinequa.com/postcss-js/-/postcss-js-4.0.1.tgz", - "integrity": "sha512-dDLF8pEO191hJMtlHFPRa8xsizHaM82MLfNkUHdUtVEV3tgTp5oj+8qbEqYM57SLfc74KSbw//4SeJma2LRVIw==", - "dev": true, - "license": "MIT", - "dependencies": { - "camelcase-css": "^2.0.1" - }, - "engines": { - "node": "^12 || ^14 || >= 16" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/postcss/" - }, - "peerDependencies": { - "postcss": "^8.4.21" - } - }, - "node_modules/postcss-load-config": { - "version": "4.0.2", - "resolved": "https://npm.sinequa.com/postcss-load-config/-/postcss-load-config-4.0.2.tgz", - "integrity": "sha512-bSVhyJGL00wMVoPUzAVAnbEoWyqRxkjv64tUl427SKnPrENtq6hJwUojroMz2VB+Q1edmi4IfrAPpami5VVgMQ==", - "dev": true, - "funding": [ - { - "type": "opencollective", - "url": "https://opencollective.com/postcss/" - }, - { - "type": "github", - "url": "https://github.com/sponsors/ai" - } - ], - "license": "MIT", - "dependencies": { - "lilconfig": "^3.0.0", - "yaml": "^2.3.4" - }, - "engines": { - "node": ">= 14" - }, - "peerDependencies": { - "postcss": ">=8.0.9", - "ts-node": ">=9.0.0" - }, - "peerDependenciesMeta": { - "postcss": { - "optional": true - }, - "ts-node": { - "optional": true - } - } - }, - "node_modules/postcss-loader": { - "version": "8.1.1", - "resolved": "https://npm.sinequa.com/postcss-loader/-/postcss-loader-8.1.1.tgz", - "integrity": "sha512-0IeqyAsG6tYiDRCYKQJLAmgQr47DX6N7sFSWvQxt6AcupX8DIdmykuk/o/tx0Lze3ErGHJEp5OSRxrelC6+NdQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "cosmiconfig": "^9.0.0", - "jiti": "^1.20.0", - "semver": "^7.5.4" - }, - "engines": { - "node": ">= 18.12.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" - }, - "peerDependencies": { - "@rspack/core": "0.x || 1.x", - "postcss": "^7.0.0 || ^8.0.1", - "webpack": "^5.0.0" - }, - "peerDependenciesMeta": { - "@rspack/core": { - "optional": true - }, - "webpack": { - "optional": true - } - } - }, - "node_modules/postcss-loader/node_modules/cosmiconfig": { - "version": "9.0.0", - "resolved": "https://npm.sinequa.com/cosmiconfig/-/cosmiconfig-9.0.0.tgz", - "integrity": "sha512-itvL5h8RETACmOTFc4UfIyB2RfEHi71Ax6E/PivVxq9NseKbOWpeyHEOIbmAw1rs8Ak0VursQNww7lf7YtUwzg==", - "dev": true, - "license": "MIT", - "dependencies": { - "env-paths": "^2.2.1", - "import-fresh": "^3.3.0", - "js-yaml": "^4.1.0", - "parse-json": "^5.2.0" - }, - "engines": { - "node": ">=14" - }, - "funding": { - "url": "https://github.com/sponsors/d-fischer" - }, - "peerDependencies": { - "typescript": ">=4.9.5" - }, - "peerDependenciesMeta": { - "typescript": { - "optional": true - } - } - }, - "node_modules/postcss-media-query-parser": { - "version": "0.2.3", - "resolved": "https://npm.sinequa.com/postcss-media-query-parser/-/postcss-media-query-parser-0.2.3.tgz", - "integrity": "sha512-3sOlxmbKcSHMjlUXQZKQ06jOswE7oVkXPxmZdoB1r5l0q6gTFTQSHxNxOrCccElbW7dxNytifNEo8qidX2Vsig==", - "dev": true, - "license": "MIT" - }, - "node_modules/postcss-modules-extract-imports": { - "version": "3.1.0", - "resolved": "https://npm.sinequa.com/postcss-modules-extract-imports/-/postcss-modules-extract-imports-3.1.0.tgz", - "integrity": "sha512-k3kNe0aNFQDAZGbin48pL2VNidTF0w4/eASDsxlyspobzU3wZQLOGj7L9gfRe0Jo9/4uud09DsjFNH7winGv8Q==", - "dev": true, - "license": "ISC", - "engines": { - "node": "^10 || ^12 || >= 14" - }, - "peerDependencies": { - "postcss": "^8.1.0" - } - }, - "node_modules/postcss-modules-local-by-default": { - "version": "4.2.0", - "resolved": "https://npm.sinequa.com/postcss-modules-local-by-default/-/postcss-modules-local-by-default-4.2.0.tgz", - "integrity": "sha512-5kcJm/zk+GJDSfw+V/42fJ5fhjL5YbFDl8nVdXkJPLLW+Vf9mTD5Xe0wqIaDnLuL2U6cDNpTr+UQ+v2HWIBhzw==", - "dev": true, - "license": "MIT", - "dependencies": { - "icss-utils": "^5.0.0", - "postcss-selector-parser": "^7.0.0", - "postcss-value-parser": "^4.1.0" - }, - "engines": { - "node": "^10 || ^12 || >= 14" - }, - "peerDependencies": { - "postcss": "^8.1.0" - } - }, - "node_modules/postcss-modules-scope": { - "version": "3.2.1", - "resolved": "https://npm.sinequa.com/postcss-modules-scope/-/postcss-modules-scope-3.2.1.tgz", - "integrity": "sha512-m9jZstCVaqGjTAuny8MdgE88scJnCiQSlSrOWcTQgM2t32UBe+MUmFSO5t7VMSfAf/FJKImAxBav8ooCHJXCJA==", - "dev": true, - "license": "ISC", - "dependencies": { - "postcss-selector-parser": "^7.0.0" - }, - "engines": { - "node": "^10 || ^12 || >= 14" - }, - "peerDependencies": { - "postcss": "^8.1.0" - } - }, - "node_modules/postcss-modules-values": { - "version": "4.0.0", - "resolved": "https://npm.sinequa.com/postcss-modules-values/-/postcss-modules-values-4.0.0.tgz", - "integrity": "sha512-RDxHkAiEGI78gS2ofyvCsu7iycRv7oqw5xMWn9iMoR0N/7mf9D50ecQqUo5BZ9Zh2vH4bCUR/ktCqbB9m8vJjQ==", - "dev": true, - "license": "ISC", - "dependencies": { - "icss-utils": "^5.0.0" - }, - "engines": { - "node": "^10 || ^12 || >= 14" - }, - "peerDependencies": { - "postcss": "^8.1.0" - } - }, - "node_modules/postcss-nested": { - "version": "6.2.0", - "resolved": "https://npm.sinequa.com/postcss-nested/-/postcss-nested-6.2.0.tgz", - "integrity": "sha512-HQbt28KulC5AJzG+cZtj9kvKB93CFCdLvog1WFLf1D+xmMvPGlBstkpTEZfK5+AN9hfJocyBFCNiqyS48bpgzQ==", - "dev": true, - "funding": [ - { - "type": "opencollective", - "url": "https://opencollective.com/postcss/" - }, - { - "type": "github", - "url": "https://github.com/sponsors/ai" - } - ], - "license": "MIT", - "dependencies": { - "postcss-selector-parser": "^6.1.1" - }, - "engines": { - "node": ">=12.0" - }, - "peerDependencies": { - "postcss": "^8.2.14" - } - }, - "node_modules/postcss-nested/node_modules/postcss-selector-parser": { - "version": "6.1.2", - "resolved": "https://npm.sinequa.com/postcss-selector-parser/-/postcss-selector-parser-6.1.2.tgz", - "integrity": "sha512-Q8qQfPiZ+THO/3ZrOrO0cJJKfpYCagtMUkXbnEfmgUjwXg6z/WBeOyS9APBBPCTSiDV+s4SwQGu8yFsiMRIudg==", - "dev": true, - "license": "MIT", - "dependencies": { - "cssesc": "^3.0.0", - "util-deprecate": "^1.0.2" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/postcss-selector-parser": { - "version": "7.0.0", - "resolved": "https://npm.sinequa.com/postcss-selector-parser/-/postcss-selector-parser-7.0.0.tgz", - "integrity": "sha512-9RbEr1Y7FFfptd/1eEdntyjMwLeghW1bHX9GWjXo19vx4ytPQhANltvVxDggzJl7mnWM+dX28kb6cyS/4iQjlQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "cssesc": "^3.0.0", - "util-deprecate": "^1.0.2" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/postcss-value-parser": { - "version": "4.2.0", - "resolved": "https://npm.sinequa.com/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz", - "integrity": "sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==", - "dev": true, - "license": "MIT" - }, - "node_modules/prettier": { - "version": "3.4.2", - "resolved": "https://npm.sinequa.com/prettier/-/prettier-3.4.2.tgz", - "integrity": "sha512-e9MewbtFo+Fevyuxn/4rrcDAaq0IYxPGLvObpQjiZBMAzB9IGmzlnG9RZy3FFas+eBMu2vA0CszMeduow5dIuQ==", - "dev": true, - "license": "MIT", - "bin": { - "prettier": "bin/prettier.cjs" - }, - "engines": { - "node": ">=14" - }, - "funding": { - "url": "https://github.com/prettier/prettier?sponsor=1" - } - }, - "node_modules/prettier-plugin-package": { - "version": "1.4.0", - "resolved": "https://npm.sinequa.com/prettier-plugin-package/-/prettier-plugin-package-1.4.0.tgz", - "integrity": "sha512-jy8UjgHadyznzWfunyjPQPqE2Y92TVF3Q0O829X6pk/ARoKn0vtSu+mtKIsmikZYb2N50mV6vRIqCf19XdOdIg==", - "dev": true, - "license": "MPL-2.0", - "engines": { - "node": ">=10.13.0" - }, - "peerDependencies": { - "prettier": "^2.0.0 || ^3.0.0" - } - }, - "node_modules/prettier-plugin-tailwindcss": { - "version": "0.6.11", - "resolved": "https://npm.sinequa.com/prettier-plugin-tailwindcss/-/prettier-plugin-tailwindcss-0.6.11.tgz", - "integrity": "sha512-YxaYSIvZPAqhrrEpRtonnrXdghZg1irNg4qrjboCXrpybLWVs55cW2N3juhspVJiO0JBvYJT8SYsJpc8OQSnsA==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=14.21.3" - }, - "peerDependencies": { - "@ianvs/prettier-plugin-sort-imports": "*", - "@prettier/plugin-pug": "*", - "@shopify/prettier-plugin-liquid": "*", - "@trivago/prettier-plugin-sort-imports": "*", - "@zackad/prettier-plugin-twig": "*", - "prettier": "^3.0", - "prettier-plugin-astro": "*", - "prettier-plugin-css-order": "*", - "prettier-plugin-import-sort": "*", - "prettier-plugin-jsdoc": "*", - "prettier-plugin-marko": "*", - "prettier-plugin-multiline-arrays": "*", - "prettier-plugin-organize-attributes": "*", - "prettier-plugin-organize-imports": "*", - "prettier-plugin-sort-imports": "*", - "prettier-plugin-style-order": "*", - "prettier-plugin-svelte": "*" - }, - "peerDependenciesMeta": { - "@ianvs/prettier-plugin-sort-imports": { - "optional": true - }, - "@prettier/plugin-pug": { - "optional": true - }, - "@shopify/prettier-plugin-liquid": { - "optional": true - }, - "@trivago/prettier-plugin-sort-imports": { - "optional": true - }, - "@zackad/prettier-plugin-twig": { - "optional": true - }, - "prettier-plugin-astro": { - "optional": true - }, - "prettier-plugin-css-order": { - "optional": true - }, - "prettier-plugin-import-sort": { - "optional": true - }, - "prettier-plugin-jsdoc": { - "optional": true - }, - "prettier-plugin-marko": { - "optional": true - }, - "prettier-plugin-multiline-arrays": { - "optional": true - }, - "prettier-plugin-organize-attributes": { - "optional": true - }, - "prettier-plugin-organize-imports": { - "optional": true - }, - "prettier-plugin-sort-imports": { - "optional": true - }, - "prettier-plugin-style-order": { - "optional": true - }, - "prettier-plugin-svelte": { - "optional": true - } - } - }, - "node_modules/proc-log": { - "version": "4.2.0", - "resolved": "https://npm.sinequa.com/proc-log/-/proc-log-4.2.0.tgz", - "integrity": "sha512-g8+OnU/L2v+wyiVK+D5fA34J7EH8jZ8DDlvwhRCMxmMj7UCBvxiO1mGeN+36JXIKF4zevU4kRBd8lVgG9vLelA==", - "dev": true, - "license": "ISC", - "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" - } - }, - "node_modules/process-nextick-args": { - "version": "2.0.1", - "resolved": "https://npm.sinequa.com/process-nextick-args/-/process-nextick-args-2.0.1.tgz", - "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==", - "dev": true, - "license": "MIT" - }, - "node_modules/promise-inflight": { - "version": "1.0.1", - "resolved": "https://npm.sinequa.com/promise-inflight/-/promise-inflight-1.0.1.tgz", - "integrity": "sha1-mEcocL8igTL8vdhoEputEsPAKeM=", - "dev": true, - "license": "ISC" - }, - "node_modules/promise-retry": { - "version": "2.0.1", - "resolved": "https://npm.sinequa.com/promise-retry/-/promise-retry-2.0.1.tgz", - "integrity": "sha512-y+WKFlBR8BGXnsNlIHFGPZmyDf3DFMoLhaflAnyZgV6rG6xu+JwesTo2Q9R6XwYmtmwAFCkAk3e35jEdoeh/3g==", - "dev": true, - "license": "MIT", - "dependencies": { - "err-code": "^2.0.2", - "retry": "^0.12.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/proxy-addr": { - "version": "2.0.7", - "resolved": "https://npm.sinequa.com/proxy-addr/-/proxy-addr-2.0.7.tgz", - "integrity": "sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==", - "dev": true, - "license": "MIT", - "dependencies": { - "forwarded": "0.2.0", - "ipaddr.js": "1.9.1" - }, - "engines": { - "node": ">= 0.10" - } - }, - "node_modules/proxy-addr/node_modules/ipaddr.js": { - "version": "1.9.1", - "resolved": "https://npm.sinequa.com/ipaddr.js/-/ipaddr.js-1.9.1.tgz", - "integrity": "sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 0.10" - } - }, - "node_modules/prr": { - "version": "1.0.1", - "resolved": "https://npm.sinequa.com/prr/-/prr-1.0.1.tgz", - "integrity": "sha1-0/wRS6BplaRexok/SEzrHXj19HY=", - "dev": true, - "license": "MIT", - "optional": true - }, - "node_modules/psl": { - "version": "1.15.0", - "resolved": "https://npm.sinequa.com/psl/-/psl-1.15.0.tgz", - "integrity": "sha512-JZd3gMVBAVQkSs6HdNZo9Sdo0LNcQeMNP3CozBJb3JYC/QUYZTnKxP+f8oWRX4rHP5EurWxqAHTSwUCjlNKa1w==", - "license": "MIT", - "dependencies": { - "punycode": "^2.3.1" - }, - "funding": { - "url": "https://github.com/sponsors/lupomontero" - } - }, - "node_modules/punycode": { - "version": "2.3.1", - "resolved": "https://npm.sinequa.com/punycode/-/punycode-2.3.1.tgz", - "integrity": "sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==", - "license": "MIT", - "engines": { - "node": ">=6" - } - }, - "node_modules/qs": { - "version": "6.13.0", - "resolved": "https://npm.sinequa.com/qs/-/qs-6.13.0.tgz", - "integrity": "sha512-+38qI9SOr8tfZ4QmJNplMUxqjbe7LKvvZgWdExBOmd+egZTtjLB67Gu0HRX3u/XOq7UU2Nx6nsjvS16Z9uwfpg==", - "dev": true, - "license": "BSD-3-Clause", - "dependencies": { - "side-channel": "^1.0.6" - }, - "engines": { - "node": ">=0.6" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/querystringify": { - "version": "2.2.0", - "resolved": "https://npm.sinequa.com/querystringify/-/querystringify-2.2.0.tgz", - "integrity": "sha512-FIqgj2EUvTa7R50u0rGsyTftzjYmv/a3hO345bZNrqabNqjtgiDMgmo4mkUjd+nzU5oF3dClKqFIPUKybUyqoQ==", - "license": "MIT" - }, - "node_modules/queue-microtask": { - "version": "1.2.3", - "resolved": "https://npm.sinequa.com/queue-microtask/-/queue-microtask-1.2.3.tgz", - "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], - "license": "MIT" - }, - "node_modules/randombytes": { - "version": "2.1.0", - "resolved": "https://npm.sinequa.com/randombytes/-/randombytes-2.1.0.tgz", - "integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "safe-buffer": "^5.1.0" - } - }, - "node_modules/range-parser": { - "version": "1.2.1", - "resolved": "https://npm.sinequa.com/range-parser/-/range-parser-1.2.1.tgz", - "integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/raw-body": { - "version": "2.5.2", - "resolved": "https://npm.sinequa.com/raw-body/-/raw-body-2.5.2.tgz", - "integrity": "sha512-8zGqypfENjCIqGhgXToC8aB2r7YrBX+AQAfIPs/Mlk+BtPTztOvTS01NRW/3Eh60J+a48lt8qsCzirQ6loCVfA==", - "dev": true, - "license": "MIT", - "dependencies": { - "bytes": "3.1.2", - "http-errors": "2.0.0", - "iconv-lite": "0.4.24", - "unpipe": "1.0.0" - }, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/read-cache": { - "version": "1.0.0", - "resolved": "https://npm.sinequa.com/read-cache/-/read-cache-1.0.0.tgz", - "integrity": "sha1-5mTvMRYRZsl1HNvo28+GtftY93Q=", - "dev": true, - "license": "MIT", - "dependencies": { - "pify": "^2.3.0" - } - }, - "node_modules/read-cache/node_modules/pify": { - "version": "2.3.0", - "resolved": "https://npm.sinequa.com/pify/-/pify-2.3.0.tgz", - "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/readable-stream": { - "version": "3.6.2", - "resolved": "https://npm.sinequa.com/readable-stream/-/readable-stream-3.6.2.tgz", - "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==", - "license": "MIT", - "dependencies": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/readdirp": { - "version": "4.1.1", - "resolved": "https://npm.sinequa.com/readdirp/-/readdirp-4.1.1.tgz", - "integrity": "sha512-h80JrZu/MHUZCyHu5ciuoI0+WxsCxzxJTILn6Fs8rxSnFPh+UVHYfeIxK1nVGugMqkfC4vJcBOYbkfkwYK0+gw==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 14.18.0" - }, - "funding": { - "type": "individual", - "url": "https://paulmillr.com/funding/" - } - }, - "node_modules/reflect-metadata": { - "version": "0.2.2", - "resolved": "https://npm.sinequa.com/reflect-metadata/-/reflect-metadata-0.2.2.tgz", - "integrity": "sha512-urBwgfrvVP/eAyXx4hluJivBKzuEbSQs9rKWCrCkbSxNv8mxPcUZKeuoF3Uy4mJl3Lwprp6yy5/39VWigZ4K6Q==", - "dev": true, - "license": "Apache-2.0" - }, - "node_modules/regenerate": { - "version": "1.4.2", - "resolved": "https://npm.sinequa.com/regenerate/-/regenerate-1.4.2.tgz", - "integrity": "sha512-zrceR/XhGYU/d/opr2EKO7aRHUeiBI8qjtfHqADTwZd6Szfy16la6kqD0MIUs5z5hx6AaKa+PixpPrR289+I0A==", - "dev": true, - "license": "MIT" - }, - "node_modules/regenerate-unicode-properties": { - "version": "10.2.0", - "resolved": "https://npm.sinequa.com/regenerate-unicode-properties/-/regenerate-unicode-properties-10.2.0.tgz", - "integrity": "sha512-DqHn3DwbmmPVzeKj9woBadqmXxLvQoQIwu7nopMc72ztvxVmVk2SBhSnx67zuye5TP+lJsb/TBQsjLKhnDf3MA==", - "dev": true, - "license": "MIT", - "dependencies": { - "regenerate": "^1.4.2" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/regenerator-runtime": { - "version": "0.14.1", - "resolved": "https://npm.sinequa.com/regenerator-runtime/-/regenerator-runtime-0.14.1.tgz", - "integrity": "sha512-dYnhHh0nJoMfnkZs6GmmhFknAGRrLznOu5nc9ML+EJxGvrx6H7teuevqVqCuPcPK//3eDrrjQhehXVx9cnkGdw==", - "dev": true, - "license": "MIT" - }, - "node_modules/regenerator-transform": { - "version": "0.15.2", - "resolved": "https://npm.sinequa.com/regenerator-transform/-/regenerator-transform-0.15.2.tgz", - "integrity": "sha512-hfMp2BoF0qOk3uc5V20ALGDS2ddjQaLrdl7xrGXvAIow7qeWRM2VA2HuCHkUKk9slq3VwEwLNK3DFBqDfPGYtg==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/runtime": "^7.8.4" - } - }, - "node_modules/regex-parser": { - "version": "2.3.0", - "resolved": "https://npm.sinequa.com/regex-parser/-/regex-parser-2.3.0.tgz", - "integrity": "sha512-TVILVSz2jY5D47F4mA4MppkBrafEaiUWJO/TcZHEIuI13AqoZMkK1WMA4Om1YkYbTx+9Ki1/tSUXbceyr9saRg==", - "dev": true, - "license": "MIT" - }, - "node_modules/regexpu-core": { - "version": "6.2.0", - "resolved": "https://npm.sinequa.com/regexpu-core/-/regexpu-core-6.2.0.tgz", - "integrity": "sha512-H66BPQMrv+V16t8xtmq+UC0CBpiTBA60V8ibS1QVReIp8T1z8hwFxqcGzm9K6lgsN7sB5edVH8a+ze6Fqm4weA==", - "dev": true, - "license": "MIT", - "dependencies": { - "regenerate": "^1.4.2", - "regenerate-unicode-properties": "^10.2.0", - "regjsgen": "^0.8.0", - "regjsparser": "^0.12.0", - "unicode-match-property-ecmascript": "^2.0.0", - "unicode-match-property-value-ecmascript": "^2.1.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/regjsgen": { - "version": "0.8.0", - "resolved": "https://npm.sinequa.com/regjsgen/-/regjsgen-0.8.0.tgz", - "integrity": "sha512-RvwtGe3d7LvWiDQXeQw8p5asZUmfU1G/l6WbUXeHta7Y2PEIvBTwH6E2EfmYUK8pxcxEdEmaomqyp0vZZ7C+3Q==", - "dev": true, - "license": "MIT" - }, - "node_modules/regjsparser": { - "version": "0.12.0", - "resolved": "https://npm.sinequa.com/regjsparser/-/regjsparser-0.12.0.tgz", - "integrity": "sha512-cnE+y8bz4NhMjISKbgeVJtqNbtf5QpjZP+Bslo+UqkIt9QPnX9q095eiRRASJG1/tz6dlNr6Z5NsBiWYokp6EQ==", - "dev": true, - "license": "BSD-2-Clause", - "dependencies": { - "jsesc": "~3.0.2" - }, - "bin": { - "regjsparser": "bin/parser" - } - }, - "node_modules/regjsparser/node_modules/jsesc": { - "version": "3.0.2", - "resolved": "https://npm.sinequa.com/jsesc/-/jsesc-3.0.2.tgz", - "integrity": "sha512-xKqzzWXDttJuOcawBt4KnKHHIf5oQ/Cxax+0PWFG+DFDgHNAdi+TXECADI+RYiFUMmx8792xsMbbgXj4CwnP4g==", - "dev": true, - "license": "MIT", - "bin": { - "jsesc": "bin/jsesc" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/replace-in-file": { - "version": "7.2.0", - "resolved": "https://npm.sinequa.com/replace-in-file/-/replace-in-file-7.2.0.tgz", - "integrity": "sha512-CiLXVop3o8/h2Kd1PwKPPimmS9wUV0Ki6Fl8+1ITD35nB3Gl/PrW5IONpTE0AXk0z4v8WYcpEpdeZqMXvSnWpg==", - "license": "MIT", - "dependencies": { - "chalk": "^4.1.2", - "glob": "^8.1.0", - "yargs": "^17.7.2" - }, - "bin": { - "replace-in-file": "bin/cli.js" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/replace-in-file/node_modules/glob": { - "version": "8.1.0", - "resolved": "https://npm.sinequa.com/glob/-/glob-8.1.0.tgz", - "integrity": "sha512-r8hpEjiQEYlF2QU0df3dS+nxxSIreXQS1qRhMJM0Q5NDdR386C7jb7Hwwod8Fgiuex+k0GFjgft18yvxm5XoCQ==", - "license": "ISC", - "dependencies": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^5.0.1", - "once": "^1.3.0" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/replace-in-file/node_modules/minimatch": { - "version": "5.1.6", - "resolved": "https://npm.sinequa.com/minimatch/-/minimatch-5.1.6.tgz", - "integrity": "sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==", - "license": "ISC", - "dependencies": { - "brace-expansion": "^2.0.1" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/require-directory": { - "version": "2.1.1", - "resolved": "https://npm.sinequa.com/require-directory/-/require-directory-2.1.1.tgz", - "integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I=", - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/require-from-string": { - "version": "2.0.2", - "resolved": "https://npm.sinequa.com/require-from-string/-/require-from-string-2.0.2.tgz", - "integrity": "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==", - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/requires-port": { - "version": "1.0.0", - "resolved": "https://npm.sinequa.com/requires-port/-/requires-port-1.0.0.tgz", - "integrity": "sha1-kl0mAdOaxIXgkc8NpcbmlNw9yv8=", - "license": "MIT" - }, - "node_modules/resolve": { - "version": "1.22.8", - "resolved": "https://npm.sinequa.com/resolve/-/resolve-1.22.8.tgz", - "integrity": "sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==", - "dev": true, - "license": "MIT", - "dependencies": { - "is-core-module": "^2.13.0", - "path-parse": "^1.0.7", - "supports-preserve-symlinks-flag": "^1.0.0" - }, - "bin": { - "resolve": "bin/resolve" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/resolve-from": { - "version": "4.0.0", - "resolved": "https://npm.sinequa.com/resolve-from/-/resolve-from-4.0.0.tgz", - "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", - "license": "MIT", - "engines": { - "node": ">=4" - } - }, - "node_modules/resolve-url-loader": { - "version": "5.0.0", - "resolved": "https://npm.sinequa.com/resolve-url-loader/-/resolve-url-loader-5.0.0.tgz", - "integrity": "sha512-uZtduh8/8srhBoMx//5bwqjQ+rfYOUq8zC9NrMUGtjBiGTtFJM42s58/36+hTqeqINcnYe08Nj3LkK9lW4N8Xg==", - "dev": true, - "license": "MIT", - "dependencies": { - "adjust-sourcemap-loader": "^4.0.0", - "convert-source-map": "^1.7.0", - "loader-utils": "^2.0.0", - "postcss": "^8.2.14", - "source-map": "0.6.1" - }, - "engines": { - "node": ">=12" - } - }, - "node_modules/resolve-url-loader/node_modules/loader-utils": { - "version": "2.0.4", - "resolved": "https://npm.sinequa.com/loader-utils/-/loader-utils-2.0.4.tgz", - "integrity": "sha512-xXqpXoINfFhgua9xiqD8fPFHgkoq1mmmpE92WlDbm9rNRd/EbRb+Gqf908T2DMfuHjjJlksiK2RbHVOdD/MqSw==", - "dev": true, - "license": "MIT", - "dependencies": { - "big.js": "^5.2.2", - "emojis-list": "^3.0.0", - "json5": "^2.1.2" - }, - "engines": { - "node": ">=8.9.0" - } - }, - "node_modules/resolve-url-loader/node_modules/source-map": { - "version": "0.6.1", - "resolved": "https://npm.sinequa.com/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true, - "license": "BSD-3-Clause", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/restore-cursor": { - "version": "5.1.0", - "resolved": "https://npm.sinequa.com/restore-cursor/-/restore-cursor-5.1.0.tgz", - "integrity": "sha512-oMA2dcrw6u0YfxJQXm342bFKX/E4sG9rbTzO9ptUcR/e8A33cHuvStiYOwH7fszkZlZ1z/ta9AAoPk2F4qIOHA==", - "dev": true, - "license": "MIT", - "dependencies": { - "onetime": "^7.0.0", - "signal-exit": "^4.1.0" - }, - "engines": { - "node": ">=18" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/restore-cursor/node_modules/onetime": { - "version": "7.0.0", - "resolved": "https://npm.sinequa.com/onetime/-/onetime-7.0.0.tgz", - "integrity": "sha512-VXJjc87FScF88uafS3JllDgvAm+c/Slfz06lorj2uAY34rlUu0Nt+v8wreiImcrgAjjIHp1rXpTDlLOGw29WwQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "mimic-function": "^5.0.0" - }, - "engines": { - "node": ">=18" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/retry": { - "version": "0.12.0", - "resolved": "https://npm.sinequa.com/retry/-/retry-0.12.0.tgz", - "integrity": "sha1-G0KmJmoh8HQh0bC1S33BZ7AcATs=", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 4" - } - }, - "node_modules/reusify": { - "version": "1.0.4", - "resolved": "https://npm.sinequa.com/reusify/-/reusify-1.0.4.tgz", - "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==", - "dev": true, - "license": "MIT", - "engines": { - "iojs": ">=1.0.0", - "node": ">=0.10.0" - } - }, - "node_modules/rfdc": { - "version": "1.4.1", - "resolved": "https://npm.sinequa.com/rfdc/-/rfdc-1.4.1.tgz", - "integrity": "sha512-q1b3N5QkRUWUl7iyylaaj3kOpIT0N2i9MqIEQXP73GVsN9cw3fdx8X63cEmWhJGi2PPCF23Ijp7ktmd39rawIA==", - "dev": true, - "license": "MIT" - }, - "node_modules/rimraf": { - "version": "5.0.10", - "resolved": "https://npm.sinequa.com/rimraf/-/rimraf-5.0.10.tgz", - "integrity": "sha512-l0OE8wL34P4nJH/H2ffoaniAokM2qSmrtXHmlpvYr5AVVX8msAyW0l8NVJFDxlSK4u3Uh/f41cQheDVdnYijwQ==", - "dev": true, - "license": "ISC", - "dependencies": { - "glob": "^10.3.7" - }, - "bin": { - "rimraf": "dist/esm/bin.mjs" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/rollup": { - "version": "4.22.4", - "resolved": "https://npm.sinequa.com/rollup/-/rollup-4.22.4.tgz", - "integrity": "sha512-vD8HJ5raRcWOyymsR6Z3o6+RzfEPCnVLMFJ6vRslO1jt4LO6dUo5Qnpg7y4RkZFM2DMe3WUirkI5c16onjrc6A==", - "dev": true, - "license": "MIT", - "dependencies": { - "@types/estree": "1.0.5" - }, - "bin": { - "rollup": "dist/bin/rollup" - }, - "engines": { - "node": ">=18.0.0", - "npm": ">=8.0.0" - }, - "optionalDependencies": { - "@rollup/rollup-android-arm-eabi": "4.22.4", - "@rollup/rollup-android-arm64": "4.22.4", - "@rollup/rollup-darwin-arm64": "4.22.4", - "@rollup/rollup-darwin-x64": "4.22.4", - "@rollup/rollup-linux-arm-gnueabihf": "4.22.4", - "@rollup/rollup-linux-arm-musleabihf": "4.22.4", - "@rollup/rollup-linux-arm64-gnu": "4.22.4", - "@rollup/rollup-linux-arm64-musl": "4.22.4", - "@rollup/rollup-linux-powerpc64le-gnu": "4.22.4", - "@rollup/rollup-linux-riscv64-gnu": "4.22.4", - "@rollup/rollup-linux-s390x-gnu": "4.22.4", - "@rollup/rollup-linux-x64-gnu": "4.22.4", - "@rollup/rollup-linux-x64-musl": "4.22.4", - "@rollup/rollup-win32-arm64-msvc": "4.22.4", - "@rollup/rollup-win32-ia32-msvc": "4.22.4", - "@rollup/rollup-win32-x64-msvc": "4.22.4", - "fsevents": "~2.3.2" - } - }, - "node_modules/run-applescript": { - "version": "7.0.0", - "resolved": "https://npm.sinequa.com/run-applescript/-/run-applescript-7.0.0.tgz", - "integrity": "sha512-9by4Ij99JUr/MCFBUkDKLWK3G9HVXmabKz9U5MlIAIuvuzkiOicRYs8XJLxX+xahD+mLiiCYDqF9dKAgtzKP1A==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=18" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/run-parallel": { - "version": "1.2.0", - "resolved": "https://npm.sinequa.com/run-parallel/-/run-parallel-1.2.0.tgz", - "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], - "license": "MIT", - "dependencies": { - "queue-microtask": "^1.2.2" - } - }, - "node_modules/rxjs": { - "version": "7.8.1", - "resolved": "https://npm.sinequa.com/rxjs/-/rxjs-7.8.1.tgz", - "integrity": "sha512-AA3TVj+0A2iuIoQkWEK/tqFjBq2j+6PO6Y0zJcvzLAFhEFIO3HL0vls9hWLncZbAAbK0mar7oZ4V079I/qPMxg==", - "license": "Apache-2.0", - "dependencies": { - "tslib": "^2.1.0" - } - }, - "node_modules/safe-buffer": { - "version": "5.2.1", - "resolved": "https://npm.sinequa.com/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" - } - ], - "license": "MIT" - }, - "node_modules/safe-identifier": { - "version": "0.4.2", - "resolved": "https://npm.sinequa.com/safe-identifier/-/safe-identifier-0.4.2.tgz", - "integrity": "sha512-6pNbSMW6OhAi9j+N8V+U715yBQsaWJ7eyEUaOrawX+isg5ZxhUlV1NipNtgaKHmFGiABwt+ZF04Ii+3Xjkg+8w==", - "license": "ISC" - }, - "node_modules/safer-buffer": { - "version": "2.1.2", - "resolved": "https://npm.sinequa.com/safer-buffer/-/safer-buffer-2.1.2.tgz", - "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", - "dev": true, - "license": "MIT" - }, - "node_modules/sass": { - "version": "1.77.6", - "resolved": "https://npm.sinequa.com/sass/-/sass-1.77.6.tgz", - "integrity": "sha512-ByXE1oLD79GVq9Ht1PeHWCPMPB8XHpBuz1r85oByKHjZY6qV6rWnQovQzXJXuQ/XyE1Oj3iPk3lo28uzaRA2/Q==", - "dev": true, - "license": "MIT", - "dependencies": { - "chokidar": ">=3.0.0 <4.0.0", - "immutable": "^4.0.0", - "source-map-js": ">=0.6.2 <2.0.0" - }, - "bin": { - "sass": "sass.js" - }, - "engines": { - "node": ">=14.0.0" - } - }, - "node_modules/sass-loader": { - "version": "16.0.0", - "resolved": "https://npm.sinequa.com/sass-loader/-/sass-loader-16.0.0.tgz", - "integrity": "sha512-n13Z+3rU9A177dk4888czcVFiC8CL9dii4qpXWUg3YIIgZEvi9TCFKjOQcbK0kJM7DJu9VucrZFddvNfYCPwtw==", - "dev": true, - "license": "MIT", - "dependencies": { - "neo-async": "^2.6.2" - }, - "engines": { - "node": ">= 18.12.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" - }, - "peerDependencies": { - "@rspack/core": "0.x || 1.x", - "node-sass": "^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0 || ^9.0.0", - "sass": "^1.3.0", - "sass-embedded": "*", - "webpack": "^5.0.0" - }, - "peerDependenciesMeta": { - "@rspack/core": { - "optional": true - }, - "node-sass": { - "optional": true - }, - "sass": { - "optional": true - }, - "sass-embedded": { - "optional": true - }, - "webpack": { - "optional": true - } - } - }, - "node_modules/sass/node_modules/chokidar": { - "version": "3.6.0", - "resolved": "https://npm.sinequa.com/chokidar/-/chokidar-3.6.0.tgz", - "integrity": "sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==", - "dev": true, - "license": "MIT", - "dependencies": { - "anymatch": "~3.1.2", - "braces": "~3.0.2", - "glob-parent": "~5.1.2", - "is-binary-path": "~2.1.0", - "is-glob": "~4.0.1", - "normalize-path": "~3.0.0", - "readdirp": "~3.6.0" - }, - "engines": { - "node": ">= 8.10.0" - }, - "funding": { - "url": "https://paulmillr.com/funding/" - }, - "optionalDependencies": { - "fsevents": "~2.3.2" - } - }, - "node_modules/sass/node_modules/glob-parent": { - "version": "5.1.2", - "resolved": "https://npm.sinequa.com/glob-parent/-/glob-parent-5.1.2.tgz", - "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", - "dev": true, - "license": "ISC", - "dependencies": { - "is-glob": "^4.0.1" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/sass/node_modules/picomatch": { - "version": "2.3.1", - "resolved": "https://npm.sinequa.com/picomatch/-/picomatch-2.3.1.tgz", - "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8.6" - }, - "funding": { - "url": "https://github.com/sponsors/jonschlinkert" - } - }, - "node_modules/sass/node_modules/readdirp": { - "version": "3.6.0", - "resolved": "https://npm.sinequa.com/readdirp/-/readdirp-3.6.0.tgz", - "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", - "dev": true, - "license": "MIT", - "dependencies": { - "picomatch": "^2.2.1" - }, - "engines": { - "node": ">=8.10.0" - } - }, - "node_modules/sax": { - "version": "1.4.1", - "resolved": "https://npm.sinequa.com/sax/-/sax-1.4.1.tgz", - "integrity": "sha512-+aWOz7yVScEGoKNd4PA10LZ8sk0A/z5+nXQG5giUO5rprX9jgYsTdov9qCchZiPIZezbZH+jRut8nPodFAX4Jg==", - "dev": true, - "license": "ISC", - "optional": true - }, - "node_modules/schema-utils": { - "version": "4.3.0", - "resolved": "https://npm.sinequa.com/schema-utils/-/schema-utils-4.3.0.tgz", - "integrity": "sha512-Gf9qqc58SpCA/xdziiHz35F4GNIWYWZrEshUc/G/r5BnLph6xpKuLeoJoQuj5WfBIx/eQLf+hmVPYHaxJu7V2g==", - "dev": true, - "license": "MIT", - "dependencies": { - "@types/json-schema": "^7.0.9", - "ajv": "^8.9.0", - "ajv-formats": "^2.1.1", - "ajv-keywords": "^5.1.0" - }, - "engines": { - "node": ">= 10.13.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" - } - }, - "node_modules/schema-utils/node_modules/ajv-formats": { - "version": "2.1.1", - "resolved": "https://npm.sinequa.com/ajv-formats/-/ajv-formats-2.1.1.tgz", - "integrity": "sha512-Wx0Kx52hxE7C18hkMEggYlEifqWZtYaRgouJor+WMdPnQyEK13vgEWyVNup7SoeeoLMsr4kf5h6dOW11I15MUA==", - "dev": true, - "license": "MIT", - "dependencies": { - "ajv": "^8.0.0" - }, - "peerDependencies": { - "ajv": "^8.0.0" - }, - "peerDependenciesMeta": { - "ajv": { - "optional": true - } - } - }, - "node_modules/select-hose": { - "version": "2.0.0", - "resolved": "https://npm.sinequa.com/select-hose/-/select-hose-2.0.0.tgz", - "integrity": "sha1-Yl2GWPhlr0Psliv8N2o3NZpJlMo=", - "dev": true, - "license": "MIT" - }, - "node_modules/selfsigned": { - "version": "2.4.1", - "resolved": "https://npm.sinequa.com/selfsigned/-/selfsigned-2.4.1.tgz", - "integrity": "sha512-th5B4L2U+eGLq1TVh7zNRGBapioSORUeymIydxgFpwww9d2qyKvtuPU2jJuHvYAwwqi2Y596QBL3eEqcPEYL8Q==", - "dev": true, - "license": "MIT", - "dependencies": { - "@types/node-forge": "^1.3.0", - "node-forge": "^1" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/semver": { - "version": "7.6.3", - "resolved": "https://npm.sinequa.com/semver/-/semver-7.6.3.tgz", - "integrity": "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==", - "license": "ISC", - "bin": { - "semver": "bin/semver.js" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/send": { - "version": "0.19.0", - "resolved": "https://npm.sinequa.com/send/-/send-0.19.0.tgz", - "integrity": "sha512-dW41u5VfLXu8SJh5bwRmyYUbAoSB3c9uQh6L8h/KtsFREPWpbX1lrljJo186Jc4nmci/sGUZ9a0a0J2zgfq2hw==", - "dev": true, - "license": "MIT", - "dependencies": { - "debug": "2.6.9", - "depd": "2.0.0", - "destroy": "1.2.0", - "encodeurl": "~1.0.2", - "escape-html": "~1.0.3", - "etag": "~1.8.1", - "fresh": "0.5.2", - "http-errors": "2.0.0", - "mime": "1.6.0", - "ms": "2.1.3", - "on-finished": "2.4.1", - "range-parser": "~1.2.1", - "statuses": "2.0.1" - }, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/send/node_modules/debug": { - "version": "2.6.9", - "resolved": "https://npm.sinequa.com/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dev": true, - "license": "MIT", - "dependencies": { - "ms": "2.0.0" - } - }, - "node_modules/send/node_modules/debug/node_modules/ms": { - "version": "2.0.0", - "resolved": "https://npm.sinequa.com/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", - "dev": true, - "license": "MIT" - }, - "node_modules/send/node_modules/encodeurl": { - "version": "1.0.2", - "resolved": "https://npm.sinequa.com/encodeurl/-/encodeurl-1.0.2.tgz", - "integrity": "sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k=", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/serialize-javascript": { - "version": "6.0.2", - "resolved": "https://npm.sinequa.com/serialize-javascript/-/serialize-javascript-6.0.2.tgz", - "integrity": "sha512-Saa1xPByTTq2gdeFZYLLo+RFE35NHZkAbqZeWNd3BpzppeVisAqpDjcp8dyf6uIvEqJRd46jemmyA4iFIeVk8g==", - "dev": true, - "license": "BSD-3-Clause", - "dependencies": { - "randombytes": "^2.1.0" - } - }, - "node_modules/serve-index": { - "version": "1.9.1", - "resolved": "https://npm.sinequa.com/serve-index/-/serve-index-1.9.1.tgz", - "integrity": "sha1-03aNabHn2C5c4FD/9bRTvqEqkjk=", - "dev": true, - "license": "MIT", - "dependencies": { - "accepts": "~1.3.4", - "batch": "0.6.1", - "debug": "2.6.9", - "escape-html": "~1.0.3", - "http-errors": "~1.6.2", - "mime-types": "~2.1.17", - "parseurl": "~1.3.2" - }, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/serve-index/node_modules/debug": { - "version": "2.6.9", - "resolved": "https://npm.sinequa.com/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dev": true, - "license": "MIT", - "dependencies": { - "ms": "2.0.0" - } - }, - "node_modules/serve-index/node_modules/depd": { - "version": "1.1.2", - "resolved": "https://npm.sinequa.com/depd/-/depd-1.1.2.tgz", - "integrity": "sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak=", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/serve-index/node_modules/http-errors": { - "version": "1.6.3", - "resolved": "https://npm.sinequa.com/http-errors/-/http-errors-1.6.3.tgz", - "integrity": "sha1-i1VoC7S+KDoLW/TqLjhYC+HZMg0=", - "dev": true, - "license": "MIT", - "dependencies": { - "depd": "~1.1.2", - "inherits": "2.0.3", - "setprototypeof": "1.1.0", - "statuses": ">= 1.4.0 < 2" - }, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/serve-index/node_modules/inherits": { - "version": "2.0.3", - "resolved": "https://npm.sinequa.com/inherits/-/inherits-2.0.3.tgz", - "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=", - "dev": true, - "license": "ISC" - }, - "node_modules/serve-index/node_modules/ms": { - "version": "2.0.0", - "resolved": "https://npm.sinequa.com/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", - "dev": true, - "license": "MIT" - }, - "node_modules/serve-index/node_modules/setprototypeof": { - "version": "1.1.0", - "resolved": "https://npm.sinequa.com/setprototypeof/-/setprototypeof-1.1.0.tgz", - "integrity": "sha512-BvE/TwpZX4FXExxOxZyRGQQv651MSwmWKZGqvmPcRIjDqWub67kTKuIMx43cZZrS/cBBzwBcNDWoFxt2XEFIpQ==", - "dev": true, - "license": "ISC" - }, - "node_modules/serve-index/node_modules/statuses": { - "version": "1.5.0", - "resolved": "https://npm.sinequa.com/statuses/-/statuses-1.5.0.tgz", - "integrity": "sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow=", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/serve-static": { - "version": "1.16.2", - "resolved": "https://npm.sinequa.com/serve-static/-/serve-static-1.16.2.tgz", - "integrity": "sha512-VqpjJZKadQB/PEbEwvFdO43Ax5dFBZ2UECszz8bQ7pi7wt//PWe1P6MN7eCnjsatYtBT6EuiClbjSWP2WrIoTw==", - "dev": true, - "license": "MIT", - "dependencies": { - "encodeurl": "~2.0.0", - "escape-html": "~1.0.3", - "parseurl": "~1.3.3", - "send": "0.19.0" - }, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/set-cookie-parser": { - "version": "2.7.1", - "resolved": "https://npm.sinequa.com/set-cookie-parser/-/set-cookie-parser-2.7.1.tgz", - "integrity": "sha512-IOc8uWeOZgnb3ptbCURJWNjWUPcO3ZnTTdzsurqERrP6nPyv+paC55vJM0LpOlT2ne+Ix+9+CRG1MNLlyZ4GjQ==", - "license": "MIT" - }, - "node_modules/setprototypeof": { - "version": "1.2.0", - "resolved": "https://npm.sinequa.com/setprototypeof/-/setprototypeof-1.2.0.tgz", - "integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==", - "dev": true, - "license": "ISC" - }, - "node_modules/shallow-clone": { - "version": "3.0.1", - "resolved": "https://npm.sinequa.com/shallow-clone/-/shallow-clone-3.0.1.tgz", - "integrity": "sha512-/6KqX+GVUdqPuPPd2LxDDxzX6CAbjJehAAOKlNpqqUpAqPM6HeL8f+o3a+JsyGjn2lv0WY8UsTgUJjU9Ok55NA==", - "dev": true, - "license": "MIT", - "dependencies": { - "kind-of": "^6.0.2" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/shebang-command": { - "version": "2.0.0", - "resolved": "https://npm.sinequa.com/shebang-command/-/shebang-command-2.0.0.tgz", - "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", - "license": "MIT", - "dependencies": { - "shebang-regex": "^3.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/shebang-regex": { - "version": "3.0.0", - "resolved": "https://npm.sinequa.com/shebang-regex/-/shebang-regex-3.0.0.tgz", - "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/shell-quote": { - "version": "1.8.2", - "resolved": "https://npm.sinequa.com/shell-quote/-/shell-quote-1.8.2.tgz", - "integrity": "sha512-AzqKpGKjrj7EM6rKVQEPpB288oCfnrEIuyoT9cyF4nmGa7V8Zk6f7RRqYisX8X9m+Q7bd632aZW4ky7EhbQztA==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/side-channel": { - "version": "1.1.0", - "resolved": "https://npm.sinequa.com/side-channel/-/side-channel-1.1.0.tgz", - "integrity": "sha512-ZX99e6tRweoUXqR+VBrslhda51Nh5MTQwou5tnUDgbtyM0dBgmhEDtWGP/xbKn6hqfPRHujUNwz5fy/wbbhnpw==", - "dev": true, - "license": "MIT", - "dependencies": { - "es-errors": "^1.3.0", - "object-inspect": "^1.13.3", - "side-channel-list": "^1.0.0", - "side-channel-map": "^1.0.1", - "side-channel-weakmap": "^1.0.2" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/side-channel-list": { - "version": "1.0.0", - "resolved": "https://npm.sinequa.com/side-channel-list/-/side-channel-list-1.0.0.tgz", - "integrity": "sha512-FCLHtRD/gnpCiCHEiJLOwdmFP+wzCmDEkc9y7NsYxeF4u7Btsn1ZuwgwJGxImImHicJArLP4R0yX4c2KCrMrTA==", - "dev": true, - "license": "MIT", - "dependencies": { - "es-errors": "^1.3.0", - "object-inspect": "^1.13.3" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/side-channel-map": { - "version": "1.0.1", - "resolved": "https://npm.sinequa.com/side-channel-map/-/side-channel-map-1.0.1.tgz", - "integrity": "sha512-VCjCNfgMsby3tTdo02nbjtM/ewra6jPHmpThenkTYh8pG9ucZ/1P8So4u4FGBek/BjpOVsDCMoLA/iuBKIFXRA==", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bound": "^1.0.2", - "es-errors": "^1.3.0", - "get-intrinsic": "^1.2.5", - "object-inspect": "^1.13.3" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/side-channel-weakmap": { - "version": "1.0.2", - "resolved": "https://npm.sinequa.com/side-channel-weakmap/-/side-channel-weakmap-1.0.2.tgz", - "integrity": "sha512-WPS/HvHQTYnHisLo9McqBHOJk2FkHO/tlpvldyrnem4aeQp4hai3gythswg6p01oSoTl58rcpiFAjF2br2Ak2A==", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bound": "^1.0.2", - "es-errors": "^1.3.0", - "get-intrinsic": "^1.2.5", - "object-inspect": "^1.13.3", - "side-channel-map": "^1.0.1" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/signal-exit": { - "version": "4.1.0", - "resolved": "https://npm.sinequa.com/signal-exit/-/signal-exit-4.1.0.tgz", - "integrity": "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==", - "license": "ISC", - "engines": { - "node": ">=14" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/sigstore": { - "version": "2.3.1", - "resolved": "https://npm.sinequa.com/sigstore/-/sigstore-2.3.1.tgz", - "integrity": "sha512-8G+/XDU8wNsJOQS5ysDVO0Etg9/2uA5gR9l4ZwijjlwxBcrU6RPfwi2+jJmbP+Ap1Hlp/nVAaEO4Fj22/SL2gQ==", - "dev": true, - "license": "Apache-2.0", - "dependencies": { - "@sigstore/bundle": "^2.3.2", - "@sigstore/core": "^1.0.0", - "@sigstore/protobuf-specs": "^0.3.2", - "@sigstore/sign": "^2.3.2", - "@sigstore/tuf": "^2.3.4", - "@sigstore/verify": "^1.2.1" - }, - "engines": { - "node": "^16.14.0 || >=18.0.0" - } - }, - "node_modules/slash": { - "version": "5.1.0", - "resolved": "https://npm.sinequa.com/slash/-/slash-5.1.0.tgz", - "integrity": "sha512-ZA6oR3T/pEyuqwMgAKT0/hAv8oAXckzbkmR0UkUosQ+Mc4RxGoJkRmwHgHufaenlyAgE1Mxgpdcrf75y6XcnDg==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=14.16" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/slice-ansi": { - "version": "5.0.0", - "resolved": "https://npm.sinequa.com/slice-ansi/-/slice-ansi-5.0.0.tgz", - "integrity": "sha512-FC+lgizVPfie0kkhqUScwRu1O/lF6NOgJmlCgK+/LYxDCTk8sGelYaHDhFcDN+Sn3Cv+3VSa4Byeo+IMCzpMgQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "ansi-styles": "^6.0.0", - "is-fullwidth-code-point": "^4.0.0" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/chalk/slice-ansi?sponsor=1" - } - }, - "node_modules/slice-ansi/node_modules/ansi-styles": { - "version": "6.2.1", - "resolved": "https://npm.sinequa.com/ansi-styles/-/ansi-styles-6.2.1.tgz", - "integrity": "sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/smart-buffer": { - "version": "4.2.0", - "resolved": "https://npm.sinequa.com/smart-buffer/-/smart-buffer-4.2.0.tgz", - "integrity": "sha512-94hK0Hh8rPqQl2xXc3HsaBoOXKV20MToPkcXvwbISWLEs+64sBq5kFgn2kJDHb1Pry9yrP0dxrCI9RRci7RXKg==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 6.0.0", - "npm": ">= 3.0.0" - } - }, - "node_modules/sockjs": { - "version": "0.3.24", - "resolved": "https://npm.sinequa.com/sockjs/-/sockjs-0.3.24.tgz", - "integrity": "sha512-GJgLTZ7vYb/JtPSSZ10hsOYIvEYsjbNU+zPdIHcUaWVNUEPivzxku31865sSSud0Da0W4lEeOPlmw93zLQchuQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "faye-websocket": "^0.11.3", - "uuid": "^8.3.2", - "websocket-driver": "^0.7.4" - } - }, - "node_modules/socks": { - "version": "2.8.3", - "resolved": "https://npm.sinequa.com/socks/-/socks-2.8.3.tgz", - "integrity": "sha512-l5x7VUUWbjVFbafGLxPWkYsHIhEvmF85tbIeFZWc8ZPtoMyybuEhL7Jye/ooC4/d48FgOjSJXgsF/AJPYCW8Zw==", - "dev": true, - "license": "MIT", - "dependencies": { - "ip-address": "^9.0.5", - "smart-buffer": "^4.2.0" - }, - "engines": { - "node": ">= 10.0.0", - "npm": ">= 3.0.0" - } - }, - "node_modules/socks-proxy-agent": { - "version": "8.0.5", - "resolved": "https://npm.sinequa.com/socks-proxy-agent/-/socks-proxy-agent-8.0.5.tgz", - "integrity": "sha512-HehCEsotFqbPW9sJ8WVYB6UbmIMv7kUUORIF2Nncq4VQvBfNBLibW9YZR5dlYCSUhwcD628pRllm7n+E+YTzJw==", - "dev": true, - "license": "MIT", - "dependencies": { - "agent-base": "^7.1.2", - "debug": "^4.3.4", - "socks": "^2.8.3" - }, - "engines": { - "node": ">= 14" - } - }, - "node_modules/source-map": { - "version": "0.7.4", - "resolved": "https://npm.sinequa.com/source-map/-/source-map-0.7.4.tgz", - "integrity": "sha512-l3BikUxvPOcn5E74dZiq5BGsTb5yEwhaTSzccU6t4sDOH8NWJCstKO5QT2CvtFoK6F0saL7p9xHAqHOlCPJygA==", - "license": "BSD-3-Clause", - "engines": { - "node": ">= 8" - } - }, - "node_modules/source-map-js": { - "version": "1.2.1", - "resolved": "https://npm.sinequa.com/source-map-js/-/source-map-js-1.2.1.tgz", - "integrity": "sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==", - "dev": true, - "license": "BSD-3-Clause", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/source-map-loader": { - "version": "5.0.0", - "resolved": "https://npm.sinequa.com/source-map-loader/-/source-map-loader-5.0.0.tgz", - "integrity": "sha512-k2Dur7CbSLcAH73sBcIkV5xjPV4SzqO1NJ7+XaQl8if3VODDUj3FNchNGpqgJSKbvUfJuhVdv8K2Eu8/TNl2eA==", - "dev": true, - "license": "MIT", - "dependencies": { - "iconv-lite": "^0.6.3", - "source-map-js": "^1.0.2" - }, - "engines": { - "node": ">= 18.12.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" - }, - "peerDependencies": { - "webpack": "^5.72.1" - } - }, - "node_modules/source-map-loader/node_modules/iconv-lite": { - "version": "0.6.3", - "resolved": "https://npm.sinequa.com/iconv-lite/-/iconv-lite-0.6.3.tgz", - "integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==", - "dev": true, - "license": "MIT", - "dependencies": { - "safer-buffer": ">= 2.1.2 < 3.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/source-map-support": { - "version": "0.5.21", - "resolved": "https://npm.sinequa.com/source-map-support/-/source-map-support-0.5.21.tgz", - "integrity": "sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==", - "dev": true, - "license": "MIT", - "dependencies": { - "buffer-from": "^1.0.0", - "source-map": "^0.6.0" - } - }, - "node_modules/source-map-support/node_modules/source-map": { - "version": "0.6.1", - "resolved": "https://npm.sinequa.com/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true, - "license": "BSD-3-Clause", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/spdx-correct": { - "version": "3.2.0", - "resolved": "https://npm.sinequa.com/spdx-correct/-/spdx-correct-3.2.0.tgz", - "integrity": "sha512-kN9dJbvnySHULIluDHy32WHRUu3Og7B9sbY7tsFLctQkIqnMh3hErYgdMjTYuqmcXX+lK5T1lnUt3G7zNswmZA==", - "dev": true, - "license": "Apache-2.0", - "dependencies": { - "spdx-expression-parse": "^3.0.0", - "spdx-license-ids": "^3.0.0" - } - }, - "node_modules/spdx-exceptions": { - "version": "2.5.0", - "resolved": "https://npm.sinequa.com/spdx-exceptions/-/spdx-exceptions-2.5.0.tgz", - "integrity": "sha512-PiU42r+xO4UbUS1buo3LPJkjlO7430Xn5SVAhdpzzsPHsjbYVflnnFdATgabnLude+Cqu25p6N+g2lw/PFsa4w==", - "dev": true, - "license": "CC-BY-3.0" - }, - "node_modules/spdx-expression-parse": { - "version": "3.0.1", - "resolved": "https://npm.sinequa.com/spdx-expression-parse/-/spdx-expression-parse-3.0.1.tgz", - "integrity": "sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==", - "dev": true, - "license": "MIT", - "dependencies": { - "spdx-exceptions": "^2.1.0", - "spdx-license-ids": "^3.0.0" - } - }, - "node_modules/spdx-license-ids": { - "version": "3.0.21", - "resolved": "https://npm.sinequa.com/spdx-license-ids/-/spdx-license-ids-3.0.21.tgz", - "integrity": "sha512-Bvg/8F5XephndSK3JffaRqdT+gyhfqIPwDHpX80tJrF8QQRYMo8sNMeaZ2Dp5+jhwKnUmIOyFFQfHRkjJm5nXg==", - "dev": true, - "license": "CC0-1.0" - }, - "node_modules/spdy": { - "version": "4.0.2", - "resolved": "https://npm.sinequa.com/spdy/-/spdy-4.0.2.tgz", - "integrity": "sha512-r46gZQZQV+Kl9oItvl1JZZqJKGr+oEkB08A6BzkiR7593/7IbtuncXHd2YoYeTsG4157ZssMu9KYvUHLcjcDoA==", - "dev": true, - "license": "MIT", - "dependencies": { - "debug": "^4.1.0", - "handle-thing": "^2.0.0", - "http-deceiver": "^1.2.7", - "select-hose": "^2.0.0", - "spdy-transport": "^3.0.0" - }, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/spdy-transport": { - "version": "3.0.0", - "resolved": "https://npm.sinequa.com/spdy-transport/-/spdy-transport-3.0.0.tgz", - "integrity": "sha512-hsLVFE5SjA6TCisWeJXFKniGGOpBgMLmerfO2aCyCU5s7nJ/rpAepqmFifv/GCbSbueEeAJJnmSQ2rKC/g8Fcw==", - "dev": true, - "license": "MIT", - "dependencies": { - "debug": "^4.1.0", - "detect-node": "^2.0.4", - "hpack.js": "^2.1.6", - "obuf": "^1.1.2", - "readable-stream": "^3.0.6", - "wbuf": "^1.7.3" - } - }, - "node_modules/sprintf-js": { - "version": "1.1.3", - "resolved": "https://npm.sinequa.com/sprintf-js/-/sprintf-js-1.1.3.tgz", - "integrity": "sha512-Oo+0REFV59/rz3gfJNKQiBlwfHaSESl1pcGyABQsnnIfWOFt6JNj5gCog2U6MLZ//IGYD+nA8nI+mTShREReaA==", - "dev": true, - "license": "BSD-3-Clause" - }, - "node_modules/ssri": { - "version": "10.0.6", - "resolved": "https://npm.sinequa.com/ssri/-/ssri-10.0.6.tgz", - "integrity": "sha512-MGrFH9Z4NP9Iyhqn16sDtBpRRNJ0Y2hNa6D65h736fVSaPCHr4DM4sWUNvVaSuC+0OBGhwsrydQwmgfg5LncqQ==", - "dev": true, - "license": "ISC", - "dependencies": { - "minipass": "^7.0.3" - }, - "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" - } - }, - "node_modules/statuses": { - "version": "2.0.1", - "resolved": "https://npm.sinequa.com/statuses/-/statuses-2.0.1.tgz", - "integrity": "sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/string_decoder": { - "version": "1.3.0", - "resolved": "https://npm.sinequa.com/string_decoder/-/string_decoder-1.3.0.tgz", - "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==", - "license": "MIT", - "dependencies": { - "safe-buffer": "~5.2.0" - } - }, - "node_modules/string-argv": { - "version": "0.3.2", - "resolved": "https://npm.sinequa.com/string-argv/-/string-argv-0.3.2.tgz", - "integrity": "sha512-aqD2Q0144Z+/RqG52NeHEkZauTAUWJO8c6yTftGJKO3Tja5tUgIfmIl6kExvhtxSDP7fXB6DvzkfMpCd/F3G+Q==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.6.19" - } - }, - "node_modules/string-width": { - "version": "5.1.2", - "resolved": "https://npm.sinequa.com/string-width/-/string-width-5.1.2.tgz", - "integrity": "sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==", - "license": "MIT", - "dependencies": { - "eastasianwidth": "^0.2.0", - "emoji-regex": "^9.2.2", - "strip-ansi": "^7.0.1" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/string-width-cjs": { - "name": "string-width", - "version": "4.2.3", - "resolved": "https://npm.sinequa.com/string-width/-/string-width-4.2.3.tgz", - "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", - "license": "MIT", - "dependencies": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/string-width-cjs/node_modules/emoji-regex": { - "version": "8.0.0", - "resolved": "https://npm.sinequa.com/emoji-regex/-/emoji-regex-8.0.0.tgz", - "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", - "license": "MIT" - }, - "node_modules/string-width-cjs/node_modules/is-fullwidth-code-point": { - "version": "3.0.0", - "resolved": "https://npm.sinequa.com/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", - "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/string-width/node_modules/ansi-regex": { - "version": "6.1.0", - "resolved": "https://npm.sinequa.com/ansi-regex/-/ansi-regex-6.1.0.tgz", - "integrity": "sha512-7HSX4QQb4CspciLpVFwyRe79O3xsIZDDLER21kERQ71oaPodF8jL725AgJMFAYbooIqolJoRLuM81SpeUkpkvA==", - "license": "MIT", - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/chalk/ansi-regex?sponsor=1" - } - }, - "node_modules/string-width/node_modules/strip-ansi": { - "version": "7.1.0", - "resolved": "https://npm.sinequa.com/strip-ansi/-/strip-ansi-7.1.0.tgz", - "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==", - "license": "MIT", - "dependencies": { - "ansi-regex": "^6.0.1" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/chalk/strip-ansi?sponsor=1" - } - }, - "node_modules/strip-ansi": { - "version": "6.0.1", - "resolved": "https://npm.sinequa.com/strip-ansi/-/strip-ansi-6.0.1.tgz", - "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", - "license": "MIT", - "dependencies": { - "ansi-regex": "^5.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/strip-ansi-cjs": { - "name": "strip-ansi", - "version": "6.0.1", - "resolved": "https://npm.sinequa.com/strip-ansi/-/strip-ansi-6.0.1.tgz", - "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", - "license": "MIT", - "dependencies": { - "ansi-regex": "^5.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/strip-final-newline": { - "version": "3.0.0", - "resolved": "https://npm.sinequa.com/strip-final-newline/-/strip-final-newline-3.0.0.tgz", - "integrity": "sha512-dOESqjYr96iWYylGObzd39EuNTa5VJxyvVAEm5Jnh7KGo75V43Hk1odPQkNDyXNmUR6k+gEiDVXnjB8HJ3crXw==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/strip-json-comments": { - "version": "3.1.1", - "resolved": "https://npm.sinequa.com/strip-json-comments/-/strip-json-comments-3.1.1.tgz", - "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", - "license": "MIT", - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/sucrase": { - "version": "3.35.0", - "resolved": "https://npm.sinequa.com/sucrase/-/sucrase-3.35.0.tgz", - "integrity": "sha512-8EbVDiu9iN/nESwxeSxDKe0dunta1GOlHufmSSXxMD2z2/tMZpDMpvXQGsc+ajGo8y2uYUmixaSRUc/QPoQ0GA==", - "dev": true, - "license": "MIT", - "dependencies": { - "@jridgewell/gen-mapping": "^0.3.2", - "commander": "^4.0.0", - "glob": "^10.3.10", - "lines-and-columns": "^1.1.6", - "mz": "^2.7.0", - "pirates": "^4.0.1", - "ts-interface-checker": "^0.1.9" - }, - "bin": { - "sucrase": "bin/sucrase", - "sucrase-node": "bin/sucrase-node" - }, - "engines": { - "node": ">=16 || 14 >=14.17" - } - }, - "node_modules/sucrase/node_modules/commander": { - "version": "4.1.1", - "resolved": "https://npm.sinequa.com/commander/-/commander-4.1.1.tgz", - "integrity": "sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 6" - } - }, - "node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://npm.sinequa.com/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "license": "MIT", - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/supports-preserve-symlinks-flag": { - "version": "1.0.0", - "resolved": "https://npm.sinequa.com/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", - "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/symbol-observable": { - "version": "4.0.0", - "resolved": "https://npm.sinequa.com/symbol-observable/-/symbol-observable-4.0.0.tgz", - "integrity": "sha512-b19dMThMV4HVFynSAM1++gBHAbk2Tc/osgLIBZMKsyqh34jb2e8Os7T6ZW/Bt3pJFdBTd2JwAnAAEQV7rSNvcQ==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.10" - } - }, - "node_modules/tailwind-merge": { - "version": "2.6.0", - "resolved": "https://npm.sinequa.com/tailwind-merge/-/tailwind-merge-2.6.0.tgz", - "integrity": "sha512-P+Vu1qXfzediirmHOC3xKGAYeZtPcV9g76X+xg2FD4tYgR71ewMA35Y3sCz3zhiN/dwefRpJX0yBcgwi1fXNQA==", - "dev": true, - "license": "MIT", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/dcastil" - } - }, - "node_modules/tailwindcss": { - "version": "3.4.17", - "resolved": "https://npm.sinequa.com/tailwindcss/-/tailwindcss-3.4.17.tgz", - "integrity": "sha512-w33E2aCvSDP0tW9RZuNXadXlkHXqFzSkQew/aIa2i/Sj8fThxwovwlXHSPXTbAHwEIhBFXAedUhP2tueAKP8Og==", - "dev": true, - "license": "MIT", - "dependencies": { - "@alloc/quick-lru": "^5.2.0", - "arg": "^5.0.2", - "chokidar": "^3.6.0", - "didyoumean": "^1.2.2", - "dlv": "^1.1.3", - "fast-glob": "^3.3.2", - "glob-parent": "^6.0.2", - "is-glob": "^4.0.3", - "jiti": "^1.21.6", - "lilconfig": "^3.1.3", - "micromatch": "^4.0.8", - "normalize-path": "^3.0.0", - "object-hash": "^3.0.0", - "picocolors": "^1.1.1", - "postcss": "^8.4.47", - "postcss-import": "^15.1.0", - "postcss-js": "^4.0.1", - "postcss-load-config": "^4.0.2", - "postcss-nested": "^6.2.0", - "postcss-selector-parser": "^6.1.2", - "resolve": "^1.22.8", - "sucrase": "^3.35.0" - }, - "bin": { - "tailwind": "lib/cli.js", - "tailwindcss": "lib/cli.js" - }, - "engines": { - "node": ">=14.0.0" - } - }, - "node_modules/tailwindcss/node_modules/chokidar": { - "version": "3.6.0", - "resolved": "https://npm.sinequa.com/chokidar/-/chokidar-3.6.0.tgz", - "integrity": "sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==", - "dev": true, - "license": "MIT", - "dependencies": { - "anymatch": "~3.1.2", - "braces": "~3.0.2", - "glob-parent": "~5.1.2", - "is-binary-path": "~2.1.0", - "is-glob": "~4.0.1", - "normalize-path": "~3.0.0", - "readdirp": "~3.6.0" - }, - "engines": { - "node": ">= 8.10.0" - }, - "funding": { - "url": "https://paulmillr.com/funding/" - }, - "optionalDependencies": { - "fsevents": "~2.3.2" - } - }, - "node_modules/tailwindcss/node_modules/chokidar/node_modules/glob-parent": { - "version": "5.1.2", - "resolved": "https://npm.sinequa.com/glob-parent/-/glob-parent-5.1.2.tgz", - "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", - "dev": true, - "license": "ISC", - "dependencies": { - "is-glob": "^4.0.1" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/tailwindcss/node_modules/picomatch": { - "version": "2.3.1", - "resolved": "https://npm.sinequa.com/picomatch/-/picomatch-2.3.1.tgz", - "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8.6" - }, - "funding": { - "url": "https://github.com/sponsors/jonschlinkert" - } - }, - "node_modules/tailwindcss/node_modules/postcss-selector-parser": { - "version": "6.1.2", - "resolved": "https://npm.sinequa.com/postcss-selector-parser/-/postcss-selector-parser-6.1.2.tgz", - "integrity": "sha512-Q8qQfPiZ+THO/3ZrOrO0cJJKfpYCagtMUkXbnEfmgUjwXg6z/WBeOyS9APBBPCTSiDV+s4SwQGu8yFsiMRIudg==", - "dev": true, - "license": "MIT", - "dependencies": { - "cssesc": "^3.0.0", - "util-deprecate": "^1.0.2" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/tailwindcss/node_modules/readdirp": { - "version": "3.6.0", - "resolved": "https://npm.sinequa.com/readdirp/-/readdirp-3.6.0.tgz", - "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", - "dev": true, - "license": "MIT", - "dependencies": { - "picomatch": "^2.2.1" - }, - "engines": { - "node": ">=8.10.0" - } - }, - "node_modules/tapable": { - "version": "2.2.1", - "resolved": "https://npm.sinequa.com/tapable/-/tapable-2.2.1.tgz", - "integrity": "sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=6" - } - }, - "node_modules/tar": { - "version": "6.2.1", - "resolved": "https://npm.sinequa.com/tar/-/tar-6.2.1.tgz", - "integrity": "sha512-DZ4yORTwrbTj/7MZYq2w+/ZFdI6OZ/f9SFHR+71gIVUZhOQPHzVCLpvRnPgyaMpfWxxk/4ONva3GQSyNIKRv6A==", - "dev": true, - "license": "ISC", - "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" - } - }, - "node_modules/tar/node_modules/fs-minipass": { - "version": "2.1.0", - "resolved": "https://npm.sinequa.com/fs-minipass/-/fs-minipass-2.1.0.tgz", - "integrity": "sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg==", - "dev": true, - "license": "ISC", - "dependencies": { - "minipass": "^3.0.0" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/tar/node_modules/fs-minipass/node_modules/minipass": { - "version": "3.3.6", - "resolved": "https://npm.sinequa.com/minipass/-/minipass-3.3.6.tgz", - "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==", - "dev": true, - "license": "ISC", - "dependencies": { - "yallist": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/tar/node_modules/minipass": { - "version": "5.0.0", - "resolved": "https://npm.sinequa.com/minipass/-/minipass-5.0.0.tgz", - "integrity": "sha512-3FnjYuehv9k6ovOEbyOswadCDPX1piCfhV8ncmYtHOjuPwylVWsghTLo7rabjC3Rx5xD4HDx8Wm1xnMF7S5qFQ==", - "dev": true, - "license": "ISC", - "engines": { - "node": ">=8" - } - }, - "node_modules/tar/node_modules/yallist": { - "version": "4.0.0", - "resolved": "https://npm.sinequa.com/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", - "dev": true, - "license": "ISC" - }, - "node_modules/terser": { - "version": "5.31.6", - "resolved": "https://npm.sinequa.com/terser/-/terser-5.31.6.tgz", - "integrity": "sha512-PQ4DAriWzKj+qgehQ7LK5bQqCFNMmlhjR2PFFLuqGCpuCAauxemVBWwWOxo3UIwWQx8+Pr61Df++r76wDmkQBg==", - "dev": true, - "license": "BSD-2-Clause", - "dependencies": { - "@jridgewell/source-map": "^0.3.3", - "acorn": "^8.8.2", - "commander": "^2.20.0", - "source-map-support": "~0.5.20" - }, - "bin": { - "terser": "bin/terser" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/terser-webpack-plugin": { - "version": "5.3.11", - "resolved": "https://npm.sinequa.com/terser-webpack-plugin/-/terser-webpack-plugin-5.3.11.tgz", - "integrity": "sha512-RVCsMfuD0+cTt3EwX8hSl2Ks56EbFHWmhluwcqoPKtBnfjiT6olaq7PRIRfhyU8nnC2MrnDrBLfrD/RGE+cVXQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "@jridgewell/trace-mapping": "^0.3.25", - "jest-worker": "^27.4.5", - "schema-utils": "^4.3.0", - "serialize-javascript": "^6.0.2", - "terser": "^5.31.1" - }, - "engines": { - "node": ">= 10.13.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" - }, - "peerDependencies": { - "webpack": "^5.1.0" - }, - "peerDependenciesMeta": { - "@swc/core": { - "optional": true - }, - "esbuild": { - "optional": true - }, - "uglify-js": { - "optional": true - } - } - }, - "node_modules/terser/node_modules/commander": { - "version": "2.20.3", - "resolved": "https://npm.sinequa.com/commander/-/commander-2.20.3.tgz", - "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", - "dev": true, - "license": "MIT" - }, - "node_modules/thenify": { - "version": "3.3.1", - "resolved": "https://npm.sinequa.com/thenify/-/thenify-3.3.1.tgz", - "integrity": "sha512-RVZSIV5IG10Hk3enotrhvz0T9em6cyHBLkH/YAZuKqd8hRkKhSfCGIcP2KUY0EPxndzANBmNllzWPwak+bheSw==", - "dev": true, - "license": "MIT", - "dependencies": { - "any-promise": "^1.0.0" - } - }, - "node_modules/thenify-all": { - "version": "1.6.0", - "resolved": "https://npm.sinequa.com/thenify-all/-/thenify-all-1.6.0.tgz", - "integrity": "sha512-RNxQH/qI8/t3thXJDwcstUO4zeqo64+Uy/+sNVRBx4Xn2OX+OZ9oP+iJnNFqplFra2ZUVeKCSa2oVWi3T4uVmA==", - "dev": true, - "license": "MIT", - "dependencies": { - "thenify": ">= 3.1.0 < 4" - }, - "engines": { - "node": ">=0.8" - } - }, - "node_modules/thingies": { - "version": "1.21.0", - "resolved": "https://npm.sinequa.com/thingies/-/thingies-1.21.0.tgz", - "integrity": "sha512-hsqsJsFMsV+aD4s3CWKk85ep/3I9XzYV/IXaSouJMYIoDlgyi11cBhsqYe9/geRfB0YIikBQg6raRaM+nIMP9g==", - "dev": true, - "license": "Unlicense", - "engines": { - "node": ">=10.18" - }, - "peerDependencies": { - "tslib": "^2" - } - }, - "node_modules/thunky": { - "version": "1.1.0", - "resolved": "https://npm.sinequa.com/thunky/-/thunky-1.1.0.tgz", - "integrity": "sha512-eHY7nBftgThBqOyHGVN+l8gF0BucP09fMo0oO/Lb0w1OF80dJv+lDVpXG60WMQvkcxAkNybKsrEIE3ZtKGmPrA==", - "dev": true, - "license": "MIT" - }, - "node_modules/tmp": { - "version": "0.0.33", - "resolved": "https://npm.sinequa.com/tmp/-/tmp-0.0.33.tgz", - "integrity": "sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==", - "dev": true, - "license": "MIT", - "dependencies": { - "os-tmpdir": "~1.0.2" - }, - "engines": { - "node": ">=0.6.0" - } - }, - "node_modules/to-regex-range": { - "version": "5.0.1", - "resolved": "https://npm.sinequa.com/to-regex-range/-/to-regex-range-5.0.1.tgz", - "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "is-number": "^7.0.0" - }, - "engines": { - "node": ">=8.0" - } - }, - "node_modules/toidentifier": { - "version": "1.0.1", - "resolved": "https://npm.sinequa.com/toidentifier/-/toidentifier-1.0.1.tgz", - "integrity": "sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.6" - } - }, - "node_modules/tough-cookie": { - "version": "4.1.4", - "resolved": "https://npm.sinequa.com/tough-cookie/-/tough-cookie-4.1.4.tgz", - "integrity": "sha512-Loo5UUvLD9ScZ6jh8beX1T6sO1w2/MpCRpEP7V280GKMVUQ0Jzar2U3UJPsrdbziLEMMhu3Ujnq//rhiFuIeag==", - "license": "BSD-3-Clause", - "dependencies": { - "psl": "^1.1.33", - "punycode": "^2.1.1", - "universalify": "^0.2.0", - "url-parse": "^1.5.3" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/tough-cookie/node_modules/universalify": { - "version": "0.2.0", - "resolved": "https://npm.sinequa.com/universalify/-/universalify-0.2.0.tgz", - "integrity": "sha512-CJ1QgKmNg3CwvAv/kOFmtnEN05f0D/cn9QntgNOQlQF9dgvVTHj3t+8JPdjqawCHk7V/KA+fbUqzZ9XWhcqPUg==", - "license": "MIT", - "engines": { - "node": ">= 4.0.0" - } - }, - "node_modules/tr46": { - "version": "0.0.3", - "resolved": "https://npm.sinequa.com/tr46/-/tr46-0.0.3.tgz", - "integrity": "sha1-gYT9NH2snNwYWZLzpmIuFLnZq2o=", - "license": "MIT" - }, - "node_modules/tree-dump": { - "version": "1.0.2", - "resolved": "https://npm.sinequa.com/tree-dump/-/tree-dump-1.0.2.tgz", - "integrity": "sha512-dpev9ABuLWdEubk+cIaI9cHwRNNDjkBBLXTwI4UCUFdQ5xXKqNXoK4FEciw/vxf+NQ7Cb7sGUyeUtORvHIdRXQ==", - "dev": true, - "license": "Apache-2.0", - "engines": { - "node": ">=10.0" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/streamich" - }, - "peerDependencies": { - "tslib": "2" - } - }, - "node_modules/tree-kill": { - "version": "1.2.2", - "resolved": "https://npm.sinequa.com/tree-kill/-/tree-kill-1.2.2.tgz", - "integrity": "sha512-L0Orpi8qGpRG//Nd+H90vFB+3iHnue1zSSGmNOOCh1GLJ7rUKVwV2HvijphGQS2UmhUZewS9VgvxYIdgr+fG1A==", - "dev": true, - "license": "MIT", - "bin": { - "tree-kill": "cli.js" - } - }, - "node_modules/ts-interface-checker": { - "version": "0.1.13", - "resolved": "https://npm.sinequa.com/ts-interface-checker/-/ts-interface-checker-0.1.13.tgz", - "integrity": "sha512-Y/arvbn+rrz3JCKl9C4kVNfTfSm2/mEp5FSz5EsZSANGPSlQrpRI5M4PKF+mJnE52jOO90PnPSc3Ur3bTQw0gA==", - "dev": true, - "license": "Apache-2.0" - }, - "node_modules/tslib": { - "version": "2.8.1", - "resolved": "https://npm.sinequa.com/tslib/-/tslib-2.8.1.tgz", - "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==", - "license": "0BSD" - }, - "node_modules/tuf-js": { - "version": "2.2.1", - "resolved": "https://npm.sinequa.com/tuf-js/-/tuf-js-2.2.1.tgz", - "integrity": "sha512-GwIJau9XaA8nLVbUXsN3IlFi7WmQ48gBUrl3FTkkL/XLu/POhBzfmX9hd33FNMX1qAsfl6ozO1iMmW9NC8YniA==", - "dev": true, - "license": "MIT", - "dependencies": { - "@tufjs/models": "2.0.1", - "debug": "^4.3.4", - "make-fetch-happen": "^13.0.1" - }, - "engines": { - "node": "^16.14.0 || >=18.0.0" - } - }, - "node_modules/type-fest": { - "version": "0.21.3", - "resolved": "https://npm.sinequa.com/type-fest/-/type-fest-0.21.3.tgz", - "integrity": "sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==", - "dev": true, - "license": "(MIT OR CC0-1.0)", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/type-is": { - "version": "1.6.18", - "resolved": "https://npm.sinequa.com/type-is/-/type-is-1.6.18.tgz", - "integrity": "sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==", - "dev": true, - "license": "MIT", - "dependencies": { - "media-typer": "0.3.0", - "mime-types": "~2.1.24" - }, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/typed-assert": { - "version": "1.0.9", - "resolved": "https://npm.sinequa.com/typed-assert/-/typed-assert-1.0.9.tgz", - "integrity": "sha512-KNNZtayBCtmnNmbo5mG47p1XsCyrx6iVqomjcZnec/1Y5GGARaxPs6r49RnSPeUP3YjNYiU9sQHAtY4BBvnZwg==", - "dev": true, - "license": "MIT" - }, - "node_modules/typescript": { - "version": "5.4.5", - "resolved": "https://npm.sinequa.com/typescript/-/typescript-5.4.5.tgz", - "integrity": "sha512-vcI4UpRgg81oIRUFwR0WSIHKt11nJ7SAVlYNIu+QpqeyXP+gpQJy/Z4+F0aGxSE4MqwjyXvW/TzgkLAx2AGHwQ==", - "dev": true, - "license": "Apache-2.0", - "bin": { - "tsc": "bin/tsc", - "tsserver": "bin/tsserver" - }, - "engines": { - "node": ">=14.17" - } - }, - "node_modules/undici-types": { - "version": "6.20.0", - "resolved": "https://npm.sinequa.com/undici-types/-/undici-types-6.20.0.tgz", - "integrity": "sha512-Ny6QZ2Nju20vw1SRHe3d9jVu6gJ+4e3+MMpqu7pqE5HT6WsTSlce++GQmK5UXS8mzV8DSYHrQH+Xrf2jVcuKNg==", - "dev": true, - "license": "MIT" - }, - "node_modules/unicode-canonical-property-names-ecmascript": { - "version": "2.0.1", - "resolved": "https://npm.sinequa.com/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-2.0.1.tgz", - "integrity": "sha512-dA8WbNeb2a6oQzAQ55YlT5vQAWGV9WXOsi3SskE3bcCdM0P4SDd+24zS/OCacdRq5BkdsRj9q3Pg6YyQoxIGqg==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=4" - } - }, - "node_modules/unicode-match-property-ecmascript": { - "version": "2.0.0", - "resolved": "https://npm.sinequa.com/unicode-match-property-ecmascript/-/unicode-match-property-ecmascript-2.0.0.tgz", - "integrity": "sha512-5kaZCrbp5mmbz5ulBkDkbY0SsPOjKqVS35VpL9ulMPfSl0J0Xsm+9Evphv9CoIZFwre7aJoa94AY6seMKGVN5Q==", - "dev": true, - "license": "MIT", - "dependencies": { - "unicode-canonical-property-names-ecmascript": "^2.0.0", - "unicode-property-aliases-ecmascript": "^2.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/unicode-match-property-value-ecmascript": { - "version": "2.2.0", - "resolved": "https://npm.sinequa.com/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-2.2.0.tgz", - "integrity": "sha512-4IehN3V/+kkr5YeSSDDQG8QLqO26XpL2XP3GQtqwlT/QYSECAwFztxVHjlbh0+gjJ3XmNLS0zDsbgs9jWKExLg==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=4" - } - }, - "node_modules/unicode-property-aliases-ecmascript": { - "version": "2.1.0", - "resolved": "https://npm.sinequa.com/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-2.1.0.tgz", - "integrity": "sha512-6t3foTQI9qne+OZoVQB/8x8rk2k1eVy1gRXhV3oFQ5T6R1dqQ1xtin3XqSlx3+ATBkliTaR/hHyJBm+LVPNM8w==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=4" - } - }, - "node_modules/unicorn-magic": { - "version": "0.1.0", - "resolved": "https://npm.sinequa.com/unicorn-magic/-/unicorn-magic-0.1.0.tgz", - "integrity": "sha512-lRfVq8fE8gz6QMBuDM6a+LO3IAzTi05H6gCVaUpir2E1Rwpo4ZUog45KpNXKC/Mn3Yb9UDuHumeFTo9iV/D9FQ==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=18" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/unique-filename": { - "version": "3.0.0", - "resolved": "https://npm.sinequa.com/unique-filename/-/unique-filename-3.0.0.tgz", - "integrity": "sha512-afXhuC55wkAmZ0P18QsVE6kp8JaxrEokN2HGIoIVv2ijHQd419H0+6EigAFcIzXeMIkcIkNBpB3L/DXB3cTS/g==", - "dev": true, - "license": "ISC", - "dependencies": { - "unique-slug": "^4.0.0" - }, - "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" - } - }, - "node_modules/unique-slug": { - "version": "4.0.0", - "resolved": "https://npm.sinequa.com/unique-slug/-/unique-slug-4.0.0.tgz", - "integrity": "sha512-WrcA6AyEfqDX5bWige/4NQfPZMtASNVxdmWR76WESYQVAACSgWcR6e9i0mofqqBxYFtL4oAxPIptY73/0YE1DQ==", - "dev": true, - "license": "ISC", - "dependencies": { - "imurmurhash": "^0.1.4" - }, - "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" - } - }, - "node_modules/universalify": { - "version": "2.0.1", - "resolved": "https://npm.sinequa.com/universalify/-/universalify-2.0.1.tgz", - "integrity": "sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==", - "license": "MIT", - "engines": { - "node": ">= 10.0.0" - } - }, - "node_modules/unpipe": { - "version": "1.0.0", - "resolved": "https://npm.sinequa.com/unpipe/-/unpipe-1.0.0.tgz", - "integrity": "sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw=", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/update-browserslist-db": { - "version": "1.1.2", - "resolved": "https://npm.sinequa.com/update-browserslist-db/-/update-browserslist-db-1.1.2.tgz", - "integrity": "sha512-PPypAm5qvlD7XMZC3BujecnaOxwhrtoFR+Dqkk5Aa/6DssiH0ibKoketaj9w8LP7Bont1rYeoV5plxD7RTEPRg==", - "dev": true, - "funding": [ - { - "type": "opencollective", - "url": "https://opencollective.com/browserslist" - }, - { - "type": "tidelift", - "url": "https://tidelift.com/funding/github/npm/browserslist" - }, - { - "type": "github", - "url": "https://github.com/sponsors/ai" - } - ], - "license": "MIT", - "dependencies": { - "escalade": "^3.2.0", - "picocolors": "^1.1.1" - }, - "bin": { - "update-browserslist-db": "cli.js" - }, - "peerDependencies": { - "browserslist": ">= 4.21.0" - } - }, - "node_modules/uri-js": { - "version": "4.4.1", - "resolved": "https://npm.sinequa.com/uri-js/-/uri-js-4.4.1.tgz", - "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", - "dev": true, - "license": "BSD-2-Clause", - "dependencies": { - "punycode": "^2.1.0" - } - }, - "node_modules/url-parse": { - "version": "1.5.10", - "resolved": "https://npm.sinequa.com/url-parse/-/url-parse-1.5.10.tgz", - "integrity": "sha512-WypcfiRhfeUP9vvF0j6rw0J3hrWrw6iZv3+22h6iRMJ/8z1Tj6XfLP4DsUix5MhMPnXpiHDoKyoZ/bdCkwBCiQ==", - "license": "MIT", - "dependencies": { - "querystringify": "^2.1.1", - "requires-port": "^1.0.0" - } - }, - "node_modules/util-deprecate": { - "version": "1.0.2", - "resolved": "https://npm.sinequa.com/util-deprecate/-/util-deprecate-1.0.2.tgz", - "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=", - "license": "MIT" - }, - "node_modules/utils-merge": { - "version": "1.0.1", - "resolved": "https://npm.sinequa.com/utils-merge/-/utils-merge-1.0.1.tgz", - "integrity": "sha1-n5VxD1CiZ5R7LMwSR0HBAoQn5xM=", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 0.4.0" - } - }, - "node_modules/uuid": { - "version": "8.3.2", - "resolved": "https://npm.sinequa.com/uuid/-/uuid-8.3.2.tgz", - "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==", - "dev": true, - "license": "MIT", - "bin": { - "uuid": "dist/bin/uuid" - } - }, - "node_modules/validate-npm-package-license": { - "version": "3.0.4", - "resolved": "https://npm.sinequa.com/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz", - "integrity": "sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==", - "dev": true, - "license": "Apache-2.0", - "dependencies": { - "spdx-correct": "^3.0.0", - "spdx-expression-parse": "^3.0.0" - } - }, - "node_modules/validate-npm-package-name": { - "version": "5.0.1", - "resolved": "https://npm.sinequa.com/validate-npm-package-name/-/validate-npm-package-name-5.0.1.tgz", - "integrity": "sha512-OljLrQ9SQdOUqTaQxqL5dEfZWrXExyyWsozYlAWFawPVNuD83igl7uJD2RTkNMbniIYgt8l81eCJGIdQF7avLQ==", - "dev": true, - "license": "ISC", - "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" - } - }, - "node_modules/vary": { - "version": "1.1.2", - "resolved": "https://npm.sinequa.com/vary/-/vary-1.1.2.tgz", - "integrity": "sha1-IpnwLG3tMNSllhsLn3RSShj2NPw=", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/vite": { - "version": "5.4.14", - "resolved": "https://npm.sinequa.com/vite/-/vite-5.4.14.tgz", - "integrity": "sha512-EK5cY7Q1D8JNhSaPKVK4pwBFvaTmZxEnoKXLG/U9gmdDcihQGNzFlgIvaxezFR4glP1LsuiedwMBqCXH3wZccA==", - "dev": true, - "license": "MIT", - "dependencies": { - "esbuild": "^0.21.3", - "postcss": "^8.4.43", - "rollup": "^4.20.0" - }, - "bin": { - "vite": "bin/vite.js" - }, - "engines": { - "node": "^18.0.0 || >=20.0.0" - }, - "funding": { - "url": "https://github.com/vitejs/vite?sponsor=1" - }, - "optionalDependencies": { - "fsevents": "~2.3.3" - }, - "peerDependencies": { - "@types/node": "^18.0.0 || >=20.0.0", - "less": "*", - "lightningcss": "^1.21.0", - "sass": "*", - "sass-embedded": "*", - "stylus": "*", - "sugarss": "*", - "terser": "^5.4.0" - }, - "peerDependenciesMeta": { - "@types/node": { - "optional": true - }, - "less": { - "optional": true - }, - "lightningcss": { - "optional": true - }, - "sass": { - "optional": true - }, - "sass-embedded": { - "optional": true - }, - "stylus": { - "optional": true - }, - "sugarss": { - "optional": true - }, - "terser": { - "optional": true - } - } - }, - "node_modules/watchpack": { - "version": "2.4.1", - "resolved": "https://npm.sinequa.com/watchpack/-/watchpack-2.4.1.tgz", - "integrity": "sha512-8wrBCMtVhqcXP2Sup1ctSkga6uc2Bx0IIvKyT7yTFier5AXHooSI+QyQQAtTb7+E0IUCCKyTFmXqdqgum2XWGg==", - "dev": true, - "license": "MIT", - "dependencies": { - "glob-to-regexp": "^0.4.1", - "graceful-fs": "^4.1.2" - }, - "engines": { - "node": ">=10.13.0" - } - }, - "node_modules/wbuf": { - "version": "1.7.3", - "resolved": "https://npm.sinequa.com/wbuf/-/wbuf-1.7.3.tgz", - "integrity": "sha512-O84QOnr0icsbFGLS0O3bI5FswxzRr8/gHwWkDlQFskhSPryQXvrTMxjxGP4+iWYoauLoBvfDpkrOauZ+0iZpDA==", - "dev": true, - "license": "MIT", - "dependencies": { - "minimalistic-assert": "^1.0.0" - } - }, - "node_modules/wcwidth": { - "version": "1.0.1", - "resolved": "https://npm.sinequa.com/wcwidth/-/wcwidth-1.0.1.tgz", - "integrity": "sha1-8LDc+RW8X/FSivrbLA4XtTLaL+g=", - "license": "MIT", - "dependencies": { - "defaults": "^1.0.3" - } - }, - "node_modules/weak-lru-cache": { - "version": "1.2.2", - "resolved": "https://npm.sinequa.com/weak-lru-cache/-/weak-lru-cache-1.2.2.tgz", - "integrity": "sha512-DEAoo25RfSYMuTGc9vPJzZcZullwIqRDSI9LOy+fkCJPi6hykCnfKaXTuPBDuXAUcqHXyOgFtHNp/kB2FjYHbw==", - "dev": true, - "license": "MIT" - }, - "node_modules/webidl-conversions": { - "version": "3.0.1", - "resolved": "https://npm.sinequa.com/webidl-conversions/-/webidl-conversions-3.0.1.tgz", - "integrity": "sha1-JFNCdeKnvGvnvIZhHMFq4KVlSHE=", - "license": "BSD-2-Clause" - }, - "node_modules/webpack": { - "version": "5.94.0", - "resolved": "https://npm.sinequa.com/webpack/-/webpack-5.94.0.tgz", - "integrity": "sha512-KcsGn50VT+06JH/iunZJedYGUJS5FGjow8wb9c0v5n1Om8O1g4L6LjtfxwlXIATopoQu+vOXXa7gYisWxCoPyg==", - "dev": true, - "license": "MIT", - "dependencies": { - "@types/estree": "^1.0.5", - "@webassemblyjs/ast": "^1.12.1", - "@webassemblyjs/wasm-edit": "^1.12.1", - "@webassemblyjs/wasm-parser": "^1.12.1", - "acorn": "^8.7.1", - "acorn-import-attributes": "^1.9.5", - "browserslist": "^4.21.10", - "chrome-trace-event": "^1.0.2", - "enhanced-resolve": "^5.17.1", - "es-module-lexer": "^1.2.1", - "eslint-scope": "5.1.1", - "events": "^3.2.0", - "glob-to-regexp": "^0.4.1", - "graceful-fs": "^4.2.11", - "json-parse-even-better-errors": "^2.3.1", - "loader-runner": "^4.2.0", - "mime-types": "^2.1.27", - "neo-async": "^2.6.2", - "schema-utils": "^3.2.0", - "tapable": "^2.1.1", - "terser-webpack-plugin": "^5.3.10", - "watchpack": "^2.4.1", - "webpack-sources": "^3.2.3" - }, - "bin": { - "webpack": "bin/webpack.js" - }, - "engines": { - "node": ">=10.13.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" - }, - "peerDependenciesMeta": { - "webpack-cli": { - "optional": true - } - } - }, - "node_modules/webpack-dev-middleware": { - "version": "7.4.2", - "resolved": "https://npm.sinequa.com/webpack-dev-middleware/-/webpack-dev-middleware-7.4.2.tgz", - "integrity": "sha512-xOO8n6eggxnwYpy1NlzUKpvrjfJTvae5/D6WOK0S2LSo7vjmo5gCM1DbLUmFqrMTJP+W/0YZNctm7jasWvLuBA==", - "dev": true, - "license": "MIT", - "dependencies": { - "colorette": "^2.0.10", - "memfs": "^4.6.0", - "mime-types": "^2.1.31", - "on-finished": "^2.4.1", - "range-parser": "^1.2.1", - "schema-utils": "^4.0.0" - }, - "engines": { - "node": ">= 18.12.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" - }, - "peerDependencies": { - "webpack": "^5.0.0" - }, - "peerDependenciesMeta": { - "webpack": { - "optional": true - } - } - }, - "node_modules/webpack-dev-server": { - "version": "5.0.4", - "resolved": "https://npm.sinequa.com/webpack-dev-server/-/webpack-dev-server-5.0.4.tgz", - "integrity": "sha512-dljXhUgx3HqKP2d8J/fUMvhxGhzjeNVarDLcbO/EWMSgRizDkxHQDZQaLFL5VJY9tRBj2Gz+rvCEYYvhbqPHNA==", - "dev": true, - "license": "MIT", - "dependencies": { - "@types/bonjour": "^3.5.13", - "@types/connect-history-api-fallback": "^1.5.4", - "@types/express": "^4.17.21", - "@types/serve-index": "^1.9.4", - "@types/serve-static": "^1.15.5", - "@types/sockjs": "^0.3.36", - "@types/ws": "^8.5.10", - "ansi-html-community": "^0.0.8", - "bonjour-service": "^1.2.1", - "chokidar": "^3.6.0", - "colorette": "^2.0.10", - "compression": "^1.7.4", - "connect-history-api-fallback": "^2.0.0", - "default-gateway": "^6.0.3", - "express": "^4.17.3", - "graceful-fs": "^4.2.6", - "html-entities": "^2.4.0", - "http-proxy-middleware": "^2.0.3", - "ipaddr.js": "^2.1.0", - "launch-editor": "^2.6.1", - "open": "^10.0.3", - "p-retry": "^6.2.0", - "rimraf": "^5.0.5", - "schema-utils": "^4.2.0", - "selfsigned": "^2.4.1", - "serve-index": "^1.9.1", - "sockjs": "^0.3.24", - "spdy": "^4.0.2", - "webpack-dev-middleware": "^7.1.0", - "ws": "^8.16.0" - }, - "bin": { - "webpack-dev-server": "bin/webpack-dev-server.js" - }, - "engines": { - "node": ">= 18.12.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" - }, - "peerDependencies": { - "webpack": "^5.0.0" - }, - "peerDependenciesMeta": { - "webpack": { - "optional": true - }, - "webpack-cli": { - "optional": true - } - } - }, - "node_modules/webpack-dev-server/node_modules/chokidar": { - "version": "3.6.0", - "resolved": "https://npm.sinequa.com/chokidar/-/chokidar-3.6.0.tgz", - "integrity": "sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==", - "dev": true, - "license": "MIT", - "dependencies": { - "anymatch": "~3.1.2", - "braces": "~3.0.2", - "glob-parent": "~5.1.2", - "is-binary-path": "~2.1.0", - "is-glob": "~4.0.1", - "normalize-path": "~3.0.0", - "readdirp": "~3.6.0" - }, - "engines": { - "node": ">= 8.10.0" - }, - "funding": { - "url": "https://paulmillr.com/funding/" - }, - "optionalDependencies": { - "fsevents": "~2.3.2" - } - }, - "node_modules/webpack-dev-server/node_modules/glob-parent": { - "version": "5.1.2", - "resolved": "https://npm.sinequa.com/glob-parent/-/glob-parent-5.1.2.tgz", - "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", - "dev": true, - "license": "ISC", - "dependencies": { - "is-glob": "^4.0.1" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/webpack-dev-server/node_modules/http-proxy-middleware": { - "version": "2.0.7", - "resolved": "https://npm.sinequa.com/http-proxy-middleware/-/http-proxy-middleware-2.0.7.tgz", - "integrity": "sha512-fgVY8AV7qU7z/MmXJ/rxwbrtQH4jBQ9m7kp3llF0liB7glmFeVZFBepQb32T3y8n8k2+AEYuMPCpinYW+/CuRA==", - "dev": true, - "license": "MIT", - "dependencies": { - "@types/http-proxy": "^1.17.8", - "http-proxy": "^1.18.1", - "is-glob": "^4.0.1", - "is-plain-obj": "^3.0.0", - "micromatch": "^4.0.2" - }, - "engines": { - "node": ">=12.0.0" - }, - "peerDependencies": { - "@types/express": "^4.17.13" - }, - "peerDependenciesMeta": { - "@types/express": { - "optional": true - } - } - }, - "node_modules/webpack-dev-server/node_modules/picomatch": { - "version": "2.3.1", - "resolved": "https://npm.sinequa.com/picomatch/-/picomatch-2.3.1.tgz", - "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8.6" - }, - "funding": { - "url": "https://github.com/sponsors/jonschlinkert" - } - }, - "node_modules/webpack-dev-server/node_modules/readdirp": { - "version": "3.6.0", - "resolved": "https://npm.sinequa.com/readdirp/-/readdirp-3.6.0.tgz", - "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", - "dev": true, - "license": "MIT", - "dependencies": { - "picomatch": "^2.2.1" - }, - "engines": { - "node": ">=8.10.0" - } - }, - "node_modules/webpack-dev-server/node_modules/ws": { - "version": "8.18.0", - "resolved": "https://npm.sinequa.com/ws/-/ws-8.18.0.tgz", - "integrity": "sha512-8VbfWfHLbbwu3+N6OKsOMpBdT4kXPDDB9cJk2bJ6mh9ucxdlnNvH1e+roYkKmN9Nxw2yjz7VzeO9oOz2zJ04Pw==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=10.0.0" - }, - "peerDependencies": { - "bufferutil": "^4.0.1", - "utf-8-validate": ">=5.0.2" - }, - "peerDependenciesMeta": { - "bufferutil": { - "optional": true - }, - "utf-8-validate": { - "optional": true - } - } - }, - "node_modules/webpack-merge": { - "version": "6.0.1", - "resolved": "https://npm.sinequa.com/webpack-merge/-/webpack-merge-6.0.1.tgz", - "integrity": "sha512-hXXvrjtx2PLYx4qruKl+kyRSLc52V+cCvMxRjmKwoA+CBbbF5GfIBtR6kCvl0fYGqTUPKB+1ktVmTHqMOzgCBg==", - "dev": true, - "license": "MIT", - "dependencies": { - "clone-deep": "^4.0.1", - "flat": "^5.0.2", - "wildcard": "^2.0.1" - }, - "engines": { - "node": ">=18.0.0" - } - }, - "node_modules/webpack-sources": { - "version": "3.2.3", - "resolved": "https://npm.sinequa.com/webpack-sources/-/webpack-sources-3.2.3.tgz", - "integrity": "sha512-/DyMEOrDgLKKIG0fmvtz+4dUX/3Ghozwgm6iPp8KRhvn+eQf9+Q7GWxVNMk3+uCPWfdXYC4ExGBckIXdFEfH1w==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=10.13.0" - } - }, - "node_modules/webpack-subresource-integrity": { - "version": "5.1.0", - "resolved": "https://npm.sinequa.com/webpack-subresource-integrity/-/webpack-subresource-integrity-5.1.0.tgz", - "integrity": "sha512-sacXoX+xd8r4WKsy9MvH/q/vBtEHr86cpImXwyg74pFIpERKt6FmB8cXpeuh0ZLgclOlHI4Wcll7+R5L02xk9Q==", - "dev": true, - "license": "MIT", - "dependencies": { - "typed-assert": "^1.0.8" - }, - "engines": { - "node": ">= 12" - }, - "peerDependencies": { - "html-webpack-plugin": ">= 5.0.0-beta.1 < 6", - "webpack": "^5.12.0" - }, - "peerDependenciesMeta": { - "html-webpack-plugin": { - "optional": true - } - } - }, - "node_modules/webpack/node_modules/ajv": { - "version": "6.12.6", - "resolved": "https://npm.sinequa.com/ajv/-/ajv-6.12.6.tgz", - "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", - "dev": true, - "license": "MIT", - "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" - } - }, - "node_modules/webpack/node_modules/ajv-keywords": { - "version": "3.5.2", - "resolved": "https://npm.sinequa.com/ajv-keywords/-/ajv-keywords-3.5.2.tgz", - "integrity": "sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==", - "dev": true, - "license": "MIT", - "peerDependencies": { - "ajv": "^6.9.1" - } - }, - "node_modules/webpack/node_modules/json-parse-even-better-errors": { - "version": "2.3.1", - "resolved": "https://npm.sinequa.com/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz", - "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==", - "dev": true, - "license": "MIT" - }, - "node_modules/webpack/node_modules/json-schema-traverse": { - "version": "0.4.1", - "resolved": "https://npm.sinequa.com/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", - "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", - "dev": true, - "license": "MIT" - }, - "node_modules/webpack/node_modules/schema-utils": { - "version": "3.3.0", - "resolved": "https://npm.sinequa.com/schema-utils/-/schema-utils-3.3.0.tgz", - "integrity": "sha512-pN/yOAvcC+5rQ5nERGuwrjLlYvLTbCibnZ1I7B1LaiAz9BRBlE9GMgE/eqV30P7aJQUf7Ddimy/RsbYO/GrVGg==", - "dev": true, - "license": "MIT", - "dependencies": { - "@types/json-schema": "^7.0.8", - "ajv": "^6.12.5", - "ajv-keywords": "^3.5.2" - }, - "engines": { - "node": ">= 10.13.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" - } - }, - "node_modules/websocket-driver": { - "version": "0.7.4", - "resolved": "https://npm.sinequa.com/websocket-driver/-/websocket-driver-0.7.4.tgz", - "integrity": "sha512-b17KeDIQVjvb0ssuSDF2cYXSg2iztliJ4B9WdsuB6J952qCPKmnVq4DyW5motImXHDC1cBT/1UezrJVsKw5zjg==", - "dev": true, - "license": "Apache-2.0", - "dependencies": { - "http-parser-js": ">=0.5.1", - "safe-buffer": ">=5.1.0", - "websocket-extensions": ">=0.1.1" - }, - "engines": { - "node": ">=0.8.0" - } - }, - "node_modules/websocket-extensions": { - "version": "0.1.4", - "resolved": "https://npm.sinequa.com/websocket-extensions/-/websocket-extensions-0.1.4.tgz", - "integrity": "sha512-OqedPIGOfsDlo31UNwYbCFMSaO9m9G/0faIHj5/dZFDMFqPTcx6UwqyOy3COEaEOg/9VsGIpdqn62W5KhoKSpg==", - "dev": true, - "license": "Apache-2.0", - "engines": { - "node": ">=0.8.0" - } - }, - "node_modules/whatwg-url": { - "version": "5.0.0", - "resolved": "https://npm.sinequa.com/whatwg-url/-/whatwg-url-5.0.0.tgz", - "integrity": "sha1-lmRU6HZUYuN2RNNib2dCzotwll0=", - "license": "MIT", - "dependencies": { - "tr46": "~0.0.3", - "webidl-conversions": "^3.0.0" - } - }, - "node_modules/which": { - "version": "2.0.2", - "resolved": "https://npm.sinequa.com/which/-/which-2.0.2.tgz", - "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", - "license": "ISC", - "dependencies": { - "isexe": "^2.0.0" - }, - "bin": { - "node-which": "bin/node-which" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/wildcard": { - "version": "2.0.1", - "resolved": "https://npm.sinequa.com/wildcard/-/wildcard-2.0.1.tgz", - "integrity": "sha512-CC1bOL87PIWSBhDcTrdeLo6eGT7mCFtrg0uIJtqJUFyK+eJnzl8A1niH56uu7KMa5XFrtiV+AQuHO3n7DsHnLQ==", - "dev": true, - "license": "MIT" - }, - "node_modules/wrap-ansi": { - "version": "6.2.0", - "resolved": "https://npm.sinequa.com/wrap-ansi/-/wrap-ansi-6.2.0.tgz", - "integrity": "sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==", - "dev": true, - "license": "MIT", - "dependencies": { - "ansi-styles": "^4.0.0", - "string-width": "^4.1.0", - "strip-ansi": "^6.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/wrap-ansi-cjs": { - "name": "wrap-ansi", - "version": "7.0.0", - "resolved": "https://npm.sinequa.com/wrap-ansi/-/wrap-ansi-7.0.0.tgz", - "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", - "license": "MIT", - "dependencies": { - "ansi-styles": "^4.0.0", - "string-width": "^4.1.0", - "strip-ansi": "^6.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/wrap-ansi?sponsor=1" - } - }, - "node_modules/wrap-ansi-cjs/node_modules/emoji-regex": { - "version": "8.0.0", - "resolved": "https://npm.sinequa.com/emoji-regex/-/emoji-regex-8.0.0.tgz", - "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", - "license": "MIT" - }, - "node_modules/wrap-ansi-cjs/node_modules/is-fullwidth-code-point": { - "version": "3.0.0", - "resolved": "https://npm.sinequa.com/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", - "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/wrap-ansi-cjs/node_modules/string-width": { - "version": "4.2.3", - "resolved": "https://npm.sinequa.com/string-width/-/string-width-4.2.3.tgz", - "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", - "license": "MIT", - "dependencies": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/wrap-ansi/node_modules/emoji-regex": { - "version": "8.0.0", - "resolved": "https://npm.sinequa.com/emoji-regex/-/emoji-regex-8.0.0.tgz", - "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", - "dev": true, - "license": "MIT" - }, - "node_modules/wrap-ansi/node_modules/is-fullwidth-code-point": { - "version": "3.0.0", - "resolved": "https://npm.sinequa.com/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", - "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/wrap-ansi/node_modules/string-width": { - "version": "4.2.3", - "resolved": "https://npm.sinequa.com/string-width/-/string-width-4.2.3.tgz", - "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", - "dev": true, - "license": "MIT", - "dependencies": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/wrappy": { - "version": "1.0.2", - "resolved": "https://npm.sinequa.com/wrappy/-/wrappy-1.0.2.tgz", - "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=", - "license": "ISC" - }, - "node_modules/ws": { - "version": "7.5.10", - "resolved": "https://npm.sinequa.com/ws/-/ws-7.5.10.tgz", - "integrity": "sha512-+dbF1tHwZpXcbOJdVOkzLDxZP1ailvSxM6ZweXTegylPny803bFhA+vqBYw4s31NSAk4S2Qz+AKXK9a4wkdjcQ==", - "license": "MIT", - "engines": { - "node": ">=8.3.0" - }, - "peerDependencies": { - "bufferutil": "^4.0.1", - "utf-8-validate": "^5.0.2" - }, - "peerDependenciesMeta": { - "bufferutil": { - "optional": true - }, - "utf-8-validate": { - "optional": true - } - } - }, - "node_modules/y18n": { - "version": "5.0.8", - "resolved": "https://npm.sinequa.com/y18n/-/y18n-5.0.8.tgz", - "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==", - "license": "ISC", - "engines": { - "node": ">=10" - } - }, - "node_modules/yallist": { - "version": "3.1.1", - "resolved": "https://npm.sinequa.com/yallist/-/yallist-3.1.1.tgz", - "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==", - "dev": true, - "license": "ISC" - }, - "node_modules/yaml": { - "version": "2.7.0", - "resolved": "https://npm.sinequa.com/yaml/-/yaml-2.7.0.tgz", - "integrity": "sha512-+hSoy/QHluxmC9kCIJyL/uyFmLmc+e5CFR5Wa+bpIhIj85LVb9ZH2nVnqrHoSvKogwODv0ClqZkmiSSaIH5LTA==", - "dev": true, - "license": "ISC", - "bin": { - "yaml": "bin.mjs" - }, - "engines": { - "node": ">= 14" - } - }, - "node_modules/yargs": { - "version": "17.7.2", - "resolved": "https://npm.sinequa.com/yargs/-/yargs-17.7.2.tgz", - "integrity": "sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==", - "license": "MIT", - "dependencies": { - "cliui": "^8.0.1", - "escalade": "^3.1.1", - "get-caller-file": "^2.0.5", - "require-directory": "^2.1.1", - "string-width": "^4.2.3", - "y18n": "^5.0.5", - "yargs-parser": "^21.1.1" - }, - "engines": { - "node": ">=12" - } - }, - "node_modules/yargs-parser": { - "version": "21.1.1", - "resolved": "https://npm.sinequa.com/yargs-parser/-/yargs-parser-21.1.1.tgz", - "integrity": "sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==", - "license": "ISC", - "engines": { - "node": ">=12" - } - }, - "node_modules/yargs/node_modules/emoji-regex": { - "version": "8.0.0", - "resolved": "https://npm.sinequa.com/emoji-regex/-/emoji-regex-8.0.0.tgz", - "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", - "license": "MIT" - }, - "node_modules/yargs/node_modules/is-fullwidth-code-point": { - "version": "3.0.0", - "resolved": "https://npm.sinequa.com/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", - "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/yargs/node_modules/string-width": { - "version": "4.2.3", - "resolved": "https://npm.sinequa.com/string-width/-/string-width-4.2.3.tgz", - "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", - "license": "MIT", - "dependencies": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/yocto-queue": { - "version": "1.1.1", - "resolved": "https://npm.sinequa.com/yocto-queue/-/yocto-queue-1.1.1.tgz", - "integrity": "sha512-b4JR1PFR10y1mKjhHY9LaGo6tmrgjit7hxVIeAmyMw3jegXR4dhYqLaQF5zMXZxY7tLpMyJeLjr1C4rLmkVe8g==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=12.20" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/yoctocolors-cjs": { - "version": "2.1.2", - "resolved": "https://npm.sinequa.com/yoctocolors-cjs/-/yoctocolors-cjs-2.1.2.tgz", - "integrity": "sha512-cYVsTjKl8b+FrnidjibDWskAv7UKOfcwaVZdp/it9n1s9fU3IkgDbhdIRKCW4JDsAlECJY0ytoVPT3sK6kideA==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=18" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/zone.js": { - "version": "0.14.10", - "resolved": "https://npm.sinequa.com/zone.js/-/zone.js-0.14.10.tgz", - "integrity": "sha512-YGAhaO7J5ywOXW6InXNlLmfU194F8lVgu7bRntUF3TiG8Y3nBK0x1UJJuHUP/e8IyihkjCYqhCScpSwnlaSRkQ==", - "license": "MIT" - } - } -} +{ + "name": "sinequa-mint", + "version": "0.0.0", + "lockfileVersion": 3, + "requires": true, + "packages": { + "": { + "name": "sinequa-mint", + "version": "0.0.0", + "dependencies": { + "@angular-architects/ngrx-toolkit": "^18.1.1", + "@angular-eslint/schematics": "^18.3.1", + "@angular/animations": "^18.2.5", + "@angular/cdk": "^19.1.0", + "@angular/common": "^18.2.5", + "@angular/compiler": "^18.2.5", + "@angular/core": "^18.2.5", + "@angular/forms": "^18.2.5", + "@angular/platform-browser": "^18.2.5", + "@angular/platform-browser-dynamic": "^18.2.5", + "@angular/router": "^18.2.5", + "@jsverse/transloco": "^7.4.2", + "@jsverse/transloco-messageformat": "^7.0.1", + "@microsoft/signalr": "^7.0.14", + "@ngrx/signals": "^18.1.1", + "@ngrx/store": "^18.1.1", + "@popperjs/core": "^2.11.8", + "@sinequa/atomic": "^0.0.74", + "@sinequa/atomic-angular": "^0.0.158", + "@tanstack/angular-query-experimental": "^5.40.0", + "@types/node": "^16.18.11", + "clsx": "^2.1.0", + "highlight-words": "^1.2.2", + "keyux": "^0.8.2", + "ngx-sonner": "^1.0.0", + "rxjs": "~7.8.0", + "tslib": "^2.3.0", + "zone.js": "~0.14.10" + }, + "devDependencies": { + "@angular-devkit/build-angular": "^18.2.5", + "@angular/cli": "^18.2.5", + "@angular/compiler-cli": "^18.2.5", + "@floating-ui/dom": "^1.6.3", + "@types/unist": "^2.0.7", + "autoprefixer": "^10.4.16", + "husky": "^9.1.7", + "lint-staged": "^15.4.1", + "postcss": "^8.4.32", + "prettier": "^3.4.2", + "prettier-plugin-package": "^1.4.0", + "prettier-plugin-tailwindcss": "^0.6.10", + "tailwind-merge": "^2.2.2", + "tailwindcss": "^3.4.1", + "typescript": "~5.4.2" + } + }, + "node_modules/@alloc/quick-lru": { + "version": "5.2.0", + "resolved": "https://npm.sinequa.com/@alloc/quick-lru/-/quick-lru-5.2.0.tgz", + "integrity": "sha512-UrcABB+4bUrFABwbluTIBErXwvbsU/V7TZWfmbgJfbkwiBuziS9gxdODUyuiecfdGQ85jglMW6juS3+z5TsKLw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@ampproject/remapping": { + "version": "2.3.0", + "resolved": "https://npm.sinequa.com/@ampproject/remapping/-/remapping-2.3.0.tgz", + "integrity": "sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "@jridgewell/gen-mapping": "^0.3.5", + "@jridgewell/trace-mapping": "^0.3.24" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@angular-architects/ngrx-toolkit": { + "version": "18.1.1", + "resolved": "https://npm.sinequa.com/@angular-architects/ngrx-toolkit/-/ngrx-toolkit-18.1.1.tgz", + "integrity": "sha512-0tYPUaFOHFNGc+2xzAh9OKREyQ+Gi5bASzY/mGbG6TQUg68aWdBTTGFv0lLTMKymIfx/6ZCTWILjZR7BQrfKgg==", + "license": "MIT", + "dependencies": { + "tslib": "^2.3.0" + }, + "peerDependencies": { + "@ngrx/signals": ">=18.1.0 <=18.1.1", + "@ngrx/store": ">=18.0.0" + }, + "peerDependenciesMeta": { + "@ngrx/store": { + "optional": true + } + } + }, + "node_modules/@angular-devkit/architect": { + "version": "0.1802.14", + "resolved": "https://npm.sinequa.com/@angular-devkit/architect/-/architect-0.1802.14.tgz", + "integrity": "sha512-eplaGCXSlPwf1f4XwyzsYTd8/lJ0/Adm6XsODsBxvkZlIpLcps80/h2lH5MVJpoDREzIFu1BweDpYCoNK5yYZg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@angular-devkit/core": "18.2.14", + "rxjs": "7.8.1" + }, + "engines": { + "node": "^18.19.1 || ^20.11.1 || >=22.0.0", + "npm": "^6.11.0 || ^7.5.6 || >=8.0.0", + "yarn": ">= 1.13.0" + } + }, + "node_modules/@angular-devkit/build-angular": { + "version": "18.2.14", + "resolved": "https://npm.sinequa.com/@angular-devkit/build-angular/-/build-angular-18.2.14.tgz", + "integrity": "sha512-ycie4OhvNv8eNVqvq46pCIf6kB50xbMOdnAVqmlj+BaQjWbGjUQPjAmp4VGqeDZZ/lW82xkfTmJZxc6pYp7YdQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@ampproject/remapping": "2.3.0", + "@angular-devkit/architect": "0.1802.14", + "@angular-devkit/build-webpack": "0.1802.14", + "@angular-devkit/core": "18.2.14", + "@angular/build": "18.2.14", + "@babel/core": "7.25.2", + "@babel/generator": "7.25.0", + "@babel/helper-annotate-as-pure": "7.24.7", + "@babel/helper-split-export-declaration": "7.24.7", + "@babel/plugin-transform-async-generator-functions": "7.25.0", + "@babel/plugin-transform-async-to-generator": "7.24.7", + "@babel/plugin-transform-runtime": "7.24.7", + "@babel/preset-env": "7.25.3", + "@babel/runtime": "7.25.0", + "@discoveryjs/json-ext": "0.6.1", + "@ngtools/webpack": "18.2.14", + "@vitejs/plugin-basic-ssl": "1.1.0", + "ansi-colors": "4.1.3", + "autoprefixer": "10.4.20", + "babel-loader": "9.1.3", + "browserslist": "^4.21.5", + "copy-webpack-plugin": "12.0.2", + "critters": "0.0.24", + "css-loader": "7.1.2", + "esbuild-wasm": "0.23.0", + "fast-glob": "3.3.2", + "http-proxy-middleware": "3.0.3", + "https-proxy-agent": "7.0.5", + "istanbul-lib-instrument": "6.0.3", + "jsonc-parser": "3.3.1", + "karma-source-map-support": "1.4.0", + "less": "4.2.0", + "less-loader": "12.2.0", + "license-webpack-plugin": "4.0.2", + "loader-utils": "3.3.1", + "magic-string": "0.30.11", + "mini-css-extract-plugin": "2.9.0", + "mrmime": "2.0.0", + "open": "10.1.0", + "ora": "5.4.1", + "parse5-html-rewriting-stream": "7.0.0", + "picomatch": "4.0.2", + "piscina": "4.6.1", + "postcss": "8.4.41", + "postcss-loader": "8.1.1", + "resolve-url-loader": "5.0.0", + "rxjs": "7.8.1", + "sass": "1.77.6", + "sass-loader": "16.0.0", + "semver": "7.6.3", + "source-map-loader": "5.0.0", + "source-map-support": "0.5.21", + "terser": "5.31.6", + "tree-kill": "1.2.2", + "tslib": "2.6.3", + "watchpack": "2.4.1", + "webpack": "5.94.0", + "webpack-dev-middleware": "7.4.2", + "webpack-dev-server": "5.0.4", + "webpack-merge": "6.0.1", + "webpack-subresource-integrity": "5.1.0" + }, + "engines": { + "node": "^18.19.1 || ^20.11.1 || >=22.0.0", + "npm": "^6.11.0 || ^7.5.6 || >=8.0.0", + "yarn": ">= 1.13.0" + }, + "optionalDependencies": { + "esbuild": "0.23.0" + }, + "peerDependencies": { + "@angular/compiler-cli": "^18.0.0", + "@angular/localize": "^18.0.0", + "@angular/platform-server": "^18.0.0", + "@angular/service-worker": "^18.0.0", + "@web/test-runner": "^0.18.0", + "browser-sync": "^3.0.2", + "jest": "^29.5.0", + "jest-environment-jsdom": "^29.5.0", + "karma": "^6.3.0", + "ng-packagr": "^18.0.0", + "protractor": "^7.0.0", + "tailwindcss": "^2.0.0 || ^3.0.0", + "typescript": ">=5.4 <5.6" + }, + "peerDependenciesMeta": { + "@angular/localize": { + "optional": true + }, + "@angular/platform-server": { + "optional": true + }, + "@angular/service-worker": { + "optional": true + }, + "@web/test-runner": { + "optional": true + }, + "browser-sync": { + "optional": true + }, + "jest": { + "optional": true + }, + "jest-environment-jsdom": { + "optional": true + }, + "karma": { + "optional": true + }, + "ng-packagr": { + "optional": true + }, + "protractor": { + "optional": true + }, + "tailwindcss": { + "optional": true + } + } + }, + "node_modules/@angular-devkit/build-angular/node_modules/postcss": { + "version": "8.4.41", + "resolved": "https://npm.sinequa.com/postcss/-/postcss-8.4.41.tgz", + "integrity": "sha512-TesUflQ0WKZqAvg52PWL6kHgLKP6xB6heTOdoYM0Wt2UHyxNa4K25EZZMgKns3BH1RLVbZCREPpLY0rhnNoHVQ==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/postcss" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "dependencies": { + "nanoid": "^3.3.7", + "picocolors": "^1.0.1", + "source-map-js": "^1.2.0" + }, + "engines": { + "node": "^10 || ^12 || >=14" + } + }, + "node_modules/@angular-devkit/build-angular/node_modules/tslib": { + "version": "2.6.3", + "resolved": "https://npm.sinequa.com/tslib/-/tslib-2.6.3.tgz", + "integrity": "sha512-xNvxJEOUiWPGhUuUdQgAJPKOOJfGnIyKySOc09XkKsgdUV/3E2zvwZYdejjmRgPCgcym1juLH3226yA7sEFJKQ==", + "dev": true, + "license": "0BSD" + }, + "node_modules/@angular-devkit/build-webpack": { + "version": "0.1802.14", + "resolved": "https://npm.sinequa.com/@angular-devkit/build-webpack/-/build-webpack-0.1802.14.tgz", + "integrity": "sha512-cccne0SG4BaQHsKRRZCi/wMLJ7yFXrwvE8w+Kug3HdpJJoyH3FeG386EQuca/azslQlK+c5g4ywSZdXeNkGazA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@angular-devkit/architect": "0.1802.14", + "rxjs": "7.8.1" + }, + "engines": { + "node": "^18.19.1 || ^20.11.1 || >=22.0.0", + "npm": "^6.11.0 || ^7.5.6 || >=8.0.0", + "yarn": ">= 1.13.0" + }, + "peerDependencies": { + "webpack": "^5.30.0", + "webpack-dev-server": "^5.0.2" + } + }, + "node_modules/@angular-devkit/core": { + "version": "18.2.14", + "resolved": "https://npm.sinequa.com/@angular-devkit/core/-/core-18.2.14.tgz", + "integrity": "sha512-UGIGOjXuOyCW+5S4tINu7e6LOu738CmTw3h7Ui1I8OzdTIYJcYJrei8sgrwDwOYADRal+p0MeMlnykH3TM5XBA==", + "license": "MIT", + "dependencies": { + "ajv": "8.17.1", + "ajv-formats": "3.0.1", + "jsonc-parser": "3.3.1", + "picomatch": "4.0.2", + "rxjs": "7.8.1", + "source-map": "0.7.4" + }, + "engines": { + "node": "^18.19.1 || ^20.11.1 || >=22.0.0", + "npm": "^6.11.0 || ^7.5.6 || >=8.0.0", + "yarn": ">= 1.13.0" + }, + "peerDependencies": { + "chokidar": "^3.5.2" + }, + "peerDependenciesMeta": { + "chokidar": { + "optional": true + } + } + }, + "node_modules/@angular-devkit/schematics": { + "version": "18.2.14", + "resolved": "https://npm.sinequa.com/@angular-devkit/schematics/-/schematics-18.2.14.tgz", + "integrity": "sha512-mukjZIHHB7gWratq8fZwUq5WZ+1bF4feG/idXr1wgQ+/FqWjs2PP7HDesHVcPymmRulpTyCpB7TNB1O1fgnCpA==", + "license": "MIT", + "dependencies": { + "@angular-devkit/core": "18.2.14", + "jsonc-parser": "3.3.1", + "magic-string": "0.30.11", + "ora": "5.4.1", + "rxjs": "7.8.1" + }, + "engines": { + "node": "^18.19.1 || ^20.11.1 || >=22.0.0", + "npm": "^6.11.0 || ^7.5.6 || >=8.0.0", + "yarn": ">= 1.13.0" + } + }, + "node_modules/@angular-eslint/bundled-angular-compiler": { + "version": "18.4.3", + "resolved": "https://npm.sinequa.com/@angular-eslint/bundled-angular-compiler/-/bundled-angular-compiler-18.4.3.tgz", + "integrity": "sha512-zdrA8mR98X+U4YgHzUKmivRU+PxzwOL/j8G7eTOvBuq8GPzsP+hvak+tyxlgeGm9HsvpFj9ERHLtJ0xDUPs8fg==", + "license": "MIT" + }, + "node_modules/@angular-eslint/eslint-plugin": { + "version": "18.4.3", + "resolved": "https://npm.sinequa.com/@angular-eslint/eslint-plugin/-/eslint-plugin-18.4.3.tgz", + "integrity": "sha512-AyJbupiwTBR81P6T59v+aULEnPpZBCBxL2S5QFWfAhNCwWhcof4GihvdK2Z87yhvzDGeAzUFSWl/beJfeFa+PA==", + "license": "MIT", + "dependencies": { + "@angular-eslint/bundled-angular-compiler": "18.4.3", + "@angular-eslint/utils": "18.4.3" + }, + "peerDependencies": { + "@typescript-eslint/utils": "^7.11.0 || ^8.0.0", + "eslint": "^8.57.0 || ^9.0.0", + "typescript": "*" + } + }, + "node_modules/@angular-eslint/eslint-plugin-template": { + "version": "18.4.3", + "resolved": "https://npm.sinequa.com/@angular-eslint/eslint-plugin-template/-/eslint-plugin-template-18.4.3.tgz", + "integrity": "sha512-ijGlX2N01ayMXTpeQivOA31AszO8OEbu9ZQUCxnu9AyMMhxyi2q50bujRChAvN9YXQfdQtbxuajxV6+aiWb5BQ==", + "license": "MIT", + "dependencies": { + "@angular-eslint/bundled-angular-compiler": "18.4.3", + "@angular-eslint/utils": "18.4.3", + "aria-query": "5.3.2", + "axobject-query": "4.1.0" + }, + "peerDependencies": { + "@typescript-eslint/types": "^7.11.0 || ^8.0.0", + "@typescript-eslint/utils": "^7.11.0 || ^8.0.0", + "eslint": "^8.57.0 || ^9.0.0", + "typescript": "*" + } + }, + "node_modules/@angular-eslint/schematics": { + "version": "18.4.3", + "resolved": "https://npm.sinequa.com/@angular-eslint/schematics/-/schematics-18.4.3.tgz", + "integrity": "sha512-D5maKn5e6n58+8n7jLFLD4g+RGPOPeDSsvPc1sqial5tEKLxAJQJS9WZ28oef3bhkob6C60D+1H0mMmEEVvyVA==", + "license": "MIT", + "dependencies": { + "@angular-devkit/core": ">= 18.0.0 < 19.0.0", + "@angular-devkit/schematics": ">= 18.0.0 < 19.0.0", + "@angular-eslint/eslint-plugin": "18.4.3", + "@angular-eslint/eslint-plugin-template": "18.4.3", + "ignore": "6.0.2", + "semver": "7.6.3", + "strip-json-comments": "3.1.1" + } + }, + "node_modules/@angular-eslint/utils": { + "version": "18.4.3", + "resolved": "https://npm.sinequa.com/@angular-eslint/utils/-/utils-18.4.3.tgz", + "integrity": "sha512-w0bJ9+ELAEiPBSTPPm9bvDngfu1d8JbzUhvs2vU+z7sIz/HMwUZT5S4naypj2kNN0gZYGYrW0lt+HIbW87zTAQ==", + "license": "MIT", + "dependencies": { + "@angular-eslint/bundled-angular-compiler": "18.4.3" + }, + "peerDependencies": { + "@typescript-eslint/utils": "^7.11.0 || ^8.0.0", + "eslint": "^8.57.0 || ^9.0.0", + "typescript": "*" + } + }, + "node_modules/@angular/animations": { + "version": "18.2.13", + "resolved": "https://npm.sinequa.com/@angular/animations/-/animations-18.2.13.tgz", + "integrity": "sha512-rG5J5Ek5Hg+Tz2NjkNOaG6PupiNK/lPfophXpsR1t/nWujqnMWX2krahD/i6kgD+jNWNKCJCYSOVvCx/BHOtKA==", + "license": "MIT", + "dependencies": { + "tslib": "^2.3.0" + }, + "engines": { + "node": "^18.19.1 || ^20.11.1 || >=22.0.0" + }, + "peerDependencies": { + "@angular/core": "18.2.13" + } + }, + "node_modules/@angular/build": { + "version": "18.2.14", + "resolved": "https://npm.sinequa.com/@angular/build/-/build-18.2.14.tgz", + "integrity": "sha512-9g24Oe/ZLULacW3hEpRCjSZIJPJTzN5BeFbA27epSV5NsrQOoeUGsEpRs90Zmt6eReO0fW1BGshWRoZtpSedcw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@ampproject/remapping": "2.3.0", + "@angular-devkit/architect": "0.1802.14", + "@babel/core": "7.25.2", + "@babel/helper-annotate-as-pure": "7.24.7", + "@babel/helper-split-export-declaration": "7.24.7", + "@babel/plugin-syntax-import-attributes": "7.24.7", + "@inquirer/confirm": "3.1.22", + "@vitejs/plugin-basic-ssl": "1.1.0", + "browserslist": "^4.23.0", + "critters": "0.0.24", + "esbuild": "0.23.0", + "fast-glob": "3.3.2", + "https-proxy-agent": "7.0.5", + "listr2": "8.2.4", + "lmdb": "3.0.13", + "magic-string": "0.30.11", + "mrmime": "2.0.0", + "parse5-html-rewriting-stream": "7.0.0", + "picomatch": "4.0.2", + "piscina": "4.6.1", + "rollup": "4.22.4", + "sass": "1.77.6", + "semver": "7.6.3", + "vite": "5.4.14", + "watchpack": "2.4.1" + }, + "engines": { + "node": "^18.19.1 || ^20.11.1 || >=22.0.0", + "npm": "^6.11.0 || ^7.5.6 || >=8.0.0", + "yarn": ">= 1.13.0" + }, + "peerDependencies": { + "@angular/compiler-cli": "^18.0.0", + "@angular/localize": "^18.0.0", + "@angular/platform-server": "^18.0.0", + "@angular/service-worker": "^18.0.0", + "less": "^4.2.0", + "postcss": "^8.4.0", + "tailwindcss": "^2.0.0 || ^3.0.0", + "typescript": ">=5.4 <5.6" + }, + "peerDependenciesMeta": { + "@angular/localize": { + "optional": true + }, + "@angular/platform-server": { + "optional": true + }, + "@angular/service-worker": { + "optional": true + }, + "less": { + "optional": true + }, + "postcss": { + "optional": true + }, + "tailwindcss": { + "optional": true + } + } + }, + "node_modules/@angular/cdk": { + "version": "19.1.3", + "resolved": "https://npm.sinequa.com/@angular/cdk/-/cdk-19.1.3.tgz", + "integrity": "sha512-A8d1V4AU2ZcNnEEwAUp4W1uYdT7EKHZM0PGicVhLyeetwYrpHiLoPioD7sw89TlPuJcd6mS7xV6AnXQ8peOoXg==", + "license": "MIT", + "dependencies": { + "tslib": "^2.3.0" + }, + "optionalDependencies": { + "parse5": "^7.1.2" + }, + "peerDependencies": { + "@angular/common": "^19.0.0 || ^20.0.0", + "@angular/core": "^19.0.0 || ^20.0.0", + "rxjs": "^6.5.3 || ^7.4.0" + } + }, + "node_modules/@angular/cli": { + "version": "18.2.14", + "resolved": "https://npm.sinequa.com/@angular/cli/-/cli-18.2.14.tgz", + "integrity": "sha512-kWgRRQtJPkr8iwN7DMbTi3sXOnv7H5QhbU/GgD3nNX3D8YCSPmnby4PAE/P3wn7FsIK9JsSchsCt7MZ37Urh9A==", + "dev": true, + "license": "MIT", + "dependencies": { + "@angular-devkit/architect": "0.1802.14", + "@angular-devkit/core": "18.2.14", + "@angular-devkit/schematics": "18.2.14", + "@inquirer/prompts": "5.3.8", + "@listr2/prompt-adapter-inquirer": "2.0.15", + "@schematics/angular": "18.2.14", + "@yarnpkg/lockfile": "1.1.0", + "ini": "4.1.3", + "jsonc-parser": "3.3.1", + "listr2": "8.2.4", + "npm-package-arg": "11.0.3", + "npm-pick-manifest": "9.1.0", + "pacote": "18.0.6", + "resolve": "1.22.8", + "semver": "7.6.3", + "symbol-observable": "4.0.0", + "yargs": "17.7.2" + }, + "bin": { + "ng": "bin/ng.js" + }, + "engines": { + "node": "^18.19.1 || ^20.11.1 || >=22.0.0", + "npm": "^6.11.0 || ^7.5.6 || >=8.0.0", + "yarn": ">= 1.13.0" + } + }, + "node_modules/@angular/common": { + "version": "18.2.13", + "resolved": "https://npm.sinequa.com/@angular/common/-/common-18.2.13.tgz", + "integrity": "sha512-4ZqrNp1PoZo7VNvW+sbSc2CB2axP1sCH2wXl8B0wdjsj8JY1hF1OhuugwhpAHtGxqewed2kCXayE+ZJqSTV4jw==", + "license": "MIT", + "dependencies": { + "tslib": "^2.3.0" + }, + "engines": { + "node": "^18.19.1 || ^20.11.1 || >=22.0.0" + }, + "peerDependencies": { + "@angular/core": "18.2.13", + "rxjs": "^6.5.3 || ^7.4.0" + } + }, + "node_modules/@angular/compiler": { + "version": "18.2.13", + "resolved": "https://npm.sinequa.com/@angular/compiler/-/compiler-18.2.13.tgz", + "integrity": "sha512-TzWcrkopyjFF+WeDr2cRe8CcHjU72KfYV3Sm2TkBkcXrkYX5sDjGWrBGrG3hRB4e4okqchrOCvm1MiTdy2vKMA==", + "license": "MIT", + "dependencies": { + "tslib": "^2.3.0" + }, + "engines": { + "node": "^18.19.1 || ^20.11.1 || >=22.0.0" + }, + "peerDependencies": { + "@angular/core": "18.2.13" + }, + "peerDependenciesMeta": { + "@angular/core": { + "optional": true + } + } + }, + "node_modules/@angular/compiler-cli": { + "version": "18.2.13", + "resolved": "https://npm.sinequa.com/@angular/compiler-cli/-/compiler-cli-18.2.13.tgz", + "integrity": "sha512-DBSh4AQwkiJDSiVvJATRmjxf6wyUs9pwQLgaFdSlfuTRO+sdb0J2z1r3BYm8t0IqdoyXzdZq2YCH43EmyvD71g==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/core": "7.25.2", + "@jridgewell/sourcemap-codec": "^1.4.14", + "chokidar": "^4.0.0", + "convert-source-map": "^1.5.1", + "reflect-metadata": "^0.2.0", + "semver": "^7.0.0", + "tslib": "^2.3.0", + "yargs": "^17.2.1" + }, + "bin": { + "ng-xi18n": "bundles/src/bin/ng_xi18n.js", + "ngc": "bundles/src/bin/ngc.js", + "ngcc": "bundles/ngcc/index.js" + }, + "engines": { + "node": "^18.19.1 || ^20.11.1 || >=22.0.0" + }, + "peerDependencies": { + "@angular/compiler": "18.2.13", + "typescript": ">=5.4 <5.6" + } + }, + "node_modules/@angular/core": { + "version": "18.2.13", + "resolved": "https://npm.sinequa.com/@angular/core/-/core-18.2.13.tgz", + "integrity": "sha512-8mbWHMgO95OuFV1Ejy4oKmbe9NOJ3WazQf/f7wks8Bck7pcihd0IKhlPBNjFllbF5o+04EYSwFhEtvEgjMDClA==", + "license": "MIT", + "dependencies": { + "tslib": "^2.3.0" + }, + "engines": { + "node": "^18.19.1 || ^20.11.1 || >=22.0.0" + }, + "peerDependencies": { + "rxjs": "^6.5.3 || ^7.4.0", + "zone.js": "~0.14.10" + } + }, + "node_modules/@angular/forms": { + "version": "18.2.13", + "resolved": "https://npm.sinequa.com/@angular/forms/-/forms-18.2.13.tgz", + "integrity": "sha512-A67D867fu3DSBhdLWWZl/F5pr7v2+dRM2u3U7ZJ0ewh4a+sv+0yqWdJW+a8xIoiHxS+btGEJL2qAKJiH+MCFfg==", + "license": "MIT", + "dependencies": { + "tslib": "^2.3.0" + }, + "engines": { + "node": "^18.19.1 || ^20.11.1 || >=22.0.0" + }, + "peerDependencies": { + "@angular/common": "18.2.13", + "@angular/core": "18.2.13", + "@angular/platform-browser": "18.2.13", + "rxjs": "^6.5.3 || ^7.4.0" + } + }, + "node_modules/@angular/platform-browser": { + "version": "18.2.13", + "resolved": "https://npm.sinequa.com/@angular/platform-browser/-/platform-browser-18.2.13.tgz", + "integrity": "sha512-tu7ZzY6qD3ATdWFzcTcsAKe7M6cJeWbT/4/bF9unyGO3XBPcNYDKoiz10+7ap2PUd0fmPwvuvTvSNJiFEBnB8Q==", + "license": "MIT", + "dependencies": { + "tslib": "^2.3.0" + }, + "engines": { + "node": "^18.19.1 || ^20.11.1 || >=22.0.0" + }, + "peerDependencies": { + "@angular/animations": "18.2.13", + "@angular/common": "18.2.13", + "@angular/core": "18.2.13" + }, + "peerDependenciesMeta": { + "@angular/animations": { + "optional": true + } + } + }, + "node_modules/@angular/platform-browser-dynamic": { + "version": "18.2.13", + "resolved": "https://npm.sinequa.com/@angular/platform-browser-dynamic/-/platform-browser-dynamic-18.2.13.tgz", + "integrity": "sha512-kbQCf9+8EpuJC7buBxhSiwBtXvjAwAKh6MznD6zd2pyCYqfY6gfRCZQRtK59IfgVtKmEONWI9grEyNIRoTmqJg==", + "license": "MIT", + "dependencies": { + "tslib": "^2.3.0" + }, + "engines": { + "node": "^18.19.1 || ^20.11.1 || >=22.0.0" + }, + "peerDependencies": { + "@angular/common": "18.2.13", + "@angular/compiler": "18.2.13", + "@angular/core": "18.2.13", + "@angular/platform-browser": "18.2.13" + } + }, + "node_modules/@angular/router": { + "version": "18.2.13", + "resolved": "https://npm.sinequa.com/@angular/router/-/router-18.2.13.tgz", + "integrity": "sha512-VKmfgi/r/CkyBq9nChQ/ptmfu0JT/8ONnLVJ5H+SkFLRYJcIRyHLKjRihMCyVm6xM5yktOdCaW73NTQrFz7+bg==", + "license": "MIT", + "dependencies": { + "tslib": "^2.3.0" + }, + "engines": { + "node": "^18.19.1 || ^20.11.1 || >=22.0.0" + }, + "peerDependencies": { + "@angular/common": "18.2.13", + "@angular/core": "18.2.13", + "@angular/platform-browser": "18.2.13", + "rxjs": "^6.5.3 || ^7.4.0" + } + }, + "node_modules/@babel/code-frame": { + "version": "7.26.2", + "resolved": "https://npm.sinequa.com/@babel/code-frame/-/code-frame-7.26.2.tgz", + "integrity": "sha512-RJlIHRueQgwWitWgF8OdFYGZX328Ax5BCemNGlqHfplnRT9ESi8JkFlvaVYbS+UubVY6dpv87Fs2u5M29iNFVQ==", + "license": "MIT", + "dependencies": { + "@babel/helper-validator-identifier": "^7.25.9", + "js-tokens": "^4.0.0", + "picocolors": "^1.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/compat-data": { + "version": "7.26.5", + "resolved": "https://npm.sinequa.com/@babel/compat-data/-/compat-data-7.26.5.tgz", + "integrity": "sha512-XvcZi1KWf88RVbF9wn8MN6tYFloU5qX8KjuF3E1PVBmJ9eypXfs4GRiJwLuTZL0iSnJUKn1BFPa5BPZZJyFzPg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/core": { + "version": "7.25.2", + "resolved": "https://npm.sinequa.com/@babel/core/-/core-7.25.2.tgz", + "integrity": "sha512-BBt3opiCOxUr9euZ5/ro/Xv8/V7yJ5bjYMqG/C1YAo8MIKAnumZalCN+msbci3Pigy4lIQfPUpfMM27HMGaYEA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@ampproject/remapping": "^2.2.0", + "@babel/code-frame": "^7.24.7", + "@babel/generator": "^7.25.0", + "@babel/helper-compilation-targets": "^7.25.2", + "@babel/helper-module-transforms": "^7.25.2", + "@babel/helpers": "^7.25.0", + "@babel/parser": "^7.25.0", + "@babel/template": "^7.25.0", + "@babel/traverse": "^7.25.2", + "@babel/types": "^7.25.2", + "convert-source-map": "^2.0.0", + "debug": "^4.1.0", + "gensync": "^1.0.0-beta.2", + "json5": "^2.2.3", + "semver": "^6.3.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/babel" + } + }, + "node_modules/@babel/core/node_modules/convert-source-map": { + "version": "2.0.0", + "resolved": "https://npm.sinequa.com/convert-source-map/-/convert-source-map-2.0.0.tgz", + "integrity": "sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==", + "dev": true, + "license": "MIT" + }, + "node_modules/@babel/core/node_modules/semver": { + "version": "6.3.1", + "resolved": "https://npm.sinequa.com/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "dev": true, + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/@babel/generator": { + "version": "7.25.0", + "resolved": "https://npm.sinequa.com/@babel/generator/-/generator-7.25.0.tgz", + "integrity": "sha512-3LEEcj3PVW8pW2R1SR1M89g/qrYk/m/mB/tLqn7dn4sbBUQyTqnlod+II2U4dqiGtUmkcnAmkMDralTFZttRiw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/types": "^7.25.0", + "@jridgewell/gen-mapping": "^0.3.5", + "@jridgewell/trace-mapping": "^0.3.25", + "jsesc": "^2.5.1" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-annotate-as-pure": { + "version": "7.24.7", + "resolved": "https://npm.sinequa.com/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.24.7.tgz", + "integrity": "sha512-BaDeOonYvhdKw+JoMVkAixAAJzG2jVPIwWoKBPdYuY9b452e2rPuI9QPYh3KpofZ3pW2akOmwZLOiOsHMiqRAg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/types": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-compilation-targets": { + "version": "7.26.5", + "resolved": "https://npm.sinequa.com/@babel/helper-compilation-targets/-/helper-compilation-targets-7.26.5.tgz", + "integrity": "sha512-IXuyn5EkouFJscIDuFF5EsiSolseme1s0CZB+QxVugqJLYmKdxI1VfIBOst0SUu4rnk2Z7kqTwmoO1lp3HIfnA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/compat-data": "^7.26.5", + "@babel/helper-validator-option": "^7.25.9", + "browserslist": "^4.24.0", + "lru-cache": "^5.1.1", + "semver": "^6.3.1" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-compilation-targets/node_modules/semver": { + "version": "6.3.1", + "resolved": "https://npm.sinequa.com/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "dev": true, + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/@babel/helper-create-class-features-plugin": { + "version": "7.25.9", + "resolved": "https://npm.sinequa.com/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.25.9.tgz", + "integrity": "sha512-UTZQMvt0d/rSz6KI+qdu7GQze5TIajwTS++GUozlw8VBJDEOAqSXwm1WvmYEZwqdqSGQshRocPDqrt4HBZB3fQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.25.9", + "@babel/helper-member-expression-to-functions": "^7.25.9", + "@babel/helper-optimise-call-expression": "^7.25.9", + "@babel/helper-replace-supers": "^7.25.9", + "@babel/helper-skip-transparent-expression-wrappers": "^7.25.9", + "@babel/traverse": "^7.25.9", + "semver": "^6.3.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/helper-create-class-features-plugin/node_modules/@babel/helper-annotate-as-pure": { + "version": "7.25.9", + "resolved": "https://npm.sinequa.com/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.25.9.tgz", + "integrity": "sha512-gv7320KBUFJz1RnylIg5WWYPRXKZ884AGkYpgpWW02TH66Dl+HaC1t1CKd0z3R4b6hdYEcmrNZHUmfCP+1u3/g==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/types": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-create-class-features-plugin/node_modules/semver": { + "version": "6.3.1", + "resolved": "https://npm.sinequa.com/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "dev": true, + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/@babel/helper-create-regexp-features-plugin": { + "version": "7.26.3", + "resolved": "https://npm.sinequa.com/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.26.3.tgz", + "integrity": "sha512-G7ZRb40uUgdKOQqPLjfD12ZmGA54PzqDFUv2BKImnC9QIfGhIHKvVML0oN8IUiDq4iRqpq74ABpvOaerfWdong==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.25.9", + "regexpu-core": "^6.2.0", + "semver": "^6.3.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/helper-create-regexp-features-plugin/node_modules/@babel/helper-annotate-as-pure": { + "version": "7.25.9", + "resolved": "https://npm.sinequa.com/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.25.9.tgz", + "integrity": "sha512-gv7320KBUFJz1RnylIg5WWYPRXKZ884AGkYpgpWW02TH66Dl+HaC1t1CKd0z3R4b6hdYEcmrNZHUmfCP+1u3/g==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/types": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-create-regexp-features-plugin/node_modules/semver": { + "version": "6.3.1", + "resolved": "https://npm.sinequa.com/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "dev": true, + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/@babel/helper-define-polyfill-provider": { + "version": "0.6.3", + "resolved": "https://npm.sinequa.com/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.6.3.tgz", + "integrity": "sha512-HK7Bi+Hj6H+VTHA3ZvBis7V/6hu9QuTrnMXNybfUf2iiuU/N97I8VjB+KbhFF8Rld/Lx5MzoCwPCpPjfK+n8Cg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-compilation-targets": "^7.22.6", + "@babel/helper-plugin-utils": "^7.22.5", + "debug": "^4.1.1", + "lodash.debounce": "^4.0.8", + "resolve": "^1.14.2" + }, + "peerDependencies": { + "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" + } + }, + "node_modules/@babel/helper-member-expression-to-functions": { + "version": "7.25.9", + "resolved": "https://npm.sinequa.com/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.25.9.tgz", + "integrity": "sha512-wbfdZ9w5vk0C0oyHqAJbc62+vet5prjj01jjJ8sKn3j9h3MQQlflEdXYvuqRWjHnM12coDEqiC1IRCi0U/EKwQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/traverse": "^7.25.9", + "@babel/types": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-module-imports": { + "version": "7.25.9", + "resolved": "https://npm.sinequa.com/@babel/helper-module-imports/-/helper-module-imports-7.25.9.tgz", + "integrity": "sha512-tnUA4RsrmflIM6W6RFTLFSXITtl0wKjgpnLgXyowocVPrbYrLUXSBXDgTs8BlbmIzIdlBySRQjINYs2BAkiLtw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/traverse": "^7.25.9", + "@babel/types": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-module-transforms": { + "version": "7.26.0", + "resolved": "https://npm.sinequa.com/@babel/helper-module-transforms/-/helper-module-transforms-7.26.0.tgz", + "integrity": "sha512-xO+xu6B5K2czEnQye6BHA7DolFFmS3LB7stHZFaOLb1pAwO1HWLS8fXA+eh0A2yIvltPVmx3eNNDBJA2SLHXFw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-module-imports": "^7.25.9", + "@babel/helper-validator-identifier": "^7.25.9", + "@babel/traverse": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/helper-optimise-call-expression": { + "version": "7.25.9", + "resolved": "https://npm.sinequa.com/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.25.9.tgz", + "integrity": "sha512-FIpuNaz5ow8VyrYcnXQTDRGvV6tTjkNtCK/RYNDXGSLlUD6cBuQTSw43CShGxjvfBTfcUA/r6UhUCbtYqkhcuQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/types": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-plugin-utils": { + "version": "7.26.5", + "resolved": "https://npm.sinequa.com/@babel/helper-plugin-utils/-/helper-plugin-utils-7.26.5.tgz", + "integrity": "sha512-RS+jZcRdZdRFzMyr+wcsaqOmld1/EqTghfaBGQQd/WnRdzdlvSZ//kF7U8VQTxf1ynZ4cjUcYgjVGx13ewNPMg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-remap-async-to-generator": { + "version": "7.25.9", + "resolved": "https://npm.sinequa.com/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.25.9.tgz", + "integrity": "sha512-IZtukuUeBbhgOcaW2s06OXTzVNJR0ybm4W5xC1opWFFJMZbwRj5LCk+ByYH7WdZPZTt8KnFwA8pvjN2yqcPlgw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.25.9", + "@babel/helper-wrap-function": "^7.25.9", + "@babel/traverse": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/helper-remap-async-to-generator/node_modules/@babel/helper-annotate-as-pure": { + "version": "7.25.9", + "resolved": "https://npm.sinequa.com/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.25.9.tgz", + "integrity": "sha512-gv7320KBUFJz1RnylIg5WWYPRXKZ884AGkYpgpWW02TH66Dl+HaC1t1CKd0z3R4b6hdYEcmrNZHUmfCP+1u3/g==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/types": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-replace-supers": { + "version": "7.26.5", + "resolved": "https://npm.sinequa.com/@babel/helper-replace-supers/-/helper-replace-supers-7.26.5.tgz", + "integrity": "sha512-bJ6iIVdYX1YooY2X7w1q6VITt+LnUILtNk7zT78ykuwStx8BauCzxvFqFaHjOpW1bVnSUM1PN1f0p5P21wHxvg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-member-expression-to-functions": "^7.25.9", + "@babel/helper-optimise-call-expression": "^7.25.9", + "@babel/traverse": "^7.26.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/helper-skip-transparent-expression-wrappers": { + "version": "7.25.9", + "resolved": "https://npm.sinequa.com/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.25.9.tgz", + "integrity": "sha512-K4Du3BFa3gvyhzgPcntrkDgZzQaq6uozzcpGbOO1OEJaI+EJdqWIMTLgFgQf6lrfiDFo5FU+BxKepI9RmZqahA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/traverse": "^7.25.9", + "@babel/types": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-split-export-declaration": { + "version": "7.24.7", + "resolved": "https://npm.sinequa.com/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.24.7.tgz", + "integrity": "sha512-oy5V7pD+UvfkEATUKvIjvIAH/xCzfsFVw7ygW2SI6NClZzquT+mwdTfgfdbUiceh6iQO0CHtCPsyze/MZ2YbAA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/types": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-string-parser": { + "version": "7.25.9", + "resolved": "https://npm.sinequa.com/@babel/helper-string-parser/-/helper-string-parser-7.25.9.tgz", + "integrity": "sha512-4A/SCr/2KLd5jrtOMFzaKjVtAei3+2r/NChoBNoZ3EyP/+GlhoaEGoWOZUmFmoITP7zOJyHIMm+DYRd8o3PvHA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-validator-identifier": { + "version": "7.25.9", + "resolved": "https://npm.sinequa.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.25.9.tgz", + "integrity": "sha512-Ed61U6XJc3CVRfkERJWDz4dJwKe7iLmmJsbOGu9wSloNSFttHV0I8g6UAgb7qnK5ly5bGLPd4oXZlxCdANBOWQ==", + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-validator-option": { + "version": "7.25.9", + "resolved": "https://npm.sinequa.com/@babel/helper-validator-option/-/helper-validator-option-7.25.9.tgz", + "integrity": "sha512-e/zv1co8pp55dNdEcCynfj9X7nyUKUXoUEwfXqaZt0omVOmDe9oOTdKStH4GmAw6zxMFs50ZayuMfHDKlO7Tfw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-wrap-function": { + "version": "7.25.9", + "resolved": "https://npm.sinequa.com/@babel/helper-wrap-function/-/helper-wrap-function-7.25.9.tgz", + "integrity": "sha512-ETzz9UTjQSTmw39GboatdymDq4XIQbR8ySgVrylRhPOFpsd+JrKHIuF0de7GCWmem+T4uC5z7EZguod7Wj4A4g==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/template": "^7.25.9", + "@babel/traverse": "^7.25.9", + "@babel/types": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helpers": { + "version": "7.26.7", + "resolved": "https://npm.sinequa.com/@babel/helpers/-/helpers-7.26.7.tgz", + "integrity": "sha512-8NHiL98vsi0mbPQmYAGWwfcFaOy4j2HY49fXJCfuDcdE7fMIsH9a7GdaeXpIBsbT7307WU8KCMp5pUVDNL4f9A==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/template": "^7.25.9", + "@babel/types": "^7.26.7" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/parser": { + "version": "7.26.7", + "resolved": "https://npm.sinequa.com/@babel/parser/-/parser-7.26.7.tgz", + "integrity": "sha512-kEvgGGgEjRUutvdVvZhbn/BxVt+5VSpwXz1j3WYXQbXDo8KzFOPNG2GQbdAiNq8g6wn1yKk7C/qrke03a84V+w==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/types": "^7.26.7" + }, + "bin": { + "parser": "bin/babel-parser.js" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@babel/plugin-bugfix-firefox-class-in-computed-class-key": { + "version": "7.25.9", + "resolved": "https://npm.sinequa.com/@babel/plugin-bugfix-firefox-class-in-computed-class-key/-/plugin-bugfix-firefox-class-in-computed-class-key-7.25.9.tgz", + "integrity": "sha512-ZkRyVkThtxQ/J6nv3JFYv1RYY+JT5BvU0y3k5bWrmuG4woXypRa4PXmm9RhOwodRkYFWqC0C0cqcJ4OqR7kW+g==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.25.9", + "@babel/traverse": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/plugin-bugfix-safari-class-field-initializer-scope": { + "version": "7.25.9", + "resolved": "https://npm.sinequa.com/@babel/plugin-bugfix-safari-class-field-initializer-scope/-/plugin-bugfix-safari-class-field-initializer-scope-7.25.9.tgz", + "integrity": "sha512-MrGRLZxLD/Zjj0gdU15dfs+HH/OXvnw/U4jJD8vpcP2CJQapPEv1IWwjc/qMg7ItBlPwSv1hRBbb7LeuANdcnw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": { + "version": "7.25.9", + "resolved": "https://npm.sinequa.com/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression/-/plugin-bugfix-safari-id-destructuring-collision-in-function-expression-7.25.9.tgz", + "integrity": "sha512-2qUwwfAFpJLZqxd02YW9btUCZHl+RFvdDkNfZwaIJrvB8Tesjsk8pEQkTvGwZXLqXUx/2oyY3ySRhm6HOXuCug==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": { + "version": "7.25.9", + "resolved": "https://npm.sinequa.com/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.25.9.tgz", + "integrity": "sha512-6xWgLZTJXwilVjlnV7ospI3xi+sl8lN8rXXbBD6vYn3UYDlGsag8wrZkKcSI8G6KgqKP7vNFaDgeDnfAABq61g==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.25.9", + "@babel/helper-skip-transparent-expression-wrappers": "^7.25.9", + "@babel/plugin-transform-optional-chaining": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.13.0" + } + }, + "node_modules/@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly": { + "version": "7.25.9", + "resolved": "https://npm.sinequa.com/@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly/-/plugin-bugfix-v8-static-class-fields-redefine-readonly-7.25.9.tgz", + "integrity": "sha512-aLnMXYPnzwwqhYSCyXfKkIkYgJ8zv9RK+roo9DkTXz38ynIhd9XCbN08s3MGvqL2MYGVUGdRQLL/JqBIeJhJBg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.25.9", + "@babel/traverse": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/plugin-proposal-private-property-in-object": { + "version": "7.21.0-placeholder-for-preset-env.2", + "resolved": "https://npm.sinequa.com/@babel/plugin-proposal-private-property-in-object/-/plugin-proposal-private-property-in-object-7.21.0-placeholder-for-preset-env.2.tgz", + "integrity": "sha512-SOSkfJDddaM7mak6cPEpswyTRnuRltl429hMraQEglW+OkovnCzsiszTmsrlY//qLFjCpQDFRvjdm2wA5pPm9w==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-async-generators": { + "version": "7.8.4", + "resolved": "https://npm.sinequa.com/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.8.4.tgz", + "integrity": "sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-class-properties": { + "version": "7.12.13", + "resolved": "https://npm.sinequa.com/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.12.13.tgz", + "integrity": "sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.12.13" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-class-static-block": { + "version": "7.14.5", + "resolved": "https://npm.sinequa.com/@babel/plugin-syntax-class-static-block/-/plugin-syntax-class-static-block-7.14.5.tgz", + "integrity": "sha512-b+YyPmr6ldyNnM6sqYeMWE+bgJcJpO6yS4QD7ymxgH34GBPNDM/THBh8iunyvKIZztiwLH4CJZ0RxTk9emgpjw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.14.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-dynamic-import": { + "version": "7.8.3", + "resolved": "https://npm.sinequa.com/@babel/plugin-syntax-dynamic-import/-/plugin-syntax-dynamic-import-7.8.3.tgz", + "integrity": "sha512-5gdGbFon+PszYzqs83S3E5mpi7/y/8M9eC90MRTZfduQOYW76ig6SOSPNe41IG5LoP3FGBn2N0RjVDSQiS94kQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-export-namespace-from": { + "version": "7.8.3", + "resolved": "https://npm.sinequa.com/@babel/plugin-syntax-export-namespace-from/-/plugin-syntax-export-namespace-from-7.8.3.tgz", + "integrity": "sha512-MXf5laXo6c1IbEbegDmzGPwGNTsHZmEy6QGznu5Sh2UCWvueywb2ee+CCE4zQiZstxU9BMoQO9i6zUFSY0Kj0Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.3" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-import-assertions": { + "version": "7.26.0", + "resolved": "https://npm.sinequa.com/@babel/plugin-syntax-import-assertions/-/plugin-syntax-import-assertions-7.26.0.tgz", + "integrity": "sha512-QCWT5Hh830hK5EQa7XzuqIkQU9tT/whqbDz7kuaZMHFl1inRRg7JnuAEOQ0Ur0QUl0NufCk1msK2BeY79Aj/eg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-import-attributes": { + "version": "7.24.7", + "resolved": "https://npm.sinequa.com/@babel/plugin-syntax-import-attributes/-/plugin-syntax-import-attributes-7.24.7.tgz", + "integrity": "sha512-hbX+lKKeUMGihnK8nvKqmXBInriT3GVjzXKFriV3YC6APGxMbP8RZNFwy91+hocLXq90Mta+HshoB31802bb8A==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-import-meta": { + "version": "7.10.4", + "resolved": "https://npm.sinequa.com/@babel/plugin-syntax-import-meta/-/plugin-syntax-import-meta-7.10.4.tgz", + "integrity": "sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.10.4" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-json-strings": { + "version": "7.8.3", + "resolved": "https://npm.sinequa.com/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.8.3.tgz", + "integrity": "sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-logical-assignment-operators": { + "version": "7.10.4", + "resolved": "https://npm.sinequa.com/@babel/plugin-syntax-logical-assignment-operators/-/plugin-syntax-logical-assignment-operators-7.10.4.tgz", + "integrity": "sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.10.4" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-nullish-coalescing-operator": { + "version": "7.8.3", + "resolved": "https://npm.sinequa.com/@babel/plugin-syntax-nullish-coalescing-operator/-/plugin-syntax-nullish-coalescing-operator-7.8.3.tgz", + "integrity": "sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-numeric-separator": { + "version": "7.10.4", + "resolved": "https://npm.sinequa.com/@babel/plugin-syntax-numeric-separator/-/plugin-syntax-numeric-separator-7.10.4.tgz", + "integrity": "sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.10.4" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-object-rest-spread": { + "version": "7.8.3", + "resolved": "https://npm.sinequa.com/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.8.3.tgz", + "integrity": "sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-optional-catch-binding": { + "version": "7.8.3", + "resolved": "https://npm.sinequa.com/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.8.3.tgz", + "integrity": "sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-optional-chaining": { + "version": "7.8.3", + "resolved": "https://npm.sinequa.com/@babel/plugin-syntax-optional-chaining/-/plugin-syntax-optional-chaining-7.8.3.tgz", + "integrity": "sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-private-property-in-object": { + "version": "7.14.5", + "resolved": "https://npm.sinequa.com/@babel/plugin-syntax-private-property-in-object/-/plugin-syntax-private-property-in-object-7.14.5.tgz", + "integrity": "sha512-0wVnp9dxJ72ZUJDV27ZfbSj6iHLoytYZmh3rFcxNnvsJF3ktkzLDZPy/mA17HGsaQT3/DQsWYX1f1QGWkCoVUg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.14.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-top-level-await": { + "version": "7.14.5", + "resolved": "https://npm.sinequa.com/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.14.5.tgz", + "integrity": "sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.14.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-unicode-sets-regex": { + "version": "7.18.6", + "resolved": "https://npm.sinequa.com/@babel/plugin-syntax-unicode-sets-regex/-/plugin-syntax-unicode-sets-regex-7.18.6.tgz", + "integrity": "sha512-727YkEAPwSIQTv5im8QHz3upqp92JTWhidIC81Tdx4VJYIte/VndKf1qKrfnnhPLiPghStWfvC/iFaMCQu7Nqg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-create-regexp-features-plugin": "^7.18.6", + "@babel/helper-plugin-utils": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/plugin-transform-arrow-functions": { + "version": "7.25.9", + "resolved": "https://npm.sinequa.com/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.25.9.tgz", + "integrity": "sha512-6jmooXYIwn9ca5/RylZADJ+EnSxVUS5sjeJ9UPk6RWRzXCmOJCy6dqItPJFpw2cuCangPK4OYr5uhGKcmrm5Qg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-async-generator-functions": { + "version": "7.25.0", + "resolved": "https://npm.sinequa.com/@babel/plugin-transform-async-generator-functions/-/plugin-transform-async-generator-functions-7.25.0.tgz", + "integrity": "sha512-uaIi2FdqzjpAMvVqvB51S42oC2JEVgh0LDsGfZVDysWE8LrJtQC2jvKmOqEYThKyB7bDEb7BP1GYWDm7tABA0Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.8", + "@babel/helper-remap-async-to-generator": "^7.25.0", + "@babel/plugin-syntax-async-generators": "^7.8.4", + "@babel/traverse": "^7.25.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-async-to-generator": { + "version": "7.24.7", + "resolved": "https://npm.sinequa.com/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.24.7.tgz", + "integrity": "sha512-SQY01PcJfmQ+4Ash7NE+rpbLFbmqA2GPIgqzxfFTL4t1FKRq4zTms/7htKpoCUI9OcFYgzqfmCdH53s6/jn5fA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-module-imports": "^7.24.7", + "@babel/helper-plugin-utils": "^7.24.7", + "@babel/helper-remap-async-to-generator": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-block-scoped-functions": { + "version": "7.26.5", + "resolved": "https://npm.sinequa.com/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.26.5.tgz", + "integrity": "sha512-chuTSY+hq09+/f5lMj8ZSYgCFpppV2CbYrhNFJ1BFoXpiWPnnAb7R0MqrafCpN8E1+YRrtM1MXZHJdIx8B6rMQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.26.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-block-scoping": { + "version": "7.25.9", + "resolved": "https://npm.sinequa.com/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.25.9.tgz", + "integrity": "sha512-1F05O7AYjymAtqbsFETboN1NvBdcnzMerO+zlMyJBEz6WkMdejvGWw9p05iTSjC85RLlBseHHQpYaM4gzJkBGg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-class-properties": { + "version": "7.25.9", + "resolved": "https://npm.sinequa.com/@babel/plugin-transform-class-properties/-/plugin-transform-class-properties-7.25.9.tgz", + "integrity": "sha512-bbMAII8GRSkcd0h0b4X+36GksxuheLFjP65ul9w6C3KgAamI3JqErNgSrosX6ZPj+Mpim5VvEbawXxJCyEUV3Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-create-class-features-plugin": "^7.25.9", + "@babel/helper-plugin-utils": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-class-static-block": { + "version": "7.26.0", + "resolved": "https://npm.sinequa.com/@babel/plugin-transform-class-static-block/-/plugin-transform-class-static-block-7.26.0.tgz", + "integrity": "sha512-6J2APTs7BDDm+UMqP1useWqhcRAXo0WIoVj26N7kPFB6S73Lgvyka4KTZYIxtgYXiN5HTyRObA72N2iu628iTQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-create-class-features-plugin": "^7.25.9", + "@babel/helper-plugin-utils": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.12.0" + } + }, + "node_modules/@babel/plugin-transform-classes": { + "version": "7.25.9", + "resolved": "https://npm.sinequa.com/@babel/plugin-transform-classes/-/plugin-transform-classes-7.25.9.tgz", + "integrity": "sha512-mD8APIXmseE7oZvZgGABDyM34GUmK45Um2TXiBUt7PnuAxrgoSVf123qUzPxEr/+/BHrRn5NMZCdE2m/1F8DGg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.25.9", + "@babel/helper-compilation-targets": "^7.25.9", + "@babel/helper-plugin-utils": "^7.25.9", + "@babel/helper-replace-supers": "^7.25.9", + "@babel/traverse": "^7.25.9", + "globals": "^11.1.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-classes/node_modules/@babel/helper-annotate-as-pure": { + "version": "7.25.9", + "resolved": "https://npm.sinequa.com/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.25.9.tgz", + "integrity": "sha512-gv7320KBUFJz1RnylIg5WWYPRXKZ884AGkYpgpWW02TH66Dl+HaC1t1CKd0z3R4b6hdYEcmrNZHUmfCP+1u3/g==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/types": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/plugin-transform-computed-properties": { + "version": "7.25.9", + "resolved": "https://npm.sinequa.com/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.25.9.tgz", + "integrity": "sha512-HnBegGqXZR12xbcTHlJ9HGxw1OniltT26J5YpfruGqtUHlz/xKf/G2ak9e+t0rVqrjXa9WOhvYPz1ERfMj23AA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.25.9", + "@babel/template": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-destructuring": { + "version": "7.25.9", + "resolved": "https://npm.sinequa.com/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.25.9.tgz", + "integrity": "sha512-WkCGb/3ZxXepmMiX101nnGiU+1CAdut8oHyEOHxkKuS1qKpU2SMXE2uSvfz8PBuLd49V6LEsbtyPhWC7fnkgvQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-dotall-regex": { + "version": "7.25.9", + "resolved": "https://npm.sinequa.com/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.25.9.tgz", + "integrity": "sha512-t7ZQ7g5trIgSRYhI9pIJtRl64KHotutUJsh4Eze5l7olJv+mRSg4/MmbZ0tv1eeqRbdvo/+trvJD/Oc5DmW2cA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-create-regexp-features-plugin": "^7.25.9", + "@babel/helper-plugin-utils": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-duplicate-keys": { + "version": "7.25.9", + "resolved": "https://npm.sinequa.com/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.25.9.tgz", + "integrity": "sha512-LZxhJ6dvBb/f3x8xwWIuyiAHy56nrRG3PeYTpBkkzkYRRQ6tJLu68lEF5VIqMUZiAV7a8+Tb78nEoMCMcqjXBw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-duplicate-named-capturing-groups-regex": { + "version": "7.25.9", + "resolved": "https://npm.sinequa.com/@babel/plugin-transform-duplicate-named-capturing-groups-regex/-/plugin-transform-duplicate-named-capturing-groups-regex-7.25.9.tgz", + "integrity": "sha512-0UfuJS0EsXbRvKnwcLjFtJy/Sxc5J5jhLHnFhy7u4zih97Hz6tJkLU+O+FMMrNZrosUPxDi6sYxJ/EA8jDiAog==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-create-regexp-features-plugin": "^7.25.9", + "@babel/helper-plugin-utils": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/plugin-transform-dynamic-import": { + "version": "7.25.9", + "resolved": "https://npm.sinequa.com/@babel/plugin-transform-dynamic-import/-/plugin-transform-dynamic-import-7.25.9.tgz", + "integrity": "sha512-GCggjexbmSLaFhqsojeugBpeaRIgWNTcgKVq/0qIteFEqY2A+b9QidYadrWlnbWQUrW5fn+mCvf3tr7OeBFTyg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-exponentiation-operator": { + "version": "7.26.3", + "resolved": "https://npm.sinequa.com/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.26.3.tgz", + "integrity": "sha512-7CAHcQ58z2chuXPWblnn1K6rLDnDWieghSOEmqQsrBenH0P9InCUtOJYD89pvngljmZlJcz3fcmgYsXFNGa1ZQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-export-namespace-from": { + "version": "7.25.9", + "resolved": "https://npm.sinequa.com/@babel/plugin-transform-export-namespace-from/-/plugin-transform-export-namespace-from-7.25.9.tgz", + "integrity": "sha512-2NsEz+CxzJIVOPx2o9UsW1rXLqtChtLoVnwYHHiB04wS5sgn7mrV45fWMBX0Kk+ub9uXytVYfNP2HjbVbCB3Ww==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-for-of": { + "version": "7.25.9", + "resolved": "https://npm.sinequa.com/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.25.9.tgz", + "integrity": "sha512-LqHxduHoaGELJl2uhImHwRQudhCM50pT46rIBNvtT/Oql3nqiS3wOwP+5ten7NpYSXrrVLgtZU3DZmPtWZo16A==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.25.9", + "@babel/helper-skip-transparent-expression-wrappers": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-function-name": { + "version": "7.25.9", + "resolved": "https://npm.sinequa.com/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.25.9.tgz", + "integrity": "sha512-8lP+Yxjv14Vc5MuWBpJsoUCd3hD6V9DgBon2FVYL4jJgbnVQ9fTgYmonchzZJOVNgzEgbxp4OwAf6xz6M/14XA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-compilation-targets": "^7.25.9", + "@babel/helper-plugin-utils": "^7.25.9", + "@babel/traverse": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-json-strings": { + "version": "7.25.9", + "resolved": "https://npm.sinequa.com/@babel/plugin-transform-json-strings/-/plugin-transform-json-strings-7.25.9.tgz", + "integrity": "sha512-xoTMk0WXceiiIvsaquQQUaLLXSW1KJ159KP87VilruQm0LNNGxWzahxSS6T6i4Zg3ezp4vA4zuwiNUR53qmQAw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-literals": { + "version": "7.25.9", + "resolved": "https://npm.sinequa.com/@babel/plugin-transform-literals/-/plugin-transform-literals-7.25.9.tgz", + "integrity": "sha512-9N7+2lFziW8W9pBl2TzaNht3+pgMIRP74zizeCSrtnSKVdUl8mAjjOP2OOVQAfZ881P2cNjDj1uAMEdeD50nuQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-logical-assignment-operators": { + "version": "7.25.9", + "resolved": "https://npm.sinequa.com/@babel/plugin-transform-logical-assignment-operators/-/plugin-transform-logical-assignment-operators-7.25.9.tgz", + "integrity": "sha512-wI4wRAzGko551Y8eVf6iOY9EouIDTtPb0ByZx+ktDGHwv6bHFimrgJM/2T021txPZ2s4c7bqvHbd+vXG6K948Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-member-expression-literals": { + "version": "7.25.9", + "resolved": "https://npm.sinequa.com/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.25.9.tgz", + "integrity": "sha512-PYazBVfofCQkkMzh2P6IdIUaCEWni3iYEerAsRWuVd8+jlM1S9S9cz1dF9hIzyoZ8IA3+OwVYIp9v9e+GbgZhA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-modules-amd": { + "version": "7.25.9", + "resolved": "https://npm.sinequa.com/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.25.9.tgz", + "integrity": "sha512-g5T11tnI36jVClQlMlt4qKDLlWnG5pP9CSM4GhdRciTNMRgkfpo5cR6b4rGIOYPgRRuFAvwjPQ/Yk+ql4dyhbw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-module-transforms": "^7.25.9", + "@babel/helper-plugin-utils": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-modules-commonjs": { + "version": "7.26.3", + "resolved": "https://npm.sinequa.com/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.26.3.tgz", + "integrity": "sha512-MgR55l4q9KddUDITEzEFYn5ZsGDXMSsU9E+kh7fjRXTIC3RHqfCo8RPRbyReYJh44HQ/yomFkqbOFohXvDCiIQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-module-transforms": "^7.26.0", + "@babel/helper-plugin-utils": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-modules-systemjs": { + "version": "7.25.9", + "resolved": "https://npm.sinequa.com/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.25.9.tgz", + "integrity": "sha512-hyss7iIlH/zLHaehT+xwiymtPOpsiwIIRlCAOwBB04ta5Tt+lNItADdlXw3jAWZ96VJ2jlhl/c+PNIQPKNfvcA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-module-transforms": "^7.25.9", + "@babel/helper-plugin-utils": "^7.25.9", + "@babel/helper-validator-identifier": "^7.25.9", + "@babel/traverse": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-modules-umd": { + "version": "7.25.9", + "resolved": "https://npm.sinequa.com/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.25.9.tgz", + "integrity": "sha512-bS9MVObUgE7ww36HEfwe6g9WakQ0KF07mQF74uuXdkoziUPfKyu/nIm663kz//e5O1nPInPFx36z7WJmJ4yNEw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-module-transforms": "^7.25.9", + "@babel/helper-plugin-utils": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-named-capturing-groups-regex": { + "version": "7.25.9", + "resolved": "https://npm.sinequa.com/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.25.9.tgz", + "integrity": "sha512-oqB6WHdKTGl3q/ItQhpLSnWWOpjUJLsOCLVyeFgeTktkBSCiurvPOsyt93gibI9CmuKvTUEtWmG5VhZD+5T/KA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-create-regexp-features-plugin": "^7.25.9", + "@babel/helper-plugin-utils": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/plugin-transform-new-target": { + "version": "7.25.9", + "resolved": "https://npm.sinequa.com/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.25.9.tgz", + "integrity": "sha512-U/3p8X1yCSoKyUj2eOBIx3FOn6pElFOKvAAGf8HTtItuPyB+ZeOqfn+mvTtg9ZlOAjsPdK3ayQEjqHjU/yLeVQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-nullish-coalescing-operator": { + "version": "7.26.6", + "resolved": "https://npm.sinequa.com/@babel/plugin-transform-nullish-coalescing-operator/-/plugin-transform-nullish-coalescing-operator-7.26.6.tgz", + "integrity": "sha512-CKW8Vu+uUZneQCPtXmSBUC6NCAUdya26hWCElAWh5mVSlSRsmiCPUUDKb3Z0szng1hiAJa098Hkhg9o4SE35Qw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.26.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-numeric-separator": { + "version": "7.25.9", + "resolved": "https://npm.sinequa.com/@babel/plugin-transform-numeric-separator/-/plugin-transform-numeric-separator-7.25.9.tgz", + "integrity": "sha512-TlprrJ1GBZ3r6s96Yq8gEQv82s8/5HnCVHtEJScUj90thHQbwe+E5MLhi2bbNHBEJuzrvltXSru+BUxHDoog7Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-object-rest-spread": { + "version": "7.25.9", + "resolved": "https://npm.sinequa.com/@babel/plugin-transform-object-rest-spread/-/plugin-transform-object-rest-spread-7.25.9.tgz", + "integrity": "sha512-fSaXafEE9CVHPweLYw4J0emp1t8zYTXyzN3UuG+lylqkvYd7RMrsOQ8TYx5RF231be0vqtFC6jnx3UmpJmKBYg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-compilation-targets": "^7.25.9", + "@babel/helper-plugin-utils": "^7.25.9", + "@babel/plugin-transform-parameters": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-object-super": { + "version": "7.25.9", + "resolved": "https://npm.sinequa.com/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.25.9.tgz", + "integrity": "sha512-Kj/Gh+Rw2RNLbCK1VAWj2U48yxxqL2x0k10nPtSdRa0O2xnHXalD0s+o1A6a0W43gJ00ANo38jxkQreckOzv5A==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.25.9", + "@babel/helper-replace-supers": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-optional-catch-binding": { + "version": "7.25.9", + "resolved": "https://npm.sinequa.com/@babel/plugin-transform-optional-catch-binding/-/plugin-transform-optional-catch-binding-7.25.9.tgz", + "integrity": "sha512-qM/6m6hQZzDcZF3onzIhZeDHDO43bkNNlOX0i8n3lR6zLbu0GN2d8qfM/IERJZYauhAHSLHy39NF0Ctdvcid7g==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-optional-chaining": { + "version": "7.25.9", + "resolved": "https://npm.sinequa.com/@babel/plugin-transform-optional-chaining/-/plugin-transform-optional-chaining-7.25.9.tgz", + "integrity": "sha512-6AvV0FsLULbpnXeBjrY4dmWF8F7gf8QnvTEoO/wX/5xm/xE1Xo8oPuD3MPS+KS9f9XBEAWN7X1aWr4z9HdOr7A==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.25.9", + "@babel/helper-skip-transparent-expression-wrappers": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-parameters": { + "version": "7.25.9", + "resolved": "https://npm.sinequa.com/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.25.9.tgz", + "integrity": "sha512-wzz6MKwpnshBAiRmn4jR8LYz/g8Ksg0o80XmwZDlordjwEk9SxBzTWC7F5ef1jhbrbOW2DJ5J6ayRukrJmnr0g==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-private-methods": { + "version": "7.25.9", + "resolved": "https://npm.sinequa.com/@babel/plugin-transform-private-methods/-/plugin-transform-private-methods-7.25.9.tgz", + "integrity": "sha512-D/JUozNpQLAPUVusvqMxyvjzllRaF8/nSrP1s2YGQT/W4LHK4xxsMcHjhOGTS01mp9Hda8nswb+FblLdJornQw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-create-class-features-plugin": "^7.25.9", + "@babel/helper-plugin-utils": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-private-property-in-object": { + "version": "7.25.9", + "resolved": "https://npm.sinequa.com/@babel/plugin-transform-private-property-in-object/-/plugin-transform-private-property-in-object-7.25.9.tgz", + "integrity": "sha512-Evf3kcMqzXA3xfYJmZ9Pg1OvKdtqsDMSWBDzZOPLvHiTt36E75jLDQo5w1gtRU95Q4E5PDttrTf25Fw8d/uWLw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.25.9", + "@babel/helper-create-class-features-plugin": "^7.25.9", + "@babel/helper-plugin-utils": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-private-property-in-object/node_modules/@babel/helper-annotate-as-pure": { + "version": "7.25.9", + "resolved": "https://npm.sinequa.com/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.25.9.tgz", + "integrity": "sha512-gv7320KBUFJz1RnylIg5WWYPRXKZ884AGkYpgpWW02TH66Dl+HaC1t1CKd0z3R4b6hdYEcmrNZHUmfCP+1u3/g==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/types": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/plugin-transform-property-literals": { + "version": "7.25.9", + "resolved": "https://npm.sinequa.com/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.25.9.tgz", + "integrity": "sha512-IvIUeV5KrS/VPavfSM/Iu+RE6llrHrYIKY1yfCzyO/lMXHQ+p7uGhonmGVisv6tSBSVgWzMBohTcvkC9vQcQFA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-regenerator": { + "version": "7.25.9", + "resolved": "https://npm.sinequa.com/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.25.9.tgz", + "integrity": "sha512-vwDcDNsgMPDGP0nMqzahDWE5/MLcX8sv96+wfX7as7LoF/kr97Bo/7fI00lXY4wUXYfVmwIIyG80fGZ1uvt2qg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.25.9", + "regenerator-transform": "^0.15.2" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-reserved-words": { + "version": "7.25.9", + "resolved": "https://npm.sinequa.com/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.25.9.tgz", + "integrity": "sha512-7DL7DKYjn5Su++4RXu8puKZm2XBPHyjWLUidaPEkCUBbE7IPcsrkRHggAOOKydH1dASWdcUBxrkOGNxUv5P3Jg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-runtime": { + "version": "7.24.7", + "resolved": "https://npm.sinequa.com/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.24.7.tgz", + "integrity": "sha512-YqXjrk4C+a1kZjewqt+Mmu2UuV1s07y8kqcUf4qYLnoqemhR4gRQikhdAhSVJioMjVTu6Mo6pAbaypEA3jY6fw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-module-imports": "^7.24.7", + "@babel/helper-plugin-utils": "^7.24.7", + "babel-plugin-polyfill-corejs2": "^0.4.10", + "babel-plugin-polyfill-corejs3": "^0.10.1", + "babel-plugin-polyfill-regenerator": "^0.6.1", + "semver": "^6.3.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-runtime/node_modules/semver": { + "version": "6.3.1", + "resolved": "https://npm.sinequa.com/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "dev": true, + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/@babel/plugin-transform-shorthand-properties": { + "version": "7.25.9", + "resolved": "https://npm.sinequa.com/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.25.9.tgz", + "integrity": "sha512-MUv6t0FhO5qHnS/W8XCbHmiRWOphNufpE1IVxhK5kuN3Td9FT1x4rx4K42s3RYdMXCXpfWkGSbCSd0Z64xA7Ng==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-spread": { + "version": "7.25.9", + "resolved": "https://npm.sinequa.com/@babel/plugin-transform-spread/-/plugin-transform-spread-7.25.9.tgz", + "integrity": "sha512-oNknIB0TbURU5pqJFVbOOFspVlrpVwo2H1+HUIsVDvp5VauGGDP1ZEvO8Nn5xyMEs3dakajOxlmkNW7kNgSm6A==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.25.9", + "@babel/helper-skip-transparent-expression-wrappers": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-sticky-regex": { + "version": "7.25.9", + "resolved": "https://npm.sinequa.com/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.25.9.tgz", + "integrity": "sha512-WqBUSgeVwucYDP9U/xNRQam7xV8W5Zf+6Eo7T2SRVUFlhRiMNFdFz58u0KZmCVVqs2i7SHgpRnAhzRNmKfi2uA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-template-literals": { + "version": "7.25.9", + "resolved": "https://npm.sinequa.com/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.25.9.tgz", + "integrity": "sha512-o97AE4syN71M/lxrCtQByzphAdlYluKPDBzDVzMmfCobUjjhAryZV0AIpRPrxN0eAkxXO6ZLEScmt+PNhj2OTw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-typeof-symbol": { + "version": "7.26.7", + "resolved": "https://npm.sinequa.com/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.26.7.tgz", + "integrity": "sha512-jfoTXXZTgGg36BmhqT3cAYK5qkmqvJpvNrPhaK/52Vgjhw4Rq29s9UqpWWV0D6yuRmgiFH/BUVlkl96zJWqnaw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.26.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-unicode-escapes": { + "version": "7.25.9", + "resolved": "https://npm.sinequa.com/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.25.9.tgz", + "integrity": "sha512-s5EDrE6bW97LtxOcGj1Khcx5AaXwiMmi4toFWRDP9/y0Woo6pXC+iyPu/KuhKtfSrNFd7jJB+/fkOtZy6aIC6Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-unicode-property-regex": { + "version": "7.25.9", + "resolved": "https://npm.sinequa.com/@babel/plugin-transform-unicode-property-regex/-/plugin-transform-unicode-property-regex-7.25.9.tgz", + "integrity": "sha512-Jt2d8Ga+QwRluxRQ307Vlxa6dMrYEMZCgGxoPR8V52rxPyldHu3hdlHspxaqYmE7oID5+kB+UKUB/eWS+DkkWg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-create-regexp-features-plugin": "^7.25.9", + "@babel/helper-plugin-utils": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-unicode-regex": { + "version": "7.25.9", + "resolved": "https://npm.sinequa.com/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.25.9.tgz", + "integrity": "sha512-yoxstj7Rg9dlNn9UQxzk4fcNivwv4nUYz7fYXBaKxvw/lnmPuOm/ikoELygbYq68Bls3D/D+NBPHiLwZdZZ4HA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-create-regexp-features-plugin": "^7.25.9", + "@babel/helper-plugin-utils": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-unicode-sets-regex": { + "version": "7.25.9", + "resolved": "https://npm.sinequa.com/@babel/plugin-transform-unicode-sets-regex/-/plugin-transform-unicode-sets-regex-7.25.9.tgz", + "integrity": "sha512-8BYqO3GeVNHtx69fdPshN3fnzUNLrWdHhk/icSwigksJGczKSizZ+Z6SBCxTs723Fr5VSNorTIK7a+R2tISvwQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-create-regexp-features-plugin": "^7.25.9", + "@babel/helper-plugin-utils": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/preset-env": { + "version": "7.25.3", + "resolved": "https://npm.sinequa.com/@babel/preset-env/-/preset-env-7.25.3.tgz", + "integrity": "sha512-QsYW7UeAaXvLPX9tdVliMJE7MD7M6MLYVTovRTIwhoYQVFHR1rM4wO8wqAezYi3/BpSD+NzVCZ69R6smWiIi8g==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/compat-data": "^7.25.2", + "@babel/helper-compilation-targets": "^7.25.2", + "@babel/helper-plugin-utils": "^7.24.8", + "@babel/helper-validator-option": "^7.24.8", + "@babel/plugin-bugfix-firefox-class-in-computed-class-key": "^7.25.3", + "@babel/plugin-bugfix-safari-class-field-initializer-scope": "^7.25.0", + "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": "^7.25.0", + "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": "^7.24.7", + "@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly": "^7.25.0", + "@babel/plugin-proposal-private-property-in-object": "7.21.0-placeholder-for-preset-env.2", + "@babel/plugin-syntax-async-generators": "^7.8.4", + "@babel/plugin-syntax-class-properties": "^7.12.13", + "@babel/plugin-syntax-class-static-block": "^7.14.5", + "@babel/plugin-syntax-dynamic-import": "^7.8.3", + "@babel/plugin-syntax-export-namespace-from": "^7.8.3", + "@babel/plugin-syntax-import-assertions": "^7.24.7", + "@babel/plugin-syntax-import-attributes": "^7.24.7", + "@babel/plugin-syntax-import-meta": "^7.10.4", + "@babel/plugin-syntax-json-strings": "^7.8.3", + "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4", + "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3", + "@babel/plugin-syntax-numeric-separator": "^7.10.4", + "@babel/plugin-syntax-object-rest-spread": "^7.8.3", + "@babel/plugin-syntax-optional-catch-binding": "^7.8.3", + "@babel/plugin-syntax-optional-chaining": "^7.8.3", + "@babel/plugin-syntax-private-property-in-object": "^7.14.5", + "@babel/plugin-syntax-top-level-await": "^7.14.5", + "@babel/plugin-syntax-unicode-sets-regex": "^7.18.6", + "@babel/plugin-transform-arrow-functions": "^7.24.7", + "@babel/plugin-transform-async-generator-functions": "^7.25.0", + "@babel/plugin-transform-async-to-generator": "^7.24.7", + "@babel/plugin-transform-block-scoped-functions": "^7.24.7", + "@babel/plugin-transform-block-scoping": "^7.25.0", + "@babel/plugin-transform-class-properties": "^7.24.7", + "@babel/plugin-transform-class-static-block": "^7.24.7", + "@babel/plugin-transform-classes": "^7.25.0", + "@babel/plugin-transform-computed-properties": "^7.24.7", + "@babel/plugin-transform-destructuring": "^7.24.8", + "@babel/plugin-transform-dotall-regex": "^7.24.7", + "@babel/plugin-transform-duplicate-keys": "^7.24.7", + "@babel/plugin-transform-duplicate-named-capturing-groups-regex": "^7.25.0", + "@babel/plugin-transform-dynamic-import": "^7.24.7", + "@babel/plugin-transform-exponentiation-operator": "^7.24.7", + "@babel/plugin-transform-export-namespace-from": "^7.24.7", + "@babel/plugin-transform-for-of": "^7.24.7", + "@babel/plugin-transform-function-name": "^7.25.1", + "@babel/plugin-transform-json-strings": "^7.24.7", + "@babel/plugin-transform-literals": "^7.25.2", + "@babel/plugin-transform-logical-assignment-operators": "^7.24.7", + "@babel/plugin-transform-member-expression-literals": "^7.24.7", + "@babel/plugin-transform-modules-amd": "^7.24.7", + "@babel/plugin-transform-modules-commonjs": "^7.24.8", + "@babel/plugin-transform-modules-systemjs": "^7.25.0", + "@babel/plugin-transform-modules-umd": "^7.24.7", + "@babel/plugin-transform-named-capturing-groups-regex": "^7.24.7", + "@babel/plugin-transform-new-target": "^7.24.7", + "@babel/plugin-transform-nullish-coalescing-operator": "^7.24.7", + "@babel/plugin-transform-numeric-separator": "^7.24.7", + "@babel/plugin-transform-object-rest-spread": "^7.24.7", + "@babel/plugin-transform-object-super": "^7.24.7", + "@babel/plugin-transform-optional-catch-binding": "^7.24.7", + "@babel/plugin-transform-optional-chaining": "^7.24.8", + "@babel/plugin-transform-parameters": "^7.24.7", + "@babel/plugin-transform-private-methods": "^7.24.7", + "@babel/plugin-transform-private-property-in-object": "^7.24.7", + "@babel/plugin-transform-property-literals": "^7.24.7", + "@babel/plugin-transform-regenerator": "^7.24.7", + "@babel/plugin-transform-reserved-words": "^7.24.7", + "@babel/plugin-transform-shorthand-properties": "^7.24.7", + "@babel/plugin-transform-spread": "^7.24.7", + "@babel/plugin-transform-sticky-regex": "^7.24.7", + "@babel/plugin-transform-template-literals": "^7.24.7", + "@babel/plugin-transform-typeof-symbol": "^7.24.8", + "@babel/plugin-transform-unicode-escapes": "^7.24.7", + "@babel/plugin-transform-unicode-property-regex": "^7.24.7", + "@babel/plugin-transform-unicode-regex": "^7.24.7", + "@babel/plugin-transform-unicode-sets-regex": "^7.24.7", + "@babel/preset-modules": "0.1.6-no-external-plugins", + "babel-plugin-polyfill-corejs2": "^0.4.10", + "babel-plugin-polyfill-corejs3": "^0.10.4", + "babel-plugin-polyfill-regenerator": "^0.6.1", + "core-js-compat": "^3.37.1", + "semver": "^6.3.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/preset-env/node_modules/semver": { + "version": "6.3.1", + "resolved": "https://npm.sinequa.com/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "dev": true, + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/@babel/preset-modules": { + "version": "0.1.6-no-external-plugins", + "resolved": "https://npm.sinequa.com/@babel/preset-modules/-/preset-modules-0.1.6-no-external-plugins.tgz", + "integrity": "sha512-HrcgcIESLm9aIR842yhJ5RWan/gebQUJ6E/E5+rf0y9o6oj7w0Br+sWuL6kEQ/o/AdfvR1Je9jG18/gnpwjEyA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.0.0", + "@babel/types": "^7.4.4", + "esutils": "^2.0.2" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0 || ^8.0.0-0 <8.0.0" + } + }, + "node_modules/@babel/runtime": { + "version": "7.25.0", + "resolved": "https://npm.sinequa.com/@babel/runtime/-/runtime-7.25.0.tgz", + "integrity": "sha512-7dRy4DwXwtzBrPbZflqxnvfxLF8kdZXPkhymtDeFoFqE6ldzjQFgYTtYIFARcLEYDrqfBfYcZt1WqFxRoyC9Rw==", + "dev": true, + "license": "MIT", + "dependencies": { + "regenerator-runtime": "^0.14.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/template": { + "version": "7.25.9", + "resolved": "https://npm.sinequa.com/@babel/template/-/template-7.25.9.tgz", + "integrity": "sha512-9DGttpmPvIxBb/2uwpVo3dqJ+O6RooAFOS+lB+xDqoE2PVCE8nfoHMdZLpfCQRLwvohzXISPZcgxt80xLfsuwg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/code-frame": "^7.25.9", + "@babel/parser": "^7.25.9", + "@babel/types": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/traverse": { + "version": "7.26.7", + "resolved": "https://npm.sinequa.com/@babel/traverse/-/traverse-7.26.7.tgz", + "integrity": "sha512-1x1sgeyRLC3r5fQOM0/xtQKsYjyxmFjaOrLJNtZ81inNjyJHGIolTULPiSc/2qe1/qfpFLisLQYFnnZl7QoedA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/code-frame": "^7.26.2", + "@babel/generator": "^7.26.5", + "@babel/parser": "^7.26.7", + "@babel/template": "^7.25.9", + "@babel/types": "^7.26.7", + "debug": "^4.3.1", + "globals": "^11.1.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/traverse/node_modules/@babel/generator": { + "version": "7.26.5", + "resolved": "https://npm.sinequa.com/@babel/generator/-/generator-7.26.5.tgz", + "integrity": "sha512-2caSP6fN9I7HOe6nqhtft7V4g7/V/gfDsC3Ag4W7kEzzvRGKqiv0pu0HogPiZ3KaVSoNDhUws6IJjDjpfmYIXw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/parser": "^7.26.5", + "@babel/types": "^7.26.5", + "@jridgewell/gen-mapping": "^0.3.5", + "@jridgewell/trace-mapping": "^0.3.25", + "jsesc": "^3.0.2" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/traverse/node_modules/jsesc": { + "version": "3.1.0", + "resolved": "https://npm.sinequa.com/jsesc/-/jsesc-3.1.0.tgz", + "integrity": "sha512-/sM3dO2FOzXjKQhJuo0Q173wf2KOo8t4I8vHy6lF9poUp7bKT0/NHE8fPX23PwfhnykfqnC2xRxOnVw5XuGIaA==", + "dev": true, + "license": "MIT", + "bin": { + "jsesc": "bin/jsesc" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/@babel/types": { + "version": "7.26.7", + "resolved": "https://npm.sinequa.com/@babel/types/-/types-7.26.7.tgz", + "integrity": "sha512-t8kDRGrKXyp6+tjUh7hw2RLyclsW4TRoRvRHtSyAX9Bb5ldlFh+90YAYY6awRXrlB4G5G2izNeGySpATlFzmOg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-string-parser": "^7.25.9", + "@babel/helper-validator-identifier": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@discoveryjs/json-ext": { + "version": "0.6.1", + "resolved": "https://npm.sinequa.com/@discoveryjs/json-ext/-/json-ext-0.6.1.tgz", + "integrity": "sha512-boghen8F0Q8D+0/Q1/1r6DUEieUJ8w2a1gIknExMSHBsJFOr2+0KUfHiVYBvucPwl3+RU5PFBK833FjFCh3BhA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=14.17.0" + } + }, + "node_modules/@esbuild/aix-ppc64": { + "version": "0.25.0", + "resolved": "https://npm.sinequa.com/@esbuild/aix-ppc64/-/aix-ppc64-0.25.0.tgz", + "integrity": "sha512-O7vun9Sf8DFjH2UtqK8Ku3LkquL9SZL8OLY1T5NZkA34+wG3OQF7cl4Ql8vdNzM6fzBbYfLaiRLIOZ+2FOCgBQ==", + "cpu": [ + "ppc64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "aix" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/android-arm": { + "version": "0.25.0", + "resolved": "https://npm.sinequa.com/@esbuild/android-arm/-/android-arm-0.25.0.tgz", + "integrity": "sha512-PTyWCYYiU0+1eJKmw21lWtC+d08JDZPQ5g+kFyxP0V+es6VPPSUhM6zk8iImp2jbV6GwjX4pap0JFbUQN65X1g==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/android-arm64": { + "version": "0.25.0", + "resolved": "https://npm.sinequa.com/@esbuild/android-arm64/-/android-arm64-0.25.0.tgz", + "integrity": "sha512-grvv8WncGjDSyUBjN9yHXNt+cq0snxXbDxy5pJtzMKGmmpPxeAmAhWxXI+01lU5rwZomDgD3kJwulEnhTRUd6g==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/android-x64": { + "version": "0.25.0", + "resolved": "https://npm.sinequa.com/@esbuild/android-x64/-/android-x64-0.25.0.tgz", + "integrity": "sha512-m/ix7SfKG5buCnxasr52+LI78SQ+wgdENi9CqyCXwjVR2X4Jkz+BpC3le3AoBPYTC9NHklwngVXvbJ9/Akhrfg==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/darwin-arm64": { + "version": "0.25.0", + "resolved": "https://npm.sinequa.com/@esbuild/darwin-arm64/-/darwin-arm64-0.25.0.tgz", + "integrity": "sha512-mVwdUb5SRkPayVadIOI78K7aAnPamoeFR2bT5nszFUZ9P8UpK4ratOdYbZZXYSqPKMHfS1wdHCJk1P1EZpRdvw==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/darwin-x64": { + "version": "0.25.0", + "resolved": "https://npm.sinequa.com/@esbuild/darwin-x64/-/darwin-x64-0.25.0.tgz", + "integrity": "sha512-DgDaYsPWFTS4S3nWpFcMn/33ZZwAAeAFKNHNa1QN0rI4pUjgqf0f7ONmXf6d22tqTY+H9FNdgeaAa+YIFUn2Rg==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/freebsd-arm64": { + "version": "0.25.0", + "resolved": "https://npm.sinequa.com/@esbuild/freebsd-arm64/-/freebsd-arm64-0.25.0.tgz", + "integrity": "sha512-VN4ocxy6dxefN1MepBx/iD1dH5K8qNtNe227I0mnTRjry8tj5MRk4zprLEdG8WPyAPb93/e4pSgi1SoHdgOa4w==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/freebsd-x64": { + "version": "0.25.0", + "resolved": "https://npm.sinequa.com/@esbuild/freebsd-x64/-/freebsd-x64-0.25.0.tgz", + "integrity": "sha512-mrSgt7lCh07FY+hDD1TxiTyIHyttn6vnjesnPoVDNmDfOmggTLXRv8Id5fNZey1gl/V2dyVK1VXXqVsQIiAk+A==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-arm": { + "version": "0.25.0", + "resolved": "https://npm.sinequa.com/@esbuild/linux-arm/-/linux-arm-0.25.0.tgz", + "integrity": "sha512-vkB3IYj2IDo3g9xX7HqhPYxVkNQe8qTK55fraQyTzTX/fxaDtXiEnavv9geOsonh2Fd2RMB+i5cbhu2zMNWJwg==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-arm64": { + "version": "0.25.0", + "resolved": "https://npm.sinequa.com/@esbuild/linux-arm64/-/linux-arm64-0.25.0.tgz", + "integrity": "sha512-9QAQjTWNDM/Vk2bgBl17yWuZxZNQIF0OUUuPZRKoDtqF2k4EtYbpyiG5/Dk7nqeK6kIJWPYldkOcBqjXjrUlmg==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-ia32": { + "version": "0.25.0", + "resolved": "https://npm.sinequa.com/@esbuild/linux-ia32/-/linux-ia32-0.25.0.tgz", + "integrity": "sha512-43ET5bHbphBegyeqLb7I1eYn2P/JYGNmzzdidq/w0T8E2SsYL1U6un2NFROFRg1JZLTzdCoRomg8Rvf9M6W6Gg==", + "cpu": [ + "ia32" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-loong64": { + "version": "0.25.0", + "resolved": "https://npm.sinequa.com/@esbuild/linux-loong64/-/linux-loong64-0.25.0.tgz", + "integrity": "sha512-fC95c/xyNFueMhClxJmeRIj2yrSMdDfmqJnyOY4ZqsALkDrrKJfIg5NTMSzVBr5YW1jf+l7/cndBfP3MSDpoHw==", + "cpu": [ + "loong64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-mips64el": { + "version": "0.25.0", + "resolved": "https://npm.sinequa.com/@esbuild/linux-mips64el/-/linux-mips64el-0.25.0.tgz", + "integrity": "sha512-nkAMFju7KDW73T1DdH7glcyIptm95a7Le8irTQNO/qtkoyypZAnjchQgooFUDQhNAy4iu08N79W4T4pMBwhPwQ==", + "cpu": [ + "mips64el" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-ppc64": { + "version": "0.25.0", + "resolved": "https://npm.sinequa.com/@esbuild/linux-ppc64/-/linux-ppc64-0.25.0.tgz", + "integrity": "sha512-NhyOejdhRGS8Iwv+KKR2zTq2PpysF9XqY+Zk77vQHqNbo/PwZCzB5/h7VGuREZm1fixhs4Q/qWRSi5zmAiO4Fw==", + "cpu": [ + "ppc64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-riscv64": { + "version": "0.25.0", + "resolved": "https://npm.sinequa.com/@esbuild/linux-riscv64/-/linux-riscv64-0.25.0.tgz", + "integrity": "sha512-5S/rbP5OY+GHLC5qXp1y/Mx//e92L1YDqkiBbO9TQOvuFXM+iDqUNG5XopAnXoRH3FjIUDkeGcY1cgNvnXp/kA==", + "cpu": [ + "riscv64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-s390x": { + "version": "0.25.0", + "resolved": "https://npm.sinequa.com/@esbuild/linux-s390x/-/linux-s390x-0.25.0.tgz", + "integrity": "sha512-XM2BFsEBz0Fw37V0zU4CXfcfuACMrppsMFKdYY2WuTS3yi8O1nFOhil/xhKTmE1nPmVyvQJjJivgDT+xh8pXJA==", + "cpu": [ + "s390x" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-x64": { + "version": "0.25.0", + "resolved": "https://npm.sinequa.com/@esbuild/linux-x64/-/linux-x64-0.25.0.tgz", + "integrity": "sha512-9yl91rHw/cpwMCNytUDxwj2XjFpxML0y9HAOH9pNVQDpQrBxHy01Dx+vaMu0N1CKa/RzBD2hB4u//nfc+Sd3Cw==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/netbsd-arm64": { + "version": "0.25.0", + "resolved": "https://npm.sinequa.com/@esbuild/netbsd-arm64/-/netbsd-arm64-0.25.0.tgz", + "integrity": "sha512-RuG4PSMPFfrkH6UwCAqBzauBWTygTvb1nxWasEJooGSJ/NwRw7b2HOwyRTQIU97Hq37l3npXoZGYMy3b3xYvPw==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "netbsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/netbsd-x64": { + "version": "0.25.0", + "resolved": "https://npm.sinequa.com/@esbuild/netbsd-x64/-/netbsd-x64-0.25.0.tgz", + "integrity": "sha512-jl+qisSB5jk01N5f7sPCsBENCOlPiS/xptD5yxOx2oqQfyourJwIKLRA2yqWdifj3owQZCL2sn6o08dBzZGQzA==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "netbsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/openbsd-arm64": { + "version": "0.25.0", + "resolved": "https://npm.sinequa.com/@esbuild/openbsd-arm64/-/openbsd-arm64-0.25.0.tgz", + "integrity": "sha512-21sUNbq2r84YE+SJDfaQRvdgznTD8Xc0oc3p3iW/a1EVWeNj/SdUCbm5U0itZPQYRuRTW20fPMWMpcrciH2EJw==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "openbsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/openbsd-x64": { + "version": "0.25.0", + "resolved": "https://npm.sinequa.com/@esbuild/openbsd-x64/-/openbsd-x64-0.25.0.tgz", + "integrity": "sha512-2gwwriSMPcCFRlPlKx3zLQhfN/2WjJ2NSlg5TKLQOJdV0mSxIcYNTMhk3H3ulL/cak+Xj0lY1Ym9ysDV1igceg==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "openbsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/sunos-x64": { + "version": "0.25.0", + "resolved": "https://npm.sinequa.com/@esbuild/sunos-x64/-/sunos-x64-0.25.0.tgz", + "integrity": "sha512-bxI7ThgLzPrPz484/S9jLlvUAHYMzy6I0XiU1ZMeAEOBcS0VePBFxh1JjTQt3Xiat5b6Oh4x7UC7IwKQKIJRIg==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "sunos" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/win32-arm64": { + "version": "0.25.0", + "resolved": "https://npm.sinequa.com/@esbuild/win32-arm64/-/win32-arm64-0.25.0.tgz", + "integrity": "sha512-ZUAc2YK6JW89xTbXvftxdnYy3m4iHIkDtK3CLce8wg8M2L+YZhIvO1DKpxrd0Yr59AeNNkTiic9YLf6FTtXWMw==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/win32-ia32": { + "version": "0.25.0", + "resolved": "https://npm.sinequa.com/@esbuild/win32-ia32/-/win32-ia32-0.25.0.tgz", + "integrity": "sha512-eSNxISBu8XweVEWG31/JzjkIGbGIJN/TrRoiSVZwZ6pkC6VX4Im/WV2cz559/TXLcYbcrDN8JtKgd9DJVIo8GA==", + "cpu": [ + "ia32" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/win32-x64": { + "version": "0.25.0", + "resolved": "https://npm.sinequa.com/@esbuild/win32-x64/-/win32-x64-0.25.0.tgz", + "integrity": "sha512-ZENoHJBxA20C2zFzh6AI4fT6RraMzjYw4xKWemRTRmRVtN9c5DcH9r/f2ihEkMjOW5eGgrwCslG/+Y/3bL+DHQ==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@floating-ui/core": { + "version": "1.6.9", + "resolved": "https://npm.sinequa.com/@floating-ui/core/-/core-1.6.9.tgz", + "integrity": "sha512-uMXCuQ3BItDUbAMhIXw7UPXRfAlOAvZzdK9BWpE60MCn+Svt3aLn9jsPTi/WNGlRUu2uI0v5S7JiIUsbsvh3fw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@floating-ui/utils": "^0.2.9" + } + }, + "node_modules/@floating-ui/dom": { + "version": "1.6.13", + "resolved": "https://npm.sinequa.com/@floating-ui/dom/-/dom-1.6.13.tgz", + "integrity": "sha512-umqzocjDgNRGTuO7Q8CU32dkHkECqI8ZdMZ5Swb6QAM0t5rnlrN3lGo1hdpscRd3WS8T6DKYK4ephgIH9iRh3w==", + "dev": true, + "license": "MIT", + "dependencies": { + "@floating-ui/core": "^1.6.0", + "@floating-ui/utils": "^0.2.9" + } + }, + "node_modules/@floating-ui/utils": { + "version": "0.2.9", + "resolved": "https://npm.sinequa.com/@floating-ui/utils/-/utils-0.2.9.tgz", + "integrity": "sha512-MDWhGtE+eHw5JW7lq4qhc5yRLS11ERl1c7Z6Xd0a58DozHES6EnNNwUWbMiG4J9Cgj053Bhk8zvlhFYKVhULwg==", + "dev": true, + "license": "MIT" + }, + "node_modules/@inquirer/checkbox": { + "version": "2.5.0", + "resolved": "https://npm.sinequa.com/@inquirer/checkbox/-/checkbox-2.5.0.tgz", + "integrity": "sha512-sMgdETOfi2dUHT8r7TT1BTKOwNvdDGFDXYWtQ2J69SvlYNntk9I/gJe7r5yvMwwsuKnYbuRs3pNhx4tgNck5aA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@inquirer/core": "^9.1.0", + "@inquirer/figures": "^1.0.5", + "@inquirer/type": "^1.5.3", + "ansi-escapes": "^4.3.2", + "yoctocolors-cjs": "^2.1.2" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/@inquirer/confirm": { + "version": "3.1.22", + "resolved": "https://npm.sinequa.com/@inquirer/confirm/-/confirm-3.1.22.tgz", + "integrity": "sha512-gsAKIOWBm2Q87CDfs9fEo7wJT3fwWIJfnDGMn9Qy74gBnNFOACDNfhUzovubbJjWnKLGBln7/NcSmZwj5DuEXg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@inquirer/core": "^9.0.10", + "@inquirer/type": "^1.5.2" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/@inquirer/core": { + "version": "9.2.1", + "resolved": "https://npm.sinequa.com/@inquirer/core/-/core-9.2.1.tgz", + "integrity": "sha512-F2VBt7W/mwqEU4bL0RnHNZmC/OxzNx9cOYxHqnXX3MP6ruYvZUZAW9imgN9+h/uBT/oP8Gh888J2OZSbjSeWcg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@inquirer/figures": "^1.0.6", + "@inquirer/type": "^2.0.0", + "@types/mute-stream": "^0.0.4", + "@types/node": "^22.5.5", + "@types/wrap-ansi": "^3.0.0", + "ansi-escapes": "^4.3.2", + "cli-width": "^4.1.0", + "mute-stream": "^1.0.0", + "signal-exit": "^4.1.0", + "strip-ansi": "^6.0.1", + "wrap-ansi": "^6.2.0", + "yoctocolors-cjs": "^2.1.2" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/@inquirer/core/node_modules/@inquirer/type": { + "version": "2.0.0", + "resolved": "https://npm.sinequa.com/@inquirer/type/-/type-2.0.0.tgz", + "integrity": "sha512-XvJRx+2KR3YXyYtPUUy+qd9i7p+GO9Ko6VIIpWlBrpWwXDv8WLFeHTxz35CfQFUiBMLXlGHhGzys7lqit9gWag==", + "dev": true, + "license": "MIT", + "dependencies": { + "mute-stream": "^1.0.0" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/@inquirer/core/node_modules/@types/node": { + "version": "22.13.1", + "resolved": "https://npm.sinequa.com/@types/node/-/node-22.13.1.tgz", + "integrity": "sha512-jK8uzQlrvXqEU91UxiK5J7pKHyzgnI1Qnl0QDHIgVGuolJhRb9EEl28Cj9b3rGR8B2lhFCtvIm5os8lFnO/1Ew==", + "dev": true, + "license": "MIT", + "dependencies": { + "undici-types": "~6.20.0" + } + }, + "node_modules/@inquirer/editor": { + "version": "2.2.0", + "resolved": "https://npm.sinequa.com/@inquirer/editor/-/editor-2.2.0.tgz", + "integrity": "sha512-9KHOpJ+dIL5SZli8lJ6xdaYLPPzB8xB9GZItg39MBybzhxA16vxmszmQFrRwbOA918WA2rvu8xhDEg/p6LXKbw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@inquirer/core": "^9.1.0", + "@inquirer/type": "^1.5.3", + "external-editor": "^3.1.0" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/@inquirer/expand": { + "version": "2.3.0", + "resolved": "https://npm.sinequa.com/@inquirer/expand/-/expand-2.3.0.tgz", + "integrity": "sha512-qnJsUcOGCSG1e5DTOErmv2BPQqrtT6uzqn1vI/aYGiPKq+FgslGZmtdnXbhuI7IlT7OByDoEEqdnhUnVR2hhLw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@inquirer/core": "^9.1.0", + "@inquirer/type": "^1.5.3", + "yoctocolors-cjs": "^2.1.2" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/@inquirer/figures": { + "version": "1.0.10", + "resolved": "https://npm.sinequa.com/@inquirer/figures/-/figures-1.0.10.tgz", + "integrity": "sha512-Ey6176gZmeqZuY/W/nZiUyvmb1/qInjcpiZjXWi6nON+nxJpD1bxtSoBxNliGISae32n6OwbY+TSXPZ1CfS4bw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=18" + } + }, + "node_modules/@inquirer/input": { + "version": "2.3.0", + "resolved": "https://npm.sinequa.com/@inquirer/input/-/input-2.3.0.tgz", + "integrity": "sha512-XfnpCStx2xgh1LIRqPXrTNEEByqQWoxsWYzNRSEUxJ5c6EQlhMogJ3vHKu8aXuTacebtaZzMAHwEL0kAflKOBw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@inquirer/core": "^9.1.0", + "@inquirer/type": "^1.5.3" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/@inquirer/number": { + "version": "1.1.0", + "resolved": "https://npm.sinequa.com/@inquirer/number/-/number-1.1.0.tgz", + "integrity": "sha512-ilUnia/GZUtfSZy3YEErXLJ2Sljo/mf9fiKc08n18DdwdmDbOzRcTv65H1jjDvlsAuvdFXf4Sa/aL7iw/NanVA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@inquirer/core": "^9.1.0", + "@inquirer/type": "^1.5.3" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/@inquirer/password": { + "version": "2.2.0", + "resolved": "https://npm.sinequa.com/@inquirer/password/-/password-2.2.0.tgz", + "integrity": "sha512-5otqIpgsPYIshqhgtEwSspBQE40etouR8VIxzpJkv9i0dVHIpyhiivbkH9/dGiMLdyamT54YRdGJLfl8TFnLHg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@inquirer/core": "^9.1.0", + "@inquirer/type": "^1.5.3", + "ansi-escapes": "^4.3.2" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/@inquirer/prompts": { + "version": "5.3.8", + "resolved": "https://npm.sinequa.com/@inquirer/prompts/-/prompts-5.3.8.tgz", + "integrity": "sha512-b2BudQY/Si4Y2a0PdZZL6BeJtl8llgeZa7U2j47aaJSCeAl1e4UI7y8a9bSkO3o/ZbZrgT5muy/34JbsjfIWxA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@inquirer/checkbox": "^2.4.7", + "@inquirer/confirm": "^3.1.22", + "@inquirer/editor": "^2.1.22", + "@inquirer/expand": "^2.1.22", + "@inquirer/input": "^2.2.9", + "@inquirer/number": "^1.0.10", + "@inquirer/password": "^2.1.22", + "@inquirer/rawlist": "^2.2.4", + "@inquirer/search": "^1.0.7", + "@inquirer/select": "^2.4.7" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/@inquirer/rawlist": { + "version": "2.3.0", + "resolved": "https://npm.sinequa.com/@inquirer/rawlist/-/rawlist-2.3.0.tgz", + "integrity": "sha512-zzfNuINhFF7OLAtGHfhwOW2TlYJyli7lOUoJUXw/uyklcwalV6WRXBXtFIicN8rTRK1XTiPWB4UY+YuW8dsnLQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@inquirer/core": "^9.1.0", + "@inquirer/type": "^1.5.3", + "yoctocolors-cjs": "^2.1.2" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/@inquirer/search": { + "version": "1.1.0", + "resolved": "https://npm.sinequa.com/@inquirer/search/-/search-1.1.0.tgz", + "integrity": "sha512-h+/5LSj51dx7hp5xOn4QFnUaKeARwUCLs6mIhtkJ0JYPBLmEYjdHSYh7I6GrLg9LwpJ3xeX0FZgAG1q0QdCpVQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@inquirer/core": "^9.1.0", + "@inquirer/figures": "^1.0.5", + "@inquirer/type": "^1.5.3", + "yoctocolors-cjs": "^2.1.2" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/@inquirer/select": { + "version": "2.5.0", + "resolved": "https://npm.sinequa.com/@inquirer/select/-/select-2.5.0.tgz", + "integrity": "sha512-YmDobTItPP3WcEI86GvPo+T2sRHkxxOq/kXmsBjHS5BVXUgvgZ5AfJjkvQvZr03T81NnI3KrrRuMzeuYUQRFOA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@inquirer/core": "^9.1.0", + "@inquirer/figures": "^1.0.5", + "@inquirer/type": "^1.5.3", + "ansi-escapes": "^4.3.2", + "yoctocolors-cjs": "^2.1.2" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/@inquirer/type": { + "version": "1.5.5", + "resolved": "https://npm.sinequa.com/@inquirer/type/-/type-1.5.5.tgz", + "integrity": "sha512-MzICLu4yS7V8AA61sANROZ9vT1H3ooca5dSmI1FjZkzq7o/koMsRfQSzRtFo+F3Ao4Sf1C0bpLKejpKB/+j6MA==", + "dev": true, + "license": "MIT", + "dependencies": { + "mute-stream": "^1.0.0" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/@isaacs/cliui": { + "version": "8.0.2", + "resolved": "https://npm.sinequa.com/@isaacs/cliui/-/cliui-8.0.2.tgz", + "integrity": "sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==", + "license": "ISC", + "dependencies": { + "string-width": "^5.1.2", + "string-width-cjs": "npm:string-width@^4.2.0", + "strip-ansi": "^7.0.1", + "strip-ansi-cjs": "npm:strip-ansi@^6.0.1", + "wrap-ansi": "^8.1.0", + "wrap-ansi-cjs": "npm:wrap-ansi@^7.0.0" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/@isaacs/cliui/node_modules/ansi-regex": { + "version": "6.1.0", + "resolved": "https://npm.sinequa.com/ansi-regex/-/ansi-regex-6.1.0.tgz", + "integrity": "sha512-7HSX4QQb4CspciLpVFwyRe79O3xsIZDDLER21kERQ71oaPodF8jL725AgJMFAYbooIqolJoRLuM81SpeUkpkvA==", + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-regex?sponsor=1" + } + }, + "node_modules/@isaacs/cliui/node_modules/ansi-styles": { + "version": "6.2.1", + "resolved": "https://npm.sinequa.com/ansi-styles/-/ansi-styles-6.2.1.tgz", + "integrity": "sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==", + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/@isaacs/cliui/node_modules/strip-ansi": { + "version": "7.1.0", + "resolved": "https://npm.sinequa.com/strip-ansi/-/strip-ansi-7.1.0.tgz", + "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==", + "license": "MIT", + "dependencies": { + "ansi-regex": "^6.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/strip-ansi?sponsor=1" + } + }, + "node_modules/@isaacs/cliui/node_modules/wrap-ansi": { + "version": "8.1.0", + "resolved": "https://npm.sinequa.com/wrap-ansi/-/wrap-ansi-8.1.0.tgz", + "integrity": "sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==", + "license": "MIT", + "dependencies": { + "ansi-styles": "^6.1.0", + "string-width": "^5.0.1", + "strip-ansi": "^7.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + } + }, + "node_modules/@istanbuljs/schema": { + "version": "0.1.3", + "resolved": "https://npm.sinequa.com/@istanbuljs/schema/-/schema-0.1.3.tgz", + "integrity": "sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/@jridgewell/gen-mapping": { + "version": "0.3.8", + "resolved": "https://npm.sinequa.com/@jridgewell/gen-mapping/-/gen-mapping-0.3.8.tgz", + "integrity": "sha512-imAbBGkb+ebQyxKgzv5Hu2nmROxoDOXHh80evxdoXNOrvAnVx7zimzc1Oo5h9RlfV4vPXaE2iM5pOFbvOCClWA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jridgewell/set-array": "^1.2.1", + "@jridgewell/sourcemap-codec": "^1.4.10", + "@jridgewell/trace-mapping": "^0.3.24" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/resolve-uri": { + "version": "3.1.2", + "resolved": "https://npm.sinequa.com/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz", + "integrity": "sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/set-array": { + "version": "1.2.1", + "resolved": "https://npm.sinequa.com/@jridgewell/set-array/-/set-array-1.2.1.tgz", + "integrity": "sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/source-map": { + "version": "0.3.6", + "resolved": "https://npm.sinequa.com/@jridgewell/source-map/-/source-map-0.3.6.tgz", + "integrity": "sha512-1ZJTZebgqllO79ue2bm3rIGud/bOe0pP5BjSRCRxxYkEZS8STV7zN84UBbiYu7jy+eCKSnVIUgoWWE/tt+shMQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jridgewell/gen-mapping": "^0.3.5", + "@jridgewell/trace-mapping": "^0.3.25" + } + }, + "node_modules/@jridgewell/sourcemap-codec": { + "version": "1.5.0", + "resolved": "https://npm.sinequa.com/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.0.tgz", + "integrity": "sha512-gv3ZRaISU3fjPAgNsriBRqGWQL6quFx04YMPW/zD8XMLsU32mhCCbfbO6KZFLjvYpCZ8zyDEgqsgf+PwPaM7GQ==", + "license": "MIT" + }, + "node_modules/@jridgewell/trace-mapping": { + "version": "0.3.25", + "resolved": "https://npm.sinequa.com/@jridgewell/trace-mapping/-/trace-mapping-0.3.25.tgz", + "integrity": "sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jridgewell/resolve-uri": "^3.1.0", + "@jridgewell/sourcemap-codec": "^1.4.14" + } + }, + "node_modules/@jsonjoy.com/base64": { + "version": "1.1.2", + "resolved": "https://npm.sinequa.com/@jsonjoy.com/base64/-/base64-1.1.2.tgz", + "integrity": "sha512-q6XAnWQDIMA3+FTiOYajoYqySkO+JSat0ytXGSuRdq9uXE7o92gzuQwQM14xaCRlBLGq3v5miDGC4vkVTn54xA==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": ">=10.0" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/streamich" + }, + "peerDependencies": { + "tslib": "2" + } + }, + "node_modules/@jsonjoy.com/json-pack": { + "version": "1.1.1", + "resolved": "https://npm.sinequa.com/@jsonjoy.com/json-pack/-/json-pack-1.1.1.tgz", + "integrity": "sha512-osjeBqMJ2lb/j/M8NCPjs1ylqWIcTRTycIhVB5pt6LgzgeRSb0YRZ7j9RfA8wIUrsr/medIuhVyonXRZWLyfdw==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "@jsonjoy.com/base64": "^1.1.1", + "@jsonjoy.com/util": "^1.1.2", + "hyperdyperid": "^1.2.0", + "thingies": "^1.20.0" + }, + "engines": { + "node": ">=10.0" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/streamich" + }, + "peerDependencies": { + "tslib": "2" + } + }, + "node_modules/@jsonjoy.com/util": { + "version": "1.5.0", + "resolved": "https://npm.sinequa.com/@jsonjoy.com/util/-/util-1.5.0.tgz", + "integrity": "sha512-ojoNsrIuPI9g6o8UxhraZQSyF2ByJanAY4cTFbc8Mf2AXEF4aQRGY1dJxyJpuyav8r9FGflEt/Ff3u5Nt6YMPA==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": ">=10.0" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/streamich" + }, + "peerDependencies": { + "tslib": "2" + } + }, + "node_modules/@jsverse/transloco": { + "version": "7.5.1", + "resolved": "https://npm.sinequa.com/@jsverse/transloco/-/transloco-7.5.1.tgz", + "integrity": "sha512-2GtJKFKmwvw7ygkf51kNMNJ1PSiepvDIqgFM1Sl8aX6if/kZ4/FNKVz0t64QP2JHUU16I2Le05In7IbiRE7ZrQ==", + "license": "MIT", + "dependencies": { + "@jsverse/transloco-utils": "^7.0.0", + "fs-extra": "^11.0.0", + "glob": "^10.0.0", + "lodash.kebabcase": "^4.1.1", + "ora": "^5.4.1", + "replace-in-file": "^7.0.1", + "tslib": "^2.2.0" + }, + "peerDependencies": { + "@angular/core": ">=16.0.0" + } + }, + "node_modules/@jsverse/transloco-messageformat": { + "version": "7.0.1", + "resolved": "https://npm.sinequa.com/@jsverse/transloco-messageformat/-/transloco-messageformat-7.0.1.tgz", + "integrity": "sha512-yhTizhEUD/omY40UWqQkQwRP9O7RxPkYB2QZlpgGu0IqS1RqNhmLX+j5MJLePZzpH3n9zfx+rkPM+oqfDsKBSg==", + "license": "MIT", + "dependencies": { + "@messageformat/core": "^3.0.0", + "tslib": "^2.2.0" + }, + "peerDependencies": { + "@angular/core": ">=16.0.0", + "@jsverse/transloco": ">=7.0.0", + "rxjs": ">=6.0.0" + } + }, + "node_modules/@jsverse/transloco-utils": { + "version": "7.0.2", + "resolved": "https://npm.sinequa.com/@jsverse/transloco-utils/-/transloco-utils-7.0.2.tgz", + "integrity": "sha512-zud1M68mMC/Pu6irEba+Z2SzmwmmPzUPnBzMKlcGdIhzUe1z41cqQutK1M0QaQpY4h4yhumXcNaY/Ot6piv6QQ==", + "license": "MIT", + "dependencies": { + "cosmiconfig": "^8.1.3", + "tslib": "^2.3.0" + }, + "engines": { + "node": ">=16" + } + }, + "node_modules/@leichtgewicht/ip-codec": { + "version": "2.0.5", + "resolved": "https://npm.sinequa.com/@leichtgewicht/ip-codec/-/ip-codec-2.0.5.tgz", + "integrity": "sha512-Vo+PSpZG2/fmgmiNzYK9qWRh8h/CHrwD0mo1h1DzL4yzHNSfWYujGTYsWGreD000gcgmZ7K4Ys6Tx9TxtsKdDw==", + "dev": true, + "license": "MIT" + }, + "node_modules/@listr2/prompt-adapter-inquirer": { + "version": "2.0.15", + "resolved": "https://npm.sinequa.com/@listr2/prompt-adapter-inquirer/-/prompt-adapter-inquirer-2.0.15.tgz", + "integrity": "sha512-MZrGem/Ujjd4cPTLYDfCZK2iKKeiO/8OX13S6jqxldLs0Prf2aGqVlJ77nMBqMv7fzqgXEgjrNHLXcKR8l9lOg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@inquirer/type": "^1.5.1" + }, + "engines": { + "node": ">=18.0.0" + }, + "peerDependencies": { + "@inquirer/prompts": ">= 3 < 6" + } + }, + "node_modules/@lmdb/lmdb-darwin-arm64": { + "version": "3.0.13", + "resolved": "https://npm.sinequa.com/@lmdb/lmdb-darwin-arm64/-/lmdb-darwin-arm64-3.0.13.tgz", + "integrity": "sha512-uiKPB0Fv6WEEOZjruu9a6wnW/8jrjzlZbxXscMB8kuCJ1k6kHpcBnuvaAWcqhbI7rqX5GKziwWEdD+wi2gNLfA==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ] + }, + "node_modules/@lmdb/lmdb-darwin-x64": { + "version": "3.0.13", + "resolved": "https://npm.sinequa.com/@lmdb/lmdb-darwin-x64/-/lmdb-darwin-x64-3.0.13.tgz", + "integrity": "sha512-bEVIIfK5mSQoG1R19qA+fJOvCB+0wVGGnXHT3smchBVahYBdlPn2OsZZKzlHWfb1E+PhLBmYfqB5zQXFP7hJig==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ] + }, + "node_modules/@lmdb/lmdb-linux-arm": { + "version": "3.0.13", + "resolved": "https://npm.sinequa.com/@lmdb/lmdb-linux-arm/-/lmdb-linux-arm-3.0.13.tgz", + "integrity": "sha512-Yml1KlMzOnXj/tnW7yX8U78iAzTk39aILYvCPbqeewAq1kSzl+w59k/fiVkTBfvDi/oW/5YRxL+Fq+Y1Fr1r2Q==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@lmdb/lmdb-linux-arm64": { + "version": "3.0.13", + "resolved": "https://npm.sinequa.com/@lmdb/lmdb-linux-arm64/-/lmdb-linux-arm64-3.0.13.tgz", + "integrity": "sha512-afbVrsMgZ9dUTNUchFpj5VkmJRxvht/u335jUJ7o23YTbNbnpmXif3VKQGCtnjSh+CZaqm6N3CPG8KO3zwyZ1Q==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@lmdb/lmdb-linux-x64": { + "version": "3.0.13", + "resolved": "https://npm.sinequa.com/@lmdb/lmdb-linux-x64/-/lmdb-linux-x64-3.0.13.tgz", + "integrity": "sha512-vOtxu0xC0SLdQ2WRXg8Qgd8T32ak4SPqk5zjItRszrJk2BdeXqfGxBJbP7o4aOvSPSmSSv46Lr1EP4HXU8v7Kg==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@lmdb/lmdb-win32-x64": { + "version": "3.0.13", + "resolved": "https://npm.sinequa.com/@lmdb/lmdb-win32-x64/-/lmdb-win32-x64-3.0.13.tgz", + "integrity": "sha512-UCrMJQY/gJnOl3XgbWRZZUvGGBuKy6i0YNSptgMzHBjs+QYDYR1Mt/RLTOPy4fzzves65O1EDmlL//OzEqoLlA==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@messageformat/core": { + "version": "3.4.0", + "resolved": "https://npm.sinequa.com/@messageformat/core/-/core-3.4.0.tgz", + "integrity": "sha512-NgCFubFFIdMWJGN5WuQhHCNmzk7QgiVfrViFxcS99j7F5dDS5EP6raR54I+2ydhe4+5/XTn/YIEppFaqqVWHsw==", + "license": "MIT", + "dependencies": { + "@messageformat/date-skeleton": "^1.0.0", + "@messageformat/number-skeleton": "^1.0.0", + "@messageformat/parser": "^5.1.0", + "@messageformat/runtime": "^3.0.1", + "make-plural": "^7.0.0", + "safe-identifier": "^0.4.1" + } + }, + "node_modules/@messageformat/date-skeleton": { + "version": "1.1.0", + "resolved": "https://npm.sinequa.com/@messageformat/date-skeleton/-/date-skeleton-1.1.0.tgz", + "integrity": "sha512-rmGAfB1tIPER+gh3p/RgA+PVeRE/gxuQ2w4snFWPF5xtb5mbWR7Cbw7wCOftcUypbD6HVoxrVdyyghPm3WzP5A==", + "license": "MIT" + }, + "node_modules/@messageformat/number-skeleton": { + "version": "1.2.0", + "resolved": "https://npm.sinequa.com/@messageformat/number-skeleton/-/number-skeleton-1.2.0.tgz", + "integrity": "sha512-xsgwcL7J7WhlHJ3RNbaVgssaIwcEyFkBqxHdcdaiJzwTZAWEOD8BuUFxnxV9k5S0qHN3v/KzUpq0IUpjH1seRg==", + "license": "MIT" + }, + "node_modules/@messageformat/parser": { + "version": "5.1.1", + "resolved": "https://npm.sinequa.com/@messageformat/parser/-/parser-5.1.1.tgz", + "integrity": "sha512-3p0YRGCcTUCYvBKLIxtDDyrJ0YijGIwrTRu1DT8gIviIDZru8H23+FkY6MJBzM1n9n20CiM4VeDYuBsrrwnLjg==", + "license": "MIT", + "dependencies": { + "moo": "^0.5.1" + } + }, + "node_modules/@messageformat/runtime": { + "version": "3.0.1", + "resolved": "https://npm.sinequa.com/@messageformat/runtime/-/runtime-3.0.1.tgz", + "integrity": "sha512-6RU5ol2lDtO8bD9Yxe6CZkl0DArdv0qkuoZC+ZwowU+cdRlVE1157wjCmlA5Rsf1Xc/brACnsZa5PZpEDfTFFg==", + "license": "MIT", + "dependencies": { + "make-plural": "^7.0.0" + } + }, + "node_modules/@microsoft/signalr": { + "version": "7.0.14", + "resolved": "https://npm.sinequa.com/@microsoft/signalr/-/signalr-7.0.14.tgz", + "integrity": "sha512-dnS7gSJF5LxByZwJaj82+F1K755ya7ttPT+JnSeCBef3sL8p8FBkHePXphK8NSuOquIb7vsphXWa28A+L2SPpw==", + "license": "MIT", + "dependencies": { + "abort-controller": "^3.0.0", + "eventsource": "^2.0.2", + "fetch-cookie": "^2.0.3", + "node-fetch": "^2.6.7", + "ws": "^7.4.5" + } + }, + "node_modules/@msgpackr-extract/msgpackr-extract-darwin-arm64": { + "version": "3.0.3", + "resolved": "https://npm.sinequa.com/@msgpackr-extract/msgpackr-extract-darwin-arm64/-/msgpackr-extract-darwin-arm64-3.0.3.tgz", + "integrity": "sha512-QZHtlVgbAdy2zAqNA9Gu1UpIuI8Xvsd1v8ic6B2pZmeFnFcMWiPLfWXh7TVw4eGEZ/C9TH281KwhVoeQUKbyjw==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ] + }, + "node_modules/@msgpackr-extract/msgpackr-extract-darwin-x64": { + "version": "3.0.3", + "resolved": "https://npm.sinequa.com/@msgpackr-extract/msgpackr-extract-darwin-x64/-/msgpackr-extract-darwin-x64-3.0.3.tgz", + "integrity": "sha512-mdzd3AVzYKuUmiWOQ8GNhl64/IoFGol569zNRdkLReh6LRLHOXxU4U8eq0JwaD8iFHdVGqSy4IjFL4reoWCDFw==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ] + }, + "node_modules/@msgpackr-extract/msgpackr-extract-linux-arm": { + "version": "3.0.3", + "resolved": "https://npm.sinequa.com/@msgpackr-extract/msgpackr-extract-linux-arm/-/msgpackr-extract-linux-arm-3.0.3.tgz", + "integrity": "sha512-fg0uy/dG/nZEXfYilKoRe7yALaNmHoYeIoJuJ7KJ+YyU2bvY8vPv27f7UKhGRpY6euFYqEVhxCFZgAUNQBM3nw==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@msgpackr-extract/msgpackr-extract-linux-arm64": { + "version": "3.0.3", + "resolved": "https://npm.sinequa.com/@msgpackr-extract/msgpackr-extract-linux-arm64/-/msgpackr-extract-linux-arm64-3.0.3.tgz", + "integrity": "sha512-YxQL+ax0XqBJDZiKimS2XQaf+2wDGVa1enVRGzEvLLVFeqa5kx2bWbtcSXgsxjQB7nRqqIGFIcLteF/sHeVtQg==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@msgpackr-extract/msgpackr-extract-linux-x64": { + "version": "3.0.3", + "resolved": "https://npm.sinequa.com/@msgpackr-extract/msgpackr-extract-linux-x64/-/msgpackr-extract-linux-x64-3.0.3.tgz", + "integrity": "sha512-cvwNfbP07pKUfq1uH+S6KJ7dT9K8WOE4ZiAcsrSes+UY55E/0jLYc+vq+DO7jlmqRb5zAggExKm0H7O/CBaesg==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@msgpackr-extract/msgpackr-extract-win32-x64": { + "version": "3.0.3", + "resolved": "https://npm.sinequa.com/@msgpackr-extract/msgpackr-extract-win32-x64/-/msgpackr-extract-win32-x64-3.0.3.tgz", + "integrity": "sha512-x0fWaQtYp4E6sktbsdAqnehxDgEc/VwM7uLsRCYWaiGu0ykYdZPiS8zCWdnjHwyiumousxfBm4SO31eXqwEZhQ==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@ngrx/signals": { + "version": "18.1.1", + "resolved": "https://npm.sinequa.com/@ngrx/signals/-/signals-18.1.1.tgz", + "integrity": "sha512-7AaFp4VrzYhnDHlF15VZAMvp067zIC5arRRRMV+i+oi95sQVDXezpj74KTIguwRbZ3FU+GKGzFCNrwgYvginSg==", + "license": "MIT", + "dependencies": { + "tslib": "^2.3.0" + }, + "peerDependencies": { + "@angular/core": "^18.0.0", + "rxjs": "^6.5.3 || ^7.4.0" + }, + "peerDependenciesMeta": { + "rxjs": { + "optional": true + } + } + }, + "node_modules/@ngrx/store": { + "version": "18.1.1", + "resolved": "https://npm.sinequa.com/@ngrx/store/-/store-18.1.1.tgz", + "integrity": "sha512-K0v1akJ2sEnIeb1AUA064+ksgRgbMgVG9HbSsLBxENbFjK2ZvKRxo1bpOw6WHW9+hyDTlhZGl7+gUtjmo3497g==", + "license": "MIT", + "dependencies": { + "tslib": "^2.0.0" + }, + "peerDependencies": { + "@angular/core": "^18.0.0", + "rxjs": "^6.5.3 || ^7.5.0" + } + }, + "node_modules/@ngtools/webpack": { + "version": "18.2.14", + "resolved": "https://npm.sinequa.com/@ngtools/webpack/-/webpack-18.2.14.tgz", + "integrity": "sha512-rT+Y4WR8QTVsijtb+YRqHcPTpd1ZiwRbklQXRTxU0YGFHpxpi+bhjmY8FjpPoAtdPO1Lg3l3KIZPZa0thG0FNg==", + "dev": true, + "license": "MIT", + "engines": { + "node": "^18.19.1 || ^20.11.1 || >=22.0.0", + "npm": "^6.11.0 || ^7.5.6 || >=8.0.0", + "yarn": ">= 1.13.0" + }, + "peerDependencies": { + "@angular/compiler-cli": "^18.0.0", + "typescript": ">=5.4 <5.6", + "webpack": "^5.54.0" + } + }, + "node_modules/@nodelib/fs.scandir": { + "version": "2.1.5", + "resolved": "https://npm.sinequa.com/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", + "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", + "dev": true, + "license": "MIT", + "dependencies": { + "@nodelib/fs.stat": "2.0.5", + "run-parallel": "^1.1.9" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@nodelib/fs.stat": { + "version": "2.0.5", + "resolved": "https://npm.sinequa.com/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", + "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 8" + } + }, + "node_modules/@nodelib/fs.walk": { + "version": "1.2.8", + "resolved": "https://npm.sinequa.com/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", + "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@nodelib/fs.scandir": "2.1.5", + "fastq": "^1.6.0" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@npmcli/agent": { + "version": "2.2.2", + "resolved": "https://npm.sinequa.com/@npmcli/agent/-/agent-2.2.2.tgz", + "integrity": "sha512-OrcNPXdpSl9UX7qPVRWbmWMCSXrcDa2M9DvrbOTj7ao1S4PlqVFYv9/yLKMkrJKZ/V5A/kDBC690or307i26Og==", + "dev": true, + "license": "ISC", + "dependencies": { + "agent-base": "^7.1.0", + "http-proxy-agent": "^7.0.0", + "https-proxy-agent": "^7.0.1", + "lru-cache": "^10.0.1", + "socks-proxy-agent": "^8.0.3" + }, + "engines": { + "node": "^16.14.0 || >=18.0.0" + } + }, + "node_modules/@npmcli/agent/node_modules/lru-cache": { + "version": "10.4.3", + "resolved": "https://npm.sinequa.com/lru-cache/-/lru-cache-10.4.3.tgz", + "integrity": "sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==", + "dev": true, + "license": "ISC" + }, + "node_modules/@npmcli/fs": { + "version": "3.1.1", + "resolved": "https://npm.sinequa.com/@npmcli/fs/-/fs-3.1.1.tgz", + "integrity": "sha512-q9CRWjpHCMIh5sVyefoD1cA7PkvILqCZsnSOEUUivORLjxCO/Irmue2DprETiNgEqktDBZaM1Bi+jrarx1XdCg==", + "dev": true, + "license": "ISC", + "dependencies": { + "semver": "^7.3.5" + }, + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/@npmcli/git": { + "version": "5.0.8", + "resolved": "https://npm.sinequa.com/@npmcli/git/-/git-5.0.8.tgz", + "integrity": "sha512-liASfw5cqhjNW9UFd+ruwwdEf/lbOAQjLL2XY2dFW/bkJheXDYZgOyul/4gVvEV4BWkTXjYGmDqMw9uegdbJNQ==", + "dev": true, + "license": "ISC", + "dependencies": { + "@npmcli/promise-spawn": "^7.0.0", + "ini": "^4.1.3", + "lru-cache": "^10.0.1", + "npm-pick-manifest": "^9.0.0", + "proc-log": "^4.0.0", + "promise-inflight": "^1.0.1", + "promise-retry": "^2.0.1", + "semver": "^7.3.5", + "which": "^4.0.0" + }, + "engines": { + "node": "^16.14.0 || >=18.0.0" + } + }, + "node_modules/@npmcli/git/node_modules/isexe": { + "version": "3.1.1", + "resolved": "https://npm.sinequa.com/isexe/-/isexe-3.1.1.tgz", + "integrity": "sha512-LpB/54B+/2J5hqQ7imZHfdU31OlgQqx7ZicVlkm9kzg9/w8GKLEcFfJl/t7DCEDueOyBAD6zCCwTO6Fzs0NoEQ==", + "dev": true, + "license": "ISC", + "engines": { + "node": ">=16" + } + }, + "node_modules/@npmcli/git/node_modules/lru-cache": { + "version": "10.4.3", + "resolved": "https://npm.sinequa.com/lru-cache/-/lru-cache-10.4.3.tgz", + "integrity": "sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==", + "dev": true, + "license": "ISC" + }, + "node_modules/@npmcli/git/node_modules/which": { + "version": "4.0.0", + "resolved": "https://npm.sinequa.com/which/-/which-4.0.0.tgz", + "integrity": "sha512-GlaYyEb07DPxYCKhKzplCWBJtvxZcZMrL+4UkrTSJHHPyZU4mYYTv3qaOe77H7EODLSSopAUFAc6W8U4yqvscg==", + "dev": true, + "license": "ISC", + "dependencies": { + "isexe": "^3.1.1" + }, + "bin": { + "node-which": "bin/which.js" + }, + "engines": { + "node": "^16.13.0 || >=18.0.0" + } + }, + "node_modules/@npmcli/installed-package-contents": { + "version": "2.1.0", + "resolved": "https://npm.sinequa.com/@npmcli/installed-package-contents/-/installed-package-contents-2.1.0.tgz", + "integrity": "sha512-c8UuGLeZpm69BryRykLuKRyKFZYJsZSCT4aVY5ds4omyZqJ172ApzgfKJ5eV/r3HgLdUYgFVe54KSFVjKoe27w==", + "dev": true, + "license": "ISC", + "dependencies": { + "npm-bundled": "^3.0.0", + "npm-normalize-package-bin": "^3.0.0" + }, + "bin": { + "installed-package-contents": "bin/index.js" + }, + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/@npmcli/node-gyp": { + "version": "3.0.0", + "resolved": "https://npm.sinequa.com/@npmcli/node-gyp/-/node-gyp-3.0.0.tgz", + "integrity": "sha512-gp8pRXC2oOxu0DUE1/M3bYtb1b3/DbJ5aM113+XJBgfXdussRAsX0YOrOhdd8WvnAR6auDBvJomGAkLKA5ydxA==", + "dev": true, + "license": "ISC", + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/@npmcli/package-json": { + "version": "5.2.1", + "resolved": "https://npm.sinequa.com/@npmcli/package-json/-/package-json-5.2.1.tgz", + "integrity": "sha512-f7zYC6kQautXHvNbLEWgD/uGu1+xCn9izgqBfgItWSx22U0ZDekxN08A1vM8cTxj/cRVe0Q94Ode+tdoYmIOOQ==", + "dev": true, + "license": "ISC", + "dependencies": { + "@npmcli/git": "^5.0.0", + "glob": "^10.2.2", + "hosted-git-info": "^7.0.0", + "json-parse-even-better-errors": "^3.0.0", + "normalize-package-data": "^6.0.0", + "proc-log": "^4.0.0", + "semver": "^7.5.3" + }, + "engines": { + "node": "^16.14.0 || >=18.0.0" + } + }, + "node_modules/@npmcli/promise-spawn": { + "version": "7.0.2", + "resolved": "https://npm.sinequa.com/@npmcli/promise-spawn/-/promise-spawn-7.0.2.tgz", + "integrity": "sha512-xhfYPXoV5Dy4UkY0D+v2KkwvnDfiA/8Mt3sWCGI/hM03NsYIH8ZaG6QzS9x7pje5vHZBZJ2v6VRFVTWACnqcmQ==", + "dev": true, + "license": "ISC", + "dependencies": { + "which": "^4.0.0" + }, + "engines": { + "node": "^16.14.0 || >=18.0.0" + } + }, + "node_modules/@npmcli/promise-spawn/node_modules/isexe": { + "version": "3.1.1", + "resolved": "https://npm.sinequa.com/isexe/-/isexe-3.1.1.tgz", + "integrity": "sha512-LpB/54B+/2J5hqQ7imZHfdU31OlgQqx7ZicVlkm9kzg9/w8GKLEcFfJl/t7DCEDueOyBAD6zCCwTO6Fzs0NoEQ==", + "dev": true, + "license": "ISC", + "engines": { + "node": ">=16" + } + }, + "node_modules/@npmcli/promise-spawn/node_modules/which": { + "version": "4.0.0", + "resolved": "https://npm.sinequa.com/which/-/which-4.0.0.tgz", + "integrity": "sha512-GlaYyEb07DPxYCKhKzplCWBJtvxZcZMrL+4UkrTSJHHPyZU4mYYTv3qaOe77H7EODLSSopAUFAc6W8U4yqvscg==", + "dev": true, + "license": "ISC", + "dependencies": { + "isexe": "^3.1.1" + }, + "bin": { + "node-which": "bin/which.js" + }, + "engines": { + "node": "^16.13.0 || >=18.0.0" + } + }, + "node_modules/@npmcli/redact": { + "version": "2.0.1", + "resolved": "https://npm.sinequa.com/@npmcli/redact/-/redact-2.0.1.tgz", + "integrity": "sha512-YgsR5jCQZhVmTJvjduTOIHph0L73pK8xwMVaDY0PatySqVM9AZj93jpoXYSJqfHFxFkN9dmqTw6OiqExsS3LPw==", + "dev": true, + "license": "ISC", + "engines": { + "node": "^16.14.0 || >=18.0.0" + } + }, + "node_modules/@npmcli/run-script": { + "version": "8.1.0", + "resolved": "https://npm.sinequa.com/@npmcli/run-script/-/run-script-8.1.0.tgz", + "integrity": "sha512-y7efHHwghQfk28G2z3tlZ67pLG0XdfYbcVG26r7YIXALRsrVQcTq4/tdenSmdOrEsNahIYA/eh8aEVROWGFUDg==", + "dev": true, + "license": "ISC", + "dependencies": { + "@npmcli/node-gyp": "^3.0.0", + "@npmcli/package-json": "^5.0.0", + "@npmcli/promise-spawn": "^7.0.0", + "node-gyp": "^10.0.0", + "proc-log": "^4.0.0", + "which": "^4.0.0" + }, + "engines": { + "node": "^16.14.0 || >=18.0.0" + } + }, + "node_modules/@npmcli/run-script/node_modules/isexe": { + "version": "3.1.1", + "resolved": "https://npm.sinequa.com/isexe/-/isexe-3.1.1.tgz", + "integrity": "sha512-LpB/54B+/2J5hqQ7imZHfdU31OlgQqx7ZicVlkm9kzg9/w8GKLEcFfJl/t7DCEDueOyBAD6zCCwTO6Fzs0NoEQ==", + "dev": true, + "license": "ISC", + "engines": { + "node": ">=16" + } + }, + "node_modules/@npmcli/run-script/node_modules/which": { + "version": "4.0.0", + "resolved": "https://npm.sinequa.com/which/-/which-4.0.0.tgz", + "integrity": "sha512-GlaYyEb07DPxYCKhKzplCWBJtvxZcZMrL+4UkrTSJHHPyZU4mYYTv3qaOe77H7EODLSSopAUFAc6W8U4yqvscg==", + "dev": true, + "license": "ISC", + "dependencies": { + "isexe": "^3.1.1" + }, + "bin": { + "node-which": "bin/which.js" + }, + "engines": { + "node": "^16.13.0 || >=18.0.0" + } + }, + "node_modules/@pkgjs/parseargs": { + "version": "0.11.0", + "resolved": "https://npm.sinequa.com/@pkgjs/parseargs/-/parseargs-0.11.0.tgz", + "integrity": "sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==", + "license": "MIT", + "optional": true, + "engines": { + "node": ">=14" + } + }, + "node_modules/@popperjs/core": { + "version": "2.11.8", + "resolved": "https://npm.sinequa.com/@popperjs/core/-/core-2.11.8.tgz", + "integrity": "sha512-P1st0aksCrn9sGZhp8GMYwBnQsbvAWsZAX44oXNNvLHGqAOcoVxmjZiohstwQ7SqKnbR47akdNi+uleWD8+g6A==", + "license": "MIT", + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/popperjs" + } + }, + "node_modules/@rollup/rollup-android-arm-eabi": { + "version": "4.22.4", + "resolved": "https://npm.sinequa.com/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.22.4.tgz", + "integrity": "sha512-Fxamp4aEZnfPOcGA8KSNEohV8hX7zVHOemC8jVBoBUHu5zpJK/Eu3uJwt6BMgy9fkvzxDaurgj96F/NiLukF2w==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ] + }, + "node_modules/@rollup/rollup-android-arm64": { + "version": "4.22.4", + "resolved": "https://npm.sinequa.com/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.22.4.tgz", + "integrity": "sha512-VXoK5UMrgECLYaMuGuVTOx5kcuap1Jm8g/M83RnCHBKOqvPPmROFJGQaZhGccnsFtfXQ3XYa4/jMCJvZnbJBdA==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ] + }, + "node_modules/@rollup/rollup-darwin-arm64": { + "version": "4.22.4", + "resolved": "https://npm.sinequa.com/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.22.4.tgz", + "integrity": "sha512-xMM9ORBqu81jyMKCDP+SZDhnX2QEVQzTcC6G18KlTQEzWK8r/oNZtKuZaCcHhnsa6fEeOBionoyl5JsAbE/36Q==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ] + }, + "node_modules/@rollup/rollup-darwin-x64": { + "version": "4.22.4", + "resolved": "https://npm.sinequa.com/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.22.4.tgz", + "integrity": "sha512-aJJyYKQwbHuhTUrjWjxEvGnNNBCnmpHDvrb8JFDbeSH3m2XdHcxDd3jthAzvmoI8w/kSjd2y0udT+4okADsZIw==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ] + }, + "node_modules/@rollup/rollup-linux-arm-gnueabihf": { + "version": "4.22.4", + "resolved": "https://npm.sinequa.com/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.22.4.tgz", + "integrity": "sha512-j63YtCIRAzbO+gC2L9dWXRh5BFetsv0j0va0Wi9epXDgU/XUi5dJKo4USTttVyK7fGw2nPWK0PbAvyliz50SCQ==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-arm-musleabihf": { + "version": "4.22.4", + "resolved": "https://npm.sinequa.com/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.22.4.tgz", + "integrity": "sha512-dJnWUgwWBX1YBRsuKKMOlXCzh2Wu1mlHzv20TpqEsfdZLb3WoJW2kIEsGwLkroYf24IrPAvOT/ZQ2OYMV6vlrg==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-arm64-gnu": { + "version": "4.22.4", + "resolved": "https://npm.sinequa.com/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.22.4.tgz", + "integrity": "sha512-AdPRoNi3NKVLolCN/Sp4F4N1d98c4SBnHMKoLuiG6RXgoZ4sllseuGioszumnPGmPM2O7qaAX/IJdeDU8f26Aw==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-arm64-musl": { + "version": "4.22.4", + "resolved": "https://npm.sinequa.com/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.22.4.tgz", + "integrity": "sha512-Gl0AxBtDg8uoAn5CCqQDMqAx22Wx22pjDOjBdmG0VIWX3qUBHzYmOKh8KXHL4UpogfJ14G4wk16EQogF+v8hmA==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-powerpc64le-gnu": { + "version": "4.22.4", + "resolved": "https://npm.sinequa.com/@rollup/rollup-linux-powerpc64le-gnu/-/rollup-linux-powerpc64le-gnu-4.22.4.tgz", + "integrity": "sha512-3aVCK9xfWW1oGQpTsYJJPF6bfpWfhbRnhdlyhak2ZiyFLDaayz0EP5j9V1RVLAAxlmWKTDfS9wyRyY3hvhPoOg==", + "cpu": [ + "ppc64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-riscv64-gnu": { + "version": "4.22.4", + "resolved": "https://npm.sinequa.com/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.22.4.tgz", + "integrity": "sha512-ePYIir6VYnhgv2C5Xe9u+ico4t8sZWXschR6fMgoPUK31yQu7hTEJb7bCqivHECwIClJfKgE7zYsh1qTP3WHUA==", + "cpu": [ + "riscv64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-s390x-gnu": { + "version": "4.22.4", + "resolved": "https://npm.sinequa.com/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.22.4.tgz", + "integrity": "sha512-GqFJ9wLlbB9daxhVlrTe61vJtEY99/xB3C8e4ULVsVfflcpmR6c8UZXjtkMA6FhNONhj2eA5Tk9uAVw5orEs4Q==", + "cpu": [ + "s390x" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-x64-gnu": { + "version": "4.22.4", + "resolved": "https://npm.sinequa.com/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.22.4.tgz", + "integrity": "sha512-87v0ol2sH9GE3cLQLNEy0K/R0pz1nvg76o8M5nhMR0+Q+BBGLnb35P0fVz4CQxHYXaAOhE8HhlkaZfsdUOlHwg==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-x64-musl": { + "version": "4.22.4", + "resolved": "https://npm.sinequa.com/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.22.4.tgz", + "integrity": "sha512-UV6FZMUgePDZrFjrNGIWzDo/vABebuXBhJEqrHxrGiU6HikPy0Z3LfdtciIttEUQfuDdCn8fqh7wiFJjCNwO+g==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-win32-arm64-msvc": { + "version": "4.22.4", + "resolved": "https://npm.sinequa.com/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.22.4.tgz", + "integrity": "sha512-BjI+NVVEGAXjGWYHz/vv0pBqfGoUH0IGZ0cICTn7kB9PyjrATSkX+8WkguNjWoj2qSr1im/+tTGRaY+4/PdcQw==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@rollup/rollup-win32-ia32-msvc": { + "version": "4.22.4", + "resolved": "https://npm.sinequa.com/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.22.4.tgz", + "integrity": "sha512-SiWG/1TuUdPvYmzmYnmd3IEifzR61Tragkbx9D3+R8mzQqDBz8v+BvZNDlkiTtI9T15KYZhP0ehn3Dld4n9J5g==", + "cpu": [ + "ia32" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@rollup/rollup-win32-x64-msvc": { + "version": "4.22.4", + "resolved": "https://npm.sinequa.com/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.22.4.tgz", + "integrity": "sha512-j8pPKp53/lq9lMXN57S8cFz0MynJk8OWNuUnXct/9KCpKU7DgU3bYMJhwWmcqC0UU29p8Lr0/7KEVcaM6bf47Q==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@schematics/angular": { + "version": "18.2.14", + "resolved": "https://npm.sinequa.com/@schematics/angular/-/angular-18.2.14.tgz", + "integrity": "sha512-CHh6ew2Az71UlvVcnYeuMEwjwkZqR7y/9ebLzFRvczC71ZL8qPVBpBTVGbCpGBd54VEbCZVWRxBQoZZ5LP/aBw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@angular-devkit/core": "18.2.14", + "@angular-devkit/schematics": "18.2.14", + "jsonc-parser": "3.3.1" + }, + "engines": { + "node": "^18.19.1 || ^20.11.1 || >=22.0.0", + "npm": "^6.11.0 || ^7.5.6 || >=8.0.0", + "yarn": ">= 1.13.0" + } + }, + "node_modules/@sigstore/bundle": { + "version": "2.3.2", + "resolved": "https://npm.sinequa.com/@sigstore/bundle/-/bundle-2.3.2.tgz", + "integrity": "sha512-wueKWDk70QixNLB363yHc2D2ItTgYiMTdPwK8D9dKQMR3ZQ0c35IxP5xnwQ8cNLoCgCRcHf14kE+CLIvNX1zmA==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "@sigstore/protobuf-specs": "^0.3.2" + }, + "engines": { + "node": "^16.14.0 || >=18.0.0" + } + }, + "node_modules/@sigstore/core": { + "version": "1.1.0", + "resolved": "https://npm.sinequa.com/@sigstore/core/-/core-1.1.0.tgz", + "integrity": "sha512-JzBqdVIyqm2FRQCulY6nbQzMpJJpSiJ8XXWMhtOX9eKgaXXpfNOF53lzQEjIydlStnd/eFtuC1dW4VYdD93oRg==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": "^16.14.0 || >=18.0.0" + } + }, + "node_modules/@sigstore/protobuf-specs": { + "version": "0.3.3", + "resolved": "https://npm.sinequa.com/@sigstore/protobuf-specs/-/protobuf-specs-0.3.3.tgz", + "integrity": "sha512-RpacQhBlwpBWd7KEJsRKcBQalbV28fvkxwTOJIqhIuDysMMaJW47V4OqW30iJB9uRpqOSxxEAQFdr8tTattReQ==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": "^18.17.0 || >=20.5.0" + } + }, + "node_modules/@sigstore/sign": { + "version": "2.3.2", + "resolved": "https://npm.sinequa.com/@sigstore/sign/-/sign-2.3.2.tgz", + "integrity": "sha512-5Vz5dPVuunIIvC5vBb0APwo7qKA4G9yM48kPWJT+OEERs40md5GoUR1yedwpekWZ4m0Hhw44m6zU+ObsON+iDA==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "@sigstore/bundle": "^2.3.2", + "@sigstore/core": "^1.0.0", + "@sigstore/protobuf-specs": "^0.3.2", + "make-fetch-happen": "^13.0.1", + "proc-log": "^4.2.0", + "promise-retry": "^2.0.1" + }, + "engines": { + "node": "^16.14.0 || >=18.0.0" + } + }, + "node_modules/@sigstore/tuf": { + "version": "2.3.4", + "resolved": "https://npm.sinequa.com/@sigstore/tuf/-/tuf-2.3.4.tgz", + "integrity": "sha512-44vtsveTPUpqhm9NCrbU8CWLe3Vck2HO1PNLw7RIajbB7xhtn5RBPm1VNSCMwqGYHhDsBJG8gDF0q4lgydsJvw==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "@sigstore/protobuf-specs": "^0.3.2", + "tuf-js": "^2.2.1" + }, + "engines": { + "node": "^16.14.0 || >=18.0.0" + } + }, + "node_modules/@sigstore/verify": { + "version": "1.2.1", + "resolved": "https://npm.sinequa.com/@sigstore/verify/-/verify-1.2.1.tgz", + "integrity": "sha512-8iKx79/F73DKbGfRf7+t4dqrc0bRr0thdPrxAtCKWRm/F0tG71i6O1rvlnScncJLLBZHn3h8M3c1BSUAb9yu8g==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "@sigstore/bundle": "^2.3.2", + "@sigstore/core": "^1.1.0", + "@sigstore/protobuf-specs": "^0.3.2" + }, + "engines": { + "node": "^16.14.0 || >=18.0.0" + } + }, + "node_modules/@sindresorhus/merge-streams": { + "version": "2.3.0", + "resolved": "https://npm.sinequa.com/@sindresorhus/merge-streams/-/merge-streams-2.3.0.tgz", + "integrity": "sha512-LtoMMhxAlorcGhmFYI+LhPgbPZCkgP6ra1YL604EeF6U98pLlQ3iWIGMdWSC+vWmPBWBNgmDBAhnAobLROJmwg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@sinequa/atomic": { + "version": "0.0.74", + "resolved": "https://npm.sinequa.com/@sinequa/atomic/-/atomic-0.0.74.tgz", + "integrity": "sha512-dt39+7vDv4MRuIU5aqOcy8MP1bAWK56y+oxvHyEyMU6XGU+ItBptok5Imu+sIgpsXltg7c8dO6b7lK+UB7WiEA==" + }, + "node_modules/@sinequa/atomic-angular": { + "version": "0.0.158", + "resolved": "https://npm.sinequa.com/@sinequa/atomic-angular/-/atomic-angular-0.0.158.tgz", + "integrity": "sha512-LzXucjEwXIb2LUhbiXAmXMtj0RCbRKDNV9Gs+8z7Qy/KCAHTBRmiGbYxD2N61AcwezzySatfxd0GjQf1Y0qBeA==", + "dependencies": { + "tailwind-variants": "^0.3.1", + "tslib": "^2.3.0" + } + }, + "node_modules/@tanstack/angular-query-experimental": { + "version": "5.66.0", + "resolved": "https://npm.sinequa.com/@tanstack/angular-query-experimental/-/angular-query-experimental-5.66.0.tgz", + "integrity": "sha512-wECwAbsIQWXiKXNOjvAWeyw44KZJ/q0hWdWUy4SV3vp8eFW3f0LvAlkuLvUSA8jdcC5NvO2VO8T/gLRE9YjArg==", + "license": "MIT", + "dependencies": { + "@tanstack/query-core": "5.66.0", + "@tanstack/query-devtools": "5.65.0" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/tannerlinsley" + }, + "peerDependencies": { + "@angular/common": ">=16.0.0", + "@angular/core": ">=16.0.0" + } + }, + "node_modules/@tanstack/query-core": { + "version": "5.66.0", + "resolved": "https://npm.sinequa.com/@tanstack/query-core/-/query-core-5.66.0.tgz", + "integrity": "sha512-J+JeBtthiKxrpzUu7rfIPDzhscXF2p5zE/hVdrqkACBP8Yu0M96mwJ5m/8cPPYQE9aRNvXztXHlNwIh4FEeMZw==", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/tannerlinsley" + } + }, + "node_modules/@tanstack/query-devtools": { + "version": "5.65.0", + "resolved": "https://npm.sinequa.com/@tanstack/query-devtools/-/query-devtools-5.65.0.tgz", + "integrity": "sha512-g5y7zc07U9D3esMdqUfTEVu9kMHoIaVBsD0+M3LPdAdD710RpTcLiNvJY1JkYXqkq9+NV+CQoemVNpQPBXVsJg==", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/tannerlinsley" + } + }, + "node_modules/@tufjs/canonical-json": { + "version": "2.0.0", + "resolved": "https://npm.sinequa.com/@tufjs/canonical-json/-/canonical-json-2.0.0.tgz", + "integrity": "sha512-yVtV8zsdo8qFHe+/3kw81dSLyF7D576A5cCFCi4X7B39tWT7SekaEFUnvnWJHz+9qO7qJTah1JbrDjWKqFtdWA==", + "dev": true, + "license": "MIT", + "engines": { + "node": "^16.14.0 || >=18.0.0" + } + }, + "node_modules/@tufjs/models": { + "version": "2.0.1", + "resolved": "https://npm.sinequa.com/@tufjs/models/-/models-2.0.1.tgz", + "integrity": "sha512-92F7/SFyufn4DXsha9+QfKnN03JGqtMFMXgSHbZOo8JG59WkTni7UzAouNQDf7AuP9OAMxVOPQcqG3sB7w+kkg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@tufjs/canonical-json": "2.0.0", + "minimatch": "^9.0.4" + }, + "engines": { + "node": "^16.14.0 || >=18.0.0" + } + }, + "node_modules/@types/body-parser": { + "version": "1.19.5", + "resolved": "https://npm.sinequa.com/@types/body-parser/-/body-parser-1.19.5.tgz", + "integrity": "sha512-fB3Zu92ucau0iQ0JMCFQE7b/dv8Ot07NI3KaZIkIUNXq82k4eBAqUaneXfleGY9JWskeS9y+u0nXMyspcuQrCg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/connect": "*", + "@types/node": "*" + } + }, + "node_modules/@types/bonjour": { + "version": "3.5.13", + "resolved": "https://npm.sinequa.com/@types/bonjour/-/bonjour-3.5.13.tgz", + "integrity": "sha512-z9fJ5Im06zvUL548KvYNecEVlA7cVDkGUi6kZusb04mpyEFKCIZJvloCcmpmLaIahDpOQGHaHmG6imtPMmPXGQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/connect": { + "version": "3.4.38", + "resolved": "https://npm.sinequa.com/@types/connect/-/connect-3.4.38.tgz", + "integrity": "sha512-K6uROf1LD88uDQqJCktA4yzL1YYAK6NgfsI0v/mTgyPKWsX1CnJ0XPSDhViejru1GcRkLWb8RlzFYJRqGUbaug==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/connect-history-api-fallback": { + "version": "1.5.4", + "resolved": "https://npm.sinequa.com/@types/connect-history-api-fallback/-/connect-history-api-fallback-1.5.4.tgz", + "integrity": "sha512-n6Cr2xS1h4uAulPRdlw6Jl6s1oG8KrVilPN2yUITEs+K48EzMJJ3W1xy8K5eWuFvjp3R74AOIGSmp2UfBJ8HFw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/express-serve-static-core": "*", + "@types/node": "*" + } + }, + "node_modules/@types/estree": { + "version": "1.0.5", + "resolved": "https://npm.sinequa.com/@types/estree/-/estree-1.0.5.tgz", + "integrity": "sha512-/kYRxGDLWzHOB7q+wtSUQlFrtcdUccpfy+X+9iMBpHK8QLLhx2wIPYuS5DYtR9Wa/YlZAbIovy7qVdB1Aq6Lyw==", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/express": { + "version": "4.17.21", + "resolved": "https://npm.sinequa.com/@types/express/-/express-4.17.21.tgz", + "integrity": "sha512-ejlPM315qwLpaQlQDTjPdsUFSc6ZsP4AN6AlWnogPjQ7CVi7PYF3YVz+CY3jE2pwYf7E/7HlDAN0rV2GxTG0HQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/body-parser": "*", + "@types/express-serve-static-core": "^4.17.33", + "@types/qs": "*", + "@types/serve-static": "*" + } + }, + "node_modules/@types/express-serve-static-core": { + "version": "5.0.6", + "resolved": "https://npm.sinequa.com/@types/express-serve-static-core/-/express-serve-static-core-5.0.6.tgz", + "integrity": "sha512-3xhRnjJPkULekpSzgtoNYYcTWgEZkp4myc+Saevii5JPnHNvHMRlBSHDbs7Bh1iPPoVTERHEZXyhyLbMEsExsA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/node": "*", + "@types/qs": "*", + "@types/range-parser": "*", + "@types/send": "*" + } + }, + "node_modules/@types/express/node_modules/@types/express-serve-static-core": { + "version": "4.19.6", + "resolved": "https://npm.sinequa.com/@types/express-serve-static-core/-/express-serve-static-core-4.19.6.tgz", + "integrity": "sha512-N4LZ2xG7DatVqhCZzOGb1Yi5lMbXSZcmdLDe9EzSndPV2HpWYWzRbaerl2n27irrm94EPpprqa8KpskPT085+A==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/node": "*", + "@types/qs": "*", + "@types/range-parser": "*", + "@types/send": "*" + } + }, + "node_modules/@types/http-errors": { + "version": "2.0.4", + "resolved": "https://npm.sinequa.com/@types/http-errors/-/http-errors-2.0.4.tgz", + "integrity": "sha512-D0CFMMtydbJAegzOyHjtiKPLlvnm3iTZyZRSZoLq2mRhDdmLfIWOCYPfQJ4cu2erKghU++QvjcUjp/5h7hESpA==", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/http-proxy": { + "version": "1.17.16", + "resolved": "https://npm.sinequa.com/@types/http-proxy/-/http-proxy-1.17.16.tgz", + "integrity": "sha512-sdWoUajOB1cd0A8cRRQ1cfyWNbmFKLAqBB89Y8x5iYyG/mkJHc0YUH8pdWBy2omi9qtCpiIgGjuwO0dQST2l5w==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/json-schema": { + "version": "7.0.15", + "resolved": "https://npm.sinequa.com/@types/json-schema/-/json-schema-7.0.15.tgz", + "integrity": "sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/mime": { + "version": "1.3.5", + "resolved": "https://npm.sinequa.com/@types/mime/-/mime-1.3.5.tgz", + "integrity": "sha512-/pyBZWSLD2n0dcHE3hq8s8ZvcETHtEuF+3E7XVt0Ig2nvsVQXdghHVcEkIWjy9A0wKfTn97a/PSDYohKIlnP/w==", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/mute-stream": { + "version": "0.0.4", + "resolved": "https://npm.sinequa.com/@types/mute-stream/-/mute-stream-0.0.4.tgz", + "integrity": "sha512-CPM9nzrCPPJHQNA9keH9CVkVI+WR5kMa+7XEs5jcGQ0VoAGnLv242w8lIVgwAEfmE4oufJRaTc9PNLQl0ioAow==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/node": { + "version": "16.18.126", + "resolved": "https://npm.sinequa.com/@types/node/-/node-16.18.126.tgz", + "integrity": "sha512-OTcgaiwfGFBKacvfwuHzzn1KLxH/er8mluiy8/uM3sGXHaRe73RrSIj01jow9t4kJEW633Ov+cOexXeiApTyAw==", + "license": "MIT" + }, + "node_modules/@types/node-forge": { + "version": "1.3.11", + "resolved": "https://npm.sinequa.com/@types/node-forge/-/node-forge-1.3.11.tgz", + "integrity": "sha512-FQx220y22OKNTqaByeBGqHWYz4cl94tpcxeFdvBo3wjG6XPBuZ0BNgNZRV5J5TFmmcsJ4IzsLkmGRiQbnYsBEQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/qs": { + "version": "6.9.18", + "resolved": "https://npm.sinequa.com/@types/qs/-/qs-6.9.18.tgz", + "integrity": "sha512-kK7dgTYDyGqS+e2Q4aK9X3D7q234CIZ1Bv0q/7Z5IwRDoADNU81xXJK/YVyLbLTZCoIwUoDoffFeF+p/eIklAA==", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/range-parser": { + "version": "1.2.7", + "resolved": "https://npm.sinequa.com/@types/range-parser/-/range-parser-1.2.7.tgz", + "integrity": "sha512-hKormJbkJqzQGhziax5PItDUTMAM9uE2XXQmM37dyd4hVM+5aVl7oVxMVUiVQn2oCQFN/LKCZdvSM0pFRqbSmQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/retry": { + "version": "0.12.2", + "resolved": "https://npm.sinequa.com/@types/retry/-/retry-0.12.2.tgz", + "integrity": "sha512-XISRgDJ2Tc5q4TRqvgJtzsRkFYNJzZrhTdtMoGVBttwzzQJkPnS3WWTFc7kuDRoPtPakl+T+OfdEUjYJj7Jbow==", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/send": { + "version": "0.17.4", + "resolved": "https://npm.sinequa.com/@types/send/-/send-0.17.4.tgz", + "integrity": "sha512-x2EM6TJOybec7c52BX0ZspPodMsQUd5L6PRwOunVyVUhXiBSKf3AezDL8Dgvgt5o0UfKNfuA0eMLr2wLT4AiBA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/mime": "^1", + "@types/node": "*" + } + }, + "node_modules/@types/serve-index": { + "version": "1.9.4", + "resolved": "https://npm.sinequa.com/@types/serve-index/-/serve-index-1.9.4.tgz", + "integrity": "sha512-qLpGZ/c2fhSs5gnYsQxtDEq3Oy8SXPClIXkW5ghvAvsNuVSA8k+gCONcUCS/UjLEYvYps+e8uBtfgXgvhwfNug==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/express": "*" + } + }, + "node_modules/@types/serve-static": { + "version": "1.15.7", + "resolved": "https://npm.sinequa.com/@types/serve-static/-/serve-static-1.15.7.tgz", + "integrity": "sha512-W8Ym+h8nhuRwaKPaDw34QUkwsGi6Rc4yYqvKFo5rm2FUEhCFbzVWrxXUxuKK8TASjWsysJY0nsmNCGhCOIsrOw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/http-errors": "*", + "@types/node": "*", + "@types/send": "*" + } + }, + "node_modules/@types/sockjs": { + "version": "0.3.36", + "resolved": "https://npm.sinequa.com/@types/sockjs/-/sockjs-0.3.36.tgz", + "integrity": "sha512-MK9V6NzAS1+Ud7JV9lJLFqW85VbC9dq3LmwZCuBe4wBDgKC0Kj/jd8Xl+nSviU+Qc3+m7umHHyHg//2KSa0a0Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/unist": { + "version": "2.0.11", + "resolved": "https://npm.sinequa.com/@types/unist/-/unist-2.0.11.tgz", + "integrity": "sha512-CmBKiL6NNo/OqgmMn95Fk9Whlp2mtvIv+KNpQKN2F4SjvrEesubTRWGYSg+BnWZOnlCaSTU1sMpsBOzgbYhnsA==", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/wrap-ansi": { + "version": "3.0.0", + "resolved": "https://npm.sinequa.com/@types/wrap-ansi/-/wrap-ansi-3.0.0.tgz", + "integrity": "sha512-ltIpx+kM7g/MLRZfkbL7EsCEjfzCcScLpkg37eXEtx5kmrAKBkTJwd1GIAjDSL8wTpM6Hzn5YO4pSb91BEwu1g==", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/ws": { + "version": "8.5.14", + "resolved": "https://npm.sinequa.com/@types/ws/-/ws-8.5.14.tgz", + "integrity": "sha512-bd/YFLW+URhBzMXurx7lWByOu+xzU9+kb3RboOteXYDfW+tr+JZa99OyNmPINEGB/ahzKrEuc8rcv4gnpJmxTw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@vitejs/plugin-basic-ssl": { + "version": "1.1.0", + "resolved": "https://npm.sinequa.com/@vitejs/plugin-basic-ssl/-/plugin-basic-ssl-1.1.0.tgz", + "integrity": "sha512-wO4Dk/rm8u7RNhOf95ZzcEmC9rYOncYgvq4z3duaJrCgjN8BxAnDVyndanfcJZ0O6XZzHz6Q0hTimxTg8Y9g/A==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=14.6.0" + }, + "peerDependencies": { + "vite": "^3.0.0 || ^4.0.0 || ^5.0.0" + } + }, + "node_modules/@webassemblyjs/ast": { + "version": "1.14.1", + "resolved": "https://npm.sinequa.com/@webassemblyjs/ast/-/ast-1.14.1.tgz", + "integrity": "sha512-nuBEDgQfm1ccRp/8bCQrx1frohyufl4JlbMMZ4P1wpeOfDhF6FQkxZJ1b/e+PLwr6X1Nhw6OLme5usuBWYBvuQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@webassemblyjs/helper-numbers": "1.13.2", + "@webassemblyjs/helper-wasm-bytecode": "1.13.2" + } + }, + "node_modules/@webassemblyjs/floating-point-hex-parser": { + "version": "1.13.2", + "resolved": "https://npm.sinequa.com/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.13.2.tgz", + "integrity": "sha512-6oXyTOzbKxGH4steLbLNOu71Oj+C8Lg34n6CqRvqfS2O71BxY6ByfMDRhBytzknj9yGUPVJ1qIKhRlAwO1AovA==", + "dev": true, + "license": "MIT" + }, + "node_modules/@webassemblyjs/helper-api-error": { + "version": "1.13.2", + "resolved": "https://npm.sinequa.com/@webassemblyjs/helper-api-error/-/helper-api-error-1.13.2.tgz", + "integrity": "sha512-U56GMYxy4ZQCbDZd6JuvvNV/WFildOjsaWD3Tzzvmw/mas3cXzRJPMjP83JqEsgSbyrmaGjBfDtV7KDXV9UzFQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/@webassemblyjs/helper-buffer": { + "version": "1.14.1", + "resolved": "https://npm.sinequa.com/@webassemblyjs/helper-buffer/-/helper-buffer-1.14.1.tgz", + "integrity": "sha512-jyH7wtcHiKssDtFPRB+iQdxlDf96m0E39yb0k5uJVhFGleZFoNw1c4aeIcVUPPbXUVJ94wwnMOAqUHyzoEPVMA==", + "dev": true, + "license": "MIT" + }, + "node_modules/@webassemblyjs/helper-numbers": { + "version": "1.13.2", + "resolved": "https://npm.sinequa.com/@webassemblyjs/helper-numbers/-/helper-numbers-1.13.2.tgz", + "integrity": "sha512-FE8aCmS5Q6eQYcV3gI35O4J789wlQA+7JrqTTpJqn5emA4U2hvwJmvFRC0HODS+3Ye6WioDklgd6scJ3+PLnEA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@webassemblyjs/floating-point-hex-parser": "1.13.2", + "@webassemblyjs/helper-api-error": "1.13.2", + "@xtuc/long": "4.2.2" + } + }, + "node_modules/@webassemblyjs/helper-wasm-bytecode": { + "version": "1.13.2", + "resolved": "https://npm.sinequa.com/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.13.2.tgz", + "integrity": "sha512-3QbLKy93F0EAIXLh0ogEVR6rOubA9AoZ+WRYhNbFyuB70j3dRdwH9g+qXhLAO0kiYGlg3TxDV+I4rQTr/YNXkA==", + "dev": true, + "license": "MIT" + }, + "node_modules/@webassemblyjs/helper-wasm-section": { + "version": "1.14.1", + "resolved": "https://npm.sinequa.com/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.14.1.tgz", + "integrity": "sha512-ds5mXEqTJ6oxRoqjhWDU83OgzAYjwsCV8Lo/N+oRsNDmx/ZDpqalmrtgOMkHwxsG0iI//3BwWAErYRHtgn0dZw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@webassemblyjs/ast": "1.14.1", + "@webassemblyjs/helper-buffer": "1.14.1", + "@webassemblyjs/helper-wasm-bytecode": "1.13.2", + "@webassemblyjs/wasm-gen": "1.14.1" + } + }, + "node_modules/@webassemblyjs/ieee754": { + "version": "1.13.2", + "resolved": "https://npm.sinequa.com/@webassemblyjs/ieee754/-/ieee754-1.13.2.tgz", + "integrity": "sha512-4LtOzh58S/5lX4ITKxnAK2USuNEvpdVV9AlgGQb8rJDHaLeHciwG4zlGr0j/SNWlr7x3vO1lDEsuePvtcDNCkw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@xtuc/ieee754": "^1.2.0" + } + }, + "node_modules/@webassemblyjs/leb128": { + "version": "1.13.2", + "resolved": "https://npm.sinequa.com/@webassemblyjs/leb128/-/leb128-1.13.2.tgz", + "integrity": "sha512-Lde1oNoIdzVzdkNEAWZ1dZ5orIbff80YPdHx20mrHwHrVNNTjNr8E3xz9BdpcGqRQbAEa+fkrCb+fRFTl/6sQw==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "@xtuc/long": "4.2.2" + } + }, + "node_modules/@webassemblyjs/utf8": { + "version": "1.13.2", + "resolved": "https://npm.sinequa.com/@webassemblyjs/utf8/-/utf8-1.13.2.tgz", + "integrity": "sha512-3NQWGjKTASY1xV5m7Hr0iPeXD9+RDobLll3T9d2AO+g3my8xy5peVyjSag4I50mR1bBSN/Ct12lo+R9tJk0NZQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/@webassemblyjs/wasm-edit": { + "version": "1.14.1", + "resolved": "https://npm.sinequa.com/@webassemblyjs/wasm-edit/-/wasm-edit-1.14.1.tgz", + "integrity": "sha512-RNJUIQH/J8iA/1NzlE4N7KtyZNHi3w7at7hDjvRNm5rcUXa00z1vRz3glZoULfJ5mpvYhLybmVcwcjGrC1pRrQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@webassemblyjs/ast": "1.14.1", + "@webassemblyjs/helper-buffer": "1.14.1", + "@webassemblyjs/helper-wasm-bytecode": "1.13.2", + "@webassemblyjs/helper-wasm-section": "1.14.1", + "@webassemblyjs/wasm-gen": "1.14.1", + "@webassemblyjs/wasm-opt": "1.14.1", + "@webassemblyjs/wasm-parser": "1.14.1", + "@webassemblyjs/wast-printer": "1.14.1" + } + }, + "node_modules/@webassemblyjs/wasm-gen": { + "version": "1.14.1", + "resolved": "https://npm.sinequa.com/@webassemblyjs/wasm-gen/-/wasm-gen-1.14.1.tgz", + "integrity": "sha512-AmomSIjP8ZbfGQhumkNvgC33AY7qtMCXnN6bL2u2Js4gVCg8fp735aEiMSBbDR7UQIj90n4wKAFUSEd0QN2Ukg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@webassemblyjs/ast": "1.14.1", + "@webassemblyjs/helper-wasm-bytecode": "1.13.2", + "@webassemblyjs/ieee754": "1.13.2", + "@webassemblyjs/leb128": "1.13.2", + "@webassemblyjs/utf8": "1.13.2" + } + }, + "node_modules/@webassemblyjs/wasm-opt": { + "version": "1.14.1", + "resolved": "https://npm.sinequa.com/@webassemblyjs/wasm-opt/-/wasm-opt-1.14.1.tgz", + "integrity": "sha512-PTcKLUNvBqnY2U6E5bdOQcSM+oVP/PmrDY9NzowJjislEjwP/C4an2303MCVS2Mg9d3AJpIGdUFIQQWbPds0Sw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@webassemblyjs/ast": "1.14.1", + "@webassemblyjs/helper-buffer": "1.14.1", + "@webassemblyjs/wasm-gen": "1.14.1", + "@webassemblyjs/wasm-parser": "1.14.1" + } + }, + "node_modules/@webassemblyjs/wasm-parser": { + "version": "1.14.1", + "resolved": "https://npm.sinequa.com/@webassemblyjs/wasm-parser/-/wasm-parser-1.14.1.tgz", + "integrity": "sha512-JLBl+KZ0R5qB7mCnud/yyX08jWFw5MsoalJ1pQ4EdFlgj9VdXKGuENGsiCIjegI1W7p91rUlcB/LB5yRJKNTcQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@webassemblyjs/ast": "1.14.1", + "@webassemblyjs/helper-api-error": "1.13.2", + "@webassemblyjs/helper-wasm-bytecode": "1.13.2", + "@webassemblyjs/ieee754": "1.13.2", + "@webassemblyjs/leb128": "1.13.2", + "@webassemblyjs/utf8": "1.13.2" + } + }, + "node_modules/@webassemblyjs/wast-printer": { + "version": "1.14.1", + "resolved": "https://npm.sinequa.com/@webassemblyjs/wast-printer/-/wast-printer-1.14.1.tgz", + "integrity": "sha512-kPSSXE6De1XOR820C90RIo2ogvZG+c3KiHzqUoO/F34Y2shGzesfqv7o57xrxovZJH/MetF5UjroJ/R/3isoiw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@webassemblyjs/ast": "1.14.1", + "@xtuc/long": "4.2.2" + } + }, + "node_modules/@xtuc/ieee754": { + "version": "1.2.0", + "resolved": "https://npm.sinequa.com/@xtuc/ieee754/-/ieee754-1.2.0.tgz", + "integrity": "sha512-DX8nKgqcGwsc0eJSqYt5lwP4DH5FlHnmuWWBRy7X0NcaGR0ZtuyeESgMwTYVEtxmsNGY+qit4QYT/MIYTOTPeA==", + "dev": true, + "license": "BSD-3-Clause" + }, + "node_modules/@xtuc/long": { + "version": "4.2.2", + "resolved": "https://npm.sinequa.com/@xtuc/long/-/long-4.2.2.tgz", + "integrity": "sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ==", + "dev": true, + "license": "Apache-2.0" + }, + "node_modules/@yarnpkg/lockfile": { + "version": "1.1.0", + "resolved": "https://npm.sinequa.com/@yarnpkg/lockfile/-/lockfile-1.1.0.tgz", + "integrity": "sha512-GpSwvyXOcOOlV70vbnzjj4fW5xW/FdUF6nQEt1ENy7m4ZCczi1+/buVUPAqmGfqznsORNFzUMjctTIp8a9tuCQ==", + "dev": true, + "license": "BSD-2-Clause" + }, + "node_modules/abbrev": { + "version": "2.0.0", + "resolved": "https://npm.sinequa.com/abbrev/-/abbrev-2.0.0.tgz", + "integrity": "sha512-6/mh1E2u2YgEsCHdY0Yx5oW+61gZU+1vXaoiHHrpKeuRNNgFvS+/jrwHiQhB5apAf5oB7UB7E19ol2R2LKH8hQ==", + "dev": true, + "license": "ISC", + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/abort-controller": { + "version": "3.0.0", + "resolved": "https://npm.sinequa.com/abort-controller/-/abort-controller-3.0.0.tgz", + "integrity": "sha512-h8lQ8tacZYnR3vNQTgibj+tODHI5/+l06Au2Pcriv/Gmet0eaj4TwWH41sO9wnHDiQsEj19q0drzdWdeAHtweg==", + "license": "MIT", + "dependencies": { + "event-target-shim": "^5.0.0" + }, + "engines": { + "node": ">=6.5" + } + }, + "node_modules/accepts": { + "version": "1.3.8", + "resolved": "https://npm.sinequa.com/accepts/-/accepts-1.3.8.tgz", + "integrity": "sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==", + "dev": true, + "license": "MIT", + "dependencies": { + "mime-types": "~2.1.34", + "negotiator": "0.6.3" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/accepts/node_modules/negotiator": { + "version": "0.6.3", + "resolved": "https://npm.sinequa.com/negotiator/-/negotiator-0.6.3.tgz", + "integrity": "sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/acorn": { + "version": "8.14.0", + "resolved": "https://npm.sinequa.com/acorn/-/acorn-8.14.0.tgz", + "integrity": "sha512-cl669nCJTZBsL97OF4kUQm5g5hC2uihk0NxY3WENAC0TYdILVkAyHymAntgxGkl7K+t0cXIrH5siy5S4XkFycA==", + "dev": true, + "license": "MIT", + "bin": { + "acorn": "bin/acorn" + }, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/acorn-import-attributes": { + "version": "1.9.5", + "resolved": "https://npm.sinequa.com/acorn-import-attributes/-/acorn-import-attributes-1.9.5.tgz", + "integrity": "sha512-n02Vykv5uA3eHGM/Z2dQrcD56kL8TyDb2p1+0P83PClMnC/nc+anbQRhIOWnSq4Ke/KvDPrY3C9hDtC/A3eHnQ==", + "dev": true, + "license": "MIT", + "peerDependencies": { + "acorn": "^8" + } + }, + "node_modules/adjust-sourcemap-loader": { + "version": "4.0.0", + "resolved": "https://npm.sinequa.com/adjust-sourcemap-loader/-/adjust-sourcemap-loader-4.0.0.tgz", + "integrity": "sha512-OXwN5b9pCUXNQHJpwwD2qP40byEmSgzj8B4ydSN0uMNYWiFmJ6x6KwUllMmfk8Rwu/HJDFR7U8ubsWBoN0Xp0A==", + "dev": true, + "license": "MIT", + "dependencies": { + "loader-utils": "^2.0.0", + "regex-parser": "^2.2.11" + }, + "engines": { + "node": ">=8.9" + } + }, + "node_modules/adjust-sourcemap-loader/node_modules/loader-utils": { + "version": "2.0.4", + "resolved": "https://npm.sinequa.com/loader-utils/-/loader-utils-2.0.4.tgz", + "integrity": "sha512-xXqpXoINfFhgua9xiqD8fPFHgkoq1mmmpE92WlDbm9rNRd/EbRb+Gqf908T2DMfuHjjJlksiK2RbHVOdD/MqSw==", + "dev": true, + "license": "MIT", + "dependencies": { + "big.js": "^5.2.2", + "emojis-list": "^3.0.0", + "json5": "^2.1.2" + }, + "engines": { + "node": ">=8.9.0" + } + }, + "node_modules/agent-base": { + "version": "7.1.3", + "resolved": "https://npm.sinequa.com/agent-base/-/agent-base-7.1.3.tgz", + "integrity": "sha512-jRR5wdylq8CkOe6hei19GGZnxM6rBGwFl3Bg0YItGDimvjGtAvdZk4Pu6Cl4u4Igsws4a1fd1Vq3ezrhn4KmFw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 14" + } + }, + "node_modules/aggregate-error": { + "version": "3.1.0", + "resolved": "https://npm.sinequa.com/aggregate-error/-/aggregate-error-3.1.0.tgz", + "integrity": "sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA==", + "dev": true, + "license": "MIT", + "dependencies": { + "clean-stack": "^2.0.0", + "indent-string": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/ajv": { + "version": "8.17.1", + "resolved": "https://npm.sinequa.com/ajv/-/ajv-8.17.1.tgz", + "integrity": "sha512-B/gBuNg5SiMTrPkC+A2+cW0RszwxYmn6VYxB/inlBStS5nx6xHIt/ehKRhIMhqusl7a8LjQoZnjCs5vhwxOQ1g==", + "license": "MIT", + "dependencies": { + "fast-deep-equal": "^3.1.3", + "fast-uri": "^3.0.1", + "json-schema-traverse": "^1.0.0", + "require-from-string": "^2.0.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/ajv-formats": { + "version": "3.0.1", + "resolved": "https://npm.sinequa.com/ajv-formats/-/ajv-formats-3.0.1.tgz", + "integrity": "sha512-8iUql50EUR+uUcdRQ3HDqa6EVyo3docL8g5WJ3FNcWmu62IbkGUue/pEyLBW8VGKKucTPgqeks4fIU1DA4yowQ==", + "license": "MIT", + "dependencies": { + "ajv": "^8.0.0" + }, + "peerDependencies": { + "ajv": "^8.0.0" + }, + "peerDependenciesMeta": { + "ajv": { + "optional": true + } + } + }, + "node_modules/ajv-keywords": { + "version": "5.1.0", + "resolved": "https://npm.sinequa.com/ajv-keywords/-/ajv-keywords-5.1.0.tgz", + "integrity": "sha512-YCS/JNFAUyr5vAuhk1DWm1CBxRHW9LbJ2ozWeemrIqpbsqKjHVxYPyi5GC0rjZIT5JxJ3virVTS8wk4i/Z+krw==", + "dev": true, + "license": "MIT", + "dependencies": { + "fast-deep-equal": "^3.1.3" + }, + "peerDependencies": { + "ajv": "^8.8.2" + } + }, + "node_modules/ansi-colors": { + "version": "4.1.3", + "resolved": "https://npm.sinequa.com/ansi-colors/-/ansi-colors-4.1.3.tgz", + "integrity": "sha512-/6w/C21Pm1A7aZitlI5Ni/2J6FFQN8i1Cvz3kHABAAbw93v/NlvKdVOqz7CCWz/3iv/JplRSEEZ83XION15ovw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/ansi-escapes": { + "version": "4.3.2", + "resolved": "https://npm.sinequa.com/ansi-escapes/-/ansi-escapes-4.3.2.tgz", + "integrity": "sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "type-fest": "^0.21.3" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/ansi-html-community": { + "version": "0.0.8", + "resolved": "https://npm.sinequa.com/ansi-html-community/-/ansi-html-community-0.0.8.tgz", + "integrity": "sha512-1APHAyr3+PCamwNw3bXCPp4HFLONZt/yIH0sZp0/469KWNTEy+qN5jQ3GVX6DMZ1UXAi34yVwtTeaG/HpBuuzw==", + "dev": true, + "engines": [ + "node >= 0.8.0" + ], + "license": "Apache-2.0", + "bin": { + "ansi-html": "bin/ansi-html" + } + }, + "node_modules/ansi-regex": { + "version": "5.0.1", + "resolved": "https://npm.sinequa.com/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://npm.sinequa.com/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "license": "MIT", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/any-promise": { + "version": "1.3.0", + "resolved": "https://npm.sinequa.com/any-promise/-/any-promise-1.3.0.tgz", + "integrity": "sha512-7UvmKalWRt1wgjL1RrGxoSJW/0QZFIegpeGvZG9kjp8vrRu55XTHbwnqq2GpXm9uLbcuhxm3IqX9OB4MZR1b2A==", + "dev": true, + "license": "MIT" + }, + "node_modules/anymatch": { + "version": "3.1.3", + "resolved": "https://npm.sinequa.com/anymatch/-/anymatch-3.1.3.tgz", + "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==", + "dev": true, + "license": "ISC", + "dependencies": { + "normalize-path": "^3.0.0", + "picomatch": "^2.0.4" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/anymatch/node_modules/picomatch": { + "version": "2.3.1", + "resolved": "https://npm.sinequa.com/picomatch/-/picomatch-2.3.1.tgz", + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8.6" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/arg": { + "version": "5.0.2", + "resolved": "https://npm.sinequa.com/arg/-/arg-5.0.2.tgz", + "integrity": "sha512-PYjyFOLKQ9y57JvQ6QLo8dAgNqswh8M1RMJYdQduT6xbWSgK36P/Z/v+p888pM69jMMfS8Xd8F6I1kQ/I9HUGg==", + "dev": true, + "license": "MIT" + }, + "node_modules/argparse": { + "version": "2.0.1", + "resolved": "https://npm.sinequa.com/argparse/-/argparse-2.0.1.tgz", + "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", + "license": "Python-2.0" + }, + "node_modules/aria-query": { + "version": "5.3.2", + "resolved": "https://npm.sinequa.com/aria-query/-/aria-query-5.3.2.tgz", + "integrity": "sha512-COROpnaoap1E2F000S62r6A60uHZnmlvomhfyT2DlTcrY1OrBKn2UhH7qn5wTC9zMvD0AY7csdPSNwKP+7WiQw==", + "license": "Apache-2.0", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/array-flatten": { + "version": "1.1.1", + "resolved": "https://npm.sinequa.com/array-flatten/-/array-flatten-1.1.1.tgz", + "integrity": "sha1-ml9pkFGx5wczKPKgCJaLZOopVdI=", + "dev": true, + "license": "MIT" + }, + "node_modules/autoprefixer": { + "version": "10.4.20", + "resolved": "https://npm.sinequa.com/autoprefixer/-/autoprefixer-10.4.20.tgz", + "integrity": "sha512-XY25y5xSv/wEoqzDyXXME4AFfkZI0P23z6Fs3YgymDnKJkCGOnkL0iTxCa85UTqaSgfcqyf3UA6+c7wUvx/16g==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/autoprefixer" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "dependencies": { + "browserslist": "^4.23.3", + "caniuse-lite": "^1.0.30001646", + "fraction.js": "^4.3.7", + "normalize-range": "^0.1.2", + "picocolors": "^1.0.1", + "postcss-value-parser": "^4.2.0" + }, + "bin": { + "autoprefixer": "bin/autoprefixer" + }, + "engines": { + "node": "^10 || ^12 || >=14" + }, + "peerDependencies": { + "postcss": "^8.1.0" + } + }, + "node_modules/axobject-query": { + "version": "4.1.0", + "resolved": "https://npm.sinequa.com/axobject-query/-/axobject-query-4.1.0.tgz", + "integrity": "sha512-qIj0G9wZbMGNLjLmg1PT6v2mE9AH2zlnADJD/2tC6E00hgmhUOfEB6greHPAfLRSufHqROIUTkw6E+M3lH0PTQ==", + "license": "Apache-2.0", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/babel-loader": { + "version": "9.1.3", + "resolved": "https://npm.sinequa.com/babel-loader/-/babel-loader-9.1.3.tgz", + "integrity": "sha512-xG3ST4DglodGf8qSwv0MdeWLhrDsw/32QMdTO5T1ZIp9gQur0HkCyFs7Awskr10JKXFXwpAhiCuYX5oGXnRGbw==", + "dev": true, + "license": "MIT", + "dependencies": { + "find-cache-dir": "^4.0.0", + "schema-utils": "^4.0.0" + }, + "engines": { + "node": ">= 14.15.0" + }, + "peerDependencies": { + "@babel/core": "^7.12.0", + "webpack": ">=5" + } + }, + "node_modules/babel-plugin-polyfill-corejs2": { + "version": "0.4.12", + "resolved": "https://npm.sinequa.com/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.4.12.tgz", + "integrity": "sha512-CPWT6BwvhrTO2d8QVorhTCQw9Y43zOu7G9HigcfxvepOU6b8o3tcWad6oVgZIsZCTt42FFv97aA7ZJsbM4+8og==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/compat-data": "^7.22.6", + "@babel/helper-define-polyfill-provider": "^0.6.3", + "semver": "^6.3.1" + }, + "peerDependencies": { + "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" + } + }, + "node_modules/babel-plugin-polyfill-corejs2/node_modules/semver": { + "version": "6.3.1", + "resolved": "https://npm.sinequa.com/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "dev": true, + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/babel-plugin-polyfill-corejs3": { + "version": "0.10.6", + "resolved": "https://npm.sinequa.com/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.10.6.tgz", + "integrity": "sha512-b37+KR2i/khY5sKmWNVQAnitvquQbNdWy6lJdsr0kmquCKEEUgMKK4SboVM3HtfnZilfjr4MMQ7vY58FVWDtIA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-define-polyfill-provider": "^0.6.2", + "core-js-compat": "^3.38.0" + }, + "peerDependencies": { + "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" + } + }, + "node_modules/babel-plugin-polyfill-regenerator": { + "version": "0.6.3", + "resolved": "https://npm.sinequa.com/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.6.3.tgz", + "integrity": "sha512-LiWSbl4CRSIa5x/JAU6jZiG9eit9w6mz+yVMFwDE83LAWvt0AfGBoZ7HS/mkhrKuh2ZlzfVZYKoLjXdqw6Yt7Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-define-polyfill-provider": "^0.6.3" + }, + "peerDependencies": { + "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" + } + }, + "node_modules/balanced-match": { + "version": "1.0.2", + "resolved": "https://npm.sinequa.com/balanced-match/-/balanced-match-1.0.2.tgz", + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", + "license": "MIT" + }, + "node_modules/base64-js": { + "version": "1.5.1", + "resolved": "https://npm.sinequa.com/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" + } + ], + "license": "MIT" + }, + "node_modules/batch": { + "version": "0.6.1", + "resolved": "https://npm.sinequa.com/batch/-/batch-0.6.1.tgz", + "integrity": "sha1-3DQxT05nkxgJP8dgJyUl+UvyXBY=", + "dev": true, + "license": "MIT" + }, + "node_modules/big.js": { + "version": "5.2.2", + "resolved": "https://npm.sinequa.com/big.js/-/big.js-5.2.2.tgz", + "integrity": "sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": "*" + } + }, + "node_modules/binary-extensions": { + "version": "2.3.0", + "resolved": "https://npm.sinequa.com/binary-extensions/-/binary-extensions-2.3.0.tgz", + "integrity": "sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/bl": { + "version": "4.1.0", + "resolved": "https://npm.sinequa.com/bl/-/bl-4.1.0.tgz", + "integrity": "sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w==", + "license": "MIT", + "dependencies": { + "buffer": "^5.5.0", + "inherits": "^2.0.4", + "readable-stream": "^3.4.0" + } + }, + "node_modules/body-parser": { + "version": "1.20.3", + "resolved": "https://npm.sinequa.com/body-parser/-/body-parser-1.20.3.tgz", + "integrity": "sha512-7rAxByjUMqQ3/bHJy7D6OGXvx/MMc4IqBn/X0fcM1QUcAItpZrBEYhWGem+tzXH90c+G01ypMcYJBO9Y30203g==", + "dev": true, + "license": "MIT", + "dependencies": { + "bytes": "3.1.2", + "content-type": "~1.0.5", + "debug": "2.6.9", + "depd": "2.0.0", + "destroy": "1.2.0", + "http-errors": "2.0.0", + "iconv-lite": "0.4.24", + "on-finished": "2.4.1", + "qs": "6.13.0", + "raw-body": "2.5.2", + "type-is": "~1.6.18", + "unpipe": "1.0.0" + }, + "engines": { + "node": ">= 0.8", + "npm": "1.2.8000 || >= 1.4.16" + } + }, + "node_modules/body-parser/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://npm.sinequa.com/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "license": "MIT", + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/body-parser/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://npm.sinequa.com/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "dev": true, + "license": "MIT" + }, + "node_modules/bonjour-service": { + "version": "1.3.0", + "resolved": "https://npm.sinequa.com/bonjour-service/-/bonjour-service-1.3.0.tgz", + "integrity": "sha512-3YuAUiSkWykd+2Azjgyxei8OWf8thdn8AITIog2M4UICzoqfjlqr64WIjEXZllf/W6vK1goqleSR6brGomxQqA==", + "dev": true, + "license": "MIT", + "dependencies": { + "fast-deep-equal": "^3.1.3", + "multicast-dns": "^7.2.5" + } + }, + "node_modules/boolbase": { + "version": "1.0.0", + "resolved": "https://npm.sinequa.com/boolbase/-/boolbase-1.0.0.tgz", + "integrity": "sha1-aN/1++YMUes3cl6p4+0xDcwed24=", + "dev": true, + "license": "ISC" + }, + "node_modules/brace-expansion": { + "version": "2.0.1", + "resolved": "https://npm.sinequa.com/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "license": "MIT", + "dependencies": { + "balanced-match": "^1.0.0" + } + }, + "node_modules/braces": { + "version": "3.0.3", + "resolved": "https://npm.sinequa.com/braces/-/braces-3.0.3.tgz", + "integrity": "sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==", + "dev": true, + "license": "MIT", + "dependencies": { + "fill-range": "^7.1.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/browserslist": { + "version": "4.24.4", + "resolved": "https://npm.sinequa.com/browserslist/-/browserslist-4.24.4.tgz", + "integrity": "sha512-KDi1Ny1gSePi1vm0q4oxSF8b4DR44GF4BbmS2YdhPLOEqd8pDviZOGH/GsmRwoWJ2+5Lr085X7naowMwKHDG1A==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/browserslist" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "dependencies": { + "caniuse-lite": "^1.0.30001688", + "electron-to-chromium": "^1.5.73", + "node-releases": "^2.0.19", + "update-browserslist-db": "^1.1.1" + }, + "bin": { + "browserslist": "cli.js" + }, + "engines": { + "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7" + } + }, + "node_modules/buffer": { + "version": "5.7.1", + "resolved": "https://npm.sinequa.com/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" + } + ], + "license": "MIT", + "dependencies": { + "base64-js": "^1.3.1", + "ieee754": "^1.1.13" + } + }, + "node_modules/buffer-from": { + "version": "1.1.2", + "resolved": "https://npm.sinequa.com/buffer-from/-/buffer-from-1.1.2.tgz", + "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/bundle-name": { + "version": "4.1.0", + "resolved": "https://npm.sinequa.com/bundle-name/-/bundle-name-4.1.0.tgz", + "integrity": "sha512-tjwM5exMg6BGRI+kNmTntNsvdZS1X8BFYS6tnJ2hdH0kVxM6/eVZ2xy+FqStSWvYmtfFMDLIxurorHwDKfDz5Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "run-applescript": "^7.0.0" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/bytes": { + "version": "3.1.2", + "resolved": "https://npm.sinequa.com/bytes/-/bytes-3.1.2.tgz", + "integrity": "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/cacache": { + "version": "18.0.4", + "resolved": "https://npm.sinequa.com/cacache/-/cacache-18.0.4.tgz", + "integrity": "sha512-B+L5iIa9mgcjLbliir2th36yEwPftrzteHYujzsx3dFP/31GCHcIeS8f5MGd80odLOjaOvSpU3EEAmRQptkxLQ==", + "dev": true, + "license": "ISC", + "dependencies": { + "@npmcli/fs": "^3.1.0", + "fs-minipass": "^3.0.0", + "glob": "^10.2.2", + "lru-cache": "^10.0.1", + "minipass": "^7.0.3", + "minipass-collect": "^2.0.1", + "minipass-flush": "^1.0.5", + "minipass-pipeline": "^1.2.4", + "p-map": "^4.0.0", + "ssri": "^10.0.0", + "tar": "^6.1.11", + "unique-filename": "^3.0.0" + }, + "engines": { + "node": "^16.14.0 || >=18.0.0" + } + }, + "node_modules/cacache/node_modules/lru-cache": { + "version": "10.4.3", + "resolved": "https://npm.sinequa.com/lru-cache/-/lru-cache-10.4.3.tgz", + "integrity": "sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==", + "dev": true, + "license": "ISC" + }, + "node_modules/call-bind-apply-helpers": { + "version": "1.0.1", + "resolved": "https://npm.sinequa.com/call-bind-apply-helpers/-/call-bind-apply-helpers-1.0.1.tgz", + "integrity": "sha512-BhYE+WDaywFg2TBWYNXAE+8B1ATnThNBqXHP5nQu0jWJdVvY2hvkpyB3qOmtmDePiS5/BDQ8wASEWGMWRG148g==", + "dev": true, + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0", + "function-bind": "^1.1.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/call-bound": { + "version": "1.0.3", + "resolved": "https://npm.sinequa.com/call-bound/-/call-bound-1.0.3.tgz", + "integrity": "sha512-YTd+6wGlNlPxSuri7Y6X8tY2dmm12UMH66RpKMhiX6rsk5wXXnYgbUcOt8kiS31/AjfoTOvCsE+w8nZQLQnzHA==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind-apply-helpers": "^1.0.1", + "get-intrinsic": "^1.2.6" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/callsites": { + "version": "3.1.0", + "resolved": "https://npm.sinequa.com/callsites/-/callsites-3.1.0.tgz", + "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/camelcase-css": { + "version": "2.0.1", + "resolved": "https://npm.sinequa.com/camelcase-css/-/camelcase-css-2.0.1.tgz", + "integrity": "sha512-QOSvevhslijgYwRx6Rv7zKdMF8lbRmx+uQGx2+vDc+KI/eBnsy9kit5aj23AgGu3pa4t9AgwbnXWqS+iOY+2aA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 6" + } + }, + "node_modules/caniuse-lite": { + "version": "1.0.30001698", + "resolved": "https://npm.sinequa.com/caniuse-lite/-/caniuse-lite-1.0.30001698.tgz", + "integrity": "sha512-xJ3km2oiG/MbNU8G6zIq6XRZ6HtAOVXsbOrP/blGazi52kc5Yy7b6sDA5O+FbROzRrV7BSTllLHuNvmawYUJjw==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/caniuse-lite" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "CC-BY-4.0" + }, + "node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://npm.sinequa.com/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "license": "MIT", + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/chardet": { + "version": "0.7.0", + "resolved": "https://npm.sinequa.com/chardet/-/chardet-0.7.0.tgz", + "integrity": "sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA==", + "dev": true, + "license": "MIT" + }, + "node_modules/chokidar": { + "version": "4.0.3", + "resolved": "https://npm.sinequa.com/chokidar/-/chokidar-4.0.3.tgz", + "integrity": "sha512-Qgzu8kfBvo+cA4962jnP1KkS6Dop5NS6g7R5LFYJr4b8Ub94PPQXUksCw9PvXoeXPRRddRNC5C1JQUR2SMGtnA==", + "dev": true, + "license": "MIT", + "dependencies": { + "readdirp": "^4.0.1" + }, + "engines": { + "node": ">= 14.16.0" + }, + "funding": { + "url": "https://paulmillr.com/funding/" + } + }, + "node_modules/chownr": { + "version": "2.0.0", + "resolved": "https://npm.sinequa.com/chownr/-/chownr-2.0.0.tgz", + "integrity": "sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ==", + "dev": true, + "license": "ISC", + "engines": { + "node": ">=10" + } + }, + "node_modules/chrome-trace-event": { + "version": "1.0.4", + "resolved": "https://npm.sinequa.com/chrome-trace-event/-/chrome-trace-event-1.0.4.tgz", + "integrity": "sha512-rNjApaLzuwaOTjCiT8lSDdGN1APCiqkChLMJxJPWLunPAt5fy8xgU9/jNOchV84wfIxrA0lRQB7oCT8jrn/wrQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.0" + } + }, + "node_modules/clean-stack": { + "version": "2.2.0", + "resolved": "https://npm.sinequa.com/clean-stack/-/clean-stack-2.2.0.tgz", + "integrity": "sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/cli-cursor": { + "version": "5.0.0", + "resolved": "https://npm.sinequa.com/cli-cursor/-/cli-cursor-5.0.0.tgz", + "integrity": "sha512-aCj4O5wKyszjMmDT4tZj93kxyydN/K5zPWSCe6/0AV/AA1pqe5ZBIw0a2ZfPQV7lL5/yb5HsUreJ6UFAF1tEQw==", + "dev": true, + "license": "MIT", + "dependencies": { + "restore-cursor": "^5.0.0" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/cli-spinners": { + "version": "2.9.2", + "resolved": "https://npm.sinequa.com/cli-spinners/-/cli-spinners-2.9.2.tgz", + "integrity": "sha512-ywqV+5MmyL4E7ybXgKys4DugZbX0FC6LnwrhjuykIjnK9k8OQacQ7axGKnjDXWNhns0xot3bZI5h55H8yo9cJg==", + "license": "MIT", + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/cli-truncate": { + "version": "4.0.0", + "resolved": "https://npm.sinequa.com/cli-truncate/-/cli-truncate-4.0.0.tgz", + "integrity": "sha512-nPdaFdQ0h/GEigbPClz11D0v/ZJEwxmeVZGeMo3Z5StPtUTkA9o1lD6QwoirYiSDzbcwn2XcjwmCp68W1IS4TA==", + "dev": true, + "license": "MIT", + "dependencies": { + "slice-ansi": "^5.0.0", + "string-width": "^7.0.0" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/cli-truncate/node_modules/ansi-regex": { + "version": "6.1.0", + "resolved": "https://npm.sinequa.com/ansi-regex/-/ansi-regex-6.1.0.tgz", + "integrity": "sha512-7HSX4QQb4CspciLpVFwyRe79O3xsIZDDLER21kERQ71oaPodF8jL725AgJMFAYbooIqolJoRLuM81SpeUkpkvA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-regex?sponsor=1" + } + }, + "node_modules/cli-truncate/node_modules/emoji-regex": { + "version": "10.4.0", + "resolved": "https://npm.sinequa.com/emoji-regex/-/emoji-regex-10.4.0.tgz", + "integrity": "sha512-EC+0oUMY1Rqm4O6LLrgjtYDvcVYTy7chDnM4Q7030tP4Kwj3u/pR6gP9ygnp2CJMK5Gq+9Q2oqmrFJAz01DXjw==", + "dev": true, + "license": "MIT" + }, + "node_modules/cli-truncate/node_modules/string-width": { + "version": "7.2.0", + "resolved": "https://npm.sinequa.com/string-width/-/string-width-7.2.0.tgz", + "integrity": "sha512-tsaTIkKW9b4N+AEj+SVA+WhJzV7/zMhcSu78mLKWSk7cXMOSHsBKFWUs0fWwq8QyK3MgJBQRX6Gbi4kYbdvGkQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "emoji-regex": "^10.3.0", + "get-east-asian-width": "^1.0.0", + "strip-ansi": "^7.1.0" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/cli-truncate/node_modules/strip-ansi": { + "version": "7.1.0", + "resolved": "https://npm.sinequa.com/strip-ansi/-/strip-ansi-7.1.0.tgz", + "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-regex": "^6.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/strip-ansi?sponsor=1" + } + }, + "node_modules/cli-width": { + "version": "4.1.0", + "resolved": "https://npm.sinequa.com/cli-width/-/cli-width-4.1.0.tgz", + "integrity": "sha512-ouuZd4/dm2Sw5Gmqy6bGyNNNe1qt9RpmxveLSO7KcgsTnU7RXfsw+/bukWGo1abgBiMAic068rclZsO4IWmmxQ==", + "dev": true, + "license": "ISC", + "engines": { + "node": ">= 12" + } + }, + "node_modules/cliui": { + "version": "8.0.1", + "resolved": "https://npm.sinequa.com/cliui/-/cliui-8.0.1.tgz", + "integrity": "sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==", + "license": "ISC", + "dependencies": { + "string-width": "^4.2.0", + "strip-ansi": "^6.0.1", + "wrap-ansi": "^7.0.0" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/cliui/node_modules/emoji-regex": { + "version": "8.0.0", + "resolved": "https://npm.sinequa.com/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "license": "MIT" + }, + "node_modules/cliui/node_modules/is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://npm.sinequa.com/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/cliui/node_modules/string-width": { + "version": "4.2.3", + "resolved": "https://npm.sinequa.com/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "license": "MIT", + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/cliui/node_modules/wrap-ansi": { + "version": "7.0.0", + "resolved": "https://npm.sinequa.com/wrap-ansi/-/wrap-ansi-7.0.0.tgz", + "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", + "license": "MIT", + "dependencies": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + } + }, + "node_modules/clone": { + "version": "1.0.4", + "resolved": "https://npm.sinequa.com/clone/-/clone-1.0.4.tgz", + "integrity": "sha1-2jCcwmPfFZlMaIypAheco8fNfH4=", + "license": "MIT", + "engines": { + "node": ">=0.8" + } + }, + "node_modules/clone-deep": { + "version": "4.0.1", + "resolved": "https://npm.sinequa.com/clone-deep/-/clone-deep-4.0.1.tgz", + "integrity": "sha512-neHB9xuzh/wk0dIHweyAXv2aPGZIVk3pLMe+/RNzINf17fe0OG96QroktYAUm7SM1PBnzTabaLboqqxDyMU+SQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-plain-object": "^2.0.4", + "kind-of": "^6.0.2", + "shallow-clone": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/clone-deep/node_modules/is-plain-object": { + "version": "2.0.4", + "resolved": "https://npm.sinequa.com/is-plain-object/-/is-plain-object-2.0.4.tgz", + "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", + "dev": true, + "license": "MIT", + "dependencies": { + "isobject": "^3.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/clsx": { + "version": "2.1.1", + "resolved": "https://npm.sinequa.com/clsx/-/clsx-2.1.1.tgz", + "integrity": "sha512-eYm0QWBtUrBWZWG0d386OGAw16Z995PiOVo2B7bjWSbHedGl5e0ZWaq65kOGgUSNesEIDkB9ISbTg/JK9dhCZA==", + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://npm.sinequa.com/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "license": "MIT", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://npm.sinequa.com/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "license": "MIT" + }, + "node_modules/colorette": { + "version": "2.0.20", + "resolved": "https://npm.sinequa.com/colorette/-/colorette-2.0.20.tgz", + "integrity": "sha512-IfEDxwoWIjkeXL1eXcDiow4UbKjhLdq6/EuSVR9GMN7KVH3r9gQ83e73hsz1Nd1T3ijd5xv1wcWRYO+D6kCI2w==", + "dev": true, + "license": "MIT" + }, + "node_modules/commander": { + "version": "13.1.0", + "resolved": "https://npm.sinequa.com/commander/-/commander-13.1.0.tgz", + "integrity": "sha512-/rFeCpNJQbhSZjGVwO9RFV3xPqbnERS8MmIQzCtD/zl6gpJuV/bMLuN92oG3F7d8oDEHHRrujSXNUr8fpjntKw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=18" + } + }, + "node_modules/common-path-prefix": { + "version": "3.0.0", + "resolved": "https://npm.sinequa.com/common-path-prefix/-/common-path-prefix-3.0.0.tgz", + "integrity": "sha512-QE33hToZseCH3jS0qN96O/bSh3kaw/h+Tq7ngyY9eWDUnTlTNUyqfqvCXioLe5Na5jFsL78ra/wuBU4iuEgd4w==", + "dev": true, + "license": "ISC" + }, + "node_modules/compressible": { + "version": "2.0.18", + "resolved": "https://npm.sinequa.com/compressible/-/compressible-2.0.18.tgz", + "integrity": "sha512-AF3r7P5dWxL8MxyITRMlORQNaOA2IkAFaTr4k7BUumjPtRpGDTZpl0Pb1XCO6JeDCBdp126Cgs9sMxqSjgYyRg==", + "dev": true, + "license": "MIT", + "dependencies": { + "mime-db": ">= 1.43.0 < 2" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/compression": { + "version": "1.7.5", + "resolved": "https://npm.sinequa.com/compression/-/compression-1.7.5.tgz", + "integrity": "sha512-bQJ0YRck5ak3LgtnpKkiabX5pNF7tMUh1BSy2ZBOTh0Dim0BUu6aPPwByIns6/A5Prh8PufSPerMDUklpzes2Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "bytes": "3.1.2", + "compressible": "~2.0.18", + "debug": "2.6.9", + "negotiator": "~0.6.4", + "on-headers": "~1.0.2", + "safe-buffer": "5.2.1", + "vary": "~1.1.2" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/compression/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://npm.sinequa.com/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "license": "MIT", + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/compression/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://npm.sinequa.com/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "dev": true, + "license": "MIT" + }, + "node_modules/connect-history-api-fallback": { + "version": "2.0.0", + "resolved": "https://npm.sinequa.com/connect-history-api-fallback/-/connect-history-api-fallback-2.0.0.tgz", + "integrity": "sha512-U73+6lQFmfiNPrYbXqr6kZ1i1wiRqXnp2nhMsINseWXO8lDau0LGEffJ8kQi4EjLZympVgRdvqjAgiZ1tgzDDA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.8" + } + }, + "node_modules/content-disposition": { + "version": "0.5.4", + "resolved": "https://npm.sinequa.com/content-disposition/-/content-disposition-0.5.4.tgz", + "integrity": "sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "safe-buffer": "5.2.1" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/content-type": { + "version": "1.0.5", + "resolved": "https://npm.sinequa.com/content-type/-/content-type-1.0.5.tgz", + "integrity": "sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/convert-source-map": { + "version": "1.9.0", + "resolved": "https://npm.sinequa.com/convert-source-map/-/convert-source-map-1.9.0.tgz", + "integrity": "sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A==", + "dev": true, + "license": "MIT" + }, + "node_modules/cookie": { + "version": "0.7.1", + "resolved": "https://npm.sinequa.com/cookie/-/cookie-0.7.1.tgz", + "integrity": "sha512-6DnInpx7SJ2AK3+CTUE/ZM0vWTUboZCegxhC2xiIydHR9jNuTAASBrfEpHhiGOZw/nX51bHt6YQl8jsGo4y/0w==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/cookie-signature": { + "version": "1.0.6", + "resolved": "https://npm.sinequa.com/cookie-signature/-/cookie-signature-1.0.6.tgz", + "integrity": "sha1-4wOogrNCzD7oylE6eZmXNNqzriw=", + "dev": true, + "license": "MIT" + }, + "node_modules/copy-anything": { + "version": "2.0.6", + "resolved": "https://npm.sinequa.com/copy-anything/-/copy-anything-2.0.6.tgz", + "integrity": "sha512-1j20GZTsvKNkc4BY3NpMOM8tt///wY3FpIzozTOFO2ffuZcV61nojHXVKIy3WM+7ADCy5FVhdZYHYDdgTU0yJw==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-what": "^3.14.1" + }, + "funding": { + "url": "https://github.com/sponsors/mesqueeb" + } + }, + "node_modules/copy-webpack-plugin": { + "version": "12.0.2", + "resolved": "https://npm.sinequa.com/copy-webpack-plugin/-/copy-webpack-plugin-12.0.2.tgz", + "integrity": "sha512-SNwdBeHyII+rWvee/bTnAYyO8vfVdcSTud4EIb6jcZ8inLeWucJE0DnxXQBjlQ5zlteuuvooGQy3LIyGxhvlOA==", + "dev": true, + "license": "MIT", + "dependencies": { + "fast-glob": "^3.3.2", + "glob-parent": "^6.0.1", + "globby": "^14.0.0", + "normalize-path": "^3.0.0", + "schema-utils": "^4.2.0", + "serialize-javascript": "^6.0.2" + }, + "engines": { + "node": ">= 18.12.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "webpack": "^5.1.0" + } + }, + "node_modules/core-js-compat": { + "version": "3.40.0", + "resolved": "https://npm.sinequa.com/core-js-compat/-/core-js-compat-3.40.0.tgz", + "integrity": "sha512-0XEDpr5y5mijvw8Lbc6E5AkjrHfp7eEoPlu36SWeAbcL8fn1G1ANe8DBlo2XoNN89oVpxWwOjYIPVzR4ZvsKCQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "browserslist": "^4.24.3" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/core-js" + } + }, + "node_modules/core-util-is": { + "version": "1.0.3", + "resolved": "https://npm.sinequa.com/core-util-is/-/core-util-is-1.0.3.tgz", + "integrity": "sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/cosmiconfig": { + "version": "8.3.6", + "resolved": "https://npm.sinequa.com/cosmiconfig/-/cosmiconfig-8.3.6.tgz", + "integrity": "sha512-kcZ6+W5QzcJ3P1Mt+83OUv/oHFqZHIx8DuxG6eZ5RGMERoLqp4BuGjhHLYGK+Kf5XVkQvqBSmAy/nGWN3qDgEA==", + "license": "MIT", + "dependencies": { + "import-fresh": "^3.3.0", + "js-yaml": "^4.1.0", + "parse-json": "^5.2.0", + "path-type": "^4.0.0" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/d-fischer" + }, + "peerDependencies": { + "typescript": ">=4.9.5" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/critters": { + "version": "0.0.24", + "resolved": "https://npm.sinequa.com/critters/-/critters-0.0.24.tgz", + "integrity": "sha512-Oyqew0FGM0wYUSNqR0L6AteO5MpMoUU0rhKRieXeiKs+PmRTxiJMyaunYB2KF6fQ3dzChXKCpbFOEJx3OQ1v/Q==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "chalk": "^4.1.0", + "css-select": "^5.1.0", + "dom-serializer": "^2.0.0", + "domhandler": "^5.0.2", + "htmlparser2": "^8.0.2", + "postcss": "^8.4.23", + "postcss-media-query-parser": "^0.2.3" + } + }, + "node_modules/cross-spawn": { + "version": "7.0.6", + "resolved": "https://npm.sinequa.com/cross-spawn/-/cross-spawn-7.0.6.tgz", + "integrity": "sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==", + "license": "MIT", + "dependencies": { + "path-key": "^3.1.0", + "shebang-command": "^2.0.0", + "which": "^2.0.1" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/css-loader": { + "version": "7.1.2", + "resolved": "https://npm.sinequa.com/css-loader/-/css-loader-7.1.2.tgz", + "integrity": "sha512-6WvYYn7l/XEGN8Xu2vWFt9nVzrCn39vKyTEFf/ExEyoksJjjSZV/0/35XPlMbpnr6VGhZIUg5yJrL8tGfes/FA==", + "dev": true, + "license": "MIT", + "dependencies": { + "icss-utils": "^5.1.0", + "postcss": "^8.4.33", + "postcss-modules-extract-imports": "^3.1.0", + "postcss-modules-local-by-default": "^4.0.5", + "postcss-modules-scope": "^3.2.0", + "postcss-modules-values": "^4.0.0", + "postcss-value-parser": "^4.2.0", + "semver": "^7.5.4" + }, + "engines": { + "node": ">= 18.12.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "@rspack/core": "0.x || 1.x", + "webpack": "^5.27.0" + }, + "peerDependenciesMeta": { + "@rspack/core": { + "optional": true + }, + "webpack": { + "optional": true + } + } + }, + "node_modules/css-select": { + "version": "5.1.0", + "resolved": "https://npm.sinequa.com/css-select/-/css-select-5.1.0.tgz", + "integrity": "sha512-nwoRF1rvRRnnCqqY7updORDsuqKzqYJ28+oSMaJMMgOauh3fvwHqMS7EZpIPqK8GL+g9mKxF1vP/ZjSeNjEVHg==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "boolbase": "^1.0.0", + "css-what": "^6.1.0", + "domhandler": "^5.0.2", + "domutils": "^3.0.1", + "nth-check": "^2.0.1" + }, + "funding": { + "url": "https://github.com/sponsors/fb55" + } + }, + "node_modules/css-what": { + "version": "6.1.0", + "resolved": "https://npm.sinequa.com/css-what/-/css-what-6.1.0.tgz", + "integrity": "sha512-HTUrgRJ7r4dsZKU6GjmpfRK1O76h97Z8MfS1G0FozR+oF2kG6Vfe8JE6zwrkbxigziPHinCJ+gCPjA9EaBDtRw==", + "dev": true, + "license": "BSD-2-Clause", + "engines": { + "node": ">= 6" + }, + "funding": { + "url": "https://github.com/sponsors/fb55" + } + }, + "node_modules/cssesc": { + "version": "3.0.0", + "resolved": "https://npm.sinequa.com/cssesc/-/cssesc-3.0.0.tgz", + "integrity": "sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==", + "dev": true, + "license": "MIT", + "bin": { + "cssesc": "bin/cssesc" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/debug": { + "version": "4.4.0", + "resolved": "https://npm.sinequa.com/debug/-/debug-4.4.0.tgz", + "integrity": "sha512-6WTZ/IxCY/T6BALoZHaE4ctp9xm+Z5kY/pzYaCHRFeyVhojxlrm+46y68HA6hr0TcwEssoxNiDEUJQjfPZ/RYA==", + "dev": true, + "license": "MIT", + "dependencies": { + "ms": "^2.1.3" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/default-browser": { + "version": "5.2.1", + "resolved": "https://npm.sinequa.com/default-browser/-/default-browser-5.2.1.tgz", + "integrity": "sha512-WY/3TUME0x3KPYdRRxEJJvXRHV4PyPoUsxtZa78lwItwRQRHhd2U9xOscaT/YTf8uCXIAjeJOFBVEh/7FtD8Xg==", + "dev": true, + "license": "MIT", + "dependencies": { + "bundle-name": "^4.1.0", + "default-browser-id": "^5.0.0" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/default-browser-id": { + "version": "5.0.0", + "resolved": "https://npm.sinequa.com/default-browser-id/-/default-browser-id-5.0.0.tgz", + "integrity": "sha512-A6p/pu/6fyBcA1TRz/GqWYPViplrftcW2gZC9q79ngNCKAeR/X3gcEdXQHl4KNXV+3wgIJ1CPkJQ3IHM6lcsyA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/default-gateway": { + "version": "6.0.3", + "resolved": "https://npm.sinequa.com/default-gateway/-/default-gateway-6.0.3.tgz", + "integrity": "sha512-fwSOJsbbNzZ/CUFpqFBqYfYNLj1NbMPm8MMCIzHjC83iSJRBEGmDUxU+WP661BaBQImeC2yHwXtz+P/O9o+XEg==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "execa": "^5.0.0" + }, + "engines": { + "node": ">= 10" + } + }, + "node_modules/default-gateway/node_modules/execa": { + "version": "5.1.1", + "resolved": "https://npm.sinequa.com/execa/-/execa-5.1.1.tgz", + "integrity": "sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==", + "dev": true, + "license": "MIT", + "dependencies": { + "cross-spawn": "^7.0.3", + "get-stream": "^6.0.0", + "human-signals": "^2.1.0", + "is-stream": "^2.0.0", + "merge-stream": "^2.0.0", + "npm-run-path": "^4.0.1", + "onetime": "^5.1.2", + "signal-exit": "^3.0.3", + "strip-final-newline": "^2.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sindresorhus/execa?sponsor=1" + } + }, + "node_modules/default-gateway/node_modules/get-stream": { + "version": "6.0.1", + "resolved": "https://npm.sinequa.com/get-stream/-/get-stream-6.0.1.tgz", + "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/default-gateway/node_modules/human-signals": { + "version": "2.1.0", + "resolved": "https://npm.sinequa.com/human-signals/-/human-signals-2.1.0.tgz", + "integrity": "sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": ">=10.17.0" + } + }, + "node_modules/default-gateway/node_modules/is-stream": { + "version": "2.0.1", + "resolved": "https://npm.sinequa.com/is-stream/-/is-stream-2.0.1.tgz", + "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/default-gateway/node_modules/mimic-fn": { + "version": "2.1.0", + "resolved": "https://npm.sinequa.com/mimic-fn/-/mimic-fn-2.1.0.tgz", + "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/default-gateway/node_modules/npm-run-path": { + "version": "4.0.1", + "resolved": "https://npm.sinequa.com/npm-run-path/-/npm-run-path-4.0.1.tgz", + "integrity": "sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==", + "dev": true, + "license": "MIT", + "dependencies": { + "path-key": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/default-gateway/node_modules/onetime": { + "version": "5.1.2", + "resolved": "https://npm.sinequa.com/onetime/-/onetime-5.1.2.tgz", + "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==", + "dev": true, + "license": "MIT", + "dependencies": { + "mimic-fn": "^2.1.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/default-gateway/node_modules/signal-exit": { + "version": "3.0.7", + "resolved": "https://npm.sinequa.com/signal-exit/-/signal-exit-3.0.7.tgz", + "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==", + "dev": true, + "license": "ISC" + }, + "node_modules/default-gateway/node_modules/strip-final-newline": { + "version": "2.0.0", + "resolved": "https://npm.sinequa.com/strip-final-newline/-/strip-final-newline-2.0.0.tgz", + "integrity": "sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/defaults": { + "version": "1.0.4", + "resolved": "https://npm.sinequa.com/defaults/-/defaults-1.0.4.tgz", + "integrity": "sha512-eFuaLoy/Rxalv2kr+lqMlUnrDWV+3j4pljOIJgLIhI058IQfWJ7vXhyEIHu+HtC738klGALYxOKDO0bQP3tg8A==", + "license": "MIT", + "dependencies": { + "clone": "^1.0.2" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/define-lazy-prop": { + "version": "3.0.0", + "resolved": "https://npm.sinequa.com/define-lazy-prop/-/define-lazy-prop-3.0.0.tgz", + "integrity": "sha512-N+MeXYoqr3pOgn8xfyRPREN7gHakLYjhsHhWGT3fWAiL4IkAt0iDw14QiiEm2bE30c5XX5q0FtAA3CK5f9/BUg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/depd": { + "version": "2.0.0", + "resolved": "https://npm.sinequa.com/depd/-/depd-2.0.0.tgz", + "integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/destroy": { + "version": "1.2.0", + "resolved": "https://npm.sinequa.com/destroy/-/destroy-1.2.0.tgz", + "integrity": "sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.8", + "npm": "1.2.8000 || >= 1.4.16" + } + }, + "node_modules/detect-libc": { + "version": "2.0.3", + "resolved": "https://npm.sinequa.com/detect-libc/-/detect-libc-2.0.3.tgz", + "integrity": "sha512-bwy0MGW55bG41VqxxypOsdSdGqLwXPI/focwgTYCFMbdUiBAxLg9CFzG08sz2aqzknwiX7Hkl0bQENjg8iLByw==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": ">=8" + } + }, + "node_modules/detect-node": { + "version": "2.1.0", + "resolved": "https://npm.sinequa.com/detect-node/-/detect-node-2.1.0.tgz", + "integrity": "sha512-T0NIuQpnTvFDATNuHN5roPwSBG83rFsuO+MXXH9/3N1eFbn4wcPjttvjMLEPWJ0RGUYgQE7cGgS3tNxbqCGM7g==", + "dev": true, + "license": "MIT" + }, + "node_modules/didyoumean": { + "version": "1.2.2", + "resolved": "https://npm.sinequa.com/didyoumean/-/didyoumean-1.2.2.tgz", + "integrity": "sha512-gxtyfqMg7GKyhQmb056K7M3xszy/myH8w+B4RT+QXBQsvAOdc3XymqDDPHx1BgPgsdAA5SIifona89YtRATDzw==", + "dev": true, + "license": "Apache-2.0" + }, + "node_modules/dlv": { + "version": "1.1.3", + "resolved": "https://npm.sinequa.com/dlv/-/dlv-1.1.3.tgz", + "integrity": "sha512-+HlytyjlPKnIG8XuRG8WvmBP8xs8P71y+SKKS6ZXWoEgLuePxtDoUEiH7WkdePWrQ5JBpE6aoVqfZfJUQkjXwA==", + "dev": true, + "license": "MIT" + }, + "node_modules/dns-packet": { + "version": "5.6.1", + "resolved": "https://npm.sinequa.com/dns-packet/-/dns-packet-5.6.1.tgz", + "integrity": "sha512-l4gcSouhcgIKRvyy99RNVOgxXiicE+2jZoNmaNmZ6JXiGajBOJAesk1OBlJuM5k2c+eudGdLxDqXuPCKIj6kpw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@leichtgewicht/ip-codec": "^2.0.1" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/dom-serializer": { + "version": "2.0.0", + "resolved": "https://npm.sinequa.com/dom-serializer/-/dom-serializer-2.0.0.tgz", + "integrity": "sha512-wIkAryiqt/nV5EQKqQpo3SToSOV9J0DnbJqwK7Wv/Trc92zIAYZ4FlMu+JPFW1DfGFt81ZTCGgDEabffXeLyJg==", + "dev": true, + "license": "MIT", + "dependencies": { + "domelementtype": "^2.3.0", + "domhandler": "^5.0.2", + "entities": "^4.2.0" + }, + "funding": { + "url": "https://github.com/cheeriojs/dom-serializer?sponsor=1" + } + }, + "node_modules/domelementtype": { + "version": "2.3.0", + "resolved": "https://npm.sinequa.com/domelementtype/-/domelementtype-2.3.0.tgz", + "integrity": "sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/fb55" + } + ], + "license": "BSD-2-Clause" + }, + "node_modules/domhandler": { + "version": "5.0.3", + "resolved": "https://npm.sinequa.com/domhandler/-/domhandler-5.0.3.tgz", + "integrity": "sha512-cgwlv/1iFQiFnU96XXgROh8xTeetsnJiDsTc7TYCLFd9+/WNkIqPTxiM/8pSd8VIrhXGTf1Ny1q1hquVqDJB5w==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "domelementtype": "^2.3.0" + }, + "engines": { + "node": ">= 4" + }, + "funding": { + "url": "https://github.com/fb55/domhandler?sponsor=1" + } + }, + "node_modules/domutils": { + "version": "3.2.2", + "resolved": "https://npm.sinequa.com/domutils/-/domutils-3.2.2.tgz", + "integrity": "sha512-6kZKyUajlDuqlHKVX1w7gyslj9MPIXzIFiz/rGu35uC1wMi+kMhQwGhl4lt9unC9Vb9INnY9Z3/ZA3+FhASLaw==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "dom-serializer": "^2.0.0", + "domelementtype": "^2.3.0", + "domhandler": "^5.0.3" + }, + "funding": { + "url": "https://github.com/fb55/domutils?sponsor=1" + } + }, + "node_modules/dunder-proto": { + "version": "1.0.1", + "resolved": "https://npm.sinequa.com/dunder-proto/-/dunder-proto-1.0.1.tgz", + "integrity": "sha512-KIN/nDJBQRcXw0MLVhZE9iQHmG68qAVIBg9CqmUYjmQIhgij9U5MFvrqkUL5FbtyyzZuOeOt0zdeRe4UY7ct+A==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind-apply-helpers": "^1.0.1", + "es-errors": "^1.3.0", + "gopd": "^1.2.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/eastasianwidth": { + "version": "0.2.0", + "resolved": "https://npm.sinequa.com/eastasianwidth/-/eastasianwidth-0.2.0.tgz", + "integrity": "sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==", + "license": "MIT" + }, + "node_modules/ee-first": { + "version": "1.1.1", + "resolved": "https://npm.sinequa.com/ee-first/-/ee-first-1.1.1.tgz", + "integrity": "sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0=", + "dev": true, + "license": "MIT" + }, + "node_modules/electron-to-chromium": { + "version": "1.5.96", + "resolved": "https://npm.sinequa.com/electron-to-chromium/-/electron-to-chromium-1.5.96.tgz", + "integrity": "sha512-8AJUW6dh75Fm/ny8+kZKJzI1pgoE8bKLZlzDU2W1ENd+DXKJrx7I7l9hb8UWR4ojlnb5OlixMt00QWiYJoVw1w==", + "dev": true, + "license": "ISC" + }, + "node_modules/emoji-regex": { + "version": "9.2.2", + "resolved": "https://npm.sinequa.com/emoji-regex/-/emoji-regex-9.2.2.tgz", + "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==", + "license": "MIT" + }, + "node_modules/emojis-list": { + "version": "3.0.0", + "resolved": "https://npm.sinequa.com/emojis-list/-/emojis-list-3.0.0.tgz", + "integrity": "sha512-/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 4" + } + }, + "node_modules/encodeurl": { + "version": "2.0.0", + "resolved": "https://npm.sinequa.com/encodeurl/-/encodeurl-2.0.0.tgz", + "integrity": "sha512-Q0n9HRi4m6JuGIV1eFlmvJB7ZEVxu93IrMyiMsGC0lrMJMWzRgx6WGquyfQgZVb31vhGgXnfmPNNXmxnOkRBrg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/encoding": { + "version": "0.1.13", + "resolved": "https://npm.sinequa.com/encoding/-/encoding-0.1.13.tgz", + "integrity": "sha512-ETBauow1T35Y/WZMkio9jiM0Z5xjHHmJ4XmjZOq1l/dXz3lr2sRn87nJy20RupqSh1F2m3HHPSp8ShIPQJrJ3A==", + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "iconv-lite": "^0.6.2" + } + }, + "node_modules/encoding/node_modules/iconv-lite": { + "version": "0.6.3", + "resolved": "https://npm.sinequa.com/iconv-lite/-/iconv-lite-0.6.3.tgz", + "integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==", + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "safer-buffer": ">= 2.1.2 < 3.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/enhanced-resolve": { + "version": "5.18.1", + "resolved": "https://npm.sinequa.com/enhanced-resolve/-/enhanced-resolve-5.18.1.tgz", + "integrity": "sha512-ZSW3ma5GkcQBIpwZTSRAI8N71Uuwgs93IezB7mf7R60tC8ZbJideoDNKjHn2O9KIlx6rkGTTEk1xUCK2E1Y2Yg==", + "dev": true, + "license": "MIT", + "dependencies": { + "graceful-fs": "^4.2.4", + "tapable": "^2.2.0" + }, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/entities": { + "version": "4.5.0", + "resolved": "https://npm.sinequa.com/entities/-/entities-4.5.0.tgz", + "integrity": "sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==", + "devOptional": true, + "license": "BSD-2-Clause", + "engines": { + "node": ">=0.12" + }, + "funding": { + "url": "https://github.com/fb55/entities?sponsor=1" + } + }, + "node_modules/env-paths": { + "version": "2.2.1", + "resolved": "https://npm.sinequa.com/env-paths/-/env-paths-2.2.1.tgz", + "integrity": "sha512-+h1lkLKhZMTYjog1VEpJNG7NZJWcuc2DDk/qsqSTRRCOXiLjeQ1d1/udrUGhqMxUgAlwKNZ0cf2uqan5GLuS2A==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/environment": { + "version": "1.1.0", + "resolved": "https://npm.sinequa.com/environment/-/environment-1.1.0.tgz", + "integrity": "sha512-xUtoPkMggbz0MPyPiIWr1Kp4aeWJjDZ6SMvURhimjdZgsRuDplF5/s9hcgGhyXMhs+6vpnuoiZ2kFiu3FMnS8Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/err-code": { + "version": "2.0.3", + "resolved": "https://npm.sinequa.com/err-code/-/err-code-2.0.3.tgz", + "integrity": "sha512-2bmlRpNKBxT/CRmPOlyISQpNj+qSeYvcym/uT0Jx2bMOlKLtSy1ZmLuVxSEKKyor/N5yhvp/ZiG1oE3DEYMSFA==", + "dev": true, + "license": "MIT" + }, + "node_modules/errno": { + "version": "0.1.8", + "resolved": "https://npm.sinequa.com/errno/-/errno-0.1.8.tgz", + "integrity": "sha512-dJ6oBr5SQ1VSd9qkk7ByRgb/1SH4JZjCHSW/mr63/QcXO9zLVxvJ6Oy13nio03rxpSnVDDjFor75SjVeZWPW/A==", + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "prr": "~1.0.1" + }, + "bin": { + "errno": "cli.js" + } + }, + "node_modules/error-ex": { + "version": "1.3.2", + "resolved": "https://npm.sinequa.com/error-ex/-/error-ex-1.3.2.tgz", + "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==", + "license": "MIT", + "dependencies": { + "is-arrayish": "^0.2.1" + } + }, + "node_modules/es-define-property": { + "version": "1.0.1", + "resolved": "https://npm.sinequa.com/es-define-property/-/es-define-property-1.0.1.tgz", + "integrity": "sha512-e3nRfgfUZ4rNGL232gUgX06QNyyez04KdjFrF+LTRoOXmrOgFKDg4BCdsjW8EnT69eqdYGmRpJwiPVYNrCaW3g==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-errors": { + "version": "1.3.0", + "resolved": "https://npm.sinequa.com/es-errors/-/es-errors-1.3.0.tgz", + "integrity": "sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-module-lexer": { + "version": "1.6.0", + "resolved": "https://npm.sinequa.com/es-module-lexer/-/es-module-lexer-1.6.0.tgz", + "integrity": "sha512-qqnD1yMU6tk/jnaMosogGySTZP8YtUgAffA9nMN+E/rjxcfRQ6IEk7IiozUjgxKoFHBGjTLnrHB/YC45r/59EQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/es-object-atoms": { + "version": "1.1.1", + "resolved": "https://npm.sinequa.com/es-object-atoms/-/es-object-atoms-1.1.1.tgz", + "integrity": "sha512-FGgH2h8zKNim9ljj7dankFPcICIK9Cp5bm+c2gQSYePhpaG5+esrLODihIorn+Pe6FGJzWhXQotPv73jTaldXA==", + "dev": true, + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/esbuild": { + "version": "0.25.0", + "resolved": "https://npm.sinequa.com/esbuild/-/esbuild-0.25.0.tgz", + "integrity": "sha512-BXq5mqc8ltbaN34cDqWuYKyNhX8D/Z0J1xdtdQ8UcIIIyJyz+ZMKUt58tF3SrZ85jcfN/PZYhjR5uDQAYNVbuw==", + "dev": true, + "hasInstallScript": true, + "license": "MIT", + "bin": { + "esbuild": "bin/esbuild" + }, + "engines": { + "node": ">=18" + }, + "optionalDependencies": { + "@esbuild/aix-ppc64": "0.25.0", + "@esbuild/android-arm": "0.25.0", + "@esbuild/android-arm64": "0.25.0", + "@esbuild/android-x64": "0.25.0", + "@esbuild/darwin-arm64": "0.25.0", + "@esbuild/darwin-x64": "0.25.0", + "@esbuild/freebsd-arm64": "0.25.0", + "@esbuild/freebsd-x64": "0.25.0", + "@esbuild/linux-arm": "0.25.0", + "@esbuild/linux-arm64": "0.25.0", + "@esbuild/linux-ia32": "0.25.0", + "@esbuild/linux-loong64": "0.25.0", + "@esbuild/linux-mips64el": "0.25.0", + "@esbuild/linux-ppc64": "0.25.0", + "@esbuild/linux-riscv64": "0.25.0", + "@esbuild/linux-s390x": "0.25.0", + "@esbuild/linux-x64": "0.25.0", + "@esbuild/netbsd-arm64": "0.25.0", + "@esbuild/netbsd-x64": "0.25.0", + "@esbuild/openbsd-arm64": "0.25.0", + "@esbuild/openbsd-x64": "0.25.0", + "@esbuild/sunos-x64": "0.25.0", + "@esbuild/win32-arm64": "0.25.0", + "@esbuild/win32-ia32": "0.25.0", + "@esbuild/win32-x64": "0.25.0" + } + }, + "node_modules/esbuild-wasm": { + "version": "0.23.0", + "resolved": "https://npm.sinequa.com/esbuild-wasm/-/esbuild-wasm-0.23.0.tgz", + "integrity": "sha512-6jP8UmWy6R6TUUV8bMuC3ZyZ6lZKI56x0tkxyCIqWwRRJ/DgeQKneh/Oid5EoGoPFLrGNkz47ZEtWAYuiY/u9g==", + "dev": true, + "license": "MIT", + "bin": { + "esbuild": "bin/esbuild" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/escalade": { + "version": "3.2.0", + "resolved": "https://npm.sinequa.com/escalade/-/escalade-3.2.0.tgz", + "integrity": "sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==", + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/escape-html": { + "version": "1.0.3", + "resolved": "https://npm.sinequa.com/escape-html/-/escape-html-1.0.3.tgz", + "integrity": "sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg=", + "dev": true, + "license": "MIT" + }, + "node_modules/eslint-scope": { + "version": "5.1.1", + "resolved": "https://npm.sinequa.com/eslint-scope/-/eslint-scope-5.1.1.tgz", + "integrity": "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "esrecurse": "^4.3.0", + "estraverse": "^4.1.1" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/esrecurse": { + "version": "4.3.0", + "resolved": "https://npm.sinequa.com/esrecurse/-/esrecurse-4.3.0.tgz", + "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "estraverse": "^5.2.0" + }, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/esrecurse/node_modules/estraverse": { + "version": "5.3.0", + "resolved": "https://npm.sinequa.com/estraverse/-/estraverse-5.3.0.tgz", + "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", + "dev": true, + "license": "BSD-2-Clause", + "engines": { + "node": ">=4.0" + } + }, + "node_modules/estraverse": { + "version": "4.3.0", + "resolved": "https://npm.sinequa.com/estraverse/-/estraverse-4.3.0.tgz", + "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==", + "dev": true, + "license": "BSD-2-Clause", + "engines": { + "node": ">=4.0" + } + }, + "node_modules/esutils": { + "version": "2.0.3", + "resolved": "https://npm.sinequa.com/esutils/-/esutils-2.0.3.tgz", + "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", + "dev": true, + "license": "BSD-2-Clause", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/etag": { + "version": "1.8.1", + "resolved": "https://npm.sinequa.com/etag/-/etag-1.8.1.tgz", + "integrity": "sha1-Qa4u62XvpiJorr/qg6x9eSmbCIc=", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/event-target-shim": { + "version": "5.0.1", + "resolved": "https://npm.sinequa.com/event-target-shim/-/event-target-shim-5.0.1.tgz", + "integrity": "sha512-i/2XbnSz/uxRCU6+NdVJgKWDTM427+MqYbkQzD321DuCQJUqOuJKIA0IM2+W2xtYHdKOmZ4dR6fExsd4SXL+WQ==", + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/eventemitter3": { + "version": "4.0.7", + "resolved": "https://npm.sinequa.com/eventemitter3/-/eventemitter3-4.0.7.tgz", + "integrity": "sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw==", + "dev": true, + "license": "MIT" + }, + "node_modules/events": { + "version": "3.3.0", + "resolved": "https://npm.sinequa.com/events/-/events-3.3.0.tgz", + "integrity": "sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.8.x" + } + }, + "node_modules/eventsource": { + "version": "2.0.2", + "resolved": "https://npm.sinequa.com/eventsource/-/eventsource-2.0.2.tgz", + "integrity": "sha512-IzUmBGPR3+oUG9dUeXynyNmf91/3zUSJg1lCktzKw47OXuhco54U3r9B7O4XX+Rb1Itm9OZ2b0RkTs10bICOxA==", + "license": "MIT", + "engines": { + "node": ">=12.0.0" + } + }, + "node_modules/execa": { + "version": "8.0.1", + "resolved": "https://npm.sinequa.com/execa/-/execa-8.0.1.tgz", + "integrity": "sha512-VyhnebXciFV2DESc+p6B+y0LjSm0krU4OgJN44qFAhBY0TJ+1V61tYD2+wHusZ6F9n5K+vl8k0sTy7PEfV4qpg==", + "dev": true, + "license": "MIT", + "dependencies": { + "cross-spawn": "^7.0.3", + "get-stream": "^8.0.1", + "human-signals": "^5.0.0", + "is-stream": "^3.0.0", + "merge-stream": "^2.0.0", + "npm-run-path": "^5.1.0", + "onetime": "^6.0.0", + "signal-exit": "^4.1.0", + "strip-final-newline": "^3.0.0" + }, + "engines": { + "node": ">=16.17" + }, + "funding": { + "url": "https://github.com/sindresorhus/execa?sponsor=1" + } + }, + "node_modules/exponential-backoff": { + "version": "3.1.2", + "resolved": "https://npm.sinequa.com/exponential-backoff/-/exponential-backoff-3.1.2.tgz", + "integrity": "sha512-8QxYTVXUkuy7fIIoitQkPwGonB8F3Zj8eEO8Sqg9Zv/bkI7RJAzowee4gr81Hak/dUTpA2Z7VfQgoijjPNlUZA==", + "dev": true, + "license": "Apache-2.0" + }, + "node_modules/express": { + "version": "4.21.2", + "resolved": "https://npm.sinequa.com/express/-/express-4.21.2.tgz", + "integrity": "sha512-28HqgMZAmih1Czt9ny7qr6ek2qddF4FclbMzwhCREB6OFfH+rXAnuNCwo1/wFvrtbgsQDb4kSbX9de9lFbrXnA==", + "dev": true, + "license": "MIT", + "dependencies": { + "accepts": "~1.3.8", + "array-flatten": "1.1.1", + "body-parser": "1.20.3", + "content-disposition": "0.5.4", + "content-type": "~1.0.4", + "cookie": "0.7.1", + "cookie-signature": "1.0.6", + "debug": "2.6.9", + "depd": "2.0.0", + "encodeurl": "~2.0.0", + "escape-html": "~1.0.3", + "etag": "~1.8.1", + "finalhandler": "1.3.1", + "fresh": "0.5.2", + "http-errors": "2.0.0", + "merge-descriptors": "1.0.3", + "methods": "~1.1.2", + "on-finished": "2.4.1", + "parseurl": "~1.3.3", + "path-to-regexp": "0.1.12", + "proxy-addr": "~2.0.7", + "qs": "6.13.0", + "range-parser": "~1.2.1", + "safe-buffer": "5.2.1", + "send": "0.19.0", + "serve-static": "1.16.2", + "setprototypeof": "1.2.0", + "statuses": "2.0.1", + "type-is": "~1.6.18", + "utils-merge": "1.0.1", + "vary": "~1.1.2" + }, + "engines": { + "node": ">= 0.10.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/express" + } + }, + "node_modules/express/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://npm.sinequa.com/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "license": "MIT", + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/express/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://npm.sinequa.com/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "dev": true, + "license": "MIT" + }, + "node_modules/external-editor": { + "version": "3.1.0", + "resolved": "https://npm.sinequa.com/external-editor/-/external-editor-3.1.0.tgz", + "integrity": "sha512-hMQ4CX1p1izmuLYyZqLMO/qGNw10wSv9QDCPfzXfyFrOaCSSoRfqE1Kf1s5an66J5JZC62NewG+mK49jOCtQew==", + "dev": true, + "license": "MIT", + "dependencies": { + "chardet": "^0.7.0", + "iconv-lite": "^0.4.24", + "tmp": "^0.0.33" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/fast-deep-equal": { + "version": "3.1.3", + "resolved": "https://npm.sinequa.com/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", + "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", + "license": "MIT" + }, + "node_modules/fast-glob": { + "version": "3.3.2", + "resolved": "https://npm.sinequa.com/fast-glob/-/fast-glob-3.3.2.tgz", + "integrity": "sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow==", + "dev": true, + "license": "MIT", + "dependencies": { + "@nodelib/fs.stat": "^2.0.2", + "@nodelib/fs.walk": "^1.2.3", + "glob-parent": "^5.1.2", + "merge2": "^1.3.0", + "micromatch": "^4.0.4" + }, + "engines": { + "node": ">=8.6.0" + } + }, + "node_modules/fast-glob/node_modules/glob-parent": { + "version": "5.1.2", + "resolved": "https://npm.sinequa.com/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "dev": true, + "license": "ISC", + "dependencies": { + "is-glob": "^4.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/fast-json-stable-stringify": { + "version": "2.1.0", + "resolved": "https://npm.sinequa.com/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", + "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==", + "dev": true, + "license": "MIT" + }, + "node_modules/fast-uri": { + "version": "3.0.6", + "resolved": "https://npm.sinequa.com/fast-uri/-/fast-uri-3.0.6.tgz", + "integrity": "sha512-Atfo14OibSv5wAp4VWNsFYE1AchQRTv9cBGWET4pZWHzYshFSS9NQI6I57rdKn9croWVMbYFbLhJ+yJvmZIIHw==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/fastify" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/fastify" + } + ], + "license": "BSD-3-Clause" + }, + "node_modules/fastq": { + "version": "1.19.0", + "resolved": "https://npm.sinequa.com/fastq/-/fastq-1.19.0.tgz", + "integrity": "sha512-7SFSRCNjBQIZH/xZR3iy5iQYR8aGBE0h3VG6/cwlbrpdciNYBMotQav8c1XI3HjHH+NikUpP53nPdlZSdWmFzA==", + "dev": true, + "license": "ISC", + "dependencies": { + "reusify": "^1.0.4" + } + }, + "node_modules/faye-websocket": { + "version": "0.11.4", + "resolved": "https://npm.sinequa.com/faye-websocket/-/faye-websocket-0.11.4.tgz", + "integrity": "sha512-CzbClwlXAuiRQAlUyfqPgvPoNKTckTPGfwZV4ZdAhVcP2lh9KUxJg2b5GkE7XbjKQ3YJnQ9z6D9ntLAlB+tP8g==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "websocket-driver": ">=0.5.1" + }, + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/fetch-cookie": { + "version": "2.2.0", + "resolved": "https://npm.sinequa.com/fetch-cookie/-/fetch-cookie-2.2.0.tgz", + "integrity": "sha512-h9AgfjURuCgA2+2ISl8GbavpUdR+WGAM2McW/ovn4tVccegp8ZqCKWSBR8uRdM8dDNlx5WdKRWxBYUwteLDCNQ==", + "license": "Unlicense", + "dependencies": { + "set-cookie-parser": "^2.4.8", + "tough-cookie": "^4.0.0" + } + }, + "node_modules/fill-range": { + "version": "7.1.1", + "resolved": "https://npm.sinequa.com/fill-range/-/fill-range-7.1.1.tgz", + "integrity": "sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==", + "dev": true, + "license": "MIT", + "dependencies": { + "to-regex-range": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/finalhandler": { + "version": "1.3.1", + "resolved": "https://npm.sinequa.com/finalhandler/-/finalhandler-1.3.1.tgz", + "integrity": "sha512-6BN9trH7bp3qvnrRyzsBz+g3lZxTNZTbVO2EV1CS0WIcDbawYVdYvGflME/9QP0h0pYlCDBCTjYa9nZzMDpyxQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "debug": "2.6.9", + "encodeurl": "~2.0.0", + "escape-html": "~1.0.3", + "on-finished": "2.4.1", + "parseurl": "~1.3.3", + "statuses": "2.0.1", + "unpipe": "~1.0.0" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/finalhandler/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://npm.sinequa.com/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "license": "MIT", + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/finalhandler/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://npm.sinequa.com/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "dev": true, + "license": "MIT" + }, + "node_modules/find-cache-dir": { + "version": "4.0.0", + "resolved": "https://npm.sinequa.com/find-cache-dir/-/find-cache-dir-4.0.0.tgz", + "integrity": "sha512-9ZonPT4ZAK4a+1pUPVPZJapbi7O5qbbJPdYw/NOQWZZbVLdDTYM3A4R9z/DpAM08IDaFGsvPgiGZ82WEwUDWjg==", + "dev": true, + "license": "MIT", + "dependencies": { + "common-path-prefix": "^3.0.0", + "pkg-dir": "^7.0.0" + }, + "engines": { + "node": ">=14.16" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/find-up": { + "version": "6.3.0", + "resolved": "https://npm.sinequa.com/find-up/-/find-up-6.3.0.tgz", + "integrity": "sha512-v2ZsoEuVHYy8ZIlYqwPe/39Cy+cFDzp4dXPaxNvkEuouymu+2Jbz0PxpKarJHYJTmv2HWT3O382qY8l4jMWthw==", + "dev": true, + "license": "MIT", + "dependencies": { + "locate-path": "^7.1.0", + "path-exists": "^5.0.0" + }, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/flat": { + "version": "5.0.2", + "resolved": "https://npm.sinequa.com/flat/-/flat-5.0.2.tgz", + "integrity": "sha512-b6suED+5/3rTpUBdG1gupIl8MPFCAMA0QXwmljLhvCUKcUvdE4gWky9zpuGCcXHOsz4J9wPGNWq6OKpmIzz3hQ==", + "dev": true, + "license": "BSD-3-Clause", + "bin": { + "flat": "cli.js" + } + }, + "node_modules/follow-redirects": { + "version": "1.15.9", + "resolved": "https://npm.sinequa.com/follow-redirects/-/follow-redirects-1.15.9.tgz", + "integrity": "sha512-gew4GsXizNgdoRyqmyfMHyAmXsZDk6mHkSxZFCzW9gwlbtOW44CDtYavM+y+72qD/Vq2l550kMF52DT8fOLJqQ==", + "dev": true, + "funding": [ + { + "type": "individual", + "url": "https://github.com/sponsors/RubenVerborgh" + } + ], + "license": "MIT", + "engines": { + "node": ">=4.0" + }, + "peerDependenciesMeta": { + "debug": { + "optional": true + } + } + }, + "node_modules/foreground-child": { + "version": "3.3.0", + "resolved": "https://npm.sinequa.com/foreground-child/-/foreground-child-3.3.0.tgz", + "integrity": "sha512-Ld2g8rrAyMYFXBhEqMz8ZAHBi4J4uS1i/CxGMDnjyFWddMXLVcDp051DZfu+t7+ab7Wv6SMqpWmyFIj5UbfFvg==", + "license": "ISC", + "dependencies": { + "cross-spawn": "^7.0.0", + "signal-exit": "^4.0.1" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/forwarded": { + "version": "0.2.0", + "resolved": "https://npm.sinequa.com/forwarded/-/forwarded-0.2.0.tgz", + "integrity": "sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/fraction.js": { + "version": "4.3.7", + "resolved": "https://npm.sinequa.com/fraction.js/-/fraction.js-4.3.7.tgz", + "integrity": "sha512-ZsDfxO51wGAXREY55a7la9LScWpwv9RxIrYABrlvOFBlH/ShPnrtsXeuUIfXKKOVicNxQ+o8JTbJvjS4M89yew==", + "dev": true, + "license": "MIT", + "engines": { + "node": "*" + }, + "funding": { + "type": "patreon", + "url": "https://github.com/sponsors/rawify" + } + }, + "node_modules/fresh": { + "version": "0.5.2", + "resolved": "https://npm.sinequa.com/fresh/-/fresh-0.5.2.tgz", + "integrity": "sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac=", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/fs-extra": { + "version": "11.3.0", + "resolved": "https://npm.sinequa.com/fs-extra/-/fs-extra-11.3.0.tgz", + "integrity": "sha512-Z4XaCL6dUDHfP/jT25jJKMmtxvuwbkrD1vNSMFlo9lNLY2c5FHYSQgHPRZUjAB26TpDEoW9HCOgplrdbaPV/ew==", + "license": "MIT", + "dependencies": { + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^2.0.0" + }, + "engines": { + "node": ">=14.14" + } + }, + "node_modules/fs-minipass": { + "version": "3.0.3", + "resolved": "https://npm.sinequa.com/fs-minipass/-/fs-minipass-3.0.3.tgz", + "integrity": "sha512-XUBA9XClHbnJWSfBzjkm6RvPsyg3sryZt06BEQoXcF7EK/xpGaQYJgQKDJSUH5SGZ76Y7pFx1QBnXz09rU5Fbw==", + "dev": true, + "license": "ISC", + "dependencies": { + "minipass": "^7.0.3" + }, + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/fs.realpath": { + "version": "1.0.0", + "resolved": "https://npm.sinequa.com/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=", + "license": "ISC" + }, + "node_modules/fsevents": { + "version": "2.3.3", + "resolved": "https://npm.sinequa.com/fsevents/-/fsevents-2.3.3.tgz", + "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", + "dev": true, + "hasInstallScript": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^8.16.0 || ^10.6.0 || >=11.0.0" + } + }, + "node_modules/function-bind": { + "version": "1.1.2", + "resolved": "https://npm.sinequa.com/function-bind/-/function-bind-1.1.2.tgz", + "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==", + "dev": true, + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/gensync": { + "version": "1.0.0-beta.2", + "resolved": "https://npm.sinequa.com/gensync/-/gensync-1.0.0-beta.2.tgz", + "integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/get-caller-file": { + "version": "2.0.5", + "resolved": "https://npm.sinequa.com/get-caller-file/-/get-caller-file-2.0.5.tgz", + "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", + "license": "ISC", + "engines": { + "node": "6.* || 8.* || >= 10.*" + } + }, + "node_modules/get-east-asian-width": { + "version": "1.3.0", + "resolved": "https://npm.sinequa.com/get-east-asian-width/-/get-east-asian-width-1.3.0.tgz", + "integrity": "sha512-vpeMIQKxczTD/0s2CdEWHcb0eeJe6TFjxb+J5xgX7hScxqrGuyjmv4c1D4A/gelKfyox0gJJwIHF+fLjeaM8kQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/get-intrinsic": { + "version": "1.2.7", + "resolved": "https://npm.sinequa.com/get-intrinsic/-/get-intrinsic-1.2.7.tgz", + "integrity": "sha512-VW6Pxhsrk0KAOqs3WEd0klDiF/+V7gQOpAvY1jVU/LHmaD/kQO4523aiJuikX/QAKYiW6x8Jh+RJej1almdtCA==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind-apply-helpers": "^1.0.1", + "es-define-property": "^1.0.1", + "es-errors": "^1.3.0", + "es-object-atoms": "^1.0.0", + "function-bind": "^1.1.2", + "get-proto": "^1.0.0", + "gopd": "^1.2.0", + "has-symbols": "^1.1.0", + "hasown": "^2.0.2", + "math-intrinsics": "^1.1.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/get-proto": { + "version": "1.0.1", + "resolved": "https://npm.sinequa.com/get-proto/-/get-proto-1.0.1.tgz", + "integrity": "sha512-sTSfBjoXBp89JvIKIefqw7U2CCebsc74kiY6awiGogKtoSGbgjYE/G/+l9sF3MWFPNc9IcoOC4ODfKHfxFmp0g==", + "dev": true, + "license": "MIT", + "dependencies": { + "dunder-proto": "^1.0.1", + "es-object-atoms": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/get-stream": { + "version": "8.0.1", + "resolved": "https://npm.sinequa.com/get-stream/-/get-stream-8.0.1.tgz", + "integrity": "sha512-VaUJspBffn/LMCJVoMvSAdmscJyS1auj5Zulnn5UoYcY531UWmdwhRWkcGKnGU93m5HSXP9LP2usOryrBtQowA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=16" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/glob": { + "version": "10.4.5", + "resolved": "https://npm.sinequa.com/glob/-/glob-10.4.5.tgz", + "integrity": "sha512-7Bv8RF0k6xjo7d4A/PxYLbUCfb6c+Vpd2/mB2yRDlew7Jb5hEXiCD9ibfO7wpk8i4sevK6DFny9h7EYbM3/sHg==", + "license": "ISC", + "dependencies": { + "foreground-child": "^3.1.0", + "jackspeak": "^3.1.2", + "minimatch": "^9.0.4", + "minipass": "^7.1.2", + "package-json-from-dist": "^1.0.0", + "path-scurry": "^1.11.1" + }, + "bin": { + "glob": "dist/esm/bin.mjs" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/glob-parent": { + "version": "6.0.2", + "resolved": "https://npm.sinequa.com/glob-parent/-/glob-parent-6.0.2.tgz", + "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==", + "dev": true, + "license": "ISC", + "dependencies": { + "is-glob": "^4.0.3" + }, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/glob-to-regexp": { + "version": "0.4.1", + "resolved": "https://npm.sinequa.com/glob-to-regexp/-/glob-to-regexp-0.4.1.tgz", + "integrity": "sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw==", + "dev": true, + "license": "BSD-2-Clause" + }, + "node_modules/globals": { + "version": "11.12.0", + "resolved": "https://npm.sinequa.com/globals/-/globals-11.12.0.tgz", + "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/globby": { + "version": "14.0.2", + "resolved": "https://npm.sinequa.com/globby/-/globby-14.0.2.tgz", + "integrity": "sha512-s3Fq41ZVh7vbbe2PN3nrW7yC7U7MFVc5c98/iTl9c2GawNMKx/J648KQRW6WKkuU8GIbbh2IXfIRQjOZnXcTnw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@sindresorhus/merge-streams": "^2.1.0", + "fast-glob": "^3.3.2", + "ignore": "^5.2.4", + "path-type": "^5.0.0", + "slash": "^5.1.0", + "unicorn-magic": "^0.1.0" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/globby/node_modules/ignore": { + "version": "5.3.2", + "resolved": "https://npm.sinequa.com/ignore/-/ignore-5.3.2.tgz", + "integrity": "sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 4" + } + }, + "node_modules/globby/node_modules/path-type": { + "version": "5.0.0", + "resolved": "https://npm.sinequa.com/path-type/-/path-type-5.0.0.tgz", + "integrity": "sha512-5HviZNaZcfqP95rwpv+1HDgUamezbqdSYTyzjTvwtJSnIH+3vnbmWsItli8OFEndS984VT55M3jduxZbX351gg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/gopd": { + "version": "1.2.0", + "resolved": "https://npm.sinequa.com/gopd/-/gopd-1.2.0.tgz", + "integrity": "sha512-ZUKRh6/kUFoAiTAtTYPZJ3hw9wNxx+BIBOijnlG9PnrJsCcSjs1wyyD6vJpaYtgnzDrKYRSqf3OO6Rfa93xsRg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/graceful-fs": { + "version": "4.2.11", + "resolved": "https://npm.sinequa.com/graceful-fs/-/graceful-fs-4.2.11.tgz", + "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==", + "license": "ISC" + }, + "node_modules/handle-thing": { + "version": "2.0.1", + "resolved": "https://npm.sinequa.com/handle-thing/-/handle-thing-2.0.1.tgz", + "integrity": "sha512-9Qn4yBxelxoh2Ow62nP+Ka/kMnOXRi8BXnRaUwezLNhqelnN49xKz4F/dPP8OYLxLxq6JDtZb2i9XznUQbNPTg==", + "dev": true, + "license": "MIT" + }, + "node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://npm.sinequa.com/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/has-symbols": { + "version": "1.1.0", + "resolved": "https://npm.sinequa.com/has-symbols/-/has-symbols-1.1.0.tgz", + "integrity": "sha512-1cDNdwJ2Jaohmb3sg4OmKaMBwuC48sYni5HUw2DvsC8LjGTLK9h+eb1X6RyuOHe4hT0ULCW68iomhjUoKUqlPQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/hasown": { + "version": "2.0.2", + "resolved": "https://npm.sinequa.com/hasown/-/hasown-2.0.2.tgz", + "integrity": "sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "function-bind": "^1.1.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/highlight-words": { + "version": "1.2.2", + "resolved": "https://npm.sinequa.com/highlight-words/-/highlight-words-1.2.2.tgz", + "integrity": "sha512-Mf4xfPXYm8Ay1wTibCrHpNWeR2nUMynMVFkXCi4mbl+TEgmNOe+I4hV7W3OCZcSvzGL6kupaqpfHOemliMTGxQ==", + "license": "MIT", + "engines": { + "node": ">= 16", + "npm": ">= 8" + } + }, + "node_modules/hosted-git-info": { + "version": "7.0.2", + "resolved": "https://npm.sinequa.com/hosted-git-info/-/hosted-git-info-7.0.2.tgz", + "integrity": "sha512-puUZAUKT5m8Zzvs72XWy3HtvVbTWljRE66cP60bxJzAqf2DgICo7lYTY2IHUmLnNpjYvw5bvmoHvPc0QO2a62w==", + "dev": true, + "license": "ISC", + "dependencies": { + "lru-cache": "^10.0.1" + }, + "engines": { + "node": "^16.14.0 || >=18.0.0" + } + }, + "node_modules/hosted-git-info/node_modules/lru-cache": { + "version": "10.4.3", + "resolved": "https://npm.sinequa.com/lru-cache/-/lru-cache-10.4.3.tgz", + "integrity": "sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==", + "dev": true, + "license": "ISC" + }, + "node_modules/hpack.js": { + "version": "2.1.6", + "resolved": "https://npm.sinequa.com/hpack.js/-/hpack.js-2.1.6.tgz", + "integrity": "sha1-h3dMCUnlE/QuhFdbPEVoH63ioLI=", + "dev": true, + "license": "MIT", + "dependencies": { + "inherits": "^2.0.1", + "obuf": "^1.0.0", + "readable-stream": "^2.0.1", + "wbuf": "^1.1.0" + } + }, + "node_modules/hpack.js/node_modules/readable-stream": { + "version": "2.3.8", + "resolved": "https://npm.sinequa.com/readable-stream/-/readable-stream-2.3.8.tgz", + "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", + "dev": true, + "license": "MIT", + "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/hpack.js/node_modules/safe-buffer": { + "version": "5.1.2", + "resolved": "https://npm.sinequa.com/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", + "dev": true, + "license": "MIT" + }, + "node_modules/hpack.js/node_modules/string_decoder": { + "version": "1.1.1", + "resolved": "https://npm.sinequa.com/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "dev": true, + "license": "MIT", + "dependencies": { + "safe-buffer": "~5.1.0" + } + }, + "node_modules/html-entities": { + "version": "2.5.2", + "resolved": "https://npm.sinequa.com/html-entities/-/html-entities-2.5.2.tgz", + "integrity": "sha512-K//PSRMQk4FZ78Kyau+mZurHn3FH0Vwr+H36eE0rPbeYkRRi9YxceYPhuN60UwWorxyKHhqoAJl2OFKa4BVtaA==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/mdevils" + }, + { + "type": "patreon", + "url": "https://patreon.com/mdevils" + } + ], + "license": "MIT" + }, + "node_modules/htmlparser2": { + "version": "8.0.2", + "resolved": "https://npm.sinequa.com/htmlparser2/-/htmlparser2-8.0.2.tgz", + "integrity": "sha512-GYdjWKDkbRLkZ5geuHs5NY1puJ+PXwP7+fHPRz06Eirsb9ugf6d8kkXav6ADhcODhFFPMIXyxkxSuMf3D6NCFA==", + "dev": true, + "funding": [ + "https://github.com/fb55/htmlparser2?sponsor=1", + { + "type": "github", + "url": "https://github.com/sponsors/fb55" + } + ], + "license": "MIT", + "dependencies": { + "domelementtype": "^2.3.0", + "domhandler": "^5.0.3", + "domutils": "^3.0.1", + "entities": "^4.4.0" + } + }, + "node_modules/http-cache-semantics": { + "version": "4.1.1", + "resolved": "https://npm.sinequa.com/http-cache-semantics/-/http-cache-semantics-4.1.1.tgz", + "integrity": "sha512-er295DKPVsV82j5kw1Gjt+ADA/XYHsajl82cGNQG2eyoPkvgUhX+nDIyelzhIWbbsXP39EHcI6l5tYs2FYqYXQ==", + "dev": true, + "license": "BSD-2-Clause" + }, + "node_modules/http-deceiver": { + "version": "1.2.7", + "resolved": "https://npm.sinequa.com/http-deceiver/-/http-deceiver-1.2.7.tgz", + "integrity": "sha1-+nFolEq5pRnTN8sL7HKE3D5yPYc=", + "dev": true, + "license": "MIT" + }, + "node_modules/http-errors": { + "version": "2.0.0", + "resolved": "https://npm.sinequa.com/http-errors/-/http-errors-2.0.0.tgz", + "integrity": "sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "depd": "2.0.0", + "inherits": "2.0.4", + "setprototypeof": "1.2.0", + "statuses": "2.0.1", + "toidentifier": "1.0.1" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/http-parser-js": { + "version": "0.5.9", + "resolved": "https://npm.sinequa.com/http-parser-js/-/http-parser-js-0.5.9.tgz", + "integrity": "sha512-n1XsPy3rXVxlqxVioEWdC+0+M+SQw0DpJynwtOPo1X+ZlvdzTLtDBIJJlDQTnwZIFJrZSzSGmIOUdP8tu+SgLw==", + "dev": true, + "license": "MIT" + }, + "node_modules/http-proxy": { + "version": "1.18.1", + "resolved": "https://npm.sinequa.com/http-proxy/-/http-proxy-1.18.1.tgz", + "integrity": "sha512-7mz/721AbnJwIVbnaSv1Cz3Am0ZLT/UBwkC92VlxhXv/k/BBQfM2fXElQNC27BVGr0uwUpplYPQM9LnaBMR5NQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "eventemitter3": "^4.0.0", + "follow-redirects": "^1.0.0", + "requires-port": "^1.0.0" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/http-proxy-agent": { + "version": "7.0.2", + "resolved": "https://npm.sinequa.com/http-proxy-agent/-/http-proxy-agent-7.0.2.tgz", + "integrity": "sha512-T1gkAiYYDWYx3V5Bmyu7HcfcvL7mUrTWiM6yOfa3PIphViJ/gFPbvidQ+veqSOHci/PxBcDabeUNCzpOODJZig==", + "dev": true, + "license": "MIT", + "dependencies": { + "agent-base": "^7.1.0", + "debug": "^4.3.4" + }, + "engines": { + "node": ">= 14" + } + }, + "node_modules/http-proxy-middleware": { + "version": "3.0.3", + "resolved": "https://npm.sinequa.com/http-proxy-middleware/-/http-proxy-middleware-3.0.3.tgz", + "integrity": "sha512-usY0HG5nyDUwtqpiZdETNbmKtw3QQ1jwYFZ9wi5iHzX2BcILwQKtYDJPo7XHTsu5Z0B2Hj3W9NNnbd+AjFWjqg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/http-proxy": "^1.17.15", + "debug": "^4.3.6", + "http-proxy": "^1.18.1", + "is-glob": "^4.0.3", + "is-plain-object": "^5.0.0", + "micromatch": "^4.0.8" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/https-proxy-agent": { + "version": "7.0.5", + "resolved": "https://npm.sinequa.com/https-proxy-agent/-/https-proxy-agent-7.0.5.tgz", + "integrity": "sha512-1e4Wqeblerz+tMKPIq2EMGiiWW1dIjZOksyHWSUm1rmuvw/how9hBHZ38lAGj5ID4Ik6EdkOw7NmWPy6LAwalw==", + "dev": true, + "license": "MIT", + "dependencies": { + "agent-base": "^7.0.2", + "debug": "4" + }, + "engines": { + "node": ">= 14" + } + }, + "node_modules/human-signals": { + "version": "5.0.0", + "resolved": "https://npm.sinequa.com/human-signals/-/human-signals-5.0.0.tgz", + "integrity": "sha512-AXcZb6vzzrFAUE61HnN4mpLqd/cSIwNQjtNWR0euPm6y0iqx3G4gOXaIDdtdDwZmhwe82LA6+zinmW4UBWVePQ==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": ">=16.17.0" + } + }, + "node_modules/husky": { + "version": "9.1.7", + "resolved": "https://npm.sinequa.com/husky/-/husky-9.1.7.tgz", + "integrity": "sha512-5gs5ytaNjBrh5Ow3zrvdUUY+0VxIuWVL4i9irt6friV+BqdCfmV11CQTWMiBYWHbXhco+J1kHfTOUkePhCDvMA==", + "dev": true, + "license": "MIT", + "bin": { + "husky": "bin.js" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/typicode" + } + }, + "node_modules/hyperdyperid": { + "version": "1.2.0", + "resolved": "https://npm.sinequa.com/hyperdyperid/-/hyperdyperid-1.2.0.tgz", + "integrity": "sha512-Y93lCzHYgGWdrJ66yIktxiaGULYc6oGiABxhcO5AufBeOyoIdZF7bIfLaOrbM0iGIOXQQgxxRrFEnb+Y6w1n4A==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10.18" + } + }, + "node_modules/iconv-lite": { + "version": "0.4.24", + "resolved": "https://npm.sinequa.com/iconv-lite/-/iconv-lite-0.4.24.tgz", + "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", + "dev": true, + "license": "MIT", + "dependencies": { + "safer-buffer": ">= 2.1.2 < 3" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/icss-utils": { + "version": "5.1.0", + "resolved": "https://npm.sinequa.com/icss-utils/-/icss-utils-5.1.0.tgz", + "integrity": "sha512-soFhflCVWLfRNOPU3iv5Z9VUdT44xFRbzjLsEzSr5AQmgqPMTHdU3PMT1Cf1ssx8fLNJDA1juftYl+PUcv3MqA==", + "dev": true, + "license": "ISC", + "engines": { + "node": "^10 || ^12 || >= 14" + }, + "peerDependencies": { + "postcss": "^8.1.0" + } + }, + "node_modules/ieee754": { + "version": "1.2.1", + "resolved": "https://npm.sinequa.com/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" + } + ], + "license": "BSD-3-Clause" + }, + "node_modules/ignore": { + "version": "6.0.2", + "resolved": "https://npm.sinequa.com/ignore/-/ignore-6.0.2.tgz", + "integrity": "sha512-InwqeHHN2XpumIkMvpl/DCJVrAHgCsG5+cn1XlnLWGwtZBm8QJfSusItfrwx81CTp5agNZqpKU2J/ccC5nGT4A==", + "license": "MIT", + "engines": { + "node": ">= 4" + } + }, + "node_modules/ignore-walk": { + "version": "6.0.5", + "resolved": "https://npm.sinequa.com/ignore-walk/-/ignore-walk-6.0.5.tgz", + "integrity": "sha512-VuuG0wCnjhnylG1ABXT3dAuIpTNDs/G8jlpmwXY03fXoXy/8ZK8/T+hMzt8L4WnrLCJgdybqgPagnF/f97cg3A==", + "dev": true, + "license": "ISC", + "dependencies": { + "minimatch": "^9.0.0" + }, + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/image-size": { + "version": "0.5.5", + "resolved": "https://npm.sinequa.com/image-size/-/image-size-0.5.5.tgz", + "integrity": "sha1-Cd/Uq50g4p6xw+gLiZA3jfnjy5w=", + "dev": true, + "license": "MIT", + "optional": true, + "bin": { + "image-size": "bin/image-size.js" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/immutable": { + "version": "4.3.7", + "resolved": "https://npm.sinequa.com/immutable/-/immutable-4.3.7.tgz", + "integrity": "sha512-1hqclzwYwjRDFLjcFxOM5AYkkG0rpFPpr1RLPMEuGczoS7YA8gLhy8SWXYRAA/XwfEHpfo3cw5JGioS32fnMRw==", + "dev": true, + "license": "MIT" + }, + "node_modules/import-fresh": { + "version": "3.3.1", + "resolved": "https://npm.sinequa.com/import-fresh/-/import-fresh-3.3.1.tgz", + "integrity": "sha512-TR3KfrTZTYLPB6jUjfx6MF9WcWrHL9su5TObK4ZkYgBdWKPOFoSoQIdEuTuR82pmtxH2spWG9h6etwfr1pLBqQ==", + "license": "MIT", + "dependencies": { + "parent-module": "^1.0.0", + "resolve-from": "^4.0.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/imurmurhash": { + "version": "0.1.4", + "resolved": "https://npm.sinequa.com/imurmurhash/-/imurmurhash-0.1.4.tgz", + "integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o=", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.8.19" + } + }, + "node_modules/indent-string": { + "version": "4.0.0", + "resolved": "https://npm.sinequa.com/indent-string/-/indent-string-4.0.0.tgz", + "integrity": "sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/inflight": { + "version": "1.0.6", + "resolved": "https://npm.sinequa.com/inflight/-/inflight-1.0.6.tgz", + "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", + "license": "ISC", + "dependencies": { + "once": "^1.3.0", + "wrappy": "1" + } + }, + "node_modules/inherits": { + "version": "2.0.4", + "resolved": "https://npm.sinequa.com/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", + "license": "ISC" + }, + "node_modules/ini": { + "version": "4.1.3", + "resolved": "https://npm.sinequa.com/ini/-/ini-4.1.3.tgz", + "integrity": "sha512-X7rqawQBvfdjS10YU1y1YVreA3SsLrW9dX2CewP2EbBJM4ypVNLDkO5y04gejPwKIY9lR+7r9gn3rFPt/kmWFg==", + "dev": true, + "license": "ISC", + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/ip-address": { + "version": "9.0.5", + "resolved": "https://npm.sinequa.com/ip-address/-/ip-address-9.0.5.tgz", + "integrity": "sha512-zHtQzGojZXTwZTHQqra+ETKd4Sn3vgi7uBmlPoXVWZqYvuKmtI0l/VZTjqGmJY9x88GGOaZ9+G9ES8hC4T4X8g==", + "dev": true, + "license": "MIT", + "dependencies": { + "jsbn": "1.1.0", + "sprintf-js": "^1.1.3" + }, + "engines": { + "node": ">= 12" + } + }, + "node_modules/ipaddr.js": { + "version": "2.2.0", + "resolved": "https://npm.sinequa.com/ipaddr.js/-/ipaddr.js-2.2.0.tgz", + "integrity": "sha512-Ag3wB2o37wslZS19hZqorUnrnzSkpOVy+IiiDEiTqNubEYpYuHWIf6K4psgN2ZWKExS4xhVCrRVfb/wfW8fWJA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 10" + } + }, + "node_modules/is-arrayish": { + "version": "0.2.1", + "resolved": "https://npm.sinequa.com/is-arrayish/-/is-arrayish-0.2.1.tgz", + "integrity": "sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0=", + "license": "MIT" + }, + "node_modules/is-binary-path": { + "version": "2.1.0", + "resolved": "https://npm.sinequa.com/is-binary-path/-/is-binary-path-2.1.0.tgz", + "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", + "dev": true, + "license": "MIT", + "dependencies": { + "binary-extensions": "^2.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/is-core-module": { + "version": "2.16.1", + "resolved": "https://npm.sinequa.com/is-core-module/-/is-core-module-2.16.1.tgz", + "integrity": "sha512-UfoeMA6fIJ8wTYFEUjelnaGI67v6+N7qXJEvQuIGa99l4xsCruSYOVSQ0uPANn4dAzm8lkYPaKLrrijLq7x23w==", + "dev": true, + "license": "MIT", + "dependencies": { + "hasown": "^2.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-docker": { + "version": "3.0.0", + "resolved": "https://npm.sinequa.com/is-docker/-/is-docker-3.0.0.tgz", + "integrity": "sha512-eljcgEDlEns/7AXFosB5K/2nCM4P7FQPkGc/DWLy5rmFEWvZayGrik1d9/QIY5nJ4f9YsVvBkA6kJpHn9rISdQ==", + "dev": true, + "license": "MIT", + "bin": { + "is-docker": "cli.js" + }, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/is-extglob": { + "version": "2.1.1", + "resolved": "https://npm.sinequa.com/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-fullwidth-code-point": { + "version": "4.0.0", + "resolved": "https://npm.sinequa.com/is-fullwidth-code-point/-/is-fullwidth-code-point-4.0.0.tgz", + "integrity": "sha512-O4L094N2/dZ7xqVdrXhh9r1KODPJpFms8B5sGdJLPy664AgvXsreZUyCQQNItZRDlYug4xStLjNp/sz3HvBowQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/is-glob": { + "version": "4.0.3", + "resolved": "https://npm.sinequa.com/is-glob/-/is-glob-4.0.3.tgz", + "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-extglob": "^2.1.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-inside-container": { + "version": "1.0.0", + "resolved": "https://npm.sinequa.com/is-inside-container/-/is-inside-container-1.0.0.tgz", + "integrity": "sha512-KIYLCCJghfHZxqjYBE7rEy0OBuTd5xCHS7tHVgvCLkx7StIoaxwNW3hCALgEUjFfeRk+MG/Qxmp/vtETEF3tRA==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-docker": "^3.0.0" + }, + "bin": { + "is-inside-container": "cli.js" + }, + "engines": { + "node": ">=14.16" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/is-interactive": { + "version": "1.0.0", + "resolved": "https://npm.sinequa.com/is-interactive/-/is-interactive-1.0.0.tgz", + "integrity": "sha512-2HvIEKRoqS62guEC+qBjpvRubdX910WCMuJTZ+I9yvqKU2/12eSL549HMwtabb4oupdj2sMP50k+XJfB/8JE6w==", + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/is-lambda": { + "version": "1.0.1", + "resolved": "https://npm.sinequa.com/is-lambda/-/is-lambda-1.0.1.tgz", + "integrity": "sha1-PZh3iZ5qU+/AFgUEzeFfgubwYdU=", + "dev": true, + "license": "MIT" + }, + "node_modules/is-network-error": { + "version": "1.1.0", + "resolved": "https://npm.sinequa.com/is-network-error/-/is-network-error-1.1.0.tgz", + "integrity": "sha512-tUdRRAnhT+OtCZR/LxZelH/C7QtjtFrTu5tXCA8pl55eTUElUHT+GPYV8MBMBvea/j+NxQqVt3LbWMRir7Gx9g==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=16" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/is-number": { + "version": "7.0.0", + "resolved": "https://npm.sinequa.com/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.12.0" + } + }, + "node_modules/is-plain-obj": { + "version": "3.0.0", + "resolved": "https://npm.sinequa.com/is-plain-obj/-/is-plain-obj-3.0.0.tgz", + "integrity": "sha512-gwsOE28k+23GP1B6vFl1oVh/WOzmawBrKwo5Ev6wMKzPkaXaCDIQKzLnvsA42DRlbVTWorkgTKIviAKCWkfUwA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/is-plain-object": { + "version": "5.0.0", + "resolved": "https://npm.sinequa.com/is-plain-object/-/is-plain-object-5.0.0.tgz", + "integrity": "sha512-VRSzKkbMm5jMDoKLbltAkFQ5Qr7VDiTFGXxYFXXowVj387GeGNOCsOH6Msy00SGZ3Fp84b1Naa1psqgcCIEP5Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-stream": { + "version": "3.0.0", + "resolved": "https://npm.sinequa.com/is-stream/-/is-stream-3.0.0.tgz", + "integrity": "sha512-LnQR4bZ9IADDRSkvpqMGvt/tEJWclzklNgSw48V5EAaAeDd6qGvN8ei6k5p0tvxSR171VmGyHuTiAOfxAbr8kA==", + "dev": true, + "license": "MIT", + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/is-unicode-supported": { + "version": "0.1.0", + "resolved": "https://npm.sinequa.com/is-unicode-supported/-/is-unicode-supported-0.1.0.tgz", + "integrity": "sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw==", + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/is-what": { + "version": "3.14.1", + "resolved": "https://npm.sinequa.com/is-what/-/is-what-3.14.1.tgz", + "integrity": "sha512-sNxgpk9793nzSs7bA6JQJGeIuRBQhAaNGG77kzYQgMkrID+lS6SlK07K5LaptscDlSaIgH+GPFzf+d75FVxozA==", + "dev": true, + "license": "MIT" + }, + "node_modules/is-wsl": { + "version": "3.1.0", + "resolved": "https://npm.sinequa.com/is-wsl/-/is-wsl-3.1.0.tgz", + "integrity": "sha512-UcVfVfaK4Sc4m7X3dUSoHoozQGBEFeDC+zVo06t98xe8CzHSZZBekNXH+tu0NalHolcJ/QAGqS46Hef7QXBIMw==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-inside-container": "^1.0.0" + }, + "engines": { + "node": ">=16" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/isarray": { + "version": "1.0.0", + "resolved": "https://npm.sinequa.com/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=", + "dev": true, + "license": "MIT" + }, + "node_modules/isexe": { + "version": "2.0.0", + "resolved": "https://npm.sinequa.com/isexe/-/isexe-2.0.0.tgz", + "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=", + "license": "ISC" + }, + "node_modules/isobject": { + "version": "3.0.1", + "resolved": "https://npm.sinequa.com/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/istanbul-lib-coverage": { + "version": "3.2.2", + "resolved": "https://npm.sinequa.com/istanbul-lib-coverage/-/istanbul-lib-coverage-3.2.2.tgz", + "integrity": "sha512-O8dpsF+r0WV/8MNRKfnmrtCWhuKjxrq2w+jpzBL5UZKTi2LeVWnWOmWRxFlesJONmc+wLAGvKQZEOanko0LFTg==", + "dev": true, + "license": "BSD-3-Clause", + "engines": { + "node": ">=8" + } + }, + "node_modules/istanbul-lib-instrument": { + "version": "6.0.3", + "resolved": "https://npm.sinequa.com/istanbul-lib-instrument/-/istanbul-lib-instrument-6.0.3.tgz", + "integrity": "sha512-Vtgk7L/R2JHyyGW07spoFlB8/lpjiOLTjMdms6AFMraYt3BaJauod/NGrfnVG/y4Ix1JEuMRPDPEj2ua+zz1/Q==", + "dev": true, + "license": "BSD-3-Clause", + "dependencies": { + "@babel/core": "^7.23.9", + "@babel/parser": "^7.23.9", + "@istanbuljs/schema": "^0.1.3", + "istanbul-lib-coverage": "^3.2.0", + "semver": "^7.5.4" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/jackspeak": { + "version": "3.4.3", + "resolved": "https://npm.sinequa.com/jackspeak/-/jackspeak-3.4.3.tgz", + "integrity": "sha512-OGlZQpz2yfahA/Rd1Y8Cd9SIEsqvXkLVoSw/cgwhnhFMDbsQFeZYoJJ7bIZBS9BcamUW96asq/npPWugM+RQBw==", + "license": "BlueOak-1.0.0", + "dependencies": { + "@isaacs/cliui": "^8.0.2" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + }, + "optionalDependencies": { + "@pkgjs/parseargs": "^0.11.0" + } + }, + "node_modules/jest-worker": { + "version": "27.5.1", + "resolved": "https://npm.sinequa.com/jest-worker/-/jest-worker-27.5.1.tgz", + "integrity": "sha512-7vuh85V5cdDofPyxn58nrPjBktZo0u9x1g8WtjQol+jZDaE+fhN+cIvTj11GndBnMnyfrUOG1sZQxCdjKh+DKg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/node": "*", + "merge-stream": "^2.0.0", + "supports-color": "^8.0.0" + }, + "engines": { + "node": ">= 10.13.0" + } + }, + "node_modules/jest-worker/node_modules/supports-color": { + "version": "8.1.1", + "resolved": "https://npm.sinequa.com/supports-color/-/supports-color-8.1.1.tgz", + "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/supports-color?sponsor=1" + } + }, + "node_modules/jiti": { + "version": "1.21.7", + "resolved": "https://npm.sinequa.com/jiti/-/jiti-1.21.7.tgz", + "integrity": "sha512-/imKNG4EbWNrVjoNC/1H5/9GFy+tqjGBHCaSsN+P2RnPqjsLmv6UD3Ej+Kj8nBWaRAwyk7kK5ZUc+OEatnTR3A==", + "dev": true, + "license": "MIT", + "bin": { + "jiti": "bin/jiti.js" + } + }, + "node_modules/js-tokens": { + "version": "4.0.0", + "resolved": "https://npm.sinequa.com/js-tokens/-/js-tokens-4.0.0.tgz", + "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", + "license": "MIT" + }, + "node_modules/js-yaml": { + "version": "4.1.0", + "resolved": "https://npm.sinequa.com/js-yaml/-/js-yaml-4.1.0.tgz", + "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", + "license": "MIT", + "dependencies": { + "argparse": "^2.0.1" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" + } + }, + "node_modules/jsbn": { + "version": "1.1.0", + "resolved": "https://npm.sinequa.com/jsbn/-/jsbn-1.1.0.tgz", + "integrity": "sha1-sBMHyym2GKHtJux56RH4A8TaAEA=", + "dev": true, + "license": "MIT" + }, + "node_modules/jsesc": { + "version": "2.5.2", + "resolved": "https://npm.sinequa.com/jsesc/-/jsesc-2.5.2.tgz", + "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==", + "dev": true, + "license": "MIT", + "bin": { + "jsesc": "bin/jsesc" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/json-parse-even-better-errors": { + "version": "3.0.2", + "resolved": "https://npm.sinequa.com/json-parse-even-better-errors/-/json-parse-even-better-errors-3.0.2.tgz", + "integrity": "sha512-fi0NG4bPjCHunUJffmLd0gxssIgkNmArMvis4iNah6Owg1MCJjWhEcDLmsK6iGkJq3tHwbDkTlce70/tmXN4cQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/json-schema-traverse": { + "version": "1.0.0", + "resolved": "https://npm.sinequa.com/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", + "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", + "license": "MIT" + }, + "node_modules/json5": { + "version": "2.2.3", + "resolved": "https://npm.sinequa.com/json5/-/json5-2.2.3.tgz", + "integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==", + "dev": true, + "license": "MIT", + "bin": { + "json5": "lib/cli.js" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/jsonc-parser": { + "version": "3.3.1", + "resolved": "https://npm.sinequa.com/jsonc-parser/-/jsonc-parser-3.3.1.tgz", + "integrity": "sha512-HUgH65KyejrUFPvHFPbqOY0rsFip3Bo5wb4ngvdi1EpCYWUQDC5V+Y7mZws+DLkr4M//zQJoanu1SP+87Dv1oQ==", + "license": "MIT" + }, + "node_modules/jsonfile": { + "version": "6.1.0", + "resolved": "https://npm.sinequa.com/jsonfile/-/jsonfile-6.1.0.tgz", + "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==", + "license": "MIT", + "dependencies": { + "universalify": "^2.0.0" + }, + "optionalDependencies": { + "graceful-fs": "^4.1.6" + } + }, + "node_modules/jsonparse": { + "version": "1.3.1", + "resolved": "https://npm.sinequa.com/jsonparse/-/jsonparse-1.3.1.tgz", + "integrity": "sha1-P02uSpH6wxX3EGL4UhzCOfE2YoA=", + "dev": true, + "engines": [ + "node >= 0.2.0" + ], + "license": "MIT" + }, + "node_modules/karma-source-map-support": { + "version": "1.4.0", + "resolved": "https://npm.sinequa.com/karma-source-map-support/-/karma-source-map-support-1.4.0.tgz", + "integrity": "sha512-RsBECncGO17KAoJCYXjv+ckIz+Ii9NCi+9enk+rq6XC81ezYkb4/RHE6CTXdA7IOJqoF3wcaLfVG0CPmE5ca6A==", + "dev": true, + "license": "MIT", + "dependencies": { + "source-map-support": "^0.5.5" + } + }, + "node_modules/keyux": { + "version": "0.8.3", + "resolved": "https://npm.sinequa.com/keyux/-/keyux-0.8.3.tgz", + "integrity": "sha512-eHut6xidU0Ts4o2pnuPZuCqYVV0tvzH3RYNfk2OICDj5wFWkskW1knlyn6fcBNFd/6/57URJ+XsR9HZ/FfYwjQ==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "engines": { + "node": "^18.0.0 || >=20.0.0" + } + }, + "node_modules/kind-of": { + "version": "6.0.3", + "resolved": "https://npm.sinequa.com/kind-of/-/kind-of-6.0.3.tgz", + "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/launch-editor": { + "version": "2.9.1", + "resolved": "https://npm.sinequa.com/launch-editor/-/launch-editor-2.9.1.tgz", + "integrity": "sha512-Gcnl4Bd+hRO9P9icCP/RVVT2o8SFlPXofuCxvA2SaZuH45whSvf5p8x5oih5ftLiVhEI4sp5xDY+R+b3zJBh5w==", + "dev": true, + "license": "MIT", + "dependencies": { + "picocolors": "^1.0.0", + "shell-quote": "^1.8.1" + } + }, + "node_modules/less": { + "version": "4.2.0", + "resolved": "https://npm.sinequa.com/less/-/less-4.2.0.tgz", + "integrity": "sha512-P3b3HJDBtSzsXUl0im2L7gTO5Ubg8mEN6G8qoTS77iXxXX4Hvu4Qj540PZDvQ8V6DmX6iXo98k7Md0Cm1PrLaA==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "copy-anything": "^2.0.1", + "parse-node-version": "^1.0.1", + "tslib": "^2.3.0" + }, + "bin": { + "lessc": "bin/lessc" + }, + "engines": { + "node": ">=6" + }, + "optionalDependencies": { + "errno": "^0.1.1", + "graceful-fs": "^4.1.2", + "image-size": "~0.5.0", + "make-dir": "^2.1.0", + "mime": "^1.4.1", + "needle": "^3.1.0", + "source-map": "~0.6.0" + } + }, + "node_modules/less-loader": { + "version": "12.2.0", + "resolved": "https://npm.sinequa.com/less-loader/-/less-loader-12.2.0.tgz", + "integrity": "sha512-MYUxjSQSBUQmowc0l5nPieOYwMzGPUaTzB6inNW/bdPEG9zOL3eAAD1Qw5ZxSPk7we5dMojHwNODYMV1hq4EVg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 18.12.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "@rspack/core": "0.x || 1.x", + "less": "^3.5.0 || ^4.0.0", + "webpack": "^5.0.0" + }, + "peerDependenciesMeta": { + "@rspack/core": { + "optional": true + }, + "webpack": { + "optional": true + } + } + }, + "node_modules/less/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://npm.sinequa.com/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true, + "license": "BSD-3-Clause", + "optional": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/license-webpack-plugin": { + "version": "4.0.2", + "resolved": "https://npm.sinequa.com/license-webpack-plugin/-/license-webpack-plugin-4.0.2.tgz", + "integrity": "sha512-771TFWFD70G1wLTC4oU2Cw4qvtmNrIw+wRvBtn+okgHl7slJVi7zfNcdmqDL72BojM30VNJ2UHylr1o77U37Jw==", + "dev": true, + "license": "ISC", + "dependencies": { + "webpack-sources": "^3.0.0" + }, + "peerDependenciesMeta": { + "webpack": { + "optional": true + }, + "webpack-sources": { + "optional": true + } + } + }, + "node_modules/lilconfig": { + "version": "3.1.3", + "resolved": "https://npm.sinequa.com/lilconfig/-/lilconfig-3.1.3.tgz", + "integrity": "sha512-/vlFKAoH5Cgt3Ie+JLhRbwOsCQePABiU3tJ1egGvyQ+33R/vcwM2Zl2QR/LzjsBeItPt3oSVXapn+m4nQDvpzw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/antonk52" + } + }, + "node_modules/lines-and-columns": { + "version": "1.2.4", + "resolved": "https://npm.sinequa.com/lines-and-columns/-/lines-and-columns-1.2.4.tgz", + "integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==", + "license": "MIT" + }, + "node_modules/lint-staged": { + "version": "15.4.3", + "resolved": "https://npm.sinequa.com/lint-staged/-/lint-staged-15.4.3.tgz", + "integrity": "sha512-FoH1vOeouNh1pw+90S+cnuoFwRfUD9ijY2GKy5h7HS3OR7JVir2N2xrsa0+Twc1B7cW72L+88geG5cW4wIhn7g==", + "dev": true, + "license": "MIT", + "dependencies": { + "chalk": "^5.4.1", + "commander": "^13.1.0", + "debug": "^4.4.0", + "execa": "^8.0.1", + "lilconfig": "^3.1.3", + "listr2": "^8.2.5", + "micromatch": "^4.0.8", + "pidtree": "^0.6.0", + "string-argv": "^0.3.2", + "yaml": "^2.7.0" + }, + "bin": { + "lint-staged": "bin/lint-staged.js" + }, + "engines": { + "node": ">=18.12.0" + }, + "funding": { + "url": "https://opencollective.com/lint-staged" + } + }, + "node_modules/lint-staged/node_modules/ansi-regex": { + "version": "6.1.0", + "resolved": "https://npm.sinequa.com/ansi-regex/-/ansi-regex-6.1.0.tgz", + "integrity": "sha512-7HSX4QQb4CspciLpVFwyRe79O3xsIZDDLER21kERQ71oaPodF8jL725AgJMFAYbooIqolJoRLuM81SpeUkpkvA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-regex?sponsor=1" + } + }, + "node_modules/lint-staged/node_modules/ansi-styles": { + "version": "6.2.1", + "resolved": "https://npm.sinequa.com/ansi-styles/-/ansi-styles-6.2.1.tgz", + "integrity": "sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/lint-staged/node_modules/chalk": { + "version": "5.4.1", + "resolved": "https://npm.sinequa.com/chalk/-/chalk-5.4.1.tgz", + "integrity": "sha512-zgVZuo2WcZgfUEmsn6eO3kINexW8RAE4maiQ8QNs8CtpPCSyMiYsULR3HQYkm3w8FIA3SberyMJMSldGsW+U3w==", + "dev": true, + "license": "MIT", + "engines": { + "node": "^12.17.0 || ^14.13 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/lint-staged/node_modules/emoji-regex": { + "version": "10.4.0", + "resolved": "https://npm.sinequa.com/emoji-regex/-/emoji-regex-10.4.0.tgz", + "integrity": "sha512-EC+0oUMY1Rqm4O6LLrgjtYDvcVYTy7chDnM4Q7030tP4Kwj3u/pR6gP9ygnp2CJMK5Gq+9Q2oqmrFJAz01DXjw==", + "dev": true, + "license": "MIT" + }, + "node_modules/lint-staged/node_modules/eventemitter3": { + "version": "5.0.1", + "resolved": "https://npm.sinequa.com/eventemitter3/-/eventemitter3-5.0.1.tgz", + "integrity": "sha512-GWkBvjiSZK87ELrYOSESUYeVIc9mvLLf/nXalMOS5dYrgZq9o5OVkbZAVM06CVxYsCwH9BDZFPlQTlPA1j4ahA==", + "dev": true, + "license": "MIT" + }, + "node_modules/lint-staged/node_modules/listr2": { + "version": "8.2.5", + "resolved": "https://npm.sinequa.com/listr2/-/listr2-8.2.5.tgz", + "integrity": "sha512-iyAZCeyD+c1gPyE9qpFu8af0Y+MRtmKOncdGoA2S5EY8iFq99dmmvkNnHiWo+pj0s7yH7l3KPIgee77tKpXPWQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "cli-truncate": "^4.0.0", + "colorette": "^2.0.20", + "eventemitter3": "^5.0.1", + "log-update": "^6.1.0", + "rfdc": "^1.4.1", + "wrap-ansi": "^9.0.0" + }, + "engines": { + "node": ">=18.0.0" + } + }, + "node_modules/lint-staged/node_modules/string-width": { + "version": "7.2.0", + "resolved": "https://npm.sinequa.com/string-width/-/string-width-7.2.0.tgz", + "integrity": "sha512-tsaTIkKW9b4N+AEj+SVA+WhJzV7/zMhcSu78mLKWSk7cXMOSHsBKFWUs0fWwq8QyK3MgJBQRX6Gbi4kYbdvGkQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "emoji-regex": "^10.3.0", + "get-east-asian-width": "^1.0.0", + "strip-ansi": "^7.1.0" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/lint-staged/node_modules/strip-ansi": { + "version": "7.1.0", + "resolved": "https://npm.sinequa.com/strip-ansi/-/strip-ansi-7.1.0.tgz", + "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-regex": "^6.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/strip-ansi?sponsor=1" + } + }, + "node_modules/lint-staged/node_modules/wrap-ansi": { + "version": "9.0.0", + "resolved": "https://npm.sinequa.com/wrap-ansi/-/wrap-ansi-9.0.0.tgz", + "integrity": "sha512-G8ura3S+3Z2G+mkgNRq8dqaFZAuxfsxpBB8OCTGRTCtp+l/v9nbFNmCUP1BZMts3G1142MsZfn6eeUKrr4PD1Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-styles": "^6.2.1", + "string-width": "^7.0.0", + "strip-ansi": "^7.1.0" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + } + }, + "node_modules/listr2": { + "version": "8.2.4", + "resolved": "https://npm.sinequa.com/listr2/-/listr2-8.2.4.tgz", + "integrity": "sha512-opevsywziHd3zHCVQGAj8zu+Z3yHNkkoYhWIGnq54RrCVwLz0MozotJEDnKsIBLvkfLGN6BLOyAeRrYI0pKA4g==", + "dev": true, + "license": "MIT", + "dependencies": { + "cli-truncate": "^4.0.0", + "colorette": "^2.0.20", + "eventemitter3": "^5.0.1", + "log-update": "^6.1.0", + "rfdc": "^1.4.1", + "wrap-ansi": "^9.0.0" + }, + "engines": { + "node": ">=18.0.0" + } + }, + "node_modules/listr2/node_modules/ansi-regex": { + "version": "6.1.0", + "resolved": "https://npm.sinequa.com/ansi-regex/-/ansi-regex-6.1.0.tgz", + "integrity": "sha512-7HSX4QQb4CspciLpVFwyRe79O3xsIZDDLER21kERQ71oaPodF8jL725AgJMFAYbooIqolJoRLuM81SpeUkpkvA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-regex?sponsor=1" + } + }, + "node_modules/listr2/node_modules/ansi-styles": { + "version": "6.2.1", + "resolved": "https://npm.sinequa.com/ansi-styles/-/ansi-styles-6.2.1.tgz", + "integrity": "sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/listr2/node_modules/emoji-regex": { + "version": "10.4.0", + "resolved": "https://npm.sinequa.com/emoji-regex/-/emoji-regex-10.4.0.tgz", + "integrity": "sha512-EC+0oUMY1Rqm4O6LLrgjtYDvcVYTy7chDnM4Q7030tP4Kwj3u/pR6gP9ygnp2CJMK5Gq+9Q2oqmrFJAz01DXjw==", + "dev": true, + "license": "MIT" + }, + "node_modules/listr2/node_modules/eventemitter3": { + "version": "5.0.1", + "resolved": "https://npm.sinequa.com/eventemitter3/-/eventemitter3-5.0.1.tgz", + "integrity": "sha512-GWkBvjiSZK87ELrYOSESUYeVIc9mvLLf/nXalMOS5dYrgZq9o5OVkbZAVM06CVxYsCwH9BDZFPlQTlPA1j4ahA==", + "dev": true, + "license": "MIT" + }, + "node_modules/listr2/node_modules/string-width": { + "version": "7.2.0", + "resolved": "https://npm.sinequa.com/string-width/-/string-width-7.2.0.tgz", + "integrity": "sha512-tsaTIkKW9b4N+AEj+SVA+WhJzV7/zMhcSu78mLKWSk7cXMOSHsBKFWUs0fWwq8QyK3MgJBQRX6Gbi4kYbdvGkQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "emoji-regex": "^10.3.0", + "get-east-asian-width": "^1.0.0", + "strip-ansi": "^7.1.0" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/listr2/node_modules/strip-ansi": { + "version": "7.1.0", + "resolved": "https://npm.sinequa.com/strip-ansi/-/strip-ansi-7.1.0.tgz", + "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-regex": "^6.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/strip-ansi?sponsor=1" + } + }, + "node_modules/listr2/node_modules/wrap-ansi": { + "version": "9.0.0", + "resolved": "https://npm.sinequa.com/wrap-ansi/-/wrap-ansi-9.0.0.tgz", + "integrity": "sha512-G8ura3S+3Z2G+mkgNRq8dqaFZAuxfsxpBB8OCTGRTCtp+l/v9nbFNmCUP1BZMts3G1142MsZfn6eeUKrr4PD1Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-styles": "^6.2.1", + "string-width": "^7.0.0", + "strip-ansi": "^7.1.0" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + } + }, + "node_modules/lmdb": { + "version": "3.0.13", + "resolved": "https://npm.sinequa.com/lmdb/-/lmdb-3.0.13.tgz", + "integrity": "sha512-UGe+BbaSUQtAMZobTb4nHvFMrmvuAQKSeaqAX2meTEQjfsbpl5sxdHD8T72OnwD4GU9uwNhYXIVe4QGs8N9Zyw==", + "dev": true, + "hasInstallScript": true, + "license": "MIT", + "dependencies": { + "msgpackr": "^1.10.2", + "node-addon-api": "^6.1.0", + "node-gyp-build-optional-packages": "5.2.2", + "ordered-binary": "^1.4.1", + "weak-lru-cache": "^1.2.2" + }, + "bin": { + "download-lmdb-prebuilds": "bin/download-prebuilds.js" + }, + "optionalDependencies": { + "@lmdb/lmdb-darwin-arm64": "3.0.13", + "@lmdb/lmdb-darwin-x64": "3.0.13", + "@lmdb/lmdb-linux-arm": "3.0.13", + "@lmdb/lmdb-linux-arm64": "3.0.13", + "@lmdb/lmdb-linux-x64": "3.0.13", + "@lmdb/lmdb-win32-x64": "3.0.13" + } + }, + "node_modules/loader-runner": { + "version": "4.3.0", + "resolved": "https://npm.sinequa.com/loader-runner/-/loader-runner-4.3.0.tgz", + "integrity": "sha512-3R/1M+yS3j5ou80Me59j7F9IMs4PXs3VqRrm0TU3AbKPxlmpoY1TNscJV/oGJXo8qCatFGTfDbY6W6ipGOYXfg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.11.5" + } + }, + "node_modules/loader-utils": { + "version": "3.3.1", + "resolved": "https://npm.sinequa.com/loader-utils/-/loader-utils-3.3.1.tgz", + "integrity": "sha512-FMJTLMXfCLMLfJxcX9PFqX5qD88Z5MRGaZCVzfuqeZSPsyiBzs+pahDQjbIWz2QIzPZz0NX9Zy4FX3lmK6YHIg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 12.13.0" + } + }, + "node_modules/locate-path": { + "version": "7.2.0", + "resolved": "https://npm.sinequa.com/locate-path/-/locate-path-7.2.0.tgz", + "integrity": "sha512-gvVijfZvn7R+2qyPX8mAuKcFGDf6Nc61GdvGafQsHL0sBIxfKzA+usWn4GFC/bk+QdwPUD4kWFJLhElipq+0VA==", + "dev": true, + "license": "MIT", + "dependencies": { + "p-locate": "^6.0.0" + }, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/lodash.debounce": { + "version": "4.0.8", + "resolved": "https://npm.sinequa.com/lodash.debounce/-/lodash.debounce-4.0.8.tgz", + "integrity": "sha1-gteb/zCmfEAF/9XiUVMArZyk168=", + "dev": true, + "license": "MIT" + }, + "node_modules/lodash.kebabcase": { + "version": "4.1.1", + "resolved": "https://npm.sinequa.com/lodash.kebabcase/-/lodash.kebabcase-4.1.1.tgz", + "integrity": "sha512-N8XRTIMMqqDgSy4VLKPnJ/+hpGZN+PHQiJnSenYqPaVV/NCqEogTnAdZLQiGKhxX+JCs8waWq2t1XHWKOmlY8g==", + "license": "MIT" + }, + "node_modules/log-symbols": { + "version": "4.1.0", + "resolved": "https://npm.sinequa.com/log-symbols/-/log-symbols-4.1.0.tgz", + "integrity": "sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg==", + "license": "MIT", + "dependencies": { + "chalk": "^4.1.0", + "is-unicode-supported": "^0.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/log-update": { + "version": "6.1.0", + "resolved": "https://npm.sinequa.com/log-update/-/log-update-6.1.0.tgz", + "integrity": "sha512-9ie8ItPR6tjY5uYJh8K/Zrv/RMZ5VOlOWvtZdEHYSTFKZfIBPQa9tOAEeAWhd+AnIneLJ22w5fjOYtoutpWq5w==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-escapes": "^7.0.0", + "cli-cursor": "^5.0.0", + "slice-ansi": "^7.1.0", + "strip-ansi": "^7.1.0", + "wrap-ansi": "^9.0.0" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/log-update/node_modules/ansi-escapes": { + "version": "7.0.0", + "resolved": "https://npm.sinequa.com/ansi-escapes/-/ansi-escapes-7.0.0.tgz", + "integrity": "sha512-GdYO7a61mR0fOlAsvC9/rIHf7L96sBc6dEWzeOu+KAea5bZyQRPIpojrVoI4AXGJS/ycu/fBTdLrUkA4ODrvjw==", + "dev": true, + "license": "MIT", + "dependencies": { + "environment": "^1.0.0" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/log-update/node_modules/ansi-regex": { + "version": "6.1.0", + "resolved": "https://npm.sinequa.com/ansi-regex/-/ansi-regex-6.1.0.tgz", + "integrity": "sha512-7HSX4QQb4CspciLpVFwyRe79O3xsIZDDLER21kERQ71oaPodF8jL725AgJMFAYbooIqolJoRLuM81SpeUkpkvA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-regex?sponsor=1" + } + }, + "node_modules/log-update/node_modules/ansi-styles": { + "version": "6.2.1", + "resolved": "https://npm.sinequa.com/ansi-styles/-/ansi-styles-6.2.1.tgz", + "integrity": "sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/log-update/node_modules/emoji-regex": { + "version": "10.4.0", + "resolved": "https://npm.sinequa.com/emoji-regex/-/emoji-regex-10.4.0.tgz", + "integrity": "sha512-EC+0oUMY1Rqm4O6LLrgjtYDvcVYTy7chDnM4Q7030tP4Kwj3u/pR6gP9ygnp2CJMK5Gq+9Q2oqmrFJAz01DXjw==", + "dev": true, + "license": "MIT" + }, + "node_modules/log-update/node_modules/is-fullwidth-code-point": { + "version": "5.0.0", + "resolved": "https://npm.sinequa.com/is-fullwidth-code-point/-/is-fullwidth-code-point-5.0.0.tgz", + "integrity": "sha512-OVa3u9kkBbw7b8Xw5F9P+D/T9X+Z4+JruYVNapTjPYZYUznQ5YfWeFkOj606XYYW8yugTfC8Pj0hYqvi4ryAhA==", + "dev": true, + "license": "MIT", + "dependencies": { + "get-east-asian-width": "^1.0.0" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/log-update/node_modules/slice-ansi": { + "version": "7.1.0", + "resolved": "https://npm.sinequa.com/slice-ansi/-/slice-ansi-7.1.0.tgz", + "integrity": "sha512-bSiSngZ/jWeX93BqeIAbImyTbEihizcwNjFoRUIY/T1wWQsfsm2Vw1agPKylXvQTU7iASGdHhyqRlqQzfz+Htg==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-styles": "^6.2.1", + "is-fullwidth-code-point": "^5.0.0" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/chalk/slice-ansi?sponsor=1" + } + }, + "node_modules/log-update/node_modules/string-width": { + "version": "7.2.0", + "resolved": "https://npm.sinequa.com/string-width/-/string-width-7.2.0.tgz", + "integrity": "sha512-tsaTIkKW9b4N+AEj+SVA+WhJzV7/zMhcSu78mLKWSk7cXMOSHsBKFWUs0fWwq8QyK3MgJBQRX6Gbi4kYbdvGkQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "emoji-regex": "^10.3.0", + "get-east-asian-width": "^1.0.0", + "strip-ansi": "^7.1.0" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/log-update/node_modules/strip-ansi": { + "version": "7.1.0", + "resolved": "https://npm.sinequa.com/strip-ansi/-/strip-ansi-7.1.0.tgz", + "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-regex": "^6.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/strip-ansi?sponsor=1" + } + }, + "node_modules/log-update/node_modules/wrap-ansi": { + "version": "9.0.0", + "resolved": "https://npm.sinequa.com/wrap-ansi/-/wrap-ansi-9.0.0.tgz", + "integrity": "sha512-G8ura3S+3Z2G+mkgNRq8dqaFZAuxfsxpBB8OCTGRTCtp+l/v9nbFNmCUP1BZMts3G1142MsZfn6eeUKrr4PD1Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-styles": "^6.2.1", + "string-width": "^7.0.0", + "strip-ansi": "^7.1.0" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + } + }, + "node_modules/lru-cache": { + "version": "5.1.1", + "resolved": "https://npm.sinequa.com/lru-cache/-/lru-cache-5.1.1.tgz", + "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", + "dev": true, + "license": "ISC", + "dependencies": { + "yallist": "^3.0.2" + } + }, + "node_modules/magic-string": { + "version": "0.30.11", + "resolved": "https://npm.sinequa.com/magic-string/-/magic-string-0.30.11.tgz", + "integrity": "sha512-+Wri9p0QHMy+545hKww7YAu5NyzF8iomPL/RQazugQ9+Ez4Ic3mERMd8ZTX5rfK944j+560ZJi8iAwgak1Ac7A==", + "license": "MIT", + "dependencies": { + "@jridgewell/sourcemap-codec": "^1.5.0" + } + }, + "node_modules/make-dir": { + "version": "2.1.0", + "resolved": "https://npm.sinequa.com/make-dir/-/make-dir-2.1.0.tgz", + "integrity": "sha512-LS9X+dc8KLxXCb8dni79fLIIUA5VyZoyjSMCwTluaXA0o27cCK0bhXkpgw+sTXVpPy/lSO57ilRixqk0vDmtRA==", + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "pify": "^4.0.1", + "semver": "^5.6.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/make-dir/node_modules/semver": { + "version": "5.7.2", + "resolved": "https://npm.sinequa.com/semver/-/semver-5.7.2.tgz", + "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==", + "dev": true, + "license": "ISC", + "optional": true, + "bin": { + "semver": "bin/semver" + } + }, + "node_modules/make-fetch-happen": { + "version": "13.0.1", + "resolved": "https://npm.sinequa.com/make-fetch-happen/-/make-fetch-happen-13.0.1.tgz", + "integrity": "sha512-cKTUFc/rbKUd/9meOvgrpJ2WrNzymt6jfRDdwg5UCnVzv9dTpEj9JS5m3wtziXVCjluIXyL8pcaukYqezIzZQA==", + "dev": true, + "license": "ISC", + "dependencies": { + "@npmcli/agent": "^2.0.0", + "cacache": "^18.0.0", + "http-cache-semantics": "^4.1.1", + "is-lambda": "^1.0.1", + "minipass": "^7.0.2", + "minipass-fetch": "^3.0.0", + "minipass-flush": "^1.0.5", + "minipass-pipeline": "^1.2.4", + "negotiator": "^0.6.3", + "proc-log": "^4.2.0", + "promise-retry": "^2.0.1", + "ssri": "^10.0.0" + }, + "engines": { + "node": "^16.14.0 || >=18.0.0" + } + }, + "node_modules/make-plural": { + "version": "7.4.0", + "resolved": "https://npm.sinequa.com/make-plural/-/make-plural-7.4.0.tgz", + "integrity": "sha512-4/gC9KVNTV6pvYg2gFeQYTW3mWaoJt7WZE5vrp1KnQDgW92JtYZnzmZT81oj/dUTqAIu0ufI2x3dkgu3bB1tYg==", + "license": "Unicode-DFS-2016" + }, + "node_modules/math-intrinsics": { + "version": "1.1.0", + "resolved": "https://npm.sinequa.com/math-intrinsics/-/math-intrinsics-1.1.0.tgz", + "integrity": "sha512-/IXtbwEk5HTPyEwyKX6hGkYXxM9nbj64B+ilVJnC/R6B0pH5G4V3b0pVbL7DBj4tkhBAppbQUlf6F6Xl9LHu1g==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/media-typer": { + "version": "0.3.0", + "resolved": "https://npm.sinequa.com/media-typer/-/media-typer-0.3.0.tgz", + "integrity": "sha1-hxDXrwqmJvj/+hzgAWhUUmMlV0g=", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/memfs": { + "version": "4.17.0", + "resolved": "https://npm.sinequa.com/memfs/-/memfs-4.17.0.tgz", + "integrity": "sha512-4eirfZ7thblFmqFjywlTmuWVSvccHAJbn1r8qQLzmTO11qcqpohOjmY2mFce6x7x7WtskzRqApPD0hv+Oa74jg==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "@jsonjoy.com/json-pack": "^1.0.3", + "@jsonjoy.com/util": "^1.3.0", + "tree-dump": "^1.0.1", + "tslib": "^2.0.0" + }, + "engines": { + "node": ">= 4.0.0" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/streamich" + } + }, + "node_modules/merge-descriptors": { + "version": "1.0.3", + "resolved": "https://npm.sinequa.com/merge-descriptors/-/merge-descriptors-1.0.3.tgz", + "integrity": "sha512-gaNvAS7TZ897/rVaZ0nMtAyxNyi/pdbjbAwUpFQpN70GqnVfOiXpeUUMKRBmzXaSQ8DdTX4/0ms62r2K+hE6mQ==", + "dev": true, + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/merge-stream": { + "version": "2.0.0", + "resolved": "https://npm.sinequa.com/merge-stream/-/merge-stream-2.0.0.tgz", + "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==", + "dev": true, + "license": "MIT" + }, + "node_modules/merge2": { + "version": "1.4.1", + "resolved": "https://npm.sinequa.com/merge2/-/merge2-1.4.1.tgz", + "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 8" + } + }, + "node_modules/methods": { + "version": "1.1.2", + "resolved": "https://npm.sinequa.com/methods/-/methods-1.1.2.tgz", + "integrity": "sha1-VSmk1nZUE07cxSZmVoNbD4Ua/O4=", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/micromatch": { + "version": "4.0.8", + "resolved": "https://npm.sinequa.com/micromatch/-/micromatch-4.0.8.tgz", + "integrity": "sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==", + "dev": true, + "license": "MIT", + "dependencies": { + "braces": "^3.0.3", + "picomatch": "^2.3.1" + }, + "engines": { + "node": ">=8.6" + } + }, + "node_modules/micromatch/node_modules/picomatch": { + "version": "2.3.1", + "resolved": "https://npm.sinequa.com/picomatch/-/picomatch-2.3.1.tgz", + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8.6" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/mime": { + "version": "1.6.0", + "resolved": "https://npm.sinequa.com/mime/-/mime-1.6.0.tgz", + "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==", + "dev": true, + "license": "MIT", + "bin": { + "mime": "cli.js" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/mime-db": { + "version": "1.52.0", + "resolved": "https://npm.sinequa.com/mime-db/-/mime-db-1.52.0.tgz", + "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/mime-types": { + "version": "2.1.35", + "resolved": "https://npm.sinequa.com/mime-types/-/mime-types-2.1.35.tgz", + "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", + "dev": true, + "license": "MIT", + "dependencies": { + "mime-db": "1.52.0" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/mimic-fn": { + "version": "4.0.0", + "resolved": "https://npm.sinequa.com/mimic-fn/-/mimic-fn-4.0.0.tgz", + "integrity": "sha512-vqiC06CuhBTUdZH+RYl8sFrL096vA45Ok5ISO6sE/Mr1jRbGH4Csnhi8f3wKVl7x8mO4Au7Ir9D3Oyv1VYMFJw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/mimic-function": { + "version": "5.0.1", + "resolved": "https://npm.sinequa.com/mimic-function/-/mimic-function-5.0.1.tgz", + "integrity": "sha512-VP79XUPxV2CigYP3jWwAUFSku2aKqBH7uTAapFWCBqutsbmDo96KY5o8uh6U+/YSIn5OxJnXp73beVkpqMIGhA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/mini-css-extract-plugin": { + "version": "2.9.0", + "resolved": "https://npm.sinequa.com/mini-css-extract-plugin/-/mini-css-extract-plugin-2.9.0.tgz", + "integrity": "sha512-Zs1YsZVfemekSZG+44vBsYTLQORkPMwnlv+aehcxK/NLKC+EGhDB39/YePYYqx/sTk6NnYpuqikhSn7+JIevTA==", + "dev": true, + "license": "MIT", + "dependencies": { + "schema-utils": "^4.0.0", + "tapable": "^2.2.1" + }, + "engines": { + "node": ">= 12.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "webpack": "^5.0.0" + } + }, + "node_modules/minimalistic-assert": { + "version": "1.0.1", + "resolved": "https://npm.sinequa.com/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz", + "integrity": "sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A==", + "dev": true, + "license": "ISC" + }, + "node_modules/minimatch": { + "version": "9.0.5", + "resolved": "https://npm.sinequa.com/minimatch/-/minimatch-9.0.5.tgz", + "integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==", + "license": "ISC", + "dependencies": { + "brace-expansion": "^2.0.1" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/minipass": { + "version": "7.1.2", + "resolved": "https://npm.sinequa.com/minipass/-/minipass-7.1.2.tgz", + "integrity": "sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==", + "license": "ISC", + "engines": { + "node": ">=16 || 14 >=14.17" + } + }, + "node_modules/minipass-collect": { + "version": "2.0.1", + "resolved": "https://npm.sinequa.com/minipass-collect/-/minipass-collect-2.0.1.tgz", + "integrity": "sha512-D7V8PO9oaz7PWGLbCACuI1qEOsq7UKfLotx/C0Aet43fCUB/wfQ7DYeq2oR/svFJGYDHPr38SHATeaj/ZoKHKw==", + "dev": true, + "license": "ISC", + "dependencies": { + "minipass": "^7.0.3" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + } + }, + "node_modules/minipass-fetch": { + "version": "3.0.5", + "resolved": "https://npm.sinequa.com/minipass-fetch/-/minipass-fetch-3.0.5.tgz", + "integrity": "sha512-2N8elDQAtSnFV0Dk7gt15KHsS0Fyz6CbYZ360h0WTYV1Ty46li3rAXVOQj1THMNLdmrD9Vt5pBPtWtVkpwGBqg==", + "dev": true, + "license": "MIT", + "dependencies": { + "minipass": "^7.0.3", + "minipass-sized": "^1.0.3", + "minizlib": "^2.1.2" + }, + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + }, + "optionalDependencies": { + "encoding": "^0.1.13" + } + }, + "node_modules/minipass-flush": { + "version": "1.0.5", + "resolved": "https://npm.sinequa.com/minipass-flush/-/minipass-flush-1.0.5.tgz", + "integrity": "sha512-JmQSYYpPUqX5Jyn1mXaRwOda1uQ8HP5KAT/oDSLCzt1BYRhQU0/hDtsB1ufZfEEzMZ9aAVmsBw8+FWsIXlClWw==", + "dev": true, + "license": "ISC", + "dependencies": { + "minipass": "^3.0.0" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/minipass-flush/node_modules/minipass": { + "version": "3.3.6", + "resolved": "https://npm.sinequa.com/minipass/-/minipass-3.3.6.tgz", + "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==", + "dev": true, + "license": "ISC", + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/minipass-flush/node_modules/yallist": { + "version": "4.0.0", + "resolved": "https://npm.sinequa.com/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "dev": true, + "license": "ISC" + }, + "node_modules/minipass-pipeline": { + "version": "1.2.4", + "resolved": "https://npm.sinequa.com/minipass-pipeline/-/minipass-pipeline-1.2.4.tgz", + "integrity": "sha512-xuIq7cIOt09RPRJ19gdi4b+RiNvDFYe5JH+ggNvBqGqpQXcru3PcRmOZuHBKWK1Txf9+cQ+HMVN4d6z46LZP7A==", + "dev": true, + "license": "ISC", + "dependencies": { + "minipass": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/minipass-pipeline/node_modules/minipass": { + "version": "3.3.6", + "resolved": "https://npm.sinequa.com/minipass/-/minipass-3.3.6.tgz", + "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==", + "dev": true, + "license": "ISC", + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/minipass-pipeline/node_modules/yallist": { + "version": "4.0.0", + "resolved": "https://npm.sinequa.com/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "dev": true, + "license": "ISC" + }, + "node_modules/minipass-sized": { + "version": "1.0.3", + "resolved": "https://npm.sinequa.com/minipass-sized/-/minipass-sized-1.0.3.tgz", + "integrity": "sha512-MbkQQ2CTiBMlA2Dm/5cY+9SWFEN8pzzOXi6rlM5Xxq0Yqbda5ZQy9sU75a673FE9ZK0Zsbr6Y5iP6u9nktfg2g==", + "dev": true, + "license": "ISC", + "dependencies": { + "minipass": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/minipass-sized/node_modules/minipass": { + "version": "3.3.6", + "resolved": "https://npm.sinequa.com/minipass/-/minipass-3.3.6.tgz", + "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==", + "dev": true, + "license": "ISC", + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/minipass-sized/node_modules/yallist": { + "version": "4.0.0", + "resolved": "https://npm.sinequa.com/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "dev": true, + "license": "ISC" + }, + "node_modules/minizlib": { + "version": "2.1.2", + "resolved": "https://npm.sinequa.com/minizlib/-/minizlib-2.1.2.tgz", + "integrity": "sha512-bAxsR8BVfj60DWXHE3u30oHzfl4G7khkSuPW+qvpd7jFRHm7dLxOjUk1EHACJ/hxLY8phGJ0YhYHZo7jil7Qdg==", + "dev": true, + "license": "MIT", + "dependencies": { + "minipass": "^3.0.0", + "yallist": "^4.0.0" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/minizlib/node_modules/minipass": { + "version": "3.3.6", + "resolved": "https://npm.sinequa.com/minipass/-/minipass-3.3.6.tgz", + "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==", + "dev": true, + "license": "ISC", + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/minizlib/node_modules/yallist": { + "version": "4.0.0", + "resolved": "https://npm.sinequa.com/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "dev": true, + "license": "ISC" + }, + "node_modules/mkdirp": { + "version": "1.0.4", + "resolved": "https://npm.sinequa.com/mkdirp/-/mkdirp-1.0.4.tgz", + "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==", + "dev": true, + "license": "MIT", + "bin": { + "mkdirp": "bin/cmd.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/moo": { + "version": "0.5.2", + "resolved": "https://npm.sinequa.com/moo/-/moo-0.5.2.tgz", + "integrity": "sha512-iSAJLHYKnX41mKcJKjqvnAN9sf0LMDTXDEvFv+ffuRR9a1MIuXLjMNL6EsnDHSkKLTWNqQQ5uo61P4EbU4NU+Q==", + "license": "BSD-3-Clause" + }, + "node_modules/mrmime": { + "version": "2.0.0", + "resolved": "https://npm.sinequa.com/mrmime/-/mrmime-2.0.0.tgz", + "integrity": "sha512-eu38+hdgojoyq63s+yTpN4XMBdt5l8HhMhc4VKLO9KM5caLIBvUm4thi7fFaxyTmCKeNnXZ5pAlBwCUnhA09uw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10" + } + }, + "node_modules/ms": { + "version": "2.1.3", + "resolved": "https://npm.sinequa.com/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", + "dev": true, + "license": "MIT" + }, + "node_modules/msgpackr": { + "version": "1.11.2", + "resolved": "https://npm.sinequa.com/msgpackr/-/msgpackr-1.11.2.tgz", + "integrity": "sha512-F9UngXRlPyWCDEASDpTf6c9uNhGPTqnTeLVt7bN+bU1eajoR/8V9ys2BRaV5C/e5ihE6sJ9uPIKaYt6bFuO32g==", + "dev": true, + "license": "MIT", + "optionalDependencies": { + "msgpackr-extract": "^3.0.2" + } + }, + "node_modules/msgpackr-extract": { + "version": "3.0.3", + "resolved": "https://npm.sinequa.com/msgpackr-extract/-/msgpackr-extract-3.0.3.tgz", + "integrity": "sha512-P0efT1C9jIdVRefqjzOQ9Xml57zpOXnIuS+csaB4MdZbTdmGDLo8XhzBG1N7aO11gKDDkJvBLULeFTo46wwreA==", + "dev": true, + "hasInstallScript": true, + "license": "MIT", + "optional": true, + "dependencies": { + "node-gyp-build-optional-packages": "5.2.2" + }, + "bin": { + "download-msgpackr-prebuilds": "bin/download-prebuilds.js" + }, + "optionalDependencies": { + "@msgpackr-extract/msgpackr-extract-darwin-arm64": "3.0.3", + "@msgpackr-extract/msgpackr-extract-darwin-x64": "3.0.3", + "@msgpackr-extract/msgpackr-extract-linux-arm": "3.0.3", + "@msgpackr-extract/msgpackr-extract-linux-arm64": "3.0.3", + "@msgpackr-extract/msgpackr-extract-linux-x64": "3.0.3", + "@msgpackr-extract/msgpackr-extract-win32-x64": "3.0.3" + } + }, + "node_modules/multicast-dns": { + "version": "7.2.5", + "resolved": "https://npm.sinequa.com/multicast-dns/-/multicast-dns-7.2.5.tgz", + "integrity": "sha512-2eznPJP8z2BFLX50tf0LuODrpINqP1RVIm/CObbTcBRITQgmC/TjcREF1NeTBzIcR5XO/ukWo+YHOjBbFwIupg==", + "dev": true, + "license": "MIT", + "dependencies": { + "dns-packet": "^5.2.2", + "thunky": "^1.0.2" + }, + "bin": { + "multicast-dns": "cli.js" + } + }, + "node_modules/mute-stream": { + "version": "1.0.0", + "resolved": "https://npm.sinequa.com/mute-stream/-/mute-stream-1.0.0.tgz", + "integrity": "sha512-avsJQhyd+680gKXyG/sQc0nXaC6rBkPOfyHYcFb9+hdkqQkR9bdnkJ0AMZhke0oesPqIO+mFFJ+IdBc7mst4IA==", + "dev": true, + "license": "ISC", + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/mz": { + "version": "2.7.0", + "resolved": "https://npm.sinequa.com/mz/-/mz-2.7.0.tgz", + "integrity": "sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "any-promise": "^1.0.0", + "object-assign": "^4.0.1", + "thenify-all": "^1.0.0" + } + }, + "node_modules/nanoid": { + "version": "3.3.8", + "resolved": "https://npm.sinequa.com/nanoid/-/nanoid-3.3.8.tgz", + "integrity": "sha512-WNLf5Sd8oZxOm+TzppcYk8gVOgP+l58xNy58D0nbUnOxOWRWvlcCV4kUF7ltmI6PsrLl/BgKEyS4mqsGChFN0w==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "bin": { + "nanoid": "bin/nanoid.cjs" + }, + "engines": { + "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" + } + }, + "node_modules/needle": { + "version": "3.3.1", + "resolved": "https://npm.sinequa.com/needle/-/needle-3.3.1.tgz", + "integrity": "sha512-6k0YULvhpw+RoLNiQCRKOl09Rv1dPLr8hHnVjHqdolKwDrdNyk+Hmrthi4lIGPPz3r39dLx0hsF5s40sZ3Us4Q==", + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "iconv-lite": "^0.6.3", + "sax": "^1.2.4" + }, + "bin": { + "needle": "bin/needle" + }, + "engines": { + "node": ">= 4.4.x" + } + }, + "node_modules/needle/node_modules/iconv-lite": { + "version": "0.6.3", + "resolved": "https://npm.sinequa.com/iconv-lite/-/iconv-lite-0.6.3.tgz", + "integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==", + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "safer-buffer": ">= 2.1.2 < 3.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/negotiator": { + "version": "0.6.4", + "resolved": "https://npm.sinequa.com/negotiator/-/negotiator-0.6.4.tgz", + "integrity": "sha512-myRT3DiWPHqho5PrJaIRyaMv2kgYf0mUVgBNOYMuCH5Ki1yEiQaf/ZJuQ62nvpc44wL5WDbTX7yGJi1Neevw8w==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/neo-async": { + "version": "2.6.2", + "resolved": "https://npm.sinequa.com/neo-async/-/neo-async-2.6.2.tgz", + "integrity": "sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==", + "dev": true, + "license": "MIT" + }, + "node_modules/ngx-sonner": { + "version": "1.0.0", + "resolved": "https://npm.sinequa.com/ngx-sonner/-/ngx-sonner-1.0.0.tgz", + "integrity": "sha512-eymqTMVGrQAm0R9b+/koA+cymyTmE86q0giZI611apEwH3MDdIB6wEDwqc4DPSQ+AQJlgBz4vJxTFCOY+lXCzQ==", + "license": "MIT", + "dependencies": { + "tslib": "^2.3.0" + }, + "peerDependencies": { + "@angular/common": ">=17.3.0", + "@angular/core": ">=17.3.0" + } + }, + "node_modules/nice-napi": { + "version": "1.0.2", + "resolved": "https://npm.sinequa.com/nice-napi/-/nice-napi-1.0.2.tgz", + "integrity": "sha512-px/KnJAJZf5RuBGcfD+Sp2pAKq0ytz8j+1NehvgIGFkvtvFrDM3T8E4x/JJODXK9WZow8RRGrbA9QQ3hs+pDhA==", + "dev": true, + "hasInstallScript": true, + "license": "MIT", + "optional": true, + "os": [ + "!win32" + ], + "dependencies": { + "node-addon-api": "^3.0.0", + "node-gyp-build": "^4.2.2" + } + }, + "node_modules/nice-napi/node_modules/node-addon-api": { + "version": "3.2.1", + "resolved": "https://npm.sinequa.com/node-addon-api/-/node-addon-api-3.2.1.tgz", + "integrity": "sha512-mmcei9JghVNDYydghQmeDX8KoAm0FAiYyIcUt/N4nhyAipB17pllZQDOJD2fotxABnt4Mdz+dKTO7eftLg4d0A==", + "dev": true, + "license": "MIT", + "optional": true + }, + "node_modules/node-addon-api": { + "version": "6.1.0", + "resolved": "https://npm.sinequa.com/node-addon-api/-/node-addon-api-6.1.0.tgz", + "integrity": "sha512-+eawOlIgy680F0kBzPUNFhMZGtJ1YmqM6l4+Crf4IkImjYrO/mqPwRMh352g23uIaQKFItcQ64I7KMaJxHgAVA==", + "dev": true, + "license": "MIT" + }, + "node_modules/node-fetch": { + "version": "2.7.0", + "resolved": "https://npm.sinequa.com/node-fetch/-/node-fetch-2.7.0.tgz", + "integrity": "sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A==", + "license": "MIT", + "dependencies": { + "whatwg-url": "^5.0.0" + }, + "engines": { + "node": "4.x || >=6.0.0" + }, + "peerDependencies": { + "encoding": "^0.1.0" + }, + "peerDependenciesMeta": { + "encoding": { + "optional": true + } + } + }, + "node_modules/node-forge": { + "version": "1.3.1", + "resolved": "https://npm.sinequa.com/node-forge/-/node-forge-1.3.1.tgz", + "integrity": "sha512-dPEtOeMvF9VMcYV/1Wb8CPoVAXtp6MKMlcbAt4ddqmGqUJ6fQZFXkNZNkNlfevtNkGtaSoXf/vNNNSvgrdXwtA==", + "dev": true, + "license": "(BSD-3-Clause OR GPL-2.0)", + "engines": { + "node": ">= 6.13.0" + } + }, + "node_modules/node-gyp": { + "version": "10.3.1", + "resolved": "https://npm.sinequa.com/node-gyp/-/node-gyp-10.3.1.tgz", + "integrity": "sha512-Pp3nFHBThHzVtNY7U6JfPjvT/DTE8+o/4xKsLQtBoU+j2HLsGlhcfzflAoUreaJbNmYnX+LlLi0qjV8kpyO6xQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "env-paths": "^2.2.0", + "exponential-backoff": "^3.1.1", + "glob": "^10.3.10", + "graceful-fs": "^4.2.6", + "make-fetch-happen": "^13.0.0", + "nopt": "^7.0.0", + "proc-log": "^4.1.0", + "semver": "^7.3.5", + "tar": "^6.2.1", + "which": "^4.0.0" + }, + "bin": { + "node-gyp": "bin/node-gyp.js" + }, + "engines": { + "node": "^16.14.0 || >=18.0.0" + } + }, + "node_modules/node-gyp-build": { + "version": "4.8.4", + "resolved": "https://npm.sinequa.com/node-gyp-build/-/node-gyp-build-4.8.4.tgz", + "integrity": "sha512-LA4ZjwlnUblHVgq0oBF3Jl/6h/Nvs5fzBLwdEF4nuxnFdsfajde4WfxtJr3CaiH+F6ewcIB/q4jQ4UzPyid+CQ==", + "dev": true, + "license": "MIT", + "optional": true, + "bin": { + "node-gyp-build": "bin.js", + "node-gyp-build-optional": "optional.js", + "node-gyp-build-test": "build-test.js" + } + }, + "node_modules/node-gyp-build-optional-packages": { + "version": "5.2.2", + "resolved": "https://npm.sinequa.com/node-gyp-build-optional-packages/-/node-gyp-build-optional-packages-5.2.2.tgz", + "integrity": "sha512-s+w+rBWnpTMwSFbaE0UXsRlg7hU4FjekKU4eyAih5T8nJuNZT1nNsskXpxmeqSK9UzkBl6UgRlnKc8hz8IEqOw==", + "dev": true, + "license": "MIT", + "dependencies": { + "detect-libc": "^2.0.1" + }, + "bin": { + "node-gyp-build-optional-packages": "bin.js", + "node-gyp-build-optional-packages-optional": "optional.js", + "node-gyp-build-optional-packages-test": "build-test.js" + } + }, + "node_modules/node-gyp/node_modules/isexe": { + "version": "3.1.1", + "resolved": "https://npm.sinequa.com/isexe/-/isexe-3.1.1.tgz", + "integrity": "sha512-LpB/54B+/2J5hqQ7imZHfdU31OlgQqx7ZicVlkm9kzg9/w8GKLEcFfJl/t7DCEDueOyBAD6zCCwTO6Fzs0NoEQ==", + "dev": true, + "license": "ISC", + "engines": { + "node": ">=16" + } + }, + "node_modules/node-gyp/node_modules/which": { + "version": "4.0.0", + "resolved": "https://npm.sinequa.com/which/-/which-4.0.0.tgz", + "integrity": "sha512-GlaYyEb07DPxYCKhKzplCWBJtvxZcZMrL+4UkrTSJHHPyZU4mYYTv3qaOe77H7EODLSSopAUFAc6W8U4yqvscg==", + "dev": true, + "license": "ISC", + "dependencies": { + "isexe": "^3.1.1" + }, + "bin": { + "node-which": "bin/which.js" + }, + "engines": { + "node": "^16.13.0 || >=18.0.0" + } + }, + "node_modules/node-releases": { + "version": "2.0.19", + "resolved": "https://npm.sinequa.com/node-releases/-/node-releases-2.0.19.tgz", + "integrity": "sha512-xxOWJsBKtzAq7DY0J+DTzuz58K8e7sJbdgwkbMWQe8UYB6ekmsQ45q0M/tJDsGaZmbC+l7n57UV8Hl5tHxO9uw==", + "dev": true, + "license": "MIT" + }, + "node_modules/nopt": { + "version": "7.2.1", + "resolved": "https://npm.sinequa.com/nopt/-/nopt-7.2.1.tgz", + "integrity": "sha512-taM24ViiimT/XntxbPyJQzCG+p4EKOpgD3mxFwW38mGjVUrfERQOeY4EDHjdnptttfHuHQXFx+lTP08Q+mLa/w==", + "dev": true, + "license": "ISC", + "dependencies": { + "abbrev": "^2.0.0" + }, + "bin": { + "nopt": "bin/nopt.js" + }, + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/normalize-package-data": { + "version": "6.0.2", + "resolved": "https://npm.sinequa.com/normalize-package-data/-/normalize-package-data-6.0.2.tgz", + "integrity": "sha512-V6gygoYb/5EmNI+MEGrWkC+e6+Rr7mTmfHrxDbLzxQogBkgzo76rkok0Am6thgSF7Mv2nLOajAJj5vDJZEFn7g==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "hosted-git-info": "^7.0.0", + "semver": "^7.3.5", + "validate-npm-package-license": "^3.0.4" + }, + "engines": { + "node": "^16.14.0 || >=18.0.0" + } + }, + "node_modules/normalize-path": { + "version": "3.0.0", + "resolved": "https://npm.sinequa.com/normalize-path/-/normalize-path-3.0.0.tgz", + "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/normalize-range": { + "version": "0.1.2", + "resolved": "https://npm.sinequa.com/normalize-range/-/normalize-range-0.1.2.tgz", + "integrity": "sha1-LRDAa9/TEuqXd2laTShDlFa3WUI=", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/npm-bundled": { + "version": "3.0.1", + "resolved": "https://npm.sinequa.com/npm-bundled/-/npm-bundled-3.0.1.tgz", + "integrity": "sha512-+AvaheE/ww1JEwRHOrn4WHNzOxGtVp+adrg2AeZS/7KuxGUYFuBta98wYpfHBbJp6Tg6j1NKSEVHNcfZzJHQwQ==", + "dev": true, + "license": "ISC", + "dependencies": { + "npm-normalize-package-bin": "^3.0.0" + }, + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/npm-install-checks": { + "version": "6.3.0", + "resolved": "https://npm.sinequa.com/npm-install-checks/-/npm-install-checks-6.3.0.tgz", + "integrity": "sha512-W29RiK/xtpCGqn6f3ixfRYGk+zRyr+Ew9F2E20BfXxT5/euLdA/Nm7fO7OeTGuAmTs30cpgInyJ0cYe708YTZw==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "semver": "^7.1.1" + }, + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/npm-normalize-package-bin": { + "version": "3.0.1", + "resolved": "https://npm.sinequa.com/npm-normalize-package-bin/-/npm-normalize-package-bin-3.0.1.tgz", + "integrity": "sha512-dMxCf+zZ+3zeQZXKxmyuCKlIDPGuv8EF940xbkC4kQVDTtqoh6rJFO+JTKSA6/Rwi0getWmtuy4Itup0AMcaDQ==", + "dev": true, + "license": "ISC", + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/npm-package-arg": { + "version": "11.0.3", + "resolved": "https://npm.sinequa.com/npm-package-arg/-/npm-package-arg-11.0.3.tgz", + "integrity": "sha512-sHGJy8sOC1YraBywpzQlIKBE4pBbGbiF95U6Auspzyem956E0+FtDtsx1ZxlOJkQCZ1AFXAY/yuvtFYrOxF+Bw==", + "dev": true, + "license": "ISC", + "dependencies": { + "hosted-git-info": "^7.0.0", + "proc-log": "^4.0.0", + "semver": "^7.3.5", + "validate-npm-package-name": "^5.0.0" + }, + "engines": { + "node": "^16.14.0 || >=18.0.0" + } + }, + "node_modules/npm-packlist": { + "version": "8.0.2", + "resolved": "https://npm.sinequa.com/npm-packlist/-/npm-packlist-8.0.2.tgz", + "integrity": "sha512-shYrPFIS/JLP4oQmAwDyk5HcyysKW8/JLTEA32S0Z5TzvpaeeX2yMFfoK1fjEBnCBvVyIB/Jj/GBFdm0wsgzbA==", + "dev": true, + "license": "ISC", + "dependencies": { + "ignore-walk": "^6.0.4" + }, + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/npm-pick-manifest": { + "version": "9.1.0", + "resolved": "https://npm.sinequa.com/npm-pick-manifest/-/npm-pick-manifest-9.1.0.tgz", + "integrity": "sha512-nkc+3pIIhqHVQr085X9d2JzPzLyjzQS96zbruppqC9aZRm/x8xx6xhI98gHtsfELP2bE+loHq8ZaHFHhe+NauA==", + "dev": true, + "license": "ISC", + "dependencies": { + "npm-install-checks": "^6.0.0", + "npm-normalize-package-bin": "^3.0.0", + "npm-package-arg": "^11.0.0", + "semver": "^7.3.5" + }, + "engines": { + "node": "^16.14.0 || >=18.0.0" + } + }, + "node_modules/npm-registry-fetch": { + "version": "17.1.0", + "resolved": "https://npm.sinequa.com/npm-registry-fetch/-/npm-registry-fetch-17.1.0.tgz", + "integrity": "sha512-5+bKQRH0J1xG1uZ1zMNvxW0VEyoNWgJpY9UDuluPFLKDfJ9u2JmmjmTJV1srBGQOROfdBMiVvnH2Zvpbm+xkVA==", + "dev": true, + "license": "ISC", + "dependencies": { + "@npmcli/redact": "^2.0.0", + "jsonparse": "^1.3.1", + "make-fetch-happen": "^13.0.0", + "minipass": "^7.0.2", + "minipass-fetch": "^3.0.0", + "minizlib": "^2.1.2", + "npm-package-arg": "^11.0.0", + "proc-log": "^4.0.0" + }, + "engines": { + "node": "^16.14.0 || >=18.0.0" + } + }, + "node_modules/npm-run-path": { + "version": "5.3.0", + "resolved": "https://npm.sinequa.com/npm-run-path/-/npm-run-path-5.3.0.tgz", + "integrity": "sha512-ppwTtiJZq0O/ai0z7yfudtBpWIoxM8yE6nHi1X47eFR2EWORqfbu6CnPlNsjeN683eT0qG6H/Pyf9fCcvjnnnQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "path-key": "^4.0.0" + }, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/npm-run-path/node_modules/path-key": { + "version": "4.0.0", + "resolved": "https://npm.sinequa.com/path-key/-/path-key-4.0.0.tgz", + "integrity": "sha512-haREypq7xkM7ErfgIyA0z+Bj4AGKlMSdlQE2jvJo6huWD1EdkKYV+G/T4nq0YEF2vgTT8kqMFKo1uHn950r4SQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/nth-check": { + "version": "2.1.1", + "resolved": "https://npm.sinequa.com/nth-check/-/nth-check-2.1.1.tgz", + "integrity": "sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "boolbase": "^1.0.0" + }, + "funding": { + "url": "https://github.com/fb55/nth-check?sponsor=1" + } + }, + "node_modules/object-assign": { + "version": "4.1.1", + "resolved": "https://npm.sinequa.com/object-assign/-/object-assign-4.1.1.tgz", + "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/object-hash": { + "version": "3.0.0", + "resolved": "https://npm.sinequa.com/object-hash/-/object-hash-3.0.0.tgz", + "integrity": "sha512-RSn9F68PjH9HqtltsSnqYC1XXoWe9Bju5+213R98cNGttag9q9yAOTzdbsqvIa7aNm5WffBZFpWYr2aWrklWAw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 6" + } + }, + "node_modules/object-inspect": { + "version": "1.13.4", + "resolved": "https://npm.sinequa.com/object-inspect/-/object-inspect-1.13.4.tgz", + "integrity": "sha512-W67iLl4J2EXEGTbfeHCffrjDfitvLANg0UlX3wFUUSTx92KXRFegMHUVgSqE+wvhAbi4WqjGg9czysTV2Epbew==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/obuf": { + "version": "1.1.2", + "resolved": "https://npm.sinequa.com/obuf/-/obuf-1.1.2.tgz", + "integrity": "sha512-PX1wu0AmAdPqOL1mWhqmlOd8kOIZQwGZw6rh7uby9fTc5lhaOWFLX3I6R1hrF9k3zUY40e6igsLGkDXK92LJNg==", + "dev": true, + "license": "MIT" + }, + "node_modules/on-finished": { + "version": "2.4.1", + "resolved": "https://npm.sinequa.com/on-finished/-/on-finished-2.4.1.tgz", + "integrity": "sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==", + "dev": true, + "license": "MIT", + "dependencies": { + "ee-first": "1.1.1" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/on-headers": { + "version": "1.0.2", + "resolved": "https://npm.sinequa.com/on-headers/-/on-headers-1.0.2.tgz", + "integrity": "sha512-pZAE+FJLoyITytdqK0U5s+FIpjN0JP3OzFi/u8Rx+EV5/W+JTWGXG8xFzevE7AjBfDqHv/8vL8qQsIhHnqRkrA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/once": { + "version": "1.4.0", + "resolved": "https://npm.sinequa.com/once/-/once-1.4.0.tgz", + "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", + "license": "ISC", + "dependencies": { + "wrappy": "1" + } + }, + "node_modules/onetime": { + "version": "6.0.0", + "resolved": "https://npm.sinequa.com/onetime/-/onetime-6.0.0.tgz", + "integrity": "sha512-1FlR+gjXK7X+AsAHso35MnyN5KqGwJRi/31ft6x0M194ht7S+rWAvd7PHss9xSKMzE0asv1pyIHaJYq+BbacAQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "mimic-fn": "^4.0.0" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/open": { + "version": "10.1.0", + "resolved": "https://npm.sinequa.com/open/-/open-10.1.0.tgz", + "integrity": "sha512-mnkeQ1qP5Ue2wd+aivTD3NHd/lZ96Lu0jgf0pwktLPtx6cTZiH7tyeGRRHs0zX0rbrahXPnXlUnbeXyaBBuIaw==", + "dev": true, + "license": "MIT", + "dependencies": { + "default-browser": "^5.2.1", + "define-lazy-prop": "^3.0.0", + "is-inside-container": "^1.0.0", + "is-wsl": "^3.1.0" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/ora": { + "version": "5.4.1", + "resolved": "https://npm.sinequa.com/ora/-/ora-5.4.1.tgz", + "integrity": "sha512-5b6Y85tPxZZ7QytO+BQzysW31HJku27cRIlkbAXaNx+BdcVi+LlRFmVXzeF6a7JCwJpyw5c4b+YSVImQIrBpuQ==", + "license": "MIT", + "dependencies": { + "bl": "^4.1.0", + "chalk": "^4.1.0", + "cli-cursor": "^3.1.0", + "cli-spinners": "^2.5.0", + "is-interactive": "^1.0.0", + "is-unicode-supported": "^0.1.0", + "log-symbols": "^4.1.0", + "strip-ansi": "^6.0.0", + "wcwidth": "^1.0.1" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/ora/node_modules/cli-cursor": { + "version": "3.1.0", + "resolved": "https://npm.sinequa.com/cli-cursor/-/cli-cursor-3.1.0.tgz", + "integrity": "sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw==", + "license": "MIT", + "dependencies": { + "restore-cursor": "^3.1.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/ora/node_modules/mimic-fn": { + "version": "2.1.0", + "resolved": "https://npm.sinequa.com/mimic-fn/-/mimic-fn-2.1.0.tgz", + "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==", + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/ora/node_modules/onetime": { + "version": "5.1.2", + "resolved": "https://npm.sinequa.com/onetime/-/onetime-5.1.2.tgz", + "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==", + "license": "MIT", + "dependencies": { + "mimic-fn": "^2.1.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/ora/node_modules/restore-cursor": { + "version": "3.1.0", + "resolved": "https://npm.sinequa.com/restore-cursor/-/restore-cursor-3.1.0.tgz", + "integrity": "sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA==", + "license": "MIT", + "dependencies": { + "onetime": "^5.1.0", + "signal-exit": "^3.0.2" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/ora/node_modules/signal-exit": { + "version": "3.0.7", + "resolved": "https://npm.sinequa.com/signal-exit/-/signal-exit-3.0.7.tgz", + "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==", + "license": "ISC" + }, + "node_modules/ordered-binary": { + "version": "1.5.3", + "resolved": "https://npm.sinequa.com/ordered-binary/-/ordered-binary-1.5.3.tgz", + "integrity": "sha512-oGFr3T+pYdTGJ+YFEILMpS3es+GiIbs9h/XQrclBXUtd44ey7XwfsMzM31f64I1SQOawDoDr/D823kNCADI8TA==", + "dev": true, + "license": "MIT" + }, + "node_modules/os-tmpdir": { + "version": "1.0.2", + "resolved": "https://npm.sinequa.com/os-tmpdir/-/os-tmpdir-1.0.2.tgz", + "integrity": "sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ=", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/p-limit": { + "version": "4.0.0", + "resolved": "https://npm.sinequa.com/p-limit/-/p-limit-4.0.0.tgz", + "integrity": "sha512-5b0R4txpzjPWVw/cXXUResoD4hb6U/x9BH08L7nw+GN1sezDzPdxeRvpc9c433fZhBan/wusjbCsqwqm4EIBIQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "yocto-queue": "^1.0.0" + }, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/p-locate": { + "version": "6.0.0", + "resolved": "https://npm.sinequa.com/p-locate/-/p-locate-6.0.0.tgz", + "integrity": "sha512-wPrq66Llhl7/4AGC6I+cqxT07LhXvWL08LNXz1fENOw0Ap4sRZZ/gZpTTJ5jpurzzzfS2W/Ge9BY3LgLjCShcw==", + "dev": true, + "license": "MIT", + "dependencies": { + "p-limit": "^4.0.0" + }, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/p-map": { + "version": "4.0.0", + "resolved": "https://npm.sinequa.com/p-map/-/p-map-4.0.0.tgz", + "integrity": "sha512-/bjOqmgETBYB5BoEeGVea8dmvHb2m9GLy1E9W43yeyfP6QQCZGFNa+XRceJEuDB6zqr+gKpIAmlLebMpykw/MQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "aggregate-error": "^3.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/p-retry": { + "version": "6.2.1", + "resolved": "https://npm.sinequa.com/p-retry/-/p-retry-6.2.1.tgz", + "integrity": "sha512-hEt02O4hUct5wtwg4H4KcWgDdm+l1bOaEy/hWzd8xtXB9BqxTWBBhb+2ImAtH4Cv4rPjV76xN3Zumqk3k3AhhQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/retry": "0.12.2", + "is-network-error": "^1.0.0", + "retry": "^0.13.1" + }, + "engines": { + "node": ">=16.17" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/p-retry/node_modules/retry": { + "version": "0.13.1", + "resolved": "https://npm.sinequa.com/retry/-/retry-0.13.1.tgz", + "integrity": "sha512-XQBQ3I8W1Cge0Seh+6gjj03LbmRFWuoszgK9ooCpwYIrhhoO80pfq4cUkU5DkknwfOfFteRwlZ56PYOGYyFWdg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 4" + } + }, + "node_modules/package-json-from-dist": { + "version": "1.0.1", + "resolved": "https://npm.sinequa.com/package-json-from-dist/-/package-json-from-dist-1.0.1.tgz", + "integrity": "sha512-UEZIS3/by4OC8vL3P2dTXRETpebLI2NiI5vIrjaD/5UtrkFX/tNbwjTSRAGC/+7CAo2pIcBaRgWmcBBHcsaCIw==", + "license": "BlueOak-1.0.0" + }, + "node_modules/pacote": { + "version": "18.0.6", + "resolved": "https://npm.sinequa.com/pacote/-/pacote-18.0.6.tgz", + "integrity": "sha512-+eK3G27SMwsB8kLIuj4h1FUhHtwiEUo21Tw8wNjmvdlpOEr613edv+8FUsTj/4F/VN5ywGE19X18N7CC2EJk6A==", + "dev": true, + "license": "ISC", + "dependencies": { + "@npmcli/git": "^5.0.0", + "@npmcli/installed-package-contents": "^2.0.1", + "@npmcli/package-json": "^5.1.0", + "@npmcli/promise-spawn": "^7.0.0", + "@npmcli/run-script": "^8.0.0", + "cacache": "^18.0.0", + "fs-minipass": "^3.0.0", + "minipass": "^7.0.2", + "npm-package-arg": "^11.0.0", + "npm-packlist": "^8.0.0", + "npm-pick-manifest": "^9.0.0", + "npm-registry-fetch": "^17.0.0", + "proc-log": "^4.0.0", + "promise-retry": "^2.0.1", + "sigstore": "^2.2.0", + "ssri": "^10.0.0", + "tar": "^6.1.11" + }, + "bin": { + "pacote": "bin/index.js" + }, + "engines": { + "node": "^16.14.0 || >=18.0.0" + } + }, + "node_modules/parent-module": { + "version": "1.0.1", + "resolved": "https://npm.sinequa.com/parent-module/-/parent-module-1.0.1.tgz", + "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==", + "license": "MIT", + "dependencies": { + "callsites": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/parse-json": { + "version": "5.2.0", + "resolved": "https://npm.sinequa.com/parse-json/-/parse-json-5.2.0.tgz", + "integrity": "sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==", + "license": "MIT", + "dependencies": { + "@babel/code-frame": "^7.0.0", + "error-ex": "^1.3.1", + "json-parse-even-better-errors": "^2.3.0", + "lines-and-columns": "^1.1.6" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/parse-json/node_modules/json-parse-even-better-errors": { + "version": "2.3.1", + "resolved": "https://npm.sinequa.com/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz", + "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==", + "license": "MIT" + }, + "node_modules/parse-node-version": { + "version": "1.0.1", + "resolved": "https://npm.sinequa.com/parse-node-version/-/parse-node-version-1.0.1.tgz", + "integrity": "sha512-3YHlOa/JgH6Mnpr05jP9eDG254US9ek25LyIxZlDItp2iJtwyaXQb57lBYLdT3MowkUFYEV2XXNAYIPlESvJlA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/parse5": { + "version": "7.2.1", + "resolved": "https://npm.sinequa.com/parse5/-/parse5-7.2.1.tgz", + "integrity": "sha512-BuBYQYlv1ckiPdQi/ohiivi9Sagc9JG+Ozs0r7b/0iK3sKmrb0b9FdWdBbOdx6hBCM/F9Ir82ofnBhtZOjCRPQ==", + "devOptional": true, + "license": "MIT", + "dependencies": { + "entities": "^4.5.0" + }, + "funding": { + "url": "https://github.com/inikulin/parse5?sponsor=1" + } + }, + "node_modules/parse5-html-rewriting-stream": { + "version": "7.0.0", + "resolved": "https://npm.sinequa.com/parse5-html-rewriting-stream/-/parse5-html-rewriting-stream-7.0.0.tgz", + "integrity": "sha512-mazCyGWkmCRWDI15Zp+UiCqMp/0dgEmkZRvhlsqqKYr4SsVm/TvnSpD9fCvqCA2zoWJcfRym846ejWBBHRiYEg==", + "dev": true, + "license": "MIT", + "dependencies": { + "entities": "^4.3.0", + "parse5": "^7.0.0", + "parse5-sax-parser": "^7.0.0" + }, + "funding": { + "url": "https://github.com/inikulin/parse5?sponsor=1" + } + }, + "node_modules/parse5-sax-parser": { + "version": "7.0.0", + "resolved": "https://npm.sinequa.com/parse5-sax-parser/-/parse5-sax-parser-7.0.0.tgz", + "integrity": "sha512-5A+v2SNsq8T6/mG3ahcz8ZtQ0OUFTatxPbeidoMB7tkJSGDY3tdfl4MHovtLQHkEn5CGxijNWRQHhRQ6IRpXKg==", + "dev": true, + "license": "MIT", + "dependencies": { + "parse5": "^7.0.0" + }, + "funding": { + "url": "https://github.com/inikulin/parse5?sponsor=1" + } + }, + "node_modules/parseurl": { + "version": "1.3.3", + "resolved": "https://npm.sinequa.com/parseurl/-/parseurl-1.3.3.tgz", + "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/path-exists": { + "version": "5.0.0", + "resolved": "https://npm.sinequa.com/path-exists/-/path-exists-5.0.0.tgz", + "integrity": "sha512-RjhtfwJOxzcFmNOi6ltcbcu4Iu+FL3zEj83dk4kAS+fVpTxXLO1b38RvJgT/0QwvV/L3aY9TAnyv0EOqW4GoMQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + } + }, + "node_modules/path-key": { + "version": "3.1.1", + "resolved": "https://npm.sinequa.com/path-key/-/path-key-3.1.1.tgz", + "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/path-parse": { + "version": "1.0.7", + "resolved": "https://npm.sinequa.com/path-parse/-/path-parse-1.0.7.tgz", + "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", + "dev": true, + "license": "MIT" + }, + "node_modules/path-scurry": { + "version": "1.11.1", + "resolved": "https://npm.sinequa.com/path-scurry/-/path-scurry-1.11.1.tgz", + "integrity": "sha512-Xa4Nw17FS9ApQFJ9umLiJS4orGjm7ZzwUrwamcGQuHSzDyth9boKDaycYdDcZDuqYATXw4HFXgaqWTctW/v1HA==", + "license": "BlueOak-1.0.0", + "dependencies": { + "lru-cache": "^10.2.0", + "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0" + }, + "engines": { + "node": ">=16 || 14 >=14.18" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/path-scurry/node_modules/lru-cache": { + "version": "10.4.3", + "resolved": "https://npm.sinequa.com/lru-cache/-/lru-cache-10.4.3.tgz", + "integrity": "sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==", + "license": "ISC" + }, + "node_modules/path-to-regexp": { + "version": "0.1.12", + "resolved": "https://npm.sinequa.com/path-to-regexp/-/path-to-regexp-0.1.12.tgz", + "integrity": "sha512-RA1GjUVMnvYFxuqovrEqZoxxW5NUZqbwKtYz/Tt7nXerk0LbLblQmrsgdeOxV5SFHf0UDggjS/bSeOZwt1pmEQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/path-type": { + "version": "4.0.0", + "resolved": "https://npm.sinequa.com/path-type/-/path-type-4.0.0.tgz", + "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==", + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/picocolors": { + "version": "1.1.1", + "resolved": "https://npm.sinequa.com/picocolors/-/picocolors-1.1.1.tgz", + "integrity": "sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==", + "license": "ISC" + }, + "node_modules/picomatch": { + "version": "4.0.2", + "resolved": "https://npm.sinequa.com/picomatch/-/picomatch-4.0.2.tgz", + "integrity": "sha512-M7BAV6Rlcy5u+m6oPhAPFgJTzAioX/6B0DxyvDlo9l8+T3nLKbrczg2WLUyzd45L8RqfUMyGPzekbMvX2Ldkwg==", + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/pidtree": { + "version": "0.6.0", + "resolved": "https://npm.sinequa.com/pidtree/-/pidtree-0.6.0.tgz", + "integrity": "sha512-eG2dWTVw5bzqGRztnHExczNxt5VGsE6OwTeCG3fdUf9KBsZzO3R5OIIIzWR+iZA0NtZ+RDVdaoE2dK1cn6jH4g==", + "dev": true, + "license": "MIT", + "bin": { + "pidtree": "bin/pidtree.js" + }, + "engines": { + "node": ">=0.10" + } + }, + "node_modules/pify": { + "version": "4.0.1", + "resolved": "https://npm.sinequa.com/pify/-/pify-4.0.1.tgz", + "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==", + "dev": true, + "license": "MIT", + "optional": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/pirates": { + "version": "4.0.6", + "resolved": "https://npm.sinequa.com/pirates/-/pirates-4.0.6.tgz", + "integrity": "sha512-saLsH7WeYYPiD25LDuLRRY/i+6HaPYr6G1OUlN39otzkSTxKnubR9RTxS3/Kk50s1g2JTgFwWQDQyplC5/SHZg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 6" + } + }, + "node_modules/piscina": { + "version": "4.6.1", + "resolved": "https://npm.sinequa.com/piscina/-/piscina-4.6.1.tgz", + "integrity": "sha512-z30AwWGtQE+Apr+2WBZensP2lIvwoaMcOPkQlIEmSGMJNUvaYACylPYrQM6wSdUNJlnDVMSpLv7xTMJqlVshOA==", + "dev": true, + "license": "MIT", + "optionalDependencies": { + "nice-napi": "^1.0.2" + } + }, + "node_modules/pkg-dir": { + "version": "7.0.0", + "resolved": "https://npm.sinequa.com/pkg-dir/-/pkg-dir-7.0.0.tgz", + "integrity": "sha512-Ie9z/WINcxxLp27BKOCHGde4ITq9UklYKDzVo1nhk5sqGEXU3FpkwP5GM2voTGJkGd9B3Otl+Q4uwSOeSUtOBA==", + "dev": true, + "license": "MIT", + "dependencies": { + "find-up": "^6.3.0" + }, + "engines": { + "node": ">=14.16" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/postcss": { + "version": "8.5.1", + "resolved": "https://npm.sinequa.com/postcss/-/postcss-8.5.1.tgz", + "integrity": "sha512-6oz2beyjc5VMn/KV1pPw8fliQkhBXrVn1Z3TVyqZxU8kZpzEKhBdmCFqI6ZbmGtamQvQGuU1sgPTk8ZrXDD7jQ==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/postcss" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "dependencies": { + "nanoid": "^3.3.8", + "picocolors": "^1.1.1", + "source-map-js": "^1.2.1" + }, + "engines": { + "node": "^10 || ^12 || >=14" + } + }, + "node_modules/postcss-import": { + "version": "15.1.0", + "resolved": "https://npm.sinequa.com/postcss-import/-/postcss-import-15.1.0.tgz", + "integrity": "sha512-hpr+J05B2FVYUAXHeK1YyI267J/dDDhMU6B6civm8hSY1jYJnBXxzKDKDswzJmtLHryrjhnDjqqp/49t8FALew==", + "dev": true, + "license": "MIT", + "dependencies": { + "postcss-value-parser": "^4.0.0", + "read-cache": "^1.0.0", + "resolve": "^1.1.7" + }, + "engines": { + "node": ">=14.0.0" + }, + "peerDependencies": { + "postcss": "^8.0.0" + } + }, + "node_modules/postcss-js": { + "version": "4.0.1", + "resolved": "https://npm.sinequa.com/postcss-js/-/postcss-js-4.0.1.tgz", + "integrity": "sha512-dDLF8pEO191hJMtlHFPRa8xsizHaM82MLfNkUHdUtVEV3tgTp5oj+8qbEqYM57SLfc74KSbw//4SeJma2LRVIw==", + "dev": true, + "license": "MIT", + "dependencies": { + "camelcase-css": "^2.0.1" + }, + "engines": { + "node": "^12 || ^14 || >= 16" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + "peerDependencies": { + "postcss": "^8.4.21" + } + }, + "node_modules/postcss-load-config": { + "version": "4.0.2", + "resolved": "https://npm.sinequa.com/postcss-load-config/-/postcss-load-config-4.0.2.tgz", + "integrity": "sha512-bSVhyJGL00wMVoPUzAVAnbEoWyqRxkjv64tUl427SKnPrENtq6hJwUojroMz2VB+Q1edmi4IfrAPpami5VVgMQ==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "dependencies": { + "lilconfig": "^3.0.0", + "yaml": "^2.3.4" + }, + "engines": { + "node": ">= 14" + }, + "peerDependencies": { + "postcss": ">=8.0.9", + "ts-node": ">=9.0.0" + }, + "peerDependenciesMeta": { + "postcss": { + "optional": true + }, + "ts-node": { + "optional": true + } + } + }, + "node_modules/postcss-loader": { + "version": "8.1.1", + "resolved": "https://npm.sinequa.com/postcss-loader/-/postcss-loader-8.1.1.tgz", + "integrity": "sha512-0IeqyAsG6tYiDRCYKQJLAmgQr47DX6N7sFSWvQxt6AcupX8DIdmykuk/o/tx0Lze3ErGHJEp5OSRxrelC6+NdQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "cosmiconfig": "^9.0.0", + "jiti": "^1.20.0", + "semver": "^7.5.4" + }, + "engines": { + "node": ">= 18.12.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "@rspack/core": "0.x || 1.x", + "postcss": "^7.0.0 || ^8.0.1", + "webpack": "^5.0.0" + }, + "peerDependenciesMeta": { + "@rspack/core": { + "optional": true + }, + "webpack": { + "optional": true + } + } + }, + "node_modules/postcss-loader/node_modules/cosmiconfig": { + "version": "9.0.0", + "resolved": "https://npm.sinequa.com/cosmiconfig/-/cosmiconfig-9.0.0.tgz", + "integrity": "sha512-itvL5h8RETACmOTFc4UfIyB2RfEHi71Ax6E/PivVxq9NseKbOWpeyHEOIbmAw1rs8Ak0VursQNww7lf7YtUwzg==", + "dev": true, + "license": "MIT", + "dependencies": { + "env-paths": "^2.2.1", + "import-fresh": "^3.3.0", + "js-yaml": "^4.1.0", + "parse-json": "^5.2.0" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/d-fischer" + }, + "peerDependencies": { + "typescript": ">=4.9.5" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/postcss-media-query-parser": { + "version": "0.2.3", + "resolved": "https://npm.sinequa.com/postcss-media-query-parser/-/postcss-media-query-parser-0.2.3.tgz", + "integrity": "sha512-3sOlxmbKcSHMjlUXQZKQ06jOswE7oVkXPxmZdoB1r5l0q6gTFTQSHxNxOrCccElbW7dxNytifNEo8qidX2Vsig==", + "dev": true, + "license": "MIT" + }, + "node_modules/postcss-modules-extract-imports": { + "version": "3.1.0", + "resolved": "https://npm.sinequa.com/postcss-modules-extract-imports/-/postcss-modules-extract-imports-3.1.0.tgz", + "integrity": "sha512-k3kNe0aNFQDAZGbin48pL2VNidTF0w4/eASDsxlyspobzU3wZQLOGj7L9gfRe0Jo9/4uud09DsjFNH7winGv8Q==", + "dev": true, + "license": "ISC", + "engines": { + "node": "^10 || ^12 || >= 14" + }, + "peerDependencies": { + "postcss": "^8.1.0" + } + }, + "node_modules/postcss-modules-local-by-default": { + "version": "4.2.0", + "resolved": "https://npm.sinequa.com/postcss-modules-local-by-default/-/postcss-modules-local-by-default-4.2.0.tgz", + "integrity": "sha512-5kcJm/zk+GJDSfw+V/42fJ5fhjL5YbFDl8nVdXkJPLLW+Vf9mTD5Xe0wqIaDnLuL2U6cDNpTr+UQ+v2HWIBhzw==", + "dev": true, + "license": "MIT", + "dependencies": { + "icss-utils": "^5.0.0", + "postcss-selector-parser": "^7.0.0", + "postcss-value-parser": "^4.1.0" + }, + "engines": { + "node": "^10 || ^12 || >= 14" + }, + "peerDependencies": { + "postcss": "^8.1.0" + } + }, + "node_modules/postcss-modules-scope": { + "version": "3.2.1", + "resolved": "https://npm.sinequa.com/postcss-modules-scope/-/postcss-modules-scope-3.2.1.tgz", + "integrity": "sha512-m9jZstCVaqGjTAuny8MdgE88scJnCiQSlSrOWcTQgM2t32UBe+MUmFSO5t7VMSfAf/FJKImAxBav8ooCHJXCJA==", + "dev": true, + "license": "ISC", + "dependencies": { + "postcss-selector-parser": "^7.0.0" + }, + "engines": { + "node": "^10 || ^12 || >= 14" + }, + "peerDependencies": { + "postcss": "^8.1.0" + } + }, + "node_modules/postcss-modules-values": { + "version": "4.0.0", + "resolved": "https://npm.sinequa.com/postcss-modules-values/-/postcss-modules-values-4.0.0.tgz", + "integrity": "sha512-RDxHkAiEGI78gS2ofyvCsu7iycRv7oqw5xMWn9iMoR0N/7mf9D50ecQqUo5BZ9Zh2vH4bCUR/ktCqbB9m8vJjQ==", + "dev": true, + "license": "ISC", + "dependencies": { + "icss-utils": "^5.0.0" + }, + "engines": { + "node": "^10 || ^12 || >= 14" + }, + "peerDependencies": { + "postcss": "^8.1.0" + } + }, + "node_modules/postcss-nested": { + "version": "6.2.0", + "resolved": "https://npm.sinequa.com/postcss-nested/-/postcss-nested-6.2.0.tgz", + "integrity": "sha512-HQbt28KulC5AJzG+cZtj9kvKB93CFCdLvog1WFLf1D+xmMvPGlBstkpTEZfK5+AN9hfJocyBFCNiqyS48bpgzQ==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "dependencies": { + "postcss-selector-parser": "^6.1.1" + }, + "engines": { + "node": ">=12.0" + }, + "peerDependencies": { + "postcss": "^8.2.14" + } + }, + "node_modules/postcss-nested/node_modules/postcss-selector-parser": { + "version": "6.1.2", + "resolved": "https://npm.sinequa.com/postcss-selector-parser/-/postcss-selector-parser-6.1.2.tgz", + "integrity": "sha512-Q8qQfPiZ+THO/3ZrOrO0cJJKfpYCagtMUkXbnEfmgUjwXg6z/WBeOyS9APBBPCTSiDV+s4SwQGu8yFsiMRIudg==", + "dev": true, + "license": "MIT", + "dependencies": { + "cssesc": "^3.0.0", + "util-deprecate": "^1.0.2" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/postcss-selector-parser": { + "version": "7.0.0", + "resolved": "https://npm.sinequa.com/postcss-selector-parser/-/postcss-selector-parser-7.0.0.tgz", + "integrity": "sha512-9RbEr1Y7FFfptd/1eEdntyjMwLeghW1bHX9GWjXo19vx4ytPQhANltvVxDggzJl7mnWM+dX28kb6cyS/4iQjlQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "cssesc": "^3.0.0", + "util-deprecate": "^1.0.2" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/postcss-value-parser": { + "version": "4.2.0", + "resolved": "https://npm.sinequa.com/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz", + "integrity": "sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/prettier": { + "version": "3.4.2", + "resolved": "https://npm.sinequa.com/prettier/-/prettier-3.4.2.tgz", + "integrity": "sha512-e9MewbtFo+Fevyuxn/4rrcDAaq0IYxPGLvObpQjiZBMAzB9IGmzlnG9RZy3FFas+eBMu2vA0CszMeduow5dIuQ==", + "dev": true, + "license": "MIT", + "bin": { + "prettier": "bin/prettier.cjs" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/prettier/prettier?sponsor=1" + } + }, + "node_modules/prettier-plugin-package": { + "version": "1.4.0", + "resolved": "https://npm.sinequa.com/prettier-plugin-package/-/prettier-plugin-package-1.4.0.tgz", + "integrity": "sha512-jy8UjgHadyznzWfunyjPQPqE2Y92TVF3Q0O829X6pk/ARoKn0vtSu+mtKIsmikZYb2N50mV6vRIqCf19XdOdIg==", + "dev": true, + "license": "MPL-2.0", + "engines": { + "node": ">=10.13.0" + }, + "peerDependencies": { + "prettier": "^2.0.0 || ^3.0.0" + } + }, + "node_modules/prettier-plugin-tailwindcss": { + "version": "0.6.11", + "resolved": "https://npm.sinequa.com/prettier-plugin-tailwindcss/-/prettier-plugin-tailwindcss-0.6.11.tgz", + "integrity": "sha512-YxaYSIvZPAqhrrEpRtonnrXdghZg1irNg4qrjboCXrpybLWVs55cW2N3juhspVJiO0JBvYJT8SYsJpc8OQSnsA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=14.21.3" + }, + "peerDependencies": { + "@ianvs/prettier-plugin-sort-imports": "*", + "@prettier/plugin-pug": "*", + "@shopify/prettier-plugin-liquid": "*", + "@trivago/prettier-plugin-sort-imports": "*", + "@zackad/prettier-plugin-twig": "*", + "prettier": "^3.0", + "prettier-plugin-astro": "*", + "prettier-plugin-css-order": "*", + "prettier-plugin-import-sort": "*", + "prettier-plugin-jsdoc": "*", + "prettier-plugin-marko": "*", + "prettier-plugin-multiline-arrays": "*", + "prettier-plugin-organize-attributes": "*", + "prettier-plugin-organize-imports": "*", + "prettier-plugin-sort-imports": "*", + "prettier-plugin-style-order": "*", + "prettier-plugin-svelte": "*" + }, + "peerDependenciesMeta": { + "@ianvs/prettier-plugin-sort-imports": { + "optional": true + }, + "@prettier/plugin-pug": { + "optional": true + }, + "@shopify/prettier-plugin-liquid": { + "optional": true + }, + "@trivago/prettier-plugin-sort-imports": { + "optional": true + }, + "@zackad/prettier-plugin-twig": { + "optional": true + }, + "prettier-plugin-astro": { + "optional": true + }, + "prettier-plugin-css-order": { + "optional": true + }, + "prettier-plugin-import-sort": { + "optional": true + }, + "prettier-plugin-jsdoc": { + "optional": true + }, + "prettier-plugin-marko": { + "optional": true + }, + "prettier-plugin-multiline-arrays": { + "optional": true + }, + "prettier-plugin-organize-attributes": { + "optional": true + }, + "prettier-plugin-organize-imports": { + "optional": true + }, + "prettier-plugin-sort-imports": { + "optional": true + }, + "prettier-plugin-style-order": { + "optional": true + }, + "prettier-plugin-svelte": { + "optional": true + } + } + }, + "node_modules/proc-log": { + "version": "4.2.0", + "resolved": "https://npm.sinequa.com/proc-log/-/proc-log-4.2.0.tgz", + "integrity": "sha512-g8+OnU/L2v+wyiVK+D5fA34J7EH8jZ8DDlvwhRCMxmMj7UCBvxiO1mGeN+36JXIKF4zevU4kRBd8lVgG9vLelA==", + "dev": true, + "license": "ISC", + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/process-nextick-args": { + "version": "2.0.1", + "resolved": "https://npm.sinequa.com/process-nextick-args/-/process-nextick-args-2.0.1.tgz", + "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==", + "dev": true, + "license": "MIT" + }, + "node_modules/promise-inflight": { + "version": "1.0.1", + "resolved": "https://npm.sinequa.com/promise-inflight/-/promise-inflight-1.0.1.tgz", + "integrity": "sha1-mEcocL8igTL8vdhoEputEsPAKeM=", + "dev": true, + "license": "ISC" + }, + "node_modules/promise-retry": { + "version": "2.0.1", + "resolved": "https://npm.sinequa.com/promise-retry/-/promise-retry-2.0.1.tgz", + "integrity": "sha512-y+WKFlBR8BGXnsNlIHFGPZmyDf3DFMoLhaflAnyZgV6rG6xu+JwesTo2Q9R6XwYmtmwAFCkAk3e35jEdoeh/3g==", + "dev": true, + "license": "MIT", + "dependencies": { + "err-code": "^2.0.2", + "retry": "^0.12.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/proxy-addr": { + "version": "2.0.7", + "resolved": "https://npm.sinequa.com/proxy-addr/-/proxy-addr-2.0.7.tgz", + "integrity": "sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==", + "dev": true, + "license": "MIT", + "dependencies": { + "forwarded": "0.2.0", + "ipaddr.js": "1.9.1" + }, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/proxy-addr/node_modules/ipaddr.js": { + "version": "1.9.1", + "resolved": "https://npm.sinequa.com/ipaddr.js/-/ipaddr.js-1.9.1.tgz", + "integrity": "sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/prr": { + "version": "1.0.1", + "resolved": "https://npm.sinequa.com/prr/-/prr-1.0.1.tgz", + "integrity": "sha1-0/wRS6BplaRexok/SEzrHXj19HY=", + "dev": true, + "license": "MIT", + "optional": true + }, + "node_modules/psl": { + "version": "1.15.0", + "resolved": "https://npm.sinequa.com/psl/-/psl-1.15.0.tgz", + "integrity": "sha512-JZd3gMVBAVQkSs6HdNZo9Sdo0LNcQeMNP3CozBJb3JYC/QUYZTnKxP+f8oWRX4rHP5EurWxqAHTSwUCjlNKa1w==", + "license": "MIT", + "dependencies": { + "punycode": "^2.3.1" + }, + "funding": { + "url": "https://github.com/sponsors/lupomontero" + } + }, + "node_modules/punycode": { + "version": "2.3.1", + "resolved": "https://npm.sinequa.com/punycode/-/punycode-2.3.1.tgz", + "integrity": "sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==", + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/qs": { + "version": "6.13.0", + "resolved": "https://npm.sinequa.com/qs/-/qs-6.13.0.tgz", + "integrity": "sha512-+38qI9SOr8tfZ4QmJNplMUxqjbe7LKvvZgWdExBOmd+egZTtjLB67Gu0HRX3u/XOq7UU2Nx6nsjvS16Z9uwfpg==", + "dev": true, + "license": "BSD-3-Clause", + "dependencies": { + "side-channel": "^1.0.6" + }, + "engines": { + "node": ">=0.6" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/querystringify": { + "version": "2.2.0", + "resolved": "https://npm.sinequa.com/querystringify/-/querystringify-2.2.0.tgz", + "integrity": "sha512-FIqgj2EUvTa7R50u0rGsyTftzjYmv/a3hO345bZNrqabNqjtgiDMgmo4mkUjd+nzU5oF3dClKqFIPUKybUyqoQ==", + "license": "MIT" + }, + "node_modules/queue-microtask": { + "version": "1.2.3", + "resolved": "https://npm.sinequa.com/queue-microtask/-/queue-microtask-1.2.3.tgz", + "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "MIT" + }, + "node_modules/randombytes": { + "version": "2.1.0", + "resolved": "https://npm.sinequa.com/randombytes/-/randombytes-2.1.0.tgz", + "integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "safe-buffer": "^5.1.0" + } + }, + "node_modules/range-parser": { + "version": "1.2.1", + "resolved": "https://npm.sinequa.com/range-parser/-/range-parser-1.2.1.tgz", + "integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/raw-body": { + "version": "2.5.2", + "resolved": "https://npm.sinequa.com/raw-body/-/raw-body-2.5.2.tgz", + "integrity": "sha512-8zGqypfENjCIqGhgXToC8aB2r7YrBX+AQAfIPs/Mlk+BtPTztOvTS01NRW/3Eh60J+a48lt8qsCzirQ6loCVfA==", + "dev": true, + "license": "MIT", + "dependencies": { + "bytes": "3.1.2", + "http-errors": "2.0.0", + "iconv-lite": "0.4.24", + "unpipe": "1.0.0" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/read-cache": { + "version": "1.0.0", + "resolved": "https://npm.sinequa.com/read-cache/-/read-cache-1.0.0.tgz", + "integrity": "sha1-5mTvMRYRZsl1HNvo28+GtftY93Q=", + "dev": true, + "license": "MIT", + "dependencies": { + "pify": "^2.3.0" + } + }, + "node_modules/read-cache/node_modules/pify": { + "version": "2.3.0", + "resolved": "https://npm.sinequa.com/pify/-/pify-2.3.0.tgz", + "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/readable-stream": { + "version": "3.6.2", + "resolved": "https://npm.sinequa.com/readable-stream/-/readable-stream-3.6.2.tgz", + "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==", + "license": "MIT", + "dependencies": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/readdirp": { + "version": "4.1.1", + "resolved": "https://npm.sinequa.com/readdirp/-/readdirp-4.1.1.tgz", + "integrity": "sha512-h80JrZu/MHUZCyHu5ciuoI0+WxsCxzxJTILn6Fs8rxSnFPh+UVHYfeIxK1nVGugMqkfC4vJcBOYbkfkwYK0+gw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 14.18.0" + }, + "funding": { + "type": "individual", + "url": "https://paulmillr.com/funding/" + } + }, + "node_modules/reflect-metadata": { + "version": "0.2.2", + "resolved": "https://npm.sinequa.com/reflect-metadata/-/reflect-metadata-0.2.2.tgz", + "integrity": "sha512-urBwgfrvVP/eAyXx4hluJivBKzuEbSQs9rKWCrCkbSxNv8mxPcUZKeuoF3Uy4mJl3Lwprp6yy5/39VWigZ4K6Q==", + "dev": true, + "license": "Apache-2.0" + }, + "node_modules/regenerate": { + "version": "1.4.2", + "resolved": "https://npm.sinequa.com/regenerate/-/regenerate-1.4.2.tgz", + "integrity": "sha512-zrceR/XhGYU/d/opr2EKO7aRHUeiBI8qjtfHqADTwZd6Szfy16la6kqD0MIUs5z5hx6AaKa+PixpPrR289+I0A==", + "dev": true, + "license": "MIT" + }, + "node_modules/regenerate-unicode-properties": { + "version": "10.2.0", + "resolved": "https://npm.sinequa.com/regenerate-unicode-properties/-/regenerate-unicode-properties-10.2.0.tgz", + "integrity": "sha512-DqHn3DwbmmPVzeKj9woBadqmXxLvQoQIwu7nopMc72ztvxVmVk2SBhSnx67zuye5TP+lJsb/TBQsjLKhnDf3MA==", + "dev": true, + "license": "MIT", + "dependencies": { + "regenerate": "^1.4.2" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/regenerator-runtime": { + "version": "0.14.1", + "resolved": "https://npm.sinequa.com/regenerator-runtime/-/regenerator-runtime-0.14.1.tgz", + "integrity": "sha512-dYnhHh0nJoMfnkZs6GmmhFknAGRrLznOu5nc9ML+EJxGvrx6H7teuevqVqCuPcPK//3eDrrjQhehXVx9cnkGdw==", + "dev": true, + "license": "MIT" + }, + "node_modules/regenerator-transform": { + "version": "0.15.2", + "resolved": "https://npm.sinequa.com/regenerator-transform/-/regenerator-transform-0.15.2.tgz", + "integrity": "sha512-hfMp2BoF0qOk3uc5V20ALGDS2ddjQaLrdl7xrGXvAIow7qeWRM2VA2HuCHkUKk9slq3VwEwLNK3DFBqDfPGYtg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.8.4" + } + }, + "node_modules/regex-parser": { + "version": "2.3.0", + "resolved": "https://npm.sinequa.com/regex-parser/-/regex-parser-2.3.0.tgz", + "integrity": "sha512-TVILVSz2jY5D47F4mA4MppkBrafEaiUWJO/TcZHEIuI13AqoZMkK1WMA4Om1YkYbTx+9Ki1/tSUXbceyr9saRg==", + "dev": true, + "license": "MIT" + }, + "node_modules/regexpu-core": { + "version": "6.2.0", + "resolved": "https://npm.sinequa.com/regexpu-core/-/regexpu-core-6.2.0.tgz", + "integrity": "sha512-H66BPQMrv+V16t8xtmq+UC0CBpiTBA60V8ibS1QVReIp8T1z8hwFxqcGzm9K6lgsN7sB5edVH8a+ze6Fqm4weA==", + "dev": true, + "license": "MIT", + "dependencies": { + "regenerate": "^1.4.2", + "regenerate-unicode-properties": "^10.2.0", + "regjsgen": "^0.8.0", + "regjsparser": "^0.12.0", + "unicode-match-property-ecmascript": "^2.0.0", + "unicode-match-property-value-ecmascript": "^2.1.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/regjsgen": { + "version": "0.8.0", + "resolved": "https://npm.sinequa.com/regjsgen/-/regjsgen-0.8.0.tgz", + "integrity": "sha512-RvwtGe3d7LvWiDQXeQw8p5asZUmfU1G/l6WbUXeHta7Y2PEIvBTwH6E2EfmYUK8pxcxEdEmaomqyp0vZZ7C+3Q==", + "dev": true, + "license": "MIT" + }, + "node_modules/regjsparser": { + "version": "0.12.0", + "resolved": "https://npm.sinequa.com/regjsparser/-/regjsparser-0.12.0.tgz", + "integrity": "sha512-cnE+y8bz4NhMjISKbgeVJtqNbtf5QpjZP+Bslo+UqkIt9QPnX9q095eiRRASJG1/tz6dlNr6Z5NsBiWYokp6EQ==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "jsesc": "~3.0.2" + }, + "bin": { + "regjsparser": "bin/parser" + } + }, + "node_modules/regjsparser/node_modules/jsesc": { + "version": "3.0.2", + "resolved": "https://npm.sinequa.com/jsesc/-/jsesc-3.0.2.tgz", + "integrity": "sha512-xKqzzWXDttJuOcawBt4KnKHHIf5oQ/Cxax+0PWFG+DFDgHNAdi+TXECADI+RYiFUMmx8792xsMbbgXj4CwnP4g==", + "dev": true, + "license": "MIT", + "bin": { + "jsesc": "bin/jsesc" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/replace-in-file": { + "version": "7.2.0", + "resolved": "https://npm.sinequa.com/replace-in-file/-/replace-in-file-7.2.0.tgz", + "integrity": "sha512-CiLXVop3o8/h2Kd1PwKPPimmS9wUV0Ki6Fl8+1ITD35nB3Gl/PrW5IONpTE0AXk0z4v8WYcpEpdeZqMXvSnWpg==", + "license": "MIT", + "dependencies": { + "chalk": "^4.1.2", + "glob": "^8.1.0", + "yargs": "^17.7.2" + }, + "bin": { + "replace-in-file": "bin/cli.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/replace-in-file/node_modules/glob": { + "version": "8.1.0", + "resolved": "https://npm.sinequa.com/glob/-/glob-8.1.0.tgz", + "integrity": "sha512-r8hpEjiQEYlF2QU0df3dS+nxxSIreXQS1qRhMJM0Q5NDdR386C7jb7Hwwod8Fgiuex+k0GFjgft18yvxm5XoCQ==", + "license": "ISC", + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^5.0.1", + "once": "^1.3.0" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/replace-in-file/node_modules/minimatch": { + "version": "5.1.6", + "resolved": "https://npm.sinequa.com/minimatch/-/minimatch-5.1.6.tgz", + "integrity": "sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==", + "license": "ISC", + "dependencies": { + "brace-expansion": "^2.0.1" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/require-directory": { + "version": "2.1.1", + "resolved": "https://npm.sinequa.com/require-directory/-/require-directory-2.1.1.tgz", + "integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I=", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/require-from-string": { + "version": "2.0.2", + "resolved": "https://npm.sinequa.com/require-from-string/-/require-from-string-2.0.2.tgz", + "integrity": "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/requires-port": { + "version": "1.0.0", + "resolved": "https://npm.sinequa.com/requires-port/-/requires-port-1.0.0.tgz", + "integrity": "sha1-kl0mAdOaxIXgkc8NpcbmlNw9yv8=", + "license": "MIT" + }, + "node_modules/resolve": { + "version": "1.22.8", + "resolved": "https://npm.sinequa.com/resolve/-/resolve-1.22.8.tgz", + "integrity": "sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-core-module": "^2.13.0", + "path-parse": "^1.0.7", + "supports-preserve-symlinks-flag": "^1.0.0" + }, + "bin": { + "resolve": "bin/resolve" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/resolve-from": { + "version": "4.0.0", + "resolved": "https://npm.sinequa.com/resolve-from/-/resolve-from-4.0.0.tgz", + "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/resolve-url-loader": { + "version": "5.0.0", + "resolved": "https://npm.sinequa.com/resolve-url-loader/-/resolve-url-loader-5.0.0.tgz", + "integrity": "sha512-uZtduh8/8srhBoMx//5bwqjQ+rfYOUq8zC9NrMUGtjBiGTtFJM42s58/36+hTqeqINcnYe08Nj3LkK9lW4N8Xg==", + "dev": true, + "license": "MIT", + "dependencies": { + "adjust-sourcemap-loader": "^4.0.0", + "convert-source-map": "^1.7.0", + "loader-utils": "^2.0.0", + "postcss": "^8.2.14", + "source-map": "0.6.1" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/resolve-url-loader/node_modules/loader-utils": { + "version": "2.0.4", + "resolved": "https://npm.sinequa.com/loader-utils/-/loader-utils-2.0.4.tgz", + "integrity": "sha512-xXqpXoINfFhgua9xiqD8fPFHgkoq1mmmpE92WlDbm9rNRd/EbRb+Gqf908T2DMfuHjjJlksiK2RbHVOdD/MqSw==", + "dev": true, + "license": "MIT", + "dependencies": { + "big.js": "^5.2.2", + "emojis-list": "^3.0.0", + "json5": "^2.1.2" + }, + "engines": { + "node": ">=8.9.0" + } + }, + "node_modules/resolve-url-loader/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://npm.sinequa.com/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true, + "license": "BSD-3-Clause", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/restore-cursor": { + "version": "5.1.0", + "resolved": "https://npm.sinequa.com/restore-cursor/-/restore-cursor-5.1.0.tgz", + "integrity": "sha512-oMA2dcrw6u0YfxJQXm342bFKX/E4sG9rbTzO9ptUcR/e8A33cHuvStiYOwH7fszkZlZ1z/ta9AAoPk2F4qIOHA==", + "dev": true, + "license": "MIT", + "dependencies": { + "onetime": "^7.0.0", + "signal-exit": "^4.1.0" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/restore-cursor/node_modules/onetime": { + "version": "7.0.0", + "resolved": "https://npm.sinequa.com/onetime/-/onetime-7.0.0.tgz", + "integrity": "sha512-VXJjc87FScF88uafS3JllDgvAm+c/Slfz06lorj2uAY34rlUu0Nt+v8wreiImcrgAjjIHp1rXpTDlLOGw29WwQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "mimic-function": "^5.0.0" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/retry": { + "version": "0.12.0", + "resolved": "https://npm.sinequa.com/retry/-/retry-0.12.0.tgz", + "integrity": "sha1-G0KmJmoh8HQh0bC1S33BZ7AcATs=", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 4" + } + }, + "node_modules/reusify": { + "version": "1.0.4", + "resolved": "https://npm.sinequa.com/reusify/-/reusify-1.0.4.tgz", + "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==", + "dev": true, + "license": "MIT", + "engines": { + "iojs": ">=1.0.0", + "node": ">=0.10.0" + } + }, + "node_modules/rfdc": { + "version": "1.4.1", + "resolved": "https://npm.sinequa.com/rfdc/-/rfdc-1.4.1.tgz", + "integrity": "sha512-q1b3N5QkRUWUl7iyylaaj3kOpIT0N2i9MqIEQXP73GVsN9cw3fdx8X63cEmWhJGi2PPCF23Ijp7ktmd39rawIA==", + "dev": true, + "license": "MIT" + }, + "node_modules/rimraf": { + "version": "5.0.10", + "resolved": "https://npm.sinequa.com/rimraf/-/rimraf-5.0.10.tgz", + "integrity": "sha512-l0OE8wL34P4nJH/H2ffoaniAokM2qSmrtXHmlpvYr5AVVX8msAyW0l8NVJFDxlSK4u3Uh/f41cQheDVdnYijwQ==", + "dev": true, + "license": "ISC", + "dependencies": { + "glob": "^10.3.7" + }, + "bin": { + "rimraf": "dist/esm/bin.mjs" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/rollup": { + "version": "4.22.4", + "resolved": "https://npm.sinequa.com/rollup/-/rollup-4.22.4.tgz", + "integrity": "sha512-vD8HJ5raRcWOyymsR6Z3o6+RzfEPCnVLMFJ6vRslO1jt4LO6dUo5Qnpg7y4RkZFM2DMe3WUirkI5c16onjrc6A==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/estree": "1.0.5" + }, + "bin": { + "rollup": "dist/bin/rollup" + }, + "engines": { + "node": ">=18.0.0", + "npm": ">=8.0.0" + }, + "optionalDependencies": { + "@rollup/rollup-android-arm-eabi": "4.22.4", + "@rollup/rollup-android-arm64": "4.22.4", + "@rollup/rollup-darwin-arm64": "4.22.4", + "@rollup/rollup-darwin-x64": "4.22.4", + "@rollup/rollup-linux-arm-gnueabihf": "4.22.4", + "@rollup/rollup-linux-arm-musleabihf": "4.22.4", + "@rollup/rollup-linux-arm64-gnu": "4.22.4", + "@rollup/rollup-linux-arm64-musl": "4.22.4", + "@rollup/rollup-linux-powerpc64le-gnu": "4.22.4", + "@rollup/rollup-linux-riscv64-gnu": "4.22.4", + "@rollup/rollup-linux-s390x-gnu": "4.22.4", + "@rollup/rollup-linux-x64-gnu": "4.22.4", + "@rollup/rollup-linux-x64-musl": "4.22.4", + "@rollup/rollup-win32-arm64-msvc": "4.22.4", + "@rollup/rollup-win32-ia32-msvc": "4.22.4", + "@rollup/rollup-win32-x64-msvc": "4.22.4", + "fsevents": "~2.3.2" + } + }, + "node_modules/run-applescript": { + "version": "7.0.0", + "resolved": "https://npm.sinequa.com/run-applescript/-/run-applescript-7.0.0.tgz", + "integrity": "sha512-9by4Ij99JUr/MCFBUkDKLWK3G9HVXmabKz9U5MlIAIuvuzkiOicRYs8XJLxX+xahD+mLiiCYDqF9dKAgtzKP1A==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/run-parallel": { + "version": "1.2.0", + "resolved": "https://npm.sinequa.com/run-parallel/-/run-parallel-1.2.0.tgz", + "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "MIT", + "dependencies": { + "queue-microtask": "^1.2.2" + } + }, + "node_modules/rxjs": { + "version": "7.8.1", + "resolved": "https://npm.sinequa.com/rxjs/-/rxjs-7.8.1.tgz", + "integrity": "sha512-AA3TVj+0A2iuIoQkWEK/tqFjBq2j+6PO6Y0zJcvzLAFhEFIO3HL0vls9hWLncZbAAbK0mar7oZ4V079I/qPMxg==", + "license": "Apache-2.0", + "dependencies": { + "tslib": "^2.1.0" + } + }, + "node_modules/safe-buffer": { + "version": "5.2.1", + "resolved": "https://npm.sinequa.com/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" + } + ], + "license": "MIT" + }, + "node_modules/safe-identifier": { + "version": "0.4.2", + "resolved": "https://npm.sinequa.com/safe-identifier/-/safe-identifier-0.4.2.tgz", + "integrity": "sha512-6pNbSMW6OhAi9j+N8V+U715yBQsaWJ7eyEUaOrawX+isg5ZxhUlV1NipNtgaKHmFGiABwt+ZF04Ii+3Xjkg+8w==", + "license": "ISC" + }, + "node_modules/safer-buffer": { + "version": "2.1.2", + "resolved": "https://npm.sinequa.com/safer-buffer/-/safer-buffer-2.1.2.tgz", + "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", + "dev": true, + "license": "MIT" + }, + "node_modules/sass": { + "version": "1.77.6", + "resolved": "https://npm.sinequa.com/sass/-/sass-1.77.6.tgz", + "integrity": "sha512-ByXE1oLD79GVq9Ht1PeHWCPMPB8XHpBuz1r85oByKHjZY6qV6rWnQovQzXJXuQ/XyE1Oj3iPk3lo28uzaRA2/Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "chokidar": ">=3.0.0 <4.0.0", + "immutable": "^4.0.0", + "source-map-js": ">=0.6.2 <2.0.0" + }, + "bin": { + "sass": "sass.js" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/sass-loader": { + "version": "16.0.0", + "resolved": "https://npm.sinequa.com/sass-loader/-/sass-loader-16.0.0.tgz", + "integrity": "sha512-n13Z+3rU9A177dk4888czcVFiC8CL9dii4qpXWUg3YIIgZEvi9TCFKjOQcbK0kJM7DJu9VucrZFddvNfYCPwtw==", + "dev": true, + "license": "MIT", + "dependencies": { + "neo-async": "^2.6.2" + }, + "engines": { + "node": ">= 18.12.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "@rspack/core": "0.x || 1.x", + "node-sass": "^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0 || ^9.0.0", + "sass": "^1.3.0", + "sass-embedded": "*", + "webpack": "^5.0.0" + }, + "peerDependenciesMeta": { + "@rspack/core": { + "optional": true + }, + "node-sass": { + "optional": true + }, + "sass": { + "optional": true + }, + "sass-embedded": { + "optional": true + }, + "webpack": { + "optional": true + } + } + }, + "node_modules/sass/node_modules/chokidar": { + "version": "3.6.0", + "resolved": "https://npm.sinequa.com/chokidar/-/chokidar-3.6.0.tgz", + "integrity": "sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==", + "dev": true, + "license": "MIT", + "dependencies": { + "anymatch": "~3.1.2", + "braces": "~3.0.2", + "glob-parent": "~5.1.2", + "is-binary-path": "~2.1.0", + "is-glob": "~4.0.1", + "normalize-path": "~3.0.0", + "readdirp": "~3.6.0" + }, + "engines": { + "node": ">= 8.10.0" + }, + "funding": { + "url": "https://paulmillr.com/funding/" + }, + "optionalDependencies": { + "fsevents": "~2.3.2" + } + }, + "node_modules/sass/node_modules/glob-parent": { + "version": "5.1.2", + "resolved": "https://npm.sinequa.com/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "dev": true, + "license": "ISC", + "dependencies": { + "is-glob": "^4.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/sass/node_modules/picomatch": { + "version": "2.3.1", + "resolved": "https://npm.sinequa.com/picomatch/-/picomatch-2.3.1.tgz", + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8.6" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/sass/node_modules/readdirp": { + "version": "3.6.0", + "resolved": "https://npm.sinequa.com/readdirp/-/readdirp-3.6.0.tgz", + "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", + "dev": true, + "license": "MIT", + "dependencies": { + "picomatch": "^2.2.1" + }, + "engines": { + "node": ">=8.10.0" + } + }, + "node_modules/sax": { + "version": "1.4.1", + "resolved": "https://npm.sinequa.com/sax/-/sax-1.4.1.tgz", + "integrity": "sha512-+aWOz7yVScEGoKNd4PA10LZ8sk0A/z5+nXQG5giUO5rprX9jgYsTdov9qCchZiPIZezbZH+jRut8nPodFAX4Jg==", + "dev": true, + "license": "ISC", + "optional": true + }, + "node_modules/schema-utils": { + "version": "4.3.0", + "resolved": "https://npm.sinequa.com/schema-utils/-/schema-utils-4.3.0.tgz", + "integrity": "sha512-Gf9qqc58SpCA/xdziiHz35F4GNIWYWZrEshUc/G/r5BnLph6xpKuLeoJoQuj5WfBIx/eQLf+hmVPYHaxJu7V2g==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/json-schema": "^7.0.9", + "ajv": "^8.9.0", + "ajv-formats": "^2.1.1", + "ajv-keywords": "^5.1.0" + }, + "engines": { + "node": ">= 10.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + } + }, + "node_modules/schema-utils/node_modules/ajv-formats": { + "version": "2.1.1", + "resolved": "https://npm.sinequa.com/ajv-formats/-/ajv-formats-2.1.1.tgz", + "integrity": "sha512-Wx0Kx52hxE7C18hkMEggYlEifqWZtYaRgouJor+WMdPnQyEK13vgEWyVNup7SoeeoLMsr4kf5h6dOW11I15MUA==", + "dev": true, + "license": "MIT", + "dependencies": { + "ajv": "^8.0.0" + }, + "peerDependencies": { + "ajv": "^8.0.0" + }, + "peerDependenciesMeta": { + "ajv": { + "optional": true + } + } + }, + "node_modules/select-hose": { + "version": "2.0.0", + "resolved": "https://npm.sinequa.com/select-hose/-/select-hose-2.0.0.tgz", + "integrity": "sha1-Yl2GWPhlr0Psliv8N2o3NZpJlMo=", + "dev": true, + "license": "MIT" + }, + "node_modules/selfsigned": { + "version": "2.4.1", + "resolved": "https://npm.sinequa.com/selfsigned/-/selfsigned-2.4.1.tgz", + "integrity": "sha512-th5B4L2U+eGLq1TVh7zNRGBapioSORUeymIydxgFpwww9d2qyKvtuPU2jJuHvYAwwqi2Y596QBL3eEqcPEYL8Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/node-forge": "^1.3.0", + "node-forge": "^1" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/semver": { + "version": "7.6.3", + "resolved": "https://npm.sinequa.com/semver/-/semver-7.6.3.tgz", + "integrity": "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==", + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/send": { + "version": "0.19.0", + "resolved": "https://npm.sinequa.com/send/-/send-0.19.0.tgz", + "integrity": "sha512-dW41u5VfLXu8SJh5bwRmyYUbAoSB3c9uQh6L8h/KtsFREPWpbX1lrljJo186Jc4nmci/sGUZ9a0a0J2zgfq2hw==", + "dev": true, + "license": "MIT", + "dependencies": { + "debug": "2.6.9", + "depd": "2.0.0", + "destroy": "1.2.0", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "etag": "~1.8.1", + "fresh": "0.5.2", + "http-errors": "2.0.0", + "mime": "1.6.0", + "ms": "2.1.3", + "on-finished": "2.4.1", + "range-parser": "~1.2.1", + "statuses": "2.0.1" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/send/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://npm.sinequa.com/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "license": "MIT", + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/send/node_modules/debug/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://npm.sinequa.com/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "dev": true, + "license": "MIT" + }, + "node_modules/send/node_modules/encodeurl": { + "version": "1.0.2", + "resolved": "https://npm.sinequa.com/encodeurl/-/encodeurl-1.0.2.tgz", + "integrity": "sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k=", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/serialize-javascript": { + "version": "6.0.2", + "resolved": "https://npm.sinequa.com/serialize-javascript/-/serialize-javascript-6.0.2.tgz", + "integrity": "sha512-Saa1xPByTTq2gdeFZYLLo+RFE35NHZkAbqZeWNd3BpzppeVisAqpDjcp8dyf6uIvEqJRd46jemmyA4iFIeVk8g==", + "dev": true, + "license": "BSD-3-Clause", + "dependencies": { + "randombytes": "^2.1.0" + } + }, + "node_modules/serve-index": { + "version": "1.9.1", + "resolved": "https://npm.sinequa.com/serve-index/-/serve-index-1.9.1.tgz", + "integrity": "sha1-03aNabHn2C5c4FD/9bRTvqEqkjk=", + "dev": true, + "license": "MIT", + "dependencies": { + "accepts": "~1.3.4", + "batch": "0.6.1", + "debug": "2.6.9", + "escape-html": "~1.0.3", + "http-errors": "~1.6.2", + "mime-types": "~2.1.17", + "parseurl": "~1.3.2" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/serve-index/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://npm.sinequa.com/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "license": "MIT", + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/serve-index/node_modules/depd": { + "version": "1.1.2", + "resolved": "https://npm.sinequa.com/depd/-/depd-1.1.2.tgz", + "integrity": "sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak=", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/serve-index/node_modules/http-errors": { + "version": "1.6.3", + "resolved": "https://npm.sinequa.com/http-errors/-/http-errors-1.6.3.tgz", + "integrity": "sha1-i1VoC7S+KDoLW/TqLjhYC+HZMg0=", + "dev": true, + "license": "MIT", + "dependencies": { + "depd": "~1.1.2", + "inherits": "2.0.3", + "setprototypeof": "1.1.0", + "statuses": ">= 1.4.0 < 2" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/serve-index/node_modules/inherits": { + "version": "2.0.3", + "resolved": "https://npm.sinequa.com/inherits/-/inherits-2.0.3.tgz", + "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=", + "dev": true, + "license": "ISC" + }, + "node_modules/serve-index/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://npm.sinequa.com/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "dev": true, + "license": "MIT" + }, + "node_modules/serve-index/node_modules/setprototypeof": { + "version": "1.1.0", + "resolved": "https://npm.sinequa.com/setprototypeof/-/setprototypeof-1.1.0.tgz", + "integrity": "sha512-BvE/TwpZX4FXExxOxZyRGQQv651MSwmWKZGqvmPcRIjDqWub67kTKuIMx43cZZrS/cBBzwBcNDWoFxt2XEFIpQ==", + "dev": true, + "license": "ISC" + }, + "node_modules/serve-index/node_modules/statuses": { + "version": "1.5.0", + "resolved": "https://npm.sinequa.com/statuses/-/statuses-1.5.0.tgz", + "integrity": "sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow=", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/serve-static": { + "version": "1.16.2", + "resolved": "https://npm.sinequa.com/serve-static/-/serve-static-1.16.2.tgz", + "integrity": "sha512-VqpjJZKadQB/PEbEwvFdO43Ax5dFBZ2UECszz8bQ7pi7wt//PWe1P6MN7eCnjsatYtBT6EuiClbjSWP2WrIoTw==", + "dev": true, + "license": "MIT", + "dependencies": { + "encodeurl": "~2.0.0", + "escape-html": "~1.0.3", + "parseurl": "~1.3.3", + "send": "0.19.0" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/set-cookie-parser": { + "version": "2.7.1", + "resolved": "https://npm.sinequa.com/set-cookie-parser/-/set-cookie-parser-2.7.1.tgz", + "integrity": "sha512-IOc8uWeOZgnb3ptbCURJWNjWUPcO3ZnTTdzsurqERrP6nPyv+paC55vJM0LpOlT2ne+Ix+9+CRG1MNLlyZ4GjQ==", + "license": "MIT" + }, + "node_modules/setprototypeof": { + "version": "1.2.0", + "resolved": "https://npm.sinequa.com/setprototypeof/-/setprototypeof-1.2.0.tgz", + "integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==", + "dev": true, + "license": "ISC" + }, + "node_modules/shallow-clone": { + "version": "3.0.1", + "resolved": "https://npm.sinequa.com/shallow-clone/-/shallow-clone-3.0.1.tgz", + "integrity": "sha512-/6KqX+GVUdqPuPPd2LxDDxzX6CAbjJehAAOKlNpqqUpAqPM6HeL8f+o3a+JsyGjn2lv0WY8UsTgUJjU9Ok55NA==", + "dev": true, + "license": "MIT", + "dependencies": { + "kind-of": "^6.0.2" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/shebang-command": { + "version": "2.0.0", + "resolved": "https://npm.sinequa.com/shebang-command/-/shebang-command-2.0.0.tgz", + "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", + "license": "MIT", + "dependencies": { + "shebang-regex": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/shebang-regex": { + "version": "3.0.0", + "resolved": "https://npm.sinequa.com/shebang-regex/-/shebang-regex-3.0.0.tgz", + "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/shell-quote": { + "version": "1.8.2", + "resolved": "https://npm.sinequa.com/shell-quote/-/shell-quote-1.8.2.tgz", + "integrity": "sha512-AzqKpGKjrj7EM6rKVQEPpB288oCfnrEIuyoT9cyF4nmGa7V8Zk6f7RRqYisX8X9m+Q7bd632aZW4ky7EhbQztA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/side-channel": { + "version": "1.1.0", + "resolved": "https://npm.sinequa.com/side-channel/-/side-channel-1.1.0.tgz", + "integrity": "sha512-ZX99e6tRweoUXqR+VBrslhda51Nh5MTQwou5tnUDgbtyM0dBgmhEDtWGP/xbKn6hqfPRHujUNwz5fy/wbbhnpw==", + "dev": true, + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0", + "object-inspect": "^1.13.3", + "side-channel-list": "^1.0.0", + "side-channel-map": "^1.0.1", + "side-channel-weakmap": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/side-channel-list": { + "version": "1.0.0", + "resolved": "https://npm.sinequa.com/side-channel-list/-/side-channel-list-1.0.0.tgz", + "integrity": "sha512-FCLHtRD/gnpCiCHEiJLOwdmFP+wzCmDEkc9y7NsYxeF4u7Btsn1ZuwgwJGxImImHicJArLP4R0yX4c2KCrMrTA==", + "dev": true, + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0", + "object-inspect": "^1.13.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/side-channel-map": { + "version": "1.0.1", + "resolved": "https://npm.sinequa.com/side-channel-map/-/side-channel-map-1.0.1.tgz", + "integrity": "sha512-VCjCNfgMsby3tTdo02nbjtM/ewra6jPHmpThenkTYh8pG9ucZ/1P8So4u4FGBek/BjpOVsDCMoLA/iuBKIFXRA==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.2", + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.5", + "object-inspect": "^1.13.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/side-channel-weakmap": { + "version": "1.0.2", + "resolved": "https://npm.sinequa.com/side-channel-weakmap/-/side-channel-weakmap-1.0.2.tgz", + "integrity": "sha512-WPS/HvHQTYnHisLo9McqBHOJk2FkHO/tlpvldyrnem4aeQp4hai3gythswg6p01oSoTl58rcpiFAjF2br2Ak2A==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.2", + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.5", + "object-inspect": "^1.13.3", + "side-channel-map": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/signal-exit": { + "version": "4.1.0", + "resolved": "https://npm.sinequa.com/signal-exit/-/signal-exit-4.1.0.tgz", + "integrity": "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==", + "license": "ISC", + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/sigstore": { + "version": "2.3.1", + "resolved": "https://npm.sinequa.com/sigstore/-/sigstore-2.3.1.tgz", + "integrity": "sha512-8G+/XDU8wNsJOQS5ysDVO0Etg9/2uA5gR9l4ZwijjlwxBcrU6RPfwi2+jJmbP+Ap1Hlp/nVAaEO4Fj22/SL2gQ==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "@sigstore/bundle": "^2.3.2", + "@sigstore/core": "^1.0.0", + "@sigstore/protobuf-specs": "^0.3.2", + "@sigstore/sign": "^2.3.2", + "@sigstore/tuf": "^2.3.4", + "@sigstore/verify": "^1.2.1" + }, + "engines": { + "node": "^16.14.0 || >=18.0.0" + } + }, + "node_modules/slash": { + "version": "5.1.0", + "resolved": "https://npm.sinequa.com/slash/-/slash-5.1.0.tgz", + "integrity": "sha512-ZA6oR3T/pEyuqwMgAKT0/hAv8oAXckzbkmR0UkUosQ+Mc4RxGoJkRmwHgHufaenlyAgE1Mxgpdcrf75y6XcnDg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=14.16" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/slice-ansi": { + "version": "5.0.0", + "resolved": "https://npm.sinequa.com/slice-ansi/-/slice-ansi-5.0.0.tgz", + "integrity": "sha512-FC+lgizVPfie0kkhqUScwRu1O/lF6NOgJmlCgK+/LYxDCTk8sGelYaHDhFcDN+Sn3Cv+3VSa4Byeo+IMCzpMgQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-styles": "^6.0.0", + "is-fullwidth-code-point": "^4.0.0" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/slice-ansi?sponsor=1" + } + }, + "node_modules/slice-ansi/node_modules/ansi-styles": { + "version": "6.2.1", + "resolved": "https://npm.sinequa.com/ansi-styles/-/ansi-styles-6.2.1.tgz", + "integrity": "sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/smart-buffer": { + "version": "4.2.0", + "resolved": "https://npm.sinequa.com/smart-buffer/-/smart-buffer-4.2.0.tgz", + "integrity": "sha512-94hK0Hh8rPqQl2xXc3HsaBoOXKV20MToPkcXvwbISWLEs+64sBq5kFgn2kJDHb1Pry9yrP0dxrCI9RRci7RXKg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 6.0.0", + "npm": ">= 3.0.0" + } + }, + "node_modules/sockjs": { + "version": "0.3.24", + "resolved": "https://npm.sinequa.com/sockjs/-/sockjs-0.3.24.tgz", + "integrity": "sha512-GJgLTZ7vYb/JtPSSZ10hsOYIvEYsjbNU+zPdIHcUaWVNUEPivzxku31865sSSud0Da0W4lEeOPlmw93zLQchuQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "faye-websocket": "^0.11.3", + "uuid": "^8.3.2", + "websocket-driver": "^0.7.4" + } + }, + "node_modules/socks": { + "version": "2.8.3", + "resolved": "https://npm.sinequa.com/socks/-/socks-2.8.3.tgz", + "integrity": "sha512-l5x7VUUWbjVFbafGLxPWkYsHIhEvmF85tbIeFZWc8ZPtoMyybuEhL7Jye/ooC4/d48FgOjSJXgsF/AJPYCW8Zw==", + "dev": true, + "license": "MIT", + "dependencies": { + "ip-address": "^9.0.5", + "smart-buffer": "^4.2.0" + }, + "engines": { + "node": ">= 10.0.0", + "npm": ">= 3.0.0" + } + }, + "node_modules/socks-proxy-agent": { + "version": "8.0.5", + "resolved": "https://npm.sinequa.com/socks-proxy-agent/-/socks-proxy-agent-8.0.5.tgz", + "integrity": "sha512-HehCEsotFqbPW9sJ8WVYB6UbmIMv7kUUORIF2Nncq4VQvBfNBLibW9YZR5dlYCSUhwcD628pRllm7n+E+YTzJw==", + "dev": true, + "license": "MIT", + "dependencies": { + "agent-base": "^7.1.2", + "debug": "^4.3.4", + "socks": "^2.8.3" + }, + "engines": { + "node": ">= 14" + } + }, + "node_modules/source-map": { + "version": "0.7.4", + "resolved": "https://npm.sinequa.com/source-map/-/source-map-0.7.4.tgz", + "integrity": "sha512-l3BikUxvPOcn5E74dZiq5BGsTb5yEwhaTSzccU6t4sDOH8NWJCstKO5QT2CvtFoK6F0saL7p9xHAqHOlCPJygA==", + "license": "BSD-3-Clause", + "engines": { + "node": ">= 8" + } + }, + "node_modules/source-map-js": { + "version": "1.2.1", + "resolved": "https://npm.sinequa.com/source-map-js/-/source-map-js-1.2.1.tgz", + "integrity": "sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==", + "dev": true, + "license": "BSD-3-Clause", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/source-map-loader": { + "version": "5.0.0", + "resolved": "https://npm.sinequa.com/source-map-loader/-/source-map-loader-5.0.0.tgz", + "integrity": "sha512-k2Dur7CbSLcAH73sBcIkV5xjPV4SzqO1NJ7+XaQl8if3VODDUj3FNchNGpqgJSKbvUfJuhVdv8K2Eu8/TNl2eA==", + "dev": true, + "license": "MIT", + "dependencies": { + "iconv-lite": "^0.6.3", + "source-map-js": "^1.0.2" + }, + "engines": { + "node": ">= 18.12.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "webpack": "^5.72.1" + } + }, + "node_modules/source-map-loader/node_modules/iconv-lite": { + "version": "0.6.3", + "resolved": "https://npm.sinequa.com/iconv-lite/-/iconv-lite-0.6.3.tgz", + "integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==", + "dev": true, + "license": "MIT", + "dependencies": { + "safer-buffer": ">= 2.1.2 < 3.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/source-map-support": { + "version": "0.5.21", + "resolved": "https://npm.sinequa.com/source-map-support/-/source-map-support-0.5.21.tgz", + "integrity": "sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==", + "dev": true, + "license": "MIT", + "dependencies": { + "buffer-from": "^1.0.0", + "source-map": "^0.6.0" + } + }, + "node_modules/source-map-support/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://npm.sinequa.com/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true, + "license": "BSD-3-Clause", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/spdx-correct": { + "version": "3.2.0", + "resolved": "https://npm.sinequa.com/spdx-correct/-/spdx-correct-3.2.0.tgz", + "integrity": "sha512-kN9dJbvnySHULIluDHy32WHRUu3Og7B9sbY7tsFLctQkIqnMh3hErYgdMjTYuqmcXX+lK5T1lnUt3G7zNswmZA==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "spdx-expression-parse": "^3.0.0", + "spdx-license-ids": "^3.0.0" + } + }, + "node_modules/spdx-exceptions": { + "version": "2.5.0", + "resolved": "https://npm.sinequa.com/spdx-exceptions/-/spdx-exceptions-2.5.0.tgz", + "integrity": "sha512-PiU42r+xO4UbUS1buo3LPJkjlO7430Xn5SVAhdpzzsPHsjbYVflnnFdATgabnLude+Cqu25p6N+g2lw/PFsa4w==", + "dev": true, + "license": "CC-BY-3.0" + }, + "node_modules/spdx-expression-parse": { + "version": "3.0.1", + "resolved": "https://npm.sinequa.com/spdx-expression-parse/-/spdx-expression-parse-3.0.1.tgz", + "integrity": "sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "spdx-exceptions": "^2.1.0", + "spdx-license-ids": "^3.0.0" + } + }, + "node_modules/spdx-license-ids": { + "version": "3.0.21", + "resolved": "https://npm.sinequa.com/spdx-license-ids/-/spdx-license-ids-3.0.21.tgz", + "integrity": "sha512-Bvg/8F5XephndSK3JffaRqdT+gyhfqIPwDHpX80tJrF8QQRYMo8sNMeaZ2Dp5+jhwKnUmIOyFFQfHRkjJm5nXg==", + "dev": true, + "license": "CC0-1.0" + }, + "node_modules/spdy": { + "version": "4.0.2", + "resolved": "https://npm.sinequa.com/spdy/-/spdy-4.0.2.tgz", + "integrity": "sha512-r46gZQZQV+Kl9oItvl1JZZqJKGr+oEkB08A6BzkiR7593/7IbtuncXHd2YoYeTsG4157ZssMu9KYvUHLcjcDoA==", + "dev": true, + "license": "MIT", + "dependencies": { + "debug": "^4.1.0", + "handle-thing": "^2.0.0", + "http-deceiver": "^1.2.7", + "select-hose": "^2.0.0", + "spdy-transport": "^3.0.0" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/spdy-transport": { + "version": "3.0.0", + "resolved": "https://npm.sinequa.com/spdy-transport/-/spdy-transport-3.0.0.tgz", + "integrity": "sha512-hsLVFE5SjA6TCisWeJXFKniGGOpBgMLmerfO2aCyCU5s7nJ/rpAepqmFifv/GCbSbueEeAJJnmSQ2rKC/g8Fcw==", + "dev": true, + "license": "MIT", + "dependencies": { + "debug": "^4.1.0", + "detect-node": "^2.0.4", + "hpack.js": "^2.1.6", + "obuf": "^1.1.2", + "readable-stream": "^3.0.6", + "wbuf": "^1.7.3" + } + }, + "node_modules/sprintf-js": { + "version": "1.1.3", + "resolved": "https://npm.sinequa.com/sprintf-js/-/sprintf-js-1.1.3.tgz", + "integrity": "sha512-Oo+0REFV59/rz3gfJNKQiBlwfHaSESl1pcGyABQsnnIfWOFt6JNj5gCog2U6MLZ//IGYD+nA8nI+mTShREReaA==", + "dev": true, + "license": "BSD-3-Clause" + }, + "node_modules/ssri": { + "version": "10.0.6", + "resolved": "https://npm.sinequa.com/ssri/-/ssri-10.0.6.tgz", + "integrity": "sha512-MGrFH9Z4NP9Iyhqn16sDtBpRRNJ0Y2hNa6D65h736fVSaPCHr4DM4sWUNvVaSuC+0OBGhwsrydQwmgfg5LncqQ==", + "dev": true, + "license": "ISC", + "dependencies": { + "minipass": "^7.0.3" + }, + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/statuses": { + "version": "2.0.1", + "resolved": "https://npm.sinequa.com/statuses/-/statuses-2.0.1.tgz", + "integrity": "sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/string_decoder": { + "version": "1.3.0", + "resolved": "https://npm.sinequa.com/string_decoder/-/string_decoder-1.3.0.tgz", + "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==", + "license": "MIT", + "dependencies": { + "safe-buffer": "~5.2.0" + } + }, + "node_modules/string-argv": { + "version": "0.3.2", + "resolved": "https://npm.sinequa.com/string-argv/-/string-argv-0.3.2.tgz", + "integrity": "sha512-aqD2Q0144Z+/RqG52NeHEkZauTAUWJO8c6yTftGJKO3Tja5tUgIfmIl6kExvhtxSDP7fXB6DvzkfMpCd/F3G+Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.6.19" + } + }, + "node_modules/string-width": { + "version": "5.1.2", + "resolved": "https://npm.sinequa.com/string-width/-/string-width-5.1.2.tgz", + "integrity": "sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==", + "license": "MIT", + "dependencies": { + "eastasianwidth": "^0.2.0", + "emoji-regex": "^9.2.2", + "strip-ansi": "^7.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/string-width-cjs": { + "name": "string-width", + "version": "4.2.3", + "resolved": "https://npm.sinequa.com/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "license": "MIT", + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/string-width-cjs/node_modules/emoji-regex": { + "version": "8.0.0", + "resolved": "https://npm.sinequa.com/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "license": "MIT" + }, + "node_modules/string-width-cjs/node_modules/is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://npm.sinequa.com/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/string-width/node_modules/ansi-regex": { + "version": "6.1.0", + "resolved": "https://npm.sinequa.com/ansi-regex/-/ansi-regex-6.1.0.tgz", + "integrity": "sha512-7HSX4QQb4CspciLpVFwyRe79O3xsIZDDLER21kERQ71oaPodF8jL725AgJMFAYbooIqolJoRLuM81SpeUkpkvA==", + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-regex?sponsor=1" + } + }, + "node_modules/string-width/node_modules/strip-ansi": { + "version": "7.1.0", + "resolved": "https://npm.sinequa.com/strip-ansi/-/strip-ansi-7.1.0.tgz", + "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==", + "license": "MIT", + "dependencies": { + "ansi-regex": "^6.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/strip-ansi?sponsor=1" + } + }, + "node_modules/strip-ansi": { + "version": "6.0.1", + "resolved": "https://npm.sinequa.com/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "license": "MIT", + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/strip-ansi-cjs": { + "name": "strip-ansi", + "version": "6.0.1", + "resolved": "https://npm.sinequa.com/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "license": "MIT", + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/strip-final-newline": { + "version": "3.0.0", + "resolved": "https://npm.sinequa.com/strip-final-newline/-/strip-final-newline-3.0.0.tgz", + "integrity": "sha512-dOESqjYr96iWYylGObzd39EuNTa5VJxyvVAEm5Jnh7KGo75V43Hk1odPQkNDyXNmUR6k+gEiDVXnjB8HJ3crXw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/strip-json-comments": { + "version": "3.1.1", + "resolved": "https://npm.sinequa.com/strip-json-comments/-/strip-json-comments-3.1.1.tgz", + "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", + "license": "MIT", + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/sucrase": { + "version": "3.35.0", + "resolved": "https://npm.sinequa.com/sucrase/-/sucrase-3.35.0.tgz", + "integrity": "sha512-8EbVDiu9iN/nESwxeSxDKe0dunta1GOlHufmSSXxMD2z2/tMZpDMpvXQGsc+ajGo8y2uYUmixaSRUc/QPoQ0GA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jridgewell/gen-mapping": "^0.3.2", + "commander": "^4.0.0", + "glob": "^10.3.10", + "lines-and-columns": "^1.1.6", + "mz": "^2.7.0", + "pirates": "^4.0.1", + "ts-interface-checker": "^0.1.9" + }, + "bin": { + "sucrase": "bin/sucrase", + "sucrase-node": "bin/sucrase-node" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + } + }, + "node_modules/sucrase/node_modules/commander": { + "version": "4.1.1", + "resolved": "https://npm.sinequa.com/commander/-/commander-4.1.1.tgz", + "integrity": "sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 6" + } + }, + "node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://npm.sinequa.com/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "license": "MIT", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/supports-preserve-symlinks-flag": { + "version": "1.0.0", + "resolved": "https://npm.sinequa.com/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", + "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/symbol-observable": { + "version": "4.0.0", + "resolved": "https://npm.sinequa.com/symbol-observable/-/symbol-observable-4.0.0.tgz", + "integrity": "sha512-b19dMThMV4HVFynSAM1++gBHAbk2Tc/osgLIBZMKsyqh34jb2e8Os7T6ZW/Bt3pJFdBTd2JwAnAAEQV7rSNvcQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10" + } + }, + "node_modules/tailwind-merge": { + "version": "2.6.0", + "resolved": "https://npm.sinequa.com/tailwind-merge/-/tailwind-merge-2.6.0.tgz", + "integrity": "sha512-P+Vu1qXfzediirmHOC3xKGAYeZtPcV9g76X+xg2FD4tYgR71ewMA35Y3sCz3zhiN/dwefRpJX0yBcgwi1fXNQA==", + "dev": true, + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/dcastil" + } + }, + "node_modules/tailwind-variants": { + "version": "0.3.1", + "resolved": "https://npm.sinequa.com/tailwind-variants/-/tailwind-variants-0.3.1.tgz", + "integrity": "sha512-krn67M3FpPwElg4FsZrOQd0U26o7UDH/QOkK8RNaiCCrr052f6YJPBUfNKnPo/s/xRzNPtv1Mldlxsg8Tb46BQ==", + "license": "MIT", + "dependencies": { + "tailwind-merge": "2.5.4" + }, + "engines": { + "node": ">=16.x", + "pnpm": ">=7.x" + }, + "peerDependencies": { + "tailwindcss": "*" + } + }, + "node_modules/tailwind-variants/node_modules/tailwind-merge": { + "version": "2.5.4", + "resolved": "https://npm.sinequa.com/tailwind-merge/-/tailwind-merge-2.5.4.tgz", + "integrity": "sha512-0q8cfZHMu9nuYP/b5Shb7Y7Sh1B7Nnl5GqNr1U+n2p6+mybvRtayrQ+0042Z5byvTA8ihjlP8Odo8/VnHbZu4Q==", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/dcastil" + } + }, + "node_modules/tailwindcss": { + "version": "3.4.17", + "resolved": "https://npm.sinequa.com/tailwindcss/-/tailwindcss-3.4.17.tgz", + "integrity": "sha512-w33E2aCvSDP0tW9RZuNXadXlkHXqFzSkQew/aIa2i/Sj8fThxwovwlXHSPXTbAHwEIhBFXAedUhP2tueAKP8Og==", + "dev": true, + "license": "MIT", + "dependencies": { + "@alloc/quick-lru": "^5.2.0", + "arg": "^5.0.2", + "chokidar": "^3.6.0", + "didyoumean": "^1.2.2", + "dlv": "^1.1.3", + "fast-glob": "^3.3.2", + "glob-parent": "^6.0.2", + "is-glob": "^4.0.3", + "jiti": "^1.21.6", + "lilconfig": "^3.1.3", + "micromatch": "^4.0.8", + "normalize-path": "^3.0.0", + "object-hash": "^3.0.0", + "picocolors": "^1.1.1", + "postcss": "^8.4.47", + "postcss-import": "^15.1.0", + "postcss-js": "^4.0.1", + "postcss-load-config": "^4.0.2", + "postcss-nested": "^6.2.0", + "postcss-selector-parser": "^6.1.2", + "resolve": "^1.22.8", + "sucrase": "^3.35.0" + }, + "bin": { + "tailwind": "lib/cli.js", + "tailwindcss": "lib/cli.js" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/tailwindcss/node_modules/chokidar": { + "version": "3.6.0", + "resolved": "https://npm.sinequa.com/chokidar/-/chokidar-3.6.0.tgz", + "integrity": "sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==", + "dev": true, + "license": "MIT", + "dependencies": { + "anymatch": "~3.1.2", + "braces": "~3.0.2", + "glob-parent": "~5.1.2", + "is-binary-path": "~2.1.0", + "is-glob": "~4.0.1", + "normalize-path": "~3.0.0", + "readdirp": "~3.6.0" + }, + "engines": { + "node": ">= 8.10.0" + }, + "funding": { + "url": "https://paulmillr.com/funding/" + }, + "optionalDependencies": { + "fsevents": "~2.3.2" + } + }, + "node_modules/tailwindcss/node_modules/chokidar/node_modules/glob-parent": { + "version": "5.1.2", + "resolved": "https://npm.sinequa.com/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "dev": true, + "license": "ISC", + "dependencies": { + "is-glob": "^4.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/tailwindcss/node_modules/picomatch": { + "version": "2.3.1", + "resolved": "https://npm.sinequa.com/picomatch/-/picomatch-2.3.1.tgz", + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8.6" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/tailwindcss/node_modules/postcss-selector-parser": { + "version": "6.1.2", + "resolved": "https://npm.sinequa.com/postcss-selector-parser/-/postcss-selector-parser-6.1.2.tgz", + "integrity": "sha512-Q8qQfPiZ+THO/3ZrOrO0cJJKfpYCagtMUkXbnEfmgUjwXg6z/WBeOyS9APBBPCTSiDV+s4SwQGu8yFsiMRIudg==", + "dev": true, + "license": "MIT", + "dependencies": { + "cssesc": "^3.0.0", + "util-deprecate": "^1.0.2" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/tailwindcss/node_modules/readdirp": { + "version": "3.6.0", + "resolved": "https://npm.sinequa.com/readdirp/-/readdirp-3.6.0.tgz", + "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", + "dev": true, + "license": "MIT", + "dependencies": { + "picomatch": "^2.2.1" + }, + "engines": { + "node": ">=8.10.0" + } + }, + "node_modules/tapable": { + "version": "2.2.1", + "resolved": "https://npm.sinequa.com/tapable/-/tapable-2.2.1.tgz", + "integrity": "sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/tar": { + "version": "6.2.1", + "resolved": "https://npm.sinequa.com/tar/-/tar-6.2.1.tgz", + "integrity": "sha512-DZ4yORTwrbTj/7MZYq2w+/ZFdI6OZ/f9SFHR+71gIVUZhOQPHzVCLpvRnPgyaMpfWxxk/4ONva3GQSyNIKRv6A==", + "dev": true, + "license": "ISC", + "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" + } + }, + "node_modules/tar/node_modules/fs-minipass": { + "version": "2.1.0", + "resolved": "https://npm.sinequa.com/fs-minipass/-/fs-minipass-2.1.0.tgz", + "integrity": "sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg==", + "dev": true, + "license": "ISC", + "dependencies": { + "minipass": "^3.0.0" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/tar/node_modules/fs-minipass/node_modules/minipass": { + "version": "3.3.6", + "resolved": "https://npm.sinequa.com/minipass/-/minipass-3.3.6.tgz", + "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==", + "dev": true, + "license": "ISC", + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/tar/node_modules/minipass": { + "version": "5.0.0", + "resolved": "https://npm.sinequa.com/minipass/-/minipass-5.0.0.tgz", + "integrity": "sha512-3FnjYuehv9k6ovOEbyOswadCDPX1piCfhV8ncmYtHOjuPwylVWsghTLo7rabjC3Rx5xD4HDx8Wm1xnMF7S5qFQ==", + "dev": true, + "license": "ISC", + "engines": { + "node": ">=8" + } + }, + "node_modules/tar/node_modules/yallist": { + "version": "4.0.0", + "resolved": "https://npm.sinequa.com/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "dev": true, + "license": "ISC" + }, + "node_modules/terser": { + "version": "5.31.6", + "resolved": "https://npm.sinequa.com/terser/-/terser-5.31.6.tgz", + "integrity": "sha512-PQ4DAriWzKj+qgehQ7LK5bQqCFNMmlhjR2PFFLuqGCpuCAauxemVBWwWOxo3UIwWQx8+Pr61Df++r76wDmkQBg==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "@jridgewell/source-map": "^0.3.3", + "acorn": "^8.8.2", + "commander": "^2.20.0", + "source-map-support": "~0.5.20" + }, + "bin": { + "terser": "bin/terser" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/terser-webpack-plugin": { + "version": "5.3.11", + "resolved": "https://npm.sinequa.com/terser-webpack-plugin/-/terser-webpack-plugin-5.3.11.tgz", + "integrity": "sha512-RVCsMfuD0+cTt3EwX8hSl2Ks56EbFHWmhluwcqoPKtBnfjiT6olaq7PRIRfhyU8nnC2MrnDrBLfrD/RGE+cVXQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jridgewell/trace-mapping": "^0.3.25", + "jest-worker": "^27.4.5", + "schema-utils": "^4.3.0", + "serialize-javascript": "^6.0.2", + "terser": "^5.31.1" + }, + "engines": { + "node": ">= 10.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "webpack": "^5.1.0" + }, + "peerDependenciesMeta": { + "@swc/core": { + "optional": true + }, + "esbuild": { + "optional": true + }, + "uglify-js": { + "optional": true + } + } + }, + "node_modules/terser/node_modules/commander": { + "version": "2.20.3", + "resolved": "https://npm.sinequa.com/commander/-/commander-2.20.3.tgz", + "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/thenify": { + "version": "3.3.1", + "resolved": "https://npm.sinequa.com/thenify/-/thenify-3.3.1.tgz", + "integrity": "sha512-RVZSIV5IG10Hk3enotrhvz0T9em6cyHBLkH/YAZuKqd8hRkKhSfCGIcP2KUY0EPxndzANBmNllzWPwak+bheSw==", + "dev": true, + "license": "MIT", + "dependencies": { + "any-promise": "^1.0.0" + } + }, + "node_modules/thenify-all": { + "version": "1.6.0", + "resolved": "https://npm.sinequa.com/thenify-all/-/thenify-all-1.6.0.tgz", + "integrity": "sha512-RNxQH/qI8/t3thXJDwcstUO4zeqo64+Uy/+sNVRBx4Xn2OX+OZ9oP+iJnNFqplFra2ZUVeKCSa2oVWi3T4uVmA==", + "dev": true, + "license": "MIT", + "dependencies": { + "thenify": ">= 3.1.0 < 4" + }, + "engines": { + "node": ">=0.8" + } + }, + "node_modules/thingies": { + "version": "1.21.0", + "resolved": "https://npm.sinequa.com/thingies/-/thingies-1.21.0.tgz", + "integrity": "sha512-hsqsJsFMsV+aD4s3CWKk85ep/3I9XzYV/IXaSouJMYIoDlgyi11cBhsqYe9/geRfB0YIikBQg6raRaM+nIMP9g==", + "dev": true, + "license": "Unlicense", + "engines": { + "node": ">=10.18" + }, + "peerDependencies": { + "tslib": "^2" + } + }, + "node_modules/thunky": { + "version": "1.1.0", + "resolved": "https://npm.sinequa.com/thunky/-/thunky-1.1.0.tgz", + "integrity": "sha512-eHY7nBftgThBqOyHGVN+l8gF0BucP09fMo0oO/Lb0w1OF80dJv+lDVpXG60WMQvkcxAkNybKsrEIE3ZtKGmPrA==", + "dev": true, + "license": "MIT" + }, + "node_modules/tmp": { + "version": "0.0.33", + "resolved": "https://npm.sinequa.com/tmp/-/tmp-0.0.33.tgz", + "integrity": "sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==", + "dev": true, + "license": "MIT", + "dependencies": { + "os-tmpdir": "~1.0.2" + }, + "engines": { + "node": ">=0.6.0" + } + }, + "node_modules/to-regex-range": { + "version": "5.0.1", + "resolved": "https://npm.sinequa.com/to-regex-range/-/to-regex-range-5.0.1.tgz", + "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-number": "^7.0.0" + }, + "engines": { + "node": ">=8.0" + } + }, + "node_modules/toidentifier": { + "version": "1.0.1", + "resolved": "https://npm.sinequa.com/toidentifier/-/toidentifier-1.0.1.tgz", + "integrity": "sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.6" + } + }, + "node_modules/tough-cookie": { + "version": "4.1.4", + "resolved": "https://npm.sinequa.com/tough-cookie/-/tough-cookie-4.1.4.tgz", + "integrity": "sha512-Loo5UUvLD9ScZ6jh8beX1T6sO1w2/MpCRpEP7V280GKMVUQ0Jzar2U3UJPsrdbziLEMMhu3Ujnq//rhiFuIeag==", + "license": "BSD-3-Clause", + "dependencies": { + "psl": "^1.1.33", + "punycode": "^2.1.1", + "universalify": "^0.2.0", + "url-parse": "^1.5.3" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/tough-cookie/node_modules/universalify": { + "version": "0.2.0", + "resolved": "https://npm.sinequa.com/universalify/-/universalify-0.2.0.tgz", + "integrity": "sha512-CJ1QgKmNg3CwvAv/kOFmtnEN05f0D/cn9QntgNOQlQF9dgvVTHj3t+8JPdjqawCHk7V/KA+fbUqzZ9XWhcqPUg==", + "license": "MIT", + "engines": { + "node": ">= 4.0.0" + } + }, + "node_modules/tr46": { + "version": "0.0.3", + "resolved": "https://npm.sinequa.com/tr46/-/tr46-0.0.3.tgz", + "integrity": "sha1-gYT9NH2snNwYWZLzpmIuFLnZq2o=", + "license": "MIT" + }, + "node_modules/tree-dump": { + "version": "1.0.2", + "resolved": "https://npm.sinequa.com/tree-dump/-/tree-dump-1.0.2.tgz", + "integrity": "sha512-dpev9ABuLWdEubk+cIaI9cHwRNNDjkBBLXTwI4UCUFdQ5xXKqNXoK4FEciw/vxf+NQ7Cb7sGUyeUtORvHIdRXQ==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": ">=10.0" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/streamich" + }, + "peerDependencies": { + "tslib": "2" + } + }, + "node_modules/tree-kill": { + "version": "1.2.2", + "resolved": "https://npm.sinequa.com/tree-kill/-/tree-kill-1.2.2.tgz", + "integrity": "sha512-L0Orpi8qGpRG//Nd+H90vFB+3iHnue1zSSGmNOOCh1GLJ7rUKVwV2HvijphGQS2UmhUZewS9VgvxYIdgr+fG1A==", + "dev": true, + "license": "MIT", + "bin": { + "tree-kill": "cli.js" + } + }, + "node_modules/ts-interface-checker": { + "version": "0.1.13", + "resolved": "https://npm.sinequa.com/ts-interface-checker/-/ts-interface-checker-0.1.13.tgz", + "integrity": "sha512-Y/arvbn+rrz3JCKl9C4kVNfTfSm2/mEp5FSz5EsZSANGPSlQrpRI5M4PKF+mJnE52jOO90PnPSc3Ur3bTQw0gA==", + "dev": true, + "license": "Apache-2.0" + }, + "node_modules/tslib": { + "version": "2.8.1", + "resolved": "https://npm.sinequa.com/tslib/-/tslib-2.8.1.tgz", + "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==", + "license": "0BSD" + }, + "node_modules/tuf-js": { + "version": "2.2.1", + "resolved": "https://npm.sinequa.com/tuf-js/-/tuf-js-2.2.1.tgz", + "integrity": "sha512-GwIJau9XaA8nLVbUXsN3IlFi7WmQ48gBUrl3FTkkL/XLu/POhBzfmX9hd33FNMX1qAsfl6ozO1iMmW9NC8YniA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@tufjs/models": "2.0.1", + "debug": "^4.3.4", + "make-fetch-happen": "^13.0.1" + }, + "engines": { + "node": "^16.14.0 || >=18.0.0" + } + }, + "node_modules/type-fest": { + "version": "0.21.3", + "resolved": "https://npm.sinequa.com/type-fest/-/type-fest-0.21.3.tgz", + "integrity": "sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==", + "dev": true, + "license": "(MIT OR CC0-1.0)", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/type-is": { + "version": "1.6.18", + "resolved": "https://npm.sinequa.com/type-is/-/type-is-1.6.18.tgz", + "integrity": "sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==", + "dev": true, + "license": "MIT", + "dependencies": { + "media-typer": "0.3.0", + "mime-types": "~2.1.24" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/typed-assert": { + "version": "1.0.9", + "resolved": "https://npm.sinequa.com/typed-assert/-/typed-assert-1.0.9.tgz", + "integrity": "sha512-KNNZtayBCtmnNmbo5mG47p1XsCyrx6iVqomjcZnec/1Y5GGARaxPs6r49RnSPeUP3YjNYiU9sQHAtY4BBvnZwg==", + "dev": true, + "license": "MIT" + }, + "node_modules/typescript": { + "version": "5.4.5", + "resolved": "https://npm.sinequa.com/typescript/-/typescript-5.4.5.tgz", + "integrity": "sha512-vcI4UpRgg81oIRUFwR0WSIHKt11nJ7SAVlYNIu+QpqeyXP+gpQJy/Z4+F0aGxSE4MqwjyXvW/TzgkLAx2AGHwQ==", + "dev": true, + "license": "Apache-2.0", + "bin": { + "tsc": "bin/tsc", + "tsserver": "bin/tsserver" + }, + "engines": { + "node": ">=14.17" + } + }, + "node_modules/undici-types": { + "version": "6.20.0", + "resolved": "https://npm.sinequa.com/undici-types/-/undici-types-6.20.0.tgz", + "integrity": "sha512-Ny6QZ2Nju20vw1SRHe3d9jVu6gJ+4e3+MMpqu7pqE5HT6WsTSlce++GQmK5UXS8mzV8DSYHrQH+Xrf2jVcuKNg==", + "dev": true, + "license": "MIT" + }, + "node_modules/unicode-canonical-property-names-ecmascript": { + "version": "2.0.1", + "resolved": "https://npm.sinequa.com/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-2.0.1.tgz", + "integrity": "sha512-dA8WbNeb2a6oQzAQ55YlT5vQAWGV9WXOsi3SskE3bcCdM0P4SDd+24zS/OCacdRq5BkdsRj9q3Pg6YyQoxIGqg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/unicode-match-property-ecmascript": { + "version": "2.0.0", + "resolved": "https://npm.sinequa.com/unicode-match-property-ecmascript/-/unicode-match-property-ecmascript-2.0.0.tgz", + "integrity": "sha512-5kaZCrbp5mmbz5ulBkDkbY0SsPOjKqVS35VpL9ulMPfSl0J0Xsm+9Evphv9CoIZFwre7aJoa94AY6seMKGVN5Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "unicode-canonical-property-names-ecmascript": "^2.0.0", + "unicode-property-aliases-ecmascript": "^2.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/unicode-match-property-value-ecmascript": { + "version": "2.2.0", + "resolved": "https://npm.sinequa.com/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-2.2.0.tgz", + "integrity": "sha512-4IehN3V/+kkr5YeSSDDQG8QLqO26XpL2XP3GQtqwlT/QYSECAwFztxVHjlbh0+gjJ3XmNLS0zDsbgs9jWKExLg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/unicode-property-aliases-ecmascript": { + "version": "2.1.0", + "resolved": "https://npm.sinequa.com/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-2.1.0.tgz", + "integrity": "sha512-6t3foTQI9qne+OZoVQB/8x8rk2k1eVy1gRXhV3oFQ5T6R1dqQ1xtin3XqSlx3+ATBkliTaR/hHyJBm+LVPNM8w==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/unicorn-magic": { + "version": "0.1.0", + "resolved": "https://npm.sinequa.com/unicorn-magic/-/unicorn-magic-0.1.0.tgz", + "integrity": "sha512-lRfVq8fE8gz6QMBuDM6a+LO3IAzTi05H6gCVaUpir2E1Rwpo4ZUog45KpNXKC/Mn3Yb9UDuHumeFTo9iV/D9FQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/unique-filename": { + "version": "3.0.0", + "resolved": "https://npm.sinequa.com/unique-filename/-/unique-filename-3.0.0.tgz", + "integrity": "sha512-afXhuC55wkAmZ0P18QsVE6kp8JaxrEokN2HGIoIVv2ijHQd419H0+6EigAFcIzXeMIkcIkNBpB3L/DXB3cTS/g==", + "dev": true, + "license": "ISC", + "dependencies": { + "unique-slug": "^4.0.0" + }, + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/unique-slug": { + "version": "4.0.0", + "resolved": "https://npm.sinequa.com/unique-slug/-/unique-slug-4.0.0.tgz", + "integrity": "sha512-WrcA6AyEfqDX5bWige/4NQfPZMtASNVxdmWR76WESYQVAACSgWcR6e9i0mofqqBxYFtL4oAxPIptY73/0YE1DQ==", + "dev": true, + "license": "ISC", + "dependencies": { + "imurmurhash": "^0.1.4" + }, + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/universalify": { + "version": "2.0.1", + "resolved": "https://npm.sinequa.com/universalify/-/universalify-2.0.1.tgz", + "integrity": "sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==", + "license": "MIT", + "engines": { + "node": ">= 10.0.0" + } + }, + "node_modules/unpipe": { + "version": "1.0.0", + "resolved": "https://npm.sinequa.com/unpipe/-/unpipe-1.0.0.tgz", + "integrity": "sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw=", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/update-browserslist-db": { + "version": "1.1.2", + "resolved": "https://npm.sinequa.com/update-browserslist-db/-/update-browserslist-db-1.1.2.tgz", + "integrity": "sha512-PPypAm5qvlD7XMZC3BujecnaOxwhrtoFR+Dqkk5Aa/6DssiH0ibKoketaj9w8LP7Bont1rYeoV5plxD7RTEPRg==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/browserslist" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "dependencies": { + "escalade": "^3.2.0", + "picocolors": "^1.1.1" + }, + "bin": { + "update-browserslist-db": "cli.js" + }, + "peerDependencies": { + "browserslist": ">= 4.21.0" + } + }, + "node_modules/uri-js": { + "version": "4.4.1", + "resolved": "https://npm.sinequa.com/uri-js/-/uri-js-4.4.1.tgz", + "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "punycode": "^2.1.0" + } + }, + "node_modules/url-parse": { + "version": "1.5.10", + "resolved": "https://npm.sinequa.com/url-parse/-/url-parse-1.5.10.tgz", + "integrity": "sha512-WypcfiRhfeUP9vvF0j6rw0J3hrWrw6iZv3+22h6iRMJ/8z1Tj6XfLP4DsUix5MhMPnXpiHDoKyoZ/bdCkwBCiQ==", + "license": "MIT", + "dependencies": { + "querystringify": "^2.1.1", + "requires-port": "^1.0.0" + } + }, + "node_modules/util-deprecate": { + "version": "1.0.2", + "resolved": "https://npm.sinequa.com/util-deprecate/-/util-deprecate-1.0.2.tgz", + "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=", + "license": "MIT" + }, + "node_modules/utils-merge": { + "version": "1.0.1", + "resolved": "https://npm.sinequa.com/utils-merge/-/utils-merge-1.0.1.tgz", + "integrity": "sha1-n5VxD1CiZ5R7LMwSR0HBAoQn5xM=", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4.0" + } + }, + "node_modules/uuid": { + "version": "8.3.2", + "resolved": "https://npm.sinequa.com/uuid/-/uuid-8.3.2.tgz", + "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==", + "dev": true, + "license": "MIT", + "bin": { + "uuid": "dist/bin/uuid" + } + }, + "node_modules/validate-npm-package-license": { + "version": "3.0.4", + "resolved": "https://npm.sinequa.com/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz", + "integrity": "sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "spdx-correct": "^3.0.0", + "spdx-expression-parse": "^3.0.0" + } + }, + "node_modules/validate-npm-package-name": { + "version": "5.0.1", + "resolved": "https://npm.sinequa.com/validate-npm-package-name/-/validate-npm-package-name-5.0.1.tgz", + "integrity": "sha512-OljLrQ9SQdOUqTaQxqL5dEfZWrXExyyWsozYlAWFawPVNuD83igl7uJD2RTkNMbniIYgt8l81eCJGIdQF7avLQ==", + "dev": true, + "license": "ISC", + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/vary": { + "version": "1.1.2", + "resolved": "https://npm.sinequa.com/vary/-/vary-1.1.2.tgz", + "integrity": "sha1-IpnwLG3tMNSllhsLn3RSShj2NPw=", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/vite": { + "version": "5.4.14", + "resolved": "https://npm.sinequa.com/vite/-/vite-5.4.14.tgz", + "integrity": "sha512-EK5cY7Q1D8JNhSaPKVK4pwBFvaTmZxEnoKXLG/U9gmdDcihQGNzFlgIvaxezFR4glP1LsuiedwMBqCXH3wZccA==", + "dev": true, + "license": "MIT", + "dependencies": { + "esbuild": "^0.21.3", + "postcss": "^8.4.43", + "rollup": "^4.20.0" + }, + "bin": { + "vite": "bin/vite.js" + }, + "engines": { + "node": "^18.0.0 || >=20.0.0" + }, + "funding": { + "url": "https://github.com/vitejs/vite?sponsor=1" + }, + "optionalDependencies": { + "fsevents": "~2.3.3" + }, + "peerDependencies": { + "@types/node": "^18.0.0 || >=20.0.0", + "less": "*", + "lightningcss": "^1.21.0", + "sass": "*", + "sass-embedded": "*", + "stylus": "*", + "sugarss": "*", + "terser": "^5.4.0" + }, + "peerDependenciesMeta": { + "@types/node": { + "optional": true + }, + "less": { + "optional": true + }, + "lightningcss": { + "optional": true + }, + "sass": { + "optional": true + }, + "sass-embedded": { + "optional": true + }, + "stylus": { + "optional": true + }, + "sugarss": { + "optional": true + }, + "terser": { + "optional": true + } + } + }, + "node_modules/watchpack": { + "version": "2.4.1", + "resolved": "https://npm.sinequa.com/watchpack/-/watchpack-2.4.1.tgz", + "integrity": "sha512-8wrBCMtVhqcXP2Sup1ctSkga6uc2Bx0IIvKyT7yTFier5AXHooSI+QyQQAtTb7+E0IUCCKyTFmXqdqgum2XWGg==", + "dev": true, + "license": "MIT", + "dependencies": { + "glob-to-regexp": "^0.4.1", + "graceful-fs": "^4.1.2" + }, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/wbuf": { + "version": "1.7.3", + "resolved": "https://npm.sinequa.com/wbuf/-/wbuf-1.7.3.tgz", + "integrity": "sha512-O84QOnr0icsbFGLS0O3bI5FswxzRr8/gHwWkDlQFskhSPryQXvrTMxjxGP4+iWYoauLoBvfDpkrOauZ+0iZpDA==", + "dev": true, + "license": "MIT", + "dependencies": { + "minimalistic-assert": "^1.0.0" + } + }, + "node_modules/wcwidth": { + "version": "1.0.1", + "resolved": "https://npm.sinequa.com/wcwidth/-/wcwidth-1.0.1.tgz", + "integrity": "sha1-8LDc+RW8X/FSivrbLA4XtTLaL+g=", + "license": "MIT", + "dependencies": { + "defaults": "^1.0.3" + } + }, + "node_modules/weak-lru-cache": { + "version": "1.2.2", + "resolved": "https://npm.sinequa.com/weak-lru-cache/-/weak-lru-cache-1.2.2.tgz", + "integrity": "sha512-DEAoo25RfSYMuTGc9vPJzZcZullwIqRDSI9LOy+fkCJPi6hykCnfKaXTuPBDuXAUcqHXyOgFtHNp/kB2FjYHbw==", + "dev": true, + "license": "MIT" + }, + "node_modules/webidl-conversions": { + "version": "3.0.1", + "resolved": "https://npm.sinequa.com/webidl-conversions/-/webidl-conversions-3.0.1.tgz", + "integrity": "sha1-JFNCdeKnvGvnvIZhHMFq4KVlSHE=", + "license": "BSD-2-Clause" + }, + "node_modules/webpack": { + "version": "5.94.0", + "resolved": "https://npm.sinequa.com/webpack/-/webpack-5.94.0.tgz", + "integrity": "sha512-KcsGn50VT+06JH/iunZJedYGUJS5FGjow8wb9c0v5n1Om8O1g4L6LjtfxwlXIATopoQu+vOXXa7gYisWxCoPyg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/estree": "^1.0.5", + "@webassemblyjs/ast": "^1.12.1", + "@webassemblyjs/wasm-edit": "^1.12.1", + "@webassemblyjs/wasm-parser": "^1.12.1", + "acorn": "^8.7.1", + "acorn-import-attributes": "^1.9.5", + "browserslist": "^4.21.10", + "chrome-trace-event": "^1.0.2", + "enhanced-resolve": "^5.17.1", + "es-module-lexer": "^1.2.1", + "eslint-scope": "5.1.1", + "events": "^3.2.0", + "glob-to-regexp": "^0.4.1", + "graceful-fs": "^4.2.11", + "json-parse-even-better-errors": "^2.3.1", + "loader-runner": "^4.2.0", + "mime-types": "^2.1.27", + "neo-async": "^2.6.2", + "schema-utils": "^3.2.0", + "tapable": "^2.1.1", + "terser-webpack-plugin": "^5.3.10", + "watchpack": "^2.4.1", + "webpack-sources": "^3.2.3" + }, + "bin": { + "webpack": "bin/webpack.js" + }, + "engines": { + "node": ">=10.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependenciesMeta": { + "webpack-cli": { + "optional": true + } + } + }, + "node_modules/webpack-dev-middleware": { + "version": "7.4.2", + "resolved": "https://npm.sinequa.com/webpack-dev-middleware/-/webpack-dev-middleware-7.4.2.tgz", + "integrity": "sha512-xOO8n6eggxnwYpy1NlzUKpvrjfJTvae5/D6WOK0S2LSo7vjmo5gCM1DbLUmFqrMTJP+W/0YZNctm7jasWvLuBA==", + "dev": true, + "license": "MIT", + "dependencies": { + "colorette": "^2.0.10", + "memfs": "^4.6.0", + "mime-types": "^2.1.31", + "on-finished": "^2.4.1", + "range-parser": "^1.2.1", + "schema-utils": "^4.0.0" + }, + "engines": { + "node": ">= 18.12.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "webpack": "^5.0.0" + }, + "peerDependenciesMeta": { + "webpack": { + "optional": true + } + } + }, + "node_modules/webpack-dev-server": { + "version": "5.0.4", + "resolved": "https://npm.sinequa.com/webpack-dev-server/-/webpack-dev-server-5.0.4.tgz", + "integrity": "sha512-dljXhUgx3HqKP2d8J/fUMvhxGhzjeNVarDLcbO/EWMSgRizDkxHQDZQaLFL5VJY9tRBj2Gz+rvCEYYvhbqPHNA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/bonjour": "^3.5.13", + "@types/connect-history-api-fallback": "^1.5.4", + "@types/express": "^4.17.21", + "@types/serve-index": "^1.9.4", + "@types/serve-static": "^1.15.5", + "@types/sockjs": "^0.3.36", + "@types/ws": "^8.5.10", + "ansi-html-community": "^0.0.8", + "bonjour-service": "^1.2.1", + "chokidar": "^3.6.0", + "colorette": "^2.0.10", + "compression": "^1.7.4", + "connect-history-api-fallback": "^2.0.0", + "default-gateway": "^6.0.3", + "express": "^4.17.3", + "graceful-fs": "^4.2.6", + "html-entities": "^2.4.0", + "http-proxy-middleware": "^2.0.3", + "ipaddr.js": "^2.1.0", + "launch-editor": "^2.6.1", + "open": "^10.0.3", + "p-retry": "^6.2.0", + "rimraf": "^5.0.5", + "schema-utils": "^4.2.0", + "selfsigned": "^2.4.1", + "serve-index": "^1.9.1", + "sockjs": "^0.3.24", + "spdy": "^4.0.2", + "webpack-dev-middleware": "^7.1.0", + "ws": "^8.16.0" + }, + "bin": { + "webpack-dev-server": "bin/webpack-dev-server.js" + }, + "engines": { + "node": ">= 18.12.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "webpack": "^5.0.0" + }, + "peerDependenciesMeta": { + "webpack": { + "optional": true + }, + "webpack-cli": { + "optional": true + } + } + }, + "node_modules/webpack-dev-server/node_modules/chokidar": { + "version": "3.6.0", + "resolved": "https://npm.sinequa.com/chokidar/-/chokidar-3.6.0.tgz", + "integrity": "sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==", + "dev": true, + "license": "MIT", + "dependencies": { + "anymatch": "~3.1.2", + "braces": "~3.0.2", + "glob-parent": "~5.1.2", + "is-binary-path": "~2.1.0", + "is-glob": "~4.0.1", + "normalize-path": "~3.0.0", + "readdirp": "~3.6.0" + }, + "engines": { + "node": ">= 8.10.0" + }, + "funding": { + "url": "https://paulmillr.com/funding/" + }, + "optionalDependencies": { + "fsevents": "~2.3.2" + } + }, + "node_modules/webpack-dev-server/node_modules/glob-parent": { + "version": "5.1.2", + "resolved": "https://npm.sinequa.com/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "dev": true, + "license": "ISC", + "dependencies": { + "is-glob": "^4.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/webpack-dev-server/node_modules/http-proxy-middleware": { + "version": "2.0.7", + "resolved": "https://npm.sinequa.com/http-proxy-middleware/-/http-proxy-middleware-2.0.7.tgz", + "integrity": "sha512-fgVY8AV7qU7z/MmXJ/rxwbrtQH4jBQ9m7kp3llF0liB7glmFeVZFBepQb32T3y8n8k2+AEYuMPCpinYW+/CuRA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/http-proxy": "^1.17.8", + "http-proxy": "^1.18.1", + "is-glob": "^4.0.1", + "is-plain-obj": "^3.0.0", + "micromatch": "^4.0.2" + }, + "engines": { + "node": ">=12.0.0" + }, + "peerDependencies": { + "@types/express": "^4.17.13" + }, + "peerDependenciesMeta": { + "@types/express": { + "optional": true + } + } + }, + "node_modules/webpack-dev-server/node_modules/picomatch": { + "version": "2.3.1", + "resolved": "https://npm.sinequa.com/picomatch/-/picomatch-2.3.1.tgz", + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8.6" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/webpack-dev-server/node_modules/readdirp": { + "version": "3.6.0", + "resolved": "https://npm.sinequa.com/readdirp/-/readdirp-3.6.0.tgz", + "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", + "dev": true, + "license": "MIT", + "dependencies": { + "picomatch": "^2.2.1" + }, + "engines": { + "node": ">=8.10.0" + } + }, + "node_modules/webpack-dev-server/node_modules/ws": { + "version": "8.18.0", + "resolved": "https://npm.sinequa.com/ws/-/ws-8.18.0.tgz", + "integrity": "sha512-8VbfWfHLbbwu3+N6OKsOMpBdT4kXPDDB9cJk2bJ6mh9ucxdlnNvH1e+roYkKmN9Nxw2yjz7VzeO9oOz2zJ04Pw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10.0.0" + }, + "peerDependencies": { + "bufferutil": "^4.0.1", + "utf-8-validate": ">=5.0.2" + }, + "peerDependenciesMeta": { + "bufferutil": { + "optional": true + }, + "utf-8-validate": { + "optional": true + } + } + }, + "node_modules/webpack-merge": { + "version": "6.0.1", + "resolved": "https://npm.sinequa.com/webpack-merge/-/webpack-merge-6.0.1.tgz", + "integrity": "sha512-hXXvrjtx2PLYx4qruKl+kyRSLc52V+cCvMxRjmKwoA+CBbbF5GfIBtR6kCvl0fYGqTUPKB+1ktVmTHqMOzgCBg==", + "dev": true, + "license": "MIT", + "dependencies": { + "clone-deep": "^4.0.1", + "flat": "^5.0.2", + "wildcard": "^2.0.1" + }, + "engines": { + "node": ">=18.0.0" + } + }, + "node_modules/webpack-sources": { + "version": "3.2.3", + "resolved": "https://npm.sinequa.com/webpack-sources/-/webpack-sources-3.2.3.tgz", + "integrity": "sha512-/DyMEOrDgLKKIG0fmvtz+4dUX/3Ghozwgm6iPp8KRhvn+eQf9+Q7GWxVNMk3+uCPWfdXYC4ExGBckIXdFEfH1w==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/webpack-subresource-integrity": { + "version": "5.1.0", + "resolved": "https://npm.sinequa.com/webpack-subresource-integrity/-/webpack-subresource-integrity-5.1.0.tgz", + "integrity": "sha512-sacXoX+xd8r4WKsy9MvH/q/vBtEHr86cpImXwyg74pFIpERKt6FmB8cXpeuh0ZLgclOlHI4Wcll7+R5L02xk9Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "typed-assert": "^1.0.8" + }, + "engines": { + "node": ">= 12" + }, + "peerDependencies": { + "html-webpack-plugin": ">= 5.0.0-beta.1 < 6", + "webpack": "^5.12.0" + }, + "peerDependenciesMeta": { + "html-webpack-plugin": { + "optional": true + } + } + }, + "node_modules/webpack/node_modules/ajv": { + "version": "6.12.6", + "resolved": "https://npm.sinequa.com/ajv/-/ajv-6.12.6.tgz", + "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", + "dev": true, + "license": "MIT", + "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" + } + }, + "node_modules/webpack/node_modules/ajv-keywords": { + "version": "3.5.2", + "resolved": "https://npm.sinequa.com/ajv-keywords/-/ajv-keywords-3.5.2.tgz", + "integrity": "sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==", + "dev": true, + "license": "MIT", + "peerDependencies": { + "ajv": "^6.9.1" + } + }, + "node_modules/webpack/node_modules/json-parse-even-better-errors": { + "version": "2.3.1", + "resolved": "https://npm.sinequa.com/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz", + "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==", + "dev": true, + "license": "MIT" + }, + "node_modules/webpack/node_modules/json-schema-traverse": { + "version": "0.4.1", + "resolved": "https://npm.sinequa.com/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", + "dev": true, + "license": "MIT" + }, + "node_modules/webpack/node_modules/schema-utils": { + "version": "3.3.0", + "resolved": "https://npm.sinequa.com/schema-utils/-/schema-utils-3.3.0.tgz", + "integrity": "sha512-pN/yOAvcC+5rQ5nERGuwrjLlYvLTbCibnZ1I7B1LaiAz9BRBlE9GMgE/eqV30P7aJQUf7Ddimy/RsbYO/GrVGg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/json-schema": "^7.0.8", + "ajv": "^6.12.5", + "ajv-keywords": "^3.5.2" + }, + "engines": { + "node": ">= 10.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + } + }, + "node_modules/websocket-driver": { + "version": "0.7.4", + "resolved": "https://npm.sinequa.com/websocket-driver/-/websocket-driver-0.7.4.tgz", + "integrity": "sha512-b17KeDIQVjvb0ssuSDF2cYXSg2iztliJ4B9WdsuB6J952qCPKmnVq4DyW5motImXHDC1cBT/1UezrJVsKw5zjg==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "http-parser-js": ">=0.5.1", + "safe-buffer": ">=5.1.0", + "websocket-extensions": ">=0.1.1" + }, + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/websocket-extensions": { + "version": "0.1.4", + "resolved": "https://npm.sinequa.com/websocket-extensions/-/websocket-extensions-0.1.4.tgz", + "integrity": "sha512-OqedPIGOfsDlo31UNwYbCFMSaO9m9G/0faIHj5/dZFDMFqPTcx6UwqyOy3COEaEOg/9VsGIpdqn62W5KhoKSpg==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/whatwg-url": { + "version": "5.0.0", + "resolved": "https://npm.sinequa.com/whatwg-url/-/whatwg-url-5.0.0.tgz", + "integrity": "sha1-lmRU6HZUYuN2RNNib2dCzotwll0=", + "license": "MIT", + "dependencies": { + "tr46": "~0.0.3", + "webidl-conversions": "^3.0.0" + } + }, + "node_modules/which": { + "version": "2.0.2", + "resolved": "https://npm.sinequa.com/which/-/which-2.0.2.tgz", + "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", + "license": "ISC", + "dependencies": { + "isexe": "^2.0.0" + }, + "bin": { + "node-which": "bin/node-which" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/wildcard": { + "version": "2.0.1", + "resolved": "https://npm.sinequa.com/wildcard/-/wildcard-2.0.1.tgz", + "integrity": "sha512-CC1bOL87PIWSBhDcTrdeLo6eGT7mCFtrg0uIJtqJUFyK+eJnzl8A1niH56uu7KMa5XFrtiV+AQuHO3n7DsHnLQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/wrap-ansi": { + "version": "6.2.0", + "resolved": "https://npm.sinequa.com/wrap-ansi/-/wrap-ansi-6.2.0.tgz", + "integrity": "sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/wrap-ansi-cjs": { + "name": "wrap-ansi", + "version": "7.0.0", + "resolved": "https://npm.sinequa.com/wrap-ansi/-/wrap-ansi-7.0.0.tgz", + "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", + "license": "MIT", + "dependencies": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + } + }, + "node_modules/wrap-ansi-cjs/node_modules/emoji-regex": { + "version": "8.0.0", + "resolved": "https://npm.sinequa.com/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "license": "MIT" + }, + "node_modules/wrap-ansi-cjs/node_modules/is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://npm.sinequa.com/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/wrap-ansi-cjs/node_modules/string-width": { + "version": "4.2.3", + "resolved": "https://npm.sinequa.com/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "license": "MIT", + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/wrap-ansi/node_modules/emoji-regex": { + "version": "8.0.0", + "resolved": "https://npm.sinequa.com/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "dev": true, + "license": "MIT" + }, + "node_modules/wrap-ansi/node_modules/is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://npm.sinequa.com/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/wrap-ansi/node_modules/string-width": { + "version": "4.2.3", + "resolved": "https://npm.sinequa.com/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dev": true, + "license": "MIT", + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/wrappy": { + "version": "1.0.2", + "resolved": "https://npm.sinequa.com/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=", + "license": "ISC" + }, + "node_modules/ws": { + "version": "7.5.10", + "resolved": "https://npm.sinequa.com/ws/-/ws-7.5.10.tgz", + "integrity": "sha512-+dbF1tHwZpXcbOJdVOkzLDxZP1ailvSxM6ZweXTegylPny803bFhA+vqBYw4s31NSAk4S2Qz+AKXK9a4wkdjcQ==", + "license": "MIT", + "engines": { + "node": ">=8.3.0" + }, + "peerDependencies": { + "bufferutil": "^4.0.1", + "utf-8-validate": "^5.0.2" + }, + "peerDependenciesMeta": { + "bufferutil": { + "optional": true + }, + "utf-8-validate": { + "optional": true + } + } + }, + "node_modules/y18n": { + "version": "5.0.8", + "resolved": "https://npm.sinequa.com/y18n/-/y18n-5.0.8.tgz", + "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==", + "license": "ISC", + "engines": { + "node": ">=10" + } + }, + "node_modules/yallist": { + "version": "3.1.1", + "resolved": "https://npm.sinequa.com/yallist/-/yallist-3.1.1.tgz", + "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==", + "dev": true, + "license": "ISC" + }, + "node_modules/yaml": { + "version": "2.7.0", + "resolved": "https://npm.sinequa.com/yaml/-/yaml-2.7.0.tgz", + "integrity": "sha512-+hSoy/QHluxmC9kCIJyL/uyFmLmc+e5CFR5Wa+bpIhIj85LVb9ZH2nVnqrHoSvKogwODv0ClqZkmiSSaIH5LTA==", + "dev": true, + "license": "ISC", + "bin": { + "yaml": "bin.mjs" + }, + "engines": { + "node": ">= 14" + } + }, + "node_modules/yargs": { + "version": "17.7.2", + "resolved": "https://npm.sinequa.com/yargs/-/yargs-17.7.2.tgz", + "integrity": "sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==", + "license": "MIT", + "dependencies": { + "cliui": "^8.0.1", + "escalade": "^3.1.1", + "get-caller-file": "^2.0.5", + "require-directory": "^2.1.1", + "string-width": "^4.2.3", + "y18n": "^5.0.5", + "yargs-parser": "^21.1.1" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/yargs-parser": { + "version": "21.1.1", + "resolved": "https://npm.sinequa.com/yargs-parser/-/yargs-parser-21.1.1.tgz", + "integrity": "sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==", + "license": "ISC", + "engines": { + "node": ">=12" + } + }, + "node_modules/yargs/node_modules/emoji-regex": { + "version": "8.0.0", + "resolved": "https://npm.sinequa.com/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "license": "MIT" + }, + "node_modules/yargs/node_modules/is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://npm.sinequa.com/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/yargs/node_modules/string-width": { + "version": "4.2.3", + "resolved": "https://npm.sinequa.com/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "license": "MIT", + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/yocto-queue": { + "version": "1.1.1", + "resolved": "https://npm.sinequa.com/yocto-queue/-/yocto-queue-1.1.1.tgz", + "integrity": "sha512-b4JR1PFR10y1mKjhHY9LaGo6tmrgjit7hxVIeAmyMw3jegXR4dhYqLaQF5zMXZxY7tLpMyJeLjr1C4rLmkVe8g==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12.20" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/yoctocolors-cjs": { + "version": "2.1.2", + "resolved": "https://npm.sinequa.com/yoctocolors-cjs/-/yoctocolors-cjs-2.1.2.tgz", + "integrity": "sha512-cYVsTjKl8b+FrnidjibDWskAv7UKOfcwaVZdp/it9n1s9fU3IkgDbhdIRKCW4JDsAlECJY0ytoVPT3sK6kideA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/zone.js": { + "version": "0.14.10", + "resolved": "https://npm.sinequa.com/zone.js/-/zone.js-0.14.10.tgz", + "integrity": "sha512-YGAhaO7J5ywOXW6InXNlLmfU194F8lVgu7bRntUF3TiG8Y3nBK0x1UJJuHUP/e8IyihkjCYqhCScpSwnlaSRkQ==", + "license": "MIT" + } + } +} diff --git a/package.json b/package.json index a0fb5a12..d4a63131 100644 --- a/package.json +++ b/package.json @@ -1,78 +1,78 @@ -{ - "name": "sinequa-mint", - "version": "0.0.0", - "scripts": { - "build": "ng build", - "docs:build": "cd docusaurus && npm run build", - "docs:build-internal": "cd docusaurus && npm run build-internal", - "docs:ci": "cd docusaurus && npm ci", - "docs:start": "npm run start:docs", - "lint": "ng lint", - "ng": "ng", - "prepare": "husky", - "prettier:check": "prettier --config .prettierrc --check src/**/*.{js,ts,html,scss,css,json}", - "prettier:write": "prettier --config .prettierrc --write src/**/*.{js,ts,html,scss,css,json}", - "start": "ng serve --ssl=true --proxy-config=proxy.conf.json", - "start:docs": "cd docusaurus && npm start", - "start:local": "ng serve --ssl=true --proxy-config=proxy.conf.local.json", - "test": "ng test", - "up:atomic": "npm i @sinequa/atomic@latest @sinequa/atomic-angular@latest", - "watch": "ng build --watch --configuration development" - }, - "lint-staged": { - "*.{js,ts,html,scss,css,json}": [ - "prettier --write" - ] - }, - "private": true, - "dependencies": { - "@angular-architects/ngrx-toolkit": "^18.1.1", - "@angular-eslint/schematics": "^18.3.1", - "@angular/animations": "^18.2.5", - "@angular/cdk": "^19.1.0", - "@angular/common": "^18.2.5", - "@angular/compiler": "^18.2.5", - "@angular/core": "^18.2.5", - "@angular/forms": "^18.2.5", - "@angular/platform-browser": "^18.2.5", - "@angular/platform-browser-dynamic": "^18.2.5", - "@angular/router": "^18.2.5", - "@jsverse/transloco": "^7.4.2", - "@jsverse/transloco-messageformat": "^7.0.1", - "@microsoft/signalr": "^7.0.14", - "@ngrx/signals": "^18.1.1", - "@ngrx/store": "^18.1.1", - "@popperjs/core": "^2.11.8", - "@sinequa/atomic": "^0.0.72", - "@sinequa/atomic-angular": "^0.0.152", - "@tanstack/angular-query-experimental": "^5.40.0", - "@types/node": "^16.18.11", - "clsx": "^2.1.0", - "highlight-words": "^1.2.2", - "keyux": "^0.8.2", - "ngx-sonner": "^1.0.0", - "rxjs": "~7.8.0", - "tslib": "^2.3.0", - "zone.js": "~0.14.10" - }, - "overrides": { - "esbuild": "0.25.0" - }, - "devDependencies": { - "@angular-devkit/build-angular": "^18.2.5", - "@angular/cli": "^18.2.5", - "@angular/compiler-cli": "^18.2.5", - "@floating-ui/dom": "^1.6.3", - "@types/unist": "^2.0.7", - "autoprefixer": "^10.4.16", - "husky": "^9.1.7", - "lint-staged": "^15.4.1", - "postcss": "^8.4.32", - "prettier": "^3.4.2", - "prettier-plugin-package": "^1.4.0", - "prettier-plugin-tailwindcss": "^0.6.10", - "tailwind-merge": "^2.2.2", - "tailwindcss": "^3.4.1", - "typescript": "~5.4.2" - } -} +{ + "name": "sinequa-mint", + "version": "0.0.0", + "scripts": { + "build": "ng build", + "docs:build": "cd docusaurus && npm run build", + "docs:build-internal": "cd docusaurus && npm run build-internal", + "docs:ci": "cd docusaurus && npm ci", + "docs:start": "npm run start:docs", + "lint": "ng lint", + "ng": "ng", + "prepare": "husky", + "prettier:check": "prettier --config .prettierrc --check src/**/*.{js,ts,html,scss,css,json}", + "prettier:write": "prettier --config .prettierrc --write src/**/*.{js,ts,html,scss,css,json}", + "start": "ng serve --ssl=true --proxy-config=proxy.conf.json", + "start:docs": "cd docusaurus && npm start", + "start:local": "ng serve --ssl=true --proxy-config=proxy.conf.local.json", + "test": "ng test", + "up:atomic": "npm i @sinequa/atomic@latest @sinequa/atomic-angular@latest", + "watch": "ng build --watch --configuration development" + }, + "lint-staged": { + "*.{js,ts,html,scss,css,json}": [ + "prettier --write" + ] + }, + "private": true, + "dependencies": { + "@angular-architects/ngrx-toolkit": "^18.1.1", + "@angular-eslint/schematics": "^18.3.1", + "@angular/animations": "^18.2.5", + "@angular/cdk": "^19.1.0", + "@angular/common": "^18.2.5", + "@angular/compiler": "^18.2.5", + "@angular/core": "^18.2.5", + "@angular/forms": "^18.2.5", + "@angular/platform-browser": "^18.2.5", + "@angular/platform-browser-dynamic": "^18.2.5", + "@angular/router": "^18.2.5", + "@jsverse/transloco": "^7.4.2", + "@jsverse/transloco-messageformat": "^7.0.1", + "@microsoft/signalr": "^7.0.14", + "@ngrx/signals": "^18.1.1", + "@ngrx/store": "^18.1.1", + "@popperjs/core": "^2.11.8", + "@sinequa/atomic": "^0.0.74", + "@sinequa/atomic-angular": "^0.0.158", + "@tanstack/angular-query-experimental": "^5.40.0", + "@types/node": "^16.18.11", + "clsx": "^2.1.0", + "highlight-words": "^1.2.2", + "keyux": "^0.8.2", + "ngx-sonner": "^1.0.0", + "rxjs": "~7.8.0", + "tslib": "^2.3.0", + "zone.js": "~0.14.10" + }, + "overrides": { + "esbuild": "0.25.0" + }, + "devDependencies": { + "@angular-devkit/build-angular": "^18.2.5", + "@angular/cli": "^18.2.5", + "@angular/compiler-cli": "^18.2.5", + "@floating-ui/dom": "^1.6.3", + "@types/unist": "^2.0.7", + "autoprefixer": "^10.4.16", + "husky": "^9.1.7", + "lint-staged": "^15.4.1", + "postcss": "^8.4.32", + "prettier": "^3.4.2", + "prettier-plugin-package": "^1.4.0", + "prettier-plugin-tailwindcss": "^0.6.10", + "tailwind-merge": "^2.2.2", + "tailwindcss": "^3.4.1", + "typescript": "~5.4.2" + } +} diff --git a/src/app/app.component.ts b/src/app/app.component.ts index 2d6ca746..da75f3db 100644 --- a/src/app/app.component.ts +++ b/src/app/app.component.ts @@ -1,68 +1,69 @@ -import { CommonModule } from '@angular/common'; -import { Component, inject } from '@angular/core'; -import { Router, RouterOutlet } from '@angular/router'; -import { TranslocoService } from '@jsverse/transloco'; -import { NgxSonnerToaster, toast } from 'ngx-sonner'; - -import { globalConfig } from '@sinequa/atomic'; -import { ApplicationService, UserSettingsStore } from '@sinequa/atomic-angular'; - -import { BackdropComponent } from '@/core/components/drawer/backdrop/backdrop.component'; -import { DrawerStackComponent } from '@/core/components/drawer/drawer-stack/drawer-stack.component'; - -@Component({ - selector: 'app-root', - standalone: true, - imports: [CommonModule, RouterOutlet, NgxSonnerToaster, BackdropComponent, DrawerStackComponent], - templateUrl: './app.component.html' -}) -export class AppComponent { - private readonly applicationService = inject(ApplicationService); - private readonly userSettingsStore = inject(UserSettingsStore); - private readonly transloco = inject(TranslocoService); - - private readonly router = inject(Router); - - constructor() { - this.login(); - } - - async login() { - // Login and initialize the application when the user is logged in - const { useCredentials } = globalConfig; - - const success = await this.applicationService.autoLogin().catch(err => { - console.warn('An error occured while logging in (app component)', err); - if (useCredentials) { - this.router.navigate(['login']); - } else if (err instanceof Response) { - if (err.status === 401 || err.status === 403) { - toast.error('You are not authorized to access this page'); - } - if (err.status === 500) { - toast.error('An error 500 occured while processing your request'); - this.router.navigate(['error'], { skipLocationChange: true }); - } - } else { - toast.error('An error occured while processing your request'); - this.router.navigate(['error'], { skipLocationChange: true }); - } - }); - - if (success) { - this.setupApplicationLanguage(); - if (this.router.url === '/error') { - this.router.navigate(['/']); - } - } else { - console.warn('An error occured while logging in (app component) after auto login'); - this.router.navigate(['error'], { skipLocationChange: true }); - } - } - - private setupApplicationLanguage() { - if (this.userSettingsStore.language?.() === undefined) this.userSettingsStore.updateLanguage('en'); - - this.transloco.setActiveLang(this.userSettingsStore.language?.() ?? 'en'); - } -} +import { CommonModule } from '@angular/common'; +import { Component, inject } from '@angular/core'; +import { Router, RouterOutlet } from '@angular/router'; +import { TranslocoService } from '@jsverse/transloco'; +import { NgxSonnerToaster, toast } from 'ngx-sonner'; + +import { globalConfig, login, logout } from '@sinequa/atomic'; +import { ApplicationService, UserSettingsStore } from '@sinequa/atomic-angular'; + +import { BackdropComponent } from '@/core/components/drawer/backdrop/backdrop.component'; +import { DrawerStackComponent } from '@/core/components/drawer/drawer-stack/drawer-stack.component'; + +@Component({ + selector: 'app-root', + standalone: true, + imports: [CommonModule, RouterOutlet, NgxSonnerToaster, BackdropComponent, DrawerStackComponent], + templateUrl: './app.component.html' +}) +export class AppComponent { + private readonly applicationService = inject(ApplicationService); + private readonly userSettingsStore = inject(UserSettingsStore); + private readonly transloco = inject(TranslocoService); + + private readonly router = inject(Router); + + constructor() { + logout(); + this.login(); + } + + async login() { + // Login and initialize the application when the user is logged in + const { useCredentials } = globalConfig; + + const success = await this.applicationService.autoLogin().catch(err => { + console.warn('An error occured while logging in (app component)', err); + if (useCredentials) { + this.router.navigate(['login']); + } else if (err instanceof Response) { + if (err.status === 401 || err.status === 403) { + toast.error('You are not authorized to access this page'); + } + if (err.status === 500) { + toast.error('An error 500 occured while processing your request'); + this.router.navigate(['error'], { skipLocationChange: true }); + } + } else { + toast.error('An error occured while processing your request'); + this.router.navigate(['error'], { skipLocationChange: true }); + } + }); + + if (success) { + this.setupApplicationLanguage(); + if (this.router.url === '/error') { + this.router.navigate(['/']); + } + } else { + console.warn('An error occured while logging in (app component) after auto login'); + this.router.navigate(['error'], { skipLocationChange: true }); + } + } + + private setupApplicationLanguage() { + if (this.userSettingsStore.language?.() === undefined) this.userSettingsStore.updateLanguage('en'); + + this.transloco.setActiveLang(this.userSettingsStore.language?.() ?? 'en'); + } +} diff --git a/src/app/app.config.ts b/src/app/app.config.ts index df5049f7..af0ddeaa 100644 --- a/src/app/app.config.ts +++ b/src/app/app.config.ts @@ -1,115 +1,125 @@ -import { registerLocaleData } from '@angular/common'; -import { provideHttpClient, withInterceptors } from '@angular/common/http'; -import localeFr from '@angular/common/locales/fr'; -import { APP_INITIALIZER, ApplicationConfig, LOCALE_ID, isDevMode, provideExperimentalZonelessChangeDetection } from '@angular/core'; -import { provideAnimations } from '@angular/platform-browser/animations'; -import { provideRouter, withComponentInputBinding, withHashLocation } from '@angular/router'; -import { QueryClient, provideTanStackQuery } from '@tanstack/angular-query-experimental'; - -import { - AGGREGATIONS_NAMES, - AGGREGATIONS_NAMES_PRESET_DEFAULT, - HIGHLIGHTS, - ROUTE_COMPONENTS, - auditInterceptorFn, - authInterceptorFn, - bodyInterceptorFn, - errorInterceptorFn -} from '@sinequa/atomic-angular'; - -import { appInitializerFn } from '@sinequa/atomic'; -import { toastInterceptorFn } from '@sinequa/atomic-angular'; - -import { routes } from '@/app/app.routes'; -import { provideTransloco } from '@jsverse/transloco'; -import { provideTranslocoMessageformat } from '@jsverse/transloco-messageformat'; -import { SearchAllComponent } from './pages/search/all/search-all.component'; -import { SearchComponent } from './pages/search/search.component'; -import { TranslocoHttpLoader } from './transloco-loader'; - -registerLocaleData(localeFr); - -const PREVIEW_HIGHLIGHTS = [ - { - name: 'company', - color: 'white', - bgColor: '#FF7675' - }, - { - name: 'geo', - color: 'white', - bgColor: '#74B9FF' - }, - { - name: 'person', - color: 'white', - bgColor: '#00ABB5' - }, - { - name: 'extractslocations', - color: 'black', - bgColor: '#fffacd' - }, - { - name: 'matchlocations', - color: 'black', - bgColor: '#ff0' - } -]; - -export const appConfig: ApplicationConfig = { - providers: [ - provideAnimations(), - provideExperimentalZonelessChangeDetection(), - // set the default OAuth2 and/or SAML authentication provider - { provide: APP_INITIALIZER, useFactory: () => appInitializerFn, multi: true }, - { provide: LOCALE_ID, useValue: 'fr-FR' }, - { provide: HIGHLIGHTS, useValue: PREVIEW_HIGHLIGHTS }, - { - provide: ROUTE_COMPONENTS, - useValue: [ - { - path: 'search', - component: SearchComponent, - isRoot: true - }, - { - path: 'all', - component: SearchAllComponent - } - ] - }, - { provide: AGGREGATIONS_NAMES, useValue: [...AGGREGATIONS_NAMES_PRESET_DEFAULT, 'Money'] }, - provideRouter(routes, withHashLocation(), withComponentInputBinding()), - provideHttpClient(withInterceptors([bodyInterceptorFn, authInterceptorFn, auditInterceptorFn, errorInterceptorFn, toastInterceptorFn])), - provideTanStackQuery( - new QueryClient({ - defaultOptions: { - queries: { - refetchOnWindowFocus: false, - gcTime: 0, - retry() { - return false; - } - } - } - }) - ), - provideTransloco({ - config: { - availableLangs: ['en', 'fr'], - defaultLang: 'en', - // Remove this option if your application doesn't support changing language in runtime. - reRenderOnLangChange: true, - prodMode: !isDevMode(), - fallbackLang: 'en', - missingHandler: { - logMissingKey: true, - useFallbackTranslation: true - } - }, - loader: TranslocoHttpLoader - }), - provideTranslocoMessageformat() - ] -}; +import { registerLocaleData } from '@angular/common'; +import { provideHttpClient, withInterceptors } from '@angular/common/http'; +import localeFr from '@angular/common/locales/fr'; +import { APP_INITIALIZER, ApplicationConfig, LOCALE_ID, isDevMode, provideExperimentalZonelessChangeDetection } from '@angular/core'; +import { provideAnimations } from '@angular/platform-browser/animations'; +import { provideRouter, withComponentInputBinding, withHashLocation } from '@angular/router'; +import { QueryClient, provideTanStackQuery } from '@tanstack/angular-query-experimental'; + +import { + AGGREGATIONS_NAMES, + AGGREGATIONS_NAMES_PRESET_DEFAULT, + HIGHLIGHTS, + ROUTE_COMPONENTS, + auditInterceptorFn, + authInterceptorFn, + bodyInterceptorFn, + errorInterceptorFn +} from '@sinequa/atomic-angular'; + +import { appInitializerFn } from '@sinequa/atomic'; +import { toastInterceptorFn } from '@sinequa/atomic-angular'; + +import { routes } from '@/app/app.routes'; +import { provideTransloco } from '@jsverse/transloco'; +import { provideTranslocoMessageformat } from '@jsverse/transloco-messageformat'; +import { SearchAllComponent } from './pages/search/all/search-all.component'; +import { SearchComponent } from './pages/search/search.component'; +import { TranslocoHttpLoader } from './transloco-loader'; + +registerLocaleData(localeFr); + +const PREVIEW_HIGHLIGHTS = [ + { + name: 'company', + color: 'white', + bgColor: '#FF7675' + }, + { + name: 'geo', + color: 'white', + bgColor: '#74B9FF' + }, + { + name: 'person', + color: 'white', + bgColor: '#00ABB5' + }, + { + name: 'money', + color: 'white', + bgColor: '#85BB65' // Hex color for dollar green + }, + { + name: 'entity12', + color: 'white', + bgColor: '#FFD700' // Hex color for the sun (gold) + }, + { + name: 'extractslocations', + color: 'black', + bgColor: '#fffacd' + }, + { + name: 'matchlocations', + color: 'black', + bgColor: '#ff0' + } +]; + +export const appConfig: ApplicationConfig = { + providers: [ + provideAnimations(), + provideExperimentalZonelessChangeDetection(), + // set the default OAuth2 and/or SAML authentication provider + { provide: APP_INITIALIZER, useFactory: () => appInitializerFn, multi: true }, + { provide: LOCALE_ID, useValue: 'fr-FR' }, + { provide: HIGHLIGHTS, useValue: PREVIEW_HIGHLIGHTS }, + { + provide: ROUTE_COMPONENTS, + useValue: [ + { + path: 'search', + component: SearchComponent, + isRoot: true + }, + { + path: 'all', + component: SearchAllComponent + } + ] + }, + { provide: AGGREGATIONS_NAMES, useValue: [...AGGREGATIONS_NAMES_PRESET_DEFAULT, 'Money'] }, + provideRouter(routes, withHashLocation(), withComponentInputBinding()), + provideHttpClient(withInterceptors([bodyInterceptorFn, authInterceptorFn, auditInterceptorFn, errorInterceptorFn, toastInterceptorFn])), + provideTanStackQuery( + new QueryClient({ + defaultOptions: { + queries: { + refetchOnWindowFocus: false, + gcTime: 0, + retry() { + return false; + } + } + } + }) + ), + provideTransloco({ + config: { + availableLangs: ['en', 'fr'], + defaultLang: 'en', + // Remove this option if your application doesn't support changing language in runtime. + reRenderOnLangChange: true, + prodMode: !isDevMode(), + fallbackLang: 'en', + missingHandler: { + logMissingKey: true, + useFallbackTranslation: true + } + }, + loader: TranslocoHttpLoader + }), + provideTranslocoMessageformat() + ] +}; diff --git a/src/app/app.routes.ts b/src/app/app.routes.ts index d58d05ed..bb6fd0fc 100644 --- a/src/app/app.routes.ts +++ b/src/app/app.routes.ts @@ -1,47 +1,47 @@ -import { Data, Route } from '@angular/router'; - -import { AuthGuard, InitializationGuard, queryNameResolver } from '@sinequa/atomic-angular'; - -import { ErrorComponent } from '@/core/components/error/error.component'; -import { LoadingComponent } from '@/core/components/loading/loading.component'; -import { LoginComponent } from '@/core/features/login/login.component'; - -import { HomeComponent } from './pages/home/home.component'; -import { RecentSearchesComponent } from './pages/recent-searches/recent-searches.component'; -import { SearchComponent } from './pages/search/search.component'; -import { BookmarksComponent } from './pages/bookmarks/bookmarks.component'; - -// Extended types to add custom properties to routes -type ExtendedData = Data & { - queryName?: string; // name of the query defined in the admin - display?: string; // the label you want to display in the interface - wsQueryTab?: string; // the name of the "tab" associated with the query you want to use - icon?: string; // the icon you want to associate with the label in the interface - [key: string | symbol]: any; // all the "custom" parameters you want -}; -type ExtendedRoute = Route & { - data?: ExtendedData; - children?: ExtendedRoutes; -}; -type ExtendedRoutes = ExtendedRoute[]; - -export const routes: ExtendedRoutes = [ - { path: 'login', component: LoginComponent }, - { path: 'logout', component: LoginComponent }, - { path: 'home', component: HomeComponent, canActivate: [AuthGuard(), InitializationGuard()], resolve: { queryName: queryNameResolver } }, - { path: 'recent-searches', component: RecentSearchesComponent, canActivate: [AuthGuard(), InitializationGuard()], resolve: { queryName: queryNameResolver } }, - { path: 'bookmarks', component: BookmarksComponent, canActivate: [AuthGuard(), InitializationGuard()], resolve: { queryName: queryNameResolver } }, - { - path: 'search', - component: SearchComponent, - canActivate: [AuthGuard(), InitializationGuard()], - resolve: { queryName: queryNameResolver }, - children: [ - { path: 'all', component: LoadingComponent }, - { path: '**', redirectTo: 'all', pathMatch: 'full' } - ] - }, - { path: 'loading', component: LoadingComponent }, - { path: 'error', component: ErrorComponent }, - { path: '**', redirectTo: 'home', pathMatch: 'full' } -]; +import { Data, Route } from '@angular/router'; + +import { AuthGuard, InitializationGuard, queryNameResolver } from '@sinequa/atomic-angular'; + +import { ErrorComponent } from '@/core/components/error/error.component'; +import { LoadingComponent } from '@/core/components/loading/loading.component'; +import { LoginComponent } from '@/core/features/sign-in/sign-in'; + +import { HomeComponent } from './pages/home/home.component'; +import { RecentSearchesComponent } from './pages/recent-searches/recent-searches.component'; +import { SearchComponent } from './pages/search/search.component'; +import { BookmarksComponent } from './pages/bookmarks/bookmarks.component'; + +// Extended types to add custom properties to routes +type ExtendedData = Data & { + queryName?: string; // name of the query defined in the admin + display?: string; // the label you want to display in the interface + wsQueryTab?: string; // the name of the "tab" associated with the query you want to use + icon?: string; // the icon you want to associate with the label in the interface + [key: string | symbol]: any; // all the "custom" parameters you want +}; +type ExtendedRoute = Route & { + data?: ExtendedData; + children?: ExtendedRoutes; +}; +type ExtendedRoutes = ExtendedRoute[]; + +export const routes: ExtendedRoutes = [ + { path: 'login', component: LoginComponent }, + { path: 'logout', component: LoginComponent }, + { path: 'home', component: HomeComponent, canActivate: [AuthGuard(), InitializationGuard()], resolve: { queryName: queryNameResolver } }, + { path: 'recent-searches', component: RecentSearchesComponent, canActivate: [AuthGuard(), InitializationGuard()], resolve: { queryName: queryNameResolver } }, + { path: 'bookmarks', component: BookmarksComponent, canActivate: [AuthGuard(), InitializationGuard()], resolve: { queryName: queryNameResolver } }, + { + path: 'search', + component: SearchComponent, + canActivate: [AuthGuard(), InitializationGuard()], + resolve: { queryName: queryNameResolver }, + children: [ + { path: 'all', component: LoadingComponent }, + { path: '**', redirectTo: 'all', pathMatch: 'full' } + ] + }, + { path: 'loading', component: LoadingComponent }, + { path: 'error', component: ErrorComponent }, + { path: '**', redirectTo: 'home', pathMatch: 'full' } +]; diff --git a/src/app/pages/home/home.component.ts b/src/app/pages/home/home.component.ts index b5e81356..d68ee221 100644 --- a/src/app/pages/home/home.component.ts +++ b/src/app/pages/home/home.component.ts @@ -1,137 +1,137 @@ -import { NgClass, NgComponentOutlet } from '@angular/common'; -import { Component, HostBinding, OnDestroy, OnInit, QueryList, Type, ViewChildren, effect, inject, signal } from '@angular/core'; -import { EventType, Router } from '@angular/router'; -import { TranslocoPipe, TranslocoService } from '@jsverse/transloco'; -import { Subscription, filter } from 'rxjs'; - -import { AppStore, AutocompleteService, DrawerStackService, QueryParamsStore } from '@sinequa/atomic-angular'; - -import { AutocompleteComponent, Suggestion } from '@/core/components/search-input/autocomplete/autocomplete.component'; -import { SearchInputComponent } from '@/core/components/search-input/search-input.component'; -import { BookmarksListComponent } from '@/core/features/bookmarks/list/bookmarks-list.component'; -import { RecentSearchesComponent } from '@/core/features/recent-searches/recent-searches.component'; -import { SavedSearchesComponent } from '@/core/features/saved-searches/saved-searches.component'; -import { UserMenuComponent } from '@/core/features/user-menu/user-menu'; -import { CollectionsComponent } from '@/core/features/collections/collections.component'; - -type HomeTab = { - name: string; - iconClass: string; - label: string; - component: Type; - inputs?: any; - disabled?: boolean; -}; - -const homeFeatures: HomeTab[] = [ - { - name: 'recentSearches', - iconClass: 'fa-regular fa-clock-rotate-left', - label: 'Recent searches', - component: RecentSearchesComponent - }, - { - name: 'savedSearches', - iconClass: 'fa-regular fa-star', - label: 'Saved searches', - component: SavedSearchesComponent - }, - { - name: 'bookmarks', - iconClass: 'fa-regular fa-bookmark', - label: 'My bookmark', - component: BookmarksListComponent - }, - { - name: 'baskets', - iconClass: 'fa-regular fa-inbox', - label: 'My collections', - component: CollectionsComponent, - inputs: { showButtons: false } - } -]; - -@Component({ - selector: 'app-home', - standalone: true, - templateUrl: './home.component.html', - host: { - class: 'layout-search h-screen' - }, - imports: [NgClass, NgComponentOutlet, SearchInputComponent, AutocompleteComponent, UserMenuComponent, TranslocoPipe] -}) -export class HomeComponent implements OnInit, OnDestroy { - @HostBinding('attr.drawer-opened') public drawerOpened: boolean = false; - - @ViewChildren(RecentSearchesComponent) widgets!: QueryList; - - readonly searchText = signal(''); - - readonly tabs = signal(homeFeatures); - - readonly selectedTabId = signal(0); - - readonly autocompleteService = inject(AutocompleteService); - readonly router = inject(Router); - readonly appStore = inject(AppStore); - readonly drawerStack = inject(DrawerStackService); - - readonly queryParamsStore = inject(QueryParamsStore); - - readonly sub = new Subscription(); - - defaultUserFeatures = { - bookmarks: true, - recentSearches: true, - savedSearches: true - }; - - readonly translateService = inject(TranslocoService); - - constructor() { - // react to tab changes - effect( - () => { - this.selectedTabId.set(this.tabs().findIndex(tab => !tab.disabled)); - }, - { allowSignalWrites: true } - ); - - this.sub.add(this.drawerStack.isOpened.subscribe(state => (this.drawerOpened = state))); - - this.sub.add( - // on navigation, close all tabs - this.router.events.pipe(filter(event => event.type === EventType.NavigationStart)).subscribe(() => this.drawerStack.closeAll()) - ); - } - - ngOnInit(): void { - this.queryParamsStore.patch({ filters: [] }); - } - - ngOnDestroy(): void { - this.sub.unsubscribe(); - } - - public selectTab(tab: HomeTab): void { - if (tab.disabled) return; - - const index = this.tabs().indexOf(tab); - - this.selectedTabId.set(index); - } - - public search(text: string): void { - this.drawerStack.closeAll(); - this.router.navigate(['/search'], { queryParams: { q: text } }); - } - - autocompleteItemClicked(item: Suggestion): void { - if (!item.display) { - console.error('No display property found on item', item); - return; - } - - this.search(item.display!); - } -} +import { NgClass, NgComponentOutlet } from '@angular/common'; +import { Component, HostBinding, OnDestroy, OnInit, QueryList, Type, ViewChildren, effect, inject, signal } from '@angular/core'; +import { EventType, Router } from '@angular/router'; +import { TranslocoPipe, TranslocoService } from '@jsverse/transloco'; +import { Subscription, filter } from 'rxjs'; + +import { AppStore, AutocompleteService, DrawerStackService, QueryParamsStore } from '@sinequa/atomic-angular'; + +import { AutocompleteComponent, Suggestion } from '@/core/components/search-input/autocomplete/autocomplete.component'; +import { SearchInputComponent } from '@/core/components/search-input/search-input.component'; +import { BookmarksComponent } from '@/core/features/bookmarks/bookmarks'; +import { RecentSearchesComponent } from '@/core/features/recent-searches/recent-searches'; +import { SavedSearchesComponent } from '@/core/features/saved-searches/saved-searches'; +import { UserMenuComponent } from '@/core/features/user-menu/user-menu'; +import { CollectionsComponent } from '@/core/features/collections/collections'; + +type HomeTab = { + name: string; + iconClass: string; + label: string; + component: Type; + inputs?: any; + disabled?: boolean; +}; + +const homeFeatures: HomeTab[] = [ + { + name: 'recentSearches', + iconClass: 'fa-regular fa-clock-rotate-left', + label: 'Recent searches', + component: RecentSearchesComponent + }, + { + name: 'savedSearches', + iconClass: 'fa-regular fa-star', + label: 'Saved searches', + component: SavedSearchesComponent + }, + { + name: 'bookmarks', + iconClass: 'fa-regular fa-bookmark', + label: 'My bookmark', + component: BookmarksComponent + }, + { + name: 'baskets', + iconClass: 'fa-regular fa-inbox', + label: 'My collections', + component: CollectionsComponent, + inputs: { showButtons: false } + } +]; + +@Component({ + selector: 'app-home', + standalone: true, + templateUrl: './home.component.html', + host: { + class: 'layout-search h-screen' + }, + imports: [NgClass, NgComponentOutlet, SearchInputComponent, AutocompleteComponent, UserMenuComponent, TranslocoPipe] +}) +export class HomeComponent implements OnInit, OnDestroy { + @HostBinding('attr.drawer-opened') public drawerOpened: boolean = false; + + @ViewChildren(RecentSearchesComponent) widgets!: QueryList; + + readonly searchText = signal(''); + + readonly tabs = signal(homeFeatures); + + readonly selectedTabId = signal(0); + + readonly autocompleteService = inject(AutocompleteService); + readonly router = inject(Router); + readonly appStore = inject(AppStore); + readonly drawerStack = inject(DrawerStackService); + + readonly queryParamsStore = inject(QueryParamsStore); + + readonly sub = new Subscription(); + + defaultUserFeatures = { + bookmarks: true, + recentSearches: true, + savedSearches: true + }; + + readonly translateService = inject(TranslocoService); + + constructor() { + // react to tab changes + effect( + () => { + this.selectedTabId.set(this.tabs().findIndex(tab => !tab.disabled)); + }, + { allowSignalWrites: true } + ); + + this.sub.add(this.drawerStack.isOpened.subscribe(state => (this.drawerOpened = state))); + + this.sub.add( + // on navigation, close all tabs + this.router.events.pipe(filter(event => event.type === EventType.NavigationStart)).subscribe(() => this.drawerStack.closeAll()) + ); + } + + ngOnInit(): void { + this.queryParamsStore.patch({ filters: [] }); + } + + ngOnDestroy(): void { + this.sub.unsubscribe(); + } + + public selectTab(tab: HomeTab): void { + if (tab.disabled) return; + + const index = this.tabs().indexOf(tab); + + this.selectedTabId.set(index); + } + + public search(text: string): void { + this.drawerStack.closeAll(); + this.router.navigate(['/search'], { queryParams: { q: text } }); + } + + autocompleteItemClicked(item: Suggestion): void { + if (!item.display) { + console.error('No display property found on item', item); + return; + } + + this.search(item.display!); + } +} diff --git a/src/app/pages/search/all/search-all.component.html b/src/app/pages/search/all/search-all.component.html index d5451f79..2ef61652 100644 --- a/src/app/pages/search/all/search-all.component.html +++ b/src/app/pages/search/all/search-all.component.html @@ -1,59 +1,59 @@ -
      - @if (query.isPending()) { -
      -
      -
      -
      -
      -
      -
      -
      - -
      -
      - } @else if (query.isSuccess()) { - - } - - - - - - @if (query.isPending()) { -
      -
      -
      - -
        -
      • -
      • -
      • -
      - } @else if (query.isSuccess() && query.data()?.pages) { - -
      - - -
      - -
        - @for (page of query.data()?.pages; track page) { - @for (article of page.records; track article.id + $index) { -
      • - @if (article.docformat) { - - } -
      • - } @empty { -
      • - -
      • - } - } -
      - } - - @if (query.hasNextPage()) { -
      - } -
      +
      + @if (query.isPending()) { +
      +
      +
      +
      +
      +
      +
      +
      + +
      +
      + } @else if (query.isSuccess()) { + + } + + + + + + @if (query.isPending()) { +
      +
      +
      + +
        +
      • +
      • +
      • +
      + } @else if (query.isSuccess() && query.data()?.pages) { + +
      + + +
      + +
        + @for (page of query.data()?.pages; track page) { + @for (article of page.records; track article.id + $index) { +
      • + @if (article.docformat) { + + } +
      • + } @empty { +
      • + +
      • + } + } +
      + } + + @if (query.hasNextPage()) { +
      + } +
      diff --git a/src/app/pages/search/all/search-all.component.scss b/src/app/pages/search/all/search-all.component.scss deleted file mode 100644 index 3b5b8e99..00000000 --- a/src/app/pages/search/all/search-all.component.scss +++ /dev/null @@ -1,3 +0,0 @@ -app-overview-people:not(.hidden) + app-overview-slides { - margin-top: 1rem; -} diff --git a/src/app/pages/search/all/search-all.component.ts b/src/app/pages/search/all/search-all.component.ts index e8445544..7646a0ac 100644 --- a/src/app/pages/search/all/search-all.component.ts +++ b/src/app/pages/search/all/search-all.component.ts @@ -1,58 +1,65 @@ -import { NgComponentOutlet } from '@angular/common'; -import { Component, HostBinding, Type } from '@angular/core'; - -import { Result } from '@sinequa/atomic'; -import { InfinityScrollDirective } from '@sinequa/atomic-angular'; - -import { getComponentsForDocumentType } from '@/app/registry/document-type-registry'; -import { ArticleDefaultSkeletonComponent } from '@/core/components/article/default-skeleton/article-default-skeleton.component'; -import { FiltersListComponent } from '@/core/components/filters/filters-list.component'; -import { NoResultPanelComponent } from '@/core/components/no-result-panel/no-result-panel.component'; -import { SponsoredResultsComponent } from '@/core/components/sponsored-results/sponsored-results.component'; -import { DidYouMeanComponent } from '@/core/features/did-you-mean/did-you-mean.component'; -import { SortSelectorComponent, SortingChoice } from '@/core/features/sort-selector/sort-selector.component'; - -import { SearchBase } from '../search.abstract'; -import { SearchFeedbackComponent } from '@/core/features/search-feedback/search-feedback.component'; - -type R = Result & { nextPage?: number; previousPage?: number }; - -@Component({ - selector: 'app-search-all', - standalone: true, - imports: [ - NgComponentOutlet, - ArticleDefaultSkeletonComponent, - SortSelectorComponent, - DidYouMeanComponent, - InfinityScrollDirective, - SponsoredResultsComponent, - FiltersListComponent, - NoResultPanelComponent, - SearchFeedbackComponent - ], - templateUrl: './search-all.component.html', - styleUrl: './search-all.component.scss', - host: { - class: 'layout-search overflow-auto h-full' - } -}) -export class SearchAllComponent extends SearchBase { - @HostBinding('attr.drawer-opened') - onSort(sort: SortingChoice): void { - this.queryParamsStore.patch({ sort: sort.name }); - this.searchService.search([], { - audit: { - type: 'Search_Sort', - detail: { - sort: sort.name, - orderByClause: sort.orderByClause - } - } - }); - } - - getArticleType(docType: string): Type { - return getComponentsForDocumentType(docType).articleComponent; - } -} +import { NgComponentOutlet } from '@angular/common'; +import { Component, HostBinding, Type } from '@angular/core'; + +import { Result } from '@sinequa/atomic'; +import { InfinityScrollDirective } from '@sinequa/atomic-angular'; + +import { getComponentsForDocumentType } from '@/app/registry/document-type-registry'; +import { ArticleDefaultSkeletonComponent } from '@/core/components/article/default-skeleton/article-default-skeleton.component'; +import { FiltersBarComponent } from '@/core/components/filters/filters-bar.component'; +import { NoResultPanelComponent } from '@/core/components/no-result-panel/no-result-panel.component'; +import { SponsoredResultsComponent } from '@/core/components/sponsored-results/sponsored-results.component'; +import { DidYouMeanComponent } from '@/core/features/did-you-mean/did-you-mean'; +import { SortSelectorComponent, SortingChoice } from '@/core/features/sort-selector/sort-selector'; + +import { SearchBase } from '../search.abstract'; +import { SearchFeedbackComponent } from '@/core/features/search-feedback/search-feedback'; + +type R = Result & { nextPage?: number; previousPage?: number }; + +@Component({ + selector: 'app-search-all', + standalone: true, + imports: [ + NgComponentOutlet, + ArticleDefaultSkeletonComponent, + SortSelectorComponent, + DidYouMeanComponent, + InfinityScrollDirective, + SponsoredResultsComponent, + NoResultPanelComponent, + SearchFeedbackComponent, + FiltersBarComponent, + NoResultPanelComponent + ], + templateUrl: './search-all.component.html', + styles: [ + ` + app-overview-people:not(.hidden) + app-overview-slides { + margin-top: 1rem; + } + ` + ], + host: { + class: 'layout-search overflow-auto h-full' + } +}) +export class SearchAllComponent extends SearchBase { + @HostBinding('attr.drawer-opened') + onSort(sort: SortingChoice): void { + this.queryParamsStore.patch({ sort: sort.name }); + this.searchService.search([], { + audit: { + type: 'Search_Sort', + detail: { + sort: sort.name, + orderByClause: sort.orderByClause + } + } + }); + } + + getArticleType(docType: string): Type { + return getComponentsForDocumentType(docType).articleComponent; + } +} diff --git a/src/app/pages/search/search.abstract.ts b/src/app/pages/search/search.abstract.ts index 69758c6a..41ee709b 100644 --- a/src/app/pages/search/search.abstract.ts +++ b/src/app/pages/search/search.abstract.ts @@ -1,195 +1,193 @@ -import { Component, computed, effect, HostBinding, inject, input, OnDestroy, signal } from '@angular/core'; -import { ActivatedRoute, Router } from '@angular/router'; -import { getState } from '@ngrx/signals'; -import { injectInfiniteQuery } from '@tanstack/angular-query-experimental'; -import { lastValueFrom, map, Subscription, tap } from 'rxjs'; - -import { Aggregation, Article, Query, QueryParams, Result } from '@sinequa/atomic'; -import { - AggregationsStore, - DrawerStackService, - PrincipalStore, - QueryParamsStore, - SearchService, - SelectionService, - UserSettingsStore -} from '@sinequa/atomic-angular'; - -type R = Result & { nextPage?: number; previousPage?: number }; -type QP = { - f?: string; // filters list - p?: number; // page number - s?: string; // sort name - t?: string; // tab name - q?: string; // query text - b?: string; // basket -}; - -@Component({ - template: '' -}) -export abstract class SearchBase implements OnDestroy { - @HostBinding('attr.drawer-opened') - public drawerOpened: boolean = false; - - protected readonly result = signal(undefined); - protected readonly queryText = signal(''); - protected readonly assistantCollapsed = signal(true); - - protected readonly searchService = inject(SearchService); - protected readonly drawerStack = inject(DrawerStackService); - protected readonly selectionService = inject(SelectionService); - - protected readonly aggregationsStore = inject(AggregationsStore); - protected readonly queryParamsStore = inject(QueryParamsStore); - protected readonly principalStore = inject(PrincipalStore); - protected readonly usersettingsStore = inject(UserSettingsStore); - - protected readonly router = inject(Router); - protected readonly route = inject(ActivatedRoute); - - protected aggregations: Aggregation[]; - - protected readonly sub = new Subscription(); - - // track the query params store changes - keys = computed(() => { - const state = getState(this.queryParamsStore); - const r = { tab: state.tab, text: state.text, filters: state.filters, sort: state.sort, basket: state.basket }; - return r; - }); - - // get the id from the query params store to open the drawer with the preview of the article - id = computed(() => { - const state = getState(this.queryParamsStore); - return state.id; - }); - - // the query must be retriggered when the user override is active - userOverrideActive = computed(() => { - const state = getState(this.principalStore); - return state.userOverrideActive; - }); - - // input url bindings - q = input(); // text - t = input(); // tab - b = input(); // basket - s = input(); // sort - f = input(); // filters - queryName = input(); // query param - - // tanstack query - query = injectInfiniteQuery(() => ({ - queryKey: [`search-${this.t()}`, this.keys(), this.userOverrideActive()], - queryFn: ({ pageParam }) => { - const q = this.queryParamsStore.getQuery(); - - const query = { ...q, page: pageParam, tab: this.t(), basket: this.b() } as Query; - - // Add the current search to the user settings when the text is not empty - if (query.text && query.text !== '') { - this.usersettingsStore.addCurrentSearch(query as QueryParams); - } - - return lastValueFrom( - this.searchService.getResult(query).pipe( - tap(() => this.queryText.set(this.keys().text ?? '')), - map(result => { - return this.updateArticleType(result); - }), - map(result => { - // If the id is set, open the drawer with the preview of the article - const id = this.id(); - if (id) { - result.records?.forEach(article => { - if (article.id === id) { - this.selectionService.setCurrentArticle(article); - this.drawerStack.open(); - } - }); - } - return result; - }) - ) - ); - }, - initialPageParam: 1, - getPreviousPageParam: firstPage => firstPage.previousPage ?? undefined, - getNextPageParam: lastPage => lastPage.nextPage ?? undefined - })); - - constructor() { - // Update the query params store with the filters from the query params - // This allows Browser back/forward to work correctly - effect( - () => { - const filters = this.f() ? JSON.parse(this.f() ?? '') : []; // Parse the filters from the query params - this.queryParamsStore.patch({ text: this.q(), tab: this.t(), basket: this.b(), sort: this.s(), filters, name: this.queryName() }); - }, - { allowSignalWrites: true } - ); - - // Update the URL with the query params - effect(() => { - const key = this.keys(); - - const queryParams: QP = {}; - const { text, filters = [], page, sort, tab, basket } = getState(this.queryParamsStore); - - queryParams.f = filters.length > 0 ? JSON.stringify(filters) : undefined; - queryParams.p = page; - queryParams.s = sort; - queryParams.t = tab; - queryParams.q = text; - queryParams.b = basket; - - this.router.navigate([], { relativeTo: this.route, queryParamsHandling: 'merge', queryParams, state: {} }); - }); - - // Make Result object available to children and update aggregations store - effect( - () => { - this.query.isSuccess(); - - const result = this.query.data()?.pages[0]; - - if (!result) return; - - this.result.set(result); - - // Update the aggregations store with the new aggregations - this.aggregationsStore.update(result.aggregations); - }, - { allowSignalWrites: true } - ); - - this.sub.add(this.drawerStack.isOpened.subscribe(state => (this.drawerOpened = state))); - } - - ngOnDestroy(): void { - this.sub.unsubscribe(); - this.aggregationsStore.clear(); - } - - nextPage() { - this.query.fetchNextPage(); - } - - /** - * Updates the article type for each record in the result. - * - * This method maps over the `records` array in the `result` object and updates each - * `article` by adding a `value` property set to the `article.title` and a `type` property - * set to `'default'`. The updated `result` object is then returned. - * - * @param {Result} result - The result object containing an array of records to be updated. - * @returns {Result} The updated result object with modified article records. - */ - protected updateArticleType(result: Result) { - result.records?.map((article: Article) => { - return { ...article, value: article.title, type: 'default' }; - }); - return result; - } -} +import { Component, computed, Directive, effect, HostBinding, inject, input, OnDestroy, signal } from '@angular/core'; +import { ActivatedRoute, Router } from '@angular/router'; +import { getState } from '@ngrx/signals'; +import { injectInfiniteQuery } from '@tanstack/angular-query-experimental'; +import { lastValueFrom, map, Subscription, tap } from 'rxjs'; + +import { Aggregation, Article, Query, QueryParams, Result } from '@sinequa/atomic'; +import { + AggregationsStore, + DrawerStackService, + PrincipalStore, + QueryParamsStore, + SearchService, + SelectionService, + UserSettingsStore +} from '@sinequa/atomic-angular'; + +type R = Result & { nextPage?: number; previousPage?: number }; +type QP = { + f?: string; // filters list + p?: number; // page number + s?: string; // sort name + t?: string; // tab name + q?: string; // query text + b?: string; // basket +}; + +@Directive({}) +export abstract class SearchBase implements OnDestroy { + @HostBinding('attr.drawer-opened') + public drawerOpened: boolean = false; + + protected readonly result = signal(undefined); + protected readonly queryText = signal(''); + protected readonly assistantCollapsed = signal(true); + + protected readonly searchService = inject(SearchService); + protected readonly drawerStack = inject(DrawerStackService); + protected readonly selectionService = inject(SelectionService); + + protected readonly aggregationsStore = inject(AggregationsStore); + protected readonly queryParamsStore = inject(QueryParamsStore); + protected readonly principalStore = inject(PrincipalStore); + protected readonly usersettingsStore = inject(UserSettingsStore); + + protected readonly router = inject(Router); + protected readonly route = inject(ActivatedRoute); + + protected aggregations: Aggregation[]; + + protected readonly sub = new Subscription(); + + // track the query params store changes + keys = computed(() => { + const state = getState(this.queryParamsStore); + const r = { tab: state.tab, text: state.text, filters: state.filters, sort: state.sort, basket: state.basket }; + return r; + }); + + // get the id from the query params store to open the drawer with the preview of the article + id = computed(() => { + const state = getState(this.queryParamsStore); + return state.id; + }); + + // the query must be retriggered when the user override is active + userOverrideActive = computed(() => { + const state = getState(this.principalStore); + return state.userOverrideActive; + }); + + // input url bindings + q = input(); // text + t = input(); // tab + b = input(); // basket + s = input(); // sort + f = input(); // filters + queryName = input(); // query param + + // tanstack query + query = injectInfiniteQuery(() => ({ + queryKey: [`search-${this.t()}`, this.keys(), this.userOverrideActive()], + queryFn: ({ pageParam }) => { + const q = this.queryParamsStore.getQuery(); + + const query = { ...q, page: pageParam, tab: this.t(), basket: this.b() } as Query; + + // Add the current search to the user settings when the text is not empty + if (query.text && query.text !== '') { + this.usersettingsStore.addCurrentSearch(query as QueryParams); + } + + return lastValueFrom( + this.searchService.getResult(query).pipe( + tap(() => this.queryText.set(this.keys().text ?? '')), + map(result => { + return this.updateArticleType(result); + }), + map(result => { + // If the id is set, open the drawer with the preview of the article + const id = this.id(); + if (id) { + result.records?.forEach(article => { + if (article.id === id) { + this.selectionService.setCurrentArticle(article); + this.drawerStack.open(); + } + }); + } + return result; + }) + ) + ); + }, + initialPageParam: 1, + getPreviousPageParam: firstPage => firstPage.previousPage ?? undefined, + getNextPageParam: lastPage => lastPage.nextPage ?? undefined + })); + + constructor() { + // Update the query params store with the filters from the query params + // This allows Browser back/forward to work correctly + effect( + () => { + const filters = this.f() ? JSON.parse(this.f() ?? '') : []; // Parse the filters from the query params + this.queryParamsStore.patch({ text: this.q(), tab: this.t(), basket: this.b(), sort: this.s(), filters, name: this.queryName() }); + }, + { allowSignalWrites: true } + ); + + // Update the URL with the query params + effect(() => { + const key = this.keys(); + + const queryParams: QP = {}; + const { text, filters = [], page, sort, tab, basket } = getState(this.queryParamsStore); + + queryParams.f = filters.length > 0 ? JSON.stringify(filters) : undefined; + queryParams.p = page; + queryParams.s = sort; + queryParams.t = tab; + queryParams.q = text; + queryParams.b = basket; + + this.router.navigate([], { relativeTo: this.route, queryParamsHandling: 'merge', queryParams, state: {} }); + }); + + // Make Result object available to children and update aggregations store + effect( + () => { + this.query.isSuccess(); + + const result = this.query.data()?.pages[0]; + + if (!result) return; + + this.result.set(result); + + // Update the aggregations store with the new aggregations + this.aggregationsStore.update(result.aggregations); + }, + { allowSignalWrites: true } + ); + + this.sub.add(this.drawerStack.isOpened.subscribe(state => (this.drawerOpened = state))); + } + + ngOnDestroy(): void { + this.sub.unsubscribe(); + this.aggregationsStore.clear(); + } + + nextPage() { + this.query.fetchNextPage(); + } + + /** + * Updates the article type for each record in the result. + * + * This method maps over the `records` array in the `result` object and updates each + * `article` by adding a `value` property set to the `article.title` and a `type` property + * set to `'default'`. The updated `result` object is then returned. + * + * @param {Result} result - The result object containing an array of records to be updated. + * @returns {Result} The updated result object with modified article records. + */ + protected updateArticleType(result: Result) { + result.records?.map((article: Article) => { + return { ...article, value: article.title, type: 'default' }; + }); + return result; + } +} diff --git a/src/core/components/article/default/article-default.component.html b/src/core/components/article/default/article-default.component.html index d15da198..c89b98fa 100644 --- a/src/core/components/article/default/article-default.component.html +++ b/src/core/components/article/default/article-default.component.html @@ -1,72 +1,68 @@ -
      -
      -
      - -
      -
      - -
      -
      -
      -

      {{ article().title }}

      - -
      - @if (showBookmark()) { - - } -
      - - @if (hasLabelsAccess()) { - - } -
      - -
      - @if (docformatMetadata()) { -
      - {{ docformatMetadata() }} -
      - } - -
      - @if ((article().authors || { authors: [''] }).length > 0) { - {{ article().authors[0] }} - } - - @if (article().modified) { -

      - - {{ article()!.modified!.split(' ')[0] | translocoDate: 'mediumDate' }} -

      - } -
      -
      -
      - -
      -

      -
      - - -
      -
      - - - +
      +
      +
      + +
      +
      + +
      +
      +
      +

      {{ article().title }}

      + +
      + @if (showBookmark()) { + + } +
      + + @if (hasLabelsAccess()) { + + } +
      + +
      + @if (docformatMetadata()) { +
      + {{ docformatMetadata() }} +
      + } + +
      + @if ((article().authors || { authors: [''] }).length > 0) { + {{ article().authors[0] }} + } + + @if (article().modified) { +

      + + {{ article()!.modified!.split(' ')[0] | translocoDate: 'mediumDate' }} +

      + } +
      +
      +
      + +
      +

      +
      + + +
      +
      + + + diff --git a/src/core/components/article/default/article-default.component.ts b/src/core/components/article/default/article-default.component.ts index ffb3eb71..c9928faa 100644 --- a/src/core/components/article/default/article-default.component.ts +++ b/src/core/components/article/default/article-default.component.ts @@ -1,135 +1,144 @@ -import { BookmarkButtonComponent } from '@/core/features/bookmarks/button/bookmark-button.component'; -import { Component, computed, inject, OnDestroy, signal, viewChild } from '@angular/core'; -import { getState } from '@ngrx/signals'; - -import { - ApplicationStore, - AppStore, - DropdownComponent, - LabelService, - QueryParamsStore, - SearchService, - SelectArticleOnClickDirective, - SelectionStore, - ShowBookmarkDirective -} from '@sinequa/atomic-angular'; - -import { EditLabelsComponent } from '@/core/features/dialog/labels/edit-labels'; -import { TranslocoDateImpurePipe } from '@/core/pipes/transloco-date.pipe'; -import { BaseArticle } from '@/core/registry/base-article'; -import { HashMap, provideTranslocoScope, Translation, TranslocoPipe } from '@jsverse/transloco'; -import { LegacyFilter } from '@sinequa/atomic'; -import { SourceIconComponent } from '../../source-icon/source-icon.component'; -import { MissingTermsComponent } from '../missing-terms/missing-terms.component'; -import { AddToCollectionDialog } from '@/core/features/collections/add-to-collection'; - -type Tab = 'attachments' | 'similars'; - -const HIDDEN_METADATA = ['web', 'htm', 'html', 'xhtm', 'xhtml', 'mht', 'mhtml', 'mht', 'aspx', 'page']; - -const loader = ['en', 'fr'].reduce( - (acc, lang) => { - acc[lang] = () => import(`../i18n/${lang}.json`); - return acc; - }, - {} as HashMap<() => Promise> -); - -@Component({ - selector: 'app-article-default', - standalone: true, - imports: [ - BookmarkButtonComponent, - SourceIconComponent, - TranslocoDateImpurePipe, - DropdownComponent, - TranslocoPipe, - EditLabelsComponent, - AddToCollectionDialog, - MissingTermsComponent - ], - templateUrl: './article-default.component.html', - styleUrl: './article-default.component.scss', - hostDirectives: [ - { - directive: SelectArticleOnClickDirective, - inputs: ['article', 'strategy'] - }, - { - directive: ShowBookmarkDirective, - inputs: ['article'] - } - ], - providers: [provideTranslocoScope({ scope: 'article', loader })] -}) -export class ArticleDefaultComponent extends BaseArticle implements OnDestroy { - appStore = inject(AppStore); - applicationStore = inject(ApplicationStore); - selectionStore = inject(SelectionStore); - queryParamStore = inject(QueryParamsStore); - searchService = inject(SearchService); - labelService = inject(LabelService); - - readonly editLabelsDialog = viewChild(EditLabelsComponent); - readonly addToCollectionDialog = viewChild(AddToCollectionDialog); - - showBookmark = signal(false); - showBookmarkOutputSubscription = inject(ShowBookmarkDirective)?.showBookmark.subscribe(value => { - this.showBookmark.set(value); - }); - - selected = computed(() => this.article()?.id === getState(this.selectionStore).id); - - protected extract = computed(() => { - if (!this.article().matchingpassages) return this.article().relevantExtracts; - - const topPassage = this.article().matchingpassages!.passages.sort((a, b) => (a.score > b.score ? -1 : 1))[0]; - return topPassage.highlightedText; - }); - - protected showTab = signal(false); - protected currentTab: Tab = 'attachments'; - - protected docformatMetadata = computed(() => { - if (this.article().docformat && !HIDDEN_METADATA.includes(this.article().docformat.toLowerCase())) return this.article().docformat; - - if (this.article().doctype && !HIDDEN_METADATA.includes(this.article().doctype!.toLowerCase())) return this.article().doctype; - - return undefined; - }); - - protected hasLabelsAccess = computed(() => this.applicationStore.hasLabelsAccess() || false); - - ngOnDestroy(): void { - this.showBookmarkOutputSubscription.unsubscribe(); - } - - public toggleTab(tab: Tab): void { - if (this.currentTab === tab) { - this.showTab.set(!this.showTab()); - return; - } - - this.currentTab = tab; - this.showTab.set(true); - } - - /** - * Apply filter from the metadata click - * @param field field to filter on - * @param value value from the filter - */ - setFilter(field: string, value: string): void { - let filter: LegacyFilter = { field, value }; - this.queryParamStore.updateFilter(filter); - this.searchService.search([]); - } - - editLabels(): void { - this.editLabelsDialog()?.showModal(); - } - - addToCollection(): void { - this.addToCollectionDialog()?.showModal(); - } -} +import { BookmarkButtonComponent } from '@/core/features/bookmarks/bookmark-button'; +import { Component, computed, inject, input, OnDestroy, signal, viewChild } from '@angular/core'; +import { getState } from '@ngrx/signals'; + +import { + ApplicationStore, + AppStore, + ButtonComponent, + LabelService, + MenuComponent, + MenuContentComponent, + MenuItemComponent, + QueryParamsStore, + SearchService, + SelectArticleOnClickDirective, + SelectionStore, + SelectionStrategy, + ShowBookmarkDirective +} from '@sinequa/atomic-angular'; + +import { CollectionsDialog } from '@/core/features/collections/collections-add.dialog'; +import { LabelsEditComponent } from '@/core/features/labels/labels-edit.dialog'; +import { TranslocoDateImpurePipe } from '@/core/pipes/transloco-date.pipe'; +import { HashMap, provideTranslocoScope, Translation, TranslocoPipe } from '@jsverse/transloco'; +import { Article, LegacyFilter } from '@sinequa/atomic'; +import { SourceIconComponent } from '../../source-icon/source-icon.component'; +import { MissingTermsComponent } from '../missing-terms/missing-terms.component'; + +type Tab = 'attachments' | 'similars'; + +const HIDDEN_METADATA = ['web', 'htm', 'html', 'xhtm', 'xhtml', 'mht', 'mhtml', 'mht', 'aspx', 'page']; + +const loader = ['en', 'fr'].reduce( + (acc, lang) => { + acc[lang] = () => import(`../i18n/${lang}.json`); + return acc; + }, + {} as HashMap<() => Promise> +); + +@Component({ + selector: 'app-article-default', + standalone: true, + imports: [ + BookmarkButtonComponent, + SourceIconComponent, + TranslocoDateImpurePipe, + ButtonComponent, + MenuComponent, + MenuContentComponent, + MenuItemComponent, + TranslocoPipe, + LabelsEditComponent, + CollectionsDialog, + MissingTermsComponent + ], + templateUrl: './article-default.component.html', + styleUrl: './article-default.component.scss', + hostDirectives: [ + { + directive: SelectArticleOnClickDirective, + inputs: ['article', 'strategy'] + }, + { + directive: ShowBookmarkDirective, + inputs: ['article'] + } + ], + providers: [provideTranslocoScope({ scope: 'article', loader })] +}) +export class ArticleDefaultComponent implements OnDestroy { + public readonly article = input.required
      (); + public readonly strategy = input(); + + appStore = inject(AppStore); + applicationStore = inject(ApplicationStore); + selectionStore = inject(SelectionStore); + queryParamStore = inject(QueryParamsStore); + searchService = inject(SearchService); + labelService = inject(LabelService); + + readonly editLabelsDialog = viewChild(LabelsEditComponent); + readonly addToCollectionDialog = viewChild(CollectionsDialog); + + showBookmark = signal(false); + showBookmarkOutputSubscription = inject(ShowBookmarkDirective)?.showBookmark.subscribe(value => { + this.showBookmark.set(value); + }); + + selected = computed(() => this.article()?.id === getState(this.selectionStore).id); + + protected extract = computed(() => { + if (!this.article().matchingpassages) return this.article().relevantExtracts; + + const topPassage = this.article().matchingpassages!.passages.sort((a, b) => (a.score > b.score ? -1 : 1))[0]; + return topPassage.highlightedText; + }); + + protected showTab = signal(false); + protected currentTab: Tab = 'attachments'; + + protected docformatMetadata = computed(() => { + if (this.article().docformat && !HIDDEN_METADATA.includes(this.article().docformat.toLowerCase())) return this.article().docformat; + + if (this.article().doctype && !HIDDEN_METADATA.includes(this.article().doctype!.toLowerCase())) return this.article().doctype; + + return undefined; + }); + + protected hasLabelsAccess = computed(() => this.applicationStore.hasLabelsAccess() || false); + + ngOnDestroy(): void { + this.showBookmarkOutputSubscription.unsubscribe(); + } + + public toggleTab(tab: Tab): void { + if (this.currentTab === tab) { + this.showTab.set(!this.showTab()); + return; + } + + this.currentTab = tab; + this.showTab.set(true); + } + + /** + * Apply filter from the metadata click + * @param field field to filter on + * @param value value from the filter + */ + setFilter(field: string, value: string): void { + let filter: LegacyFilter = { field, value }; + this.queryParamStore.updateFilter(filter); + this.searchService.search([]); + } + + editLabels(): void { + this.editLabelsDialog()?.showModal(); + } + + addToCollection(): void { + this.addToCollectionDialog()?.showModal(); + } +} diff --git a/src/core/components/article/slide/article-slide.component.html b/src/core/components/article/slide/article-slide.component.html index 11672f1e..b1e76a1b 100644 --- a/src/core/components/article/slide/article-slide.component.html +++ b/src/core/components/article/slide/article-slide.component.html @@ -1,39 +1,39 @@ -
      -
      - @if (article().thumbnailUrl && !thumbnailFailed()) { -
      - -
      - } -
      - -
      -
      -
      -

      {{ article().title }}

      - - @if (showBookmark()) { - - } -
      - -
      -
      - @if ((article().authors || { authors: [''] }).length > 0) { -

      - - {{ article().authors[0] }} -

      - } - - @if (article().modified) { -

      - - {{ article()!.modified!.split(' ')[0] | translocoDate: 'mediumDate' }} -

      - } -
      -
      -
      -
      -
      +
      +
      + @if (article().thumbnailUrl && !thumbnailFailed()) { +
      + +
      + } +
      + +
      +
      +
      +

      {{ article().title }}

      + + @if (showBookmark()) { + + } +
      + +
      +
      + @if ((article().authors || { authors: [''] }).length > 0) { +

      + + {{ article().authors[0] }} +

      + } + + @if (article().modified) { +

      + + {{ article()!.modified!.split(' ')[0] | translocoDate: 'mediumDate' }} +

      + } +
      +
      +
      +
      +
      diff --git a/src/core/components/article/slide/article-slide.component.ts b/src/core/components/article/slide/article-slide.component.ts index 492db75d..017cc63b 100644 --- a/src/core/components/article/slide/article-slide.component.ts +++ b/src/core/components/article/slide/article-slide.component.ts @@ -1,43 +1,46 @@ -import { Component, OnDestroy, computed, inject, signal } from '@angular/core'; -import { getState } from '@ngrx/signals'; - -import { SelectArticleOnClickDirective, SelectionStore, ShowBookmarkDirective } from '@sinequa/atomic-angular'; - -import { BookmarkButtonComponent } from '@/core/features/bookmarks/button/bookmark-button.component'; -import { TranslocoDateImpurePipe } from '@/core/pipes/transloco-date.pipe'; -import { BaseArticle } from '@/core/registry/base-article'; - -@Component({ - selector: 'app-article-slide', - standalone: true, - imports: [BookmarkButtonComponent, TranslocoDateImpurePipe], - templateUrl: './article-slide.component.html', - // eslint-disable-next-line @angular-eslint/no-host-metadata-property - host: { - '[class.selected]': 'selected()' - }, - hostDirectives: [ - { - directive: SelectArticleOnClickDirective, - inputs: ['article', 'strategy'] - }, - { - directive: ShowBookmarkDirective, - inputs: ['article'] - } - ] -}) -export class ArticleSlideComponent extends BaseArticle implements OnDestroy { - selectionStore = inject(SelectionStore); - showBookmarkOutputSubscription = inject(ShowBookmarkDirective)?.showBookmark.subscribe(value => { - this.showBookmark.set(value); - }); - - thumbnailFailed = signal(false); - showBookmark = signal(false); - selected = computed(() => this.article()?.id === getState(this.selectionStore).id); - - ngOnDestroy(): void { - this.showBookmarkOutputSubscription.unsubscribe(); - } -} +import { Component, OnDestroy, computed, inject, input, signal } from '@angular/core'; +import { getState } from '@ngrx/signals'; + +import { SelectArticleOnClickDirective, SelectionStore, SelectionStrategy, ShowBookmarkDirective } from '@sinequa/atomic-angular'; + +import { BookmarkButtonComponent } from '@/core/features/bookmarks/bookmark-button'; +import { TranslocoDateImpurePipe } from '@/core/pipes/transloco-date.pipe'; +import { Article } from '@sinequa/atomic'; + +@Component({ + selector: 'app-article-slide', + standalone: true, + imports: [BookmarkButtonComponent, TranslocoDateImpurePipe], + templateUrl: './article-slide.component.html', + // eslint-disable-next-line @angular-eslint/no-host-metadata-property + host: { + '[class.selected]': 'selected()' + }, + hostDirectives: [ + { + directive: SelectArticleOnClickDirective, + inputs: ['article', 'strategy'] + }, + { + directive: ShowBookmarkDirective, + inputs: ['article'] + } + ] +}) +export class ArticleSlideComponent implements OnDestroy { + public readonly article = input.required
      (); + public readonly strategy = input(); + + selectionStore = inject(SelectionStore); + showBookmarkOutputSubscription = inject(ShowBookmarkDirective)?.showBookmark.subscribe(value => { + this.showBookmark.set(value); + }); + + thumbnailFailed = signal(false); + showBookmark = signal(false); + selected = computed(() => this.article()?.id === getState(this.selectionStore).id); + + ngOnDestroy(): void { + this.showBookmarkOutputSubscription.unsubscribe(); + } +} diff --git a/src/core/components/document-locator/document-locator.component.ts b/src/core/components/document-locator/document-locator.component.ts index 2fe4d6b9..d9b8360b 100644 --- a/src/core/components/document-locator/document-locator.component.ts +++ b/src/core/components/document-locator/document-locator.component.ts @@ -1,147 +1,147 @@ -import { afterNextRender, Component, effect, ElementRef, inject, input, OnDestroy, signal, untracked, viewChild } from '@angular/core'; -import { Router } from '@angular/router'; -import { getState } from '@ngrx/signals'; - -import { Article, LegacyFilter } from '@sinequa/atomic'; -import { DropdownComponent, QueryParamsStore } from '@sinequa/atomic-angular'; - -import { SourceIconComponent } from '../source-icon/source-icon.component'; - -@Component({ - selector: 'DocumentLocator', - standalone: true, - imports: [SourceIconComponent, DropdownComponent], - template: ` - - - - - - - -
      - @for (segment of visibleSegments(); track $index) { -
      - {{ segment }} -
      - - @if (!$last) { - - } - } - - @if (visibleSegments().length > 0 && invisibleSegments().length > 0) { - - } - - @if (invisibleSegments().length > 0) { - - - -
      - @for (segment of invisibleSegments(); track $index) { - - - @if (!$last) { - - } - } -
      -
      - } -
      - `, - host: { - class: 'flex grow gap-2 overflow-hidden' - } -}) -export class DocumentLocatorComponent implements OnDestroy { - readonly article = input.required
      (); - - readonly shadow = viewChild('shadowRender', { read: ElementRef }); - readonly client = viewChild('documentLocator', { read: ElementRef }); - - readonly el = inject(ElementRef); - readonly router = inject(Router); - readonly queryParamStore = inject(QueryParamsStore); - - readonly locationSegments = signal([]); - readonly visibleSegments = signal([]); - readonly invisibleSegments = signal([]); - - // margin for dropdown segment with separator - readonly margin = 50; - - previousCount?: number; - resizeObserver?: ResizeObserver = new ResizeObserver(() => this.onResize()); - - constructor() { - this.resizeObserver!.observe(this.el.nativeElement); - - afterNextRender({ write: () => this.onResize() }); - - effect(() => { - const article = this.article(); - untracked(() => this.locationSegments.set(article.treepath[0]?.split('/').slice(1, -1) ?? [])); - }); - } - - ngOnDestroy(): void { - this.resizeObserver!.disconnect(); - this.resizeObserver = undefined; - } - - onResize(): void { - const shadowElement = this.shadow()?.nativeElement as HTMLElement; - const startPos = shadowElement.getBoundingClientRect().left; - const clientWidth = (this.client()?.nativeElement as HTMLElement).clientWidth; - - if (!shadowElement.children || shadowElement.children.length === 0) return; - - let i = 0; - - for (; i < shadowElement.children.length; ++i) { - // process if not a separator - if (i % 2 === 0) { - const width = shadowElement.children[i].getBoundingClientRect().right - startPos; - - if (width + this.margin >= clientWidth) break; - } - } - - if (!this.previousCount || i !== this.previousCount) { - this.previousCount = i; - - this.visibleSegments.set(this.locationSegments().slice(0, Math.ceil(i / 2))); - this.invisibleSegments.set(this.locationSegments().slice(Math.ceil(i / 2))); - } - } - - navigateToSegment(index: number): void { - let currentFilter = this.queryParamStore.getFilter('Treepath'); - - currentFilter ??= { field: 'treepath', operator: 'in' } as LegacyFilter; - currentFilter.values ??= []; - currentFilter.values.push( - `/${this.locationSegments() - .slice(0, index + 1) - .join('/')}/*` - ); - - this.queryParamStore.updateFilter(currentFilter); - - const { filters } = getState(this.queryParamStore); - - this.router.navigate([], { queryParams: { f: JSON.stringify(filters) }, queryParamsHandling: 'merge' }); - } -} +import { afterNextRender, Component, effect, ElementRef, inject, input, OnDestroy, signal, untracked, viewChild } from '@angular/core'; +import { Router } from '@angular/router'; +import { getState } from '@ngrx/signals'; + +import { Article, LegacyFilter } from '@sinequa/atomic'; +import { BadgeComponent, ButtonComponent, PopoverComponent, PopoverContentComponent, QueryParamsStore } from '@sinequa/atomic-angular'; + +import { SourceIconComponent } from '../source-icon/source-icon.component'; + +@Component({ + selector: 'DocumentLocator', + standalone: true, + imports: [SourceIconComponent, BadgeComponent, ButtonComponent, PopoverComponent, PopoverContentComponent], + template: ` + + + + + + + +
      + @for (segment of visibleSegments(); track $index) { +
      + {{ segment }} +
      + + @if (!$last) { + + } + } + + @if (visibleSegments().length > 0 && invisibleSegments().length > 0) { + + } + + @if (invisibleSegments().length > 0) { + + + + + @for (segment of invisibleSegments(); track $index) { + + {{ segment }} + + + @if (!$last) { + + } + } + + + } +
      + `, + host: { + class: 'flex grow gap-2 overflow-hidden' + } +}) +export class DocumentLocatorComponent implements OnDestroy { + readonly article = input.required
      (); + + readonly shadow = viewChild('shadowRender', { read: ElementRef }); + readonly client = viewChild('documentLocator', { read: ElementRef }); + + readonly el = inject(ElementRef); + readonly router = inject(Router); + readonly queryParamStore = inject(QueryParamsStore); + + readonly locationSegments = signal([]); + readonly visibleSegments = signal([]); + readonly invisibleSegments = signal([]); + + // margin for dropdown segment with separator + readonly margin = 70; + + previousCount?: number; + resizeObserver?: ResizeObserver = new ResizeObserver(() => this.onResize()); + + constructor() { + this.resizeObserver!.observe(this.el.nativeElement); + + afterNextRender({ write: () => this.onResize() }); + + effect(() => { + const article = this.article(); + untracked(() => this.locationSegments.set(article.treepath[0]?.split('/').slice(1, -1) ?? [])); + }); + } + + ngOnDestroy(): void { + this.resizeObserver!.disconnect(); + this.resizeObserver = undefined; + } + + onResize(): void { + const shadowElement = this.shadow()?.nativeElement as HTMLElement; + const startPos = shadowElement.getBoundingClientRect().left; + const clientWidth = (this.client()?.nativeElement as HTMLElement).clientWidth; + + if (!shadowElement.children || shadowElement.children.length === 0) return; + + let i = 0; + + for (; i < shadowElement.children.length; ++i) { + // process if not a separator + if (i % 2 === 0) { + const width = shadowElement.children[i].getBoundingClientRect().right - startPos; + + if (width + this.margin >= clientWidth) break; + } + } + + if (!this.previousCount || i !== this.previousCount) { + this.previousCount = i; + + this.visibleSegments.set(this.locationSegments().slice(0, Math.ceil(i / 2))); + this.invisibleSegments.set(this.locationSegments().slice(Math.ceil(i / 2))); + } + } + + navigateToSegment(index: number): void { + let currentFilter = this.queryParamStore.getFilter('Treepath'); + + currentFilter ??= { field: 'treepath', operator: 'in' } as LegacyFilter; + currentFilter.values ??= []; + currentFilter.values.push( + `/${this.locationSegments() + .slice(0, index + 1) + .join('/')}/*` + ); + + this.queryParamStore.updateFilter(currentFilter); + + const { filters } = getState(this.queryParamStore); + + this.router.navigate([], { queryParams: { f: JSON.stringify(filters) }, queryParamsHandling: 'merge' }); + } +} diff --git a/src/core/components/drawer/advanced-search/advanced-search.component.html b/src/core/components/drawer/advanced-search/advanced-search.component.html index b32e7b71..94a50c20 100644 --- a/src/core/components/drawer/advanced-search/advanced-search.component.html +++ b/src/core/components/drawer/advanced-search/advanced-search.component.html @@ -1,159 +1,165 @@ -@if (article()) { -
      -
      -
      -
      - - - @if (input() !== '') { - - } -
      - - -
      -
      - -
      - -

      - - {{ 'extracts' | transloco }} -

      - - -
      - - @if (loading()) { -
      - -
      - } @else { -
        - @for (extract of extracts(); track $index) { -
      • -

        -
      • - -
      • - } @empty { -
      • {{ 'drawers.noRelevantExtracts' | transloco }}
      • - } -
      - } -
      - - @if (hasLabels()) { -
      - -

      - - {{ 'labels' | transloco }} -

      - - -
      - -
      -
        -
      • - -
      • - -
      • - -
      • -
      -
      -
      - } - - @for (highlight of previewHighlights(); track $index) { - @if (highlight.metadata) { - - } - } - - @if (similarDocuments().length > 0) { -
      - -

      - - {{ 'drawers.similarDocuments' | transloco }} -

      - - -
      - -
      -
        - @for (document of similarDocuments(); track $index) { -
      • -
        - -
        - - {{ document.displayTitle ?? document.title }} -
      • - } -
      -
      -
      - } -
      -} - - -
      - -

      - - {{ name | transloco }} -

      - - -
      - -
      -
        - @for (data of metadata; track $index) { -
      • -

        {{ data.display }}

        - -

        - @if (hovering() === data.value) { - - - {{ hoverIndex() }} / {{ data.count }} - - - } @else { - {{ data.count }} - } -

        -
      • - } -
      -
      -
      -
      +@if (article()) { +
      +
      +
      +
      + + + @if (input() !== '') { + + } +
      + + +
      +
      + +
      + +

      + + {{ 'extracts' | transloco }} +

      + + +
      + + @if (loading()) { +
      + +
      + } @else { +
        + @for (extract of extracts(); track $index) { +
      • +

        +
      • + +
      • + } @empty { +
      • {{ 'drawers.noRelevantExtracts' | transloco }}
      • + } +
      + } +
      + + @if (hasLabels()) { +
      + +

      + + {{ 'labels' | transloco }} +

      + + +
      + +
      +
        +
      • + +
      • + +
      • + +
      • +
      +
      +
      + } + + @for (highlight of previewHighlights(); track $index) { + @if (highlight.metadata) { + + } + } + + @if (similarDocuments().length > 0) { +
      + +

      + + {{ 'drawers.similarDocuments' | transloco }} +

      + + +
      + +
      +
        + @for (document of similarDocuments(); track $index) { +
      • +
        + +
        + + {{ document.displayTitle ?? document.title }} +
      • + } +
      +
      +
      + } +
      +} + + +
      + +

      + + {{ name | transloco }} +

      + + +
      + +
      +
        + @for (data of metadata; track $index) { +
      • +

        {{ data.display }}

        + +

        + @if (hovering() === data.value) { + + + {{ hoverIndex() }} / {{ data.count }} + + + } @else { + {{ data.count }} + } +

        +
      • + } +
      +
      +
      +
      diff --git a/src/core/components/drawer/advanced-search/advanced-search.component.ts b/src/core/components/drawer/advanced-search/advanced-search.component.ts index b6cf7d72..df1d7520 100644 --- a/src/core/components/drawer/advanced-search/advanced-search.component.ts +++ b/src/core/components/drawer/advanced-search/advanced-search.component.ts @@ -1,171 +1,172 @@ -import { NgTemplateOutlet } from '@angular/common'; -import { Component, OnDestroy, computed, effect, inject, input, signal, untracked } from '@angular/core'; -import { FormsModule } from '@angular/forms'; -import { HashMap, Translation, TranslocoPipe, provideTranslocoScope } from '@jsverse/transloco'; -import { getState } from '@ngrx/signals'; -import { Subscription } from 'rxjs'; - -import { Article, CCWebService, fetchSimilarDocuments } from '@sinequa/atomic'; -import { - AppStore, - ApplicationStore, - ArticleMetadata, - MetadataComponent, - PreviewService, - QueryParamsStore, - SelectArticleOnClickDirective, - SelectionStore -} from '@sinequa/atomic-angular'; - -import { SourceIconComponent } from '../../source-icon/source-icon.component'; - -interface MetadataNavigation { - index: number; - value: string; -} - -type PreviewWebService = CCWebService & { - highlights?: string; -}; - -const loader = ['en', 'fr'].reduce( - (acc, lang) => { - acc[lang] = () => import(`../i18n/${lang}.json`); - return acc; - }, - {} as HashMap<() => Promise> -); - -@Component({ - selector: 'app-advanced-search', - standalone: true, - templateUrl: './advanced-search.component.html', - styles: [ - ` - :host { - // disable default max-height for panel - --panel-max-height: none; - } - /* Hides cancel button from input that as type='search' */ - input[type='search']::-webkit-search-cancel-button { - -webkit-appearance: none; - } - ` - ], - imports: [NgTemplateOutlet, FormsModule, MetadataComponent, TranslocoPipe, SourceIconComponent, SelectArticleOnClickDirective], - providers: [provideTranslocoScope({ scope: 'drawers', loader })] -}) -export class AdvancedSearchComponent implements OnDestroy { - public readonly article = input.required
      (); - - public readonly labels = inject(AppStore).getLabels(); - private readonly applicationStore = inject(ApplicationStore); - private readonly appStore = inject(AppStore); - private readonly selectionStore = inject(SelectionStore); - private readonly previewService = inject(PreviewService); - private readonly queryParamsStore = inject(QueryParamsStore); - - protected readonly input = signal(getState(this.selectionStore).queryText || ''); - protected readonly extracts = computed(() => { - getState(this.applicationStore); - - if (!this.article()) return []; - - return this.applicationStore.getExtracts(this.article()!.id); - }); - readonly similarDocuments = signal([]); - - protected readonly previewHighlights = computed(() => { - const highlights = (this.appStore.getWebServiceByType('preview') as PreviewWebService)?.highlights - ?.split(',') - .filter(h => h !== 'extractslocations' && h !== 'matchlocations' && h !== 'matchingpassages'); - - return highlights?.map(highlight => ({ - name: highlight, - entity: highlight, - metadata: (this.article() as any)[highlight] - })); - }); - - public navigation = signal(undefined); - public hovering = signal(undefined); - public hoverIndex = computed(() => (this.navigation()?.value === this.hovering() ? this.navigation()!.index : 0)); - - public readonly hasLabels = computed(() => { - const article: any = this.article(); // required as any otherwise the lines below won't compile - const publicLabels: string[] | undefined = article[this.labels.public]; - const privateLabels: string[] | undefined = article[this.labels.private]; - return (publicLabels && publicLabels.length > 0) || (privateLabels && privateLabels.length > 0); - }); - - loading = signal(true); - protected subscription: Subscription; - - constructor() { - this.subscription = this.previewService.events.subscribe(event => { - switch (event) { - case 'fetching': - this.loading.set(true); - break; - default: - this.loading.set(false); - break; - } - }); - - effect(() => { - const id = this.article().id; - - untracked(() => { - const queryName = this.queryParamsStore.getQuery().name; - fetchSimilarDocuments(id, queryName).then(res => this.similarDocuments.set(res.data)); - }); - }); - } - - ngOnDestroy(): void { - if (this.subscription) { - this.subscription.unsubscribe(); - } - } - - protected executeSearch(): void { - this.selectionStore.update({ queryText: this.input() }); - } - - protected clearInput(): void { - this.input.set(''); - } - - scrollTo(type: string, index: number, usePassageHighlighter: boolean = false) { - this.previewService.sendMessage({ action: 'select', id: `${type}_${index}`, usePassageHighlighter }); - } - - navigateNext(entity: string, data: ArticleMetadata) { - const index = this.navigation()?.value === data.value ? (this.navigation()!.index < data.count! ? this.navigation()!.index + 1 : 1) : 1; - - this.navigation.set({ - value: data.value, - index - }); - - const id = this.previewService.getEntityId(entity, data.value, index - 1); - if (id !== undefined) { - this.scrollTo(entity, id); - } - } - - navigatePrev(entity: string, data: ArticleMetadata) { - const index = this.navigation()?.value === data.value ? (this.navigation()!.index <= 1 ? data.count! : this.navigation()!.index - 1) : data.count!; - - this.navigation.set({ - value: data.value, - index - }); - - const id = this.previewService.getEntityId(entity, data.value, index - 1); - if (id !== undefined) { - this.scrollTo(entity, id); - } - } -} +import { NgTemplateOutlet } from '@angular/common'; +import { Component, OnDestroy, computed, effect, inject, input, signal, untracked } from '@angular/core'; +import { FormsModule } from '@angular/forms'; +import { HashMap, Translation, TranslocoPipe, provideTranslocoScope } from '@jsverse/transloco'; +import { getState } from '@ngrx/signals'; +import { Subscription } from 'rxjs'; + +import { Article, CCWebService, fetchSimilarDocuments } from '@sinequa/atomic'; +import { + AppStore, + ApplicationStore, + ArticleMetadata, + ButtonComponent, + MetadataComponent, + PreviewService, + QueryParamsStore, + SelectArticleOnClickDirective, + SelectionStore +} from '@sinequa/atomic-angular'; + +import { SourceIconComponent } from '../../source-icon/source-icon.component'; + +interface MetadataNavigation { + index: number; + value: string; +} + +type PreviewWebService = CCWebService & { + highlights?: string; +}; + +const loader = ['en', 'fr'].reduce( + (acc, lang) => { + acc[lang] = () => import(`../i18n/${lang}.json`); + return acc; + }, + {} as HashMap<() => Promise> +); + +@Component({ + selector: 'app-advanced-search', + standalone: true, + templateUrl: './advanced-search.component.html', + styles: [ + ` + :host { + // disable default max-height for panel + --panel-max-height: none; + } + /* Hides cancel button from input that as type='search' */ + input[type='search']::-webkit-search-cancel-button { + -webkit-appearance: none; + } + ` + ], + imports: [NgTemplateOutlet, FormsModule, ButtonComponent, MetadataComponent, TranslocoPipe, SourceIconComponent, SelectArticleOnClickDirective], + providers: [provideTranslocoScope({ scope: 'drawers', loader })] +}) +export class AdvancedSearchComponent implements OnDestroy { + public readonly article = input.required
      (); + + public readonly labels = inject(AppStore).getLabels(); + private readonly applicationStore = inject(ApplicationStore); + private readonly appStore = inject(AppStore); + private readonly selectionStore = inject(SelectionStore); + private readonly previewService = inject(PreviewService); + private readonly queryParamsStore = inject(QueryParamsStore); + + protected readonly input = signal(getState(this.selectionStore).queryText || ''); + protected readonly extracts = computed(() => { + getState(this.applicationStore); + + if (!this.article()) return []; + + return this.applicationStore.getExtracts(this.article()!.id); + }); + readonly similarDocuments = signal([]); + + protected readonly previewHighlights = computed(() => { + const highlights = (this.appStore.getWebServiceByType('preview') as PreviewWebService)?.highlights + ?.split(',') + .filter(h => h !== 'extractslocations' && h !== 'matchlocations' && h !== 'matchingpassages'); + + return highlights?.map(highlight => ({ + name: highlight, + entity: highlight, + metadata: (this.article() as any)[highlight] + })); + }); + + public navigation = signal(undefined); + public hovering = signal(undefined); + public hoverIndex = computed(() => (this.navigation()?.value === this.hovering() ? this.navigation()!.index : 0)); + + public readonly hasLabels = computed(() => { + const article: any = this.article(); // required as any otherwise the lines below won't compile + const publicLabels: string[] | undefined = article[this.labels.public]; + const privateLabels: string[] | undefined = article[this.labels.private]; + return (publicLabels && publicLabels.length > 0) || (privateLabels && privateLabels.length > 0); + }); + + loading = signal(true); + protected subscription: Subscription; + + constructor() { + this.subscription = this.previewService.events.subscribe(event => { + switch (event) { + case 'fetching': + this.loading.set(true); + break; + default: + this.loading.set(false); + break; + } + }); + + effect(() => { + const id = this.article().id; + + untracked(() => { + const queryName = this.queryParamsStore.getQuery().name; + fetchSimilarDocuments(id, queryName).then(res => this.similarDocuments.set(res.data)); + }); + }); + } + + ngOnDestroy(): void { + if (this.subscription) { + this.subscription.unsubscribe(); + } + } + + protected executeSearch(): void { + this.selectionStore.update({ queryText: this.input() }); + } + + protected clearInput(): void { + this.input.set(''); + } + + scrollTo(type: string, index: number, usePassageHighlighter: boolean = false) { + this.previewService.sendMessage({ action: 'select', id: `${type}_${index}`, usePassageHighlighter }); + } + + navigateNext(entity: string, data: ArticleMetadata) { + const index = this.navigation()?.value === data.value ? (this.navigation()!.index < data.count! ? this.navigation()!.index + 1 : 1) : 1; + + this.navigation.set({ + value: data.value, + index + }); + + const id = this.previewService.getEntityId(entity, data.value, index - 1); + if (id !== undefined) { + this.scrollTo(entity, id); + } + } + + navigatePrev(entity: string, data: ArticleMetadata) { + const index = this.navigation()?.value === data.value ? (this.navigation()!.index <= 1 ? data.count! : this.navigation()!.index - 1) : data.count!; + + this.navigation.set({ + value: data.value, + index + }); + + const id = this.previewService.getEntityId(entity, data.value, index - 1); + if (id !== undefined) { + this.scrollTo(entity, id); + } + } +} diff --git a/src/core/components/filters/aggregation/aggregation-row.component.html b/src/core/components/filters/aggregation/aggregation-row.component.html index 6b8f9d20..d3a96692 100644 --- a/src/core/components/filters/aggregation/aggregation-row.component.html +++ b/src/core/components/filters/aggregation/aggregation-row.component.html @@ -1,41 +1,49 @@ - - - - - - @if (node().icon) { - - } - - {{ name() | syslang }} - - -@if (node().hasChildren && node().$opened) { - @for (item of node().items; track $index) { - - } -} + + + + + + @if (node().icon) { + + } + + {{ name() | syslang }} + + +@if (node().hasChildren && node().$opened) { + @for (item of node().items; track $index) { + + } +} diff --git a/src/core/components/filters/aggregation/aggregation-row.component.ts b/src/core/components/filters/aggregation/aggregation-row.component.ts index 429af0d5..0aaef931 100644 --- a/src/core/components/filters/aggregation/aggregation-row.component.ts +++ b/src/core/components/filters/aggregation/aggregation-row.component.ts @@ -1,69 +1,61 @@ -import { NgClass } from '@angular/common'; -import { Component, EventEmitter, HostBinding, Output, computed, input } from '@angular/core'; - -import { AggregationListItem, cn } from '@sinequa/atomic-angular'; - -import { SyslangPipe } from '@/core/pipes/syslang'; - -@Component({ - selector: 'aggregation-row, AggregationRow', - standalone: true, - imports: [NgClass, SyslangPipe], - templateUrl: './aggregation-row.component.html', - styles: ` - :host { - display: block; - user-select: none; - } - :host a { - padding-left: calc((1rem * var(--level))); - } - :host:has(input:checked) { - color: theme('colors.primary'); - } - ` -}) -export class AggregationRowComponent { - cn = cn; - @HostBinding('attr.disabled') get disabled() { - return this.node().count === 0 ? 'disabled' : null; - } - - @Output() onSelect = new EventEmitter(); - @Output() onOpen = new EventEmitter(); - - node = input.required(); - - @HostBinding('class.selected') get selected() { - return this.node().$selected; - } - - name = computed(() => { - const value = this.node().display || this.node().value; - return typeof value === 'string' ? value : `${value}`; - }); - - select(e: Event, item: AggregationListItem) { - e.stopImmediatePropagation(); - item.$selected = !item.$selected; - - this.onSelect.emit(item); - } - - open(e: Event, node: AggregationListItem) { - // fetch aggregation items - e.preventDefault(); - e.stopImmediatePropagation(); - - if (node.items && node.$opened === true) { - node.$opened = false; - return; - } - if (node.items && !node.$opened) { - node.$opened = true; - return; - } - - this.onOpen.emit(node); - } -} +import { Component, computed, EventEmitter, HostBinding, input, Output } from '@angular/core'; + +import { AggregationListItem, cn, MenuItemComponent } from '@sinequa/atomic-angular'; + +import { SyslangPipe } from '@/core/pipes/syslang'; + +@Component({ + selector: 'aggregation-row, AggregationRow', + standalone: true, + imports: [MenuItemComponent, SyslangPipe], + templateUrl: './aggregation-row.component.html', + styles: ` + :host { + display: block; + user-select: none; + } + :host a { + padding-left: calc((1rem * var(--level))); + } + ` +}) +export class AggregationRowComponent { + cn = cn; + @HostBinding('attr.disabled') get disabled() { + return this.node().count === 0 ? 'disabled' : null; + } + + @Output() onSelect = new EventEmitter(); + @Output() onOpen = new EventEmitter(); + + node = input.required(); + + name = computed(() => { + const value = this.node().display || this.node().value; + return typeof value === 'string' ? value : `${value}`; + }); + + select(e: Event, item: AggregationListItem) { + e.stopImmediatePropagation(); + item.$selected = !item.$selected; + + this.onSelect.emit(item); + } + + open(e: Event, node: AggregationListItem) { + // fetch aggregation items + e.preventDefault(); + e.stopImmediatePropagation(); + + if (node.items && node.$opened === true) { + node.$opened = false; + return; + } + if (node.items && !node.$opened) { + node.$opened = true; + return; + } + + this.onOpen.emit(node); + } +} diff --git a/src/core/components/filters/aggregation/aggregation.component.html b/src/core/components/filters/aggregation/aggregation.component.html index a0ee0720..802b6344 100644 --- a/src/core/components/filters/aggregation/aggregation.component.html +++ b/src/core/components/filters/aggregation/aggregation.component.html @@ -1,55 +1,55 @@ -
      - @if (!headless()) { - - @if (aggregation()?.icon) { - - } - {{ aggregation()?.display | syslang | transloco }} - - @if (hasFilters()) { - - } - @if (selectionCount()) { - - } - - } - - @if (searchable()) { -
      - -
      - } - -
        - @for (item of items(); track $index) { - - } -
      -
      - -@if (aggregation()?.$hasMore) { - -} +
      + @if (!headless()) { + + @if (aggregation()?.icon) { + + } + {{ aggregation()?.display | syslang | transloco }} + + @if (hasFilters()) { + + } + @if (selectionCount()) { + + } + + } + + @if (searchable()) { +
      + +
      + } + +
        + @for (item of items(); track $index) { + + } +
      +
      + +@if (aggregation()?.$hasMore) { + +} diff --git a/src/core/components/filters/aggregation/aggregation.component.ts b/src/core/components/filters/aggregation/aggregation.component.ts index eec0487c..4cfbb291 100644 --- a/src/core/components/filters/aggregation/aggregation.component.ts +++ b/src/core/components/filters/aggregation/aggregation.component.ts @@ -1,508 +1,509 @@ -import { ChangeDetectorRef, Component, computed, effect, inject, input, signal } from '@angular/core'; -import { FormsModule, ReactiveFormsModule } from '@angular/forms'; -import { TranslocoPipe } from '@jsverse/transloco'; -import { getState } from '@ngrx/signals'; -import { firstValueFrom } from 'rxjs'; - -import { - Aggregation, - AggregationItem, - fetchSuggestField, - FieldValue, - LegacyFilter, - Query, - Suggestion, - suggestionsToTreeAggregationNodes, - TreeAggregation, - TreeAggregationNode -} from '@sinequa/atomic'; -import { - AggregationListItem, - AggregationsService, - AggregationsStore, - AppStore, - buildQuery, - CFilter, - CFilterItem, - debouncedSignal, - QueryParamsStore, - SearchService -} from '@sinequa/atomic-angular'; - -import { SyslangPipe } from '@/core/pipes/syslang'; - -import { AggregationRowComponent } from './aggregation-row.component'; - -export type AggEx = Aggregation & { - display?: string; - icon?: string; - hidden?: boolean; -}; - -export type AggregationTitle = { - label: string; - icon?: string; -}; - -@Component({ - selector: 'Aggregation', - standalone: true, - templateUrl: './aggregation.component.html', - styles: [ - ` - :host { - display: block; - } - - .data-list { - scrollbar-width: thin; - } - ` - ], - imports: [FormsModule, ReactiveFormsModule, AggregationRowComponent, SyslangPipe, TranslocoPipe] -}) -export class AggregationComponent { - cdr = inject(ChangeDetectorRef); - /* stores */ - aggregationsStore = inject(AggregationsStore); - appStore = inject(AppStore); - queryParamsStore = inject(QueryParamsStore); - searchService = inject(SearchService); - - /* services */ - aggregationsService = inject(AggregationsService); - - /** - * The `name` property is a required input that can be either a string or null. - * By default, it represents the name of the aggregation column. - * - * If you want specify a column name, uses the `kind` input with the `'column'` value. - * - * @remarks - * The `kind` property is an input that can be either "column" or "name". - */ - name = input.required(); - /** - * Represents the type of aggregation component. - * - * Default is "name" - */ - kind = input<'column' | 'name'>('name'); - - /** - * A boolean flag indicating whether the component should operate in headless mode. - * When set to `true`, the component will function without rendering any UI elements. - * - * @default false - */ - headless = input(false); - - /** - * A boolean flag indicating whether the component is searchable. - * This property is initialized to `true` by default. - */ - searchable = input(true); - selectionCount = signal(0); - - /* aggregation */ - aggregation = computed(() => { - if (this.name() !== null) { - return this.processAggregation(); - } - return null; - }); - - /* items of the aggretions */ - items = computed(() => { - if (this.searchedItems()) { - return this.searchedItems() as AggregationListItem[]; - } - if (this.aggregation() !== null && this.aggregation()?.items) { - return this.aggregation()?.items as AggregationListItem[]; - } - return []; - }); - - /* whether the aggregation has filters */ - hasFilters = computed(() => { - if (this.aggregation()?.isTree) { - const allItems = this.getFlattenTreeItems(); - return !!allItems.some(item => item.$selected); - } - return !!this.items().some(item => item.$selected); - }); - - /* search feature */ - searchText = signal(''); - debouncedSearchText = debouncedSignal(this.searchText, 300); - - /* suggestions */ - readonly suggests = signal(undefined); - /* searched items */ - readonly searchedItems = computed(() => { - if (!this.suggests()) return undefined; - - // if the aggregation is a tree, we transform the suggestions into tree nodes - if (this.aggregation()?.isTree) { - return suggestionsToTreeAggregationNodes(this.suggests()!, this.debouncedSearchText()); - } - - // if the aggregation is not a tree, we return the suggestions as is - return this.suggests()!.map(suggest => ({ - name: suggest.category, - value: suggest.normalized || suggest.display || '', - display: suggest.display, - column: suggest.id, - count: 1, - $selected: false, - items: [] - })); - }); - - query: Query; - - constructor() { - this.query = buildQuery(); - - const q = this.queryParamsStore.getQuery(); - - effect( - async () => { - if (this.debouncedSearchText() === '' || this.aggregation() === null) { - this.suggests.set(undefined); - return; - } - - const suggests = await fetchSuggestField(this.debouncedSearchText(), [this.aggregation()!.column]); - this.suggests.set(suggests); - }, - { allowSignalWrites: true } - ); - - effect( - () => { - if (this.aggregation() === null) return; - - const count = this.countSelected(this.aggregation()!.items as AggregationListItem[]); - this.selectionCount.set(count); - }, - { allowSignalWrites: true } - ); - } - - protected processAggregation(): AggEx | null | undefined { - const agg: AggEx = this.aggregationsStore.getAggregation(this.name() || '', this.kind()) as AggEx; - - if (!agg) return null; - - const { items = [], display = agg.name, icon, hidden } = (this.appStore.getAggregationCustomization(agg.column) as CFilter) || {}; - agg.display = display; - agg.icon = icon; - agg.hidden = hidden; - - if (agg.items) { - const { filters = [] } = getState(this.queryParamsStore); - const flattenedValues = this.flattenFilters(filters); - - if (agg.isTree) { - const selectedAgg = agg.items.map(item => this.selectNode(item as TreeAggregationNode, flattenedValues)); - const openedAgg = selectedAgg.map(item => this.openParentNodes(item as TreeAggregationNode, flattenedValues)); - agg.items = openedAgg; - } - - (agg.items as AggregationListItem[]).forEach((item: AggregationListItem) => { - if (!agg.isTree) { - const valueToSearch = agg.valuesAreExpressions ? item.display : item.value; - item.$selected = flattenedValues.includes(valueToSearch ?? '') || false; - } - - item.icon = items?.find((it: CFilterItem) => it.value === item.value)?.icon; - }); - } - - return agg; - } - - /** - * Selects a node in a tree structure based on a given path. - * - * @param {TreeAggregationNode} node - The current node in the tree. - * @param {string[]} path - An array of path strings used to determine which nodes to select. - * @returns {TreeAggregationNode} - The updated node with the selection state applied. - */ - private selectNode(node: TreeAggregationNode, path: string[]): TreeAggregationNode { - if (node.$path && path.includes(`/${node.$path}/*`)) { - node.$selected = true; - } - if (node.items) { - node.items = node.items.map(item => this.selectNode(item, path)); - } - return node; - } - - /** - * Recursively opens parent nodes in a tree structure if any of their child nodes are selected or opened. - * - * @param node - The current tree node being processed. - * @param path - An array representing the path to the current node. - * @returns The updated tree node with parent nodes opened if necessary. - */ - private openParentNodes(node: TreeAggregationNode, path: string[]): TreeAggregationNode { - if (node.items) { - node.items = node.items.map(item => this.openParentNodes(item, path)); - } - if (node.items && node.items.some(item => item.$selected || item.$opened)) { - node.$opened = true; - } - return node; - } - - /** - * Clears the current filter for the aggregation column. - * - * This method updates the filter in the `queryParamsStore` by setting the display value - * of the current aggregation column to an empty string. - */ - clear() { - this.queryParamsStore.removeFilter(this.aggregation()?.column); - } - - /** - * Applies the current filters to the query parameters store. - * - * - If there are multiple filters, they are wrapped in an "or" filter. - * - If the aggregation is not a distribution, the filters are merged into a single filter with an "in" operator. - * - If there is only one filter, it is directly applied. - * - If there are no filters, the current filters are cleared. - * - * After applying the filters, the search text is reset. - */ - apply() { - const filters = this.getFilters(); - - // if filters length > 1, we need to wrap them in an "or" filter - if (filters.length > 1) { - const display = filters[0].display; - // if aggregation not a distribution, we need to merge the filters into a single filter with an in operator - // with the values of the filters - if (this.aggregation()?.isDistribution) { - this.queryParamsStore.updateFilter({ - operator: 'or', - filters, - name: this.aggregation()?.name, - field: this.aggregation()?.column, - display - } as LegacyFilter); - } else { - const values = filters.map(filter => filter.value); - this.queryParamsStore.updateFilter({ - operator: 'in', - name: this.aggregation()?.name, - field: this.aggregation()?.column, - values, - display, - filters - } as LegacyFilter); - } - } else if (filters.length === 1) { - this.queryParamsStore.updateFilter(filters[0]); - } else { - this.clear(); - } - - this.searchText.set(''); - } - - loadMore(): void { - const q = this.queryParamsStore.getQuery(); - this.aggregationsService.loadMore(q, this.aggregation() as Aggregation).subscribe(aggregation => { - this.aggregationsStore.updateAggregation(aggregation); - }); - } - - async open(node: AggregationListItem) { - const q = this.queryParamsStore.getQuery(); - node.$opened = true; - const agg = await firstValueFrom(this.aggregationsService.open(q, this.aggregation() as TreeAggregation, node as TreeAggregationNode)); - this.aggregationsStore.updateAggregation(agg); - } - - /** - * Updates the selected state of the given item in the aggregation list. - * - * @param item - The item to be selected or deselected. - * - * This method iterates through the items in the aggregation list and updates - * the `$selected` property of the item that matches the value of the given item. - * - * If the item is selected, the selection count is incremented by 1. - * If the item is deselected, the selection count is decremented by 1. - */ - select(item: AggregationListItem) { - if (item.$selected) { - this.selectionCount.set(this.selectionCount() + 1); - } else { - this.selectionCount.set(this.selectionCount() - 1); - } - } - - /** - * Retrieves the appropriate filters based on the aggregation type. - * - * If the aggregation is a tree structure, it returns filters specific to trees. - * Otherwise, it returns filters for a list structure. - * - * @returns Filters for either a tree or list aggregation. - */ - protected getFilters() { - if (this.aggregation()?.isTree) { - return this.getFiltersForTree(); - } - return this.getFiltersForList(); - } - - /** - * Retrieves the filters for the tree structure. - * - * This method collects the selected items from the tree, constructs their paths, - * and creates a filter object based on these paths. If no items are selected, - * it returns an empty array. - * - * @returns {LegacyFilter[]} An array of filters for the tree structure. - */ - protected getFiltersForTree(): LegacyFilter[] { - const field = this.aggregation()?.column; - const name = this.aggregation()?.name; - const items = this.getFlattenTreeItems() - .filter(item => item.$selected) - .map(item => `/${item.$path}/*` || ''); - - if (items.length === 0) return []; - - const filter = { operator: 'in', name, field, values: items, display: items[0] }; - return [filter] as LegacyFilter[]; - } - - /** - * Retrieves a list of filters based on the selected items. - * - * This method filters the items to include only those that are selected, - * and then maps each selected item to a filter using the `toFilter` method. - * - * @returns {LegacyFilter[]} An array of filters corresponding to the selected items. - */ - protected getFiltersForList(): LegacyFilter[] { - const searchItems = this.searchedItems()?.filter(item => item.$selected) || []; - const items = this.items().filter(item => item.$selected) || []; - const selectedItems = [...searchItems, ...items]; - - return selectedItems.map(item => this.toFilter(item)); - } - - /** - * Recursively flattens a tree structure of `TreeAggregationNode` items into a single array. - * - * @returns {TreeAggregationNode[]} An array containing all nodes from the tree structure, flattened. - */ - private getFlattenTreeItems(): TreeAggregationNode[] { - const flattenItems = (items: TreeAggregationNode[]): TreeAggregationNode[] => { - return items.reduce((flat, item) => { - return flat.concat(item, item.items ? flattenItems(item.items) : []); - }, [] as TreeAggregationNode[]); - }; - - const searchItems = flattenItems(this.searchedItems() || []); - const items = flattenItems((this.aggregation()?.items as TreeAggregationNode[]) || []); - const flattenedTreeItems = [...searchItems, ...items]; - return flattenedTreeItems; - } - - /** - * Converts an `AggregationItem` to a `LegacyFilter`. - * - * @param item - The `AggregationItem` to be converted. - * @returns A `LegacyFilter` object based on the provided `AggregationItem`. - * - * The function performs the following steps: - * 1. Retrieves the field from the aggregation column. - * 2. If the aggregation is a distribution, it parses the item value to extract filter expressions. - * - The expressions are split by " AND " and mapped to filter objects. - * - If two filters are found, they are combined with an "and" operator. - * - If one filter is found, it is returned as is. - * - Throws an error if the distribution expression cannot be parsed. - * 3. If the item value is a string, it creates a filter with the "contains" operator. - * 4. Otherwise, it creates a filter with the item value as a string, number, or boolean. - * - * @throws Will throw an error if the distribution expression cannot be parsed. - */ - private toFilter(item: AggregationItem): LegacyFilter { - const field = this.aggregation()?.column; - const name = this.aggregation()?.name; - - if (this.aggregation()?.isDistribution) { - const res = (item.value as string).match(/.*\:\(?([><=\d\-\.AND ]+)\)?/); - if (res?.[1]) { - const expr = res?.[1].split(' AND '); - const filters = expr.map(e => { - const operator: 'gte' | 'lt' = e.indexOf('>=') !== -1 ? 'gte' : 'lt'; - let value: FieldValue = e.substring(e.indexOf(' ') + 1); - return { name, field, operator, value, display: item.display || item.value }; - }); - - if (filters.length === 2) { - return { operator: 'and', filters, display: filters[0].display || filters[0].value, field, name } as LegacyFilter; - } else if (filters.length === 1) { - return { ...filters[0], field, name } as LegacyFilter; - } - throw new Error('Failed to parse distribution expression'); - } - } - - if (typeof item.value === 'string') { - return { name, field, value: item.value, operator: 'contains', display: item.display } as LegacyFilter; - } - return { name, field, value: item.value as string | number | boolean, display: item.display } as LegacyFilter; - } - - private flattenFilters(filters: LegacyFilter[]) { - let flattenedValues: string[] = []; - - function extractValues(filters: LegacyFilter[]) { - for (const filter of filters) { - if (filter.value) { - flattenedValues.push(filter.value); - - if (filter.display) flattenedValues.push(filter.display); - // we handle "values" field for trees - } else if (filter.values) { - flattenedValues.push(...filter.values); - } - if (filter.filters) { - extractValues(filter.filters as LegacyFilter[]); - } - } - } - - extractValues(filters); - return flattenedValues; - } - - /** - * Counts the number of selected items in a nested list of `AggregationListItem`. - * - * This method recursively traverses the provided list of items and their nested items, - * counting how many of them have the `$selected` property set to `true`. - * - * @param items - The list of `AggregationListItem` to count selected items from. - * @returns The total number of selected items. - */ - protected countSelected(items: AggregationListItem[]): number { - if (!items) return 0; - - return items.reduce((count, item) => { - if (item.$selected) count++; - if (item.items) count += this.countSelected(item.items); - return count; - }, 0); - } -} +import { ChangeDetectorRef, Component, computed, effect, inject, input, signal } from '@angular/core'; +import { FormsModule, ReactiveFormsModule } from '@angular/forms'; +import { TranslocoPipe } from '@jsverse/transloco'; +import { getState } from '@ngrx/signals'; +import { firstValueFrom } from 'rxjs'; + +import { + Aggregation, + AggregationItem, + fetchSuggestField, + FieldValue, + LegacyFilter, + Query, + Suggestion, + suggestionsToTreeAggregationNodes, + TreeAggregation, + TreeAggregationNode +} from '@sinequa/atomic'; +import { + AggregationListItem, + AggregationsService, + AggregationsStore, + AppStore, + buildQuery, + ButtonComponent, + CFilter, + CFilterItem, + debouncedSignal, + QueryParamsStore, + SearchService +} from '@sinequa/atomic-angular'; + +import { SyslangPipe } from '@/core/pipes/syslang'; + +import { AggregationRowComponent } from './aggregation-row.component'; + +export type AggEx = Aggregation & { + display?: string; + icon?: string; + hidden?: boolean; +}; + +export type AggregationTitle = { + label: string; + icon?: string; +}; + +@Component({ + selector: 'Aggregation', + standalone: true, + templateUrl: './aggregation.component.html', + styles: [ + ` + :host { + display: block; + } + + ul[role='list'] { + scrollbar-width: thin; + } + ` + ], + imports: [FormsModule, ReactiveFormsModule, ButtonComponent, AggregationRowComponent, SyslangPipe, TranslocoPipe] +}) +export class AggregationComponent { + cdr = inject(ChangeDetectorRef); + /* stores */ + aggregationsStore = inject(AggregationsStore); + appStore = inject(AppStore); + queryParamsStore = inject(QueryParamsStore); + searchService = inject(SearchService); + + /* services */ + aggregationsService = inject(AggregationsService); + + /** + * The `name` property is a required input that can be either a string or null. + * By default, it represents the name of the aggregation column. + * + * If you want specify a column name, uses the `kind` input with the `'column'` value. + * + * @remarks + * The `kind` property is an input that can be either "column" or "name". + */ + name = input.required(); + /** + * Represents the type of aggregation component. + * + * Default is "name" + */ + kind = input<'column' | 'name'>('name'); + + /** + * A boolean flag indicating whether the component should operate in headless mode. + * When set to `true`, the component will function without rendering any UI elements. + * + * @default false + */ + headless = input(false); + + /** + * A boolean flag indicating whether the component is searchable. + * This property is initialized to `true` by default. + */ + searchable = input(true); + selectionCount = signal(0); + + /* aggregation */ + aggregation = computed(() => { + if (this.name() !== null) { + return this.processAggregation(); + } + return null; + }); + + /* items of the aggretions */ + items = computed(() => { + if (this.searchedItems()) { + return this.searchedItems() as AggregationListItem[]; + } + if (this.aggregation() !== null && this.aggregation()?.items) { + return this.aggregation()?.items as AggregationListItem[]; + } + return []; + }); + + /* whether the aggregation has filters */ + hasFilters = computed(() => { + if (this.aggregation()?.isTree) { + const allItems = this.getFlattenTreeItems(); + return !!allItems.some(item => item.$selected); + } + return !!this.items().some(item => item.$selected); + }); + + /* search feature */ + searchText = signal(''); + debouncedSearchText = debouncedSignal(this.searchText, 300); + + /* suggestions */ + readonly suggests = signal(undefined); + /* searched items */ + readonly searchedItems = computed(() => { + if (!this.suggests()) return undefined; + + // if the aggregation is a tree, we transform the suggestions into tree nodes + if (this.aggregation()?.isTree) { + return suggestionsToTreeAggregationNodes(this.suggests()!, this.debouncedSearchText()); + } + + // if the aggregation is not a tree, we return the suggestions as is + return this.suggests()!.map(suggest => ({ + name: suggest.category, + value: suggest.normalized || suggest.display || '', + display: suggest.display, + column: suggest.id, + count: 1, + $selected: false, + items: [] + })); + }); + + query: Query; + + constructor() { + this.query = buildQuery(); + + const q = this.queryParamsStore.getQuery(); + + effect( + async () => { + if (this.debouncedSearchText() === '' || this.aggregation() === null) { + this.suggests.set(undefined); + return; + } + + const suggests = await fetchSuggestField(this.debouncedSearchText(), [this.aggregation()!.column]); + this.suggests.set(suggests); + }, + { allowSignalWrites: true } + ); + + effect( + () => { + if (this.aggregation() === null) return; + + const count = this.countSelected(this.aggregation()!.items as AggregationListItem[]); + this.selectionCount.set(count); + }, + { allowSignalWrites: true } + ); + } + + protected processAggregation(): AggEx | null | undefined { + const agg: AggEx = this.aggregationsStore.getAggregation(this.name() || '', this.kind()) as AggEx; + + if (!agg) return null; + + const { items = [], display = agg.name, icon, hidden } = (this.appStore.getAggregationCustomization(agg.column) as CFilter) || {}; + agg.display = display; + agg.icon = icon; + agg.hidden = hidden; + + if (agg.items) { + const { filters = [] } = getState(this.queryParamsStore); + const flattenedValues = this.flattenFilters(filters); + + if (agg.isTree) { + const selectedAgg = agg.items.map(item => this.selectNode(item as TreeAggregationNode, flattenedValues)); + const openedAgg = selectedAgg.map(item => this.openParentNodes(item as TreeAggregationNode, flattenedValues)); + agg.items = openedAgg; + } + + (agg.items as AggregationListItem[]).forEach((item: AggregationListItem) => { + if (!agg.isTree) { + const valueToSearch = agg.valuesAreExpressions ? item.display : item.value; + item.$selected = flattenedValues.includes(valueToSearch ?? '') || false; + } + + item.icon = items?.find((it: CFilterItem) => it.value === item.value)?.icon; + }); + } + + return agg; + } + + /** + * Selects a node in a tree structure based on a given path. + * + * @param {TreeAggregationNode} node - The current node in the tree. + * @param {string[]} path - An array of path strings used to determine which nodes to select. + * @returns {TreeAggregationNode} - The updated node with the selection state applied. + */ + private selectNode(node: TreeAggregationNode, path: string[]): TreeAggregationNode { + if (node.$path && path.includes(`/${node.$path}/*`)) { + node.$selected = true; + } + if (node.items) { + node.items = node.items.map(item => this.selectNode(item, path)); + } + return node; + } + + /** + * Recursively opens parent nodes in a tree structure if any of their child nodes are selected or opened. + * + * @param node - The current tree node being processed. + * @param path - An array representing the path to the current node. + * @returns The updated tree node with parent nodes opened if necessary. + */ + private openParentNodes(node: TreeAggregationNode, path: string[]): TreeAggregationNode { + if (node.items) { + node.items = node.items.map(item => this.openParentNodes(item, path)); + } + if (node.items && node.items.some(item => item.$selected || item.$opened)) { + node.$opened = true; + } + return node; + } + + /** + * Clears the current filter for the aggregation column. + * + * This method updates the filter in the `queryParamsStore` by setting the display value + * of the current aggregation column to an empty string. + */ + clear() { + this.queryParamsStore.removeFilter(this.aggregation()?.column); + } + + /** + * Applies the current filters to the query parameters store. + * + * - If there are multiple filters, they are wrapped in an "or" filter. + * - If the aggregation is not a distribution, the filters are merged into a single filter with an "in" operator. + * - If there is only one filter, it is directly applied. + * - If there are no filters, the current filters are cleared. + * + * After applying the filters, the search text is reset. + */ + apply() { + const filters = this.getFilters(); + + // if filters length > 1, we need to wrap them in an "or" filter + if (filters.length > 1) { + const display = filters[0].display; + // if aggregation not a distribution, we need to merge the filters into a single filter with an in operator + // with the values of the filters + if (this.aggregation()?.isDistribution) { + this.queryParamsStore.updateFilter({ + operator: 'or', + filters, + name: this.aggregation()?.name, + field: this.aggregation()?.column, + display + } as LegacyFilter); + } else { + const values = filters.map(filter => filter.value); + this.queryParamsStore.updateFilter({ + operator: 'in', + name: this.aggregation()?.name, + field: this.aggregation()?.column, + values, + display, + filters + } as LegacyFilter); + } + } else if (filters.length === 1) { + this.queryParamsStore.updateFilter(filters[0]); + } else { + this.clear(); + } + + this.searchText.set(''); + } + + loadMore(): void { + const q = this.queryParamsStore.getQuery(); + this.aggregationsService.loadMore(q, this.aggregation() as Aggregation).subscribe(aggregation => { + this.aggregationsStore.updateAggregation(aggregation); + }); + } + + async open(node: AggregationListItem) { + const q = this.queryParamsStore.getQuery(); + node.$opened = true; + const agg = await firstValueFrom(this.aggregationsService.open(q, this.aggregation() as TreeAggregation, node as TreeAggregationNode)); + this.aggregationsStore.updateAggregation(agg); + } + + /** + * Updates the selected state of the given item in the aggregation list. + * + * @param item - The item to be selected or deselected. + * + * This method iterates through the items in the aggregation list and updates + * the `$selected` property of the item that matches the value of the given item. + * + * If the item is selected, the selection count is incremented by 1. + * If the item is deselected, the selection count is decremented by 1. + */ + select(item: AggregationListItem) { + if (item.$selected) { + this.selectionCount.set(this.selectionCount() + 1); + } else { + this.selectionCount.set(this.selectionCount() - 1); + } + } + + /** + * Retrieves the appropriate filters based on the aggregation type. + * + * If the aggregation is a tree structure, it returns filters specific to trees. + * Otherwise, it returns filters for a list structure. + * + * @returns Filters for either a tree or list aggregation. + */ + protected getFilters() { + if (this.aggregation()?.isTree) { + return this.getFiltersForTree(); + } + return this.getFiltersForList(); + } + + /** + * Retrieves the filters for the tree structure. + * + * This method collects the selected items from the tree, constructs their paths, + * and creates a filter object based on these paths. If no items are selected, + * it returns an empty array. + * + * @returns {LegacyFilter[]} An array of filters for the tree structure. + */ + protected getFiltersForTree(): LegacyFilter[] { + const field = this.aggregation()?.column; + const name = this.aggregation()?.name; + const items = this.getFlattenTreeItems() + .filter(item => item.$selected) + .map(item => `/${item.$path}/*` || ''); + + if (items.length === 0) return []; + + const filter = { operator: 'in', name, field, values: items, display: items[0] }; + return [filter] as LegacyFilter[]; + } + + /** + * Retrieves a list of filters based on the selected items. + * + * This method filters the items to include only those that are selected, + * and then maps each selected item to a filter using the `toFilter` method. + * + * @returns {LegacyFilter[]} An array of filters corresponding to the selected items. + */ + protected getFiltersForList(): LegacyFilter[] { + const searchItems = this.searchedItems()?.filter(item => item.$selected) || []; + const items = this.items().filter(item => item.$selected) || []; + const selectedItems = [...searchItems, ...items]; + + return selectedItems.map(item => this.toFilter(item)); + } + + /** + * Recursively flattens a tree structure of `TreeAggregationNode` items into a single array. + * + * @returns {TreeAggregationNode[]} An array containing all nodes from the tree structure, flattened. + */ + private getFlattenTreeItems(): TreeAggregationNode[] { + const flattenItems = (items: TreeAggregationNode[]): TreeAggregationNode[] => { + return items.reduce((flat, item) => { + return flat.concat(item, item.items ? flattenItems(item.items) : []); + }, [] as TreeAggregationNode[]); + }; + + const searchItems = flattenItems(this.searchedItems() || []); + const items = flattenItems((this.aggregation()?.items as TreeAggregationNode[]) || []); + const flattenedTreeItems = [...searchItems, ...items]; + return flattenedTreeItems; + } + + /** + * Converts an `AggregationItem` to a `LegacyFilter`. + * + * @param item - The `AggregationItem` to be converted. + * @returns A `LegacyFilter` object based on the provided `AggregationItem`. + * + * The function performs the following steps: + * 1. Retrieves the field from the aggregation column. + * 2. If the aggregation is a distribution, it parses the item value to extract filter expressions. + * - The expressions are split by " AND " and mapped to filter objects. + * - If two filters are found, they are combined with an "and" operator. + * - If one filter is found, it is returned as is. + * - Throws an error if the distribution expression cannot be parsed. + * 3. If the item value is a string, it creates a filter with the "contains" operator. + * 4. Otherwise, it creates a filter with the item value as a string, number, or boolean. + * + * @throws Will throw an error if the distribution expression cannot be parsed. + */ + private toFilter(item: AggregationItem): LegacyFilter { + const field = this.aggregation()?.column; + const name = this.aggregation()?.name; + + if (this.aggregation()?.isDistribution) { + const res = (item.value as string).match(/.*\:\(?([><=\d\-\.AND ]+)\)?/); + if (res?.[1]) { + const expr = res?.[1].split(' AND '); + const filters = expr.map(e => { + const operator: 'gte' | 'lt' = e.indexOf('>=') !== -1 ? 'gte' : 'lt'; + let value: FieldValue = e.substring(e.indexOf(' ') + 1); + return { name, field, operator, value, display: item.display || item.value }; + }); + + if (filters.length === 2) { + return { operator: 'and', filters, display: filters[0].display || filters[0].value, field, name } as LegacyFilter; + } else if (filters.length === 1) { + return { ...filters[0], field, name } as LegacyFilter; + } + throw new Error('Failed to parse distribution expression'); + } + } + + if (typeof item.value === 'string') { + return { name, field, value: item.value, operator: 'contains', display: item.display } as LegacyFilter; + } + return { name, field, value: item.value as string | number | boolean, display: item.display } as LegacyFilter; + } + + private flattenFilters(filters: LegacyFilter[]) { + let flattenedValues: string[] = []; + + function extractValues(filters: LegacyFilter[]) { + for (const filter of filters) { + if (filter.value) { + flattenedValues.push(filter.value); + + if (filter.display) flattenedValues.push(filter.display); + // we handle "values" field for trees + } else if (filter.values) { + flattenedValues.push(...filter.values); + } + if (filter.filters) { + extractValues(filter.filters as LegacyFilter[]); + } + } + } + + extractValues(filters); + return flattenedValues; + } + + /** + * Counts the number of selected items in a nested list of `AggregationListItem`. + * + * This method recursively traverses the provided list of items and their nested items, + * counting how many of them have the `$selected` property set to `true`. + * + * @param items - The list of `AggregationListItem` to count selected items from. + * @returns The total number of selected items. + */ + protected countSelected(items: AggregationListItem[]): number { + if (!items) return 0; + + return items.reduce((count, item) => { + if (item.$selected) count++; + if (item.items) count += this.countSelected(item.items); + return count; + }, 0); + } +} diff --git a/src/core/components/filters/buttons/filter-button.component.ts b/src/core/components/filters/buttons/filter-button.component.ts index 7b500572..b82793e5 100644 --- a/src/core/components/filters/buttons/filter-button.component.ts +++ b/src/core/components/filters/buttons/filter-button.component.ts @@ -1,92 +1,116 @@ -import { NgClass } from '@angular/common'; -import { Component, effect, ElementRef, inject, input, signal } from '@angular/core'; -import { TranslocoPipe } from '@jsverse/transloco'; - -import { AggregationsStore, AppStore, cn, DropdownComponent, QueryParamsStore } from '@sinequa/atomic-angular'; - -import { SyslangPipe } from '../../../pipes/syslang'; -import { AggregationComponent } from '../aggregation/aggregation.component'; -import { CFilterEx } from '../filters.models'; - -@Component({ - selector: 'filter-button, FilterButton', - standalone: true, - imports: [NgClass, DropdownComponent, TranslocoPipe, AggregationComponent, SyslangPipe], - template: ` - - - - - `, - host: { - '[class.hidden]': 'filter().hidden' - } -}) -export class FilterButtonComponent { - cn = cn; - - nativeElement = inject(ElementRef).nativeElement; - - column = input.required(); - filter = signal({ - name: '', - icon: '', - column: '', - display: '', - isTree: false, - count: 0, - hidden: false, - disabled: false - }); - - aggregationsStore = inject(AggregationsStore); - queryParamsStore = inject(QueryParamsStore); - appStore = inject(AppStore); - - constructor() { - effect( - () => { - const agg = this.aggregationsStore.getAggregation(this.column(), 'column'); - const f = this.queryParamsStore.getFilter(agg?.name); - const count = f?.count || 0; - - if (!agg) return; - - const { icon, hidden = false } = this.appStore.getAggregationCustomization(this.column()) || {}; - const { display = agg?.isTree ? undefined : f?.display } = this.appStore.getAggregationCustomization(this.column()) || {}; - - const r = { - name: agg?.name, - column: this.column(), - icon, - hidden, - display, - isTree: agg?.isTree || false, - count, - disabled: !agg?.items || agg.items?.length === 0 ? true : false - }; - - this.filter.set(r); - }, - { allowSignalWrites: true } - ); - } -} +import { NgClass } from '@angular/common'; +import { Component, effect, ElementRef, inject, input, signal } from '@angular/core'; +import { TranslocoPipe } from '@jsverse/transloco'; + +import { + AggregationsStore, + AppStore, + ButtonComponent, + ButtonVariants, + cn, + DropdownComponent, + DropdownContentComponent, + PopoverComponent, + PopoverContentComponent, + QueryParamsStore +} from '@sinequa/atomic-angular'; + +import { SyslangPipe } from '../../../pipes/syslang'; +import { AggregationComponent } from '../aggregation/aggregation.component'; +import { CFilterEx } from '../filters.models'; + +@Component({ + selector: 'filter-button, FilterButton', + standalone: true, + imports: [ButtonComponent, PopoverComponent, PopoverContentComponent, TranslocoPipe, AggregationComponent, SyslangPipe], + template: ` + + + + + + + `, + host: { + '[class.hidden]': 'filter().hidden' + } +}) +export class FilterButtonComponent { + cn = cn; + + variant = signal('secondary'); + + nativeElement = inject(ElementRef).nativeElement; + + column = input.required(); + filter = signal({ + name: '', + icon: '', + column: '', + display: '', + isTree: false, + count: 0, + hidden: false, + disabled: false + }); + + aggregationsStore = inject(AggregationsStore); + queryParamsStore = inject(QueryParamsStore); + appStore = inject(AppStore); + + constructor() { + effect( + () => { + const agg = this.aggregationsStore.getAggregation(this.column(), 'column'); + const f = this.queryParamsStore.getFilter(agg?.name); + const count = f?.count || 0; + + if (!agg) return; + + const { icon, hidden = false } = this.appStore.getAggregationCustomization(this.column()) || {}; + const { display = agg?.isTree ? undefined : f?.display } = this.appStore.getAggregationCustomization(this.column()) || {}; + + const r = { + name: agg?.name, + column: this.column(), + icon, + hidden, + display, + isTree: agg?.isTree || false, + count, + disabled: !agg?.items || agg.items?.length === 0 ? true : false + }; + + this.filter.set(r); + }, + { allowSignalWrites: true } + ); + + effect( + () => { + const f = this.filter(); + this.variant.update(v => (f.count ? 'default' : 'secondary')); + }, + { allowSignalWrites: true } + ); + } +} diff --git a/src/core/components/filters/buttons/filter-date-button.component.ts b/src/core/components/filters/date/date-button.component.ts similarity index 62% rename from src/core/components/filters/buttons/filter-date-button.component.ts rename to src/core/components/filters/date/date-button.component.ts index b78d7554..25817dd1 100644 --- a/src/core/components/filters/buttons/filter-date-button.component.ts +++ b/src/core/components/filters/date/date-button.component.ts @@ -1,77 +1,81 @@ -import { NgClass } from '@angular/common'; -import { Component, effect, inject, signal } from '@angular/core'; -import { TranslocoPipe } from '@jsverse/transloco'; -import { cn, DropdownComponent, QueryParamsStore } from '@sinequa/atomic-angular'; -import { CFilterEx } from '../filters.models'; -import { DateComponent } from '../date/date.component'; -import { OperatorPipe } from '../../../pipes/operator'; -import { SyslangPipe } from '../../../pipes/syslang'; - -@Component({ - selector: 'filter-date-button, FilterDateButton', - standalone: true, - imports: [NgClass, DropdownComponent, TranslocoPipe, DateComponent, OperatorPipe, SyslangPipe], - template: ` - - - - - - ` -}) -export class FilterDateButtonComponent { - cn = cn; - - queryParamsStore = inject(QueryParamsStore); - - filter = signal({ - name: 'Modified', - column: 'modified', - display: 'Date', - icon: 'far fa-calendar-day', - count: 0, - isTree: false, - disabled: false, - hidden: false - }); - - constructor() { - effect( - () => { - const filter = this.queryParamsStore.getFilter('modified'); - this.filter.update(f => { - f.count = filter?.count || 0; - f.legacyFilter = filter || undefined; - return f; - }); - }, - { allowSignalWrites: true } - ); - } -} +import { Component, effect, inject, signal } from '@angular/core'; +import { TranslocoPipe } from '@jsverse/transloco'; +import { ButtonComponent, ButtonVariants, cn, PopoverComponent, PopoverContentComponent, QueryParamsStore } from '@sinequa/atomic-angular'; +import { OperatorPipe } from '../../../pipes/operator'; +import { SyslangPipe } from '../../../pipes/syslang'; +import { CFilterEx } from '../filters.models'; +import { DateComponent } from './date.component'; + +@Component({ + selector: 'date-button, DateButton', + standalone: true, + imports: [ButtonComponent, PopoverComponent, PopoverContentComponent, TranslocoPipe, DateComponent, OperatorPipe, SyslangPipe], + template: ` + + + + + + + + ` +}) +export class DateButtonComponent { + cn = cn; + + variant = signal('secondary'); + + queryParamsStore = inject(QueryParamsStore); + + filter = signal({ + name: 'Modified', + column: 'modified', + display: 'Date', + icon: 'far fa-calendar-day', + count: 0, + isTree: false, + disabled: false, + hidden: false + }); + + constructor() { + effect( + () => { + const filter = this.queryParamsStore.getFilter('modified'); + this.filter.update(f => { + f.count = filter?.count || 0; + f.legacyFilter = filter || undefined; + return f; + }); + }, + { allowSignalWrites: true } + ); + + effect( + () => { + const f = this.filter(); + this.variant.update(v => (f.count ? 'default' : 'secondary')); + }, + { allowSignalWrites: true } + ); + } +} diff --git a/src/core/components/filters/date/date.component.html b/src/core/components/filters/date/date.component.html index 960198bc..ebab411b 100644 --- a/src/core/components/filters/date/date.component.html +++ b/src/core/components/filters/date/date.component.html @@ -1,98 +1,101 @@ -
      -
      - - - - -
        - @for (option of dateOptions(); track $index) { -
      • - - - - - -
      • - } - - @if (allowCustomRange) { -
      • - - - - -
        - - - - - - - -
        -
      • - } -
      -
      -
      +
      +
      + + + + +
        + @for (option of dateOptions(); track $index) { +
      • + + + + + +
      • + } + + @if (allowCustomRange) { +
      • + + + + +
        + + + + + + + +
        +
      • + } +
      +
      +
      diff --git a/src/core/components/filters/date/date.component.ts b/src/core/components/filters/date/date.component.ts index 96829b42..67de8523 100644 --- a/src/core/components/filters/date/date.component.ts +++ b/src/core/components/filters/date/date.component.ts @@ -1,200 +1,200 @@ -import { NgClass } from '@angular/common'; -import { ChangeDetectorRef, Component, computed, effect, inject, InjectionToken, input, signal } from '@angular/core'; -import { FormControl, FormGroup, ReactiveFormsModule } from '@angular/forms'; -import { HashMap, provideTranslocoScope, Translation, TranslocoPipe } from '@jsverse/transloco'; -import { Subscription } from 'rxjs'; - -import { Aggregation, AggregationItem, FilterOperator, LegacyFilter, translateAggregationToDateOptions } from '@sinequa/atomic'; -import { cn } from '@sinequa/atomic-angular'; - -import { SyslangPipe } from '@/core/pipes/syslang'; - -import { AggEx, AggregationComponent, AggregationTitle } from '../aggregation/aggregation.component'; - -/** - * Injection token that indicates whether custom date ranges are allowed. - * - * @remarks - * This token is used to configure the date component to allow users to select custom date ranges. - * - * @example - * ```typescript - * providers: [ - * { provide: ALLOW_CUSTOM_RANGE, useValue: false } - * ] - * ``` - * - * @public - */ -export const FILTER_DATE_ALLOW_CUSTOM_RANGE = new InjectionToken('date allow custom range', { factory: () => true }); - -type DateFilter = { - label?: string; - operator?: FilterOperator; - value?: string; - range?: [string, string]; - display?: string; - disabled?: boolean; - hidden?: boolean; -}; - -const loader = ['en', 'fr'].reduce( - (acc, lang) => { - acc[lang] = () => import(`../i18n/${lang}.json`); - return acc; - }, - {} as HashMap<() => Promise> -); - -@Component({ - selector: 'date-filter,DateFilter', - standalone: true, - imports: [NgClass, ReactiveFormsModule, TranslocoPipe, SyslangPipe], - templateUrl: './date.component.html', - styles: ` - :host { - display: block; - } - - .data-list { - scrollbar-width: thin; - } - `, - providers: [provideTranslocoScope({ scope: 'filters', loader })] -}) -export class DateComponent extends AggregationComponent { - readonly title = input({ label: 'Date', icon: 'far fa-calendar-day' }); - readonly displayEmptyDistributionIntervals = input(false); - readonly allowCustomRange = inject(FILTER_DATE_ALLOW_CUSTOM_RANGE); - - protected readonly dateOptions = computed(() => - translateAggregationToDateOptions(this.aggregation() as Aggregation, this.displayEmptyDistributionIntervals()) - ); - - protected readonly form = new FormGroup({ - option: new FormControl(null), - customRange: new FormGroup({ - from: new FormControl(null), - to: new FormControl(null) - }) - }); - protected today = new Date().toISOString().split('T')[0]; - - readonly hasFilter = signal(false); - - cn = cn; - - private readonly subscription = new Subscription(); - - constructor() { - super(); - - // apply current date filter from queryParamsStore - effect(() => { - this.updateForm(this.queryParamsStore.getFilter(this.aggregation()!.column) as LegacyFilter); - }); - - this.subscription.add(this.form.valueChanges.subscribe(() => this.hasFilter.set(true))); - } - - protected override processAggregation(): AggEx | null | undefined { - let agg = super.processAggregation(); - return { ...agg, items: agg?.items?.filter((item: AggregationItem) => item.display !== 'custom-range') ?? [] } as AggEx; - } - - public override apply(): void { - const filter = this.getFormValueFilter(); - - this.queryParamsStore.updateFilter(filter); - } - - public override clear(notify: boolean = true): void { - this.form.setValue({ - option: null, - customRange: { - from: null, - to: null - } - }); - - if (notify) this.queryParamsStore.updateFilter({ field: this.aggregation()!.column, display: '' }); - } - - private updateForm(filter: LegacyFilter | undefined): void { - if (!filter) { - this.clear(false); - return; - } - - const { operator, value } = filter; - const code = this.dateOptions().find((option: DateFilter) => option.operator === operator && option.value === value)?.display ?? 'custom-range'; - - let from, to; - - if (code === 'custom-range') { - switch (operator) { - case 'lte': - to = filter.value; - break; - case 'gte': - from = filter.value; - break; - case 'between': - from = filter.start; - to = filter.end; - break; - } - } - - const formValue = { - option: code, - customRange: { - from: code === 'custom-range' ? (from ?? null) : null, - to: code === 'custom-range' ? (to ?? null) : null - } - }; - - this.form.setValue(formValue as any); - this.cdr.detectChanges(); - } - - private getFormValueFilter(): LegacyFilter { - const value = this.form.value; - - if (value.option !== 'custom-range') { - const dateOption = this.dateOptions().find((option: DateFilter) => option.display === value.option); - - return { - operator: dateOption?.operator || 'eq', - field: this.aggregation()!.column, - display: dateOption?.display ?? '', - filters: dateOption?.filters, - value: dateOption?.value - }; - } else if (value.customRange) { - // if to is null, operator is gte - // if from is null, operator is lte - // if both are not null, operator is between - const filter: LegacyFilter = { - field: this.aggregation()!.column, - display: value.option as string - }; - - if (value.customRange.from && value.customRange.to) { - filter.operator = 'between'; - filter.start = value.customRange.from; - filter.end = value.customRange.to; - } else if (value.customRange.from) { - filter.operator = 'gte'; - filter.value = value.customRange.from; - } else if (value.customRange.to) { - filter.operator = 'lte'; - filter.value = value.customRange.to; - } - - return filter; - } - - throw new Error('Invalid filter value'); - } -} +import { NgClass } from '@angular/common'; +import { Component, computed, effect, inject, InjectionToken, input, signal } from '@angular/core'; +import { FormControl, FormGroup, ReactiveFormsModule } from '@angular/forms'; +import { HashMap, provideTranslocoScope, Translation, TranslocoPipe } from '@jsverse/transloco'; +import { Subscription } from 'rxjs'; + +import { Aggregation, AggregationItem, FilterOperator, LegacyFilter, translateAggregationToDateOptions } from '@sinequa/atomic'; +import { ButtonComponent, cn, MenuItemComponent } from '@sinequa/atomic-angular'; + +import { SyslangPipe } from '@/core/pipes/syslang'; + +import { AggEx, AggregationComponent, AggregationTitle } from '../aggregation/aggregation.component'; + +/** + * Injection token that indicates whether custom date ranges are allowed. + * + * @remarks + * This token is used to configure the date component to allow users to select custom date ranges. + * + * @example + * ```typescript + * providers: [ + * { provide: ALLOW_CUSTOM_RANGE, useValue: false } + * ] + * ``` + * + * @public + */ +export const FILTER_DATE_ALLOW_CUSTOM_RANGE = new InjectionToken('date allow custom range', { factory: () => true }); + +type DateFilter = { + label?: string; + operator?: FilterOperator; + value?: string; + range?: [string, string]; + display?: string; + disabled?: boolean; + hidden?: boolean; +}; + +const loader = ['en', 'fr'].reduce( + (acc, lang) => { + acc[lang] = () => import(`../i18n/${lang}.json`); + return acc; + }, + {} as HashMap<() => Promise> +); + +@Component({ + selector: 'date-filter,DateFilter', + standalone: true, + imports: [NgClass, ButtonComponent, MenuItemComponent, ReactiveFormsModule, TranslocoPipe, SyslangPipe], + templateUrl: './date.component.html', + styles: ` + :host { + display: block; + } + + ul[role='list'] { + scrollbar-width: thin; + } + `, + providers: [provideTranslocoScope({ scope: 'filters', loader })] +}) +export class DateComponent extends AggregationComponent { + readonly title = input({ label: 'Date', icon: 'far fa-calendar-day' }); + readonly displayEmptyDistributionIntervals = input(false); + readonly allowCustomRange = inject(FILTER_DATE_ALLOW_CUSTOM_RANGE); + + protected readonly dateOptions = computed(() => + translateAggregationToDateOptions(this.aggregation() as Aggregation, this.displayEmptyDistributionIntervals()) + ); + + protected readonly form = new FormGroup({ + option: new FormControl(null), + customRange: new FormGroup({ + from: new FormControl(null), + to: new FormControl(null) + }) + }); + protected today = new Date().toISOString().split('T')[0]; + + readonly hasFilter = signal(false); + + cn = cn; + + private readonly subscription = new Subscription(); + + constructor() { + super(); + + // apply current date filter from queryParamsStore + effect(() => { + this.updateForm(this.queryParamsStore.getFilter(this.aggregation()!.column) as LegacyFilter); + }); + + this.subscription.add(this.form.valueChanges.subscribe(() => this.hasFilter.set(true))); + } + + protected override processAggregation(): AggEx | null | undefined { + let agg = super.processAggregation(); + return { ...agg, items: agg?.items?.filter((item: AggregationItem) => item.display !== 'custom-range') ?? [] } as AggEx; + } + + public override apply(): void { + const filter = this.getFormValueFilter(); + + this.queryParamsStore.updateFilter(filter); + } + + public override clear(notify: boolean = true): void { + this.form.setValue({ + option: null, + customRange: { + from: null, + to: null + } + }); + + if (notify) this.queryParamsStore.updateFilter({ field: this.aggregation()!.column, display: '' }); + } + + private updateForm(filter: LegacyFilter | undefined): void { + if (!filter) { + this.clear(false); + return; + } + + const { operator, value } = filter; + const code = this.dateOptions().find((option: DateFilter) => option.operator === operator && option.value === value)?.display ?? 'custom-range'; + + let from, to; + + if (code === 'custom-range') { + switch (operator) { + case 'lte': + to = filter.value; + break; + case 'gte': + from = filter.value; + break; + case 'between': + from = filter.start; + to = filter.end; + break; + } + } + + const formValue = { + option: code, + customRange: { + from: code === 'custom-range' ? (from ?? null) : null, + to: code === 'custom-range' ? (to ?? null) : null + } + }; + + this.form.setValue(formValue as any); + this.cdr.detectChanges(); + } + + private getFormValueFilter(): LegacyFilter { + const value = this.form.value; + + if (value.option !== 'custom-range') { + const dateOption = this.dateOptions().find((option: DateFilter) => option.display === value.option); + + return { + operator: dateOption?.operator || 'eq', + field: this.aggregation()!.column, + display: dateOption?.display ?? '', + filters: dateOption?.filters, + value: dateOption?.value + }; + } else if (value.customRange) { + // if to is null, operator is gte + // if from is null, operator is lte + // if both are not null, operator is between + const filter: LegacyFilter = { + field: this.aggregation()!.column, + display: value.option as string + }; + + if (value.customRange.from && value.customRange.to) { + filter.operator = 'between'; + filter.start = value.customRange.from; + filter.end = value.customRange.to; + } else if (value.customRange.from) { + filter.operator = 'gte'; + filter.value = value.customRange.from; + } else if (value.customRange.to) { + filter.operator = 'lte'; + filter.value = value.customRange.to; + } + + return filter; + } + + throw new Error('Invalid filter value'); + } +} diff --git a/src/core/components/filters/filters-list.component.ts b/src/core/components/filters/filters-bar.component.ts similarity index 85% rename from src/core/components/filters/filters-list.component.ts rename to src/core/components/filters/filters-bar.component.ts index cbdfd92f..fc73d8fc 100644 --- a/src/core/components/filters/filters-list.component.ts +++ b/src/core/components/filters/filters-bar.component.ts @@ -1,160 +1,162 @@ -import { Component, computed, effect, ElementRef, inject, OnDestroy, signal, viewChild, viewChildren } from '@angular/core'; -import { ActivatedRoute } from '@angular/router'; -import { HashMap, provideTranslocoScope, Translation, TranslocoService } from '@jsverse/transloco'; -import { getState } from '@ngrx/signals'; - -import { - AggregationsStore, - AppStore, - cn, - OverflowItemDirective, - OverflowManagerDirective, - OverflowStopDirective, - QueryParamsStore -} from '@sinequa/atomic-angular'; - -import { debounceTime, Subscription } from 'rxjs'; -import { FilterButtonComponent } from './buttons/filter-button.component'; -import { FilterDateButtonComponent } from './buttons/filter-date-button.component'; -import { FiltersMoreButtonComponent } from './buttons/filters-more-button.component'; -import { FILTERS_BREAKPOINT } from './filters.models'; - -const loader = ['en', 'fr'].reduce( - (acc, lang) => { - acc[lang] = () => import(`./i18n/${lang}.json`); - return acc; - }, - {} as HashMap<() => Promise> -); - -@Component({ - selector: 'filters-list, FiltersList', - standalone: true, - imports: [ - FiltersMoreButtonComponent, - FilterButtonComponent, - FilterDateButtonComponent, - OverflowManagerDirective, - OverflowItemDirective, - OverflowStopDirective - ], - providers: [provideTranslocoScope({ scope: 'filters', loader })], - template: ` - - @if (hasFilters()) { - - } - - @if (hasAggregations()) { - - - @for (filter of filters(); track $index) { - - } - - @if (hasMoreFilters()) { - - } @else { -
      - } - } -
      - `, - host: { - role: 'list', - 'aria-label': 'Filters list' - } -}) -export class FiltersListComponent implements OnDestroy { - cn = cn; - - moreFilterElement = viewChild(FiltersMoreButtonComponent); - dropdownElements = viewChildren(FilterButtonComponent); - readonly overflowManager = viewChild(OverflowManagerDirective); - - filtersCount = inject(FILTERS_BREAKPOINT); - - route = inject(ActivatedRoute); - appStore = inject(AppStore); - aggregationsStore = inject(AggregationsStore); - queryParamsStore = inject(QueryParamsStore); - el = inject(ElementRef); - readonly transloco = inject(TranslocoService); - - filters = signal([]); - moreFilterCount = signal(this.filtersCount); - - hasFilters = computed(() => { - // when the query parameters store updates, update the hasFilters signal - // to show or hide the clear filters button - const state = getState(this.queryParamsStore); - return Array.isArray(state.filters) && state.filters.length > 0; - }); - - hasAggregations = computed(() => { - if (this.aggregationsStore.aggregations()) return this.aggregationsStore.aggregations().length > 0; - return false; - }); - - hasMoreFilters = computed(() => { - // more filters button is hidden by default - // to show the filters button, aggregations MUST contains items - const moreFiltersAggregations = this.appStore - .getAuthorizedFilters(this.route) - .filter(f => f.name !== 'Modified') - .map(f => f.column) - .toSpliced(0, this.filtersCount) - .map(column => this.aggregationsStore.getAggregation(column, 'column')); - - return moreFiltersAggregations.some(agg => agg?.items && agg.items.length > 0); - }); - - filterDate = { name: '#date', column: 'modified', count: 0, isTree: false, disabled: false, hidden: false }; - - private readonly sub = new Subscription(); - - constructor() { - effect( - () => { - // set filters according to the route and the authorized filters with default values - const authorizedFilters = this.appStore - .getAuthorizedFilters(this.route) - .filter(f => f.name !== 'Modified') - .map(f => f.column) - .toSpliced(this.filtersCount); - - this.filters.set(authorizedFilters); - }, - { allowSignalWrites: true } - ); - - this.sub.add(this.transloco.events$.pipe(debounceTime(100)).subscribe(() => this.overflowManager()?.countItems())); - } - - ngOnDestroy(): void { - this.sub.unsubscribe(); - } - - /** - * Clears all filters by invoking the clearFilters method on the queryParamsStore. - * This method is typically used to reset the filter state to its default values. - */ - clearFilters(): void { - this.queryParamsStore.clearFilters(); - } - - /** - * Adjusts the count of filters that can be displayed before the "more filters" option is shown. - * - * This method calculates the number of filter dropdowns that can fit in the available space - * before the "more filters" button. It updates the `moreFilterCount` property with the number - * of filters that can be displayed. If no filters are present, it sets the `moreFilterCount` - * to the total number of filters. - * - */ - adjustFiltersCount(count: number): void { - this.moreFilterCount.set(count > this.filtersCount ? this.filtersCount : count); - } -} +import { Component, computed, effect, ElementRef, inject, OnDestroy, signal, viewChild, viewChildren } from '@angular/core'; +import { ActivatedRoute } from '@angular/router'; +import { HashMap, provideTranslocoScope, Translation, TranslocoService } from '@jsverse/transloco'; +import { getState } from '@ngrx/signals'; + +import { + AggregationsStore, + AppStore, + ButtonComponent, + cn, + OverflowItemDirective, + OverflowManagerDirective, + OverflowStopDirective, + QueryParamsStore +} from '@sinequa/atomic-angular'; + +import { debounceTime, Subscription } from 'rxjs'; +import { FilterButtonComponent } from './buttons/filter-button.component'; +import { DateButtonComponent } from './date/date-button.component'; +import { MoreButtonComponent } from './more/more-button.component'; +import { FILTERS_BREAKPOINT } from './filters.models'; + +const loader = ['en', 'fr'].reduce( + (acc, lang) => { + acc[lang] = () => import(`./i18n/${lang}.json`); + return acc; + }, + {} as HashMap<() => Promise> +); + +@Component({ + selector: 'filters-bar, FiltersBar, filtersbar', + standalone: true, + imports: [ + ButtonComponent, + MoreButtonComponent, + FilterButtonComponent, + DateButtonComponent, + OverflowManagerDirective, + OverflowItemDirective, + OverflowStopDirective + ], + providers: [provideTranslocoScope({ scope: 'filters', loader })], + template: ` + + @if (hasFilters()) { + + } + + @if (hasAggregations()) { + + + @for (filter of filters(); track $index) { + + } + + @if (hasMoreFilters()) { + + } @else { +
      + } + } +
      + `, + host: { + role: 'list', + 'aria-label': 'Filters list' + } +}) +export class FiltersBarComponent implements OnDestroy { + cn = cn; + + moreFilterElement = viewChild(MoreButtonComponent); + dropdownElements = viewChildren(FilterButtonComponent); + readonly overflowManager = viewChild(OverflowManagerDirective); + + filtersCount = inject(FILTERS_BREAKPOINT); + + route = inject(ActivatedRoute); + appStore = inject(AppStore); + aggregationsStore = inject(AggregationsStore); + queryParamsStore = inject(QueryParamsStore); + el = inject(ElementRef); + readonly transloco = inject(TranslocoService); + + filters = signal([]); + moreFilterCount = signal(this.filtersCount); + + hasFilters = computed(() => { + // when the query parameters store updates, update the hasFilters signal + // to show or hide the clear filters button + const state = getState(this.queryParamsStore); + return Array.isArray(state.filters) && state.filters.length > 0; + }); + + hasAggregations = computed(() => { + if (this.aggregationsStore.aggregations()) return this.aggregationsStore.aggregations().length > 0; + return false; + }); + + hasMoreFilters = computed(() => { + // more filters button is hidden by default + // to show the filters button, aggregations MUST contains items + const moreFiltersAggregations = this.appStore + .getAuthorizedFilters(this.route) + .filter(f => f.name !== 'Modified') + .map(f => f.column) + .toSpliced(0, this.filtersCount) + .map(column => this.aggregationsStore.getAggregation(column, 'column')); + + return moreFiltersAggregations.some(agg => agg?.items && agg.items.length > 0); + }); + + filterDate = { name: '#date', column: 'modified', count: 0, isTree: false, disabled: false, hidden: false }; + + private readonly sub = new Subscription(); + + constructor() { + effect( + () => { + // set filters according to the route and the authorized filters with default values + const authorizedFilters = this.appStore + .getAuthorizedFilters(this.route) + .filter(f => f.name !== 'Modified') + .map(f => f.column) + .toSpliced(this.filtersCount); + + this.filters.set(authorizedFilters); + }, + { allowSignalWrites: true } + ); + + this.sub.add(this.transloco.events$.pipe(debounceTime(100)).subscribe(() => this.overflowManager()?.countItems())); + } + + ngOnDestroy(): void { + this.sub.unsubscribe(); + } + + /** + * Clears all filters by invoking the clearFilters method on the queryParamsStore. + * This method is typically used to reset the filter state to its default values. + */ + clearFilters(): void { + this.queryParamsStore.clearFilters(); + } + + /** + * Adjusts the count of filters that can be displayed before the "more filters" option is shown. + * + * This method calculates the number of filter dropdowns that can fit in the available space + * before the "more filters" button. It updates the `moreFilterCount` property with the number + * of filters that can be displayed. If no filters are present, it sets the `moreFilterCount` + * to the total number of filters. + * + */ + adjustFiltersCount(count: number): void { + this.moreFilterCount.set(count > this.filtersCount ? this.filtersCount : count); + } +} diff --git a/src/core/components/filters/buttons/filters-more-button.component.ts b/src/core/components/filters/more/more-button.component.ts similarity index 60% rename from src/core/components/filters/buttons/filters-more-button.component.ts rename to src/core/components/filters/more/more-button.component.ts index 11c2b572..28138e7b 100644 --- a/src/core/components/filters/buttons/filters-more-button.component.ts +++ b/src/core/components/filters/more/more-button.component.ts @@ -1,53 +1,55 @@ -import { Component, computed, effect, ElementRef, inject, input, signal } from '@angular/core'; -import { TranslocoPipe } from '@jsverse/transloco'; -import { AppStore, DropdownComponent, QueryParamsStore } from '@sinequa/atomic-angular'; -import { FiltersMoreComponent } from '../more/filters-more.component'; -import { ActivatedRoute } from '@angular/router'; - -@Component({ - selector: 'filters-more-button, FiltersMoreButton', - standalone: true, - imports: [DropdownComponent, TranslocoPipe, FiltersMoreComponent], - template: ` - - - - - - ` -}) -export class FiltersMoreButtonComponent { - route = inject(ActivatedRoute); - appStore = inject(AppStore); - queryParamsStore = inject(QueryParamsStore); - nativeElement = inject(ElementRef).nativeElement; - - count = input(2); - - totalFiltersCount = computed(() => { - const count = this.count(); - - const authorizedFilters = this.appStore - .getAuthorizedFilters(this.route) - .filter(f => f.name !== 'Modified') - .filter(f => f.column !== 'modified') - .map(f => f.column) - .toSpliced(0, count); - - const total = authorizedFilters.reduce((acc, filter) => { - const f = this.queryParamsStore.getFilter(filter); - acc += f?.count || 0; - return acc; - }, 0); - return total; - }); -} +import { Component, computed, ElementRef, inject, input } from '@angular/core'; +import { ActivatedRoute } from '@angular/router'; +import { TranslocoPipe } from '@jsverse/transloco'; +import { AppStore, ButtonComponent, PopoverComponent, PopoverContentComponent, QueryParamsStore } from '@sinequa/atomic-angular'; +import { MoreComponent } from './more.component'; + +@Component({ + selector: 'more-button, MoreButton', + standalone: true, + imports: [ButtonComponent, PopoverComponent, PopoverContentComponent, TranslocoPipe, MoreComponent], + template: ` + + + + + + + + ` +}) +export class MoreButtonComponent { + route = inject(ActivatedRoute); + appStore = inject(AppStore); + queryParamsStore = inject(QueryParamsStore); + nativeElement = inject(ElementRef).nativeElement; + + count = input(2); + + totalFiltersCount = computed(() => { + const count = this.count(); + + const authorizedFilters = this.appStore + .getAuthorizedFilters(this.route) + .filter(f => f.name !== 'Modified') + .filter(f => f.column !== 'modified') + .map(f => f.column) + .toSpliced(0, count); + + const total = authorizedFilters.reduce((acc, filter) => { + const f = this.queryParamsStore.getFilter(filter); + acc += f?.count || 0; + return acc; + }, 0); + return total; + }); +} diff --git a/src/core/components/filters/more/filters-more.component.ts b/src/core/components/filters/more/more.component.ts similarity index 88% rename from src/core/components/filters/more/filters-more.component.ts rename to src/core/components/filters/more/more.component.ts index c041fb8a..edba1e6a 100644 --- a/src/core/components/filters/more/filters-more.component.ts +++ b/src/core/components/filters/more/more.component.ts @@ -1,130 +1,132 @@ -import { Component, effect, inject, input, signal } from '@angular/core'; -import { ActivatedRoute } from '@angular/router'; -import { TranslocoPipe } from '@jsverse/transloco'; -import { AggregationsStore, AppStore, CFilter, cn, QueryParamsStore } from '@sinequa/atomic-angular'; -import { AggregationComponent } from '../aggregation/aggregation.component'; -import { CFilterEx } from '../filters.models'; - -@Component({ - selector: 'filters-more, FiltersMore', - standalone: true, - imports: [AggregationComponent, TranslocoPipe], - template: ` - @for (filter of filters(); track $index) { -
    • - - - -
      - - - - - {{ filter.display || filter.name | transloco }} - @if (filter.count > 0) { - - - {{ filter.count }} - - } - - - @if (agg.selectionCount()) { - - } -
      - -
    • - } - `, - host: { - class: 'divide-y' - }, - styles: [ - ` - :host { - scrollbar-width: none; - } - ` - ] -}) -export class FiltersMoreComponent { - cn = cn; - count = input(2); - - route = inject(ActivatedRoute); - appStore = inject(AppStore); - aggregationsStore = inject(AggregationsStore); - queryParamsStore = inject(QueryParamsStore); - - filters = signal([]); - - constructor() { - effect( - () => { - const count = this.count(); - - const authorizedFilters = this.appStore - .getAuthorizedFilters(this.route) - .filter(f => f.name !== 'Modified') - .map(f => f.column) - .toSpliced(0, count); - - const f = authorizedFilters.map(filter => { - const { icon, hidden = false } = (this.appStore.getAggregationCustomization(filter) as CFilter) || {}; - return { - name: filter, - column: filter, - icon, - count: 0, - isTree: false, - disabled: false, - hidden - }; - }); - - this.filters.set(f); - this.updateFilters(); - }, - { allowSignalWrites: true } - ); - } - - clearFilter(field: string) { - this.queryParamsStore.removeFilter(field); - } - - updateFilters() { - this.filters.update(filters => { - return filters.map(filter => { - const agg = this.aggregationsStore.getAggregation(filter.column, 'column'); - const f = this.queryParamsStore.getFilter(agg?.name); - const count = f?.count || 0; - - const { display = agg?.isTree ? undefined : filter.display } = (this.appStore.getAggregationCustomization(filter.column) as CFilter) || {}; - - return { - ...filter, - name: agg?.name || filter.name, - display, - isTree: agg?.isTree || false, - count, - disabled: !agg?.items || agg.items?.length === 0 ? true : false - }; - }); - }); - } -} +import { Component, effect, inject, input, signal } from '@angular/core'; +import { ActivatedRoute } from '@angular/router'; +import { TranslocoPipe } from '@jsverse/transloco'; +import { AggregationsStore, AppStore, ButtonComponent, CFilter, cn, QueryParamsStore } from '@sinequa/atomic-angular'; +import { AggregationComponent } from '../aggregation/aggregation.component'; +import { CFilterEx } from '../filters.models'; + +@Component({ + selector: 'more, More', + standalone: true, + imports: [ButtonComponent, AggregationComponent, TranslocoPipe], + template: ` + @for (filter of filters(); track $index) { +
    • + + + +
      + + + + + {{ filter.display || filter.name | transloco }} + @if (filter.count > 0) { + + + {{ filter.count }} + + } + + + @if (agg.selectionCount()) { + + } +
      + +
    • + } + `, + host: { + class: 'divide-y' + }, + styles: [ + ` + :host { + scrollbar-width: none; + } + ` + ] +}) +export class MoreComponent { + cn = cn; + count = input(2); + + route = inject(ActivatedRoute); + appStore = inject(AppStore); + aggregationsStore = inject(AggregationsStore); + queryParamsStore = inject(QueryParamsStore); + + filters = signal([]); + + constructor() { + effect( + () => { + const count = this.count(); + + const authorizedFilters = this.appStore + .getAuthorizedFilters(this.route) + .filter(f => f.name !== 'Modified') + .map(f => f.column) + .toSpliced(0, count); + + const f = authorizedFilters.map(filter => { + const { icon, hidden = false } = (this.appStore.getAggregationCustomization(filter) as CFilter) || {}; + return { + name: filter, + column: filter, + icon, + count: 0, + isTree: false, + disabled: false, + hidden + }; + }); + + this.filters.set(f); + this.updateFilters(); + }, + { allowSignalWrites: true } + ); + } + + clearFilter(field: string) { + this.queryParamsStore.removeFilter(field); + } + + updateFilters() { + this.filters.update(filters => { + return filters.map(filter => { + const agg = this.aggregationsStore.getAggregation(filter.column, 'column'); + const f = this.queryParamsStore.getFilter(agg?.name); + const count = f?.count || 0; + + const { display = agg?.isTree ? undefined : filter.display } = (this.appStore.getAggregationCustomization(filter.column) as CFilter) || {}; + + return { + ...filter, + name: agg?.name || filter.name, + display, + isTree: agg?.isTree || false, + count, + disabled: !agg?.items || agg.items?.length === 0 ? true : false + }; + }); + }); + } +} diff --git a/src/core/components/navbar/navbar.component.html b/src/core/components/navbar/navbar.component.html index 28b1f816..861c9e6a 100644 --- a/src/core/components/navbar/navbar.component.html +++ b/src/core/components/navbar/navbar.component.html @@ -1,89 +1,89 @@ - - -
      - - - -
      - - - @for (menu of menus; track $index) { -
    • - @if (menu.routerLink === router.url) { - - } - @else if (menu.component) { - - - - - - } @else { - - } -
    • - } -
    • - -
    • -
      - -
      - - - @if (moreTabs().length > 0) { - - - - - - } @else { -
      - } -
      + + +
      + + + +
      + + + +
      + + + @if (moreTabs().length > 0) { + + + + + @for (tab of moreTabs(); track $index) { + + + + {{ tab.display | syslang | transloco }} + + + } + + + } @else { +
      + } +
      diff --git a/src/core/components/navbar/navbar.component.ts b/src/core/components/navbar/navbar.component.ts index 3fc18825..555c8fe0 100644 --- a/src/core/components/navbar/navbar.component.ts +++ b/src/core/components/navbar/navbar.component.ts @@ -1,184 +1,193 @@ -import { AsyncPipe, CommonModule } from '@angular/common'; -import { Component, computed, inject, OnDestroy, signal, Type, viewChild } from '@angular/core'; -import { Router, RouterLink, RouterLinkActive } from '@angular/router'; -import { TranslocoPipe, TranslocoService } from '@jsverse/transloco'; -import { debounceTime, Subscription } from 'rxjs'; - -import { - AutocompleteService, - DrawerStackService, - DropdownComponent, - NavigationService, - OverflowItemDirective, - OverflowManagerDirective, - OverflowStopDirective, - QueryParamsStore, - SavedSearchesService -} from '@sinequa/atomic-angular'; - -import { BookmarksListComponent } from '@/core/features/bookmarks/list/bookmarks-list.component'; -import { CollectionsComponent } from '@/core/features/collections/collections.component'; -import { RecentSearchesComponent } from '@/core/features/recent-searches/recent-searches.component'; -import { SavedSearchesComponent } from '@/core/features/saved-searches/saved-searches.component'; -import { UserMenuComponent } from '@/core/features/user-menu/user-menu'; -import { SyslangPipe } from '@/core/pipes/syslang'; - -import { AutocompleteComponent, Suggestion } from '../search-input/autocomplete/autocomplete.component'; -import { SearchInputComponent } from '../search-input/search-input.component'; -import { CollectionsComponent } from '@/core/features/collections/collections.component'; -import { AlertsComponent } from '@/core/features/alerts/alerts/alerts.component'; - -export type NavbarMenu = { - display: string; - iconClass: string; - routerLink?: string; - keepOnMouseLeave?: boolean; - component?: Type; -}; - -export type NavbarTab = { - display: string; - name: string; - path: string; - iconClass: string; - routerLink: string; - queryName?: string; -}; - -@Component({ - selector: 'app-navbar', - standalone: true, - templateUrl: './navbar.component.html', - styleUrl: './navbar.component.scss', - imports: [ - CommonModule, - AsyncPipe, - RouterLink, - RouterLinkActive, - SearchInputComponent, - AutocompleteComponent, - UserMenuComponent, - DropdownComponent, - TranslocoPipe, - SyslangPipe, - OverflowManagerDirective, - OverflowItemDirective, - OverflowStopDirective - ], - host: { - class: 'layout-search', - '[attr.drawer-opened]': 'drawerOpened()' - } -}) -export class NavbarComponent implements OnDestroy { - readonly searchInput = viewChild(SearchInputComponent); - readonly overflowManager = viewChild(OverflowManagerDirective); - - readonly drawerOpened = signal(false); - readonly searchText = signal(''); - readonly visibleTabCount = signal(undefined); - - protected readonly menus: NavbarMenu[] = [ - { display: 'Recent queries', iconClass: 'far fa-clock-rotate-left', routerLink: '/recent-searches', component: RecentSearchesComponent }, - { display: 'Bookmarks', iconClass: 'far fa-bookmark', component: BookmarksListComponent }, - { display: 'Collections', iconClass: 'far fa-inbox', component: CollectionsComponent, keepOnMouseLeave: true }, - { display: 'Saved queries', iconClass: 'far fa-star', component: SavedSearchesComponent }, - { display: 'Alerts', iconClass: 'far fa-bell', component: AlertsComponent } - ]; - - protected readonly navigationService = inject(NavigationService); - - private readonly transloco = inject(TranslocoService); - private readonly drawerStack = inject(DrawerStackService); - private readonly savedSearchesService = inject(SavedSearchesService); - readonly router = inject(Router); - readonly autocompleteService = inject(AutocompleteService); - readonly queryParamsStore = inject(QueryParamsStore); - - private readonly sub = new Subscription(); - - // create tabs from the search routes - readonly tabs = computed( - () => - this.router.config - .find(item => item.path === 'search') - ?.children?.filter(c => c.path !== '**') - .map( - child => - ({ - display: child.data?.['display'] || child.path, - name: child.data?.['wsQueryTab'] || child.path, - path: child.path, - routerLink: `${child.path}`, - iconClass: child.data?.['iconClass'], - queryName: child.data?.['queryName'] - }) as NavbarTab - ) ?? [] - ); - readonly moreTabs = computed(() => this.tabs().slice(this.visibleTabCount())); - - constructor() { - this.sub.add(this.drawerStack.isOpened.subscribe(state => this.drawerOpened.set(state))); - - // register to transloco events to update the overflow manager when translations are loaded - // otherwise the overflow manager will count size of items without text - this.sub.add( - this.transloco.events$.pipe(debounceTime(100)).subscribe(() => { - this.overflowManager()?.countItems(); - }) - ); - } - - ngOnDestroy(): void { - this.sub.unsubscribe(); - } - - autocompleteItemClicked(item: Suggestion): void { - if (!item.display) { - console.error('No display property found on item', item); - return; - } - - this.searchInput()?.closeAutocompletePopover(); - - this.search(item.display!); - } - - protected search(text: string): void { - this.queryParamsStore.patch({ text }); - - // ! we need to remove the page parameter from the query params when new search is performed - this.router.navigate(['search'], { queryParams: { q: text, p: undefined }, queryParamsHandling: 'replace' }); - } - - protected changeTab(tab: NavbarTab): void { - // we use the routerlink to navigate, so just close the drawer and remove the id parameter from the query params - this.drawerStack.closeAll(); - } - - /** - * Occurs when the search input is validated by the user - * (e.g. by pressing enter or clicking on a search button) - * - * @param text The validated text - */ - protected validated(text: string): void { - this.search(text); - } - - /** - * Occurs when the search input is updated by the user and debounced by the system - * - * @param text The debounced text - */ - protected debounced(text: string): void { - this.searchText.set(text); - } - - /** - * Occurs when the user clicks on the save button - */ - protected saveSearch(): void { - this.savedSearchesService.saveSearch(); - } -} +import { AsyncPipe, CommonModule } from '@angular/common'; +import { Component, computed, inject, OnDestroy, signal, Type, viewChild } from '@angular/core'; +import { Router, RouterLink, RouterLinkActive } from '@angular/router'; +import { TranslocoPipe, TranslocoService } from '@jsverse/transloco'; +import { debounceTime, Subscription } from 'rxjs'; + +import { + AutocompleteService, + ButtonComponent, + DrawerStackService, + MenuComponent, + MenuContentComponent, + MenuItemComponent, + NavigationService, + OverflowItemDirective, + OverflowManagerDirective, + OverflowStopDirective, + PopoverComponent, + PopoverContentComponent, + QueryParamsStore, + SavedSearchesService +} from '@sinequa/atomic-angular'; + +import { BookmarksComponent } from '@/core/features/bookmarks/bookmarks'; +import { CollectionsComponent } from '@/core/features/collections/collections'; +import { RecentSearchesComponent } from '@/core/features/recent-searches/recent-searches'; +import { SavedSearchesComponent } from '@/core/features/saved-searches/saved-searches'; +import { UserMenuComponent } from '@/core/features/user-menu/user-menu'; +import { SyslangPipe } from '@/core/pipes/syslang'; + +import { AlertsComponent } from '@/core/features/alerts/alerts'; +import { AutocompleteComponent, Suggestion } from '../search-input/autocomplete/autocomplete.component'; +import { SearchInputComponent } from '../search-input/search-input.component'; + +export type NavbarMenu = { + display: string; + iconClass: string; + routerLink?: string; + keepOnMouseLeave?: boolean; + component?: Type; +}; + +export type NavbarTab = { + display: string; + name: string; + path: string; + iconClass: string; + routerLink: string; + queryName?: string; +}; + +@Component({ + selector: 'app-navbar', + standalone: true, + templateUrl: './navbar.component.html', + styleUrl: './navbar.component.scss', + imports: [ + CommonModule, + AsyncPipe, + RouterLink, + RouterLinkActive, + ButtonComponent, + SearchInputComponent, + AutocompleteComponent, + UserMenuComponent, + PopoverComponent, + PopoverContentComponent, + MenuComponent, + MenuContentComponent, + MenuItemComponent, + TranslocoPipe, + SyslangPipe, + OverflowManagerDirective, + OverflowItemDirective, + OverflowStopDirective + ], + host: { + class: 'layout-search', + '[attr.drawer-opened]': 'drawerOpened()' + } +}) +export class NavbarComponent implements OnDestroy { + readonly searchInput = viewChild(SearchInputComponent); + readonly overflowManager = viewChild(OverflowManagerDirective); + + readonly drawerOpened = signal(false); + readonly searchText = signal(''); + readonly visibleTabCount = signal(undefined); + + protected readonly menus: NavbarMenu[] = [ + { display: 'Recent queries', iconClass: 'far fa-clock-rotate-left', routerLink: '/recent-searches', component: RecentSearchesComponent }, + { display: 'Bookmarks', iconClass: 'far fa-bookmark', component: BookmarksComponent }, + { display: 'Collections', iconClass: 'far fa-inbox', component: CollectionsComponent, keepOnMouseLeave: true }, + { display: 'Saved queries', iconClass: 'far fa-star', component: SavedSearchesComponent }, + { display: 'Alerts', iconClass: 'far fa-bell', component: AlertsComponent } + ]; + + protected readonly navigationService = inject(NavigationService); + + private readonly transloco = inject(TranslocoService); + private readonly drawerStack = inject(DrawerStackService); + private readonly savedSearchesService = inject(SavedSearchesService); + readonly router = inject(Router); + readonly autocompleteService = inject(AutocompleteService); + readonly queryParamsStore = inject(QueryParamsStore); + + private readonly sub = new Subscription(); + + // create tabs from the search routes + readonly tabs = computed( + () => + this.router.config + .find(item => item.path === 'search') + ?.children?.filter(c => c.path !== '**') + .map( + child => + ({ + display: child.data?.['display'] || child.path, + name: child.data?.['wsQueryTab'] || child.path, + path: child.path, + routerLink: `${child.path}`, + iconClass: child.data?.['iconClass'], + queryName: child.data?.['queryName'] + }) as NavbarTab + ) ?? [] + ); + readonly moreTabs = computed(() => this.tabs().slice(this.visibleTabCount())); + + constructor() { + this.sub.add(this.drawerStack.isOpened.subscribe(state => this.drawerOpened.set(state))); + + // register to transloco events to update the overflow manager when translations are loaded + // otherwise the overflow manager will count size of items without text + this.sub.add( + this.transloco.events$.pipe(debounceTime(100)).subscribe(() => { + this.overflowManager()?.countItems(); + }) + ); + } + + ngOnDestroy(): void { + this.sub.unsubscribe(); + } + + autocompleteItemClicked(item: Suggestion): void { + if (!item.display) { + console.error('No display property found on item', item); + return; + } + + this.searchInput()?.closeAutocompletePopover(); + + this.search(item.display!); + } + + protected search(text: string): void { + this.queryParamsStore.patch({ text }); + + // ! we need to remove the page parameter from the query params when new search is performed + this.router.navigate(['search'], { queryParams: { q: text, p: undefined }, queryParamsHandling: 'replace' }); + } + + protected changeTab(tab: NavbarTab): void { + // we use the routerlink to navigate, so just close the drawer and remove the id parameter from the query params + this.drawerStack.closeAll(); + } + + /** + * Occurs when the search input is validated by the user + * (e.g. by pressing enter or clicking on a search button) + * + * @param text The validated text + */ + protected validated(text: string): void { + this.search(text); + } + + /** + * Occurs when the search input is updated by the user and debounced by the system + * + * @param text The debounced text + */ + protected debounced(text: string): void { + this.searchText.set(text); + } + + /** + * Occurs when the user clicks on the save button + */ + protected saveSearch(): void { + this.savedSearchesService.saveSearch(); + } +} diff --git a/src/core/components/preview/actions/preview-actions.ts b/src/core/components/preview/actions/preview-actions.ts index 060a4404..13f9290e 100644 --- a/src/core/components/preview/actions/preview-actions.ts +++ b/src/core/components/preview/actions/preview-actions.ts @@ -1,112 +1,107 @@ -import { Component, inject, signal } from '@angular/core'; -import { HashMap, Translation, TranslocoPipe, provideTranslocoScope } from '@jsverse/transloco'; - -import { PreviewService } from '@sinequa/atomic-angular'; - -const loader = ['en', 'fr'].reduce( - (acc, lang) => { - acc[lang] = () => import(`../i18n/${lang}.json`); - return acc; - }, - {} as HashMap<() => Promise> -); - -@Component({ - selector: 'preview-actions', - standalone: true, - imports: [TranslocoPipe], - providers: [provideTranslocoScope({ scope: 'preview', loader })], - template: ` - - - - - @if (extracts()) { - - } @else { - - } - - @if (entities()) { - - } @else { - - } - ` -}) -export class PreviewActionsComponent { - protected readonly extracts = signal(true); - protected readonly entities = signal(false); - - private readonly previewService = inject(PreviewService); - - constructor() { - window.addEventListener('message', (event: MessageEvent) => { - const message = event.data; - if (message.type === 'selected-position') { - this.extracts.set(false); - this.entities.set(false); - this.previewService.toggle(this.extracts(), this.entities()); - } - - if (message.type === 'ready') { - this.previewService.toggle(this.extracts(), this.entities()); - } - }); - } - - public zoomIn(): void { - this.previewService.zoomIn(); - } - - public zoomOut(): void { - this.previewService.zoomOut(); - } - - toggleExtracts() { - const value = !this.extracts(); - this.extracts.set(value); - if (value === true) { - this.entities.set(false); - } - this.previewService.toggle(this.extracts(), this.entities()); - this.previewService.sendMessage({ action: 'unselect' }); - } - - toggleEntities() { - const value = !this.entities(); - this.entities.set(value); - if (value === true) { - this.extracts.set(false); - } - this.previewService.toggle(this.extracts(), this.entities()); - this.previewService.sendMessage({ action: 'unselect' }); - } -} +import { Component, DestroyRef, inject, signal } from '@angular/core'; +import { HashMap, Translation, TranslocoPipe, provideTranslocoScope } from '@jsverse/transloco'; + +import { ButtonComponent, PreviewService } from '@sinequa/atomic-angular'; + +const loader = ['en', 'fr'].reduce( + (acc, lang) => { + acc[lang] = () => import(`../i18n/${lang}.json`); + return acc; + }, + {} as HashMap<() => Promise> +); + +@Component({ + selector: 'preview-actions', + standalone: true, + imports: [TranslocoPipe, ButtonComponent], + providers: [provideTranslocoScope({ scope: 'preview', loader })], + template: ` + + + + + @if (extracts()) { + + } @else { + + } + + @if (entities()) { + + } @else { + + } + ` +}) +export class PreviewActionsComponent { + protected readonly extracts = signal(true); + protected readonly entities = signal(false); + + private readonly previewService = inject(PreviewService); + private readonly destroyRef = inject(DestroyRef); + + constructor() { + const controller = new AbortController(); + + window.addEventListener( + 'message', + (event: MessageEvent) => { + const message = event.data; + if (message.type === 'selected-position') { + this.previewService.toggle(this.extracts(), this.entities()); + } + + if (message.type === 'ready') { + this.previewService.toggle(this.extracts(), this.entities()); + } + }, + { signal: controller.signal } + ); + + this.destroyRef.onDestroy(() => controller.abort()); + } + + public zoomIn(): void { + this.previewService.zoomIn(); + } + + public zoomOut(): void { + this.previewService.zoomOut(); + } + + toggleExtracts() { + const value = !this.extracts(); + this.extracts.set(value); + if (value === true) { + this.entities.set(false); + } + this.previewService.toggle(this.extracts(), this.entities()); + this.previewService.sendMessage({ action: 'unselect' }); + } + + toggleEntities() { + const value = !this.entities(); + this.entities.set(value); + if (value === true) { + this.extracts.set(false); + } + this.previewService.toggle(this.extracts(), this.entities()); + this.previewService.sendMessage({ action: 'unselect' }); + } +} diff --git a/src/core/components/preview/default/preview-default.component.html b/src/core/components/preview/default/preview-default.component.html index e826e324..50616258 100644 --- a/src/core/components/preview/default/preview-default.component.html +++ b/src/core/components/preview/default/preview-default.component.html @@ -1,111 +1,96 @@ - - -
      - @if (previewData() && article()) { -
      -
      - -

      - {{ article().title }} -

      -
      - - -
      - - - - - - - - - @if ((article().authors || []).length > 0) { - - - - - - } - - @if (article().modified) { - - - - - - } - - @if (hasLabels()) { - - - - - - } - - - - - - -
      {{ 'location' | transloco }} - -
      {{ 'lastUpdatedBy' | transloco }} - -
      {{ 'lastUpdatedOn' | transloco }} -

      {{ article()!.modified | translocoDate: 'mediumDate' }}

      -
      {{ 'labels' | transloco }} - - - -
      {{ 'type' | transloco }} - -
      -
      - } - - @if (loading()) { -
      -
      -
      - } - @if (canLoadIframe()) { -
      - - - -
      - } @else if (previewUrlError()) { -
      -

      -
      - {{ 'previewUnavailable' | transloco }} -

      -
      - } -
      + + +
      + @if (previewData() && article()) { +
      +
      + +

      + {{ article().title }} +

      +
      + + +
      + + + + + + + + + @if ((article().authors || []).length > 0) { + + + + + + } + + @if (article().modified) { + + + + + + } + + @if (hasLabels()) { + + + + + + } + + + + + + +
      {{ 'location' | transloco }} + +
      {{ 'lastUpdatedBy' | transloco }} + +
      {{ 'lastUpdatedOn' | transloco }} +

      {{ article()!.modified | translocoDate: 'mediumDate' }}

      +
      {{ 'labels' | transloco }} + + + +
      {{ 'type' | transloco }} + +
      +
      + } + + @if (loading()) { +
      +
      +
      + } + @if (canLoadIframe()) { +
      + + + +
      + } @else if (previewUrlError()) { +
      +

      +
      + {{ 'previewUnavailable' | transloco }} +

      +
      + } +
      diff --git a/src/core/components/preview/default/preview-default.component.ts b/src/core/components/preview/default/preview-default.component.ts index 2fbe31e9..d8ac70c7 100644 --- a/src/core/components/preview/default/preview-default.component.ts +++ b/src/core/components/preview/default/preview-default.component.ts @@ -1,125 +1,123 @@ -import { NgClass } from '@angular/common'; -import { ChangeDetectorRef, Component, ElementRef, computed, effect, inject, signal, viewChild } from '@angular/core'; -import { DomSanitizer } from '@angular/platform-browser'; -import { TranslocoPipe } from '@jsverse/transloco'; -import { getState } from '@ngrx/signals'; - -import { Article as A, LegacyFilter } from '@sinequa/atomic'; -import { AppStore, MetadataComponent, PreviewService, QueryParamsStore, SearchService, SelectionStore } from '@sinequa/atomic-angular'; - -import { TranslocoDateImpurePipe } from '@/core/pipes/transloco-date.pipe'; -import { BasePreview } from '@/core/registry/base-preview'; - -import { DocumentLocatorComponent } from '../../document-locator/document-locator.component'; -import { PreviewActionsComponent } from '../actions/preview-actions'; -import { PreviewNavbarComponent } from '../navbar/preview-navbar.component'; - -type Article = A & { - [key: string]: string[] | undefined; -}; - -@Component({ - selector: 'app-preview-default', - standalone: true, - imports: [NgClass, PreviewNavbarComponent, MetadataComponent, PreviewActionsComponent, TranslocoPipe, TranslocoDateImpurePipe, DocumentLocatorComponent], - templateUrl: './preview-default.component.html', - // eslint-disable-next-line @angular-eslint/no-host-metadata-property - host: { - class: 'grow flex flex-col overflow-hidden' - }, - styleUrl: './preview-default.component.scss' -}) -export class PreviewDefaultComponent extends BasePreview { - public iframe = viewChild>('preview'); - - public readonly article = computed(() => this.previewData()?.record as Article); - public readonly previewUrl = computed(() => - this.previewData()?.documentCachedContentUrl - ? this.sanitizer.bypassSecurityTrustResourceUrl(window.location.origin + this.previewData().documentCachedContentUrl) - : undefined - ); - - public labels = inject(AppStore).getLabels(); - - public readonly hasLabels = computed(() => { - const publicLabels = this.article()[this.labels.public]; - const privateLabels = this.article()[this.labels.private]; - return (publicLabels && publicLabels.length > 0) || (privateLabels && privateLabels.length > 0); - }); - protected readonly locationSegments = computed(() => this.article().treepath[0]?.split('/')?.slice(1, -1)); - protected readonly queryParamStore = inject(QueryParamsStore); - protected readonly selectionStore = inject(SelectionStore); - protected readonly searchService = inject(SearchService); - protected readonly cdr = inject(ChangeDetectorRef); - - readonly headerCollapsed = signal(false); - private readonly sanitizer = inject(DomSanitizer); - private readonly previewService = inject(PreviewService); - readonly canLoadIframe = signal(false); - readonly previewUrlError = signal(false); - readonly loading = signal(false); - - constructor() { - super(); - - effect(() => { - if (!this.iframe()) return; - - this.previewService.setIframe(this.iframe()!.nativeElement.contentWindow); - }); - - effect(() => { - if (!this.previewData()) return; - - this.cdr.detectChanges(); - this.previewService.setPreviewData(this.previewData()); - }); - - effect( - async () => { - if (!this.previewUrl()) return; - - try { - this.loading.set(true); - this.cdr.detectChanges(); - const response = await fetch(window.location.origin + this.previewData().documentCachedContentUrl); - this.canLoadIframe.set(response.status === 200); - this.previewUrlError.set(response.status !== 200); - } catch (e) { - this.canLoadIframe.set(false); - this.previewUrlError.set(true); - } finally { - this.loading.set(false); - } - }, - { allowSignalWrites: true } - ); - } - - /** - * Handles the event when the preview component is loaded. - * - * This method retrieves the `previewHighlights` from the selection store state. - * If `previewHighlights` contains a `snippetId`, it constructs a message with - * the action 'select', the snippet ID, and a flag to use the passage highlighter. - * The message is then sent to the preview service. - */ - onLoaded() { - const { previewHighlights } = getState(this.selectionStore); - if (previewHighlights?.snippetId !== undefined) { - const message: any = { action: 'select', id: `snippet_${previewHighlights!.snippetId}`, usePassageHighlighter: true }; - this.previewService.sendMessage(message); - } - this.loading.set(false); - } - - /** - * Apply filter from the metadata click - * @param field field to filter on - * @param value value from the filter - */ - onMetadataClick({ field, value }: { field: string; value: string }): void { - let filter: LegacyFilter = { field, value }; - this.queryParamStore.updateFilter(filter); - } -} +import { NgClass } from '@angular/common'; +import { ChangeDetectorRef, Component, ElementRef, computed, effect, inject, input, signal, viewChild } from '@angular/core'; +import { DomSanitizer } from '@angular/platform-browser'; +import { TranslocoPipe } from '@jsverse/transloco'; +import { getState } from '@ngrx/signals'; + +import { Article as A, LegacyFilter, PreviewData } from '@sinequa/atomic'; +import { AppStore, MetadataComponent, PreviewService, QueryParamsStore, SearchService, SelectionStore } from '@sinequa/atomic-angular'; + +import { TranslocoDateImpurePipe } from '@/core/pipes/transloco-date.pipe'; + +import { DocumentLocatorComponent } from '../../document-locator/document-locator.component'; +import { PreviewActionsComponent } from '../actions/preview-actions'; +import { PreviewNavbarComponent } from '../navbar/preview-navbar.component'; + +type Article = A & { + [key: string]: string[] | undefined; +}; + +@Component({ + selector: 'app-preview-default', + standalone: true, + imports: [NgClass, PreviewNavbarComponent, MetadataComponent, PreviewActionsComponent, TranslocoPipe, TranslocoDateImpurePipe, DocumentLocatorComponent], + templateUrl: './preview-default.component.html', + // eslint-disable-next-line @angular-eslint/no-host-metadata-property + host: { + class: 'grow flex flex-col overflow-hidden' + }, + styleUrl: './preview-default.component.scss' +}) +export class PreviewDefaultComponent { + public readonly previewData = input.required(); + public iframe = viewChild>('preview'); + + public readonly article = computed(() => this.previewData()?.record as Article); + public readonly previewUrl = computed(() => + this.previewData()?.documentCachedContentUrl + ? this.sanitizer.bypassSecurityTrustResourceUrl(window.location.origin + this.previewData().documentCachedContentUrl) + : undefined + ); + + public labels = inject(AppStore).getLabels(); + + public readonly hasLabels = computed(() => { + const publicLabels = this.article()[this.labels.public]; + const privateLabels = this.article()[this.labels.private]; + return (publicLabels && publicLabels.length > 0) || (privateLabels && privateLabels.length > 0); + }); + protected readonly locationSegments = computed(() => this.article().treepath[0]?.split('/')?.slice(1, -1)); + protected readonly queryParamStore = inject(QueryParamsStore); + protected readonly selectionStore = inject(SelectionStore); + protected readonly searchService = inject(SearchService); + protected readonly cdr = inject(ChangeDetectorRef); + + readonly headerCollapsed = signal(false); + private readonly sanitizer = inject(DomSanitizer); + private readonly previewService = inject(PreviewService); + readonly canLoadIframe = signal(false); + readonly previewUrlError = signal(false); + readonly loading = signal(false); + + constructor() { + effect(() => { + if (!this.iframe()) return; + + this.previewService.setIframe(this.iframe()!.nativeElement.contentWindow); + }); + + effect(() => { + if (!this.previewData()) return; + + this.cdr.detectChanges(); + this.previewService.setPreviewData(this.previewData()); + }); + + effect( + async () => { + if (!this.previewUrl()) return; + + try { + this.loading.set(true); + this.cdr.detectChanges(); + const response = await fetch(window.location.origin + this.previewData().documentCachedContentUrl); + this.canLoadIframe.set(response.status === 200); + this.previewUrlError.set(response.status !== 200); + } catch (e) { + this.canLoadIframe.set(false); + this.previewUrlError.set(true); + } finally { + this.loading.set(false); + } + }, + { allowSignalWrites: true } + ); + } + + /** + * Handles the event when the preview component is loaded. + * + * This method retrieves the `previewHighlights` from the selection store state. + * If `previewHighlights` contains a `snippetId`, it constructs a message with + * the action 'select', the snippet ID, and a flag to use the passage highlighter. + * The message is then sent to the preview service. + */ + onLoaded() { + const { previewHighlights } = getState(this.selectionStore); + if (previewHighlights?.snippetId !== undefined) { + const message: any = { action: 'select', id: `snippet_${previewHighlights!.snippetId}`, usePassageHighlighter: true }; + this.previewService.sendMessage(message); + } + this.loading.set(false); + } + + /** + * Apply filter from the metadata click + * @param field field to filter on + * @param value value from the filter + */ + onMetadataClick({ field, value }: { field: string; value: string }): void { + let filter: LegacyFilter = { field, value }; + this.queryParamStore.updateFilter(filter); + } +} diff --git a/src/core/components/preview/navbar/preview-navbar.component.html b/src/core/components/preview/navbar/preview-navbar.component.html index 595708e2..7abdf4a1 100644 --- a/src/core/components/preview/navbar/preview-navbar.component.html +++ b/src/core/components/preview/navbar/preview-navbar.component.html @@ -1,51 +1,57 @@ - -
    • - -
    • - -
    • - - @if (navConfig.showOpenButton) { -
    • - -
    • - -
    • - } - - @if (canBookmark()) { -
    • - -
    • - } - - @if (hasExternalLink()) { -
    • - -
    • - } - - @if (navConfig.showSearchButton && article()) { -
    • - @if (isExtended()) { - - } @else { - - } -
    • - } -
      + diff --git a/src/core/components/preview/navbar/preview-navbar.component.scss b/src/core/components/preview/navbar/preview-navbar.component.scss deleted file mode 100644 index e69de29b..00000000 diff --git a/src/core/components/preview/navbar/preview-navbar.component.ts b/src/core/components/preview/navbar/preview-navbar.component.ts index 54fc734e..367376b3 100644 --- a/src/core/components/preview/navbar/preview-navbar.component.ts +++ b/src/core/components/preview/navbar/preview-navbar.component.ts @@ -1,80 +1,79 @@ -import { Component, Input, computed, inject, input } from '@angular/core'; -import { toSignal } from '@angular/core/rxjs-interop'; -import { HashMap, Translation, TranslocoPipe, TranslocoService, provideTranslocoScope } from '@jsverse/transloco'; -import { toast } from 'ngx-sonner'; - -import { Article } from '@sinequa/atomic'; -import { DrawerStackService, PreviewService, cn } from '@sinequa/atomic-angular'; - -import { BookmarkButtonComponent } from '@/core/features/bookmarks/button/bookmark-button.component'; -import { DrawerService } from '../../drawer/drawer.service'; - -export type PreviewNavbarConfig = { - showOpenButton?: boolean; - showSearchButton?: boolean; -}; - -const DEFAULT_CONFIG: PreviewNavbarConfig = { - showOpenButton: true, - showSearchButton: true -}; - -const loader = ['en', 'fr'].reduce( - (acc, lang) => { - acc[lang] = () => import(`../i18n/${lang}.json`); - return acc; - }, - {} as HashMap<() => Promise> -); - -@Component({ - selector: 'app-preview-navbar', - standalone: true, - imports: [BookmarkButtonComponent, TranslocoPipe], - templateUrl: './preview-navbar.component.html', - styleUrl: './preview-navbar.component.scss', - providers: [provideTranslocoScope({ scope: 'preview', loader })] -}) -export class PreviewNavbarComponent { - cn = cn; - - @Input() public set config(config: PreviewNavbarConfig) { - this.navConfig = { ...DEFAULT_CONFIG, ...config }; - } - public readonly article = input | undefined>(); - public readonly canBookmark = input(true); - - protected readonly drawerStack = inject(DrawerStackService); - protected readonly drawerService = inject(DrawerService); - protected readonly previewService = inject(PreviewService); - - protected navConfig: PreviewNavbarConfig = DEFAULT_CONFIG; - - readonly hasExternalLink = computed(() => !!this.article()?.url1); - readonly isExtended = toSignal(this.drawerService.isExtended); - - public copied: boolean = false; - - private readonly transloco = inject(TranslocoService); - - openClicked(): void { - // open the preview in a new tab and audit the action - this.previewService.openExternal(this.article() as Article); - } - - public copyLink(): void { - const url = this.article()?.url1 || this.article()?.url2; - - if (url) { - navigator.clipboard.writeText(url); - - this.copied = true; - - setTimeout(() => { - this.copied = false; - }, 3000); - - toast.success(this.transloco.translate('preview.linkCopiedToClipboard'), { duration: 2000 }); - } - } -} +import { Component, Input, computed, inject, input } from '@angular/core'; +import { toSignal } from '@angular/core/rxjs-interop'; +import { HashMap, Translation, TranslocoPipe, TranslocoService, provideTranslocoScope } from '@jsverse/transloco'; +import { toast } from 'ngx-sonner'; + +import { Article } from '@sinequa/atomic'; +import { ButtonComponent, CircleCheckIconComponent, DrawerStackService, LinkIconComponent, PreviewService, cn } from '@sinequa/atomic-angular'; + +import { BookmarkButtonComponent } from '@/core/features/bookmarks/bookmark-button'; +import { DrawerService } from '../../drawer/drawer.service'; + +export type PreviewNavbarConfig = { + showOpenButton?: boolean; + showSearchButton?: boolean; +}; + +const DEFAULT_CONFIG: PreviewNavbarConfig = { + showOpenButton: true, + showSearchButton: true +}; + +const loader = ['en', 'fr'].reduce( + (acc, lang) => { + acc[lang] = () => import(`../i18n/${lang}.json`); + return acc; + }, + {} as HashMap<() => Promise> +); + +@Component({ + selector: 'app-preview-navbar', + standalone: true, + imports: [BookmarkButtonComponent, TranslocoPipe, ButtonComponent, LinkIconComponent, CircleCheckIconComponent], + templateUrl: './preview-navbar.component.html', + providers: [provideTranslocoScope({ scope: 'preview', loader })] +}) +export class PreviewNavbarComponent { + cn = cn; + + @Input() public set config(config: PreviewNavbarConfig) { + this.navConfig = { ...DEFAULT_CONFIG, ...config }; + } + public readonly article = input | undefined>(); + public readonly canBookmark = input(true); + + protected readonly drawerStack = inject(DrawerStackService); + protected readonly drawerService = inject(DrawerService); + protected readonly previewService = inject(PreviewService); + + protected navConfig: PreviewNavbarConfig = DEFAULT_CONFIG; + + readonly hasExternalLink = computed(() => !!this.article()?.url1); + readonly isExtended = toSignal(this.drawerService.isExtended); + + public copied: boolean = false; + + private readonly transloco = inject(TranslocoService); + + openClicked(): void { + // open the preview in a new tab and audit the action + this.previewService.openExternal(this.article() as Article); + } + + public copyLink(): void { + const url = this.article()?.url1 || this.article()?.url2; + + if (url) { + navigator.clipboard.writeText(url); + + this.copied = true; + + setTimeout(() => { + this.copied = false; + }, 3000); + + toast.success(this.transloco.translate('preview.linkCopiedToClipboard'), { duration: 2000 }); + } + } +} diff --git a/src/core/components/preview/slide/preview-slide.component.html b/src/core/components/preview/slide/preview-slide.component.html index 1145068c..63cb69b7 100644 --- a/src/core/components/preview/slide/preview-slide.component.html +++ b/src/core/components/preview/slide/preview-slide.component.html @@ -1,125 +1,125 @@ - - -@if (previewData() && article()) { -
      -
      -
      - @if (article().thumbnailUrl && !thumbnailFailed()) { -
      - -
      - } - - -

      - {{ article().title }} -

      -
      - - -
      - - - - - - - - - @if ((article().authors || []).length > 0) { - - - - - - } - - @if (article().modified) { - - - - - - } - - @if (hasLabels()) { - - - - - - } - - - - - - -
      {{ 'location' | transloco }} - - - - - @if (locationSegments().length > 1) { - - - -
      - @for (segment of locationSegments().slice(0, -1); track $index) { - - - @if (locationSegments().length > 1 && !$last) { - - } - } -
      -
      - } - - - - {{ locationSegments().at(-1) }} -
      {{ 'lastUpdatedBy' | transloco }} - -
      {{ 'lastUpdatedOn' | transloco }} -

      {{ article()!.modified | translocoDate: 'mediumDate' }}

      -
      {{ 'labels' | transloco }} - - - -
      {{ 'type' | transloco }} - -
      -
      - -
      - @if (previewUrl() && canLoadIframe()) { - - - - } @else if (previewUrlError()) { -
      -

      -
      - {{ 'previewUnavailable' | transloco }} -

      -
      - } -
      -
      -} + + +@if (previewData() && article()) { +
      +
      +
      + @if (article().thumbnailUrl && !thumbnailFailed()) { +
      + +
      + } + + +

      + {{ article().title }} +

      +
      + + +
      + + + + + + + + + @if ((article().authors || []).length > 0) { + + + + + + } + + @if (article().modified) { + + + + + + } + + @if (hasLabels()) { + + + + + + } + + + + + + +
      {{ 'location' | transloco }} + + + + + @if (locationSegments().length > 1) { + + + + + @for (segment of locationSegments().slice(0, -1); track $index) { + + + @if (locationSegments().length > 1 && !$last) { + + } + } + + + } + + + + {{ locationSegments().at(-1) }} +
      {{ 'lastUpdatedBy' | transloco }} + +
      {{ 'lastUpdatedOn' | transloco }} +

      {{ article()!.modified | translocoDate: 'mediumDate' }}

      +
      {{ 'labels' | transloco }} + + + +
      {{ 'type' | transloco }} + +
      +
      + +
      + @if (previewUrl() && canLoadIframe()) { + + + + } @else if (previewUrlError()) { +
      +

      +
      + {{ 'previewUnavailable' | transloco }} +

      +
      + } +
      +
      +} diff --git a/src/core/components/preview/slide/preview-slide.component.ts b/src/core/components/preview/slide/preview-slide.component.ts index 2c656344..a6801419 100644 --- a/src/core/components/preview/slide/preview-slide.component.ts +++ b/src/core/components/preview/slide/preview-slide.component.ts @@ -1,135 +1,141 @@ -import { DatePipe, NgClass } from '@angular/common'; -import { Component, computed, effect, ElementRef, inject, OnDestroy, signal, viewChild } from '@angular/core'; -import { DomSanitizer } from '@angular/platform-browser'; -import { Router } from '@angular/router'; -import { TranslocoPipe } from '@jsverse/transloco'; -import { getState } from '@ngrx/signals'; -import { Subscription } from 'rxjs'; - -import { Article as A, LegacyFilter } from '@sinequa/atomic'; -import { AppStore, DropdownComponent, MetadataComponent, PreviewService, QueryParamsStore, SearchService } from '@sinequa/atomic-angular'; - -import { TranslocoDateImpurePipe } from '@/core/pipes/transloco-date.pipe'; -import { BasePreview } from '@/core/registry/base-preview'; - -import { SourceIconComponent } from '../../source-icon/source-icon.component'; -import { PreviewActionsComponent } from '../actions/preview-actions'; -import { PreviewNavbarComponent } from '../navbar/preview-navbar.component'; - -type Article = A & { - [key: string]: string[] | undefined; -}; - -@Component({ - selector: 'app-preview-slide', - standalone: true, - imports: [ - NgClass, - DatePipe, - PreviewNavbarComponent, - MetadataComponent, - PreviewActionsComponent, - SourceIconComponent, - TranslocoPipe, - TranslocoDateImpurePipe, - DropdownComponent - ], - templateUrl: './preview-slide.component.html', - host: { - class: 'grow flex flex-col overflow-hidden' - }, - styleUrl: './preview-slide.component.scss' -}) -export class PreviewSlideComponent extends BasePreview implements OnDestroy { - public iframe = viewChild>('preview'); - - public readonly article = computed(() => this.previewData()?.record as Article); - public readonly previewUrl = computed(() => - this.previewData()?.documentCachedContentUrl - ? this.sanitizer.bypassSecurityTrustResourceUrl(window.location.origin + this.previewData().documentCachedContentUrl) - : undefined - ); - thumbnailFailed = signal(false); - - public labels = inject(AppStore).getLabels(); - - public readonly hasLabels = computed(() => { - const publicLabels = this.article()[this.labels.public]; - const privateLabels = this.article()[this.labels.private]; - return (publicLabels && publicLabels.length > 0) || (privateLabels && privateLabels.length > 0); - }); - protected readonly locationSegments = computed(() => this.article().treepath[0]?.split('/')?.slice(1, -1)); - protected readonly queryParamStore = inject(QueryParamsStore); - protected readonly searchService = inject(SearchService); - protected readonly router = inject(Router); - - readonly headerCollapsed = signal(false); - private readonly sanitizer = inject(DomSanitizer); - private readonly previewService = inject(PreviewService); - readonly canLoadIframe = signal(false); - readonly previewUrlError = signal(false); - - private readonly sub = new Subscription(); - - constructor() { - super(); - - effect(() => { - if (!this.iframe()) return; - - this.previewService.setIframe(this.iframe()!.nativeElement.contentWindow); - }); - - effect(() => { - if (!this.previewData()) return; - - this.previewService.setPreviewData(this.previewData()); - }); - - effect(async () => { - if (!this.previewUrl()) return; - - try { - const response = await fetch(this.previewUrl() as string); - const text = await response.text(); - this.canLoadIframe.set(true); - } catch (e) { - this.previewUrlError.set(true); - } - }); - } - - ngOnDestroy(): void { - this.sub.unsubscribe(); - } - - navigateToSegment(index: number): void { - let currentFilter = this.queryParamStore.getFilter('Treepath'); - - if (!currentFilter) currentFilter = { field: 'treepath', operator: 'in' } as LegacyFilter; - - if (!currentFilter.values) currentFilter.values = []; - - currentFilter.values.push( - `/${this.locationSegments() - .slice(0, index + 1) - .join('/')}/*` - ); - - this.queryParamStore.updateFilter(currentFilter); - - const { filters } = getState(this.queryParamStore); - - this.router.navigate([], { queryParams: { f: JSON.stringify(filters) }, queryParamsHandling: 'merge' }); - } - - /** - * Apply filter from the metadata click - * @param field field to filter on - * @param value value from the filter - */ - onMetadataClick({ field, value }: { field: string; value: string }): void { - let filter: LegacyFilter = { field, value }; - this.queryParamStore.updateFilter(filter); - } -} +import { NgClass } from '@angular/common'; +import { Component, computed, effect, ElementRef, inject, input, OnDestroy, signal, viewChild } from '@angular/core'; +import { DomSanitizer } from '@angular/platform-browser'; +import { Router } from '@angular/router'; +import { TranslocoPipe } from '@jsverse/transloco'; +import { getState } from '@ngrx/signals'; +import { Subscription } from 'rxjs'; + +import { Article as A, LegacyFilter, PreviewData } from '@sinequa/atomic'; +import { + AppStore, + MetadataComponent, + PopoverComponent, + PopoverContentComponent, + PreviewService, + QueryParamsStore, + SearchService +} from '@sinequa/atomic-angular'; + +import { TranslocoDateImpurePipe } from '@/core/pipes/transloco-date.pipe'; + +import { SourceIconComponent } from '../../source-icon/source-icon.component'; +import { PreviewActionsComponent } from '../actions/preview-actions'; +import { PreviewNavbarComponent } from '../navbar/preview-navbar.component'; + +type Article = A & { + [key: string]: string[] | undefined; +}; + +@Component({ + selector: 'app-preview-slide', + standalone: true, + imports: [ + NgClass, + PreviewNavbarComponent, + MetadataComponent, + PreviewActionsComponent, + SourceIconComponent, + TranslocoPipe, + TranslocoDateImpurePipe, + PopoverComponent, + PopoverContentComponent + ], + templateUrl: './preview-slide.component.html', + host: { + class: 'grow flex flex-col overflow-hidden' + }, + styleUrl: './preview-slide.component.scss' +}) +export class PreviewSlideComponent implements OnDestroy { + public readonly previewData = input.required(); + public iframe = viewChild>('preview'); + + public readonly article = computed(() => this.previewData()?.record as Article); + public readonly previewUrl = computed(() => + this.previewData()?.documentCachedContentUrl + ? this.sanitizer.bypassSecurityTrustResourceUrl(window.location.origin + this.previewData().documentCachedContentUrl) + : undefined + ); + thumbnailFailed = signal(false); + + public labels = inject(AppStore).getLabels(); + + public readonly hasLabels = computed(() => { + const publicLabels = this.article()[this.labels.public]; + const privateLabels = this.article()[this.labels.private]; + return (publicLabels && publicLabels.length > 0) || (privateLabels && privateLabels.length > 0); + }); + protected readonly locationSegments = computed(() => this.article().treepath[0]?.split('/')?.slice(1, -1)); + protected readonly queryParamStore = inject(QueryParamsStore); + protected readonly searchService = inject(SearchService); + protected readonly router = inject(Router); + + readonly headerCollapsed = signal(false); + private readonly sanitizer = inject(DomSanitizer); + private readonly previewService = inject(PreviewService); + readonly canLoadIframe = signal(false); + readonly previewUrlError = signal(false); + + private readonly sub = new Subscription(); + + constructor() { + effect(() => { + if (!this.iframe()) return; + + this.previewService.setIframe(this.iframe()!.nativeElement.contentWindow); + }); + + effect(() => { + if (!this.previewData()) return; + + this.previewService.setPreviewData(this.previewData()); + }); + + effect(async () => { + if (!this.previewUrl()) return; + + try { + const response = await fetch(this.previewUrl() as string); + const text = await response.text(); + this.canLoadIframe.set(true); + } catch (e) { + this.previewUrlError.set(true); + } + }); + } + + ngOnDestroy(): void { + this.sub.unsubscribe(); + } + + navigateToSegment(index: number): void { + let currentFilter = this.queryParamStore.getFilter('Treepath'); + + if (!currentFilter) currentFilter = { field: 'treepath', operator: 'in' } as LegacyFilter; + + if (!currentFilter.values) currentFilter.values = []; + + currentFilter.values.push( + `/${this.locationSegments() + .slice(0, index + 1) + .join('/')}/*` + ); + + this.queryParamStore.updateFilter(currentFilter); + + const { filters } = getState(this.queryParamStore); + + this.router.navigate([], { queryParams: { f: JSON.stringify(filters) }, queryParamsHandling: 'merge' }); + } + + /** + * Apply filter from the metadata click + * @param field field to filter on + * @param value value from the filter + */ + onMetadataClick({ field, value }: { field: string; value: string }): void { + let filter: LegacyFilter = { field, value }; + this.queryParamStore.updateFilter(filter); + } +} diff --git a/src/core/components/search-input/autocomplete/autocomplete.component.html b/src/core/components/search-input/autocomplete/autocomplete.component.html index 7b5ac8f5..cb617ed4 100644 --- a/src/core/components/search-input/autocomplete/autocomplete.component.html +++ b/src/core/components/search-input/autocomplete/autocomplete.component.html @@ -1,81 +1,73 @@ -@if (items()) { - -} +@if (items()) { + +} diff --git a/src/core/components/search-input/autocomplete/autocomplete.component.ts b/src/core/components/search-input/autocomplete/autocomplete.component.ts index 3d496aca..e4f55fe7 100644 --- a/src/core/components/search-input/autocomplete/autocomplete.component.ts +++ b/src/core/components/search-input/autocomplete/autocomplete.component.ts @@ -1,111 +1,126 @@ -import { NgClass } from '@angular/common'; -import { Component, computed, inject, input, output, signal } from '@angular/core'; -import { toObservable, toSignal } from '@angular/core/rxjs-interop'; -import { EventManager } from '@angular/platform-browser'; -import { HashMap, Translation, TranslocoPipe, provideTranslocoScope } from '@jsverse/transloco'; -import { combineLatest, map, of, switchMap, catchError } from 'rxjs'; - -import { Suggestion as SuggestionBasic } from '@sinequa/atomic'; -import { AppStore, AuditService, AutocompleteService, HighlightWordPipe, UserSettingsStore } from '@sinequa/atomic-angular'; - -import { SearchInputComponent } from '../search-input.component'; - -export type Suggestion = Partial & { - $isDivider: boolean; -}; - -const titledSections = ['title', 'concepts', 'people', 'bookmark', 'recent-search', 'saved-search']; -const autocompleteCategories = ['full-text', 'recent-search', 'saved-search', 'bookmark', 'title', 'concepts', 'people']; - -const loader = ['en', 'fr'].reduce( - (acc, lang) => { - acc[lang] = () => import(`../i18n/${lang}.json`); - return acc; - }, - {} as HashMap<() => Promise> -); - -@Component({ - selector: 'app-autocomplete', - standalone: true, - templateUrl: './autocomplete.component.html', - imports: [NgClass, HighlightWordPipe, TranslocoPipe], - providers: [provideTranslocoScope({ scope: 'search-input', loader })] -}) -export class AutocompleteComponent { - readonly text = input(''); - readonly onClick = output(); - - readonly wasSearchClicked = signal(false); - - readonly autocompleteService = inject(AutocompleteService); - readonly auditService = inject(AuditService); - readonly appStore = inject(AppStore); - readonly userSettingsStore = inject(UserSettingsStore); - - autocomplete = computed(() => this.appStore.customizationJson()?.autocomplete); - - readonly items = toSignal( - combineLatest([toObservable(this.text), toObservable(this.wasSearchClicked)]).pipe( - switchMap(([testText]) => { - const fromUserSettings = of(this.autocompleteService.getFromUserSettingsForText(testText, this.autocomplete() ?? 3)); - - if (!testText) return fromUserSettings; - - return combineLatest([ - fromUserSettings, - this.autocompleteService.getFromSuggestQueriesForText(testText).pipe( - catchError(error => { - console.error(error); - return of([]); - }) - ) - ]); - }), - map(items => items.flat(2)), - // order the items to have full-text, recent search and saved search at the beginning - map(items => - items.sort((a, b) => { - return autocompleteCategories.indexOf(a.category) - autocompleteCategories.indexOf(b.category); - }) - ), - map(items => - items.reduce((acc, curr) => { - if (acc.length > 0) { - const last = acc.at(-1); - - // add a divider before specific categories - if (!last?.$isDivider && last?.category !== curr.category && titledSections.includes(curr.category)) { - acc.push({ $isDivider: true }); - acc.push({ category: curr.category, $isDivider: false }); - } - // handle the case when the first item is from a titled section - } else if (titledSections.includes(curr.category)) { - acc.push({ category: curr.category, $isDivider: false }); - } - - acc.push({ ...curr, $isDivider: false }); - return acc; - }, []) - ) - ) - ); - - constructor( - { el: { nativeElement } }: SearchInputComponent, - private eventManager: EventManager - ) { - this.eventManager.addEventListener(nativeElement, 'click', () => this.wasSearchClicked.set(true)); - } - - public itemClicked(item: Suggestion): void { - this.auditService.notify({ - type: 'Search_Autocomplete', - detail: { - display: item.display, - category: item.category - } - }); - this.onClick.emit(item); - } -} +import { NgClass } from '@angular/common'; +import { Component, computed, inject, input, output, signal } from '@angular/core'; +import { toObservable, toSignal } from '@angular/core/rxjs-interop'; +import { EventManager } from '@angular/platform-browser'; +import { HashMap, Translation, TranslocoPipe, provideTranslocoScope } from '@jsverse/transloco'; +import { combineLatest, map, of, switchMap, catchError } from 'rxjs'; + +import { Suggestion as SuggestionBasic } from '@sinequa/atomic'; +import { + AppStore, + AuditService, + AutocompleteService, + HighlightWordPipe, + MenuItemComponent, + MenuSeparatorComponent, + UserSettingsStore +} from '@sinequa/atomic-angular'; + +import { SearchInputComponent } from '../search-input.component'; + +export type Suggestion = Partial & { + $isDivider: boolean; +}; + +const titledSections = ['title', 'concepts', 'people', 'bookmark', 'recent-search', 'saved-search']; +const autocompleteCategories = ['full-text', 'recent-search', 'saved-search', 'bookmark', 'title', 'concepts', 'people']; + +const loader = ['en', 'fr'].reduce( + (acc, lang) => { + acc[lang] = () => import(`../i18n/${lang}.json`); + return acc; + }, + {} as HashMap<() => Promise> +); + +@Component({ + selector: 'app-autocomplete', + standalone: true, + templateUrl: './autocomplete.component.html', + imports: [NgClass, HighlightWordPipe, TranslocoPipe, MenuItemComponent, MenuSeparatorComponent], + providers: [provideTranslocoScope({ scope: 'search-input', loader })], + styles: [ + ` + ul { + scrollbar-width: thin; + } + ` + ] +}) +export class AutocompleteComponent { + readonly text = input(''); + readonly onClick = output(); + + readonly wasSearchClicked = signal(false); + + readonly autocompleteService = inject(AutocompleteService); + readonly auditService = inject(AuditService); + readonly appStore = inject(AppStore); + readonly userSettingsStore = inject(UserSettingsStore); + + autocomplete = computed(() => this.appStore.customizationJson()?.autocomplete); + + readonly items = toSignal( + combineLatest([toObservable(this.text), toObservable(this.wasSearchClicked)]).pipe( + switchMap(([testText]) => { + const fromUserSettings = of(this.autocompleteService.getFromUserSettingsForText(testText, this.autocomplete() ?? 3)); + + if (!testText) return fromUserSettings; + + return combineLatest([ + fromUserSettings, + this.autocompleteService.getFromSuggestQueriesForText(testText).pipe( + catchError(error => { + console.error(error); + return of([]); + }) + ) + ]); + }), + map(items => items.flat(2)), + // order the items to have full-text, recent search and saved search at the beginning + map(items => + items.sort((a, b) => { + return autocompleteCategories.indexOf(a.category) - autocompleteCategories.indexOf(b.category); + }) + ), + map(items => + items.reduce((acc, curr) => { + if (acc.length > 0) { + const last = acc.at(-1); + + // add a divider before specific categories + if (!last?.$isDivider && last?.category !== curr.category && titledSections.includes(curr.category)) { + acc.push({ $isDivider: true }); + acc.push({ category: curr.category, $isDivider: false }); + } + // handle the case when the first item is from a titled section + } else if (titledSections.includes(curr.category)) { + acc.push({ category: curr.category, $isDivider: false }); + } + + acc.push({ ...curr, $isDivider: false }); + return acc; + }, []) + ) + ) + ); + + constructor( + { el: { nativeElement } }: SearchInputComponent, + private eventManager: EventManager + ) { + this.eventManager.addEventListener(nativeElement, 'click', () => this.wasSearchClicked.set(true)); + } + + public itemClicked(item: Suggestion): void { + this.auditService.notify({ + type: 'Search_Autocomplete', + detail: { + display: item.display, + category: item.category + } + }); + this.onClick.emit(item); + } +} diff --git a/src/core/components/search-input/search-input.component.html b/src/core/components/search-input/search-input.component.html index f0cd5ee0..6095b6a7 100644 --- a/src/core/components/search-input/search-input.component.html +++ b/src/core/components/search-input/search-input.component.html @@ -1,72 +1,77 @@ -
      -
      - @if (showSave() && input() !== '') { - - } - - - - - @if (input() !== '') { - - } - - - @if (input() !== '' && allowChatDrawer()) { - - } -
      - - - -
      - -
      - -
      +
      +
      + @if (showSave() && input() !== '') { + + } + + + + + @if (input() !== '') { + + } + + + @if (input() !== '' && allowChatDrawer()) { + + } +
      + + + +
      + +
      + +
      diff --git a/src/core/components/search-input/search-input.component.ts b/src/core/components/search-input/search-input.component.ts index 082eb84e..6ece0f59 100644 --- a/src/core/components/search-input/search-input.component.ts +++ b/src/core/components/search-input/search-input.component.ts @@ -1,182 +1,186 @@ -import { NgClass } from '@angular/common'; -import { Component, ElementRef, Signal, booleanAttribute, computed, effect, inject, input, output, signal, viewChild } from '@angular/core'; -import { FormsModule } from '@angular/forms'; -import { ActivatedRoute } from '@angular/router'; -import { HashMap, Translation, TranslocoPipe, TranslocoService, provideTranslocoScope } from '@jsverse/transloco'; -import { getState } from '@ngrx/signals'; -import { AppStore, AutocompleteService, CJson, debouncedSignal, DrawerStackService, QueryParamsStore, UserSettingsStore } from '@sinequa/atomic-angular'; -import { toast } from 'ngx-sonner'; - -const DEBOUNCE_DELAY = 300; - -const loader = ['en', 'fr'].reduce( - (acc, lang) => { - acc[lang] = () => import(`./i18n/${lang}.json`); - return acc; - }, - {} as HashMap<() => Promise> -); - -@Component({ - selector: 'app-search-input', - standalone: true, - imports: [NgClass, FormsModule, TranslocoPipe], - templateUrl: './search-input.component.html', - styleUrl: './search-input.component.scss', - providers: [provideTranslocoScope({ scope: 'searchInput', loader })] -}) -export class SearchInputComponent { - readonly debounced = output(); - readonly validated = output(); - readonly saved = output(); - readonly clicked = output(); - - private readonly autocompletePopover = viewChild('autocompletePopover'); - private readonly popoverElement: Signal = computed(() => this.autocompletePopover()?.nativeElement); - - protected readonly autocompleteService = inject(AutocompleteService); - private readonly drawerStack = inject(DrawerStackService); - protected readonly queryParamsStore = inject(QueryParamsStore); - protected readonly userSettingsStore = inject(UserSettingsStore); - private readonly appStore = inject(AppStore); - private readonly route = inject(ActivatedRoute); - private readonly translocoService = inject(TranslocoService); - - public readonly showSave = input(false, { transform: booleanAttribute }); - - public readonly input = signal(''); - - protected readonly allowChatDrawer = signal(false); - protected readonly saveAnimation = signal(false); - - protected readonly debounceInputValue = debouncedSignal(this.input, DEBOUNCE_DELAY); - - protected allowEmptySearch = computed(() => { - const { queryName } = this.route.snapshot.data; - return this.appStore.allowEmptySearch(queryName); - }); - - /** Returns true if the current search (current input() + filters) is in the saved searches */ - protected isSavedSearch = computed(() => { - const params = getState(this.queryParamsStore); // to watch params update - const savedSearches = this.userSettingsStore.savedSearches(); - const url = window.location.hash.substring(1); - const filtersSplit = url.split('f='); - const filters = filtersSplit.length > 1 ? JSON.parse(decodeURIComponent(filtersSplit[1].split('&')[0]))[0] : undefined; - const display = this.input(); - - // returns true if a save search matches the display and filters - return savedSearches.some(search => { - const searchFiltersSplit = search.url.split('f='); - const searchFilters = searchFiltersSplit.length > 1 ? JSON.parse(decodeURIComponent(searchFiltersSplit[1].split('&')[0]))[0] : undefined; - - // if one of them has filters and not the other one - if ((filters && !searchFilters) || (!filters && searchFilters)) return false; - - if (filters && searchFilters) { - const filtersKeys = Object.keys(filters).sort(); - const searchFiltersKeys = Object.keys(searchFilters).sort(); - const similarKeys = JSON.stringify(filtersKeys) === JSON.stringify(searchFiltersKeys); - - if (!similarKeys) return false; // if one of them has different keys - - for (const key of filtersKeys) { - if (filters[key] !== searchFilters[key]) return false; // if any value is different - } - } - - return search.display === display; // lastly, if the text is similar - }); - }); - - // el is the ElementRef of the component, it is injected by Angular and used by the AutoComplete component - constructor(public readonly el: ElementRef) { - effect(() => { - const value = this.debounceInputValue(); - this.debounced.emit(value); - }); - - effect( - () => { - const { data } = getState(this.appStore); - const { features = { allowChatDrawer: false } } = data as CJson; - - this.allowChatDrawer.set(features.allowChatDrawer); - }, - { allowSignalWrites: true } - ); - - // first time the component is created, we set the input value from the query params - effect( - () => { - const { text } = getState(this.queryParamsStore); - this.setInput(text); - }, - { allowSignalWrites: true } - ); - } - - public closeAutocompletePopover(): void { - this.popoverElement().hidePopover(); - } - - public inputClicked(): void { - this.popoverElement().showPopover(); - this.clicked.emit(); - } - - public setInput(text: string | undefined, silent: boolean = true): void { - if (text === undefined) return; - - this.input.set(text); - if (!silent) this.emitText(); - } - - public askAI(): void { - this.drawerStack.askAI(this.input()); - } - - protected emitText(): void { - if (this.allowEmptySearch() === false && this.input() === '') { - const message = this.translocoService.translate('searchInput.allowEmptySearch'); - toast.info(message); - return; - } - - this.closeAutocompletePopover(); - this.validated.emit(this.input()); - } - - protected clearInput(): void { - this.input.set(''); - - if (this.allowEmptySearch()) { - this.validated.emit(''); - } else { - this.popoverElement().hidePopover(); - } - } - - protected saveQuery(): void { - this.saveAnimation.set(true); - setTimeout(() => this.saveAnimation.set(false), 1000); - - this.saved.emit(); - } - - /** - * Handles the keydown event on the search input. - * - * @param e - The keyboard event triggered by the user. - * - * If the 'Enter' key is pressed, the current text is emitted. - * If the input is not empty and a different key is pressed, the popover is shown (if previously hidden). - */ - protected onKeyDown(e: KeyboardEvent): void { - if (e.key === 'Enter') { - this.emitText(); - } else if (this.input() !== '') { - this.popoverElement().showPopover(); - } - } -} +import { NgClass } from '@angular/common'; +import { booleanAttribute, Component, computed, effect, ElementRef, inject, input, output, Signal, signal, viewChild } from '@angular/core'; +import { FormsModule } from '@angular/forms'; +import { ActivatedRoute } from '@angular/router'; +import { HashMap, provideTranslocoScope, Translation, TranslocoPipe, TranslocoService } from '@jsverse/transloco'; +import { getState } from '@ngrx/signals'; +import { + AppStore, + AutocompleteService, + ButtonComponent, + CJson, + debouncedSignal, + DrawerStackService, + QueryParamsStore, + UserSettingsStore +} from '@sinequa/atomic-angular'; +import { toast } from 'ngx-sonner'; + +const DEBOUNCE_DELAY = 300; + +const loader = ['en', 'fr'].reduce( + (acc, lang) => { + acc[lang] = () => import(`./i18n/${lang}.json`); + return acc; + }, + {} as HashMap<() => Promise> +); + +@Component({ + selector: 'app-search-input', + standalone: true, + imports: [NgClass, FormsModule, TranslocoPipe, ButtonComponent], + templateUrl: './search-input.component.html', + styleUrl: './search-input.component.scss', + providers: [provideTranslocoScope({ scope: 'searchInput', loader })] +}) +export class SearchInputComponent { + readonly debounced = output(); + readonly validated = output(); + readonly saved = output(); + readonly clicked = output(); + + private readonly autocompletePopover = viewChild('autocompletePopover'); + private readonly popoverElement: Signal = computed(() => this.autocompletePopover()?.nativeElement); + + protected readonly autocompleteService = inject(AutocompleteService); + private readonly drawerStack = inject(DrawerStackService); + protected readonly queryParamsStore = inject(QueryParamsStore); + protected readonly userSettingsStore = inject(UserSettingsStore); + private readonly appStore = inject(AppStore); + private readonly route = inject(ActivatedRoute); + private readonly translocoService = inject(TranslocoService); + + public readonly showSave = input(false, { transform: booleanAttribute }); + + public readonly input = signal(''); + + protected readonly allowChatDrawer = signal(false); + protected readonly saveAnimation = signal(false); + + protected readonly debounceInputValue = debouncedSignal(this.input, DEBOUNCE_DELAY); + + protected allowEmptySearch = computed(() => { + const { queryName } = this.route.snapshot.data; + return this.appStore.allowEmptySearch(queryName); + }); + + /** Returns true if the current search (current input() + filters) is in the saved searches */ + protected isSavedSearch = computed(() => { + const params = getState(this.queryParamsStore); // to watch params update + const savedSearches = this.userSettingsStore.savedSearches(); + const url = window.location.hash.substring(1); + const filtersSplit = url.split('f='); + const filters = filtersSplit.length > 1 ? JSON.parse(decodeURIComponent(filtersSplit[1].split('&')[0]))[0] : undefined; + const display = this.input(); + + // returns true if a save search matches the display and filters + return savedSearches.some(search => { + const searchFiltersSplit = search.url.split('f='); + const searchFilters = searchFiltersSplit.length > 1 ? JSON.parse(decodeURIComponent(searchFiltersSplit[1].split('&')[0]))[0] : undefined; + + // if one of them has filters and not the other one + if ((filters && !searchFilters) || (!filters && searchFilters)) return false; + + if (filters && searchFilters) { + const filtersKeys = Object.keys(filters).sort(); + const searchFiltersKeys = Object.keys(searchFilters).sort(); + const similarKeys = JSON.stringify(filtersKeys) === JSON.stringify(searchFiltersKeys); + + if (!similarKeys) return false; // if one of them has different keys + + for (const key of filtersKeys) { + if (filters[key] !== searchFilters[key]) return false; // if any value is different + } + } + + return search.display === display; // lastly, if the text is similar + }); + }); + + // el is the ElementRef of the component, it is injected by Angular and used by the AutoComplete component + constructor(public readonly el: ElementRef) { + effect(() => { + const value = this.debounceInputValue(); + this.debounced.emit(value); + }); + + effect( + () => { + const { data } = getState(this.appStore); + const { features = { allowChatDrawer: false } } = data as CJson; + + this.allowChatDrawer.set(features.allowChatDrawer); + }, + { allowSignalWrites: true } + ); + + // first time the component is created, we set the input value from the query params + effect( + () => { + const { text } = getState(this.queryParamsStore); + this.setInput(text); + }, + { allowSignalWrites: true } + ); + } + + public closeAutocompletePopover(): void { + this.popoverElement().hidePopover(); + } + + public inputClicked(): void { + this.popoverElement().showPopover(); + this.clicked.emit(); + } + + public setInput(text: string | undefined, silent: boolean = true): void { + if (text === undefined) return; + + this.input.set(text); + if (!silent) this.emitText(); + } + + public askAI(): void { + this.drawerStack.askAI(this.input()); + } + + protected emitText(): void { + if (this.allowEmptySearch() === false && this.input() === '') { + const message = this.translocoService.translate('searchInput.allowEmptySearch'); + toast.info(message); + return; + } + + this.closeAutocompletePopover(); + this.validated.emit(this.input()); + } + + protected clearInput(e: Event): void { + this.input.set(''); + this.popoverElement().hidePopover(); + } + + protected saveQuery(): void { + this.saveAnimation.set(true); + setTimeout(() => this.saveAnimation.set(false), 1000); + + this.saved.emit(); + } + + /** + * Handles the keydown event on the search input. + * + * @param e - The keyboard event triggered by the user. + * + * If the 'Enter' key is pressed, the current text is emitted. + * If the input is not empty and a different key is pressed, the popover is shown (if previously hidden). + */ + protected onKeyDown(e: KeyboardEvent): void { + if (e.key === 'Enter') { + this.emitText(); + } else if (this.input() !== '') { + this.popoverElement().showPopover(); + } + } +} diff --git a/src/core/features/alerts/alert-form.ts b/src/core/features/alerts/alert.dialog.ts similarity index 80% rename from src/core/features/alerts/alert-form.ts rename to src/core/features/alerts/alert.dialog.ts index 0df32c41..878273d7 100644 --- a/src/core/features/alerts/alert-form.ts +++ b/src/core/features/alerts/alert.dialog.ts @@ -1,221 +1,253 @@ -import { Component, computed, ElementRef, inject, signal, viewChild } from '@angular/core'; -import { FormsModule } from '@angular/forms'; -import { HashMap, provideTranslocoScope, Translation, TranslocoPipe, TranslocoService } from '@jsverse/transloco'; -import { Alert, QueryParamsStore, QueryService, UserSettingsStore } from '@sinequa/atomic-angular'; -import { toast } from 'ngx-sonner'; -import { firstValueFrom } from 'rxjs'; - -const loader = ['en', 'fr'].reduce( - (acc, lang) => { - acc[lang] = () => import(`./i18n/${lang}.json`); - return acc; - }, - {} as HashMap<() => Promise> -); - -@Component({ - selector: 'alert-form-dialog', - standalone: true, - imports: [FormsModule, TranslocoPipe], - providers: [provideTranslocoScope({ scope: 'alert', loader })], - template: ` - -
      -

      {{ 'alert.createAlert' | transloco }}

      -
      - - - - - -
      - @for (day of weekdays; track $index) { -
      - - -
      - } -
      - - - -
      - - -
      - -
      - @if (alert) { - - } - @if (canUpdateQuery()) { - - } - - -
      -
      -
      - `, - styles: ` - .weekdays-grid { - display: grid; - grid-template-columns: repeat(auto-fill, minmax(100px, 1fr)); - } - ` -}) -export class AlertFormDialog { - private readonly queryService = inject(QueryService); - private readonly queryParamsStore = inject(QueryParamsStore); - private readonly userSettingsStore = inject(UserSettingsStore); - private readonly transloco = inject(TranslocoService); - readonly dialog = viewChild('dialog'); - - frequencies = [Alert.Frequency.Daily, Alert.Frequency.Hourly, Alert.Frequency.Immediate]; - frequency = Alert.Frequency; - weekdays = [ - { key: 'monday', value: Alert.Days.Monday }, - { key: 'tuesday', value: Alert.Days.Tuesday }, - { key: 'wednesday', value: Alert.Days.Wednesday }, - { key: 'thursday', value: Alert.Days.Thursday }, - { key: 'friday', value: Alert.Days.Friday }, - { key: 'saturday', value: Alert.Days.Saturday }, - { key: 'sunday', value: Alert.Days.Sunday } - ]; - - index?: number; - alert?: Alert; - - alertName = signal(''); - alertFrequency = signal(Alert.Frequency.Daily); - alertDays = signal(Alert.Days.None); - alertTimes = signal('9:00'); - alertActive = signal(true); - canUpdateQuery = signal(false); - - invalidForm = computed(() => !this.alertName() || !this.alertTimes()); - - async showModal(index?: number) { - this.index = index; - - if (index !== undefined) { - this.alert = this.userSettingsStore.alerts()[index]; - if (this.alert) { - this.alertName.set(this.alert.name); - this.alertFrequency.set(this.alert.frequency); - this.alertDays.set(this.alert.days); - this.alertTimes.set(this.alert.times); - this.alertActive.set(this.alert.active); - - const q = this.queryParamsStore.getQuery(); - const response = await firstValueFrom(this.queryService.search(q, false)); - this.canUpdateQuery.set(response.records?.length > 0); - } - } else { - this.alertName.set(''); - this.alertFrequency.set(Alert.Frequency.Daily); - this.alertDays.set(Alert.Days.None); - this.alertTimes.set('9:00'); - this.alertActive.set(true); - } - - this.dialog()!.nativeElement.showModal(); - } - - async confirm(): Promise { - if (this.alert) { - this.update(); - } else { - this.create(); - } - this.dialog()!.nativeElement.close(); - } - - private async create(): Promise { - const alert: Alert = { - name: this.alertName(), - description: '', - timezone: Intl.DateTimeFormat().resolvedOptions().timeZone, - query: this.queryParamsStore.getQuery(), - frequency: this.alertFrequency(), - days: this.alertDays(), - interval: 1, - index: 1, - times: this.alertTimes(), - active: this.alertActive(), - combine: true, - respectTabSelection: false - }; - - this.userSettingsStore.createAlert(alert); - } - - private async update(): Promise { - this.alert!.name = this.alertName(); - this.alert!.frequency = this.alertFrequency(); - this.alert!.days = this.alertDays(); - this.alert!.times = this.alertTimes(); - this.alert!.active = this.alertActive(); - - this.userSettingsStore.updateAlert(this.alert!, this.index!); - } - - dayChecked(day: Alert.Days): boolean { - return (this.alertDays() & day) !== 0; - } - - dayChange(event: Event, day: Alert.Days) { - const input = event.target as HTMLInputElement; - if (input.checked) { - this.alertDays.set(this.alertDays() | day); - } else { - this.alertDays.set(this.alertDays() & ~day); - } - } - - updateQuery() { - this.alert!.query = this.queryParamsStore.getQuery(); - this.userSettingsStore.updateAlert(this.alert!, this.index!); - toast.success(this.transloco.translate('alert.queryUpdated'), { duration: 2000 }); - } - - execute() { - const q = this.alert!.query; - const filters = Array.isArray(q.filters) ? q.filters : undefined; - this.queryParamsStore.patch({ text: q.text, tab: q.tab, basket: q.basket, sort: q.sort, filters, name: q.name }); - this.dialog()!.nativeElement.close(); - } -} +import { Component, computed, inject, output, signal, viewChild } from '@angular/core'; +import { FormsModule } from '@angular/forms'; +import { HashMap, provideTranslocoScope, Translation, TranslocoPipe, TranslocoService } from '@jsverse/transloco'; +import { + Alert, + ButtonComponent, + DialogComponent, + DialogContentComponent, + DialogEvent, + DialogFooterComponent, + DialogHeaderComponent, + DialogTitleComponent, + QueryParamsStore, + QueryService, + UserSettingsStore +} from '@sinequa/atomic-angular'; +import { toast } from 'ngx-sonner'; +import { firstValueFrom } from 'rxjs'; + +const loader = ['en', 'fr'].reduce( + (acc, lang) => { + acc[lang] = () => import(`./i18n/${lang}.json`); + return acc; + }, + {} as HashMap<() => Promise> +); + +@Component({ + selector: 'alert-dialog, alertdialog, AlertDialog', + standalone: true, + imports: [ + FormsModule, + TranslocoPipe, + ButtonComponent, + DialogComponent, + DialogHeaderComponent, + DialogTitleComponent, + DialogContentComponent, + DialogFooterComponent + ], + providers: [provideTranslocoScope({ scope: 'alert', loader })], + template: ` + + + {{ 'alert.createAlert' | transloco }} + + + + + + + +
      + @for (day of weekdays; track $index) { +
      + + +
      + } +
      + + + +
      + + +
      +
      + + +
      + @if (alert) { + + } + @if (canUpdateQuery()) { + + } +
      +
      + + +
      +
      +
      + `, + styles: ` + .weekdays-grid { + display: grid; + grid-template-columns: repeat(auto-fill, minmax(100px, 1fr)); + } + ` +}) +export class AlertDialog { + private readonly queryService = inject(QueryService); + private readonly queryParamsStore = inject(QueryParamsStore); + private readonly userSettingsStore = inject(UserSettingsStore); + private readonly transloco = inject(TranslocoService); + readonly dialog = viewChild(DialogComponent); + + frequencies = [Alert.Frequency.Daily, Alert.Frequency.Hourly, Alert.Frequency.Immediate]; + frequency = Alert.Frequency; + weekdays = [ + { key: 'monday', value: Alert.Days.Monday }, + { key: 'tuesday', value: Alert.Days.Tuesday }, + { key: 'wednesday', value: Alert.Days.Wednesday }, + { key: 'thursday', value: Alert.Days.Thursday }, + { key: 'friday', value: Alert.Days.Friday }, + { key: 'saturday', value: Alert.Days.Saturday }, + { key: 'sunday', value: Alert.Days.Sunday } + ]; + + index?: number; + alert?: Alert; + + alertName = signal(''); + alertFrequency = signal(Alert.Frequency.Daily); + alertDays = signal(Alert.Days.None); + alertTimes = signal('9:00'); + alertActive = signal(true); + canUpdateQuery = signal(false); + + invalidForm = computed(() => !this.alertName() || !this.alertTimes()); + + closed = output(); + + open(index: number): void { + this.showModal(index); + } + + async showModal(index?: number) { + this.index = index; + + if (index !== undefined) { + this.alert = this.userSettingsStore.alerts()[index]; + if (this.alert) { + this.alertName.set(this.alert.name); + this.alertFrequency.set(this.alert.frequency); + this.alertDays.set(this.alert.days); + this.alertTimes.set(this.alert.times); + this.alertActive.set(this.alert.active); + + const q = this.queryParamsStore.getQuery(); + const response = await firstValueFrom(this.queryService.search(q, false)); + this.canUpdateQuery.set(response.records?.length > 0); + } + } else { + this.alertName.set(''); + this.alertFrequency.set(Alert.Frequency.Daily); + this.alertDays.set(Alert.Days.None); + this.alertTimes.set('9:00'); + this.alertActive.set(true); + } + + this.dialog()!.showModal(); + } + + async confirm(): Promise { + if (this.alert) { + this.update(); + } else { + this.create(); + } + this.dialog()!.close(); + } + + private async create(): Promise { + const alert: Alert = { + name: this.alertName(), + description: '', + timezone: Intl.DateTimeFormat().resolvedOptions().timeZone, + query: this.queryParamsStore.getQuery(), + frequency: this.alertFrequency(), + days: this.alertDays(), + interval: 1, + index: 1, + times: this.alertTimes(), + active: this.alertActive(), + combine: true, + respectTabSelection: false + }; + + this.userSettingsStore.createAlert(alert); + } + + private async update(): Promise { + this.alert!.name = this.alertName(); + this.alert!.frequency = this.alertFrequency(); + this.alert!.days = this.alertDays(); + this.alert!.times = this.alertTimes(); + this.alert!.active = this.alertActive(); + + this.userSettingsStore.updateAlert(this.alert!, this.index!); + } + + dayChecked(day: Alert.Days): boolean { + return (this.alertDays() & day) !== 0; + } + + dayChange(event: Event, day: Alert.Days) { + const input = event.target as HTMLInputElement; + if (input.checked) { + this.alertDays.set(this.alertDays() | day); + } else { + this.alertDays.set(this.alertDays() & ~day); + } + } + + updateQuery() { + this.alert!.query = this.queryParamsStore.getQuery(); + this.userSettingsStore.updateAlert(this.alert!, this.index!); + toast.success(this.transloco.translate('alert.queryUpdated'), { duration: 2000 }); + } + + execute() { + const q = this.alert!.query; + const filters = Array.isArray(q.filters) ? q.filters : undefined; + this.queryParamsStore.patch({ text: q.text, tab: q.tab, basket: q.basket, sort: q.sort, filters, name: q.name }); + this.dialog()!.close(); + } +} diff --git a/src/core/features/alerts/alerts.html b/src/core/features/alerts/alerts.html new file mode 100644 index 00000000..cb1286cb --- /dev/null +++ b/src/core/features/alerts/alerts.html @@ -0,0 +1,23 @@ +
        + @if(floating) { + + + } @for (alert of tmpAlerts; track $index) { +
      • + {{ alert.name }} + @if (!reordering()) { + + } @else { + + } +
      • + } @empty { +
      • {{ 'alert.noAlerts' | transloco }}
      • + } +
      • + + +
      • +
      diff --git a/src/core/features/alerts/alerts/alerts.component.ts b/src/core/features/alerts/alerts.ts similarity index 59% rename from src/core/features/alerts/alerts/alerts.component.ts rename to src/core/features/alerts/alerts.ts index 778e52a1..638d17a2 100644 --- a/src/core/features/alerts/alerts/alerts.component.ts +++ b/src/core/features/alerts/alerts.ts @@ -1,70 +1,85 @@ -import { Component, computed, effect, inject, signal, viewChild } from '@angular/core'; -import { HashMap, provideTranslocoScope, Translation, TranslocoPipe } from '@jsverse/transloco'; -import { Alert, buildQuery, UserSettingsStore } from '@sinequa/atomic-angular'; -import { Query } from '@sinequa/atomic'; -import { AlertFormDialog } from '../alert-form'; -import { CdkDragDrop, DragDropModule } from '@angular/cdk/drag-drop'; - -const loader = ['en', 'fr'].reduce( - (acc, lang) => { - acc[lang] = () => import(`../i18n/${lang}.json`); - return acc; - }, - {} as HashMap<() => Promise> -); - -@Component({ - selector: 'Alerts', - standalone: true, - imports: [TranslocoPipe, AlertFormDialog, DragDropModule], - templateUrl: './alerts.component.html', - providers: [provideTranslocoScope({ scope: 'alert', loader })] -}) -export class AlertsComponent { - private readonly userSettingsStore = inject(UserSettingsStore); - - readonly alertFormDialog = viewChild(AlertFormDialog); - - reordering = signal(false); - protected alerts = computed(() => this.userSettingsStore.alerts()); - - tmpAlerts: Alert[]; - query: Query; - - constructor() { - this.query = buildQuery(); - - effect(() => { - this.tmpAlerts = this.alerts().map(a => Object.assign({}, a)); - }); - } - - onClick(index: number): void { - this.alertFormDialog()?.showModal(index); - } - - createAlert(): void { - this.alertFormDialog()?.showModal(); - } - - deleteAlert(event: Event, index: number) { - event.stopPropagation(); - this.userSettingsStore.deleteAlert(index); - } - - async reorder() { - if (this.reordering()) { - await this.userSettingsStore.updateAlerts(this.tmpAlerts); - this.reordering.set(false); - } else { - this.reordering.set(true); - } - } - - dropped(drop: CdkDragDrop) { - if (drop.currentIndex === drop.previousIndex) { - return; - } - this.tmpAlerts.splice(drop.currentIndex, 0, this.tmpAlerts.splice(drop.previousIndex, 1)[0]); - } -} +import { CdkDragDrop, DragDropModule } from '@angular/cdk/drag-drop'; +import { Component, computed, effect, inject, signal, viewChild } from '@angular/core'; +import { HashMap, provideTranslocoScope, Translation, TranslocoPipe } from '@jsverse/transloco'; +import { Query } from '@sinequa/atomic'; +import { + Alert, + buildQuery, + ButtonComponent, + DialogService, + MenuItemComponent, + MenuSeparatorComponent, + PopoverComponent, + UserSettingsStore +} from '@sinequa/atomic-angular'; +import { AlertDialog } from './alert.dialog'; + +const loader = ['en', 'fr'].reduce( + (acc, lang) => { + acc[lang] = () => import(`./i18n/${lang}.json`); + return acc; + }, + {} as HashMap<() => Promise> +); + +@Component({ + selector: 'Alerts', + standalone: true, + imports: [TranslocoPipe, ButtonComponent, MenuSeparatorComponent, MenuItemComponent, DragDropModule], + templateUrl: './alerts.html', + providers: [provideTranslocoScope({ scope: 'alert', loader })] +}) +export class AlertsComponent { + floating = inject(PopoverComponent, { skipSelf: true, optional: true }); + private readonly userSettingsStore = inject(UserSettingsStore); + modal = inject(DialogService); + + readonly alertFormDialog = viewChild(AlertDialog); + + reordering = signal(false); + protected alerts = computed(() => this.userSettingsStore.alerts()); + + tmpAlerts: Alert[] = []; + query: Query; + + constructor() { + this.query = buildQuery(); + + effect(() => { + if (this.alerts()?.length) { + this.tmpAlerts = this.alerts()?.map(a => Object.assign({}, a)); + } + }); + } + + onClick(index: number): void { + this.floating?.close(); + this.modal.open(AlertDialog, index).then(v => console.log('result', v)); + } + + createAlert(): void { + this.floating?.close(); + this.modal.open(AlertDialog).then(v => console.log('result', v)); + } + + deleteAlert(event: Event, index: number) { + event.stopPropagation(); + this.userSettingsStore.deleteAlert(index); + } + + async reorder() { + if (this.reordering()) { + await this.userSettingsStore.updateAlerts(this.tmpAlerts); + this.reordering.set(false); + } else { + this.reordering.set(true); + } + } + + dropped(drop: CdkDragDrop) { + if (drop.currentIndex === drop.previousIndex) { + return; + } + this.tmpAlerts.splice(drop.currentIndex, 0, this.tmpAlerts.splice(drop.previousIndex, 1)[0]); + } +} diff --git a/src/core/features/alerts/alerts/alerts.component.html b/src/core/features/alerts/alerts/alerts.component.html deleted file mode 100644 index 3fee78a7..00000000 --- a/src/core/features/alerts/alerts/alerts.component.html +++ /dev/null @@ -1,38 +0,0 @@ -
        - @for (alert of tmpAlerts; track $index) { -
      • - - {{ alert.name }} - - @if (!reordering()) { - - } @else { - - } -
      • - } @empty { -
      • - {{ 'alert.noAlerts' | transloco }} -
      • - } -
      • - - -
      • -
      - - diff --git a/src/core/features/bookmarks/button/bookmark-button.component.ts b/src/core/features/bookmarks/bookmark-button.ts similarity index 71% rename from src/core/features/bookmarks/button/bookmark-button.component.ts rename to src/core/features/bookmarks/bookmark-button.ts index 81bc06cf..3837898f 100644 --- a/src/core/features/bookmarks/button/bookmark-button.component.ts +++ b/src/core/features/bookmarks/bookmark-button.ts @@ -1,50 +1,60 @@ -import { CommonModule } from '@angular/common'; -import { Component, computed, inject, input } from '@angular/core'; -import { HashMap, provideTranslocoScope, Translation, TranslocoPipe, TranslocoService } from '@jsverse/transloco'; -import { toast } from 'ngx-sonner'; - -import { ActivatedRoute } from '@angular/router'; -import { Article } from '@sinequa/atomic'; -import { cn, UserSettingsStore } from '@sinequa/atomic-angular'; - -const loader = ['en', 'fr'].reduce( - (acc, lang) => { - acc[lang] = () => import(`../i18n/${lang}.json`); - return acc; - }, - {} as HashMap<() => Promise> -); - -@Component({ - selector: 'app-bookmark-button', - standalone: true, - imports: [CommonModule, TranslocoPipe], - templateUrl: './bookmark-button.component.html', - providers: [provideTranslocoScope({ scope: 'bookmark', loader })] -}) -export class BookmarkButtonComponent { - public readonly article = input.required>(); - public readonly cn = cn; - - private readonly userSettingsStore = inject(UserSettingsStore); - private readonly transloco = inject(TranslocoService); - private readonly route = inject(ActivatedRoute); - - protected isBookmarked = computed(() => { - return this.userSettingsStore.isBookmarked(this.article()); - }); - - public async bookmark(e: Event) { - e.stopPropagation(); - const isBookmarked = await this.userSettingsStore.isBookmarked(this.article()); - - if (isBookmarked) { - await this.userSettingsStore.unbookmark(this.article()!.id!); - toast.success(this.transloco.translate('bookmark.bookmarkRemoved'), { duration: 2000 }); - } else { - const { queryName } = this.route.snapshot.data; - await this.userSettingsStore.bookmark(this.article()! as Article, queryName); - toast.success(this.transloco.translate('bookmark.bookmarkAdded'), { duration: 2000 }); - } - } -} +import { CommonModule } from '@angular/common'; +import { Component, computed, inject, input } from '@angular/core'; +import { HashMap, provideTranslocoScope, Translation, TranslocoService } from '@jsverse/transloco'; +import { toast } from 'ngx-sonner'; + +import { ActivatedRoute } from '@angular/router'; +import { Article } from '@sinequa/atomic'; +import { cn, UserSettingsStore } from '@sinequa/atomic-angular'; + +const loader = ['en', 'fr'].reduce( + (acc, lang) => { + acc[lang] = () => import(`./i18n/${lang}.json`); + return acc; + }, + {} as HashMap<() => Promise> +); + +@Component({ + selector: 'bookmark-button, bookmarkbutton, BookmarkButton', + standalone: true, + imports: [CommonModule], + template: ` @if (isBookmarked()) { + + } @else { + + }`, + host: { + '[title]': 'title()', + '(click)': 'bookmark($event)' + }, + providers: [provideTranslocoScope({ scope: 'bookmark', loader })] +}) +export class BookmarkButtonComponent { + public readonly article = input.required>(); + public readonly cn = cn; + + private readonly userSettingsStore = inject(UserSettingsStore); + private readonly transloco = inject(TranslocoService); + private readonly route = inject(ActivatedRoute); + + protected isBookmarked = computed(() => { + return this.userSettingsStore.isBookmarked(this.article()); + }); + + protected title = computed(() => this.transloco.translate('bookmark.bookmarkDocument')); + + public async bookmark(e: Event) { + e.stopPropagation(); + const isBookmarked = await this.userSettingsStore.isBookmarked(this.article()); + + if (isBookmarked) { + await this.userSettingsStore.unbookmark(this.article()!.id!); + toast.success(this.transloco.translate('bookmark.bookmarkRemoved'), { duration: 2000 }); + } else { + const { queryName } = this.route.snapshot.data; + await this.userSettingsStore.bookmark(this.article()! as Article, queryName); + toast.success(this.transloco.translate('bookmark.bookmarkAdded'), { duration: 2000 }); + } + } +} diff --git a/src/core/features/bookmarks/bookmarks.html b/src/core/features/bookmarks/bookmarks.html new file mode 100644 index 00000000..4e1480e8 --- /dev/null +++ b/src/core/features/bookmarks/bookmarks.html @@ -0,0 +1,48 @@ +
      + @if(floating) { + + + } +
      + +
        + @for (bookmark of paginatedBookmarks(); track $index) { +
      • + + +

        {{ bookmark.label }}

        + + @if (bookmark.author) { +

        + + {{ bookmark.author }} +

        + } @if (bookmark.parentFolder) { +

        + + {{ bookmark.parentFolder }} +

        + } + + +
      • + } @empty { +
      • {{ 'bookmark.noBookmarks' | transloco }}
      • + } +
      + +
      + @if (hasMore()) { + + } + +
      diff --git a/src/core/features/bookmarks/list/bookmarks-list.component.ts b/src/core/features/bookmarks/bookmarks.ts similarity index 71% rename from src/core/features/bookmarks/list/bookmarks-list.component.ts rename to src/core/features/bookmarks/bookmarks.ts index b5b89b6e..7c51b739 100644 --- a/src/core/features/bookmarks/list/bookmarks-list.component.ts +++ b/src/core/features/bookmarks/bookmarks.ts @@ -1,74 +1,90 @@ -import { Component, computed, inject, signal } from '@angular/core'; -import { HashMap, Translation, TranslocoPipe, provideTranslocoScope } from '@jsverse/transloco'; -import { toast } from 'ngx-sonner'; - -import { LegacyFilter, Query } from '@sinequa/atomic'; -import { Bookmark, DrawerStackService, QueryService, UserSettingsStore } from '@sinequa/atomic-angular'; -import { RouterModule } from '@angular/router'; - -const BOOKMARKS_ITEMS_PER_PAGE = 10; - -const loader = ['en', 'fr'].reduce( - (acc, lang) => { - acc[lang] = () => import(`../i18n/${lang}.json`); - return acc; - }, - {} as HashMap<() => Promise> -); - -@Component({ - selector: 'BookmarksList', - standalone: true, - imports: [TranslocoPipe, RouterModule], - templateUrl: './bookmarks-list.component.html', - styleUrl: './bookmarks-list.component.scss', - // eslint-disable-next-line @angular-eslint/no-host-metadata-property - host: { - class: 'block overflow-auto max-h-[460px]' - }, - providers: [provideTranslocoScope({ scope: 'bookmark', loader })] -}) -export class BookmarksListComponent { - private readonly drawerStack = inject(DrawerStackService); - private readonly queryService = inject(QueryService); - private readonly userSettingsStore = inject(UserSettingsStore); - - public range = signal(BOOKMARKS_ITEMS_PER_PAGE); - protected bookmarks = computed(() => this.userSettingsStore.bookmarks()); - public paginatedBookmarks = computed(() => this.bookmarks().slice(0, this.range())); - public hasMore = computed(() => this.bookmarks().length > 0 && this.range() < this.bookmarks().length); - - public onClick(bookmark: Bookmark): void { - // if the bookmark was created before the queryName was added, don't try to open it - if (!bookmark.queryName) { - toast.warning('This bookmark is outdated and cannot be opened', { description: 'No query name!', duration: 2000 }); - return; - } - - const query: Partial = { - name: bookmark.queryName, - filters: { - field: 'id', - value: bookmark.id - } as LegacyFilter - }; - this.queryService.search(query, false).subscribe(result => { - if (!result.records || result.records.length === 0) { - toast.warning('This bookmark is outdated and cannot be opened', { description: 'no record found!', duration: 2000 }); - return; - } - this.drawerStack.replace(result.records[0]); - }); - } - - public onDelete(bookmark: Bookmark, e: Event) { - e.stopPropagation(); - this.userSettingsStore.unbookmark(bookmark.id); - toast.success('Bookmark removed', { duration: 2000 }); - } - - loadMore(e: Event) { - e.stopPropagation(); - this.range.set(this.range() + BOOKMARKS_ITEMS_PER_PAGE); - } -} +import { Component, computed, inject, signal, SkipSelf } from '@angular/core'; +import { HashMap, Translation, TranslocoPipe, provideTranslocoScope } from '@jsverse/transloco'; +import { toast } from 'ngx-sonner'; + +import { LegacyFilter, Query } from '@sinequa/atomic'; +import { + Bookmark, + ButtonComponent, + DrawerStackService, + MenuItemComponent, + MenuSeparatorComponent, + PopoverComponent, + PopoverContentComponent, + QueryService, + UserSettingsStore +} from '@sinequa/atomic-angular'; +import { RouterModule } from '@angular/router'; + +const BOOKMARKS_ITEMS_PER_PAGE = 10; + +const loader = ['en', 'fr'].reduce( + (acc, lang) => { + acc[lang] = () => import(`./i18n/${lang}.json`); + return acc; + }, + {} as HashMap<() => Promise> +); + +@Component({ + selector: 'bookmarks, Bookmarks', + standalone: true, + imports: [TranslocoPipe, RouterModule, ButtonComponent, MenuSeparatorComponent, MenuItemComponent], + templateUrl: './bookmarks.html', + styles: [ + ` + :host { + ul { + scrollbar-width: thin; + } + } + ` + ], + providers: [provideTranslocoScope({ scope: 'bookmark', loader })] +}) +export class BookmarksComponent { + floating = inject(PopoverContentComponent, { skipSelf: true, optional: true }); + + private readonly drawerStack = inject(DrawerStackService); + private readonly queryService = inject(QueryService); + private readonly userSettingsStore = inject(UserSettingsStore); + + public range = signal(BOOKMARKS_ITEMS_PER_PAGE); + protected bookmarks = computed(() => this.userSettingsStore.bookmarks()); + public paginatedBookmarks = computed(() => this.bookmarks().slice(0, this.range())); + public hasMore = computed(() => this.bookmarks().length > 0 && this.range() < this.bookmarks().length); + + public onClick(bookmark: Bookmark): void { + // if the bookmark was created before the queryName was added, don't try to open it + if (!bookmark.queryName) { + toast.warning('This bookmark is outdated and cannot be opened', { description: 'No query name!', duration: 2000 }); + return; + } + + const query: Partial = { + name: bookmark.queryName, + filters: { + field: 'id', + value: bookmark.id + } as LegacyFilter + }; + this.queryService.search(query, false).subscribe(result => { + if (!result.records || result.records.length === 0) { + toast.warning('This bookmark is outdated and cannot be opened', { description: 'no record found!', duration: 2000 }); + return; + } + this.drawerStack.replace(result.records[0]); + }); + } + + public onDelete(bookmark: Bookmark, e: Event) { + e.stopPropagation(); + this.userSettingsStore.unbookmark(bookmark.id); + toast.success('Bookmark removed', { duration: 2000 }); + } + + loadMore(e: Event) { + e.stopPropagation(); + this.range.set(this.range() + BOOKMARKS_ITEMS_PER_PAGE); + } +} diff --git a/src/core/features/bookmarks/button/bookmark-button.component.html b/src/core/features/bookmarks/button/bookmark-button.component.html deleted file mode 100644 index f008237e..00000000 --- a/src/core/features/bookmarks/button/bookmark-button.component.html +++ /dev/null @@ -1,7 +0,0 @@ - diff --git a/src/core/features/bookmarks/list/bookmarks-list.component.html b/src/core/features/bookmarks/list/bookmarks-list.component.html deleted file mode 100644 index 9f9d5c14..00000000 --- a/src/core/features/bookmarks/list/bookmarks-list.component.html +++ /dev/null @@ -1,50 +0,0 @@ -
        - @for (bookmark of paginatedBookmarks(); track $index) { -
      • - - -

        {{ bookmark.label }}

        - - @if (bookmark.author) { -

        - - {{ bookmark.author }} -

        - } - - @if (bookmark.parentFolder) { -

        - - {{ bookmark.parentFolder }} -

        - } - - -
      • - } @empty { -
      • - {{ 'bookmark.noBookmarks' | transloco }} -
      • - } -
      - -
      - @if (hasMore()) { - - } - - {{ 'seeMore' | transloco }} - -
      diff --git a/src/core/features/bookmarks/list/bookmarks-list.component.scss b/src/core/features/bookmarks/list/bookmarks-list.component.scss deleted file mode 100644 index 595cf6ed..00000000 --- a/src/core/features/bookmarks/list/bookmarks-list.component.scss +++ /dev/null @@ -1,3 +0,0 @@ -:host { - scrollbar-width: thin; -} diff --git a/src/core/features/collections/add-to-collection.ts b/src/core/features/collections/collections-add.dialog.ts similarity index 75% rename from src/core/features/collections/add-to-collection.ts rename to src/core/features/collections/collections-add.dialog.ts index 1e22a687..3586ba82 100644 --- a/src/core/features/collections/add-to-collection.ts +++ b/src/core/features/collections/collections-add.dialog.ts @@ -1,126 +1,141 @@ -import { Component, computed, ElementRef, inject, input, signal, viewChild } from '@angular/core'; -import { FormsModule } from '@angular/forms'; -import { HashMap, provideTranslocoScope, Translation, TranslocoPipe } from '@jsverse/transloco'; -import { Article } from '@sinequa/atomic'; -import { Basket, UserSettingsStore } from '@sinequa/atomic-angular'; - -const loader = ['en', 'fr'].reduce( - (acc, lang) => { - acc[lang] = () => import(`./i18n/${lang}.json`); - return acc; - }, - {} as HashMap<() => Promise> -); - -@Component({ - selector: 'add-to-collection-dialog', - standalone: true, - imports: [FormsModule, TranslocoPipe], - providers: [provideTranslocoScope({ scope: 'collection', loader })], - template: ` - -
      -

      {{ 'collection.addToCollection' | transloco }}

      -
      - -
        - @for (collection of collections(); track $index) { -
      • - @if (containsArticle(collection)) { - - } @else { - - } - {{ collection.name }} -
      • - } @empty { -
      • - {{ 'collection.noCollections' | transloco }} -
      • - } - @if (creating()) { -
      • -
        - -
        -
      • - } -
      - -
      - - -
      -
      -
      - ` -}) -export class AddToCollectionDialog { - readonly article = input.required
      (); - private readonly userSettingsStore = inject(UserSettingsStore); - readonly createInput = viewChild('createInput'); - readonly dialog = viewChild('dialog'); - protected collections = computed(() => this.userSettingsStore.baskets()); - newCollectionName = signal(''); - creating = signal(false); - - showModal() { - this.dialog()!.nativeElement.showModal(); - } - - containsArticle(collection: Basket): boolean { - return (collection.ids || []).some(id => id === this.article().id); - } - - onCreate(): void { - if (this.creating()) return this.creating.set(false); - - this.creating.set(true); - this.createInput()?.nativeElement.focus(); - } - - async addToCollection(collection: Basket, collectionIndex: number): Promise { - if (this.containsArticle(collection)) { - // remove it - const index = collection.ids!.indexOf(this.article().id); - collection.ids!.splice(index, 1); - } else { - // add it - if (!collection.ids) collection.ids = []; - collection.ids!.push(this.article().id); - } - await this.userSettingsStore.updateBasket(collection, collectionIndex); - } - - onBlurCreate(): void { - if (this.newCollectionName()) { - const collection: Basket = { name: this.newCollectionName() }; - this.userSettingsStore.createBasket(collection); - this.newCollectionName.set(''); - this.creating.set(false); - } - } -} +import { Component, computed, ElementRef, inject, input, signal, viewChild } from '@angular/core'; +import { FormsModule } from '@angular/forms'; +import { HashMap, provideTranslocoScope, Translation, TranslocoPipe } from '@jsverse/transloco'; +import { Article } from '@sinequa/atomic'; +import { + Basket, + ButtonComponent, + DialogComponent, + DialogContentComponent, + DialogFooterComponent, + DialogHeaderComponent, + DialogTitleComponent, + UserSettingsStore +} from '@sinequa/atomic-angular'; + +const loader = ['en', 'fr'].reduce( + (acc, lang) => { + acc[lang] = () => import(`./i18n/${lang}.json`); + return acc; + }, + {} as HashMap<() => Promise> +); + +@Component({ + selector: 'add-to-collection-dialog', + standalone: true, + imports: [ + FormsModule, + TranslocoPipe, + ButtonComponent, + DialogComponent, + DialogHeaderComponent, + DialogTitleComponent, + DialogContentComponent, + DialogFooterComponent + ], + providers: [provideTranslocoScope({ scope: 'collection', loader })], + template: ` + + + {{ 'collection.addToCollection' | transloco }} + + + +
        + @for (collection of collections(); track $index) { +
      • + @if (containsArticle(collection)) { + + } @else { + + } + {{ collection.name }} +
      • + } @empty { +
      • + {{ 'collection.noCollections' | transloco }} +
      • + } + @if (creating()) { +
      • +
        + +
        +
      • + } +
      +
      + + + + + +
      + ` +}) +export class CollectionsDialog { + readonly article = input.required
      (); + private readonly userSettingsStore = inject(UserSettingsStore); + readonly createInput = viewChild('createInput'); + readonly dialog = viewChild(DialogComponent); + protected collections = computed(() => this.userSettingsStore.baskets()); + newCollectionName = signal(''); + creating = signal(false); + + showModal() { + this.dialog()!.showModal(); + } + + containsArticle(collection: Basket): boolean { + return (collection.ids || []).some(id => id === this.article().id); + } + + onCreate(): void { + if (this.creating()) return this.creating.set(false); + + this.creating.set(true); + this.createInput()?.nativeElement.focus(); + } + + async addToCollection(collection: Basket, collectionIndex: number): Promise { + if (this.containsArticle(collection)) { + // remove it + const index = collection.ids!.indexOf(this.article().id); + collection.ids!.splice(index, 1); + } else { + // add it + if (!collection.ids) collection.ids = []; + collection.ids!.push(this.article().id); + } + await this.userSettingsStore.updateBasket(collection, collectionIndex); + } + + onBlurCreate(): void { + if (this.newCollectionName()) { + const collection: Basket = { name: this.newCollectionName() }; + this.userSettingsStore.createBasket(collection); + this.newCollectionName.set(''); + this.creating.set(false); + } + } +} diff --git a/src/core/features/collections/delete-collection.ts b/src/core/features/collections/collections-delete.dialog.ts similarity index 55% rename from src/core/features/collections/delete-collection.ts rename to src/core/features/collections/collections-delete.dialog.ts index 84687953..09b85cc0 100644 --- a/src/core/features/collections/delete-collection.ts +++ b/src/core/features/collections/collections-delete.dialog.ts @@ -1,61 +1,81 @@ -import { Component, ElementRef, inject, signal, viewChild } from '@angular/core'; -import { FormsModule } from '@angular/forms'; -import { HashMap, provideTranslocoScope, Translation, TranslocoPipe, TranslocoService } from '@jsverse/transloco'; -import { Basket, UserSettingsStore } from '@sinequa/atomic-angular'; -import { toast } from 'ngx-sonner'; - -const loader = ['en', 'fr'].reduce( - (acc, lang) => { - acc[lang] = () => import(`./i18n/${lang}.json`); - return acc; - }, - {} as HashMap<() => Promise> -); - -@Component({ - selector: 'delete-collection-dialog', - standalone: true, - imports: [FormsModule, TranslocoPipe], - providers: [provideTranslocoScope({ scope: 'collection', loader })], - template: ` - -
      -

      {{ 'collection.deleteCollection' | transloco }}

      -
      -

      {{ 'collection.confirmDelete' | transloco }} {{ collection()?.name }}?

      - -
      - - - -
      -
      -
      - ` -}) -export class DeleteCollectionDialog { - readonly dialog = viewChild('dialog'); - - private readonly userSettingsStore = inject(UserSettingsStore); - private readonly translocoService = inject(TranslocoService); - - collection = signal(undefined); - index = signal(undefined); - - showModal(collection: Basket, index: number) { - this.collection.set(collection); - this.index.set(index); - this.dialog()!.nativeElement.showModal(); - } - - async deleteCollection(): Promise { - this.dialog()!.nativeElement.close(); - await this.userSettingsStore.deleteBasket(this.index()!); - const message = this.translocoService.translate('collection.deleted'); - toast.success(message, { duration: 2000 }); - } -} +import { Component, ElementRef, inject, signal, viewChild } from '@angular/core'; +import { FormsModule } from '@angular/forms'; +import { HashMap, provideTranslocoScope, Translation, TranslocoPipe, TranslocoService } from '@jsverse/transloco'; +import { + Basket, + ButtonComponent, + DialogComponent, + DialogContentComponent, + DialogFooterComponent, + DialogHeaderComponent, + DialogTitleComponent, + UserSettingsStore +} from '@sinequa/atomic-angular'; +import { toast } from 'ngx-sonner'; + +const loader = ['en', 'fr'].reduce( + (acc, lang) => { + acc[lang] = () => import(`./i18n/${lang}.json`); + return acc; + }, + {} as HashMap<() => Promise> +); + +@Component({ + selector: 'delete-collection-dialog', + standalone: true, + imports: [ + FormsModule, + TranslocoPipe, + ButtonComponent, + DialogComponent, + DialogHeaderComponent, + DialogTitleComponent, + DialogContentComponent, + DialogFooterComponent + ], + providers: [provideTranslocoScope({ scope: 'collection', loader })], + template: ` + + + {{ 'collection.deleteCollection' | transloco }} + + + +

      {{ 'collection.confirmDelete' | transloco }} {{ collection()?.name }}?

      +
      + + + + + + +
      + ` +}) +export class DeleteCollectionDialog { + readonly dialog = viewChild(DialogComponent); + + private readonly userSettingsStore = inject(UserSettingsStore); + private readonly translocoService = inject(TranslocoService); + + collection = signal(undefined); + index = signal(undefined); + + showModal(collection: Basket, index: number) { + this.collection.set(collection); + this.index.set(index); + this.dialog()!.showModal(); + } + + async deleteCollection(): Promise { + this.dialog()!.close(); + await this.userSettingsStore.deleteBasket(this.index()!); + const message = this.translocoService.translate('collection.deleted'); + toast.success(message, { duration: 2000 }); + } +} diff --git a/src/core/features/collections/manage-collections.ts b/src/core/features/collections/collections-manage.dialog.ts similarity index 58% rename from src/core/features/collections/manage-collections.ts rename to src/core/features/collections/collections-manage.dialog.ts index 651ad1f2..5b4b5bcd 100644 --- a/src/core/features/collections/manage-collections.ts +++ b/src/core/features/collections/collections-manage.dialog.ts @@ -1,178 +1,213 @@ -import { Component, effect, ElementRef, inject, input, signal, viewChild } from '@angular/core'; -import { FormsModule } from '@angular/forms'; -import { HashMap, provideTranslocoScope, Translation, TranslocoPipe } from '@jsverse/transloco'; -import { Basket, UserSettingsStore } from '@sinequa/atomic-angular'; -import { CdkDragDrop, DragDropModule } from '@angular/cdk/drag-drop'; -import { DeleteCollectionDialog } from './delete-collection'; - -const loader = ['en', 'fr'].reduce( - (acc, lang) => { - acc[lang] = () => import(`./i18n/${lang}.json`); - return acc; - }, - {} as HashMap<() => Promise> -); - -@Component({ - selector: 'manage-collections-dialog', - standalone: true, - imports: [FormsModule, TranslocoPipe, DragDropModule, DeleteCollectionDialog], - providers: [provideTranslocoScope({ scope: 'collection', loader })], - template: ` - -
      -

      {{ 'collection.manageCollections' | transloco }}

      -
      - -
        - @for (collection of tmpCollections; track $index) { -
      • - @if (modifiedIndex() === undefined || modifiedIndex() !== $index) { - - {{ collection.name }} - - - } @else { -
        - -
        - } -
      • - } - @if (creating()) { -
      • -
        - -
        -
      • - } -
      - -
      - - -
      -
      -
      - - - ` -}) -export class ManageCollectionsDialog { - collections = input.required(); - - private readonly userSettingsStore = inject(UserSettingsStore); - readonly dialog = viewChild('dialog'); - readonly renameInput = viewChild('renameInput'); - readonly createInput = viewChild('createInput'); - collectionName = signal(''); - newCollectionName = signal(''); - creating = signal(false); - modifiedIndex = signal(undefined); - - readonly deleteCollectionDialog = viewChild(DeleteCollectionDialog); - - tmpCollections: Basket[]; - - constructor() { - effect(() => { - this.tmpCollections = this.collections().map(c => Object.assign({}, c)); - }); - } - - showModal() { - this.dialog()!.nativeElement.showModal(); - } - - dropped(drop: CdkDragDrop) { - if (drop.currentIndex === drop.previousIndex) { - return; - } - this.tmpCollections.splice(drop.currentIndex, 0, this.tmpCollections.splice(drop.previousIndex, 1)[0]); - this.save(); - } - - onClick(collection: Basket, index: number): void { - if (this.modifiedIndex() === index) return; - - this.collectionName.set(collection.name); - this.modifiedIndex.set(index); - setTimeout(() => { - this.renameInput()?.nativeElement.focus(); - }); - } - - onCreate(): void { - if (this.creating()) return this.creating.set(false); - - this.creating.set(true); - this.createInput()?.nativeElement.focus(); - } - - onBlur(): void { - let modifiedName = false; - if (this.collectionName()) { - const collection = this.tmpCollections[this.modifiedIndex()!]; - modifiedName = collection.name !== this.collectionName(); - collection.name = this.collectionName(); - } - this.modifiedIndex.set(undefined); - if (modifiedName) this.save(); - } - - onBlurCreate(): void { - if (this.newCollectionName()) { - const collection: Basket = { name: this.newCollectionName() }; - this.userSettingsStore.createBasket(collection); - this.newCollectionName.set(''); - this.creating.set(false); - } - } - - async save(): Promise { - await this.userSettingsStore.updateBaskets(this.tmpCollections); - } - - deleteCollection(collection: Basket, index: number) { - this.deleteCollectionDialog()?.showModal(collection, index); - } - - async create(): Promise { - if (!this.collectionName()) return; - await this.userSettingsStore.createBasket({ name: this.collectionName() }); - } -} +import { ChangeDetectorRef, Component, effect, ElementRef, inject, input, output, signal, viewChild } from '@angular/core'; +import { FormsModule } from '@angular/forms'; +import { HashMap, provideTranslocoScope, Translation, TranslocoPipe } from '@jsverse/transloco'; +import { + Basket, + ButtonComponent, + DialogComponent, + DialogContentComponent, + DialogEvent, + DialogFooterComponent, + DialogHeaderComponent, + DialogTitleComponent, + UserSettingsStore +} from '@sinequa/atomic-angular'; +import { CdkDragDrop, DragDropModule } from '@angular/cdk/drag-drop'; +import { DeleteCollectionDialog } from './collections-delete.dialog'; + +const loader = ['en', 'fr'].reduce( + (acc, lang) => { + acc[lang] = () => import(`./i18n/${lang}.json`); + return acc; + }, + {} as HashMap<() => Promise> +); + +@Component({ + selector: 'manage-collections-dialog', + standalone: true, + imports: [ + FormsModule, + TranslocoPipe, + DragDropModule, + DeleteCollectionDialog, + ButtonComponent, + DialogComponent, + DialogHeaderComponent, + DialogTitleComponent, + DialogContentComponent, + DialogFooterComponent + ], + providers: [provideTranslocoScope({ scope: 'collection', loader })], + template: ` + + + {{ 'collection.manageCollections' | transloco }} + + + +
        + @for (collection of tmpCollections; track $index) { +
      • + @if (modifiedIndex() === undefined || modifiedIndex() !== $index) { + + {{ collection.name }} + + + } @else { +
        + +
        + } +
      • + } + @if (creating()) { +
      • + + + + +
      • + } +
      +
      + + + @if (!creating()) { + + + + } + +
      + + + ` +}) +export class ManageCollectionsDialog { + // collections = input.required(); + + private readonly userSettingsStore = inject(UserSettingsStore); + readonly dialog = viewChild(DialogComponent); + readonly renameInput = viewChild('renameInput'); + readonly createInput = viewChild('createInput'); + collectionName = signal(''); + newCollectionName = signal(''); + creating = signal(false); + modifiedIndex = signal(undefined); + + readonly deleteCollectionDialog = viewChild(DeleteCollectionDialog); + + tmpCollections: Basket[] = []; + + constructor(cdr: ChangeDetectorRef) { + effect(() => { + const baskets = this.userSettingsStore.baskets(); + this.tmpCollections = baskets.map(c => Object.assign({}, c)); + cdr.markForCheck(); + }); + } + + closed = output(); + + open() { + this.dialog()!.showModal(); + } + + showModal() { + this.dialog()!.showModal(); + } + + dropped(drop: CdkDragDrop) { + if (drop.currentIndex === drop.previousIndex) { + return; + } + this.tmpCollections.splice(drop.currentIndex, 0, this.tmpCollections.splice(drop.previousIndex, 1)[0]); + this.save(); + } + + onClick(collection: Basket, index: number): void { + if (this.modifiedIndex() === index) return; + + this.collectionName.set(collection.name); + this.modifiedIndex.set(index); + setTimeout(() => { + this.renameInput()?.nativeElement.focus(); + }); + } + + onCreate(): void { + if (this.creating()) return this.creating.set(false); + + this.creating.set(true); + this.createInput()?.nativeElement.focus(); + } + + onBlur(): void { + let modifiedName = false; + if (this.collectionName()) { + const collection = this.tmpCollections[this.modifiedIndex()!]; + modifiedName = collection.name !== this.collectionName(); + collection.name = this.collectionName(); + } + this.modifiedIndex.set(undefined); + if (modifiedName) this.save(); + } + + onBlurCreate(): void { + if (this.newCollectionName()) { + const collection: Basket = { name: this.newCollectionName() }; + this.userSettingsStore.createBasket(collection); + this.newCollectionName.set(''); + this.creating.set(false); + } + } + + async save(): Promise { + await this.userSettingsStore.updateBaskets(this.tmpCollections); + } + + deleteCollection(collection: Basket, index: number) { + this.deleteCollectionDialog()?.showModal(collection, index); + this.tmpCollections.splice(index, 1); + } + + async create(): Promise { + if (!this.collectionName()) return; + await this.userSettingsStore.createBasket({ name: this.collectionName() }); + } +} diff --git a/src/core/features/collections/collections.component.html b/src/core/features/collections/collections.component.html deleted file mode 100644 index abf1473d..00000000 --- a/src/core/features/collections/collections.component.html +++ /dev/null @@ -1,38 +0,0 @@ -
        - @for (collection of collections(); track $index) { -
      • - {{ collection.name }} - - -
      • - } @empty { -
      • - {{ 'collection.noCollections' | transloco }} -
      • - } - @if (showButtons()) { -
      • - -
      • - } -
      - - - diff --git a/src/core/features/collections/collections.html b/src/core/features/collections/collections.html new file mode 100644 index 00000000..a8576062 --- /dev/null +++ b/src/core/features/collections/collections.html @@ -0,0 +1,35 @@ +
        + @if(floating) { + + + } @for (collection of collections(); track $index) { +
      • + {{ collection.name }} + + +
      • + } @empty { +
      • {{ 'collection.noCollections' | transloco }}
      • + } @if (showButtons()) { +
      • + +
      • + } +
      + + diff --git a/src/core/features/collections/collections.component.ts b/src/core/features/collections/collections.ts similarity index 65% rename from src/core/features/collections/collections.component.ts rename to src/core/features/collections/collections.ts index e1b696d7..98d515f4 100644 --- a/src/core/features/collections/collections.component.ts +++ b/src/core/features/collections/collections.ts @@ -1,55 +1,68 @@ -import { Component, computed, inject, input, viewChild } from '@angular/core'; -import { Router } from '@angular/router'; -import { HashMap, provideTranslocoScope, Translation, TranslocoPipe } from '@jsverse/transloco'; -import { Basket, buildQuery, DrawerStackService, UserSettingsStore } from '@sinequa/atomic-angular'; -import { ManageCollectionsDialog } from './manage-collections'; -import { Query } from '@sinequa/atomic'; -import { DeleteCollectionDialog } from './delete-collection'; - -const loader = ['en', 'fr'].reduce( - (acc, lang) => { - acc[lang] = () => import(`./i18n/${lang}.json`); - return acc; - }, - {} as HashMap<() => Promise> -); - -@Component({ - selector: 'app-collections', - standalone: true, - imports: [TranslocoPipe, ManageCollectionsDialog, DeleteCollectionDialog], - templateUrl: './collections.component.html', - providers: [provideTranslocoScope({ scope: 'collection', loader })] -}) -export class CollectionsComponent { - showButtons = input(true); - - private readonly userSettingsStore = inject(UserSettingsStore); - private readonly drawerStack = inject(DrawerStackService); - private readonly router = inject(Router); - - protected collections = computed(() => this.userSettingsStore.baskets()); - - readonly manageCollectionsDialog = viewChild(ManageCollectionsDialog); - readonly deleteCollectionDialog = viewChild(DeleteCollectionDialog); - - query: Query; - - constructor() { - this.query = buildQuery(); - } - - onClick(collection: Basket): void { - this.drawerStack.closeAll(); - this.router.navigate(['/search'], { queryParams: { b: collection.name } }); - } - - public onDelete(collection: Basket, index: number, e: Event) { - e.stopPropagation(); - this.deleteCollectionDialog()?.showModal(collection, index); - } - - manageCollections(): void { - this.manageCollectionsDialog()?.showModal(); - } -} +import { Component, computed, inject, input, viewChild } from '@angular/core'; +import { Router } from '@angular/router'; +import { HashMap, provideTranslocoScope, Translation, TranslocoPipe } from '@jsverse/transloco'; +import { Query } from '@sinequa/atomic'; +import { + Basket, + buildQuery, + ButtonComponent, + DialogService, + DrawerStackService, + MenuItemComponent, + MenuSeparatorComponent, + PopoverComponent, + UserSettingsStore +} from '@sinequa/atomic-angular'; +import { DeleteCollectionDialog } from './collections-delete.dialog'; +import { ManageCollectionsDialog } from './collections-manage.dialog'; + +const loader = ['en', 'fr'].reduce( + (acc, lang) => { + acc[lang] = () => import(`./i18n/${lang}.json`); + return acc; + }, + {} as HashMap<() => Promise> +); + +@Component({ + selector: 'app-collections', + standalone: true, + imports: [TranslocoPipe, MenuSeparatorComponent, DeleteCollectionDialog, ButtonComponent, MenuItemComponent], + templateUrl: './collections.html', + providers: [provideTranslocoScope({ scope: 'collection', loader })] +}) +export class CollectionsComponent { + showButtons = input(true); + floating = inject(PopoverComponent, { skipSelf: true, optional: true }); + modal = inject(DialogService); + + private readonly userSettingsStore = inject(UserSettingsStore); + private readonly drawerStack = inject(DrawerStackService); + private readonly router = inject(Router); + + protected collections = computed(() => this.userSettingsStore.baskets()); + + readonly manageCollectionsDialog = viewChild(ManageCollectionsDialog); + readonly deleteCollectionDialog = viewChild(DeleteCollectionDialog); + + query: Query; + + constructor() { + this.query = buildQuery(); + } + + onClick(collection: Basket): void { + this.drawerStack.closeAll(); + this.router.navigate(['/search'], { queryParams: { b: collection.name } }); + } + + public onDelete(collection: Basket, index: number, e: Event) { + e.stopPropagation(); + this.deleteCollectionDialog()?.showModal(collection, index); + } + + manageCollections(): void { + this.floating?.close(); + this.modal.open(ManageCollectionsDialog).then(v => console.log('result', v)); + } +} diff --git a/src/core/features/dialog/i18n/en.json b/src/core/features/dialogs/i18n/en.json similarity index 61% rename from src/core/features/dialog/i18n/en.json rename to src/core/features/dialogs/i18n/en.json index 2f487203..b69d9829 100644 --- a/src/core/features/dialog/i18n/en.json +++ b/src/core/features/dialogs/i18n/en.json @@ -1,21 +1,13 @@ -{ - "overrideUser": { - "title": "Override User", - "domainToOverride": "Domain to override", - "usernameToOverride": "Username to override", - "override": "Override" - }, - "resetUserSettings": { - "title": "Reset User Settings", - "message": "You are about to reset ALL your user data (recent queries, collections, alerts, preferences, etc.). Do you want to continue?", - "success": "User settings have been reset successfully." - }, - "editLabels": { - "title": "Add / Edit labels", - "info": "Press 'Enter' to add a new label that does not exist in the suggestions", - "startTyping": "Start typing labels...", - "publicLabels": "Public labels", - "privateLabels": "Private labels", - "close": "Close" - } -} +{ + "overrideUser": { + "title": "Override User", + "domainToOverride": "Domain to override", + "usernameToOverride": "Username to override", + "override": "Override" + }, + "resetUserSettings": { + "title": "Reset User Settings", + "message": "You are about to reset ALL your user data (recent queries, collections, alerts, preferences, etc.). Do you want to continue?", + "success": "User settings have been reset successfully." + } +} diff --git a/src/core/features/dialog/i18n/fr.json b/src/core/features/dialogs/i18n/fr.json similarity index 62% rename from src/core/features/dialog/i18n/fr.json rename to src/core/features/dialogs/i18n/fr.json index 3a0ceb58..3094076e 100644 --- a/src/core/features/dialog/i18n/fr.json +++ b/src/core/features/dialogs/i18n/fr.json @@ -1,21 +1,13 @@ -{ - "overrideUser": { - "title": "Surcharger l'utilisateur", - "domainToOverride": "Domaine à surcharger", - "usernameToOverride": "Nom d'utilisateur à surcharger", - "override": "Surcharger" - }, - "resetUserSettings": { - "title": "Réinitialiser les paramètres de l'utilisateur", - "message": "Vous êtes sur le point de réinitialiser TOUTES vos données utilisateur (requêtes récentes, collections, alertes, préférences, etc.). Voulez-vous continuer ?", - "success": "Paramètres de l'utilisateur réinitialisés avec succès." - }, - "editLabels": { - "title": "Ajout / Modification des labels", - "info": "Appuyez sur 'Entrée' pour ajouter un nouveau label qui n'existe pas dans les suggestions", - "startTyping": "Commencez à écrire un label...", - "publicLabels": "Labels publics", - "privateLabels": "Labels privés", - "close": "Fermer" - } -} +{ + "overrideUser": { + "title": "Surcharger l'utilisateur", + "domainToOverride": "Domaine à surcharger", + "usernameToOverride": "Nom d'utilisateur à surcharger", + "override": "Surcharger" + }, + "resetUserSettings": { + "title": "Réinitialiser les paramètres de l'utilisateur", + "message": "Vous êtes sur le point de réinitialiser TOUTES vos données utilisateur (requêtes récentes, collections, alertes, préférences, etc.). Voulez-vous continuer ?", + "success": "Paramètres de l'utilisateur réinitialisés avec succès." + } +} diff --git a/src/core/features/dialog/override-user.ts b/src/core/features/dialogs/override-user.dialog.ts similarity index 75% rename from src/core/features/dialog/override-user.ts rename to src/core/features/dialogs/override-user.dialog.ts index eb656856..83bccf63 100644 --- a/src/core/features/dialog/override-user.ts +++ b/src/core/features/dialogs/override-user.dialog.ts @@ -1,125 +1,144 @@ -import { Component, ElementRef, inject, model, viewChild } from '@angular/core'; -import { FormsModule } from '@angular/forms'; -import { HashMap, provideTranslocoScope, Translation, TranslocoPipe } from '@jsverse/transloco'; -import { getState } from '@ngrx/signals'; -import { toast } from 'ngx-sonner'; - -import { globalConfig, login, setGlobalConfig } from '@sinequa/atomic'; -import { ApplicationService, PrincipalStore } from '@sinequa/atomic-angular'; - -const loader = ['en', 'fr'].reduce( - (acc, lang) => { - acc[lang] = () => import(`./i18n/${lang}.json`); - return acc; - }, - {} as HashMap<() => Promise> -); - -@Component({ - selector: 'override-user-dialog', - standalone: true, - imports: [FormsModule, TranslocoPipe], - providers: [provideTranslocoScope({ scope: 'dialog', loader })], - template: ` - -
      -

      {{ 'dialog.overrideUser.title' | transloco }}

      -
      - - - - - -
      - - - -
      -
      -
      - ` -}) -export class OverrideUserDialogComponent { - readonly dialog = viewChild('dialog'); - - private readonly appService = inject(ApplicationService); - private readonly principalStore = inject(PrincipalStore); - - readonly overrideUser = model<{ username: string; domain: string }>({ username: '', domain: '' }); - - showModal() { - this.dialog()!.nativeElement.showModal(); - } - - override() { - if (!!this.overrideUser().domain && !!this.overrideUser().username) { - this.handleOverrideUser(this.overrideUser().username, this.overrideUser().domain); - this.dialog()!.nativeElement.close(); - } - } - - handleOverrideUser(username?: string, domain?: string) { - const { useSSO } = globalConfig; - - if (username === undefined || domain === undefined) { - setGlobalConfig({ userOverrideActive: false, userOverride: undefined }); - } else { - setGlobalConfig({ userOverrideActive: true, userOverride: { username, domain } }); - } - - // Login with the new user - if (useSSO) { - this.appService - .init() - .then(() => { - const { fullName } = getState(this.principalStore).principal; - toast(`Welcome back ${fullName}!`, { duration: 2000 }); - }) - .catch(error => { - toast.error('An error occured while overriding (SSO - intialize)', { duration: 2000 }); - setGlobalConfig({ userOverrideActive: false, userOverride: undefined }); - }); - } else { - login() - .then(value => { - if (value) { - this.appService - .init() - .then(() => { - const { fullName } = getState(this.principalStore).principal; - toast(`Welcome back ${fullName}!`, { duration: 2000 }); - }) - .catch(error => { - toast.error('An error occured while overriding (initialize)', { duration: 2000 }); - setGlobalConfig({ userOverrideActive: false, userOverride: undefined }); - }); - } - }) - .catch(error => { - toast.error('An error occured while overriding (login)', { duration: 2000 }); - setGlobalConfig({ userOverrideActive: false, userOverride: undefined }); - }); - } - } -} +import { Component, inject, model, viewChild } from '@angular/core'; +import { FormsModule } from '@angular/forms'; +import { HashMap, provideTranslocoScope, Translation, TranslocoPipe } from '@jsverse/transloco'; +import { getState } from '@ngrx/signals'; +import { toast } from 'ngx-sonner'; + +import { globalConfig, login, setGlobalConfig } from '@sinequa/atomic'; +import { + ApplicationService, + ButtonComponent, + DialogComponent, + DialogContentComponent, + DialogFooterComponent, + DialogHeaderComponent, + DialogTitleComponent, + PrincipalStore +} from '@sinequa/atomic-angular'; + +const loader = ['en', 'fr'].reduce( + (acc, lang) => { + acc[lang] = () => import(`./i18n/${lang}.json`); + return acc; + }, + {} as HashMap<() => Promise> +); + +@Component({ + selector: 'override-user-dialog', + standalone: true, + imports: [ + FormsModule, + ButtonComponent, + DialogComponent, + DialogContentComponent, + DialogTitleComponent, + DialogHeaderComponent, + DialogFooterComponent, + TranslocoPipe + ], + providers: [provideTranslocoScope({ scope: 'dialog', loader })], + template: ` + + + {{ 'dialog.overrideUser.title' | transloco }} + + + + + + + + + + + + + + + ` +}) +export class OverrideUserDialogComponent { + readonly dialog = viewChild(DialogComponent); + + private readonly appService = inject(ApplicationService); + private readonly principalStore = inject(PrincipalStore); + + readonly overrideUser = model<{ username: string; domain: string }>({ username: '', domain: '' }); + + showModal() { + this.dialog()!.showModal(); + } + + override() { + if (!!this.overrideUser().domain && !!this.overrideUser().username) { + this.handleOverrideUser(this.overrideUser().username, this.overrideUser().domain); + this.dialog()!.close(); + } + } + + handleOverrideUser(username?: string, domain?: string) { + const { useSSO } = globalConfig; + + if (username === undefined || domain === undefined) { + setGlobalConfig({ userOverrideActive: false, userOverride: undefined }); + } else { + setGlobalConfig({ userOverrideActive: true, userOverride: { username, domain } }); + } + + // Login with the new user + if (useSSO) { + this.appService + .init() + .then(() => { + const { fullName } = getState(this.principalStore).principal; + toast(`Welcome back ${fullName}!`, { duration: 2000 }); + }) + .catch(error => { + toast.error('An error occured while overriding (SSO - intialize)', { duration: 2000 }); + setGlobalConfig({ userOverrideActive: false, userOverride: undefined }); + }); + } else { + login() + .then(value => { + if (value) { + this.appService + .init() + .then(() => { + const { fullName } = getState(this.principalStore).principal; + toast(`Welcome back ${fullName}!`, { duration: 2000 }); + }) + .catch(error => { + toast.error('An error occured while overriding (initialize)', { duration: 2000 }); + setGlobalConfig({ userOverrideActive: false, userOverride: undefined }); + }); + } + }) + .catch(error => { + toast.error('An error occured while overriding (login)', { duration: 2000 }); + setGlobalConfig({ userOverrideActive: false, userOverride: undefined }); + }); + } + } +} diff --git a/src/core/features/dialog/reset-user-settings.ts b/src/core/features/dialogs/reset-user-settings.dialog.ts similarity index 50% rename from src/core/features/dialog/reset-user-settings.ts rename to src/core/features/dialogs/reset-user-settings.dialog.ts index 4d94393d..b4901807 100644 --- a/src/core/features/dialog/reset-user-settings.ts +++ b/src/core/features/dialogs/reset-user-settings.dialog.ts @@ -1,57 +1,76 @@ -import { Component, ElementRef, inject, viewChild } from '@angular/core'; -import { FormsModule } from '@angular/forms'; -import { HashMap, provideTranslocoScope, Translation, TranslocoPipe, TranslocoService } from '@jsverse/transloco'; -import { UserSettingsStore } from '@sinequa/atomic-angular'; -import { toast } from 'ngx-sonner'; - -const loader = ['en', 'fr'].reduce( - (acc, lang) => { - acc[lang] = () => import(`./i18n/${lang}.json`); - return acc; - }, - {} as HashMap<() => Promise> -); - -@Component({ - selector: 'reset-user-settings-dialog', - standalone: true, - imports: [FormsModule, TranslocoPipe], - providers: [provideTranslocoScope({ scope: 'dialog', loader })], - template: ` - -
      -

      {{ 'dialog.resetUserSettings.title' | transloco }}

      -
      -

      {{ 'dialog.resetUserSettings.message' | transloco }}

      - -
      - - - -
      -
      -
      - ` -}) -export class ResetUserSettingsDialogComponent { - readonly dialog = viewChild('dialog'); - - private readonly userSettingsStore = inject(UserSettingsStore); - private readonly translocoService = inject(TranslocoService); - - showModal() { - this.dialog()!.nativeElement.showModal(); - } - - handleResetUserSettings() { - this.dialog()!.nativeElement.close(); - this.userSettingsStore.reset().then(() => { - const message = this.translocoService.translate('dialog.resetUserSettings.success'); - toast.success(message, { duration: 2000 }); - }); - } -} +import { Component, ElementRef, inject, viewChild } from '@angular/core'; +import { FormsModule } from '@angular/forms'; +import { HashMap, provideTranslocoScope, Translation, TranslocoPipe, TranslocoService } from '@jsverse/transloco'; +import { + ButtonComponent, + DialogComponent, + DialogContentComponent, + DialogFooterComponent, + DialogHeaderComponent, + DialogTitleComponent, + UserSettingsStore +} from '@sinequa/atomic-angular'; +import { toast } from 'ngx-sonner'; + +const loader = ['en', 'fr'].reduce( + (acc, lang) => { + acc[lang] = () => import(`./i18n/${lang}.json`); + return acc; + }, + {} as HashMap<() => Promise> +); + +@Component({ + selector: 'reset-user-settings-dialog', + standalone: true, + imports: [ + FormsModule, + ButtonComponent, + DialogComponent, + DialogTitleComponent, + DialogContentComponent, + DialogFooterComponent, + DialogHeaderComponent, + TranslocoPipe + ], + providers: [provideTranslocoScope({ scope: 'dialog', loader })], + template: ` + + + {{ 'dialog.resetUserSettings.title' | transloco }} + + + +

      {{ 'dialog.resetUserSettings.message' | transloco }}

      +
      + + + + + + +
      + ` +}) +export class ResetUserSettingsDialogComponent { + readonly dialog = viewChild(DialogComponent); + + private readonly userSettingsStore = inject(UserSettingsStore); + private readonly translocoService = inject(TranslocoService); + + showModal() { + this.dialog()!.showModal(); + } + + handleResetUserSettings() { + this.dialog()!.close(); + this.userSettingsStore.reset().then(() => { + const message = this.translocoService.translate('dialog.resetUserSettings.success'); + toast.success(message, { duration: 2000 }); + }); + } +} diff --git a/src/core/features/did-you-mean/did-you-mean.component.html b/src/core/features/did-you-mean/did-you-mean.component.html deleted file mode 100644 index 67aca376..00000000 --- a/src/core/features/did-you-mean/did-you-mean.component.html +++ /dev/null @@ -1,27 +0,0 @@ -@switch (spellingCorrectionMode()?.toLowerCase()) { - @case ('dymonly') { -

      - {{ 'didYouMean.didYouMean' | transloco }} - {{ correction() }} - ? -

      - } - @case ('correct') { -

      - {{ 'didYouMean.showingResultsFor' | transloco }} - {{ correction() }} - - . {{ 'didYouMean.searchInsteadFor' | transloco }} - {{ original() }} -

      - } - @case ('smart') { -

      - {{ 'didYouMean.showingResultsFor' | transloco }} - {{ original() }} - - and - {{ correction() }} -

      - } -} diff --git a/src/core/features/did-you-mean/did-you-mean.html b/src/core/features/did-you-mean/did-you-mean.html new file mode 100644 index 00000000..9e615e77 --- /dev/null +++ b/src/core/features/did-you-mean/did-you-mean.html @@ -0,0 +1,23 @@ +@switch (spellingCorrectionMode()?.toLowerCase()) { @case ('dymonly') { +

      + {{ 'didYouMean.didYouMean' | transloco }} + {{ correction() }} + ? +

      +} @case ('correct') { +

      + {{ 'didYouMean.showingResultsFor' | transloco }} + {{ correction() }} + + . {{ 'didYouMean.searchInsteadFor' | transloco }} + {{ original() }} +

      +} @case ('smart') { +

      + {{ 'didYouMean.showingResultsFor' | transloco }} + {{ original() }} + + and + {{ correction() }} +

      +} } diff --git a/src/core/features/did-you-mean/did-you-mean.component.ts b/src/core/features/did-you-mean/did-you-mean.ts similarity index 95% rename from src/core/features/did-you-mean/did-you-mean.component.ts rename to src/core/features/did-you-mean/did-you-mean.ts index 484abda4..3190b16e 100644 --- a/src/core/features/did-you-mean/did-you-mean.component.ts +++ b/src/core/features/did-you-mean/did-you-mean.ts @@ -1,49 +1,49 @@ -import { Component, computed, inject, input } from '@angular/core'; -import { Router, RouterModule } from '@angular/router'; -import { HashMap, Translation, TranslocoPipe, provideTranslocoScope } from '@jsverse/transloco'; - -import { Result } from '@sinequa/atomic'; -import { QueryParamsStore } from '@sinequa/atomic-angular'; - -const loader = ['en', 'fr'].reduce( - (acc, lang) => { - acc[lang] = () => import(`./i18n/${lang}.json`); - return acc; - }, - {} as HashMap<() => Promise> -); - -@Component({ - selector: 'app-did-you-mean', - standalone: true, - imports: [RouterModule, TranslocoPipe], - templateUrl: './did-you-mean.component.html', - styles: [ - ` - :host { - display: block; - } - ` - ], - providers: [provideTranslocoScope({ scope: 'did-you-mean', loader })] -}) -export class DidYouMeanComponent { - result = input(); - - protected spellingCorrectionMode = computed(() => this.result()?.didYouMean?.spellingCorrectionMode); - protected correction = computed(() => this.result()?.didYouMean?.text.corrected); - protected original = computed(() => this.result()?.didYouMean?.text.original); - - readonly router = inject(Router); - private readonly queryParamsStore = inject(QueryParamsStore); - - selectCorrected(): void { - this.queryParamsStore.patch({ spellingCorrectionMode: 'dymonly', text: this.correction()! }); - this.router.navigate([], { queryParamsHandling: 'merge', queryParams: { c: 'dymonly', q: this.correction() } }); - } - - selectOriginal(): void { - this.queryParamsStore.patch({ spellingCorrectionMode: 'dymonly' }); - this.router.navigate([], { queryParamsHandling: 'merge', queryParams: { c: 'dymonly', q: this.original() } }); - } -} +import { Component, computed, inject, input } from '@angular/core'; +import { Router, RouterModule } from '@angular/router'; +import { HashMap, Translation, TranslocoPipe, provideTranslocoScope } from '@jsverse/transloco'; + +import { Result } from '@sinequa/atomic'; +import { QueryParamsStore } from '@sinequa/atomic-angular'; + +const loader = ['en', 'fr'].reduce( + (acc, lang) => { + acc[lang] = () => import(`./i18n/${lang}.json`); + return acc; + }, + {} as HashMap<() => Promise> +); + +@Component({ + selector: 'app-did-you-mean', + standalone: true, + imports: [RouterModule, TranslocoPipe], + templateUrl: './did-you-mean.html', + styles: [ + ` + :host { + display: block; + } + ` + ], + providers: [provideTranslocoScope({ scope: 'did-you-mean', loader })] +}) +export class DidYouMeanComponent { + result = input(); + + protected spellingCorrectionMode = computed(() => this.result()?.didYouMean?.spellingCorrectionMode); + protected correction = computed(() => this.result()?.didYouMean?.text.corrected); + protected original = computed(() => this.result()?.didYouMean?.text.original); + + readonly router = inject(Router); + private readonly queryParamsStore = inject(QueryParamsStore); + + selectCorrected(): void { + this.queryParamsStore.patch({ spellingCorrectionMode: 'dymonly', text: this.correction()! }); + this.router.navigate([], { queryParamsHandling: 'merge', queryParams: { c: 'dymonly', q: this.correction() } }); + } + + selectOriginal(): void { + this.queryParamsStore.patch({ spellingCorrectionMode: 'dymonly' }); + this.router.navigate([], { queryParamsHandling: 'merge', queryParams: { c: 'dymonly', q: this.original() } }); + } +} diff --git a/src/core/features/labels/i18n/en.json b/src/core/features/labels/i18n/en.json new file mode 100644 index 00000000..a21a6668 --- /dev/null +++ b/src/core/features/labels/i18n/en.json @@ -0,0 +1,10 @@ +{ + "editLabels": { + "title": "Add / Edit labels", + "info": "Press 'Enter' to add a new label that does not exist in the suggestions", + "startTyping": "Start typing labels...", + "publicLabels": "Public labels", + "privateLabels": "Private labels", + "close": "Close" + } +} diff --git a/src/core/features/labels/i18n/fr.json b/src/core/features/labels/i18n/fr.json new file mode 100644 index 00000000..a61b80b9 --- /dev/null +++ b/src/core/features/labels/i18n/fr.json @@ -0,0 +1,10 @@ +{ + "editLabels": { + "title": "Ajout / Modification des labels", + "info": "Appuyez sur 'Entrée' pour ajouter un nouveau label qui n'existe pas dans les suggestions", + "startTyping": "Commencez à écrire un label...", + "publicLabels": "Labels publics", + "privateLabels": "Labels privés", + "close": "Fermer" + } +} diff --git a/src/core/features/dialog/labels/edit-labels.ts b/src/core/features/labels/labels-edit.dialog.ts similarity index 68% rename from src/core/features/dialog/labels/edit-labels.ts rename to src/core/features/labels/labels-edit.dialog.ts index cf2f182c..a57ece54 100644 --- a/src/core/features/dialog/labels/edit-labels.ts +++ b/src/core/features/labels/labels-edit.dialog.ts @@ -1,81 +1,101 @@ -import { Component, ElementRef, inject, input, OnDestroy, signal, viewChild } from '@angular/core'; -import { FormsModule } from '@angular/forms'; -import { HashMap, provideTranslocoScope, Translation, TranslocoPipe } from '@jsverse/transloco'; -import { Subscription } from 'rxjs'; - -import { Article } from '@sinequa/atomic'; -import { LabelsConfig, LabelService } from '@sinequa/atomic-angular'; - -import { LabelsFormComponent } from './labels-form'; - -const loader = ['en', 'fr'].reduce( - (acc, lang) => { - acc[lang] = () => import(`../i18n/${lang}.json`); - return acc; - }, - {} as HashMap<() => Promise> -); - -@Component({ - selector: 'edit-labels-dialog', - standalone: true, - imports: [FormsModule, TranslocoPipe, LabelsFormComponent], - providers: [provideTranslocoScope({ scope: 'dialog', loader })], - template: ` - -
      -

      {{ 'dialog.editLabels.title' | transloco }}

      -
      - -
      - INFO{{ 'dialog.editLabels.info' | transloco }} -
      - - @if (!!labelsConfig()?.publicLabelsField) { -
      -

      {{ 'dialog.editLabels.publicLabels' | transloco }}

      - @if (labelsConfig()!.allowPublicLabelsCreation) { - - } -
      - } - @if (!!labelsConfig()?.privateLabelsField) { -
      -

      {{ 'dialog.editLabels.privateLabels' | transloco }}

      - -
      - } - -
      - -
      -
      -
      - ` -}) -export class EditLabelsComponent implements OnDestroy { - public readonly article = input.required
      (); - - labelService = inject(LabelService); - - readonly dialog = viewChild('dialog'); - - protected readonly subscriptions = new Subscription(); - public readonly labelsConfig = signal(undefined); - - showModal() { - this.dialog()!.nativeElement.showModal(); - - this.subscriptions.add(this.labelService.getLabelsConfig().subscribe(config => this.labelsConfig.set(config))); - } - - ngOnDestroy(): void { - this.subscriptions.unsubscribe(); - } -} +import { Component, ElementRef, inject, input, OnDestroy, signal, viewChild } from '@angular/core'; +import { FormsModule } from '@angular/forms'; +import { HashMap, provideTranslocoScope, Translation, TranslocoPipe } from '@jsverse/transloco'; +import { Subscription } from 'rxjs'; + +import { Article } from '@sinequa/atomic'; +import { + ButtonComponent, + DialogComponent, + DialogContentComponent, + DialogFooterComponent, + DialogHeaderComponent, + DialogTitleComponent, + LabelsConfig, + LabelService +} from '@sinequa/atomic-angular'; + +import { LabelsFormComponent } from './labels-form'; + +const loader = ['en', 'fr'].reduce( + (acc, lang) => { + acc[lang] = () => import(`./i18n/${lang}.json`); + return acc; + }, + {} as HashMap<() => Promise> +); + +@Component({ + selector: 'labels-edit-dialog, labelseditdialog, LabelsEditDialog', + standalone: true, + imports: [ + FormsModule, + TranslocoPipe, + ButtonComponent, + DialogComponent, + DialogHeaderComponent, + DialogFooterComponent, + DialogTitleComponent, + DialogContentComponent, + LabelsFormComponent + ], + providers: [provideTranslocoScope({ scope: 'dialog', loader })], + template: ` + + + {{ 'dialog.editLabels.title' | transloco }} + + + +
      + INFO{{ 'dialog.editLabels.info' | transloco }} +
      + + @if (!!labelsConfig()?.publicLabelsField) { +
      +

      {{ 'dialog.editLabels.publicLabels' | transloco }}

      + @if (labelsConfig()!.allowPublicLabelsCreation) { + + } +
      + } + @if (!!labelsConfig()?.privateLabelsField) { +
      +

      {{ 'dialog.editLabels.privateLabels' | transloco }}

      + +
      + } +
      + + + + +
      + ` +}) +export class LabelsEditComponent implements OnDestroy { + public readonly article = input.required
      (); + + labelService = inject(LabelService); + + readonly dialog = viewChild('dialog'); + + protected readonly subscriptions = new Subscription(); + public readonly labelsConfig = signal(undefined); + + showModal() { + this.dialog()!.nativeElement.showModal(); + + this.subscriptions.add(this.labelService.getLabelsConfig().subscribe(config => this.labelsConfig.set(config))); + } + + ngOnDestroy(): void { + this.subscriptions.unsubscribe(); + } +} diff --git a/src/core/features/dialog/labels/labels-form.ts b/src/core/features/labels/labels-form.ts similarity index 96% rename from src/core/features/dialog/labels/labels-form.ts rename to src/core/features/labels/labels-form.ts index 3ae351e9..02cbade9 100644 --- a/src/core/features/dialog/labels/labels-form.ts +++ b/src/core/features/labels/labels-form.ts @@ -1,157 +1,157 @@ -import { NgStyle } from '@angular/common'; -import { afterRender, Component, computed, effect, ElementRef, input, signal, viewChild } from '@angular/core'; -import { FormsModule } from '@angular/forms'; -import { TranslocoPipe } from '@jsverse/transloco'; -import { Article, fetchLabels, guid, labels } from '@sinequa/atomic'; -import { debouncedSignal } from '@sinequa/atomic-angular'; - -const DEBOUNCE_DELAY = 300; - -@Component({ - selector: 'labels-form', - standalone: true, - imports: [FormsModule, NgStyle, TranslocoPipe], - template: ` -
      - -
      - -
      -
      -
      - @for (label of labels(); track $index) { - - {{ label }} - @if (allowModification()) { - - } - - } -
      - `, - styles: ` - .anchor { - &:has(.popover:popover-open) { - z-index: 5000; - border-radius: theme('borderRadius.DEFAULT') theme('borderRadius.DEFAULT') 0 0; - } - - .popover::backdrop { - background-color: transparent; - backdrop-filter: none; - } - } - - .popover { - /* Select Firefox */ - @supports (-moz-appearance: none) { - margin: calc(33.3333333333vh + 30px) 25vw; - width: 50vw; - } - - /* Select Safari */ - @supports (background: -webkit-named-image(i)) { - margin: calc(33.3333333333vh + 30px) 25vw; - width: 50vw; - } - - width: anchor-size(width); - top: anchor(bottom); - left: anchor(left); - padding: 0; - border-radius: 6px; - } - ` -}) -export class LabelsFormComponent { - article = input.required
      (); - isPublic = input(false); - allowModification = input(false); - labelsField = input(); - - anchor = signal(`--${guid()}`); - suggestedLabels = signal([]); - - labelInput = signal(''); - debouncedLabelInput = debouncedSignal(this.labelInput, DEBOUNCE_DELAY); - - popover = viewChild('LabelsPopover'); - popoverElement = computed(() => this.popover()?.nativeElement); - - labels = signal([]); - - constructor() { - afterRender(() => { - this.popoverElement().style.positionAnchor = this.anchor(); - }); - - effect( - () => { - this.labels.set((this.article()[this.labelsField()! as keyof Article] as string[]) || []); - }, - { allowSignalWrites: true } - ); - - effect(() => { - this.fetchLabels(this.debouncedLabelInput(), this.isPublic()); - }); - } - - itemClicked(label: string) { - this.addLabel(label, this.isPublic()); - } - - onInputClick() { - if (this.suggestedLabels().length === 0) return; - this.popoverElement().showPopover(); - } - - onKeyDown(event: KeyboardEvent) { - if (event.key === 'Enter') { - this.addLabel(this.labelInput(), this.isPublic()); - } - } - - async fetchLabels(text: string, isPublic: boolean) { - const labels = await fetchLabels(text, isPublic); - const unappliedLabels = labels.filter(label => !this.labels().some(l => l === label)); - this.suggestedLabels.set(unappliedLabels); - labels.length ? this.popoverElement().showPopover() : this.popoverElement().hidePopover(); - } - - async addLabel(label: string, isPublic: boolean) { - const l = this.labels(); - this.labels.set([...l, label]); - await labels.add([label], [this.article().id], isPublic); - this.labelInput.set(''); - this.suggestedLabels.set([]); - } - - async removeLabel(label: string, isPublic: boolean) { - this.labels.set(this.labels().filter(l => l !== label)); - await labels.remove([label], [this.article().id], isPublic); - } -} +import { NgStyle } from '@angular/common'; +import { afterRender, Component, computed, effect, ElementRef, input, signal, viewChild } from '@angular/core'; +import { FormsModule } from '@angular/forms'; +import { TranslocoPipe } from '@jsverse/transloco'; +import { Article, fetchLabels, guid, labels } from '@sinequa/atomic'; +import { debouncedSignal } from '@sinequa/atomic-angular'; + +const DEBOUNCE_DELAY = 300; + +@Component({ + selector: 'labels-form, labelsform, LabelsForm', + standalone: true, + imports: [FormsModule, NgStyle, TranslocoPipe], + template: ` +
      + +
      + +
      +
      +
      + @for (label of labels(); track $index) { + + {{ label }} + @if (allowModification()) { + + } + + } +
      + `, + styles: ` + .anchor { + &:has(.popover:popover-open) { + z-index: 5000; + border-radius: theme('borderRadius.DEFAULT') theme('borderRadius.DEFAULT') 0 0; + } + + .popover::backdrop { + background-color: transparent; + backdrop-filter: none; + } + } + + .popover { + /* Select Firefox */ + @supports (-moz-appearance: none) { + margin: calc(33.3333333333vh + 30px) 25vw; + width: 50vw; + } + + /* Select Safari */ + @supports (background: -webkit-named-image(i)) { + margin: calc(33.3333333333vh + 30px) 25vw; + width: 50vw; + } + + width: anchor-size(width); + top: anchor(bottom); + left: anchor(left); + padding: 0; + border-radius: 6px; + } + ` +}) +export class LabelsFormComponent { + article = input.required
      (); + isPublic = input(false); + allowModification = input(false); + labelsField = input(); + + anchor = signal(`--${guid()}`); + suggestedLabels = signal([]); + + labelInput = signal(''); + debouncedLabelInput = debouncedSignal(this.labelInput, DEBOUNCE_DELAY); + + popover = viewChild('LabelsPopover'); + popoverElement = computed(() => this.popover()?.nativeElement); + + labels = signal([]); + + constructor() { + afterRender(() => { + this.popoverElement().style.positionAnchor = this.anchor(); + }); + + effect( + () => { + this.labels.set((this.article()[this.labelsField()! as keyof Article] as string[]) || []); + }, + { allowSignalWrites: true } + ); + + effect(() => { + this.fetchLabels(this.debouncedLabelInput(), this.isPublic()); + }); + } + + itemClicked(label: string) { + this.addLabel(label, this.isPublic()); + } + + onInputClick() { + if (this.suggestedLabels().length === 0) return; + this.popoverElement().showPopover(); + } + + onKeyDown(event: KeyboardEvent) { + if (event.key === 'Enter') { + this.addLabel(this.labelInput(), this.isPublic()); + } + } + + async fetchLabels(text: string, isPublic: boolean) { + const labels = await fetchLabels(text, isPublic); + const unappliedLabels = labels.filter(label => !this.labels().some(l => l === label)); + this.suggestedLabels.set(unappliedLabels); + labels.length ? this.popoverElement().showPopover() : this.popoverElement().hidePopover(); + } + + async addLabel(label: string, isPublic: boolean) { + const l = this.labels(); + this.labels.set([...l, label]); + await labels.add([label], [this.article().id], isPublic); + this.labelInput.set(''); + this.suggestedLabels.set([]); + } + + async removeLabel(label: string, isPublic: boolean) { + this.labels.set(this.labels().filter(l => l !== label)); + await labels.remove([label], [this.article().id], isPublic); + } +} diff --git a/src/core/features/recent-searches/recent-search.component.ts b/src/core/features/recent-searches/recent-search.ts similarity index 59% rename from src/core/features/recent-searches/recent-search.component.ts rename to src/core/features/recent-searches/recent-search.ts index bb20f8b4..d710d248 100644 --- a/src/core/features/recent-searches/recent-search.component.ts +++ b/src/core/features/recent-searches/recent-search.ts @@ -1,26 +1,26 @@ -import { Component, computed, inject, input, output } from "@angular/core"; -import { Router, RouterLink } from "@angular/router"; -import { TranslocoPipe, TranslocoService } from "@jsverse/transloco"; +import { Component, computed, inject, input, output } from '@angular/core'; +import { Router, RouterLink } from '@angular/router'; +import { TranslocoPipe, TranslocoService } from '@jsverse/transloco'; -import { getRelativeDate, QueryParams } from "@sinequa/atomic"; -import { RecentSearch } from "@sinequa/atomic-angular"; +import { getRelativeDate, QueryParams } from '@sinequa/atomic'; +import { MenuItemComponent, RecentSearch } from '@sinequa/atomic-angular'; -import { countFilters, wrapFiltersToArray } from "./utils"; +import { countFilters, wrapFiltersToArray } from './utils'; @Component({ selector: 'RecentSearch', standalone: true, - imports: [RouterLink, TranslocoPipe], + imports: [RouterLink, TranslocoPipe, MenuItemComponent], template: `
    • - + (keydown.enter)="onKeyDown()"> +

      {{ recentSearch().display || recentSearch().label }}

      @@ -28,26 +28,25 @@ import { countFilters, wrapFiltersToArray } from "./utils"; } @if (recentSearch().date) { -

      +

      {{ getRelativeDate(transloco.getActiveLang(), recentSearch().date) }}

      }
    • -` + ` }) export class RecentSearchComponent { protected readonly getRelativeDate = getRelativeDate; @@ -56,7 +55,7 @@ export class RecentSearchComponent { recentSearch = input.required(); queryParams = computed(() => { - const { text, filters = [], tab, page, queryName } = this.recentSearch().queryParams || {} as QueryParams; + const { text, filters = [], tab, page, queryName } = this.recentSearch().queryParams || ({} as QueryParams); const wrapped = wrapFiltersToArray(filters) ?? []; const queryParams = { @@ -73,7 +72,6 @@ export class RecentSearchComponent { protected readonly transloco = inject(TranslocoService); private readonly router = inject(Router); - onKeyDown() { // this.queryParamsStore.setFromUrl(queryParams); this.router.navigate([this.recentSearch().path], { queryParams: this.queryParams() }); diff --git a/src/core/features/recent-searches/recent-searches.component.ts b/src/core/features/recent-searches/recent-searches.ts similarity index 67% rename from src/core/features/recent-searches/recent-searches.component.ts rename to src/core/features/recent-searches/recent-searches.ts index 5c779d45..32e4f6d7 100644 --- a/src/core/features/recent-searches/recent-searches.component.ts +++ b/src/core/features/recent-searches/recent-searches.ts @@ -1,96 +1,95 @@ -import { Component, computed, inject, signal } from '@angular/core'; -import { RouterModule } from '@angular/router'; -import { HashMap, provideTranslocoScope, Translation, TranslocoPipe, TranslocoService } from '@jsverse/transloco'; -import { toast } from 'ngx-sonner'; - -import { getRelativeDate } from '@sinequa/atomic'; -import { RecentSearch, UserSettingsStore } from '@sinequa/atomic-angular'; - -import { RecentSearchComponent } from "./recent-search.component"; - -const loader = ['en', 'fr'].reduce( - (acc, lang) => { - acc[lang] = () => import(`./i18n/${lang}.json`); - return acc; - }, - {} as HashMap<() => Promise> -); - -const RECENT_SEARCHES_ITEMS_PER_PAGE = 10; - -@Component({ - selector: 'RecentSearches', - standalone: true, - imports: [RouterModule, TranslocoPipe, RecentSearchComponent], - template: ` -
        - @for (recentSearch of paginatedRecentSearches(); track $index) { - - } - - @empty { -
      • - {{ 'recentSearches.noRecentSearches' | transloco }} -
      • - } -
      - -
      - @if (hasMore()) { - - } - - - {{ 'seeMore' | transloco }} - -
      - `, - host: { - class: 'block max-h-[460px]' - }, - styles: ` - :host { - scrollbar-width: thin; - } - `, - providers: [provideTranslocoScope({ scope: 'recent-searches', loader })] -}) -export class RecentSearchesComponent { - private readonly userSettingsStore = inject(UserSettingsStore); - protected readonly transloco = inject(TranslocoService); - - protected readonly range = signal(RECENT_SEARCHES_ITEMS_PER_PAGE); - protected readonly recentSearches = computed(() => this.userSettingsStore.recentSearches()); - protected readonly paginatedRecentSearches = computed(() => this.recentSearches().slice(0, this.range())); - protected readonly hasMore = computed(() => this.recentSearches().length > 0 && this.range() < this.recentSearches().length); - - protected readonly getRelativeDate = getRelativeDate; - - /** - * Deletes a recent search item at the specified index. - * @param index - The index of the item to delete. - * @param e - The event object. - */ - async remove(index: number, e: Event) { - e.stopPropagation(); - await this.userSettingsStore.deleteRecentSearch(index); - toast.success('Recent search deleted'); - } - - loadMore(e: Event) { - e.stopPropagation(); - this.range.set(this.range() + RECENT_SEARCHES_ITEMS_PER_PAGE); - } -} +import { Component, computed, inject, signal } from '@angular/core'; +import { RouterModule } from '@angular/router'; +import { HashMap, provideTranslocoScope, Translation, TranslocoPipe, TranslocoService } from '@jsverse/transloco'; +import { toast } from 'ngx-sonner'; + +import { getRelativeDate } from '@sinequa/atomic'; +import { ButtonComponent, MenuSeparatorComponent, PopoverContentComponent, RecentSearch, UserSettingsStore } from '@sinequa/atomic-angular'; + +import { RecentSearchComponent } from './recent-search'; + +const loader = ['en', 'fr'].reduce( + (acc, lang) => { + acc[lang] = () => import(`./i18n/${lang}.json`); + return acc; + }, + {} as HashMap<() => Promise> +); + +const RECENT_SEARCHES_ITEMS_PER_PAGE = 10; + +@Component({ + selector: 'RecentSearches', + standalone: true, + imports: [RouterModule, TranslocoPipe, MenuSeparatorComponent, RecentSearchComponent, ButtonComponent], + template: ` +
      + @if (floating) { + + + } +
      + +
        + @for (recentSearch of paginatedRecentSearches(); track $index) { + + + } @empty { +
      • + {{ 'recentSearches.noRecentSearches' | transloco }} +
      • + } +
      + +
      + @if (hasMore()) { + + } + + +
      + `, + styles: [ + ` + :host { + ul { + scrollbar-width: thin; + } + } + ` + ], + providers: [provideTranslocoScope({ scope: 'recent-searches', loader })] +}) +export class RecentSearchesComponent { + floating = inject(PopoverContentComponent, { skipSelf: true, optional: true }); + + private readonly userSettingsStore = inject(UserSettingsStore); + protected readonly transloco = inject(TranslocoService); + + protected readonly range = signal(RECENT_SEARCHES_ITEMS_PER_PAGE); + protected readonly recentSearches = computed(() => this.userSettingsStore.recentSearches()); + protected readonly paginatedRecentSearches = computed(() => this.recentSearches().slice(0, this.range())); + protected readonly hasMore = computed(() => this.recentSearches().length > 0 && this.range() < this.recentSearches().length); + + protected readonly getRelativeDate = getRelativeDate; + + /** + * Deletes a recent search item at the specified index. + * @param index - The index of the item to delete. + * @param e - The event object. + */ + async remove(index: number, e: Event) { + e.stopPropagation(); + await this.userSettingsStore.deleteRecentSearch(index); + toast.success('Recent search deleted'); + } + + loadMore(e: Event) { + e.stopPropagation(); + this.range.set(this.range() + RECENT_SEARCHES_ITEMS_PER_PAGE); + } +} diff --git a/src/core/features/saved-searches/saved-searches.component.html b/src/core/features/saved-searches/saved-searches.component.html deleted file mode 100644 index e0b2ea4b..00000000 --- a/src/core/features/saved-searches/saved-searches.component.html +++ /dev/null @@ -1,46 +0,0 @@ -
        - @for (search of paginatedSearches(); track $index) { -
      • - - -

        {{ search.label }}

        - - @if ((search.filterCount ?? 0) > 0) { - - } - - @if (search.date) { -

        - {{ getRelativeDate(transloco.getActiveLang(), search.date) }} -

        - } - - -
      • - } @empty { -
      • - {{ 'savedSearches.noSavedSearches' | transloco }} -
      • - } -
      - -@if (hasMore()) { - -} diff --git a/src/core/features/saved-searches/saved-searches.component.scss b/src/core/features/saved-searches/saved-searches.component.scss deleted file mode 100644 index 595cf6ed..00000000 --- a/src/core/features/saved-searches/saved-searches.component.scss +++ /dev/null @@ -1,3 +0,0 @@ -:host { - scrollbar-width: thin; -} diff --git a/src/core/features/saved-searches/saved-searches.html b/src/core/features/saved-searches/saved-searches.html new file mode 100644 index 00000000..edb8dbef --- /dev/null +++ b/src/core/features/saved-searches/saved-searches.html @@ -0,0 +1,44 @@ +
      + @if(floating) { + + + } +
      + +
        + @for (search of paginatedSearches(); track $index) { +
      • + + +

        {{ search.label }}

        + + @if ((search.filterCount ?? 0) > 0) { + + } @if (search.date) { +

        {{ getRelativeDate(transloco.getActiveLang(), search.date) }}

        + } + + +
      • + } @empty { +
      • {{ 'savedSearches.noSavedSearches' | transloco }}
      • + } +
      +@if (hasMore()) { +
      + +
      +} diff --git a/src/core/features/saved-searches/saved-searches.component.ts b/src/core/features/saved-searches/saved-searches.ts similarity index 82% rename from src/core/features/saved-searches/saved-searches.component.ts rename to src/core/features/saved-searches/saved-searches.ts index 8f6f9d9e..8e8874a8 100644 --- a/src/core/features/saved-searches/saved-searches.component.ts +++ b/src/core/features/saved-searches/saved-searches.ts @@ -1,97 +1,110 @@ -import { NgClass } from '@angular/common'; -import { Component, computed, effect, inject, signal } from '@angular/core'; -import { Router } from '@angular/router'; -import { HashMap, provideTranslocoScope, Translation, TranslocoPipe, TranslocoService } from '@jsverse/transloco'; -import { toast } from 'ngx-sonner'; - -import { SavedSearch as S, SavedSearchesService } from '@sinequa/atomic-angular'; - -import { getQueryParamsFromUrl, getRelativeDate, QueryParams } from '@sinequa/atomic'; - -const SAVED_SEARCHES_ITEMS_PER_PAGE = 5; - -type SavedSearch = S & { - label: string; - filterCount?: number; - date?: string; - queryParams?: QueryParams; -}; - -const loader = ['en', 'fr'].reduce( - (acc, lang) => { - acc[lang] = () => import(`./i18n/${lang}.json`); - return acc; - }, - {} as HashMap<() => Promise> -); - -@Component({ - selector: 'app-saved-searches', - standalone: true, - imports: [NgClass, TranslocoPipe], - templateUrl: './saved-searches.component.html', - styleUrl: './saved-searches.component.scss', - // eslint-disable-next-line @angular-eslint/no-host-metadata-property - host: { - class: 'block overflow-auto max-h-[460px]' - }, - providers: [provideTranslocoScope({ scope: 'saved-searches', loader })] -}) -export class SavedSearchesComponent { - protected readonly range = signal(SAVED_SEARCHES_ITEMS_PER_PAGE); - protected readonly savedSearches = signal([]); - protected readonly paginatedSearches = computed(() => this.savedSearches().slice(0, this.range())); - protected readonly hasMore = computed(() => this.savedSearches().length > 0 && this.range() < this.savedSearches().length); - - protected readonly getRelativeDate = getRelativeDate; - - private readonly router = inject(Router); - private readonly savedSearchesService = inject(SavedSearchesService); - protected readonly transloco = inject(TranslocoService); - - constructor() { - effect( - () => { - const savedSearches = this.savedSearchesService.getSavedSearches(); - - this.savedSearches.set( - (savedSearches || []).reduce((acc, savedSearch) => { - const queryParams = getQueryParamsFromUrl(savedSearch.url); - - acc.push( - Object.assign(savedSearch, { - label: queryParams?.text || '', - filterCount: queryParams?.filters?.length || 0, - queryParams - }) - ); - - return acc; - }, [] as SavedSearch[]) - ); - }, - { allowSignalWrites: true } - ); - } - - public onClick(savedSearch: SavedSearch): void { - const queryParams = { - q: savedSearch.queryParams?.text - } as { q: string; f?: string }; - - if (savedSearch.queryParams?.filters && savedSearch.queryParams?.filters?.length > 0) queryParams.f = JSON.stringify(savedSearch.queryParams?.filters); - - this.router.navigate([savedSearch.queryParams?.path], { queryParams }); - } - - public async onDelete(index: number, e: Event) { - e.stopPropagation(); - await this.savedSearchesService.deleteSavedSearch(index); - toast.success('Saved search deleted'); - } - - public loadMore(e: Event): void { - e.stopPropagation(); - this.range.set(this.range() + SAVED_SEARCHES_ITEMS_PER_PAGE); - } -} +import { NgClass } from '@angular/common'; +import { Component, computed, effect, inject, signal } from '@angular/core'; +import { Router } from '@angular/router'; +import { HashMap, provideTranslocoScope, Translation, TranslocoPipe, TranslocoService } from '@jsverse/transloco'; +import { toast } from 'ngx-sonner'; + +import { + ButtonComponent, + MenuItemComponent, + MenuSeparatorComponent, + PopoverContentComponent, + SavedSearch as S, + SavedSearchesService +} from '@sinequa/atomic-angular'; + +import { getQueryParamsFromUrl, getRelativeDate, QueryParams } from '@sinequa/atomic'; + +const SAVED_SEARCHES_ITEMS_PER_PAGE = 5; + +type SavedSearch = S & { + label: string; + filterCount?: number; + date?: string; + queryParams?: QueryParams; +}; + +const loader = ['en', 'fr'].reduce( + (acc, lang) => { + acc[lang] = () => import(`./i18n/${lang}.json`); + return acc; + }, + {} as HashMap<() => Promise> +); + +@Component({ + selector: 'app-saved-searches', + standalone: true, + imports: [NgClass, TranslocoPipe, ButtonComponent, MenuSeparatorComponent, MenuItemComponent], + templateUrl: './saved-searches.html', + styles: [ + ` + :host { + ul { + scrollbar-width: thin; + } + } + ` + ], + providers: [provideTranslocoScope({ scope: 'saved-searches', loader })] +}) +export class SavedSearchesComponent { + floating = inject(PopoverContentComponent, { skipSelf: true, optional: true }); + + protected readonly range = signal(SAVED_SEARCHES_ITEMS_PER_PAGE); + protected readonly savedSearches = signal([]); + protected readonly paginatedSearches = computed(() => this.savedSearches().slice(0, this.range())); + protected readonly hasMore = computed(() => this.savedSearches().length > 0 && this.range() < this.savedSearches().length); + + protected readonly getRelativeDate = getRelativeDate; + + private readonly router = inject(Router); + private readonly savedSearchesService = inject(SavedSearchesService); + protected readonly transloco = inject(TranslocoService); + + constructor() { + effect( + () => { + const savedSearches = this.savedSearchesService.getSavedSearches(); + + this.savedSearches.set( + (savedSearches || []).reduce((acc, savedSearch) => { + const queryParams = getQueryParamsFromUrl(savedSearch.url); + + acc.push( + Object.assign(savedSearch, { + label: queryParams?.text || '', + filterCount: queryParams?.filters?.length || 0, + queryParams + }) + ); + + return acc; + }, [] as SavedSearch[]) + ); + }, + { allowSignalWrites: true } + ); + } + + public onClick(savedSearch: SavedSearch): void { + const queryParams = { + q: savedSearch.queryParams?.text + } as { q: string; f?: string }; + + if (savedSearch.queryParams?.filters && savedSearch.queryParams?.filters?.length > 0) queryParams.f = JSON.stringify(savedSearch.queryParams?.filters); + + this.router.navigate([savedSearch.queryParams?.path], { queryParams }); + } + + public async onDelete(index: number, e: Event) { + e.stopPropagation(); + await this.savedSearchesService.deleteSavedSearch(index); + toast.success('Saved search deleted'); + } + + public loadMore(e: Event): void { + e.stopPropagation(); + this.range.set(this.range() + SAVED_SEARCHES_ITEMS_PER_PAGE); + } +} diff --git a/src/core/features/search-feedback/search-feedback.component.html b/src/core/features/search-feedback/search-feedback.html similarity index 66% rename from src/core/features/search-feedback/search-feedback.component.html rename to src/core/features/search-feedback/search-feedback.html index f2c6da9b..dcf6673b 100644 --- a/src/core/features/search-feedback/search-feedback.component.html +++ b/src/core/features/search-feedback/search-feedback.html @@ -1,17 +1,17 @@ -
      - - - -
      +
      + + + +
      diff --git a/src/core/features/search-feedback/search-feedback.component.ts b/src/core/features/search-feedback/search-feedback.ts similarity index 93% rename from src/core/features/search-feedback/search-feedback.component.ts rename to src/core/features/search-feedback/search-feedback.ts index 319c26b8..3742a418 100644 --- a/src/core/features/search-feedback/search-feedback.component.ts +++ b/src/core/features/search-feedback/search-feedback.ts @@ -1,65 +1,65 @@ -import { Component, inject, input, signal } from '@angular/core'; -import { HashMap, provideTranslocoScope, Translation, TranslocoService } from '@jsverse/transloco'; -import { getState } from '@ngrx/signals'; -import { AuditService, QueryParamsStore } from '@sinequa/atomic-angular'; -import { Article, Result } from '@sinequa/atomic'; -import { toast } from 'ngx-sonner'; - -const loader = ['en', 'fr'].reduce( - (acc, lang) => { - acc[lang] = () => import(`./i18n/${lang}.json`); - return acc; - }, - {} as HashMap<() => Promise> -); - -@Component({ - selector: 'search-feedback', - standalone: true, - imports: [], - providers: [provideTranslocoScope({ scope: 'searchFeedback', loader })], - templateUrl: './search-feedback.component.html' -}) -export class SearchFeedbackComponent { - pages = input.required(); - readonly auditService = inject(AuditService); - protected readonly queryParamsStore = inject(QueryParamsStore); - private readonly transloco = inject(TranslocoService); - - liked = signal(false); - disliked = signal(false); - - like(): void { - const state = getState(this.queryParamsStore); - const articles: string[] = []; - if (this.pages() && this.pages().length) { - this.pages().forEach((page: Result) => { - articles.push(...page.records.map(r => r.id)); - }); - } - const detail = { query: state, records: articles }; - this.auditService.notify({ - type: 'Search_Like', - detail - }); - this.liked.set(true); - toast.success(this.transloco.translate('searchFeedback.feedbackSuccess'), { duration: 2000 }); - } - - dislike(): void { - const state = getState(this.queryParamsStore); - const articles: string[] = []; - if (this.pages() && this.pages().length) { - this.pages().forEach((page: Result) => { - articles.push(...page.records.map(r => r.id)); - }); - } - const detail = { query: state, records: articles }; - this.auditService.notify({ - type: 'Search_Disike', - detail - }); - this.disliked.set(true); - toast.success(this.transloco.translate('searchFeedback.feedbackSuccess'), { duration: 2000 }); - } -} +import { Component, inject, input, signal } from '@angular/core'; +import { HashMap, provideTranslocoScope, Translation, TranslocoService } from '@jsverse/transloco'; +import { getState } from '@ngrx/signals'; +import { Result } from '@sinequa/atomic'; +import { AuditService, QueryParamsStore } from '@sinequa/atomic-angular'; +import { toast } from 'ngx-sonner'; + +const loader = ['en', 'fr'].reduce( + (acc, lang) => { + acc[lang] = () => import(`./i18n/${lang}.json`); + return acc; + }, + {} as HashMap<() => Promise> +); + +@Component({ + selector: 'search-feedback', + standalone: true, + imports: [], + providers: [provideTranslocoScope({ scope: 'searchFeedback', loader })], + templateUrl: './search-feedback.html' +}) +export class SearchFeedbackComponent { + pages = input.required(); + readonly auditService = inject(AuditService); + protected readonly queryParamsStore = inject(QueryParamsStore); + private readonly transloco = inject(TranslocoService); + + liked = signal(false); + disliked = signal(false); + + like(): void { + const state = getState(this.queryParamsStore); + const articles: string[] = []; + if (this.pages() && this.pages().length) { + this.pages().forEach((page: Result) => { + articles.push(...page.records.map(r => r.id)); + }); + } + const detail = { query: state, records: articles }; + this.auditService.notify({ + type: 'Search_Like', + detail + }); + this.liked.set(true); + toast.success(this.transloco.translate('searchFeedback.feedbackSuccess'), { duration: 2000 }); + } + + dislike(): void { + const state = getState(this.queryParamsStore); + const articles: string[] = []; + if (this.pages() && this.pages().length) { + this.pages().forEach((page: Result) => { + articles.push(...page.records.map(r => r.id)); + }); + } + const detail = { query: state, records: articles }; + this.auditService.notify({ + type: 'Search_Disike', + detail + }); + this.disliked.set(true); + toast.success(this.transloco.translate('searchFeedback.feedbackSuccess'), { duration: 2000 }); + } +} diff --git a/src/core/features/login/i18n/en.json b/src/core/features/sign-in/i18n/en.json similarity index 96% rename from src/core/features/login/i18n/en.json rename to src/core/features/sign-in/i18n/en.json index c2b0b681..a0f04c3f 100644 --- a/src/core/features/login/i18n/en.json +++ b/src/core/features/sign-in/i18n/en.json @@ -1,12 +1,12 @@ -{ - "username": "Username", - "password": "Password", - "connect": "Login", - "back": "Back", - "disconnect": "Logout", - "loginWith": "Login with { provider }", - "or": "Or", - "welcomeBack": "Welcome back{ name, select, other { , {name}} undefined {}}!", - "youAreLoggedIn": "You are logged in", - "invalidCredentials": "Invalid username or password" -} +{ + "username": "Username", + "password": "Password", + "connect": "Login", + "back": "Back", + "disconnect": "Logout", + "loginWith": "Login with { provider }", + "or": "Or", + "welcomeBack": "Welcome back{ name, select, other { , {name}} undefined {}}!", + "youAreLoggedIn": "You are logged in", + "invalidCredentials": "Invalid username or password" +} diff --git a/src/core/features/login/i18n/fr.json b/src/core/features/sign-in/i18n/fr.json similarity index 97% rename from src/core/features/login/i18n/fr.json rename to src/core/features/sign-in/i18n/fr.json index ca22843f..0fded2e5 100644 --- a/src/core/features/login/i18n/fr.json +++ b/src/core/features/sign-in/i18n/fr.json @@ -1,14 +1,14 @@ -{ - "username": "Nom d'utilisateur", - "password": "Mot de passe", - "connect": "Se connecter", - "back": "Retour", - "disconnect": "Se déconnecter", - "forgotYourPassword": "Mot de passe oublié ?", - "loginDescription": "Saisissez votre adresse email pour vous connecter", - "loginWith": "Se connecter avec { provider }", - "or": "Ou", - "welcomeBack": "Bienvenue{ name, select, other { , {name}} undefined {}} !", - "youAreLoggedIn": "Vous êtes connecté", - "invalidCredentials": "Nom d'utilisateur ou mot de passe invalide" -} +{ + "username": "Nom d'utilisateur", + "password": "Mot de passe", + "connect": "Se connecter", + "back": "Retour", + "disconnect": "Se déconnecter", + "forgotYourPassword": "Mot de passe oublié ?", + "loginDescription": "Saisissez votre adresse email pour vous connecter", + "loginWith": "Se connecter avec { provider }", + "or": "Ou", + "welcomeBack": "Bienvenue{ name, select, other { , {name}} undefined {}} !", + "youAreLoggedIn": "Vous êtes connecté", + "invalidCredentials": "Nom d'utilisateur ou mot de passe invalide" +} diff --git a/src/core/features/login/login.component.html b/src/core/features/sign-in/sign-in.html similarity index 62% rename from src/core/features/login/login.component.html rename to src/core/features/sign-in/sign-in.html index 876751f8..fc7b35cc 100644 --- a/src/core/features/login/login.component.html +++ b/src/core/features/sign-in/sign-in.html @@ -1,160 +1,160 @@ -
      - - -
      - @if (!authenticated()) { -
      - @if (!config.autoOAuthProvider && !config.autoSAMLProvider) { -
      - - - -
      -
      -
      - -
      - -
      - - } @else { - - } -
      - } @else { - - {{ 'login.back' | transloco }} - } -
      -
      +
      + + +
      + @if (!authenticated()) { +
      + @if (!config.autoOAuthProvider && !config.autoSAMLProvider) { +
      + + + +
      +
      +
      + +
      + +
      + + } @else { + + } +
      + } @else { + + {{ 'login.back' | transloco }} + } +
      +
      diff --git a/src/core/features/login/login.component.ts b/src/core/features/sign-in/sign-in.ts similarity index 96% rename from src/core/features/login/login.component.ts rename to src/core/features/sign-in/sign-in.ts index 9dc083fe..3cc1bbd4 100644 --- a/src/core/features/login/login.component.ts +++ b/src/core/features/sign-in/sign-in.ts @@ -1,163 +1,163 @@ -import { Component, OnDestroy, computed, effect, inject, signal } from '@angular/core'; -import { FormsModule } from '@angular/forms'; -import { ActivatedRoute, Router, RouterModule } from '@angular/router'; -import { HashMap, Translation, TranslocoPipe, TranslocoService, provideTranslocoScope } from '@jsverse/transloco'; -import { toast } from 'ngx-sonner'; -import { Subscription, fromEvent } from 'rxjs'; - -import { Credentials, Principal, globalConfig, isAuthenticated, login, logout } from '@sinequa/atomic'; -import { ApplicationService, PrincipalService } from '@sinequa/atomic-angular'; - -const loader = ['en', 'fr'].reduce( - (acc, lang) => { - acc[lang] = () => import(`./i18n/${lang}.json`); - return acc; - }, - {} as HashMap<() => Promise> -); - -/** - * Represents the LoginComponent class, which is responsible for handling the login functionality. - * This component is used to authenticate users and manage the user's authentication status. - */ -@Component({ - selector: 'sq-login', - standalone: true, - imports: [RouterModule, FormsModule, TranslocoPipe], - templateUrl: './login.component.html', - styles: [ - ` - :host { - min-height: 100vh; - display: flex; - justify-content: center; - align-items: center; - padding: 2rem; - } - .btn-primary { - background-color: black; - color: white; - } - ` - ], - providers: [provideTranslocoScope({ scope: 'login', loader })] -}) -export class LoginComponent implements OnDestroy { - config = globalConfig; - - /** - * Represents the user credentials for login. - */ - credentials = signal({ username: '', password: '' }); - - readonly authenticated = signal(false); - readonly user = signal(null); - readonly returnUrl = signal(null); - - private readonly router = inject(Router); - private readonly route = inject(ActivatedRoute); - private readonly principalService = inject(PrincipalService); - protected readonly appService = inject(ApplicationService); - private readonly translocoService = inject(TranslocoService); - - private sub = new Subscription(); - - /** - * Indicates whether the login credentials are valid. - * Returns true if both the username and password are non-empty, otherwise false. - */ - valid = computed(() => this.credentials().username.length > 0 && this.credentials().password.length > 0); - - constructor() { - this.authenticated.set(isAuthenticated()); - - effect(() => { - if (this.authenticated()) { - this.sub.add(this.principalService.getPrincipal().subscribe(principal => this.user.set(principal))); - } - }); - - effect(() => { - if (this.returnUrl() !== null) { - const [url] = this.returnUrl() || ['/']; - this.router.navigateByUrl(url); - } - }); - - this.sub.add( - fromEvent(document, 'authenticated').subscribe(event => { - const response = event as CustomEvent; - this.authenticated.set(response.detail.authenticated); - const url = this.route.snapshot.queryParams['returnUrl'] || null; - - if (url !== null) { - this.returnUrl.set([url]); - } - - if (isAuthenticated()) { - if (url !== null) { - this.router.navigateByUrl(url); - } else { - this.router.navigateByUrl('/'); - } - } - }) - ); - } - - ngOnDestroy(): void { - this.sub.unsubscribe(); - } - - /** - * Updates the credentials with the provided values. - * @param credentials - An object containing the username and password. - */ - updateCredentials(credentials: { username?: string; password?: string }) { - this.credentials.update(v => ({ ...v, ...credentials })); - } - - async handleLogout() { - await logout(); - this.authenticated.set(false); - } - - /** - * Handles the login process without credentials. - * This method calls the login function asynchronously. - */ - async handleLogin() { - login().catch(error => { - { - console.warn('An error occurred while logging in', error); - this.router.navigate(['error']); - } - }); - } - - /** - * Handles the login process with credentials. - * Calls the login function with the provided credentials and handles any errors that occur. - */ - async handleLoginWithCredentials() { - if (!this.valid()) return; - - this.appService - .autoLogin({ credentials: this.credentials() }) - .then(value => { - this.router.navigateByUrl(this.route.snapshot.queryParams['returnUrl'] || '/'); - }) - .catch(e => { - if (e instanceof Error) { - console.error(e.message); - } - if (e instanceof Response) { - console.error(e.statusText); - } - if (e.status === 401 && e instanceof Response === false) { - const message = this.translocoService.translate('login.invalidCredentials'); - toast.error(message, { duration: 2000 }); - } - }); - } -} +import { Component, OnDestroy, computed, effect, inject, signal } from '@angular/core'; +import { FormsModule } from '@angular/forms'; +import { ActivatedRoute, Router, RouterModule } from '@angular/router'; +import { HashMap, Translation, TranslocoPipe, TranslocoService, provideTranslocoScope } from '@jsverse/transloco'; +import { toast } from 'ngx-sonner'; +import { Subscription, fromEvent } from 'rxjs'; + +import { Credentials, Principal, globalConfig, isAuthenticated, login, logout } from '@sinequa/atomic'; +import { ApplicationService, PrincipalService } from '@sinequa/atomic-angular'; + +const loader = ['en', 'fr'].reduce( + (acc, lang) => { + acc[lang] = () => import(`./i18n/${lang}.json`); + return acc; + }, + {} as HashMap<() => Promise> +); + +/** + * Represents the LoginComponent class, which is responsible for handling the login functionality. + * This component is used to authenticate users and manage the user's authentication status. + */ +@Component({ + selector: 'sq-login', + standalone: true, + imports: [RouterModule, FormsModule, TranslocoPipe], + templateUrl: './sign-in.html', + styles: [ + ` + :host { + min-height: 100vh; + display: flex; + justify-content: center; + align-items: center; + padding: 2rem; + } + .btn-primary { + background-color: black; + color: white; + } + ` + ], + providers: [provideTranslocoScope({ scope: 'login', loader })] +}) +export class LoginComponent implements OnDestroy { + config = globalConfig; + + /** + * Represents the user credentials for login. + */ + credentials = signal({ username: '', password: '' }); + + readonly authenticated = signal(false); + readonly user = signal(null); + readonly returnUrl = signal(null); + + private readonly router = inject(Router); + private readonly route = inject(ActivatedRoute); + private readonly principalService = inject(PrincipalService); + protected readonly appService = inject(ApplicationService); + private readonly translocoService = inject(TranslocoService); + + private sub = new Subscription(); + + /** + * Indicates whether the login credentials are valid. + * Returns true if both the username and password are non-empty, otherwise false. + */ + valid = computed(() => this.credentials().username.length > 0 && this.credentials().password.length > 0); + + constructor() { + this.authenticated.set(isAuthenticated()); + + effect(() => { + if (this.authenticated()) { + this.sub.add(this.principalService.getPrincipal().subscribe(principal => this.user.set(principal))); + } + }); + + effect(() => { + if (this.returnUrl() !== null) { + const [url] = this.returnUrl() || ['/']; + this.router.navigateByUrl(url); + } + }); + + this.sub.add( + fromEvent(document, 'authenticated').subscribe(event => { + const response = event as CustomEvent; + this.authenticated.set(response.detail.authenticated); + const url = this.route.snapshot.queryParams['returnUrl'] || null; + + if (url !== null) { + this.returnUrl.set([url]); + } + + if (isAuthenticated()) { + if (url !== null) { + this.router.navigateByUrl(url); + } else { + this.router.navigateByUrl('/'); + } + } + }) + ); + } + + ngOnDestroy(): void { + this.sub.unsubscribe(); + } + + /** + * Updates the credentials with the provided values. + * @param credentials - An object containing the username and password. + */ + updateCredentials(credentials: { username?: string; password?: string }) { + this.credentials.update(v => ({ ...v, ...credentials })); + } + + async handleLogout() { + await logout(); + this.authenticated.set(false); + } + + /** + * Handles the login process without credentials. + * This method calls the login function asynchronously. + */ + async handleLogin() { + login().catch(error => { + { + console.warn('An error occurred while logging in', error); + this.router.navigate(['error']); + } + }); + } + + /** + * Handles the login process with credentials. + * Calls the login function with the provided credentials and handles any errors that occur. + */ + async handleLoginWithCredentials() { + if (!this.valid()) return; + + this.appService + .autoLogin({ credentials: this.credentials() }) + .then(value => { + this.router.navigateByUrl(this.route.snapshot.queryParams['returnUrl'] || '/'); + }) + .catch(e => { + if (e instanceof Error) { + console.error(e.message); + } + if (e instanceof Response) { + console.error(e.statusText); + } + if (e.status === 401 && e instanceof Response === false) { + const message = this.translocoService.translate('login.invalidCredentials'); + toast.error(message, { duration: 2000 }); + } + }); + } +} diff --git a/src/core/features/sort-selector/sort-selector.component.html b/src/core/features/sort-selector/sort-selector.component.html deleted file mode 100644 index 481b88eb..00000000 --- a/src/core/features/sort-selector/sort-selector.component.html +++ /dev/null @@ -1,19 +0,0 @@ - - - - - diff --git a/src/core/features/sort-selector/sort-selector.component.scss b/src/core/features/sort-selector/sort-selector.component.scss deleted file mode 100644 index e69de29b..00000000 diff --git a/src/core/features/sort-selector/sort-selector.html b/src/core/features/sort-selector/sort-selector.html new file mode 100644 index 00000000..69dd147b --- /dev/null +++ b/src/core/features/sort-selector/sort-selector.html @@ -0,0 +1,15 @@ + + + + + @if (sortOptions().length > 0) { @for (option of sortOptions(); track $index) { + + {{ option.display | transloco }} + + + } } + + diff --git a/src/core/features/sort-selector/sort-selector.component.ts b/src/core/features/sort-selector/sort-selector.ts similarity index 85% rename from src/core/features/sort-selector/sort-selector.component.ts rename to src/core/features/sort-selector/sort-selector.ts index 0835d7c7..ee756958 100644 --- a/src/core/features/sort-selector/sort-selector.component.ts +++ b/src/core/features/sort-selector/sort-selector.ts @@ -1,68 +1,67 @@ -import { Component, computed, inject, input, output, viewChild } from '@angular/core'; -import { HashMap, Translation, TranslocoPipe, provideTranslocoScope } from '@jsverse/transloco'; -import { getState } from '@ngrx/signals'; - -import { CCApp, Result } from '@sinequa/atomic'; -import { AppStore, DropdownComponent } from '@sinequa/atomic-angular'; - -export type SortingChoice = { - name: string; - description: string; - display: string; - orderByClause: string; - isDefaultNoRelevance: boolean; - isDefaultWithRelevance: boolean; - $isDesc?: boolean; -}; - -const loader = ['en', 'fr'].reduce( - (acc, lang) => { - acc[lang] = () => import(`./i18n/${lang}.json`); - return acc; - }, - {} as HashMap<() => Promise> -); - -@Component({ - selector: 'app-sort-selector', - standalone: true, - templateUrl: './sort-selector.component.html', - styleUrl: './sort-selector.component.scss', - imports: [DropdownComponent, TranslocoPipe], - providers: [provideTranslocoScope({ scope: 'sort-selector', loader })] -}) -export class SortSelectorComponent { - readonly result = input.required(); - readonly onSort = output(); - - dropdown = viewChild(DropdownComponent); - appStore = inject(AppStore); - - readonly queryName = computed(() => this.result()?.queryName); - - // fetch the sorting choices from the queries and process if choice is desc or asc - readonly sortOptions = computed(() => { - const { queries } = getState(this.appStore) as CCApp; - if (queries === undefined) return []; - - const choices = queries?.[this.queryName()?.toLocaleLowerCase()]?.sortingChoices; - - // choices can be an empty string when nothing is defined in the configuration - if (choices === undefined || (choices as unknown as string) === '') return []; - - return choices?.reduce((acc, sort) => { - acc.push({ ...sort, $isDesc: sort.orderByClause.includes('desc') }); - return acc; - }, [] as SortingChoice[]); - }); - - readonly sort = computed(() => this.sortOptions()?.find(x => x.name === this.result()?.sort)); - readonly isSortingDesc = computed(() => this.sort()?.orderByClause?.includes('desc')); - - onSortOptionClicked(sort: SortingChoice) { - if (sort.name !== this.sort()?.name) { - this.dropdown()?.close(); - this.onSort.emit(sort); - } - } -} +import { Component, computed, inject, input, output, viewChild } from '@angular/core'; +import { HashMap, Translation, TranslocoPipe, provideTranslocoScope } from '@jsverse/transloco'; +import { getState } from '@ngrx/signals'; + +import { CCApp, Result } from '@sinequa/atomic'; +import { AppStore, ButtonComponent, DropdownComponent, MenuComponent, MenuContentComponent, MenuItemComponent } from '@sinequa/atomic-angular'; + +export type SortingChoice = { + name: string; + description: string; + display: string; + orderByClause: string; + isDefaultNoRelevance: boolean; + isDefaultWithRelevance: boolean; + $isDesc?: boolean; +}; + +const loader = ['en', 'fr'].reduce( + (acc, lang) => { + acc[lang] = () => import(`./i18n/${lang}.json`); + return acc; + }, + {} as HashMap<() => Promise> +); + +@Component({ + selector: 'app-sort-selector', + standalone: true, + templateUrl: './sort-selector.html', + imports: [TranslocoPipe, ButtonComponent, MenuComponent, MenuContentComponent, MenuItemComponent], + providers: [provideTranslocoScope({ scope: 'sort-selector', loader })] +}) +export class SortSelectorComponent { + readonly result = input.required(); + readonly onSort = output(); + + dropdown = viewChild(DropdownComponent); + appStore = inject(AppStore); + + readonly queryName = computed(() => this.result()?.queryName); + + // fetch the sorting choices from the queries and process if choice is desc or asc + readonly sortOptions = computed(() => { + const { queries } = getState(this.appStore) as CCApp; + if (queries === undefined) return []; + + const choices = queries?.[this.queryName()?.toLocaleLowerCase()]?.sortingChoices; + + // choices can be an empty string when nothing is defined in the configuration + if (choices === undefined || (choices as unknown as string) === '') return []; + + return choices?.reduce((acc, sort) => { + acc.push({ ...sort, $isDesc: sort.orderByClause.includes('desc') }); + return acc; + }, [] as SortingChoice[]); + }); + + readonly sort = computed(() => this.sortOptions()?.find(x => x.name === this.result()?.sort)); + readonly isSortingDesc = computed(() => this.sort()?.orderByClause?.includes('desc')); + + onSortOptionClicked(sort: SortingChoice) { + if (sort.name !== this.sort()?.name) { + this.dropdown()?.close(); + this.onSort.emit(sort); + } + } +} diff --git a/src/core/features/user-menu/user-menu.html b/src/core/features/user-menu/user-menu.html index d79f95ee..4291a67d 100644 --- a/src/core/features/user-menu/user-menu.html +++ b/src/core/features/user-menu/user-menu.html @@ -1,152 +1,75 @@ - - {{ initials() }} - - - - - - {{ 'userMenu.selectLanguage' | transloco }} - - -
      - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - {{ 'userMenu.english' | transloco }} - - - - - - - - - - - {{ 'userMenu.french' | transloco }} - -
      -
      - - - - {{ 'userMenu.resetUserSettings' | transloco }} - - - @if(isAdmin() || isOverridingUser()) { -
      - - @if(allowUserOverride() && !isOverridingUser()) { - - - {{ 'userMenu.overrideUser' | transloco }} - - } @else if(isOverridingUser()) { - - - {{ 'userMenu.revertOverride' | transloco }} - - } @if(isAdmin()) { - - - {{ 'userMenu.administration' | transloco }} - - - } } - -
      - - - - {{ 'userMenu.help' | transloco }} - - - -
      - - - sinequa logo - {{ 'userMenu.aboutSinequa' | transloco }} - - - - @if(useCredentials) { - - - {{ 'logout' | transloco }} {{ user().fullName || user().name }} - - } -
      -
      - - - + + {{ initials() }} + + + + + {{ 'userMenu.selectLanguage' | transloco }} + + + + + + {{ 'userMenu.english' | transloco }} + + + + + {{ 'userMenu.french' | transloco }} + + + + + + + + {{ 'userMenu.resetUserSettings' | transloco }} + + + @if(isAdmin() || isOverridingUser()) { + + } @if(allowUserOverride() && !isOverridingUser()) { + + + {{ 'userMenu.overrideUser' | transloco }} + + } @else if(isOverridingUser()) { + + + {{ 'userMenu.revertOverride' | transloco }} + + } @if(isAdmin()) { + + + {{ 'userMenu.administration' | transloco }} + + + } + + + + + + {{ 'userMenu.help' | transloco }} + + + + + + + sinequa logo + {{ 'userMenu.aboutSinequa' | transloco }} + + + + @if(useCredentials) { + + + {{ 'logout' | transloco }} {{ user().fullName || user().name }} + + } + + + + + diff --git a/src/core/features/user-menu/user-menu.ts b/src/core/features/user-menu/user-menu.ts index acc2875f..997de71d 100644 --- a/src/core/features/user-menu/user-menu.ts +++ b/src/core/features/user-menu/user-menu.ts @@ -1,116 +1,124 @@ -import { Component, computed, inject, viewChild, viewChildren } from '@angular/core'; -import { FormsModule } from '@angular/forms'; -import { Router } from '@angular/router'; -import { HashMap, Translation, TranslocoPipe, TranslocoService, provideTranslocoScope } from '@jsverse/transloco'; -import { getState } from '@ngrx/signals'; - -import { globalConfig, logout, setGlobalConfig } from '@sinequa/atomic'; -import { MenuComponent, MenuItemComponent, PrincipalStore, UserSettingsStore } from '@sinequa/atomic-angular'; -import { OverrideUserDialogComponent } from '../dialog/override-user'; -import { ResetUserSettingsDialogComponent } from '../dialog/reset-user-settings'; -import { getHelpIndexUrl } from './help-folder-options'; - -const loader = ['en', 'fr'].reduce( - (acc, lang) => { - acc[lang] = () => import(`./i18n/${lang}.json`); - return acc; - }, - {} as HashMap<() => Promise> -); - -@Component({ - selector: 'app-user-menu', - standalone: true, - imports: [FormsModule, MenuComponent, MenuItemComponent, TranslocoPipe, OverrideUserDialogComponent, ResetUserSettingsDialogComponent], - templateUrl: './user-menu.html', - providers: [provideTranslocoScope({ scope: 'user-menu', loader })] -}) -export class UserMenuComponent { - readonly menus = viewChildren(MenuComponent); - readonly overrideUserDialog = viewChild(OverrideUserDialogComponent); - readonly resetUserSettingsDialog = viewChild(ResetUserSettingsDialogComponent); - - private readonly router = inject(Router); - private readonly principalStore = inject(PrincipalStore); - private readonly userSettingsStore = inject(UserSettingsStore); - private readonly transloco = inject(TranslocoService); - - readonly user = computed(() => { - const principal = getState(this.principalStore).principal; - return principal; - }); - - readonly initials = computed(() => { - const principal = this.user(); - const separator = principal.fullName ? ' ' : '.'; - return (principal.fullName || principal.name || '') - .split(separator) - .filter(word => word[0] && word[0] === word[0].toUpperCase()) - .map(word => word[0]) - .join('') - .slice(0, 3); - }); - - readonly isAdmin = computed(() => this.principalStore.principal().isAdministrator || this.principalStore.principal().isDelegatedAdmin); - readonly allowUserOverride = computed(() => this.principalStore.allowUserOverride()); - readonly isOverridingUser = computed(() => this.principalStore.isOverridingUser()); - - // used to hide the logout button when using SSO - useCredentials = globalConfig.useCredentials; - - changeLanguage(lang: string) { - this.userSettingsStore.updateLanguage(lang); - - if (this.transloco.getActiveLang() !== lang) this.transloco.setActiveLang(lang); - - this.close(); - } - - handleLogout() { - setGlobalConfig({ userOverrideActive: false, userOverride: undefined }); - logout().then(() => this.router.navigate(['/logout'])); - } - - handleOverride() { - this.close(); - this.overrideUserDialog()?.showModal(); - } - - handleOverrideUser() { - this.overrideUserDialog()?.handleOverrideUser(); - } - - handleResetUserSettings() { - this.close(); - this.resetUserSettingsDialog()?.showModal(); - } - - openAdmin() { - window.open(`${window.location.origin}/admin`, '_blank', 'noopener'); - } - - openSinequa() { - window.open('https://sinequa.com', '_blank', 'noopener'); - } - - openHelp() { - const url = getHelpIndexUrl(this.transloco.getActiveLang(), { - folder: 'mint-search', - path: '/r/_sinequa/webpackages/help', - indexFile: 'olh-index.html', - useLocale: true, - useLocaleAsPrefix: true - }); - window.open(url, '_blank', 'noopener'); - } - - /** - * Closes all menus in the user menu. - * - * This method iterates over all menus returned by the `menus` method - * and calls the `close` method on each menu to close it. - */ - close() { - this.menus()?.forEach(menu => menu.close()); - } -} +import { Component, computed, inject, viewChild, viewChildren } from '@angular/core'; +import { FormsModule } from '@angular/forms'; +import { Router } from '@angular/router'; +import { HashMap, Translation, TranslocoPipe, TranslocoService, provideTranslocoScope } from '@jsverse/transloco'; +import { getState } from '@ngrx/signals'; + +import { globalConfig, logout, setGlobalConfig } from '@sinequa/atomic'; +import { + ChevronRightIconComponent, + FlagEnglishIconComponent, + FlagFrenchIconComponent, + MenuComponent, + MenuContentComponent, + MenuItemComponent, + MenuSeparatorComponent, + PrincipalStore, + UserSettingsStore +} from '@sinequa/atomic-angular'; +import { OverrideUserDialogComponent } from '../dialogs/override-user.dialog'; +import { ResetUserSettingsDialogComponent } from '../dialogs/reset-user-settings.dialog'; +import { getHelpIndexUrl } from './help-folder-options'; + +const loader = ['en', 'fr'].reduce( + (acc, lang) => { + acc[lang] = () => import(`./i18n/${lang}.json`); + return acc; + }, + {} as HashMap<() => Promise> +); + +@Component({ + selector: 'app-user-menu', + standalone: true, + imports: [ + FormsModule, + MenuComponent, + MenuContentComponent, + MenuItemComponent, + MenuSeparatorComponent, + TranslocoPipe, + OverrideUserDialogComponent, + ResetUserSettingsDialogComponent, + FlagEnglishIconComponent, + FlagFrenchIconComponent, + ChevronRightIconComponent + ], + templateUrl: './user-menu.html', + providers: [provideTranslocoScope({ scope: 'user-menu', loader })] +}) +export class UserMenuComponent { + readonly menus = viewChildren(MenuComponent); + readonly overrideUserDialog = viewChild(OverrideUserDialogComponent); + readonly resetUserSettingsDialog = viewChild(ResetUserSettingsDialogComponent); + + private readonly router = inject(Router); + private readonly principalStore = inject(PrincipalStore); + private readonly userSettingsStore = inject(UserSettingsStore); + private readonly transloco = inject(TranslocoService); + + readonly user = computed(() => { + const principal = getState(this.principalStore).principal; + return principal; + }); + + readonly initials = computed(() => { + const principal = this.user(); + const separator = principal.fullName ? ' ' : '.'; + return (principal.fullName || principal.name || '') + .split(separator) + .filter(word => word[0] && word[0] === word[0].toUpperCase()) + .map(word => word[0]) + .join('') + .slice(0, 3); + }); + + readonly isAdmin = computed(() => this.principalStore.principal().isAdministrator || this.principalStore.principal().isDelegatedAdmin); + readonly allowUserOverride = computed(() => this.principalStore.allowUserOverride()); + readonly isOverridingUser = computed(() => this.principalStore.isOverridingUser()); + + // used to hide the logout button when using SSO + useCredentials = globalConfig.useCredentials; + + changeLanguage(lang: string) { + this.userSettingsStore.updateLanguage(lang); + + if (this.transloco.getActiveLang() !== lang) this.transloco.setActiveLang(lang); + } + + handleLogout() { + setGlobalConfig({ userOverrideActive: false, userOverride: undefined }); + logout().then(() => this.router.navigate(['/logout'])); + } + + handleOverride() { + this.overrideUserDialog()?.showModal(); + } + + handleOverrideUser() { + this.overrideUserDialog()?.handleOverrideUser(); + } + + handleResetUserSettings() { + this.resetUserSettingsDialog()?.showModal(); + } + + openAdmin() { + window.open(`${window.location.origin}/admin`, '_blank', 'noopener'); + } + + openSinequa() { + window.open('https://sinequa.com', '_blank', 'noopener'); + } + + openHelp() { + const url = getHelpIndexUrl(this.transloco.getActiveLang(), { + folder: 'mint-search', + path: '/r/_sinequa/webpackages/help', + indexFile: 'olh-index.html', + useLocale: true, + useLocaleAsPrefix: true + }); + window.open(url, '_blank', 'noopener'); + } +} diff --git a/src/core/registry/base-article.ts b/src/core/registry/base-article.ts deleted file mode 100644 index df309d0e..00000000 --- a/src/core/registry/base-article.ts +++ /dev/null @@ -1,19 +0,0 @@ -import { Component, input } from '@angular/core'; -import { Article } from '@sinequa/atomic'; -import { SelectionStrategy } from '@sinequa/atomic-angular'; - -/** - * Base class for article components. - * article is required and must be an Article or extend it. - * strategy is optional and must be a SelectionStrategy for the drawer to decide how to handle the selection. - */ - -@Component({ - selector: 'app-base-article', - standalone: true, - template: `` -}) -export abstract class BaseArticle { - public readonly article = input.required
      (); - public readonly strategy = input(); -} diff --git a/src/core/registry/base-preview.ts b/src/core/registry/base-preview.ts deleted file mode 100644 index d9f59529..00000000 --- a/src/core/registry/base-preview.ts +++ /dev/null @@ -1,16 +0,0 @@ -import { Component, input } from '@angular/core'; -import { PreviewData } from '@sinequa/atomic'; - -/** - * Base class for preview components. - * previewData is required and must be a PreviewData. - */ - -@Component({ - selector: 'app-base-preview', - standalone: true, - template: `` -}) -export abstract class BasePreview { - public readonly previewData = input.required(); -} diff --git a/src/styles.scss b/src/styles.scss index 19dc7c7a..b88a92fd 100644 --- a/src/styles.scss +++ b/src/styles.scss @@ -1,48 +1,81 @@ -/* You can add global styles to this file, and also import other style files */ -@tailwind base; -@tailwind components; -@tailwind utilities; - -/* @import "../node_modules/@sinequa/atomic-angular/assets/tailwind.css"; */ - -@import './styles/layouts.scss'; -@import './styles/box-shadows.scss'; -@import './styles/colors.scss'; -@import './styles/collapse.scss'; -@import './styles/design-system/design-system.scss'; -@import './styles/animations.scss'; -@import './styles/drawer-stack.scss'; -@import './styles/panel.scss'; -@import './styles/dropdown.scss'; -/* @import "./styles/checkbox.scss"; */ -@import './styles/radio.scss'; - -*, -*::before, -*::after { - box-sizing: border-box; -} -html { - overflow-x: hidden; - height: 100%; -} - -body { - height: 100%; - position: relative; -} - -/* Override to hide bootstrap spinner */ -.spinner-grow { - display: none !important; -} - -/* allow multi-line text in the taost description */ -[data-description] { - white-space: pre-line; -} - -::backdrop { - background-color: rgba(0, 0, 0, 0.3); - backdrop-filter: blur(2px); -} +/* You can add global styles to this file, and also import other style files */ +@tailwind base; +@tailwind components; +@tailwind utilities; + +/* @import "../node_modules/@sinequa/atomic-angular/assets/tailwind.css"; */ + +@import './styles/layouts.scss'; +@import './styles/box-shadows.scss'; +@import './styles/colors.scss'; +@import './styles/collapse.scss'; +@import './styles/design-system/design-system.scss'; +@import './styles/animations.scss'; +@import './styles/drawer-stack.scss'; +@import './styles/panel.scss'; +@import './styles/dropdown.scss'; +/* @import "./styles/checkbox.scss"; */ +@import './styles/radio.scss'; + +@layer base { + :root { + --background: #ffffff; + --foreground: #1c1c1c; + --card: #ffffff; + --card-foreground: #1c1c1c; + --popover: #ffffff; + --popover-foreground: #1c1c1c; + + --primary: 214 100% 50%; + --secondary: 0 0% 96%; + --accent: 0 0% 95.29%; + --destructive: 0 72.22% 50.59%; + --muted: 246 100% 96%; + + --primary-foreground: 210 40% 98%; + --secondary-foreground: 222.2 47.4% 11.2%; + --muted-foreground: 215.4 16.3% 46.9%; + --accent-foreground: 222.2 47.4% 11.2%; + --destructive-foreground: 210 40% 98%; + + --border: #e4e4e4; + --input: #e4e4e4; + --ring: #0a0a0a; + --radius: 0.5rem; + --chart-1: #f5b342; + --chart-2: #2ba58e; + --chart-3: #2b4d63; + --chart-4: #f5c542; + --chart-5: #f5a142; + } +} + +*, +*::before, +*::after { + box-sizing: border-box; +} +html { + overflow-x: hidden; + height: 100%; +} + +body { + height: 100%; + position: relative; +} + +/* Override to hide bootstrap spinner */ +.spinner-grow { + display: none !important; +} + +/* allow multi-line text in the taost description */ +[data-description] { + white-space: pre-line; +} + +::backdrop { + background-color: rgba(0, 0, 0, 0.3); + backdrop-filter: blur(2px); +} diff --git a/tailwind-plugin/article.js b/tailwind-plugin/article.cjs similarity index 100% rename from tailwind-plugin/article.js rename to tailwind-plugin/article.cjs diff --git a/tailwind-plugin/avatar.js b/tailwind-plugin/avatar.cjs similarity index 90% rename from tailwind-plugin/avatar.js rename to tailwind-plugin/avatar.cjs index 07041034..cdb1e5ee 100644 --- a/tailwind-plugin/avatar.js +++ b/tailwind-plugin/avatar.cjs @@ -14,7 +14,6 @@ const avatar = plugin(function ({ addBase, addComponents, theme }) { flexShrink: 0, overflow: 'hidden', borderRadius: theme('borderRadius.full'), - backgroundColor: theme('colors.primary'), fontWeight: theme('fontWeight.medium'), color: theme('colors.secondary') } diff --git a/tailwind-plugin/button.js b/tailwind-plugin/button.cjs similarity index 100% rename from tailwind-plugin/button.js rename to tailwind-plugin/button.cjs diff --git a/tailwind-plugin/dropdown.js b/tailwind-plugin/dropdown.cjs similarity index 100% rename from tailwind-plugin/dropdown.js rename to tailwind-plugin/dropdown.cjs diff --git a/tailwind-plugin/pill.js b/tailwind-plugin/pill.cjs similarity index 100% rename from tailwind-plugin/pill.js rename to tailwind-plugin/pill.cjs diff --git a/tailwind-plugin/tab.js b/tailwind-plugin/tab.cjs similarity index 100% rename from tailwind-plugin/tab.js rename to tailwind-plugin/tab.cjs diff --git a/tailwind.config.js b/tailwind.config.js index eb61e3a9..b560acb6 100644 --- a/tailwind.config.js +++ b/tailwind.config.js @@ -1,85 +1,93 @@ -const colors = require("tailwindcss/colors"); -const theme = require("tailwindcss/defaultTheme"); -const plugin = require("tailwindcss/plugin"); - -const dropdown = require("./tailwind-plugin/dropdown"); -const button = require('./tailwind-plugin/button'); -const tab = require("./tailwind-plugin/tab"); -const article = require("./tailwind-plugin/article"); -const avatar = require("./tailwind-plugin/avatar"); -const pill = require("./tailwind-plugin/pill"); - -/** @type {import('tailwindcss').Config} */ -module.exports = { - content: ["./src/**/*.{html,ts}"], - theme: { - fontFamily: { - sans: ["Segoe UI", "SF Pro Text", "Aria", "sans-serif"], - }, - extend: { - keyframes: { - progress: { - "0%": { transform: 'translateX(-100%)' }, - "100%": { transform: 'translateX(100%)' } - } - }, - animation: { - "progress": "progress 5s infinite linear" - }, - zIndex: { - filter: 100, - backdrop: 1000, - drawer: 2000, - drawerChat: 2500, - tooltip: 3000, - }, - colors: { - primary: "#0C75FF", - secondary: "#DFEDFF", - alert: "#FF2A1D", - success: "#2ED73F", - highlight: "#FFF7AB", - neutral: { - 50: "#f8f8f8", - 300: "#d4d4d4", - 500: "#989898", - 600: "#525252" - }, - ai: { - 500: "#FF7A00", - 700: "#FF5C00" - } - }, - boxShadow: { - dropdown: "6px 4px 20px 0px rgba(0, 0, 0, 0.2)", - article: "4px 4px 12px 0px rgba(0, 0, 0, 0.15)", - }, - }, - }, - plugins: [ - dropdown, - button, - tab, - article, - avatar, - pill, - plugin(function ({ addBase, addUtilities, theme }) { - addUtilities({ - '.scroll-stable': { - 'scrollbar-gutter': 'stable' - }, - }), - addBase({ - '.scrollbar-thin': { - scrollbarWidth: 'thin', - scrollbarGutter: 'stable' - }, - '.active:not([disabled])': { - color: theme('colors.primary'), - borderColor: theme('colors.primary'), - backgroundColor: theme('colors.secondary') - } - }) - }) - ], -}; +const colors = require('tailwindcss/colors'); +const theme = require('tailwindcss/defaultTheme'); +const plugin = require('tailwindcss/plugin'); + +const dropdown = require('./tailwind-plugin/dropdown'); +const button = require('./tailwind-plugin/button'); +const tab = require('./tailwind-plugin/tab'); +const article = require('./tailwind-plugin/article'); +const avatar = require('./tailwind-plugin/avatar'); +const pill = require('./tailwind-plugin/pill'); + +/** @type {import('tailwindcss').Config} */ +module.exports = { + content: ['./src/**/*.{html,ts}', './node_modules/@sinequa/atomic-angular/**/*.mjs'], + theme: { + fontFamily: { + sans: ['Segoe UI', 'SF Pro Text', 'Aria', 'sans-serif'] + }, + extend: { + keyframes: { + progress: { + '0%': { transform: 'translateX(-100%)' }, + '100%': { transform: 'translateX(100%)' } + } + }, + animation: { + progress: 'progress 5s infinite linear' + }, + zIndex: { + filter: 100, + backdrop: 1000, + drawer: 2000, + drawerChat: 2500, + tooltip: 3000 + }, + colors: { + primary: 'hsl(var(--primary) / )', + secondary: 'hsl(var(--secondary) / )', + accent: 'hsl(var(--accent) / )', + destructive: 'hsl(var(--destructive) / )', + muted: 'hsl(var(--muted) / )', + 'primary-foreground': 'hsl(var(--primary-foreground) / )', + 'secondary-foreground': 'hsl(var(--secondary-foreground) / )', + 'accent-foreground': 'hsl(var(--accent-foreground) / )', + 'destructive-foreground': 'hsl(var(--destructive-foreground) / )', + 'muted-foreground': 'hsl(var(--muted-foreground) / )', + alert: '#FF2A1D', + success: '#2ED73F', + highlight: '#FFF7AB', + neutral: { + 50: '#f8f8f8', + 300: '#d4d4d4', + 500: '#989898', + 600: '#525252' + }, + ai: { + 500: '#FF7A00', + 700: '#FF5C00' + } + }, + boxShadow: { + dropdown: '6px 4px 20px 0px rgba(0, 0, 0, 0.2)', + article: '4px 4px 12px 0px rgba(0, 0, 0, 0.15)' + } + } + }, + plugins: [ + dropdown, + button, + tab, + article, + avatar, + pill, + plugin(function ({ addBase, addUtilities, theme }) { + addUtilities({ + '.scroll-stable': { + 'scrollbar-gutter': 'stable' + } + }), + addBase({ + '.scrollbar-thin': { + scrollbarWidth: 'thin', + scrollbarGutter: 'stable' + }, + '.active:not([disabled])': { + color: theme('colors.primary'), + borderColor: theme('colors.primary'), + backgroundColor: theme('colors.secondary') + } + }); + }) + ] +}; From 8b04449b6b751db423b6f5061787f02f5cb89b87 Mon Sep 17 00:00:00 2001 From: Guillaume Leibfried Date: Thu, 27 Feb 2025 11:50:32 +0100 Subject: [PATCH 058/658] add base for additional metadata display in article default --- .../default/article-default.component.html | 147 +++++---- .../default/article-default.component.ts | 301 +++++++++--------- 2 files changed, 236 insertions(+), 212 deletions(-) diff --git a/src/core/components/article/default/article-default.component.html b/src/core/components/article/default/article-default.component.html index c89b98fa..dd18be91 100644 --- a/src/core/components/article/default/article-default.component.html +++ b/src/core/components/article/default/article-default.component.html @@ -1,68 +1,79 @@ -
      -
      -
      - -
      -
      - -
      -
      -
      -

      {{ article().title }}

      - -
      - @if (showBookmark()) { - - } -
      - - @if (hasLabelsAccess()) { - - } -
      - -
      - @if (docformatMetadata()) { -
      - {{ docformatMetadata() }} -
      - } - -
      - @if ((article().authors || { authors: [''] }).length > 0) { - {{ article().authors[0] }} - } - - @if (article().modified) { -

      - - {{ article()!.modified!.split(' ')[0] | translocoDate: 'mediumDate' }} -

      - } -
      -
      -
      - -
      -

      -
      - - -
      -
      - - - +
      +
      +
      + +
      +
      + +
      +
      +
      +

      {{ article().title }}

      + +
      + @if (showBookmark()) { + + } +
      + + @if (hasLabelsAccess()) { + + } +
      + +
      + @if (docformatMetadata()) { +
      + {{ docformatMetadata() }} +
      + } + +
      + @if ((article().authors || { authors: [''] }).length > 0) { + {{ article().authors[0] }} + } + + @if (article().modified) { +

      + + {{ article()!.modified!.split(' ')[0] | translocoDate: 'mediumDate' }} +

      + } +
      +
      +
      + +
      +

      +
      + + @if (customMetadata()?.length && article()) { + @for (metadata of customMetadata(); track $index) { +
      + @if (metadata.title) { + + } + +
      + } + } + + +
      +
      + + + diff --git a/src/core/components/article/default/article-default.component.ts b/src/core/components/article/default/article-default.component.ts index c9928faa..0dee7ba6 100644 --- a/src/core/components/article/default/article-default.component.ts +++ b/src/core/components/article/default/article-default.component.ts @@ -1,144 +1,157 @@ -import { BookmarkButtonComponent } from '@/core/features/bookmarks/bookmark-button'; -import { Component, computed, inject, input, OnDestroy, signal, viewChild } from '@angular/core'; -import { getState } from '@ngrx/signals'; - -import { - ApplicationStore, - AppStore, - ButtonComponent, - LabelService, - MenuComponent, - MenuContentComponent, - MenuItemComponent, - QueryParamsStore, - SearchService, - SelectArticleOnClickDirective, - SelectionStore, - SelectionStrategy, - ShowBookmarkDirective -} from '@sinequa/atomic-angular'; - -import { CollectionsDialog } from '@/core/features/collections/collections-add.dialog'; -import { LabelsEditComponent } from '@/core/features/labels/labels-edit.dialog'; -import { TranslocoDateImpurePipe } from '@/core/pipes/transloco-date.pipe'; -import { HashMap, provideTranslocoScope, Translation, TranslocoPipe } from '@jsverse/transloco'; -import { Article, LegacyFilter } from '@sinequa/atomic'; -import { SourceIconComponent } from '../../source-icon/source-icon.component'; -import { MissingTermsComponent } from '../missing-terms/missing-terms.component'; - -type Tab = 'attachments' | 'similars'; - -const HIDDEN_METADATA = ['web', 'htm', 'html', 'xhtm', 'xhtml', 'mht', 'mhtml', 'mht', 'aspx', 'page']; - -const loader = ['en', 'fr'].reduce( - (acc, lang) => { - acc[lang] = () => import(`../i18n/${lang}.json`); - return acc; - }, - {} as HashMap<() => Promise> -); - -@Component({ - selector: 'app-article-default', - standalone: true, - imports: [ - BookmarkButtonComponent, - SourceIconComponent, - TranslocoDateImpurePipe, - ButtonComponent, - MenuComponent, - MenuContentComponent, - MenuItemComponent, - TranslocoPipe, - LabelsEditComponent, - CollectionsDialog, - MissingTermsComponent - ], - templateUrl: './article-default.component.html', - styleUrl: './article-default.component.scss', - hostDirectives: [ - { - directive: SelectArticleOnClickDirective, - inputs: ['article', 'strategy'] - }, - { - directive: ShowBookmarkDirective, - inputs: ['article'] - } - ], - providers: [provideTranslocoScope({ scope: 'article', loader })] -}) -export class ArticleDefaultComponent implements OnDestroy { - public readonly article = input.required
      (); - public readonly strategy = input(); - - appStore = inject(AppStore); - applicationStore = inject(ApplicationStore); - selectionStore = inject(SelectionStore); - queryParamStore = inject(QueryParamsStore); - searchService = inject(SearchService); - labelService = inject(LabelService); - - readonly editLabelsDialog = viewChild(LabelsEditComponent); - readonly addToCollectionDialog = viewChild(CollectionsDialog); - - showBookmark = signal(false); - showBookmarkOutputSubscription = inject(ShowBookmarkDirective)?.showBookmark.subscribe(value => { - this.showBookmark.set(value); - }); - - selected = computed(() => this.article()?.id === getState(this.selectionStore).id); - - protected extract = computed(() => { - if (!this.article().matchingpassages) return this.article().relevantExtracts; - - const topPassage = this.article().matchingpassages!.passages.sort((a, b) => (a.score > b.score ? -1 : 1))[0]; - return topPassage.highlightedText; - }); - - protected showTab = signal(false); - protected currentTab: Tab = 'attachments'; - - protected docformatMetadata = computed(() => { - if (this.article().docformat && !HIDDEN_METADATA.includes(this.article().docformat.toLowerCase())) return this.article().docformat; - - if (this.article().doctype && !HIDDEN_METADATA.includes(this.article().doctype!.toLowerCase())) return this.article().doctype; - - return undefined; - }); - - protected hasLabelsAccess = computed(() => this.applicationStore.hasLabelsAccess() || false); - - ngOnDestroy(): void { - this.showBookmarkOutputSubscription.unsubscribe(); - } - - public toggleTab(tab: Tab): void { - if (this.currentTab === tab) { - this.showTab.set(!this.showTab()); - return; - } - - this.currentTab = tab; - this.showTab.set(true); - } - - /** - * Apply filter from the metadata click - * @param field field to filter on - * @param value value from the filter - */ - setFilter(field: string, value: string): void { - let filter: LegacyFilter = { field, value }; - this.queryParamStore.updateFilter(filter); - this.searchService.search([]); - } - - editLabels(): void { - this.editLabelsDialog()?.showModal(); - } - - addToCollection(): void { - this.addToCollectionDialog()?.showModal(); - } -} +import { MetadataComponent } from '@sinequa/atomic-angular'; +import { BookmarkButtonComponent } from '@/core/features/bookmarks/bookmark-button'; +import { Component, computed, inject, input, OnDestroy, signal, viewChild } from '@angular/core'; +import { getState } from '@ngrx/signals'; + +import { + ApplicationStore, + AppStore, + ButtonComponent, + LabelService, + MenuComponent, + MenuContentComponent, + MenuItemComponent, + QueryParamsStore, + SearchService, + SelectArticleOnClickDirective, + SelectionStore, + SelectionStrategy, + ShowBookmarkDirective +} from '@sinequa/atomic-angular'; + +import { CollectionsDialog } from '@/core/features/collections/collections-add.dialog'; +import { LabelsEditComponent } from '@/core/features/labels/labels-edit.dialog'; +import { TranslocoDateImpurePipe } from '@/core/pipes/transloco-date.pipe'; +import { HashMap, provideTranslocoScope, Translation, TranslocoPipe } from '@jsverse/transloco'; +import { Article, LegacyFilter } from '@sinequa/atomic'; +import { SourceIconComponent } from '../../source-icon/source-icon.component'; +import { MissingTermsComponent } from '../missing-terms/missing-terms.component'; + +type Tab = 'attachments' | 'similars'; + +export interface CustomMetadata { + field: string; + title?: string; +} + +const HIDDEN_METADATA = ['web', 'htm', 'html', 'xhtm', 'xhtml', 'mht', 'mhtml', 'mht', 'aspx', 'page']; + +const loader = ['en', 'fr'].reduce( + (acc, lang) => { + acc[lang] = () => import(`../i18n/${lang}.json`); + return acc; + }, + {} as HashMap<() => Promise> +); + +@Component({ + selector: 'app-article-default', + standalone: true, + imports: [ + BookmarkButtonComponent, + SourceIconComponent, + TranslocoDateImpurePipe, + ButtonComponent, + MenuComponent, + MenuContentComponent, + MenuItemComponent, + TranslocoPipe, + LabelsEditComponent, + CollectionsDialog, + MissingTermsComponent, + MetadataComponent + ], + templateUrl: './article-default.component.html', + styleUrl: './article-default.component.scss', + hostDirectives: [ + { + directive: SelectArticleOnClickDirective, + inputs: ['article', 'strategy'] + }, + { + directive: ShowBookmarkDirective, + inputs: ['article'] + } + ], + providers: [provideTranslocoScope({ scope: 'article', loader })] +}) +export class ArticleDefaultComponent implements OnDestroy { + public readonly myarticle = input
      (); + public readonly customMetadata = input(); + public readonly article = input.required
      (); + public readonly strategy = input(); + + appStore = inject(AppStore); + applicationStore = inject(ApplicationStore); + selectionStore = inject(SelectionStore); + queryParamStore = inject(QueryParamsStore); + searchService = inject(SearchService); + labelService = inject(LabelService); + + readonly editLabelsDialog = viewChild(LabelsEditComponent); + readonly addToCollectionDialog = viewChild(CollectionsDialog); + + showBookmark = signal(false); + showBookmarkOutputSubscription = inject(ShowBookmarkDirective)?.showBookmark.subscribe(value => { + this.showBookmark.set(value); + }); + + selected = computed(() => this.article()?.id === getState(this.selectionStore).id); + + protected extract = computed(() => { + if (!this.article().matchingpassages) return this.article().relevantExtracts; + + const topPassage = this.article().matchingpassages!.passages.sort((a, b) => (a.score > b.score ? -1 : 1))[0]; + return topPassage.highlightedText; + }); + + protected showTab = signal(false); + protected currentTab: Tab = 'attachments'; + + protected docformatMetadata = computed(() => { + if (this.article().docformat && !HIDDEN_METADATA.includes(this.article().docformat.toLowerCase())) return this.article().docformat; + + if (this.article().doctype && !HIDDEN_METADATA.includes(this.article().doctype!.toLowerCase())) return this.article().doctype; + + return undefined; + }); + + protected hasLabelsAccess = computed(() => this.applicationStore.hasLabelsAccess() || false); + + ngOnDestroy(): void { + this.showBookmarkOutputSubscription.unsubscribe(); + } + + isArticle(value: any): value is { [key: string]: any } { + return value && typeof value === 'object' && 'entity13' in value; + } + + public toggleTab(tab: Tab): void { + if (this.currentTab === tab) { + this.showTab.set(!this.showTab()); + return; + } + + this.currentTab = tab; + this.showTab.set(true); + } + + /** + * Apply filter from the metadata click + * @param field field to filter on + * @param value value from the filter + */ + setFilter(field: string, value: string): void { + let filter: LegacyFilter = { field, value }; + this.queryParamStore.updateFilter(filter); + this.searchService.search([]); + } + + editLabels(): void { + this.editLabelsDialog()?.showModal(); + } + + addToCollection(): void { + this.addToCollectionDialog()?.showModal(); + } +} From 7c99a28d6d85b1f60b308b9ccc1b18bc2cc5b489 Mon Sep 17 00:00:00 2001 From: Guillaume Leibfried Date: Thu, 27 Feb 2025 14:54:55 +0100 Subject: [PATCH 059/658] add keyux and hostlisteners for keyboard shortcuts --- src/app/pages/search/all/search-all.component.html | 2 +- src/app/pages/search/search.abstract.ts | 9 ++++++++- .../article/default/article-default.component.html | 2 +- .../article/default/article-default.component.ts | 9 +++++++++ .../advanced-search/advanced-search.component.html | 1 + src/core/components/navbar/navbar.component.html | 4 +++- .../components/search-input/search-input.component.html | 5 +++-- .../features/is-not-input-event/is-not-input-event.ts | 4 ++++ 8 files changed, 30 insertions(+), 6 deletions(-) create mode 100644 src/core/features/is-not-input-event/is-not-input-event.ts diff --git a/src/app/pages/search/all/search-all.component.html b/src/app/pages/search/all/search-all.component.html index 2ef61652..e1046fcf 100644 --- a/src/app/pages/search/all/search-all.component.html +++ b/src/app/pages/search/all/search-all.component.html @@ -36,7 +36,7 @@ -
    - +
    - + @for (tab of tabs(); track tab.label) { -
  • - -
  • + + + {{ tab.label }} + } +
    -
  • -
    - -
    +
    @for (tab of tabs(); track tab.label) { -
    +
    } diff --git a/src/app/pages/home/home.component.ts b/src/app/pages/home/home.component.ts index 097a7de9..1a8ba005 100644 --- a/src/app/pages/home/home.component.ts +++ b/src/app/pages/home/home.component.ts @@ -13,6 +13,7 @@ import { CollectionsComponent } from '@/core/features/collections/collections'; import { RecentSearchesComponent } from '@/core/features/recent-searches/recent-searches'; import { SavedSearchesComponent } from '@/core/features/saved-searches/saved-searches'; import { UserMenuComponent } from '@/core/features/user-menu/user-menu'; +import { TabComponent, TabsComponent } from '@sinequa/ui'; type HomeTab = { name: string; @@ -58,7 +59,7 @@ const homeFeatures: HomeTab[] = [ host: { class: 'layout-search h-screen' }, - imports: [NgClass, NgComponentOutlet, SearchInputComponent, AutocompleteComponent, UserMenuComponent], + imports: [NgClass, NgComponentOutlet, SearchInputComponent, AutocompleteComponent, UserMenuComponent, TabsComponent, TabComponent], styles: [ ` #logo { diff --git a/src/app/pages/recent-searches/recent-searches.component.ts b/src/app/pages/recent-searches/recent-searches.component.ts index 810198e0..b45f6bd9 100644 --- a/src/app/pages/recent-searches/recent-searches.component.ts +++ b/src/app/pages/recent-searches/recent-searches.component.ts @@ -1,128 +1,127 @@ -import { Component, effect, inject, signal, untracked } from '@angular/core'; -import { Router, RouterModule } from '@angular/router'; -import { TranslocoPipe } from '@jsverse/transloco'; -import { toast } from 'ngx-sonner'; - -import { getRelativeDate } from '@sinequa/atomic'; -import { RecentSearch, UserSettingsStore } from '@sinequa/atomic-angular'; - -import { countFilters, wrapFiltersToArray } from '@/core/features/recent-searches/utils'; - -import { NavbarComponent } from "../../../core/components/navbar/navbar.component"; - -@Component({ - selector: 'app-recent-searches', - standalone: true, - imports: [RouterModule, NavbarComponent, TranslocoPipe], - template: ` - - - - `, - styles: `` -}) -export class RecentSearchesComponent { - readonly getRelativeDate = getRelativeDate; - - readonly router = inject(Router); - readonly userSettingsStore = inject(UserSettingsStore); - readonly history = signal<{ date: string; searches: RecentSearch[] }[]>([]); - - constructor() { - effect(() => { - const recentSearches = this.userSettingsStore.recentSearches(); - - untracked(() => { - const groupedByDay = recentSearches.reduce((acc, search) => { - const date = new Date(search.date).toISOString().split('T')[0]; - - if (!acc[date]) acc[date] = []; - - acc[date].push(search); - - // add filterCount on the fly - search.filterCount = countFilters(search.queryParams?.filters); - - if (search.queryParams?.filters) - search.queryParams.filters = wrapFiltersToArray(search.queryParams.filters); - - return acc; - }, {} as Record); - const sortedDates = Object.keys(groupedByDay).sort((a, b) => b.localeCompare(a)); - const sortedGroupedByDay = sortedDates.map(date => ({ date, searches: groupedByDay[date] })); - - this.history.set(sortedGroupedByDay); - }); - }, { allowSignalWrites: true }); - } - - async remove(event: Event, search: RecentSearch) { - event.stopImmediatePropagation(); - - const index = this.userSettingsStore.recentSearches().findIndex(s => s === search); - await this.userSettingsStore.deleteRecentSearch(index); - - toast.success('Recent search deleted'); - } - - getQueryParams(search: RecentSearch): Record { - return { - q: search.queryParams?.text, - f: (search.queryParams?.filters ?? []).length > 0 ? JSON.stringify(search.queryParams?.filters) : undefined, - t: search.queryParams?.tab, - p: search.queryParams?.page, - queryName: search.queryParams?.queryName - } as any; - } -} +import { Component, effect, inject, signal, untracked } from '@angular/core'; +import { Router, RouterModule } from '@angular/router'; +import { TranslocoPipe } from '@jsverse/transloco'; +import { toast } from 'ngx-sonner'; + +import { getRelativeDate } from '@sinequa/atomic'; +import { RecentSearch, UserSettingsStore } from '@sinequa/atomic-angular'; + +import { countFilters, wrapFiltersToArray } from '@/core/features/recent-searches/utils'; + +import { NavbarComponent } from '../../../core/components/navbar/navbar.component'; + +@Component({ + selector: 'app-recent-searches', + standalone: true, + imports: [RouterModule, NavbarComponent, TranslocoPipe], + template: ` + + + + `, + styles: `` +}) +export class RecentSearchesComponent { + readonly getRelativeDate = getRelativeDate; + + readonly router = inject(Router); + readonly userSettingsStore = inject(UserSettingsStore); + readonly history = signal<{ date: string; searches: RecentSearch[] }[]>([]); + + constructor() { + effect( + () => { + const recentSearches = this.userSettingsStore.recentSearches(); + + untracked(() => { + const groupedByDay = recentSearches.reduce( + (acc, search) => { + const date = new Date(search.date).toISOString().split('T')[0]; + + if (!acc[date]) acc[date] = []; + + acc[date].push(search); + + // add filterCount on the fly + search.filterCount = countFilters(search.queryParams?.filters); + + if (search.queryParams?.filters) search.queryParams.filters = wrapFiltersToArray(search.queryParams.filters); + + return acc; + }, + {} as Record + ); + const sortedDates = Object.keys(groupedByDay).sort((a, b) => b.localeCompare(a)); + const sortedGroupedByDay = sortedDates.map(date => ({ date, searches: groupedByDay[date] })); + + this.history.set(sortedGroupedByDay); + }); + }, + { allowSignalWrites: true } + ); + } + + async remove(event: Event, search: RecentSearch) { + event.stopImmediatePropagation(); + + const index = this.userSettingsStore.recentSearches().findIndex(s => s === search); + await this.userSettingsStore.deleteRecentSearch(index); + + toast.success('Recent search deleted'); + } + + getQueryParams(search: RecentSearch): Record { + return { + q: search.queryParams?.text, + f: (search.queryParams?.filters ?? []).length > 0 ? JSON.stringify(search.queryParams?.filters) : undefined, + t: search.queryParams?.tab, + p: search.queryParams?.page, + queryName: search.queryParams?.queryName + } as any; + } +} diff --git a/src/app/pages/search/all/search-all.component.html b/src/app/pages/search/all/search-all.component.html index fe45dfe9..f2428da9 100644 --- a/src/app/pages/search/all/search-all.component.html +++ b/src/app/pages/search/all/search-all.component.html @@ -1,15 +1,19 @@
    + @if (isTabSearchActive()) { + + } + @if (query.isPending()) { -
    + } @else if (query.isSuccess()) { @@ -21,10 +25,10 @@ @if (query.isPending()) {
    -
    +
    -
      +