diff --git a/package.json b/package.json
index b0f6d95e92..a02a8af39f 100644
--- a/package.json
+++ b/package.json
@@ -22,7 +22,7 @@
},
"dependencies": {
"@ai-sdk/svelte": "^1.1.24",
- "@appwrite.io/console": "https://pkg.pr.new/appwrite-labs/cloud/@appwrite.io/console@8836b0c",
+ "@appwrite.io/console": "https://pkg.pr.new/appwrite-labs/cloud/@appwrite.io/console@935b30f",
"@appwrite.io/pink-icons": "0.25.0",
"@appwrite.io/pink-icons-svelte": "^2.0.0-RC.1",
"@appwrite.io/pink-legacy": "^1.0.3",
@@ -57,20 +57,20 @@
"@sveltejs/vite-plugin-svelte": "^5.0.3",
"@testing-library/dom": "^10.4.0",
"@testing-library/jest-dom": "^6.6.3",
- "@testing-library/svelte": "^5.2.4",
+ "@testing-library/svelte": "^5.2.8",
"@testing-library/user-event": "^14.6.1",
"@types/deep-equal": "^1.0.4",
"@types/prismjs": "^1.26.5",
"@types/remarkable": "^2.0.8",
"@typescript-eslint/eslint-plugin": "^8.28.0",
"@typescript-eslint/parser": "^8.28.0",
- "@vitest/ui": "^3.0.9",
+ "@vitest/ui": "^3.2.4",
"color": "^5.0.0",
"eslint": "^9.31.0",
"eslint-config-prettier": "^10.1.0",
"eslint-plugin-svelte": "^3.3.3",
"globals": "^16.0.0",
- "jsdom": "^26.0.0",
+ "jsdom": "^26.1.0",
"kleur": "^4.1.5",
"prettier": "^3.5.3",
"prettier-plugin-svelte": "^3.3.3",
@@ -94,5 +94,5 @@
"svelte-preprocess"
]
},
- "packageManager": "pnpm@10.7.0+sha512.6b865ad4b62a1d9842b61d674a393903b871d9244954f652b8842c2b553c72176b278f64c463e52d40fff8aba385c235c8c9ecf5cc7de4fd78b8bb6d49633ab6"
+ "packageManager": "pnpm@10.13.1"
}
diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml
index 7174196305..81067a61a8 100644
--- a/pnpm-lock.yaml
+++ b/pnpm-lock.yaml
@@ -12,8 +12,8 @@ importers:
specifier: ^1.1.24
version: 1.1.24(svelte@5.25.3)(zod@3.24.3)
'@appwrite.io/console':
- specifier: https://pkg.pr.new/appwrite-labs/cloud/@appwrite.io/console@8836b0c
- version: https://pkg.pr.new/appwrite-labs/cloud/@appwrite.io/console@8836b0c
+ specifier: https://pkg.pr.new/appwrite-labs/cloud/@appwrite.io/console@935b30f
+ version: https://pkg.pr.new/appwrite-labs/cloud/@appwrite.io/console@935b30f
'@appwrite.io/pink-icons':
specifier: 0.25.0
version: 0.25.0
@@ -112,8 +112,8 @@ importers:
specifier: ^6.6.3
version: 6.6.3
'@testing-library/svelte':
- specifier: ^5.2.4
- version: 5.2.7(svelte@5.25.3)(vite@6.2.3(@types/node@22.13.14)(sass@1.86.0))(vitest@3.0.9)
+ specifier: ^5.2.8
+ version: 5.2.8(svelte@5.25.3)(vite@6.2.3(@types/node@22.13.14)(sass@1.86.0))(vitest@3.0.9)
'@testing-library/user-event':
specifier: ^14.6.1
version: 14.6.1(@testing-library/dom@10.4.0)
@@ -133,8 +133,8 @@ importers:
specifier: ^8.28.0
version: 8.28.0(eslint@9.31.0)(typescript@5.8.2)
'@vitest/ui':
- specifier: ^3.0.9
- version: 3.0.9(vitest@3.0.9)
+ specifier: ^3.2.4
+ version: 3.2.4(vitest@3.0.9)
color:
specifier: ^5.0.0
version: 5.0.0
@@ -151,8 +151,8 @@ importers:
specifier: ^16.0.0
version: 16.0.0
jsdom:
- specifier: ^26.0.0
- version: 26.0.0
+ specifier: ^26.1.0
+ version: 26.1.0
kleur:
specifier: ^4.1.5
version: 4.1.5
@@ -194,7 +194,7 @@ importers:
version: 6.2.3(@types/node@22.13.14)(sass@1.86.0)
vitest:
specifier: ^3.0.0
- version: 3.0.9(@types/node@22.13.14)(@vitest/ui@3.0.9)(jsdom@26.0.0)(sass@1.86.0)
+ version: 3.0.9(@types/node@22.13.14)(@vitest/ui@3.2.4)(jsdom@26.1.0)(sass@1.86.0)
packages:
@@ -257,8 +257,8 @@ packages:
'@analytics/type-utils@0.6.2':
resolution: {integrity: sha512-TD+xbmsBLyYy/IxFimW/YL/9L2IEnM7/EoV9Aeh56U64Ify8o27HJcKjo38XY9Tcn0uOq1AX3thkKgvtWvwFQg==}
- '@appwrite.io/console@https://pkg.pr.new/appwrite-labs/cloud/@appwrite.io/console@8836b0c':
- resolution: {tarball: https://pkg.pr.new/appwrite-labs/cloud/@appwrite.io/console@8836b0c}
+ '@appwrite.io/console@https://pkg.pr.new/appwrite-labs/cloud/@appwrite.io/console@935b30f':
+ resolution: {tarball: https://pkg.pr.new/appwrite-labs/cloud/@appwrite.io/console@935b30f}
version: 1.9.0
'@appwrite.io/pink-icons-svelte@https://pkg.pr.new/appwrite/pink/@appwrite.io/pink-icons-svelte@fee5c539136e15c93cd3f2398d25cb217caa8dc8':
@@ -1282,8 +1282,8 @@ packages:
resolution: {integrity: sha512-IteBhl4XqYNkM54f4ejhLRJiZNqcSCoXUOG2CPK7qbD322KjQozM4kHQOfkG2oln9b9HTYqs+Sae8vBATubxxA==}
engines: {node: '>=14', npm: '>=6', yarn: '>=1'}
- '@testing-library/svelte@5.2.7':
- resolution: {integrity: sha512-aGhUaFmEXEVost4QOsbHUUbHLwi7ZZRRxAHFDO2Cmr0BZD3/3+XvaYEPq70Rdw0NRNjdqZHdARBEcrCOkPuAqw==}
+ '@testing-library/svelte@5.2.8':
+ resolution: {integrity: sha512-ucQOtGsJhtawOEtUmbR4rRh53e6RbM1KUluJIXRmh6D4UzxR847iIqqjRtg9mHNFmGQ8Vkam9yVcR5d1mhIHKA==}
engines: {node: '>= 10'}
peerDependencies:
svelte: ^3 || ^4 || ^5 || ^5.0.0-next.0
@@ -1478,6 +1478,9 @@ packages:
'@vitest/pretty-format@3.0.9':
resolution: {integrity: sha512-OW9F8t2J3AwFEwENg3yMyKWweF7oRJlMyHOMIhO5F3n0+cgQAJZBjNgrF8dLwFTEXl5jUqBLXd9QyyKv8zEcmA==}
+ '@vitest/pretty-format@3.2.4':
+ resolution: {integrity: sha512-IVNZik8IVRJRTr9fxlitMKeJeXFFFN0JaB9PHPGQ8NKQbGpfjlTx9zO4RefN8gp7eqjNy8nyK3NZmBzOPeIxtA==}
+
'@vitest/runner@3.0.9':
resolution: {integrity: sha512-NX9oUXgF9HPfJSwl8tUZCMP1oGx2+Sf+ru6d05QjzQz4OwWg0psEzwY6VexP2tTHWdOkhKHUIZH+fS6nA7jfOw==}
@@ -1487,14 +1490,17 @@ packages:
'@vitest/spy@3.0.9':
resolution: {integrity: sha512-/CcK2UDl0aQ2wtkp3YVWldrpLRNCfVcIOFGlVGKO4R5eajsH393Z1yiXLVQ7vWsj26JOEjeZI0x5sm5P4OGUNQ==}
- '@vitest/ui@3.0.9':
- resolution: {integrity: sha512-FpZD4aIv/qNpwkV3XbLV6xldWFHMgoNWAJEgg5GmpObmAOLAErpYjew9dDwXdYdKOS3iZRKdwI+P3JOJcYeUBg==}
+ '@vitest/ui@3.2.4':
+ resolution: {integrity: sha512-hGISOaP18plkzbWEcP/QvtRW1xDXF2+96HbEX6byqQhAUbiS5oH6/9JwW+QsQCIYON2bI6QZBF+2PvOmrRZ9wA==}
peerDependencies:
- vitest: 3.0.9
+ vitest: 3.2.4
'@vitest/utils@3.0.9':
resolution: {integrity: sha512-ilHM5fHhZ89MCp5aAaM9uhfl1c2JdxVxl3McqsdVyVNN6JffnEen8UMCdRTzOhGXNQGo5GNL9QugHrz727Wnng==}
+ '@vitest/utils@3.2.4':
+ resolution: {integrity: sha512-fB2V0JFrQSMsCo9HiSq3Ezpdv4iYaXRG1Sx8edX3MwxfyNn83mKiGzOcH+Fkxt4MHxr3y42fQi1oeAInqgX2QA==}
+
'@vue/compiler-core@3.5.13':
resolution: {integrity: sha512-oOdAkwqUfW1WqpwSYJce06wvt6HljgY3fGeM9NcVA1HaYOij3mZG9Rkysn0OHuyUAGMbEbARIpsG+LPVlBJ5/Q==}
@@ -1625,9 +1631,6 @@ packages:
resolution: {integrity: sha512-6t10qk83GOG8p0vKmaCr8eiilZwO171AvbROMtvvNiwrTly62t+7XkA8RdIIVbpMhCASAsxgAzdRSwh6nw/5Dg==}
engines: {node: '>=4'}
- asynckit@0.4.0:
- resolution: {integrity: sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==}
-
autolinker@3.16.2:
resolution: {integrity: sha512-JiYl7j2Z19F9NdTmirENSUUIIL/9MytEWtmzhfmsKPCp9E+G35Y0UNCMoM9tFigxT59qSc8Ml2dlZXOCVTYwuA==}
@@ -1750,10 +1753,6 @@ packages:
resolution: {integrity: sha512-16BlyiuyLq3MLxpRWyOTiWsO3ii/eLQLJUQXBSNcxMBBSnyt1ee9YUdaozQp03ifwm5woztEZGDbk9RGVuCsdw==}
engines: {node: '>=18'}
- combined-stream@1.0.8:
- resolution: {integrity: sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==}
- engines: {node: '>= 0.8'}
-
comma-separated-tokens@2.0.3:
resolution: {integrity: sha512-Fu4hJdvzeylCfQPp9SGWidpzrMs7tTrlu6Vb8XGaRGck8QSNZJJp538Wrb60Lax4fPwR64ViY468OIUTbRlGZg==}
@@ -1970,10 +1969,6 @@ packages:
delaunator@5.0.1:
resolution: {integrity: sha512-8nvh+XBe96aCESrGOqMp/84b13H9cdKbG5P2ejQCh4d4sK9RL4371qou9drQjMhvnPmhWl5hnmqbEE0fXr9Xnw==}
- delayed-stream@1.0.0:
- resolution: {integrity: sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==}
- engines: {node: '>=0.4.0'}
-
dequal@2.0.3:
resolution: {integrity: sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA==}
engines: {node: '>=6'}
@@ -2037,10 +2032,6 @@ packages:
resolution: {integrity: sha512-FGgH2h8zKNim9ljj7dankFPcICIK9Cp5bm+c2gQSYePhpaG5+esrLODihIorn+Pe6FGJzWhXQotPv73jTaldXA==}
engines: {node: '>= 0.4'}
- es-set-tostringtag@2.1.0:
- resolution: {integrity: sha512-j6vWzfrGVfyXxge+O0x5sh6cvxAog0a/4Rdd2K36zCMV5eJ+/+tOAngRO8cODMNWbVRdVlmGZQL2YS3yR8bIUA==}
- engines: {node: '>= 0.4'}
-
esbuild@0.25.1:
resolution: {integrity: sha512-BGO5LtrGC7vxnqucAe/rmvKdJllfGaYWdyABvyMoXQlfYMb2bbRuReWR5tEGE//4LcNJj9XrkovTqNYRFZHAMQ==}
engines: {node: '>=18'}
@@ -2183,6 +2174,14 @@ packages:
picomatch:
optional: true
+ fdir@6.4.6:
+ resolution: {integrity: sha512-hiFoqpyZcfNm1yc4u8oWCf9A2c4D3QjCrks3zmoVKVxpQRzmPNar1hUJcBG2RQHvEVGDN+Jm81ZheVLAQMK6+w==}
+ peerDependencies:
+ picomatch: ^3 || ^4
+ peerDependenciesMeta:
+ picomatch:
+ optional: true
+
fflate@0.8.2:
resolution: {integrity: sha512-cPJU47OaAoCbg0pBvzsgpTPhmhqI5eJjh/JIu8tPj5q+T7iLvW/JAYUqmE7KOB4R1ZyEhzBaIQpQpardBF5z8A==}
@@ -2212,10 +2211,6 @@ packages:
resolution: {integrity: sha512-dKx12eRCVIzqCxFGplyFKJMPvLEWgmNtUrpTiJIR5u97zEhRG8ySrtboPHZXx7daLxQVrl643cTzbab2tkQjxg==}
engines: {node: '>= 0.4'}
- form-data@4.0.2:
- resolution: {integrity: sha512-hGfm/slu0ZabnNt4oaRZ6uREyfCj6P4fT/n6A1rGV+Z0VdGXjfOhVUpkn6qVQONHGIFwmveGXyDs75+nr6FM8w==}
- engines: {node: '>= 6'}
-
forwarded-parse@2.1.2:
resolution: {integrity: sha512-alTFZZQDKMporBH77856pXgzhEzaUVmLCDk+egLgIgHst3Tpndzz8MnKe+GzRJRfvVdn69HhpW7cmXzvtLvJAw==}
@@ -2485,8 +2480,8 @@ packages:
resolution: {integrity: sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==}
hasBin: true
- jsdom@26.0.0:
- resolution: {integrity: sha512-BZYDGVAIriBWTpIxYzrXjv3E/4u8+/pSG5bQdIYCbNCGOvsPkDQfTVLAIXAf9ETdCpduCVTkDe2NNZ8NIwUVzw==}
+ jsdom@26.1.0:
+ resolution: {integrity: sha512-Cvc9WUhxSMEo4McES3P7oK3QaXldCfNWp7pl2NNeiIFlCoLr3kfq9kb1fxftiwk1FLV7CvpvDfonxtzUDeSOPg==}
engines: {node: '>=18'}
peerDependencies:
canvas: ^3.0.0
@@ -2554,6 +2549,9 @@ packages:
loupe@3.1.3:
resolution: {integrity: sha512-kkIp7XSkP78ZxJEsSxW3712C6teJVoeHHwgo9zJ380de7IYyJ2ISlxojcH2pC5OFLewESmnRi/+XCDIEEVyoug==}
+ loupe@3.1.4:
+ resolution: {integrity: sha512-wJzkKwJrheKtknCOKNEtDK4iqg/MxmZheEMtSTYvnzRdEYaZzmgH976nenp8WdJRdx5Vc1X/9MO0Oszl6ezeXg==}
+
lru-cache@10.4.3:
resolution: {integrity: sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==}
@@ -2615,14 +2613,6 @@ packages:
resolution: {integrity: sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==}
engines: {node: '>=8.6'}
- mime-db@1.52.0:
- resolution: {integrity: sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==}
- engines: {node: '>= 0.6'}
-
- mime-types@2.1.35:
- resolution: {integrity: sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==}
- engines: {node: '>= 0.6'}
-
min-indent@1.0.1:
resolution: {integrity: sha512-I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg==}
engines: {node: '>=4'}
@@ -3256,8 +3246,8 @@ packages:
tinyexec@0.3.2:
resolution: {integrity: sha512-KQQR9yN7R5+OSwaK0XQoj22pwHoTlgYqmUscPYoknOoWCWfj/5/ABTMRi69FrKU5ffPVh5QcFikpWJI/P1ocHA==}
- tinyglobby@0.2.12:
- resolution: {integrity: sha512-qkf4trmKSIiMTs/E63cxH+ojC2unam7rJ0WrauAzpT3ECNTxGRMlaXxVbfxMUC/w0LaYk6jQ4y/nGR9uBO3tww==}
+ tinyglobby@0.2.14:
+ resolution: {integrity: sha512-tX5e7OM1HnYr2+a2C/4V0htOcSQcoSTH9KgJnVvNm5zm/cyEWKJ7j7YutsH9CxMdtOkkLFy2AHrMci9IM8IPZQ==}
engines: {node: '>=12.0.0'}
tinypool@1.0.2:
@@ -3661,7 +3651,7 @@ snapshots:
'@analytics/type-utils@0.6.2': {}
- '@appwrite.io/console@https://pkg.pr.new/appwrite-labs/cloud/@appwrite.io/console@8836b0c': {}
+ '@appwrite.io/console@https://pkg.pr.new/appwrite-labs/cloud/@appwrite.io/console@935b30f': {}
'@appwrite.io/pink-icons-svelte@https://pkg.pr.new/appwrite/pink/@appwrite.io/pink-icons-svelte@fee5c539136e15c93cd3f2398d25cb217caa8dc8(svelte@5.25.3)':
dependencies:
@@ -4765,13 +4755,13 @@ snapshots:
lodash: 4.17.21
redent: 3.0.0
- '@testing-library/svelte@5.2.7(svelte@5.25.3)(vite@6.2.3(@types/node@22.13.14)(sass@1.86.0))(vitest@3.0.9)':
+ '@testing-library/svelte@5.2.8(svelte@5.25.3)(vite@6.2.3(@types/node@22.13.14)(sass@1.86.0))(vitest@3.0.9)':
dependencies:
'@testing-library/dom': 10.4.0
svelte: 5.25.3
optionalDependencies:
vite: 6.2.3(@types/node@22.13.14)(sass@1.86.0)
- vitest: 3.0.9(@types/node@22.13.14)(@vitest/ui@3.0.9)(jsdom@26.0.0)(sass@1.86.0)
+ vitest: 3.0.9(@types/node@22.13.14)(@vitest/ui@3.2.4)(jsdom@26.1.0)(sass@1.86.0)
'@testing-library/user-event@14.6.1(@testing-library/dom@10.4.0)':
dependencies:
@@ -5015,6 +5005,10 @@ snapshots:
dependencies:
tinyrainbow: 2.0.0
+ '@vitest/pretty-format@3.2.4':
+ dependencies:
+ tinyrainbow: 2.0.0
+
'@vitest/runner@3.0.9':
dependencies:
'@vitest/utils': 3.0.9
@@ -5030,16 +5024,16 @@ snapshots:
dependencies:
tinyspy: 3.0.2
- '@vitest/ui@3.0.9(vitest@3.0.9)':
+ '@vitest/ui@3.2.4(vitest@3.0.9)':
dependencies:
- '@vitest/utils': 3.0.9
+ '@vitest/utils': 3.2.4
fflate: 0.8.2
flatted: 3.3.3
pathe: 2.0.3
sirv: 3.0.1
- tinyglobby: 0.2.12
+ tinyglobby: 0.2.14
tinyrainbow: 2.0.0
- vitest: 3.0.9(@types/node@22.13.14)(@vitest/ui@3.0.9)(jsdom@26.0.0)(sass@1.86.0)
+ vitest: 3.0.9(@types/node@22.13.14)(@vitest/ui@3.2.4)(jsdom@26.1.0)(sass@1.86.0)
'@vitest/utils@3.0.9':
dependencies:
@@ -5047,6 +5041,12 @@ snapshots:
loupe: 3.1.3
tinyrainbow: 2.0.0
+ '@vitest/utils@3.2.4':
+ dependencies:
+ '@vitest/pretty-format': 3.2.4
+ loupe: 3.1.4
+ tinyrainbow: 2.0.0
+
'@vue/compiler-core@3.5.13':
dependencies:
'@babel/parser': 7.27.0
@@ -5198,8 +5198,6 @@ snapshots:
dependencies:
tslib: 2.8.1
- asynckit@0.4.0: {}
-
autolinker@3.16.2:
dependencies:
tslib: 2.8.1
@@ -5332,10 +5330,6 @@ snapshots:
color-convert: 3.1.0
color-string: 2.0.1
- combined-stream@1.0.8:
- dependencies:
- delayed-stream: 1.0.0
-
comma-separated-tokens@2.0.3: {}
commander@7.2.0: {}
@@ -5580,8 +5574,6 @@ snapshots:
dependencies:
robust-predicates: 3.0.2
- delayed-stream@1.0.0: {}
-
dequal@2.0.3: {}
detect-libc@1.0.3:
@@ -5640,13 +5632,6 @@ snapshots:
dependencies:
es-errors: 1.3.0
- es-set-tostringtag@2.1.0:
- dependencies:
- es-errors: 1.3.0
- get-intrinsic: 1.3.0
- has-tostringtag: 1.0.2
- hasown: 2.0.2
-
esbuild@0.25.1:
optionalDependencies:
'@esbuild/aix-ppc64': 0.25.1
@@ -5828,6 +5813,10 @@ snapshots:
optionalDependencies:
picomatch: 4.0.2
+ fdir@6.4.6(picomatch@4.0.2):
+ optionalDependencies:
+ picomatch: 4.0.2
+
fflate@0.8.2: {}
file-entry-cache@8.0.0:
@@ -5858,13 +5847,6 @@ snapshots:
dependencies:
is-callable: 1.2.7
- form-data@4.0.2:
- dependencies:
- asynckit: 0.4.0
- combined-stream: 1.0.8
- es-set-tostringtag: 2.1.0
- mime-types: 2.1.35
-
forwarded-parse@2.1.2: {}
framesync@6.1.2:
@@ -6132,12 +6114,11 @@ snapshots:
dependencies:
argparse: 2.0.1
- jsdom@26.0.0:
+ jsdom@26.1.0:
dependencies:
cssstyle: 4.3.0
data-urls: 5.0.0
decimal.js: 10.5.0
- form-data: 4.0.2
html-encoding-sniffer: 4.0.0
http-proxy-agent: 7.0.2
https-proxy-agent: 7.0.6
@@ -6203,6 +6184,8 @@ snapshots:
loupe@3.1.3: {}
+ loupe@3.1.4: {}
+
lru-cache@10.4.3: {}
lru-cache@5.1.1:
@@ -6271,12 +6254,6 @@ snapshots:
braces: 3.0.3
picomatch: 2.3.1
- mime-db@1.52.0: {}
-
- mime-types@2.1.35:
- dependencies:
- mime-db: 1.52.0
-
min-indent@1.0.1: {}
minimatch@3.1.2:
@@ -6897,9 +6874,9 @@ snapshots:
tinyexec@0.3.2: {}
- tinyglobby@0.2.12:
+ tinyglobby@0.2.14:
dependencies:
- fdir: 6.4.3(picomatch@4.0.2)
+ fdir: 6.4.6(picomatch@4.0.2)
picomatch: 4.0.2
tinypool@1.0.2: {}
@@ -7063,7 +7040,7 @@ snapshots:
optionalDependencies:
vite: 6.2.3(@types/node@22.13.14)(sass@1.86.0)
- vitest@3.0.9(@types/node@22.13.14)(@vitest/ui@3.0.9)(jsdom@26.0.0)(sass@1.86.0):
+ vitest@3.0.9(@types/node@22.13.14)(@vitest/ui@3.2.4)(jsdom@26.1.0)(sass@1.86.0):
dependencies:
'@vitest/expect': 3.0.9
'@vitest/mocker': 3.0.9(vite@6.2.3(@types/node@22.13.14)(sass@1.86.0))
@@ -7087,8 +7064,8 @@ snapshots:
why-is-node-running: 2.3.0
optionalDependencies:
'@types/node': 22.13.14
- '@vitest/ui': 3.0.9(vitest@3.0.9)
- jsdom: 26.0.0
+ '@vitest/ui': 3.2.4(vitest@3.0.9)
+ jsdom: 26.1.0
transitivePeerDependencies:
- jiti
- less
diff --git a/src/lib/actions/analytics.ts b/src/lib/actions/analytics.ts
index d9c86e0d95..e3ac82596d 100644
--- a/src/lib/actions/analytics.ts
+++ b/src/lib/actions/analytics.ts
@@ -148,9 +148,9 @@ export enum Click {
ConnectRepositoryClick = 'click_connect_repository',
CreditsRedeemClick = 'click_credits_redeem',
CloudSignupClick = 'click_cloud_signup',
- DatabaseAttributeDelete = 'click_attribute_delete',
+ DatabaseColumnDelete = 'click_column_delete',
DatabaseIndexDelete = 'click_index_delete',
- DatabaseCollectionDelete = 'click_collection_delete',
+ DatabaseTableDelete = 'click_table_delete',
DatabaseDatabaseDelete = 'click_database_delete',
DatabaseImportCsv = 'click_database_import_csv',
DomainCreateClick = 'click_domain_create',
@@ -273,22 +273,22 @@ export enum Submit {
DatabaseDelete = 'submit_database_delete',
DatabaseUpdateName = 'submit_database_update_name',
DatabaseImportCsv = 'submit_database_import_csv',
- AttributeCreate = 'submit_attribute_create',
- AttributeUpdate = 'submit_attribute_update',
- AttributeDelete = 'submit_attribute_delete',
- DocumentCreate = 'submit_document_create',
- DocumentDelete = 'submit_document_delete',
- DocumentUpdate = 'submit_document_update',
- DocumentUpdatePermissions = 'submit_document_update_permissions',
+ ColumnCreate = 'submit_column_create',
+ ColumnUpdate = 'submit_column_update',
+ ColumnDelete = 'submit_column_delete',
+ RowCreate = 'submit_row_create',
+ RowDelete = 'submit_row_delete',
+ RowUpdate = 'submit_row_update',
+ RowUpdatePermissions = 'submit_row_update_permissions',
IndexCreate = 'submit_index_create',
IndexDelete = 'submit_index_delete',
- CollectionCreate = 'submit_collection_create',
- CollectionDelete = 'submit_collection_delete',
- CollectionUpdateName = 'submit_collection_update_name',
- CollectionUpdatePermissions = 'submit_collection_update_permissions',
- CollectionUpdateSecurity = 'submit_collection_update_security',
- CollectionUpdateEnabled = 'submit_collection_update_enabled',
- CollectionUpdateDisplayNames = 'submit_collection_update_display_names',
+ TableCreate = 'submit_row_create',
+ TableDelete = 'submit_row_delete',
+ TableUpdateName = 'submit_row_update_name',
+ TableUpdatePermissions = 'submit_row_update_permissions',
+ TableUpdateSecurity = 'submit_row_update_security',
+ TableUpdateEnabled = 'submit_row_update_enabled',
+ TableUpdateDisplayNames = 'submit_row_update_display_names',
FunctionCreate = 'submit_function_create',
FunctionDelete = 'submit_function_delete',
FunctionUpdateName = 'submit_function_update_name',
diff --git a/src/lib/commandCenter/commands.ts b/src/lib/commandCenter/commands.ts
index b191b892f8..fa8427d30b 100644
--- a/src/lib/commandCenter/commands.ts
+++ b/src/lib/commandCenter/commands.ts
@@ -28,10 +28,10 @@ const groups = [
'integrations',
'migrations',
'users',
- 'collections',
- 'attributes',
+ 'tables',
+ 'columns',
'indexes',
- 'documents',
+ 'rows',
'teams',
'security',
'buckets',
diff --git a/src/lib/commandCenter/panels/ai.svelte b/src/lib/commandCenter/panels/ai.svelte
index 58407c6781..5181a99a27 100644
--- a/src/lib/commandCenter/panels/ai.svelte
+++ b/src/lib/commandCenter/panels/ai.svelte
@@ -27,7 +27,7 @@
const examples = [
'How to add platform in the console?',
'How can I manage users, permissions, and access control in Appwrite?',
- 'How can I set up database collections and documents in Appwrite?',
+ 'How can I set up database tables and rows in Appwrite?',
'How do I configure and manage server-side functions in Appwrite?',
'How to add custom domain in the console?'
];
diff --git a/src/lib/commandCenter/panels/createAttribute.svelte b/src/lib/commandCenter/panels/createColumn.svelte
similarity index 58%
rename from src/lib/commandCenter/panels/createAttribute.svelte
rename to src/lib/commandCenter/panels/createColumn.svelte
index 98d312698e..3a3cea77f9 100644
--- a/src/lib/commandCenter/panels/createAttribute.svelte
+++ b/src/lib/commandCenter/panels/createColumn.svelte
@@ -1,16 +1,16 @@
diff --git a/src/lib/commandCenter/searchers/collections.ts b/src/lib/commandCenter/searchers/collections.ts
deleted file mode 100644
index c3ffaebe9e..0000000000
--- a/src/lib/commandCenter/searchers/collections.ts
+++ /dev/null
@@ -1,29 +0,0 @@
-import { goto } from '$app/navigation';
-import { database } from '$routes/(console)/project-[region]-[project]/databases/database-[database]/store';
-import { get } from 'svelte/store';
-import type { Searcher } from '../commands';
-import { sdk } from '$lib/stores/sdk';
-import { base } from '$app/paths';
-import { page } from '$app/state';
-
-export const collectionsSearcher = (async (query: string) => {
- const databaseId = get(database).$id;
- const { collections } = await sdk
- .forProject(page.params.region, page.params.project)
- .databases.listCollections(databaseId);
-
- return collections
- .filter((col) => col.name.toLowerCase().includes(query.toLowerCase()))
- .map(
- (col) =>
- ({
- group: 'collections',
- label: col.name,
- callback: () => {
- goto(
- `${base}/project-${page.params.region}-${page.params.project}/databases/database-${databaseId}/collection-${col.$id}`
- );
- }
- }) as const
- );
-}) satisfies Searcher;
diff --git a/src/lib/commandCenter/searchers/index.ts b/src/lib/commandCenter/searchers/index.ts
index 0f78e8c90b..d4461c2a1f 100644
--- a/src/lib/commandCenter/searchers/index.ts
+++ b/src/lib/commandCenter/searchers/index.ts
@@ -1,7 +1,7 @@
export * from './databases';
export * from './users';
export * from './organizations';
-export * from './collections';
+export * from './tables';
export * from './projects';
export * from './teams';
export * from './functions';
diff --git a/src/lib/commandCenter/searchers/tables.ts b/src/lib/commandCenter/searchers/tables.ts
new file mode 100644
index 0000000000..1a8af14119
--- /dev/null
+++ b/src/lib/commandCenter/searchers/tables.ts
@@ -0,0 +1,27 @@
+import { goto } from '$app/navigation';
+import type { Searcher } from '../commands';
+import { sdk } from '$lib/stores/sdk';
+import { base } from '$app/paths';
+import { page } from '$app/state';
+
+export const tablesSearcher = (async (query: string) => {
+ const databaseId = page.params.database;
+ const { tables } = await sdk
+ .forProject(page.params.region, page.params.project)
+ .tables.list(databaseId);
+
+ return tables
+ .filter((table) => table.name.toLowerCase().includes(query.toLowerCase()))
+ .map(
+ (table) =>
+ ({
+ group: 'tables',
+ label: table.name,
+ callback: () => {
+ goto(
+ `${base}/project-${page.params.region}-${page.params.project}/databases/database-${databaseId}/table-${table.$id}`
+ );
+ }
+ }) as const
+ );
+}) satisfies Searcher;
diff --git a/src/lib/components/backupRestoreBox.svelte b/src/lib/components/backupRestoreBox.svelte
index 1598341f79..2f660985e0 100644
--- a/src/lib/components/backupRestoreBox.svelte
+++ b/src/lib/components/backupRestoreBox.svelte
@@ -57,6 +57,7 @@
}
function updateOrAddItem(payload: Payload) {
+ // todo: @itznotabug - might need a change to $table?
const { $id, status, $collection, policyId } = payload;
if ($collection === 'archives' && policyId !== null) {
return;
@@ -117,9 +118,9 @@
}
function backupName(item: BackupArchive | BackupRestoration, key: string) {
- const attribute = key === 'archives' ? '$createdAt' : 'startedAt';
+ const column = key === 'archives' ? '$createdAt' : 'startedAt';
- return toLocaleDate(item[attribute]);
+ return toLocaleDate(item[column]);
}
onMount(() => {
diff --git a/src/lib/components/columnSelector.svelte b/src/lib/components/columnSelector.svelte
index a899fe9e41..54d8ace9e3 100644
--- a/src/lib/components/columnSelector.svelte
+++ b/src/lib/components/columnSelector.svelte
@@ -8,19 +8,18 @@
let {
columns,
- isCustomCollection = false,
+ isCustomTable = false,
allowNoColumns = false,
children
}: {
columns: Writable;
- isCustomCollection?: boolean;
+ isCustomTable?: boolean;
allowNoColumns?: boolean;
children: Snippet<[toggle: () => void, selectedColumnsNumber: number]>;
} = $props();
let maxHeight = $state('none');
let containerRef = $state(null);
- const collectionId = $derived(page.params.collection);
const calcMaxHeight = () => {
if (containerRef) {
@@ -35,16 +34,16 @@
const saveColumnPreferences = () => {
const shownColumns = $columns.filter((n) => n.hide === true).map((n) => n.id);
- if (isCustomCollection) {
- preferences.setCustomCollectionColumns(collectionId, shownColumns);
+ if (isCustomTable) {
+ preferences.setCustomTableColumns(page.params.table, shownColumns);
} else {
preferences.setColumns(shownColumns);
}
};
onMount(() => {
- if (isCustomCollection) {
- const shownColumns = preferences.getCustomCollectionColumns(collectionId);
+ if (isCustomTable) {
+ const shownColumns = preferences.getCustomTableColumns(page.params.table);
columns.update((n) =>
n.map((column) => {
diff --git a/src/lib/components/csvImportBox.svelte b/src/lib/components/csvImportBox.svelte
index 60f93abf6d..443463d002 100644
--- a/src/lib/components/csvImportBox.svelte
+++ b/src/lib/components/csvImportBox.svelte
@@ -13,7 +13,7 @@
type ImportItem = {
status: string;
- collection?: string;
+ table?: string;
};
type ImportItemsMap = Map;
@@ -22,15 +22,11 @@
* Keeps a track of the active and ongoing csv migrations.
*
* The structure is as follows -
- * `{ migrationId: { status: status, collection: collection } }`
+ * `{ migrationId: { status: status, table: table } }`
*/
const importItems: Writable = writable(new Map());
- async function showCompletionNotification(
- database: string,
- collection: string,
- payload: Payload
- ) {
+ async function showCompletionNotification(database: string, table: string, payload: Payload) {
const isSuccess = payload.status === 'completed';
const isError = !isSuccess && !!payload.errors;
@@ -48,20 +44,20 @@
const type = isSuccess ? 'success' : 'error';
const message = isError ? errorMessage : 'CSV import finished successfully.';
- const url = `${base}/project-${page.params.region}-${page.params.project}/databases/database-${database}/collection-${collection}`;
+ const url = `${base}/project-${page.params.region}-${page.params.project}/databases/database-${database}/table-${table}`;
addNotification({
type,
message,
isHtml: true,
buttons:
- isSuccess && collection !== page.params.collection
- ? [{ name: 'View documents', method: () => goto(url) }]
+ isSuccess && table !== page.params.table
+ ? [{ name: 'View rows', method: () => goto(url) }]
: undefined
});
if (isSuccess) {
- await invalidate(Dependencies.DOCUMENTS);
+ await invalidate(Dependencies.ROWS);
}
}
@@ -70,19 +66,19 @@
const status = importData.status;
const resourceId = importData.resourceId ?? '';
- const [databaseId, collectionId] = resourceId.split(':') ?? [];
+ const [databaseId, tableId] = resourceId.split(':') ?? [];
const current = $importItems.get(importData.$id);
- let collectionName = current?.collection ?? null;
+ let tableName = current?.table ?? null;
- if (!collectionName && collectionId) {
+ if (!tableName && tableId) {
try {
- const collection = await sdk
+ const table = await sdk
.forProject(page.params.region, page.params.project)
- .databases.getCollection(databaseId, collectionId);
- collectionName = collection.name;
+ .tables.get(databaseId, tableId);
+ tableName = table.name;
} catch {
- collectionName = null;
+ tableName = null;
}
}
@@ -99,12 +95,12 @@
if (shouldSkip) return items;
const next = new Map(items);
- next.set(importData.$id, { status, collection: collectionName ?? undefined });
+ next.set(importData.$id, { status, table: tableName ?? undefined });
return next;
});
if (status === 'completed' || status === 'failed') {
- await showCompletionNotification(databaseId, collectionId, importData);
+ await showCompletionNotification(databaseId, tableId, importData);
}
}
@@ -172,7 +168,7 @@