diff --git a/README.md b/README.md index e4903bcd..1a1fee69 100644 --- a/README.md +++ b/README.md @@ -170,7 +170,6 @@ Application behavior can be changed by configuring the following environment var - `NEXT_PUBLIC_HIDE_EXIF_DATA = 1` hides EXIF data in photo details and OG images (potentially useful for portfolios, which don't focus on photography) - `NEXT_PUBLIC_HIDE_ZOOM_CONTROLS = 1` hides fullscreen photo zoom controls - `NEXT_PUBLIC_HIDE_TAKEN_AT_TIME = 1` hides taken at time from photo meta -- `NEXT_PUBLIC_HIDE_SOCIAL = 1` removes X (formerly Twitter) button from share modal - `NEXT_PUBLIC_HIDE_REPO_LINK = 1` removes footer link to repo #### Grid @@ -185,6 +184,15 @@ Application behavior can be changed by configuring the following environment var #### Settings - `NEXT_PUBLIC_GEO_PRIVACY = 1` disables collection/display of location-based data (⚠️ re-compresses uploaded images in order to remove GPS information) - `NEXT_PUBLIC_ALLOW_PUBLIC_DOWNLOADS = 1` enables public photo downloads for all visitors (⚠️ may result in increased bandwidth usage) +- `NEXT_PUBLIC_SOCIAL_NETWORKS` + - Comma-separated list of social networks to show in share modal + - Accepted values: + - `x` (default) + - `threads` + - `facebook` + - `linkedin` + - `all` + - `none` - `NEXT_PUBLIC_SITE_FEEDS = 1` enables feeds at `/feed.json` and `/rss.xml` - `NEXT_PUBLIC_OG_TEXT_ALIGNMENT = BOTTOM` keeps OG image text bottom aligned (default is top) diff --git a/__tests__/category.test.ts b/__tests__/category.test.ts index f0c06520..2d0fbf23 100644 --- a/__tests__/category.test.ts +++ b/__tests__/category.test.ts @@ -1,14 +1,14 @@ import { DEFAULT_CATEGORY_KEYS, - getOrderedCategoriesFromString, + parseOrderedCategoriesFromString, } from '@/category'; describe('set', () => { it('parses from string', () => { - expect(getOrderedCategoriesFromString()) + expect(parseOrderedCategoriesFromString()) .toStrictEqual(DEFAULT_CATEGORY_KEYS); - expect(getOrderedCategoriesFromString( + expect(parseOrderedCategoriesFromString( 'cameras,recipes,tags,films,focal-lengths,lenses', )).toStrictEqual([ 'cameras', @@ -19,7 +19,7 @@ describe('set', () => { 'lenses', ]); - expect(getOrderedCategoriesFromString( + expect(parseOrderedCategoriesFromString( 'cameras, recipes, tags, films', )).toStrictEqual([ 'cameras', @@ -28,7 +28,7 @@ describe('set', () => { 'films', ]); - expect(getOrderedCategoriesFromString( + expect(parseOrderedCategoriesFromString( 'cameras', )).toStrictEqual([ 'cameras', diff --git a/package.json b/package.json index 838aef35..1e1eaafd 100644 --- a/package.json +++ b/package.json @@ -9,10 +9,10 @@ "analyze": "ANALYZE=true next build" }, "dependencies": { - "@ai-sdk/openai": "^2.0.25", - "@ai-sdk/rsc": "^1.0.34", - "@aws-sdk/client-s3": "3.883.0", - "@aws-sdk/s3-request-presigner": "3.883.0", + "@ai-sdk/openai": "^2.0.27", + "@ai-sdk/rsc": "^1.0.39", + "@aws-sdk/client-s3": "3.884.0", + "@aws-sdk/s3-request-presigner": "3.884.0", "@radix-ui/react-dialog": "^1.1.15", "@radix-ui/react-dropdown-menu": "^2.1.16", "@radix-ui/react-tooltip": "^1.2.8", @@ -22,8 +22,8 @@ "@vercel/analytics": "^1.5.0", "@vercel/blob": "^1.1.1", "@vercel/speed-insights": "^1.2.0", - "ai": "^5.0.34", - "camelcase-keys": "^9.1.3", + "ai": "^5.0.39", + "camelcase-keys": "^10.0.0", "clsx": "^2.1.1", "cmdk": "^1.1.1", "culori": "^4.0.2", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 33010828..1f664b2d 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -9,17 +9,17 @@ importers: .: dependencies: '@ai-sdk/openai': - specifier: ^2.0.25 - version: 2.0.25(zod@3.25.76) + specifier: ^2.0.27 + version: 2.0.27(zod@3.25.76) '@ai-sdk/rsc': - specifier: ^1.0.34 - version: 1.0.34(react@19.1.1)(zod@3.25.76) + specifier: ^1.0.39 + version: 1.0.39(react@19.1.1)(zod@3.25.76) '@aws-sdk/client-s3': - specifier: 3.883.0 - version: 3.883.0 + specifier: 3.884.0 + version: 3.884.0 '@aws-sdk/s3-request-presigner': - specifier: 3.883.0 - version: 3.883.0 + specifier: 3.884.0 + version: 3.884.0 '@radix-ui/react-dialog': specifier: ^1.1.15 version: 1.1.15(@types/react-dom@19.1.9(@types/react@19.1.12))(@types/react@19.1.12)(react-dom@19.1.1(react@19.1.1))(react@19.1.1) @@ -48,11 +48,11 @@ importers: specifier: ^1.2.0 version: 1.2.0(next@15.5.2(@babel/core@7.28.0)(@opentelemetry/api@1.9.0)(react-dom@19.1.1(react@19.1.1))(react@19.1.1))(react@19.1.1) ai: - specifier: ^5.0.34 - version: 5.0.34(zod@3.25.76) + specifier: ^5.0.39 + version: 5.0.39(zod@3.25.76) camelcase-keys: - specifier: ^9.1.3 - version: 9.1.3 + specifier: ^10.0.0 + version: 10.0.0 clsx: specifier: ^2.1.1 version: 2.1.1 @@ -210,14 +210,14 @@ packages: '@adobe/css-tools@4.4.3': resolution: {integrity: sha512-VQKMkwriZbaOgVCby1UDY/LDk5fIjhQicCvVPFqfe+69fWaPWydbWJ3wRt59/YzIwda1I81loas3oCoHxnqvdA==} - '@ai-sdk/gateway@1.0.19': - resolution: {integrity: sha512-TYLxx8Sclr/RdB0RIwGmA8OtJtyJxoPGtrTYgwrbzM2GdtwYtUuA/UIc4tZyCeyR1ujfqjbqiIF3kB54zGRD3A==} + '@ai-sdk/gateway@1.0.20': + resolution: {integrity: sha512-2K0kGnHyLfT1v2+3xXbLqohfWBJ/vmIh1FTWnrvZfvuUuBdOi2DMgnSQzkLvFVLyM8mhOcx+ZwU6IOOsuyOv/w==} engines: {node: '>=18'} peerDependencies: zod: ^3.25.76 || ^4 - '@ai-sdk/openai@2.0.25': - resolution: {integrity: sha512-2jRVn/8j7oOS+6y808YNLH3QGgBuQFZJygOBMC9z8lQfNiRMaK0iD4vqMeR0dSZce2TrqcEaTPpn/bHfPJp7iA==} + '@ai-sdk/openai@2.0.27': + resolution: {integrity: sha512-5fUFBlE9qGFgezVIVkzQk87qZYkxsn5PsedtCFPoGxHK6c2QVYHuD1UcrVIKt0elr043Vx17Xo/gS5oJAR5YEQ==} engines: {node: '>=18'} peerDependencies: zod: ^3.25.76 || ^4 @@ -232,8 +232,8 @@ packages: resolution: {integrity: sha512-6o7Y2SeO9vFKB8lArHXehNuusnpddKPk7xqL7T2/b+OvXMRIXUO1rR4wcv1hAFUAT9avGZshty3Wlua/XA7TvA==} engines: {node: '>=18'} - '@ai-sdk/rsc@1.0.34': - resolution: {integrity: sha512-l8TaFtO74rC8RD8pfWnHpUiBSBYwyRyrYmC4t6Vc9uH9gncoti5htQIOg9a/v+U1hurJgNAARPEBMTuek9wFaQ==} + '@ai-sdk/rsc@1.0.39': + resolution: {integrity: sha512-EBwKlEpFqODL2gbReQ/lDJCMOzL6EkhjF7/BGSmQiiC5C2o/FwDAUs96NpN1SwLofSK0FE+w5Wf8g/TROnvryw==} engines: {node: '>=18'} peerDependencies: react: ^18 || ^19 || ^19.0.0-rc @@ -290,8 +290,8 @@ packages: '@aws-crypto/util@5.2.0': resolution: {integrity: sha512-4RkU9EsI6ZpBve5fseQlGNUWKMa1RLPQ1dnjnQoe07ldfIzcsGb5hC5W0Dm7u423KWzawlrpbjXBrXCEv9zazQ==} - '@aws-sdk/client-s3@3.883.0': - resolution: {integrity: sha512-+l/p5G/bbobzcils5wKSV1vQEITvJIXDkLfkMWLpF6CC3YfdSDlVn1VOD+NcfuOuVGv4UkwcJzWuC6eaX6t8jg==} + '@aws-sdk/client-s3@3.884.0': + resolution: {integrity: sha512-Okwg52/iho5wMCzd7A70g50k+bEYS+VUbSjD3NOzwrvZ3c7DwYjDUt13hVnUwMGygTVL+NGSpXSziTZe9P3/Cg==} engines: {node: '>=18.0.0'} '@aws-sdk/client-sso@3.883.0': @@ -378,8 +378,8 @@ packages: resolution: {integrity: sha512-q9sPoef+BBG6PJnc4x60vK/bfVwvRWsPgcoQyIra057S/QGjq5VkjvNk6H8xedf6vnKlXNBwq9BaANBXnldUJg==} engines: {node: '>=18.0.0'} - '@aws-sdk/s3-request-presigner@3.883.0': - resolution: {integrity: sha512-NW20A3PD+vqVcr/5F3cbqibKogUNdDAE9K9MUE7X1JSz3Gi/2nMV2hoRdC3+T3c6XE44t6LW1Swt3JOvaQOJLw==} + '@aws-sdk/s3-request-presigner@3.884.0': + resolution: {integrity: sha512-dYc4p07S9u3iE8wNNqsfQcKzRii87q6o8/IZ1loaLIZHTOgZ34JGWbLq6fGgLpxx+kpIKaRNTqEgNgN6q5PaXg==} engines: {node: '>=18.0.0'} '@aws-sdk/signature-v4-multi-region@3.883.0': @@ -1397,10 +1397,6 @@ packages: '@sinonjs/fake-timers@13.0.5': resolution: {integrity: sha512-36/hTbH2uaWuGVERyC6da9YwGWnzUZXuPro/F2LfsdOsLnCojz/iSH8MxUt/FD2S5XBSVPhmArFUXcpCQ2Hkiw==} - '@smithy/abort-controller@4.0.5': - resolution: {integrity: sha512-jcrqdTQurIrBbUm4W2YdLVMQDoL0sA9DTxYd2s+R/y+2U9NLOP7Xf/YqfSg1FZhlZIYEnvk2mwbyvIfdLEPo8g==} - engines: {node: '>=18.0.0'} - '@smithy/abort-controller@4.1.0': resolution: {integrity: sha512-wEhSYznxOmx7EdwK1tYEWJF5+/wmSFsff9BfTOn8oO/+KPl3gsmThrb6MJlWbOC391+Ya31s5JuHiC2RlT80Zg==} engines: {node: '>=18.0.0'} @@ -1413,10 +1409,6 @@ packages: resolution: {integrity: sha512-+sKqDBQqb036hh4NPaUiEkYFkTUGYzRsn3EuFhyfQfMy6oGHEUJDurLP9Ufb5dasr/XiAmPNMr6wa9afjQB+Gw==} engines: {node: '>=18.0.0'} - '@smithy/config-resolver@4.1.5': - resolution: {integrity: sha512-viuHMxBAqydkB0AfWwHIdwf/PRH2z5KHGUzqyRtS/Wv+n3IHI993Sk76VCA7dD/+GzgGOmlJDITfPcJC1nIVIw==} - engines: {node: '>=18.0.0'} - '@smithy/config-resolver@4.2.0': resolution: {integrity: sha512-FA10YhPFLy23uxeWu7pOM2ctlw+gzbPMTZQwrZ8FRIfyJ/p8YIVz7AVTB5jjLD+QIerydyKcVMZur8qzzDILAQ==} engines: {node: '>=18.0.0'} @@ -1425,10 +1417,6 @@ packages: resolution: {integrity: sha512-bXyD3Ij6b1qDymEYlEcF+QIjwb9gObwZNaRjETJsUEvSIzxFdynSQ3E4ysY7lUFSBzeWBNaFvX+5A0smbC2q6A==} engines: {node: '>=18.0.0'} - '@smithy/credential-provider-imds@4.0.7': - resolution: {integrity: sha512-dDzrMXA8d8riFNiPvytxn0mNwR4B3h8lgrQ5UjAGu6T9z/kRg/Xncf4tEQHE/+t25sY8IH3CowcmWi+1U5B1Gw==} - engines: {node: '>=18.0.0'} - '@smithy/credential-provider-imds@4.1.0': resolution: {integrity: sha512-iVwNhxTsCQTPdp++4C/d9xvaDmuEWhXi55qJobMp9QMaEHRGH3kErU4F8gohtdsawRqnUy/ANylCjKuhcR2mPw==} engines: {node: '>=18.0.0'} @@ -1453,10 +1441,6 @@ packages: resolution: {integrity: sha512-JFnmu4SU36YYw3DIBVao3FsJh4Uw65vVDIqlWT4LzR6gXA0F3KP0IXFKKJrhaVzCBhAuMsrUUaT5I+/4ZhF7aw==} engines: {node: '>=18.0.0'} - '@smithy/fetch-http-handler@5.1.1': - resolution: {integrity: sha512-61WjM0PWmZJR+SnmzaKI7t7G0UkkNFboDpzIdzSoy7TByUzlxo18Qlh9s71qug4AY4hlH/CwXdubMtkcNEb/sQ==} - engines: {node: '>=18.0.0'} - '@smithy/fetch-http-handler@5.2.0': resolution: {integrity: sha512-VZenjDdVaUGiy3hwQtxm75nhXZrhFG+3xyL93qCQAlYDyhT/jeDWM8/3r5uCFMlTmmyrIjiDyiOynVFchb0BSg==} engines: {node: '>=18.0.0'} @@ -1481,10 +1465,6 @@ packages: resolution: {integrity: sha512-GGP3O9QFD24uGeAXYUjwSTXARoqpZykHadOmA8G5vfJPK0/DC67qa//0qvqrJzL1xc8WQWX7/yc7fwudjPHPhA==} engines: {node: '>=14.0.0'} - '@smithy/is-array-buffer@4.0.0': - resolution: {integrity: sha512-saYhF8ZZNoJDTvJBEWgeBccCg+yvp1CX+ed12yORU3NilJScfc6gfch2oVb4QgxZrGUx3/ZJlb+c/dJbyupxlw==} - engines: {node: '>=18.0.0'} - '@smithy/is-array-buffer@4.1.0': resolution: {integrity: sha512-ePTYUOV54wMogio+he4pBybe8fwg4sDvEVDBU8ZlHOZXbXK3/C0XfJgUCu6qAZcawv05ZhZzODGUerFBPsPUDQ==} engines: {node: '>=18.0.0'} @@ -1505,82 +1485,42 @@ packages: resolution: {integrity: sha512-raL5oWYf5ALl3jCJrajE8enKJEnV/2wZkKS6mb3ZRY2tg3nj66ssdWy5Ps8E6Yu8Wqh3Tt+Sb9LozjvwZupq+A==} engines: {node: '>=18.0.0'} - '@smithy/middleware-serde@4.0.9': - resolution: {integrity: sha512-uAFFR4dpeoJPGz8x9mhxp+RPjo5wW0QEEIPPPbLXiRRWeCATf/Km3gKIVR5vaP8bN1kgsPhcEeh+IZvUlBv6Xg==} - engines: {node: '>=18.0.0'} - '@smithy/middleware-serde@4.1.0': resolution: {integrity: sha512-CtLFYlHt7c2VcztyVRc+25JLV4aGpmaSv9F1sPB0AGFL6S+RPythkqpGDa2XBQLJQooKkjLA1g7Xe4450knShg==} engines: {node: '>=18.0.0'} - '@smithy/middleware-stack@4.0.5': - resolution: {integrity: sha512-/yoHDXZPh3ocRVyeWQFvC44u8seu3eYzZRveCMfgMOBcNKnAmOvjbL9+Cp5XKSIi9iYA9PECUuW2teDAk8T+OQ==} - engines: {node: '>=18.0.0'} - '@smithy/middleware-stack@4.1.0': resolution: {integrity: sha512-91Fuw4IKp0eK8PNhMXrHRcYA1jvbZ9BJGT91wwPy3bTQT8mHTcQNius/EhSQTlT9QUI3Ki1wjHeNXbWK0tO8YQ==} engines: {node: '>=18.0.0'} - '@smithy/node-config-provider@4.1.4': - resolution: {integrity: sha512-+UDQV/k42jLEPPHSn39l0Bmc4sB1xtdI9Gd47fzo/0PbXzJ7ylgaOByVjF5EeQIumkepnrJyfx86dPa9p47Y+w==} - engines: {node: '>=18.0.0'} - '@smithy/node-config-provider@4.2.0': resolution: {integrity: sha512-8/fpilqKurQ+f8nFvoFkJ0lrymoMJ+5/CQV5IcTv/MyKhk2Q/EFYCAgTSWHD4nMi9ux9NyBBynkyE9SLg2uSLA==} engines: {node: '>=18.0.0'} - '@smithy/node-http-handler@4.1.1': - resolution: {integrity: sha512-RHnlHqFpoVdjSPPiYy/t40Zovf3BBHc2oemgD7VsVTFFZrU5erFFe0n52OANZZ/5sbshgD93sOh5r6I35Xmpaw==} - engines: {node: '>=18.0.0'} - '@smithy/node-http-handler@4.2.0': resolution: {integrity: sha512-G4NV70B4hF9vBrUkkvNfWO6+QR4jYjeO4tc+4XrKCb4nPYj49V9Hu8Ftio7Mb0/0IlFyEOORudHrm+isY29nCA==} engines: {node: '>=18.0.0'} - '@smithy/property-provider@4.0.5': - resolution: {integrity: sha512-R/bswf59T/n9ZgfgUICAZoWYKBHcsVDurAGX88zsiUtOTA/xUAPyiT+qkNCPwFn43pZqN84M4MiUsbSGQmgFIQ==} - engines: {node: '>=18.0.0'} - '@smithy/property-provider@4.1.0': resolution: {integrity: sha512-eksMjMHUlG5PwOUWO3k+rfLNOPVPJ70mUzyYNKb5lvyIuAwS4zpWGsxGiuT74DFWonW0xRNy+jgzGauUzX7SyA==} engines: {node: '>=18.0.0'} - '@smithy/protocol-http@5.1.3': - resolution: {integrity: sha512-fCJd2ZR7D22XhDY0l+92pUag/7je2BztPRQ01gU5bMChcyI0rlly7QFibnYHzcxDvccMjlpM/Q1ev8ceRIb48w==} - engines: {node: '>=18.0.0'} - '@smithy/protocol-http@5.2.0': resolution: {integrity: sha512-bwjlh5JwdOQnA01be+5UvHK4HQz4iaRKlVG46hHSJuqi0Ribt3K06Z1oQ29i35Np4G9MCDgkOGcHVyLMreMcbg==} engines: {node: '>=18.0.0'} - '@smithy/querystring-builder@4.0.5': - resolution: {integrity: sha512-NJeSCU57piZ56c+/wY+AbAw6rxCCAOZLCIniRE7wqvndqxcKKDOXzwWjrY7wGKEISfhL9gBbAaWWgHsUGedk+A==} - engines: {node: '>=18.0.0'} - '@smithy/querystring-builder@4.1.0': resolution: {integrity: sha512-JqTWmVIq4AF8R8OK/2cCCiQo5ZJ0SRPsDkDgLO5/3z8xxuUp1oMIBBjfuueEe+11hGTZ6rRebzYikpKc6yQV9Q==} engines: {node: '>=18.0.0'} - '@smithy/querystring-parser@4.0.5': - resolution: {integrity: sha512-6SV7md2CzNG/WUeTjVe6Dj8noH32r4MnUeFKZrnVYsQxpGSIcphAanQMayi8jJLZAWm6pdM9ZXvKCpWOsIGg0w==} - engines: {node: '>=18.0.0'} - '@smithy/querystring-parser@4.1.0': resolution: {integrity: sha512-VgdHhr8YTRsjOl4hnKFm7xEMOCRTnKw3FJ1nU+dlWNhdt/7eEtxtkdrJdx7PlRTabdANTmvyjE4umUl9cK4awg==} engines: {node: '>=18.0.0'} - '@smithy/service-error-classification@4.0.7': - resolution: {integrity: sha512-XvRHOipqpwNhEjDf2L5gJowZEm5nsxC16pAZOeEcsygdjv9A2jdOh3YoDQvOXBGTsaJk6mNWtzWalOB9976Wlg==} - engines: {node: '>=18.0.0'} - '@smithy/service-error-classification@4.1.0': resolution: {integrity: sha512-UBpNFzBNmS20jJomuYn++Y+soF8rOK9AvIGjS9yGP6uRXF5rP18h4FDUsoNpWTlSsmiJ87e2DpZo9ywzSMH7PQ==} engines: {node: '>=18.0.0'} - '@smithy/shared-ini-file-loader@4.0.5': - resolution: {integrity: sha512-YVVwehRDuehgoXdEL4r1tAAzdaDgaC9EQvhK0lEbfnbrd0bd5+CTQumbdPryX3J2shT7ZqQE+jPW4lmNBAB8JQ==} - engines: {node: '>=18.0.0'} - '@smithy/shared-ini-file-loader@4.1.0': resolution: {integrity: sha512-W0VMlz9yGdQ/0ZAgWICFjFHTVU0YSfGoCVpKaExRM/FDkTeP/yz8OKvjtGjs6oFokCRm0srgj/g4Cg0xuHu8Rw==} engines: {node: '>=18.0.0'} @@ -1593,34 +1533,18 @@ packages: resolution: {integrity: sha512-TvlIshqx5PIi0I0AiR+PluCpJ8olVG++xbYkAIGCUkByaMUlfOXLgjQTmYbr46k4wuDe8eHiTIlUflnjK2drPQ==} engines: {node: '>=18.0.0'} - '@smithy/types@4.3.2': - resolution: {integrity: sha512-QO4zghLxiQ5W9UZmX2Lo0nta2PuE1sSrXUYDoaB6HMR762C0P7v/HEPHf6ZdglTVssJG1bsrSBxdc3quvDSihw==} - engines: {node: '>=18.0.0'} - '@smithy/types@4.4.0': resolution: {integrity: sha512-4jY91NgZz+ZnSFcVzWwngOW6VuK3gR/ihTwSU1R/0NENe9Jd8SfWgbhDCAGUWL3bI7DiDSW7XF6Ui6bBBjrqXw==} engines: {node: '>=18.0.0'} - '@smithy/url-parser@4.0.5': - resolution: {integrity: sha512-j+733Um7f1/DXjYhCbvNXABV53NyCRRA54C7bNEIxNPs0YjfRxeMKjjgm2jvTYrciZyCjsicHwQ6Q0ylo+NAUw==} - engines: {node: '>=18.0.0'} - '@smithy/url-parser@4.1.0': resolution: {integrity: sha512-/LYEIOuO5B2u++tKr1NxNxhZTrr3A63jW8N73YTwVeUyAlbB/YM+hkftsvtKAcMt3ADYo0FsF1GY3anehffSVQ==} engines: {node: '>=18.0.0'} - '@smithy/util-base64@4.0.0': - resolution: {integrity: sha512-CvHfCmO2mchox9kjrtzoHkWHxjHZzaFojLc8quxXY7WAAMAg43nuxwv95tATVgQFNDwd4M9S1qFzj40Ul41Kmg==} - engines: {node: '>=18.0.0'} - '@smithy/util-base64@4.1.0': resolution: {integrity: sha512-RUGd4wNb8GeW7xk+AY5ghGnIwM96V0l2uzvs/uVHf+tIuVX2WSvynk5CxNoBCsM2rQRSZElAo9rt3G5mJ/gktQ==} engines: {node: '>=18.0.0'} - '@smithy/util-body-length-browser@4.0.0': - resolution: {integrity: sha512-sNi3DL0/k64/LO3A256M+m3CDdG6V7WKWHdAiBBMUN8S3hK3aMPhwnPik2A/a2ONN+9doY9UxaLfgqsIRg69QA==} - engines: {node: '>=18.0.0'} - '@smithy/util-body-length-browser@4.1.0': resolution: {integrity: sha512-V2E2Iez+bo6bUMOTENPr6eEmepdY8Hbs+Uc1vkDKgKNA/brTJqOW/ai3JO1BGj9GbCeLqw90pbbH7HFQyFotGQ==} engines: {node: '>=18.0.0'} @@ -1633,18 +1557,10 @@ packages: resolution: {integrity: sha512-IJdWBbTcMQ6DA0gdNhh/BwrLkDR+ADW5Kr1aZmd4k3DIF6ezMV4R2NIAmT08wQJ3yUK82thHWmC/TnK/wpMMIA==} engines: {node: '>=14.0.0'} - '@smithy/util-buffer-from@4.0.0': - resolution: {integrity: sha512-9TOQ7781sZvddgO8nxueKi3+yGvkY35kotA0Y6BWRajAv8jjmigQ1sBwz0UX47pQMYXJPahSKEKYFgt+rXdcug==} - engines: {node: '>=18.0.0'} - '@smithy/util-buffer-from@4.1.0': resolution: {integrity: sha512-N6yXcjfe/E+xKEccWEKzK6M+crMrlwaCepKja0pNnlSkm6SjAeLKKA++er5Ba0I17gvKfN/ThV+ZOx/CntKTVw==} engines: {node: '>=18.0.0'} - '@smithy/util-config-provider@4.0.0': - resolution: {integrity: sha512-L1RBVzLyfE8OXH+1hsJ8p+acNUSirQnWQ6/EgpchV88G6zGBTDPdXiiExei6Z1wR2RxYvxY/XLw6AMNCCt8H3w==} - engines: {node: '>=18.0.0'} - '@smithy/util-config-provider@4.1.0': resolution: {integrity: sha512-swXz2vMjrP1ZusZWVTB/ai5gK+J8U0BWvP10v9fpcFvg+Xi/87LHvHfst2IgCs1i0v4qFZfGwCmeD/KNCdJZbQ==} engines: {node: '>=18.0.0'} @@ -1661,42 +1577,22 @@ packages: resolution: {integrity: sha512-klGBP+RpBp6V5JbrY2C/VKnHXn3d5V2YrifZbmMY8os7M6m8wdYFoO6w/fe5VkP+YVwrEktW3IWYaSQVNZJ8oQ==} engines: {node: '>=18.0.0'} - '@smithy/util-hex-encoding@4.0.0': - resolution: {integrity: sha512-Yk5mLhHtfIgW2W2WQZWSg5kuMZCVbvhFmC7rV4IO2QqnZdbEFPmQnCcGMAX2z/8Qj3B9hYYNjZOhWym+RwhePw==} - engines: {node: '>=18.0.0'} - '@smithy/util-hex-encoding@4.1.0': resolution: {integrity: sha512-1LcueNN5GYC4tr8mo14yVYbh/Ur8jHhWOxniZXii+1+ePiIbsLZ5fEI0QQGtbRRP5mOhmooos+rLmVASGGoq5w==} engines: {node: '>=18.0.0'} - '@smithy/util-middleware@4.0.5': - resolution: {integrity: sha512-N40PfqsZHRSsByGB81HhSo+uvMxEHT+9e255S53pfBw/wI6WKDI7Jw9oyu5tJTLwZzV5DsMha3ji8jk9dsHmQQ==} - engines: {node: '>=18.0.0'} - '@smithy/util-middleware@4.1.0': resolution: {integrity: sha512-612onNcKyxhP7/YOTKFTb2F6sPYtMRddlT5mZvYf1zduzaGzkYhpYIPxIeeEwBZFjnvEqe53Ijl2cYEfJ9d6/Q==} engines: {node: '>=18.0.0'} - '@smithy/util-retry@4.0.7': - resolution: {integrity: sha512-TTO6rt0ppK70alZpkjwy+3nQlTiqNfoXja+qwuAchIEAIoSZW8Qyd76dvBv3I5bCpE38APafG23Y/u270NspiQ==} - engines: {node: '>=18.0.0'} - '@smithy/util-retry@4.1.0': resolution: {integrity: sha512-5AGoBHb207xAKSVwaUnaER+L55WFY8o2RhlafELZR3mB0J91fpL+Qn+zgRkPzns3kccGaF2vy0HmNVBMWmN6dA==} engines: {node: '>=18.0.0'} - '@smithy/util-stream@4.2.4': - resolution: {integrity: sha512-vSKnvNZX2BXzl0U2RgCLOwWaAP9x/ddd/XobPK02pCbzRm5s55M53uwb1rl/Ts7RXZvdJZerPkA+en2FDghLuQ==} - engines: {node: '>=18.0.0'} - '@smithy/util-stream@4.3.0': resolution: {integrity: sha512-ZOYS94jksDwvsCJtppHprUhsIscRnCKGr6FXCo3SxgQ31ECbza3wqDBqSy6IsAak+h/oAXb1+UYEBmDdseAjUQ==} engines: {node: '>=18.0.0'} - '@smithy/util-uri-escape@4.0.0': - resolution: {integrity: sha512-77yfbCbQMtgtTylO9itEAdpPXSog3ZxMe09AEhm0dU0NLTalV70ghDZFR+Nfi1C60jnJoh/Re4090/DuZh2Omg==} - engines: {node: '>=18.0.0'} - '@smithy/util-uri-escape@4.1.0': resolution: {integrity: sha512-b0EFQkq35K5NHUYxU72JuoheM6+pytEVUGlTwiFxWFpmddA+Bpz3LgsPRIpBk8lnPE47yT7AF2Egc3jVnKLuPg==} engines: {node: '>=18.0.0'} @@ -1705,10 +1601,6 @@ packages: resolution: {integrity: sha512-R8Rdn8Hy72KKcebgLiv8jQcQkXoLMOGGv5uI1/k0l+snqkOzQ1R0ChUBCxWMlBsFMekWjq0wRudIweFs7sKT5A==} engines: {node: '>=14.0.0'} - '@smithy/util-utf8@4.0.0': - resolution: {integrity: sha512-b+zebfKCfRdgNJDknHCob3O7FpeYQN6ZG6YLExMcasDHsCXlsXCEuiPZeLnJLpwa5dvPetGlnGCiMHuLwGvFow==} - engines: {node: '>=18.0.0'} - '@smithy/util-utf8@4.1.0': resolution: {integrity: sha512-mEu1/UIXAdNYuBcyEPbjScKi/+MQVXNIuY/7Cm5XLIWe319kDrT5SizBE95jqtmEXoDbGoZxKLCMttdZdqTZKQ==} engines: {node: '>=18.0.0'} @@ -2176,8 +2068,8 @@ packages: resolution: {integrity: sha512-MnA+YT8fwfJPgBx3m60MNqakm30XOkyIoH1y6huTQvC0PwZG7ki8NacLBcrPbNoo8vEZy7Jpuk7+jMO+CUovTQ==} engines: {node: '>= 14'} - ai@5.0.34: - resolution: {integrity: sha512-ouReddlmQ8ihFwY+g8fJP7u64l7uCPnJSK9R6kTiyTJ3VvztcH1HrYXqG8+XEzBVLJKJmUoYxY1gkFdwMdF8wQ==} + ai@5.0.39: + resolution: {integrity: sha512-1AOjTHY8MUY4T/X/I+otGTbvKmMQCCGWffuVDyQ21l/2Vv/QoLZcw+ZZHVvp+wvQcPOsfXjURGSFZtin7rnghA==} engines: {node: '>=18'} peerDependencies: zod: ^3.25.76 || ^4 @@ -2355,9 +2247,9 @@ packages: resolution: {integrity: sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==} engines: {node: '>=6'} - camelcase-keys@9.1.3: - resolution: {integrity: sha512-Rircqi9ch8AnZscQcsA1C47NFdaO3wukpmIRzYcDOrmvgt78hM/sj5pZhZNec2NM12uk5vTwRHZ4anGcrC4ZTg==} - engines: {node: '>=16'} + camelcase-keys@10.0.0: + resolution: {integrity: sha512-dzb1nrmD6llsF6eMZWSpQjVfe1FX4WOkR7HPdX1sMxM5u+1MlnbXodNJ/E6NRArYgMtcwMhiqqemGp/QJV/vrw==} + engines: {node: '>=20'} camelcase@5.3.1: resolution: {integrity: sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==} @@ -3585,8 +3477,8 @@ packages: makeerror@1.0.12: resolution: {integrity: sha512-JmqCvUhmt43madlpFzG4BQzG2Z3m6tvQDNKdClZnO3VbIudJYmxsT0FNJMeiB2+JTSlTQTSbU8QdesVmwJcmLg==} - map-obj@5.0.0: - resolution: {integrity: sha512-2L3MIgJynYrZ3TYMriLDLWocz15okFakV6J12HXvMXDHui2x/zgChzg1u9mFFGbbGWE+GsLpQByt4POb9Or+uA==} + map-obj@5.0.2: + resolution: {integrity: sha512-K6K2NgKnTXimT3779/4KxSvobxOtMmx1LBZ3NwRxT/MDIR3Br/fQ4Q+WCX5QxjyUR8zg5+RV9Tbf2c5pAWTD2A==} engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} math-intrinsics@1.1.0: @@ -3959,9 +3851,9 @@ packages: queue-microtask@1.2.3: resolution: {integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==} - quick-lru@6.1.2: - resolution: {integrity: sha512-AAFUA5O1d83pIHEhJwWCq/RQcRukCkn/NSm2QsTEMle5f2hP0ChI2+3Xb051PZCkLryI/Ir1MVKviT2FIloaTQ==} - engines: {node: '>=12'} + quick-lru@7.1.0: + resolution: {integrity: sha512-Pzd/4IFnTb8E+I1P5rbLQoqpUHcXKg48qTYKi4EANg+sTPwGFEMOcYGiiZz6xuQcOMZP7MPsrdAPx+16Q8qahg==} + engines: {node: '>=18'} react-dom@19.1.1: resolution: {integrity: sha512-Dlq/5LAZgF0Gaz6yiqZCf6VCcZs1ghAJyrsu84Q/GT0gV+mCxbfmKNoGRKBYMJ8IEdGPqu49YWXD02GCknEDkw==} @@ -4635,13 +4527,13 @@ snapshots: '@adobe/css-tools@4.4.3': {} - '@ai-sdk/gateway@1.0.19(zod@3.25.76)': + '@ai-sdk/gateway@1.0.20(zod@3.25.76)': dependencies: '@ai-sdk/provider': 2.0.0 '@ai-sdk/provider-utils': 3.0.8(zod@3.25.76) zod: 3.25.76 - '@ai-sdk/openai@2.0.25(zod@3.25.76)': + '@ai-sdk/openai@2.0.27(zod@3.25.76)': dependencies: '@ai-sdk/provider': 2.0.0 '@ai-sdk/provider-utils': 3.0.8(zod@3.25.76) @@ -4658,11 +4550,11 @@ snapshots: dependencies: json-schema: 0.4.0 - '@ai-sdk/rsc@1.0.34(react@19.1.1)(zod@3.25.76)': + '@ai-sdk/rsc@1.0.39(react@19.1.1)(zod@3.25.76)': dependencies: '@ai-sdk/provider': 2.0.0 '@ai-sdk/provider-utils': 3.0.8(zod@3.25.76) - ai: 5.0.34(zod@3.25.76) + ai: 5.0.39(zod@3.25.76) jsondiffpatch: 0.6.0 react: 19.1.1 optionalDependencies: @@ -4738,7 +4630,7 @@ snapshots: '@smithy/util-utf8': 2.3.0 tslib: 2.8.1 - '@aws-sdk/client-s3@3.883.0': + '@aws-sdk/client-s3@3.884.0': dependencies: '@aws-crypto/sha1-browser': 5.2.0 '@aws-crypto/sha256-browser': 5.2.0 @@ -4762,12 +4654,12 @@ snapshots: '@aws-sdk/util-user-agent-browser': 3.873.0 '@aws-sdk/util-user-agent-node': 3.883.0 '@aws-sdk/xml-builder': 3.873.0 - '@smithy/config-resolver': 4.1.5 + '@smithy/config-resolver': 4.2.0 '@smithy/core': 3.10.0 '@smithy/eventstream-serde-browser': 4.0.5 '@smithy/eventstream-serde-config-resolver': 4.1.3 '@smithy/eventstream-serde-node': 4.0.5 - '@smithy/fetch-http-handler': 5.1.1 + '@smithy/fetch-http-handler': 5.2.0 '@smithy/hash-blob-browser': 4.0.5 '@smithy/hash-node': 4.0.5 '@smithy/hash-stream-node': 4.0.5 @@ -4776,24 +4668,24 @@ snapshots: '@smithy/middleware-content-length': 4.0.5 '@smithy/middleware-endpoint': 4.2.0 '@smithy/middleware-retry': 4.2.0 - '@smithy/middleware-serde': 4.0.9 - '@smithy/middleware-stack': 4.0.5 - '@smithy/node-config-provider': 4.1.4 - '@smithy/node-http-handler': 4.1.1 - '@smithy/protocol-http': 5.1.3 + '@smithy/middleware-serde': 4.1.0 + '@smithy/middleware-stack': 4.1.0 + '@smithy/node-config-provider': 4.2.0 + '@smithy/node-http-handler': 4.2.0 + '@smithy/protocol-http': 5.2.0 '@smithy/smithy-client': 4.6.0 - '@smithy/types': 4.3.2 - '@smithy/url-parser': 4.0.5 - '@smithy/util-base64': 4.0.0 - '@smithy/util-body-length-browser': 4.0.0 + '@smithy/types': 4.4.0 + '@smithy/url-parser': 4.1.0 + '@smithy/util-base64': 4.1.0 + '@smithy/util-body-length-browser': 4.1.0 '@smithy/util-body-length-node': 4.0.0 '@smithy/util-defaults-mode-browser': 4.1.0 '@smithy/util-defaults-mode-node': 4.1.0 '@smithy/util-endpoints': 3.0.7 - '@smithy/util-middleware': 4.0.5 - '@smithy/util-retry': 4.0.7 - '@smithy/util-stream': 4.2.4 - '@smithy/util-utf8': 4.0.0 + '@smithy/util-middleware': 4.1.0 + '@smithy/util-retry': 4.1.0 + '@smithy/util-stream': 4.3.0 + '@smithy/util-utf8': 4.1.0 '@smithy/util-waiter': 4.0.7 '@types/uuid': 9.0.8 tslib: 2.8.1 @@ -4815,31 +4707,31 @@ snapshots: '@aws-sdk/util-endpoints': 3.879.0 '@aws-sdk/util-user-agent-browser': 3.873.0 '@aws-sdk/util-user-agent-node': 3.883.0 - '@smithy/config-resolver': 4.1.5 + '@smithy/config-resolver': 4.2.0 '@smithy/core': 3.10.0 - '@smithy/fetch-http-handler': 5.1.1 + '@smithy/fetch-http-handler': 5.2.0 '@smithy/hash-node': 4.0.5 '@smithy/invalid-dependency': 4.0.5 '@smithy/middleware-content-length': 4.0.5 '@smithy/middleware-endpoint': 4.2.0 '@smithy/middleware-retry': 4.2.0 - '@smithy/middleware-serde': 4.0.9 - '@smithy/middleware-stack': 4.0.5 - '@smithy/node-config-provider': 4.1.4 - '@smithy/node-http-handler': 4.1.1 - '@smithy/protocol-http': 5.1.3 + '@smithy/middleware-serde': 4.1.0 + '@smithy/middleware-stack': 4.1.0 + '@smithy/node-config-provider': 4.2.0 + '@smithy/node-http-handler': 4.2.0 + '@smithy/protocol-http': 5.2.0 '@smithy/smithy-client': 4.6.0 - '@smithy/types': 4.3.2 - '@smithy/url-parser': 4.0.5 - '@smithy/util-base64': 4.0.0 - '@smithy/util-body-length-browser': 4.0.0 + '@smithy/types': 4.4.0 + '@smithy/url-parser': 4.1.0 + '@smithy/util-base64': 4.1.0 + '@smithy/util-body-length-browser': 4.1.0 '@smithy/util-body-length-node': 4.0.0 '@smithy/util-defaults-mode-browser': 4.1.0 '@smithy/util-defaults-mode-node': 4.1.0 '@smithy/util-endpoints': 3.0.7 - '@smithy/util-middleware': 4.0.5 - '@smithy/util-retry': 4.0.7 - '@smithy/util-utf8': 4.0.0 + '@smithy/util-middleware': 4.1.0 + '@smithy/util-retry': 4.1.0 + '@smithy/util-utf8': 4.1.0 tslib: 2.8.1 transitivePeerDependencies: - aws-crt @@ -4849,16 +4741,16 @@ snapshots: '@aws-sdk/types': 3.862.0 '@aws-sdk/xml-builder': 3.873.0 '@smithy/core': 3.10.0 - '@smithy/node-config-provider': 4.1.4 - '@smithy/property-provider': 4.0.5 - '@smithy/protocol-http': 5.1.3 + '@smithy/node-config-provider': 4.2.0 + '@smithy/property-provider': 4.1.0 + '@smithy/protocol-http': 5.2.0 '@smithy/signature-v4': 5.1.3 '@smithy/smithy-client': 4.6.0 - '@smithy/types': 4.3.2 - '@smithy/util-base64': 4.0.0 - '@smithy/util-body-length-browser': 4.0.0 - '@smithy/util-middleware': 4.0.5 - '@smithy/util-utf8': 4.0.0 + '@smithy/types': 4.4.0 + '@smithy/util-base64': 4.1.0 + '@smithy/util-body-length-browser': 4.1.0 + '@smithy/util-middleware': 4.1.0 + '@smithy/util-utf8': 4.1.0 fast-xml-parser: 5.2.5 tslib: 2.8.1 @@ -4866,21 +4758,21 @@ snapshots: dependencies: '@aws-sdk/core': 3.883.0 '@aws-sdk/types': 3.862.0 - '@smithy/property-provider': 4.0.5 - '@smithy/types': 4.3.2 + '@smithy/property-provider': 4.1.0 + '@smithy/types': 4.4.0 tslib: 2.8.1 '@aws-sdk/credential-provider-http@3.883.0': dependencies: '@aws-sdk/core': 3.883.0 '@aws-sdk/types': 3.862.0 - '@smithy/fetch-http-handler': 5.1.1 - '@smithy/node-http-handler': 4.1.1 - '@smithy/property-provider': 4.0.5 - '@smithy/protocol-http': 5.1.3 + '@smithy/fetch-http-handler': 5.2.0 + '@smithy/node-http-handler': 4.2.0 + '@smithy/property-provider': 4.1.0 + '@smithy/protocol-http': 5.2.0 '@smithy/smithy-client': 4.6.0 - '@smithy/types': 4.3.2 - '@smithy/util-stream': 4.2.4 + '@smithy/types': 4.4.0 + '@smithy/util-stream': 4.3.0 tslib: 2.8.1 '@aws-sdk/credential-provider-ini@3.883.0': @@ -4893,10 +4785,10 @@ snapshots: '@aws-sdk/credential-provider-web-identity': 3.883.0 '@aws-sdk/nested-clients': 3.883.0 '@aws-sdk/types': 3.862.0 - '@smithy/credential-provider-imds': 4.0.7 - '@smithy/property-provider': 4.0.5 - '@smithy/shared-ini-file-loader': 4.0.5 - '@smithy/types': 4.3.2 + '@smithy/credential-provider-imds': 4.1.0 + '@smithy/property-provider': 4.1.0 + '@smithy/shared-ini-file-loader': 4.1.0 + '@smithy/types': 4.4.0 tslib: 2.8.1 transitivePeerDependencies: - aws-crt @@ -4910,10 +4802,10 @@ snapshots: '@aws-sdk/credential-provider-sso': 3.883.0 '@aws-sdk/credential-provider-web-identity': 3.883.0 '@aws-sdk/types': 3.862.0 - '@smithy/credential-provider-imds': 4.0.7 - '@smithy/property-provider': 4.0.5 - '@smithy/shared-ini-file-loader': 4.0.5 - '@smithy/types': 4.3.2 + '@smithy/credential-provider-imds': 4.1.0 + '@smithy/property-provider': 4.1.0 + '@smithy/shared-ini-file-loader': 4.1.0 + '@smithy/types': 4.4.0 tslib: 2.8.1 transitivePeerDependencies: - aws-crt @@ -4922,9 +4814,9 @@ snapshots: dependencies: '@aws-sdk/core': 3.883.0 '@aws-sdk/types': 3.862.0 - '@smithy/property-provider': 4.0.5 - '@smithy/shared-ini-file-loader': 4.0.5 - '@smithy/types': 4.3.2 + '@smithy/property-provider': 4.1.0 + '@smithy/shared-ini-file-loader': 4.1.0 + '@smithy/types': 4.4.0 tslib: 2.8.1 '@aws-sdk/credential-provider-sso@3.883.0': @@ -4933,9 +4825,9 @@ snapshots: '@aws-sdk/core': 3.883.0 '@aws-sdk/token-providers': 3.883.0 '@aws-sdk/types': 3.862.0 - '@smithy/property-provider': 4.0.5 - '@smithy/shared-ini-file-loader': 4.0.5 - '@smithy/types': 4.3.2 + '@smithy/property-provider': 4.1.0 + '@smithy/shared-ini-file-loader': 4.1.0 + '@smithy/types': 4.4.0 tslib: 2.8.1 transitivePeerDependencies: - aws-crt @@ -4945,8 +4837,8 @@ snapshots: '@aws-sdk/core': 3.883.0 '@aws-sdk/nested-clients': 3.883.0 '@aws-sdk/types': 3.862.0 - '@smithy/property-provider': 4.0.5 - '@smithy/types': 4.3.2 + '@smithy/property-provider': 4.1.0 + '@smithy/types': 4.4.0 tslib: 2.8.1 transitivePeerDependencies: - aws-crt @@ -4955,17 +4847,17 @@ snapshots: dependencies: '@aws-sdk/types': 3.862.0 '@aws-sdk/util-arn-parser': 3.873.0 - '@smithy/node-config-provider': 4.1.4 - '@smithy/protocol-http': 5.1.3 - '@smithy/types': 4.3.2 - '@smithy/util-config-provider': 4.0.0 + '@smithy/node-config-provider': 4.2.0 + '@smithy/protocol-http': 5.2.0 + '@smithy/types': 4.4.0 + '@smithy/util-config-provider': 4.1.0 tslib: 2.8.1 '@aws-sdk/middleware-expect-continue@3.873.0': dependencies: '@aws-sdk/types': 3.862.0 - '@smithy/protocol-http': 5.1.3 - '@smithy/types': 4.3.2 + '@smithy/protocol-http': 5.2.0 + '@smithy/types': 4.4.0 tslib: 2.8.1 '@aws-sdk/middleware-flexible-checksums@3.883.0': @@ -4975,39 +4867,39 @@ snapshots: '@aws-crypto/util': 5.2.0 '@aws-sdk/core': 3.883.0 '@aws-sdk/types': 3.862.0 - '@smithy/is-array-buffer': 4.0.0 - '@smithy/node-config-provider': 4.1.4 - '@smithy/protocol-http': 5.1.3 - '@smithy/types': 4.3.2 - '@smithy/util-middleware': 4.0.5 - '@smithy/util-stream': 4.2.4 - '@smithy/util-utf8': 4.0.0 + '@smithy/is-array-buffer': 4.1.0 + '@smithy/node-config-provider': 4.2.0 + '@smithy/protocol-http': 5.2.0 + '@smithy/types': 4.4.0 + '@smithy/util-middleware': 4.1.0 + '@smithy/util-stream': 4.3.0 + '@smithy/util-utf8': 4.1.0 tslib: 2.8.1 '@aws-sdk/middleware-host-header@3.873.0': dependencies: '@aws-sdk/types': 3.862.0 - '@smithy/protocol-http': 5.1.3 - '@smithy/types': 4.3.2 + '@smithy/protocol-http': 5.2.0 + '@smithy/types': 4.4.0 tslib: 2.8.1 '@aws-sdk/middleware-location-constraint@3.873.0': dependencies: '@aws-sdk/types': 3.862.0 - '@smithy/types': 4.3.2 + '@smithy/types': 4.4.0 tslib: 2.8.1 '@aws-sdk/middleware-logger@3.876.0': dependencies: '@aws-sdk/types': 3.862.0 - '@smithy/types': 4.3.2 + '@smithy/types': 4.4.0 tslib: 2.8.1 '@aws-sdk/middleware-recursion-detection@3.873.0': dependencies: '@aws-sdk/types': 3.862.0 - '@smithy/protocol-http': 5.1.3 - '@smithy/types': 4.3.2 + '@smithy/protocol-http': 5.2.0 + '@smithy/types': 4.4.0 tslib: 2.8.1 '@aws-sdk/middleware-sdk-s3@3.883.0': @@ -5016,21 +4908,21 @@ snapshots: '@aws-sdk/types': 3.862.0 '@aws-sdk/util-arn-parser': 3.873.0 '@smithy/core': 3.10.0 - '@smithy/node-config-provider': 4.1.4 - '@smithy/protocol-http': 5.1.3 + '@smithy/node-config-provider': 4.2.0 + '@smithy/protocol-http': 5.2.0 '@smithy/signature-v4': 5.1.3 '@smithy/smithy-client': 4.6.0 - '@smithy/types': 4.3.2 - '@smithy/util-config-provider': 4.0.0 - '@smithy/util-middleware': 4.0.5 - '@smithy/util-stream': 4.2.4 - '@smithy/util-utf8': 4.0.0 + '@smithy/types': 4.4.0 + '@smithy/util-config-provider': 4.1.0 + '@smithy/util-middleware': 4.1.0 + '@smithy/util-stream': 4.3.0 + '@smithy/util-utf8': 4.1.0 tslib: 2.8.1 '@aws-sdk/middleware-ssec@3.873.0': dependencies: '@aws-sdk/types': 3.862.0 - '@smithy/types': 4.3.2 + '@smithy/types': 4.4.0 tslib: 2.8.1 '@aws-sdk/middleware-user-agent@3.883.0': @@ -5039,8 +4931,8 @@ snapshots: '@aws-sdk/types': 3.862.0 '@aws-sdk/util-endpoints': 3.879.0 '@smithy/core': 3.10.0 - '@smithy/protocol-http': 5.1.3 - '@smithy/types': 4.3.2 + '@smithy/protocol-http': 5.2.0 + '@smithy/types': 4.4.0 tslib: 2.8.1 '@aws-sdk/nested-clients@3.883.0': @@ -5057,31 +4949,31 @@ snapshots: '@aws-sdk/util-endpoints': 3.879.0 '@aws-sdk/util-user-agent-browser': 3.873.0 '@aws-sdk/util-user-agent-node': 3.883.0 - '@smithy/config-resolver': 4.1.5 + '@smithy/config-resolver': 4.2.0 '@smithy/core': 3.10.0 - '@smithy/fetch-http-handler': 5.1.1 + '@smithy/fetch-http-handler': 5.2.0 '@smithy/hash-node': 4.0.5 '@smithy/invalid-dependency': 4.0.5 '@smithy/middleware-content-length': 4.0.5 '@smithy/middleware-endpoint': 4.2.0 '@smithy/middleware-retry': 4.2.0 - '@smithy/middleware-serde': 4.0.9 - '@smithy/middleware-stack': 4.0.5 - '@smithy/node-config-provider': 4.1.4 - '@smithy/node-http-handler': 4.1.1 - '@smithy/protocol-http': 5.1.3 + '@smithy/middleware-serde': 4.1.0 + '@smithy/middleware-stack': 4.1.0 + '@smithy/node-config-provider': 4.2.0 + '@smithy/node-http-handler': 4.2.0 + '@smithy/protocol-http': 5.2.0 '@smithy/smithy-client': 4.6.0 - '@smithy/types': 4.3.2 - '@smithy/url-parser': 4.0.5 - '@smithy/util-base64': 4.0.0 - '@smithy/util-body-length-browser': 4.0.0 + '@smithy/types': 4.4.0 + '@smithy/url-parser': 4.1.0 + '@smithy/util-base64': 4.1.0 + '@smithy/util-body-length-browser': 4.1.0 '@smithy/util-body-length-node': 4.0.0 '@smithy/util-defaults-mode-browser': 4.1.0 '@smithy/util-defaults-mode-node': 4.1.0 '@smithy/util-endpoints': 3.0.7 - '@smithy/util-middleware': 4.0.5 - '@smithy/util-retry': 4.0.7 - '@smithy/util-utf8': 4.0.0 + '@smithy/util-middleware': 4.1.0 + '@smithy/util-retry': 4.1.0 + '@smithy/util-utf8': 4.1.0 tslib: 2.8.1 transitivePeerDependencies: - aws-crt @@ -5089,30 +4981,30 @@ snapshots: '@aws-sdk/region-config-resolver@3.873.0': dependencies: '@aws-sdk/types': 3.862.0 - '@smithy/node-config-provider': 4.1.4 - '@smithy/types': 4.3.2 - '@smithy/util-config-provider': 4.0.0 - '@smithy/util-middleware': 4.0.5 + '@smithy/node-config-provider': 4.2.0 + '@smithy/types': 4.4.0 + '@smithy/util-config-provider': 4.1.0 + '@smithy/util-middleware': 4.1.0 tslib: 2.8.1 - '@aws-sdk/s3-request-presigner@3.883.0': + '@aws-sdk/s3-request-presigner@3.884.0': dependencies: '@aws-sdk/signature-v4-multi-region': 3.883.0 '@aws-sdk/types': 3.862.0 '@aws-sdk/util-format-url': 3.873.0 '@smithy/middleware-endpoint': 4.2.0 - '@smithy/protocol-http': 5.1.3 + '@smithy/protocol-http': 5.2.0 '@smithy/smithy-client': 4.6.0 - '@smithy/types': 4.3.2 + '@smithy/types': 4.4.0 tslib: 2.8.1 '@aws-sdk/signature-v4-multi-region@3.883.0': dependencies: '@aws-sdk/middleware-sdk-s3': 3.883.0 '@aws-sdk/types': 3.862.0 - '@smithy/protocol-http': 5.1.3 + '@smithy/protocol-http': 5.2.0 '@smithy/signature-v4': 5.1.3 - '@smithy/types': 4.3.2 + '@smithy/types': 4.4.0 tslib: 2.8.1 '@aws-sdk/token-providers@3.883.0': @@ -5120,16 +5012,16 @@ snapshots: '@aws-sdk/core': 3.883.0 '@aws-sdk/nested-clients': 3.883.0 '@aws-sdk/types': 3.862.0 - '@smithy/property-provider': 4.0.5 - '@smithy/shared-ini-file-loader': 4.0.5 - '@smithy/types': 4.3.2 + '@smithy/property-provider': 4.1.0 + '@smithy/shared-ini-file-loader': 4.1.0 + '@smithy/types': 4.4.0 tslib: 2.8.1 transitivePeerDependencies: - aws-crt '@aws-sdk/types@3.862.0': dependencies: - '@smithy/types': 4.3.2 + '@smithy/types': 4.4.0 tslib: 2.8.1 '@aws-sdk/util-arn-parser@3.873.0': @@ -5139,16 +5031,16 @@ snapshots: '@aws-sdk/util-endpoints@3.879.0': dependencies: '@aws-sdk/types': 3.862.0 - '@smithy/types': 4.3.2 - '@smithy/url-parser': 4.0.5 + '@smithy/types': 4.4.0 + '@smithy/url-parser': 4.1.0 '@smithy/util-endpoints': 3.0.7 tslib: 2.8.1 '@aws-sdk/util-format-url@3.873.0': dependencies: '@aws-sdk/types': 3.862.0 - '@smithy/querystring-builder': 4.0.5 - '@smithy/types': 4.3.2 + '@smithy/querystring-builder': 4.1.0 + '@smithy/types': 4.4.0 tslib: 2.8.1 '@aws-sdk/util-locate-window@3.804.0': @@ -5158,7 +5050,7 @@ snapshots: '@aws-sdk/util-user-agent-browser@3.873.0': dependencies: '@aws-sdk/types': 3.862.0 - '@smithy/types': 4.3.2 + '@smithy/types': 4.4.0 bowser: 2.11.0 tslib: 2.8.1 @@ -5166,13 +5058,13 @@ snapshots: dependencies: '@aws-sdk/middleware-user-agent': 3.883.0 '@aws-sdk/types': 3.862.0 - '@smithy/node-config-provider': 4.1.4 - '@smithy/types': 4.3.2 + '@smithy/node-config-provider': 4.2.0 + '@smithy/types': 4.4.0 tslib: 2.8.1 '@aws-sdk/xml-builder@3.873.0': dependencies: - '@smithy/types': 4.3.2 + '@smithy/types': 4.4.0 tslib: 2.8.1 '@babel/code-frame@7.27.1': @@ -6194,11 +6086,6 @@ snapshots: dependencies: '@sinonjs/commons': 3.0.1 - '@smithy/abort-controller@4.0.5': - dependencies: - '@smithy/types': 4.3.2 - tslib: 2.8.1 - '@smithy/abort-controller@4.1.0': dependencies: '@smithy/types': 4.4.0 @@ -6206,21 +6093,13 @@ snapshots: '@smithy/chunked-blob-reader-native@4.0.0': dependencies: - '@smithy/util-base64': 4.0.0 + '@smithy/util-base64': 4.1.0 tslib: 2.8.1 '@smithy/chunked-blob-reader@5.0.0': dependencies: tslib: 2.8.1 - '@smithy/config-resolver@4.1.5': - dependencies: - '@smithy/node-config-provider': 4.1.4 - '@smithy/types': 4.3.2 - '@smithy/util-config-provider': 4.0.0 - '@smithy/util-middleware': 4.0.5 - tslib: 2.8.1 - '@smithy/config-resolver@4.2.0': dependencies: '@smithy/node-config-provider': 4.2.0 @@ -6243,14 +6122,6 @@ snapshots: tslib: 2.8.1 uuid: 9.0.1 - '@smithy/credential-provider-imds@4.0.7': - dependencies: - '@smithy/node-config-provider': 4.1.4 - '@smithy/property-provider': 4.0.5 - '@smithy/types': 4.3.2 - '@smithy/url-parser': 4.0.5 - tslib: 2.8.1 - '@smithy/credential-provider-imds@4.1.0': dependencies: '@smithy/node-config-provider': 4.2.0 @@ -6262,39 +6133,31 @@ snapshots: '@smithy/eventstream-codec@4.0.5': dependencies: '@aws-crypto/crc32': 5.2.0 - '@smithy/types': 4.3.2 - '@smithy/util-hex-encoding': 4.0.0 + '@smithy/types': 4.4.0 + '@smithy/util-hex-encoding': 4.1.0 tslib: 2.8.1 '@smithy/eventstream-serde-browser@4.0.5': dependencies: '@smithy/eventstream-serde-universal': 4.0.5 - '@smithy/types': 4.3.2 + '@smithy/types': 4.4.0 tslib: 2.8.1 '@smithy/eventstream-serde-config-resolver@4.1.3': dependencies: - '@smithy/types': 4.3.2 + '@smithy/types': 4.4.0 tslib: 2.8.1 '@smithy/eventstream-serde-node@4.0.5': dependencies: '@smithy/eventstream-serde-universal': 4.0.5 - '@smithy/types': 4.3.2 + '@smithy/types': 4.4.0 tslib: 2.8.1 '@smithy/eventstream-serde-universal@4.0.5': dependencies: '@smithy/eventstream-codec': 4.0.5 - '@smithy/types': 4.3.2 - tslib: 2.8.1 - - '@smithy/fetch-http-handler@5.1.1': - dependencies: - '@smithy/protocol-http': 5.1.3 - '@smithy/querystring-builder': 4.0.5 - '@smithy/types': 4.3.2 - '@smithy/util-base64': 4.0.0 + '@smithy/types': 4.4.0 tslib: 2.8.1 '@smithy/fetch-http-handler@5.2.0': @@ -6309,49 +6172,45 @@ snapshots: dependencies: '@smithy/chunked-blob-reader': 5.0.0 '@smithy/chunked-blob-reader-native': 4.0.0 - '@smithy/types': 4.3.2 + '@smithy/types': 4.4.0 tslib: 2.8.1 '@smithy/hash-node@4.0.5': dependencies: - '@smithy/types': 4.3.2 - '@smithy/util-buffer-from': 4.0.0 - '@smithy/util-utf8': 4.0.0 + '@smithy/types': 4.4.0 + '@smithy/util-buffer-from': 4.1.0 + '@smithy/util-utf8': 4.1.0 tslib: 2.8.1 '@smithy/hash-stream-node@4.0.5': dependencies: - '@smithy/types': 4.3.2 - '@smithy/util-utf8': 4.0.0 + '@smithy/types': 4.4.0 + '@smithy/util-utf8': 4.1.0 tslib: 2.8.1 '@smithy/invalid-dependency@4.0.5': dependencies: - '@smithy/types': 4.3.2 + '@smithy/types': 4.4.0 tslib: 2.8.1 '@smithy/is-array-buffer@2.2.0': dependencies: tslib: 2.8.1 - '@smithy/is-array-buffer@4.0.0': - dependencies: - tslib: 2.8.1 - '@smithy/is-array-buffer@4.1.0': dependencies: tslib: 2.8.1 '@smithy/md5-js@4.0.5': dependencies: - '@smithy/types': 4.3.2 - '@smithy/util-utf8': 4.0.0 + '@smithy/types': 4.4.0 + '@smithy/util-utf8': 4.1.0 tslib: 2.8.1 '@smithy/middleware-content-length@4.0.5': dependencies: - '@smithy/protocol-http': 5.1.3 - '@smithy/types': 4.3.2 + '@smithy/protocol-http': 5.2.0 + '@smithy/types': 4.4.0 tslib: 2.8.1 '@smithy/middleware-endpoint@4.2.0': @@ -6378,35 +6237,17 @@ snapshots: tslib: 2.8.1 uuid: 9.0.1 - '@smithy/middleware-serde@4.0.9': - dependencies: - '@smithy/protocol-http': 5.1.3 - '@smithy/types': 4.3.2 - tslib: 2.8.1 - '@smithy/middleware-serde@4.1.0': dependencies: '@smithy/protocol-http': 5.2.0 '@smithy/types': 4.4.0 tslib: 2.8.1 - '@smithy/middleware-stack@4.0.5': - dependencies: - '@smithy/types': 4.3.2 - tslib: 2.8.1 - '@smithy/middleware-stack@4.1.0': dependencies: '@smithy/types': 4.4.0 tslib: 2.8.1 - '@smithy/node-config-provider@4.1.4': - dependencies: - '@smithy/property-provider': 4.0.5 - '@smithy/shared-ini-file-loader': 4.0.5 - '@smithy/types': 4.3.2 - tslib: 2.8.1 - '@smithy/node-config-provider@4.2.0': dependencies: '@smithy/property-provider': 4.1.0 @@ -6414,14 +6255,6 @@ snapshots: '@smithy/types': 4.4.0 tslib: 2.8.1 - '@smithy/node-http-handler@4.1.1': - dependencies: - '@smithy/abort-controller': 4.0.5 - '@smithy/protocol-http': 5.1.3 - '@smithy/querystring-builder': 4.0.5 - '@smithy/types': 4.3.2 - tslib: 2.8.1 - '@smithy/node-http-handler@4.2.0': dependencies: '@smithy/abort-controller': 4.1.0 @@ -6430,61 +6263,31 @@ snapshots: '@smithy/types': 4.4.0 tslib: 2.8.1 - '@smithy/property-provider@4.0.5': - dependencies: - '@smithy/types': 4.3.2 - tslib: 2.8.1 - '@smithy/property-provider@4.1.0': dependencies: '@smithy/types': 4.4.0 tslib: 2.8.1 - '@smithy/protocol-http@5.1.3': - dependencies: - '@smithy/types': 4.3.2 - tslib: 2.8.1 - '@smithy/protocol-http@5.2.0': dependencies: '@smithy/types': 4.4.0 tslib: 2.8.1 - '@smithy/querystring-builder@4.0.5': - dependencies: - '@smithy/types': 4.3.2 - '@smithy/util-uri-escape': 4.0.0 - tslib: 2.8.1 - '@smithy/querystring-builder@4.1.0': dependencies: '@smithy/types': 4.4.0 '@smithy/util-uri-escape': 4.1.0 tslib: 2.8.1 - '@smithy/querystring-parser@4.0.5': - dependencies: - '@smithy/types': 4.3.2 - tslib: 2.8.1 - '@smithy/querystring-parser@4.1.0': dependencies: '@smithy/types': 4.4.0 tslib: 2.8.1 - '@smithy/service-error-classification@4.0.7': - dependencies: - '@smithy/types': 4.3.2 - '@smithy/service-error-classification@4.1.0': dependencies: '@smithy/types': 4.4.0 - '@smithy/shared-ini-file-loader@4.0.5': - dependencies: - '@smithy/types': 4.3.2 - tslib: 2.8.1 - '@smithy/shared-ini-file-loader@4.1.0': dependencies: '@smithy/types': 4.4.0 @@ -6492,13 +6295,13 @@ snapshots: '@smithy/signature-v4@5.1.3': dependencies: - '@smithy/is-array-buffer': 4.0.0 - '@smithy/protocol-http': 5.1.3 - '@smithy/types': 4.3.2 - '@smithy/util-hex-encoding': 4.0.0 - '@smithy/util-middleware': 4.0.5 - '@smithy/util-uri-escape': 4.0.0 - '@smithy/util-utf8': 4.0.0 + '@smithy/is-array-buffer': 4.1.0 + '@smithy/protocol-http': 5.2.0 + '@smithy/types': 4.4.0 + '@smithy/util-hex-encoding': 4.1.0 + '@smithy/util-middleware': 4.1.0 + '@smithy/util-uri-escape': 4.1.0 + '@smithy/util-utf8': 4.1.0 tslib: 2.8.1 '@smithy/smithy-client@4.6.0': @@ -6511,42 +6314,22 @@ snapshots: '@smithy/util-stream': 4.3.0 tslib: 2.8.1 - '@smithy/types@4.3.2': - dependencies: - tslib: 2.8.1 - '@smithy/types@4.4.0': dependencies: tslib: 2.8.1 - '@smithy/url-parser@4.0.5': - dependencies: - '@smithy/querystring-parser': 4.0.5 - '@smithy/types': 4.3.2 - tslib: 2.8.1 - '@smithy/url-parser@4.1.0': dependencies: '@smithy/querystring-parser': 4.1.0 '@smithy/types': 4.4.0 tslib: 2.8.1 - '@smithy/util-base64@4.0.0': - dependencies: - '@smithy/util-buffer-from': 4.0.0 - '@smithy/util-utf8': 4.0.0 - tslib: 2.8.1 - '@smithy/util-base64@4.1.0': dependencies: '@smithy/util-buffer-from': 4.1.0 '@smithy/util-utf8': 4.1.0 tslib: 2.8.1 - '@smithy/util-body-length-browser@4.0.0': - dependencies: - tslib: 2.8.1 - '@smithy/util-body-length-browser@4.1.0': dependencies: tslib: 2.8.1 @@ -6560,20 +6343,11 @@ snapshots: '@smithy/is-array-buffer': 2.2.0 tslib: 2.8.1 - '@smithy/util-buffer-from@4.0.0': - dependencies: - '@smithy/is-array-buffer': 4.0.0 - tslib: 2.8.1 - '@smithy/util-buffer-from@4.1.0': dependencies: '@smithy/is-array-buffer': 4.1.0 tslib: 2.8.1 - '@smithy/util-config-provider@4.0.0': - dependencies: - tslib: 2.8.1 - '@smithy/util-config-provider@4.1.0': dependencies: tslib: 2.8.1 @@ -6598,51 +6372,25 @@ snapshots: '@smithy/util-endpoints@3.0.7': dependencies: - '@smithy/node-config-provider': 4.1.4 - '@smithy/types': 4.3.2 - tslib: 2.8.1 - - '@smithy/util-hex-encoding@4.0.0': - dependencies: + '@smithy/node-config-provider': 4.2.0 + '@smithy/types': 4.4.0 tslib: 2.8.1 '@smithy/util-hex-encoding@4.1.0': dependencies: tslib: 2.8.1 - '@smithy/util-middleware@4.0.5': - dependencies: - '@smithy/types': 4.3.2 - tslib: 2.8.1 - '@smithy/util-middleware@4.1.0': dependencies: '@smithy/types': 4.4.0 tslib: 2.8.1 - '@smithy/util-retry@4.0.7': - dependencies: - '@smithy/service-error-classification': 4.0.7 - '@smithy/types': 4.3.2 - tslib: 2.8.1 - '@smithy/util-retry@4.1.0': dependencies: '@smithy/service-error-classification': 4.1.0 '@smithy/types': 4.4.0 tslib: 2.8.1 - '@smithy/util-stream@4.2.4': - dependencies: - '@smithy/fetch-http-handler': 5.1.1 - '@smithy/node-http-handler': 4.1.1 - '@smithy/types': 4.3.2 - '@smithy/util-base64': 4.0.0 - '@smithy/util-buffer-from': 4.0.0 - '@smithy/util-hex-encoding': 4.0.0 - '@smithy/util-utf8': 4.0.0 - tslib: 2.8.1 - '@smithy/util-stream@4.3.0': dependencies: '@smithy/fetch-http-handler': 5.2.0 @@ -6654,10 +6402,6 @@ snapshots: '@smithy/util-utf8': 4.1.0 tslib: 2.8.1 - '@smithy/util-uri-escape@4.0.0': - dependencies: - tslib: 2.8.1 - '@smithy/util-uri-escape@4.1.0': dependencies: tslib: 2.8.1 @@ -6667,11 +6411,6 @@ snapshots: '@smithy/util-buffer-from': 2.2.0 tslib: 2.8.1 - '@smithy/util-utf8@4.0.0': - dependencies: - '@smithy/util-buffer-from': 4.0.0 - tslib: 2.8.1 - '@smithy/util-utf8@4.1.0': dependencies: '@smithy/util-buffer-from': 4.1.0 @@ -6679,8 +6418,8 @@ snapshots: '@smithy/util-waiter@4.0.7': dependencies: - '@smithy/abort-controller': 4.0.5 - '@smithy/types': 4.3.2 + '@smithy/abort-controller': 4.1.0 + '@smithy/types': 4.4.0 tslib: 2.8.1 '@standard-schema/spec@1.0.0': {} @@ -7101,9 +6840,9 @@ snapshots: agent-base@7.1.4: {} - ai@5.0.34(zod@3.25.76): + ai@5.0.39(zod@3.25.76): dependencies: - '@ai-sdk/gateway': 1.0.19(zod@3.25.76) + '@ai-sdk/gateway': 1.0.20(zod@3.25.76) '@ai-sdk/provider': 2.0.0 '@ai-sdk/provider-utils': 3.0.8(zod@3.25.76) '@opentelemetry/api': 1.9.0 @@ -7341,11 +7080,11 @@ snapshots: callsites@3.1.0: {} - camelcase-keys@9.1.3: + camelcase-keys@10.0.0: dependencies: camelcase: 8.0.0 - map-obj: 5.0.0 - quick-lru: 6.1.2 + map-obj: 5.0.2 + quick-lru: 7.1.0 type-fest: 4.41.0 camelcase@5.3.1: {} @@ -8888,7 +8627,7 @@ snapshots: dependencies: tmpl: 1.0.5 - map-obj@5.0.0: {} + map-obj@5.0.2: {} math-intrinsics@1.1.0: {} @@ -9214,7 +8953,7 @@ snapshots: queue-microtask@1.2.3: {} - quick-lru@6.1.2: {} + quick-lru@7.1.0: {} react-dom@19.1.1(react@19.1.1): dependencies: diff --git a/src/admin/config/AdminAppConfigurationClient.tsx b/src/admin/config/AdminAppConfigurationClient.tsx index e287bc27..6c0e9e49 100644 --- a/src/admin/config/AdminAppConfigurationClient.tsx +++ b/src/admin/config/AdminAppConfigurationClient.tsx @@ -10,7 +10,7 @@ import { } from 'react'; import ChecklistRow from '@/components/ChecklistRow'; import ChecklistGroup from '@/components/ChecklistGroup'; -import { AppConfiguration } from '@/app/config'; +import { AppConfiguration, SOCIAL_KEYS } from '@/app/config'; import StatusIcon from '@/components/StatusIcon'; import { labelForStorage } from '@/platforms/storage'; import { testConnectionsAction } from '@/admin/actions'; @@ -19,7 +19,7 @@ import SecretGenerator from '@/app/SecretGenerator'; import EnvVar from '@/components/EnvVar'; import AdminLink from '@/admin/AdminLink'; import ScoreCardContainer from '@/components/ScoreCardContainer'; -import { DEFAULT_CATEGORY_KEYS, getHiddenCategories } from '@/category'; +import { CATEGORY_KEYS, DEFAULT_CATEGORY_KEYS } from '@/category'; import { AI_AUTO_GENERATED_FIELDS_ALL } from '@/photo/ai'; import clsx from 'clsx/lite'; import Link from 'next/link'; @@ -32,6 +32,8 @@ import { } from '.'; import ColorDot from '@/photo/color/ColorDot'; import { Oklch } from '@/photo/color/client'; +import { getOrderedKeyListStatus } from '@/utility/key'; +import { DEFAULT_SOCIAL_KEYS } from '@/social'; export default function AdminAppConfigurationClient({ // Storage @@ -100,7 +102,6 @@ export default function AdminAppConfigurationClient({ showExifInfo, showZoomControls, showTakenAtTimeHidden, - showSocial, showRepoLink, // Grid isGridHomepageEnabled, @@ -118,6 +119,8 @@ export default function AdminAppConfigurationClient({ // Settings isGeoPrivacyEnabled, arePublicDownloadsEnabled, + hasSocialKeys, + socialKeys, areSiteFeedsEnabled, isOgTextBottomAligned, // Internal @@ -185,6 +188,23 @@ export default function AdminAppConfigurationClient({ 'translate-y-[7px]', ); + const renderOrderedKeyList = ( + selectedKeys: string[], + acceptedKeys: readonly string[], + ) => +