commit 63ef4f6f40c424687fa97f144c97d2f16cb88177 from: mtmn date: Sun Aug 2 18:11:17 2026 UTC fix: update arch diagram, deps and format commit - 9f9520a342c61bdd9e1a1c83f2450df405a0c5dc commit + 63ef4f6f40c424687fa97f144c97d2f16cb88177 blob - 42c8301937d044057bcbc6ecba8c3516b144b697 blob + cd34b0c1e426b5409f77e7157d277be655b93dfb --- docs/architecture.dot +++ docs/architecture.dot @@ -1,91 +1,86 @@ digraph corpus { - rankdir=LR - compound=true - splines=ortho - concentrate=true - nodesep=0.7 - ranksep=1.6 - bgcolor=transparent + graph [ + rankdir=LR + bgcolor="transparent" + nodesep=0.7 + ranksep=1.0 + pad=0.2 + fontname="Atkinson Hyperlegible Mono" + fontcolor="#e8edf5" + ] - node [fontname="Atkinson Hyperlegible Mono", fontsize=11, shape=box, style="rounded,filled", fontcolor=white] - edge [fontname="Atkinson Hyperlegible Mono", fontsize=9, color="#aaaaaa", fontcolor="#aaaaaa", arrowhead=vee, arrowsize=0.8, penwidth=1.4] - - subgraph cluster_frontend { - label="Frontend" + node [ + fontname="Atkinson Hyperlegible Mono" + fontsize=10 + shape=box style="rounded,filled" - fillcolor="#1e1533" - color="#9b7de8" - fontcolor=white + color="#8b97a8" + fontcolor="#ffffff" + margin="0.18,0.12" + ] + edge [ fontname="Atkinson Hyperlegible Mono" - UI [label="Elm SPA\n?user=slug", fillcolor="#2d2050"] - Client [label="Scrobble Client\n(LB-compatible)", fillcolor="#2d2050"] + fontsize=8 + color="#aeb8c7" + fontcolor="#d5dce7" + arrowhead=vee + arrowsize=0.7 + penwidth=1.25 + ] + + subgraph cluster_clients { + label="People and clients" + style="rounded,filled" + fillcolor="#201a35" + color="#9879dc" + fontcolor="#ffffff" + Clients [ + label="Browser\nElm SPA\n\nScrobbler\nListenBrainz-compatible\n\nAdministrator · Prometheus (optional)" + fillcolor="#302550" + ] } subgraph cluster_server { - label="Corpus Server" + label="Corpus server · PureScript on Node.js" style="rounded,filled" - fillcolor="#112611" - color="#5aaa5a" - fontcolor=white - fontname="Atkinson Hyperlegible Mono" - API [label="Web API", fillcolor="#1c3e1c"] - Proxy [label="Cover Proxy", fillcolor="#1c3e1c"] - LBSync [label="ListenBrainz Sync", fillcolor="#1c3e1c"] - LFSync [label="Last.fm Sync", fillcolor="#1c3e1c"] - Enrich [label="Enrichment Task", fillcolor="#1c3e1c"] + fillcolor="#11291d" + color="#59aa76" + fontcolor="#ffffff" + Corpus [ + label="HTTP server and API\nSPA · proxy · stats · cover · similar\n\nPer-user background work\nListenBrainz and Last.fm sync\nmetadata enrichment · cover cache · database backup\n\nRegistration/admin workflow · optional metrics" + fillcolor="#1b422d" + ] } subgraph cluster_storage { - label="Storage" + label="Persistent storage" style="rounded,filled" - fillcolor="#272000" - color="#d4a80c" - fontcolor=white - fontname="Atkinson Hyperlegible Mono" - DB [label="DuckDB", shape=cylinder, fillcolor="#3d3100"] - S3 [label="S3 Bucket", shape=box3d, fillcolor="#3d3100"] + fillcolor="#302a10" + color="#d2aa35" + fontcolor="#ffffff" + Storage [ + label="DuckDB files — one per user\nscrobbles · release metadata · API tokens\n\nregistrations.db — shared registration state\n\nS3-compatible bucket\ncover cache · database backups" + shape=cylinder + fillcolor="#473d15" + ] } subgraph cluster_external { - label="External APIs" + label="External services" style="rounded,filled" - fillcolor="#0e1e38" - color="#5a8de0" - fontcolor=white - fontname="Atkinson Hyperlegible Mono" - LB [label="ListenBrainz", fillcolor="#162d52"] - LF [label="Last.fm", fillcolor="#162d52"] - MB [label="MusicBrainz", fillcolor="#162d52"] - DC [label="Discogs", fillcolor="#162d52"] - CAA [label="Cover Art Archive", fillcolor="#162d52"] + fillcolor="#11243e" + color="#6396e7" + fontcolor="#ffffff" + External [ + label="ListenBrainz · Last.fm\nMusicBrainz · Discogs\nCover Art Archive\ncosine.club\nSMTP server (optional)" + fillcolor="#19365d" + ] } - // Scrobble Sync - LB -> LBSync - LF -> LFSync - LBSync -> DB - LFSync -> DB - - // Enrichment - DB -> Enrich - Enrich -> MB - Enrich -> LF - Enrich -> DC - Enrich -> DB [constraint=false] - - // Scrobble Submission - Client -> API [label="POST /1/submit-listens\n(token auth)"] - API -> DB [constraint=false] - - // Web UI - UI -> API - API -> DB - - // Cover Art - UI -> Proxy - Proxy -> S3 - Proxy -> CAA - Proxy -> LF - Proxy -> DC - Proxy -> S3 [constraint=false] + Clients -> Corpus [label="SPA, listen submission, admin, /metrics"] + Corpus -> Storage [label="per-user data, registrations, cached covers, backups"] + Corpus -> External [ + dir=both + label="sync · enrichment · cover lookup\nCAA → Discogs → Last.fm · similar tracks · email" + ] } blob - 7a953bae5094219599b8002fc264a8d3bbe282d8 blob + eed80c07978d2ebc4cd56334d474bf00b2025259 --- docs/architecture.svg +++ docs/architecture.svg @@ -1,220 +1,97 @@ - - - + + corpus -cluster_frontend - -Frontend +cluster_clients + +People and clients cluster_server - -Corpus Server + +Corpus server  ·  PureScript on Node.js cluster_storage - -Storage + +Persistent storage cluster_external - -External APIs + +External services - + -UI - -Elm SPA -?user=slug +Clients + +Browser +Elm SPA +Scrobbler +ListenBrainz-compatible +Administrator · Prometheus (optional) - - -API - -Web API - - - -UI->API - - - - - -Proxy - -Cover Proxy - - - -UI->Proxy - - - - + -Client - -Scrobble Client -(LB-compatible) +Corpus + +HTTP server and API +SPA · proxy · stats · cover · similar +Per-user background work +ListenBrainz and Last.fm sync +metadata enrichment · cover cache · database backup +Registration/admin workflow · optional metrics - - -Client->API - - -POST /1/submit-listens -(token auth) - - - -DB - - -DuckDB - - - -API->DB - - - - - -S3 - - - - -S3 Bucket - - - -Proxy->S3 - - - - - -LF - -Last.fm - - - -Proxy->LF - - - - - -DC - -Discogs - - - -Proxy->DC - - - - - -CAA - -Cover Art Archive - - - -Proxy->CAA - - - - - -LBSync - -ListenBrainz Sync - - - -LBSync->DB - - - - - -LFSync - -Last.fm Sync - - - -LFSync->DB - - - - - -Enrich - -Enrichment Task - - - -Enrich->DB - - - - - -Enrich->LF - - - - - -MB - -MusicBrainz - - - -Enrich->MB - - - - - -Enrich->DC - - - - - -LB - -ListenBrainz - - + -LB->LBSync - - +Clients->Corpus + + +SPA, listen submission, admin, /metrics - + + +Storage + + +DuckDB files — one per user +scrobbles · release metadata · API tokens +registrations.db — shared registration state +S3-compatible bucket +cover cache · database backups + + -LF->LFSync - - +Corpus->Storage + + +per-user data, registrations, cached covers, backups + + +External + +ListenBrainz · Last.fm +MusicBrainz · Discogs +Cover Art Archive +cosine.club +SMTP server (optional) + + +Corpus->External + + + +sync · enrichment · cover lookup +CAA → Discogs → Last.fm · similar tracks · email + + blob - 39f7a209508cf1f2778b455e20a58f5f9df7c526 blob + 5a395853ad588c850fe0ace5d4c2fcab69c48eeb --- flake.nix +++ flake.nix @@ -188,9 +188,11 @@ elm2nix.packages.${system}.default pkgs.nodejs pkgs.elmPackages.elm + pkgs.elmPackages.elm-analyse pkgs.elmPackages.elm-format pkgs.elmPackages.elm-json pkgs.pnpm + pkgs.statix ]; }; blob - 012ac271c858af922419583eecd1d0d509aef22a blob + 35c7ed96ba1b802f5f33d8556a38708d92c0479a --- package.json +++ package.json @@ -1,34 +1,34 @@ { - "name": "corpus", - "version": "3.1.0", - "description": "ListenBrainz and Last.fm frontend", - "main": "index.js", - "type": "module", - "scripts": { - "build": "spago build && esbuild output/Main/index.js --bundle --platform=node --format=esm --footer:js='main();' --outfile=server.js --external:http --external:https --external:dotenv --external:url --external:@duckdb/node-api --external:@aws-sdk/client-s3 --external:@aws-sdk/s3-request-presigner --external:prom-client --external:sharp --external:uuid --external:nodemailer && elm make src/Client.elm --output=client.js", - "release": "spago build && purs-backend-es build && esbuild output-es/Main/index.js --bundle --platform=node --format=esm --footer:js='main();' --outfile=server.js --external:http --external:https --external:dotenv --external:url --external:@duckdb/node-api --external:@aws-sdk/client-s3 --external:@aws-sdk/s3-request-presigner --external:prom-client --external:sharp --external:uuid --external:nodemailer && elm make src/Client.elm --optimize --output=client.js && uglifyjs client.js --compress \"pure_funcs=[F2,F3,F4,F5,F6,F7,F8,F9,A2,A3,A4,A5,A6,A7,A8,A9],pure_getters,keep_fargs=false,unsafe_comps,unsafe\" | uglifyjs --mangle --output client.js", - "test": "spago test", - "tidy": "purs-tidy format-in-place src/**/*.purs" - }, - "devDependencies": { - "esbuild": "^0.28.1", - "purescript-language-server": "^0.18.5", - "purescript-psa": "^0.9.0", - "purs-backend-es": "^1.4.3", - "purs-tidy": "^0.11.1", - "spago": "^1.0.4", - "uglify-js": "^3.19.3", - "whine": "^0.0.34" - }, - "dependencies": { - "@aws-sdk/client-s3": "^3.1085.0", - "@aws-sdk/s3-request-presigner": "^3.1085.0", - "@duckdb/node-api": "1.5.4-r.1", - "dotenv": "^17.4.2", - "nodemailer": "^6.10.1", - "prom-client": "^15.1.3", - "purescript": "^0.15.16", - "sharp": "^0.35.3", - "uuid": "^14.0.1" - } + "name": "corpus", + "version": "3.1.0", + "description": "ListenBrainz and Last.fm frontend", + "main": "index.js", + "type": "module", + "scripts": { + "build": "spago build && esbuild output/Main/index.js --bundle --platform=node --format=esm --footer:js='main();' --outfile=server.js --external:http --external:https --external:dotenv --external:url --external:@duckdb/node-api --external:@aws-sdk/client-s3 --external:@aws-sdk/s3-request-presigner --external:prom-client --external:sharp --external:uuid --external:nodemailer && elm make src/Client.elm --output=client.js", + "release": "spago build && purs-backend-es build && esbuild output-es/Main/index.js --bundle --platform=node --format=esm --footer:js='main();' --outfile=server.js --external:http --external:https --external:dotenv --external:url --external:@duckdb/node-api --external:@aws-sdk/client-s3 --external:@aws-sdk/s3-request-presigner --external:prom-client --external:sharp --external:uuid --external:nodemailer && elm make src/Client.elm --optimize --output=client.js && uglifyjs client.js --compress \"pure_funcs=[F2,F3,F4,F5,F6,F7,F8,F9,A2,A3,A4,A5,A6,A7,A8,A9],pure_getters,keep_fargs=false,unsafe_comps,unsafe\" | uglifyjs --mangle --output client.js", + "test": "spago test", + "tidy": "purs-tidy format-in-place src/**/*.purs" + }, + "devDependencies": { + "esbuild": "^0.28.1", + "purescript-language-server": "^0.18.5", + "purescript-psa": "^0.9.0", + "purs-backend-es": "^1.4.3", + "purs-tidy": "^0.11.1", + "spago": "^1.0.4", + "uglify-js": "^3.19.3", + "whine": "^0.0.34" + }, + "dependencies": { + "@aws-sdk/client-s3": "^3.1101.0", + "@aws-sdk/s3-request-presigner": "^3.1101.0", + "@duckdb/node-api": "1.5.4-r.1", + "dotenv": "^17.4.2", + "nodemailer": "^6.10.1", + "prom-client": "^15.1.3", + "purescript": "^0.15.16", + "sharp": "^0.35.3", + "uuid": "^14.0.1" + } } blob - 45c95ca5466bef353104ecd6543bfc8014fdf3ef blob + 5c496a980ab40b83d06bf1c2e451a26e98912ac6 --- pnpm-lock.yaml +++ pnpm-lock.yaml @@ -9,11 +9,11 @@ importers: .: dependencies: '@aws-sdk/client-s3': - specifier: ^3.1085.0 - version: 3.1085.0 + specifier: ^3.1101.0 + version: 3.1101.0 '@aws-sdk/s3-request-presigner': - specifier: ^3.1085.0 - version: 3.1085.0 + specifier: ^3.1101.0 + version: 3.1101.0 '@duckdb/node-api': specifier: 1.5.4-r.1 version: 1.5.4-r.1 @@ -28,7 +28,7 @@ importers: version: 15.1.3 purescript: specifier: ^0.15.16 - version: 0.15.16 + version: 0.15.16(bluebird@3.7.2)(supports-color@10.2.2) sharp: specifier: ^0.35.3 version: 0.35.3 @@ -63,76 +63,76 @@ importers: packages: - '@aws-sdk/checksums@3.1000.16': - resolution: {integrity: sha512-EKnvkXSmz3IpA99tCNuI+dLFXyZyClSm8zns9sB/elvkU+MTuomAs6toJMPMBf98/fICG/urXDkzGz0/c3yyAQ==} + '@aws-sdk/checksums@3.1000.24': + resolution: {integrity: sha512-7TWLjypP8kk3savsDBRuhZJx7mBuFFA2136BQhwwLllsAnO4Tmq/p+SXZaNxbuulkzUFz3BZzj0bb4YzexZcNQ==} engines: {node: '>=20.0.0'} - '@aws-sdk/client-s3@3.1085.0': - resolution: {integrity: sha512-O0xe8sR50AYkwxlvRRsV0qytEO2dtXQTQ1CF3YBBdE5xtVkbu27H0vGa1mjQi1/+fbYM80AWEIPai5jZmXyubw==} + '@aws-sdk/client-s3@3.1101.0': + resolution: {integrity: sha512-16EFb1aTEBgPcfUAWAjjlB57IZCyn7B3rlfT+xqE7M6WoH8AMMU3vFZO0UOitwh/xvvzVx73YED1/n0PU4qBMw==} engines: {node: '>=20.0.0'} - '@aws-sdk/core@3.975.1': - resolution: {integrity: sha512-8qh/6EYb7hl/ZwVfQufhbMEZs1gQIc7GbdrIf4eprQJ7cv042+74nE6l3YDfyWNzb9iPXb8fRyYSHkNIk5eE6Q==} + '@aws-sdk/core@3.977.4': + resolution: {integrity: sha512-CEkcQlMOQJCvul60U7wdAOACjtdgFWDsfJI+6wUOGdhGNV2lGbuJpi/R50QLpFG3Tp+sQxa/RmzC3X7KHbhuTA==} engines: {node: '>=20.0.0'} - '@aws-sdk/credential-provider-env@3.972.57': - resolution: {integrity: sha512-1RfJaF7SW1TOnvNGU7kaYjwUf5H3sfm+synGH1bHhRlqcnxCt3szebH3dmKEyY4tuGcbQ6ffzUT89cRitBV8OQ==} + '@aws-sdk/credential-provider-env@3.972.65': + resolution: {integrity: sha512-lJT2aRw9wCV8jPHyFJjdZLD4HTydL6/22AnCSOB8e/LqOc55nEJGLHkJQeSxhn8QiqyjFwPKQFtMw0ovjRUY/g==} engines: {node: '>=20.0.0'} - '@aws-sdk/credential-provider-http@3.972.59': - resolution: {integrity: sha512-sRCkpTiFnCdQvuaRVjQ6SVoHu6i7RUpurVo1c4F81HWhPvUJ7Wdp5MNtSdX1O29CNXc8em3O5m52hCjVtAD9SA==} + '@aws-sdk/credential-provider-http@3.972.67': + resolution: {integrity: sha512-N7fw/15hSwI/CPxe5ohOyb7O4ge9f5me1gVIn8OIkBRB0squ8OJqQyDyH/HoL+Sb1W5xdC88jVC+bHkw73iu+Q==} engines: {node: '>=20.0.0'} - '@aws-sdk/credential-provider-ini@3.973.1': - resolution: {integrity: sha512-6d8H6ZAh3ZPKZ6fe1nG2OWeZEZPtt9ravoD1dezPdPtsSkJRoxGAnFSHwKT3E/Te6fHE30zRzjV6TD12rvF6yQ==} + '@aws-sdk/credential-provider-ini@3.973.10': + resolution: {integrity: sha512-Zh9XRaPnDN9buO7GfWBubS22R6Nq5D6hbyYEMN05LiOnXugm/8WDjUx6y756bSPbdn3aJB2qG4zFW3bN82QhoQ==} engines: {node: '>=20.0.0'} - '@aws-sdk/credential-provider-login@3.972.63': - resolution: {integrity: sha512-GREWRrMj0XnNKMaVa/Mauoaui26qBEHu71WWqXbwZOu/jFQOnPZjTf7u0KtGKC8VGa6VUs9kDWGgocrKNLS9vw==} + '@aws-sdk/credential-provider-login@3.972.72': + resolution: {integrity: sha512-zZapIKwaHp7TdTf9hbH1I3CVUdEupmt7FXO/BoTQGC+4h6NkXKWpqF2p5WyfpjurDLHCpSyh+BzMlAg8arqWLA==} engines: {node: '>=20.0.0'} - '@aws-sdk/credential-provider-node@3.972.66': - resolution: {integrity: sha512-f+qjRXZpz7sgzbc4QB+6nLKfyKFgRRXzWdXbsKPv/VhVRyHsDyq4yBWC/B75BAJpFIcUeI2XR/3gdWJ677zB4A==} + '@aws-sdk/credential-provider-node@3.972.76': + resolution: {integrity: sha512-1yzLmRiYSgGC25v7ZZEwJn/auhHHTIHgFOmzL2f36hf1+7jSLcX+1QrAz4760WEzPiiQl8xmlpFhHfl2OoyVzA==} engines: {node: '>=20.0.0'} - '@aws-sdk/credential-provider-process@3.972.57': - resolution: {integrity: sha512-TiVQhuU0pbhIZAUZacbPHMyzrIdiH+lnx+PMY/Pu/b93dJrq3wdZwzUJ0TPpvNxaqbHsxJvQZW3/h/beLiKq7Q==} + '@aws-sdk/credential-provider-process@3.972.65': + resolution: {integrity: sha512-e5DbbNteOSalN58U83G6kFa4ECLEuGbGqNBHIXE7zYXA/m4GHblIGjFbSH7wYv6gBV8iNSDcRZBKfQZF5vF9nw==} engines: {node: '>=20.0.0'} - '@aws-sdk/credential-provider-sso@3.973.1': - resolution: {integrity: sha512-3foTZUJ4821Ij60X7K3NJroygiZLnbBmarN+T//O2cjkISan90zElN3NBmgSlDrTQ7Gs6z/yO8V7h60QNcDZHQ==} + '@aws-sdk/credential-provider-sso@3.973.9': + resolution: {integrity: sha512-0V0u4t+KBku9fbh5CPCaC5hUWwSzDafp8nCuDy817zWbp2gz80jO44rMQkiwnZ+k54B+tjAtzRy00DJRGTKGBg==} engines: {node: '>=20.0.0'} - '@aws-sdk/credential-provider-web-identity@3.972.63': - resolution: {integrity: sha512-8qZLFhM69eKcS37m459ctPR05Qimycm/74OPVioe6wNZabMT54GYhwBju0+J656RkMasNSawWQu+c8CmBe3TUQ==} + '@aws-sdk/credential-provider-web-identity@3.972.71': + resolution: {integrity: sha512-e4dwiRltGAaQ+2yxw57Hj0l/BF3BHiG14+QpYE7bGYBlpAq/fkIri2BDhjWon8c0mhhtd2txQBAkQb9BcTStFg==} engines: {node: '>=20.0.0'} - '@aws-sdk/middleware-sdk-s3@3.972.62': - resolution: {integrity: sha512-k8JJwYXVYlOOjWnPZDThQS1xDFJgi5Dokt73qFlDtrZAbdcint5aIdjB9XgJAAQVP5OoqcefQmh1FYXiPpvsvw==} + '@aws-sdk/middleware-sdk-s3@3.972.70': + resolution: {integrity: sha512-APdP0iODt39AkjCjzTFIoFrxDH/Cz3CpWRDKLcsJg7eOnfE1htkxL9BhDoe/xL7cXdoMwh2HBYv3DiT1uf64NQ==} engines: {node: '>=20.0.0'} - '@aws-sdk/nested-clients@3.997.31': - resolution: {integrity: sha512-BDHTpwcsZHEBNEJzOg/B1BkFYJxAXY50dau/NyVWs3d51F0WgIUGSWZot/Os+N3KpDhXeaXnz37mWffAvduREw==} + '@aws-sdk/nested-clients@3.997.39': + resolution: {integrity: sha512-wU5NPnj62Sb7A8xn/Zb+xThe05P3otNtDl37iOIi5DDMeCesNeCckaG+eXWGUs12Z9R34I8CD05TaTe6SIa61g==} engines: {node: '>=20.0.0'} - '@aws-sdk/s3-request-presigner@3.1085.0': - resolution: {integrity: sha512-h8fv0zGAHPCjCpmAYdCeFE6trxXxLRxza0NRIajMZdnFgugtcIWcRAdAtc7rHvRTaXsej/I5YWXbq9SgKuCKow==} + '@aws-sdk/s3-request-presigner@3.1101.0': + resolution: {integrity: sha512-2raRfiex9qYrdQ60ATeEmOVVC7Do2GEDGSTnoPbgv+xyN3oB48tZeREVw0brI7AlRRvm9fygXTHmyRR0I/LskA==} engines: {node: '>=20.0.0'} - '@aws-sdk/signature-v4-multi-region@3.996.39': - resolution: {integrity: sha512-8+srXqYIF8KYMLC4FxMLEM5Ek7kUNibJu1R4m8/fUhhNYIZZz26oGtKkCr8I/HiG2fFQxBvaGgQZT4/mqRCSnA==} + '@aws-sdk/signature-v4-multi-region@3.996.43': + resolution: {integrity: sha512-lKekx8bLBXSv4O+cslk9Zfnw2XKSkWBs3uWL5QGhH2ZAQfNS7FE0vcSSN2vD/AhxX54ZTywWxR4STThoeOXlBA==} engines: {node: '>=20.0.0'} - '@aws-sdk/token-providers@3.1083.0': - resolution: {integrity: sha512-s0woKnxuHrExLc5L2ArIH5BMkbonHPtt+5hSBM8oknp9M6QTuUmmAmJ2E0EdzCGONrO+8+ADPqvv6UX0nNcc7A==} + '@aws-sdk/token-providers@3.1100.0': + resolution: {integrity: sha512-THf3MkgY3fNJZ3zdgSenLqR7gSE68KccCj1RCKretlG73Ppszvues02VpCUO9NlB/tZDC483FvGCld+AiPCkvg==} engines: {node: '>=20.0.0'} - '@aws-sdk/types@3.974.0': - resolution: {integrity: sha512-QIBrw90CDm4O0UaIIzkU6DrFdeJzEb2Va5EPEVpyldj6sHJxB6cshhStJuhZxk3wR3PmjJlYsjPmY1kNb+KGBg==} + '@aws-sdk/types@3.974.2': + resolution: {integrity: sha512-3W6IUtSxFbH6X7Wb7DzGCV5QiFQsd0g8bOfntpmDxQlzBoKWUMBu/JPQR0DwkE+Hpnxd6db1tXbOwdeHddG6cA==} engines: {node: '>=20.0.0'} - '@aws-sdk/xml-builder@3.972.34': - resolution: {integrity: sha512-wHhWL1y7sN3enBA8POrPpQM5jCcmu2ozyhbRei4c8OjVcEaEs6yLucLa/pla457ggS/ysuy7bosagz3HaJkZXA==} + '@aws-sdk/xml-builder@3.972.37': + resolution: {integrity: sha512-zKq4HQum8JwDyEuyfuI4bbiAcU0KxP6qy+9PR/IsR92IyE/DaBAikzAS50tjxip4bqIIANpCcG+Yyj6CVhXupg==} engines: {node: '>=20.0.0'} '@aws/lambda-invoke-store@0.3.0': @@ -189,8 +189,8 @@ packages: '@duckdb/node-bindings@1.5.4-r.1': resolution: {integrity: sha512-v834OZZKQ59yAvh8GOEmM+R1foPNgdMGL0VTBgHywgblgQNyq11HvWgT4QGJIUFfo/cQ9WFyf1MFhK0+hV1aiA==} - '@emnapi/runtime@1.11.2': - resolution: {integrity: sha512-kyOl3X0DuTiT1h2ft8r2fYO8JYtU9a9Xis/zBSiGArNaagCOWx90N1k2wxp18czFDH+OgcWGb5ZP/XMt3dcyPA==} + '@emnapi/runtime@1.11.3': + resolution: {integrity: sha512-Xz4Tpyki7XyrpbUK1jR1AhdAdaXyhhY4lZ3neLodmhpuWfy2PAQN5B46sAiU4liOXGLkHypn/qU+jvfWSCYYLA==} '@esbuild/aix-ppc64@0.28.1': resolution: {integrity: sha512-Svl7tq8k/08+p6CXPpRjQ1fKX+1odH/BQbb48fV6fj3CWHhsoIOoY87w1oHXm0qEpkIK3ZfVgp0hed3XBXzXMQ==} @@ -546,24 +546,24 @@ packages: resolution: {integrity: sha512-gLyJlPHPZYdAk1JENA9LeHejZe1Ti77/pTeFm/nMXmQH/HFZlcS/O2XJB+L8fkbrNSqhdtlvjBVjxwUYanNH5Q==} engines: {node: '>=8.0.0'} - '@smithy/core@3.29.3': - resolution: {integrity: sha512-L+Ys6ecjk5vwPMAKHBpPKlJ3DkqwNcnfEISXBZIsVvWG/XKXfsAP8mwIYlTeLcd2ElHdesPI8OuOmJSFAPhm6A==} + '@smithy/core@3.31.1': + resolution: {integrity: sha512-CyogUINxvi7C7LDsh8Syo6hVJOT9ckz4rG8dRZfTJ8r91HkMY59PnNooaj7WcHyxEkxPfBAmbgztZU+xTo76lg==} engines: {node: '>=18.0.0'} - '@smithy/credential-provider-imds@4.4.8': - resolution: {integrity: sha512-q9J7JTiXrAhB8sDp4px97uEPT7CwKH61Co78grdNQvU8QZAdiuaSRhP0tUVf2ogy36RZTrlMU1rBmDEH+cnkiA==} + '@smithy/credential-provider-imds@4.4.16': + resolution: {integrity: sha512-QfuLWAkLzptffFW980AFeHZFdqds2B64rpEd3uJ6lgs3xVn9QegGMUgUcj+4d7dRrAsya3r58ZKpku97WcFb4w==} engines: {node: '>=18.0.0'} - '@smithy/fetch-http-handler@5.6.5': - resolution: {integrity: sha512-SuqeisTyPoiIPtIYru/sGxGyXzmZ+8nnFOhC+qRPglt06Ebd1yH//CDltZB2J/3WBNVhwfUaZ0EtHB3cm2X32g==} + '@smithy/fetch-http-handler@5.6.13': + resolution: {integrity: sha512-4fW86pEUOMbrD5nkbyl/tTvPHHWJFbuB2odl6ps9lWfHoXf9HWh3Q/Smh59qH1g7+c/BSZghX6bbUk4gsiMs8A==} engines: {node: '>=18.0.0'} - '@smithy/node-http-handler@4.9.5': - resolution: {integrity: sha512-bNqdxTQTxmLbomSmlkZFz8L6B/feQ2HHzw4L2zY7Ecp2XffYAZq2uzdWDdxJHJFbEvqd+SRuluJso0P8+xPdbw==} + '@smithy/node-http-handler@4.9.13': + resolution: {integrity: sha512-Nmd/Nl35zfYrd+a6OO2cDJb3GPh9bgTjIUhcM+JFfjpp8/osCgboDV5nCT1I01Pv6R13eSKDKLSoVa5ZB6Zsfw==} engines: {node: '>=18.0.0'} - '@smithy/signature-v4@5.6.4': - resolution: {integrity: sha512-B89bpf2t/y/wia6LZ+4JfHXYQT9PnVftsH05rgJKKIStS7r/4XSs9HOjtPoLtgcA6HCW9jVqX5DBbq7E0PAkiQ==} + '@smithy/signature-v4@5.6.12': + resolution: {integrity: sha512-I6KLtq3H0qqSuV9vLglfi8puHqzygzWHOnI4z/Rdoo+q50vvo18vBRdPAvvEtcaKROz7Zn6qnPa14kRfPH6PcQ==} engines: {node: '>=18.0.0'} '@smithy/types@4.16.1': @@ -634,15 +634,15 @@ packages: bowser@2.14.1: resolution: {integrity: sha512-tzPjzCxygAKWFOJP011oxFHs57HzIhOEracIgAePE4pqB3LikALKnSzUyU4MGs9/iCEUuHlAJTjTc5M+u7YEGg==} - brace-expansion@1.1.16: - resolution: {integrity: sha512-IDw48K2/2kRkg9LdJxurvq3lV3aBgq0REY89duEqFRthjlPdXHKMj7EnQOXVckxzgisinf3nHfrcE2FufFLXMw==} + brace-expansion@1.1.18: + resolution: {integrity: sha512-Edep/X9fGqVNmzKBVsDYIOtD+z1tuezV70LBjdCst9Tqu76lsnvRiZ6oTic1n+/BIwX6QDGAO94PN4N2SADvtw==} - brace-expansion@2.1.2: - resolution: {integrity: sha512-w5JZcKgdhDOgOwm8H+KgbosopHMuGcl6qbulwjtz3SM7I7P3yW1eAjzMPLrIE+NQ9vjgANKHWeMHnrT0OXW1oA==} + brace-expansion@2.1.4: + resolution: {integrity: sha512-hGfVzPxthbf3+2yjg/RBs60cB0FhqBS/zvdV/4wn4/BmN0bNMMHPc4V/BbFieqf1TKAGGAHnY4eSjajCl0f2Xg==} - brace-expansion@5.0.7: - resolution: {integrity: sha512-7oFy703dxfY3/NLxC1fh2SUCQ0H9rmAY+5EpDVfXjUTTs+HEwR2nYaqLv+GWcTsumwxPfiz6CzCNkwXwBUwqCA==} - engines: {node: 18 || 20 || >=22} + brace-expansion@5.0.9: + resolution: {integrity: sha512-ScQ4IuvIEF1TMlP7Zt+vjJ//9zlPb2SDcxWxM3bk8s6t6GGdJ7KO1dCcTidOPJKePW30LE/2cT7wCyPho9/Wxg==} + engines: {node: 20 || >=22} braces@3.0.3: resolution: {integrity: sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==} @@ -825,8 +825,8 @@ packages: from2@2.3.0: resolution: {integrity: sha512-OMcX/4IC/uqEPVgGeyfN22LJk6AZrMkRZHxcHBMBvHScDGgwTm2GT2Wkgtocyd3JfZffjj2kYUDXXII0Fk9W0g==} - fs-extra@11.3.6: - resolution: {integrity: sha512-w8ZNZr2mKIc7qeNaQ9AVPT1+iFaI+Avd4xudVOvdDJ8VytREi1Ft5Ih7hd9jjehod8vAM5GMsfQ/TpPf4EyoEA==} + fs-extra@11.4.0: + resolution: {integrity: sha512-EQsFzMUJkCKGr1ePqlYADkIUmHW1s3ZXr5Yqy6wbGrfUCphpl2maM/kyOIRA2HpP3AaFQTZXD4ldjek+nccddA==} engines: {node: '>=14.14'} fs-minipass@2.1.0: @@ -840,8 +840,8 @@ packages: fs.realpath@1.0.0: resolution: {integrity: sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==} - fuse.js@7.4.2: - resolution: {integrity: sha512-LVbzjD4WA6UP5B1UnP8wuaXJiLnqMdM/E4fiJXTJ5haJ5b/MBNsK29h2fm6swEoQaVQjvYFWKLE2RanyZIoRVQ==} + fuse.js@7.5.0: + resolution: {integrity: sha512-sQtrEfA+ez/3G0cCZecF70oqpCRttCexYUG4mUrtWL49ULUzUyxokt5kyqwtKzj1270RaKih+hcP3qLcumccow==} engines: {node: '>=10'} get-stream@5.2.0: @@ -909,8 +909,8 @@ packages: inherits@2.0.4: resolution: {integrity: sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==} - ip-address@10.2.0: - resolution: {integrity: sha512-/+S6j4E9AHvW9SWMSEY9Xfy66O5PWvVEJ08O0y5JGyEKQpojb0K0GKpz/v5HJ/G0vi3D2sjGK78119oXZeE0qA==} + ip-address@10.4.0: + resolution: {integrity: sha512-oSK96Grm3aP6OrS263xVxbNDGVL7rzBtYdpGqlDG8iQdoenDoTs/nkki+DflYbAEE8Xl6o5YxhxlrKvI3nqKXQ==} engines: {node: '>= 12'} is-docker@3.0.0: @@ -989,8 +989,8 @@ packages: resolution: {integrity: sha512-RCEsPjR+sr0x+AuYp601tKTkgFG4YEPLCzHST3cQ/fhlJkqAkz1L2/Qbp1j9qw5SBwQHFBoW8+hoN5xssOF0Tw==} hasBin: true - mdurl@2.0.0: - resolution: {integrity: sha512-Lf+9+2r+Tdp5wXDXC4PcIBjTDtq4UKjCPMQhKIuzpJNW0b96kVqSwW0bT7FhRSfmAiFYgP+SCRvdrDozfh0U5w==} + mdurl@2.1.0: + resolution: {integrity: sha512-1+HBaOx0zi/dQWht8rNv9MYf9qqpqL/kxI0hXImU6Y547zM6Sni8BQibt7ifgMcYtQg41ao3Ivd6cnSM86inpg==} merge-stream@2.0.0: resolution: {integrity: sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==} @@ -1003,8 +1003,8 @@ packages: resolution: {integrity: sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==} engines: {node: '>=6'} - minimatch@10.2.5: - resolution: {integrity: sha512-MULkVLfKGYDFYejP07QOurDLLQpcjk7Fw+7jXS2R2czRQzR56yHRveU5NDJEOviH+hETZKSkIk5c+T23GjFUMg==} + minimatch@10.2.6: + resolution: {integrity: sha512-vpLQEs+VLCr1nU0BXS07maYoFwlDAH0gngQuuttxIwutDFEMHq2blX+8vpgxDdK3J1PwjCJiep77OitTZ4Ll1A==} engines: {node: 18 || 20 || >=22} minimatch@3.1.5: @@ -1355,8 +1355,8 @@ packages: engines: {node: '>=10'} deprecated: Old versions of tar are not supported, and contain widely publicized security vulnerabilities, which have been fixed in the current version. Please update. Support for old versions may be purchased (at exorbitant rates) by contacting i@izs.me - tar@7.5.20: - resolution: {integrity: sha512-9FcyK4PA6+WbzlTM9WhQm6vB5W7cP7dUiPsv1g7YDwEQnQ1CGpK3MGlKk/ITVWMk05kHZuBhmVhiv8LZoy/PFQ==} + tar@7.5.22: + resolution: {integrity: sha512-MFO/QzvtAOmJbkhOaCTvbGcFN9L9b+JunIsDwaKljSOdcLMea3NJ1k9Usz/rjdfSXTq4dfzfeS7W4p4YOAAHeA==} engines: {node: '>=18'} tdigest@0.1.2: @@ -1503,174 +1503,174 @@ packages: snapshots: - '@aws-sdk/checksums@3.1000.16': + '@aws-sdk/checksums@3.1000.24': dependencies: - '@aws-sdk/core': 3.975.1 - '@aws-sdk/types': 3.974.0 - '@smithy/core': 3.29.3 + '@aws-sdk/core': 3.977.4 + '@aws-sdk/types': 3.974.2 + '@smithy/core': 3.31.1 '@smithy/types': 4.16.1 tslib: 2.8.1 - '@aws-sdk/client-s3@3.1085.0': + '@aws-sdk/client-s3@3.1101.0': dependencies: - '@aws-sdk/checksums': 3.1000.16 - '@aws-sdk/core': 3.975.1 - '@aws-sdk/credential-provider-node': 3.972.66 - '@aws-sdk/middleware-sdk-s3': 3.972.62 - '@aws-sdk/signature-v4-multi-region': 3.996.39 - '@aws-sdk/types': 3.974.0 - '@smithy/core': 3.29.3 - '@smithy/fetch-http-handler': 5.6.5 - '@smithy/node-http-handler': 4.9.5 + '@aws-sdk/checksums': 3.1000.24 + '@aws-sdk/core': 3.977.4 + '@aws-sdk/credential-provider-node': 3.972.76 + '@aws-sdk/middleware-sdk-s3': 3.972.70 + '@aws-sdk/signature-v4-multi-region': 3.996.43 + '@aws-sdk/types': 3.974.2 + '@smithy/core': 3.31.1 + '@smithy/fetch-http-handler': 5.6.13 + '@smithy/node-http-handler': 4.9.13 '@smithy/types': 4.16.1 tslib: 2.8.1 - '@aws-sdk/core@3.975.1': + '@aws-sdk/core@3.977.4': dependencies: - '@aws-sdk/types': 3.974.0 - '@aws-sdk/xml-builder': 3.972.34 + '@aws-sdk/types': 3.974.2 + '@aws-sdk/xml-builder': 3.972.37 '@aws/lambda-invoke-store': 0.3.0 - '@smithy/core': 3.29.3 - '@smithy/signature-v4': 5.6.4 + '@smithy/core': 3.31.1 + '@smithy/signature-v4': 5.6.12 '@smithy/types': 4.16.1 bowser: 2.14.1 tslib: 2.8.1 - '@aws-sdk/credential-provider-env@3.972.57': + '@aws-sdk/credential-provider-env@3.972.65': dependencies: - '@aws-sdk/core': 3.975.1 - '@aws-sdk/types': 3.974.0 - '@smithy/core': 3.29.3 + '@aws-sdk/core': 3.977.4 + '@aws-sdk/types': 3.974.2 + '@smithy/core': 3.31.1 '@smithy/types': 4.16.1 tslib: 2.8.1 - '@aws-sdk/credential-provider-http@3.972.59': + '@aws-sdk/credential-provider-http@3.972.67': dependencies: - '@aws-sdk/core': 3.975.1 - '@aws-sdk/types': 3.974.0 - '@smithy/core': 3.29.3 - '@smithy/fetch-http-handler': 5.6.5 - '@smithy/node-http-handler': 4.9.5 + '@aws-sdk/core': 3.977.4 + '@aws-sdk/types': 3.974.2 + '@smithy/core': 3.31.1 + '@smithy/fetch-http-handler': 5.6.13 + '@smithy/node-http-handler': 4.9.13 '@smithy/types': 4.16.1 tslib: 2.8.1 - '@aws-sdk/credential-provider-ini@3.973.1': + '@aws-sdk/credential-provider-ini@3.973.10': dependencies: - '@aws-sdk/core': 3.975.1 - '@aws-sdk/credential-provider-env': 3.972.57 - '@aws-sdk/credential-provider-http': 3.972.59 - '@aws-sdk/credential-provider-login': 3.972.63 - '@aws-sdk/credential-provider-process': 3.972.57 - '@aws-sdk/credential-provider-sso': 3.973.1 - '@aws-sdk/credential-provider-web-identity': 3.972.63 - '@aws-sdk/nested-clients': 3.997.31 - '@aws-sdk/types': 3.974.0 - '@smithy/core': 3.29.3 - '@smithy/credential-provider-imds': 4.4.8 + '@aws-sdk/core': 3.977.4 + '@aws-sdk/credential-provider-env': 3.972.65 + '@aws-sdk/credential-provider-http': 3.972.67 + '@aws-sdk/credential-provider-login': 3.972.72 + '@aws-sdk/credential-provider-process': 3.972.65 + '@aws-sdk/credential-provider-sso': 3.973.9 + '@aws-sdk/credential-provider-web-identity': 3.972.71 + '@aws-sdk/nested-clients': 3.997.39 + '@aws-sdk/types': 3.974.2 + '@smithy/core': 3.31.1 + '@smithy/credential-provider-imds': 4.4.16 '@smithy/types': 4.16.1 tslib: 2.8.1 - '@aws-sdk/credential-provider-login@3.972.63': + '@aws-sdk/credential-provider-login@3.972.72': dependencies: - '@aws-sdk/core': 3.975.1 - '@aws-sdk/nested-clients': 3.997.31 - '@aws-sdk/types': 3.974.0 - '@smithy/core': 3.29.3 + '@aws-sdk/core': 3.977.4 + '@aws-sdk/nested-clients': 3.997.39 + '@aws-sdk/types': 3.974.2 + '@smithy/core': 3.31.1 '@smithy/types': 4.16.1 tslib: 2.8.1 - '@aws-sdk/credential-provider-node@3.972.66': + '@aws-sdk/credential-provider-node@3.972.76': dependencies: - '@aws-sdk/credential-provider-env': 3.972.57 - '@aws-sdk/credential-provider-http': 3.972.59 - '@aws-sdk/credential-provider-ini': 3.973.1 - '@aws-sdk/credential-provider-process': 3.972.57 - '@aws-sdk/credential-provider-sso': 3.973.1 - '@aws-sdk/credential-provider-web-identity': 3.972.63 - '@aws-sdk/types': 3.974.0 - '@smithy/core': 3.29.3 - '@smithy/credential-provider-imds': 4.4.8 + '@aws-sdk/credential-provider-env': 3.972.65 + '@aws-sdk/credential-provider-http': 3.972.67 + '@aws-sdk/credential-provider-ini': 3.973.10 + '@aws-sdk/credential-provider-process': 3.972.65 + '@aws-sdk/credential-provider-sso': 3.973.9 + '@aws-sdk/credential-provider-web-identity': 3.972.71 + '@aws-sdk/types': 3.974.2 + '@smithy/core': 3.31.1 + '@smithy/credential-provider-imds': 4.4.16 '@smithy/types': 4.16.1 tslib: 2.8.1 - '@aws-sdk/credential-provider-process@3.972.57': + '@aws-sdk/credential-provider-process@3.972.65': dependencies: - '@aws-sdk/core': 3.975.1 - '@aws-sdk/types': 3.974.0 - '@smithy/core': 3.29.3 + '@aws-sdk/core': 3.977.4 + '@aws-sdk/types': 3.974.2 + '@smithy/core': 3.31.1 '@smithy/types': 4.16.1 tslib: 2.8.1 - '@aws-sdk/credential-provider-sso@3.973.1': + '@aws-sdk/credential-provider-sso@3.973.9': dependencies: - '@aws-sdk/core': 3.975.1 - '@aws-sdk/nested-clients': 3.997.31 - '@aws-sdk/token-providers': 3.1083.0 - '@aws-sdk/types': 3.974.0 - '@smithy/core': 3.29.3 + '@aws-sdk/core': 3.977.4 + '@aws-sdk/nested-clients': 3.997.39 + '@aws-sdk/token-providers': 3.1100.0 + '@aws-sdk/types': 3.974.2 + '@smithy/core': 3.31.1 '@smithy/types': 4.16.1 tslib: 2.8.1 - '@aws-sdk/credential-provider-web-identity@3.972.63': + '@aws-sdk/credential-provider-web-identity@3.972.71': dependencies: - '@aws-sdk/core': 3.975.1 - '@aws-sdk/nested-clients': 3.997.31 - '@aws-sdk/types': 3.974.0 - '@smithy/core': 3.29.3 + '@aws-sdk/core': 3.977.4 + '@aws-sdk/nested-clients': 3.997.39 + '@aws-sdk/types': 3.974.2 + '@smithy/core': 3.31.1 '@smithy/types': 4.16.1 tslib: 2.8.1 - '@aws-sdk/middleware-sdk-s3@3.972.62': + '@aws-sdk/middleware-sdk-s3@3.972.70': dependencies: - '@aws-sdk/core': 3.975.1 - '@aws-sdk/signature-v4-multi-region': 3.996.39 - '@aws-sdk/types': 3.974.0 - '@smithy/core': 3.29.3 + '@aws-sdk/core': 3.977.4 + '@aws-sdk/signature-v4-multi-region': 3.996.43 + '@aws-sdk/types': 3.974.2 + '@smithy/core': 3.31.1 '@smithy/types': 4.16.1 tslib: 2.8.1 - '@aws-sdk/nested-clients@3.997.31': + '@aws-sdk/nested-clients@3.997.39': dependencies: - '@aws-sdk/core': 3.975.1 - '@aws-sdk/signature-v4-multi-region': 3.996.39 - '@aws-sdk/types': 3.974.0 - '@smithy/core': 3.29.3 - '@smithy/fetch-http-handler': 5.6.5 - '@smithy/node-http-handler': 4.9.5 + '@aws-sdk/core': 3.977.4 + '@aws-sdk/signature-v4-multi-region': 3.996.43 + '@aws-sdk/types': 3.974.2 + '@smithy/core': 3.31.1 + '@smithy/fetch-http-handler': 5.6.13 + '@smithy/node-http-handler': 4.9.13 '@smithy/types': 4.16.1 tslib: 2.8.1 - '@aws-sdk/s3-request-presigner@3.1085.0': + '@aws-sdk/s3-request-presigner@3.1101.0': dependencies: - '@aws-sdk/core': 3.975.1 - '@aws-sdk/signature-v4-multi-region': 3.996.39 - '@aws-sdk/types': 3.974.0 - '@smithy/core': 3.29.3 + '@aws-sdk/core': 3.977.4 + '@aws-sdk/signature-v4-multi-region': 3.996.43 + '@aws-sdk/types': 3.974.2 + '@smithy/core': 3.31.1 '@smithy/types': 4.16.1 tslib: 2.8.1 - '@aws-sdk/signature-v4-multi-region@3.996.39': + '@aws-sdk/signature-v4-multi-region@3.996.43': dependencies: - '@aws-sdk/types': 3.974.0 - '@smithy/signature-v4': 5.6.4 + '@aws-sdk/types': 3.974.2 + '@smithy/signature-v4': 5.6.12 '@smithy/types': 4.16.1 tslib: 2.8.1 - '@aws-sdk/token-providers@3.1083.0': + '@aws-sdk/token-providers@3.1100.0': dependencies: - '@aws-sdk/core': 3.975.1 - '@aws-sdk/nested-clients': 3.997.31 - '@aws-sdk/types': 3.974.0 - '@smithy/core': 3.29.3 + '@aws-sdk/core': 3.977.4 + '@aws-sdk/nested-clients': 3.997.39 + '@aws-sdk/types': 3.974.2 + '@smithy/core': 3.31.1 '@smithy/types': 4.16.1 tslib: 2.8.1 - '@aws-sdk/types@3.974.0': + '@aws-sdk/types@3.974.2': dependencies: '@smithy/types': 4.16.1 tslib: 2.8.1 - '@aws-sdk/xml-builder@3.972.34': + '@aws-sdk/xml-builder@3.972.37': dependencies: '@smithy/types': 4.16.1 tslib: 2.8.1 @@ -1718,7 +1718,7 @@ snapshots: '@duckdb/node-bindings-win32-arm64': 1.5.4-r.1 '@duckdb/node-bindings-win32-x64': 1.5.4-r.1 - '@emnapi/runtime@1.11.2': + '@emnapi/runtime@1.11.3': dependencies: tslib: 2.8.1 optional: true @@ -1892,7 +1892,7 @@ snapshots: '@img/sharp-wasm32@0.35.3': dependencies: - '@emnapi/runtime': 1.11.2 + '@emnapi/runtime': 1.11.3 optional: true '@img/sharp-webcontainers-wasm32@0.35.3': @@ -1939,32 +1939,32 @@ snapshots: '@opentelemetry/api@1.9.1': {} - '@smithy/core@3.29.3': + '@smithy/core@3.31.1': dependencies: '@smithy/types': 4.16.1 tslib: 2.8.1 - '@smithy/credential-provider-imds@4.4.8': + '@smithy/credential-provider-imds@4.4.16': dependencies: - '@smithy/core': 3.29.3 + '@smithy/core': 3.31.1 '@smithy/types': 4.16.1 tslib: 2.8.1 - '@smithy/fetch-http-handler@5.6.5': + '@smithy/fetch-http-handler@5.6.13': dependencies: - '@smithy/core': 3.29.3 + '@smithy/core': 3.31.1 '@smithy/types': 4.16.1 tslib: 2.8.1 - '@smithy/node-http-handler@4.9.5': + '@smithy/node-http-handler@4.9.13': dependencies: - '@smithy/core': 3.29.3 + '@smithy/core': 3.31.1 '@smithy/types': 4.16.1 tslib: 2.8.1 - '@smithy/signature-v4@5.6.4': + '@smithy/signature-v4@5.6.12': dependencies: - '@smithy/core': 3.29.3 + '@smithy/core': 3.31.1 '@smithy/types': 4.16.1 tslib: 2.8.1 @@ -1974,9 +1974,9 @@ snapshots: '@tootallnate/once@2.0.1': {} - agent-base@6.0.2: + agent-base@6.0.2(supports-color@10.2.2): dependencies: - debug: 4.4.3 + debug: 4.4.3(supports-color@10.2.2) transitivePeerDependencies: - supports-color @@ -2027,16 +2027,16 @@ snapshots: bowser@2.14.1: {} - brace-expansion@1.1.16: + brace-expansion@1.1.18: dependencies: balanced-match: 1.0.2 concat-map: 0.0.1 - brace-expansion@2.1.2: + brace-expansion@2.1.4: dependencies: balanced-match: 1.0.2 - brace-expansion@5.0.7: + brace-expansion@5.0.9: dependencies: balanced-match: 4.0.4 @@ -2072,7 +2072,7 @@ snapshots: unique-filename: 1.1.1 y18n: 4.0.3 - cacache@16.1.3: + cacache@16.1.3(bluebird@3.7.2): dependencies: '@npmcli/fs': 2.1.2 '@npmcli/move-file': 2.0.1 @@ -2159,9 +2159,11 @@ snapshots: cyclist@1.0.2: {} - debug@4.4.3: + debug@4.4.3(supports-color@10.2.2): dependencies: ms: 2.1.3 + optionalDependencies: + supports-color: 10.2.2 default-browser-id@5.0.1: {} @@ -2272,7 +2274,7 @@ snapshots: inherits: 2.0.4 readable-stream: 2.3.8 - fs-extra@11.3.6: + fs-extra@11.4.0: dependencies: graceful-fs: 4.2.11 jsonfile: 6.2.1 @@ -2291,7 +2293,7 @@ snapshots: fs.realpath@1.0.0: {} - fuse.js@7.4.2: {} + fuse.js@7.5.0: {} get-stream@5.2.0: dependencies: @@ -2301,7 +2303,7 @@ snapshots: dependencies: foreground-child: 3.3.1 jackspeak: 4.2.3 - minimatch: 10.2.5 + minimatch: 10.2.6 minipass: 7.1.3 package-json-from-dist: 1.0.1 path-scurry: 2.0.2 @@ -2329,18 +2331,18 @@ snapshots: http-cache-semantics@4.2.0: {} - http-proxy-agent@5.0.0: + http-proxy-agent@5.0.0(supports-color@10.2.2): dependencies: '@tootallnate/once': 2.0.1 - agent-base: 6.0.2 - debug: 4.4.3 + agent-base: 6.0.2(supports-color@10.2.2) + debug: 4.4.3(supports-color@10.2.2) transitivePeerDependencies: - supports-color - https-proxy-agent@5.0.1: + https-proxy-agent@5.0.1(supports-color@10.2.2): dependencies: - agent-base: 6.0.2 - debug: 4.4.3 + agent-base: 6.0.2(supports-color@10.2.2) + debug: 4.4.3(supports-color@10.2.2) transitivePeerDependencies: - supports-color @@ -2368,7 +2370,7 @@ snapshots: inherits@2.0.4: {} - ip-address@10.2.0: {} + ip-address@10.4.0: {} is-docker@3.0.0: {} @@ -2427,13 +2429,13 @@ snapshots: lru-cache@7.18.3: {} - make-fetch-happen@10.2.1: + make-fetch-happen@10.2.1(bluebird@3.7.2)(supports-color@10.2.2): dependencies: agentkeepalive: 4.6.0 - cacache: 16.1.3 + cacache: 16.1.3(bluebird@3.7.2) http-cache-semantics: 4.2.0 - http-proxy-agent: 5.0.0 - https-proxy-agent: 5.0.1 + http-proxy-agent: 5.0.0(supports-color@10.2.2) + https-proxy-agent: 5.0.1(supports-color@10.2.2) is-lambda: 1.0.1 lru-cache: 7.18.3 minipass: 3.3.6 @@ -2443,7 +2445,7 @@ snapshots: minipass-pipeline: 1.2.4 negotiator: 0.6.4 promise-retry: 2.0.1 - socks-proxy-agent: 7.0.0 + socks-proxy-agent: 7.0.0(supports-color@10.2.2) ssri: 9.0.1 transitivePeerDependencies: - bluebird @@ -2454,11 +2456,11 @@ snapshots: argparse: 2.0.1 entities: 4.5.0 linkify-it: 5.0.2 - mdurl: 2.0.0 + mdurl: 2.1.0 punycode.js: 2.3.1 uc.micro: 2.1.0 - mdurl@2.0.0: {} + mdurl@2.1.0: {} merge-stream@2.0.0: {} @@ -2469,17 +2471,17 @@ snapshots: mimic-fn@2.1.0: {} - minimatch@10.2.5: + minimatch@10.2.6: dependencies: - brace-expansion: 5.0.7 + brace-expansion: 5.0.9 minimatch@3.1.5: dependencies: - brace-expansion: 1.1.16 + brace-expansion: 1.1.18 minimatch@5.1.9: dependencies: - brace-expansion: 2.1.2 + brace-expansion: 2.1.4 minimist@1.2.8: {} @@ -2643,7 +2645,7 @@ snapshots: punycode@2.3.1: {} - purescript-installer@0.3.5: + purescript-installer@0.3.5(bluebird@3.7.2)(supports-color@10.2.2): dependencies: byline: 5.0.0 cacache: 11.3.3 @@ -2654,7 +2656,7 @@ snapshots: is-plain-obj: 2.1.0 log-symbols: 3.0.0 log-update: 4.0.0 - make-fetch-happen: 10.2.1 + make-fetch-happen: 10.2.1(bluebird@3.7.2)(supports-color@10.2.2) minimist: 1.2.8 ms: 2.1.3 once: 1.4.0 @@ -2679,9 +2681,9 @@ snapshots: purescript-psa@0.9.0: {} - purescript@0.15.16: + purescript@0.15.16(bluebird@3.7.2)(supports-color@10.2.2): dependencies: - purescript-installer: 0.3.5 + purescript-installer: 0.3.5(bluebird@3.7.2)(supports-color@10.2.2) transitivePeerDependencies: - bluebird - supports-color @@ -2789,25 +2791,25 @@ snapshots: smart-buffer@4.2.0: {} - socks-proxy-agent@7.0.0: + socks-proxy-agent@7.0.0(supports-color@10.2.2): dependencies: - agent-base: 6.0.2 - debug: 4.4.3 + agent-base: 6.0.2(supports-color@10.2.2) + debug: 4.4.3(supports-color@10.2.2) socks: 2.8.9 transitivePeerDependencies: - supports-color socks@2.8.9: dependencies: - ip-address: 10.2.0 + ip-address: 10.4.0 smart-buffer: 4.2.0 spago@1.0.4: dependencies: '@nodelib/fs.walk': 3.0.1 env-paths: 3.0.0 - fs-extra: 11.3.6 - fuse.js: 7.4.2 + fs-extra: 11.4.0 + fuse.js: 7.5.0 glob: 11.1.0 markdown-it: 14.3.0 micromatch: 4.0.8 @@ -2819,7 +2821,7 @@ snapshots: spdx-expression-parse: 4.0.0 ssh2: 1.17.0 supports-color: 10.2.2 - tar: 7.5.20 + tar: 7.5.22 tmp: 0.2.7 xhr2: 0.2.1 yaml: 2.9.0 @@ -2887,7 +2889,7 @@ snapshots: mkdirp: 1.0.4 yallist: 4.0.0 - tar@7.5.20: + tar@7.5.22: dependencies: '@isaacs/fs-minipass': 4.0.1 chownr: 3.0.0 blob - 39c343b9a4af4e29e2d61256a1efd6f142255451 blob + b1006db90f3c4d2fb6b77a20a1b5c84bd98e5688 --- src/Templates.purs +++ src/Templates.purs @@ -711,11 +711,16 @@ indexHtml registrationEnabled userSlug allUsers =