{"id":15136603,"url":"https://github.com/appwrite/sdk-for-svelte","last_synced_at":"2025-10-08T06:50:27.041Z","repository":{"id":39652867,"uuid":"298464488","full_name":"appwrite/sdk-for-svelte","owner":"appwrite","description":"Appwrite SDK for Svelte 🧡 ⚠️ Warning - this SDK was designed to support Appwrite 0.9 and is not compatible with the latest Appwrite versions. We are planing to refactor it as part of the SDK Generator for better support and maintenance.","archived":false,"fork":false,"pushed_at":"2024-07-31T00:56:20.000Z","size":196,"stargazers_count":75,"open_issues_count":0,"forks_count":13,"subscribers_count":19,"default_branch":"master","last_synced_at":"2025-09-29T17:48:28.043Z","etag":null,"topics":["appwrite","hacktoberfest","svelte","sveltejs"],"latest_commit_sha":null,"homepage":"https://appwrite.io","language":"Svelte","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"bsd-3-clause","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/appwrite.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2020-09-25T04:10:15.000Z","updated_at":"2025-04-04T03:49:33.000Z","dependencies_parsed_at":"2024-12-24T07:13:33.859Z","dependency_job_id":"f0fc4238-0eec-4c3b-8133-56f5d2e75041","html_url":"https://github.com/appwrite/sdk-for-svelte","commit_stats":{"total_commits":71,"total_committers":6,"mean_commits":"11.833333333333334","dds":"0.22535211267605637","last_synced_commit":"b1139c89da5513537f12a0d57eb3b919f64b7633"},"previous_names":[],"tags_count":8,"template":false,"template_full_name":null,"purl":"pkg:github/appwrite/sdk-for-svelte","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/appwrite%2Fsdk-for-svelte","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/appwrite%2Fsdk-for-svelte/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/appwrite%2Fsdk-for-svelte/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/appwrite%2Fsdk-for-svelte/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/appwrite","download_url":"https://codeload.github.com/appwrite/sdk-for-svelte/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/appwrite%2Fsdk-for-svelte/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":278903008,"owners_count":26065786,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-10-08T02:00:06.501Z","response_time":56,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["appwrite","hacktoberfest","svelte","sveltejs"],"created_at":"2024-09-26T06:40:16.430Z","updated_at":"2025-10-08T06:50:27.013Z","avatar_url":"https://github.com/appwrite.png","language":"Svelte","funding_links":[],"categories":[],"sub_categories":[],"readme":"**⚠️ Warning - this SDK was designed to support Appwrite 0.9 and is not compatible with the latest Appwrite versions. We are planing to refactor it as part of the [SDK Generator](https://github.com/appwrite/sdk-generator) for better support and maintenance.**\n\n# svelte-appwrite (Beta)\n\nEasy to use [Appwrite](https://appwrite.io/) components for Svelte. Install it:\n\n```bash\nnpm install svelte-appwrite\n# or \nyarn svelte-appwrite\n```\n\n# Table of contents\n\n- [Usage](#usage)\n  - [Initialize](#initialize)\n  - [Create user](#create-user)\n  - [Login via Email](#login-via-email)\n  - [Login via OAuth2](#login-via-oauth2)\n  - [Get user](#get-user)\n  - [Get Collection](#get-collection)\n  - [Get Document](#get-document)\n- [API](#api)\n  - [Account](#account)\n    - [`\u003cUser /\u003e`](#user-)\n    - [`\u003cCreate /\u003e`](#create-)\n    - [`\u003cDelete /\u003e`](#delete-)\n    - [`\u003cPreferences /\u003e`](#preferences-)\n    - [`\u003cRecoverPassword /\u003e`](#recoverpassword-)\n    - [`\u003cUpdate /\u003e`](#update-)\n  - [Auth](#auth)\n    - [`\u003cAuthEmail /\u003e`](#authemail-)\n    - [`\u003cAuthOAuth2 /\u003e`](#authoauth2-)\n  - [Avatars](#avatars)\n    - [`\u003cBrowser /\u003e`](#browser-)\n    - [`\u003cCreditCard /\u003e`](#creditcard-)\n    - [`\u003cFavicon /\u003e`](#favicon-)\n    - [`\u003cFlag /\u003e`](#flag-)\n    - [`\u003cImage /\u003e`](#image-)\n    - [`\u003cQR /\u003e`](#qr-)\n  - [Database](#database)\n    - [`\u003cCollection /\u003e`](#collection-)\n    - [`\u003cDocument /\u003e`](#document-)\n  - [Storage](#storage)\n    - [`\u003cStorage /\u003e`](#storage-)\n    - [`\u003cFileList /\u003e`](#filelist-)\n    - [`\u003cFile /\u003e`](#file-)\n  - [Locale](#locale)\n    - [`\u003cContinents /\u003e`](#continents-)\n    - [`\u003cCountries /\u003e`](#countries-)\n    - [`\u003cCurrencies /\u003e`](#currencies-)\n    - [`\u003cLocale /\u003e`](#locale-)\n    - [`\u003cPhoneCodes /\u003e`](#phonecodes-)\n\n# Usage\n\n\u003e You need a running instance of Appwrite to use this library. Go to https://appwrite.io/docs/installation for more instructions.\n\n**Psuedo Example**\n\nHandle multiple levels of async relational data (and their loading \u0026 fallback states) entirely from the Svelte HTML. \n\n\n```svelte\n\u003c!-- 1. 💪 Appwrite App --\u003e\n\u003cAppwrite {...config}\u003e\n\n    \u003c!-- 2. 😀 Get the current user --\u003e\n    \u003cUser let:user\u003e\n\n        \u003ch1\u003eHello {user.name}!\u003c/h1\u003e\n\n        \u003c!-- 3. 📚 Get all the documents from a collection --\u003e\n        \u003cCollection collection=\"5f56a3035a01f\" let:documents\u003e\n            You have {documents.length} documents.\n            \n            {#each documents as document}\n\n                \u003c!-- 4. 📜 Get a document --\u003e\n                \u003cDocument {document}\u003e\n                    Title: {document.title}\n                    Text: {document.text}\n...\n```\n\n## Initialize\n\nMust be initialised and wrap every `svelte-appwrite` component.\n\n```svelte\n\u003cscript\u003e\n  import { Appwrite } from \"svelte-appwrite\";\n\n  const config = {\n    endpoint: \"http://localhost/v1\",\n    project: \"5f4938898667e\",\n    locale: \"de\",\n  };\n\u003c/script\u003e\n\n\u003cAppwrite {...config}\u003e\n  ...\n\u003c/Appwrite\u003e\n```\n\n### Properties\n| Name | Description |\n| --- | --- |\n| `endpoint` | Your Appwrite endpoint |\n| `project` | Your project ID |\n| `locale` | _Optional_ The users locale |\n\n## Create user\n\nRegisters a new account.\n\n```svelte\n\u003cscript\u003e\n  import { Create } from \"svelte-appwrite\";\n\n  let email = \"\";\n  let password = \"\";\n  let name = \"\";\n\n  const success = e =\u003e {\n    //success callback\n    // `e` contains the user object\n  };\n\n  const failure = e =\u003e {\n    //failure callback\n  }\n\u003c/script\u003e\n\n\u003cCreate let:actions on:success on:failure\u003e\n  \u003cinput type=\"text\" bind:value={email}\u003e\n  \u003cinput type=\"password\" bind:value={password}\u003e\n  \u003cinput type=\"text\" bind:value={name}\u003e\n  \u003cbutton on:click={actions.create(email,password, name)}\u003eRegister\u003c/button\u003e\n\u003c/Create\u003e\n```\n\n### Directives\n\n**let:actions** `object`\n\nObject with function.\n\n#### Arguments\n| Name | Description |\n| --- | --- |\n| `create(email, password, name)` | Registers a new user. |\n\n### Events\n\n**on:success**\n\nTriggers on successful register.\n\n#### Arguments\n| Name | Description |\n| --- | --- |\n| `response` | Response |\n\n**on:failure**\n\nTriggers on failed register.\n\n#### Arguments\n| Name | Description |\n| --- | --- |\n| `response` | Response |\n\n## Login via Email\n\nLogin via email and password.\n\n```svelte\n\u003cscript\u003e\n  import { AuthEmail } from \"svelte-appwrite\";\n\n  let email = \"\";\n  let password = \"\";\n\n  const success = e =\u003e {\n    //success callback\n    // `e` contains the user object\n  };\n\n  const failure = e =\u003e {\n    //failure callback\n  }\n\u003c/script\u003e\n\n\u003cAuthEmail let:authorize on:success on:failure\u003e\n  \u003cinput type=\"text\" bind:value={email}\u003e\n  \u003cinput type=\"text\" bind:value={password}\u003e\n  \u003cbutton on:click={authorize(email,password)}\u003eLogin\u003c/button\u003e\n\u003c/AuthEmail\u003e\n```\n\n### Directives\n\n**let:authorize** `function`\n\nInitiates login.\n\n#### Arguments\n| Name | Description |\n| --- | --- |\n| `email` | E-Mail |\n| `password` | Password |\n\n### Events\n\n**on:success**\n\nTriggers on successful login.\n\n#### Arguments\n| Name | Description |\n| --- | --- |\n| `email` | E-Mail |\n\n**on:failure**\n\nTriggers on failed login.\n\n#### Arguments\n| Name | Description |\n| --- | --- |\n| `error` | Error object. |\n\n## Login via OAuth2\n\nLogin via an OAuth2 provider.\n\n```svelte\n\u003cscript\u003e\n  import { AuthOAuth2 } from \"svelte-appwrite\";\n\u003c/script\u003e\n\n\u003cAuthOAuth2\n  provider=\"google\"\n  success=\"http://localhost:5000?success\"\n  failure=\"http://localhost:5000?failure\"\n  let:authorize\u003e\n  \u003cbutton on:click={authorize}\u003eLogin Google\u003c/button\u003e\n\u003c/AuthOAuth2\u003e\n```\n\n### Properties\n| Name | Description |\n| --- | --- |\n| `provider` | OAuth2 provider |\n| `success` | Success url |\n| `failure` | Failure url |\n\n### Directives\n\n**let:authorize** `function`\n\n## Get user\n\nRequests current user to check if logged in.\n\n```svelte\n\u003cscript\u003e\n  import { User } from \"svelte-appwrite\";\n\u003c/script\u003e\n\n\u003cUser let:user\u003e\n  \u003ch1\u003eHello {user.name}!\u003c/h1\u003e\n  \u003cdiv\u003e{user.email}\u003c/div\u003e\n\n  \u003cdiv slot=\"error\"\u003e\n    You are not logged in!\n  \u003c/div\u003e\n\u003c/User\u003e\n```\n\n### Directives\n\n**let:user** `object`\n\nGet currently logged in user data.\n\n## Get Collection\n\nGet a list of all the documents from a collection.\n\n```svelte\n\u003cscript\u003e\n  import { Collection } from \"svelte-appwrite\";\n\u003c/script\u003e\n\n\u003cCollection collection=\"5f56a3035a01f\" let:documents\u003e\n  You have {documents.length} documents.\n\u003c/Collection\u003e\n```\n\n### Properties\n| Name | Description |\n| --- | --- |\n| `collection` | Collection unique ID. |\n| _additional_ | same as [here](https://appwrite.io/docs/client/database#listDocuments) |\n\n### Directives\n\n**let:documents** `array`\n\nArray of documents.\n\n**let:actions** `object`\n\nObject with function.\n\n#### Arguments\n| Name | Description |\n| --- | --- |\n| `reload()` | Re-fetch collection. |\n| `create(data, read, write)` | Create a new Document in the collection. `read`/`write` is optional and current user by default. |\n\n## Get Document\n\nGet a document. If you pass the `document` property with data from \u003cCollection /\u003e, there wont be any data requested.\n\n```svelte\n\u003cscript\u003e\n  import { Document } from \"svelte-appwrite\";\n\u003c/script\u003e\n\n\u003cDocument id=\"5f56a3asda01f\" let:document\u003e\n  Title: {document.title}\n  Text: {document.text}\n\u003c/Document\u003e\n```\n### Properties\n| Name | Description |\n| --- | --- |\n| `id` | Document unique ID |\n| `collection` | Collection unique ID |\n| or |\n| `document` | Document passed from `\u003cCollection /\u003e` |\n\n### Directives\n\n**let:document** `object`\n\nA JSON object with the document data.\n\n**let:actions** `object`\n\nObject with function.\n\n#### Arguments\n| Name | Description |\n| --- | --- |\n| `update(data)` | Update the document. |\n| `remove()` | Deletes the document. |\n| `reload()` | Re-fetch document. |\n\n### Events\n\n**on:change**\n\nTriggers on update or remove login.\n\n# API\n\n## Account\nThe Account components allow you to manage a user account.\n\n### `\u003cUser /\u003e`\n\n#### Slots\n\n- **loading**\n- **error**\n\n#### Directives\n\n**let:actions**\n| Name | Description |\n| --- | --- |\n| `reload()` | Reload. |\n| `logout()` | Logout current session. |\n| `logoutAll()` | Logout from all session. |\n| `logoutFrom(session)` | Logout from specific session. |\n\n- **let:user** \n- **let:error**\n\n#### Events\n\n- **on:success** On user fetch success.\n- **on:failure** On user fetch failure.\n- **on:successLogout** On `logout` success.\n- **on:failureLogout** On `logout` failure.\n- **on:successLogoutFrom** On `logoutFrom` success.\n- **on:failureLogoutFrom** On `logoutFrom` failure.\n- **on:successLogoutAll** On `logoutAll` success.\n- **on:failureLogoutAll** On `logoutAll` failure.\n\n### `\u003cCreate /\u003e`\n\n#### Directives\n\n**let:actions**\n| Name | Description |\n| --- | --- |\n| `create(email, password, name)` | Creates a user. |\n\n#### Events\n\n- **on:success** On `create` success.\n- **on:failure** On `create` failure.\n\n### `\u003cDelete /\u003e`\n\n#### Directives\n\n**let:actions**\n| Name | Description |\n| --- | --- |\n| `delete()` | Deletes currently logged in user. |\n\n#### Events\n\n- **on:success** On `delete` success.\n- **on:failure** On `delete` failure.\n\n### `\u003cPreferences /\u003e`\n\n#### Slots\n\n- **loading**\n- **error**\n\n#### Directives\n\n**let:actions**\n| Name | Description |\n| --- | --- |\n| `reload()` | Reloads preferences. |\n| `update(prefs)` | Update preferences. |\n\n#### Events\n\n- **on:success** On init and `reload` success.\n- **on:failure** On init and `reload` failure.\n- **on:successUpdate** On `update` success.\n- **on:failureUpdate** On `update` failure.\n\n### `\u003cRecoverPassword /\u003e`\n\n#### Directives\n\n**let:actions**\n| Name | Description |\n| --- | --- |\n| `recover(email, url)` | Recover password. |\n| `complete(user, secret, password, passwordAgain)` | Complete password recovery. |\n\n#### Events\n\n- **on:successRecover** On init and `reload` success.\n- **on:failureRecover** On init and `reload` failure.\n- **on:successComplete** On `update` success.\n- **on:failureComplete** On `update` failure.\n\n### `\u003cUpdate /\u003e`\n\n#### Directives\n\n**let:actions**\n| Name | Description |\n| --- | --- |\n| `name(name)` | Update name. |\n| `email(email, password)` | Update email. |\n| `password(password, oldPassword)` | Update password. |\n\n#### Events\n\n- **on:successName** On `name` success.\n- **on:failureName** On `name` failure.\n- **on:successEmail** On `email` success.\n- **on:failureEmail** On `email` failure.\n- **on:successPassword** On `password` success.\n- **on:failurePassword** On `password` failure.\n\n### `\u003cVerification /\u003e`\n\n#### Directives\n\n**let:actions**\n| Name | Description |\n| --- | --- |\n| `create(url)` | Create Verification. |\n| `complete(user, secret)` | Complete Verification. |\n\n#### Events\n\n- **on:successCreate** On `create` success.\n- **on:failureCreate** On `create` failure.\n- **on:successComplete** On `complete` success.\n- **on:failureComplete** On `complete` failure.\n\n## Auth\nThe Auth components allow you to authenticate a user account.\n\n### `\u003cAuthEmail /\u003e`\n\n#### Slots\n\n- **loading**\n- **success**\n- **error**\n\n#### Directives\n\n- **let:authorize(email, password)**\n- **let:user** \n- **let:error**\n\n#### Events\n\n- **on:success** On `authorize` success.\n- **on:failure** On `authorize` failure.\n\n### `\u003cAuthOAuth2 /\u003e`\n\n#### Properties\n| Name | Description |\n| --- | --- |\n| `provider` | OAuth2 provider |\n| `success` | Success url |\n| `failure` | Failure url |\n#### Directives\n\n**let:authorize()**\n\n## Avatars\nThe Avatar components aim to help you complete everyday tasks related to your app image, icons, and avatars.\n\n### `\u003cBrowser /\u003e`\n\n#### Arguments\n\n- code\n- width\n- height\n- quality\n\n#### Directives\n\n- **let:src** Image link\n\n### `\u003cCreditCard /\u003e`\n\n#### Arguments\n\n- code\n- width\n- height\n- quality\n\n#### Directives\n\n- **let:src** Image link\n\n### `\u003cFavicon /\u003e`\n\n#### Arguments\n\n- url\n\n#### Directives\n\n- **let:src** Image link\n\n### `\u003cFlag /\u003e`\n\n#### Arguments\n\n- code\n- width\n- height\n- quality\n\n#### Directives\n\n- **let:src** Image link\n\n### `\u003cImage /\u003e`\n\n#### Arguments\n\n- url\n- width\n- height\n\n#### Directives\n\n- **let:src** Image link\n\n### `\u003cQR /\u003e`\n\n#### Arguments\n\n- text\n- size\n- margin\n- download\n\n#### Directives\n\n- **let:src** Image link\n\n## Database\nThe Database components allow you to create structured collections of documents, query and filter lists of documents, and manage an advanced set of read and write access permissions.\n\n### `\u003cCollection /\u003e`\n\n#### Arguments\n\n- id\n- filters\n- offset\n- limit\n- orderField\n- orderType\n- orderCast\n- search\n- first\n- last\n\n#### Slots\n\n- **loading**\n- **error**\n\n#### Directives\n\n**let:actions**\n| Name | Description |\n| --- | --- |\n| `reload()` | Reload. |\n| `create(data, read, write)` | Creates a Document. |\n\n- **let:documents**\n- **let:error**\n\n### `\u003cDocument /\u003e`\n\n#### Arguments\n\n- id\n- collection\n- document\n\n#### Slots\n\n- **loading**\n- **error**\n\n#### Directives\n\n**let:actions**\n| Name | Description |\n| --- | --- |\n| `reload()` | Reload. |\n| `update(data)` | Updates a Document. |\n| `remove()` | Removes a Document. |\n\n- **let:document**\n- **let:error**\n\n## Storage\nThe Storage components allow you to manage your project files. You can upload, view, download, and query all your project files.\n\n### `\u003cStorage /\u003e`\n\n#### Directives\n\n**let:actions**\n| Name | Description |\n| --- | --- |\n| `create(file, read, write)` | Uploads a file. |\n\n- **let:files**\n\n### `\u003cFileList /\u003e`\n\n#### Arguments\n\n- search\n- limit\n- offset\n- orderType\n\n#### Slots\n\n- **loading**\n- **error**\n\n#### Directives\n\n**let:actions**\n| Name | Description |\n| --- | --- |\n| `reload()` | Reload. |\n\n- **let:files**\n- **let:error**\n\n### `\u003cFile /\u003e`\n\n#### Arguments\n\n- file\n\n#### Directives\n\n**let:actions**\n| Name | Description |\n| --- | --- |\n| `download()` | Downloads file. |\n| `view(as)` | Get file for View. |\n| `preview(width, height, quality, background, output)` | Get file for preview. |\n| `update(read, write)` | Updates a file. |\n| `delete()` | Deletes a file. |\n\n## Locale\nThe Locale components allow you to customize your app based on your users' location.\n\n### `\u003cContinents /\u003e`\n\n#### Directives\n\n**let:actions**\n| Name | Description |\n| --- | --- |\n| `reload()` | Reload. |\n\n- **let:continents**\n\n#### Slots\n\n- **loading**\n- **error**\n\n### `\u003cCountries /\u003e`\n\n#### Arguments\n\n- eu\n\n#### Slots\n\n- **loading**\n- **error**\n\n#### Directives\n\n**let:actions**\n| Name | Description |\n| --- | --- |\n| `reload()` | Reload. |\n\n- **let:countries**\n\n### `\u003cCurrencies /\u003e`\n\n#### Slots\n\n- **loading**\n- **error**\n\n#### Directives\n\n**let:actions**\n| Name | Description |\n| --- | --- |\n| `reload()` | Reload. |\n\n- **let:currencies**\n\n### `\u003cLocale /\u003e`\n\n#### Slots\n\n- **loading**\n- **error**\n\n#### Directives\n\n**let:actions**\n| Name | Description |\n| --- | --- |\n| `reload()` | Reload. |\n\n- **let:code**\n\n### `\u003cPhoneCodes /\u003e`\n\n#### Slots\n\n- **loading**\n- **error**\n\n#### Directives\n\n**let:actions**\n| Name | Description |\n| --- | --- |\n| `reload()` | Reload. |\n\n- **let:codes**\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fappwrite%2Fsdk-for-svelte","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fappwrite%2Fsdk-for-svelte","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fappwrite%2Fsdk-for-svelte/lists"}