{ "hosting": { "public": "_site", "cleanUrls": true, "trailingSlash": false, "headers": [ { "source": "**/*.@(avif|jpg|jpeg|gif|png|md|txt|json|webp|webm|svg|css|js)", "headers": [ { "key": "Cache-Control", "value": "max-age=28800" }, { "key": "Access-Control-Allow-Origin", "value": "*" } ] }, { "source": "/assets/img/*.@(jpg|jpeg|png|webp|avif)", "headers": [ { "key": "Cache-Control", "value": "max-age=604800" }, { "key": "Access-Control-Allow-Origin", "value": "*" } ] }, { "source": "**", "headers": [ { "key": "Referrer-Policy", "value": "strict-origin-when-cross-origin"}, { "key": "X-Content-Type-Options", "value": "nosniff"}, { "key": "X-XSS-Protection", "value": "1;mode=block"} ] } ], "redirects": [ { "regex": "(?P.*)\\.html$", "destination": ":basename", "type": 301 }, { "regex": "(?P.*)\\.$", "destination": ":basename", "type": 301 }, { "source": "/+", "destination": "/community", "type": 301 }, { "source": "/+dart2js", "destination": "/tools/dart-compile#js", "type": 301 }, { "source": "/+isolates", "destination": "/language/concurrency", "type": 301 }, { "source": "/+lexicalscope", "destination": "/language/functions#lexical-scope", "type": 301 }, { "source": "/+pub", "destination": "/tools/pub", "type": 301 }, { "source": "/2.0", "destination": "/guides/language/evolution#dart-20", "type": 301 }, { "source": "/\\)", "destination": "/", "type": 301 }, { "source": "/angular{,/**}", "destination": "https://github.com/angulardart", "type": 301 }, { "source": "/api", "destination": "https://api.dart.dev", "type": 301 }, { "source": "/articles", "destination": "https://medium.com/dartlang", "type": 301 }, { "source": "/articles/api-naming-guide{,/**}", "destination": "/effective-dart/design", "type": 301 }, { "source": "/articles/archive", "destination": "https://medium.com/dartlang", "type": 301 }, { "source": "/articles/archive/converters-and-codecs", "destination": "/libraries/convert/converters-and-codecs", "type": 301 }, { "source": "/articles/archive/dart-2", "destination": "/guides/language/evolution#dart-20", "type": 301 }, { "source": "/articles/archive/event-loop", "destination": "https://medium.com/dartlang/dart-asynchronous-programming-isolates-and-event-loops-bffc3e296a6a", "type": 301 }, { "source": "/articles/archive/numeric-computation", "destination": "/guides/language/numbers", "type": 301 }, { "source": "/articles/archive/zones", "destination": "/libraries/async/zones", "type": 301 }, { "source": "/articles/await-async", "destination": "/libraries/async/async-await", "type": 301 }, { "source": "/articles/broadcast-streams", "destination": "https://medium.com/dartlang/dart-asynchronous-programming-streams-dab952023ed7", "type": 301 }, { "source": "/articles/converters-and-codecs", "destination": "/libraries/convert/converters-and-codecs", "type": 301 }, { "source": "/articles/creating-streams", "destination": "/libraries/async/creating-streams", "type": 301 }, { "source": "/articles/dart-unit-tests{,/**}", "destination": "https://pub.dev/packages/test#writing-tests", "type": 301 }, { "source": "/articles/dart-vm/io", "destination": "/articles/libraries/dart-io", "type": 301 }, { "source": "/articles/dart-vm/native-extensions", "destination": "/server/c-interop-native-extensions", "type": 301 }, { "source": "/articles/dart-vm/numeric-computation", "destination": "/guides/language/numbers", "type": 301 }, { "source": "/articles/dart-vm/snapshots", "destination": "/tools/dart-compile", "type": 301 }, { "source": "/articles/design-decisions/why-dart-types", "destination": "/resources/faq#types", "type": 301 }, { "source": "/articles/doc-comment-guidelines", "destination": "/effective-dart/documentation", "type": 301 }, { "source": "/articles/event-loop", "destination": "https://medium.com/dartlang/dart-asynchronous-programming-isolates-and-event-loops-bffc3e296a6a", "type": 301 }, { "source": "/articles/feet-wet-streams{,/**}", "destination": "/libraries/async/using-streams", "type": 301 }, { "source": "/articles/futures-and-error-handling", "destination": "/libraries/async/futures-error-handling", "type": 301 }, { "source": "/articles/idiomatic-dart{,/**}", "destination": "/effective-dart", "type": 301 }, { "source": "/articles/io", "destination": "/articles/libraries/dart-io", "type": 301 }, { "source": "/articles/js-dart-interop", "destination": "/web/libraries#js-interop", "type": 301 }, { "source": "/articles/json-web-service", "destination": "/guides/json", "type": 301 }, { "source": "/articles/language", "destination": "/language", "type": 301 }, { "source": "/articles/language/await-async", "destination": "/libraries/async/async-await", "type": 301 }, { "source": "/articles/language/mixins", "destination": "/language/mixins", "type": 301 }, { "source": "/articles/language/optional-types", "destination": "/resources/faq#types", "type": 301 }, { "source": "/articles/libraries", "destination": "/libraries", "type": 301 }, { "source": "/articles/libraries/converters-and-codecs", "destination": "/libraries/convert/converters-and-codecs", "type": 301 }, { "source": "/articles/libraries/creating-streams", "destination": "/libraries/async/creating-streams", "type": 301 }, { "source": "/articles/libraries/dart-io", "destination": "/libraries/dart-io", "type": 301 }, { "source": "/articles/libraries/zones", "destination": "/libraries/async/zones", "type": 301 }, { "source": "/articles/libraries*{,/**}", "destination": "/libraries", "type": 301 }, { "source": "/articles/m*{,/**}", "destination": "/guides/language/evolution", "type": 301 }, { "source": "/articles/mixins", "destination": "/language/mixins", "type": 301 }, { "source": "/articles/mocking-with-dart", "destination": "https://pub.dev/packages/mockito", "type": 301 }, { "source": "/articles/native-extensions-for-standalone-dart-vm", "destination": "/server/c-interop-native-extensions", "type": 301 }, { "source": "/articles/numeric-computation", "destination": "/guides/language/numbers", "type": 301 }, { "source": "/articles/optional-types", "destination": "/resources/faq#types", "type": 301 }, { "source": "/articles/serialization", "destination": "/guides/json", "type": 301 }, { "source": "/articles/server/native-extensions", "destination": "/server/c-interop-native-extensions", "type": 301 }, { "source": "/articles/server{,/**}", "destination": "/server", "type": 301 }, { "source": "/articles/snapshots", "destination": "/tools/dart-compile", "type": 301 }, { "source": "/articles/style-guide{,/**}", "destination": "/effective-dart/style", "type": 301 }, { "source": "/articles/using-future-based-apis{,/**}", "destination": "/libraries/async/async-await", "type": 301 }, { "source": "/articles/why-dart-types", "destination": "/resources/faq#types", "type": 301 }, { "source": "/articles/zones", "destination": "/libraries/async/zones", "type": 301 }, { "source": "/assets/dart-logo-for-shares*.png", "destination": "/assets/img/logo/dart-logo-for-shares.png", "type": 301 }, { "source": "/assets/dart-logo-wordmark*.png", "destination": "/assets/img/logo/dart-logo-for-shares.png", "type": 301 }, { "source": "/assets/shared/dart/icon/64.png", "destination": "/assets/img/logo/dart-64.png", "type": 301 }, { "source": "/books", "destination": "/resources/books", "type": 301 }, { "source": "/bug", "destination": "https://dartbug.com", "type": 301 }, { "source": "/bug/:rest*", "destination": "https://dartbug.com/:rest*", "type": 301 }, { "source": "/cl", "destination": "https://dart-review.googlesource.com/q/status:open+-is:wip", "type": 301 }, { "source": "/cl/:rest*", "destination": "https://dart-review.googlesource.com/c/sdk/+/:rest*", "type": 301 }, { "source": "/cloud{,/**}", "destination": "/server/google-cloud", "type": 301 }, { "source": "/codelabs", "destination": "/tutorials", "type": 301 }, { "source": "/codelabs/async-await", "destination": "/libraries/async/async-await", "type": 301 }, { "source": "/codelabs/dart-cheatsheet", "destination": "/resources/dart-cheatsheet", "type": 301 }, { "source": "/codelabs/null-safety{,/**}", "destination": "/null-safety/understanding-null-safety", "type": 301 }, { "source": "/codelabs/server{,/**}", "destination": "/tutorials/server/httpserver", "type": 301 }, { "source": "/code-of-conduct", "destination": "/community/code-of-conduct", "type": 301 }, { "source": "/concurrency", "destination": "/language/concurrency", "type": 301 }, { "source": "/dart", "destination": "/overview", "type": 301 }, { "source": "/dart-2", "destination": "/guides/language/evolution#dart-20", "type": 301 }, { "source": "/dart-2.0", "destination": "/guides/language/evolution#dart-20", "type": 301 }, { "source": "/dart-3", "destination": "/resources/dart-3-migration", "type": 301 }, { "source": "/dart-by-example", "destination": "/samples", "type": 301 }, { "source": "/dart-team-packages", "destination": "/resources/dart-team-packages", "type": 301 }, { "source": "/dart-tips{,/**}", "destination": "/effective-dart", "type": 301 }, { "source": "/dart-vm", "destination": "/server", "type": 301 }, { "source": "/dart-vm/:page*", "destination": "/server/:page*", "type": 301 }, { "source": "/dart2js-reflection", "destination": "https://github.com/dart-lang/sdk/issues/21654", "type": 301 }, { "source": "/dartium{,/**}", "destination": "/tools#editors", "type": 301 }, { "source": "/devices", "destination": "/overview#platform", "type": 301 }, { "source": "/dev{,/**}", "destination": "https://api.dart.dev/dev", "type": 301 }, { "source": "/diagnostics", "destination": "/tools/diagnostic-messages", "type": 301 }, { "source": "/diagnostics/:code*", "destination": "/tools/diagnostic-messages?utm_source=dartdev&utm_medium=redir&utm_id=diagcode&utm_content=:code#:code", "type": 301 }, { "source": "/docs/api{,/**}", "destination": "https://api.dart.dev", "type": 301 }, { "source": "/docs/cookbook", "destination": "/language", "type": 301 }, { "source": "/docs/dart-up-and-running/**/ch02", "destination": "/language", "type": 301 }, { "source": "/docs/dart-up-and-running/**/ch03", "destination": "/libraries", "type": 301 }, { "source": "/docs/dart-up-and-running/contents/ch04-tools-dart2js", "destination": "/tools/dart-compile#js", "type": 301 }, { "source": "/docs/dart-up-and-running/contents/ch04-tools-dart_analyzer", "destination": "/tools/dart-analyze", "type": 301 }, { "source": "/docs/dart-up-and-running/contents/ch04-tools-dartium", "destination": "/tools#editors", "type": 301 }, { "source": "/docs/dart-up-and-running{,/**}", "destination": "/resources/books", "type": 301 }, { "source": "/docs/editor", "destination": "/tools", "type": 301 }, { "source": "/docs/editor/getting-started", "destination": "/overview", "type": 301 }, { "source": "/docs/getting-started{,/**}", "destination": "/overview", "type": 301 }, { "source": "/docs/language-tour", "destination": "/language", "type": 301 }, { "source": "/docs/library-tour", "destination": "/libraries", "type": 301 }, { "source": "/docs/pub-package-manager", "destination": "/tools/pub", "type": 301 }, { "source": "/docs/pub-package-manager/pubspec{,/**}", "destination": "/tools/pub/pubspec", "type": 301 }, { "source": "/docs/serverguide", "destination": "/server", "type": 301 }, { "source": "/docs/spec/EnumsTC52draft.pdf", "destination": "/language/enum", "type": 301 }, { "source": "/docs/spec/deferred-loading", "destination": "/language/libraries#lazily-loading-a-library", "type": 301 }, { "source": "/docs/spec{,/**}", "destination": "/guides/language/spec", "type": 301 }, { "source": "/docs/technical-overview{,/**}", "destination": "/overview", "type": 301 }, { "source": "/docs/tutorials/add-elements", "destination": "/library/dart-html", "type": 301 }, { "source": "/docs/tutorials/cmdline", "destination": "/tutorials/server/cmdline", "type": 301 }, { "source": "/docs/tutorials/connect-dart-html", "destination": "/library/dart-html", "type": 301 }, { "source": "/docs/tutorials/fetchdata", "destination": "/tutorials/server/fetch-data", "type": 301 }, { "source": "/docs/tutorials/futures", "destination": "/libraries/async/async-await", "type": 301 }, { "source": "/docs/tutorials/get-started", "destination": "/tutorials/server/get-started", "type": 301 }, { "source": "/docs/tutorials/httpserver", "destination": "/tutorials/server/httpserver", "type": 301 }, { "source": "/docs/tutorials/indexeddb{,/**}", "destination": "https://api.dart.dev/dart-indexed_db/dart-indexed_db-library.html", "type": 301 }, { "source": "/docs/tutorials/remove-elements", "destination": "/library/dart-html", "type": 301 }, { "source": "/docs/tutorials/shared-pkgs", "destination": "/tools/pub/packages", "type": 301 }, { "source": "/docs/tutorials/streams", "destination": "/libraries/async/using-streams", "type": 301 }, { "source": "/docs/tutorials{,/**}", "destination": "/tutorials", "type": 301 }, { "source": "/docs{,/**}", "destination": "/guides", "type": 301 }, { "source": "/downloads{,/**}", "destination": "/get-dart", "type": 301 }, { "source": "/eclipse{,/**}", "destination": "/tools#editors", "type": 301 }, { "source": "/editor{,/**}", "destination": "/tools#editors", "type": 301 }, { "source": "/events/2015{,/**}", "destination": "https://www.youtube.com/watch?list=PLOU2XLYxmsIIQorIS8gagUiMau9S84vZV&v=FiXiI2Atexc", "type": 301 }, { "source": "/events/2016{,/**}", "destination": "https://events.dartlang.org/2016/summit", "type": 301 }, { "source": "/events{,/**}", "destination": "https://events.dartlang.org", "type": 301 }, { "source": "/faq", "destination": "/resources/faq", "type": 301 }, { "source": "/flutter", "destination": "https://flutter.dev", "type": 301 }, { "source": "/glossary", "destination": "/resources/glossary", "type": 301 }, { "source": "/glossary/:entry", "destination": "/resources/glossary#:entry", "type": 301 }, { "source": "/go/analysis-server-protocol", "destination": "https://htmlpreview.github.io/?https://github.com/dart-lang/sdk/blob/main/pkg/analysis_server/doc/api.html", "type": 301 }, { "source": "/go/automated-publishing", "destination": "/tools/pub/automated-publishing", "type": 301 }, { "source": "/go/cloud", "destination": "/server/google-cloud?utm_source=go-link&utm_medium=referral&utm_campaign=go-cloud", "type": 301 }, { "source": "/go/json-codable", "destination": "/language/macros#the-jsoncodable-macro", "type": 301 }, { "source": "/go/content-hashes", "destination": "/tools/pub/glossary#content-hashes", "type": 301 }, { "source": "/go/core-lints", "destination": "https://github.com/dart-lang/lints", "type": 301 }, { "source": "/go/dart-fix", "destination": "/tools/dart-fix", "type": 301 }, { "source": "/go/dart2js-info", "destination": "https://github.com/dart-lang/sdk/tree/main/pkg/dart2js_info", "type": 301 }, { "source": "/go/dartdoc-options-file", "destination": "https://github.com/dart-lang/dartdoc#dartdoc_optionsyaml", "type": 301 }, { "source": "/go/data-driven-fixes", "destination": "https://github.com/flutter/flutter/wiki/Data-driven-Fixes", "type": 301 }, { "source": "/go/dot-packages-deprecation", "destination": "https://github.com/dart-lang/language/blob/main/accepted/2.8/language-versioning/package-config-file-v2.md", "type": 301 }, { "source": "/go/experiments", "destination": "/tools/experiment-flags", "type": 301 }, { "source": "/go/false-secrets", "destination": "/tools/pub/pubspec#false_secrets", "type": 301 }, { "source": "/go/ffi", "destination": "/interop/c-interop", "type": 301 }, { "source": "/go/flutter-upper-bound-deprecation", "destination": "https://github.com/flutter/flutter/issues/68143", "type": 301 }, { "source": "/go/macros", "destination": "/language/macros", "type": 301 }, { "source": "/go/pub-workspaces", "destination": "https://flutter.dev/go/pub-workspace", "type": 301 }, { "source": "/go/non-promo-conflicting-getter", "destination": "/tools/non-promotion-reasons#getter-name", "type": 301 }, { "source": "/go/non-promo-conflicting-non-promotable-field", "destination": "/tools/non-promotion-reasons#field-name", "type": 301 }, { "source": "/go/non-promo-conflicting-noSuchMethod-forwarder", "destination": "/tools/non-promotion-reasons#nosuchmethod", "type": 301 }, { "source": "/go/non-promo-external-field", "destination": "/tools/non-promotion-reasons#external", "type": 301 }, { "source": "/go/non-promo-field-promotion-unavailable", "destination": "/tools/non-promotion-reasons#language-version", "type": 301 }, { "source": "/go/non-promo-non-field", "destination": "/tools/non-promotion-reasons#not-field", "type": 301 }, { "source": "/go/non-promo-non-final-field", "destination": "/tools/non-promotion-reasons#final", "type": 301 }, { "source": "/go/non-promo-property", "destination": "/tools/non-promotion-reasons#property", "type": 301 }, { "source": "/go/non-promo-public-field", "destination": "/tools/non-promotion-reasons#private", "type": 301 }, { "source": "/go/non-promo-this", "destination": "/tools/non-promotion-reasons#this", "type": 301 }, { "source": "/go/non-promo-write", "destination": "/tools/non-promotion-reasons#write", "type": 301 }, { "source": "/go/next-gen-js-interop", "destination": "/interop/js-interop", "type": 301 }, { "source": "/go/null-safety-migration", "destination": "/null-safety/migration-guide", "type": 301 }, { "source": "/go/downgrade-testing", "destination": "/tools/pub/dependencies#test-with-downgraded-dependencies", "type": 301 }, { "source": "/go/package-discontinue", "destination": "/tools/pub/publishing#discontinue", "type": 301 }, { "source": "/go/package-retraction", "destination": "/tools/pub/publishing#retract", "type": 301 }, { "source": "/go/package-web", "destination": "/interop/js-interop/package-web", "type": 301 }, { "source": "/go/pub-cache", "destination": "/tools/pub/cmd/pub-cache", "type": 301 }, { "source": "/go/pubignore", "destination": "/tools/pub/publishing#what-files-are-published", "type": 301 }, { "source": "/go/publishing-from-github", "destination": "/tools/pub/automated-publishing#publishing-packages-using-github-actions", "type": 301 }, { "source": "/go/publishing-with-service-account", "destination": "/tools/pub/automated-publishing#publishing-from-google-cloud-build", "type": 301 }, { "source": "/go/sdk-constraint", "destination": "/tools/pub/pubspec#sdk-constraints", "type": 301 }, { "source": "/go/sdk-version-pinning", "destination": "https://github.com/dart-lang/sdk/blob/main/docs/Flutter-Pinned-Packages.md", "type": 301 }, { "source": "/go/pub-security-advisories", "destination": "/tools/pub/security-advisories", "type": 301 }, { "source": "/go/test-docs/:page*", "destination": "https://github.com/dart-lang/test/blob/master/pkgs/test/doc/:page*", "type": 301 }, { "source": "/go/unsound-null-safety", "destination": "/null-safety/unsound-null-safety", "type": 301 }, { "source": "/googleapis", "destination": "https://github.com/dart-lang/googleapis", "type": 301 }, { "source": "/guides/get-started", "destination": "/overview", "type": 301 }, { "source": "/guides/google-apis", "destination": "/resources/google-apis", "type": 301 }, { "source": "/guides/language/analysis-options", "destination": "/tools/analysis", "type": 301 }, { "source": "/guides/language/cheatsheet", "destination": "/language", "type": 301 }, { "source": "/guides/language/coming-from/js-to-dart", "destination": "/resources/coming-from/js-to-dart", "type": 301 }, { "source": "/guides/language/coming-from/swift-to-dart", "destination": "/resources/coming-from/swift-to-dart", "type": 301 }, { "source": "/guides/language/common-prob", "destination": "/guides/language/sound-problems", "type": 301 }, { "source": "/guides/language/concurrency", "destination": "/language/concurrency", "type": 301 }, { "source": "/guides/language/effective-dart", "destination": "/effective-dart", "type": 301 }, { "source": "/guides/language/effective-dart/:page*", "destination": "/effective-dart/:page*", "type": 301 }, { "source": "/guides/language/extension-methods", "destination": "/language/extension-methods", "type": 301 }, { "source": "/guides/language/formatting", "destination": "/tools/dart-format", "type": 301 }, { "source": "/guides/language/library-tour", "destination": "/libraries", "type": 301 }, { "source": "/guides/language/sound-dart", "destination": "/language/type-system", "type": 301 }, { "source": "/guides/language/sound-faq", "destination": "/language/type-system", "type": 301 }, { "source": "/guides/language/specifications/DartLangSpec-v2.2.pdf", "destination": "https://github.com/dart-lang/site-www/blob/a7f170389e210adc2aef810cc9a6fdbfa78059a5/src/guides/language/specifications/DartLangSpec-v2.2.pdf", "type": 301 }, { "source": "/guides/language/type-system", "destination": "/language/type-system", "type": 301 }, { "source": "/guides/libraries", "destination": "/libraries", "type": 301 }, { "source": "/guides/libraries/create-library-packages", "destination": "/guides/libraries/create-packages", "type": 301 }, { "source": "/guides/libraries/futures-error-handling", "destination": "/libraries/async/futures-error-handling", "type": 301 }, { "source": "/guides/libraries/java-interop", "destination": "/interop/java-interop", "type": 301 }, { "source": "/guides/libraries/objective-c-interop", "destination": "/interop/objective-c-interop", "type": 301 }, { "source": "/guides/libraries/c-interop", "destination": "/interop/c-interop", "type": 301 }, { "source": "/guides/libraries/writing-package-pages", "destination": "/tools/pub/writing-package-pages", "type": 301 }, { "source": "/guides/libraries/useful-libraries", "destination": "/resources/useful-packages", "type": 301 }, { "source": "/guides/packages", "destination": "/tools/pub/packages", "type": 301 }, { "source": "/guides/platforms", "destination": "/overview#platform", "type": 301 }, { "source": "/guides/whats-new", "destination": "/resources/whats-new", "type": 301 }, { "source": "/install", "destination": "/get-dart", "type": 301 }, { "source": "/install/**", "destination": "/get-dart", "type": 301 }, { "source": "/install/archive", "destination": "/get-dart/archive", "type": 301 }, { "source": "/jobs", "destination": "https://docs.flutter.dev/jobs", "type": 301 }, { "source": "/keyword", "destination": "/language/keywords", "type": 301 }, { "source": "/keyword/abstract", "destination": "/language/class-modifiers#abstract", "type": 301 }, { "source": "/keyword/as", "destination": "/language/operators#type-test-operators", "type": 301 }, { "source": "/keyword/assert", "destination": "/language/error-handling#assert", "type": 301 }, { "source": "/keyword/async", "destination": "/language/async", "type": 301 }, { "source": "/keyword/async-star", "destination": "/language/functions#generators", "type": 301 }, { "source": "/keyword/await", "destination": "/language/async", "type": 301 }, { "source": "/keyword/base", "destination": "/language/class-modifiers#base", "type": 301 }, { "source": "/keyword/break", "destination": "/language/loops#break-and-continue", "type": 301 }, { "source": "/keyword/case", "destination": "/language/branches#switch", "type": 301 }, { "source": "/keyword/catch", "destination": "/language/error-handling#catch", "type": 301 }, { "source": "/keyword/class", "destination": "/language/classes#instance-variables", "type": 301 }, { "source": "/keyword/const", "destination": "/language/variables#final-and-const", "type": 301 }, { "source": "/keyword/continue", "destination": "/language/loops#break-and-continue", "type": 301 }, { "source": "/keyword/covariant", "destination": "/guides/language/sound-problems#the-covariant-keyword", "type": 301 }, { "source": "/keyword/default", "destination": "/language/branches#switch", "type": 301 }, { "source": "/keyword/deferred", "destination": "/language/libraries#lazily-loading-a-library", "type": 301 }, { "source": "/keyword/do", "destination": "/language/loops#while-and-do-while", "type": 301 }, { "source": "/keyword/dynamic", "destination": "/effective-dart/design#avoid-using-dynamic-unless-you-want-to-disable-static-checking", "type": 301 }, { "source": "/keyword/else", "destination": "/language/branches#if", "type": 301 }, { "source": "/keyword/enum", "destination": "/language/enums", "type": 301 }, { "source": "/keyword/export", "destination": "/guides/libraries/create-packages", "type": 301 }, { "source": "/keyword/extends", "destination": "/language/extend", "type": 301 }, { "source": "/keyword/extension", "destination": "/language/extension-methods", "type": 301 }, { "source": "/keyword/extension-type", "destination": "/language/extension-types", "type": 301 }, { "source": "/keyword/external", "destination": "/language/functions#external", "type": 301 }, { "source": "/keyword/factory", "destination": "/language/constructors#factory-constructors", "type": 301 }, { "source": "/keyword/false", "destination": "/language/built-in-types#booleans", "type": 301 }, { "source": "/keyword/final", "destination": "/language/variables#final-and-const", "type": 301 }, { "source": "/keyword/final-var", "destination": "/language/variables#final-and-const", "type": 301 }, { "source": "/keyword/final-class", "destination": "/language/class-modifiers#final", "type": 301 }, { "source": "/keyword/finally", "destination": "/language/error-handling#finally", "type": 301 }, { "source": "/keyword/for", "destination": "/language/loops#for-loops", "type": 301 }, { "source": "/keyword/Function", "destination": "/language/functions", "type": 301 }, { "source": "/keyword/get", "destination": "/language/methods#getters-and-setters", "type": 301 }, { "source": "/keyword/hide", "destination": "/language/libraries#importing-only-part-of-a-library", "type": 301 }, { "source": "/keyword/if", "destination": "/language/branches#if", "type": 301 }, { "source": "/keyword/implements", "destination": "/language/classes#implicit-interfaces", "type": 301 }, { "source": "/keyword/import", "destination": "/language/libraries#using-libraries", "type": 301 }, { "source": "/keyword/in", "destination": "/language/loops#for-loops", "type": 301 }, { "source": "/keyword/interface", "destination": "/language/class-modifiers#interface", "type": 301 }, { "source": "/keyword/is", "destination": "/language/operators#type-test-operators", "type": 301 }, { "source": "/keyword/late", "destination": "/language/variables#late-variables", "type": 301 }, { "source": "/keyword/library", "destination": "/language/libraries", "type": 301 }, { "source": "/keyword/mixin", "destination": "/language/mixins", "type": 301 }, { "source": "/keyword/new", "destination": "/language/classes#using-constructors", "type": 301 }, { "source": "/keyword/null", "destination": "/language/variables#default-value", "type": 301 }, { "source": "/keyword/of", "destination": "/guides/libraries/create-packages#organizing-a-package", "type": 301 }, { "source": "/keyword/on", "destination": "/language/error-handling#catch", "type": 301 }, { "source": "/keyword/operator", "destination": "/language/methods#operators", "type": 301 }, { "source": "/keyword/part", "destination": "/guides/libraries/create-packages#organizing-a-package", "type": 301 }, { "source": "/keyword/required", "destination": "/language/functions#named-parameters", "type": 301 }, { "source": "/keyword/rethrow", "destination": "/language/error-handling#catch", "type": 301 }, { "source": "/keyword/return", "destination": "/language/functions#return-values", "type": 301 }, { "source": "/keyword/sealed", "destination": "/language/class-modifiers#sealed", "type": 301 }, { "source": "/keyword/set", "destination": "/language/methods#getters-and-setters", "type": 301 }, { "source": "/keyword/show", "destination": "/language/libraries#importing-only-part-of-a-library", "type": 301 }, { "source": "/keyword/static", "destination": "/language/classes#class-variables-and-methods", "type": 301 }, { "source": "/keyword/super", "destination": "/language/extend", "type": 301 }, { "source": "/keyword/switch", "destination": "/language/branches#switch", "type": 301 }, { "source": "/keyword/sync{,-star}", "destination": "/language/functions#generators", "type": 301 }, { "source": "/keyword/this", "destination": "/language/constructors", "type": 301 }, { "source": "/keyword/throw", "destination": "/language/error-handling#throw", "type": 301 }, { "source": "/keyword/true", "destination": "/language/built-in-types#booleans", "type": 301 }, { "source": "/keyword/try", "destination": "/language/error-handling#catch", "type": 301 }, { "source": "/keyword/type", "destination": "/language/extension-types", "type": 301 }, { "source": "/keyword/typedef", "destination": "/language/typedefs", "type": 301 }, { "source": "/keyword/var", "destination": "/language/variables", "type": 301 }, { "source": "/keyword/void", "destination": "/language/built-in-types", "type": 301 }, { "source": "/keyword/when", "destination": "/language/branches#when", "type": 301 }, { "source": "/keyword/with", "destination": "/language/mixins", "type": 301 }, { "source": "/keyword/while", "destination": "/language/loops#while-and-do-while", "type": 301 }, { "source": "/keyword/yield", "destination": "/language/functions#generators", "type": 301 }, { "source": "/keyword/:page*", "destination": "/language/keywords", "type": 301 }, { "source": "/language-tour", "destination": "/language", "type": 301 }, { "source": "/language/basics", "destination": "/language", "type": 301 }, { "source": "/language/callable-classes", "destination": "/language/callable-objects", "type": 301 }, { "source": "/language/collection-types", "destination": "/language/collections", "type": 301 }, { "source": "/language/control-flow", "destination": "/language/loops", "type": 301 }, { "source": "/language/enum", "destination": "/language/enums", "type": 301 }, { "source": "/language/generators", "destination": "/language/functions#generators", "type": 301 }, { "source": "/linter/lints/:lint*", "destination": "/tools/linter-rules/:lint", "type": 301 }, { "source": "/lints", "destination": "/tools/linter-rules", "type": 301 }, { "source": "/lints/:lint*", "destination": "/tools/linter-rules/:lint", "type": 301 }, { "source": "/logos", "destination": "/brand", "type": 301 }, { "source": "/mailing-list", "destination": "https://groups.google.com/a/dartlang.org/forum/#!forum/misc", "type": 301 }, { "source": "/mobile", "destination": "/multiplatform-apps", "type": 301 }, { "source": "/news{,/**}", "destination": "https://medium.com/dartlang", "type": 301 }, { "source": "/null-safety/tour", "destination": "/null-safety/understanding-null-safety", "type": 301 }, { "source": "/observatory{,/**}", "destination": "/tools/dart-devtools", "type": 301 }, { "source": "/packages", "destination": "https://pub.dev", "type": 301 }, { "source": "/platforms", "destination": "/overview#platform", "type": 301 }, { "source": "/posters{,/**}", "destination": "https://github.com/dart-archive/www.dartlang.org/tree/f5f235e56e51d38d9f4d01f949d0a485f3828056/src/site/posters", "type": 301 }, { "source": "/pub/tools/editor", "destination": "/tools", "type": 301 }, { "source": "/redirects/sdk-download-*", "destination": "/get-dart", "type": 301 }, { "source": "/resources/dart-tips*{,/**}", "destination": "/effective-dart", "type": 301 }, { "source": "/resources/dartpad-best-practices", "destination": "https://doi.org/10.1145/3397537.3397558", "type": 301 }, { "source": "/resources/dartpad-tutorials.pdf", "destination": "https://doi.org/10.1145/3397537.3397558", "type": 301 }, { "source": "/samples", "destination": "/language", "type": 301 }, { "source": "/samples/spirodraw{,/**}", "destination": "/language", "type": 301 }, { "source": "/samples/todomvc{,/**}", "destination": "/language", "type": 301 }, { "source": "/samples/video{,/**}", "destination": "/language", "type": 301 }, { "source": "/samples/sunflower{,/**}", "destination": "https://gist.github.com/5c0e154dd50af4a9ac856908061291bc", "type": 301 }, { "source": "/samples/{,/**}", "destination": "https://github.com/dart-lang/samples/", "type": 301 }, { "source": "/sdk-changelog-2.4.0", "destination": "https://github.com/dart-lang/sdk/blob/main/CHANGELOG.md#240---2019-06-27", "type": 301 }, { "source": "/server/app-engine{,/**}", "destination": "/server/google-cloud", "type": 301 }, { "source": "/server/c-interop", "destination": "/interop/c-interop", "type": 301 }, { "source": "/server/google-cloud-platform{,/**}", "destination": "/server/google-cloud", "type": 301 }, { "source": "/server/io-library-tour", "destination": "/libraries/dart-io", "type": 301 }, { "source": "/server/tls-ssl", "destination": "https://api.dart.dev/dart-io/SecurityContext-class.html", "type": 301 }, { "source": "/server/tools", "destination": "/tools", "type": 301 }, { "source": "/server/tools/dart-vm", "destination": "/tools/dart-run", "type": 301 }, { "source": "/stable{,/**}", "destination": "https://api.dart.dev", "type": 301 }, { "source": "/support/faq", "destination": "/resources/faq", "type": 301 }, { "source": "/support{,/**}", "destination": "/community", "type": 301 }, { "source": "/to/doc-comment-references", "destination": "/tools/doc-comments/references", "type": 301 }, { "source": "/to/enforce-lockfile", "destination": "/tools/pub/packages#get-dependencies-for-production", "type": 301 }, { "source": "/to/main-function", "destination": "/language/functions#main", "type": 301 }, { "source": "/to/web-debug-extension", "destination": "https://chromewebstore.google.com/detail/dart-debug-extension/eljbmlghnomdjgdjmbdekegdkbabckhm", "type": 301 }, { "source": "/tools/**/download{,.html,/**}", "destination": "/get-dart", "type": 301 }, { "source": "/tools/**/private-files", "destination": "/guides/libraries/private-files", "type": 301 }, { "source": "/tools/analyzer", "destination": "/tools/dart-analyze", "type": 301 }, { "source": "/tools/dart-pub", "destination": "/tools/pub/cmd", "type": 301 }, { "source": "/tools/dart-vm", "destination": "/tools/dart-run", "type": 301 }, { "source": "/tools/dart2aot", "destination": "/tools/dart-compile", "type": 301 }, { "source": "/tools/dart2native", "destination": "/tools/dart-compile", "type": 301 }, { "source": "/tools/dartanalyzer", "destination": "/tools/dart-analyze", "type": 301 }, { "source": "/tools/dartdevc/**", "destination": "/tools/dartdevc", "type": 301 }, { "source": "/tools/dartdoc", "destination": "/tools/dart-doc", "type": 301 }, { "source": "/tools/dartdocgen{,/**}", "destination": "/tools/dart-doc", "type": 301 }, { "source": "/tools/dartfix", "destination": "/tools/dart-fix", "type": 301 }, { "source": "/tools/dartfmt", "destination": "/tools/dart-format", "type": 301 }, { "source": "/tools/dartium", "destination": "/tools#editors", "type": 301 }, { "source": "/tools/dartpad/dartpad-best-practices", "destination": "https://doi.org/10.1145/3397537.3397558", "type": 301 }, { "source": "/tools/debian", "destination": "/get-dart", "type": 301 }, { "source": "/tools/docgen{,/**}", "destination": "/tools/dart-doc", "type": 301 }, { "source": "/tools/download-archive{,/**}", "destination": "/get-dart/archive", "type": 301 }, { "source": "/tools/download-editor", "destination": "/tools", "type": 301 }, { "source": "/tools/eclipse-plugin", "destination": "/tools#editors", "type": 301 }, { "source": "/tools/editor{,/**}", "destination": "/tools", "type": 301 }, { "source": "/tools/faq", "destination": "/resources/faq", "type": 301 }, { "source": "/tools/observatory{,/**}", "destination": "/tools/dart-devtools", "type": 301 }, { "source": "/tools/pub/assets-and-*transformers", "destination": "https://github.com/dart-lang/build", "type": 301 }, { "source": "/tools/pub/cmd/pub-build", "destination": "/tools/webdev", "type": 301 }, { "source": "/tools/pub/cmd/pub-run", "destination": "/tools/dart-run", "type": 301 }, { "source": "/tools/pub/cmd/pub-serve", "destination": "/tools/webdev", "type": 301 }, { "source": "/tools/pub/cmd/pub-uploader", "destination": "/tools/pub/publishing#uploaders", "type": 301 }, { "source": "/tools/pub/create-library-packages", "destination": "/guides/libraries/create-packages", "type": 301 }, { "source": "/tools/pub/faq", "destination": "/tools/faq#pub", "type": 301 }, { "source": "/tools/pub/get-started", "destination": "/tools/pub/packages", "type": 301 }, { "source": "/tools/pub/installing", "destination": "/tools/pub/environment-variables", "type": 301 }, { "source": "/tools/pub/transformers{,/**}", "destination": "https://github.com/dart-lang/build", "type": 301 }, { "source": "/tools/sdk/archive", "destination": "/get-dart/archive", "type": 301 }, { "source": "/tools/webstorm", "destination": "/tools#editors", "type": 301 }, { "source": "/tos", "destination": "/terms", "type": 301 }, { "source": "/tutorials/dart-vm", "destination": "/tutorials/server", "type": 301 }, { "source": "/tutorials/dart-vm/:page*", "destination": "/tutorials/server/:page*", "type": 301 }, { "source": "/tutorials/language", "destination": "/language", "type": 301 }, { "source": "/tutorials/language/futures", "destination": "/libraries/async/async-await", "type": 301 }, { "source": "/tutorials/language/streams", "destination": "/libraries/async/using-streams", "type": 301 }, { "source": "/tutorials/libraries", "destination": "/libraries", "type": 301 }, { "source": "/tutorials/libraries/shared-pkgs", "destination": "/tools/pub/packages", "type": 301 }, { "source": "/tutorials/web", "destination": "/web/get-started", "type": 301 }, { "source": "/tutorials/web/fetch-data", "destination": "/tutorials/server/fetch-data", "type": 301 }, { "source": "/tutorials/web/get-started", "destination": "/web/get-started", "type": 301 }, { "source": "/tutorials/web/low-level-html", "destination": "/web/get-started", "type": 301 }, { "source": "/tutorials/web/low-level-html/:rest*", "destination": "/libraries/dart-html", "type": 301 }, { "source": "/web-ui/observables{,/**}", "destination": "https://pub.dev/packages/observable", "type": 301 }, { "source": "/web/dart-2", "destination": "/tools/webdev", "type": 301 }, { "source": "/web/js-interop", "destination": "/interop/js-interop", "type": 301 }, { "source": "/{docs,tools}/{pub-package-manager,pub/cmd,pub/tools/pub}/glossary", "destination": "/tools/pub/glossary", "type": 301 } ] }, "emulators": { "hosting": { "port": 5500, "host": "0.0.0.0" } } }