commit
4e320b1e44
49 changed files with 258 additions and 92 deletions
1
.idea/.name
Normal file
1
.idea/.name
Normal file
|
@ -0,0 +1 @@
|
|||
belatuk_common_utilities
|
19
.idea/modules.xml
Normal file
19
.idea/modules.xml
Normal file
|
@ -0,0 +1,19 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<project version="4">
|
||||
<component name="ProjectModuleManager">
|
||||
<modules>
|
||||
<module fileurl="file://$PROJECT_DIR$/packages/body_parser/melos_belatuk_body_parser.iml" filepath="$PROJECT_DIR$/packages/body_parser/melos_belatuk_body_parser.iml" />
|
||||
<module fileurl="file://$PROJECT_DIR$/packages/code_buffer/melos_belatuk_code_buffer.iml" filepath="$PROJECT_DIR$/packages/code_buffer/melos_belatuk_code_buffer.iml" />
|
||||
<module fileurl="file://$PROJECT_DIR$/packages/combinator/melos_belatuk_combinator.iml" filepath="$PROJECT_DIR$/packages/combinator/melos_belatuk_combinator.iml" />
|
||||
<module fileurl="file://$PROJECT_DIR$/packages/html_builder/melos_belatuk_html_builder.iml" filepath="$PROJECT_DIR$/packages/html_builder/melos_belatuk_html_builder.iml" />
|
||||
<module fileurl="file://$PROJECT_DIR$/packages/json_serializer/melos_belatuk_json_serializer.iml" filepath="$PROJECT_DIR$/packages/json_serializer/melos_belatuk_json_serializer.iml" />
|
||||
<module fileurl="file://$PROJECT_DIR$/packages/merge_map/melos_belatuk_merge_map.iml" filepath="$PROJECT_DIR$/packages/merge_map/melos_belatuk_merge_map.iml" />
|
||||
<module fileurl="file://$PROJECT_DIR$/packages/pretty_logging/melos_belatuk_pretty_logging.iml" filepath="$PROJECT_DIR$/packages/pretty_logging/melos_belatuk_pretty_logging.iml" />
|
||||
<module fileurl="file://$PROJECT_DIR$/packages/pub_sub/melos_belatuk_pub_sub.iml" filepath="$PROJECT_DIR$/packages/pub_sub/melos_belatuk_pub_sub.iml" />
|
||||
<module fileurl="file://$PROJECT_DIR$/packages/range_header/melos_belatuk_range_header.iml" filepath="$PROJECT_DIR$/packages/range_header/melos_belatuk_range_header.iml" />
|
||||
<module fileurl="file://$PROJECT_DIR$/packages/symbol_table/melos_belatuk_symbol_table.iml" filepath="$PROJECT_DIR$/packages/symbol_table/melos_belatuk_symbol_table.iml" />
|
||||
<module fileurl="file://$PROJECT_DIR$/packages/user_agent/melos_user_agent_analyzer.iml" filepath="$PROJECT_DIR$/packages/user_agent/melos_user_agent_analyzer.iml" />
|
||||
<module fileurl="file://$PROJECT_DIR$/melos_belatuk_common_utilities.iml" filepath="$PROJECT_DIR$/melos_belatuk_common_utilities.iml" />
|
||||
</modules>
|
||||
</component>
|
||||
</project>
|
11
.idea/runConfigurations/melos_bootstrap.xml
Normal file
11
.idea/runConfigurations/melos_bootstrap.xml
Normal file
|
@ -0,0 +1,11 @@
|
|||
<!-- Generated by Melos -->
|
||||
<component name="ProjectRunConfigurationManager">
|
||||
<configuration default="false" name="Melos -> Bootstrap Workspace" type="ShConfigurationType">
|
||||
<option name="INDEPENDENT_SCRIPT_PATH" value="true" />
|
||||
<option name="SCRIPT_PATH" value="$USER_HOME$/.pub-cache/bin/melos" />
|
||||
<option name="SCRIPT_OPTIONS" value="bootstrap" />
|
||||
<option name="INDEPENDENT_SCRIPT_WORKING_DIRECTORY" value="false" />
|
||||
<option name="SCRIPT_WORKING_DIRECTORY" value="$PROJECT_DIR$" />
|
||||
<method v="2" />
|
||||
</configuration>
|
||||
</component>
|
11
.idea/runConfigurations/melos_clean.xml
Normal file
11
.idea/runConfigurations/melos_clean.xml
Normal file
|
@ -0,0 +1,11 @@
|
|||
<!-- Generated by Melos -->
|
||||
<component name="ProjectRunConfigurationManager">
|
||||
<configuration default="false" name="Melos -> Clean Workspace" type="ShConfigurationType">
|
||||
<option name="INDEPENDENT_SCRIPT_PATH" value="true" />
|
||||
<option name="SCRIPT_PATH" value="$USER_HOME$/.pub-cache/bin/melos" />
|
||||
<option name="SCRIPT_OPTIONS" value="clean" />
|
||||
<option name="INDEPENDENT_SCRIPT_WORKING_DIRECTORY" value="false" />
|
||||
<option name="SCRIPT_WORKING_DIRECTORY" value="$PROJECT_DIR$" />
|
||||
<method v="2" />
|
||||
</configuration>
|
||||
</component>
|
4
melos.yaml
Normal file
4
melos.yaml
Normal file
|
@ -0,0 +1,4 @@
|
|||
name: belatuk_common_utilities
|
||||
|
||||
packages:
|
||||
- packages/*
|
12
melos_belatuk_common_utilities.iml
Normal file
12
melos_belatuk_common_utilities.iml
Normal file
|
@ -0,0 +1,12 @@
|
|||
<?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>
|
|
@ -1,5 +1,14 @@
|
|||
# Change Log
|
||||
|
||||
## 5.0.0
|
||||
|
||||
* Require Dart >= 3.0
|
||||
|
||||
## 5.0.0-beta.1
|
||||
|
||||
* Require Dart >= 3.0
|
||||
* Updated `belatuk_http_server` to 4.0.0
|
||||
|
||||
## 4.0.1
|
||||
|
||||
* Updated `belatuk_http_server` to 3.0.0
|
||||
|
|
|
@ -30,7 +30,7 @@ A benefit of this is that primitive types are automatically deserialized correct
|
|||
To install Body Parser for your Dart project, simply add body_parser to your pub dependencies.
|
||||
|
||||
dependencies:
|
||||
belatuk_body_parser: ^4.0.0
|
||||
belatuk_body_parser: ^5.0.0
|
||||
|
||||
### Usage
|
||||
|
||||
|
|
|
@ -1,14 +1,14 @@
|
|||
name: belatuk_body_parser
|
||||
version: 4.0.1
|
||||
version: 5.0.0
|
||||
description: Parse request bodies and query strings in Dart. Supports JSON, URL-encoded, and multi-part bodies.
|
||||
homepage: https://github.com/dart-backend/belatuk-common-utilities/tree/main/packages/body_parser
|
||||
environment:
|
||||
sdk: '>=2.17.0 <3.0.0'
|
||||
sdk: '>=3.0.0 <4.0.0'
|
||||
dependencies:
|
||||
http_parser: ^4.0.0
|
||||
belatuk_http_server: ^3.0.0
|
||||
belatuk_http_server: ^4.0.0
|
||||
mime: ^1.0.0
|
||||
dev_dependencies:
|
||||
http: ^0.13.0
|
||||
test: ^1.17.8
|
||||
test: ^1.24.0
|
||||
lints: ^2.0.0
|
|
@ -1,5 +1,13 @@
|
|||
# Change Log
|
||||
|
||||
## 5.0.0
|
||||
|
||||
* Require Dart >= 3.0
|
||||
|
||||
## 5.0.0-beta.1
|
||||
|
||||
* Require Dart >= 3.0
|
||||
|
||||
## 4.0.0
|
||||
|
||||
* Require Dart >= 2.17
|
||||
|
|
|
@ -14,7 +14,7 @@ In your `pubspec.yaml`:
|
|||
|
||||
```yaml
|
||||
dependencies:
|
||||
belatuk_code_buffer: ^4.0.0
|
||||
belatuk_code_buffer: ^5.0.0
|
||||
```
|
||||
|
||||
## Usage
|
||||
|
|
|
@ -1,12 +1,12 @@
|
|||
name: belatuk_code_buffer
|
||||
version: 4.0.0
|
||||
version: 5.0.0
|
||||
description: An advanced StringBuffer geared toward generating code, and source maps.
|
||||
homepage: https://github.com/dart-backend/belatuk-common-utilities/tree/main/packages/code_buffer
|
||||
environment:
|
||||
sdk: '>=2.17.0 <3.0.0'
|
||||
sdk: '>=3.0.0 <4.0.0'
|
||||
dependencies:
|
||||
charcode: ^1.2.0
|
||||
source_span: ^1.8.1
|
||||
dev_dependencies:
|
||||
test: ^1.17.3
|
||||
test: ^1.24.0
|
||||
lints: ^2.0.0
|
||||
|
|
|
@ -1,5 +1,14 @@
|
|||
# Change Log
|
||||
|
||||
## 5.0.0
|
||||
|
||||
* Require Dart >= 3.0
|
||||
|
||||
## 5.0.0-beta.1
|
||||
|
||||
* Require Dart >= 3.0
|
||||
* Updated `belatuk_code_buffer` to 5.0.0
|
||||
|
||||
## 4.0.0
|
||||
|
||||
* Require Dart >= 2.17
|
||||
|
|
|
@ -1,15 +1,15 @@
|
|||
name: belatuk_combinator
|
||||
version: 4.0.0
|
||||
version: 5.0.0
|
||||
description: Packrat parser combinators that support static typing, generics, file spans, memoization, and more.
|
||||
homepage: https://github.com/dart-backend/belatuk-common-utilities/tree/main/packages/combinator
|
||||
environment:
|
||||
sdk: '>=2.17.0 <3.0.0'
|
||||
sdk: '>=3.0.0 <4.0.0'
|
||||
dependencies:
|
||||
belatuk_code_buffer: ^4.0.0
|
||||
belatuk_code_buffer: ^5.0.0
|
||||
matcher: ^0.12.10
|
||||
source_span: ^1.8.1
|
||||
string_scanner: ^1.1.0
|
||||
tuple: ^2.0.0
|
||||
dev_dependencies:
|
||||
test: ^1.17.4
|
||||
test: ^1.24.0
|
||||
lints: ^2.0.0
|
||||
|
|
4
packages/combinator/pubspec_overrides.yaml
Normal file
4
packages/combinator/pubspec_overrides.yaml
Normal file
|
@ -0,0 +1,4 @@
|
|||
# melos_managed_dependency_overrides: belatuk_code_buffer
|
||||
#dependency_overrides:
|
||||
# belatuk_code_buffer:
|
||||
# path: ../code_buffer
|
|
@ -1,5 +1,13 @@
|
|||
# Change Log
|
||||
|
||||
## 5.0.0
|
||||
|
||||
* Require Dart >= 3.0
|
||||
|
||||
## 5.0.0-beta.1
|
||||
|
||||
* Require Dart >= 3.0
|
||||
|
||||
## 4.0.0
|
||||
|
||||
* Require Dart >= 2.17
|
||||
|
|
|
@ -10,7 +10,7 @@ This package builds HTML AST's and renders them to HTML. It can be used as an in
|
|||
|
||||
## Requirements
|
||||
|
||||
* Dart SDK: 2.17.x or later
|
||||
* Dart SDK: 3.0.x or later
|
||||
|
||||
## Installation
|
||||
|
||||
|
@ -18,7 +18,7 @@ In your `pubspec.yaml`:
|
|||
|
||||
```yaml
|
||||
dependencies:
|
||||
belatuk_html_builder: ^4.0.0
|
||||
belatuk_html_builder: ^5.0.0
|
||||
```
|
||||
|
||||
## Usage
|
||||
|
|
|
@ -12,9 +12,9 @@ Node Function(Node) rebuild(NodeBuilder Function(NodeBuilder) transform,
|
|||
///
|
||||
/// Use this alongside [rebuild].
|
||||
Node Function(Node) rebuildRecursive(Node Function(Node) f) {
|
||||
Node _build(Node node) {
|
||||
return NodeBuilder.from(f(node)).mapChildren(_build).build();
|
||||
Node build(Node node) {
|
||||
return NodeBuilder.from(f(node)).mapChildren(build).build();
|
||||
}
|
||||
|
||||
return _build;
|
||||
return build;
|
||||
}
|
||||
|
|
|
@ -1,12 +1,12 @@
|
|||
name: belatuk_html_builder
|
||||
version: 4.0.0
|
||||
version: 5.0.0
|
||||
description: Build HTML AST's and render them to HTML. This can be used as an internal DSL, i.e. for a templating engine.
|
||||
homepage: https://github.com/dart-backend/belatuk-common-utilities/tree/main/packages/html_builder
|
||||
environment:
|
||||
sdk: '>=2.17.0 <3.0.0'
|
||||
sdk: '>=3.0.0 <4.0.0'
|
||||
dependencies:
|
||||
collection: ^1.15.0
|
||||
collection: ^1.17.0
|
||||
dev_dependencies:
|
||||
html: ^0.15.0
|
||||
test: ^1.17.4
|
||||
test: ^1.24.0
|
||||
lints: ^2.0.0
|
||||
|
|
|
@ -1,6 +1,5 @@
|
|||
import 'package:html/parser.dart' as html5;
|
||||
import 'package:belatuk_html_builder/elements.dart';
|
||||
import 'package:belatuk_html_builder/belatuk_html_builder.dart';
|
||||
import 'package:test/test.dart';
|
||||
|
||||
void main() {
|
||||
|
|
|
@ -1,5 +1,13 @@
|
|||
# Change Log
|
||||
|
||||
## 7.0.0
|
||||
|
||||
* Require Dart >= 3.0
|
||||
|
||||
## 7.0.0-beta.1
|
||||
|
||||
* Require Dart >= 3.0
|
||||
|
||||
## 6.0.1
|
||||
|
||||
* Updated README
|
||||
|
|
|
@ -12,7 +12,7 @@ The ***new and improved*** definitive solution for JSON in Dart. It supports syn
|
|||
## Installation
|
||||
|
||||
dependencies:
|
||||
belatuk_json_serializer: ^6.0.0
|
||||
belatuk_json_serializer: ^7.0.0
|
||||
|
||||
## Usage
|
||||
|
||||
|
|
|
@ -1,12 +1,12 @@
|
|||
name: belatuk_json_serializer
|
||||
version: 6.0.1
|
||||
version: 7.0.0
|
||||
description: Easy JSON to Object serialization and deserialization in Dart.
|
||||
homepage: https://github.com/dart-backend/belatuk-common-utilities/tree/main/packages/json_serializer
|
||||
environment:
|
||||
sdk: '>=2.17.0 <3.0.0'
|
||||
sdk: '>=3.0.0 <4.0.0'
|
||||
dependencies:
|
||||
logging: ^1.0.1
|
||||
dev_dependencies:
|
||||
stack_trace: ^1.10.0
|
||||
test: ^1.17.4
|
||||
test: ^1.24.0
|
||||
lints: ^2.0.0
|
|
@ -105,11 +105,11 @@ testDeserializationWithSchemaValidation() async {
|
|||
god.deserialize(babelRcJson, outputType: BabelRc) as BabelRc;
|
||||
|
||||
print(deserialized.presets.runtimeType);
|
||||
expect(deserialized.presets is List, equals(true));
|
||||
//expect(deserialized.presets is List, equals(true));
|
||||
expect(deserialized.presets.length, equals(2));
|
||||
expect(deserialized.presets[0], equals('es2015'));
|
||||
expect(deserialized.presets[1], equals('stage-0'));
|
||||
expect(deserialized.plugins is List, equals(true));
|
||||
//expect(deserialized.plugins is List, equals(true));
|
||||
expect(deserialized.plugins.length, equals(1));
|
||||
expect(deserialized.plugins[0], equals('add-module-exports'));
|
||||
}
|
||||
|
|
|
@ -11,14 +11,14 @@ void printRecord(LogRecord rec) {
|
|||
class SampleNestedClass {
|
||||
String? bar;
|
||||
|
||||
SampleNestedClass([String? this.bar]);
|
||||
SampleNestedClass([this.bar]);
|
||||
}
|
||||
|
||||
class SampleClass {
|
||||
String? hello;
|
||||
List<SampleNestedClass> nested = [];
|
||||
|
||||
SampleClass([String? this.hello]);
|
||||
SampleClass([this.hello]);
|
||||
}
|
||||
|
||||
@WithSchemaUrl(
|
||||
|
@ -27,25 +27,23 @@ class BabelRc {
|
|||
List<String> presets;
|
||||
List<String> plugins;
|
||||
|
||||
BabelRc(
|
||||
{List<String> this.presets: const [],
|
||||
List<String> this.plugins: const []});
|
||||
BabelRc({this.presets = const [], this.plugins = const []});
|
||||
}
|
||||
|
||||
@WithSchema(const {
|
||||
@WithSchema({
|
||||
r"$schema": "http://json-schema.org/draft-04/schema#",
|
||||
"title": "Validated Sample Class",
|
||||
"description": "Sample schema for validation via JSON God",
|
||||
"type": "object",
|
||||
"hello": const {"description": "A friendly greeting.", "type": "string"},
|
||||
"nested": const {
|
||||
"hello": {"description": "A friendly greeting.", "type": "string"},
|
||||
"nested": {
|
||||
"description": "A list of NestedSampleClass items within this instance.",
|
||||
"type": "array",
|
||||
"items": const {
|
||||
"items": {
|
||||
"type": "object",
|
||||
"bar": const {"description": "Filler text", "type": "string"}
|
||||
"bar": {"description": "Filler text", "type": "string"}
|
||||
}
|
||||
},
|
||||
"required": const ["hello", "nested"]
|
||||
"required": ["hello", "nested"]
|
||||
})
|
||||
class ValidatedSampleClass {}
|
||||
|
|
|
@ -8,7 +8,7 @@ main() {
|
|||
test('fromJson', () {
|
||||
var foo = god.deserialize('{"bar":"baz"}', outputType: Foo) as Foo;
|
||||
|
||||
expect(foo is Foo, true);
|
||||
//expect(foo is Foo, true);
|
||||
expect(foo.text, equals('baz'));
|
||||
});
|
||||
|
||||
|
|
|
@ -1,5 +1,13 @@
|
|||
# Change Log
|
||||
|
||||
## 5.0.0
|
||||
|
||||
* Require Dart >= 3.0
|
||||
|
||||
## 5.0.0-beta.1
|
||||
|
||||
* Require Dart >= 3.0
|
||||
|
||||
## 4.0.0
|
||||
|
||||
* Require Dart >= 2.17
|
||||
|
|
|
@ -1,9 +1,9 @@
|
|||
name: belatuk_merge_map
|
||||
version: 4.0.0
|
||||
version: 5.0.0
|
||||
description: Combine multiple Maps into one. Equivalent to Object.assign in JS.
|
||||
homepage: https://github.com/dart-backend/belatuk-common-utilities/tree/main/packages/merge_map
|
||||
environment:
|
||||
sdk: '>=2.17.0 <3.0.0'
|
||||
sdk: '>=3.0.0 <4.0.0'
|
||||
dev_dependencies:
|
||||
test: ^1.17.4
|
||||
test: ^1.24.0
|
||||
lints: ^2.0.0
|
||||
|
|
|
@ -3,8 +3,7 @@ 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.
|
||||
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)__
|
||||
|
||||
|
|
|
@ -1,5 +1,13 @@
|
|||
# Change Log
|
||||
|
||||
## 6.0.0
|
||||
|
||||
* Require Dart >= 3.0
|
||||
|
||||
## 6.0.0-beta.1
|
||||
|
||||
* Require Dart >= 3.0
|
||||
|
||||
## 5.0.0
|
||||
|
||||
* Require Dart >= 2.17
|
||||
|
|
|
@ -15,7 +15,7 @@ In your `pubspec.yaml`:
|
|||
|
||||
```yaml
|
||||
dependencies:
|
||||
belatuk_pretty_logging: ^5.0.0
|
||||
belatuk_pretty_logging: ^6.0.0
|
||||
```
|
||||
|
||||
## Usage
|
||||
|
|
|
@ -1,11 +1,12 @@
|
|||
name: belatuk_pretty_logging
|
||||
version: 5.0.0
|
||||
version: 6.0.0
|
||||
description: Standalone helper for colorful logging output, using pkg:io AnsiCode.
|
||||
homepage: https://github.com/dart-backend/belatuk-common-utilities/tree/main/packages/pretty_logging
|
||||
environment:
|
||||
sdk: '>=2.17.0 <3.0.0'
|
||||
sdk: '>=3.0.0 <4.0.0'
|
||||
dependencies:
|
||||
io: ^1.0.0
|
||||
logging: ^1.0.1
|
||||
dev_dependencies:
|
||||
test: ^1.24.0
|
||||
lints: ^2.0.0
|
||||
|
|
8
packages/pretty_logging/test/all_test.dart
Normal file
8
packages/pretty_logging/test/all_test.dart
Normal file
|
@ -0,0 +1,8 @@
|
|||
import 'package:test/test.dart';
|
||||
|
||||
void main() {
|
||||
test('test', () {
|
||||
var message = "Testing";
|
||||
expect(message, equals('Testing'));
|
||||
});
|
||||
}
|
|
@ -1,5 +1,13 @@
|
|||
# Change Log
|
||||
|
||||
## 6.0.0
|
||||
|
||||
* Require Dart >= 3.0
|
||||
|
||||
## 6.0.0-beta.1
|
||||
|
||||
* Require Dart >= 3.0
|
||||
|
||||
## 5.0.0
|
||||
|
||||
* Require Dart >= 2.17
|
||||
|
|
|
@ -14,10 +14,10 @@ Add `belatuk_pub_sub` as a dependency in your `pubspec.yaml` file:
|
|||
|
||||
```yaml
|
||||
dependencies:
|
||||
belatuk_pub_sub: ^5.0.0
|
||||
belatuk_pub_sub: ^6.0.0
|
||||
```
|
||||
|
||||
Then, be sure to run `pub get` in your terminal.
|
||||
Then, be sure to run `dart pub get` in your terminal.
|
||||
|
||||
## Usage
|
||||
|
||||
|
|
|
@ -1,14 +1,14 @@
|
|||
name: belatuk_pub_sub
|
||||
version: 5.0.0
|
||||
version: 6.0.0
|
||||
description: Keep application instances in sync with a simple pub/sub API.
|
||||
homepage: https://github.com/dart-backend/belatuk-common-utilities/tree/main/packages/pub_sub
|
||||
environment:
|
||||
sdk: '>=2.17.0 <3.0.0'
|
||||
sdk: '>=3.0.0 <4.0.0'
|
||||
dependencies:
|
||||
json_rpc_2: ^3.0.0
|
||||
stream_channel: ^2.1.0
|
||||
uuid: ^3.0.4
|
||||
collection: ^1.15.0
|
||||
collection: ^1.17.0
|
||||
dev_dependencies:
|
||||
lints: ^2.0.0
|
||||
test: ^1.17.4
|
||||
test: ^1.24.0
|
||||
|
|
|
@ -1,5 +1,13 @@
|
|||
# Change Log
|
||||
|
||||
## 6.0.0
|
||||
|
||||
* Require Dart >= 3.0
|
||||
|
||||
## 6.0.0-beta.1
|
||||
|
||||
* Require Dart >= 3.0
|
||||
|
||||
## 5.0.0
|
||||
|
||||
* Require Dart >= 2.17
|
||||
|
|
|
@ -14,7 +14,7 @@ In your `pubspec.yaml`:
|
|||
|
||||
```yaml
|
||||
dependencies:
|
||||
belatuk_range_header: ^5.0.0
|
||||
belatuk_range_header: ^6.0.0
|
||||
```
|
||||
|
||||
## Usage
|
||||
|
|
|
@ -15,7 +15,9 @@ void handleRequest(HttpRequest request) async {
|
|||
// Get info
|
||||
header.items;
|
||||
header.rangeUnit;
|
||||
header.items.forEach((item) => item.toContentRange(400));
|
||||
for (var item in header.items) {
|
||||
item.toContentRange(400);
|
||||
}
|
||||
|
||||
// Serve the file
|
||||
var transformer =
|
||||
|
|
|
@ -1,7 +1,9 @@
|
|||
import 'dart:async';
|
||||
import 'dart:collection';
|
||||
import 'dart:convert';
|
||||
import 'dart:io' show BytesBuilder;
|
||||
//import 'dart:io' hide BytesBuilder;
|
||||
import 'dart:typed_data';
|
||||
|
||||
import 'dart:math';
|
||||
import 'package:async/async.dart';
|
||||
import 'package:charcode/ascii.dart';
|
||||
|
|
|
@ -1,8 +1,8 @@
|
|||
class RangeHeaderParseException extends FormatException {
|
||||
@override
|
||||
final String message;
|
||||
//@override
|
||||
//final String message;
|
||||
|
||||
RangeHeaderParseException(this.message);
|
||||
RangeHeaderParseException(super.message);
|
||||
|
||||
@override
|
||||
String toString() => 'Range header parse exception: $message';
|
||||
|
|
|
@ -9,7 +9,7 @@ import 'range_header_item.dart';
|
|||
final RegExp _rgxInt = RegExp(r'[0-9]+');
|
||||
final RegExp _rgxWs = RegExp(r'[ \n\r\t]');
|
||||
|
||||
enum TokenType { RANGE_UNIT, COMMA, INT, DASH, EQUALS }
|
||||
enum TokenType { rangeUnit, comma, int, dash, equals }
|
||||
|
||||
class Token {
|
||||
final TokenType type;
|
||||
|
@ -27,19 +27,19 @@ List<Token> scan(String text, List<String> allowedRangeUnits) {
|
|||
scanner.scan(_rgxWs);
|
||||
|
||||
if (scanner.scanChar($comma)) {
|
||||
tokens.add(Token(TokenType.COMMA, scanner.lastSpan));
|
||||
tokens.add(Token(TokenType.comma, scanner.lastSpan));
|
||||
} else if (scanner.scanChar($dash)) {
|
||||
tokens.add(Token(TokenType.DASH, scanner.lastSpan));
|
||||
tokens.add(Token(TokenType.dash, scanner.lastSpan));
|
||||
} else if (scanner.scan(_rgxInt)) {
|
||||
tokens.add(Token(TokenType.INT, scanner.lastSpan));
|
||||
tokens.add(Token(TokenType.int, scanner.lastSpan));
|
||||
} else if (scanner.scanChar($equal)) {
|
||||
tokens.add(Token(TokenType.EQUALS, scanner.lastSpan));
|
||||
tokens.add(Token(TokenType.equals, scanner.lastSpan));
|
||||
} else {
|
||||
var matched = false;
|
||||
|
||||
for (var unit in allowedRangeUnits) {
|
||||
if (scanner.scan(unit)) {
|
||||
tokens.add(Token(TokenType.RANGE_UNIT, scanner.lastSpan));
|
||||
tokens.add(Token(TokenType.rangeUnit, scanner.lastSpan));
|
||||
matched = true;
|
||||
break;
|
||||
}
|
||||
|
@ -98,9 +98,9 @@ class Parser {
|
|||
}
|
||||
|
||||
RangeHeader? parseRangeHeader() {
|
||||
if (next(TokenType.RANGE_UNIT)) {
|
||||
if (next(TokenType.rangeUnit)) {
|
||||
var unit = current!.span!.text;
|
||||
next(TokenType.EQUALS); // Consume =, if any.
|
||||
next(TokenType.equals); // Consume =, if any.
|
||||
|
||||
var items = <RangeHeaderItem>[];
|
||||
var item = parseHeaderItem();
|
||||
|
@ -108,7 +108,7 @@ class Parser {
|
|||
while (item != null) {
|
||||
items.add(item);
|
||||
// Parse comma
|
||||
if (next(TokenType.COMMA)) {
|
||||
if (next(TokenType.comma)) {
|
||||
item = parseHeaderItem();
|
||||
} else {
|
||||
item = null;
|
||||
|
@ -126,11 +126,11 @@ class Parser {
|
|||
}
|
||||
|
||||
RangeHeaderItem? parseHeaderItem() {
|
||||
if (next(TokenType.INT)) {
|
||||
if (next(TokenType.int)) {
|
||||
// i.e 500-544, or 600-
|
||||
var start = int.parse(current!.span!.text);
|
||||
if (next(TokenType.DASH)) {
|
||||
if (next(TokenType.INT)) {
|
||||
if (next(TokenType.dash)) {
|
||||
if (next(TokenType.int)) {
|
||||
return RangeHeaderItem(start, int.parse(current!.span!.text));
|
||||
} else {
|
||||
return RangeHeaderItem(start);
|
||||
|
@ -138,9 +138,9 @@ class Parser {
|
|||
} else {
|
||||
throw _expected('"-"');
|
||||
}
|
||||
} else if (next(TokenType.DASH)) {
|
||||
} else if (next(TokenType.dash)) {
|
||||
// i.e. -599
|
||||
if (next(TokenType.INT)) {
|
||||
if (next(TokenType.int)) {
|
||||
return RangeHeaderItem(-1, int.parse(current!.span!.text));
|
||||
} else {
|
||||
throw _expected('integer');
|
||||
|
|
|
@ -1,18 +1,18 @@
|
|||
name: belatuk_range_header
|
||||
version: 5.0.0
|
||||
version: 6.0.0
|
||||
description: Range header parser for Dart. Beyond parsing, a stream transformer is included.
|
||||
homepage: https://github.com/dart-backend/belatuk-common-utilities/tree/main/packages/range_header
|
||||
environment:
|
||||
sdk: '>=2.17.0 <3.0.0'
|
||||
sdk: '>=3.0.0 <4.0.0'
|
||||
dependencies:
|
||||
async: ^2.6.0
|
||||
charcode: ^1.2.0
|
||||
quiver: ^3.0.1
|
||||
source_span: ^1.8.1
|
||||
string_scanner: ^1.1.0
|
||||
async: ^2.11.0
|
||||
charcode: ^1.3.0
|
||||
quiver: ^3.2.0
|
||||
source_span: ^1.10.0
|
||||
string_scanner: ^1.2.0
|
||||
dev_dependencies:
|
||||
file: ^6.1.0
|
||||
http_parser: ^4.0.0
|
||||
logging: ^1.0.1
|
||||
test: ^1.17.8
|
||||
test: ^1.24.0
|
||||
lints: ^2.0.0
|
||||
|
|
|
@ -1,5 +1,13 @@
|
|||
# Change Log
|
||||
|
||||
## 5.0.0
|
||||
|
||||
* Require Dart >= 3.0
|
||||
|
||||
## 5.0.0-beta.1
|
||||
|
||||
* Require Dart >= 3.0
|
||||
|
||||
## 4.0.0
|
||||
|
||||
* Require Dart >= 2.17
|
||||
|
|
|
@ -12,8 +12,7 @@ and utilize basic memoization to speed up repeated lookups.
|
|||
|
||||
## Variables
|
||||
|
||||
To represent a symbol, use `Variable`. I opted for the name
|
||||
`Variable` to avoid conflict with the Dart primitive `Symbol`.
|
||||
To represent a symbol, use `Variable`. I opted for the name `Variable` to avoid conflict with the Dart primitive `Symbol`.
|
||||
|
||||
```dart
|
||||
var foo = Variable<String>('foo');
|
||||
|
|
|
@ -1,11 +1,11 @@
|
|||
name: belatuk_symbol_table
|
||||
version: 4.0.0
|
||||
version: 5.0.0
|
||||
description: A generic symbol table implementation in Dart, with support for scopes and constants.
|
||||
homepage: https://github.com/dart-backend/belatuk-common-utilities/tree/main/packages/symbol_table
|
||||
environment:
|
||||
sdk: '>=2.17.0 <3.0.0'
|
||||
sdk: '>=3.0.0 <4.0.0'
|
||||
dependencies:
|
||||
collection: ^1.15.0
|
||||
collection: ^1.17.0
|
||||
dev_dependencies:
|
||||
test: ^1.17.4
|
||||
test: ^1.24.0
|
||||
lints: ^2.0.0
|
||||
|
|
|
@ -1,5 +1,13 @@
|
|||
# Change Log
|
||||
|
||||
## 5.0.0
|
||||
|
||||
* Require Dart >= 3.0
|
||||
|
||||
## 5.0.0-beta.1
|
||||
|
||||
* Require Dart >= 3.0
|
||||
|
||||
## 4.0.0
|
||||
|
||||
* Require Dart >= 2.17
|
||||
|
|
|
@ -1,9 +1,9 @@
|
|||
name: user_agent_analyzer
|
||||
version: 4.0.0
|
||||
version: 5.0.0
|
||||
description: A library to identify the type of devices and web browsers based on User-Agent string.
|
||||
homepage: https://github.com/dart-backend/belatuk-common-utilities/tree/main/packages/user_agent
|
||||
environment:
|
||||
sdk: '>=2.17.0 <3.0.0'
|
||||
sdk: '>=3.0.0 <4.0.0'
|
||||
dev_dependencies:
|
||||
test: ^1.17.8
|
||||
test: ^1.24.0
|
||||
lints: ^2.0.0
|
||||
|
|
6
pubspec.yaml
Normal file
6
pubspec.yaml
Normal file
|
@ -0,0 +1,6 @@
|
|||
name: belatuk_common_utilities_workspace
|
||||
|
||||
environment:
|
||||
sdk: '>=2.18.0 <4.0.0'
|
||||
dev_dependencies:
|
||||
melos: ^3.0.0
|
Loading…
Reference in a new issue