Showing preview only (2,015K chars total). Download the full file or copy to clipboard to get everything.
Repository: dukefirehawk/angel
Branch: master
Commit: 2224e8985da6
Files: 552
Total size: 1.8 MB
Directory structure:
gitextract_l8l0_3lv/
├── .devcontainer/
│ └── devcontainer.json
├── .github/
│ ├── FUNDING.yml
│ └── workflows/
│ └── dart.yml
├── .gitignore
├── .pubignore
├── .vscode/
│ └── settings.json
├── AI_CONTEXT.md
├── AUTHORS.md
├── CHANGELOG.md
├── CONTRIBUTING.md
├── LICENSE
├── README.md
├── TODO.md
├── archived/
│ └── tool/
│ └── archived/
│ ├── move_repos
│ └── pull_subproject
├── belatuk.session.sql
├── doc/
│ └── deployment/
│ ├── docker/
│ │ ├── README.md
│ │ ├── docker-compose-mariadb.yml
│ │ ├── docker-compose-mongo.yml
│ │ ├── docker-compose-mysql.yml
│ │ ├── docker-compose-pg.yml
│ │ ├── docker-compose-redis.yml
│ │ └── docker-compose-rethinkdb.yml
│ ├── helm_chart/
│ │ └── README.md
│ ├── podman/
│ │ ├── README.md
│ │ ├── podman-compose-mariadb.yml
│ │ ├── podman-compose-mongo.yml
│ │ ├── podman-compose-mysql.yml
│ │ ├── podman-compose-pg.yml
│ │ ├── podman-compose-redis.yml
│ │ └── podman-compose-rethinkdb.yml
│ └── rancher/
│ ├── README.md
│ ├── rancher-compose-mariadb.yml
│ ├── rancher-compose-mongo.yml
│ ├── rancher-compose-mysql.yml
│ ├── rancher-compose-pg.yml
│ ├── rancher-compose-redis.yml
│ └── rancher-compose-rethinkdb.yml
├── melos.yaml
├── melos_angel3.iml
├── packages/
│ ├── cache/
│ │ ├── .gitignore
│ │ ├── AUTHORS.md
│ │ ├── CHANGELOG.md
│ │ ├── LICENSE
│ │ ├── README.md
│ │ ├── analysis_options.yaml
│ │ ├── example/
│ │ │ ├── cache_service.dart
│ │ │ └── main.dart
│ │ ├── lib/
│ │ │ ├── angel3_cache.dart
│ │ │ └── src/
│ │ │ ├── cache.dart
│ │ │ ├── cache_service.dart
│ │ │ └── serializer.dart
│ │ ├── melos_angel3_cache.iml
│ │ ├── pubspec.yaml
│ │ └── test/
│ │ ├── cache_test.dart
│ │ └── files/
│ │ └── date.txt
│ ├── container/
│ │ └── angel_container_generator/
│ │ ├── .gitignore
│ │ ├── CHANGELOG.md
│ │ ├── LICENSE
│ │ ├── README.md
│ │ ├── analysis_options.yaml
│ │ ├── example/
│ │ │ ├── main.dart
│ │ │ └── main.reflectable.dart
│ │ ├── lib/
│ │ │ └── angel3_container_generator.dart
│ │ ├── melos_angel3_container_generator.iml
│ │ ├── pubspec.yaml
│ │ └── test/
│ │ ├── reflector_test.dart
│ │ └── reflector_test.reflectable.dart
│ ├── file_service/
│ │ ├── .gitignore
│ │ ├── AUTHORS.md
│ │ ├── CHANGELOG.md
│ │ ├── LICENSE
│ │ ├── README.md
│ │ ├── analysis_options.yaml
│ │ ├── example/
│ │ │ └── main.dart
│ │ ├── lib/
│ │ │ └── angel3_file_service.dart
│ │ ├── melos_angel3_file_service.iml
│ │ ├── pubspec.yaml
│ │ └── test/
│ │ └── all_test.dart
│ ├── framework/
│ │ ├── AUTHORS.md
│ │ ├── CHANGELOG.md
│ │ ├── LICENSE
│ │ ├── README.md
│ │ ├── analysis_options.yaml
│ │ ├── dev.key
│ │ ├── dev.pem
│ │ ├── example/
│ │ │ ├── controller.dart
│ │ │ ├── handle_error.dart
│ │ │ ├── hostname.dart
│ │ │ ├── http2/
│ │ │ │ ├── body_parsing.dart
│ │ │ │ ├── common.dart
│ │ │ │ ├── dev.key
│ │ │ │ ├── dev.pem
│ │ │ │ ├── main.dart
│ │ │ │ ├── public/
│ │ │ │ │ ├── app.js
│ │ │ │ │ ├── body_parsing.html
│ │ │ │ │ ├── index.html
│ │ │ │ │ └── style.css
│ │ │ │ └── server_push.dart
│ │ │ ├── json.dart
│ │ │ ├── main.dart
│ │ │ ├── map_service.dart
│ │ │ ├── status.dart
│ │ │ ├── view.dart
│ │ │ └── views/
│ │ │ └── index.jl
│ │ ├── lib/
│ │ │ ├── angel3_framework.dart
│ │ │ ├── http.dart
│ │ │ ├── http2.dart
│ │ │ └── src/
│ │ │ ├── core/
│ │ │ │ ├── anonymous_service.dart
│ │ │ │ ├── controller.dart
│ │ │ │ ├── core.dart
│ │ │ │ ├── driver.dart
│ │ │ │ ├── env.dart
│ │ │ │ ├── hooked_service.dart
│ │ │ │ ├── hostname_parser.dart
│ │ │ │ ├── hostname_router.dart
│ │ │ │ ├── injection.dart
│ │ │ │ ├── map_service.dart
│ │ │ │ ├── metadata.dart
│ │ │ │ ├── request_context.dart
│ │ │ │ ├── response_context.dart
│ │ │ │ ├── routable.dart
│ │ │ │ ├── server.dart
│ │ │ │ └── service.dart
│ │ │ ├── fast_name_from_symbol.dart
│ │ │ ├── http/
│ │ │ │ ├── angel_http.dart
│ │ │ │ ├── http.dart
│ │ │ │ ├── http_request_context.dart
│ │ │ │ └── http_response_context.dart
│ │ │ ├── http2/
│ │ │ │ ├── angel_http2.dart
│ │ │ │ ├── http2_request_context.dart
│ │ │ │ └── http2_response_context.dart
│ │ │ ├── safe_stream_controller.dart
│ │ │ └── util.dart
│ │ ├── melos_angel3_framework.iml
│ │ ├── performance/
│ │ │ └── hello/
│ │ │ ├── angel.md
│ │ │ ├── main.dart
│ │ │ ├── raw.dart
│ │ │ └── raw.md
│ │ ├── pubspec.yaml
│ │ └── test/
│ │ ├── accepts_test.dart
│ │ ├── all.dart
│ │ ├── anonymous_service_test.dart
│ │ ├── body_test.dart
│ │ ├── common.dart
│ │ ├── controller_test.dart
│ │ ├── detach_test.dart
│ │ ├── di_test.dart
│ │ ├── encoders_buffer_test.dart
│ │ ├── env_test.dart
│ │ ├── exception_test.dart
│ │ ├── extension_test.dart
│ │ ├── find_one_test.dart
│ │ ├── general_test.dart
│ │ ├── hm.dart
│ │ ├── hooked_test.dart
│ │ ├── http2/
│ │ │ ├── adapter_test.dart
│ │ │ └── http2_client.dart
│ │ ├── http_404_hole_test.dart
│ │ ├── jsonp_test.dart
│ │ ├── parameter_meta_test.dart
│ │ ├── parse_id_test.dart
│ │ ├── precontained_test.dart
│ │ ├── pretty_log.dart
│ │ ├── primitives_test.dart
│ │ ├── repeat_request_test.dart
│ │ ├── req_shutdown_test.dart
│ │ ├── response_header_test.dart
│ │ ├── routing_test.dart
│ │ ├── serialize_test.dart
│ │ ├── server_test.dart
│ │ ├── service_map_test.dart
│ │ ├── services_test.dart
│ │ ├── streaming_test.dart
│ │ └── view_generator_test.dart
│ ├── html/
│ │ ├── AUTHORS.md
│ │ ├── CHANGELOG.md
│ │ ├── LICENSE
│ │ ├── README.md
│ │ ├── analysis_options.yaml
│ │ ├── example/
│ │ │ └── main.dart
│ │ ├── lib/
│ │ │ └── angel3_html.dart
│ │ ├── melos_angel3_html.iml
│ │ ├── pubspec.yaml
│ │ └── test/
│ │ └── all_test.dart
│ ├── jael/
│ │ ├── LICENSE
│ │ ├── README.md
│ │ ├── angel_jael/
│ │ │ ├── AUTHORS.md
│ │ │ ├── CHANGELOG.md
│ │ │ ├── LICENSE
│ │ │ ├── README.md
│ │ │ ├── analysis_options.yaml
│ │ │ ├── example/
│ │ │ │ ├── main.dart
│ │ │ │ └── views/
│ │ │ │ ├── index.jael
│ │ │ │ └── layout.jael
│ │ │ ├── lib/
│ │ │ │ └── angel3_jael.dart
│ │ │ ├── melos_angel3_jael.iml
│ │ │ ├── pubspec.yaml
│ │ │ └── test/
│ │ │ ├── all_test.dart
│ │ │ └── minified_test.dart
│ │ ├── jael/
│ │ │ ├── AUTHORS.md
│ │ │ ├── CHANGELOG.md
│ │ │ ├── LICENSE
│ │ │ ├── README.md
│ │ │ ├── analysis_options.yaml
│ │ │ ├── bin/
│ │ │ │ └── jaelfmt.dart
│ │ │ ├── example/
│ │ │ │ └── main.dart
│ │ │ ├── lib/
│ │ │ │ ├── jael3.dart
│ │ │ │ └── src/
│ │ │ │ ├── ast/
│ │ │ │ │ ├── array.dart
│ │ │ │ │ ├── ast.dart
│ │ │ │ │ ├── ast_node.dart
│ │ │ │ │ ├── attribute.dart
│ │ │ │ │ ├── binary.dart
│ │ │ │ │ ├── call.dart
│ │ │ │ │ ├── conditional.dart
│ │ │ │ │ ├── document.dart
│ │ │ │ │ ├── element.dart
│ │ │ │ │ ├── error.dart
│ │ │ │ │ ├── expression.dart
│ │ │ │ │ ├── identifier.dart
│ │ │ │ │ ├── interpolation.dart
│ │ │ │ │ ├── map.dart
│ │ │ │ │ ├── member.dart
│ │ │ │ │ ├── new.dart
│ │ │ │ │ ├── number.dart
│ │ │ │ │ ├── string.dart
│ │ │ │ │ └── token.dart
│ │ │ │ ├── formatter.dart
│ │ │ │ ├── renderer.dart
│ │ │ │ └── text/
│ │ │ │ ├── parselet/
│ │ │ │ │ ├── infix.dart
│ │ │ │ │ ├── parselet.dart
│ │ │ │ │ └── prefix.dart
│ │ │ │ ├── parser.dart
│ │ │ │ └── scanner.dart
│ │ │ ├── melos_jael3.iml
│ │ │ ├── pubspec.yaml
│ │ │ └── test/
│ │ │ ├── render/
│ │ │ │ ├── custom_element_test.dart
│ │ │ │ ├── dsx_test.dart
│ │ │ │ └── render_test.dart
│ │ │ └── text/
│ │ │ ├── common.dart
│ │ │ └── scan_test.dart
│ │ ├── jael.iml
│ │ ├── jael_language_server/
│ │ │ ├── LICENSE
│ │ │ ├── analysis_options.yaml
│ │ │ ├── bin/
│ │ │ │ └── jael3_language_server.dart
│ │ │ ├── lib/
│ │ │ │ ├── jael3_language_server.dart
│ │ │ │ └── src/
│ │ │ │ ├── analyzer.dart
│ │ │ │ ├── object.dart
│ │ │ │ ├── protocol/
│ │ │ │ │ └── language_server/
│ │ │ │ │ ├── interface.dart
│ │ │ │ │ ├── messages.dart
│ │ │ │ │ ├── messages.yaml
│ │ │ │ │ ├── server.dart
│ │ │ │ │ └── wireformat.dart
│ │ │ │ └── server.dart
│ │ │ ├── melos_jael3_language_server.iml
│ │ │ └── pubspec.yaml
│ │ ├── jael_preprocessor/
│ │ │ ├── AUTHORS.md
│ │ │ ├── CHANGELOG.md
│ │ │ ├── LICENSE
│ │ │ ├── README.md
│ │ │ ├── analysis_options.yaml
│ │ │ ├── example/
│ │ │ │ └── main.dart
│ │ │ ├── lib/
│ │ │ │ └── jael3_preprocessor.dart
│ │ │ ├── melos_jael3_preprocessor.iml
│ │ │ ├── pubspec.yaml
│ │ │ └── test/
│ │ │ ├── block_test.dart
│ │ │ └── include_test.dart
│ │ └── jael_web/
│ │ ├── CHANGELOG.md
│ │ ├── LICENSE
│ │ ├── README.md
│ │ ├── analysis_options.yaml
│ │ ├── build.yaml
│ │ ├── example/
│ │ │ ├── main.dart
│ │ │ ├── main.g.dart
│ │ │ ├── stateful.dart
│ │ │ ├── stateful.g.dart
│ │ │ ├── using_components.dart
│ │ │ └── using_components.g.dart
│ │ ├── lib/
│ │ │ ├── builder.dart
│ │ │ ├── elements.dart
│ │ │ ├── jael3_web.dart
│ │ │ └── src/
│ │ │ ├── builder/
│ │ │ │ ├── builder.dart
│ │ │ │ └── util.dart
│ │ │ ├── builder_node.dart
│ │ │ ├── component.dart
│ │ │ ├── dom_builder.dart
│ │ │ ├── dom_node.dart
│ │ │ ├── elements.dart
│ │ │ ├── fn.dart
│ │ │ └── jael_component.dart
│ │ ├── melos_jael3_web.iml
│ │ └── pubspec.yaml
│ ├── jinja/
│ │ ├── .gitignore
│ │ ├── AUTHORS.md
│ │ ├── CHANGELOG.md
│ │ ├── LICENSE
│ │ ├── README.md
│ │ ├── analysis_options.yaml
│ │ ├── example/
│ │ │ ├── main.dart
│ │ │ └── views/
│ │ │ ├── hello.html
│ │ │ ├── index.html
│ │ │ └── layout.html
│ │ ├── lib/
│ │ │ └── angel3_jinja.dart
│ │ ├── melos_angel3_jinja.iml
│ │ └── pubspec.yaml
│ ├── markdown/
│ │ ├── .gitignore
│ │ ├── AUTHORS.md
│ │ ├── CHANGELOG.md
│ │ ├── LICENSE
│ │ ├── README.md
│ │ ├── analysis_options.yaml
│ │ ├── example/
│ │ │ ├── main.dart
│ │ │ └── views/
│ │ │ └── hello.md
│ │ ├── lib/
│ │ │ └── angel3_markdown.dart
│ │ ├── melos_angel3_markdown.iml
│ │ └── pubspec.yaml
│ ├── oauth2/
│ │ ├── .gitignore
│ │ ├── AUTHORS.md
│ │ ├── CHANGELOG.md
│ │ ├── LICENSE
│ │ ├── README.md
│ │ ├── analysis_options.yaml
│ │ ├── example/
│ │ │ ├── example1.dart
│ │ │ └── main.dart
│ │ ├── lib/
│ │ │ ├── angel3_oauth2.dart
│ │ │ └── src/
│ │ │ ├── exception.dart
│ │ │ ├── pkce.dart
│ │ │ ├── response.dart
│ │ │ ├── server.dart
│ │ │ └── token_type.dart
│ │ ├── melos_angel3_oauth2.iml
│ │ ├── pubspec.yaml
│ │ └── test/
│ │ ├── auth_code_test.dart
│ │ ├── client_credentials_test.dart
│ │ ├── common.dart
│ │ ├── device_code_test.dart
│ │ ├── implicit_grant_test.dart
│ │ ├── password_test.dart
│ │ └── pkce_test.dart
│ ├── orm/
│ │ ├── LICENSE
│ │ ├── README.md
│ │ ├── angel_orm_mysql/
│ │ │ ├── AUTHORS.md
│ │ │ ├── CHANGELOG.md
│ │ │ ├── LICENSE
│ │ │ ├── README.md
│ │ │ ├── analysis_options.yaml
│ │ │ ├── example/
│ │ │ │ ├── example2.dart
│ │ │ │ ├── main.dart
│ │ │ │ └── main.g.dart
│ │ │ ├── lib/
│ │ │ │ ├── angel3_orm_mysql.dart
│ │ │ │ └── src/
│ │ │ │ ├── orm_mariadb.dart
│ │ │ │ └── orm_mysql.dart
│ │ │ ├── melos_angel3_orm_mysql.iml
│ │ │ ├── pubspec.yaml
│ │ │ └── test/
│ │ │ ├── belongs_to_test.dart
│ │ │ ├── common.dart
│ │ │ ├── custom_expr_test.dart
│ │ │ ├── edge_case_test.dart
│ │ │ ├── enum_and_nested_test.dart
│ │ │ ├── enum_test.dart
│ │ │ ├── has_many_test.dart
│ │ │ ├── has_map_test.dart
│ │ │ ├── has_one_test.dart
│ │ │ ├── join_test.dart
│ │ │ ├── many_to_many_test.dart
│ │ │ ├── models/
│ │ │ │ ├── asset.dart
│ │ │ │ ├── asset.g.dart
│ │ │ │ ├── bike.dart
│ │ │ │ ├── bike.g.dart
│ │ │ │ ├── boat.d.ts
│ │ │ │ ├── boat.dart
│ │ │ │ ├── boat.g.dart
│ │ │ │ ├── book.dart
│ │ │ │ ├── book.g.dart
│ │ │ │ ├── car.dart
│ │ │ │ ├── car.g.dart
│ │ │ │ ├── custom_expr.dart
│ │ │ │ ├── custom_expr.g.dart
│ │ │ │ ├── email_indexed.dart
│ │ │ │ ├── email_indexed.g.dart
│ │ │ │ ├── fortune.dart
│ │ │ │ ├── fortune.g.dart
│ │ │ │ ├── has_car.dart
│ │ │ │ ├── has_car.g.dart
│ │ │ │ ├── has_map.dart
│ │ │ │ ├── has_map.g.dart
│ │ │ │ ├── leg.dart
│ │ │ │ ├── leg.g.dart
│ │ │ │ ├── order.dart
│ │ │ │ ├── order.g.dart
│ │ │ │ ├── person.dart
│ │ │ │ ├── person.g.dart
│ │ │ │ ├── person_order.dart
│ │ │ │ ├── person_order.g.dart
│ │ │ │ ├── quotation.dart
│ │ │ │ ├── quotation.g.dart
│ │ │ │ ├── todo.dart
│ │ │ │ ├── todo.g.dart
│ │ │ │ ├── tree.dart
│ │ │ │ ├── tree.g.dart
│ │ │ │ ├── unorthodox.dart
│ │ │ │ ├── unorthodox.g.dart
│ │ │ │ ├── user.dart
│ │ │ │ ├── user.g.dart
│ │ │ │ ├── world.dart
│ │ │ │ └── world.g.dart
│ │ │ ├── performance_test.dart
│ │ │ ├── standalone_test.dart
│ │ │ └── util.dart
│ │ ├── angel_orm_service/
│ │ │ ├── AUTHORS.md
│ │ │ ├── CHANGELOG.md
│ │ │ ├── LICENSE
│ │ │ ├── README.md
│ │ │ ├── analysis_options.yaml
│ │ │ ├── example/
│ │ │ │ ├── connect.dart
│ │ │ │ ├── main.dart
│ │ │ │ ├── migrate.dart
│ │ │ │ ├── todo.dart
│ │ │ │ └── todo.g.dart
│ │ │ ├── lib/
│ │ │ │ └── angel3_orm_service.dart
│ │ │ ├── melos_angel3_orm_service.iml
│ │ │ ├── pubspec.yaml
│ │ │ └── test/
│ │ │ ├── all_test.dart
│ │ │ ├── pokemon.dart
│ │ │ └── pokemon.g.dart
│ │ └── angel_orm_test/
│ │ └── README.md
│ ├── paginate/
│ │ ├── .analysis-options
│ │ ├── .gitignore
│ │ ├── AUTHORS.md
│ │ ├── CHANGELOG.md
│ │ ├── LICENSE
│ │ ├── README.md
│ │ ├── analysis_options.yaml
│ │ ├── example/
│ │ │ └── main.dart
│ │ ├── lib/
│ │ │ └── angel3_paginate.dart
│ │ ├── melos_angel3_paginate.iml
│ │ ├── pubspec.yaml
│ │ └── test/
│ │ ├── all_test.dart
│ │ ├── bounds_test.dart
│ │ └── paginate_test.dart
│ ├── production/
│ │ ├── .pubignore
│ │ ├── AUTHORS.md
│ │ ├── CHANGELOG.md
│ │ ├── LICENSE
│ │ ├── README.md
│ │ ├── analysis_options.yaml
│ │ ├── example/
│ │ │ └── main.dart
│ │ ├── lib/
│ │ │ ├── angel3_production.dart
│ │ │ └── src/
│ │ │ ├── instance_info.dart
│ │ │ ├── options.dart
│ │ │ └── runner.dart
│ │ ├── melos_angel3_production.iml
│ │ └── pubspec.yaml
│ ├── redis/
│ │ ├── .gitignore
│ │ ├── AUTHORS.md
│ │ ├── CHANGELOG.md
│ │ ├── LICENSE
│ │ ├── README.md
│ │ ├── analysis_options.yaml
│ │ ├── example/
│ │ │ └── main.dart
│ │ ├── lib/
│ │ │ ├── angel3_redis.dart
│ │ │ └── src/
│ │ │ └── redis_service.dart
│ │ ├── melos_angel3_redis.iml
│ │ ├── pubspec.yaml
│ │ └── test/
│ │ └── all_test.dart
│ ├── sembast/
│ │ ├── .gitignore
│ │ ├── AUTHORS.md
│ │ ├── CHANGELOG.md
│ │ ├── LICENSE
│ │ ├── README.md
│ │ ├── analysis_options.yaml
│ │ ├── example/
│ │ │ └── main.dart
│ │ ├── lib/
│ │ │ └── angel3_sembast.dart
│ │ ├── melos_angel3_sembast.iml
│ │ ├── pubspec.yaml
│ │ └── test/
│ │ └── all_test.dart
│ ├── seo/
│ │ ├── .gitignore
│ │ ├── AUTHORS.md
│ │ ├── CHANGELOG.md
│ │ ├── LICENSE
│ │ ├── README.md
│ │ ├── analysis_options.yaml
│ │ ├── example/
│ │ │ ├── main.dart
│ │ │ └── web/
│ │ │ ├── index.html
│ │ │ ├── not-inlined.css
│ │ │ ├── not-inlined.js
│ │ │ ├── site.css
│ │ │ └── site.js
│ │ ├── lib/
│ │ │ ├── angel3_seo.dart
│ │ │ └── src/
│ │ │ └── inline_assets.dart
│ │ ├── melos_angel3_seo.iml
│ │ ├── pubspec.yaml
│ │ └── test/
│ │ └── inline_assets_test.dart
│ ├── shelf/
│ │ ├── AUTHORS.md
│ │ ├── CHANGELOG.md
│ │ ├── LICENSE
│ │ ├── README.md
│ │ ├── analysis_options.yaml
│ │ ├── example/
│ │ │ ├── angel_in_shelf.dart
│ │ │ └── main.dart
│ │ ├── lib/
│ │ │ ├── angel3_shelf.dart
│ │ │ └── src/
│ │ │ ├── convert.dart
│ │ │ ├── embed_shelf.dart
│ │ │ ├── shelf_driver.dart
│ │ │ ├── shelf_request.dart
│ │ │ └── shelf_response.dart
│ │ ├── melos_angel3_shelf.iml
│ │ ├── pubspec.yaml
│ │ └── test/
│ │ ├── all.dart
│ │ └── embed_shelf_test.dart
│ ├── static/
│ │ ├── AUTHORS.md
│ │ ├── CHANGELOG.md
│ │ ├── LICENSE
│ │ ├── README.md
│ │ ├── analysis_options.yaml
│ │ ├── example/
│ │ │ └── main.dart
│ │ ├── lib/
│ │ │ ├── angel3_static.dart
│ │ │ └── src/
│ │ │ ├── cache.dart
│ │ │ └── virtual_directory.dart
│ │ ├── melos_angel3_static.iml
│ │ ├── pubspec.yaml
│ │ └── test/
│ │ ├── HELLO.md
│ │ ├── all_test.dart
│ │ ├── cache_sample.dart
│ │ ├── cache_test.dart
│ │ ├── foo.mustache
│ │ ├── index.txt
│ │ ├── issue41_test.dart
│ │ ├── nested/
│ │ │ └── index.txt
│ │ ├── push_state_test.dart
│ │ ├── sample.txt
│ │ └── web/
│ │ └── index.html
│ ├── sync/
│ │ ├── AUTHORS.md
│ │ ├── CHANGELOG.md
│ │ ├── LICENSE
│ │ ├── README.md
│ │ ├── analysis_options.yaml
│ │ ├── example/
│ │ │ └── main.dart
│ │ ├── lib/
│ │ │ └── angel3_sync.dart
│ │ ├── melos_angel3_sync.iml
│ │ ├── pubspec.yaml
│ │ └── test/
│ │ └── all_test.dart
│ └── user_agent/
│ └── angel_user_agent/
│ ├── AUTHORS.md
│ ├── CHANGELOG.md
│ ├── LICENSE
│ ├── README.md
│ ├── analysis_options.yaml
│ ├── example/
│ │ └── example.dart
│ ├── lib/
│ │ └── angel3_user_agent.dart
│ ├── melos_angel3_user_agent.iml
│ └── pubspec.yaml
└── pubspec.yaml
================================================
FILE CONTENTS
================================================
================================================
FILE: .devcontainer/devcontainer.json
================================================
{
"image": "dart:3.4",
"forwardPorts": [3000,5000],
"features": {
}
}
================================================
FILE: .github/FUNDING.yml
================================================
# These are supported funding model platforms
github: [dukefirehawk]
custom: ["https://paypal.me/dukefirehawk?country.x=MY&locale.x=en_US"]
================================================
FILE: .github/workflows/dart.yml
================================================
# This workflow uses actions that are not certified by GitHub.
# They are provided by a third-party and are governed by
# separate terms of service, privacy policy, and support
# documentation.
name: Angel3 CI
on:
push:
branches: [ master ]
pull_request:
branches: [ master ]
jobs:
job_001:
name: Validate framework package
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- uses: dart-lang/setup-dart@v1
with:
sdk: "3.11.0"
- id: angel3_container_upgrade
name: angel3_container; Upgrade depedencies
working-directory: packages/container/angel_container
run: dart pub upgrade
- name: angel3_container; Verify formatting
working-directory: packages/container/angel_container
run: dart format --output=none --set-exit-if-changed .
# Consider passing '--fatal-infos' for slightly stricter analysis.
- name: angel3_container; Analyze source code
working-directory: packages/container/angel_container
run: dart analyze
- name: angel3_container; Run tests
working-directory: packages/container/angel_container
run: dart test
- id: angel3_framework_upgrade
name: angel3_framework; Upgrade depedencies
working-directory: packages/framework
run: dart pub upgrade
- name: angel3_framework; Verify formatting
working-directory: packages/framework
run: dart format --output=none --set-exit-if-changed .
# Consider passing '--fatal-infos' for slightly stricter analysis.
- name: angel3_framework; Analyze source code
working-directory: packages/framework
run: dart analyze
- name: angel3_framework; Run tests
working-directory: packages/framework
run: dart test
job_002:
name: Validate ORM packages
runs-on: ubuntu-latest
# Service containers to run with `runner-job`
services:
# Label used to access the service container
postgres:
# Docker Hub image
image: postgres
# Provide the password for postgres
env:
POSTGRES_PASSWORD: postgres
# Set health checks to wait until postgres has started
options: >-
--health-cmd pg_isready
--health-interval 10s
--health-timeout 5s
--health-retries 5
ports:
# Maps tcp port 5432 on service container to the host
- 5432:5432
steps:
- uses: actions/checkout@v2
- uses: dart-lang/setup-dart@v1
with:
sdk: "3.11.0"
# Angel3 ORM
- id: angel3_orm_upgrade
name: angel3_orm; Upgrade depedencies
working-directory: packages/orm/angel_orm
run: dart pub upgrade
- name: angel3_orm; Verify formatting
working-directory: packages/orm/angel_orm
run: dart format --output=none --set-exit-if-changed .
# Consider passing '--fatal-infos' for slightly stricter analysis.
- name: angel3_orm; Analyze source code
working-directory: packages/orm/angel_orm
run: dart analyze
# Angel3 ORM Generator
- id: angel3_orm_generator_upgrade
name: angel3_orm_generator; Upgrade depedencies
working-directory: packages/orm/angel_orm_generator
run: dart pub upgrade
- name: angel3_orm_generator; Verify formatting
working-directory: packages/orm/angel_orm_generator
run: dart format --output=none --set-exit-if-changed .
# Consider passing '--fatal-infos' for slightly stricter analysis.
- name: angel3_orm_generator; Analyze source code
working-directory: packages/orm/angel_orm_generator
run: dart analyze
# Angel3 ORM Test
#- id: angel3_orm_test_upgrade
# name: angel3_orm_test; Upgrade depedencies
# working-directory: packages/orm/angel_orm_test
# run: dart pub upgrade
#- name: angel3_orm_test; Run orm code generator
# working-directory: packages/orm/angel_orm_test
# run: dart run build_runner build --delete-conflicting-outputs
#- name: angel3_orm_test; Verify formatting
# working-directory: packages/orm/angel_orm_test
# run: dart format --output=none --set-exit-if-changed .
# Consider passing '--fatal-infos' for slightly stricter analysis.
#- name: angel3_orm_test; Analyze source code
# working-directory: packages/orm/angel_orm_test
# run: dart analyze
# Angel3 ORM PostgreSQL
- id: angel3_orm_postgres_upgrade
name: angel3_orm_postgres; Upgrade depedencies
working-directory: packages/orm/angel_orm_postgres
run: dart pub upgrade
- name: angel3_orm_postgres; Verify formatting
working-directory: packages/orm/angel_orm_postgres
run: dart format --output=none --set-exit-if-changed .
# Consider passing '--fatal-infos' for slightly stricter analysis.
- name: angel3_orm_postgres; Analyze source code
working-directory: packages/orm/angel_orm_postgres
run: dart analyze
- name: angel3_orm_postgres; Run tests
working-directory: packages/orm/angel_orm_postgres
run: dart test
env:
# The hostname used to communicate with the PostgreSQL service container
POSTGRES_HOST: localhost
# The default PostgreSQL port
POSTGRES_PORT: 5432
POSTGRES_PASSWORD: postgres
POSTGRES_USERNAME: postgres
POSTGRES_DB: postgres
================================================
FILE: .gitignore
================================================
# Created by .ignore support plugin (hsz.mobi)
### Dart template
# See https://www.dartlang.org/tools/private-files.html
# source_gen
.dart_tool
# Files and directories created by pub
.buildlog
.packages
.project
.pub/
.scripts-bin/
.metals/
build/
#**/packages/
# Files created by dart2js
# (Most Dart developers will use pub build to compile Dart, use/modify these
# rules if you intend to use dart2js directly
# Convention is to use extension '.dart.js' for Dart compiled to Javascript to
# differentiate from explicit Javascript files)
*.dart.js
*.part.js
*.js.deps
*.js.map
*.info.json
# Directory created by dartdoc
doc/api/
# Don't commit pubspec lock file
# (Library packages only! Remove pattern if developing an application package)
pubspec.lock
### JetBrains template
# Covers JetBrains IDEs: IntelliJ, RubyMine, PhpStorm, AppCode, PyCharm, CLion, Android Studio and Webstorm
# Reference: https://intellij-support.jetbrains.com/hc/en-us/articles/206544839
# User-specific stuff:
## VsCode
.vscode/
!.vscode/settings.json
!.vscode/tasks.json
!.vscode/launch.json
!.vscode/extensions.json
# IntelliJ
.idea/
/out/
.idea_modules/
# Gradle:
.idea/gradle.xml
.idea/libraries
## File-based project format:
*.iws
## Plugin-specific files:
# JIRA plugin
atlassian-ide-plugin.xml
# Crashlytics plugin (for Android Studio and IntelliJ)
com_crashlytics_export_strings.xml
crashlytics.properties
crashlytics-build.properties
fabric.properties
# Others
logs/
.DS_Store
server_log.txt
backup/
================================================
FILE: .pubignore
================================================
.DS_Store
tasks.json
================================================
FILE: .vscode/settings.json
================================================
{
"files.watcherExclude": {
"**/target": true
},
"[javascript]": {
"editor.defaultFormatter": "esbenp.prettier-vscode",
"editor.formatOnSave": true
},
"beautify.language": {
"html": ["html"],
"css": [],
"js": []
},
"editor.codeActionsOnSave": {
"source.fixAll.markdownlint": "explicit"
},
"cmake.configureOnOpen": false
}
================================================
FILE: AI_CONTEXT.md
================================================
# AI Context for Angel3
## Project Overview
**Angel3** is a production-ready, full-stack backend framework in Dart. It originated as a fork of the original Angel framework to support Dart SDK null-safety and later versions. It aims to streamline development by providing many common backend features out-of-the-box and enables developers to build both frontends and backends in Dart. It is highly modular, designed as a collection of plugins.
## Repository Structure
This repository is a **monorepo** managed using [Melos](https://pub.dev/packages/melos).
- **Packages**: Located in the `packages/` directory. Each sub-directory represents an individual plugin or module that can be published to `pub.dev` under the `angel3_` prefix.
## Core Architecture and Packages
The framework is divided into several categories of packages:
1. **Core Framework & Request Handling**:
- `framework`: Base HTTP server, contexts, DI container, and middleware pipelines.
- `route`: URL matching and route parameters.
- `container`: Dependency Injection (DI) system.
- `configuration`: Utilities for loading config files (YAML, JSON, .env).
2. **Data Modeling & Persistence (ORM)**:
- `model`: Base model abstractions for data entities.
- `serialize`: JSON serialization and deserialization using code generation.
- `orm`: Main ORM library, code generator, and SQL dialects (MySQL, PostgreSQL)
- `mongo`, `rethinkdb`, `sembast`: Specialized NoSQL database drivers.
3. **Authentication & Security**:
- `auth`: Core authentication abstractions and strategies.
- `auth_oauth2`, `oauth2`: OAuth2 authentication flows.
- `security`: Security middleware (rate limiting, standard headers).
- `cors`: Cross-Origin Resource Sharing handling.
4. **Frontend & Template Rendering**:
- `jael`: Jael template engine built specifically for Angel.
- `mustache`, `jinja`, `markdown`: Template integrations.
- `html`, `seo`: Utilities for HTML responses and search engine optimization.
5. **Utilities**:
- `websocket`: Real-time bidirectional communication.
- `client`: Client-side library to interface directly with Angel3 backends.
- `cache`, `redis`: Caching interfaces.
- `hot`, `production`: Hot-reloading tooling and production load management.
- `test`, `mock_request`: Testing utilities.
## Technology Stack & Requirements
- **Language**: Dart
- **Minimum SDK Version**: `>=3.11.0 <4.0.0`
- **Monorepo Management**: `melos` (`^7.3.0`)
## Development Workflow
- **Master Branch**: Stable production branch. Use this branch for all standard PR submissions.
- **feature/v9 Branch**: Early development for major refactoring targeting the `9.0.0` release. Contains breaking changes (e.g., restructure and rename packages).
- **Tooling**: Uses `melos` for managing dependencies and executing tasks across the monorepo (e.g., `melos exec "dart pub upgrade"`).
## Key Technical Debt and Future Roadmap
- Removal of dependency on the `dart:mirrors` library.
- Performance optimizations to address long-overdue issues.
- Integration of OpenAPI 3 support.
- Expanding ORM support for SQLite, multi-tenant architectures, and SQL schema reverse engineering.
- Out-of-the-box OIDC and SAML2 support.
================================================
FILE: AUTHORS.md
================================================
Primary Authors
===============
* __[Thomas Hii](dukefirehawk.apps@gmail.com)__
Thomas is the current maintainer of the code base. He has refactored and migrated the
code base to support NNBD.
* __[Tobe O](thosakwe@gmail.com)__
Tobe has written much of the original code prior to NNBD migration. He has moved on and
is no longer involved with the project.
================================================
FILE: CHANGELOG.md
================================================
# Change Log
All notable changes to this project will be documented in this file.
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
## 8.7.0
- Require Dart >= 3.11.0
## 8.6.0
- Require Dart >= 3.8.0
- Updated `lints` to 6.0.0
- Updated dependencies to the latest release
## 8.5.0
- Require Dart >= 3.6
- Updated `lints` to 5.0.0
- Updated dependencies to the latest release
## 8.0.0
- Require Dart >= 3.0
- Updated: angel3_http_exception
- Updated: angel3_route
- Updated: angel3_model
- Updated: angel3_container
- Updated: angel3_container_generator
- Updated: angel3_mock_request
- Updated: angel3_framework
- Updated: angel3_auth
- Updated: angel3_configuration
- Updated: angel3_validate
- Updated: angel3_client
- Updated: angel3_websocket
- Updated: angel3_test
- Updated: jael3
- Updated: jael3_preprocessor
- Updated: jael3_language_server
- Updated: angel3_jael
- Updated: jael3_web
- Updated: angel3_production
- Updated: angel3_hot
- Updated: angel3_static
- Updated: angel3_serialize
- Updated: angel3_serialize_generator
- Updated: angel3_orm
- Updated: angel3_orm_generator
- Updated: angel3_migration
- Updated: angel3_migration_runner
- Updated: angel3_orm_postgresql
- Updated: angel3_orm_mysql
- Updated: angel3_orm_service
- Updated: angel3_orm_test
- Updated: angel3_cache
- Updated: angel3_cors
- Updated: angel3_mustache
- Updated: angel3_proxy
- Updated: angel3_redis
- Updated: angel3_jinja
- Updated: angel3_security
- Updated: angel3_user_agent
- Updated: angel3_seo
- Updated: angel3_sync
- Updated: angel3_sembast
- Updated: angel3_markdown
- Updated: angel3_auth_oauth2
- Updated: angel3_oauth2 (5 failed test cases)
- Updated: angel3_auth_twitter (issue: oauth1 don't support http 1.0.0)
- Updated: angel3_mongo (issue: mongo_dart don't support http 1.0.0)
- Updated: angel3_shelf (2 failed test cases)
## 7.0.0
- Require Dart >= 2.17
## 6.0.0
- Require Dart >= 2.16
- Added ORM MySQL
## 5.0.0
- Skipped version
## 4.1.x
- Refactored the framework internal to use [Belatuk Common Utilities](<https://github.com/dart-backend/belatuk-common-utilities>)
- Updated to use `lints` linter
- Updated [website](<https://angel3-framework.web.app/>)
- Updated [examples](<https://github.com/dart-backend/belatuk-examples>)
- Fixed ORM code generator
- Fixed Serializer code generator
- Fixed graphQL code generator
- Fixed CLI
- Fixed failed test cases
## 4.0.0 (NNBD)
- Published all packages with `angel3_` prefix
- Changed Dart SDK requirements for all packages to ">=2.12.0 <3.0.0" to support NNBD.
- Migrated pretty_logging to 3.0.0 (0/0 tests passed)
- Migrated angel_http_exception to 3.0.0 (0/0 tests passed)
- Moved angel_cli to [CLI Repository](<https://github.com/dukefirehawk/cli>) (Not migrated yet)
- Added code_buffer and migrated to 2.0.0 (16/16 tests passed)
- Added combinator and migrated to 2.0.0 (16/16 tests passed)
- Migrated angel_route to 5.0.0 (35/35 tests passed)
- Migrated angel_model to 3.0.0 (0/0 tests passed)
- Migrated angel_container to 3.0.0 (55/55 tests passed)
- Added merge_map and migrated to 2.0.0 (6/6 tests passed)
- Added mock_request and migrated to 2.0.0 (5/5 tests)
- Migrated angel_framework to 4.0.0 (149/150 tests passed)
- Migrated angel_auth to 4.0.0 (31/31 tests passed)
- Migrated angel_configuration to 4.0.0 (8/8 testspassed)
- Migrated angel_validate to 4.0.0 (7/7 tests passed)
- Migrated json_god to 4.0.0 (13/13 tests passed)
- Migrated angel_client to 4.0.0 (13/13 tests passed)
- Migrated angel_websocket to 4.0.0 (3/3 tests passed)
- Migrated angel_test to 4.0.0 (1/1 test passed)
- Added symbol_table and migrated to 2.0.0 (16/16 tests passed)
- Migrated jael to 4.0.0 (20/20 tests passed)
- Migrated jael_preprocessor to 3.0.0 (5/5 tests passed)
- Migrated angel_jael to 4.0.0 (1/1 test passed)
- Migrated pub_sub to 4.0.0 (16/16 tests passed)
- Migrated production to 3.0.0 (0/0 tests passed)
- Added html_builder and migrated to 2.0.0 (1/1 tests passed)
- Migrated hot to 4.0.0 (0/0 tests passed)
- Added range_header and migrated to 3.0.0 (12/12 tests passed)
- Migrated angel_static to 4.0.0 (12/12 test passed)
- Created basic-sdk-2.12.x_nnbd template (1/1 test passed) <= Milestone 1
- Migrated angel_serialize to 4.0.0 (0/0 test passed)
- Migrated angel_serialize_generator to 4.0.0 (33/33 tests passed)
- Migrated angel_orm to 3.0.0 (0/0 tests passed)
- Migrated angel_migration to 3.0.0 (0/0 tests passed)
- Added inflection2 and migrated to 1.0.0 (28/32 tests passed)
- Migrated angel_orm_generator to 4.0.0 (0/0 tests passed)
- Migrated angel_migration_runner to 3.0.0 (0/0 tests passed)
- Migrated angel_orm_test to 3.0.0 (0/0 tests passed)
- Migrated angel_orm_postgres to 3.0.0 (51/54 tests passed)
- Create orm-sdk-2.12.x boilerplate (in progress) <= Milestone 2
- Migrated angel_auth_oauth2 to 4.0.0 (0/0 tests passed)
- Migrated angel_auth_cache to 4.0.0 (7/7 tests passed)
- Migrated angel_auth_cors to 4.0.0 (15/15 tests passed)
- Migrated angel_oauth2 to 4.0.0 (17/25 tests passed)
- Migrated angel_proxy to 4.0.0 (6/7 tests passed)
- Migrated angel_file_service to 4.0.0 (6/6 tests passed)
- Migrated graphql_parser to 2.0.0 (55/55 tests passed)
- Migrated graphql_schema to 2.0.0 (34/35 tests passed)
- Migrated graphql_server to 2.0.0 (9/10 tests passed)
- Migrated graphql_generator to 2.0.0 (0/0 tests passed)
- Migrated data_loader to 2.0.0 (7/7 tests passed)
- Migrated angel_graphql to 2.0.0 (0/0 tests passed)
- Migrated angel_mongo to 3.0.0 (0/0 tests passed)
- Migrated angel_orm_mysql to 2.0.0 (0/0 tests passed)
- Migrated angel_orm_service to 2.0.0 (0/0 tests passed)
- Migrated body_parser to 2.0.0 (11/11 tests passed)
- Migrated angel_markdown to 3.0.0 (0/0 tests passed)
- Migrated angel_jinja to 2.0.0 (0/0 tests passed)
- Migrated angel_html to 3.0.0 (1/3 tests passed)
- Migrated angel_mustache to 2.0.0 (3/3 tests passed)
- Migrated angel_paginate to 3.0.0 (18/18 tests passed)
- Migrated angel_poll to 2.0.0 (0/5 tests passed)
- Migrated angel_redis to 2.0.0 (0/8 tests passed)
- Migrated angel_seeder to 2.0.0 (0/0 tests passed)
- Migrated angel_relations to 2.0.0 (0/0 tests passed)
- Migrated angel_rethink to 2.0.0 (0/0 tests passed)
- Migrated angel_security to 2.0.0 (0/1 tests passed)
- Migrated angel_sembast to 2.0.0 (10/10 tests passed)
- Migrated angel_sync to 3.0.0 (0/1 tests passed)
- Migrated angel_typed_service to 3.0.0 (4/4 tests passed)
- Migrated angel_shelf to 2.0.0 (0/1 tests passed)
- Migrated user_agent to 2.0.0 (0/0 tests passed)
- Migrated angel_user_agent to 2.0.0 (0/0 tests passed)
## 3.0.0 (Non NNBD)
- Changed Dart SDK requirements for all packages to ">=2.10.0 <3.0.0"
- Updated pretty_logging to 2.0.0 (0/0 tests passed)
- Updated angel_http_exception to 2.0.0 (0/0 tests passed)
- Updated angel_cli to 3.0.0. (Rename not working)
- Updated angel_route to 4.0.0 (35/35 tests passed)
- Updated angel_model to 2.0.0 (0/0 tests passed)
- Updated angel_container to 2.0.0 (55/55 tests passed)
- Updated angel_framework to 3.0.0 (150/151 tests passed)
- Updated angel_auth to 3.0.0 (28/32 tests passed)
- Updated angel_configuration to 3.0.0 (6/8 tests passed)
- Updated angel_validate to 3.0.0 (7/7 tests passed)
- Added and updated json_god to 3.0.0 (7/7 tests passed)
- Updated angel_client to 3.0.0 (10/13 tests passed)
- Updated angel_websocket to 3.0.0 (3/3 tests passed)
- Updated jael to 3.0.0 (20/20 tests passed)
- Updated jael_preprocessor to 3.0.0 (5/5 tests passed)
- Updated test to 3.0.0 (1/1 tests passed)
- Updated angel_jael to 3.0.0 (1/1 tests passed, Issue with 2 dependencies)
- Added pub_sub and updated to 3.0.0 (16/16 tests passed)
- Updated production to 2.0.0 (0/0 tests passed)
- Updated hot to 3.0.0 (0/0 tests passed)
- Updated static to 3.0.0 (12/12 tests passed)
- Update basic-sdk-2.12.x boilerplate (1/1 tests passed)
- Updated angel_serialize to 3.0.0 (0/0 tests passed)
- Updated angel_serialize_generator to 3.0.0 (33/33 tests passed)
- Updated angel_orm to 3.0.0 (0/0 tests passed)
- Updated angel_migration to 3.0.0 (0/0 tests passed)
- Updated angel_orm_generator to 3.0.0 (0/0 tests passed, use a fork of postgres)
- Updated angel_migration_runner to 3.0.0 (0/0 tests passed)
- Updated angel_orm_test to 1.0.0 (0/0 tests passed)
- Updated angel_orm_postgres to 2.0.0 (52/54 tests passed)
- Update orm-sdk-2.12.x boilerplate
- Updated angel_auth_oauth2 to 3.0.0 (0/0 tests passed)
- Updated angel_auth_cache to 3.0.0 (0/7 tests passed)
- Updated angel_auth_cors to 3.0.0 (15/15 tests passed)
- Updated angel_oauth2 to 3.0.0 (17/25 tests passed)
- Updated angel_container_generator to 2.0.0
- Updated angel_file_service to 3.0.0
- Updated angel_eventsource to 2.0.0 (use a fork of eventsource)
- Updated angel_auth_twitter to 3.0.0 (use a fork of twitter and oauth)
## 2.2.0
- Changed Dart SDK requirements for all packages to ">=2.10.0 <2.12.0"
- Upgraded 3rd party libraries to the latest version prior to dart 2.12
- Fixed broken code due to 3rd party libraries update
- Revert packages/validate from version 3.0 to version 2.2
## 2.1.x and below
- Refer to the orginal repo before the fork
================================================
FILE: CONTRIBUTING.md
================================================
# Contribution
Any help from the open-source community is always welcome and needed:
1. Found an issue?
- Please [fill a bug report][tracker] with error message and steps to reproduce it.
2. Wish a feature?
- Open a feature request with use cases.
3. Are you using and liking the project?
- Create an article about your use case
- Do a post on your likes and dislikes
- Make a donation.
4. Are you a developer?
- Fix a bug and send a [pull request][pull_request]
- Implement a new feature
- Improve the Unit Tests
- Improve the [User Guide][doc] and send a [document pull request][doc_repo]
5. Have you already helped in any way?
- **Many thanks to the contributors and everybody that uses this project!**
[tracker]: https://github.com/dart-backend/angel/issues
[pull_request]: https://github.com/dart-backend/angel/pulls
[doc]: https://angel3-docs.dukefirehawk.com
[doc_repo]: https://github.com/dart-backend/angel3-guide/pulls
================================================
FILE: LICENSE
================================================
BSD 3-Clause License
Copyright (c) 2024, dukefirehawk.com
All rights reserved.
Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions are met:
1. Redistributions of source code must retain the above copyright notice, this
list of conditions and the following disclaimer.
2. Redistributions in binary form must reproduce the above copyright notice,
this list of conditions and the following disclaimer in the documentation
and/or other materials provided with the distribution.
3. Neither the name of the copyright holder nor the names of its
contributors may be used to endorse or promote products derived from
this software without specific prior written permission.
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
================================================
FILE: README.md
================================================
# Angel3 Framework
[](https://github.com/dart-backend/angel)

[](https://dart.dev/null-safety)
[](https://discord.gg/3X6bxTUdCM)
[](https://github.com/dart-backend/angel/LICENSE)
[](https://github.com/invertase/melos)
**A production-ready dart backend framework.**
-----
## About
Angel3 originated from a fork of the archived Angel framework in support of Dart SDK 2.12.x or later. It is a full-stack backend framework in Dart that aims to streamline development by providing many common features out-of-the-box in a consistent manner. The codebase has been completely migrated and refactored to support null safety. One of the main goal is to enable developers to build both frontend and backend in dart language. Angel3 is designed as a collection of plugins that enable developers to pick and choose the parts needed for their projects. A series of starter templates are also provided for quick start and trial run with Angel3. Visit our [website](<https://angel3-framework.web.app/>) to learn more.
The available features in Angel3 includes:
* OAuth2 Authentication
* WebSocket
* HTTP/2
* HTTP Streaming
* GraphQL
* Markdown, Mustache, Jinja and JAEL as Server-Side HTML Rendering
* ORM support for PostgreSQL and MySQL
* MongoDB, Sembast and RethinkDB as storage
* Redis as cache
## The Core Framework
The `packages` directory contains specialized sub-packages that act as individual plugins or modules. Depending on the needs of a project, a developer can plug in specific packages.
They can broadly be categorized as follows:
1. Core Framework & Request Handling
* framework: The foundational package (angel3_framework). It provides the base HTTP server, request/response contexts, dependency injection container, and middleware pipelines.
* route: The routing engine handling URL matching and route parameters.
* container: Dependency Injection (DI) system for resolving services.
* configuration: Utilities for loading configuration files (YAML, JSON, .env).
2. Data Modeling & Persistence (ORM)
The framework provides an extensive ORM (angel3_orm) ecosystem with generators and database drivers:
* orm: Houses the main ORM library, code generator (angel_orm_generator), and SQL dialects for MySQL and PostgreSQL.
* model: Base model abstractions for data entities.
* serialize: Libraries to serialize/deserialize data to and from JSON using code generation (angel_serialize_generator).
* mongo, rethinkdb, sembast: Specialized drivers for interacting with MongoDB, RethinkDB, and Sembast (a NoSQL local database).
3. Authentication & Security
* auth: Core authentication abstractions and strategies (local, token-based).
* auth_oauth2 & oauth2: Out-of-the-box support for OAuth2 authentication flows.
* security: Security middleware (rate limiting, standard headers, etc.).
* cors: Middleware to handle Cross-Origin Resource Sharing effortlessly.
4. Frontend & Template Rendering
Support for processing and returning HTML views to the client:
* jael: The Jael template engine specifically built for Angel, capable of HTML manipulation. It is split into language servers, preprocessors, and web renderers.
* mustache, jinja, markdown: Wrappers/integrations for rendering Mustache templates, Jinja templates, or parsing Markdown into HTML.
* html & seo: Utilities for building out HTML responses and optimizing for search engines.
5. Additional Utilities and APIs
* websocket: Integration for real-time bidirectional communication.
* client: A client-side library designed to interface seamlessly with Angel3 backends directly from Dart/Flutter.
* cache & redis: Caching interfaces with Redis integration to improve response times.
* hot & production: Tooling for hot-reloading the server during development, and managing clustering/multi-threading under production loads.
* test & mock_request: Testing utilities for mocking HTTP requests without spinning up a real server.
* file_service & static: For serving static assets (images, CSS, JS) efficiently.
## Important Notes
Angel3 packages are published under `angel3_` prefix on pub.dev. These packages have passed all of their respective test suites before going live. The development work are currently focused on:
* Keeping the packages with `angel3_` prefix in sync with Dart SDK releases
* Remove and replace deprecated classes and methods while keeping it backward compatible
* Refactor the code to use new language features
* Fix and resolve reported issues
* Performance optimization
* Improve on existing features, unit test, user guide and examples
* Add new features
## Status
### Latest Release Notes (Version: 8.6.0)
* Updated `angel3_` packages to require dart >= 3.11.0
* Updated to `melos:7.3`
* Updated code generator to use `analyzer` 8.4.x
* Removed `angel3_orm_test`
### Latest development work
Branch: `feature/v9`
* Dart version : 3.11.0 or later.
* Status : Early Development
* Notes : Major refactoring on going with breaking changes targeting `9.0.0` release
* Restructre and rename packages
* Removal of dependency on `Mirror`
* Fix long overdued performance issues
Branch: `master`
* Dart version : 3.11.0 or later.
* Publish : Refer to all packages with`angel3_` prefix on [pub.dev](https://pub.dev/publishers/dukefirehawk.com/packages).
* Status : Production
* Notes : Use this branch for all PR submission
### Archieved releases
Starting with release 8.5.0. All subsequence releases published to `pub.dev` will be available on a release branch. The branch name will adopt the following naming conventions, `release/<version>`. For example: `release/8.5` branch is for release version 8.5 on `pub.dev`.
### What is in the pipeline?
* Remove the use of Mirror
* Performance optimsation
* Out of the box OIDC and SAML2 support
* Integrated Open API 3 support
* Expand ORM to support
* SQLite
* Multi tenant
* Reverse Engineering
## Installation and Setup
### (Option 1) Create a new project by cloning from boilerplate templates
1. Download and install [Dart](https://dart.dev/get-dart). Minimum 3.11.0.
2. Clone one of the following starter projects:
* [Angel3 Basic Template](https://github.com/dukefirehawk/boilerplates/tree/angel3-basic)
* [Angel3 ORM Template](https://github.com/dukefirehawk/boilerplates/tree/angel3-orm)
* [Angel3 ORM MySQL Template](https://github.com/dukefirehawk/boilerplates/tree/angel3-orm-mysql)
* [Angel3 Graphql Template](https://github.com/dukefirehawk/boilerplates/tree/angel3-graphql)
3. Run the project in development mode (*hot-reloaded* is enabled on file changes).
```bash
dart --observe bin/dev.dart
```
4. Run the project in production mode (*hot-reloaded* is disabled).
```bash
dart bin/prod.dart
```
5. Run as docker. Edit and build the image with the provided `Dockerfile` file.
6. Next, refer to the [developer guide](https://angel3-docs.dukefirehawk.com/) to learn more about Angel3 framework.
### (Option 2) Create a new project with Angel3 CLI
1. Download and install [Dart](https://dart.dev/get-dart)
2. Install the [Angel3 CLI](https://pub.dev/packages/angel3_cli):
```bash
dart pub global activate angel3_cli
```
3. On terminal, create a new project:
```bash
angel3 init hello
```
4. Run the project in development mode (*hot-reloaded* is enabled on file changes).
```bash
dart --observe bin/dev.dart
```
5. Run the project in production mode (*hot-reloaded* is disabled).
```bash
dart bin/prod.dart
```
6. Run as docker. Edit and build the image with the provided `Dockerfile` file.
7. Next, refer to the [User Guide](https://angel3-docs.dukefirehawk.com/) to learn more about Angel3 framework.
## Performance Testing
Refer to [Angel3 Performance Test Suite](https://github.com/dart-backend/angel3-perf-test) for more information. It is still in early stage, but eventually will contain test cases for running load testing with [Locust](https://locust.io/) on various key features of Angel3 framework. These test cases can serve as a foundation for building performance tests for any applications developed with Angel3 framework.
## Performance Benchmark
An offical performance benchmark can be found at [TechEmpower Framework Benchmarks](https://www.techempower.com/benchmarks/#section=data-r23)
The test cases are build using standard `Angel3 ORM` template for PostgreSQL and MySQL databases. The result are used for improving Angel3 framework with respect to other frameworks. The following test cases will be added in the subsequent update to this benchmark.
1. Cache with Redis
2. Angel3 with MongoDB
## Documentation
Refer to [User Guide](https://angel3-docs.dukefirehawk.com/) for more detailed information on the available features of Angel3 framework.
## Examples
Take various applications at [Examples](https://github.com/dart-backend/angel3-examples) for a spin to get a feel of what Angel3 framework can do.
## Community
Join us on [Discord](https://discord.gg/3X6bxTUdCM).
## Contributing
If you are interested in contributing to Angel3 framework please check out the [Contribution Guide](CONTRIBUTING.md).
### Development Setup
1. Fork [angel](https://github.com/dart-backend/angel) repository
2. Clone the project to local and create a new branch
```bash
git clone https://github.com/<your_repo_name>/angel.git
git checkout -b feature/<your_branch_name>
```
3. Download and install [Dart 3](https://dart.dev/get-dart)
4. Install `melos:7.3`
```bash
dart pub global activate melos
```
5. Run `melos exec "dart pub upgrade"` to update all the packages
6. Contribute changes to the desired packages
## Donation & Support
If you like this project and interested in supporting its development work, you are welcome to make a donation via the following links.
* [](https://github.com/sponsors/dukefirehawk)
* [Paypal Donation](https://paypal.me/dukefirehawk?country.x=MY&locale.x=en_US)
### Paid Support
We offer professional paid support for teams and developers using `Angel3` framework. Our support services are designed to help you build faster, deploy with confidence, and scale reliably, whether you’re just getting started or running the framework in production. The fund collected will go into continued improvements of the framework.
#### What we can help with
* Architecture and best-practice guidance
* Framework setup, configuration, and upgrades
* Debugging runtime, performance, or build issues
* Production readiness (scaling, monitoring, deployment)
* Code reviews and design feedback
* Custom feature guidance and extensions
#### Who this is for
* Teams using or planning to use `Angel3` in production
* Developers who want expert guidance from people who maintain the framework
* Migration from other dart or none dart framework
#### Support options
We offer flexible plans depending on your needs:
* Hourly support for one-off issues
* Monthly retainers for ongoing help
* Consulting sessions for architecture and planning
Support is available via email, chat, and scheduled calls.
#### Why paid support?
Paid support ensures you get reliable, professional assistance when it matters most.
#### Get in touch
If you’re interested in paid support, contact us at [dukefirehawk.apps@gmail.com] with your contact and use cases. We will get back within 24 hours.
================================================
FILE: TODO.md
================================================
# TODO
* `angel3_container_generator` upgrade blocked by `reflectable` not supporting `analyzer` > 7.7.0
* Improve HTTP and ORM performance
* Add cache support in ORM (using Redis)
* Upgrade and release angel3_oauth2 8.0.0 (5 failed test cases)
* Upgrade and release angel3_auth_twitter 8.0.0 (Migrate to OAuth2)
* Upgrade and release angel3_shelf 8.0.0 (2 failed test cases)
* [ORM] custom column name is not working. i.e @Column(name: "randomNumber")
================================================
FILE: archived/tool/archived/move_repos
================================================
#!/usr/bin/env python
from __future__ import print_function
import os
from github import Github
github_token = os.getenv("GITHUB_TOKEN")
packages_dir = "./packages"
if not github_token:
print("$GITHUB_TOKEN environment variable missing.")
quit()
gh = Github(github_token)
for basename in os.listdir(packages_dir):
path = os.path.join(packages_dir, basename)
if os.path.isdir(path):
print("===Entering repo `" + basename + "`")
repo = gh.get_repo("angel-dart/" + basename)
if repo.owner.login != "angel-dart-archive":
# Manually do the transfer...
params = {"new_owner": "angel-dart-archive"}
repo._requester.requestJsonAndCheck(
"POST", repo.url + "/transfer", input=params,
)
print("======Transferred `" + basename + "` to angel-dart-archive")
if repo.archived:
print("======SKIPPED ARCHIVED REPO")
continue
new_desc = "moved to angel-dart/angel/packages/" + basename
new_homepage = "https://github.com/angel-dart/angel/tree/master/packages/" + basename
if (repo.description != new_desc) or (repo.homepage != new_homepage):
repo.edit(description=new_desc, homepage=new_homepage)
print("======Changed description+homepage")
open_issues = repo.get_issues(state="open")
for issue in open_issues:
label_name = "package:" + basename
label_found = False
for label in issue.labels:
if label.name == label_name:
label_found = True
break
if not label_found:
issue.edit(labels=[label_name])
print("======Labeled issue \"" + issue.title + "\"")
# Duplicate the issue in angel-dart/angel...
angel = gh.get_repo("angel-dart/angel")
body = "*This issue was originally created by @" + issue.user.login
body += " here, before being automatically moved: "
body += "\n" + issue.html_url
body += "*\n\n---\n" + issue.body
new_issue = angel.create_issue(title=issue.title, labels=[label_name], body=body)
for comment in issue.get_comments():
comment_body = "@" + comment.user.login + " commented:\n\n" + comment.body
new_issue.create_comment(comment_body)
new_body = "*This issue was automatically moved to: " + new_issue.html_url + "."
issue.edit(state='closed', body=new_body)
print("======Moved issue \"" + issue.title + "\"")
open_pulls = repo.get_pulls(state="open")
for pull in open_pulls:
msg = "Hi, @" + pull.user.login + "! Thanks again for this PR."
msg += "\n\nAll Angel subprojects have been consolidated into a single monorepo: "
msg += "https://github.com/angel-dart/angel."
msg += "\n\nPlease fork the monorepo, and open a new PR there instead."
pull.create_issue_comment(msg)
pull.edit(state='closed')
print("======Commented on + closed PR \"" + pull.title + "\"")
# Archive the repository!
repo.edit(archived=True)
print("======Archived `" + basename + "`. Rest in Peace!")
================================================
FILE: archived/tool/archived/pull_subproject
================================================
#!/usr/bin/env bash
#
# Simple tool script that pulls an angel-dart/<name> project into ./packages/<name>.
if [ "$#" == "0" ]; then
echo "usage: pull_subproject <names...>"
exit 1
fi
set -ex
for project in $*; do
git subtree add --prefix="packages/$project" "https://github.com/angel-dart/$project.git" master
done
================================================
FILE: belatuk.session.sql
================================================
================================================
FILE: doc/deployment/docker/README.md
================================================
# Running as Container Services using Docker
The required applications by the framework can be run using the Docker compose files provided in this folder.
## Installation
### PostreSQL
* Starting the PostreSQL container
```bash
docker compose -f docker-compose-pg.yml -p pg up -d
```
* Stopping the PostreSQL container
```bash
docker compose -f docker-compose-pg.yml -p pg stop
docker compose -f docker-compose-pg.yml -p pg down
```
* Checking the PostreSQL container log
```bash
docker logs docker-pg-1 -f
```
* Running psql
```bash
docker exec -it <container id> /bin/bash
psql --username postgres
```
* Create PostgreSQL database, user and grant access
```sql
create database orm_test;
create user test with encrypted password 'test123';
grant all privileges on database orm_test to test;
```
### MariaDB
* Starting the MariaDB container
```bash
docker compose -f docker-compose-mariadb.yml -p maria up -d
```
* Stopping the MariaDB container
```bash
docker compose -f docker-compose-mariadb.yml -p maria stop
docker compose -f docker-compose-mariadb.yml -p maria down
```
* Checking the MariaDB container log
```bash
docker logs maria-mariadb-1 -f
```
* Create MariaDB database, user and grant access
```sql
create database orm_test;
-- Granting localhost access only
create user 'test'@'localhost' identified by 'test123';
grant all privileges on orm_test.* to 'test'@'localhost';
-- Granting localhost and remote access
create user 'test'@'%' identified by 'test123';
grant all privileges on orm_test.* to 'test'@'%';
```
### MySQL
* Starting the MySQL container
```bash
docker compose -f docker-compose-mysql.yml -p mysql up -d
```
* Stopping the MySQL container
```bash
docker compose -f docker-compose-mysql.yml -p mysql stop
docker compose -f docker-compose-mysql.yml -p mysql down
```
* Checking the MySQL container log
```bash
docker logs mysql-mysql-1 -f
```
* Create MySQL database, user and grant access
```sql
create database orm_test;
-- Granting localhost access only
create user 'test'@'localhost' identified by 'test123';
grant all privileges on orm_test.* to 'test'@'localhost';
-- Granting localhost and remote access
create user 'test'@'%' identified by 'test123';
grant all privileges on orm_test.* to 'test'@'%';
```
### MongoDB
* Starting the MongoDB container
```bash
docker compose -f docker-compose-mongo.yml -p mongo up -d
```
* Stopping the MongoDB container
```bash
docker compose -f docker-compose-mongo.yml -p mongo stop
docker compose -f docker-compose-mongo.yml -p mongo down
```
* Checking the MongoDB container log
```bash
docker logs mongo-mongo-1 -f
```
### rethinkDB
* Starting the rethinkDB container
```bash
docker compose -f docker-compose-rethinkdb.yml -p rethink up -d
```
* Stopping the rethinkDB container
```bash
docker compose -f docker-compose-rethinkdb.yml -p rethink stop
docker compose -f docker-compose-rethinkdb.yml -p rethink down
```
* Checking the rethinkDB container log
```bash
docker logs rethink-rethinkdb-1 -f
```
### Redis
* Starting the Redis container
```bash
docker compose -f docker-compose-redis.yml -p redis up -d
```
* Stopping the Redis container
```bash
docker compose -f docker-compose-redis.yml -p redis stop
docker compose -f docker-compose-redis.yml -p redis down
```
* Checking the Redis container log
```bash
docker logs redis-redis-1 -f
```
================================================
FILE: doc/deployment/docker/docker-compose-mariadb.yml
================================================
services:
mariadb:
image: mariadb:latest
restart: "no"
ports:
- "3306:3306"
environment:
- MARIADB_ROOT_PASSWORD=Qwerty
- MARIADB_DATABASE=orm_test
- MARIADB_USER=test
- MARIADB_PASSWORD=Test123
networks:
- appnet
adminer:
image: adminer:latest
restart: "no"
ports:
- 8080:8080
networks:
- appnet
networks:
appnet:
================================================
FILE: doc/deployment/docker/docker-compose-mongo.yml
================================================
services:
mongo:
image: mongo:latest
restart: no
ports:
- 27017:27017
environment:
MONGO_INITDB_ROOT_USERNAME: root
MONGO_INITDB_ROOT_PASSWORD: Qwerty
MONGO_INITDB_DATABASE: local
networks:
- appnet
mongo-express:
image: mongo-express:latest
restart: no
depends_on:
- mongo
ports:
- 8081:8081
environment:
ME_CONFIG_MONGODB_ADMINUSERNAME: root
ME_CONFIG_MONGODB_ADMINPASSWORD: Qwerty
ME_CONFIG_MONGODB_URL: mongodb://root:Qwerty@mongo:27017/
ME_CONFIG_BASICAUTH: false
networks:
- appnet
networks:
appnet:
================================================
FILE: doc/deployment/docker/docker-compose-mysql.yml
================================================
services:
mysql:
image: mysql:latest
restart: "no"
ports:
- "3306:3306"
environment:
- MYSQL_ROOT_PASSWORD=Qwerty
- MYSQL_DATABASE=orm_test
- MYSQL_USER=test
- MYSQL_PASSWORD=Test123
# volumes:
# - C://storage/mysql:/var/lib/mysql:ro
networks:
- appnet
#volumes:
# mysql-data-external:
# driver: local
networks:
appnet:
================================================
FILE: doc/deployment/docker/docker-compose-pg.yml
================================================
services:
pgdb:
image: postgres:latest
restart: "no"
ports:
- "5432:5432"
environment:
- POSTGRES_USER=postgres
- POSTGRES_PASSWORD=postgres
networks:
- appnet
pgadmin4:
image: dpage/pgadmin4:latest
restart: "no"
ports:
- "5050:80"
environment:
- PGADMIN_DEFAULT_EMAIL=admin@mydomain.com
- PGADMIN_DEFAULT_PASSWORD=Qwerty
networks:
- appnet
networks:
appnet:
================================================
FILE: doc/deployment/docker/docker-compose-redis.yml
================================================
services:
redis:
image: redis:latest
restart: "no"
ports:
- "5432:5432"
environment:
- POSTGRES_USER=postgres
- POSTGRES_PASSWORD=postgres
networks:
- appnet
networks:
appnet:
================================================
FILE: doc/deployment/docker/docker-compose-rethinkdb.yml
================================================
services:
rethinkdb:
image: rethinkdb:latest
restart: "no"
ports:
- "8080:8080"
- "28015:28015"
- "29015:29015"
networks:
- appnet
networks:
appnet:
================================================
FILE: doc/deployment/helm_chart/README.md
================================================
# Running as Container Services using Helm Chart
To be available soon
================================================
FILE: doc/deployment/podman/README.md
================================================
# Running as Container Services using Podman
The required applications by the framework can be run using the Docker compose files provided in this folder.
## Installation
### PostreSQL
* Starting the PostreSQL container
```bash
podman-compose -f podman-compose-pg.yml -p pg up -d
```
* Stopping the PostreSQL container
```bash
podman-compose -f podman-compose-pg.yml -p pg stop
podman-compose -f podman-compose-pg.yml -p pg down
```
* Checking the PostreSQL container log
```bash
podman logs -f podman-pg-1
```
* Running psql
```bash
podman exec -it <container id> /bin/bash
psql --username postgres
```
* Create PostgreSQL database, user and grant access
```sql
create database orm_test;
create user test with encrypted password 'test123';
grant all privileges on database orm_test to test;
```
### MariaDB
* Starting the MariaDB container
```bash
podman-compose -f podman-compose-mariadb.yml -p maria up -d
```
* Stopping the MariaDB container
```bash
podman-compose -f podman-compose-mariadb.yml -p maria stop
podman-compose -f podman-compose-mariadb.yml -p maria down
```
* Checking the MariaDB container log
```bash
podman logs -f maria-mariadb-1
```
* Create MariaDB database, user and grant access
```sql
create database orm_test;
-- Granting localhost access only
create user 'test'@'localhost' identified by 'test123';
grant all privileges on orm_test.* to 'test'@'localhost';
-- Granting localhost and remote access
create user 'test'@'%' identified by 'test123';
grant all privileges on orm_test.* to 'test'@'%';
```
### MySQL
* Starting the MySQL container
```bash
podman-compose -f podman-compose-mysql.yml -p mysql up -d
```
* Stopping the MySQL container
```bash
podman-compose -f podman-compose-mysql.yml -p mysql stop
podman-compose -f podman-compose-mysql.yml -p mysql down
```
* Checking the MySQL container log
```bash
podman logs -f mysql-mysql-1
```
* Create MySQL database, user and grant access
```sql
create database orm_test;
-- Granting localhost access only
create user 'test'@'localhost' identified by 'test123';
grant all privileges on orm_test.* to 'test'@'localhost';
-- Granting localhost and remote access
create user 'test'@'%' identified by 'test123';
grant all privileges on orm_test.* to 'test'@'%';
```
### MongoDB
* Starting the MongoDB container
```bash
podman-compose -f podman-compose-mongo.yml -p mongo up -d
```
* Stopping the MongoDB container
```bash
podman-compose -f podman-compose-mongo.yml -p mongo stop
podman-compose -f podman-compose-mongo.yml -p mongo down
```
* Checking the MongoDB container log
```bash
podman logs -f mongo-mongo-1
```
### rethinkDB
* Starting the rethinkDB container
```bash
podman-compose -f podman-compose-rethinkdb.yml -p rethink up -d
```
* Stopping the rethinkDB container
```bash
podman-compose -f podman-compose-rethinkdb.yml -p rethink stop
podman-compose -f podman-compose-rethinkdb.yml -p rethink down
```
* Checking the rethinkDB container log
```bash
podman logs -f rethink-rethinkdb-1
```
### Redis
* Starting the Redis container
```bash
podman-compose -f podman-compose-redis.yml -p redis up -d
```
* Stopping the Redis container
```bash
podman-compose -f podman-compose-redis.yml -p redis stop
podman-compose -f podman-compose-redis.yml -p redis down
```
* Checking the Redis container log
```bash
podman logs -f redis-redis-1
```
================================================
FILE: doc/deployment/podman/podman-compose-mariadb.yml
================================================
services:
mariadb:
image: docker.io/mariadb:latest
restart: "no"
ports:
- "3306:3306"
environment:
- MARIADB_ROOT_PASSWORD=Qwerty
- MARIADB_DATABASE=orm_test
- MARIADB_USER=test
- MARIADB_PASSWORD=Test123
networks:
- appnet
adminer:
image: docker.io/adminer:latest
restart: "no"
ports:
- 8080:8080
networks:
- appnet
networks:
appnet:
================================================
FILE: doc/deployment/podman/podman-compose-mongo.yml
================================================
services:
mongo:
image: docker.io/mongo:latest
restart: no
ports:
- 27017:27017
environment:
MONGO_INITDB_ROOT_USERNAME: root
MONGO_INITDB_ROOT_PASSWORD: Qwerty
MONGO_INITDB_DATABASE: local
networks:
- appnet
mongo-express:
image: docker.io/mongo-express:latest
restart: no
depends_on:
- mongo
ports:
- 8081:8081
environment:
ME_CONFIG_MONGODB_ADMINUSERNAME: root
ME_CONFIG_MONGODB_ADMINPASSWORD: Qwerty
ME_CONFIG_MONGODB_URL: mongodb://root:Qwerty@mongo:27017/
ME_CONFIG_BASICAUTH: false
networks:
- appnet
networks:
appnet:
================================================
FILE: doc/deployment/podman/podman-compose-mysql.yml
================================================
services:
mysql:
image: docker.io/mysql:latest
restart: "no"
ports:
- "3306:3306"
environment:
- MYSQL_ROOT_PASSWORD=Qwerty
- MYSQL_DATABASE=orm_test
- MYSQL_USER=test
- MYSQL_PASSWORD=Test123
# volumes:
# - C://storage/mysql:/var/lib/mysql:ro
networks:
- appnet
#volumes:
# mysql-data-external:
# driver: local
networks:
appnet:
================================================
FILE: doc/deployment/podman/podman-compose-pg.yml
================================================
services:
pgdb:
image: docker.io/postgres:latest
restart: "no"
ports:
- "5432:5432"
environment:
- POSTGRES_USER=postgres
- POSTGRES_PASSWORD=postgres
networks:
- appnet
pgadmin4:
image: docker.io/dpage/pgadmin4:latest
restart: "no"
ports:
- "5050:80"
environment:
- PGADMIN_DEFAULT_EMAIL=admin@mydomain.com
- PGADMIN_DEFAULT_PASSWORD=Qwerty
networks:
- appnet
networks:
appnet:
================================================
FILE: doc/deployment/podman/podman-compose-redis.yml
================================================
services:
redis:
image: docker.io/redis:latest
restart: "no"
ports:
- "5432:5432"
environment:
- POSTGRES_USER=postgres
- POSTGRES_PASSWORD=postgres
networks:
- appnet
networks:
appnet:
================================================
FILE: doc/deployment/podman/podman-compose-rethinkdb.yml
================================================
services:
rethinkdb:
image: docker.io/rethinkdb:latest
restart: "no"
ports:
- "8080:8080"
- "28015:28015"
- "29015:29015"
networks:
- appnet
networks:
appnet:
================================================
FILE: doc/deployment/rancher/README.md
================================================
# Running as Container Services using Rancher
The required applications by the framework can be run using the Docker compose files provided in this folder.
## Installation
### PostreSQL
* Starting the PostreSQL container
```bash
nerdctl compose -f rancher-compose-pg.yml -p pg up -d
```
* Stopping the PostreSQL container
```bash
nerdctl compose -f rancher-compose-pg.yml -p pg stop
nerdctl compose -f rancher-compose-pg.yml -p pg down
```
* Checking the PostreSQL container log
```bash
nerdctl logs rancher-pg-1 -f
```
* Running psql
```bash
nerdctl exec -it <container id> /bin/bash
psql --username postgres
```
* Create PostgreSQL database, user and grant access
```sql
create database orm_test;
create user test with encrypted password 'test123';
grant all privileges on database orm_test to test;
```
### MariaDB
* Starting the MariaDB container
```bash
nerdctl compose -f rancher-compose-mariadb.yml -p maria up -d
```
* Stopping the MariaDB container
```bash
nerdctl compose -f rancher-compose-mariadb.yml -p maria stop
nerdctl compose -f rancher-compose-mariadb.yml -p maria down
```
* Checking the MariaDB container log
```bash
nerdctl logs maria-mariadb-1 -f
```
* Create MariaDB database, user and grant access
```sql
create database orm_test;
-- Granting localhost access only
create user 'test'@'localhost' identified by 'test123';
grant all privileges on orm_test.* to 'test'@'localhost';
-- Granting localhost and remote access
create user 'test'@'%' identified by 'test123';
grant all privileges on orm_test.* to 'test'@'%';
```
### MySQL
* Starting the MySQL container
```bash
nerdctl compose -f rancher-compose-mysql.yml -p mysql up -d
```
* Stopping the MySQL container
```bash
nerdctl compose -f rancher-compose-mysql.yml -p mysql stop
nerdctl compose -f rancher-compose-mysql.yml -p mysql down
```
* Checking the MySQL container log
```bash
nerdctl logs mysql-mysql-1 -f
```
* Create MySQL database, user and grant access
```sql
create database orm_test;
-- Granting localhost access only
create user 'test'@'localhost' identified by 'test123';
grant all privileges on orm_test.* to 'test'@'localhost';
-- Granting localhost and remote access
create user 'test'@'%' identified by 'test123';
grant all privileges on orm_test.* to 'test'@'%';
```
### MongoDB
* Starting the MongoDB container
```bash
nerdctl compose -f rancher-compose-mongo.yml -p mongo up -d
```
* Stopping the MongoDB container
```bash
nerdctl compose -f rancher-compose-mongo.yml -p mongo stop
nerdctl compose -f rancher-compose-mongo.yml -p mongo down
```
* Checking the MongoDB container log
```bash
nerdctl logs mongo-mongo-1 -f
```
### rethinkDB
* Starting the rethinkDB container
```bash
nerdctl compose -f rancher-compose-rethinkdb.yml -p rethink up -d
```
* Stopping the rethinkDB container
```bash
nerdctl compose -f rancher-compose-rethinkdb.yml -p rethink stop
nerdctl compose -f rancher-compose-rethinkdb.yml -p rethink down
```
* Checking the rethinkDB container log
```bash
nerdctl logs rethink-rethinkdb-1 -f
```
### Redis
* Starting the Redis container
```bash
nerdctl compose -f rancher-compose-redis.yml -p redis up -d
```
* Stopping the Redis container
```bash
nerdctl compose -f rancher-compose-redis.yml -p redis stop
nerdctl compose -f rancher-compose-redis.yml -p redis down
```
* Checking the Redis container log
```bash
nerdctl logs redis-redis-1 -f
```
================================================
FILE: doc/deployment/rancher/rancher-compose-mariadb.yml
================================================
services:
mariadb:
image: mariadb:latest
restart: "no"
ports:
- "3306:3306"
environment:
- MARIADB_ROOT_PASSWORD=Qwerty
- MARIADB_DATABASE=orm_test
- MARIADB_USER=test
- MARIADB_PASSWORD=Test123
networks:
- appnet
adminer:
image: adminer:latest
restart: "no"
ports:
- 8080:8080
networks:
- appnet
networks:
appnet:
================================================
FILE: doc/deployment/rancher/rancher-compose-mongo.yml
================================================
services:
mongo:
image: mongo:latest
restart: no
ports:
- 27017:27017
environment:
MONGO_INITDB_ROOT_USERNAME: root
MONGO_INITDB_ROOT_PASSWORD: Qwerty
MONGO_INITDB_DATABASE: local
networks:
- appnet
mongo-express:
image: mongo-express:latest
restart: no
depends_on:
- mongo
ports:
- 8081:8081
environment:
ME_CONFIG_MONGODB_ADMINUSERNAME: root
ME_CONFIG_MONGODB_ADMINPASSWORD: Qwerty
ME_CONFIG_MONGODB_URL: mongodb://root:Qwerty@mongo:27017/
ME_CONFIG_BASICAUTH: false
networks:
- appnet
networks:
appnet:
================================================
FILE: doc/deployment/rancher/rancher-compose-mysql.yml
================================================
services:
mysql:
image: mysql:latest
restart: "no"
ports:
- "3306:3306"
environment:
- MYSQL_ROOT_PASSWORD=Qwerty
- MYSQL_DATABASE=orm_test
- MYSQL_USER=test
- MYSQL_PASSWORD=Test123
# volumes:
# - C://storage/mysql:/var/lib/mysql:ro
networks:
- appnet
#volumes:
# mysql-data-external:
# driver: local
networks:
appnet:
================================================
FILE: doc/deployment/rancher/rancher-compose-pg.yml
================================================
services:
pgdb:
image: postgres:latest
restart: "no"
ports:
- "5432:5432"
environment:
- POSTGRES_USER=postgres
- POSTGRES_PASSWORD=postgres
networks:
- appnet
pgadmin4:
image: dpage/pgadmin4:latest
restart: "no"
ports:
- "5050:80"
environment:
- PGADMIN_DEFAULT_EMAIL=admin@mydomain.com
- PGADMIN_DEFAULT_PASSWORD=Qwerty
networks:
- appnet
networks:
appnet:
================================================
FILE: doc/deployment/rancher/rancher-compose-redis.yml
================================================
services:
redis:
image: redis:latest
restart: "no"
ports:
- "5432:5432"
environment:
- POSTGRES_USER=postgres
- POSTGRES_PASSWORD=postgres
networks:
- appnet
networks:
appnet:
================================================
FILE: doc/deployment/rancher/rancher-compose-rethinkdb.yml
================================================
services:
rethinkdb:
image: rethinkdb:latest
restart: "no"
ports:
- "8080:8080"
- "28015:28015"
- "29015:29015"
networks:
- appnet
networks:
appnet:
================================================
FILE: melos.yaml
================================================
name: angel3
packages:
- packages/http_exception
- packages/route
- packages/model
- packages/serialize/angel_serialize
- packages/serialize/angel_serialize_generator
- packages/container/angel_container
- packages/container/angel_container_generator
- packages/mock_request
- packages/framework
- packages/user_agent/angel_user_agent
- packages/validate
- packages/redis
- packages/cache
- packages/configuration
- packages/cors
- packages/auth
- packages/auth_oauth2
# - packages/auth_twitter
- packages/file_service
- packages/html
- packages/client
- packages/websocket
- packages/hot
- packages/production
- packages/test
- packages/sync
- packages/oauth2
- packages/security
- packages/proxy
- packages/paginate
- packages/static
- packages/jael/jael
- packages/jael/jael_preprocessor
- packages/jael/angel_jael
- packages/jael/jael_language_server
- packages/jael/jael_web
- packages/jinja
- packages/markdown
- packages/mustache
- packages/seo
- packages/mongo
- packages/rethinkdb
- packages/sembast
- packages/orm/angel_migration
- packages/orm/angel_migration_runner
- packages/orm/angel_orm
- packages/orm/angel_orm_generator
- packages/orm/angel_orm_postgres
- packages/orm/angel_orm_mysql
- packages/orm/angel_orm_service
- packages/shelf
#scripts:
# analyze: melos exec -- "dart analyze ."
================================================
FILE: melos_angel3.iml
================================================
<?xml version="1.0" encoding="UTF-8"?>
<module type="WEB_MODULE" version="4">
<component name="NewModuleRootManager" inherit-compiler-output="true">
<exclude-output />
<content url="file://$MODULE_DIR$">
<sourceFolder url="file://$MODULE_DIR$" isTestSource="false" />
</content>
<orderEntry type="sourceFolder" forTests="false" />
<orderEntry type="library" name="Dart SDK" level="project" />
<orderEntry type="library" name="Dart Packages" level="project" />
</component>
</module>
================================================
FILE: packages/cache/.gitignore
================================================
# See https://www.dartlang.org/tools/private-files.html
# Files and directories created by pub
.packages
.pub/
build/
# If you're building an application, you may want to check-in your pubspec.lock
pubspec.lock
# Directory created by dartdoc
# If you don't generate documentation locally you can remove this line.
doc/api/
### JetBrains template
# Covers JetBrains IDEs: IntelliJ, RubyMine, PhpStorm, AppCode, PyCharm, CLion, Android Studio and Webstorm
# Reference: https://intellij-support.jetbrains.com/hc/en-us/articles/206544839
# User-specific stuff:
.idea/**/workspace.xml
.idea/**/tasks.xml
.idea/dictionaries
# Sensitive or high-churn files:
.idea/**/dataSources/
.idea/**/dataSources.ids
.idea/**/dataSources.xml
.idea/**/dataSources.local.xml
.idea/**/sqlDataSources.xml
.idea/**/dynamic.xml
.idea/**/uiDesigner.xml
# Gradle:
.idea/**/gradle.xml
.idea/**/libraries
# CMake
cmake-build-debug/
# Mongo Explorer plugin:
.idea/**/mongoSettings.xml
## File-based project format:
*.iws
## Plugin-specific files:
# IntelliJ
out/
# mpeltonen/sbt-idea plugin
.idea_modules/
# JIRA plugin
atlassian-ide-plugin.xml
# Cursive Clojure plugin
.idea/replstate.xml
# Crashlytics plugin (for Android Studio and IntelliJ)
com_crashlytics_export_strings.xml
crashlytics.properties
crashlytics-build.properties
fabric.properties
.dart_tool
================================================
FILE: packages/cache/AUTHORS.md
================================================
Primary Authors
===============
* __[Thomas Hii](dukefirehawk.apps@gmail.com)__
Thomas is the current maintainer of the code base. He has refactored and migrated the
code base to support NNBD.
* __[Tobe O](thosakwe@gmail.com)__
Tobe has written much of the original code prior to NNBD migration. He has moved on and
is no longer involved with the project.
================================================
FILE: packages/cache/CHANGELOG.md
================================================
# Change Log
## 8.5.0
* Require Dart >= 3.11
## 8.4.0
* Require Dart >= 3.8
* Updated `lints` to 6.0.0
* Updated dependencies to the latest release
## 8.3.0
* Require Dart >= 3.6
* Updated `lints` to 5.0.0
* Updated dependencies to the latest release
## 8.2.0
* Require Dart >= 3.3
* Updated `lints` to 4.0.0
## 8.1.1
* Updated repository link
## 8.1.0
* Updated `lints` to 3.0.0
* Fixed linter warnings
## 8.0.0
* Require Dart >= 3.0
## 7.0.0
* Require Dart >= 2.17
## 6.0.0
* Require Dart >= 2.16
## 5.0.0
* Skipped release
## 4.0.3
* Updated linter to `package:lints`
## 4.0.2
* Updated README
* Added home page link
* All 7 unit tests passed
## 4.0.1
* Updated pubspec description
* Fixed: Return `200` with cached data instead of `403`
* Updated broken unit tests
## 4.0.0
* Migrated to support Dart >= 2.12 NNBD
## 3.0.0
* Migrated to work with Dart >= 2.12 Non NNBD
## 2.0.1
* Add `ignoreQueryAndFragment` to `ResponseCache`.
* Rename `CacheService.ignoreQuery` to `ignoreParams`.
## 1.0.0
* First version
================================================
FILE: packages/cache/LICENSE
================================================
BSD 3-Clause License
Copyright (c) 2021, dukefirehawk.com
All rights reserved.
Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions are met:
1. Redistributions of source code must retain the above copyright notice, this
list of conditions and the following disclaimer.
2. Redistributions in binary form must reproduce the above copyright notice,
this list of conditions and the following disclaimer in the documentation
and/or other materials provided with the distribution.
3. Neither the name of the copyright holder nor the names of its
contributors may be used to endorse or promote products derived from
this software without specific prior written permission.
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
================================================
FILE: packages/cache/README.md
================================================
# Angel3 HTTP Cache

[](https://dart.dev/null-safety)
[](https://discord.gg/3X6bxTUdCM)
[](https://github.com/dart-backend/angel/tree/master/packages/cache/LICENSE)
A service that provides HTTP caching to the response data for [Angel3 framework](https://pub.dev/packages/angel3).
## `CacheService`
A `Service` class that caches data from one service, storing it in another. An imaginable use case is storing results from MongoDB or another database in Memcache/Redis.
## `cacheSerializationResults`
A middleware that enables the caching of response serialization.
This can improve the performance of sending objects that are complex to serialize. You can pass a [shouldCache] callback to determine which values should be cached.
```dart
void main() async {
var app = Angel()..lazyParseBodies = true;
app.use(
'/api/todos',
CacheService(
database: AnonymousService(
index: ([params]) {
print('Fetched directly from the underlying service at ${DateTime.now()}!');
return ['foo', 'bar', 'baz'];
},
read: (id, [params]) {
return {id: '$id at ${DateTime.now()}'};
}
),
),
);
}
```
## `ResponseCache`
A flexible response cache for Angel3.
Use this to improve real and perceived response of Web applications, as well as to memorize expensive responses.
Supports the `If-Modified-Since` header, as well as storing the contents of response buffers in memory.
To initialize a simple cache:
```dart
Future configureServer(Angel app) async {
// Simple instance.
var cache = ResponseCache();
// You can also pass an invalidation timeout.
var cache = ResponseCache(timeout: const Duration(days: 2));
// Close the cache when the application closes.
app.shutdownHooks.add((_) => cache.close());
// Use `patterns` to specify which resources should be cached.
cache.patterns.addAll([
'robots.txt',
RegExp(r'\.(png|jpg|gif|txt)$'),
Glob('public/**/*'),
]);
// REQUIRED: The middleware that serves cached responses
app.use(cache.handleRequest);
// REQUIRED: The response finalizer that saves responses to the cache
app.responseFinalizers.add(cache.responseFinalizer);
}
```
### Purging the Cache
Call `invalidate` to remove a resource from a `ResponseCache`.
Some servers expect a reverse proxy or caching layer to support `PURGE` requests. If this is your case, make sure to include some sort of validation (maybe IP-based) to ensure no arbitrary attacker can hack your cache:
```dart
Future configureServer(Angel app) async {
app.addRoute('PURGE', '*', (req, res) {
if (req.ip != '127.0.0.1')
throw AngelHttpException.forbidden();
return cache.purge(req.uri.path);
});
}
```
================================================
FILE: packages/cache/analysis_options.yaml
================================================
include: package:lints/recommended.yaml
================================================
FILE: packages/cache/example/cache_service.dart
================================================
import 'package:angel3_cache/angel3_cache.dart';
import 'package:angel3_framework/angel3_framework.dart';
import 'package:angel3_framework/http.dart';
void main() async {
var app = Angel();
app.use(
'/api/todos',
CacheService(
cache: MapService(),
database: AnonymousService(
index: ([params]) {
print(
'Fetched directly from the underlying service at ${DateTime.now()}!',
);
return ['foo', 'bar', 'baz'];
},
read: (dynamic id, [params]) {
return {id: '$id at ${DateTime.now()}'};
},
),
),
);
var http = AngelHttp(app);
var server = await http.startServer('127.0.0.1', 3000);
print('Listening at http://${server.address.address}:${server.port}');
}
================================================
FILE: packages/cache/example/main.dart
================================================
import 'package:angel3_cache/angel3_cache.dart';
import 'package:angel3_framework/angel3_framework.dart';
import 'package:angel3_framework/http.dart';
void main() async {
var app = Angel();
// Cache a glob
var cache = ResponseCache()..patterns.addAll([RegExp('^/?\\w+\\.txt')]);
// Handle `if-modified-since` header, and also send cached content
app.fallback(cache.handleRequest);
// A simple handler that returns a different result every time.
app.get(
'/date.txt',
(req, res) => res.write(DateTime.now().toIso8601String()),
);
// Support purging the cache.
app.addRoute('PURGE', '*', (req, res) {
if (req.ip != '127.0.0.1') {
throw AngelHttpException.forbidden();
}
cache.purge(req.uri!.path);
print('Purged ${req.uri!.path}');
});
// The response finalizer that actually saves the content
app.responseFinalizers.add(cache.responseFinalizer);
var http = AngelHttp(app);
var server = await http.startServer('127.0.0.1', 3000);
print('Listening at http://${server.address.address}:${server.port}');
}
================================================
FILE: packages/cache/lib/angel3_cache.dart
================================================
export 'src/cache.dart';
export 'src/cache_service.dart';
export 'src/serializer.dart';
================================================
FILE: packages/cache/lib/src/cache.dart
================================================
import 'dart:async';
import 'dart:io' show HttpDate;
import 'package:angel3_framework/angel3_framework.dart';
import 'package:pool/pool.dart';
import 'package:logging/logging.dart';
/// A flexible response cache for Angel.
///
/// Use this to improve real and perceived response of Web applications,
/// as well as to memorize expensive responses.
class ResponseCache {
/// A set of [Patterns] for which responses will be cached.
///
/// For example, you can pass a `Glob` matching `**/*.png` files to catch all PNG images.
final List<Pattern> patterns = [];
/// An optional timeout, after which a given response will be removed from the cache, and the contents refreshed.
final Duration timeout;
final Map<String, _CachedResponse> _cache = {};
final Map<String, Pool> _writeLocks = {};
/// If `true` (default: `false`), then caching of results will discard URI query parameters and fragments.
final bool ignoreQueryAndFragment;
final log = Logger('ResponseCache');
ResponseCache({
this.timeout = const Duration(minutes: 10),
this.ignoreQueryAndFragment = false,
});
/// Closes all internal write-locks, and closes the cache.
Future close() async {
_writeLocks.forEach((_, p) => p.close());
}
/// Removes an entry from the response cache.
void purge(String path) => _cache.remove(path);
/// A middleware that handles requests with an `If-Modified-Since` header.
///
/// This prevents the server from even having to access the cache, and plays very well with static assets.
Future<bool> ifModifiedSince(RequestContext req, ResponseContext res) async {
if (req.method != 'GET' && req.method != 'HEAD') {
return true;
}
var modifiedSince = req.headers?.ifModifiedSince;
if (modifiedSince != null) {
// Check if there is a cache entry.
for (var pattern in patterns) {
var reqPath = _getEffectivePath(req);
if (pattern.allMatches(reqPath).isNotEmpty &&
_cache.containsKey(reqPath)) {
var response = _cache[reqPath];
//log.info('timestamp ${response?.timestamp} vs since $modifiedSince');
if (response != null &&
response.timestamp.compareTo(modifiedSince) <= 0) {
// If the cache timeout has been met, don't send the cached response.
var timeDiff = DateTime.now().toUtc().difference(
response.timestamp,
);
//log.info(
// 'Time Diff: ${timeDiff.inMilliseconds} >= ${timeout.inMilliseconds}');
if (timeDiff.inMilliseconds >= timeout.inMilliseconds) {
return true;
}
// Old code: res.statusCode = 304;
// Return the response stored in the cache
_setCachedHeaders(response.timestamp, req, res);
res
..headers.addAll(response.headers)
..add(response.body);
await res.close();
return false;
}
}
}
}
return true;
}
String _getEffectivePath(RequestContext req) {
if (req.uri == null) {
log.severe('Request URI is null');
throw ArgumentError('Request URI is null');
}
return ignoreQueryAndFragment == true ? req.uri!.path : req.uri.toString();
}
/// Serves content from the cache, if applicable.
Future<bool> handleRequest(RequestContext req, ResponseContext res) async {
if (!await ifModifiedSince(req, res)) return false;
if (req.method != 'GET' && req.method != 'HEAD') return true;
if (!res.isOpen) return true;
// Check if there is a cache entry.
//
// If `if-modified-since` is present, this check has already been performed.
if (req.headers?.ifModifiedSince == null) {
for (var pattern in patterns) {
if (pattern.allMatches(_getEffectivePath(req)).isNotEmpty) {
var now = DateTime.now().toUtc();
if (_cache.containsKey(_getEffectivePath(req))) {
var response = _cache[_getEffectivePath(req)];
if (response == null ||
now.difference(response.timestamp) >= timeout) {
return true;
}
_setCachedHeaders(response.timestamp, req, res);
res
..headers.addAll(response.headers)
..add(response.body);
await res.close();
return false;
} else {
_setCachedHeaders(now, req, res);
}
}
}
}
return true;
}
/// A response finalizer that saves responses to the cache.
Future<bool> responseFinalizer(
RequestContext req,
ResponseContext res,
) async {
if (res.statusCode == 304) {
return true;
}
if (req.method != 'GET' && req.method != 'HEAD') {
return true;
}
// Check if there is a cache entry.
for (var pattern in patterns) {
var reqPath = _getEffectivePath(req);
if (pattern.allMatches(reqPath).isNotEmpty) {
var now = DateTime.now().toUtc();
// Invalidate the response, if need be.
if (_cache.containsKey(reqPath)) {
// If there is no timeout, don't invalidate.
//if (timeout == null) return true;
// Otherwise, don't invalidate unless the timeout has been exceeded.
var response = _cache[reqPath];
if (response == null ||
now.difference(response.timestamp) < timeout) {
return true;
}
// If the cache entry should be invalidated, then invalidate it.
purge(reqPath);
}
// Save the response.
var writeLock = _writeLocks.putIfAbsent(reqPath, () => Pool(1));
await writeLock.withResource(() {
if (res.buffer != null) {
_cache[reqPath] = _CachedResponse(
Map.from(res.headers),
res.buffer!.toBytes(),
now,
);
}
});
_setCachedHeaders(now, req, res);
}
}
return true;
}
void _setCachedHeaders(
DateTime modified,
RequestContext req,
ResponseContext res,
) {
var privacy = 'public';
res.headers
..['cache-control'] = '$privacy, max-age=${timeout.inSeconds}'
..['last-modified'] = HttpDate.format(modified);
var expiry = DateTime.now().add(timeout);
res.headers['expires'] = HttpDate.format(expiry);
}
}
class _CachedResponse {
final Map<String, String> headers;
final List<int> body;
final DateTime timestamp;
_CachedResponse(this.headers, this.body, this.timestamp);
}
================================================
FILE: packages/cache/lib/src/cache_service.dart
================================================
import 'dart:async';
import 'package:collection/collection.dart';
import 'package:angel3_framework/angel3_framework.dart';
/// An Angel [Service] that caches data from another service.
///
/// This is useful for applications of scale, where network latency
/// can have real implications on application performance.
class CacheService<Id, Data> extends Service<Id, Data> {
/// The underlying [Service] that represents the original data store.
final Service<Id, Data> database;
/// The [Service] used to interface with a caching layer.
///
/// If not provided, this defaults to a [MapService].
final Service<Id, Data> cache;
/// If `true` (default: `false`), then result caching will discard parameters passed to service methods.
///
/// If you want to return a cached result more-often-than-not, you may want to enable this.
final bool ignoreParams;
final Duration timeout;
final Map<Id, _CachedItem<Data>> _cache = {};
_CachedItem<List<Data>>? _indexed;
CacheService({
required this.database,
required this.cache,
this.timeout = const Duration(minutes: 10),
this.ignoreParams = false,
});
Future<T> _getCached<T>(
Map<String, dynamic> params,
_CachedItem? Function() get,
FutureOr<T> Function() getFresh,
FutureOr<T> Function() getCached,
FutureOr<T> Function(T data, DateTime now) save,
) async {
var cached = get();
var now = DateTime.now().toUtc();
if (cached != null) {
// If the entry has expired, don't send from the cache
var expired = now.difference(cached.timestamp) >= timeout;
if (!expired) {
// Read from the cache if necessary
var queryEqual =
ignoreParams == true ||
(cached.params != null &&
const MapEquality().equals(
params['query'] as Map,
cached.params['query'] as Map,
));
if (queryEqual) {
return await getCached();
}
}
}
// If we haven't fetched from the cache by this point,
// let's fetch from the database.
var data = await getFresh();
await save(data, now);
return data;
}
@override
Future<List<Data>> index([Map<String, dynamic>? params]) {
return _getCached(
params ?? {},
() => _indexed,
() => database.index(params),
() => _indexed?.data ?? [],
(data, now) async {
_indexed = _CachedItem(params, now, data);
return data;
},
);
}
@override
Future<Data> read(Id id, [Map<String, dynamic>? params]) async {
return _getCached<Data>(
params ?? {},
() => _cache[id],
() => database.read(id, params),
() => cache.read(id),
(data, now) async {
_cache[id] = _CachedItem(params, now, data);
return await cache.modify(id, data);
},
);
}
@override
Future<Data> create(data, [Map<String, dynamic>? params]) {
_indexed = null;
return database.create(data, params);
}
@override
Future<Data> modify(Id id, Data data, [Map<String, dynamic>? params]) {
_indexed = null;
_cache.remove(id);
return database.modify(id, data, params);
}
@override
Future<Data> update(Id id, Data data, [Map<String, dynamic>? params]) {
_indexed = null;
_cache.remove(id);
return database.modify(id, data, params);
}
@override
Future<Data> remove(Id id, [Map<String, dynamic>? params]) {
_indexed = null;
_cache.remove(id);
return database.remove(id, params);
}
}
class _CachedItem<Data> {
final dynamic params;
final DateTime timestamp;
final Data? data;
_CachedItem(this.params, this.timestamp, [this.data]);
@override
String toString() {
return '$timestamp:$params:$data';
}
}
================================================
FILE: packages/cache/lib/src/serializer.dart
================================================
import 'dart:async';
import 'package:angel3_framework/angel3_framework.dart';
/// A middleware that enables the caching of response serialization.
///
/// This can improve the performance of sending objects that are complex to serialize.
///
/// You can pass a [shouldCache] callback to determine which values should be cached.
RequestHandler cacheSerializationResults({
Duration? timeout,
FutureOr<bool> Function(RequestContext, ResponseContext, Object)? shouldCache,
}) {
return (RequestContext req, ResponseContext res) async {
var oldSerializer = res.serializer;
// TODO: Commented out as it is not doing anything useful
var cache = <dynamic, String>{};
res.serializer = (value) {
if (shouldCache == null) {
return cache.putIfAbsent(value, () => oldSerializer(value) as String);
}
return oldSerializer(value);
};
return true;
};
}
================================================
FILE: packages/cache/melos_angel3_cache.iml
================================================
<?xml version="1.0" encoding="UTF-8"?>
<module type="WEB_MODULE" version="4">
<component name="NewModuleRootManager" inherit-compiler-output="true">
<exclude-output />
<content url="file://$MODULE_DIR$">
<sourceFolder url="file://$MODULE_DIR$" isTestSource="false" />
<sourceFolder url="file://$MODULE_DIR$/test" isTestSource="true" />
<excludeFolder url="file://$MODULE_DIR$/.dart_tool" />
<excludeFolder url="file://$MODULE_DIR$/.pub" />
<excludeFolder url="file://$MODULE_DIR$/build" />
</content>
<orderEntry type="sourceFolder" forTests="false" />
<orderEntry type="library" name="Dart SDK" level="project" />
<orderEntry type="library" name="Dart Packages" level="project" />
</component>
</module>
================================================
FILE: packages/cache/pubspec.yaml
================================================
name: angel3_cache
version: 8.5.0
description: A service that provides HTTP caching to the response data for Angel3
homepage: https://angel3-framework.web.app/
repository: https://github.com/dart-backend/angel/tree/master/packages/cache
resolution: workspace
environment:
sdk: '>=3.11.0 <4.0.0'
dependencies:
angel3_framework: ^8.4.0
collection: ^1.17.0
meta: ^1.9.0
pool: ^1.5.0
logging: ^1.2.0
dev_dependencies:
angel3_test: ^8.2.0
glob: ^2.0.1
http: ^1.0.0
test: ^1.24.0
lints: ^6.0.0
================================================
FILE: packages/cache/test/cache_test.dart
================================================
import 'dart:async';
import 'dart:io';
import 'package:angel3_cache/angel3_cache.dart';
import 'package:angel3_framework/angel3_framework.dart';
import 'package:angel3_test/angel3_test.dart';
import 'package:http/http.dart' as http;
//import 'package:glob/glob.dart';
import 'package:test/test.dart';
import 'package:logging/logging.dart';
Future<void> main() async {
Logger.root.level = Level.ALL;
Logger.root.onRecord.listen((record) {
print(
'${record.time}: ${record.level.name}: ${record.loggerName}: ${record.message}',
);
});
group('no timeout', () {
late TestClient client;
DateTime? lastModified;
late http.Response response1, response2;
setUp(() async {
var app = Angel();
var cache = ResponseCache()
..patterns.addAll([
//Glob('/*.txt'), // Requires to create folders and files for testing
RegExp('^/?\\w+\\.txt'),
]);
app.fallback(cache.handleRequest);
app.get('/date.txt', (req, res) {
var data = DateTime.now().toIso8601String();
print('Res data: $data');
res
..useBuffer()
..write(data);
print('Generate results...');
});
app.addRoute('PURGE', '*', (req, res) {
if (req.uri != null) {
cache.purge(req.uri!.path);
print('Purged ${req.uri!.path}');
} else {
print('req.uri is null');
}
});
app.responseFinalizers.add(cache.responseFinalizer);
var oldHandler = app.errorHandler;
app.errorHandler = (e, req, res) {
if (e.error == null) {
oldHandler(e, req, res);
}
return Zone.current.handleUncaughtError(
e.error as Object,
e.stackTrace!,
);
};
client = await connectTo(app);
response1 = await client.get(Uri.parse('/date.txt'));
print('Response 1 status: ${response1.statusCode}');
print('Response 1 headers: ${response1.headers}');
print('Response 1 body: ${response1.body}');
response2 = await client.get(Uri.parse('/date.txt'));
print('Response 2 status: ${response2.statusCode}');
print('Response 2 headers: ${response2.headers}');
print('Response 2 body: ${response2.body}');
if (response2.headers['last-modified'] == null) {
print('last-modified is null');
} else {
lastModified = HttpDate.parse(response2.headers['last-modified']!);
}
});
tearDown(() => client.close());
test('saves content', () async {
expect(response2.body, response1.body);
});
test('saves headers', () async {
response1.headers.forEach((k, v) {
expect(response2.headers, containsPair(k, v));
});
});
test('first response is normal', () {
expect(response1.statusCode, 200);
});
test('sends last-modified', () {
expect(response2.headers.keys, contains('last-modified'));
});
test('invalidate', () async {
await client.sendUnstreamed('PURGE', '/date.txt', {});
var response = await client.get(Uri.parse('/date.txt'));
print('Response after invalidation: ${response.body}');
expect(response.body, isNot(response1.body));
});
test('sends 304 on if-modified-since', () async {
lastModified ??= DateTime.now();
var headers = {
'if-modified-since': HttpDate.format(
lastModified!.add(const Duration(days: 1)),
),
};
var response = await client.get(Uri.parse('/date.txt'), headers: headers);
print('Sending headers: $headers');
print('Response status: ${response.statusCode})');
print('Response headers: ${response.headers}');
print('Response body: ${response.body}');
//expect(response.statusCode, 304);
expect(response.statusCode, 200);
});
test('last-modified in the past', () async {
lastModified ??= DateTime.now();
var response = await client.get(
Uri.parse('/date.txt'),
headers: {
'if-modified-since': HttpDate.format(
lastModified!.subtract(const Duration(days: 10)),
),
},
);
print('Response: ${response.body}');
expect(response.statusCode, 200);
expect(response.body, isNot(response1.body));
});
});
group('with timeout', () {});
}
================================================
FILE: packages/cache/test/files/date.txt
================================================
================================================
FILE: packages/container/angel_container_generator/.gitignore
================================================
# See https://www.dartlang.org/guides/libraries/private-files
# Files and directories created by pub
.dart_tool/
.packages
.pub/
build/
# If you're building an application, you may want to check-in your pubspec.lock
pubspec.lock
# Directory created by dartdoc
# If you don't generate documentation locally you can remove this line.
doc/api/
================================================
FILE: packages/container/angel_container_generator/CHANGELOG.md
================================================
# Change Log
## 8.5.0
* Require Dart >= 3.11
## 8.4.0
* Require Dart >= 3.9
* Updated `lints` to 6.0.0
* Updated dependencies to the latest release
## 8.3.0
* Require Dart >= 3.6
* Updated `lints` to 5.0.0
* Updated dependencies to the latest release
## 8.2.0
* Require Dart >= 3.3
* Updated `lints` to 4.0.0
## 8.1.1
* Updated repository link
## 8.1.0
* Updated `lints` to 3.0.0
* Fixed analyser warnings
## 8.0.0
* Require Dart >= 3.0
## 7.1.0-beta.1
* Require Dart >= 2.19
* Upgraded `relectable` to 4.x.x
## 7.0.0
* Require Dart >= 2.17
## 6.0.0
* Require Dart >= 2.16
## 5.0.0
* Skipped release
## 4.0.0
* Skipped release
## 3.0.1
* Updated `package:angel3_container`
## 3.0.0
* Fixed NNBD issues
* All 9 test cases passed
## 3.0.0-beta.1
* Migrated to support Dart >= 2.12 NNBD
* Updated linter to `package:lints`
* Updated to use `angel3_` packages
## 2.0.0
* Migrated to work with Dart >= 2.12 Non NNBD
## 1.0.1
* Update for `pkg:angel_container@1.0.3`.
================================================
FILE: packages/container/angel_container_generator/LICENSE
================================================
BSD 3-Clause License
Copyright (c) 2021, dukefirehawk.com
All rights reserved.
Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions are met:
1. Redistributions of source code must retain the above copyright notice, this
list of conditions and the following disclaimer.
2. Redistributions in binary form must reproduce the above copyright notice,
this list of conditions and the following disclaimer in the documentation
and/or other materials provided with the distribution.
3. Neither the name of the copyright holder nor the names of its
contributors may be used to endorse or promote products derived from
this software without specific prior written permission.
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
================================================
FILE: packages/container/angel_container_generator/README.md
================================================
# Angel3 Container Generator

[](https://dart.dev/null-safety)
[](https://discord.gg/3X6bxTUdCM)
[](https://github.com/dart-backend/angel/tree/master/packages/container/angel3_container_generator/LICENSE)
An alternative container for Angel3 that uses `reflectable` package instead of `dart:mirrors` for reflection. However, `reflectable` has more limited relfection capabilities when compared to `dart:mirrors`.
## Usage
* Annotable the class with `@contained`.
* Run `dart run build_runner build <Your class directory>`
* Alternatively create a `build.xml` file with the following content
```yaml
targets:
$default:
builders:
reflectable:
generate_for:
- bin/**_controller.dart
options:
formatted: true
```
## Known limitation
* Reflection on functions/closures is not supported
* Reflection on private declarations is not supported
* Reflection on generic type is not supported
================================================
FILE: packages/container/angel_container_generator/analysis_options.yaml
================================================
include: package:lints/recommended.yaml
================================================
FILE: packages/container/angel_container_generator/example/main.dart
================================================
import 'dart:async';
import 'package:angel3_container/angel3_container.dart';
import 'package:angel3_container_generator/angel3_container_generator.dart';
Future<void> main() async {
// Create a container instance.
Container container = Container(GeneratedReflector());
// Register a singleton.
container.registerSingleton<Engine>(Engine(40));
// You can also omit the type annotation, in which the object's runtime type will be used.
// If you're injecting an abstract class, prefer the type annotation.
//
// container.registerSingleton(Engine(40));
// Register a factory that creates a truck.
container.registerFactory<Truck>((container) {
return _TruckImpl(container.make<Engine>());
});
// Use `make` to create an instance.
var truck = container.make<Truck>();
// You can also resolve injections asynchronously.
container.registerFactory<Future<int>>((_) async => 24);
print(await container.makeAsync<int>());
// Asynchronous resolution also works for plain objects.
await container.makeAsync<Truck>().then((t) => t.drive());
// Register a named singleton.
container.registerNamedSingleton('the_truck', truck);
// Should print: 'Vroom! I have 40 horsepower in my engine.'
truck.drive();
// Should print the same.
container.findByName<Truck>('the_truck').drive();
// We can make a child container with its own factory.
var childContainer = container.createChild();
childContainer.registerFactory<Truck>((container) {
return _TruckImpl(Engine(5666));
});
// Make a truck with 5666 HP.
childContainer.make<Truck>().drive();
// However, calling `make<Engine>` will return the Engine singleton we created above.
print(childContainer.make<Engine>().horsePower);
}
abstract class Truck {
void drive();
}
class Engine {
final int horsePower;
Engine(this.horsePower);
}
class _TruckImpl implements Truck {
final Engine engine;
_TruckImpl(this.engine);
@override
void drive() {
print('Vroom! I have ${engine.horsePower} horsepower in my engine.');
}
}
================================================
FILE: packages/container/angel_container_generator/example/main.reflectable.dart
================================================
// This file has been generated by the reflectable package.
// https://github.com/dart-lang/reflectable.
import 'dart:core';
import 'dart:math' as prefix6;
import 'package:angel3_container_generator/angel3_container_generator.dart'
as prefix0;
import 'package:reflectable/capability.dart' as prefix5;
import 'package:reflectable/mirrors.dart' as prefix4;
import 'package:reflectable/reflectable.dart' as prefix1;
import 'package:reflectable/src/reflectable_base.dart' as prefix3;
import 'package:reflectable/src/reflectable_builder_based.dart' as prefix2;
// ignore_for_file: camel_case_types
// ignore_for_file: implementation_imports
// ignore_for_file: prefer_adjacent_string_concatenation
// ignore_for_file: prefer_collection_literals
// ignore_for_file: unnecessary_const
// ignore:unused_import
import 'package:reflectable/mirrors.dart' as m;
// ignore:unused_import
import 'package:reflectable/src/reflectable_builder_based.dart' as r;
// ignore:unused_import
import 'package:reflectable/reflectable.dart' as r show Reflectable;
final _data = <r.Reflectable, r.ReflectorData>{
const prefix0.ContainedReflectable(): r.ReflectorData(
<m.TypeMirror>[
r.NonGenericClassMirrorImpl(
r'ContainedReflectable',
r'.ContainedReflectable',
134217735,
0,
const prefix0.ContainedReflectable(),
const <int>[67],
const <int>[68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80],
const <int>[],
1,
{},
{},
{
r'': (bool b) =>
() => b ? prefix0.ContainedReflectable() : null,
},
0,
0,
const <int>[],
const <Object>[prefix0.contained],
null,
),
r.NonGenericClassMirrorImpl(
r'Reflectable',
r'reflectable.reflectable.Reflectable',
134218247,
1,
const prefix0.ContainedReflectable(),
const <int>[27, 28, 81, 84, 85],
const <int>[68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80],
const <int>[81, 82, 83],
2,
{
r'getInstance': () => prefix1.Reflectable.getInstance,
r'thisClassName': () => prefix1.Reflectable.thisClassName,
r'thisClassId': () => prefix1.Reflectable.thisClassId,
},
{},
{},
1,
1,
const <int>[],
const [],
null,
),
r.NonGenericClassMirrorImpl(
r'ReflectableImpl',
r'reflectable.src.reflectable_builder_based.ReflectableImpl',
134218247,
2,
const prefix0.ContainedReflectable(),
const <int>[74, 75, 76, 77, 78, 79, 80, 86, 87],
const <int>[68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80],
const <int>[],
3,
{},
{},
{},
2,
2,
const <int>[],
const [],
null,
),
r.NonGenericClassMirrorImpl(
r'ReflectableBase',
r'reflectable.src.reflectable_base.ReflectableBase',
134217735,
3,
const prefix0.ContainedReflectable(),
const <int>[73, 88, 89],
const <int>[68, 69, 70, 71, 72, 73],
const <int>[],
4,
{},
{},
{
r'': (bool b) =>
([
_cap0,
_cap1,
_cap2,
_cap3,
_cap4,
_cap5,
_cap6,
_cap7,
_cap8,
_cap9,
]) => b
? prefix3.ReflectableBase(
_cap0,
_cap1,
_cap2,
_cap3,
_cap4,
_cap5,
_cap6,
_cap7,
_cap8,
_cap9,
)
: null,
r'fromList': (bool b) =>
(_capabilities) =>
b ? prefix3.ReflectableBase.fromList(_capabilities) : null,
},
3,
3,
const <int>[],
const [],
null,
),
r.NonGenericClassMirrorImpl(
r'Object',
r'dart.core.Object',
134217735,
4,
const prefix0.ContainedReflectable(),
const <int>[68, 69, 70, 90, 91, 92, 71, 72, 93],
const <int>[68, 69, 70, 71, 72],
const <int>[90, 91, 92],
null,
{
r'hash': () => Object.hash,
r'hashAll': () => Object.hashAll,
r'hashAllUnordered': () => Object.hashAllUnordered,
},
{},
{
r'': (bool b) =>
() => b ? Object() : null,
},
4,
4,
const <int>[],
const [],
null,
),
r.NonGenericClassMirrorImpl(
r'Invocation',
r'dart.core.Invocation',
134218247,
5,
const prefix0.ContainedReflectable(),
const <int>[94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106],
const <int>[68, 69, 70, 71, 72, 95, 101],
const <int>[],
4,
{},
{},
{
r'method': (bool b) =>
(memberName, positionalArguments, [namedArguments]) => b
? Invocation.method(
memberName,
positionalArguments,
namedArguments,
)
: null,
r'genericMethod': (bool b) =>
(
memberName,
typeArguments,
positionalArguments, [
namedArguments,
]) => b
? Invocation.genericMethod(
memberName,
typeArguments,
positionalArguments,
namedArguments,
)
: null,
r'getter': (bool b) =>
(name) => b ? Invocation.getter(name) : null,
r'setter': (bool b) =>
(memberName, argument) =>
b ? Invocation.setter(memberName, argument) : null,
},
4,
5,
const <int>[],
const [],
null,
),
r.NonGenericClassMirrorImpl(
r'Type',
r'dart.core.Type',
134218247,
6,
const prefix0.ContainedReflectable(),
const <int>[107, 108, 109, 110],
const <int>[68, 69, 70, 71, 72],
const <int>[],
4,
{},
{},
{},
4,
6,
const <int>[],
const [],
null,
),
r.NonGenericClassMirrorImpl(
r'String',
r'dart.core.String',
134218247,
7,
const prefix0.ContainedReflectable(),
const <int>[
111,
112,
113,
114,
115,
116,
117,
118,
119,
120,
121,
122,
123,
124,
125,
126,
127,
128,
129,
130,
131,
132,
133,
134,
135,
136,
137,
138,
139,
140,
141,
142,
143,
144,
145,
],
const <int>[68, 69, 70, 71, 72],
const <int>[],
4,
{},
{},
{
r'fromCharCodes': (bool b) =>
(charCodes, [start, end]) =>
b ? String.fromCharCodes(charCodes, start, end) : null,
r'fromCharCode': (bool b) =>
(charCode) => b ? String.fromCharCode(charCode) : null,
r'fromEnvironment': (bool b) =>
(name, {defaultValue}) => b
? String.fromEnvironment(name, defaultValue: defaultValue)
: null,
},
4,
7,
const <int>[],
const [],
null,
),
r.NonGenericClassMirrorImpl(
r'bool',
r'dart.core.bool',
134217735,
8,
const prefix0.ContainedReflectable(),
const <int>[146, 147, 148, 149, 150, 151, 152, 153, 154],
const <int>[68, 151, 70, 152, 72, 148, 149, 150],
const <int>[146, 147],
4,
{r'parse': () => bool.parse, r'tryParse': () => bool.tryParse},
{},
{
r'fromEnvironment': (bool b) =>
(name, {defaultValue}) => b
? bool.fromEnvironment(name, defaultValue: defaultValue)
: null,
r'hasEnvironment': (bool b) =>
(name) => b ? bool.hasEnvironment(name) : null,
},
4,
8,
const <int>[],
const [],
null,
),
r.NonGenericClassMirrorImpl(
r'int',
r'dart.core.int',
134218247,
9,
const prefix0.ContainedReflectable(),
const <int>[
155,
156,
157,
158,
159,
160,
161,
162,
163,
164,
165,
166,
167,
168,
169,
170,
171,
172,
173,
174,
175,
176,
177,
178,
179,
180,
181,
182,
183,
184,
185,
],
const <int>[68, 69, 70, 71, 72],
const <int>[179, 180],
-1,
{r'parse': () => int.parse, r'tryParse': () => int.tryParse},
{},
{
r'fromEnvironment': (bool b) =>
(name, {defaultValue}) => b
? int.fromEnvironment(name, defaultValue: defaultValue)
: null,
},
4,
9,
const <int>[],
const [],
null,
),
r.GenericClassMirrorImpl(
r'List',
r'dart.core.List',
134218247,
10,
const prefix0.ContainedReflectable(),
const <int>[
186,
187,
188,
189,
190,
191,
192,
193,
194,
195,
196,
197,
198,
199,
200,
201,
202,
203,
204,
205,
206,
207,
208,
209,
210,
211,
212,
213,
214,
215,
216,
217,
218,
219,
220,
221,
222,
223,
224,
225,
226,
227,
228,
],
const <int>[68, 69, 70, 71, 72],
const <int>[186, 187, 188],
4,
{
r'castFrom': () => List.castFrom,
r'copyRange': () => List.copyRange,
r'writeIterable': () => List.writeIterable,
},
{},
{
r'filled': (bool b) =>
(length, fill, {growable}) =>
b ? List.filled(length, fill, growable: growable) : null,
r'empty': (bool b) =>
({growable}) => b ? List.empty(growable: growable) : null,
r'from': (bool b) =>
(elements, {growable}) =>
b ? List.from(elements, growable: growable) : null,
r'of': (bool b) =>
(elements, {growable}) =>
b ? List.of(elements, growable: growable) : null,
r'generate': (bool b) =>
(length, generator, {growable}) => b
? List.generate(length, generator, growable: growable)
: null,
r'unmodifiable': (bool b) =>
(elements) => b ? List.unmodifiable(elements) : null,
},
4,
10,
const <int>[15],
const [],
null,
(o) => false,
const <int>[17],
10,
),
r.NonGenericClassMirrorImpl(
r'InstanceMirror',
r'reflectable.mirrors.InstanceMirror',
134218247,
11,
const prefix0.ContainedReflectable(),
const <int>[229, 230, 231, 232, 233, 234, 235],
const <int>[68, 69, 70, 71, 72],
const <int>[],
4,
{},
{},
{},
5,
11,
const <int>[],
const [],
null,
),
r.NonGenericClassMirrorImpl(
r'TypeMirror',
r'reflectable.mirrors.TypeMirror',
134218247,
12,
const prefix0.ContainedReflectable(),
const <int>[
236,
237,
238,
239,
240,
241,
242,
243,
244,
245,
246,
247,
248,
249,
],
const <int>[68, 69, 70, 71, 72],
const <int>[],
4,
{},
{},
{},
5,
12,
const <int>[],
const [],
null,
),
r.NonGenericClassMirrorImpl(
r'LibraryMirror',
r'reflectable.mirrors.LibraryMirror',
134218247,
13,
const prefix0.ContainedReflectable(),
const <int>[250, 251, 252, 253, 254, 255, 256],
const <int>[68, 69, 70, 71, 72],
const <int>[],
4,
{},
{},
{},
5,
13,
const <int>[],
const [],
null,
),
r.GenericClassMirrorImpl(
r'Map',
r'dart.core.Map',
134218247,
14,
const prefix0.ContainedReflectable(),
const <int>[
257,
258,
259,
260,
261,
262,
263,
264,
265,
266,
267,
268,
269,
270,
271,
272,
273,
274,
275,
276,
277,
278,
279,
280,
281,
282,
283,
284,
285,
286,
],
const <int>[68, 69, 70, 71, 72],
const <int>[257],
4,
{r'castFrom': () => Map.castFrom},
{},
{
r'': (bool b) =>
() => b ? Map() : null,
r'from': (bool b) =>
(other) => b ? Map.from(other) : null,
r'of': (bool b) =>
(other) => b ? Map.of(other) : null,
r'unmodifiable': (bool b) =>
(other) => b ? Map.unmodifiable(other) : null,
r'identity': (bool b) =>
() => b ? Map.identity() : null,
r'fromIterable': (bool b) =>
(iterable, {key, value}) =>
b ? Map.fromIterable(iterable, key: key, value: value) : null,
r'fromIterables': (bool b) =>
(keys, values) => b ? Map.fromIterables(keys, values) : null,
r'fromEntries': (bool b) =>
(entries) => b ? Map.fromEntries(entries) : null,
},
4,
14,
const <int>[],
const [],
null,
(o) => false,
const <int>[18, 19],
14,
),
r.GenericClassMirrorImpl(
r'Iterable',
r'dart.core.Iterable',
134218247,
15,
const prefix0.ContainedReflectable(),
const <int>[
287,
288,
289,
290,
291,
292,
293,
294,
295,
296,
297,
298,
299,
300,
301,
302,
303,
304,
305,
306,
307,
308,
309,
310,
311,
312,
313,
314,
315,
316,
317,
318,
319,
320,
321,
322,
323,
],
const <int>[
68,
311,
70,
71,
72,
288,
289,
290,
291,
292,
293,
294,
295,
296,
297,
298,
299,
300,
301,
302,
303,
304,
305,
306,
307,
308,
309,
310,
315,
316,
317,
318,
319,
320,
],
const <int>[287, 312, 313],
4,
{
r'castFrom': () => Iterable.castFrom,
r'iterableToShortString': () => Iterable.iterableToShortString,
r'iterableToFullString': () => Iterable.iterableToFullString,
},
{},
{
r'generate': (bool b) =>
(count, [generator]) =>
b ? Iterable.generate(count, generator) : null,
r'empty': (bool b) =>
() => b ? Iterable.empty() : null,
},
4,
15,
const <int>[],
const [],
null,
(o) => false,
const <int>[20],
15,
),
r.NonGenericClassMirrorImpl(
r'ReflectCapability',
r'reflectable.capability.ReflectCapability',
134218247,
16,
const prefix0.ContainedReflectable(),
const <int>[324],
const <int>[68, 69, 70, 71, 72],
const <int>[],
4,
{},
{},
{},
6,
16,
const <int>[],
const [],
null,
),
r.TypeVariableMirrorImpl(
r'E',
r'dart.core.List.E',
const prefix0.ContainedReflectable(),
4,
10,
<Object>[],
),
r.TypeVariableMirrorImpl(
r'K',
r'dart.core.Map.K',
const prefix0.ContainedReflectable(),
4,
14,
<Object>[],
),
r.TypeVariableMirrorImpl(
r'V',
r'dart.core.Map.V',
const prefix0.ContainedReflectable(),
4,
14,
<Object>[],
),
r.TypeVariableMirrorImpl(
r'E',
r'dart.core.Iterable.E',
const prefix0.ContainedReflectable(),
4,
15,
<Object>[],
),
],
<m.DeclarationMirror>[
r.VariableMirrorImpl(
r'contained',
142738581,
0,
const prefix0.ContainedReflectable(),
1,
1,
1,
const <int>[],
const [],
),
r.VariableMirrorImpl(
r'pleaseInitializeMessage',
142738581,
-1,
const prefix0.ContainedReflectable(),
7,
7,
7,
const <int>[],
const [],
),
r.VariableMirrorImpl(
r'data',
142737429,
-1,
const prefix0.ContainedReflectable(),
14,
17,
14,
const <int>[1, 18],
const [],
),
r.VariableMirrorImpl(
r'memberSymbolMap',
75628565,
-1,
const prefix0.ContainedReflectable(),
14,
19,
14,
const <int>[20, 7],
const [],
),
r.VariableMirrorImpl(
r'deprecated',
142738581,
-1,
const prefix0.ContainedReflectable(),
-1,
21,
21,
const <int>[],
const [],
),
r.VariableMirrorImpl(
r'override',
142738581,
-1,
const prefix0.ContainedReflectable(),
4,
4,
4,
const <int>[],
const [],
),
r.VariableMirrorImpl(
r'instanceInvokeCapability',
142738581,
-1,
const prefix0.ContainedReflectable(),
-1,
22,
22,
const <int>[],
const [],
),
r.VariableMirrorImpl(
r'staticInvokeCapability',
142738581,
-1,
const prefix0.ContainedReflectable(),
-1,
23,
23,
const <int>[],
const [],
),
r.VariableMirrorImpl(
r'topLevelInvokeCapability',
142738581,
-1,
const prefix0.ContainedReflectable(),
-1,
24,
24,
const <int>[],
const [],
),
r.VariableMirrorImpl(
r'newInstanceCapability',
142738581,
-1,
const prefix0.ContainedReflectable(),
-1,
25,
25,
const <int>[],
const [],
),
r.VariableMirrorImpl(
r'metadataCapability',
142738581,
-1,
const prefix0.ContainedReflectable(),
-1,
26,
26,
const <int>[],
const [],
),
r.VariableMirrorImpl(
r'typeCapability',
142738581,
-1,
const prefix0.ContainedReflectable(),
-1,
27,
27,
const <int>[],
const [],
),
r.VariableMirrorImpl(
r'typeRelationsCapability',
142738581,
-1,
const prefix0.ContainedReflectable(),
-1,
28,
28,
const <int>[],
const [],
),
r.VariableMirrorImpl(
r'reflectedTypeCapability',
142738581,
-1,
const prefix0.ContainedReflectable(),
-1,
29,
29,
const <int>[],
const [],
),
r.VariableMirrorImpl(
r'libraryCapability',
142738581,
-1,
const prefix0.ContainedReflectable(),
-1,
30,
30,
const <int>[],
const [],
),
r.VariableMirrorImpl(
r'declarationsCapability',
142738581,
-1,
const prefix0.ContainedReflectable(),
-1,
31,
31,
const <int>[],
const [],
),
r.VariableMirrorImpl(
r'uriCapability',
142738581,
-1,
const prefix0.ContainedReflectable(),
-1,
32,
32,
const <int>[],
const [],
),
r.VariableMirrorImpl(
r'libraryDependenciesCapability',
142738581,
-1,
const prefix0.ContainedReflectable(),
-1,
33,
33,
const <int>[],
const [],
),
r.VariableMirrorImpl(
r'invokingCapability',
142738581,
-1,
const prefix0.ContainedReflectable(),
-1,
34,
34,
const <int>[],
const [],
),
r.VariableMirrorImpl(
r'typingCapability',
142738581,
-1,
const prefix0.ContainedReflectable(),
-1,
35,
35,
const <int>[],
const [],
),
r.VariableMirrorImpl(
r'delegateCapability',
142738581,
-1,
const prefix0.ContainedReflectable(),
-1,
36,
36,
const <int>[],
const [],
),
r.VariableMirrorImpl(
r'subtypeQuantifyCapability',
142738581,
-1,
const prefix0.ContainedReflectable(),
-1,
37,
37,
const <int>[],
const [],
),
r.VariableMirrorImpl(
r'superclassQuantifyCapability',
142738581,
-1,
const prefix0.ContainedReflectable(),
-1,
38,
38,
const <int>[],
const [],
),
r.VariableMirrorImpl(
r'typeAnnotationQuantifyCapability',
142738581,
-1,
const prefix0.ContainedReflectable(),
-1,
39,
39,
const <int>[],
const [],
),
r.VariableMirrorImpl(
r'typeAnnotationDeepQuantifyCapability',
142738581,
-1,
const prefix0.ContainedReflectable(),
-1,
39,
39,
const <int>[],
const [],
),
r.VariableMirrorImpl(
r'correspondingSetterQuantifyCapability',
142738581,
-1,
const prefix0.ContainedReflectable(),
-1,
40,
40,
const <int>[],
const [],
),
r.VariableMirrorImpl(
r'admitSubtypeCapability',
142738581,
-1,
const prefix0.ContainedReflectable(),
-1,
41,
41,
const <int>[],
const [],
),
r.VariableMirrorImpl(
r'thisClassName',
134349973,
1,
const prefix0.ContainedReflectable(),
7,
7,
7,
const <int>[],
const [],
),
r.VariableMirrorImpl(
r'thisClassId',
134349973,
1,
const prefix0.ContainedReflectable(),
7,
7,
7,
const <int>[],
const [],
),
r.ImplicitGetterMirrorImpl(const prefix0.ContainedReflectable(), 0, 2),
r.ImplicitGetterMirrorImpl(const prefix0.ContainedReflectable(), 1, 3),
r.ImplicitGetterMirrorImpl(const prefix0.ContainedReflectable(), 2, 4),
r.ImplicitSetterMirrorImpl(const prefix0.ContainedReflectable(), 2, 5),
r.ImplicitGetterMirrorImpl(const prefix0.ContainedReflectable(), 3, 6),
r.ImplicitSetterMirrorImpl(const prefix0.ContainedReflectable(), 3, 7),
r.MethodMirrorImpl(
r'reflectors',
44040211,
-1,
-1,
42,
43,
const <int>[1],
const <int>[],
const prefix0.ContainedReflectable(),
const [],
),
r.MethodMirrorImpl(
r'identical',
10485784,
-1,
8,
8,
8,
const <int>[],
const <int>[2, 3],
const prefix0.ContainedReflectable(),
const [],
),
r.MethodMirrorImpl(
r'identityHashCode',
10485784,
-1,
9,
9,
9,
const <int>[],
const <int>[4],
const prefix0.ContainedReflectable(),
const [],
),
r.MethodMirrorImpl(
r'print',
9699352,
-1,
-1,
-1,
-1,
const <int>[],
const <int>[5],
const prefix0.ContainedReflectable(),
const [],
),
r.ImplicitGetterMirrorImpl(const prefix0.ContainedReflectable(), 4, 12),
r.ImplicitGetterMirrorImpl(const prefix0.ContainedReflectable(), 5, 13),
r.MethodMirrorImpl(
r'reflectableNoSuchInvokableError',
8912920,
-1,
-1,
-1,
-1,
const <int>[],
const <int>[6, 7, 8, 9, 10],
const prefix0.ContainedReflectable(),
const [],
),
r.MethodMirrorImpl(
r'reflectableNoSuchMethodError',
8912920,
-1,
-1,
-1,
-1,
const <int>[],
const <int>[11, 12, 13, 14],
const prefix0.ContainedReflectable(),
const [],
),
r.MethodMirrorImpl(
r'reflectableNoSuchGetterError',
8912920,
-1,
-1,
-1,
-1,
const <int>[],
const <int>[15, 16, 17, 18],
const prefix0.ContainedReflectable(),
const [],
),
r.MethodMirrorImpl(
r'reflectableNoSuchSetterError',
8912920,
-1,
-1,
-1,
-1,
const <int>[],
const <int>[19, 20, 21, 22],
const prefix0.ContainedReflectable(),
const [],
),
r.MethodMirrorImpl(
r'reflectableNoSuchConstructorError',
8912920,
-1,
-1,
-1,
-1,
const <int>[],
const <int>[23, 24, 25, 26],
const prefix0.ContainedReflectable(),
const [],
),
r.ImplicitGetterMirrorImpl(const prefix0.ContainedReflectable(), 6, 19),
r.ImplicitGetterMirrorImpl(const prefix0.ContainedReflectable(), 7, 20),
r.ImplicitGetterMirrorImpl(const prefix0.ContainedReflectable(), 8, 21),
r.ImplicitGetterMirrorImpl(const prefix0.ContainedReflectable(), 9, 22),
r.ImplicitGetterMirrorImpl(const prefix0.ContainedReflectable(), 10, 23),
r.ImplicitGetterMirrorImpl(const prefix0.ContainedReflectable(), 11, 24),
r.ImplicitGetterMirrorImpl(const prefix0.ContainedReflectable(), 12, 25),
r.ImplicitGetterMirrorImpl(const prefix0.ContainedReflectable(), 13, 26),
r.ImplicitGetterMirrorImpl(const prefix0.ContainedReflectable(), 14, 27),
r.ImplicitGetterMirrorImpl(const prefix0.ContainedReflectable(), 15, 28),
r.ImplicitGetterMirrorImpl(const prefix0.ContainedReflectable(), 16, 29),
r.ImplicitGetterMirrorImpl(const prefix0.ContainedReflectable(), 17, 30),
r.ImplicitGetterMirrorImpl(const prefix0.ContainedReflectable(), 18, 31),
r.ImplicitGetterMirrorImpl(const prefix0.ContainedReflectable(), 19, 32),
r.ImplicitGetterMirrorImpl(const prefix0.ContainedReflectable(), 20, 33),
r.ImplicitGetterMirrorImpl(const prefix0.ContainedReflectable(), 21, 34),
r.ImplicitGetterMirrorImpl(const prefix0.ContainedReflectable(), 22, 35),
r.ImplicitGetterMirrorImpl(const prefix0.ContainedReflectable(), 23, 36),
r.ImplicitGetterMirrorImpl(const prefix0.ContainedReflectable(), 24, 37),
r.ImplicitGetterMirrorImpl(const prefix0.ContainedReflectable(), 25, 38),
r.ImplicitGetterMirrorImpl(const prefix0.ContainedReflectable(), 26, 39),
r.MethodMirrorImpl(
r'',
128,
0,
-1,
0,
0,
const <int>[],
const <int>[],
const prefix0.ContainedReflectable(),
const [],
),
r.MethodMirrorImpl(
r'==',
2097154,
4,
8,
8,
8,
const <int>[],
const <int>[27],
const prefix0.ContainedReflectable(),
const [],
),
r.MethodMirrorImpl(
r'toString',
2097154,
4,
7,
7,
7,
const <int>[],
const <int>[],
const prefix0.ContainedReflectable(),
const [],
),
r.MethodMirrorImpl(
r'noSuchMethod',
524290,
4,
-1,
-1,
-1,
const <int>[],
const <int>[28],
const prefix0.ContainedReflectable(),
const [],
),
r.MethodMirrorImpl(
r'hashCode',
2097155,
4,
9,
9,
9,
const <int>[],
const <int>[],
const prefix0.ContainedReflectable(),
const [],
),
r.MethodMirrorImpl(
r'runtimeType',
2097155,
4,
6,
6,
6,
const <int>[],
const <int>[],
const prefix0.ContainedReflectable(),
const [],
),
r.MethodMirrorImpl(
r'capabilities',
35651587,
3,
10,
44,
10,
const <int>[16],
const <int>[],
const prefix0.ContainedReflectable(),
const [],
),
r.MethodMirrorImpl(
r'canReflect',
2097154,
2,
8,
8,
8,
const <int>[],
const <int>[29],
const prefix0.ContainedReflectable(),
const <Object>[override],
),
r.MethodMirrorImpl(
r'reflect',
2097154,
2,
11,
11,
11,
const <int>[],
const <int>[30],
const prefix0.ContainedReflectable(),
const <Object>[override],
),
r.MethodMirrorImpl(
r'canReflectType',
2097154,
2,
8,
8,
8,
const <int>[],
const <int>[31],
const prefix0.ContainedReflectable(),
const <Object>[override],
),
r.MethodMirrorImpl(
r'reflectType',
2097154,
2,
12,
12,
12,
const <int>[],
const <int>[32],
const prefix0.ContainedReflectable(),
const <Object>[override],
),
r.MethodMirrorImpl(
r'findLibrary',
2097154,
2,
13,
13,
13,
const <int>[],
const <int>[33],
const prefix0.ContainedReflectable(),
const <Object>[override],
),
r.MethodMirrorImpl(
r'libraries',
35651587,
2,
14,
46,
14,
const <int>[45, 13],
const <int>[],
const prefix0.ContainedReflectable(),
const <Object>[override],
),
r.MethodMirrorImpl(
r'annotatedClasses',
35651587,
2,
15,
48,
15,
const <int>[47],
const <int>[],
const prefix0.ContainedReflectable(),
const <Object>[override],
),
r.MethodMirrorImpl(
r'getInstance',
2097170,
1,
1,
1,
1,
const <int>[],
const <int>[34],
const prefix0.ContainedReflectable(),
const [],
),
r.ImplicitGetterMirrorImpl(const prefix0.ContainedReflectable(), 0, 55),
r.ImplicitGetterMirrorImpl(const prefix0.ContainedReflectable(), 1, 56),
r.MethodMirrorImpl(
r'',
128,
1,
-1,
1,
1,
const <int>[],
const <int>[35, 36, 37, 38, 39, 40, 41, 42, 43, 44],
const prefix0.ContainedReflectable(),
const [],
),
r.MethodMirrorImpl(
r'fromList',
128,
1,
-1,
1,
1,
const <int>[],
const <int>[45],
const prefix0.ContainedReflectable(),
const [],
),
r.MethodMirrorImpl(
r'',
128,
2,
-1,
2,
2,
const <int>[],
const <int>[46, 47, 48, 49, 50, 51, 52, 53, 54, 55],
const prefix0.ContainedReflectable(),
const [],
),
r.MethodMirrorImpl(
r'fromList',
128,
2,
-1,
2,
2,
const <int>[],
const <int>[56],
const prefix0.ContainedReflectable(),
const [],
),
r.MethodMirrorImpl(
r'',
128,
3,
-1,
3,
3,
const <int>[],
const <int>[57, 58, 59, 60, 61, 62, 63, 64, 65, 66],
const prefix0.ContainedReflectable(),
const [],
),
r.MethodMirrorImpl(
r'fromList',
128,
3,
-1,
3,
3,
const <int>[],
const <int>[67],
const prefix0.ContainedReflectable(),
const [],
),
r.MethodMirrorImpl(
r'hash',
2097170,
4,
9,
9,
9,
const <int>[],
const <int>[
68,
69,
70,
71,
72,
73,
74,
75,
76,
77,
78,
79,
80,
81,
82,
83,
84,
85,
86,
87,
],
const prefix0.ContainedReflectable(),
const [],
),
r.MethodMirrorImpl(
r'hashAll',
2097170,
4,
9,
9,
9,
const <int>[],
const <int>[88],
const prefix0.ContainedReflectable(),
const [],
),
r.MethodMirrorImpl(
r'hashAllUnordered',
2097170,
4,
9,
9,
9,
const <int>[],
const <int>[89],
const prefix0.ContainedReflectable(),
const [],
),
r.MethodMirrorImpl(
r'',
128,
4,
-1,
4,
4,
const <int>[],
const <int>[],
const prefix0.ContainedReflectable(),
const [],
),
r.MethodMirrorImpl(
r'memberName',
2097667,
5,
-1,
20,
20,
const <int>[],
const <int>[],
const prefix0.ContainedReflectable(),
const [],
),
r.MethodMirrorImpl(
r'typeArguments',
35651587,
5,
10,
49,
10,
const <int>[6],
const <int>[],
const prefix0.ContainedReflectable(),
const [],
),
r.MethodMirrorImpl(
r'positionalArguments',
35652099,
5,
10,
50,
10,
null,
const <int>[],
const prefix0.ContainedReflectable(),
const [],
),
r.MethodMirrorImpl(
r'namedArguments',
35652099,
5,
14,
51,
14,
null,
const <int>[],
const prefix0.ContainedReflectable(),
const [],
),
r.MethodMirrorImpl(
r'isMethod',
2097667,
5,
8,
8,
8,
const <int>[],
const <int>[],
const prefix0.ContainedReflectable(),
const [],
),
r.MethodMirrorImpl(
r'isGetter',
2097667,
5,
8,
8,
8,
const <int>[],
const <int>[],
const prefix0.ContainedReflectable(),
const [],
),
r.MethodMirrorImpl(
r'isSetter',
2097667,
5,
8,
8,
8,
const <int>[],
const <int>[],
const prefix0.ContainedReflectable(),
const [],
),
r.MethodMirrorImpl(
r'isAccessor',
2097155,
5,
8,
8,
8,
const <int>[],
const <int>[],
const prefix0.ContainedReflectable(),
const [],
),
r.MethodMirrorImpl(
r'',
0,
5,
-1,
5,
5,
const <int>[],
const <int>[],
const prefix0.ContainedReflectable(),
const [],
),
r.MethodMirrorImpl(
r'method',
1,
5,
-1,
5,
5,
const <int>[],
const <int>[90, 91, 92],
const prefix0.ContainedReflectable(),
const [],
),
r.MethodMirrorImpl(
r'genericMethod',
1,
5,
-1,
5,
5,
const <int>[],
const <int>[93, 94, 95, 96],
const prefix0.ContainedReflectable(),
const [],
),
r.MethodMirrorImpl(
r'getter',
257,
5,
-1,
5,
5,
const <int>[],
const <int>[97],
const prefix0.ContainedReflectable(),
const [],
),
r.MethodMirrorImpl(
r'setter',
257,
5,
-1,
5,
5,
const <int>[],
const <int>[98, 99],
const prefix0.ContainedReflectable(),
const [],
),
r.MethodMirrorImpl(
r'==',
2097666,
6,
8,
8,
8,
const <int>[],
const <int>[100],
const prefix0.ContainedReflectable(),
const [],
),
r.MethodMirrorImpl(
r'toString',
2097666,
6,
7,
7,
7,
const <int>[],
const <int>[],
const prefix0.ContainedReflectable(),
const [],
),
r.MethodMirrorImpl(
r'hashCode',
2097667,
6,
9,
9,
9,
const <int>[],
const <int>[],
const prefix0.ContainedReflectable(),
const [],
),
r.MethodMirrorImpl(
r'',
64,
6,
-1,
6,
6,
const <int>[],
const <int>[],
const prefix0.ContainedReflectable(),
const [],
),
r.MethodMirrorImpl(
r'[]',
2097666,
7,
7,
7,
7,
const <int>[],
const <int>[101],
const prefix0.ContainedReflectable(),
const [],
),
r.MethodMirrorImpl(
r'codeUnitAt',
2097666,
7,
9,
9,
9,
const <int>[],
const <int>[102],
const prefix0.ContainedReflectable(),
const [],
),
r.MethodMirrorImpl(
r'==',
2097666,
7,
8,
8,
8,
const <int>[],
const <int>[103],
const prefix0.ContainedReflectable(),
const [],
),
r.MethodMirrorImpl(
r'compareTo',
2097666,
7,
9,
9,
9,
const <int>[],
const <int>[104],
const prefix0.ContainedReflectable(),
const [],
),
r.MethodMirrorImpl(
r'endsWith',
2097666,
7,
8,
8,
8,
const <int>[],
const <int>[105],
const prefix0.ContainedReflectable(),
const [],
),
r.MethodMirrorImpl(
r'startsWith',
2097666,
7,
8,
8,
8,
const <int>[],
const <int>[106, 107],
const prefix0.ContainedReflectable(),
const [],
),
r.MethodMirrorImpl(
r'indexOf',
2097666,
7,
9,
9,
9,
const <int>[],
const <int>[108, 109],
const prefix0.ContainedReflectable(),
const [],
),
r.MethodMirrorImpl(
r'lastIndexOf',
2097666,
7,
9,
9,
9,
const <int>[],
const <int>[110, 111],
const prefix0.ContainedReflectable(),
const [],
),
r.MethodMirrorImpl(
r'+',
2097666,
7,
7,
7,
7,
const <int>[],
const <int>[112],
const prefix0.ContainedReflectable(),
const [],
),
r.MethodMirrorImpl(
r'substring',
2097666,
7,
7,
7,
7,
const <int>[],
const <int>[113, 114],
const prefix0.ContainedReflectable(),
const [],
),
r.MethodMirrorImpl(
r'trim',
2097666,
7,
7,
7,
7,
const <int>[],
const <int>[],
const prefix0.ContainedReflectable(),
const [],
),
r.MethodMirrorImpl(
r'trimLeft',
2097666,
7,
7,
7,
7,
const <int>[],
const <int>[],
const prefix0.ContainedReflectable(),
const [],
),
r.MethodMirrorImpl(
r'trimRight',
2097666,
7,
7,
7,
7,
const <int>[],
const <int>[],
const prefix0.ContainedReflectable(),
const [],
),
r.MethodMirrorImpl(
r'*',
2097666,
7,
7,
7,
7,
const <int>[],
const <int>[115],
const prefix0.ContainedReflectable(),
const [],
),
r.MethodMirrorImpl(
r'padLeft',
2097666,
7,
7,
7,
7,
const <int>[],
const <int>[116, 117],
const prefix0.ContainedReflectable(),
const [],
),
r.MethodMirrorImpl(
r'padRight',
2097666,
7,
7,
7,
7,
const <int>[],
const <int>[118, 119],
const prefix0.ContainedReflectable(),
const [],
),
r.MethodMirrorImpl(
r'contains',
2097666,
7,
8,
8,
8,
const <int>[],
const <int>[120, 121],
const prefix0.ContainedReflectable(),
const [],
),
r.MethodMirrorImpl(
r'replaceFirst',
2097666,
7,
7,
7,
7,
const <int>[],
const <int>[122, 123, 124],
const prefix0.ContainedReflectable(),
const [],
),
r.MethodMirrorImpl(
r'replaceFirstMapped',
2097666,
7,
7,
7,
7,
const <int>[],
const <int>[125, 126, 127],
const prefix0.ContainedReflectable(),
const [],
),
r.MethodMirrorImpl(
r'replaceAll',
2097666,
7,
7,
7,
7,
const <int>[],
const <int>[128, 129],
const prefix0.ContainedReflectable(),
const [],
),
r.MethodMirrorImpl(
r'replaceAllMapped',
2097666,
7,
7,
7,
7,
const <int>[],
const <int>[130, 131],
const prefix0.ContainedReflectable(),
const [],
),
r.MethodMirrorImpl(
r'replaceRange',
2097666,
7,
7,
7,
7,
const <int>[],
const <int>[132, 133, 134],
const prefix0.ContainedReflectable(),
const [],
),
r.MethodMirrorImpl(
r'split',
35652098,
7,
10,
52,
10,
const <int>[7],
const <int>[135],
const prefix0.ContainedReflectable(),
const [],
),
r.MethodMirrorImpl(
r'splitMapJoin',
2097666,
7,
7,
7,
7,
const <int>[],
const <int>[136, 137, 138],
const prefix0.ContainedReflectable(),
const [],
),
r.MethodMirrorImpl(
r'toLowerCase',
2097666,
7,
7,
7,
7,
const <int>[],
const <int>[],
const prefix0.ContainedReflectable(),
const [],
),
r.MethodMirrorImpl(
r'toUpperCase',
2097666,
7,
7,
7,
7,
const <int>[],
const <int>[],
const prefix0.ContainedReflectable(),
const [],
),
r.MethodMirrorImpl(
r'length',
2097667,
7,
9,
9,
9,
const <int>[],
const <int>[],
const prefix0.ContainedReflectable(),
const [],
),
r.MethodMirrorImpl(
r'hashCode',
2097667,
7,
9,
9,
9,
const <int>[],
const <int>[],
const prefix0.ContainedReflectable(),
const [],
),
r.MethodMirrorImpl(
r'isEmpty',
2097667,
7,
8,
8,
8,
const <int>[],
const <int>[],
const prefix0.ContainedReflectable(),
const [],
),
r.MethodMirrorImpl(
r'isNotEmpty',
2097667,
7,
8,
8,
8,
const <int>[],
const <int>[],
const prefix0.ContainedReflectable(),
const [],
),
r.MethodMirrorImpl(
r'codeUnits',
35652099,
7,
10,
53,
10,
const <int>[9],
const <int>[],
const prefix0.ContainedReflectable(),
const [],
),
r.MethodMirrorImpl(
r'runes',
2097667,
7,
-1,
54,
54,
const <int>[],
const <int>[],
const prefix0.ContainedReflectable(),
const [],
),
r.MethodMirrorImpl(
r'fromCharCodes',
1,
7,
-1,
7,
7,
const <int>[],
const <int>[139, 140, 141],
const prefix0.ContainedReflectable(),
const [],
),
r.MethodMirrorImpl(
r'fromCharCode',
1,
7,
-1,
7,
7,
const <int>[],
const <int>[142],
const prefix0.ContainedReflectable(),
const [],
),
r.MethodMirrorImpl(
r'fromEnvironment',
129,
7,
-1,
7,
7,
const <int>[],
const <int>[143, 144],
const prefix0.ContainedReflectable(),
const [],
),
r.MethodMirrorImpl(
r'parse',
2097170,
8,
8,
8,
8,
const <int>[],
const <int>[145, 146],
const prefix0.ContainedReflectable(),
const [],
),
r.MethodMirrorImpl(
r'tryParse',
2097170,
8,
8,
8,
8,
const <int>[],
const <int>[147, 148],
const prefix0.ContainedReflectable(),
const [],
),
r.MethodMirrorImpl(
r'&',
2097154,
8,
8,
8,
8,
const <int>[],
const <int>[149],
const prefix0.ContainedReflectable(),
const [],
),
r.MethodMirrorImpl(
r'|',
2097154,
8,
8,
8,
8,
const <int>[],
const <int>[150],
const prefix0.ContainedReflectable(),
const [],
),
r.MethodMirrorImpl(
r'^',
2097154,
8,
8,
8,
8,
const <int>[],
const <int>[151],
const prefix0.ContainedReflectable(),
const [],
),
r.MethodMirrorImpl(
r'toString',
2097154,
8,
7,
7,
7,
const <int>[],
const <int>[],
const prefix0.ContainedReflectable(),
const [],
),
r.MethodMirrorImpl(
r'hashCode',
2097155,
8,
9,
9,
9,
const <int>[],
const <int>[],
const prefix0.ContainedReflectable(),
const [],
),
r.MethodMirrorImpl(
r'fromEnvironment',
129,
8,
-1,
8,
8,
const <int>[],
const <int>[152, 153],
const prefix0.ContainedReflectable(),
const [],
),
r.MethodMirrorImpl(
r'hasEnvironment',
129,
8,
-1,
8,
8,
const <int>[],
const <int>[154],
const prefix0.ContainedReflectable(),
const [],
),
r.MethodMirrorImpl(
r'&',
2097666,
9,
9,
9,
9,
const <int>[],
const <int>[155],
const prefix0.ContainedReflectable(),
const [],
),
r.MethodMirrorImpl(
r'|',
2097666,
9,
9,
9,
9,
const <int>[],
const <int>[156],
const prefix0.ContainedReflectable(),
const [],
),
r.MethodMirrorImpl(
r'^',
2097666,
9,
9,
9,
9,
const <int>[],
const <int>[157],
const prefix0.ContainedReflectable(),
const [],
),
r.MethodMirrorImpl(
r'~',
2097666,
9,
9,
9,
9,
const <int>[],
const <int>[],
const prefix0.ContainedReflectable(),
const [],
),
r.MethodMirrorImpl(
r'<<',
2097666,
9,
9,
9,
9,
const <int>[],
const <int>[158],
const prefix0.ContainedReflectable(),
const [],
),
r.MethodMirrorImpl(
r'>>',
2097666,
9,
9,
9,
9,
const <int>[],
const <int>[159],
const prefix0.ContainedReflectable(),
const [],
),
r.MethodMirrorImpl(
r'>>>',
2097666,
9,
9,
9,
9,
const <int>[],
const <int>[160],
const prefix0.ContainedReflectable(),
const [],
),
r.MethodMirrorImpl(
r'modPow',
2097666,
9,
9,
9,
9,
const <int>[],
const <int>[161, 162],
const prefix0.ContainedReflectable(),
const [],
),
r.MethodMirrorImpl(
r'modInverse',
2097666,
9,
9,
9,
9,
const <int>[],
const <int>[163],
const prefix0.ContainedReflectable(),
const [],
),
r.MethodMirrorImpl(
r'gcd',
2097666,
9,
9,
9,
9,
const <int>[],
const <int>[164],
const prefix0.ContainedReflectable(),
const [],
),
r.MethodMirrorImpl(
r'toUnsigned',
2097666,
9,
9,
9,
9,
const <int>[],
const <int>[165],
const prefix0.ContainedReflectable(),
const [],
),
r.MethodMirrorImpl(
r'toSigned',
2097666,
9,
9,
9,
9,
const <int>[],
const <int>[166],
const prefix0.ContainedReflectable(),
const [],
),
r.MethodMirrorImpl(
r'unary-',
2097666,
9,
9,
9,
9,
const <int>[],
const <int>[],
const prefix0.ContainedReflectable(),
const [],
),
r.MethodMirrorImpl(
r'abs',
2097666,
9,
9,
9,
9,
const <int>[],
const <int>[],
const prefix0.ContainedReflectable(),
const [],
),
r.MethodMirrorImpl(
r'round',
2097666,
9,
9,
9,
9,
const <int>[],
const <int>[],
const prefix0.ContainedReflectable(),
const [],
),
r.MethodMirrorImpl(
r'floor',
2097666,
9,
9,
9,
9,
const <int>[],
const <int>[],
const prefix0.ContainedReflectable(),
const [],
),
r.MethodMirrorImpl(
r'ceil',
2097666,
9,
9,
9,
9,
const <int>[],
const <int>[],
const prefix0.ContainedReflectable(),
const [],
),
r.MethodMirrorImpl(
r'truncate',
2097666,
9,
9,
9,
9,
const <int>[],
const <int>[],
const prefix0.ContainedReflectable(),
const [],
),
r.MethodMirrorImpl(
r'roundToDouble',
2097666,
9,
-1,
55,
55,
const <int>[],
const <int>[],
const prefix0.ContainedReflectable(),
const [],
),
r.MethodMirrorImpl(
r'floorToDouble',
2097666,
9,
-1,
55,
55,
const <int>[],
const <int>[],
const prefix0.ContainedReflectable(),
const [],
),
r.MethodMirrorImpl(
r'ceilToDouble',
2097666,
9,
-1,
55,
55,
const <int>[],
const <int>[],
const prefix0.ContainedReflectable(),
const [],
),
r.MethodMirrorImpl(
r'truncateToDouble',
2097666,
9,
-1,
55,
55,
const <int>[],
const <int>[],
const prefix0.ContainedReflectable(),
const [],
),
r.MethodMirrorImpl(
r'toString',
2097666,
9,
7,
7,
7,
const <int>[],
const <int>[],
const prefix0.ContainedReflectable(),
const [],
),
r.MethodMirrorImpl(
r'toRadixString',
2097666,
9,
7,
7,
7,
const <int>[],
const <int>[167],
const prefix0.ContainedReflectable(),
const [],
),
r.MethodMirrorImpl(
r'parse',
2097170,
9,
9,
9,
9,
const <int>[],
const <int>[168, 169],
const prefix0.ContainedReflectable(),
const [],
),
r.MethodMirrorImpl(
r'tryParse',
2097170,
9,
9,
9,
9,
const <int>[],
const <int>[170, 171],
const prefix0.ContainedReflectable(),
const [],
),
r.MethodMirrorImpl(
r'isEven',
2097667,
9,
8,
8,
8,
const <int>[],
const <int>[],
const prefix0.ContainedReflectable(),
const [],
),
r.MethodMirrorImpl(
r'isOdd',
2097667,
9,
8,
8,
8,
const <int>[],
const <int>[],
const prefix0.ContainedReflectable(),
const [],
),
r.MethodMirrorImpl(
r'bitLength',
2097667,
9,
9,
9,
9,
const <int>[],
const <int>[],
const prefix0.ContainedReflectable(),
const [],
),
r.MethodMirrorImpl(
r'sign',
2097667,
9,
9,
9,
9,
const <int>[],
const <int>[],
const prefix0.ContainedReflectable(),
const [],
),
r.MethodMirrorImpl(
r'fromEnvironment',
129,
9,
-1,
9,
9,
const <int>[],
const <int>[172, 173],
const prefix0.ContainedReflectable(),
const [],
),
r.MethodMirrorImpl(
r'castFrom',
35651602,
10,
10,
56,
10,
null,
const <int>[174],
const prefix0.ContainedReflectable(),
const [],
),
r.MethodMirrorImpl(
r'copyRange',
1310738,
10,
-1,
-1,
-1,
const <int>[],
const <int>[175, 176, 177, 178, 179],
const prefix0.ContainedReflectable(),
const [],
),
r.MethodMirrorImpl(
r'writeIterable',
1310738,
10,
-1,
-1,
-1,
const <int>[],
const <int>[180, 181, 182],
const prefix0.ContainedReflectable(),
const [],
),
r.MethodMirrorImpl(
r'cast',
35652098,
10,
10,
57,
10,
null,
const <int>[],
const prefix0.ContainedReflectable(),
const [],
),
r.MethodMirrorImpl(
r'[]',
514,
10,
-1,
-1,
-1,
const <int>[],
const <int>[183],
const prefix0.ContainedReflectable(),
const [],
),
r.MethodMirrorImpl(
r'[]=',
1311234,
10,
-1,
-1,
-1,
const <int>[],
const <int>[184, 185],
const prefix0.ContainedReflectable(),
const [],
),
r.MethodMirrorImpl(
r'add',
1311234,
10,
-1,
-1,
-1,
const <int>[],
const <int>[186],
const prefix0.ContainedReflectable(),
const [],
),
r.MethodMirrorImpl(
r'addAll',
1311234,
10,
-1,
-1,
-1,
const <int>[],
const <int>[187],
const prefix0.ContainedReflectable(),
const [],
),
r.MethodMirrorImpl(
r'sort',
1311234,
10,
-1,
-1,
-1,
const <int>[],
const <int>[188],
const prefix0.ContainedReflectable(),
const [],
),
r.MethodMirrorImpl(
r'shuffle',
1311234,
10,
-1,
-1,
-1,
const <int>[],
const <int>[189],
const prefix0.ContainedReflectable(),
const [],
),
r.MethodMirrorImpl(
r'indexOf',
2097666,
10,
9,
9,
9,
const <int>[],
const <int>[190, 191],
const prefix0.ContainedReflectable(),
const [],
),
r.MethodMirrorImpl(
r'indexWhere',
2097666,
10,
9,
9,
9,
const <int>[],
const <int>[192, 193],
const prefix0.ContainedReflectable(),
const [],
),
r.MethodMirrorImpl(
r'lastIndexWhere',
2097666,
10,
9,
9,
9,
const <int>[],
const <int>[194, 195],
const prefix0.ContainedReflectable(),
const [],
),
r.MethodMirrorImpl(
r'lastIndexOf',
2097666,
10,
9,
9,
9,
const <int>[],
const <int>[196, 197],
const prefix0.ContainedReflectable(),
const [],
),
r.MethodMirrorImpl(
r'clear',
1311234,
10,
-1,
-1,
-1,
const <int>[],
const <int>[],
const prefix0.ContainedReflectable(),
const [],
),
r.MethodMirrorImpl(
r'insert',
1311234,
10,
-1,
-1,
-1,
const <int>[],
const <int>[198, 199],
const prefix0.ContainedReflectable(),
const [],
),
r.MethodMirrorImpl(
r'insertAll',
1311234,
10,
-1,
-1,
-1,
const <int>[],
const <int>[200, 201],
const prefix0.ContainedReflectable(),
const [],
),
r.MethodMirrorImpl(
r'setAll',
1311234,
10,
-1,
-1,
-1,
const <int>[],
const <int>[202, 203],
const prefix0.ContainedReflectable(),
const [],
),
r.MethodMirrorImpl(
r'remove',
2097666,
10,
8,
8,
8,
const <int>[],
const <int>[204],
const prefix0.ContainedReflectable(),
const [],
),
r.MethodMirrorImpl(
r'removeAt',
514,
10,
-1,
-1,
-1,
const <int>[],
const <int>[205],
const prefix0.ContainedReflectable(),
const [],
),
r.MethodMirrorImpl(
r'removeLast',
514,
10,
-1,
-1,
-1,
const <int>[],
const <int>[],
const prefix0.ContainedReflectable(),
const [],
),
r.MethodMirrorImpl(
r'removeWhere',
1311234,
10,
-1,
-1,
-1,
const <int>[],
const <int>[206],
const prefix0.ContainedReflectable(),
const [],
),
r.MethodMirrorImpl(
r'retainWhere',
1311234,
10,
-1,
-1,
-1,
const <int>[],
const <int>[207],
const prefix0.ContainedReflectable(),
const [],
),
r.MethodMirrorImpl(
r'+',
35652098,
10,
10,
58,
10,
null,
const <int>[208],
const prefix0.ContainedReflectable(),
const [],
),
r.MethodMirrorImpl(
r'sublist',
35652098,
10,
10,
58,
10,
null,
const <int>[209, 210],
const prefix0.ContainedReflectable(),
const [],
),
r.MethodMirrorImpl(
r'getRange',
35652098,
10,
15,
59,
15,
null,
const <int>[211, 212],
const prefix0.ContainedReflectable(),
const [],
),
r.MethodMirrorImpl(
r'setRange',
1311234,
10,
-1,
-1,
-1,
const <int>[],
const <int>[213, 214, 215, 216],
const prefix0.ContainedReflectable(),
const [],
),
r.MethodMirrorImpl(
r'removeRange',
1311234,
10,
-1,
-1,
-1,
const <int>[],
const <int>[217, 218],
const prefix0.ContainedReflectable(),
const [],
),
r.MethodMirrorImpl(
r'fillRange',
1311234,
10,
-1,
-1,
-1,
const <int>[],
const <int>[219, 220, 221],
const prefix0.ContainedReflectable(),
const [],
),
r.MethodMirrorImpl(
r'replaceRange',
1311234,
10,
-1,
-1,
-1,
const <int>[],
const <int>[222, 223, 224],
const prefix0.ContainedReflectable(),
const [],
),
r.MethodMirrorImpl(
r'asMap',
35652098,
10,
14,
60,
14,
null,
const <int>[],
const prefix0.ContainedReflectable(),
const [],
),
r.MethodMirrorImpl(
r'==',
2097666,
10,
8,
8,
8,
const <int>[],
const <int>[225],
const prefix0.ContainedReflectable(),
const [],
),
r.MethodMirrorImpl(
r'first=',
1311236,
10,
-1,
-1,
-1,
const <int>[],
const <int>[238],
const prefix0.ContainedReflectable(),
const [],
),
r.MethodMirrorImpl(
r'last=',
1311236,
10,
-1,
-1,
-1,
const <int>[],
const <int>[239],
const prefix0.ContainedReflectable(),
const [],
),
r.MethodMirrorImpl(
r'length',
2097667,
10,
9,
9,
9,
const <int>[],
const <int>[],
const prefix0.ContainedReflectable(),
const [],
),
r.MethodMirrorImpl(
r'length=',
1311236,
10,
-1,
-1,
-1,
const <int>[],
const <int>[240],
const prefix0.ContainedReflectable(),
const [],
),
r.MethodMirrorImpl(
r'reversed',
35652099,
10,
15,
59,
15,
null,
const <int>[],
const prefix0.ContainedReflectable(),
const [],
),
r.MethodMirrorImpl(
r'filled',
1,
10,
-1,
58,
10,
null,
const <int>[226, 227, 228],
const prefix0.ContainedReflectable(),
const [],
),
r.MethodMirrorImpl(
r'empty',
1,
10,
-1,
58,
10,
null,
const <int>[229],
const prefix0.ContainedReflectable(),
const [],
),
r.MethodMirrorImpl(
r'from',
1,
10,
-1,
58,
10,
null,
const <int>[230, 231],
const prefix0.ContainedReflectable(),
const [],
),
r.MethodMirrorImpl(
r'of',
1,
10,
-1,
58,
10,
null,
const <int>[232, 233],
const prefix0.ContainedReflectable(),
const [],
),
r.MethodMirrorImpl(
r'generate',
1,
10,
-1,
58,
10,
null,
const <int>[234, 235, 236],
const prefix0.ContainedReflectable(),
const [],
),
r.MethodMirrorImpl(
r'unmodifiable',
1,
10,
-1,
58,
10,
null,
const <int>[237],
const prefix0.ContainedReflectable(),
const [],
),
r.MethodMirrorImpl(
r'==',
2097666,
11,
8,
8,
8,
const <int>[],
const <int>[241],
const prefix0.ContainedReflectable(),
const <Object>[override],
),
r.MethodMirrorImpl(
r'delegate',
2097666,
11,
4,
4,
4,
const <int>[],
const <int>[242],
const prefix0.ContainedReflectable(),
const [],
),
r.MethodMirrorImpl(
r'type',
2097667,
11,
-1,
47,
47,
const <int>[],
const <int>[],
const prefix0.ContainedReflectable(),
const [],
),
r.MethodMirrorImpl(
r'hasReflectee',
2097667,
11,
8,
8,
8,
const <int>[],
const <int>[],
const prefix0.ContainedReflectable(),
const [],
),
r.MethodMirrorImpl(
r'reflectee',
2097667,
11,
4,
4,
4,
const <int>[],
const <int>[],
const prefix0.ContainedReflectable(),
const [],
),
r.MethodMirrorImpl(
r'hashCode',
2097667,
11,
9,
9,
9,
const <int>[],
const <int>[],
const prefix0.ContainedReflectable(),
const <Object>[override],
),
r.MethodMirrorImpl(
r'',
64,
11,
-1,
11,
11,
const <int>[],
const <int>[],
const prefix0.ContainedReflectable(),
const [],
),
r.MethodMirrorImpl(
r'isSubtypeOf',
2097666,
12,
8,
8,
8,
const <int>[],
const <int>[243],
const prefix0.ContainedReflectable(),
const [],
),
r.MethodMirrorImpl(
r'isAssignableTo',
2097666,
12,
8,
8,
8,
const <int>[],
const <int>[244],
const prefix0.ContainedReflectable(),
const [],
),
r.MethodMirrorImpl(
r'hasReflectedType',
2097667,
12,
8,
8,
8,
const <int>[],
const <int>[],
const prefix0.ContainedReflectable(),
const [],
),
r.MethodMirrorImpl(
r'reflectedType',
2097667,
12,
6,
6,
6,
const <int>[],
const <int>[],
const prefix0.ContainedReflectable(),
const [],
),
r.MethodMirrorImpl(
r'typeVariables',
35652099,
12,
10,
62,
10,
const <int>[61],
const <int>[],
const prefix0.ContainedReflectable(),
const [],
),
r.MethodMirrorImpl(
r'typeArguments',
35652099,
12,
10,
63,
10,
const <int>[12],
const <int>[],
const prefix0.ContainedReflectable(),
const [],
),
r.MethodMirrorImpl(
r'reflectedTypeArguments',
35652099,
12,
10,
49,
10,
const <int>[6],
const <int>[],
const prefix0.ContainedReflectable(),
const [],
),
r.MethodMirrorImpl(
r'isOriginalDeclaration',
2097667,
12,
8,
8,
8,
const <int>[],
const <int>[],
const prefix0.ContainedReflectable(),
const [],
),
r.MethodMirrorImpl(
r'originalDeclaration',
2097667,
12,
12,
12,
12,
const <int>[],
const <int>[],
const prefix0.ContainedReflectable(),
const [],
),
r.MethodMirrorImpl(
r'isNullable',
2097667,
12,
8,
8,
8,
const <int>[],
const <int>[],
const prefix0.ContainedReflectable(),
const [],
),
r.MethodMirrorImpl(
r'isNonNullable',
2097667,
12,
8,
8,
8,
const <int>[],
const <int>[],
const prefix0.ContainedReflectable(),
const [],
),
r.MethodMirrorImpl(
r'isPotentiallyNullable',
2097667,
12,
8,
8,
8,
const <int>[],
const <int>[],
const prefix0.ContainedReflectable(),
const [],
),
r.MethodMirrorImpl(
r'isPotentiallyNonNullable',
2097667,
12,
8,
8,
8,
const <int>[],
const <int>[],
const prefix0.ContainedReflectable(),
const [],
),
r.MethodMirrorImpl(
r'',
64,
12,
-1,
12,
12,
const <int>[],
const <int>[],
const prefix0.ContainedReflectable(),
const [],
),
r.MethodMirrorImpl(
r'==',
2097666,
13,
8,
8,
8,
const <int>[],
const <int>[245],
const prefix0.ContainedReflectable(),
const <Object>[override],
),
r.MethodMirrorImpl(
r'uri',
2097667,
13,
-1,
45,
45,
const <int>[],
const <int>[],
const prefix0.ContainedReflectable(),
const [],
),
r.MethodMirrorImpl(
r'declarations',
35652099,
13,
14,
65,
14,
const <int>[7, 64],
const <int>[],
const prefix0.ContainedReflectable(),
const [],
),
r.MethodMirrorImpl(
r'hashCode',
2097667,
13,
9,
9,
9,
const <int>[],
const <int>[],
const prefix0.ContainedReflectable(),
const <Object>[override],
),
r.MethodMirrorImpl(
r'libraryDependencies',
35652099,
13,
10,
67,
10,
const <int>[66],
const <int>[],
const prefix0.ContainedReflectable(),
const [],
),
r.MethodMirrorImpl(
r'owner',
2097667,
13,
-1,
68,
68,
const <int>[],
const <int>[],
const prefix0.ContainedReflectable(),
const <Object>[override],
),
r.MethodMirrorImpl(
r'',
64,
13,
-1,
13,
13,
const <int>[],
const <int>[],
const prefix0.ContainedReflectable(),
const [],
),
r.MethodMirrorImpl(
r'castFrom',
35651602,
14,
14,
69,
14,
null,
const <int>[246],
const prefix0.ContainedReflectable(),
const [],
),
r.MethodMirrorImpl(
r'cast',
35652098,
14,
14,
70,
14,
null,
const <int>[],
const prefix0.ContainedReflectable(),
const [],
),
r.MethodMirrorImpl(
r'containsValue',
2097666,
14,
8,
8,
8,
const <int>[],
const <int>[247],
const prefix0.ContainedReflectable(),
const [],
),
r.MethodMirrorImpl(
r'containsKey',
2097666,
14,
8,
8,
8,
const <int>[],
const <int>[248],
const prefix0.ContainedReflectable(),
const [],
),
r.MethodMirrorImpl(
r'[]',
514,
14,
-1,
-1,
-1,
const <int>[],
const <int>[249],
const prefix0.ContainedReflectable(),
const [],
),
r.MethodMirrorImpl(
r'[]=',
1311234,
14,
-1,
-1,
-1,
const <int>[],
const <int>[250, 251],
const prefix0.ContainedReflectable(),
const [],
),
r.MethodMirrorImpl(
r'map',
35652098,
14,
14,
71,
14,
null,
const <int>[252],
const prefix0.ContainedReflectable(),
const [],
),
r.MethodMirrorImpl(
r'addEntries',
1311234,
14,
-1,
-1,
-1,
const <int>[],
const <int>[253],
const prefix0.ContainedReflectable(),
const [],
),
r.MethodMirrorImpl(
r'update',
514,
14,
-1,
-1,
-1,
const <int>[],
const <int>[254, 255, 256],
const prefix0.ContainedReflectable(),
const [],
),
r.MethodMirrorImpl(
r'updateAll',
1311234,
14,
-1,
-1,
-1,
const <int>[],
const <int>[257],
const prefix0.ContainedReflectable(),
const [],
),
r.MethodMirrorImpl(
r'removeWhere',
1311234,
14,
-1,
-1,
-1,
const <int>[],
const <int>[258],
const prefix0.ContainedReflectable(),
const [],
),
r.MethodMirrorImpl(
r'putIfAbsent',
514,
14,
-1,
-1,
-1,
const <int>[],
const <int>[259, 260],
const prefix0.ContainedReflectable(),
const [],
),
r.MethodMirrorImpl(
r'addAll',
1311234,
14,
-1,
-1,
-1,
const <int>[],
const <int>[261],
const prefix0.ContainedReflectable(),
const [],
),
r.MethodMirrorImpl(
r'remove',
514,
14,
-1,
-1,
-1,
const <int>[],
const <int>[262],
const prefix0.ContainedReflectable(),
const [],
),
r.MethodMirrorImpl(
r'clear',
1311234,
14,
-1,
-1,
-1,
const <int>[],
const <int>[],
const prefix0.ContainedReflectable(),
const [],
),
r.MethodMirrorImpl(
r'forEach',
1311234,
14,
-1,
-1,
-1,
const <int>[],
const <int>[263],
const prefix0.ContainedReflectable(),
const [],
),
r.MethodMirrorImpl(
r'entries',
35652099,
14,
15,
72,
15,
null,
const <int>[],
const prefix0.ContainedReflectable(),
const [],
),
r.MethodMirrorImpl(
r'keys',
35652099,
14,
15,
73,
15,
null,
const <int>[],
const prefix0.ContainedReflectable(),
const [],
),
r.MethodMirrorImpl(
r'values',
35652099,
14,
15,
74,
15,
null,
const <int>[],
const prefix0.ContainedReflectable(),
const [],
),
r.MethodMirrorImpl(
r'length',
2097667,
14,
9,
9,
9,
const <int>[],
const <int>[],
const prefix0.ContainedReflectable(),
const [],
),
r.MethodMirrorImpl(
r'isEmpty',
2097667,
14,
8,
8,
8,
const <int>[],
const <int>[],
const prefix0.ContainedReflectable(),
const [],
),
r.MethodMirrorImpl(
r'isNotEmpty',
2097667,
14,
8,
8,
8,
const <int>[],
const <int>[],
const prefix0.ContainedReflectable(),
const [],
),
r.MethodMirrorImpl(
r'',
1,
14,
-1,
75,
14,
null,
const <int>[],
const prefix0.ContainedReflectable(),
const [],
),
r.MethodMirrorImpl(
r'from',
257,
14,
-1,
75,
14,
null,
const <int>[264],
const prefix0.ContainedReflectable(),
const [],
),
r.MethodMirrorImpl(
r'of',
257,
14,
-1,
75,
14,
null,
const <int>[265],
const prefix0.ContainedReflectable(),
const [],
),
r.MethodMirrorImpl(
r'unmodifiable',
1,
14,
-1,
75,
14,
null,
const <int>[266],
const prefix0.ContainedReflectable(),
const [],
),
r.MethodMirrorImpl(
r'identity',
257,
14,
-1,
75,
14,
null,
const <int>[],
const prefix0.ContainedReflectable(),
const [],
),
r.MethodMirrorImpl(
r'fromIterable',
257,
14,
-1,
75,
14,
null,
const <int>[267, 268, 269],
const prefix0.ContainedReflectable(),
const [],
),
r.MethodMirrorImpl(
r'fromIterables',
257,
14,
-1,
75,
14,
null,
const <int>[270, 271],
const prefix0.ContainedReflectable(),
const [],
),
r.MethodMirrorImpl(
r'fromEntries',
1,
14,
-1,
75,
14,
null,
const <int>[272],
const prefix0.ContainedReflectable(),
const [],
),
r.MethodMirrorImpl(
r'castFrom',
35651602,
15,
15,
76,
15,
null,
const <int>[273],
const prefix0.ContainedReflectable(),
const [],
),
r.MethodMirrorImpl(
r'cast',
35651586,
15,
15,
77,
15,
null,
const <int>[],
const prefix0.ContainedReflectable(),
const [],
),
r.MethodMirrorImpl(
r'followedBy',
35651586,
15,
15,
78,
15,
null,
const <int>[274],
const prefix0.ContainedReflectable(),
const [],
),
r.MethodMirrorImpl(
r'map',
35651586,
15,
15,
79,
15,
null,
const <int>[275],
const prefix0.ContainedReflectable(),
const [],
),
r.MethodMirrorImpl(
r'where',
35651586,
15,
15,
78,
15,
null,
const <int>[276],
const prefix0.ContainedReflectable(),
const [],
),
r.MethodMirrorImpl(
r'whereType',
35651586,
15,
15,
80,
15,
null,
const <int>[],
const prefix0.ContainedReflectable(),
const [],
),
r.MethodMirrorImpl(
r'expand',
35651586,
15,
15,
81,
15,
null,
const <int>[277],
const prefix0.ContainedReflectable(),
const [],
),
r.MethodMirrorImpl(
r'contains',
2097154,
15,
8,
8,
8,
const <int>[],
const <int>[278],
const prefix0.ContainedReflectable(),
const [],
),
r.MethodMirrorImpl(
r'forEach',
1310722,
15,
-1,
-1,
-1,
const <int>[],
const <int>[279],
const prefix0.ContainedReflectable(),
const [],
),
r.MethodMirrorImpl(
r'reduce',
2,
15,
-1,
-1,
-1,
const <int>[],
const <int>[280],
const prefix0.ContainedReflectable(),
const [],
),
r.MethodMirrorImpl(
r'fold',
2,
15,
-1,
-1,
-1,
const <int>[],
const <int>[281, 282],
const prefix0.ContainedReflectable(),
const [],
),
r.MethodMirrorImpl(
r'every',
2097154,
15,
8,
8,
8,
const <int>[],
const <int>[283],
const prefix0.ContainedReflectable(),
const [],
),
r.MethodMirrorImpl(
r'join',
2097154,
15,
7,
7,
7,
const <int>[],
const <int>[284],
const prefix0.ContainedReflectable(),
const [],
),
r.MethodMirrorImpl(
r'any',
2097154,
15,
8,
8,
8,
const <int>[],
const <int>[285],
const prefix0.ContainedReflectable(),
const [],
),
r.MethodMirrorImpl(
r'toList',
35651586,
15,
10,
82,
10,
null,
const <int>[286],
const prefix0.ContainedReflectable(),
const [],
),
r.MethodMirrorImpl(
r'toSet',
35651586,
15,
-1,
83,
84,
null,
const <int>[],
const prefix0.ContainedReflectable(),
const [],
),
r.MethodMirrorImpl(
r'take',
35651586,
15,
15,
78,
15,
null,
const <int>[287],
const prefix0.ContainedReflectable(),
const [],
),
r.MethodMirrorImpl(
r'takeWhile',
35651586,
15,
15,
78,
15,
null,
const <int>[288],
const prefix0.ContainedReflectable(),
const [],
),
r.MethodMirrorImpl(
r'skip',
35651586,
15,
15,
78,
15,
null,
const <int>[289],
const prefix0.ContainedReflectable(),
const [],
),
r.MethodMirrorImpl(
r'skipWhile',
35651586,
15,
15,
78,
15,
null,
const <int>[290],
const prefix0.ContainedReflectable(),
const [],
),
r.MethodMirrorImpl(
r'firstWhere',
2,
15,
-1,
-1,
-1,
const <int>[],
const <int>[291, 292],
const prefix0.ContainedReflectable(),
const [],
),
r.MethodMirrorImpl(
r'lastWhere',
2,
15,
-1,
-1,
-1,
const <int>[],
const <int>[293, 294],
const prefix0.ContainedReflectable(),
const [],
),
r.MethodMirrorImpl(
r'singleWhere',
2,
15,
-1,
-1,
-1,
const <int>[],
const <int>[295, 296],
const prefix0.ContainedReflectable(),
const [],
),
r.MethodMirrorImpl(
r'elementAt',
2,
15,
-1,
-1,
-1,
const <int>[],
const <int>[297],
const prefix0.ContainedReflectable(),
const [],
),
r.MethodMirrorImpl(
r'toString',
2097154,
15,
7,
7,
7,
const <int>[],
const <int>[],
const prefix0.ContainedReflectable(),
const [],
),
r.MethodMirrorImpl(
r'iterableToShortString',
2097170,
15,
7,
7,
7,
const <int>[],
const <int>[298, 299, 300],
const prefix0.ContainedReflectable(),
const [],
),
r.MethodMirrorImpl(
r'iterableToFullString',
2097170,
15,
7,
7,
7,
const <int>[],
const <int>[301, 302, 303],
const prefix0.ContainedReflectable(),
const [],
),
r.MethodMirrorImpl(
r'iterator',
35652099,
15,
-1,
85,
86,
null,
const <int>[],
const prefix0.ContainedReflectable(),
const [],
),
r.MethodMirrorImpl(
r'length',
2097155,
15,
9,
9,
9,
const <int>[],
const <int>[],
const prefix0.ContainedReflectable(),
const [],
),
r.MethodMirrorImpl(
r'isEmpty',
2097155,
15,
8,
8,
8,
const <int>[],
const <int>[],
const prefix0.ContainedReflectable(),
const [],
),
r.MethodMirrorImpl(
r'isNotEmpty',
2097155,
15,
8,
8,
8,
const <int>[],
const <int>[],
const prefix0.ContainedReflectable(),
const [],
),
r.MethodMirrorImpl(
r'first',
3,
15,
-1,
-1,
-1,
const <int>[],
const <int>[],
const prefix0.ContainedReflectable(),
const [],
),
r.MethodMirrorImpl(
r'last',
3,
15,
-1,
-1,
-1,
const <int>[],
const <int>[],
const prefix0.ContainedReflectable(),
const [],
),
r.MethodMirrorImpl(
r'single',
3,
15,
-1,
-1,
-1,
const <int>[],
const <int>[],
const prefix0.ContainedReflectable(),
const [],
),
r.MethodMirrorImpl(
r'',
128,
15,
-1,
78,
15,
null,
const <int>[],
const prefix0.ContainedReflectable(),
const [],
),
r.MethodMirrorImpl(
r'generate',
1,
15,
-1,
78,
15,
null,
const <int>[304, 305],
const prefix0.ContainedReflectable(),
const [],
),
r.MethodMirrorImpl(
r'empty',
385,
15,
-1,
78,
15,
null,
const <int>[],
const prefix0.ContainedReflectable(),
const [],
),
r.MethodMirrorImpl(
r'',
128,
16,
-1,
16,
16,
const <int>[],
const <int>[],
const prefix0.ContainedReflectable(),
const [],
),
],
<m.ParameterMirror>[
r.ParameterMirrorImpl(
r'_data',
151126118,
5,
const prefix0.ContainedReflectable(),
14,
17,
14,
const <int>[1, 18],
const [],
null,
null,
),
r.ParameterMirrorImpl(
r'_memberSymbolMap',
84017254,
7,
const prefix0.ContainedReflectable(),
14,
19,
14,
const <int>[20, 7],
const [],
null,
null,
),
r.ParameterMirrorImpl(
r'a',
67239942,
9,
const prefix0.ContainedReflectable(),
4,
4,
4,
const <int>[],
const [],
null,
null,
),
r.ParameterMirrorImpl(
r'b',
67239942,
9,
const prefix0.ContainedReflectable(),
4,
4,
4,
const <int>[],
const [],
null,
null,
),
r.ParameterMirrorImpl(
r'object',
67239942,
10,
const prefix0.ContainedReflectable(),
4,
4,
4,
const <int>[],
const [],
null,
null,
),
r.ParameterMirrorImpl(
r'object',
67239942,
11,
const prefix0.ContainedReflectable(),
4,
4,
4,
const <int>[],
const [],
null,
null,
),
r.ParameterMirrorImpl(
r'receiver',
67239942,
14,
const prefix0.ContainedReflectable(),
4,
4,
4,
const <int>[],
const [],
null,
null,
),
r.ParameterMirrorImpl(
r'memberName',
134348806,
14,
const prefix0.ContainedReflectable(),
7,
7,
7,
const <int>[],
const [],
null,
null,
),
r.ParameterMirrorImpl(
r'positionalArguments',
151126022,
14,
const prefix0.ContainedReflectable(),
10,
50,
10,
null,
const [],
null,
null,
),
r.ParameterMirrorImpl(
r'namedArguments',
84017158,
14,
const prefix0.ContainedReflectable(),
14,
87,
14,
null,
const [],
null,
null,
),
r.ParameterMirrorImpl(
r'kind',
134348806,
14,
const prefix0.ContainedReflectable(),
-1,
88,
88,
const <int>[],
const [],
null,
null,
),
r.ParameterMirrorImpl(
r'receiver',
67239942,
15,
const prefix0.ContainedReflectable(),
4,
4,
4,
const <int>[],
const [],
null,
null,
),
r.ParameterMirrorImpl(
r'memberName',
134348806,
15,
const prefix0.ContainedReflectable(),
7,
7,
7,
const <int>[],
const [],
null,
null,
),
r.ParameterMirrorImpl(
r'positionalArguments',
151126022,
15,
const prefix0.ContainedReflectable(),
10,
50,
10,
null,
const [],
null,
null,
),
r.ParameterMirrorImpl(
r'namedArguments',
84017158,
15,
const prefix0.ContainedReflectable(),
14,
87,
14,
null,
const [],
null,
null,
),
r.ParameterMirrorImpl(
r'receiver',
67239942,
16,
const prefix0.ContainedReflectable(),
4,
4,
4,
const <int>[],
const [],
null,
null,
),
r.ParameterMirrorImpl(
r'memberName',
134348806,
16,
const prefix0.ContainedReflectable(),
7,
7,
7,
const <int>[],
const [],
null,
null,
),
r.ParameterMirrorImpl(
r'positionalArguments',
151126022,
16,
const prefix0.ContainedReflectable(),
10,
50,
10,
null,
const [],
null,
null,
),
r.ParameterMirrorImpl(
r'namedArguments',
84017158,
16,
const prefix0.ContainedReflectable(),
14,
87,
14,
null,
const [],
null,
null,
),
r.ParameterMirrorImpl(
r'receiver',
67239942,
17,
const prefix0.ContainedReflectable(),
4,
4,
4,
const <int>[],
const [],
null,
null,
),
r.ParameterMirrorImpl(
r'memberName',
134348806,
17,
const prefix0.ContainedReflectable(),
7,
7,
7,
const <int>[],
const [],
null,
null,
),
r.ParameterMirrorImpl(
r'positionalArguments',
151126022,
17,
const prefix0.ContainedReflectable(),
10,
50,
10,
null,
const [],
null,
null,
),
r.ParameterMirrorImpl(
r'namedArguments',
84017158,
17,
const prefix0.ContainedReflectable(),
14,
87,
14,
null,
const [],
null,
null,
),
r.ParameterMirrorImpl(
r'receiver',
67239942,
18,
const prefix0.ContainedReflectable(),
4,
4,
4,
const <int>[],
const [],
null,
null,
),
r.ParameterMirrorImpl(
r'constructorName',
134348806,
18,
const prefix0.ContainedReflectable(),
7,
7,
7,
const <int>[],
const [],
null,
null,
),
r.ParameterMirrorImpl(
r'positionalArguments',
151126022,
18,
const prefix0.ContainedReflectable(),
10,
50,
10,
null,
const [],
null,
null,
),
r.ParameterMirrorImpl(
r'namedArguments',
84017158,
18,
const prefix0.ContainedReflectable(),
14,
87,
14,
null,
const [],
null,
null,
),
r.ParameterMirrorImpl(
r'other',
134348806,
41,
const prefix0.ContainedReflectable(),
4,
4,
4,
const <int>[],
const [],
null,
null,
),
r.ParameterMirrorImpl(
r'invocation',
134348806,
43,
const prefix0.ContainedReflectable(),
5,
5,
5,
const <int>[],
const [],
null,
null,
),
r.ParameterMirrorImpl(
r'reflectee',
134348806,
47,
const prefix0.ContainedReflectable(),
4,
4,
4,
const <int>[],
const [],
null,
null,
),
r.ParameterMirrorImpl(
r'reflectee',
134348806,
48,
const prefix0.ContainedReflectable(),
4,
4,
4,
const <int>[],
const [],
null,
null,
),
r.ParameterMirrorImpl(
r'type',
134348806,
49,
const prefix0.ContainedReflectable(),
6,
6,
6,
const <int>[],
const [],
null,
null,
),
r.ParameterMirrorImpl(
r'type',
134348806,
50,
const prefix0.ContainedReflectable(),
6,
6,
6,
const <int>[],
const [],
null,
null,
),
r.ParameterMirrorImpl(
r'libraryName',
134348806,
51,
const prefix0.ContainedReflectable(),
7,
7,
7,
const <int>[],
const [],
null,
null,
),
r.ParameterMirrorImpl(
r'type',
134348806,
54,
const prefix0.ContainedReflectable(),
6,
6,
6,
const <int>[],
const [],
null,
null,
),
r.ParameterMirrorImpl(
r'cap0',
67244038,
57,
const prefix0.ContainedReflectable(),
16,
16,
16,
const <int>[],
const [],
null,
null,
),
r.ParameterMirrorImpl(
r'cap1',
67244038,
57,
const prefix0.ContainedReflectable(),
16,
16,
16,
const <int>[],
const [],
null,
null,
),
r.ParameterMirrorImpl(
r'cap2',
67244038,
57,
const prefix0.ContainedReflectable(),
16,
16,
16,
const <int>[],
const [],
null,
null,
),
r.ParameterMirrorImpl(
r'cap3',
67244038,
57,
const prefix0.ContainedReflectable(),
16,
16,
16,
const <int>[],
const [],
null,
null,
),
r.ParameterMirrorImpl(
r'cap4',
67244038,
57,
const prefix0.ContainedReflectable(),
16,
16,
16,
const <int>[],
const [],
null,
null,
),
r.ParameterMirrorImpl(
r'cap5',
67244038,
57,
const prefix0.ContainedReflectable(),
16,
16,
16,
const <int>[],
const [],
null,
null,
),
r.ParameterMirrorImpl(
r'cap6',
67244038,
57,
const prefix0.ContainedReflectable(),
16,
16,
16,
const <int>[],
const [],
null,
null,
),
r.ParameterMirrorImpl(
r'cap7',
67244038,
57,
const prefix0.ContainedReflectable(),
16,
16,
16,
const <int>[],
const [],
null,
null,
),
r.ParameterMirrorImpl(
r'cap8',
67244038,
57,
const prefix0.ContainedReflectable(),
16,
16,
16,
const <int>[],
const [],
nul
gitextract_l8l0_3lv/ ├── .devcontainer/ │ └── devcontainer.json ├── .github/ │ ├── FUNDING.yml │ └── workflows/ │ └── dart.yml ├── .gitignore ├── .pubignore ├── .vscode/ │ └── settings.json ├── AI_CONTEXT.md ├── AUTHORS.md ├── CHANGELOG.md ├── CONTRIBUTING.md ├── LICENSE ├── README.md ├── TODO.md ├── archived/ │ └── tool/ │ └── archived/ │ ├── move_repos │ └── pull_subproject ├── belatuk.session.sql ├── doc/ │ └── deployment/ │ ├── docker/ │ │ ├── README.md │ │ ├── docker-compose-mariadb.yml │ │ ├── docker-compose-mongo.yml │ │ ├── docker-compose-mysql.yml │ │ ├── docker-compose-pg.yml │ │ ├── docker-compose-redis.yml │ │ └── docker-compose-rethinkdb.yml │ ├── helm_chart/ │ │ └── README.md │ ├── podman/ │ │ ├── README.md │ │ ├── podman-compose-mariadb.yml │ │ ├── podman-compose-mongo.yml │ │ ├── podman-compose-mysql.yml │ │ ├── podman-compose-pg.yml │ │ ├── podman-compose-redis.yml │ │ └── podman-compose-rethinkdb.yml │ └── rancher/ │ ├── README.md │ ├── rancher-compose-mariadb.yml │ ├── rancher-compose-mongo.yml │ ├── rancher-compose-mysql.yml │ ├── rancher-compose-pg.yml │ ├── rancher-compose-redis.yml │ └── rancher-compose-rethinkdb.yml ├── melos.yaml ├── melos_angel3.iml ├── packages/ │ ├── cache/ │ │ ├── .gitignore │ │ ├── AUTHORS.md │ │ ├── CHANGELOG.md │ │ ├── LICENSE │ │ ├── README.md │ │ ├── analysis_options.yaml │ │ ├── example/ │ │ │ ├── cache_service.dart │ │ │ └── main.dart │ │ ├── lib/ │ │ │ ├── angel3_cache.dart │ │ │ └── src/ │ │ │ ├── cache.dart │ │ │ ├── cache_service.dart │ │ │ └── serializer.dart │ │ ├── melos_angel3_cache.iml │ │ ├── pubspec.yaml │ │ └── test/ │ │ ├── cache_test.dart │ │ └── files/ │ │ └── date.txt │ ├── container/ │ │ └── angel_container_generator/ │ │ ├── .gitignore │ │ ├── CHANGELOG.md │ │ ├── LICENSE │ │ ├── README.md │ │ ├── analysis_options.yaml │ │ ├── example/ │ │ │ ├── main.dart │ │ │ └── main.reflectable.dart │ │ ├── lib/ │ │ │ └── angel3_container_generator.dart │ │ ├── melos_angel3_container_generator.iml │ │ ├── pubspec.yaml │ │ └── test/ │ │ ├── reflector_test.dart │ │ └── reflector_test.reflectable.dart │ ├── file_service/ │ │ ├── .gitignore │ │ ├── AUTHORS.md │ │ ├── CHANGELOG.md │ │ ├── LICENSE │ │ ├── README.md │ │ ├── analysis_options.yaml │ │ ├── example/ │ │ │ └── main.dart │ │ ├── lib/ │ │ │ └── angel3_file_service.dart │ │ ├── melos_angel3_file_service.iml │ │ ├── pubspec.yaml │ │ └── test/ │ │ └── all_test.dart │ ├── framework/ │ │ ├── AUTHORS.md │ │ ├── CHANGELOG.md │ │ ├── LICENSE │ │ ├── README.md │ │ ├── analysis_options.yaml │ │ ├── dev.key │ │ ├── dev.pem │ │ ├── example/ │ │ │ ├── controller.dart │ │ │ ├── handle_error.dart │ │ │ ├── hostname.dart │ │ │ ├── http2/ │ │ │ │ ├── body_parsing.dart │ │ │ │ ├── common.dart │ │ │ │ ├── dev.key │ │ │ │ ├── dev.pem │ │ │ │ ├── main.dart │ │ │ │ ├── public/ │ │ │ │ │ ├── app.js │ │ │ │ │ ├── body_parsing.html │ │ │ │ │ ├── index.html │ │ │ │ │ └── style.css │ │ │ │ └── server_push.dart │ │ │ ├── json.dart │ │ │ ├── main.dart │ │ │ ├── map_service.dart │ │ │ ├── status.dart │ │ │ ├── view.dart │ │ │ └── views/ │ │ │ └── index.jl │ │ ├── lib/ │ │ │ ├── angel3_framework.dart │ │ │ ├── http.dart │ │ │ ├── http2.dart │ │ │ └── src/ │ │ │ ├── core/ │ │ │ │ ├── anonymous_service.dart │ │ │ │ ├── controller.dart │ │ │ │ ├── core.dart │ │ │ │ ├── driver.dart │ │ │ │ ├── env.dart │ │ │ │ ├── hooked_service.dart │ │ │ │ ├── hostname_parser.dart │ │ │ │ ├── hostname_router.dart │ │ │ │ ├── injection.dart │ │ │ │ ├── map_service.dart │ │ │ │ ├── metadata.dart │ │ │ │ ├── request_context.dart │ │ │ │ ├── response_context.dart │ │ │ │ ├── routable.dart │ │ │ │ ├── server.dart │ │ │ │ └── service.dart │ │ │ ├── fast_name_from_symbol.dart │ │ │ ├── http/ │ │ │ │ ├── angel_http.dart │ │ │ │ ├── http.dart │ │ │ │ ├── http_request_context.dart │ │ │ │ └── http_response_context.dart │ │ │ ├── http2/ │ │ │ │ ├── angel_http2.dart │ │ │ │ ├── http2_request_context.dart │ │ │ │ └── http2_response_context.dart │ │ │ ├── safe_stream_controller.dart │ │ │ └── util.dart │ │ ├── melos_angel3_framework.iml │ │ ├── performance/ │ │ │ └── hello/ │ │ │ ├── angel.md │ │ │ ├── main.dart │ │ │ ├── raw.dart │ │ │ └── raw.md │ │ ├── pubspec.yaml │ │ └── test/ │ │ ├── accepts_test.dart │ │ ├── all.dart │ │ ├── anonymous_service_test.dart │ │ ├── body_test.dart │ │ ├── common.dart │ │ ├── controller_test.dart │ │ ├── detach_test.dart │ │ ├── di_test.dart │ │ ├── encoders_buffer_test.dart │ │ ├── env_test.dart │ │ ├── exception_test.dart │ │ ├── extension_test.dart │ │ ├── find_one_test.dart │ │ ├── general_test.dart │ │ ├── hm.dart │ │ ├── hooked_test.dart │ │ ├── http2/ │ │ │ ├── adapter_test.dart │ │ │ └── http2_client.dart │ │ ├── http_404_hole_test.dart │ │ ├── jsonp_test.dart │ │ ├── parameter_meta_test.dart │ │ ├── parse_id_test.dart │ │ ├── precontained_test.dart │ │ ├── pretty_log.dart │ │ ├── primitives_test.dart │ │ ├── repeat_request_test.dart │ │ ├── req_shutdown_test.dart │ │ ├── response_header_test.dart │ │ ├── routing_test.dart │ │ ├── serialize_test.dart │ │ ├── server_test.dart │ │ ├── service_map_test.dart │ │ ├── services_test.dart │ │ ├── streaming_test.dart │ │ └── view_generator_test.dart │ ├── html/ │ │ ├── AUTHORS.md │ │ ├── CHANGELOG.md │ │ ├── LICENSE │ │ ├── README.md │ │ ├── analysis_options.yaml │ │ ├── example/ │ │ │ └── main.dart │ │ ├── lib/ │ │ │ └── angel3_html.dart │ │ ├── melos_angel3_html.iml │ │ ├── pubspec.yaml │ │ └── test/ │ │ └── all_test.dart │ ├── jael/ │ │ ├── LICENSE │ │ ├── README.md │ │ ├── angel_jael/ │ │ │ ├── AUTHORS.md │ │ │ ├── CHANGELOG.md │ │ │ ├── LICENSE │ │ │ ├── README.md │ │ │ ├── analysis_options.yaml │ │ │ ├── example/ │ │ │ │ ├── main.dart │ │ │ │ └── views/ │ │ │ │ ├── index.jael │ │ │ │ └── layout.jael │ │ │ ├── lib/ │ │ │ │ └── angel3_jael.dart │ │ │ ├── melos_angel3_jael.iml │ │ │ ├── pubspec.yaml │ │ │ └── test/ │ │ │ ├── all_test.dart │ │ │ └── minified_test.dart │ │ ├── jael/ │ │ │ ├── AUTHORS.md │ │ │ ├── CHANGELOG.md │ │ │ ├── LICENSE │ │ │ ├── README.md │ │ │ ├── analysis_options.yaml │ │ │ ├── bin/ │ │ │ │ └── jaelfmt.dart │ │ │ ├── example/ │ │ │ │ └── main.dart │ │ │ ├── lib/ │ │ │ │ ├── jael3.dart │ │ │ │ └── src/ │ │ │ │ ├── ast/ │ │ │ │ │ ├── array.dart │ │ │ │ │ ├── ast.dart │ │ │ │ │ ├── ast_node.dart │ │ │ │ │ ├── attribute.dart │ │ │ │ │ ├── binary.dart │ │ │ │ │ ├── call.dart │ │ │ │ │ ├── conditional.dart │ │ │ │ │ ├── document.dart │ │ │ │ │ ├── element.dart │ │ │ │ │ ├── error.dart │ │ │ │ │ ├── expression.dart │ │ │ │ │ ├── identifier.dart │ │ │ │ │ ├── interpolation.dart │ │ │ │ │ ├── map.dart │ │ │ │ │ ├── member.dart │ │ │ │ │ ├── new.dart │ │ │ │ │ ├── number.dart │ │ │ │ │ ├── string.dart │ │ │ │ │ └── token.dart │ │ │ │ ├── formatter.dart │ │ │ │ ├── renderer.dart │ │ │ │ └── text/ │ │ │ │ ├── parselet/ │ │ │ │ │ ├── infix.dart │ │ │ │ │ ├── parselet.dart │ │ │ │ │ └── prefix.dart │ │ │ │ ├── parser.dart │ │ │ │ └── scanner.dart │ │ │ ├── melos_jael3.iml │ │ │ ├── pubspec.yaml │ │ │ └── test/ │ │ │ ├── render/ │ │ │ │ ├── custom_element_test.dart │ │ │ │ ├── dsx_test.dart │ │ │ │ └── render_test.dart │ │ │ └── text/ │ │ │ ├── common.dart │ │ │ └── scan_test.dart │ │ ├── jael.iml │ │ ├── jael_language_server/ │ │ │ ├── LICENSE │ │ │ ├── analysis_options.yaml │ │ │ ├── bin/ │ │ │ │ └── jael3_language_server.dart │ │ │ ├── lib/ │ │ │ │ ├── jael3_language_server.dart │ │ │ │ └── src/ │ │ │ │ ├── analyzer.dart │ │ │ │ ├── object.dart │ │ │ │ ├── protocol/ │ │ │ │ │ └── language_server/ │ │ │ │ │ ├── interface.dart │ │ │ │ │ ├── messages.dart │ │ │ │ │ ├── messages.yaml │ │ │ │ │ ├── server.dart │ │ │ │ │ └── wireformat.dart │ │ │ │ └── server.dart │ │ │ ├── melos_jael3_language_server.iml │ │ │ └── pubspec.yaml │ │ ├── jael_preprocessor/ │ │ │ ├── AUTHORS.md │ │ │ ├── CHANGELOG.md │ │ │ ├── LICENSE │ │ │ ├── README.md │ │ │ ├── analysis_options.yaml │ │ │ ├── example/ │ │ │ │ └── main.dart │ │ │ ├── lib/ │ │ │ │ └── jael3_preprocessor.dart │ │ │ ├── melos_jael3_preprocessor.iml │ │ │ ├── pubspec.yaml │ │ │ └── test/ │ │ │ ├── block_test.dart │ │ │ └── include_test.dart │ │ └── jael_web/ │ │ ├── CHANGELOG.md │ │ ├── LICENSE │ │ ├── README.md │ │ ├── analysis_options.yaml │ │ ├── build.yaml │ │ ├── example/ │ │ │ ├── main.dart │ │ │ ├── main.g.dart │ │ │ ├── stateful.dart │ │ │ ├── stateful.g.dart │ │ │ ├── using_components.dart │ │ │ └── using_components.g.dart │ │ ├── lib/ │ │ │ ├── builder.dart │ │ │ ├── elements.dart │ │ │ ├── jael3_web.dart │ │ │ └── src/ │ │ │ ├── builder/ │ │ │ │ ├── builder.dart │ │ │ │ └── util.dart │ │ │ ├── builder_node.dart │ │ │ ├── component.dart │ │ │ ├── dom_builder.dart │ │ │ ├── dom_node.dart │ │ │ ├── elements.dart │ │ │ ├── fn.dart │ │ │ └── jael_component.dart │ │ ├── melos_jael3_web.iml │ │ └── pubspec.yaml │ ├── jinja/ │ │ ├── .gitignore │ │ ├── AUTHORS.md │ │ ├── CHANGELOG.md │ │ ├── LICENSE │ │ ├── README.md │ │ ├── analysis_options.yaml │ │ ├── example/ │ │ │ ├── main.dart │ │ │ └── views/ │ │ │ ├── hello.html │ │ │ ├── index.html │ │ │ └── layout.html │ │ ├── lib/ │ │ │ └── angel3_jinja.dart │ │ ├── melos_angel3_jinja.iml │ │ └── pubspec.yaml │ ├── markdown/ │ │ ├── .gitignore │ │ ├── AUTHORS.md │ │ ├── CHANGELOG.md │ │ ├── LICENSE │ │ ├── README.md │ │ ├── analysis_options.yaml │ │ ├── example/ │ │ │ ├── main.dart │ │ │ └── views/ │ │ │ └── hello.md │ │ ├── lib/ │ │ │ └── angel3_markdown.dart │ │ ├── melos_angel3_markdown.iml │ │ └── pubspec.yaml │ ├── oauth2/ │ │ ├── .gitignore │ │ ├── AUTHORS.md │ │ ├── CHANGELOG.md │ │ ├── LICENSE │ │ ├── README.md │ │ ├── analysis_options.yaml │ │ ├── example/ │ │ │ ├── example1.dart │ │ │ └── main.dart │ │ ├── lib/ │ │ │ ├── angel3_oauth2.dart │ │ │ └── src/ │ │ │ ├── exception.dart │ │ │ ├── pkce.dart │ │ │ ├── response.dart │ │ │ ├── server.dart │ │ │ └── token_type.dart │ │ ├── melos_angel3_oauth2.iml │ │ ├── pubspec.yaml │ │ └── test/ │ │ ├── auth_code_test.dart │ │ ├── client_credentials_test.dart │ │ ├── common.dart │ │ ├── device_code_test.dart │ │ ├── implicit_grant_test.dart │ │ ├── password_test.dart │ │ └── pkce_test.dart │ ├── orm/ │ │ ├── LICENSE │ │ ├── README.md │ │ ├── angel_orm_mysql/ │ │ │ ├── AUTHORS.md │ │ │ ├── CHANGELOG.md │ │ │ ├── LICENSE │ │ │ ├── README.md │ │ │ ├── analysis_options.yaml │ │ │ ├── example/ │ │ │ │ ├── example2.dart │ │ │ │ ├── main.dart │ │ │ │ └── main.g.dart │ │ │ ├── lib/ │ │ │ │ ├── angel3_orm_mysql.dart │ │ │ │ └── src/ │ │ │ │ ├── orm_mariadb.dart │ │ │ │ └── orm_mysql.dart │ │ │ ├── melos_angel3_orm_mysql.iml │ │ │ ├── pubspec.yaml │ │ │ └── test/ │ │ │ ├── belongs_to_test.dart │ │ │ ├── common.dart │ │ │ ├── custom_expr_test.dart │ │ │ ├── edge_case_test.dart │ │ │ ├── enum_and_nested_test.dart │ │ │ ├── enum_test.dart │ │ │ ├── has_many_test.dart │ │ │ ├── has_map_test.dart │ │ │ ├── has_one_test.dart │ │ │ ├── join_test.dart │ │ │ ├── many_to_many_test.dart │ │ │ ├── models/ │ │ │ │ ├── asset.dart │ │ │ │ ├── asset.g.dart │ │ │ │ ├── bike.dart │ │ │ │ ├── bike.g.dart │ │ │ │ ├── boat.d.ts │ │ │ │ ├── boat.dart │ │ │ │ ├── boat.g.dart │ │ │ │ ├── book.dart │ │ │ │ ├── book.g.dart │ │ │ │ ├── car.dart │ │ │ │ ├── car.g.dart │ │ │ │ ├── custom_expr.dart │ │ │ │ ├── custom_expr.g.dart │ │ │ │ ├── email_indexed.dart │ │ │ │ ├── email_indexed.g.dart │ │ │ │ ├── fortune.dart │ │ │ │ ├── fortune.g.dart │ │ │ │ ├── has_car.dart │ │ │ │ ├── has_car.g.dart │ │ │ │ ├── has_map.dart │ │ │ │ ├── has_map.g.dart │ │ │ │ ├── leg.dart │ │ │ │ ├── leg.g.dart │ │ │ │ ├── order.dart │ │ │ │ ├── order.g.dart │ │ │ │ ├── person.dart │ │ │ │ ├── person.g.dart │ │ │ │ ├── person_order.dart │ │ │ │ ├── person_order.g.dart │ │ │ │ ├── quotation.dart │ │ │ │ ├── quotation.g.dart │ │ │ │ ├── todo.dart │ │ │ │ ├── todo.g.dart │ │ │ │ ├── tree.dart │ │ │ │ ├── tree.g.dart │ │ │ │ ├── unorthodox.dart │ │ │ │ ├── unorthodox.g.dart │ │ │ │ ├── user.dart │ │ │ │ ├── user.g.dart │ │ │ │ ├── world.dart │ │ │ │ └── world.g.dart │ │ │ ├── performance_test.dart │ │ │ ├── standalone_test.dart │ │ │ └── util.dart │ │ ├── angel_orm_service/ │ │ │ ├── AUTHORS.md │ │ │ ├── CHANGELOG.md │ │ │ ├── LICENSE │ │ │ ├── README.md │ │ │ ├── analysis_options.yaml │ │ │ ├── example/ │ │ │ │ ├── connect.dart │ │ │ │ ├── main.dart │ │ │ │ ├── migrate.dart │ │ │ │ ├── todo.dart │ │ │ │ └── todo.g.dart │ │ │ ├── lib/ │ │ │ │ └── angel3_orm_service.dart │ │ │ ├── melos_angel3_orm_service.iml │ │ │ ├── pubspec.yaml │ │ │ └── test/ │ │ │ ├── all_test.dart │ │ │ ├── pokemon.dart │ │ │ └── pokemon.g.dart │ │ └── angel_orm_test/ │ │ └── README.md │ ├── paginate/ │ │ ├── .analysis-options │ │ ├── .gitignore │ │ ├── AUTHORS.md │ │ ├── CHANGELOG.md │ │ ├── LICENSE │ │ ├── README.md │ │ ├── analysis_options.yaml │ │ ├── example/ │ │ │ └── main.dart │ │ ├── lib/ │ │ │ └── angel3_paginate.dart │ │ ├── melos_angel3_paginate.iml │ │ ├── pubspec.yaml │ │ └── test/ │ │ ├── all_test.dart │ │ ├── bounds_test.dart │ │ └── paginate_test.dart │ ├── production/ │ │ ├── .pubignore │ │ ├── AUTHORS.md │ │ ├── CHANGELOG.md │ │ ├── LICENSE │ │ ├── README.md │ │ ├── analysis_options.yaml │ │ ├── example/ │ │ │ └── main.dart │ │ ├── lib/ │ │ │ ├── angel3_production.dart │ │ │ └── src/ │ │ │ ├── instance_info.dart │ │ │ ├── options.dart │ │ │ └── runner.dart │ │ ├── melos_angel3_production.iml │ │ └── pubspec.yaml │ ├── redis/ │ │ ├── .gitignore │ │ ├── AUTHORS.md │ │ ├── CHANGELOG.md │ │ ├── LICENSE │ │ ├── README.md │ │ ├── analysis_options.yaml │ │ ├── example/ │ │ │ └── main.dart │ │ ├── lib/ │ │ │ ├── angel3_redis.dart │ │ │ └── src/ │ │ │ └── redis_service.dart │ │ ├── melos_angel3_redis.iml │ │ ├── pubspec.yaml │ │ └── test/ │ │ └── all_test.dart │ ├── sembast/ │ │ ├── .gitignore │ │ ├── AUTHORS.md │ │ ├── CHANGELOG.md │ │ ├── LICENSE │ │ ├── README.md │ │ ├── analysis_options.yaml │ │ ├── example/ │ │ │ └── main.dart │ │ ├── lib/ │ │ │ └── angel3_sembast.dart │ │ ├── melos_angel3_sembast.iml │ │ ├── pubspec.yaml │ │ └── test/ │ │ └── all_test.dart │ ├── seo/ │ │ ├── .gitignore │ │ ├── AUTHORS.md │ │ ├── CHANGELOG.md │ │ ├── LICENSE │ │ ├── README.md │ │ ├── analysis_options.yaml │ │ ├── example/ │ │ │ ├── main.dart │ │ │ └── web/ │ │ │ ├── index.html │ │ │ ├── not-inlined.css │ │ │ ├── not-inlined.js │ │ │ ├── site.css │ │ │ └── site.js │ │ ├── lib/ │ │ │ ├── angel3_seo.dart │ │ │ └── src/ │ │ │ └── inline_assets.dart │ │ ├── melos_angel3_seo.iml │ │ ├── pubspec.yaml │ │ └── test/ │ │ └── inline_assets_test.dart │ ├── shelf/ │ │ ├── AUTHORS.md │ │ ├── CHANGELOG.md │ │ ├── LICENSE │ │ ├── README.md │ │ ├── analysis_options.yaml │ │ ├── example/ │ │ │ ├── angel_in_shelf.dart │ │ │ └── main.dart │ │ ├── lib/ │ │ │ ├── angel3_shelf.dart │ │ │ └── src/ │ │ │ ├── convert.dart │ │ │ ├── embed_shelf.dart │ │ │ ├── shelf_driver.dart │ │ │ ├── shelf_request.dart │ │ │ └── shelf_response.dart │ │ ├── melos_angel3_shelf.iml │ │ ├── pubspec.yaml │ │ └── test/ │ │ ├── all.dart │ │ └── embed_shelf_test.dart │ ├── static/ │ │ ├── AUTHORS.md │ │ ├── CHANGELOG.md │ │ ├── LICENSE │ │ ├── README.md │ │ ├── analysis_options.yaml │ │ ├── example/ │ │ │ └── main.dart │ │ ├── lib/ │ │ │ ├── angel3_static.dart │ │ │ └── src/ │ │ │ ├── cache.dart │ │ │ └── virtual_directory.dart │ │ ├── melos_angel3_static.iml │ │ ├── pubspec.yaml │ │ └── test/ │ │ ├── HELLO.md │ │ ├── all_test.dart │ │ ├── cache_sample.dart │ │ ├── cache_test.dart │ │ ├── foo.mustache │ │ ├── index.txt │ │ ├── issue41_test.dart │ │ ├── nested/ │ │ │ └── index.txt │ │ ├── push_state_test.dart │ │ ├── sample.txt │ │ └── web/ │ │ └── index.html │ ├── sync/ │ │ ├── AUTHORS.md │ │ ├── CHANGELOG.md │ │ ├── LICENSE │ │ ├── README.md │ │ ├── analysis_options.yaml │ │ ├── example/ │ │ │ └── main.dart │ │ ├── lib/ │ │ │ └── angel3_sync.dart │ │ ├── melos_angel3_sync.iml │ │ ├── pubspec.yaml │ │ └── test/ │ │ └── all_test.dart │ └── user_agent/ │ └── angel_user_agent/ │ ├── AUTHORS.md │ ├── CHANGELOG.md │ ├── LICENSE │ ├── README.md │ ├── analysis_options.yaml │ ├── example/ │ │ └── example.dart │ ├── lib/ │ │ └── angel3_user_agent.dart │ ├── melos_angel3_user_agent.iml │ └── pubspec.yaml └── pubspec.yaml
SYMBOL INDEX (2506 symbols across 280 files)
FILE: packages/cache/example/cache_service.dart
function main (line 5) | void main()
FILE: packages/cache/example/main.dart
function main (line 5) | void main()
FILE: packages/cache/lib/src/cache.dart
class ResponseCache (line 11) | class ResponseCache {
method close (line 34) | Future close()
method purge (line 39) | void purge(String path)
method ifModifiedSince (line 44) | Future<bool> ifModifiedSince(RequestContext req, ResponseContext res)
method _getEffectivePath (line 90) | String _getEffectivePath(RequestContext req)
method handleRequest (line 99) | Future<bool> handleRequest(RequestContext req, ResponseContext res)
method responseFinalizer (line 137) | Future<bool> responseFinalizer(
method _setCachedHeaders (line 191) | void _setCachedHeaders(
class _CachedResponse (line 207) | class _CachedResponse {
FILE: packages/cache/lib/src/cache_service.dart
class CacheService (line 9) | class CacheService<Id, Data> extends Service<Id, Data> {
method _getCached (line 35) | Future<T> _getCached<T>(
method index (line 72) | Future<List<Data>> index([Map<String, dynamic>? params])
method read (line 86) | Future<Data> read(Id id, [Map<String, dynamic>? params])
method create (line 100) | Future<Data> create(data, [Map<String, dynamic>? params])
method modify (line 106) | Future<Data> modify(Id id, Data data, [Map<String, dynamic>? params])
method update (line 113) | Future<Data> update(Id id, Data data, [Map<String, dynamic>? params])
method remove (line 120) | Future<Data> remove(Id id, [Map<String, dynamic>? params])
class _CachedItem (line 127) | class _CachedItem<Data> {
method toString (line 135) | String toString()
FILE: packages/cache/lib/src/serializer.dart
function cacheSerializationResults (line 9) | RequestHandler cacheSerializationResults({
FILE: packages/cache/test/cache_test.dart
function main (line 11) | Future<void> main()
FILE: packages/container/angel_container_generator/example/main.dart
function main (line 6) | Future<void> main()
class Truck (line 56) | abstract class Truck {
method drive (line 57) | void drive()
class Engine (line 60) | class Engine {
class _TruckImpl (line 66) | class _TruckImpl implements Truck {
method drive (line 72) | void drive()
FILE: packages/container/angel_container_generator/example/main.reflectable.dart
function initializeReflectable (line 8649) | void initializeReflectable()
FILE: packages/container/angel_container_generator/lib/angel3_container_generator.dart
class ContainedReflectable (line 7) | @contained
class GeneratedReflector (line 24) | class GeneratedReflector extends Reflector {
method getName (line 30) | String getName(Symbol symbol)
method reflectClass (line 35) | ReflectedClass reflectClass(Type clazz)
method reflectFunction (line 40) | ReflectedFunction reflectFunction(Function function)
method reflectInstance (line 55) | ReflectedInstance reflectInstance(Object object)
method reflectType (line 65) | ReflectedType reflectType(Type type)
class _GeneratedReflectedInstance (line 77) | class _GeneratedReflectedInstance extends ReflectedInstance {
method getField (line 92) | ReflectedInstance getField(String name)
class _GeneratedReflectedClass (line 99) | class _GeneratedReflectedClass extends ReflectedClass {
method isAssignableTo (line 125) | bool isAssignableTo(ReflectedType? other)
method newInstance (line 136) | ReflectedInstance newInstance(
class _GeneratedReflectedType (line 152) | class _GeneratedReflectedType extends ReflectedType {
method isAssignableTo (line 163) | bool isAssignableTo(ReflectedType? other)
method newInstance (line 174) | ReflectedInstance newInstance(
class _GeneratedReflectedFunction (line 184) | class _GeneratedReflectedFunction extends ReflectedFunction {
method invoke (line 209) | ReflectedInstance invoke(Invocation invocation)
function _constructorsOf (line 219) | List<ReflectedFunction> _constructorsOf(
function _declarationsOf (line 234) | List<ReflectedDeclaration> _declarationsOf(
function _convertTypeVariable (line 258) | ReflectedTypeParameter _convertTypeVariable(TypeVariableMirror mirror)
function _convertParameter (line 262) | ReflectedParameter _convertParameter(
FILE: packages/container/angel_container_generator/test/reflector_test.dart
function main (line 7) | void main()
function returnVoidFromAFunction (line 37) | void returnVoidFromAFunction(int x)
function testReflector (line 39) | void testReflector(Reflector reflector)
class LowerPokemon (line 123) | @contained
class Pokemon (line 132) | @contained
method toString (line 144) | String toString()
class KantoPokemon (line 147) | @contained
type PokemonType (line 152) | @contained
class Artist (line 155) | @contained
class Album (line 166) | @contained
class AlbumLength (line 175) | @contained
FILE: packages/container/angel_container_generator/test/reflector_test.reflectable.dart
function initializeReflectable (line 9512) | void initializeReflectable()
FILE: packages/file_service/example/main.dart
function configureServer (line 5) | void configureServer(Angel app)
FILE: packages/file_service/lib/angel3_file_service.dart
class JsonFileService (line 8) | class JsonFileService extends Service<String, Map<String, dynamic>> {
method _coerceStringDynamic (line 28) | Map<String, dynamic> _coerceStringDynamic(Map m)
method _load (line 35) | Future _load()
method _save (line 57) | Future<File> _save()
method close (line 66) | Future close()
method index (line 71) | Future<List<Map<String, dynamic>>> index([
method read (line 78) | Future<Map<String, dynamic>> read(id, [Map<String, dynamic>? params])
method create (line 82) | Future<Map<String, dynamic>> create(
method remove (line 93) | Future<Map<String, dynamic>> remove(
method update (line 104) | Future<Map<String, dynamic>> update(
method modify (line 116) | Future<Map<String, dynamic>> modify(
function _safeForJson (line 128) | dynamic _safeForJson(dynamic x)
function _jsonify (line 142) | Map _jsonify(Map map)
function _jsonifyToSD (line 146) | Map<String, dynamic> _jsonifyToSD(Map<String, dynamic> map)
function _revive (line 149) | dynamic _revive(dynamic x)
FILE: packages/file_service/test/all_test.dart
function main (line 6) | void main()
FILE: packages/framework/example/controller.dart
function main (line 6) | void main()
class ArtistsController (line 30) | class ArtistsController extends Controller {
method index (line 31) | List index()
method getById (line 35) | String getById(int id, RequestContext req)
method form (line 40) | Future<Artist> form(RequestContext req)
class Artist (line 51) | class Artist {
method toJson (line 56) | Map<String, dynamic> toJson()
FILE: packages/framework/example/handle_error.dart
function main (line 8) | void main()
FILE: packages/framework/example/hostname.dart
function apiConfigurer (line 6) | Future<void> apiConfigurer(Angel app)
function frontendConfigurer (line 13) | Future<void> frontendConfigurer(Angel app)
function main (line 17) | void main()
FILE: packages/framework/example/http2/body_parsing.dart
function main (line 8) | void main()
FILE: packages/framework/example/http2/common.dart
function dumpError (line 3) | void dumpError(LogRecord rec)
FILE: packages/framework/example/http2/main.dart
function main (line 8) | void main()
FILE: packages/framework/example/http2/server_push.dart
function main (line 8) | void main()
FILE: packages/framework/example/json.dart
function main (line 7) | void main()
function serverMain (line 33) | void serverMain(_)
FILE: packages/framework/example/main.dart
function main (line 6) | void main()
FILE: packages/framework/example/map_service.dart
function main (line 6) | void main()
FILE: packages/framework/example/status.dart
function main (line 4) | void main()
FILE: packages/framework/example/view.dart
function main (line 5) | void main()
FILE: packages/framework/lib/src/core/anonymous_service.dart
class AnonymousService (line 7) | class AnonymousService<Id, Data> extends Service<Id, Data> {
method index (line 33) | Future<List<Data>> index([Map<String, dynamic>? params])
method read (line 37) | Future<Data> read(Id id, [Map<String, dynamic>? params])
method create (line 42) | Future<Data> create(Data data, [Map<String, dynamic>? params])
method modify (line 47) | Future<Data> modify(Id id, Data data, [Map<String, dynamic>? params])
method update (line 55) | Future<Data> update(Id id, Data data, [Map<String, dynamic>? params])
method remove (line 63) | Future<Data> remove(Id id, [Map<String, dynamic>? params])
FILE: packages/framework/lib/src/core/controller.dart
class Controller (line 11) | class Controller {
method configureServer (line 41) | Future<void> configureServer(Angel app)
method applyRoutes (line 56) | Future<String> applyRoutes(
method _routeBuilder (line 93) | void Function(ReflectedDeclaration) _routeBuilder(
method configureRoutes (line 237) | FutureOr<void> configureRoutes(Routable routable)
method findExpose (line 246) | Expose? findExpose(Reflector reflector, {bool concreteOnly = false})
FILE: packages/framework/lib/src/core/driver.dart
class Driver (line 14) | abstract class Driver<
method generateServer (line 39) | Future<Server> generateServer(Object? address, int port)
method startServer (line 43) | Future<Server> startServer([Object? address, int port = 0])
method close (line 68) | Future<void> close()
method createRequestContext (line 89) | Future<RequestContextType> createRequestContext(
method createResponseContext (line 94) | Future<ResponseContextType> createResponseContext(
method setHeader (line 100) | void setHeader(Response response, String key, String value)
method setContentLength (line 102) | void setContentLength(Response response, int length)
method setChunkedEncoding (line 104) | void setChunkedEncoding(Response response, bool value)
method setStatusCode (line 106) | void setStatusCode(Response response, int value)
method addCookies (line 108) | void addCookies(Response response, Iterable<Cookie> cookies)
method writeStringToResponse (line 110) | void writeStringToResponse(Response response, String value)
method writeToResponse (line 112) | void writeToResponse(Response response, List<int> data)
method closeResponse (line 114) | Future closeResponse(Response response)
method createResponseStreamFromRawRequest (line 116) | Stream<Response> createResponseStreamFromRawRequest(Request request)
method handleRawRequest (line 119) | Future handleRawRequest(Request request, Response response)
method handle (line 124) | Future handle()
method resolveTuple (line 128) | Tuple4<
method handleAngelHttpException (line 300) | Future handleAngelHttpException(
method sendResponse (line 346) | Future sendResponse(
method cleanup (line 354) | Future<void> cleanup(_)
method runPipeline (line 440) | Future<void> runPipeline<
FILE: packages/framework/lib/src/core/env.dart
class AngelEnvironment (line 7) | class AngelEnvironment {
FILE: packages/framework/lib/src/core/hooked_service.dart
class HookedService (line 14) | class HookedService<Id, Data, T extends Service<Id, Data>>
method _getRequest (line 57) | RequestContext? _getRequest(Map? params)
method _getResponse (line 62) | ResponseContext? _getResponse(Map? params)
method _stripReq (line 67) | Map<String, dynamic> _stripReq(Map<String, dynamic>? params)
method close (line 82) | Future close()
method addHooks (line 103) | void addHooks(Angel app)
method applyListeners (line 113) | void applyListeners(
method addRoutes (line 155) | void addRoutes([Service? service])
method before (line 160) | void before(
method after (line 190) | void after(
method beforeAll (line 220) | void beforeAll(HookedServiceEventListener<Id, Data, T> listener)
method afterAll (line 230) | void afterAll(HookedServiceEventListener<Id, Data, T> listener)
method beforeAllStream (line 244) | Stream<HookedServiceEvent<Id, Data, T>> beforeAllStream()
method afterAllStream (line 256) | Stream<HookedServiceEvent<Id, Data, T>> afterAllStream()
method beforeStream (line 268) | Stream<HookedServiceEvent<Id, Data, T>> beforeStream(
method afterStream (line 282) | Stream<HookedServiceEvent<Id, Data, T>> afterStream(
method beforeModify (line 292) | void beforeModify(HookedServiceEventListener<Id, Data, T> listener)
method index (line 299) | Future<List<Data>> index([Map<String, dynamic>? params])
method read (line 348) | Future<Data> read(Id id, [Map<String, dynamic>? params])
method create (line 400) | Future<Data> create(Data data, [Map<String, dynamic>? params])
method modify (line 452) | Future<Data> modify(Id id, Data data, [Map<String, dynamic>? params])
method update (line 509) | Future<Data> update(Id id, Data data, [Map<String, dynamic>? params])
method remove (line 566) | Future<Data> remove(Id id, [Map<String, dynamic>? params])
method fire (line 620) | Future<HookedServiceEvent<Id, Data, T>> fire(
method fireEvent (line 661) | Future<HookedServiceEvent<Id, Data, T>> fireEvent(
class HookedServiceEvent (line 676) | class HookedServiceEvent<Id, Data, T extends Service<Id, Data>> {
method cancel (line 694) | void cancel([Object? result])
method getService (line 702) | Service? getService(Pattern path)
type HookedServiceEventListener (line 749) | typedef HookedServiceEventListener<Id, Data, T extends Service<Id, Data>> =
class HookedServiceEventDispatcher (line 753) | class HookedServiceEventDispatcher<Id, Data, T extends Service<Id, Data>> {
method _close (line 757) | void _close()
method _emit (line 765) | Future<HookedServiceEvent<Id, Data, T>> _emit(
method asStream (line 788) | Stream<HookedServiceEvent<Id, Data, T>> asStream()
method listen (line 796) | void listen(HookedServiceEventListener<Id, Data, T> listener)
FILE: packages/framework/lib/src/core/hostname_parser.dart
class HostnameSyntaxParser (line 5) | class HostnameSyntaxParser {
method _formatExc (line 12) | FormatException _formatExc(String message)
method parse (line 19) | RegExp parse()
method _parseHostnamePart (line 66) | String _parseHostnamePart({bool shouldThrow = true})
FILE: packages/framework/lib/src/core/hostname_router.dart
class HostnameRouter (line 26) | class HostnameRouter {
method parseMap (line 35) | Map<Pattern, V> parseMap<V>(Map<Pattern, V> map)
method handleRequest (line 89) | Future<bool> handleRequest(RequestContext req, ResponseContext res)
FILE: packages/framework/lib/src/core/injection.dart
function ioc (line 10) | RequestHandler ioc(Function handler, {Iterable<String> optional = const ...
function resolveInjection (line 26) | Future resolveInjection(
function suitableForInjection (line 108) | bool suitableForInjection(
function handleContained (line 121) | RequestHandler handleContained(
class InjectionRequest (line 164) | class InjectionRequest {
function preInject (line 192) | InjectionRequest preInject(Function handler, Reflector reflector)
FILE: packages/framework/lib/src/core/map_service.dart
class MapService (line 8) | class MapService extends Service<String?, Map<String, dynamic>> {
method _matchesId (line 38) | bool Function(Map<String, dynamic>) _matchesId(Object? id)
method index (line 51) | Future<List<Map<String, dynamic>>> index([Map<String, dynamic>? params])
method read (line 74) | Future<Map<String, dynamic>> read(
method create (line 89) | Future<Map<String, dynamic>> create(
method modify (line 107) | Future<Map<String, dynamic>> modify(
method update (line 133) | Future<Map<String, dynamic>> update(
method remove (line 167) | Future<Map<String, dynamic>> remove(
FILE: packages/framework/lib/src/core/metadata.dart
class Middleware (line 10) | class Middleware {
class Hooks (line 17) | class Hooks {
class NoExpose (line 25) | class NoExpose {
class Expose (line 46) | class Expose {
class Parameter (line 77) | class Parameter {
method getValue (line 134) | dynamic getValue(RequestContext req)
class Header (line 152) | class Header extends Parameter {
class Session (line 158) | class Session extends Parameter {
class Query (line 168) | class Query extends Parameter {
class CookieValue (line 174) | class CookieValue extends Parameter {
FILE: packages/framework/lib/src/core/request_context.dart
class RequestContext (line 26) | abstract class RequestContext<RawRequest> {
method accepts (line 215) | bool accepts(Object? contentType, {bool strict = false})
method deserializeBody (line 243) | Future<T> deserializeBody<T>(
method decodeBody (line 252) | Future<T> decodeBody<T>(Codec<T, Map?> codec, {Encoding encoding = utf8})
method parseBody (line 256) | Future<void> parseBody({Encoding encoding = utf8})
method close (line 323) | Future<void> close()
class UploadedFile (line 336) | class UploadedFile {
method readAsBytes (line 386) | Future<List<int>> readAsBytes()
method readAsString (line 393) | Future<String> readAsString({Encoding encoding = utf8})
FILE: packages/framework/lib/src/core/response_context.dart
class ResponseContext (line 21) | abstract class ResponseContext<RawResponse>
method detach (line 108) | FutureOr<RawResponse> detach()
method closed (line 142) | StateError closed()
method download (line 145) | Future<void> download(File file, {String? filename})
method close (line 163) | Future<void> close()
method json (line 173) | Future<bool> json(Object? value)
method jsonp (line 179) | Future<void> jsonp(
method render (line 191) | Future<void> render(String view, [Map<String, dynamic>? data])
method redirect (line 213) | Future<void> redirect(Object? url, {bool absolute = true, int? code})
method redirectTo (line 242) | Future<void> redirectTo(String name, [Map? params, int? code])
method findRoute (line 244) | Route? findRoute(Router r)
method redirectToAction (line 276) | Future<void> redirectToAction(String action, [Map? params, int? code])
method serialize (line 320) | Future<bool> serialize(Object? value, {MediaType? contentType})
method streamFile (line 335) | Future streamFile(File file)
method useBuffer (line 351) | void useBuffer()
method addStream (line 358) | Future addStream(Stream<List<int>> stream)
method addError (line 361) | void addError(Object error, [StackTrace? stackTrace])
method write (line 375) | void write(value, {Encoding? encoding})
method writeCharCode (line 388) | void writeCharCode(int charCode)
method writeln (line 399) | void writeln([Object? obj = ''])
method writeAll (line 405) | void writeAll(Iterable objects, [String separator = ''])
class LockableBytesBuilder (line 410) | abstract class LockableBytesBuilder implements BytesBuilder {
method lock (line 415) | void lock()
class _LockableBytesBuilderImpl (line 418) | class _LockableBytesBuilderImpl implements LockableBytesBuilder {
method _deny (line 422) | StateError _deny()
method lock (line 426) | void lock()
method add (line 431) | void add(List<int> bytes)
method addByte (line 440) | void addByte(int byte)
method clear (line 449) | void clear()
method takeBytes (line 463) | Uint8List takeBytes()
method toBytes (line 468) | Uint8List toBytes()
FILE: packages/framework/lib/src/core/routable.dart
type RequestHandler (line 18) | typedef RequestHandler =
function chain (line 26) | RequestHandler chain(Iterable<RequestHandler> handlers)
class Routable (line 51) | class Routable extends Router<RequestHandler> {
method close (line 71) | void close()
method findService (line 89) | T? findService<T extends Service>(Pattern path)
method findServiceOf (line 98) | Service<Id, Data>? findServiceOf<Id, Data>(Pattern path)
method findHookedService (line 103) | HookedService<dynamic, dynamic, T>? findHookedService<T extends Service>(
method addRoute (line 110) | Route<RequestHandler> addRoute(
method use (line 145) | HookedService<Id, Data, T> use<Id, Data, T extends Service<Id, Data>>(
FILE: packages/framework/lib/src/core/server.dart
type AngelConfigurer (line 25) | typedef AngelConfigurer = FutureOr<void> Function(Angel app);
type ViewGenerator (line 28) | typedef ViewGenerator =
type AngelErrorHandler (line 32) | typedef AngelErrorHandler =
function _defaultErrorHandler (line 40) | Future<bool> _defaultErrorHandler(
function _defaultLogger (line 66) | Logger _defaultLogger()
class Angel (line 88) | class Angel extends Routable {
method _noViewEngineConfigured (line 89) | Future<String> _noViewEngineConfigured(String view, [Map? data])
method addRoute (line 182) | Route<RequestHandler> addRoute(
method mount (line 201) | SymlinkRoute<RequestHandler> mount(
method bootstrapContainer (line 223) | void bootstrapContainer()
method close (line 237) | Future<void> close()
method dumpTree (line 258) | void dumpTree({
method getHandlerResult (line 289) | Future getHandlerResult(
method executeHandler (line 316) | Future<bool> executeHandler(
method findProperty (line 335) | dynamic findProperty(dynamic key)
method optimizeForProduction (line 353) | void optimizeForProduction({bool force = false})
method runContained (line 363) | Future runContained(
method runReflected (line 383) | Future runReflected(
method configure (line 405) | Future configure(AngelConfigurer configurer)
method mountController (line 416) | Future<T> mountController<T extends Controller>([Type? type])
method fallback (line 422) | Route<RequestHandler?> fallback(RequestHandler handler)
method use (line 427) | HookedService<Id, Data, T> use<Id, Data, T extends Service<Id, Data>>(
FILE: packages/framework/lib/src/core/service.dart
class Providers (line 20) | class Providers {
method toJson (line 45) | Map<String, String> toJson()
method toString (line 50) | String toString()
class Service (line 58) | class Service<Id, Data> extends Routable {
method close (line 88) | void close()
method findOne (line 123) | Future<Data> findOne([
method index (line 137) | Future<List<Data>> index([Map<String, dynamic>? params])
method read (line 142) | Future<Data> read(Id id, [Map<String, dynamic>? params])
method readMany (line 150) | Future<List<Data>> readMany(List<Id> ids, [Map<String, dynamic>? params])
method create (line 155) | Future<Data> create(Data data, [Map<String, dynamic>? params])
method modify (line 160) | Future<Data> modify(Id id, Data data, [Map<String, dynamic>? params])
method update (line 165) | Future<Data> update(Id id, Data data, [Map<String, dynamic>? params])
method remove (line 170) | Future<Data> remove(Id id, [Map<String, dynamic>? params])
method map (line 178) | Service<Id, U> map<U>(
method parseId (line 216) | T parseId<T>(Object? id)
method addRoutes (line 236) | void addRoutes([Service? service])
method _addRoutesInner (line 240) | void _addRoutesInner(Service service, Iterable<RequestHandler> handlerss)
method onHooked (line 438) | void onHooked(HookedService hookedService)
FILE: packages/framework/lib/src/fast_name_from_symbol.dart
function fastNameFromSymbol (line 3) | String fastNameFromSymbol(Symbol s)
FILE: packages/framework/lib/src/http/angel_http.dart
type ServerGeneratorType (line 18) | typedef ServerGeneratorType = Future<HttpServer> Function(dynamic, int);
class AngelHttp (line 21) | class AngelHttp
method handleRequest (line 89) | Future handleRequest(HttpRequest request)
method addCookies (line 93) | void addCookies(HttpResponse response, Iterable<Cookie> cookies)
method close (line 97) | Future<void> close()
method removeResponseHeader (line 102) | void removeResponseHeader(Map<String, Object> headers)
method addResponseHeader (line 109) | void addResponseHeader(Map<String, Object> headers)
method closeResponse (line 116) | Future closeResponse(HttpResponse response)
method createRequestContext (line 119) | Future<HttpRequestContext> createRequestContext(
method createResponseContext (line 129) | Future<HttpResponseContext> createResponseContext(
method createResponseStreamFromRawRequest (line 141) | Stream<HttpResponse> createResponseStreamFromRawRequest(
method setChunkedEncoding (line 146) | void setChunkedEncoding(HttpResponse response, bool value)
method setContentLength (line 150) | void setContentLength(HttpResponse response, int length)
method setHeader (line 154) | void setHeader(HttpResponse response, String key, String value)
method setStatusCode (line 158) | void setStatusCode(HttpResponse response, int value)
method writeStringToResponse (line 162) | void writeStringToResponse(HttpResponse response, String value)
method writeToResponse (line 166) | void writeToResponse(HttpResponse response, List<int> data)
FILE: packages/framework/lib/src/http/http.dart
function startShared (line 11) | Future<HttpServer> startShared(Object? address, int port)
function startSharedSecure (line 14) | Future<HttpServer> Function(Object?, int) startSharedSecure(
FILE: packages/framework/lib/src/http/http_request_context.dart
class HttpRequestContext (line 10) | class HttpRequestContext extends RequestContext<HttpRequest?> {
method from (line 79) | Future<HttpRequestContext> from(
method close (line 106) | Future close()
FILE: packages/framework/lib/src/http/http_response_context.dart
class HttpResponseContext (line 11) | class HttpResponseContext extends ResponseContext<HttpResponse> {
method detach (line 30) | HttpResponse detach()
method addError (line 52) | void addError(Object error, [StackTrace? stackTrace])
method useBuffer (line 58) | void useBuffer()
method _openStream (line 90) | bool _openStream()
method addStream (line 142) | Future addStream(Stream<List<int>> stream)
method add (line 172) | void add(List<int> data)
method close (line 207) | Future close()
FILE: packages/framework/lib/src/http2/angel_http2.dart
function startSharedHttp2 (line 13) | Future<SecureServerSocket> startSharedHttp2(
class AngelHttp2 (line 22) | class AngelHttp2
method generateServer (line 100) | Future<SecureServerSocket> generateServer([
method close (line 109) | Future<void> close()
method addCookies (line 116) | void addCookies(ServerTransportStream response, Iterable<Cookie> cookies)
method closeResponse (line 124) | Future closeResponse(ServerTransportStream response)
method createRequestContext (line 130) | Future<Http2RequestContext> createRequestContext(
method createResponseContext (line 138) | Future<Http2ResponseContext> createResponseContext(
method createResponseStreamFromRawRequest (line 148) | Stream<ServerTransportStream> createResponseStreamFromRawRequest(
method setChunkedEncoding (line 159) | void setChunkedEncoding(ServerTransportStream response, bool value)
method setContentLength (line 164) | void setContentLength(ServerTransportStream response, int length)
method setHeader (line 169) | void setHeader(ServerTransportStream response, String key, String? value)
method setStatusCode (line 174) | void setStatusCode(ServerTransportStream response, int value)
method writeStringToResponse (line 186) | void writeStringToResponse(ServerTransportStream response, String value)
method writeToResponse (line 191) | void writeToResponse(ServerTransportStream response, List<int> data)
class _FakeServerSocket (line 196) | class _FakeServerSocket extends Stream<Socket> implements ServerSocket {
method close (line 206) | Future<ServerSocket> close()
method listen (line 215) | StreamSubscription<Socket> listen(
class _AngelHttp2ServerSocket (line 230) | class _AngelHttp2ServerSocket extends Stream<SecureSocket>
method close (line 275) | Future<SecureServerSocket> close()
method listen (line 283) | StreamSubscription<SecureSocket> listen(
FILE: packages/framework/lib/src/http2/http2_request_context.dart
class Http2RequestContext (line 14) | class Http2RequestContext extends RequestContext<ServerTransportStream?> {
method from (line 31) | Future<Http2RequestContext> from(
method finalize (line 53) | void finalize()
method parseHost (line 60) | void parseHost(String value)
method close (line 188) | Future close()
FILE: packages/framework/lib/src/http2/http2_response_context.dart
class Http2ResponseContext (line 9) | class Http2ResponseContext extends ResponseContext<ServerTransportStream> {
method detach (line 42) | ServerTransportStream detach()
method useBuffer (line 69) | void useBuffer()
method _openStream (line 74) | bool _openStream()
method addStream (line 133) | Future addStream(Stream<List<int>> stream)
method add (line 163) | void add(List<int> data)
method close (line 198) | Future close()
method push (line 209) | Http2ResponseContext push(
FILE: packages/framework/lib/src/safe_stream_controller.dart
type _InitCallback (line 3) | typedef _InitCallback = void Function();
class SafeCtrl (line 6) | abstract class SafeCtrl<T> {
method add (line 13) | void add(T event)
method addError (line 15) | void addError(Error error, [StackTrace? stackTrace])
method close (line 17) | Future close()
method whenInitialized (line 19) | void whenInitialized(void Function() callback)
class _SingleSafeCtrl (line 22) | class _SingleSafeCtrl<T> implements SafeCtrl<T> {
method add (line 53) | void add(T event)
method addError (line 58) | void addError(error, [StackTrace? stackTrace])
method close (line 63) | Future close()
method whenInitialized (line 68) | void whenInitialized(void Function() callback)
class _BroadcastSafeCtrl (line 80) | class _BroadcastSafeCtrl<T> implements SafeCtrl<T> {
method add (line 106) | void add(T event)
method addError (line 111) | void addError(error, [StackTrace? stackTrace])
method close (line 116) | Future close()
method whenInitialized (line 121) | void whenInitialized(void Function() callback)
FILE: packages/framework/lib/src/util.dart
function matchingAnnotation (line 5) | T? matchingAnnotation<T>(List<ReflectedInstance> metadata)
function getAnnotation (line 15) | T? getAnnotation<T>(Object obj, Reflector? reflector)
FILE: packages/framework/performance/hello/main.dart
function main (line 7) | void main()
FILE: packages/framework/performance/hello/raw.dart
function main (line 6) | Future<void> main()
FILE: packages/framework/test/accepts_test.dart
function main (line 11) | void main()
function acceptContentTypes (line 60) | Future<RequestContext> acceptContentTypes([
FILE: packages/framework/test/all.dart
function main (line 34) | void main()
FILE: packages/framework/test/anonymous_service_test.dart
function main (line 4) | void main()
FILE: packages/framework/test/body_test.dart
function main (line 9) | void main()
function request (line 13) | Future<RequestContext> request({
class Todo (line 129) | class Todo {
method fromMap (line 135) | Todo fromMap(Map? m)
class TodoCodec (line 139) | class TodoCodec extends Codec<Todo, Map?> {
class TodoDecoder (line 147) | class TodoDecoder extends Converter<Map, Todo> {
method convert (line 149) | Todo convert(Map input)
FILE: packages/framework/test/common.dart
class Todo (line 6) | class Todo extends Model {
method toJson (line 12) | Map<String, dynamic> toJson()
class BookService (line 17) | class BookService extends Service {
method index (line 19) | Future<List> index([params])
function incrementTodoTimes (line 28) | void incrementTodoTimes(dynamic e)
class IncrementService (line 32) | @Hooks(before: [incrementTodoTimes])
method index (line 38) | Future<List> index([params])
class IsInstanceOf (line 41) | class IsInstanceOf<T> implements Matcher {
method describeMismatch (line 45) | Description describeMismatch(
method describe (line 55) | Description describe(Description description)
method matches (line 60) | bool matches(item, Map matchState)
FILE: packages/framework/test/controller_test.dart
class TodoController (line 14) | @Expose('/todos', middleware: [foo])
method fetchTodo (line 19) | Future<Todo> fetchTodo(
method someRandomRoute (line 30) | Future<String> someRandomRoute(
class NoExposeController (line 38) | class NoExposeController extends Controller {
method getIndex (line 39) | String getIndex()
method timesTwo (line 41) | int timesTwo(int n)
method repeatName (line 43) | String repeatName(String name, int times)
method someColor (line 52) | String someColor()
method three (line 55) | int three()
method hideThis (line 58) | String hideThis()
class NamedController (line 61) | @Expose('/named', as: 'foo')
method optional (line 64) | int optional()
function foo (line 67) | bool foo(RequestContext req, ResponseContext res)
function bar (line 72) | bool bar(RequestContext req, ResponseContext res)
function main (line 77) | void main()
function expectMethod (line 195) | void expectMethod(String name, String method)
function expectPath (line 207) | void expectPath(String name, String path)
FILE: packages/framework/test/detach_test.dart
function main (line 7) | void main()
FILE: packages/framework/test/di_test.dart
function main (line 18) | void main()
function validateTodoSingleton (line 109) | void validateTodoSingleton(Response response)
class SingletonController (line 116) | @Expose('/errands2')
method todo (line 119) | Todo todo(Todo singleton)
class ErrandController (line 122) | @Expose('/errands4')
method errand (line 125) | String? errand(Errand errand)
method asyncResolve (line 130) | Map<String, String> asyncResolve(Foo foo)
class Foo (line 135) | class Foo {
class Errand (line 141) | class Errand {
FILE: packages/framework/test/encoders_buffer_test.dart
function getBody (line 12) | Future<List<int>> getBody(MockHttpResponse rs)
function main (line 19) | void main()
function encodingTests (line 38) | void encodingTests(Angel Function() getApp)
FILE: packages/framework/test/env_test.dart
function main (line 5) | void main()
FILE: packages/framework/test/exception_test.dart
function main (line 5) | void main()
function isException (line 68) | Matcher isException(int statusCode, String message)
class _IsException (line 71) | class _IsException extends Matcher {
method describe (line 78) | Description describe(Description description)
method matches (line 82) | bool matches(item, Map matchState)
FILE: packages/framework/test/extension_test.dart
function main (line 10) | void main()
function makeRequest (line 27) | Future<RequestContext> makeRequest(String path)
FILE: packages/framework/test/find_one_test.dart
function main (line 5) | void main()
FILE: packages/framework/test/general_test.dart
function main (line 9) | void main()
FILE: packages/framework/test/hm.dart
function main (line 5) | void main()
FILE: packages/framework/test/hooked_test.dart
function main (line 10) | void main()
function ensureProviderIsPresent (line 138) | void ensureProviderIsPresent(HookedServiceEvent e)
FILE: packages/framework/test/http2/adapter_test.dart
function jfkStream (line 21) | Stream<List<int>> jfkStream()
function main (line 25) | void main()
function getPath (line 232) | String getPath(TransportStreamPush p)
FILE: packages/framework/test/http2/http2_client.dart
class Http2Client (line 9) | class Http2Client extends BaseClient {
method convertRequestToStream (line 10) | Future<ClientTransportStream> convertRequestToStream(
method readResponse (line 60) | Future<bool> readResponse(
method send (line 92) | Future<StreamedResponse> send(BaseRequest request)
FILE: packages/framework/test/http_404_hole_test.dart
function main (line 10) | void main()
function hello (line 66) | Future<void> hello(RequestContext req, ResponseContext res)
function throw404 (line 77) | void throw404(RequestContext req, ResponseContext res)
FILE: packages/framework/test/jsonp_test.dart
function main (line 9) | void main()
function getContentType (line 26) | Future<MediaType> getContentType(String path)
function getText (line 33) | Future<String> getText(String path)
FILE: packages/framework/test/parameter_meta_test.dart
function readResponse (line 12) | Future<String> readResponse(MockHttpResponse rs)
function printResponse (line 16) | Future printResponse(MockHttpResponse rs)
function main (line 22) | void main()
function parameterMetaTests (line 26) | void parameterMetaTests()
FILE: packages/framework/test/parse_id_test.dart
function main (line 4) | void main()
FILE: packages/framework/test/precontained_test.dart
function main (line 10) | void main()
function echoAppFoo (line 28) | String echoAppFoo(String foo)
FILE: packages/framework/test/pretty_log.dart
function prettyLog (line 5) | void prettyLog(LogRecord record)
function chooseLogColor (line 22) | AnsiCode chooseLogColor(Level level)
FILE: packages/framework/test/primitives_test.dart
function main (line 11) | void main()
FILE: packages/framework/test/repeat_request_test.dart
function main (line 10) | void main()
function mk (line 11) | MockHttpRequest mk(int id)
FILE: packages/framework/test/req_shutdown_test.dart
function main (line 9) | void main()
FILE: packages/framework/test/response_header_test.dart
function main (line 8) | void main()
FILE: packages/framework/test/routing_test.dart
function testMiddlewareMetadata (line 15) | Future<String> testMiddlewareMetadata(
class QueryService (line 22) | @Middleware([interceptService])
method read (line 26) | Future<Map?> read(id, [Map? params])
function interceptor (line 29) | void interceptor(RequestContext req, ResponseContext res)
function interceptService (line 35) | bool interceptService(RequestContext req, ResponseContext res)
function main (line 40) | void main()
function write (line 109) | RequestHandler write(String message)
FILE: packages/framework/test/serialize_test.dart
function main (line 10) | void main()
FILE: packages/framework/test/server_test.dart
function main (line 15) | void main()
function handler (line 134) | handler(req, res)
function handler (line 149) | handler(req, res)
function handler (line 154) | handler(req, ResponseContext res)
class CustomCloseService (line 213) | class CustomCloseService extends Service {
method close (line 217) | void close()
class FooController (line 223) | @Expose('/foo')
method bar (line 226) | Future<String> bar()
FILE: packages/framework/test/service_map_test.dart
function main (line 5) | void main()
class Todo (line 53) | class Todo {
method fromMap (line 59) | Todo fromMap(Map<String, dynamic> json)
method toMap (line 67) | Map<String, dynamic> toMap(Todo model)
method toString (line 76) | String toString()
FILE: packages/framework/test/services_test.dart
class Todo (line 9) | class Todo extends Model {
function main (line 14) | void main()
FILE: packages/framework/test/streaming_test.dart
function main (line 15) | void main()
function expectHelloBye (line 77) | void expectHelloBye(String path)
FILE: packages/framework/test/view_generator_test.dart
function main (line 4) | void main()
FILE: packages/html/example/main.dart
function main (line 7) | void main()
FILE: packages/html/lib/angel3_html.dart
function renderHtml (line 10) | RequestHandler renderHtml({
FILE: packages/html/test/all_test.dart
function main (line 7) | void main()
FILE: packages/jael/angel_jael/example/main.dart
function main (line 8) | void main()
FILE: packages/jael/angel_jael/lib/angel3_jael.dart
function jael (line 16) | AngelConfigurer jael(
function jaelTemplatePreload (line 94) | Future<void> jaelTemplatePreload(
function _loadViewTemplate (line 115) | Future<Document?> _loadViewTemplate(
FILE: packages/jael/angel_jael/test/all_test.dart
function main (line 9) | void main()
FILE: packages/jael/angel_jael/test/minified_test.dart
function main (line 10) | void main()
FILE: packages/jael/jael/bin/jaelfmt.dart
function main (line 49) | void main(List<String> args)
function printUsage (line 82) | void printUsage(IOSink sink)
function formatPath (line 90) | Future<void> formatPath(String path, ArgResults argResults)
function formatStat (line 95) | Future<void> formatStat(
function formatFile (line 118) | Future<void> formatFile(File file, ArgResults argResults)
function format (line 138) | String? format(String? filename, String content, ArgResults argResults)
FILE: packages/jael/jael/example/main.dart
function main (line 7) | void main()
FILE: packages/jael/jael/lib/src/ast/array.dart
class Array (line 5) | class Array extends Expression {
method compute (line 12) | List compute(scope)
class IndexerExpression (line 22) | class IndexerExpression extends Expression {
method compute (line 37) | dynamic compute(scope)
FILE: packages/jael/jael/lib/src/ast/ast_node.dart
class AstNode (line 3) | abstract class AstNode {
FILE: packages/jael/jael/lib/src/ast/attribute.dart
class Attribute (line 8) | class Attribute extends AstNode {
FILE: packages/jael/jael/lib/src/ast/binary.dart
class BinaryExpression (line 5) | class BinaryExpression extends Expression {
method compute (line 12) | dynamic compute(scope)
FILE: packages/jael/jael/lib/src/ast/call.dart
class Call (line 8) | class Call extends Expression {
method computePositional (line 35) | List computePositional(SymbolTable? scope)
method computeNamed (line 38) | Map<Symbol, dynamic> computeNamed(SymbolTable? scope)
method compute (line 45) | dynamic compute(scope)
class NamedArgument (line 54) | class NamedArgument extends AstNode {
FILE: packages/jael/jael/lib/src/ast/conditional.dart
class Conditional (line 5) | class Conditional extends Expression {
method compute (line 27) | dynamic compute(scope)
FILE: packages/jael/jael/lib/src/ast/document.dart
class Document (line 8) | class Document extends AstNode {
class HtmlComment (line 21) | class HtmlComment extends ElementChild {
class Text (line 30) | class Text extends ElementChild {
class Doctype (line 39) | class Doctype extends AstNode {
FILE: packages/jael/jael/lib/src/ast/element.dart
class ElementChild (line 8) | abstract class ElementChild extends AstNode {}
class TextNode (line 10) | class TextNode extends ElementChild {
class Element (line 19) | abstract class Element extends ElementChild {
method getAttribute (line 42) | Attribute? getAttribute(String name)
class SelfClosingElement (line 46) | class SelfClosingElement extends Element {
class RegularElement (line 79) | class RegularElement extends Element {
FILE: packages/jael/jael/lib/src/ast/error.dart
class JaelError (line 3) | class JaelError extends Error {
method toString (line 11) | String toString()
type JaelErrorSeverity (line 17) | enum JaelErrorSeverity { warning, error }
FILE: packages/jael/jael/lib/src/ast/expression.dart
class Expression (line 6) | abstract class Expression extends AstNode {
method compute (line 7) | dynamic compute(SymbolTable? scope)
class Literal (line 10) | abstract class Literal extends Expression {}
class Negation (line 12) | class Negation extends Expression {
method compute (line 24) | bool compute(SymbolTable? scope)
FILE: packages/jael/jael/lib/src/ast/identifier.dart
class Identifier (line 6) | class Identifier extends Expression {
method compute (line 19) | dynamic compute(SymbolTable? scope)
class SyntheticIdentifier (line 43) | class SyntheticIdentifier extends Identifier {
FILE: packages/jael/jael/lib/src/ast/interpolation.dart
class Interpolation (line 6) | class Interpolation extends ElementChild {
FILE: packages/jael/jael/lib/src/ast/map.dart
class MapLiteral (line 7) | class MapLiteral extends Literal {
method compute (line 14) | Map compute(scope)
class KeyValuePair (line 43) | class KeyValuePair extends AstNode {
FILE: packages/jael/jael/lib/src/ast/member.dart
class MemberExpression (line 8) | class MemberExpression extends Expression {
method compute (line 16) | dynamic compute(SymbolTable? scope)
FILE: packages/jael/jael/lib/src/ast/new.dart
class NewExpression (line 8) | class NewExpression extends Expression {
method compute (line 18) | dynamic compute(scope)
FILE: packages/jael/jael/lib/src/ast/number.dart
class NumberLiteral (line 6) | class NumberLiteral extends Literal {
method parse (line 15) | num parse(String value)
method compute (line 27) | num compute(scope)
class HexLiteral (line 32) | class HexLiteral extends Literal {
method parse (line 41) | num parse(String value)
method compute (line 44) | num compute(scope)
FILE: packages/jael/jael/lib/src/ast/string.dart
class StringLiteral (line 6) | class StringLiteral extends Literal {
method parseValue (line 12) | String parseValue(Token string)
method compute (line 71) | String compute(SymbolTable? scope)
FILE: packages/jael/jael/lib/src/ast/token.dart
class Token (line 3) | class Token {
method toString (line 11) | String toString()
type TokenType (line 16) | enum TokenType {
FILE: packages/jael/jael/lib/src/formatter.dart
class JaelFormatter (line 4) | class JaelFormatter {
method _spaceString (line 12) | String _spaceString(int tabSize)
method _indent (line 24) | void _indent()
method _outdent (line 28) | void _outdent()
method _applySpacing (line 32) | void _applySpacing()
method apply (line 46) | String apply(Document document)
method _formatChild (line 65) | int _formatChild(
method _formatElement (line 104) | int _formatElement(Element element, int lineLength)
method _formatAttribute (line 182) | String _formatAttribute(Attribute attr)
FILE: packages/jael/jael/lib/src/renderer.dart
function parseDocument (line 11) | Document? parseDocument(
class Renderer (line 39) | class Renderer {
method errorDocument (line 43) | void errorDocument(Iterable<JaelError> errors, CodeBuffer buf)
method render (line 90) | void render(
method renderElement (line 107) | void renderElement(
method renderForeach (line 205) | void renderForeach(
method renderIf (line 256) | void renderIf(
method renderDeclare (line 302) | void renderDeclare(
method renderSwitch (line 330) | void renderSwitch(
method renderElementChild (line 389) | void renderElementChild(
method customElementName (line 422) | String customElementName(String name)
method registerCustomElement (line 424) | void registerCustomElement(
method renderCustomElement (line 460) | void renderCustomElement(
FILE: packages/jael/jael/lib/src/text/parselet/infix.dart
class ConditionalParselet (line 24) | class ConditionalParselet implements InfixParselet {
method parse (line 31) | Expression? parse(Parser parser, Expression left, Token token)
class BinaryParselet (line 74) | class BinaryParselet implements InfixParselet {
method parse (line 81) | Expression? parse(Parser parser, Expression left, Token token)
class CallParselet (line 101) | class CallParselet implements InfixParselet {
method parse (line 108) | Expression? parse(Parser parser, Expression left, Token token)
class IndexerParselet (line 146) | class IndexerParselet implements InfixParselet {
method parse (line 153) | Expression? parse(Parser parser, Expression left, Token token)
class MemberParselet (line 178) | class MemberParselet implements InfixParselet {
method parse (line 185) | Expression? parse(Parser parser, Expression left, Token token)
FILE: packages/jael/jael/lib/src/text/parselet/parselet.dart
class PrefixParselet (line 8) | abstract class PrefixParselet {
method parse (line 9) | Expression? parse(Parser parser, Token token)
class InfixParselet (line 12) | abstract class InfixParselet {
method parse (line 14) | Expression? parse(Parser parser, Expression left, Token token)
FILE: packages/jael/jael/lib/src/text/parselet/prefix.dart
class NotParselet (line 15) | class NotParselet implements PrefixParselet {
method parse (line 19) | Expression parse(Parser parser, Token token)
class NewParselet (line 36) | class NewParselet implements PrefixParselet {
method parse (line 40) | Expression? parse(Parser parser, Token token)
class NumberParselet (line 67) | class NumberParselet implements PrefixParselet {
method parse (line 71) | Expression parse(Parser parser, Token token)
class HexParselet (line 74) | class HexParselet implements PrefixParselet {
method parse (line 78) | Expression parse(Parser parser, Token token)
class StringParselet (line 81) | class StringParselet implements PrefixParselet {
method parse (line 85) | Expression parse(Parser parser, Token token)
class ArrayParselet (line 89) | class ArrayParselet implements PrefixParselet {
method parse (line 93) | Expression? parse(Parser parser, Token token)
class MapParselet (line 121) | class MapParselet implements PrefixParselet {
method parse (line 125) | Expression? parse(Parser parser, Token token)
class IdentifierParselet (line 152) | class IdentifierParselet implements PrefixParselet {
method parse (line 156) | Expression parse(Parser parser, Token token)
class ParenthesisParselet (line 159) | class ParenthesisParselet implements PrefixParselet {
method parse (line 163) | Expression? parse(Parser parser, Token? token)
FILE: packages/jael/jael/lib/src/text/parser.dart
class Parser (line 5) | class Parser {
method _nextPrecedence (line 17) | int _nextPrecedence()
method next (line 25) | bool next(TokenType type)
method peek (line 36) | Token? peek()
method maybe (line 41) | Token? maybe(TokenType type)
method skipExtraneous (line 43) | void skipExtraneous(TokenType type)
method parseDocument (line 49) | Document? parseDocument()
method implicitString (line 74) | StringLiteral? implicitString()
method parseDoctype (line 89) | Doctype? parseDoctype()
method parseElementChild (line 187) | ElementChild? parseElementChild()
method parseHtmlComment (line 193) | HtmlComment? parseHtmlComment()
method parseText (line 196) | Text? parseText()
method parseInterpolation (line 198) | Interpolation? parseInterpolation()
method parseElement (line 230) | Element? parseElement()
method parseAttribute (line 376) | Attribute? parseAttribute()
method parseExpression (line 438) | Expression? parseExpression(int precedence)
method parseIdentifier (line 479) | Identifier? parseIdentifier()
method parseKeyValuePair (line 482) | KeyValuePair? parseKeyValuePair()
method parseNamedArgument (line 504) | NamedArgument? parseNamedArgument()
FILE: packages/jael/jael/lib/src/text/scanner.dart
function scan (line 18) | Scanner scan(String text, {sourceUrl, bool asDSX = false})
class Scanner (line 21) | abstract class Scanner {
class _Scanner (line 87) | class _Scanner implements Scanner {
method scan (line 102) | void scan({bool asDSX = false})
method scanHtml (line 180) | void scanHtml(bool asDSX)
type _ScannerState (line 279) | enum _ScannerState { html, freeText }
FILE: packages/jael/jael/test/render/custom_element_test.dart
function main (line 7) | void main()
function render (line 112) | String render(String template, [Map<String, dynamic> values = const {}])
FILE: packages/jael/jael/test/render/dsx_test.dart
function main (line 5) | void main()
function parseDSX (line 41) | Document? parseDSX(String text)
FILE: packages/jael/jael/test/render/render_test.dart
function main (line 6) | void main()
class _Pokemon (line 350) | class _Pokemon {
class _Account (line 356) | class _Account {
FILE: packages/jael/jael/test/text/common.dart
function isToken (line 4) | Matcher isToken(TokenType type, [String? text])
class _IsToken (line 6) | class _IsToken extends Matcher {
method describe (line 13) | Description describe(Description description)
method matches (line 19) | bool matches(item, Map matchState)
FILE: packages/jael/jael/test/text/scan_test.dart
function main (line 6) | void main()
FILE: packages/jael/jael_language_server/bin/jael3_language_server.dart
function main (line 10) | void main(List<String> args)
function printUsage (line 20) | void printUsage()
FILE: packages/jael/jael_language_server/lib/src/analyzer.dart
class Analyzer (line 6) | class Analyzer extends Parser {
method ensureAttributeIsPresent (line 21) | bool ensureAttributeIsPresent(Element element, String name)
method addError (line 35) | void addError(JaelError e)
method ensureAttributeIsConstantString (line 40) | bool ensureAttributeIsConstantString(Element element, String name)
method parseElement (line 56) | Element? parseElement()
method parseExpression (line 174) | Expression? parseExpression(int precedence)
FILE: packages/jael/jael_language_server/lib/src/object.dart
class JaelObject (line 5) | abstract class JaelObject {
class JaelCustomElement (line 13) | class JaelCustomElement extends JaelObject {
class JaelVariable (line 21) | class JaelVariable extends JaelObject {
class SymbolUsage (line 27) | class SymbolUsage {
type SymbolUsageType (line 34) | enum SymbolUsageType { definition, read }
FILE: packages/jael/jael_language_server/lib/src/protocol/language_server/interface.dart
class LanguageServer (line 7) | abstract class LanguageServer {
method shutdown (line 11) | Future<void> shutdown()
method exit (line 12) | void exit()
method initialize (line 16) | Future<ServerCapabilities> initialize(
method initialized (line 22) | void initialized()
method textDocumentDidOpen (line 23) | void textDocumentDidOpen(TextDocumentItem document)
method textDocumentDidChange (line 24) | void textDocumentDidChange(
method textDocumentDidClose (line 28) | void textDocumentDidClose(TextDocumentIdentifier documentId)
method textDocumentCompletion (line 29) | Future<CompletionList> textDocumentCompletion(
method textDocumentDefinition (line 33) | Future<Location?> textDocumentDefinition(
method textDocumentReferences (line 37) | Future<List<Location>> textDocumentReferences(
method textDocumentImplementation (line 42) | Future<List<Location>> textDocumentImplementation(
method textDocumentHighlight (line 46) | Future<List<DocumentHighlight>> textDocumentHighlight(
method textDocumentSymbols (line 50) | Future<List<SymbolInformation>> textDocumentSymbols(
method workspaceSymbol (line 53) | Future<List<SymbolInformation>> workspaceSymbol(String? query)
method textDocumentHover (line 54) | Future<dynamic> textDocumentHover(
method textDocumentCodeAction (line 58) | Future<List<dynamic /*Command|CodeAction*/>> textDocumentCodeAction(
method workspaceExecuteCommand (line 63) | Future<void> workspaceExecuteCommand(
method textDocumentRename (line 67) | Future<WorkspaceEdit?> textDocumentRename(
method setupExtraMethods (line 77) | void setupExtraMethods(Peer peer)
FILE: packages/jael/jael_language_server/lib/src/protocol/language_server/messages.dart
class ApplyWorkspaceEditParams (line 1) | class ApplyWorkspaceEditParams {
method toJson (line 26) | Map toJson()
class ApplyWorkspaceEditParams$Builder (line 42) | class ApplyWorkspaceEditParams$Builder {
class ClientCapabilities (line 50) | class ClientCapabilities {
method toJson (line 74) | Map toJson()
class ClientCapabilities$Builder (line 93) | class ClientCapabilities$Builder {
class CodeAction (line 101) | class CodeAction {
method toJson (line 146) | Map toJson()
class CodeAction$Builder (line 174) | class CodeAction$Builder {
class CodeActionCapabilities (line 188) | class CodeActionCapabilities {
method toJson (line 223) | Map toJson()
class CodeActionCapabilities$Builder (line 242) | class CodeActionCapabilities$Builder {
class CodeActionContext (line 250) | class CodeActionContext {
method toJson (line 269) | Map toJson()
class CodeActionContext$Builder (line 282) | class CodeActionContext$Builder {
class CodeActionKinds (line 288) | class CodeActionKinds {
method toJson (line 305) | Map toJson()
class CodeActionKinds$Builder (line 318) | class CodeActionKinds$Builder {
class CodeActionLiteralSupport (line 324) | class CodeActionLiteralSupport {
method toJson (line 344) | Map toJson()
class CodeActionLiteralSupport$Builder (line 358) | class CodeActionLiteralSupport$Builder {
class CodeLensOptions (line 364) | class CodeLensOptions {
method toJson (line 381) | Map toJson()
class CodeLensOptions$Builder (line 394) | class CodeLensOptions$Builder {
class Command (line 400) | class Command {
method toJson (line 427) | Map toJson()
class Command$Builder (line 445) | class Command$Builder {
class CompletionCapabilities (line 455) | class CompletionCapabilities {
method toJson (line 483) | Map toJson()
class CompletionCapabilities$Builder (line 502) | class CompletionCapabilities$Builder {
class CompletionItem (line 510) | class CompletionItem {
method toJson (line 611) | Map toJson()
class CompletionItem$Builder (line 660) | class CompletionItem$Builder {
class CompletionItemCapabilities (line 688) | class CompletionItemCapabilities {
method toJson (line 708) | Map toJson()
class CompletionItemCapabilities$Builder (line 722) | class CompletionItemCapabilities$Builder {
class CompletionItemKind (line 728) | class CompletionItemKind {
method toJson (line 793) | int toJson()
class CompletionList (line 796) | class CompletionList {
method toJson (line 820) | Map toJson()
class CompletionList$Builder (line 839) | class CompletionList$Builder {
class CompletionOptions (line 847) | class CompletionOptions {
method toJson (line 870) | Map toJson()
class CompletionOptions$Builder (line 889) | class CompletionOptions$Builder {
class Diagnostic (line 897) | class Diagnostic {
method toJson (line 934) | Map toJson()
class Diagnostic$Builder (line 962) | class Diagnostic$Builder {
class Diagnostics (line 976) | class Diagnostics {
method toJson (line 1000) | Map toJson()
class Diagnostics$Builder (line 1019) | class Diagnostics$Builder {
class DocumentHighlight (line 1027) | class DocumentHighlight {
method toJson (line 1049) | Map toJson()
class DocumentHighlight$Builder (line 1063) | class DocumentHighlight$Builder {
class DocumentHighlightKind (line 1071) | class DocumentHighlightKind {
method toJson (line 1091) | int toJson()
class DocumentLinkOptions (line 1094) | class DocumentLinkOptions {
method toJson (line 1111) | Map toJson()
class DocumentLinkOptions$Builder (line 1124) | class DocumentLinkOptions$Builder {
class DocumentOnTypeFormattingOptions (line 1130) | class DocumentOnTypeFormattingOptions {
method toJson (line 1163) | Map toJson()
class DocumentOnTypeFormattingOptions$Builder (line 1182) | class DocumentOnTypeFormattingOptions$Builder {
class DynamicRegistrationCapability (line 1190) | class DynamicRegistrationCapability {
method toJson (line 1211) | Map toJson()
class DynamicRegistrationCapability$Builder (line 1225) | class DynamicRegistrationCapability$Builder {
class ExecuteCommandOptions (line 1231) | class ExecuteCommandOptions {
method toJson (line 1250) | Map toJson()
class ExecuteCommandOptions$Builder (line 1263) | class ExecuteCommandOptions$Builder {
class Hover (line 1269) | class Hover {
method toJson (line 1291) | Map toJson()
class Hover$Builder (line 1305) | class Hover$Builder {
class HoverCapabilities (line 1313) | class HoverCapabilities {
method toJson (line 1336) | Map toJson()
class HoverCapabilities$Builder (line 1355) | class HoverCapabilities$Builder {
class HoverMarkup (line 1363) | class HoverMarkup {
method toJson (line 1385) | Map toJson()
class HoverMarkup$Builder (line 1401) | class HoverMarkup$Builder {
class InsertTextFormat (line 1409) | class InsertTextFormat {
method toJson (line 1423) | int toJson()
class Location (line 1426) | class Location {
method toJson (line 1448) | Map toJson()
class Location$Builder (line 1462) | class Location$Builder {
class MarkupContent (line 1470) | class MarkupContent {
method toJson (line 1492) | Map toJson()
class MarkupContent$Builder (line 1506) | class MarkupContent$Builder {
class MarkupContentKind (line 1514) | class MarkupContentKind {
method toJson (line 1531) | String toJson()
class MessageType (line 1534) | class MessageType {
method toJson (line 1557) | int toJson()
class Position (line 1560) | class Position {
method toJson (line 1582) | Map toJson()
class Position$Builder (line 1596) | class Position$Builder {
class Range (line 1604) | class Range {
method toJson (line 1626) | Map toJson()
class Range$Builder (line 1640) | class Range$Builder {
class ReferenceContext (line 1648) | class ReferenceContext {
method toJson (line 1666) | Map toJson()
class ReferenceContext$Builder (line 1680) | class ReferenceContext$Builder {
class SaveOptions (line 1686) | class SaveOptions {
method toJson (line 1703) | Map toJson()
class SaveOptions$Builder (line 1716) | class SaveOptions$Builder {
class ServerCapabilities (line 1722) | class ServerCapabilities {
method toJson (line 1882) | Map toJson()
class ServerCapabilities$Builder (line 1952) | class ServerCapabilities$Builder {
class ShowMessageParams (line 1992) | class ShowMessageParams {
method toJson (line 2014) | Map toJson()
class ShowMessageParams$Builder (line 2030) | class ShowMessageParams$Builder {
class SignatureHelpOptions (line 2038) | class SignatureHelpOptions {
method toJson (line 2058) | Map toJson()
class SignatureHelpOptions$Builder (line 2072) | class SignatureHelpOptions$Builder {
class SymbolInformation (line 2078) | class SymbolInformation {
method toJson (line 2110) | Map toJson()
class SymbolInformation$Builder (line 2135) | class SymbolInformation$Builder {
class SymbolKind (line 2147) | class SymbolKind {
method toJson (line 2236) | int toJson()
class SynchronizationCapabilities (line 2239) | class SynchronizationCapabilities {
method toJson (line 2286) | Map toJson()
class SynchronizationCapabilities$Builder (line 2311) | class SynchronizationCapabilities$Builder {
class TextDocumentClientCapabilities (line 2323) | class TextDocumentClientCapabilities {
method toJson (line 2443) | Map toJson()
class TextDocumentClientCapabilities$Builder (line 2495) | class TextDocumentClientCapabilities$Builder {
class TextDocumentContentChangeEvent (line 2525) | class TextDocumentContentChangeEvent {
method toJson (line 2555) | Map toJson()
class TextDocumentContentChangeEvent$Builder (line 2577) | class TextDocumentContentChangeEvent$Builder {
class TextDocumentIdentifier (line 2587) | class TextDocumentIdentifier {
method toJson (line 2607) | Map toJson()
class TextDocumentIdentifier$Builder (line 2620) | class TextDocumentIdentifier$Builder {
class TextDocumentItem (line 2626) | class TextDocumentItem {
method toJson (line 2658) | Map toJson()
class TextDocumentItem$Builder (line 2683) | class TextDocumentItem$Builder {
class TextDocumentSyncKind (line 2695) | class TextDocumentSyncKind {
method toJson (line 2715) | int toJson()
class TextDocumentSyncOptions (line 2718) | class TextDocumentSyncOptions {
method toJson (line 2771) | Map toJson()
class TextDocumentSyncOptions$Builder (line 2799) | class TextDocumentSyncOptions$Builder {
class TextEdit (line 2813) | class TextEdit {
method toJson (line 2835) | Map toJson()
class TextEdit$Builder (line 2849) | class TextEdit$Builder {
class VersionedTextDocumentIdentifier (line 2857) | class VersionedTextDocumentIdentifier {
method toJson (line 2882) | Map toJson()
class VersionedTextDocumentIdentifier$Builder (line 2898) | class VersionedTextDocumentIdentifier$Builder {
class WorkspaceClientCapabilities (line 2906) | class WorkspaceClientCapabilities {
method toJson (line 2966) | Map toJson()
class WorkspaceClientCapabilities$Builder (line 2994) | class WorkspaceClientCapabilities$Builder {
class WorkspaceEdit (line 3008) | class WorkspaceEdit {
method toJson (line 3030) | Map toJson()
class WorkspaceEdit$Builder (line 3047) | class WorkspaceEdit$Builder {
function _hashCombine (line 3053) | int _hashCombine(int hash, int value)
function _hashComplete (line 3059) | int _hashComplete(int hash)
function _deepHashCode (line 3065) | int _deepHashCode(dynamic value)
function _deepEquals (line 3079) | bool _deepEquals(dynamic left, dynamic right)
FILE: packages/jael/jael_language_server/lib/src/protocol/language_server/server.dart
class StdIOLanguageServer (line 11) | class StdIOLanguageServer {
method _lifecycleMethods (line 37) | void _lifecycleMethods(Peer peer)
method _registerRequest (line 55) | void _registerRequest(Peer peer, String methodName, Function callback)
method _registerNotification (line 65) | void _registerNotification(Peer peer, String methodName, Function call...
method _fileHandlingMethods (line 71) | void _fileHandlingMethods(Peer peer)
method _notifications (line 86) | void _notifications(Peer peer)
method _completionMethods (line 112) | void _completionMethods(Peer peer)
method _referenceMethods (line 122) | void _referenceMethods(Peer peer)
method _codeActionMethods (line 178) | void _codeActionMethods(Peer peer)
function _documentItem (line 210) | TextDocumentItem _documentItem(dynamic params)
function _versionedDocument (line 213) | VersionedTextDocumentIdentifier _versionedDocument(dynamic params)
function _document (line 218) | TextDocumentIdentifier _document(dynamic params)
function _range (line 221) | Range _range(dynamic params)
function _position (line 223) | Position _position(dynamic params)
function _codeActionContext (line 226) | CodeActionContext _codeActionContext(dynamic params)
function _referenceContext (line 229) | ReferenceContext _referenceContext(dynamic params)
function _contentChanges (line 232) | List<TextDocumentContentChangeEvent> _contentChanges(dynamic params)
function _query (line 237) | String? _query(dynamic params)
FILE: packages/jael/jael_language_server/lib/src/protocol/language_server/wireformat.dart
function lspChannel (line 7) | StreamChannel<String> lspChannel(
function _serialize (line 22) | void _serialize(String data, EventSink<List<int>> sink)
class _Parser (line 31) | class _Parser {
method close (line 52) | Future<void> close()
method _handleByte (line 54) | void _handleByte(int byte)
method _parseContentLength (line 71) | int _parseContentLength()
function _chunks (line 92) | Iterable<List<T>> _chunks<T>(List<T> data, int chunkSize)
FILE: packages/jael/jael_language_server/lib/src/server.dart
class JaelLanguageServer (line 19) | class JaelLanguageServer extends LanguageServer {
method shutdown (line 39) | Future<void> shutdown()
method setupExtraMethods (line 47) | void setupExtraMethods(json_rpc_2.Peer peer)
method initialize (line 62) | Future<ServerCapabilities> initialize(
method fileForId (line 132) | Future<File> fileForId(TextDocumentIdentifier documentId)
method scannerForId (line 158) | Future<Scanner> scannerForId(TextDocumentIdentifier documentId)
method analyzerForId (line 163) | Future<Analyzer> analyzerForId(TextDocumentIdentifier documentId)
method toDiagnostic (line 171) | Diagnostic toDiagnostic(JaelError e)
method toSeverity (line 181) | int toSeverity(JaelErrorSeverity s)
method toRange (line 190) | Range toRange(FileSpan span)
method emptyRange (line 198) | Range emptyRange()
method toPosition (line 209) | Position toPosition(SourceLocation location)
method toLocation (line 217) | Location toLocation(String? uri, FileSpan span)
method isReachable (line 225) | bool isReachable(JaelObject obj, Position position)
method toCompletion (line 230) | CompletionItem? toCompletion(Variable<JaelObject> symbol)
method emitDiagnostics (line 256) | void emitDiagnostics(String? uri, Iterable<Diagnostic> diagnostics)
method textDocumentDidOpen (line 268) | Future textDocumentDidOpen(TextDocumentItem document)
method textDocumentDidChange (line 273) | Future textDocumentDidChange(
method findIndex (line 286) | int findIndex(Position position)
method textDocumentCodeAction (line 314) | Future<List> textDocumentCodeAction(
method textDocumentCompletion (line 324) | Future<CompletionList> textDocumentCompletion(
method currentName (line 342) | Future<String?> currentName(
method currentSymbol (line 374) | Future<JaelObject?> currentSymbol(
method textDocumentDefinition (line 389) | Future<Location?> textDocumentDefinition(
method textDocumentHighlight (line 401) | Future<List<DocumentHighlight>> textDocumentHighlight(
method textDocumentHover (line 421) | Future<Hover?> textDocumentHover(
method textDocumentImplementation (line 438) | Future<List<Location>> textDocumentImplementation(
method textDocumentReferences (line 447) | Future<List<Location>> textDocumentReferences(
method textDocumentRename (line 463) | Future<WorkspaceEdit> textDocumentRename(
method textDocumentSymbols (line 492) | Future<List<SymbolInformation>> textDocumentSymbols(
method workspaceExecuteCommand (line 507) | Future<void> workspaceExecuteCommand(String? command, List? arguments)
method workspaceSymbol (line 512) | Future<List<SymbolInformation>> workspaceSymbol(String? query)
method textDocumentFormatting (line 538) | Future<List<TextEdit>?> textDocumentFormatting(
method initialized (line 576) | void initialized()
class DiagnosticSeverity (line 585) | abstract class DiagnosticSeverity {
class FormattingOptions (line 589) | class FormattingOptions {
FILE: packages/jael/jael_preprocessor/example/main.dart
function process (line 7) | Future<jael.Document?> process(
FILE: packages/jael/jael_preprocessor/lib/jael3_preprocessor.dart
type Patcher (line 9) | typedef Patcher =
function resolve (line 20) | Future<Document?> resolve(
function applyInheritance (line 54) | Future<Document?> applyInheritance(
function setOut (line 113) | Element setOut(
function findBlockOverrides (line 172) | Map<String, RegularElement> findBlockOverrides(
function resolveHierarchy (line 196) | Future<DocumentHierarchy?> resolveHierarchy(
class DocumentHierarchy (line 230) | class DocumentHierarchy {
function replaceBlocks (line 239) | Iterable<ElementChild> replaceBlocks(
function replaceChildrenOfElement (line 318) | Element replaceChildrenOfElement(
function replaceChildrenOfRegularElement (line 338) | RegularElement replaceChildrenOfRegularElement(
function allChildrenOfRegularElement (line 365) | List<ElementChild> allChildrenOfRegularElement(
function getParent (line 394) | String? getParent(Document document, void Function(JaelError error)? onE...
function resolveIncludes (line 423) | Future<Document?> resolveIncludes(
function _expandIncludes (line 443) | Future<Element?> _expandIncludes(
FILE: packages/jael/jael_preprocessor/test/block_test.dart
function main (line 9) | void main()
FILE: packages/jael/jael_preprocessor/test/include_test.dart
function main (line 9) | void main()
FILE: packages/jael/jael_web/example/main.dart
class Hello (line 5) | @Jael(
class Hello2 (line 19) | class Hello2 extends Component {
method render (line 23) | DomNode render()
FILE: packages/jael/jael_web/example/main.g.dart
function render (line 12) | DomNode render()
FILE: packages/jael/jael_web/example/stateful.dart
function main (line 5) | void main()
class _AppState (line 7) | class _AppState {
method copyWith (line 12) | _AppState copyWith({int? ticks})
class StatefulApp (line 17) | @Jael(template: '<div>Tick count: {{state.ticks}}</div>')
method beforeDestroy (line 29) | void beforeDestroy()
FILE: packages/jael/jael_web/example/stateful.g.dart
function beforeDestroy (line 12) | void beforeDestroy()
function render (line 15) | DomNode render()
FILE: packages/jael/jael_web/example/using_components.dart
class MyApp (line 4) | @Jael(
class LabeledInput (line 14) | @Jael(
FILE: packages/jael/jael_web/example/using_components.g.dart
function render (line 11) | DomNode render()
function render (line 22) | DomNode render()
FILE: packages/jael/jael_web/lib/src/builder/builder.dart
function jaelComponentBuilder (line 14) | Builder jaelComponentBuilder(_)
class JaelComponentGenerator (line 18) | class JaelComponentGenerator extends GeneratorForAnnotation<Jael> {
method generateForAnnotatedElement (line 20) | Future<String> generateForAnnotatedElement(
method compileElementChild (line 132) | Expression compileElementChild(jael.ElementChild child)
FILE: packages/jael/jael_web/lib/src/builder/util.dart
function convertTypeReference (line 13) | TypeReference convertTypeReference(DartType? t)
function isRequiredParameter (line 23) | bool isRequiredParameter(FormalParameterElement e)
function isOptionalParameter (line 27) | bool isOptionalParameter(FormalParameterElement e)
function convertParameter (line 31) | Parameter convertParameter(FormalParameterElement e)
function _unsupported (line 43) | UnsupportedError _unsupported()
class BuildFileSystem (line 46) | class BuildFileSystem extends FileSystem {
method directory (line 73) | Directory directory(path)
method file (line 88) | File file(path)
method identical (line 103) | Future<bool> identical(String path1, String path2)
method identicalSync (line 106) | bool identicalSync(String path1, String path2)
method link (line 112) | Link link(path)
method stat (line 115) | Future<FileStat> stat(String path)
method statSync (line 118) | FileStat statSync(String path)
method type (line 124) | Future<FileSystemEntityType> type(String path, {bool followLinks = true})
method typeSync (line 128) | FileSystemEntityType typeSync(String path, {bool followLinks = true})
class BuildSystemFile (line 132) | class BuildSystemFile extends File {
method copy (line 152) | Future<File> copy(String newPath)
method copySync (line 155) | File copySync(String newPath)
method create (line 158) | Future<File> create({bool exclusive = false, bool recursive = false})
method createSync (line 162) | void createSync({bool exclusive = false, bool recursive = false})
method delete (line 166) | Future<FileSystemEntity> delete({bool recursive = false})
method deleteSync (line 170) | void deleteSync({bool recursive = false})
method exists (line 176) | Future<bool> exists()
method existsSync (line 178) | bool existsSync()
method lastAccessed (line 184) | Future<DateTime> lastAccessed()
method lastAccessedSync (line 187) | DateTime lastAccessedSync()
method lastModified (line 190) | Future<DateTime> lastModified()
method lastModifiedSync (line 193) | DateTime lastModifiedSync()
method length (line 196) | Future<int> length()
method lengthSync (line 198) | int lengthSync()
method open (line 201) | Future<RandomAccessFile> open({FileMode mode = FileMode.read})
method openRead (line 205) | Stream<List<int>> openRead([int? start, int? end])
method openSync (line 208) | RandomAccessFile openSync({FileMode mode = FileMode.read})
method openWrite (line 212) | IOSink openWrite({
method readAsBytes (line 226) | Future<Uint8List> readAsBytes()
method readAsBytesSync (line 232) | Uint8List readAsBytesSync()
method readAsLines (line 238) | Future<List<String>> readAsLines({Encoding encoding = utf8})
method readAsLinesSync (line 244) | List<String> readAsLinesSync({Encoding encoding = utf8})
method readAsString (line 248) | Future<String> readAsString({Encoding encoding = utf8})
method readAsStringSync (line 254) | String readAsStringSync({Encoding encoding = utf8})
method rename (line 257) | Future<File> rename(String newPath)
method renameSync (line 260) | File renameSync(String newPath)
method resolveSymbolicLinks (line 263) | Future<String> resolveSymbolicLinks()
method resolveSymbolicLinksSync (line 266) | String resolveSymbolicLinksSync()
method setLastAccessed (line 269) | Future setLastAccessed(DateTime time)
method setLastAccessedSync (line 272) | void setLastAccessedSync(DateTime time)
method setLastModified (line 275) | Future setLastModified(DateTime time)
method setLastModifiedSync (line 278) | void setLastModifiedSync(DateTime time)
method stat (line 281) | Future<FileStat> stat()
method statSync (line 284) | FileStat statSync()
method watch (line 287) | Stream<FileSystemEvent> watch({
method writeAsBytes (line 293) | Future<File> writeAsBytes(
method writeAsBytesSync (line 300) | void writeAsBytesSync(
method writeAsString (line 307) | Future<File> writeAsString(
method writeAsStringSync (line 315) | void writeAsStringSync(
class BuildSystemDirectory (line 323) | class BuildSystemDirectory extends Directory {
method childDirectory (line 340) | Directory childDirectory(String basename)
method childFile (line 350) | File childFile(String basename)
method childLink (line 360) | Link childLink(String basename)
method create (line 363) | Future<Directory> create({bool recursive = false})
method createSync (line 366) | void createSync({bool recursive = false})
method createTemp (line 369) | Future<Directory> createTemp([String? prefix])
method createTempSync (line 372) | Directory createTempSync([String? prefix])
method delete (line 375) | Future<FileSystemEntity> delete({bool recursive = false})
method deleteSync (line 379) | void deleteSync({bool recursive = false})
method exists (line 385) | Future<bool> exists()
method existsSync (line 388) | bool existsSync()
method list (line 394) | Stream<FileSystemEntity> list({
method listSync (line 400) | List<FileSystemEntity> listSync({
method rename (line 416) | Future<Directory> rename(String newPath)
method renameSync (line 419) | Directory renameSync(String newPath)
method resolveSymbolicLinks (line 422) | Future<String> resolveSymbolicLinks()
method resolveSymbolicLinksSync (line 425) | String resolveSymbolicLinksSync()
method stat (line 428) | Future<FileStat> stat()
method statSync (line 431) | FileStat statSync()
method watch (line 437) | Stream<FileSystemEvent> watch({
FILE: packages/jael/jael_web/lib/src/builder_node.dart
class BuilderNode (line 4) | abstract class BuilderNode extends DomNode {
method build (line 5) | DomBuilderElement<T>? build<T>(DomBuilder<T> dom)
method destroy (line 7) | void destroy<T>(DomBuilderElement<T> el)
function h (line 10) | DomNode h(
function text (line 18) | DomNode text(String value)
class _Text (line 20) | class _Text extends BuilderNode {
method build (line 26) | DomBuilderElement<T>? build<T>(DomBuilder<T> dom)
method destroy (line 33) | void destroy<T>(DomBuilderElement<T> el)
class _H (line 38) | class _H extends BuilderNode {
method build (line 46) | DomBuilderElement<T>? build<T>(DomBuilder<T> dom)
method destroy (line 52) | void destroy<T>(DomBuilderElement<T> el)
FILE: packages/jael/jael_web/lib/src/component.dart
class Component (line 3) | abstract class Component<State> extends DomNode {
method render (line 6) | DomNode render()
method afterMount (line 8) | void afterMount()
method beforeDestroy (line 10) | void beforeDestroy()
method setState (line 12) | void setState(State newState)
FILE: packages/jael/jael_web/lib/src/dom_builder.dart
class DomBuilder (line 1) | abstract class DomBuilder<T> {
method append (line 2) | DomBuilderElement<T> append(
method text (line 7) | void text(String value)
class DomBuilderElement (line 10) | abstract class DomBuilderElement<T> extends DomBuilder<T> {
method attr (line 11) | void attr(String name, [String? value])
method attrs (line 13) | void attrs(Map<String, String> map)
method close (line 15) | T close()
FILE: packages/jael/jael_web/lib/src/dom_node.dart
class DomNode (line 1) | abstract class DomNode {}
FILE: packages/jael/jael_web/lib/src/elements.dart
function _apply (line 6) | Map<String, dynamic> _apply(
function a (line 28) | DomNode a({
function abbr (line 55) | DomNode abbr({
function address (line 73) | DomNode address({
function area (line 87) | DomNode area({
function article (line 127) | DomNode article({
function aside (line 139) | DomNode aside({
function audio (line 153) | DomNode audio({
function b (line 186) | DomNode b({
function base (line 200) | DomNode base({
function bdi (line 222) | DomNode bdi({
function bdo (line 236) | DomNode bdo({
function blockquote (line 254) | DomNode blockquote({
function body (line 272) | DomNode body({
function br (line 286) | DomNode br()
function button (line 288) | DomNode button({
function canvas (line 331) | DomNode canvas({
function cite (line 356) | DomNode cite({
function caption (line 370) | DomNode caption({
function code (line 384) | DomNode code({
function col (line 398) | DomNode col({
function colgroup (line 416) | DomNode colgroup({
function datalist (line 434) | DomNode datalist({
function dd (line 448) | DomNode dd({
function del (line 462) | DomNode del({
function details (line 487) | DomNode details({
function dfn (line 505) | DomNode dfn({
function dialog (line 523) | DomNode dialog({
function div (line 541) | DomNode div({
function dl (line 555) | DomNode dl({
function dt (line 569) | DomNode dt({
function em (line 583) | DomNode em({
function embed (line 597) | DomNode embed({
function fieldset (line 623) | DomNode fieldset({
function figcaption (line 650) | DomNode figcaption({
function figure (line 664) | DomNode figure({
function footer (line 678) | DomNode footer({
function form (line 692) | DomNode form({
function h1 (line 733) | DomNode h1({
function h2 (line 747) | DomNode h2({
function h3 (line 760) | DomNode h3({
function h4 (line 774) | DomNode h4({
function h5 (line 788) | DomNode h5({
function h6 (line 802) | DomNode h6({
function head (line 816) | DomNode head({
function header (line 830) | DomNode header({
function hr (line 844) | DomNode hr()
function html (line 846) | DomNode html({
function i (line 873) | DomNode i({
function iframe (line 887) | DomNode iframe({
function img (line 917) | DomNode img({
function input (line 955) | DomNode input({
function ins (line 1035) | DomNode ins({
function kbd (line 1060) | DomNode kbd({
function keygen (line 1074) | DomNode keygen({
function label (line 1107) | DomNode label({
function legend (line 1126) | DomNode legend({
function li (line 1140) | DomNode li({
function link (line 1158) | DomNode link({
function main (line 1192) | DomNode main({
function map (line 1206) | DomNode map({
function mark (line 1224) | DomNode mark({
function menu (line 1238) | DomNode menu({
function menuitem (line 1263) | DomNode menuitem({
function meta (line 1300) | DomNode meta({
function nav (line 1326) | DomNode nav({
function noscript (line 1340) | DomNode noscript({
function object (line 1354) | DomNode object({
function ol (line 1389) | DomNode ol({
function optgroup (line 1416) | DomNode optgroup({
function option (line 1441) | DomNode option({
function output (line 1470) | DomNode output({
function p (line 1497) | DomNode p({
function param (line 1511) | DomNode param({
function picture (line 1533) | DomNode picture({
function pre (line 1547) | DomNode pre({
function progress (line 1561) | DomNode progress({
function q (line 1580) | DomNode q({
function rp (line 1598) | DomNode rp({
function rt (line 1612) | DomNode rt({
function ruby (line 1626) | DomNode ruby({
function s (line 1640) | DomNode s({
function samp (line 1654) | DomNode samp({
function script (line 1668) | DomNode script({
function section (line 1699) | DomNode section({
function select (line 1713) | DomNode select({
function small (line 1746) | DomNode small({
function source (line 1760) | DomNode source({
function span (line 1788) | DomNode span({
function strong (line 1802) | DomNode strong({
function style (line 1816) | DomNode style({
function sub (line 1834) | DomNode sub({
function summary (line 1848) | DomNode summary({
function sup (line 1862) | DomNode sup({
function table (line 1876) | DomNode table({
function tbody (line 1894) | DomNode tbody({
function td (line 1908) | DomNode td({
function textarea (line 1935) | DomNode textarea({
function tfoot (line 1980) | DomNode tfoot({
function th (line 1994) | DomNode th({
function thead (line 2027) | DomNode thead({
function time (line 2041) | DomNode time({
function title (line 2059) | DomNode title({
function tr (line 2073) | DomNode tr({
function track (line 2087) | DomNode track({
function u (line 2115) | DomNode u({
function ul (line 2129) | DomNode ul({
function var_ (line 2143) | DomNode var_({
function video (line 2157) | DomNode video({
function wbr (line 2196) | DomNode wbr({
FILE: packages/jael/jael_web/lib/src/jael_component.dart
class Jael (line 2) | class Jael {
class Dsx (line 16) | class Dsx extends Jael {
FILE: packages/jinja/example/main.dart
function main (line 7) | void main()
FILE: packages/jinja/lib/angel3_jinja.dart
function jinja (line 12) | AngelConfigurer jinja({
FILE: packages/markdown/example/main.dart
function main (line 8) | void main()
function createServer (line 15) | Future<Angel> createServer()
FILE: packages/markdown/lib/angel3_markdown.dart
function markdown (line 17) | AngelConfigurer markdown(
function _resolveDotNotation (line 62) | dynamic _resolveDotNotation(List<String> split, target)
FILE: packages/oauth2/example/example1.dart
function main (line 10) | void main()
function setUp (line 21) | void setUp()
class _AuthorizationServer (line 47) | class _AuthorizationServer
method findClient (line 52) | PseudoApplication? findClient(String? clientId)
method verifyClient (line 57) | Future<bool> verifyClient(
method requestDeviceCode (line 65) | FutureOr<DeviceCodeResponse> requestDeviceCode(
method exchangeDeviceCodeForToken (line 82) | FutureOr<AuthorizationTokenResponse> exchangeDeviceCodeForToken(
FILE: packages/oauth2/example/main.dart
function main (line 6) | void main()
class ThirdPartyApp (line 35) | class ThirdPartyApp {}
class User (line 37) | class User {}
class _ExampleAuthorizationServer (line 40) | class _ExampleAuthorizationServer
method findClient (line 43) | FutureOr<ThirdPartyApp> findClient(String? clientId)
method verifyClient (line 49) | FutureOr<bool> verifyClient(ThirdPartyApp client, String? clientSecret)
method requestAuthorizationCode (line 55) | FutureOr requestAuthorizationCode(
method exchangeAuthorizationCodeForToken (line 69) | FutureOr<AuthorizationTokenResponse> exchangeAuthorizationCodeForToken(
FILE: packages/oauth2/lib/src/exception.dart
class AuthorizationException (line 4) | class AuthorizationException extends AngelHttpException {
method toJson (line 15) | Map toJson()
class ErrorResponse (line 30) | class ErrorResponse {
method toString (line 92) | String toString()
FILE: packages/oauth2/lib/src/pkce.dart
class Pkce (line 7) | class Pkce {
method validate (line 57) | void validate(String codeVerifier, {String? state, Uri? uri})
method toJson (line 81) | Map<String, dynamic> toJson()
FILE: packages/oauth2/lib/src/response.dart
class AuthorizationTokenResponse (line 2) | class AuthorizationTokenResponse {
method toJson (line 22) | Map<String, dynamic> toJson()
class DeviceCodeResponse (line 32) | class DeviceCodeResponse {
method toJson (line 66) | Map<String, dynamic> toJson()
FILE: packages/oauth2/lib/src/server.dart
type ExtensionGrant (line 11) | typedef ExtensionGrant =
function _getParam (line 17) | Future<String?> _getParam(
function _getScopes (line 48) | Future<Iterable<String>> _getScopes(
class AuthorizationServer (line 64) | abstract class AuthorizationServer<Client, User> {
method findClient (line 76) | FutureOr<Client>? findClient(String? clientId)
method verifyClient (line 79) | FutureOr<bool> verifyClient(Client client, String? clientSecret)
method getPkceCodeVerifier (line 82) | Future<String> getPkceCodeVerifier(
method requestAuthorizationCode (line 123) | FutureOr<void> requestAuthorizationCode(
method exchangeAuthorizationCodeForToken (line 143) | FutureOr<AuthorizationTokenResponse> exchangeAuthorizationCodeForToken(
method refreshAuthorizationToken (line 161) | FutureOr<AuthorizationTokenResponse> refreshAuthorizationToken(
method resourceOwnerPasswordCredentialsGrant (line 180) | FutureOr<AuthorizationTokenResponse> resourceOwnerPasswordCredentialsG...
method clientCredentialsGrant (line 200) | FutureOr<AuthorizationTokenResponse> clientCredentialsGrant(
method requestDeviceCode (line 217) | FutureOr<DeviceCodeResponse> requestDeviceCode(
method exchangeDeviceCodeForToken (line 235) | FutureOr<AuthorizationTokenResponse> exchangeDeviceCodeForToken(
method completeImplicitGrant (line 254) | Uri completeImplicitGrant(
method authorizationEndpoint (line 287) | Future<void> authorizationEndpoint(
method tokenEndpoint (line 361) | Future tokenEndpoint(RequestContext req, ResponseContext res)
FILE: packages/oauth2/lib/src/token_type.dart
class AuthorizationTokenType (line 2) | abstract class AuthorizationTokenType {
FILE: packages/oauth2/test/auth_code_test.dart
function main (line 14) | void main()
function createGrant (line 54) | oauth2.AuthorizationCodeGrant createGrant()
class _Server (line 123) | class _Server extends AuthorizationServer<PseudoApplication, Map> {
method findClient (line 127) | FutureOr<PseudoApplication>? findClient(String? clientId)
method verifyClient (line 132) | Future<bool> verifyClient(
method requestAuthorizationCode (line 140) | Future requestAuthorizationCode(
method exchangeAuthorizationCodeForToken (line 177) | Future<AuthorizationTokenResponse> exchangeAuthorizationCodeForToken(
class AuthCodes (line 194) | class AuthCodes with MapMixin<String, String> {
method clear (line 204) | void clear()
method remove (line 210) | String? remove(Object? key)
FILE: packages/oauth2/test/client_credentials_test.dart
function main (line 9) | void main()
class _AuthorizationServer (line 84) | class _AuthorizationServer
method findClient (line 87) | PseudoApplication? findClient(String? clientId)
method verifyClient (line 92) | Future<bool> verifyClient(
method clientCredentialsGrant (line 100) | Future<AuthorizationTokenResponse> clientCredentialsGrant(
FILE: packages/oauth2/test/common.dart
class PseudoApplication (line 7) | class PseudoApplication {
class PseudoUser (line 19) | class PseudoUser {
FILE: packages/oauth2/test/device_code_test.dart
function main (line 10) | void main()
class _AuthorizationServer (line 147) | class _AuthorizationServer
method findClient (line 152) | PseudoApplication? findClient(String? clientId)
method verifyClient (line 157) | Future<bool> verifyClient(
method requestDeviceCode (line 165) | FutureOr<DeviceCodeResponse> requestDeviceCode(
method exchangeDeviceCodeForToken (line 182) | FutureOr<AuthorizationTokenResponse> exchangeDeviceCodeForToken(
FILE: packages/oauth2/test/implicit_grant_test.dart
function main (line 8) | void main()
class _AuthorizationServer (line 51) | class _AuthorizationServer
method findClient (line 54) | PseudoApplication? findClient(String? clientId)
method verifyClient (line 59) | Future<bool> verifyClient(
method requestAuthorizationCode (line 67) | Future<void> requestAuthorizationCode(
FILE: packages/oauth2/test/password_test.dart
function main (line 11) | void main()
class _AuthorizationServer (line 89) | class _AuthorizationServer
method findClient (line 92) | PseudoApplication? findClient(String? clientId)
method verifyClient (line 97) | Future<bool> verifyClient(
method refreshAuthorizationToken (line 105) | Future<AuthorizationTokenResponse> refreshAuthorizationToken(
method resourceOwnerPasswordCredentialsGrant (line 116) | Future<AuthorizationTokenResponse> resourceOwnerPasswordCredentialsGrant(
FILE: packages/oauth2/test/pkce_test.dart
function main (line 12) | void main()
class _Server (line 252) | class _Server extends AuthorizationServer<PseudoApplication, Map> {
method findClient (line 254) | FutureOr<PseudoApplication> findClient(String? clientId)
method verifyClient (line 259) | Future<bool> verifyClient(
method requestAuthorizationCode (line 267) | Future requestAuthorizationCode(
method exchangeAuthorizationCodeForToken (line 281) | Future<AuthorizationTokenResponse> exchangeAuthorizationCodeForToken(
class AuthCodes (line 295) | class AuthCodes with MapMixin<String, String> {
method clear (line 305) | void clear()
method remove (line 311) | String? remove(Object? key)
FILE: packages/orm/angel_orm_mysql/example/example2.dart
function main (line 4) | void main()
function parseSQLResult (line 82) | List<List<dynamic>> parseSQLResult(IResultSet res)
FILE: packages/orm/angel_orm_mysql/example/main.dart
function main (line 13) | void main()
function mariaDBExample (line 22) | Future<void> mariaDBExample()
function mysqlExample (line 55) | Future<void> mysqlExample()
class TodoEntity (line 89) | @serializable
FILE: packages/orm/angel_orm_mysql/example/main.g.dart
class TodoMigration (line 9) | class TodoMigration extends Migration {
method up (line 11) | void up(Schema schema)
method down (line 22) | void down(Schema schema)
class TodoQuery (line 31) | class TodoQuery extends Query<Todo, TodoQueryWhere> {
method select (line 71) | TodoQuery select(List<String> selectedFields)
method newWhereClause (line 82) | TodoQueryWhere newWhereClause()
method parseRow (line 86) | Optional<Todo> parseRow(List row)
method deserialize (line 105) | Optional<Todo> deserialize(List row)
class TodoQueryWhere (line 110) | class TodoQueryWhere extends QueryWhere {
class TodoQueryValues (line 134) | class TodoQueryValues extends MapQueryValues {
method copyFrom (line 170) | void copyFrom(Todo model)
class Todo (line 182) | @generatedSerializable
method copyWith (line 210) | Todo copyWith({
method toString (line 242) | String toString()
method toJson (line 246) | Map<String, dynamic> toJson()
class TodoEncoder (line 257) | class TodoEncoder extends Converter<Todo, Map> {
method convert (line 261) | Map convert(Todo model)
class TodoDecoder (line 264) | class TodoDecoder extends Converter<Map, Todo> {
method convert (line 268) | Todo convert(Map map)
class TodoSerializer (line 271) | class TodoSerializer extends Codec<Todo, Map> {
method fromMap (line 280) | Todo fromMap(Map map)
method toMap (line 298) | Map<String, dynamic> toMap(TodoEntity? model)
class TodoFields (line 312) | abstract class TodoFields {
FILE: packages/orm/angel_orm_mysql/lib/src/orm_mariadb.dart
class MariaDbExecutor (line 6) | class MariaDbExecutor extends QueryExecutor {
method close (line 23) | Future<void> close()
method query (line 28) | Future<List<List>> query(
method transaction (line 82) | Future<T> transaction<T>(FutureOr<T> Function(QueryExecutor) f)
FILE: packages/orm/angel_orm_mysql/lib/src/orm_mysql.dart
class MySqlExecutor (line 6) | class MySqlExecutor extends QueryExecutor {
method close (line 21) | Future<void> close()
method query (line 79) | Future<List<List>> query(
method _convertSQL (line 160) | String _convertSQL(String query, Map<String, dynamic> substitutionValues)
method parseSQLResult (line 171) | List<List<dynamic>> parseSQLResult(IResultSet res)
method transaction (line 224) | Future<T> transaction<T>(FutureOr<T> Function(QueryExecutor) f)
FILE: packages/orm/angel_orm_mysql/test/belongs_to_test.dart
function main (line 11) | void main()
FILE: packages/orm/angel_orm_mysql/test/common.dart
function openMySqlConnection (line 19) | Future<MySQLConnection> openMySqlConnection()
function createExecutor (line 34) | Future<QueryExecutor> createExecutor(MySQLConnection conn)
function createTables (line 40) | Future<MigrationRunner> createTables(
function dropTables (line 50) | Future<void> dropTables(MigrationRunner runner)
function dropTables2 (line 55) | Future<void> dropTables2(QueryExecutor executor)
function extractTableName (line 64) | String extractTableName(String createQuery)
FILE: packages/orm/angel_orm_mysql/test/custom_expr_test.dart
function main (line 9) | void main()
FILE: packages/orm/angel_orm_mysql/test/edge_case_test.dart
function main (line 10) | void main()
FILE: packages/orm/angel_orm_mysql/test/enum_and_nested_test.dart
function main (line 9) | void main()
FILE: packages/orm/angel_orm_mysql/test/enum_test.dart
function main (line 6) | void main()
FILE: packages/orm/angel_orm_mysql/test/has_many_test.dart
function main (line 9) | void main()
function verify (line 46) | void verify(Tree tree)
FILE: packages/orm/angel_orm_mysql/test/has_map_test.dart
function main (line 12) | void main()
FILE: packages/orm/angel_orm_mysql/test/has_one_test.dart
function main (line 9) | void main()
FILE: packages/orm/angel_orm_mysql/test/join_test.dart
function main (line 11) | void main()
FILE: packages/orm/angel_orm_mysql/test/many_to_many_test.dart
function main (line 11) | void main()
function fetchThosakwe (line 107) | Future<User?> fetchThosakwe()
FILE: packages/orm/angel_orm_mysql/test/models/asset.dart
class ItemEntity (line 8) | @serializable
class AssetEntity (line 14) | @serializable
FILE: packages/orm/angel_orm_mysql/test/models/asset.g.dart
class ItemMigration (line 9) | class ItemMigration extends Migration {
method up (line 11) | void up(Schema schema)
method down (line 21) | void down(Schema schema)
class AssetMigration (line 26) | class AssetMigration extends Migration {
method up (line 28) | void up(Schema schema)
method down (line 40) | void down(Schema schema)
class ItemQuery (line 49) | class ItemQuery extends Query<Item, ItemQueryWhere> {
method select (line 83) | ItemQuery select(List<String> selectedFields)
method newWhereClause (line 94) | ItemQueryWhere newWhereClause()
method parseRow (line 98) | Optional<Item> parseRow(List row)
method deserialize (line 116) | Optional<Item> deserialize(List row)
class ItemQueryWhere (line 121) | class ItemQueryWhere extends QueryWhere {
class ItemQueryValues (line 142) | class ItemQueryValues extends MapQueryValues {
method copyFrom (line 172) | void copyFrom(Item model)
class AssetQuery (line 179) | class AssetQuery extends Query<Asset, AssetQueryWhere> {
method select (line 229) | AssetQuery select(List<String> selectedFields)
method newWhereClause (line 240) | AssetQueryWhere newWhereClause()
method parseRow (line 244) | Optional<Asset> parseRow(List row)
method deserialize (line 270) | Optional<Asset> deserialize(List row)
method get (line 279) | Future<List<Asset>> get(QueryExecutor executor)
method update (line 298) | Future<List<Asset>> update(QueryExecutor executor)
method delete (line 317) | Future<List<Asset>> delete(QueryExecutor executor)
class AssetQueryWhere (line 336) | class AssetQueryWhere extends QueryWhere {
class AssetQueryValues (line 363) | class AssetQueryValues extends MapQueryValues {
method copyFrom (line 405) | void copyFrom(Asset model)
class Item (line 418) | @generatedSerializable
method copyWith (line 437) | Item copyWith({
method toString (line 466) | String toString()
method toJson (line 470) | Map<String, dynamic> toJson()
class Asset (line 475) | @generatedSerializable
method copyWith (line 511) | Asset copyWith({
method toString (line 559) | String toString()
method toJson (line 563) | Map<String, dynamic> toJson()
class ItemEncoder (line 574) | class ItemEncoder extends Converter<Item, Map> {
method convert (line 578) | Map convert(Item model)
class ItemDecoder (line 581) | class ItemDecoder extends Converter<Map, Item> {
method convert (line 585) | Item convert(Map map)
class ItemSerializer (line 588) | class ItemSerializer extends Codec<Item, Map> {
method fromMap (line 597) | Item fromMap(Map map)
method toMap (line 614) | Map<String, dynamic> toMap(ItemEntity? model)
class ItemFields (line 627) | abstract class ItemFields {
class AssetEncoder (line 646) | class AssetEncoder extends Converter<Asset, Map> {
method convert (line 650) | Map convert(Asset model)
class AssetDecoder (line 653) | class AssetDecoder extends Converter<Map, Asset> {
method convert (line 657) | Asset convert(Map map)
class AssetSerializer (line 660) | class AssetSerializer extends Codec<Asset, Map> {
method fromMap (line 669) | Asset fromMap(Map map)
method toMap (line 695) | Map<String, dynamic> toMap(AssetEntity? model)
class AssetFields (line 711) | abstract class AssetFields {
FILE: packages/orm/angel_orm_mysql/test/models/bike.dart
class EntityBike (line 8) | @serializable
FILE: packages/orm/angel_orm_mysql/test/models/bike.g.dart
class BikeMigration (line 9) | class BikeMigration extends Migration {
method up (line 11) | void up(Schema schema)
method down (line 26) | void down(Schema schema)
class BikeQuery (line 35) | class BikeQuery extends Query<Bike, BikeQueryWhere> {
method select (line 79) | BikeQuery select(List<String> selectedFields)
method newWhereClause (line 90) | BikeQueryWhere newWhereClause()
method parseRow (line 94) | Optional<Bike> parseRow(List row)
method deserialize (line 121) | Optional<Bike> deserialize(List row)
class BikeQueryWhere (line 126) | class BikeQueryWhere extends QueryWhere {
class BikeQueryValues (line 172) | class BikeQueryValues extends MapQueryValues {
method copyFrom (line 232) | void copyFrom(Bike model)
class Bike (line 248) | @generatedSerializable
method copyWith (line 292) | Bike copyWith({
method toString (line 346) | String toString()
method toJson (line 350) | Map<String, dynamic> toJson()
class BikeEncoder (line 361) | class BikeEncoder extends Converter<Bike, Map> {
method convert (line 365) | Map convert(Bike model)
class BikeDecoder (line 368) | class BikeDecoder extends Converter<Map, Bike> {
method convert (line 372) | Bike convert(Map map)
class BikeSerializer (line 375) | class BikeSerializer extends Codec<Bike, Map> {
method fromMap (line 384) | Bike fromMap(Map map)
method toMap (line 410) | Map<String, dynamic> toMap(EntityBike? model)
class BikeFields (line 428) | abstract class BikeFields {
FILE: packages/orm/angel_orm_mysql/test/models/boat.d.ts
type Boat (line 3) | interface Boat {
FILE: packages/orm/angel_orm_mysql/test/models/boat.dart
class BoatEntity (line 8) | @Serializable(serializers: Serializers.all)
FILE: packages/orm/angel_orm_mysql/test/models/boat.g.dart
class BoatMigration (line 9) | class BoatMigration extends Migration {
method up (line 11) | void up(Schema schema)
method down (line 26) | void down(Schema schema)
class BoatQuery (line 35) | class BoatQuery extends Query<Boat, BoatQueryWhere> {
method select (line 79) | BoatQuery select(List<String> selectedFields)
method newWhereClause (line 90) | BoatQueryWhere newWhereClause()
method parseRow (line 94) | Optional<Boat> parseRow(List row)
method deserialize (line 121) | Optional<Boat> deserialize(List row)
class BoatQueryWhere (line 126) | class BoatQueryWhere extends QueryWhere {
class BoatQueryValues (line 172) | class BoatQueryValues extends MapQueryValues {
method copyFrom (line 232) | void copyFrom(Boat model)
class Boat (line 248) | @generatedSerializable
method copyWith (line 292) | Boat copyWith({
method toString (line 346) | String toString()
method toJson (line 350) | Map<String, dynamic> toJson()
class BoatEncoder (line 361) | class BoatEncoder extends Converter<Boat, Map> {
method convert (line 365) | Map convert(Boat model)
class BoatDecoder (line 368) | class BoatDecoder extends Converter<Map, Boat> {
method convert (line 372) | Boat convert(Map map)
class BoatSerializer (line 375) | class BoatSerializer extends Codec<Boat, Map> {
method fromMap (line 384) | Boat fromMap(Map map)
method toMap (line 410) | Map<String, dynamic> toMap(BoatEntity? model)
class BoatFields (line 428) | abstract class BoatFields {
FILE: packages/orm/angel_orm_mysql/test/models/book.dart
class EntityBook (line 8) | @serializable
class EntityAuthor (line 20) | @serializable
FILE: packages/orm/angel_orm_mysql/test/models/book.g.dart
class BookMigration (line 9) | class BookMigration extends Migration {
method up (line 11) | void up(Schema schema)
method down (line 25) | void down(Schema schema)
class AuthorMigration (line 30) | class AuthorMigration extends Migration {
method up (line 32) | void up(Schema schema)
method down (line 45) | void down(Schema schema)
class BookQuery (line 54) | class BookQuery extends Query<Book, BookQueryWhere> {
method select (line 125) | BookQuery select(List<String> selectedFields)
method newWhereClause (line 136) | BookQueryWhere newWhereClause()
method parseRow (line 140) | Optional<Book> parseRow(List row)
method deserialize (line 170) | Optional<Book> deserialize(List row)
class BookQueryWhere (line 183) | class BookQueryWhere extends QueryWhere {
class BookQueryValues (line 213) | class BookQueryValues extends MapQueryValues {
method copyFrom (line 255) | void copyFrom(Book model)
class AuthorQuery (line 268) | class AuthorQuery extends Query<Author, AuthorQueryWhere> {
method select (line 302) | AuthorQuery select(List<String> selectedFields)
method newWhereClause (line 313) | AuthorQueryWhere newWhereClause()
method parseRow (line 317) | Optional<Author> parseRow(List row)
method deserialize (line 336) | Optional<Author> deserialize(List row)
class AuthorQueryWhere (line 341) | class AuthorQueryWhere extends QueryWhere {
class AuthorQueryValues (line 365) | class AuthorQueryValues extends MapQueryValues {
method copyFrom (line 401) | void copyFrom(Author model)
class Book (line 413) | @generatedSerializable
method copyWith (line 445) | Book copyWith({
method toString (line 480) | String toString()
method toJson (line 484) | Map<String, dynamic> toJson()
class Author (line 489) | @generatedSerializable
method copyWith (line 517) | Author copyWith({
method toString (line 549) | String toString()
method toJson (line 553) | Map<String, dynamic> toJson()
class BookEncoder (line 564) | class BookEncoder extends Converter<Book, Map> {
method convert (line 568) | Map convert(Book model)
class BookDecoder (line 571) | class BookDecoder extends Converter<Map, Book> {
method convert (line 575) | Book convert(Map map)
class BookSerializer (line 578) | class BookSerializer extends Codec<Book, Map> {
method fromMap (line 587) | Book fromMap(Map map)
method toMap (line 610) | Map<String, dynamic> toMap(EntityBook? model)
class BookFields (line 625) | abstract class BookFields {
class AuthorEncoder (line 650) | class AuthorEncoder extends Converter<Author, Map> {
method convert (line 654) | Map convert(Author model)
class AuthorDecoder (line 657) | class AuthorDecoder extends Converter<Map, Author> {
method convert (line 661) | Author convert(Map map)
class AuthorSerializer (line 664) | class AuthorSerializer extends Codec<Author, Map> {
method fromMap (line 673) | Author fromMap(Map map)
method toMap (line 691) | Map<String, dynamic> toMap(EntityAuthor? model)
class AuthorFields (line 705) | abstract class AuthorFields {
FILE: packages/orm/angel_orm_mysql/test/models/car.dart
class CarEntity (line 7) | @serializable
FILE: packages/orm/angel_orm_mysql/test/models/car.g.dart
class CarMigration (line 9) | class CarMigration extends Migration {
method up (line 11) | void up(Schema schema)
method down (line 25) | void down(Schema schema)
class CarQuery (line 34) | class CarQuery extends Query<Car, CarQueryWhere> {
method select (line 77) | CarQuery select(List<String> selectedFields)
method newWhereClause (line 88) | CarQueryWhere newWhereClause()
method parseRow (line 92) | Optional<Car> parseRow(List row)
method deserialize (line 118) | Optional<Car> deserialize(List row)
class CarQueryWhere (line 123) | class CarQueryWhere extends QueryWhere {
class CarQueryValues (line 165) | class CarQueryValues extends MapQueryValues {
method copyFrom (line 219) | void copyFrom(Car model)
class Car (line 234) | @generatedSerializable
method copyWith (line 274) | Car copyWith({
method toString (line 324) | String toString()
method toJson (line 328) | Map<String, dynamic> toJson()
class CarEncoder (line 339) | class CarEncoder extends Converter<Car, Map> {
method convert (line 343) | Map convert(Car model)
class CarDecoder (line 346) | class CarDecoder extends Converter<Map, Car> {
method convert (line 350) | Car convert(Map map)
class CarSerializer (line 353) | class CarSerializer extends Codec<Car, Map> {
method fromMap (line 362) | Car fromMap(Map map)
method toMap (line 387) | Map<String, dynamic> toMap(CarEntity? model)
class CarFields (line 404) | abstract class CarFields {
FILE: packages/orm/angel_orm_mysql/test/models/custom_expr.dart
class NumberEntity (line 8) | @serializable
class AlphabetEntity (line 15) | @serializable
FILE: packages/orm/angel_orm_mysql/test/models/custom_expr.g.dart
class NumberMigration (line 9) | class NumberMigration extends Migration {
method up (line 11) | void up(Schema schema)
method down (line 20) | void down(Schema schema)
class AlphabetMigration (line 25) | class AlphabetMigration extends Migration {
method up (line 27) | void up(Schema schema)
method down (line 40) | void down(Schema schema)
class NumberQuery (line 49) | class NumberQuery extends Query<Number, NumberQueryWhere> {
method select (line 84) | NumberQuery select(List<String> selectedFields)
method newWhereClause (line 95) | NumberQueryWhere newWhereClause()
method parseRow (line 99) | Optional<Number> parseRow(List row)
method deserialize (line 117) | Optional<Number> deserialize(List row)
class NumberQueryWhere (line 122) | class NumberQueryWhere extends QueryWhere {
class NumberQueryValues (line 140) | class NumberQueryValues extends MapQueryValues {
method copyFrom (line 164) | void copyFrom(Number model)
class AlphabetQuery (line 170) | class AlphabetQuery extends Query<Alphabet, AlphabetQueryWhere> {
method select (line 219) | AlphabetQuery select(List<String> selectedFields)
method newWhereClause (line 230) | AlphabetQueryWhere newWhereClause()
method parseRow (line 234) | Optional<Alphabet> parseRow(List row)
method deserialize (line 258) | Optional<Alphabet> deserialize(List row)
class AlphabetQueryWhere (line 267) | class AlphabetQueryWhere extends QueryWhere {
class AlphabetQueryValues (line 291) | class AlphabetQueryValues extends MapQueryValues {
method copyFrom (line 327) | void copyFrom(Alphabet model)
class Number (line 341) | @generatedSerializable
method copyWith (line 360) | Number copyWith({
method toString (line 389) | String toString()
method toJson (line 393) | Map<String, dynamic> toJson()
class Alphabet (line 398) | @generatedSerializable
method copyWith (line 420) | Alphabet copyWith({
method toString (line 452) | String toString()
method toJson (line 456) | Map<String, dynamic> toJson()
class NumberEncoder (line 467) | class NumberEncoder extends Converter<Number, Map> {
method convert (line 471) | Map convert(Number model)
class NumberDecoder (line 474) | class NumberDecoder extends Converter<Map, Number> {
method convert (line 478) | Number convert(Map map)
class NumberSerializer (line 481) | class NumberSerializer extends Codec<Number, Map> {
method fromMap (line 490) | Number fromMap(Map map)
method toMap (line 507) | Map<String, dynamic> toMap(NumberEntity? model)
class NumberFields (line 520) | abstract class NumberFields {
class AlphabetEncoder (line 534) | class AlphabetEncoder extends Converter<Alphabet, Map> {
method convert (line 538) | Map convert(Alphabet model)
class AlphabetDecoder (line 541) | class AlphabetDecoder extends Converter<Map, Alphabet> {
method convert (line 545) | Alphabet convert(Map map)
class AlphabetSerializer (line 548) | class AlphabetSerializer extends Codec<Alphabet, Map> {
method fromMap (line 557) | Alphabet fromMap(Map map)
method toMap (line 577) | Map<String, dynamic> toMap(AlphabetEntity? model)
class AlphabetFields (line 591) | abstract class AlphabetFields {
FILE: packages/orm/angel_orm_mysql/test/models/email_indexed.dart
class RoleEntity (line 10) | @serializable
class RoleUserEntity (line 20) | @serializable
class UserEntity (line 30) | @serializable
FILE: packages/orm/angel_orm_mysql/test/models/email_indexed.g.dart
class RoleMigration (line 9) | class RoleMigration extends Migration {
method up (line 11) | void up(Schema schema)
method down (line 18) | void down(Schema schema)
class RoleUserMigration (line 23) | class RoleUserMigration extends Migration {
method up (line 25) | void up(Schema schema)
method down (line 37) | void down(Schema schema)
class UserMigration (line 42) | class UserMigration extends Migration {
method up (line 44) | void up(Schema schema)
method down (line 53) | void down(Schema schema)
class RoleQuery (line 62) | class RoleQuery extends Query<Role, RoleQueryWhere> {
method select (line 103) | RoleQuery select(List<String> selectedFields)
method newWhereClause (line 114) | RoleQueryWhere newWhereClause()
method parseRow (line 118) | Optional<Role> parseRow(List row)
method deserialize (line 135) | Optional<Role> deserialize(List row)
method canCompile (line 140) | bool canCompile(trampoline)
method get (line 146) | Future<List<Role>> get(QueryExecutor executor)
method update (line 165) | Future<List<Role>> update(QueryExecutor executor)
method delete (line 184) | Future<List<Role>> delete(QueryExecutor executor)
class RoleQueryWhere (line 203) | class RoleQueryWhere extends QueryWhere {
class RoleQueryValues (line 215) | class RoleQueryValues extends MapQueryValues {
method copyFrom (line 227) | void copyFrom(Role model)
class RoleUserQuery (line 232) | class RoleUserQuery extends Query<RoleUser, RoleUserQueryWhere> {
method select (line 284) | RoleUserQuery select(List<String> selectedFields)
method newWhereClause (line 295) | RoleUserQueryWhere newWhereClause()
method parseRow (line 299) | Optional<RoleUser> parseRow(List row)
method deserialize (line 320) | Optional<RoleUser> deserialize(List row)
class RoleUserQueryWhere (line 333) | class RoleUserQueryWhere extends QueryWhere {
class RoleUserQueryValues (line 348) | class RoleUserQueryValues extends MapQueryValues {
method copyFrom (line 366) | void copyFrom(RoleUser model)
class UserQuery (line 376) | class UserQuery extends Query<User, UserQueryWhere> {
method select (line 417) | UserQuery select(List<String> selectedFields)
method newWhereClause (line 428) | UserQueryWhere newWhereClause()
method parseRow (line 432) | Optional<User> parseRow(List row)
method deserialize (line 451) | Optional<User> deserialize(List row)
method canCompile (line 456) | bool canCompile(trampoline)
method get (line 462) | Future<List<User>> get(QueryExecutor executor)
method update (line 481) | Future<List<User>> update(QueryExecutor executor)
method delete (line 500) | Future<List<User>> delete(QueryExecutor executor)
class UserQueryWhere (line 519) | class UserQueryWhere extends QueryWhere {
class UserQueryValues (line 537) | class UserQueryValues extends MapQueryValues {
method copyFrom (line 561) | void copyFrom(User model)
class Role (line 572) | @generatedSerializable
method copyWith (line 582) | Role copyWith({String? role, List<UserEntity>? users})
method toString (line 601) | String toString()
method toJson (line 605) | Map<String, dynamic> toJson()
class RoleUser (line 610) | @generatedSerializable
method copyWith (line 620) | RoleUser copyWith({RoleEntity? role, UserEntity? user})
method toString (line 635) | String toString()
method toJson (line 639) | Map<String, dynamic> toJson()
class User (line 644) | @generatedSerializable
method copyWith (line 660) | User copyWith({
method toString (line 691) | String toString()
method toJson (line 695) | Map<String, dynamic> toJson()
class RoleEncoder (line 706) | class RoleEncoder extends Converter<Role, Map> {
method convert (line 710) | Map convert(Role model)
class RoleDecoder (line 713) | class RoleDecoder extends Converter<Map, Role> {
method convert (line 717) | Role convert(Map map)
class RoleSerializer (line 720) | class RoleSerializer extends Codec<Role, Map> {
method fromMap (line 729) | Role fromMap(Map map)
method toMap (line 742) | Map<String, dynamic> toMap(RoleEntity? model)
class RoleFields (line 753) | abstract class RoleFields {
class RoleUserEncoder (line 763) | class RoleUserEncoder extends Converter<RoleUser, Map> {
method convert (line 767) | Map convert(RoleUser model)
class RoleUserDecoder (line 770) | class RoleUserDecoder extends Converter<Map, RoleUser> {
method convert (line 774) | RoleUser convert(Map map)
class RoleUserSerializer (line 777) | class RoleUserSerializer extends Codec<RoleUser, Map> {
method fromMap (line 786) | RoleUser fromMap(Map map)
method toMap (line 797) | Map<String, dynamic> toMap(RoleUserEntity? model)
class RoleUserFields (line 808) | abstract class RoleUserFields {
class UserEncoder (line 818) | class UserEncoder extends Converter<User, Map> {
method convert (line 822) | Map convert(User model)
class UserDecoder (line 825) | class UserDecoder extends Converter<Map, User> {
method convert (line 829) | User convert(Map map)
class UserSerializer (line 832) | class UserSerializer extends Codec<User, Map> {
method fromMap (line 841) | User fromMap(Map map)
method toMap (line 856) | Map<String, dynamic> toMap(UserEntity? model)
class UserFields (line 869) | abstract class UserFields {
FILE: packages/orm/angel_orm_mysql/test/models/fortune.dart
class FortuneEntity (line 8) | @serializable
FILE: packages/orm/angel_orm_mysql/test/models/fortune.g.dart
class FortuneMigration (line 9) | class FortuneMigration extends Migration {
method up (line 11) | void up(Schema schema)
method down (line 19) | void down(Schema schema)
class FortuneQuery (line 28) | class FortuneQuery extends Query<Fortune, FortuneQueryWhere> {
method select (line 62) | FortuneQuery select(List<String> selectedFields)
method newWhereClause (line 73) | FortuneQueryWhere newWhereClause()
method parseRow (line 77) | Optional<Fortune> parseRow(List row)
method deserialize (line 89) | Optional<Fortune> deserialize(List row)
class FortuneQueryWhere (line 94) | class FortuneQueryWhere extends QueryWhere {
class FortuneQueryValues (line 109) | class FortuneQueryValues extends MapQueryValues {
method copyFrom (line 127) | void copyFrom(Fortune model)
class Fortune (line 137) | @generatedSerializable
method copyWith (line 147) | Fortune copyWith({int? id, String? message})
method toString (line 162) | String toString()
method toJson (line 166) | Map<String, dynamic> toJson()
class FortuneEncoder (line 177) | class FortuneEncoder extends Converter<Fortune, Map> {
method convert (line 181) | Map convert(Fortune model)
class FortuneDecoder (line 184) | class FortuneDecoder extends Converter<Map, Fortune> {
method convert (line 188) | Fortune convert(Map map)
class FortuneSerializer (line 191) | class FortuneSerializer extends Codec<Fortune, Map> {
method fromMap (line 200) | Fortune fromMap(Map map)
method toMap (line 204) | Map<String, dynamic> toMap(FortuneEntity? model)
class FortuneFields (line 212) | abstract class FortuneFields {
FILE: packages/orm/angel_orm_mysql/test/models/has_car.dart
type CarType (line 12) | enum CarType { sedan, suv, atv }
function codeToColor (line 14) | Color? codeToColor(String? code)
function colorToCode (line 18) | String? colorToCode(Color? color)
type Color (line 20) | enum Color {
class HasCarEntity (line 30) | @orm
FILE: packages/orm/angel_orm_mysql/test/models/has_car.g.dart
class HasCarMigration (line 9) | class HasCarMigration extends Migration {
method up (line 11) | void up(Schema schema)
method down (line 25) | void down(Schema schema)
class HasCarQuery (line 34) | class HasCarQuery extends Query<HasCar, HasCarQueryWhere> {
method select (line 68) | HasCarQuery select(List<String> selectedFields)
method newWhereClause (line 79) | HasCarQueryWhere newWhereClause()
method parseRow (line 83) | Optional<HasCar> parseRow(List row)
method deserialize (line 110) | Optional<HasCar> deserialize(List row)
class HasCarQueryWhere (line 115) | class HasCarQueryWhere extends QueryWhere {
class HasCarQueryValues (line 143) | class HasCarQueryValues extends MapQueryValues {
method copyFrom (line 179) | void copyFrom(HasCar model)
class HasCar (line 191) | @generatedSerializable
method copyWith (line 219) | HasCar copyWith({
method toString (line 251) | String toString()
method toJson (line 255) | Map<String, dynamic> toJson()
class HasCarEncoder (line 266) | class HasCarEncoder extends Converter<HasCar, Map> {
method convert (line 270) | Map convert(HasCar model)
class HasCarDecoder (line 273) | class HasCarDecoder extends Converter<Map, HasCar> {
method convert (line 277) | HasCar convert(Map map)
class HasCarSerializer (line 280) | class HasCarSerializer extends Codec<HasCar, Map> {
method fromMap (line 289) | HasCar fromMap(Map map)
method toMap (line 311) | Map<String, dynamic> toMap(HasCarEntity? model)
class HasCarFields (line 325) | abstract class HasCarFields {
FILE: packages/orm/angel_orm_mysql/test/models/has_map.dart
class HasMapEntity (line 11) | @orm
FILE: packages/orm/angel_orm_mysql/test/models/has_map.g.dart
class HasMapMigration (line 9) | class HasMapMigration extends Migration {
method up (line 11) | void up(Schema schema)
method down (line 25) | void down(Schema schema)
class HasMapQuery (line 34) | class HasMapQuery extends Query<HasMap, HasMapQueryWhere> {
method select (line 68) | HasMapQuery select(List<String> selectedFields)
method newWhereClause (line 79) | HasMapQueryWhere newWhereClause()
method parseRow (line 83) | Optional<HasMap> parseRow(List row)
method deserialize (line 97) | Optional<HasMap> deserialize(List row)
class HasMapQueryWhere (line 102) | class HasMapQueryWhere extends QueryWhere {
class HasMapQueryValues (line 117) | class HasMapQueryValues extends MapQueryValues {
method copyFrom (line 135) | void copyFrom(HasMap model)
class HasMap (line 145) | @generatedSerializable
method copyWith (line 155) | HasMap copyWith({Map<dynamic, dynamic>? value, List<dynamic>? list})
method toString (line 175) | String toString()
method toJson (line 179) | Map<String, dynamic> toJson()
class HasMapEncoder (line 190) | class HasMapEncoder extends Converter<HasMap, Map> {
method convert (line 194) | Map convert(HasMap model)
class HasMapDecoder (line 197) | class HasMapDecoder extends Converter<Map, HasMap> {
method convert (line 201) | HasMap convert(Map map)
class HasMapSerializer (line 204) | class HasMapSerializer extends Codec<HasMap, Map> {
method fromMap (line 213) | HasMap fromMap(Map map)
method toMap (line 224) | Map<String, dynamic> toMap(HasMapEntity? model)
class HasMapFields (line 232) | abstract class HasMapFields {
FILE: packages/orm/angel_orm_mysql/test/models/leg.dart
class LegEntity (line 8) | @serializable
class FootEntity (line 17) | @serializable
FILE: packages/orm/angel_orm_mysql/test/models/leg.g.dart
class LegMigration (line 9) | class LegMigration extends Migration {
method up (line 11) | void up(Schema schema)
method down (line 21) | void down(Schema schema)
class FootMigration (line 26) | class FootMigration extends Migration {
method up (line 28) | void up(Schema schema)
method down (line 39) | void down(Schema schema)
class LegQuery (line 48) | class LegQuery extends Query<Leg, LegQueryWhere> {
method select (line 97) | LegQuery select(List<String> selectedFields)
method newWhereClause (line 108) | LegQueryWhere newWhereClause()
method parseRow (line 112) | Optional<Leg> parseRow(List row)
method deserialize (line 136) | Optional<Leg> deserialize(List row)
class LegQueryWhere (line 145) | class LegQueryWhere extends QueryWhere {
class LegQueryValues (line 166) | class LegQueryValues extends MapQueryValues {
method copyFrom (line 196) | void copyFrom(Leg model)
class FootQuery (line 203) | class FootQuery extends Query<Foot, FootQueryWhere> {
method select (line 237) | FootQuery select(List<String> selectedFields)
method newWhereClause (line 248) | FootQueryWhere newWhereClause()
method parseRow (line 252) | Optional<Foot> parseRow(List row)
method deserialize (line 271) | Optional<Foot> deserialize(List row)
class FootQueryWhere (line 276) | class FootQueryWhere extends QueryWhere {
class FootQueryValues (line 300) | class FootQueryValues extends MapQueryValues {
method copyFrom (line 336) | void copyFrom(Foot model)
class Leg (line 348) | @generatedSerializable
method copyWith (line 370) | Leg copyWith({
method toString (line 402) | String toString()
method toJson (line 406) | Map<String, dynamic> toJson()
class Foot (line 411) | @generatedSerializable
method copyWith (line 433) | Foot copyWith({
method toString (line 465) | String toString()
method toJson (line 469) | Map<String, dynamic> toJson()
class LegEncoder (line 480) | class LegEncoder extends Converter<Leg, Map> {
method convert (line 484) | Map convert(Leg model)
class LegDecoder (line 487) | class LegDecoder extends Converter<Map, Leg> {
method convert (line 491) | Leg convert(Map map)
class LegSerializer (line 494) | class LegSerializer extends Codec<Leg, Map> {
method fromMap (line 503) | Leg fromMap(Map map)
method toMap (line 523) | Map<String, dynamic> toMap(LegEntity? model)
class LegFields (line 537) | abstract class LegFields {
class FootEncoder (line 559) | class FootEncoder extends Converter<Foot, Map> {
method convert (line 563) | Map convert(Foot model)
class FootDecoder (line 566) | class FootDecoder extends Converter<Map, Foot> {
method convert (line 570) | Foot convert(Map map)
class FootSerializer (line 573) | class FootSerializer extends Codec<Foot, Map> {
method fromMap (line 582) | Foot fromMap(Map map)
method toMap (line 600) | Map<String, dynamic> toMap(FootEntity? model)
class FootFields (line 614) | abstract class FootFields {
FILE: packages/orm/angel_orm_mysql/test/models/order.dart
class EntityOrder (line 10) | @orm
class EntityCustomer (line 23) | @orm
FILE: packages/orm/angel_orm_mysql/test/models/order.g.dart
class OrderMigration (line 9) | class OrderMigration extends Migration {
method up (line 11) | void up(Schema schema)
method down (line 26) | void down(Schema schema)
class CustomerMigration (line 31) | class CustomerMigration extends Migration {
method up (line 33) | void up(Schema schema)
method down (line 42) | void down(Schema schema)
class OrderQuery (line 51) | class OrderQuery extends Query<Order, OrderQueryWhere> {
method select (line 102) | OrderQuery select(List<String> selectedFields)
method newWhereClause (line 113) | OrderQueryWhere newWhereClause()
method parseRow (line 117) | Optional<Order> parseRow(List row)
method deserialize (line 145) | Optional<Order> deserialize(List row)
class OrderQueryWhere (line 154) | class OrderQueryWhere extends QueryWhere {
class OrderQueryValues (line 192) | class OrderQueryValues extends MapQueryValues {
method copyFrom (line 240) | void copyFrom(Order model)
class CustomerQuery (line 252) | class CustomerQuery extends Query<Customer, CustomerQueryWhere> {
method select (line 286) | CustomerQuery select(List<String> selectedFields)
method newWhereClause (line 297) | CustomerQueryWhere newWhereClause()
method parseRow (line 301) | Optional<Customer> parseRow(List row)
method deserialize (line 318) | Optional<Customer> deserialize(List row)
class CustomerQueryWhere (line 323) | class CustomerQueryWhere extends QueryWhere {
class CustomerQueryValues (line 341) | class CustomerQueryValues extends MapQueryValues {
method copyFrom (line 365) | void copyFrom(Customer model)
class Order (line 375) | @generatedSerializable
method copyWith (line 411) | Order copyWith({
method toString (line 457) | String toString()
method toJson (line 461) | Map<String, dynamic> toJson()
class Customer (line 466) | @generatedSerializable
method copyWith (line 482) | Customer copyWith({String? id, DateTime? createdAt, DateTime? updatedAt})
method toString (line 504) | String toString()
method toJson (line 508) | Map<String, dynamic> toJson()
class OrderEncoder (line 519) | class OrderEncoder extends Converter<Order, Map> {
method convert (line 523) | Map convert(Order model)
class OrderDecoder (line 526) | class OrderDecoder extends Converter<Map, Order> {
method convert (line 530) | Order convert(Map map)
class OrderSerializer (line 533) | class OrderSerializer extends Codec<Order, Map> {
method fromMap (line 542) | Order fromMap(Map map)
method toMap (line 568) | Map<String, dynamic> toMap(EntityOrder? model)
class OrderFields (line 584) | abstract class OrderFields {
class CustomerEncoder (line 612) | class CustomerEncoder extends Converter<Customer, Map> {
method convert (line 616) | Map convert(Customer model)
class CustomerDecoder (line 619) | class CustomerDecoder extends Converter<Map, Customer> {
method convert (line 623) | Customer convert(Map map)
class CustomerSerializer (line 626) | class CustomerSerializer extends Codec<Customer, Map> {
method fromMap (line 635) | Customer fromMap(Map map)
method toMap (line 651) | Map<String, dynamic> toMap(EntityCustomer? model)
class CustomerFields (line 663) | abstract class CustomerFields {
FILE: packages/orm/angel_orm_mysql/test/models/person.dart
class PersonEntity (line 9) | @serializable
class PersonWithLastOrderEntity (line 16) | @serializable
FILE: packages/orm/angel_orm_mysql/test/models/person.g.dart
class PersonMigration (line 9) | class PersonMigration extends Migration {
method up (line 11) | void up(Schema schema)
method down (line 22) | void down(Schema schema)
class PersonQuery (line 31) | class PersonQuery extends Query<Person, PersonQueryWhere> {
method select (line 65) | PersonQuery select(List<String> selectedFields)
method newWhereClause (line 76) | PersonQueryWhere newWhereClause()
method parseRow (line 80) | Optional<Person> parseRow(List row)
method deserialize (line 99) | Optional<Person> deserialize(List row)
class PersonQueryWhere (line 104) | class PersonQueryWhere extends QueryWhere {
class PersonQueryValues (line 128) | class PersonQueryValues extends MapQueryValues {
method copyFrom (line 164) | void copyFrom(Person model)
class PersonWithLastOrderQuery (line 172) | class PersonWithLastOrderQuery
method select (line 210) | PersonWithLastOrderQuery select(List<String> selectedFields)
method newWhereClause (line 221) | PersonWithLastOrderQueryWhere newWhereClause()
method parseRow (line 225) | Optional<PersonWithLastOrder> parseRow(List row)
method deserialize (line 242) | Optional<PersonWithLastOrder> deserialize(List row)
class PersonWithLastOrderQueryWhere (line 247) | class PersonWithLastOrderQueryWhere extends QueryWhere {
class PersonWithLastOrderQueryValues (line 259) | class PersonWithLastOrderQueryValues extends MapQueryValues {
method copyFrom (line 271) | void copyFrom(PersonWithLastOrder model)
class Person (line 280) | @generatedSerializable
method copyWith (line 302) | Person copyWith({
method toString (line 334) | String toString()
method toJson (line 338) | Map<String, dynamic> toJson()
class PersonWithLastOrder (line 343) | @generatedSerializable
method copyWith (line 356) | PersonWithLastOrder copyWith({
method toString (line 382) | String toString()
method toJson (line 386) | Map<String, dynamic> toJson()
class PersonEncoder (line 397) | class PersonEncoder extends Converter<Person, Map> {
method convert (line 401) | Map convert(Person model)
class PersonDecoder (line 404) | class PersonDecoder extends Converter<Map, Person> {
method convert (line 408) | Person convert(Map map)
class PersonSerializer (line 411) | class PersonSerializer extends Codec<Person, Map> {
method fromMap (line 420) | Person fromMap(Map map)
method toMap (line 438) | Map<String, dynamic> toMap(PersonEntity? model)
class PersonFields (line 452) | abstract class PersonFields {
class PersonWithLastOrderEncoder (line 475) | class PersonWithLastOrderEncoder extends Converter<PersonWithLastOrder, ...
method convert (line 479) | Map convert(PersonWithLastOrder model)
class PersonWithLastOrderDecoder (line 483) | class PersonWithLastOrderDecoder extends Converter<Map, PersonWithLastOr...
method convert (line 487) | PersonWithLastOrder convert(Map map)
class PersonWithLastOrderSerializer (line 491) | class PersonWithLastOrderSerializer extends Codec<PersonWithLastOrder, M...
method fromMap (line 500) | PersonWithLastOrder fromMap(Map map)
method toMap (line 508) | Map<String, dynamic> toMap(PersonWithLastOrderEntity? model)
class PersonWithLastOrderFields (line 520) | abstract class PersonWithLastOrderFields {
FILE: packages/orm/angel_orm_mysql/test/models/person_order.dart
class PersonOrderEntity (line 10) | @orm
class OrderWithPersonInfoEntity (line 22) | @serializable
FILE: packages/orm/angel_orm_mysql/test/models/person_order.g.dart
class PersonOrderMigration (line 9) | class PersonOrderMigration extends Migration {
method up (line 11) | void up(Schema schema)
method down (line 24) | void down(Schema schema)
class PersonOrderQuery (line 33) | class PersonOrderQuery extends Query<PersonOrder, PersonOrderQueryWhere> {
method select (line 75) | PersonOrderQuery select(List<String> selectedFields)
method newWhereClause (line 86) | PersonOrderQueryWhere newWhereClause()
method parseRow (line 90) | Optional<PersonOrder> parseRow(List row)
method deserialize (line 111) | Optional<PersonOrder> deserialize(List row)
class PersonOrderQueryWhere (line 116) | class PersonOrderQueryWhere extends QueryWhere {
class PersonOrderQueryValues (line 146) | class PersonOrderQueryValues extends MapQueryValues {
method copyFrom (line 194) | void copyFrom(PersonOrder model)
class OrderWithPersonInfoQuery (line 204) | class OrderWithPersonInfoQuery
method select (line 251) | OrderWithPersonInfoQuery select(List<String> selectedFields)
method newWhereClause (line 262) | OrderWithPersonInfoQueryWhere newWhereClause()
method parseRow (line 266) | Optional<OrderWithPersonInfo> parseRow(List row)
method deserialize (line 288) | Optional<OrderWithPersonInfo> deserialize(List row)
class OrderWithPersonInfoQueryWhere (line 293) | class OrderWithPersonInfoQueryWhere extends QueryWhere {
class OrderWithPersonInfoQueryValues (line 320) | class OrderWithPersonInfoQueryValues extends MapQueryValues {
method copyFrom (line 362) | void copyFrom(OrderWithPersonInfo model)
class PersonOrder (line 375) | @generatedSerializable
method copyWith (line 411) | PersonOrder copyWith({
method toString (line 457) | String toString()
method toJson (line 461) | Map<String, dynamic> toJson()
class OrderWithPersonInfo (line 466) | @generatedSerializable
method copyWith (line 506) | OrderWithPersonInfo copyWith({
method toString (line 556) | String toString()
method toJson (line 560) | Map<String, dynamic> toJson()
class PersonOrderEncoder (line 571) | class PersonOrderEncoder extends Converter<PersonOrder, Map> {
method convert (line 575) | Map convert(PersonOrder model)
class PersonOrderDecoder (line 578) | class PersonOrderDecoder extends Converter<Map, PersonOrder> {
method convert (line 582) | PersonOrder convert(Map map)
class PersonOrderSerializer (line 585) | class PersonOrderSerializer extends Codec<PersonOrder, Map> {
method fromMap (line 594) | PersonOrder fromMap(Map map)
method toMap (line 614) | Map<String, dynamic> toMap(PersonOrderEntity? model)
class PersonOrderFields (line 630) | abstract class PersonOrderFields {
class OrderWithPersonInfoEncoder (line 659) | class OrderWithPersonInfoEncoder extends Converter<OrderWithPersonInfo, ...
method convert (line 663) | Map convert(OrderWithPersonInfo model)
class OrderWithPersonInfoDecoder (line 667) | class OrderWithPersonInfoDecoder extends Converter<Map, OrderWithPersonI...
method convert (line 671) | OrderWithPersonInfo convert(Map map)
class OrderWithPersonInfoSerializer (line 675) | class OrderWithPersonInfoSerializer extends Codec<OrderWithPersonInfo, M...
method fromMap (line 684) | OrderWithPersonInfo fromMap(Map map)
method toMap (line 705) | Map<String, dynamic> toMap(OrderWithPersonInfoEntity? model)
class OrderWithPersonInfoFields (line 722) | abstract class OrderWithPersonInfoFields {
FILE: packages/orm/angel_orm_mysql/test/models/quotation.dart
class QuotationEntity (line 8) | @serializable
FILE: packages/orm/angel_orm_mysql/test/models/quotation.g.dart
class QuotationMigration (line 9) | class QuotationMigration extends Migration {
method up (line 11) | void up(Schema schema)
method down (line 20) | void down(Schema schema)
class QuotationQuery (line 29) | class QuotationQuery extends Query<Quotation, QuotationQueryWhere> {
method select (line 63) | QuotationQuery select(List<String> selectedFields)
method newWhereClause (line 74) | QuotationQueryWhere newWhereClause()
method parseRow (line 78) | Optional<Quotation> parseRow(List row)
method deserialize (line 91) | Optional<Quotation> deserialize(List row)
class QuotationQueryWhere (line 96) | class QuotationQueryWhere extends QueryWhere {
class QuotationQueryValues (line 114) | class QuotationQueryValues extends MapQueryValues {
method copyFrom (line 138) | void copyFrom(Quotation model)
class Quotation (line 149) | @generatedSerializable
method copyWith (line 162) | Quotation copyWith({String? id, String? name, double? price})
method toString (line 184) | String toString()
method toJson (line 188) | Map<String, dynamic> toJson()
class QuotationEncoder (line 199) | class QuotationEncoder extends Converter<Quotation, Map> {
method convert (line 203) | Map convert(Quotation model)
class QuotationDecoder (line 206) | class QuotationDecoder extends Converter<Map, Quotation> {
method convert (line 210) | Quotation convert(Map map)
class QuotationSerializer (line 213) | class QuotationSerializer extends Codec<Quotation, Map> {
method fromMap (line 222) | Quotation fromMap(Map map)
method toMap (line 230) | Map<String, dynamic> toMap(QuotationEntity? model)
class QuotationFields (line 238) | abstract class QuotationFields {
FILE: packages/orm/angel_orm_mysql/test/models/todo.dart
class UserEntity (line 8) | @serializable
class UserAddressEntity (line 26) | @Orm(tableName: 'user_addr', generateMigrations: true)
class UserTodoEntity (line 43) | @Orm(tableName: 'user_todo', generateMigrations: true)
class TodoValueEntity (line 66) | @Orm(tableName: 'todo_value', generateMigrations: true)
class TodoNoteEntity (line 81) | @Orm(tableName: 'todo_note', generateMigrations: true)
FILE: packages/orm/angel_orm_mysql/test/models/todo.g.dart
class UserMigration (line 9) | class UserMigration extends Migration {
method up (line 11) | void up(Schema schema)
method down (line 19) | void down(Schema schema)
class UserAddressMigration (line 24) | class UserAddressMigration extends Migration {
method up (line 26) | void up(Schema schema)
method down (line 37) | void down(Schema schema)
class UserTodoMigration (line 42) | class UserTodoMigration extends Migration {
method up (line 44) | void up(Schema schema)
method down (line 55) | void down(Schema schema)
class TodoValueMigration (line 60) | class TodoValueMigration extends Migration {
method up (line 62) | void up(Schema schema)
method down (line 72) | void down(Schema schema)
class TodoNoteMigration (line 77) | class TodoNoteMigration extends Migration {
method up (line 79) | void up(Schema schema)
method down (line 89) | void down(Schema schema)
class UserQuery (line 98) | class UserQuery extends Query<User, UserQueryWhere> {
method select (line 150) | UserQuery select(List<String> selectedFields)
method newWhereClause (line 161) | UserQueryWhere newWhereClause()
method parseRow (line 165) | Optional<User> parseRow(List row)
method deserialize (line 189) | Optional<User> deserialize(List row)
method get (line 202) | Future<List<User>> get(QueryExecutor executor)
method update (line 223) | Future<List<User>> update(QueryExecutor executor)
method delete (line 244) | Future<List<User>> delete(QueryExecutor executor)
class UserQueryWhere (line 265) | class UserQueryWhere extends QueryWhere {
class UserQueryValues (line 280) | class UserQueryValues extends MapQueryValues {
method copyFrom (line 298) | void copyFrom(User model)
class UserAddressQuery (line 304) | class UserAddressQuery extends Query<UserAddress, UserAddressQueryWhere> {
method select (line 338) | UserAddressQuery select(List<String> selectedFields)
method newWhereClause (line 349) | UserAddressQueryWhere newWhereClause()
method parseRow (line 353) | Optional<UserAddress> parseRow(List row)
method deserialize (line 366) | Optional<UserAddress> deserialize(List row)
class UserAddressQueryWhere (line 371) | class UserAddressQueryWhere extends QueryWhere {
class UserAddressQueryValues (line 389) | class UserAddressQueryValues extends MapQueryValues {
method copyFrom (line 413) | void copyFrom(UserAddress model)
class UserTodoQuery (line 420) | class UserTodoQuery extends Query<UserTodo, UserTodoQueryWhere> {
method select (line 472) | UserTodoQuery select(List<String> selectedFields)
method newWhereClause (line 483) | UserTodoQueryWhere newWhereClause()
method parseRow (line 487) | Optional<UserTodo> parseRow(List row)
method deserialize (line 512) | Optional<UserTodo> deserialize(List row)
method get (line 525) | Future<List<UserTodo>> get(QueryExecutor executor)
method update (line 547) | Future<List<UserTodo>> update(QueryExecutor executor)
method delete (line 569) | Future<List<UserTodo>> delete(QueryExecutor executor)
class UserTodoQueryWhere (line 591) | class UserTodoQueryWhere extends QueryWhere {
class UserTodoQueryValues (line 609) | class UserTodoQueryValues extends MapQueryValues {
method copyFrom (line 633) | void copyFrom(UserTodo model)
class TodoValueQuery (line 640) | class TodoValueQuery extends Query<TodoValue, TodoValueQueryWhere> {
method select (line 674) | TodoValueQuery select(List<String> selectedFields)
method newWhereClause (line 685) | TodoValueQueryWhere newWhereClause()
method parseRow (line 689) | Optional<TodoValue> parseRow(List row)
method deserialize (line 703) | Optional<TodoValue> deserialize(List row)
class TodoValueQueryWhere (line 708) | class TodoValueQueryWhere extends QueryWhere {
class TodoValueQueryValues (line 729) | class TodoValueQueryValues extends MapQueryValues {
method copyFrom (line 759) | void copyFrom(TodoValue model)
class TodoNoteQuery (line 767) | class TodoNoteQuery extends Query<TodoNote, TodoNoteQueryWhere> {
method select (line 801) | TodoNoteQuery select(List<String> selectedFields)
method newWhereClause (line 812) | TodoNoteQueryWhere newWhereClause()
method parseRow (line 816) | Optional<TodoNote> parseRow(List row)
method deserialize (line 830) | Optional<TodoNote> deserialize(List row)
class TodoNoteQueryWhere (line 835) | class TodoNoteQueryWhere extends QueryWhere {
class TodoNoteQueryValues (line 856) | class TodoNoteQueryValues extends MapQueryValues {
method copyFrom (line 886) | void copyFrom(TodoNote model)
class User (line 898) | @generatedSerializable
method copyWith (line 919) | User copyWith({
method toString (line 952) | String toString()
method toJson (line 956) | Map<String, dynamic> toJson()
class UserAddress (line 961) | @generatedSerializable
method copyWith (line 974) | UserAddress copyWith({int? id, int? userId, String? address})
method toString (line 996) | String toString()
method toJson (line 1000) | Map<String, dynamic> toJson()
class UserTodo (line 1005) | @generatedSerializable
method copyWith (line 1030) | UserTodo copyWith({
method toString (line 1066) | String toString()
method toJson (line 1070) | Map<String, dynamic> toJson()
class TodoValue (line 1075) | @generatedSerializable
method copyWith (line 1096) | TodoValue copyWith({
method toString (line 1125) | String toString()
method toJson (line 1129) | Map<String, dynamic> toJson()
class TodoNote (line 1134) | @generatedSerializable
method copyWith (line 1155) | TodoNote copyWith({int? id, String? note, int? todoId, String? descrip...
method toString (line 1179) | String toString()
method toJson (line 1183) | Map<String, dynamic> toJson()
class UserEncoder (line 1194) | class UserEncoder extends Converter<User, Map> {
method convert (line 1198) | Map convert(User model)
class UserDecoder (line 1201) | class UserDecoder extends Converter<Map, User> {
method convert (line 1205) | User convert(Map map)
class UserSerializer (line 1208) | class UserSerializer extends Codec<User, Map> {
method fromMap (line 1217) | User fromMap(Map map)
method toMap (line 1238) | Map<String, dynamic> toMap(UserEntity? model)
class UserFields (line 1253) | abstract class UserFields {
class UserAddressEncoder (line 1267) | class UserAddressEncoder extends Converter<UserAddress, Map> {
method convert (line 1271) | Map convert(UserAddress model)
class UserAddressDecoder (line 1274) | class UserAddressDecoder extends Converter<Map, UserAddress> {
method convert (line 1278) | UserAddress convert(Map map)
class UserAddressSerializer (line 1281) | class UserAddressSerializer extends Codec<UserAddress, Map> {
method fromMap (line 1290) | UserAddress fromMap(Map map)
method toMap (line 1298) | Map<String, dynamic> toMap(UserAddressEntity? model)
class UserAddressFields (line 1306) | abstract class UserAddressFields {
class UserTodoEncoder (line 1318) | class UserTodoEncoder extends Converter<UserTodo, Map> {
method convert (line 1322) | Map convert(UserTodo model)
class UserTodoDecoder (line 1325) | class UserTodoDecoder extends Converter<Map, UserTodo> {
method convert (line 1329) | UserTodo convert(Map map)
class UserTodoSerializer (line 1332) | class UserTodoSerializer extends Codec<UserTodo, Map> {
method fromMap (line 1341) | UserTodo fromMap(Map map)
method toMap (line 1363) | Map<String, dynamic> toMap(UserTodoEntity? model)
class UserTodoFields (line 1381) | abstract class UserTodoFields {
class TodoValueEncoder (line 1403) | class TodoValueEncoder extends Converter<TodoValue, Map> {
method convert (line 1407) | Map convert(TodoValue model)
class TodoValueDecoder (line 1410) | class TodoValueDecoder extends Converter<Map, TodoValue> {
method convert (line 1414) | TodoValue convert(Map map)
class TodoValueSerializer (line 1417) | class TodoValueSerializer extends Codec<TodoValue, Map> {
method fromMap (line 1426) | TodoValue fromMap(Map map)
method toMap (line 1435) | Map<String, dynamic> toMap(TodoValueEntity? model)
class TodoValueFields (line 1448) | abstract class TodoValueFields {
class TodoNoteEncoder (line 1467) | class TodoNoteEncoder extends Converter<TodoNote, Map> {
method convert (line 1471) | Map convert(TodoNote model)
class TodoNoteDecoder (line 1474) | class TodoNoteDecoder extends Converter<Map, TodoNote> {
method convert (line 1478) | TodoNote convert(Map map)
class TodoNoteSerializer (line 1481) | class TodoNoteSerializer extends Codec<TodoNote, Map> {
method fromMap (line 1490) | TodoNote fromMap(Map map)
method toMap (line 1499) | Map<String, dynamic> toMap(TodoNoteEntity? model)
class TodoNoteFields (line 1512) | abstract class TodoNoteFields {
FILE: packages/orm/angel_orm_mysql/test/models/tree.dart
class TreeEntity (line 8) | @serializable
class FruitEntity (line 18) | @serializable
FILE: packages/orm/angel_orm_mysql/test/models/tree.g.dart
class TreeMigration (line 9) | class TreeMigration extends Migration {
method up (line 11) | void up(Schema schema)
method down (line 21) | void down(Schema schema)
class FruitMigration (line 26) | class FruitMigration extends Migration {
method up (line 28) | void up(Schema schema)
method down (line 39) | void down(Schema schema)
class TreeQuery (line 48) | class TreeQuery extends Query<Tree, TreeQueryWhere> {
method select (line 97) | TreeQuery select(List<String> selectedFields)
method newWhereClause (line 108) | TreeQueryWhere newWhereClause()
method parseRow (line 112) | Optional<Tree> parseRow(List row)
method deserialize (line 136) | Optional<Tree> deserialize(List row)
method get (line 145) | Future<List<Tree>> get(QueryExecutor executor)
method update (line 164) | Future<List<Tree>> update(QueryExecutor executor)
method delete (line 183) | Future<List<Tree>> delete(QueryExecutor executor)
class TreeQueryWhere (line 202) | class TreeQueryWhere extends QueryWhere {
class TreeQueryValues (line 223) | class TreeQueryValues extends MapQueryValues {
method copyFrom (line 253) | void copyFrom(Tree model)
class FruitQuery (line 260) | class FruitQuery extends Query<Fruit, FruitQueryWhere> {
method select (line 300) | FruitQuery select(List<String> selectedFields)
method newWhereClause (line 311) | FruitQueryWhere newWhereClause()
method parseRow (line 315) | Optional<Fruit> parseRow(List row)
method deserialize (line 334) | Optional<Fruit> deserialize(List row)
class FruitQueryWhere (line 339) | class FruitQueryWhere extends QueryWhere {
class FruitQueryValues (line 363) | class FruitQueryValues extends MapQueryValues {
method copyFrom (line 399) | void copyFrom(Fruit model)
class Tree (line 411) | @generatedSerializable
method copyWith (line 439) | Tree copyWith({
method toString (line 473) | String toString()
method toJson (line 477) | Map<String, dynamic> toJson()
class Fruit (line 482) | @generatedSerializable
method copyWith (line 510) | Fruit copyWith({
method toString (line 542) | String toString()
method toJson (line 546) | Map<String, dynamic> toJson()
class TreeEncoder (line 557) | class TreeEncoder extends Converter<Tree, Map> {
method convert (line 561) | Map convert(Tree model)
class TreeDecoder (line 564) | class TreeDecoder extends Converter<Map, Tree> {
method convert (line 568) | Tree convert(Map map)
class TreeSerializer (line 571) | class TreeSerializer extends Codec<Tree, Map> {
method fromMap (line 580) | Tree fromMap(Map map)
method toMap (line 604) | Map<String, dynamic> toMap(TreeEntity? model)
class TreeFields (line 618) | abstract class TreeFields {
class FruitEncoder (line 640) | class FruitEncoder extends Converter<Fruit, Map> {
method convert (line 644) | Map convert(Fruit model)
class FruitDecoder (line 647) | class FruitDecoder extends Converter<Map, Fruit> {
method convert (line 651) | Fruit convert(Map map)
class FruitSerializer (line 654) | class FruitSerializer extends Codec<Fruit, Map> {
method fromMap (line 663) | Fruit fromMap(Map map)
method toMap (line 681) | Map<String, dynamic> toMap(FruitEntity? model)
class FruitFields (line 695) | abstract class FruitFields {
FILE: packages/orm/angel_orm_mysql/test/models/unorthodox.dart
class UnorthodoxEntity (line 8) | @serializable
class WeirdJoinEntity (line 15) | @serializable
class SongEntity (line 34) | @serializable
class NumbaEntity (line 42) | @serializable
method compareTo (line 52) | int compareTo(NumbaEntity other)
class FooEntity (line 55) | @serializable
class FooPivotEntity (line 65) | @serializable
FILE: packages/orm/angel_orm_mysql/test/models/unorthodox.g.dart
class UnorthodoxMigration (line 9) | class UnorthodoxMigration extends Migration {
method up (line 11) | void up(Schema schema)
method down (line 18) | void down(Schema schema)
class WeirdJoinMigration (line 23) | class WeirdJoinMigration extends Migration {
method up (line 25) | void up(Schema schema)
method down (line 35) | void down(Schema schema)
class SongMigration (line 40) | class SongMigration extends Migration {
method up (line 42) | void up(Schema schema)
method down (line 53) | void down(Schema schema)
class NumbaMigration (line 58) | class NumbaMigration extends Migration {
method up (line 60) | void up(Schema schema)
method down (line 68) | void down(Schema schema)
class FooMigration (line 73) | class FooMigration extends Migration {
method up (line 75) | void up(Schema schema)
method down (line 82) | void down(Schema schema)
class FooPivotMigration (line 87) | class FooPivotMigration extends Migration {
method up (line 89) | void up(Schema schema)
method down (line 99) | void down(Schema schema)
class UnorthodoxQuery (line 108) | class UnorthodoxQuery extends Query<Unorthodox, UnorthodoxQueryWhere> {
method select (line 142) | UnorthodoxQuery select(List<String> selectedFields)
method newWhereClause (line 153) | UnorthodoxQueryWhere newWhereClause()
method parseRow (line 157) | Optional<Unorthodox> parseRow(List row)
method deserialize (line 168) | Optional<Unorthodox> deserialize(List row)
class UnorthodoxQueryWhere (line 173) | class UnorthodoxQueryWhere extends QueryWhere {
class UnorthodoxQueryValues (line 185) | class UnorthodoxQueryValues extends MapQueryValues {
method copyFrom (line 197) | void copyFrom(Unorthodox model)
class WeirdJoinQuery (line 202) | class WeirdJoinQuery extends Query<WeirdJoin, WeirdJoinQueryWhere> {
method select (line 276) | WeirdJoinQuery select(List<String> selectedFields)
method newWhereClause (line 287) | WeirdJoinQueryWhere newWhereClause()
method parseRow (line 291) | Optional<WeirdJoin> parseRow(List row)
method deserialize (line 324) | Optional<WeirdJoin> deserialize(List row)
method canCompile (line 341) | bool canCompile(trampoline)
method get (line 347) | Future<List<WeirdJoin>> get(QueryExecutor executor)
method update (line 367) | Future<List<WeirdJoin>> update(QueryExecutor executor)
method delete (line 387) | Future<List<WeirdJoin>> delete(QueryExecutor executor)
class WeirdJoinQueryWhere (line 407) | class WeirdJoinQueryWhere extends QueryWhere {
class WeirdJoinQueryValues (line 422) | class WeirdJoinQueryValues extends MapQueryValues {
method copyFrom (line 440) | void copyFrom(WeirdJoin model)
class SongQuery (line 448) | class SongQuery extends Query<Song, SongQueryWhere> {
method select (line 488) | SongQuery select(List<String> selectedFields)
method newWhereClause (line 499) | SongQueryWhere newWhereClause()
method parseRow (line 503) | Optional<Song> parseRow(List row)
method deserialize (line 522) | Optional<Song> deserialize(List row)
class SongQueryWhere (line 527) | class SongQueryWhere extends QueryWhere {
class SongQueryValues (line 551) | class SongQueryValues extends MapQueryValues {
method copyFrom (line 587) | void copyFrom(Song model)
class NumbaQuery (line 595) | class NumbaQuery extends Query<Numba, NumbaQueryWhere> {
method select (line 629) | NumbaQuery select(List<String> selectedFields)
method newWhereClause (line 640) | NumbaQueryWhere newWhereClause()
method parseRow (line 644) | Optional<Numba> parseRow(List row)
method deserialize (line 656) | Optional<Numba> deserialize(List row)
class NumbaQueryWhere (line 661) | class NumbaQueryWhere extends QueryWhere {
class NumbaQueryValues (line 676) | class NumbaQueryValues extends MapQueryValues {
method copyFrom (line 694) | void copyFrom(Numba model)
class FooQuery (line 700) | class FooQuery extends Query<Foo, FooQueryWhere> {
method select (line 741) | FooQuery select(List<String> selectedFields)
method newWhereClause (line 752) | FooQueryWhere newWhereClause()
method parseRow (line 756) | Optional<Foo> parseRow(List row)
method deserialize (line 771) | Optional<Foo> deserialize(List row)
method canCompile (line 776) | bool canCompile(trampoline)
method get (line 782) | Future<List<Foo>> get(QueryExecutor executor)
method update (line 802) | Future<List<Foo>> update(QueryExecutor executor)
method delete (line 822) | Future<List<Foo>> delete(QueryExecutor executor)
class FooQueryWhere (line 842) | class FooQueryWhere extends QueryWhere {
class FooQueryValues (line 854) | class FooQueryValues extends MapQueryValues {
method copyFrom (line 866) | void copyFrom(Foo model)
class FooPivotQuery (line 871) | class FooPivotQuery extends Query<FooPivot, FooPivotQueryWhere> {
method select (line 923) | FooPivotQuery select(List<String> selectedFields)
method newWhereClause (line 934) | FooPivotQueryWhere newWhereClause()
method parseRow (line 938) | Optional<FooPivot> parseRow(List row)
method deserialize (line 959) | Optional<FooPivot> deserialize(List row)
class FooPivotQueryWhere (line 972) | class FooPivotQueryWhere extends QueryWhere {
class FooPivotQueryValues (line 987) | class FooPivotQueryValues extends MapQueryValues {
method copyFrom (line 1005) | void copyFrom(FooPivot model)
class Unorthodox (line 1019) | @generatedSerializable
method copyWith (line 1026) | Unorthodox copyWith({String? name})
method toString (line 1041) | String toString()
method toJson (line 1045) | Map<String, dynamic> toJson()
class WeirdJoin (line 1050) | @generatedSerializable
method copyWith (line 1075) | WeirdJoin copyWith({
method toString (line 1111) | String toString()
method toJson (line 1115) | Map<String, dynamic> toJson()
class Song (line 1120) | @generatedSerializable
method copyWith (line 1142) | Song copyWith({
method toString (line 1174) | String toString()
method toJson (line 1178) | Map<String, dynamic> toJson()
class Numba (line 1183) | @generatedSerializable
method copyWith (line 1193) | Numba copyWith({int? i, int? parent})
method toString (line 1208) | String toString()
method toJson (line 1212) | Map<String, dynamic> toJson()
class Foo (line 1217) | @generatedSerializable
method copyWith (line 1227) | Foo copyWith({String? bar, List<WeirdJoinEntity>? weirdJoins})
method toString (line 1246) | String toString()
method toJson (line 1250) | Map<String, dynamic> toJson()
class FooPivot (line 1255) | @generatedSerializable
method copyWith (line 1265) | FooPivot copyWith({WeirdJoinEntity? weirdJoin, FooEntity? foo})
method toString (line 1285) | String toString()
method toJson (line 1289) | Map<String, dynamic> toJson()
class UnorthodoxEncoder (line 1300) | class UnorthodoxEncoder extends Converter<Unorthodox, Map> {
method convert (line 1304) | Map convert(Unorthodox model)
class UnorthodoxDecoder (line 1307) | class UnorthodoxDecoder extends Converter<Map, Unorthodox> {
method convert (line 1311) | Unorthodox convert(Map map)
class UnorthodoxSerializer (line 1314) | class UnorthodoxSerializer extends Codec<Unorthodox, Map> {
method fromMap (line 1323) | Unorthodox fromMap(Map map)
method toMap (line 1327) | Map<String, dynamic> toMap(UnorthodoxEntity? model)
class UnorthodoxFields (line 1335) | abstract class UnorthodoxFields {
class WeirdJoinEncoder (line 1343) | class WeirdJoinEncoder extends Converter<WeirdJoin, Map> {
method convert (line 1347) | Map convert(WeirdJoin model)
class WeirdJoinDecoder (line 1350) | class WeirdJoinDecoder extends Converter<Map, WeirdJoin> {
method convert (line 1354) | WeirdJoin convert(Map map)
class WeirdJoinSerializer (line 1357) | class WeirdJoinSerializer extends Codec<WeirdJoin, Map> {
method fromMap (line 1366) | WeirdJoin fromMap(Map map)
method toMap (line 1392) | Map<String, dynamic> toMap(WeirdJoinEntity? model)
class WeirdJoinFields (line 1406) | abstract class WeirdJoinFields {
class SongEncoder (line 1428) | class SongEncoder extends Converter<Song, Map> {
method convert (line 1432) | Map convert(Song model)
class SongDecoder (line 1435) | class SongDecoder extends Converter<Map, Song> {
method convert (line 1439) | Song convert(Map map)
class SongSerializer (line 1442) | class SongSerializer extends Codec<Song, Map> {
method fromMap (line 1451) | Song fromMap(Map map)
method toMap (line 1469) | Map<String, dynamic> toMap(SongEntity? model)
class SongFields (line 1483) | abstract class SongFields {
class NumbaEncoder (line 1505) | class NumbaEncoder extends Converter<Numba, Map> {
method convert (line 1509) | Map convert(Numba model)
class NumbaDecoder (line 1512) | class NumbaDecoder extends Converter<Map, Numba> {
method convert (line 1516) | Numba convert(Map map)
class NumbaSerializer (line 1519) | class NumbaSerializer extends Codec<Numba, Map> {
method fromMap (line 1528) | Numba fromMap(Map map)
method toMap (line 1532) | Map<String, dynamic> toMap(NumbaEntity? model)
class NumbaFields (line 1540) | abstract class NumbaFields {
class FooEncoder (line 1550) | class FooEncoder extends Converter<Foo, Map> {
method convert (line 1554) | Map convert(Foo model)
class FooDecoder (line 1557) | class FooDecoder extends Converter<Map, Foo> {
method convert (line 1561) | Foo convert(Map map)
class FooSerializer (line 1564) | class FooSerializer extends Codec<Foo, Map> {
method fromMap (line 1573) | Foo fromMap(Map map)
method toMap (line 1586) | Map<String, dynamic> toMap(FooEntity? model)
class FooFields (line 1599) | abstract class FooFields {
class FooPivotEncoder (line 1609) | class FooPivotEncoder extends Converter<FooPivot, Map> {
method convert (line 1613) | Map convert(FooPivot model)
class FooPivotDecoder (line 1616) | class FooPivotDecoder extends Converter<Map, FooPivot> {
method convert (line 1620) | FooPivot convert(Map map)
class FooPivotSerializer (line 1623) | class FooPivotSerializer extends Codec<FooPivot, Map> {
method fromMap (line 1632) | FooPivot fromMap(Map map)
method toMap (line 1641) | Map<String, dynamic> toMap(FooPivotEntity? model)
class FooPivotFields (line 1652) | abstract class FooPivotFields {
FILE: packages/orm/angel_orm_mysql/test/models/user.dart
class UserEntity (line 8) | @serializable
class RoleUserEntity (line 19) | @serializable
class RoleEntity (line 29) | @serializable
FILE: packages/orm/angel_orm_mysql/test/models/user.g.dart
class UserMigration (line 9) | class UserMigration extends Migration {
method up (line 11) | void up(Schema schema)
method down (line 23) | void down(Schema schema)
class RoleUserMigration (line 28) | class RoleUserMigration extends Migration {
method up (line 30) | void up(Schema schema)
method down (line 38) | void down(Schema schema)
class RoleMigration (line 43) | class RoleMigration extends Migration {
method up (line 45) | void up(Schema schema)
method down (line 55) | void down(Schema schema)
class UserQuery (line 64) | class UserQuery extends Query<User, UserQueryWhere> {
method select (line 112) | UserQuery select(List<String> selectedFields)
method newWhereClause (line 123) | UserQueryWhere newWhereClause()
method parseRow (line 127) | Optional<User> parseRow(List row)
method deserialize (line 153) | Optional<User> deserialize(List row)
method canCompile (line 158) | bool canCompile(trampoline)
method get (line 164) | Future<List<User>> get(QueryExecutor executor)
method update (line 183) | Future<List<User>> update(QueryExecutor executor)
method delete (line 202) | Future<List<User>> delete(QueryExecutor executor)
class UserQueryWhere (line 221) | class UserQueryWhere extends QueryWhere {
class UserQueryValues (line 248) | class UserQueryValues extends MapQueryValues {
method copyFrom (line 290) | void copyFrom(User model)
class RoleUserQuery (line 299) | class RoleUserQuery extends Query<RoleUser, RoleUserQueryWhere> {
method select (line 358) | RoleUserQuery select(List<String> selectedFields)
method newWhereClause (line 369) | RoleUserQueryWhere newWhereClause()
method parseRow (line 373) | Optional<RoleUser> parseRow(List row)
method deserialize (line 394) | Optional<RoleUser> deserialize(List row)
class RoleUserQueryWhere (line 407) | class RoleUserQueryWhere extends QueryWhere {
class RoleUserQueryValues (line 422) | class RoleUserQueryValues extends MapQueryValues {
method copyFrom (line 440) | void copyFrom(RoleUser model)
class RoleQuery (line 450) | class RoleQuery extends Query<Role, RoleQueryWhere> {
method select (line 498) | RoleQuery select(List<String> selectedFields)
method newWhereClause (line 509) | RoleQueryWhere newWhereClause()
method parseRow (line 513) | Optional<Role> parseRow(List row)
method deserialize (line 537) | Optional<Role> deserialize(List row)
method canCompile (line 542) | bool canCompile(trampoline)
method get (line 548) | Future<List<Role>> get(QueryExecutor executor)
method update (line 567) | Future<List<Role>> update(QueryExecutor executor)
method delete (line 586) | Future<List<Role>> delete(QueryExecutor executor)
class RoleQueryWhere (line 605) | class RoleQueryWhere extends QueryWhere {
class RoleQueryValues (line 626) | class RoleQueryValues extends MapQueryValues {
method copyFrom (line 656) | void copyFrom(Role model)
class User (line 667) | @generatedSerializable
method copyWith (line 703) | User copyWith({
method toString (line 751) | String toString()
method toJson (line 755) | Map<String, dynamic> toJson()
class RoleUser (line 760) | @generatedSerializable
method copyWith (line 770) | RoleUser copyWith({RoleEntity? role, UserEntity? user})
method toString (line 785) | String toString()
method toJson (line 789) | Map<String, dynamic> toJson()
class Role (line 794) | @generatedSerializable
method copyWith (line 822) | Role copyWith({
method toString (line 856) | String toString()
method toJson (line 860) | Map<String, dynamic> toJson()
class UserEncoder (line 871) | class UserEncoder extends Converter<User, Map> {
method convert (line 875) | Map convert(User model)
class UserDecoder (line 878) | class UserDecoder extends Converter<Map, User> {
method convert (line 882) | User convert(Map map)
class UserSerializer (line 885) | class UserSerializer extends Codec<User, Map> {
method fromMap (line 894) | User fromMap(Map map)
method toMap (line 920) | Map<String, dynamic> toMap(UserEntity? model)
class UserFields (line 936) | abstract class UserFields {
class RoleUserEncoder (line 964) | class RoleUserEncoder extends Converter<RoleUser, Map> {
method convert (line 968) | Map convert(RoleUser model)
class RoleUserDecoder (line 971) | class RoleUserDecoder extends Converter<Map, RoleUser> {
method convert (line 975) | RoleUser convert(Map map)
class RoleUserSerializer (line 978) | class RoleUserSerializer extends Codec<RoleUser, Map> {
method fromMap (line 987) | RoleUser fromMap(Map map)
method toMap (line 998) | Map<String, dynamic> toMap(RoleUserEntity? model)
class RoleUserFields (line 1009) | abstract class RoleUserFields {
class RoleEncoder (line 1019) | class RoleEncoder extends Converter<Role, Map> {
method convert (line 1023) | Map convert(Role model)
class RoleDecoder (line 1026) | class RoleDecoder extends Converter<Map, Role> {
method convert (line 1030) | Role convert(Map map)
class RoleSerializer (line 1033) | class RoleSerializer extends Codec<Role, Map> {
method fromMap (line 1042) | Role fromMap(Map map)
method toMap (line 1066) | Map<String, dynamic> toMap(RoleEntity? model)
class RoleFields (line 1080) | abstract class RoleFields {
FILE: packages/orm/angel_orm_mysql/test/models/world.dart
class WorldEntity (line 8) | @serializable
FILE: packages/orm/angel_orm_mysql/test/models/world.g.dart
class WorldMigration (line 9) | class WorldMigration extends Migration {
method up (line 11) | void up(Schema schema)
method down (line 19) | void down(Schema schema)
class WorldQuery (line 28) | class WorldQuery extends Query<World, WorldQueryWhere> {
method select (line 62) | WorldQuery select(List<String> selectedFields)
method newWhereClause (line 73) | WorldQueryWhere newWhereClause()
method parseRow (line 77) | Optional<World> parseRow(List row)
method deserialize (line 89) | Optional<World> deserialize(List row)
class WorldQueryWhere (line 94) | class WorldQueryWhere extends QueryWhere {
class WorldQueryValues (line 109) | class WorldQueryValues extends MapQueryValues {
method copyFrom (line 127) | void copyFrom(World model)
class World (line 137) | @generatedSerializable
method copyWith (line 147) | World copyWith({int? id, int? randomnumber})
method toString (line 167) | String toString()
method toJson (line 171) | Map<String, dynamic> toJson()
class WorldEncoder (line 182) | class WorldEncoder extends Converter<World, Map> {
method convert (line 186) | Map convert(World model)
class WorldDecoder (line 189) | class WorldDecoder extends Converter<Map, World> {
method convert (line 193) | World convert(Map map)
class WorldSerializer (line 196) | class WorldSerializer extends Codec<World, Map> {
method fromMap (line 205) | World fromMap(Map map)
method toMap (line 212) | Map<String, dynamic> toMap(WorldEntity? model)
class WorldFields (line 220) | abstract class WorldFields {
FILE: packages/orm/angel_orm_mysql/test/performance_test.dart
function performanceTests (line 12) | void performanceTests(
function genRandomId (line 23) | int genRandomId()
FILE: packages/orm/angel_orm_mysql/test/standalone_test.dart
function main (line 11) | void main()
FILE: packages/orm/angel_orm_mysql/test/util.dart
function printSeparator (line 4) | void printSeparator(String title)
FILE: packages/orm/angel_orm_service/example/connect.dart
function dbConnection (line 6) | Future<Connection> dbConnection()
function connect (line 18) | Future<PostgreSqlExecutor> connect()
FILE: packages/orm/angel_orm_service/example/main.dart
function main (line 8) | void main()
FILE: packages/orm/angel_orm_service/example/migrate.dart
function main (line 6) | Future main(List<String> args)
FILE: packages/orm/angel_orm_service/example/todo.dart
class _Todo (line 7) | @serializable
FILE: packages/orm/angel_orm_service/example/todo.g.dart
class TodoMigration (line 9) | class TodoMigration extends Migration {
method up (line 11) | void up(Schema schema)
method down (line 22) | void down(Schema schema)
class TodoQuery (line 31) | class TodoQuery extends Query<Todo, TodoQueryWhere> {
method newWhereClause (line 64) | TodoQueryWhere newWhereClause()
method parseRow (line 68) | Todo? parseRow(List row)
method deserialize (line 81) | Optional<Todo> deserialize(List row)
class TodoQueryWhere (line 86) | class TodoQueryWhere extends QueryWhere {
class TodoQueryValues (line 110) | class TodoQueryValues extends MapQueryValues {
method copyFrom (line 141) | void copyFrom(Todo model)
class Todo (line 153) | @generatedSerializable
method copyWith (line 178) | Todo copyWith({
method toString (line 210) | String toString()
method toJson (line 214) | Map<String, dynamic> toJson()
class TodoEncoder (line 225) | class TodoEncoder extends Converter<Todo, Map> {
method convert (line 229) | Map convert(Todo model)
class TodoDecoder (line 232) | class TodoDecoder extends Converter<Map, Todo> {
method convert (line 236) | Todo convert(Map map)
class TodoSerializer (line 239) | class TodoSerializer extends Codec<Todo, Map> {
method fromMap (line 246) | Todo fromMap(Map map)
method toMap (line 268) | Map<String, dynamic> toMap(_Todo model)
class TodoFields (line 283) | abstract class TodoFields {
FILE: packages/orm/angel_orm_service/lib/angel3_orm_service.dart
class OrmService (line 7) | class OrmService<Id, Data, TQuery extends Query<Data, QueryWhere>>
method _findBuilder (line 41) | SqlExpressionBuilder _findBuilder(TQuery query, String name)
method _apply (line 50) | void _apply(TQuery query, String name, dynamic value)
method _applyQuery (line 61) | Future<void> _applyQuery(TQuery query, Map<String, dynamic>? params)
method readMany (line 96) | Future<List<Data>> readMany(
method index (line 120) | Future<List<Data>> index([Map<String, dynamic>? params])
method read (line 127) | Future<Data> read(Id id, [Map<String, dynamic>? params])
method findOne (line 137) | Future<Data> findOne([
method create (line 149) | Future<Data> create(Data data, [Map<String, dynamic>? params])
method modify (line 166) | Future<Data> modify(Id id, Data data, [Map<String, dynamic>? params])
method update (line 171) | Future<Data> update(Id id, Data data, [Map<String, dynamic>? params])
method remove (line 190) | Future<Data> remove(Id id, [Map<String, dynamic>? params])
FILE: packages/orm/angel_orm_service/test/all_test.dart
function main (line 11) | void main()
function searchByType1 (line 107) | Future<List<Pokemon>> searchByType1(PokemonType type1)
FILE: packages/orm/angel_orm_service/test/pokemon.dart
type PokemonType (line 7) | enum PokemonType {
class _Pokemon (line 19) | @serializable
FILE: packages/orm/angel_orm_service/test/pokemon.g.dart
class PokemonMigration (line 9) | class PokemonMigration extends Migration {
method up (line 11) | void up(Schema schema)
method down (line 25) | void down(Schema schema)
class PokemonQuery (line 34) | class PokemonQuery extends Query<Pokemon, PokemonQueryWhere> {
method newWhereClause (line 76) | PokemonQueryWhere newWhereClause()
method parseRow (line 80) | Pokemon? parseRow(List row)
method deserialize (line 96) | Optional<Pokemon> deserialize(List row)
class PokemonQueryWhere (line 101) | class PokemonQueryWhere extends QueryWhere {
class PokemonQueryValues (line 142) | class PokemonQueryValues extends MapQueryValues {
method copyFrom (line 188) | void copyFrom(Pokemon model)
class Pokemon (line 203) | @generatedSerializable
method copyWith (line 240) | Pokemon copyWith({
method toString (line 290) | String toString()
method toJson (line 294) | Map<String, dynamic> toJson()
class PokemonEncoder (line 305) | class PokemonEncoder extends Converter<Pokemon, Map> {
method convert (line 309) | Map convert(Pokemon model)
class PokemonDecoder (line 312) | class PokemonDecoder extends Converter<Map, Pokemon> {
method convert (line 316) | Pokemon convert(Map map)
class PokemonSerializer (line 319) | class PokemonSerializer extends Codec<Pokemon, Map> {
method fromMap (line 326) | Pokemon fromMap(Map map)
method toMap (line 367) | Map<String, dynamic> toMap(_Pokemon model)
class PokemonFields (line 397) | abstract class PokemonFields {
FILE: packages/paginate/example/main.dart
function main (line 3) | void main()
FILE: packages/paginate/lib/angel3_paginate.dart
class Paginator (line 2) | class Paginator<T> {
method _computePage (line 48) | PaginationResult<T> _computePage()
method _getPage (line 68) | PaginationResult<T> _getPage()
method _lastPage (line 76) | int _lastPage()
method goToPage (line 90) | void goToPage(int page)
method back (line 98) | void back()
method next (line 106) | void next()
class PaginationResult (line 115) | abstract class PaginationResult<T> {
method toJson (line 144) | Map<String, dynamic> toJson()
class _PaginationResultImpl (line 147) | class _PaginationResultImpl<T> implements PaginationResult<T> {
method toJson (line 187) | Map<String, dynamic> toJson()
FILE: packages/paginate/test/all_test.dart
function main (line 5) | void main()
FILE: packages/paginate/test/bounds_test.dart
function main (line 14) | void main()
FILE: packages/paginate/test/paginate_test.dart
function main (line 7) | void main()
FILE: packages/production/example/main.dart
function main (line 7) | void main(List<String> args)
function configureServer (line 11) | Future configureServer(Angel app)
FILE: packages/production/lib/src/instance_info.dart
class InstanceInfo (line 2) | class InstanceInfo {
FILE: packages/production/lib/src/options.dart
class RunnerOptions (line 5) | class RunnerOptions {
FILE: packages/production/lib/src/runner.dart
class Runner (line 22) | class Runner {
method handleLogRecord (line 52) | void handleLogRecord(LogRecord? record, RunnerOptions options)
method chooseLogColor (line 93) | AnsiCode chooseLogColor(Level level)
method spawnIsolate (line 115) | Future spawnIsolate(int id, RunnerOptions options, SendPort pubSubSend...
method _spawnIsolate (line 119) | Future _spawnIsolate(
method run (line 190) | Future run(List<String> args)
method isolateMain (line 258) | void isolateMain(RunnerArgsWithId argsWithId)
class RunnerArgsWithId (line 356) | class RunnerArgsWithId {
class RunnerArgs (line 363) | class RunnerArgs {
FILE: packages/redis/example/main.dart
function main (line 6) | void main()
FILE: packages/redis/lib/src/redis_service.dart
class RedisService (line 8) | class RedisService extends Service<String, Map<String, dynamic>> {
method _applyPrefix (line 19) | String? _applyPrefix(String? id)
method index (line 22) | Future<List<Map<String, dynamic>>> index([
method read (line 47) | Future<Map<String, dynamic>> read(
method create (line 61) | Future<Map<String, dynamic>> create(
method modify (line 82) | Future<Map<String, dynamic>> modify(
method update (line 93) | Future<Map<String, dynamic>> update(
method remove (line 104) | Future<Map<String, dynamic>> remove(
FILE: packages/redis/test/all_test.dart
function main (line 8) | void main()
FILE: packages/sembast/example/main.dart
function main (line 7) | void main()
FILE: packages/sembast/lib/angel3_sembast.dart
class SembastService (line 5) | class SembastService extends Service<String, Map<String, dynamic>> {
method _makeQuery (line 25) | Finder? _makeQuery([Map<String, dynamic>? params])
method _withId (line 77) | Map<String, dynamic> _withId(Map<String, dynamic> data, String id)
method findOne (line 81) | Future<Map<String, dynamic>> findOne([
method index (line 97) | Future<List<Map<String, dynamic>>> index([
method read (line 108) | Future<Map<String, dynamic>> read(
method create (line 122) | Future<Map<String, dynamic>> create(
method modify (line 134) | Future<Map<String, dynamic>> modify(
method update (line 147) | Future<Map<String, dynamic>> update(
method remove (line 160) | Future<Map<String, dynamic>> remove(
FILE: packages/sembast/test/all_test.dart
function main (line 7) | void main()
FILE: packages/seo/example/main.dart
function main (line 9) | void main()
FILE: packages/seo/lib/src/inline_assets.dart
function inlineAssets (line 17) | RequestHandler inlineAssets(Directory assetDirectory)
function inlineAssetsFromVirtualDirectory (line 41) | VirtualDirectory inlineAssetsFromVirtualDirectory(VirtualDirectory vDir)
function inlineAssetsIntoDocument (line 47) | Future inlineAssetsIntoDocument(
class _InlineAssets (line 96) | class _InlineAssets extends VirtualDirectory {
method serveFile (line 111) | Future<bool> serveFile(
FILE: packages/seo/test/inline_assets_test.dart
function main (line 13) | void main()
type InlineAssetTest (line 44) | typedef InlineAssetTest = void Function(Angel app, Directory dir);
function inlineAssetsTests (line 46) | void Function() inlineAssetsTests(InlineAssetTest f)
FILE: packages/shelf/example/angel_in_shelf.dart
function main (line 11) | void main()
FILE: packages/shelf/example/main.dart
function main (line 9) | void main()
FILE: packages/shelf/lib/src/convert.dart
function convertRequest (line 17) | Future<shelf.Request> convertRequest(
function mergeShelfResponse (line 92) | Future mergeShelfResponse(
FILE: packages/shelf/lib/src/embed_shelf.dart
function embedShelf (line 13) | RequestHandler embedShelf(
FILE: packages/shelf/lib/src/shelf_driver.dart
function process (line 9) | Future<Stream<Request>> process(dynamic param1, int param2)
class AngelShelf (line 13) | class AngelShelf
method close (line 40) | Future<void> close()
method _unsupported (line 49) | UnsupportedError _unsupported()
method handler (line 53) | Future<shelf.Response> handler(shelf.Request request)
method middleware (line 66) | shelf.Handler middleware(shelf.Handler handler)
method handleAngelHttpException (line 81) | Future<shelf.Response> handleAngelHttpException(
method addCookies (line 103) | void addCookies(ShelfResponseContext? response, Iterable<Cookie> cookies)
method closeResponse (line 109) | Future closeResponse(ShelfResponseContext? response)
method createRequestContext (line 119) | Future<ShelfRequestContext> createRequestContext(
method createResponseContext (line 135) | Future<ShelfResponseContext> createResponseContext(
method createResponseStreamFromRawRequest (line 145) | Stream<ShelfResponseContext?> createResponseStreamFromRawRequest(
method setChunkedEncoding (line 152) | void setChunkedEncoding(ShelfResponseContext? response, bool value)
method setContentLength (line 157) | void setContentLength(ShelfResponseContext? response, int length)
method setHeader (line 162) | void setHeader(ShelfResponseContext? response, String key, String value)
method setStatusCode (line 167) | void setStatusCode(ShelfResponseContext? response, int value)
method writeStringToResponse (line 172) | void writeStringToResponse(ShelfResponseContext? response, String value)
method writeToResponse (line 177) | void writeToResponse(ShelfResponseContext? response, List<int> data)
FILE: packages/shelf/lib/src/shelf_request.dart
class ShelfRequestContext (line 8) | class ShelfRequestContext extends RequestContext {
FILE: packages/shelf/lib/src/shelf_response.dart
class ShelfResponseContext (line 8) | class ShelfResponseContext extends ResponseContext<ShelfResponseContext> {
method closeSilently (line 23) | void closeSilently()
method close (line 41) | Future<void> close()
method addStream (line 66) | Future addStream(Stream<List<int>> stream)
method add (line 94) | void add(List<int> data)
method detach (line 126) | FutureOr<ShelfResponseContext> detach()
method useBuffer (line 138) | void useBuffer()
FILE: packages/shelf/test/all.dart
function main (line 4) | void main()
FILE: packages/shelf/test/embed_shelf_test.dart
function main (line 16) | void main()
function path (line 20) | Uri path(String p)
FILE: packages/static/example/main.dart
function main (line 7) | void main(List<String> args)
FILE: packages/static/lib/src/cache.dart
class CachingVirtualDirectory (line 9) | class CachingVirtualDirectory extends VirtualDirectory {
method serveFile (line 49) | Future<bool> serveFile(
method setCachedHeaders (line 175) | void setCachedHeaders(
type CacheAccessLevel (line 193) | enum CacheAccessLevel {
FILE: packages/static/lib/src/virtual_directory.dart
function _pathify (line 12) | String _pathify(String path)
class VirtualDirectory (line 31) | class VirtualDirectory {
method handleRequest (line 80) | Future<bool> handleRequest(RequestContext req, ResponseContext res)
method pushState (line 98) | RequestHandler pushState(String path, {Iterable? accepts})
method servePath (line 117) | Future<bool> servePath(
method serveStat (line 156) | Future<bool> serveStat(
method serveDirectory (line 182) | Future<bool> serveDirectory(
method _ensureContentTypeAllowed (line 283) | void _ensureContentTypeAllowed(String mimeType, RequestContext req)
method serveFile (line 305) | Future<bool> serveFile(
FILE: packages/static/test/all_test.dart
function main (line 9) | void main()
FILE: packages/static/test/cache_sample.dart
function main (line 6) | void main()
FILE: packages/static/test/cache_test.dart
function main (line 10) | void main()
FILE: packages/static/test/issue41_test.dart
function main (line 13) | void main()
FILE: packages/static/test/push_state_test.dart
function main (line 8) | void main()
FILE: packages/sync/example/main.dart
function main (line 12) | void main()
FILE: packages/sync/lib/angel3_sync.dart
class PubSubSynchronizationChannel (line 7) | class PubSubSynchronizationChannel extends StreamChannelMixin<WebSocketE...
method close (line 48) | Future close()
FILE: packages/sync/test/all_test.dart
function main (line 12) | void main()
FILE: packages/user_agent/angel_user_agent/example/example.dart
function main (line 7) | void main()
FILE: packages/user_agent/angel_user_agent/lib/angel3_user_agent.dart
function parseUserAgent (line 8) | bool parseUserAgent(RequestContext req, ResponseContext res)
Condensed preview — 552 files, each showing path, character count, and a content snippet. Download the .json file or copy for the full structured content (2,020K chars).
[
{
"path": ".devcontainer/devcontainer.json",
"chars": 78,
"preview": "{\n \"image\": \"dart:3.4\",\n \"forwardPorts\": [3000,5000],\n \"features\": {\n }\n}\n"
},
{
"path": ".github/FUNDING.yml",
"chars": 141,
"preview": "# These are supported funding model platforms\n\ngithub: [dukefirehawk]\ncustom: [\"https://paypal.me/dukefirehawk?country.x"
},
{
"path": ".github/workflows/dart.yml",
"chars": 5575,
"preview": "# This workflow uses actions that are not certified by GitHub.\n# They are provided by a third-party and are governed by\n"
},
{
"path": ".gitignore",
"chars": 1508,
"preview": "# Created by .ignore support plugin (hsz.mobi)\n### Dart template\n# See https://www.dartlang.org/tools/private-files.html"
},
{
"path": ".pubignore",
"chars": 20,
"preview": ".DS_Store\ntasks.json"
},
{
"path": ".vscode/settings.json",
"chars": 397,
"preview": "{\n \"files.watcherExclude\": {\n \"**/target\": true\n },\n \"[javascript]\": {\n \"editor.defaultFormatter\": \"e"
},
{
"path": "AI_CONTEXT.md",
"chars": 3237,
"preview": "# AI Context for Angel3\n\n## Project Overview\n\n**Angel3** is a production-ready, full-stack backend framework in Dart. It"
},
{
"path": "AUTHORS.md",
"chars": 376,
"preview": "Primary Authors\n===============\n\n* __[Thomas Hii](dukefirehawk.apps@gmail.com)__\n\n Thomas is the current maintainer o"
},
{
"path": "CHANGELOG.md",
"chars": 9150,
"preview": "# Change Log\n\nAll notable changes to this project will be documented in this file.\nSee [Conventional Commits](https://co"
},
{
"path": "CONTRIBUTING.md",
"chars": 973,
"preview": "\n# Contribution\n\nAny help from the open-source community is always welcome and needed:\n\n1. Found an issue?\n - Please "
},
{
"path": "LICENSE",
"chars": 1524,
"preview": "BSD 3-Clause License\n\nCopyright (c) 2024, dukefirehawk.com\nAll rights reserved.\n\nRedistribution and use in source and bi"
},
{
"path": "README.md",
"chars": 11961,
"preview": "# Angel3 Framework\n\n[](https://github.com/dart-backend/angel)\n\n__\n\n Thomas is the current maintainer o"
},
{
"path": "packages/cache/CHANGELOG.md",
"chars": 1047,
"preview": "# Change Log\n\n## 8.5.0\n\n* Require Dart >= 3.11\n\n## 8.4.0\n\n* Require Dart >= 3.8\n* Updated `lints` to 6.0.0\n* Updated dep"
},
{
"path": "packages/cache/LICENSE",
"chars": 1524,
"preview": "BSD 3-Clause License\n\nCopyright (c) 2021, dukefirehawk.com\nAll rights reserved.\n\nRedistribution and use in source and bi"
},
{
"path": "packages/cache/README.md",
"chars": 3073,
"preview": "# Angel3 HTTP Cache\n\n 2021, dukefirehawk.com\nAll rights reserved.\n\nRedistribution and use in source and bi"
},
{
"path": "packages/container/angel_container_generator/README.md",
"chars": 1281,
"preview": "# Angel3 Container Generator\n\n__\n\n Thomas is the current maintainer o"
},
{
"path": "packages/file_service/CHANGELOG.md",
"chars": 1277,
"preview": "# Change Log\n\n## 8.5.0\n\n* Require Dart >= 3.11\n\n## 8.4.0\n\n* Require Dart >= 3.8\n* Updated `lints` to 6.0.0\n* Updated dep"
},
{
"path": "packages/file_service/LICENSE",
"chars": 1524,
"preview": "BSD 3-Clause License\n\nCopyright (c) 2021, dukefirehawk.com\nAll rights reserved.\n\nRedistribution and use in source and bi"
},
{
"path": "packages/file_service/README.md",
"chars": 1353,
"preview": "# File Service for Angel3\n\n__\n\n Thomas is the current maintainer o"
},
{
"path": "packages/framework/CHANGELOG.md",
"chars": 13813,
"preview": "# Change Log\n\n## 8.7.0\n\n* Require Dart >= 3.11\n\n## 8.6.0\n\n* Require Dart >= 3.8\n* Updated `lints` to 6.0.0\n* Updated dep"
},
{
"path": "packages/framework/LICENSE",
"chars": 1524,
"preview": "BSD 3-Clause License\n\nCopyright (c) 2021, dukefirehawk.com\nAll rights reserved.\n\nRedistribution and use in source and bi"
},
{
"path": "packages/framework/README.md",
"chars": 3594,
"preview": "# Angel3 Framework\n\n[](https://github.com/dart-backend/angel)\n\n![Pub Version ("
},
{
"path": "packages/framework/analysis_options.yaml",
"chars": 39,
"preview": "include: package:lints/recommended.yaml"
},
{
"path": "packages/framework/dev.key",
"chars": 1776,
"preview": "-----BEGIN ENCRYPTED PRIVATE KEY-----\nMIIE5DAcBgoqhkiG9w0BDAEBMA4ECL7L6rj6uEHGAgIIAASCBMLbucyfqAkgCbhP\nxNSHYllPMAv/dsIjt"
},
{
"path": "packages/framework/dev.pem",
"chars": 3364,
"preview": "-----BEGIN CERTIFICATE-----\nMIIDKTCCAhGgAwIBAgIJAOWmjTS+OnTEMA0GCSqGSIb3DQEBCwUAMBcxFTATBgNV\nBAMMDGludGVybWVkaWF0ZTAeFw0"
},
{
"path": "packages/framework/example/controller.dart",
"chars": 1459,
"preview": "import 'package:angel3_container/mirrors.dart';\nimport 'package:angel3_framework/angel3_framework.dart';\nimport 'package"
},
{
"path": "packages/framework/example/handle_error.dart",
"chars": 830,
"preview": "import 'dart:async';\nimport 'dart:io';\nimport 'package:angel3_container/mirrors.dart';\nimport 'package:angel3_framework/"
},
{
"path": "packages/framework/example/hostname.dart",
"chars": 1314,
"preview": "import 'dart:async';\nimport 'package:angel3_framework/angel3_framework.dart';\nimport 'package:angel3_framework/http.dart"
},
{
"path": "packages/framework/example/http2/body_parsing.dart",
"chars": 1390,
"preview": "import 'dart:io';\nimport 'package:angel3_framework/angel3_framework.dart';\nimport 'package:angel3_framework/http.dart';\n"
},
{
"path": "packages/framework/example/http2/common.dart",
"chars": 184,
"preview": "import 'package:logging/logging.dart';\n\nvoid dumpError(LogRecord rec) {\n print(rec);\n if (rec.error != null) print(rec"
},
{
"path": "packages/framework/example/http2/dev.key",
"chars": 1776,
"preview": "-----BEGIN ENCRYPTED PRIVATE KEY-----\nMIIE5DAcBgoqhkiG9w0BDAEBMA4ECL7L6rj6uEHGAgIIAASCBMLbucyfqAkgCbhP\nxNSHYllPMAv/dsIjt"
},
{
"path": "packages/framework/example/http2/dev.pem",
"chars": 3364,
"preview": "-----BEGIN CERTIFICATE-----\nMIIDKTCCAhGgAwIBAgIJAOWmjTS+OnTEMA0GCSqGSIb3DQEBCwUAMBcxFTATBgNV\nBAMMDGludGVybWVkaWF0ZTAeFw0"
},
{
"path": "packages/framework/example/http2/main.dart",
"chars": 1165,
"preview": "import 'dart:io';\nimport 'package:angel3_framework/angel3_framework.dart';\nimport 'package:angel3_framework/http.dart';\n"
},
{
"path": "packages/framework/example/http2/public/app.js",
"chars": 751,
"preview": "window.onload = function() {\n var $app = document.getElementById('app');\n var $loading = document.getElementById('load"
},
{
"path": "packages/framework/example/http2/public/body_parsing.html",
"chars": 583,
"preview": "<!DOCTYPE html>\n<html lang=\"en\">\n<head>\n <meta charset=\"UTF-8\">\n <title>Angel HTTP/2</title>\n <style>\n i"
},
{
"path": "packages/framework/example/http2/public/index.html",
"chars": 262,
"preview": "<!DOCTYPE html>\n<html lang=\"en\">\n<head>\n <meta charset=\"UTF-8\">\n <title>Angel HTTP/2</title>\n <link rel=\"styles"
},
{
"path": "packages/framework/example/http2/public/style.css",
"chars": 208,
"preview": "button {\n margin-top: 2em;\n}\n\nhtml, body {\n background-color: #000;\n}\n\n#app {\n text-align: center;\n}\n\n#app h1 {"
},
{
"path": "packages/framework/example/http2/server_push.dart",
"chars": 2060,
"preview": "import 'dart:io';\nimport 'package:angel3_framework/angel3_framework.dart';\nimport 'package:angel3_framework/http.dart';\n"
},
{
"path": "packages/framework/example/json.dart",
"chars": 1204,
"preview": "import 'dart:async';\nimport 'dart:io';\nimport 'dart:isolate';\nimport 'package:angel3_framework/angel3_framework.dart';\ni"
},
{
"path": "packages/framework/example/main.dart",
"chars": 1527,
"preview": "import 'package:angel3_container/mirrors.dart';\nimport 'package:angel3_framework/angel3_framework.dart';\nimport 'package"
},
{
"path": "packages/framework/example/map_service.dart",
"chars": 599,
"preview": "import 'package:angel3_container/mirrors.dart';\nimport 'package:angel3_framework/angel3_framework.dart';\nimport 'package"
},
{
"path": "packages/framework/example/status.dart",
"chars": 319,
"preview": "import 'package:angel3_framework/angel3_framework.dart';\nimport 'package:angel3_framework/http.dart';\n\nvoid main() async"
},
{
"path": "packages/framework/example/view.dart",
"chars": 615,
"preview": "import 'package:angel3_container/mirrors.dart';\nimport 'package:angel3_framework/angel3_framework.dart';\nimport 'package"
},
{
"path": "packages/framework/example/views/index.jl",
"chars": 101,
"preview": "<!DOCTYPE html>\n<html>\n<head>\n <title>Title</title>\n</head>\n<body>\n<h1>Hello!</h1>\n</body>\n</html>"
},
{
"path": "packages/framework/lib/angel3_framework.dart",
"chars": 259,
"preview": "/// An easily-extensible web server framework in Dart.\nlibrary;\n\nexport 'package:angel3_http_exception/angel3_http_excep"
},
{
"path": "packages/framework/lib/http.dart",
"chars": 29,
"preview": "export 'src/http/http.dart';\n"
},
{
"path": "packages/framework/lib/http2.dart",
"chars": 132,
"preview": "export 'src/http2/angel_http2.dart';\nexport 'src/http2/http2_request_context.dart';\nexport 'src/http2/http2_response_con"
},
{
"path": "packages/framework/lib/src/core/anonymous_service.dart",
"chars": 2323,
"preview": "import 'dart:async';\nimport 'service.dart';\n\n/// An easy helper class to create one-off services without having to creat"
},
{
"path": "packages/framework/lib/src/core/controller.dart",
"chars": 8573,
"preview": "library;\n\nimport 'dart:async';\nimport 'package:angel3_container/angel3_container.dart';\nimport 'package:angel3_route/ang"
},
{
"path": "packages/framework/lib/src/core/core.dart",
"chars": 375,
"preview": "export 'anonymous_service.dart';\nexport 'controller.dart';\nexport 'driver.dart';\nexport 'env.dart';\nexport 'hooked_servi"
},
{
"path": "packages/framework/lib/src/core/driver.dart",
"chars": 14265,
"preview": "import 'dart:async';\nimport 'dart:convert';\nimport 'dart:io' show Cookie;\nimport 'package:angel3_http_exception/angel3_h"
},
{
"path": "packages/framework/lib/src/core/env.dart",
"chars": 875,
"preview": "import 'dart:io';\n\n/// A constant instance of [AngelEnv].\nconst AngelEnvironment angelEnv = AngelEnvironment();\n\n/// Que"
},
{
"path": "packages/framework/lib/src/core/hooked_service.dart",
"chars": 24693,
"preview": "library;\n\nimport 'dart:async';\n\nimport '../util.dart';\nimport 'metadata.dart';\nimport 'request_context.dart';\nimport 're"
},
{
"path": "packages/framework/lib/src/core/hostname_parser.dart",
"chars": 2366,
"preview": "import 'dart:collection';\nimport 'package:string_scanner/string_scanner.dart';\n\n/// Parses a string into a [RegExp] that"
},
{
"path": "packages/framework/lib/src/core/hostname_router.dart",
"chars": 3849,
"preview": "import 'dart:async';\nimport 'package:angel3_container/angel3_container.dart';\nimport 'package:angel3_route/angel3_route."
},
{
"path": "packages/framework/lib/src/core/injection.dart",
"chars": 7030,
"preview": "part of 'request_context.dart';\n\nconst List<Type> _primitiveTypes = [String, int, num, double, Null];\n\n/// Shortcut for "
},
{
"path": "packages/framework/lib/src/core/map_service.dart",
"chars": 5563,
"preview": "import 'dart:async';\n\nimport 'package:angel3_http_exception/angel3_http_exception.dart';\n\nimport 'service.dart';\n\n/// A "
},
{
"path": "packages/framework/lib/src/core/metadata.dart",
"chars": 4731,
"preview": "library;\n\nimport 'package:angel3_http_exception/angel3_http_exception.dart';\n\nimport 'hooked_service.dart' show HookedSe"
},
{
"path": "packages/framework/lib/src/core/request_context.dart",
"chars": 13160,
"preview": "library;\n\nimport 'dart:async';\nimport 'dart:convert';\nimport 'dart:typed_data' show BytesBuilder;\nimport 'dart:io'\n s"
},
{
"path": "packages/framework/lib/src/core/response_context.dart",
"chars": 13085,
"preview": "library;\n\nimport 'dart:async';\nimport 'dart:convert';\nimport 'dart:convert' as c show json;\nimport 'dart:io' show BytesB"
},
{
"path": "packages/framework/lib/src/core/routable.dart",
"chars": 4624,
"preview": "library;\n\nimport 'dart:async';\n\nimport 'package:angel3_container/angel3_container.dart';\nimport 'package:angel3_route/an"
},
{
"path": "packages/framework/lib/src/core/server.dart",
"chars": 13914,
"preview": "library;\n\nimport 'dart:async';\nimport 'dart:collection' show HashMap;\nimport 'dart:convert';\nimport 'package:angel3_cont"
},
{
"path": "packages/framework/lib/src/core/service.dart",
"chars": 12336,
"preview": "library;\n\nimport 'dart:async';\nimport 'package:angel3_http_exception/angel3_http_exception.dart';\nimport 'package:belatu"
},
{
"path": "packages/framework/lib/src/fast_name_from_symbol.dart",
"chars": 264,
"preview": "final Map<Symbol, String> _cache = {};\n\nString fastNameFromSymbol(Symbol s) {\n return _cache.putIfAbsent(s, () {\n va"
},
{
"path": "packages/framework/lib/src/http/angel_http.dart",
"chars": 4733,
"preview": "import 'dart:async';\nimport 'dart:convert';\nimport 'dart:io'\n show\n Cookie,\n HttpRequest,\n HttpR"
},
{
"path": "packages/framework/lib/src/http/http.dart",
"chars": 661,
"preview": "/// Various libraries useful for creating highly-extensible servers.\nlibrary;\n\nimport 'dart:async';\nimport 'dart:io';\nex"
},
{
"path": "packages/framework/lib/src/http/http_request_context.dart",
"chars": 2428,
"preview": "import 'dart:async';\nimport 'dart:io';\n\nimport 'package:angel3_container/angel3_container.dart';\nimport 'package:http_pa"
},
{
"path": "packages/framework/lib/src/http/http_response_context.dart",
"chars": 5858,
"preview": "import 'dart:async';\nimport 'dart:convert';\nimport 'dart:io' hide BytesBuilder;\nimport 'dart:typed_data' show BytesBuild"
},
{
"path": "packages/framework/lib/src/http2/angel_http2.dart",
"chars": 7572,
"preview": "import 'dart:async';\nimport 'dart:convert';\nimport 'dart:io';\nimport 'package:angel3_framework/angel3_framework.dart' hi"
},
{
"path": "packages/framework/lib/src/http2/http2_request_context.dart",
"chars": 5286,
"preview": "import 'dart:async';\nimport 'dart:convert';\nimport 'dart:io';\nimport 'package:angel3_container/angel3_container.dart';\ni"
},
{
"path": "packages/framework/lib/src/http2/http2_response_context.dart",
"chars": 6089,
"preview": "import 'dart:async';\nimport 'dart:convert';\nimport 'dart:io' hide BytesBuilder;\nimport 'dart:typed_data';\nimport 'packag"
},
{
"path": "packages/framework/lib/src/safe_stream_controller.dart",
"chars": 2667,
"preview": "import 'dart:async';\n\ntypedef _InitCallback = void Function();\n\n/// A [StreamController] boilerplate that prevents memor"
},
{
"path": "packages/framework/lib/src/util.dart",
"chars": 732,
"preview": "import 'package:angel3_container/angel3_container.dart';\n\nfinal RegExp straySlashes = RegExp(r'(^/+)|(/+$)');\n\nT? matchi"
},
{
"path": "packages/framework/melos_angel3_framework.iml",
"chars": 762,
"preview": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<module type=\"WEB_MODULE\" version=\"4\">\n <component name=\"NewModuleRootManager\" i"
},
{
"path": "packages/framework/performance/hello/angel.md",
"chars": 2362,
"preview": "# Angel Performance Results\n\n5 consecutive trials run on a Windows 10 box with 4GB RAM, and several programs open in the"
},
{
"path": "packages/framework/performance/hello/main.dart",
"chars": 629,
"preview": "/// A basic server that prints \"Hello, world!\"\nlibrary;\n\nimport 'package:angel3_framework/angel3_framework.dart';\nimport"
},
{
"path": "packages/framework/performance/hello/raw.dart",
"chars": 421,
"preview": "/// A basic server that prints \"Hello, world!\"\nlibrary;\n\nimport 'dart:io';\n\nFuture<void> main() {\n return HttpServer.bi"
},
{
"path": "packages/framework/performance/hello/raw.md",
"chars": 2286,
"preview": "# `dart:io` Results\n\n5 consecutive trials run on a Windows 10 box with 4GB RAM, and several programs open in the backgro"
},
{
"path": "packages/framework/pubspec.yaml",
"chars": 940,
"preview": "name: angel3_framework\nversion: 8.7.0\ndescription: A high-powered HTTP server extensible framework with dependency injec"
},
{
"path": "packages/framework/test/accepts_test.dart",
"chars": 2387,
"preview": "import 'dart:async';\nimport 'dart:io';\nimport 'package:angel3_container/mirrors.dart';\nimport 'package:angel3_framework/"
},
{
"path": "packages/framework/test/all.dart",
"chars": 2511,
"preview": "import 'dart:io';\nimport 'package:io/ansi.dart';\nimport 'http_404_hole_test.dart' as hole404;\nimport 'accepts_test.dart'"
},
{
"path": "packages/framework/test/anonymous_service_test.dart",
"chars": 1322,
"preview": "import 'package:angel3_framework/angel3_framework.dart';\nimport 'package:test/test.dart';\n\nvoid main() {\n test('custom "
},
{
"path": "packages/framework/test/body_test.dart",
"chars": 4066,
"preview": "import 'dart:async';\nimport 'dart:convert';\nimport 'dart:io';\nimport 'package:angel3_framework/angel3_framework.dart';\ni"
},
{
"path": "packages/framework/test/common.dart",
"chars": 1184,
"preview": "library;\n\nimport 'package:angel3_framework/angel3_framework.dart';\nimport 'package:matcher/matcher.dart';\n\nclass Todo ex"
},
{
"path": "packages/framework/test/controller_test.dart",
"chars": 6048,
"preview": "import 'dart:async';\nimport 'dart:convert';\nimport 'dart:io';\n\nimport 'package:angel3_container/mirrors.dart';\nimport 'p"
},
{
"path": "packages/framework/test/detach_test.dart",
"chars": 901,
"preview": "import 'dart:convert';\nimport 'package:angel3_framework/angel3_framework.dart';\nimport 'package:angel3_framework/http.da"
},
{
"path": "packages/framework/test/di_test.dart",
"chars": 4040,
"preview": "import 'dart:async';\nimport 'dart:convert';\nimport 'dart:io';\nimport 'package:angel3_container/angel3_container.dart';\ni"
},
{
"path": "packages/framework/test/encoders_buffer_test.dart",
"chars": 3099,
"preview": "import 'dart:async';\nimport 'dart:convert';\nimport 'dart:io' hide BytesBuilder;\nimport 'dart:typed_data' show BytesBuild"
},
{
"path": "packages/framework/test/env_test.dart",
"chars": 745,
"preview": "import 'dart:io';\nimport 'package:angel3_framework/angel3_framework.dart';\nimport 'package:test/test.dart';\n\nvoid main()"
},
{
"path": "packages/framework/test/exception_test.dart",
"chars": 2450,
"preview": "import 'package:angel3_framework/angel3_framework.dart';\nimport 'dart:convert';\nimport 'package:test/test.dart';\n\nvoid m"
},
{
"path": "packages/framework/test/extension_test.dart",
"chars": 960,
"preview": "import 'dart:async';\nimport 'package:angel3_container/mirrors.dart';\nimport 'package:angel3_framework/angel3_framework.d"
},
{
"path": "packages/framework/test/find_one_test.dart",
"chars": 726,
"preview": "import 'package:angel3_framework/angel3_framework.dart';\nimport 'package:test/test.dart';\nimport 'common.dart';\n\nvoid ma"
},
{
"path": "packages/framework/test/general_test.dart",
"chars": 1092,
"preview": "import 'dart:io';\nimport 'package:angel3_container/mirrors.dart';\nimport 'package:angel3_framework/angel3_framework.dart"
},
{
"path": "packages/framework/test/hm.dart",
"chars": 380,
"preview": "import 'dart:async';\nimport 'package:io/ansi.dart';\nimport 'all.dart' as hm;\n\nvoid main() async {\n var zone = Zone.curr"
},
{
"path": "packages/framework/test/hooked_test.dart",
"chars": 4434,
"preview": "import 'dart:convert';\nimport 'dart:io';\nimport 'package:angel3_container/mirrors.dart';\nimport 'package:angel3_framewor"
},
{
"path": "packages/framework/test/http2/adapter_test.dart",
"chars": 9461,
"preview": "import 'dart:async';\nimport 'dart:convert';\nimport 'dart:io' hide BytesBuilder;\nimport 'dart:typed_data';\nimport 'packag"
},
{
"path": "packages/framework/test/http2/http2_client.dart",
"chars": 3102,
"preview": "import 'dart:async';\nimport 'dart:convert';\nimport 'dart:io' hide BytesBuilder;\nimport 'dart:typed_data';\nimport 'packag"
},
{
"path": "packages/framework/test/http_404_hole_test.dart",
"chars": 2214,
"preview": "import 'dart:async';\nimport 'package:angel3_framework/angel3_framework.dart';\nimport 'package:angel3_framework/http.dart"
},
{
"path": "packages/framework/test/jsonp_test.dart",
"chars": 1858,
"preview": "import 'dart:async';\nimport 'dart:convert';\nimport 'package:angel3_framework/angel3_framework.dart';\nimport 'package:ang"
},
{
"path": "packages/framework/test/parameter_meta_test.dart",
"chars": 4146,
"preview": "import 'dart:async';\nimport 'dart:convert';\n\nimport 'package:angel3_container/mirrors.dart';\nimport 'package:angel3_fram"
},
{
"path": "packages/framework/test/parse_id_test.dart",
"chars": 787,
"preview": "import 'package:angel3_framework/angel3_framework.dart';\nimport 'package:test/test.dart';\n\nvoid main() {\n test('null', "
},
{
"path": "packages/framework/test/precontained_test.dart",
"chars": 926,
"preview": "import 'dart:convert';\n\nimport 'package:angel3_container/mirrors.dart';\nimport 'package:angel3_framework/angel3_framewor"
},
{
"path": "packages/framework/test/pretty_log.dart",
"chars": 997,
"preview": "import 'package:logging/logging.dart';\nimport 'package:io/ansi.dart';\n\n/// Prints the contents of a [LogRecord] with pre"
},
{
"path": "packages/framework/test/primitives_test.dart",
"chars": 2239,
"preview": "import 'dart:convert';\nimport 'dart:io' show stderr;\n\nimport 'package:angel3_container/mirrors.dart';\nimport 'package:an"
},
{
"path": "packages/framework/test/repeat_request_test.dart",
"chars": 1052,
"preview": "import 'dart:async';\nimport 'dart:convert';\n\nimport 'package:angel3_container/mirrors.dart';\nimport 'package:angel3_fram"
},
{
"path": "packages/framework/test/req_shutdown_test.dart",
"chars": 1182,
"preview": "import 'dart:async';\nimport 'package:angel3_framework/angel3_framework.dart';\nimport 'package:angel3_framework/http.dart"
},
{
"path": "packages/framework/test/response_header_test.dart",
"chars": 1627,
"preview": "import 'dart:io';\n\nimport 'package:angel3_container/mirrors.dart';\nimport 'package:angel3_framework/angel3_framework.dar"
},
{
"path": "packages/framework/test/routing_test.dart",
"chars": 7062,
"preview": "import 'dart:convert';\nimport 'dart:io';\n\nimport 'package:angel3_container/mirrors.dart';\nimport 'package:angel3_framewo"
},
{
"path": "packages/framework/test/serialize_test.dart",
"chars": 1295,
"preview": "import 'dart:io';\n\nimport 'package:angel3_container/mirrors.dart';\nimport 'package:angel3_framework/angel3_framework.dar"
},
{
"path": "packages/framework/test/server_test.dart",
"chars": 6991,
"preview": "import 'dart:async';\nimport 'dart:convert';\nimport 'dart:io';\n\nimport 'package:angel3_container/mirrors.dart';\nimport 'p"
},
{
"path": "packages/framework/test/service_map_test.dart",
"chars": 1944,
"preview": "import 'package:angel3_framework/angel3_framework.dart';\nimport 'package:test/test.dart';\nimport 'package:quiver/core.da"
},
{
"path": "packages/framework/test/services_test.dart",
"chars": 4624,
"preview": "import 'package:angel3_container/mirrors.dart';\nimport 'package:angel3_framework/angel3_framework.dart';\nimport 'package"
},
{
"path": "packages/framework/test/streaming_test.dart",
"chars": 3214,
"preview": "import 'dart:async';\nimport 'dart:convert';\nimport 'dart:io';\n\nimport 'package:angel3_container/mirrors.dart';\nimport 'p"
},
{
"path": "packages/framework/test/view_generator_test.dart",
"chars": 290,
"preview": "import 'package:angel3_framework/angel3_framework.dart';\nimport 'package:test/test.dart';\n\nvoid main() {\n test('default"
},
{
"path": "packages/html/AUTHORS.md",
"chars": 377,
"preview": "Primary Authors\n===============\n\n* __[Thomas Hii](dukefirehawk.apps@gmail.com)__\n\n Thomas is the current maintainer o"
},
{
"path": "packages/html/CHANGELOG.md",
"chars": 646,
"preview": "# Change Log\n\n## 8.4.0\n\n* Require Dart >= 3.11\n\n## 8.3.0\n\n* Require Dart >= 3.8\n* Updated `lints` to 6.0.0\n* Updated dep"
},
{
"path": "packages/html/LICENSE",
"chars": 1524,
"preview": "BSD 3-Clause License\n\nCopyright (c) 2021, dukefirehawk.com\nAll rights reserved.\n\nRedistribution and use in source and bi"
},
{
"path": "packages/html/README.md",
"chars": 2569,
"preview": "# Angel3 HTML\n\n\n[\n\nA simple serve"
},
{
"path": "packages/jael/angel_jael/AUTHORS.md",
"chars": 377,
"preview": "Primary Authors\n===============\n\n* __[Thomas Hii](dukefirehawk.apps@gmail.com)__\n\n Thomas is the current maintainer o"
},
{
"path": "packages/jael/angel_jael/CHANGELOG.md",
"chars": 1419,
"preview": "# Change Log\n\n## 8.5.0\n\n* Require Dart >= 3.11\n\n## 8.4.0\n\n* Require Dart >= 3.8\n* Updated `lints` to 6.0.0\n* Updated dep"
},
{
"path": "packages/jael/angel_jael/LICENSE",
"chars": 1524,
"preview": "BSD 3-Clause License\n\nCopyright (c) 2021, dukefirehawk.com\nAll rights reserved.\n\nRedistribution and use in source and bi"
},
{
"path": "packages/jael/angel_jael/README.md",
"chars": 3074,
"preview": "# Angel3 Jael\n\n\n[!["
},
{
"path": "packages/jael/angel_jael/analysis_options.yaml",
"chars": 39,
"preview": "include: package:lints/recommended.yaml"
},
{
"path": "packages/jael/angel_jael/example/main.dart",
"chars": 1244,
"preview": "import 'dart:convert';\nimport 'package:angel3_framework/angel3_framework.dart';\nimport 'package:angel3_framework/http.da"
},
{
"path": "packages/jael/angel_jael/example/views/index.jael",
"chars": 464,
"preview": "<extend src=\"layout.jael\">\n <block name=\"content\">\n <i if=message != null>\n <script>\n "
},
{
"path": "packages/jael/angel_jael/example/views/layout.jael",
"chars": 365,
"preview": "<!DOCTYPE html>\n<html>\n<head>\n <meta name=\"viewport\"\n content=\"width=device-width, user-scalable=no, initial"
},
{
"path": "packages/jael/angel_jael/lib/angel3_jael.dart",
"chars": 4164,
"preview": "import 'package:angel3_framework/angel3_framework.dart';\nimport 'package:belatuk_code_buffer/belatuk_code_buffer.dart';\n"
},
{
"path": "packages/jael/angel_jael/melos_angel3_jael.iml",
"chars": 762,
"preview": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<module type=\"WEB_MODULE\" version=\"4\">\n <component name=\"NewModuleRootManager\" i"
},
{
"path": "packages/jael/angel_jael/pubspec.yaml",
"chars": 580,
"preview": "name: angel3_jael\nversion: 8.4.0\ndescription: Angel support for the Jael templating engine, similar to Blade or Liquid.\n"
},
{
"path": "packages/jael/angel_jael/test/all_test.dart",
"chars": 2091,
"preview": "import 'package:angel3_framework/angel3_framework.dart';\nimport 'package:angel3_jael/angel3_jael.dart';\nimport 'package:"
},
{
"path": "packages/jael/angel_jael/test/minified_test.dart",
"chars": 2899,
"preview": "import 'package:angel3_framework/angel3_framework.dart';\nimport 'package:angel3_jael/angel3_jael.dart';\nimport 'package:"
}
]
// ... and 352 more files (download for full content)
About this extraction
This page contains the full source code of the dukefirehawk/angel GitHub repository, extracted and formatted as plain text for AI agents and large language models (LLMs). The extraction includes 552 files (1.8 MB), approximately 495.0k tokens, and a symbol index with 2506 extracted functions, classes, methods, constants, and types. Use this with OpenClaw, Claude, ChatGPT, Cursor, Windsurf, or any other AI tool that accepts text input. You can copy the full output to your clipboard or download it as a .txt file.
Extracted by GitExtract — free GitHub repo to text converter for AI. Built by Nikandr Surkov.