diff --git a/packages/html/.gitignore b/packages/html/.gitignore deleted file mode 100644 index fe4c4cfa..00000000 --- a/packages/html/.gitignore +++ /dev/null @@ -1,58 +0,0 @@ -# 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 - -# 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 - -# Crashlytics plugin (for Android Studio and IntelliJ) -com_crashlytics_export_strings.xml -crashlytics.properties -crashlytics-build.properties -fabric.properties - -.dart_tool \ No newline at end of file diff --git a/packages/html/CHANGELOG.md b/packages/html/CHANGELOG.md index 3857adbb..43ec6378 100644 --- a/packages/html/CHANGELOG.md +++ b/packages/html/CHANGELOG.md @@ -1,5 +1,9 @@ -# 3.0.0 +# Change Log + +## 3.0.0 + * Migrated to support Dart SDK 2.12.x NNBD -# 2.0.0 -* Angel 2 + Dart 2 updates. \ No newline at end of file +## 2.0.0 + +* Angel 2 + Dart 2 updates. diff --git a/packages/html/LICENSE b/packages/html/LICENSE index 3de28325..df5e0635 100644 --- a/packages/html/LICENSE +++ b/packages/html/LICENSE @@ -1,21 +1,29 @@ -MIT License +BSD 3-Clause License -Copyright (c) 2017 Tobe O +Copyright (c) 2021, dukefirehawk.com +All rights reserved. -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are met: -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. +1. Redistributions of source code must retain the above copyright notice, this + list of conditions and the following disclaimer. -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. +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. diff --git a/packages/html/README.md b/packages/html/README.md index cdf92e78..273b8280 100644 --- a/packages/html/README.md +++ b/packages/html/README.md @@ -1,16 +1,17 @@ -# html -[![Pub](https://img.shields.io/pub/v/angel_html.svg)](https://pub.dartlang.org/packages/angel_html) -[![build status](https://travis-ci.org/angel-dart/html.svg)](https://travis-ci.org/angel-dart/html) +# Angel3 HTML -A plug-in that allows you to return html_builder AST's from request handlers, and have them sent as HTML automatically. +[![version](https://img.shields.io/badge/pub-v3.0.0-brightgreen)](https://pub.dartlang.org/packages/angel3_html) +[![Null Safety](https://img.shields.io/badge/null-safety-brightgreen)](https://dart.dev/null-safety) +[![Gitter](https://img.shields.io/gitter/room/angel_dart/discussion)](https://gitter.im/angel_dart/discussion) -[`package:html_builder`](https://github.com/thosakwe/html_builder) is a simple virtual DOM library -(without diffing, you can find that -[here](https://github.com/thosakwe/html_builder_vdom)), with a handy Dart DSL that makes it easy to build HTML -AST's: +[![License](https://img.shields.io/github/license/dukefirehawk/angel)](https://github.com/dukefirehawk/angel/tree/angel3/packages/html/LICENSE) + +A plug-in that allows you to return `belatuk_html_builder` AST's from request handlers, and have them sent as HTML automatically. + +[`package:belatuk_html_builder`](https://pub.dev/packages/belatuk_html_builder) is a simple virtual DOM library with a handy Dart DSL that makes it easy to build HTML AST's: ```dart -import 'package:html_builder/elements.dart'; +import 'package:belatuk_html_builder/elements.dart'; Node myDom = html(lang: 'en', c: [ head(c: [ @@ -28,19 +29,21 @@ Node myDom = html(lang: 'en', c: [ ``` This plug-in means that you can now `return` these AST's, and Angel will automatically send them to -clients. Ultimately, the implication is that you can use `html_builder` as a substitute for a -templating system within Dart. With [hot reloading](https://github.com/angel-dart/hot), you won't +clients. Ultimately, the implication is that you can use `belatuk_html_builder` as a substitute for a +templating system within Dart. With [hot reloading](https://pub.dev/packages/angel3_hot), you won't even need to reload your server (as it should be). -# Installation +## Installation + In your `pubspec.yaml`: ```yaml dependencies: - angel_html: ^1.0.0 + angel3_html: ^3.0.0 ``` -# Usage +## Usage + The `renderHtml` function does all the magic for you. ```dart @@ -80,4 +83,4 @@ configureServer(Angel app) async { // ... } -``` \ No newline at end of file +``` diff --git a/packages/html/analysis_options.yaml b/packages/html/analysis_options.yaml index c230cee7..ea2c9e94 100644 --- a/packages/html/analysis_options.yaml +++ b/packages/html/analysis_options.yaml @@ -1,4 +1 @@ -include: package:pedantic/analysis_options.yaml -analyzer: - strong-mode: - implicit-casts: false \ No newline at end of file +include: package:lints/recommended.yaml \ No newline at end of file diff --git a/packages/html/example/main.dart b/packages/html/example/main.dart index a322cf39..3e9d3f60 100644 --- a/packages/html/example/main.dart +++ b/packages/html/example/main.dart @@ -1,7 +1,7 @@ -import 'package:angel_framework/angel_framework.dart'; -import 'package:angel_framework/http.dart'; -import 'package:angel_html/angel_html.dart'; -import 'package:html_builder/elements.dart'; +import 'package:angel3_framework/angel3_framework.dart'; +import 'package:angel3_framework/http.dart'; +import 'package:angel3_html/angel3_html.dart'; +import 'package:belatuk_html_builder/elements.dart'; import 'package:logging/logging.dart'; void main() async { diff --git a/packages/html/lib/angel_html.dart b/packages/html/lib/angel3_html.dart similarity index 78% rename from packages/html/lib/angel_html.dart rename to packages/html/lib/angel3_html.dart index 2393adb1..f72506d4 100644 --- a/packages/html/lib/angel_html.dart +++ b/packages/html/lib/angel3_html.dart @@ -1,13 +1,14 @@ import 'dart:async'; -import 'package:angel_framework/angel_framework.dart'; -import 'package:html_builder/html_builder.dart'; +import 'package:angel3_framework/angel3_framework.dart'; +import 'package:belatuk_html_builder/belatuk_html_builder.dart'; /// Returns a [RequestMiddleware] that allows you to return `html_builder` [Node]s as responses. /// /// You can provide a custom [renderer]. The default renders minified HTML5 pages. /// /// Set [enforceAcceptHeader] to `true` to throw a `406 Not Acceptable` if the client doesn't accept HTML responses. -RequestHandler renderHtml({StringRenderer? renderer, bool? enforceAcceptHeader}) { +RequestHandler renderHtml( + {StringRenderer? renderer, bool? enforceAcceptHeader}) { renderer ??= StringRenderer(pretty: false, html5: true); return (RequestContext req, ResponseContext res) { @@ -15,7 +16,7 @@ RequestHandler renderHtml({StringRenderer? renderer, bool? enforceAcceptHeader}) res.serializer = (data) { if (data is! Node) { - return oldSerializer!(data); + return oldSerializer(data); } else { if (enforceAcceptHeader == true && !req.accepts('text/html')) { throw AngelHttpException.notAcceptable(); diff --git a/packages/html/pubspec.yaml b/packages/html/pubspec.yaml index 1ef34ad1..ec7e0246 100644 --- a/packages/html/pubspec.yaml +++ b/packages/html/pubspec.yaml @@ -1,28 +1,16 @@ -name: angel_html +name: angel3_html version: 3.0.0 description: Support for rendering html_builder AST's as responses in Angel. -homepage: https://github.com/angel-dart/html_builder -publish_to: none +homepage: https://angel3-framework.web.app/ +repository: https://github.com/dukefirehawk/angel/tree/angel3/packages/html_builder environment: sdk: '>=2.12.0 <3.0.0' dependencies: - angel_framework: - git: - url: https://github.com/dukefirehawk/angel.git - ref: sdk-2.12.x_nnbd - path: packages/framework - html_builder: - git: - url: https://github.com/dukefirehawk/angel.git - ref: sdk-2.12.x_nnbd - path: packages/html_builder + angel3_framework: ^4.0.0 + belatuk_html_builder: ^3.0.0 dev_dependencies: - angel_test: - git: - url: https://github.com/dukefirehawk/angel.git - ref: sdk-2.12.x_nnbd - path: packages/test + angel3_test: ^4.0.0 html: ^0.15.0 logging: ^1.0.1 test: ^1.17.0 - pedantic: ^1.11.0 \ No newline at end of file + lints: ^1.0.0 \ No newline at end of file diff --git a/packages/html/test/all_test.dart b/packages/html/test/all_test.dart index ba2d05d4..585c05a5 100644 --- a/packages/html/test/all_test.dart +++ b/packages/html/test/all_test.dart @@ -1,8 +1,8 @@ -import 'package:angel_framework/angel_framework.dart'; -import 'package:angel_html/angel_html.dart'; -import 'package:angel_test/angel_test.dart'; -import 'package:html_builder/elements.dart'; -import 'package:html_builder/html_builder.dart'; +import 'package:angel3_framework/angel3_framework.dart'; +import 'package:angel3_html/angel3_html.dart'; +import 'package:angel3_test/angel3_test.dart'; +import 'package:belatuk_html_builder/elements.dart'; +import 'package:belatuk_html_builder/belatuk_html_builder.dart'; import 'package:test/test.dart'; void main() { diff --git a/packages/html_builder/analysis_options.yaml b/packages/html_builder/analysis_options.yaml index c5667a80..ea2c9e94 100644 --- a/packages/html_builder/analysis_options.yaml +++ b/packages/html_builder/analysis_options.yaml @@ -1,5 +1 @@ -include: package:pedantic/analysis_options.yaml - -analyzer: - strong-mode: - implicit-casts: false \ No newline at end of file +include: package:lints/recommended.yaml \ No newline at end of file