├── .github └── ISSUE_TEMPLATE │ ├── bug.yaml │ ├── documentation.yaml │ └── feature.yaml ├── .gitignore ├── LICENSE ├── README.md ├── config.example.dart ├── main.dart ├── nature.jpg ├── pubspec.lock └── pubspec.yaml /.github/ISSUE_TEMPLATE/bug.yaml: -------------------------------------------------------------------------------- 1 | name: "🐛 Bug Report" 2 | description: "Submit a bug report to help us improve" 3 | title: "🐛 Bug Report: " 4 | labels: [bug] 5 | body: 6 | - type: markdown 7 | attributes: 8 | value: | 9 | Thanks for taking the time to fill out our bug report form 🙏 10 | - type: textarea 11 | id: steps-to-reproduce 12 | validations: 13 | required: true 14 | attributes: 15 | label: "👟 Reproduction steps" 16 | description: "How do you trigger this bug? Please walk us through it step by step." 17 | placeholder: "When I ..." 18 | - type: textarea 19 | id: expected-behavior 20 | validations: 21 | required: true 22 | attributes: 23 | label: "👍 Expected behavior" 24 | description: "What did you think would happen?" 25 | placeholder: "It should ..." 26 | - type: textarea 27 | id: actual-behavior 28 | validations: 29 | required: true 30 | attributes: 31 | label: "👎 Actual Behavior" 32 | description: "What did actually happen? Add screenshots, if applicable." 33 | placeholder: "It actually ..." 34 | - type: dropdown 35 | id: appwrite-version 36 | attributes: 37 | label: "🎲 Appwrite version" 38 | description: "What version of Appwrite are you running?" 39 | options: 40 | - Version 0.10.x 41 | - Version 0.9.x 42 | - Version 0.8.x 43 | - Version 0.7.x 44 | - Version 0.6.x 45 | - Different version (specify in environment) 46 | validations: 47 | required: true 48 | - type: dropdown 49 | id: operating-system 50 | attributes: 51 | label: "💻 Operating system" 52 | description: "What OS is your server / device running on?" 53 | options: 54 | - Linux 55 | - MacOS 56 | - Windows 57 | - Something else 58 | validations: 59 | required: true 60 | - type: textarea 61 | id: enviromnemt 62 | validations: 63 | required: false 64 | attributes: 65 | label: "🧱 Your Environment" 66 | description: "Is your environment customized in any way?" 67 | placeholder: "I use Cloudflare for ..." 68 | - type: checkboxes 69 | id: no-duplicate-issues 70 | attributes: 71 | label: "👀 Have you spent some time to check if this issue has been raised before?" 72 | description: "Have you Googled for a similar issue or checked our older issues for a similar bug?" 73 | options: 74 | - label: "I checked and didn't find similar issue" 75 | required: true 76 | - type: checkboxes 77 | id: read-code-of-conduct 78 | attributes: 79 | label: "🏢 Have you read the Code of Conduct?" 80 | options: 81 | - label: "I have read the [Code of Conduct](https://github.com/appwrite/appwrite/blob/HEAD/CODE_OF_CONDUCT.md)" 82 | required: true 83 | -------------------------------------------------------------------------------- /.github/ISSUE_TEMPLATE/documentation.yaml: -------------------------------------------------------------------------------- 1 | name: "📚 Documentation" 2 | description: "Report an issue related to documentation" 3 | title: "📚 Documentation: " 4 | labels: [documentation] 5 | body: 6 | - type: markdown 7 | attributes: 8 | value: | 9 | Thanks for taking the time to make our documentation better 🙏 10 | - type: textarea 11 | id: issue-description 12 | validations: 13 | required: true 14 | attributes: 15 | label: "💭 Description" 16 | description: "A clear and concise description of what the issue is." 17 | placeholder: "Documentation should not ..." 18 | - type: checkboxes 19 | id: no-duplicate-issues 20 | attributes: 21 | label: "👀 Have you spent some time to check if this issue has been raised before?" 22 | description: "Have you Googled for a similar issue or checked our older issues for a similar bug?" 23 | options: 24 | - label: "I checked and didn't find similar issue" 25 | required: true 26 | - type: checkboxes 27 | id: read-code-of-conduct 28 | attributes: 29 | label: "🏢 Have you read the Code of Conduct?" 30 | options: 31 | - label: "I have read the [Code of Conduct](https://github.com/appwrite/appwrite/blob/HEAD/CODE_OF_CONDUCT.md)" 32 | required: true 33 | -------------------------------------------------------------------------------- /.github/ISSUE_TEMPLATE/feature.yaml: -------------------------------------------------------------------------------- 1 | name: 🚀 Feature 2 | description: "Submit a proposal for a new feature" 3 | title: "🚀 Feature: " 4 | labels: [feature] 5 | body: 6 | - type: markdown 7 | attributes: 8 | value: | 9 | Thanks for taking the time to fill out our feature request form 🙏 10 | - type: textarea 11 | id: feature-description 12 | validations: 13 | required: true 14 | attributes: 15 | label: "🔖 Feature description" 16 | description: "A clear and concise description of what the feature is." 17 | placeholder: "You should add ..." 18 | - type: textarea 19 | id: pitch 20 | validations: 21 | required: true 22 | attributes: 23 | label: "🎤 Pitch" 24 | description: "Please explain why this feature should be implemented and how it would be used. Add examples, if applicable." 25 | placeholder: "In my use-case, ..." 26 | - type: checkboxes 27 | id: no-duplicate-issues 28 | attributes: 29 | label: "👀 Have you spent some time to check if this issue has been raised before?" 30 | description: "Have you Googled for a similar issue or checked our older issues for a similar bug?" 31 | options: 32 | - label: "I checked and didn't find similar issue" 33 | required: true 34 | - type: checkboxes 35 | id: read-code-of-conduct 36 | attributes: 37 | label: "🏢 Have you read the Code of Conduct?" 38 | options: 39 | - label: "I have read the [Code of Conduct](https://github.com/appwrite/appwrite/blob/HEAD/CODE_OF_CONDUCT.md)" 40 | required: true 41 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | # Files and directories created by pub 2 | .dart_tool/ 3 | .packages 4 | 5 | # Conventional directory for build outputs 6 | build/ 7 | 8 | # Directory created by dartdoc 9 | doc/api/ 10 | .vscode/ 11 | 12 | config.dart 13 | dependency_overrides.yaml 14 | pubspec_overrides.yaml 15 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2021 Appwrite 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # Playground for Dart 2 | 3 | Simple examples that help you get started with Appwrite + Dart (=❤️) 4 | 5 | This is Appwrite server side integration with Dart. For Flutter integration please look at our [Flutter playground](https://github.com/appwrite/playground-for-flutter) and [Flutter SDK](https://github.com/appwrite/sdk-for-flutter) 6 | 7 | ### Work in progress 8 | 9 | Appwrite playground is a simple way to explore the Appwrite API and Appwrite Dart SDK. Use the source code of this page to learn how to use different Appwrite Dart SDK features. 10 | 11 | ## Get Started 12 | This playground doesn't include any dart best practices, but rather intended to show some of the most simple examples and use cases of using the Appwrite API in your dart application. 13 | 14 | ## System Requirements 15 | * A Linux/Windows/Mac system with Dart or Flutter installed 16 | * You have readily available Appwrite running instance (localhost in most cases). 17 | * Create a project in Appwrite instance using console 18 | * Generate a secret key in the Appwrite instance using console 19 | 20 | ### Installation 21 | 1. Clone this repository 22 | 2. cd into the repository 23 | 3. Open main.dart file found in the root of the cloned repository 24 | 4. Copy the project_id, endpoint, secret key from the Appwrite Console 25 | 5. Update project_id, endpoint, secret key by copying from the console in the main.dart file 26 | 6. Execute the command `dart run main.dart` 27 | 7. You will see the JSON response in the console 28 | 29 | ### API Covered in Playground. 30 | * Create Collection 31 | * List Collection 32 | * Add Document 33 | * List Documents 34 | * Upload File 35 | * Create User 36 | * List User 37 | 38 | ## Contributing 39 | 40 | All code contributions - including those of people having commit access - must go through a pull request and approved by a core developer before being merged. This is to ensure proper review of all the code. 41 | 42 | We truly ❤️ pull requests! If you wish to help, you can learn more about how you can contribute to this project in the [contribution guide](https://github.com/appwrite/appwrite/blob/master/CONTRIBUTING.md). 43 | 44 | ## Security 45 | 46 | For security issues, kindly email us [security@appwrite.io](mailto:security@appwrite.io) instead of posting a public issue in GitHub. 47 | 48 | ## Follow Us 49 | 50 | Join our growing community around the world! Follow us on [Twitter](https://twitter.com/appwrite), [Facebook Page](https://www.facebook.com/appwrite.io), [Facebook Group](https://www.facebook.com/groups/appwrite.developers/) or join our [Discord Server](https://appwrite.io/discord) for more help, ideas and discussions. 51 | -------------------------------------------------------------------------------- /config.example.dart: -------------------------------------------------------------------------------- 1 | /// rename to config.dart 2 | /// update with your endpoint, projectId and API Key 3 | 4 | const String endpoint = 'http://localhost/v1'; 5 | const String projectId = '[PROJECT_ID]'; 6 | const String key = '[API_KEY]'; 7 | -------------------------------------------------------------------------------- /main.dart: -------------------------------------------------------------------------------- 1 | import 'package:dart_appwrite/dart_appwrite.dart'; 2 | 3 | import 'config.dart'; 4 | 5 | var client = Client(); 6 | var databaseId; 7 | var collectionId; 8 | var documentId; 9 | var userId; 10 | var teamId; 11 | var teamMembershipId; 12 | var fileId; 13 | var functionId; 14 | var bucketId; 15 | 16 | Future main() async { 17 | client 18 | .setEndpoint(endpoint) // Make sure your endpoint is accessible 19 | .setProject(projectId) // Your project ID 20 | .setKey(key) // Your appwrite key 21 | // .setJWT('jwt') // Enable this to authenticate with JWT created using client SDK 22 | .setSelfSigned(status: true); //Do not use this in production 23 | 24 | // getAccount(); // works only with JWT 25 | await createDatabase(); 26 | await listDatabases(); 27 | await createCollection(); 28 | await listCollection(); 29 | await Future.delayed(const Duration(seconds: 1)); 30 | await addDoc(); 31 | await listDoc(); 32 | await deleteDoc(); 33 | await deleteCollection(); 34 | await deleteDatabase(); 35 | 36 | await createBucket(); 37 | await listBucket(); 38 | await uploadFile(); 39 | await deleteFile(); 40 | await deleteBucket(); 41 | 42 | await createUser( 43 | '${DateTime.now().millisecondsSinceEpoch}@example.com', 44 | 'user@123', 45 | 'Some user', 46 | ); 47 | await listUser(); 48 | await createTeam(); 49 | await listTeams(); 50 | await createTeamMembership(); 51 | await listTeamMemberships(); 52 | await deleteTeamMembership(); 53 | await deleteTeam(); 54 | await deleteUser(); 55 | 56 | await createFunction(); 57 | await listFunctions(); 58 | await deleteFunction(); 59 | } 60 | 61 | Future getAccount() async { 62 | final account = Account(client); 63 | print("Running get Account API"); 64 | try { 65 | final res1 = await account.get(); 66 | print(res1.toMap()); 67 | } on AppwriteException catch (e) { 68 | print(e.message); 69 | } 70 | } 71 | 72 | Future createDatabase() async { 73 | print('Running Create Database API'); 74 | final databases = Databases(client); 75 | try { 76 | final db = await databases.create( 77 | databaseId: ID.unique(), 78 | name: 'Movies DB', 79 | ); 80 | databaseId = db.$id; 81 | print(db.toMap()); 82 | } on AppwriteException catch (e) { 83 | print(e.message); 84 | } 85 | } 86 | 87 | Future listDatabases() async { 88 | print('Running List Databases API'); 89 | final databases = Databases(client); 90 | try { 91 | final db = await databases.list(); 92 | print(db.toMap()); 93 | } on AppwriteException catch (e) { 94 | print(e.message); 95 | } 96 | } 97 | 98 | Future createCollection() async { 99 | final database = Databases(client); 100 | print('Running create collection API'); 101 | try { 102 | final res = await database.createCollection( 103 | databaseId: databaseId, 104 | collectionId: ID.unique(), 105 | documentSecurity: true, 106 | name: 'Movies', 107 | permissions: [ 108 | Permission.read(Role.any()), 109 | Permission.write(Role.any()), 110 | ], 111 | ); 112 | collectionId = res.$id; 113 | await database.createStringAttribute( 114 | databaseId: databaseId, 115 | collectionId: collectionId, 116 | key: 'name', 117 | size: 60, 118 | xrequired: true, 119 | ); 120 | await database.createIntegerAttribute( 121 | databaseId: databaseId, 122 | collectionId: collectionId, 123 | key: 'release_year', 124 | xrequired: true, 125 | array: false, 126 | ); 127 | print(res.toMap()); 128 | } on AppwriteException catch (e) { 129 | print(e.message); 130 | } 131 | } 132 | 133 | Future listCollection() async { 134 | final database = Databases(client); 135 | print("Running list collection API"); 136 | try { 137 | final res = await database.listCollections(databaseId: databaseId); 138 | final collection = res.collections[0]; 139 | print(collection.toMap()); 140 | } on AppwriteException catch (e) { 141 | print(e.message); 142 | } 143 | } 144 | 145 | Future deleteCollection() async { 146 | final database = Databases(client); 147 | print("Running delete collection API"); 148 | try { 149 | await database.deleteCollection( 150 | databaseId: databaseId, 151 | collectionId: collectionId, 152 | ); 153 | print("collection deleted: $collectionId"); 154 | } on AppwriteException catch (e) { 155 | print(e.message); 156 | } 157 | } 158 | 159 | Future addDoc() async { 160 | final database = Databases(client); 161 | print('Running Add Document API'); 162 | try { 163 | final res = await database.createDocument( 164 | databaseId: databaseId, 165 | documentId: ID.unique(), 166 | collectionId: collectionId, 167 | data: { 168 | 'name': 'Spider Man', 169 | 'release_year': 1920, 170 | }, 171 | permissions: [ 172 | Permission.read(Role.any()), 173 | Permission.update(Role.any()), 174 | ], 175 | ); 176 | print(res.data); 177 | documentId = res.$id; 178 | } on AppwriteException catch (e) { 179 | print(e.message); 180 | } 181 | } 182 | 183 | Future listDoc() async { 184 | final database = Databases(client); 185 | print('Running List Document API'); 186 | try { 187 | final response = await database.listDocuments( 188 | databaseId: databaseId, 189 | collectionId: collectionId, 190 | ); 191 | print(response.toMap()); 192 | } on AppwriteException catch (e) { 193 | print(e.message); 194 | } 195 | } 196 | 197 | Future deleteDoc() async { 198 | final database = Databases(client); 199 | print('Running Delete Document API'); 200 | try { 201 | await database.deleteDocument( 202 | databaseId: databaseId, 203 | collectionId: collectionId, 204 | documentId: documentId, 205 | ); 206 | print("Document deleted: $databaseId"); 207 | } on AppwriteException catch (e) { 208 | print(e.message); 209 | } 210 | } 211 | 212 | Future deleteDatabase() async { 213 | final databases = Databases(client); 214 | print('Running Delete Database API'); 215 | try { 216 | await databases.delete(databaseId: databaseId); 217 | } on AppwriteException catch (e) { 218 | print(e.message); 219 | } 220 | } 221 | 222 | Future createBucket() async { 223 | final storage = Storage(client); 224 | print("Running create bucket API"); 225 | try { 226 | final bucket = await storage.createBucket( 227 | bucketId: ID.unique(), 228 | name: 'my awesome bucket', 229 | fileSecurity: true, 230 | ); 231 | bucketId = bucket.$id; 232 | print("Bucket created: $bucketId"); 233 | } on AppwriteException catch (e) { 234 | print(e.message); 235 | } 236 | } 237 | 238 | Future listBucket() async { 239 | final storage = Storage(client); 240 | print("Running list buckets API"); 241 | try { 242 | final bucketList = await storage.listBuckets(); 243 | print("Buckets: " + bucketList.buckets[0].toMap().toString()); 244 | } on AppwriteException catch (e) { 245 | print(e.message); 246 | } 247 | } 248 | 249 | Future uploadFile() async { 250 | final storage = Storage(client); 251 | print('Running Upload File API'); 252 | final file = InputFile.fromPath(path: './nature.jpg'); 253 | try { 254 | final response = await storage.createFile( 255 | bucketId: bucketId, 256 | fileId: ID.unique(), 257 | file: file, 258 | permissions: [ 259 | Permission.read(Role.any()), 260 | Permission.update(Role.any()), 261 | ], 262 | ); 263 | fileId = response.$id; 264 | print("File uploaded: " + response.toMap().toString()); 265 | } on AppwriteException catch (e) { 266 | print(e.message); 267 | } 268 | } 269 | 270 | Future deleteFile() async { 271 | final storage = Storage(client); 272 | print('Running Delete File API'); 273 | try { 274 | await storage.deleteFile( 275 | bucketId: bucketId, 276 | fileId: fileId, 277 | ); 278 | print("File deleted: $fileId"); 279 | } on AppwriteException catch (e) { 280 | print(e.message); 281 | } 282 | } 283 | 284 | Future deleteBucket() async { 285 | final storage = Storage(client); 286 | print("Running Delete bucket API"); 287 | try { 288 | await storage.deleteBucket(bucketId: bucketId); 289 | print("Bucket deleted: $bucketId "); 290 | } on AppwriteException catch (e) { 291 | print(e.message); 292 | } 293 | } 294 | 295 | Future createUser(email, password, name) async { 296 | final users = Users(client); 297 | print('Running Create User API'); 298 | try { 299 | final response = await users.create( 300 | userId: ID.unique(), 301 | email: email, 302 | password: password, 303 | name: name, 304 | ); 305 | userId = response.$id; 306 | print(response.toMap()); 307 | } on AppwriteException catch (e) { 308 | print(e.message); 309 | } 310 | } 311 | 312 | Future listUser() async { 313 | final users = Users(client); 314 | print('Running List User API'); 315 | try { 316 | final response = await users.list(); 317 | print(response.toMap()); 318 | } on AppwriteException catch (e) { 319 | print(e.message); 320 | } 321 | } 322 | 323 | Future createTeam() async { 324 | final teams = Teams(client); 325 | print('Running Create Team API'); 326 | try { 327 | final response = await teams.create( 328 | teamId: ID.unique(), 329 | name: 'Awesome Team', 330 | roles: ['owner'], 331 | ); 332 | teamId = response.$id; 333 | print(response.toMap()); 334 | } on AppwriteException catch (e) { 335 | print(e.message); 336 | } 337 | } 338 | 339 | Future listTeams() async { 340 | final teams = Teams(client); 341 | print('Running List Teams API'); 342 | try { 343 | final response = await teams.list(); 344 | print(response.toMap()); 345 | } on AppwriteException catch (e) { 346 | print(e.message); 347 | } 348 | } 349 | 350 | Future createTeamMembership() async { 351 | final teams = Teams(client); 352 | print('Running Create Team Membership API'); 353 | try { 354 | final response = await teams.createMembership( 355 | teamId: teamId, 356 | roles: ['owner'], 357 | url: 'http://localhost', 358 | userId: userId, 359 | ); 360 | teamMembershipId = response.$id; 361 | print(response.toMap()); 362 | } on AppwriteException catch (e) { 363 | print(e.message); 364 | } 365 | } 366 | 367 | Future listTeamMemberships() async { 368 | final teams = Teams(client); 369 | print('Running List Team Memberships API'); 370 | try { 371 | final response = await teams.listMemberships(teamId: teamId); 372 | print(response.toMap()); 373 | } on AppwriteException catch (e) { 374 | print(e.message); 375 | } 376 | } 377 | 378 | Future deleteTeamMembership() async { 379 | final teams = Teams(client); 380 | print('Running Delete Team Membership API'); 381 | try { 382 | await teams.deleteMembership( 383 | teamId: teamId, 384 | membershipId: teamMembershipId, 385 | ); 386 | print("membership deleted"); 387 | } on AppwriteException catch (e) { 388 | print(e.message); 389 | } 390 | } 391 | 392 | Future deleteTeam() async { 393 | final teams = Teams(client); 394 | print('Running Delete Team API'); 395 | try { 396 | await teams.delete( 397 | teamId: teamId, 398 | ); 399 | print("team deleted"); 400 | } on AppwriteException catch (e) { 401 | print(e.message); 402 | } 403 | } 404 | 405 | Future deleteUser() async { 406 | final users = Users(client); 407 | print("Running delete user"); 408 | try { 409 | await users.delete(userId: userId); 410 | print("user deleted"); 411 | } on AppwriteException catch (e) { 412 | print(e.message); 413 | } 414 | } 415 | 416 | Future createFunction() async { 417 | final functions = Functions(client); 418 | print('Running Create Function API'); 419 | try { 420 | final res = await functions.create( 421 | functionId: ID.unique(), 422 | name: 'test function', 423 | execute: [], 424 | runtime: 'php-8.0'); 425 | print(res.toMap()); 426 | functionId = res.$id; 427 | } on AppwriteException catch (e) { 428 | print(e.message); 429 | } 430 | } 431 | 432 | Future listFunctions() async { 433 | final functions = Functions(client); 434 | print('Running List Functions API'); 435 | try { 436 | final res = await functions.list(); 437 | print(res.toMap()); 438 | } on AppwriteException catch (e) { 439 | print(e.message); 440 | } 441 | } 442 | 443 | Future deleteFunction() async { 444 | final functions = Functions(client); 445 | print('Running Delete Function API'); 446 | try { 447 | await functions.delete(functionId: functionId); 448 | print('Function deleted'); 449 | } on AppwriteException catch (e) { 450 | print(e.message); 451 | } 452 | } 453 | -------------------------------------------------------------------------------- /nature.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/appwrite/playground-for-dart/eeab3a99a6d6d9c56c1ecf2fddd73da7c6988ba0/nature.jpg -------------------------------------------------------------------------------- /pubspec.lock: -------------------------------------------------------------------------------- 1 | # Generated by pub 2 | # See https://dart.dev/tools/pub/glossary#lockfile 3 | packages: 4 | async: 5 | dependency: transitive 6 | description: 7 | name: async 8 | sha256: "271b8899fc99f9df4f4ed419fa14e2fff392c7b2c162fbb87b222e2e963ddc73" 9 | url: "https://pub.dev" 10 | source: hosted 11 | version: "2.9.0" 12 | collection: 13 | dependency: transitive 14 | description: 15 | name: collection 16 | sha256: ef7e3a5529178ce8f37a9d0b11cbbc8b1e025940f9cf9f76c42da6796301219d 17 | url: "https://pub.dev" 18 | source: hosted 19 | version: "1.16.0" 20 | dart_appwrite: 21 | dependency: "direct main" 22 | description: 23 | name: dart_appwrite 24 | sha256: a43972ea7868b3811af513810e2fb20b0208ab70d09e195fb8d9c0b8f7c4524f 25 | url: "https://pub.dev" 26 | source: hosted 27 | version: "10.0.0" 28 | http: 29 | dependency: transitive 30 | description: 31 | name: http 32 | sha256: "4c3f04bfb64d3efd508d06b41b825542f08122d30bda4933fb95c069d22a4fa3" 33 | url: "https://pub.dev" 34 | source: hosted 35 | version: "1.0.0" 36 | http_parser: 37 | dependency: transitive 38 | description: 39 | name: http_parser 40 | sha256: db3060f22889f3d9d55f6a217565486737037eec3609f7f3eca4d0c67ee0d8a0 41 | url: "https://pub.dev" 42 | source: hosted 43 | version: "4.0.1" 44 | lints: 45 | dependency: "direct dev" 46 | description: 47 | name: lints 48 | sha256: "5cfd6509652ff5e7fe149b6df4859e687fca9048437857cb2e65c8d780f396e3" 49 | url: "https://pub.dev" 50 | source: hosted 51 | version: "2.0.0" 52 | meta: 53 | dependency: transitive 54 | description: 55 | name: meta 56 | sha256: "6c268b42ed578a53088d834796959e4a1814b5e9e164f147f580a386e5decf42" 57 | url: "https://pub.dev" 58 | source: hosted 59 | version: "1.8.0" 60 | path: 61 | dependency: transitive 62 | description: 63 | name: path 64 | sha256: db9d4f58c908a4ba5953fcee2ae317c94889433e5024c27ce74a37f94267945b 65 | url: "https://pub.dev" 66 | source: hosted 67 | version: "1.8.2" 68 | source_span: 69 | dependency: transitive 70 | description: 71 | name: source_span 72 | sha256: dd904f795d4b4f3b870833847c461801f6750a9fa8e61ea5ac53f9422b31f250 73 | url: "https://pub.dev" 74 | source: hosted 75 | version: "1.9.1" 76 | string_scanner: 77 | dependency: transitive 78 | description: 79 | name: string_scanner 80 | sha256: "862015c5db1f3f3c4ea3b94dc2490363a84262994b88902315ed74be1155612f" 81 | url: "https://pub.dev" 82 | source: hosted 83 | version: "1.1.1" 84 | term_glyph: 85 | dependency: transitive 86 | description: 87 | name: term_glyph 88 | sha256: a29248a84fbb7c79282b40b8c72a1209db169a2e0542bce341da992fe1bc7e84 89 | url: "https://pub.dev" 90 | source: hosted 91 | version: "1.2.1" 92 | typed_data: 93 | dependency: transitive 94 | description: 95 | name: typed_data 96 | sha256: "26f87ade979c47a150c9eaab93ccd2bebe70a27dc0b4b29517f2904f04eb11a5" 97 | url: "https://pub.dev" 98 | source: hosted 99 | version: "1.3.1" 100 | sdks: 101 | dart: ">=3.0.0 <4.0.0" 102 | -------------------------------------------------------------------------------- /pubspec.yaml: -------------------------------------------------------------------------------- 1 | name: playground_for_dart 2 | description: Simple examples that help you get started with Appwrite + Dart (=❤️). 3 | # version: 1.0.0 4 | #homepage: https://www.example.com 5 | environment: 6 | sdk: ">=2.12.0 <3.0.0" 7 | 8 | dependencies: 9 | dart_appwrite: ^10.0.0 10 | 11 | dev_dependencies: 12 | lints: ^2.0.0 13 | --------------------------------------------------------------------------------